@nxds/core 0.9.0 → 0.9.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.
@@ -1 +1 @@
1
- {"version":3,"sources":["../../tokens/primitives/typography/typography-default.json","../../src/lib/contrast.ts","../../src/lib/apca.ts","../../src/lib/semantic-palette-references.ts","../../src/lib/apca-pairs.ts","../../src/lib/oklch-format.ts","../../src/lib/palette.ts","../../src/lib/perceptual-ramp.ts","../../src/token-source/perceptual-grid.ts","../../src/token-source/perceptual-grid.json","../../src/token-source/perceptual-grid-hue.json","../../src/lib/appearance-model.ts","../../src/lib/derive-theme.ts","../../tokens/primitives/color.json","../../src/lib/primitive-palette.ts","../../src/lib/surface-ladder.ts","../../src/lib/token-registry.ts","../../src/token-source/tokens.ts","../../src/token-source/format.ts","../../src/token-source/spacing.ts","../../src/token-source/utilities.ts","../../src/catalogue/descriptions.ts","../../tokens/primitives/borderwidth/borderwidth-fine.json","../../tokens/primitives/borderwidth/borderwidth-normal.json","../../tokens/primitives/borderwidth/borderwidth-strong.json","../../tokens/primitives/motion/motion-snappy.json","../../tokens/primitives/radius/radius-extra-round.json","../../tokens/primitives/radius/radius-round.json","../../tokens/primitives/radius/radius-smooth.json","../../tokens/primitives/radius/radius-square.json","../../tokens/primitives/radius/radius-subtle.json","../../tokens/primitives/shadow/shadow-flat-dark.json","../../tokens/primitives/shadow/shadow-flat-light.json","../../tokens/primitives/shadow/shadow-quiet-dark.json","../../tokens/primitives/shadow/shadow-quiet-light.json","../../tokens/primitives/shadow/shadow-soft-dark.json","../../tokens/primitives/shadow/shadow-soft-light.json","../../tokens/primitives/shadow/shadow-standard-dark.json","../../tokens/primitives/shadow/shadow-standard-light.json","../../tokens/primitives/shadow/shadow-strong-dark.json","../../tokens/primitives/shadow/shadow-strong-light.json","../../tokens/semantic/breakpoints.json","../../tokens/semantic/spacing-comfortable.json","../../tokens/semantic/spacing-compact.json","../../tokens/semantic/spacing-default.json","../../tokens/semantic/spacing-relaxed.json","../../tokens/semantic/spacing-spacious.json","../../tokens/semantic/spacing-tight.json","../../tokens/semantic/z-index.json","../../tokens/styles/shadows.json","../../tokens/styles/typography.json","../../src/catalogue/token-files.ts","../../src/catalogue/catalogue.ts"],"sourcesContent":["{\n \"family\": {\n \"font-sans\": {\n \"$value\": \"ui-sans-serif, system-ui, -apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, 'Helvetica Neue', Arial, sans-serif\",\n \"$type\": \"fontFamily\",\n \"$extensions\": {\n \"nx-font-source\": {\n \"type\": \"system\"\n }\n }\n },\n \"font-heading\": {\n \"$value\": \"ui-sans-serif, system-ui, -apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, 'Helvetica Neue', Arial, sans-serif\",\n \"$type\": \"fontFamily\",\n \"$extensions\": {\n \"nx-font-source\": {\n \"type\": \"system\"\n }\n }\n },\n \"font-serif\": {\n \"$value\": \"Georgia\",\n \"$type\": \"fontFamily\",\n \"$extensions\": {\n \"nx-font-source\": {\n \"type\": \"system\"\n }\n }\n },\n \"font-mono\": {\n \"$value\": \"ui-monospace, SFMono-Regular, 'SF Mono', Menlo, Consolas, 'Liberation Mono', monospace\",\n \"$type\": \"fontFamily\",\n \"$extensions\": {\n \"nx-font-source\": {\n \"type\": \"system\"\n }\n }\n }\n },\n \"size\": {\n \"xxs\": {\n \"$value\": {\n \"value\": 11,\n \"unit\": \"px\"\n },\n \"$type\": \"dimension\"\n },\n \"xs\": {\n \"$value\": {\n \"value\": 12,\n \"unit\": \"px\"\n },\n \"$type\": \"dimension\"\n },\n \"sm\": {\n \"$value\": {\n \"value\": 14,\n \"unit\": \"px\"\n },\n \"$type\": \"dimension\"\n },\n \"base\": {\n \"$value\": {\n \"value\": 16,\n \"unit\": \"px\"\n },\n \"$type\": \"dimension\"\n },\n \"lg\": {\n \"$value\": {\n \"value\": 18,\n \"unit\": \"px\"\n },\n \"$type\": \"dimension\"\n },\n \"xl\": {\n \"$value\": {\n \"value\": 20,\n \"unit\": \"px\"\n },\n \"$type\": \"dimension\"\n },\n \"2xl\": {\n \"$value\": {\n \"value\": 24,\n \"unit\": \"px\"\n },\n \"$type\": \"dimension\"\n },\n \"3xl\": {\n \"$value\": {\n \"value\": 30,\n \"unit\": \"px\"\n },\n \"$type\": \"dimension\"\n },\n \"4xl\": {\n \"$value\": {\n \"value\": 36,\n \"unit\": \"px\"\n },\n \"$type\": \"dimension\"\n },\n \"5xl\": {\n \"$value\": {\n \"value\": 48,\n \"unit\": \"px\"\n },\n \"$type\": \"dimension\"\n },\n \"6xl\": {\n \"$value\": {\n \"value\": 60,\n \"unit\": \"px\"\n },\n \"$type\": \"dimension\"\n },\n \"7xl\": {\n \"$value\": {\n \"value\": 72,\n \"unit\": \"px\"\n },\n \"$type\": \"dimension\"\n },\n \"8xl\": {\n \"$value\": {\n \"value\": 96,\n \"unit\": \"px\"\n },\n \"$type\": \"dimension\"\n },\n \"9xl\": {\n \"$value\": {\n \"value\": 128,\n \"unit\": \"px\"\n },\n \"$type\": \"dimension\"\n }\n },\n \"weight\": {\n \"thin\": {\n \"$value\": 100,\n \"$type\": \"fontWeight\"\n },\n \"extralight\": {\n \"$value\": 200,\n \"$type\": \"fontWeight\"\n },\n \"light\": {\n \"$value\": 300,\n \"$type\": \"fontWeight\"\n },\n \"normal\": {\n \"$value\": 400,\n \"$type\": \"fontWeight\"\n },\n \"medium\": {\n \"$value\": 500,\n \"$type\": \"fontWeight\"\n },\n \"semibold\": {\n \"$value\": 600,\n \"$type\": \"fontWeight\"\n },\n \"bold\": {\n \"$value\": 700,\n \"$type\": \"fontWeight\"\n },\n \"extrabold\": {\n \"$value\": 800,\n \"$type\": \"fontWeight\"\n },\n \"black\": {\n \"$value\": 900,\n \"$type\": \"fontWeight\"\n }\n },\n \"line-height\": {\n \"xxs\": {\n \"$value\": {\n \"value\": 12,\n \"unit\": \"px\"\n },\n \"$type\": \"dimension\"\n },\n \"xs\": {\n \"$value\": {\n \"value\": 16,\n \"unit\": \"px\"\n },\n \"$type\": \"dimension\"\n },\n \"sm\": {\n \"$value\": {\n \"value\": 20,\n \"unit\": \"px\"\n },\n \"$type\": \"dimension\"\n },\n \"base\": {\n \"$value\": {\n \"value\": 24,\n \"unit\": \"px\"\n },\n \"$type\": \"dimension\"\n },\n \"lg\": {\n \"$value\": {\n \"value\": 28,\n \"unit\": \"px\"\n },\n \"$type\": \"dimension\"\n },\n \"xl\": {\n \"$value\": {\n \"value\": 28,\n \"unit\": \"px\"\n },\n \"$type\": \"dimension\"\n },\n \"2xl\": {\n \"$value\": {\n \"value\": 32,\n \"unit\": \"px\"\n },\n \"$type\": \"dimension\"\n },\n \"3xl\": {\n \"$value\": {\n \"value\": 36,\n \"unit\": \"px\"\n },\n \"$type\": \"dimension\"\n },\n \"4xl\": {\n \"$value\": {\n \"value\": 48,\n \"unit\": \"px\"\n },\n \"$type\": \"dimension\"\n },\n \"5xl\": {\n \"$value\": {\n \"value\": 48,\n \"unit\": \"px\"\n },\n \"$type\": \"dimension\"\n },\n \"6xl\": {\n \"$value\": {\n \"value\": 60,\n \"unit\": \"px\"\n },\n \"$type\": \"dimension\"\n },\n \"7xl\": {\n \"$value\": {\n \"value\": 72,\n \"unit\": \"px\"\n },\n \"$type\": \"dimension\"\n },\n \"8xl\": {\n \"$value\": {\n \"value\": 96,\n \"unit\": \"px\"\n },\n \"$type\": \"dimension\"\n },\n \"9xl\": {\n \"$value\": {\n \"value\": 128,\n \"unit\": \"px\"\n },\n \"$type\": \"dimension\"\n }\n },\n \"letterspacing\": {\n \"tighter\": {\n \"$value\": {\n \"value\": -0.800000011920929,\n \"unit\": \"px\"\n },\n \"$type\": \"dimension\"\n },\n \"tight\": {\n \"$value\": {\n \"value\": -0.4000000059604645,\n \"unit\": \"px\"\n },\n \"$type\": \"dimension\"\n },\n \"normal\": {\n \"$value\": {\n \"value\": 0,\n \"unit\": \"px\"\n },\n \"$type\": \"dimension\"\n },\n \"wide\": {\n \"$value\": {\n \"value\": 0.4000000059604645,\n \"unit\": \"px\"\n },\n \"$type\": \"dimension\"\n },\n \"wider\": {\n \"$value\": {\n \"value\": 0.800000011920929,\n \"unit\": \"px\"\n },\n \"$type\": \"dimension\"\n },\n \"widest\": {\n \"$value\": {\n \"value\": 1.600000023841858,\n \"unit\": \"px\"\n },\n \"$type\": \"dimension\"\n }\n }\n}\n","import { APCAcontrast, sRGBtoY } from 'apca-w3';\nimport { clampChroma } from 'culori';\n\nimport { resolveToSrgbInts } from './apca';\nimport { APCA_PAIRS, type ApcaPair, type ApcaSolveKind } from './apca-pairs';\nimport type { TokenMap } from './derive-theme';\nimport { formatOklch } from './oklch-format';\nimport { type Mode, type Tier, TIER_THRESHOLDS } from './palette';\nimport { seedOklch } from './perceptual-ramp';\n\n/** Clamp to an integer 0–100; anything non-finite falls back. */\nexport function normalizeContrast(value: unknown, fallback = 50): number {\n return typeof value === 'number' && Number.isFinite(value)\n ? Math.round(Math.max(0, Math.min(100, value)))\n : fallback;\n}\n\n/** The Lc a pair aims for: its tier floor plus up to 15 more as contrast rises. */\nexport function contrastTarget(tier: Tier, contrast: number): number {\n return TIER_THRESHOLDS[tier] + (15 * contrast) / 100;\n}\n\nconst BISECT_STEPS = 12;\n\n/** Narrow a failing and a passing bound; returns the passing value closest to `fail`. */\nexport function bisect(\n fail: number,\n pass: number,\n passes: (value: number) => boolean\n): number {\n for (let i = 0; i < BISECT_STEPS; i++) {\n const middle = (fail + pass) / 2;\n if (passes(middle)) pass = middle;\n else fail = middle;\n }\n return pass;\n}\n\nconst token = (map: TokenMap, name: string): string => {\n const value = map[`--nx-color-${name}`];\n if (value === undefined) throw new Error(`contrast: missing ${name}`);\n return value;\n};\n\nexport function pairBackground(\n map: TokenMap,\n pair: ApcaPair\n): [number, number, number] {\n const backdrop = pair.backdrop\n ? resolveToSrgbInts(\n pair.backdrop.startsWith('#')\n ? pair.backdrop\n : token(map, pair.backdrop)\n )\n : undefined;\n return resolveToSrgbInts(token(map, pair.bg), backdrop);\n}\n\nexport function contrastForPair(map: TokenMap, pair: ApcaPair): number {\n const background = pairBackground(map, pair);\n return Math.abs(\n APCAcontrast(\n sRGBtoY(resolveToSrgbInts(token(map, pair.fg), background)),\n sRGBtoY(background)\n ) as number\n );\n}\n\nconst luminance = (color: string) => sRGBtoY(resolveToSrgbInts(color));\nconst score = (foregroundY: number, backgroundY: number) =>\n Math.abs(APCAcontrast(foregroundY, backgroundY) as number);\n\ninterface Constraint {\n backgroundY: number;\n /** Requested Lc, capped at what the black/white endpoint can reach. */\n target: number;\n}\n\n/** Constraints for one foreground, or undefined when even the endpoint misses a floor. */\nfunction constraintsFor(\n map: TokenMap,\n pairs: readonly ApcaPair[],\n contrast: number,\n endpointY: number\n): Constraint[] | undefined {\n const constraints: Constraint[] = [];\n for (const pair of pairs) {\n const backgroundY = sRGBtoY(pairBackground(map, pair));\n const reachable = score(endpointY, backgroundY);\n if (reachable < TIER_THRESHOLDS[pair.tier]) return undefined;\n const target = contrastTarget(pair.tier, contrast) + (pair.offset ?? 0);\n constraints.push({ backgroundY, target: Math.min(target, reachable) });\n }\n return constraints;\n}\n\n/** Light text keeps its designed quiet seed when that already passes; dark text is always re-solved. */\nconst keepsTextSeed = (mode: Mode, kind: ApcaSolveKind) =>\n mode === 'light' && kind === 'text';\n\nfunction solveForeground(\n seed: string,\n constraints: readonly Constraint[],\n endpoint: 0 | 1,\n keepSeed: boolean\n): string {\n const passes = (color: string) => {\n const y = luminance(color);\n return constraints.every((c) => score(y, c.backgroundY) >= c.target);\n };\n if (keepSeed && passes(seed)) return seed;\n const parsed = seedOklch(seed);\n const at = (l: number) =>\n formatOklch(clampChroma({ ...parsed, l, alpha: 1 }, 'oklch', 'p3'));\n return at(\n bisect(keepSeed ? parsed.l : 1 - endpoint, endpoint, (l) => passes(at(l)))\n );\n}\n\ninterface SolveGroup {\n kind: ApcaSolveKind;\n pairs: ApcaPair[];\n}\n\n/** Pairs grouped by the color they resolve to (`solveAs`, else their own foreground). */\nconst SOLVE_GROUPS = new Map<string, SolveGroup>();\nfor (const pair of APCA_PAIRS) {\n const key = pair.solveAs ?? pair.fg;\n const group = SOLVE_GROUPS.get(key);\n if (!group) {\n SOLVE_GROUPS.set(key, { kind: pair.kind, pairs: [pair] });\n continue;\n }\n if (group.kind !== pair.kind)\n throw new Error(\n `contrast: ${pair.fg} is '${pair.kind}' but joins '${group.kind}' group ${key}`\n );\n group.pairs.push(pair);\n}\n\n/** Pick the black/white label for a family and move any fill it can't read on to the tier floor. */\nfunction constrainFamilyFills(\n map: TokenMap,\n name: string,\n pairs: readonly ApcaPair[]\n) {\n const basePair = pairs[0];\n if (!basePair) throw new Error(`contrast: missing pairs for ${name}`);\n const baseY = luminance(token(map, basePair.bg));\n const endpoint: 0 | 1 = score(1, baseY) >= score(0, baseY) ? 1 : 0;\n map[`--nx-color-${name}`] = `oklch(${endpoint} 0 0)`;\n for (const pair of pairs) {\n const floor = TIER_THRESHOLDS[pair.tier];\n const value = token(map, pair.bg);\n if (score(endpoint, luminance(value)) >= floor) continue;\n const fill = seedOklch(value);\n const at = (l: number) =>\n formatOklch(clampChroma({ ...fill, l }, 'oklch', 'p3'));\n const readable = (l: number) => score(endpoint, luminance(at(l))) >= floor;\n map[`--nx-color-${pair.bg}`] = at(bisect(fill.l, 1 - endpoint, readable));\n }\n}\n\n/** Resolve every foreground against all its registered backgrounds, after fills and alpha composition. */\nexport function constrainColors(\n map: TokenMap,\n mode: Mode,\n contrast: number\n): TokenMap {\n for (const [name, { kind, pairs }] of SOLVE_GROUPS)\n if (kind === 'label') constrainFamilyFills(map, name, pairs);\n\n const endpoint: 0 | 1 = mode === 'dark' ? 1 : 0;\n const endpointY = luminance(`oklch(${endpoint} 0 0)`);\n for (const [name, { kind, pairs }] of SOLVE_GROUPS) {\n if (kind === 'label') continue;\n const constraints = constraintsFor(map, pairs, contrast, endpointY);\n if (constraints === undefined)\n throw new Error(`contrast: no readable ${name} in ${mode}`);\n const solved = solveForeground(\n token(map, name),\n constraints,\n endpoint,\n keepsTextSeed(mode, kind)\n );\n for (const fg of new Set(pairs.map((pair) => pair.fg).concat(name)))\n map[`--nx-color-${fg}`] = solved;\n }\n return map;\n}\n","import { APCAcontrast, sRGBtoY } from 'apca-w3';\nimport { clampChroma, converter, oklch, parse } from 'culori';\n\nconst toRgb = converter('rgb');\n\nexport type SrgbInts = [number, number, number];\n\nfunction channel(value: number): number {\n return Math.max(0, Math.min(255, Math.round(value * 255)));\n}\n\nfunction toSrgbInts(input: string): SrgbInts {\n const parsed = parse(input);\n if (!parsed) throw new Error(`apca: cannot parse color '${input}'`);\n const converted = oklch(parsed);\n if (!converted) throw new Error(`apca: cannot convert '${input}' to OKLCH`);\n const rgb = toRgb(clampChroma(converted, 'oklch', 'rgb'));\n return [channel(rgb.r), channel(rgb.g), channel(rgb.b)];\n}\n\n// Composite an 8-digit alpha hex over an opaque backdrop to rendered sRGB ints.\nexport function blendAlphaOver(hex8: string, bgInts: SrgbInts): SrgbInts {\n const h = hex8.slice(1);\n const a = parseInt(h.slice(6, 8), 16) / 255;\n const [bgR, bgG, bgB] = bgInts;\n const mix = (fg: number, bg: number) => Math.round(fg * a + bg * (1 - a));\n return [\n mix(parseInt(h.slice(0, 2), 16), bgR),\n mix(parseInt(h.slice(2, 4), 16), bgG),\n mix(parseInt(h.slice(4, 6), 16), bgB),\n ];\n}\n\nexport function resolveToSrgbInts(value: string, bgInts?: SrgbInts): SrgbInts {\n if (typeof value !== 'string') {\n throw new Error(`apca: expected string color value, got ${typeof value}`);\n }\n\n if (/^#[0-9a-fA-F]{8}$/.test(value)) {\n if (!bgInts) {\n throw new Error(\n `apca: alpha color \"${value}\" needs a backdrop to composite against`\n );\n }\n return blendAlphaOver(value, bgInts);\n }\n\n const parsed = parse(value);\n if (!parsed) throw new Error(`apca: cannot parse color '${value}'`);\n const converted = oklch(parsed);\n if (!converted) throw new Error(`apca: cannot convert '${value}'`);\n const rgb = toRgb(clampChroma(converted, 'oklch', 'rgb'));\n const alpha = rgb.alpha ?? 1;\n const ints: SrgbInts = [channel(rgb.r), channel(rgb.g), channel(rgb.b)];\n\n if (alpha < 1) {\n if (!bgInts) {\n throw new Error(\n `apca: alpha color \"${value}\" needs a backdrop to composite against`\n );\n }\n return [\n Math.round(ints[0] * alpha + bgInts[0] * (1 - alpha)),\n Math.round(ints[1] * alpha + bgInts[1] * (1 - alpha)),\n Math.round(ints[2] * alpha + bgInts[2] * (1 - alpha)),\n ];\n }\n\n return ints;\n}\n\n/**\n * Absolute APCA Lc of `foreground` on `background`. Both accept any CSS color\n * string culori can parse (hex, rgb, oklch). Inputs must be opaque — alpha is\n * dropped, not pre-blended, so a translucent ink (e.g. the text-tier alpha\n * inks) must be composited over its surface by the caller before scoring.\n */\nexport function apcaLc(foreground: string, background: string): number {\n return Math.abs(\n APCAcontrast(\n sRGBtoY(toSrgbInts(foreground)),\n sRGBtoY(toSrgbInts(background))\n ) as number\n );\n}\n","import type { Shade } from './palette';\nimport type { PrimitivePaletteName } from './primitive-palette';\n\nexport const STATUS_PALETTE_FAMILIES = {\n success: 'green',\n warning: 'orange',\n error: 'red',\n information: 'blue',\n} as const satisfies Record<string, PrimitivePaletteName>;\n\nexport const CHART_PALETTE_REFERENCES = [\n { palette: 'teal', light: '700', dark: '200' },\n { palette: 'lime', light: '700', dark: '200' },\n { palette: 'orange', light: '600', dark: '200' },\n { palette: 'rose', light: '600', dark: '200' },\n { palette: 'indigo', light: '600', dark: '200' },\n] as const satisfies readonly {\n palette: PrimitivePaletteName;\n light: Shade;\n dark: Shade;\n}[];\n","import { CHART_PALETTE_REFERENCES } from './semantic-palette-references';\n\nexport type ApcaTier = 'body' | 'ui' | 'incidental';\n\n/**\n * How the contrast solver resolves a pair's foreground.\n * - `text`: reading text; light mode keeps a seed that already passes.\n * - `label`: black/white label on a family fill; the solver moves the fill.\n * - `ink`: any other mark; the solver re-solves its lightness, keeping hue.\n */\nexport type ApcaSolveKind = 'text' | 'label' | 'ink';\n\nexport interface ApcaPair {\n /** Bare semantic token name, without the --nx-color- prefix. */\n fg: string;\n /** Bare semantic token name, without the --nx-color- prefix. */\n bg: string;\n tier: ApcaTier;\n kind: ApcaSolveKind;\n /** Opaque token or hex color underneath a translucent background. */\n backdrop?: string;\n /** Extra Lc on top of the tier target, e.g. to stagger chart series. */\n offset?: number;\n /** Solve jointly with another foreground and emit one shared color. */\n solveAs?: string;\n}\n\nexport const COLOR_FAMILIES = [\n 'primary',\n 'secondary',\n 'success',\n 'warning',\n 'error',\n 'information',\n] as const;\n\nconst CATEGORICAL_INDICES = CHART_PALETTE_REFERENCES.map(\n (_, index) => index + 1\n);\n// Each chart series asks for this much more Lc than the previous one, so\n// categories differ in lightness as well as hue.\nconst CHART_STAGGER_LC = 4.5;\n\nconst FOCUS_SURFACES = [\n 'background',\n 'container',\n 'popover',\n 'nav-background',\n 'nav-item-hover',\n 'nav-item-active',\n 'nav-border',\n] as const;\n\nconst text = (fg: string, bg: string, tier: ApcaTier): ApcaPair => ({\n fg,\n bg,\n tier,\n kind: 'text',\n});\nconst label = (fg: string, bg: string, tier: ApcaTier): ApcaPair => ({\n fg,\n bg,\n tier,\n kind: 'label',\n});\nconst ink = (fg: string, bg: string, tier: ApcaTier): ApcaPair => ({\n fg,\n bg,\n tier,\n kind: 'ink',\n});\n\nexport const APCA_PAIRS = [\n text('foreground', 'background', 'body'),\n text('foreground', 'background-hover', 'ui'),\n text('foreground', 'muted', 'ui'),\n text('muted-foreground', 'muted', 'ui'),\n text('muted-foreground-subtle', 'muted', 'incidental'),\n text('muted-foreground', 'container', 'ui'),\n text('muted-foreground-subtle', 'container', 'incidental'),\n text('foreground', 'muted-extralight', 'ui'),\n text('muted-foreground', 'muted-extralight', 'ui'),\n text('disabled-foreground', 'disabled', 'incidental'),\n text('container-foreground', 'container', 'body'),\n text('foreground', 'container', 'body'),\n text('popover-foreground', 'popover', 'body'),\n text('popover-foreground', 'popover-hover', 'ui'),\n text('foreground', 'control-background', 'ui'),\n text('foreground', 'control-background-hover', 'ui'),\n text('nav-foreground', 'nav-background', 'ui'),\n text('nav-muted-foreground', 'nav-background', 'incidental'),\n text('nav-foreground', 'nav-item-hover', 'ui'),\n text('nav-foreground', 'nav-item-active', 'ui'),\n ink('error-subtle-foreground', 'background', 'ui'),\n ink('error-subtle-foreground', 'container', 'ui'),\n ...COLOR_FAMILIES.flatMap((family) => [\n label(`${family}-foreground`, `${family}-background`, 'ui'),\n label(`${family}-foreground`, `${family}-background-hover`, 'ui'),\n label(`${family}-foreground`, `${family}-background-active`, 'ui'),\n ink(`${family}-subtle-foreground`, `${family}-subtle`, 'ui'),\n ink(`${family}-subtle-foreground`, `${family}-subtle-hover`, 'ui'),\n ink(`${family}-subtle-foreground`, `${family}-subtle-active`, 'ui'),\n ]),\n ...CATEGORICAL_INDICES.flatMap((index) =>\n ['container', 'background'].map((bg) => ({\n ...ink(`chart-categorical-${index}`, bg, 'ui'),\n offset: (index - 1) * CHART_STAGGER_LC,\n }))\n ),\n // Focus is the primary accent (components.md § Focus States), so it shares\n // one solved color with primary-subtle-foreground.\n ...FOCUS_SURFACES.flatMap((surface) => [\n {\n ...ink('focus-default', surface, 'incidental'),\n solveAs: 'primary-subtle-foreground',\n },\n ink('focus-error', surface, 'incidental'),\n ]),\n ...[\n 'background-active',\n 'container-hover',\n 'container-active',\n 'popover',\n 'popover-hover',\n 'popover-active',\n 'nav-background',\n ].flatMap((surface) => [\n text('foreground', surface, 'ui'),\n text('muted-foreground', surface, 'ui'),\n text('muted-foreground-subtle', surface, 'incidental'),\n ]),\n text('muted-foreground', 'background', 'ui'),\n text('muted-foreground-subtle', 'background', 'incidental'),\n text('container-foreground', 'container-hover', 'ui'),\n text('container-foreground', 'container-active', 'ui'),\n text('popover-foreground', 'popover-active', 'ui'),\n ...['background', 'container', 'popover'].flatMap((backdrop) => [\n { ...text('popover-foreground', 'popover-alpha', 'body'), backdrop },\n { ...text('foreground', 'background-hover-alpha', 'ui'), backdrop },\n ]),\n ...['#000000', '#ffffff'].map((backdrop) => ({\n ...text('popover-foreground', 'popover-alpha', 'body'),\n backdrop,\n })),\n] as const satisfies readonly ApcaPair[];\n","import type { Oklch } from 'culori';\n\n/** Round to `decimals` places. */\nexport function round(value: number, decimals: number): number {\n const factor = 10 ** decimals;\n return Math.round(value * factor) / factor;\n}\n\n/**\n * Format an OKLCH color to the project's spot-check string form\n * (`oklch(L C H)`, or `oklch(L C H / A)` when translucent), emitting `0` for\n * hue when chroma is 0.\n */\nexport function formatOklch(color: Oklch): string {\n const finite = (v: number | undefined) =>\n typeof v === 'number' && Number.isFinite(v) ? v : 0;\n const l = round(finite(color.l), 4);\n const c = round(finite(color.c), 4);\n const h = c && color.h !== undefined ? round(finite(color.h), 3) : 0;\n const alpha = color.alpha === undefined ? 1 : round(color.alpha, 4);\n return alpha < 1\n ? `oklch(${l} ${c} ${h} / ${alpha})`\n : `oklch(${l} ${c} ${h})`;\n}\n","import { oklch, parse } from 'culori';\n\nimport primitiveColors from '../../tokens/primitives/color.json' with { type: 'json' };\n\nexport const SHADES = [\n '50',\n '100',\n '200',\n '300',\n '400',\n '500',\n '600',\n '700',\n '800',\n '900',\n '950',\n] as const;\n\nexport type Shade = (typeof SHADES)[number];\n\nexport const PALETTE_KEYS = [\n 'slate',\n 'neutral',\n 'gray',\n 'stone',\n 'zinc',\n] as const;\n\nexport type PaletteKey = (typeof PALETTE_KEYS)[number];\n\nexport const TIER_THRESHOLDS = {\n body: 75,\n ui: 60,\n incidental: 45,\n} as const;\n\nexport type Tier = keyof typeof TIER_THRESHOLDS;\n\n/** Light/dark theme axis. */\nexport type Mode = 'light' | 'dark';\n\n/** Surface tone families an nxds theme can be seeded with. */\nexport type NxdsSurfaceTone = 'stone' | 'neutral' | 'zinc' | 'slate' | 'gray';\n\nexport interface PaletteReference {\n c: number;\n h: number;\n}\n\nfunction deriveReference(palette: PaletteKey): PaletteReference {\n const hex = primitiveColors[palette]['500'].$value;\n const parsed = parse(hex);\n if (!parsed) {\n throw new Error(`palette: cannot parse '${palette}.500' hex '${hex}'`);\n }\n const o = oklch(parsed);\n if (!o) {\n throw new Error(`palette: cannot convert '${palette}.500' to OKLCH`);\n }\n return { c: o.c ?? 0, h: o.h ?? 0 };\n}\n\nconst paletteReferenceCache = new Map<PaletteKey, PaletteReference>();\n\nexport function getPaletteReference(palette: PaletteKey): PaletteReference {\n const cached = paletteReferenceCache.get(palette);\n if (cached) return cached;\n const reference = deriveReference(palette);\n paletteReferenceCache.set(palette, reference);\n return reference;\n}\n","import { clampChroma, type Oklch, oklch, parse } from 'culori';\n\nimport { PERCEPTUAL_L_GRID } from '../token-source/perceptual-grid';\n\nimport { formatOklch } from './oklch-format';\nimport { type Shade, SHADES } from './palette';\n\n// emit ships P3 chroma (browsers gamut-map at render); sit just inside the cusp.\nconst EMIT_GAMUT = 'p3';\nconst CUSP_FRACTION = 0.95;\n\n/** Whether a string is a CSS color culori (and thus the engine) can parse. */\nexport function isColor(value: string): boolean {\n return parse(value) !== undefined;\n}\n\n/** Parse any CSS color string to OKLCH. Throws on unparseable input. */\nexport function seedOklch(input: string): Oklch {\n const parsed = parse(input);\n if (!parsed)\n throw new Error(`perceptual-ramp: cannot parse color '${input}'`);\n const converted = oklch(parsed);\n if (!converted)\n throw new Error(`perceptual-ramp: cannot convert '${input}' to OKLCH`);\n return converted;\n}\n\nexport interface RampOptions {\n /** Cap cusp chroma at the seed's own chroma so a muted accent stays muted. @default true */\n capAtSeedChroma?: boolean;\n}\n\n/** One shade: pinned L at the seed's hue, chroma at the P3 cusp (optionally capped at the seed). */\nexport function pinnedOklch(\n seedHex: string,\n shade: Shade,\n options: RampOptions = {}\n): string {\n const { capAtSeedChroma = true } = options;\n const seed = seedOklch(seedHex);\n const l = PERCEPTUAL_L_GRID[shade];\n const hue = seed.h ?? 0;\n const seedC = seed.c ?? 0;\n\n // Max chroma in P3 at this (L, hue): start past the gamut and clamp inward.\n const cuspC =\n clampChroma({ mode: 'oklch', l, c: 0.5, h: hue }, 'oklch', EMIT_GAMUT).c ??\n 0;\n let chroma = cuspC * CUSP_FRACTION;\n // Cap at the seed's own chroma so a muted accent stays muted — and an\n // achromatic seed (seedC === 0) stays fully neutral instead of picking up the\n // fallback hue at full cusp chroma.\n if (capAtSeedChroma) chroma = Math.min(chroma, seedC);\n\n const target: Oklch = { mode: 'oklch', l, c: chroma, h: hue };\n return formatOklch(clampChroma(target, 'oklch', EMIT_GAMUT));\n}\n\nexport type Ramp = Record<Shade, string>;\n\n/** Full 50→950 ramp from one seed color. */\nexport function rampFromSeed(seedHex: string, options: RampOptions = {}): Ramp {\n const ramp: Partial<Ramp> = {};\n for (const shade of SHADES)\n ramp[shade] = pinnedOklch(seedHex, shade, options);\n return ramp as Ramp;\n}\n","import { clampChroma, converter, type Oklch, oklch, parse } from 'culori';\n\nimport type { Shade } from '../lib/palette.ts';\n\nimport flatGrid from './perceptual-grid.json' with { type: 'json' };\nimport hueGrid from './perceptual-grid-hue.json' with { type: 'json' };\n\n// emit ships P3 chroma; audit scores in sRGB (legacy-display equivalent)\nconst EMIT_GAMUT = 'p3';\nconst AUDIT_GAMUT = 'rgb';\n\nconst toRgb = converter('rgb');\n\nexport const PERCEPTUAL_L_GRID: Readonly<Record<Shade, number>> =\n Object.freeze(flatGrid);\n\nconst PERCEPTUAL_L_GRID_HUE: Readonly<\n Record<string, Readonly<Record<Shade, number>>>\n> = Object.freeze(\n Object.fromEntries(\n Object.entries(hueGrid).map(([name, curve]) => [name, Object.freeze(curve)])\n )\n);\n\nconst CUSP_FRACTION = 0.95; // sit just inside the P3 cusp for render safety\n\nconst SHADE_KEY_RE = /^(50|100|200|300|400|500|600|700|800|900|950)$/;\n\nexport function isPaletteShadeKey(key: unknown): key is Shade {\n return typeof key === 'string' && SHADE_KEY_RE.test(key);\n}\n\nfunction round(value: number, decimals: number) {\n const factor = 10 ** decimals;\n return Math.round(value * factor) / factor;\n}\n\nfunction formatPaletteOklch({ l, c, h, alpha }: Oklch) {\n const finite = (v: number | undefined) =>\n v !== undefined && Number.isFinite(v) ? v : 0;\n const lRounded = round(finite(l), 4);\n const cRounded = round(finite(c), 4);\n // Hue is undefined when chroma is 0 (achromatic). Emit 0 rather than `none`\n // so consuming CSS stays compatible with the project's spot-check format.\n const hRounded = c && h !== undefined ? round(finite(h), 3) : 0;\n const base = `oklch(${lRounded} ${cRounded} ${hRounded}`;\n if (alpha !== undefined && alpha < 1) {\n return `${base} / ${round(alpha, 4)})`;\n }\n return `${base})`;\n}\n\nfunction parseToOklch(hex: string): Oklch {\n const parsed = parse(hex);\n if (!parsed) {\n throw new Error(`palette: cannot parse color \"${hex}\"`);\n }\n return oklch(parsed);\n}\n\nfunction computePinnedOklch(\n hex: string,\n shade: string,\n palette?: string,\n reportGamutClip?: (message: string) => void\n): Oklch {\n const hueCurve = palette ? PERCEPTUAL_L_GRID_HUE[palette] : undefined;\n const pinnedL = isPaletteShadeKey(shade)\n ? (hueCurve ?? PERCEPTUAL_L_GRID)[shade]\n : undefined;\n if (pinnedL === undefined) {\n throw new Error(`palette: unknown shade \"${shade}\" for ${hex}`);\n }\n\n const source = parseToOklch(hex);\n\n // Re-pitched hues take chroma at the P3 cusp for the (hue, pinned-L) pair —\n // pale near white, vivid at the peak — driven by the gamut, not the source\n // hex. Every other palette keeps its source chroma (flat-grid behaviour).\n let chroma = source.c ?? 0;\n if (hueCurve) {\n const cuspC =\n clampChroma(\n { mode: 'oklch', l: pinnedL, c: 0.5, h: source.h },\n 'oklch',\n EMIT_GAMUT\n ).c ?? 0;\n chroma = cuspC * CUSP_FRACTION;\n }\n\n const target: Oklch = {\n mode: 'oklch',\n l: pinnedL,\n c: chroma,\n h: source.h,\n ...(source.alpha !== undefined ? { alpha: source.alpha } : {}),\n };\n\n const clamped = clampChroma(target, 'oklch', EMIT_GAMUT);\n\n if (!hueCurve) {\n const originalC = target.c;\n const clampedC = clamped.c ?? 0;\n if (originalC > 0 && (originalC - clampedC) / originalC > 0.2) {\n reportGamutClip?.(\n `palette: P3 gamut clip on ${hex} at shade ${shade} — C ${originalC.toFixed(4)} → ${clampedC.toFixed(4)}`\n );\n }\n }\n\n return clamped;\n}\n\nexport function hexToOklchPinned(\n hex: string,\n shade: string,\n palette?: string,\n reportGamutClip?: (message: string) => void\n): string {\n return formatPaletteOklch(\n computePinnedOklch(hex, shade, palette, reportGamutClip)\n );\n}\n\nexport function hexToOklchMechanical(hex: string): string {\n return formatPaletteOklch(parseToOklch(hex));\n}\n\nfunction oklchToSrgbInts(oklchColor: Oklch): [number, number, number] {\n const rgb = toRgb(clampChroma(oklchColor, 'oklch', AUDIT_GAMUT));\n if ((rgb.alpha ?? 1) < 1) {\n // apca-w3 `sRGBtoY` reads only [r,g,b]; an alpha-bearing color must be\n // pre-blended against its actual background before contrast computation.\n throw new Error(\n 'palette: oklchToSrgbInts received alpha-bearing color; pre-blend before contrast computation'\n );\n }\n const channel = (v: number) =>\n Math.max(0, Math.min(255, Math.round(v * 255)));\n return [channel(rgb.r), channel(rgb.g), channel(rgb.b)];\n}\n\n// Audit conversion retains the unrounded coordinates; parsing emitted CSS\n// first would change some sRGB integer channels at rounding boundaries.\nexport function hexToSrgbInts(\n hex: string,\n shade?: string,\n palette?: string\n): [number, number, number] {\n if (shade !== undefined) {\n return oklchToSrgbInts(computePinnedOklch(hex, shade, palette));\n }\n return oklchToSrgbInts(parseToOklch(hex));\n}\n","{\n \"50\": 0.985,\n \"100\": 0.945,\n \"200\": 0.87,\n \"300\": 0.765,\n \"400\": 0.66,\n \"500\": 0.553,\n \"600\": 0.46,\n \"700\": 0.385,\n \"800\": 0.297,\n \"900\": 0.207,\n \"950\": 0.118\n}\n","{\n \"rose\": {\n \"50\": 0.971,\n \"100\": 0.936,\n \"200\": 0.885,\n \"300\": 0.81,\n \"400\": 0.71,\n \"500\": 0.64,\n \"600\": 0.58,\n \"700\": 0.51,\n \"800\": 0.42,\n \"900\": 0.34,\n \"950\": 0.25\n },\n \"red\": {\n \"50\": 0.971,\n \"100\": 0.936,\n \"200\": 0.885,\n \"300\": 0.808,\n \"400\": 0.704,\n \"500\": 0.637,\n \"600\": 0.577,\n \"700\": 0.505,\n \"800\": 0.42,\n \"900\": 0.34,\n \"950\": 0.25\n },\n \"orange\": {\n \"50\": 0.98,\n \"100\": 0.955,\n \"200\": 0.91,\n \"300\": 0.84,\n \"400\": 0.78,\n \"500\": 0.71,\n \"600\": 0.62,\n \"700\": 0.52,\n \"800\": 0.43,\n \"900\": 0.34,\n \"950\": 0.25\n },\n \"amber\": {\n \"50\": 0.985,\n \"100\": 0.96,\n \"200\": 0.92,\n \"300\": 0.87,\n \"400\": 0.84,\n \"500\": 0.77,\n \"600\": 0.68,\n \"700\": 0.57,\n \"800\": 0.46,\n \"900\": 0.35,\n \"950\": 0.24\n },\n \"yellow\": {\n \"50\": 0.985,\n \"100\": 0.96,\n \"200\": 0.92,\n \"300\": 0.88,\n \"400\": 0.86,\n \"500\": 0.8,\n \"600\": 0.72,\n \"700\": 0.6,\n \"800\": 0.47,\n \"900\": 0.35,\n \"950\": 0.23\n },\n \"lime\": {\n \"50\": 0.985,\n \"100\": 0.965,\n \"200\": 0.93,\n \"300\": 0.9,\n \"400\": 0.88,\n \"500\": 0.82,\n \"600\": 0.73,\n \"700\": 0.61,\n \"800\": 0.49,\n \"900\": 0.37,\n \"950\": 0.26\n },\n \"green\": {\n \"50\": 0.982,\n \"100\": 0.96,\n \"200\": 0.925,\n \"300\": 0.87,\n \"400\": 0.79,\n \"500\": 0.72,\n \"600\": 0.62,\n \"700\": 0.52,\n \"800\": 0.43,\n \"900\": 0.34,\n \"950\": 0.25\n },\n \"emerald\": {\n \"50\": 0.982,\n \"100\": 0.96,\n \"200\": 0.925,\n \"300\": 0.87,\n \"400\": 0.79,\n \"500\": 0.72,\n \"600\": 0.62,\n \"700\": 0.52,\n \"800\": 0.43,\n \"900\": 0.34,\n \"950\": 0.25\n },\n \"teal\": {\n \"50\": 0.98,\n \"100\": 0.945,\n \"200\": 0.9,\n \"300\": 0.85,\n \"400\": 0.79,\n \"500\": 0.72,\n \"600\": 0.62,\n \"700\": 0.52,\n \"800\": 0.43,\n \"900\": 0.34,\n \"950\": 0.25\n },\n \"cyan\": {\n \"50\": 0.98,\n \"100\": 0.955,\n \"200\": 0.91,\n \"300\": 0.85,\n \"400\": 0.79,\n \"500\": 0.72,\n \"600\": 0.63,\n \"700\": 0.53,\n \"800\": 0.44,\n \"900\": 0.35,\n \"950\": 0.26\n },\n \"sky\": {\n \"50\": 0.975,\n \"100\": 0.945,\n \"200\": 0.895,\n \"300\": 0.82,\n \"400\": 0.74,\n \"500\": 0.67,\n \"600\": 0.58,\n \"700\": 0.5,\n \"800\": 0.42,\n \"900\": 0.34,\n \"950\": 0.25\n },\n \"blue\": {\n \"50\": 0.97,\n \"100\": 0.932,\n \"200\": 0.882,\n \"300\": 0.809,\n \"400\": 0.707,\n \"500\": 0.623,\n \"600\": 0.546,\n \"700\": 0.488,\n \"800\": 0.41,\n \"900\": 0.33,\n \"950\": 0.25\n },\n \"indigo\": {\n \"50\": 0.96,\n \"100\": 0.925,\n \"200\": 0.865,\n \"300\": 0.78,\n \"400\": 0.67,\n \"500\": 0.57,\n \"600\": 0.49,\n \"700\": 0.42,\n \"800\": 0.35,\n \"900\": 0.28,\n \"950\": 0.21\n },\n \"violet\": {\n \"50\": 0.965,\n \"100\": 0.93,\n \"200\": 0.875,\n \"300\": 0.79,\n \"400\": 0.68,\n \"500\": 0.59,\n \"600\": 0.51,\n \"700\": 0.44,\n \"800\": 0.37,\n \"900\": 0.3,\n \"950\": 0.22\n },\n \"purple\": {\n \"50\": 0.967,\n \"100\": 0.935,\n \"200\": 0.88,\n \"300\": 0.8,\n \"400\": 0.7,\n \"500\": 0.61,\n \"600\": 0.53,\n \"700\": 0.46,\n \"800\": 0.39,\n \"900\": 0.32,\n \"950\": 0.24\n },\n \"fuchsia\": {\n \"50\": 0.97,\n \"100\": 0.94,\n \"200\": 0.89,\n \"300\": 0.81,\n \"400\": 0.71,\n \"500\": 0.63,\n \"600\": 0.56,\n \"700\": 0.49,\n \"800\": 0.41,\n \"900\": 0.33,\n \"950\": 0.25\n },\n \"pink\": {\n \"50\": 0.97,\n \"100\": 0.94,\n \"200\": 0.89,\n \"300\": 0.82,\n \"400\": 0.72,\n \"500\": 0.64,\n \"600\": 0.57,\n \"700\": 0.5,\n \"800\": 0.42,\n \"900\": 0.34,\n \"950\": 0.25\n }\n}\n","import typographyTokens from '../../tokens/primitives/typography/typography-default.json';\n\nimport { normalizeContrast } from './contrast';\nimport type { ThemeDerivationInput, ThemeSeeds } from './derive-theme';\nimport type { NxdsSurfaceTone } from './palette';\nimport { isColor } from './perceptual-ramp';\nimport { inRuntimeLayer } from './runtime-layer';\n\ntype ModeSeeds = Pick<ThemeSeeds, 'background' | 'foreground'>;\n\nexport type NxdsAppearanceMode = 'light' | 'dark' | 'system';\nexport type NxdsDensity =\n | 'tight'\n | 'compact'\n | 'default'\n | 'comfortable'\n | 'relaxed'\n | 'spacious';\nexport type NxdsCorners =\n | 'square'\n | 'subtle'\n | 'smooth'\n | 'round'\n | 'extra-round';\nexport type NxdsElevation = 'flat' | 'quiet' | 'soft' | 'standard' | 'strong';\nexport type NxdsStroke = 'fine' | 'normal' | 'strong';\n\nexport interface NxdsAppearancePrefs {\n uiFont: string;\n codeFont: string;\n uiFontSize: number;\n codeFontSize: number;\n reduceMotion: boolean;\n pointerCursors: boolean;\n fontSmoothing: boolean;\n}\n\nexport interface NxdsAppearanceState {\n mode: NxdsAppearanceMode;\n brandColor: string;\n surfaceTone: NxdsSurfaceTone;\n lightContrast: number;\n darkContrast: number;\n density: NxdsDensity;\n corners: NxdsCorners;\n elevation: NxdsElevation;\n stroke: NxdsStroke;\n prefs: NxdsAppearancePrefs;\n}\n\n/** An appearance field that picks one of a token family's preset modes. */\nexport type NxdsPresetField = 'density' | 'corners' | 'elevation' | 'stroke';\n\nexport const DEFAULT_BRAND_COLOR = '#0a0a0a';\n\nexport const BASE_TONE_OPTIONS = [\n { value: 'stone', label: 'Stone', color: '#747271' },\n { value: 'neutral', label: 'Neutral', color: '#737373' },\n { value: 'zinc', label: 'Zinc', color: '#717175' },\n { value: 'slate', label: 'Slate', color: '#717376' },\n { value: 'gray', label: 'Gray', color: '#707274' },\n] as const satisfies readonly {\n value: NxdsSurfaceTone;\n label: string;\n color: string;\n}[];\n\nexport const BASE_TONE_SEEDS: Record<\n NxdsSurfaceTone,\n { light: ModeSeeds; dark: ModeSeeds }\n> = {\n stone: {\n light: { background: '#fafaf9', foreground: '#1c1917' },\n dark: { background: '#1c1917', foreground: '#fafaf9' },\n },\n neutral: {\n light: { background: '#fafafa', foreground: '#171717' },\n dark: { background: '#171717', foreground: '#fafafa' },\n },\n zinc: {\n light: { background: '#fafafa', foreground: '#09090b' },\n dark: { background: '#09090b', foreground: '#fafafa' },\n },\n slate: {\n light: { background: '#f8fafc', foreground: '#0f172a' },\n dark: { background: '#0f172a', foreground: '#f8fafc' },\n },\n gray: {\n light: { background: '#f9fafb', foreground: '#111827' },\n dark: { background: '#111827', foreground: '#f9fafb' },\n },\n};\n\nexport const DENSITY_OPTIONS = [\n { value: 'tight', label: 'Tight' },\n { value: 'compact', label: 'Compact' },\n { value: 'default', label: 'Default' },\n { value: 'comfortable', label: 'Comfortable' },\n { value: 'relaxed', label: 'Relaxed' },\n { value: 'spacious', label: 'Spacious' },\n] as const satisfies readonly { value: NxdsDensity; label: string }[];\n\nexport const CORNER_OPTIONS = [\n { value: 'square', label: 'Square' },\n { value: 'subtle', label: 'Subtle' },\n { value: 'smooth', label: 'Smooth' },\n { value: 'round', label: 'Round' },\n { value: 'extra-round', label: 'Extra Round' },\n] as const satisfies readonly { value: NxdsCorners; label: string }[];\n\nexport const ELEVATION_OPTIONS = [\n { value: 'flat', label: 'Flat' },\n { value: 'quiet', label: 'Quiet' },\n { value: 'soft', label: 'Soft' },\n { value: 'standard', label: 'Standard' },\n { value: 'strong', label: 'Strong' },\n] as const satisfies readonly { value: NxdsElevation; label: string }[];\n\nexport const STROKE_OPTIONS = [\n { value: 'fine', label: 'Fine' },\n { value: 'normal', label: 'Normal' },\n { value: 'strong', label: 'Strong' },\n] as const satisfies readonly { value: NxdsStroke; label: string }[];\n\nexport const DEFAULT_NXDS_APPEARANCE: NxdsAppearanceState = {\n mode: 'light',\n brandColor: DEFAULT_BRAND_COLOR,\n surfaceTone: 'zinc',\n lightContrast: 50,\n darkContrast: 50,\n density: 'default',\n corners: 'subtle',\n elevation: 'quiet',\n stroke: 'normal',\n prefs: {\n uiFont: '-apple-system, BlinkMacSystemFont, \"Segoe UI\", sans-serif',\n codeFont: 'ui-monospace, \"SF Mono\", Menlo, monospace',\n uiFontSize: 14,\n codeFontSize: 12,\n reduceMotion: false,\n pointerCursors: false,\n fontSmoothing: false,\n },\n};\n\nconst FONT_PX_MIN = 8;\nconst FONT_PX_MAX = 32;\n\nconst APPEARANCE_MODES = new Set<NxdsAppearanceMode>([\n 'light',\n 'dark',\n 'system',\n]);\nconst SURFACE_TONES = new Set<NxdsSurfaceTone>(\n BASE_TONE_OPTIONS.map((option) => option.value)\n);\nconst DENSITIES = new Set<NxdsDensity>(\n DENSITY_OPTIONS.map((option) => option.value)\n);\nconst CORNERS = new Set<NxdsCorners>(\n CORNER_OPTIONS.map((option) => option.value)\n);\nconst ELEVATIONS = new Set<NxdsElevation>(\n ELEVATION_OPTIONS.map((option) => option.value)\n);\nconst STROKES = new Set<NxdsStroke>(\n STROKE_OPTIONS.map((option) => option.value)\n);\n\nconst isRecord = (value: unknown): value is Record<string, unknown> =>\n typeof value === 'object' && value !== null;\n\n// Font families are interpolated into a `<style>` rule, so reject characters that\n// could break out of the declaration (`;` `{` `}`) or open a tag (`<`).\nconst FONT_FAMILY_UNSAFE = /[;{}<]/;\nconst fontFamilyOr = (value: unknown, fallback: string): string =>\n typeof value === 'string' &&\n value.length > 0 &&\n !FONT_FAMILY_UNSAFE.test(value)\n ? value\n : fallback;\n\nconst boolOr = (value: unknown, fallback: boolean): boolean =>\n typeof value === 'boolean' ? value : fallback;\n\nconst enumOr = <T extends string>(\n value: unknown,\n values: ReadonlySet<T>,\n fallback: T\n): T =>\n typeof value === 'string' && values.has(value as T) ? (value as T) : fallback;\n\nconst clampFontSize = (value: unknown, fallback: number): number =>\n typeof value === 'number' && Number.isFinite(value) && value > 0\n ? Math.min(FONT_PX_MAX, Math.max(FONT_PX_MIN, value))\n : fallback;\n\nfunction formatPx(value: number): string {\n return `${Number(value.toFixed(4))}px`;\n}\n\nfunction typographyScaleVariables(uiPx: number): string {\n const scale = uiPx / DEFAULT_NXDS_APPEARANCE.prefs.uiFontSize;\n const sizeVars = Object.entries(typographyTokens.size).map(\n ([name, token]) =>\n ` --nx-typography-size-${name}: ${formatPx(token.$value.value * scale)};`\n );\n const lineHeightVars = Object.entries(typographyTokens['line-height']).map(\n ([name, token]) =>\n ` --nx-typography-line-height-${name}: ${formatPx(token.$value.value * scale)};`\n );\n\n return [...sizeVars, ...lineHeightVars].join('\\n');\n}\n\n// Retired public-mode codename -> friendly, applied to persisted state on read\n// (see normalizeAppearanceModeIds). Internal; correctness is covered behaviorally\n// by the sanitize codename->friendly tests, so it is not part of the public API.\nconst PUBLIC_MODE_RENAME: Record<NxdsPresetField, Record<string, string>> = {\n density: {\n nova: 'compact',\n mira: 'default',\n luma: 'comfortable',\n sera: 'spacious',\n },\n corners: {\n sharp: 'square',\n mellow: 'round',\n },\n elevation: {\n maia: 'quiet',\n mira: 'standard',\n nova: 'strong',\n },\n stroke: {\n maia: 'fine',\n vega: 'normal',\n nova: 'strong',\n },\n};\n\nexport function normalizeAppearanceModeIds(raw: unknown): unknown {\n if (!isRecord(raw)) return raw;\n const out: Record<string, unknown> = { ...raw };\n for (const [field, map] of Object.entries(PUBLIC_MODE_RENAME)) {\n const value = out[field];\n if (\n typeof value === 'string' &&\n Object.prototype.hasOwnProperty.call(map, value)\n )\n out[field] = map[value];\n }\n return out;\n}\n\nexport function sanitizeNxdsAppearancePrefs(raw: unknown): NxdsAppearancePrefs {\n const o = isRecord(raw) ? raw : {};\n const d = DEFAULT_NXDS_APPEARANCE.prefs;\n return {\n uiFont: fontFamilyOr(o.uiFont, d.uiFont),\n codeFont: fontFamilyOr(o.codeFont, d.codeFont),\n uiFontSize: clampFontSize(o.uiFontSize, d.uiFontSize),\n codeFontSize: clampFontSize(o.codeFontSize, d.codeFontSize),\n reduceMotion: boolOr(o.reduceMotion, d.reduceMotion),\n pointerCursors: boolOr(o.pointerCursors, d.pointerCursors),\n fontSmoothing: boolOr(o.fontSmoothing, d.fontSmoothing),\n };\n}\n\nexport function sanitizeNxdsAppearance(rawInput: unknown): NxdsAppearanceState {\n if (!isRecord(rawInput)) return DEFAULT_NXDS_APPEARANCE;\n const raw = normalizeAppearanceModeIds(rawInput) as Record<string, unknown>;\n const d = DEFAULT_NXDS_APPEARANCE;\n return {\n mode: enumOr(raw.mode, APPEARANCE_MODES, d.mode),\n brandColor:\n typeof raw.brandColor === 'string' && isColor(raw.brandColor)\n ? raw.brandColor\n : d.brandColor,\n surfaceTone: enumOr(raw.surfaceTone, SURFACE_TONES, d.surfaceTone),\n lightContrast: normalizeContrast(raw.lightContrast, d.lightContrast),\n darkContrast: normalizeContrast(raw.darkContrast, d.darkContrast),\n density: enumOr(raw.density, DENSITIES, d.density),\n corners: enumOr(raw.corners, CORNERS, d.corners),\n elevation: enumOr(raw.elevation, ELEVATIONS, d.elevation),\n stroke: enumOr(raw.stroke, STROKES, d.stroke),\n prefs: sanitizeNxdsAppearancePrefs(raw.prefs),\n };\n}\n\nexport function createNxdsThemeContract(\n state: NxdsAppearanceState\n): ThemeDerivationInput {\n const tone = BASE_TONE_SEEDS[state.surfaceTone];\n return {\n surfaceTone: state.surfaceTone,\n contrast: { light: state.lightContrast, dark: state.darkContrast },\n light: { accent: state.brandColor, ...tone.light },\n dark: { accent: state.brandColor, ...tone.dark },\n };\n}\n\nexport function appearancePrefsToCss(prefs: NxdsAppearancePrefs): string {\n const uiPx = clampFontSize(\n prefs.uiFontSize,\n DEFAULT_NXDS_APPEARANCE.prefs.uiFontSize\n );\n const codePx = clampFontSize(\n prefs.codeFontSize,\n DEFAULT_NXDS_APPEARANCE.prefs.codeFontSize\n );\n // Font and type size reach only nxds. The toggles below apply to the whole\n // page, host included, when the user turns them on.\n const blocks: string[] = [\n inRuntimeLayer(`:root {\n --nx-typography-family-font-sans: ${prefs.uiFont};\n --nx-typography-family-font-mono: ${prefs.codeFont};\n${typographyScaleVariables(uiPx)}\n}`),\n `.nx\\\\:font-mono, .nx\\\\:typography-code-block, .nx\\\\:typography-code-inline { font-size: ${codePx}px; }`,\n ];\n if (prefs.fontSmoothing) {\n blocks.push(\n `html { -webkit-font-smoothing: antialiased; -moz-osx-font-smoothing: grayscale; }`\n );\n }\n if (prefs.pointerCursors) {\n blocks.push(\n `button:not(:disabled), [role=\"button\"], [role=\"tab\"], [role=\"radio\"], a[href], summary { cursor: pointer; }`\n );\n }\n if (prefs.reduceMotion) {\n blocks.push(\n `*, *::before, *::after { animation-duration: 0.01ms !important; animation-iteration-count: 1 !important; transition-duration: 0.01ms !important; scroll-behavior: auto !important; }`\n );\n }\n return blocks.join('\\n');\n}\n","import { clampChroma, type Oklch } from 'culori';\n\nimport { apcaLc } from './apca';\nimport { APCA_PAIRS } from './apca-pairs';\nimport {\n bisect,\n constrainColors,\n contrastTarget,\n normalizeContrast,\n} from './contrast';\nimport { formatOklch } from './oklch-format';\nimport {\n type Mode,\n type NxdsSurfaceTone,\n type Shade,\n TIER_THRESHOLDS,\n} from './palette';\nimport { rampFromSeed, seedOklch } from './perceptual-ramp';\nimport { getPaletteRamp, getPaletteShade } from './primitive-palette';\nimport { inRuntimeLayer } from './runtime-layer';\nimport {\n CHART_PALETTE_REFERENCES,\n STATUS_PALETTE_FAMILIES,\n} from './semantic-palette-references';\nimport {\n anchorToStep,\n DARK_SURFACE_LADDER,\n LIGHT_SURFACE_LADDER,\n SURFACE_TOKENS,\n SURFACE_TONE,\n type SurfaceToken,\n} from './surface-ladder';\n\nexport interface ThemeSeeds {\n /** Drives the primary family ramp. */\n accent: string;\n /** Drives surface lightness. Hue/chroma come from `surfaceTone`. */\n background: string;\n /** Drives text hue/lightness; tinted surface tones cap text chroma. */\n foreground: string;\n}\n\n/** The derivation seeds `deriveTheme` consumes — no display preference. */\nexport interface ThemeDerivationInput {\n surfaceTone?: NxdsSurfaceTone;\n light: ThemeSeeds;\n dark: ThemeSeeds;\n /** 0–100 per mode. Higher values strengthen surface and content contrast. */\n contrast: {\n light: number;\n dark: number;\n };\n}\n\nexport interface NxdsThemeContract extends ThemeDerivationInput {\n /** Consumer display preference; not read by `deriveTheme`. */\n appearance: 'light' | 'dark' | 'system';\n}\n\nexport type TokenMap = Record<string, string>;\nexport interface DerivedTheme {\n light: TokenMap;\n dark: TokenMap;\n}\n\nconst clamp01 = (l: number) => Math.max(0.03, Math.min(1, l));\n\ninterface ContrastProfile {\n surfaceDelta: number;\n borderAlpha: number;\n hoverAlpha: number;\n}\n\n// Border and hover opacities hit their `anchor` value at this contrast and\n// interpolate linearly on either side of it.\nconst CONTRAST_ANCHOR = 60;\n\nfunction anchoredContrast(\n contrast: number,\n min: number,\n anchor: number,\n max: number\n): number {\n const value =\n contrast <= CONTRAST_ANCHOR\n ? min + ((anchor - min) * contrast) / CONTRAST_ANCHOR\n : anchor +\n ((max - anchor) * (contrast - CONTRAST_ANCHOR)) /\n (100 - CONTRAST_ANCHOR);\n return Number(value.toFixed(4));\n}\n\nfunction contrastProfile(mode: Mode, contrast: number): ContrastProfile {\n const dark = mode === 'dark';\n return {\n surfaceDelta: 0.02 + (((dark ? 0.03 : 0.05) - 0.02) * contrast) / 100,\n borderAlpha: anchoredContrast(\n contrast,\n dark ? 0.12 : 0.06,\n dark ? 0.1882 : 0.0941,\n dark ? 0.2337 : 0.1168\n ),\n hoverAlpha: anchoredContrast(\n contrast,\n dark ? 0.04 : 0.035,\n 0.0627,\n dark ? 0.09 : 0.085\n ),\n };\n}\n\nconst WHITE_BASE = 'oklch(1 0 0)';\n\nconst isSurfaceToken = (name: string): name is SurfaceToken =>\n (SURFACE_TOKENS as readonly string[]).includes(name);\n\n/** Opaque surface tiers derived from the background seed + contrast Δ. */\nexport function deriveSurfaces(\n backgroundHex: string,\n surfaceTone: NxdsSurfaceTone,\n mode: Mode,\n delta: number,\n contrast = 50\n): TokenMap {\n const tone = SURFACE_TONE[surfaceTone];\n const dark = mode === 'dark';\n const anchorL = dark\n ? Math.max(0.08, Math.min(0.32, seedOklch(backgroundHex).l))\n : 1;\n const baseC = dark ? tone.darkC : tone.lightC;\n const out: TokenMap = {};\n const ladder = dark ? DARK_SURFACE_LADDER : LIGHT_SURFACE_LADDER;\n const surfaceAt = (token: SurfaceToken, spacing: number) => {\n const step = anchorToStep(ladder[token]);\n const l = clamp01(anchorL + step * spacing);\n const c = !dark && l >= 1 ? 0 : baseC;\n return formatOklch(\n clampChroma({ mode: 'oklch', l, c, h: tone.h }, 'oklch', 'p3')\n );\n };\n const endpoint = dark ? 'oklch(1 0 0)' : 'oklch(0 0 0)';\n const page = surfaceAt('background', 0);\n const pageMaximum = apcaLc(endpoint, page);\n const surfacePairs = APCA_PAIRS.flatMap(({ bg, tier, backdrop }) =>\n !backdrop && isSurfaceToken(bg) ? [{ bg, tier }] : []\n );\n const fits = (spacing: number) =>\n surfacePairs.every(\n ({ bg, tier }) =>\n apcaLc(endpoint, surfaceAt(bg, spacing)) >=\n (dark\n ? Math.min(contrastTarget(tier, contrast), pageMaximum)\n : TIER_THRESHOLDS[tier])\n );\n const spacing = fits(delta) ? delta : bisect(delta, 0, fits);\n for (const token of SURFACE_TOKENS)\n out[`--nx-color-${token}`] = surfaceAt(token, spacing);\n out['--nx-color-control-thumb'] = 'oklch(1 0 0)';\n return out;\n}\n\n/**\n * Text seed `quiet` of the way from the foreground toward its surface (softer =\n * lower contrast); `quiet = 0` is the foreground itself. The contrast solver\n * moves it back toward the foreground only as far as legibility requires.\n */\nfunction quietText(fg: Oklch, surfaceColor: string, quiet: number): string {\n const surfL = seedOklch(surfaceColor).l ?? 0;\n const fgL = fg.l ?? 0;\n return formatOklch({\n mode: 'oklch',\n l: clamp01(fgL + (surfL - fgL) * quiet),\n c: fg.c ?? 0,\n h: fg.h ?? 0,\n });\n}\n\n/** Each text token: the surface it sits on and how quiet to aim. */\nconst TEXT_ON: Record<string, { surface: string; quiet: number }> = {\n 'container-foreground': { surface: '--nx-color-container', quiet: 0 },\n 'popover-foreground': { surface: '--nx-color-popover', quiet: 0 },\n 'nav-foreground': { surface: '--nx-color-nav-background', quiet: 0 },\n 'nav-muted-foreground': { surface: '--nx-color-nav-background', quiet: 0.4 },\n 'disabled-foreground': { surface: '--nx-color-disabled', quiet: 0.5 },\n 'muted-foreground': { surface: '--nx-color-background', quiet: 0.5 },\n 'muted-foreground-subtle': { surface: '--nx-color-background', quiet: 0.6 },\n};\n\n/** Text seeds; the contrast solver makes them legible on every registered background. */\nexport function deriveText(\n foregroundHex: string,\n surfaces: TokenMap,\n mode: Mode\n): TokenMap {\n const fg = seedOklch(foregroundHex);\n // A fixed light reference keeps text strength independent of moving surfaces.\n const textSurface = (name: string) =>\n mode === 'light' ? WHITE_BASE : (surfaces[name] ?? foregroundHex);\n const out: TokenMap = { '--nx-color-foreground': formatOklch(fg) };\n for (const [token, { surface, quiet }] of Object.entries(TEXT_ON))\n out[`--nx-color-${token}`] = quietText(fg, textSurface(surface), quiet);\n return out;\n}\n\n/**\n * Fill, subtle, and border seeds for a named color family. The contrast solver\n * adds the black/white `-foreground` label and resolves `-subtle-foreground`.\n */\nexport function deriveFamily(\n name: string,\n ramp: Readonly<Record<Shade, string>>,\n mode: Mode\n): TokenMap {\n const dark = mode === 'dark';\n const p = `--nx-color-${name}`;\n const activeBorderToken =\n name in STATUS_PALETTE_FAMILIES\n ? `--nx-color-border-${name}-active`\n : `${p}-border-active`;\n return {\n [`${p}-background`]: ramp['600'],\n [`${p}-background-hover`]: ramp['700'],\n [`${p}-background-active`]: ramp['800'],\n [`${p}-disabled`]: dark ? ramp['950'] : ramp['300'],\n [`${p}-subtle`]: dark ? ramp['950'] : ramp['50'],\n [`${p}-subtle-foreground`]: dark ? ramp['300'] : ramp['600'],\n [`${p}-subtle-hover`]: dark ? ramp['900'] : ramp['100'],\n [`${p}-subtle-active`]: dark ? ramp['800'] : ramp['200'],\n [`${p}-border`]: dark ? ramp['700'] : ramp['200'],\n [activeBorderToken]: dark ? ramp['500'] : ramp['400'],\n };\n}\n\nfunction deriveStatus(mode: Mode): TokenMap {\n return Object.assign(\n {},\n ...Object.entries(STATUS_PALETTE_FAMILIES).map(([family, palette]) =>\n deriveFamily(family, getPaletteRamp(palette), mode)\n )\n );\n}\n\nfunction deriveChart(mode: Mode): TokenMap {\n return Object.fromEntries(\n CHART_PALETTE_REFERENCES.map((reference, index) => [\n `--nx-color-chart-categorical-${index + 1}`,\n getPaletteShade(reference.palette, reference[mode]),\n ])\n );\n}\n\nfunction deriveAlpha(\n surfaceTone: NxdsSurfaceTone,\n mode: Mode,\n profile: ContrastProfile\n): TokenMap {\n const tone = SURFACE_TONE[surfaceTone];\n const dark = mode === 'dark';\n const toneInk = (alpha: number) =>\n formatOklch({ mode: 'oklch', l: 0.13, c: tone.darkC, h: tone.h, alpha });\n const contrastInk = (alpha: number) =>\n formatOklch({ mode: 'oklch', l: dark ? 1 : 0.1448, c: 0, h: 0, alpha });\n\n return {\n '--nx-color-overlay': toneInk(dark ? 0.8471 : 0.7529),\n '--nx-color-popover-backdrop': toneInk(0.9098),\n '--nx-color-border-default-alpha': toneInk(profile.borderAlpha),\n '--nx-color-background-hover-alpha': toneInk(profile.hoverAlpha),\n '--nx-color-border-hairline': contrastInk(0.0941),\n '--nx-color-border-default': contrastInk(profile.borderAlpha),\n '--nx-color-border-disabled': contrastInk(profile.borderAlpha),\n };\n}\n\n// P3 cusp gamut for the solid fill, matching the perceptual ramp's emit target.\nconst FILL_GAMUT = 'p3';\n// The primary fill follows the brand seed's own lightness rather than a fixed\n// mid-tone shade, so the button *is* the chosen color: a deep navy stays deep\n// navy, and #000 stays black. Light mode honors the seed directly, capped so a\n// near-white brand still reads as a filled button. Dark mode honors light/mid\n// seeds but lifts dark ones toward light — so a black brand becomes a white\n// button that stays legible on a dark surface.\nconst PRIMARY_FILL_LIGHT_CAP = 0.85;\nconst PRIMARY_DARK_ENDPOINT_LIFT_FLOOR = 0.16;\nconst PRIMARY_LIGHT_ENDPOINT_CEIL = 0.99;\nconst PRIMARY_DARK_HONOR_FLOOR = 0.45;\nconst PRIMARY_DARK_LIFT_EXPONENT = 1.6;\nconst PRIMARY_HOVER_STEP = 0.05;\nconst PRIMARY_ACTIVE_STEP = 0.1;\nconst PRIMARY_ACTIVE_DARK_FILL_STEP = 0.03;\n// Endpoint brand interactions follow the same authored Neutral palette as secondary fills.\nconst endpointL = (shade: Shade): number =>\n seedOklch(getPaletteShade('neutral', shade)).l ?? 0;\n\nfunction primaryFillLightness(seedL: number, mode: Mode): number {\n if (mode === 'light') return clamp01(Math.min(seedL, PRIMARY_FILL_LIGHT_CAP));\n if (seedL <= PRIMARY_DARK_ENDPOINT_LIFT_FLOOR) return 1;\n if (seedL >= PRIMARY_DARK_HONOR_FLOOR) return clamp01(seedL);\n // Below the floor, lift toward white so a dark seed stays legible on a dark\n // surface. The coefficient is `1 - floor` so the curve meets the honor branch\n // exactly at the floor (continuous, no jump); the exponent shapes how hard\n // near-black seeds push toward white.\n const t = seedL / PRIMARY_DARK_HONOR_FLOOR;\n return clamp01(\n 1 - (1 - PRIMARY_DARK_HONOR_FLOOR) * Math.pow(t, PRIMARY_DARK_LIFT_EXPONENT)\n );\n}\n\n// Hover/active nudge the fill toward mid-grey so the state change reads at any\n// fill lightness: dark fills lighten, light fills darken.\nconst towardMid = (l: number, step: number): number =>\n clamp01(l < 0.5 ? l + step : l - step);\n\nconst seedFill = (l: number, c: number, h: number): string =>\n formatOklch(clampChroma({ mode: 'oklch', l, c, h }, 'oklch', FILL_GAMUT));\n\nfunction hoverFillTarget(baseL: number): number {\n if (baseL <= PRIMARY_DARK_ENDPOINT_LIFT_FLOOR) {\n return endpointL('900');\n }\n if (baseL >= PRIMARY_LIGHT_ENDPOINT_CEIL) return endpointL('100');\n return towardMid(baseL, PRIMARY_HOVER_STEP);\n}\n\nfunction activeFillTarget(baseL: number): number {\n if (baseL <= PRIMARY_DARK_ENDPOINT_LIFT_FLOOR) {\n return endpointL('950');\n }\n if (baseL >= PRIMARY_LIGHT_ENDPOINT_CEIL) return endpointL('200');\n return clamp01(\n baseL < 0.5\n ? baseL - PRIMARY_ACTIVE_DARK_FILL_STEP\n : baseL - PRIMARY_ACTIVE_STEP\n );\n}\n\n/**\n * Primary family seeds from one accent. Supporting shades (subtle, borders,\n * disabled) come from the seed ramp via {@link deriveFamily}; the solid fills\n * follow the seed's own lightness, and the contrast solver moves any fill its\n * label can't read on.\n */\nexport function derivePrimary(accentHex: string, mode: Mode): TokenMap {\n const seed = seedOklch(accentHex);\n const h = seed.h ?? 0;\n const c = seed.c ?? 0;\n const fillL = primaryFillLightness(seed.l ?? 0, mode);\n return {\n ...deriveFamily('primary', rampFromSeed(accentHex), mode),\n '--nx-color-primary-background': seedFill(fillL, c, h),\n '--nx-color-primary-background-hover': seedFill(\n hoverFillTarget(fillL),\n c,\n h\n ),\n '--nx-color-primary-background-active': seedFill(\n activeFillTarget(fillL),\n c,\n h\n ),\n };\n}\n\nexport function deriveSecondary(mode: Mode): TokenMap {\n const d = mode === 'dark';\n const n = getPaletteRamp('neutral');\n return {\n '--nx-color-secondary-background': d ? n['900'] : n['100'],\n '--nx-color-secondary-background-hover': d ? n['700'] : n['200'],\n '--nx-color-secondary-background-active': d ? n['600'] : n['300'],\n '--nx-color-secondary-foreground': d ? n['100'] : n['900'],\n '--nx-color-secondary-disabled': d ? n['950'] : n['50'],\n '--nx-color-secondary-subtle': d ? n['800'] : n['100'],\n '--nx-color-secondary-subtle-foreground': d ? n['200'] : n['600'],\n '--nx-color-secondary-subtle-hover': d ? n['700'] : n['200'],\n '--nx-color-secondary-subtle-active': d ? n['600'] : n['300'],\n };\n}\n\nconst gamutColor = (value: string): string =>\n formatOklch(clampChroma(seedOklch(value), 'oklch', 'p3'));\n\n// Text in each mode is capped at the opposite mode's surface chroma: light ink\n// in dark mode sits closest to the light surfaces' tint, and vice versa.\nconst textChromaCap = (surfaceTone: NxdsSurfaceTone, mode: Mode): number =>\n mode === 'dark'\n ? SURFACE_TONE[surfaceTone].lightC\n : SURFACE_TONE[surfaceTone].darkC;\n\n/** Derive one mode's `--nx-color-*` map, so callers can cache each mode independently. */\nexport function deriveThemeMode(\n input: ThemeDerivationInput,\n mode: Mode\n): TokenMap {\n const surfaceTone = input.surfaceTone ?? 'neutral';\n const seeds = input[mode];\n const contrast = normalizeContrast(input.contrast[mode]);\n const profile = contrastProfile(mode, contrast);\n const surfaces = deriveSurfaces(\n seeds.background,\n surfaceTone,\n mode,\n profile.surfaceDelta,\n contrast\n );\n let foreground = seeds.foreground;\n if (surfaceTone !== 'neutral') {\n const ink = seedOklch(foreground);\n foreground = formatOklch({\n ...ink,\n c: Math.min(ink.c, textChromaCap(surfaceTone, mode)),\n });\n }\n const candidates = {\n ...deriveText(foreground, surfaces, mode),\n ...derivePrimary(seeds.accent, mode),\n ...deriveSecondary(mode),\n ...deriveStatus(mode),\n ...deriveChart(mode),\n ...deriveAlpha(surfaceTone, mode, profile),\n '--nx-color-focus-error': getPaletteShade(\n STATUS_PALETTE_FAMILIES.error,\n mode === 'dark' ? '300' : '600'\n ),\n };\n const map = { ...surfaces };\n for (const [name, value] of Object.entries(candidates))\n map[name] = gamutColor(value);\n const popover = surfaces['--nx-color-popover'];\n if (!popover) throw new Error('deriveThemeMode: missing popover surface');\n map['--nx-color-popover-alpha'] = formatOklch({\n ...seedOklch(popover),\n alpha: 0.94 + (0.06 * contrast) / 100,\n });\n return constrainColors(map, mode, contrast);\n}\n\n/**\n * Expand derivation seeds into light + dark `--nx-color-*` maps. Both modes are\n * always derived; the consumer's `appearance` choice selects one at runtime.\n * Only tokens the engine computes are emitted (surfaces, text, borders, primary,\n * secondary, status, chart, alpha/translucent, focus).\n */\nexport function deriveTheme(input: ThemeDerivationInput): DerivedTheme {\n return {\n light: deriveThemeMode(input, 'light'),\n dark: deriveThemeMode(input, 'dark'),\n };\n}\n\nfunction block(selector: string, map: TokenMap): string {\n const body = Object.entries(map)\n .map(([key, value]) => ` ${key}: ${value};`)\n .join('\\n');\n return `${selector} {\\n${body}\\n}`;\n}\n\n/**\n * Serialize a derived theme to CSS text in the runtime layer — light on\n * `:root`, dark on `:root.dark`.\n */\nexport function themeToCss(derived: DerivedTheme): string {\n return inRuntimeLayer(\n `${block(':root', derived.light)}\\n${block(':root.dark', derived.dark)}`\n );\n}\n","{\n \"green\": {\n \"50\": {\n \"$value\": \"#f1f7ef\",\n \"$type\": \"color\"\n },\n \"100\": {\n \"$value\": \"#e6f3e3\",\n \"$type\": \"color\"\n },\n \"200\": {\n \"$value\": \"#cce2c7\",\n \"$type\": \"color\"\n },\n \"300\": {\n \"$value\": \"#a6c99e\",\n \"$type\": \"color\"\n },\n \"400\": {\n \"$value\": \"#7fb175\",\n \"$type\": \"color\"\n },\n \"500\": {\n \"$value\": \"#569947\",\n \"$type\": \"color\"\n },\n \"600\": {\n \"$value\": \"#3f7932\",\n \"$type\": \"color\"\n },\n \"700\": {\n \"$value\": \"#306424\",\n \"$type\": \"color\"\n },\n \"800\": {\n \"$value\": \"#264d1c\",\n \"$type\": \"color\"\n },\n \"900\": {\n \"$value\": \"#1e3b17\",\n \"$type\": \"color\"\n },\n \"950\": {\n \"$value\": \"#12250d\",\n \"$type\": \"color\"\n }\n },\n \"emerald\": {\n \"50\": {\n \"$value\": \"#ecfdf5\",\n \"$type\": \"color\"\n },\n \"100\": {\n \"$value\": \"#d1fae5\",\n \"$type\": \"color\"\n },\n \"200\": {\n \"$value\": \"#a7f3d0\",\n \"$type\": \"color\"\n },\n \"300\": {\n \"$value\": \"#6ee7b7\",\n \"$type\": \"color\"\n },\n \"400\": {\n \"$value\": \"#34d399\",\n \"$type\": \"color\"\n },\n \"500\": {\n \"$value\": \"#10b981\",\n \"$type\": \"color\"\n },\n \"600\": {\n \"$value\": \"#059669\",\n \"$type\": \"color\"\n },\n \"700\": {\n \"$value\": \"#047857\",\n \"$type\": \"color\"\n },\n \"800\": {\n \"$value\": \"#065f46\",\n \"$type\": \"color\"\n },\n \"900\": {\n \"$value\": \"#064e3b\",\n \"$type\": \"color\"\n },\n \"950\": {\n \"$value\": \"#022c22\",\n \"$type\": \"color\"\n }\n },\n \"teal\": {\n \"50\": {\n \"$value\": \"#f0fdfa\",\n \"$type\": \"color\"\n },\n \"100\": {\n \"$value\": \"#ccfbf1\",\n \"$type\": \"color\"\n },\n \"200\": {\n \"$value\": \"#99f6e4\",\n \"$type\": \"color\"\n },\n \"300\": {\n \"$value\": \"#5eead4\",\n \"$type\": \"color\"\n },\n \"400\": {\n \"$value\": \"#2dd4bf\",\n \"$type\": \"color\"\n },\n \"500\": {\n \"$value\": \"#14b8a6\",\n \"$type\": \"color\"\n },\n \"600\": {\n \"$value\": \"#0d9488\",\n \"$type\": \"color\"\n },\n \"700\": {\n \"$value\": \"#0f766e\",\n \"$type\": \"color\"\n },\n \"800\": {\n \"$value\": \"#115e59\",\n \"$type\": \"color\"\n },\n \"900\": {\n \"$value\": \"#134e4a\",\n \"$type\": \"color\"\n },\n \"950\": {\n \"$value\": \"#042f2e\",\n \"$type\": \"color\"\n }\n },\n \"cyan\": {\n \"50\": {\n \"$value\": \"#ecfeff\",\n \"$type\": \"color\"\n },\n \"100\": {\n \"$value\": \"#cffafe\",\n \"$type\": \"color\"\n },\n \"200\": {\n \"$value\": \"#a5f3fc\",\n \"$type\": \"color\"\n },\n \"300\": {\n \"$value\": \"#67e8f9\",\n \"$type\": \"color\"\n },\n \"400\": {\n \"$value\": \"#22d3ee\",\n \"$type\": \"color\"\n },\n \"500\": {\n \"$value\": \"#06b6d4\",\n \"$type\": \"color\"\n },\n \"600\": {\n \"$value\": \"#0891b2\",\n \"$type\": \"color\"\n },\n \"700\": {\n \"$value\": \"#0e7490\",\n \"$type\": \"color\"\n },\n \"800\": {\n \"$value\": \"#155e75\",\n \"$type\": \"color\"\n },\n \"900\": {\n \"$value\": \"#164e63\",\n \"$type\": \"color\"\n },\n \"950\": {\n \"$value\": \"#083344\",\n \"$type\": \"color\"\n }\n },\n \"sky\": {\n \"50\": {\n \"$value\": \"#f0f9ff\",\n \"$type\": \"color\"\n },\n \"100\": {\n \"$value\": \"#e0f2fe\",\n \"$type\": \"color\"\n },\n \"200\": {\n \"$value\": \"#bae6fd\",\n \"$type\": \"color\"\n },\n \"300\": {\n \"$value\": \"#7dd3fc\",\n \"$type\": \"color\"\n },\n \"400\": {\n \"$value\": \"#38bdf8\",\n \"$type\": \"color\"\n },\n \"500\": {\n \"$value\": \"#0ea5e9\",\n \"$type\": \"color\"\n },\n \"600\": {\n \"$value\": \"#0284c7\",\n \"$type\": \"color\"\n },\n \"700\": {\n \"$value\": \"#0369a1\",\n \"$type\": \"color\"\n },\n \"800\": {\n \"$value\": \"#075985\",\n \"$type\": \"color\"\n },\n \"900\": {\n \"$value\": \"#0c4a6e\",\n \"$type\": \"color\"\n },\n \"950\": {\n \"$value\": \"#082f49\",\n \"$type\": \"color\"\n }\n },\n \"indigo\": {\n \"50\": {\n \"$value\": \"#eef2ff\",\n \"$type\": \"color\"\n },\n \"100\": {\n \"$value\": \"#e0e7ff\",\n \"$type\": \"color\"\n },\n \"200\": {\n \"$value\": \"#c7d2fe\",\n \"$type\": \"color\"\n },\n \"300\": {\n \"$value\": \"#a5b4fc\",\n \"$type\": \"color\"\n },\n \"400\": {\n \"$value\": \"#818cf8\",\n \"$type\": \"color\"\n },\n \"500\": {\n \"$value\": \"#6366f1\",\n \"$type\": \"color\"\n },\n \"600\": {\n \"$value\": \"#4f46e5\",\n \"$type\": \"color\"\n },\n \"700\": {\n \"$value\": \"#4338ca\",\n \"$type\": \"color\"\n },\n \"800\": {\n \"$value\": \"#3730a3\",\n \"$type\": \"color\"\n },\n \"900\": {\n \"$value\": \"#312e81\",\n \"$type\": \"color\"\n },\n \"950\": {\n \"$value\": \"#1e1b4b\",\n \"$type\": \"color\"\n }\n },\n \"violet\": {\n \"50\": {\n \"$value\": \"#f5f3ff\",\n \"$type\": \"color\"\n },\n \"100\": {\n \"$value\": \"#ede9fe\",\n \"$type\": \"color\"\n },\n \"200\": {\n \"$value\": \"#ddd6fe\",\n \"$type\": \"color\"\n },\n \"300\": {\n \"$value\": \"#c4b5fd\",\n \"$type\": \"color\"\n },\n \"400\": {\n \"$value\": \"#a78bfa\",\n \"$type\": \"color\"\n },\n \"500\": {\n \"$value\": \"#8b5cf6\",\n \"$type\": \"color\"\n },\n \"600\": {\n \"$value\": \"#7c3aed\",\n \"$type\": \"color\"\n },\n \"700\": {\n \"$value\": \"#6d28d9\",\n \"$type\": \"color\"\n },\n \"800\": {\n \"$value\": \"#5b21b6\",\n \"$type\": \"color\"\n },\n \"900\": {\n \"$value\": \"#4c1d95\",\n \"$type\": \"color\"\n },\n \"950\": {\n \"$value\": \"#2e1065\",\n \"$type\": \"color\"\n }\n },\n \"purple\": {\n \"50\": {\n \"$value\": \"#faf5ff\",\n \"$type\": \"color\"\n },\n \"100\": {\n \"$value\": \"#f3e8ff\",\n \"$type\": \"color\"\n },\n \"200\": {\n \"$value\": \"#e9d5ff\",\n \"$type\": \"color\"\n },\n \"300\": {\n \"$value\": \"#d8b4fe\",\n \"$type\": \"color\"\n },\n \"400\": {\n \"$value\": \"#c084fc\",\n \"$type\": \"color\"\n },\n \"500\": {\n \"$value\": \"#a855f7\",\n \"$type\": \"color\"\n },\n \"600\": {\n \"$value\": \"#9333ea\",\n \"$type\": \"color\"\n },\n \"700\": {\n \"$value\": \"#7e22ce\",\n \"$type\": \"color\"\n },\n \"800\": {\n \"$value\": \"#6b21a8\",\n \"$type\": \"color\"\n },\n \"900\": {\n \"$value\": \"#581c87\",\n \"$type\": \"color\"\n },\n \"950\": {\n \"$value\": \"#3b0764\",\n \"$type\": \"color\"\n }\n },\n \"fuchsia\": {\n \"50\": {\n \"$value\": \"#fdf4ff\",\n \"$type\": \"color\"\n },\n \"100\": {\n \"$value\": \"#fae8ff\",\n \"$type\": \"color\"\n },\n \"200\": {\n \"$value\": \"#f5d0fe\",\n \"$type\": \"color\"\n },\n \"300\": {\n \"$value\": \"#f0abfc\",\n \"$type\": \"color\"\n },\n \"400\": {\n \"$value\": \"#e879f9\",\n \"$type\": \"color\"\n },\n \"500\": {\n \"$value\": \"#d946ef\",\n \"$type\": \"color\"\n },\n \"600\": {\n \"$value\": \"#c026d3\",\n \"$type\": \"color\"\n },\n \"700\": {\n \"$value\": \"#a21caf\",\n \"$type\": \"color\"\n },\n \"800\": {\n \"$value\": \"#86198f\",\n \"$type\": \"color\"\n },\n \"900\": {\n \"$value\": \"#701a75\",\n \"$type\": \"color\"\n },\n \"950\": {\n \"$value\": \"#4a044e\",\n \"$type\": \"color\"\n }\n },\n \"pink\": {\n \"50\": {\n \"$value\": \"#fdf2f8\",\n \"$type\": \"color\"\n },\n \"100\": {\n \"$value\": \"#fce7f3\",\n \"$type\": \"color\"\n },\n \"200\": {\n \"$value\": \"#fbcfe8\",\n \"$type\": \"color\"\n },\n \"300\": {\n \"$value\": \"#f9a8d4\",\n \"$type\": \"color\"\n },\n \"400\": {\n \"$value\": \"#f472b6\",\n \"$type\": \"color\"\n },\n \"500\": {\n \"$value\": \"#ec4899\",\n \"$type\": \"color\"\n },\n \"600\": {\n \"$value\": \"#db2777\",\n \"$type\": \"color\"\n },\n \"700\": {\n \"$value\": \"#be185d\",\n \"$type\": \"color\"\n },\n \"800\": {\n \"$value\": \"#9d174d\",\n \"$type\": \"color\"\n },\n \"900\": {\n \"$value\": \"#831843\",\n \"$type\": \"color\"\n },\n \"950\": {\n \"$value\": \"#500724\",\n \"$type\": \"color\"\n }\n },\n \"slate\": {\n \"50\": {\n \"$value\": \"#f8fafc\",\n \"$type\": \"color\"\n },\n \"75\": {\n \"$value\": \"#f2f6fa\",\n \"$type\": \"color\"\n },\n \"100\": {\n \"$value\": \"#f1f5f9\",\n \"$type\": \"color\"\n },\n \"150\": {\n \"$value\": \"#e0e6ee\",\n \"$type\": \"color\"\n },\n \"200\": {\n \"$value\": \"#e2e8f0\",\n \"$type\": \"color\"\n },\n \"300\": {\n \"$value\": \"#cbd5e1\",\n \"$type\": \"color\"\n },\n \"400\": {\n \"$value\": \"#90a1b9\",\n \"$type\": \"color\"\n },\n \"500\": {\n \"$value\": \"#62748e\",\n \"$type\": \"color\"\n },\n \"600\": {\n \"$value\": \"#45556c\",\n \"$type\": \"color\"\n },\n \"700\": {\n \"$value\": \"#314158\",\n \"$type\": \"color\"\n },\n \"800\": {\n \"$value\": \"#1d293d\",\n \"$type\": \"color\"\n },\n \"900\": {\n \"$value\": \"#0f172a\",\n \"$type\": \"color\"\n },\n \"950\": {\n \"$value\": \"#020617\",\n \"$type\": \"color\"\n },\n \"a50\": {\n \"$value\": \"#0206170a\",\n \"$type\": \"color\"\n },\n \"a100\": {\n \"$value\": \"#02061710\",\n \"$type\": \"color\"\n },\n \"a200\": {\n \"$value\": \"#02061718\",\n \"$type\": \"color\"\n },\n \"a300\": {\n \"$value\": \"#02061730\",\n \"$type\": \"color\"\n },\n \"a400\": {\n \"$value\": \"#02061750\",\n \"$type\": \"color\"\n },\n \"a500\": {\n \"$value\": \"#02061780\",\n \"$type\": \"color\"\n },\n \"a600\": {\n \"$value\": \"#020617a0\",\n \"$type\": \"color\"\n },\n \"a700\": {\n \"$value\": \"#020617c0\",\n \"$type\": \"color\"\n },\n \"a800\": {\n \"$value\": \"#020617d8\",\n \"$type\": \"color\"\n },\n \"a900\": {\n \"$value\": \"#020617e8\",\n \"$type\": \"color\"\n },\n \"a950\": {\n \"$value\": \"#020617f4\",\n \"$type\": \"color\"\n }\n },\n \"rose\": {\n \"50\": {\n \"$value\": \"#fff1f2\",\n \"$type\": \"color\"\n },\n \"100\": {\n \"$value\": \"#ffe4e6\",\n \"$type\": \"color\"\n },\n \"200\": {\n \"$value\": \"#fecdd3\",\n \"$type\": \"color\"\n },\n \"300\": {\n \"$value\": \"#fda4af\",\n \"$type\": \"color\"\n },\n \"400\": {\n \"$value\": \"#fb7185\",\n \"$type\": \"color\"\n },\n \"500\": {\n \"$value\": \"#f43f5e\",\n \"$type\": \"color\"\n },\n \"600\": {\n \"$value\": \"#e11d48\",\n \"$type\": \"color\"\n },\n \"700\": {\n \"$value\": \"#be123c\",\n \"$type\": \"color\"\n },\n \"800\": {\n \"$value\": \"#9f1239\",\n \"$type\": \"color\"\n },\n \"900\": {\n \"$value\": \"#881337\",\n \"$type\": \"color\"\n },\n \"950\": {\n \"$value\": \"#4c0519\",\n \"$type\": \"color\"\n }\n },\n \"lime\": {\n \"50\": {\n \"$value\": \"#f7fee7\",\n \"$type\": \"color\"\n },\n \"100\": {\n \"$value\": \"#ecfccb\",\n \"$type\": \"color\"\n },\n \"200\": {\n \"$value\": \"#d9f99d\",\n \"$type\": \"color\"\n },\n \"300\": {\n \"$value\": \"#bef264\",\n \"$type\": \"color\"\n },\n \"400\": {\n \"$value\": \"#a3e635\",\n \"$type\": \"color\"\n },\n \"500\": {\n \"$value\": \"#84cc16\",\n \"$type\": \"color\"\n },\n \"600\": {\n \"$value\": \"#65a30d\",\n \"$type\": \"color\"\n },\n \"700\": {\n \"$value\": \"#4d7c0f\",\n \"$type\": \"color\"\n },\n \"800\": {\n \"$value\": \"#3f6212\",\n \"$type\": \"color\"\n },\n \"900\": {\n \"$value\": \"#365314\",\n \"$type\": \"color\"\n },\n \"950\": {\n \"$value\": \"#1a2e05\",\n \"$type\": \"color\"\n }\n },\n \"yellow\": {\n \"50\": {\n \"$value\": \"#fefce8\",\n \"$type\": \"color\"\n },\n \"100\": {\n \"$value\": \"#fef9c3\",\n \"$type\": \"color\"\n },\n \"200\": {\n \"$value\": \"#fef08a\",\n \"$type\": \"color\"\n },\n \"300\": {\n \"$value\": \"#fde047\",\n \"$type\": \"color\"\n },\n \"400\": {\n \"$value\": \"#facc15\",\n \"$type\": \"color\"\n },\n \"500\": {\n \"$value\": \"#eab308\",\n \"$type\": \"color\"\n },\n \"600\": {\n \"$value\": \"#ca8a04\",\n \"$type\": \"color\"\n },\n \"700\": {\n \"$value\": \"#a16207\",\n \"$type\": \"color\"\n },\n \"800\": {\n \"$value\": \"#854d0e\",\n \"$type\": \"color\"\n },\n \"900\": {\n \"$value\": \"#713f12\",\n \"$type\": \"color\"\n },\n \"950\": {\n \"$value\": \"#422006\",\n \"$type\": \"color\"\n }\n },\n \"blue\": {\n \"50\": {\n \"$value\": \"#f1f6fc\",\n \"$type\": \"color\"\n },\n \"100\": {\n \"$value\": \"#e6effc\",\n \"$type\": \"color\"\n },\n \"200\": {\n \"$value\": \"#c4daf5\",\n \"$type\": \"color\"\n },\n \"300\": {\n \"$value\": \"#9dc1ee\",\n \"$type\": \"color\"\n },\n \"400\": {\n \"$value\": \"#71a1df\",\n \"$type\": \"color\"\n },\n \"500\": {\n \"$value\": \"#3d7bc8\",\n \"$type\": \"color\"\n },\n \"600\": {\n \"$value\": \"#2863ab\",\n \"$type\": \"color\"\n },\n \"700\": {\n \"$value\": \"#184f90\",\n \"$type\": \"color\"\n },\n \"800\": {\n \"$value\": \"#113d70\",\n \"$type\": \"color\"\n },\n \"900\": {\n \"$value\": \"#0d2e55\",\n \"$type\": \"color\"\n },\n \"950\": {\n \"$value\": \"#051a36\",\n \"$type\": \"color\"\n }\n },\n \"gray\": {\n \"50\": {\n \"$value\": \"#f9fafb\",\n \"$type\": \"color\"\n },\n \"75\": {\n \"$value\": \"#f4f5f7\",\n \"$type\": \"color\"\n },\n \"100\": {\n \"$value\": \"#f3f4f6\",\n \"$type\": \"color\"\n },\n \"150\": {\n \"$value\": \"#e3e5e9\",\n \"$type\": \"color\"\n },\n \"200\": {\n \"$value\": \"#e5e7eb\",\n \"$type\": \"color\"\n },\n \"300\": {\n \"$value\": \"#d1d5db\",\n \"$type\": \"color\"\n },\n \"400\": {\n \"$value\": \"#99a1af\",\n \"$type\": \"color\"\n },\n \"500\": {\n \"$value\": \"#6a7282\",\n \"$type\": \"color\"\n },\n \"600\": {\n \"$value\": \"#4a5565\",\n \"$type\": \"color\"\n },\n \"700\": {\n \"$value\": \"#364153\",\n \"$type\": \"color\"\n },\n \"800\": {\n \"$value\": \"#1e2939\",\n \"$type\": \"color\"\n },\n \"900\": {\n \"$value\": \"#111827\",\n \"$type\": \"color\"\n },\n \"950\": {\n \"$value\": \"#030712\",\n \"$type\": \"color\"\n },\n \"a50\": {\n \"$value\": \"#0307120a\",\n \"$type\": \"color\"\n },\n \"a100\": {\n \"$value\": \"#03071210\",\n \"$type\": \"color\"\n },\n \"a200\": {\n \"$value\": \"#03071218\",\n \"$type\": \"color\"\n },\n \"a300\": {\n \"$value\": \"#03071230\",\n \"$type\": \"color\"\n },\n \"a400\": {\n \"$value\": \"#03071250\",\n \"$type\": \"color\"\n },\n \"a500\": {\n \"$value\": \"#03071280\",\n \"$type\": \"color\"\n },\n \"a600\": {\n \"$value\": \"#030712a0\",\n \"$type\": \"color\"\n },\n \"a700\": {\n \"$value\": \"#030712c0\",\n \"$type\": \"color\"\n },\n \"a800\": {\n \"$value\": \"#030712d8\",\n \"$type\": \"color\"\n },\n \"a900\": {\n \"$value\": \"#030712e8\",\n \"$type\": \"color\"\n },\n \"a950\": {\n \"$value\": \"#030712f4\",\n \"$type\": \"color\"\n }\n },\n \"zinc\": {\n \"50\": {\n \"$value\": \"#fafafa\",\n \"$type\": \"color\"\n },\n \"75\": {\n \"$value\": \"#f5f5f6\",\n \"$type\": \"color\"\n },\n \"100\": {\n \"$value\": \"#f4f4f5\",\n \"$type\": \"color\"\n },\n \"150\": {\n \"$value\": \"#e4e6e8\",\n \"$type\": \"color\"\n },\n \"200\": {\n \"$value\": \"#e3e5e7\",\n \"$type\": \"color\"\n },\n \"300\": {\n \"$value\": \"#d2d5d8\",\n \"$type\": \"color\"\n },\n \"400\": {\n \"$value\": \"#9f9fa9\",\n \"$type\": \"color\"\n },\n \"500\": {\n \"$value\": \"#71717b\",\n \"$type\": \"color\"\n },\n \"600\": {\n \"$value\": \"#52525c\",\n \"$type\": \"color\"\n },\n \"700\": {\n \"$value\": \"#3f3f46\",\n \"$type\": \"color\"\n },\n \"800\": {\n \"$value\": \"#26272a\",\n \"$type\": \"color\"\n },\n \"900\": {\n \"$value\": \"#17181b\",\n \"$type\": \"color\"\n },\n \"950\": {\n \"$value\": \"#08090b\",\n \"$type\": \"color\"\n },\n \"a50\": {\n \"$value\": \"#08090b0a\",\n \"$type\": \"color\"\n },\n \"a100\": {\n \"$value\": \"#08090b10\",\n \"$type\": \"color\"\n },\n \"a200\": {\n \"$value\": \"#08090b18\",\n \"$type\": \"color\"\n },\n \"a300\": {\n \"$value\": \"#08090b30\",\n \"$type\": \"color\"\n },\n \"a400\": {\n \"$value\": \"#08090b50\",\n \"$type\": \"color\"\n },\n \"a500\": {\n \"$value\": \"#08090b80\",\n \"$type\": \"color\"\n },\n \"a600\": {\n \"$value\": \"#08090ba0\",\n \"$type\": \"color\"\n },\n \"a700\": {\n \"$value\": \"#08090bc0\",\n \"$type\": \"color\"\n },\n \"a800\": {\n \"$value\": \"#08090bd8\",\n \"$type\": \"color\"\n },\n \"a900\": {\n \"$value\": \"#08090be8\",\n \"$type\": \"color\"\n },\n \"a950\": {\n \"$value\": \"#08090bf4\",\n \"$type\": \"color\"\n }\n },\n \"neutral\": {\n \"50\": {\n \"$value\": \"#fafafa\",\n \"$type\": \"color\"\n },\n \"75\": {\n \"$value\": \"#f5f5f5\",\n \"$type\": \"color\"\n },\n \"100\": {\n \"$value\": \"#f5f5f5\",\n \"$type\": \"color\"\n },\n \"150\": {\n \"$value\": \"#e5e5e5\",\n \"$type\": \"color\"\n },\n \"200\": {\n \"$value\": \"#e5e5e5\",\n \"$type\": \"color\"\n },\n \"300\": {\n \"$value\": \"#d4d4d4\",\n \"$type\": \"color\"\n },\n \"400\": {\n \"$value\": \"#a1a1a1\",\n \"$type\": \"color\"\n },\n \"500\": {\n \"$value\": \"#737373\",\n \"$type\": \"color\"\n },\n \"600\": {\n \"$value\": \"#525252\",\n \"$type\": \"color\"\n },\n \"700\": {\n \"$value\": \"#404040\",\n \"$type\": \"color\"\n },\n \"800\": {\n \"$value\": \"#262626\",\n \"$type\": \"color\"\n },\n \"900\": {\n \"$value\": \"#171717\",\n \"$type\": \"color\"\n },\n \"950\": {\n \"$value\": \"#0a0a0a\",\n \"$type\": \"color\"\n },\n \"a50\": {\n \"$value\": \"#0a0a0a0a\",\n \"$type\": \"color\"\n },\n \"a100\": {\n \"$value\": \"#0a0a0a10\",\n \"$type\": \"color\"\n },\n \"a200\": {\n \"$value\": \"#0a0a0a18\",\n \"$type\": \"color\"\n },\n \"a300\": {\n \"$value\": \"#0a0a0a30\",\n \"$type\": \"color\"\n },\n \"a400\": {\n \"$value\": \"#0a0a0a50\",\n \"$type\": \"color\"\n },\n \"a500\": {\n \"$value\": \"#0a0a0a80\",\n \"$type\": \"color\"\n },\n \"a600\": {\n \"$value\": \"#0a0a0aa0\",\n \"$type\": \"color\"\n },\n \"a700\": {\n \"$value\": \"#0a0a0ac0\",\n \"$type\": \"color\"\n },\n \"a800\": {\n \"$value\": \"#0a0a0ad8\",\n \"$type\": \"color\"\n },\n \"a900\": {\n \"$value\": \"#0a0a0ae8\",\n \"$type\": \"color\"\n },\n \"a950\": {\n \"$value\": \"#0a0a0af4\",\n \"$type\": \"color\"\n }\n },\n \"stone\": {\n \"50\": {\n \"$value\": \"#fbfaf8\",\n \"$type\": \"color\"\n },\n \"75\": {\n \"$value\": \"#f6f5f2\",\n \"$type\": \"color\"\n },\n \"100\": {\n \"$value\": \"#eeedeb\",\n \"$type\": \"color\"\n },\n \"150\": {\n \"$value\": \"#e7e5e2\",\n \"$type\": \"color\"\n },\n \"200\": {\n \"$value\": \"#d6d4d1\",\n \"$type\": \"color\"\n },\n \"300\": {\n \"$value\": \"#b6b2ad\",\n \"$type\": \"color\"\n },\n \"400\": {\n \"$value\": \"#95928c\",\n \"$type\": \"color\"\n },\n \"500\": {\n \"$value\": \"#75726d\",\n \"$type\": \"color\"\n },\n \"600\": {\n \"$value\": \"#595854\",\n \"$type\": \"color\"\n },\n \"700\": {\n \"$value\": \"#444441\",\n \"$type\": \"color\"\n },\n \"800\": {\n \"$value\": \"#2d2d2d\",\n \"$type\": \"color\"\n },\n \"900\": {\n \"$value\": \"#181818\",\n \"$type\": \"color\"\n },\n \"950\": {\n \"$value\": \"#050505\",\n \"$type\": \"color\"\n },\n \"a50\": {\n \"$value\": \"#0b09040a\",\n \"$type\": \"color\"\n },\n \"a100\": {\n \"$value\": \"#0b090410\",\n \"$type\": \"color\"\n },\n \"a200\": {\n \"$value\": \"#0b090418\",\n \"$type\": \"color\"\n },\n \"a300\": {\n \"$value\": \"#0b090430\",\n \"$type\": \"color\"\n },\n \"a400\": {\n \"$value\": \"#0b090450\",\n \"$type\": \"color\"\n },\n \"a500\": {\n \"$value\": \"#0b090480\",\n \"$type\": \"color\"\n },\n \"a600\": {\n \"$value\": \"#0b0904a0\",\n \"$type\": \"color\"\n },\n \"a700\": {\n \"$value\": \"#0b0904c0\",\n \"$type\": \"color\"\n },\n \"a800\": {\n \"$value\": \"#0b0904d8\",\n \"$type\": \"color\"\n },\n \"a900\": {\n \"$value\": \"#0b0904e8\",\n \"$type\": \"color\"\n },\n \"a950\": {\n \"$value\": \"#0b0904f4\",\n \"$type\": \"color\"\n }\n },\n \"red\": {\n \"50\": {\n \"$value\": \"#fef2f0\",\n \"$type\": \"color\"\n },\n \"100\": {\n \"$value\": \"#fee9e6\",\n \"$type\": \"color\"\n },\n \"200\": {\n \"$value\": \"#facfc9\",\n \"$type\": \"color\"\n },\n \"300\": {\n \"$value\": \"#f0a99f\",\n \"$type\": \"color\"\n },\n \"400\": {\n \"$value\": \"#e58175\",\n \"$type\": \"color\"\n },\n \"500\": {\n \"$value\": \"#d95c50\",\n \"$type\": \"color\"\n },\n \"600\": {\n \"$value\": \"#c13d34\",\n \"$type\": \"color\"\n },\n \"700\": {\n \"$value\": \"#a32d26\",\n \"$type\": \"color\"\n },\n \"800\": {\n \"$value\": \"#7f211b\",\n \"$type\": \"color\"\n },\n \"900\": {\n \"$value\": \"#5f1a15\",\n \"$type\": \"color\"\n },\n \"950\": {\n \"$value\": \"#3d110d\",\n \"$type\": \"color\"\n }\n },\n \"orange\": {\n \"50\": {\n \"$value\": \"#fff7ed\",\n \"$type\": \"color\"\n },\n \"100\": {\n \"$value\": \"#ffedd5\",\n \"$type\": \"color\"\n },\n \"200\": {\n \"$value\": \"#fed7aa\",\n \"$type\": \"color\"\n },\n \"300\": {\n \"$value\": \"#fdba74\",\n \"$type\": \"color\"\n },\n \"400\": {\n \"$value\": \"#fb923c\",\n \"$type\": \"color\"\n },\n \"500\": {\n \"$value\": \"#f97316\",\n \"$type\": \"color\"\n },\n \"600\": {\n \"$value\": \"#ea580c\",\n \"$type\": \"color\"\n },\n \"700\": {\n \"$value\": \"#c2410c\",\n \"$type\": \"color\"\n },\n \"800\": {\n \"$value\": \"#9a3412\",\n \"$type\": \"color\"\n },\n \"900\": {\n \"$value\": \"#7c2d12\",\n \"$type\": \"color\"\n },\n \"950\": {\n \"$value\": \"#431407\",\n \"$type\": \"color\"\n }\n },\n \"amber\": {\n \"50\": {\n \"$value\": \"#faf4ec\",\n \"$type\": \"color\"\n },\n \"100\": {\n \"$value\": \"#f9eddd\",\n \"$type\": \"color\"\n },\n \"200\": {\n \"$value\": \"#efd7b7\",\n \"$type\": \"color\"\n },\n \"300\": {\n \"$value\": \"#e5bd86\",\n \"$type\": \"color\"\n },\n \"400\": {\n \"$value\": \"#d8a354\",\n \"$type\": \"color\"\n },\n \"500\": {\n \"$value\": \"#c88a1e\",\n \"$type\": \"color\"\n },\n \"600\": {\n \"$value\": \"#b37903\",\n \"$type\": \"color\"\n },\n \"700\": {\n \"$value\": \"#946406\",\n \"$type\": \"color\"\n },\n \"800\": {\n \"$value\": \"#764f05\",\n \"$type\": \"color\"\n },\n \"900\": {\n \"$value\": \"#5a3b03\",\n \"$type\": \"color\"\n },\n \"950\": {\n \"$value\": \"#392402\",\n \"$type\": \"color\"\n }\n },\n \"white\": {\n \"base\": {\n \"$value\": \"#ffffff\",\n \"$type\": \"color\"\n },\n \"a50\": {\n \"$value\": \"#ffffff0a\",\n \"$type\": \"color\"\n },\n \"a100\": {\n \"$value\": \"#ffffff10\",\n \"$type\": \"color\"\n },\n \"a200\": {\n \"$value\": \"#ffffff18\",\n \"$type\": \"color\"\n },\n \"a300\": {\n \"$value\": \"#ffffff30\",\n \"$type\": \"color\"\n },\n \"a400\": {\n \"$value\": \"#ffffff50\",\n \"$type\": \"color\"\n },\n \"a500\": {\n \"$value\": \"#ffffff80\",\n \"$type\": \"color\"\n },\n \"a600\": {\n \"$value\": \"#ffffffa0\",\n \"$type\": \"color\"\n },\n \"a700\": {\n \"$value\": \"#ffffffc0\",\n \"$type\": \"color\"\n },\n \"a800\": {\n \"$value\": \"#ffffffd8\",\n \"$type\": \"color\"\n },\n \"a900\": {\n \"$value\": \"#ffffffe8\",\n \"$type\": \"color\"\n },\n \"a950\": {\n \"$value\": \"#fffffff4\",\n \"$type\": \"color\"\n }\n },\n \"black\": {\n \"base\": {\n \"$value\": \"#0a0a0a\",\n \"$type\": \"color\"\n },\n \"a50\": {\n \"$value\": \"#0a0a0a0a\",\n \"$type\": \"color\"\n },\n \"a100\": {\n \"$value\": \"#0a0a0a10\",\n \"$type\": \"color\"\n },\n \"a200\": {\n \"$value\": \"#0a0a0a18\",\n \"$type\": \"color\"\n },\n \"a300\": {\n \"$value\": \"#0a0a0a30\",\n \"$type\": \"color\"\n },\n \"a400\": {\n \"$value\": \"#0a0a0a50\",\n \"$type\": \"color\"\n },\n \"a500\": {\n \"$value\": \"#0a0a0a80\",\n \"$type\": \"color\"\n },\n \"a600\": {\n \"$value\": \"#0a0a0aa0\",\n \"$type\": \"color\"\n },\n \"a700\": {\n \"$value\": \"#0a0a0ac0\",\n \"$type\": \"color\"\n },\n \"a800\": {\n \"$value\": \"#0a0a0ad8\",\n \"$type\": \"color\"\n },\n \"a900\": {\n \"$value\": \"#0a0a0ae8\",\n \"$type\": \"color\"\n },\n \"a950\": {\n \"$value\": \"#0a0a0af4\",\n \"$type\": \"color\"\n }\n }\n}\n","import primitiveColors from '../../tokens/primitives/color.json';\nimport {\n hexToOklchPinned,\n isPaletteShadeKey,\n} from '../token-source/perceptual-grid';\n\nimport { type Shade, SHADES } from './palette';\n\nexport type PrimitivePaletteName = Exclude<\n keyof typeof primitiveColors,\n 'white' | 'black'\n>;\nexport type PrimitivePaletteRamp = Readonly<Record<Shade, string>>;\n\nexport const PRIMITIVE_PALETTE_NAMES: readonly PrimitivePaletteName[] =\n Object.keys(primitiveColors).filter(\n (name): name is PrimitivePaletteName => name !== 'white' && name !== 'black'\n );\n\nconst rampCache = new Map<PrimitivePaletteName, PrimitivePaletteRamp>();\n\nexport function getPaletteRamp(\n palette: PrimitivePaletteName\n): PrimitivePaletteRamp {\n if (!PRIMITIVE_PALETTE_NAMES.includes(palette)) {\n throw new Error(`palette: unknown primitive palette \"${palette}\"`);\n }\n const cached = rampCache.get(palette);\n if (cached) return cached;\n const ramp = Object.freeze(\n Object.fromEntries(\n SHADES.map((shade) => [\n shade,\n hexToOklchPinned(\n primitiveColors[palette][shade].$value,\n shade,\n palette\n ),\n ])\n ) as Record<Shade, string>\n );\n rampCache.set(palette, ramp);\n return ramp;\n}\n\nexport function getPaletteShade(\n palette: PrimitivePaletteName,\n shade: Shade\n): string {\n if (!isPaletteShadeKey(shade)) {\n throw new Error(`palette: unknown shade \"${shade}\"`);\n }\n return getPaletteRamp(palette)[shade];\n}\n","import type { NxdsSurfaceTone } from './palette';\n\nexport const SURFACE_TONE: Record<\n NxdsSurfaceTone,\n { h: number; lightC: number; darkC: number }\n> = {\n slate: { h: 264.7, lightC: 0.003, darkC: 0.006 },\n gray: { h: 261.7, lightC: 0.002, darkC: 0.004 },\n zinc: { h: 285.9, lightC: 0.002, darkC: 0.006 },\n neutral: { h: 0, lightC: 0, darkC: 0 },\n stone: { h: 70, lightC: 0.002, darkC: 0.003 },\n};\n\nexport const PAGE_L_LIGHT = 1;\n\n/**\n * Canonical opaque-surface token set. Both regime ladders are typed against\n * these keys, so a surface added here must be given a light and dark anchor.\n */\nexport const SURFACE_TOKENS = [\n 'background',\n 'background-hover',\n 'background-active',\n 'muted',\n 'muted-extralight',\n 'container',\n 'container-hover',\n 'container-active',\n 'popover',\n 'popover-hover',\n 'popover-active',\n 'control-background',\n 'control-background-hover',\n 'nav-background',\n 'nav-item-hover',\n 'nav-item-active',\n 'nav-border',\n 'disabled',\n 'border-focus',\n] as const;\n\nexport type SurfaceToken = (typeof SURFACE_TOKENS)[number];\nexport type SurfaceSteps = Record<SurfaceToken, number>;\n\nexport type ShadeAnchor =\n | number\n | 'base'\n | {\n step: number;\n };\n\n// OKLCH lightness per ladder step: the unit that converts a shade anchor into a\n// step count. deriveSurfaces scales the steps by its own contrast spacing.\nconst STEP_L = 0.056;\n\nconst LIGHT_VIRTUAL_ANCHOR_STEPS = {\n 50: -0.27,\n 75: -0.54,\n 100: -0.98,\n 150: -1.38,\n 200: -2.32,\n 400: -6.07,\n} as const;\n\nconst SURFACE_ANCHOR_L: Record<number, number> = Object.fromEntries(\n Object.entries(LIGHT_VIRTUAL_ANCHOR_STEPS).map(([shade, step]) => [\n Number(shade),\n PAGE_L_LIGHT + step * STEP_L,\n ])\n);\n\nexport function anchorToStep(anchor: ShadeAnchor): number {\n if (typeof anchor === 'object') return anchor.step;\n if (anchor === 'base') return 0;\n\n const shadeL = SURFACE_ANCHOR_L[anchor];\n if (shadeL === undefined) {\n throw new Error(`surface-ladder: unknown shade anchor '${anchor}'`);\n }\n\n return Number(((shadeL - PAGE_L_LIGHT) / STEP_L).toFixed(4));\n}\n\nexport const LIGHT_SURFACE_LADDER = {\n background: 'base',\n 'background-hover': 50,\n 'background-active': 150,\n muted: 75,\n // The only light rung off the shade grid: a 40% background→muted blend lands\n // between gridlines, so it is expressed as a raw fractional step (mirrors the\n // dark ladder's raw-step rationale below).\n 'muted-extralight': { step: -0.216 },\n container: 'base',\n 'container-hover': 75,\n 'container-active': 100,\n popover: 'base',\n 'popover-hover': 100,\n 'popover-active': 100,\n 'control-background': 150,\n 'control-background-hover': 200,\n 'nav-background': 75,\n 'nav-item-hover': 150,\n 'nav-item-active': 150,\n 'nav-border': 150,\n disabled: 100,\n 'border-focus': 400,\n} as const satisfies Record<SurfaceToken, ShadeAnchor>;\n\n// Dark surfaces are bg-seed-relative and do not sit on the light shade grid, so\n// the dark ladder takes raw steps only.\nexport const DARK_SURFACE_LADDER = {\n background: 'base',\n 'background-hover': { step: 1.6 },\n 'background-active': { step: 1.6 },\n muted: { step: 1.6 },\n 'muted-extralight': { step: 0.64 },\n container: { step: 1.6 },\n 'container-hover': { step: 3.2 },\n 'container-active': { step: 1.6 },\n popover: { step: 3.2 },\n 'popover-hover': { step: 4.8 },\n 'popover-active': { step: 3.2 },\n 'control-background': { step: 3.2 },\n 'control-background-hover': { step: 4.8 },\n 'nav-background': { step: 1.6 },\n 'nav-item-hover': { step: 3.2 },\n 'nav-item-active': { step: 3.2 },\n 'nav-border': { step: 3.2 },\n disabled: { step: 1.6 },\n 'border-focus': { step: 9.68 },\n} as const satisfies Record<SurfaceToken, Exclude<ShadeAnchor, number>>;\n\nfunction stepsFromLadder(\n ladder: Record<SurfaceToken, ShadeAnchor>\n): SurfaceSteps {\n return Object.fromEntries(\n SURFACE_TOKENS.map((token) => [token, anchorToStep(ladder[token])])\n ) as SurfaceSteps;\n}\n\nexport const LIGHT_SURFACE_STEPS = stepsFromLadder(LIGHT_SURFACE_LADDER);\nexport const DARK_SURFACE_STEPS = stepsFromLadder(DARK_SURFACE_LADDER);\n","export type TokenCategory =\n | 'surface'\n | 'text'\n | 'border'\n | 'brand'\n | 'status'\n | 'chart'\n | 'focus'\n | 'alpha';\n\nexport interface SemanticTokenMeta {\n /** Bare token name, without the --nx-color- prefix. */\n name: SemanticColorName;\n category: TokenCategory;\n}\n\nconst SURFACE_TOKEN_NAMES = [\n 'background',\n 'background-hover',\n 'background-active',\n 'muted',\n 'muted-extralight',\n 'container',\n 'container-hover',\n 'container-active',\n 'popover',\n 'popover-hover',\n 'popover-active',\n 'control-background',\n 'control-background-hover',\n 'control-thumb',\n 'nav-background',\n 'nav-item-hover',\n 'nav-item-active',\n 'nav-border',\n 'disabled',\n 'border-focus',\n] as const;\n\nconst TEXT_TOKEN_NAMES = [\n 'foreground',\n 'container-foreground',\n 'popover-foreground',\n 'nav-foreground',\n 'muted-foreground',\n 'nav-muted-foreground',\n 'muted-foreground-subtle',\n 'disabled-foreground',\n] as const;\n\nconst BORDER_TOKEN_NAMES = [\n 'border-default',\n 'border-disabled',\n 'border-hairline',\n] as const;\n\nconst BRAND_TOKEN_NAMES = [\n 'primary-background',\n 'primary-background-hover',\n 'primary-background-active',\n 'primary-foreground',\n 'primary-disabled',\n 'primary-subtle',\n 'primary-subtle-foreground',\n 'primary-subtle-hover',\n 'primary-subtle-active',\n 'primary-border',\n 'primary-border-active',\n 'secondary-background',\n 'secondary-background-hover',\n 'secondary-background-active',\n 'secondary-foreground',\n 'secondary-disabled',\n 'secondary-subtle',\n 'secondary-subtle-foreground',\n 'secondary-subtle-hover',\n 'secondary-subtle-active',\n] as const;\n\nconst STATUS_TOKEN_NAMES = [\n 'success-background',\n 'success-background-hover',\n 'success-background-active',\n 'success-foreground',\n 'success-disabled',\n 'success-subtle',\n 'success-subtle-foreground',\n 'success-subtle-hover',\n 'success-subtle-active',\n 'success-border',\n 'border-success-active',\n 'warning-background',\n 'warning-background-hover',\n 'warning-background-active',\n 'warning-foreground',\n 'warning-disabled',\n 'warning-subtle',\n 'warning-subtle-foreground',\n 'warning-subtle-hover',\n 'warning-subtle-active',\n 'warning-border',\n 'border-warning-active',\n 'error-background',\n 'error-background-hover',\n 'error-background-active',\n 'error-foreground',\n 'error-disabled',\n 'error-subtle',\n 'error-subtle-foreground',\n 'error-subtle-hover',\n 'error-subtle-active',\n 'error-border',\n 'border-error-active',\n 'information-background',\n 'information-background-hover',\n 'information-background-active',\n 'information-foreground',\n 'information-disabled',\n 'information-subtle',\n 'information-subtle-foreground',\n 'information-subtle-hover',\n 'information-subtle-active',\n 'information-border',\n 'border-information-active',\n] as const;\n\nconst CHART_TOKEN_NAMES = [\n 'chart-categorical-1',\n 'chart-categorical-2',\n 'chart-categorical-3',\n 'chart-categorical-4',\n 'chart-categorical-5',\n] as const;\n\nconst FOCUS_TOKEN_NAMES = ['focus-default', 'focus-error'] as const;\n\nconst ALPHA_TOKEN_NAMES = [\n 'background-hover-alpha',\n 'border-default-alpha',\n 'overlay',\n 'popover-alpha',\n 'popover-backdrop',\n] as const;\n\n/** Bare name of every semantic colour token, without the --nx-color- prefix. */\nexport type SemanticColorName =\n | (typeof SURFACE_TOKEN_NAMES)[number]\n | (typeof TEXT_TOKEN_NAMES)[number]\n | (typeof BORDER_TOKEN_NAMES)[number]\n | (typeof BRAND_TOKEN_NAMES)[number]\n | (typeof STATUS_TOKEN_NAMES)[number]\n | (typeof CHART_TOKEN_NAMES)[number]\n | (typeof FOCUS_TOKEN_NAMES)[number]\n | (typeof ALPHA_TOKEN_NAMES)[number];\n\nfunction metas(\n category: TokenCategory,\n names: readonly SemanticColorName[]\n): SemanticTokenMeta[] {\n return names.map((name) => ({ name, category }));\n}\n\nexport const SEMANTIC_TOKEN_REGISTRY: readonly SemanticTokenMeta[] = [\n ...metas('surface', SURFACE_TOKEN_NAMES),\n ...metas('text', TEXT_TOKEN_NAMES),\n ...metas('border', BORDER_TOKEN_NAMES),\n ...metas('brand', BRAND_TOKEN_NAMES),\n ...metas('status', STATUS_TOKEN_NAMES),\n ...metas('chart', CHART_TOKEN_NAMES),\n ...metas('focus', FOCUS_TOKEN_NAMES),\n ...metas('alpha', ALPHA_TOKEN_NAMES),\n] as const;\n","import type { TokenValue } from './types.ts';\n\nexport interface ExtractedToken {\n /** Group keys from the document root to the leaf. */\n path: string[];\n /** The authored `$value`. */\n value: TokenValue;\n /** The leaf's `$type`, or the nearest group's. */\n type: string;\n /** The authored `$description`. */\n description: string | undefined;\n}\n\nexport interface TokenReference {\n /** Where the reference sits inside the value; `''` for the whole value. */\n field: string;\n /** The referenced path, e.g. `family.font-heading`. */\n reference: string;\n}\n\nfunction isGroup(value: unknown): value is Record<string, unknown> {\n return typeof value === 'object' && value !== null && !Array.isArray(value);\n}\n\n/**\n * Collect every DTCG leaf (a node with `$value`) in document order. `$type`\n * inherits from the nearest enclosing group. Throws if a leaf has no `$type`\n * of its own or inherited.\n */\nexport function extractTokens(\n document: Record<string, unknown>\n): ExtractedToken[] {\n const result: ExtractedToken[] = [];\n\n function visit(\n group: Record<string, unknown>,\n groupPath: string[],\n inheritedType: unknown\n ) {\n for (const [key, node] of Object.entries(group)) {\n if (key.startsWith('$') || !isGroup(node)) continue;\n\n const path = [...groupPath, key];\n const type = node.$type ?? inheritedType;\n if (!('$value' in node)) {\n visit(node, path, type);\n continue;\n }\n if (typeof type !== 'string') {\n throw new Error(`Token ${path.join('.')} has $value but no $type`);\n }\n result.push({\n path,\n value: node.$value as TokenValue,\n type,\n description:\n typeof node.$description === 'string' ? node.$description : undefined,\n });\n }\n }\n\n visit(document, [], document.$type);\n return result;\n}\n\n/** Check if a value is a DTCG reference (e.g., \"{blue.500}\") */\nexport function isReference(value: unknown): value is string {\n return (\n typeof value === 'string' && value.startsWith('{') && value.endsWith('}')\n );\n}\n\n/** Extract the path (`blue.500`) from a DTCG reference string (`{blue.500}`) */\nexport function extractRefPath(ref: string): string {\n return ref.slice(1, -1);\n}\n\n/** List the references a value makes, including those nested in composites. */\nexport function tokenReferences(value: TokenValue): TokenReference[] {\n const references: TokenReference[] = [];\n\n function visit(node: TokenValue, field: string) {\n if (isReference(node)) {\n references.push({ field, reference: extractRefPath(node) });\n return;\n }\n if (Array.isArray(node)) {\n node.forEach((item, index) => visit(item, `${field}[${index}]`));\n return;\n }\n if (!isGroup(node)) return;\n for (const [key, item] of Object.entries(node)) {\n visit(item, field ? `${field}.${key}` : key);\n }\n }\n\n visit(value, '');\n return references;\n}\n\n/**\n * Convert a token path to a CSS variable name (without `--`), optionally\n * prefixed with a category (e.g. `color`, `radius`) and `nx-`.\n */\nexport function pathToCssVarPrefixed(\n tokenPath: readonly string[],\n categoryPrefix: string | null = null,\n useNxPrefix = false\n): string {\n const cssName = tokenPath.join('-');\n const base = categoryPrefix ? `${categoryPrefix}-${cssName}` : cssName;\n return useNxPrefix ? `nx-${base}` : base;\n}\n","import {\n hexToOklchMechanical,\n hexToOklchPinned,\n isPaletteShadeKey,\n} from './perceptual-grid.ts';\nimport { extractRefPath, isReference } from './tokens.ts';\nimport type { TokenValue } from './types.ts';\n\n/**\n * Reference path (e.g. `blue.500` or `color.blue.500`) to the primitive's\n * CSS variable name without the leading `--`.\n */\nexport type PrimitiveLookup = ReadonlyMap<string, { cssName: string }>;\n\nexport interface CssDeclaration {\n property: string;\n value: string;\n}\n\nfunction isDimension(\n value: unknown\n): value is { value: number; unit?: string } {\n return typeof value === 'object' && value !== null && 'value' in value;\n}\n\n/**\n * Format a token value to a CSS string. For `$type: \"color\"` hex values,\n * routes through the OKLCH converters: palette shade tokens (path ending in a\n * shade key like `'500'`) get pinned to the perceptual L grid; everything else\n * (white/black/semantic hex literals with alpha) is converted mechanically.\n * `tokenPath` routes shade conversions. Throws if `value` is undefined.\n */\nexport function formatTokenValue(\n value: TokenValue | undefined,\n type: string,\n tokenPath?: readonly string[]\n): string {\n if (value === undefined) {\n throw new Error(`formatTokenValue: value is undefined (type=\"${type}\")`);\n }\n\n if (type === 'dimension' && isDimension(value)) {\n // Round to 4 decimals to strip Figma's float-32 export artifacts\n // (e.g. -0.800000011920929 → -0.8).\n const rounded = Math.round(value.value * 10000) / 10000;\n return `${rounded}${value.unit || 'px'}`;\n }\n\n if (type === 'color' && typeof value === 'string' && value.startsWith('#')) {\n const lastSegment = tokenPath?.[tokenPath.length - 1];\n const palette = tokenPath?.[tokenPath.length - 2];\n\n if (palette !== undefined && isPaletteShadeKey(lastSegment)) {\n // The segment before the shade is the palette/hue (e.g. ['blue','500']),\n // which selects the per-hue lightness curve in the grid.\n return hexToOklchPinned(value, lastSegment, palette, (message) =>\n console.warn(message)\n );\n }\n\n if (isPaletteShadeKey(lastSegment)) {\n console.warn(\n `formatTokenValue: shade-key color \"${tokenPath?.join('.')}\" lacks palette root — falling through to mechanical`\n );\n }\n\n return hexToOklchMechanical(value);\n }\n\n if (typeof value === 'string') {\n return value;\n }\n\n if (typeof value === 'number') {\n return String(value);\n }\n\n return JSON.stringify(value);\n}\n\n/**\n * Resolve a DTCG reference like `{blue.500}` to a CSS `var(--…)`, or leave it\n * as authored when the reference is unknown.\n */\nfunction resolveReference(\n reference: string,\n primitiveMap: PrimitiveLookup\n): string {\n const primitiveInfo = primitiveMap.get(extractRefPath(reference));\n\n if (primitiveInfo) {\n return `var(--${primitiveInfo.cssName})`;\n }\n\n console.warn(`⚠ Reference not found: ${reference}`);\n return reference;\n}\n\n/**\n * Resolve a value that might be a reference or a dimension object.\n * `tokenPath` routes color conversions.\n */\nexport function resolveValue(\n value: TokenValue,\n primitiveMap: PrimitiveLookup,\n type = 'unknown',\n tokenPath?: readonly string[]\n): string {\n if (isReference(value)) {\n return resolveReference(value, primitiveMap);\n }\n\n if (type === 'dimension' || isDimension(value)) {\n return formatTokenValue(value, 'dimension');\n }\n\n return formatTokenValue(value, type, tokenPath);\n}\n\n/**\n * Format a shadow property value as a var() reference or literal.\n * References are resolved through the primitive map so the var name matches\n * the actual primitive cssName. This means shadow property references can\n * point to any primitive category, not just `--nx-shadow-*`.\n */\nfunction formatShadowPropertyAsVar(\n value: TokenValue | undefined,\n primitiveMap: PrimitiveLookup\n): string {\n if (isReference(value)) {\n return resolveValue(value, primitiveMap);\n }\n\n if (isDimension(value)) {\n return formatTokenValue(value, 'dimension');\n }\n\n return String(value);\n}\n\nfunction formatShadowLayer(\n layer: Record<string, TokenValue>,\n primitiveMap: PrimitiveLookup,\n isInset: boolean\n): string {\n const x = formatShadowPropertyAsVar(layer.offsetX, primitiveMap);\n const y = formatShadowPropertyAsVar(layer.offsetY, primitiveMap);\n const blur = formatShadowPropertyAsVar(layer.blur, primitiveMap);\n const spread = formatShadowPropertyAsVar(layer.spread, primitiveMap);\n const color = formatShadowPropertyAsVar(layer.color, primitiveMap);\n const inset = isInset || layer.inset ? 'inset ' : '';\n\n return `${inset}${x} ${y} ${blur} ${spread} ${color}`;\n}\n\n/**\n * Format a complete shadow composite (single or multi-layer) to CSS value.\n * `value` is one layer object or an array of layers.\n */\nexport function formatShadowComposite(\n value: TokenValue,\n primitiveMap: PrimitiveLookup,\n isInset = false\n): string {\n const layers = (Array.isArray(value) ? value : [value]) as Record<\n string,\n TokenValue\n >[];\n return layers\n .map((layer) => formatShadowLayer(layer, primitiveMap, isInset))\n .join(', ');\n}\n\n/**\n * Format a shadow style from `styles/shadows.json`, where `tokenPath` is e.g.\n * `['inner']` or `['focus', 'error']`. The top-level `inner` style is inset.\n */\nexport function formatShadowStyle(\n tokenPath: readonly string[],\n value: TokenValue,\n primitiveMap: PrimitiveLookup\n): string {\n const isInset = tokenPath.length === 1 && tokenPath[0] === 'inner';\n return formatShadowComposite(value, primitiveMap, isInset);\n}\n\nconst TYPOGRAPHY_PROPERTIES = [\n ['fontFamily', 'font-family'],\n ['fontSize', 'font-size'],\n ['fontWeight', 'font-weight'],\n ['lineHeight', 'line-height'],\n ['letterSpacing', 'letter-spacing'],\n] as const;\n\n/**\n * Declarations a typography composite emits in its `@utility`. `tokenPath` is\n * e.g. `['heading', 'large']` and `value` is the composite `$value`.\n */\nexport function formatTypographyDeclarations(\n tokenPath: readonly string[],\n value: TokenValue,\n primitiveMap: PrimitiveLookup\n): CssDeclaration[] {\n const fields = value as Record<string, TokenValue>;\n const declarations: CssDeclaration[] = [];\n\n for (const [field, property] of TYPOGRAPHY_PROPERTIES) {\n const fieldValue = fields[field];\n if (!fieldValue) continue;\n // Figma exports `lineHeight: \"auto\"` for the code-inline typography token,\n // but `line-height: auto` is invalid CSS — browsers ignore it. Map to\n // `normal` (CSS spec default, ~1.2) so the emitted utility is well-formed.\n const css =\n fieldValue === 'auto' ? 'normal' : resolveValue(fieldValue, primitiveMap);\n declarations.push({ property, value: css });\n }\n\n if (tokenPath[0] === 'heading') {\n declarations.push({ property: 'text-wrap', value: 'balance' });\n }\n\n if (tokenPath[0] === 'body') {\n // orphan/widow protection for multi-line copy\n declarations.push({ property: 'text-wrap', value: 'pretty' });\n }\n\n return declarations;\n}\n","import type { UtilityRule } from './utilities.ts';\n\n/** Matches a per-mode spacing file in `semantic/`, capturing the mode name. */\nexport const SPACING_MODE_FILE_PATTERN = /^spacing-([a-z]+)\\.json$/;\n\n/**\n * Top-level keys a `spacing-{mode}.json` may use. A key outside both lists\n * throws, so a stray group fails close to the JSON edit.\n */\nconst SPACING_NUMERIC_ROOTS = new Set(['spacing']);\nconst SPACING_ROLE_ROOTS = new Set(['container', 'layout']);\n\n/**\n * Numeric tokens (`spacing.*`) seed Tailwind's `--spacing-*` theme namespace.\n * Role tokens (`container.*`, `layout.*`) never enter `@theme`: Tailwind's\n * `--container-*` namespace would codegen `nx:w-p` from them. They get their\n * own `@utility` instead. Throws if the path's root is in neither allowlist.\n */\nexport function spacingTokenKind(\n tokenPath: readonly string[]\n): 'numeric' | 'role' {\n const root = tokenPath[0] ?? '';\n if (SPACING_NUMERIC_ROOTS.has(root)) return 'numeric';\n if (SPACING_ROLE_ROOTS.has(root)) return 'role';\n throw new Error(\n `spacingTokenKind: unknown top-level key \"${root}\" in path [${tokenPath.join('.')}] — extend SPACING_NUMERIC_ROOTS / SPACING_ROLE_ROOTS`\n );\n}\n\nexport function splitSpacingTokens<T extends { path: readonly string[] }>(\n tokens: readonly T[]\n): { numeric: T[]; role: T[] } {\n const halves: { numeric: T[]; role: T[] } = { numeric: [], role: [] };\n for (const token of tokens) {\n halves[spacingTokenKind(token.path)].push(token);\n }\n return halves;\n}\n\n/**\n * Utility prefix and properties for the family segment of a three-segment\n * `[role, family, size]` role path.\n */\nconst FAMILY_TO_UTILITY = {\n 'padding-x': { prefix: 'px', properties: ['padding-left', 'padding-right'] },\n 'padding-y': { prefix: 'py', properties: ['padding-top', 'padding-bottom'] },\n gap: { prefix: 'gap', properties: ['gap'] },\n};\n\n/**\n * Utility name and properties for a role path:\n *\n * `<role>.<family>.<size>` → `<prefix>-<role>-<size>`\n * `container.p` → `p-container`\n * `container.gap` → `gap-container`\n * `layout.section-gap` → `gap-layout-section`\n */\nfunction deriveRoleUtility(tokenPath: readonly string[]): {\n utilityName: string;\n properties: readonly string[];\n} {\n if (tokenPath.length < 2 || tokenPath.length > 3) {\n throw new Error(\n `deriveRoleUtility: path [${tokenPath.join('.')}] has ${tokenPath.length} segment(s); only 2- or 3-segment role paths are supported`\n );\n }\n const [role, second = '', third] = tokenPath;\n\n if (third !== undefined) {\n const entry = FAMILY_TO_UTILITY[second as keyof typeof FAMILY_TO_UTILITY];\n if (!entry) {\n throw new Error(\n `deriveRoleUtility: unknown family \"${second}\" in path [${tokenPath.join('.')}] — extend FAMILY_TO_UTILITY`\n );\n }\n return {\n utilityName: `${entry.prefix}-${role}-${third}`,\n properties: entry.properties,\n };\n }\n\n if (second === 'gap') {\n return { utilityName: `gap-${role}`, properties: ['gap'] };\n }\n if (second === 'p') {\n return { utilityName: `p-${role}`, properties: ['padding'] };\n }\n const gapSuffixMatch = second.match(/^(.+)-gap$/);\n if (gapSuffixMatch) {\n return {\n utilityName: `gap-${role}-${gapSuffixMatch[1]}`,\n properties: ['gap'],\n };\n }\n\n throw new Error(\n `deriveRoleUtility: unhandled path shape [${tokenPath.join('.')}] — extend deriveRoleUtility cases`\n );\n}\n\n/**\n * The utility a spacing role token (path e.g. `['container', 'p']`) emits. It\n * reads the per-mode `--nx-<path>` variable, so a `[data-density]` swap\n * reaches it.\n */\nexport function spacingRoleUtility(tokenPath: readonly string[]): UtilityRule {\n const { utilityName, properties } = deriveRoleUtility(tokenPath);\n const value = `var(--nx-${tokenPath.join('-')})`;\n return {\n name: utilityName,\n declarations: properties.map((property) => ({ property, value })),\n };\n}\n","import type { CssDeclaration } from './format.ts';\n\n/** One generated `@utility` rule. */\nexport interface UtilityRule {\n /** The utility name without the `nx:` prefix. */\n name: string;\n /** The rule body, in order. */\n declarations: CssDeclaration[];\n}\n\nconst BORDER_WIDTH_SIDES = [\n ['', 'border-style', 'border-width'],\n ['x-', 'border-inline-style', 'border-inline-width'],\n ['y-', 'border-block-style', 'border-block-width'],\n ['t-', 'border-top-style', 'border-top-width'],\n ['r-', 'border-right-style', 'border-right-width'],\n ['b-', 'border-bottom-style', 'border-bottom-width'],\n ['l-', 'border-left-style', 'border-left-width'],\n ['s-', 'border-inline-start-style', 'border-inline-start-width'],\n ['e-', 'border-inline-end-style', 'border-inline-end-width'],\n ['bs-', 'border-block-start-style', 'border-block-start-width'],\n ['be-', 'border-block-end-style', 'border-block-end-width'],\n] as const;\n\n/**\n * The per-side `border-width-*` alias utilities one border width `key` (e.g.\n * `default`) emits: `border-width-default`, `border-width-x-default`, …\n * `border-width-be-default`. The `border-{side?}-{key}` spellings are\n * Tailwind's own utilities, built from the `--border-width-{key}` theme key.\n */\nexport function borderWidthAliasUtilities(key: string): UtilityRule[] {\n const value = `var(--nx-borderwidth-${key})`;\n return BORDER_WIDTH_SIDES.map(([side, styleProperty, widthProperty]) => ({\n name: `border-width-${side}${key}`,\n declarations: [\n { property: styleProperty, value: 'var(--tw-border-style, solid)' },\n { property: widthProperty, value },\n ],\n }));\n}\n\n/**\n * The utility a motion duration `key` (e.g. `fast`) emits. Tailwind v4 does\n * not codegen named `duration-*` utilities from theme variables, so each is\n * explicit.\n */\nexport function durationUtility(key: string): UtilityRule {\n const value = `var(--nx-motion-duration-${key})`;\n return {\n name: `duration-${key}`,\n declarations: [\n { property: '--tw-duration', value },\n { property: 'transition-duration', value },\n ],\n };\n}\n\n/**\n * The motion tokens emitted as Tailwind's `--default-transition-duration` and\n * `--default-transition-timing-function`.\n */\nexport const DEFAULT_TRANSITION = {\n duration: 'default',\n ease: 'enter',\n} as const;\n\n/** Semantic border tokens keyed by their utility alias, in emit order. */\nexport const BORDER_COLOR_ALIAS_TOKENS = {\n default: 'border-default',\n 'default-alpha': 'border-default-alpha',\n focus: 'border-focus',\n disabled: 'border-disabled',\n warning: 'warning-border',\n 'warning-active': 'border-warning-active',\n success: 'success-border',\n 'success-active': 'border-success-active',\n error: 'error-border',\n 'error-active': 'border-error-active',\n information: 'information-border',\n 'information-active': 'border-information-active',\n primary: 'primary-border',\n 'primary-active': 'primary-border-active',\n} as const;\n\nexport const BORDER_COLOR_ALIAS_NAMES = Object.keys(BORDER_COLOR_ALIAS_TOKENS);\n\n/** The utility alias for a semantic color name (without the CSS prefix). */\nexport function borderColorAliasName(tokenName: string): string | null {\n return (\n Object.entries(BORDER_COLOR_ALIAS_TOKENS).find(\n ([, token]) => token === tokenName\n )?.[0] ?? null\n );\n}\n","import { COLOR_FAMILIES } from '../lib/apca-pairs';\n\nconst FOREGROUND_DESCRIPTIONS = Object.fromEntries(\n COLOR_FAMILIES.flatMap((family) => [\n [\n `${family}-foreground`,\n `Foreground on ${family}-background. The surface relationship defines this role, not text alone: text and icons share it, and contrasting control parts or indicators may use it on the same surface. Other pairings require contrast coverage.`,\n ],\n [\n `${family}-subtle-foreground`,\n `Foreground on ${family}-subtle. The surface relationship defines this role, not text alone: text and icons share it, and contrasting indicators may use it on that surface. Use on neutral surfaces only with contrast coverage for the intended content tier.`,\n ],\n ])\n);\n\n/** Prose for derived colours, keyed by registry name. Authored leaves use `$description`. */\nexport const RUNTIME_COLOR_DESCRIPTIONS: Readonly<\n Partial<Record<string, string>>\n> = {\n 'muted-extralight':\n 'Quietest muted surface — sits between background and muted for barely-there fills (empty states, subtle panels).',\n 'muted-foreground':\n \"It's a gray that softens contrast so primary content stands forward.\",\n 'muted-foreground-subtle':\n 'Tertiary text tier below muted-foreground - helper text, captions, divider labels.',\n ...FOREGROUND_DESCRIPTIONS,\n};\n","{\n \"thin\": {\n \"$value\": {\n \"value\": 0.5,\n \"unit\": \"px\"\n },\n \"$type\": \"dimension\"\n },\n \"default\": {\n \"$value\": {\n \"value\": 0.5,\n \"unit\": \"px\"\n },\n \"$type\": \"dimension\"\n },\n \"thick\": {\n \"$value\": {\n \"value\": 1,\n \"unit\": \"px\"\n },\n \"$type\": \"dimension\"\n }\n}\n","{\n \"thin\": {\n \"$value\": {\n \"value\": 0.5,\n \"unit\": \"px\"\n },\n \"$type\": \"dimension\"\n },\n \"default\": {\n \"$value\": {\n \"value\": 1,\n \"unit\": \"px\"\n },\n \"$type\": \"dimension\"\n },\n \"thick\": {\n \"$value\": {\n \"value\": 2,\n \"unit\": \"px\"\n },\n \"$type\": \"dimension\"\n }\n}\n","{\n \"thin\": {\n \"$value\": {\n \"value\": 1,\n \"unit\": \"px\"\n },\n \"$type\": \"dimension\"\n },\n \"default\": {\n \"$value\": {\n \"value\": 2,\n \"unit\": \"px\"\n },\n \"$type\": \"dimension\"\n },\n \"thick\": {\n \"$value\": {\n \"value\": 3,\n \"unit\": \"px\"\n },\n \"$type\": \"dimension\"\n }\n}\n","{\n \"duration\": {\n \"0\": {\n \"$value\": \"0ms\",\n \"$type\": \"duration\",\n \"$description\": \"Instant state changes.\"\n },\n \"faster\": {\n \"$value\": \"100ms\",\n \"$type\": \"duration\",\n \"$description\": \"Tiny feedback transitions such as pressed states.\"\n },\n \"fast\": {\n \"$value\": \"150ms\",\n \"$type\": \"duration\",\n \"$description\": \"Frequent lightweight UI transitions such as tab indicators and small fades.\"\n },\n \"default\": {\n \"$value\": \"200ms\",\n \"$type\": \"duration\",\n \"$description\": \"Default component motion for popovers, menus, and routine state changes.\"\n },\n \"moderate\": {\n \"$value\": \"240ms\",\n \"$type\": \"duration\",\n \"$description\": \"Slightly larger routine transitions that need a little more legibility.\"\n },\n \"slow\": {\n \"$value\": \"300ms\",\n \"$type\": \"duration\",\n \"$description\": \"Larger surfaces such as dialogs and compact sheets.\"\n },\n \"slower\": {\n \"$value\": \"500ms\",\n \"$type\": \"duration\",\n \"$description\": \"Large or rare surface motion where extra continuity is useful.\"\n }\n },\n \"ease\": {\n \"linear\": {\n \"$value\": \"linear\",\n \"$type\": \"cubicBezier\",\n \"$description\": \"Constant-rate motion for loops and progress-like animations.\"\n },\n \"enter\": {\n \"$value\": \"cubic-bezier(0.23, 1, 0.32, 1)\",\n \"$type\": \"cubicBezier\",\n \"$description\": \"Strong ease-out curve for elements entering or becoming active.\"\n },\n \"exit\": {\n \"$value\": \"cubic-bezier(0.4, 0, 1, 1)\",\n \"$type\": \"cubicBezier\",\n \"$description\": \"Accelerating curve for elements exiting or becoming hidden.\"\n },\n \"move\": {\n \"$value\": \"cubic-bezier(0.77, 0, 0.175, 1)\",\n \"$type\": \"cubicBezier\",\n \"$description\": \"Intentional on-screen movement between persistent positions.\"\n }\n }\n}\n","{\n \"base\": {\n \"$value\": {\n \"value\": 16,\n \"unit\": \"px\"\n },\n \"$type\": \"dimension\"\n },\n \"sm\": {\n \"$value\": {\n \"value\": 14,\n \"unit\": \"px\"\n },\n \"$type\": \"dimension\"\n },\n \"md\": {\n \"$value\": {\n \"value\": 16,\n \"unit\": \"px\"\n },\n \"$type\": \"dimension\"\n },\n \"lg\": {\n \"$value\": {\n \"value\": 18,\n \"unit\": \"px\"\n },\n \"$type\": \"dimension\"\n },\n \"xl\": {\n \"$value\": {\n \"value\": 20,\n \"unit\": \"px\"\n },\n \"$type\": \"dimension\"\n },\n \"2xl\": {\n \"$value\": {\n \"value\": 24,\n \"unit\": \"px\"\n },\n \"$type\": \"dimension\"\n },\n \"3xl\": {\n \"$value\": {\n \"value\": 32,\n \"unit\": \"px\"\n },\n \"$type\": \"dimension\"\n },\n \"4xl\": {\n \"$value\": {\n \"value\": 40,\n \"unit\": \"px\"\n },\n \"$type\": \"dimension\"\n },\n \"full\": {\n \"$value\": {\n \"value\": 9999,\n \"unit\": \"px\"\n },\n \"$type\": \"dimension\"\n }\n}\n","{\n \"base\": {\n \"$value\": {\n \"value\": 12,\n \"unit\": \"px\"\n },\n \"$type\": \"dimension\"\n },\n \"sm\": {\n \"$value\": {\n \"value\": 10,\n \"unit\": \"px\"\n },\n \"$type\": \"dimension\"\n },\n \"md\": {\n \"$value\": {\n \"value\": 12,\n \"unit\": \"px\"\n },\n \"$type\": \"dimension\"\n },\n \"lg\": {\n \"$value\": {\n \"value\": 14,\n \"unit\": \"px\"\n },\n \"$type\": \"dimension\"\n },\n \"xl\": {\n \"$value\": {\n \"value\": 16,\n \"unit\": \"px\"\n },\n \"$type\": \"dimension\"\n },\n \"2xl\": {\n \"$value\": {\n \"value\": 20,\n \"unit\": \"px\"\n },\n \"$type\": \"dimension\"\n },\n \"3xl\": {\n \"$value\": {\n \"value\": 28,\n \"unit\": \"px\"\n },\n \"$type\": \"dimension\"\n },\n \"4xl\": {\n \"$value\": {\n \"value\": 36,\n \"unit\": \"px\"\n },\n \"$type\": \"dimension\"\n },\n \"full\": {\n \"$value\": {\n \"value\": 9999,\n \"unit\": \"px\"\n },\n \"$type\": \"dimension\"\n }\n}\n","{\n \"base\": {\n \"$value\": {\n \"value\": 8,\n \"unit\": \"px\"\n },\n \"$type\": \"dimension\"\n },\n \"sm\": {\n \"$value\": {\n \"value\": 6,\n \"unit\": \"px\"\n },\n \"$type\": \"dimension\"\n },\n \"md\": {\n \"$value\": {\n \"value\": 8,\n \"unit\": \"px\"\n },\n \"$type\": \"dimension\"\n },\n \"lg\": {\n \"$value\": {\n \"value\": 10,\n \"unit\": \"px\"\n },\n \"$type\": \"dimension\"\n },\n \"xl\": {\n \"$value\": {\n \"value\": 12,\n \"unit\": \"px\"\n },\n \"$type\": \"dimension\"\n },\n \"2xl\": {\n \"$value\": {\n \"value\": 16,\n \"unit\": \"px\"\n },\n \"$type\": \"dimension\"\n },\n \"3xl\": {\n \"$value\": {\n \"value\": 24,\n \"unit\": \"px\"\n },\n \"$type\": \"dimension\"\n },\n \"4xl\": {\n \"$value\": {\n \"value\": 32,\n \"unit\": \"px\"\n },\n \"$type\": \"dimension\"\n },\n \"full\": {\n \"$value\": {\n \"value\": 9999,\n \"unit\": \"px\"\n },\n \"$type\": \"dimension\"\n }\n}\n","{\n \"base\": {\n \"$value\": {\n \"value\": 0,\n \"unit\": \"px\"\n },\n \"$type\": \"dimension\"\n },\n \"sm\": {\n \"$value\": {\n \"value\": 0,\n \"unit\": \"px\"\n },\n \"$type\": \"dimension\"\n },\n \"md\": {\n \"$value\": {\n \"value\": 0,\n \"unit\": \"px\"\n },\n \"$type\": \"dimension\"\n },\n \"lg\": {\n \"$value\": {\n \"value\": 0,\n \"unit\": \"px\"\n },\n \"$type\": \"dimension\"\n },\n \"xl\": {\n \"$value\": {\n \"value\": 0,\n \"unit\": \"px\"\n },\n \"$type\": \"dimension\"\n },\n \"2xl\": {\n \"$value\": {\n \"value\": 0,\n \"unit\": \"px\"\n },\n \"$type\": \"dimension\"\n },\n \"3xl\": {\n \"$value\": {\n \"value\": 0,\n \"unit\": \"px\"\n },\n \"$type\": \"dimension\"\n },\n \"4xl\": {\n \"$value\": {\n \"value\": 0,\n \"unit\": \"px\"\n },\n \"$type\": \"dimension\"\n },\n \"full\": {\n \"$value\": {\n \"value\": 9999,\n \"unit\": \"px\"\n },\n \"$type\": \"dimension\"\n }\n}\n","{\n \"base\": {\n \"$value\": {\n \"value\": 4,\n \"unit\": \"px\"\n },\n \"$type\": \"dimension\"\n },\n \"sm\": {\n \"$value\": {\n \"value\": 2,\n \"unit\": \"px\"\n },\n \"$type\": \"dimension\"\n },\n \"md\": {\n \"$value\": {\n \"value\": 4,\n \"unit\": \"px\"\n },\n \"$type\": \"dimension\"\n },\n \"lg\": {\n \"$value\": {\n \"value\": 6,\n \"unit\": \"px\"\n },\n \"$type\": \"dimension\"\n },\n \"xl\": {\n \"$value\": {\n \"value\": 8,\n \"unit\": \"px\"\n },\n \"$type\": \"dimension\"\n },\n \"2xl\": {\n \"$value\": {\n \"value\": 12,\n \"unit\": \"px\"\n },\n \"$type\": \"dimension\"\n },\n \"3xl\": {\n \"$value\": {\n \"value\": 20,\n \"unit\": \"px\"\n },\n \"$type\": \"dimension\"\n },\n \"4xl\": {\n \"$value\": {\n \"value\": 28,\n \"unit\": \"px\"\n },\n \"$type\": \"dimension\"\n },\n \"full\": {\n \"$value\": {\n \"value\": 9999,\n \"unit\": \"px\"\n },\n \"$type\": \"dimension\"\n }\n}\n","{\n \"2xs\": {\n \"layer-1\": {\n \"x\": {\n \"$value\": {\n \"value\": 0,\n \"unit\": \"px\"\n },\n \"$type\": \"dimension\"\n },\n \"y\": {\n \"$value\": {\n \"value\": 1,\n \"unit\": \"px\"\n },\n \"$type\": \"dimension\"\n },\n \"blur\": {\n \"$value\": {\n \"value\": 3,\n \"unit\": \"px\"\n },\n \"$type\": \"dimension\"\n },\n \"spread\": {\n \"$value\": {\n \"value\": 0,\n \"unit\": \"px\"\n },\n \"$type\": \"dimension\"\n },\n \"color\": {\n \"$value\": \"#0000000d\",\n \"$type\": \"color\"\n }\n }\n },\n \"xs\": {\n \"layer-1\": {\n \"x\": {\n \"$value\": {\n \"value\": 0,\n \"unit\": \"px\"\n },\n \"$type\": \"dimension\"\n },\n \"y\": {\n \"$value\": {\n \"value\": 1,\n \"unit\": \"px\"\n },\n \"$type\": \"dimension\"\n },\n \"blur\": {\n \"$value\": {\n \"value\": 3,\n \"unit\": \"px\"\n },\n \"$type\": \"dimension\"\n },\n \"spread\": {\n \"$value\": {\n \"value\": 0,\n \"unit\": \"px\"\n },\n \"$type\": \"dimension\"\n },\n \"color\": {\n \"$value\": \"#0000000d\",\n \"$type\": \"color\"\n }\n }\n },\n \"sm\": {\n \"layer-1\": {\n \"x\": {\n \"$value\": {\n \"value\": 0,\n \"unit\": \"px\"\n },\n \"$type\": \"dimension\"\n },\n \"y\": {\n \"$value\": {\n \"value\": 1,\n \"unit\": \"px\"\n },\n \"$type\": \"dimension\"\n },\n \"blur\": {\n \"$value\": {\n \"value\": 3,\n \"unit\": \"px\"\n },\n \"$type\": \"dimension\"\n },\n \"spread\": {\n \"$value\": {\n \"value\": 0,\n \"unit\": \"px\"\n },\n \"$type\": \"dimension\"\n },\n \"color\": {\n \"$value\": \"#0000001a\",\n \"$type\": \"color\"\n }\n },\n \"layer-2\": {\n \"x\": {\n \"$value\": {\n \"value\": 0,\n \"unit\": \"px\"\n },\n \"$type\": \"dimension\"\n },\n \"y\": {\n \"$value\": {\n \"value\": 1,\n \"unit\": \"px\"\n },\n \"$type\": \"dimension\"\n },\n \"blur\": {\n \"$value\": {\n \"value\": 2,\n \"unit\": \"px\"\n },\n \"$type\": \"dimension\"\n },\n \"spread\": {\n \"$value\": {\n \"value\": -1,\n \"unit\": \"px\"\n },\n \"$type\": \"dimension\"\n },\n \"color\": {\n \"$value\": \"#0000001a\",\n \"$type\": \"color\"\n }\n }\n },\n \"base\": {\n \"layer-1\": {\n \"x\": {\n \"$value\": {\n \"value\": 0,\n \"unit\": \"px\"\n },\n \"$type\": \"dimension\"\n },\n \"y\": {\n \"$value\": {\n \"value\": 1,\n \"unit\": \"px\"\n },\n \"$type\": \"dimension\"\n },\n \"blur\": {\n \"$value\": {\n \"value\": 3,\n \"unit\": \"px\"\n },\n \"$type\": \"dimension\"\n },\n \"spread\": {\n \"$value\": {\n \"value\": 0,\n \"unit\": \"px\"\n },\n \"$type\": \"dimension\"\n },\n \"color\": {\n \"$value\": \"#0000001a\",\n \"$type\": \"color\"\n }\n },\n \"layer-2\": {\n \"x\": {\n \"$value\": {\n \"value\": 0,\n \"unit\": \"px\"\n },\n \"$type\": \"dimension\"\n },\n \"y\": {\n \"$value\": {\n \"value\": 1,\n \"unit\": \"px\"\n },\n \"$type\": \"dimension\"\n },\n \"blur\": {\n \"$value\": {\n \"value\": 2,\n \"unit\": \"px\"\n },\n \"$type\": \"dimension\"\n },\n \"spread\": {\n \"$value\": {\n \"value\": -1,\n \"unit\": \"px\"\n },\n \"$type\": \"dimension\"\n },\n \"color\": {\n \"$value\": \"#0000001a\",\n \"$type\": \"color\"\n }\n }\n },\n \"md\": {\n \"layer-1\": {\n \"x\": {\n \"$value\": {\n \"value\": 0,\n \"unit\": \"px\"\n },\n \"$type\": \"dimension\"\n },\n \"y\": {\n \"$value\": {\n \"value\": 1,\n \"unit\": \"px\"\n },\n \"$type\": \"dimension\"\n },\n \"blur\": {\n \"$value\": {\n \"value\": 3,\n \"unit\": \"px\"\n },\n \"$type\": \"dimension\"\n },\n \"spread\": {\n \"$value\": {\n \"value\": 0,\n \"unit\": \"px\"\n },\n \"$type\": \"dimension\"\n },\n \"color\": {\n \"$value\": \"#0000001a\",\n \"$type\": \"color\"\n }\n },\n \"layer-2\": {\n \"x\": {\n \"$value\": {\n \"value\": 0,\n \"unit\": \"px\"\n },\n \"$type\": \"dimension\"\n },\n \"y\": {\n \"$value\": {\n \"value\": 2,\n \"unit\": \"px\"\n },\n \"$type\": \"dimension\"\n },\n \"blur\": {\n \"$value\": {\n \"value\": 4,\n \"unit\": \"px\"\n },\n \"$type\": \"dimension\"\n },\n \"spread\": {\n \"$value\": {\n \"value\": -11,\n \"unit\": \"px\"\n },\n \"$type\": \"dimension\"\n },\n \"color\": {\n \"$value\": \"#0000001a\",\n \"$type\": \"color\"\n }\n }\n },\n \"lg\": {\n \"layer-1\": {\n \"x\": {\n \"$value\": {\n \"value\": 0,\n \"unit\": \"px\"\n },\n \"$type\": \"dimension\"\n },\n \"y\": {\n \"$value\": {\n \"value\": 1,\n \"unit\": \"px\"\n },\n \"$type\": \"dimension\"\n },\n \"blur\": {\n \"$value\": {\n \"value\": 3,\n \"unit\": \"px\"\n },\n \"$type\": \"dimension\"\n },\n \"spread\": {\n \"$value\": {\n \"value\": 0,\n \"unit\": \"px\"\n },\n \"$type\": \"dimension\"\n },\n \"color\": {\n \"$value\": \"#0000001a\",\n \"$type\": \"color\"\n }\n },\n \"layer-2\": {\n \"x\": {\n \"$value\": {\n \"value\": 0,\n \"unit\": \"px\"\n },\n \"$type\": \"dimension\"\n },\n \"y\": {\n \"$value\": {\n \"value\": 4,\n \"unit\": \"px\"\n },\n \"$type\": \"dimension\"\n },\n \"blur\": {\n \"$value\": {\n \"value\": 6,\n \"unit\": \"px\"\n },\n \"$type\": \"dimension\"\n },\n \"spread\": {\n \"$value\": {\n \"value\": -1,\n \"unit\": \"px\"\n },\n \"$type\": \"dimension\"\n },\n \"color\": {\n \"$value\": \"#0000001a\",\n \"$type\": \"color\"\n }\n }\n },\n \"xl\": {\n \"layer-1\": {\n \"x\": {\n \"$value\": {\n \"value\": 0,\n \"unit\": \"px\"\n },\n \"$type\": \"dimension\"\n },\n \"y\": {\n \"$value\": {\n \"value\": 1,\n \"unit\": \"px\"\n },\n \"$type\": \"dimension\"\n },\n \"blur\": {\n \"$value\": {\n \"value\": 3,\n \"unit\": \"px\"\n },\n \"$type\": \"dimension\"\n },\n \"spread\": {\n \"$value\": {\n \"value\": 0,\n \"unit\": \"px\"\n },\n \"$type\": \"dimension\"\n },\n \"color\": {\n \"$value\": \"#0000001a\",\n \"$type\": \"color\"\n }\n },\n \"layer-2\": {\n \"x\": {\n \"$value\": {\n \"value\": 0,\n \"unit\": \"px\"\n },\n \"$type\": \"dimension\"\n },\n \"y\": {\n \"$value\": {\n \"value\": 8,\n \"unit\": \"px\"\n },\n \"$type\": \"dimension\"\n },\n \"blur\": {\n \"$value\": {\n \"value\": 10,\n \"unit\": \"px\"\n },\n \"$type\": \"dimension\"\n },\n \"spread\": {\n \"$value\": {\n \"value\": -1,\n \"unit\": \"px\"\n },\n \"$type\": \"dimension\"\n },\n \"color\": {\n \"$value\": \"#0000001a\",\n \"$type\": \"color\"\n }\n }\n },\n \"2xl\": {\n \"layer-1\": {\n \"x\": {\n \"$value\": {\n \"value\": 0,\n \"unit\": \"px\"\n },\n \"$type\": \"dimension\"\n },\n \"y\": {\n \"$value\": {\n \"value\": 1,\n \"unit\": \"px\"\n },\n \"$type\": \"dimension\"\n },\n \"blur\": {\n \"$value\": {\n \"value\": 3,\n \"unit\": \"px\"\n },\n \"$type\": \"dimension\"\n },\n \"spread\": {\n \"$value\": {\n \"value\": 0,\n \"unit\": \"px\"\n },\n \"$type\": \"dimension\"\n },\n \"color\": {\n \"$value\": \"#00000040\",\n \"$type\": \"color\"\n }\n }\n },\n \"inner\": {\n \"layer-1\": {\n \"x\": {\n \"$value\": {\n \"value\": 0,\n \"unit\": \"px\"\n },\n \"$type\": \"dimension\"\n },\n \"y\": {\n \"$value\": {\n \"value\": 2,\n \"unit\": \"px\"\n },\n \"$type\": \"dimension\"\n },\n \"blur\": {\n \"$value\": {\n \"value\": 4,\n \"unit\": \"px\"\n },\n \"$type\": \"dimension\"\n },\n \"spread\": {\n \"$value\": {\n \"value\": 0,\n \"unit\": \"px\"\n },\n \"$type\": \"dimension\"\n },\n \"color\": {\n \"$value\": \"#0000000d\",\n \"$type\": \"color\"\n }\n }\n }\n}\n","{\n \"2xs\": {\n \"layer-1\": {\n \"x\": {\n \"$value\": {\n \"value\": 0,\n \"unit\": \"px\"\n },\n \"$type\": \"dimension\"\n },\n \"y\": {\n \"$value\": {\n \"value\": 1,\n \"unit\": \"px\"\n },\n \"$type\": \"dimension\"\n },\n \"blur\": {\n \"$value\": {\n \"value\": 3,\n \"unit\": \"px\"\n },\n \"$type\": \"dimension\"\n },\n \"spread\": {\n \"$value\": {\n \"value\": 0,\n \"unit\": \"px\"\n },\n \"$type\": \"dimension\"\n },\n \"color\": {\n \"$value\": \"#0000000d\",\n \"$type\": \"color\"\n }\n }\n },\n \"xs\": {\n \"layer-1\": {\n \"x\": {\n \"$value\": {\n \"value\": 0,\n \"unit\": \"px\"\n },\n \"$type\": \"dimension\"\n },\n \"y\": {\n \"$value\": {\n \"value\": 1,\n \"unit\": \"px\"\n },\n \"$type\": \"dimension\"\n },\n \"blur\": {\n \"$value\": {\n \"value\": 3,\n \"unit\": \"px\"\n },\n \"$type\": \"dimension\"\n },\n \"spread\": {\n \"$value\": {\n \"value\": 0,\n \"unit\": \"px\"\n },\n \"$type\": \"dimension\"\n },\n \"color\": {\n \"$value\": \"#0000000d\",\n \"$type\": \"color\"\n }\n }\n },\n \"sm\": {\n \"layer-1\": {\n \"x\": {\n \"$value\": {\n \"value\": 0,\n \"unit\": \"px\"\n },\n \"$type\": \"dimension\"\n },\n \"y\": {\n \"$value\": {\n \"value\": 1,\n \"unit\": \"px\"\n },\n \"$type\": \"dimension\"\n },\n \"blur\": {\n \"$value\": {\n \"value\": 3,\n \"unit\": \"px\"\n },\n \"$type\": \"dimension\"\n },\n \"spread\": {\n \"$value\": {\n \"value\": 0,\n \"unit\": \"px\"\n },\n \"$type\": \"dimension\"\n },\n \"color\": {\n \"$value\": \"#0000001a\",\n \"$type\": \"color\"\n }\n },\n \"layer-2\": {\n \"x\": {\n \"$value\": {\n \"value\": 0,\n \"unit\": \"px\"\n },\n \"$type\": \"dimension\"\n },\n \"y\": {\n \"$value\": {\n \"value\": 1,\n \"unit\": \"px\"\n },\n \"$type\": \"dimension\"\n },\n \"blur\": {\n \"$value\": {\n \"value\": 2,\n \"unit\": \"px\"\n },\n \"$type\": \"dimension\"\n },\n \"spread\": {\n \"$value\": {\n \"value\": -1,\n \"unit\": \"px\"\n },\n \"$type\": \"dimension\"\n },\n \"color\": {\n \"$value\": \"#0000001a\",\n \"$type\": \"color\"\n }\n }\n },\n \"base\": {\n \"layer-1\": {\n \"x\": {\n \"$value\": {\n \"value\": 0,\n \"unit\": \"px\"\n },\n \"$type\": \"dimension\"\n },\n \"y\": {\n \"$value\": {\n \"value\": 1,\n \"unit\": \"px\"\n },\n \"$type\": \"dimension\"\n },\n \"blur\": {\n \"$value\": {\n \"value\": 3,\n \"unit\": \"px\"\n },\n \"$type\": \"dimension\"\n },\n \"spread\": {\n \"$value\": {\n \"value\": 0,\n \"unit\": \"px\"\n },\n \"$type\": \"dimension\"\n },\n \"color\": {\n \"$value\": \"#0000001a\",\n \"$type\": \"color\"\n }\n },\n \"layer-2\": {\n \"x\": {\n \"$value\": {\n \"value\": 0,\n \"unit\": \"px\"\n },\n \"$type\": \"dimension\"\n },\n \"y\": {\n \"$value\": {\n \"value\": 1,\n \"unit\": \"px\"\n },\n \"$type\": \"dimension\"\n },\n \"blur\": {\n \"$value\": {\n \"value\": 2,\n \"unit\": \"px\"\n },\n \"$type\": \"dimension\"\n },\n \"spread\": {\n \"$value\": {\n \"value\": -1,\n \"unit\": \"px\"\n },\n \"$type\": \"dimension\"\n },\n \"color\": {\n \"$value\": \"#0000001a\",\n \"$type\": \"color\"\n }\n }\n },\n \"md\": {\n \"layer-1\": {\n \"x\": {\n \"$value\": {\n \"value\": 0,\n \"unit\": \"px\"\n },\n \"$type\": \"dimension\"\n },\n \"y\": {\n \"$value\": {\n \"value\": 1,\n \"unit\": \"px\"\n },\n \"$type\": \"dimension\"\n },\n \"blur\": {\n \"$value\": {\n \"value\": 3,\n \"unit\": \"px\"\n },\n \"$type\": \"dimension\"\n },\n \"spread\": {\n \"$value\": {\n \"value\": 0,\n \"unit\": \"px\"\n },\n \"$type\": \"dimension\"\n },\n \"color\": {\n \"$value\": \"#0000001a\",\n \"$type\": \"color\"\n }\n },\n \"layer-2\": {\n \"x\": {\n \"$value\": {\n \"value\": 0,\n \"unit\": \"px\"\n },\n \"$type\": \"dimension\"\n },\n \"y\": {\n \"$value\": {\n \"value\": 2,\n \"unit\": \"px\"\n },\n \"$type\": \"dimension\"\n },\n \"blur\": {\n \"$value\": {\n \"value\": 4,\n \"unit\": \"px\"\n },\n \"$type\": \"dimension\"\n },\n \"spread\": {\n \"$value\": {\n \"value\": -11,\n \"unit\": \"px\"\n },\n \"$type\": \"dimension\"\n },\n \"color\": {\n \"$value\": \"#0000001a\",\n \"$type\": \"color\"\n }\n }\n },\n \"lg\": {\n \"layer-1\": {\n \"x\": {\n \"$value\": {\n \"value\": 0,\n \"unit\": \"px\"\n },\n \"$type\": \"dimension\"\n },\n \"y\": {\n \"$value\": {\n \"value\": 1,\n \"unit\": \"px\"\n },\n \"$type\": \"dimension\"\n },\n \"blur\": {\n \"$value\": {\n \"value\": 3,\n \"unit\": \"px\"\n },\n \"$type\": \"dimension\"\n },\n \"spread\": {\n \"$value\": {\n \"value\": 0,\n \"unit\": \"px\"\n },\n \"$type\": \"dimension\"\n },\n \"color\": {\n \"$value\": \"#0000001a\",\n \"$type\": \"color\"\n }\n },\n \"layer-2\": {\n \"x\": {\n \"$value\": {\n \"value\": 0,\n \"unit\": \"px\"\n },\n \"$type\": \"dimension\"\n },\n \"y\": {\n \"$value\": {\n \"value\": 4,\n \"unit\": \"px\"\n },\n \"$type\": \"dimension\"\n },\n \"blur\": {\n \"$value\": {\n \"value\": 6,\n \"unit\": \"px\"\n },\n \"$type\": \"dimension\"\n },\n \"spread\": {\n \"$value\": {\n \"value\": -1,\n \"unit\": \"px\"\n },\n \"$type\": \"dimension\"\n },\n \"color\": {\n \"$value\": \"#0000001a\",\n \"$type\": \"color\"\n }\n }\n },\n \"xl\": {\n \"layer-1\": {\n \"x\": {\n \"$value\": {\n \"value\": 0,\n \"unit\": \"px\"\n },\n \"$type\": \"dimension\"\n },\n \"y\": {\n \"$value\": {\n \"value\": 1,\n \"unit\": \"px\"\n },\n \"$type\": \"dimension\"\n },\n \"blur\": {\n \"$value\": {\n \"value\": 3,\n \"unit\": \"px\"\n },\n \"$type\": \"dimension\"\n },\n \"spread\": {\n \"$value\": {\n \"value\": 0,\n \"unit\": \"px\"\n },\n \"$type\": \"dimension\"\n },\n \"color\": {\n \"$value\": \"#0000001a\",\n \"$type\": \"color\"\n }\n },\n \"layer-2\": {\n \"x\": {\n \"$value\": {\n \"value\": 0,\n \"unit\": \"px\"\n },\n \"$type\": \"dimension\"\n },\n \"y\": {\n \"$value\": {\n \"value\": 8,\n \"unit\": \"px\"\n },\n \"$type\": \"dimension\"\n },\n \"blur\": {\n \"$value\": {\n \"value\": 10,\n \"unit\": \"px\"\n },\n \"$type\": \"dimension\"\n },\n \"spread\": {\n \"$value\": {\n \"value\": -1,\n \"unit\": \"px\"\n },\n \"$type\": \"dimension\"\n },\n \"color\": {\n \"$value\": \"#0000001a\",\n \"$type\": \"color\"\n }\n }\n },\n \"2xl\": {\n \"layer-1\": {\n \"x\": {\n \"$value\": {\n \"value\": 0,\n \"unit\": \"px\"\n },\n \"$type\": \"dimension\"\n },\n \"y\": {\n \"$value\": {\n \"value\": 1,\n \"unit\": \"px\"\n },\n \"$type\": \"dimension\"\n },\n \"blur\": {\n \"$value\": {\n \"value\": 3,\n \"unit\": \"px\"\n },\n \"$type\": \"dimension\"\n },\n \"spread\": {\n \"$value\": {\n \"value\": 0,\n \"unit\": \"px\"\n },\n \"$type\": \"dimension\"\n },\n \"color\": {\n \"$value\": \"#00000040\",\n \"$type\": \"color\"\n }\n }\n },\n \"inner\": {\n \"layer-1\": {\n \"x\": {\n \"$value\": {\n \"value\": 0,\n \"unit\": \"px\"\n },\n \"$type\": \"dimension\"\n },\n \"y\": {\n \"$value\": {\n \"value\": 2,\n \"unit\": \"px\"\n },\n \"$type\": \"dimension\"\n },\n \"blur\": {\n \"$value\": {\n \"value\": 4,\n \"unit\": \"px\"\n },\n \"$type\": \"dimension\"\n },\n \"spread\": {\n \"$value\": {\n \"value\": 0,\n \"unit\": \"px\"\n },\n \"$type\": \"dimension\"\n },\n \"color\": {\n \"$value\": \"#0000000d\",\n \"$type\": \"color\"\n }\n }\n }\n}\n","{\n \"2xs\": {\n \"layer-1\": {\n \"x\": {\n \"$value\": {\n \"value\": 0,\n \"unit\": \"px\"\n },\n \"$type\": \"dimension\"\n },\n \"y\": {\n \"$value\": {\n \"value\": 1,\n \"unit\": \"px\"\n },\n \"$type\": \"dimension\"\n },\n \"blur\": {\n \"$value\": {\n \"value\": 3,\n \"unit\": \"px\"\n },\n \"$type\": \"dimension\"\n },\n \"spread\": {\n \"$value\": {\n \"value\": 0,\n \"unit\": \"px\"\n },\n \"$type\": \"dimension\"\n },\n \"color\": {\n \"$value\": \"#0000000d\",\n \"$type\": \"color\"\n }\n }\n },\n \"xs\": {\n \"layer-1\": {\n \"x\": {\n \"$value\": {\n \"value\": 0,\n \"unit\": \"px\"\n },\n \"$type\": \"dimension\"\n },\n \"y\": {\n \"$value\": {\n \"value\": 1,\n \"unit\": \"px\"\n },\n \"$type\": \"dimension\"\n },\n \"blur\": {\n \"$value\": {\n \"value\": 3,\n \"unit\": \"px\"\n },\n \"$type\": \"dimension\"\n },\n \"spread\": {\n \"$value\": {\n \"value\": 0,\n \"unit\": \"px\"\n },\n \"$type\": \"dimension\"\n },\n \"color\": {\n \"$value\": \"#0000000d\",\n \"$type\": \"color\"\n }\n }\n },\n \"sm\": {\n \"layer-1\": {\n \"x\": {\n \"$value\": {\n \"value\": 0,\n \"unit\": \"px\"\n },\n \"$type\": \"dimension\"\n },\n \"y\": {\n \"$value\": {\n \"value\": 1,\n \"unit\": \"px\"\n },\n \"$type\": \"dimension\"\n },\n \"blur\": {\n \"$value\": {\n \"value\": 3,\n \"unit\": \"px\"\n },\n \"$type\": \"dimension\"\n },\n \"spread\": {\n \"$value\": {\n \"value\": 0,\n \"unit\": \"px\"\n },\n \"$type\": \"dimension\"\n },\n \"color\": {\n \"$value\": \"#00000012\",\n \"$type\": \"color\"\n }\n },\n \"layer-2\": {\n \"x\": {\n \"$value\": {\n \"value\": 0,\n \"unit\": \"px\"\n },\n \"$type\": \"dimension\"\n },\n \"y\": {\n \"$value\": {\n \"value\": 1,\n \"unit\": \"px\"\n },\n \"$type\": \"dimension\"\n },\n \"blur\": {\n \"$value\": {\n \"value\": 2,\n \"unit\": \"px\"\n },\n \"$type\": \"dimension\"\n },\n \"spread\": {\n \"$value\": {\n \"value\": -1,\n \"unit\": \"px\"\n },\n \"$type\": \"dimension\"\n },\n \"color\": {\n \"$value\": \"#00000010\",\n \"$type\": \"color\"\n }\n }\n },\n \"base\": {\n \"layer-1\": {\n \"x\": {\n \"$value\": {\n \"value\": 0,\n \"unit\": \"px\"\n },\n \"$type\": \"dimension\"\n },\n \"y\": {\n \"$value\": {\n \"value\": 1,\n \"unit\": \"px\"\n },\n \"$type\": \"dimension\"\n },\n \"blur\": {\n \"$value\": {\n \"value\": 3,\n \"unit\": \"px\"\n },\n \"$type\": \"dimension\"\n },\n \"spread\": {\n \"$value\": {\n \"value\": 0,\n \"unit\": \"px\"\n },\n \"$type\": \"dimension\"\n },\n \"color\": {\n \"$value\": \"#00000012\",\n \"$type\": \"color\"\n }\n },\n \"layer-2\": {\n \"x\": {\n \"$value\": {\n \"value\": 0,\n \"unit\": \"px\"\n },\n \"$type\": \"dimension\"\n },\n \"y\": {\n \"$value\": {\n \"value\": 1,\n \"unit\": \"px\"\n },\n \"$type\": \"dimension\"\n },\n \"blur\": {\n \"$value\": {\n \"value\": 2,\n \"unit\": \"px\"\n },\n \"$type\": \"dimension\"\n },\n \"spread\": {\n \"$value\": {\n \"value\": -1,\n \"unit\": \"px\"\n },\n \"$type\": \"dimension\"\n },\n \"color\": {\n \"$value\": \"#00000012\",\n \"$type\": \"color\"\n }\n }\n },\n \"md\": {\n \"layer-1\": {\n \"x\": {\n \"$value\": {\n \"value\": 0,\n \"unit\": \"px\"\n },\n \"$type\": \"dimension\"\n },\n \"y\": {\n \"$value\": {\n \"value\": 1,\n \"unit\": \"px\"\n },\n \"$type\": \"dimension\"\n },\n \"blur\": {\n \"$value\": {\n \"value\": 3,\n \"unit\": \"px\"\n },\n \"$type\": \"dimension\"\n },\n \"spread\": {\n \"$value\": {\n \"value\": 0,\n \"unit\": \"px\"\n },\n \"$type\": \"dimension\"\n },\n \"color\": {\n \"$value\": \"#00000014\",\n \"$type\": \"color\"\n }\n },\n \"layer-2\": {\n \"x\": {\n \"$value\": {\n \"value\": 0,\n \"unit\": \"px\"\n },\n \"$type\": \"dimension\"\n },\n \"y\": {\n \"$value\": {\n \"value\": 2,\n \"unit\": \"px\"\n },\n \"$type\": \"dimension\"\n },\n \"blur\": {\n \"$value\": {\n \"value\": 4,\n \"unit\": \"px\"\n },\n \"$type\": \"dimension\"\n },\n \"spread\": {\n \"$value\": {\n \"value\": -1,\n \"unit\": \"px\"\n },\n \"$type\": \"dimension\"\n },\n \"color\": {\n \"$value\": \"#00000014\",\n \"$type\": \"color\"\n }\n }\n },\n \"lg\": {\n \"layer-1\": {\n \"x\": {\n \"$value\": {\n \"value\": 0,\n \"unit\": \"px\"\n },\n \"$type\": \"dimension\"\n },\n \"y\": {\n \"$value\": {\n \"value\": 1,\n \"unit\": \"px\"\n },\n \"$type\": \"dimension\"\n },\n \"blur\": {\n \"$value\": {\n \"value\": 3,\n \"unit\": \"px\"\n },\n \"$type\": \"dimension\"\n },\n \"spread\": {\n \"$value\": {\n \"value\": 0,\n \"unit\": \"px\"\n },\n \"$type\": \"dimension\"\n },\n \"color\": {\n \"$value\": \"#00000014\",\n \"$type\": \"color\"\n }\n },\n \"layer-2\": {\n \"x\": {\n \"$value\": {\n \"value\": 0,\n \"unit\": \"px\"\n },\n \"$type\": \"dimension\"\n },\n \"y\": {\n \"$value\": {\n \"value\": 4,\n \"unit\": \"px\"\n },\n \"$type\": \"dimension\"\n },\n \"blur\": {\n \"$value\": {\n \"value\": 6,\n \"unit\": \"px\"\n },\n \"$type\": \"dimension\"\n },\n \"spread\": {\n \"$value\": {\n \"value\": -1,\n \"unit\": \"px\"\n },\n \"$type\": \"dimension\"\n },\n \"color\": {\n \"$value\": \"#0000001c\",\n \"$type\": \"color\"\n }\n }\n },\n \"xl\": {\n \"layer-1\": {\n \"x\": {\n \"$value\": {\n \"value\": 0,\n \"unit\": \"px\"\n },\n \"$type\": \"dimension\"\n },\n \"y\": {\n \"$value\": {\n \"value\": 1,\n \"unit\": \"px\"\n },\n \"$type\": \"dimension\"\n },\n \"blur\": {\n \"$value\": {\n \"value\": 3,\n \"unit\": \"px\"\n },\n \"$type\": \"dimension\"\n },\n \"spread\": {\n \"$value\": {\n \"value\": 0,\n \"unit\": \"px\"\n },\n \"$type\": \"dimension\"\n },\n \"color\": {\n \"$value\": \"#0000001c\",\n \"$type\": \"color\"\n }\n },\n \"layer-2\": {\n \"x\": {\n \"$value\": {\n \"value\": 0,\n \"unit\": \"px\"\n },\n \"$type\": \"dimension\"\n },\n \"y\": {\n \"$value\": {\n \"value\": 8,\n \"unit\": \"px\"\n },\n \"$type\": \"dimension\"\n },\n \"blur\": {\n \"$value\": {\n \"value\": 10,\n \"unit\": \"px\"\n },\n \"$type\": \"dimension\"\n },\n \"spread\": {\n \"$value\": {\n \"value\": -1,\n \"unit\": \"px\"\n },\n \"$type\": \"dimension\"\n },\n \"color\": {\n \"$value\": \"#00000024\",\n \"$type\": \"color\"\n }\n }\n },\n \"2xl\": {\n \"layer-1\": {\n \"x\": {\n \"$value\": {\n \"value\": 0,\n \"unit\": \"px\"\n },\n \"$type\": \"dimension\"\n },\n \"y\": {\n \"$value\": {\n \"value\": 1,\n \"unit\": \"px\"\n },\n \"$type\": \"dimension\"\n },\n \"blur\": {\n \"$value\": {\n \"value\": 3,\n \"unit\": \"px\"\n },\n \"$type\": \"dimension\"\n },\n \"spread\": {\n \"$value\": {\n \"value\": 0,\n \"unit\": \"px\"\n },\n \"$type\": \"dimension\"\n },\n \"color\": {\n \"$value\": \"#00000033\",\n \"$type\": \"color\"\n }\n }\n },\n \"inner\": {\n \"layer-1\": {\n \"x\": {\n \"$value\": {\n \"value\": 0,\n \"unit\": \"px\"\n },\n \"$type\": \"dimension\"\n },\n \"y\": {\n \"$value\": {\n \"value\": 1,\n \"unit\": \"px\"\n },\n \"$type\": \"dimension\"\n },\n \"blur\": {\n \"$value\": {\n \"value\": 3,\n \"unit\": \"px\"\n },\n \"$type\": \"dimension\"\n },\n \"spread\": {\n \"$value\": {\n \"value\": 0,\n \"unit\": \"px\"\n },\n \"$type\": \"dimension\"\n },\n \"color\": {\n \"$value\": \"#0000000d\",\n \"$type\": \"color\"\n }\n }\n }\n}\n","{\n \"2xs\": {\n \"layer-1\": {\n \"x\": {\n \"$value\": {\n \"value\": 0,\n \"unit\": \"px\"\n },\n \"$type\": \"dimension\"\n },\n \"y\": {\n \"$value\": {\n \"value\": 1,\n \"unit\": \"px\"\n },\n \"$type\": \"dimension\"\n },\n \"blur\": {\n \"$value\": {\n \"value\": 3,\n \"unit\": \"px\"\n },\n \"$type\": \"dimension\"\n },\n \"spread\": {\n \"$value\": {\n \"value\": 0,\n \"unit\": \"px\"\n },\n \"$type\": \"dimension\"\n },\n \"color\": {\n \"$value\": \"#00000008\",\n \"$type\": \"color\"\n }\n }\n },\n \"xs\": {\n \"layer-1\": {\n \"x\": {\n \"$value\": {\n \"value\": 0,\n \"unit\": \"px\"\n },\n \"$type\": \"dimension\"\n },\n \"y\": {\n \"$value\": {\n \"value\": 1,\n \"unit\": \"px\"\n },\n \"$type\": \"dimension\"\n },\n \"blur\": {\n \"$value\": {\n \"value\": 3,\n \"unit\": \"px\"\n },\n \"$type\": \"dimension\"\n },\n \"spread\": {\n \"$value\": {\n \"value\": 0,\n \"unit\": \"px\"\n },\n \"$type\": \"dimension\"\n },\n \"color\": {\n \"$value\": \"#00000008\",\n \"$type\": \"color\"\n }\n }\n },\n \"sm\": {\n \"layer-1\": {\n \"x\": {\n \"$value\": {\n \"value\": 0,\n \"unit\": \"px\"\n },\n \"$type\": \"dimension\"\n },\n \"y\": {\n \"$value\": {\n \"value\": 1,\n \"unit\": \"px\"\n },\n \"$type\": \"dimension\"\n },\n \"blur\": {\n \"$value\": {\n \"value\": 3,\n \"unit\": \"px\"\n },\n \"$type\": \"dimension\"\n },\n \"spread\": {\n \"$value\": {\n \"value\": 0,\n \"unit\": \"px\"\n },\n \"$type\": \"dimension\"\n },\n \"color\": {\n \"$value\": \"#0000000f\",\n \"$type\": \"color\"\n }\n },\n \"layer-2\": {\n \"x\": {\n \"$value\": {\n \"value\": 0,\n \"unit\": \"px\"\n },\n \"$type\": \"dimension\"\n },\n \"y\": {\n \"$value\": {\n \"value\": 1,\n \"unit\": \"px\"\n },\n \"$type\": \"dimension\"\n },\n \"blur\": {\n \"$value\": {\n \"value\": 2,\n \"unit\": \"px\"\n },\n \"$type\": \"dimension\"\n },\n \"spread\": {\n \"$value\": {\n \"value\": -1,\n \"unit\": \"px\"\n },\n \"$type\": \"dimension\"\n },\n \"color\": {\n \"$value\": \"#0000000d\",\n \"$type\": \"color\"\n }\n }\n },\n \"base\": {\n \"layer-1\": {\n \"x\": {\n \"$value\": {\n \"value\": 0,\n \"unit\": \"px\"\n },\n \"$type\": \"dimension\"\n },\n \"y\": {\n \"$value\": {\n \"value\": 1,\n \"unit\": \"px\"\n },\n \"$type\": \"dimension\"\n },\n \"blur\": {\n \"$value\": {\n \"value\": 3,\n \"unit\": \"px\"\n },\n \"$type\": \"dimension\"\n },\n \"spread\": {\n \"$value\": {\n \"value\": 0,\n \"unit\": \"px\"\n },\n \"$type\": \"dimension\"\n },\n \"color\": {\n \"$value\": \"#0000000f\",\n \"$type\": \"color\"\n }\n },\n \"layer-2\": {\n \"x\": {\n \"$value\": {\n \"value\": 0,\n \"unit\": \"px\"\n },\n \"$type\": \"dimension\"\n },\n \"y\": {\n \"$value\": {\n \"value\": 1,\n \"unit\": \"px\"\n },\n \"$type\": \"dimension\"\n },\n \"blur\": {\n \"$value\": {\n \"value\": 2,\n \"unit\": \"px\"\n },\n \"$type\": \"dimension\"\n },\n \"spread\": {\n \"$value\": {\n \"value\": -1,\n \"unit\": \"px\"\n },\n \"$type\": \"dimension\"\n },\n \"color\": {\n \"$value\": \"#0000000f\",\n \"$type\": \"color\"\n }\n }\n },\n \"md\": {\n \"layer-1\": {\n \"x\": {\n \"$value\": {\n \"value\": 0,\n \"unit\": \"px\"\n },\n \"$type\": \"dimension\"\n },\n \"y\": {\n \"$value\": {\n \"value\": 1,\n \"unit\": \"px\"\n },\n \"$type\": \"dimension\"\n },\n \"blur\": {\n \"$value\": {\n \"value\": 3,\n \"unit\": \"px\"\n },\n \"$type\": \"dimension\"\n },\n \"spread\": {\n \"$value\": {\n \"value\": 0,\n \"unit\": \"px\"\n },\n \"$type\": \"dimension\"\n },\n \"color\": {\n \"$value\": \"#0000000f\",\n \"$type\": \"color\"\n }\n },\n \"layer-2\": {\n \"x\": {\n \"$value\": {\n \"value\": 0,\n \"unit\": \"px\"\n },\n \"$type\": \"dimension\"\n },\n \"y\": {\n \"$value\": {\n \"value\": 2,\n \"unit\": \"px\"\n },\n \"$type\": \"dimension\"\n },\n \"blur\": {\n \"$value\": {\n \"value\": 4,\n \"unit\": \"px\"\n },\n \"$type\": \"dimension\"\n },\n \"spread\": {\n \"$value\": {\n \"value\": -1,\n \"unit\": \"px\"\n },\n \"$type\": \"dimension\"\n },\n \"color\": {\n \"$value\": \"#0000000f\",\n \"$type\": \"color\"\n }\n }\n },\n \"lg\": {\n \"layer-1\": {\n \"x\": {\n \"$value\": {\n \"value\": 0,\n \"unit\": \"px\"\n },\n \"$type\": \"dimension\"\n },\n \"y\": {\n \"$value\": {\n \"value\": 1,\n \"unit\": \"px\"\n },\n \"$type\": \"dimension\"\n },\n \"blur\": {\n \"$value\": {\n \"value\": 3,\n \"unit\": \"px\"\n },\n \"$type\": \"dimension\"\n },\n \"spread\": {\n \"$value\": {\n \"value\": 0,\n \"unit\": \"px\"\n },\n \"$type\": \"dimension\"\n },\n \"color\": {\n \"$value\": \"#0000000d\",\n \"$type\": \"color\"\n }\n },\n \"layer-2\": {\n \"x\": {\n \"$value\": {\n \"value\": 0,\n \"unit\": \"px\"\n },\n \"$type\": \"dimension\"\n },\n \"y\": {\n \"$value\": {\n \"value\": 4,\n \"unit\": \"px\"\n },\n \"$type\": \"dimension\"\n },\n \"blur\": {\n \"$value\": {\n \"value\": 6,\n \"unit\": \"px\"\n },\n \"$type\": \"dimension\"\n },\n \"spread\": {\n \"$value\": {\n \"value\": -1,\n \"unit\": \"px\"\n },\n \"$type\": \"dimension\"\n },\n \"color\": {\n \"$value\": \"#00000014\",\n \"$type\": \"color\"\n }\n }\n },\n \"xl\": {\n \"layer-1\": {\n \"x\": {\n \"$value\": {\n \"value\": 0,\n \"unit\": \"px\"\n },\n \"$type\": \"dimension\"\n },\n \"y\": {\n \"$value\": {\n \"value\": 1,\n \"unit\": \"px\"\n },\n \"$type\": \"dimension\"\n },\n \"blur\": {\n \"$value\": {\n \"value\": 3,\n \"unit\": \"px\"\n },\n \"$type\": \"dimension\"\n },\n \"spread\": {\n \"$value\": {\n \"value\": 0,\n \"unit\": \"px\"\n },\n \"$type\": \"dimension\"\n },\n \"color\": {\n \"$value\": \"#00000014\",\n \"$type\": \"color\"\n }\n },\n \"layer-2\": {\n \"x\": {\n \"$value\": {\n \"value\": 0,\n \"unit\": \"px\"\n },\n \"$type\": \"dimension\"\n },\n \"y\": {\n \"$value\": {\n \"value\": 8,\n \"unit\": \"px\"\n },\n \"$type\": \"dimension\"\n },\n \"blur\": {\n \"$value\": {\n \"value\": 10,\n \"unit\": \"px\"\n },\n \"$type\": \"dimension\"\n },\n \"spread\": {\n \"$value\": {\n \"value\": -1,\n \"unit\": \"px\"\n },\n \"$type\": \"dimension\"\n },\n \"color\": {\n \"$value\": \"#00000014\",\n \"$type\": \"color\"\n }\n }\n },\n \"2xl\": {\n \"layer-1\": {\n \"x\": {\n \"$value\": {\n \"value\": 0,\n \"unit\": \"px\"\n },\n \"$type\": \"dimension\"\n },\n \"y\": {\n \"$value\": {\n \"value\": 1,\n \"unit\": \"px\"\n },\n \"$type\": \"dimension\"\n },\n \"blur\": {\n \"$value\": {\n \"value\": 3,\n \"unit\": \"px\"\n },\n \"$type\": \"dimension\"\n },\n \"spread\": {\n \"$value\": {\n \"value\": 0,\n \"unit\": \"px\"\n },\n \"$type\": \"dimension\"\n },\n \"color\": {\n \"$value\": \"#00000026\",\n \"$type\": \"color\"\n }\n }\n },\n \"inner\": {\n \"layer-1\": {\n \"x\": {\n \"$value\": {\n \"value\": 0,\n \"unit\": \"px\"\n },\n \"$type\": \"dimension\"\n },\n \"y\": {\n \"$value\": {\n \"value\": 1,\n \"unit\": \"px\"\n },\n \"$type\": \"dimension\"\n },\n \"blur\": {\n \"$value\": {\n \"value\": 3,\n \"unit\": \"px\"\n },\n \"$type\": \"dimension\"\n },\n \"spread\": {\n \"$value\": {\n \"value\": 0,\n \"unit\": \"px\"\n },\n \"$type\": \"dimension\"\n },\n \"color\": {\n \"$value\": \"#0000000a\",\n \"$type\": \"color\"\n }\n }\n }\n}\n","{\n \"2xs\": {\n \"layer-1\": {\n \"x\": {\n \"$value\": {\n \"value\": 0,\n \"unit\": \"px\"\n },\n \"$type\": \"dimension\"\n },\n \"y\": {\n \"$value\": {\n \"value\": 1,\n \"unit\": \"px\"\n },\n \"$type\": \"dimension\"\n },\n \"blur\": {\n \"$value\": {\n \"value\": 3,\n \"unit\": \"px\"\n },\n \"$type\": \"dimension\"\n },\n \"spread\": {\n \"$value\": {\n \"value\": 0,\n \"unit\": \"px\"\n },\n \"$type\": \"dimension\"\n },\n \"color\": {\n \"$value\": \"#0000000d\",\n \"$type\": \"color\"\n }\n }\n },\n \"xs\": {\n \"layer-1\": {\n \"x\": {\n \"$value\": {\n \"value\": 0,\n \"unit\": \"px\"\n },\n \"$type\": \"dimension\"\n },\n \"y\": {\n \"$value\": {\n \"value\": 1,\n \"unit\": \"px\"\n },\n \"$type\": \"dimension\"\n },\n \"blur\": {\n \"$value\": {\n \"value\": 3,\n \"unit\": \"px\"\n },\n \"$type\": \"dimension\"\n },\n \"spread\": {\n \"$value\": {\n \"value\": 0,\n \"unit\": \"px\"\n },\n \"$type\": \"dimension\"\n },\n \"color\": {\n \"$value\": \"#0000000d\",\n \"$type\": \"color\"\n }\n }\n },\n \"sm\": {\n \"layer-1\": {\n \"x\": {\n \"$value\": {\n \"value\": 0,\n \"unit\": \"px\"\n },\n \"$type\": \"dimension\"\n },\n \"y\": {\n \"$value\": {\n \"value\": 1,\n \"unit\": \"px\"\n },\n \"$type\": \"dimension\"\n },\n \"blur\": {\n \"$value\": {\n \"value\": 3,\n \"unit\": \"px\"\n },\n \"$type\": \"dimension\"\n },\n \"spread\": {\n \"$value\": {\n \"value\": 0,\n \"unit\": \"px\"\n },\n \"$type\": \"dimension\"\n },\n \"color\": {\n \"$value\": \"#0000001a\",\n \"$type\": \"color\"\n }\n },\n \"layer-2\": {\n \"x\": {\n \"$value\": {\n \"value\": 0,\n \"unit\": \"px\"\n },\n \"$type\": \"dimension\"\n },\n \"y\": {\n \"$value\": {\n \"value\": 2,\n \"unit\": \"px\"\n },\n \"$type\": \"dimension\"\n },\n \"blur\": {\n \"$value\": {\n \"value\": 3,\n \"unit\": \"px\"\n },\n \"$type\": \"dimension\"\n },\n \"spread\": {\n \"$value\": {\n \"value\": -1,\n \"unit\": \"px\"\n },\n \"$type\": \"dimension\"\n },\n \"color\": {\n \"$value\": \"#0000001a\",\n \"$type\": \"color\"\n }\n }\n },\n \"base\": {\n \"layer-1\": {\n \"x\": {\n \"$value\": {\n \"value\": 0,\n \"unit\": \"px\"\n },\n \"$type\": \"dimension\"\n },\n \"y\": {\n \"$value\": {\n \"value\": 1,\n \"unit\": \"px\"\n },\n \"$type\": \"dimension\"\n },\n \"blur\": {\n \"$value\": {\n \"value\": 3,\n \"unit\": \"px\"\n },\n \"$type\": \"dimension\"\n },\n \"spread\": {\n \"$value\": {\n \"value\": 0,\n \"unit\": \"px\"\n },\n \"$type\": \"dimension\"\n },\n \"color\": {\n \"$value\": \"#0000001a\",\n \"$type\": \"color\"\n }\n },\n \"layer-2\": {\n \"x\": {\n \"$value\": {\n \"value\": 0,\n \"unit\": \"px\"\n },\n \"$type\": \"dimension\"\n },\n \"y\": {\n \"$value\": {\n \"value\": 2,\n \"unit\": \"px\"\n },\n \"$type\": \"dimension\"\n },\n \"blur\": {\n \"$value\": {\n \"value\": 3,\n \"unit\": \"px\"\n },\n \"$type\": \"dimension\"\n },\n \"spread\": {\n \"$value\": {\n \"value\": -1,\n \"unit\": \"px\"\n },\n \"$type\": \"dimension\"\n },\n \"color\": {\n \"$value\": \"#0000001a\",\n \"$type\": \"color\"\n }\n }\n },\n \"md\": {\n \"layer-1\": {\n \"x\": {\n \"$value\": {\n \"value\": 0,\n \"unit\": \"px\"\n },\n \"$type\": \"dimension\"\n },\n \"y\": {\n \"$value\": {\n \"value\": 1,\n \"unit\": \"px\"\n },\n \"$type\": \"dimension\"\n },\n \"blur\": {\n \"$value\": {\n \"value\": 3,\n \"unit\": \"px\"\n },\n \"$type\": \"dimension\"\n },\n \"spread\": {\n \"$value\": {\n \"value\": 0,\n \"unit\": \"px\"\n },\n \"$type\": \"dimension\"\n },\n \"color\": {\n \"$value\": \"#0000001a\",\n \"$type\": \"color\"\n }\n },\n \"layer-2\": {\n \"x\": {\n \"$value\": {\n \"value\": 0,\n \"unit\": \"px\"\n },\n \"$type\": \"dimension\"\n },\n \"y\": {\n \"$value\": {\n \"value\": 3,\n \"unit\": \"px\"\n },\n \"$type\": \"dimension\"\n },\n \"blur\": {\n \"$value\": {\n \"value\": 5,\n \"unit\": \"px\"\n },\n \"$type\": \"dimension\"\n },\n \"spread\": {\n \"$value\": {\n \"value\": -1,\n \"unit\": \"px\"\n },\n \"$type\": \"dimension\"\n },\n \"color\": {\n \"$value\": \"#0000001a\",\n \"$type\": \"color\"\n }\n }\n },\n \"lg\": {\n \"layer-1\": {\n \"x\": {\n \"$value\": {\n \"value\": 0,\n \"unit\": \"px\"\n },\n \"$type\": \"dimension\"\n },\n \"y\": {\n \"$value\": {\n \"value\": 1,\n \"unit\": \"px\"\n },\n \"$type\": \"dimension\"\n },\n \"blur\": {\n \"$value\": {\n \"value\": 3,\n \"unit\": \"px\"\n },\n \"$type\": \"dimension\"\n },\n \"spread\": {\n \"$value\": {\n \"value\": 0,\n \"unit\": \"px\"\n },\n \"$type\": \"dimension\"\n },\n \"color\": {\n \"$value\": \"#0000001f\",\n \"$type\": \"color\"\n }\n },\n \"layer-2\": {\n \"x\": {\n \"$value\": {\n \"value\": 0,\n \"unit\": \"px\"\n },\n \"$type\": \"dimension\"\n },\n \"y\": {\n \"$value\": {\n \"value\": 6,\n \"unit\": \"px\"\n },\n \"$type\": \"dimension\"\n },\n \"blur\": {\n \"$value\": {\n \"value\": 9,\n \"unit\": \"px\"\n },\n \"$type\": \"dimension\"\n },\n \"spread\": {\n \"$value\": {\n \"value\": -1,\n \"unit\": \"px\"\n },\n \"$type\": \"dimension\"\n },\n \"color\": {\n \"$value\": \"#0000001f\",\n \"$type\": \"color\"\n }\n }\n },\n \"xl\": {\n \"layer-1\": {\n \"x\": {\n \"$value\": {\n \"value\": 0,\n \"unit\": \"px\"\n },\n \"$type\": \"dimension\"\n },\n \"y\": {\n \"$value\": {\n \"value\": 1,\n \"unit\": \"px\"\n },\n \"$type\": \"dimension\"\n },\n \"blur\": {\n \"$value\": {\n \"value\": 3,\n \"unit\": \"px\"\n },\n \"$type\": \"dimension\"\n },\n \"spread\": {\n \"$value\": {\n \"value\": 0,\n \"unit\": \"px\"\n },\n \"$type\": \"dimension\"\n },\n \"color\": {\n \"$value\": \"#0000001f\",\n \"$type\": \"color\"\n }\n },\n \"layer-2\": {\n \"x\": {\n \"$value\": {\n \"value\": 0,\n \"unit\": \"px\"\n },\n \"$type\": \"dimension\"\n },\n \"y\": {\n \"$value\": {\n \"value\": 12,\n \"unit\": \"px\"\n },\n \"$type\": \"dimension\"\n },\n \"blur\": {\n \"$value\": {\n \"value\": 16,\n \"unit\": \"px\"\n },\n \"$type\": \"dimension\"\n },\n \"spread\": {\n \"$value\": {\n \"value\": -1,\n \"unit\": \"px\"\n },\n \"$type\": \"dimension\"\n },\n \"color\": {\n \"$value\": \"#0000001f\",\n \"$type\": \"color\"\n }\n }\n },\n \"2xl\": {\n \"layer-1\": {\n \"x\": {\n \"$value\": {\n \"value\": 0,\n \"unit\": \"px\"\n },\n \"$type\": \"dimension\"\n },\n \"y\": {\n \"$value\": {\n \"value\": 1,\n \"unit\": \"px\"\n },\n \"$type\": \"dimension\"\n },\n \"blur\": {\n \"$value\": {\n \"value\": 3,\n \"unit\": \"px\"\n },\n \"$type\": \"dimension\"\n },\n \"spread\": {\n \"$value\": {\n \"value\": 0,\n \"unit\": \"px\"\n },\n \"$type\": \"dimension\"\n },\n \"color\": {\n \"$value\": \"#00000040\",\n \"$type\": \"color\"\n }\n }\n },\n \"inner\": {\n \"layer-1\": {\n \"x\": {\n \"$value\": {\n \"value\": 0,\n \"unit\": \"px\"\n },\n \"$type\": \"dimension\"\n },\n \"y\": {\n \"$value\": {\n \"value\": 2,\n \"unit\": \"px\"\n },\n \"$type\": \"dimension\"\n },\n \"blur\": {\n \"$value\": {\n \"value\": 5,\n \"unit\": \"px\"\n },\n \"$type\": \"dimension\"\n },\n \"spread\": {\n \"$value\": {\n \"value\": 0,\n \"unit\": \"px\"\n },\n \"$type\": \"dimension\"\n },\n \"color\": {\n \"$value\": \"#0000000d\",\n \"$type\": \"color\"\n }\n }\n }\n}\n","{\n \"2xs\": {\n \"layer-1\": {\n \"x\": {\n \"$value\": {\n \"value\": 0,\n \"unit\": \"px\"\n },\n \"$type\": \"dimension\"\n },\n \"y\": {\n \"$value\": {\n \"value\": 1,\n \"unit\": \"px\"\n },\n \"$type\": \"dimension\"\n },\n \"blur\": {\n \"$value\": {\n \"value\": 3,\n \"unit\": \"px\"\n },\n \"$type\": \"dimension\"\n },\n \"spread\": {\n \"$value\": {\n \"value\": 0,\n \"unit\": \"px\"\n },\n \"$type\": \"dimension\"\n },\n \"color\": {\n \"$value\": \"#0000000d\",\n \"$type\": \"color\"\n }\n }\n },\n \"xs\": {\n \"layer-1\": {\n \"x\": {\n \"$value\": {\n \"value\": 0,\n \"unit\": \"px\"\n },\n \"$type\": \"dimension\"\n },\n \"y\": {\n \"$value\": {\n \"value\": 1,\n \"unit\": \"px\"\n },\n \"$type\": \"dimension\"\n },\n \"blur\": {\n \"$value\": {\n \"value\": 3,\n \"unit\": \"px\"\n },\n \"$type\": \"dimension\"\n },\n \"spread\": {\n \"$value\": {\n \"value\": 0,\n \"unit\": \"px\"\n },\n \"$type\": \"dimension\"\n },\n \"color\": {\n \"$value\": \"#0000000d\",\n \"$type\": \"color\"\n }\n }\n },\n \"sm\": {\n \"layer-1\": {\n \"x\": {\n \"$value\": {\n \"value\": 0,\n \"unit\": \"px\"\n },\n \"$type\": \"dimension\"\n },\n \"y\": {\n \"$value\": {\n \"value\": 1,\n \"unit\": \"px\"\n },\n \"$type\": \"dimension\"\n },\n \"blur\": {\n \"$value\": {\n \"value\": 3,\n \"unit\": \"px\"\n },\n \"$type\": \"dimension\"\n },\n \"spread\": {\n \"$value\": {\n \"value\": 0,\n \"unit\": \"px\"\n },\n \"$type\": \"dimension\"\n },\n \"color\": {\n \"$value\": \"#0000001a\",\n \"$type\": \"color\"\n }\n },\n \"layer-2\": {\n \"x\": {\n \"$value\": {\n \"value\": 0,\n \"unit\": \"px\"\n },\n \"$type\": \"dimension\"\n },\n \"y\": {\n \"$value\": {\n \"value\": 2,\n \"unit\": \"px\"\n },\n \"$type\": \"dimension\"\n },\n \"blur\": {\n \"$value\": {\n \"value\": 3,\n \"unit\": \"px\"\n },\n \"$type\": \"dimension\"\n },\n \"spread\": {\n \"$value\": {\n \"value\": -1,\n \"unit\": \"px\"\n },\n \"$type\": \"dimension\"\n },\n \"color\": {\n \"$value\": \"#0000001a\",\n \"$type\": \"color\"\n }\n }\n },\n \"base\": {\n \"layer-1\": {\n \"x\": {\n \"$value\": {\n \"value\": 0,\n \"unit\": \"px\"\n },\n \"$type\": \"dimension\"\n },\n \"y\": {\n \"$value\": {\n \"value\": 1,\n \"unit\": \"px\"\n },\n \"$type\": \"dimension\"\n },\n \"blur\": {\n \"$value\": {\n \"value\": 3,\n \"unit\": \"px\"\n },\n \"$type\": \"dimension\"\n },\n \"spread\": {\n \"$value\": {\n \"value\": 0,\n \"unit\": \"px\"\n },\n \"$type\": \"dimension\"\n },\n \"color\": {\n \"$value\": \"#0000001a\",\n \"$type\": \"color\"\n }\n },\n \"layer-2\": {\n \"x\": {\n \"$value\": {\n \"value\": 0,\n \"unit\": \"px\"\n },\n \"$type\": \"dimension\"\n },\n \"y\": {\n \"$value\": {\n \"value\": 2,\n \"unit\": \"px\"\n },\n \"$type\": \"dimension\"\n },\n \"blur\": {\n \"$value\": {\n \"value\": 3,\n \"unit\": \"px\"\n },\n \"$type\": \"dimension\"\n },\n \"spread\": {\n \"$value\": {\n \"value\": -1,\n \"unit\": \"px\"\n },\n \"$type\": \"dimension\"\n },\n \"color\": {\n \"$value\": \"#0000001a\",\n \"$type\": \"color\"\n }\n }\n },\n \"md\": {\n \"layer-1\": {\n \"x\": {\n \"$value\": {\n \"value\": 0,\n \"unit\": \"px\"\n },\n \"$type\": \"dimension\"\n },\n \"y\": {\n \"$value\": {\n \"value\": 1,\n \"unit\": \"px\"\n },\n \"$type\": \"dimension\"\n },\n \"blur\": {\n \"$value\": {\n \"value\": 3,\n \"unit\": \"px\"\n },\n \"$type\": \"dimension\"\n },\n \"spread\": {\n \"$value\": {\n \"value\": 0,\n \"unit\": \"px\"\n },\n \"$type\": \"dimension\"\n },\n \"color\": {\n \"$value\": \"#0000001a\",\n \"$type\": \"color\"\n }\n },\n \"layer-2\": {\n \"x\": {\n \"$value\": {\n \"value\": 0,\n \"unit\": \"px\"\n },\n \"$type\": \"dimension\"\n },\n \"y\": {\n \"$value\": {\n \"value\": 3,\n \"unit\": \"px\"\n },\n \"$type\": \"dimension\"\n },\n \"blur\": {\n \"$value\": {\n \"value\": 5,\n \"unit\": \"px\"\n },\n \"$type\": \"dimension\"\n },\n \"spread\": {\n \"$value\": {\n \"value\": -1,\n \"unit\": \"px\"\n },\n \"$type\": \"dimension\"\n },\n \"color\": {\n \"$value\": \"#0000001a\",\n \"$type\": \"color\"\n }\n }\n },\n \"lg\": {\n \"layer-1\": {\n \"x\": {\n \"$value\": {\n \"value\": 0,\n \"unit\": \"px\"\n },\n \"$type\": \"dimension\"\n },\n \"y\": {\n \"$value\": {\n \"value\": 1,\n \"unit\": \"px\"\n },\n \"$type\": \"dimension\"\n },\n \"blur\": {\n \"$value\": {\n \"value\": 3,\n \"unit\": \"px\"\n },\n \"$type\": \"dimension\"\n },\n \"spread\": {\n \"$value\": {\n \"value\": 0,\n \"unit\": \"px\"\n },\n \"$type\": \"dimension\"\n },\n \"color\": {\n \"$value\": \"#0000001f\",\n \"$type\": \"color\"\n }\n },\n \"layer-2\": {\n \"x\": {\n \"$value\": {\n \"value\": 0,\n \"unit\": \"px\"\n },\n \"$type\": \"dimension\"\n },\n \"y\": {\n \"$value\": {\n \"value\": 6,\n \"unit\": \"px\"\n },\n \"$type\": \"dimension\"\n },\n \"blur\": {\n \"$value\": {\n \"value\": 9,\n \"unit\": \"px\"\n },\n \"$type\": \"dimension\"\n },\n \"spread\": {\n \"$value\": {\n \"value\": -1,\n \"unit\": \"px\"\n },\n \"$type\": \"dimension\"\n },\n \"color\": {\n \"$value\": \"#0000001f\",\n \"$type\": \"color\"\n }\n }\n },\n \"xl\": {\n \"layer-1\": {\n \"x\": {\n \"$value\": {\n \"value\": 0,\n \"unit\": \"px\"\n },\n \"$type\": \"dimension\"\n },\n \"y\": {\n \"$value\": {\n \"value\": 1,\n \"unit\": \"px\"\n },\n \"$type\": \"dimension\"\n },\n \"blur\": {\n \"$value\": {\n \"value\": 3,\n \"unit\": \"px\"\n },\n \"$type\": \"dimension\"\n },\n \"spread\": {\n \"$value\": {\n \"value\": 0,\n \"unit\": \"px\"\n },\n \"$type\": \"dimension\"\n },\n \"color\": {\n \"$value\": \"#0000001f\",\n \"$type\": \"color\"\n }\n },\n \"layer-2\": {\n \"x\": {\n \"$value\": {\n \"value\": 0,\n \"unit\": \"px\"\n },\n \"$type\": \"dimension\"\n },\n \"y\": {\n \"$value\": {\n \"value\": 12,\n \"unit\": \"px\"\n },\n \"$type\": \"dimension\"\n },\n \"blur\": {\n \"$value\": {\n \"value\": 16,\n \"unit\": \"px\"\n },\n \"$type\": \"dimension\"\n },\n \"spread\": {\n \"$value\": {\n \"value\": -1,\n \"unit\": \"px\"\n },\n \"$type\": \"dimension\"\n },\n \"color\": {\n \"$value\": \"#0000001f\",\n \"$type\": \"color\"\n }\n }\n },\n \"2xl\": {\n \"layer-1\": {\n \"x\": {\n \"$value\": {\n \"value\": 0,\n \"unit\": \"px\"\n },\n \"$type\": \"dimension\"\n },\n \"y\": {\n \"$value\": {\n \"value\": 1,\n \"unit\": \"px\"\n },\n \"$type\": \"dimension\"\n },\n \"blur\": {\n \"$value\": {\n \"value\": 3,\n \"unit\": \"px\"\n },\n \"$type\": \"dimension\"\n },\n \"spread\": {\n \"$value\": {\n \"value\": 0,\n \"unit\": \"px\"\n },\n \"$type\": \"dimension\"\n },\n \"color\": {\n \"$value\": \"#00000040\",\n \"$type\": \"color\"\n }\n }\n },\n \"inner\": {\n \"layer-1\": {\n \"x\": {\n \"$value\": {\n \"value\": 0,\n \"unit\": \"px\"\n },\n \"$type\": \"dimension\"\n },\n \"y\": {\n \"$value\": {\n \"value\": 2,\n \"unit\": \"px\"\n },\n \"$type\": \"dimension\"\n },\n \"blur\": {\n \"$value\": {\n \"value\": 5,\n \"unit\": \"px\"\n },\n \"$type\": \"dimension\"\n },\n \"spread\": {\n \"$value\": {\n \"value\": 0,\n \"unit\": \"px\"\n },\n \"$type\": \"dimension\"\n },\n \"color\": {\n \"$value\": \"#0000000d\",\n \"$type\": \"color\"\n }\n }\n }\n}\n","{\n \"2xs\": {\n \"layer-1\": {\n \"x\": {\n \"$value\": {\n \"value\": 0,\n \"unit\": \"px\"\n },\n \"$type\": \"dimension\"\n },\n \"y\": {\n \"$value\": {\n \"value\": 1,\n \"unit\": \"px\"\n },\n \"$type\": \"dimension\"\n },\n \"blur\": {\n \"$value\": {\n \"value\": 3,\n \"unit\": \"px\"\n },\n \"$type\": \"dimension\"\n },\n \"spread\": {\n \"$value\": {\n \"value\": 0,\n \"unit\": \"px\"\n },\n \"$type\": \"dimension\"\n },\n \"color\": {\n \"$value\": \"#00000010\",\n \"$type\": \"color\"\n }\n }\n },\n \"xs\": {\n \"layer-1\": {\n \"x\": {\n \"$value\": {\n \"value\": 0,\n \"unit\": \"px\"\n },\n \"$type\": \"dimension\"\n },\n \"y\": {\n \"$value\": {\n \"value\": 1,\n \"unit\": \"px\"\n },\n \"$type\": \"dimension\"\n },\n \"blur\": {\n \"$value\": {\n \"value\": 3,\n \"unit\": \"px\"\n },\n \"$type\": \"dimension\"\n },\n \"spread\": {\n \"$value\": {\n \"value\": 0,\n \"unit\": \"px\"\n },\n \"$type\": \"dimension\"\n },\n \"color\": {\n \"$value\": \"#00000010\",\n \"$type\": \"color\"\n }\n }\n },\n \"sm\": {\n \"layer-1\": {\n \"x\": {\n \"$value\": {\n \"value\": 0,\n \"unit\": \"px\"\n },\n \"$type\": \"dimension\"\n },\n \"y\": {\n \"$value\": {\n \"value\": 1,\n \"unit\": \"px\"\n },\n \"$type\": \"dimension\"\n },\n \"blur\": {\n \"$value\": {\n \"value\": 3,\n \"unit\": \"px\"\n },\n \"$type\": \"dimension\"\n },\n \"spread\": {\n \"$value\": {\n \"value\": 0,\n \"unit\": \"px\"\n },\n \"$type\": \"dimension\"\n },\n \"color\": {\n \"$value\": \"#00000016\",\n \"$type\": \"color\"\n }\n },\n \"layer-2\": {\n \"x\": {\n \"$value\": {\n \"value\": 0,\n \"unit\": \"px\"\n },\n \"$type\": \"dimension\"\n },\n \"y\": {\n \"$value\": {\n \"value\": 1,\n \"unit\": \"px\"\n },\n \"$type\": \"dimension\"\n },\n \"blur\": {\n \"$value\": {\n \"value\": 2,\n \"unit\": \"px\"\n },\n \"$type\": \"dimension\"\n },\n \"spread\": {\n \"$value\": {\n \"value\": -1,\n \"unit\": \"px\"\n },\n \"$type\": \"dimension\"\n },\n \"color\": {\n \"$value\": \"#00000022\",\n \"$type\": \"color\"\n }\n }\n },\n \"base\": {\n \"layer-1\": {\n \"x\": {\n \"$value\": {\n \"value\": 0,\n \"unit\": \"px\"\n },\n \"$type\": \"dimension\"\n },\n \"y\": {\n \"$value\": {\n \"value\": 1,\n \"unit\": \"px\"\n },\n \"$type\": \"dimension\"\n },\n \"blur\": {\n \"$value\": {\n \"value\": 3,\n \"unit\": \"px\"\n },\n \"$type\": \"dimension\"\n },\n \"spread\": {\n \"$value\": {\n \"value\": 0,\n \"unit\": \"px\"\n },\n \"$type\": \"dimension\"\n },\n \"color\": {\n \"$value\": \"#00000020\",\n \"$type\": \"color\"\n }\n },\n \"layer-2\": {\n \"x\": {\n \"$value\": {\n \"value\": 0,\n \"unit\": \"px\"\n },\n \"$type\": \"dimension\"\n },\n \"y\": {\n \"$value\": {\n \"value\": 1,\n \"unit\": \"px\"\n },\n \"$type\": \"dimension\"\n },\n \"blur\": {\n \"$value\": {\n \"value\": 2,\n \"unit\": \"px\"\n },\n \"$type\": \"dimension\"\n },\n \"spread\": {\n \"$value\": {\n \"value\": 0,\n \"unit\": \"px\"\n },\n \"$type\": \"dimension\"\n },\n \"color\": {\n \"$value\": \"#00000022\",\n \"$type\": \"color\"\n }\n }\n },\n \"md\": {\n \"layer-1\": {\n \"x\": {\n \"$value\": {\n \"value\": 0,\n \"unit\": \"px\"\n },\n \"$type\": \"dimension\"\n },\n \"y\": {\n \"$value\": {\n \"value\": 1,\n \"unit\": \"px\"\n },\n \"$type\": \"dimension\"\n },\n \"blur\": {\n \"$value\": {\n \"value\": 3,\n \"unit\": \"px\"\n },\n \"$type\": \"dimension\"\n },\n \"spread\": {\n \"$value\": {\n \"value\": 0,\n \"unit\": \"px\"\n },\n \"$type\": \"dimension\"\n },\n \"color\": {\n \"$value\": \"#00000020\",\n \"$type\": \"color\"\n }\n },\n \"layer-2\": {\n \"x\": {\n \"$value\": {\n \"value\": 0,\n \"unit\": \"px\"\n },\n \"$type\": \"dimension\"\n },\n \"y\": {\n \"$value\": {\n \"value\": 2,\n \"unit\": \"px\"\n },\n \"$type\": \"dimension\"\n },\n \"blur\": {\n \"$value\": {\n \"value\": 4,\n \"unit\": \"px\"\n },\n \"$type\": \"dimension\"\n },\n \"spread\": {\n \"$value\": {\n \"value\": -1,\n \"unit\": \"px\"\n },\n \"$type\": \"dimension\"\n },\n \"color\": {\n \"$value\": \"#00000024\",\n \"$type\": \"color\"\n }\n }\n },\n \"lg\": {\n \"layer-1\": {\n \"x\": {\n \"$value\": {\n \"value\": 0,\n \"unit\": \"px\"\n },\n \"$type\": \"dimension\"\n },\n \"y\": {\n \"$value\": {\n \"value\": 1,\n \"unit\": \"px\"\n },\n \"$type\": \"dimension\"\n },\n \"blur\": {\n \"$value\": {\n \"value\": 3,\n \"unit\": \"px\"\n },\n \"$type\": \"dimension\"\n },\n \"spread\": {\n \"$value\": {\n \"value\": 0,\n \"unit\": \"px\"\n },\n \"$type\": \"dimension\"\n },\n \"color\": {\n \"$value\": \"#00000024\",\n \"$type\": \"color\"\n }\n },\n \"layer-2\": {\n \"x\": {\n \"$value\": {\n \"value\": 0,\n \"unit\": \"px\"\n },\n \"$type\": \"dimension\"\n },\n \"y\": {\n \"$value\": {\n \"value\": 5,\n \"unit\": \"px\"\n },\n \"$type\": \"dimension\"\n },\n \"blur\": {\n \"$value\": {\n \"value\": 8,\n \"unit\": \"px\"\n },\n \"$type\": \"dimension\"\n },\n \"spread\": {\n \"$value\": {\n \"value\": -1,\n \"unit\": \"px\"\n },\n \"$type\": \"dimension\"\n },\n \"color\": {\n \"$value\": \"#00000030\",\n \"$type\": \"color\"\n }\n }\n },\n \"xl\": {\n \"layer-1\": {\n \"x\": {\n \"$value\": {\n \"value\": 0,\n \"unit\": \"px\"\n },\n \"$type\": \"dimension\"\n },\n \"y\": {\n \"$value\": {\n \"value\": 1,\n \"unit\": \"px\"\n },\n \"$type\": \"dimension\"\n },\n \"blur\": {\n \"$value\": {\n \"value\": 3,\n \"unit\": \"px\"\n },\n \"$type\": \"dimension\"\n },\n \"spread\": {\n \"$value\": {\n \"value\": 0,\n \"unit\": \"px\"\n },\n \"$type\": \"dimension\"\n },\n \"color\": {\n \"$value\": \"#00000028\",\n \"$type\": \"color\"\n }\n },\n \"layer-2\": {\n \"x\": {\n \"$value\": {\n \"value\": 0,\n \"unit\": \"px\"\n },\n \"$type\": \"dimension\"\n },\n \"y\": {\n \"$value\": {\n \"value\": 10,\n \"unit\": \"px\"\n },\n \"$type\": \"dimension\"\n },\n \"blur\": {\n \"$value\": {\n \"value\": 14,\n \"unit\": \"px\"\n },\n \"$type\": \"dimension\"\n },\n \"spread\": {\n \"$value\": {\n \"value\": -1,\n \"unit\": \"px\"\n },\n \"$type\": \"dimension\"\n },\n \"color\": {\n \"$value\": \"#00000038\",\n \"$type\": \"color\"\n }\n }\n },\n \"2xl\": {\n \"layer-1\": {\n \"x\": {\n \"$value\": {\n \"value\": 0,\n \"unit\": \"px\"\n },\n \"$type\": \"dimension\"\n },\n \"y\": {\n \"$value\": {\n \"value\": 1,\n \"unit\": \"px\"\n },\n \"$type\": \"dimension\"\n },\n \"blur\": {\n \"$value\": {\n \"value\": 4,\n \"unit\": \"px\"\n },\n \"$type\": \"dimension\"\n },\n \"spread\": {\n \"$value\": {\n \"value\": 0,\n \"unit\": \"px\"\n },\n \"$type\": \"dimension\"\n },\n \"color\": {\n \"$value\": \"#0000004d\",\n \"$type\": \"color\"\n }\n }\n },\n \"inner\": {\n \"layer-1\": {\n \"x\": {\n \"$value\": {\n \"value\": 0,\n \"unit\": \"px\"\n },\n \"$type\": \"dimension\"\n },\n \"y\": {\n \"$value\": {\n \"value\": 1,\n \"unit\": \"px\"\n },\n \"$type\": \"dimension\"\n },\n \"blur\": {\n \"$value\": {\n \"value\": 4,\n \"unit\": \"px\"\n },\n \"$type\": \"dimension\"\n },\n \"spread\": {\n \"$value\": {\n \"value\": 0,\n \"unit\": \"px\"\n },\n \"$type\": \"dimension\"\n },\n \"color\": {\n \"$value\": \"#00000010\",\n \"$type\": \"color\"\n }\n }\n }\n}\n","{\n \"2xs\": {\n \"layer-1\": {\n \"x\": {\n \"$value\": {\n \"value\": 0,\n \"unit\": \"px\"\n },\n \"$type\": \"dimension\"\n },\n \"y\": {\n \"$value\": {\n \"value\": 1,\n \"unit\": \"px\"\n },\n \"$type\": \"dimension\"\n },\n \"blur\": {\n \"$value\": {\n \"value\": 3,\n \"unit\": \"px\"\n },\n \"$type\": \"dimension\"\n },\n \"spread\": {\n \"$value\": {\n \"value\": 0,\n \"unit\": \"px\"\n },\n \"$type\": \"dimension\"\n },\n \"color\": {\n \"$value\": \"#0000000a\",\n \"$type\": \"color\"\n }\n }\n },\n \"xs\": {\n \"layer-1\": {\n \"x\": {\n \"$value\": {\n \"value\": 0,\n \"unit\": \"px\"\n },\n \"$type\": \"dimension\"\n },\n \"y\": {\n \"$value\": {\n \"value\": 1,\n \"unit\": \"px\"\n },\n \"$type\": \"dimension\"\n },\n \"blur\": {\n \"$value\": {\n \"value\": 3,\n \"unit\": \"px\"\n },\n \"$type\": \"dimension\"\n },\n \"spread\": {\n \"$value\": {\n \"value\": 0,\n \"unit\": \"px\"\n },\n \"$type\": \"dimension\"\n },\n \"color\": {\n \"$value\": \"#0000000a\",\n \"$type\": \"color\"\n }\n }\n },\n \"sm\": {\n \"layer-1\": {\n \"x\": {\n \"$value\": {\n \"value\": 0,\n \"unit\": \"px\"\n },\n \"$type\": \"dimension\"\n },\n \"y\": {\n \"$value\": {\n \"value\": 1,\n \"unit\": \"px\"\n },\n \"$type\": \"dimension\"\n },\n \"blur\": {\n \"$value\": {\n \"value\": 3,\n \"unit\": \"px\"\n },\n \"$type\": \"dimension\"\n },\n \"spread\": {\n \"$value\": {\n \"value\": 0,\n \"unit\": \"px\"\n },\n \"$type\": \"dimension\"\n },\n \"color\": {\n \"$value\": \"#0000000d\",\n \"$type\": \"color\"\n }\n },\n \"layer-2\": {\n \"x\": {\n \"$value\": {\n \"value\": 0,\n \"unit\": \"px\"\n },\n \"$type\": \"dimension\"\n },\n \"y\": {\n \"$value\": {\n \"value\": 1,\n \"unit\": \"px\"\n },\n \"$type\": \"dimension\"\n },\n \"blur\": {\n \"$value\": {\n \"value\": 2,\n \"unit\": \"px\"\n },\n \"$type\": \"dimension\"\n },\n \"spread\": {\n \"$value\": {\n \"value\": -1,\n \"unit\": \"px\"\n },\n \"$type\": \"dimension\"\n },\n \"color\": {\n \"$value\": \"#00000014\",\n \"$type\": \"color\"\n }\n }\n },\n \"base\": {\n \"layer-1\": {\n \"x\": {\n \"$value\": {\n \"value\": 0,\n \"unit\": \"px\"\n },\n \"$type\": \"dimension\"\n },\n \"y\": {\n \"$value\": {\n \"value\": 1,\n \"unit\": \"px\"\n },\n \"$type\": \"dimension\"\n },\n \"blur\": {\n \"$value\": {\n \"value\": 3,\n \"unit\": \"px\"\n },\n \"$type\": \"dimension\"\n },\n \"spread\": {\n \"$value\": {\n \"value\": 0,\n \"unit\": \"px\"\n },\n \"$type\": \"dimension\"\n },\n \"color\": {\n \"$value\": \"#00000014\",\n \"$type\": \"color\"\n }\n },\n \"layer-2\": {\n \"x\": {\n \"$value\": {\n \"value\": 0,\n \"unit\": \"px\"\n },\n \"$type\": \"dimension\"\n },\n \"y\": {\n \"$value\": {\n \"value\": 1,\n \"unit\": \"px\"\n },\n \"$type\": \"dimension\"\n },\n \"blur\": {\n \"$value\": {\n \"value\": 2,\n \"unit\": \"px\"\n },\n \"$type\": \"dimension\"\n },\n \"spread\": {\n \"$value\": {\n \"value\": 0,\n \"unit\": \"px\"\n },\n \"$type\": \"dimension\"\n },\n \"color\": {\n \"$value\": \"#00000014\",\n \"$type\": \"color\"\n }\n }\n },\n \"md\": {\n \"layer-1\": {\n \"x\": {\n \"$value\": {\n \"value\": 0,\n \"unit\": \"px\"\n },\n \"$type\": \"dimension\"\n },\n \"y\": {\n \"$value\": {\n \"value\": 1,\n \"unit\": \"px\"\n },\n \"$type\": \"dimension\"\n },\n \"blur\": {\n \"$value\": {\n \"value\": 3,\n \"unit\": \"px\"\n },\n \"$type\": \"dimension\"\n },\n \"spread\": {\n \"$value\": {\n \"value\": 0,\n \"unit\": \"px\"\n },\n \"$type\": \"dimension\"\n },\n \"color\": {\n \"$value\": \"#00000014\",\n \"$type\": \"color\"\n }\n },\n \"layer-2\": {\n \"x\": {\n \"$value\": {\n \"value\": 0,\n \"unit\": \"px\"\n },\n \"$type\": \"dimension\"\n },\n \"y\": {\n \"$value\": {\n \"value\": 2,\n \"unit\": \"px\"\n },\n \"$type\": \"dimension\"\n },\n \"blur\": {\n \"$value\": {\n \"value\": 4,\n \"unit\": \"px\"\n },\n \"$type\": \"dimension\"\n },\n \"spread\": {\n \"$value\": {\n \"value\": -1,\n \"unit\": \"px\"\n },\n \"$type\": \"dimension\"\n },\n \"color\": {\n \"$value\": \"#00000014\",\n \"$type\": \"color\"\n }\n }\n },\n \"lg\": {\n \"layer-1\": {\n \"x\": {\n \"$value\": {\n \"value\": 0,\n \"unit\": \"px\"\n },\n \"$type\": \"dimension\"\n },\n \"y\": {\n \"$value\": {\n \"value\": 1,\n \"unit\": \"px\"\n },\n \"$type\": \"dimension\"\n },\n \"blur\": {\n \"$value\": {\n \"value\": 3,\n \"unit\": \"px\"\n },\n \"$type\": \"dimension\"\n },\n \"spread\": {\n \"$value\": {\n \"value\": 0,\n \"unit\": \"px\"\n },\n \"$type\": \"dimension\"\n },\n \"color\": {\n \"$value\": \"#0000001a\",\n \"$type\": \"color\"\n }\n },\n \"layer-2\": {\n \"x\": {\n \"$value\": {\n \"value\": 0,\n \"unit\": \"px\"\n },\n \"$type\": \"dimension\"\n },\n \"y\": {\n \"$value\": {\n \"value\": 5,\n \"unit\": \"px\"\n },\n \"$type\": \"dimension\"\n },\n \"blur\": {\n \"$value\": {\n \"value\": 8,\n \"unit\": \"px\"\n },\n \"$type\": \"dimension\"\n },\n \"spread\": {\n \"$value\": {\n \"value\": -1,\n \"unit\": \"px\"\n },\n \"$type\": \"dimension\"\n },\n \"color\": {\n \"$value\": \"#0000001a\",\n \"$type\": \"color\"\n }\n }\n },\n \"xl\": {\n \"layer-1\": {\n \"x\": {\n \"$value\": {\n \"value\": 0,\n \"unit\": \"px\"\n },\n \"$type\": \"dimension\"\n },\n \"y\": {\n \"$value\": {\n \"value\": 1,\n \"unit\": \"px\"\n },\n \"$type\": \"dimension\"\n },\n \"blur\": {\n \"$value\": {\n \"value\": 3,\n \"unit\": \"px\"\n },\n \"$type\": \"dimension\"\n },\n \"spread\": {\n \"$value\": {\n \"value\": 0,\n \"unit\": \"px\"\n },\n \"$type\": \"dimension\"\n },\n \"color\": {\n \"$value\": \"#0000001a\",\n \"$type\": \"color\"\n }\n },\n \"layer-2\": {\n \"x\": {\n \"$value\": {\n \"value\": 0,\n \"unit\": \"px\"\n },\n \"$type\": \"dimension\"\n },\n \"y\": {\n \"$value\": {\n \"value\": 10,\n \"unit\": \"px\"\n },\n \"$type\": \"dimension\"\n },\n \"blur\": {\n \"$value\": {\n \"value\": 14,\n \"unit\": \"px\"\n },\n \"$type\": \"dimension\"\n },\n \"spread\": {\n \"$value\": {\n \"value\": -1,\n \"unit\": \"px\"\n },\n \"$type\": \"dimension\"\n },\n \"color\": {\n \"$value\": \"#0000001a\",\n \"$type\": \"color\"\n }\n }\n },\n \"2xl\": {\n \"layer-1\": {\n \"x\": {\n \"$value\": {\n \"value\": 0,\n \"unit\": \"px\"\n },\n \"$type\": \"dimension\"\n },\n \"y\": {\n \"$value\": {\n \"value\": 1,\n \"unit\": \"px\"\n },\n \"$type\": \"dimension\"\n },\n \"blur\": {\n \"$value\": {\n \"value\": 4,\n \"unit\": \"px\"\n },\n \"$type\": \"dimension\"\n },\n \"spread\": {\n \"$value\": {\n \"value\": 0,\n \"unit\": \"px\"\n },\n \"$type\": \"dimension\"\n },\n \"color\": {\n \"$value\": \"#00000038\",\n \"$type\": \"color\"\n }\n }\n },\n \"inner\": {\n \"layer-1\": {\n \"x\": {\n \"$value\": {\n \"value\": 0,\n \"unit\": \"px\"\n },\n \"$type\": \"dimension\"\n },\n \"y\": {\n \"$value\": {\n \"value\": 1,\n \"unit\": \"px\"\n },\n \"$type\": \"dimension\"\n },\n \"blur\": {\n \"$value\": {\n \"value\": 4,\n \"unit\": \"px\"\n },\n \"$type\": \"dimension\"\n },\n \"spread\": {\n \"$value\": {\n \"value\": 0,\n \"unit\": \"px\"\n },\n \"$type\": \"dimension\"\n },\n \"color\": {\n \"$value\": \"#0000000a\",\n \"$type\": \"color\"\n }\n }\n }\n}\n","{\n \"2xs\": {\n \"layer-1\": {\n \"x\": {\n \"$value\": {\n \"value\": 0,\n \"unit\": \"px\"\n },\n \"$type\": \"dimension\"\n },\n \"y\": {\n \"$value\": {\n \"value\": 1,\n \"unit\": \"px\"\n },\n \"$type\": \"dimension\"\n },\n \"blur\": {\n \"$value\": {\n \"value\": 3,\n \"unit\": \"px\"\n },\n \"$type\": \"dimension\"\n },\n \"spread\": {\n \"$value\": {\n \"value\": 0,\n \"unit\": \"px\"\n },\n \"$type\": \"dimension\"\n },\n \"color\": {\n \"$value\": \"#00000018\",\n \"$type\": \"color\"\n }\n }\n },\n \"xs\": {\n \"layer-1\": {\n \"x\": {\n \"$value\": {\n \"value\": 0,\n \"unit\": \"px\"\n },\n \"$type\": \"dimension\"\n },\n \"y\": {\n \"$value\": {\n \"value\": 1,\n \"unit\": \"px\"\n },\n \"$type\": \"dimension\"\n },\n \"blur\": {\n \"$value\": {\n \"value\": 3,\n \"unit\": \"px\"\n },\n \"$type\": \"dimension\"\n },\n \"spread\": {\n \"$value\": {\n \"value\": 0,\n \"unit\": \"px\"\n },\n \"$type\": \"dimension\"\n },\n \"color\": {\n \"$value\": \"#00000018\",\n \"$type\": \"color\"\n }\n }\n },\n \"sm\": {\n \"layer-1\": {\n \"x\": {\n \"$value\": {\n \"value\": 0,\n \"unit\": \"px\"\n },\n \"$type\": \"dimension\"\n },\n \"y\": {\n \"$value\": {\n \"value\": 1,\n \"unit\": \"px\"\n },\n \"$type\": \"dimension\"\n },\n \"blur\": {\n \"$value\": {\n \"value\": 3,\n \"unit\": \"px\"\n },\n \"$type\": \"dimension\"\n },\n \"spread\": {\n \"$value\": {\n \"value\": 0,\n \"unit\": \"px\"\n },\n \"$type\": \"dimension\"\n },\n \"color\": {\n \"$value\": \"#0000002a\",\n \"$type\": \"color\"\n }\n },\n \"layer-2\": {\n \"x\": {\n \"$value\": {\n \"value\": 0,\n \"unit\": \"px\"\n },\n \"$type\": \"dimension\"\n },\n \"y\": {\n \"$value\": {\n \"value\": 2,\n \"unit\": \"px\"\n },\n \"$type\": \"dimension\"\n },\n \"blur\": {\n \"$value\": {\n \"value\": 4,\n \"unit\": \"px\"\n },\n \"$type\": \"dimension\"\n },\n \"spread\": {\n \"$value\": {\n \"value\": -1,\n \"unit\": \"px\"\n },\n \"$type\": \"dimension\"\n },\n \"color\": {\n \"$value\": \"#0000002e\",\n \"$type\": \"color\"\n }\n }\n },\n \"base\": {\n \"layer-1\": {\n \"x\": {\n \"$value\": {\n \"value\": 0,\n \"unit\": \"px\"\n },\n \"$type\": \"dimension\"\n },\n \"y\": {\n \"$value\": {\n \"value\": 1,\n \"unit\": \"px\"\n },\n \"$type\": \"dimension\"\n },\n \"blur\": {\n \"$value\": {\n \"value\": 3,\n \"unit\": \"px\"\n },\n \"$type\": \"dimension\"\n },\n \"spread\": {\n \"$value\": {\n \"value\": 0,\n \"unit\": \"px\"\n },\n \"$type\": \"dimension\"\n },\n \"color\": {\n \"$value\": \"#0000002a\",\n \"$type\": \"color\"\n }\n },\n \"layer-2\": {\n \"x\": {\n \"$value\": {\n \"value\": 0,\n \"unit\": \"px\"\n },\n \"$type\": \"dimension\"\n },\n \"y\": {\n \"$value\": {\n \"value\": 3,\n \"unit\": \"px\"\n },\n \"$type\": \"dimension\"\n },\n \"blur\": {\n \"$value\": {\n \"value\": 6,\n \"unit\": \"px\"\n },\n \"$type\": \"dimension\"\n },\n \"spread\": {\n \"$value\": {\n \"value\": -1,\n \"unit\": \"px\"\n },\n \"$type\": \"dimension\"\n },\n \"color\": {\n \"$value\": \"#00000033\",\n \"$type\": \"color\"\n }\n }\n },\n \"md\": {\n \"layer-1\": {\n \"x\": {\n \"$value\": {\n \"value\": 0,\n \"unit\": \"px\"\n },\n \"$type\": \"dimension\"\n },\n \"y\": {\n \"$value\": {\n \"value\": 1,\n \"unit\": \"px\"\n },\n \"$type\": \"dimension\"\n },\n \"blur\": {\n \"$value\": {\n \"value\": 3,\n \"unit\": \"px\"\n },\n \"$type\": \"dimension\"\n },\n \"spread\": {\n \"$value\": {\n \"value\": 0,\n \"unit\": \"px\"\n },\n \"$type\": \"dimension\"\n },\n \"color\": {\n \"$value\": \"#0000002e\",\n \"$type\": \"color\"\n }\n },\n \"layer-2\": {\n \"x\": {\n \"$value\": {\n \"value\": 0,\n \"unit\": \"px\"\n },\n \"$type\": \"dimension\"\n },\n \"y\": {\n \"$value\": {\n \"value\": 4,\n \"unit\": \"px\"\n },\n \"$type\": \"dimension\"\n },\n \"blur\": {\n \"$value\": {\n \"value\": 8,\n \"unit\": \"px\"\n },\n \"$type\": \"dimension\"\n },\n \"spread\": {\n \"$value\": {\n \"value\": -1,\n \"unit\": \"px\"\n },\n \"$type\": \"dimension\"\n },\n \"color\": {\n \"$value\": \"#00000038\",\n \"$type\": \"color\"\n }\n }\n },\n \"lg\": {\n \"layer-1\": {\n \"x\": {\n \"$value\": {\n \"value\": 0,\n \"unit\": \"px\"\n },\n \"$type\": \"dimension\"\n },\n \"y\": {\n \"$value\": {\n \"value\": 1,\n \"unit\": \"px\"\n },\n \"$type\": \"dimension\"\n },\n \"blur\": {\n \"$value\": {\n \"value\": 3,\n \"unit\": \"px\"\n },\n \"$type\": \"dimension\"\n },\n \"spread\": {\n \"$value\": {\n \"value\": 0,\n \"unit\": \"px\"\n },\n \"$type\": \"dimension\"\n },\n \"color\": {\n \"$value\": \"#00000038\",\n \"$type\": \"color\"\n }\n },\n \"layer-2\": {\n \"x\": {\n \"$value\": {\n \"value\": 0,\n \"unit\": \"px\"\n },\n \"$type\": \"dimension\"\n },\n \"y\": {\n \"$value\": {\n \"value\": 8,\n \"unit\": \"px\"\n },\n \"$type\": \"dimension\"\n },\n \"blur\": {\n \"$value\": {\n \"value\": 16,\n \"unit\": \"px\"\n },\n \"$type\": \"dimension\"\n },\n \"spread\": {\n \"$value\": {\n \"value\": -1,\n \"unit\": \"px\"\n },\n \"$type\": \"dimension\"\n },\n \"color\": {\n \"$value\": \"#00000042\",\n \"$type\": \"color\"\n }\n }\n },\n \"xl\": {\n \"layer-1\": {\n \"x\": {\n \"$value\": {\n \"value\": 0,\n \"unit\": \"px\"\n },\n \"$type\": \"dimension\"\n },\n \"y\": {\n \"$value\": {\n \"value\": 1,\n \"unit\": \"px\"\n },\n \"$type\": \"dimension\"\n },\n \"blur\": {\n \"$value\": {\n \"value\": 3,\n \"unit\": \"px\"\n },\n \"$type\": \"dimension\"\n },\n \"spread\": {\n \"$value\": {\n \"value\": 0,\n \"unit\": \"px\"\n },\n \"$type\": \"dimension\"\n },\n \"color\": {\n \"$value\": \"#00000042\",\n \"$type\": \"color\"\n }\n },\n \"layer-2\": {\n \"x\": {\n \"$value\": {\n \"value\": 0,\n \"unit\": \"px\"\n },\n \"$type\": \"dimension\"\n },\n \"y\": {\n \"$value\": {\n \"value\": 16,\n \"unit\": \"px\"\n },\n \"$type\": \"dimension\"\n },\n \"blur\": {\n \"$value\": {\n \"value\": 24,\n \"unit\": \"px\"\n },\n \"$type\": \"dimension\"\n },\n \"spread\": {\n \"$value\": {\n \"value\": -1,\n \"unit\": \"px\"\n },\n \"$type\": \"dimension\"\n },\n \"color\": {\n \"$value\": \"#00000052\",\n \"$type\": \"color\"\n }\n }\n },\n \"2xl\": {\n \"layer-1\": {\n \"x\": {\n \"$value\": {\n \"value\": 0,\n \"unit\": \"px\"\n },\n \"$type\": \"dimension\"\n },\n \"y\": {\n \"$value\": {\n \"value\": 1,\n \"unit\": \"px\"\n },\n \"$type\": \"dimension\"\n },\n \"blur\": {\n \"$value\": {\n \"value\": 3,\n \"unit\": \"px\"\n },\n \"$type\": \"dimension\"\n },\n \"spread\": {\n \"$value\": {\n \"value\": 0,\n \"unit\": \"px\"\n },\n \"$type\": \"dimension\"\n },\n \"color\": {\n \"$value\": \"#00000059\",\n \"$type\": \"color\"\n }\n }\n },\n \"inner\": {\n \"layer-1\": {\n \"x\": {\n \"$value\": {\n \"value\": 0,\n \"unit\": \"px\"\n },\n \"$type\": \"dimension\"\n },\n \"y\": {\n \"$value\": {\n \"value\": 2,\n \"unit\": \"px\"\n },\n \"$type\": \"dimension\"\n },\n \"blur\": {\n \"$value\": {\n \"value\": 6,\n \"unit\": \"px\"\n },\n \"$type\": \"dimension\"\n },\n \"spread\": {\n \"$value\": {\n \"value\": 0,\n \"unit\": \"px\"\n },\n \"$type\": \"dimension\"\n },\n \"color\": {\n \"$value\": \"#00000018\",\n \"$type\": \"color\"\n }\n }\n }\n}\n","{\n \"2xs\": {\n \"layer-1\": {\n \"x\": {\n \"$value\": {\n \"value\": 0,\n \"unit\": \"px\"\n },\n \"$type\": \"dimension\"\n },\n \"y\": {\n \"$value\": {\n \"value\": 1,\n \"unit\": \"px\"\n },\n \"$type\": \"dimension\"\n },\n \"blur\": {\n \"$value\": {\n \"value\": 3,\n \"unit\": \"px\"\n },\n \"$type\": \"dimension\"\n },\n \"spread\": {\n \"$value\": {\n \"value\": 0,\n \"unit\": \"px\"\n },\n \"$type\": \"dimension\"\n },\n \"color\": {\n \"$value\": \"#00000014\",\n \"$type\": \"color\"\n }\n }\n },\n \"xs\": {\n \"layer-1\": {\n \"x\": {\n \"$value\": {\n \"value\": 0,\n \"unit\": \"px\"\n },\n \"$type\": \"dimension\"\n },\n \"y\": {\n \"$value\": {\n \"value\": 1,\n \"unit\": \"px\"\n },\n \"$type\": \"dimension\"\n },\n \"blur\": {\n \"$value\": {\n \"value\": 3,\n \"unit\": \"px\"\n },\n \"$type\": \"dimension\"\n },\n \"spread\": {\n \"$value\": {\n \"value\": 0,\n \"unit\": \"px\"\n },\n \"$type\": \"dimension\"\n },\n \"color\": {\n \"$value\": \"#00000014\",\n \"$type\": \"color\"\n }\n }\n },\n \"sm\": {\n \"layer-1\": {\n \"x\": {\n \"$value\": {\n \"value\": 0,\n \"unit\": \"px\"\n },\n \"$type\": \"dimension\"\n },\n \"y\": {\n \"$value\": {\n \"value\": 1,\n \"unit\": \"px\"\n },\n \"$type\": \"dimension\"\n },\n \"blur\": {\n \"$value\": {\n \"value\": 3,\n \"unit\": \"px\"\n },\n \"$type\": \"dimension\"\n },\n \"spread\": {\n \"$value\": {\n \"value\": 0,\n \"unit\": \"px\"\n },\n \"$type\": \"dimension\"\n },\n \"color\": {\n \"$value\": \"#0000001f\",\n \"$type\": \"color\"\n }\n },\n \"layer-2\": {\n \"x\": {\n \"$value\": {\n \"value\": 0,\n \"unit\": \"px\"\n },\n \"$type\": \"dimension\"\n },\n \"y\": {\n \"$value\": {\n \"value\": 2,\n \"unit\": \"px\"\n },\n \"$type\": \"dimension\"\n },\n \"blur\": {\n \"$value\": {\n \"value\": 4,\n \"unit\": \"px\"\n },\n \"$type\": \"dimension\"\n },\n \"spread\": {\n \"$value\": {\n \"value\": -1,\n \"unit\": \"px\"\n },\n \"$type\": \"dimension\"\n },\n \"color\": {\n \"$value\": \"#0000001f\",\n \"$type\": \"color\"\n }\n }\n },\n \"base\": {\n \"layer-1\": {\n \"x\": {\n \"$value\": {\n \"value\": 0,\n \"unit\": \"px\"\n },\n \"$type\": \"dimension\"\n },\n \"y\": {\n \"$value\": {\n \"value\": 1,\n \"unit\": \"px\"\n },\n \"$type\": \"dimension\"\n },\n \"blur\": {\n \"$value\": {\n \"value\": 3,\n \"unit\": \"px\"\n },\n \"$type\": \"dimension\"\n },\n \"spread\": {\n \"$value\": {\n \"value\": 0,\n \"unit\": \"px\"\n },\n \"$type\": \"dimension\"\n },\n \"color\": {\n \"$value\": \"#0000001f\",\n \"$type\": \"color\"\n }\n },\n \"layer-2\": {\n \"x\": {\n \"$value\": {\n \"value\": 0,\n \"unit\": \"px\"\n },\n \"$type\": \"dimension\"\n },\n \"y\": {\n \"$value\": {\n \"value\": 3,\n \"unit\": \"px\"\n },\n \"$type\": \"dimension\"\n },\n \"blur\": {\n \"$value\": {\n \"value\": 6,\n \"unit\": \"px\"\n },\n \"$type\": \"dimension\"\n },\n \"spread\": {\n \"$value\": {\n \"value\": -1,\n \"unit\": \"px\"\n },\n \"$type\": \"dimension\"\n },\n \"color\": {\n \"$value\": \"#0000001f\",\n \"$type\": \"color\"\n }\n }\n },\n \"md\": {\n \"layer-1\": {\n \"x\": {\n \"$value\": {\n \"value\": 0,\n \"unit\": \"px\"\n },\n \"$type\": \"dimension\"\n },\n \"y\": {\n \"$value\": {\n \"value\": 1,\n \"unit\": \"px\"\n },\n \"$type\": \"dimension\"\n },\n \"blur\": {\n \"$value\": {\n \"value\": 3,\n \"unit\": \"px\"\n },\n \"$type\": \"dimension\"\n },\n \"spread\": {\n \"$value\": {\n \"value\": 0,\n \"unit\": \"px\"\n },\n \"$type\": \"dimension\"\n },\n \"color\": {\n \"$value\": \"#0000001f\",\n \"$type\": \"color\"\n }\n },\n \"layer-2\": {\n \"x\": {\n \"$value\": {\n \"value\": 0,\n \"unit\": \"px\"\n },\n \"$type\": \"dimension\"\n },\n \"y\": {\n \"$value\": {\n \"value\": 4,\n \"unit\": \"px\"\n },\n \"$type\": \"dimension\"\n },\n \"blur\": {\n \"$value\": {\n \"value\": 8,\n \"unit\": \"px\"\n },\n \"$type\": \"dimension\"\n },\n \"spread\": {\n \"$value\": {\n \"value\": -1,\n \"unit\": \"px\"\n },\n \"$type\": \"dimension\"\n },\n \"color\": {\n \"$value\": \"#0000001f\",\n \"$type\": \"color\"\n }\n }\n },\n \"lg\": {\n \"layer-1\": {\n \"x\": {\n \"$value\": {\n \"value\": 0,\n \"unit\": \"px\"\n },\n \"$type\": \"dimension\"\n },\n \"y\": {\n \"$value\": {\n \"value\": 1,\n \"unit\": \"px\"\n },\n \"$type\": \"dimension\"\n },\n \"blur\": {\n \"$value\": {\n \"value\": 3,\n \"unit\": \"px\"\n },\n \"$type\": \"dimension\"\n },\n \"spread\": {\n \"$value\": {\n \"value\": 0,\n \"unit\": \"px\"\n },\n \"$type\": \"dimension\"\n },\n \"color\": {\n \"$value\": \"#00000026\",\n \"$type\": \"color\"\n }\n },\n \"layer-2\": {\n \"x\": {\n \"$value\": {\n \"value\": 0,\n \"unit\": \"px\"\n },\n \"$type\": \"dimension\"\n },\n \"y\": {\n \"$value\": {\n \"value\": 8,\n \"unit\": \"px\"\n },\n \"$type\": \"dimension\"\n },\n \"blur\": {\n \"$value\": {\n \"value\": 16,\n \"unit\": \"px\"\n },\n \"$type\": \"dimension\"\n },\n \"spread\": {\n \"$value\": {\n \"value\": -1,\n \"unit\": \"px\"\n },\n \"$type\": \"dimension\"\n },\n \"color\": {\n \"$value\": \"#00000026\",\n \"$type\": \"color\"\n }\n }\n },\n \"xl\": {\n \"layer-1\": {\n \"x\": {\n \"$value\": {\n \"value\": 0,\n \"unit\": \"px\"\n },\n \"$type\": \"dimension\"\n },\n \"y\": {\n \"$value\": {\n \"value\": 1,\n \"unit\": \"px\"\n },\n \"$type\": \"dimension\"\n },\n \"blur\": {\n \"$value\": {\n \"value\": 3,\n \"unit\": \"px\"\n },\n \"$type\": \"dimension\"\n },\n \"spread\": {\n \"$value\": {\n \"value\": 0,\n \"unit\": \"px\"\n },\n \"$type\": \"dimension\"\n },\n \"color\": {\n \"$value\": \"#0000002e\",\n \"$type\": \"color\"\n }\n },\n \"layer-2\": {\n \"x\": {\n \"$value\": {\n \"value\": 0,\n \"unit\": \"px\"\n },\n \"$type\": \"dimension\"\n },\n \"y\": {\n \"$value\": {\n \"value\": 16,\n \"unit\": \"px\"\n },\n \"$type\": \"dimension\"\n },\n \"blur\": {\n \"$value\": {\n \"value\": 24,\n \"unit\": \"px\"\n },\n \"$type\": \"dimension\"\n },\n \"spread\": {\n \"$value\": {\n \"value\": -1,\n \"unit\": \"px\"\n },\n \"$type\": \"dimension\"\n },\n \"color\": {\n \"$value\": \"#0000002e\",\n \"$type\": \"color\"\n }\n }\n },\n \"2xl\": {\n \"layer-1\": {\n \"x\": {\n \"$value\": {\n \"value\": 0,\n \"unit\": \"px\"\n },\n \"$type\": \"dimension\"\n },\n \"y\": {\n \"$value\": {\n \"value\": 1,\n \"unit\": \"px\"\n },\n \"$type\": \"dimension\"\n },\n \"blur\": {\n \"$value\": {\n \"value\": 3,\n \"unit\": \"px\"\n },\n \"$type\": \"dimension\"\n },\n \"spread\": {\n \"$value\": {\n \"value\": 0,\n \"unit\": \"px\"\n },\n \"$type\": \"dimension\"\n },\n \"color\": {\n \"$value\": \"#0000004d\",\n \"$type\": \"color\"\n }\n }\n },\n \"inner\": {\n \"layer-1\": {\n \"x\": {\n \"$value\": {\n \"value\": 0,\n \"unit\": \"px\"\n },\n \"$type\": \"dimension\"\n },\n \"y\": {\n \"$value\": {\n \"value\": 2,\n \"unit\": \"px\"\n },\n \"$type\": \"dimension\"\n },\n \"blur\": {\n \"$value\": {\n \"value\": 6,\n \"unit\": \"px\"\n },\n \"$type\": \"dimension\"\n },\n \"spread\": {\n \"$value\": {\n \"value\": 0,\n \"unit\": \"px\"\n },\n \"$type\": \"dimension\"\n },\n \"color\": {\n \"$value\": \"#00000014\",\n \"$type\": \"color\"\n }\n }\n }\n}\n","{\n \"$description\": \"Responsive breakpoints (rem). Values match Tailwind v4's own defaults exactly — nxds declares them explicitly so they fall under the same reset-and-own discipline as every other namespace (color/spacing/radius/shadow) instead of being inherited implicitly. Tailwind v4 auto-discovers --breakpoint-* from @theme and uses them to generate the nx:sm:…nx:2xl: responsive variants. Override at BUILD TIME by re-declaring a value in a consumer @theme block — NOT at runtime: @media cannot read var(), so Tailwind bakes the resolved value into the generated media queries at build time.\",\n \"breakpoint-sm\": {\n \"$value\": {\n \"value\": 40,\n \"unit\": \"rem\"\n },\n \"$type\": \"dimension\",\n \"$description\": \"640px @ 16px root — mobile / narrow (first-class).\"\n },\n \"breakpoint-md\": {\n \"$value\": {\n \"value\": 48,\n \"unit\": \"rem\"\n },\n \"$type\": \"dimension\",\n \"$description\": \"768px @ 16px root — large phone / small tablet.\"\n },\n \"breakpoint-lg\": {\n \"$value\": {\n \"value\": 64,\n \"unit\": \"rem\"\n },\n \"$type\": \"dimension\",\n \"$description\": \"1024px @ 16px root — desktop floor (first-class).\"\n },\n \"breakpoint-xl\": {\n \"$value\": {\n \"value\": 80,\n \"unit\": \"rem\"\n },\n \"$type\": \"dimension\",\n \"$description\": \"1280px @ 16px root — desktop reference width.\"\n },\n \"breakpoint-2xl\": {\n \"$value\": {\n \"value\": 96,\n \"unit\": \"rem\"\n },\n \"$type\": \"dimension\",\n \"$description\": \"1536px @ 16px root — wide (extra breathing room).\"\n }\n}\n","{\n \"spacing\": {\n \"0\": {\n \"$value\": {\n \"value\": 0,\n \"unit\": \"px\"\n },\n \"$type\": \"dimension\"\n },\n \"1\": {\n \"$value\": {\n \"value\": 4,\n \"unit\": \"px\"\n },\n \"$type\": \"dimension\"\n },\n \"2\": {\n \"$value\": {\n \"value\": 8,\n \"unit\": \"px\"\n },\n \"$type\": \"dimension\"\n },\n \"3\": {\n \"$value\": {\n \"value\": 12,\n \"unit\": \"px\"\n },\n \"$type\": \"dimension\"\n },\n \"4\": {\n \"$value\": {\n \"value\": 16,\n \"unit\": \"px\"\n },\n \"$type\": \"dimension\"\n },\n \"5\": {\n \"$value\": {\n \"value\": 20,\n \"unit\": \"px\"\n },\n \"$type\": \"dimension\"\n },\n \"6\": {\n \"$value\": {\n \"value\": 24,\n \"unit\": \"px\"\n },\n \"$type\": \"dimension\"\n },\n \"7\": {\n \"$value\": {\n \"value\": 28,\n \"unit\": \"px\"\n },\n \"$type\": \"dimension\"\n },\n \"8\": {\n \"$value\": {\n \"value\": 32,\n \"unit\": \"px\"\n },\n \"$type\": \"dimension\"\n },\n \"9\": {\n \"$value\": {\n \"value\": 36,\n \"unit\": \"px\"\n },\n \"$type\": \"dimension\"\n },\n \"10\": {\n \"$value\": {\n \"value\": 40,\n \"unit\": \"px\"\n },\n \"$type\": \"dimension\"\n },\n \"11\": {\n \"$value\": {\n \"value\": 44,\n \"unit\": \"px\"\n },\n \"$type\": \"dimension\"\n },\n \"12\": {\n \"$value\": {\n \"value\": 48,\n \"unit\": \"px\"\n },\n \"$type\": \"dimension\"\n },\n \"14\": {\n \"$value\": {\n \"value\": 56,\n \"unit\": \"px\"\n },\n \"$type\": \"dimension\"\n },\n \"16\": {\n \"$value\": {\n \"value\": 64,\n \"unit\": \"px\"\n },\n \"$type\": \"dimension\"\n },\n \"20\": {\n \"$value\": {\n \"value\": 80,\n \"unit\": \"px\"\n },\n \"$type\": \"dimension\"\n },\n \"24\": {\n \"$value\": {\n \"value\": 96,\n \"unit\": \"px\"\n },\n \"$type\": \"dimension\"\n },\n \"28\": {\n \"$value\": {\n \"value\": 112,\n \"unit\": \"px\"\n },\n \"$type\": \"dimension\"\n },\n \"32\": {\n \"$value\": {\n \"value\": 128,\n \"unit\": \"px\"\n },\n \"$type\": \"dimension\"\n },\n \"36\": {\n \"$value\": {\n \"value\": 144,\n \"unit\": \"px\"\n },\n \"$type\": \"dimension\"\n },\n \"40\": {\n \"$value\": {\n \"value\": 160,\n \"unit\": \"px\"\n },\n \"$type\": \"dimension\"\n },\n \"44\": {\n \"$value\": {\n \"value\": 176,\n \"unit\": \"px\"\n },\n \"$type\": \"dimension\"\n },\n \"48\": {\n \"$value\": {\n \"value\": 192,\n \"unit\": \"px\"\n },\n \"$type\": \"dimension\"\n },\n \"52\": {\n \"$value\": {\n \"value\": 208,\n \"unit\": \"px\"\n },\n \"$type\": \"dimension\"\n },\n \"56\": {\n \"$value\": {\n \"value\": 224,\n \"unit\": \"px\"\n },\n \"$type\": \"dimension\"\n },\n \"60\": {\n \"$value\": {\n \"value\": 240,\n \"unit\": \"px\"\n },\n \"$type\": \"dimension\"\n },\n \"64\": {\n \"$value\": {\n \"value\": 256,\n \"unit\": \"px\"\n },\n \"$type\": \"dimension\"\n },\n \"72\": {\n \"$value\": {\n \"value\": 288,\n \"unit\": \"px\"\n },\n \"$type\": \"dimension\"\n },\n \"80\": {\n \"$value\": {\n \"value\": 320,\n \"unit\": \"px\"\n },\n \"$type\": \"dimension\"\n },\n \"96\": {\n \"$value\": {\n \"value\": 384,\n \"unit\": \"px\"\n },\n \"$type\": \"dimension\"\n },\n \"0_5\": {\n \"$value\": {\n \"value\": 2,\n \"unit\": \"px\"\n },\n \"$type\": \"dimension\"\n },\n \"1_5\": {\n \"$value\": {\n \"value\": 6,\n \"unit\": \"px\"\n },\n \"$type\": \"dimension\"\n },\n \"2_5\": {\n \"$value\": {\n \"value\": 10,\n \"unit\": \"px\"\n },\n \"$type\": \"dimension\"\n },\n \"3_5\": {\n \"$value\": {\n \"value\": 14,\n \"unit\": \"px\"\n },\n \"$type\": \"dimension\"\n }\n },\n \"container\": {\n \"p\": {\n \"$value\": {\n \"value\": 28,\n \"unit\": \"px\"\n },\n \"$type\": \"dimension\"\n },\n \"gap\": {\n \"$value\": {\n \"value\": 20,\n \"unit\": \"px\"\n },\n \"$type\": \"dimension\"\n }\n },\n \"layout\": {\n \"section-gap\": {\n \"$value\": {\n \"value\": 40,\n \"unit\": \"px\"\n },\n \"$type\": \"dimension\"\n },\n \"stack-gap\": {\n \"$value\": {\n \"value\": 10,\n \"unit\": \"px\"\n },\n \"$type\": \"dimension\"\n }\n }\n}\n","{\n \"spacing\": {\n \"0\": {\n \"$value\": {\n \"value\": 0,\n \"unit\": \"px\"\n },\n \"$type\": \"dimension\"\n },\n \"1\": {\n \"$value\": {\n \"value\": 4,\n \"unit\": \"px\"\n },\n \"$type\": \"dimension\"\n },\n \"2\": {\n \"$value\": {\n \"value\": 8,\n \"unit\": \"px\"\n },\n \"$type\": \"dimension\"\n },\n \"3\": {\n \"$value\": {\n \"value\": 10,\n \"unit\": \"px\"\n },\n \"$type\": \"dimension\"\n },\n \"4\": {\n \"$value\": {\n \"value\": 14,\n \"unit\": \"px\"\n },\n \"$type\": \"dimension\"\n },\n \"5\": {\n \"$value\": {\n \"value\": 18,\n \"unit\": \"px\"\n },\n \"$type\": \"dimension\"\n },\n \"6\": {\n \"$value\": {\n \"value\": 22,\n \"unit\": \"px\"\n },\n \"$type\": \"dimension\"\n },\n \"7\": {\n \"$value\": {\n \"value\": 26,\n \"unit\": \"px\"\n },\n \"$type\": \"dimension\"\n },\n \"8\": {\n \"$value\": {\n \"value\": 30,\n \"unit\": \"px\"\n },\n \"$type\": \"dimension\"\n },\n \"9\": {\n \"$value\": {\n \"value\": 34,\n \"unit\": \"px\"\n },\n \"$type\": \"dimension\"\n },\n \"10\": {\n \"$value\": {\n \"value\": 38,\n \"unit\": \"px\"\n },\n \"$type\": \"dimension\"\n },\n \"11\": {\n \"$value\": {\n \"value\": 42,\n \"unit\": \"px\"\n },\n \"$type\": \"dimension\"\n },\n \"12\": {\n \"$value\": {\n \"value\": 46,\n \"unit\": \"px\"\n },\n \"$type\": \"dimension\"\n },\n \"14\": {\n \"$value\": {\n \"value\": 52,\n \"unit\": \"px\"\n },\n \"$type\": \"dimension\"\n },\n \"16\": {\n \"$value\": {\n \"value\": 60,\n \"unit\": \"px\"\n },\n \"$type\": \"dimension\"\n },\n \"20\": {\n \"$value\": {\n \"value\": 76,\n \"unit\": \"px\"\n },\n \"$type\": \"dimension\"\n },\n \"24\": {\n \"$value\": {\n \"value\": 92,\n \"unit\": \"px\"\n },\n \"$type\": \"dimension\"\n },\n \"28\": {\n \"$value\": {\n \"value\": 108,\n \"unit\": \"px\"\n },\n \"$type\": \"dimension\"\n },\n \"32\": {\n \"$value\": {\n \"value\": 124,\n \"unit\": \"px\"\n },\n \"$type\": \"dimension\"\n },\n \"36\": {\n \"$value\": {\n \"value\": 140,\n \"unit\": \"px\"\n },\n \"$type\": \"dimension\"\n },\n \"40\": {\n \"$value\": {\n \"value\": 156,\n \"unit\": \"px\"\n },\n \"$type\": \"dimension\"\n },\n \"44\": {\n \"$value\": {\n \"value\": 172,\n \"unit\": \"px\"\n },\n \"$type\": \"dimension\"\n },\n \"48\": {\n \"$value\": {\n \"value\": 188,\n \"unit\": \"px\"\n },\n \"$type\": \"dimension\"\n },\n \"52\": {\n \"$value\": {\n \"value\": 204,\n \"unit\": \"px\"\n },\n \"$type\": \"dimension\"\n },\n \"56\": {\n \"$value\": {\n \"value\": 220,\n \"unit\": \"px\"\n },\n \"$type\": \"dimension\"\n },\n \"60\": {\n \"$value\": {\n \"value\": 236,\n \"unit\": \"px\"\n },\n \"$type\": \"dimension\"\n },\n \"64\": {\n \"$value\": {\n \"value\": 252,\n \"unit\": \"px\"\n },\n \"$type\": \"dimension\"\n },\n \"72\": {\n \"$value\": {\n \"value\": 284,\n \"unit\": \"px\"\n },\n \"$type\": \"dimension\"\n },\n \"80\": {\n \"$value\": {\n \"value\": 316,\n \"unit\": \"px\"\n },\n \"$type\": \"dimension\"\n },\n \"96\": {\n \"$value\": {\n \"value\": 380,\n \"unit\": \"px\"\n },\n \"$type\": \"dimension\"\n },\n \"0_5\": {\n \"$value\": {\n \"value\": 2,\n \"unit\": \"px\"\n },\n \"$type\": \"dimension\"\n },\n \"1_5\": {\n \"$value\": {\n \"value\": 6,\n \"unit\": \"px\"\n },\n \"$type\": \"dimension\"\n },\n \"2_5\": {\n \"$value\": {\n \"value\": 9,\n \"unit\": \"px\"\n },\n \"$type\": \"dimension\"\n },\n \"3_5\": {\n \"$value\": {\n \"value\": 12,\n \"unit\": \"px\"\n },\n \"$type\": \"dimension\"\n }\n },\n \"container\": {\n \"p\": {\n \"$value\": {\n \"value\": 20,\n \"unit\": \"px\"\n },\n \"$type\": \"dimension\"\n },\n \"gap\": {\n \"$value\": {\n \"value\": 12,\n \"unit\": \"px\"\n },\n \"$type\": \"dimension\"\n }\n },\n \"layout\": {\n \"section-gap\": {\n \"$value\": {\n \"value\": 28,\n \"unit\": \"px\"\n },\n \"$type\": \"dimension\"\n },\n \"stack-gap\": {\n \"$value\": {\n \"value\": 6,\n \"unit\": \"px\"\n },\n \"$type\": \"dimension\"\n }\n }\n}\n","{\n \"spacing\": {\n \"0\": {\n \"$value\": {\n \"value\": 0,\n \"unit\": \"px\"\n },\n \"$type\": \"dimension\"\n },\n \"1\": {\n \"$value\": {\n \"value\": 4,\n \"unit\": \"px\"\n },\n \"$type\": \"dimension\"\n },\n \"2\": {\n \"$value\": {\n \"value\": 8,\n \"unit\": \"px\"\n },\n \"$type\": \"dimension\"\n },\n \"3\": {\n \"$value\": {\n \"value\": 12,\n \"unit\": \"px\"\n },\n \"$type\": \"dimension\"\n },\n \"4\": {\n \"$value\": {\n \"value\": 16,\n \"unit\": \"px\"\n },\n \"$type\": \"dimension\"\n },\n \"5\": {\n \"$value\": {\n \"value\": 20,\n \"unit\": \"px\"\n },\n \"$type\": \"dimension\"\n },\n \"6\": {\n \"$value\": {\n \"value\": 24,\n \"unit\": \"px\"\n },\n \"$type\": \"dimension\"\n },\n \"7\": {\n \"$value\": {\n \"value\": 28,\n \"unit\": \"px\"\n },\n \"$type\": \"dimension\"\n },\n \"8\": {\n \"$value\": {\n \"value\": 32,\n \"unit\": \"px\"\n },\n \"$type\": \"dimension\"\n },\n \"9\": {\n \"$value\": {\n \"value\": 36,\n \"unit\": \"px\"\n },\n \"$type\": \"dimension\"\n },\n \"10\": {\n \"$value\": {\n \"value\": 40,\n \"unit\": \"px\"\n },\n \"$type\": \"dimension\"\n },\n \"11\": {\n \"$value\": {\n \"value\": 44,\n \"unit\": \"px\"\n },\n \"$type\": \"dimension\"\n },\n \"12\": {\n \"$value\": {\n \"value\": 48,\n \"unit\": \"px\"\n },\n \"$type\": \"dimension\"\n },\n \"14\": {\n \"$value\": {\n \"value\": 56,\n \"unit\": \"px\"\n },\n \"$type\": \"dimension\"\n },\n \"16\": {\n \"$value\": {\n \"value\": 64,\n \"unit\": \"px\"\n },\n \"$type\": \"dimension\"\n },\n \"20\": {\n \"$value\": {\n \"value\": 80,\n \"unit\": \"px\"\n },\n \"$type\": \"dimension\"\n },\n \"24\": {\n \"$value\": {\n \"value\": 96,\n \"unit\": \"px\"\n },\n \"$type\": \"dimension\"\n },\n \"28\": {\n \"$value\": {\n \"value\": 112,\n \"unit\": \"px\"\n },\n \"$type\": \"dimension\"\n },\n \"32\": {\n \"$value\": {\n \"value\": 128,\n \"unit\": \"px\"\n },\n \"$type\": \"dimension\"\n },\n \"36\": {\n \"$value\": {\n \"value\": 144,\n \"unit\": \"px\"\n },\n \"$type\": \"dimension\"\n },\n \"40\": {\n \"$value\": {\n \"value\": 160,\n \"unit\": \"px\"\n },\n \"$type\": \"dimension\"\n },\n \"44\": {\n \"$value\": {\n \"value\": 176,\n \"unit\": \"px\"\n },\n \"$type\": \"dimension\"\n },\n \"48\": {\n \"$value\": {\n \"value\": 192,\n \"unit\": \"px\"\n },\n \"$type\": \"dimension\"\n },\n \"52\": {\n \"$value\": {\n \"value\": 208,\n \"unit\": \"px\"\n },\n \"$type\": \"dimension\"\n },\n \"56\": {\n \"$value\": {\n \"value\": 224,\n \"unit\": \"px\"\n },\n \"$type\": \"dimension\"\n },\n \"60\": {\n \"$value\": {\n \"value\": 240,\n \"unit\": \"px\"\n },\n \"$type\": \"dimension\"\n },\n \"64\": {\n \"$value\": {\n \"value\": 256,\n \"unit\": \"px\"\n },\n \"$type\": \"dimension\"\n },\n \"72\": {\n \"$value\": {\n \"value\": 288,\n \"unit\": \"px\"\n },\n \"$type\": \"dimension\"\n },\n \"80\": {\n \"$value\": {\n \"value\": 320,\n \"unit\": \"px\"\n },\n \"$type\": \"dimension\"\n },\n \"96\": {\n \"$value\": {\n \"value\": 384,\n \"unit\": \"px\"\n },\n \"$type\": \"dimension\"\n },\n \"0_5\": {\n \"$value\": {\n \"value\": 2,\n \"unit\": \"px\"\n },\n \"$type\": \"dimension\"\n },\n \"1_5\": {\n \"$value\": {\n \"value\": 6,\n \"unit\": \"px\"\n },\n \"$type\": \"dimension\"\n },\n \"2_5\": {\n \"$value\": {\n \"value\": 10,\n \"unit\": \"px\"\n },\n \"$type\": \"dimension\"\n },\n \"3_5\": {\n \"$value\": {\n \"value\": 14,\n \"unit\": \"px\"\n },\n \"$type\": \"dimension\"\n }\n },\n \"container\": {\n \"p\": {\n \"$value\": {\n \"value\": 24,\n \"unit\": \"px\"\n },\n \"$type\": \"dimension\"\n },\n \"gap\": {\n \"$value\": {\n \"value\": 16,\n \"unit\": \"px\"\n },\n \"$type\": \"dimension\"\n }\n },\n \"layout\": {\n \"section-gap\": {\n \"$value\": {\n \"value\": 32,\n \"unit\": \"px\"\n },\n \"$type\": \"dimension\"\n },\n \"stack-gap\": {\n \"$value\": {\n \"value\": 8,\n \"unit\": \"px\"\n },\n \"$type\": \"dimension\"\n }\n }\n}\n","{\n \"spacing\": {\n \"0\": {\n \"$value\": {\n \"value\": 0,\n \"unit\": \"px\"\n },\n \"$type\": \"dimension\"\n },\n \"1\": {\n \"$value\": {\n \"value\": 4,\n \"unit\": \"px\"\n },\n \"$type\": \"dimension\"\n },\n \"2\": {\n \"$value\": {\n \"value\": 8,\n \"unit\": \"px\"\n },\n \"$type\": \"dimension\"\n },\n \"3\": {\n \"$value\": {\n \"value\": 14,\n \"unit\": \"px\"\n },\n \"$type\": \"dimension\"\n },\n \"4\": {\n \"$value\": {\n \"value\": 18,\n \"unit\": \"px\"\n },\n \"$type\": \"dimension\"\n },\n \"5\": {\n \"$value\": {\n \"value\": 22,\n \"unit\": \"px\"\n },\n \"$type\": \"dimension\"\n },\n \"6\": {\n \"$value\": {\n \"value\": 28,\n \"unit\": \"px\"\n },\n \"$type\": \"dimension\"\n },\n \"7\": {\n \"$value\": {\n \"value\": 32,\n \"unit\": \"px\"\n },\n \"$type\": \"dimension\"\n },\n \"8\": {\n \"$value\": {\n \"value\": 36,\n \"unit\": \"px\"\n },\n \"$type\": \"dimension\"\n },\n \"9\": {\n \"$value\": {\n \"value\": 40,\n \"unit\": \"px\"\n },\n \"$type\": \"dimension\"\n },\n \"10\": {\n \"$value\": {\n \"value\": 44,\n \"unit\": \"px\"\n },\n \"$type\": \"dimension\"\n },\n \"11\": {\n \"$value\": {\n \"value\": 48,\n \"unit\": \"px\"\n },\n \"$type\": \"dimension\"\n },\n \"12\": {\n \"$value\": {\n \"value\": 52,\n \"unit\": \"px\"\n },\n \"$type\": \"dimension\"\n },\n \"14\": {\n \"$value\": {\n \"value\": 60,\n \"unit\": \"px\"\n },\n \"$type\": \"dimension\"\n },\n \"16\": {\n \"$value\": {\n \"value\": 68,\n \"unit\": \"px\"\n },\n \"$type\": \"dimension\"\n },\n \"20\": {\n \"$value\": {\n \"value\": 84,\n \"unit\": \"px\"\n },\n \"$type\": \"dimension\"\n },\n \"24\": {\n \"$value\": {\n \"value\": 100,\n \"unit\": \"px\"\n },\n \"$type\": \"dimension\"\n },\n \"28\": {\n \"$value\": {\n \"value\": 116,\n \"unit\": \"px\"\n },\n \"$type\": \"dimension\"\n },\n \"32\": {\n \"$value\": {\n \"value\": 132,\n \"unit\": \"px\"\n },\n \"$type\": \"dimension\"\n },\n \"36\": {\n \"$value\": {\n \"value\": 148,\n \"unit\": \"px\"\n },\n \"$type\": \"dimension\"\n },\n \"40\": {\n \"$value\": {\n \"value\": 164,\n \"unit\": \"px\"\n },\n \"$type\": \"dimension\"\n },\n \"44\": {\n \"$value\": {\n \"value\": 180,\n \"unit\": \"px\"\n },\n \"$type\": \"dimension\"\n },\n \"48\": {\n \"$value\": {\n \"value\": 196,\n \"unit\": \"px\"\n },\n \"$type\": \"dimension\"\n },\n \"52\": {\n \"$value\": {\n \"value\": 212,\n \"unit\": \"px\"\n },\n \"$type\": \"dimension\"\n },\n \"56\": {\n \"$value\": {\n \"value\": 228,\n \"unit\": \"px\"\n },\n \"$type\": \"dimension\"\n },\n \"60\": {\n \"$value\": {\n \"value\": 244,\n \"unit\": \"px\"\n },\n \"$type\": \"dimension\"\n },\n \"64\": {\n \"$value\": {\n \"value\": 260,\n \"unit\": \"px\"\n },\n \"$type\": \"dimension\"\n },\n \"72\": {\n \"$value\": {\n \"value\": 292,\n \"unit\": \"px\"\n },\n \"$type\": \"dimension\"\n },\n \"80\": {\n \"$value\": {\n \"value\": 324,\n \"unit\": \"px\"\n },\n \"$type\": \"dimension\"\n },\n \"96\": {\n \"$value\": {\n \"value\": 388,\n \"unit\": \"px\"\n },\n \"$type\": \"dimension\"\n },\n \"0_5\": {\n \"$value\": {\n \"value\": 2,\n \"unit\": \"px\"\n },\n \"$type\": \"dimension\"\n },\n \"1_5\": {\n \"$value\": {\n \"value\": 6,\n \"unit\": \"px\"\n },\n \"$type\": \"dimension\"\n },\n \"2_5\": {\n \"$value\": {\n \"value\": 11,\n \"unit\": \"px\"\n },\n \"$type\": \"dimension\"\n },\n \"3_5\": {\n \"$value\": {\n \"value\": 16,\n \"unit\": \"px\"\n },\n \"$type\": \"dimension\"\n }\n },\n \"container\": {\n \"p\": {\n \"$value\": {\n \"value\": 28,\n \"unit\": \"px\"\n },\n \"$type\": \"dimension\"\n },\n \"gap\": {\n \"$value\": {\n \"value\": 20,\n \"unit\": \"px\"\n },\n \"$type\": \"dimension\"\n }\n },\n \"layout\": {\n \"section-gap\": {\n \"$value\": {\n \"value\": 40,\n \"unit\": \"px\"\n },\n \"$type\": \"dimension\"\n },\n \"stack-gap\": {\n \"$value\": {\n \"value\": 10,\n \"unit\": \"px\"\n },\n \"$type\": \"dimension\"\n }\n }\n}\n","{\n \"spacing\": {\n \"0\": {\n \"$value\": {\n \"value\": 0,\n \"unit\": \"px\"\n },\n \"$type\": \"dimension\"\n },\n \"1\": {\n \"$value\": {\n \"value\": 4,\n \"unit\": \"px\"\n },\n \"$type\": \"dimension\"\n },\n \"2\": {\n \"$value\": {\n \"value\": 8,\n \"unit\": \"px\"\n },\n \"$type\": \"dimension\"\n },\n \"3\": {\n \"$value\": {\n \"value\": 12,\n \"unit\": \"px\"\n },\n \"$type\": \"dimension\"\n },\n \"4\": {\n \"$value\": {\n \"value\": 16,\n \"unit\": \"px\"\n },\n \"$type\": \"dimension\"\n },\n \"5\": {\n \"$value\": {\n \"value\": 20,\n \"unit\": \"px\"\n },\n \"$type\": \"dimension\"\n },\n \"6\": {\n \"$value\": {\n \"value\": 24,\n \"unit\": \"px\"\n },\n \"$type\": \"dimension\"\n },\n \"7\": {\n \"$value\": {\n \"value\": 28,\n \"unit\": \"px\"\n },\n \"$type\": \"dimension\"\n },\n \"8\": {\n \"$value\": {\n \"value\": 32,\n \"unit\": \"px\"\n },\n \"$type\": \"dimension\"\n },\n \"9\": {\n \"$value\": {\n \"value\": 36,\n \"unit\": \"px\"\n },\n \"$type\": \"dimension\"\n },\n \"10\": {\n \"$value\": {\n \"value\": 40,\n \"unit\": \"px\"\n },\n \"$type\": \"dimension\"\n },\n \"11\": {\n \"$value\": {\n \"value\": 44,\n \"unit\": \"px\"\n },\n \"$type\": \"dimension\"\n },\n \"12\": {\n \"$value\": {\n \"value\": 48,\n \"unit\": \"px\"\n },\n \"$type\": \"dimension\"\n },\n \"14\": {\n \"$value\": {\n \"value\": 56,\n \"unit\": \"px\"\n },\n \"$type\": \"dimension\"\n },\n \"16\": {\n \"$value\": {\n \"value\": 64,\n \"unit\": \"px\"\n },\n \"$type\": \"dimension\"\n },\n \"20\": {\n \"$value\": {\n \"value\": 80,\n \"unit\": \"px\"\n },\n \"$type\": \"dimension\"\n },\n \"24\": {\n \"$value\": {\n \"value\": 96,\n \"unit\": \"px\"\n },\n \"$type\": \"dimension\"\n },\n \"28\": {\n \"$value\": {\n \"value\": 112,\n \"unit\": \"px\"\n },\n \"$type\": \"dimension\"\n },\n \"32\": {\n \"$value\": {\n \"value\": 128,\n \"unit\": \"px\"\n },\n \"$type\": \"dimension\"\n },\n \"36\": {\n \"$value\": {\n \"value\": 144,\n \"unit\": \"px\"\n },\n \"$type\": \"dimension\"\n },\n \"40\": {\n \"$value\": {\n \"value\": 160,\n \"unit\": \"px\"\n },\n \"$type\": \"dimension\"\n },\n \"44\": {\n \"$value\": {\n \"value\": 176,\n \"unit\": \"px\"\n },\n \"$type\": \"dimension\"\n },\n \"48\": {\n \"$value\": {\n \"value\": 192,\n \"unit\": \"px\"\n },\n \"$type\": \"dimension\"\n },\n \"52\": {\n \"$value\": {\n \"value\": 208,\n \"unit\": \"px\"\n },\n \"$type\": \"dimension\"\n },\n \"56\": {\n \"$value\": {\n \"value\": 224,\n \"unit\": \"px\"\n },\n \"$type\": \"dimension\"\n },\n \"60\": {\n \"$value\": {\n \"value\": 240,\n \"unit\": \"px\"\n },\n \"$type\": \"dimension\"\n },\n \"64\": {\n \"$value\": {\n \"value\": 256,\n \"unit\": \"px\"\n },\n \"$type\": \"dimension\"\n },\n \"72\": {\n \"$value\": {\n \"value\": 288,\n \"unit\": \"px\"\n },\n \"$type\": \"dimension\"\n },\n \"80\": {\n \"$value\": {\n \"value\": 320,\n \"unit\": \"px\"\n },\n \"$type\": \"dimension\"\n },\n \"96\": {\n \"$value\": {\n \"value\": 384,\n \"unit\": \"px\"\n },\n \"$type\": \"dimension\"\n },\n \"0_5\": {\n \"$value\": {\n \"value\": 2,\n \"unit\": \"px\"\n },\n \"$type\": \"dimension\"\n },\n \"1_5\": {\n \"$value\": {\n \"value\": 6,\n \"unit\": \"px\"\n },\n \"$type\": \"dimension\"\n },\n \"2_5\": {\n \"$value\": {\n \"value\": 10,\n \"unit\": \"px\"\n },\n \"$type\": \"dimension\"\n },\n \"3_5\": {\n \"$value\": {\n \"value\": 14,\n \"unit\": \"px\"\n },\n \"$type\": \"dimension\"\n }\n },\n \"container\": {\n \"p\": {\n \"$value\": {\n \"value\": 40,\n \"unit\": \"px\"\n },\n \"$type\": \"dimension\"\n },\n \"gap\": {\n \"$value\": {\n \"value\": 24,\n \"unit\": \"px\"\n },\n \"$type\": \"dimension\"\n }\n },\n \"layout\": {\n \"section-gap\": {\n \"$value\": {\n \"value\": 56,\n \"unit\": \"px\"\n },\n \"$type\": \"dimension\"\n },\n \"stack-gap\": {\n \"$value\": {\n \"value\": 16,\n \"unit\": \"px\"\n },\n \"$type\": \"dimension\"\n }\n }\n}\n","{\n \"spacing\": {\n \"0\": {\n \"$value\": {\n \"value\": 0,\n \"unit\": \"px\"\n },\n \"$type\": \"dimension\"\n },\n \"1\": {\n \"$value\": {\n \"value\": 4,\n \"unit\": \"px\"\n },\n \"$type\": \"dimension\"\n },\n \"2\": {\n \"$value\": {\n \"value\": 8,\n \"unit\": \"px\"\n },\n \"$type\": \"dimension\"\n },\n \"3\": {\n \"$value\": {\n \"value\": 12,\n \"unit\": \"px\"\n },\n \"$type\": \"dimension\"\n },\n \"4\": {\n \"$value\": {\n \"value\": 16,\n \"unit\": \"px\"\n },\n \"$type\": \"dimension\"\n },\n \"5\": {\n \"$value\": {\n \"value\": 20,\n \"unit\": \"px\"\n },\n \"$type\": \"dimension\"\n },\n \"6\": {\n \"$value\": {\n \"value\": 24,\n \"unit\": \"px\"\n },\n \"$type\": \"dimension\"\n },\n \"7\": {\n \"$value\": {\n \"value\": 30,\n \"unit\": \"px\"\n },\n \"$type\": \"dimension\"\n },\n \"8\": {\n \"$value\": {\n \"value\": 32,\n \"unit\": \"px\"\n },\n \"$type\": \"dimension\"\n },\n \"9\": {\n \"$value\": {\n \"value\": 36,\n \"unit\": \"px\"\n },\n \"$type\": \"dimension\"\n },\n \"10\": {\n \"$value\": {\n \"value\": 42,\n \"unit\": \"px\"\n },\n \"$type\": \"dimension\"\n },\n \"11\": {\n \"$value\": {\n \"value\": 48,\n \"unit\": \"px\"\n },\n \"$type\": \"dimension\"\n },\n \"12\": {\n \"$value\": {\n \"value\": 48,\n \"unit\": \"px\"\n },\n \"$type\": \"dimension\"\n },\n \"14\": {\n \"$value\": {\n \"value\": 60,\n \"unit\": \"px\"\n },\n \"$type\": \"dimension\"\n },\n \"16\": {\n \"$value\": {\n \"value\": 64,\n \"unit\": \"px\"\n },\n \"$type\": \"dimension\"\n },\n \"20\": {\n \"$value\": {\n \"value\": 80,\n \"unit\": \"px\"\n },\n \"$type\": \"dimension\"\n },\n \"24\": {\n \"$value\": {\n \"value\": 96,\n \"unit\": \"px\"\n },\n \"$type\": \"dimension\"\n },\n \"28\": {\n \"$value\": {\n \"value\": 120,\n \"unit\": \"px\"\n },\n \"$type\": \"dimension\"\n },\n \"32\": {\n \"$value\": {\n \"value\": 128,\n \"unit\": \"px\"\n },\n \"$type\": \"dimension\"\n },\n \"36\": {\n \"$value\": {\n \"value\": 144,\n \"unit\": \"px\"\n },\n \"$type\": \"dimension\"\n },\n \"40\": {\n \"$value\": {\n \"value\": 160,\n \"unit\": \"px\"\n },\n \"$type\": \"dimension\"\n },\n \"44\": {\n \"$value\": {\n \"value\": 180,\n \"unit\": \"px\"\n },\n \"$type\": \"dimension\"\n },\n \"48\": {\n \"$value\": {\n \"value\": 192,\n \"unit\": \"px\"\n },\n \"$type\": \"dimension\"\n },\n \"52\": {\n \"$value\": {\n \"value\": 210,\n \"unit\": \"px\"\n },\n \"$type\": \"dimension\"\n },\n \"56\": {\n \"$value\": {\n \"value\": 224,\n \"unit\": \"px\"\n },\n \"$type\": \"dimension\"\n },\n \"60\": {\n \"$value\": {\n \"value\": 240,\n \"unit\": \"px\"\n },\n \"$type\": \"dimension\"\n },\n \"64\": {\n \"$value\": {\n \"value\": 256,\n \"unit\": \"px\"\n },\n \"$type\": \"dimension\"\n },\n \"72\": {\n \"$value\": {\n \"value\": 288,\n \"unit\": \"px\"\n },\n \"$type\": \"dimension\"\n },\n \"80\": {\n \"$value\": {\n \"value\": 320,\n \"unit\": \"px\"\n },\n \"$type\": \"dimension\"\n },\n \"96\": {\n \"$value\": {\n \"value\": 384,\n \"unit\": \"px\"\n },\n \"$type\": \"dimension\"\n },\n \"0_5\": {\n \"$value\": {\n \"value\": 2,\n \"unit\": \"px\"\n },\n \"$type\": \"dimension\"\n },\n \"1_5\": {\n \"$value\": {\n \"value\": 6,\n \"unit\": \"px\"\n },\n \"$type\": \"dimension\"\n },\n \"2_5\": {\n \"$value\": {\n \"value\": 10,\n \"unit\": \"px\"\n },\n \"$type\": \"dimension\"\n },\n \"3_5\": {\n \"$value\": {\n \"value\": 15,\n \"unit\": \"px\"\n },\n \"$type\": \"dimension\"\n }\n },\n \"container\": {\n \"p\": {\n \"$value\": {\n \"value\": 24,\n \"unit\": \"px\"\n },\n \"$type\": \"dimension\"\n },\n \"gap\": {\n \"$value\": {\n \"value\": 16,\n \"unit\": \"px\"\n },\n \"$type\": \"dimension\"\n }\n },\n \"layout\": {\n \"section-gap\": {\n \"$value\": {\n \"value\": 32,\n \"unit\": \"px\"\n },\n \"$type\": \"dimension\"\n },\n \"stack-gap\": {\n \"$value\": {\n \"value\": 8,\n \"unit\": \"px\"\n },\n \"$type\": \"dimension\"\n }\n }\n}\n","{\n \"z-index-overlay\": {\n \"$value\": 10,\n \"$type\": \"number\",\n \"$description\": \"Base overlay layer — backdrops and low-level stacking.\"\n },\n \"z-index-sticky\": {\n \"$value\": 30,\n \"$type\": \"number\",\n \"$description\": \"Sticky chrome (headers, toolbars) — above content, below dialogs.\"\n },\n \"z-index-modal\": {\n \"$value\": 50,\n \"$type\": \"number\",\n \"$description\": \"Modal dialogs and their overlay.\"\n },\n \"z-index-popover\": {\n \"$value\": 70,\n \"$type\": \"number\",\n \"$description\": \"Tooltips, dropdowns, selects, popovers — above modals so they stay usable when nested in a dialog.\"\n },\n \"z-index-toast\": {\n \"$value\": 100,\n \"$type\": \"number\",\n \"$description\": \"Toasts and notifications — above popovers.\"\n },\n \"z-index-max\": {\n \"$value\": 9999,\n \"$type\": \"number\",\n \"$description\": \"Reserved for host-application system UI (e.g. AI agent overlays).\"\n }\n}\n","{\n \"2xs\": {\n \"$type\": \"shadow\",\n \"$value\": {\n \"offsetX\": \"{2xs.layer-1.x}\",\n \"offsetY\": \"{2xs.layer-1.y}\",\n \"blur\": \"{2xs.layer-1.blur}\",\n \"spread\": \"{2xs.layer-1.spread}\",\n \"color\": \"{2xs.layer-1.color}\"\n }\n },\n \"xs\": {\n \"$type\": \"shadow\",\n \"$value\": {\n \"offsetX\": \"{xs.layer-1.x}\",\n \"offsetY\": \"{xs.layer-1.y}\",\n \"blur\": \"{xs.layer-1.blur}\",\n \"spread\": \"{xs.layer-1.spread}\",\n \"color\": \"{xs.layer-1.color}\"\n }\n },\n \"sm\": {\n \"$type\": \"shadow\",\n \"$value\": [\n {\n \"offsetX\": \"{sm.layer-2.x}\",\n \"offsetY\": \"{sm.layer-2.y}\",\n \"blur\": \"{sm.layer-2.blur}\",\n \"spread\": \"{sm.layer-2.spread}\",\n \"color\": \"{sm.layer-2.color}\"\n },\n {\n \"offsetX\": \"{sm.layer-1.x}\",\n \"offsetY\": \"{sm.layer-1.y}\",\n \"blur\": \"{sm.layer-1.blur}\",\n \"spread\": \"{sm.layer-1.spread}\",\n \"color\": \"{sm.layer-1.color}\"\n }\n ]\n },\n \"base\": {\n \"$type\": \"shadow\",\n \"$value\": [\n {\n \"offsetX\": \"{base.layer-2.x}\",\n \"offsetY\": \"{base.layer-2.y}\",\n \"blur\": \"{base.layer-2.blur}\",\n \"spread\": \"{base.layer-2.spread}\",\n \"color\": \"{base.layer-2.color}\"\n },\n {\n \"offsetX\": \"{base.layer-1.x}\",\n \"offsetY\": \"{base.layer-1.y}\",\n \"blur\": \"{base.layer-1.blur}\",\n \"spread\": \"{base.layer-1.spread}\",\n \"color\": \"{base.layer-1.color}\"\n }\n ]\n },\n \"md\": {\n \"$type\": \"shadow\",\n \"$value\": [\n {\n \"offsetX\": \"{md.layer-2.x}\",\n \"offsetY\": \"{md.layer-2.y}\",\n \"blur\": \"{md.layer-2.blur}\",\n \"spread\": \"{md.layer-2.spread}\",\n \"color\": \"{md.layer-2.color}\"\n },\n {\n \"offsetX\": \"{md.layer-1.x}\",\n \"offsetY\": \"{md.layer-1.y}\",\n \"blur\": \"{md.layer-1.blur}\",\n \"spread\": \"{md.layer-1.spread}\",\n \"color\": \"{md.layer-1.color}\"\n }\n ]\n },\n \"lg\": {\n \"$type\": \"shadow\",\n \"$value\": [\n {\n \"offsetX\": \"{lg.layer-2.x}\",\n \"offsetY\": \"{lg.layer-2.y}\",\n \"blur\": \"{lg.layer-2.blur}\",\n \"spread\": \"{lg.layer-2.spread}\",\n \"color\": \"{lg.layer-2.color}\"\n },\n {\n \"offsetX\": \"{lg.layer-1.x}\",\n \"offsetY\": \"{lg.layer-1.y}\",\n \"blur\": \"{lg.layer-1.blur}\",\n \"spread\": \"{lg.layer-1.spread}\",\n \"color\": \"{lg.layer-1.color}\"\n }\n ]\n },\n \"xl\": {\n \"$type\": \"shadow\",\n \"$value\": [\n {\n \"offsetX\": \"{xl.layer-2.x}\",\n \"offsetY\": \"{xl.layer-2.y}\",\n \"blur\": \"{xl.layer-2.blur}\",\n \"spread\": \"{xl.layer-2.spread}\",\n \"color\": \"{xl.layer-2.color}\"\n },\n {\n \"offsetX\": \"{xl.layer-1.x}\",\n \"offsetY\": \"{xl.layer-1.y}\",\n \"blur\": \"{xl.layer-1.blur}\",\n \"spread\": \"{xl.layer-1.spread}\",\n \"color\": \"{xl.layer-1.color}\"\n }\n ]\n },\n \"2xl\": {\n \"$type\": \"shadow\",\n \"$value\": {\n \"offsetX\": \"{2xl.layer-1.x}\",\n \"offsetY\": \"{2xl.layer-1.y}\",\n \"blur\": \"{2xl.layer-1.blur}\",\n \"spread\": \"{2xl.layer-1.spread}\",\n \"color\": \"{2xl.layer-1.color}\"\n }\n },\n \"inner\": {\n \"$type\": \"shadow\",\n \"$value\": {\n \"offsetX\": \"{inner.layer-1.x}\",\n \"offsetY\": \"{inner.layer-1.y}\",\n \"blur\": \"{inner.layer-1.blur}\",\n \"spread\": \"{inner.layer-1.spread}\",\n \"color\": \"{inner.layer-1.color}\"\n }\n }\n}\n","{\n \"heading\": {\n \"large\": {\n \"$type\": \"typography\",\n \"$value\": {\n \"fontFamily\": \"{family.font-heading}\",\n \"fontSize\": \"{size.3xl}\",\n \"fontWeight\": \"{weight.bold}\",\n \"lineHeight\": \"{line-height.3xl}\",\n \"letterSpacing\": \"{letterspacing.tighter}\"\n },\n \"$description\": \"Major section heading, dialog titles, card group headers\"\n },\n \"medium\": {\n \"$type\": \"typography\",\n \"$value\": {\n \"fontFamily\": \"{family.font-heading}\",\n \"fontSize\": \"{size.2xl}\",\n \"fontWeight\": \"{weight.bold}\",\n \"lineHeight\": \"{line-height.2xl}\",\n \"letterSpacing\": \"{letterspacing.tight}\"\n },\n \"$description\": \"Susbsection heading, card titles, modal headers\"\n },\n \"small\": {\n \"$type\": \"typography\",\n \"$value\": {\n \"fontFamily\": \"{family.font-heading}\",\n \"fontSize\": \"{size.xl}\",\n \"fontWeight\": \"{weight.bold}\",\n \"lineHeight\": \"{line-height.xl}\",\n \"letterSpacing\": \"{letterspacing.tight}\"\n },\n \"$description\": \"Card Titles, list section headers, minor heading\"\n },\n \"xsmall\": {\n \"$type\": \"typography\",\n \"$value\": {\n \"fontFamily\": \"{family.font-heading}\",\n \"fontSize\": \"{size.lg}\",\n \"fontWeight\": \"{weight.bold}\",\n \"lineHeight\": \"{line-height.lg}\",\n \"letterSpacing\": \"{letterspacing.tight}\"\n },\n \"$description\": \"Table Section headers, accordian titles, minor seciton lables\"\n },\n \"xxsmall\": {\n \"$type\": \"typography\",\n \"$value\": {\n \"fontFamily\": \"{family.font-heading}\",\n \"fontSize\": \"{size.base}\",\n \"fontWeight\": \"{weight.semibold}\",\n \"lineHeight\": \"{line-height.base}\",\n \"letterSpacing\": \"{letterspacing.tight}\"\n },\n \"$description\": \"Smallest heading tier — empty-state titles, compact card headers\"\n }\n },\n \"body\": {\n \"default\": {\n \"$type\": \"typography\",\n \"$value\": {\n \"fontFamily\": \"{family.font-sans}\",\n \"fontSize\": \"{size.sm}\",\n \"fontWeight\": \"{weight.normal}\",\n \"lineHeight\": \"{line-height.sm}\",\n \"letterSpacing\": \"{letterspacing.normal}\"\n },\n \"$description\": \"Default paragraph text, descriptions, card content, and main body copy\"\n },\n \"small\": {\n \"$type\": \"typography\",\n \"$value\": {\n \"fontFamily\": \"{family.font-sans}\",\n \"fontSize\": \"{size.xs}\",\n \"fontWeight\": \"{weight.normal}\",\n \"lineHeight\": \"{line-height.xs}\",\n \"letterSpacing\": \"{letterspacing.normal}\"\n },\n \"$description\": \"Supporting copy, captions, and secondary text under a heading\"\n }\n },\n \"shortcut\": {\n \"$type\": \"typography\",\n \"$value\": {\n \"fontFamily\": \"{family.font-sans}\",\n \"fontSize\": \"{size.xs}\",\n \"fontWeight\": \"{weight.normal}\",\n \"lineHeight\": \"{line-height.xs}\",\n \"letterSpacing\": \"{letterspacing.widest}\"\n },\n \"$description\": \"Keyboard shortcut hint text in command palettes, menus, and menubars\"\n },\n \"label\": {\n \"default\": {\n \"$type\": \"typography\",\n \"$value\": {\n \"fontFamily\": \"{family.font-sans}\",\n \"fontSize\": \"{size.sm}\",\n \"fontWeight\": \"{weight.medium}\",\n \"lineHeight\": \"{line-height.sm}\",\n \"letterSpacing\": \"{letterspacing.normal}\"\n },\n \"$description\": \"Form, field, and control labels at default density\"\n },\n \"small\": {\n \"$type\": \"typography\",\n \"$value\": {\n \"fontFamily\": \"{family.font-sans}\",\n \"fontSize\": \"{size.xs}\",\n \"fontWeight\": \"{weight.medium}\",\n \"lineHeight\": \"{line-height.xs}\",\n \"letterSpacing\": \"{letterspacing.normal}\"\n },\n \"$description\": \"Compact form and control labels in dense layouts\"\n },\n \"caps\": {\n \"$type\": \"typography\",\n \"$value\": {\n \"fontFamily\": \"{family.font-sans}\",\n \"fontSize\": \"{size.xxs}\",\n \"fontWeight\": \"{weight.semibold}\",\n \"lineHeight\": \"{line-height.xxs}\",\n \"letterSpacing\": \"{letterspacing.wide}\"\n },\n \"$description\": \"Compact eyebrow and section labels, tuned for all-caps; apply uppercase at the call site\"\n }\n },\n \"code\": {\n \"block\": {\n \"$type\": \"typography\",\n \"$value\": {\n \"fontFamily\": \"{family.font-mono}\",\n \"fontSize\": \"{size.sm}\",\n \"fontWeight\": \"{weight.normal}\",\n \"lineHeight\": \"{line-height.sm}\",\n \"letterSpacing\": {\n \"value\": 0,\n \"unit\": \"px\"\n }\n }\n },\n \"inline\": {\n \"$type\": \"typography\",\n \"$value\": {\n \"fontFamily\": \"{family.font-mono}\",\n \"fontSize\": \"{size.sm}\",\n \"fontWeight\": \"{weight.semibold}\",\n \"lineHeight\": \"auto\",\n \"letterSpacing\": {\n \"value\": 0,\n \"unit\": \"px\"\n }\n }\n }\n }\n}\n","import borderwidthFine from '../../tokens/primitives/borderwidth/borderwidth-fine.json';\nimport borderwidthNormal from '../../tokens/primitives/borderwidth/borderwidth-normal.json';\nimport borderwidthStrong from '../../tokens/primitives/borderwidth/borderwidth-strong.json';\nimport color from '../../tokens/primitives/color.json';\nimport motionSnappy from '../../tokens/primitives/motion/motion-snappy.json';\nimport radiusExtraRound from '../../tokens/primitives/radius/radius-extra-round.json';\nimport radiusRound from '../../tokens/primitives/radius/radius-round.json';\nimport radiusSmooth from '../../tokens/primitives/radius/radius-smooth.json';\nimport radiusSquare from '../../tokens/primitives/radius/radius-square.json';\nimport radiusSubtle from '../../tokens/primitives/radius/radius-subtle.json';\nimport shadowFlatDark from '../../tokens/primitives/shadow/shadow-flat-dark.json';\nimport shadowFlatLight from '../../tokens/primitives/shadow/shadow-flat-light.json';\nimport shadowQuietDark from '../../tokens/primitives/shadow/shadow-quiet-dark.json';\nimport shadowQuietLight from '../../tokens/primitives/shadow/shadow-quiet-light.json';\nimport shadowSoftDark from '../../tokens/primitives/shadow/shadow-soft-dark.json';\nimport shadowSoftLight from '../../tokens/primitives/shadow/shadow-soft-light.json';\nimport shadowStandardDark from '../../tokens/primitives/shadow/shadow-standard-dark.json';\nimport shadowStandardLight from '../../tokens/primitives/shadow/shadow-standard-light.json';\nimport shadowStrongDark from '../../tokens/primitives/shadow/shadow-strong-dark.json';\nimport shadowStrongLight from '../../tokens/primitives/shadow/shadow-strong-light.json';\nimport typographyDefault from '../../tokens/primitives/typography/typography-default.json';\nimport breakpoints from '../../tokens/semantic/breakpoints.json';\nimport spacingComfortable from '../../tokens/semantic/spacing-comfortable.json';\nimport spacingCompact from '../../tokens/semantic/spacing-compact.json';\nimport spacingDefault from '../../tokens/semantic/spacing-default.json';\nimport spacingRelaxed from '../../tokens/semantic/spacing-relaxed.json';\nimport spacingSpacious from '../../tokens/semantic/spacing-spacious.json';\nimport spacingTight from '../../tokens/semantic/spacing-tight.json';\nimport zIndex from '../../tokens/semantic/z-index.json';\nimport shadowStyles from '../../tokens/styles/shadows.json';\nimport typographyStyles from '../../tokens/styles/typography.json';\n\n/** A parsed DTCG token document. */\nexport type TokenDocument = { readonly [key: string]: unknown };\n\n/** Every authored token document, keyed by its path under `packages/core/tokens/`. */\nexport const TOKEN_FILES = {\n 'primitives/borderwidth/borderwidth-fine.json': borderwidthFine,\n 'primitives/borderwidth/borderwidth-normal.json': borderwidthNormal,\n 'primitives/borderwidth/borderwidth-strong.json': borderwidthStrong,\n 'primitives/color.json': color,\n 'primitives/motion/motion-snappy.json': motionSnappy,\n 'primitives/radius/radius-extra-round.json': radiusExtraRound,\n 'primitives/radius/radius-round.json': radiusRound,\n 'primitives/radius/radius-smooth.json': radiusSmooth,\n 'primitives/radius/radius-square.json': radiusSquare,\n 'primitives/radius/radius-subtle.json': radiusSubtle,\n 'primitives/shadow/shadow-flat-dark.json': shadowFlatDark,\n 'primitives/shadow/shadow-flat-light.json': shadowFlatLight,\n 'primitives/shadow/shadow-quiet-dark.json': shadowQuietDark,\n 'primitives/shadow/shadow-quiet-light.json': shadowQuietLight,\n 'primitives/shadow/shadow-soft-dark.json': shadowSoftDark,\n 'primitives/shadow/shadow-soft-light.json': shadowSoftLight,\n 'primitives/shadow/shadow-standard-dark.json': shadowStandardDark,\n 'primitives/shadow/shadow-standard-light.json': shadowStandardLight,\n 'primitives/shadow/shadow-strong-dark.json': shadowStrongDark,\n 'primitives/shadow/shadow-strong-light.json': shadowStrongLight,\n 'primitives/typography/typography-default.json': typographyDefault,\n 'semantic/breakpoints.json': breakpoints,\n 'semantic/spacing-comfortable.json': spacingComfortable,\n 'semantic/spacing-compact.json': spacingCompact,\n 'semantic/spacing-default.json': spacingDefault,\n 'semantic/spacing-relaxed.json': spacingRelaxed,\n 'semantic/spacing-spacious.json': spacingSpacious,\n 'semantic/spacing-tight.json': spacingTight,\n 'semantic/z-index.json': zIndex,\n 'styles/shadows.json': shadowStyles,\n 'styles/typography.json': typographyStyles,\n} as const satisfies Record<string, TokenDocument>;\n\nexport type TokenFile = keyof typeof TOKEN_FILES;\n","import {\n createNxdsThemeContract,\n DEFAULT_NXDS_APPEARANCE,\n type NxdsAppearanceState,\n} from '../lib/appearance-model';\nimport { deriveThemeMode } from '../lib/derive-theme';\nimport type { Mode } from '../lib/palette';\nimport { SEMANTIC_TOKEN_REGISTRY } from '../lib/token-registry';\nimport {\n formatShadowStyle,\n formatTokenValue,\n formatTypographyDeclarations,\n resolveValue,\n} from '../token-source/format';\nimport {\n SPACING_MODE_FILE_PATTERN,\n spacingRoleUtility,\n spacingTokenKind,\n} from '../token-source/spacing';\nimport {\n type ExtractedToken,\n extractTokens,\n pathToCssVarPrefixed,\n tokenReferences,\n} from '../token-source/tokens';\nimport {\n borderColorAliasName,\n borderWidthAliasUtilities,\n DEFAULT_TRANSITION,\n durationUtility,\n} from '../token-source/utilities';\n\nimport { RUNTIME_COLOR_DESCRIPTIONS } from './descriptions';\nimport { TOKEN_FILES, type TokenFile } from './token-files';\nimport type {\n CatalogueAlias,\n CatalogueControl,\n CatalogueDeclaration,\n CatalogueFamily,\n CatalogueReference,\n CatalogueToken,\n CatalogueTokenName,\n CatalogueVariant,\n} from './types';\n\ntype PrimitiveFamily = Extract<\n CatalogueFamily,\n 'borderwidth' | 'color' | 'motion' | 'radius' | 'shadow' | 'typography'\n>;\n\nconst PRIMITIVE_FAMILIES: readonly PrimitiveFamily[] = [\n 'borderwidth',\n 'color',\n 'motion',\n 'radius',\n 'shadow',\n 'typography',\n];\nconst RUNTIME_MODES: readonly Mode[] = ['light', 'dark'];\nconst Z_INDEX_FILE: TokenFile = 'semantic/z-index.json';\nconst BREAKPOINTS_FILE: TokenFile = 'semantic/breakpoints.json';\nconst TYPOGRAPHY_STYLES_FILE: TokenFile = 'styles/typography.json';\nconst SHADOW_STYLES_FILE: TokenFile = 'styles/shadows.json';\nconst SINGLE_SOURCE = { mode: null, preset: null } as const;\n\n/** The preset field that picks each moded family's values. */\nconst PRESET_CONTROLS: Partial<Record<CatalogueFamily, CatalogueControl>> = {\n spacing: { kind: 'preset', field: 'density' },\n radius: { kind: 'preset', field: 'corners' },\n borderwidth: { kind: 'preset', field: 'stroke' },\n shadow: { kind: 'preset', field: 'elevation' },\n};\n\n/** The preference `appearancePrefsToCss` writes each typography primitive from. */\nfunction typographyControl(path: readonly string[]): CatalogueControl | null {\n const [group, key] = path;\n if (group === 'size' || group === 'line-height') {\n return { kind: 'pref', field: 'uiFontSize' };\n }\n if (group !== 'family') return null;\n if (key === 'font-sans') return { kind: 'pref', field: 'uiFont' };\n if (key === 'font-mono') return { kind: 'pref', field: 'codeFont' };\n return null;\n}\n\nfunction leafControl({\n family,\n file,\n preset,\n leaf,\n}: AuthoredLeaf): CatalogueControl | null {\n if (family === 'typography' && file.startsWith('primitives/')) {\n return typographyControl(leaf.path);\n }\n if (preset === null) return null;\n return PRESET_CONTROLS[family] ?? null;\n}\n\n/** A `PrimitiveLookup` that also carries each target's canonical name. */\ntype ReferenceLookup = ReadonlyMap<\n string,\n { cssName: string; name: CatalogueTokenName }\n>;\n\n/** The theme mode and preset one token file holds values for. */\ninterface VariantAxes {\n mode: Mode | null;\n preset: string | null;\n}\n\n/** One authored leaf, in the file, theme mode, and preset it came from. */\ninterface AuthoredLeaf extends VariantAxes {\n family: CatalogueFamily;\n file: TokenFile;\n leaf: ExtractedToken;\n}\n\n/** What one leaf contributes: the token it belongs to and its variant's declarations. */\ninterface LeafEntry {\n name: CatalogueTokenName;\n aliases: readonly CatalogueAlias[];\n declarations: readonly CatalogueDeclaration[];\n}\n\nconst cssVariable = (name: string): CatalogueAlias => ({\n kind: 'css-variable',\n name,\n});\nconst utility = (name: string): CatalogueAlias => ({\n kind: 'utility',\n name: `nx:${name}`,\n});\n\nfunction tokenFiles(): TokenFile[] {\n return Object.keys(TOKEN_FILES) as TokenFile[];\n}\n\nfunction fileLeaves(\n family: CatalogueFamily,\n file: TokenFile,\n axes: VariantAxes\n): AuthoredLeaf[] {\n return extractTokens(TOKEN_FILES[file]).map((leaf) => ({\n family,\n file,\n ...axes,\n leaf,\n }));\n}\n\nfunction primitiveFiles(family: PrimitiveFamily): TokenFile[] {\n return tokenFiles().filter(\n (file) =>\n file === `primitives/${family}.json` ||\n file.startsWith(`primitives/${family}/${family}-`)\n );\n}\n\n/**\n * A mode file's suffix split into its preset and theme mode:\n * `shadow-quiet-dark.json` is preset `quiet` in `dark`, and\n * `radius-round.json` is preset `round` in both modes.\n */\nfunction modeFileAxes(file: TokenFile, family: PrimitiveFamily): VariantAxes {\n const suffix = file.slice(\n `primitives/${family}/${family}-`.length,\n -'.json'.length\n );\n const mode = RUNTIME_MODES.find((candidate) =>\n suffix.endsWith(`-${candidate}`)\n );\n if (mode === undefined) return { mode: null, preset: suffix };\n return { mode, preset: suffix.slice(0, -`-${mode}`.length) };\n}\n\nfunction primitiveLeaves(family: PrimitiveFamily): AuthoredLeaf[] {\n const files = primitiveFiles(family);\n return files.flatMap((file) =>\n fileLeaves(\n family,\n file,\n files.length > 1 ? modeFileAxes(file, family) : SINGLE_SOURCE\n )\n );\n}\n\nfunction spacingLeaves(): AuthoredLeaf[] {\n const directory = 'semantic/';\n return tokenFiles().flatMap((file) => {\n if (!file.startsWith(directory)) return [];\n const preset = file\n .slice(directory.length)\n .match(SPACING_MODE_FILE_PATTERN)?.[1];\n if (preset === undefined) return [];\n return fileLeaves('spacing', file, { mode: null, preset });\n });\n}\n\nfunction primitiveName(\n family: CatalogueFamily,\n path: readonly string[]\n): CatalogueTokenName {\n return `--nx-${pathToCssVarPrefixed(path, family)}`;\n}\n\n/**\n * References resolve the way the generator's primitive map does: bare or\n * family-qualified. A bare path two families share would resolve to whichever\n * the generator loaded last, so it throws instead.\n */\nfunction primitiveLookup(leaves: readonly AuthoredLeaf[]): ReferenceLookup {\n const lookup = new Map<\n string,\n { cssName: string; name: CatalogueTokenName }\n >();\n for (const { family, leaf } of leaves) {\n const name = primitiveName(family, leaf.path);\n const entry = { cssName: name.slice('--'.length), name };\n const reference = leaf.path.join('.');\n for (const key of [reference, `${family}.${reference}`]) {\n const existing = lookup.get(key);\n if (existing && existing.name !== name) {\n throw new Error(\n `catalogue: reference {${key}} matches both ${existing.name} and ${name}`\n );\n }\n lookup.set(key, entry);\n }\n }\n return lookup;\n}\n\nfunction referenceTargets(\n leaf: ExtractedToken,\n lookup: ReferenceLookup\n): CatalogueReference[] {\n return tokenReferences(leaf.value).map(({ field, reference }) => {\n const target = lookup.get(reference);\n if (!target) {\n throw new Error(\n `catalogue: ${leaf.path.join('.')} references unknown token {${reference}}`\n );\n }\n return { field, reference, target: target.name };\n });\n}\n\n/** A multi-level path is grouped by its first key; a flat file by its family. */\nfunction leafGroup(family: CatalogueFamily, path: readonly string[]): string {\n return path.length > 1 ? (path[0] ?? family) : family;\n}\n\n/**\n * Build one token per canonical name, with one variant per leaf that maps to\n * it. Token-level fields come from the first leaf.\n */\nfunction authoredTokens(\n leaves: readonly AuthoredLeaf[],\n lookup: ReferenceLookup,\n entryFor: (leaf: AuthoredLeaf) => LeafEntry\n): CatalogueToken[] {\n const tokens = new Map<\n CatalogueTokenName,\n CatalogueToken & { variants: CatalogueVariant[] }\n >();\n for (const authored of leaves) {\n const { family, file, mode, preset, leaf } = authored;\n const { name, aliases, declarations } = entryFor(authored);\n const token = tokens.get(name) ?? {\n name,\n family,\n group: leafGroup(family, leaf.path),\n type: leaf.type,\n description: leaf.description ?? null,\n aliases,\n control: leafControl(authored),\n variants: [],\n };\n token.variants.push({\n mode,\n preset,\n source: { file, path: leaf.path },\n appearance: null,\n authoredValue: structuredClone(leaf.value),\n declarations,\n references: referenceTargets(leaf, lookup),\n });\n tokens.set(name, token);\n }\n return [...tokens.values()];\n}\n\n/** The theme variables and utilities the generator emits for a primitive. */\nfunction primitiveAliases(\n family: CatalogueFamily,\n path: readonly string[]\n): CatalogueAlias[] {\n const key = path.join('-');\n if (family === 'radius') return [cssVariable(`--radius-${key}`)];\n if (family === 'borderwidth') {\n return [\n cssVariable(`--border-width-${key}`),\n cssVariable(`--outline-width-${key}`),\n ...borderWidthAliasUtilities(key).map(({ name }) => utility(name)),\n ];\n }\n if (family !== 'motion') return [];\n const [group, motionKey = ''] = path;\n if (group === 'duration') {\n const aliases = [utility(durationUtility(motionKey).name)];\n if (motionKey === DEFAULT_TRANSITION.duration) {\n aliases.push(cssVariable('--default-transition-duration'));\n }\n return aliases;\n }\n if (group === 'ease') {\n const aliases = [cssVariable(`--ease-${motionKey}`)];\n if (motionKey === DEFAULT_TRANSITION.ease) {\n aliases.push(cssVariable('--default-transition-timing-function'));\n }\n return aliases;\n }\n return [];\n}\n\nfunction primitiveEntry(lookup: ReferenceLookup) {\n return ({ family, leaf }: AuthoredLeaf): LeafEntry => {\n const name = primitiveName(family, leaf.path);\n const reference = leaf.path.join('.');\n return {\n name,\n aliases: [\n ...primitiveAliases(family, leaf.path),\n { kind: 'reference', name: reference },\n { kind: 'reference', name: `${family}.${reference}` },\n ],\n declarations: [\n {\n property: name,\n value: resolveValue(leaf.value, lookup, leaf.type, leaf.path),\n },\n ],\n };\n };\n}\n\nfunction spacingEntry({ leaf }: AuthoredLeaf): LeafEntry {\n const key = leaf.path.join('-');\n const name: CatalogueTokenName = `--nx-${key}`;\n const alias =\n spacingTokenKind(leaf.path) === 'role'\n ? utility(spacingRoleUtility(leaf.path).name)\n : cssVariable(`--${key}`);\n return {\n name,\n aliases: [alias],\n declarations: [\n {\n property: name,\n value: formatTokenValue(leaf.value, leaf.type, leaf.path),\n },\n ],\n };\n}\n\n/** A z-index layer, declared as its `--nx-*` name with a `@theme` alias. */\nfunction zIndexEntry({ leaf }: AuthoredLeaf): LeafEntry {\n const key = leaf.path.join('-');\n const name: CatalogueTokenName = `--nx-${key}`;\n return {\n name,\n aliases: [cssVariable(`--${key}`)],\n declarations: [\n {\n property: name,\n value: formatTokenValue(leaf.value, leaf.type, leaf.path),\n },\n ],\n };\n}\n\n/** A breakpoint, declared only as its `@theme` property. */\nfunction breakpointEntry({ leaf }: AuthoredLeaf): LeafEntry {\n const key = leaf.path.join('-');\n const property = `--${key}`;\n return {\n name: `--nx-${key}`,\n aliases: [cssVariable(property)],\n declarations: [\n { property, value: formatTokenValue(leaf.value, leaf.type, leaf.path) },\n ],\n };\n}\n\nfunction typographyStyleEntry(lookup: ReferenceLookup) {\n return ({ leaf }: AuthoredLeaf): LeafEntry => {\n const key = pathToCssVarPrefixed(leaf.path, 'typography');\n return {\n name: `--nx-${key}`,\n aliases: [utility(key)],\n declarations: formatTypographyDeclarations(leaf.path, leaf.value, lookup),\n };\n };\n}\n\nfunction shadowStyleEntry(lookup: ReferenceLookup) {\n return ({ leaf }: AuthoredLeaf): LeafEntry => {\n const key = pathToCssVarPrefixed(leaf.path, 'shadow');\n const property = `--${key}`;\n return {\n name: `--nx-${key}`,\n aliases: [cssVariable(property)],\n declarations: [\n {\n property,\n value: formatShadowStyle(leaf.path, leaf.value, lookup),\n },\n ],\n };\n };\n}\n\nfunction styleLeaves(family: CatalogueFamily, file: TokenFile): AuthoredLeaf[] {\n return fileLeaves(family, file, SINGLE_SOURCE).filter(\n ({ leaf }) => leaf.type === family\n );\n}\n\nfunction runtimeAppearance(mode: Mode): NxdsAppearanceState {\n return {\n ...DEFAULT_NXDS_APPEARANCE,\n prefs: { ...DEFAULT_NXDS_APPEARANCE.prefs },\n mode,\n };\n}\n\nfunction runtimeColorAliases(name: string): CatalogueAlias[] {\n const aliases = [cssVariable(`--color-${name}`)];\n const borderName = borderColorAliasName(name);\n if (borderName !== null) {\n aliases.push(utility(`border-color-${borderName}`));\n }\n return aliases;\n}\n\nfunction runtimeColorTokens(): CatalogueToken[] {\n const themes = RUNTIME_MODES.map((mode) => {\n const appearance = runtimeAppearance(mode);\n return {\n mode,\n appearance,\n values: deriveThemeMode(createNxdsThemeContract(appearance), mode),\n };\n });\n\n return SEMANTIC_TOKEN_REGISTRY.map(({ name, category }) => {\n const property: CatalogueTokenName = `--nx-color-${name}`;\n return {\n name: property,\n family: 'color',\n group: category,\n type: 'color',\n description: RUNTIME_COLOR_DESCRIPTIONS[name] ?? null,\n aliases: runtimeColorAliases(name),\n control: null,\n variants: themes.map(({ mode, appearance, values }) => {\n const value = values[property];\n if (value === undefined) {\n throw new Error(`catalogue: deriveTheme emitted no ${property}`);\n }\n return {\n mode,\n preset: null,\n source: null,\n appearance,\n authoredValue: null,\n declarations: [{ property, value }],\n references: [],\n };\n }),\n };\n });\n}\n\n/**\n * Every nxds token, identified by its `--nx-*` name: primitives, runtime\n * colours, spacing, z-index, breakpoints, and typography and shadow styles.\n * Runtime colours are computed from `DEFAULT_NXDS_APPEARANCE` in explicit\n * light and dark modes; each variant records the appearance it used.\n */\nexport function createTokenCatalogue(): readonly CatalogueToken[] {\n const primitives = PRIMITIVE_FAMILIES.flatMap(primitiveLeaves);\n const lookup = primitiveLookup(primitives);\n return [\n ...authoredTokens(primitives, lookup, primitiveEntry(lookup)),\n ...runtimeColorTokens(),\n ...authoredTokens(spacingLeaves(), lookup, spacingEntry),\n ...authoredTokens(\n fileLeaves('z-index', Z_INDEX_FILE, SINGLE_SOURCE),\n lookup,\n zIndexEntry\n ),\n ...authoredTokens(\n fileLeaves('breakpoint', BREAKPOINTS_FILE, SINGLE_SOURCE),\n lookup,\n breakpointEntry\n ),\n ...authoredTokens(\n styleLeaves('typography', TYPOGRAPHY_STYLES_FILE),\n lookup,\n typographyStyleEntry(lookup)\n ),\n ...authoredTokens(\n styleLeaves('shadow', SHADOW_STYLES_FILE),\n lookup,\n shadowStyleEntry(lookup)\n ),\n ];\n}\n"],"mappings":"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","names":["APCAcontrast","sRGBtoY","clampChroma","oklch","parse","clampChroma","oklch","parse","clampChroma","converter","oklch","parse","toRgb","converter","round","parse","oklch","clampChroma","EMIT_GAMUT","CUSP_FRACTION","parse","oklch","clampChroma","EMIT_GAMUT","CUSP_FRACTION","sRGBtoY","APCAcontrast","clampChroma","clampChroma","token","token","spacing","clampChroma","ink","token","token"]}
1
+ {"version":3,"sources":["../../tokens/primitives/typography/typography-default.json","../../src/lib/contrast.ts","../../src/lib/apca.ts","../../src/lib/semantic-palette-references.ts","../../src/lib/apca-pairs.ts","../../src/lib/oklch-format.ts","../../src/lib/palette.ts","../../src/lib/perceptual-ramp.ts","../../src/token-source/perceptual-grid.ts","../../src/token-source/perceptual-grid.json","../../src/token-source/perceptual-grid-hue.json","../../src/lib/appearance-model.ts","../../src/lib/derive-theme.ts","../../tokens/primitives/color.json","../../src/lib/primitive-palette.ts","../../src/lib/surface-ladder.ts","../../src/lib/token-registry.ts","../../src/token-source/tokens.ts","../../src/token-source/format.ts","../../src/token-source/spacing.ts","../../src/token-source/utilities.ts","../../src/catalogue/descriptions.ts","../../tokens/primitives/borderwidth/borderwidth-fine.json","../../tokens/primitives/borderwidth/borderwidth-normal.json","../../tokens/primitives/borderwidth/borderwidth-strong.json","../../tokens/primitives/motion/motion-snappy.json","../../tokens/primitives/radius/radius-extra-round.json","../../tokens/primitives/radius/radius-round.json","../../tokens/primitives/radius/radius-smooth.json","../../tokens/primitives/radius/radius-square.json","../../tokens/primitives/radius/radius-subtle.json","../../tokens/primitives/shadow/shadow-flat-dark.json","../../tokens/primitives/shadow/shadow-flat-light.json","../../tokens/primitives/shadow/shadow-quiet-dark.json","../../tokens/primitives/shadow/shadow-quiet-light.json","../../tokens/primitives/shadow/shadow-soft-dark.json","../../tokens/primitives/shadow/shadow-soft-light.json","../../tokens/primitives/shadow/shadow-standard-dark.json","../../tokens/primitives/shadow/shadow-standard-light.json","../../tokens/primitives/shadow/shadow-strong-dark.json","../../tokens/primitives/shadow/shadow-strong-light.json","../../tokens/semantic/breakpoints.json","../../tokens/semantic/spacing-comfortable.json","../../tokens/semantic/spacing-compact.json","../../tokens/semantic/spacing-default.json","../../tokens/semantic/spacing-relaxed.json","../../tokens/semantic/spacing-spacious.json","../../tokens/semantic/spacing-tight.json","../../tokens/semantic/z-index.json","../../tokens/styles/shadows.json","../../tokens/styles/typography.json","../../src/catalogue/token-files.ts","../../src/catalogue/catalogue.ts"],"sourcesContent":["{\n \"family\": {\n \"font-sans\": {\n \"$value\": \"ui-sans-serif, system-ui, -apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, 'Helvetica Neue', Arial, sans-serif\",\n \"$type\": \"fontFamily\",\n \"$extensions\": {\n \"nx-font-source\": {\n \"type\": \"system\"\n }\n }\n },\n \"font-heading\": {\n \"$value\": \"ui-sans-serif, system-ui, -apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, 'Helvetica Neue', Arial, sans-serif\",\n \"$type\": \"fontFamily\",\n \"$extensions\": {\n \"nx-font-source\": {\n \"type\": \"system\"\n }\n }\n },\n \"font-serif\": {\n \"$value\": \"Georgia\",\n \"$type\": \"fontFamily\",\n \"$extensions\": {\n \"nx-font-source\": {\n \"type\": \"system\"\n }\n }\n },\n \"font-mono\": {\n \"$value\": \"ui-monospace, SFMono-Regular, 'SF Mono', Menlo, Consolas, 'Liberation Mono', monospace\",\n \"$type\": \"fontFamily\",\n \"$extensions\": {\n \"nx-font-source\": {\n \"type\": \"system\"\n }\n }\n }\n },\n \"size\": {\n \"xxs\": {\n \"$value\": {\n \"value\": 11,\n \"unit\": \"px\"\n },\n \"$type\": \"dimension\"\n },\n \"xs\": {\n \"$value\": {\n \"value\": 12,\n \"unit\": \"px\"\n },\n \"$type\": \"dimension\"\n },\n \"sm\": {\n \"$value\": {\n \"value\": 14,\n \"unit\": \"px\"\n },\n \"$type\": \"dimension\"\n },\n \"base\": {\n \"$value\": {\n \"value\": 16,\n \"unit\": \"px\"\n },\n \"$type\": \"dimension\"\n },\n \"lg\": {\n \"$value\": {\n \"value\": 18,\n \"unit\": \"px\"\n },\n \"$type\": \"dimension\"\n },\n \"xl\": {\n \"$value\": {\n \"value\": 20,\n \"unit\": \"px\"\n },\n \"$type\": \"dimension\"\n },\n \"2xl\": {\n \"$value\": {\n \"value\": 24,\n \"unit\": \"px\"\n },\n \"$type\": \"dimension\"\n },\n \"3xl\": {\n \"$value\": {\n \"value\": 30,\n \"unit\": \"px\"\n },\n \"$type\": \"dimension\"\n },\n \"4xl\": {\n \"$value\": {\n \"value\": 36,\n \"unit\": \"px\"\n },\n \"$type\": \"dimension\"\n },\n \"5xl\": {\n \"$value\": {\n \"value\": 48,\n \"unit\": \"px\"\n },\n \"$type\": \"dimension\"\n },\n \"6xl\": {\n \"$value\": {\n \"value\": 60,\n \"unit\": \"px\"\n },\n \"$type\": \"dimension\"\n },\n \"7xl\": {\n \"$value\": {\n \"value\": 72,\n \"unit\": \"px\"\n },\n \"$type\": \"dimension\"\n },\n \"8xl\": {\n \"$value\": {\n \"value\": 96,\n \"unit\": \"px\"\n },\n \"$type\": \"dimension\"\n },\n \"9xl\": {\n \"$value\": {\n \"value\": 128,\n \"unit\": \"px\"\n },\n \"$type\": \"dimension\"\n }\n },\n \"weight\": {\n \"thin\": {\n \"$value\": 100,\n \"$type\": \"fontWeight\"\n },\n \"extralight\": {\n \"$value\": 200,\n \"$type\": \"fontWeight\"\n },\n \"light\": {\n \"$value\": 300,\n \"$type\": \"fontWeight\"\n },\n \"normal\": {\n \"$value\": 400,\n \"$type\": \"fontWeight\"\n },\n \"medium\": {\n \"$value\": 500,\n \"$type\": \"fontWeight\"\n },\n \"semibold\": {\n \"$value\": 600,\n \"$type\": \"fontWeight\"\n },\n \"bold\": {\n \"$value\": 700,\n \"$type\": \"fontWeight\"\n },\n \"extrabold\": {\n \"$value\": 800,\n \"$type\": \"fontWeight\"\n },\n \"black\": {\n \"$value\": 900,\n \"$type\": \"fontWeight\"\n }\n },\n \"line-height\": {\n \"xxs\": {\n \"$value\": {\n \"value\": 12,\n \"unit\": \"px\"\n },\n \"$type\": \"dimension\"\n },\n \"xs\": {\n \"$value\": {\n \"value\": 16,\n \"unit\": \"px\"\n },\n \"$type\": \"dimension\"\n },\n \"sm\": {\n \"$value\": {\n \"value\": 20,\n \"unit\": \"px\"\n },\n \"$type\": \"dimension\"\n },\n \"base\": {\n \"$value\": {\n \"value\": 24,\n \"unit\": \"px\"\n },\n \"$type\": \"dimension\"\n },\n \"lg\": {\n \"$value\": {\n \"value\": 28,\n \"unit\": \"px\"\n },\n \"$type\": \"dimension\"\n },\n \"xl\": {\n \"$value\": {\n \"value\": 28,\n \"unit\": \"px\"\n },\n \"$type\": \"dimension\"\n },\n \"2xl\": {\n \"$value\": {\n \"value\": 32,\n \"unit\": \"px\"\n },\n \"$type\": \"dimension\"\n },\n \"3xl\": {\n \"$value\": {\n \"value\": 36,\n \"unit\": \"px\"\n },\n \"$type\": \"dimension\"\n },\n \"4xl\": {\n \"$value\": {\n \"value\": 48,\n \"unit\": \"px\"\n },\n \"$type\": \"dimension\"\n },\n \"5xl\": {\n \"$value\": {\n \"value\": 48,\n \"unit\": \"px\"\n },\n \"$type\": \"dimension\"\n },\n \"6xl\": {\n \"$value\": {\n \"value\": 60,\n \"unit\": \"px\"\n },\n \"$type\": \"dimension\"\n },\n \"7xl\": {\n \"$value\": {\n \"value\": 72,\n \"unit\": \"px\"\n },\n \"$type\": \"dimension\"\n },\n \"8xl\": {\n \"$value\": {\n \"value\": 96,\n \"unit\": \"px\"\n },\n \"$type\": \"dimension\"\n },\n \"9xl\": {\n \"$value\": {\n \"value\": 128,\n \"unit\": \"px\"\n },\n \"$type\": \"dimension\"\n }\n },\n \"letterspacing\": {\n \"tighter\": {\n \"$value\": {\n \"value\": -0.800000011920929,\n \"unit\": \"px\"\n },\n \"$type\": \"dimension\"\n },\n \"tight\": {\n \"$value\": {\n \"value\": -0.4000000059604645,\n \"unit\": \"px\"\n },\n \"$type\": \"dimension\"\n },\n \"normal\": {\n \"$value\": {\n \"value\": 0,\n \"unit\": \"px\"\n },\n \"$type\": \"dimension\"\n },\n \"wide\": {\n \"$value\": {\n \"value\": 0.4000000059604645,\n \"unit\": \"px\"\n },\n \"$type\": \"dimension\"\n },\n \"wider\": {\n \"$value\": {\n \"value\": 0.800000011920929,\n \"unit\": \"px\"\n },\n \"$type\": \"dimension\"\n },\n \"widest\": {\n \"$value\": {\n \"value\": 1.600000023841858,\n \"unit\": \"px\"\n },\n \"$type\": \"dimension\"\n }\n }\n}\n","import { APCAcontrast, sRGBtoY } from 'apca-w3';\nimport { clampChroma } from 'culori';\n\nimport { resolveToSrgbInts } from './apca';\nimport { APCA_PAIRS, type ApcaPair, type ApcaSolveKind } from './apca-pairs';\nimport type { TokenMap } from './derive-theme';\nimport { formatOklch } from './oklch-format';\nimport { type Mode, type Tier, TIER_THRESHOLDS } from './palette';\nimport { seedOklch } from './perceptual-ramp';\n\n/** Clamp to an integer 0–100; anything non-finite falls back. */\nexport function normalizeContrast(value: unknown, fallback = 50): number {\n return typeof value === 'number' && Number.isFinite(value)\n ? Math.round(Math.max(0, Math.min(100, value)))\n : fallback;\n}\n\n/** The Lc a pair aims for: its tier floor plus up to 15 more as contrast rises. */\nexport function contrastTarget(tier: Tier, contrast: number): number {\n return TIER_THRESHOLDS[tier] + (15 * contrast) / 100;\n}\n\nconst BISECT_STEPS = 12;\n\n/** Narrow a failing and a passing bound; returns the passing value closest to `fail`. */\nexport function bisect(\n fail: number,\n pass: number,\n passes: (value: number) => boolean\n): number {\n for (let i = 0; i < BISECT_STEPS; i++) {\n const middle = (fail + pass) / 2;\n if (passes(middle)) pass = middle;\n else fail = middle;\n }\n return pass;\n}\n\nconst token = (map: TokenMap, name: string): string => {\n const value = map[`--nx-color-${name}`];\n if (value === undefined) throw new Error(`contrast: missing ${name}`);\n return value;\n};\n\nexport function pairBackground(\n map: TokenMap,\n pair: ApcaPair\n): [number, number, number] {\n const backdrop = pair.backdrop\n ? resolveToSrgbInts(\n pair.backdrop.startsWith('#')\n ? pair.backdrop\n : token(map, pair.backdrop)\n )\n : undefined;\n return resolveToSrgbInts(token(map, pair.bg), backdrop);\n}\n\nexport function contrastForPair(map: TokenMap, pair: ApcaPair): number {\n const background = pairBackground(map, pair);\n return Math.abs(\n APCAcontrast(\n sRGBtoY(resolveToSrgbInts(token(map, pair.fg), background)),\n sRGBtoY(background)\n ) as number\n );\n}\n\nconst luminance = (color: string) => sRGBtoY(resolveToSrgbInts(color));\nconst score = (foregroundY: number, backgroundY: number) =>\n Math.abs(APCAcontrast(foregroundY, backgroundY) as number);\n\ninterface Constraint {\n backgroundY: number;\n /** Requested Lc, capped at what the black/white endpoint can reach. */\n target: number;\n}\n\n/** Constraints for one foreground, or undefined when even the endpoint misses a floor. */\nfunction constraintsFor(\n map: TokenMap,\n pairs: readonly ApcaPair[],\n contrast: number,\n endpointY: number\n): Constraint[] | undefined {\n const constraints: Constraint[] = [];\n for (const pair of pairs) {\n const backgroundY = sRGBtoY(pairBackground(map, pair));\n const reachable = score(endpointY, backgroundY);\n if (reachable < TIER_THRESHOLDS[pair.tier]) return undefined;\n const target = contrastTarget(pair.tier, contrast) + (pair.offset ?? 0);\n constraints.push({ backgroundY, target: Math.min(target, reachable) });\n }\n return constraints;\n}\n\n/** Light text keeps its designed quiet seed when that already passes; dark text is always re-solved. */\nconst keepsTextSeed = (mode: Mode, kind: ApcaSolveKind) =>\n mode === 'light' && kind === 'text';\n\nfunction solveForeground(\n seed: string,\n constraints: readonly Constraint[],\n endpoint: 0 | 1,\n keepSeed: boolean\n): string {\n const passes = (color: string) => {\n const y = luminance(color);\n return constraints.every((c) => score(y, c.backgroundY) >= c.target);\n };\n if (keepSeed && passes(seed)) return seed;\n const parsed = seedOklch(seed);\n const at = (l: number) =>\n formatOklch(clampChroma({ ...parsed, l, alpha: 1 }, 'oklch', 'p3'));\n return at(\n bisect(keepSeed ? parsed.l : 1 - endpoint, endpoint, (l) => passes(at(l)))\n );\n}\n\ninterface SolveGroup {\n kind: ApcaSolveKind;\n pairs: ApcaPair[];\n}\n\n/** Pairs grouped by the color they resolve to (`solveAs`, else their own foreground). */\nconst SOLVE_GROUPS = new Map<string, SolveGroup>();\nfor (const pair of APCA_PAIRS) {\n const key = pair.solveAs ?? pair.fg;\n const group = SOLVE_GROUPS.get(key);\n if (!group) {\n SOLVE_GROUPS.set(key, { kind: pair.kind, pairs: [pair] });\n continue;\n }\n if (group.kind !== pair.kind)\n throw new Error(\n `contrast: ${pair.fg} is '${pair.kind}' but joins '${group.kind}' group ${key}`\n );\n group.pairs.push(pair);\n}\n\n/** Pick the black/white label for a family and move any fill it can't read on to the tier floor. */\nfunction constrainFamilyFills(\n map: TokenMap,\n name: string,\n pairs: readonly ApcaPair[]\n) {\n const basePair = pairs[0];\n if (!basePair) throw new Error(`contrast: missing pairs for ${name}`);\n const baseY = luminance(token(map, basePair.bg));\n const endpoint: 0 | 1 = score(1, baseY) >= score(0, baseY) ? 1 : 0;\n map[`--nx-color-${name}`] = `oklch(${endpoint} 0 0)`;\n for (const pair of pairs) {\n const floor = TIER_THRESHOLDS[pair.tier];\n const value = token(map, pair.bg);\n if (score(endpoint, luminance(value)) >= floor) continue;\n const fill = seedOklch(value);\n const at = (l: number) =>\n formatOklch(clampChroma({ ...fill, l }, 'oklch', 'p3'));\n const readable = (l: number) => score(endpoint, luminance(at(l))) >= floor;\n map[`--nx-color-${pair.bg}`] = at(bisect(fill.l, 1 - endpoint, readable));\n }\n}\n\n/** Resolve every foreground against all its registered backgrounds, after fills and alpha composition. */\nexport function constrainColors(\n map: TokenMap,\n mode: Mode,\n contrast: number\n): TokenMap {\n for (const [name, { kind, pairs }] of SOLVE_GROUPS)\n if (kind === 'label') constrainFamilyFills(map, name, pairs);\n\n const endpoint: 0 | 1 = mode === 'dark' ? 1 : 0;\n const endpointY = luminance(`oklch(${endpoint} 0 0)`);\n for (const [name, { kind, pairs }] of SOLVE_GROUPS) {\n if (kind === 'label') continue;\n const constraints = constraintsFor(map, pairs, contrast, endpointY);\n if (constraints === undefined)\n throw new Error(`contrast: no readable ${name} in ${mode}`);\n const solved = solveForeground(\n token(map, name),\n constraints,\n endpoint,\n keepsTextSeed(mode, kind)\n );\n for (const fg of new Set(pairs.map((pair) => pair.fg).concat(name)))\n map[`--nx-color-${fg}`] = solved;\n }\n return map;\n}\n","import { APCAcontrast, sRGBtoY } from 'apca-w3';\nimport { clampChroma, converter, oklch, parse } from 'culori';\n\nconst toRgb = converter('rgb');\n\nexport type SrgbInts = [number, number, number];\n\nfunction channel(value: number): number {\n return Math.max(0, Math.min(255, Math.round(value * 255)));\n}\n\nfunction toSrgbInts(input: string): SrgbInts {\n const parsed = parse(input);\n if (!parsed) throw new Error(`apca: cannot parse color '${input}'`);\n const converted = oklch(parsed);\n if (!converted) throw new Error(`apca: cannot convert '${input}' to OKLCH`);\n const rgb = toRgb(clampChroma(converted, 'oklch', 'rgb'));\n return [channel(rgb.r), channel(rgb.g), channel(rgb.b)];\n}\n\n// Composite an 8-digit alpha hex over an opaque backdrop to rendered sRGB ints.\nexport function blendAlphaOver(hex8: string, bgInts: SrgbInts): SrgbInts {\n const h = hex8.slice(1);\n const a = parseInt(h.slice(6, 8), 16) / 255;\n const [bgR, bgG, bgB] = bgInts;\n const mix = (fg: number, bg: number) => Math.round(fg * a + bg * (1 - a));\n return [\n mix(parseInt(h.slice(0, 2), 16), bgR),\n mix(parseInt(h.slice(2, 4), 16), bgG),\n mix(parseInt(h.slice(4, 6), 16), bgB),\n ];\n}\n\nexport function resolveToSrgbInts(value: string, bgInts?: SrgbInts): SrgbInts {\n if (typeof value !== 'string') {\n throw new Error(`apca: expected string color value, got ${typeof value}`);\n }\n\n if (/^#[0-9a-fA-F]{8}$/.test(value)) {\n if (!bgInts) {\n throw new Error(\n `apca: alpha color \"${value}\" needs a backdrop to composite against`\n );\n }\n return blendAlphaOver(value, bgInts);\n }\n\n const parsed = parse(value);\n if (!parsed) throw new Error(`apca: cannot parse color '${value}'`);\n const converted = oklch(parsed);\n if (!converted) throw new Error(`apca: cannot convert '${value}'`);\n const rgb = toRgb(clampChroma(converted, 'oklch', 'rgb'));\n const alpha = rgb.alpha ?? 1;\n const ints: SrgbInts = [channel(rgb.r), channel(rgb.g), channel(rgb.b)];\n\n if (alpha < 1) {\n if (!bgInts) {\n throw new Error(\n `apca: alpha color \"${value}\" needs a backdrop to composite against`\n );\n }\n return [\n Math.round(ints[0] * alpha + bgInts[0] * (1 - alpha)),\n Math.round(ints[1] * alpha + bgInts[1] * (1 - alpha)),\n Math.round(ints[2] * alpha + bgInts[2] * (1 - alpha)),\n ];\n }\n\n return ints;\n}\n\n/**\n * Absolute APCA Lc of `foreground` on `background`. Both accept any CSS color\n * string culori can parse (hex, rgb, oklch). Inputs must be opaque — alpha is\n * dropped, not pre-blended, so a translucent ink (e.g. the text-tier alpha\n * inks) must be composited over its surface by the caller before scoring.\n */\nexport function apcaLc(foreground: string, background: string): number {\n return Math.abs(\n APCAcontrast(\n sRGBtoY(toSrgbInts(foreground)),\n sRGBtoY(toSrgbInts(background))\n ) as number\n );\n}\n","import type { Shade } from './palette';\nimport type { PrimitivePaletteName } from './primitive-palette';\n\nexport const STATUS_PALETTE_FAMILIES = {\n success: 'green',\n warning: 'orange',\n error: 'red',\n information: 'blue',\n} as const satisfies Record<string, PrimitivePaletteName>;\n\nexport const CHART_PALETTE_REFERENCES = [\n { palette: 'teal', light: '700', dark: '200' },\n { palette: 'lime', light: '700', dark: '200' },\n { palette: 'orange', light: '600', dark: '200' },\n { palette: 'rose', light: '600', dark: '200' },\n { palette: 'indigo', light: '600', dark: '200' },\n] as const satisfies readonly {\n palette: PrimitivePaletteName;\n light: Shade;\n dark: Shade;\n}[];\n","import { CHART_PALETTE_REFERENCES } from './semantic-palette-references';\n\nexport type ApcaTier = 'body' | 'ui' | 'incidental';\n\n/**\n * How the contrast solver resolves a pair's foreground.\n * - `text`: reading text; light mode keeps a seed that already passes.\n * - `label`: black/white label on a family fill; the solver moves the fill.\n * - `ink`: any other mark; the solver re-solves its lightness, keeping hue.\n */\nexport type ApcaSolveKind = 'text' | 'label' | 'ink';\n\nexport interface ApcaPair {\n /** Bare semantic token name, without the --nx-color- prefix. */\n fg: string;\n /** Bare semantic token name, without the --nx-color- prefix. */\n bg: string;\n tier: ApcaTier;\n kind: ApcaSolveKind;\n /** Opaque token or hex color underneath a translucent background. */\n backdrop?: string;\n /** Extra Lc on top of the tier target, e.g. to stagger chart series. */\n offset?: number;\n /** Solve jointly with another foreground and emit one shared color. */\n solveAs?: string;\n}\n\nexport const COLOR_FAMILIES = [\n 'primary',\n 'secondary',\n 'success',\n 'warning',\n 'error',\n 'information',\n] as const;\n\nconst CATEGORICAL_INDICES = CHART_PALETTE_REFERENCES.map(\n (_, index) => index + 1\n);\n// Each chart series asks for this much more Lc than the previous one, so\n// categories differ in lightness as well as hue.\nconst CHART_STAGGER_LC = 4.5;\n\nconst FOCUS_SURFACES = [\n 'background',\n 'container',\n 'popover',\n 'nav-background',\n 'nav-item-hover',\n 'nav-item-active',\n 'nav-border',\n] as const;\n\nconst text = (fg: string, bg: string, tier: ApcaTier): ApcaPair => ({\n fg,\n bg,\n tier,\n kind: 'text',\n});\nconst label = (fg: string, bg: string, tier: ApcaTier): ApcaPair => ({\n fg,\n bg,\n tier,\n kind: 'label',\n});\nconst ink = (fg: string, bg: string, tier: ApcaTier): ApcaPair => ({\n fg,\n bg,\n tier,\n kind: 'ink',\n});\n\nexport const APCA_PAIRS = [\n text('foreground', 'background', 'body'),\n text('foreground', 'background-hover', 'ui'),\n text('foreground', 'muted', 'ui'),\n text('muted-foreground', 'muted', 'ui'),\n text('muted-foreground-subtle', 'muted', 'incidental'),\n text('muted-foreground', 'container', 'ui'),\n text('muted-foreground-subtle', 'container', 'incidental'),\n text('foreground', 'muted-extralight', 'ui'),\n text('muted-foreground', 'muted-extralight', 'ui'),\n text('disabled-foreground', 'disabled', 'incidental'),\n text('container-foreground', 'container', 'body'),\n text('foreground', 'container', 'body'),\n text('popover-foreground', 'popover', 'body'),\n text('popover-foreground', 'popover-hover', 'ui'),\n text('foreground', 'control-background', 'ui'),\n text('foreground', 'control-background-hover', 'ui'),\n text('nav-foreground', 'nav-background', 'ui'),\n text('nav-muted-foreground', 'nav-background', 'incidental'),\n text('nav-foreground', 'nav-item-hover', 'ui'),\n text('nav-foreground', 'nav-item-active', 'ui'),\n ink('error-subtle-foreground', 'background', 'ui'),\n ink('error-subtle-foreground', 'container', 'ui'),\n ...COLOR_FAMILIES.flatMap((family) => [\n label(`${family}-foreground`, `${family}-background`, 'ui'),\n label(`${family}-foreground`, `${family}-background-hover`, 'ui'),\n label(`${family}-foreground`, `${family}-background-active`, 'ui'),\n ink(`${family}-subtle-foreground`, `${family}-subtle`, 'ui'),\n ink(`${family}-subtle-foreground`, `${family}-subtle-hover`, 'ui'),\n ink(`${family}-subtle-foreground`, `${family}-subtle-active`, 'ui'),\n ]),\n ...CATEGORICAL_INDICES.flatMap((index) =>\n ['container', 'background'].map((bg) => ({\n ...ink(`chart-categorical-${index}`, bg, 'ui'),\n offset: (index - 1) * CHART_STAGGER_LC,\n }))\n ),\n // Focus is the primary accent (components.md § Focus States), so it shares\n // one solved color with primary-subtle-foreground.\n ...FOCUS_SURFACES.flatMap((surface) => [\n {\n ...ink('focus-default', surface, 'incidental'),\n solveAs: 'primary-subtle-foreground',\n },\n ink('focus-error', surface, 'incidental'),\n ]),\n ...[\n 'background-active',\n 'container-hover',\n 'container-active',\n 'popover',\n 'popover-hover',\n 'popover-active',\n 'nav-background',\n ].flatMap((surface) => [\n text('foreground', surface, 'ui'),\n text('muted-foreground', surface, 'ui'),\n text('muted-foreground-subtle', surface, 'incidental'),\n ]),\n text('muted-foreground', 'background', 'ui'),\n text('muted-foreground-subtle', 'background', 'incidental'),\n text('container-foreground', 'container-hover', 'ui'),\n text('container-foreground', 'container-active', 'ui'),\n text('popover-foreground', 'popover-active', 'ui'),\n ...['background', 'container', 'popover'].flatMap((backdrop) => [\n { ...text('popover-foreground', 'popover-alpha', 'body'), backdrop },\n { ...text('foreground', 'background-hover-alpha', 'ui'), backdrop },\n ]),\n ...['#000000', '#ffffff'].map((backdrop) => ({\n ...text('popover-foreground', 'popover-alpha', 'body'),\n backdrop,\n })),\n] as const satisfies readonly ApcaPair[];\n","import type { Oklch } from 'culori';\n\n/** Round to `decimals` places. */\nexport function round(value: number, decimals: number): number {\n const factor = 10 ** decimals;\n return Math.round(value * factor) / factor;\n}\n\n/**\n * Format an OKLCH color to the project's spot-check string form\n * (`oklch(L C H)`, or `oklch(L C H / A)` when translucent), emitting `0` for\n * hue when chroma is 0.\n */\nexport function formatOklch(color: Oklch): string {\n const finite = (v: number | undefined) =>\n typeof v === 'number' && Number.isFinite(v) ? v : 0;\n const l = round(finite(color.l), 4);\n const c = round(finite(color.c), 4);\n const h = c && color.h !== undefined ? round(finite(color.h), 3) : 0;\n const alpha = color.alpha === undefined ? 1 : round(color.alpha, 4);\n return alpha < 1\n ? `oklch(${l} ${c} ${h} / ${alpha})`\n : `oklch(${l} ${c} ${h})`;\n}\n","import { oklch, parse } from 'culori';\n\nimport primitiveColors from '../../tokens/primitives/color.json' with { type: 'json' };\n\nexport const SHADES = [\n '50',\n '100',\n '200',\n '300',\n '400',\n '500',\n '600',\n '700',\n '800',\n '900',\n '950',\n] as const;\n\nexport type Shade = (typeof SHADES)[number];\n\nexport const PALETTE_KEYS = [\n 'slate',\n 'neutral',\n 'gray',\n 'stone',\n 'zinc',\n] as const;\n\nexport type PaletteKey = (typeof PALETTE_KEYS)[number];\n\nexport const TIER_THRESHOLDS = {\n body: 75,\n ui: 60,\n incidental: 45,\n} as const;\n\nexport type Tier = keyof typeof TIER_THRESHOLDS;\n\n/** Light/dark theme axis. */\nexport type Mode = 'light' | 'dark';\n\n/** Surface tone families an nxds theme can be seeded with. */\nexport type NxdsSurfaceTone = 'stone' | 'neutral' | 'zinc' | 'slate' | 'gray';\n\nexport interface PaletteReference {\n c: number;\n h: number;\n}\n\nfunction deriveReference(palette: PaletteKey): PaletteReference {\n const hex = primitiveColors[palette]['500'].$value;\n const parsed = parse(hex);\n if (!parsed) {\n throw new Error(`palette: cannot parse '${palette}.500' hex '${hex}'`);\n }\n const o = oklch(parsed);\n if (!o) {\n throw new Error(`palette: cannot convert '${palette}.500' to OKLCH`);\n }\n return { c: o.c ?? 0, h: o.h ?? 0 };\n}\n\nconst paletteReferenceCache = new Map<PaletteKey, PaletteReference>();\n\nexport function getPaletteReference(palette: PaletteKey): PaletteReference {\n const cached = paletteReferenceCache.get(palette);\n if (cached) return cached;\n const reference = deriveReference(palette);\n paletteReferenceCache.set(palette, reference);\n return reference;\n}\n","import { clampChroma, type Oklch, oklch, parse } from 'culori';\n\nimport { PERCEPTUAL_L_GRID } from '../token-source/perceptual-grid';\n\nimport { formatOklch } from './oklch-format';\nimport { type Shade, SHADES } from './palette';\n\n// emit ships P3 chroma (browsers gamut-map at render); sit just inside the cusp.\nconst EMIT_GAMUT = 'p3';\nconst CUSP_FRACTION = 0.95;\n\n/** Whether a string is a CSS color culori (and thus the engine) can parse. */\nexport function isColor(value: string): boolean {\n return parse(value) !== undefined;\n}\n\n/** Parse any CSS color string to OKLCH. Throws on unparseable input. */\nexport function seedOklch(input: string): Oklch {\n const parsed = parse(input);\n if (!parsed)\n throw new Error(`perceptual-ramp: cannot parse color '${input}'`);\n const converted = oklch(parsed);\n if (!converted)\n throw new Error(`perceptual-ramp: cannot convert '${input}' to OKLCH`);\n return converted;\n}\n\nexport interface RampOptions {\n /** Cap cusp chroma at the seed's own chroma so a muted accent stays muted. @default true */\n capAtSeedChroma?: boolean;\n}\n\n/** One shade: pinned L at the seed's hue, chroma at the P3 cusp (optionally capped at the seed). */\nexport function pinnedOklch(\n seedHex: string,\n shade: Shade,\n options: RampOptions = {}\n): string {\n const { capAtSeedChroma = true } = options;\n const seed = seedOklch(seedHex);\n const l = PERCEPTUAL_L_GRID[shade];\n const hue = seed.h ?? 0;\n const seedC = seed.c ?? 0;\n\n // Max chroma in P3 at this (L, hue): start past the gamut and clamp inward.\n const cuspC =\n clampChroma({ mode: 'oklch', l, c: 0.5, h: hue }, 'oklch', EMIT_GAMUT).c ??\n 0;\n let chroma = cuspC * CUSP_FRACTION;\n // Cap at the seed's own chroma so a muted accent stays muted — and an\n // achromatic seed (seedC === 0) stays fully neutral instead of picking up the\n // fallback hue at full cusp chroma.\n if (capAtSeedChroma) chroma = Math.min(chroma, seedC);\n\n const target: Oklch = { mode: 'oklch', l, c: chroma, h: hue };\n return formatOklch(clampChroma(target, 'oklch', EMIT_GAMUT));\n}\n\nexport type Ramp = Record<Shade, string>;\n\n/** Full 50→950 ramp from one seed color. */\nexport function rampFromSeed(seedHex: string, options: RampOptions = {}): Ramp {\n const ramp: Partial<Ramp> = {};\n for (const shade of SHADES)\n ramp[shade] = pinnedOklch(seedHex, shade, options);\n return ramp as Ramp;\n}\n","import { clampChroma, converter, type Oklch, oklch, parse } from 'culori';\n\nimport type { Shade } from '../lib/palette.ts';\n\nimport flatGrid from './perceptual-grid.json' with { type: 'json' };\nimport hueGrid from './perceptual-grid-hue.json' with { type: 'json' };\n\n// emit ships P3 chroma; audit scores in sRGB (legacy-display equivalent)\nconst EMIT_GAMUT = 'p3';\nconst AUDIT_GAMUT = 'rgb';\n\nconst toRgb = converter('rgb');\n\nexport const PERCEPTUAL_L_GRID: Readonly<Record<Shade, number>> =\n Object.freeze(flatGrid);\n\nconst PERCEPTUAL_L_GRID_HUE: Readonly<\n Record<string, Readonly<Record<Shade, number>>>\n> = Object.freeze(\n Object.fromEntries(\n Object.entries(hueGrid).map(([name, curve]) => [name, Object.freeze(curve)])\n )\n);\n\nconst CUSP_FRACTION = 0.95; // sit just inside the P3 cusp for render safety\n\nconst SHADE_KEY_RE = /^(50|100|200|300|400|500|600|700|800|900|950)$/;\n\nexport function isPaletteShadeKey(key: unknown): key is Shade {\n return typeof key === 'string' && SHADE_KEY_RE.test(key);\n}\n\nfunction round(value: number, decimals: number) {\n const factor = 10 ** decimals;\n return Math.round(value * factor) / factor;\n}\n\nfunction formatPaletteOklch({ l, c, h, alpha }: Oklch) {\n const finite = (v: number | undefined) =>\n v !== undefined && Number.isFinite(v) ? v : 0;\n const lRounded = round(finite(l), 4);\n const cRounded = round(finite(c), 4);\n // Hue is undefined when chroma is 0 (achromatic). Emit 0 rather than `none`\n // so consuming CSS stays compatible with the project's spot-check format.\n const hRounded = c && h !== undefined ? round(finite(h), 3) : 0;\n const base = `oklch(${lRounded} ${cRounded} ${hRounded}`;\n if (alpha !== undefined && alpha < 1) {\n return `${base} / ${round(alpha, 4)})`;\n }\n return `${base})`;\n}\n\nfunction parseToOklch(hex: string): Oklch {\n const parsed = parse(hex);\n if (!parsed) {\n throw new Error(`palette: cannot parse color \"${hex}\"`);\n }\n return oklch(parsed);\n}\n\nfunction computePinnedOklch(\n hex: string,\n shade: string,\n palette?: string,\n reportGamutClip?: (message: string) => void\n): Oklch {\n const hueCurve = palette ? PERCEPTUAL_L_GRID_HUE[palette] : undefined;\n const pinnedL = isPaletteShadeKey(shade)\n ? (hueCurve ?? PERCEPTUAL_L_GRID)[shade]\n : undefined;\n if (pinnedL === undefined) {\n throw new Error(`palette: unknown shade \"${shade}\" for ${hex}`);\n }\n\n const source = parseToOklch(hex);\n\n // Re-pitched hues take chroma at the P3 cusp for the (hue, pinned-L) pair —\n // pale near white, vivid at the peak — driven by the gamut, not the source\n // hex. Every other palette keeps its source chroma (flat-grid behaviour).\n let chroma = source.c ?? 0;\n if (hueCurve) {\n const cuspC =\n clampChroma(\n { mode: 'oklch', l: pinnedL, c: 0.5, h: source.h },\n 'oklch',\n EMIT_GAMUT\n ).c ?? 0;\n chroma = cuspC * CUSP_FRACTION;\n }\n\n const target: Oklch = {\n mode: 'oklch',\n l: pinnedL,\n c: chroma,\n h: source.h,\n ...(source.alpha !== undefined ? { alpha: source.alpha } : {}),\n };\n\n const clamped = clampChroma(target, 'oklch', EMIT_GAMUT);\n\n if (!hueCurve) {\n const originalC = target.c;\n const clampedC = clamped.c ?? 0;\n if (originalC > 0 && (originalC - clampedC) / originalC > 0.2) {\n reportGamutClip?.(\n `palette: P3 gamut clip on ${hex} at shade ${shade} — C ${originalC.toFixed(4)} → ${clampedC.toFixed(4)}`\n );\n }\n }\n\n return clamped;\n}\n\nexport function hexToOklchPinned(\n hex: string,\n shade: string,\n palette?: string,\n reportGamutClip?: (message: string) => void\n): string {\n return formatPaletteOklch(\n computePinnedOklch(hex, shade, palette, reportGamutClip)\n );\n}\n\nexport function hexToOklchMechanical(hex: string): string {\n return formatPaletteOklch(parseToOklch(hex));\n}\n\nfunction oklchToSrgbInts(oklchColor: Oklch): [number, number, number] {\n const rgb = toRgb(clampChroma(oklchColor, 'oklch', AUDIT_GAMUT));\n if ((rgb.alpha ?? 1) < 1) {\n // apca-w3 `sRGBtoY` reads only [r,g,b]; an alpha-bearing color must be\n // pre-blended against its actual background before contrast computation.\n throw new Error(\n 'palette: oklchToSrgbInts received alpha-bearing color; pre-blend before contrast computation'\n );\n }\n const channel = (v: number) =>\n Math.max(0, Math.min(255, Math.round(v * 255)));\n return [channel(rgb.r), channel(rgb.g), channel(rgb.b)];\n}\n\n// Audit conversion retains the unrounded coordinates; parsing emitted CSS\n// first would change some sRGB integer channels at rounding boundaries.\nexport function hexToSrgbInts(\n hex: string,\n shade?: string,\n palette?: string\n): [number, number, number] {\n if (shade !== undefined) {\n return oklchToSrgbInts(computePinnedOklch(hex, shade, palette));\n }\n return oklchToSrgbInts(parseToOklch(hex));\n}\n","{\n \"50\": 0.985,\n \"100\": 0.945,\n \"200\": 0.87,\n \"300\": 0.765,\n \"400\": 0.66,\n \"500\": 0.553,\n \"600\": 0.46,\n \"700\": 0.385,\n \"800\": 0.297,\n \"900\": 0.207,\n \"950\": 0.118\n}\n","{\n \"rose\": {\n \"50\": 0.971,\n \"100\": 0.936,\n \"200\": 0.885,\n \"300\": 0.81,\n \"400\": 0.71,\n \"500\": 0.64,\n \"600\": 0.58,\n \"700\": 0.51,\n \"800\": 0.42,\n \"900\": 0.34,\n \"950\": 0.25\n },\n \"red\": {\n \"50\": 0.971,\n \"100\": 0.936,\n \"200\": 0.885,\n \"300\": 0.808,\n \"400\": 0.704,\n \"500\": 0.637,\n \"600\": 0.577,\n \"700\": 0.505,\n \"800\": 0.42,\n \"900\": 0.34,\n \"950\": 0.25\n },\n \"orange\": {\n \"50\": 0.98,\n \"100\": 0.955,\n \"200\": 0.91,\n \"300\": 0.84,\n \"400\": 0.78,\n \"500\": 0.71,\n \"600\": 0.62,\n \"700\": 0.52,\n \"800\": 0.43,\n \"900\": 0.34,\n \"950\": 0.25\n },\n \"amber\": {\n \"50\": 0.985,\n \"100\": 0.96,\n \"200\": 0.92,\n \"300\": 0.87,\n \"400\": 0.84,\n \"500\": 0.77,\n \"600\": 0.68,\n \"700\": 0.57,\n \"800\": 0.46,\n \"900\": 0.35,\n \"950\": 0.24\n },\n \"yellow\": {\n \"50\": 0.985,\n \"100\": 0.96,\n \"200\": 0.92,\n \"300\": 0.88,\n \"400\": 0.86,\n \"500\": 0.8,\n \"600\": 0.72,\n \"700\": 0.6,\n \"800\": 0.47,\n \"900\": 0.35,\n \"950\": 0.23\n },\n \"lime\": {\n \"50\": 0.985,\n \"100\": 0.965,\n \"200\": 0.93,\n \"300\": 0.9,\n \"400\": 0.88,\n \"500\": 0.82,\n \"600\": 0.73,\n \"700\": 0.61,\n \"800\": 0.49,\n \"900\": 0.37,\n \"950\": 0.26\n },\n \"green\": {\n \"50\": 0.982,\n \"100\": 0.96,\n \"200\": 0.925,\n \"300\": 0.87,\n \"400\": 0.79,\n \"500\": 0.72,\n \"600\": 0.62,\n \"700\": 0.52,\n \"800\": 0.43,\n \"900\": 0.34,\n \"950\": 0.25\n },\n \"emerald\": {\n \"50\": 0.982,\n \"100\": 0.96,\n \"200\": 0.925,\n \"300\": 0.87,\n \"400\": 0.79,\n \"500\": 0.72,\n \"600\": 0.62,\n \"700\": 0.52,\n \"800\": 0.43,\n \"900\": 0.34,\n \"950\": 0.25\n },\n \"teal\": {\n \"50\": 0.98,\n \"100\": 0.945,\n \"200\": 0.9,\n \"300\": 0.85,\n \"400\": 0.79,\n \"500\": 0.72,\n \"600\": 0.62,\n \"700\": 0.52,\n \"800\": 0.43,\n \"900\": 0.34,\n \"950\": 0.25\n },\n \"cyan\": {\n \"50\": 0.98,\n \"100\": 0.955,\n \"200\": 0.91,\n \"300\": 0.85,\n \"400\": 0.79,\n \"500\": 0.72,\n \"600\": 0.63,\n \"700\": 0.53,\n \"800\": 0.44,\n \"900\": 0.35,\n \"950\": 0.26\n },\n \"sky\": {\n \"50\": 0.975,\n \"100\": 0.945,\n \"200\": 0.895,\n \"300\": 0.82,\n \"400\": 0.74,\n \"500\": 0.67,\n \"600\": 0.58,\n \"700\": 0.5,\n \"800\": 0.42,\n \"900\": 0.34,\n \"950\": 0.25\n },\n \"blue\": {\n \"50\": 0.97,\n \"100\": 0.932,\n \"200\": 0.882,\n \"300\": 0.809,\n \"400\": 0.707,\n \"500\": 0.623,\n \"600\": 0.546,\n \"700\": 0.488,\n \"800\": 0.41,\n \"900\": 0.33,\n \"950\": 0.25\n },\n \"indigo\": {\n \"50\": 0.96,\n \"100\": 0.925,\n \"200\": 0.865,\n \"300\": 0.78,\n \"400\": 0.67,\n \"500\": 0.57,\n \"600\": 0.49,\n \"700\": 0.42,\n \"800\": 0.35,\n \"900\": 0.28,\n \"950\": 0.21\n },\n \"violet\": {\n \"50\": 0.965,\n \"100\": 0.93,\n \"200\": 0.875,\n \"300\": 0.79,\n \"400\": 0.68,\n \"500\": 0.59,\n \"600\": 0.51,\n \"700\": 0.44,\n \"800\": 0.37,\n \"900\": 0.3,\n \"950\": 0.22\n },\n \"purple\": {\n \"50\": 0.967,\n \"100\": 0.935,\n \"200\": 0.88,\n \"300\": 0.8,\n \"400\": 0.7,\n \"500\": 0.61,\n \"600\": 0.53,\n \"700\": 0.46,\n \"800\": 0.39,\n \"900\": 0.32,\n \"950\": 0.24\n },\n \"fuchsia\": {\n \"50\": 0.97,\n \"100\": 0.94,\n \"200\": 0.89,\n \"300\": 0.81,\n \"400\": 0.71,\n \"500\": 0.63,\n \"600\": 0.56,\n \"700\": 0.49,\n \"800\": 0.41,\n \"900\": 0.33,\n \"950\": 0.25\n },\n \"pink\": {\n \"50\": 0.97,\n \"100\": 0.94,\n \"200\": 0.89,\n \"300\": 0.82,\n \"400\": 0.72,\n \"500\": 0.64,\n \"600\": 0.57,\n \"700\": 0.5,\n \"800\": 0.42,\n \"900\": 0.34,\n \"950\": 0.25\n }\n}\n","import typographyTokens from '../../tokens/primitives/typography/typography-default.json';\n\nimport { normalizeContrast } from './contrast';\nimport type { ThemeDerivationInput, ThemeSeeds } from './derive-theme';\nimport type { NxdsSurfaceTone } from './palette';\nimport { isColor } from './perceptual-ramp';\nimport { inRuntimeLayer } from './runtime-layer';\n\ntype ModeSeeds = Pick<ThemeSeeds, 'background' | 'foreground'>;\n\nexport type NxdsAppearanceMode = 'light' | 'dark' | 'system';\nexport type NxdsDensity =\n | 'tight'\n | 'compact'\n | 'default'\n | 'comfortable'\n | 'relaxed'\n | 'spacious';\nexport type NxdsCorners =\n | 'square'\n | 'subtle'\n | 'smooth'\n | 'round'\n | 'extra-round';\nexport type NxdsElevation = 'flat' | 'quiet' | 'soft' | 'standard' | 'strong';\nexport type NxdsStroke = 'fine' | 'normal' | 'strong';\n\nexport interface NxdsAppearancePrefs {\n uiFont: string;\n codeFont: string;\n uiFontSize: number;\n codeFontSize: number;\n reduceMotion: boolean;\n pointerCursors: boolean;\n fontSmoothing: boolean;\n}\n\nexport interface NxdsAppearanceState {\n mode: NxdsAppearanceMode;\n brandColor: string;\n surfaceTone: NxdsSurfaceTone;\n lightContrast: number;\n darkContrast: number;\n density: NxdsDensity;\n corners: NxdsCorners;\n elevation: NxdsElevation;\n stroke: NxdsStroke;\n prefs: NxdsAppearancePrefs;\n}\n\n/** An appearance field that picks one of a token family's preset modes. */\nexport type NxdsPresetField = 'density' | 'corners' | 'elevation' | 'stroke';\n\nexport const DEFAULT_BRAND_COLOR = '#0a0a0a';\n\nexport const BASE_TONE_OPTIONS = [\n { value: 'stone', label: 'Stone', color: '#747271' },\n { value: 'neutral', label: 'Neutral', color: '#737373' },\n { value: 'zinc', label: 'Zinc', color: '#717175' },\n { value: 'slate', label: 'Slate', color: '#717376' },\n { value: 'gray', label: 'Gray', color: '#707274' },\n] as const satisfies readonly {\n value: NxdsSurfaceTone;\n label: string;\n color: string;\n}[];\n\nexport const BASE_TONE_SEEDS: Record<\n NxdsSurfaceTone,\n { light: ModeSeeds; dark: ModeSeeds }\n> = {\n stone: {\n light: { background: '#fafaf9', foreground: '#1c1917' },\n dark: { background: '#1c1917', foreground: '#fafaf9' },\n },\n neutral: {\n light: { background: '#fafafa', foreground: '#171717' },\n dark: { background: '#171717', foreground: '#fafafa' },\n },\n zinc: {\n light: { background: '#fafafa', foreground: '#09090b' },\n dark: { background: '#09090b', foreground: '#fafafa' },\n },\n slate: {\n light: { background: '#f8fafc', foreground: '#0f172a' },\n dark: { background: '#0f172a', foreground: '#f8fafc' },\n },\n gray: {\n light: { background: '#f9fafb', foreground: '#111827' },\n dark: { background: '#111827', foreground: '#f9fafb' },\n },\n};\n\nexport const DENSITY_OPTIONS = [\n { value: 'tight', label: 'Tight' },\n { value: 'compact', label: 'Compact' },\n { value: 'default', label: 'Default' },\n { value: 'comfortable', label: 'Comfortable' },\n { value: 'relaxed', label: 'Relaxed' },\n { value: 'spacious', label: 'Spacious' },\n] as const satisfies readonly { value: NxdsDensity; label: string }[];\n\nexport const CORNER_OPTIONS = [\n { value: 'square', label: 'Square' },\n { value: 'subtle', label: 'Subtle' },\n { value: 'smooth', label: 'Smooth' },\n { value: 'round', label: 'Round' },\n { value: 'extra-round', label: 'Extra Round' },\n] as const satisfies readonly { value: NxdsCorners; label: string }[];\n\nexport const ELEVATION_OPTIONS = [\n { value: 'flat', label: 'Flat' },\n { value: 'quiet', label: 'Quiet' },\n { value: 'soft', label: 'Soft' },\n { value: 'standard', label: 'Standard' },\n { value: 'strong', label: 'Strong' },\n] as const satisfies readonly { value: NxdsElevation; label: string }[];\n\nexport const STROKE_OPTIONS = [\n { value: 'fine', label: 'Fine' },\n { value: 'normal', label: 'Normal' },\n { value: 'strong', label: 'Strong' },\n] as const satisfies readonly { value: NxdsStroke; label: string }[];\n\nexport const DEFAULT_NXDS_APPEARANCE: NxdsAppearanceState = {\n mode: 'light',\n brandColor: DEFAULT_BRAND_COLOR,\n surfaceTone: 'zinc',\n lightContrast: 50,\n darkContrast: 50,\n density: 'default',\n corners: 'subtle',\n elevation: 'quiet',\n stroke: 'normal',\n prefs: {\n uiFont: '-apple-system, BlinkMacSystemFont, \"Segoe UI\", sans-serif',\n codeFont: 'ui-monospace, \"SF Mono\", Menlo, monospace',\n uiFontSize: 14,\n codeFontSize: 12,\n reduceMotion: false,\n pointerCursors: false,\n fontSmoothing: false,\n },\n};\n\nconst FONT_PX_MIN = 8;\nconst FONT_PX_MAX = 32;\n\nconst APPEARANCE_MODES = new Set<NxdsAppearanceMode>([\n 'light',\n 'dark',\n 'system',\n]);\nconst SURFACE_TONES = new Set<NxdsSurfaceTone>(\n BASE_TONE_OPTIONS.map((option) => option.value)\n);\nconst DENSITIES = new Set<NxdsDensity>(\n DENSITY_OPTIONS.map((option) => option.value)\n);\nconst CORNERS = new Set<NxdsCorners>(\n CORNER_OPTIONS.map((option) => option.value)\n);\nconst ELEVATIONS = new Set<NxdsElevation>(\n ELEVATION_OPTIONS.map((option) => option.value)\n);\nconst STROKES = new Set<NxdsStroke>(\n STROKE_OPTIONS.map((option) => option.value)\n);\n\nconst isRecord = (value: unknown): value is Record<string, unknown> =>\n typeof value === 'object' && value !== null;\n\n// Font families are interpolated into a `<style>` rule, so reject characters that\n// could break out of the declaration (`;` `{` `}`) or open a tag (`<`).\nconst FONT_FAMILY_UNSAFE = /[;{}<]/;\nconst fontFamilyOr = (value: unknown, fallback: string): string =>\n typeof value === 'string' &&\n value.length > 0 &&\n !FONT_FAMILY_UNSAFE.test(value)\n ? value\n : fallback;\n\nconst boolOr = (value: unknown, fallback: boolean): boolean =>\n typeof value === 'boolean' ? value : fallback;\n\nconst enumOr = <T extends string>(\n value: unknown,\n values: ReadonlySet<T>,\n fallback: T\n): T =>\n typeof value === 'string' && values.has(value as T) ? (value as T) : fallback;\n\nconst clampFontSize = (value: unknown, fallback: number): number =>\n typeof value === 'number' && Number.isFinite(value) && value > 0\n ? Math.min(FONT_PX_MAX, Math.max(FONT_PX_MIN, value))\n : fallback;\n\nfunction formatPx(value: number): string {\n return `${Number(value.toFixed(4))}px`;\n}\n\nfunction typographyScaleVariables(uiPx: number): string {\n const scale = uiPx / DEFAULT_NXDS_APPEARANCE.prefs.uiFontSize;\n const sizeVars = Object.entries(typographyTokens.size).map(\n ([name, token]) =>\n ` --nx-typography-size-${name}: ${formatPx(token.$value.value * scale)};`\n );\n const lineHeightVars = Object.entries(typographyTokens['line-height']).map(\n ([name, token]) =>\n ` --nx-typography-line-height-${name}: ${formatPx(token.$value.value * scale)};`\n );\n\n return [...sizeVars, ...lineHeightVars].join('\\n');\n}\n\n// Retired public-mode codename -> friendly, applied to persisted state on read\n// (see normalizeAppearanceModeIds). Internal; correctness is covered behaviorally\n// by the sanitize codename->friendly tests, so it is not part of the public API.\nconst PUBLIC_MODE_RENAME: Record<NxdsPresetField, Record<string, string>> = {\n density: {\n nova: 'compact',\n mira: 'default',\n luma: 'comfortable',\n sera: 'spacious',\n },\n corners: {\n sharp: 'square',\n mellow: 'round',\n },\n elevation: {\n maia: 'quiet',\n mira: 'standard',\n nova: 'strong',\n },\n stroke: {\n maia: 'fine',\n vega: 'normal',\n nova: 'strong',\n },\n};\n\nexport function normalizeAppearanceModeIds(raw: unknown): unknown {\n if (!isRecord(raw)) return raw;\n const out: Record<string, unknown> = { ...raw };\n for (const [field, map] of Object.entries(PUBLIC_MODE_RENAME)) {\n const value = out[field];\n if (\n typeof value === 'string' &&\n Object.prototype.hasOwnProperty.call(map, value)\n )\n out[field] = map[value];\n }\n return out;\n}\n\nexport function sanitizeNxdsAppearancePrefs(raw: unknown): NxdsAppearancePrefs {\n const o = isRecord(raw) ? raw : {};\n const d = DEFAULT_NXDS_APPEARANCE.prefs;\n return {\n uiFont: fontFamilyOr(o.uiFont, d.uiFont),\n codeFont: fontFamilyOr(o.codeFont, d.codeFont),\n uiFontSize: clampFontSize(o.uiFontSize, d.uiFontSize),\n codeFontSize: clampFontSize(o.codeFontSize, d.codeFontSize),\n reduceMotion: boolOr(o.reduceMotion, d.reduceMotion),\n pointerCursors: boolOr(o.pointerCursors, d.pointerCursors),\n fontSmoothing: boolOr(o.fontSmoothing, d.fontSmoothing),\n };\n}\n\nexport function sanitizeNxdsAppearance(rawInput: unknown): NxdsAppearanceState {\n if (!isRecord(rawInput)) return DEFAULT_NXDS_APPEARANCE;\n const raw = normalizeAppearanceModeIds(rawInput) as Record<string, unknown>;\n const d = DEFAULT_NXDS_APPEARANCE;\n return {\n mode: enumOr(raw.mode, APPEARANCE_MODES, d.mode),\n brandColor:\n typeof raw.brandColor === 'string' && isColor(raw.brandColor)\n ? raw.brandColor\n : d.brandColor,\n surfaceTone: enumOr(raw.surfaceTone, SURFACE_TONES, d.surfaceTone),\n lightContrast: normalizeContrast(raw.lightContrast, d.lightContrast),\n darkContrast: normalizeContrast(raw.darkContrast, d.darkContrast),\n density: enumOr(raw.density, DENSITIES, d.density),\n corners: enumOr(raw.corners, CORNERS, d.corners),\n elevation: enumOr(raw.elevation, ELEVATIONS, d.elevation),\n stroke: enumOr(raw.stroke, STROKES, d.stroke),\n prefs: sanitizeNxdsAppearancePrefs(raw.prefs),\n };\n}\n\nexport function createNxdsThemeContract(\n state: NxdsAppearanceState\n): ThemeDerivationInput {\n const tone = BASE_TONE_SEEDS[state.surfaceTone];\n return {\n surfaceTone: state.surfaceTone,\n contrast: { light: state.lightContrast, dark: state.darkContrast },\n light: { accent: state.brandColor, ...tone.light },\n dark: { accent: state.brandColor, ...tone.dark },\n };\n}\n\nexport function appearancePrefsToCss(prefs: NxdsAppearancePrefs): string {\n const uiPx = clampFontSize(\n prefs.uiFontSize,\n DEFAULT_NXDS_APPEARANCE.prefs.uiFontSize\n );\n const codePx = clampFontSize(\n prefs.codeFontSize,\n DEFAULT_NXDS_APPEARANCE.prefs.codeFontSize\n );\n // Font and type size reach only nxds. The toggles below apply to the whole\n // page, host included, when the user turns them on.\n const blocks: string[] = [\n inRuntimeLayer(`:root {\n --nx-typography-family-font-sans: ${prefs.uiFont};\n --nx-typography-family-font-mono: ${prefs.codeFont};\n${typographyScaleVariables(uiPx)}\n}`),\n `.nx\\\\:font-mono, .nx\\\\:typography-code-block, .nx\\\\:typography-code-inline { font-size: ${codePx}px; }`,\n ];\n if (prefs.fontSmoothing) {\n blocks.push(\n `html { -webkit-font-smoothing: antialiased; -moz-osx-font-smoothing: grayscale; }`\n );\n }\n if (prefs.pointerCursors) {\n blocks.push(\n `button:not(:disabled), [role=\"button\"], [role=\"tab\"], [role=\"radio\"], a[href], summary { cursor: pointer; }`\n );\n }\n if (prefs.reduceMotion) {\n blocks.push(\n `*, *::before, *::after { animation-duration: 0.01ms !important; animation-iteration-count: 1 !important; transition-duration: 0.01ms !important; scroll-behavior: auto !important; }`\n );\n }\n return blocks.join('\\n');\n}\n","import { clampChroma, type Oklch } from 'culori';\n\nimport { apcaLc } from './apca';\nimport { APCA_PAIRS } from './apca-pairs';\nimport {\n bisect,\n constrainColors,\n contrastTarget,\n normalizeContrast,\n} from './contrast';\nimport { formatOklch } from './oklch-format';\nimport {\n type Mode,\n type NxdsSurfaceTone,\n type Shade,\n TIER_THRESHOLDS,\n} from './palette';\nimport { rampFromSeed, seedOklch } from './perceptual-ramp';\nimport { getPaletteRamp, getPaletteShade } from './primitive-palette';\nimport { inRuntimeLayer } from './runtime-layer';\nimport {\n CHART_PALETTE_REFERENCES,\n STATUS_PALETTE_FAMILIES,\n} from './semantic-palette-references';\nimport {\n anchorToStep,\n DARK_SURFACE_LADDER,\n LIGHT_SURFACE_LADDER,\n SURFACE_TOKENS,\n SURFACE_TONE,\n type SurfaceToken,\n} from './surface-ladder';\n\nexport interface ThemeSeeds {\n /** Drives the primary family ramp. */\n accent: string;\n /** Drives surface lightness. Hue/chroma come from `surfaceTone`. */\n background: string;\n /** Drives text hue/lightness; tinted surface tones cap text chroma. */\n foreground: string;\n}\n\n/** The derivation seeds `deriveTheme` consumes — no display preference. */\nexport interface ThemeDerivationInput {\n surfaceTone?: NxdsSurfaceTone;\n light: ThemeSeeds;\n dark: ThemeSeeds;\n /** 0–100 per mode. Higher values strengthen surface and content contrast. */\n contrast: {\n light: number;\n dark: number;\n };\n}\n\nexport interface NxdsThemeContract extends ThemeDerivationInput {\n /** Consumer display preference; not read by `deriveTheme`. */\n appearance: 'light' | 'dark' | 'system';\n}\n\nexport type TokenMap = Record<string, string>;\nexport interface DerivedTheme {\n light: TokenMap;\n dark: TokenMap;\n}\n\nconst clamp01 = (l: number) => Math.max(0.03, Math.min(1, l));\n\ninterface ContrastProfile {\n surfaceDelta: number;\n borderAlpha: number;\n hoverAlpha: number;\n}\n\n// Border and hover opacities hit their `anchor` value at this contrast and\n// interpolate linearly on either side of it.\nconst CONTRAST_ANCHOR = 60;\n\nfunction anchoredContrast(\n contrast: number,\n min: number,\n anchor: number,\n max: number\n): number {\n const value =\n contrast <= CONTRAST_ANCHOR\n ? min + ((anchor - min) * contrast) / CONTRAST_ANCHOR\n : anchor +\n ((max - anchor) * (contrast - CONTRAST_ANCHOR)) /\n (100 - CONTRAST_ANCHOR);\n return Number(value.toFixed(4));\n}\n\nfunction contrastProfile(mode: Mode, contrast: number): ContrastProfile {\n const dark = mode === 'dark';\n return {\n surfaceDelta: 0.02 + (((dark ? 0.03 : 0.05) - 0.02) * contrast) / 100,\n borderAlpha: anchoredContrast(\n contrast,\n dark ? 0.12 : 0.06,\n dark ? 0.1882 : 0.0941,\n dark ? 0.2337 : 0.1168\n ),\n hoverAlpha: anchoredContrast(\n contrast,\n dark ? 0.04 : 0.035,\n 0.0627,\n dark ? 0.09 : 0.085\n ),\n };\n}\n\nconst WHITE_BASE = 'oklch(1 0 0)';\n\nconst isSurfaceToken = (name: string): name is SurfaceToken =>\n (SURFACE_TOKENS as readonly string[]).includes(name);\n\n/** Opaque surface tiers derived from the background seed + contrast Δ. */\nexport function deriveSurfaces(\n backgroundHex: string,\n surfaceTone: NxdsSurfaceTone,\n mode: Mode,\n delta: number,\n contrast = 50\n): TokenMap {\n const tone = SURFACE_TONE[surfaceTone];\n const dark = mode === 'dark';\n const anchorL = dark\n ? Math.max(0.08, Math.min(0.32, seedOklch(backgroundHex).l))\n : 1;\n const baseC = dark ? tone.darkC : tone.lightC;\n const out: TokenMap = {};\n const ladder = dark ? DARK_SURFACE_LADDER : LIGHT_SURFACE_LADDER;\n const surfaceAt = (token: SurfaceToken, spacing: number) => {\n const step = anchorToStep(ladder[token]);\n const l = clamp01(anchorL + step * spacing);\n const c = !dark && l >= 1 ? 0 : baseC;\n return formatOklch(\n clampChroma({ mode: 'oklch', l, c, h: tone.h }, 'oklch', 'p3')\n );\n };\n const endpoint = dark ? 'oklch(1 0 0)' : 'oklch(0 0 0)';\n const page = surfaceAt('background', 0);\n const pageMaximum = apcaLc(endpoint, page);\n const surfacePairs = APCA_PAIRS.flatMap(({ bg, tier, backdrop }) =>\n !backdrop && isSurfaceToken(bg) ? [{ bg, tier }] : []\n );\n const fits = (spacing: number) =>\n surfacePairs.every(\n ({ bg, tier }) =>\n apcaLc(endpoint, surfaceAt(bg, spacing)) >=\n (dark\n ? Math.min(contrastTarget(tier, contrast), pageMaximum)\n : TIER_THRESHOLDS[tier])\n );\n const spacing = fits(delta) ? delta : bisect(delta, 0, fits);\n for (const token of SURFACE_TOKENS)\n out[`--nx-color-${token}`] = surfaceAt(token, spacing);\n out['--nx-color-control-thumb'] = 'oklch(1 0 0)';\n return out;\n}\n\n/**\n * Text seed `quiet` of the way from the foreground toward its surface (softer =\n * lower contrast); `quiet = 0` is the foreground itself. The contrast solver\n * moves it back toward the foreground only as far as legibility requires.\n */\nfunction quietText(fg: Oklch, surfaceColor: string, quiet: number): string {\n const surfL = seedOklch(surfaceColor).l ?? 0;\n const fgL = fg.l ?? 0;\n return formatOklch({\n mode: 'oklch',\n l: clamp01(fgL + (surfL - fgL) * quiet),\n c: fg.c ?? 0,\n h: fg.h ?? 0,\n });\n}\n\n/** Each text token: the surface it sits on and how quiet to aim. */\nconst TEXT_ON: Record<string, { surface: string; quiet: number }> = {\n 'container-foreground': { surface: '--nx-color-container', quiet: 0 },\n 'popover-foreground': { surface: '--nx-color-popover', quiet: 0 },\n 'nav-foreground': { surface: '--nx-color-nav-background', quiet: 0 },\n 'nav-muted-foreground': { surface: '--nx-color-nav-background', quiet: 0.4 },\n 'disabled-foreground': { surface: '--nx-color-disabled', quiet: 0.5 },\n 'muted-foreground': { surface: '--nx-color-background', quiet: 0.5 },\n 'muted-foreground-subtle': { surface: '--nx-color-background', quiet: 0.6 },\n};\n\n/** Text seeds; the contrast solver makes them legible on every registered background. */\nexport function deriveText(\n foregroundHex: string,\n surfaces: TokenMap,\n mode: Mode\n): TokenMap {\n const fg = seedOklch(foregroundHex);\n // A fixed light reference keeps text strength independent of moving surfaces.\n const textSurface = (name: string) =>\n mode === 'light' ? WHITE_BASE : (surfaces[name] ?? foregroundHex);\n const out: TokenMap = { '--nx-color-foreground': formatOklch(fg) };\n for (const [token, { surface, quiet }] of Object.entries(TEXT_ON))\n out[`--nx-color-${token}`] = quietText(fg, textSurface(surface), quiet);\n return out;\n}\n\n/**\n * Fill, subtle, and border seeds for a named color family. The contrast solver\n * adds the black/white `-foreground` label and resolves `-subtle-foreground`.\n */\nexport function deriveFamily(\n name: string,\n ramp: Readonly<Record<Shade, string>>,\n mode: Mode\n): TokenMap {\n const dark = mode === 'dark';\n const p = `--nx-color-${name}`;\n const activeBorderToken =\n name in STATUS_PALETTE_FAMILIES\n ? `--nx-color-border-${name}-active`\n : `${p}-border-active`;\n return {\n [`${p}-background`]: ramp['600'],\n [`${p}-background-hover`]: ramp['700'],\n [`${p}-background-active`]: ramp['800'],\n [`${p}-disabled`]: dark ? ramp['950'] : ramp['300'],\n [`${p}-subtle`]: dark ? ramp['950'] : ramp['50'],\n [`${p}-subtle-foreground`]: dark ? ramp['300'] : ramp['600'],\n [`${p}-subtle-hover`]: dark ? ramp['900'] : ramp['100'],\n [`${p}-subtle-active`]: dark ? ramp['800'] : ramp['200'],\n [`${p}-border`]: dark ? ramp['700'] : ramp['200'],\n [activeBorderToken]: dark ? ramp['500'] : ramp['400'],\n };\n}\n\nfunction deriveStatus(mode: Mode): TokenMap {\n return Object.assign(\n {},\n ...Object.entries(STATUS_PALETTE_FAMILIES).map(([family, palette]) =>\n deriveFamily(family, getPaletteRamp(palette), mode)\n )\n );\n}\n\nfunction deriveChart(mode: Mode): TokenMap {\n return Object.fromEntries(\n CHART_PALETTE_REFERENCES.map((reference, index) => [\n `--nx-color-chart-categorical-${index + 1}`,\n getPaletteShade(reference.palette, reference[mode]),\n ])\n );\n}\n\nfunction deriveAlpha(\n surfaceTone: NxdsSurfaceTone,\n mode: Mode,\n profile: ContrastProfile\n): TokenMap {\n const tone = SURFACE_TONE[surfaceTone];\n const dark = mode === 'dark';\n const toneInk = (alpha: number) =>\n formatOklch({ mode: 'oklch', l: 0.13, c: tone.darkC, h: tone.h, alpha });\n const contrastInk = (alpha: number) =>\n formatOklch({ mode: 'oklch', l: dark ? 1 : 0.1448, c: 0, h: 0, alpha });\n\n return {\n '--nx-color-overlay': toneInk(dark ? 0.8471 : 0.7529),\n '--nx-color-popover-backdrop': toneInk(0.9098),\n '--nx-color-border-default-alpha': toneInk(profile.borderAlpha),\n '--nx-color-background-hover-alpha': toneInk(profile.hoverAlpha),\n '--nx-color-border-hairline': contrastInk(0.0941),\n '--nx-color-border-default': contrastInk(profile.borderAlpha),\n '--nx-color-border-disabled': contrastInk(profile.borderAlpha),\n };\n}\n\n// P3 cusp gamut for the solid fill, matching the perceptual ramp's emit target.\nconst FILL_GAMUT = 'p3';\n// The primary fill follows the brand seed's own lightness rather than a fixed\n// mid-tone shade, so the button *is* the chosen color: a deep navy stays deep\n// navy, and #000 stays black. Light mode honors the seed directly, capped so a\n// near-white brand still reads as a filled button. Dark mode honors light/mid\n// seeds but lifts dark ones toward light — so a black brand becomes a white\n// button that stays legible on a dark surface.\nconst PRIMARY_FILL_LIGHT_CAP = 0.85;\nconst PRIMARY_DARK_ENDPOINT_LIFT_FLOOR = 0.16;\nconst PRIMARY_LIGHT_ENDPOINT_CEIL = 0.99;\nconst PRIMARY_DARK_HONOR_FLOOR = 0.45;\nconst PRIMARY_DARK_LIFT_EXPONENT = 1.6;\nconst PRIMARY_HOVER_STEP = 0.05;\nconst PRIMARY_ACTIVE_STEP = 0.1;\nconst PRIMARY_ACTIVE_DARK_FILL_STEP = 0.03;\n// Endpoint brand interactions follow the same authored Neutral palette as secondary fills.\nconst endpointL = (shade: Shade): number =>\n seedOklch(getPaletteShade('neutral', shade)).l ?? 0;\n\nfunction primaryFillLightness(seedL: number, mode: Mode): number {\n if (mode === 'light') return clamp01(Math.min(seedL, PRIMARY_FILL_LIGHT_CAP));\n if (seedL <= PRIMARY_DARK_ENDPOINT_LIFT_FLOOR) return 1;\n if (seedL >= PRIMARY_DARK_HONOR_FLOOR) return clamp01(seedL);\n // Below the floor, lift toward white so a dark seed stays legible on a dark\n // surface. The coefficient is `1 - floor` so the curve meets the honor branch\n // exactly at the floor (continuous, no jump); the exponent shapes how hard\n // near-black seeds push toward white.\n const t = seedL / PRIMARY_DARK_HONOR_FLOOR;\n return clamp01(\n 1 - (1 - PRIMARY_DARK_HONOR_FLOOR) * Math.pow(t, PRIMARY_DARK_LIFT_EXPONENT)\n );\n}\n\n// Hover/active nudge the fill toward mid-grey so the state change reads at any\n// fill lightness: dark fills lighten, light fills darken.\nconst towardMid = (l: number, step: number): number =>\n clamp01(l < 0.5 ? l + step : l - step);\n\nconst seedFill = (l: number, c: number, h: number): string =>\n formatOklch(clampChroma({ mode: 'oklch', l, c, h }, 'oklch', FILL_GAMUT));\n\nfunction hoverFillTarget(baseL: number): number {\n if (baseL <= PRIMARY_DARK_ENDPOINT_LIFT_FLOOR) {\n return endpointL('900');\n }\n if (baseL >= PRIMARY_LIGHT_ENDPOINT_CEIL) return endpointL('100');\n return towardMid(baseL, PRIMARY_HOVER_STEP);\n}\n\nfunction activeFillTarget(baseL: number): number {\n if (baseL <= PRIMARY_DARK_ENDPOINT_LIFT_FLOOR) {\n return endpointL('950');\n }\n if (baseL >= PRIMARY_LIGHT_ENDPOINT_CEIL) return endpointL('200');\n return clamp01(\n baseL < 0.5\n ? baseL - PRIMARY_ACTIVE_DARK_FILL_STEP\n : baseL - PRIMARY_ACTIVE_STEP\n );\n}\n\n/**\n * Primary family seeds from one accent. Supporting shades (subtle, borders,\n * disabled) come from the seed ramp via {@link deriveFamily}; the solid fills\n * follow the seed's own lightness, and the contrast solver moves any fill its\n * label can't read on.\n */\nexport function derivePrimary(accentHex: string, mode: Mode): TokenMap {\n const seed = seedOklch(accentHex);\n const h = seed.h ?? 0;\n const c = seed.c ?? 0;\n const fillL = primaryFillLightness(seed.l ?? 0, mode);\n return {\n ...deriveFamily('primary', rampFromSeed(accentHex), mode),\n '--nx-color-primary-background': seedFill(fillL, c, h),\n '--nx-color-primary-background-hover': seedFill(\n hoverFillTarget(fillL),\n c,\n h\n ),\n '--nx-color-primary-background-active': seedFill(\n activeFillTarget(fillL),\n c,\n h\n ),\n };\n}\n\nexport function deriveSecondary(mode: Mode): TokenMap {\n const d = mode === 'dark';\n const n = getPaletteRamp('neutral');\n return {\n '--nx-color-secondary-background': d ? n['900'] : n['100'],\n '--nx-color-secondary-background-hover': d ? n['700'] : n['200'],\n '--nx-color-secondary-background-active': d ? n['600'] : n['300'],\n '--nx-color-secondary-foreground': d ? n['100'] : n['900'],\n '--nx-color-secondary-disabled': d ? n['950'] : n['50'],\n '--nx-color-secondary-subtle': d ? n['800'] : n['100'],\n '--nx-color-secondary-subtle-foreground': d ? n['200'] : n['600'],\n '--nx-color-secondary-subtle-hover': d ? n['700'] : n['200'],\n '--nx-color-secondary-subtle-active': d ? n['600'] : n['300'],\n };\n}\n\nconst gamutColor = (value: string): string =>\n formatOklch(clampChroma(seedOklch(value), 'oklch', 'p3'));\n\n// Text in each mode is capped at the opposite mode's surface chroma: light ink\n// in dark mode sits closest to the light surfaces' tint, and vice versa.\nconst textChromaCap = (surfaceTone: NxdsSurfaceTone, mode: Mode): number =>\n mode === 'dark'\n ? SURFACE_TONE[surfaceTone].lightC\n : SURFACE_TONE[surfaceTone].darkC;\n\n/** Derive one mode's `--nx-color-*` map, so callers can cache each mode independently. */\nexport function deriveThemeMode(\n input: ThemeDerivationInput,\n mode: Mode\n): TokenMap {\n const surfaceTone = input.surfaceTone ?? 'neutral';\n const seeds = input[mode];\n const contrast = normalizeContrast(input.contrast[mode]);\n const profile = contrastProfile(mode, contrast);\n const surfaces = deriveSurfaces(\n seeds.background,\n surfaceTone,\n mode,\n profile.surfaceDelta,\n contrast\n );\n let foreground = seeds.foreground;\n if (surfaceTone !== 'neutral') {\n const ink = seedOklch(foreground);\n foreground = formatOklch({\n ...ink,\n c: Math.min(ink.c, textChromaCap(surfaceTone, mode)),\n });\n }\n const candidates = {\n ...deriveText(foreground, surfaces, mode),\n ...derivePrimary(seeds.accent, mode),\n ...deriveSecondary(mode),\n ...deriveStatus(mode),\n ...deriveChart(mode),\n ...deriveAlpha(surfaceTone, mode, profile),\n '--nx-color-focus-error': getPaletteShade(\n STATUS_PALETTE_FAMILIES.error,\n mode === 'dark' ? '300' : '600'\n ),\n };\n const map = { ...surfaces };\n for (const [name, value] of Object.entries(candidates))\n map[name] = gamutColor(value);\n const popover = surfaces['--nx-color-popover'];\n if (!popover) throw new Error('deriveThemeMode: missing popover surface');\n map['--nx-color-popover-alpha'] = formatOklch({\n ...seedOklch(popover),\n alpha: 0.94 + (0.06 * contrast) / 100,\n });\n return constrainColors(map, mode, contrast);\n}\n\n/**\n * Expand derivation seeds into light + dark `--nx-color-*` maps. Both modes are\n * always derived; the consumer's `appearance` choice selects one at runtime.\n * Only tokens the engine computes are emitted (surfaces, text, borders, primary,\n * secondary, status, chart, alpha/translucent, focus).\n */\nexport function deriveTheme(input: ThemeDerivationInput): DerivedTheme {\n return {\n light: deriveThemeMode(input, 'light'),\n dark: deriveThemeMode(input, 'dark'),\n };\n}\n\nfunction block(selector: string, map: TokenMap): string {\n const body = Object.entries(map)\n .map(([key, value]) => ` ${key}: ${value};`)\n .join('\\n');\n return `${selector} {\\n${body}\\n}`;\n}\n\n/**\n * Serialize a derived theme to CSS text in the runtime layer — light on\n * `:root`, dark on `:root.dark`.\n */\nexport function themeToCss(derived: DerivedTheme): string {\n return inRuntimeLayer(\n `${block(':root', derived.light)}\\n${block(':root.dark', derived.dark)}`\n );\n}\n","{\n \"green\": {\n \"50\": {\n \"$value\": \"#f1f7ef\",\n \"$type\": \"color\"\n },\n \"100\": {\n \"$value\": \"#e6f3e3\",\n \"$type\": \"color\"\n },\n \"200\": {\n \"$value\": \"#cce2c7\",\n \"$type\": \"color\"\n },\n \"300\": {\n \"$value\": \"#a6c99e\",\n \"$type\": \"color\"\n },\n \"400\": {\n \"$value\": \"#7fb175\",\n \"$type\": \"color\"\n },\n \"500\": {\n \"$value\": \"#569947\",\n \"$type\": \"color\"\n },\n \"600\": {\n \"$value\": \"#3f7932\",\n \"$type\": \"color\"\n },\n \"700\": {\n \"$value\": \"#306424\",\n \"$type\": \"color\"\n },\n \"800\": {\n \"$value\": \"#264d1c\",\n \"$type\": \"color\"\n },\n \"900\": {\n \"$value\": \"#1e3b17\",\n \"$type\": \"color\"\n },\n \"950\": {\n \"$value\": \"#12250d\",\n \"$type\": \"color\"\n }\n },\n \"emerald\": {\n \"50\": {\n \"$value\": \"#ecfdf5\",\n \"$type\": \"color\"\n },\n \"100\": {\n \"$value\": \"#d1fae5\",\n \"$type\": \"color\"\n },\n \"200\": {\n \"$value\": \"#a7f3d0\",\n \"$type\": \"color\"\n },\n \"300\": {\n \"$value\": \"#6ee7b7\",\n \"$type\": \"color\"\n },\n \"400\": {\n \"$value\": \"#34d399\",\n \"$type\": \"color\"\n },\n \"500\": {\n \"$value\": \"#10b981\",\n \"$type\": \"color\"\n },\n \"600\": {\n \"$value\": \"#059669\",\n \"$type\": \"color\"\n },\n \"700\": {\n \"$value\": \"#047857\",\n \"$type\": \"color\"\n },\n \"800\": {\n \"$value\": \"#065f46\",\n \"$type\": \"color\"\n },\n \"900\": {\n \"$value\": \"#064e3b\",\n \"$type\": \"color\"\n },\n \"950\": {\n \"$value\": \"#022c22\",\n \"$type\": \"color\"\n }\n },\n \"teal\": {\n \"50\": {\n \"$value\": \"#f0fdfa\",\n \"$type\": \"color\"\n },\n \"100\": {\n \"$value\": \"#ccfbf1\",\n \"$type\": \"color\"\n },\n \"200\": {\n \"$value\": \"#99f6e4\",\n \"$type\": \"color\"\n },\n \"300\": {\n \"$value\": \"#5eead4\",\n \"$type\": \"color\"\n },\n \"400\": {\n \"$value\": \"#2dd4bf\",\n \"$type\": \"color\"\n },\n \"500\": {\n \"$value\": \"#14b8a6\",\n \"$type\": \"color\"\n },\n \"600\": {\n \"$value\": \"#0d9488\",\n \"$type\": \"color\"\n },\n \"700\": {\n \"$value\": \"#0f766e\",\n \"$type\": \"color\"\n },\n \"800\": {\n \"$value\": \"#115e59\",\n \"$type\": \"color\"\n },\n \"900\": {\n \"$value\": \"#134e4a\",\n \"$type\": \"color\"\n },\n \"950\": {\n \"$value\": \"#042f2e\",\n \"$type\": \"color\"\n }\n },\n \"cyan\": {\n \"50\": {\n \"$value\": \"#ecfeff\",\n \"$type\": \"color\"\n },\n \"100\": {\n \"$value\": \"#cffafe\",\n \"$type\": \"color\"\n },\n \"200\": {\n \"$value\": \"#a5f3fc\",\n \"$type\": \"color\"\n },\n \"300\": {\n \"$value\": \"#67e8f9\",\n \"$type\": \"color\"\n },\n \"400\": {\n \"$value\": \"#22d3ee\",\n \"$type\": \"color\"\n },\n \"500\": {\n \"$value\": \"#06b6d4\",\n \"$type\": \"color\"\n },\n \"600\": {\n \"$value\": \"#0891b2\",\n \"$type\": \"color\"\n },\n \"700\": {\n \"$value\": \"#0e7490\",\n \"$type\": \"color\"\n },\n \"800\": {\n \"$value\": \"#155e75\",\n \"$type\": \"color\"\n },\n \"900\": {\n \"$value\": \"#164e63\",\n \"$type\": \"color\"\n },\n \"950\": {\n \"$value\": \"#083344\",\n \"$type\": \"color\"\n }\n },\n \"sky\": {\n \"50\": {\n \"$value\": \"#f0f9ff\",\n \"$type\": \"color\"\n },\n \"100\": {\n \"$value\": \"#e0f2fe\",\n \"$type\": \"color\"\n },\n \"200\": {\n \"$value\": \"#bae6fd\",\n \"$type\": \"color\"\n },\n \"300\": {\n \"$value\": \"#7dd3fc\",\n \"$type\": \"color\"\n },\n \"400\": {\n \"$value\": \"#38bdf8\",\n \"$type\": \"color\"\n },\n \"500\": {\n \"$value\": \"#0ea5e9\",\n \"$type\": \"color\"\n },\n \"600\": {\n \"$value\": \"#0284c7\",\n \"$type\": \"color\"\n },\n \"700\": {\n \"$value\": \"#0369a1\",\n \"$type\": \"color\"\n },\n \"800\": {\n \"$value\": \"#075985\",\n \"$type\": \"color\"\n },\n \"900\": {\n \"$value\": \"#0c4a6e\",\n \"$type\": \"color\"\n },\n \"950\": {\n \"$value\": \"#082f49\",\n \"$type\": \"color\"\n }\n },\n \"indigo\": {\n \"50\": {\n \"$value\": \"#eef2ff\",\n \"$type\": \"color\"\n },\n \"100\": {\n \"$value\": \"#e0e7ff\",\n \"$type\": \"color\"\n },\n \"200\": {\n \"$value\": \"#c7d2fe\",\n \"$type\": \"color\"\n },\n \"300\": {\n \"$value\": \"#a5b4fc\",\n \"$type\": \"color\"\n },\n \"400\": {\n \"$value\": \"#818cf8\",\n \"$type\": \"color\"\n },\n \"500\": {\n \"$value\": \"#6366f1\",\n \"$type\": \"color\"\n },\n \"600\": {\n \"$value\": \"#4f46e5\",\n \"$type\": \"color\"\n },\n \"700\": {\n \"$value\": \"#4338ca\",\n \"$type\": \"color\"\n },\n \"800\": {\n \"$value\": \"#3730a3\",\n \"$type\": \"color\"\n },\n \"900\": {\n \"$value\": \"#312e81\",\n \"$type\": \"color\"\n },\n \"950\": {\n \"$value\": \"#1e1b4b\",\n \"$type\": \"color\"\n }\n },\n \"violet\": {\n \"50\": {\n \"$value\": \"#f5f3ff\",\n \"$type\": \"color\"\n },\n \"100\": {\n \"$value\": \"#ede9fe\",\n \"$type\": \"color\"\n },\n \"200\": {\n \"$value\": \"#ddd6fe\",\n \"$type\": \"color\"\n },\n \"300\": {\n \"$value\": \"#c4b5fd\",\n \"$type\": \"color\"\n },\n \"400\": {\n \"$value\": \"#a78bfa\",\n \"$type\": \"color\"\n },\n \"500\": {\n \"$value\": \"#8b5cf6\",\n \"$type\": \"color\"\n },\n \"600\": {\n \"$value\": \"#7c3aed\",\n \"$type\": \"color\"\n },\n \"700\": {\n \"$value\": \"#6d28d9\",\n \"$type\": \"color\"\n },\n \"800\": {\n \"$value\": \"#5b21b6\",\n \"$type\": \"color\"\n },\n \"900\": {\n \"$value\": \"#4c1d95\",\n \"$type\": \"color\"\n },\n \"950\": {\n \"$value\": \"#2e1065\",\n \"$type\": \"color\"\n }\n },\n \"purple\": {\n \"50\": {\n \"$value\": \"#faf5ff\",\n \"$type\": \"color\"\n },\n \"100\": {\n \"$value\": \"#f3e8ff\",\n \"$type\": \"color\"\n },\n \"200\": {\n \"$value\": \"#e9d5ff\",\n \"$type\": \"color\"\n },\n \"300\": {\n \"$value\": \"#d8b4fe\",\n \"$type\": \"color\"\n },\n \"400\": {\n \"$value\": \"#c084fc\",\n \"$type\": \"color\"\n },\n \"500\": {\n \"$value\": \"#a855f7\",\n \"$type\": \"color\"\n },\n \"600\": {\n \"$value\": \"#9333ea\",\n \"$type\": \"color\"\n },\n \"700\": {\n \"$value\": \"#7e22ce\",\n \"$type\": \"color\"\n },\n \"800\": {\n \"$value\": \"#6b21a8\",\n \"$type\": \"color\"\n },\n \"900\": {\n \"$value\": \"#581c87\",\n \"$type\": \"color\"\n },\n \"950\": {\n \"$value\": \"#3b0764\",\n \"$type\": \"color\"\n }\n },\n \"fuchsia\": {\n \"50\": {\n \"$value\": \"#fdf4ff\",\n \"$type\": \"color\"\n },\n \"100\": {\n \"$value\": \"#fae8ff\",\n \"$type\": \"color\"\n },\n \"200\": {\n \"$value\": \"#f5d0fe\",\n \"$type\": \"color\"\n },\n \"300\": {\n \"$value\": \"#f0abfc\",\n \"$type\": \"color\"\n },\n \"400\": {\n \"$value\": \"#e879f9\",\n \"$type\": \"color\"\n },\n \"500\": {\n \"$value\": \"#d946ef\",\n \"$type\": \"color\"\n },\n \"600\": {\n \"$value\": \"#c026d3\",\n \"$type\": \"color\"\n },\n \"700\": {\n \"$value\": \"#a21caf\",\n \"$type\": \"color\"\n },\n \"800\": {\n \"$value\": \"#86198f\",\n \"$type\": \"color\"\n },\n \"900\": {\n \"$value\": \"#701a75\",\n \"$type\": \"color\"\n },\n \"950\": {\n \"$value\": \"#4a044e\",\n \"$type\": \"color\"\n }\n },\n \"pink\": {\n \"50\": {\n \"$value\": \"#fdf2f8\",\n \"$type\": \"color\"\n },\n \"100\": {\n \"$value\": \"#fce7f3\",\n \"$type\": \"color\"\n },\n \"200\": {\n \"$value\": \"#fbcfe8\",\n \"$type\": \"color\"\n },\n \"300\": {\n \"$value\": \"#f9a8d4\",\n \"$type\": \"color\"\n },\n \"400\": {\n \"$value\": \"#f472b6\",\n \"$type\": \"color\"\n },\n \"500\": {\n \"$value\": \"#ec4899\",\n \"$type\": \"color\"\n },\n \"600\": {\n \"$value\": \"#db2777\",\n \"$type\": \"color\"\n },\n \"700\": {\n \"$value\": \"#be185d\",\n \"$type\": \"color\"\n },\n \"800\": {\n \"$value\": \"#9d174d\",\n \"$type\": \"color\"\n },\n \"900\": {\n \"$value\": \"#831843\",\n \"$type\": \"color\"\n },\n \"950\": {\n \"$value\": \"#500724\",\n \"$type\": \"color\"\n }\n },\n \"slate\": {\n \"50\": {\n \"$value\": \"#f8fafc\",\n \"$type\": \"color\"\n },\n \"75\": {\n \"$value\": \"#f2f6fa\",\n \"$type\": \"color\"\n },\n \"100\": {\n \"$value\": \"#f1f5f9\",\n \"$type\": \"color\"\n },\n \"150\": {\n \"$value\": \"#e0e6ee\",\n \"$type\": \"color\"\n },\n \"200\": {\n \"$value\": \"#e2e8f0\",\n \"$type\": \"color\"\n },\n \"300\": {\n \"$value\": \"#cbd5e1\",\n \"$type\": \"color\"\n },\n \"400\": {\n \"$value\": \"#90a1b9\",\n \"$type\": \"color\"\n },\n \"500\": {\n \"$value\": \"#62748e\",\n \"$type\": \"color\"\n },\n \"600\": {\n \"$value\": \"#45556c\",\n \"$type\": \"color\"\n },\n \"700\": {\n \"$value\": \"#314158\",\n \"$type\": \"color\"\n },\n \"800\": {\n \"$value\": \"#1d293d\",\n \"$type\": \"color\"\n },\n \"900\": {\n \"$value\": \"#0f172a\",\n \"$type\": \"color\"\n },\n \"950\": {\n \"$value\": \"#020617\",\n \"$type\": \"color\"\n },\n \"a50\": {\n \"$value\": \"#0206170a\",\n \"$type\": \"color\"\n },\n \"a100\": {\n \"$value\": \"#02061710\",\n \"$type\": \"color\"\n },\n \"a200\": {\n \"$value\": \"#02061718\",\n \"$type\": \"color\"\n },\n \"a300\": {\n \"$value\": \"#02061730\",\n \"$type\": \"color\"\n },\n \"a400\": {\n \"$value\": \"#02061750\",\n \"$type\": \"color\"\n },\n \"a500\": {\n \"$value\": \"#02061780\",\n \"$type\": \"color\"\n },\n \"a600\": {\n \"$value\": \"#020617a0\",\n \"$type\": \"color\"\n },\n \"a700\": {\n \"$value\": \"#020617c0\",\n \"$type\": \"color\"\n },\n \"a800\": {\n \"$value\": \"#020617d8\",\n \"$type\": \"color\"\n },\n \"a900\": {\n \"$value\": \"#020617e8\",\n \"$type\": \"color\"\n },\n \"a950\": {\n \"$value\": \"#020617f4\",\n \"$type\": \"color\"\n }\n },\n \"rose\": {\n \"50\": {\n \"$value\": \"#fff1f2\",\n \"$type\": \"color\"\n },\n \"100\": {\n \"$value\": \"#ffe4e6\",\n \"$type\": \"color\"\n },\n \"200\": {\n \"$value\": \"#fecdd3\",\n \"$type\": \"color\"\n },\n \"300\": {\n \"$value\": \"#fda4af\",\n \"$type\": \"color\"\n },\n \"400\": {\n \"$value\": \"#fb7185\",\n \"$type\": \"color\"\n },\n \"500\": {\n \"$value\": \"#f43f5e\",\n \"$type\": \"color\"\n },\n \"600\": {\n \"$value\": \"#e11d48\",\n \"$type\": \"color\"\n },\n \"700\": {\n \"$value\": \"#be123c\",\n \"$type\": \"color\"\n },\n \"800\": {\n \"$value\": \"#9f1239\",\n \"$type\": \"color\"\n },\n \"900\": {\n \"$value\": \"#881337\",\n \"$type\": \"color\"\n },\n \"950\": {\n \"$value\": \"#4c0519\",\n \"$type\": \"color\"\n }\n },\n \"lime\": {\n \"50\": {\n \"$value\": \"#f7fee7\",\n \"$type\": \"color\"\n },\n \"100\": {\n \"$value\": \"#ecfccb\",\n \"$type\": \"color\"\n },\n \"200\": {\n \"$value\": \"#d9f99d\",\n \"$type\": \"color\"\n },\n \"300\": {\n \"$value\": \"#bef264\",\n \"$type\": \"color\"\n },\n \"400\": {\n \"$value\": \"#a3e635\",\n \"$type\": \"color\"\n },\n \"500\": {\n \"$value\": \"#84cc16\",\n \"$type\": \"color\"\n },\n \"600\": {\n \"$value\": \"#65a30d\",\n \"$type\": \"color\"\n },\n \"700\": {\n \"$value\": \"#4d7c0f\",\n \"$type\": \"color\"\n },\n \"800\": {\n \"$value\": \"#3f6212\",\n \"$type\": \"color\"\n },\n \"900\": {\n \"$value\": \"#365314\",\n \"$type\": \"color\"\n },\n \"950\": {\n \"$value\": \"#1a2e05\",\n \"$type\": \"color\"\n }\n },\n \"yellow\": {\n \"50\": {\n \"$value\": \"#fefce8\",\n \"$type\": \"color\"\n },\n \"100\": {\n \"$value\": \"#fef9c3\",\n \"$type\": \"color\"\n },\n \"200\": {\n \"$value\": \"#fef08a\",\n \"$type\": \"color\"\n },\n \"300\": {\n \"$value\": \"#fde047\",\n \"$type\": \"color\"\n },\n \"400\": {\n \"$value\": \"#facc15\",\n \"$type\": \"color\"\n },\n \"500\": {\n \"$value\": \"#eab308\",\n \"$type\": \"color\"\n },\n \"600\": {\n \"$value\": \"#ca8a04\",\n \"$type\": \"color\"\n },\n \"700\": {\n \"$value\": \"#a16207\",\n \"$type\": \"color\"\n },\n \"800\": {\n \"$value\": \"#854d0e\",\n \"$type\": \"color\"\n },\n \"900\": {\n \"$value\": \"#713f12\",\n \"$type\": \"color\"\n },\n \"950\": {\n \"$value\": \"#422006\",\n \"$type\": \"color\"\n }\n },\n \"blue\": {\n \"50\": {\n \"$value\": \"#f1f6fc\",\n \"$type\": \"color\"\n },\n \"100\": {\n \"$value\": \"#e6effc\",\n \"$type\": \"color\"\n },\n \"200\": {\n \"$value\": \"#c4daf5\",\n \"$type\": \"color\"\n },\n \"300\": {\n \"$value\": \"#9dc1ee\",\n \"$type\": \"color\"\n },\n \"400\": {\n \"$value\": \"#71a1df\",\n \"$type\": \"color\"\n },\n \"500\": {\n \"$value\": \"#3d7bc8\",\n \"$type\": \"color\"\n },\n \"600\": {\n \"$value\": \"#2863ab\",\n \"$type\": \"color\"\n },\n \"700\": {\n \"$value\": \"#184f90\",\n \"$type\": \"color\"\n },\n \"800\": {\n \"$value\": \"#113d70\",\n \"$type\": \"color\"\n },\n \"900\": {\n \"$value\": \"#0d2e55\",\n \"$type\": \"color\"\n },\n \"950\": {\n \"$value\": \"#051a36\",\n \"$type\": \"color\"\n }\n },\n \"gray\": {\n \"50\": {\n \"$value\": \"#f9fafb\",\n \"$type\": \"color\"\n },\n \"75\": {\n \"$value\": \"#f4f5f7\",\n \"$type\": \"color\"\n },\n \"100\": {\n \"$value\": \"#f3f4f6\",\n \"$type\": \"color\"\n },\n \"150\": {\n \"$value\": \"#e3e5e9\",\n \"$type\": \"color\"\n },\n \"200\": {\n \"$value\": \"#e5e7eb\",\n \"$type\": \"color\"\n },\n \"300\": {\n \"$value\": \"#d1d5db\",\n \"$type\": \"color\"\n },\n \"400\": {\n \"$value\": \"#99a1af\",\n \"$type\": \"color\"\n },\n \"500\": {\n \"$value\": \"#6a7282\",\n \"$type\": \"color\"\n },\n \"600\": {\n \"$value\": \"#4a5565\",\n \"$type\": \"color\"\n },\n \"700\": {\n \"$value\": \"#364153\",\n \"$type\": \"color\"\n },\n \"800\": {\n \"$value\": \"#1e2939\",\n \"$type\": \"color\"\n },\n \"900\": {\n \"$value\": \"#111827\",\n \"$type\": \"color\"\n },\n \"950\": {\n \"$value\": \"#030712\",\n \"$type\": \"color\"\n },\n \"a50\": {\n \"$value\": \"#0307120a\",\n \"$type\": \"color\"\n },\n \"a100\": {\n \"$value\": \"#03071210\",\n \"$type\": \"color\"\n },\n \"a200\": {\n \"$value\": \"#03071218\",\n \"$type\": \"color\"\n },\n \"a300\": {\n \"$value\": \"#03071230\",\n \"$type\": \"color\"\n },\n \"a400\": {\n \"$value\": \"#03071250\",\n \"$type\": \"color\"\n },\n \"a500\": {\n \"$value\": \"#03071280\",\n \"$type\": \"color\"\n },\n \"a600\": {\n \"$value\": \"#030712a0\",\n \"$type\": \"color\"\n },\n \"a700\": {\n \"$value\": \"#030712c0\",\n \"$type\": \"color\"\n },\n \"a800\": {\n \"$value\": \"#030712d8\",\n \"$type\": \"color\"\n },\n \"a900\": {\n \"$value\": \"#030712e8\",\n \"$type\": \"color\"\n },\n \"a950\": {\n \"$value\": \"#030712f4\",\n \"$type\": \"color\"\n }\n },\n \"zinc\": {\n \"50\": {\n \"$value\": \"#fafafa\",\n \"$type\": \"color\"\n },\n \"75\": {\n \"$value\": \"#f5f5f6\",\n \"$type\": \"color\"\n },\n \"100\": {\n \"$value\": \"#f4f4f5\",\n \"$type\": \"color\"\n },\n \"150\": {\n \"$value\": \"#e4e6e8\",\n \"$type\": \"color\"\n },\n \"200\": {\n \"$value\": \"#e3e5e7\",\n \"$type\": \"color\"\n },\n \"300\": {\n \"$value\": \"#d2d5d8\",\n \"$type\": \"color\"\n },\n \"400\": {\n \"$value\": \"#9f9fa9\",\n \"$type\": \"color\"\n },\n \"500\": {\n \"$value\": \"#71717b\",\n \"$type\": \"color\"\n },\n \"600\": {\n \"$value\": \"#52525c\",\n \"$type\": \"color\"\n },\n \"700\": {\n \"$value\": \"#3f3f46\",\n \"$type\": \"color\"\n },\n \"800\": {\n \"$value\": \"#26272a\",\n \"$type\": \"color\"\n },\n \"900\": {\n \"$value\": \"#17181b\",\n \"$type\": \"color\"\n },\n \"950\": {\n \"$value\": \"#08090b\",\n \"$type\": \"color\"\n },\n \"a50\": {\n \"$value\": \"#08090b0a\",\n \"$type\": \"color\"\n },\n \"a100\": {\n \"$value\": \"#08090b10\",\n \"$type\": \"color\"\n },\n \"a200\": {\n \"$value\": \"#08090b18\",\n \"$type\": \"color\"\n },\n \"a300\": {\n \"$value\": \"#08090b30\",\n \"$type\": \"color\"\n },\n \"a400\": {\n \"$value\": \"#08090b50\",\n \"$type\": \"color\"\n },\n \"a500\": {\n \"$value\": \"#08090b80\",\n \"$type\": \"color\"\n },\n \"a600\": {\n \"$value\": \"#08090ba0\",\n \"$type\": \"color\"\n },\n \"a700\": {\n \"$value\": \"#08090bc0\",\n \"$type\": \"color\"\n },\n \"a800\": {\n \"$value\": \"#08090bd8\",\n \"$type\": \"color\"\n },\n \"a900\": {\n \"$value\": \"#08090be8\",\n \"$type\": \"color\"\n },\n \"a950\": {\n \"$value\": \"#08090bf4\",\n \"$type\": \"color\"\n }\n },\n \"neutral\": {\n \"50\": {\n \"$value\": \"#fafafa\",\n \"$type\": \"color\"\n },\n \"75\": {\n \"$value\": \"#f5f5f5\",\n \"$type\": \"color\"\n },\n \"100\": {\n \"$value\": \"#f5f5f5\",\n \"$type\": \"color\"\n },\n \"150\": {\n \"$value\": \"#e5e5e5\",\n \"$type\": \"color\"\n },\n \"200\": {\n \"$value\": \"#e5e5e5\",\n \"$type\": \"color\"\n },\n \"300\": {\n \"$value\": \"#d4d4d4\",\n \"$type\": \"color\"\n },\n \"400\": {\n \"$value\": \"#a1a1a1\",\n \"$type\": \"color\"\n },\n \"500\": {\n \"$value\": \"#737373\",\n \"$type\": \"color\"\n },\n \"600\": {\n \"$value\": \"#525252\",\n \"$type\": \"color\"\n },\n \"700\": {\n \"$value\": \"#404040\",\n \"$type\": \"color\"\n },\n \"800\": {\n \"$value\": \"#262626\",\n \"$type\": \"color\"\n },\n \"900\": {\n \"$value\": \"#171717\",\n \"$type\": \"color\"\n },\n \"950\": {\n \"$value\": \"#0a0a0a\",\n \"$type\": \"color\"\n },\n \"a50\": {\n \"$value\": \"#0a0a0a0a\",\n \"$type\": \"color\"\n },\n \"a100\": {\n \"$value\": \"#0a0a0a10\",\n \"$type\": \"color\"\n },\n \"a200\": {\n \"$value\": \"#0a0a0a18\",\n \"$type\": \"color\"\n },\n \"a300\": {\n \"$value\": \"#0a0a0a30\",\n \"$type\": \"color\"\n },\n \"a400\": {\n \"$value\": \"#0a0a0a50\",\n \"$type\": \"color\"\n },\n \"a500\": {\n \"$value\": \"#0a0a0a80\",\n \"$type\": \"color\"\n },\n \"a600\": {\n \"$value\": \"#0a0a0aa0\",\n \"$type\": \"color\"\n },\n \"a700\": {\n \"$value\": \"#0a0a0ac0\",\n \"$type\": \"color\"\n },\n \"a800\": {\n \"$value\": \"#0a0a0ad8\",\n \"$type\": \"color\"\n },\n \"a900\": {\n \"$value\": \"#0a0a0ae8\",\n \"$type\": \"color\"\n },\n \"a950\": {\n \"$value\": \"#0a0a0af4\",\n \"$type\": \"color\"\n }\n },\n \"stone\": {\n \"50\": {\n \"$value\": \"#fbfaf8\",\n \"$type\": \"color\"\n },\n \"75\": {\n \"$value\": \"#f6f5f2\",\n \"$type\": \"color\"\n },\n \"100\": {\n \"$value\": \"#eeedeb\",\n \"$type\": \"color\"\n },\n \"150\": {\n \"$value\": \"#e7e5e2\",\n \"$type\": \"color\"\n },\n \"200\": {\n \"$value\": \"#d6d4d1\",\n \"$type\": \"color\"\n },\n \"300\": {\n \"$value\": \"#b6b2ad\",\n \"$type\": \"color\"\n },\n \"400\": {\n \"$value\": \"#95928c\",\n \"$type\": \"color\"\n },\n \"500\": {\n \"$value\": \"#75726d\",\n \"$type\": \"color\"\n },\n \"600\": {\n \"$value\": \"#595854\",\n \"$type\": \"color\"\n },\n \"700\": {\n \"$value\": \"#444441\",\n \"$type\": \"color\"\n },\n \"800\": {\n \"$value\": \"#2d2d2d\",\n \"$type\": \"color\"\n },\n \"900\": {\n \"$value\": \"#181818\",\n \"$type\": \"color\"\n },\n \"950\": {\n \"$value\": \"#050505\",\n \"$type\": \"color\"\n },\n \"a50\": {\n \"$value\": \"#0b09040a\",\n \"$type\": \"color\"\n },\n \"a100\": {\n \"$value\": \"#0b090410\",\n \"$type\": \"color\"\n },\n \"a200\": {\n \"$value\": \"#0b090418\",\n \"$type\": \"color\"\n },\n \"a300\": {\n \"$value\": \"#0b090430\",\n \"$type\": \"color\"\n },\n \"a400\": {\n \"$value\": \"#0b090450\",\n \"$type\": \"color\"\n },\n \"a500\": {\n \"$value\": \"#0b090480\",\n \"$type\": \"color\"\n },\n \"a600\": {\n \"$value\": \"#0b0904a0\",\n \"$type\": \"color\"\n },\n \"a700\": {\n \"$value\": \"#0b0904c0\",\n \"$type\": \"color\"\n },\n \"a800\": {\n \"$value\": \"#0b0904d8\",\n \"$type\": \"color\"\n },\n \"a900\": {\n \"$value\": \"#0b0904e8\",\n \"$type\": \"color\"\n },\n \"a950\": {\n \"$value\": \"#0b0904f4\",\n \"$type\": \"color\"\n }\n },\n \"red\": {\n \"50\": {\n \"$value\": \"#fef2f0\",\n \"$type\": \"color\"\n },\n \"100\": {\n \"$value\": \"#fee9e6\",\n \"$type\": \"color\"\n },\n \"200\": {\n \"$value\": \"#facfc9\",\n \"$type\": \"color\"\n },\n \"300\": {\n \"$value\": \"#f0a99f\",\n \"$type\": \"color\"\n },\n \"400\": {\n \"$value\": \"#e58175\",\n \"$type\": \"color\"\n },\n \"500\": {\n \"$value\": \"#d95c50\",\n \"$type\": \"color\"\n },\n \"600\": {\n \"$value\": \"#c13d34\",\n \"$type\": \"color\"\n },\n \"700\": {\n \"$value\": \"#a32d26\",\n \"$type\": \"color\"\n },\n \"800\": {\n \"$value\": \"#7f211b\",\n \"$type\": \"color\"\n },\n \"900\": {\n \"$value\": \"#5f1a15\",\n \"$type\": \"color\"\n },\n \"950\": {\n \"$value\": \"#3d110d\",\n \"$type\": \"color\"\n }\n },\n \"orange\": {\n \"50\": {\n \"$value\": \"#fff7ed\",\n \"$type\": \"color\"\n },\n \"100\": {\n \"$value\": \"#ffedd5\",\n \"$type\": \"color\"\n },\n \"200\": {\n \"$value\": \"#fed7aa\",\n \"$type\": \"color\"\n },\n \"300\": {\n \"$value\": \"#fdba74\",\n \"$type\": \"color\"\n },\n \"400\": {\n \"$value\": \"#fb923c\",\n \"$type\": \"color\"\n },\n \"500\": {\n \"$value\": \"#f97316\",\n \"$type\": \"color\"\n },\n \"600\": {\n \"$value\": \"#ea580c\",\n \"$type\": \"color\"\n },\n \"700\": {\n \"$value\": \"#c2410c\",\n \"$type\": \"color\"\n },\n \"800\": {\n \"$value\": \"#9a3412\",\n \"$type\": \"color\"\n },\n \"900\": {\n \"$value\": \"#7c2d12\",\n \"$type\": \"color\"\n },\n \"950\": {\n \"$value\": \"#431407\",\n \"$type\": \"color\"\n }\n },\n \"amber\": {\n \"50\": {\n \"$value\": \"#faf4ec\",\n \"$type\": \"color\"\n },\n \"100\": {\n \"$value\": \"#f9eddd\",\n \"$type\": \"color\"\n },\n \"200\": {\n \"$value\": \"#efd7b7\",\n \"$type\": \"color\"\n },\n \"300\": {\n \"$value\": \"#e5bd86\",\n \"$type\": \"color\"\n },\n \"400\": {\n \"$value\": \"#d8a354\",\n \"$type\": \"color\"\n },\n \"500\": {\n \"$value\": \"#c88a1e\",\n \"$type\": \"color\"\n },\n \"600\": {\n \"$value\": \"#b37903\",\n \"$type\": \"color\"\n },\n \"700\": {\n \"$value\": \"#946406\",\n \"$type\": \"color\"\n },\n \"800\": {\n \"$value\": \"#764f05\",\n \"$type\": \"color\"\n },\n \"900\": {\n \"$value\": \"#5a3b03\",\n \"$type\": \"color\"\n },\n \"950\": {\n \"$value\": \"#392402\",\n \"$type\": \"color\"\n }\n },\n \"white\": {\n \"base\": {\n \"$value\": \"#ffffff\",\n \"$type\": \"color\"\n },\n \"a50\": {\n \"$value\": \"#ffffff0a\",\n \"$type\": \"color\"\n },\n \"a100\": {\n \"$value\": \"#ffffff10\",\n \"$type\": \"color\"\n },\n \"a200\": {\n \"$value\": \"#ffffff18\",\n \"$type\": \"color\"\n },\n \"a300\": {\n \"$value\": \"#ffffff30\",\n \"$type\": \"color\"\n },\n \"a400\": {\n \"$value\": \"#ffffff50\",\n \"$type\": \"color\"\n },\n \"a500\": {\n \"$value\": \"#ffffff80\",\n \"$type\": \"color\"\n },\n \"a600\": {\n \"$value\": \"#ffffffa0\",\n \"$type\": \"color\"\n },\n \"a700\": {\n \"$value\": \"#ffffffc0\",\n \"$type\": \"color\"\n },\n \"a800\": {\n \"$value\": \"#ffffffd8\",\n \"$type\": \"color\"\n },\n \"a900\": {\n \"$value\": \"#ffffffe8\",\n \"$type\": \"color\"\n },\n \"a950\": {\n \"$value\": \"#fffffff4\",\n \"$type\": \"color\"\n }\n },\n \"black\": {\n \"base\": {\n \"$value\": \"#0a0a0a\",\n \"$type\": \"color\"\n },\n \"a50\": {\n \"$value\": \"#0a0a0a0a\",\n \"$type\": \"color\"\n },\n \"a100\": {\n \"$value\": \"#0a0a0a10\",\n \"$type\": \"color\"\n },\n \"a200\": {\n \"$value\": \"#0a0a0a18\",\n \"$type\": \"color\"\n },\n \"a300\": {\n \"$value\": \"#0a0a0a30\",\n \"$type\": \"color\"\n },\n \"a400\": {\n \"$value\": \"#0a0a0a50\",\n \"$type\": \"color\"\n },\n \"a500\": {\n \"$value\": \"#0a0a0a80\",\n \"$type\": \"color\"\n },\n \"a600\": {\n \"$value\": \"#0a0a0aa0\",\n \"$type\": \"color\"\n },\n \"a700\": {\n \"$value\": \"#0a0a0ac0\",\n \"$type\": \"color\"\n },\n \"a800\": {\n \"$value\": \"#0a0a0ad8\",\n \"$type\": \"color\"\n },\n \"a900\": {\n \"$value\": \"#0a0a0ae8\",\n \"$type\": \"color\"\n },\n \"a950\": {\n \"$value\": \"#0a0a0af4\",\n \"$type\": \"color\"\n }\n }\n}\n","import primitiveColors from '../../tokens/primitives/color.json';\nimport {\n hexToOklchPinned,\n isPaletteShadeKey,\n} from '../token-source/perceptual-grid';\n\nimport { type Shade, SHADES } from './palette';\n\nexport type PrimitivePaletteName = Exclude<\n keyof typeof primitiveColors,\n 'white' | 'black'\n>;\nexport type PrimitivePaletteRamp = Readonly<Record<Shade, string>>;\n\nexport const PRIMITIVE_PALETTE_NAMES: readonly PrimitivePaletteName[] =\n Object.keys(primitiveColors).filter(\n (name): name is PrimitivePaletteName => name !== 'white' && name !== 'black'\n );\n\nconst rampCache = new Map<PrimitivePaletteName, PrimitivePaletteRamp>();\n\nexport function getPaletteRamp(\n palette: PrimitivePaletteName\n): PrimitivePaletteRamp {\n if (!PRIMITIVE_PALETTE_NAMES.includes(palette)) {\n throw new Error(`palette: unknown primitive palette \"${palette}\"`);\n }\n const cached = rampCache.get(palette);\n if (cached) return cached;\n const ramp = Object.freeze(\n Object.fromEntries(\n SHADES.map((shade) => [\n shade,\n hexToOklchPinned(\n primitiveColors[palette][shade].$value,\n shade,\n palette\n ),\n ])\n ) as Record<Shade, string>\n );\n rampCache.set(palette, ramp);\n return ramp;\n}\n\nexport function getPaletteShade(\n palette: PrimitivePaletteName,\n shade: Shade\n): string {\n if (!isPaletteShadeKey(shade)) {\n throw new Error(`palette: unknown shade \"${shade}\"`);\n }\n return getPaletteRamp(palette)[shade];\n}\n","import type { NxdsSurfaceTone } from './palette';\n\nexport const SURFACE_TONE: Record<\n NxdsSurfaceTone,\n { h: number; lightC: number; darkC: number }\n> = {\n slate: { h: 264.7, lightC: 0.003, darkC: 0.006 },\n gray: { h: 261.7, lightC: 0.002, darkC: 0.004 },\n zinc: { h: 285.9, lightC: 0.002, darkC: 0.006 },\n neutral: { h: 0, lightC: 0, darkC: 0 },\n stone: { h: 70, lightC: 0.002, darkC: 0.003 },\n};\n\nexport const PAGE_L_LIGHT = 1;\n\n/**\n * Canonical opaque-surface token set. Both regime ladders are typed against\n * these keys, so a surface added here must be given a light and dark anchor.\n */\nexport const SURFACE_TOKENS = [\n 'background',\n 'background-hover',\n 'background-active',\n 'muted',\n 'muted-extralight',\n 'container',\n 'container-hover',\n 'container-active',\n 'popover',\n 'popover-hover',\n 'popover-active',\n 'control-background',\n 'control-background-hover',\n 'nav-background',\n 'nav-item-hover',\n 'nav-item-active',\n 'nav-border',\n 'disabled',\n 'border-focus',\n] as const;\n\nexport type SurfaceToken = (typeof SURFACE_TOKENS)[number];\nexport type SurfaceSteps = Record<SurfaceToken, number>;\n\nexport type ShadeAnchor =\n | number\n | 'base'\n | {\n step: number;\n };\n\n// OKLCH lightness per ladder step: the unit that converts a shade anchor into a\n// step count. deriveSurfaces scales the steps by its own contrast spacing.\nconst STEP_L = 0.056;\n\nconst LIGHT_VIRTUAL_ANCHOR_STEPS = {\n 50: -0.27,\n 75: -0.54,\n 100: -0.98,\n 150: -1.38,\n 200: -2.32,\n 400: -6.07,\n} as const;\n\nconst SURFACE_ANCHOR_L: Record<number, number> = Object.fromEntries(\n Object.entries(LIGHT_VIRTUAL_ANCHOR_STEPS).map(([shade, step]) => [\n Number(shade),\n PAGE_L_LIGHT + step * STEP_L,\n ])\n);\n\nexport function anchorToStep(anchor: ShadeAnchor): number {\n if (typeof anchor === 'object') return anchor.step;\n if (anchor === 'base') return 0;\n\n const shadeL = SURFACE_ANCHOR_L[anchor];\n if (shadeL === undefined) {\n throw new Error(`surface-ladder: unknown shade anchor '${anchor}'`);\n }\n\n return Number(((shadeL - PAGE_L_LIGHT) / STEP_L).toFixed(4));\n}\n\nexport const LIGHT_SURFACE_LADDER = {\n background: 'base',\n 'background-hover': 50,\n 'background-active': 150,\n muted: 75,\n // The only light rung off the shade grid: a 40% background→muted blend lands\n // between gridlines, so it is expressed as a raw fractional step (mirrors the\n // dark ladder's raw-step rationale below).\n 'muted-extralight': { step: -0.216 },\n container: 'base',\n 'container-hover': 75,\n 'container-active': 100,\n popover: 'base',\n 'popover-hover': 100,\n 'popover-active': 100,\n 'control-background': 150,\n 'control-background-hover': 200,\n 'nav-background': 75,\n 'nav-item-hover': 150,\n 'nav-item-active': 150,\n 'nav-border': 150,\n disabled: 100,\n 'border-focus': 400,\n} as const satisfies Record<SurfaceToken, ShadeAnchor>;\n\n// Dark surfaces are bg-seed-relative and do not sit on the light shade grid, so\n// the dark ladder takes raw steps only.\nexport const DARK_SURFACE_LADDER = {\n background: 'base',\n 'background-hover': { step: 1.6 },\n 'background-active': { step: 1.6 },\n muted: { step: 1.6 },\n 'muted-extralight': { step: 0.64 },\n container: { step: 1.6 },\n 'container-hover': { step: 3.2 },\n 'container-active': { step: 1.6 },\n popover: { step: 3.2 },\n 'popover-hover': { step: 4.8 },\n 'popover-active': { step: 3.2 },\n 'control-background': { step: 3.2 },\n 'control-background-hover': { step: 4.8 },\n 'nav-background': { step: 1.6 },\n 'nav-item-hover': { step: 3.2 },\n 'nav-item-active': { step: 3.2 },\n 'nav-border': { step: 3.2 },\n disabled: { step: 1.6 },\n 'border-focus': { step: 9.68 },\n} as const satisfies Record<SurfaceToken, Exclude<ShadeAnchor, number>>;\n\nfunction stepsFromLadder(\n ladder: Record<SurfaceToken, ShadeAnchor>\n): SurfaceSteps {\n return Object.fromEntries(\n SURFACE_TOKENS.map((token) => [token, anchorToStep(ladder[token])])\n ) as SurfaceSteps;\n}\n\nexport const LIGHT_SURFACE_STEPS = stepsFromLadder(LIGHT_SURFACE_LADDER);\nexport const DARK_SURFACE_STEPS = stepsFromLadder(DARK_SURFACE_LADDER);\n","export type TokenCategory =\n | 'surface'\n | 'text'\n | 'border'\n | 'brand'\n | 'status'\n | 'chart'\n | 'focus'\n | 'alpha';\n\nexport interface SemanticTokenMeta {\n /** Bare token name, without the --nx-color- prefix. */\n name: SemanticColorName;\n category: TokenCategory;\n}\n\nconst SURFACE_TOKEN_NAMES = [\n 'background',\n 'background-hover',\n 'background-active',\n 'muted',\n 'muted-extralight',\n 'container',\n 'container-hover',\n 'container-active',\n 'popover',\n 'popover-hover',\n 'popover-active',\n 'control-background',\n 'control-background-hover',\n 'control-thumb',\n 'nav-background',\n 'nav-item-hover',\n 'nav-item-active',\n 'nav-border',\n 'disabled',\n 'border-focus',\n] as const;\n\nconst TEXT_TOKEN_NAMES = [\n 'foreground',\n 'container-foreground',\n 'popover-foreground',\n 'nav-foreground',\n 'muted-foreground',\n 'nav-muted-foreground',\n 'muted-foreground-subtle',\n 'disabled-foreground',\n] as const;\n\nconst BORDER_TOKEN_NAMES = [\n 'border-default',\n 'border-disabled',\n 'border-hairline',\n] as const;\n\nconst BRAND_TOKEN_NAMES = [\n 'primary-background',\n 'primary-background-hover',\n 'primary-background-active',\n 'primary-foreground',\n 'primary-disabled',\n 'primary-subtle',\n 'primary-subtle-foreground',\n 'primary-subtle-hover',\n 'primary-subtle-active',\n 'primary-border',\n 'primary-border-active',\n 'secondary-background',\n 'secondary-background-hover',\n 'secondary-background-active',\n 'secondary-foreground',\n 'secondary-disabled',\n 'secondary-subtle',\n 'secondary-subtle-foreground',\n 'secondary-subtle-hover',\n 'secondary-subtle-active',\n] as const;\n\nconst STATUS_TOKEN_NAMES = [\n 'success-background',\n 'success-background-hover',\n 'success-background-active',\n 'success-foreground',\n 'success-disabled',\n 'success-subtle',\n 'success-subtle-foreground',\n 'success-subtle-hover',\n 'success-subtle-active',\n 'success-border',\n 'border-success-active',\n 'warning-background',\n 'warning-background-hover',\n 'warning-background-active',\n 'warning-foreground',\n 'warning-disabled',\n 'warning-subtle',\n 'warning-subtle-foreground',\n 'warning-subtle-hover',\n 'warning-subtle-active',\n 'warning-border',\n 'border-warning-active',\n 'error-background',\n 'error-background-hover',\n 'error-background-active',\n 'error-foreground',\n 'error-disabled',\n 'error-subtle',\n 'error-subtle-foreground',\n 'error-subtle-hover',\n 'error-subtle-active',\n 'error-border',\n 'border-error-active',\n 'information-background',\n 'information-background-hover',\n 'information-background-active',\n 'information-foreground',\n 'information-disabled',\n 'information-subtle',\n 'information-subtle-foreground',\n 'information-subtle-hover',\n 'information-subtle-active',\n 'information-border',\n 'border-information-active',\n] as const;\n\nconst CHART_TOKEN_NAMES = [\n 'chart-categorical-1',\n 'chart-categorical-2',\n 'chart-categorical-3',\n 'chart-categorical-4',\n 'chart-categorical-5',\n] as const;\n\nconst FOCUS_TOKEN_NAMES = ['focus-default', 'focus-error'] as const;\n\nconst ALPHA_TOKEN_NAMES = [\n 'background-hover-alpha',\n 'border-default-alpha',\n 'overlay',\n 'popover-alpha',\n 'popover-backdrop',\n] as const;\n\n/** Bare name of every semantic colour token, without the --nx-color- prefix. */\nexport type SemanticColorName =\n | (typeof SURFACE_TOKEN_NAMES)[number]\n | (typeof TEXT_TOKEN_NAMES)[number]\n | (typeof BORDER_TOKEN_NAMES)[number]\n | (typeof BRAND_TOKEN_NAMES)[number]\n | (typeof STATUS_TOKEN_NAMES)[number]\n | (typeof CHART_TOKEN_NAMES)[number]\n | (typeof FOCUS_TOKEN_NAMES)[number]\n | (typeof ALPHA_TOKEN_NAMES)[number];\n\nfunction metas(\n category: TokenCategory,\n names: readonly SemanticColorName[]\n): SemanticTokenMeta[] {\n return names.map((name) => ({ name, category }));\n}\n\nexport const SEMANTIC_TOKEN_REGISTRY: readonly SemanticTokenMeta[] = [\n ...metas('surface', SURFACE_TOKEN_NAMES),\n ...metas('text', TEXT_TOKEN_NAMES),\n ...metas('border', BORDER_TOKEN_NAMES),\n ...metas('brand', BRAND_TOKEN_NAMES),\n ...metas('status', STATUS_TOKEN_NAMES),\n ...metas('chart', CHART_TOKEN_NAMES),\n ...metas('focus', FOCUS_TOKEN_NAMES),\n ...metas('alpha', ALPHA_TOKEN_NAMES),\n] as const;\n","import type { TokenValue } from './types.ts';\n\nexport interface ExtractedToken {\n /** Group keys from the document root to the leaf. */\n path: string[];\n /** The authored `$value`. */\n value: TokenValue;\n /** The leaf's `$type`, or the nearest group's. */\n type: string;\n /** The authored `$description`. */\n description: string | undefined;\n}\n\nexport interface TokenReference {\n /** Where the reference sits inside the value; `''` for the whole value. */\n field: string;\n /** The referenced path, e.g. `family.font-heading`. */\n reference: string;\n}\n\nfunction isGroup(value: unknown): value is Record<string, unknown> {\n return typeof value === 'object' && value !== null && !Array.isArray(value);\n}\n\n/**\n * Collect every DTCG leaf (a node with `$value`) in document order. `$type`\n * inherits from the nearest enclosing group. Throws if a leaf has no `$type`\n * of its own or inherited.\n */\nexport function extractTokens(\n document: Record<string, unknown>\n): ExtractedToken[] {\n const result: ExtractedToken[] = [];\n\n function visit(\n group: Record<string, unknown>,\n groupPath: string[],\n inheritedType: unknown\n ) {\n for (const [key, node] of Object.entries(group)) {\n if (key.startsWith('$') || !isGroup(node)) continue;\n\n const path = [...groupPath, key];\n const type = node.$type ?? inheritedType;\n if (!('$value' in node)) {\n visit(node, path, type);\n continue;\n }\n if (typeof type !== 'string') {\n throw new Error(`Token ${path.join('.')} has $value but no $type`);\n }\n result.push({\n path,\n value: node.$value as TokenValue,\n type,\n description:\n typeof node.$description === 'string' ? node.$description : undefined,\n });\n }\n }\n\n visit(document, [], document.$type);\n return result;\n}\n\n/** Check if a value is a DTCG reference (e.g., \"{blue.500}\") */\nexport function isReference(value: unknown): value is string {\n return (\n typeof value === 'string' && value.startsWith('{') && value.endsWith('}')\n );\n}\n\n/** Extract the path (`blue.500`) from a DTCG reference string (`{blue.500}`) */\nexport function extractRefPath(ref: string): string {\n return ref.slice(1, -1);\n}\n\n/** List the references a value makes, including those nested in composites. */\nexport function tokenReferences(value: TokenValue): TokenReference[] {\n const references: TokenReference[] = [];\n\n function visit(node: TokenValue, field: string) {\n if (isReference(node)) {\n references.push({ field, reference: extractRefPath(node) });\n return;\n }\n if (Array.isArray(node)) {\n node.forEach((item, index) => visit(item, `${field}[${index}]`));\n return;\n }\n if (!isGroup(node)) return;\n for (const [key, item] of Object.entries(node)) {\n visit(item, field ? `${field}.${key}` : key);\n }\n }\n\n visit(value, '');\n return references;\n}\n\n/**\n * Convert a token path to a CSS variable name (without `--`), optionally\n * prefixed with a category (e.g. `color`, `radius`) and `nx-`.\n */\nexport function pathToCssVarPrefixed(\n tokenPath: readonly string[],\n categoryPrefix: string | null = null,\n useNxPrefix = false\n): string {\n const cssName = tokenPath.join('-');\n const base = categoryPrefix ? `${categoryPrefix}-${cssName}` : cssName;\n return useNxPrefix ? `nx-${base}` : base;\n}\n","import {\n hexToOklchMechanical,\n hexToOklchPinned,\n isPaletteShadeKey,\n} from './perceptual-grid.ts';\nimport { extractRefPath, isReference } from './tokens.ts';\nimport type { TokenValue } from './types.ts';\n\n/**\n * Reference path (e.g. `blue.500` or `color.blue.500`) to the primitive's\n * CSS variable name without the leading `--`.\n */\nexport type PrimitiveLookup = ReadonlyMap<string, { cssName: string }>;\n\nexport interface CssDeclaration {\n property: string;\n value: string;\n}\n\nfunction isDimension(\n value: unknown\n): value is { value: number; unit?: string } {\n return typeof value === 'object' && value !== null && 'value' in value;\n}\n\n/**\n * Format a token value to a CSS string. For `$type: \"color\"` hex values,\n * routes through the OKLCH converters: palette shade tokens (path ending in a\n * shade key like `'500'`) get pinned to the perceptual L grid; everything else\n * (white/black/semantic hex literals with alpha) is converted mechanically.\n * `tokenPath` routes shade conversions. Throws if `value` is undefined.\n */\nexport function formatTokenValue(\n value: TokenValue | undefined,\n type: string,\n tokenPath?: readonly string[]\n): string {\n if (value === undefined) {\n throw new Error(`formatTokenValue: value is undefined (type=\"${type}\")`);\n }\n\n if (type === 'dimension' && isDimension(value)) {\n // Round to 4 decimals to strip Figma's float-32 export artifacts\n // (e.g. -0.800000011920929 → -0.8).\n const rounded = Math.round(value.value * 10000) / 10000;\n return `${rounded}${value.unit || 'px'}`;\n }\n\n if (type === 'color' && typeof value === 'string' && value.startsWith('#')) {\n const lastSegment = tokenPath?.[tokenPath.length - 1];\n const palette = tokenPath?.[tokenPath.length - 2];\n\n if (palette !== undefined && isPaletteShadeKey(lastSegment)) {\n // The segment before the shade is the palette/hue (e.g. ['blue','500']),\n // which selects the per-hue lightness curve in the grid.\n return hexToOklchPinned(value, lastSegment, palette, (message) =>\n console.warn(message)\n );\n }\n\n if (isPaletteShadeKey(lastSegment)) {\n console.warn(\n `formatTokenValue: shade-key color \"${tokenPath?.join('.')}\" lacks palette root — falling through to mechanical`\n );\n }\n\n return hexToOklchMechanical(value);\n }\n\n if (typeof value === 'string') {\n return value;\n }\n\n if (typeof value === 'number') {\n return String(value);\n }\n\n return JSON.stringify(value);\n}\n\n/**\n * Resolve a DTCG reference like `{blue.500}` to a CSS `var(--…)`, or leave it\n * as authored when the reference is unknown.\n */\nfunction resolveReference(\n reference: string,\n primitiveMap: PrimitiveLookup\n): string {\n const primitiveInfo = primitiveMap.get(extractRefPath(reference));\n\n if (primitiveInfo) {\n return `var(--${primitiveInfo.cssName})`;\n }\n\n console.warn(`⚠ Reference not found: ${reference}`);\n return reference;\n}\n\n/**\n * Resolve a value that might be a reference or a dimension object.\n * `tokenPath` routes color conversions.\n */\nexport function resolveValue(\n value: TokenValue,\n primitiveMap: PrimitiveLookup,\n type = 'unknown',\n tokenPath?: readonly string[]\n): string {\n if (isReference(value)) {\n return resolveReference(value, primitiveMap);\n }\n\n if (type === 'dimension' || isDimension(value)) {\n return formatTokenValue(value, 'dimension');\n }\n\n return formatTokenValue(value, type, tokenPath);\n}\n\n/**\n * Format a shadow property value as a var() reference or literal.\n * References are resolved through the primitive map so the var name matches\n * the actual primitive cssName. This means shadow property references can\n * point to any primitive category, not just `--nx-shadow-*`.\n */\nfunction formatShadowPropertyAsVar(\n value: TokenValue | undefined,\n primitiveMap: PrimitiveLookup\n): string {\n if (isReference(value)) {\n return resolveValue(value, primitiveMap);\n }\n\n if (isDimension(value)) {\n return formatTokenValue(value, 'dimension');\n }\n\n return String(value);\n}\n\nfunction formatShadowLayer(\n layer: Record<string, TokenValue>,\n primitiveMap: PrimitiveLookup,\n isInset: boolean\n): string {\n const x = formatShadowPropertyAsVar(layer.offsetX, primitiveMap);\n const y = formatShadowPropertyAsVar(layer.offsetY, primitiveMap);\n const blur = formatShadowPropertyAsVar(layer.blur, primitiveMap);\n const spread = formatShadowPropertyAsVar(layer.spread, primitiveMap);\n const color = formatShadowPropertyAsVar(layer.color, primitiveMap);\n const inset = isInset || layer.inset ? 'inset ' : '';\n\n return `${inset}${x} ${y} ${blur} ${spread} ${color}`;\n}\n\n/**\n * Format a complete shadow composite (single or multi-layer) to CSS value.\n * `value` is one layer object or an array of layers.\n */\nexport function formatShadowComposite(\n value: TokenValue,\n primitiveMap: PrimitiveLookup,\n isInset = false\n): string {\n const layers = (Array.isArray(value) ? value : [value]) as Record<\n string,\n TokenValue\n >[];\n return layers\n .map((layer) => formatShadowLayer(layer, primitiveMap, isInset))\n .join(', ');\n}\n\n/**\n * Format a shadow style from `styles/shadows.json`, where `tokenPath` is e.g.\n * `['inner']` or `['focus', 'error']`. The top-level `inner` style is inset.\n */\nexport function formatShadowStyle(\n tokenPath: readonly string[],\n value: TokenValue,\n primitiveMap: PrimitiveLookup\n): string {\n const isInset = tokenPath.length === 1 && tokenPath[0] === 'inner';\n return formatShadowComposite(value, primitiveMap, isInset);\n}\n\nconst TYPOGRAPHY_PROPERTIES = [\n ['fontFamily', 'font-family'],\n ['fontSize', 'font-size'],\n ['fontWeight', 'font-weight'],\n ['lineHeight', 'line-height'],\n ['letterSpacing', 'letter-spacing'],\n] as const;\n\n/**\n * Declarations a typography composite emits in its `@utility`. `tokenPath` is\n * e.g. `['heading', 'large']` and `value` is the composite `$value`.\n */\nexport function formatTypographyDeclarations(\n tokenPath: readonly string[],\n value: TokenValue,\n primitiveMap: PrimitiveLookup\n): CssDeclaration[] {\n const fields = value as Record<string, TokenValue>;\n const declarations: CssDeclaration[] = [];\n\n for (const [field, property] of TYPOGRAPHY_PROPERTIES) {\n const fieldValue = fields[field];\n if (!fieldValue) continue;\n // Figma exports `lineHeight: \"auto\"` for the code-inline typography token,\n // but `line-height: auto` is invalid CSS — browsers ignore it. Map to\n // `normal` (CSS spec default, ~1.2) so the emitted utility is well-formed.\n const css =\n fieldValue === 'auto' ? 'normal' : resolveValue(fieldValue, primitiveMap);\n declarations.push({ property, value: css });\n }\n\n if (tokenPath[0] === 'heading') {\n declarations.push({ property: 'text-wrap', value: 'balance' });\n }\n\n if (tokenPath[0] === 'body') {\n // orphan/widow protection for multi-line copy\n declarations.push({ property: 'text-wrap', value: 'pretty' });\n }\n\n return declarations;\n}\n","import type { UtilityRule } from './utilities.ts';\n\n/** Matches a per-mode spacing file in `semantic/`, capturing the mode name. */\nexport const SPACING_MODE_FILE_PATTERN = /^spacing-([a-z]+)\\.json$/;\n\n/**\n * Top-level keys a `spacing-{mode}.json` may use. A key outside both lists\n * throws, so a stray group fails close to the JSON edit.\n */\nconst SPACING_NUMERIC_ROOTS = new Set(['spacing']);\nconst SPACING_ROLE_ROOTS = new Set(['container', 'layout']);\n\n/**\n * Numeric tokens (`spacing.*`) seed Tailwind's `--spacing-*` theme namespace.\n * Role tokens (`container.*`, `layout.*`) never enter `@theme`: Tailwind's\n * `--container-*` namespace would codegen `nx:w-p` from them. They get their\n * own `@utility` instead. Throws if the path's root is in neither allowlist.\n */\nexport function spacingTokenKind(\n tokenPath: readonly string[]\n): 'numeric' | 'role' {\n const root = tokenPath[0] ?? '';\n if (SPACING_NUMERIC_ROOTS.has(root)) return 'numeric';\n if (SPACING_ROLE_ROOTS.has(root)) return 'role';\n throw new Error(\n `spacingTokenKind: unknown top-level key \"${root}\" in path [${tokenPath.join('.')}] — extend SPACING_NUMERIC_ROOTS / SPACING_ROLE_ROOTS`\n );\n}\n\nexport function splitSpacingTokens<T extends { path: readonly string[] }>(\n tokens: readonly T[]\n): { numeric: T[]; role: T[] } {\n const halves: { numeric: T[]; role: T[] } = { numeric: [], role: [] };\n for (const token of tokens) {\n halves[spacingTokenKind(token.path)].push(token);\n }\n return halves;\n}\n\n/**\n * Utility prefix and properties for the family segment of a three-segment\n * `[role, family, size]` role path.\n */\nconst FAMILY_TO_UTILITY = {\n 'padding-x': { prefix: 'px', properties: ['padding-left', 'padding-right'] },\n 'padding-y': { prefix: 'py', properties: ['padding-top', 'padding-bottom'] },\n gap: { prefix: 'gap', properties: ['gap'] },\n};\n\n/**\n * Utility name and properties for a role path:\n *\n * `<role>.<family>.<size>` → `<prefix>-<role>-<size>`\n * `container.p` → `p-container`\n * `container.gap` → `gap-container`\n * `layout.section-gap` → `gap-layout-section`\n */\nfunction deriveRoleUtility(tokenPath: readonly string[]): {\n utilityName: string;\n properties: readonly string[];\n} {\n if (tokenPath.length < 2 || tokenPath.length > 3) {\n throw new Error(\n `deriveRoleUtility: path [${tokenPath.join('.')}] has ${tokenPath.length} segment(s); only 2- or 3-segment role paths are supported`\n );\n }\n const [role, second = '', third] = tokenPath;\n\n if (third !== undefined) {\n const entry = FAMILY_TO_UTILITY[second as keyof typeof FAMILY_TO_UTILITY];\n if (!entry) {\n throw new Error(\n `deriveRoleUtility: unknown family \"${second}\" in path [${tokenPath.join('.')}] — extend FAMILY_TO_UTILITY`\n );\n }\n return {\n utilityName: `${entry.prefix}-${role}-${third}`,\n properties: entry.properties,\n };\n }\n\n if (second === 'gap') {\n return { utilityName: `gap-${role}`, properties: ['gap'] };\n }\n if (second === 'p') {\n return { utilityName: `p-${role}`, properties: ['padding'] };\n }\n const gapSuffixMatch = second.match(/^(.+)-gap$/);\n if (gapSuffixMatch) {\n return {\n utilityName: `gap-${role}-${gapSuffixMatch[1]}`,\n properties: ['gap'],\n };\n }\n\n throw new Error(\n `deriveRoleUtility: unhandled path shape [${tokenPath.join('.')}] — extend deriveRoleUtility cases`\n );\n}\n\n/**\n * The utility a spacing role token (path e.g. `['container', 'p']`) emits. It\n * reads the per-mode `--nx-<path>` variable, so a `[data-density]` swap\n * reaches it.\n */\nexport function spacingRoleUtility(tokenPath: readonly string[]): UtilityRule {\n const { utilityName, properties } = deriveRoleUtility(tokenPath);\n const value = `var(--nx-${tokenPath.join('-')})`;\n return {\n name: utilityName,\n declarations: properties.map((property) => ({ property, value })),\n };\n}\n","import type { CssDeclaration } from './format.ts';\n\n/** One generated `@utility` rule. */\nexport interface UtilityRule {\n /** The utility name without the `nx:` prefix. */\n name: string;\n /** The rule body, in order. */\n declarations: CssDeclaration[];\n}\n\nconst BORDER_WIDTH_SIDES = [\n ['', 'border-style', 'border-width'],\n ['x-', 'border-inline-style', 'border-inline-width'],\n ['y-', 'border-block-style', 'border-block-width'],\n ['t-', 'border-top-style', 'border-top-width'],\n ['r-', 'border-right-style', 'border-right-width'],\n ['b-', 'border-bottom-style', 'border-bottom-width'],\n ['l-', 'border-left-style', 'border-left-width'],\n ['s-', 'border-inline-start-style', 'border-inline-start-width'],\n ['e-', 'border-inline-end-style', 'border-inline-end-width'],\n ['bs-', 'border-block-start-style', 'border-block-start-width'],\n ['be-', 'border-block-end-style', 'border-block-end-width'],\n] as const;\n\n/**\n * The per-side `border-width-*` alias utilities one border width `key` (e.g.\n * `default`) emits: `border-width-default`, `border-width-x-default`, …\n * `border-width-be-default`. The `border-{side?}-{key}` spellings are\n * Tailwind's own utilities, built from the `--border-width-{key}` theme key.\n */\nexport function borderWidthAliasUtilities(key: string): UtilityRule[] {\n const value = `var(--nx-borderwidth-${key})`;\n return BORDER_WIDTH_SIDES.map(([side, styleProperty, widthProperty]) => ({\n name: `border-width-${side}${key}`,\n declarations: [\n { property: styleProperty, value: 'var(--tw-border-style, solid)' },\n { property: widthProperty, value },\n ],\n }));\n}\n\n/**\n * The utility a motion duration `key` (e.g. `fast`) emits. Tailwind v4 does\n * not codegen named `duration-*` utilities from theme variables, so each is\n * explicit.\n */\nexport function durationUtility(key: string): UtilityRule {\n const value = `var(--nx-motion-duration-${key})`;\n return {\n name: `duration-${key}`,\n declarations: [\n { property: '--tw-duration', value },\n { property: 'transition-duration', value },\n ],\n };\n}\n\n/**\n * The motion tokens emitted as Tailwind's `--default-transition-duration` and\n * `--default-transition-timing-function`.\n */\nexport const DEFAULT_TRANSITION = {\n duration: 'default',\n ease: 'enter',\n} as const;\n\n/** Semantic border tokens keyed by their utility alias, in emit order. */\nexport const BORDER_COLOR_ALIAS_TOKENS = {\n default: 'border-default',\n 'default-alpha': 'border-default-alpha',\n focus: 'border-focus',\n disabled: 'border-disabled',\n warning: 'warning-border',\n 'warning-active': 'border-warning-active',\n success: 'success-border',\n 'success-active': 'border-success-active',\n error: 'error-border',\n 'error-active': 'border-error-active',\n information: 'information-border',\n 'information-active': 'border-information-active',\n primary: 'primary-border',\n 'primary-active': 'primary-border-active',\n} as const;\n\nexport const BORDER_COLOR_ALIAS_NAMES = Object.keys(BORDER_COLOR_ALIAS_TOKENS);\n\n/** The utility alias for a semantic color name (without the CSS prefix). */\nexport function borderColorAliasName(tokenName: string): string | null {\n return (\n Object.entries(BORDER_COLOR_ALIAS_TOKENS).find(\n ([, token]) => token === tokenName\n )?.[0] ?? null\n );\n}\n","import { COLOR_FAMILIES } from '../lib/apca-pairs';\nimport { SEMANTIC_TOKEN_REGISTRY } from '../lib/token-registry';\n\ntype ColorFamily = (typeof COLOR_FAMILIES)[number];\n\nconst FAMILY_ROLES: Record<ColorFamily, string> = {\n primary: 'the main action on a surface',\n secondary: 'a supporting action beside a primary one',\n success: 'a completed or healthy state',\n warning: 'a state that needs attention soon',\n error: 'a failed, invalid or destructive state',\n information: 'neutral guidance or a status update',\n};\n\n/** Prose for each family colour, keyed by its role after the family name. */\nconst FAMILY_TEMPLATES: Record<\n string,\n (family: ColorFamily, role: string) => string\n> = {\n background: (family, role) =>\n `Solid fill for buttons, badges and other strong emphasis in this family. Pair with ${family}-foreground. Marks ${role}.`,\n 'background-hover': (family) =>\n `${family}-background while the pointer is over the control.`,\n 'background-active': (family) =>\n `${family}-background while the control is pressed.`,\n foreground: (family) =>\n `Foreground on ${family}-background. The surface relationship defines this role, not text alone: text and icons share it, and contrasting control parts or indicators may use it on the same surface. Other pairings require contrast coverage.`,\n disabled: () =>\n 'Fill of a disabled control in this family. Pair with disabled-foreground.',\n subtle: (family, role) =>\n `Tinted fill for light badges, alerts and selected rows on background or container. Pair with ${family}-subtle-foreground. Marks ${role}.`,\n 'subtle-foreground': (family) =>\n `Foreground on ${family}-subtle. The surface relationship defines this role, not text alone: text and icons share it, and contrasting indicators may use it on that surface. Use on neutral surfaces only with contrast coverage for the intended content tier.`,\n 'subtle-hover': (family) =>\n `${family}-subtle while the pointer is over the control.`,\n 'subtle-active': (family) => `${family}-subtle while the control is pressed.`,\n border: () =>\n 'Border of an outlined control or alert in this family, on background or container.',\n 'border-active': (family) =>\n `${family}-border while the control is pressed or selected.`,\n};\n\n// `primary-border-active` and `border-error-active` both have the\n// `border-active` role.\nfunction familyRole(name: string): [ColorFamily, string] | undefined {\n for (const family of COLOR_FAMILIES) {\n if (name === `border-${family}-active`) return [family, 'border-active'];\n if (name.startsWith(`${family}-`)) {\n return [family, name.slice(family.length + 1)];\n }\n }\n return undefined;\n}\n\nconst NEUTRAL_DESCRIPTIONS: Record<string, string> = {\n background:\n 'Page background, the base surface everything sits on. Pair with foreground.',\n 'background-hover':\n 'Row or ghost-control hover on background. Pair with foreground.',\n 'background-active':\n 'Row or ghost-control press and selection on background. Pair with foreground.',\n muted:\n 'Quiet fill for wells, code, skeletons and inactive tracks on background. Pair with muted-foreground.',\n 'muted-extralight':\n 'Quietest muted surface — sits between background and muted for barely-there fills (empty states, subtle panels).',\n container:\n 'Card and panel surface on background. Pair with container-foreground.',\n 'container-hover': 'Row or control hover inside a container.',\n 'container-active': 'Row or control press and selection inside a container.',\n popover:\n 'Surface of menus, popovers, tooltips and dialogs. Pair with popover-foreground.',\n 'popover-hover': 'Highlighted menu row inside a popover.',\n 'popover-active': 'Pressed or checked menu row inside a popover.',\n 'control-background':\n 'Rail of neutral controls: switch tracks, slider tracks, segmented tabs. Also the hover fill on a neutral control rail.',\n 'control-background-hover':\n 'control-background while the pointer is over it.',\n 'control-thumb': 'Thumb of switches and sliders, on control-background.',\n 'nav-background': 'Sidebar and navigation surface. Pair with nav-foreground.',\n 'nav-item-hover': 'Navigation item hover on nav-background.',\n 'nav-item-active': 'Current navigation item on nav-background.',\n 'nav-border': 'Border between the sidebar and the page, and inside it.',\n disabled:\n 'Fill of a disabled neutral control or input. Pair with disabled-foreground.',\n 'border-focus': 'Border of a focused input, on background or container.',\n foreground: 'Body text and icons on background, muted and the hover fills.',\n 'container-foreground': 'Text and icons on container.',\n 'popover-foreground': 'Text and icons on popover and its row fills.',\n 'nav-foreground': 'Navigation text and icons on nav-background.',\n 'muted-foreground':\n \"It's a gray that softens contrast so primary content stands forward.\",\n 'nav-muted-foreground':\n 'Secondary navigation text, such as group labels, on nav-background.',\n 'muted-foreground-subtle':\n 'Tertiary text tier below muted-foreground - helper text, captions, divider labels.',\n 'disabled-foreground':\n 'Text and icons of a disabled control, on disabled and the family disabled fills.',\n 'border-default':\n 'Default border of inputs, cards, tables and separators, on background or container.',\n 'border-disabled': 'Border of a disabled control.',\n 'border-hairline': 'Faint divider between rows and grouped items.',\n 'chart-categorical-1':\n 'First chart series, on container or background. Series colours stay in order.',\n 'chart-categorical-2': 'Second chart series, on container or background.',\n 'chart-categorical-3': 'Third chart series, on container or background.',\n 'chart-categorical-4': 'Fourth chart series, on container or background.',\n 'chart-categorical-5': 'Fifth chart series, on container or background.',\n 'focus-default': 'Focus ring of every interactive control, on any surface.',\n 'focus-error': 'Focus ring of an invalid control.',\n 'background-hover-alpha':\n 'Translucent hover fill for controls that sit on an image or an unknown surface.',\n 'border-default-alpha':\n 'Translucent border for controls that sit on an image or an unknown surface.',\n overlay: 'Scrim behind dialogs, sheets and drawers.',\n 'popover-alpha': 'Translucent popover surface for frosted overlays.',\n 'popover-backdrop': 'Backdrop behind a frosted popover.',\n};\n\nconst REGISTRY_NAMES: readonly string[] = SEMANTIC_TOKEN_REGISTRY.map(\n (token) => token.name\n);\n\nfunction familyDescriptions(): [string, string][] {\n const used = new Set<string>();\n const entries = REGISTRY_NAMES.flatMap((name): [string, string][] => {\n const match = familyRole(name);\n if (!match) return [];\n const [family, role] = match;\n const template = FAMILY_TEMPLATES[role];\n if (!template) return [];\n used.add(role);\n return [[name, template(family, FAMILY_ROLES[family])]];\n });\n const unused = Object.keys(FAMILY_TEMPLATES).filter(\n (role) => !used.has(role)\n );\n if (unused.length > 0) {\n throw new Error(\n `FAMILY_TEMPLATES describes ${unused.join(', ')}, which no registry colour has.`\n );\n }\n return entries;\n}\n\nfunction neutralDescriptions(): [string, string][] {\n const unknown = Object.keys(NEUTRAL_DESCRIPTIONS).filter(\n (name) => !REGISTRY_NAMES.includes(name)\n );\n if (unknown.length > 0) {\n throw new Error(\n `NEUTRAL_DESCRIPTIONS describes ${unknown.join(', ')}, which the registry doesn't have.`\n );\n }\n return Object.entries(NEUTRAL_DESCRIPTIONS);\n}\n\n/** Prose for derived colours, keyed by registry name. Authored leaves use `$description`. */\nexport const RUNTIME_COLOR_DESCRIPTIONS: Readonly<\n Partial<Record<string, string>>\n> = Object.fromEntries([...neutralDescriptions(), ...familyDescriptions()]);\n","{\n \"thin\": {\n \"$value\": {\n \"value\": 0.5,\n \"unit\": \"px\"\n },\n \"$type\": \"dimension\"\n },\n \"default\": {\n \"$value\": {\n \"value\": 0.5,\n \"unit\": \"px\"\n },\n \"$type\": \"dimension\"\n },\n \"thick\": {\n \"$value\": {\n \"value\": 1,\n \"unit\": \"px\"\n },\n \"$type\": \"dimension\"\n }\n}\n","{\n \"thin\": {\n \"$value\": {\n \"value\": 0.5,\n \"unit\": \"px\"\n },\n \"$type\": \"dimension\"\n },\n \"default\": {\n \"$value\": {\n \"value\": 1,\n \"unit\": \"px\"\n },\n \"$type\": \"dimension\"\n },\n \"thick\": {\n \"$value\": {\n \"value\": 2,\n \"unit\": \"px\"\n },\n \"$type\": \"dimension\"\n }\n}\n","{\n \"thin\": {\n \"$value\": {\n \"value\": 1,\n \"unit\": \"px\"\n },\n \"$type\": \"dimension\"\n },\n \"default\": {\n \"$value\": {\n \"value\": 2,\n \"unit\": \"px\"\n },\n \"$type\": \"dimension\"\n },\n \"thick\": {\n \"$value\": {\n \"value\": 3,\n \"unit\": \"px\"\n },\n \"$type\": \"dimension\"\n }\n}\n","{\n \"duration\": {\n \"0\": {\n \"$value\": \"0ms\",\n \"$type\": \"duration\",\n \"$description\": \"Instant state changes.\"\n },\n \"faster\": {\n \"$value\": \"100ms\",\n \"$type\": \"duration\",\n \"$description\": \"Tiny feedback transitions such as pressed states.\"\n },\n \"fast\": {\n \"$value\": \"150ms\",\n \"$type\": \"duration\",\n \"$description\": \"Frequent lightweight UI transitions such as tab indicators and small fades.\"\n },\n \"default\": {\n \"$value\": \"200ms\",\n \"$type\": \"duration\",\n \"$description\": \"Default component motion for popovers, menus, and routine state changes.\"\n },\n \"moderate\": {\n \"$value\": \"240ms\",\n \"$type\": \"duration\",\n \"$description\": \"Slightly larger routine transitions that need a little more legibility.\"\n },\n \"slow\": {\n \"$value\": \"300ms\",\n \"$type\": \"duration\",\n \"$description\": \"Larger surfaces such as dialogs and compact sheets.\"\n },\n \"slower\": {\n \"$value\": \"500ms\",\n \"$type\": \"duration\",\n \"$description\": \"Large or rare surface motion where extra continuity is useful.\"\n }\n },\n \"ease\": {\n \"linear\": {\n \"$value\": \"linear\",\n \"$type\": \"cubicBezier\",\n \"$description\": \"Constant-rate motion for loops and progress-like animations.\"\n },\n \"enter\": {\n \"$value\": \"cubic-bezier(0.23, 1, 0.32, 1)\",\n \"$type\": \"cubicBezier\",\n \"$description\": \"Strong ease-out curve for elements entering or becoming active.\"\n },\n \"exit\": {\n \"$value\": \"cubic-bezier(0.4, 0, 1, 1)\",\n \"$type\": \"cubicBezier\",\n \"$description\": \"Accelerating curve for elements exiting or becoming hidden.\"\n },\n \"move\": {\n \"$value\": \"cubic-bezier(0.77, 0, 0.175, 1)\",\n \"$type\": \"cubicBezier\",\n \"$description\": \"Intentional on-screen movement between persistent positions.\"\n }\n }\n}\n","{\n \"base\": {\n \"$value\": {\n \"value\": 16,\n \"unit\": \"px\"\n },\n \"$type\": \"dimension\"\n },\n \"sm\": {\n \"$value\": {\n \"value\": 14,\n \"unit\": \"px\"\n },\n \"$type\": \"dimension\"\n },\n \"md\": {\n \"$value\": {\n \"value\": 16,\n \"unit\": \"px\"\n },\n \"$type\": \"dimension\"\n },\n \"lg\": {\n \"$value\": {\n \"value\": 18,\n \"unit\": \"px\"\n },\n \"$type\": \"dimension\"\n },\n \"xl\": {\n \"$value\": {\n \"value\": 20,\n \"unit\": \"px\"\n },\n \"$type\": \"dimension\"\n },\n \"2xl\": {\n \"$value\": {\n \"value\": 24,\n \"unit\": \"px\"\n },\n \"$type\": \"dimension\"\n },\n \"3xl\": {\n \"$value\": {\n \"value\": 32,\n \"unit\": \"px\"\n },\n \"$type\": \"dimension\"\n },\n \"4xl\": {\n \"$value\": {\n \"value\": 40,\n \"unit\": \"px\"\n },\n \"$type\": \"dimension\"\n },\n \"full\": {\n \"$value\": {\n \"value\": 9999,\n \"unit\": \"px\"\n },\n \"$type\": \"dimension\"\n }\n}\n","{\n \"base\": {\n \"$value\": {\n \"value\": 12,\n \"unit\": \"px\"\n },\n \"$type\": \"dimension\"\n },\n \"sm\": {\n \"$value\": {\n \"value\": 10,\n \"unit\": \"px\"\n },\n \"$type\": \"dimension\"\n },\n \"md\": {\n \"$value\": {\n \"value\": 12,\n \"unit\": \"px\"\n },\n \"$type\": \"dimension\"\n },\n \"lg\": {\n \"$value\": {\n \"value\": 14,\n \"unit\": \"px\"\n },\n \"$type\": \"dimension\"\n },\n \"xl\": {\n \"$value\": {\n \"value\": 16,\n \"unit\": \"px\"\n },\n \"$type\": \"dimension\"\n },\n \"2xl\": {\n \"$value\": {\n \"value\": 20,\n \"unit\": \"px\"\n },\n \"$type\": \"dimension\"\n },\n \"3xl\": {\n \"$value\": {\n \"value\": 28,\n \"unit\": \"px\"\n },\n \"$type\": \"dimension\"\n },\n \"4xl\": {\n \"$value\": {\n \"value\": 36,\n \"unit\": \"px\"\n },\n \"$type\": \"dimension\"\n },\n \"full\": {\n \"$value\": {\n \"value\": 9999,\n \"unit\": \"px\"\n },\n \"$type\": \"dimension\"\n }\n}\n","{\n \"base\": {\n \"$value\": {\n \"value\": 8,\n \"unit\": \"px\"\n },\n \"$type\": \"dimension\"\n },\n \"sm\": {\n \"$value\": {\n \"value\": 6,\n \"unit\": \"px\"\n },\n \"$type\": \"dimension\"\n },\n \"md\": {\n \"$value\": {\n \"value\": 8,\n \"unit\": \"px\"\n },\n \"$type\": \"dimension\"\n },\n \"lg\": {\n \"$value\": {\n \"value\": 10,\n \"unit\": \"px\"\n },\n \"$type\": \"dimension\"\n },\n \"xl\": {\n \"$value\": {\n \"value\": 12,\n \"unit\": \"px\"\n },\n \"$type\": \"dimension\"\n },\n \"2xl\": {\n \"$value\": {\n \"value\": 16,\n \"unit\": \"px\"\n },\n \"$type\": \"dimension\"\n },\n \"3xl\": {\n \"$value\": {\n \"value\": 24,\n \"unit\": \"px\"\n },\n \"$type\": \"dimension\"\n },\n \"4xl\": {\n \"$value\": {\n \"value\": 32,\n \"unit\": \"px\"\n },\n \"$type\": \"dimension\"\n },\n \"full\": {\n \"$value\": {\n \"value\": 9999,\n \"unit\": \"px\"\n },\n \"$type\": \"dimension\"\n }\n}\n","{\n \"base\": {\n \"$value\": {\n \"value\": 0,\n \"unit\": \"px\"\n },\n \"$type\": \"dimension\"\n },\n \"sm\": {\n \"$value\": {\n \"value\": 0,\n \"unit\": \"px\"\n },\n \"$type\": \"dimension\"\n },\n \"md\": {\n \"$value\": {\n \"value\": 0,\n \"unit\": \"px\"\n },\n \"$type\": \"dimension\"\n },\n \"lg\": {\n \"$value\": {\n \"value\": 0,\n \"unit\": \"px\"\n },\n \"$type\": \"dimension\"\n },\n \"xl\": {\n \"$value\": {\n \"value\": 0,\n \"unit\": \"px\"\n },\n \"$type\": \"dimension\"\n },\n \"2xl\": {\n \"$value\": {\n \"value\": 0,\n \"unit\": \"px\"\n },\n \"$type\": \"dimension\"\n },\n \"3xl\": {\n \"$value\": {\n \"value\": 0,\n \"unit\": \"px\"\n },\n \"$type\": \"dimension\"\n },\n \"4xl\": {\n \"$value\": {\n \"value\": 0,\n \"unit\": \"px\"\n },\n \"$type\": \"dimension\"\n },\n \"full\": {\n \"$value\": {\n \"value\": 9999,\n \"unit\": \"px\"\n },\n \"$type\": \"dimension\"\n }\n}\n","{\n \"base\": {\n \"$value\": {\n \"value\": 4,\n \"unit\": \"px\"\n },\n \"$type\": \"dimension\"\n },\n \"sm\": {\n \"$value\": {\n \"value\": 2,\n \"unit\": \"px\"\n },\n \"$type\": \"dimension\"\n },\n \"md\": {\n \"$value\": {\n \"value\": 4,\n \"unit\": \"px\"\n },\n \"$type\": \"dimension\"\n },\n \"lg\": {\n \"$value\": {\n \"value\": 6,\n \"unit\": \"px\"\n },\n \"$type\": \"dimension\"\n },\n \"xl\": {\n \"$value\": {\n \"value\": 8,\n \"unit\": \"px\"\n },\n \"$type\": \"dimension\"\n },\n \"2xl\": {\n \"$value\": {\n \"value\": 12,\n \"unit\": \"px\"\n },\n \"$type\": \"dimension\"\n },\n \"3xl\": {\n \"$value\": {\n \"value\": 20,\n \"unit\": \"px\"\n },\n \"$type\": \"dimension\"\n },\n \"4xl\": {\n \"$value\": {\n \"value\": 28,\n \"unit\": \"px\"\n },\n \"$type\": \"dimension\"\n },\n \"full\": {\n \"$value\": {\n \"value\": 9999,\n \"unit\": \"px\"\n },\n \"$type\": \"dimension\"\n }\n}\n","{\n \"2xs\": {\n \"layer-1\": {\n \"x\": {\n \"$value\": {\n \"value\": 0,\n \"unit\": \"px\"\n },\n \"$type\": \"dimension\"\n },\n \"y\": {\n \"$value\": {\n \"value\": 1,\n \"unit\": \"px\"\n },\n \"$type\": \"dimension\"\n },\n \"blur\": {\n \"$value\": {\n \"value\": 3,\n \"unit\": \"px\"\n },\n \"$type\": \"dimension\"\n },\n \"spread\": {\n \"$value\": {\n \"value\": 0,\n \"unit\": \"px\"\n },\n \"$type\": \"dimension\"\n },\n \"color\": {\n \"$value\": \"#0000000d\",\n \"$type\": \"color\"\n }\n }\n },\n \"xs\": {\n \"layer-1\": {\n \"x\": {\n \"$value\": {\n \"value\": 0,\n \"unit\": \"px\"\n },\n \"$type\": \"dimension\"\n },\n \"y\": {\n \"$value\": {\n \"value\": 1,\n \"unit\": \"px\"\n },\n \"$type\": \"dimension\"\n },\n \"blur\": {\n \"$value\": {\n \"value\": 3,\n \"unit\": \"px\"\n },\n \"$type\": \"dimension\"\n },\n \"spread\": {\n \"$value\": {\n \"value\": 0,\n \"unit\": \"px\"\n },\n \"$type\": \"dimension\"\n },\n \"color\": {\n \"$value\": \"#0000000d\",\n \"$type\": \"color\"\n }\n }\n },\n \"sm\": {\n \"layer-1\": {\n \"x\": {\n \"$value\": {\n \"value\": 0,\n \"unit\": \"px\"\n },\n \"$type\": \"dimension\"\n },\n \"y\": {\n \"$value\": {\n \"value\": 1,\n \"unit\": \"px\"\n },\n \"$type\": \"dimension\"\n },\n \"blur\": {\n \"$value\": {\n \"value\": 3,\n \"unit\": \"px\"\n },\n \"$type\": \"dimension\"\n },\n \"spread\": {\n \"$value\": {\n \"value\": 0,\n \"unit\": \"px\"\n },\n \"$type\": \"dimension\"\n },\n \"color\": {\n \"$value\": \"#0000001a\",\n \"$type\": \"color\"\n }\n },\n \"layer-2\": {\n \"x\": {\n \"$value\": {\n \"value\": 0,\n \"unit\": \"px\"\n },\n \"$type\": \"dimension\"\n },\n \"y\": {\n \"$value\": {\n \"value\": 1,\n \"unit\": \"px\"\n },\n \"$type\": \"dimension\"\n },\n \"blur\": {\n \"$value\": {\n \"value\": 2,\n \"unit\": \"px\"\n },\n \"$type\": \"dimension\"\n },\n \"spread\": {\n \"$value\": {\n \"value\": -1,\n \"unit\": \"px\"\n },\n \"$type\": \"dimension\"\n },\n \"color\": {\n \"$value\": \"#0000001a\",\n \"$type\": \"color\"\n }\n }\n },\n \"base\": {\n \"layer-1\": {\n \"x\": {\n \"$value\": {\n \"value\": 0,\n \"unit\": \"px\"\n },\n \"$type\": \"dimension\"\n },\n \"y\": {\n \"$value\": {\n \"value\": 1,\n \"unit\": \"px\"\n },\n \"$type\": \"dimension\"\n },\n \"blur\": {\n \"$value\": {\n \"value\": 3,\n \"unit\": \"px\"\n },\n \"$type\": \"dimension\"\n },\n \"spread\": {\n \"$value\": {\n \"value\": 0,\n \"unit\": \"px\"\n },\n \"$type\": \"dimension\"\n },\n \"color\": {\n \"$value\": \"#0000001a\",\n \"$type\": \"color\"\n }\n },\n \"layer-2\": {\n \"x\": {\n \"$value\": {\n \"value\": 0,\n \"unit\": \"px\"\n },\n \"$type\": \"dimension\"\n },\n \"y\": {\n \"$value\": {\n \"value\": 1,\n \"unit\": \"px\"\n },\n \"$type\": \"dimension\"\n },\n \"blur\": {\n \"$value\": {\n \"value\": 2,\n \"unit\": \"px\"\n },\n \"$type\": \"dimension\"\n },\n \"spread\": {\n \"$value\": {\n \"value\": -1,\n \"unit\": \"px\"\n },\n \"$type\": \"dimension\"\n },\n \"color\": {\n \"$value\": \"#0000001a\",\n \"$type\": \"color\"\n }\n }\n },\n \"md\": {\n \"layer-1\": {\n \"x\": {\n \"$value\": {\n \"value\": 0,\n \"unit\": \"px\"\n },\n \"$type\": \"dimension\"\n },\n \"y\": {\n \"$value\": {\n \"value\": 1,\n \"unit\": \"px\"\n },\n \"$type\": \"dimension\"\n },\n \"blur\": {\n \"$value\": {\n \"value\": 3,\n \"unit\": \"px\"\n },\n \"$type\": \"dimension\"\n },\n \"spread\": {\n \"$value\": {\n \"value\": 0,\n \"unit\": \"px\"\n },\n \"$type\": \"dimension\"\n },\n \"color\": {\n \"$value\": \"#0000001a\",\n \"$type\": \"color\"\n }\n },\n \"layer-2\": {\n \"x\": {\n \"$value\": {\n \"value\": 0,\n \"unit\": \"px\"\n },\n \"$type\": \"dimension\"\n },\n \"y\": {\n \"$value\": {\n \"value\": 2,\n \"unit\": \"px\"\n },\n \"$type\": \"dimension\"\n },\n \"blur\": {\n \"$value\": {\n \"value\": 4,\n \"unit\": \"px\"\n },\n \"$type\": \"dimension\"\n },\n \"spread\": {\n \"$value\": {\n \"value\": -11,\n \"unit\": \"px\"\n },\n \"$type\": \"dimension\"\n },\n \"color\": {\n \"$value\": \"#0000001a\",\n \"$type\": \"color\"\n }\n }\n },\n \"lg\": {\n \"layer-1\": {\n \"x\": {\n \"$value\": {\n \"value\": 0,\n \"unit\": \"px\"\n },\n \"$type\": \"dimension\"\n },\n \"y\": {\n \"$value\": {\n \"value\": 1,\n \"unit\": \"px\"\n },\n \"$type\": \"dimension\"\n },\n \"blur\": {\n \"$value\": {\n \"value\": 3,\n \"unit\": \"px\"\n },\n \"$type\": \"dimension\"\n },\n \"spread\": {\n \"$value\": {\n \"value\": 0,\n \"unit\": \"px\"\n },\n \"$type\": \"dimension\"\n },\n \"color\": {\n \"$value\": \"#0000001a\",\n \"$type\": \"color\"\n }\n },\n \"layer-2\": {\n \"x\": {\n \"$value\": {\n \"value\": 0,\n \"unit\": \"px\"\n },\n \"$type\": \"dimension\"\n },\n \"y\": {\n \"$value\": {\n \"value\": 4,\n \"unit\": \"px\"\n },\n \"$type\": \"dimension\"\n },\n \"blur\": {\n \"$value\": {\n \"value\": 6,\n \"unit\": \"px\"\n },\n \"$type\": \"dimension\"\n },\n \"spread\": {\n \"$value\": {\n \"value\": -1,\n \"unit\": \"px\"\n },\n \"$type\": \"dimension\"\n },\n \"color\": {\n \"$value\": \"#0000001a\",\n \"$type\": \"color\"\n }\n }\n },\n \"xl\": {\n \"layer-1\": {\n \"x\": {\n \"$value\": {\n \"value\": 0,\n \"unit\": \"px\"\n },\n \"$type\": \"dimension\"\n },\n \"y\": {\n \"$value\": {\n \"value\": 1,\n \"unit\": \"px\"\n },\n \"$type\": \"dimension\"\n },\n \"blur\": {\n \"$value\": {\n \"value\": 3,\n \"unit\": \"px\"\n },\n \"$type\": \"dimension\"\n },\n \"spread\": {\n \"$value\": {\n \"value\": 0,\n \"unit\": \"px\"\n },\n \"$type\": \"dimension\"\n },\n \"color\": {\n \"$value\": \"#0000001a\",\n \"$type\": \"color\"\n }\n },\n \"layer-2\": {\n \"x\": {\n \"$value\": {\n \"value\": 0,\n \"unit\": \"px\"\n },\n \"$type\": \"dimension\"\n },\n \"y\": {\n \"$value\": {\n \"value\": 8,\n \"unit\": \"px\"\n },\n \"$type\": \"dimension\"\n },\n \"blur\": {\n \"$value\": {\n \"value\": 10,\n \"unit\": \"px\"\n },\n \"$type\": \"dimension\"\n },\n \"spread\": {\n \"$value\": {\n \"value\": -1,\n \"unit\": \"px\"\n },\n \"$type\": \"dimension\"\n },\n \"color\": {\n \"$value\": \"#0000001a\",\n \"$type\": \"color\"\n }\n }\n },\n \"2xl\": {\n \"layer-1\": {\n \"x\": {\n \"$value\": {\n \"value\": 0,\n \"unit\": \"px\"\n },\n \"$type\": \"dimension\"\n },\n \"y\": {\n \"$value\": {\n \"value\": 1,\n \"unit\": \"px\"\n },\n \"$type\": \"dimension\"\n },\n \"blur\": {\n \"$value\": {\n \"value\": 3,\n \"unit\": \"px\"\n },\n \"$type\": \"dimension\"\n },\n \"spread\": {\n \"$value\": {\n \"value\": 0,\n \"unit\": \"px\"\n },\n \"$type\": \"dimension\"\n },\n \"color\": {\n \"$value\": \"#00000040\",\n \"$type\": \"color\"\n }\n }\n },\n \"inner\": {\n \"layer-1\": {\n \"x\": {\n \"$value\": {\n \"value\": 0,\n \"unit\": \"px\"\n },\n \"$type\": \"dimension\"\n },\n \"y\": {\n \"$value\": {\n \"value\": 2,\n \"unit\": \"px\"\n },\n \"$type\": \"dimension\"\n },\n \"blur\": {\n \"$value\": {\n \"value\": 4,\n \"unit\": \"px\"\n },\n \"$type\": \"dimension\"\n },\n \"spread\": {\n \"$value\": {\n \"value\": 0,\n \"unit\": \"px\"\n },\n \"$type\": \"dimension\"\n },\n \"color\": {\n \"$value\": \"#0000000d\",\n \"$type\": \"color\"\n }\n }\n }\n}\n","{\n \"2xs\": {\n \"layer-1\": {\n \"x\": {\n \"$value\": {\n \"value\": 0,\n \"unit\": \"px\"\n },\n \"$type\": \"dimension\"\n },\n \"y\": {\n \"$value\": {\n \"value\": 1,\n \"unit\": \"px\"\n },\n \"$type\": \"dimension\"\n },\n \"blur\": {\n \"$value\": {\n \"value\": 3,\n \"unit\": \"px\"\n },\n \"$type\": \"dimension\"\n },\n \"spread\": {\n \"$value\": {\n \"value\": 0,\n \"unit\": \"px\"\n },\n \"$type\": \"dimension\"\n },\n \"color\": {\n \"$value\": \"#0000000d\",\n \"$type\": \"color\"\n }\n }\n },\n \"xs\": {\n \"layer-1\": {\n \"x\": {\n \"$value\": {\n \"value\": 0,\n \"unit\": \"px\"\n },\n \"$type\": \"dimension\"\n },\n \"y\": {\n \"$value\": {\n \"value\": 1,\n \"unit\": \"px\"\n },\n \"$type\": \"dimension\"\n },\n \"blur\": {\n \"$value\": {\n \"value\": 3,\n \"unit\": \"px\"\n },\n \"$type\": \"dimension\"\n },\n \"spread\": {\n \"$value\": {\n \"value\": 0,\n \"unit\": \"px\"\n },\n \"$type\": \"dimension\"\n },\n \"color\": {\n \"$value\": \"#0000000d\",\n \"$type\": \"color\"\n }\n }\n },\n \"sm\": {\n \"layer-1\": {\n \"x\": {\n \"$value\": {\n \"value\": 0,\n \"unit\": \"px\"\n },\n \"$type\": \"dimension\"\n },\n \"y\": {\n \"$value\": {\n \"value\": 1,\n \"unit\": \"px\"\n },\n \"$type\": \"dimension\"\n },\n \"blur\": {\n \"$value\": {\n \"value\": 3,\n \"unit\": \"px\"\n },\n \"$type\": \"dimension\"\n },\n \"spread\": {\n \"$value\": {\n \"value\": 0,\n \"unit\": \"px\"\n },\n \"$type\": \"dimension\"\n },\n \"color\": {\n \"$value\": \"#0000001a\",\n \"$type\": \"color\"\n }\n },\n \"layer-2\": {\n \"x\": {\n \"$value\": {\n \"value\": 0,\n \"unit\": \"px\"\n },\n \"$type\": \"dimension\"\n },\n \"y\": {\n \"$value\": {\n \"value\": 1,\n \"unit\": \"px\"\n },\n \"$type\": \"dimension\"\n },\n \"blur\": {\n \"$value\": {\n \"value\": 2,\n \"unit\": \"px\"\n },\n \"$type\": \"dimension\"\n },\n \"spread\": {\n \"$value\": {\n \"value\": -1,\n \"unit\": \"px\"\n },\n \"$type\": \"dimension\"\n },\n \"color\": {\n \"$value\": \"#0000001a\",\n \"$type\": \"color\"\n }\n }\n },\n \"base\": {\n \"layer-1\": {\n \"x\": {\n \"$value\": {\n \"value\": 0,\n \"unit\": \"px\"\n },\n \"$type\": \"dimension\"\n },\n \"y\": {\n \"$value\": {\n \"value\": 1,\n \"unit\": \"px\"\n },\n \"$type\": \"dimension\"\n },\n \"blur\": {\n \"$value\": {\n \"value\": 3,\n \"unit\": \"px\"\n },\n \"$type\": \"dimension\"\n },\n \"spread\": {\n \"$value\": {\n \"value\": 0,\n \"unit\": \"px\"\n },\n \"$type\": \"dimension\"\n },\n \"color\": {\n \"$value\": \"#0000001a\",\n \"$type\": \"color\"\n }\n },\n \"layer-2\": {\n \"x\": {\n \"$value\": {\n \"value\": 0,\n \"unit\": \"px\"\n },\n \"$type\": \"dimension\"\n },\n \"y\": {\n \"$value\": {\n \"value\": 1,\n \"unit\": \"px\"\n },\n \"$type\": \"dimension\"\n },\n \"blur\": {\n \"$value\": {\n \"value\": 2,\n \"unit\": \"px\"\n },\n \"$type\": \"dimension\"\n },\n \"spread\": {\n \"$value\": {\n \"value\": -1,\n \"unit\": \"px\"\n },\n \"$type\": \"dimension\"\n },\n \"color\": {\n \"$value\": \"#0000001a\",\n \"$type\": \"color\"\n }\n }\n },\n \"md\": {\n \"layer-1\": {\n \"x\": {\n \"$value\": {\n \"value\": 0,\n \"unit\": \"px\"\n },\n \"$type\": \"dimension\"\n },\n \"y\": {\n \"$value\": {\n \"value\": 1,\n \"unit\": \"px\"\n },\n \"$type\": \"dimension\"\n },\n \"blur\": {\n \"$value\": {\n \"value\": 3,\n \"unit\": \"px\"\n },\n \"$type\": \"dimension\"\n },\n \"spread\": {\n \"$value\": {\n \"value\": 0,\n \"unit\": \"px\"\n },\n \"$type\": \"dimension\"\n },\n \"color\": {\n \"$value\": \"#0000001a\",\n \"$type\": \"color\"\n }\n },\n \"layer-2\": {\n \"x\": {\n \"$value\": {\n \"value\": 0,\n \"unit\": \"px\"\n },\n \"$type\": \"dimension\"\n },\n \"y\": {\n \"$value\": {\n \"value\": 2,\n \"unit\": \"px\"\n },\n \"$type\": \"dimension\"\n },\n \"blur\": {\n \"$value\": {\n \"value\": 4,\n \"unit\": \"px\"\n },\n \"$type\": \"dimension\"\n },\n \"spread\": {\n \"$value\": {\n \"value\": -11,\n \"unit\": \"px\"\n },\n \"$type\": \"dimension\"\n },\n \"color\": {\n \"$value\": \"#0000001a\",\n \"$type\": \"color\"\n }\n }\n },\n \"lg\": {\n \"layer-1\": {\n \"x\": {\n \"$value\": {\n \"value\": 0,\n \"unit\": \"px\"\n },\n \"$type\": \"dimension\"\n },\n \"y\": {\n \"$value\": {\n \"value\": 1,\n \"unit\": \"px\"\n },\n \"$type\": \"dimension\"\n },\n \"blur\": {\n \"$value\": {\n \"value\": 3,\n \"unit\": \"px\"\n },\n \"$type\": \"dimension\"\n },\n \"spread\": {\n \"$value\": {\n \"value\": 0,\n \"unit\": \"px\"\n },\n \"$type\": \"dimension\"\n },\n \"color\": {\n \"$value\": \"#0000001a\",\n \"$type\": \"color\"\n }\n },\n \"layer-2\": {\n \"x\": {\n \"$value\": {\n \"value\": 0,\n \"unit\": \"px\"\n },\n \"$type\": \"dimension\"\n },\n \"y\": {\n \"$value\": {\n \"value\": 4,\n \"unit\": \"px\"\n },\n \"$type\": \"dimension\"\n },\n \"blur\": {\n \"$value\": {\n \"value\": 6,\n \"unit\": \"px\"\n },\n \"$type\": \"dimension\"\n },\n \"spread\": {\n \"$value\": {\n \"value\": -1,\n \"unit\": \"px\"\n },\n \"$type\": \"dimension\"\n },\n \"color\": {\n \"$value\": \"#0000001a\",\n \"$type\": \"color\"\n }\n }\n },\n \"xl\": {\n \"layer-1\": {\n \"x\": {\n \"$value\": {\n \"value\": 0,\n \"unit\": \"px\"\n },\n \"$type\": \"dimension\"\n },\n \"y\": {\n \"$value\": {\n \"value\": 1,\n \"unit\": \"px\"\n },\n \"$type\": \"dimension\"\n },\n \"blur\": {\n \"$value\": {\n \"value\": 3,\n \"unit\": \"px\"\n },\n \"$type\": \"dimension\"\n },\n \"spread\": {\n \"$value\": {\n \"value\": 0,\n \"unit\": \"px\"\n },\n \"$type\": \"dimension\"\n },\n \"color\": {\n \"$value\": \"#0000001a\",\n \"$type\": \"color\"\n }\n },\n \"layer-2\": {\n \"x\": {\n \"$value\": {\n \"value\": 0,\n \"unit\": \"px\"\n },\n \"$type\": \"dimension\"\n },\n \"y\": {\n \"$value\": {\n \"value\": 8,\n \"unit\": \"px\"\n },\n \"$type\": \"dimension\"\n },\n \"blur\": {\n \"$value\": {\n \"value\": 10,\n \"unit\": \"px\"\n },\n \"$type\": \"dimension\"\n },\n \"spread\": {\n \"$value\": {\n \"value\": -1,\n \"unit\": \"px\"\n },\n \"$type\": \"dimension\"\n },\n \"color\": {\n \"$value\": \"#0000001a\",\n \"$type\": \"color\"\n }\n }\n },\n \"2xl\": {\n \"layer-1\": {\n \"x\": {\n \"$value\": {\n \"value\": 0,\n \"unit\": \"px\"\n },\n \"$type\": \"dimension\"\n },\n \"y\": {\n \"$value\": {\n \"value\": 1,\n \"unit\": \"px\"\n },\n \"$type\": \"dimension\"\n },\n \"blur\": {\n \"$value\": {\n \"value\": 3,\n \"unit\": \"px\"\n },\n \"$type\": \"dimension\"\n },\n \"spread\": {\n \"$value\": {\n \"value\": 0,\n \"unit\": \"px\"\n },\n \"$type\": \"dimension\"\n },\n \"color\": {\n \"$value\": \"#00000040\",\n \"$type\": \"color\"\n }\n }\n },\n \"inner\": {\n \"layer-1\": {\n \"x\": {\n \"$value\": {\n \"value\": 0,\n \"unit\": \"px\"\n },\n \"$type\": \"dimension\"\n },\n \"y\": {\n \"$value\": {\n \"value\": 2,\n \"unit\": \"px\"\n },\n \"$type\": \"dimension\"\n },\n \"blur\": {\n \"$value\": {\n \"value\": 4,\n \"unit\": \"px\"\n },\n \"$type\": \"dimension\"\n },\n \"spread\": {\n \"$value\": {\n \"value\": 0,\n \"unit\": \"px\"\n },\n \"$type\": \"dimension\"\n },\n \"color\": {\n \"$value\": \"#0000000d\",\n \"$type\": \"color\"\n }\n }\n }\n}\n","{\n \"2xs\": {\n \"layer-1\": {\n \"x\": {\n \"$value\": {\n \"value\": 0,\n \"unit\": \"px\"\n },\n \"$type\": \"dimension\"\n },\n \"y\": {\n \"$value\": {\n \"value\": 1,\n \"unit\": \"px\"\n },\n \"$type\": \"dimension\"\n },\n \"blur\": {\n \"$value\": {\n \"value\": 3,\n \"unit\": \"px\"\n },\n \"$type\": \"dimension\"\n },\n \"spread\": {\n \"$value\": {\n \"value\": 0,\n \"unit\": \"px\"\n },\n \"$type\": \"dimension\"\n },\n \"color\": {\n \"$value\": \"#0000000d\",\n \"$type\": \"color\"\n }\n }\n },\n \"xs\": {\n \"layer-1\": {\n \"x\": {\n \"$value\": {\n \"value\": 0,\n \"unit\": \"px\"\n },\n \"$type\": \"dimension\"\n },\n \"y\": {\n \"$value\": {\n \"value\": 1,\n \"unit\": \"px\"\n },\n \"$type\": \"dimension\"\n },\n \"blur\": {\n \"$value\": {\n \"value\": 3,\n \"unit\": \"px\"\n },\n \"$type\": \"dimension\"\n },\n \"spread\": {\n \"$value\": {\n \"value\": 0,\n \"unit\": \"px\"\n },\n \"$type\": \"dimension\"\n },\n \"color\": {\n \"$value\": \"#0000000d\",\n \"$type\": \"color\"\n }\n }\n },\n \"sm\": {\n \"layer-1\": {\n \"x\": {\n \"$value\": {\n \"value\": 0,\n \"unit\": \"px\"\n },\n \"$type\": \"dimension\"\n },\n \"y\": {\n \"$value\": {\n \"value\": 1,\n \"unit\": \"px\"\n },\n \"$type\": \"dimension\"\n },\n \"blur\": {\n \"$value\": {\n \"value\": 3,\n \"unit\": \"px\"\n },\n \"$type\": \"dimension\"\n },\n \"spread\": {\n \"$value\": {\n \"value\": 0,\n \"unit\": \"px\"\n },\n \"$type\": \"dimension\"\n },\n \"color\": {\n \"$value\": \"#00000012\",\n \"$type\": \"color\"\n }\n },\n \"layer-2\": {\n \"x\": {\n \"$value\": {\n \"value\": 0,\n \"unit\": \"px\"\n },\n \"$type\": \"dimension\"\n },\n \"y\": {\n \"$value\": {\n \"value\": 1,\n \"unit\": \"px\"\n },\n \"$type\": \"dimension\"\n },\n \"blur\": {\n \"$value\": {\n \"value\": 2,\n \"unit\": \"px\"\n },\n \"$type\": \"dimension\"\n },\n \"spread\": {\n \"$value\": {\n \"value\": -1,\n \"unit\": \"px\"\n },\n \"$type\": \"dimension\"\n },\n \"color\": {\n \"$value\": \"#00000010\",\n \"$type\": \"color\"\n }\n }\n },\n \"base\": {\n \"layer-1\": {\n \"x\": {\n \"$value\": {\n \"value\": 0,\n \"unit\": \"px\"\n },\n \"$type\": \"dimension\"\n },\n \"y\": {\n \"$value\": {\n \"value\": 1,\n \"unit\": \"px\"\n },\n \"$type\": \"dimension\"\n },\n \"blur\": {\n \"$value\": {\n \"value\": 3,\n \"unit\": \"px\"\n },\n \"$type\": \"dimension\"\n },\n \"spread\": {\n \"$value\": {\n \"value\": 0,\n \"unit\": \"px\"\n },\n \"$type\": \"dimension\"\n },\n \"color\": {\n \"$value\": \"#00000012\",\n \"$type\": \"color\"\n }\n },\n \"layer-2\": {\n \"x\": {\n \"$value\": {\n \"value\": 0,\n \"unit\": \"px\"\n },\n \"$type\": \"dimension\"\n },\n \"y\": {\n \"$value\": {\n \"value\": 1,\n \"unit\": \"px\"\n },\n \"$type\": \"dimension\"\n },\n \"blur\": {\n \"$value\": {\n \"value\": 2,\n \"unit\": \"px\"\n },\n \"$type\": \"dimension\"\n },\n \"spread\": {\n \"$value\": {\n \"value\": -1,\n \"unit\": \"px\"\n },\n \"$type\": \"dimension\"\n },\n \"color\": {\n \"$value\": \"#00000012\",\n \"$type\": \"color\"\n }\n }\n },\n \"md\": {\n \"layer-1\": {\n \"x\": {\n \"$value\": {\n \"value\": 0,\n \"unit\": \"px\"\n },\n \"$type\": \"dimension\"\n },\n \"y\": {\n \"$value\": {\n \"value\": 1,\n \"unit\": \"px\"\n },\n \"$type\": \"dimension\"\n },\n \"blur\": {\n \"$value\": {\n \"value\": 3,\n \"unit\": \"px\"\n },\n \"$type\": \"dimension\"\n },\n \"spread\": {\n \"$value\": {\n \"value\": 0,\n \"unit\": \"px\"\n },\n \"$type\": \"dimension\"\n },\n \"color\": {\n \"$value\": \"#00000014\",\n \"$type\": \"color\"\n }\n },\n \"layer-2\": {\n \"x\": {\n \"$value\": {\n \"value\": 0,\n \"unit\": \"px\"\n },\n \"$type\": \"dimension\"\n },\n \"y\": {\n \"$value\": {\n \"value\": 2,\n \"unit\": \"px\"\n },\n \"$type\": \"dimension\"\n },\n \"blur\": {\n \"$value\": {\n \"value\": 4,\n \"unit\": \"px\"\n },\n \"$type\": \"dimension\"\n },\n \"spread\": {\n \"$value\": {\n \"value\": -1,\n \"unit\": \"px\"\n },\n \"$type\": \"dimension\"\n },\n \"color\": {\n \"$value\": \"#00000014\",\n \"$type\": \"color\"\n }\n }\n },\n \"lg\": {\n \"layer-1\": {\n \"x\": {\n \"$value\": {\n \"value\": 0,\n \"unit\": \"px\"\n },\n \"$type\": \"dimension\"\n },\n \"y\": {\n \"$value\": {\n \"value\": 1,\n \"unit\": \"px\"\n },\n \"$type\": \"dimension\"\n },\n \"blur\": {\n \"$value\": {\n \"value\": 3,\n \"unit\": \"px\"\n },\n \"$type\": \"dimension\"\n },\n \"spread\": {\n \"$value\": {\n \"value\": 0,\n \"unit\": \"px\"\n },\n \"$type\": \"dimension\"\n },\n \"color\": {\n \"$value\": \"#00000014\",\n \"$type\": \"color\"\n }\n },\n \"layer-2\": {\n \"x\": {\n \"$value\": {\n \"value\": 0,\n \"unit\": \"px\"\n },\n \"$type\": \"dimension\"\n },\n \"y\": {\n \"$value\": {\n \"value\": 4,\n \"unit\": \"px\"\n },\n \"$type\": \"dimension\"\n },\n \"blur\": {\n \"$value\": {\n \"value\": 6,\n \"unit\": \"px\"\n },\n \"$type\": \"dimension\"\n },\n \"spread\": {\n \"$value\": {\n \"value\": -1,\n \"unit\": \"px\"\n },\n \"$type\": \"dimension\"\n },\n \"color\": {\n \"$value\": \"#0000001c\",\n \"$type\": \"color\"\n }\n }\n },\n \"xl\": {\n \"layer-1\": {\n \"x\": {\n \"$value\": {\n \"value\": 0,\n \"unit\": \"px\"\n },\n \"$type\": \"dimension\"\n },\n \"y\": {\n \"$value\": {\n \"value\": 1,\n \"unit\": \"px\"\n },\n \"$type\": \"dimension\"\n },\n \"blur\": {\n \"$value\": {\n \"value\": 3,\n \"unit\": \"px\"\n },\n \"$type\": \"dimension\"\n },\n \"spread\": {\n \"$value\": {\n \"value\": 0,\n \"unit\": \"px\"\n },\n \"$type\": \"dimension\"\n },\n \"color\": {\n \"$value\": \"#0000001c\",\n \"$type\": \"color\"\n }\n },\n \"layer-2\": {\n \"x\": {\n \"$value\": {\n \"value\": 0,\n \"unit\": \"px\"\n },\n \"$type\": \"dimension\"\n },\n \"y\": {\n \"$value\": {\n \"value\": 8,\n \"unit\": \"px\"\n },\n \"$type\": \"dimension\"\n },\n \"blur\": {\n \"$value\": {\n \"value\": 10,\n \"unit\": \"px\"\n },\n \"$type\": \"dimension\"\n },\n \"spread\": {\n \"$value\": {\n \"value\": -1,\n \"unit\": \"px\"\n },\n \"$type\": \"dimension\"\n },\n \"color\": {\n \"$value\": \"#00000024\",\n \"$type\": \"color\"\n }\n }\n },\n \"2xl\": {\n \"layer-1\": {\n \"x\": {\n \"$value\": {\n \"value\": 0,\n \"unit\": \"px\"\n },\n \"$type\": \"dimension\"\n },\n \"y\": {\n \"$value\": {\n \"value\": 1,\n \"unit\": \"px\"\n },\n \"$type\": \"dimension\"\n },\n \"blur\": {\n \"$value\": {\n \"value\": 3,\n \"unit\": \"px\"\n },\n \"$type\": \"dimension\"\n },\n \"spread\": {\n \"$value\": {\n \"value\": 0,\n \"unit\": \"px\"\n },\n \"$type\": \"dimension\"\n },\n \"color\": {\n \"$value\": \"#00000033\",\n \"$type\": \"color\"\n }\n }\n },\n \"inner\": {\n \"layer-1\": {\n \"x\": {\n \"$value\": {\n \"value\": 0,\n \"unit\": \"px\"\n },\n \"$type\": \"dimension\"\n },\n \"y\": {\n \"$value\": {\n \"value\": 1,\n \"unit\": \"px\"\n },\n \"$type\": \"dimension\"\n },\n \"blur\": {\n \"$value\": {\n \"value\": 3,\n \"unit\": \"px\"\n },\n \"$type\": \"dimension\"\n },\n \"spread\": {\n \"$value\": {\n \"value\": 0,\n \"unit\": \"px\"\n },\n \"$type\": \"dimension\"\n },\n \"color\": {\n \"$value\": \"#0000000d\",\n \"$type\": \"color\"\n }\n }\n }\n}\n","{\n \"2xs\": {\n \"layer-1\": {\n \"x\": {\n \"$value\": {\n \"value\": 0,\n \"unit\": \"px\"\n },\n \"$type\": \"dimension\"\n },\n \"y\": {\n \"$value\": {\n \"value\": 1,\n \"unit\": \"px\"\n },\n \"$type\": \"dimension\"\n },\n \"blur\": {\n \"$value\": {\n \"value\": 3,\n \"unit\": \"px\"\n },\n \"$type\": \"dimension\"\n },\n \"spread\": {\n \"$value\": {\n \"value\": 0,\n \"unit\": \"px\"\n },\n \"$type\": \"dimension\"\n },\n \"color\": {\n \"$value\": \"#00000008\",\n \"$type\": \"color\"\n }\n }\n },\n \"xs\": {\n \"layer-1\": {\n \"x\": {\n \"$value\": {\n \"value\": 0,\n \"unit\": \"px\"\n },\n \"$type\": \"dimension\"\n },\n \"y\": {\n \"$value\": {\n \"value\": 1,\n \"unit\": \"px\"\n },\n \"$type\": \"dimension\"\n },\n \"blur\": {\n \"$value\": {\n \"value\": 3,\n \"unit\": \"px\"\n },\n \"$type\": \"dimension\"\n },\n \"spread\": {\n \"$value\": {\n \"value\": 0,\n \"unit\": \"px\"\n },\n \"$type\": \"dimension\"\n },\n \"color\": {\n \"$value\": \"#00000008\",\n \"$type\": \"color\"\n }\n }\n },\n \"sm\": {\n \"layer-1\": {\n \"x\": {\n \"$value\": {\n \"value\": 0,\n \"unit\": \"px\"\n },\n \"$type\": \"dimension\"\n },\n \"y\": {\n \"$value\": {\n \"value\": 1,\n \"unit\": \"px\"\n },\n \"$type\": \"dimension\"\n },\n \"blur\": {\n \"$value\": {\n \"value\": 3,\n \"unit\": \"px\"\n },\n \"$type\": \"dimension\"\n },\n \"spread\": {\n \"$value\": {\n \"value\": 0,\n \"unit\": \"px\"\n },\n \"$type\": \"dimension\"\n },\n \"color\": {\n \"$value\": \"#0000000f\",\n \"$type\": \"color\"\n }\n },\n \"layer-2\": {\n \"x\": {\n \"$value\": {\n \"value\": 0,\n \"unit\": \"px\"\n },\n \"$type\": \"dimension\"\n },\n \"y\": {\n \"$value\": {\n \"value\": 1,\n \"unit\": \"px\"\n },\n \"$type\": \"dimension\"\n },\n \"blur\": {\n \"$value\": {\n \"value\": 2,\n \"unit\": \"px\"\n },\n \"$type\": \"dimension\"\n },\n \"spread\": {\n \"$value\": {\n \"value\": -1,\n \"unit\": \"px\"\n },\n \"$type\": \"dimension\"\n },\n \"color\": {\n \"$value\": \"#0000000d\",\n \"$type\": \"color\"\n }\n }\n },\n \"base\": {\n \"layer-1\": {\n \"x\": {\n \"$value\": {\n \"value\": 0,\n \"unit\": \"px\"\n },\n \"$type\": \"dimension\"\n },\n \"y\": {\n \"$value\": {\n \"value\": 1,\n \"unit\": \"px\"\n },\n \"$type\": \"dimension\"\n },\n \"blur\": {\n \"$value\": {\n \"value\": 3,\n \"unit\": \"px\"\n },\n \"$type\": \"dimension\"\n },\n \"spread\": {\n \"$value\": {\n \"value\": 0,\n \"unit\": \"px\"\n },\n \"$type\": \"dimension\"\n },\n \"color\": {\n \"$value\": \"#0000000f\",\n \"$type\": \"color\"\n }\n },\n \"layer-2\": {\n \"x\": {\n \"$value\": {\n \"value\": 0,\n \"unit\": \"px\"\n },\n \"$type\": \"dimension\"\n },\n \"y\": {\n \"$value\": {\n \"value\": 1,\n \"unit\": \"px\"\n },\n \"$type\": \"dimension\"\n },\n \"blur\": {\n \"$value\": {\n \"value\": 2,\n \"unit\": \"px\"\n },\n \"$type\": \"dimension\"\n },\n \"spread\": {\n \"$value\": {\n \"value\": -1,\n \"unit\": \"px\"\n },\n \"$type\": \"dimension\"\n },\n \"color\": {\n \"$value\": \"#0000000f\",\n \"$type\": \"color\"\n }\n }\n },\n \"md\": {\n \"layer-1\": {\n \"x\": {\n \"$value\": {\n \"value\": 0,\n \"unit\": \"px\"\n },\n \"$type\": \"dimension\"\n },\n \"y\": {\n \"$value\": {\n \"value\": 1,\n \"unit\": \"px\"\n },\n \"$type\": \"dimension\"\n },\n \"blur\": {\n \"$value\": {\n \"value\": 3,\n \"unit\": \"px\"\n },\n \"$type\": \"dimension\"\n },\n \"spread\": {\n \"$value\": {\n \"value\": 0,\n \"unit\": \"px\"\n },\n \"$type\": \"dimension\"\n },\n \"color\": {\n \"$value\": \"#0000000f\",\n \"$type\": \"color\"\n }\n },\n \"layer-2\": {\n \"x\": {\n \"$value\": {\n \"value\": 0,\n \"unit\": \"px\"\n },\n \"$type\": \"dimension\"\n },\n \"y\": {\n \"$value\": {\n \"value\": 2,\n \"unit\": \"px\"\n },\n \"$type\": \"dimension\"\n },\n \"blur\": {\n \"$value\": {\n \"value\": 4,\n \"unit\": \"px\"\n },\n \"$type\": \"dimension\"\n },\n \"spread\": {\n \"$value\": {\n \"value\": -1,\n \"unit\": \"px\"\n },\n \"$type\": \"dimension\"\n },\n \"color\": {\n \"$value\": \"#0000000f\",\n \"$type\": \"color\"\n }\n }\n },\n \"lg\": {\n \"layer-1\": {\n \"x\": {\n \"$value\": {\n \"value\": 0,\n \"unit\": \"px\"\n },\n \"$type\": \"dimension\"\n },\n \"y\": {\n \"$value\": {\n \"value\": 1,\n \"unit\": \"px\"\n },\n \"$type\": \"dimension\"\n },\n \"blur\": {\n \"$value\": {\n \"value\": 3,\n \"unit\": \"px\"\n },\n \"$type\": \"dimension\"\n },\n \"spread\": {\n \"$value\": {\n \"value\": 0,\n \"unit\": \"px\"\n },\n \"$type\": \"dimension\"\n },\n \"color\": {\n \"$value\": \"#0000000d\",\n \"$type\": \"color\"\n }\n },\n \"layer-2\": {\n \"x\": {\n \"$value\": {\n \"value\": 0,\n \"unit\": \"px\"\n },\n \"$type\": \"dimension\"\n },\n \"y\": {\n \"$value\": {\n \"value\": 4,\n \"unit\": \"px\"\n },\n \"$type\": \"dimension\"\n },\n \"blur\": {\n \"$value\": {\n \"value\": 6,\n \"unit\": \"px\"\n },\n \"$type\": \"dimension\"\n },\n \"spread\": {\n \"$value\": {\n \"value\": -1,\n \"unit\": \"px\"\n },\n \"$type\": \"dimension\"\n },\n \"color\": {\n \"$value\": \"#00000014\",\n \"$type\": \"color\"\n }\n }\n },\n \"xl\": {\n \"layer-1\": {\n \"x\": {\n \"$value\": {\n \"value\": 0,\n \"unit\": \"px\"\n },\n \"$type\": \"dimension\"\n },\n \"y\": {\n \"$value\": {\n \"value\": 1,\n \"unit\": \"px\"\n },\n \"$type\": \"dimension\"\n },\n \"blur\": {\n \"$value\": {\n \"value\": 3,\n \"unit\": \"px\"\n },\n \"$type\": \"dimension\"\n },\n \"spread\": {\n \"$value\": {\n \"value\": 0,\n \"unit\": \"px\"\n },\n \"$type\": \"dimension\"\n },\n \"color\": {\n \"$value\": \"#00000014\",\n \"$type\": \"color\"\n }\n },\n \"layer-2\": {\n \"x\": {\n \"$value\": {\n \"value\": 0,\n \"unit\": \"px\"\n },\n \"$type\": \"dimension\"\n },\n \"y\": {\n \"$value\": {\n \"value\": 8,\n \"unit\": \"px\"\n },\n \"$type\": \"dimension\"\n },\n \"blur\": {\n \"$value\": {\n \"value\": 10,\n \"unit\": \"px\"\n },\n \"$type\": \"dimension\"\n },\n \"spread\": {\n \"$value\": {\n \"value\": -1,\n \"unit\": \"px\"\n },\n \"$type\": \"dimension\"\n },\n \"color\": {\n \"$value\": \"#00000014\",\n \"$type\": \"color\"\n }\n }\n },\n \"2xl\": {\n \"layer-1\": {\n \"x\": {\n \"$value\": {\n \"value\": 0,\n \"unit\": \"px\"\n },\n \"$type\": \"dimension\"\n },\n \"y\": {\n \"$value\": {\n \"value\": 1,\n \"unit\": \"px\"\n },\n \"$type\": \"dimension\"\n },\n \"blur\": {\n \"$value\": {\n \"value\": 3,\n \"unit\": \"px\"\n },\n \"$type\": \"dimension\"\n },\n \"spread\": {\n \"$value\": {\n \"value\": 0,\n \"unit\": \"px\"\n },\n \"$type\": \"dimension\"\n },\n \"color\": {\n \"$value\": \"#00000026\",\n \"$type\": \"color\"\n }\n }\n },\n \"inner\": {\n \"layer-1\": {\n \"x\": {\n \"$value\": {\n \"value\": 0,\n \"unit\": \"px\"\n },\n \"$type\": \"dimension\"\n },\n \"y\": {\n \"$value\": {\n \"value\": 1,\n \"unit\": \"px\"\n },\n \"$type\": \"dimension\"\n },\n \"blur\": {\n \"$value\": {\n \"value\": 3,\n \"unit\": \"px\"\n },\n \"$type\": \"dimension\"\n },\n \"spread\": {\n \"$value\": {\n \"value\": 0,\n \"unit\": \"px\"\n },\n \"$type\": \"dimension\"\n },\n \"color\": {\n \"$value\": \"#0000000a\",\n \"$type\": \"color\"\n }\n }\n }\n}\n","{\n \"2xs\": {\n \"layer-1\": {\n \"x\": {\n \"$value\": {\n \"value\": 0,\n \"unit\": \"px\"\n },\n \"$type\": \"dimension\"\n },\n \"y\": {\n \"$value\": {\n \"value\": 1,\n \"unit\": \"px\"\n },\n \"$type\": \"dimension\"\n },\n \"blur\": {\n \"$value\": {\n \"value\": 3,\n \"unit\": \"px\"\n },\n \"$type\": \"dimension\"\n },\n \"spread\": {\n \"$value\": {\n \"value\": 0,\n \"unit\": \"px\"\n },\n \"$type\": \"dimension\"\n },\n \"color\": {\n \"$value\": \"#0000000d\",\n \"$type\": \"color\"\n }\n }\n },\n \"xs\": {\n \"layer-1\": {\n \"x\": {\n \"$value\": {\n \"value\": 0,\n \"unit\": \"px\"\n },\n \"$type\": \"dimension\"\n },\n \"y\": {\n \"$value\": {\n \"value\": 1,\n \"unit\": \"px\"\n },\n \"$type\": \"dimension\"\n },\n \"blur\": {\n \"$value\": {\n \"value\": 3,\n \"unit\": \"px\"\n },\n \"$type\": \"dimension\"\n },\n \"spread\": {\n \"$value\": {\n \"value\": 0,\n \"unit\": \"px\"\n },\n \"$type\": \"dimension\"\n },\n \"color\": {\n \"$value\": \"#0000000d\",\n \"$type\": \"color\"\n }\n }\n },\n \"sm\": {\n \"layer-1\": {\n \"x\": {\n \"$value\": {\n \"value\": 0,\n \"unit\": \"px\"\n },\n \"$type\": \"dimension\"\n },\n \"y\": {\n \"$value\": {\n \"value\": 1,\n \"unit\": \"px\"\n },\n \"$type\": \"dimension\"\n },\n \"blur\": {\n \"$value\": {\n \"value\": 3,\n \"unit\": \"px\"\n },\n \"$type\": \"dimension\"\n },\n \"spread\": {\n \"$value\": {\n \"value\": 0,\n \"unit\": \"px\"\n },\n \"$type\": \"dimension\"\n },\n \"color\": {\n \"$value\": \"#0000001a\",\n \"$type\": \"color\"\n }\n },\n \"layer-2\": {\n \"x\": {\n \"$value\": {\n \"value\": 0,\n \"unit\": \"px\"\n },\n \"$type\": \"dimension\"\n },\n \"y\": {\n \"$value\": {\n \"value\": 2,\n \"unit\": \"px\"\n },\n \"$type\": \"dimension\"\n },\n \"blur\": {\n \"$value\": {\n \"value\": 3,\n \"unit\": \"px\"\n },\n \"$type\": \"dimension\"\n },\n \"spread\": {\n \"$value\": {\n \"value\": -1,\n \"unit\": \"px\"\n },\n \"$type\": \"dimension\"\n },\n \"color\": {\n \"$value\": \"#0000001a\",\n \"$type\": \"color\"\n }\n }\n },\n \"base\": {\n \"layer-1\": {\n \"x\": {\n \"$value\": {\n \"value\": 0,\n \"unit\": \"px\"\n },\n \"$type\": \"dimension\"\n },\n \"y\": {\n \"$value\": {\n \"value\": 1,\n \"unit\": \"px\"\n },\n \"$type\": \"dimension\"\n },\n \"blur\": {\n \"$value\": {\n \"value\": 3,\n \"unit\": \"px\"\n },\n \"$type\": \"dimension\"\n },\n \"spread\": {\n \"$value\": {\n \"value\": 0,\n \"unit\": \"px\"\n },\n \"$type\": \"dimension\"\n },\n \"color\": {\n \"$value\": \"#0000001a\",\n \"$type\": \"color\"\n }\n },\n \"layer-2\": {\n \"x\": {\n \"$value\": {\n \"value\": 0,\n \"unit\": \"px\"\n },\n \"$type\": \"dimension\"\n },\n \"y\": {\n \"$value\": {\n \"value\": 2,\n \"unit\": \"px\"\n },\n \"$type\": \"dimension\"\n },\n \"blur\": {\n \"$value\": {\n \"value\": 3,\n \"unit\": \"px\"\n },\n \"$type\": \"dimension\"\n },\n \"spread\": {\n \"$value\": {\n \"value\": -1,\n \"unit\": \"px\"\n },\n \"$type\": \"dimension\"\n },\n \"color\": {\n \"$value\": \"#0000001a\",\n \"$type\": \"color\"\n }\n }\n },\n \"md\": {\n \"layer-1\": {\n \"x\": {\n \"$value\": {\n \"value\": 0,\n \"unit\": \"px\"\n },\n \"$type\": \"dimension\"\n },\n \"y\": {\n \"$value\": {\n \"value\": 1,\n \"unit\": \"px\"\n },\n \"$type\": \"dimension\"\n },\n \"blur\": {\n \"$value\": {\n \"value\": 3,\n \"unit\": \"px\"\n },\n \"$type\": \"dimension\"\n },\n \"spread\": {\n \"$value\": {\n \"value\": 0,\n \"unit\": \"px\"\n },\n \"$type\": \"dimension\"\n },\n \"color\": {\n \"$value\": \"#0000001a\",\n \"$type\": \"color\"\n }\n },\n \"layer-2\": {\n \"x\": {\n \"$value\": {\n \"value\": 0,\n \"unit\": \"px\"\n },\n \"$type\": \"dimension\"\n },\n \"y\": {\n \"$value\": {\n \"value\": 3,\n \"unit\": \"px\"\n },\n \"$type\": \"dimension\"\n },\n \"blur\": {\n \"$value\": {\n \"value\": 5,\n \"unit\": \"px\"\n },\n \"$type\": \"dimension\"\n },\n \"spread\": {\n \"$value\": {\n \"value\": -1,\n \"unit\": \"px\"\n },\n \"$type\": \"dimension\"\n },\n \"color\": {\n \"$value\": \"#0000001a\",\n \"$type\": \"color\"\n }\n }\n },\n \"lg\": {\n \"layer-1\": {\n \"x\": {\n \"$value\": {\n \"value\": 0,\n \"unit\": \"px\"\n },\n \"$type\": \"dimension\"\n },\n \"y\": {\n \"$value\": {\n \"value\": 1,\n \"unit\": \"px\"\n },\n \"$type\": \"dimension\"\n },\n \"blur\": {\n \"$value\": {\n \"value\": 3,\n \"unit\": \"px\"\n },\n \"$type\": \"dimension\"\n },\n \"spread\": {\n \"$value\": {\n \"value\": 0,\n \"unit\": \"px\"\n },\n \"$type\": \"dimension\"\n },\n \"color\": {\n \"$value\": \"#0000001f\",\n \"$type\": \"color\"\n }\n },\n \"layer-2\": {\n \"x\": {\n \"$value\": {\n \"value\": 0,\n \"unit\": \"px\"\n },\n \"$type\": \"dimension\"\n },\n \"y\": {\n \"$value\": {\n \"value\": 6,\n \"unit\": \"px\"\n },\n \"$type\": \"dimension\"\n },\n \"blur\": {\n \"$value\": {\n \"value\": 9,\n \"unit\": \"px\"\n },\n \"$type\": \"dimension\"\n },\n \"spread\": {\n \"$value\": {\n \"value\": -1,\n \"unit\": \"px\"\n },\n \"$type\": \"dimension\"\n },\n \"color\": {\n \"$value\": \"#0000001f\",\n \"$type\": \"color\"\n }\n }\n },\n \"xl\": {\n \"layer-1\": {\n \"x\": {\n \"$value\": {\n \"value\": 0,\n \"unit\": \"px\"\n },\n \"$type\": \"dimension\"\n },\n \"y\": {\n \"$value\": {\n \"value\": 1,\n \"unit\": \"px\"\n },\n \"$type\": \"dimension\"\n },\n \"blur\": {\n \"$value\": {\n \"value\": 3,\n \"unit\": \"px\"\n },\n \"$type\": \"dimension\"\n },\n \"spread\": {\n \"$value\": {\n \"value\": 0,\n \"unit\": \"px\"\n },\n \"$type\": \"dimension\"\n },\n \"color\": {\n \"$value\": \"#0000001f\",\n \"$type\": \"color\"\n }\n },\n \"layer-2\": {\n \"x\": {\n \"$value\": {\n \"value\": 0,\n \"unit\": \"px\"\n },\n \"$type\": \"dimension\"\n },\n \"y\": {\n \"$value\": {\n \"value\": 12,\n \"unit\": \"px\"\n },\n \"$type\": \"dimension\"\n },\n \"blur\": {\n \"$value\": {\n \"value\": 16,\n \"unit\": \"px\"\n },\n \"$type\": \"dimension\"\n },\n \"spread\": {\n \"$value\": {\n \"value\": -1,\n \"unit\": \"px\"\n },\n \"$type\": \"dimension\"\n },\n \"color\": {\n \"$value\": \"#0000001f\",\n \"$type\": \"color\"\n }\n }\n },\n \"2xl\": {\n \"layer-1\": {\n \"x\": {\n \"$value\": {\n \"value\": 0,\n \"unit\": \"px\"\n },\n \"$type\": \"dimension\"\n },\n \"y\": {\n \"$value\": {\n \"value\": 1,\n \"unit\": \"px\"\n },\n \"$type\": \"dimension\"\n },\n \"blur\": {\n \"$value\": {\n \"value\": 3,\n \"unit\": \"px\"\n },\n \"$type\": \"dimension\"\n },\n \"spread\": {\n \"$value\": {\n \"value\": 0,\n \"unit\": \"px\"\n },\n \"$type\": \"dimension\"\n },\n \"color\": {\n \"$value\": \"#00000040\",\n \"$type\": \"color\"\n }\n }\n },\n \"inner\": {\n \"layer-1\": {\n \"x\": {\n \"$value\": {\n \"value\": 0,\n \"unit\": \"px\"\n },\n \"$type\": \"dimension\"\n },\n \"y\": {\n \"$value\": {\n \"value\": 2,\n \"unit\": \"px\"\n },\n \"$type\": \"dimension\"\n },\n \"blur\": {\n \"$value\": {\n \"value\": 5,\n \"unit\": \"px\"\n },\n \"$type\": \"dimension\"\n },\n \"spread\": {\n \"$value\": {\n \"value\": 0,\n \"unit\": \"px\"\n },\n \"$type\": \"dimension\"\n },\n \"color\": {\n \"$value\": \"#0000000d\",\n \"$type\": \"color\"\n }\n }\n }\n}\n","{\n \"2xs\": {\n \"layer-1\": {\n \"x\": {\n \"$value\": {\n \"value\": 0,\n \"unit\": \"px\"\n },\n \"$type\": \"dimension\"\n },\n \"y\": {\n \"$value\": {\n \"value\": 1,\n \"unit\": \"px\"\n },\n \"$type\": \"dimension\"\n },\n \"blur\": {\n \"$value\": {\n \"value\": 3,\n \"unit\": \"px\"\n },\n \"$type\": \"dimension\"\n },\n \"spread\": {\n \"$value\": {\n \"value\": 0,\n \"unit\": \"px\"\n },\n \"$type\": \"dimension\"\n },\n \"color\": {\n \"$value\": \"#0000000d\",\n \"$type\": \"color\"\n }\n }\n },\n \"xs\": {\n \"layer-1\": {\n \"x\": {\n \"$value\": {\n \"value\": 0,\n \"unit\": \"px\"\n },\n \"$type\": \"dimension\"\n },\n \"y\": {\n \"$value\": {\n \"value\": 1,\n \"unit\": \"px\"\n },\n \"$type\": \"dimension\"\n },\n \"blur\": {\n \"$value\": {\n \"value\": 3,\n \"unit\": \"px\"\n },\n \"$type\": \"dimension\"\n },\n \"spread\": {\n \"$value\": {\n \"value\": 0,\n \"unit\": \"px\"\n },\n \"$type\": \"dimension\"\n },\n \"color\": {\n \"$value\": \"#0000000d\",\n \"$type\": \"color\"\n }\n }\n },\n \"sm\": {\n \"layer-1\": {\n \"x\": {\n \"$value\": {\n \"value\": 0,\n \"unit\": \"px\"\n },\n \"$type\": \"dimension\"\n },\n \"y\": {\n \"$value\": {\n \"value\": 1,\n \"unit\": \"px\"\n },\n \"$type\": \"dimension\"\n },\n \"blur\": {\n \"$value\": {\n \"value\": 3,\n \"unit\": \"px\"\n },\n \"$type\": \"dimension\"\n },\n \"spread\": {\n \"$value\": {\n \"value\": 0,\n \"unit\": \"px\"\n },\n \"$type\": \"dimension\"\n },\n \"color\": {\n \"$value\": \"#0000001a\",\n \"$type\": \"color\"\n }\n },\n \"layer-2\": {\n \"x\": {\n \"$value\": {\n \"value\": 0,\n \"unit\": \"px\"\n },\n \"$type\": \"dimension\"\n },\n \"y\": {\n \"$value\": {\n \"value\": 2,\n \"unit\": \"px\"\n },\n \"$type\": \"dimension\"\n },\n \"blur\": {\n \"$value\": {\n \"value\": 3,\n \"unit\": \"px\"\n },\n \"$type\": \"dimension\"\n },\n \"spread\": {\n \"$value\": {\n \"value\": -1,\n \"unit\": \"px\"\n },\n \"$type\": \"dimension\"\n },\n \"color\": {\n \"$value\": \"#0000001a\",\n \"$type\": \"color\"\n }\n }\n },\n \"base\": {\n \"layer-1\": {\n \"x\": {\n \"$value\": {\n \"value\": 0,\n \"unit\": \"px\"\n },\n \"$type\": \"dimension\"\n },\n \"y\": {\n \"$value\": {\n \"value\": 1,\n \"unit\": \"px\"\n },\n \"$type\": \"dimension\"\n },\n \"blur\": {\n \"$value\": {\n \"value\": 3,\n \"unit\": \"px\"\n },\n \"$type\": \"dimension\"\n },\n \"spread\": {\n \"$value\": {\n \"value\": 0,\n \"unit\": \"px\"\n },\n \"$type\": \"dimension\"\n },\n \"color\": {\n \"$value\": \"#0000001a\",\n \"$type\": \"color\"\n }\n },\n \"layer-2\": {\n \"x\": {\n \"$value\": {\n \"value\": 0,\n \"unit\": \"px\"\n },\n \"$type\": \"dimension\"\n },\n \"y\": {\n \"$value\": {\n \"value\": 2,\n \"unit\": \"px\"\n },\n \"$type\": \"dimension\"\n },\n \"blur\": {\n \"$value\": {\n \"value\": 3,\n \"unit\": \"px\"\n },\n \"$type\": \"dimension\"\n },\n \"spread\": {\n \"$value\": {\n \"value\": -1,\n \"unit\": \"px\"\n },\n \"$type\": \"dimension\"\n },\n \"color\": {\n \"$value\": \"#0000001a\",\n \"$type\": \"color\"\n }\n }\n },\n \"md\": {\n \"layer-1\": {\n \"x\": {\n \"$value\": {\n \"value\": 0,\n \"unit\": \"px\"\n },\n \"$type\": \"dimension\"\n },\n \"y\": {\n \"$value\": {\n \"value\": 1,\n \"unit\": \"px\"\n },\n \"$type\": \"dimension\"\n },\n \"blur\": {\n \"$value\": {\n \"value\": 3,\n \"unit\": \"px\"\n },\n \"$type\": \"dimension\"\n },\n \"spread\": {\n \"$value\": {\n \"value\": 0,\n \"unit\": \"px\"\n },\n \"$type\": \"dimension\"\n },\n \"color\": {\n \"$value\": \"#0000001a\",\n \"$type\": \"color\"\n }\n },\n \"layer-2\": {\n \"x\": {\n \"$value\": {\n \"value\": 0,\n \"unit\": \"px\"\n },\n \"$type\": \"dimension\"\n },\n \"y\": {\n \"$value\": {\n \"value\": 3,\n \"unit\": \"px\"\n },\n \"$type\": \"dimension\"\n },\n \"blur\": {\n \"$value\": {\n \"value\": 5,\n \"unit\": \"px\"\n },\n \"$type\": \"dimension\"\n },\n \"spread\": {\n \"$value\": {\n \"value\": -1,\n \"unit\": \"px\"\n },\n \"$type\": \"dimension\"\n },\n \"color\": {\n \"$value\": \"#0000001a\",\n \"$type\": \"color\"\n }\n }\n },\n \"lg\": {\n \"layer-1\": {\n \"x\": {\n \"$value\": {\n \"value\": 0,\n \"unit\": \"px\"\n },\n \"$type\": \"dimension\"\n },\n \"y\": {\n \"$value\": {\n \"value\": 1,\n \"unit\": \"px\"\n },\n \"$type\": \"dimension\"\n },\n \"blur\": {\n \"$value\": {\n \"value\": 3,\n \"unit\": \"px\"\n },\n \"$type\": \"dimension\"\n },\n \"spread\": {\n \"$value\": {\n \"value\": 0,\n \"unit\": \"px\"\n },\n \"$type\": \"dimension\"\n },\n \"color\": {\n \"$value\": \"#0000001f\",\n \"$type\": \"color\"\n }\n },\n \"layer-2\": {\n \"x\": {\n \"$value\": {\n \"value\": 0,\n \"unit\": \"px\"\n },\n \"$type\": \"dimension\"\n },\n \"y\": {\n \"$value\": {\n \"value\": 6,\n \"unit\": \"px\"\n },\n \"$type\": \"dimension\"\n },\n \"blur\": {\n \"$value\": {\n \"value\": 9,\n \"unit\": \"px\"\n },\n \"$type\": \"dimension\"\n },\n \"spread\": {\n \"$value\": {\n \"value\": -1,\n \"unit\": \"px\"\n },\n \"$type\": \"dimension\"\n },\n \"color\": {\n \"$value\": \"#0000001f\",\n \"$type\": \"color\"\n }\n }\n },\n \"xl\": {\n \"layer-1\": {\n \"x\": {\n \"$value\": {\n \"value\": 0,\n \"unit\": \"px\"\n },\n \"$type\": \"dimension\"\n },\n \"y\": {\n \"$value\": {\n \"value\": 1,\n \"unit\": \"px\"\n },\n \"$type\": \"dimension\"\n },\n \"blur\": {\n \"$value\": {\n \"value\": 3,\n \"unit\": \"px\"\n },\n \"$type\": \"dimension\"\n },\n \"spread\": {\n \"$value\": {\n \"value\": 0,\n \"unit\": \"px\"\n },\n \"$type\": \"dimension\"\n },\n \"color\": {\n \"$value\": \"#0000001f\",\n \"$type\": \"color\"\n }\n },\n \"layer-2\": {\n \"x\": {\n \"$value\": {\n \"value\": 0,\n \"unit\": \"px\"\n },\n \"$type\": \"dimension\"\n },\n \"y\": {\n \"$value\": {\n \"value\": 12,\n \"unit\": \"px\"\n },\n \"$type\": \"dimension\"\n },\n \"blur\": {\n \"$value\": {\n \"value\": 16,\n \"unit\": \"px\"\n },\n \"$type\": \"dimension\"\n },\n \"spread\": {\n \"$value\": {\n \"value\": -1,\n \"unit\": \"px\"\n },\n \"$type\": \"dimension\"\n },\n \"color\": {\n \"$value\": \"#0000001f\",\n \"$type\": \"color\"\n }\n }\n },\n \"2xl\": {\n \"layer-1\": {\n \"x\": {\n \"$value\": {\n \"value\": 0,\n \"unit\": \"px\"\n },\n \"$type\": \"dimension\"\n },\n \"y\": {\n \"$value\": {\n \"value\": 1,\n \"unit\": \"px\"\n },\n \"$type\": \"dimension\"\n },\n \"blur\": {\n \"$value\": {\n \"value\": 3,\n \"unit\": \"px\"\n },\n \"$type\": \"dimension\"\n },\n \"spread\": {\n \"$value\": {\n \"value\": 0,\n \"unit\": \"px\"\n },\n \"$type\": \"dimension\"\n },\n \"color\": {\n \"$value\": \"#00000040\",\n \"$type\": \"color\"\n }\n }\n },\n \"inner\": {\n \"layer-1\": {\n \"x\": {\n \"$value\": {\n \"value\": 0,\n \"unit\": \"px\"\n },\n \"$type\": \"dimension\"\n },\n \"y\": {\n \"$value\": {\n \"value\": 2,\n \"unit\": \"px\"\n },\n \"$type\": \"dimension\"\n },\n \"blur\": {\n \"$value\": {\n \"value\": 5,\n \"unit\": \"px\"\n },\n \"$type\": \"dimension\"\n },\n \"spread\": {\n \"$value\": {\n \"value\": 0,\n \"unit\": \"px\"\n },\n \"$type\": \"dimension\"\n },\n \"color\": {\n \"$value\": \"#0000000d\",\n \"$type\": \"color\"\n }\n }\n }\n}\n","{\n \"2xs\": {\n \"layer-1\": {\n \"x\": {\n \"$value\": {\n \"value\": 0,\n \"unit\": \"px\"\n },\n \"$type\": \"dimension\"\n },\n \"y\": {\n \"$value\": {\n \"value\": 1,\n \"unit\": \"px\"\n },\n \"$type\": \"dimension\"\n },\n \"blur\": {\n \"$value\": {\n \"value\": 3,\n \"unit\": \"px\"\n },\n \"$type\": \"dimension\"\n },\n \"spread\": {\n \"$value\": {\n \"value\": 0,\n \"unit\": \"px\"\n },\n \"$type\": \"dimension\"\n },\n \"color\": {\n \"$value\": \"#00000010\",\n \"$type\": \"color\"\n }\n }\n },\n \"xs\": {\n \"layer-1\": {\n \"x\": {\n \"$value\": {\n \"value\": 0,\n \"unit\": \"px\"\n },\n \"$type\": \"dimension\"\n },\n \"y\": {\n \"$value\": {\n \"value\": 1,\n \"unit\": \"px\"\n },\n \"$type\": \"dimension\"\n },\n \"blur\": {\n \"$value\": {\n \"value\": 3,\n \"unit\": \"px\"\n },\n \"$type\": \"dimension\"\n },\n \"spread\": {\n \"$value\": {\n \"value\": 0,\n \"unit\": \"px\"\n },\n \"$type\": \"dimension\"\n },\n \"color\": {\n \"$value\": \"#00000010\",\n \"$type\": \"color\"\n }\n }\n },\n \"sm\": {\n \"layer-1\": {\n \"x\": {\n \"$value\": {\n \"value\": 0,\n \"unit\": \"px\"\n },\n \"$type\": \"dimension\"\n },\n \"y\": {\n \"$value\": {\n \"value\": 1,\n \"unit\": \"px\"\n },\n \"$type\": \"dimension\"\n },\n \"blur\": {\n \"$value\": {\n \"value\": 3,\n \"unit\": \"px\"\n },\n \"$type\": \"dimension\"\n },\n \"spread\": {\n \"$value\": {\n \"value\": 0,\n \"unit\": \"px\"\n },\n \"$type\": \"dimension\"\n },\n \"color\": {\n \"$value\": \"#00000016\",\n \"$type\": \"color\"\n }\n },\n \"layer-2\": {\n \"x\": {\n \"$value\": {\n \"value\": 0,\n \"unit\": \"px\"\n },\n \"$type\": \"dimension\"\n },\n \"y\": {\n \"$value\": {\n \"value\": 1,\n \"unit\": \"px\"\n },\n \"$type\": \"dimension\"\n },\n \"blur\": {\n \"$value\": {\n \"value\": 2,\n \"unit\": \"px\"\n },\n \"$type\": \"dimension\"\n },\n \"spread\": {\n \"$value\": {\n \"value\": -1,\n \"unit\": \"px\"\n },\n \"$type\": \"dimension\"\n },\n \"color\": {\n \"$value\": \"#00000022\",\n \"$type\": \"color\"\n }\n }\n },\n \"base\": {\n \"layer-1\": {\n \"x\": {\n \"$value\": {\n \"value\": 0,\n \"unit\": \"px\"\n },\n \"$type\": \"dimension\"\n },\n \"y\": {\n \"$value\": {\n \"value\": 1,\n \"unit\": \"px\"\n },\n \"$type\": \"dimension\"\n },\n \"blur\": {\n \"$value\": {\n \"value\": 3,\n \"unit\": \"px\"\n },\n \"$type\": \"dimension\"\n },\n \"spread\": {\n \"$value\": {\n \"value\": 0,\n \"unit\": \"px\"\n },\n \"$type\": \"dimension\"\n },\n \"color\": {\n \"$value\": \"#00000020\",\n \"$type\": \"color\"\n }\n },\n \"layer-2\": {\n \"x\": {\n \"$value\": {\n \"value\": 0,\n \"unit\": \"px\"\n },\n \"$type\": \"dimension\"\n },\n \"y\": {\n \"$value\": {\n \"value\": 1,\n \"unit\": \"px\"\n },\n \"$type\": \"dimension\"\n },\n \"blur\": {\n \"$value\": {\n \"value\": 2,\n \"unit\": \"px\"\n },\n \"$type\": \"dimension\"\n },\n \"spread\": {\n \"$value\": {\n \"value\": 0,\n \"unit\": \"px\"\n },\n \"$type\": \"dimension\"\n },\n \"color\": {\n \"$value\": \"#00000022\",\n \"$type\": \"color\"\n }\n }\n },\n \"md\": {\n \"layer-1\": {\n \"x\": {\n \"$value\": {\n \"value\": 0,\n \"unit\": \"px\"\n },\n \"$type\": \"dimension\"\n },\n \"y\": {\n \"$value\": {\n \"value\": 1,\n \"unit\": \"px\"\n },\n \"$type\": \"dimension\"\n },\n \"blur\": {\n \"$value\": {\n \"value\": 3,\n \"unit\": \"px\"\n },\n \"$type\": \"dimension\"\n },\n \"spread\": {\n \"$value\": {\n \"value\": 0,\n \"unit\": \"px\"\n },\n \"$type\": \"dimension\"\n },\n \"color\": {\n \"$value\": \"#00000020\",\n \"$type\": \"color\"\n }\n },\n \"layer-2\": {\n \"x\": {\n \"$value\": {\n \"value\": 0,\n \"unit\": \"px\"\n },\n \"$type\": \"dimension\"\n },\n \"y\": {\n \"$value\": {\n \"value\": 2,\n \"unit\": \"px\"\n },\n \"$type\": \"dimension\"\n },\n \"blur\": {\n \"$value\": {\n \"value\": 4,\n \"unit\": \"px\"\n },\n \"$type\": \"dimension\"\n },\n \"spread\": {\n \"$value\": {\n \"value\": -1,\n \"unit\": \"px\"\n },\n \"$type\": \"dimension\"\n },\n \"color\": {\n \"$value\": \"#00000024\",\n \"$type\": \"color\"\n }\n }\n },\n \"lg\": {\n \"layer-1\": {\n \"x\": {\n \"$value\": {\n \"value\": 0,\n \"unit\": \"px\"\n },\n \"$type\": \"dimension\"\n },\n \"y\": {\n \"$value\": {\n \"value\": 1,\n \"unit\": \"px\"\n },\n \"$type\": \"dimension\"\n },\n \"blur\": {\n \"$value\": {\n \"value\": 3,\n \"unit\": \"px\"\n },\n \"$type\": \"dimension\"\n },\n \"spread\": {\n \"$value\": {\n \"value\": 0,\n \"unit\": \"px\"\n },\n \"$type\": \"dimension\"\n },\n \"color\": {\n \"$value\": \"#00000024\",\n \"$type\": \"color\"\n }\n },\n \"layer-2\": {\n \"x\": {\n \"$value\": {\n \"value\": 0,\n \"unit\": \"px\"\n },\n \"$type\": \"dimension\"\n },\n \"y\": {\n \"$value\": {\n \"value\": 5,\n \"unit\": \"px\"\n },\n \"$type\": \"dimension\"\n },\n \"blur\": {\n \"$value\": {\n \"value\": 8,\n \"unit\": \"px\"\n },\n \"$type\": \"dimension\"\n },\n \"spread\": {\n \"$value\": {\n \"value\": -1,\n \"unit\": \"px\"\n },\n \"$type\": \"dimension\"\n },\n \"color\": {\n \"$value\": \"#00000030\",\n \"$type\": \"color\"\n }\n }\n },\n \"xl\": {\n \"layer-1\": {\n \"x\": {\n \"$value\": {\n \"value\": 0,\n \"unit\": \"px\"\n },\n \"$type\": \"dimension\"\n },\n \"y\": {\n \"$value\": {\n \"value\": 1,\n \"unit\": \"px\"\n },\n \"$type\": \"dimension\"\n },\n \"blur\": {\n \"$value\": {\n \"value\": 3,\n \"unit\": \"px\"\n },\n \"$type\": \"dimension\"\n },\n \"spread\": {\n \"$value\": {\n \"value\": 0,\n \"unit\": \"px\"\n },\n \"$type\": \"dimension\"\n },\n \"color\": {\n \"$value\": \"#00000028\",\n \"$type\": \"color\"\n }\n },\n \"layer-2\": {\n \"x\": {\n \"$value\": {\n \"value\": 0,\n \"unit\": \"px\"\n },\n \"$type\": \"dimension\"\n },\n \"y\": {\n \"$value\": {\n \"value\": 10,\n \"unit\": \"px\"\n },\n \"$type\": \"dimension\"\n },\n \"blur\": {\n \"$value\": {\n \"value\": 14,\n \"unit\": \"px\"\n },\n \"$type\": \"dimension\"\n },\n \"spread\": {\n \"$value\": {\n \"value\": -1,\n \"unit\": \"px\"\n },\n \"$type\": \"dimension\"\n },\n \"color\": {\n \"$value\": \"#00000038\",\n \"$type\": \"color\"\n }\n }\n },\n \"2xl\": {\n \"layer-1\": {\n \"x\": {\n \"$value\": {\n \"value\": 0,\n \"unit\": \"px\"\n },\n \"$type\": \"dimension\"\n },\n \"y\": {\n \"$value\": {\n \"value\": 1,\n \"unit\": \"px\"\n },\n \"$type\": \"dimension\"\n },\n \"blur\": {\n \"$value\": {\n \"value\": 4,\n \"unit\": \"px\"\n },\n \"$type\": \"dimension\"\n },\n \"spread\": {\n \"$value\": {\n \"value\": 0,\n \"unit\": \"px\"\n },\n \"$type\": \"dimension\"\n },\n \"color\": {\n \"$value\": \"#0000004d\",\n \"$type\": \"color\"\n }\n }\n },\n \"inner\": {\n \"layer-1\": {\n \"x\": {\n \"$value\": {\n \"value\": 0,\n \"unit\": \"px\"\n },\n \"$type\": \"dimension\"\n },\n \"y\": {\n \"$value\": {\n \"value\": 1,\n \"unit\": \"px\"\n },\n \"$type\": \"dimension\"\n },\n \"blur\": {\n \"$value\": {\n \"value\": 4,\n \"unit\": \"px\"\n },\n \"$type\": \"dimension\"\n },\n \"spread\": {\n \"$value\": {\n \"value\": 0,\n \"unit\": \"px\"\n },\n \"$type\": \"dimension\"\n },\n \"color\": {\n \"$value\": \"#00000010\",\n \"$type\": \"color\"\n }\n }\n }\n}\n","{\n \"2xs\": {\n \"layer-1\": {\n \"x\": {\n \"$value\": {\n \"value\": 0,\n \"unit\": \"px\"\n },\n \"$type\": \"dimension\"\n },\n \"y\": {\n \"$value\": {\n \"value\": 1,\n \"unit\": \"px\"\n },\n \"$type\": \"dimension\"\n },\n \"blur\": {\n \"$value\": {\n \"value\": 3,\n \"unit\": \"px\"\n },\n \"$type\": \"dimension\"\n },\n \"spread\": {\n \"$value\": {\n \"value\": 0,\n \"unit\": \"px\"\n },\n \"$type\": \"dimension\"\n },\n \"color\": {\n \"$value\": \"#0000000a\",\n \"$type\": \"color\"\n }\n }\n },\n \"xs\": {\n \"layer-1\": {\n \"x\": {\n \"$value\": {\n \"value\": 0,\n \"unit\": \"px\"\n },\n \"$type\": \"dimension\"\n },\n \"y\": {\n \"$value\": {\n \"value\": 1,\n \"unit\": \"px\"\n },\n \"$type\": \"dimension\"\n },\n \"blur\": {\n \"$value\": {\n \"value\": 3,\n \"unit\": \"px\"\n },\n \"$type\": \"dimension\"\n },\n \"spread\": {\n \"$value\": {\n \"value\": 0,\n \"unit\": \"px\"\n },\n \"$type\": \"dimension\"\n },\n \"color\": {\n \"$value\": \"#0000000a\",\n \"$type\": \"color\"\n }\n }\n },\n \"sm\": {\n \"layer-1\": {\n \"x\": {\n \"$value\": {\n \"value\": 0,\n \"unit\": \"px\"\n },\n \"$type\": \"dimension\"\n },\n \"y\": {\n \"$value\": {\n \"value\": 1,\n \"unit\": \"px\"\n },\n \"$type\": \"dimension\"\n },\n \"blur\": {\n \"$value\": {\n \"value\": 3,\n \"unit\": \"px\"\n },\n \"$type\": \"dimension\"\n },\n \"spread\": {\n \"$value\": {\n \"value\": 0,\n \"unit\": \"px\"\n },\n \"$type\": \"dimension\"\n },\n \"color\": {\n \"$value\": \"#0000000d\",\n \"$type\": \"color\"\n }\n },\n \"layer-2\": {\n \"x\": {\n \"$value\": {\n \"value\": 0,\n \"unit\": \"px\"\n },\n \"$type\": \"dimension\"\n },\n \"y\": {\n \"$value\": {\n \"value\": 1,\n \"unit\": \"px\"\n },\n \"$type\": \"dimension\"\n },\n \"blur\": {\n \"$value\": {\n \"value\": 2,\n \"unit\": \"px\"\n },\n \"$type\": \"dimension\"\n },\n \"spread\": {\n \"$value\": {\n \"value\": -1,\n \"unit\": \"px\"\n },\n \"$type\": \"dimension\"\n },\n \"color\": {\n \"$value\": \"#00000014\",\n \"$type\": \"color\"\n }\n }\n },\n \"base\": {\n \"layer-1\": {\n \"x\": {\n \"$value\": {\n \"value\": 0,\n \"unit\": \"px\"\n },\n \"$type\": \"dimension\"\n },\n \"y\": {\n \"$value\": {\n \"value\": 1,\n \"unit\": \"px\"\n },\n \"$type\": \"dimension\"\n },\n \"blur\": {\n \"$value\": {\n \"value\": 3,\n \"unit\": \"px\"\n },\n \"$type\": \"dimension\"\n },\n \"spread\": {\n \"$value\": {\n \"value\": 0,\n \"unit\": \"px\"\n },\n \"$type\": \"dimension\"\n },\n \"color\": {\n \"$value\": \"#00000014\",\n \"$type\": \"color\"\n }\n },\n \"layer-2\": {\n \"x\": {\n \"$value\": {\n \"value\": 0,\n \"unit\": \"px\"\n },\n \"$type\": \"dimension\"\n },\n \"y\": {\n \"$value\": {\n \"value\": 1,\n \"unit\": \"px\"\n },\n \"$type\": \"dimension\"\n },\n \"blur\": {\n \"$value\": {\n \"value\": 2,\n \"unit\": \"px\"\n },\n \"$type\": \"dimension\"\n },\n \"spread\": {\n \"$value\": {\n \"value\": 0,\n \"unit\": \"px\"\n },\n \"$type\": \"dimension\"\n },\n \"color\": {\n \"$value\": \"#00000014\",\n \"$type\": \"color\"\n }\n }\n },\n \"md\": {\n \"layer-1\": {\n \"x\": {\n \"$value\": {\n \"value\": 0,\n \"unit\": \"px\"\n },\n \"$type\": \"dimension\"\n },\n \"y\": {\n \"$value\": {\n \"value\": 1,\n \"unit\": \"px\"\n },\n \"$type\": \"dimension\"\n },\n \"blur\": {\n \"$value\": {\n \"value\": 3,\n \"unit\": \"px\"\n },\n \"$type\": \"dimension\"\n },\n \"spread\": {\n \"$value\": {\n \"value\": 0,\n \"unit\": \"px\"\n },\n \"$type\": \"dimension\"\n },\n \"color\": {\n \"$value\": \"#00000014\",\n \"$type\": \"color\"\n }\n },\n \"layer-2\": {\n \"x\": {\n \"$value\": {\n \"value\": 0,\n \"unit\": \"px\"\n },\n \"$type\": \"dimension\"\n },\n \"y\": {\n \"$value\": {\n \"value\": 2,\n \"unit\": \"px\"\n },\n \"$type\": \"dimension\"\n },\n \"blur\": {\n \"$value\": {\n \"value\": 4,\n \"unit\": \"px\"\n },\n \"$type\": \"dimension\"\n },\n \"spread\": {\n \"$value\": {\n \"value\": -1,\n \"unit\": \"px\"\n },\n \"$type\": \"dimension\"\n },\n \"color\": {\n \"$value\": \"#00000014\",\n \"$type\": \"color\"\n }\n }\n },\n \"lg\": {\n \"layer-1\": {\n \"x\": {\n \"$value\": {\n \"value\": 0,\n \"unit\": \"px\"\n },\n \"$type\": \"dimension\"\n },\n \"y\": {\n \"$value\": {\n \"value\": 1,\n \"unit\": \"px\"\n },\n \"$type\": \"dimension\"\n },\n \"blur\": {\n \"$value\": {\n \"value\": 3,\n \"unit\": \"px\"\n },\n \"$type\": \"dimension\"\n },\n \"spread\": {\n \"$value\": {\n \"value\": 0,\n \"unit\": \"px\"\n },\n \"$type\": \"dimension\"\n },\n \"color\": {\n \"$value\": \"#0000001a\",\n \"$type\": \"color\"\n }\n },\n \"layer-2\": {\n \"x\": {\n \"$value\": {\n \"value\": 0,\n \"unit\": \"px\"\n },\n \"$type\": \"dimension\"\n },\n \"y\": {\n \"$value\": {\n \"value\": 5,\n \"unit\": \"px\"\n },\n \"$type\": \"dimension\"\n },\n \"blur\": {\n \"$value\": {\n \"value\": 8,\n \"unit\": \"px\"\n },\n \"$type\": \"dimension\"\n },\n \"spread\": {\n \"$value\": {\n \"value\": -1,\n \"unit\": \"px\"\n },\n \"$type\": \"dimension\"\n },\n \"color\": {\n \"$value\": \"#0000001a\",\n \"$type\": \"color\"\n }\n }\n },\n \"xl\": {\n \"layer-1\": {\n \"x\": {\n \"$value\": {\n \"value\": 0,\n \"unit\": \"px\"\n },\n \"$type\": \"dimension\"\n },\n \"y\": {\n \"$value\": {\n \"value\": 1,\n \"unit\": \"px\"\n },\n \"$type\": \"dimension\"\n },\n \"blur\": {\n \"$value\": {\n \"value\": 3,\n \"unit\": \"px\"\n },\n \"$type\": \"dimension\"\n },\n \"spread\": {\n \"$value\": {\n \"value\": 0,\n \"unit\": \"px\"\n },\n \"$type\": \"dimension\"\n },\n \"color\": {\n \"$value\": \"#0000001a\",\n \"$type\": \"color\"\n }\n },\n \"layer-2\": {\n \"x\": {\n \"$value\": {\n \"value\": 0,\n \"unit\": \"px\"\n },\n \"$type\": \"dimension\"\n },\n \"y\": {\n \"$value\": {\n \"value\": 10,\n \"unit\": \"px\"\n },\n \"$type\": \"dimension\"\n },\n \"blur\": {\n \"$value\": {\n \"value\": 14,\n \"unit\": \"px\"\n },\n \"$type\": \"dimension\"\n },\n \"spread\": {\n \"$value\": {\n \"value\": -1,\n \"unit\": \"px\"\n },\n \"$type\": \"dimension\"\n },\n \"color\": {\n \"$value\": \"#0000001a\",\n \"$type\": \"color\"\n }\n }\n },\n \"2xl\": {\n \"layer-1\": {\n \"x\": {\n \"$value\": {\n \"value\": 0,\n \"unit\": \"px\"\n },\n \"$type\": \"dimension\"\n },\n \"y\": {\n \"$value\": {\n \"value\": 1,\n \"unit\": \"px\"\n },\n \"$type\": \"dimension\"\n },\n \"blur\": {\n \"$value\": {\n \"value\": 4,\n \"unit\": \"px\"\n },\n \"$type\": \"dimension\"\n },\n \"spread\": {\n \"$value\": {\n \"value\": 0,\n \"unit\": \"px\"\n },\n \"$type\": \"dimension\"\n },\n \"color\": {\n \"$value\": \"#00000038\",\n \"$type\": \"color\"\n }\n }\n },\n \"inner\": {\n \"layer-1\": {\n \"x\": {\n \"$value\": {\n \"value\": 0,\n \"unit\": \"px\"\n },\n \"$type\": \"dimension\"\n },\n \"y\": {\n \"$value\": {\n \"value\": 1,\n \"unit\": \"px\"\n },\n \"$type\": \"dimension\"\n },\n \"blur\": {\n \"$value\": {\n \"value\": 4,\n \"unit\": \"px\"\n },\n \"$type\": \"dimension\"\n },\n \"spread\": {\n \"$value\": {\n \"value\": 0,\n \"unit\": \"px\"\n },\n \"$type\": \"dimension\"\n },\n \"color\": {\n \"$value\": \"#0000000a\",\n \"$type\": \"color\"\n }\n }\n }\n}\n","{\n \"2xs\": {\n \"layer-1\": {\n \"x\": {\n \"$value\": {\n \"value\": 0,\n \"unit\": \"px\"\n },\n \"$type\": \"dimension\"\n },\n \"y\": {\n \"$value\": {\n \"value\": 1,\n \"unit\": \"px\"\n },\n \"$type\": \"dimension\"\n },\n \"blur\": {\n \"$value\": {\n \"value\": 3,\n \"unit\": \"px\"\n },\n \"$type\": \"dimension\"\n },\n \"spread\": {\n \"$value\": {\n \"value\": 0,\n \"unit\": \"px\"\n },\n \"$type\": \"dimension\"\n },\n \"color\": {\n \"$value\": \"#00000018\",\n \"$type\": \"color\"\n }\n }\n },\n \"xs\": {\n \"layer-1\": {\n \"x\": {\n \"$value\": {\n \"value\": 0,\n \"unit\": \"px\"\n },\n \"$type\": \"dimension\"\n },\n \"y\": {\n \"$value\": {\n \"value\": 1,\n \"unit\": \"px\"\n },\n \"$type\": \"dimension\"\n },\n \"blur\": {\n \"$value\": {\n \"value\": 3,\n \"unit\": \"px\"\n },\n \"$type\": \"dimension\"\n },\n \"spread\": {\n \"$value\": {\n \"value\": 0,\n \"unit\": \"px\"\n },\n \"$type\": \"dimension\"\n },\n \"color\": {\n \"$value\": \"#00000018\",\n \"$type\": \"color\"\n }\n }\n },\n \"sm\": {\n \"layer-1\": {\n \"x\": {\n \"$value\": {\n \"value\": 0,\n \"unit\": \"px\"\n },\n \"$type\": \"dimension\"\n },\n \"y\": {\n \"$value\": {\n \"value\": 1,\n \"unit\": \"px\"\n },\n \"$type\": \"dimension\"\n },\n \"blur\": {\n \"$value\": {\n \"value\": 3,\n \"unit\": \"px\"\n },\n \"$type\": \"dimension\"\n },\n \"spread\": {\n \"$value\": {\n \"value\": 0,\n \"unit\": \"px\"\n },\n \"$type\": \"dimension\"\n },\n \"color\": {\n \"$value\": \"#0000002a\",\n \"$type\": \"color\"\n }\n },\n \"layer-2\": {\n \"x\": {\n \"$value\": {\n \"value\": 0,\n \"unit\": \"px\"\n },\n \"$type\": \"dimension\"\n },\n \"y\": {\n \"$value\": {\n \"value\": 2,\n \"unit\": \"px\"\n },\n \"$type\": \"dimension\"\n },\n \"blur\": {\n \"$value\": {\n \"value\": 4,\n \"unit\": \"px\"\n },\n \"$type\": \"dimension\"\n },\n \"spread\": {\n \"$value\": {\n \"value\": -1,\n \"unit\": \"px\"\n },\n \"$type\": \"dimension\"\n },\n \"color\": {\n \"$value\": \"#0000002e\",\n \"$type\": \"color\"\n }\n }\n },\n \"base\": {\n \"layer-1\": {\n \"x\": {\n \"$value\": {\n \"value\": 0,\n \"unit\": \"px\"\n },\n \"$type\": \"dimension\"\n },\n \"y\": {\n \"$value\": {\n \"value\": 1,\n \"unit\": \"px\"\n },\n \"$type\": \"dimension\"\n },\n \"blur\": {\n \"$value\": {\n \"value\": 3,\n \"unit\": \"px\"\n },\n \"$type\": \"dimension\"\n },\n \"spread\": {\n \"$value\": {\n \"value\": 0,\n \"unit\": \"px\"\n },\n \"$type\": \"dimension\"\n },\n \"color\": {\n \"$value\": \"#0000002a\",\n \"$type\": \"color\"\n }\n },\n \"layer-2\": {\n \"x\": {\n \"$value\": {\n \"value\": 0,\n \"unit\": \"px\"\n },\n \"$type\": \"dimension\"\n },\n \"y\": {\n \"$value\": {\n \"value\": 3,\n \"unit\": \"px\"\n },\n \"$type\": \"dimension\"\n },\n \"blur\": {\n \"$value\": {\n \"value\": 6,\n \"unit\": \"px\"\n },\n \"$type\": \"dimension\"\n },\n \"spread\": {\n \"$value\": {\n \"value\": -1,\n \"unit\": \"px\"\n },\n \"$type\": \"dimension\"\n },\n \"color\": {\n \"$value\": \"#00000033\",\n \"$type\": \"color\"\n }\n }\n },\n \"md\": {\n \"layer-1\": {\n \"x\": {\n \"$value\": {\n \"value\": 0,\n \"unit\": \"px\"\n },\n \"$type\": \"dimension\"\n },\n \"y\": {\n \"$value\": {\n \"value\": 1,\n \"unit\": \"px\"\n },\n \"$type\": \"dimension\"\n },\n \"blur\": {\n \"$value\": {\n \"value\": 3,\n \"unit\": \"px\"\n },\n \"$type\": \"dimension\"\n },\n \"spread\": {\n \"$value\": {\n \"value\": 0,\n \"unit\": \"px\"\n },\n \"$type\": \"dimension\"\n },\n \"color\": {\n \"$value\": \"#0000002e\",\n \"$type\": \"color\"\n }\n },\n \"layer-2\": {\n \"x\": {\n \"$value\": {\n \"value\": 0,\n \"unit\": \"px\"\n },\n \"$type\": \"dimension\"\n },\n \"y\": {\n \"$value\": {\n \"value\": 4,\n \"unit\": \"px\"\n },\n \"$type\": \"dimension\"\n },\n \"blur\": {\n \"$value\": {\n \"value\": 8,\n \"unit\": \"px\"\n },\n \"$type\": \"dimension\"\n },\n \"spread\": {\n \"$value\": {\n \"value\": -1,\n \"unit\": \"px\"\n },\n \"$type\": \"dimension\"\n },\n \"color\": {\n \"$value\": \"#00000038\",\n \"$type\": \"color\"\n }\n }\n },\n \"lg\": {\n \"layer-1\": {\n \"x\": {\n \"$value\": {\n \"value\": 0,\n \"unit\": \"px\"\n },\n \"$type\": \"dimension\"\n },\n \"y\": {\n \"$value\": {\n \"value\": 1,\n \"unit\": \"px\"\n },\n \"$type\": \"dimension\"\n },\n \"blur\": {\n \"$value\": {\n \"value\": 3,\n \"unit\": \"px\"\n },\n \"$type\": \"dimension\"\n },\n \"spread\": {\n \"$value\": {\n \"value\": 0,\n \"unit\": \"px\"\n },\n \"$type\": \"dimension\"\n },\n \"color\": {\n \"$value\": \"#00000038\",\n \"$type\": \"color\"\n }\n },\n \"layer-2\": {\n \"x\": {\n \"$value\": {\n \"value\": 0,\n \"unit\": \"px\"\n },\n \"$type\": \"dimension\"\n },\n \"y\": {\n \"$value\": {\n \"value\": 8,\n \"unit\": \"px\"\n },\n \"$type\": \"dimension\"\n },\n \"blur\": {\n \"$value\": {\n \"value\": 16,\n \"unit\": \"px\"\n },\n \"$type\": \"dimension\"\n },\n \"spread\": {\n \"$value\": {\n \"value\": -1,\n \"unit\": \"px\"\n },\n \"$type\": \"dimension\"\n },\n \"color\": {\n \"$value\": \"#00000042\",\n \"$type\": \"color\"\n }\n }\n },\n \"xl\": {\n \"layer-1\": {\n \"x\": {\n \"$value\": {\n \"value\": 0,\n \"unit\": \"px\"\n },\n \"$type\": \"dimension\"\n },\n \"y\": {\n \"$value\": {\n \"value\": 1,\n \"unit\": \"px\"\n },\n \"$type\": \"dimension\"\n },\n \"blur\": {\n \"$value\": {\n \"value\": 3,\n \"unit\": \"px\"\n },\n \"$type\": \"dimension\"\n },\n \"spread\": {\n \"$value\": {\n \"value\": 0,\n \"unit\": \"px\"\n },\n \"$type\": \"dimension\"\n },\n \"color\": {\n \"$value\": \"#00000042\",\n \"$type\": \"color\"\n }\n },\n \"layer-2\": {\n \"x\": {\n \"$value\": {\n \"value\": 0,\n \"unit\": \"px\"\n },\n \"$type\": \"dimension\"\n },\n \"y\": {\n \"$value\": {\n \"value\": 16,\n \"unit\": \"px\"\n },\n \"$type\": \"dimension\"\n },\n \"blur\": {\n \"$value\": {\n \"value\": 24,\n \"unit\": \"px\"\n },\n \"$type\": \"dimension\"\n },\n \"spread\": {\n \"$value\": {\n \"value\": -1,\n \"unit\": \"px\"\n },\n \"$type\": \"dimension\"\n },\n \"color\": {\n \"$value\": \"#00000052\",\n \"$type\": \"color\"\n }\n }\n },\n \"2xl\": {\n \"layer-1\": {\n \"x\": {\n \"$value\": {\n \"value\": 0,\n \"unit\": \"px\"\n },\n \"$type\": \"dimension\"\n },\n \"y\": {\n \"$value\": {\n \"value\": 1,\n \"unit\": \"px\"\n },\n \"$type\": \"dimension\"\n },\n \"blur\": {\n \"$value\": {\n \"value\": 3,\n \"unit\": \"px\"\n },\n \"$type\": \"dimension\"\n },\n \"spread\": {\n \"$value\": {\n \"value\": 0,\n \"unit\": \"px\"\n },\n \"$type\": \"dimension\"\n },\n \"color\": {\n \"$value\": \"#00000059\",\n \"$type\": \"color\"\n }\n }\n },\n \"inner\": {\n \"layer-1\": {\n \"x\": {\n \"$value\": {\n \"value\": 0,\n \"unit\": \"px\"\n },\n \"$type\": \"dimension\"\n },\n \"y\": {\n \"$value\": {\n \"value\": 2,\n \"unit\": \"px\"\n },\n \"$type\": \"dimension\"\n },\n \"blur\": {\n \"$value\": {\n \"value\": 6,\n \"unit\": \"px\"\n },\n \"$type\": \"dimension\"\n },\n \"spread\": {\n \"$value\": {\n \"value\": 0,\n \"unit\": \"px\"\n },\n \"$type\": \"dimension\"\n },\n \"color\": {\n \"$value\": \"#00000018\",\n \"$type\": \"color\"\n }\n }\n }\n}\n","{\n \"2xs\": {\n \"layer-1\": {\n \"x\": {\n \"$value\": {\n \"value\": 0,\n \"unit\": \"px\"\n },\n \"$type\": \"dimension\"\n },\n \"y\": {\n \"$value\": {\n \"value\": 1,\n \"unit\": \"px\"\n },\n \"$type\": \"dimension\"\n },\n \"blur\": {\n \"$value\": {\n \"value\": 3,\n \"unit\": \"px\"\n },\n \"$type\": \"dimension\"\n },\n \"spread\": {\n \"$value\": {\n \"value\": 0,\n \"unit\": \"px\"\n },\n \"$type\": \"dimension\"\n },\n \"color\": {\n \"$value\": \"#00000014\",\n \"$type\": \"color\"\n }\n }\n },\n \"xs\": {\n \"layer-1\": {\n \"x\": {\n \"$value\": {\n \"value\": 0,\n \"unit\": \"px\"\n },\n \"$type\": \"dimension\"\n },\n \"y\": {\n \"$value\": {\n \"value\": 1,\n \"unit\": \"px\"\n },\n \"$type\": \"dimension\"\n },\n \"blur\": {\n \"$value\": {\n \"value\": 3,\n \"unit\": \"px\"\n },\n \"$type\": \"dimension\"\n },\n \"spread\": {\n \"$value\": {\n \"value\": 0,\n \"unit\": \"px\"\n },\n \"$type\": \"dimension\"\n },\n \"color\": {\n \"$value\": \"#00000014\",\n \"$type\": \"color\"\n }\n }\n },\n \"sm\": {\n \"layer-1\": {\n \"x\": {\n \"$value\": {\n \"value\": 0,\n \"unit\": \"px\"\n },\n \"$type\": \"dimension\"\n },\n \"y\": {\n \"$value\": {\n \"value\": 1,\n \"unit\": \"px\"\n },\n \"$type\": \"dimension\"\n },\n \"blur\": {\n \"$value\": {\n \"value\": 3,\n \"unit\": \"px\"\n },\n \"$type\": \"dimension\"\n },\n \"spread\": {\n \"$value\": {\n \"value\": 0,\n \"unit\": \"px\"\n },\n \"$type\": \"dimension\"\n },\n \"color\": {\n \"$value\": \"#0000001f\",\n \"$type\": \"color\"\n }\n },\n \"layer-2\": {\n \"x\": {\n \"$value\": {\n \"value\": 0,\n \"unit\": \"px\"\n },\n \"$type\": \"dimension\"\n },\n \"y\": {\n \"$value\": {\n \"value\": 2,\n \"unit\": \"px\"\n },\n \"$type\": \"dimension\"\n },\n \"blur\": {\n \"$value\": {\n \"value\": 4,\n \"unit\": \"px\"\n },\n \"$type\": \"dimension\"\n },\n \"spread\": {\n \"$value\": {\n \"value\": -1,\n \"unit\": \"px\"\n },\n \"$type\": \"dimension\"\n },\n \"color\": {\n \"$value\": \"#0000001f\",\n \"$type\": \"color\"\n }\n }\n },\n \"base\": {\n \"layer-1\": {\n \"x\": {\n \"$value\": {\n \"value\": 0,\n \"unit\": \"px\"\n },\n \"$type\": \"dimension\"\n },\n \"y\": {\n \"$value\": {\n \"value\": 1,\n \"unit\": \"px\"\n },\n \"$type\": \"dimension\"\n },\n \"blur\": {\n \"$value\": {\n \"value\": 3,\n \"unit\": \"px\"\n },\n \"$type\": \"dimension\"\n },\n \"spread\": {\n \"$value\": {\n \"value\": 0,\n \"unit\": \"px\"\n },\n \"$type\": \"dimension\"\n },\n \"color\": {\n \"$value\": \"#0000001f\",\n \"$type\": \"color\"\n }\n },\n \"layer-2\": {\n \"x\": {\n \"$value\": {\n \"value\": 0,\n \"unit\": \"px\"\n },\n \"$type\": \"dimension\"\n },\n \"y\": {\n \"$value\": {\n \"value\": 3,\n \"unit\": \"px\"\n },\n \"$type\": \"dimension\"\n },\n \"blur\": {\n \"$value\": {\n \"value\": 6,\n \"unit\": \"px\"\n },\n \"$type\": \"dimension\"\n },\n \"spread\": {\n \"$value\": {\n \"value\": -1,\n \"unit\": \"px\"\n },\n \"$type\": \"dimension\"\n },\n \"color\": {\n \"$value\": \"#0000001f\",\n \"$type\": \"color\"\n }\n }\n },\n \"md\": {\n \"layer-1\": {\n \"x\": {\n \"$value\": {\n \"value\": 0,\n \"unit\": \"px\"\n },\n \"$type\": \"dimension\"\n },\n \"y\": {\n \"$value\": {\n \"value\": 1,\n \"unit\": \"px\"\n },\n \"$type\": \"dimension\"\n },\n \"blur\": {\n \"$value\": {\n \"value\": 3,\n \"unit\": \"px\"\n },\n \"$type\": \"dimension\"\n },\n \"spread\": {\n \"$value\": {\n \"value\": 0,\n \"unit\": \"px\"\n },\n \"$type\": \"dimension\"\n },\n \"color\": {\n \"$value\": \"#0000001f\",\n \"$type\": \"color\"\n }\n },\n \"layer-2\": {\n \"x\": {\n \"$value\": {\n \"value\": 0,\n \"unit\": \"px\"\n },\n \"$type\": \"dimension\"\n },\n \"y\": {\n \"$value\": {\n \"value\": 4,\n \"unit\": \"px\"\n },\n \"$type\": \"dimension\"\n },\n \"blur\": {\n \"$value\": {\n \"value\": 8,\n \"unit\": \"px\"\n },\n \"$type\": \"dimension\"\n },\n \"spread\": {\n \"$value\": {\n \"value\": -1,\n \"unit\": \"px\"\n },\n \"$type\": \"dimension\"\n },\n \"color\": {\n \"$value\": \"#0000001f\",\n \"$type\": \"color\"\n }\n }\n },\n \"lg\": {\n \"layer-1\": {\n \"x\": {\n \"$value\": {\n \"value\": 0,\n \"unit\": \"px\"\n },\n \"$type\": \"dimension\"\n },\n \"y\": {\n \"$value\": {\n \"value\": 1,\n \"unit\": \"px\"\n },\n \"$type\": \"dimension\"\n },\n \"blur\": {\n \"$value\": {\n \"value\": 3,\n \"unit\": \"px\"\n },\n \"$type\": \"dimension\"\n },\n \"spread\": {\n \"$value\": {\n \"value\": 0,\n \"unit\": \"px\"\n },\n \"$type\": \"dimension\"\n },\n \"color\": {\n \"$value\": \"#00000026\",\n \"$type\": \"color\"\n }\n },\n \"layer-2\": {\n \"x\": {\n \"$value\": {\n \"value\": 0,\n \"unit\": \"px\"\n },\n \"$type\": \"dimension\"\n },\n \"y\": {\n \"$value\": {\n \"value\": 8,\n \"unit\": \"px\"\n },\n \"$type\": \"dimension\"\n },\n \"blur\": {\n \"$value\": {\n \"value\": 16,\n \"unit\": \"px\"\n },\n \"$type\": \"dimension\"\n },\n \"spread\": {\n \"$value\": {\n \"value\": -1,\n \"unit\": \"px\"\n },\n \"$type\": \"dimension\"\n },\n \"color\": {\n \"$value\": \"#00000026\",\n \"$type\": \"color\"\n }\n }\n },\n \"xl\": {\n \"layer-1\": {\n \"x\": {\n \"$value\": {\n \"value\": 0,\n \"unit\": \"px\"\n },\n \"$type\": \"dimension\"\n },\n \"y\": {\n \"$value\": {\n \"value\": 1,\n \"unit\": \"px\"\n },\n \"$type\": \"dimension\"\n },\n \"blur\": {\n \"$value\": {\n \"value\": 3,\n \"unit\": \"px\"\n },\n \"$type\": \"dimension\"\n },\n \"spread\": {\n \"$value\": {\n \"value\": 0,\n \"unit\": \"px\"\n },\n \"$type\": \"dimension\"\n },\n \"color\": {\n \"$value\": \"#0000002e\",\n \"$type\": \"color\"\n }\n },\n \"layer-2\": {\n \"x\": {\n \"$value\": {\n \"value\": 0,\n \"unit\": \"px\"\n },\n \"$type\": \"dimension\"\n },\n \"y\": {\n \"$value\": {\n \"value\": 16,\n \"unit\": \"px\"\n },\n \"$type\": \"dimension\"\n },\n \"blur\": {\n \"$value\": {\n \"value\": 24,\n \"unit\": \"px\"\n },\n \"$type\": \"dimension\"\n },\n \"spread\": {\n \"$value\": {\n \"value\": -1,\n \"unit\": \"px\"\n },\n \"$type\": \"dimension\"\n },\n \"color\": {\n \"$value\": \"#0000002e\",\n \"$type\": \"color\"\n }\n }\n },\n \"2xl\": {\n \"layer-1\": {\n \"x\": {\n \"$value\": {\n \"value\": 0,\n \"unit\": \"px\"\n },\n \"$type\": \"dimension\"\n },\n \"y\": {\n \"$value\": {\n \"value\": 1,\n \"unit\": \"px\"\n },\n \"$type\": \"dimension\"\n },\n \"blur\": {\n \"$value\": {\n \"value\": 3,\n \"unit\": \"px\"\n },\n \"$type\": \"dimension\"\n },\n \"spread\": {\n \"$value\": {\n \"value\": 0,\n \"unit\": \"px\"\n },\n \"$type\": \"dimension\"\n },\n \"color\": {\n \"$value\": \"#0000004d\",\n \"$type\": \"color\"\n }\n }\n },\n \"inner\": {\n \"layer-1\": {\n \"x\": {\n \"$value\": {\n \"value\": 0,\n \"unit\": \"px\"\n },\n \"$type\": \"dimension\"\n },\n \"y\": {\n \"$value\": {\n \"value\": 2,\n \"unit\": \"px\"\n },\n \"$type\": \"dimension\"\n },\n \"blur\": {\n \"$value\": {\n \"value\": 6,\n \"unit\": \"px\"\n },\n \"$type\": \"dimension\"\n },\n \"spread\": {\n \"$value\": {\n \"value\": 0,\n \"unit\": \"px\"\n },\n \"$type\": \"dimension\"\n },\n \"color\": {\n \"$value\": \"#00000014\",\n \"$type\": \"color\"\n }\n }\n }\n}\n","{\n \"$description\": \"Responsive breakpoints (rem). Values match Tailwind v4's own defaults exactly — nxds declares them explicitly so they fall under the same reset-and-own discipline as every other namespace (color/spacing/radius/shadow) instead of being inherited implicitly. Tailwind v4 auto-discovers --breakpoint-* from @theme and uses them to generate the nx:sm:…nx:2xl: responsive variants. Override at BUILD TIME by re-declaring a value in a consumer @theme block — NOT at runtime: @media cannot read var(), so Tailwind bakes the resolved value into the generated media queries at build time.\",\n \"breakpoint-sm\": {\n \"$value\": {\n \"value\": 40,\n \"unit\": \"rem\"\n },\n \"$type\": \"dimension\",\n \"$description\": \"640px @ 16px root — mobile / narrow (first-class).\"\n },\n \"breakpoint-md\": {\n \"$value\": {\n \"value\": 48,\n \"unit\": \"rem\"\n },\n \"$type\": \"dimension\",\n \"$description\": \"768px @ 16px root — large phone / small tablet.\"\n },\n \"breakpoint-lg\": {\n \"$value\": {\n \"value\": 64,\n \"unit\": \"rem\"\n },\n \"$type\": \"dimension\",\n \"$description\": \"1024px @ 16px root — desktop floor (first-class).\"\n },\n \"breakpoint-xl\": {\n \"$value\": {\n \"value\": 80,\n \"unit\": \"rem\"\n },\n \"$type\": \"dimension\",\n \"$description\": \"1280px @ 16px root — desktop reference width.\"\n },\n \"breakpoint-2xl\": {\n \"$value\": {\n \"value\": 96,\n \"unit\": \"rem\"\n },\n \"$type\": \"dimension\",\n \"$description\": \"1536px @ 16px root — wide (extra breathing room).\"\n }\n}\n","{\n \"spacing\": {\n \"0\": {\n \"$value\": {\n \"value\": 0,\n \"unit\": \"px\"\n },\n \"$type\": \"dimension\"\n },\n \"1\": {\n \"$value\": {\n \"value\": 4,\n \"unit\": \"px\"\n },\n \"$type\": \"dimension\"\n },\n \"2\": {\n \"$value\": {\n \"value\": 8,\n \"unit\": \"px\"\n },\n \"$type\": \"dimension\"\n },\n \"3\": {\n \"$value\": {\n \"value\": 12,\n \"unit\": \"px\"\n },\n \"$type\": \"dimension\"\n },\n \"4\": {\n \"$value\": {\n \"value\": 16,\n \"unit\": \"px\"\n },\n \"$type\": \"dimension\"\n },\n \"5\": {\n \"$value\": {\n \"value\": 20,\n \"unit\": \"px\"\n },\n \"$type\": \"dimension\"\n },\n \"6\": {\n \"$value\": {\n \"value\": 24,\n \"unit\": \"px\"\n },\n \"$type\": \"dimension\"\n },\n \"7\": {\n \"$value\": {\n \"value\": 28,\n \"unit\": \"px\"\n },\n \"$type\": \"dimension\"\n },\n \"8\": {\n \"$value\": {\n \"value\": 32,\n \"unit\": \"px\"\n },\n \"$type\": \"dimension\"\n },\n \"9\": {\n \"$value\": {\n \"value\": 36,\n \"unit\": \"px\"\n },\n \"$type\": \"dimension\"\n },\n \"10\": {\n \"$value\": {\n \"value\": 40,\n \"unit\": \"px\"\n },\n \"$type\": \"dimension\"\n },\n \"11\": {\n \"$value\": {\n \"value\": 44,\n \"unit\": \"px\"\n },\n \"$type\": \"dimension\"\n },\n \"12\": {\n \"$value\": {\n \"value\": 48,\n \"unit\": \"px\"\n },\n \"$type\": \"dimension\"\n },\n \"14\": {\n \"$value\": {\n \"value\": 56,\n \"unit\": \"px\"\n },\n \"$type\": \"dimension\"\n },\n \"16\": {\n \"$value\": {\n \"value\": 64,\n \"unit\": \"px\"\n },\n \"$type\": \"dimension\"\n },\n \"20\": {\n \"$value\": {\n \"value\": 80,\n \"unit\": \"px\"\n },\n \"$type\": \"dimension\"\n },\n \"24\": {\n \"$value\": {\n \"value\": 96,\n \"unit\": \"px\"\n },\n \"$type\": \"dimension\"\n },\n \"28\": {\n \"$value\": {\n \"value\": 112,\n \"unit\": \"px\"\n },\n \"$type\": \"dimension\"\n },\n \"32\": {\n \"$value\": {\n \"value\": 128,\n \"unit\": \"px\"\n },\n \"$type\": \"dimension\"\n },\n \"36\": {\n \"$value\": {\n \"value\": 144,\n \"unit\": \"px\"\n },\n \"$type\": \"dimension\"\n },\n \"40\": {\n \"$value\": {\n \"value\": 160,\n \"unit\": \"px\"\n },\n \"$type\": \"dimension\"\n },\n \"44\": {\n \"$value\": {\n \"value\": 176,\n \"unit\": \"px\"\n },\n \"$type\": \"dimension\"\n },\n \"48\": {\n \"$value\": {\n \"value\": 192,\n \"unit\": \"px\"\n },\n \"$type\": \"dimension\"\n },\n \"52\": {\n \"$value\": {\n \"value\": 208,\n \"unit\": \"px\"\n },\n \"$type\": \"dimension\"\n },\n \"56\": {\n \"$value\": {\n \"value\": 224,\n \"unit\": \"px\"\n },\n \"$type\": \"dimension\"\n },\n \"60\": {\n \"$value\": {\n \"value\": 240,\n \"unit\": \"px\"\n },\n \"$type\": \"dimension\"\n },\n \"64\": {\n \"$value\": {\n \"value\": 256,\n \"unit\": \"px\"\n },\n \"$type\": \"dimension\"\n },\n \"72\": {\n \"$value\": {\n \"value\": 288,\n \"unit\": \"px\"\n },\n \"$type\": \"dimension\"\n },\n \"80\": {\n \"$value\": {\n \"value\": 320,\n \"unit\": \"px\"\n },\n \"$type\": \"dimension\"\n },\n \"96\": {\n \"$value\": {\n \"value\": 384,\n \"unit\": \"px\"\n },\n \"$type\": \"dimension\"\n },\n \"0_5\": {\n \"$value\": {\n \"value\": 2,\n \"unit\": \"px\"\n },\n \"$type\": \"dimension\"\n },\n \"1_5\": {\n \"$value\": {\n \"value\": 6,\n \"unit\": \"px\"\n },\n \"$type\": \"dimension\"\n },\n \"2_5\": {\n \"$value\": {\n \"value\": 10,\n \"unit\": \"px\"\n },\n \"$type\": \"dimension\"\n },\n \"3_5\": {\n \"$value\": {\n \"value\": 14,\n \"unit\": \"px\"\n },\n \"$type\": \"dimension\"\n }\n },\n \"container\": {\n \"p\": {\n \"$value\": {\n \"value\": 28,\n \"unit\": \"px\"\n },\n \"$type\": \"dimension\"\n },\n \"gap\": {\n \"$value\": {\n \"value\": 20,\n \"unit\": \"px\"\n },\n \"$type\": \"dimension\"\n }\n },\n \"layout\": {\n \"section-gap\": {\n \"$value\": {\n \"value\": 40,\n \"unit\": \"px\"\n },\n \"$type\": \"dimension\"\n },\n \"stack-gap\": {\n \"$value\": {\n \"value\": 10,\n \"unit\": \"px\"\n },\n \"$type\": \"dimension\"\n }\n }\n}\n","{\n \"spacing\": {\n \"0\": {\n \"$value\": {\n \"value\": 0,\n \"unit\": \"px\"\n },\n \"$type\": \"dimension\"\n },\n \"1\": {\n \"$value\": {\n \"value\": 4,\n \"unit\": \"px\"\n },\n \"$type\": \"dimension\"\n },\n \"2\": {\n \"$value\": {\n \"value\": 8,\n \"unit\": \"px\"\n },\n \"$type\": \"dimension\"\n },\n \"3\": {\n \"$value\": {\n \"value\": 10,\n \"unit\": \"px\"\n },\n \"$type\": \"dimension\"\n },\n \"4\": {\n \"$value\": {\n \"value\": 14,\n \"unit\": \"px\"\n },\n \"$type\": \"dimension\"\n },\n \"5\": {\n \"$value\": {\n \"value\": 18,\n \"unit\": \"px\"\n },\n \"$type\": \"dimension\"\n },\n \"6\": {\n \"$value\": {\n \"value\": 22,\n \"unit\": \"px\"\n },\n \"$type\": \"dimension\"\n },\n \"7\": {\n \"$value\": {\n \"value\": 26,\n \"unit\": \"px\"\n },\n \"$type\": \"dimension\"\n },\n \"8\": {\n \"$value\": {\n \"value\": 30,\n \"unit\": \"px\"\n },\n \"$type\": \"dimension\"\n },\n \"9\": {\n \"$value\": {\n \"value\": 34,\n \"unit\": \"px\"\n },\n \"$type\": \"dimension\"\n },\n \"10\": {\n \"$value\": {\n \"value\": 38,\n \"unit\": \"px\"\n },\n \"$type\": \"dimension\"\n },\n \"11\": {\n \"$value\": {\n \"value\": 42,\n \"unit\": \"px\"\n },\n \"$type\": \"dimension\"\n },\n \"12\": {\n \"$value\": {\n \"value\": 46,\n \"unit\": \"px\"\n },\n \"$type\": \"dimension\"\n },\n \"14\": {\n \"$value\": {\n \"value\": 52,\n \"unit\": \"px\"\n },\n \"$type\": \"dimension\"\n },\n \"16\": {\n \"$value\": {\n \"value\": 60,\n \"unit\": \"px\"\n },\n \"$type\": \"dimension\"\n },\n \"20\": {\n \"$value\": {\n \"value\": 76,\n \"unit\": \"px\"\n },\n \"$type\": \"dimension\"\n },\n \"24\": {\n \"$value\": {\n \"value\": 92,\n \"unit\": \"px\"\n },\n \"$type\": \"dimension\"\n },\n \"28\": {\n \"$value\": {\n \"value\": 108,\n \"unit\": \"px\"\n },\n \"$type\": \"dimension\"\n },\n \"32\": {\n \"$value\": {\n \"value\": 124,\n \"unit\": \"px\"\n },\n \"$type\": \"dimension\"\n },\n \"36\": {\n \"$value\": {\n \"value\": 140,\n \"unit\": \"px\"\n },\n \"$type\": \"dimension\"\n },\n \"40\": {\n \"$value\": {\n \"value\": 156,\n \"unit\": \"px\"\n },\n \"$type\": \"dimension\"\n },\n \"44\": {\n \"$value\": {\n \"value\": 172,\n \"unit\": \"px\"\n },\n \"$type\": \"dimension\"\n },\n \"48\": {\n \"$value\": {\n \"value\": 188,\n \"unit\": \"px\"\n },\n \"$type\": \"dimension\"\n },\n \"52\": {\n \"$value\": {\n \"value\": 204,\n \"unit\": \"px\"\n },\n \"$type\": \"dimension\"\n },\n \"56\": {\n \"$value\": {\n \"value\": 220,\n \"unit\": \"px\"\n },\n \"$type\": \"dimension\"\n },\n \"60\": {\n \"$value\": {\n \"value\": 236,\n \"unit\": \"px\"\n },\n \"$type\": \"dimension\"\n },\n \"64\": {\n \"$value\": {\n \"value\": 252,\n \"unit\": \"px\"\n },\n \"$type\": \"dimension\"\n },\n \"72\": {\n \"$value\": {\n \"value\": 284,\n \"unit\": \"px\"\n },\n \"$type\": \"dimension\"\n },\n \"80\": {\n \"$value\": {\n \"value\": 316,\n \"unit\": \"px\"\n },\n \"$type\": \"dimension\"\n },\n \"96\": {\n \"$value\": {\n \"value\": 380,\n \"unit\": \"px\"\n },\n \"$type\": \"dimension\"\n },\n \"0_5\": {\n \"$value\": {\n \"value\": 2,\n \"unit\": \"px\"\n },\n \"$type\": \"dimension\"\n },\n \"1_5\": {\n \"$value\": {\n \"value\": 6,\n \"unit\": \"px\"\n },\n \"$type\": \"dimension\"\n },\n \"2_5\": {\n \"$value\": {\n \"value\": 9,\n \"unit\": \"px\"\n },\n \"$type\": \"dimension\"\n },\n \"3_5\": {\n \"$value\": {\n \"value\": 12,\n \"unit\": \"px\"\n },\n \"$type\": \"dimension\"\n }\n },\n \"container\": {\n \"p\": {\n \"$value\": {\n \"value\": 20,\n \"unit\": \"px\"\n },\n \"$type\": \"dimension\"\n },\n \"gap\": {\n \"$value\": {\n \"value\": 12,\n \"unit\": \"px\"\n },\n \"$type\": \"dimension\"\n }\n },\n \"layout\": {\n \"section-gap\": {\n \"$value\": {\n \"value\": 28,\n \"unit\": \"px\"\n },\n \"$type\": \"dimension\"\n },\n \"stack-gap\": {\n \"$value\": {\n \"value\": 6,\n \"unit\": \"px\"\n },\n \"$type\": \"dimension\"\n }\n }\n}\n","{\n \"spacing\": {\n \"0\": {\n \"$value\": {\n \"value\": 0,\n \"unit\": \"px\"\n },\n \"$type\": \"dimension\"\n },\n \"1\": {\n \"$value\": {\n \"value\": 4,\n \"unit\": \"px\"\n },\n \"$type\": \"dimension\"\n },\n \"2\": {\n \"$value\": {\n \"value\": 8,\n \"unit\": \"px\"\n },\n \"$type\": \"dimension\"\n },\n \"3\": {\n \"$value\": {\n \"value\": 12,\n \"unit\": \"px\"\n },\n \"$type\": \"dimension\"\n },\n \"4\": {\n \"$value\": {\n \"value\": 16,\n \"unit\": \"px\"\n },\n \"$type\": \"dimension\"\n },\n \"5\": {\n \"$value\": {\n \"value\": 20,\n \"unit\": \"px\"\n },\n \"$type\": \"dimension\"\n },\n \"6\": {\n \"$value\": {\n \"value\": 24,\n \"unit\": \"px\"\n },\n \"$type\": \"dimension\"\n },\n \"7\": {\n \"$value\": {\n \"value\": 28,\n \"unit\": \"px\"\n },\n \"$type\": \"dimension\"\n },\n \"8\": {\n \"$value\": {\n \"value\": 32,\n \"unit\": \"px\"\n },\n \"$type\": \"dimension\"\n },\n \"9\": {\n \"$value\": {\n \"value\": 36,\n \"unit\": \"px\"\n },\n \"$type\": \"dimension\"\n },\n \"10\": {\n \"$value\": {\n \"value\": 40,\n \"unit\": \"px\"\n },\n \"$type\": \"dimension\"\n },\n \"11\": {\n \"$value\": {\n \"value\": 44,\n \"unit\": \"px\"\n },\n \"$type\": \"dimension\"\n },\n \"12\": {\n \"$value\": {\n \"value\": 48,\n \"unit\": \"px\"\n },\n \"$type\": \"dimension\"\n },\n \"14\": {\n \"$value\": {\n \"value\": 56,\n \"unit\": \"px\"\n },\n \"$type\": \"dimension\"\n },\n \"16\": {\n \"$value\": {\n \"value\": 64,\n \"unit\": \"px\"\n },\n \"$type\": \"dimension\"\n },\n \"20\": {\n \"$value\": {\n \"value\": 80,\n \"unit\": \"px\"\n },\n \"$type\": \"dimension\"\n },\n \"24\": {\n \"$value\": {\n \"value\": 96,\n \"unit\": \"px\"\n },\n \"$type\": \"dimension\"\n },\n \"28\": {\n \"$value\": {\n \"value\": 112,\n \"unit\": \"px\"\n },\n \"$type\": \"dimension\"\n },\n \"32\": {\n \"$value\": {\n \"value\": 128,\n \"unit\": \"px\"\n },\n \"$type\": \"dimension\"\n },\n \"36\": {\n \"$value\": {\n \"value\": 144,\n \"unit\": \"px\"\n },\n \"$type\": \"dimension\"\n },\n \"40\": {\n \"$value\": {\n \"value\": 160,\n \"unit\": \"px\"\n },\n \"$type\": \"dimension\"\n },\n \"44\": {\n \"$value\": {\n \"value\": 176,\n \"unit\": \"px\"\n },\n \"$type\": \"dimension\"\n },\n \"48\": {\n \"$value\": {\n \"value\": 192,\n \"unit\": \"px\"\n },\n \"$type\": \"dimension\"\n },\n \"52\": {\n \"$value\": {\n \"value\": 208,\n \"unit\": \"px\"\n },\n \"$type\": \"dimension\"\n },\n \"56\": {\n \"$value\": {\n \"value\": 224,\n \"unit\": \"px\"\n },\n \"$type\": \"dimension\"\n },\n \"60\": {\n \"$value\": {\n \"value\": 240,\n \"unit\": \"px\"\n },\n \"$type\": \"dimension\"\n },\n \"64\": {\n \"$value\": {\n \"value\": 256,\n \"unit\": \"px\"\n },\n \"$type\": \"dimension\"\n },\n \"72\": {\n \"$value\": {\n \"value\": 288,\n \"unit\": \"px\"\n },\n \"$type\": \"dimension\"\n },\n \"80\": {\n \"$value\": {\n \"value\": 320,\n \"unit\": \"px\"\n },\n \"$type\": \"dimension\"\n },\n \"96\": {\n \"$value\": {\n \"value\": 384,\n \"unit\": \"px\"\n },\n \"$type\": \"dimension\"\n },\n \"0_5\": {\n \"$value\": {\n \"value\": 2,\n \"unit\": \"px\"\n },\n \"$type\": \"dimension\"\n },\n \"1_5\": {\n \"$value\": {\n \"value\": 6,\n \"unit\": \"px\"\n },\n \"$type\": \"dimension\"\n },\n \"2_5\": {\n \"$value\": {\n \"value\": 10,\n \"unit\": \"px\"\n },\n \"$type\": \"dimension\"\n },\n \"3_5\": {\n \"$value\": {\n \"value\": 14,\n \"unit\": \"px\"\n },\n \"$type\": \"dimension\"\n }\n },\n \"container\": {\n \"p\": {\n \"$value\": {\n \"value\": 24,\n \"unit\": \"px\"\n },\n \"$type\": \"dimension\"\n },\n \"gap\": {\n \"$value\": {\n \"value\": 16,\n \"unit\": \"px\"\n },\n \"$type\": \"dimension\"\n }\n },\n \"layout\": {\n \"section-gap\": {\n \"$value\": {\n \"value\": 32,\n \"unit\": \"px\"\n },\n \"$type\": \"dimension\"\n },\n \"stack-gap\": {\n \"$value\": {\n \"value\": 8,\n \"unit\": \"px\"\n },\n \"$type\": \"dimension\"\n }\n }\n}\n","{\n \"spacing\": {\n \"0\": {\n \"$value\": {\n \"value\": 0,\n \"unit\": \"px\"\n },\n \"$type\": \"dimension\"\n },\n \"1\": {\n \"$value\": {\n \"value\": 4,\n \"unit\": \"px\"\n },\n \"$type\": \"dimension\"\n },\n \"2\": {\n \"$value\": {\n \"value\": 8,\n \"unit\": \"px\"\n },\n \"$type\": \"dimension\"\n },\n \"3\": {\n \"$value\": {\n \"value\": 14,\n \"unit\": \"px\"\n },\n \"$type\": \"dimension\"\n },\n \"4\": {\n \"$value\": {\n \"value\": 18,\n \"unit\": \"px\"\n },\n \"$type\": \"dimension\"\n },\n \"5\": {\n \"$value\": {\n \"value\": 22,\n \"unit\": \"px\"\n },\n \"$type\": \"dimension\"\n },\n \"6\": {\n \"$value\": {\n \"value\": 28,\n \"unit\": \"px\"\n },\n \"$type\": \"dimension\"\n },\n \"7\": {\n \"$value\": {\n \"value\": 32,\n \"unit\": \"px\"\n },\n \"$type\": \"dimension\"\n },\n \"8\": {\n \"$value\": {\n \"value\": 36,\n \"unit\": \"px\"\n },\n \"$type\": \"dimension\"\n },\n \"9\": {\n \"$value\": {\n \"value\": 40,\n \"unit\": \"px\"\n },\n \"$type\": \"dimension\"\n },\n \"10\": {\n \"$value\": {\n \"value\": 44,\n \"unit\": \"px\"\n },\n \"$type\": \"dimension\"\n },\n \"11\": {\n \"$value\": {\n \"value\": 48,\n \"unit\": \"px\"\n },\n \"$type\": \"dimension\"\n },\n \"12\": {\n \"$value\": {\n \"value\": 52,\n \"unit\": \"px\"\n },\n \"$type\": \"dimension\"\n },\n \"14\": {\n \"$value\": {\n \"value\": 60,\n \"unit\": \"px\"\n },\n \"$type\": \"dimension\"\n },\n \"16\": {\n \"$value\": {\n \"value\": 68,\n \"unit\": \"px\"\n },\n \"$type\": \"dimension\"\n },\n \"20\": {\n \"$value\": {\n \"value\": 84,\n \"unit\": \"px\"\n },\n \"$type\": \"dimension\"\n },\n \"24\": {\n \"$value\": {\n \"value\": 100,\n \"unit\": \"px\"\n },\n \"$type\": \"dimension\"\n },\n \"28\": {\n \"$value\": {\n \"value\": 116,\n \"unit\": \"px\"\n },\n \"$type\": \"dimension\"\n },\n \"32\": {\n \"$value\": {\n \"value\": 132,\n \"unit\": \"px\"\n },\n \"$type\": \"dimension\"\n },\n \"36\": {\n \"$value\": {\n \"value\": 148,\n \"unit\": \"px\"\n },\n \"$type\": \"dimension\"\n },\n \"40\": {\n \"$value\": {\n \"value\": 164,\n \"unit\": \"px\"\n },\n \"$type\": \"dimension\"\n },\n \"44\": {\n \"$value\": {\n \"value\": 180,\n \"unit\": \"px\"\n },\n \"$type\": \"dimension\"\n },\n \"48\": {\n \"$value\": {\n \"value\": 196,\n \"unit\": \"px\"\n },\n \"$type\": \"dimension\"\n },\n \"52\": {\n \"$value\": {\n \"value\": 212,\n \"unit\": \"px\"\n },\n \"$type\": \"dimension\"\n },\n \"56\": {\n \"$value\": {\n \"value\": 228,\n \"unit\": \"px\"\n },\n \"$type\": \"dimension\"\n },\n \"60\": {\n \"$value\": {\n \"value\": 244,\n \"unit\": \"px\"\n },\n \"$type\": \"dimension\"\n },\n \"64\": {\n \"$value\": {\n \"value\": 260,\n \"unit\": \"px\"\n },\n \"$type\": \"dimension\"\n },\n \"72\": {\n \"$value\": {\n \"value\": 292,\n \"unit\": \"px\"\n },\n \"$type\": \"dimension\"\n },\n \"80\": {\n \"$value\": {\n \"value\": 324,\n \"unit\": \"px\"\n },\n \"$type\": \"dimension\"\n },\n \"96\": {\n \"$value\": {\n \"value\": 388,\n \"unit\": \"px\"\n },\n \"$type\": \"dimension\"\n },\n \"0_5\": {\n \"$value\": {\n \"value\": 2,\n \"unit\": \"px\"\n },\n \"$type\": \"dimension\"\n },\n \"1_5\": {\n \"$value\": {\n \"value\": 6,\n \"unit\": \"px\"\n },\n \"$type\": \"dimension\"\n },\n \"2_5\": {\n \"$value\": {\n \"value\": 11,\n \"unit\": \"px\"\n },\n \"$type\": \"dimension\"\n },\n \"3_5\": {\n \"$value\": {\n \"value\": 16,\n \"unit\": \"px\"\n },\n \"$type\": \"dimension\"\n }\n },\n \"container\": {\n \"p\": {\n \"$value\": {\n \"value\": 28,\n \"unit\": \"px\"\n },\n \"$type\": \"dimension\"\n },\n \"gap\": {\n \"$value\": {\n \"value\": 20,\n \"unit\": \"px\"\n },\n \"$type\": \"dimension\"\n }\n },\n \"layout\": {\n \"section-gap\": {\n \"$value\": {\n \"value\": 40,\n \"unit\": \"px\"\n },\n \"$type\": \"dimension\"\n },\n \"stack-gap\": {\n \"$value\": {\n \"value\": 10,\n \"unit\": \"px\"\n },\n \"$type\": \"dimension\"\n }\n }\n}\n","{\n \"spacing\": {\n \"0\": {\n \"$value\": {\n \"value\": 0,\n \"unit\": \"px\"\n },\n \"$type\": \"dimension\"\n },\n \"1\": {\n \"$value\": {\n \"value\": 4,\n \"unit\": \"px\"\n },\n \"$type\": \"dimension\"\n },\n \"2\": {\n \"$value\": {\n \"value\": 8,\n \"unit\": \"px\"\n },\n \"$type\": \"dimension\"\n },\n \"3\": {\n \"$value\": {\n \"value\": 12,\n \"unit\": \"px\"\n },\n \"$type\": \"dimension\"\n },\n \"4\": {\n \"$value\": {\n \"value\": 16,\n \"unit\": \"px\"\n },\n \"$type\": \"dimension\"\n },\n \"5\": {\n \"$value\": {\n \"value\": 20,\n \"unit\": \"px\"\n },\n \"$type\": \"dimension\"\n },\n \"6\": {\n \"$value\": {\n \"value\": 24,\n \"unit\": \"px\"\n },\n \"$type\": \"dimension\"\n },\n \"7\": {\n \"$value\": {\n \"value\": 28,\n \"unit\": \"px\"\n },\n \"$type\": \"dimension\"\n },\n \"8\": {\n \"$value\": {\n \"value\": 32,\n \"unit\": \"px\"\n },\n \"$type\": \"dimension\"\n },\n \"9\": {\n \"$value\": {\n \"value\": 36,\n \"unit\": \"px\"\n },\n \"$type\": \"dimension\"\n },\n \"10\": {\n \"$value\": {\n \"value\": 40,\n \"unit\": \"px\"\n },\n \"$type\": \"dimension\"\n },\n \"11\": {\n \"$value\": {\n \"value\": 44,\n \"unit\": \"px\"\n },\n \"$type\": \"dimension\"\n },\n \"12\": {\n \"$value\": {\n \"value\": 48,\n \"unit\": \"px\"\n },\n \"$type\": \"dimension\"\n },\n \"14\": {\n \"$value\": {\n \"value\": 56,\n \"unit\": \"px\"\n },\n \"$type\": \"dimension\"\n },\n \"16\": {\n \"$value\": {\n \"value\": 64,\n \"unit\": \"px\"\n },\n \"$type\": \"dimension\"\n },\n \"20\": {\n \"$value\": {\n \"value\": 80,\n \"unit\": \"px\"\n },\n \"$type\": \"dimension\"\n },\n \"24\": {\n \"$value\": {\n \"value\": 96,\n \"unit\": \"px\"\n },\n \"$type\": \"dimension\"\n },\n \"28\": {\n \"$value\": {\n \"value\": 112,\n \"unit\": \"px\"\n },\n \"$type\": \"dimension\"\n },\n \"32\": {\n \"$value\": {\n \"value\": 128,\n \"unit\": \"px\"\n },\n \"$type\": \"dimension\"\n },\n \"36\": {\n \"$value\": {\n \"value\": 144,\n \"unit\": \"px\"\n },\n \"$type\": \"dimension\"\n },\n \"40\": {\n \"$value\": {\n \"value\": 160,\n \"unit\": \"px\"\n },\n \"$type\": \"dimension\"\n },\n \"44\": {\n \"$value\": {\n \"value\": 176,\n \"unit\": \"px\"\n },\n \"$type\": \"dimension\"\n },\n \"48\": {\n \"$value\": {\n \"value\": 192,\n \"unit\": \"px\"\n },\n \"$type\": \"dimension\"\n },\n \"52\": {\n \"$value\": {\n \"value\": 208,\n \"unit\": \"px\"\n },\n \"$type\": \"dimension\"\n },\n \"56\": {\n \"$value\": {\n \"value\": 224,\n \"unit\": \"px\"\n },\n \"$type\": \"dimension\"\n },\n \"60\": {\n \"$value\": {\n \"value\": 240,\n \"unit\": \"px\"\n },\n \"$type\": \"dimension\"\n },\n \"64\": {\n \"$value\": {\n \"value\": 256,\n \"unit\": \"px\"\n },\n \"$type\": \"dimension\"\n },\n \"72\": {\n \"$value\": {\n \"value\": 288,\n \"unit\": \"px\"\n },\n \"$type\": \"dimension\"\n },\n \"80\": {\n \"$value\": {\n \"value\": 320,\n \"unit\": \"px\"\n },\n \"$type\": \"dimension\"\n },\n \"96\": {\n \"$value\": {\n \"value\": 384,\n \"unit\": \"px\"\n },\n \"$type\": \"dimension\"\n },\n \"0_5\": {\n \"$value\": {\n \"value\": 2,\n \"unit\": \"px\"\n },\n \"$type\": \"dimension\"\n },\n \"1_5\": {\n \"$value\": {\n \"value\": 6,\n \"unit\": \"px\"\n },\n \"$type\": \"dimension\"\n },\n \"2_5\": {\n \"$value\": {\n \"value\": 10,\n \"unit\": \"px\"\n },\n \"$type\": \"dimension\"\n },\n \"3_5\": {\n \"$value\": {\n \"value\": 14,\n \"unit\": \"px\"\n },\n \"$type\": \"dimension\"\n }\n },\n \"container\": {\n \"p\": {\n \"$value\": {\n \"value\": 40,\n \"unit\": \"px\"\n },\n \"$type\": \"dimension\"\n },\n \"gap\": {\n \"$value\": {\n \"value\": 24,\n \"unit\": \"px\"\n },\n \"$type\": \"dimension\"\n }\n },\n \"layout\": {\n \"section-gap\": {\n \"$value\": {\n \"value\": 56,\n \"unit\": \"px\"\n },\n \"$type\": \"dimension\"\n },\n \"stack-gap\": {\n \"$value\": {\n \"value\": 16,\n \"unit\": \"px\"\n },\n \"$type\": \"dimension\"\n }\n }\n}\n","{\n \"spacing\": {\n \"0\": {\n \"$value\": {\n \"value\": 0,\n \"unit\": \"px\"\n },\n \"$type\": \"dimension\"\n },\n \"1\": {\n \"$value\": {\n \"value\": 4,\n \"unit\": \"px\"\n },\n \"$type\": \"dimension\"\n },\n \"2\": {\n \"$value\": {\n \"value\": 8,\n \"unit\": \"px\"\n },\n \"$type\": \"dimension\"\n },\n \"3\": {\n \"$value\": {\n \"value\": 12,\n \"unit\": \"px\"\n },\n \"$type\": \"dimension\"\n },\n \"4\": {\n \"$value\": {\n \"value\": 16,\n \"unit\": \"px\"\n },\n \"$type\": \"dimension\"\n },\n \"5\": {\n \"$value\": {\n \"value\": 20,\n \"unit\": \"px\"\n },\n \"$type\": \"dimension\"\n },\n \"6\": {\n \"$value\": {\n \"value\": 24,\n \"unit\": \"px\"\n },\n \"$type\": \"dimension\"\n },\n \"7\": {\n \"$value\": {\n \"value\": 30,\n \"unit\": \"px\"\n },\n \"$type\": \"dimension\"\n },\n \"8\": {\n \"$value\": {\n \"value\": 32,\n \"unit\": \"px\"\n },\n \"$type\": \"dimension\"\n },\n \"9\": {\n \"$value\": {\n \"value\": 36,\n \"unit\": \"px\"\n },\n \"$type\": \"dimension\"\n },\n \"10\": {\n \"$value\": {\n \"value\": 42,\n \"unit\": \"px\"\n },\n \"$type\": \"dimension\"\n },\n \"11\": {\n \"$value\": {\n \"value\": 48,\n \"unit\": \"px\"\n },\n \"$type\": \"dimension\"\n },\n \"12\": {\n \"$value\": {\n \"value\": 48,\n \"unit\": \"px\"\n },\n \"$type\": \"dimension\"\n },\n \"14\": {\n \"$value\": {\n \"value\": 60,\n \"unit\": \"px\"\n },\n \"$type\": \"dimension\"\n },\n \"16\": {\n \"$value\": {\n \"value\": 64,\n \"unit\": \"px\"\n },\n \"$type\": \"dimension\"\n },\n \"20\": {\n \"$value\": {\n \"value\": 80,\n \"unit\": \"px\"\n },\n \"$type\": \"dimension\"\n },\n \"24\": {\n \"$value\": {\n \"value\": 96,\n \"unit\": \"px\"\n },\n \"$type\": \"dimension\"\n },\n \"28\": {\n \"$value\": {\n \"value\": 120,\n \"unit\": \"px\"\n },\n \"$type\": \"dimension\"\n },\n \"32\": {\n \"$value\": {\n \"value\": 128,\n \"unit\": \"px\"\n },\n \"$type\": \"dimension\"\n },\n \"36\": {\n \"$value\": {\n \"value\": 144,\n \"unit\": \"px\"\n },\n \"$type\": \"dimension\"\n },\n \"40\": {\n \"$value\": {\n \"value\": 160,\n \"unit\": \"px\"\n },\n \"$type\": \"dimension\"\n },\n \"44\": {\n \"$value\": {\n \"value\": 180,\n \"unit\": \"px\"\n },\n \"$type\": \"dimension\"\n },\n \"48\": {\n \"$value\": {\n \"value\": 192,\n \"unit\": \"px\"\n },\n \"$type\": \"dimension\"\n },\n \"52\": {\n \"$value\": {\n \"value\": 210,\n \"unit\": \"px\"\n },\n \"$type\": \"dimension\"\n },\n \"56\": {\n \"$value\": {\n \"value\": 224,\n \"unit\": \"px\"\n },\n \"$type\": \"dimension\"\n },\n \"60\": {\n \"$value\": {\n \"value\": 240,\n \"unit\": \"px\"\n },\n \"$type\": \"dimension\"\n },\n \"64\": {\n \"$value\": {\n \"value\": 256,\n \"unit\": \"px\"\n },\n \"$type\": \"dimension\"\n },\n \"72\": {\n \"$value\": {\n \"value\": 288,\n \"unit\": \"px\"\n },\n \"$type\": \"dimension\"\n },\n \"80\": {\n \"$value\": {\n \"value\": 320,\n \"unit\": \"px\"\n },\n \"$type\": \"dimension\"\n },\n \"96\": {\n \"$value\": {\n \"value\": 384,\n \"unit\": \"px\"\n },\n \"$type\": \"dimension\"\n },\n \"0_5\": {\n \"$value\": {\n \"value\": 2,\n \"unit\": \"px\"\n },\n \"$type\": \"dimension\"\n },\n \"1_5\": {\n \"$value\": {\n \"value\": 6,\n \"unit\": \"px\"\n },\n \"$type\": \"dimension\"\n },\n \"2_5\": {\n \"$value\": {\n \"value\": 10,\n \"unit\": \"px\"\n },\n \"$type\": \"dimension\"\n },\n \"3_5\": {\n \"$value\": {\n \"value\": 15,\n \"unit\": \"px\"\n },\n \"$type\": \"dimension\"\n }\n },\n \"container\": {\n \"p\": {\n \"$value\": {\n \"value\": 24,\n \"unit\": \"px\"\n },\n \"$type\": \"dimension\"\n },\n \"gap\": {\n \"$value\": {\n \"value\": 16,\n \"unit\": \"px\"\n },\n \"$type\": \"dimension\"\n }\n },\n \"layout\": {\n \"section-gap\": {\n \"$value\": {\n \"value\": 32,\n \"unit\": \"px\"\n },\n \"$type\": \"dimension\"\n },\n \"stack-gap\": {\n \"$value\": {\n \"value\": 8,\n \"unit\": \"px\"\n },\n \"$type\": \"dimension\"\n }\n }\n}\n","{\n \"z-index-overlay\": {\n \"$value\": 10,\n \"$type\": \"number\",\n \"$description\": \"Base overlay layer — backdrops and low-level stacking.\"\n },\n \"z-index-sticky\": {\n \"$value\": 30,\n \"$type\": \"number\",\n \"$description\": \"Sticky chrome (headers, toolbars) — above content, below dialogs.\"\n },\n \"z-index-modal\": {\n \"$value\": 50,\n \"$type\": \"number\",\n \"$description\": \"Modal dialogs and their overlay.\"\n },\n \"z-index-popover\": {\n \"$value\": 70,\n \"$type\": \"number\",\n \"$description\": \"Tooltips, dropdowns, selects, popovers — above modals so they stay usable when nested in a dialog.\"\n },\n \"z-index-toast\": {\n \"$value\": 100,\n \"$type\": \"number\",\n \"$description\": \"Toasts and notifications — above popovers.\"\n },\n \"z-index-max\": {\n \"$value\": 9999,\n \"$type\": \"number\",\n \"$description\": \"Reserved for host-application system UI (e.g. AI agent overlays).\"\n }\n}\n","{\n \"2xs\": {\n \"$type\": \"shadow\",\n \"$value\": {\n \"offsetX\": \"{2xs.layer-1.x}\",\n \"offsetY\": \"{2xs.layer-1.y}\",\n \"blur\": \"{2xs.layer-1.blur}\",\n \"spread\": \"{2xs.layer-1.spread}\",\n \"color\": \"{2xs.layer-1.color}\"\n }\n },\n \"xs\": {\n \"$type\": \"shadow\",\n \"$value\": {\n \"offsetX\": \"{xs.layer-1.x}\",\n \"offsetY\": \"{xs.layer-1.y}\",\n \"blur\": \"{xs.layer-1.blur}\",\n \"spread\": \"{xs.layer-1.spread}\",\n \"color\": \"{xs.layer-1.color}\"\n }\n },\n \"sm\": {\n \"$type\": \"shadow\",\n \"$value\": [\n {\n \"offsetX\": \"{sm.layer-2.x}\",\n \"offsetY\": \"{sm.layer-2.y}\",\n \"blur\": \"{sm.layer-2.blur}\",\n \"spread\": \"{sm.layer-2.spread}\",\n \"color\": \"{sm.layer-2.color}\"\n },\n {\n \"offsetX\": \"{sm.layer-1.x}\",\n \"offsetY\": \"{sm.layer-1.y}\",\n \"blur\": \"{sm.layer-1.blur}\",\n \"spread\": \"{sm.layer-1.spread}\",\n \"color\": \"{sm.layer-1.color}\"\n }\n ]\n },\n \"base\": {\n \"$type\": \"shadow\",\n \"$value\": [\n {\n \"offsetX\": \"{base.layer-2.x}\",\n \"offsetY\": \"{base.layer-2.y}\",\n \"blur\": \"{base.layer-2.blur}\",\n \"spread\": \"{base.layer-2.spread}\",\n \"color\": \"{base.layer-2.color}\"\n },\n {\n \"offsetX\": \"{base.layer-1.x}\",\n \"offsetY\": \"{base.layer-1.y}\",\n \"blur\": \"{base.layer-1.blur}\",\n \"spread\": \"{base.layer-1.spread}\",\n \"color\": \"{base.layer-1.color}\"\n }\n ]\n },\n \"md\": {\n \"$type\": \"shadow\",\n \"$value\": [\n {\n \"offsetX\": \"{md.layer-2.x}\",\n \"offsetY\": \"{md.layer-2.y}\",\n \"blur\": \"{md.layer-2.blur}\",\n \"spread\": \"{md.layer-2.spread}\",\n \"color\": \"{md.layer-2.color}\"\n },\n {\n \"offsetX\": \"{md.layer-1.x}\",\n \"offsetY\": \"{md.layer-1.y}\",\n \"blur\": \"{md.layer-1.blur}\",\n \"spread\": \"{md.layer-1.spread}\",\n \"color\": \"{md.layer-1.color}\"\n }\n ]\n },\n \"lg\": {\n \"$type\": \"shadow\",\n \"$value\": [\n {\n \"offsetX\": \"{lg.layer-2.x}\",\n \"offsetY\": \"{lg.layer-2.y}\",\n \"blur\": \"{lg.layer-2.blur}\",\n \"spread\": \"{lg.layer-2.spread}\",\n \"color\": \"{lg.layer-2.color}\"\n },\n {\n \"offsetX\": \"{lg.layer-1.x}\",\n \"offsetY\": \"{lg.layer-1.y}\",\n \"blur\": \"{lg.layer-1.blur}\",\n \"spread\": \"{lg.layer-1.spread}\",\n \"color\": \"{lg.layer-1.color}\"\n }\n ]\n },\n \"xl\": {\n \"$type\": \"shadow\",\n \"$value\": [\n {\n \"offsetX\": \"{xl.layer-2.x}\",\n \"offsetY\": \"{xl.layer-2.y}\",\n \"blur\": \"{xl.layer-2.blur}\",\n \"spread\": \"{xl.layer-2.spread}\",\n \"color\": \"{xl.layer-2.color}\"\n },\n {\n \"offsetX\": \"{xl.layer-1.x}\",\n \"offsetY\": \"{xl.layer-1.y}\",\n \"blur\": \"{xl.layer-1.blur}\",\n \"spread\": \"{xl.layer-1.spread}\",\n \"color\": \"{xl.layer-1.color}\"\n }\n ]\n },\n \"2xl\": {\n \"$type\": \"shadow\",\n \"$value\": {\n \"offsetX\": \"{2xl.layer-1.x}\",\n \"offsetY\": \"{2xl.layer-1.y}\",\n \"blur\": \"{2xl.layer-1.blur}\",\n \"spread\": \"{2xl.layer-1.spread}\",\n \"color\": \"{2xl.layer-1.color}\"\n }\n },\n \"inner\": {\n \"$type\": \"shadow\",\n \"$value\": {\n \"offsetX\": \"{inner.layer-1.x}\",\n \"offsetY\": \"{inner.layer-1.y}\",\n \"blur\": \"{inner.layer-1.blur}\",\n \"spread\": \"{inner.layer-1.spread}\",\n \"color\": \"{inner.layer-1.color}\"\n }\n }\n}\n","{\n \"heading\": {\n \"large\": {\n \"$type\": \"typography\",\n \"$value\": {\n \"fontFamily\": \"{family.font-heading}\",\n \"fontSize\": \"{size.3xl}\",\n \"fontWeight\": \"{weight.bold}\",\n \"lineHeight\": \"{line-height.3xl}\",\n \"letterSpacing\": \"{letterspacing.tighter}\"\n },\n \"$description\": \"Major section heading, dialog titles, card group headers\"\n },\n \"medium\": {\n \"$type\": \"typography\",\n \"$value\": {\n \"fontFamily\": \"{family.font-heading}\",\n \"fontSize\": \"{size.2xl}\",\n \"fontWeight\": \"{weight.bold}\",\n \"lineHeight\": \"{line-height.2xl}\",\n \"letterSpacing\": \"{letterspacing.tight}\"\n },\n \"$description\": \"Susbsection heading, card titles, modal headers\"\n },\n \"small\": {\n \"$type\": \"typography\",\n \"$value\": {\n \"fontFamily\": \"{family.font-heading}\",\n \"fontSize\": \"{size.xl}\",\n \"fontWeight\": \"{weight.bold}\",\n \"lineHeight\": \"{line-height.xl}\",\n \"letterSpacing\": \"{letterspacing.tight}\"\n },\n \"$description\": \"Card Titles, list section headers, minor heading\"\n },\n \"xsmall\": {\n \"$type\": \"typography\",\n \"$value\": {\n \"fontFamily\": \"{family.font-heading}\",\n \"fontSize\": \"{size.lg}\",\n \"fontWeight\": \"{weight.bold}\",\n \"lineHeight\": \"{line-height.lg}\",\n \"letterSpacing\": \"{letterspacing.tight}\"\n },\n \"$description\": \"Table Section headers, accordian titles, minor seciton lables\"\n },\n \"xxsmall\": {\n \"$type\": \"typography\",\n \"$value\": {\n \"fontFamily\": \"{family.font-heading}\",\n \"fontSize\": \"{size.base}\",\n \"fontWeight\": \"{weight.semibold}\",\n \"lineHeight\": \"{line-height.base}\",\n \"letterSpacing\": \"{letterspacing.tight}\"\n },\n \"$description\": \"Smallest heading tier — empty-state titles, compact card headers\"\n }\n },\n \"body\": {\n \"default\": {\n \"$type\": \"typography\",\n \"$value\": {\n \"fontFamily\": \"{family.font-sans}\",\n \"fontSize\": \"{size.sm}\",\n \"fontWeight\": \"{weight.normal}\",\n \"lineHeight\": \"{line-height.sm}\",\n \"letterSpacing\": \"{letterspacing.normal}\"\n },\n \"$description\": \"Default paragraph text, descriptions, card content, and main body copy\"\n },\n \"small\": {\n \"$type\": \"typography\",\n \"$value\": {\n \"fontFamily\": \"{family.font-sans}\",\n \"fontSize\": \"{size.xs}\",\n \"fontWeight\": \"{weight.normal}\",\n \"lineHeight\": \"{line-height.xs}\",\n \"letterSpacing\": \"{letterspacing.normal}\"\n },\n \"$description\": \"Supporting copy, captions, and secondary text under a heading\"\n }\n },\n \"shortcut\": {\n \"$type\": \"typography\",\n \"$value\": {\n \"fontFamily\": \"{family.font-sans}\",\n \"fontSize\": \"{size.xs}\",\n \"fontWeight\": \"{weight.normal}\",\n \"lineHeight\": \"{line-height.xs}\",\n \"letterSpacing\": \"{letterspacing.widest}\"\n },\n \"$description\": \"Keyboard shortcut hint text in command palettes, menus, and menubars\"\n },\n \"label\": {\n \"default\": {\n \"$type\": \"typography\",\n \"$value\": {\n \"fontFamily\": \"{family.font-sans}\",\n \"fontSize\": \"{size.sm}\",\n \"fontWeight\": \"{weight.medium}\",\n \"lineHeight\": \"{line-height.sm}\",\n \"letterSpacing\": \"{letterspacing.normal}\"\n },\n \"$description\": \"Form, field, and control labels at default density\"\n },\n \"small\": {\n \"$type\": \"typography\",\n \"$value\": {\n \"fontFamily\": \"{family.font-sans}\",\n \"fontSize\": \"{size.xs}\",\n \"fontWeight\": \"{weight.medium}\",\n \"lineHeight\": \"{line-height.xs}\",\n \"letterSpacing\": \"{letterspacing.normal}\"\n },\n \"$description\": \"Compact form and control labels in dense layouts\"\n },\n \"caps\": {\n \"$type\": \"typography\",\n \"$value\": {\n \"fontFamily\": \"{family.font-sans}\",\n \"fontSize\": \"{size.xxs}\",\n \"fontWeight\": \"{weight.semibold}\",\n \"lineHeight\": \"{line-height.xxs}\",\n \"letterSpacing\": \"{letterspacing.wide}\"\n },\n \"$description\": \"Compact eyebrow and section labels, tuned for all-caps; apply uppercase at the call site\"\n }\n },\n \"code\": {\n \"block\": {\n \"$type\": \"typography\",\n \"$value\": {\n \"fontFamily\": \"{family.font-mono}\",\n \"fontSize\": \"{size.sm}\",\n \"fontWeight\": \"{weight.normal}\",\n \"lineHeight\": \"{line-height.sm}\",\n \"letterSpacing\": {\n \"value\": 0,\n \"unit\": \"px\"\n }\n }\n },\n \"inline\": {\n \"$type\": \"typography\",\n \"$value\": {\n \"fontFamily\": \"{family.font-mono}\",\n \"fontSize\": \"{size.sm}\",\n \"fontWeight\": \"{weight.semibold}\",\n \"lineHeight\": \"auto\",\n \"letterSpacing\": {\n \"value\": 0,\n \"unit\": \"px\"\n }\n }\n }\n }\n}\n","import borderwidthFine from '../../tokens/primitives/borderwidth/borderwidth-fine.json';\nimport borderwidthNormal from '../../tokens/primitives/borderwidth/borderwidth-normal.json';\nimport borderwidthStrong from '../../tokens/primitives/borderwidth/borderwidth-strong.json';\nimport color from '../../tokens/primitives/color.json';\nimport motionSnappy from '../../tokens/primitives/motion/motion-snappy.json';\nimport radiusExtraRound from '../../tokens/primitives/radius/radius-extra-round.json';\nimport radiusRound from '../../tokens/primitives/radius/radius-round.json';\nimport radiusSmooth from '../../tokens/primitives/radius/radius-smooth.json';\nimport radiusSquare from '../../tokens/primitives/radius/radius-square.json';\nimport radiusSubtle from '../../tokens/primitives/radius/radius-subtle.json';\nimport shadowFlatDark from '../../tokens/primitives/shadow/shadow-flat-dark.json';\nimport shadowFlatLight from '../../tokens/primitives/shadow/shadow-flat-light.json';\nimport shadowQuietDark from '../../tokens/primitives/shadow/shadow-quiet-dark.json';\nimport shadowQuietLight from '../../tokens/primitives/shadow/shadow-quiet-light.json';\nimport shadowSoftDark from '../../tokens/primitives/shadow/shadow-soft-dark.json';\nimport shadowSoftLight from '../../tokens/primitives/shadow/shadow-soft-light.json';\nimport shadowStandardDark from '../../tokens/primitives/shadow/shadow-standard-dark.json';\nimport shadowStandardLight from '../../tokens/primitives/shadow/shadow-standard-light.json';\nimport shadowStrongDark from '../../tokens/primitives/shadow/shadow-strong-dark.json';\nimport shadowStrongLight from '../../tokens/primitives/shadow/shadow-strong-light.json';\nimport typographyDefault from '../../tokens/primitives/typography/typography-default.json';\nimport breakpoints from '../../tokens/semantic/breakpoints.json';\nimport spacingComfortable from '../../tokens/semantic/spacing-comfortable.json';\nimport spacingCompact from '../../tokens/semantic/spacing-compact.json';\nimport spacingDefault from '../../tokens/semantic/spacing-default.json';\nimport spacingRelaxed from '../../tokens/semantic/spacing-relaxed.json';\nimport spacingSpacious from '../../tokens/semantic/spacing-spacious.json';\nimport spacingTight from '../../tokens/semantic/spacing-tight.json';\nimport zIndex from '../../tokens/semantic/z-index.json';\nimport shadowStyles from '../../tokens/styles/shadows.json';\nimport typographyStyles from '../../tokens/styles/typography.json';\n\n/** A parsed DTCG token document. */\nexport type TokenDocument = { readonly [key: string]: unknown };\n\n/** Every authored token document, keyed by its path under `packages/core/tokens/`. */\nexport const TOKEN_FILES = {\n 'primitives/borderwidth/borderwidth-fine.json': borderwidthFine,\n 'primitives/borderwidth/borderwidth-normal.json': borderwidthNormal,\n 'primitives/borderwidth/borderwidth-strong.json': borderwidthStrong,\n 'primitives/color.json': color,\n 'primitives/motion/motion-snappy.json': motionSnappy,\n 'primitives/radius/radius-extra-round.json': radiusExtraRound,\n 'primitives/radius/radius-round.json': radiusRound,\n 'primitives/radius/radius-smooth.json': radiusSmooth,\n 'primitives/radius/radius-square.json': radiusSquare,\n 'primitives/radius/radius-subtle.json': radiusSubtle,\n 'primitives/shadow/shadow-flat-dark.json': shadowFlatDark,\n 'primitives/shadow/shadow-flat-light.json': shadowFlatLight,\n 'primitives/shadow/shadow-quiet-dark.json': shadowQuietDark,\n 'primitives/shadow/shadow-quiet-light.json': shadowQuietLight,\n 'primitives/shadow/shadow-soft-dark.json': shadowSoftDark,\n 'primitives/shadow/shadow-soft-light.json': shadowSoftLight,\n 'primitives/shadow/shadow-standard-dark.json': shadowStandardDark,\n 'primitives/shadow/shadow-standard-light.json': shadowStandardLight,\n 'primitives/shadow/shadow-strong-dark.json': shadowStrongDark,\n 'primitives/shadow/shadow-strong-light.json': shadowStrongLight,\n 'primitives/typography/typography-default.json': typographyDefault,\n 'semantic/breakpoints.json': breakpoints,\n 'semantic/spacing-comfortable.json': spacingComfortable,\n 'semantic/spacing-compact.json': spacingCompact,\n 'semantic/spacing-default.json': spacingDefault,\n 'semantic/spacing-relaxed.json': spacingRelaxed,\n 'semantic/spacing-spacious.json': spacingSpacious,\n 'semantic/spacing-tight.json': spacingTight,\n 'semantic/z-index.json': zIndex,\n 'styles/shadows.json': shadowStyles,\n 'styles/typography.json': typographyStyles,\n} as const satisfies Record<string, TokenDocument>;\n\nexport type TokenFile = keyof typeof TOKEN_FILES;\n","import {\n createNxdsThemeContract,\n DEFAULT_NXDS_APPEARANCE,\n type NxdsAppearanceState,\n} from '../lib/appearance-model';\nimport { deriveThemeMode } from '../lib/derive-theme';\nimport type { Mode } from '../lib/palette';\nimport { SEMANTIC_TOKEN_REGISTRY } from '../lib/token-registry';\nimport {\n formatShadowStyle,\n formatTokenValue,\n formatTypographyDeclarations,\n resolveValue,\n} from '../token-source/format';\nimport {\n SPACING_MODE_FILE_PATTERN,\n spacingRoleUtility,\n spacingTokenKind,\n} from '../token-source/spacing';\nimport {\n type ExtractedToken,\n extractTokens,\n pathToCssVarPrefixed,\n tokenReferences,\n} from '../token-source/tokens';\nimport {\n borderColorAliasName,\n borderWidthAliasUtilities,\n DEFAULT_TRANSITION,\n durationUtility,\n} from '../token-source/utilities';\n\nimport { RUNTIME_COLOR_DESCRIPTIONS } from './descriptions';\nimport { TOKEN_FILES, type TokenFile } from './token-files';\nimport type {\n CatalogueAlias,\n CatalogueControl,\n CatalogueDeclaration,\n CatalogueFamily,\n CatalogueReference,\n CatalogueToken,\n CatalogueTokenName,\n CatalogueVariant,\n} from './types';\n\ntype PrimitiveFamily = Extract<\n CatalogueFamily,\n 'borderwidth' | 'color' | 'motion' | 'radius' | 'shadow' | 'typography'\n>;\n\nconst PRIMITIVE_FAMILIES: readonly PrimitiveFamily[] = [\n 'borderwidth',\n 'color',\n 'motion',\n 'radius',\n 'shadow',\n 'typography',\n];\nconst RUNTIME_MODES: readonly Mode[] = ['light', 'dark'];\nconst Z_INDEX_FILE: TokenFile = 'semantic/z-index.json';\nconst BREAKPOINTS_FILE: TokenFile = 'semantic/breakpoints.json';\nconst TYPOGRAPHY_STYLES_FILE: TokenFile = 'styles/typography.json';\nconst SHADOW_STYLES_FILE: TokenFile = 'styles/shadows.json';\nconst SINGLE_SOURCE = { mode: null, preset: null } as const;\n\n/** The preset field that picks each moded family's values. */\nconst PRESET_CONTROLS: Partial<Record<CatalogueFamily, CatalogueControl>> = {\n spacing: { kind: 'preset', field: 'density' },\n radius: { kind: 'preset', field: 'corners' },\n borderwidth: { kind: 'preset', field: 'stroke' },\n shadow: { kind: 'preset', field: 'elevation' },\n};\n\n/** The preference `appearancePrefsToCss` writes each typography primitive from. */\nfunction typographyControl(path: readonly string[]): CatalogueControl | null {\n const [group, key] = path;\n if (group === 'size' || group === 'line-height') {\n return { kind: 'pref', field: 'uiFontSize' };\n }\n if (group !== 'family') return null;\n if (key === 'font-sans') return { kind: 'pref', field: 'uiFont' };\n if (key === 'font-mono') return { kind: 'pref', field: 'codeFont' };\n return null;\n}\n\nfunction leafControl({\n family,\n file,\n preset,\n leaf,\n}: AuthoredLeaf): CatalogueControl | null {\n if (family === 'typography' && file.startsWith('primitives/')) {\n return typographyControl(leaf.path);\n }\n if (preset === null) return null;\n return PRESET_CONTROLS[family] ?? null;\n}\n\n/** A `PrimitiveLookup` that also carries each target's canonical name. */\ntype ReferenceLookup = ReadonlyMap<\n string,\n { cssName: string; name: CatalogueTokenName }\n>;\n\n/** The theme mode and preset one token file holds values for. */\ninterface VariantAxes {\n mode: Mode | null;\n preset: string | null;\n}\n\n/** One authored leaf, in the file, theme mode, and preset it came from. */\ninterface AuthoredLeaf extends VariantAxes {\n family: CatalogueFamily;\n file: TokenFile;\n leaf: ExtractedToken;\n}\n\n/** What one leaf contributes: the token it belongs to and its variant's declarations. */\ninterface LeafEntry {\n name: CatalogueTokenName;\n aliases: readonly CatalogueAlias[];\n declarations: readonly CatalogueDeclaration[];\n}\n\nconst cssVariable = (name: string): CatalogueAlias => ({\n kind: 'css-variable',\n name,\n});\nconst utility = (name: string): CatalogueAlias => ({\n kind: 'utility',\n name: `nx:${name}`,\n});\n\nfunction tokenFiles(): TokenFile[] {\n return Object.keys(TOKEN_FILES) as TokenFile[];\n}\n\nfunction fileLeaves(\n family: CatalogueFamily,\n file: TokenFile,\n axes: VariantAxes\n): AuthoredLeaf[] {\n return extractTokens(TOKEN_FILES[file]).map((leaf) => ({\n family,\n file,\n ...axes,\n leaf,\n }));\n}\n\nfunction primitiveFiles(family: PrimitiveFamily): TokenFile[] {\n return tokenFiles().filter(\n (file) =>\n file === `primitives/${family}.json` ||\n file.startsWith(`primitives/${family}/${family}-`)\n );\n}\n\n/**\n * A mode file's suffix split into its preset and theme mode:\n * `shadow-quiet-dark.json` is preset `quiet` in `dark`, and\n * `radius-round.json` is preset `round` in both modes.\n */\nfunction modeFileAxes(file: TokenFile, family: PrimitiveFamily): VariantAxes {\n const suffix = file.slice(\n `primitives/${family}/${family}-`.length,\n -'.json'.length\n );\n const mode = RUNTIME_MODES.find((candidate) =>\n suffix.endsWith(`-${candidate}`)\n );\n if (mode === undefined) return { mode: null, preset: suffix };\n return { mode, preset: suffix.slice(0, -`-${mode}`.length) };\n}\n\nfunction primitiveLeaves(family: PrimitiveFamily): AuthoredLeaf[] {\n const files = primitiveFiles(family);\n return files.flatMap((file) =>\n fileLeaves(\n family,\n file,\n files.length > 1 ? modeFileAxes(file, family) : SINGLE_SOURCE\n )\n );\n}\n\nfunction spacingLeaves(): AuthoredLeaf[] {\n const directory = 'semantic/';\n return tokenFiles().flatMap((file) => {\n if (!file.startsWith(directory)) return [];\n const preset = file\n .slice(directory.length)\n .match(SPACING_MODE_FILE_PATTERN)?.[1];\n if (preset === undefined) return [];\n return fileLeaves('spacing', file, { mode: null, preset });\n });\n}\n\nfunction primitiveName(\n family: CatalogueFamily,\n path: readonly string[]\n): CatalogueTokenName {\n return `--nx-${pathToCssVarPrefixed(path, family)}`;\n}\n\n/**\n * References resolve the way the generator's primitive map does: bare or\n * family-qualified. A bare path two families share would resolve to whichever\n * the generator loaded last, so it throws instead.\n */\nfunction primitiveLookup(leaves: readonly AuthoredLeaf[]): ReferenceLookup {\n const lookup = new Map<\n string,\n { cssName: string; name: CatalogueTokenName }\n >();\n for (const { family, leaf } of leaves) {\n const name = primitiveName(family, leaf.path);\n const entry = { cssName: name.slice('--'.length), name };\n const reference = leaf.path.join('.');\n for (const key of [reference, `${family}.${reference}`]) {\n const existing = lookup.get(key);\n if (existing && existing.name !== name) {\n throw new Error(\n `catalogue: reference {${key}} matches both ${existing.name} and ${name}`\n );\n }\n lookup.set(key, entry);\n }\n }\n return lookup;\n}\n\nfunction referenceTargets(\n leaf: ExtractedToken,\n lookup: ReferenceLookup\n): CatalogueReference[] {\n return tokenReferences(leaf.value).map(({ field, reference }) => {\n const target = lookup.get(reference);\n if (!target) {\n throw new Error(\n `catalogue: ${leaf.path.join('.')} references unknown token {${reference}}`\n );\n }\n return { field, reference, target: target.name };\n });\n}\n\n/** A multi-level path is grouped by its first key; a flat file by its family. */\nfunction leafGroup(family: CatalogueFamily, path: readonly string[]): string {\n return path.length > 1 ? (path[0] ?? family) : family;\n}\n\n/**\n * Build one token per canonical name, with one variant per leaf that maps to\n * it. Token-level fields come from the first leaf.\n */\nfunction authoredTokens(\n leaves: readonly AuthoredLeaf[],\n lookup: ReferenceLookup,\n entryFor: (leaf: AuthoredLeaf) => LeafEntry\n): CatalogueToken[] {\n const tokens = new Map<\n CatalogueTokenName,\n CatalogueToken & { variants: CatalogueVariant[] }\n >();\n for (const authored of leaves) {\n const { family, file, mode, preset, leaf } = authored;\n const { name, aliases, declarations } = entryFor(authored);\n const token = tokens.get(name) ?? {\n name,\n family,\n group: leafGroup(family, leaf.path),\n type: leaf.type,\n description: leaf.description ?? null,\n aliases,\n control: leafControl(authored),\n variants: [],\n };\n token.variants.push({\n mode,\n preset,\n source: { file, path: leaf.path },\n appearance: null,\n authoredValue: structuredClone(leaf.value),\n declarations,\n references: referenceTargets(leaf, lookup),\n });\n tokens.set(name, token);\n }\n return [...tokens.values()];\n}\n\n/** The theme variables and utilities the generator emits for a primitive. */\nfunction primitiveAliases(\n family: CatalogueFamily,\n path: readonly string[]\n): CatalogueAlias[] {\n const key = path.join('-');\n if (family === 'radius') return [cssVariable(`--radius-${key}`)];\n if (family === 'borderwidth') {\n return [\n cssVariable(`--border-width-${key}`),\n cssVariable(`--outline-width-${key}`),\n ...borderWidthAliasUtilities(key).map(({ name }) => utility(name)),\n ];\n }\n if (family !== 'motion') return [];\n const [group, motionKey = ''] = path;\n if (group === 'duration') {\n const aliases = [utility(durationUtility(motionKey).name)];\n if (motionKey === DEFAULT_TRANSITION.duration) {\n aliases.push(cssVariable('--default-transition-duration'));\n }\n return aliases;\n }\n if (group === 'ease') {\n const aliases = [cssVariable(`--ease-${motionKey}`)];\n if (motionKey === DEFAULT_TRANSITION.ease) {\n aliases.push(cssVariable('--default-transition-timing-function'));\n }\n return aliases;\n }\n return [];\n}\n\nfunction primitiveEntry(lookup: ReferenceLookup) {\n return ({ family, leaf }: AuthoredLeaf): LeafEntry => {\n const name = primitiveName(family, leaf.path);\n const reference = leaf.path.join('.');\n return {\n name,\n aliases: [\n ...primitiveAliases(family, leaf.path),\n { kind: 'reference', name: reference },\n { kind: 'reference', name: `${family}.${reference}` },\n ],\n declarations: [\n {\n property: name,\n value: resolveValue(leaf.value, lookup, leaf.type, leaf.path),\n },\n ],\n };\n };\n}\n\nfunction spacingEntry({ leaf }: AuthoredLeaf): LeafEntry {\n const key = leaf.path.join('-');\n const name: CatalogueTokenName = `--nx-${key}`;\n const alias =\n spacingTokenKind(leaf.path) === 'role'\n ? utility(spacingRoleUtility(leaf.path).name)\n : cssVariable(`--${key}`);\n return {\n name,\n aliases: [alias],\n declarations: [\n {\n property: name,\n value: formatTokenValue(leaf.value, leaf.type, leaf.path),\n },\n ],\n };\n}\n\n/** A z-index layer, declared as its `--nx-*` name with a `@theme` alias. */\nfunction zIndexEntry({ leaf }: AuthoredLeaf): LeafEntry {\n const key = leaf.path.join('-');\n const name: CatalogueTokenName = `--nx-${key}`;\n return {\n name,\n aliases: [cssVariable(`--${key}`)],\n declarations: [\n {\n property: name,\n value: formatTokenValue(leaf.value, leaf.type, leaf.path),\n },\n ],\n };\n}\n\n/** A breakpoint, declared only as its `@theme` property. */\nfunction breakpointEntry({ leaf }: AuthoredLeaf): LeafEntry {\n const key = leaf.path.join('-');\n const property = `--${key}`;\n return {\n name: `--nx-${key}`,\n aliases: [cssVariable(property)],\n declarations: [\n { property, value: formatTokenValue(leaf.value, leaf.type, leaf.path) },\n ],\n };\n}\n\nfunction typographyStyleEntry(lookup: ReferenceLookup) {\n return ({ leaf }: AuthoredLeaf): LeafEntry => {\n const key = pathToCssVarPrefixed(leaf.path, 'typography');\n return {\n name: `--nx-${key}`,\n aliases: [utility(key)],\n declarations: formatTypographyDeclarations(leaf.path, leaf.value, lookup),\n };\n };\n}\n\nfunction shadowStyleEntry(lookup: ReferenceLookup) {\n return ({ leaf }: AuthoredLeaf): LeafEntry => {\n const key = pathToCssVarPrefixed(leaf.path, 'shadow');\n const property = `--${key}`;\n return {\n name: `--nx-${key}`,\n aliases: [cssVariable(property)],\n declarations: [\n {\n property,\n value: formatShadowStyle(leaf.path, leaf.value, lookup),\n },\n ],\n };\n };\n}\n\nfunction styleLeaves(family: CatalogueFamily, file: TokenFile): AuthoredLeaf[] {\n return fileLeaves(family, file, SINGLE_SOURCE).filter(\n ({ leaf }) => leaf.type === family\n );\n}\n\nfunction runtimeAppearance(mode: Mode): NxdsAppearanceState {\n return {\n ...DEFAULT_NXDS_APPEARANCE,\n prefs: { ...DEFAULT_NXDS_APPEARANCE.prefs },\n mode,\n };\n}\n\nfunction runtimeColorAliases(name: string): CatalogueAlias[] {\n const aliases = [cssVariable(`--color-${name}`)];\n const borderName = borderColorAliasName(name);\n if (borderName !== null) {\n aliases.push(utility(`border-color-${borderName}`));\n }\n return aliases;\n}\n\nfunction runtimeColorTokens(): CatalogueToken[] {\n const themes = RUNTIME_MODES.map((mode) => {\n const appearance = runtimeAppearance(mode);\n return {\n mode,\n appearance,\n values: deriveThemeMode(createNxdsThemeContract(appearance), mode),\n };\n });\n\n return SEMANTIC_TOKEN_REGISTRY.map(({ name, category }) => {\n const property: CatalogueTokenName = `--nx-color-${name}`;\n return {\n name: property,\n family: 'color',\n group: category,\n type: 'color',\n description: RUNTIME_COLOR_DESCRIPTIONS[name] ?? null,\n aliases: runtimeColorAliases(name),\n control: null,\n variants: themes.map(({ mode, appearance, values }) => {\n const value = values[property];\n if (value === undefined) {\n throw new Error(`catalogue: deriveTheme emitted no ${property}`);\n }\n return {\n mode,\n preset: null,\n source: null,\n appearance,\n authoredValue: null,\n declarations: [{ property, value }],\n references: [],\n };\n }),\n };\n });\n}\n\n/**\n * Every nxds token, identified by its `--nx-*` name: primitives, runtime\n * colours, spacing, z-index, breakpoints, and typography and shadow styles.\n * Runtime colours are computed from `DEFAULT_NXDS_APPEARANCE` in explicit\n * light and dark modes; each variant records the appearance it used.\n */\nexport function createTokenCatalogue(): readonly CatalogueToken[] {\n const primitives = PRIMITIVE_FAMILIES.flatMap(primitiveLeaves);\n const lookup = primitiveLookup(primitives);\n return [\n ...authoredTokens(primitives, lookup, primitiveEntry(lookup)),\n ...runtimeColorTokens(),\n ...authoredTokens(spacingLeaves(), lookup, spacingEntry),\n ...authoredTokens(\n fileLeaves('z-index', Z_INDEX_FILE, SINGLE_SOURCE),\n lookup,\n zIndexEntry\n ),\n ...authoredTokens(\n fileLeaves('breakpoint', BREAKPOINTS_FILE, SINGLE_SOURCE),\n lookup,\n breakpointEntry\n ),\n ...authoredTokens(\n styleLeaves('typography', TYPOGRAPHY_STYLES_FILE),\n lookup,\n typographyStyleEntry(lookup)\n ),\n ...authoredTokens(\n styleLeaves('shadow', SHADOW_STYLES_FILE),\n lookup,\n shadowStyleEntry(lookup)\n ),\n ];\n}\n"],"mappings":"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","names":["APCAcontrast","sRGBtoY","clampChroma","oklch","parse","clampChroma","oklch","parse","clampChroma","converter","oklch","parse","toRgb","converter","round","parse","oklch","clampChroma","EMIT_GAMUT","CUSP_FRACTION","parse","oklch","clampChroma","EMIT_GAMUT","CUSP_FRACTION","sRGBtoY","APCAcontrast","clampChroma","clampChroma","token","token","spacing","clampChroma","ink","token","token","token"]}