diff --git a/.gitignore b/.gitignore index fbf21382..74e81d00 100644 --- a/.gitignore +++ b/.gitignore @@ -31,3 +31,6 @@ yarn-error.log* # Docs should be pulled from the svg/svgo repository /docs/ /.svgo/ + +# Generated CSS variables from Design Tokens +src/css/_variables.css diff --git a/package.json b/package.json index d4e485cb..18f099f6 100644 --- a/package.json +++ b/package.json @@ -33,13 +33,14 @@ "svgo:clone": "rimraf .svgo && git clone https://github.com/svg/svgo.git .svgo --depth 1", "svgo:copy": "rimraf .svgo && cp -r ../svgo .svgo", "optimize-svgs": "npx svgo --pretty --indent 2 ./src/vectors/*", + "style-dictionary": "npx style-dictionary build --config style-dictionary.config.mjs", "lint": "eslint .", "lint:fix": "eslint --fix .", "lint:types": "tsc", "qa": "yarn run lint && yarn run lint:types", "docusaurus": "docusaurus", - "start": "docusaurus start", - "build": "docusaurus build", + "start": "yarn run style-dictionary && docusaurus start", + "build": "yarn run style-dictionary && docusaurus build", "swizzle": "docusaurus swizzle", "deploy": "docusaurus deploy", "clear": "docusaurus clear", @@ -77,6 +78,7 @@ "eslint-plugin-react": "^7.37.5", "globals": "^16.2.0", "rimraf": "^6.0.1", + "style-dictionary": "^5.0.1", "typescript": "^5.8.3" }, "resolutions": { diff --git a/src/css/custom.css b/src/css/custom.css index 3c0b7dcd..55554381 100644 --- a/src/css/custom.css +++ b/src/css/custom.css @@ -1,34 +1,32 @@ +@import url('_variables.css'); + :root { --svgo-global-width: 1200px; --svgo-pill-bg-color: #cbe2f9; --svgo-pill-fg-color: #0b5cad; - --svgo-pri-bg-color: #fff; - --svgo-pri-fg-color: #153243; --svgo-search-bg-color: var(--svgo-tir-bg-color); --svgo-search-bg-hover: #dbdbdb; --svgo-sec-bg-color: #f6f5f4; --svgo-tir-bg-color: #e8e8e8; --svgo-logo-fg-color: #1d1d1b; --svgo-button-hover-background-color: #1b4055; - --ifm-background-color: var(--svgo-pri-bg-color) !important; + --ifm-background-color: var(--svgo-background) !important; --ifm-code-font-size: 95%; --ifm-color-primary: #216be2; --ifm-container-width-xl: var(--svgo-global-width); --ifm-footer-padding-horizontal: 1rem; - --ifm-navbar-background-color: var(--svgo-pri-bg-color); + --ifm-navbar-background-color: var(--svgo-background); --ifm-navbar-shadow: 0 .5rem .5rem 0 #0a1e291a; --ifm-spacing-horizontal: 1rem; --search-local-hit-background: var(--svgo-sec-bg-color); - color: var(--svgo-pri-fg-color); + color: var(--svgo-foreground); } @media (prefers-color-scheme: dark) { :root { --svgo-pill-bg-color: #0b5cad; --svgo-pill-fg-color: #cbe2f9; - --svgo-pri-bg-color: #142631; - --svgo-pri-fg-color: #fff; --svgo-search-bg-color: #5a6a74; --svgo-search-bg-hover: #647682; --svgo-sec-bg-color: #1b3241; @@ -42,8 +40,8 @@ /* Button overrides */ .button { - --ifm-button-color: var(--svgo-pri-bg-color); - --ifm-button-background-color: var(--svgo-pri-fg-color); + --ifm-button-color: var(--svgo-background); + --ifm-button-background-color: var(--svgo-foreground); } .button:hover, .button:focus { --ifm-button-background-color: var(--svgo-button-hover-background-color); @@ -63,7 +61,7 @@ /* TOC overrides */ .table-of-contents__link--active { - color: var(--svgo-pri-fg-color); + color: var(--svgo-foreground); } /* Search overrides */ @@ -75,7 +73,7 @@ nav .navbar__search-input:hover, nav .navbar__search-input:focus { background-color: var(--svgo-search-bg-hover); } nav div kbd { - background-color: var(--svgo-pri-bg-color) !important; + background-color: var(--svgo-background) !important; } @media (min-width: 577px) { nav .navbar__search-input { diff --git a/style-dictionary.config.mjs b/style-dictionary.config.mjs new file mode 100644 index 00000000..0c54b435 --- /dev/null +++ b/style-dictionary.config.mjs @@ -0,0 +1,100 @@ +/** + * @fileoverview + * Configuration for style-dictionary, to read, transform, and generate CSS + * from our design tokens. + */ + +import StyleDictionary from 'style-dictionary'; + +/** + * Prefix to add to every design token to avoid conflicts with other design + * systems or component libraries that are present. + */ +const PREFIX = 'svgo'; + +/** + * All supported color schemes. Many design tokens are prefixed with one of + * these if they belong to a certain color scheme. + */ +const COLOR_SCHEMES = { + Light: 'Light', + Dark: 'Dark', +} + +StyleDictionary.registerPreprocessor({ + name: 'prefix', + preprocessor: (dict) => { + /** @type {Record} */ + const result = {}; + + for (const key in dict) { + result[`${PREFIX}.${key}`] = dict[key]; + } + + return result; + }, +}); + +StyleDictionary.registerFormat({ + name: 'css/variables-with-prefers-color-scheme', + format: (dictionary) => { + const { allTokens } = dictionary.dictionary; + const [ defaultThemeTokens, darkThemeTokens ] = allTokens.reduce((acc, val) => { + const theme = val.path[1]; + const arr = theme === COLOR_SCHEMES.Dark ? acc[1] : acc[0]; + + if (Object.values(COLOR_SCHEMES).includes(theme)) { + val.name = val.name.replace(`${theme.toLowerCase()}-`, ''); + } + + arr.push(val); + return acc; + }, /** @type {[import('style-dictionary').TransformedToken[], import('style-dictionary').TransformedToken[]]} */ ([[], []])); + + return `/* + * This file was auto-generated with style-dictionary using design tokens. + * + * ⚠️ Changes will not be persisted! + * + * See: + * - ~/tokens/tokens.json + * - ~/style-dictionary.config.mjs + * + * Learn more: + * - https://www.w3.org/community/design-tokens/ + * - https://penpot.app/collaboration/design-tokens + * - https://styledictionary.com + */ + +:root { + ${defaultThemeTokens.map(prop => `--${prop.name}: ${prop.$value};`).join('\n ')} +} + +@media (prefers-color-scheme: dark) { + :root { + ${darkThemeTokens.map(prop => `--${prop.name}: ${prop.$value};`).join('\n ')} + } +}`; + } +}); + +export default { + source: [ + 'tokens/*.json', + ], + preprocessors: [ + 'prefix', + ], + platforms: { + css: { + transformGroup: 'css', + buildPath: 'src/css/', + files: [ + { + destination: '_variables.css', + format: 'css/variables-with-prefers-color-scheme', + }, + ], + }, + }, +} diff --git a/tokens/tokens.json b/tokens/tokens.json new file mode 100644 index 00000000..65678caa --- /dev/null +++ b/tokens/tokens.json @@ -0,0 +1,62 @@ +{ + "Light": { + "background": { + "$value": "#fff", + "$type": "color", + "$description": "" + }, + "foreground": { + "$value": "#153243", + "$type": "color", + "$description": "" + } + }, + "Dark": { + "background": { + "$value": "#142631", + "$type": "color", + "$description": "" + }, + "foreground": { + "$value": "#F4F4F9", + "$type": "color", + "$description": "" + } + }, + "$themes": [ + { + "id": "cb0303b0-bab9-80fb-8006-95dfe2bbfa44", + "name": "Light", + "group": "", + "description": "", + "is-source": false, + "modified-at": "2025-08-02T12:01:50.920+01:00", + "selectedTokenSets": { + "Light": "enabled" + } + }, + { + "id": "cb0303b0-bab9-80fb-8006-95dfe721ab14", + "name": "Dark", + "group": "", + "description": "", + "is-source": false, + "modified-at": "2025-08-02T12:01:50.920+01:00", + "selectedTokenSets": { + "Dark": "enabled" + } + } + ], + "$metadata": { + "tokenSetOrder": [ + "Light", + "Dark" + ], + "activeThemes": [ + "/Dark" + ], + "activeSets": [ + "Dark" + ] + } +} \ No newline at end of file diff --git a/yarn.lock b/yarn.lock index 8e5f530f..687aed90 100644 --- a/yarn.lock +++ b/yarn.lock @@ -1261,6 +1261,46 @@ __metadata: languageName: node linkType: hard +"@bundled-es-modules/deepmerge@npm:^4.3.1": + version: 4.3.1 + resolution: "@bundled-es-modules/deepmerge@npm:4.3.1" + dependencies: + deepmerge: "npm:^4.3.1" + checksum: 10/b96ad879ec052591ea9f3f3570294ee7a808df9f60c7e21977ee8dbdc3156324de7f85a432c9b290c73fec3519ee169a963002ddec9bc00cbca9582aa092910b + languageName: node + linkType: hard + +"@bundled-es-modules/glob@npm:^10.4.2": + version: 10.4.2 + resolution: "@bundled-es-modules/glob@npm:10.4.2" + dependencies: + buffer: "npm:^6.0.3" + events: "npm:^3.3.0" + glob: "npm:^10.4.2" + patch-package: "npm:^8.0.0" + path: "npm:^0.12.7" + stream: "npm:^0.0.3" + string_decoder: "npm:^1.3.0" + url: "npm:^0.11.3" + checksum: 10/7195b81873064c9f1ddfa687f8a36f4ca793b5c1051856792c8c3266944f4ab752316c4e83d265becb08c1b6f4f78655c53193dad2a35a2649f9c51e80f62af4 + languageName: node + linkType: hard + +"@bundled-es-modules/memfs@npm:^4.9.4": + version: 4.17.0 + resolution: "@bundled-es-modules/memfs@npm:4.17.0" + dependencies: + assert: "npm:^2.1.0" + buffer: "npm:^6.0.3" + events: "npm:^3.3.0" + memfs: "npm:^4.17.0" + path: "npm:^0.12.7" + stream: "npm:^0.0.3" + util: "npm:^0.12.5" + checksum: 10/1a210db6aad77c101c7431e02438decd02b8a7a2411e7cdd758b4fa7318b9d96273867aeb30e39dd8225d49f1a545250b498d40f73415156d0756bd9c2517d13 + languageName: node + linkType: hard + "@colors/colors@npm:1.5.0": version: 1.5.0 resolution: "@colors/colors@npm:1.5.0" @@ -2563,6 +2603,71 @@ __metadata: languageName: node linkType: hard +"@jsonjoy.com/base64@npm:^1.1.1": + version: 1.1.2 + resolution: "@jsonjoy.com/base64@npm:1.1.2" + peerDependencies: + tslib: 2 + checksum: 10/d76bb58eff841c090d9bf69a073611ffa73c40a664ccbcea689f65961f57d7b24051269d06b437e4f6204285d6ba92f50f587c5e95c5f9e4f10b36a2ed4cd0c8 + languageName: node + linkType: hard + +"@jsonjoy.com/buffers@npm:^1.0.0": + version: 1.0.0 + resolution: "@jsonjoy.com/buffers@npm:1.0.0" + peerDependencies: + tslib: 2 + checksum: 10/3347a16a555398c19265203877b8e325be5facc1d875c0e85db0cc20b53418302257ed5af15bf53b84ff8337bd024a10be25ff3a02ebc54ae8e643577ca29e63 + languageName: node + linkType: hard + +"@jsonjoy.com/codegen@npm:^1.0.0": + version: 1.0.0 + resolution: "@jsonjoy.com/codegen@npm:1.0.0" + peerDependencies: + tslib: 2 + checksum: 10/a0afb03d2af4fbc1377c547e507f5db99a25f515d8c4b6b2cef1ff28145ac59fff12b6e1f41f9734cb62ea5619e7f9be1acd0908305d6f4176898ee534ee9a64 + languageName: node + linkType: hard + +"@jsonjoy.com/json-pack@npm:^1.0.3": + version: 1.8.0 + resolution: "@jsonjoy.com/json-pack@npm:1.8.0" + dependencies: + "@jsonjoy.com/base64": "npm:^1.1.1" + "@jsonjoy.com/json-pointer": "npm:^1.0.1" + "@jsonjoy.com/util": "npm:^1.1.2" + hyperdyperid: "npm:^1.2.0" + thingies: "npm:^1.20.0" + peerDependencies: + tslib: 2 + checksum: 10/35bd39116cc103c269cea190e85d3abc1fbfc21524288e01dc8ae8d709cd7a4581429d7d0eaae9c5473ec1c395042a8b552daa5bf169e8db1ebc624da39a9642 + languageName: node + linkType: hard + +"@jsonjoy.com/json-pointer@npm:^1.0.1": + version: 1.0.1 + resolution: "@jsonjoy.com/json-pointer@npm:1.0.1" + dependencies: + "@jsonjoy.com/util": "npm:^1.3.0" + peerDependencies: + tslib: 2 + checksum: 10/ff15df95df38677a09fe2155cf4521844c9f0653c77a7090bb6e726d275fb78ab6c3543c4ebdc14aff07e44da08b1545631a63e42e217c18059194957e060ed9 + languageName: node + linkType: hard + +"@jsonjoy.com/util@npm:^1.1.2, @jsonjoy.com/util@npm:^1.3.0": + version: 1.9.0 + resolution: "@jsonjoy.com/util@npm:1.9.0" + dependencies: + "@jsonjoy.com/buffers": "npm:^1.0.0" + "@jsonjoy.com/codegen": "npm:^1.0.0" + peerDependencies: + tslib: 2 + checksum: 10/1a6e5301d725a7161b93ff707eb1a954bf4552a2fa96eee9a960d3ae3ed5f993d18b56dcff29e98036341a5968c5d1b2dfe21f76695390e7f0d89b81f24c85e0 + languageName: node + linkType: hard + "@leichtgewicht/ip-codec@npm:^2.0.1": version: 2.0.4 resolution: "@leichtgewicht/ip-codec@npm:2.0.4" @@ -3353,6 +3458,15 @@ __metadata: languageName: node linkType: hard +"@types/node@npm:^22.10.5": + version: 22.17.0 + resolution: "@types/node@npm:22.17.0" + dependencies: + undici-types: "npm:~6.21.0" + checksum: 10/f77b0e1c3c00e438b56c726d6b1170d4969c600cc8d4ecf2c2aa7692243a8ff455a3d530760da95e0b6aab059c4605a384b43d18f96646c745ff133c00b84875 + languageName: node + linkType: hard + "@types/prismjs@npm:^1.26.0": version: 1.26.3 resolution: "@types/prismjs@npm:1.26.3" @@ -3681,6 +3795,20 @@ __metadata: languageName: node linkType: hard +"@yarnpkg/lockfile@npm:^1.1.0": + version: 1.1.0 + resolution: "@yarnpkg/lockfile@npm:1.1.0" + checksum: 10/cd19e1114aaf10a05126aeea8833ef4ca8af8a46e88e12884f8359d19333fd19711036dbc2698dbe937f81f037070cf9a8da45c2e8c6ca19cafd7d15659094ed + languageName: node + linkType: hard + +"@zip.js/zip.js@npm:^2.7.44": + version: 2.7.71 + resolution: "@zip.js/zip.js@npm:2.7.71" + checksum: 10/acc449fbf30f5148c4caef133d7568b0210d18dbb661e9681d62f059512e8abd44e575b2cecd3dc14fc954cce3375ae05f9aa3c058fa6016c7820416a3b93bb8 + languageName: node + linkType: hard + "abbrev@npm:^2.0.0": version: 2.0.0 resolution: "abbrev@npm:2.0.0" @@ -4051,6 +4179,19 @@ __metadata: languageName: node linkType: hard +"assert@npm:^2.1.0": + version: 2.1.0 + resolution: "assert@npm:2.1.0" + dependencies: + call-bind: "npm:^1.0.2" + is-nan: "npm:^1.3.2" + object-is: "npm:^1.1.5" + object.assign: "npm:^4.1.4" + util: "npm:^0.12.5" + checksum: 10/6b9d813c8eef1c0ac13feac5553972e4bd180ae16000d4eb5c0ded2489188737c75a5aacefc97a985008b37502f62fe1bad34da1a7481a54bbfabec3964c8aa7 + languageName: node + linkType: hard + "astring@npm:^1.8.0": version: 1.8.6 resolution: "astring@npm:1.8.6" @@ -4060,6 +4201,13 @@ __metadata: languageName: node linkType: hard +"at-least-node@npm:^1.0.0": + version: 1.0.0 + resolution: "at-least-node@npm:1.0.0" + checksum: 10/463e2f8e43384f1afb54bc68485c436d7622acec08b6fad269b421cb1d29cebb5af751426793d0961ed243146fe4dc983402f6d5a51b720b277818dbf6f2e49e + languageName: node + linkType: hard + "autoprefixer@npm:^10.4.19, autoprefixer@npm:^10.4.21": version: 10.4.21 resolution: "autoprefixer@npm:10.4.21" @@ -4159,6 +4307,13 @@ __metadata: languageName: node linkType: hard +"base64-js@npm:^1.3.1": + version: 1.5.1 + resolution: "base64-js@npm:1.5.1" + checksum: 10/669632eb3745404c2f822a18fc3a0122d2f9a7a13f7fb8b5823ee19d1d2ff9ee5b52c53367176ea4ad093c332fd5ab4bd0ebae5a8e27917a4105a4cfc86b1005 + languageName: node + linkType: hard + "batch@npm:0.6.1": version: 0.6.1 resolution: "batch@npm:0.6.1" @@ -4300,6 +4455,16 @@ __metadata: languageName: node linkType: hard +"buffer@npm:^6.0.3": + version: 6.0.3 + resolution: "buffer@npm:6.0.3" + dependencies: + base64-js: "npm:^1.3.1" + ieee754: "npm:^1.2.1" + checksum: 10/b6bc68237ebf29bdacae48ce60e5e28fc53ae886301f2ad9496618efac49427ed79096750033e7eab1897a4f26ae374ace49106a5758f38fb70c78c9fda2c3b1 + languageName: node + linkType: hard + "bytes@npm:3.0.0": version: 3.0.0 resolution: "bytes@npm:3.0.0" @@ -4366,7 +4531,7 @@ __metadata: languageName: node linkType: hard -"call-bind@npm:^1.0.2, call-bind@npm:^1.0.7, call-bind@npm:^1.0.8": +"call-bind@npm:^1.0.0, call-bind@npm:^1.0.2, call-bind@npm:^1.0.7, call-bind@npm:^1.0.8": version: 1.0.8 resolution: "call-bind@npm:1.0.8" dependencies: @@ -4473,6 +4638,20 @@ __metadata: languageName: node linkType: hard +"chalk@npm:^5.3.0": + version: 5.4.1 + resolution: "chalk@npm:5.4.1" + checksum: 10/29df3ffcdf25656fed6e95962e2ef86d14dfe03cd50e7074b06bad9ffbbf6089adbb40f75c00744d843685c8d008adaf3aed31476780312553caf07fa86e5bc7 + languageName: node + linkType: hard + +"change-case@npm:^5.3.0": + version: 5.4.4 + resolution: "change-case@npm:5.4.4" + checksum: 10/446e5573f3c854290a91292afef92b957d2e43a928260c91989b482aa860caaa29711b6725fc40c200af68061cbab357b033446d16a17bc5c553636994074e92 + languageName: node + linkType: hard + "char-regex@npm:^1.0.2": version: 1.0.2 resolution: "char-regex@npm:1.0.2" @@ -4589,7 +4768,7 @@ __metadata: languageName: node linkType: hard -"ci-info@npm:^3.2.0": +"ci-info@npm:^3.2.0, ci-info@npm:^3.7.0": version: 3.9.0 resolution: "ci-info@npm:3.9.0" checksum: 10/75bc67902b4d1c7b435497adeb91598f6d52a3389398e44294f6601b20cfef32cf2176f7be0eb961d9e085bb333a8a5cae121cb22f81cf238ae7f58eb80e9397 @@ -4738,6 +4917,13 @@ __metadata: languageName: node linkType: hard +"commander@npm:^12.1.0": + version: 12.1.0 + resolution: "commander@npm:12.1.0" + checksum: 10/cdaeb672d979816853a4eed7f1310a9319e8b976172485c2a6b437ed0db0a389a44cfb222bfbde772781efa9f215bdd1b936f80d6b249485b465c6cb906e1f93 + languageName: node + linkType: hard + "commander@npm:^2.20.0": version: 2.20.3 resolution: "commander@npm:2.20.3" @@ -4780,6 +4966,13 @@ __metadata: languageName: node linkType: hard +"component-emitter@npm:^2.0.0": + version: 2.0.0 + resolution: "component-emitter@npm:2.0.0" + checksum: 10/017715272fcf82203932237260451df4c7c27e32a51a4a291faf6f503d6ef9e8583add993850cb5b98cc0c1b0846ff0c68938ad3ef1d544f9b480a290e74fb4f + languageName: node + linkType: hard + "compressible@npm:~2.0.16": version: 2.0.18 resolution: "compressible@npm:2.0.18" @@ -6195,7 +6388,7 @@ __metadata: languageName: node linkType: hard -"events@npm:^3.2.0": +"events@npm:^3.2.0, events@npm:^3.3.0": version: 3.3.0 resolution: "events@npm:3.3.0" checksum: 10/a3d47e285e28d324d7180f1e493961a2bbb4cad6412090e4dec114f4db1f5b560c7696ee8e758f55e23913ede856e3689cd3aa9ae13c56b5d8314cd3b3ddd1be @@ -6435,6 +6628,15 @@ __metadata: languageName: node linkType: hard +"find-yarn-workspace-root@npm:^2.0.0": + version: 2.0.0 + resolution: "find-yarn-workspace-root@npm:2.0.0" + dependencies: + micromatch: "npm:^4.0.2" + checksum: 10/7fa7942849eef4d5385ee96a0a9a5a9afe885836fd72ed6a4280312a38690afea275e7d09b343fe97daf0412d833f8ac4b78c17fc756386d9ebebf0759d707a7 + languageName: node + linkType: hard + "flat-cache@npm:^4.0.0": version: 4.0.1 resolution: "flat-cache@npm:4.0.1" @@ -6547,6 +6749,18 @@ __metadata: languageName: node linkType: hard +"fs-extra@npm:^9.0.0": + version: 9.1.0 + resolution: "fs-extra@npm:9.1.0" + dependencies: + at-least-node: "npm:^1.0.0" + graceful-fs: "npm:^4.2.0" + jsonfile: "npm:^6.0.1" + universalify: "npm:^2.0.0" + checksum: 10/08600da1b49552ed23dfac598c8fc909c66776dd130fea54fbcad22e330f7fcc13488bb995f6bc9ce5651aa35b65702faf616fe76370ee56f1aade55da982dca + languageName: node + linkType: hard + "fs-minipass@npm:^2.0.0": version: 2.1.0 resolution: "fs-minipass@npm:2.1.0" @@ -6747,6 +6961,22 @@ __metadata: languageName: node linkType: hard +"glob@npm:^10.4.2": + version: 10.4.5 + resolution: "glob@npm:10.4.5" + dependencies: + foreground-child: "npm:^3.1.0" + jackspeak: "npm:^3.1.2" + minimatch: "npm:^9.0.4" + minipass: "npm:^7.1.2" + package-json-from-dist: "npm:^1.0.0" + path-scurry: "npm:^1.11.1" + bin: + glob: dist/esm/bin.mjs + checksum: 10/698dfe11828b7efd0514cd11e573eaed26b2dff611f0400907281ce3eab0c1e56143ef9b35adc7c77ecc71fba74717b510c7c223d34ca8a98ec81777b293d4ac + languageName: node + linkType: hard + "glob@npm:^11.0.0": version: 11.0.2 resolution: "glob@npm:11.0.2" @@ -7402,6 +7632,13 @@ __metadata: languageName: node linkType: hard +"hyperdyperid@npm:^1.2.0": + version: 1.2.0 + resolution: "hyperdyperid@npm:1.2.0" + checksum: 10/64abb5568ff17aa08ac0175ae55e46e22831c5552be98acdd1692081db0209f36fff58b31432017b4e1772c178962676a2cc3c54e4d5d7f020d7710cec7ad7a6 + languageName: node + linkType: hard + "iconv-lite@npm:0.4.24": version: 0.4.24 resolution: "iconv-lite@npm:0.4.24" @@ -7429,6 +7666,13 @@ __metadata: languageName: node linkType: hard +"ieee754@npm:^1.2.1": + version: 1.2.1 + resolution: "ieee754@npm:1.2.1" + checksum: 10/d9f2557a59036f16c282aaeb107832dc957a93d73397d89bbad4eb1130560560eb695060145e8e6b3b498b15ab95510226649a0b8f52ae06583575419fe10fc4 + languageName: node + linkType: hard + "ignore@npm:^5.2.0, ignore@npm:^5.2.4": version: 5.2.4 resolution: "ignore@npm:5.2.4" @@ -7596,6 +7840,16 @@ __metadata: languageName: node linkType: hard +"is-arguments@npm:^1.0.4": + version: 1.2.0 + resolution: "is-arguments@npm:1.2.0" + dependencies: + call-bound: "npm:^1.0.2" + has-tostringtag: "npm:^1.0.2" + checksum: 10/471a8ef631b8ee8829c43a8ab05c081700c0e25180c73d19f3bf819c1a8448c426a9e8e601f278973eca68966384b16ceb78b8c63af795b099cd199ea5afc457 + languageName: node + linkType: hard + "is-array-buffer@npm:^3.0.4, is-array-buffer@npm:^3.0.5": version: 3.0.5 resolution: "is-array-buffer@npm:3.0.5" @@ -7754,6 +8008,18 @@ __metadata: languageName: node linkType: hard +"is-generator-function@npm:^1.0.7": + version: 1.1.0 + resolution: "is-generator-function@npm:1.1.0" + dependencies: + call-bound: "npm:^1.0.3" + get-proto: "npm:^1.0.0" + has-tostringtag: "npm:^1.0.2" + safe-regex-test: "npm:^1.1.0" + checksum: 10/5906ff51a856a5fbc6b90a90fce32040b0a6870da905f98818f1350f9acadfc9884f7c3dec833fce04b83dd883937b86a190b6593ede82e8b1af8b6c4ecf7cbd + languageName: node + linkType: hard + "is-glob@npm:^4.0.0, is-glob@npm:^4.0.1, is-glob@npm:^4.0.3, is-glob@npm:~4.0.1": version: 4.0.3 resolution: "is-glob@npm:4.0.3" @@ -7794,6 +8060,16 @@ __metadata: languageName: node linkType: hard +"is-nan@npm:^1.3.2": + version: 1.3.2 + resolution: "is-nan@npm:1.3.2" + dependencies: + call-bind: "npm:^1.0.0" + define-properties: "npm:^1.1.3" + checksum: 10/1f784d3472c09bc2e47acba7ffd4f6c93b0394479aa613311dc1d70f1bfa72eb0846c81350967722c959ba65811bae222204d6c65856fdce68f31986140c7b0e + languageName: node + linkType: hard + "is-npm@npm:^6.0.0": version: 6.0.0 resolution: "is-npm@npm:6.0.0" @@ -7846,7 +8122,7 @@ __metadata: languageName: node linkType: hard -"is-plain-obj@npm:^4.0.0": +"is-plain-obj@npm:^4.0.0, is-plain-obj@npm:^4.1.0": version: 4.1.0 resolution: "is-plain-obj@npm:4.1.0" checksum: 10/6dc45da70d04a81f35c9310971e78a6a3c7a63547ef782e3a07ee3674695081b6ca4e977fbb8efc48dae3375e0b34558d2bcd722aec9bddfa2d7db5b041be8ce @@ -7934,7 +8210,7 @@ __metadata: languageName: node linkType: hard -"is-typed-array@npm:^1.1.13, is-typed-array@npm:^1.1.14, is-typed-array@npm:^1.1.15": +"is-typed-array@npm:^1.1.13, is-typed-array@npm:^1.1.14, is-typed-array@npm:^1.1.15, is-typed-array@npm:^1.1.3": version: 1.1.15 resolution: "is-typed-array@npm:1.1.15" dependencies: @@ -7976,7 +8252,7 @@ __metadata: languageName: node linkType: hard -"is-wsl@npm:^2.2.0": +"is-wsl@npm:^2.1.1, is-wsl@npm:^2.2.0": version: 2.2.0 resolution: "is-wsl@npm:2.2.0" dependencies: @@ -8228,7 +8504,20 @@ __metadata: languageName: node linkType: hard -"json5@npm:^2.1.2, json5@npm:^2.2.3": +"json-stable-stringify@npm:^1.0.2": + version: 1.3.0 + resolution: "json-stable-stringify@npm:1.3.0" + dependencies: + call-bind: "npm:^1.0.8" + call-bound: "npm:^1.0.4" + isarray: "npm:^2.0.5" + jsonify: "npm:^0.0.1" + object-keys: "npm:^1.1.1" + checksum: 10/6661e9704733d2826b2012fea7b152ca216c82d8c725c8d390ee6434eabdf43c66fa6e6b423cce9bf95f8fec0ef52004c09a99043c7daf6e58595a0cff204629 + languageName: node + linkType: hard + +"json5@npm:^2.1.2, json5@npm:^2.2.2, json5@npm:^2.2.3": version: 2.2.3 resolution: "json5@npm:2.2.3" bin: @@ -8250,6 +8539,13 @@ __metadata: languageName: node linkType: hard +"jsonify@npm:^0.0.1": + version: 0.0.1 + resolution: "jsonify@npm:0.0.1" + checksum: 10/7b86b6f4518582ff1d8b7624ed6c6277affd5246445e864615dbdef843a4057ac58587684faf129ea111eeb80e01c15f0a4d9d03820eb3f3985fa67e81b12398 + languageName: node + linkType: hard + "jsx-ast-utils@npm:^2.4.1 || ^3.0.0": version: 3.3.5 resolution: "jsx-ast-utils@npm:3.3.5" @@ -8850,6 +9146,18 @@ __metadata: languageName: node linkType: hard +"memfs@npm:^4.17.0": + version: 4.36.0 + resolution: "memfs@npm:4.36.0" + dependencies: + "@jsonjoy.com/json-pack": "npm:^1.0.3" + "@jsonjoy.com/util": "npm:^1.3.0" + tree-dump: "npm:^1.0.1" + tslib: "npm:^2.0.0" + checksum: 10/4898187c3278bd127340ec3d6c51d1fa77faa50aad71a8a1e4b7c02abbccd8485dccc7f565291b386b0cc96e5ac06902e4645108fad44e458fe8c1dfee3caf42 + languageName: node + linkType: hard + "merge-descriptors@npm:1.0.1": version: 1.0.1 resolution: "merge-descriptors@npm:1.0.1" @@ -9494,7 +9802,7 @@ __metadata: languageName: node linkType: hard -"minimist@npm:^1.2.0": +"minimist@npm:^1.2.0, minimist@npm:^1.2.6": version: 1.2.8 resolution: "minimist@npm:1.2.8" checksum: 10/908491b6cc15a6c440ba5b22780a0ba89b9810e1aea684e253e43c4e3b8d56ec1dcdd7ea96dde119c29df59c936cde16062159eae4225c691e19c70b432b6e6f @@ -9807,6 +10115,16 @@ __metadata: languageName: node linkType: hard +"object-is@npm:^1.1.5": + version: 1.1.6 + resolution: "object-is@npm:1.1.6" + dependencies: + call-bind: "npm:^1.0.7" + define-properties: "npm:^1.2.1" + checksum: 10/4f6f544773a595da21c69a7531e0e1d6250670f4e09c55f47eb02c516035cfcb1b46ceb744edfd3ecb362309dbccb6d7f88e43bf42e4d4595ac10a329061053a + languageName: node + linkType: hard + "object-keys@npm:^1.1.1": version: 1.1.1 resolution: "object-keys@npm:1.1.1" @@ -9905,6 +10223,16 @@ __metadata: languageName: node linkType: hard +"open@npm:^7.4.2": + version: 7.4.2 + resolution: "open@npm:7.4.2" + dependencies: + is-docker: "npm:^2.0.0" + is-wsl: "npm:^2.1.1" + checksum: 10/4fc02ed3368dcd5d7247ad3566433ea2695b0713b041ebc0eeb2f0f9e5d4e29fc2068f5cdd500976b3464e77fe8b61662b1b059c73233ccc601fe8b16d6c1cd6 + languageName: node + linkType: hard + "open@npm:^8.0.9, open@npm:^8.4.0": version: 8.4.2 resolution: "open@npm:8.4.2" @@ -9946,6 +10274,13 @@ __metadata: languageName: node linkType: hard +"os-tmpdir@npm:~1.0.2": + version: 1.0.2 + resolution: "os-tmpdir@npm:1.0.2" + checksum: 10/5666560f7b9f10182548bf7013883265be33620b1c1b4a4d405c25be2636f970c5488ff3e6c48de75b55d02bde037249fe5dbfbb4c0fb7714953d56aed062e6d + languageName: node + linkType: hard + "own-keys@npm:^1.0.1": version: 1.0.1 resolution: "own-keys@npm:1.0.1" @@ -10163,6 +10498,31 @@ __metadata: languageName: node linkType: hard +"patch-package@npm:^8.0.0": + version: 8.0.0 + resolution: "patch-package@npm:8.0.0" + dependencies: + "@yarnpkg/lockfile": "npm:^1.1.0" + chalk: "npm:^4.1.2" + ci-info: "npm:^3.7.0" + cross-spawn: "npm:^7.0.3" + find-yarn-workspace-root: "npm:^2.0.0" + fs-extra: "npm:^9.0.0" + json-stable-stringify: "npm:^1.0.2" + klaw-sync: "npm:^6.0.0" + minimist: "npm:^1.2.6" + open: "npm:^7.4.2" + rimraf: "npm:^2.6.3" + semver: "npm:^7.5.3" + slash: "npm:^2.0.0" + tmp: "npm:^0.0.33" + yaml: "npm:^2.2.2" + bin: + patch-package: index.js + checksum: 10/8714322c35b29266e71c82d58443ce5322400a546a3327f1b8907b8eeb7e366dff33c4fdfbd25e3f0b3a9927189c26e9ac60636ca1e4140d6dbc11cca10f9b5d + languageName: node + linkType: hard + "path-exists@npm:^4.0.0": version: 4.0.0 resolution: "path-exists@npm:4.0.0" @@ -10255,6 +10615,23 @@ __metadata: languageName: node linkType: hard +"path-unified@npm:^0.2.0": + version: 0.2.0 + resolution: "path-unified@npm:0.2.0" + checksum: 10/3ae8455d5da516ab9623675430abc6e4dc3fbfcd2dc966281b7506cf0d86d0d3608281ff9049266d0e5b43154087393e776857c2e553d8fed3d46df6ea60d96d + languageName: node + linkType: hard + +"path@npm:^0.12.7": + version: 0.12.7 + resolution: "path@npm:0.12.7" + dependencies: + process: "npm:^0.11.1" + util: "npm:^0.10.3" + checksum: 10/d49d101f9596613cf4cd1d4ebc4e64ba9a9df5d9cd75a410cfe87a88ce4bf0e2617ff44b92025376f7ecb02e88a6308b27f7f39d810f2335a5126f762487adfb + languageName: node + linkType: hard + "periscopic@npm:^3.0.0": version: 3.1.0 resolution: "periscopic@npm:3.1.0" @@ -11144,6 +11521,15 @@ __metadata: languageName: node linkType: hard +"prettier@npm:^3.3.3": + version: 3.6.2 + resolution: "prettier@npm:3.6.2" + bin: + prettier: bin/prettier.cjs + checksum: 10/1213691706bcef1371d16ef72773c8111106c3533b660b1cc8ec158bd109cdf1462804125f87f981f23c4a3dba053b6efafda30ab0114cc5b4a725606bb9ff26 + languageName: node + linkType: hard + "pretty-error@npm:^4.0.0": version: 4.0.0 resolution: "pretty-error@npm:4.0.0" @@ -11201,6 +11587,13 @@ __metadata: languageName: node linkType: hard +"process@npm:^0.11.1": + version: 0.11.10 + resolution: "process@npm:0.11.10" + checksum: 10/dbaa7e8d1d5cf375c36963ff43116772a989ef2bb47c9bdee20f38fd8fc061119cf38140631cf90c781aca4d3f0f0d2c834711952b728953f04fd7d238f59f5b + languageName: node + linkType: hard + "promise-retry@npm:^2.0.1": version: 2.0.1 resolution: "promise-retry@npm:2.0.1" @@ -11256,6 +11649,13 @@ __metadata: languageName: node linkType: hard +"punycode@npm:^1.4.1": + version: 1.4.1 + resolution: "punycode@npm:1.4.1" + checksum: 10/af2700dde1a116791ff8301348ff344c47d6c224e875057237d1b5112035655fb07a6175cfdb8bf0e3a8cdfd2dc82b3a622e0aefd605566c0e949a6d0d1256a4 + languageName: node + linkType: hard + "punycode@npm:^2.1.0": version: 2.3.1 resolution: "punycode@npm:2.3.1" @@ -11281,6 +11681,15 @@ __metadata: languageName: node linkType: hard +"qs@npm:^6.12.3": + version: 6.14.0 + resolution: "qs@npm:6.14.0" + dependencies: + side-channel: "npm:^1.1.0" + checksum: 10/a60e49bbd51c935a8a4759e7505677b122e23bf392d6535b8fc31c1e447acba2c901235ecb192764013cd2781723dc1f61978b5fdd93cc31d7043d31cdc01974 + languageName: node + linkType: hard + "queue-microtask@npm:^1.2.2": version: 1.2.3 resolution: "queue-microtask@npm:1.2.3" @@ -11901,6 +12310,17 @@ __metadata: languageName: node linkType: hard +"rimraf@npm:^2.6.3": + version: 2.7.1 + resolution: "rimraf@npm:2.7.1" + dependencies: + glob: "npm:^7.1.3" + bin: + rimraf: ./bin.js + checksum: 10/4586c296c736483e297da7cffd19475e4a3e41d07b1ae124aad5d687c79e4ffa716bdac8732ed1db942caf65271cee9dd39f8b639611de161a2753e2112ffe1d + languageName: node + linkType: hard + "rimraf@npm:^3.0.2": version: 3.0.2 resolution: "rimraf@npm:3.0.2" @@ -12095,6 +12515,15 @@ __metadata: languageName: node linkType: hard +"semver@npm:^7.5.3": + version: 7.7.2 + resolution: "semver@npm:7.7.2" + bin: + semver: bin/semver.js + checksum: 10/7a24cffcaa13f53c09ce55e05efe25cd41328730b2308678624f8b9f5fc3093fc4d189f47950f0b811ff8f3c3039c24a2c36717ba7961615c682045bf03e1dda + languageName: node + linkType: hard + "send@npm:0.18.0": version: 0.18.0 resolution: "send@npm:0.18.0" @@ -12360,6 +12789,13 @@ __metadata: languageName: node linkType: hard +"slash@npm:^2.0.0": + version: 2.0.0 + resolution: "slash@npm:2.0.0" + checksum: 10/512d4350735375bd11647233cb0e2f93beca6f53441015eea241fe784d8068281c3987fbaa93e7ef1c38df68d9c60013045c92837423c69115297d6169aa85e6 + languageName: node + linkType: hard + "slash@npm:^3.0.0": version: 3.0.0 resolution: "slash@npm:3.0.0" @@ -12553,6 +12989,15 @@ __metadata: languageName: node linkType: hard +"stream@npm:^0.0.3": + version: 0.0.3 + resolution: "stream@npm:0.0.3" + dependencies: + component-emitter: "npm:^2.0.0" + checksum: 10/a40db1ce8def8929c689c98c1644288d4099d34be8e8f72853c7cb8e2bae64e90f5c967f79fd792cdf349d8a3baf38f19d99e7f7ff13c35b4f7c5ae1b78c0115 + languageName: node + linkType: hard + "string-width-cjs@npm:string-width@^4.2.0, string-width@npm:^4.1.0, string-width@npm:^4.2.0": version: 4.2.3 resolution: "string-width@npm:4.2.3" @@ -12644,7 +13089,7 @@ __metadata: languageName: node linkType: hard -"string_decoder@npm:^1.1.1": +"string_decoder@npm:^1.1.1, string_decoder@npm:^1.3.0": version: 1.3.0 resolution: "string_decoder@npm:1.3.0" dependencies: @@ -12729,6 +13174,30 @@ __metadata: languageName: node linkType: hard +"style-dictionary@npm:^5.0.1": + version: 5.0.1 + resolution: "style-dictionary@npm:5.0.1" + dependencies: + "@bundled-es-modules/deepmerge": "npm:^4.3.1" + "@bundled-es-modules/glob": "npm:^10.4.2" + "@bundled-es-modules/memfs": "npm:^4.9.4" + "@types/node": "npm:^22.10.5" + "@zip.js/zip.js": "npm:^2.7.44" + chalk: "npm:^5.3.0" + change-case: "npm:^5.3.0" + commander: "npm:^12.1.0" + is-plain-obj: "npm:^4.1.0" + json5: "npm:^2.2.2" + patch-package: "npm:^8.0.0" + path-unified: "npm:^0.2.0" + prettier: "npm:^3.3.3" + tinycolor2: "npm:^1.6.0" + bin: + style-dictionary: bin/style-dictionary.js + checksum: 10/fa5ffe30677e567e92ed1dd48f2604475541da97f5e33fe9d8fccc31aa1d82d451f6eeb60362721d2114b5c794afe674f242d8382102ba1669c29c4c7d8dc9e8 + languageName: node + linkType: hard + "style-to-object@npm:^0.4.0": version: 0.4.4 resolution: "style-to-object@npm:0.4.4" @@ -12839,6 +13308,7 @@ __metadata: react-dom: "npm:@preact/compat@*" rehype-stringify: "npm:^10.0.1" rimraf: "npm:^6.0.1" + style-dictionary: "npm:^5.0.1" svgo: "npm:^4.0.0" typescript: "npm:^5.8.3" languageName: unknown @@ -12953,6 +13423,15 @@ __metadata: languageName: node linkType: hard +"thingies@npm:^1.20.0": + version: 1.21.0 + resolution: "thingies@npm:1.21.0" + peerDependencies: + tslib: ^2 + checksum: 10/5c3954b67391d1432c252cb7089f29480e2164f06987a63d83c9747aa6999bfc313d6edfce71ed967316a3378dfcaf38f35ea77aaa5d423edaf776b8ff854f83 + languageName: node + linkType: hard + "thunky@npm:^1.0.2": version: 1.1.0 resolution: "thunky@npm:1.1.0" @@ -12974,6 +13453,13 @@ __metadata: languageName: node linkType: hard +"tinycolor2@npm:^1.6.0": + version: 1.6.0 + resolution: "tinycolor2@npm:1.6.0" + checksum: 10/066c3acf4f82b81c58a0d3ab85f49407efe95ba87afc3c7a16b1d77625193dfbe10dd46c26d0a263c1137361dd5a6a68bff2fb71def5fb9b9aec940fb030bcd4 + languageName: node + linkType: hard + "tinypool@npm:^1.0.2": version: 1.1.1 resolution: "tinypool@npm:1.1.1" @@ -12981,6 +13467,15 @@ __metadata: languageName: node linkType: hard +"tmp@npm:^0.0.33": + version: 0.0.33 + resolution: "tmp@npm:0.0.33" + dependencies: + os-tmpdir: "npm:~1.0.2" + checksum: 10/09c0abfd165cff29b32be42bc35e80b8c64727d97dedde6550022e88fa9fd39a084660415ed8e3ebaa2aca1ee142f86df8b31d4196d4f81c774a3a20fd4b6abf + languageName: node + linkType: hard + "to-regex-range@npm:^5.0.1": version: 5.0.1 resolution: "to-regex-range@npm:5.0.1" @@ -13004,6 +13499,15 @@ __metadata: languageName: node linkType: hard +"tree-dump@npm:^1.0.1": + version: 1.0.3 + resolution: "tree-dump@npm:1.0.3" + peerDependencies: + tslib: 2 + checksum: 10/cf382e61cfb5e3ff8f03425b5bc1923e8f0e385b3a02f43d9d0a32d09da9984477e0f2a7698628662263d1d3f1af17e33486c77ff454978f0f9f07fb5d1fe9a2 + languageName: node + linkType: hard + "trim-lines@npm:^3.0.0": version: 3.0.1 resolution: "trim-lines@npm:3.0.1" @@ -13025,6 +13529,13 @@ __metadata: languageName: node linkType: hard +"tslib@npm:^2.0.0": + version: 2.8.1 + resolution: "tslib@npm:2.8.1" + checksum: 10/3e2e043d5c2316461cb54e5c7fe02c30ef6dccb3384717ca22ae5c6b5bc95232a6241df19c622d9c73b809bea33b187f6dbc73030963e29950c2141bc32a79f7 + languageName: node + linkType: hard + "tslib@npm:^2.0.3, tslib@npm:^2.4.0, tslib@npm:^2.6.0": version: 2.6.2 resolution: "tslib@npm:2.6.2" @@ -13173,6 +13684,13 @@ __metadata: languageName: node linkType: hard +"undici-types@npm:~6.21.0": + version: 6.21.0 + resolution: "undici-types@npm:6.21.0" + checksum: 10/ec8f41aa4359d50f9b59fa61fe3efce3477cc681908c8f84354d8567bb3701fafdddf36ef6bff307024d3feb42c837cf6f670314ba37fc8145e219560e473d14 + languageName: node + linkType: hard + "undici@npm:^7.10.0": version: 7.11.0 resolution: "undici@npm:7.11.0" @@ -13403,6 +13921,16 @@ __metadata: languageName: node linkType: hard +"url@npm:^0.11.3": + version: 0.11.4 + resolution: "url@npm:0.11.4" + dependencies: + punycode: "npm:^1.4.1" + qs: "npm:^6.12.3" + checksum: 10/e787d070f0756518b982a4653ef6cdf4d9030d8691eee2d483344faf2b530b71d302287fa63b292299455fea5075c502a5ad5f920cb790e95605847f957a65e4 + languageName: node + linkType: hard + "use-editable@npm:^2.3.3": version: 2.3.3 resolution: "use-editable@npm:2.3.3" @@ -13419,6 +13947,28 @@ __metadata: languageName: node linkType: hard +"util@npm:^0.10.3": + version: 0.10.4 + resolution: "util@npm:0.10.4" + dependencies: + inherits: "npm:2.0.3" + checksum: 10/1200a1ca2b474758342b3a0c5261c56f14ef09ad7eeaec3e6f449f5776ecdfce09a153cad62652b823e74647cdcfd2918552eadd2434783dfb58dabc5061803a + languageName: node + linkType: hard + +"util@npm:^0.12.5": + version: 0.12.5 + resolution: "util@npm:0.12.5" + dependencies: + inherits: "npm:^2.0.3" + is-arguments: "npm:^1.0.4" + is-generator-function: "npm:^1.0.7" + is-typed-array: "npm:^1.1.3" + which-typed-array: "npm:^1.1.2" + checksum: 10/61a10de7753353dd4d744c917f74cdd7d21b8b46379c1e48e1c4fd8e83f8190e6bd9978fc4e5102ab6a10ebda6019d1b36572fa4a325e175ec8b789a121f6147 + languageName: node + linkType: hard + "utila@npm:~0.4": version: 0.4.0 resolution: "utila@npm:0.4.0" @@ -13768,7 +14318,7 @@ __metadata: languageName: node linkType: hard -"which-typed-array@npm:^1.1.16, which-typed-array@npm:^1.1.19": +"which-typed-array@npm:^1.1.16, which-typed-array@npm:^1.1.19, which-typed-array@npm:^1.1.2": version: 1.1.19 resolution: "which-typed-array@npm:1.1.19" dependencies: @@ -13931,6 +14481,15 @@ __metadata: languageName: node linkType: hard +"yaml@npm:^2.2.2": + version: 2.8.0 + resolution: "yaml@npm:2.8.0" + bin: + yaml: bin.mjs + checksum: 10/7d4bd9c10d0e467601f496193f2ac254140f8e36f96f5ff7f852b9ce37974168eb7354f4c36dc8837dde527a2043d004b6aff48818ec24a69ab2dd3c6b6c381c + languageName: node + linkType: hard + "yocto-queue@npm:^0.1.0": version: 0.1.0 resolution: "yocto-queue@npm:0.1.0"