@weasel-js/theme 1.5.0 → 1.5.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +67 -14
- package/dist/chunk-LL2ERJPZ.js +175 -0
- package/dist/chunk-LL2ERJPZ.js.map +1 -0
- package/dist/chunk-PJMTWM34.js +6 -0
- package/dist/chunk-PJMTWM34.js.map +1 -0
- package/dist/chunk-YBHW5LZM.js +1582 -0
- package/dist/chunk-YBHW5LZM.js.map +1 -0
- package/dist/engine.d.ts +293 -0
- package/dist/engine.js +1761 -0
- package/dist/engine.js.map +1 -0
- package/dist/index.d.ts +49 -15
- package/dist/index.js +143 -116
- package/dist/index.js.map +1 -1
- package/dist/react.d.ts +7 -5
- package/dist/react.js +13 -18
- package/dist/react.js.map +1 -1
- package/dist/{resolveTheme-DiF2Ew25.d.ts → resolveTheme-CHnPdh8W.d.ts} +84 -114
- package/dist/theme-BtpBHcUg.d.ts +189 -0
- package/dist/tokens.css +33 -27
- package/package.json +8 -1
- package/dist/chunk-VKZ4JIVX.js +0 -912
- package/dist/chunk-VKZ4JIVX.js.map +0 -1
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../src/generated/themes.ts","../src/theme.ts","../src/applyTheme.ts"],"names":[],"mappings":"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","file":"chunk-YBHW5LZM.js","sourcesContent":["// GENERATED by packages/theme/scripts/build-tokens.ts — do not edit.\n\nimport type { AxisDefs } from '../axes';\nimport type { ThemeDefinition } from '../definition';\nimport type { BakedTheme } from '../engine/bake';\n\n/** Every design token the built-in themes declare, spelled as the CSS\n * custom property it becomes. */\nexport type TokenName =\n | '--wzl-accent'\n | '--wzl-accent-base'\n | '--wzl-accent-fg'\n | '--wzl-accent-hover'\n | '--wzl-accent-soft'\n | '--wzl-accent-strong'\n | '--wzl-backdrop'\n | '--wzl-border'\n | '--wzl-border-strong'\n | '--wzl-border-w'\n | '--wzl-control-h'\n | '--wzl-curve-color'\n | '--wzl-curve-width'\n | '--wzl-danger'\n | '--wzl-danger-base'\n | '--wzl-ease-in-cubic'\n | '--wzl-ease-in-out-cubic'\n | '--wzl-ease-out-back'\n | '--wzl-ease-out-cubic'\n | '--wzl-fg'\n | '--wzl-fg-inverse'\n | '--wzl-fg-muted'\n | '--wzl-fg-on-accent'\n | '--wzl-fg-subtle'\n | '--wzl-field-pad-x'\n | '--wzl-focus-ring'\n | '--wzl-font-body'\n | '--wzl-font-display'\n | '--wzl-font-mono'\n | '--wzl-font-size'\n | '--wzl-font-size-2xs'\n | '--wzl-font-size-lg'\n | '--wzl-font-size-sm'\n | '--wzl-font-size-xl'\n | '--wzl-font-size-xs'\n | '--wzl-font-ui'\n | '--wzl-font-weight-bold'\n | '--wzl-font-weight-light'\n | '--wzl-font-weight-medium'\n | '--wzl-font-weight-normal'\n | '--wzl-glass-blur'\n | '--wzl-glass-tint'\n | '--wzl-gray-100'\n | '--wzl-gray-200'\n | '--wzl-gray-300'\n | '--wzl-gray-400'\n | '--wzl-gray-50'\n | '--wzl-gray-500'\n | '--wzl-gray-600'\n | '--wzl-gray-700'\n | '--wzl-gray-800'\n | '--wzl-gray-900'\n | '--wzl-handle-size'\n | '--wzl-handle-size-lg'\n | '--wzl-handle-size-sm'\n | '--wzl-leading'\n | '--wzl-leading-snug'\n | '--wzl-leading-tight'\n | '--wzl-line'\n | '--wzl-line-strong'\n | '--wzl-line-subtle'\n | '--wzl-line-width'\n | '--wzl-motion-fast'\n | '--wzl-motion-medium'\n | '--wzl-radius-lg'\n | '--wzl-radius-md'\n | '--wzl-radius-pill'\n | '--wzl-radius-sm'\n | '--wzl-shadow'\n | '--wzl-slider-thumb-mix'\n | '--wzl-slider-thumb-size'\n | '--wzl-slider-track-h'\n | '--wzl-slider-track-mix'\n | '--wzl-space-lg'\n | '--wzl-space-md'\n | '--wzl-space-sm'\n | '--wzl-space-xs'\n | '--wzl-success'\n | '--wzl-success-base'\n | '--wzl-surface'\n | '--wzl-surface-hover'\n | '--wzl-surface-pressed'\n | '--wzl-surface-raised'\n | '--wzl-surface-sunken'\n | '--wzl-swatch-amber'\n | '--wzl-swatch-blue'\n | '--wzl-swatch-citron'\n | '--wzl-swatch-fuchsia'\n | '--wzl-swatch-green'\n | '--wzl-swatch-red'\n | '--wzl-swatch-rose'\n | '--wzl-swatch-sky'\n | '--wzl-swatch-teal'\n | '--wzl-swatch-violet'\n | '--wzl-tb-height'\n | '--wzl-tracking-none'\n | '--wzl-tracking-wide'\n | '--wzl-tracking-wider'\n | '--wzl-warning'\n | '--wzl-warning-base'\n | '--wzl-z-modal'\n | '--wzl-z-overlay'\n | '--wzl-z-toolbar';\n\n/** A built-in theme with its aliases already collapsed: every selection\n * (keyed `mode=dark`, axes in declaration order) maps every token name to\n * a final CSS value. */\nexport interface GeneratedTheme {\n readonly name: string;\n readonly axes: AxisDefs;\n readonly selections: Readonly<Record<string, Readonly<Record<TokenName, string>>>>;\n}\n\n/** The built-in themes, resolved, keyed by theme name. Read this to list\n * or preview themes without resolving a token graph yourself. */\nexport const THEMES = {\n \"weasel\": {\n name: \"weasel\",\n axes: {\"mode\":{\"default\":\"dark\",\"values\":{\"dark\":{\"scheme\":\"dark\"},\"light\":{\"scheme\":\"light\"}}}},\n selections: {\n 'mode=dark': {\n '--wzl-gray-50': \"#f5f5f6\",\n '--wzl-gray-100': \"#e6e7e9\",\n '--wzl-gray-200': \"#c9cbcf\",\n '--wzl-gray-300': \"#9ea1a8\",\n '--wzl-gray-400': \"#6f737b\",\n '--wzl-gray-500': \"#4d5058\",\n '--wzl-gray-600': \"#383b42\",\n '--wzl-gray-700': \"#25272c\",\n '--wzl-gray-800': \"#181a1e\",\n '--wzl-gray-900': \"#0e0f12\",\n '--wzl-accent-soft': \"#1d1454\",\n '--wzl-accent-base': \"#2e1f7a\",\n '--wzl-accent-strong': \"#5841b8\",\n '--wzl-swatch-fuchsia': \"#f641f7\",\n '--wzl-swatch-green': \"#48e628\",\n '--wzl-swatch-sky': \"#36bff2\",\n '--wzl-swatch-amber': \"#e69628\",\n '--wzl-swatch-teal': \"#3ee1cb\",\n '--wzl-swatch-red': \"#f75034\",\n '--wzl-swatch-blue': \"#407ef7\",\n '--wzl-swatch-citron': \"#d5d23a\",\n '--wzl-swatch-rose': \"#fa4590\",\n '--wzl-swatch-violet': \"#955cf9\",\n '--wzl-surface': \"#181a1e\",\n '--wzl-surface-raised': \"#25272c\",\n '--wzl-surface-sunken': \"#0e0f12\",\n '--wzl-fg': \"#e6e7e9\",\n '--wzl-fg-muted': \"#9ea1a8\",\n '--wzl-fg-subtle': \"#6f737b\",\n '--wzl-border': \"#25272c\",\n '--wzl-border-strong': \"#6f737b\",\n '--wzl-accent-fg': \"#5841b8\",\n '--wzl-fg-inverse': \"#0e0f12\",\n '--wzl-shadow': \"rgba(0, 0, 0, 0.6)\",\n '--wzl-danger-base': \"#d94a3f\",\n '--wzl-warning-base': \"#d99a3f\",\n '--wzl-success-base': \"#2ec27e\",\n '--wzl-fg-on-accent': \"#f5f5f6\",\n '--wzl-line-subtle': \"rgba(230, 231, 233, 0.1)\",\n '--wzl-line': \"rgba(230, 231, 233, 0.2)\",\n '--wzl-line-strong': \"rgba(230, 231, 233, 0.4)\",\n '--wzl-curve-color': \"#5841b8\",\n '--wzl-accent': \"#2e1f7a\",\n '--wzl-accent-hover': \"#5841b8\",\n '--wzl-danger': \"#d94a3f\",\n '--wzl-warning': \"#d99a3f\",\n '--wzl-success': \"#2ec27e\",\n '--wzl-focus-ring': \"#5841b8\",\n '--wzl-glass-tint': \"#2e1f7a\",\n '--wzl-surface-hover': \"rgba(230, 231, 233, 0.1)\",\n '--wzl-surface-pressed': \"rgba(230, 231, 233, 0.18)\",\n '--wzl-radius-sm': \"3px\",\n '--wzl-radius-md': \"5px\",\n '--wzl-radius-lg': \"14px\",\n '--wzl-radius-pill': \"999px\",\n '--wzl-border-w': \"1px\",\n '--wzl-line-width': \"2px\",\n '--wzl-curve-width': \"3px\",\n '--wzl-tb-height': \"28px\",\n '--wzl-control-h': \"24px\",\n '--wzl-slider-track-h': \"4px\",\n '--wzl-slider-thumb-size': \"8px\",\n '--wzl-slider-track-mix': \"18%\",\n '--wzl-slider-thumb-mix': \"70%\",\n '--wzl-handle-size': \"9px\",\n '--wzl-handle-size-sm': \"7px\",\n '--wzl-handle-size-lg': \"10px\",\n '--wzl-field-pad-x': \"8px\",\n '--wzl-glass-blur': \"3px\",\n '--wzl-font-size-2xs': \"9px\",\n '--wzl-font-size-xs': \"10px\",\n '--wzl-font-size-sm': \"11px\",\n '--wzl-font-size': \"13px\",\n '--wzl-font-size-lg': \"16px\",\n '--wzl-font-size-xl': \"20px\",\n '--wzl-space-xs': \"4px\",\n '--wzl-space-sm': \"8px\",\n '--wzl-space-md': \"12px\",\n '--wzl-space-lg': \"16px\",\n '--wzl-tracking-none': \"0\",\n '--wzl-tracking-wide': \"0.06em\",\n '--wzl-tracking-wider': \"0.08em\",\n '--wzl-z-toolbar': \"10\",\n '--wzl-z-overlay': \"20\",\n '--wzl-z-modal': \"30\",\n '--wzl-leading-tight': \"1\",\n '--wzl-leading-snug': \"1.2\",\n '--wzl-leading': \"1.4\",\n '--wzl-backdrop': \"none\",\n '--wzl-motion-fast': \"120ms\",\n '--wzl-motion-medium': \"240ms\",\n '--wzl-ease-in-cubic': \"cubic-bezier(0.32, 0, 0.67, 0)\",\n '--wzl-ease-out-cubic': \"cubic-bezier(0.33, 1, 0.68, 1)\",\n '--wzl-ease-in-out-cubic': \"cubic-bezier(0.65, 0, 0.35, 1)\",\n '--wzl-ease-out-back': \"cubic-bezier(0.34, 1.56, 0.64, 1)\",\n '--wzl-font-ui': \"Oswald, 'Helvetica Neue Condensed', 'Arial Narrow', system-ui, sans-serif\",\n '--wzl-font-display': \"Oswald, 'Helvetica Neue Condensed', 'Arial Narrow', system-ui, sans-serif\",\n '--wzl-font-body': \"Inter, system-ui, -apple-system, 'Segoe UI', sans-serif\",\n '--wzl-font-mono': \"ui-monospace, SFMono-Regular, Menlo, Consolas, monospace\",\n '--wzl-font-weight-light': \"200\",\n '--wzl-font-weight-normal': \"300\",\n '--wzl-font-weight-medium': \"350\",\n '--wzl-font-weight-bold': \"400\",\n },\n 'mode=light': {\n '--wzl-gray-50': \"#f5f5f6\",\n '--wzl-gray-100': \"#e6e7e9\",\n '--wzl-gray-200': \"#c9cbcf\",\n '--wzl-gray-300': \"#9ea1a8\",\n '--wzl-gray-400': \"#6f737b\",\n '--wzl-gray-500': \"#4d5058\",\n '--wzl-gray-600': \"#383b42\",\n '--wzl-gray-700': \"#25272c\",\n '--wzl-gray-800': \"#181a1e\",\n '--wzl-gray-900': \"#0e0f12\",\n '--wzl-accent-soft': \"#1d1454\",\n '--wzl-accent-base': \"#2e1f7a\",\n '--wzl-accent-strong': \"#5841b8\",\n '--wzl-swatch-fuchsia': \"#f641f7\",\n '--wzl-swatch-green': \"#48e628\",\n '--wzl-swatch-sky': \"#36bff2\",\n '--wzl-swatch-amber': \"#e69628\",\n '--wzl-swatch-teal': \"#3ee1cb\",\n '--wzl-swatch-red': \"#f75034\",\n '--wzl-swatch-blue': \"#407ef7\",\n '--wzl-swatch-citron': \"#d5d23a\",\n '--wzl-swatch-rose': \"#fa4590\",\n '--wzl-swatch-violet': \"#955cf9\",\n '--wzl-surface': \"#f5f5f6\",\n '--wzl-surface-raised': \"#e6e7e9\",\n '--wzl-surface-sunken': \"#c9cbcf\",\n '--wzl-fg': \"#0e0f12\",\n '--wzl-fg-muted': \"#383b42\",\n '--wzl-fg-subtle': \"#4d5058\",\n '--wzl-border': \"#c9cbcf\",\n '--wzl-border-strong': \"#4d5058\",\n '--wzl-accent-fg': \"#2e1f7a\",\n '--wzl-fg-inverse': \"#f5f5f6\",\n '--wzl-shadow': \"rgba(0, 0, 0, 0.18)\",\n '--wzl-danger-base': \"#d94a3f\",\n '--wzl-warning-base': \"#d99a3f\",\n '--wzl-success-base': \"#2ec27e\",\n '--wzl-fg-on-accent': \"#f5f5f6\",\n '--wzl-line-subtle': \"rgba(14, 15, 18, 0.1)\",\n '--wzl-line': \"rgba(14, 15, 18, 0.2)\",\n '--wzl-line-strong': \"rgba(14, 15, 18, 0.4)\",\n '--wzl-curve-color': \"#5841b8\",\n '--wzl-accent': \"#2e1f7a\",\n '--wzl-accent-hover': \"#5841b8\",\n '--wzl-danger': \"#d94a3f\",\n '--wzl-warning': \"#d99a3f\",\n '--wzl-success': \"#2ec27e\",\n '--wzl-focus-ring': \"#5841b8\",\n '--wzl-glass-tint': \"#2e1f7a\",\n '--wzl-surface-hover': \"rgba(14, 15, 18, 0.1)\",\n '--wzl-surface-pressed': \"rgba(14, 15, 18, 0.18)\",\n '--wzl-radius-sm': \"3px\",\n '--wzl-radius-md': \"5px\",\n '--wzl-radius-lg': \"14px\",\n '--wzl-radius-pill': \"999px\",\n '--wzl-border-w': \"1px\",\n '--wzl-line-width': \"2px\",\n '--wzl-curve-width': \"3px\",\n '--wzl-tb-height': \"28px\",\n '--wzl-control-h': \"24px\",\n '--wzl-slider-track-h': \"4px\",\n '--wzl-slider-thumb-size': \"8px\",\n '--wzl-slider-track-mix': \"18%\",\n '--wzl-slider-thumb-mix': \"70%\",\n '--wzl-handle-size': \"9px\",\n '--wzl-handle-size-sm': \"7px\",\n '--wzl-handle-size-lg': \"10px\",\n '--wzl-field-pad-x': \"8px\",\n '--wzl-glass-blur': \"3px\",\n '--wzl-font-size-2xs': \"9px\",\n '--wzl-font-size-xs': \"10px\",\n '--wzl-font-size-sm': \"11px\",\n '--wzl-font-size': \"13px\",\n '--wzl-font-size-lg': \"16px\",\n '--wzl-font-size-xl': \"20px\",\n '--wzl-space-xs': \"4px\",\n '--wzl-space-sm': \"8px\",\n '--wzl-space-md': \"12px\",\n '--wzl-space-lg': \"16px\",\n '--wzl-tracking-none': \"0\",\n '--wzl-tracking-wide': \"0.06em\",\n '--wzl-tracking-wider': \"0.08em\",\n '--wzl-z-toolbar': \"10\",\n '--wzl-z-overlay': \"20\",\n '--wzl-z-modal': \"30\",\n '--wzl-leading-tight': \"1\",\n '--wzl-leading-snug': \"1.2\",\n '--wzl-leading': \"1.4\",\n '--wzl-backdrop': \"none\",\n '--wzl-motion-fast': \"120ms\",\n '--wzl-motion-medium': \"240ms\",\n '--wzl-ease-in-cubic': \"cubic-bezier(0.32, 0, 0.67, 0)\",\n '--wzl-ease-out-cubic': \"cubic-bezier(0.33, 1, 0.68, 1)\",\n '--wzl-ease-in-out-cubic': \"cubic-bezier(0.65, 0, 0.35, 1)\",\n '--wzl-ease-out-back': \"cubic-bezier(0.34, 1.56, 0.64, 1)\",\n '--wzl-font-ui': \"Oswald, 'Helvetica Neue Condensed', 'Arial Narrow', system-ui, sans-serif\",\n '--wzl-font-display': \"Oswald, 'Helvetica Neue Condensed', 'Arial Narrow', system-ui, sans-serif\",\n '--wzl-font-body': \"Inter, system-ui, -apple-system, 'Segoe UI', sans-serif\",\n '--wzl-font-mono': \"ui-monospace, SFMono-Regular, Menlo, Consolas, monospace\",\n '--wzl-font-weight-light': \"200\",\n '--wzl-font-weight-normal': \"300\",\n '--wzl-font-weight-medium': \"350\",\n '--wzl-font-weight-bold': \"400\",\n },\n },\n },\n} as const satisfies Record<string, GeneratedTheme>;\n\n/** The built-in themes as authored: their unbaked definitions. */\nexport const THEME_SOURCES: Readonly<Record<string, ThemeDefinition>> = {\n \"weasel\": {\n \"name\": \"weasel\",\n \"axes\": {\n \"mode\": {\n \"default\": \"dark\",\n \"values\": {\n \"dark\": {\n \"scheme\": \"dark\"\n },\n \"light\": {\n \"scheme\": \"light\"\n }\n }\n }\n },\n \"ramps\": {\n \"gray\": {\n \"kind\": \"lightness\",\n \"steps\": [\n \"50\",\n \"100\",\n \"200\",\n \"300\",\n \"400\",\n \"500\",\n \"600\",\n \"700\",\n \"800\",\n \"900\"\n ],\n \"lightness\": [\n 0.973,\n 0.163\n ],\n \"curve\": 0.41,\n \"hue\": 266,\n \"chroma\": {\n \"peak\": 0.0116,\n \"darkBias\": 0.84\n }\n },\n \"accent\": {\n \"kind\": \"lightness\",\n \"steps\": [\n \"soft\",\n \"base\",\n \"strong\"\n ],\n \"lightness\": [\n 0.252,\n 0.471\n ],\n \"curve\": 0,\n \"anchor\": {\n \"base\": \"#2e1f7a\"\n }\n },\n \"swatch\": {\n \"kind\": \"categorical\",\n \"steps\": [\n \"fuchsia\",\n \"green\",\n \"sky\",\n \"amber\",\n \"teal\",\n \"red\",\n \"blue\",\n \"citron\",\n \"rose\",\n \"violet\"\n ],\n \"gates\": {\n \"hueFloor\": 0.9,\n \"minContrast\": 4,\n \"surface\": \"#181a1e\",\n \"lightnessTarget\": 0.72,\n \"lightnessPull\": 0.4,\n \"chromaFraction\": 0.95,\n \"equalize\": 0,\n \"minSurfaceDistance\": 0.25,\n \"minDistance\": 0.22,\n \"order\": \"farthest\"\n }\n }\n },\n \"semantics\": {\n \"surface\": {\n \"by\": \"mode\",\n \"dark\": {\n \"ref\": \"gray-800\",\n \"type\": \"color\"\n },\n \"light\": {\n \"ref\": \"gray-50\",\n \"type\": \"color\"\n }\n },\n \"surface-raised\": {\n \"by\": \"mode\",\n \"dark\": {\n \"ref\": \"gray-700\",\n \"type\": \"color\"\n },\n \"light\": {\n \"ref\": \"gray-100\",\n \"type\": \"color\"\n }\n },\n \"surface-sunken\": {\n \"by\": \"mode\",\n \"dark\": {\n \"ref\": \"gray-900\",\n \"type\": \"color\"\n },\n \"light\": {\n \"ref\": \"gray-200\",\n \"type\": \"color\"\n }\n },\n \"fg\": {\n \"by\": \"mode\",\n \"dark\": {\n \"ref\": \"gray-100\",\n \"type\": \"color\"\n },\n \"light\": {\n \"ref\": \"gray-900\",\n \"type\": \"color\"\n }\n },\n \"fg-muted\": {\n \"by\": \"mode\",\n \"dark\": {\n \"ref\": \"gray-300\",\n \"type\": \"color\"\n },\n \"light\": {\n \"ref\": \"gray-600\",\n \"type\": \"color\"\n }\n },\n \"fg-subtle\": {\n \"by\": \"mode\",\n \"dark\": {\n \"ref\": \"gray-400\",\n \"type\": \"color\"\n },\n \"light\": {\n \"ref\": \"gray-500\",\n \"type\": \"color\"\n }\n },\n \"border\": {\n \"by\": \"mode\",\n \"dark\": {\n \"ref\": \"gray-700\",\n \"type\": \"color\"\n },\n \"light\": {\n \"ref\": \"gray-200\",\n \"type\": \"color\"\n }\n },\n \"border-strong\": {\n \"by\": \"mode\",\n \"dark\": {\n \"ref\": \"gray-400\",\n \"type\": \"color\",\n \"description\": \"The line that has to be seen: a control's edge, a raised surface's outline. Clears WCAG 1.4.11's 3:1 against every surface in both modes.\"\n },\n \"light\": {\n \"ref\": \"gray-500\",\n \"type\": \"color\"\n }\n },\n \"accent-fg\": {\n \"by\": \"mode\",\n \"dark\": {\n \"ref\": \"accent-strong\",\n \"type\": \"color\",\n \"description\": \"Accent for foreground use — text, icons, selected labels drawn on a surface. accent is a fill; the midnight base is too dim to read as text on dark surfaces.\"\n },\n \"light\": {\n \"ref\": \"accent-base\",\n \"type\": \"color\",\n \"description\": \"Flips to the deep base in light mode, where it is the legible one.\"\n }\n },\n \"fg-inverse\": {\n \"by\": \"mode\",\n \"dark\": {\n \"ref\": \"gray-900\",\n \"type\": \"color\",\n \"description\": \"Text drawn on a filled foreground-colored element (e.g. a slider thumb). Flips with the mode, so it is a semantic, not an alias to a primitive.\"\n },\n \"light\": {\n \"ref\": \"gray-50\",\n \"type\": \"color\",\n \"description\": \"Flips with the mode — see the dark layer.\"\n }\n },\n \"shadow\": {\n \"by\": \"mode\",\n \"dark\": {\n \"value\": \"rgba(0, 0, 0, 0.6)\",\n \"type\": \"color\",\n \"description\": \"Elevation. Always darker than any surface — never derived from fg, which is near-white on dark.\"\n },\n \"light\": {\n \"value\": \"rgba(0, 0, 0, 0.18)\",\n \"type\": \"color\"\n }\n }\n },\n \"pins\": {\n \"gray-50\": {\n \"value\": \"#f5f5f6\",\n \"type\": \"color\"\n },\n \"gray-100\": {\n \"value\": \"#e6e7e9\",\n \"type\": \"color\"\n },\n \"gray-200\": {\n \"value\": \"#c9cbcf\",\n \"type\": \"color\"\n },\n \"gray-300\": {\n \"value\": \"#9ea1a8\",\n \"type\": \"color\"\n },\n \"gray-400\": {\n \"value\": \"#6f737b\",\n \"type\": \"color\"\n },\n \"gray-500\": {\n \"value\": \"#4d5058\",\n \"type\": \"color\"\n },\n \"gray-600\": {\n \"value\": \"#383b42\",\n \"type\": \"color\"\n },\n \"gray-700\": {\n \"value\": \"#25272c\",\n \"type\": \"color\"\n },\n \"gray-800\": {\n \"value\": \"#181a1e\",\n \"type\": \"color\"\n },\n \"gray-900\": {\n \"value\": \"#0e0f12\",\n \"type\": \"color\"\n },\n \"accent-soft\": {\n \"value\": \"#1d1454\",\n \"type\": \"color\"\n },\n \"accent-base\": {\n \"value\": \"#2e1f7a\",\n \"type\": \"color\",\n \"description\": \"Midnight blue-violet. Deep and saturated; anchors primary actions on light and dark surfaces alike.\"\n },\n \"accent-strong\": {\n \"value\": \"#5841b8\",\n \"type\": \"color\"\n },\n \"danger-base\": {\n \"value\": \"#d94a3f\",\n \"type\": \"color\"\n },\n \"warning-base\": {\n \"value\": \"#d99a3f\",\n \"type\": \"color\"\n },\n \"success-base\": {\n \"value\": \"#2ec27e\",\n \"type\": \"color\"\n },\n \"fg-on-accent\": {\n \"value\": \"{gray-50}\",\n \"type\": \"color\"\n },\n \"line-subtle\": {\n \"value\": \"{fg}\",\n \"type\": \"color\",\n \"alpha\": 0.1,\n \"description\": \"Barely-there separators (table rows).\"\n },\n \"line\": {\n \"value\": \"{fg}\",\n \"type\": \"color\",\n \"alpha\": 0.2,\n \"description\": \"Primary gridlines on sunken surfaces.\"\n },\n \"line-strong\": {\n \"value\": \"{fg}\",\n \"type\": \"color\",\n \"alpha\": 0.4,\n \"description\": \"Axes and emphasized dividers.\"\n },\n \"curve-color\": {\n \"value\": \"{accent-strong}\",\n \"type\": \"color\",\n \"description\": \"Drawn data curves. Routes through the bright accent because accent-base is too dim on sunken surfaces.\"\n },\n \"accent\": {\n \"value\": \"{accent-base}\",\n \"type\": \"color\"\n },\n \"accent-hover\": {\n \"value\": \"{accent-strong}\",\n \"type\": \"color\"\n },\n \"danger\": {\n \"value\": \"{danger-base}\",\n \"type\": \"color\"\n },\n \"warning\": {\n \"value\": \"{warning-base}\",\n \"type\": \"color\"\n },\n \"success\": {\n \"value\": \"{success-base}\",\n \"type\": \"color\"\n },\n \"focus-ring\": {\n \"value\": \"{accent-strong}\",\n \"type\": \"color\"\n },\n \"glass-tint\": {\n \"value\": \"{accent}\",\n \"type\": \"color\",\n \"description\": \"Frosted-glass tint. Components compose it as color-mix(in srgb, var(--wzl-glass-tint) 78%, transparent) with backdrop-filter: blur(3px).\"\n },\n \"surface-hover\": {\n \"value\": \"{fg}\",\n \"type\": \"color\",\n \"alpha\": 0.1,\n \"description\": \"Hover wash over a raised surface. Same formula as line-subtle, different job — do not collapse them.\"\n },\n \"surface-pressed\": {\n \"value\": \"{fg}\",\n \"type\": \"color\",\n \"alpha\": 0.18,\n \"description\": \"Pressed wash over a raised surface.\"\n },\n \"swatch-fuchsia\": {\n \"value\": \"#f641f7\",\n \"type\": \"color\",\n \"description\": \"First of ten categorical spot colors for plotting, status and data viz. Take them in sequence: the order is farthest-point over hue, so the first N are as separated as N colors can be (first three 87° apart, all ten 32°). Mode-invariant on purpose — a series keeps its color when the mode flips, which is why they are tuned for a dark surface and clear only 1.5:1 on a light one.\"\n },\n \"swatch-green\": {\n \"value\": \"#48e628\",\n \"type\": \"color\"\n },\n \"swatch-sky\": {\n \"value\": \"#36bff2\",\n \"type\": \"color\"\n },\n \"swatch-amber\": {\n \"value\": \"#e69628\",\n \"type\": \"color\"\n },\n \"swatch-teal\": {\n \"value\": \"#3ee1cb\",\n \"type\": \"color\"\n },\n \"swatch-red\": {\n \"value\": \"#f75034\",\n \"type\": \"color\"\n },\n \"swatch-blue\": {\n \"value\": \"#407ef7\",\n \"type\": \"color\"\n },\n \"swatch-citron\": {\n \"value\": \"#d5d23a\",\n \"type\": \"color\"\n },\n \"swatch-rose\": {\n \"value\": \"#fa4590\",\n \"type\": \"color\"\n },\n \"swatch-violet\": {\n \"value\": \"#955cf9\",\n \"type\": \"color\"\n },\n \"radius-sm\": {\n \"value\": \"3px\",\n \"type\": \"dimension\"\n },\n \"radius-md\": {\n \"value\": \"5px\",\n \"type\": \"dimension\"\n },\n \"radius-lg\": {\n \"value\": \"14px\",\n \"type\": \"dimension\"\n },\n \"radius-pill\": {\n \"value\": \"999px\",\n \"type\": \"dimension\",\n \"description\": \"Fully rounded ends — segmented controls, progress tracks.\"\n },\n \"border-w\": {\n \"value\": \"1px\",\n \"type\": \"dimension\"\n },\n \"line-width\": {\n \"value\": \"2px\",\n \"type\": \"dimension\",\n \"description\": \"Structural lines — gridlines, dividers, axes.\"\n },\n \"curve-width\": {\n \"value\": \"3px\",\n \"type\": \"dimension\",\n \"description\": \"Drawn data curves. Heavier than structural lines so data reads as primary content.\"\n },\n \"tb-height\": {\n \"value\": \"28px\",\n \"type\": \"dimension\",\n \"description\": \"Height of a horizontal toolbar strip (ActionsBar, OptionsBar, ToolOptionsBar). Taller than control-h so the controls inside a strip are not flush with its edges.\"\n },\n \"control-h\": {\n \"value\": \"24px\",\n \"type\": \"dimension\",\n \"description\": \"Height of an interactive control — button, input, select, segmented control. Distinct from tb-height, which sizes the strip a row of them sits in.\"\n },\n \"slider-track-h\": {\n \"value\": \"4px\",\n \"type\": \"dimension\",\n \"description\": \"Height of a linear range track. The kit's single-thumb ranges all wear this; Slider's default 24px canvas track does not.\"\n },\n \"slider-thumb-size\": {\n \"value\": \"8px\",\n \"type\": \"dimension\",\n \"description\": \"Diameter of a linear range thumb.\"\n },\n \"slider-track-mix\": {\n \"value\": \"18%\",\n \"type\": \"dimension\",\n \"description\": \"Accent proportion in a range track, as a color-mix percentage — not a color. Mixed into a real property, never into another custom property.\"\n },\n \"slider-thumb-mix\": {\n \"value\": \"70%\",\n \"type\": \"dimension\",\n \"description\": \"Accent proportion in a range thumb, as a color-mix percentage — not a color.\"\n },\n \"handle-size\": {\n \"value\": \"9px\",\n \"type\": \"dimension\",\n \"description\": \"Edge of a draggable handle on a plot or timeline — a keyframe diamond, a timeline key, an event mark. The default rank; -sm and -lg are the two deliberate departures from it.\"\n },\n \"handle-size-sm\": {\n \"value\": \"7px\",\n \"type\": \"dimension\",\n \"description\": \"A handle that is drawn but not draggable — a locked or pinned point. Smaller so it reads as inert next to a live one.\"\n },\n \"handle-size-lg\": {\n \"value\": \"10px\",\n \"type\": \"dimension\",\n \"description\": \"A handle that is a category of its own rather than one of a row — a curve's endpoint. Larger so it separates from the handles it sits in line with.\"\n },\n \"field-pad-x\": {\n \"value\": \"8px\",\n \"type\": \"dimension\",\n \"description\": \"Horizontal padding inside a boxed field. Pairs with --wzl-field-h, which is a container override and has no :root default.\"\n },\n \"glass-blur\": {\n \"value\": \"3px\",\n \"type\": \"dimension\",\n \"description\": \"Backdrop blur radius for frosted surfaces. Pairs with glass-tint.\"\n },\n \"font-size-2xs\": {\n \"value\": \"9px\",\n \"type\": \"dimension\",\n \"description\": \"Shortcut keys and index badges. The floor for chrome text.\"\n },\n \"font-size-xs\": {\n \"value\": \"10px\",\n \"type\": \"dimension\",\n \"description\": \"Tool-button labels under an icon.\"\n },\n \"font-size-sm\": {\n \"value\": \"11px\",\n \"type\": \"dimension\",\n \"description\": \"Chrome labels, status readouts, section headings.\"\n },\n \"font-size\": {\n \"value\": \"13px\",\n \"type\": \"dimension\",\n \"description\": \"Controls and body text.\"\n },\n \"font-size-lg\": {\n \"value\": \"16px\",\n \"type\": \"dimension\",\n \"description\": \"Panel and dialog titles.\"\n },\n \"font-size-xl\": {\n \"value\": \"20px\",\n \"type\": \"dimension\",\n \"description\": \"The largest chrome text — a lab or app title.\"\n },\n \"space-xs\": {\n \"value\": \"4px\",\n \"type\": \"dimension\"\n },\n \"space-sm\": {\n \"value\": \"8px\",\n \"type\": \"dimension\"\n },\n \"space-md\": {\n \"value\": \"12px\",\n \"type\": \"dimension\"\n },\n \"space-lg\": {\n \"value\": \"16px\",\n \"type\": \"dimension\"\n },\n \"tracking-none\": {\n \"value\": \"0\",\n \"type\": \"dimension\"\n },\n \"tracking-wide\": {\n \"value\": \"0.06em\",\n \"type\": \"dimension\",\n \"description\": \"Uppercase section headings.\"\n },\n \"tracking-wider\": {\n \"value\": \"0.08em\",\n \"type\": \"dimension\",\n \"description\": \"Uppercase at 11px and below.\"\n },\n \"z-toolbar\": {\n \"value\": 10,\n \"type\": \"number\"\n },\n \"z-overlay\": {\n \"value\": 20,\n \"type\": \"number\"\n },\n \"z-modal\": {\n \"value\": 30,\n \"type\": \"number\"\n },\n \"leading-tight\": {\n \"value\": 1,\n \"type\": \"number\",\n \"description\": \"Single-line controls; the box sets the height.\"\n },\n \"leading-snug\": {\n \"value\": 1.2,\n \"type\": \"number\",\n \"description\": \"Headings and two-line labels.\"\n },\n \"leading\": {\n \"value\": 1.4,\n \"type\": \"number\",\n \"description\": \"Body and anything that wraps.\"\n },\n \"backdrop\": {\n \"value\": \"none\",\n \"type\": \"gradient\",\n \"description\": \"Layered backdrop fill for a page or lab root. `none` here; a theme with a signature background sets it.\"\n },\n \"motion-fast\": {\n \"value\": \"120ms\",\n \"type\": \"duration\",\n \"description\": \"Micro-interactions — hover, focus, pressed.\"\n },\n \"motion-medium\": {\n \"value\": \"240ms\",\n \"type\": \"duration\",\n \"description\": \"Entrances and exits — toasts, popovers, panels.\"\n },\n \"ease-in-cubic\": {\n \"value\": [\n 0.32,\n 0,\n 0.67,\n 0\n ],\n \"type\": \"cubicBezier\"\n },\n \"ease-out-cubic\": {\n \"value\": [\n 0.33,\n 1,\n 0.68,\n 1\n ],\n \"type\": \"cubicBezier\"\n },\n \"ease-in-out-cubic\": {\n \"value\": [\n 0.65,\n 0,\n 0.35,\n 1\n ],\n \"type\": \"cubicBezier\"\n },\n \"ease-out-back\": {\n \"value\": [\n 0.34,\n 1.56,\n 0.64,\n 1\n ],\n \"type\": \"cubicBezier\"\n },\n \"font-ui\": {\n \"value\": [\n \"Oswald\",\n \"Helvetica Neue Condensed\",\n \"Arial Narrow\",\n \"system-ui\",\n \"sans-serif\"\n ],\n \"type\": \"fontFamily\",\n \"description\": \"Condensed UI/display face. The heavier cuts get blocky at any size, so the weight tokens stay in the 200-400 range.\"\n },\n \"font-display\": {\n \"value\": [\n \"Oswald\",\n \"Helvetica Neue Condensed\",\n \"Arial Narrow\",\n \"system-ui\",\n \"sans-serif\"\n ],\n \"type\": \"fontFamily\"\n },\n \"font-body\": {\n \"value\": [\n \"Inter\",\n \"system-ui\",\n \"-apple-system\",\n \"Segoe UI\",\n \"sans-serif\"\n ],\n \"type\": \"fontFamily\"\n },\n \"font-mono\": {\n \"value\": [\n \"ui-monospace\",\n \"SFMono-Regular\",\n \"Menlo\",\n \"Consolas\",\n \"monospace\"\n ],\n \"type\": \"fontFamily\"\n },\n \"font-weight-light\": {\n \"value\": 200,\n \"type\": \"fontWeight\"\n },\n \"font-weight-normal\": {\n \"value\": 300,\n \"type\": \"fontWeight\"\n },\n \"font-weight-medium\": {\n \"value\": 350,\n \"type\": \"fontWeight\"\n },\n \"font-weight-bold\": {\n \"value\": 400,\n \"type\": \"fontWeight\"\n }\n }\n }\n};\n\n/** The built-in themes with every rule run and references intact. This is\n * what `weaselTheme` is built from, so the runtime entry bundles no generator. */\nexport const BAKED_THEMES: Readonly<Record<string, BakedTheme>> = {\n \"weasel\": {\n \"name\": \"weasel\",\n \"extends\": null,\n \"axes\": {\n \"mode\": {\n \"default\": \"dark\",\n \"values\": {\n \"dark\": {\n \"scheme\": \"dark\"\n },\n \"light\": {\n \"scheme\": \"light\"\n }\n }\n }\n },\n \"tokens\": {\n \"gray-50\": {\n \"type\": \"color\",\n \"value\": \"#f5f5f6\"\n },\n \"gray-100\": {\n \"type\": \"color\",\n \"value\": \"#e6e7e9\"\n },\n \"gray-200\": {\n \"type\": \"color\",\n \"value\": \"#c9cbcf\"\n },\n \"gray-300\": {\n \"type\": \"color\",\n \"value\": \"#9ea1a8\"\n },\n \"gray-400\": {\n \"type\": \"color\",\n \"value\": \"#6f737b\"\n },\n \"gray-500\": {\n \"type\": \"color\",\n \"value\": \"#4d5058\"\n },\n \"gray-600\": {\n \"type\": \"color\",\n \"value\": \"#383b42\"\n },\n \"gray-700\": {\n \"type\": \"color\",\n \"value\": \"#25272c\"\n },\n \"gray-800\": {\n \"type\": \"color\",\n \"value\": \"#181a1e\"\n },\n \"gray-900\": {\n \"type\": \"color\",\n \"value\": \"#0e0f12\"\n },\n \"accent-soft\": {\n \"type\": \"color\",\n \"value\": \"#1d1454\"\n },\n \"accent-base\": {\n \"type\": \"color\",\n \"value\": \"#2e1f7a\",\n \"description\": \"Midnight blue-violet. Deep and saturated; anchors primary actions on light and dark surfaces alike.\"\n },\n \"accent-strong\": {\n \"type\": \"color\",\n \"value\": \"#5841b8\"\n },\n \"swatch-fuchsia\": {\n \"type\": \"color\",\n \"value\": \"#f641f7\",\n \"description\": \"First of ten categorical spot colors for plotting, status and data viz. Take them in sequence: the order is farthest-point over hue, so the first N are as separated as N colors can be (first three 87° apart, all ten 32°). Mode-invariant on purpose — a series keeps its color when the mode flips, which is why they are tuned for a dark surface and clear only 1.5:1 on a light one.\"\n },\n \"swatch-green\": {\n \"type\": \"color\",\n \"value\": \"#48e628\"\n },\n \"swatch-sky\": {\n \"type\": \"color\",\n \"value\": \"#36bff2\"\n },\n \"swatch-amber\": {\n \"type\": \"color\",\n \"value\": \"#e69628\"\n },\n \"swatch-teal\": {\n \"type\": \"color\",\n \"value\": \"#3ee1cb\"\n },\n \"swatch-red\": {\n \"type\": \"color\",\n \"value\": \"#f75034\"\n },\n \"swatch-blue\": {\n \"type\": \"color\",\n \"value\": \"#407ef7\"\n },\n \"swatch-citron\": {\n \"type\": \"color\",\n \"value\": \"#d5d23a\"\n },\n \"swatch-rose\": {\n \"type\": \"color\",\n \"value\": \"#fa4590\"\n },\n \"swatch-violet\": {\n \"type\": \"color\",\n \"value\": \"#955cf9\"\n },\n \"surface\": {\n \"by\": \"mode\",\n \"dark\": {\n \"type\": \"color\",\n \"value\": \"{gray-800}\"\n },\n \"light\": {\n \"type\": \"color\",\n \"value\": \"{gray-50}\"\n }\n },\n \"surface-raised\": {\n \"by\": \"mode\",\n \"dark\": {\n \"type\": \"color\",\n \"value\": \"{gray-700}\"\n },\n \"light\": {\n \"type\": \"color\",\n \"value\": \"{gray-100}\"\n }\n },\n \"surface-sunken\": {\n \"by\": \"mode\",\n \"dark\": {\n \"type\": \"color\",\n \"value\": \"{gray-900}\"\n },\n \"light\": {\n \"type\": \"color\",\n \"value\": \"{gray-200}\"\n }\n },\n \"fg\": {\n \"by\": \"mode\",\n \"dark\": {\n \"type\": \"color\",\n \"value\": \"{gray-100}\"\n },\n \"light\": {\n \"type\": \"color\",\n \"value\": \"{gray-900}\"\n }\n },\n \"fg-muted\": {\n \"by\": \"mode\",\n \"dark\": {\n \"type\": \"color\",\n \"value\": \"{gray-300}\"\n },\n \"light\": {\n \"type\": \"color\",\n \"value\": \"{gray-600}\"\n }\n },\n \"fg-subtle\": {\n \"by\": \"mode\",\n \"dark\": {\n \"type\": \"color\",\n \"value\": \"{gray-400}\"\n },\n \"light\": {\n \"type\": \"color\",\n \"value\": \"{gray-500}\"\n }\n },\n \"border\": {\n \"by\": \"mode\",\n \"dark\": {\n \"type\": \"color\",\n \"value\": \"{gray-700}\"\n },\n \"light\": {\n \"type\": \"color\",\n \"value\": \"{gray-200}\"\n }\n },\n \"border-strong\": {\n \"by\": \"mode\",\n \"dark\": {\n \"type\": \"color\",\n \"value\": \"{gray-400}\",\n \"description\": \"The line that has to be seen: a control's edge, a raised surface's outline. Clears WCAG 1.4.11's 3:1 against every surface in both modes.\"\n },\n \"light\": {\n \"type\": \"color\",\n \"value\": \"{gray-500}\"\n }\n },\n \"accent-fg\": {\n \"by\": \"mode\",\n \"dark\": {\n \"type\": \"color\",\n \"value\": \"{accent-strong}\",\n \"description\": \"Accent for foreground use — text, icons, selected labels drawn on a surface. accent is a fill; the midnight base is too dim to read as text on dark surfaces.\"\n },\n \"light\": {\n \"type\": \"color\",\n \"value\": \"{accent-base}\",\n \"description\": \"Flips to the deep base in light mode, where it is the legible one.\"\n }\n },\n \"fg-inverse\": {\n \"by\": \"mode\",\n \"dark\": {\n \"type\": \"color\",\n \"value\": \"{gray-900}\",\n \"description\": \"Text drawn on a filled foreground-colored element (e.g. a slider thumb). Flips with the mode, so it is a semantic, not an alias to a primitive.\"\n },\n \"light\": {\n \"type\": \"color\",\n \"value\": \"{gray-50}\",\n \"description\": \"Flips with the mode — see the dark layer.\"\n }\n },\n \"shadow\": {\n \"by\": \"mode\",\n \"dark\": {\n \"type\": \"color\",\n \"value\": \"rgba(0, 0, 0, 0.6)\",\n \"description\": \"Elevation. Always darker than any surface — never derived from fg, which is near-white on dark.\"\n },\n \"light\": {\n \"type\": \"color\",\n \"value\": \"rgba(0, 0, 0, 0.18)\"\n }\n },\n \"danger-base\": {\n \"type\": \"color\",\n \"value\": \"#d94a3f\"\n },\n \"warning-base\": {\n \"type\": \"color\",\n \"value\": \"#d99a3f\"\n },\n \"success-base\": {\n \"type\": \"color\",\n \"value\": \"#2ec27e\"\n },\n \"fg-on-accent\": {\n \"type\": \"color\",\n \"value\": \"{gray-50}\"\n },\n \"line-subtle\": {\n \"type\": \"color\",\n \"value\": \"{fg}\",\n \"alpha\": 0.1,\n \"description\": \"Barely-there separators (table rows).\"\n },\n \"line\": {\n \"type\": \"color\",\n \"value\": \"{fg}\",\n \"alpha\": 0.2,\n \"description\": \"Primary gridlines on sunken surfaces.\"\n },\n \"line-strong\": {\n \"type\": \"color\",\n \"value\": \"{fg}\",\n \"alpha\": 0.4,\n \"description\": \"Axes and emphasized dividers.\"\n },\n \"curve-color\": {\n \"type\": \"color\",\n \"value\": \"{accent-strong}\",\n \"description\": \"Drawn data curves. Routes through the bright accent because accent-base is too dim on sunken surfaces.\"\n },\n \"accent\": {\n \"type\": \"color\",\n \"value\": \"{accent-base}\"\n },\n \"accent-hover\": {\n \"type\": \"color\",\n \"value\": \"{accent-strong}\"\n },\n \"danger\": {\n \"type\": \"color\",\n \"value\": \"{danger-base}\"\n },\n \"warning\": {\n \"type\": \"color\",\n \"value\": \"{warning-base}\"\n },\n \"success\": {\n \"type\": \"color\",\n \"value\": \"{success-base}\"\n },\n \"focus-ring\": {\n \"type\": \"color\",\n \"value\": \"{accent-strong}\"\n },\n \"glass-tint\": {\n \"type\": \"color\",\n \"value\": \"{accent}\",\n \"description\": \"Frosted-glass tint. Components compose it as color-mix(in srgb, var(--wzl-glass-tint) 78%, transparent) with backdrop-filter: blur(3px).\"\n },\n \"surface-hover\": {\n \"type\": \"color\",\n \"value\": \"{fg}\",\n \"alpha\": 0.1,\n \"description\": \"Hover wash over a raised surface. Same formula as line-subtle, different job — do not collapse them.\"\n },\n \"surface-pressed\": {\n \"type\": \"color\",\n \"value\": \"{fg}\",\n \"alpha\": 0.18,\n \"description\": \"Pressed wash over a raised surface.\"\n },\n \"radius-sm\": {\n \"type\": \"dimension\",\n \"value\": \"3px\"\n },\n \"radius-md\": {\n \"type\": \"dimension\",\n \"value\": \"5px\"\n },\n \"radius-lg\": {\n \"type\": \"dimension\",\n \"value\": \"14px\"\n },\n \"radius-pill\": {\n \"type\": \"dimension\",\n \"value\": \"999px\",\n \"description\": \"Fully rounded ends — segmented controls, progress tracks.\"\n },\n \"border-w\": {\n \"type\": \"dimension\",\n \"value\": \"1px\"\n },\n \"line-width\": {\n \"type\": \"dimension\",\n \"value\": \"2px\",\n \"description\": \"Structural lines — gridlines, dividers, axes.\"\n },\n \"curve-width\": {\n \"type\": \"dimension\",\n \"value\": \"3px\",\n \"description\": \"Drawn data curves. Heavier than structural lines so data reads as primary content.\"\n },\n \"tb-height\": {\n \"type\": \"dimension\",\n \"value\": \"28px\",\n \"description\": \"Height of a horizontal toolbar strip (ActionsBar, OptionsBar, ToolOptionsBar). Taller than control-h so the controls inside a strip are not flush with its edges.\"\n },\n \"control-h\": {\n \"type\": \"dimension\",\n \"value\": \"24px\",\n \"description\": \"Height of an interactive control — button, input, select, segmented control. Distinct from tb-height, which sizes the strip a row of them sits in.\"\n },\n \"slider-track-h\": {\n \"type\": \"dimension\",\n \"value\": \"4px\",\n \"description\": \"Height of a linear range track. The kit's single-thumb ranges all wear this; Slider's default 24px canvas track does not.\"\n },\n \"slider-thumb-size\": {\n \"type\": \"dimension\",\n \"value\": \"8px\",\n \"description\": \"Diameter of a linear range thumb.\"\n },\n \"slider-track-mix\": {\n \"type\": \"dimension\",\n \"value\": \"18%\",\n \"description\": \"Accent proportion in a range track, as a color-mix percentage — not a color. Mixed into a real property, never into another custom property.\"\n },\n \"slider-thumb-mix\": {\n \"type\": \"dimension\",\n \"value\": \"70%\",\n \"description\": \"Accent proportion in a range thumb, as a color-mix percentage — not a color.\"\n },\n \"handle-size\": {\n \"type\": \"dimension\",\n \"value\": \"9px\",\n \"description\": \"Edge of a draggable handle on a plot or timeline — a keyframe diamond, a timeline key, an event mark. The default rank; -sm and -lg are the two deliberate departures from it.\"\n },\n \"handle-size-sm\": {\n \"type\": \"dimension\",\n \"value\": \"7px\",\n \"description\": \"A handle that is drawn but not draggable — a locked or pinned point. Smaller so it reads as inert next to a live one.\"\n },\n \"handle-size-lg\": {\n \"type\": \"dimension\",\n \"value\": \"10px\",\n \"description\": \"A handle that is a category of its own rather than one of a row — a curve's endpoint. Larger so it separates from the handles it sits in line with.\"\n },\n \"field-pad-x\": {\n \"type\": \"dimension\",\n \"value\": \"8px\",\n \"description\": \"Horizontal padding inside a boxed field. Pairs with --wzl-field-h, which is a container override and has no :root default.\"\n },\n \"glass-blur\": {\n \"type\": \"dimension\",\n \"value\": \"3px\",\n \"description\": \"Backdrop blur radius for frosted surfaces. Pairs with glass-tint.\"\n },\n \"font-size-2xs\": {\n \"type\": \"dimension\",\n \"value\": \"9px\",\n \"description\": \"Shortcut keys and index badges. The floor for chrome text.\"\n },\n \"font-size-xs\": {\n \"type\": \"dimension\",\n \"value\": \"10px\",\n \"description\": \"Tool-button labels under an icon.\"\n },\n \"font-size-sm\": {\n \"type\": \"dimension\",\n \"value\": \"11px\",\n \"description\": \"Chrome labels, status readouts, section headings.\"\n },\n \"font-size\": {\n \"type\": \"dimension\",\n \"value\": \"13px\",\n \"description\": \"Controls and body text.\"\n },\n \"font-size-lg\": {\n \"type\": \"dimension\",\n \"value\": \"16px\",\n \"description\": \"Panel and dialog titles.\"\n },\n \"font-size-xl\": {\n \"type\": \"dimension\",\n \"value\": \"20px\",\n \"description\": \"The largest chrome text — a lab or app title.\"\n },\n \"space-xs\": {\n \"type\": \"dimension\",\n \"value\": \"4px\"\n },\n \"space-sm\": {\n \"type\": \"dimension\",\n \"value\": \"8px\"\n },\n \"space-md\": {\n \"type\": \"dimension\",\n \"value\": \"12px\"\n },\n \"space-lg\": {\n \"type\": \"dimension\",\n \"value\": \"16px\"\n },\n \"tracking-none\": {\n \"type\": \"dimension\",\n \"value\": \"0\"\n },\n \"tracking-wide\": {\n \"type\": \"dimension\",\n \"value\": \"0.06em\",\n \"description\": \"Uppercase section headings.\"\n },\n \"tracking-wider\": {\n \"type\": \"dimension\",\n \"value\": \"0.08em\",\n \"description\": \"Uppercase at 11px and below.\"\n },\n \"z-toolbar\": {\n \"type\": \"number\",\n \"value\": 10\n },\n \"z-overlay\": {\n \"type\": \"number\",\n \"value\": 20\n },\n \"z-modal\": {\n \"type\": \"number\",\n \"value\": 30\n },\n \"leading-tight\": {\n \"type\": \"number\",\n \"value\": 1,\n \"description\": \"Single-line controls; the box sets the height.\"\n },\n \"leading-snug\": {\n \"type\": \"number\",\n \"value\": 1.2,\n \"description\": \"Headings and two-line labels.\"\n },\n \"leading\": {\n \"type\": \"number\",\n \"value\": 1.4,\n \"description\": \"Body and anything that wraps.\"\n },\n \"backdrop\": {\n \"type\": \"gradient\",\n \"value\": \"none\",\n \"description\": \"Layered backdrop fill for a page or lab root. `none` here; a theme with a signature background sets it.\"\n },\n \"motion-fast\": {\n \"type\": \"duration\",\n \"value\": \"120ms\",\n \"description\": \"Micro-interactions — hover, focus, pressed.\"\n },\n \"motion-medium\": {\n \"type\": \"duration\",\n \"value\": \"240ms\",\n \"description\": \"Entrances and exits — toasts, popovers, panels.\"\n },\n \"ease-in-cubic\": {\n \"type\": \"cubicBezier\",\n \"value\": [\n 0.32,\n 0,\n 0.67,\n 0\n ]\n },\n \"ease-out-cubic\": {\n \"type\": \"cubicBezier\",\n \"value\": [\n 0.33,\n 1,\n 0.68,\n 1\n ]\n },\n \"ease-in-out-cubic\": {\n \"type\": \"cubicBezier\",\n \"value\": [\n 0.65,\n 0,\n 0.35,\n 1\n ]\n },\n \"ease-out-back\": {\n \"type\": \"cubicBezier\",\n \"value\": [\n 0.34,\n 1.56,\n 0.64,\n 1\n ]\n },\n \"font-ui\": {\n \"type\": \"fontFamily\",\n \"value\": [\n \"Oswald\",\n \"Helvetica Neue Condensed\",\n \"Arial Narrow\",\n \"system-ui\",\n \"sans-serif\"\n ],\n \"description\": \"Condensed UI/display face. The heavier cuts get blocky at any size, so the weight tokens stay in the 200-400 range.\"\n },\n \"font-display\": {\n \"type\": \"fontFamily\",\n \"value\": [\n \"Oswald\",\n \"Helvetica Neue Condensed\",\n \"Arial Narrow\",\n \"system-ui\",\n \"sans-serif\"\n ]\n },\n \"font-body\": {\n \"type\": \"fontFamily\",\n \"value\": [\n \"Inter\",\n \"system-ui\",\n \"-apple-system\",\n \"Segoe UI\",\n \"sans-serif\"\n ]\n },\n \"font-mono\": {\n \"type\": \"fontFamily\",\n \"value\": [\n \"ui-monospace\",\n \"SFMono-Regular\",\n \"Menlo\",\n \"Consolas\",\n \"monospace\"\n ]\n },\n \"font-weight-light\": {\n \"type\": \"fontWeight\",\n \"value\": 200\n },\n \"font-weight-normal\": {\n \"type\": \"fontWeight\",\n \"value\": 300\n },\n \"font-weight-medium\": {\n \"type\": \"fontWeight\",\n \"value\": 350\n },\n \"font-weight-bold\": {\n \"type\": \"fontWeight\",\n \"value\": 400\n }\n }\n }\n};\n","import { isByAxis, type AxisDefs, type Varying } from './axes';\nimport type { PinObject, PinValue, ThemeDefinition } from './definition';\nimport type { RawToken, TokenValue } from './dtcg/types';\nimport { BAKED_THEMES } from './generated/themes';\n\n/**\n * A theme ready to resolve: its axes and its tokens, each plain or varying by\n * axis, references intact. A `by` that leaves a value out contributes nothing\n * for that selection, so the theme it extends supplies it.\n */\nexport interface Theme {\n readonly name: string;\n readonly extends: Theme | null;\n readonly axes: AxisDefs;\n readonly tokens: Readonly<Record<string, Varying<RawToken>>>;\n}\n\n/** What `defineTheme` accepts: a definition whose `extends` is a `Theme`, holding pins and components only. */\nexport type ThemeInput = Omit<ThemeDefinition, 'extends'> & { readonly extends?: Theme | null };\n\nconst isPinObject = (v: PinValue): v is PinObject =>\n typeof v === 'object' && v !== null && !Array.isArray(v) && 'value' in v;\n\nfunction toRaw(v: Varying<PinValue>): Varying<RawToken> {\n if (isByAxis(v)) {\n const out: Record<string, unknown> = { by: v.by };\n for (const [k, x] of Object.entries(v)) if (k !== 'by') out[k] = toRaw(x as Varying<PinValue>);\n return out as Varying<RawToken>;\n }\n const obj: PinObject = isPinObject(v) ? v : { value: v as TokenValue };\n return { type: obj.type ?? 'unknown', value: obj.value, alpha: obj.alpha, description: obj.description };\n}\n\n/** The built-in theme, from the baked output of themes/weasel.json. */\nexport const weaselTheme: Theme = {\n name: 'weasel',\n extends: null,\n axes: BAKED_THEMES.weasel.axes,\n tokens: BAKED_THEMES.weasel.tokens,\n};\n\n/**\n * Build a theme from pins. Unless `extends` says otherwise the result layers\n * onto `weaselTheme`, so a theme only names what it changes. A definition with\n * seeds, ramps, scales or semantics needs deriving first.\n */\nexport function defineTheme(input: ThemeInput): Theme {\n if (typeof input.extends === 'string') {\n throw new Error(\n `Theme \"${input.name}\" extends \"${input.extends}\" by name; defineTheme needs the Theme itself (e.g. weaselTheme), not a definition's name.`,\n );\n }\n const rules = (['seeds', 'ramps', 'scales', 'semantics'] as const).filter((k) => Object.keys(input[k] ?? {}).length > 0);\n if (rules.length > 0) {\n throw new Error(\n `Theme \"${input.name}\" has ${rules.join(', ')}, which need deriving. Bake it with \\`bake\\` from @weasel-js/theme/engine.`,\n );\n }\n const tokens: Record<string, Varying<RawToken>> = {};\n for (const [name, v] of Object.entries({ ...input.components, ...input.pins })) tokens[name] = toRaw(v);\n return {\n name: input.name,\n extends: input.extends === undefined ? weaselTheme : input.extends,\n axes: input.axes ?? {},\n tokens,\n };\n}\n","import { fullSelection, selectionKey, type Selection } from './axes';\nimport { resolveTheme, themeAxes } from './resolveTheme';\nimport type { Theme } from './theme';\n\nconst STYLE_ID = 'wzl-themes';\n/** `theme.name::selection key` → the rule text currently published for it. Keyed by\n * name because that is what the rule's selector matches on, and holding the\n * text is what lets a redefinition under the same name replace its rule\n * rather than be swallowed as a cache hit. */\nconst emitted = new Map<string, string>();\nlet sheet: CSSStyleSheet | null = null;\nlet styleEl: HTMLStyleElement | null = null;\n\n/** Test seam — drops the module-level cache so each case starts clean. */\nexport function __resetThemeSheet(): void {\n emitted.clear();\n sheet = null;\n styleEl = null;\n}\n\nfunction canAdopt(): boolean {\n return (\n typeof CSSStyleSheet !== 'undefined' &&\n 'replaceSync' in CSSStyleSheet.prototype &&\n Array.isArray(document.adoptedStyleSheets)\n );\n}\n\n/** Republish every rule from `emitted`. Rewriting the whole sheet rather than\n * appending keeps it the size of the theme set: a theme redefined under a\n * name it already used replaces its rule instead of stacking another one. */\nfunction flushRules(): void {\n const css = [...emitted.values()].join('\\n');\n if (canAdopt()) {\n if (!sheet) {\n sheet = new CSSStyleSheet();\n document.adoptedStyleSheets = [...document.adoptedStyleSheets, sheet];\n }\n sheet.replaceSync(css);\n return;\n }\n if (!styleEl) {\n styleEl = document.createElement('style');\n styleEl.id = STYLE_ID;\n document.head.appendChild(styleEl);\n }\n styleEl.textContent = css;\n}\n\n/**\n * Apply `theme` at `selection` to `el`'s subtree.\n *\n * Stamps `data-wzl-theme` and one `data-wzl-<axis>` per axis, and ensures a\n * matching rule block exists in a module-owned stylesheet. Deliberately not\n * inline properties: the cascade then does the work, per-subtree overrides are\n * just a different theme name, and no `!important` is ever needed. No-op\n * outside a DOM.\n */\nexport function applyTheme(el: HTMLElement, theme: Theme, selection: Selection = {}): void {\n if (typeof document === 'undefined') return;\n\n const axes = themeAxes(theme);\n const sel = fullSelection(axes, selection);\n const key = `${theme.name}::${selectionKey(axes, sel)}`;\n const body = Object.entries(resolveTheme(theme, sel))\n .map(([name, value]) => `${name}: ${value};`)\n .join(' ');\n const attrs = Object.keys(axes).map((a) => `[data-wzl-${a}='${sel[a]}']`).join('');\n const rule = `[data-wzl-theme='${theme.name}']${attrs} { ${body} }`;\n if (emitted.get(key) !== rule) {\n emitted.set(key, rule);\n flushRules();\n }\n\n el.setAttribute('data-wzl-theme', theme.name);\n for (const a of Object.keys(axes)) el.setAttribute(`data-wzl-${a}`, sel[a]);\n}\n"]}
|
package/dist/engine.d.ts
ADDED
|
@@ -0,0 +1,293 @@
|
|
|
1
|
+
import { f as ThemeDefinition, L as Lookup, F as FlatTokens, R as RawToken, S as Selection, B as BakedTheme, T as Theme } from './theme-BtpBHcUg.js';
|
|
2
|
+
export { C as CategoricalRampDef, l as ContrastRule, m as LightnessRampDef, n as LiteralRule, N as NumberParam, O as OffsetRule, P as PinObject, e as PinValue, o as RampDef, p as RefRule, q as ScaleDef, r as SemanticRule, t as StepRule, u as bake, v as bakeChain, x as mergeChain } from './theme-BtpBHcUg.js';
|
|
3
|
+
|
|
4
|
+
/** A color in OKLCH: lightness 0–1, chroma, hue in degrees. */
|
|
5
|
+
interface Lch {
|
|
6
|
+
readonly L: number;
|
|
7
|
+
readonly C: number;
|
|
8
|
+
readonly H: number;
|
|
9
|
+
}
|
|
10
|
+
declare function hexToRgb(hex: string): [number, number, number];
|
|
11
|
+
/**
|
|
12
|
+
* OKLCH → `#rrggbb`. Over-saturated requests come back at the gamut boundary:
|
|
13
|
+
* paint's `oklabToSrgbU8` clips chroma at constant lightness, which is what lets
|
|
14
|
+
* `chromaCap` below find a hue's ceiling by asking for far more than exists.
|
|
15
|
+
*/
|
|
16
|
+
declare function toHex(L: number, C: number, H: number): string;
|
|
17
|
+
declare function toLch(hex: string): Lch;
|
|
18
|
+
/** The most chroma this hue can carry at this lightness, inside sRGB. */
|
|
19
|
+
declare function chromaCap(L: number, H: number): number;
|
|
20
|
+
/** WCAG relative luminance. */
|
|
21
|
+
declare function luminance(hex: string): number;
|
|
22
|
+
declare function contrast(a: string, b: string): number;
|
|
23
|
+
/** Shortest angular distance between two hues, in degrees. */
|
|
24
|
+
declare function hueGap(a: number, b: number): number;
|
|
25
|
+
/** OKLab coordinates, for distance work. */
|
|
26
|
+
declare function toLab(hex: string): [number, number, number];
|
|
27
|
+
/**
|
|
28
|
+
* How far apart two colors look, with chroma weighted up.
|
|
29
|
+
*
|
|
30
|
+
* Two things this is not. It is not WCAG contrast, which reads lightness only
|
|
31
|
+
* and so scores a vivid yellow on white at 1.2:1 and calls it illegible when
|
|
32
|
+
* what separates them is chroma. And it is not plain euclidean OKLab distance:
|
|
33
|
+
* OKLab's chroma range is small beside its lightness range, so an unweighted
|
|
34
|
+
* distance is almost all lightness, and it ranks a mid-gray as further from
|
|
35
|
+
* white than a pale blue is. Measured against CIELAB dE on the same colors,
|
|
36
|
+
* unweighted OKLab put `#c1c1c1` at 0.160 and `#abd9ff` at 0.126 while CIELAB
|
|
37
|
+
* put them at 21.9 and 28.5 — opposite orders.
|
|
38
|
+
*
|
|
39
|
+
* `CHROMA_WEIGHT` restores CIELAB's ordering. It is a weight, not a unit
|
|
40
|
+
* conversion, so these numbers do not transfer to or from CIELAB dE.
|
|
41
|
+
*
|
|
42
|
+
* Rough calibration in the weighted space: 0.17 is a pale wash against paper,
|
|
43
|
+
* 0.25 is a real color, 0.5 is unmistakable.
|
|
44
|
+
*/
|
|
45
|
+
declare const CHROMA_WEIGHT = 3;
|
|
46
|
+
declare function deltaE(a: string, b: string): number;
|
|
47
|
+
/** The most chroma this hue can carry at this lightness, as a hex. */
|
|
48
|
+
declare function vividAt(L: number, H: number): string;
|
|
49
|
+
|
|
50
|
+
/**
|
|
51
|
+
* A hue pinned into the palette with its own lightness.
|
|
52
|
+
*
|
|
53
|
+
* Anchors exist because the lightness law excludes some colors entirely. Yellow
|
|
54
|
+
* is the case that forces it: its chroma peaks at L 0.95 — higher than any other
|
|
55
|
+
* hue — so a law that picks lightness for legibility silently yields gold, then
|
|
56
|
+
* olive, and never reports that yellow was dropped.
|
|
57
|
+
*/
|
|
58
|
+
interface Anchor {
|
|
59
|
+
readonly name: string;
|
|
60
|
+
readonly hue: number;
|
|
61
|
+
readonly lightness: number;
|
|
62
|
+
/**
|
|
63
|
+
* Absolute chroma. Omitted means "as much as the gamut allows here", which is
|
|
64
|
+
* what a bright color wants. A muted color has to say so: hue and lightness
|
|
65
|
+
* alone can only describe vivid colors, so a tan asked for at max chroma
|
|
66
|
+
* comes back as an amber.
|
|
67
|
+
*/
|
|
68
|
+
readonly chroma?: number;
|
|
69
|
+
}
|
|
70
|
+
/** Every constraint the generator honors. A zero disables the ones that gate. */
|
|
71
|
+
interface Constraints {
|
|
72
|
+
readonly count: number;
|
|
73
|
+
/**
|
|
74
|
+
* Minimum hue separation, as a share of the even `360 / count` spacing an
|
|
75
|
+
* ideal set would have. 0 disables the check.
|
|
76
|
+
*
|
|
77
|
+
* A share rather than degrees, because absolute degrees mean different things
|
|
78
|
+
* at different cardinalities: 30 degrees is generous for 8 colors and
|
|
79
|
+
* impossible for 16, so a floor in degrees silently becomes unsatisfiable as
|
|
80
|
+
* the set grows.
|
|
81
|
+
*/
|
|
82
|
+
readonly hueFloor: number;
|
|
83
|
+
/** Minimum WCAG contrast every swatch must clear against `surface`. 0 disables. */
|
|
84
|
+
readonly minContrast: number;
|
|
85
|
+
/**
|
|
86
|
+
* Minimum perceptual distance from `surface`. 0 disables.
|
|
87
|
+
*
|
|
88
|
+
* The gate WCAG contrast cannot express. Contrast reads only lightness, so it
|
|
89
|
+
* scores a vivid yellow on white at 1.2:1 and calls it illegible, when what
|
|
90
|
+
* separates them is chroma. Gate on this instead of on lightness and a yellow
|
|
91
|
+
* can be a yellow; gate on contrast alone and the search quietly returns gold.
|
|
92
|
+
*/
|
|
93
|
+
readonly minSurfaceDistance: number;
|
|
94
|
+
/** Minimum perceptual distance between any two swatches. 0 disables. */
|
|
95
|
+
readonly minDistance: number;
|
|
96
|
+
readonly surface: string;
|
|
97
|
+
/** Where `lightnessPull` drags each hue, away from its own chroma peak. */
|
|
98
|
+
readonly lightnessTarget: number;
|
|
99
|
+
/** 0 leaves every hue at its chroma peak; 1 puts them all at the target. */
|
|
100
|
+
readonly lightnessPull: number;
|
|
101
|
+
/** Fraction of the in-gamut chroma ceiling to take. */
|
|
102
|
+
readonly chromaFraction: number;
|
|
103
|
+
/** 0 leaves chroma alone; 1 pulls every hue to the set mean. */
|
|
104
|
+
readonly equalize: number;
|
|
105
|
+
readonly anchors: readonly Anchor[];
|
|
106
|
+
readonly order: 'hue' | 'farthest';
|
|
107
|
+
}
|
|
108
|
+
interface Swatch {
|
|
109
|
+
readonly name: string;
|
|
110
|
+
readonly hex: string;
|
|
111
|
+
readonly lch: Lch;
|
|
112
|
+
readonly anchored: boolean;
|
|
113
|
+
readonly contrast: number;
|
|
114
|
+
}
|
|
115
|
+
interface Stats {
|
|
116
|
+
readonly meanChroma: number;
|
|
117
|
+
readonly chromaSpread: number;
|
|
118
|
+
readonly lightnessSpread: number;
|
|
119
|
+
readonly minHueGap: number;
|
|
120
|
+
/** The realized floor as a share of even spacing, comparable across sizes. */
|
|
121
|
+
readonly hueFloorShare: number;
|
|
122
|
+
readonly minContrast: number;
|
|
123
|
+
readonly minSurfaceDistance: number;
|
|
124
|
+
readonly minDistance: number;
|
|
125
|
+
}
|
|
126
|
+
interface Palette {
|
|
127
|
+
readonly swatches: readonly Swatch[];
|
|
128
|
+
readonly stats: Stats;
|
|
129
|
+
/** False when no hue arrangement satisfied the gates; `swatches` is then the
|
|
130
|
+
* best unconstrained attempt, so the lab still has something to draw. */
|
|
131
|
+
readonly feasible: boolean;
|
|
132
|
+
}
|
|
133
|
+
declare function hueName(H: number): string;
|
|
134
|
+
/**
|
|
135
|
+
* Search hue positions that maximize mean chroma subject to the gates.
|
|
136
|
+
*
|
|
137
|
+
* Seeds matter: a uniform 360/n ring can never open a `2 * minHueGap` hole
|
|
138
|
+
* around a pinned hue, so with anchors the seeds spread across the arc the
|
|
139
|
+
* anchors leave free instead.
|
|
140
|
+
*/
|
|
141
|
+
/** The share-of-even floor, in degrees, for a set of this size. */
|
|
142
|
+
declare function floorDegrees(c: Pick<Constraints, 'hueFloor' | 'count'>): number;
|
|
143
|
+
declare function generate(c: Constraints): Palette;
|
|
144
|
+
/** What the lab opens with: the set this palette work landed on. */
|
|
145
|
+
declare const DEFAULT_CONSTRAINTS: Constraints;
|
|
146
|
+
/**
|
|
147
|
+
* An anchor taken from an existing color — a brand hex, or a color lifted from
|
|
148
|
+
* somewhere else in the theme. Lightness comes along with the hue, which is the
|
|
149
|
+
* point: the reason to pin a color is usually that the lightness law would not
|
|
150
|
+
* have chosen its lightness.
|
|
151
|
+
*/
|
|
152
|
+
/** The color an anchor will actually contribute, for a swatch beside its controls. */
|
|
153
|
+
declare function toHexPreview(a: Pick<Anchor, 'hue' | 'lightness' | 'chroma'>): string;
|
|
154
|
+
declare function anchorFromHex(hex: string, name?: string): Anchor;
|
|
155
|
+
|
|
156
|
+
interface AxisDependency {
|
|
157
|
+
/** Axes this token's own entry varies on. */
|
|
158
|
+
readonly own: readonly string[];
|
|
159
|
+
/** `own` plus everything reachable through references and rule inputs. */
|
|
160
|
+
readonly all: readonly string[];
|
|
161
|
+
}
|
|
162
|
+
declare function axisDependencies(definition: ThemeDefinition, lookup?: Lookup): Record<string, AxisDependency>;
|
|
163
|
+
|
|
164
|
+
type Layer = 'ramps' | 'scales' | 'semantics' | 'components' | 'pins';
|
|
165
|
+
interface Provenance {
|
|
166
|
+
readonly layer: Layer;
|
|
167
|
+
/** `lightness`, `categorical`, `linear`, `geometric`, `step`, `offset`, `contrast`, `ref`, `value`. */
|
|
168
|
+
readonly rule: string;
|
|
169
|
+
/** A pin replaced what the rule produced. Only these count as overridden. */
|
|
170
|
+
readonly pinned: boolean;
|
|
171
|
+
/** What the rule alone produced, when `pinned`. */
|
|
172
|
+
readonly generated?: RawToken;
|
|
173
|
+
}
|
|
174
|
+
type Issue = {
|
|
175
|
+
readonly kind: 'missing-axis-value';
|
|
176
|
+
readonly path: string;
|
|
177
|
+
readonly axis: string;
|
|
178
|
+
readonly value: string;
|
|
179
|
+
} | {
|
|
180
|
+
readonly kind: 'untyped-pin';
|
|
181
|
+
readonly token: string;
|
|
182
|
+
} | {
|
|
183
|
+
readonly kind: 'infeasible-ramp';
|
|
184
|
+
readonly ramp: string;
|
|
185
|
+
} | {
|
|
186
|
+
readonly kind: 'contrast-unmet';
|
|
187
|
+
readonly token: string;
|
|
188
|
+
readonly min: number;
|
|
189
|
+
readonly against: readonly string[];
|
|
190
|
+
/** The step used anyway: the one with the best worst-case ratio across the whole ramp. */
|
|
191
|
+
readonly picked: string;
|
|
192
|
+
readonly ratio: number;
|
|
193
|
+
} | {
|
|
194
|
+
readonly kind: 'check-failed';
|
|
195
|
+
readonly token: string;
|
|
196
|
+
readonly against: string;
|
|
197
|
+
readonly min: number;
|
|
198
|
+
readonly ratio: number;
|
|
199
|
+
} | {
|
|
200
|
+
readonly kind: 'invalid';
|
|
201
|
+
readonly path: string;
|
|
202
|
+
readonly message: string;
|
|
203
|
+
};
|
|
204
|
+
interface DeriveResult {
|
|
205
|
+
/** In layer order, then definition order within a layer. */
|
|
206
|
+
readonly tokens: FlatTokens;
|
|
207
|
+
readonly provenance: Readonly<Record<string, Provenance>>;
|
|
208
|
+
readonly issues: readonly Issue[];
|
|
209
|
+
}
|
|
210
|
+
|
|
211
|
+
/** Derive every token of `definition` for one selection. Unmet rules are reported in `issues`; cycles and dangling references throw. */
|
|
212
|
+
declare function derive(definition: ThemeDefinition, selection?: Selection, lookup?: Lookup): DeriveResult;
|
|
213
|
+
|
|
214
|
+
interface LightnessParams {
|
|
215
|
+
readonly steps: readonly string[];
|
|
216
|
+
readonly lightness: readonly [number, number];
|
|
217
|
+
readonly curve: number;
|
|
218
|
+
readonly hue: number;
|
|
219
|
+
readonly peak: number;
|
|
220
|
+
/** Lifts the first step's chroma off zero, as `darkBias` lifts the last. Default 0. */
|
|
221
|
+
readonly lightBias?: number;
|
|
222
|
+
readonly darkBias: number;
|
|
223
|
+
readonly anchor?: Readonly<Record<string, string>>;
|
|
224
|
+
}
|
|
225
|
+
/**
|
|
226
|
+
* Step name → hex. Lightness walks from `lightness[0]` to `lightness[1]`, `curve` blending an even walk toward a
|
|
227
|
+
* smoothstep; chroma is `peak` scaled by the envelope `sin(πt) + lightBias·(1−t) + darkBias·t` normalized to a maximum of 1.
|
|
228
|
+
*/
|
|
229
|
+
declare function lightnessRamp(p: LightnessParams): Record<string, string>;
|
|
230
|
+
declare function categoricalRamp(steps: readonly string[], gates: Partial<Constraints>, anchors: readonly Anchor[]): {
|
|
231
|
+
colors: Record<string, string>;
|
|
232
|
+
feasible: boolean;
|
|
233
|
+
};
|
|
234
|
+
|
|
235
|
+
interface ScaleParams {
|
|
236
|
+
readonly base: number;
|
|
237
|
+
readonly step?: number;
|
|
238
|
+
readonly ratio?: number;
|
|
239
|
+
}
|
|
240
|
+
declare function scale(steps: readonly string[], p: ScaleParams): Record<string, string>;
|
|
241
|
+
|
|
242
|
+
interface EmitInput {
|
|
243
|
+
readonly baked: BakedTheme;
|
|
244
|
+
readonly deps: Readonly<Record<string, AxisDependency>>;
|
|
245
|
+
/** The default theme alone gets `:root` and the unscoped selectors. */
|
|
246
|
+
readonly isDefault: boolean;
|
|
247
|
+
}
|
|
248
|
+
/** A reference becomes `var()` (or `color-mix()` with an alpha); a literal is resolved. */
|
|
249
|
+
declare function cssValue(name: string, token: RawToken): string;
|
|
250
|
+
declare function emitCss(themes: readonly EmitInput[]): string;
|
|
251
|
+
|
|
252
|
+
type Group = Record<string, unknown> & {
|
|
253
|
+
$type: string;
|
|
254
|
+
};
|
|
255
|
+
interface DtcgExport {
|
|
256
|
+
readonly name: string;
|
|
257
|
+
readonly defaultMode?: string;
|
|
258
|
+
readonly primitives: Record<string, Group>;
|
|
259
|
+
readonly modes: Record<string, Record<string, Group>>;
|
|
260
|
+
}
|
|
261
|
+
/**
|
|
262
|
+
* A theme's own tokens as a DTCG document `loadDTCG` reads back. `extends` is
|
|
263
|
+
* not carried; pass it to `loadDTCG`. Every mode the chain declares is written,
|
|
264
|
+
* so a token that leaves one out still falls through to the parent on the way back.
|
|
265
|
+
*/
|
|
266
|
+
declare function toDTCG(theme: Theme): DtcgExport;
|
|
267
|
+
|
|
268
|
+
declare function emitManifest({ baked }: EmitInput): string;
|
|
269
|
+
|
|
270
|
+
interface ThemesInput {
|
|
271
|
+
readonly definition: ThemeDefinition;
|
|
272
|
+
readonly baked: BakedTheme;
|
|
273
|
+
}
|
|
274
|
+
declare function emitThemes(themes: readonly ThemesInput[]): string;
|
|
275
|
+
|
|
276
|
+
/** Every step name a ramp or scale entry declares, across every `by` branch of the entry and of its `steps`, first seen first. */
|
|
277
|
+
declare function declaredSteps(entry: unknown): string[];
|
|
278
|
+
|
|
279
|
+
type GeneratedTokens = {
|
|
280
|
+
readonly ok: true;
|
|
281
|
+
readonly files: {
|
|
282
|
+
readonly 'tokens.css': string;
|
|
283
|
+
readonly 'themes.ts': string;
|
|
284
|
+
readonly 'manifest.ts': string;
|
|
285
|
+
};
|
|
286
|
+
} | {
|
|
287
|
+
readonly ok: false;
|
|
288
|
+
readonly problems: readonly string[];
|
|
289
|
+
};
|
|
290
|
+
/** Every generated token file for a set of definitions, the one that extends nothing being the default. Any derive issue refuses the whole set. */
|
|
291
|
+
declare function generateTokens(definitions: readonly ThemeDefinition[]): GeneratedTokens;
|
|
292
|
+
|
|
293
|
+
export { type Anchor, type AxisDependency, BakedTheme, CHROMA_WEIGHT, type Constraints, DEFAULT_CONSTRAINTS, type DeriveResult, type DtcgExport, type EmitInput, type GeneratedTokens, type Issue, type Layer, type Lch, type LightnessParams, Lookup, type Palette, type Provenance, type ScaleParams, type Stats, type Swatch, ThemeDefinition, type ThemesInput, anchorFromHex, axisDependencies, categoricalRamp, chromaCap, contrast, cssValue, declaredSteps, deltaE, derive, emitCss, emitManifest, emitThemes, floorDegrees, generate, generateTokens, hexToRgb, hueGap, hueName, lightnessRamp, luminance, scale, toDTCG, toHex, toHexPreview, toLab, toLch, vividAt };
|