@weasel-js/theme 1.5.2 → 1.6.0

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.
@@ -1,8 +1,261 @@
1
- import { B as BakedTheme, b as AxisDefs, f as ThemeDefinition, T as Theme, S as Selection } from './theme-DAZcQi_L.js';
1
+ /** One value of an axis. `scheme` becomes `color-scheme` in that value's CSS blocks. */
2
+ interface AxisValue {
3
+ readonly scheme?: 'dark' | 'light';
4
+ }
5
+ interface AxisDef {
6
+ readonly default: string;
7
+ readonly values: Readonly<Record<string, AxisValue>>;
8
+ }
9
+ /** Key order is declaration order, which selectors and selection keys follow. */
10
+ type AxisDefs = Readonly<Record<string, AxisDef>>;
11
+ /** A partial choice of axis values, e.g. `{ mode: 'light' }`. */
12
+ type Selection = Readonly<Record<string, string>>;
13
+ /** `{ by: 'mode', dark: …, light: … }`: a value that differs per axis value. */
14
+ interface ByAxis<T> {
15
+ readonly by: string;
16
+ readonly [axisValue: string]: Varying<T> | string;
17
+ }
18
+ type Varying<T> = T | ByAxis<T>;
19
+ declare function isByAxis(v: unknown): v is ByAxis<unknown>;
20
+ /** Every axis given a known value; anything missing or unknown takes its default. */
21
+ declare function fullSelection(axes: AxisDefs, selection?: Selection): Selection;
22
+ declare function enumerateSelections(axes: AxisDefs): Selection[];
23
+ /** `mode=dark,density=compact`, axes in declaration order. */
24
+ declare function selectionKey(axes: AxisDefs, selection: Selection): string;
25
+
26
+ type TokenValue = string | number | readonly (string | number)[];
27
+ /**
28
+ * A single design token as authored, before aliases are resolved: a DTCG-shaped
29
+ * `{ type, value }` pair where `value` may still be a `{ref}` to another token.
30
+ */
31
+ interface RawToken {
32
+ readonly type: string;
33
+ readonly value: TokenValue;
34
+ /** Render the referenced color at this alpha, 0–1. */
35
+ readonly alpha?: number | undefined;
36
+ readonly description?: string | undefined;
37
+ }
38
+ /** A token graph flattened to one level, keyed by token name (no `--wzl-`
39
+ * prefix). Still unresolved — see `ResolvedTokenMap` for the output side. */
40
+ type FlatTokens = Record<string, RawToken>;
41
+
42
+ /**
43
+ * A theme ready to resolve: its axes and its tokens, each plain or varying by
44
+ * axis, references intact. A `by` that leaves a value out contributes nothing
45
+ * for that selection, so the theme it extends supplies it.
46
+ */
47
+ interface Theme {
48
+ readonly name: string;
49
+ readonly extends: Theme | null;
50
+ readonly axes: AxisDefs;
51
+ readonly tokens: Readonly<Record<string, Varying<RawToken>>>;
52
+ /** Ramp name → step names in order, for the ramps this theme declares itself. */
53
+ readonly ramps?: Readonly<Record<string, readonly string[]>>;
54
+ /** The colors a `tone` index picks from. Absent: the nearest theme it extends that has one. */
55
+ readonly tones?: SerializableColorList;
56
+ }
57
+ /** What `defineTheme` accepts: a definition whose `extends` is a `Theme`, holding pins and components only. */
58
+ type ThemeInput = Omit<ThemeDefinition, 'extends'> & {
59
+ readonly extends?: Theme | null;
60
+ };
61
+ /** The built-in theme, from the baked output of themes/weasel.json. */
62
+ declare const weaselTheme: Theme;
63
+ /**
64
+ * Build a theme from pins. Unless `extends` says otherwise the result layers
65
+ * onto `weaselTheme`, so a theme only names what it changes. A definition with
66
+ * seeds, ramps, scales or semantics needs deriving first.
67
+ */
68
+ declare function defineTheme(input: ThemeInput): Theme;
69
+
70
+ /** The output of `resolveTheme`: every token of a theme, for one selection, keyed
71
+ * by CSS custom-property name and flattened to a final CSS value. */
72
+ type ResolvedTheme = Readonly<Record<TokenName, string>>;
73
+ /** Every axis the chain declares. An axis declared more than once keeps every value; a descendant's value entries and default win. */
74
+ declare function themeAxes(theme: Theme): AxisDefs;
75
+ /**
76
+ * Merge the extends chain at a selection, resolve every alias, and key the
77
+ * result by CSS custom-property name. A missing or unknown axis value takes the
78
+ * axis default.
79
+ *
80
+ * Pure — no DOM. An unresolvable reference throws rather than falling back.
81
+ */
82
+ declare function resolveTheme(theme: Theme, selection?: Selection): ResolvedTheme;
83
+
84
+ /** The categorical generator the swatch ramp uses, asked for `count` colors. */
85
+ interface GeneratedColors {
86
+ readonly generate: {
87
+ readonly count: number;
88
+ readonly gates?: CategoricalRampDef['gates'];
89
+ };
90
+ }
91
+ /** A ramp of the active theme, by name — `{ ramp: 'swatch' }` walks its steps in order. */
92
+ interface RampColors {
93
+ readonly ramp: string;
94
+ }
95
+ /** The forms a theme definition can hold: everything but a function. */
96
+ type SerializableColorList = readonly string[] | GeneratedColors | RampColors;
97
+ /**
98
+ * Several colors, read by index with `colorAt`, wrapping. Literals; the swatch
99
+ * ramp's generator; a ramp of the active theme, which follows the mode; or a
100
+ * function of the index.
101
+ */
102
+ type ColorList = SerializableColorList | ((i: number) => string);
103
+ /** What a `ColorList` resolves against. `useTheme()`'s value is one. */
104
+ interface ColorContext {
105
+ readonly theme: Theme;
106
+ readonly resolved: ResolvedTheme;
107
+ }
108
+ /** A ramp's step names, from the nearest theme in the chain that declares it. */
109
+ declare function rampSteps(theme: Theme, ramp: string): readonly string[];
110
+ /** The tone list a theme declares, from the nearest theme in its chain that has one. */
111
+ declare function themeTones(theme: Theme): ColorList;
112
+ /** The `i`th color of `list`, wrapping. A ramp list reads the resolved theme, so the answer follows its mode. */
113
+ declare function colorAt(list: ColorList, i: number, ctx?: ColorContext): string;
114
+ /**
115
+ * As `colorAt`, but a ramp list answers with its custom property —
116
+ * `var(--wzl-swatch-sky)` — so a color written into CSS follows a mode change
117
+ * without re-rendering, provider or not.
118
+ */
119
+ declare function colorCssAt(list: ColorList, i: number, ctx?: ColorContext): string;
120
+ /** How many distinct colors `list` holds before it wraps; `undefined` for a function, which never does. */
121
+ declare function colorCount(list: ColorList, ctx?: ColorContext): number | undefined;
122
+
123
+ /** A number, or `{seeds.name}`. */
124
+ type NumberParam = Varying<number | string>;
125
+ interface PinObject {
126
+ readonly value: TokenValue;
127
+ readonly type?: string;
128
+ readonly description?: string;
129
+ readonly alpha?: number;
130
+ }
131
+ /** A bare value or `{ value, type?, description?, alpha? }`. The value may be a `{token}` reference. */
132
+ type PinValue = TokenValue | PinObject;
133
+ interface LightnessRampDef {
134
+ readonly kind: 'lightness';
135
+ readonly steps: Varying<readonly string[]>;
136
+ /** First and last step's OKLCH lightness. */
137
+ readonly lightness: Varying<readonly [NumberParam, NumberParam]>;
138
+ /** 0 walks evenly; 1 follows a smoothstep S. */
139
+ readonly curve?: NumberParam;
140
+ /** Degrees. Ignored when an anchor is given. */
141
+ readonly hue?: NumberParam;
142
+ readonly chroma?: Varying<{
143
+ readonly peak: NumberParam;
144
+ readonly lightBias?: NumberParam;
145
+ readonly darkBias?: NumberParam;
146
+ }>;
147
+ /**
148
+ * Step name → exact hex (or `{seeds.name}`). An anchor's hue and chroma replace `hue` and `chroma.peak`; with several,
149
+ * both blend by step between consecutive anchors, and steps outside them take the nearest anchor's.
150
+ */
151
+ readonly anchor?: Varying<Readonly<Record<string, Varying<string>>>>;
152
+ readonly description?: string;
153
+ readonly describe?: Readonly<Record<string, string>>;
154
+ }
155
+ interface CategoricalRampDef {
156
+ readonly kind: 'categorical';
157
+ readonly steps: Varying<readonly string[]>;
158
+ /** Any of the palette generator's `Constraints` except `count` and `anchors`. */
159
+ readonly gates?: Varying<Readonly<Record<string, Varying<number | string>>>>;
160
+ readonly anchors?: readonly {
161
+ readonly name: string;
162
+ readonly hue: number;
163
+ readonly lightness: number;
164
+ readonly chroma?: number;
165
+ }[];
166
+ readonly description?: string;
167
+ readonly describe?: Readonly<Record<string, string>>;
168
+ }
169
+ type RampDef = LightnessRampDef | CategoricalRampDef;
170
+ interface ScaleDef {
171
+ readonly steps: Varying<readonly string[]>;
172
+ readonly base: NumberParam;
173
+ /** Linear: `base + step × i`. */
174
+ readonly step?: NumberParam;
175
+ /** Geometric: `base × ratio^i`. */
176
+ readonly ratio?: NumberParam;
177
+ /** Explicit: `base × factors[i]`, one per step. For a ramp no single rule fits. */
178
+ readonly factors?: Varying<readonly NumberParam[]>;
179
+ readonly description?: string;
180
+ readonly describe?: Readonly<Record<string, string>>;
181
+ }
182
+ interface SemanticCommon {
183
+ readonly type?: string;
184
+ readonly description?: string;
185
+ /** Audited, never applied. */
186
+ readonly check?: {
187
+ readonly contrast: number;
188
+ readonly against: readonly string[];
189
+ };
190
+ }
191
+ type StepRule = SemanticCommon & {
192
+ readonly ramp: string;
193
+ readonly step: Varying<string>;
194
+ };
195
+ type OffsetRule = SemanticCommon & {
196
+ readonly from: string;
197
+ readonly offset: number;
198
+ readonly dir: 'lighter' | 'darker' | 'away';
199
+ };
200
+ type ContrastRule = SemanticCommon & {
201
+ readonly ramp: string;
202
+ readonly contrast: {
203
+ readonly min: number;
204
+ readonly against: readonly string[];
205
+ };
206
+ };
207
+ type RefRule = SemanticCommon & {
208
+ readonly ref: string;
209
+ readonly alpha?: number;
210
+ };
211
+ type LiteralRule = SemanticCommon & {
212
+ readonly value: TokenValue;
213
+ };
214
+ type SemanticRule = StepRule | OffsetRule | ContrastRule | RefRule | LiteralRule;
215
+ interface ThemeDefinition {
216
+ readonly name: string;
217
+ /** Another definition's name. Absent or null: extends nothing. */
218
+ readonly extends?: string | null;
219
+ readonly description?: string;
220
+ readonly axes?: AxisDefs;
221
+ readonly seeds?: Readonly<Record<string, Varying<number | string>>>;
222
+ readonly ramps?: Readonly<Record<string, RampDef>>;
223
+ readonly scales?: Readonly<Record<string, ScaleDef>>;
224
+ readonly semantics?: Readonly<Record<string, Varying<SemanticRule>>>;
225
+ readonly components?: Readonly<Record<string, Varying<PinValue>>>;
226
+ readonly pins?: Readonly<Record<string, Varying<PinValue>>>;
227
+ /** The colors a `tone` index picks from. Absent: the nearest theme it extends that has one, else the swatch ramp. */
228
+ readonly tones?: SerializableColorList;
229
+ }
230
+
231
+ type Lookup = (name: string) => ThemeDefinition | undefined;
232
+ /** The definition with its whole `extends` chain folded in, child entries winning. */
233
+ declare function mergeChain(def: ThemeDefinition, lookup?: Lookup, seen?: ReadonlySet<string>): ThemeDefinition;
234
+
235
+ /**
236
+ * A definition with every rule run: plain or `by`-varying tokens, references intact.
237
+ * A branch `derive` could not produce is left out, so at runtime it falls through to the parent; definitions with
238
+ * issues still bake, because the editor bakes mid-edit and the build refuses them before baking. Cycles and dangling
239
+ * references still throw, as they do in `derive`.
240
+ */
241
+ interface BakedTheme {
242
+ readonly name: string;
243
+ readonly extends: string | null;
244
+ readonly axes: AxisDefs;
245
+ /** In layer order, then definition order. */
246
+ readonly tokens: Readonly<Record<string, Varying<RawToken>>>;
247
+ /** Each ramp this definition declares → its step names in order, which the tokens alone do not keep. */
248
+ readonly ramps?: Readonly<Record<string, readonly string[]>>;
249
+ readonly tones?: SerializableColorList;
250
+ }
251
+ /** Derive `definition` at every selection and fold the results into one record of tokens with no rules left. */
252
+ declare function bake(definition: ThemeDefinition, lookup?: Lookup): BakedTheme;
253
+ /** `definition` and every theme it extends, baked, root first. */
254
+ declare function bakeChain(definition: ThemeDefinition, lookup?: Lookup): BakedTheme[];
2
255
 
