{"_id":"@bryan-cunningham-design/igenie-tokens","_rev":"5-770f09e81c1e7f05b284fe598aee1a91","name":"@bryan-cunningham-design/igenie-tokens","dist-tags":{"latest":"0.2.0"},"versions":{"0.0.0":{"name":"@bryan-cunningham-design/igenie-tokens","version":"0.0.0","keywords":["design-tokens","dtcg","style-dictionary","tailwindcss","design-system"],"license":"UNLICENSED","_id":"@bryan-cunningham-design/igenie-tokens@0.0.0","maintainers":[{"name":"jschr","email":"npm@jschr.io"}],"homepage":"https://igenie-www.jschr.workers.dev/","dist":{"shasum":"253d58102c00c7a770a4ebc1305046862fc0736c","tarball":"https://registry.npmjs.org/@bryan-cunningham-design/igenie-tokens/-/igenie-tokens-0.0.0.tgz","fileCount":30,"integrity":"sha512-TMNEv9flljQXuJ5nSL3tRPji/6lLiuUxjuyIcSoT4EgyOpNeUbX8Nf7lfXEsF831O0ms86Q4rO65/0kBZLHHdw==","signatures":[{"sig":"MEUCIQDEgddUzMilGtQZ3gDQKjegCzFUvTHa1Z0bL8SbZXpOCwIgUrLii6iWdhTsqPsIkFQevsiQhyM5tnIon4NAauTW7hM=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":146461},"type":"module","engines":{"node":">=22.13.0"},"exports":{".":{"types":"./dist/js/index.d.ts","default":"./dist/js/index.js"},"./css":"./dist/css/tokens.css","./echarts":"./dist/echarts/theme.json","./css/base":"./dist/css/base.css","./css/dark":"./dist/css/dark.css","./superset":"./dist/superset/theme.json","./css/light":"./dist/css/light.css","./css/theme":"./dist/css/theme.css","./json/base":"./dist/json/base.json","./json/dark":"./dist/json/dark.json","./json/light":"./dist/json/light.json","./package.json":"./package.json"},"scripts":{"build":"node config/build.mjs && tsdown","clean":"node -e \"require('node:fs').rmSync('dist',{recursive:true,force:true})\"","typecheck":"tsc --noEmit -p tsconfig.json"},"_npmUser":{"name":"jschr","email":"npm@jschr.io"},"deprecated":"Placeholder published only to enable trusted publishing. Use 0.0.1 or later.","repository":{"url":"git+https://github.com/Bryan-Cunningham-Design/iGenie.git","type":"git","directory":"packages/tokens"},"description":"i-Genie design tokens — DTCG source of truth, built to CSS custom properties, a Tailwind v4 theme, typed TS and an Ant Design theme for Superset.","directories":{},"sideEffects":["*.css"],"_nodeVersion":"24.15.0","dependencies":{},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"tsdown":"0.22.14","typescript":"7.0.2","style-dictionary":"5.5.1"},"_npmOperationalInternal":{"tmp":"tmp/igenie-tokens_0.0.0_1786932847820_0.6385904957207931","host":"s3://npm-registry-packages-npm-production"}},"0.0.1":{"name":"@bryan-cunningham-design/igenie-tokens","version":"0.0.1","keywords":["design-tokens","dtcg","style-dictionary","tailwindcss","design-system"],"license":"UNLICENSED","_id":"@bryan-cunningham-design/igenie-tokens@0.0.1","maintainers":[{"name":"jschr","email":"npm@jschr.io"}],"homepage":"https://igenie-www.jschr.workers.dev/","dist":{"shasum":"666ae7fa18b2723dbc741a70512480ce81b9b9a4","tarball":"https://registry.npmjs.org/@bryan-cunningham-design/igenie-tokens/-/igenie-tokens-0.0.1.tgz","fileCount":30,"integrity":"sha512-OcPlzgVPd1h8AScddzbMkubHSj7OTlBZcdOiopiLc4Lz7BYs6aQefGGrNXZpwbIjsFvAqBWkTKViNDwf2jnClg==","signatures":[{"sig":"MEUCIFbAV5iV/qc1DcBi+5opSXa/9qdDh7gSd+4FyBf0c9AGAiEA+xyKjUK6KvcTEhRf4yBTHWssDbm8lsSF4esZjU0CBMY=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":146461},"type":"module","engines":{"node":">=22.13.0"},"exports":{".":{"types":"./dist/js/index.d.ts","default":"./dist/js/index.js"},"./css":"./dist/css/tokens.css","./echarts":"./dist/echarts/theme.json","./css/base":"./dist/css/base.css","./css/dark":"./dist/css/dark.css","./superset":"./dist/superset/theme.json","./css/light":"./dist/css/light.css","./css/theme":"./dist/css/theme.css","./json/base":"./dist/json/base.json","./json/dark":"./dist/json/dark.json","./json/light":"./dist/json/light.json","./package.json":"./package.json"},"scripts":{"build":"node config/build.mjs && tsdown","clean":"node -e \"require('node:fs').rmSync('dist',{recursive:true,force:true})\"","typecheck":"tsc --noEmit -p tsconfig.json"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:49fa30fb-150c-4c35-ac0f-32f8aaffcac1"}},"repository":{"url":"git+https://github.com/Bryan-Cunningham-Design/iGenie.git","type":"git","directory":"packages/tokens"},"description":"i-Genie design tokens — DTCG source of truth, built to CSS custom properties, a Tailwind v4 theme, typed TS and an Ant Design theme for Superset.","directories":{},"sideEffects":["*.css"],"_nodeVersion":"24.15.0","dependencies":{},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"tsdown":"0.22.14","typescript":"7.0.2","style-dictionary":"5.5.1"},"_npmOperationalInternal":{"tmp":"tmp/igenie-tokens_0.0.1_1786935462635_0.031519552672282236","host":"s3://npm-registry-packages-npm-production"}},"0.1.0":{"name":"@bryan-cunningham-design/igenie-tokens","version":"0.1.0","keywords":["design-tokens","dtcg","style-dictionary","tailwindcss","design-system"],"license":"UNLICENSED","_id":"@bryan-cunningham-design/igenie-tokens@0.1.0","maintainers":[{"name":"jschr","email":"npm@jschr.io"}],"homepage":"https://igenie-www.jschr.workers.dev/","dist":{"shasum":"f0960b93fc5ab261aab15f76096244b9967bc602","tarball":"https://registry.npmjs.org/@bryan-cunningham-design/igenie-tokens/-/igenie-tokens-0.1.0.tgz","fileCount":30,"integrity":"sha512-VY9vGQtbNVn9LXHxF/Dhe65nNHztgGQieBo4Tu9S/XNc9wce3m8FpM0aOh03d+dyGgHImRLbPUFW3PCaS/EYOA==","signatures":[{"sig":"MEUCIQC3aTOtqM90MLMEcRbH3MGzDmrtBL2GQvjiJGTOSUW37gIgFWtJ+Td0L1ZWX0cttUhoqP6TNCHImFHQl7C1DcAsliU=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":148206},"type":"module","engines":{"node":">=22.13.0"},"exports":{".":{"types":"./dist/js/index.d.ts","default":"./dist/js/index.js"},"./css":"./dist/css/tokens.css","./echarts":"./dist/echarts/theme.json","./css/base":"./dist/css/base.css","./css/dark":"./dist/css/dark.css","./superset":"./dist/superset/theme.json","./css/light":"./dist/css/light.css","./css/theme":"./dist/css/theme.css","./json/base":"./dist/json/base.json","./json/dark":"./dist/json/dark.json","./json/light":"./dist/json/light.json","./package.json":"./package.json"},"scripts":{"build":"node config/build.mjs && tsdown","clean":"node -e \"require('node:fs').rmSync('dist',{recursive:true,force:true})\"","typecheck":"tsc --noEmit -p tsconfig.json"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:49fa30fb-150c-4c35-ac0f-32f8aaffcac1"}},"repository":{"url":"git+https://github.com/Bryan-Cunningham-Design/iGenie.git","type":"git","directory":"packages/tokens"},"description":"i-Genie design tokens — DTCG source of truth, built to CSS custom properties, a Tailwind v4 theme, typed TS and an Ant Design theme for Superset.","directories":{},"sideEffects":["*.css"],"_nodeVersion":"24.15.0","dependencies":{},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"tsdown":"0.22.14","typescript":"7.0.2","style-dictionary":"5.5.1"},"_npmOperationalInternal":{"tmp":"tmp/igenie-tokens_0.1.0_1787100551969_0.2742999537072701","host":"s3://npm-registry-packages-npm-production"}},"0.2.0":{"name":"@bryan-cunningham-design/igenie-tokens","version":"0.2.0","description":"i-Genie design tokens — DTCG source of truth, built to CSS custom properties, a Tailwind v4 theme, typed TS and an Ant Design theme for Superset.","keywords":["design-tokens","dtcg","style-dictionary","tailwindcss","design-system"],"license":"UNLICENSED","repository":{"type":"git","url":"git+https://github.com/Bryan-Cunningham-Design/iGenie.git","directory":"packages/tokens"},"homepage":"https://igenie-www.jschr.workers.dev/","publishConfig":{"access":"public"},"type":"module","sideEffects":["*.css"],"exports":{".":{"types":"./dist/js/index.d.ts","default":"./dist/js/index.js"},"./css":"./dist/css/tokens.css","./css/base":"./dist/css/base.css","./css/light":"./dist/css/light.css","./css/dark":"./dist/css/dark.css","./css/theme":"./dist/css/theme.css","./json/light":"./dist/json/light.json","./json/dark":"./dist/json/dark.json","./json/base":"./dist/json/base.json","./superset":"./dist/superset/theme.json","./echarts":"./dist/echarts/theme.json","./package.json":"./package.json"},"dependencies":{},"devDependencies":{"style-dictionary":"5.5.1","tsdown":"0.22.14","typescript":"7.0.2"},"engines":{"node":">=22.13.0"},"scripts":{"build":"node config/build.mjs && tsdown","typecheck":"tsc --noEmit -p tsconfig.json","clean":"node -e \"require('node:fs').rmSync('dist',{recursive:true,force:true})\""},"_nodeVersion":"24.15.0","_id":"@bryan-cunningham-design/igenie-tokens@0.2.0","dist":{"integrity":"sha512-nPCUNb/+aopX62iIkbFk6TONa2imSLhP5vaf+xlEuyV0CQN5p50Afef8SC883qVWpxq1K9UbmiS+gPz5OU+q4A==","shasum":"64d10ce2e3de44fa652c978fa1cf6a598eda69de","tarball":"https://registry.npmjs.org/@bryan-cunningham-design/igenie-tokens/-/igenie-tokens-0.2.0.tgz","fileCount":30,"unpackedSize":148206,"signatures":[{"keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U","sig":"MEYCIQDd0LFP6gUNSyTXHDYZUKq8CtQ9E0sMVFGfBaCkwKUQeQIhALBECEbVZ3Ox+ZYd9TsNONuKb3IDaTfZJIMrvJ5W73cJ"}]},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:49fa30fb-150c-4c35-ac0f-32f8aaffcac1"}},"directories":{},"maintainers":[{"name":"jschr","email":"npm@jschr.io"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages-npm-production","tmp":"tmp/igenie-tokens_0.2.0_1787168254140_0.5250171406225708"},"_hasShrinkwrap":false}},"time":{"created":"2026-08-17T02:14:07.669Z","modified":"2026-08-19T19:37:34.451Z","0.0.0":"2026-08-17T02:14:07.956Z","0.0.1":"2026-08-17T02:57:42.797Z","0.1.0":"2026-08-19T00:49:12.133Z","0.2.0":"2026-08-19T19:37:34.290Z"},"license":"UNLICENSED","homepage":"https://igenie-www.jschr.workers.dev/","keywords":["design-tokens","dtcg","style-dictionary","tailwindcss","design-system"],"repository":{"type":"git","url":"git+https://github.com/Bryan-Cunningham-Design/iGenie.git","directory":"packages/tokens"},"description":"i-Genie design tokens — DTCG source of truth, built to CSS custom properties, a Tailwind v4 theme, typed TS and an Ant Design theme for Superset.","maintainers":[{"name":"jschr","email":"npm@jschr.io"}],"readme":"# @bryan-cunningham-design/igenie-tokens\n\nDesign tokens for i-Genie. DTCG source in `src/`, built with Style Dictionary to\nCSS custom properties, a Tailwind v4 theme, typed TypeScript, and an Ant Design\ntheme for Superset.\n\nMost consumers do not import this package directly — `@bryan-cunningham-design/igenie-ui`\nalready imports the stylesheet it needs. Reach for this package when you need\ntoken *values* in JavaScript (charts, canvas, emails) or a Superset theme.\n\n## Install\n\n```bash\nnpm i @bryan-cunningham-design/igenie-tokens\n```\n\n## Use\n\n### CSS (all layers, both modes, plus the Tailwind bridge)\n\n```css\n@import \"tailwindcss\";\n@import \"@bryan-cunningham-design/igenie-tokens/css\";\n```\n\nDark mode activates under either `.dark` or `[data-theme=\"dark\"]` on an ancestor.\n\n### TypeScript\n\n```ts\nimport { cssVar, light, dark, base } from \"@bryan-cunningham-design/igenie-tokens\"\n\ncssVar.background // \"var(--background)\"   <- prefer this; correct in both modes\nlight.background  // \"oklch(1 0 0)\"        <- literal, light mode only\ndark.background   // \"oklch(0.145 0 0)\"\nbase.color.gray[950] // \"oklch(0.145 0 0)\"\n```\n\n`cssVar` is what you want inside components. The literal maps are for contexts\nthat cannot resolve CSS variables — chart libraries that need a colour string,\ncanvas rendering, generated emails.\n\n### Superset\n\n```ts\nimport theme from \"@bryan-cunningham-design/igenie-tokens/superset\"\n// theme.theme       -> AntD ThemeConfig for THEME_DEFAULT\n// theme.colorScheme -> categorical palette for EXTRA_CATEGORICAL_COLOR_SCHEMES\n```\n\n`dist/superset/theme.yaml` is the payload shape for `/api/v1/theme/`. `theme.map` records which\nsemantic token produced which AntD key, so a \"what transfers\" table can be generated rather than\ntranscribed. See [`docs/conventions/charts.md`](../../docs/conventions/charts.md).\n\n### ECharts\n\n```ts\nimport theme from \"@bryan-cunningham-design/igenie-tokens/echarts\"\n// theme.light / theme.dark -> registerTheme(name, theme[mode])\n```\n\nThe chart house style — palette, axes, gridlines, tooltip, legend — as an ECharts theme, in both\nmodes. Superset renders with ECharts, so this is what an application drawing its own charts\nagainst Superset data registers to match.\n\nColours in it are **hex, not `oklch()`**: ECharts parses colour strings itself and does not\nunderstand `oklch()`. A theme is also bound at `init` and cannot be changed afterwards, so\nswitching mode means disposing the instance and rebuilding it.\n\n## Exports\n\n| Entry | Contents |\n|---|---|\n| `.` | Typed TS: `base`, `light`, `dark`, `cssVar`, `schemes` |\n| `./css` | **The one stylesheet you want** — all layers in cascade order |\n| `./css/base` | Primitives only (`--base-*`) |\n| `./css/light`, `./css/dark` | One semantic layer each |\n| `./css/theme` | The `@theme inline` Tailwind bridge only |\n| `./json/base`, `./json/light`, `./json/dark` | Flat token maps with types, aliases and descriptions |\n| `./superset` | AntD theme + categorical palette + the token→AntD map |\n| `./echarts` | ECharts theme, light and dark — the chart house style |\n\n## Layers\n\n```\n--base-color-gray-950: oklch(0.145 0 0);      /* primitive — Figma owns this */\n--foreground: var(--base-color-gray-950);     /* semantic — this repo owns this */\n--color-foreground: var(--foreground);        /* Tailwind bridge — makes text-foreground work */\n```\n\nComponent code should only ever reference the **semantic** layer. Reaching past it\nto a `--base-*` value is visible in review precisely because of the prefix.\n\n## Build\n\n```bash\npnpm tokens:validate   # structure + layer invariants + mode parity\npnpm tokens:build      # src/ -> dist/\n```\n\n`dist/` is gitignored. Details in [`src/README.md`](./src/README.md) and\n[`docs/architecture.md`](../../docs/architecture.md).\n","readmeFilename":""}