@inf-monkeys-tech/monkeys-design 1.0.62 → 1.0.63
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/components/agent-workbench/index.d.mts +14 -3
- package/dist/components/agent-workbench/index.d.ts +14 -3
- package/dist/components/agent-workbench/index.js +106 -50
- package/dist/components/agent-workbench/index.js.map +1 -1
- package/dist/components/agent-workbench/index.mjs +107 -51
- package/dist/components/agent-workbench/index.mjs.map +1 -1
- package/dist/{details-model-765193fe43be.d.mts → details-model-db4bd679f88e.d.mts} +5 -1
- package/dist/{details-model-765193fe43be.d.ts → details-model-db4bd679f88e.d.ts} +5 -1
- package/dist/index.d.mts +1 -1
- package/dist/index.d.ts +1 -1
- package/dist/index.js +88 -50
- package/dist/index.js.map +1 -1
- package/dist/index.mjs +89 -51
- package/dist/index.mjs.map +1 -1
- package/dist/provider/index.js +3 -0
- package/dist/provider/index.js.map +1 -1
- package/dist/provider/index.mjs +3 -0
- package/dist/provider/index.mjs.map +1 -1
- package/dist/styles.css +1 -1
- package/dist/theme-system/index.js +3 -0
- package/dist/theme-system/index.js.map +1 -1
- package/dist/theme-system/index.mjs +3 -0
- package/dist/theme-system/index.mjs.map +1 -1
- package/package.json +1 -1
|
@@ -209,6 +209,9 @@ var HSL_SEMANTIC_ALIASES = {
|
|
|
209
209
|
"semantic.color.border": "--border",
|
|
210
210
|
"semantic.color.input": "--input",
|
|
211
211
|
"semantic.color.ring": "--ring",
|
|
212
|
+
"semantic.color.media-surface": "--media-surface",
|
|
213
|
+
"semantic.color.media-foreground": "--media-foreground",
|
|
214
|
+
"semantic.color.media-overlay": "--media-overlay",
|
|
212
215
|
"semantic.color.radar-canvas": "--radar-canvas",
|
|
213
216
|
"semantic.color.radar-panel": "--radar-panel",
|
|
214
217
|
"semantic.color.radar-border": "--radar-border",
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../../src/theme-system/theme-tokens.ts"],"names":["hue","saturation","lightness","resolveThemeTokens"],"mappings":"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","file":"index.js","sourcesContent":["import type {\n ResolvedThemeToken,\n ThemeColorValue,\n ThemeDimensionValue,\n ThemeDurationValue,\n ThemeTokenExtensions,\n ThemeTokens,\n} from '@inf-monkeys-tech/monkeys/contracts';\nimport { resolveThemeTokens } from '@inf-monkeys-tech/monkeys/runtime';\n\nexport type MonkeysThemeColorMode = 'light' | 'dark' | (string & {});\nexport type MonkeysThemeDensity = 'compact' | 'default' | 'comfortable';\n\nexport interface CompileThemeTokensOptions {\n colorMode?: MonkeysThemeColorMode;\n density?: MonkeysThemeDensity;\n variablePrefix?: string;\n}\n\nexport interface CompiledThemeTokens {\n contract: ThemeTokens;\n colorMode: MonkeysThemeColorMode;\n density: MonkeysThemeDensity;\n values: Readonly<Record<string, unknown>>;\n cssValues: Readonly<Record<string, string>>;\n cssVariables: Readonly<Record<string, string>>;\n cssText: string;\n}\n\nexport interface ApplyThemeTokensOptions extends CompileThemeTokensOptions {\n target?: HTMLElement | null;\n themeId?: string;\n}\n\ntype CssExtension = {\n gradient?: {\n kind?: 'linear' | 'radial';\n angle?: number;\n };\n};\n\nconst CSS_EXTENSION_KEY = 'com.infmonkeys.css';\nconst APPLIED_VARIABLES = new WeakMap<object, Set<string>>();\n\nfunction isRecord(value: unknown): value is Record<string, unknown> {\n return value !== null && typeof value === 'object' && !Array.isArray(value);\n}\n\nfunction readCssExtension(extensions?: ThemeTokenExtensions): CssExtension | undefined {\n const extension = extensions?.[CSS_EXTENSION_KEY];\n return isRecord(extension) ? extension as CssExtension : undefined;\n}\n\nfunction formatNumber(value: number): string {\n return Number.isInteger(value) ? String(value) : String(Number(value.toFixed(6)));\n}\n\nfunction formatDimension(value: ThemeDimensionValue): string {\n return `${formatNumber(value.value)}${value.unit}`;\n}\n\nfunction formatDuration(value: ThemeDurationValue): string {\n return `${formatNumber(value.value)}${value.unit}`;\n}\n\nfunction formatColorComponent(value: number | 'none'): string {\n return value === 'none' ? value : formatNumber(value);\n}\n\nfunction hexToSrgb(hex: string): [number, number, number] {\n return [\n Number.parseInt(hex.slice(1, 3), 16) / 255,\n Number.parseInt(hex.slice(3, 5), 16) / 255,\n Number.parseInt(hex.slice(5, 7), 16) / 255,\n ];\n}\n\nfunction colorSrgbComponents(value: ThemeColorValue): [number, number, number] {\n if (value.colorSpace === 'srgb' && value.components.every((component) => typeof component === 'number')) {\n return value.components as [number, number, number];\n }\n if (value.hex) return hexToSrgb(value.hex);\n throw new TypeError(\n `Web semantic colors in ${value.colorSpace} require a six-digit hex fallback for hsl(var(--token)) consumers.`,\n );\n}\n\nfunction srgbToHsl([red, green, blue]: [number, number, number]): [number, number, number] {\n const maximum = Math.max(red, green, blue);\n const minimum = Math.min(red, green, blue);\n const lightness = (maximum + minimum) / 2;\n if (maximum === minimum) return [0, 0, lightness * 100];\n const delta = maximum - minimum;\n const saturation = lightness > 0.5\n ? delta / (2 - maximum - minimum)\n : delta / (maximum + minimum);\n let hue: number;\n if (maximum === red) hue = (green - blue) / delta + (green < blue ? 6 : 0);\n else if (maximum === green) hue = (blue - red) / delta + 2;\n else hue = (red - green) / delta + 4;\n return [(hue / 6) * 360, saturation * 100, lightness * 100];\n}\n\nfunction formatHslTriplet(value: ThemeColorValue): string {\n if (value.colorSpace === 'hsl' && value.components.every((component) => typeof component === 'number')) {\n const [hue, saturation, lightness] = value.components as [number, number, number];\n return `${formatNumber(hue)} ${formatNumber(saturation)}% ${formatNumber(lightness)}%`;\n }\n const [hue, saturation, lightness] = srgbToHsl(colorSrgbComponents(value));\n return `${formatNumber(hue)} ${formatNumber(saturation)}% ${formatNumber(lightness)}%`;\n}\n\nfunction formatColor(value: ThemeColorValue): string {\n const alpha = value.alpha ?? 1;\n if (value.hex && alpha === 1) return value.hex;\n const components = value.components.map(formatColorComponent).join(' ');\n const alphaSuffix = alpha === 1 ? '' : ` / ${formatNumber(alpha)}`;\n switch (value.colorSpace) {\n case 'srgb': {\n const rgb = value.components.map((component) => component === 'none' ? 'none' : formatNumber(component * 255));\n return `rgb(${rgb.join(' ')}${alphaSuffix})`;\n }\n case 'hsl':\n return `hsl(${formatColorComponent(value.components[0])} ${formatColorComponent(value.components[1])}% ${formatColorComponent(value.components[2])}%${alphaSuffix})`;\n case 'hwb':\n return `hwb(${formatColorComponent(value.components[0])} ${formatColorComponent(value.components[1])}% ${formatColorComponent(value.components[2])}%${alphaSuffix})`;\n case 'lab':\n case 'lch':\n case 'oklab':\n case 'oklch':\n return `${value.colorSpace}(${components}${alphaSuffix})`;\n default:\n return `color(${value.colorSpace} ${components}${alphaSuffix})`;\n }\n}\n\nfunction formatFontFamily(value: string | string[]): string {\n const families = Array.isArray(value) ? value : [value];\n const genericFamilies = new Set([\n 'serif', 'sans-serif', 'monospace', 'cursive', 'fantasy', 'system-ui',\n 'ui-serif', 'ui-sans-serif', 'ui-monospace', 'ui-rounded', 'math', 'emoji', 'fangsong',\n ]);\n return families.map((family) => {\n if (genericFamilies.has(family) || /^[a-zA-Z][\\w-]*$/.test(family)) return family;\n return `\"${family.replace(/\\\\/g, '\\\\\\\\').replace(/\"/g, '\\\\\"')}\"`;\n }).join(', ');\n}\n\nfunction formatShadow(value: unknown): string {\n const shadows = Array.isArray(value) ? value : [value];\n return shadows.map((shadow) => {\n if (!isRecord(shadow)) throw new TypeError('DTCG shadow values must be objects.');\n return [\n formatDimension(shadow.offsetX as ThemeDimensionValue),\n formatDimension(shadow.offsetY as ThemeDimensionValue),\n formatDimension(shadow.blur as ThemeDimensionValue),\n formatDimension(shadow.spread as ThemeDimensionValue),\n formatColor(shadow.color as ThemeColorValue),\n shadow.inset === true ? 'inset' : '',\n ].filter(Boolean).join(' ');\n }).join(', ');\n}\n\nfunction formatGradient(value: unknown, extensions?: ThemeTokenExtensions): string {\n if (!Array.isArray(value)) throw new TypeError('DTCG gradient values must be arrays.');\n const stops = value.map((stop) => {\n if (!isRecord(stop)) throw new TypeError('DTCG gradient stops must be objects.');\n return `${formatColor(stop.color as ThemeColorValue)} ${formatNumber(Number(stop.position) * 100)}%`;\n }).join(', ');\n const gradient = readCssExtension(extensions)?.gradient;\n if (gradient?.kind === 'radial') return `radial-gradient(${stops})`;\n return `linear-gradient(${formatNumber(gradient?.angle ?? 90)}deg, ${stops})`;\n}\n\nfunction formatTokenValue(token: ResolvedThemeToken): string {\n switch (token.type) {\n case 'color':\n return formatColor(token.value as ThemeColorValue);\n case 'dimension':\n return formatDimension(token.value as ThemeDimensionValue);\n case 'fontFamily':\n return formatFontFamily(token.value as string | string[]);\n case 'fontWeight':\n case 'number':\n return String(token.value);\n case 'duration':\n return formatDuration(token.value as ThemeDurationValue);\n case 'cubicBezier':\n return `cubic-bezier(${(token.value as number[]).map(formatNumber).join(', ')})`;\n case 'strokeStyle': {\n if (typeof token.value === 'string') return token.value;\n const value = token.value as { dashArray: ThemeDimensionValue[] };\n return value.dashArray.map(formatDimension).join(' ');\n }\n case 'border': {\n const value = token.value as { color: ThemeColorValue; width: ThemeDimensionValue; style: unknown };\n const styleToken: ResolvedThemeToken = { ...token, type: 'strokeStyle', value: value.style };\n return `${formatDimension(value.width)} ${formatTokenValue(styleToken)} ${formatColor(value.color)}`;\n }\n case 'transition': {\n const value = token.value as { duration: ThemeDurationValue; delay: ThemeDurationValue; timingFunction: number[] };\n return `${formatDuration(value.duration)} cubic-bezier(${value.timingFunction.map(formatNumber).join(', ')}) ${formatDuration(value.delay)}`;\n }\n case 'shadow':\n return formatShadow(token.value);\n case 'gradient':\n return formatGradient(token.value, token.extensions);\n case 'typography': {\n const value = token.value as {\n fontFamily: string | string[];\n fontSize: ThemeDimensionValue;\n fontWeight: string | number;\n lineHeight: number;\n };\n return `${value.fontWeight} ${formatDimension(value.fontSize)}/${formatNumber(value.lineHeight)} ${formatFontFamily(value.fontFamily)}`;\n }\n }\n}\n\nfunction toCssVariableName(path: string, prefix: string): string {\n const normalized = path\n .replace(/([a-z0-9])([A-Z])/g, '$1-$2')\n .replace(/[^a-zA-Z0-9]+/g, '-')\n .replace(/^-+|-+$/g, '')\n .toLowerCase();\n return `--${prefix}-${normalized}`;\n}\n\nfunction assertCssVariablePrefix(prefix: string): void {\n if (!/^[a-zA-Z][a-zA-Z0-9-]*$/.test(prefix)) {\n throw new TypeError(\n 'Theme token variablePrefix must start with a letter and contain only letters, numbers, or hyphens.',\n );\n }\n}\n\nfunction selectModePath(\n paths: ReadonlySet<string>,\n basePath: string,\n colorMode: MonkeysThemeColorMode,\n): string | undefined {\n const contextualPath = `${basePath}.${colorMode}`;\n if (paths.has(contextualPath)) return contextualPath;\n return paths.has(basePath) ? basePath : undefined;\n}\n\nconst HSL_SEMANTIC_ALIASES: Readonly<Record<string, string>> = {\n 'semantic.color.background': '--background',\n 'semantic.color.foreground': '--foreground',\n 'semantic.color.card': '--card',\n 'semantic.color.card-foreground': '--card-foreground',\n 'semantic.color.popover': '--popover',\n 'semantic.color.popover-foreground': '--popover-foreground',\n 'semantic.color.primary': '--primary',\n 'semantic.color.primary-foreground': '--primary-foreground',\n 'semantic.color.secondary': '--secondary',\n 'semantic.color.secondary-foreground': '--secondary-foreground',\n 'semantic.color.muted': '--muted',\n 'semantic.color.muted-foreground': '--muted-foreground',\n 'semantic.color.accent': '--accent',\n 'semantic.color.accent-foreground': '--accent-foreground',\n 'semantic.color.destructive': '--destructive',\n 'semantic.color.destructive-foreground': '--destructive-foreground',\n 'semantic.color.success': '--success',\n 'semantic.color.success-foreground': '--success-foreground',\n 'semantic.color.warning': '--warning',\n 'semantic.color.warning-foreground': '--warning-foreground',\n 'semantic.color.border': '--border',\n 'semantic.color.input': '--input',\n 'semantic.color.ring': '--ring',\n 'semantic.color.radar-canvas': '--radar-canvas',\n 'semantic.color.radar-panel': '--radar-panel',\n 'semantic.color.radar-border': '--radar-border',\n 'semantic.color.radar-shell-border': '--radar-shell-border',\n 'semantic.color.radar-grid': '--radar-grid',\n 'semantic.color.radar-axis': '--radar-axis',\n 'semantic.color.radar-series-one': '--radar-series-one',\n 'semantic.color.radar-series-two': '--radar-series-two',\n 'semantic.color.radar-series-three': '--radar-series-three',\n 'semantic.color.radar-series-four': '--radar-series-four',\n};\n\nexport function getThemeTokenCssValue(\n compiled: CompiledThemeTokens,\n basePath: string,\n): string | undefined {\n const path = selectModePath(new Set(Object.keys(compiled.cssValues)), basePath, compiled.colorMode);\n return path ? compiled.cssValues[path] : undefined;\n}\n\nexport function compileThemeTokens(\n input: ThemeTokens,\n options: CompileThemeTokensOptions = {},\n): CompiledThemeTokens {\n const resolved = resolveThemeTokens(input);\n const contract = resolved.document;\n const colorMode = options.colorMode ?? 'light';\n const density = options.density ?? 'default';\n const variablePrefix = options.variablePrefix ?? 'monkeys';\n assertCssVariablePrefix(variablePrefix);\n const values: Record<string, unknown> = {};\n const cssValues: Record<string, string> = {};\n const cssVariables: Record<string, string> = {};\n const canonicalVariableSources = new Map<string, string>();\n\n for (const [path, token] of resolved.tokens) {\n values[path] = token.value;\n const cssValue = formatTokenValue(token);\n cssValues[path] = cssValue;\n const variableName = toCssVariableName(path, variablePrefix);\n const existingPath = canonicalVariableSources.get(variableName);\n if (existingPath) {\n throw new TypeError(\n `Theme token paths ${existingPath} and ${path} both compile to ${variableName}. Rename one token.`,\n );\n }\n canonicalVariableSources.set(variableName, path);\n cssVariables[variableName] = cssValue;\n }\n\n const paths = new Set(resolved.tokens.keys());\n for (const [basePath, variableName] of Object.entries(HSL_SEMANTIC_ALIASES)) {\n const path = selectModePath(paths, basePath, colorMode);\n if (!path) continue;\n const token = resolved.tokens.get(path);\n if (!token || token.type !== 'color') {\n throw new TypeError(`${path} must be a color token to drive ${variableName}.`);\n }\n cssVariables[variableName] = formatHslTriplet(token.value as ThemeColorValue);\n }\n\n const directAliases: Array<[\n string,\n string,\n MonkeysThemeColorMode | MonkeysThemeDensity,\n ResolvedThemeToken['type'],\n ]> = [\n ['semantic.color.neocard', '--neocard', colorMode, 'color'],\n ['semantic.radius.base', '--radius', colorMode, 'dimension'],\n ['semantic.spacing.global', '--global-spacing', density, 'dimension'],\n ['semantic.gradient.brand', '--monkeys-gradient', colorMode, 'gradient'],\n ['semantic.font.body', '--font-sans', colorMode, 'fontFamily'],\n ];\n for (const [basePath, variableName, axis, expectedType] of directAliases) {\n const path = selectModePath(paths, basePath, axis);\n if (!path) continue;\n const token = resolved.tokens.get(path);\n if (!token || token.type !== expectedType) {\n throw new TypeError(`${path} must be a ${expectedType} token to drive ${variableName}.`);\n }\n cssVariables[variableName] = cssValues[path];\n }\n\n const cssText = Object.entries(cssVariables)\n .sort(([left], [right]) => left.localeCompare(right))\n .map(([name, value]) => `${name}:${value};`)\n .join('');\n\n return {\n contract,\n colorMode,\n density,\n values: Object.freeze(values),\n cssValues: Object.freeze(cssValues),\n cssVariables: Object.freeze(cssVariables),\n cssText,\n };\n}\n\nexport function applyThemeTokens(\n input: ThemeTokens,\n options: ApplyThemeTokensOptions = {},\n): CompiledThemeTokens {\n const compiled = compileThemeTokens(input, options);\n const target = options.target ?? (typeof document === 'undefined' ? null : document.documentElement);\n if (!target) return compiled;\n\n const previouslyApplied = APPLIED_VARIABLES.get(target) ?? new Set<string>();\n const nextVariables = new Set(Object.keys(compiled.cssVariables));\n for (const name of previouslyApplied) {\n if (!nextVariables.has(name)) target.style.removeProperty(name);\n }\n for (const [name, value] of Object.entries(compiled.cssVariables)) {\n target.style.setProperty(name, value);\n }\n APPLIED_VARIABLES.set(target, nextVariables);\n\n if (options.themeId) target.dataset.monkeysTheme = options.themeId;\n else delete target.dataset.monkeysTheme;\n target.dataset.monkeysColorMode = compiled.colorMode;\n target.dataset.monkeysDensity = compiled.density;\n return compiled;\n}\n"]}
|
|
1
|
+
{"version":3,"sources":["../../src/theme-system/theme-tokens.ts"],"names":["hue","saturation","lightness","resolveThemeTokens"],"mappings":";;;;;AAyCA,IAAM,iBAAA,GAAoB,oBAAA;AAC1B,IAAM,iBAAA,uBAAwB,OAAA,EAA6B;AAE3D,SAAS,SAAS,KAAA,EAAkD;AAClE,EAAA,OAAO,KAAA,KAAU,QAAQ,OAAO,KAAA,KAAU,YAAY,CAAC,KAAA,CAAM,QAAQ,KAAK,CAAA;AAC5E;AAEA,SAAS,iBAAiB,UAAA,EAA6D;AACrF,EAAA,MAAM,SAAA,GAAY,aAAa,iBAAiB,CAAA;AAChD,EAAA,OAAO,QAAA,CAAS,SAAS,CAAA,GAAI,SAAA,GAA4B,MAAA;AAC3D;AAEA,SAAS,aAAa,KAAA,EAAuB;AAC3C,EAAA,OAAO,MAAA,CAAO,SAAA,CAAU,KAAK,CAAA,GAAI,MAAA,CAAO,KAAK,CAAA,GAAI,MAAA,CAAO,MAAA,CAAO,KAAA,CAAM,OAAA,CAAQ,CAAC,CAAC,CAAC,CAAA;AAClF;AAEA,SAAS,gBAAgB,KAAA,EAAoC;AAC3D,EAAA,OAAO,GAAG,YAAA,CAAa,KAAA,CAAM,KAAK,CAAC,CAAA,EAAG,MAAM,IAAI,CAAA,CAAA;AAClD;AAEA,SAAS,eAAe,KAAA,EAAmC;AACzD,EAAA,OAAO,GAAG,YAAA,CAAa,KAAA,CAAM,KAAK,CAAC,CAAA,EAAG,MAAM,IAAI,CAAA,CAAA;AAClD;AAEA,SAAS,qBAAqB,KAAA,EAAgC;AAC5D,EAAA,OAAO,KAAA,KAAU,MAAA,GAAS,KAAA,GAAQ,YAAA,CAAa,KAAK,CAAA;AACtD;AAEA,SAAS,UAAU,GAAA,EAAuC;AACxD,EAAA,OAAO;AAAA,IACL,MAAA,CAAO,SAAS,GAAA,CAAI,KAAA,CAAM,GAAG,CAAC,CAAA,EAAG,EAAE,CAAA,GAAI,GAAA;AAAA,IACvC,MAAA,CAAO,SAAS,GAAA,CAAI,KAAA,CAAM,GAAG,CAAC,CAAA,EAAG,EAAE,CAAA,GAAI,GAAA;AAAA,IACvC,MAAA,CAAO,SAAS,GAAA,CAAI,KAAA,CAAM,GAAG,CAAC,CAAA,EAAG,EAAE,CAAA,GAAI;AAAA,GACzC;AACF;AAEA,SAAS,oBAAoB,KAAA,EAAkD;AAC7E,EAAA,IAAI,KAAA,CAAM,UAAA,KAAe,MAAA,IAAU,KAAA,CAAM,UAAA,CAAW,KAAA,CAAM,CAAC,SAAA,KAAc,OAAO,SAAA,KAAc,QAAQ,CAAA,EAAG;AACvG,IAAA,OAAO,KAAA,CAAM,UAAA;AAAA,EACf;AACA,EAAA,IAAI,KAAA,CAAM,GAAA,EAAK,OAAO,SAAA,CAAU,MAAM,GAAG,CAAA;AACzC,EAAA,MAAM,IAAI,SAAA;AAAA,IACR,CAAA,uBAAA,EAA0B,MAAM,UAAU,CAAA,kEAAA;AAAA,GAC5C;AACF;AAEA,SAAS,SAAA,CAAU,CAAC,GAAA,EAAK,KAAA,EAAO,IAAI,CAAA,EAAuD;AACzF,EAAA,MAAM,OAAA,GAAU,IAAA,CAAK,GAAA,CAAI,GAAA,EAAK,OAAO,IAAI,CAAA;AACzC,EAAA,MAAM,OAAA,GAAU,IAAA,CAAK,GAAA,CAAI,GAAA,EAAK,OAAO,IAAI,CAAA;AACzC,EAAA,MAAM,SAAA,GAAA,CAAa,UAAU,OAAA,IAAW,CAAA;AACxC,EAAA,IAAI,YAAY,OAAA,EAAS,OAAO,CAAC,CAAA,EAAG,CAAA,EAAG,YAAY,GAAG,CAAA;AACtD,EAAA,MAAM,QAAQ,OAAA,GAAU,OAAA;AACxB,EAAA,MAAM,UAAA,GAAa,YAAY,GAAA,GAC3B,KAAA,IAAS,IAAI,OAAA,GAAU,OAAA,CAAA,GACvB,SAAS,OAAA,GAAU,OAAA,CAAA;AACvB,EAAA,IAAI,GAAA;AACJ,EAAA,IAAI,OAAA,KAAY,KAAK,GAAA,GAAA,CAAO,KAAA,GAAQ,QAAQ,KAAA,IAAS,KAAA,GAAQ,OAAO,CAAA,GAAI,CAAA,CAAA;AAAA,OAAA,IAC/D,OAAA,KAAY,KAAA,EAAO,GAAA,GAAA,CAAO,IAAA,GAAO,OAAO,KAAA,GAAQ,CAAA;AAAA,OACpD,GAAA,GAAA,CAAO,GAAA,GAAM,KAAA,IAAS,KAAA,GAAQ,CAAA;AACnC,EAAA,OAAO,CAAE,GAAA,GAAM,CAAA,GAAK,KAAK,UAAA,GAAa,GAAA,EAAK,YAAY,GAAG,CAAA;AAC5D;AAEA,SAAS,iBAAiB,KAAA,EAAgC;AACxD,EAAA,IAAI,KAAA,CAAM,UAAA,KAAe,KAAA,IAAS,KAAA,CAAM,UAAA,CAAW,KAAA,CAAM,CAAC,SAAA,KAAc,OAAO,SAAA,KAAc,QAAQ,CAAA,EAAG;AACtG,IAAA,MAAM,CAACA,IAAAA,EAAKC,WAAAA,EAAYC,UAAS,IAAI,KAAA,CAAM,UAAA;AAC3C,IAAA,OAAO,CAAA,EAAG,YAAA,CAAaF,IAAG,CAAC,CAAA,CAAA,EAAI,YAAA,CAAaC,WAAU,CAAC,CAAA,EAAA,EAAK,YAAA,CAAaC,UAAS,CAAC,CAAA,CAAA,CAAA;AAAA,EACrF;AACA,EAAA,MAAM,CAAC,KAAK,UAAA,EAAY,SAAS,IAAI,SAAA,CAAU,mBAAA,CAAoB,KAAK,CAAC,CAAA;AACzE,EAAA,OAAO,CAAA,EAAG,YAAA,CAAa,GAAG,CAAC,CAAA,CAAA,EAAI,YAAA,CAAa,UAAU,CAAC,CAAA,EAAA,EAAK,YAAA,CAAa,SAAS,CAAC,CAAA,CAAA,CAAA;AACrF;AAEA,SAAS,YAAY,KAAA,EAAgC;AACnD,EAAA,MAAM,KAAA,GAAQ,MAAM,KAAA,IAAS,CAAA;AAC7B,EAAA,IAAI,KAAA,CAAM,GAAA,IAAO,KAAA,KAAU,CAAA,SAAU,KAAA,CAAM,GAAA;AAC3C,EAAA,MAAM,aAAa,KAAA,CAAM,UAAA,CAAW,IAAI,oBAAoB,CAAA,CAAE,KAAK,GAAG,CAAA;AACtE,EAAA,MAAM,cAAc,KAAA,KAAU,CAAA,GAAI,KAAK,CAAA,GAAA,EAAM,YAAA,CAAa,KAAK,CAAC,CAAA,CAAA;AAChE,EAAA,QAAQ,MAAM,UAAA;AAAY,IACxB,KAAK,MAAA,EAAQ;AACX,MAAA,MAAM,GAAA,GAAM,KAAA,CAAM,UAAA,CAAW,GAAA,CAAI,CAAC,SAAA,KAAc,SAAA,KAAc,MAAA,GAAS,MAAA,GAAS,YAAA,CAAa,SAAA,GAAY,GAAG,CAAC,CAAA;AAC7G,MAAA,OAAO,OAAO,GAAA,CAAI,IAAA,CAAK,GAAG,CAAC,GAAG,WAAW,CAAA,CAAA,CAAA;AAAA,IAC3C;AAAA,IACA,KAAK,KAAA;AACH,MAAA,OAAO,CAAA,IAAA,EAAO,qBAAqB,KAAA,CAAM,UAAA,CAAW,CAAC,CAAC,CAAC,CAAA,CAAA,EAAI,oBAAA,CAAqB,KAAA,CAAM,UAAA,CAAW,CAAC,CAAC,CAAC,KAAK,oBAAA,CAAqB,KAAA,CAAM,WAAW,CAAC,CAAC,CAAC,CAAA,CAAA,EAAI,WAAW,CAAA,CAAA,CAAA;AAAA,IACnK,KAAK,KAAA;AACH,MAAA,OAAO,CAAA,IAAA,EAAO,qBAAqB,KAAA,CAAM,UAAA,CAAW,CAAC,CAAC,CAAC,CAAA,CAAA,EAAI,oBAAA,CAAqB,KAAA,CAAM,UAAA,CAAW,CAAC,CAAC,CAAC,KAAK,oBAAA,CAAqB,KAAA,CAAM,WAAW,CAAC,CAAC,CAAC,CAAA,CAAA,EAAI,WAAW,CAAA,CAAA,CAAA;AAAA,IACnK,KAAK,KAAA;AAAA,IACL,KAAK,KAAA;AAAA,IACL,KAAK,OAAA;AAAA,IACL,KAAK,OAAA;AACH,MAAA,OAAO,GAAG,KAAA,CAAM,UAAU,CAAA,CAAA,EAAI,UAAU,GAAG,WAAW,CAAA,CAAA,CAAA;AAAA,IACxD;AACE,MAAA,OAAO,SAAS,KAAA,CAAM,UAAU,CAAA,CAAA,EAAI,UAAU,GAAG,WAAW,CAAA,CAAA,CAAA;AAAA;AAElE;AAEA,SAAS,iBAAiB,KAAA,EAAkC;AAC1D,EAAA,MAAM,WAAW,KAAA,CAAM,OAAA,CAAQ,KAAK,CAAA,GAAI,KAAA,GAAQ,CAAC,KAAK,CAAA;AACtD,EAAA,MAAM,eAAA,uBAAsB,GAAA,CAAI;AAAA,IAC9B,OAAA;AAAA,IAAS,YAAA;AAAA,IAAc,WAAA;AAAA,IAAa,SAAA;AAAA,IAAW,SAAA;AAAA,IAAW,WAAA;AAAA,IAC1D,UAAA;AAAA,IAAY,eAAA;AAAA,IAAiB,cAAA;AAAA,IAAgB,YAAA;AAAA,IAAc,MAAA;AAAA,IAAQ,OAAA;AAAA,IAAS;AAAA,GAC7E,CAAA;AACD,EAAA,OAAO,QAAA,CAAS,GAAA,CAAI,CAAC,MAAA,KAAW;AAC9B,IAAA,IAAI,eAAA,CAAgB,IAAI,MAAM,CAAA,IAAK,mBAAmB,IAAA,CAAK,MAAM,GAAG,OAAO,MAAA;AAC3E,IAAA,OAAO,CAAA,CAAA,EAAI,OAAO,OAAA,CAAQ,KAAA,EAAO,MAAM,CAAA,CAAE,OAAA,CAAQ,IAAA,EAAM,KAAK,CAAC,CAAA,CAAA,CAAA;AAAA,EAC/D,CAAC,CAAA,CAAE,IAAA,CAAK,IAAI,CAAA;AACd;AAEA,SAAS,aAAa,KAAA,EAAwB;AAC5C,EAAA,MAAM,UAAU,KAAA,CAAM,OAAA,CAAQ,KAAK,CAAA,GAAI,KAAA,GAAQ,CAAC,KAAK,CAAA;AACrD,EAAA,OAAO,OAAA,CAAQ,GAAA,CAAI,CAAC,MAAA,KAAW;AAC7B,IAAA,IAAI,CAAC,QAAA,CAAS,MAAM,GAAG,MAAM,IAAI,UAAU,qCAAqC,CAAA;AAChF,IAAA,OAAO;AAAA,MACL,eAAA,CAAgB,OAAO,OAA8B,CAAA;AAAA,MACrD,eAAA,CAAgB,OAAO,OAA8B,CAAA;AAAA,MACrD,eAAA,CAAgB,OAAO,IAA2B,CAAA;AAAA,MAClD,eAAA,CAAgB,OAAO,MAA6B,CAAA;AAAA,MACpD,WAAA,CAAY,OAAO,KAAwB,CAAA;AAAA,MAC3C,MAAA,CAAO,KAAA,KAAU,IAAA,GAAO,OAAA,GAAU;AAAA,KACpC,CAAE,MAAA,CAAO,OAAO,CAAA,CAAE,KAAK,GAAG,CAAA;AAAA,EAC5B,CAAC,CAAA,CAAE,IAAA,CAAK,IAAI,CAAA;AACd;AAEA,SAAS,cAAA,CAAe,OAAgB,UAAA,EAA2C;AACjF,EAAA,IAAI,CAAC,MAAM,OAAA,CAAQ,KAAK,GAAG,MAAM,IAAI,UAAU,sCAAsC,CAAA;AACrF,EAAA,MAAM,KAAA,GAAQ,KAAA,CAAM,GAAA,CAAI,CAAC,IAAA,KAAS;AAChC,IAAA,IAAI,CAAC,QAAA,CAAS,IAAI,GAAG,MAAM,IAAI,UAAU,sCAAsC,CAAA;AAC/E,IAAA,OAAO,CAAA,EAAG,WAAA,CAAY,IAAA,CAAK,KAAwB,CAAC,CAAA,CAAA,EAAI,YAAA,CAAa,MAAA,CAAO,IAAA,CAAK,QAAQ,CAAA,GAAI,GAAG,CAAC,CAAA,CAAA,CAAA;AAAA,EACnG,CAAC,CAAA,CAAE,IAAA,CAAK,IAAI,CAAA;AACZ,EAAA,MAAM,QAAA,GAAW,gBAAA,CAAiB,UAAU,CAAA,EAAG,QAAA;AAC/C,EAAA,IAAI,QAAA,EAAU,IAAA,KAAS,QAAA,EAAU,OAAO,mBAAmB,KAAK,CAAA,CAAA,CAAA;AAChE,EAAA,OAAO,mBAAmB,YAAA,CAAa,QAAA,EAAU,SAAS,EAAE,CAAC,QAAQ,KAAK,CAAA,CAAA,CAAA;AAC5E;AAEA,SAAS,iBAAiB,KAAA,EAAmC;AAC3D,EAAA,QAAQ,MAAM,IAAA;AAAM,IAClB,KAAK,OAAA;AACH,MAAA,OAAO,WAAA,CAAY,MAAM,KAAwB,CAAA;AAAA,IACnD,KAAK,WAAA;AACH,MAAA,OAAO,eAAA,CAAgB,MAAM,KAA4B,CAAA;AAAA,IAC3D,KAAK,YAAA;AACH,MAAA,OAAO,gBAAA,CAAiB,MAAM,KAA0B,CAAA;AAAA,IAC1D,KAAK,YAAA;AAAA,IACL,KAAK,QAAA;AACH,MAAA,OAAO,MAAA,CAAO,MAAM,KAAK,CAAA;AAAA,IAC3B,KAAK,UAAA;AACH,MAAA,OAAO,cAAA,CAAe,MAAM,KAA2B,CAAA;AAAA,IACzD,KAAK,aAAA;AACH,MAAA,OAAO,CAAA,aAAA,EAAiB,MAAM,KAAA,CAAmB,GAAA,CAAI,YAAY,CAAA,CAAE,IAAA,CAAK,IAAI,CAAC,CAAA,CAAA,CAAA;AAAA,IAC/E,KAAK,aAAA,EAAe;AAClB,MAAA,IAAI,OAAO,KAAA,CAAM,KAAA,KAAU,QAAA,SAAiB,KAAA,CAAM,KAAA;AAClD,MAAA,MAAM,QAAQ,KAAA,CAAM,KAAA;AACpB,MAAA,OAAO,MAAM,SAAA,CAAU,GAAA,CAAI,eAAe,CAAA,CAAE,KAAK,GAAG,CAAA;AAAA,IACtD;AAAA,IACA,KAAK,QAAA,EAAU;AACb,MAAA,MAAM,QAAQ,KAAA,CAAM,KAAA;AACpB,MAAA,MAAM,UAAA,GAAiC,EAAE,GAAG,KAAA,EAAO,MAAM,aAAA,EAAe,KAAA,EAAO,MAAM,KAAA,EAAM;AAC3F,MAAA,OAAO,CAAA,EAAG,eAAA,CAAgB,KAAA,CAAM,KAAK,CAAC,CAAA,CAAA,EAAI,gBAAA,CAAiB,UAAU,CAAC,CAAA,CAAA,EAAI,WAAA,CAAY,KAAA,CAAM,KAAK,CAAC,CAAA,CAAA;AAAA,IACpG;AAAA,IACA,KAAK,YAAA,EAAc;AACjB,MAAA,MAAM,QAAQ,KAAA,CAAM,KAAA;AACpB,MAAA,OAAO,GAAG,cAAA,CAAe,KAAA,CAAM,QAAQ,CAAC,CAAA,cAAA,EAAiB,MAAM,cAAA,CAAe,GAAA,CAAI,YAAY,CAAA,CAAE,KAAK,IAAI,CAAC,KAAK,cAAA,CAAe,KAAA,CAAM,KAAK,CAAC,CAAA,CAAA;AAAA,IAC5I;AAAA,IACA,KAAK,QAAA;AACH,MAAA,OAAO,YAAA,CAAa,MAAM,KAAK,CAAA;AAAA,IACjC,KAAK,UAAA;AACH,MAAA,OAAO,cAAA,CAAe,KAAA,CAAM,KAAA,EAAO,KAAA,CAAM,UAAU,CAAA;AAAA,IACrD,KAAK,YAAA,EAAc;AACjB,MAAA,MAAM,QAAQ,KAAA,CAAM,KAAA;AAMpB,MAAA,OAAO,GAAG,KAAA,CAAM,UAAU,CAAA,CAAA,EAAI,eAAA,CAAgB,MAAM,QAAQ,CAAC,CAAA,CAAA,EAAI,YAAA,CAAa,MAAM,UAAU,CAAC,IAAI,gBAAA,CAAiB,KAAA,CAAM,UAAU,CAAC,CAAA,CAAA;AAAA,IACvI;AAAA;AAEJ;AAEA,SAAS,iBAAA,CAAkB,MAAc,MAAA,EAAwB;AAC/D,EAAA,MAAM,UAAA,GAAa,IAAA,CAChB,OAAA,CAAQ,oBAAA,EAAsB,OAAO,CAAA,CACrC,OAAA,CAAQ,gBAAA,EAAkB,GAAG,CAAA,CAC7B,OAAA,CAAQ,UAAA,EAAY,EAAE,EACtB,WAAA,EAAY;AACf,EAAA,OAAO,CAAA,EAAA,EAAK,MAAM,CAAA,CAAA,EAAI,UAAU,CAAA,CAAA;AAClC;AAEA,SAAS,wBAAwB,MAAA,EAAsB;AACrD,EAAA,IAAI,CAAC,yBAAA,CAA0B,IAAA,CAAK,MAAM,CAAA,EAAG;AAC3C,IAAA,MAAM,IAAI,SAAA;AAAA,MACR;AAAA,KACF;AAAA,EACF;AACF;AAEA,SAAS,cAAA,CACP,KAAA,EACA,QAAA,EACA,SAAA,EACoB;AACpB,EAAA,MAAM,cAAA,GAAiB,CAAA,EAAG,QAAQ,CAAA,CAAA,EAAI,SAAS,CAAA,CAAA;AAC/C,EAAA,IAAI,KAAA,CAAM,GAAA,CAAI,cAAc,CAAA,EAAG,OAAO,cAAA;AACtC,EAAA,OAAO,KAAA,CAAM,GAAA,CAAI,QAAQ,CAAA,GAAI,QAAA,GAAW,MAAA;AAC1C;AAEA,IAAM,oBAAA,GAAyD;AAAA,EAC7D,2BAAA,EAA6B,cAAA;AAAA,EAC7B,2BAAA,EAA6B,cAAA;AAAA,EAC7B,qBAAA,EAAuB,QAAA;AAAA,EACvB,gCAAA,EAAkC,mBAAA;AAAA,EAClC,wBAAA,EAA0B,WAAA;AAAA,EAC1B,mCAAA,EAAqC,sBAAA;AAAA,EACrC,wBAAA,EAA0B,WAAA;AAAA,EAC1B,mCAAA,EAAqC,sBAAA;AAAA,EACrC,0BAAA,EAA4B,aAAA;AAAA,EAC5B,qCAAA,EAAuC,wBAAA;AAAA,EACvC,sBAAA,EAAwB,SAAA;AAAA,EACxB,iCAAA,EAAmC,oBAAA;AAAA,EACnC,uBAAA,EAAyB,UAAA;AAAA,EACzB,kCAAA,EAAoC,qBAAA;AAAA,EACpC,4BAAA,EAA8B,eAAA;AAAA,EAC9B,uCAAA,EAAyC,0BAAA;AAAA,EACzC,wBAAA,EAA0B,WAAA;AAAA,EAC1B,mCAAA,EAAqC,sBAAA;AAAA,EACrC,wBAAA,EAA0B,WAAA;AAAA,EAC1B,mCAAA,EAAqC,sBAAA;AAAA,EACrC,uBAAA,EAAyB,UAAA;AAAA,EACzB,sBAAA,EAAwB,SAAA;AAAA,EACxB,qBAAA,EAAuB,QAAA;AAAA,EACvB,8BAAA,EAAgC,iBAAA;AAAA,EAChC,iCAAA,EAAmC,oBAAA;AAAA,EACnC,8BAAA,EAAgC,iBAAA;AAAA,EAChC,6BAAA,EAA+B,gBAAA;AAAA,EAC/B,4BAAA,EAA8B,eAAA;AAAA,EAC9B,6BAAA,EAA+B,gBAAA;AAAA,EAC/B,mCAAA,EAAqC,sBAAA;AAAA,EACrC,2BAAA,EAA6B,cAAA;AAAA,EAC7B,2BAAA,EAA6B,cAAA;AAAA,EAC7B,iCAAA,EAAmC,oBAAA;AAAA,EACnC,iCAAA,EAAmC,oBAAA;AAAA,EACnC,mCAAA,EAAqC,sBAAA;AAAA,EACrC,kCAAA,EAAoC;AACtC,CAAA;AAEO,SAAS,qBAAA,CACd,UACA,QAAA,EACoB;AACpB,EAAA,MAAM,IAAA,GAAO,cAAA,CAAe,IAAI,GAAA,CAAI,MAAA,CAAO,IAAA,CAAK,QAAA,CAAS,SAAS,CAAC,CAAA,EAAG,QAAA,EAAU,QAAA,CAAS,SAAS,CAAA;AAClG,EAAA,OAAO,IAAA,GAAO,QAAA,CAAS,SAAA,CAAU,IAAI,CAAA,GAAI,MAAA;AAC3C;AAEO,SAAS,kBAAA,CACd,KAAA,EACA,OAAA,GAAqC,EAAC,EACjB;AACrB,EAAA,MAAM,QAAA,GAAWC,2BAAmB,KAAK,CAAA;AACzC,EAAA,MAAM,WAAW,QAAA,CAAS,QAAA;AAC1B,EAAA,MAAM,SAAA,GAAY,QAAQ,SAAA,IAAa,OAAA;AACvC,EAAA,MAAM,OAAA,GAAU,QAAQ,OAAA,IAAW,SAAA;AACnC,EAAA,MAAM,cAAA,GAAiB,QAAQ,cAAA,IAAkB,SAAA;AACjD,EAAA,uBAAA,CAAwB,cAAc,CAAA;AACtC,EAAA,MAAM,SAAkC,EAAC;AACzC,EAAA,MAAM,YAAoC,EAAC;AAC3C,EAAA,MAAM,eAAuC,EAAC;AAC9C,EAAA,MAAM,wBAAA,uBAA+B,GAAA,EAAoB;AAEzD,EAAA,KAAA,MAAW,CAAC,IAAA,EAAM,KAAK,CAAA,IAAK,SAAS,MAAA,EAAQ;AAC3C,IAAA,MAAA,CAAO,IAAI,IAAI,KAAA,CAAM,KAAA;AACrB,IAAA,MAAM,QAAA,GAAW,iBAAiB,KAAK,CAAA;AACvC,IAAA,SAAA,CAAU,IAAI,CAAA,GAAI,QAAA;AAClB,IAAA,MAAM,YAAA,GAAe,iBAAA,CAAkB,IAAA,EAAM,cAAc,CAAA;AAC3D,IAAA,MAAM,YAAA,GAAe,wBAAA,CAAyB,GAAA,CAAI,YAAY,CAAA;AAC9D,IAAA,IAAI,YAAA,EAAc;AAChB,MAAA,MAAM,IAAI,SAAA;AAAA,QACR,CAAA,kBAAA,EAAqB,YAAY,CAAA,KAAA,EAAQ,IAAI,oBAAoB,YAAY,CAAA,mBAAA;AAAA,OAC/E;AAAA,IACF;AACA,IAAA,wBAAA,CAAyB,GAAA,CAAI,cAAc,IAAI,CAAA;AAC/C,IAAA,YAAA,CAAa,YAAY,CAAA,GAAI,QAAA;AAAA,EAC/B;AAEA,EAAA,MAAM,QAAQ,IAAI,GAAA,CAAI,QAAA,CAAS,MAAA,CAAO,MAAM,CAAA;AAC5C,EAAA,KAAA,MAAW,CAAC,QAAA,EAAU,YAAY,KAAK,MAAA,CAAO,OAAA,CAAQ,oBAAoB,CAAA,EAAG;AAC3E,IAAA,MAAM,IAAA,GAAO,cAAA,CAAe,KAAA,EAAO,QAAA,EAAU,SAAS,CAAA;AACtD,IAAA,IAAI,CAAC,IAAA,EAAM;AACX,IAAA,MAAM,KAAA,GAAQ,QAAA,CAAS,MAAA,CAAO,GAAA,CAAI,IAAI,CAAA;AACtC,IAAA,IAAI,CAAC,KAAA,IAAS,KAAA,CAAM,IAAA,KAAS,OAAA,EAAS;AACpC,MAAA,MAAM,IAAI,SAAA,CAAU,CAAA,EAAG,IAAI,CAAA,gCAAA,EAAmC,YAAY,CAAA,CAAA,CAAG,CAAA;AAAA,IAC/E;AACA,IAAA,YAAA,CAAa,YAAY,CAAA,GAAI,gBAAA,CAAiB,KAAA,CAAM,KAAwB,CAAA;AAAA,EAC9E;AAEA,EAAA,MAAM,aAAA,GAKD;AAAA,IACH,CAAC,wBAAA,EAA0B,WAAA,EAAa,SAAA,EAAW,OAAO,CAAA;AAAA,IAC1D,CAAC,sBAAA,EAAwB,UAAA,EAAY,SAAA,EAAW,WAAW,CAAA;AAAA,IAC3D,CAAC,yBAAA,EAA2B,kBAAA,EAAoB,OAAA,EAAS,WAAW,CAAA;AAAA,IACpE,CAAC,yBAAA,EAA2B,oBAAA,EAAsB,SAAA,EAAW,UAAU,CAAA;AAAA,IACvE,CAAC,oBAAA,EAAsB,aAAA,EAAe,SAAA,EAAW,YAAY;AAAA,GAC/D;AACA,EAAA,KAAA,MAAW,CAAC,QAAA,EAAU,YAAA,EAAc,IAAA,EAAM,YAAY,KAAK,aAAA,EAAe;AACxE,IAAA,MAAM,IAAA,GAAO,cAAA,CAAe,KAAA,EAAO,QAAA,EAAU,IAAI,CAAA;AACjD,IAAA,IAAI,CAAC,IAAA,EAAM;AACX,IAAA,MAAM,KAAA,GAAQ,QAAA,CAAS,MAAA,CAAO,GAAA,CAAI,IAAI,CAAA;AACtC,IAAA,IAAI,CAAC,KAAA,IAAS,KAAA,CAAM,IAAA,KAAS,YAAA,EAAc;AACzC,MAAA,MAAM,IAAI,UAAU,CAAA,EAAG,IAAI,cAAc,YAAY,CAAA,gBAAA,EAAmB,YAAY,CAAA,CAAA,CAAG,CAAA;AAAA,IACzF;AACA,IAAA,YAAA,CAAa,YAAY,CAAA,GAAI,SAAA,CAAU,IAAI,CAAA;AAAA,EAC7C;AAEA,EAAA,MAAM,OAAA,GAAU,MAAA,CAAO,OAAA,CAAQ,YAAY,CAAA,CACxC,IAAA,CAAK,CAAC,CAAC,IAAI,CAAA,EAAG,CAAC,KAAK,MAAM,IAAA,CAAK,aAAA,CAAc,KAAK,CAAC,CAAA,CACnD,GAAA,CAAI,CAAC,CAAC,MAAM,KAAK,CAAA,KAAM,CAAA,EAAG,IAAI,CAAA,CAAA,EAAI,KAAK,CAAA,CAAA,CAAG,CAAA,CAC1C,KAAK,EAAE,CAAA;AAEV,EAAA,OAAO;AAAA,IACL,QAAA;AAAA,IACA,SAAA;AAAA,IACA,OAAA;AAAA,IACA,MAAA,EAAQ,MAAA,CAAO,MAAA,CAAO,MAAM,CAAA;AAAA,IAC5B,SAAA,EAAW,MAAA,CAAO,MAAA,CAAO,SAAS,CAAA;AAAA,IAClC,YAAA,EAAc,MAAA,CAAO,MAAA,CAAO,YAAY,CAAA;AAAA,IACxC;AAAA,GACF;AACF;AAEO,SAAS,gBAAA,CACd,KAAA,EACA,OAAA,GAAmC,EAAC,EACf;AACrB,EAAA,MAAM,QAAA,GAAW,kBAAA,CAAmB,KAAA,EAAO,OAAO,CAAA;AAClD,EAAA,MAAM,SAAS,OAAA,CAAQ,MAAA,KAAW,OAAO,QAAA,KAAa,WAAA,GAAc,OAAO,QAAA,CAAS,eAAA,CAAA;AACpF,EAAA,IAAI,CAAC,QAAQ,OAAO,QAAA;AAEpB,EAAA,MAAM,oBAAoB,iBAAA,CAAkB,GAAA,CAAI,MAAM,CAAA,wBAAS,GAAA,EAAY;AAC3E,EAAA,MAAM,gBAAgB,IAAI,GAAA,CAAI,OAAO,IAAA,CAAK,QAAA,CAAS,YAAY,CAAC,CAAA;AAChE,EAAA,KAAA,MAAW,QAAQ,iBAAA,EAAmB;AACpC,IAAA,IAAI,CAAC,cAAc,GAAA,CAAI,IAAI,GAAG,MAAA,CAAO,KAAA,CAAM,eAAe,IAAI,CAAA;AAAA,EAChE;AACA,EAAA,KAAA,MAAW,CAAC,MAAM,KAAK,CAAA,IAAK,OAAO,OAAA,CAAQ,QAAA,CAAS,YAAY,CAAA,EAAG;AACjE,IAAA,MAAA,CAAO,KAAA,CAAM,WAAA,CAAY,IAAA,EAAM,KAAK,CAAA;AAAA,EACtC;AACA,EAAA,iBAAA,CAAkB,GAAA,CAAI,QAAQ,aAAa,CAAA;AAE3C,EAAA,IAAI,OAAA,CAAQ,OAAA,EAAS,MAAA,CAAO,OAAA,CAAQ,eAAe,OAAA,CAAQ,OAAA;AAAA,OACtD,OAAO,OAAO,OAAA,CAAQ,YAAA;AAC3B,EAAA,MAAA,CAAO,OAAA,CAAQ,mBAAmB,QAAA,CAAS,SAAA;AAC3C,EAAA,MAAA,CAAO,OAAA,CAAQ,iBAAiB,QAAA,CAAS,OAAA;AACzC,EAAA,OAAO,QAAA;AACT","file":"index.js","sourcesContent":["import type {\n ResolvedThemeToken,\n ThemeColorValue,\n ThemeDimensionValue,\n ThemeDurationValue,\n ThemeTokenExtensions,\n ThemeTokens,\n} from '@inf-monkeys-tech/monkeys/contracts';\nimport { resolveThemeTokens } from '@inf-monkeys-tech/monkeys/runtime';\n\nexport type MonkeysThemeColorMode = 'light' | 'dark' | (string & {});\nexport type MonkeysThemeDensity = 'compact' | 'default' | 'comfortable';\n\nexport interface CompileThemeTokensOptions {\n colorMode?: MonkeysThemeColorMode;\n density?: MonkeysThemeDensity;\n variablePrefix?: string;\n}\n\nexport interface CompiledThemeTokens {\n contract: ThemeTokens;\n colorMode: MonkeysThemeColorMode;\n density: MonkeysThemeDensity;\n values: Readonly<Record<string, unknown>>;\n cssValues: Readonly<Record<string, string>>;\n cssVariables: Readonly<Record<string, string>>;\n cssText: string;\n}\n\nexport interface ApplyThemeTokensOptions extends CompileThemeTokensOptions {\n target?: HTMLElement | null;\n themeId?: string;\n}\n\ntype CssExtension = {\n gradient?: {\n kind?: 'linear' | 'radial';\n angle?: number;\n };\n};\n\nconst CSS_EXTENSION_KEY = 'com.infmonkeys.css';\nconst APPLIED_VARIABLES = new WeakMap<object, Set<string>>();\n\nfunction isRecord(value: unknown): value is Record<string, unknown> {\n return value !== null && typeof value === 'object' && !Array.isArray(value);\n}\n\nfunction readCssExtension(extensions?: ThemeTokenExtensions): CssExtension | undefined {\n const extension = extensions?.[CSS_EXTENSION_KEY];\n return isRecord(extension) ? extension as CssExtension : undefined;\n}\n\nfunction formatNumber(value: number): string {\n return Number.isInteger(value) ? String(value) : String(Number(value.toFixed(6)));\n}\n\nfunction formatDimension(value: ThemeDimensionValue): string {\n return `${formatNumber(value.value)}${value.unit}`;\n}\n\nfunction formatDuration(value: ThemeDurationValue): string {\n return `${formatNumber(value.value)}${value.unit}`;\n}\n\nfunction formatColorComponent(value: number | 'none'): string {\n return value === 'none' ? value : formatNumber(value);\n}\n\nfunction hexToSrgb(hex: string): [number, number, number] {\n return [\n Number.parseInt(hex.slice(1, 3), 16) / 255,\n Number.parseInt(hex.slice(3, 5), 16) / 255,\n Number.parseInt(hex.slice(5, 7), 16) / 255,\n ];\n}\n\nfunction colorSrgbComponents(value: ThemeColorValue): [number, number, number] {\n if (value.colorSpace === 'srgb' && value.components.every((component) => typeof component === 'number')) {\n return value.components as [number, number, number];\n }\n if (value.hex) return hexToSrgb(value.hex);\n throw new TypeError(\n `Web semantic colors in ${value.colorSpace} require a six-digit hex fallback for hsl(var(--token)) consumers.`,\n );\n}\n\nfunction srgbToHsl([red, green, blue]: [number, number, number]): [number, number, number] {\n const maximum = Math.max(red, green, blue);\n const minimum = Math.min(red, green, blue);\n const lightness = (maximum + minimum) / 2;\n if (maximum === minimum) return [0, 0, lightness * 100];\n const delta = maximum - minimum;\n const saturation = lightness > 0.5\n ? delta / (2 - maximum - minimum)\n : delta / (maximum + minimum);\n let hue: number;\n if (maximum === red) hue = (green - blue) / delta + (green < blue ? 6 : 0);\n else if (maximum === green) hue = (blue - red) / delta + 2;\n else hue = (red - green) / delta + 4;\n return [(hue / 6) * 360, saturation * 100, lightness * 100];\n}\n\nfunction formatHslTriplet(value: ThemeColorValue): string {\n if (value.colorSpace === 'hsl' && value.components.every((component) => typeof component === 'number')) {\n const [hue, saturation, lightness] = value.components as [number, number, number];\n return `${formatNumber(hue)} ${formatNumber(saturation)}% ${formatNumber(lightness)}%`;\n }\n const [hue, saturation, lightness] = srgbToHsl(colorSrgbComponents(value));\n return `${formatNumber(hue)} ${formatNumber(saturation)}% ${formatNumber(lightness)}%`;\n}\n\nfunction formatColor(value: ThemeColorValue): string {\n const alpha = value.alpha ?? 1;\n if (value.hex && alpha === 1) return value.hex;\n const components = value.components.map(formatColorComponent).join(' ');\n const alphaSuffix = alpha === 1 ? '' : ` / ${formatNumber(alpha)}`;\n switch (value.colorSpace) {\n case 'srgb': {\n const rgb = value.components.map((component) => component === 'none' ? 'none' : formatNumber(component * 255));\n return `rgb(${rgb.join(' ')}${alphaSuffix})`;\n }\n case 'hsl':\n return `hsl(${formatColorComponent(value.components[0])} ${formatColorComponent(value.components[1])}% ${formatColorComponent(value.components[2])}%${alphaSuffix})`;\n case 'hwb':\n return `hwb(${formatColorComponent(value.components[0])} ${formatColorComponent(value.components[1])}% ${formatColorComponent(value.components[2])}%${alphaSuffix})`;\n case 'lab':\n case 'lch':\n case 'oklab':\n case 'oklch':\n return `${value.colorSpace}(${components}${alphaSuffix})`;\n default:\n return `color(${value.colorSpace} ${components}${alphaSuffix})`;\n }\n}\n\nfunction formatFontFamily(value: string | string[]): string {\n const families = Array.isArray(value) ? value : [value];\n const genericFamilies = new Set([\n 'serif', 'sans-serif', 'monospace', 'cursive', 'fantasy', 'system-ui',\n 'ui-serif', 'ui-sans-serif', 'ui-monospace', 'ui-rounded', 'math', 'emoji', 'fangsong',\n ]);\n return families.map((family) => {\n if (genericFamilies.has(family) || /^[a-zA-Z][\\w-]*$/.test(family)) return family;\n return `\"${family.replace(/\\\\/g, '\\\\\\\\').replace(/\"/g, '\\\\\"')}\"`;\n }).join(', ');\n}\n\nfunction formatShadow(value: unknown): string {\n const shadows = Array.isArray(value) ? value : [value];\n return shadows.map((shadow) => {\n if (!isRecord(shadow)) throw new TypeError('DTCG shadow values must be objects.');\n return [\n formatDimension(shadow.offsetX as ThemeDimensionValue),\n formatDimension(shadow.offsetY as ThemeDimensionValue),\n formatDimension(shadow.blur as ThemeDimensionValue),\n formatDimension(shadow.spread as ThemeDimensionValue),\n formatColor(shadow.color as ThemeColorValue),\n shadow.inset === true ? 'inset' : '',\n ].filter(Boolean).join(' ');\n }).join(', ');\n}\n\nfunction formatGradient(value: unknown, extensions?: ThemeTokenExtensions): string {\n if (!Array.isArray(value)) throw new TypeError('DTCG gradient values must be arrays.');\n const stops = value.map((stop) => {\n if (!isRecord(stop)) throw new TypeError('DTCG gradient stops must be objects.');\n return `${formatColor(stop.color as ThemeColorValue)} ${formatNumber(Number(stop.position) * 100)}%`;\n }).join(', ');\n const gradient = readCssExtension(extensions)?.gradient;\n if (gradient?.kind === 'radial') return `radial-gradient(${stops})`;\n return `linear-gradient(${formatNumber(gradient?.angle ?? 90)}deg, ${stops})`;\n}\n\nfunction formatTokenValue(token: ResolvedThemeToken): string {\n switch (token.type) {\n case 'color':\n return formatColor(token.value as ThemeColorValue);\n case 'dimension':\n return formatDimension(token.value as ThemeDimensionValue);\n case 'fontFamily':\n return formatFontFamily(token.value as string | string[]);\n case 'fontWeight':\n case 'number':\n return String(token.value);\n case 'duration':\n return formatDuration(token.value as ThemeDurationValue);\n case 'cubicBezier':\n return `cubic-bezier(${(token.value as number[]).map(formatNumber).join(', ')})`;\n case 'strokeStyle': {\n if (typeof token.value === 'string') return token.value;\n const value = token.value as { dashArray: ThemeDimensionValue[] };\n return value.dashArray.map(formatDimension).join(' ');\n }\n case 'border': {\n const value = token.value as { color: ThemeColorValue; width: ThemeDimensionValue; style: unknown };\n const styleToken: ResolvedThemeToken = { ...token, type: 'strokeStyle', value: value.style };\n return `${formatDimension(value.width)} ${formatTokenValue(styleToken)} ${formatColor(value.color)}`;\n }\n case 'transition': {\n const value = token.value as { duration: ThemeDurationValue; delay: ThemeDurationValue; timingFunction: number[] };\n return `${formatDuration(value.duration)} cubic-bezier(${value.timingFunction.map(formatNumber).join(', ')}) ${formatDuration(value.delay)}`;\n }\n case 'shadow':\n return formatShadow(token.value);\n case 'gradient':\n return formatGradient(token.value, token.extensions);\n case 'typography': {\n const value = token.value as {\n fontFamily: string | string[];\n fontSize: ThemeDimensionValue;\n fontWeight: string | number;\n lineHeight: number;\n };\n return `${value.fontWeight} ${formatDimension(value.fontSize)}/${formatNumber(value.lineHeight)} ${formatFontFamily(value.fontFamily)}`;\n }\n }\n}\n\nfunction toCssVariableName(path: string, prefix: string): string {\n const normalized = path\n .replace(/([a-z0-9])([A-Z])/g, '$1-$2')\n .replace(/[^a-zA-Z0-9]+/g, '-')\n .replace(/^-+|-+$/g, '')\n .toLowerCase();\n return `--${prefix}-${normalized}`;\n}\n\nfunction assertCssVariablePrefix(prefix: string): void {\n if (!/^[a-zA-Z][a-zA-Z0-9-]*$/.test(prefix)) {\n throw new TypeError(\n 'Theme token variablePrefix must start with a letter and contain only letters, numbers, or hyphens.',\n );\n }\n}\n\nfunction selectModePath(\n paths: ReadonlySet<string>,\n basePath: string,\n colorMode: MonkeysThemeColorMode,\n): string | undefined {\n const contextualPath = `${basePath}.${colorMode}`;\n if (paths.has(contextualPath)) return contextualPath;\n return paths.has(basePath) ? basePath : undefined;\n}\n\nconst HSL_SEMANTIC_ALIASES: Readonly<Record<string, string>> = {\n 'semantic.color.background': '--background',\n 'semantic.color.foreground': '--foreground',\n 'semantic.color.card': '--card',\n 'semantic.color.card-foreground': '--card-foreground',\n 'semantic.color.popover': '--popover',\n 'semantic.color.popover-foreground': '--popover-foreground',\n 'semantic.color.primary': '--primary',\n 'semantic.color.primary-foreground': '--primary-foreground',\n 'semantic.color.secondary': '--secondary',\n 'semantic.color.secondary-foreground': '--secondary-foreground',\n 'semantic.color.muted': '--muted',\n 'semantic.color.muted-foreground': '--muted-foreground',\n 'semantic.color.accent': '--accent',\n 'semantic.color.accent-foreground': '--accent-foreground',\n 'semantic.color.destructive': '--destructive',\n 'semantic.color.destructive-foreground': '--destructive-foreground',\n 'semantic.color.success': '--success',\n 'semantic.color.success-foreground': '--success-foreground',\n 'semantic.color.warning': '--warning',\n 'semantic.color.warning-foreground': '--warning-foreground',\n 'semantic.color.border': '--border',\n 'semantic.color.input': '--input',\n 'semantic.color.ring': '--ring',\n 'semantic.color.media-surface': '--media-surface',\n 'semantic.color.media-foreground': '--media-foreground',\n 'semantic.color.media-overlay': '--media-overlay',\n 'semantic.color.radar-canvas': '--radar-canvas',\n 'semantic.color.radar-panel': '--radar-panel',\n 'semantic.color.radar-border': '--radar-border',\n 'semantic.color.radar-shell-border': '--radar-shell-border',\n 'semantic.color.radar-grid': '--radar-grid',\n 'semantic.color.radar-axis': '--radar-axis',\n 'semantic.color.radar-series-one': '--radar-series-one',\n 'semantic.color.radar-series-two': '--radar-series-two',\n 'semantic.color.radar-series-three': '--radar-series-three',\n 'semantic.color.radar-series-four': '--radar-series-four',\n};\n\nexport function getThemeTokenCssValue(\n compiled: CompiledThemeTokens,\n basePath: string,\n): string | undefined {\n const path = selectModePath(new Set(Object.keys(compiled.cssValues)), basePath, compiled.colorMode);\n return path ? compiled.cssValues[path] : undefined;\n}\n\nexport function compileThemeTokens(\n input: ThemeTokens,\n options: CompileThemeTokensOptions = {},\n): CompiledThemeTokens {\n const resolved = resolveThemeTokens(input);\n const contract = resolved.document;\n const colorMode = options.colorMode ?? 'light';\n const density = options.density ?? 'default';\n const variablePrefix = options.variablePrefix ?? 'monkeys';\n assertCssVariablePrefix(variablePrefix);\n const values: Record<string, unknown> = {};\n const cssValues: Record<string, string> = {};\n const cssVariables: Record<string, string> = {};\n const canonicalVariableSources = new Map<string, string>();\n\n for (const [path, token] of resolved.tokens) {\n values[path] = token.value;\n const cssValue = formatTokenValue(token);\n cssValues[path] = cssValue;\n const variableName = toCssVariableName(path, variablePrefix);\n const existingPath = canonicalVariableSources.get(variableName);\n if (existingPath) {\n throw new TypeError(\n `Theme token paths ${existingPath} and ${path} both compile to ${variableName}. Rename one token.`,\n );\n }\n canonicalVariableSources.set(variableName, path);\n cssVariables[variableName] = cssValue;\n }\n\n const paths = new Set(resolved.tokens.keys());\n for (const [basePath, variableName] of Object.entries(HSL_SEMANTIC_ALIASES)) {\n const path = selectModePath(paths, basePath, colorMode);\n if (!path) continue;\n const token = resolved.tokens.get(path);\n if (!token || token.type !== 'color') {\n throw new TypeError(`${path} must be a color token to drive ${variableName}.`);\n }\n cssVariables[variableName] = formatHslTriplet(token.value as ThemeColorValue);\n }\n\n const directAliases: Array<[\n string,\n string,\n MonkeysThemeColorMode | MonkeysThemeDensity,\n ResolvedThemeToken['type'],\n ]> = [\n ['semantic.color.neocard', '--neocard', colorMode, 'color'],\n ['semantic.radius.base', '--radius', colorMode, 'dimension'],\n ['semantic.spacing.global', '--global-spacing', density, 'dimension'],\n ['semantic.gradient.brand', '--monkeys-gradient', colorMode, 'gradient'],\n ['semantic.font.body', '--font-sans', colorMode, 'fontFamily'],\n ];\n for (const [basePath, variableName, axis, expectedType] of directAliases) {\n const path = selectModePath(paths, basePath, axis);\n if (!path) continue;\n const token = resolved.tokens.get(path);\n if (!token || token.type !== expectedType) {\n throw new TypeError(`${path} must be a ${expectedType} token to drive ${variableName}.`);\n }\n cssVariables[variableName] = cssValues[path];\n }\n\n const cssText = Object.entries(cssVariables)\n .sort(([left], [right]) => left.localeCompare(right))\n .map(([name, value]) => `${name}:${value};`)\n .join('');\n\n return {\n contract,\n colorMode,\n density,\n values: Object.freeze(values),\n cssValues: Object.freeze(cssValues),\n cssVariables: Object.freeze(cssVariables),\n cssText,\n };\n}\n\nexport function applyThemeTokens(\n input: ThemeTokens,\n options: ApplyThemeTokensOptions = {},\n): CompiledThemeTokens {\n const compiled = compileThemeTokens(input, options);\n const target = options.target ?? (typeof document === 'undefined' ? null : document.documentElement);\n if (!target) return compiled;\n\n const previouslyApplied = APPLIED_VARIABLES.get(target) ?? new Set<string>();\n const nextVariables = new Set(Object.keys(compiled.cssVariables));\n for (const name of previouslyApplied) {\n if (!nextVariables.has(name)) target.style.removeProperty(name);\n }\n for (const [name, value] of Object.entries(compiled.cssVariables)) {\n target.style.setProperty(name, value);\n }\n APPLIED_VARIABLES.set(target, nextVariables);\n\n if (options.themeId) target.dataset.monkeysTheme = options.themeId;\n else delete target.dataset.monkeysTheme;\n target.dataset.monkeysColorMode = compiled.colorMode;\n target.dataset.monkeysDensity = compiled.density;\n return compiled;\n}\n"]}
|
|
@@ -207,6 +207,9 @@ var HSL_SEMANTIC_ALIASES = {
|
|
|
207
207
|
"semantic.color.border": "--border",
|
|
208
208
|
"semantic.color.input": "--input",
|
|
209
209
|
"semantic.color.ring": "--ring",
|
|
210
|
+
"semantic.color.media-surface": "--media-surface",
|
|
211
|
+
"semantic.color.media-foreground": "--media-foreground",
|
|
212
|
+
"semantic.color.media-overlay": "--media-overlay",
|
|
210
213
|
"semantic.color.radar-canvas": "--radar-canvas",
|
|
211
214
|
"semantic.color.radar-panel": "--radar-panel",
|
|
212
215
|
"semantic.color.radar-border": "--radar-border",
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../../src/theme-system/theme-tokens.ts"],"names":["hue","saturation","lightness"],"mappings":"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","file":"index.mjs","sourcesContent":["import type {\n ResolvedThemeToken,\n ThemeColorValue,\n ThemeDimensionValue,\n ThemeDurationValue,\n ThemeTokenExtensions,\n ThemeTokens,\n} from '@inf-monkeys-tech/monkeys/contracts';\nimport { resolveThemeTokens } from '@inf-monkeys-tech/monkeys/runtime';\n\nexport type MonkeysThemeColorMode = 'light' | 'dark' | (string & {});\nexport type MonkeysThemeDensity = 'compact' | 'default' | 'comfortable';\n\nexport interface CompileThemeTokensOptions {\n colorMode?: MonkeysThemeColorMode;\n density?: MonkeysThemeDensity;\n variablePrefix?: string;\n}\n\nexport interface CompiledThemeTokens {\n contract: ThemeTokens;\n colorMode: MonkeysThemeColorMode;\n density: MonkeysThemeDensity;\n values: Readonly<Record<string, unknown>>;\n cssValues: Readonly<Record<string, string>>;\n cssVariables: Readonly<Record<string, string>>;\n cssText: string;\n}\n\nexport interface ApplyThemeTokensOptions extends CompileThemeTokensOptions {\n target?: HTMLElement | null;\n themeId?: string;\n}\n\ntype CssExtension = {\n gradient?: {\n kind?: 'linear' | 'radial';\n angle?: number;\n };\n};\n\nconst CSS_EXTENSION_KEY = 'com.infmonkeys.css';\nconst APPLIED_VARIABLES = new WeakMap<object, Set<string>>();\n\nfunction isRecord(value: unknown): value is Record<string, unknown> {\n return value !== null && typeof value === 'object' && !Array.isArray(value);\n}\n\nfunction readCssExtension(extensions?: ThemeTokenExtensions): CssExtension | undefined {\n const extension = extensions?.[CSS_EXTENSION_KEY];\n return isRecord(extension) ? extension as CssExtension : undefined;\n}\n\nfunction formatNumber(value: number): string {\n return Number.isInteger(value) ? String(value) : String(Number(value.toFixed(6)));\n}\n\nfunction formatDimension(value: ThemeDimensionValue): string {\n return `${formatNumber(value.value)}${value.unit}`;\n}\n\nfunction formatDuration(value: ThemeDurationValue): string {\n return `${formatNumber(value.value)}${value.unit}`;\n}\n\nfunction formatColorComponent(value: number | 'none'): string {\n return value === 'none' ? value : formatNumber(value);\n}\n\nfunction hexToSrgb(hex: string): [number, number, number] {\n return [\n Number.parseInt(hex.slice(1, 3), 16) / 255,\n Number.parseInt(hex.slice(3, 5), 16) / 255,\n Number.parseInt(hex.slice(5, 7), 16) / 255,\n ];\n}\n\nfunction colorSrgbComponents(value: ThemeColorValue): [number, number, number] {\n if (value.colorSpace === 'srgb' && value.components.every((component) => typeof component === 'number')) {\n return value.components as [number, number, number];\n }\n if (value.hex) return hexToSrgb(value.hex);\n throw new TypeError(\n `Web semantic colors in ${value.colorSpace} require a six-digit hex fallback for hsl(var(--token)) consumers.`,\n );\n}\n\nfunction srgbToHsl([red, green, blue]: [number, number, number]): [number, number, number] {\n const maximum = Math.max(red, green, blue);\n const minimum = Math.min(red, green, blue);\n const lightness = (maximum + minimum) / 2;\n if (maximum === minimum) return [0, 0, lightness * 100];\n const delta = maximum - minimum;\n const saturation = lightness > 0.5\n ? delta / (2 - maximum - minimum)\n : delta / (maximum + minimum);\n let hue: number;\n if (maximum === red) hue = (green - blue) / delta + (green < blue ? 6 : 0);\n else if (maximum === green) hue = (blue - red) / delta + 2;\n else hue = (red - green) / delta + 4;\n return [(hue / 6) * 360, saturation * 100, lightness * 100];\n}\n\nfunction formatHslTriplet(value: ThemeColorValue): string {\n if (value.colorSpace === 'hsl' && value.components.every((component) => typeof component === 'number')) {\n const [hue, saturation, lightness] = value.components as [number, number, number];\n return `${formatNumber(hue)} ${formatNumber(saturation)}% ${formatNumber(lightness)}%`;\n }\n const [hue, saturation, lightness] = srgbToHsl(colorSrgbComponents(value));\n return `${formatNumber(hue)} ${formatNumber(saturation)}% ${formatNumber(lightness)}%`;\n}\n\nfunction formatColor(value: ThemeColorValue): string {\n const alpha = value.alpha ?? 1;\n if (value.hex && alpha === 1) return value.hex;\n const components = value.components.map(formatColorComponent).join(' ');\n const alphaSuffix = alpha === 1 ? '' : ` / ${formatNumber(alpha)}`;\n switch (value.colorSpace) {\n case 'srgb': {\n const rgb = value.components.map((component) => component === 'none' ? 'none' : formatNumber(component * 255));\n return `rgb(${rgb.join(' ')}${alphaSuffix})`;\n }\n case 'hsl':\n return `hsl(${formatColorComponent(value.components[0])} ${formatColorComponent(value.components[1])}% ${formatColorComponent(value.components[2])}%${alphaSuffix})`;\n case 'hwb':\n return `hwb(${formatColorComponent(value.components[0])} ${formatColorComponent(value.components[1])}% ${formatColorComponent(value.components[2])}%${alphaSuffix})`;\n case 'lab':\n case 'lch':\n case 'oklab':\n case 'oklch':\n return `${value.colorSpace}(${components}${alphaSuffix})`;\n default:\n return `color(${value.colorSpace} ${components}${alphaSuffix})`;\n }\n}\n\nfunction formatFontFamily(value: string | string[]): string {\n const families = Array.isArray(value) ? value : [value];\n const genericFamilies = new Set([\n 'serif', 'sans-serif', 'monospace', 'cursive', 'fantasy', 'system-ui',\n 'ui-serif', 'ui-sans-serif', 'ui-monospace', 'ui-rounded', 'math', 'emoji', 'fangsong',\n ]);\n return families.map((family) => {\n if (genericFamilies.has(family) || /^[a-zA-Z][\\w-]*$/.test(family)) return family;\n return `\"${family.replace(/\\\\/g, '\\\\\\\\').replace(/\"/g, '\\\\\"')}\"`;\n }).join(', ');\n}\n\nfunction formatShadow(value: unknown): string {\n const shadows = Array.isArray(value) ? value : [value];\n return shadows.map((shadow) => {\n if (!isRecord(shadow)) throw new TypeError('DTCG shadow values must be objects.');\n return [\n formatDimension(shadow.offsetX as ThemeDimensionValue),\n formatDimension(shadow.offsetY as ThemeDimensionValue),\n formatDimension(shadow.blur as ThemeDimensionValue),\n formatDimension(shadow.spread as ThemeDimensionValue),\n formatColor(shadow.color as ThemeColorValue),\n shadow.inset === true ? 'inset' : '',\n ].filter(Boolean).join(' ');\n }).join(', ');\n}\n\nfunction formatGradient(value: unknown, extensions?: ThemeTokenExtensions): string {\n if (!Array.isArray(value)) throw new TypeError('DTCG gradient values must be arrays.');\n const stops = value.map((stop) => {\n if (!isRecord(stop)) throw new TypeError('DTCG gradient stops must be objects.');\n return `${formatColor(stop.color as ThemeColorValue)} ${formatNumber(Number(stop.position) * 100)}%`;\n }).join(', ');\n const gradient = readCssExtension(extensions)?.gradient;\n if (gradient?.kind === 'radial') return `radial-gradient(${stops})`;\n return `linear-gradient(${formatNumber(gradient?.angle ?? 90)}deg, ${stops})`;\n}\n\nfunction formatTokenValue(token: ResolvedThemeToken): string {\n switch (token.type) {\n case 'color':\n return formatColor(token.value as ThemeColorValue);\n case 'dimension':\n return formatDimension(token.value as ThemeDimensionValue);\n case 'fontFamily':\n return formatFontFamily(token.value as string | string[]);\n case 'fontWeight':\n case 'number':\n return String(token.value);\n case 'duration':\n return formatDuration(token.value as ThemeDurationValue);\n case 'cubicBezier':\n return `cubic-bezier(${(token.value as number[]).map(formatNumber).join(', ')})`;\n case 'strokeStyle': {\n if (typeof token.value === 'string') return token.value;\n const value = token.value as { dashArray: ThemeDimensionValue[] };\n return value.dashArray.map(formatDimension).join(' ');\n }\n case 'border': {\n const value = token.value as { color: ThemeColorValue; width: ThemeDimensionValue; style: unknown };\n const styleToken: ResolvedThemeToken = { ...token, type: 'strokeStyle', value: value.style };\n return `${formatDimension(value.width)} ${formatTokenValue(styleToken)} ${formatColor(value.color)}`;\n }\n case 'transition': {\n const value = token.value as { duration: ThemeDurationValue; delay: ThemeDurationValue; timingFunction: number[] };\n return `${formatDuration(value.duration)} cubic-bezier(${value.timingFunction.map(formatNumber).join(', ')}) ${formatDuration(value.delay)}`;\n }\n case 'shadow':\n return formatShadow(token.value);\n case 'gradient':\n return formatGradient(token.value, token.extensions);\n case 'typography': {\n const value = token.value as {\n fontFamily: string | string[];\n fontSize: ThemeDimensionValue;\n fontWeight: string | number;\n lineHeight: number;\n };\n return `${value.fontWeight} ${formatDimension(value.fontSize)}/${formatNumber(value.lineHeight)} ${formatFontFamily(value.fontFamily)}`;\n }\n }\n}\n\nfunction toCssVariableName(path: string, prefix: string): string {\n const normalized = path\n .replace(/([a-z0-9])([A-Z])/g, '$1-$2')\n .replace(/[^a-zA-Z0-9]+/g, '-')\n .replace(/^-+|-+$/g, '')\n .toLowerCase();\n return `--${prefix}-${normalized}`;\n}\n\nfunction assertCssVariablePrefix(prefix: string): void {\n if (!/^[a-zA-Z][a-zA-Z0-9-]*$/.test(prefix)) {\n throw new TypeError(\n 'Theme token variablePrefix must start with a letter and contain only letters, numbers, or hyphens.',\n );\n }\n}\n\nfunction selectModePath(\n paths: ReadonlySet<string>,\n basePath: string,\n colorMode: MonkeysThemeColorMode,\n): string | undefined {\n const contextualPath = `${basePath}.${colorMode}`;\n if (paths.has(contextualPath)) return contextualPath;\n return paths.has(basePath) ? basePath : undefined;\n}\n\nconst HSL_SEMANTIC_ALIASES: Readonly<Record<string, string>> = {\n 'semantic.color.background': '--background',\n 'semantic.color.foreground': '--foreground',\n 'semantic.color.card': '--card',\n 'semantic.color.card-foreground': '--card-foreground',\n 'semantic.color.popover': '--popover',\n 'semantic.color.popover-foreground': '--popover-foreground',\n 'semantic.color.primary': '--primary',\n 'semantic.color.primary-foreground': '--primary-foreground',\n 'semantic.color.secondary': '--secondary',\n 'semantic.color.secondary-foreground': '--secondary-foreground',\n 'semantic.color.muted': '--muted',\n 'semantic.color.muted-foreground': '--muted-foreground',\n 'semantic.color.accent': '--accent',\n 'semantic.color.accent-foreground': '--accent-foreground',\n 'semantic.color.destructive': '--destructive',\n 'semantic.color.destructive-foreground': '--destructive-foreground',\n 'semantic.color.success': '--success',\n 'semantic.color.success-foreground': '--success-foreground',\n 'semantic.color.warning': '--warning',\n 'semantic.color.warning-foreground': '--warning-foreground',\n 'semantic.color.border': '--border',\n 'semantic.color.input': '--input',\n 'semantic.color.ring': '--ring',\n 'semantic.color.radar-canvas': '--radar-canvas',\n 'semantic.color.radar-panel': '--radar-panel',\n 'semantic.color.radar-border': '--radar-border',\n 'semantic.color.radar-shell-border': '--radar-shell-border',\n 'semantic.color.radar-grid': '--radar-grid',\n 'semantic.color.radar-axis': '--radar-axis',\n 'semantic.color.radar-series-one': '--radar-series-one',\n 'semantic.color.radar-series-two': '--radar-series-two',\n 'semantic.color.radar-series-three': '--radar-series-three',\n 'semantic.color.radar-series-four': '--radar-series-four',\n};\n\nexport function getThemeTokenCssValue(\n compiled: CompiledThemeTokens,\n basePath: string,\n): string | undefined {\n const path = selectModePath(new Set(Object.keys(compiled.cssValues)), basePath, compiled.colorMode);\n return path ? compiled.cssValues[path] : undefined;\n}\n\nexport function compileThemeTokens(\n input: ThemeTokens,\n options: CompileThemeTokensOptions = {},\n): CompiledThemeTokens {\n const resolved = resolveThemeTokens(input);\n const contract = resolved.document;\n const colorMode = options.colorMode ?? 'light';\n const density = options.density ?? 'default';\n const variablePrefix = options.variablePrefix ?? 'monkeys';\n assertCssVariablePrefix(variablePrefix);\n const values: Record<string, unknown> = {};\n const cssValues: Record<string, string> = {};\n const cssVariables: Record<string, string> = {};\n const canonicalVariableSources = new Map<string, string>();\n\n for (const [path, token] of resolved.tokens) {\n values[path] = token.value;\n const cssValue = formatTokenValue(token);\n cssValues[path] = cssValue;\n const variableName = toCssVariableName(path, variablePrefix);\n const existingPath = canonicalVariableSources.get(variableName);\n if (existingPath) {\n throw new TypeError(\n `Theme token paths ${existingPath} and ${path} both compile to ${variableName}. Rename one token.`,\n );\n }\n canonicalVariableSources.set(variableName, path);\n cssVariables[variableName] = cssValue;\n }\n\n const paths = new Set(resolved.tokens.keys());\n for (const [basePath, variableName] of Object.entries(HSL_SEMANTIC_ALIASES)) {\n const path = selectModePath(paths, basePath, colorMode);\n if (!path) continue;\n const token = resolved.tokens.get(path);\n if (!token || token.type !== 'color') {\n throw new TypeError(`${path} must be a color token to drive ${variableName}.`);\n }\n cssVariables[variableName] = formatHslTriplet(token.value as ThemeColorValue);\n }\n\n const directAliases: Array<[\n string,\n string,\n MonkeysThemeColorMode | MonkeysThemeDensity,\n ResolvedThemeToken['type'],\n ]> = [\n ['semantic.color.neocard', '--neocard', colorMode, 'color'],\n ['semantic.radius.base', '--radius', colorMode, 'dimension'],\n ['semantic.spacing.global', '--global-spacing', density, 'dimension'],\n ['semantic.gradient.brand', '--monkeys-gradient', colorMode, 'gradient'],\n ['semantic.font.body', '--font-sans', colorMode, 'fontFamily'],\n ];\n for (const [basePath, variableName, axis, expectedType] of directAliases) {\n const path = selectModePath(paths, basePath, axis);\n if (!path) continue;\n const token = resolved.tokens.get(path);\n if (!token || token.type !== expectedType) {\n throw new TypeError(`${path} must be a ${expectedType} token to drive ${variableName}.`);\n }\n cssVariables[variableName] = cssValues[path];\n }\n\n const cssText = Object.entries(cssVariables)\n .sort(([left], [right]) => left.localeCompare(right))\n .map(([name, value]) => `${name}:${value};`)\n .join('');\n\n return {\n contract,\n colorMode,\n density,\n values: Object.freeze(values),\n cssValues: Object.freeze(cssValues),\n cssVariables: Object.freeze(cssVariables),\n cssText,\n };\n}\n\nexport function applyThemeTokens(\n input: ThemeTokens,\n options: ApplyThemeTokensOptions = {},\n): CompiledThemeTokens {\n const compiled = compileThemeTokens(input, options);\n const target = options.target ?? (typeof document === 'undefined' ? null : document.documentElement);\n if (!target) return compiled;\n\n const previouslyApplied = APPLIED_VARIABLES.get(target) ?? new Set<string>();\n const nextVariables = new Set(Object.keys(compiled.cssVariables));\n for (const name of previouslyApplied) {\n if (!nextVariables.has(name)) target.style.removeProperty(name);\n }\n for (const [name, value] of Object.entries(compiled.cssVariables)) {\n target.style.setProperty(name, value);\n }\n APPLIED_VARIABLES.set(target, nextVariables);\n\n if (options.themeId) target.dataset.monkeysTheme = options.themeId;\n else delete target.dataset.monkeysTheme;\n target.dataset.monkeysColorMode = compiled.colorMode;\n target.dataset.monkeysDensity = compiled.density;\n return compiled;\n}\n"]}
|
|
1
|
+
{"version":3,"sources":["../../src/theme-system/theme-tokens.ts"],"names":["hue","saturation","lightness"],"mappings":"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","file":"index.mjs","sourcesContent":["import type {\n ResolvedThemeToken,\n ThemeColorValue,\n ThemeDimensionValue,\n ThemeDurationValue,\n ThemeTokenExtensions,\n ThemeTokens,\n} from '@inf-monkeys-tech/monkeys/contracts';\nimport { resolveThemeTokens } from '@inf-monkeys-tech/monkeys/runtime';\n\nexport type MonkeysThemeColorMode = 'light' | 'dark' | (string & {});\nexport type MonkeysThemeDensity = 'compact' | 'default' | 'comfortable';\n\nexport interface CompileThemeTokensOptions {\n colorMode?: MonkeysThemeColorMode;\n density?: MonkeysThemeDensity;\n variablePrefix?: string;\n}\n\nexport interface CompiledThemeTokens {\n contract: ThemeTokens;\n colorMode: MonkeysThemeColorMode;\n density: MonkeysThemeDensity;\n values: Readonly<Record<string, unknown>>;\n cssValues: Readonly<Record<string, string>>;\n cssVariables: Readonly<Record<string, string>>;\n cssText: string;\n}\n\nexport interface ApplyThemeTokensOptions extends CompileThemeTokensOptions {\n target?: HTMLElement | null;\n themeId?: string;\n}\n\ntype CssExtension = {\n gradient?: {\n kind?: 'linear' | 'radial';\n angle?: number;\n };\n};\n\nconst CSS_EXTENSION_KEY = 'com.infmonkeys.css';\nconst APPLIED_VARIABLES = new WeakMap<object, Set<string>>();\n\nfunction isRecord(value: unknown): value is Record<string, unknown> {\n return value !== null && typeof value === 'object' && !Array.isArray(value);\n}\n\nfunction readCssExtension(extensions?: ThemeTokenExtensions): CssExtension | undefined {\n const extension = extensions?.[CSS_EXTENSION_KEY];\n return isRecord(extension) ? extension as CssExtension : undefined;\n}\n\nfunction formatNumber(value: number): string {\n return Number.isInteger(value) ? String(value) : String(Number(value.toFixed(6)));\n}\n\nfunction formatDimension(value: ThemeDimensionValue): string {\n return `${formatNumber(value.value)}${value.unit}`;\n}\n\nfunction formatDuration(value: ThemeDurationValue): string {\n return `${formatNumber(value.value)}${value.unit}`;\n}\n\nfunction formatColorComponent(value: number | 'none'): string {\n return value === 'none' ? value : formatNumber(value);\n}\n\nfunction hexToSrgb(hex: string): [number, number, number] {\n return [\n Number.parseInt(hex.slice(1, 3), 16) / 255,\n Number.parseInt(hex.slice(3, 5), 16) / 255,\n Number.parseInt(hex.slice(5, 7), 16) / 255,\n ];\n}\n\nfunction colorSrgbComponents(value: ThemeColorValue): [number, number, number] {\n if (value.colorSpace === 'srgb' && value.components.every((component) => typeof component === 'number')) {\n return value.components as [number, number, number];\n }\n if (value.hex) return hexToSrgb(value.hex);\n throw new TypeError(\n `Web semantic colors in ${value.colorSpace} require a six-digit hex fallback for hsl(var(--token)) consumers.`,\n );\n}\n\nfunction srgbToHsl([red, green, blue]: [number, number, number]): [number, number, number] {\n const maximum = Math.max(red, green, blue);\n const minimum = Math.min(red, green, blue);\n const lightness = (maximum + minimum) / 2;\n if (maximum === minimum) return [0, 0, lightness * 100];\n const delta = maximum - minimum;\n const saturation = lightness > 0.5\n ? delta / (2 - maximum - minimum)\n : delta / (maximum + minimum);\n let hue: number;\n if (maximum === red) hue = (green - blue) / delta + (green < blue ? 6 : 0);\n else if (maximum === green) hue = (blue - red) / delta + 2;\n else hue = (red - green) / delta + 4;\n return [(hue / 6) * 360, saturation * 100, lightness * 100];\n}\n\nfunction formatHslTriplet(value: ThemeColorValue): string {\n if (value.colorSpace === 'hsl' && value.components.every((component) => typeof component === 'number')) {\n const [hue, saturation, lightness] = value.components as [number, number, number];\n return `${formatNumber(hue)} ${formatNumber(saturation)}% ${formatNumber(lightness)}%`;\n }\n const [hue, saturation, lightness] = srgbToHsl(colorSrgbComponents(value));\n return `${formatNumber(hue)} ${formatNumber(saturation)}% ${formatNumber(lightness)}%`;\n}\n\nfunction formatColor(value: ThemeColorValue): string {\n const alpha = value.alpha ?? 1;\n if (value.hex && alpha === 1) return value.hex;\n const components = value.components.map(formatColorComponent).join(' ');\n const alphaSuffix = alpha === 1 ? '' : ` / ${formatNumber(alpha)}`;\n switch (value.colorSpace) {\n case 'srgb': {\n const rgb = value.components.map((component) => component === 'none' ? 'none' : formatNumber(component * 255));\n return `rgb(${rgb.join(' ')}${alphaSuffix})`;\n }\n case 'hsl':\n return `hsl(${formatColorComponent(value.components[0])} ${formatColorComponent(value.components[1])}% ${formatColorComponent(value.components[2])}%${alphaSuffix})`;\n case 'hwb':\n return `hwb(${formatColorComponent(value.components[0])} ${formatColorComponent(value.components[1])}% ${formatColorComponent(value.components[2])}%${alphaSuffix})`;\n case 'lab':\n case 'lch':\n case 'oklab':\n case 'oklch':\n return `${value.colorSpace}(${components}${alphaSuffix})`;\n default:\n return `color(${value.colorSpace} ${components}${alphaSuffix})`;\n }\n}\n\nfunction formatFontFamily(value: string | string[]): string {\n const families = Array.isArray(value) ? value : [value];\n const genericFamilies = new Set([\n 'serif', 'sans-serif', 'monospace', 'cursive', 'fantasy', 'system-ui',\n 'ui-serif', 'ui-sans-serif', 'ui-monospace', 'ui-rounded', 'math', 'emoji', 'fangsong',\n ]);\n return families.map((family) => {\n if (genericFamilies.has(family) || /^[a-zA-Z][\\w-]*$/.test(family)) return family;\n return `\"${family.replace(/\\\\/g, '\\\\\\\\').replace(/\"/g, '\\\\\"')}\"`;\n }).join(', ');\n}\n\nfunction formatShadow(value: unknown): string {\n const shadows = Array.isArray(value) ? value : [value];\n return shadows.map((shadow) => {\n if (!isRecord(shadow)) throw new TypeError('DTCG shadow values must be objects.');\n return [\n formatDimension(shadow.offsetX as ThemeDimensionValue),\n formatDimension(shadow.offsetY as ThemeDimensionValue),\n formatDimension(shadow.blur as ThemeDimensionValue),\n formatDimension(shadow.spread as ThemeDimensionValue),\n formatColor(shadow.color as ThemeColorValue),\n shadow.inset === true ? 'inset' : '',\n ].filter(Boolean).join(' ');\n }).join(', ');\n}\n\nfunction formatGradient(value: unknown, extensions?: ThemeTokenExtensions): string {\n if (!Array.isArray(value)) throw new TypeError('DTCG gradient values must be arrays.');\n const stops = value.map((stop) => {\n if (!isRecord(stop)) throw new TypeError('DTCG gradient stops must be objects.');\n return `${formatColor(stop.color as ThemeColorValue)} ${formatNumber(Number(stop.position) * 100)}%`;\n }).join(', ');\n const gradient = readCssExtension(extensions)?.gradient;\n if (gradient?.kind === 'radial') return `radial-gradient(${stops})`;\n return `linear-gradient(${formatNumber(gradient?.angle ?? 90)}deg, ${stops})`;\n}\n\nfunction formatTokenValue(token: ResolvedThemeToken): string {\n switch (token.type) {\n case 'color':\n return formatColor(token.value as ThemeColorValue);\n case 'dimension':\n return formatDimension(token.value as ThemeDimensionValue);\n case 'fontFamily':\n return formatFontFamily(token.value as string | string[]);\n case 'fontWeight':\n case 'number':\n return String(token.value);\n case 'duration':\n return formatDuration(token.value as ThemeDurationValue);\n case 'cubicBezier':\n return `cubic-bezier(${(token.value as number[]).map(formatNumber).join(', ')})`;\n case 'strokeStyle': {\n if (typeof token.value === 'string') return token.value;\n const value = token.value as { dashArray: ThemeDimensionValue[] };\n return value.dashArray.map(formatDimension).join(' ');\n }\n case 'border': {\n const value = token.value as { color: ThemeColorValue; width: ThemeDimensionValue; style: unknown };\n const styleToken: ResolvedThemeToken = { ...token, type: 'strokeStyle', value: value.style };\n return `${formatDimension(value.width)} ${formatTokenValue(styleToken)} ${formatColor(value.color)}`;\n }\n case 'transition': {\n const value = token.value as { duration: ThemeDurationValue; delay: ThemeDurationValue; timingFunction: number[] };\n return `${formatDuration(value.duration)} cubic-bezier(${value.timingFunction.map(formatNumber).join(', ')}) ${formatDuration(value.delay)}`;\n }\n case 'shadow':\n return formatShadow(token.value);\n case 'gradient':\n return formatGradient(token.value, token.extensions);\n case 'typography': {\n const value = token.value as {\n fontFamily: string | string[];\n fontSize: ThemeDimensionValue;\n fontWeight: string | number;\n lineHeight: number;\n };\n return `${value.fontWeight} ${formatDimension(value.fontSize)}/${formatNumber(value.lineHeight)} ${formatFontFamily(value.fontFamily)}`;\n }\n }\n}\n\nfunction toCssVariableName(path: string, prefix: string): string {\n const normalized = path\n .replace(/([a-z0-9])([A-Z])/g, '$1-$2')\n .replace(/[^a-zA-Z0-9]+/g, '-')\n .replace(/^-+|-+$/g, '')\n .toLowerCase();\n return `--${prefix}-${normalized}`;\n}\n\nfunction assertCssVariablePrefix(prefix: string): void {\n if (!/^[a-zA-Z][a-zA-Z0-9-]*$/.test(prefix)) {\n throw new TypeError(\n 'Theme token variablePrefix must start with a letter and contain only letters, numbers, or hyphens.',\n );\n }\n}\n\nfunction selectModePath(\n paths: ReadonlySet<string>,\n basePath: string,\n colorMode: MonkeysThemeColorMode,\n): string | undefined {\n const contextualPath = `${basePath}.${colorMode}`;\n if (paths.has(contextualPath)) return contextualPath;\n return paths.has(basePath) ? basePath : undefined;\n}\n\nconst HSL_SEMANTIC_ALIASES: Readonly<Record<string, string>> = {\n 'semantic.color.background': '--background',\n 'semantic.color.foreground': '--foreground',\n 'semantic.color.card': '--card',\n 'semantic.color.card-foreground': '--card-foreground',\n 'semantic.color.popover': '--popover',\n 'semantic.color.popover-foreground': '--popover-foreground',\n 'semantic.color.primary': '--primary',\n 'semantic.color.primary-foreground': '--primary-foreground',\n 'semantic.color.secondary': '--secondary',\n 'semantic.color.secondary-foreground': '--secondary-foreground',\n 'semantic.color.muted': '--muted',\n 'semantic.color.muted-foreground': '--muted-foreground',\n 'semantic.color.accent': '--accent',\n 'semantic.color.accent-foreground': '--accent-foreground',\n 'semantic.color.destructive': '--destructive',\n 'semantic.color.destructive-foreground': '--destructive-foreground',\n 'semantic.color.success': '--success',\n 'semantic.color.success-foreground': '--success-foreground',\n 'semantic.color.warning': '--warning',\n 'semantic.color.warning-foreground': '--warning-foreground',\n 'semantic.color.border': '--border',\n 'semantic.color.input': '--input',\n 'semantic.color.ring': '--ring',\n 'semantic.color.media-surface': '--media-surface',\n 'semantic.color.media-foreground': '--media-foreground',\n 'semantic.color.media-overlay': '--media-overlay',\n 'semantic.color.radar-canvas': '--radar-canvas',\n 'semantic.color.radar-panel': '--radar-panel',\n 'semantic.color.radar-border': '--radar-border',\n 'semantic.color.radar-shell-border': '--radar-shell-border',\n 'semantic.color.radar-grid': '--radar-grid',\n 'semantic.color.radar-axis': '--radar-axis',\n 'semantic.color.radar-series-one': '--radar-series-one',\n 'semantic.color.radar-series-two': '--radar-series-two',\n 'semantic.color.radar-series-three': '--radar-series-three',\n 'semantic.color.radar-series-four': '--radar-series-four',\n};\n\nexport function getThemeTokenCssValue(\n compiled: CompiledThemeTokens,\n basePath: string,\n): string | undefined {\n const path = selectModePath(new Set(Object.keys(compiled.cssValues)), basePath, compiled.colorMode);\n return path ? compiled.cssValues[path] : undefined;\n}\n\nexport function compileThemeTokens(\n input: ThemeTokens,\n options: CompileThemeTokensOptions = {},\n): CompiledThemeTokens {\n const resolved = resolveThemeTokens(input);\n const contract = resolved.document;\n const colorMode = options.colorMode ?? 'light';\n const density = options.density ?? 'default';\n const variablePrefix = options.variablePrefix ?? 'monkeys';\n assertCssVariablePrefix(variablePrefix);\n const values: Record<string, unknown> = {};\n const cssValues: Record<string, string> = {};\n const cssVariables: Record<string, string> = {};\n const canonicalVariableSources = new Map<string, string>();\n\n for (const [path, token] of resolved.tokens) {\n values[path] = token.value;\n const cssValue = formatTokenValue(token);\n cssValues[path] = cssValue;\n const variableName = toCssVariableName(path, variablePrefix);\n const existingPath = canonicalVariableSources.get(variableName);\n if (existingPath) {\n throw new TypeError(\n `Theme token paths ${existingPath} and ${path} both compile to ${variableName}. Rename one token.`,\n );\n }\n canonicalVariableSources.set(variableName, path);\n cssVariables[variableName] = cssValue;\n }\n\n const paths = new Set(resolved.tokens.keys());\n for (const [basePath, variableName] of Object.entries(HSL_SEMANTIC_ALIASES)) {\n const path = selectModePath(paths, basePath, colorMode);\n if (!path) continue;\n const token = resolved.tokens.get(path);\n if (!token || token.type !== 'color') {\n throw new TypeError(`${path} must be a color token to drive ${variableName}.`);\n }\n cssVariables[variableName] = formatHslTriplet(token.value as ThemeColorValue);\n }\n\n const directAliases: Array<[\n string,\n string,\n MonkeysThemeColorMode | MonkeysThemeDensity,\n ResolvedThemeToken['type'],\n ]> = [\n ['semantic.color.neocard', '--neocard', colorMode, 'color'],\n ['semantic.radius.base', '--radius', colorMode, 'dimension'],\n ['semantic.spacing.global', '--global-spacing', density, 'dimension'],\n ['semantic.gradient.brand', '--monkeys-gradient', colorMode, 'gradient'],\n ['semantic.font.body', '--font-sans', colorMode, 'fontFamily'],\n ];\n for (const [basePath, variableName, axis, expectedType] of directAliases) {\n const path = selectModePath(paths, basePath, axis);\n if (!path) continue;\n const token = resolved.tokens.get(path);\n if (!token || token.type !== expectedType) {\n throw new TypeError(`${path} must be a ${expectedType} token to drive ${variableName}.`);\n }\n cssVariables[variableName] = cssValues[path];\n }\n\n const cssText = Object.entries(cssVariables)\n .sort(([left], [right]) => left.localeCompare(right))\n .map(([name, value]) => `${name}:${value};`)\n .join('');\n\n return {\n contract,\n colorMode,\n density,\n values: Object.freeze(values),\n cssValues: Object.freeze(cssValues),\n cssVariables: Object.freeze(cssVariables),\n cssText,\n };\n}\n\nexport function applyThemeTokens(\n input: ThemeTokens,\n options: ApplyThemeTokensOptions = {},\n): CompiledThemeTokens {\n const compiled = compileThemeTokens(input, options);\n const target = options.target ?? (typeof document === 'undefined' ? null : document.documentElement);\n if (!target) return compiled;\n\n const previouslyApplied = APPLIED_VARIABLES.get(target) ?? new Set<string>();\n const nextVariables = new Set(Object.keys(compiled.cssVariables));\n for (const name of previouslyApplied) {\n if (!nextVariables.has(name)) target.style.removeProperty(name);\n }\n for (const [name, value] of Object.entries(compiled.cssVariables)) {\n target.style.setProperty(name, value);\n }\n APPLIED_VARIABLES.set(target, nextVariables);\n\n if (options.themeId) target.dataset.monkeysTheme = options.themeId;\n else delete target.dataset.monkeysTheme;\n target.dataset.monkeysColorMode = compiled.colorMode;\n target.dataset.monkeysDensity = compiled.density;\n return compiled;\n}\n"]}
|