@weasel-js/theme 1.7.0 → 1.7.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.
@@ -8,5 +8,5 @@ function overrideKey(axes, selection) {
8
8
  var ALPHA_EXT = "com.weasel.alpha";
9
9
 
10
10
  export { ALPHA_EXT, AXES_EXT, overrideKey };
11
- //# sourceMappingURL=chunk-EINHFDWI.js.map
12
- //# sourceMappingURL=chunk-EINHFDWI.js.map
11
+ //# sourceMappingURL=chunk-Z675UQ26.js.map
12
+ //# sourceMappingURL=chunk-Z675UQ26.js.map
@@ -1 +1 @@
1
- {"version":3,"sources":["../src/dtcg/axesExtension.ts","../src/dtcg/types.ts"],"names":[],"mappings":";AAGO,IAAM,QAAA,GAAW;AAwBjB,SAAS,WAAA,CAAY,MAAgB,SAAA,EAA8B;AACxE,EAAA,OAAO,MAAA,CAAO,IAAA,CAAK,IAAI,CAAA,CACpB,MAAA,CAAO,CAAC,CAAA,KAAM,SAAA,CAAU,CAAC,CAAA,KAAM,MAAA,IAAa,SAAA,CAAU,CAAC,CAAA,KAAM,IAAA,CAAK,CAAC,CAAA,CAAE,OAAO,CAAA,CAC5E,GAAA,CAAI,CAAC,MAAM,CAAA,EAAG,CAAC,CAAA,CAAA,EAAI,SAAA,CAAU,CAAC,CAAC,CAAA,CAAE,CAAA,CACjC,KAAK,GAAG,CAAA;AACb;;;AC/BO,IAAM,SAAA,GAAY","file":"chunk-EINHFDWI.js","sourcesContent":["import type { AxisDefs, Selection } from '../axes.ts';\n\n/** The `$extensions` key on a DTCG export's root that carries every axis besides mode. */\nexport const AXES_EXT = 'com.weasel.axes';\n\n/** The token groups of one layer: plain values, and values per mode. */\nexport interface DtcgLayer {\n readonly primitives: Record<string, Record<string, unknown>>;\n readonly modes: Record<string, Record<string, Record<string, unknown>>>;\n}\n\n/**\n * What `toDTCG` writes under `$extensions[\"com.weasel.axes\"]`.\n *\n * - `axes`: every axis the theme resolves with, mode included.\n * - `varies`: token name → the non-mode axes its value depends on.\n * - `overrides`: a layer per combination of non-default values, keyed like\n * `selectionKey` but naming only the axes off their default\n * (`density=compact`, `contrast=high,density=roomy` in axis order).\n */\nexport interface DtcgAxesExtension {\n readonly axes: AxisDefs;\n readonly varies: Record<string, readonly string[]>;\n readonly overrides: Record<string, DtcgLayer>;\n}\n\n/** The override key for a selection: its non-default values, axes in declaration order. `''` is the plain groups. */\nexport function overrideKey(axes: AxisDefs, selection: Selection): string {\n return Object.keys(axes)\n .filter((a) => selection[a] !== undefined && selection[a] !== axes[a].default)\n .map((a) => `${a}=${selection[a]}`)\n .join(',');\n}\n","/** The one `$extensions` key this kit defines. */\nexport const ALPHA_EXT = 'com.weasel.alpha';\n\nexport type TokenValue = string | number | readonly (string | number)[];\n\n/**\n * A single design token as authored, before aliases are resolved: a DTCG-shaped\n * `{ type, value }` pair where `value` may still be a `{ref}` to another token.\n */\nexport interface RawToken {\n readonly type: string;\n readonly value: TokenValue;\n /** Render the referenced color at this alpha, 0–1. */\n readonly alpha?: number | undefined;\n readonly description?: string | undefined;\n}\n\n/** A token graph flattened to one level, keyed by token name (no `--wzl-`\n * prefix). Still unresolved — see `ResolvedTokenMap` for the output side. */\nexport type FlatTokens = Record<string, RawToken>;\n\n/** A resolved theme: every token name mapped to its final CSS-ready string.\n * Named ...Map, not ...Tokens, to stay distinct from hud's public `ResolvedTokens`. */\nexport type ResolvedTokenMap = Record<string, string>;\n"]}
1
+ {"version":3,"sources":["../src/dtcg/axesExtension.ts","../src/dtcg/types.ts"],"names":[],"mappings":";AAGO,IAAM,QAAA,GAAW;AAwBjB,SAAS,WAAA,CAAY,MAAgB,SAAA,EAA8B;AACxE,EAAA,OAAO,MAAA,CAAO,IAAA,CAAK,IAAI,CAAA,CACpB,MAAA,CAAO,CAAC,CAAA,KAAM,SAAA,CAAU,CAAC,CAAA,KAAM,MAAA,IAAa,SAAA,CAAU,CAAC,CAAA,KAAM,IAAA,CAAK,CAAC,CAAA,CAAE,OAAO,CAAA,CAC5E,GAAA,CAAI,CAAC,MAAM,CAAA,EAAG,CAAC,CAAA,CAAA,EAAI,SAAA,CAAU,CAAC,CAAC,CAAA,CAAE,CAAA,CACjC,KAAK,GAAG,CAAA;AACb;;;AC/BO,IAAM,SAAA,GAAY","file":"chunk-Z675UQ26.js","sourcesContent":["import type { AxisDefs, Selection } from '../axes.ts';\n\n/** The `$extensions` key on a DTCG export's root that carries every axis besides mode. */\nexport const AXES_EXT = 'com.weasel.axes';\n\n/** The token groups of one layer: plain values, and values per mode. */\nexport interface DtcgLayer {\n readonly primitives: Record<string, Record<string, unknown>>;\n readonly modes: Record<string, Record<string, Record<string, unknown>>>;\n}\n\n/**\n * What `toDTCG` writes under `$extensions[\"com.weasel.axes\"]`.\n *\n * - `axes`: every axis the theme resolves with, mode included.\n * - `varies`: token name → the non-mode axes its value depends on.\n * - `overrides`: a layer per combination of non-default values, keyed like\n * `selectionKey` but naming only the axes off their default\n * (`density=compact`, `contrast=high,density=roomy` in axis order).\n */\nexport interface DtcgAxesExtension {\n readonly axes: AxisDefs;\n readonly varies: Record<string, readonly string[]>;\n readonly overrides: Record<string, DtcgLayer>;\n}\n\n/** The override key for a selection: its non-default values, axes in declaration order. `''` is the plain groups. */\nexport function overrideKey(axes: AxisDefs, selection: Selection): string {\n return Object.keys(axes)\n .filter((a) => selection[a] !== undefined && selection[a] !== axes[a].default)\n .map((a) => `${a}=${selection[a]}`)\n .join(',');\n}\n","/** The one `$extensions` key this kit defines. */\nexport const ALPHA_EXT = 'com.weasel.alpha';\n\n/** A token's value as authored: a string (which may be a `{ref}`), a number, or a list of those, such as a font stack. */\nexport type TokenValue = string | number | readonly (string | number)[];\n\n/**\n * A single design token as authored, before aliases are resolved: a DTCG-shaped\n * `{ type, value }` pair where `value` may still be a `{ref}` to another token.\n */\nexport interface RawToken {\n readonly type: string;\n readonly value: TokenValue;\n /** Render the referenced color at this alpha, 0–1. */\n readonly alpha?: number | undefined;\n readonly description?: string | undefined;\n}\n\n/** A token graph flattened to one level, keyed by token name (no `--wzl-`\n * prefix). Still unresolved — see `ResolvedTokenMap` for the output side. */\nexport type FlatTokens = Record<string, RawToken>;\n\n/** A resolved theme: every token name mapped to its final CSS-ready string.\n * Named ...Map, not ...Tokens, to stay distinct from hud's public `ResolvedTokens`. */\nexport type ResolvedTokenMap = Record<string, string>;\n"]}
@@ -2,6 +2,7 @@
2
2
  interface AxisValue {
3
3
  readonly scheme?: 'dark' | 'light';
4
4
  }
5
+ /** One variant dimension of a theme, such as `mode` or `density`. `default` must name one of `values`. */
5
6
  interface AxisDef {
6
7
  readonly default: string;
7
8
  readonly values: Readonly<Record<string, AxisValue>>;
@@ -15,14 +16,18 @@ interface ByAxis<T> {
15
16
  readonly by: string;
16
17
  readonly [axisValue: string]: Varying<T> | string;
17
18
  }
19
+ /** A value that is either the same everywhere or chosen per axis value. */
18
20
  type Varying<T> = T | ByAxis<T>;
21
+ /** Whether `v` is a {@link ByAxis} value. */
19
22
  declare function isByAxis(v: unknown): v is ByAxis<unknown>;
20
23
  /** Every axis given a known value; anything missing or unknown takes its default. */
21
24
  declare function fullSelection(axes: AxisDefs, selection?: Selection): Selection;
25
+ /** Every full combination of axis values, the first axis varying slowest. */
22
26
  declare function enumerateSelections(axes: AxisDefs): Selection[];
23
27
  /** `mode=dark,density=compact`, axes in declaration order. */
24
28
  declare function selectionKey(axes: AxisDefs, selection: Selection): string;
25
29
 
30
+ /** A token's value as authored: a string (which may be a `{ref}`), a number, or a list of those, such as a font stack. */
26
31
  type TokenValue = string | number | readonly (string | number)[];
27
32
  /**
28
33
  * A single design token as authored, before aliases are resolved: a DTCG-shaped
@@ -39,6 +44,7 @@ interface RawToken {
39
44
  * prefix). Still unresolved — see `ResolvedTokenMap` for the output side. */
40
45
  type FlatTokens = Record<string, RawToken>;
41
46
 
47
+ /** Finds a definition by name, for resolving `extends`. */
42
48
  type Lookup = (name: string) => ThemeDefinition | undefined;
43
49
  /** The definition with its whole `extends` chain folded in, child entries winning. */
44
50
  declare function mergeChain(def: ThemeDefinition, lookup?: Lookup, seen?: ReadonlySet<string>): ThemeDefinition;
@@ -66,7 +72,7 @@ declare function bakeChain(definition: ThemeDefinition, lookup?: Lookup): BakedT
66
72
 
67
73
  /** Every design token the built-in themes declare, spelled as the CSS
68
74
  * custom property it becomes. */
69
- type TokenName = '--wzl-accent' | '--wzl-accent-base' | '--wzl-accent-fg' | '--wzl-accent-hover' | '--wzl-accent-soft' | '--wzl-accent-strong' | '--wzl-backdrop' | '--wzl-border' | '--wzl-border-strong' | '--wzl-border-w' | '--wzl-checker-a' | '--wzl-checker-b' | '--wzl-checker-size' | '--wzl-control-h' | '--wzl-control-h-sm' | '--wzl-control-h-xs' | '--wzl-curve-color' | '--wzl-curve-width' | '--wzl-danger' | '--wzl-danger-base' | '--wzl-ease-in-cubic' | '--wzl-ease-in-out-cubic' | '--wzl-ease-out-back' | '--wzl-ease-out-cubic' | '--wzl-fg' | '--wzl-fg-inverse' | '--wzl-fg-muted' | '--wzl-fg-on-accent' | '--wzl-fg-subtle' | '--wzl-field-pad-x' | '--wzl-focus-ring' | '--wzl-font-body' | '--wzl-font-display' | '--wzl-font-mono' | '--wzl-font-size' | '--wzl-font-size-2xs' | '--wzl-font-size-lg' | '--wzl-font-size-md' | '--wzl-font-size-sm' | '--wzl-font-size-xl' | '--wzl-font-size-xs' | '--wzl-font-ui' | '--wzl-font-weight-bold' | '--wzl-font-weight-light' | '--wzl-font-weight-medium' | '--wzl-font-weight-normal' | '--wzl-glass-blur' | '--wzl-glass-tint' | '--wzl-gray-100' | '--wzl-gray-200' | '--wzl-gray-300' | '--wzl-gray-400' | '--wzl-gray-50' | '--wzl-gray-500' | '--wzl-gray-600' | '--wzl-gray-700' | '--wzl-gray-800' | '--wzl-gray-900' | '--wzl-handle-size' | '--wzl-handle-size-lg' | '--wzl-handle-size-sm' | '--wzl-icon-button-size' | '--wzl-leading' | '--wzl-leading-snug' | '--wzl-leading-tight' | '--wzl-line' | '--wzl-line-strong' | '--wzl-line-subtle' | '--wzl-line-width' | '--wzl-motion-fast' | '--wzl-motion-medium' | '--wzl-panel-blur' | '--wzl-panel-border-color' | '--wzl-panel-border-style' | '--wzl-panel-border-width' | '--wzl-panel-pad' | '--wzl-panel-radius' | '--wzl-panel-surface' | '--wzl-panel-title-case' | '--wzl-panel-title-color' | '--wzl-panel-title-font' | '--wzl-panel-title-inset' | '--wzl-panel-title-size' | '--wzl-panel-title-tracking' | '--wzl-panel-title-weight' | '--wzl-panel-tone-mix' | '--wzl-radius-lg' | '--wzl-radius-md' | '--wzl-radius-pill' | '--wzl-radius-sm' | '--wzl-secondary' | '--wzl-secondary-base' | '--wzl-secondary-fg' | '--wzl-secondary-soft' | '--wzl-secondary-strong' | '--wzl-shadow' | '--wzl-slider-thumb-mix' | '--wzl-slider-thumb-size' | '--wzl-slider-track-h' | '--wzl-slider-track-mix' | '--wzl-space-1' | '--wzl-space-2' | '--wzl-space-3' | '--wzl-space-4' | '--wzl-space-5' | '--wzl-space-6' | '--wzl-space-7' | '--wzl-space-8' | '--wzl-space-lg' | '--wzl-space-md' | '--wzl-space-sm' | '--wzl-space-xs' | '--wzl-stance-advanced-title-color' | '--wzl-stance-aside-blur' | '--wzl-stance-aside-border-color' | '--wzl-stance-aside-surface' | '--wzl-stance-aside-title-color' | '--wzl-stance-danger-border-color' | '--wzl-stance-danger-title-color' | '--wzl-stance-danger-tone' | '--wzl-stance-debug-border-style' | '--wzl-stance-debug-title-case' | '--wzl-stance-debug-title-font' | '--wzl-stance-important-border-color' | '--wzl-stance-important-title-color' | '--wzl-stance-notice-tone' | '--wzl-stance-notice-tone-mix' | '--wzl-stance-preview-pad' | '--wzl-stance-preview-title-case' | '--wzl-stance-preview-title-inset' | '--wzl-stance-preview-title-size' | '--wzl-stance-scope-border-width' | '--wzl-stance-scope-nested-radius' | '--wzl-stance-scope-nested-surface' | '--wzl-stance-scope-radius' | '--wzl-stance-scope-tone-mix' | '--wzl-success' | '--wzl-success-base' | '--wzl-surface' | '--wzl-surface-hover' | '--wzl-surface-pressed' | '--wzl-surface-raised' | '--wzl-surface-sunken' | '--wzl-swatch-amber' | '--wzl-swatch-blue' | '--wzl-swatch-citron' | '--wzl-swatch-fuchsia' | '--wzl-swatch-green' | '--wzl-swatch-red' | '--wzl-swatch-rose' | '--wzl-swatch-sky' | '--wzl-swatch-teal' | '--wzl-swatch-violet' | '--wzl-tb-height' | '--wzl-tracking-none' | '--wzl-tracking-wide' | '--wzl-tracking-wider' | '--wzl-warning' | '--wzl-warning-base' | '--wzl-workspace-line' | '--wzl-workspace-surface' | '--wzl-z-modal' | '--wzl-z-overlay' | '--wzl-z-toolbar';
75
+ type TokenName = '--wzl-accent' | '--wzl-accent-base' | '--wzl-accent-fg' | '--wzl-accent-hover' | '--wzl-accent-soft' | '--wzl-accent-strong' | '--wzl-backdrop' | '--wzl-border' | '--wzl-border-strong' | '--wzl-border-w' | '--wzl-checker-a' | '--wzl-checker-b' | '--wzl-checker-size' | '--wzl-control-h' | '--wzl-control-h-sm' | '--wzl-control-h-xs' | '--wzl-curve-color' | '--wzl-curve-width' | '--wzl-danger' | '--wzl-danger-base' | '--wzl-ease-in-cubic' | '--wzl-ease-in-out-cubic' | '--wzl-ease-out-back' | '--wzl-ease-out-cubic' | '--wzl-fg' | '--wzl-fg-inverse' | '--wzl-fg-muted' | '--wzl-fg-on-accent' | '--wzl-fg-subtle' | '--wzl-field-pad-x' | '--wzl-focus-ring' | '--wzl-font-body' | '--wzl-font-display' | '--wzl-font-mono' | '--wzl-font-numeric' | '--wzl-font-size' | '--wzl-font-size-2xs' | '--wzl-font-size-lg' | '--wzl-font-size-md' | '--wzl-font-size-sm' | '--wzl-font-size-xl' | '--wzl-font-size-xs' | '--wzl-font-ui' | '--wzl-font-weight-bold' | '--wzl-font-weight-light' | '--wzl-font-weight-medium' | '--wzl-font-weight-normal' | '--wzl-glass-blur' | '--wzl-glass-tint' | '--wzl-gray-100' | '--wzl-gray-200' | '--wzl-gray-300' | '--wzl-gray-400' | '--wzl-gray-50' | '--wzl-gray-500' | '--wzl-gray-600' | '--wzl-gray-700' | '--wzl-gray-800' | '--wzl-gray-900' | '--wzl-handle-size' | '--wzl-handle-size-lg' | '--wzl-handle-size-sm' | '--wzl-icon-button-size' | '--wzl-leading' | '--wzl-leading-snug' | '--wzl-leading-tight' | '--wzl-line' | '--wzl-line-strong' | '--wzl-line-subtle' | '--wzl-line-width' | '--wzl-motion-fast' | '--wzl-motion-medium' | '--wzl-panel-blur' | '--wzl-panel-border-color' | '--wzl-panel-border-style' | '--wzl-panel-border-width' | '--wzl-panel-pad' | '--wzl-panel-radius' | '--wzl-panel-surface' | '--wzl-panel-title-case' | '--wzl-panel-title-color' | '--wzl-panel-title-font' | '--wzl-panel-title-inset' | '--wzl-panel-title-size' | '--wzl-panel-title-tracking' | '--wzl-panel-title-weight' | '--wzl-panel-tone-mix' | '--wzl-radius-lg' | '--wzl-radius-md' | '--wzl-radius-pill' | '--wzl-radius-sm' | '--wzl-secondary' | '--wzl-secondary-base' | '--wzl-secondary-fg' | '--wzl-secondary-soft' | '--wzl-secondary-strong' | '--wzl-shadow' | '--wzl-slider-thumb-mix' | '--wzl-slider-thumb-size' | '--wzl-slider-track-h' | '--wzl-slider-track-mix' | '--wzl-space-1' | '--wzl-space-2' | '--wzl-space-3' | '--wzl-space-4' | '--wzl-space-5' | '--wzl-space-6' | '--wzl-space-7' | '--wzl-space-8' | '--wzl-space-lg' | '--wzl-space-md' | '--wzl-space-sm' | '--wzl-space-xs' | '--wzl-stance-advanced-title-color' | '--wzl-stance-aside-blur' | '--wzl-stance-aside-border-color' | '--wzl-stance-aside-surface' | '--wzl-stance-aside-title-color' | '--wzl-stance-danger-border-color' | '--wzl-stance-danger-title-color' | '--wzl-stance-danger-tone' | '--wzl-stance-debug-border-style' | '--wzl-stance-debug-title-case' | '--wzl-stance-debug-title-font' | '--wzl-stance-important-border-color' | '--wzl-stance-important-title-color' | '--wzl-stance-notice-tone' | '--wzl-stance-notice-tone-mix' | '--wzl-stance-preview-pad' | '--wzl-stance-preview-title-case' | '--wzl-stance-preview-title-inset' | '--wzl-stance-preview-title-size' | '--wzl-stance-scope-border-width' | '--wzl-stance-scope-nested-radius' | '--wzl-stance-scope-nested-surface' | '--wzl-stance-scope-radius' | '--wzl-stance-scope-tone-mix' | '--wzl-success' | '--wzl-success-base' | '--wzl-surface' | '--wzl-surface-hover' | '--wzl-surface-pressed' | '--wzl-surface-raised' | '--wzl-surface-sunken' | '--wzl-swatch-amber' | '--wzl-swatch-blue' | '--wzl-swatch-citron' | '--wzl-swatch-fuchsia' | '--wzl-swatch-green' | '--wzl-swatch-red' | '--wzl-swatch-rose' | '--wzl-swatch-sky' | '--wzl-swatch-teal' | '--wzl-swatch-violet' | '--wzl-tb-height' | '--wzl-tracking-none' | '--wzl-tracking-wide' | '--wzl-tracking-wider' | '--wzl-warning' | '--wzl-warning-base' | '--wzl-workspace-line' | '--wzl-workspace-surface' | '--wzl-z-modal' | '--wzl-z-overlay' | '--wzl-z-toolbar';
70
76
  /** A built-in theme with its aliases already collapsed: every selection
71
77
  * (keyed `mode=dark`, axes in declaration order) maps every token name to
72
78
  * a final CSS value. */
@@ -129,12 +135,12 @@ declare const THEMES: {
129
135
  readonly '--wzl-swatch-citron': "#d5d23a";
130
136
  readonly '--wzl-swatch-rose': "#fa4590";
131
137
  readonly '--wzl-swatch-violet': "#955cf9";
132
- readonly '--wzl-font-size-2xs': "7px";
133
- readonly '--wzl-font-size-xs': "8px";
134
- readonly '--wzl-font-size-sm': "9px";
135
- readonly '--wzl-font-size-md': "11px";
136
- readonly '--wzl-font-size-lg': "14px";
137
- readonly '--wzl-font-size-xl': "17px";
138
+ readonly '--wzl-font-size-2xs': "9px";
139
+ readonly '--wzl-font-size-xs': "10px";
140
+ readonly '--wzl-font-size-sm': "11px";
141
+ readonly '--wzl-font-size-md': "13px";
142
+ readonly '--wzl-font-size-lg': "16px";
143
+ readonly '--wzl-font-size-xl': "20px";
138
144
  readonly '--wzl-space-1': "2px";
139
145
  readonly '--wzl-space-2': "4px";
140
146
  readonly '--wzl-space-3': "6px";
@@ -169,7 +175,7 @@ declare const THEMES: {
169
175
  readonly '--wzl-panel-title-font': "Oswald, 'Helvetica Neue Condensed', 'Arial Narrow', system-ui, sans-serif";
170
176
  readonly '--wzl-font-weight-light': "200";
171
177
  readonly '--wzl-panel-title-weight': "200";
172
- readonly '--wzl-panel-title-size': "14px";
178
+ readonly '--wzl-panel-title-size': "16px";
173
179
  readonly '--wzl-panel-title-case': "none";
174
180
  readonly '--wzl-panel-title-tracking': "0.01em";
175
181
  readonly '--wzl-panel-title-color': "#e6e7e9";
@@ -200,7 +206,7 @@ declare const THEMES: {
200
206
  readonly '--wzl-stance-important-border-color': "#8c94ee";
201
207
  readonly '--wzl-stance-important-title-color': "#8c94ee";
202
208
  readonly '--wzl-stance-preview-pad': "0";
203
- readonly '--wzl-stance-preview-title-size': "8px";
209
+ readonly '--wzl-stance-preview-title-size': "10px";
204
210
  readonly '--wzl-stance-preview-title-case': "none";
205
211
  readonly '--wzl-stance-preview-title-inset': "6px 10px 0";
206
212
  readonly '--wzl-warning-base': "#d99a3f";
@@ -223,11 +229,11 @@ declare const THEMES: {
223
229
  readonly '--wzl-border-w': "1px";
224
230
  readonly '--wzl-line-width': "2px";
225
231
  readonly '--wzl-curve-width': "3px";
226
- readonly '--wzl-tb-height': "24px";
227
- readonly '--wzl-control-h-xs': "16px";
228
- readonly '--wzl-control-h-sm': "18px";
229
- readonly '--wzl-control-h': "20px";
230
- readonly '--wzl-icon-button-size': "20px";
232
+ readonly '--wzl-tb-height': "28px";
233
+ readonly '--wzl-control-h-xs': "18px";
234
+ readonly '--wzl-control-h-sm': "20px";
235
+ readonly '--wzl-control-h': "24px";
236
+ readonly '--wzl-icon-button-size': "22px";
231
237
  readonly '--wzl-slider-track-h': "4px";
232
238
  readonly '--wzl-slider-thumb-size': "8px";
233
239
  readonly '--wzl-slider-track-mix': "18%";
@@ -241,7 +247,7 @@ declare const THEMES: {
241
247
  readonly '--wzl-workspace-surface': "#0e0f12";
242
248
  readonly '--wzl-workspace-line': "rgba(230, 231, 233, 0.1)";
243
249
  readonly '--wzl-field-pad-x': "8px";
244
- readonly '--wzl-font-size': "11px";
250
+ readonly '--wzl-font-size': "13px";
245
251
  readonly '--wzl-tracking-none': "0";
246
252
  readonly '--wzl-tracking-wide': "0.06em";
247
253
  readonly '--wzl-tracking-wider': "0.08em";
@@ -259,6 +265,7 @@ declare const THEMES: {
259
265
  readonly '--wzl-ease-in-out-cubic': "cubic-bezier(0.65, 0, 0.35, 1)";
260
266
  readonly '--wzl-ease-out-back': "cubic-bezier(0.34, 1.56, 0.64, 1)";
261
267
  readonly '--wzl-font-ui': "Oswald, 'Helvetica Neue Condensed', 'Arial Narrow', system-ui, sans-serif";
268
+ readonly '--wzl-font-numeric': "'Oswald Tabular', var(--wzl-font-ui)";
262
269
  readonly '--wzl-font-body': "Inter, system-ui, -apple-system, 'Segoe UI', sans-serif";
263
270
  readonly '--wzl-font-weight-normal': "300";
264
271
  readonly '--wzl-font-weight-medium': "350";
@@ -295,12 +302,12 @@ declare const THEMES: {
295
302
  readonly '--wzl-swatch-citron': "#d5d23a";
296
303
  readonly '--wzl-swatch-rose': "#fa4590";
297
304
  readonly '--wzl-swatch-violet': "#955cf9";
298
- readonly '--wzl-font-size-2xs': "9px";
299
- readonly '--wzl-font-size-xs': "10px";
300
- readonly '--wzl-font-size-sm': "11px";
301
- readonly '--wzl-font-size-md': "13px";
302
- readonly '--wzl-font-size-lg': "16px";
303
- readonly '--wzl-font-size-xl': "20px";
305
+ readonly '--wzl-font-size-2xs': "10px";
306
+ readonly '--wzl-font-size-xs': "12px";
307
+ readonly '--wzl-font-size-sm': "13px";
308
+ readonly '--wzl-font-size-md': "15px";
309
+ readonly '--wzl-font-size-lg': "18px";
310
+ readonly '--wzl-font-size-xl': "23px";
304
311
  readonly '--wzl-space-1': "2px";
305
312
  readonly '--wzl-space-2': "4px";
306
313
  readonly '--wzl-space-3': "6px";
@@ -335,7 +342,7 @@ declare const THEMES: {
335
342
  readonly '--wzl-panel-title-font': "Oswald, 'Helvetica Neue Condensed', 'Arial Narrow', system-ui, sans-serif";
336
343
  readonly '--wzl-font-weight-light': "200";
337
344
  readonly '--wzl-panel-title-weight': "200";
338
- readonly '--wzl-panel-title-size': "16px";
345
+ readonly '--wzl-panel-title-size': "18px";
339
346
  readonly '--wzl-panel-title-case': "none";
340
347
  readonly '--wzl-panel-title-tracking': "0.01em";
341
348
  readonly '--wzl-panel-title-color': "#e6e7e9";
@@ -366,7 +373,7 @@ declare const THEMES: {
366
373
  readonly '--wzl-stance-important-border-color': "#8c94ee";
367
374
  readonly '--wzl-stance-important-title-color': "#8c94ee";
368
375
  readonly '--wzl-stance-preview-pad': "0";
369
- readonly '--wzl-stance-preview-title-size': "10px";
376
+ readonly '--wzl-stance-preview-title-size': "12px";
370
377
  readonly '--wzl-stance-preview-title-case': "none";
371
378
  readonly '--wzl-stance-preview-title-inset': "6px 10px 0";
372
379
  readonly '--wzl-warning-base': "#d99a3f";
@@ -389,11 +396,11 @@ declare const THEMES: {
389
396
  readonly '--wzl-border-w': "1px";
390
397
  readonly '--wzl-line-width': "2px";
391
398
  readonly '--wzl-curve-width': "3px";
392
- readonly '--wzl-tb-height': "28px";
393
- readonly '--wzl-control-h-xs': "18px";
394
- readonly '--wzl-control-h-sm': "20px";
395
- readonly '--wzl-control-h': "24px";
396
- readonly '--wzl-icon-button-size': "22px";
399
+ readonly '--wzl-tb-height': "32px";
400
+ readonly '--wzl-control-h-xs': "22px";
401
+ readonly '--wzl-control-h-sm': "24px";
402
+ readonly '--wzl-control-h': "28px";
403
+ readonly '--wzl-icon-button-size': "26px";
397
404
  readonly '--wzl-slider-track-h': "4px";
398
405
  readonly '--wzl-slider-thumb-size': "8px";
399
406
  readonly '--wzl-slider-track-mix': "18%";
@@ -407,7 +414,7 @@ declare const THEMES: {
407
414
  readonly '--wzl-workspace-surface': "#0e0f12";
408
415
  readonly '--wzl-workspace-line': "rgba(230, 231, 233, 0.1)";
409
416
  readonly '--wzl-field-pad-x': "8px";
410
- readonly '--wzl-font-size': "13px";
417
+ readonly '--wzl-font-size': "15px";
411
418
  readonly '--wzl-tracking-none': "0";
412
419
  readonly '--wzl-tracking-wide': "0.06em";
413
420
  readonly '--wzl-tracking-wider': "0.08em";
@@ -425,6 +432,7 @@ declare const THEMES: {
425
432
  readonly '--wzl-ease-in-out-cubic': "cubic-bezier(0.65, 0, 0.35, 1)";
426
433
  readonly '--wzl-ease-out-back': "cubic-bezier(0.34, 1.56, 0.64, 1)";
427
434
  readonly '--wzl-font-ui': "Oswald, 'Helvetica Neue Condensed', 'Arial Narrow', system-ui, sans-serif";
435
+ readonly '--wzl-font-numeric': "'Oswald Tabular', var(--wzl-font-ui)";
428
436
  readonly '--wzl-font-body': "Inter, system-ui, -apple-system, 'Segoe UI', sans-serif";
429
437
  readonly '--wzl-font-weight-normal': "300";
430
438
  readonly '--wzl-font-weight-medium': "350";
@@ -461,12 +469,12 @@ declare const THEMES: {
461
469
  readonly '--wzl-swatch-citron': "#d5d23a";
462
470
  readonly '--wzl-swatch-rose': "#fa4590";
463
471
  readonly '--wzl-swatch-violet': "#955cf9";
464
- readonly '--wzl-font-size-2xs': "10px";
465
- readonly '--wzl-font-size-xs': "12px";
466
- readonly '--wzl-font-size-sm': "13px";
467
- readonly '--wzl-font-size-md': "15px";
468
- readonly '--wzl-font-size-lg': "18px";
469
- readonly '--wzl-font-size-xl': "23px";
472
+ readonly '--wzl-font-size-2xs': "12px";
473
+ readonly '--wzl-font-size-xs': "14px";
474
+ readonly '--wzl-font-size-sm': "15px";
475
+ readonly '--wzl-font-size-md': "18px";
476
+ readonly '--wzl-font-size-lg': "22px";
477
+ readonly '--wzl-font-size-xl': "28px";
470
478
  readonly '--wzl-space-1': "2px";
471
479
  readonly '--wzl-space-2': "4px";
472
480
  readonly '--wzl-space-3': "6px";
@@ -501,7 +509,7 @@ declare const THEMES: {
501
509
  readonly '--wzl-panel-title-font': "Oswald, 'Helvetica Neue Condensed', 'Arial Narrow', system-ui, sans-serif";
502
510
  readonly '--wzl-font-weight-light': "200";
503
511
  readonly '--wzl-panel-title-weight': "200";
504
- readonly '--wzl-panel-title-size': "18px";
512
+ readonly '--wzl-panel-title-size': "22px";
505
513
  readonly '--wzl-panel-title-case': "none";
506
514
  readonly '--wzl-panel-title-tracking': "0.01em";
507
515
  readonly '--wzl-panel-title-color': "#e6e7e9";
@@ -532,7 +540,7 @@ declare const THEMES: {
532
540
  readonly '--wzl-stance-important-border-color': "#8c94ee";
533
541
  readonly '--wzl-stance-important-title-color': "#8c94ee";
534
542
  readonly '--wzl-stance-preview-pad': "0";
535
- readonly '--wzl-stance-preview-title-size': "12px";
543
+ readonly '--wzl-stance-preview-title-size': "14px";
536
544
  readonly '--wzl-stance-preview-title-case': "none";
537
545
  readonly '--wzl-stance-preview-title-inset': "6px 10px 0";
538
546
  readonly '--wzl-warning-base': "#d99a3f";
@@ -555,11 +563,11 @@ declare const THEMES: {
555
563
  readonly '--wzl-border-w': "1px";
556
564
  readonly '--wzl-line-width': "2px";
557
565
  readonly '--wzl-curve-width': "3px";
558
- readonly '--wzl-tb-height': "32px";
559
- readonly '--wzl-control-h-xs': "22px";
560
- readonly '--wzl-control-h-sm': "24px";
561
- readonly '--wzl-control-h': "28px";
562
- readonly '--wzl-icon-button-size': "26px";
566
+ readonly '--wzl-tb-height': "38px";
567
+ readonly '--wzl-control-h-xs': "26px";
568
+ readonly '--wzl-control-h-sm': "28px";
569
+ readonly '--wzl-control-h': "34px";
570
+ readonly '--wzl-icon-button-size': "32px";
563
571
  readonly '--wzl-slider-track-h': "4px";
564
572
  readonly '--wzl-slider-thumb-size': "8px";
565
573
  readonly '--wzl-slider-track-mix': "18%";
@@ -573,7 +581,7 @@ declare const THEMES: {
573
581
  readonly '--wzl-workspace-surface': "#0e0f12";
574
582
  readonly '--wzl-workspace-line': "rgba(230, 231, 233, 0.1)";
575
583
  readonly '--wzl-field-pad-x': "8px";
576
- readonly '--wzl-font-size': "15px";
584
+ readonly '--wzl-font-size': "18px";
577
585
  readonly '--wzl-tracking-none': "0";
578
586
  readonly '--wzl-tracking-wide': "0.06em";
579
587
  readonly '--wzl-tracking-wider': "0.08em";
@@ -591,6 +599,7 @@ declare const THEMES: {
591
599
  readonly '--wzl-ease-in-out-cubic': "cubic-bezier(0.65, 0, 0.35, 1)";
592
600
  readonly '--wzl-ease-out-back': "cubic-bezier(0.34, 1.56, 0.64, 1)";
593
601
  readonly '--wzl-font-ui': "Oswald, 'Helvetica Neue Condensed', 'Arial Narrow', system-ui, sans-serif";
602
+ readonly '--wzl-font-numeric': "'Oswald Tabular', var(--wzl-font-ui)";
594
603
  readonly '--wzl-font-body': "Inter, system-ui, -apple-system, 'Segoe UI', sans-serif";
595
604
  readonly '--wzl-font-weight-normal': "300";
596
605
  readonly '--wzl-font-weight-medium': "350";
@@ -627,12 +636,12 @@ declare const THEMES: {
627
636
  readonly '--wzl-swatch-citron': "#d5d23a";
628
637
  readonly '--wzl-swatch-rose': "#fa4590";
629
638
  readonly '--wzl-swatch-violet': "#955cf9";
630
- readonly '--wzl-font-size-2xs': "7px";
631
- readonly '--wzl-font-size-xs': "8px";
632
- readonly '--wzl-font-size-sm': "9px";
633
- readonly '--wzl-font-size-md': "11px";
634
- readonly '--wzl-font-size-lg': "14px";
635
- readonly '--wzl-font-size-xl': "17px";
639
+ readonly '--wzl-font-size-2xs': "9px";
640
+ readonly '--wzl-font-size-xs': "10px";
641
+ readonly '--wzl-font-size-sm': "11px";
642
+ readonly '--wzl-font-size-md': "13px";
643
+ readonly '--wzl-font-size-lg': "16px";
644
+ readonly '--wzl-font-size-xl': "20px";
636
645
  readonly '--wzl-space-1': "2px";
637
646
  readonly '--wzl-space-2': "4px";
638
647
  readonly '--wzl-space-3': "6px";
@@ -667,7 +676,7 @@ declare const THEMES: {
667
676
  readonly '--wzl-panel-title-font': "Oswald, 'Helvetica Neue Condensed', 'Arial Narrow', system-ui, sans-serif";
668
677
  readonly '--wzl-font-weight-light': "200";
669
678
  readonly '--wzl-panel-title-weight': "200";
670
- readonly '--wzl-panel-title-size': "14px";
679
+ readonly '--wzl-panel-title-size': "16px";
671
680
  readonly '--wzl-panel-title-case': "none";
672
681
  readonly '--wzl-panel-title-tracking': "0.01em";
673
682
  readonly '--wzl-panel-title-color': "#0e0f12";
@@ -698,7 +707,7 @@ declare const THEMES: {
698
707
  readonly '--wzl-stance-important-border-color': "#4338ca";
699
708
  readonly '--wzl-stance-important-title-color': "#4338ca";
700
709
  readonly '--wzl-stance-preview-pad': "0";
701
- readonly '--wzl-stance-preview-title-size': "8px";
710
+ readonly '--wzl-stance-preview-title-size': "10px";
702
711
  readonly '--wzl-stance-preview-title-case': "none";
703
712
  readonly '--wzl-stance-preview-title-inset': "6px 10px 0";
704
713
  readonly '--wzl-warning-base': "#d99a3f";
@@ -721,11 +730,11 @@ declare const THEMES: {
721
730
  readonly '--wzl-border-w': "1px";
722
731
  readonly '--wzl-line-width': "2px";
723
732
  readonly '--wzl-curve-width': "3px";
724
- readonly '--wzl-tb-height': "24px";
725
- readonly '--wzl-control-h-xs': "16px";
726
- readonly '--wzl-control-h-sm': "18px";
727
- readonly '--wzl-control-h': "20px";
728
- readonly '--wzl-icon-button-size': "20px";
733
+ readonly '--wzl-tb-height': "28px";
734
+ readonly '--wzl-control-h-xs': "18px";
735
+ readonly '--wzl-control-h-sm': "20px";
736
+ readonly '--wzl-control-h': "24px";
737
+ readonly '--wzl-icon-button-size': "22px";
729
738
  readonly '--wzl-slider-track-h': "4px";
730
739
  readonly '--wzl-slider-thumb-size': "8px";
731
740
  readonly '--wzl-slider-track-mix': "18%";
@@ -739,7 +748,7 @@ declare const THEMES: {
739
748
  readonly '--wzl-workspace-surface': "#c9cbcf";
740
749
  readonly '--wzl-workspace-line': "rgba(14, 15, 18, 0.1)";
741
750
  readonly '--wzl-field-pad-x': "8px";
742
- readonly '--wzl-font-size': "11px";
751
+ readonly '--wzl-font-size': "13px";
743
752
  readonly '--wzl-tracking-none': "0";
744
753
  readonly '--wzl-tracking-wide': "0.06em";
745
754
  readonly '--wzl-tracking-wider': "0.08em";
@@ -757,6 +766,7 @@ declare const THEMES: {
757
766
  readonly '--wzl-ease-in-out-cubic': "cubic-bezier(0.65, 0, 0.35, 1)";
758
767
  readonly '--wzl-ease-out-back': "cubic-bezier(0.34, 1.56, 0.64, 1)";
759
768
  readonly '--wzl-font-ui': "Oswald, 'Helvetica Neue Condensed', 'Arial Narrow', system-ui, sans-serif";
769
+ readonly '--wzl-font-numeric': "'Oswald Tabular', var(--wzl-font-ui)";
760
770
  readonly '--wzl-font-body': "Inter, system-ui, -apple-system, 'Segoe UI', sans-serif";
761
771
  readonly '--wzl-font-weight-normal': "300";
762
772
  readonly '--wzl-font-weight-medium': "350";
@@ -793,12 +803,12 @@ declare const THEMES: {
793
803
  readonly '--wzl-swatch-citron': "#d5d23a";
794
804
  readonly '--wzl-swatch-rose': "#fa4590";
795
805
  readonly '--wzl-swatch-violet': "#955cf9";
796
- readonly '--wzl-font-size-2xs': "9px";
797
- readonly '--wzl-font-size-xs': "10px";
798
- readonly '--wzl-font-size-sm': "11px";
799
- readonly '--wzl-font-size-md': "13px";
800
- readonly '--wzl-font-size-lg': "16px";
801
- readonly '--wzl-font-size-xl': "20px";
806
+ readonly '--wzl-font-size-2xs': "10px";
807
+ readonly '--wzl-font-size-xs': "12px";
808
+ readonly '--wzl-font-size-sm': "13px";
809
+ readonly '--wzl-font-size-md': "15px";
810
+ readonly '--wzl-font-size-lg': "18px";
811
+ readonly '--wzl-font-size-xl': "23px";
802
812
  readonly '--wzl-space-1': "2px";
803
813
  readonly '--wzl-space-2': "4px";
804
814
  readonly '--wzl-space-3': "6px";
@@ -833,7 +843,7 @@ declare const THEMES: {
833
843
  readonly '--wzl-panel-title-font': "Oswald, 'Helvetica Neue Condensed', 'Arial Narrow', system-ui, sans-serif";
834
844
  readonly '--wzl-font-weight-light': "200";
835
845
  readonly '--wzl-panel-title-weight': "200";
836
- readonly '--wzl-panel-title-size': "16px";
846
+ readonly '--wzl-panel-title-size': "18px";
837
847
  readonly '--wzl-panel-title-case': "none";
838
848
  readonly '--wzl-panel-title-tracking': "0.01em";
839
849
  readonly '--wzl-panel-title-color': "#0e0f12";
@@ -864,7 +874,7 @@ declare const THEMES: {
864
874
  readonly '--wzl-stance-important-border-color': "#4338ca";
865
875
  readonly '--wzl-stance-important-title-color': "#4338ca";
866
876
  readonly '--wzl-stance-preview-pad': "0";
867
- readonly '--wzl-stance-preview-title-size': "10px";
877
+ readonly '--wzl-stance-preview-title-size': "12px";
868
878
  readonly '--wzl-stance-preview-title-case': "none";
869
879
  readonly '--wzl-stance-preview-title-inset': "6px 10px 0";
870
880
  readonly '--wzl-warning-base': "#d99a3f";
@@ -887,11 +897,11 @@ declare const THEMES: {
887
897
  readonly '--wzl-border-w': "1px";
888
898
  readonly '--wzl-line-width': "2px";
889
899
  readonly '--wzl-curve-width': "3px";
890
- readonly '--wzl-tb-height': "28px";
891
- readonly '--wzl-control-h-xs': "18px";
892
- readonly '--wzl-control-h-sm': "20px";
893
- readonly '--wzl-control-h': "24px";
894
- readonly '--wzl-icon-button-size': "22px";
900
+ readonly '--wzl-tb-height': "32px";
901
+ readonly '--wzl-control-h-xs': "22px";
902
+ readonly '--wzl-control-h-sm': "24px";
903
+ readonly '--wzl-control-h': "28px";
904
+ readonly '--wzl-icon-button-size': "26px";
895
905
  readonly '--wzl-slider-track-h': "4px";
896
906
  readonly '--wzl-slider-thumb-size': "8px";
897
907
  readonly '--wzl-slider-track-mix': "18%";
@@ -905,7 +915,7 @@ declare const THEMES: {
905
915
  readonly '--wzl-workspace-surface': "#c9cbcf";
906
916
  readonly '--wzl-workspace-line': "rgba(14, 15, 18, 0.1)";
907
917
  readonly '--wzl-field-pad-x': "8px";
908
- readonly '--wzl-font-size': "13px";
918
+ readonly '--wzl-font-size': "15px";
909
919
  readonly '--wzl-tracking-none': "0";
910
920
  readonly '--wzl-tracking-wide': "0.06em";
911
921
  readonly '--wzl-tracking-wider': "0.08em";
@@ -923,6 +933,7 @@ declare const THEMES: {
923
933
  readonly '--wzl-ease-in-out-cubic': "cubic-bezier(0.65, 0, 0.35, 1)";
924
934
  readonly '--wzl-ease-out-back': "cubic-bezier(0.34, 1.56, 0.64, 1)";
925
935
  readonly '--wzl-font-ui': "Oswald, 'Helvetica Neue Condensed', 'Arial Narrow', system-ui, sans-serif";
936
+ readonly '--wzl-font-numeric': "'Oswald Tabular', var(--wzl-font-ui)";
926
937
  readonly '--wzl-font-body': "Inter, system-ui, -apple-system, 'Segoe UI', sans-serif";
927
938
  readonly '--wzl-font-weight-normal': "300";
928
939
  readonly '--wzl-font-weight-medium': "350";
@@ -959,12 +970,12 @@ declare const THEMES: {
959
970
  readonly '--wzl-swatch-citron': "#d5d23a";
960
971
  readonly '--wzl-swatch-rose': "#fa4590";
961
972
  readonly '--wzl-swatch-violet': "#955cf9";
962
- readonly '--wzl-font-size-2xs': "10px";
963
- readonly '--wzl-font-size-xs': "12px";
964
- readonly '--wzl-font-size-sm': "13px";
965
- readonly '--wzl-font-size-md': "15px";
966
- readonly '--wzl-font-size-lg': "18px";
967
- readonly '--wzl-font-size-xl': "23px";
973
+ readonly '--wzl-font-size-2xs': "12px";
974
+ readonly '--wzl-font-size-xs': "14px";
975
+ readonly '--wzl-font-size-sm': "15px";
976
+ readonly '--wzl-font-size-md': "18px";
977
+ readonly '--wzl-font-size-lg': "22px";
978
+ readonly '--wzl-font-size-xl': "28px";
968
979
  readonly '--wzl-space-1': "2px";
969
980
  readonly '--wzl-space-2': "4px";
970
981
  readonly '--wzl-space-3': "6px";
@@ -999,7 +1010,7 @@ declare const THEMES: {
999
1010
  readonly '--wzl-panel-title-font': "Oswald, 'Helvetica Neue Condensed', 'Arial Narrow', system-ui, sans-serif";
1000
1011
  readonly '--wzl-font-weight-light': "200";
1001
1012
  readonly '--wzl-panel-title-weight': "200";
1002
- readonly '--wzl-panel-title-size': "18px";
1013
+ readonly '--wzl-panel-title-size': "22px";
1003
1014
  readonly '--wzl-panel-title-case': "none";
1004
1015
  readonly '--wzl-panel-title-tracking': "0.01em";
1005
1016
  readonly '--wzl-panel-title-color': "#0e0f12";
@@ -1030,7 +1041,7 @@ declare const THEMES: {
1030
1041
  readonly '--wzl-stance-important-border-color': "#4338ca";
1031
1042
  readonly '--wzl-stance-important-title-color': "#4338ca";
1032
1043
  readonly '--wzl-stance-preview-pad': "0";
1033
- readonly '--wzl-stance-preview-title-size': "12px";
1044
+ readonly '--wzl-stance-preview-title-size': "14px";
1034
1045
  readonly '--wzl-stance-preview-title-case': "none";
1035
1046
  readonly '--wzl-stance-preview-title-inset': "6px 10px 0";
1036
1047
  readonly '--wzl-warning-base': "#d99a3f";
@@ -1053,11 +1064,11 @@ declare const THEMES: {
1053
1064
  readonly '--wzl-border-w': "1px";
1054
1065
  readonly '--wzl-line-width': "2px";
1055
1066
  readonly '--wzl-curve-width': "3px";
1056
- readonly '--wzl-tb-height': "32px";
1057
- readonly '--wzl-control-h-xs': "22px";
1058
- readonly '--wzl-control-h-sm': "24px";
1059
- readonly '--wzl-control-h': "28px";
1060
- readonly '--wzl-icon-button-size': "26px";
1067
+ readonly '--wzl-tb-height': "38px";
1068
+ readonly '--wzl-control-h-xs': "26px";
1069
+ readonly '--wzl-control-h-sm': "28px";
1070
+ readonly '--wzl-control-h': "34px";
1071
+ readonly '--wzl-icon-button-size': "32px";
1061
1072
  readonly '--wzl-slider-track-h': "4px";
1062
1073
  readonly '--wzl-slider-thumb-size': "8px";
1063
1074
  readonly '--wzl-slider-track-mix': "18%";
@@ -1071,7 +1082,7 @@ declare const THEMES: {
1071
1082
  readonly '--wzl-workspace-surface': "#c9cbcf";
1072
1083
  readonly '--wzl-workspace-line': "rgba(14, 15, 18, 0.1)";
1073
1084
  readonly '--wzl-field-pad-x': "8px";
1074
- readonly '--wzl-font-size': "15px";
1085
+ readonly '--wzl-font-size': "18px";
1075
1086
  readonly '--wzl-tracking-none': "0";
1076
1087
  readonly '--wzl-tracking-wide': "0.06em";
1077
1088
  readonly '--wzl-tracking-wider': "0.08em";
@@ -1089,6 +1100,7 @@ declare const THEMES: {
1089
1100
  readonly '--wzl-ease-in-out-cubic': "cubic-bezier(0.65, 0, 0.35, 1)";
1090
1101
  readonly '--wzl-ease-out-back': "cubic-bezier(0.34, 1.56, 0.64, 1)";
1091
1102
  readonly '--wzl-font-ui': "Oswald, 'Helvetica Neue Condensed', 'Arial Narrow', system-ui, sans-serif";
1103
+ readonly '--wzl-font-numeric': "'Oswald Tabular', var(--wzl-font-ui)";
1092
1104
  readonly '--wzl-font-body': "Inter, system-ui, -apple-system, 'Segoe UI', sans-serif";
1093
1105
  readonly '--wzl-font-weight-normal': "300";
1094
1106
  readonly '--wzl-font-weight-medium': "350";
@@ -1190,14 +1202,17 @@ declare function colorCount(list: ColorList, ctx?: ColorContext): number | undef
1190
1202
 
1191
1203
  /** A number, or `{seeds.name}`. */
1192
1204
  type NumberParam = Varying<number | string>;
1205
+ /** A pin with its metadata. `type` defaults to that of the token it replaces. */
1193
1206
  interface PinObject {
1194
1207
  readonly value: TokenValue;
1195
1208
  readonly type?: string;
1196
1209
  readonly description?: string;
1210
+ /** Render the referenced color at this alpha, 0–1. */
1197
1211
  readonly alpha?: number;
1198
1212
  }
1199
1213
  /** A bare value or `{ value, type?, description?, alpha? }`. The value may be a `{token}` reference. */
1200
1214
  type PinValue = TokenValue | PinObject;
1215
+ /** A ramp that walks lightness between two ends at one hue, or between anchor colors. */
1201
1216
  interface LightnessRampDef {
1202
1217
  readonly kind: 'lightness';
1203
1218
  readonly steps: Varying<readonly string[]>;
@@ -1220,6 +1235,7 @@ interface LightnessRampDef {
1220
1235
  readonly description?: string;
1221
1236
  readonly describe?: Readonly<Record<string, string>>;
1222
1237
  }
1238
+ /** A ramp of distinct hues from the palette generator, one per step. */
1223
1239
  interface CategoricalRampDef {
1224
1240
  readonly kind: 'categorical';
1225
1241
  readonly steps: Varying<readonly string[]>;
@@ -1234,7 +1250,12 @@ interface CategoricalRampDef {
1234
1250
  readonly description?: string;
1235
1251
  readonly describe?: Readonly<Record<string, string>>;
1236
1252
  }
1253
+ /** A named color ramp: each step becomes a token `<ramp>-<step>`. */
1237
1254
  type RampDef = LightnessRampDef | CategoricalRampDef;
1255
+ /**
1256
+ * A named dimension scale in whole px: each step becomes a token `<scale>-<step>`. Give exactly one of `step`,
1257
+ * `ratio` or `factors`.
1258
+ */
1238
1259
  interface ScaleDef {
1239
1260
  readonly steps: Varying<readonly string[]>;
1240
1261
  readonly base: NumberParam;
@@ -1256,15 +1277,24 @@ interface SemanticCommon {
1256
1277
  readonly against: readonly string[];
1257
1278
  };
1258
1279
  }
1280
+ /** A named step of a ramp. */
1259
1281
  type StepRule = SemanticCommon & {
1260
1282
  readonly ramp: string;
1261
1283
  readonly step: Varying<string>;
1262
1284
  };
1285
+ /**
1286
+ * `offset` steps from wherever `from` lands on its ramp. `away` moves toward the ramp's farther end; `lighter` and
1287
+ * `darker` read which end is which from the ramp's colors.
1288
+ */
1263
1289
  type OffsetRule = SemanticCommon & {
1264
1290
  readonly from: string;
1265
1291
  readonly offset: number;
1266
1292
  readonly dir: 'lighter' | 'darker' | 'away';
1267
1293
  };
1294
+ /**
1295
+ * The step of `ramp` nearest the surfaces that clears WCAG `contrast.min` against every token in `against`. When no
1296
+ * step does, the best one is used and a `contrast-unmet` issue reported.
1297
+ */
1268
1298
  type ContrastRule = SemanticCommon & {
1269
1299
  readonly ramp: string;
1270
1300
  readonly contrast: {
@@ -1272,14 +1302,22 @@ type ContrastRule = SemanticCommon & {
1272
1302
  readonly against: readonly string[];
1273
1303
  };
1274
1304
  };
1305
+ /** An alias of another token, optionally at an alpha. */
1275
1306
  type RefRule = SemanticCommon & {
1276
1307
  readonly ref: string;
1277
1308
  readonly alpha?: number;
1278
1309
  };
1310
+ /** A fixed value. */
1279
1311
  type LiteralRule = SemanticCommon & {
1280
1312
  readonly value: TokenValue;
1281
1313
  };
1314
+ /** How a semantic token derives its value. */
1282
1315
  type SemanticRule = StepRule | OffsetRule | ContrastRule | RefRule | LiteralRule;
1316
+ /**
1317
+ * A layered theme as authored. Seeds feed the layers after them; ramps, scales, semantics and components each
1318
+ * produce their own tokens, and naming one token twice among them is an issue. A pin replaces the token of its name,
1319
+ * or adds one.
1320
+ */
1283
1321
  interface ThemeDefinition {
1284
1322
  readonly name: string;
1285
1323
  /** Another definition's name. Absent or null: extends nothing. */