3
256
  /** Every design token the built-in themes declare, spelled as the CSS
4
257
  * custom property it becomes. */
5
- 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-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-radius-lg' | '--wzl-radius-md' | '--wzl-radius-pill' | '--wzl-radius-sm' | '--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-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-z-modal' | '--wzl-z-overlay' | '--wzl-z-toolbar';
258
+ 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';
6
259
  /** A built-in theme with its aliases already collapsed: every selection
7
260
  * (keyed `mode=dark`, axes in declaration order) maps every token name to
8
261
  * a final CSS value. */
@@ -52,6 +305,9 @@ declare const THEMES: {
52
305
  readonly '--wzl-accent-soft': "#1d1454";
53
306
  readonly '--wzl-accent-base': "#2e1f7a";
54
307
  readonly '--wzl-accent-strong': "#5841b8";
308
+ readonly '--wzl-secondary-soft': "#704e09";
309
+ readonly '--wzl-secondary-base': "#dc9d15";
310
+ readonly '--wzl-secondary-strong': "#f1cb8d";
55
311
  readonly '--wzl-swatch-fuchsia': "#f641f7";
56
312
  readonly '--wzl-swatch-green': "#48e628";
57
313
  readonly '--wzl-swatch-sky': "#36bff2";
@@ -85,19 +341,65 @@ declare const THEMES: {
85
341
  readonly '--wzl-border': "#25272c";
86
342
  readonly '--wzl-border-strong': "#6f737b";
87
343
  readonly '--wzl-accent-fg': "#5841b8";
344
+ readonly '--wzl-secondary-fg': "#dc9d15";
88
345
  readonly '--wzl-fg-inverse': "#0e0f12";
89
346
  readonly '--wzl-shadow': "rgba(0, 0, 0, 0.6)";
347
+ readonly '--wzl-panel-surface': "#25272c";
348
+ readonly '--wzl-panel-border-color': "#25272c";
349
+ readonly '--wzl-panel-border-style': "solid";
350
+ readonly '--wzl-panel-border-width': "1px";
351
+ readonly '--wzl-radius-lg': "14px";
352
+ readonly '--wzl-panel-radius': "14px";
353
+ readonly '--wzl-panel-pad': "14px 16px";
354
+ readonly '--wzl-glass-blur': "3px";
355
+ readonly '--wzl-panel-blur': "3px";
356
+ readonly '--wzl-panel-tone-mix': "14%";
357
+ readonly '--wzl-font-display': "Oswald, 'Helvetica Neue Condensed', 'Arial Narrow', system-ui, sans-serif";
358
+ readonly '--wzl-panel-title-font': "Oswald, 'Helvetica Neue Condensed', 'Arial Narrow', system-ui, sans-serif";
359
+ readonly '--wzl-font-weight-light': "200";
360
+ readonly '--wzl-panel-title-weight': "200";
361
+ readonly '--wzl-panel-title-size': "14px";
362
+ readonly '--wzl-panel-title-case': "none";
363
+ readonly '--wzl-panel-title-tracking': "0.01em";
364
+ readonly '--wzl-panel-title-color': "#e6e7e9";
365
+ readonly '--wzl-panel-title-inset': "0";
366
+ readonly '--wzl-stance-scope-border-width': "0";
367
+ readonly '--wzl-stance-scope-radius': "8px";
368
+ readonly '--wzl-stance-scope-tone-mix': "22%";
369
+ readonly '--wzl-stance-scope-nested-radius': "6px";
370
+ readonly '--wzl-stance-scope-nested-surface': "#181a1e";
371
+ readonly '--wzl-stance-aside-surface': "transparent";
372
+ readonly '--wzl-line-subtle': "rgba(230, 231, 233, 0.1)";
373
+ readonly '--wzl-stance-aside-border-color': "rgba(230, 231, 233, 0.1)";
374
+ readonly '--wzl-stance-aside-blur': "0px";
375
+ readonly '--wzl-stance-aside-title-color': "#6f737b";
376
+ readonly '--wzl-stance-advanced-title-color': "#6f737b";
377
+ readonly '--wzl-stance-debug-border-style': "dashed";
378
+ readonly '--wzl-font-mono': "ui-monospace, SFMono-Regular, Menlo, Consolas, monospace";
379
+ readonly '--wzl-stance-debug-title-font': "ui-monospace, SFMono-Regular, Menlo, Consolas, monospace";
380
+ readonly '--wzl-stance-debug-title-case': "none";
90
381
  readonly '--wzl-danger-base': "#d94a3f";
382
+ readonly '--wzl-danger': "#d94a3f";
383
+ readonly '--wzl-stance-danger-tone': "#d94a3f";
384
+ readonly '--wzl-stance-danger-border-color': "#d94a3f";
385
+ readonly '--wzl-stance-danger-title-color': "#d94a3f";
386
+ readonly '--wzl-accent': "#2e1f7a";
387
+ readonly '--wzl-stance-notice-tone': "#2e1f7a";
388
+ readonly '--wzl-stance-notice-tone-mix': "8%";
389
+ readonly '--wzl-stance-important-border-color': "#5841b8";
390
+ readonly '--wzl-stance-important-title-color': "#5841b8";
391
+ readonly '--wzl-stance-preview-pad': "0";
392
+ readonly '--wzl-stance-preview-title-size': "8px";
393
+ readonly '--wzl-stance-preview-title-case': "none";
394
+ readonly '--wzl-stance-preview-title-inset': "6px 10px 0";
91
395
  readonly '--wzl-warning-base': "#d99a3f";
92
396
  readonly '--wzl-success-base': "#2ec27e";
93
397
  readonly '--wzl-fg-on-accent': "#f5f5f6";
94
- readonly '--wzl-line-subtle': "rgba(230, 231, 233, 0.1)";
95
398
  readonly '--wzl-line': "rgba(230, 231, 233, 0.2)";
96
399
  readonly '--wzl-line-strong': "rgba(230, 231, 233, 0.4)";
97
400
  readonly '--wzl-curve-color': "#5841b8";
98
- readonly '--wzl-accent': "#2e1f7a";
99
401
  readonly '--wzl-accent-hover': "#5841b8";
100
- readonly '--wzl-danger': "#d94a3f";
402
+ readonly '--wzl-secondary': "#dc9d15";
101
403
  readonly '--wzl-warning': "#d99a3f";
102
404
  readonly '--wzl-success': "#2ec27e";
103
405
  readonly '--wzl-focus-ring': "#5841b8";
@@ -106,7 +408,6 @@ declare const THEMES: {
106
408
  readonly '--wzl-surface-pressed': "rgba(230, 231, 233, 0.18)";
107
409
  readonly '--wzl-radius-sm': "3px";
108
410
  readonly '--wzl-radius-md': "5px";
109
- readonly '--wzl-radius-lg': "14px";
110
411
  readonly '--wzl-radius-pill': "999px";
111
412
  readonly '--wzl-border-w': "1px";
112
413
  readonly '--wzl-line-width': "2px";
@@ -123,8 +424,12 @@ declare const THEMES: {
123
424
  readonly '--wzl-handle-size': "9px";
124
425
  readonly '--wzl-handle-size-sm': "7px";
125
426
  readonly '--wzl-handle-size-lg': "10px";
427
+ readonly '--wzl-checker-a': "#25272c";
428
+ readonly '--wzl-checker-b': "#181a1e";
429
+ readonly '--wzl-checker-size': "8px";
430
+ readonly '--wzl-workspace-surface': "#0e0f12";
431
+ readonly '--wzl-workspace-line': "rgba(230, 231, 233, 0.1)";
126
432
  readonly '--wzl-field-pad-x': "8px";
127
- readonly '--wzl-glass-blur': "3px";
128
433
  readonly '--wzl-font-size': "11px";
129
434
  readonly '--wzl-tracking-none': "0";
130
435
  readonly '--wzl-tracking-wide': "0.06em";
@@ -143,10 +448,7 @@ declare const THEMES: {
143
448
  readonly '--wzl-ease-in-out-cubic': "cubic-bezier(0.65, 0, 0.35, 1)";
144
449
  readonly '--wzl-ease-out-back': "cubic-bezier(0.34, 1.56, 0.64, 1)";
145
450
  readonly '--wzl-font-ui': "Oswald, 'Helvetica Neue Condensed', 'Arial Narrow', system-ui, sans-serif";
146
- readonly '--wzl-font-display': "Oswald, 'Helvetica Neue Condensed', 'Arial Narrow', system-ui, sans-serif";
147
451
  readonly '--wzl-font-body': "Inter, system-ui, -apple-system, 'Segoe UI', sans-serif";
148
- readonly '--wzl-font-mono': "ui-monospace, SFMono-Regular, Menlo, Consolas, monospace";
149
- readonly '--wzl-font-weight-light': "200";
150
452
  readonly '--wzl-font-weight-normal': "300";
151
453
  readonly '--wzl-font-weight-medium': "350";
152
454
  readonly '--wzl-font-weight-bold': "400";
@@ -169,6 +471,9 @@ declare const THEMES: {
169
471
  readonly '--wzl-accent-soft': "#1d1454";
170
472
  readonly '--wzl-accent-base': "#2e1f7a";
171
473
  readonly '--wzl-accent-strong': "#5841b8";
474
+ readonly '--wzl-secondary-soft': "#704e09";
475
+ readonly '--wzl-secondary-base': "#dc9d15";
476
+ readonly '--wzl-secondary-strong': "#f1cb8d";
172
477
  readonly '--wzl-swatch-fuchsia': "#f641f7";
173
478
  readonly '--wzl-swatch-green': "#48e628";
174
479
  readonly '--wzl-swatch-sky': "#36bff2";
@@ -202,19 +507,65 @@ declare const THEMES: {
202
507
  readonly '--wzl-border': "#25272c";
203
508
  readonly '--wzl-border-strong': "#6f737b";
204
509
  readonly '--wzl-accent-fg': "#5841b8";
510
+ readonly '--wzl-secondary-fg': "#dc9d15";
205
511
  readonly '--wzl-fg-inverse': "#0e0f12";
206
512
  readonly '--wzl-shadow': "rgba(0, 0, 0, 0.6)";
513
+ readonly '--wzl-panel-surface': "#25272c";
514
+ readonly '--wzl-panel-border-color': "#25272c";
515
+ readonly '--wzl-panel-border-style': "solid";
516
+ readonly '--wzl-panel-border-width': "1px";
517
+ readonly '--wzl-radius-lg': "14px";
518
+ readonly '--wzl-panel-radius': "14px";
519
+ readonly '--wzl-panel-pad': "14px 16px";
520
+ readonly '--wzl-glass-blur': "3px";
521
+ readonly '--wzl-panel-blur': "3px";
522
+ readonly '--wzl-panel-tone-mix': "14%";
523
+ readonly '--wzl-font-display': "Oswald, 'Helvetica Neue Condensed', 'Arial Narrow', system-ui, sans-serif";
524
+ readonly '--wzl-panel-title-font': "Oswald, 'Helvetica Neue Condensed', 'Arial Narrow', system-ui, sans-serif";
525
+ readonly '--wzl-font-weight-light': "200";
526
+ readonly '--wzl-panel-title-weight': "200";
527
+ readonly '--wzl-panel-title-size': "16px";
528
+ readonly '--wzl-panel-title-case': "none";
529
+ readonly '--wzl-panel-title-tracking': "0.01em";
530
+ readonly '--wzl-panel-title-color': "#e6e7e9";
531
+ readonly '--wzl-panel-title-inset': "0";
532
+ readonly '--wzl-stance-scope-border-width': "0";
533
+ readonly '--wzl-stance-scope-radius': "8px";
534
+ readonly '--wzl-stance-scope-tone-mix': "22%";
535
+ readonly '--wzl-stance-scope-nested-radius': "6px";
536
+ readonly '--wzl-stance-scope-nested-surface': "#181a1e";
537
+ readonly '--wzl-stance-aside-surface': "transparent";
538
+ readonly '--wzl-line-subtle': "rgba(230, 231, 233, 0.1)";
539
+ readonly '--wzl-stance-aside-border-color': "rgba(230, 231, 233, 0.1)";
540
+ readonly '--wzl-stance-aside-blur': "0px";
541
+ readonly '--wzl-stance-aside-title-color': "#6f737b";
542
+ readonly '--wzl-stance-advanced-title-color': "#6f737b";
543
+ readonly '--wzl-stance-debug-border-style': "dashed";
544
+ readonly '--wzl-font-mono': "ui-monospace, SFMono-Regular, Menlo, Consolas, monospace";
545
+ readonly '--wzl-stance-debug-title-font': "ui-monospace, SFMono-Regular, Menlo, Consolas, monospace";
546
+ readonly '--wzl-stance-debug-title-case': "none";
207
547
  readonly '--wzl-danger-base': "#d94a3f";
548
+ readonly '--wzl-danger': "#d94a3f";
549
+ readonly '--wzl-stance-danger-tone': "#d94a3f";
550
+ readonly '--wzl-stance-danger-border-color': "#d94a3f";
551
+ readonly '--wzl-stance-danger-title-color': "#d94a3f";
552
+ readonly '--wzl-accent': "#2e1f7a";
553
+ readonly '--wzl-stance-notice-tone': "#2e1f7a";
554
+ readonly '--wzl-stance-notice-tone-mix': "8%";
555
+ readonly '--wzl-stance-important-border-color': "#5841b8";
556
+ readonly '--wzl-stance-important-title-color': "#5841b8";
557
+ readonly '--wzl-stance-preview-pad': "0";
558
+ readonly '--wzl-stance-preview-title-size': "10px";
559
+ readonly '--wzl-stance-preview-title-case': "none";
560
+ readonly '--wzl-stance-preview-title-inset': "6px 10px 0";
208
561
  readonly '--wzl-warning-base': "#d99a3f";
209
562
  readonly '--wzl-success-base': "#2ec27e";
210
563
  readonly '--wzl-fg-on-accent': "#f5f5f6";
211
- readonly '--wzl-line-subtle': "rgba(230, 231, 233, 0.1)";
212
564
  readonly '--wzl-line': "rgba(230, 231, 233, 0.2)";
213
565
  readonly '--wzl-line-strong': "rgba(230, 231, 233, 0.4)";
214
566
  readonly '--wzl-curve-color': "#5841b8";
215
- readonly '--wzl-accent': "#2e1f7a";
216
567
  readonly '--wzl-accent-hover': "#5841b8";
217
- readonly '--wzl-danger': "#d94a3f";
568
+ readonly '--wzl-secondary': "#dc9d15";
218
569
  readonly '--wzl-warning': "#d99a3f";
219
570
  readonly '--wzl-success': "#2ec27e";
220
571
  readonly '--wzl-focus-ring': "#5841b8";
@@ -223,7 +574,6 @@ declare const THEMES: {
223
574
  readonly '--wzl-surface-pressed': "rgba(230, 231, 233, 0.18)";
224
575
  readonly '--wzl-radius-sm': "3px";
225
576
  readonly '--wzl-radius-md': "5px";
226
- readonly '--wzl-radius-lg': "14px";
227
577
  readonly '--wzl-radius-pill': "999px";
228
578
  readonly '--wzl-border-w': "1px";
229
579
  readonly '--wzl-line-width': "2px";
@@ -240,8 +590,12 @@ declare const THEMES: {
240
590
  readonly '--wzl-handle-size': "9px";
241
591
  readonly '--wzl-handle-size-sm': "7px";
242
592
  readonly '--wzl-handle-size-lg': "10px";
593
+ readonly '--wzl-checker-a': "#25272c";
594
+ readonly '--wzl-checker-b': "#181a1e";
595
+ readonly '--wzl-checker-size': "8px";
596
+ readonly '--wzl-workspace-surface': "#0e0f12";
597
+ readonly '--wzl-workspace-line': "rgba(230, 231, 233, 0.1)";
243
598
  readonly '--wzl-field-pad-x': "8px";
244
- readonly '--wzl-glass-blur': "3px";
245
599
  readonly '--wzl-font-size': "13px";
246
600
  readonly '--wzl-tracking-none': "0";
247
601
  readonly '--wzl-tracking-wide': "0.06em";
@@ -260,10 +614,7 @@ declare const THEMES: {
260
614
  readonly '--wzl-ease-in-out-cubic': "cubic-bezier(0.65, 0, 0.35, 1)";
261
615
  readonly '--wzl-ease-out-back': "cubic-bezier(0.34, 1.56, 0.64, 1)";
262
616
  readonly '--wzl-font-ui': "Oswald, 'Helvetica Neue Condensed', 'Arial Narrow', system-ui, sans-serif";
263
- readonly '--wzl-font-display': "Oswald, 'Helvetica Neue Condensed', 'Arial Narrow', system-ui, sans-serif";
264
617
  readonly '--wzl-font-body': "Inter, system-ui, -apple-system, 'Segoe UI', sans-serif";
265
- readonly '--wzl-font-mono': "ui-monospace, SFMono-Regular, Menlo, Consolas, monospace";
266
- readonly '--wzl-font-weight-light': "200";
267
618
  readonly '--wzl-font-weight-normal': "300";
268
619
  readonly '--wzl-font-weight-medium': "350";
269
620
  readonly '--wzl-font-weight-bold': "400";
@@ -286,6 +637,9 @@ declare const THEMES: {
286
637
  readonly '--wzl-accent-soft': "#1d1454";
287
638
  readonly '--wzl-accent-base': "#2e1f7a";
288
639
  readonly '--wzl-accent-strong': "#5841b8";
640
+ readonly '--wzl-secondary-soft': "#704e09";
641
+ readonly '--wzl-secondary-base': "#dc9d15";
642
+ readonly '--wzl-secondary-strong': "#f1cb8d";
289
643
  readonly '--wzl-swatch-fuchsia': "#f641f7";
290
644
  readonly '--wzl-swatch-green': "#48e628";
291
645
  readonly '--wzl-swatch-sky': "#36bff2";
@@ -319,19 +673,65 @@ declare const THEMES: {
319
673
  readonly '--wzl-border': "#25272c";
320
674
  readonly '--wzl-border-strong': "#6f737b";
321
675
  readonly '--wzl-accent-fg': "#5841b8";
676
+ readonly '--wzl-secondary-fg': "#dc9d15";
322
677
  readonly '--wzl-fg-inverse': "#0e0f12";
323
678
  readonly '--wzl-shadow': "rgba(0, 0, 0, 0.6)";
679
+ readonly '--wzl-panel-surface': "#25272c";
680
+ readonly '--wzl-panel-border-color': "#25272c";
681
+ readonly '--wzl-panel-border-style': "solid";
682
+ readonly '--wzl-panel-border-width': "1px";
683
+ readonly '--wzl-radius-lg': "14px";
684
+ readonly '--wzl-panel-radius': "14px";
685
+ readonly '--wzl-panel-pad': "14px 16px";
686
+ readonly '--wzl-glass-blur': "3px";
687
+ readonly '--wzl-panel-blur': "3px";
688
+ readonly '--wzl-panel-tone-mix': "14%";
689
+ readonly '--wzl-font-display': "Oswald, 'Helvetica Neue Condensed', 'Arial Narrow', system-ui, sans-serif";
690
+ readonly '--wzl-panel-title-font': "Oswald, 'Helvetica Neue Condensed', 'Arial Narrow', system-ui, sans-serif";
691
+ readonly '--wzl-font-weight-light': "200";
692
+ readonly '--wzl-panel-title-weight': "200";
693
+ readonly '--wzl-panel-title-size': "18px";
694
+ readonly '--wzl-panel-title-case': "none";
695
+ readonly '--wzl-panel-title-tracking': "0.01em";
696
+ readonly '--wzl-panel-title-color': "#e6e7e9";
697
+ readonly '--wzl-panel-title-inset': "0";
698
+ readonly '--wzl-stance-scope-border-width': "0";
699
+ readonly '--wzl-stance-scope-radius': "8px";
700
+ readonly '--wzl-stance-scope-tone-mix': "22%";
701
+ readonly '--wzl-stance-scope-nested-radius': "6px";
702
+ readonly '--wzl-stance-scope-nested-surface': "#181a1e";
703
+ readonly '--wzl-stance-aside-surface': "transparent";
704
+ readonly '--wzl-line-subtle': "rgba(230, 231, 233, 0.1)";
705
+ readonly '--wzl-stance-aside-border-color': "rgba(230, 231, 233, 0.1)";
706
+ readonly '--wzl-stance-aside-blur': "0px";
707
+ readonly '--wzl-stance-aside-title-color': "#6f737b";
708
+ readonly '--wzl-stance-advanced-title-color': "#6f737b";
709
+ readonly '--wzl-stance-debug-border-style': "dashed";
710
+ readonly '--wzl-font-mono': "ui-monospace, SFMono-Regular, Menlo, Consolas, monospace";
711
+ readonly '--wzl-stance-debug-title-font': "ui-monospace, SFMono-Regular, Menlo, Consolas, monospace";
712
+ readonly '--wzl-stance-debug-title-case': "none";
324
713
  readonly '--wzl-danger-base': "#d94a3f";
714
+ readonly '--wzl-danger': "#d94a3f";
715
+ readonly '--wzl-stance-danger-tone': "#d94a3f";
716
+ readonly '--wzl-stance-danger-border-color': "#d94a3f";
717
+ readonly '--wzl-stance-danger-title-color': "#d94a3f";
718
+ readonly '--wzl-accent': "#2e1f7a";
719
+ readonly '--wzl-stance-notice-tone': "#2e1f7a";
720
+ readonly '--wzl-stance-notice-tone-mix': "8%";
721
+ readonly '--wzl-stance-important-border-color': "#5841b8";
722
+ readonly '--wzl-stance-important-title-color': "#5841b8";
723
+ readonly '--wzl-stance-preview-pad': "0";
724
+ readonly '--wzl-stance-preview-title-size': "12px";
725
+ readonly '--wzl-stance-preview-title-case': "none";
726
+ readonly '--wzl-stance-preview-title-inset': "6px 10px 0";
325
727
  readonly '--wzl-warning-base': "#d99a3f";
326
728
  readonly '--wzl-success-base': "#2ec27e";
327
729
  readonly '--wzl-fg-on-accent': "#f5f5f6";
328
- readonly '--wzl-line-subtle': "rgba(230, 231, 233, 0.1)";
329
730
  readonly '--wzl-line': "rgba(230, 231, 233, 0.2)";
330
731
  readonly '--wzl-line-strong': "rgba(230, 231, 233, 0.4)";
331
732
  readonly '--wzl-curve-color': "#5841b8";
332
- readonly '--wzl-accent': "#2e1f7a";
333
733
  readonly '--wzl-accent-hover': "#5841b8";
334
- readonly '--wzl-danger': "#d94a3f";
734
+ readonly '--wzl-secondary': "#dc9d15";
335
735
  readonly '--wzl-warning': "#d99a3f";
336
736
  readonly '--wzl-success': "#2ec27e";
337
737
  readonly '--wzl-focus-ring': "#5841b8";
@@ -340,7 +740,6 @@ declare const THEMES: {
340
740
  readonly '--wzl-surface-pressed': "rgba(230, 231, 233, 0.18)";
341
741
  readonly '--wzl-radius-sm': "3px";
342
742
  readonly '--wzl-radius-md': "5px";
343
- readonly '--wzl-radius-lg': "14px";
344
743
  readonly '--wzl-radius-pill': "999px";
345
744
  readonly '--wzl-border-w': "1px";
346
745
  readonly '--wzl-line-width': "2px";
@@ -357,8 +756,12 @@ declare const THEMES: {
357
756
  readonly '--wzl-handle-size': "9px";
358
757
  readonly '--wzl-handle-size-sm': "7px";
359
758
  readonly '--wzl-handle-size-lg': "10px";
759
+ readonly '--wzl-checker-a': "#25272c";
760
+ readonly '--wzl-checker-b': "#181a1e";
761
+ readonly '--wzl-checker-size': "8px";
762
+ readonly '--wzl-workspace-surface': "#0e0f12";
763
+ readonly '--wzl-workspace-line': "rgba(230, 231, 233, 0.1)";
360
764
  readonly '--wzl-field-pad-x': "8px";
361
- readonly '--wzl-glass-blur': "3px";
362
765
  readonly '--wzl-font-size': "15px";
363
766
  readonly '--wzl-tracking-none': "0";
364
767
  readonly '--wzl-tracking-wide': "0.06em";
@@ -377,10 +780,7 @@ declare const THEMES: {
377
780
  readonly '--wzl-ease-in-out-cubic': "cubic-bezier(0.65, 0, 0.35, 1)";
378
781
  readonly '--wzl-ease-out-back': "cubic-bezier(0.34, 1.56, 0.64, 1)";
379
782
  readonly '--wzl-font-ui': "Oswald, 'Helvetica Neue Condensed', 'Arial Narrow', system-ui, sans-serif";
380
- readonly '--wzl-font-display': "Oswald, 'Helvetica Neue Condensed', 'Arial Narrow', system-ui, sans-serif";
381
783
  readonly '--wzl-font-body': "Inter, system-ui, -apple-system, 'Segoe UI', sans-serif";
382
- readonly '--wzl-font-mono': "ui-monospace, SFMono-Regular, Menlo, Consolas, monospace";
383
- readonly '--wzl-font-weight-light': "200";
384
784
  readonly '--wzl-font-weight-normal': "300";
385
785
  readonly '--wzl-font-weight-medium': "350";
386
786
  readonly '--wzl-font-weight-bold': "400";
@@ -403,6 +803,9 @@ declare const THEMES: {
403
803
  readonly '--wzl-accent-soft': "#1d1454";
404
804
  readonly '--wzl-accent-base': "#2e1f7a";
405
805
  readonly '--wzl-accent-strong': "#5841b8";
806
+ readonly '--wzl-secondary-soft': "#016458";
807
+ readonly '--wzl-secondary-base': "#3ee1cb";
808
+ readonly '--wzl-secondary-strong': "#94e3d5";
406
809
  readonly '--wzl-swatch-fuchsia': "#f641f7";
407
810
  readonly '--wzl-swatch-green': "#48e628";
408
811
  readonly '--wzl-swatch-sky': "#36bff2";
@@ -436,19 +839,65 @@ declare const THEMES: {
436
839
  readonly '--wzl-border': "#c9cbcf";
437
840
  readonly '--wzl-border-strong': "#4d5058";
438
841
  readonly '--wzl-accent-fg': "#2e1f7a";
842
+ readonly '--wzl-secondary-fg': "#016458";
439
843
  readonly '--wzl-fg-inverse': "#f5f5f6";
440
844
  readonly '--wzl-shadow': "rgba(0, 0, 0, 0.18)";
845
+ readonly '--wzl-panel-surface': "#e6e7e9";
846
+ readonly '--wzl-panel-border-color': "#c9cbcf";
847
+ readonly '--wzl-panel-border-style': "solid";
848
+ readonly '--wzl-panel-border-width': "1px";
849
+ readonly '--wzl-radius-lg': "14px";
850
+ readonly '--wzl-panel-radius': "14px";
851
+ readonly '--wzl-panel-pad': "14px 16px";
852
+ readonly '--wzl-glass-blur': "3px";
853
+ readonly '--wzl-panel-blur': "3px";
854
+ readonly '--wzl-panel-tone-mix': "14%";
855
+ readonly '--wzl-font-display': "Oswald, 'Helvetica Neue Condensed', 'Arial Narrow', system-ui, sans-serif";
856
+ readonly '--wzl-panel-title-font': "Oswald, 'Helvetica Neue Condensed', 'Arial Narrow', system-ui, sans-serif";
857
+ readonly '--wzl-font-weight-light': "200";
858
+ readonly '--wzl-panel-title-weight': "200";
859
+ readonly '--wzl-panel-title-size': "14px";
860
+ readonly '--wzl-panel-title-case': "none";
861
+ readonly '--wzl-panel-title-tracking': "0.01em";
862
+ readonly '--wzl-panel-title-color': "#0e0f12";
863
+ readonly '--wzl-panel-title-inset': "0";
864
+ readonly '--wzl-stance-scope-border-width': "0";
865
+ readonly '--wzl-stance-scope-radius': "8px";
866
+ readonly '--wzl-stance-scope-tone-mix': "22%";
867
+ readonly '--wzl-stance-scope-nested-radius': "6px";
868
+ readonly '--wzl-stance-scope-nested-surface': "#f5f5f6";
869
+ readonly '--wzl-stance-aside-surface': "transparent";
870
+ readonly '--wzl-line-subtle': "rgba(14, 15, 18, 0.1)";
871
+ readonly '--wzl-stance-aside-border-color': "rgba(14, 15, 18, 0.1)";
872
+ readonly '--wzl-stance-aside-blur': "0px";
873
+ readonly '--wzl-stance-aside-title-color': "#4d5058";
874
+ readonly '--wzl-stance-advanced-title-color': "#4d5058";
875
+ readonly '--wzl-stance-debug-border-style': "dashed";
876
+ readonly '--wzl-font-mono': "ui-monospace, SFMono-Regular, Menlo, Consolas, monospace";
877
+ readonly '--wzl-stance-debug-title-font': "ui-monospace, SFMono-Regular, Menlo, Consolas, monospace";
878
+ readonly '--wzl-stance-debug-title-case': "none";
441
879
  readonly '--wzl-danger-base': "#d94a3f";
880
+ readonly '--wzl-danger': "#d94a3f";
881
+ readonly '--wzl-stance-danger-tone': "#d94a3f";
882
+ readonly '--wzl-stance-danger-border-color': "#d94a3f";
883
+ readonly '--wzl-stance-danger-title-color': "#d94a3f";
884
+ readonly '--wzl-accent': "#2e1f7a";
885
+ readonly '--wzl-stance-notice-tone': "#2e1f7a";
886
+ readonly '--wzl-stance-notice-tone-mix': "8%";
887
+ readonly '--wzl-stance-important-border-color': "#2e1f7a";
888
+ readonly '--wzl-stance-important-title-color': "#2e1f7a";
889
+ readonly '--wzl-stance-preview-pad': "0";
890
+ readonly '--wzl-stance-preview-title-size': "8px";
891
+ readonly '--wzl-stance-preview-title-case': "none";
892
+ readonly '--wzl-stance-preview-title-inset': "6px 10px 0";
442
893
  readonly '--wzl-warning-base': "#d99a3f";
443
894
  readonly '--wzl-success-base': "#2ec27e";
444
895
  readonly '--wzl-fg-on-accent': "#f5f5f6";
445
- readonly '--wzl-line-subtle': "rgba(14, 15, 18, 0.1)";
446
896
  readonly '--wzl-line': "rgba(14, 15, 18, 0.2)";
447
897
  readonly '--wzl-line-strong': "rgba(14, 15, 18, 0.4)";
448
898
  readonly '--wzl-curve-color': "#5841b8";
449
- readonly '--wzl-accent': "#2e1f7a";
450
899
  readonly '--wzl-accent-hover': "#5841b8";
451
- readonly '--wzl-danger': "#d94a3f";
900
+ readonly '--wzl-secondary': "#3ee1cb";
452
901
  readonly '--wzl-warning': "#d99a3f";
453
902
  readonly '--wzl-success': "#2ec27e";
454
903
  readonly '--wzl-focus-ring': "#5841b8";
@@ -457,7 +906,6 @@ declare const THEMES: {
457
906
  readonly '--wzl-surface-pressed': "rgba(14, 15, 18, 0.18)";
458
907
  readonly '--wzl-radius-sm': "3px";
459
908
  readonly '--wzl-radius-md': "5px";
460
- readonly '--wzl-radius-lg': "14px";
461
909
  readonly '--wzl-radius-pill': "999px";
462
910
  readonly '--wzl-border-w': "1px";
463
911
  readonly '--wzl-line-width': "2px";
@@ -474,8 +922,12 @@ declare const THEMES: {
474
922
  readonly '--wzl-handle-size': "9px";
475
923
  readonly '--wzl-handle-size-sm': "7px";
476
924
  readonly '--wzl-handle-size-lg': "10px";
925
+ readonly '--wzl-checker-a': "#c9cbcf";
926
+ readonly '--wzl-checker-b': "#f5f5f6";
927
+ readonly '--wzl-checker-size': "8px";
928
+ readonly '--wzl-workspace-surface': "#c9cbcf";
929
+ readonly '--wzl-workspace-line': "rgba(14, 15, 18, 0.1)";
477
930
  readonly '--wzl-field-pad-x': "8px";
478
- readonly '--wzl-glass-blur': "3px";
479
931
  readonly '--wzl-font-size': "11px";
480
932
  readonly '--wzl-tracking-none': "0";
481
933
  readonly '--wzl-tracking-wide': "0.06em";
@@ -494,10 +946,7 @@ declare const THEMES: {
494
946
  readonly '--wzl-ease-in-out-cubic': "cubic-bezier(0.65, 0, 0.35, 1)";
495
947
  readonly '--wzl-ease-out-back': "cubic-bezier(0.34, 1.56, 0.64, 1)";
496
948
  readonly '--wzl-font-ui': "Oswald, 'Helvetica Neue Condensed', 'Arial Narrow', system-ui, sans-serif";
497
- readonly '--wzl-font-display': "Oswald, 'Helvetica Neue Condensed', 'Arial Narrow', system-ui, sans-serif";
498
949
  readonly '--wzl-font-body': "Inter, system-ui, -apple-system, 'Segoe UI', sans-serif";
499
- readonly '--wzl-font-mono': "ui-monospace, SFMono-Regular, Menlo, Consolas, monospace";
500
- readonly '--wzl-font-weight-light': "200";
501
950
  readonly '--wzl-font-weight-normal': "300";
502
951
  readonly '--wzl-font-weight-medium': "350";
503
952
  readonly '--wzl-font-weight-bold': "400";
@@ -520,6 +969,9 @@ declare const THEMES: {
520
969
  readonly '--wzl-accent-soft': "#1d1454";
521
970
  readonly '--wzl-accent-base': "#2e1f7a";
522
971
  readonly '--wzl-accent-strong': "#5841b8";
972
+ readonly '--wzl-secondary-soft': "#016458";
973
+ readonly '--wzl-secondary-base': "#3ee1cb";
974
+ readonly '--wzl-secondary-strong': "#94e3d5";
523
975
  readonly '--wzl-swatch-fuchsia': "#f641f7";
524
976
  readonly '--wzl-swatch-green': "#48e628";
525
977
  readonly '--wzl-swatch-sky': "#36bff2";
@@ -553,19 +1005,65 @@ declare const THEMES: {
553
1005
  readonly '--wzl-border': "#c9cbcf";
554
1006
  readonly '--wzl-border-strong': "#4d5058";
555
1007
  readonly '--wzl-accent-fg': "#2e1f7a";
1008
+ readonly '--wzl-secondary-fg': "#016458";
556
1009
  readonly '--wzl-fg-inverse': "#f5f5f6";
557
1010
  readonly '--wzl-shadow': "rgba(0, 0, 0, 0.18)";
1011
+ readonly '--wzl-panel-surface': "#e6e7e9";
1012
+ readonly '--wzl-panel-border-color': "#c9cbcf";
1013
+ readonly '--wzl-panel-border-style': "solid";
1014
+ readonly '--wzl-panel-border-width': "1px";
1015
+ readonly '--wzl-radius-lg': "14px";
1016
+ readonly '--wzl-panel-radius': "14px";
1017
+ readonly '--wzl-panel-pad': "14px 16px";
1018
+ readonly '--wzl-glass-blur': "3px";
1019
+ readonly '--wzl-panel-blur': "3px";
1020
+ readonly '--wzl-panel-tone-mix': "14%";
1021
+ readonly '--wzl-font-display': "Oswald, 'Helvetica Neue Condensed', 'Arial Narrow', system-ui, sans-serif";
1022
+ readonly '--wzl-panel-title-font': "Oswald, 'Helvetica Neue Condensed', 'Arial Narrow', system-ui, sans-serif";
1023
+ readonly '--wzl-font-weight-light': "200";
1024
+ readonly '--wzl-panel-title-weight': "200";
1025
+ readonly '--wzl-panel-title-size': "16px";
1026
+ readonly '--wzl-panel-title-case': "none";
1027
+ readonly '--wzl-panel-title-tracking': "0.01em";
1028
+ readonly '--wzl-panel-title-color': "#0e0f12";
1029
+ readonly '--wzl-panel-title-inset': "0";
1030
+ readonly '--wzl-stance-scope-border-width': "0";
1031
+ readonly '--wzl-stance-scope-radius': "8px";
1032
+ readonly '--wzl-stance-scope-tone-mix': "22%";
1033
+ readonly '--wzl-stance-scope-nested-radius': "6px";
1034
+ readonly '--wzl-stance-scope-nested-surface': "#f5f5f6";
1035
+ readonly '--wzl-stance-aside-surface': "transparent";
1036
+ readonly '--wzl-line-subtle': "rgba(14, 15, 18, 0.1)";
1037
+ readonly '--wzl-stance-aside-border-color': "rgba(14, 15, 18, 0.1)";
1038
+ readonly '--wzl-stance-aside-blur': "0px";
1039
+ readonly '--wzl-stance-aside-title-color': "#4d5058";
1040
+ readonly '--wzl-stance-advanced-title-color': "#4d5058";
1041
+ readonly '--wzl-stance-debug-border-style': "dashed";
1042
+ readonly '--wzl-font-mono': "ui-monospace, SFMono-Regular, Menlo, Consolas, monospace";
1043
+ readonly '--wzl-stance-debug-title-font': "ui-monospace, SFMono-Regular, Menlo, Consolas, monospace";
1044
+ readonly '--wzl-stance-debug-title-case': "none";
558
1045
  readonly '--wzl-danger-base': "#d94a3f";
1046
+ readonly '--wzl-danger': "#d94a3f";
1047
+ readonly '--wzl-stance-danger-tone': "#d94a3f";
1048
+ readonly '--wzl-stance-danger-border-color': "#d94a3f";
1049
+ readonly '--wzl-stance-danger-title-color': "#d94a3f";
1050
+ readonly '--wzl-accent': "#2e1f7a";
1051
+ readonly '--wzl-stance-notice-tone': "#2e1f7a";
1052
+ readonly '--wzl-stance-notice-tone-mix': "8%";
1053
+ readonly '--wzl-stance-important-border-color': "#2e1f7a";
1054
+ readonly '--wzl-stance-important-title-color': "#2e1f7a";
1055
+ readonly '--wzl-stance-preview-pad': "0";
1056
+ readonly '--wzl-stance-preview-title-size': "10px";
1057
+ readonly '--wzl-stance-preview-title-case': "none";
1058
+ readonly '--wzl-stance-preview-title-inset': "6px 10px 0";
559
1059
  readonly '--wzl-warning-base': "#d99a3f";
560
1060
  readonly '--wzl-success-base': "#2ec27e";
561
1061
  readonly '--wzl-fg-on-accent': "#f5f5f6";
562
- readonly '--wzl-line-subtle': "rgba(14, 15, 18, 0.1)";
563
1062
  readonly '--wzl-line': "rgba(14, 15, 18, 0.2)";
564
1063
  readonly '--wzl-line-strong': "rgba(14, 15, 18, 0.4)";
565
1064
  readonly '--wzl-curve-color': "#5841b8";
566
- readonly '--wzl-accent': "#2e1f7a";
567
1065
  readonly '--wzl-accent-hover': "#5841b8";
568
- readonly '--wzl-danger': "#d94a3f";
1066
+ readonly '--wzl-secondary': "#3ee1cb";
569
1067
  readonly '--wzl-warning': "#d99a3f";
570
1068
  readonly '--wzl-success': "#2ec27e";
571
1069
  readonly '--wzl-focus-ring': "#5841b8";
@@ -574,7 +1072,6 @@ declare const THEMES: {
574
1072
  readonly '--wzl-surface-pressed': "rgba(14, 15, 18, 0.18)";
575
1073
  readonly '--wzl-radius-sm': "3px";
576
1074
  readonly '--wzl-radius-md': "5px";
577
- readonly '--wzl-radius-lg': "14px";
578
1075
  readonly '--wzl-radius-pill': "999px";
579
1076
  readonly '--wzl-border-w': "1px";
580
1077
  readonly '--wzl-line-width': "2px";
@@ -591,8 +1088,12 @@ declare const THEMES: {
591
1088
  readonly '--wzl-handle-size': "9px";
592
1089
  readonly '--wzl-handle-size-sm': "7px";
593
1090
  readonly '--wzl-handle-size-lg': "10px";
1091
+ readonly '--wzl-checker-a': "#c9cbcf";
1092
+ readonly '--wzl-checker-b': "#f5f5f6";
1093
+ readonly '--wzl-checker-size': "8px";
1094
+ readonly '--wzl-workspace-surface': "#c9cbcf";
1095
+ readonly '--wzl-workspace-line': "rgba(14, 15, 18, 0.1)";
594
1096
  readonly '--wzl-field-pad-x': "8px";
595
- readonly '--wzl-glass-blur': "3px";
596
1097
  readonly '--wzl-font-size': "13px";
597
1098
  readonly '--wzl-tracking-none': "0";
598
1099
  readonly '--wzl-tracking-wide': "0.06em";
@@ -611,10 +1112,7 @@ declare const THEMES: {
611
1112
  readonly '--wzl-ease-in-out-cubic': "cubic-bezier(0.65, 0, 0.35, 1)";
612
1113
  readonly '--wzl-ease-out-back': "cubic-bezier(0.34, 1.56, 0.64, 1)";
613
1114
  readonly '--wzl-font-ui': "Oswald, 'Helvetica Neue Condensed', 'Arial Narrow', system-ui, sans-serif";
614
- readonly '--wzl-font-display': "Oswald, 'Helvetica Neue Condensed', 'Arial Narrow', system-ui, sans-serif";
615
1115
  readonly '--wzl-font-body': "Inter, system-ui, -apple-system, 'Segoe UI', sans-serif";
616
- readonly '--wzl-font-mono': "ui-monospace, SFMono-Regular, Menlo, Consolas, monospace";
617
- readonly '--wzl-font-weight-light': "200";
618
1116
  readonly '--wzl-font-weight-normal': "300";
619
1117
  readonly '--wzl-font-weight-medium': "350";
620
1118
  readonly '--wzl-font-weight-bold': "400";
@@ -637,6 +1135,9 @@ declare const THEMES: {
637
1135
  readonly '--wzl-accent-soft': "#1d1454";
638
1136
  readonly '--wzl-accent-base': "#2e1f7a";
639
1137
  readonly '--wzl-accent-strong': "#5841b8";
1138
+ readonly '--wzl-secondary-soft': "#016458";
1139
+ readonly '--wzl-secondary-base': "#3ee1cb";
1140
+ readonly '--wzl-secondary-strong': "#94e3d5";
640
1141
  readonly '--wzl-swatch-fuchsia': "#f641f7";
641
1142
  readonly '--wzl-swatch-green': "#48e628";
642
1143
  readonly '--wzl-swatch-sky': "#36bff2";
@@ -670,19 +1171,65 @@ declare const THEMES: {
670
1171
  readonly '--wzl-border': "#c9cbcf";
671
1172
  readonly '--wzl-border-strong': "#4d5058";
672
1173
  readonly '--wzl-accent-fg': "#2e1f7a";
1174
+ readonly '--wzl-secondary-fg': "#016458";
673
1175
  readonly '--wzl-fg-inverse': "#f5f5f6";
674
1176
  readonly '--wzl-shadow': "rgba(0, 0, 0, 0.18)";
1177
+ readonly '--wzl-panel-surface': "#e6e7e9";
1178
+ readonly '--wzl-panel-border-color': "#c9cbcf";
1179
+ readonly '--wzl-panel-border-style': "solid";
1180
+ readonly '--wzl-panel-border-width': "1px";
1181
+ readonly '--wzl-radius-lg': "14px";
1182
+ readonly '--wzl-panel-radius': "14px";
1183
+ readonly '--wzl-panel-pad': "14px 16px";
1184
+ readonly '--wzl-glass-blur': "3px";
1185
+ readonly '--wzl-panel-blur': "3px";
1186
+ readonly '--wzl-panel-tone-mix': "14%";
1187
+ readonly '--wzl-font-display': "Oswald, 'Helvetica Neue Condensed', 'Arial Narrow', system-ui, sans-serif";
1188
+ readonly '--wzl-panel-title-font': "Oswald, 'Helvetica Neue Condensed', 'Arial Narrow', system-ui, sans-serif";
1189
+ readonly '--wzl-font-weight-light': "200";
1190
+ readonly '--wzl-panel-title-weight': "200";
1191
+ readonly '--wzl-panel-title-size': "18px";
1192
+ readonly '--wzl-panel-title-case': "none";
1193
+ readonly '--wzl-panel-title-tracking': "0.01em";
1194
+ readonly '--wzl-panel-title-color': "#0e0f12";
1195
+ readonly '--wzl-panel-title-inset': "0";
1196
+ readonly '--wzl-stance-scope-border-width': "0";
1197
+ readonly '--wzl-stance-scope-radius': "8px";
1198
+ readonly '--wzl-stance-scope-tone-mix': "22%";
1199
+ readonly '--wzl-stance-scope-nested-radius': "6px";
1200
+ readonly '--wzl-stance-scope-nested-surface': "#f5f5f6";
1201
+ readonly '--wzl-stance-aside-surface': "transparent";
1202
+ readonly '--wzl-line-subtle': "rgba(14, 15, 18, 0.1)";
1203
+ readonly '--wzl-stance-aside-border-color': "rgba(14, 15, 18, 0.1)";
1204
+ readonly '--wzl-stance-aside-blur': "0px";
1205
+ readonly '--wzl-stance-aside-title-color': "#4d5058";
1206
+ readonly '--wzl-stance-advanced-title-color': "#4d5058";
1207
+ readonly '--wzl-stance-debug-border-style': "dashed";
1208
+ readonly '--wzl-font-mono': "ui-monospace, SFMono-Regular, Menlo, Consolas, monospace";
1209
+ readonly '--wzl-stance-debug-title-font': "ui-monospace, SFMono-Regular, Menlo, Consolas, monospace";
1210
+ readonly '--wzl-stance-debug-title-case': "none";
675
1211
  readonly '--wzl-danger-base': "#d94a3f";
1212
+ readonly '--wzl-danger': "#d94a3f";
1213
+ readonly '--wzl-stance-danger-tone': "#d94a3f";
1214
+ readonly '--wzl-stance-danger-border-color': "#d94a3f";
1215
+ readonly '--wzl-stance-danger-title-color': "#d94a3f";
1216
+ readonly '--wzl-accent': "#2e1f7a";
1217
+ readonly '--wzl-stance-notice-tone': "#2e1f7a";
1218
+ readonly '--wzl-stance-notice-tone-mix': "8%";
1219
+ readonly '--wzl-stance-important-border-color': "#2e1f7a";
1220
+ readonly '--wzl-stance-important-title-color': "#2e1f7a";
1221
+ readonly '--wzl-stance-preview-pad': "0";
1222
+ readonly '--wzl-stance-preview-title-size': "12px";
1223
+ readonly '--wzl-stance-preview-title-case': "none";
1224
+ readonly '--wzl-stance-preview-title-inset': "6px 10px 0";
676
1225
  readonly '--wzl-warning-base': "#d99a3f";
677
1226
  readonly '--wzl-success-base': "#2ec27e";
678
1227
  readonly '--wzl-fg-on-accent': "#f5f5f6";
679
- readonly '--wzl-line-subtle': "rgba(14, 15, 18, 0.1)";
680
1228
  readonly '--wzl-line': "rgba(14, 15, 18, 0.2)";
681
1229
  readonly '--wzl-line-strong': "rgba(14, 15, 18, 0.4)";
682
1230
  readonly '--wzl-curve-color': "#5841b8";
683
- readonly '--wzl-accent': "#2e1f7a";
684
1231
  readonly '--wzl-accent-hover': "#5841b8";
685
- readonly '--wzl-danger': "#d94a3f";
1232
+ readonly '--wzl-secondary': "#3ee1cb";
686
1233
  readonly '--wzl-warning': "#d99a3f";
687
1234
  readonly '--wzl-success': "#2ec27e";
688
1235
  readonly '--wzl-focus-ring': "#5841b8";
@@ -691,7 +1238,6 @@ declare const THEMES: {
691
1238
  readonly '--wzl-surface-pressed': "rgba(14, 15, 18, 0.18)";
692
1239
  readonly '--wzl-radius-sm': "3px";
693
1240
  readonly '--wzl-radius-md': "5px";
694
- readonly '--wzl-radius-lg': "14px";
695
1241
  readonly '--wzl-radius-pill': "999px";
696
1242
  readonly '--wzl-border-w': "1px";
697
1243
  readonly '--wzl-line-width': "2px";
@@ -708,8 +1254,12 @@ declare const THEMES: {
708
1254
  readonly '--wzl-handle-size': "9px";
709
1255
  readonly '--wzl-handle-size-sm': "7px";
710
1256
  readonly '--wzl-handle-size-lg': "10px";
1257
+ readonly '--wzl-checker-a': "#c9cbcf";
1258
+ readonly '--wzl-checker-b': "#f5f5f6";
1259
+ readonly '--wzl-checker-size': "8px";
1260
+ readonly '--wzl-workspace-surface': "#c9cbcf";
1261
+ readonly '--wzl-workspace-line': "rgba(14, 15, 18, 0.1)";
711
1262
  readonly '--wzl-field-pad-x': "8px";
712
- readonly '--wzl-glass-blur': "3px";
713
1263
  readonly '--wzl-font-size': "15px";
714
1264
  readonly '--wzl-tracking-none': "0";
715
1265
  readonly '--wzl-tracking-wide': "0.06em";
@@ -728,10 +1278,7 @@ declare const THEMES: {
728
1278
  readonly '--wzl-ease-in-out-cubic': "cubic-bezier(0.65, 0, 0.35, 1)";
729
1279
  readonly '--wzl-ease-out-back': "cubic-bezier(0.34, 1.56, 0.64, 1)";
730
1280
  readonly '--wzl-font-ui': "Oswald, 'Helvetica Neue Condensed', 'Arial Narrow', system-ui, sans-serif";
731
- readonly '--wzl-font-display': "Oswald, 'Helvetica Neue Condensed', 'Arial Narrow', system-ui, sans-serif";
732
1281
  readonly '--wzl-font-body': "Inter, system-ui, -apple-system, 'Segoe UI', sans-serif";
733
- readonly '--wzl-font-mono': "ui-monospace, SFMono-Regular, Menlo, Consolas, monospace";
734
- readonly '--wzl-font-weight-light': "200";
735
1282
  readonly '--wzl-font-weight-normal': "300";
736
1283
  readonly '--wzl-font-weight-medium': "350";
737
1284
  readonly '--wzl-font-weight-bold': "400";
@@ -749,18 +1296,4 @@ declare const THEME_SOURCES: Readonly<Record<string, ThemeDefinition>>;
749
1296
  * what `weaselTheme` is built from, so the runtime entry bundles no generator. */
750
1297
  declare const BAKED_THEMES: Readonly<Record<string, BakedTheme>>;
751
1298
 
752
- /** The output of `resolveTheme`: every token of a theme, for one selection, keyed
753
- * by CSS custom-property name and flattened to a final CSS value. */
754
- type ResolvedTheme = Readonly<Record<TokenName, string>>;
755
- /** Every axis the chain declares. An axis declared more than once keeps every value; a descendant's value entries and default win. */
756
- declare function themeAxes(theme: Theme): AxisDefs;
757
- /**
758
- * Merge the extends chain at a selection, resolve every alias, and key the
759
- * result by CSS custom-property name. A missing or unknown axis value takes the
760
- * axis default.
761
- *
762
- * Pure — no DOM. An unresolvable reference throws rather than falling back.
763
- */
764
- declare function resolveTheme(theme: Theme, selection?: Selection): ResolvedTheme;
765
-
766
- export { BAKED_THEMES as B, type GeneratedTheme as G, type ResolvedTheme as R, type TokenName as T, THEMES as a, THEME_SOURCES as b, resolveTheme as r, themeAxes as t };
1299
+ export { mergeChain as $, type AxisDef as A, BAKED_THEMES as B, type ColorContext as C, themeAxes as D, themeTones as E, type FlatTokens as F, type GeneratedColors as G, weaselTheme as H, type CategoricalRampDef as I, type ContrastRule as J, type LightnessRampDef as K, type Lookup as L, type LiteralRule as M, type NumberParam as N, type OffsetRule as O, type PinObject as P, type RampDef as Q, type ResolvedTheme as R, type Selection as S, type TokenName as T, type RefRule as U, type Varying as V, type ScaleDef as W, type SemanticRule as X, type StepRule as Y, bake as Z, bakeChain as _, type Theme as a, type TokenValue as b, type AxisDefs as c, type AxisValue as d, type BakedTheme as e, type ByAxis as f, type ColorList as g, type GeneratedTheme as h, type PinValue as i, type RampColors as j, type RawToken as k, type SerializableColorList as l, THEMES as m, THEME_SOURCES as n, type ThemeDefinition as o, type ThemeInput as p, colorAt as q, colorCount as r, colorCssAt as s, defineTheme as t, enumerateSelections as u, fullSelection as v, isByAxis as w, rampSteps as x, resolveTheme as y, selectionKey as z };