@vinaverse/tokens 0.1.0-alpha.2 → 0.1.0-alpha.21

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":["../src/tokens.json","../src/index.ts"],"names":[],"mappings":"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","file":"index.cjs","sourcesContent":["{\n \"$description\": \"The Vinaverse design tokens, shared by every UI kit (React Native, Angular) so they look alike out of the box. Shape: W3C design-tokens style ($type, $value). Colors per mode with identical paths; sizes are numbers in a 16-based reference unit (16 = 1rem on the web, dp in React Native). The paths are public API: a CSS custom property is the path without the mode, kebab-cased (color.light.agentBubble -> --vv-color-agent-bubble), and a test freezes the list. With reduced motion asked for, every motion duration is 0: no fades, no animated scrolling.\",\n \"color\": {\n \"light\": {\n \"background\": {\n \"$type\": \"color\",\n \"$value\": \"#FFFFFF\"\n },\n \"surface\": {\n \"$type\": \"color\",\n \"$value\": \"#F5F6F8\"\n },\n \"border\": {\n \"$type\": \"color\",\n \"$value\": \"#858C98\"\n },\n \"divider\": {\n \"$type\": \"color\",\n \"$value\": \"#E3E6EA\"\n },\n \"text\": {\n \"$type\": \"color\",\n \"$value\": \"#15171A\"\n },\n \"textMuted\": {\n \"$type\": \"color\",\n \"$value\": \"#545B67\"\n },\n \"primary\": {\n \"$type\": \"color\",\n \"$value\": \"#2B57CF\"\n },\n \"onPrimary\": {\n \"$type\": \"color\",\n \"$value\": \"#FFFFFF\"\n },\n \"agentBubble\": {\n \"$type\": \"color\",\n \"$value\": \"#EEF1F5\"\n },\n \"agentText\": {\n \"$type\": \"color\",\n \"$value\": \"#15171A\"\n },\n \"personBubble\": {\n \"$type\": \"color\",\n \"$value\": \"#2B57CF\"\n },\n \"personText\": {\n \"$type\": \"color\",\n \"$value\": \"#FFFFFF\"\n },\n \"staffBubble\": {\n \"$type\": \"color\",\n \"$value\": \"#FFF3DC\"\n },\n \"staffText\": {\n \"$type\": \"color\",\n \"$value\": \"#3A2800\"\n },\n \"staffAccent\": {\n \"$type\": \"color\",\n \"$value\": \"#7A4F00\"\n },\n \"disclosureBackground\": {\n \"$type\": \"color\",\n \"$value\": \"#EEF1F5\"\n },\n \"disclosureText\": {\n \"$type\": \"color\",\n \"$value\": \"#3A414D\"\n },\n \"danger\": {\n \"$type\": \"color\",\n \"$value\": \"#B42318\"\n },\n \"warning\": {\n \"$type\": \"color\",\n \"$value\": \"#7A4F00\"\n },\n \"success\": {\n \"$type\": \"color\",\n \"$value\": \"#1C6E3F\"\n },\n \"focus\": {\n \"$type\": \"color\",\n \"$value\": \"#2B57CF\"\n }\n },\n \"dark\": {\n \"background\": {\n \"$type\": \"color\",\n \"$value\": \"#0F1115\"\n },\n \"surface\": {\n \"$type\": \"color\",\n \"$value\": \"#181B21\"\n },\n \"border\": {\n \"$type\": \"color\",\n \"$value\": \"#6B7383\"\n },\n \"divider\": {\n \"$type\": \"color\",\n \"$value\": \"#262A31\"\n },\n \"text\": {\n \"$type\": \"color\",\n \"$value\": \"#ECEEF2\"\n },\n \"textMuted\": {\n \"$type\": \"color\",\n \"$value\": \"#A6ADBA\"\n },\n \"primary\": {\n \"$type\": \"color\",\n \"$value\": \"#8DB0FF\"\n },\n \"onPrimary\": {\n \"$type\": \"color\",\n \"$value\": \"#0F1115\"\n },\n \"agentBubble\": {\n \"$type\": \"color\",\n \"$value\": \"#1E2229\"\n },\n \"agentText\": {\n \"$type\": \"color\",\n \"$value\": \"#ECEEF2\"\n },\n \"personBubble\": {\n \"$type\": \"color\",\n \"$value\": \"#3A63D8\"\n },\n \"personText\": {\n \"$type\": \"color\",\n \"$value\": \"#FFFFFF\"\n },\n \"staffBubble\": {\n \"$type\": \"color\",\n \"$value\": \"#2B2416\"\n },\n \"staffText\": {\n \"$type\": \"color\",\n \"$value\": \"#F5E3C0\"\n },\n \"staffAccent\": {\n \"$type\": \"color\",\n \"$value\": \"#E6B85C\"\n },\n \"disclosureBackground\": {\n \"$type\": \"color\",\n \"$value\": \"#1A1D23\"\n },\n \"disclosureText\": {\n \"$type\": \"color\",\n \"$value\": \"#C3C8D2\"\n },\n \"danger\": {\n \"$type\": \"color\",\n \"$value\": \"#FF8F85\"\n },\n \"warning\": {\n \"$type\": \"color\",\n \"$value\": \"#E6B85C\"\n },\n \"success\": {\n \"$type\": \"color\",\n \"$value\": \"#72D49E\"\n },\n \"focus\": {\n \"$type\": \"color\",\n \"$value\": \"#8DB0FF\"\n }\n }\n },\n \"font\": {\n \"size\": {\n \"xs\": {\n \"$type\": \"dimension\",\n \"$value\": 12\n },\n \"sm\": {\n \"$type\": \"dimension\",\n \"$value\": 14\n },\n \"md\": {\n \"$type\": \"dimension\",\n \"$value\": 16\n },\n \"lg\": {\n \"$type\": \"dimension\",\n \"$value\": 18\n },\n \"xl\": {\n \"$type\": \"dimension\",\n \"$value\": 22\n }\n },\n \"weight\": {\n \"regular\": {\n \"$type\": \"fontWeight\",\n \"$value\": 400\n },\n \"medium\": {\n \"$type\": \"fontWeight\",\n \"$value\": 500\n },\n \"semibold\": {\n \"$type\": \"fontWeight\",\n \"$value\": 600\n }\n },\n \"lineHeight\": {\n \"$type\": \"number\",\n \"$value\": 1.4\n }\n },\n \"space\": {\n \"xxs\": {\n \"$type\": \"dimension\",\n \"$value\": 2\n },\n \"xs\": {\n \"$type\": \"dimension\",\n \"$value\": 4\n },\n \"sm\": {\n \"$type\": \"dimension\",\n \"$value\": 8\n },\n \"md\": {\n \"$type\": \"dimension\",\n \"$value\": 12\n },\n \"lg\": {\n \"$type\": \"dimension\",\n \"$value\": 16\n },\n \"xl\": {\n \"$type\": \"dimension\",\n \"$value\": 24\n }\n },\n \"radius\": {\n \"sm\": {\n \"$type\": \"dimension\",\n \"$value\": 6\n },\n \"md\": {\n \"$type\": \"dimension\",\n \"$value\": 12\n },\n \"lg\": {\n \"$type\": \"dimension\",\n \"$value\": 18\n },\n \"pill\": {\n \"$type\": \"dimension\",\n \"$value\": 999\n }\n },\n \"motion\": {\n \"fast\": {\n \"$type\": \"duration\",\n \"$value\": 120\n },\n \"normal\": {\n \"$type\": \"duration\",\n \"$value\": 200\n },\n \"bannerDelay\": {\n \"$type\": \"duration\",\n \"$value\": 600,\n \"$description\": \"how long a connecting banner waits before it shows, so a quick connection never flashes one\"\n }\n },\n \"size\": {\n \"touchTarget\": {\n \"$type\": \"dimension\",\n \"$value\": 44\n },\n \"avatar\": {\n \"$type\": \"dimension\",\n \"$value\": 32\n },\n \"disclosureFontMin\": {\n \"$type\": \"dimension\",\n \"$value\": 12,\n \"$description\": \"the AI disclosure is never drawn smaller\"\n }\n },\n \"contrast\": {\n \"$description\": \"The text and control pairs a theme must keep legible, in every mode: WCAG 2 ratio of fg on bg at least min (4.5 for text, 3 for controls and borders). divider is decorative and has none.\",\n \"pairs\": [\n {\n \"fg\": \"color.text\",\n \"bg\": \"color.background\",\n \"min\": 4.5\n },\n {\n \"fg\": \"color.textMuted\",\n \"bg\": \"color.background\",\n \"min\": 4.5\n },\n {\n \"fg\": \"color.text\",\n \"bg\": \"color.surface\",\n \"min\": 4.5\n },\n {\n \"fg\": \"color.textMuted\",\n \"bg\": \"color.surface\",\n \"min\": 4.5\n },\n {\n \"fg\": \"color.agentText\",\n \"bg\": \"color.agentBubble\",\n \"min\": 4.5\n },\n {\n \"fg\": \"color.personText\",\n \"bg\": \"color.personBubble\",\n \"min\": 4.5\n },\n {\n \"fg\": \"color.staffText\",\n \"bg\": \"color.staffBubble\",\n \"min\": 4.5\n },\n {\n \"fg\": \"color.staffAccent\",\n \"bg\": \"color.staffBubble\",\n \"min\": 4.5\n },\n {\n \"fg\": \"color.disclosureText\",\n \"bg\": \"color.disclosureBackground\",\n \"min\": 4.5\n },\n {\n \"fg\": \"color.onPrimary\",\n \"bg\": \"color.primary\",\n \"min\": 4.5\n },\n {\n \"fg\": \"color.primary\",\n \"bg\": \"color.background\",\n \"min\": 3\n },\n {\n \"fg\": \"color.danger\",\n \"bg\": \"color.background\",\n \"min\": 4.5\n },\n {\n \"fg\": \"color.warning\",\n \"bg\": \"color.background\",\n \"min\": 4.5\n },\n {\n \"fg\": \"color.success\",\n \"bg\": \"color.background\",\n \"min\": 4.5\n },\n {\n \"fg\": \"color.border\",\n \"bg\": \"color.background\",\n \"min\": 3\n },\n {\n \"fg\": \"color.focus\",\n \"bg\": \"color.background\",\n \"min\": 3\n }\n ]\n }\n}\n","// @vinaverse/tokens: the design tokens every Vinaverse UI kit starts from, as one JSON (`@vinaverse/tokens/tokens.json`,\n// for build tools that emit CSS custom properties) and as typed values. No framework, no platform.\nimport json from './tokens.json';\n\nexport type ColorScheme = 'light' | 'dark';\nexport type ColorName = keyof (typeof json)['color']['light'];\nexport type Colors = Readonly<Record<ColorName, string>>;\n\ntype Leaf<T> = { readonly $value: T };\nconst values = <K extends string, T>(group: Record<K, Leaf<T>>) =>\n Object.fromEntries(\n Object.entries(group).map(([k, v]) => [k, (v as Leaf<T>).$value]),\n ) as Readonly<Record<K, T>>;\n\n/** The default colors of a scheme, by name. */\nexport function colors(scheme: ColorScheme): Colors {\n return values(json.color[scheme]) as Colors;\n}\n\n/** Type sizes, weights and line height; spacing, radii, motion durations (ms) and sizes, in density-independent px. */\nexport const font = {\n size: values(json.font.size),\n weight: values(json.font.weight),\n lineHeight: json.font.lineHeight.$value,\n} as const;\nexport const space = values(json.space);\nexport const radius = values(json.radius);\nexport const motion = values(json.motion);\nexport const size = values(json.size);\n\n/** The text and control pairs a theme must keep legible: [foreground, background, minimum WCAG contrast], from the JSON. */\nexport const CONTRAST_PAIRS: readonly (readonly [\n ColorName,\n ColorName,\n number,\n])[] = json.contrast.pairs.map(\n (p) =>\n [\n p.fg.replace('color.', '') as ColorName,\n p.bg.replace('color.', '') as ColorName,\n p.min,\n ] as const,\n);\n\n/**\n * Every token's path, modes included (`color.light.agentBubble`, `font.size.md`): the public names, frozen by a test.\n */\nexport function tokenPaths(): string[] {\n const out: string[] = [];\n const walk = (node: unknown, path: string[]) => {\n if (typeof node !== 'object' || node === null) return;\n if ('$value' in node) {\n out.push(path.join('.'));\n return;\n }\n for (const [key, child] of Object.entries(node))\n if (!key.startsWith('$') && key !== 'contrast')\n walk(child, [...path, key]);\n };\n walk(json, []);\n return out;\n}\n\n/** A token's CSS custom property: the path without its mode, kebab-cased (`--vv-color-agent-bubble`). */\nexport function cssVariable(path: string): string {\n const parts = path\n .split('.')\n .filter((_, i, all) => !(all[0] === 'color' && i === 1));\n return `--vv-${parts\n .map((p) => p.replace(/[A-Z]/g, (c) => `-${c.toLowerCase()}`))\n .join('-')}`;\n}\n\n/** The WCAG 2 contrast ratio of two `#RRGGBB` colors (1 to 21); NaN when either is not one. */\nexport function contrastRatio(a: string, b: string): number {\n const la = luminance(a);\n const lb = luminance(b);\n return (Math.max(la, lb) + 0.05) / (Math.min(la, lb) + 0.05);\n}\n\n/** The pairs of a set of colors below their minimum: a tenant theme to warn about. */\nexport function contrastProblems(palette: Colors): {\n foreground: ColorName;\n background: ColorName;\n ratio: number;\n minimum: number;\n}[] {\n return CONTRAST_PAIRS.flatMap(([foreground, background, minimum]) => {\n const ratio = contrastRatio(palette[foreground], palette[background]);\n return ratio >= minimum ? [] : [{ foreground, background, ratio, minimum }];\n });\n}\n\nfunction luminance(hex: string): number {\n const m = /^#([0-9a-f]{6})$/i.exec(hex);\n if (!m) return Number.NaN;\n const n = Number.parseInt(m[1] as string, 16);\n const [r, g, b] = [(n >> 16) & 255, (n >> 8) & 255, n & 255].map((c) => {\n const s = c / 255;\n return s <= 0.04045 ? s / 12.92 : ((s + 0.055) / 1.055) ** 2.4;\n }) as [number, number, number];\n return 0.2126 * r + 0.7152 * g + 0.0722 * b;\n}\n"]}
1
+ {"version":3,"sources":["../src/tokens.json","../src/index.ts"],"names":[],"mappings":"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","file":"index.cjs","sourcesContent":["{\n \"$description\": \"The Vinaverse design tokens, shared by every UI kit (React Native, Angular) so they look alike out of the box. Shape: W3C design-tokens style ($type, $value). Colors per mode with identical paths; sizes are numbers in a 16-based reference unit (16 = 1rem on the web, dp in React Native). The paths are public API: a CSS custom property is the path without the mode, kebab-cased (color.light.agentBubble -> --vv-color-agent-bubble), and a test freezes the list. With reduced motion asked for, every motion duration is 0: no fades, no animated scrolling.\",\n \"color\": {\n \"light\": {\n \"background\": {\n \"$type\": \"color\",\n \"$value\": \"#FFFFFF\"\n },\n \"surface\": {\n \"$type\": \"color\",\n \"$value\": \"#F5F6F8\"\n },\n \"border\": {\n \"$type\": \"color\",\n \"$value\": \"#858C98\"\n },\n \"divider\": {\n \"$type\": \"color\",\n \"$value\": \"#E3E6EA\"\n },\n \"text\": {\n \"$type\": \"color\",\n \"$value\": \"#15171A\"\n },\n \"textMuted\": {\n \"$type\": \"color\",\n \"$value\": \"#545B67\"\n },\n \"textSecondary\": {\n \"$type\": \"color\",\n \"$value\": \"#454B55\"\n },\n \"primary\": {\n \"$type\": \"color\",\n \"$value\": \"#2B57CF\"\n },\n \"onPrimary\": {\n \"$type\": \"color\",\n \"$value\": \"#FFFFFF\"\n },\n \"agentBubble\": {\n \"$type\": \"color\",\n \"$value\": \"#EEF1F5\"\n },\n \"agentText\": {\n \"$type\": \"color\",\n \"$value\": \"#15171A\"\n },\n \"personBubble\": {\n \"$type\": \"color\",\n \"$value\": \"#2B57CF\"\n },\n \"personText\": {\n \"$type\": \"color\",\n \"$value\": \"#FFFFFF\"\n },\n \"staffBubble\": {\n \"$type\": \"color\",\n \"$value\": \"#FFF3DC\"\n },\n \"staffText\": {\n \"$type\": \"color\",\n \"$value\": \"#3A2800\"\n },\n \"staffAccent\": {\n \"$type\": \"color\",\n \"$value\": \"#7A4F00\"\n },\n \"disclosureBackground\": {\n \"$type\": \"color\",\n \"$value\": \"#EEF1F5\"\n },\n \"disclosureText\": {\n \"$type\": \"color\",\n \"$value\": \"#3A414D\"\n },\n \"danger\": {\n \"$type\": \"color\",\n \"$value\": \"#B42318\"\n },\n \"warning\": {\n \"$type\": \"color\",\n \"$value\": \"#7A4F00\"\n },\n \"success\": {\n \"$type\": \"color\",\n \"$value\": \"#1C6E3F\"\n },\n \"focus\": {\n \"$type\": \"color\",\n \"$value\": \"#2B57CF\"\n },\n \"primarySubtle\": {\n \"$type\": \"color\",\n \"$value\": \"#F5F6F8\"\n },\n \"rating\": {\n \"$type\": \"color\",\n \"$value\": \"#7A4F00\"\n }\n },\n \"dark\": {\n \"background\": {\n \"$type\": \"color\",\n \"$value\": \"#0F1115\"\n },\n \"surface\": {\n \"$type\": \"color\",\n \"$value\": \"#181B21\"\n },\n \"border\": {\n \"$type\": \"color\",\n \"$value\": \"#6B7383\"\n },\n \"divider\": {\n \"$type\": \"color\",\n \"$value\": \"#262A31\"\n },\n \"text\": {\n \"$type\": \"color\",\n \"$value\": \"#ECEEF2\"\n },\n \"textMuted\": {\n \"$type\": \"color\",\n \"$value\": \"#A6ADBA\"\n },\n \"textSecondary\": {\n \"$type\": \"color\",\n \"$value\": \"#BEC4CF\"\n },\n \"primary\": {\n \"$type\": \"color\",\n \"$value\": \"#8DB0FF\"\n },\n \"onPrimary\": {\n \"$type\": \"color\",\n \"$value\": \"#0F1115\"\n },\n \"agentBubble\": {\n \"$type\": \"color\",\n \"$value\": \"#1E2229\"\n },\n \"agentText\": {\n \"$type\": \"color\",\n \"$value\": \"#ECEEF2\"\n },\n \"personBubble\": {\n \"$type\": \"color\",\n \"$value\": \"#3A63D8\"\n },\n \"personText\": {\n \"$type\": \"color\",\n \"$value\": \"#FFFFFF\"\n },\n \"staffBubble\": {\n \"$type\": \"color\",\n \"$value\": \"#2B2416\"\n },\n \"staffText\": {\n \"$type\": \"color\",\n \"$value\": \"#F5E3C0\"\n },\n \"staffAccent\": {\n \"$type\": \"color\",\n \"$value\": \"#E6B85C\"\n },\n \"disclosureBackground\": {\n \"$type\": \"color\",\n \"$value\": \"#1A1D23\"\n },\n \"disclosureText\": {\n \"$type\": \"color\",\n \"$value\": \"#C3C8D2\"\n },\n \"danger\": {\n \"$type\": \"color\",\n \"$value\": \"#FF8F85\"\n },\n \"warning\": {\n \"$type\": \"color\",\n \"$value\": \"#E6B85C\"\n },\n \"success\": {\n \"$type\": \"color\",\n \"$value\": \"#72D49E\"\n },\n \"focus\": {\n \"$type\": \"color\",\n \"$value\": \"#8DB0FF\"\n },\n \"primarySubtle\": {\n \"$type\": \"color\",\n \"$value\": \"#181B21\"\n },\n \"rating\": {\n \"$type\": \"color\",\n \"$value\": \"#E6B85C\"\n }\n }\n },\n \"font\": {\n \"size\": {\n \"xs\": {\n \"$type\": \"dimension\",\n \"$value\": 12\n },\n \"sm\": {\n \"$type\": \"dimension\",\n \"$value\": 14\n },\n \"md\": {\n \"$type\": \"dimension\",\n \"$value\": 16\n },\n \"lg\": {\n \"$type\": \"dimension\",\n \"$value\": 18\n },\n \"xl\": {\n \"$type\": \"dimension\",\n \"$value\": 22\n }\n },\n \"weight\": {\n \"regular\": {\n \"$type\": \"fontWeight\",\n \"$value\": 400\n },\n \"medium\": {\n \"$type\": \"fontWeight\",\n \"$value\": 500\n },\n \"semibold\": {\n \"$type\": \"fontWeight\",\n \"$value\": 600\n }\n },\n \"lineHeight\": {\n \"$type\": \"number\",\n \"$value\": 1.4\n }\n },\n \"space\": {\n \"xxs\": {\n \"$type\": \"dimension\",\n \"$value\": 2\n },\n \"xs\": {\n \"$type\": \"dimension\",\n \"$value\": 4\n },\n \"sm\": {\n \"$type\": \"dimension\",\n \"$value\": 8\n },\n \"md\": {\n \"$type\": \"dimension\",\n \"$value\": 12\n },\n \"lg\": {\n \"$type\": \"dimension\",\n \"$value\": 16\n },\n \"xl\": {\n \"$type\": \"dimension\",\n \"$value\": 24\n }\n },\n \"radius\": {\n \"sm\": {\n \"$type\": \"dimension\",\n \"$value\": 6\n },\n \"md\": {\n \"$type\": \"dimension\",\n \"$value\": 12\n },\n \"lg\": {\n \"$type\": \"dimension\",\n \"$value\": 18\n },\n \"pill\": {\n \"$type\": \"dimension\",\n \"$value\": 999\n }\n },\n \"motion\": {\n \"instant\": {\n \"$type\": \"duration\",\n \"$value\": 80\n },\n \"fast\": {\n \"$type\": \"duration\",\n \"$value\": 140\n },\n \"normal\": {\n \"$type\": \"duration\",\n \"$value\": 200\n },\n \"bannerDelay\": {\n \"$type\": \"duration\",\n \"$value\": 600,\n \"$description\": \"how long a connecting banner waits before it shows, so a quick connection never flashes one\"\n },\n \"base\": {\n \"$type\": \"duration\",\n \"$value\": 220\n },\n \"slow\": {\n \"$type\": \"duration\",\n \"$value\": 320\n },\n \"stagger\": {\n \"$type\": \"duration\",\n \"$value\": 30\n },\n \"rise\": {\n \"$type\": \"dimension\",\n \"$value\": 8\n },\n \"pressScale\": {\n \"$type\": \"number\",\n \"$value\": 0.97\n }\n },\n \"size\": {\n \"touchTarget\": {\n \"$type\": \"dimension\",\n \"$value\": 44\n },\n \"avatar\": {\n \"$type\": \"dimension\",\n \"$value\": 32\n },\n \"disclosureFontMin\": {\n \"$type\": \"dimension\",\n \"$value\": 12,\n \"$description\": \"the AI disclosure is never drawn smaller\"\n }\n },\n \"chat\": {\n \"$description\": \"The chat shell (spec 00), kit defaults a tenant overrides (ThemeOverrides.chat): elevation draws in light only.\",\n \"gutter\": {\n \"$type\": \"dimension\",\n \"$value\": 16\n },\n \"gap\": {\n \"sameAuthor\": {\n \"$type\": \"dimension\",\n \"$value\": 4\n },\n \"authorChange\": {\n \"$type\": \"dimension\",\n \"$value\": 12\n },\n \"block\": {\n \"$type\": \"dimension\",\n \"$value\": 8\n }\n },\n \"bubble\": {\n \"padX\": {\n \"$type\": \"dimension\",\n \"$value\": 14\n },\n \"padY\": {\n \"$type\": \"dimension\",\n \"$value\": 10\n },\n \"maxWidth\": {\n \"$type\": \"number\",\n \"$value\": 0.82\n }\n },\n \"card\": {\n \"pad\": {\n \"$type\": \"dimension\",\n \"$value\": 14\n },\n \"gap\": {\n \"$type\": \"dimension\",\n \"$value\": 8\n },\n \"carouselGap\": {\n \"$type\": \"dimension\",\n \"$value\": 10\n },\n \"carouselWidth\": {\n \"$type\": \"dimension\",\n \"$value\": 214\n }\n },\n \"chip\": {\n \"height\": {\n \"$type\": \"dimension\",\n \"$value\": 38\n },\n \"gap\": {\n \"$type\": \"dimension\",\n \"$value\": 8\n }\n },\n \"header\": {\n \"height\": {\n \"$type\": \"dimension\",\n \"$value\": 56\n }\n },\n \"composer\": {\n \"minHeight\": {\n \"$type\": \"dimension\",\n \"$value\": 48\n }\n },\n \"input\": {\n \"gap\": {\n \"$type\": \"dimension\",\n \"$value\": 12\n }\n },\n \"radius\": {\n \"bubble\": {\n \"$type\": \"dimension\",\n \"$value\": 20\n },\n \"bubbleTail\": {\n \"$type\": \"dimension\",\n \"$value\": 6\n },\n \"card\": {\n \"$type\": \"dimension\",\n \"$value\": 16\n },\n \"cardMedia\": {\n \"$type\": \"dimension\",\n \"$value\": 12\n },\n \"chip\": {\n \"$type\": \"dimension\",\n \"$value\": 999\n },\n \"slot\": {\n \"$type\": \"dimension\",\n \"$value\": 12\n },\n \"field\": {\n \"$type\": \"dimension\",\n \"$value\": 12\n },\n \"composer\": {\n \"$type\": \"dimension\",\n \"$value\": 24\n },\n \"sheet\": {\n \"$type\": \"dimension\",\n \"$value\": 28\n }\n },\n \"elevation\": {\n \"card\": {\n \"$type\": \"shadow\",\n \"$value\": {\n \"offsetY\": 1,\n \"blur\": 3,\n \"opacity\": 0.08\n }\n },\n \"raised\": {\n \"$type\": \"shadow\",\n \"$value\": {\n \"offsetY\": 4,\n \"blur\": 12,\n \"opacity\": 0.08\n }\n },\n \"overlay\": {\n \"$type\": \"shadow\",\n \"$value\": {\n \"offsetY\": 12,\n \"blur\": 28,\n \"opacity\": 0.12\n }\n },\n \"sheet\": {\n \"$type\": \"shadow\",\n \"$value\": {\n \"offsetY\": -4,\n \"blur\": 16,\n \"opacity\": 0.08\n }\n }\n },\n \"type\": {\n \"bubble\": {\n \"size\": {\n \"$type\": \"dimension\",\n \"$value\": 16\n },\n \"line\": {\n \"$type\": \"dimension\",\n \"$value\": 22\n },\n \"weight\": {\n \"$type\": \"fontWeight\",\n \"$value\": 400\n }\n },\n \"meta\": {\n \"size\": {\n \"$type\": \"dimension\",\n \"$value\": 12\n },\n \"line\": {\n \"$type\": \"dimension\",\n \"$value\": 16\n },\n \"weight\": {\n \"$type\": \"fontWeight\",\n \"$value\": 400\n }\n },\n \"cardTitle\": {\n \"size\": {\n \"$type\": \"dimension\",\n \"$value\": 15\n },\n \"line\": {\n \"$type\": \"dimension\",\n \"$value\": 20\n },\n \"weight\": {\n \"$type\": \"fontWeight\",\n \"$value\": 600\n }\n },\n \"cardBody\": {\n \"size\": {\n \"$type\": \"dimension\",\n \"$value\": 13\n },\n \"line\": {\n \"$type\": \"dimension\",\n \"$value\": 18\n },\n \"weight\": {\n \"$type\": \"fontWeight\",\n \"$value\": 400\n }\n },\n \"cardPrice\": {\n \"size\": {\n \"$type\": \"dimension\",\n \"$value\": 15\n },\n \"line\": {\n \"$type\": \"dimension\",\n \"$value\": 20\n },\n \"weight\": {\n \"$type\": \"fontWeight\",\n \"$value\": 600\n }\n },\n \"chip\": {\n \"size\": {\n \"$type\": \"dimension\",\n \"$value\": 14\n },\n \"line\": {\n \"$type\": \"dimension\",\n \"$value\": 20\n },\n \"weight\": {\n \"$type\": \"fontWeight\",\n \"$value\": 500\n }\n },\n \"working\": {\n \"size\": {\n \"$type\": \"dimension\",\n \"$value\": 14\n },\n \"line\": {\n \"$type\": \"dimension\",\n \"$value\": 19\n },\n \"weight\": {\n \"$type\": \"fontWeight\",\n \"$value\": 400\n }\n }\n },\n \"thinking\": {\n \"dotSize\": {\n \"$type\": \"dimension\",\n \"$value\": 6\n },\n \"dotGap\": {\n \"$type\": \"dimension\",\n \"$value\": 4\n },\n \"rise\": {\n \"$type\": \"dimension\",\n \"$value\": 3\n },\n \"cycle\": {\n \"$type\": \"duration\",\n \"$value\": 900\n },\n \"delay\": {\n \"$type\": \"duration\",\n \"$value\": 300\n },\n \"dotDelay\": {\n \"$type\": \"duration\",\n \"$value\": 150\n }\n },\n \"working\": {\n \"minStep\": {\n \"$type\": \"duration\",\n \"$value\": 600\n },\n \"iconSize\": {\n \"$type\": \"dimension\",\n \"$value\": 14\n },\n \"fontSize\": {\n \"$type\": \"dimension\",\n \"$value\": 14\n },\n \"lineHeight\": {\n \"$type\": \"dimension\",\n \"$value\": 19\n }\n },\n \"caret\": {\n \"width\": {\n \"$type\": \"dimension\",\n \"$value\": 2\n },\n \"height\": {\n \"$type\": \"dimension\",\n \"$value\": 18\n },\n \"cycle\": {\n \"$type\": \"duration\",\n \"$value\": 1000\n }\n },\n \"stream\": {\n \"flush\": {\n \"$type\": \"duration\",\n \"$value\": 50\n }\n },\n \"skeleton\": {\n \"pulse\": {\n \"$type\": \"duration\",\n \"$value\": 1200\n },\n \"minOpacity\": {\n \"$type\": \"number\",\n \"$value\": 0.55\n }\n }\n },\n \"contrast\": {\n \"$description\": \"The text and control pairs a theme must keep legible, in every mode: WCAG 2 ratio of fg on bg at least min (4.5 for text, 3 for controls and borders). divider is decorative and has none.\",\n \"pairs\": [\n {\n \"fg\": \"color.text\",\n \"bg\": \"color.background\",\n \"min\": 4.5\n },\n {\n \"fg\": \"color.textMuted\",\n \"bg\": \"color.background\",\n \"min\": 4.5\n },\n {\n \"fg\": \"color.text\",\n \"bg\": \"color.surface\",\n \"min\": 4.5\n },\n {\n \"fg\": \"color.textMuted\",\n \"bg\": \"color.surface\",\n \"min\": 4.5\n },\n {\n \"fg\": \"color.textSecondary\",\n \"bg\": \"color.background\",\n \"min\": 4.5\n },\n {\n \"fg\": \"color.textSecondary\",\n \"bg\": \"color.surface\",\n \"min\": 4.5\n },\n {\n \"fg\": \"color.textSecondary\",\n \"bg\": \"color.agentBubble\",\n \"min\": 4.5\n },\n {\n \"fg\": \"color.agentText\",\n \"bg\": \"color.agentBubble\",\n \"min\": 4.5\n },\n {\n \"fg\": \"color.personText\",\n \"bg\": \"color.personBubble\",\n \"min\": 4.5\n },\n {\n \"fg\": \"color.staffText\",\n \"bg\": \"color.staffBubble\",\n \"min\": 4.5\n },\n {\n \"fg\": \"color.staffAccent\",\n \"bg\": \"color.staffBubble\",\n \"min\": 4.5\n },\n {\n \"fg\": \"color.disclosureText\",\n \"bg\": \"color.disclosureBackground\",\n \"min\": 4.5\n },\n {\n \"fg\": \"color.onPrimary\",\n \"bg\": \"color.primary\",\n \"min\": 4.5\n },\n {\n \"fg\": \"color.primary\",\n \"bg\": \"color.background\",\n \"min\": 3\n },\n {\n \"fg\": \"color.danger\",\n \"bg\": \"color.background\",\n \"min\": 4.5\n },\n {\n \"fg\": \"color.warning\",\n \"bg\": \"color.background\",\n \"min\": 4.5\n },\n {\n \"fg\": \"color.warning\",\n \"bg\": \"color.surface\",\n \"min\": 4.5\n },\n {\n \"fg\": \"color.success\",\n \"bg\": \"color.background\",\n \"min\": 4.5\n },\n {\n \"fg\": \"color.border\",\n \"bg\": \"color.background\",\n \"min\": 3\n },\n {\n \"fg\": \"color.focus\",\n \"bg\": \"color.background\",\n \"min\": 3\n },\n {\n \"fg\": \"color.primary\",\n \"bg\": \"color.primarySubtle\",\n \"min\": 4.5\n }\n ]\n },\n \"ease\": {\n \"$description\": \"cubic-bezier control points: standard for what moves and stays, out for what enters, in for what leaves\",\n \"standard\": {\n \"$type\": \"cubicBezier\",\n \"$value\": [0.2, 0, 0, 1]\n },\n \"out\": {\n \"$type\": \"cubicBezier\",\n \"$value\": [0.16, 1, 0.3, 1]\n },\n \"in\": {\n \"$type\": \"cubicBezier\",\n \"$value\": [0.4, 0, 1, 1]\n }\n }\n}\n","// @vinaverse/tokens: the design tokens every Vinaverse UI kit starts from, as one JSON (`@vinaverse/tokens/tokens.json`,\n// for build tools that emit CSS custom properties) and as typed values. No framework, no platform.\nimport json from './tokens.json';\n\nexport type ColorScheme = 'light' | 'dark';\nexport type ColorName = keyof (typeof json)['color']['light'];\nexport type Colors = Readonly<Record<ColorName, string>>;\n\ntype Leaf<T> = { readonly $value: T };\nconst values = <K extends string, T>(group: Record<K, Leaf<T>>) =>\n Object.fromEntries(\n Object.entries(group).map(([k, v]) => [k, (v as Leaf<T>).$value]),\n ) as Readonly<Record<K, T>>;\n\n/** The default colors of a scheme, by name. */\nexport function colors(scheme: ColorScheme): Colors {\n return values(json.color[scheme]) as Colors;\n}\n\n/** Type sizes, weights and line height; spacing, radii, motion durations (ms) and sizes, in density-independent px. */\nexport const font = {\n size: values(json.font.size),\n weight: values(json.font.weight),\n lineHeight: json.font.lineHeight.$value,\n} as const;\nexport const space = values(json.space);\nexport const radius = values(json.radius);\nexport const motion = values(json.motion);\nexport const size = values(json.size);\n/** Easing curves as cubic-bezier control points: `standard` moves, `out` enters, `in` leaves. */\nexport const ease = values(\n json.ease as unknown as Record<'standard' | 'out' | 'in', Leaf<number[]>>,\n);\n\n/** A token group's values, nested as in the JSON, `$` keys dropped. */\nexport type TokenTree<T> = T extends { readonly $value: infer V }\n ? V\n : {\n readonly [K in keyof T as K extends `$${string}` ? never : K]: TokenTree<\n T[K]\n >;\n };\nfunction tree<T>(node: T): TokenTree<T> {\n const leaf = (n: unknown): unknown =>\n typeof n === 'object' && n !== null && '$value' in n\n ? (n as Leaf<unknown>).$value\n : Object.fromEntries(\n Object.entries(n as object)\n .filter(([k]) => !k.startsWith('$'))\n .map(([k, v]) => [k, leaf(v)]),\n );\n return leaf(node) as TokenTree<T>;\n}\n\n/**\n * The chat shell (spec 00): spacing, radii, elevation (light only), type and the agent's state indicators, as a tenant\n * overrides them through the theme (`ThemeOverrides.chat`).\n */\nexport const chat = tree(json.chat);\nexport type ChatTokens = typeof chat;\n\n/** The text and control pairs a theme must keep legible: [foreground, background, minimum WCAG contrast], from the JSON. */\nexport const CONTRAST_PAIRS: readonly (readonly [\n ColorName,\n ColorName,\n number,\n])[] = json.contrast.pairs.map(\n (p) =>\n [\n p.fg.replace('color.', '') as ColorName,\n p.bg.replace('color.', '') as ColorName,\n p.min,\n ] as const,\n);\n\n/**\n * Every token's path, modes included (`color.light.agentBubble`, `font.size.md`): the public names, frozen by a test.\n */\nexport function tokenPaths(): string[] {\n const out: string[] = [];\n const walk = (node: unknown, path: string[]) => {\n if (typeof node !== 'object' || node === null) return;\n if ('$value' in node) {\n out.push(path.join('.'));\n return;\n }\n for (const [key, child] of Object.entries(node))\n if (!key.startsWith('$') && key !== 'contrast')\n walk(child, [...path, key]);\n };\n walk(json, []);\n return out;\n}\n\n/** A token's CSS custom property: the path without its mode, kebab-cased (`--vv-color-agent-bubble`). */\nexport function cssVariable(path: string): string {\n const parts = path\n .split('.')\n .filter((_, i, all) => !(all[0] === 'color' && i === 1));\n return `--vv-${parts\n .map((p) => p.replace(/[A-Z]/g, (c) => `-${c.toLowerCase()}`))\n .join('-')}`;\n}\n\n/** The WCAG 2 contrast ratio of two `#RRGGBB` colors (1 to 21); NaN when either is not one. */\nexport function contrastRatio(a: string, b: string): number {\n const la = luminance(a);\n const lb = luminance(b);\n return (Math.max(la, lb) + 0.05) / (Math.min(la, lb) + 0.05);\n}\n\n/** The pairs of a set of colors below their minimum: a tenant theme to warn about. */\nexport function contrastProblems(palette: Colors): {\n foreground: ColorName;\n background: ColorName;\n ratio: number;\n minimum: number;\n}[] {\n return CONTRAST_PAIRS.flatMap(([foreground, background, minimum]) => {\n const ratio = contrastRatio(palette[foreground], palette[background]);\n return ratio >= minimum ? [] : [{ foreground, background, ratio, minimum }];\n });\n}\n\nfunction luminance(hex: string): number {\n const m = /^#([0-9a-f]{6})$/i.exec(hex);\n if (!m) return Number.NaN;\n const n = Number.parseInt(m[1] as string, 16);\n const [r, g, b] = [(n >> 16) & 255, (n >> 8) & 255, n & 255].map((c) => {\n const s = c / 255;\n return s <= 0.04045 ? s / 12.92 : ((s + 0.055) / 1.055) ** 2.4;\n }) as [number, number, number];\n return 0.2126 * r + 0.7152 * g + 0.0722 * b;\n}\n"]}