@inf-monkeys-tech/monkeys-design 2.0.161 → 2.0.162

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/ui/internal.ts","../../../src/theme-system/theme-tokens.ts","../../../src/theme-system/bento-tokens.ts","../../../src/locale/en-US.ts","../../../src/locale/zh-CN.ts","../../../src/locale/resolve-locale.ts","../../../src/provider/context.ts","../../../src/ui/theme/tokens.json","../../../src/ui/theme/theme.tsx","../../../src/ui/sample-color.ts","../../../src/ui/button-light-edge.tsx","../../../src/components/base/BasePortal.tsx","../../../src/components/base/internal/overlayPortal.tsx","../../../src/components/base/utils.ts","../../../src/components/base/theme.ts","../../../src/components/base/BaseTooltip.tsx","../../../src/components/base/form-help.tsx","../../../src/ui/controls.tsx","../../../src/ui/scroll-surface.tsx","../../../src/components/runtime/BentoScope.tsx","../../../src/components/runtime/useBentoSurface.ts","../../../src/ui/overlays.tsx","../../../src/components/base/BasePanel.tsx","../../../src/components/primitives/BentoPanel.tsx","../../../src/ui/panel-surface.ts","../../../src/ui/surface-effect.tsx","../../../src/ui/collection.tsx","../../../src/ui/catalog.tsx","../../../src/ui/upload.tsx","../../../src/ui/patterns.tsx","../../../src/ui/effects.tsx"],"names":["fallback","hue","saturation","lightness","host","key","path","createContext","useContext","useState","document","useMemo","TooltipPrimitive","useRef","useEffect","jsx","Fragment","jsxs","forwardRef","option","index","useId","isValidElement","Tooltip","TooltipPrimitive2","X","Check","ImageOff","Plus"],"mappings":"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","file":"index.mjs","sourcesContent":["import { useRef, useState } from 'react';\nexport const cx = (...values: Array<string | false | undefined>) => values.filter(Boolean).join(' ');\nexport function useControllable<T>(value: T | undefined, defaultValue: T | undefined, fallback: T, onChange?: (value: T) => void) {\n const controlled = value !== undefined;\n const initial = useRef(controlled);\n const warned = useRef(false);\n if (process.env.NODE_ENV !== 'production' && !warned.current && ((value !== undefined && defaultValue !== undefined) || initial.current !== controlled)) {\n console.error('monkeys-design UI: choose controlled or uncontrolled state; do not supply both value and defaultValue or switch modes.');\n warned.current = true;\n }\n const [local, setLocal] = useState(defaultValue ?? fallback);\n const current = controlled ? value : local;\n const update = (next: T) => { if (!controlled) setLocal(next); if (next !== current) onChange?.(next); };\n return [current, update] as const;\n}\n","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\nexport interface ClearThemeTokensOptions {\n target?: HTMLElement | null;\n}\n\ntype ThemeTokenCssAliasAxis = 'colorMode' | 'density';\ntype ThemeTokenCssAliasFormat = 'hsl' | 'css';\n\ninterface ThemeTokenCssAlias {\n variableName: string;\n axis: ThemeTokenCssAliasAxis;\n expectedType: ResolvedThemeToken['type'];\n format: ThemeTokenCssAliasFormat;\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_VARIABLES: 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\nconst THEME_TOKEN_CSS_ALIASES: Readonly<Record<string, ThemeTokenCssAlias>> = Object.freeze({\n ...Object.fromEntries(\n Object.entries(HSL_SEMANTIC_VARIABLES).map(([path, variableName]) => [path, {\n variableName,\n axis: 'colorMode',\n expectedType: 'color',\n format: 'hsl',\n }]),\n ),\n 'semantic.color.neocard': {\n variableName: '--neocard',\n axis: 'colorMode',\n expectedType: 'color',\n format: 'css',\n },\n 'semantic.radius.base': {\n variableName: '--radius',\n axis: 'colorMode',\n expectedType: 'dimension',\n format: 'css',\n },\n 'semantic.spacing.global': {\n variableName: '--global-spacing',\n axis: 'density',\n expectedType: 'dimension',\n format: 'css',\n },\n 'semantic.gradient.brand': {\n variableName: '--monkeys-gradient',\n axis: 'colorMode',\n expectedType: 'gradient',\n format: 'css',\n },\n 'semantic.font.body': {\n variableName: '--font-sans',\n axis: 'colorMode',\n expectedType: 'fontFamily',\n format: 'css',\n },\n});\n\nexport function resolveThemeTokenCssVariable(reference: string): string {\n const path = reference.startsWith('$') ? reference.slice(1).trim() : reference.trim();\n if (!/^[a-z][a-z0-9]*(?:[.-][a-z0-9]+)*$/i.test(path)) {\n throw new TypeError(`Invalid Design Token path ${reference}.`);\n }\n const alias = THEME_TOKEN_CSS_ALIASES[path];\n if (alias) return alias.format === 'hsl' ? `hsl(var(${alias.variableName}))` : `var(${alias.variableName})`;\n return `var(${toCssVariableName(path, 'monkeys')})`;\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, alias] of Object.entries(THEME_TOKEN_CSS_ALIASES)) {\n const axis = alias.axis === 'density' ? density : colorMode;\n const path = selectModePath(paths, basePath, axis);\n if (!path) continue;\n const token = resolved.tokens.get(path);\n if (!token || token.type !== alias.expectedType) {\n throw new TypeError(`${path} must be a ${alias.expectedType} token to drive ${alias.variableName}.`);\n }\n cssVariables[alias.variableName] = alias.format === 'hsl'\n ? formatHslTriplet(token.value as ThemeColorValue)\n : 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\nexport function clearThemeTokens(options: ClearThemeTokensOptions = {}): void {\n const target = options.target ?? (typeof document === 'undefined' ? null : document.documentElement);\n if (!target) return;\n\n const previouslyApplied = APPLIED_VARIABLES.get(target) ?? new Set<string>();\n for (const name of previouslyApplied) target.style.removeProperty(name);\n APPLIED_VARIABLES.delete(target);\n\n delete target.dataset.monkeysTheme;\n delete target.dataset.monkeysColorMode;\n delete target.dataset.monkeysDensity;\n}\n","import type { CompiledThemeTokens } from './theme-tokens';\n\nexport const BENTO_STYLE_FIELDS = [\n 'background',\n 'glowColor',\n 'borderColor',\n 'borderWidth',\n 'borderStyle',\n 'radius',\n 'shadow',\n 'padding',\n 'gap',\n] as const;\nexport type BentoStyleField = (typeof BENTO_STYLE_FIELDS)[number];\nexport interface ResolvedBentoTokens {\n values: Record<BentoStyleField, string>;\n sources: Record<BentoStyleField, string>;\n}\n\nconst fallback: Record<BentoStyleField, string> = {\n background: 'hsl(var(--card, 0 0% 100%))',\n glowColor: 'var(--monkeys-bento-glow-default)',\n borderColor: 'hsl(var(--border, 214.3 31.8% 91.4%))',\n borderWidth: '1px',\n borderStyle: 'solid',\n radius: 'var(--radius, 0.75rem)',\n shadow: 'none',\n padding: 'var(--global-spacing, 0.75rem)',\n gap: 'var(--global-spacing, 0.75rem)',\n};\nconst cache = new WeakMap<\n CompiledThemeTokens,\n Map<number, ResolvedBentoTokens>\n>();\n\n/** Resolve fields independently; local component overrides are applied by the surface. */\nexport function resolveBentoTokens(\n theme: CompiledThemeTokens | undefined,\n level: number,\n): ResolvedBentoTokens {\n if (!Number.isSafeInteger(level) || level < 1)\n throw new RangeError('Bento level must be a positive safe integer.');\n const cached = theme && cache.get(theme)?.get(level);\n if (cached) return cached;\n const values = { ...fallback };\n const sources = Object.fromEntries(\n BENTO_STYLE_FIELDS.map((field) => [field, 'builtin']),\n ) as Record<BentoStyleField, string>;\n for (const field of BENTO_STYLE_FIELDS) {\n const axis =\n field === 'padding' || field === 'gap'\n ? theme?.density\n : theme?.colorMode;\n // Glow is an optional Design component token. Keep the SDK's closed\n // semantic.bento recipe compatible with existing token documents.\n const namespace = field === 'glowColor' ? 'component.bento' : 'semantic.bento';\n const paths = [\n `${namespace}.levels.level${level}.${field}`,\n `${namespace}.default.${field}`,\n ];\n for (const base of paths) {\n const path =\n axis && theme?.cssValues[`${base}.${axis}`] !== undefined\n ? `${base}.${axis}`\n : base;\n const value = theme?.cssValues[path];\n if (value !== undefined) {\n values[field] = value;\n sources[field] = path;\n break;\n }\n }\n }\n const result = Object.freeze({\n values: Object.freeze(values),\n sources: Object.freeze(sources),\n });\n if (theme) {\n const levels = cache.get(theme) ?? new Map<number, ResolvedBentoTokens>();\n levels.set(level, result);\n cache.set(theme, levels);\n }\n return result;\n}\n","import type { MonkeysLocale } from \"./types\";\n\nexport const enUS = {\n locale: \"en-US\",\n messages: {\n pagination: {\n navigation: \"Pagination\",\n first: \"First\",\n previous: \"Previous\",\n next: \"Next\",\n last: \"Last\",\n page: ({ page, pageCount }) => `Page ${page} of ${pageCount}`,\n currentPage: ({ page, pageCount }) =>\n `Page ${page} of ${pageCount}, current page`,\n emptyResults: \"0 results\",\n range: ({ start, end, total }) => `${start}-${end} of ${total}`,\n selected: ({ count }) => `${count} selected`,\n pageSize: \"Items per page\",\n loadBatchSize: \"Items per load\",\n perLoad: \"Items per load\",\n jumpToPage: \"Jump to page\",\n pages: \"pages\",\n clickToJump: \"Click to jump to a page\",\n },\n dialog: {\n close: \"Close dialog\",\n },\n dropdownMenu: {\n actions: \"Actions\",\n },\n loading: {\n spinner: \"Loading\",\n },\n layout: {\n resizePanels: \"Resize panels\",\n expandPanel: \"Expand\",\n collapsePanel: \"Collapse\",\n movePanel: \"Move\",\n moveBefore: \"Move earlier\",\n moveAfter: \"Move later\",\n },\n steps: {\n label: \"Progress\",\n current: \"Current\",\n completed: \"Completed\",\n error: \"Error\",\n disabled: \"Disabled\",\n },\n numberInput: {\n increment: \"Increase value\",\n decrement: \"Decrease value\",\n },\n passwordInput: {\n showPassword: \"Show password\",\n hidePassword: \"Hide password\",\n },\n multiSelect: {\n placeholder: \"Select options\",\n empty: \"No options\",\n removeOption: ({ value }) => `Remove ${value}`,\n },\n table: {\n dragColumn: ({ columnId }) => `Drag column ${columnId}`,\n resizeColumn: ({ columnId }) => `Resize column ${columnId}`,\n sortColumn: ({ columnId }) =>\n columnId ? `Sort column ${columnId}` : \"Sort column\",\n loadingRow: \"Loading table row\",\n },\n toolbar: {\n theme: {\n label: \"Appearance\",\n toggle: \"Toggle theme\",\n auto: \"Auto\",\n light: \"Light\",\n dark: \"Dark\",\n },\n language: {\n label: \"Language\",\n switch: \"Switch language\",\n },\n },\n toast: {\n errorTitle: \"Error\",\n warningTitle: \"Warning\",\n defaultErrorDescription: \"Something went wrong.\",\n defaultWarningDescription: \"Please check and try again.\",\n },\n dataExplorer: {\n viewTree: {\n actions: \"More actions\",\n expand: \"Expand\",\n collapse: \"Collapse\",\n loading: \"Loading...\",\n empty: \"No views\",\n error: \"Unable to load views\",\n },\n },\n workbench: {\n relationshipGraph: { zoomOut: 'Zoom out', zoomIn: 'Zoom in', zoomToFit: 'Fit graph', minimap: 'Graph overview' },\n collection: {\n label: \"Collection\",\n loading: \"Loading items\",\n empty: \"No items\",\n loadError: \"Unable to load items\",\n refreshError: \"Unable to refresh items\",\n retry: \"Retry\",\n loadingMore: \"Loading more items\",\n permission: \"You do not have permission to view this content\",\n offline: \"You appear to be offline\",\n requestAccess: \"Request access\",\n },\n interactiveTable: {\n columnActions: \"Column actions\",\n freezeColumn: \"Freeze to left\",\n freezeEndColumn: \"Freeze to right\",\n unfreezeColumn: \"Unfreeze from left\",\n unfreezeEndColumn: \"Unfreeze from right\",\n unfreezeAllColumns: \"Unfreeze all columns\",\n resetColumnWidth: \"Reset column width\",\n frozenColumnTitle: \"Frozen column\",\n },\n },\n agentWorkbench: {\n label: \"Session activity\",\n reasoning: \"Reasoning\",\n plan: \"Plan\",\n taskNoDetail: \"No additional details\",\n modes: { chat: \"Chat\", work: \"Work\" },\n composer: {\n send: \"Send message\",\n stop: \"Stop generating\",\n queue: \"Queue message\",\n attach: \"Add photos or files\",\n voice: \"Start voice input\",\n webSearch: \"Web search\",\n chatMode: \"Chat mode\",\n model: \"Model\",\n reasoning: \"Reasoning effort\",\n permissions: \"Permissions\",\n removeAttachment: \"Remove attachment\",\n editQueued: \"Edit queued message\",\n deleteQueued: \"Delete queued message\",\n moveUp: \"Move message up\",\n moveDown: \"Move message down\",\n queued: \"Queued messages\",\n uploading: \"Uploading\",\n uploadFailed: \"Upload failed\",\n retryAttachment: \"Retry attachment upload\",\n noModels: \"No models available\",\n message: \"Message\",\n attachmentOnly: \"Attachment\",\n reasoningOptions: {\n low: \"Low\",\n medium: \"Medium\",\n high: \"High\",\n xhigh: \"Extra high\",\n },\n permissionOptions: {\n \"approval-required\": \"Approval required\",\n \"auto-approve\": \"Auto approve\",\n \"full-access\": \"Full access\",\n },\n },\n quickStart: {\n label: \"Quick start\",\n back: \"Back\",\n addFile: \"Add file\",\n },\n tool: {\n input: \"Input\",\n output: \"Output\",\n status: {\n pending: \"Pending\",\n running: \"Running\",\n completed: \"Completed\",\n failed: \"Error\",\n denied: \"Denied\",\n },\n },\n approval: {\n approve: \"Approve\",\n reject: \"Reject\",\n approved: \"Approved\",\n rejected: \"Rejected\",\n },\n artifact: {\n pending: \"Preparing\",\n ready: \"Ready\",\n failed: \"Failed\",\n open: ({ name }) => `Open ${name}`,\n },\n run: {\n stopping: \"Stopping...\",\n stoppedAfter: ({ duration }) => `You stopped after ${duration}`,\n },\n process: {\n running: \"Working\",\n queued: \"Queued\",\n waitingApproval: \"Waiting for approval\",\n failed: \"Failed\",\n stopped: \"Stopped\",\n processed: \"Processed\",\n processedFor: ({ duration }) => `Worked for ${duration}`,\n completedCount: ({ completed, total }) =>\n `${completed}/${total} completed`,\n },\n artifactWorkspace: {\n outputs: \"Outputs\",\n sources: \"Sources\",\n viewAll: \"View all\",\n toggleSummary: \"Toggle files\",\n tabs: \"Open files\",\n closeTab: ({ name }) => `Close ${name}`,\n closeWorkspace: \"Close workspace\",\n download: ({ name }) => `Download ${name}`,\n openExternal: ({ name }) => `Open ${name} in a new window`,\n loading: \"Loading preview...\",\n failed: \"Preview unavailable\",\n retry: \"Try again\",\n },\n usage: {\n label: \"Context usage\",\n context: ({ used, total }) => `${used} / ${total} tokens`,\n },\n navigation: {\n search: \"Search agents and sessions\",\n searchSessions: \"Search sessions\",\n searchShortcut: \"Focus search\",\n clearSearch: \"Clear search\",\n tabsLabel: \"Agent workbench navigation\",\n agents: \"Agents\",\n sessions: \"Sessions\",\n newAgent: \"New Agent\",\n newSession: \"New Session\",\n capabilities: \"Capabilities & Extensions\",\n settings: \"Agent Settings\",\n allAgents: \"All Agents\",\n recentSessions: \"Recent Sessions\",\n chat: \"Chat\",\n work: \"Work\",\n chats: \"Chats\",\n builtIn: \"Built-in\",\n noDescription: \"No description\",\n loading: \"Loading...\",\n emptyAgents: \"No agents yet\",\n emptySessions: \"No sessions yet\",\n noResults: \"No matching results\",\n retry: \"Retry\",\n pin: \"Pin\",\n unpin: \"Unpin\",\n rename: \"Rename\",\n delete: \"Delete\",\n actions: \"Actions\",\n save: \"Save\",\n cancel: \"Cancel\",\n running: \"Running\",\n completed: \"Completed\",\n failed: \"Failed\",\n contextUsage: ({ percent }) => `${percent}% context used`,\n },\n details: {\n title: \"Task details\",\n description: \"Summary and workspace activity\",\n duration: \"Duration\",\n updated: \"Updated\",\n model: \"Model\",\n mode: \"Mode\",\n permissions: \"Permissions\",\n tokenUsage: \"Token usage\",\n summary: \"Summary\",\n summaryEmpty: \"No summary is available yet.\",\n summaryFailed: \"The summary could not be generated.\",\n highlights: \"Highlights\",\n pendingItems: \"Pending items\",\n tabs: {\n label: \"Task detail views\",\n summary: \"Summary\",\n workspace: \"Workspace\",\n },\n status: {\n queued: \"Queued\",\n running: \"Running\",\n waiting_approval: \"Waiting for approval\",\n stopping: \"Stopping\",\n stopped: \"Stopped\",\n completed: \"Completed\",\n failed: \"Failed\",\n },\n state: {\n loading: {\n title: \"Loading task details\",\n description: \"Restoring the latest session activity.\",\n },\n empty: {\n title: \"No task selected\",\n description: \"Select a task to inspect its details.\",\n },\n error: {\n title: \"Unable to load task details\",\n description: \"Try again after the session is available.\",\n },\n },\n actions: {\n close: \"Close task details\",\n copySummary: \"Copy summary\",\n retry: \"Retry\",\n retrySummary: \"Retry summary\",\n resume: \"Resume\",\n continueInNewTask: \"Continue in new task\",\n editAndRerun: \"Edit and rerun\",\n export: \"Export\",\n },\n workspace: {\n diffs: \"Code changes\",\n files: \"Files\",\n terminals: \"Terminals\",\n tests: \"Tests\",\n artifacts: \"Artifacts\",\n exitCode: ({ code }) => `Exit code ${code}`,\n diffStatus: {\n added: \"Added\",\n modified: \"Modified\",\n deleted: \"Deleted\",\n renamed: \"Renamed\",\n },\n fileOperation: { upsert: \"Updated\", delete: \"Deleted\" },\n },\n },\n },\n },\n} satisfies MonkeysLocale;\n","import type { MonkeysLocale } from \"./types\";\n\nexport const zhCN = {\n locale: \"zh-CN\",\n messages: {\n pagination: {\n navigation: \"分页导航\",\n first: \"首页\",\n previous: \"上一页\",\n next: \"下一页\",\n last: \"末页\",\n page: ({ page, pageCount }) => `第 ${page} 页,共 ${pageCount} 页`,\n currentPage: ({ page, pageCount }) =>\n `第 ${page} 页,共 ${pageCount} 页,当前页`,\n emptyResults: \"共 0 条\",\n range: ({ start, end, total }) => `第 ${start}-${end} 条,共 ${total} 条`,\n selected: ({ count }) => `已选择 ${count} 项`,\n pageSize: \"每页显示数量\",\n loadBatchSize: \"每次加载数量\",\n perLoad: \"每次加载\",\n jumpToPage: \"跳转到页码\",\n pages: \"页\",\n clickToJump: \"点击跳转页码\",\n },\n dialog: {\n close: \"关闭对话框\",\n },\n dropdownMenu: {\n actions: \"操作\",\n },\n loading: {\n spinner: \"正在加载\",\n },\n layout: {\n resizePanels: \"调整面板大小\",\n expandPanel: \"展开\",\n collapsePanel: \"收起\",\n movePanel: \"移动\",\n moveBefore: \"向前移动\",\n moveAfter: \"向后移动\",\n },\n steps: {\n label: \"进度\",\n current: \"当前步骤\",\n completed: \"已完成\",\n error: \"错误\",\n disabled: \"已禁用\",\n },\n numberInput: {\n increment: \"增加数值\",\n decrement: \"减少数值\",\n },\n passwordInput: {\n showPassword: \"显示密码\",\n hidePassword: \"隐藏密码\",\n },\n multiSelect: {\n placeholder: \"请选择\",\n empty: \"暂无选项\",\n removeOption: ({ value }) => `移除 ${value}`,\n },\n table: {\n dragColumn: ({ columnId }) => `拖动列 ${columnId}`,\n resizeColumn: ({ columnId }) => `调整列宽 ${columnId}`,\n sortColumn: ({ columnId }) =>\n columnId ? `排序列 ${columnId}` : \"排序列\",\n loadingRow: \"正在加载表格行\",\n },\n toolbar: {\n theme: {\n label: \"外观\",\n toggle: \"切换主题\",\n auto: \"跟随系统\",\n light: \"浅色模式\",\n dark: \"深色模式\",\n },\n language: {\n label: \"语言\",\n switch: \"切换语言\",\n },\n },\n toast: {\n errorTitle: \"错误\",\n warningTitle: \"提示\",\n defaultErrorDescription: \"发生错误,请稍后重试。\",\n defaultWarningDescription: \"请检查后重试。\",\n },\n dataExplorer: {\n viewTree: {\n actions: \"更多操作\",\n expand: \"展开\",\n collapse: \"收起\",\n loading: \"正在加载...\",\n empty: \"暂无视图\",\n error: \"无法加载视图\",\n },\n },\n workbench: {\n relationshipGraph: { zoomOut: '缩小', zoomIn: '放大', zoomToFit: '适应画布', minimap: '图谱概览' },\n collection: {\n label: \"内容集合\",\n loading: \"正在加载内容\",\n empty: \"暂无内容\",\n loadError: \"无法加载内容\",\n refreshError: \"无法刷新内容\",\n retry: \"重试\",\n loadingMore: \"正在加载更多内容\",\n permission: \"你没有权限查看此内容\",\n offline: \"网络连接已断开\",\n requestAccess: \"申请权限\",\n },\n interactiveTable: {\n columnActions: \"列操作\",\n freezeColumn: \"固定到左侧\",\n freezeEndColumn: \"固定到右侧\",\n unfreezeColumn: \"取消左侧固定\",\n unfreezeEndColumn: \"取消右侧固定\",\n unfreezeAllColumns: \"取消全部固定\",\n resetColumnWidth: \"重置列宽\",\n frozenColumnTitle: \"已固定列\",\n },\n },\n agentWorkbench: {\n label: \"会话活动\",\n reasoning: \"思考过程\",\n plan: \"执行计划\",\n taskNoDetail: \"暂无更多详情\",\n modes: { chat: \"对话\", work: \"工作\" },\n composer: {\n send: \"发送消息\",\n stop: \"停止生成\",\n queue: \"排队发送\",\n attach: \"添加照片或文件\",\n voice: \"开始语音输入\",\n webSearch: \"联网搜索\",\n chatMode: \"对话模式\",\n model: \"模型\",\n reasoning: \"思考强度\",\n permissions: \"权限\",\n removeAttachment: \"移除附件\",\n editQueued: \"编辑排队消息\",\n deleteQueued: \"删除排队消息\",\n moveUp: \"上移消息\",\n moveDown: \"下移消息\",\n queued: \"排队消息\",\n uploading: \"上传中\",\n uploadFailed: \"上传失败\",\n retryAttachment: \"重试附件上传\",\n noModels: \"暂无可用模型\",\n message: \"消息\",\n attachmentOnly: \"附件\",\n reasoningOptions: {\n low: \"低\",\n medium: \"中\",\n high: \"高\",\n xhigh: \"最高\",\n },\n permissionOptions: {\n \"approval-required\": \"需要批准\",\n \"auto-approve\": \"自动批准\",\n \"full-access\": \"完全访问\",\n },\n },\n quickStart: {\n label: \"快速开始\",\n back: \"返回\",\n addFile: \"添加文件\",\n },\n tool: {\n input: \"输入\",\n output: \"输出\",\n status: {\n pending: \"等待中\",\n running: \"运行中\",\n completed: \"已完成\",\n failed: \"错误\",\n denied: \"已拒绝\",\n },\n },\n approval: {\n approve: \"允许\",\n reject: \"拒绝\",\n approved: \"已允许\",\n rejected: \"已拒绝\",\n },\n artifact: {\n pending: \"准备中\",\n ready: \"已就绪\",\n failed: \"失败\",\n open: ({ name }) => `打开 ${name}`,\n },\n run: {\n stopping: \"正在停止...\",\n stoppedAfter: ({ duration }) => `你在 ${duration} 后停止了任务`,\n },\n process: {\n running: \"执行过程\",\n queued: \"排队中\",\n waitingApproval: \"等待审批\",\n failed: \"失败\",\n stopped: \"已停止\",\n processed: \"已处理\",\n processedFor: ({ duration }) =>\n `耗时 ${duration\n .replace(/(\\d+)h/g, \"$1小时\")\n .replace(/(\\d+)m/g, \"$1分钟\")\n .replace(/(\\d+)s/g, \"$1秒\")\n .replace(/\\s+/g, \"\")}`,\n completedCount: ({ completed, total }) =>\n `${completed}/${total} 已完成`,\n },\n artifactWorkspace: {\n outputs: \"输出\",\n sources: \"来源\",\n viewAll: \"查看全部\",\n toggleSummary: \"切换文件摘要\",\n tabs: \"已打开文件\",\n closeTab: ({ name }) => `关闭 ${name}`,\n closeWorkspace: \"关闭工作区\",\n download: ({ name }) => `下载 ${name}`,\n openExternal: ({ name }) => `在新窗口打开 ${name}`,\n loading: \"正在加载预览...\",\n failed: \"预览不可用\",\n retry: \"重试\",\n },\n usage: {\n label: \"上下文用量\",\n context: ({ used, total }) => `${used} / ${total} tokens`,\n },\n navigation: {\n search: \"搜索智能体和会话\",\n searchSessions: \"搜索会话\",\n searchShortcut: \"聚焦搜索框\",\n clearSearch: \"清除搜索\",\n tabsLabel: \"智能体工作台导航\",\n agents: \"智能体\",\n sessions: \"会话\",\n newAgent: \"新建智能体\",\n newSession: \"新建会话\",\n capabilities: \"能力与扩展\",\n settings: \"智能体设置\",\n allAgents: \"全部智能体\",\n recentSessions: \"最近会话\",\n chat: \"对话\",\n work: \"工作\",\n chats: \"聊天\",\n builtIn: \"内置\",\n noDescription: \"暂无描述\",\n loading: \"加载中...\",\n emptyAgents: \"暂无智能体\",\n emptySessions: \"暂无会话\",\n noResults: \"没有匹配结果\",\n retry: \"重试\",\n pin: \"置顶\",\n unpin: \"取消置顶\",\n rename: \"重命名\",\n delete: \"删除\",\n actions: \"操作\",\n save: \"保存\",\n cancel: \"取消\",\n running: \"运行中\",\n completed: \"已完成\",\n failed: \"失败\",\n contextUsage: ({ percent }) => `已使用 ${percent}% 上下文`,\n },\n details: {\n title: \"任务详情\",\n description: \"摘要与工作区活动\",\n duration: \"耗时\",\n updated: \"更新时间\",\n model: \"模型\",\n mode: \"模式\",\n permissions: \"权限\",\n tokenUsage: \"Token 用量\",\n summary: \"摘要\",\n summaryEmpty: \"暂时没有可用摘要。\",\n summaryFailed: \"摘要生成失败。\",\n highlights: \"重点\",\n pendingItems: \"待处理事项\",\n tabs: {\n label: \"任务详情视图\",\n summary: \"摘要\",\n workspace: \"工作区\",\n },\n status: {\n queued: \"排队中\",\n running: \"运行中\",\n waiting_approval: \"等待审批\",\n stopping: \"正在停止\",\n stopped: \"已停止\",\n completed: \"已完成\",\n failed: \"失败\",\n },\n state: {\n loading: {\n title: \"正在加载任务详情\",\n description: \"正在恢复最新的会话活动。\",\n },\n empty: {\n title: \"未选择任务\",\n description: \"选择任务后查看详细信息。\",\n },\n error: {\n title: \"无法加载任务详情\",\n description: \"会话恢复可用后请重试。\",\n },\n },\n actions: {\n close: \"关闭任务详情\",\n copySummary: \"复制摘要\",\n retry: \"重试\",\n retrySummary: \"重新生成摘要\",\n resume: \"继续运行\",\n continueInNewTask: \"在新任务中继续\",\n editAndRerun: \"编辑并重新运行\",\n export: \"导出\",\n },\n workspace: {\n diffs: \"代码变更\",\n files: \"文件\",\n terminals: \"终端\",\n tests: \"测试\",\n artifacts: \"产物\",\n exitCode: ({ code }) => `退出码 ${code}`,\n diffStatus: {\n added: \"新增\",\n modified: \"修改\",\n deleted: \"删除\",\n renamed: \"重命名\",\n },\n fileOperation: { upsert: \"已更新\", delete: \"已删除\" },\n },\n },\n },\n },\n} satisfies MonkeysLocale;\n","import { enUS } from './en-US';\nimport type {\n MonkeysBuiltInLocaleId,\n MonkeysLocale,\n MonkeysLocaleInput,\n MonkeysLocaleMessages,\n MonkeysLocaleMessagesOverride,\n MonkeysResolvedLocale,\n} from './types';\nimport { zhCN } from './zh-CN';\n\nconst BUILT_IN_LOCALES: Record<MonkeysBuiltInLocaleId, MonkeysLocale> = {\n 'en-US': enUS,\n 'zh-CN': zhCN,\n};\n\nfunction normalizeLocaleId(locale: unknown): string {\n if (typeof locale !== 'string' || !locale.trim()) {\n throw new TypeError('Monkeys locale must be a non-empty BCP 47 string.');\n }\n\n try {\n return Intl.getCanonicalLocales(locale)[0];\n } catch {\n throw new RangeError(\n `Monkeys locale \"${locale}\" is not a valid BCP 47 identifier.`,\n );\n }\n}\n\nfunction isRecord(value: unknown): value is Record<string, unknown> {\n return Boolean(value) && typeof value === 'object' && !Array.isArray(value);\n}\n\nfunction validateMessageOverride(\n value: unknown,\n schema: unknown,\n path: string,\n) {\n if (!isRecord(value) || !isRecord(schema)) {\n throw new TypeError(`${path} must be an object.`);\n }\n\n for (const [key, candidate] of Object.entries(value)) {\n if (candidate === undefined) continue;\n if (!(key in schema)) {\n throw new TypeError(`${path}.${key} is not a supported Monkeys message.`);\n }\n\n const expected = schema[key];\n const candidatePath = `${path}.${key}`;\n if (typeof expected === 'function') {\n if (typeof candidate !== 'function') {\n throw new TypeError(`${candidatePath} must be a function.`);\n }\n } else if (typeof expected === 'string') {\n if (typeof candidate !== 'string') {\n throw new TypeError(`${candidatePath} must be a string.`);\n }\n } else {\n validateMessageOverride(candidate, expected, candidatePath);\n }\n }\n}\n\nfunction assertMessagesOverride(\n value: unknown,\n path: string,\n): asserts value is MonkeysLocaleMessagesOverride {\n validateMessageOverride(value, enUS.messages, path);\n}\n\nfunction isBuiltInLocale(locale: string): locale is MonkeysBuiltInLocaleId {\n return locale === 'en-US' || locale === 'zh-CN';\n}\n\nfunction normalizeLocaleInput(input: MonkeysLocaleInput | undefined): {\n locale: string | undefined;\n messages: MonkeysLocaleMessagesOverride | undefined;\n hasExplicitLocale: boolean;\n} {\n if (input === undefined) {\n return {\n locale: undefined,\n messages: undefined,\n hasExplicitLocale: false,\n };\n }\n\n if (typeof input === 'string') {\n const locale = normalizeLocaleId(input);\n if (!isBuiltInLocale(locale)) {\n throw new RangeError(\n `Unsupported built-in Monkeys locale \"${locale}\". Provide a locale pack object for custom locales.`,\n );\n }\n return { locale, messages: undefined, hasExplicitLocale: true };\n }\n\n if (!input || typeof input !== 'object' || Array.isArray(input)) {\n throw new TypeError('Monkeys locale must be a locale id or locale pack object.');\n }\n\n const locale = normalizeLocaleId(input.locale);\n assertMessagesOverride(input.messages, 'Monkeys locale messages');\n\n return {\n locale,\n messages: input.messages,\n hasExplicitLocale: true,\n };\n}\n\nexport function mergeMonkeysLocaleMessages(\n base: MonkeysLocaleMessages,\n override?: MonkeysLocaleMessagesOverride,\n): MonkeysLocaleMessages {\n if (!override) return base;\n\n return {\n pagination: { ...base.pagination, ...override.pagination },\n dialog: { ...base.dialog, ...override.dialog },\n dropdownMenu: { ...base.dropdownMenu, ...override.dropdownMenu },\n loading: { ...base.loading, ...override.loading },\n layout: { ...base.layout, ...override.layout },\n steps: { ...base.steps, ...override.steps },\n numberInput: { ...base.numberInput, ...override.numberInput },\n passwordInput: { ...base.passwordInput, ...override.passwordInput },\n multiSelect: { ...base.multiSelect, ...override.multiSelect },\n table: { ...base.table, ...override.table },\n toolbar: {\n theme: { ...base.toolbar.theme, ...override.toolbar?.theme },\n language: { ...base.toolbar.language, ...override.toolbar?.language },\n },\n toast: { ...base.toast, ...override.toast },\n dataExplorer: {\n viewTree: {\n ...base.dataExplorer.viewTree,\n ...override.dataExplorer?.viewTree,\n },\n },\n workbench: {\n relationshipGraph: { zoomOut: 'Zoom out', zoomIn: 'Zoom in', zoomToFit: 'Fit graph', minimap: 'Graph overview', ...base.workbench.relationshipGraph, ...override.workbench?.relationshipGraph },\n collection: {\n ...base.workbench.collection,\n ...override.workbench?.collection,\n },\n interactiveTable: {\n ...base.workbench.interactiveTable,\n ...override.workbench?.interactiveTable,\n },\n },\n agentWorkbench: {\n ...base.agentWorkbench,\n ...override.agentWorkbench,\n modes: {\n ...base.agentWorkbench.modes,\n ...override.agentWorkbench?.modes,\n },\n composer: {\n ...base.agentWorkbench.composer,\n ...override.agentWorkbench?.composer,\n },\n quickStart: {\n ...base.agentWorkbench.quickStart,\n ...override.agentWorkbench?.quickStart,\n },\n tool: {\n ...base.agentWorkbench.tool,\n ...override.agentWorkbench?.tool,\n status: {\n ...base.agentWorkbench.tool.status,\n ...override.agentWorkbench?.tool?.status,\n },\n },\n approval: {\n ...base.agentWorkbench.approval,\n ...override.agentWorkbench?.approval,\n },\n artifact: {\n ...base.agentWorkbench.artifact,\n ...override.agentWorkbench?.artifact,\n },\n run: {\n ...base.agentWorkbench.run,\n ...override.agentWorkbench?.run,\n },\n process: {\n ...base.agentWorkbench.process,\n ...override.agentWorkbench?.process,\n },\n artifactWorkspace: {\n ...base.agentWorkbench.artifactWorkspace,\n ...override.agentWorkbench?.artifactWorkspace,\n },\n usage: {\n ...base.agentWorkbench.usage,\n ...override.agentWorkbench?.usage,\n },\n navigation: {\n ...base.agentWorkbench.navigation,\n ...override.agentWorkbench?.navigation,\n },\n details: {\n ...base.agentWorkbench.details,\n ...override.agentWorkbench?.details,\n tabs: {\n ...base.agentWorkbench.details.tabs,\n ...override.agentWorkbench?.details?.tabs,\n },\n status: {\n ...base.agentWorkbench.details.status,\n ...override.agentWorkbench?.details?.status,\n },\n state: {\n loading: {\n ...base.agentWorkbench.details.state.loading,\n ...override.agentWorkbench?.details?.state?.loading,\n },\n empty: {\n ...base.agentWorkbench.details.state.empty,\n ...override.agentWorkbench?.details?.state?.empty,\n },\n error: {\n ...base.agentWorkbench.details.state.error,\n ...override.agentWorkbench?.details?.state?.error,\n },\n },\n actions: {\n ...base.agentWorkbench.details.actions,\n ...override.agentWorkbench?.details?.actions,\n },\n workspace: {\n ...base.agentWorkbench.details.workspace,\n ...override.agentWorkbench?.details?.workspace,\n diffStatus: {\n ...base.agentWorkbench.details.workspace.diffStatus,\n ...override.agentWorkbench?.details?.workspace?.diffStatus,\n },\n fileOperation: {\n ...base.agentWorkbench.details.workspace.fileOperation,\n ...override.agentWorkbench?.details?.workspace?.fileOperation,\n },\n },\n },\n },\n };\n}\n\nexport const defaultMonkeysLocale: MonkeysResolvedLocale = {\n locale: enUS.locale,\n messages: mergeMonkeysLocaleMessages(\n enUS.messages as MonkeysLocaleMessages,\n ),\n};\n\nexport function resolveMonkeysLocale(\n input?: MonkeysLocaleInput,\n override?: MonkeysLocaleMessagesOverride,\n parent?: MonkeysResolvedLocale,\n): MonkeysResolvedLocale {\n if (override !== undefined) {\n assertMessagesOverride(override, 'MonkeysProvider messages');\n }\n const normalized = normalizeLocaleInput(input);\n const locale = normalized.locale ?? parent?.locale ?? enUS.locale;\n const builtInMessages = isBuiltInLocale(locale)\n ? BUILT_IN_LOCALES[locale].messages\n : undefined;\n let messages = mergeMonkeysLocaleMessages(\n enUS.messages as MonkeysLocaleMessages,\n builtInMessages,\n );\n\n if (parent && (!normalized.hasExplicitLocale || parent.locale === locale)) {\n messages = mergeMonkeysLocaleMessages(messages, parent.messages);\n }\n\n messages = mergeMonkeysLocaleMessages(messages, normalized.messages);\n messages = mergeMonkeysLocaleMessages(messages, override);\n\n return { locale, messages };\n}\n","import {\n createContext,\n useContext,\n useMemo,\n type Context,\n} from 'react';\n\nimport type { AssetIconResolver, AssetImageResolver } from '../components/base/BaseAssetIcon';\nimport type { BaseAppearance } from '../components/base/types';\nimport type { DataExplorerAppearance } from '../components/data-explorer/types';\nimport {\n defaultMonkeysLocale,\n type MonkeysLocaleMessages,\n type MonkeysResolvedLocale,\n} from '../locale';\nimport type { CompiledThemeTokens } from '../theme-system';\n\nexport type MonkeysDirection = 'ltr' | 'rtl';\n\nexport interface MonkeysEnvironment {\n getDocument?: () => Document | null;\n getWindow?: () => Window | null;\n}\n\nexport type MonkeysPortalContainer =\n | Element\n | null\n | (() => Element | null);\n\nexport interface MonkeysPortalOptions {\n container?: MonkeysPortalContainer;\n disabled?: boolean;\n}\n\nexport type MonkeysLoadingStateVariant = 'spinner' | 'skeleton';\nexport type MonkeysEmptyStateVariant = 'default' | 'compact';\nexport type MonkeysStatusStateDensity = 'compact' | 'default' | 'comfortable';\n\nexport type MonkeysListFooterPaginationMode = 'auto' | 'pages' | 'compact';\nexport type MonkeysListFooterAlignment = 'start' | 'end' | 'space-between';\n\nexport interface MonkeysListFooterConfig {\n showTotal?: boolean;\n showPageSize?: boolean;\n pageSizeOptions?: number[];\n paginationMode?: MonkeysListFooterPaginationMode;\n alignment?: MonkeysListFooterAlignment;\n density?: MonkeysStatusStateDensity;\n}\n\nexport interface MonkeysStatusStatesConfig {\n loading?: { variant?: MonkeysLoadingStateVariant };\n empty?: { variant?: MonkeysEmptyStateVariant };\n error?: { showRetry?: boolean };\n permission?: { showRequestAccess?: boolean };\n density?: MonkeysStatusStateDensity;\n}\n\nexport interface MonkeysComponentAttributes {\n dir?: MonkeysDirection;\n 'data-monkeys-direction'?: MonkeysDirection;\n 'data-monkeys-locale'?: string;\n 'data-monkeys-theme'?: string;\n 'data-monkeys-theme-mode'?: string;\n}\n\ninterface MonkeysLocaleContextValue extends MonkeysResolvedLocale {\n provided: boolean;\n}\n\ninterface MonkeysThemeContextValue {\n provided: boolean;\n resolvedTheme?: CompiledThemeTokens;\n themeId?: string;\n baseAppearance?: BaseAppearance;\n dataExplorerAppearance?: DataExplorerAppearance;\n statusStates?: MonkeysStatusStatesConfig;\n listFooter?: MonkeysListFooterConfig;\n}\n\ninterface MonkeysDirectionContextValue {\n provided: boolean;\n direction?: MonkeysDirection;\n}\n\ninterface MonkeysEnvironmentContextValue {\n provided: boolean;\n environment: MonkeysEnvironment;\n portal: MonkeysPortalOptions;\n iconResolver?: AssetIconResolver;\n imageResolver?: AssetImageResolver;\n}\n\nconst EMPTY_ENVIRONMENT = Object.freeze({}) satisfies MonkeysEnvironment;\nconst EMPTY_PORTAL = Object.freeze({}) satisfies MonkeysPortalOptions;\n\ninterface MonkeysProviderContexts {\n locale: Context<MonkeysLocaleContextValue>;\n theme: Context<MonkeysThemeContextValue>;\n direction: Context<MonkeysDirectionContextValue>;\n environment: Context<MonkeysEnvironmentContextValue>;\n}\n\n// Every bundled public entry contains this module. Keep only the Context\n// identities in a realm-wide registry so root, provider, and component\n// subpaths interoperate in both CJS and ESM builds. Provider values remain in\n// React trees, so SSR requests are isolated. Bump the contract key only when\n// these Context value shapes become intentionally incompatible.\nconst MONKEYS_PROVIDER_CONTEXTS_KEY = Symbol.for(\n '@inf-monkeys-tech/monkeys-design/provider-context@1',\n);\n\ntype MonkeysProviderContextHost = typeof globalThis & {\n [MONKEYS_PROVIDER_CONTEXTS_KEY]?: MonkeysProviderContexts;\n};\n\nfunction createMonkeysProviderContexts(): MonkeysProviderContexts {\n return Object.freeze({\n locale: createContext<MonkeysLocaleContextValue>({\n ...defaultMonkeysLocale,\n provided: false,\n }),\n theme: createContext<MonkeysThemeContextValue>({\n provided: false,\n }),\n direction: createContext<MonkeysDirectionContextValue>({\n provided: false,\n }),\n environment: createContext<MonkeysEnvironmentContextValue>({\n provided: false,\n environment: EMPTY_ENVIRONMENT,\n portal: EMPTY_PORTAL,\n }),\n });\n}\n\nfunction getMonkeysProviderContexts(): MonkeysProviderContexts {\n const host = globalThis as MonkeysProviderContextHost;\n const existing = host[MONKEYS_PROVIDER_CONTEXTS_KEY];\n if (existing) return existing;\n\n const contexts = createMonkeysProviderContexts();\n Object.defineProperty(host, MONKEYS_PROVIDER_CONTEXTS_KEY, {\n value: contexts,\n enumerable: false,\n configurable: false,\n writable: false,\n });\n return contexts;\n}\n\nconst providerContexts = getMonkeysProviderContexts();\n\nexport const MonkeysLocaleContext = providerContexts.locale;\n\nexport const MonkeysThemeContext = providerContexts.theme;\n\nexport const MonkeysDirectionContext = providerContexts.direction;\n\nexport const MonkeysEnvironmentContext = providerContexts.environment;\n\nfunction mergeAppearance<T extends { slots?: object; styles?: object }>(\n inherited: T | undefined,\n explicit: T | undefined,\n): T | undefined {\n if (explicit === undefined) return inherited;\n if (inherited === undefined) return explicit;\n\n return {\n ...inherited,\n ...explicit,\n slots:\n inherited.slots || explicit.slots\n ? { ...inherited.slots, ...explicit.slots }\n : undefined,\n styles:\n inherited.styles || explicit.styles\n ? { ...inherited.styles, ...explicit.styles }\n : undefined,\n };\n}\n\nexport function useMonkeysLocale() {\n try {\n const context = useContext(MonkeysLocaleContext);\n return context ?? { ...defaultMonkeysLocale, provided: false };\n } catch {\n return { ...defaultMonkeysLocale, provided: false };\n }\n}\n\nexport function useMonkeysLocaleMessages(): MonkeysLocaleMessages {\n return useContext(MonkeysLocaleContext).messages;\n}\n\nexport function useMonkeysResolvedTheme() {\n return useContext(MonkeysThemeContext).resolvedTheme;\n}\n\nexport function useMonkeysBaseAppearance(\n explicit?: BaseAppearance,\n): BaseAppearance | undefined {\n const inherited = useContext(MonkeysThemeContext).baseAppearance;\n return useMemo(\n () => mergeAppearance(inherited, explicit),\n [explicit, inherited],\n );\n}\n\nexport function useMonkeysDataExplorerAppearance(\n explicit?: DataExplorerAppearance,\n): DataExplorerAppearance | undefined {\n const inherited = useContext(MonkeysThemeContext).dataExplorerAppearance;\n return useMemo(\n () => mergeAppearance(inherited, explicit),\n [explicit, inherited],\n );\n}\n\nexport function useMonkeysStatusStates(): MonkeysStatusStatesConfig {\n return useContext(MonkeysThemeContext).statusStates ?? {};\n}\n\nexport function useMonkeysListFooter(): MonkeysListFooterConfig {\n return useContext(MonkeysThemeContext).listFooter ?? {};\n}\n\nexport function useMonkeysDirection() {\n return useContext(MonkeysDirectionContext).direction;\n}\n\nexport function useMonkeysEnvironment() {\n return useContext(MonkeysEnvironmentContext).environment;\n}\n\nexport function useMonkeysPortalOptions() {\n return useContext(MonkeysEnvironmentContext).portal;\n}\n\nexport function useMonkeysComponentAttributes(): MonkeysComponentAttributes {\n const locale = useContext(MonkeysLocaleContext);\n const theme = useContext(MonkeysThemeContext);\n const direction = useContext(MonkeysDirectionContext);\n const providerActive = locale.provided || theme.provided || direction.provided;\n\n return useMemo(\n () =>\n providerActive\n ? {\n dir: direction.direction,\n 'data-monkeys-direction': direction.direction,\n 'data-monkeys-locale': locale.locale,\n 'data-monkeys-theme': theme.themeId,\n 'data-monkeys-theme-mode': theme.resolvedTheme?.colorMode,\n }\n : {},\n [\n direction.direction,\n locale.locale,\n providerActive,\n theme.resolvedTheme?.colorMode,\n theme.themeId,\n ],\n );\n}\n\nexport function useMonkeysAssetIconResolver(): AssetIconResolver | undefined {\n return useContext(MonkeysEnvironmentContext).iconResolver;\n}\nexport function useMonkeysAssetImageResolver(): AssetImageResolver | undefined {\n return useContext(MonkeysEnvironmentContext).imageResolver;\n}\n","{\n \"seed\": {\n \"ui\": {\n \"color\": {\n \"page\": {\n \"$type\": \"color\",\n \"$value\": {\n \"colorSpace\": \"srgb\",\n \"components\": [\n 0.07450980392156863,\n 0.08235294117647059,\n 0.10196078431372549\n ],\n \"hex\": \"#13151A\"\n }\n },\n \"surface\": {\n \"$type\": \"color\",\n \"$value\": {\n \"colorSpace\": \"srgb\",\n \"components\": [\n 0.09019607843137255,\n 0.10588235294117647,\n 0.15294117647058825\n ],\n \"hex\": \"#171B27\"\n }\n },\n \"elevated\": {\n \"$type\": \"color\",\n \"$value\": {\n \"colorSpace\": \"srgb\",\n \"components\": [\n 0.13333333333333333,\n 0.15294117647058825,\n 0.2196078431372549\n ],\n \"hex\": \"#222738\"\n }\n },\n \"foreground\": {\n \"$type\": \"color\",\n \"$value\": {\n \"colorSpace\": \"srgb\",\n \"components\": [\n 1,\n 1,\n 1\n ],\n \"hex\": \"#FFFFFF\"\n }\n },\n \"muted\": {\n \"$type\": \"color\",\n \"$value\": {\n \"colorSpace\": \"srgb\",\n \"components\": [\n 0.7843137254901961,\n 0.7843137254901961,\n 0.7843137254901961\n ],\n \"hex\": \"#C8C8C8\"\n }\n },\n \"subtle\": {\n \"$type\": \"color\",\n \"$value\": {\n \"colorSpace\": \"srgb\",\n \"components\": [\n 0.6980392156862745,\n 0.6980392156862745,\n 0.6980392156862745\n ],\n \"hex\": \"#B2B2B2\"\n }\n },\n \"primary\": {\n \"$type\": \"color\",\n \"$value\": {\n \"colorSpace\": \"srgb\",\n \"components\": [\n 0.28627450980392155,\n 0.4666666666666667,\n 0.9215686274509803\n ],\n \"hex\": \"#4977EB\"\n }\n },\n \"lightEdgeBlue\": {\n \"$type\": \"color\",\n \"$value\": {\n \"colorSpace\": \"srgb\",\n \"components\": [\n 0.25882352941176473,\n 0.5215686274509804,\n 1\n ],\n \"hex\": \"#4285FF\"\n }\n },\n \"primaryHover\": {\n \"$type\": \"color\",\n \"$value\": {\n \"colorSpace\": \"srgb\",\n \"components\": [\n 0.3803921568627451,\n 0.5450980392156862,\n 0.9568627450980393\n ],\n \"hex\": \"#618BF4\"\n }\n },\n \"violet\": {\n \"$type\": \"color\",\n \"$value\": {\n \"colorSpace\": \"srgb\",\n \"components\": [\n 0.5764705882352941,\n 0.36470588235294116,\n 1\n ],\n \"hex\": \"#935DFF\"\n }\n },\n \"focus\": {\n \"$type\": \"color\",\n \"$value\": {\n \"colorSpace\": \"srgb\",\n \"components\": [\n 0.6627450980392157,\n 0.7333333333333333,\n 1\n ],\n \"hex\": \"#A9BBFF\"\n }\n },\n \"danger\": {\n \"$type\": \"color\",\n \"$value\": {\n \"colorSpace\": \"srgb\",\n \"components\": [\n 0.9411764705882353,\n 0.5019607843137255,\n 0.5019607843137255\n ],\n \"hex\": \"#F08080\"\n }\n },\n \"dangerBackground\": {\n \"$type\": \"color\",\n \"$value\": {\n \"colorSpace\": \"srgb\",\n \"components\": [\n 0.6078431372549019,\n 0.1450980392156863,\n 0.1843137254901961\n ],\n \"hex\": \"#9B252F\"\n }\n },\n \"success\": {\n \"$type\": \"color\",\n \"$value\": {\n \"colorSpace\": \"srgb\",\n \"components\": [\n 0.5176470588235295,\n 0.8588235294117647,\n 0.6784313725490196\n ],\n \"hex\": \"#84DBAD\"\n }\n },\n \"control\": {\n \"$type\": \"color\",\n \"$value\": {\n \"colorSpace\": \"srgb\",\n \"components\": [\n 0.47058823529411764,\n 0.47058823529411764,\n 0.47058823529411764\n ],\n \"hex\": \"#787878\",\n \"alpha\": 0.2\n }\n },\n \"border\": {\n \"$type\": \"color\",\n \"$value\": {\n \"colorSpace\": \"srgb\",\n \"components\": [\n 0.6862745098039216,\n 0.7333333333333333,\n 1\n ],\n \"hex\": \"#AFBBFF\",\n \"alpha\": 0.5\n }\n },\n \"info\": {\n \"$type\": \"color\",\n \"$value\": {\n \"colorSpace\": \"srgb\",\n \"components\": [\n 0,\n 0,\n 0\n ],\n \"hex\": \"#000000\",\n \"alpha\": 0.8\n }\n },\n \"previewInfo\": {\n \"$type\": \"color\",\n \"$value\": {\n \"colorSpace\": \"srgb\",\n \"components\": [\n 0,\n 0,\n 0\n ],\n \"hex\": \"#000000\",\n \"alpha\": 0.4\n }\n },\n \"blueGlow\": {\n \"$type\": \"color\",\n \"$value\": {\n \"colorSpace\": \"srgb\",\n \"components\": [\n 0.13725490196078433,\n 0.3411764705882353,\n 0.9176470588235294\n ],\n \"hex\": \"#2357EA\",\n \"alpha\": 0.35\n }\n },\n \"violetGlow\": {\n \"$type\": \"color\",\n \"$value\": {\n \"colorSpace\": \"srgb\",\n \"components\": [\n 0.4627450980392157,\n 0.19215686274509805,\n 1\n ],\n \"hex\": \"#7631FF\",\n \"alpha\": 0.5\n }\n },\n \"transparent\": {\n \"$type\": \"color\",\n \"$value\": {\n \"colorSpace\": \"srgb\",\n \"components\": [\n 0,\n 0,\n 0\n ],\n \"hex\": \"#000000\",\n \"alpha\": 0\n }\n },\n \"overlay\": {\n \"$type\": \"color\",\n \"$value\": {\n \"colorSpace\": \"srgb\",\n \"components\": [\n 0,\n 0,\n 0\n ],\n \"hex\": \"#000000\",\n \"alpha\": 0.65\n }\n },\n \"primaryAccessible\": {\n \"$type\": \"color\",\n \"$value\": {\n \"colorSpace\": \"srgb\",\n \"components\": [\n 0.23529411764705882,\n 0.38823529411764707,\n 0.8117647058823529\n ],\n \"hex\": \"#3C63CF\"\n }\n }\n }\n }\n },\n \"semantic\": {\n \"color\": {\n \"primary\": {\n \"dark\": {\n \"$type\": \"color\",\n \"$value\": \"{seed.ui.color.primaryAccessible}\"\n }\n }\n }\n },\n \"component\": {\n \"ui\": {\n \"page\": {\n \"$type\": \"color\",\n \"$value\": \"{seed.ui.color.page}\"\n },\n \"surface\": {\n \"$type\": \"color\",\n \"$value\": \"{seed.ui.color.surface}\"\n },\n \"elevated\": {\n \"$type\": \"color\",\n \"$value\": \"{seed.ui.color.elevated}\"\n },\n \"foreground\": {\n \"$type\": \"color\",\n \"$value\": \"{seed.ui.color.foreground}\"\n },\n \"muted\": {\n \"$type\": \"color\",\n \"$value\": \"{seed.ui.color.muted}\"\n },\n \"subtle\": {\n \"$type\": \"color\",\n \"$value\": \"{seed.ui.color.subtle}\"\n },\n \"primary\": {\n \"$type\": \"color\",\n \"$value\": \"{seed.ui.color.primary}\"\n },\n \"primaryHover\": {\n \"$type\": \"color\",\n \"$value\": \"{seed.ui.color.primaryHover}\"\n },\n \"violet\": {\n \"$type\": \"color\",\n \"$value\": \"{seed.ui.color.violet}\"\n },\n \"focus\": {\n \"$type\": \"color\",\n \"$value\": \"{semantic.color.primary.dark}\"\n },\n \"danger\": {\n \"$type\": \"color\",\n \"$value\": \"{seed.ui.color.danger}\"\n },\n \"dangerBackground\": {\n \"$type\": \"color\",\n \"$value\": \"{seed.ui.color.dangerBackground}\"\n },\n \"success\": {\n \"$type\": \"color\",\n \"$value\": \"{seed.ui.color.success}\"\n },\n \"control\": {\n \"$type\": \"color\",\n \"$value\": \"{seed.ui.color.control}\"\n },\n \"border\": {\n \"$type\": \"color\",\n \"$value\": \"{seed.ui.color.border}\"\n },\n \"info\": {\n \"$type\": \"color\",\n \"$value\": \"{seed.ui.color.info}\"\n },\n \"previewInfo\": {\n \"$type\": \"color\",\n \"$value\": {\n \"colorSpace\": \"srgb\",\n \"components\": [\n 0,\n 0,\n 0\n ],\n \"hex\": \"#000000\",\n \"alpha\": 0.65\n }\n },\n \"blueGlow\": {\n \"$type\": \"color\",\n \"$value\": \"{seed.ui.color.blueGlow}\"\n },\n \"violetGlow\": {\n \"$type\": \"color\",\n \"$value\": \"{seed.ui.color.violetGlow}\"\n },\n \"transparent\": {\n \"$type\": \"color\",\n \"$value\": \"{seed.ui.color.transparent}\"\n },\n \"overlay\": {\n \"$type\": \"color\",\n \"$value\": \"{seed.ui.color.overlay}\"\n },\n \"button\": {\n \"primary\": {\n \"background\": {\n \"$type\": \"color\",\n \"$value\": \"{semantic.color.primary.dark}\"\n },\n \"hover\": {\n \"$type\": \"color\",\n \"$value\": \"{semantic.color.primary.dark}\"\n }\n }\n },\n \"radius\": {\n \"panel\": {\n \"$type\": \"dimension\",\n \"$value\": {\n \"value\": 16,\n \"unit\": \"px\"\n }\n },\n \"card\": {\n \"$type\": \"dimension\",\n \"$value\": {\n \"value\": 16,\n \"unit\": \"px\"\n }\n },\n \"control\": {\n \"$type\": \"dimension\",\n \"$value\": {\n \"value\": 24,\n \"unit\": \"px\"\n }\n },\n \"info\": {\n \"$type\": \"dimension\",\n \"$value\": {\n \"value\": 12,\n \"unit\": \"px\"\n }\n }\n },\n \"controlHeight\": {\n \"$type\": \"dimension\",\n \"$value\": {\n \"value\": 34,\n \"unit\": \"px\"\n }\n },\n \"font\": {\n \"$type\": \"fontFamily\",\n \"$value\": [\n \"Inter\",\n \"Monkeys UI Sans\",\n \"Microsoft YaHei\",\n \"sans-serif\"\n ]\n },\n \"motion\": {\n \"press\": {\n \"$type\": \"duration\",\n \"$value\": {\n \"value\": 140,\n \"unit\": \"ms\"\n }\n },\n \"popup\": {\n \"$type\": \"duration\",\n \"$value\": {\n \"value\": 180,\n \"unit\": \"ms\"\n }\n },\n \"ease\": {\n \"$type\": \"cubicBezier\",\n \"$value\": [\n 0.2,\n 0.8,\n 0.2,\n 1\n ]\n }\n },\n \"header-background\": {\n \"$type\": \"color\",\n \"$value\": {\n \"colorSpace\": \"srgb\",\n \"components\": [\n 0.12941176470588237,\n 0.32941176470588235,\n 0.8509803921568627\n ],\n \"hex\": \"#2154D9\"\n }\n },\n \"sidebar-background\": {\n \"$type\": \"color\",\n \"$value\": {\n \"colorSpace\": \"srgb\",\n \"components\": [\n 0,\n 0,\n 0\n ],\n \"hex\": \"#000000\"\n }\n },\n \"sample-ink-light\": {\n \"$type\": \"color\",\n \"$value\": {\n \"colorSpace\": \"srgb\",\n \"components\": [\n 1,\n 1,\n 1\n ],\n \"hex\": \"#FFFFFF\"\n }\n },\n \"sample-ink-dark\": {\n \"$type\": \"color\",\n \"$value\": {\n \"colorSpace\": \"srgb\",\n \"components\": [\n 0,\n 0,\n 0\n ],\n \"hex\": \"#000000\"\n }\n }\n }\n }\n}\n","import { createContext, useContext, useEffect, useMemo, useState, type CSSProperties, type HTMLAttributes, type ReactNode } from 'react';\nimport { createPortal } from 'react-dom';\nimport { compileThemeTokens, getThemeTokenCssValue, type ThemeTokens } from '../../theme-system';\nimport { useMonkeysDirection, useMonkeysEnvironment, useMonkeysPortalOptions, useMonkeysResolvedTheme, useMonkeysLocale } from '../../provider/context';\nimport { zhCN, type MonkeysResolvedLocale } from '../../locale';\nimport * as TooltipPrimitive from '@radix-ui/react-tooltip';\nimport defaults from './tokens.json';\n\nexport const defaultThemeTokens = defaults as ThemeTokens;\nconst isGroup = (value: unknown): value is Record<string, unknown> => !!value && typeof value === 'object' && !Array.isArray(value);\n/** Groups merge recursively; a token is an atomic leaf, including its type. */\nexport function mergeThemeTokens(base: ThemeTokens, override?: ThemeTokens): ThemeTokens {\n function merge(a: unknown, b: unknown): unknown {\n if (b === undefined) return a;\n if (!isGroup(a) || !isGroup(b) || '$value' in b || '$value' in a) return b;\n const result = { ...a };\n for (const key of Object.keys(b)) result[key] = merge(a[key], b[key]);\n return result;\n }\n return merge(base, override) as ThemeTokens;\n}\n\n/** Uses the canonical compiler: no second token resolver or value formatter. */\nexport function compileUITheme(tokens: ThemeTokens): Record<string, string> {\n const compiled = compileThemeTokens(tokens, { colorMode: 'dark' });\n const variables: Record<string, string> = {};\n for (const path of Object.keys(compiled.cssValues).filter(path => path.startsWith('component.ui.'))) {\n const name = '--monkeys-ui-' + path.slice('component.ui.'.length).replace(/([a-z])([A-Z])/g, '$1-$2').replace(/\\./g, '-').toLowerCase();\n if (variables[name] !== undefined) throw new TypeError(`Duplicate UI variable: ${name}`);\n variables[name] = getThemeTokenCssValue(compiled, path)!;\n }\n for (const name of ['foreground', 'page', 'focus', 'button-primary-background', 'font']) {\n if (!variables['--monkeys-ui-' + name]) throw new TypeError(`Missing required UI token: ${name}`);\n }\n return variables;\n}\n\ninterface UITheme { tokens: ThemeTokens; variables: Record<string, string>; dir: 'ltr' | 'rtl' }\nconst UIThemeContext = createContext<UITheme | null>(null);\nconst PortalDepthContext = createContext(0);\nexport function useUIDirection(explicit?: 'ltr' | 'rtl') {\n const theme = useContext(UIThemeContext);\n const inherited = useMonkeysDirection();\n const environment = useMonkeysEnvironment();\n const [documentDirection, setDocumentDirection] = useState<'ltr' | 'rtl'>();\n useEffect(() => {\n if (explicit || theme?.dir || inherited) return;\n const document = environment.getDocument?.() ?? globalThis.document;\n const root = document?.documentElement;\n if (!root) return;\n const update = () => setDocumentDirection(root.dir === 'rtl' ? 'rtl' : 'ltr');\n update(); const observer = new MutationObserver(update); observer.observe(root, { attributes: true, attributeFilter: ['dir'] });\n return () => observer.disconnect();\n }, [explicit, theme?.dir, inherited, environment]);\n return explicit ?? theme?.dir ?? inherited ?? documentDirection;\n}\nexport function useUILocale(): MonkeysResolvedLocale & { provided: boolean } { const locale = useMonkeysLocale(); return locale.provided ? locale : { ...zhCN, provided: false }; }\nexport function useTooltipScope() { return useContext(UIThemeContext) !== null; }\nconst inputDocuments = new WeakMap<Document, { count: number; dispose: () => void }>();\nfunction observeInput(document: Document) {\n const existing = inputDocuments.get(document);\n if (existing) { existing.count++; return () => releaseInput(document); }\n const root = document.documentElement;\n const previous = root.getAttribute('data-monkeys-ui-input');\n const pointer = () => root.setAttribute('data-monkeys-ui-input', 'pointer');\n const keyboard = () => root.setAttribute('data-monkeys-ui-input', 'keyboard');\n document.addEventListener('pointerdown', pointer, true);\n document.addEventListener('keydown', keyboard, true);\n inputDocuments.set(document, { count: 1, dispose: () => { document.removeEventListener('pointerdown', pointer, true); document.removeEventListener('keydown', keyboard, true); if (previous === null) root.removeAttribute('data-monkeys-ui-input'); else root.setAttribute('data-monkeys-ui-input', previous); } });\n return () => releaseInput(document);\n}\nfunction releaseInput(document: Document) { const entry = inputDocuments.get(document); if (entry && --entry.count === 0) { entry.dispose(); inputDocuments.delete(document); } }\nexport interface ThemeProviderProps extends HTMLAttributes<HTMLDivElement> { tokens?: ThemeTokens }\nexport function ThemeProvider({ tokens, children, className, style, dir, ...rest }: ThemeProviderProps) {\n const parent = useContext(UIThemeContext);\n const inherited = useMonkeysResolvedTheme();\n const inheritedDirection = useMonkeysDirection();\n const document = useMemo(() => mergeThemeTokens(mergeThemeTokens(defaultThemeTokens, parent?.tokens ?? inherited?.contract), tokens), [parent?.tokens, inherited?.contract, tokens]);\n const variables = useMemo(() => compileUITheme(document), [document]);\n const direction = (dir === 'rtl' || dir === 'ltr' ? dir : parent?.dir ?? inheritedDirection ?? 'ltr');\n const context = useMemo(() => ({ tokens: document, variables, dir: direction }), [document, variables, direction]);\n return <UIThemeContext.Provider value={context}><TooltipPrimitive.Provider delayDuration={500} skipDelayDuration={300}><div {...rest} dir={direction} data-monkeys-ui-theme=\"dark\" className={['monkeys-ui-scope', className].filter(Boolean).join(' ')} style={{ ...variables, ...style } as CSSProperties}>{children}</div></TooltipPrimitive.Provider></UIThemeContext.Provider>;\n}\n\n/** Client-only host preserves the theme and direction across body portals. */\nexport function Portal({ children }: { children: ReactNode }) {\n const theme = useContext(UIThemeContext);\n const environment = useMonkeysEnvironment();\n const options = useMonkeysPortalOptions();\n const direction = useUIDirection();\n const depth = useContext(PortalDepthContext) + 1;\n const [host, setHost] = useState<Element | null>(null);\n useEffect(() => {\n const document = environment.getDocument?.() ?? globalThis.document;\n setHost(typeof options.container === 'function' ? options.container() : options.container ?? document?.body ?? null);\n return document ? observeInput(document) : undefined;\n }, [environment, options.container]);\n const content = <PortalDepthContext.Provider value={depth}><div className=\"monkeys-ui-scope monkeys-ui-portal\" dir={direction} data-monkeys-ui-theme=\"dark\" style={{ ...theme?.variables, '--monkeys-ui-overlay-layer': 1200 + depth * 10 } as CSSProperties}>{children}</div></PortalDepthContext.Provider>;\n return options.disabled ? content : host ? createPortal(content, host) : null;\n}\n","/** Sample colors are host content. Pick the stronger black/white text contrast. */\nexport function sampleInk(color?: string) {\n if (!color || !/^#([\\da-f]{3}|[\\da-f]{6})$/i.test(color)) return 'light';\n const hex = color.slice(1).length === 3 ? [...color.slice(1)].map(value => value + value).join('') : color.slice(1);\n const channels = [0, 2, 4].map(index => {\n const value = parseInt(hex.slice(index, index + 2), 16) / 255;\n return value <= 0.04045 ? value / 12.92 : ((value + 0.055) / 1.055) ** 2.4;\n });\n const luminance = channels[0] * 0.2126 + channels[1] * 0.7152 + channels[2] * 0.0722;\n return (luminance + 0.05) / 0.05 >= 1.05 / (luminance + 0.05) ? 'dark' : 'light';\n}\n","import { useEffect, useId, useRef, useState, type ComponentProps } from 'react';\nimport tokens from './theme/tokens.json';\n\ntype ShaderModule = typeof import('shaders/react');\nexport type ButtonLightEdgeOptions = Partial<Pick<ComponentProps<ShaderModule['LightEdge']>,\n 'colorA' | 'colorB' | 'colorSpace' | 'thickness' | 'softness' | 'intensity' | 'bloom' | 'spots' | 'spotSize' | 'pulse' | 'smoke' | 'smokeSize' | 'speed' | 'seed'>>;\n\n/** Decorative only: the button owns sizing, clipping, focus, and pointer input. */\nexport function ButtonLightEdge(options: ButtonLightEdgeOptions) {\n const filterId = `button-light-edge-${useId().replace(/:/g, '')}`;\n const hostRef = useRef<HTMLSpanElement>(null);\n const [module, setModule] = useState<ShaderModule | null>(null);\n const [enabled, setEnabled] = useState(false);\n const [ready, setReady] = useState(false);\n const [shape, setShape] = useState<Record<string, number | string> | null>(null);\n\n useEffect(() => {\n const motion = window.matchMedia('(prefers-reduced-motion: reduce)');\n const colors = window.matchMedia('(forced-colors: active)');\n const update = () => setEnabled(!motion.matches && !colors.matches);\n update();\n motion.addEventListener('change', update);\n colors.addEventListener('change', update);\n return () => { motion.removeEventListener('change', update); colors.removeEventListener('change', update); };\n }, []);\n\n useEffect(() => {\n if (!enabled) return;\n let active = true;\n import('shaders/react').then(loaded => { if (active) setModule(loaded); }).catch(() => {});\n return () => { active = false; };\n }, [enabled]);\n\n useEffect(() => {\n const host = hostRef.current;\n const button = host?.closest('button');\n if (!button || !host) return;\n const update = () => {\n const width = host.clientWidth;\n const height = host.clientHeight;\n if (!width || !height) return;\n const radiusValue = getComputedStyle(button).borderTopLeftRadius;\n const radius = radiusValue.endsWith('%')\n ? Math.min(width, height) * parseFloat(radiusValue) / 100\n : parseFloat(radiusValue) || 0;\n const inset = 1.5;\n setShape({ type: 'roundedRectSDF', radius: Math.max(0.01, width / (2 * height) - inset / height), height: Math.max(0.01, 0.5 - inset / height), rounding: Math.max(0, Math.min(radius - inset, height / 2 - inset)) / height });\n };\n update();\n const observer = new ResizeObserver(update);\n observer.observe(button);\n return () => observer.disconnect();\n }, []);\n\n return <span ref={hostRef} className=\"monkeys-ui-button-light-edge-mask\" data-ready={ready || undefined}>\n <svg width=\"0\" height=\"0\" aria-hidden=\"true\" className=\"monkeys-ui-button-light-edge-defs\">\n <defs>\n {/* Composite a diffuse glow and a soft flow from the same canvas. */}\n <filter id={filterId} x=\"-30%\" y=\"-100%\" width=\"160%\" height=\"300%\" colorInterpolationFilters=\"sRGB\">\n <feGaussianBlur in=\"SourceGraphic\" stdDeviation=\"4.5\" result=\"glow\" />\n <feGaussianBlur in=\"SourceGraphic\" stdDeviation=\"1\" result=\"flow\" />\n <feMerge><feMergeNode in=\"glow\" /><feMergeNode in=\"flow\" /></feMerge>\n </filter>\n </defs>\n </svg>\n <span className=\"monkeys-ui-button-light-edge-flow\" style={{ filter: `url(#${filterId})` }}>\n <span className=\"monkeys-ui-button-light-edge-ambient\" />\n {enabled && module && shape ? <module.Shader disableTelemetry style={{ width: '100%', height: '100%' }} onReady={() => setReady(true)}>\n <module.LightEdge colorA={tokens.seed.ui.color.lightEdgeBlue.$value.hex} colorB={tokens.seed.ui.color.violetGlow.$value.hex} thickness={0.48} softness={1} intensity={0.9} bloom={0.2} spots={1} spotSize={0.6} smoke={0.12} smokeSize={0.65} speed={0.45} {...options} stops={null} shape={shape} />\n </module.Shader> : null}\n </span>\n </span>;\n}\n","import { useEffect, useState } from 'react';\nimport { createPortal } from 'react-dom';\n\nimport {\n useMonkeysEnvironment,\n useMonkeysPortalOptions,\n} from '../../provider/context';\nimport type { BasePortalContainer, BasePortalProps } from './types';\n\nfunction resolveContainerValue(\n value: BasePortalContainer,\n source: string,\n): Element | null {\n const candidate = typeof value === 'function' ? value() : value;\n if (candidate === null) return null;\n if (\n !candidate ||\n typeof candidate !== 'object' ||\n candidate.nodeType !== 1\n ) {\n throw new TypeError(`${source} must resolve to an Element or null.`);\n }\n return candidate;\n}\n\ninterface ResolveBasePortalContainerOptions {\n explicitProvided: boolean;\n explicitContainer?: BasePortalContainer;\n providerProvided: boolean;\n providerContainer?: BasePortalContainer;\n getDocument?: () => Document | null;\n}\n\nexport function resolveBasePortalContainer({\n explicitProvided,\n explicitContainer,\n providerProvided,\n providerContainer,\n getDocument,\n}: ResolveBasePortalContainerOptions): Element | null {\n if (explicitProvided) {\n return resolveContainerValue(\n explicitContainer as BasePortalContainer,\n 'BasePortal container',\n );\n }\n if (providerProvided) {\n return resolveContainerValue(\n providerContainer as BasePortalContainer,\n 'MonkeysProvider portal.container',\n );\n }\n if (!getDocument) return null;\n\n const ownerDocument = getDocument();\n if (ownerDocument === null) return null;\n if (\n !ownerDocument ||\n typeof ownerDocument !== 'object' ||\n !('body' in ownerDocument)\n ) {\n throw new TypeError(\n 'MonkeysProvider environment.getDocument must resolve to a Document or null.',\n );\n }\n return resolveContainerValue(\n ownerDocument.body,\n 'MonkeysProvider environment.getDocument().body',\n );\n}\n\nexport function BasePortal(props: BasePortalProps) {\n const environment = useMonkeysEnvironment();\n const portalOptions = useMonkeysPortalOptions();\n const [mounted, setMounted] = useState(false);\n\n useEffect(() => {\n setMounted(true);\n }, []);\n\n if (props.disabled !== undefined && typeof props.disabled !== 'boolean') {\n throw new TypeError('BasePortal disabled must be a boolean.');\n }\n if (props.inline !== undefined && typeof props.inline !== 'boolean') {\n throw new TypeError('BasePortal inline must be a boolean.');\n }\n\n const disabled = props.disabled ?? portalOptions.disabled ?? false;\n if (!mounted || disabled || props.inline) {\n return <>{props.children}</>;\n }\n\n const container = resolveBasePortalContainer({\n explicitProvided: props.container !== undefined,\n explicitContainer: props.container,\n providerProvided: portalOptions.container !== undefined,\n providerContainer: portalOptions.container,\n getDocument: environment.getDocument,\n });\n\n return container\n ? createPortal(props.children, container)\n : <>{props.children}</>;\n}\n","import { useEffect, useState, type ReactNode } from 'react';\nimport { createPortal } from 'react-dom';\n\nimport {\n useMonkeysEnvironment,\n useMonkeysPortalOptions,\n type MonkeysPortalContainer,\n} from '../../../provider/context';\nimport { resolveBasePortalContainer } from '../BasePortal';\n\ninterface ResolveBaseOverlayPortalStateOptions {\n mounted: boolean;\n explicitDisabled?: boolean;\n explicitContainer?: MonkeysPortalContainer;\n providerDisabled?: boolean;\n providerContainer?: MonkeysPortalContainer;\n getDocument?: () => Document | null;\n}\n\ninterface BaseOverlayPortalInlineState {\n mounted: boolean;\n disabled: boolean;\n shouldPortal: false;\n container: null;\n radixPortalProps: undefined;\n}\n\ninterface BaseOverlayPortalReadyState {\n mounted: true;\n disabled: false;\n shouldPortal: true;\n container: Element;\n radixPortalProps: Readonly<{ container: Element }>;\n}\n\nexport type BaseOverlayPortalState =\n | BaseOverlayPortalInlineState\n | BaseOverlayPortalReadyState;\n\nexport function resolveBaseOverlayPortalState({\n mounted,\n explicitDisabled,\n explicitContainer,\n providerDisabled,\n providerContainer,\n getDocument,\n}: ResolveBaseOverlayPortalStateOptions): BaseOverlayPortalState {\n const disabled = explicitDisabled ?? providerDisabled ?? false;\n if (!mounted || disabled) {\n return {\n mounted,\n disabled,\n shouldPortal: false,\n container: null,\n radixPortalProps: undefined,\n };\n }\n\n const container = resolveBasePortalContainer({\n explicitProvided: explicitContainer !== undefined,\n explicitContainer,\n providerProvided: providerContainer !== undefined,\n providerContainer,\n getDocument,\n });\n\n if (!container) {\n return {\n mounted: true,\n disabled: false,\n shouldPortal: false,\n container: null,\n radixPortalProps: undefined,\n };\n }\n\n return {\n mounted: true,\n disabled: false,\n shouldPortal: true,\n container,\n radixPortalProps: Object.freeze({ container }),\n };\n}\n\nexport interface UseBaseOverlayPortalOptions {\n container?: MonkeysPortalContainer;\n disabled?: boolean;\n}\n\nfunction getDefaultDocument(): Document | null {\n return globalThis.document ?? null;\n}\n\nexport function useBaseOverlayPortal(\n options: UseBaseOverlayPortalOptions = {},\n): BaseOverlayPortalState {\n const environment = useMonkeysEnvironment();\n const portalOptions = useMonkeysPortalOptions();\n const [mounted, setMounted] = useState(false);\n\n useEffect(() => {\n setMounted(true);\n }, []);\n\n return resolveBaseOverlayPortalState({\n mounted,\n explicitDisabled: options.disabled,\n explicitContainer: options.container,\n providerDisabled: portalOptions.disabled,\n providerContainer: portalOptions.container,\n getDocument: environment.getDocument ?? getDefaultDocument,\n });\n}\n\nexport interface BaseOverlayPortalProps extends UseBaseOverlayPortalOptions {\n children?: ReactNode;\n}\n\nexport function renderBaseOverlayPortalContent(\n children: ReactNode,\n portal: BaseOverlayPortalState,\n) {\n return portal.shouldPortal\n ? createPortal(children, portal.container)\n : <>{children}</>;\n}\n\nexport function BaseOverlayPortal({\n children,\n container,\n disabled,\n}: BaseOverlayPortalProps) {\n const portal = useBaseOverlayPortal({ container, disabled });\n return renderBaseOverlayPortalContent(children, portal);\n}\n","import type { ReactNode } from 'react';\nimport { twMerge } from 'tailwind-merge';\n\nexport function cn(...parts: Array<string | false | null | undefined>) {\n return twMerge(parts.filter(Boolean).join(' '));\n}\n\nexport function hasRenderableNode(node: ReactNode) {\n return node !== undefined && node !== null && typeof node !== 'boolean';\n}\n\nexport function hasNonEmptyRenderableNode(node: ReactNode) {\n if (typeof node === 'string') return node.trim().length > 0;\n return hasRenderableNode(node);\n}\n","import type {\n BaseAppearance,\n BaseBackground,\n BaseBorder,\n BaseControlTone,\n BaseDensity,\n BaseHeadingSize,\n BaseLayoutAlign,\n BaseLayoutJustify,\n BaseLayoutLength,\n BaseListMarker,\n BaseListSpacing,\n BaseRadius,\n BaseResolvedTheme,\n BaseThemePresetId,\n BaseThemeSlots,\n BaseThemeStyles,\n BaseTypographySize,\n BaseTypographyTone,\n} from './types';\nimport { cn } from './utils';\n\ntype ResolvedSlots = Required<BaseThemeSlots>;\n\nconst emptyStyles: BaseThemeStyles = {};\n\nconst motionBase =\n 'motion-safe:transition motion-safe:duration-300 motion-safe:ease-out';\n\nconst motionInteractive =\n 'motion-safe:transition-all motion-safe:duration-300 motion-safe:ease-out';\n\nconst motionTransform =\n 'motion-safe:transition-transform motion-safe:duration-300 motion-safe:ease-out';\nconst tableScrollbarChrome = cn(\n '[scrollbar-width:thin]',\n '[scrollbar-color:hsl(var(--muted-foreground)/0.45)_transparent]',\n '[&::-webkit-scrollbar]:h-2 [&::-webkit-scrollbar]:w-2',\n '[&::-webkit-scrollbar-button]:hidden [&::-webkit-scrollbar-button]:h-0 [&::-webkit-scrollbar-button]:w-0 [&::-webkit-scrollbar-button]:bg-transparent',\n '[&::-webkit-scrollbar-button:single-button]:hidden [&::-webkit-scrollbar-button:single-button]:h-0 [&::-webkit-scrollbar-button:single-button]:w-0',\n '[&::-webkit-scrollbar-button:double-button]:hidden [&::-webkit-scrollbar-button:double-button]:h-0 [&::-webkit-scrollbar-button:double-button]:w-0',\n '[&::-webkit-scrollbar-corner]:bg-transparent',\n '[&::-webkit-scrollbar-track]:bg-transparent',\n '[&:has(thead.sticky)::-webkit-scrollbar-track]:mt-[var(--base-table-header-height)]',\n '[&::-webkit-scrollbar-thumb]:rounded-full [&::-webkit-scrollbar-thumb]:bg-muted-foreground/40',\n 'hover:[&::-webkit-scrollbar-thumb]:bg-muted-foreground/55',\n);\nconst tableStickyHeaderCells = cn(\n '[&.sticky_th]:sticky [&.sticky_th]:top-0 [&.sticky_th]:z-[2]',\n '[&.sticky_th]:bg-[var(--base-table-sticky-header-bg)]',\n '[&.sticky_th]:shadow-[inset_0_-1px_0_var(--base-table-header-separator)]',\n);\n\nconst baseSlots: ResolvedSlots = {\n buttonBase:\n cn(\n 'group/button inline-flex min-w-0 items-center justify-center gap-2 rounded-md border px-3 text-sm font-medium focus-visible:outline-hidden',\n 'cursor-pointer disabled:!cursor-not-allowed',\n motionInteractive,\n ),\n buttonDefault:\n 'border-border bg-background text-foreground hover:bg-accent/60',\n buttonPrimary:\n 'border-primary/20 bg-primary/10 text-primary hover:bg-primary/15',\n buttonSuccess:\n 'border-[hsl(var(--success,142_72%_29%)_/_0.30)] bg-[hsl(var(--success,142_72%_29%)_/_0.10)] text-[hsl(var(--success,142_72%_29%))] hover:bg-[hsl(var(--success,142_72%_29%)_/_0.15)]',\n buttonWarning:\n 'border-[hsl(var(--warning,45_93%_47%)_/_0.30)] bg-[hsl(var(--warning,45_93%_47%)_/_0.10)] text-[hsl(var(--warning-foreground,28_73%_26%))] hover:bg-[hsl(var(--warning,45_93%_47%)_/_0.15)]',\n buttonDanger:\n 'border-destructive/20 bg-destructive/10 text-destructive-text hover:bg-destructive/15',\n buttonMuted:\n 'border-border/60 bg-muted/45 text-muted-foreground hover:bg-muted/70 hover:text-foreground',\n buttonActive: 'border-primary/35 bg-primary/10 text-primary',\n buttonDisabled: '!cursor-not-allowed opacity-60',\n buttonIconOnly: 'w-9 px-0',\n buttonIcon:\n 'inline-flex h-4 w-4 shrink-0 items-center justify-center text-[inherit] [&_*]:!text-[inherit] [&_svg]:!stroke-current [&_svg_*]:!stroke-current',\n buttonLabel: 'min-w-0 truncate',\n badgeBase:\n cn(\n 'inline-flex max-w-full items-center gap-1.5 rounded-full border px-2 py-0.5 text-xs font-medium',\n motionBase,\n ),\n badgeDefault: 'border-border/60 bg-background text-foreground',\n badgePrimary: 'border-primary/30 bg-primary/10 text-primary',\n badgeSuccess: 'border-[hsl(var(--success,142_72%_29%)_/_0.30)] bg-[hsl(var(--success,142_72%_29%)_/_0.10)] text-[hsl(var(--success,142_72%_29%))]',\n badgeWarning: 'border-[hsl(var(--warning,45_93%_47%)_/_0.30)] bg-[hsl(var(--warning,45_93%_47%)_/_0.10)] text-[hsl(var(--warning-foreground,28_73%_26%))]',\n badgeDanger: 'border-destructive/30 bg-destructive/10 text-destructive-text',\n badgeMuted: 'border-border/60 bg-muted text-muted-foreground',\n badgeIcon: 'inline-flex h-3.5 w-3.5 shrink-0 items-center justify-center',\n badgeLabel: 'min-w-0 truncate',\n textRoot: 'min-w-0 break-words leading-6',\n textSizeXs: 'text-xs',\n textSizeSm: 'text-sm',\n textSizeMd: 'text-base',\n textSizeLg: 'text-lg',\n textSizeXl: 'text-xl',\n typographyToneDefault: 'text-foreground',\n typographyToneMuted: 'text-muted-foreground',\n typographyTonePrimary: 'text-primary',\n typographyToneSuccess: 'text-emerald-700 dark:text-emerald-400',\n typographyToneWarning: 'text-amber-700 dark:text-amber-400',\n typographyToneDanger: 'text-destructive-text',\n typographyToneInherit: 'text-inherit',\n headingRoot: 'min-w-0 break-words font-semibold tracking-tight',\n headingSizeXs: 'text-sm leading-5',\n headingSizeSm: 'text-base leading-6',\n headingSizeMd: 'text-lg leading-7',\n headingSizeLg: 'text-xl leading-7',\n headingSizeXl: 'text-2xl leading-8',\n headingSize2xl: 'text-3xl leading-9',\n linkRoot:\n 'inline break-words underline decoration-current/40 underline-offset-4 hover:decoration-current focus-visible:outline-hidden focus-visible:ring-2 focus-visible:ring-primary/30',\n codeInline:\n 'rounded border border-border/70 bg-muted/60 px-1.5 py-0.5 font-mono text-[0.875em] leading-[1.45] text-foreground',\n codeBlock:\n 'm-0 max-w-full overflow-x-auto rounded-md border border-border/70 bg-muted/60 p-4 text-foreground',\n codeContent: 'font-mono text-sm leading-6',\n kbdRoot:\n 'inline-flex min-h-5 items-center rounded border border-border bg-muted/70 px-1.5 font-mono text-[0.75em] font-medium leading-5 text-foreground shadow-[inset_0_-1px_0_hsl(var(--monkeys-color-border))]',\n listRoot: 'm-0 min-w-0 list-outside break-words ps-5 text-foreground',\n listSpacingCompact: '[&>li+li]:mt-1',\n listSpacingDefault: '[&>li+li]:mt-2',\n listSpacingRelaxed: '[&>li+li]:mt-3',\n listMarkerNone: 'list-none ps-0',\n listMarkerDisc: 'list-disc',\n listMarkerCircle: 'list-[circle]',\n listMarkerSquare: 'list-[square]',\n listMarkerDecimal: 'list-decimal',\n listMarkerLowerAlpha: 'list-[lower-alpha]',\n listMarkerUpperAlpha: 'list-[upper-alpha]',\n listItem: 'min-w-0 ps-1 leading-6 marker:text-muted-foreground',\n stackRoot: 'flex min-w-0 flex-col',\n inlineRoot: 'flex min-w-0 flex-row',\n gridRoot: 'grid min-w-0',\n containerRoot: 'mx-auto w-full min-w-0',\n aspectRatioRoot:\n 'relative min-w-0 overflow-hidden [&>*]:h-full [&>*]:w-full',\n spinnerRoot:\n 'inline-flex shrink-0 items-center justify-center text-current align-middle',\n spinnerIndicator:\n 'h-5 w-5 rounded-full border-2 border-current border-r-transparent motion-safe:animate-spin motion-reduce:animate-none',\n visuallyHiddenRoot: 'sr-only',\n visuallyHiddenFocusable:\n 'focus:not-sr-only focus:fixed focus:left-4 focus:top-4 focus:z-[1000] focus:rounded-md focus:bg-background focus:px-4 focus:py-2 focus:text-foreground focus:shadow-lg focus:outline-hidden focus:ring-2 focus:ring-ring focus-within:not-sr-only focus-within:fixed focus-within:left-4 focus-within:top-4 focus-within:z-[1000] focus-within:rounded-md focus-within:bg-background focus-within:px-4 focus-within:py-2 focus-within:text-foreground focus-within:shadow-lg focus-within:ring-2 focus-within:ring-ring',\n fieldsetRoot: 'min-w-0 border-0 p-0 text-foreground',\n fieldsetLegend: 'min-w-0 text-sm font-semibold leading-6 text-foreground',\n fieldsetDescription: 'mt-1 text-sm leading-5 text-muted-foreground',\n fieldsetError: 'mt-1 text-sm leading-5 text-destructive-text',\n fieldsetContent: 'mt-3 grid min-w-0 gap-3',\n stepsRoot: 'm-0 min-w-0 list-none p-0 text-foreground',\n stepsHorizontal:\n 'flex w-full max-w-full items-start overflow-x-auto pb-2',\n stepsVertical: 'grid',\n stepsItem: 'relative min-w-0',\n stepsItemHorizontal: 'flex min-w-52 flex-1 items-start',\n stepsItemVertical: 'pb-6 last:pb-0',\n stepsTrigger:\n 'flex min-w-0 flex-1 items-start gap-3 rounded-md border-0 bg-transparent p-1 text-start text-inherit',\n stepsTriggerInteractive:\n 'cursor-pointer hover:bg-accent/50 focus-visible:outline-hidden focus-visible:ring-2 focus-visible:ring-ring focus-visible:ring-offset-2 motion-safe:transition motion-safe:duration-300 motion-safe:ease-out',\n stepsTriggerDisabled: '!cursor-not-allowed opacity-60',\n stepsIndicator:\n 'relative z-[1] inline-flex h-7 w-7 shrink-0 items-center justify-center rounded-full border text-xs font-semibold',\n stepsIndicatorPending: 'border-border bg-background text-muted-foreground',\n stepsIndicatorCurrent: 'border-primary/50 bg-primary/10 text-primary',\n stepsIndicatorCompleted:\n 'border-primary bg-primary text-primary-foreground',\n stepsIndicatorError:\n 'border-destructive bg-destructive text-destructive-foreground',\n stepsContent: 'grid min-w-0 gap-1 pt-0.5',\n stepsLabel: 'min-w-0 break-words text-sm font-medium leading-5',\n stepsDescription:\n 'min-w-0 break-words text-sm leading-5 text-muted-foreground',\n stepsStatus: 'sr-only',\n stepsConnector: 'shrink-0 bg-border',\n stepsConnectorHorizontal: 'mt-3.5 h-px w-8',\n stepsConnectorVertical:\n 'absolute bottom-0 top-8 start-3.5 w-px -translate-x-1/2',\n stepsConnectorCompleted: 'bg-primary/60',\n stepsConnectorError: 'bg-destructive/60',\n scrollAreaViewport: 'min-h-0 min-w-0',\n numberInputControl: 'tabular-nums',\n numberInputStepControls:\n 'me-1 flex shrink-0 self-stretch overflow-hidden border-s border-border',\n numberInputStepButton:\n 'flex min-h-6 w-7 cursor-pointer items-center justify-center border-0 bg-transparent px-1 text-xs leading-none text-muted-foreground hover:bg-accent hover:text-foreground focus-visible:z-[1] focus-visible:outline-hidden focus-visible:ring-2 focus-visible:ring-inset focus-visible:ring-ring disabled:!cursor-not-allowed disabled:opacity-40',\n passwordInputControl: 'pe-2',\n passwordInputToggle:\n 'me-1 inline-flex min-h-7 shrink-0 cursor-pointer items-center justify-center rounded px-2 text-xs font-medium text-muted-foreground hover:bg-accent hover:text-foreground focus-visible:outline-hidden focus-visible:ring-2 focus-visible:ring-ring disabled:!cursor-not-allowed disabled:opacity-40',\n inputGroupRoot:\n cn(\n 'relative flex min-w-0 items-stretch overflow-hidden rounded-md border border-border bg-background text-foreground focus-within:border-primary/50 focus-within:ring-2 focus-within:ring-ring/30',\n motionBase,\n ),\n inputGroupInvalid:\n 'border-destructive/55 focus-within:border-destructive/70 focus-within:ring-destructive/25',\n inputGroupDisabled: '!cursor-not-allowed bg-muted/35',\n inputGroupContent:\n 'flex min-w-0 flex-1 items-stretch [&>*]:min-w-0',\n inputGroupStartElement:\n 'inline-flex shrink-0 items-center justify-center ps-3 pe-1 text-foreground/75',\n inputGroupEndElement:\n 'inline-flex shrink-0 items-center justify-center ps-1 pe-3 text-foreground/75',\n inputGroupStartAddon:\n 'inline-flex max-w-[min(40%,16rem)] shrink-0 items-center overflow-hidden border-e border-border bg-muted/60 px-3 text-sm text-foreground/75 text-ellipsis whitespace-nowrap [&>*]:min-w-0',\n inputGroupEndAddon:\n 'inline-flex max-w-[min(40%,16rem)] shrink-0 items-center overflow-hidden border-s border-border bg-muted/60 px-3 text-sm text-foreground/75 text-ellipsis whitespace-nowrap [&>*]:min-w-0',\n panelRoot:\n cn(\n 'group relative flex min-w-0 flex-col overflow-hidden rounded-lg border border-border/70 bg-background',\n motionInteractive,\n ),\n panelInteractive:\n 'cursor-pointer hover:shadow-md',\n panelSelected: 'border-primary/45 bg-primary/5',\n panelDisabled: '!cursor-not-allowed opacity-60',\n panelMedia:\n 'shrink-0 overflow-hidden',\n panelHeader: 'min-w-0 p-token-lg',\n panelTitle: 'min-w-0 truncate text-sm font-semibold leading-none text-foreground',\n panelDescription: 'mt-1 text-sm leading-5 text-foreground/75',\n panelBody: 'min-w-0 px-token-lg pb-token-lg text-sm text-foreground',\n panelBodyStandalone: 'pt-token-lg',\n panelFooter: 'shrink-0 border-t border-border/60 px-token-lg py-token-md',\n stateRoot:\n cn(\n 'flex min-h-48 flex-col items-center justify-center rounded-lg border border-border/70 bg-background px-6 py-10 text-center',\n motionBase,\n ),\n stateIcon:\n 'mb-token-lg flex h-12 w-12 items-center justify-center rounded-full bg-muted text-muted-foreground motion-safe:animate-in motion-safe:fade-in',\n stateTitle: 'text-sm font-semibold text-foreground',\n stateDescription: 'mt-2 max-w-md text-sm leading-6 text-muted-foreground',\n stateActions: 'mt-token-xl flex flex-wrap items-center justify-center gap-token-sm',\n loadingSpinner:\n 'h-5 w-5 motion-safe:animate-spin motion-reduce:animate-none',\n fieldRoot: 'grid min-w-0 gap-token-md',\n fieldLabelRow: 'flex min-w-0 items-center justify-between gap-token-md',\n fieldLabel: 'min-w-0 text-sm font-medium leading-none text-foreground',\n fieldRequired: 'text-destructive-text',\n fieldDescription: 'text-sm leading-5 text-muted-foreground',\n fieldMessage: 'text-sm leading-5 text-muted-foreground',\n fieldControl: 'min-w-0',\n controlWrapper:\n cn(\n 'relative flex min-w-0 items-center rounded-md border border-border bg-background text-foreground focus-within:border-primary/35',\n motionBase,\n ),\n controlBase:\n 'min-w-0 flex-1 bg-transparent px-3 text-sm text-foreground outline-hidden placeholder:text-muted-foreground disabled:!cursor-not-allowed',\n controlInput: 'h-9',\n controlTextarea: 'min-h-24 resize-y py-2 leading-6',\n controlSelect: 'h-9 cursor-pointer appearance-none pr-9 disabled:!cursor-not-allowed',\n controlIcon:\n 'pointer-events-none ml-3 inline-flex h-4 w-4 shrink-0 items-center justify-center text-muted-foreground',\n controlTrailing:\n 'mr-3 inline-flex shrink-0 items-center justify-center text-muted-foreground',\n controlInvalid:\n 'border-destructive/45 focus-within:border-destructive/60',\n controlDisabled: '!cursor-not-allowed opacity-60',\n controlReadOnly: 'bg-muted/35',\n selectChevron:\n cn(\n 'pointer-events-none absolute right-3 top-1/2 h-2 w-2 -translate-y-1/2 rotate-45 border-b border-r border-current text-muted-foreground',\n motionTransform,\n ),\n selectMenu:\n 'absolute left-0 right-0 top-[calc(100%+0.375rem)] z-50 max-h-60 overflow-auto rounded-md border border-border bg-background p-1 text-sm text-foreground shadow-lg outline-hidden',\n selectOption:\n cn(\n 'flex min-h-8 w-full min-w-0 cursor-pointer items-center rounded-sm px-2.5 py-1.5 text-left text-sm text-foreground',\n motionInteractive,\n ),\n selectOptionActive: 'bg-accent text-accent-foreground',\n selectOptionSelected: 'bg-primary/10 text-primary',\n selectOptionDisabled: '!cursor-not-allowed opacity-50',\n selectPlaceholder: 'text-muted-foreground',\n selectNative: 'sr-only',\n switchRoot: 'inline-flex min-w-0 cursor-pointer items-start gap-3',\n switchInput: 'sr-only',\n switchTrack:\n cn(\n 'relative mt-0.5 inline-flex h-6 w-10 shrink-0 items-center rounded-full border border-border bg-muted focus-within:border-primary/35',\n motionBase,\n ),\n switchThumb:\n cn(\n 'h-4 w-4 translate-x-1 rounded-full bg-background shadow-sm',\n motionTransform,\n ),\n switchChecked: 'border-primary/40 bg-primary/80 text-primary-foreground',\n switchDisabled: '!cursor-not-allowed opacity-60',\n switchContent: 'grid min-w-0 gap-1',\n switchLabel: 'text-sm font-medium leading-none text-foreground',\n switchDescription: 'text-sm leading-5 text-muted-foreground',\n checkboxRoot: 'inline-flex min-w-0 cursor-pointer items-start gap-3',\n checkboxInput: 'sr-only',\n checkboxBox:\n cn(\n 'mt-0.5 inline-flex h-4 w-4 shrink-0 items-center justify-center rounded border border-border bg-background text-primary focus-within:border-primary/40',\n motionBase,\n ),\n checkboxBoxChecked: 'border-primary/45 bg-primary text-primary-foreground',\n checkboxBoxInvalid: 'border-destructive/50',\n checkboxIndicator: 'text-xs font-bold leading-none',\n checkboxDisabled: '!cursor-not-allowed opacity-60',\n checkboxContent: 'grid min-w-0 gap-1',\n checkboxLabel: 'text-sm font-medium leading-none text-foreground',\n checkboxDescription: 'text-sm leading-5 text-muted-foreground',\n radioGroupRoot: 'grid min-w-0 gap-2',\n radioOption:\n cn(\n 'inline-flex min-w-0 cursor-pointer items-start gap-3 rounded-md border border-border/60 bg-background px-3 py-2 text-sm',\n motionInteractive,\n 'hover:bg-muted/35',\n ),\n radioInput: 'sr-only',\n radioMarker:\n cn(\n 'mt-0.5 inline-flex h-4 w-4 shrink-0 items-center justify-center rounded-full border border-border bg-background text-primary focus-within:border-primary/40',\n motionBase,\n ),\n radioMarkerChecked: 'border-primary/50 bg-primary/10',\n radioIndicator: 'h-2 w-2 rounded-full bg-primary',\n radioOptionDisabled: '!cursor-not-allowed opacity-60 hover:bg-background',\n radioContent: 'grid min-w-0 gap-1',\n radioLabel: 'text-sm font-medium leading-none text-foreground',\n radioDescription: 'text-sm leading-5 text-muted-foreground',\n dialogRoot: 'relative',\n dialogTrigger: '',\n dialogTriggerDisabled: '!cursor-not-allowed opacity-60',\n dialogOverlay:\n 'fixed inset-0 z-50 bg-background/70 backdrop-blur-sm motion-safe:animate-in motion-safe:fade-in motion-safe:duration-300 motion-safe:ease-out',\n dialogContent:\n 'pointer-events-none fixed inset-0 z-50 flex min-h-0 items-center justify-center p-4',\n dialogPanel:\n cn(\n 'pointer-events-auto relative flex max-h-[min(85vh,720px)] w-full max-w-lg min-w-0 flex-col overflow-hidden rounded-lg border border-border/70 bg-background text-foreground shadow-xl',\n 'motion-safe:animate-in motion-safe:fade-in motion-safe:zoom-in-95 motion-safe:duration-300 motion-safe:ease-out',\n ),\n dialogHeader: 'grid min-w-0 gap-1 border-b border-border/60 px-5 py-4',\n dialogTitle: 'min-w-0 pr-8 text-base font-semibold leading-6 text-foreground',\n dialogDescription: 'text-sm leading-6 text-muted-foreground',\n dialogBody: 'min-h-0 min-w-0 overflow-auto px-5 py-4 text-sm text-foreground',\n dialogFooter:\n 'flex shrink-0 flex-wrap items-center justify-end gap-2 border-t border-border/60 px-5 py-4',\n dialogClose:\n cn(\n 'absolute right-3 top-3 inline-flex h-8 w-8 cursor-pointer items-center justify-center rounded-md text-muted-foreground hover:bg-muted/60 hover:text-foreground focus-visible:outline-hidden focus-visible:ring-2 focus-visible:ring-primary/30',\n motionInteractive,\n ),\n dropdownRoot: 'relative inline-flex min-w-0',\n dropdownTrigger: '',\n dropdownTriggerDisabled: '!cursor-not-allowed opacity-60',\n dropdownMenu:\n 'z-50 min-w-48 overflow-hidden rounded-md border border-border bg-background p-1 text-sm text-foreground shadow-lg motion-safe:animate-in motion-safe:fade-in motion-safe:duration-300 motion-safe:ease-out',\n dropdownMenuTop: 'bottom-[calc(100%+0.375rem)] top-auto',\n dropdownMenuEnd: 'left-auto right-0',\n dropdownLabel:\n 'px-2.5 py-1.5 text-xs font-semibold uppercase tracking-[0.12em] text-muted-foreground',\n dropdownSeparator: 'my-1 h-px bg-border/70',\n dropdownItem:\n cn(\n 'flex min-w-0 cursor-pointer items-center gap-2 rounded-sm px-2.5 py-2 text-left text-sm text-foreground hover:bg-accent/60 focus:bg-accent/60 data-[highlighted]:bg-accent/60 focus-visible:outline-hidden focus-visible:ring-2 focus-visible:ring-primary/30',\n motionInteractive,\n ),\n dropdownItemDanger:\n 'text-destructive-text hover:bg-destructive/10 focus:bg-destructive/10 data-[highlighted]:bg-destructive/10',\n dropdownItemDisabled:\n '!cursor-not-allowed opacity-50 hover:bg-transparent focus:bg-transparent data-[highlighted]:bg-transparent',\n dropdownItemIcon: 'inline-flex h-4 w-4 shrink-0 items-center justify-center',\n dropdownItemContent: 'grid min-w-0 flex-1 gap-0.5',\n dropdownItemLabel: 'min-w-0 truncate',\n dropdownItemDescription:\n 'min-w-0 truncate text-xs leading-4 text-muted-foreground',\n dropdownItemShortcut:\n 'ml-3 shrink-0 text-xs font-medium text-muted-foreground',\n tooltipRoot: 'relative inline-flex min-w-0',\n tooltipTrigger: 'inline-flex min-w-0',\n tooltipContent:\n 'pointer-events-none z-50 max-w-xs rounded-md border border-border bg-popover px-2.5 py-1.5 text-xs leading-5 text-popover-foreground shadow-lg motion-safe:animate-in motion-safe:fade-in motion-safe:duration-300 motion-safe:ease-out',\n noticeBase:\n cn(\n 'flex min-w-0 gap-3 rounded-lg border px-4 py-3 text-sm',\n motionBase,\n 'motion-safe:animate-in motion-safe:fade-in',\n ),\n noticeDefault: 'border-border bg-background text-foreground',\n noticePrimary: 'border-primary/25 bg-primary/10 text-primary',\n noticeSuccess:\n 'border-[hsl(var(--success,142_72%_29%)_/_0.30)] bg-[hsl(var(--success,142_72%_29%)_/_0.10)] text-foreground',\n noticeWarning: 'border-[hsl(var(--warning,45_93%_47%)_/_0.30)] bg-[hsl(var(--warning,45_93%_47%)_/_0.10)] text-[hsl(var(--warning-foreground,28_73%_26%))]',\n noticeDanger:\n 'border-destructive/30 bg-destructive/10 text-destructive-text',\n noticeMuted: 'border-border/60 bg-muted/35 text-muted-foreground',\n noticeIcon:\n 'mt-0.5 inline-flex h-4 w-4 shrink-0 items-center justify-center motion-safe:animate-in motion-safe:fade-in',\n noticeTitle: 'font-semibold leading-5',\n noticeDescription: 'leading-6',\n noticeActions: 'mt-3 flex flex-wrap items-center gap-2',\n dividerRoot: cn('shrink-0 border-border/70', motionBase),\n dividerLabel:\n 'mx-3 shrink-0 text-xs font-medium uppercase tracking-[0.12em] text-muted-foreground motion-safe:animate-in motion-safe:fade-in',\n sectionHeaderRoot:\n 'flex min-w-0 flex-wrap items-start justify-between gap-token-md motion-safe:animate-in motion-safe:fade-in motion-safe:duration-300 motion-safe:ease-out',\n sectionHeaderContent: 'grid min-w-0 gap-1',\n sectionHeaderEyebrow:\n 'text-xs font-semibold uppercase tracking-[0.14em] text-muted-foreground',\n sectionHeaderTitle: 'text-base font-semibold leading-6 text-foreground',\n sectionHeaderDescription: 'max-w-2xl text-sm leading-6 text-muted-foreground',\n sectionHeaderActions: 'flex shrink-0 flex-wrap items-center gap-2',\n tabsRoot: 'grid min-w-0 gap-token-md',\n tabsList:\n cn(\n 'inline-flex min-w-0 flex-wrap items-center gap-token-xs rounded-lg border border-border/70 bg-muted/30 p-token-xs',\n motionBase,\n ),\n tabsTrigger:\n cn(\n 'inline-flex min-w-0 cursor-pointer items-center justify-center rounded-md px-3 py-1.5 text-sm font-medium text-muted-foreground hover:bg-background/70 hover:text-foreground focus-visible:outline-hidden focus-visible:ring-2 focus-visible:ring-primary/30 focus-visible:ring-offset-1 motion-reduce:transition-none',\n motionInteractive,\n ),\n tabsTriggerActive:\n 'bg-background text-foreground shadow-sm',\n tabsTriggerDisabled: '!cursor-not-allowed opacity-50 hover:bg-transparent',\n tabsPanel:\n 'min-w-0 rounded-lg border border-border/70 bg-background p-4 text-sm text-foreground focus-visible:outline-hidden focus-visible:ring-2 focus-visible:ring-primary/30 motion-safe:animate-in motion-safe:fade-in motion-safe:duration-300 motion-safe:ease-out motion-reduce:transition-none',\n segmentedRoot:\n cn(\n 'inline-flex min-w-0 items-center gap-1 rounded-lg border border-border/70 bg-muted/30 p-1',\n motionBase,\n ),\n segmentedItem:\n cn(\n 'inline-flex min-w-0 cursor-pointer items-center justify-center gap-1.5 rounded-md px-3 py-1.5 text-sm font-medium text-muted-foreground hover:bg-background/70 hover:text-foreground focus-visible:outline-hidden',\n motionInteractive,\n ),\n segmentedItemActive:\n 'bg-background text-foreground shadow-sm',\n segmentedItemDisabled: '!cursor-not-allowed opacity-50 hover:bg-transparent',\n progressRoot: 'grid min-w-0 gap-2',\n progressTrack:\n 'h-2 w-full overflow-hidden rounded-full bg-muted',\n progressIndicator:\n 'h-full rounded-full bg-primary motion-safe:transition-[width] motion-safe:duration-500 motion-safe:ease-out',\n progressLabelRow: 'flex min-w-0 items-center justify-between gap-3',\n progressLabel: 'min-w-0 truncate text-sm font-medium text-foreground',\n progressValue: 'shrink-0 text-xs font-medium text-muted-foreground',\n skeletonRoot:\n 'relative overflow-hidden rounded-md bg-muted/70',\n avatarRoot:\n 'relative inline-flex shrink-0 items-center justify-center overflow-hidden rounded-full border border-border bg-muted text-sm font-semibold text-muted-foreground motion-safe:transition motion-safe:duration-300 motion-safe:ease-out',\n avatarImage:\n 'h-full w-full object-cover',\n avatarFallback:\n 'flex h-full w-full items-center justify-center bg-muted text-foreground',\n avatarStatus:\n 'absolute bottom-0 right-0 h-2.5 w-2.5 rounded-full border-2 border-background bg-muted-foreground motion-safe:animate-pulse',\n avatarText: 'min-w-0 truncate text-sm font-medium text-foreground',\n toolbarRoot:\n cn(\n 'flex min-w-0 flex-wrap items-center justify-between gap-token-md rounded-lg border border-border/70 bg-background px-token-lg py-token-md',\n motionBase,\n ),\n toolbarLeading: 'flex min-w-0 items-center gap-token-md',\n toolbarTitle: 'min-w-0 truncate text-sm font-semibold text-foreground',\n toolbarDescription: 'mt-0.5 text-sm leading-5 text-muted-foreground',\n toolbarContent: 'min-w-0 flex-1',\n toolbarActions: 'flex shrink-0 flex-wrap items-center gap-token-sm',\n breadcrumbRoot: 'min-w-0 text-sm text-muted-foreground',\n breadcrumbList: 'flex min-w-0 flex-wrap items-center gap-1.5',\n breadcrumbItem: 'inline-flex min-w-0 items-center gap-1.5',\n breadcrumbLink:\n 'min-w-0 cursor-pointer truncate text-muted-foreground hover:text-foreground disabled:!cursor-not-allowed disabled:opacity-50 aria-disabled:!cursor-not-allowed aria-disabled:opacity-50 aria-disabled:hover:text-muted-foreground motion-safe:transition motion-safe:duration-300 motion-safe:ease-out',\n breadcrumbCurrent: 'min-w-0 truncate font-medium text-foreground',\n breadcrumbSeparator: 'shrink-0 text-muted-foreground/70',\n paginationRoot:\n 'flex min-w-0 flex-wrap items-center justify-between gap-3 text-sm',\n paginationInfo: 'min-w-0 text-muted-foreground',\n paginationControls: 'flex min-w-0 flex-wrap items-center justify-end gap-1.5',\n paginationButton:\n 'inline-flex h-8 min-w-8 cursor-pointer items-center justify-center whitespace-nowrap rounded-md border border-border bg-background px-2.5 text-sm font-medium text-foreground hover:bg-accent/60 disabled:!cursor-not-allowed disabled:opacity-50 motion-safe:transition motion-safe:duration-300 motion-safe:ease-out',\n paginationButtonDisabled: '!cursor-not-allowed opacity-50',\n paginationPage:\n 'inline-flex h-8 min-w-8 cursor-default items-center justify-center rounded-md bg-muted/50 px-2.5 text-sm font-medium text-foreground hover:bg-muted/50',\n paginationEllipsis:\n 'inline-flex h-8 min-w-6 items-center justify-center px-1 text-sm text-muted-foreground',\n descriptionListRoot:\n 'grid min-w-0 gap-3 text-sm',\n descriptionListItem:\n 'grid min-w-0 gap-1 rounded-md border border-border/60 bg-background px-3 py-2 motion-safe:transition motion-safe:duration-300 motion-safe:ease-out hover:shadow-sm',\n descriptionListTerm:\n 'min-w-0 truncate text-xs font-medium uppercase tracking-[0.08em] text-muted-foreground',\n descriptionListValue: 'min-w-0 text-sm leading-6 text-foreground',\n accordionRoot: 'grid min-w-0 gap-2',\n accordionItem:\n 'overflow-hidden rounded-lg border border-border/70 bg-background motion-safe:transition motion-safe:duration-300 motion-safe:ease-out motion-reduce:transition-none',\n accordionTrigger:\n 'flex w-full min-w-0 cursor-pointer items-center justify-between gap-3 px-4 py-3 text-start text-sm font-medium text-foreground hover:bg-muted/40 focus-visible:outline-hidden focus-visible:ring-2 focus-visible:ring-inset focus-visible:ring-ring disabled:!cursor-not-allowed disabled:opacity-50 motion-safe:transition motion-safe:duration-300 motion-safe:ease-out motion-reduce:transition-none',\n accordionTriggerIcon:\n cn(\n 'h-2 w-2 shrink-0 rotate-45 border-b border-r border-current text-muted-foreground',\n motionTransform,\n 'motion-reduce:transition-none',\n ),\n accordionPanel:\n 'border-t border-border/60 px-4 py-3 text-sm leading-6 text-muted-foreground motion-safe:animate-in motion-safe:fade-in motion-safe:duration-300 motion-safe:ease-out motion-reduce:animate-none',\n menuTrigger: 'inline-flex min-w-0',\n menuContent:\n 'z-50 min-w-44 overflow-hidden rounded-md border border-border bg-background p-1 text-sm text-foreground shadow-lg outline-hidden motion-safe:animate-in motion-safe:fade-in motion-safe:zoom-in-95 motion-safe:duration-300 motion-safe:ease-out',\n menuLabel: 'px-2 py-1.5 text-xs font-medium text-muted-foreground',\n menuSeparator: '-mx-1 my-1 h-px bg-border',\n menuItem:\n cn(\n 'relative flex min-h-8 min-w-0 cursor-pointer select-none items-center gap-2 rounded-sm px-2.5 py-1.5 text-sm text-foreground outline-hidden focus:bg-accent focus:text-accent-foreground data-[disabled]:!cursor-not-allowed data-[highlighted]:bg-accent data-[highlighted]:text-accent-foreground',\n motionInteractive,\n ),\n menuItemDefault: 'text-foreground',\n menuItemPrimary: 'text-primary focus:text-primary data-[highlighted]:text-primary',\n menuItemSuccess:\n 'text-[hsl(var(--success,142_72%_29%))] focus:text-[hsl(var(--success,142_72%_29%))] data-[highlighted]:text-[hsl(var(--success,142_72%_29%))]',\n menuItemWarning:\n 'text-[hsl(var(--warning-foreground,28_73%_26%))] focus:text-[hsl(var(--warning-foreground,28_73%_26%))] data-[highlighted]:text-[hsl(var(--warning-foreground,28_73%_26%))]',\n menuItemDanger:\n 'text-destructive-text focus:text-destructive-text data-[highlighted]:text-destructive-text',\n menuItemMuted:\n 'text-muted-foreground focus:text-foreground data-[highlighted]:text-foreground',\n menuItemDisabled:\n '!cursor-not-allowed opacity-50 data-[disabled]:pointer-events-none',\n menuItemIcon: 'inline-flex h-4 w-4 shrink-0 items-center justify-center',\n menuItemLabel: 'min-w-0 flex-1 truncate',\n menuItemShortcut:\n 'ml-4 shrink-0 text-xs font-medium text-muted-foreground',\n menuCheckboxIndicator:\n 'absolute left-2 inline-flex h-4 w-4 items-center justify-center text-current',\n menuRadioIndicator:\n 'absolute left-2 inline-flex h-4 w-4 items-center justify-center text-current',\n menuSubTrigger:\n cn(\n 'relative flex min-h-8 min-w-0 cursor-pointer select-none items-center gap-2 rounded-sm px-2.5 py-1.5 text-sm text-foreground outline-hidden focus:bg-accent focus:text-accent-foreground data-[disabled]:!cursor-not-allowed data-[highlighted]:bg-accent data-[highlighted]:text-accent-foreground data-[state=open]:bg-accent data-[state=open]:text-accent-foreground',\n motionInteractive,\n ),\n menuSubTriggerIcon:\n 'ml-auto inline-flex h-4 w-4 shrink-0 items-center justify-center text-muted-foreground',\n menuSubContent:\n 'z-50 min-w-40 overflow-hidden rounded-md border border-border bg-background p-1 text-sm text-foreground shadow-lg outline-hidden motion-safe:animate-in motion-safe:fade-in motion-safe:zoom-in-95 motion-safe:duration-300 motion-safe:ease-out',\n tableContainer:\n cn(\n 'relative isolate min-w-0 overflow-auto rounded-lg border border-border/70 bg-background/95 bg-clip-padding [scrollbar-gutter:stable]',\n '[--base-table-header-height:2.75rem] [--base-table-split-scrollbar-gutter:0.75rem]',\n '[--base-table-sticky-header-bg:hsl(var(--background))] [--base-table-header-separator:hsl(var(--border)_/_0.7)]',\n tableScrollbarChrome,\n motionBase,\n ),\n tableContainerFooterAttached: '!rounded-b-none !shadow-none',\n tableRoot: 'w-full caption-bottom border-separate border-spacing-0 text-sm text-foreground',\n tableCaption: 'mt-3 text-sm text-muted-foreground',\n tableHeader:\n cn(\n 'relative z-[2] bg-transparent [&_tr]:bg-transparent',\n tableStickyHeaderCells,\n ),\n tableBody: '[&_tr:last-child>*]:border-b-0',\n tableFooter: 'bg-muted/30 font-medium [&_tr>*]:border-t [&_tr>*]:border-border/70',\n tableFooterBar:\n cn(\n 'flex min-w-0 flex-wrap items-center justify-between gap-3 rounded-lg border border-border/70 bg-muted/20 px-4 py-3 text-sm text-foreground shadow-none',\n motionBase,\n ),\n tableFooterBarAttached:\n '-mt-px rounded-t-none border-t border-border/70 shadow-none',\n tableFooterBarLeading: 'flex min-w-0 items-center gap-2',\n tableFooterBarContent: 'min-w-0 flex-1',\n tableFooterBarActions: 'ms-auto flex shrink-0 flex-wrap items-center gap-2',\n tableSplitRoot:\n 'grid w-full min-w-0 grid-cols-[minmax(0,1fr)] grid-rows-[auto_minmax(0,1fr)_auto] caption-bottom border-separate border-spacing-0 text-sm text-foreground',\n tableSplitHeader:\n 'block w-full min-w-0 shrink-0 overflow-x-hidden overflow-y-hidden bg-transparent',\n tableSplitBody:\n cn(\n 'block min-h-0 w-full min-w-0 max-w-full justify-self-stretch overflow-auto [scrollbar-gutter:stable]',\n tableScrollbarChrome,\n ),\n tableSplitFooter:\n 'block w-full min-w-0 shrink-0 overflow-x-hidden overflow-y-hidden',\n tableSplitRow:\n 'grid w-max min-w-full [grid-template-columns:var(--base-table-column-template)]',\n tableSplitHead: 'flex min-w-0 overflow-hidden',\n tableSplitCell: 'block min-w-0 overflow-hidden [overflow-wrap:anywhere]',\n tableRow:\n cn(\n '[&>*]:border-b [&>*]:border-border/60 data-[state=selected]:bg-primary/5 data-[state=selected]:[&>*]:bg-primary/5',\n motionBase,\n ),\n tableRowInteractive:\n 'cursor-pointer [--base-table-row-hover-bg:hsl(var(--muted)_/_0.35)] hover:bg-[var(--base-table-row-hover-bg)] hover:[&>*]:bg-[var(--base-table-row-hover-bg)]',\n tableRowSelected: 'bg-primary/5 [&>*]:bg-primary/5',\n tableRowDisabled: '!cursor-not-allowed opacity-60',\n tableHead:\n 'relative h-11 whitespace-nowrap px-3 py-2 text-left align-middle text-xs font-semibold text-muted-foreground shadow-[inset_0_-1px_0_var(--base-table-header-separator)]',\n tableHeadContent: 'flex min-w-0 items-center justify-between gap-2',\n tableHeadMain: 'flex min-w-0 items-center gap-2',\n tableHeadIcon: 'inline-flex h-4 w-4 shrink-0 items-center justify-center text-muted-foreground',\n tableHeadText: 'grid min-w-0 gap-0.5',\n tableHeadLabel: 'min-w-0 truncate text-xs font-semibold leading-4 text-foreground',\n tableHeadDescription: 'min-w-0 truncate text-xs font-normal leading-4 text-muted-foreground',\n tableHeadMeta: 'shrink-0 text-xs font-medium text-muted-foreground',\n tableHeadActions: 'flex shrink-0 items-center gap-1',\n tableHeadSortButton:\n cn(\n 'inline-flex min-w-0 cursor-pointer items-center gap-1 rounded-sm text-left focus-visible:outline-hidden focus-visible:ring-2 focus-visible:ring-primary/30 disabled:!cursor-not-allowed disabled:opacity-60',\n motionBase,\n ),\n tableHeadSortIcon:\n cn(\n 'inline-flex h-3 w-3 shrink-0 items-center justify-center text-muted-foreground',\n motionTransform,\n ),\n tableHeadDragHandle:\n cn(\n 'inline-flex h-5 w-4 shrink-0 cursor-grab items-center justify-center rounded-sm text-muted-foreground hover:bg-muted active:cursor-grabbing focus-visible:outline-hidden focus-visible:ring-2 focus-visible:ring-primary/30 disabled:!cursor-not-allowed disabled:opacity-50',\n motionBase,\n ),\n tableHeadResizeHandle:\n cn(\n 'absolute end-0 top-1/2 h-7 w-2 -translate-y-1/2 cursor-col-resize touch-none rounded-sm after:absolute after:start-1/2 after:top-1/2 after:h-5 after:w-px after:-translate-x-1/2 after:-translate-y-1/2 after:bg-border hover:after:bg-primary focus-visible:outline-hidden focus-visible:ring-2 focus-visible:ring-primary/30 disabled:!cursor-not-allowed disabled:opacity-50',\n motionBase,\n ),\n tableCell: 'min-w-0 px-3 py-2 align-middle text-sm text-foreground [overflow-wrap:anywhere]',\n tableCellAlignCenter: 'text-center',\n tableCellAlignRight: 'text-right',\n tableEmptyRow: '[&>*]:border-b [&>*]:border-border/60',\n tableEmptyCell: 'px-4 py-10 text-center',\n tableEmptyContent: 'mx-auto flex max-w-md flex-col items-center justify-center text-center',\n tableEmptyIcon:\n 'mb-3 flex h-10 w-10 items-center justify-center rounded-full bg-muted text-muted-foreground',\n tableEmptyTitle: 'text-sm font-semibold text-foreground',\n tableEmptyDescription: 'mt-1 text-sm leading-6 text-muted-foreground',\n tableEmptyActions: 'mt-4 flex flex-wrap items-center justify-center gap-2',\n tableLoadingRow: '[&>*]:border-b [&>*]:border-border/60',\n tableLoadingCell: 'px-3 py-2',\n tableLoadingSkeleton: 'h-4 w-full rounded-md bg-muted/70',\n layoutRoot:\n cn(\n 'grid min-w-0 overflow-hidden grid-rows-[auto_minmax(0,1fr)_auto] gap-3 rounded-lg border border-border/70 bg-background p-3 text-foreground',\n motionBase,\n ),\n layoutRootFull: 'h-full min-h-0',\n layoutHeader: 'min-w-0',\n layoutBody: 'grid min-h-0 min-w-0 overflow-hidden gap-token-md',\n layoutSidebar: 'min-h-0 min-w-0 overflow-hidden',\n layoutMain: 'min-h-0 min-w-0 overflow-hidden',\n layoutAside: 'min-h-0 min-w-0 overflow-hidden',\n layoutFooter: 'min-w-0',\n layoutPane:\n cn(\n 'h-full max-h-full min-h-0 min-w-0 overflow-hidden rounded-lg bg-background text-foreground',\n motionBase,\n ),\n layoutPaneScrollable: 'overflow-auto',\n layoutPaneBordered: 'border border-border/70',\n layoutPaneMuted: 'bg-muted/25',\n layoutPaneSoft: 'bg-background/95 shadow-sm',\n layoutPaneTransparent: 'bg-transparent shadow-none',\n layoutSplitRoot: 'grid min-h-0 min-w-0 overflow-hidden',\n layoutSplitHorizontal: 'grid-flow-col',\n layoutSplitVertical: 'grid-flow-row',\n layoutSplitPane: 'min-h-0 min-w-0 overflow-hidden',\n layoutSplitPrimary: '',\n layoutSplitSecondary: '',\n layoutResizeHandle:\n cn(\n 'group/resize relative z-10 flex shrink-0 items-center justify-center bg-transparent text-muted-foreground hover:bg-border/60 active:bg-border/70 focus-visible:bg-border/60 focus-visible:outline-hidden focus-visible:ring-2 focus-visible:ring-primary/30',\n motionInteractive,\n ),\n layoutResizeHandleHorizontal: 'w-2 cursor-col-resize',\n layoutResizeHandleVertical: 'h-2 cursor-row-resize',\n layoutResizeHandleDisabled: 'cursor-default opacity-60',\n layoutResizeHandleIndicator:\n 'rounded-full bg-muted-foreground/45 group-hover/resize:bg-primary/70',\n};\n\nconst densitySlots: Record<BaseDensity, Partial<BaseThemeSlots>> = {\n compact: {\n buttonBase: 'h-8 px-2.5 text-xs',\n buttonIconOnly: 'h-8 w-8 px-0',\n badgeBase: 'px-1.5 py-0 text-xs',\n panelHeader: 'p-token-md',\n panelBody: 'px-token-md pb-token-md text-xs',\n panelBodyStandalone: 'pt-token-md',\n panelFooter: 'px-token-md py-token-md',\n stateRoot: 'min-h-36 px-4 py-7',\n stateIcon: 'mb-3 h-10 w-10',\n fieldRoot: 'gap-token-sm',\n fieldLabel: 'text-xs',\n fieldDescription: 'text-xs leading-5',\n fieldMessage: 'text-xs leading-5',\n controlInput: 'h-8 text-xs',\n controlTextarea: 'min-h-20 text-xs',\n controlSelect: 'h-8 text-xs',\n selectMenu: 'text-xs',\n selectOption: 'min-h-7 px-2 py-1 text-xs',\n switchTrack: 'h-5 w-9',\n switchThumb: 'h-3.5 w-3.5',\n checkboxBox: 'h-3.5 w-3.5',\n checkboxLabel: 'text-xs',\n checkboxDescription: 'text-xs leading-5',\n radioOption: 'px-2 py-1.5 text-xs',\n radioMarker: 'h-3.5 w-3.5',\n radioIndicator: 'h-1.5 w-1.5',\n radioLabel: 'text-xs',\n radioDescription: 'text-xs leading-5',\n dialogPanel: 'max-w-md',\n dialogHeader: 'px-4 py-3',\n dialogTitle: 'text-sm leading-5',\n dialogDescription: 'text-xs leading-5',\n dialogBody: 'px-4 py-3 text-xs',\n dialogFooter: 'px-4 py-3',\n dropdownMenu: 'min-w-44 text-xs',\n dropdownItem: 'px-2 py-1.5 text-xs',\n tooltipContent: 'text-xs leading-4',\n noticeBase: 'px-3 py-2 text-xs',\n dividerLabel: 'text-xs',\n sectionHeaderRoot: 'gap-token-sm',\n sectionHeaderTitle: 'text-sm leading-5',\n sectionHeaderDescription: 'text-xs leading-5',\n tabsList: 'gap-token-xs p-token-xs',\n tabsTrigger: 'px-2 py-1 text-xs',\n tabsPanel: 'p-3 text-xs',\n segmentedRoot: 'gap-token-xs p-token-xs',\n segmentedItem: 'px-2 py-1 text-xs',\n progressTrack: 'h-1.5',\n avatarRoot: 'text-xs',\n toolbarRoot: 'gap-token-sm px-token-md py-token-md',\n toolbarTitle: 'text-xs',\n toolbarDescription: 'text-xs leading-5',\n paginationButton: 'h-7 min-w-7 px-2 text-xs',\n paginationPage: 'h-7 min-w-7 px-2 text-xs',\n descriptionListRoot: 'gap-2 text-xs',\n descriptionListItem: 'px-2 py-1.5',\n descriptionListTerm: 'text-xs',\n descriptionListValue: 'text-xs leading-5',\n accordionTrigger: 'px-3 py-2 text-xs',\n accordionPanel: 'px-3 py-2 text-xs leading-5',\n menuContent: 'min-w-40 p-0.5 text-xs',\n menuSubContent: 'min-w-36 p-0.5 text-xs',\n menuLabel: 'px-2 py-1 text-xs',\n menuItem: 'min-h-7 px-2 py-1 text-xs',\n menuSubTrigger: 'min-h-7 px-2 py-1 text-xs',\n menuItemShortcut: 'text-xs',\n tableContainer: '[--base-table-header-height:2.25rem]',\n tableHead: 'h-9 px-2 py-1.5 text-xs',\n tableCell: 'px-2 py-1.5 text-xs',\n tableHeadLabel: 'text-xs',\n tableHeadDescription: 'text-xs leading-3',\n tableLoadingCell: 'px-2 py-1.5',\n layoutRoot: 'gap-token-md p-token-md',\n layoutBody: 'gap-token-md',\n layoutPane: 'rounded-md text-xs',\n layoutResizeHandleHorizontal: 'w-1.5',\n layoutResizeHandleVertical: 'h-1.5',\n },\n default: {\n buttonBase: 'h-9',\n },\n comfortable: {\n buttonBase: 'h-10 px-3.5',\n buttonIconOnly: 'h-10 w-10 px-0',\n badgeBase: 'px-2.5 py-1',\n panelHeader: 'p-token-xl',\n panelBody: 'px-token-xl pb-token-xl',\n panelBodyStandalone: 'pt-token-xl',\n panelFooter: 'px-token-xl py-token-lg',\n stateRoot: 'min-h-56 px-8 py-12',\n stateIcon: 'mb-5 h-14 w-14',\n fieldRoot: 'gap-token-md',\n controlInput: 'h-10',\n controlTextarea: 'min-h-28',\n controlSelect: 'h-10',\n selectMenu: 'p-1.5',\n selectOption: 'min-h-9 px-3 py-2',\n switchTrack: 'h-7 w-12',\n switchThumb: 'h-5 w-5',\n checkboxBox: 'h-5 w-5',\n radioOption: 'px-4 py-3',\n radioMarker: 'h-5 w-5',\n radioIndicator: 'h-2.5 w-2.5',\n dialogPanel: 'max-w-xl',\n dialogHeader: 'px-6 py-5',\n dialogBody: 'px-6 py-5',\n dialogFooter: 'px-6 py-5',\n dropdownMenu: 'min-w-56',\n dropdownItem: 'px-3 py-2.5',\n noticeBase: 'px-5 py-4',\n sectionHeaderTitle: 'text-lg leading-7',\n tabsTrigger: 'px-3.5 py-2',\n tabsPanel: 'p-5',\n segmentedItem: 'px-3.5 py-2',\n progressTrack: 'h-2.5',\n toolbarRoot: 'px-token-xl py-token-lg',\n paginationButton: 'h-9 min-w-9 px-3',\n paginationPage: 'h-9 min-w-9 px-3',\n descriptionListItem: 'px-4 py-3',\n accordionTrigger: 'px-5 py-4',\n accordionPanel: 'px-5 py-4',\n menuContent: 'min-w-48 p-1.5',\n menuSubContent: 'min-w-44 p-1.5',\n menuItem: 'min-h-9 px-3 py-2',\n menuSubTrigger: 'min-h-9 px-3 py-2',\n tableContainer: '[--base-table-header-height:3rem]',\n tableHead: 'h-12 px-4 py-3',\n tableCell: 'px-4 py-3',\n tableLoadingCell: 'px-4 py-3',\n layoutRoot: 'gap-token-lg p-token-lg',\n layoutBody: 'gap-token-lg',\n layoutPane: 'rounded-xl',\n layoutResizeHandleHorizontal: 'w-2.5',\n layoutResizeHandleVertical: 'h-2.5',\n },\n};\n\nconst radiusSlots: Record<BaseRadius, Partial<BaseThemeSlots>> = {\n none: {\n buttonBase: 'rounded-none',\n badgeBase: 'rounded-none',\n panelRoot: 'rounded-none',\n stateRoot: 'rounded-none',\n stateIcon: 'rounded-none',\n controlWrapper: 'rounded-none',\n selectMenu: 'rounded-none',\n selectOption: 'rounded-none',\n switchTrack: 'rounded-none',\n switchThumb: 'rounded-none',\n checkboxBox: 'rounded-none',\n radioOption: 'rounded-none',\n dialogPanel: 'rounded-none',\n dialogClose: 'rounded-none',\n dropdownMenu: 'rounded-none',\n dropdownItem: 'rounded-none',\n tooltipContent: 'rounded-none',\n noticeBase: 'rounded-none',\n tabsList: 'rounded-none',\n tabsTrigger: 'rounded-none',\n tabsPanel: 'rounded-none',\n segmentedRoot: 'rounded-none',\n segmentedItem: 'rounded-none',\n progressTrack: 'rounded-none',\n progressIndicator: 'rounded-none',\n skeletonRoot: 'rounded-none',\n avatarRoot: 'rounded-none',\n avatarStatus: 'rounded-none',\n toolbarRoot: 'rounded-none',\n paginationButton: 'rounded-none',\n paginationPage: 'rounded-none',\n descriptionListItem: 'rounded-none',\n accordionItem: 'rounded-none',\n menuContent: 'rounded-none',\n menuItem: 'rounded-none',\n menuSubTrigger: 'rounded-none',\n menuSubContent: 'rounded-none',\n tableContainer: 'rounded-none',\n tableEmptyIcon: 'rounded-none',\n tableLoadingSkeleton: 'rounded-none',\n layoutRoot: 'rounded-none',\n layoutPane: 'rounded-none',\n },\n sm: {\n buttonBase: 'rounded-sm',\n badgeBase: 'rounded-sm',\n panelRoot: 'rounded-sm',\n stateRoot: 'rounded-sm',\n stateIcon: 'rounded-sm',\n controlWrapper: 'rounded-sm',\n selectMenu: 'rounded-sm',\n selectOption: 'rounded-sm',\n switchTrack: 'rounded-sm',\n switchThumb: 'rounded-sm',\n checkboxBox: 'rounded-sm',\n radioOption: 'rounded-sm',\n dialogPanel: 'rounded-sm',\n dialogClose: 'rounded-sm',\n dropdownMenu: 'rounded-sm',\n dropdownItem: 'rounded-sm',\n tooltipContent: 'rounded-sm',\n noticeBase: 'rounded-sm',\n tabsList: 'rounded-sm',\n tabsTrigger: 'rounded-sm',\n tabsPanel: 'rounded-sm',\n segmentedRoot: 'rounded-sm',\n segmentedItem: 'rounded-sm',\n progressTrack: 'rounded-sm',\n progressIndicator: 'rounded-sm',\n skeletonRoot: 'rounded-sm',\n avatarRoot: 'rounded-sm',\n avatarStatus: 'rounded-sm',\n toolbarRoot: 'rounded-sm',\n paginationButton: 'rounded-sm',\n paginationPage: 'rounded-sm',\n descriptionListItem: 'rounded-sm',\n accordionItem: 'rounded-sm',\n menuContent: 'rounded-sm',\n menuItem: 'rounded-sm',\n menuSubTrigger: 'rounded-sm',\n menuSubContent: 'rounded-sm',\n tableContainer: 'rounded-sm',\n tableEmptyIcon: 'rounded-sm',\n tableLoadingSkeleton: 'rounded-sm',\n layoutRoot: 'rounded-sm',\n layoutPane: 'rounded-sm',\n },\n md: {},\n lg: {\n buttonBase: 'rounded-lg',\n badgeBase: 'rounded-lg',\n panelRoot: 'rounded-xl',\n stateRoot: 'rounded-xl',\n stateIcon: 'rounded-xl',\n controlWrapper: 'rounded-lg',\n selectMenu: 'rounded-lg',\n selectOption: 'rounded-md',\n switchTrack: 'rounded-full',\n switchThumb: 'rounded-full',\n checkboxBox: 'rounded-md',\n radioOption: 'rounded-xl',\n dialogPanel: 'rounded-xl',\n dialogClose: 'rounded-lg',\n dropdownMenu: 'rounded-lg',\n dropdownItem: 'rounded-md',\n tooltipContent: 'rounded-md',\n noticeBase: 'rounded-xl',\n tabsList: 'rounded-xl',\n tabsTrigger: 'rounded-lg',\n tabsPanel: 'rounded-xl',\n segmentedRoot: 'rounded-xl',\n segmentedItem: 'rounded-lg',\n skeletonRoot: 'rounded-lg',\n toolbarRoot: 'rounded-xl',\n descriptionListItem: 'rounded-lg',\n accordionItem: 'rounded-xl',\n menuContent: 'rounded-lg',\n menuItem: 'rounded-md',\n menuSubTrigger: 'rounded-md',\n menuSubContent: 'rounded-lg',\n tableContainer: 'rounded-xl',\n tableEmptyIcon: 'rounded-xl',\n tableLoadingSkeleton: 'rounded-lg',\n layoutRoot: 'rounded-xl',\n layoutPane: 'rounded-xl',\n },\n xl: {\n buttonBase: 'rounded-xl',\n badgeBase: 'rounded-xl',\n panelRoot: 'rounded-2xl',\n stateRoot: 'rounded-2xl',\n stateIcon: 'rounded-2xl',\n controlWrapper: 'rounded-xl',\n selectMenu: 'rounded-xl',\n selectOption: 'rounded-lg',\n switchTrack: 'rounded-full',\n switchThumb: 'rounded-full',\n checkboxBox: 'rounded-lg',\n radioOption: 'rounded-2xl',\n dialogPanel: 'rounded-2xl',\n dialogClose: 'rounded-xl',\n dropdownMenu: 'rounded-xl',\n dropdownItem: 'rounded-lg',\n tooltipContent: 'rounded-lg',\n noticeBase: 'rounded-2xl',\n tabsList: 'rounded-2xl',\n tabsTrigger: 'rounded-xl',\n tabsPanel: 'rounded-2xl',\n segmentedRoot: 'rounded-2xl',\n segmentedItem: 'rounded-xl',\n skeletonRoot: 'rounded-xl',\n toolbarRoot: 'rounded-2xl',\n paginationButton: 'rounded-xl',\n paginationPage: 'rounded-xl',\n descriptionListItem: 'rounded-xl',\n accordionItem: 'rounded-2xl',\n menuContent: 'rounded-xl',\n menuItem: 'rounded-lg',\n menuSubTrigger: 'rounded-lg',\n menuSubContent: 'rounded-xl',\n tableContainer: 'rounded-2xl',\n tableEmptyIcon: 'rounded-2xl',\n tableLoadingSkeleton: 'rounded-xl',\n layoutRoot: 'rounded-2xl',\n layoutPane: 'rounded-2xl',\n },\n full: {\n buttonBase: 'rounded-full',\n badgeBase: 'rounded-full',\n panelRoot: 'rounded-2xl',\n stateRoot: 'rounded-2xl',\n stateIcon: 'rounded-full',\n controlWrapper: 'rounded-full',\n selectMenu: 'rounded-2xl',\n selectOption: 'rounded-full',\n switchTrack: 'rounded-full',\n switchThumb: 'rounded-full',\n checkboxBox: 'rounded-full',\n radioOption: 'rounded-2xl',\n dialogPanel: 'rounded-2xl',\n dialogClose: 'rounded-full',\n dropdownMenu: 'rounded-2xl',\n dropdownItem: 'rounded-full',\n tooltipContent: 'rounded-full',\n noticeBase: 'rounded-2xl',\n tabsList: 'rounded-full',\n tabsTrigger: 'rounded-full',\n tabsPanel: 'rounded-2xl',\n segmentedRoot: 'rounded-full',\n segmentedItem: 'rounded-full',\n progressTrack: 'rounded-full',\n progressIndicator: 'rounded-full',\n skeletonRoot: 'rounded-full',\n avatarRoot: 'rounded-full',\n avatarStatus: 'rounded-full',\n toolbarRoot: 'rounded-2xl',\n paginationButton: 'rounded-full',\n paginationPage: 'rounded-full',\n descriptionListItem: 'rounded-2xl',\n accordionItem: 'rounded-2xl',\n menuContent: 'rounded-2xl',\n menuItem: 'rounded-full',\n menuSubTrigger: 'rounded-full',\n menuSubContent: 'rounded-2xl',\n tableContainer: 'rounded-2xl',\n tableEmptyIcon: 'rounded-full',\n tableLoadingSkeleton: 'rounded-full',\n layoutRoot: 'rounded-2xl',\n layoutPane: 'rounded-2xl',\n },\n};\n\nconst borderSlots: Record<BaseBorder, Partial<BaseThemeSlots>> = {\n none: {\n buttonBase: 'border-transparent',\n badgeBase: 'border-transparent',\n panelRoot: 'border-transparent',\n panelFooter: 'border-transparent',\n stateRoot: 'border-transparent',\n controlWrapper: 'border-transparent',\n selectMenu: 'border-transparent',\n switchTrack: 'border-transparent',\n checkboxBox: 'border-transparent',\n radioOption: 'border-transparent',\n radioMarker: 'border-transparent',\n dialogPanel: 'border-transparent',\n dialogHeader: 'border-transparent',\n dialogFooter: 'border-transparent',\n dropdownMenu: 'border-transparent',\n tooltipContent: 'border-transparent',\n noticeBase: 'border-transparent',\n dividerRoot: 'border-transparent',\n tabsList: 'border-transparent',\n tabsPanel: 'border-transparent',\n segmentedRoot: 'border-transparent',\n avatarRoot: 'border-transparent',\n toolbarRoot: 'border-transparent',\n paginationButton: 'border-transparent',\n descriptionListItem: 'border-transparent',\n accordionItem: 'border-transparent',\n accordionPanel: 'border-transparent',\n menuContent: 'border-transparent',\n menuSeparator: 'bg-transparent',\n menuSubContent: 'border-transparent',\n tableContainer: 'border-transparent [--base-table-header-separator:transparent]',\n tableHeader: 'border-transparent',\n tableFooter: '[&_tr>*]:border-transparent',\n tableFooterBar: 'border-transparent',\n tableFooterBarAttached: 'border-t border-transparent',\n tableRow: '[&>*]:border-transparent',\n tableEmptyRow: '[&>*]:border-transparent',\n tableLoadingRow: '[&>*]:border-transparent',\n layoutRoot: 'border-transparent',\n layoutPaneBordered: 'border-transparent',\n layoutResizeHandle: 'bg-transparent hover:bg-transparent active:bg-transparent focus-visible:bg-transparent',\n },\n subtle: {\n buttonDefault: 'border-border/60',\n badgeDefault: 'border-border/60',\n panelRoot: 'border-border/60',\n panelFooter: 'border-border/60',\n stateRoot: 'border-border/60',\n controlWrapper: 'border-border/60',\n selectMenu: 'border-border/60',\n switchTrack: 'border-border/60',\n checkboxBox: 'border-border/60',\n radioOption: 'border-border/60',\n radioMarker: 'border-border/60',\n dialogPanel: 'border-border/60',\n dialogHeader: 'border-border/60',\n dialogFooter: 'border-border/60',\n dropdownMenu: 'border-border/60',\n tooltipContent: 'border-border/60',\n noticeDefault: 'border-border/60',\n dividerRoot: 'border-border/60',\n tabsList: 'border-border/60',\n tabsPanel: 'border-border/60',\n segmentedRoot: 'border-border/60',\n avatarRoot: 'border-border/60',\n toolbarRoot: 'border-border/60',\n paginationButton: 'border-border/60',\n descriptionListItem: 'border-border/60',\n accordionItem: 'border-border/60',\n accordionPanel: 'border-border/60',\n menuContent: 'border-border/60',\n menuSeparator: 'bg-border/60',\n menuSubContent: 'border-border/60',\n tableContainer: 'border-border/60 [--base-table-header-separator:hsl(var(--border)_/_0.6)]',\n tableHeader: 'border-border/60',\n tableFooter: '[&_tr>*]:border-border/60',\n tableFooterBar: 'border-border/60',\n tableFooterBarAttached: 'border-t border-border/60',\n tableRow: '[&>*]:border-border/50',\n tableEmptyRow: '[&>*]:border-border/50',\n tableLoadingRow: '[&>*]:border-border/50',\n layoutRoot: 'border-border/60',\n layoutPaneBordered: 'border-border/60',\n },\n solid: {},\n strong: {\n buttonDefault: 'border-foreground/20',\n badgeDefault: 'border-foreground/20',\n panelRoot: 'border-foreground/20',\n panelFooter: 'border-foreground/20',\n stateRoot: 'border-foreground/20',\n controlWrapper: 'border-foreground/20',\n selectMenu: 'border-foreground/20',\n switchTrack: 'border-foreground/20',\n checkboxBox: 'border-foreground/20',\n radioOption: 'border-foreground/20',\n radioMarker: 'border-foreground/20',\n dialogPanel: 'border-foreground/20',\n dialogHeader: 'border-foreground/15',\n dialogFooter: 'border-foreground/15',\n dropdownMenu: 'border-foreground/20',\n tooltipContent: 'border-foreground/20',\n noticeDefault: 'border-foreground/20',\n dividerRoot: 'border-foreground/20',\n tabsList: 'border-foreground/20',\n tabsPanel: 'border-foreground/20',\n segmentedRoot: 'border-foreground/20',\n avatarRoot: 'border-foreground/20',\n toolbarRoot: 'border-foreground/20',\n paginationButton: 'border-foreground/20',\n descriptionListItem: 'border-foreground/20',\n accordionItem: 'border-foreground/20',\n accordionPanel: 'border-foreground/20',\n menuContent: 'border-foreground/20',\n menuSeparator: 'bg-foreground/15',\n menuSubContent: 'border-foreground/20',\n tableContainer:\n 'border-foreground/20 [--base-table-header-separator:hsl(var(--foreground)_/_0.15)]',\n tableHeader: 'border-foreground/20',\n tableFooter: '[&_tr>*]:border-foreground/20',\n tableFooterBar: 'border-foreground/20',\n tableFooterBarAttached: 'border-t border-foreground/20',\n tableRow: '[&>*]:border-foreground/15',\n tableEmptyRow: '[&>*]:border-foreground/15',\n tableLoadingRow: '[&>*]:border-foreground/15',\n layoutRoot: 'border-foreground/20',\n layoutPaneBordered: 'border-foreground/20',\n layoutResizeHandle: 'hover:bg-foreground/15 active:bg-foreground/20 focus-visible:bg-foreground/15',\n },\n};\n\nconst backgroundSlots: Record<BaseBackground, Partial<BaseThemeSlots>> = {\n plain: {},\n muted: {\n buttonDefault: 'bg-muted/20 hover:bg-muted/45',\n panelRoot: 'bg-card',\n panelFooter: 'bg-muted/20',\n stateRoot: 'bg-muted/20',\n controlWrapper: 'bg-background',\n selectMenu: 'bg-background',\n selectOptionActive: 'bg-muted/70 text-foreground',\n checkboxBox: 'bg-background',\n radioOption: 'bg-card hover:bg-muted/45',\n radioMarker: 'bg-background',\n dialogPanel: 'bg-card',\n dropdownMenu: 'bg-background',\n dropdownItem: 'hover:bg-muted/60',\n tooltipContent: 'bg-popover',\n noticeDefault: 'bg-muted/20',\n tabsList: 'bg-muted/35',\n tabsTriggerActive: 'bg-background',\n tabsPanel: 'bg-card',\n segmentedRoot: 'bg-muted/35',\n segmentedItemActive: 'bg-background',\n progressTrack: 'bg-muted/60',\n skeletonRoot: 'bg-muted',\n toolbarRoot: 'bg-card',\n paginationButton: 'bg-background hover:bg-muted/60',\n paginationPage: 'bg-muted/60',\n descriptionListItem: 'bg-card',\n accordionItem: 'bg-card',\n menuContent: 'bg-background',\n menuItem: 'focus:bg-muted/70 data-[highlighted]:bg-muted/70',\n menuSubTrigger:\n 'focus:bg-muted/70 data-[highlighted]:bg-muted/70 data-[state=open]:bg-muted/70',\n menuSubContent: 'bg-background',\n tableContainer: 'bg-background/95 [scrollbar-gutter:stable]',\n tableFooter: 'bg-muted/35',\n tableFooterBar: 'bg-muted/30 shadow-none',\n tableRowInteractive: 'cursor-pointer [--base-table-row-hover-bg:hsl(var(--muted)_/_0.45)]',\n tableLoadingSkeleton: 'bg-muted',\n layoutRoot: 'bg-card',\n layoutPane: 'bg-card',\n layoutPaneMuted: 'bg-muted/35',\n layoutResizeHandle: 'hover:bg-border/70 active:bg-border/80 focus-visible:bg-border/70',\n },\n soft: {\n buttonDefault: 'bg-muted/30 hover:bg-muted/55',\n panelRoot: 'bg-background/95 shadow-sm',\n stateRoot: 'bg-background/95 shadow-sm',\n controlWrapper: 'bg-background/95',\n selectMenu: 'bg-background/95 shadow-xl',\n selectOptionActive: 'bg-muted/60 text-foreground',\n checkboxBox: 'bg-background/95',\n radioOption: 'bg-background/95 shadow-sm hover:bg-muted/35',\n radioMarker: 'bg-background/95',\n dialogPanel: 'bg-background/95 shadow-xl',\n dropdownMenu: 'bg-background/95 shadow-xl',\n dropdownItem: 'hover:bg-muted/55',\n tooltipContent: 'bg-popover shadow-xl',\n noticeDefault: 'bg-background/95 shadow-sm',\n tabsList: 'bg-background/60 shadow-sm',\n tabsTriggerActive: 'bg-background',\n tabsPanel: 'bg-background/95 shadow-sm',\n segmentedRoot: 'bg-background/60 shadow-sm',\n segmentedItemActive: 'bg-background',\n skeletonRoot: 'bg-background/80',\n toolbarRoot: 'bg-background/95 shadow-sm',\n paginationButton: 'bg-background/95 hover:bg-muted/55',\n descriptionListItem: 'bg-background/95 shadow-sm',\n accordionItem: 'bg-background/95 shadow-sm',\n menuContent: 'bg-background/95 shadow-xl',\n menuItem: 'focus:bg-muted/60 data-[highlighted]:bg-muted/60',\n menuSubTrigger:\n 'focus:bg-muted/60 data-[highlighted]:bg-muted/60 data-[state=open]:bg-muted/60',\n menuSubContent: 'bg-background/95 shadow-xl',\n tableContainer:\n 'bg-background/95 shadow-sm [scrollbar-gutter:stable]',\n tableFooter: 'bg-muted/25',\n tableFooterBar: 'bg-muted/25 shadow-none',\n tableRowInteractive: 'cursor-pointer [--base-table-row-hover-bg:hsl(var(--muted)_/_0.35)]',\n tableLoadingSkeleton: 'bg-muted/65',\n layoutRoot: 'bg-background/95 shadow-sm',\n layoutPane: 'bg-background/95 shadow-sm',\n layoutPaneSoft: 'bg-background/95 shadow-md',\n },\n glass: {\n buttonBase: 'backdrop-blur-md',\n buttonDefault:\n 'border-white/10 bg-white/[0.08] text-foreground hover:bg-white/[0.14]',\n badgeDefault: 'border-white/10 bg-white/[0.08] text-foreground',\n panelRoot: 'border-white/10 bg-white/[0.06] shadow-none backdrop-blur-md',\n panelFooter: 'border-white/10 bg-white/[0.05]',\n stateRoot: 'border-white/10 bg-white/[0.06] shadow-none backdrop-blur-md',\n stateIcon: 'bg-white/10 text-foreground',\n controlWrapper:\n 'border-white/10 bg-white/[0.08] text-foreground backdrop-blur-md',\n selectMenu:\n 'border-foreground/10 bg-background/10 text-foreground shadow-[0_18px_60px_hsl(var(--foreground)/0.18)] backdrop-blur-md',\n selectOption: 'text-foreground',\n selectOptionActive: 'bg-white/[0.14] text-foreground',\n selectOptionSelected: 'bg-white/[0.18] text-foreground',\n switchTrack: 'border-white/10 bg-white/[0.12] backdrop-blur-md',\n checkboxBox: 'border-white/10 bg-white/[0.08] backdrop-blur-md',\n checkboxBoxChecked: 'border-white/20 bg-white/[0.22] text-foreground',\n radioOption: 'border-white/10 bg-white/[0.06] backdrop-blur-md hover:bg-white/[0.10]',\n radioMarker: 'border-white/10 bg-white/[0.08] backdrop-blur-md',\n radioMarkerChecked: 'border-white/25 bg-white/[0.16]',\n dialogOverlay: 'bg-background/45 backdrop-blur-md',\n dialogPanel: 'border-white/10 bg-white/[0.08] shadow-2xl backdrop-blur-md',\n dialogHeader: 'border-white/10',\n dialogFooter: 'border-white/10',\n dropdownMenu:\n 'border-foreground/10 bg-background/10 text-foreground shadow-[0_18px_60px_hsl(var(--foreground)/0.18)] backdrop-blur-md',\n dropdownItem: 'text-foreground hover:bg-white/[0.14]',\n tooltipContent:\n 'border-foreground/10 bg-background/15 text-foreground shadow-[0_18px_60px_hsl(var(--foreground)/0.18)] backdrop-blur-md',\n noticeDefault:\n 'border-white/10 bg-white/[0.08] text-foreground backdrop-blur-md',\n dividerRoot: 'border-white/15',\n tabsList: 'border-white/10 bg-white/[0.08] backdrop-blur-md',\n tabsTrigger: 'text-muted-foreground hover:bg-white/[0.12] hover:text-foreground',\n tabsTriggerActive: 'bg-white/[0.16] text-foreground shadow-none',\n tabsPanel:\n 'border-white/10 bg-white/[0.06] shadow-none backdrop-blur-md',\n segmentedRoot: 'border-white/10 bg-white/[0.08] backdrop-blur-md',\n segmentedItem: 'text-muted-foreground hover:bg-white/[0.12] hover:text-foreground',\n segmentedItemActive: 'bg-white/[0.16] text-foreground shadow-none',\n progressTrack: 'bg-white/[0.12]',\n skeletonRoot: 'bg-white/[0.16]',\n avatarRoot: 'border-white/10 bg-white/[0.12] text-foreground',\n avatarFallback: 'bg-white/[0.12] text-foreground',\n avatarStatus: 'border-background',\n toolbarRoot:\n 'border-white/10 bg-white/[0.06] shadow-none backdrop-blur-md',\n paginationButton:\n 'border-white/10 bg-white/[0.08] text-foreground hover:bg-white/[0.14]',\n paginationPage: 'bg-white/[0.12] text-foreground',\n descriptionListItem:\n 'border-white/10 bg-white/[0.06] shadow-none backdrop-blur-md',\n accordionItem:\n 'border-white/10 bg-white/[0.06] shadow-none backdrop-blur-md',\n accordionPanel: 'border-white/10',\n menuContent:\n 'border-foreground/10 bg-background/10 text-foreground shadow-[0_18px_60px_hsl(var(--foreground)/0.18)] backdrop-blur-md',\n menuSeparator: 'bg-white/10',\n menuItem:\n 'text-foreground focus:bg-white/[0.14] focus:text-foreground data-[highlighted]:bg-white/[0.14] data-[highlighted]:text-foreground',\n menuSubTrigger:\n 'text-foreground focus:bg-white/[0.14] focus:text-foreground data-[highlighted]:bg-white/[0.14] data-[highlighted]:text-foreground data-[state=open]:bg-white/[0.16]',\n menuSubContent:\n 'border-foreground/10 bg-background/10 text-foreground shadow-[0_18px_60px_hsl(var(--foreground)/0.18)] backdrop-blur-md',\n tableContainer:\n 'border-foreground/10 bg-background/[0.06] shadow-none backdrop-blur-md [scrollbar-gutter:stable] [--base-table-sticky-header-bg:hsl(var(--background)/0.94)] [--base-table-header-separator:hsl(var(--foreground)/0.24)]',\n tableHeader: 'border-white/10',\n tableFooter: 'bg-white/[0.05] [&_tr>*]:border-white/10',\n tableFooterBar:\n 'border-white/10 bg-white/[0.05] shadow-none backdrop-blur-md',\n tableFooterBarAttached: 'border-t border-white/10',\n tableRow: '[&>*]:border-white/10',\n tableRowInteractive: 'cursor-pointer [--base-table-row-hover-bg:hsl(var(--foreground)/0.08)]',\n tableHeadLabel: 'text-foreground',\n tableLoadingSkeleton: 'bg-white/[0.16]',\n layoutRoot:\n 'border-white/10 bg-white/[0.05] shadow-none backdrop-blur-md',\n layoutPane:\n 'border-white/10 bg-white/[0.06] shadow-none backdrop-blur-md',\n layoutPaneMuted: 'bg-white/[0.08]',\n layoutPaneSoft: 'bg-white/[0.10] shadow-none backdrop-blur-md',\n layoutResizeHandle: 'text-foreground/65 hover:bg-white/10 active:bg-white/15 focus-visible:bg-white/10',\n layoutResizeHandleIndicator: 'bg-white/45 group-hover/resize:bg-white/75',\n },\n dark: {\n buttonBase:\n 'border-white/15 text-white shadow-lg backdrop-blur',\n buttonDefault: 'bg-black/30 hover:bg-black/[0.45]',\n buttonPrimary: 'border-white/25 bg-white/20 text-white hover:bg-white/25',\n buttonMuted:\n 'border-white/10 bg-black/20 text-white/70 hover:bg-black/[0.35] hover:text-white',\n badgeDefault: 'border-white/10 bg-white/[0.08] text-white',\n badgeMuted: 'border-white/10 bg-black/20 text-white/70',\n panelRoot: 'border-white/10 bg-slate-950 text-white shadow-none',\n panelTitle: 'text-white',\n panelDescription: 'text-white/65',\n panelBody: 'text-white/85',\n panelFooter: 'border-white/10 bg-white/[0.04]',\n stateRoot: 'border-white/10 bg-slate-950 text-white shadow-none',\n stateIcon: 'bg-white/10 text-white/75',\n stateTitle: 'text-white',\n stateDescription: 'text-white/65',\n fieldLabel: 'text-white',\n fieldDescription: 'text-white/65',\n fieldMessage: 'text-white/65',\n controlWrapper:\n 'border-white/15 bg-black/30 text-white shadow-lg backdrop-blur focus-within:border-white/35',\n controlBase: 'text-white placeholder:text-white/45',\n selectChevron: 'text-white/65',\n selectMenu: 'border-white/15 bg-slate-950 text-white shadow-2xl',\n selectOption: 'text-white',\n selectOptionActive: 'bg-white/[0.12] text-white',\n selectOptionSelected: 'bg-white/[0.16] text-white',\n selectPlaceholder: 'text-white/45',\n switchTrack: 'border-white/15 bg-black/30 shadow-lg backdrop-blur',\n switchChecked: 'border-white/25 bg-white/25 text-white',\n switchLabel: 'text-white',\n switchDescription: 'text-white/65',\n checkboxBox: 'border-white/15 bg-black/30 text-white shadow-lg backdrop-blur',\n checkboxBoxChecked: 'border-white/25 bg-white/25 text-white',\n checkboxLabel: 'text-white',\n checkboxDescription: 'text-white/65',\n radioOption: 'border-white/10 bg-white/[0.06] text-white hover:bg-white/[0.08]',\n radioMarker: 'border-white/15 bg-black/30 text-white shadow-lg backdrop-blur',\n radioMarkerChecked: 'border-white/25 bg-white/25',\n radioIndicator: 'bg-white',\n radioLabel: 'text-white',\n radioDescription: 'text-white/65',\n dialogOverlay: 'bg-slate-950/75',\n dialogPanel: 'border-white/10 bg-slate-950 text-white shadow-2xl',\n dialogHeader: 'border-white/10',\n dialogTitle: 'text-white',\n dialogDescription: 'text-white/65',\n dialogBody: 'text-white/85',\n dialogFooter: 'border-white/10',\n dialogClose: 'text-white/65 hover:bg-white/[0.08] hover:text-white',\n dropdownMenu: 'border-white/15 bg-slate-950 text-white shadow-2xl',\n dropdownLabel: 'text-white/55',\n dropdownSeparator: 'bg-white/15',\n dropdownItem: 'text-white hover:bg-white/[0.10]',\n dropdownItemDescription: 'text-white/55',\n dropdownItemShortcut: 'text-white/55',\n tooltipContent: 'border-white/15 bg-slate-950 text-white shadow-2xl',\n noticeDefault: 'border-white/10 bg-white/[0.08] text-white',\n noticeMuted: 'border-white/10 bg-black/20 text-white/70',\n dividerRoot: 'border-white/15',\n dividerLabel: 'text-white/55',\n sectionHeaderEyebrow: 'text-white/55',\n sectionHeaderTitle: 'text-white',\n sectionHeaderDescription: 'text-white/65',\n tabsList: 'border-white/10 bg-white/[0.08]',\n tabsTrigger: 'text-white/65 hover:bg-white/[0.12] hover:text-white',\n tabsTriggerActive: 'bg-white/[0.16] text-white shadow-none',\n tabsPanel: 'border-white/10 bg-white/[0.06] text-white',\n segmentedRoot: 'border-white/10 bg-white/[0.08]',\n segmentedItem: 'text-white/65 hover:bg-white/[0.12] hover:text-white',\n segmentedItemActive: 'bg-white/[0.16] text-white shadow-none',\n progressTrack: 'bg-white/[0.12]',\n progressLabel: 'text-white',\n progressValue: 'text-white/65',\n skeletonRoot: 'bg-white/[0.14]',\n avatarRoot: 'border-white/15 bg-white/[0.10] text-white',\n avatarFallback: 'bg-white/[0.10] text-white/75',\n avatarText: 'text-white',\n avatarStatus: 'border-slate-950',\n toolbarRoot: 'border-white/10 bg-white/[0.06] text-white',\n toolbarTitle: 'text-white',\n toolbarDescription: 'text-white/65',\n breadcrumbLink: 'text-white/65 hover:text-white',\n breadcrumbCurrent: 'text-white',\n breadcrumbSeparator: 'text-white/45',\n paginationInfo: 'text-white/65',\n paginationButton: 'border-white/10 bg-white/[0.08] text-white hover:bg-white/[0.14]',\n paginationPage: 'bg-white/[0.14] text-white',\n descriptionListItem: 'border-white/10 bg-white/[0.06]',\n descriptionListTerm: 'text-white/55',\n descriptionListValue: 'text-white',\n accordionItem: 'border-white/10 bg-white/[0.06]',\n accordionTrigger: 'text-white hover:bg-white/[0.08]',\n accordionPanel: 'border-white/10 text-white/70',\n tableContainer:\n 'border-foreground/10 bg-background text-foreground shadow-none [scrollbar-gutter:stable] [--base-table-sticky-header-bg:hsl(var(--background)/0.98)] [--base-table-header-separator:hsl(var(--foreground)/0.16)]',\n tableRoot: 'text-white',\n tableHeader: 'border-white/10',\n tableFooter: 'bg-white/[0.05] [&_tr>*]:border-white/10',\n tableFooterBar: 'border-white/10 bg-white/[0.05] text-white/65',\n tableFooterBarAttached: 'border-t border-white/10',\n tableRow: '[&>*]:border-white/10',\n tableRowInteractive: 'cursor-pointer [--base-table-row-hover-bg:hsl(var(--foreground)/0.06)]',\n tableHead: 'text-white/65',\n tableHeadLabel: 'text-white',\n tableHeadDescription: 'text-white/55',\n tableHeadMeta: 'text-white/55',\n tableHeadIcon: 'text-white/55',\n tableHeadSortIcon: 'text-white/55',\n tableHeadDragHandle: 'text-white/55 hover:bg-white/[0.08]',\n tableHeadResizeHandle: 'after:bg-white/20 hover:after:bg-white/60',\n tableCell: 'text-white/85',\n tableEmptyIcon: 'bg-white/10 text-white/65',\n tableEmptyTitle: 'text-white',\n tableEmptyDescription: 'text-white/60',\n menuContent: 'border-white/10 bg-slate-950 text-white shadow-2xl',\n menuLabel: 'text-white/55',\n menuSeparator: 'bg-white/10',\n menuItem:\n 'text-white focus:bg-white/[0.10] focus:text-white data-[highlighted]:bg-white/[0.10] data-[highlighted]:text-white',\n menuItemDefault: 'text-white',\n menuItemPrimary: 'text-primary focus:text-primary data-[highlighted]:text-primary',\n menuItemSuccess:\n 'text-[hsl(var(--success,142_69%_58%))] focus:text-[hsl(var(--success,142_69%_58%))] data-[highlighted]:text-[hsl(var(--success,142_69%_58%))]',\n menuItemWarning:\n 'text-[hsl(var(--warning-foreground,53_98%_77%))] focus:text-[hsl(var(--warning-foreground,53_98%_77%))] data-[highlighted]:text-[hsl(var(--warning-foreground,53_98%_77%))]',\n menuItemDanger:\n 'text-destructive-text focus:text-destructive-text data-[highlighted]:text-destructive-text',\n menuItemMuted:\n 'text-white/65 focus:text-white data-[highlighted]:text-white',\n menuItemShortcut: 'text-white/45',\n menuSubTrigger:\n 'text-white focus:bg-white/[0.10] focus:text-white data-[highlighted]:bg-white/[0.10] data-[highlighted]:text-white data-[state=open]:bg-white/[0.12]',\n menuSubTriggerIcon: 'text-white/55',\n menuSubContent: 'border-white/10 bg-slate-950 text-white shadow-2xl',\n tableLoadingSkeleton: 'bg-white/[0.14]',\n layoutRoot: 'border-white/10 bg-slate-950 text-white shadow-none',\n layoutPane: 'border-white/10 bg-slate-950 text-white shadow-none',\n layoutPaneMuted: 'bg-white/[0.06]',\n layoutPaneSoft: 'bg-white/[0.08] shadow-none',\n layoutResizeHandle: 'text-white/65 hover:bg-white/10 active:bg-white/15 focus-visible:bg-white/10',\n layoutResizeHandleIndicator: 'bg-white/45 group-hover/resize:bg-white/75',\n },\n};\n\nconst presetDefaults: Record<\n BaseThemePresetId,\n Pick<BaseAppearance, 'density' | 'radius' | 'border' | 'background'>\n> = {\n default: {\n density: 'default',\n radius: 'md',\n border: 'solid',\n background: 'plain',\n },\n soft: {\n density: 'default',\n radius: 'lg',\n border: 'subtle',\n background: 'soft',\n },\n compact: {\n density: 'compact',\n radius: 'md',\n border: 'subtle',\n background: 'muted',\n },\n 'tinted-glass': {\n density: 'default',\n radius: 'lg',\n border: 'subtle',\n background: 'glass',\n },\n glass: {\n density: 'default',\n radius: 'xl',\n border: 'subtle',\n background: 'glass',\n },\n 'hard-edge': {\n density: 'compact',\n radius: 'none',\n border: 'strong',\n background: 'plain',\n },\n};\n\nconst presetSlots: Record<string, Partial<BaseThemeSlots>> = {\n soft: {\n buttonBase: 'font-medium',\n panelRoot: 'border-border/70',\n controlWrapper: 'font-medium',\n tabsTrigger: 'font-medium',\n segmentedItem: 'font-medium',\n toolbarRoot: 'border-border/70',\n tableContainer: 'border-border/70',\n tableFooterBar: 'border-border/70',\n tableHeadLabel: 'font-semibold',\n menuItemLabel: 'font-medium',\n },\n compact: {\n buttonBase: 'text-xs',\n badgeBase: 'text-xs',\n fieldLabel: 'text-xs',\n controlBase: 'text-xs',\n selectOption: 'text-xs',\n menuItem: 'text-xs',\n menuSubTrigger: 'text-xs',\n noticeBase: 'text-xs',\n sectionHeaderTitle: 'text-sm',\n tabsTrigger: 'text-xs',\n segmentedItem: 'text-xs',\n toolbarTitle: 'text-xs',\n paginationRoot: 'text-xs',\n },\n 'tinted-glass': {\n buttonPrimary: 'border-primary/25 bg-primary/15 text-primary-foreground hover:bg-primary/20',\n badgePrimary: 'border-primary/25 bg-primary/15 text-primary-foreground',\n noticePrimary: 'border-primary/25 bg-primary/15 text-primary-foreground',\n progressIndicator: 'bg-primary',\n avatarStatus: 'border-background',\n },\n glass: {\n panelRoot: 'shadow-[0_24px_80px_hsl(var(--foreground)/0.12)]',\n stateRoot: 'shadow-[0_24px_80px_hsl(var(--foreground)/0.12)]',\n noticeBase: 'shadow-[0_18px_60px_hsl(var(--foreground)/0.10)]',\n tabsPanel: 'shadow-[0_18px_60px_hsl(var(--foreground)/0.10)]',\n toolbarRoot: 'shadow-[0_18px_60px_hsl(var(--foreground)/0.10)]',\n descriptionListItem: 'shadow-[0_12px_40px_hsl(var(--foreground)/0.08)]',\n accordionItem: 'shadow-[0_12px_40px_hsl(var(--foreground)/0.08)]',\n },\n 'hard-edge': {\n buttonBase: 'shadow-none',\n panelRoot: 'shadow-none',\n stateRoot: 'shadow-none',\n controlWrapper: 'shadow-none',\n selectMenu: 'shadow-none',\n menuContent: 'shadow-none',\n menuSubContent: 'shadow-none',\n noticeBase: 'shadow-none',\n tabsList: 'shadow-none',\n tabsTriggerActive: 'shadow-none',\n tabsPanel: 'shadow-none',\n segmentedRoot: 'shadow-none',\n segmentedItemActive: 'shadow-none',\n toolbarRoot: 'shadow-none',\n descriptionListItem: 'shadow-none',\n accordionItem: 'shadow-none',\n },\n};\n\nfunction getPresetDefaults(preset: BaseThemePresetId) {\n return (\n presetDefaults[preset as keyof typeof presetDefaults] ?? presetDefaults.default\n );\n}\n\nconst slotKeys = Object.keys(baseSlots) as Array<keyof BaseThemeSlots>;\n\nfunction mergeSlots(\n ...sources: Array<Partial<BaseThemeSlots> | undefined>\n): ResolvedSlots {\n return slotKeys.reduce((resolved, key) => {\n resolved[key] = cn(...sources.map((source) => source?.[key]));\n return resolved;\n }, {} as ResolvedSlots);\n}\n\nfunction mergeStyles(...styleSets: Array<BaseThemeStyles | undefined>) {\n return Object.assign({}, ...styleSets.filter(Boolean));\n}\n\nexport function resolveBaseAppearance(\n appearance?: BaseAppearance,\n): BaseResolvedTheme {\n const preset = appearance?.preset ?? 'default';\n const variant = appearance?.variant ?? 'default';\n const defaults = getPresetDefaults(preset);\n const density = appearance?.density ?? defaults.density ?? 'default';\n const state = appearance?.state ?? 'idle';\n const radius = appearance?.radius ?? defaults.radius ?? 'md';\n const border = appearance?.border ?? defaults.border ?? 'solid';\n const background = appearance?.background ?? defaults.background ?? 'plain';\n\n return {\n preset,\n variant,\n density,\n state,\n radius,\n border,\n background,\n styles: mergeStyles(emptyStyles, appearance?.styles),\n slots: mergeSlots(\n baseSlots,\n presetSlots[preset],\n densitySlots[density],\n radiusSlots[radius],\n borderSlots[border],\n backgroundSlots[background],\n appearance?.slots,\n ),\n };\n}\n\nexport function getBaseButtonToneClassName(\n theme: BaseResolvedTheme,\n tone: BaseControlTone = 'default',\n active = false,\n) {\n return cn(\n tone === 'default' && theme.slots.buttonDefault,\n tone === 'primary' && theme.slots.buttonPrimary,\n tone === 'success' && theme.slots.buttonSuccess,\n tone === 'warning' && theme.slots.buttonWarning,\n tone === 'danger' && theme.slots.buttonDanger,\n tone === 'muted' && theme.slots.buttonMuted,\n active && theme.slots.buttonActive,\n );\n}\n\nexport function getBaseBadgeToneClassName(\n theme: BaseResolvedTheme,\n tone: BaseControlTone = 'default',\n) {\n return cn(\n tone === 'default' && theme.slots.badgeDefault,\n tone === 'primary' && theme.slots.badgePrimary,\n tone === 'success' && theme.slots.badgeSuccess,\n tone === 'warning' && theme.slots.badgeWarning,\n tone === 'danger' && theme.slots.badgeDanger,\n tone === 'muted' && theme.slots.badgeMuted,\n );\n}\n\nexport function getBaseNoticeToneClassName(\n theme: BaseResolvedTheme,\n tone: BaseControlTone = 'default',\n) {\n return cn(\n tone === 'default' && theme.slots.noticeDefault,\n tone === 'primary' && theme.slots.noticePrimary,\n tone === 'success' && theme.slots.noticeSuccess,\n tone === 'warning' && theme.slots.noticeWarning,\n tone === 'danger' && theme.slots.noticeDanger,\n tone === 'muted' && theme.slots.noticeMuted,\n );\n}\n\nexport function getBaseMenuItemToneClassName(\n theme: BaseResolvedTheme,\n tone: BaseControlTone = 'default',\n) {\n return cn(\n tone === 'default' && theme.slots.menuItemDefault,\n tone === 'primary' && theme.slots.menuItemPrimary,\n tone === 'success' && theme.slots.menuItemSuccess,\n tone === 'warning' && theme.slots.menuItemWarning,\n tone === 'danger' && theme.slots.menuItemDanger,\n tone === 'muted' && theme.slots.menuItemMuted,\n );\n}\n\nexport function getBaseTypographyToneClassName(\n theme: BaseResolvedTheme,\n tone: BaseTypographyTone = 'default',\n) {\n return cn(\n tone === 'default' && theme.slots.typographyToneDefault,\n tone === 'muted' && theme.slots.typographyToneMuted,\n tone === 'primary' && theme.slots.typographyTonePrimary,\n tone === 'success' && theme.slots.typographyToneSuccess,\n tone === 'warning' && theme.slots.typographyToneWarning,\n tone === 'danger' && theme.slots.typographyToneDanger,\n tone === 'inherit' && theme.slots.typographyToneInherit,\n );\n}\n\nexport function getBaseTextSizeClassName(\n theme: BaseResolvedTheme,\n size: BaseTypographySize = 'md',\n) {\n return cn(\n size === 'xs' && theme.slots.textSizeXs,\n size === 'sm' && theme.slots.textSizeSm,\n size === 'md' && theme.slots.textSizeMd,\n size === 'lg' && theme.slots.textSizeLg,\n size === 'xl' && theme.slots.textSizeXl,\n );\n}\n\nexport function getBaseHeadingSizeClassName(\n theme: BaseResolvedTheme,\n size: BaseHeadingSize = 'lg',\n) {\n return cn(\n size === 'xs' && theme.slots.headingSizeXs,\n size === 'sm' && theme.slots.headingSizeSm,\n size === 'md' && theme.slots.headingSizeMd,\n size === 'lg' && theme.slots.headingSizeLg,\n size === 'xl' && theme.slots.headingSizeXl,\n size === '2xl' && theme.slots.headingSize2xl,\n );\n}\n\nexport function getBaseListSpacingClassName(\n theme: BaseResolvedTheme,\n spacing: BaseListSpacing = 'default',\n) {\n return cn(\n spacing === 'compact' && theme.slots.listSpacingCompact,\n spacing === 'default' && theme.slots.listSpacingDefault,\n spacing === 'relaxed' && theme.slots.listSpacingRelaxed,\n );\n}\n\nexport function getBaseListMarkerClassName(\n theme: BaseResolvedTheme,\n marker: Exclude<BaseListMarker, 'auto'>,\n) {\n return cn(\n marker === 'none' && theme.slots.listMarkerNone,\n marker === 'disc' && theme.slots.listMarkerDisc,\n marker === 'circle' && theme.slots.listMarkerCircle,\n marker === 'square' && theme.slots.listMarkerSquare,\n marker === 'decimal' && theme.slots.listMarkerDecimal,\n marker === 'lower-alpha' && theme.slots.listMarkerLowerAlpha,\n marker === 'upper-alpha' && theme.slots.listMarkerUpperAlpha,\n );\n}\n\nconst cssLengthPattern = /^(?:0+(?:\\.0+)?|(?:\\d+(?:\\.\\d+)?|\\.\\d+)(?:%|cap|ch|cm|dvb|dvh|dvi|dvw|em|ex|ic|in|lh|lvb|lvh|lvi|lvw|mm|pc|pt|px|q|rem|rlh|svb|svh|svi|svw|vb|vh|vi|vmax|vmin|vw))$/i;\nconst cssLengthFunctions = new Set(['calc', 'clamp', 'max', 'min', 'var']);\nconst unsafeCssValuePattern = /[;{}<>\"'\\\\\\u0000-\\u001f\\u007f]/;\nconst gridTemplateTokenPattern = /(?:\\b(?:auto|fit-content|max-content|min-content|subgrid)\\b|(?:calc|clamp|max|min|minmax|repeat|var)\\s*\\(|(?:^|[\\s,(])(?:0+(?:\\.0+)?|(?:\\d+(?:\\.\\d+)?|\\.\\d+)(?:%|cap|ch|cm|dvb|dvh|dvi|dvw|em|ex|fr|ic|in|lh|lvb|lvh|lvi|lvw|mm|pc|pt|px|q|rem|rlh|svb|svh|svi|svw|vb|vh|vi|vmax|vmin|vw))(?:$|[\\s,)\\]]))/i;\n\nfunction hasBalancedDelimiters(value: string) {\n const pairs: Record<string, string> = { ')': '(', ']': '[' };\n const stack: string[] = [];\n\n for (const character of value) {\n if (character === '(' || character === '[') {\n stack.push(character);\n } else if (character === ')' || character === ']') {\n if (stack.pop() !== pairs[character]) return false;\n }\n }\n\n return stack.length === 0;\n}\n\nfunction isSupportedCssLengthFunction(value: string) {\n const match = /^([a-z]+)\\(([\\s\\S]+)\\)$/i.exec(value);\n if (!match || !cssLengthFunctions.has(match[1].toLowerCase())) return false;\n if (!match[2].trim() || !hasBalancedDelimiters(value)) return false;\n\n if (match[1].toLowerCase() === 'var') {\n return /^\\s*--[a-z0-9_-]+(?:\\s*,[\\s\\S]+)?\\s*$/i.test(match[2]);\n }\n\n return cssLengthPattern.test(match[2].trim()) || /\\b(?:calc|clamp|max|min|var)\\s*\\(/i.test(match[2]) || /(?:^|[\\s,(])(?:0+(?:\\.0+)?|(?:\\d+(?:\\.\\d+)?|\\.\\d+)(?:%|cap|ch|cm|dvb|dvh|dvi|dvw|em|ex|ic|in|lh|lvb|lvh|lvi|lvw|mm|pc|pt|px|q|rem|rlh|svb|svh|svi|svw|vb|vh|vi|vmax|vmin|vw))(?:$|[\\s,)])/i.test(match[2]);\n}\n\nexport function resolveBaseLayoutLength(\n componentName: string,\n propName: string,\n value: BaseLayoutLength,\n) {\n if (typeof value === 'number') {\n if (!Number.isFinite(value) || value < 0) {\n throw new RangeError(\n `${componentName} ${propName} must be a finite, non-negative number or a supported CSS length string.`,\n );\n }\n return `${value}px`;\n }\n\n if (typeof value !== 'string') {\n throw new TypeError(\n `${componentName} ${propName} must be a finite, non-negative number or a supported CSS length string.`,\n );\n }\n\n const normalized = value.trim();\n if (\n !normalized ||\n unsafeCssValuePattern.test(normalized) ||\n (!cssLengthPattern.test(normalized) &&\n !isSupportedCssLengthFunction(normalized))\n ) {\n throw new TypeError(\n `${componentName} ${propName} must be a non-empty, non-negative CSS length (for example 12px, 1rem, 5%, or var(--space)).`,\n );\n }\n\n return normalized;\n}\n\nexport function resolveBaseGridColumns(value: number | string) {\n if (typeof value === 'number') {\n if (!Number.isInteger(value) || value <= 0) {\n throw new RangeError(\n 'BaseGrid columns must be a positive integer or a supported CSS grid-template-columns string.',\n );\n }\n return `repeat(${value}, minmax(0, 1fr))`;\n }\n\n if (typeof value !== 'string') {\n throw new TypeError(\n 'BaseGrid columns must be a positive integer or a supported CSS grid-template-columns string.',\n );\n }\n\n const normalized = value.trim();\n if (\n !normalized ||\n unsafeCssValuePattern.test(normalized) ||\n /\\burl\\s*\\(/i.test(normalized) ||\n !hasBalancedDelimiters(normalized) ||\n !gridTemplateTokenPattern.test(normalized)\n ) {\n throw new TypeError(\n 'BaseGrid columns must be a non-empty CSS grid-template-columns value such as \"12rem minmax(0, 1fr)\" or \"repeat(3, minmax(0, 1fr))\".',\n );\n }\n\n return normalized;\n}\n\ntype BaseLayoutAlignValue =\n | 'flex-start'\n | 'center'\n | 'flex-end'\n | 'stretch'\n | 'baseline';\n\ntype BaseLayoutJustifyValue =\n | 'flex-start'\n | 'center'\n | 'flex-end'\n | 'space-between'\n | 'space-around'\n | 'space-evenly';\n\nconst layoutAlignValues: Record<BaseLayoutAlign, BaseLayoutAlignValue> = {\n start: 'flex-start',\n center: 'center',\n end: 'flex-end',\n stretch: 'stretch',\n baseline: 'baseline',\n};\n\nconst layoutJustifyValues: Record<\n BaseLayoutJustify,\n BaseLayoutJustifyValue\n> = {\n start: 'flex-start',\n center: 'center',\n end: 'flex-end',\n between: 'space-between',\n around: 'space-around',\n evenly: 'space-evenly',\n};\n\nexport function resolveBaseLayoutAlign(\n componentName: string,\n value: BaseLayoutAlign,\n): BaseLayoutAlignValue {\n if (!Object.prototype.hasOwnProperty.call(layoutAlignValues, value)) {\n throw new TypeError(\n `${componentName} align must be one of: start, center, end, stretch, baseline.`,\n );\n }\n return layoutAlignValues[value];\n}\n\nexport function resolveBaseLayoutJustify(\n componentName: string,\n value: BaseLayoutJustify,\n): BaseLayoutJustifyValue {\n if (!Object.prototype.hasOwnProperty.call(layoutJustifyValues, value)) {\n throw new TypeError(\n `${componentName} justify must be one of: start, center, end, between, around, evenly.`,\n );\n }\n return layoutJustifyValues[value];\n}\n","import * as Tooltip from '@radix-ui/react-tooltip';\nimport {\n Fragment,\n forwardRef,\n isValidElement,\n useState,\n type ReactNode,\n} from 'react';\n\nimport {\n useMonkeysBaseAppearance,\n useMonkeysComponentAttributes,\n} from '../../provider/context';\nimport { useBaseOverlayPortal } from './internal/overlayPortal';\nimport type { BaseTooltipPlacement, BaseTooltipProps } from './types';\nimport { resolveBaseAppearance } from './theme';\nimport { cn, hasRenderableNode } from './utils';\n\nfunction validateBoolean(value: unknown, name: string) {\n if (typeof value !== 'boolean') {\n throw new TypeError(`BaseTooltip ${name} must be a boolean.`);\n }\n}\n\nfunction validatePlacement(value: unknown) {\n if (\n value !== 'top' &&\n value !== 'bottom' &&\n value !== 'left' &&\n value !== 'right'\n ) {\n throw new TypeError(\n 'BaseTooltip placement must be \"top\", \"bottom\", \"left\", or \"right\".',\n );\n }\n}\n\nfunction normalizeTrigger(children: ReactNode, disabled: boolean) {\n if (isValidElement(children) && children.type !== Fragment) {\n return children;\n }\n\n return (\n <span tabIndex={!disabled && hasRenderableNode(children) ? 0 : undefined}>\n {children}\n </span>\n );\n}\n\nexport const BaseTooltip = forwardRef<HTMLSpanElement, BaseTooltipProps>(\n function BaseTooltip(\n {\n content,\n children,\n open,\n defaultOpen = false,\n placement = 'top',\n disabled = false,\n portal = false,\n appearance,\n className,\n classNames,\n style,\n onOpenChange,\n ...tooltipProps\n },\n ref,\n ) {\n if (open !== undefined) validateBoolean(open, 'open');\n validateBoolean(defaultOpen, 'defaultOpen');\n validateBoolean(disabled, 'disabled');\n validateBoolean(portal, 'portal');\n validatePlacement(placement);\n\n const resolvedAppearance = useMonkeysBaseAppearance(appearance);\n const componentAttributes = useMonkeysComponentAttributes();\n const theme = resolveBaseAppearance(resolvedAppearance);\n const overlayPortal = useBaseOverlayPortal({ disabled: !portal });\n const [uncontrolledOpen, setUncontrolledOpen] = useState(defaultOpen);\n const isControlled = open !== undefined;\n const canShow = !disabled && hasRenderableNode(content);\n const requestedOpen = isControlled ? open : uncontrolledOpen;\n const isOpen = canShow && requestedOpen;\n const portalState =\n portal && overlayPortal.shouldPortal ? 'portaled' : 'inline';\n\n const handleOpenChange = (nextOpen: boolean) => {\n if (nextOpen && !canShow) return;\n if (!isControlled) {\n setUncontrolledOpen(nextOpen);\n }\n onOpenChange?.(nextOpen);\n };\n\n const trigger = normalizeTrigger(children, disabled);\n const tooltipContent = canShow ? (\n <Tooltip.Content\n {...componentAttributes}\n side={placement}\n sideOffset={8}\n collisionPadding={8}\n data-monkeys-component=\"tooltip\"\n data-slot=\"content\"\n data-placement={placement}\n data-portal={portalState}\n data-disabled={disabled || undefined}\n className={cn(theme.slots.tooltipContent, classNames?.content)}\n style={theme.styles.tooltip}\n >\n {content}\n </Tooltip.Content>\n ) : null;\n\n return (\n <span\n {...componentAttributes}\n {...tooltipProps}\n ref={ref}\n data-monkeys-component=\"tooltip\"\n data-slot=\"root\"\n data-state={isOpen ? 'open' : 'closed'}\n data-placement={placement}\n data-portal={portalState}\n data-disabled={disabled || undefined}\n className={cn(theme.slots.tooltipRoot, classNames?.root, className)}\n style={style}\n >\n <Tooltip.Provider\n delayDuration={0}\n skipDelayDuration={0}\n disableHoverableContent\n >\n <Tooltip.Root\n open={isOpen}\n onOpenChange={handleOpenChange}\n delayDuration={0}\n disableHoverableContent\n >\n <span\n {...componentAttributes}\n data-monkeys-component=\"tooltip\"\n data-slot=\"trigger-wrapper\"\n data-state={isOpen ? 'open' : 'closed'}\n data-placement={placement}\n data-portal={portalState}\n data-disabled={disabled || undefined}\n className={cn(theme.slots.tooltipTrigger, classNames?.trigger)}\n >\n <Tooltip.Trigger\n asChild\n {...componentAttributes}\n data-monkeys-component=\"tooltip\"\n data-slot=\"trigger\"\n data-placement={placement}\n data-portal={portalState}\n data-disabled={disabled || undefined}\n >\n {trigger}\n </Tooltip.Trigger>\n </span>\n {portal && overlayPortal.shouldPortal ? (\n <Tooltip.Portal {...overlayPortal.radixPortalProps}>\n {tooltipContent}\n </Tooltip.Portal>\n ) : (\n tooltipContent\n )}\n </Tooltip.Root>\n </Tooltip.Provider>\n </span>\n );\n },\n);\n","import { HelpCircle } from 'lucide-react';\nimport { createContext, type ReactNode } from 'react';\n\nimport { BaseTooltip } from './BaseTooltip';\nimport { useMonkeysLocale } from '../../provider/context';\n\nexport const FormHelpPresentationContext = createContext(false);\n\n/** A separate focusable trigger keeps help out of a field's accessible label. */\nexport function BaseFormHelp({ children }: { children: ReactNode }) {\n const { locale } = useMonkeysLocale();\n if (children === undefined || children === null || children === '')\n return null;\n return (\n <BaseTooltip content={children} portal>\n <button\n type=\"button\"\n aria-label={\n typeof children === 'string'\n ? children\n : locale.startsWith('zh')\n ? '说明'\n : 'Help'\n }\n data-form-help\n className=\"inline-flex h-5 w-5 shrink-0 items-center justify-center rounded-md text-muted-foreground hover:text-foreground focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-ring\"\n >\n <HelpCircle className=\"h-4 w-4\" aria-hidden=\"true\" />\n </button>\n </BaseTooltip>\n );\n}\n","import { Children, cloneElement, createContext, forwardRef, isValidElement, useContext, useId, useImperativeHandle, useRef, useState, type ButtonHTMLAttributes, type InputHTMLAttributes, type TextareaHTMLAttributes, type HTMLAttributes, type ReactElement, type ReactNode, type CSSProperties } from 'react';\nimport * as SwitchPrimitive from '@radix-ui/react-switch';\nimport * as SelectPrimitive from '@radix-ui/react-select';\nimport * as TabsPrimitive from '@radix-ui/react-tabs';\nimport * as ToggleGroup from '@radix-ui/react-toggle-group';\nimport { cx, useControllable } from './internal';\nimport { Portal, useUIDirection, useUILocale } from './theme/theme';\nimport { Search, X, ChevronDown, ChevronUp, Check } from 'lucide-react';\nimport { sampleInk } from './sample-color';\nimport { ButtonLightEdge, type ButtonLightEdgeOptions } from './button-light-edge';\nimport { BaseFormHelp, FormHelpPresentationContext } from '../components/base/form-help';\n\ninterface ButtonBaseProps extends ButtonHTMLAttributes<HTMLButtonElement> { variant?: 'solid' | 'soft' | 'outline' | 'ghost'; tone?: 'neutral' | 'primary' | 'danger'; size?: 'sm' | 'md' | 'lg'; loading?: boolean; icon?: ReactNode; lightEdge?: boolean | ButtonLightEdgeOptions }\ntype ButtonShapeProps = { shape?: 'default' | 'tile' } | { shape: 'icon'; 'aria-label': string };\nexport type ButtonProps = ButtonBaseProps & ButtonShapeProps;\nexport const Button = forwardRef<HTMLButtonElement, ButtonProps>(function Button({ variant, shape = 'default', icon, tone = 'neutral', size = 'md', loading = false, lightEdge = false, type = 'button', className, children, onClick, onPointerDown, onKeyDown, ...props }, ref) {\n const direction = useUIDirection();\n return <button {...props} dir={props.dir ?? direction} ref={ref} type={type} className={cx('monkeys-ui-button', className)} data-light-edge={lightEdge ? true : undefined} data-shape={shape} data-variant={variant ?? (shape === 'icon' ? 'ghost' : shape === 'tile' ? 'outline' : 'solid')} data-tone={tone} data-size={size} onPointerDown={event => { event.currentTarget.dataset.input = 'pointer'; onPointerDown?.(event); }} onKeyDown={event => { event.currentTarget.dataset.input = 'keyboard'; onKeyDown?.(event); }} aria-busy={loading || undefined} aria-disabled={loading || props['aria-disabled']} onClick={event => { if (loading || props['aria-disabled'] === true || props['aria-disabled'] === 'true') { event.preventDefault(); return; } onClick?.(event); }}>{lightEdge ? <span className=\"monkeys-ui-button-light-edge\" aria-hidden=\"true\"><ButtonLightEdge {...(lightEdge === true ? {} : lightEdge)} /></span> : null}<span className=\"monkeys-ui-button-label\" data-loading={loading || undefined}>{icon ? <span className=\"monkeys-ui-button-icon\" aria-hidden=\"true\">{icon}</span> : null}{children}</span>{loading ? <span className=\"monkeys-ui-button-spinner\" aria-hidden=\"true\" /> : null}</button>;\n});\nexport type ToggleButtonProps = Omit<ButtonBaseProps, 'value' | 'defaultValue'> & ButtonShapeProps & { checked?: boolean; defaultChecked?: boolean; onCheckedChange?: (checked: boolean) => void };\nexport const ToggleButton = forwardRef<HTMLButtonElement, ToggleButtonProps>(function ToggleButton({ checked, defaultChecked, onCheckedChange, onClick, ...props }, ref) {\n const [value, setValue] = useControllable(checked, defaultChecked, false, onCheckedChange);\n return <Button {...props} ref={ref} aria-pressed={value} onClick={event => { onClick?.(event); if (!event.defaultPrevented) setValue(!value); }} />;\n});\n\nexport interface ColorOption { id: string; label: string; color: string }\nexport interface ColorSliderProps extends Omit<InputHTMLAttributes<HTMLInputElement>, 'type' | 'value' | 'defaultValue' | 'onChange' | 'min' | 'max' | 'step' | 'children'> {\n options: ColorOption[];\n value?: string;\n defaultValue?: string;\n onValueChange?: (value: string) => void;\n onValueCommit?: (value: string) => void;\n}\n/** A native, discrete range control. The gradient never creates selectable intermediate colors. */\nexport const ColorSlider = forwardRef<HTMLInputElement, ColorSliderProps>(function ColorSlider({ options, value, defaultValue, onValueChange, onValueCommit, disabled, readOnly, className, style, onPointerDown, onKeyDown, onPointerUp, onKeyUp, dir, ...props }, ref) {\n const field = useField(props);\n const direction = useUIDirection(dir === 'rtl' || dir === 'ltr' ? dir : undefined);\n const [selected, setSelected] = useControllable(value, defaultValue, options[0]?.id ?? '', onValueChange);\n const index = Math.max(0, options.findIndex(option => option.id === selected));\n const option = options[index];\n const position = options.length > 1 ? index / (options.length - 1) : 0.5;\n // Native hit target, visual thumb and gradient stops share the same inset.\n const location = (fraction: number) => `calc(${fraction * 100}% + ${0.5 - fraction} * var(--monkeys-ui-color-slider-thumb-width))`;\n const gradient = options.map((item, index) => {\n const t = options.length > 1 ? index / (options.length - 1) : 0;\n return `${item.color} ${location(t)}`;\n });\n const background = options.length > 1 ? `linear-gradient(to ${direction === 'rtl' ? 'left' : 'right'}, ${gradient.join(', ')})` : option?.color;\n const locked = disabled || readOnly || options.length < 2;\n const commit = (input: HTMLInputElement) => {\n const next = options[Number(input.value)];\n if (!locked && next) onValueCommit?.(next.id);\n };\n return <div className={cx('monkeys-ui-color-slider', className)} data-disabled={disabled || options.length === 0 || undefined} dir={direction} style={style}>\n <span className=\"monkeys-ui-color-slider-track\" style={{ background }} aria-hidden=\"true\" />\n <span className=\"monkeys-ui-color-slider-thumb\" data-ink={sampleInk(option?.color)} style={{ insetInlineStart: location(position), '--monkeys-ui-color-slider-selected': option?.color } as CSSProperties} aria-hidden=\"true\"><span className=\"monkeys-ui-color-slider-label\">{option?.label}</span></span>\n <input {...props} {...field} ref={ref} type=\"range\" dir={direction} min={0} max={Math.max(0, options.length - 1)} step={1} value={index} disabled={disabled || options.length === 0} aria-readonly={readOnly || undefined} aria-valuetext={option?.label ?? ''} className=\"monkeys-ui-color-slider-input\" onPointerDown={event => { onPointerDown?.(event); if (readOnly) event.preventDefault(); }} onKeyDown={event => { onKeyDown?.(event); if (readOnly && ['ArrowLeft','ArrowRight','ArrowUp','ArrowDown','Home','End','PageUp','PageDown'].includes(event.key)) event.preventDefault(); }} onChange={event => { if (!locked) { const next = options[Number(event.target.value)]; if (next) setSelected(next.id); } }} onPointerUp={event => { onPointerUp?.(event); if (!event.defaultPrevented) commit(event.currentTarget); }} onKeyUp={event => { onKeyUp?.(event); if (!event.defaultPrevented && ['ArrowLeft','ArrowRight','ArrowUp','ArrowDown','Home','End','PageUp','PageDown'].includes(event.key)) commit(event.currentTarget); }} />\n </div>;\n});\n\ninterface FieldContextValue { id: string; describedBy?: string; invalid?: boolean; required?: boolean }\nconst FieldContext = createContext<FieldContextValue | null>(null);\nfunction useField(props: { id?: string; dir?: string; 'aria-describedby'?: string; 'aria-invalid'?: InputHTMLAttributes<HTMLInputElement>['aria-invalid']; required?: boolean }) {\n const field = useContext(FieldContext);\n const direction = useUIDirection(props.dir === 'rtl' || props.dir === 'ltr' ? props.dir : undefined);\n return { id: field?.id ?? props.id, dir: props.dir ?? direction, 'aria-describedby': [field?.describedBy, props['aria-describedby']].filter(Boolean).join(' ') || undefined, 'aria-invalid': props['aria-invalid'] ?? field?.invalid, required: props.required ?? field?.required };\n}\nexport interface FieldProps extends Omit<HTMLAttributes<HTMLDivElement>, 'children'> { label: ReactNode; children: ReactElement; description?: ReactNode; error?: ReactNode; invalid?: boolean; required?: boolean }\nexport function Field({ id: explicitId, label, description, error, invalid, required, className, children, ...props }: FieldProps) {\n const generated = useId();\n const helpInTooltip = useContext(FormHelpPresentationContext);\n const id = explicitId ?? (isValidElement<{ id?: string }>(children) ? children.props.id : undefined) ?? generated;\n const describedBy = [description ? id + '-description' : '', error ? id + '-error' : ''].filter(Boolean).join(' ') || undefined;\n const fieldLabel = <label className=\"monkeys-ui-label\" htmlFor={id}>{label}{required ? <span className=\"monkeys-ui-required\" aria-hidden=\"true\"> *</span> : null}</label>;\n return <div {...props} className={cx('monkeys-ui-field', className)}>\n {helpInTooltip && description ? <div className=\"flex items-center gap-1\" data-slot=\"label-row\">{fieldLabel}<BaseFormHelp>{description}</BaseFormHelp></div> : fieldLabel}\n <FieldContext.Provider value={{ id, describedBy, invalid: invalid ?? !!error, required }}>{Children.only(children)}</FieldContext.Provider>\n {description ? <div id={id + '-description'} className={helpInTooltip ? 'monkeys-ui-visually-hidden' : 'monkeys-ui-description'}>{description}</div> : null}\n {error ? <div id={id + '-error'} className=\"monkeys-ui-error\" role=\"alert\">{error}</div> : null}\n </div>;\n}\nexport interface FieldsetProps extends HTMLAttributes<HTMLFieldSetElement> { legend: ReactNode; disabled?: boolean }\nexport function Fieldset({ legend, children, className, ...props }: FieldsetProps) { return <fieldset {...props} className={cx('monkeys-ui-fieldset', className)}>{legend != null ? <legend>{legend}</legend> : null}{children}</fieldset>; }\nexport const Input = forwardRef<HTMLInputElement, InputHTMLAttributes<HTMLInputElement>>(function Input({ className, ...props }, ref) { const field = useField(props); return <input {...props} {...field} className={cx('monkeys-ui-input', className)} ref={ref} />; });\nexport const Textarea = forwardRef<HTMLTextAreaElement, TextareaHTMLAttributes<HTMLTextAreaElement>>(function Textarea({ className, ...props }, ref) { const field = useField(props); return <textarea {...props} {...field} ref={ref} className={cx('monkeys-ui-textarea', className)} />; });\nexport function parseNumberValue(text: string): number | null { return /^-?(?:\\d+|\\d*\\.\\d+)$/.test(text.trim()) && Number.isFinite(Number(text)) ? Number(text) : null; }\nexport interface NumberInputProps extends Omit<InputHTMLAttributes<HTMLInputElement>, 'type' | 'value' | 'defaultValue' | 'onChange'> { value?: string; defaultValue?: string; onValueChange?: (text: string, detail: { numberValue: number | null }) => void }\nexport const NumberInput = forwardRef<HTMLInputElement, NumberInputProps>(function NumberInput({ value, defaultValue, onValueChange, ...props }, ref) {\n const [text, setText] = useControllable(value, defaultValue, '', next => onValueChange?.(next, { numberValue: parseNumberValue(next) }));\n return <Input {...props} type=\"text\" inputMode=\"decimal\" value={text} onChange={event => setText(event.target.value)} ref={ref} />;\n});\nexport interface SearchFieldProps extends Omit<InputHTMLAttributes<HTMLInputElement>, 'type' | 'value' | 'defaultValue' | 'onChange' | 'onSubmit'> { value?: string; defaultValue?: string; onValueChange?: (value: string) => void; onSearch?: (value: string) => void; clearLabel?: string }\nexport const SearchField = forwardRef<HTMLInputElement, SearchFieldProps>(function SearchField({ value, defaultValue, onValueChange, onSearch, clearLabel = '清空搜索', className, onKeyDown, disabled, readOnly, ...props }, ref) {\n const [text, setText] = useControllable(value, defaultValue, '', onValueChange);\n const composing = useRef(false);\n const input = useRef<HTMLInputElement>(null);\n useImperativeHandle(ref, () => input.current!, []);\n return <div className={cx('monkeys-ui-search', className)}><Search size={17} aria-hidden=\"true\" /><Input {...props} ref={input} type=\"search\" disabled={disabled} readOnly={readOnly} value={text} onChange={event => setText(event.target.value)} onCompositionStart={() => { composing.current = true; }} onCompositionEnd={() => { composing.current = false; }} onKeyDown={event => { onKeyDown?.(event); if (!event.defaultPrevented && event.key === 'Enter' && !composing.current && !event.nativeEvent.isComposing) { event.preventDefault(); onSearch?.(text); } }} />{text ? <Button shape=\"icon\" aria-label={clearLabel} size=\"sm\" disabled={disabled || readOnly} onClick={() => { if (!disabled && !readOnly) { setText(''); input.current?.focus(); } }}><X size={14} aria-hidden=\"true\" /></Button> : null}</div>;\n});\nexport interface SwitchProps extends Omit<SwitchPrimitive.SwitchProps, 'defaultChecked'> { defaultChecked?: boolean }\nexport const Switch = forwardRef<HTMLButtonElement, SwitchProps>(function Switch({ checked, defaultChecked, onCheckedChange, className, onPointerDown, onKeyDown, ...props }, ref) {\n const field = useField(props);\n const [value, setValue] = useControllable(checked, defaultChecked, false, onCheckedChange);\n return <SwitchPrimitive.Root {...props} {...field} ref={ref} checked={value} onCheckedChange={setValue} onPointerDown={event => { event.currentTarget.dataset.input = 'pointer'; onPointerDown?.(event); }} onKeyDown={event => { event.currentTarget.dataset.input = 'keyboard'; onKeyDown?.(event); }} className={cx('monkeys-ui-switch', className)}><SwitchPrimitive.Thumb className=\"monkeys-ui-switch-thumb\" /></SwitchPrimitive.Root>;\n});\nexport interface SelectOption { value: string; label: string; disabled?: boolean }\n/** Shared select appearance for popover-backed pickers; the parent owns selection semantics. */\nexport interface PickerTriggerProps extends ButtonHTMLAttributes<HTMLButtonElement> { indicator?: ReactNode }\nexport const PickerTrigger = forwardRef<HTMLButtonElement, PickerTriggerProps>(function PickerTrigger({ indicator = <ChevronDown size={12} />, className, children, type = 'button', ...props }, ref) {\n return <button {...props} ref={ref} type={type} className={cx('monkeys-ui-select', className)}><span className=\"min-w-0 truncate\">{children}</span><span className=\"shrink-0\" aria-hidden=\"true\">{indicator}</span></button>;\n});\nexport interface SelectProps extends Omit<SelectPrimitive.SelectProps, 'children'> { options: SelectOption[]; placeholder?: string; id?: string; className?: string; style?: React.CSSProperties; 'aria-label'?: string; 'aria-describedby'?: string; 'aria-invalid'?: boolean }\nexport const Select = forwardRef<HTMLButtonElement, SelectProps>(function Select({ options, placeholder, className, style, id, 'aria-label': label, 'aria-describedby': describedBy, 'aria-invalid': invalid, value, defaultValue, onValueChange, ...props }, ref) {\n const field = useField({ id, dir: props.dir, 'aria-describedby': describedBy, 'aria-invalid': invalid, required: props.required });\n const [selected, setSelected] = useControllable(value, defaultValue, '', onValueChange);\n const direction = useUIDirection(props.dir);\n const locale = useUILocale();\n const { required, ...fieldAttributes } = field;\n return <SelectPrimitive.Root {...props} dir={direction} required={required} value={selected} onValueChange={setSelected}><SelectPrimitive.Trigger ref={ref} {...fieldAttributes} aria-required={required || undefined} aria-label={label} className={cx('monkeys-ui-select', className)} style={style}><SelectPrimitive.Value placeholder={placeholder ?? locale.messages.multiSelect.placeholder} /><SelectPrimitive.Icon aria-hidden=\"true\"><ChevronDown size={12} /></SelectPrimitive.Icon></SelectPrimitive.Trigger><Portal><SelectPrimitive.Content className=\"monkeys-ui-select-content\" position=\"popper\" sideOffset={6}><SelectPrimitive.ScrollUpButton><ChevronUp size={12} aria-hidden=\"true\" /></SelectPrimitive.ScrollUpButton><SelectPrimitive.Viewport>{options.map(option => <SelectPrimitive.Item key={option.value} value={option.value} disabled={option.disabled} className=\"monkeys-ui-select-item\"><SelectPrimitive.ItemText>{option.label}</SelectPrimitive.ItemText><SelectPrimitive.ItemIndicator><Check size={12} aria-hidden=\"true\" /></SelectPrimitive.ItemIndicator></SelectPrimitive.Item>)}</SelectPrimitive.Viewport><SelectPrimitive.ScrollDownButton><ChevronDown size={12} aria-hidden=\"true\" /></SelectPrimitive.ScrollDownButton></SelectPrimitive.Content></Portal></SelectPrimitive.Root>;\n});\nexport interface ChoiceItem { value: string; label: ReactNode; ariaLabel?: string; disabled?: boolean }\nexport interface SegmentedControlProps extends Omit<HTMLAttributes<HTMLDivElement>, 'defaultValue' | 'onChange' | 'dir'> { dir?: 'ltr' | 'rtl'; items: ChoiceItem[]; value?: string; defaultValue?: string; onValueChange?: (value: string) => void; 'aria-label': string }\nexport function SegmentedControl({ items, value, defaultValue, onValueChange, className, ...props }: SegmentedControlProps) {\n const [selected, setSelected] = useControllable(value, defaultValue, items[0]?.value ?? '', onValueChange);\n const direction = useUIDirection(props.dir);\n return <ToggleGroup.Root {...props} dir={direction} type=\"single\" value={selected} onValueChange={next => { if (next) setSelected(next); }} className={cx('monkeys-ui-segmented', className)}>{items.map(item => <ToggleGroup.Item type=\"button\" key={item.value} value={item.value} aria-label={item.ariaLabel} disabled={item.disabled} className=\"monkeys-ui-segment\">{item.label}</ToggleGroup.Item>)}</ToggleGroup.Root>;\n}\nexport interface SectionTitleProps extends HTMLAttributes<HTMLElement> {\n as?: 'h1' | 'h2' | 'h3' | 'h4' | 'h5' | 'h6' | 'span';\n indicator?: boolean;\n}\n/** Shared title/indicator presentation; the parent owns navigation and selection. */\nexport function SectionTitle({ as: Element = 'h2', indicator = true, className, ...props }: SectionTitleProps) {\n return <Element {...props} className={cx('monkeys-ui-section-title', className)} data-indicator={indicator} />;\n}\nexport interface TabItem extends ChoiceItem { content: ReactNode }\nexport interface TabsProps extends Omit<TabsPrimitive.TabsProps, 'children'> { items: TabItem[]; 'aria-label': string }\nexport function Tabs({ items, value, defaultValue, onValueChange, className, 'aria-label': label, ...props }: TabsProps) {\n const [selected, setSelected] = useControllable(value, defaultValue, items[0]?.value ?? '', onValueChange);\n const direction = useUIDirection(props.dir);\n return <TabsPrimitive.Root {...props} dir={direction} value={selected} onValueChange={setSelected} className={cx('monkeys-ui-tabs', className)}><TabsPrimitive.List aria-label={label} className=\"monkeys-ui-tab-list\">{items.map(item => <TabsPrimitive.Trigger type=\"button\" key={item.value} value={item.value} aria-label={item.ariaLabel} disabled={item.disabled} className=\"monkeys-ui-tab\"><SectionTitle as=\"span\" indicator={selected === item.value}>{item.label}</SectionTitle></TabsPrimitive.Trigger>)}</TabsPrimitive.List>{items.map(item => <TabsPrimitive.Content key={item.value} value={item.value} className=\"monkeys-ui-tab-panel\">{item.content}</TabsPrimitive.Content>)}</TabsPrimitive.Root>;\n}\n","import { forwardRef, type HTMLAttributes } from 'react';\nimport * as ScrollArea from '@radix-ui/react-scroll-area';\nimport { useUIDirection } from './theme/theme';\nimport { cx } from './internal';\n\ninterface ScrollSurfaceProps extends HTMLAttributes<HTMLElement> {\n as?: 'section' | 'aside';\n}\n\n/** Internal bento surface: native scrolling with transient, overlaid drag handles. */\nexport const ScrollSurface = forwardRef<HTMLElement, ScrollSurfaceProps>(function ScrollSurface({ as: Element = 'section', children, className, onScroll, dir, ...props }, ref) {\n const direction = useUIDirection(dir === 'rtl' || dir === 'ltr' ? dir : undefined);\n return <ScrollArea.Root asChild type=\"scroll\" scrollHideDelay={700} dir={direction}>\n <Element {...props} ref={ref} className={cx('monkeys-ui-scroll-surface', className)}>\n <ScrollArea.Viewport className=\"monkeys-ui-scroll-viewport\" tabIndex={0} role=\"group\" aria-labelledby={props['aria-labelledby']} aria-label={props['aria-labelledby'] ? undefined : props['aria-label'] ?? '滚动内容'} onScroll={onScroll}>\n {children}\n </ScrollArea.Viewport>\n <ScrollArea.Scrollbar orientation=\"vertical\" className=\"monkeys-ui-scrollbar\" aria-hidden=\"true\"><ScrollArea.Thumb className=\"monkeys-ui-scroll-thumb\" /></ScrollArea.Scrollbar>\n <ScrollArea.Scrollbar orientation=\"horizontal\" className=\"monkeys-ui-scrollbar\" aria-hidden=\"true\"><ScrollArea.Thumb className=\"monkeys-ui-scroll-thumb\" /></ScrollArea.Scrollbar>\n </Element>\n </ScrollArea.Root>;\n});\n","import { createContext, useContext, type Context, type ReactNode } from 'react';\n\n// Public entry points are independently bundled; share context identity, never provider values.\nconst key = Symbol.for('@inf-monkeys-tech/monkeys-design/bento-depth@1');\nconst host = globalThis as typeof globalThis & { [key]?: Context<number> };\nconst BentoDepth = host[key] ?? (host[key] = createContext(0));\n\nexport function useBentoDepth(): number {\n return useContext(BentoDepth);\n}\n\n/** A page or overlay starts an independent surface hierarchy without adding DOM. */\nexport function BentoDepthProvider({\n children,\n depth,\n}: {\n children?: ReactNode;\n depth: number;\n}) {\n return <BentoDepth.Provider value={depth}>{children}</BentoDepth.Provider>;\n}\n\nexport function BentoScope({ children }: { children?: ReactNode }) {\n return <BentoDepthProvider depth={0}>{children}</BentoDepthProvider>;\n}\n","import type { CSSProperties } from \"react\";\nimport { useMonkeysResolvedTheme } from \"../../provider/context\";\nimport {\n BENTO_STYLE_FIELDS,\n resolveBentoTokens,\n} from \"../../theme-system/bento-tokens\";\nimport { useBentoDepth } from \"./BentoScope\";\n\nexport const bentoSurfaceClassName =\n \"rounded-[var(--monkeys-bento-radius)] border-[length:var(--monkeys-bento-border-width)] border-[color:var(--monkeys-bento-border-color)] [border-style:var(--monkeys-bento-border-style)] bg-[var(--monkeys-bento-background)] shadow-[shadow:var(--monkeys-bento-shadow)] p-[var(--monkeys-bento-padding)] gap-[var(--monkeys-bento-gap)]\";\n\n/** Supply one surface recipe without adding a layout wrapper. */\nexport function useBentoSurface() {\n const parentDepth = useBentoDepth();\n const level = parentDepth + 1;\n const recipe = resolveBentoTokens(useMonkeysResolvedTheme(), level);\n const variables = Object.fromEntries(\n BENTO_STYLE_FIELDS.map((field) => [\n `--monkeys-bento-${field.replace(/[A-Z]/g, (letter) => `-${letter.toLowerCase()}`)}`,\n recipe.values[field],\n ]),\n ) as CSSProperties;\n return { parentDepth, level, variables };\n}\n","import { forwardRef, useId, useRef, type HTMLAttributes, type ReactElement, type ReactNode, type RefObject } from 'react';\nimport * as DialogPrimitive from '@radix-ui/react-dialog';\nimport * as MenuPrimitive from '@radix-ui/react-dropdown-menu';\nimport * as TooltipPrimitive from '@radix-ui/react-tooltip';\nimport * as AvatarPrimitive from '@radix-ui/react-avatar';\nimport { Button } from './controls';\nimport { Portal, useUIDirection, useUILocale, useTooltipScope } from './theme/theme';\nimport { cx, useControllable } from './internal';\nimport { X } from 'lucide-react';\nimport { ScrollSurface } from './scroll-surface';\nimport { useBentoSurface } from '../components/runtime/useBentoSurface';\n\nexport interface TooltipProps { content: ReactNode; children: ReactElement; delayDuration?: number; side?: 'top' | 'bottom' | 'left' | 'right' }\nexport function Tooltip({ content, children, delayDuration, side = 'top' }: TooltipProps) {\n const scoped = useTooltipScope();\n const tooltip = <TooltipPrimitive.Root delayDuration={delayDuration}><TooltipPrimitive.Trigger asChild>{children}</TooltipPrimitive.Trigger><Portal><TooltipPrimitive.Content side={side} sideOffset={7} className=\"monkeys-ui-tooltip\">{content}</TooltipPrimitive.Content></Portal></TooltipPrimitive.Root>;\n return scoped ? tooltip : <TooltipPrimitive.Provider delayDuration={delayDuration ?? 500} skipDelayDuration={300}>{tooltip}</TooltipPrimitive.Provider>;\n}\nexport interface MenuItem { id: string; label: ReactNode; disabled?: boolean; danger?: boolean; onSelect?: () => void }\nexport interface MenuProps { trigger: ReactElement; items: MenuItem[]; label?: string; open?: boolean; defaultOpen?: boolean; onOpenChange?: (open: boolean) => void; onCloseAutoFocus?: (event: Event) => void }\nexport function Menu({ trigger, items, label, open, defaultOpen, onOpenChange, onCloseAutoFocus }: MenuProps) {\n const [shown, setShown] = useControllable(open, defaultOpen, false, onOpenChange);\n const direction = useUIDirection();\n return <MenuPrimitive.Root dir={direction} open={shown} onOpenChange={setShown}><MenuPrimitive.Trigger asChild>{trigger}</MenuPrimitive.Trigger><Portal><MenuPrimitive.Content aria-label={label} sideOffset={6} align=\"end\" onCloseAutoFocus={onCloseAutoFocus} className=\"monkeys-ui-menu\">{items.map(item => <MenuPrimitive.Item key={item.id} disabled={item.disabled} className=\"monkeys-ui-menu-item\" data-danger={item.danger || undefined} onSelect={item.onSelect}>{item.label}</MenuPrimitive.Item>)}</MenuPrimitive.Content></Portal></MenuPrimitive.Root>;\n}\nexport interface DialogProps { frame?: 'default' | 'bento'; size?: 'md' | 'xl'; scroll?: 'dialog' | 'body'; backdrop?: 'dim' | 'blur'; surface?: 'default' | 'gradient'; open?: boolean; defaultOpen?: boolean; onOpenChange?: (open: boolean) => void; trigger?: ReactElement; title: ReactNode; description?: ReactNode; children?: ReactNode; actions?: ReactNode; initialFocusRef?: RefObject<HTMLElement>; restoreFocusRef?: RefObject<HTMLElement>; onCloseAutoFocus?: (event: Event) => void; className?: string; closeLabel?: string }\nexport function Dialog({ frame = 'default', size = 'md', scroll = 'dialog', backdrop = 'dim', surface = 'default', open, defaultOpen, onOpenChange, trigger, title, description, children, actions, initialFocusRef, restoreFocusRef, onCloseAutoFocus, className, closeLabel }: DialogProps) {\n const [shown, setShown] = useControllable(open, defaultOpen, false, onOpenChange);\n const close = useRef<HTMLButtonElement>(null);\n const bento = useBentoSurface();\n const locale = useUILocale();\n return <DialogPrimitive.Root open={shown} onOpenChange={setShown}>{trigger ? <DialogPrimitive.Trigger asChild>{trigger}</DialogPrimitive.Trigger> : null}<Portal><DialogPrimitive.Overlay data-backdrop={backdrop} className=\"monkeys-ui-dialog-overlay\" /><DialogPrimitive.Content data-frame={frame} style={frame === 'bento' ? bento.variables : undefined} data-size={size} data-scroll={scroll} data-surface={surface} className={cx('monkeys-ui-dialog', className)} {...(description ? {} : { 'aria-describedby': undefined })} onOpenAutoFocus={event => {\n event.preventDefault();\n // Radix registers its dismissable layer after mounting. Focus marks the\n // dialog ready for keyboard input, so expose it after that registration.\n const button = close.current;\n button?.ownerDocument.defaultView?.requestAnimationFrame(() => {\n if (button.isConnected && button.closest('[role=\"dialog\"]')?.getAttribute('data-state') === 'open') (initialFocusRef?.current ?? button).focus();\n });\n }} onCloseAutoFocus={event => { onCloseAutoFocus?.(event); if (!event.defaultPrevented && restoreFocusRef?.current) { event.preventDefault(); restoreFocusRef.current.focus(); } }}><DialogPrimitive.Title className=\"monkeys-ui-dialog-title\">{title}</DialogPrimitive.Title>{description ? <DialogPrimitive.Description className=\"monkeys-ui-description\">{description}</DialogPrimitive.Description> : null}<DialogPrimitive.Close asChild><Button shape=\"icon\" ref={close} aria-label={closeLabel ?? locale.messages.dialog.close} className=\"monkeys-ui-dialog-close\"><X size={16} aria-hidden=\"true\" /></Button></DialogPrimitive.Close>{scroll === 'body' ? <ScrollSurface className=\"monkeys-ui-dialog-body\" aria-label={typeof title === 'string' ? title + '内容' : '对话框内容'}>{children}</ScrollSurface> : children}{actions ? <div className=\"monkeys-ui-dialog-actions\">{actions}</div> : null}</DialogPrimitive.Content></Portal></DialogPrimitive.Root>;\n}\nexport interface BadgeProps extends HTMLAttributes<HTMLSpanElement> { tone?: 'neutral' | 'primary' | 'danger' | 'success' }\nexport function Badge({ tone = 'neutral', className, ...props }: BadgeProps) { return <span {...props} data-tone={tone} className={cx('monkeys-ui-badge', className)} />; }\nexport interface NoticeProps extends HTMLAttributes<HTMLDivElement> { tone?: 'neutral' | 'danger' | 'success'; action?: ReactNode }\nexport function Notice({ tone = 'neutral', action, children, className, ...props }: NoticeProps) { return <div role={tone === 'danger' ? 'alert' : 'status'} {...props} data-tone={tone} className={cx('monkeys-ui-notice', className)}><div>{children}</div>{action}</div>; }\nexport interface EmptyStateProps extends HTMLAttributes<HTMLDivElement> { title: string; description?: ReactNode; action?: ReactNode }\nexport function EmptyState({ title, description, action, className, ...props }: EmptyStateProps) { return <div {...props} className={cx('monkeys-ui-empty', className)}><strong>{title}</strong>{description ? <p>{description}</p> : null}{action}</div>; }\nexport interface LoadingStateProps extends HTMLAttributes<HTMLDivElement> { label?: string }\nexport function LoadingState({ label, className, ...props }: LoadingStateProps) { const locale = useUILocale(); return <div role=\"status\" aria-busy=\"true\" {...props} className={cx('monkeys-ui-loading', className)}><span className=\"monkeys-ui-inline-spinner\" aria-hidden=\"true\" />{label ?? locale.messages.loading.spinner}</div>; }\nexport interface AvatarProps extends AvatarPrimitive.AvatarProps { src?: string; alt: string; fallback?: ReactNode }\nexport const Avatar = forwardRef<HTMLSpanElement, AvatarProps>(function Avatar({ src, alt, fallback, className, ...props }, ref) { return <AvatarPrimitive.Root {...props} ref={ref} className={cx('monkeys-ui-avatar', className)}><AvatarPrimitive.Image src={src} alt={alt} /><AvatarPrimitive.Fallback>{fallback ?? alt.slice(0, 1)}</AvatarPrimitive.Fallback></AvatarPrimitive.Root>; });\n","import type { ElementType } from 'react';\n\nimport type { BasePanelProps } from './types';\nimport { resolveBaseAppearance } from './theme';\nimport { cn, hasRenderableNode } from './utils';\n\nexport function BasePanel({\n as = 'article',\n title,\n description,\n media,\n header,\n footer,\n children,\n interactive,\n selected,\n disabled,\n appearance,\n variant,\n density,\n state,\n className,\n classNames,\n style,\n ...panelProps\n}: BasePanelProps) {\n const theme = resolveBaseAppearance({ ...appearance, variant, density, state });\n const Component = as as ElementType;\n const hasHeader =\n header !== undefined\n ? hasRenderableNode(header)\n : hasRenderableNode(title) || hasRenderableNode(description);\n const hasMedia = media !== undefined && media !== null;\n const bodyIsStandalone = !hasHeader && !hasMedia;\n\n return (\n <Component\n {...panelProps}\n aria-disabled={disabled || undefined}\n data-variant={theme.variant}\n data-density={theme.density}\n data-state={state ?? (disabled ? 'disabled' : selected ? 'selected' : 'idle')}\n data-monkeys-component=\"panel\"\n data-slot=\"root\"\n data-interactive={interactive || undefined}\n data-selected={selected || undefined}\n data-disabled={disabled || undefined}\n className={cn(\n theme.slots.panelRoot,\n interactive && !disabled && theme.slots.panelInteractive,\n selected && theme.slots.panelSelected,\n disabled && theme.slots.panelDisabled,\n classNames?.root,\n className,\n )}\n style={{\n ...theme.styles.panel,\n ...style,\n }}\n >\n {hasMedia ? (\n <div\n data-slot=\"media\"\n className={cn(theme.slots.panelMedia, classNames?.media)}\n >\n {media}\n </div>\n ) : null}\n\n {hasHeader ? (\n <div\n data-slot=\"header\"\n className={cn(theme.slots.panelHeader, classNames?.header)}\n style={theme.styles.panelHeader}\n >\n {header !== undefined ? (\n header\n ) : (\n <>\n {hasRenderableNode(title) ? (\n <div\n data-slot=\"title\"\n className={cn(theme.slots.panelTitle, classNames?.title)}\n >\n {title}\n </div>\n ) : null}\n {hasRenderableNode(description) ? (\n <div\n data-slot=\"description\"\n className={cn(\n theme.slots.panelDescription,\n classNames?.description,\n )}\n >\n {description}\n </div>\n ) : null}\n </>\n )}\n </div>\n ) : null}\n\n {children !== undefined && children !== null ? (\n <div\n data-slot=\"body\"\n className={cn(\n theme.slots.panelBody,\n bodyIsStandalone && theme.slots.panelBodyStandalone,\n classNames?.body,\n )}\n style={theme.styles.panelBody}\n >\n {children}\n </div>\n ) : null}\n\n {footer !== undefined && footer !== null ? (\n <div\n data-slot=\"footer\"\n className={cn(theme.slots.panelFooter, classNames?.footer)}\n style={theme.styles.panelFooter}\n >\n {footer}\n </div>\n ) : null}\n </Component>\n );\n}\n","import type { ComponentType, ReactNode, CSSProperties } from \"react\";\nimport { useMonkeysBaseAppearance } from \"../../provider/context\";\nimport { BentoDepthProvider } from \"../runtime/BentoScope\";\nimport { useBentoSurface } from \"../runtime/useBentoSurface\";\n\nimport { BasePanel } from \"../base/BasePanel\";\nimport type { BasePanelClassNames, BasePanelProps } from \"../base/types\";\nimport { cn } from \"../base/utils\";\n\nexport interface BentoPanelProps\n extends Omit<\n BasePanelProps,\n \"children\" | \"className\" | \"classNames\" | \"header\" | \"title\"\n > {\n children?: ReactNode;\n className?: string;\n contentClassName?: string;\n chrome?: \"panel\" | \"plain\";\n /** Allow header actions to wrap below the title in narrow containers. */\n headerWrap?: boolean;\n title?: ReactNode;\n titleIcon?: ComponentType<{\n className?: string;\n color?: string;\n stroke?: string;\n }>;\n action?: ReactNode;\n classNames?: Omit<BasePanelClassNames, \"header\" | \"body\"> & {\n header?: string;\n body?: string;\n };\n}\n\nconst ownsPadding = (\n styles: CSSProperties | undefined,\n classes: string | undefined,\n) =>\n Object.keys(styles ?? {}).some(\n (key) =>\n key.startsWith(\"padding\") &&\n styles?.[key as keyof CSSProperties] !== undefined,\n ) || /(?:^|[\\s:])!?p[xytrblse]?-(?:\\[|[a-z0-9])/.test(classes ?? \"\");\n\n/**\n * Add native `data-surface=\"glow\"` to opt into the shared radial surface.\n * Color follows component.bento.{default,levels.levelN}.glowColor tokens;\n * unmarked and chrome=\"plain\" panels retain their normal backgrounds.\n */\nexport function BentoPanel({\n children,\n className,\n contentClassName,\n chrome = \"panel\",\n headerWrap = false,\n title,\n titleIcon: TitleIcon,\n action,\n appearance: explicitAppearance,\n classNames,\n ...props\n}: BentoPanelProps) {\n const { parentDepth, level, variables } = useBentoSurface();\n const appearance = useMonkeysBaseAppearance(explicitAppearance);\n const framed = chrome === \"panel\";\n const bodyOwnsPadding = ownsPadding(\n appearance?.styles?.panelBody,\n [classNames?.body, contentClassName, appearance?.slots?.panelBody].join(\n \" \",\n ),\n );\n return (\n <BentoDepthProvider depth={framed ? level : parentDepth}>\n <BasePanel\n as=\"section\"\n appearance={{\n ...appearance,\n slots: {\n ...appearance?.slots,\n panelRoot: appearance?.slots?.panelRoot,\n },\n styles: {\n ...appearance?.styles,\n // Token padding utilities may otherwise win over px-0/p-0 in host CSS.\n panelHeader: {\n ...(chrome === \"plain\"\n ? {\n padding: 0,\n paddingBlockEnd: \"var(--global-spacing-lg, 1rem)\",\n }\n : {}),\n ...appearance?.styles?.panelHeader,\n },\n panelBody: {\n ...(!bodyOwnsPadding || chrome === \"plain\" ? { padding: 0 } : {}),\n ...appearance?.styles?.panelBody,\n },\n },\n }}\n classNames={{\n ...classNames,\n root: cn(\n \"min-h-0\",\n framed && \"gap-[var(--monkeys-bento-gap)]\",\n framed &&\n appearance?.radius === undefined &&\n !appearance?.preset &&\n \"rounded-[var(--monkeys-bento-radius)]\",\n framed &&\n appearance?.border === undefined &&\n !appearance?.preset &&\n \"border-[length:var(--monkeys-bento-border-width)] border-[color:var(--monkeys-bento-border-color)] [border-style:var(--monkeys-bento-border-style)]\",\n framed &&\n appearance?.background === undefined &&\n !appearance?.preset &&\n \"bg-[var(--monkeys-bento-background)]\",\n framed &&\n !appearance?.preset &&\n appearance?.background === undefined &&\n \"shadow-[shadow:var(--monkeys-bento-shadow)]\",\n framed && !bodyOwnsPadding && \"p-[var(--monkeys-bento-padding)]\",\n !framed && \"border-0 bg-transparent shadow-none\",\n appearance?.slots?.panelRoot,\n classNames?.root,\n className,\n ),\n header: cn(\n \"flex min-w-0 items-center gap-[var(--monkeys-bento-gap,var(--global-spacing,0.75rem))] border-b border-border p-0 pb-[var(--monkeys-bento-gap)]\",\n chrome === \"plain\" && \"border-0 px-0 pt-0 pb-token-lg\",\n classNames?.header,\n ),\n body: cn(\n \"flex min-h-0 flex-col gap-[var(--monkeys-bento-gap,var(--global-spacing,0.75rem))] p-0\",\n appearance?.slots?.panelBody,\n classNames?.body,\n contentClassName,\n ),\n footer: cn(\n \"px-0 pb-0 pt-[var(--monkeys-bento-gap)]\",\n classNames?.footer,\n ),\n }}\n header={\n title ? (\n <div\n className={cn(\n \"flex min-w-0 flex-1 items-center justify-between gap-token-md\",\n headerWrap && \"flex-wrap\",\n )}\n >\n <div\n className={cn(\n \"flex min-w-0 flex-1 items-center gap-token-sm\",\n headerWrap && \"basis-auto\",\n )}\n >\n {TitleIcon ? (\n <span className=\"inline-flex size-8 shrink-0 items-center justify-center rounded-md border border-primary/30 bg-primary/10 text-primary\">\n <TitleIcon\n className=\"size-4 text-primary\"\n color=\"currentColor\"\n stroke=\"currentColor\"\n />\n </span>\n ) : null}\n <div className=\"min-w-0\">\n <h2 className=\"truncate text-base font-semibold text-foreground\">\n {title}\n </h2>\n {props.description ? (\n <div className=\"mt-1 text-sm text-muted-foreground\">\n {props.description}\n </div>\n ) : null}\n </div>\n </div>\n {action ? (\n <div className={cn(\"shrink-0\", headerWrap && \"max-w-full\")}>\n {action}\n </div>\n ) : null}\n </div>\n ) : undefined\n }\n {...props}\n data-monkeys-bento-level={framed ? level : undefined}\n style={{ ...(framed ? variables : {}), ...props.style }}\n >\n {children}\n </BasePanel>\n </BentoDepthProvider>\n );\n}\n","import { createContext } from 'react';\n\n/** Internal surface choice for compound controls embedded in a Bento workspace. */\nexport const PanelSurfaceContext = createContext<'catalog' | 'bento'>('catalog');\n","import { useEffect, useRef, useState } from 'react';\nimport type * as Shaders from 'shaders/react';\nimport tokens from './theme/tokens.json';\n\n/** Shared shader settings keep banner and detail surfaces visually consistent. */\nconst chromaFlow = { baseColor: tokens.seed.ui.color.blueGlow.$value.hex, intensity: 0.7, momentum: 23, radius: 6, upColor: tokens.seed.ui.color.violetGlow.$value.hex };\n\nexport function SurfaceEffect({ variant }: { variant: 'banner' | 'chroma' }) {\n const [enabled, setEnabled] = useState(false);\n const [shaders, setShaders] = useState<typeof Shaders | null>(null);\n const [rendererState, setRendererState] = useState<'loading' | 'ready' | 'unavailable'>('loading');\n const surface = useRef<HTMLDivElement>(null);\n\n useEffect(() => {\n const reducedMotion = window.matchMedia('(prefers-reduced-motion: reduce)');\n const forcedColors = window.matchMedia('(forced-colors: active)');\n const update = () => setEnabled(!reducedMotion.matches && !forcedColors.matches);\n update();\n reducedMotion.addEventListener('change', update);\n forcedColors.addEventListener('change', update);\n return () => {\n reducedMotion.removeEventListener('change', update);\n forcedColors.removeEventListener('change', update);\n };\n }, []);\n\n useEffect(() => {\n if (!enabled || shaders) return;\n let active = true;\n import('shaders/react').then(module => {\n if (active) setShaders(module);\n }).catch(() => { if (active) setRendererState('unavailable'); });\n return () => { active = false; };\n }, [enabled, shaders]);\n\n useEffect(() => {\n const element = surface.current;\n const parent = element?.parentElement;\n if (!enabled || variant !== 'chroma' || rendererState === 'ready' || !element || !parent) return;\n // The decorative layer does not intercept input; listen on its content surface.\n const move = (event: PointerEvent) => {\n if (event.pointerType === 'touch') return;\n const bounds = element.getBoundingClientRect();\n element.style.setProperty('--monkeys-ui-surface-x', `${event.clientX - bounds.left}px`);\n element.style.setProperty('--monkeys-ui-surface-y', `${event.clientY - bounds.top}px`);\n element.dataset.pointerActive = '';\n };\n const leave = () => { delete element.dataset.pointerActive; };\n parent.addEventListener('pointerenter', move);\n parent.addEventListener('pointermove', move);\n parent.addEventListener('pointerleave', leave);\n return () => {\n parent.removeEventListener('pointerenter', move);\n parent.removeEventListener('pointermove', move);\n parent.removeEventListener('pointerleave', leave);\n leave();\n element.style.removeProperty('--monkeys-ui-surface-x');\n element.style.removeProperty('--monkeys-ui-surface-y');\n };\n }, [enabled, variant, rendererState]);\n\n return <div ref={surface} className={variant === 'banner' ? 'monkeys-ui-brand-banner-effect' : 'monkeys-ui-card-surface-effect'} data-monkeys-ui-brand-effect={variant === 'banner' ? '' : undefined} data-monkeys-ui-card-effect={variant === 'chroma' ? '' : undefined} data-renderer-state={enabled ? rendererState : 'disabled'} aria-hidden=\"true\">\n {enabled && variant === 'chroma' && rendererState !== 'ready' ? <div className=\"monkeys-ui-shader-fallback\" data-effect=\"surface-chroma\" /> : null}\n {enabled && shaders ? <shaders.Shader disableTelemetry onReady={() => setRendererState('ready')} onUnavailable={() => setRendererState('unavailable')} style={{ width: '100%', height: '100%' }}>\n <shaders.ChromaFlow {...chromaFlow} />\n {variant === 'banner' ? <shaders.Aurora colorA={chromaFlow.baseColor} colorB={chromaFlow.upColor} colorSpace=\"hsl\" curtainCount={2} height={81} intensity={64} rayDensity={12} speed={10} waviness={39} transform={{ rotation: 180 }} /> : null}\n </shaders.Shader> : null}\n </div>;\n}\n","import { forwardRef, useContext, useId, useState, type AnchorHTMLAttributes, type ButtonHTMLAttributes, type CSSProperties, type HTMLAttributes, type ReactNode } from 'react';\nimport { BentoPanel } from '../components/primitives/BentoPanel';\nimport { PanelSurfaceContext } from './panel-surface';\nimport { cx } from './internal';\nimport { Check, ImageOff } from 'lucide-react';\nimport { ScrollSurface } from './scroll-surface';\nimport { SurfaceEffect } from './surface-effect';\nimport { Tooltip } from './overlays';\n\nexport interface PanelProps extends Omit<HTMLAttributes<HTMLElement>, 'title'> { title?: ReactNode; actions?: ReactNode; density?: 'comfortable' | 'compact'; classNames?: { header?: string; body?: string }; children?: ReactNode }\nexport const Panel = forwardRef<HTMLElement, PanelProps>(function Panel({ title, actions, density = 'comfortable', classNames, className, children, ...props }, ref) {\n const id = useId();\n const surface = useContext(PanelSurfaceContext);\n if (surface === 'bento') return <BentoPanel {...props} className={cx('monkeys-ui-bento-panel', className)}>\n <ScrollSurface ref={ref} aria-labelledby={title ? id : props['aria-labelledby']} className=\"monkeys-ui-bento-scroll\">\n {title || actions ? <div className={cx('monkeys-ui-panel-header', classNames?.header)}>{title ? <h2 id={id}>{title}</h2> : null}{actions}</div> : null}\n <div className={cx('monkeys-ui-panel-body', classNames?.body)}>{children}</div>\n </ScrollSurface>\n </BentoPanel>;\n return <ScrollSurface {...props} ref={ref} data-density={density} aria-labelledby={title ? id : props['aria-labelledby']} className={cx('monkeys-ui-panel', className)}>{title || actions ? <div className={cx('monkeys-ui-panel-header', classNames?.header)}>{title ? <h2 id={id}>{title}</h2> : null}{actions}</div> : null}<div className={cx('monkeys-ui-panel-body', classNames?.body)}>{children}</div></ScrollSurface>;\n});\nexport interface PageShellProps extends HTMLAttributes<HTMLDivElement> { header?: ReactNode; classNames?: { main?: string } }\nexport function PageShell({ header, className, classNames, children, ...props }: PageShellProps) { return <div {...props} className={cx('monkeys-ui-page', className)}>{header}<main className={cx('monkeys-ui-page-main', classNames?.main)}>{children}</main></div>; }\nexport interface AppHeaderProps extends HTMLAttributes<HTMLElement> { logo: ReactNode; navigation?: ReactNode; account?: ReactNode }\nexport function AppHeader({ logo, navigation, account, className, ...props }: AppHeaderProps) { return <header {...props} className={cx('monkeys-ui-header', className)}><div className=\"monkeys-ui-header-logo\">{logo}</div><nav aria-label=\"主导航\" className=\"monkeys-ui-header-nav\">{navigation}</nav><div className=\"monkeys-ui-header-account\">{account}</div></header>; }\nexport interface SplitLayoutProps extends HTMLAttributes<HTMLDivElement> { sidebar: ReactNode; side?: 'start' | 'end'; sidebarWidth?: string }\nexport function SplitLayout({ sidebar, side = 'start', sidebarWidth = '252px', children, className, style, ...props }: SplitLayoutProps) { return <div {...props} data-side={side} className={cx('monkeys-ui-split', className)} style={{ '--monkeys-ui-sidebar-width': sidebarWidth, ...style } as CSSProperties}><div className=\"monkeys-ui-split-sidebar\">{sidebar}</div><div className=\"monkeys-ui-split-main\">{children}</div></div>; }\nexport interface CollectionToolbarProps extends HTMLAttributes<HTMLDivElement> { search?: ReactNode; filters?: ReactNode; actions?: ReactNode }\nexport function CollectionToolbar({ search, filters, actions, className, ...props }: CollectionToolbarProps) { return <div {...props} className={cx('monkeys-ui-toolbar', className)}><div className=\"monkeys-ui-toolbar-search\">{search}</div>{filters}<div className=\"monkeys-ui-toolbar-actions\">{actions}</div></div>; }\nexport interface CollectionSectionProps extends Omit<HTMLAttributes<HTMLElement>, 'title'> { title: ReactNode; action?: ReactNode; lead?: ReactNode }\nexport function CollectionSection({ title, action, lead, children, className, ...props }: CollectionSectionProps) { const id = useId(); return <section {...props} aria-labelledby={id} data-layout={lead ? 'featured' : undefined} className={cx('monkeys-ui-collection', className)}><div className={cx('monkeys-ui-collection-heading', !!lead && !action && 'monkeys-ui-visually-hidden')}><h2 id={id} tabIndex={-1} className={lead ? 'monkeys-ui-visually-hidden' : undefined}>{title}</h2>{action}</div>{lead ? <div className=\"monkeys-ui-collection-row\"><div className=\"monkeys-ui-collection-lead\">{lead}</div><div className=\"monkeys-ui-collection-members\">{children}</div></div> : children}</section>; }\nexport interface CardGridProps extends HTMLAttributes<HTMLDivElement> { view?: 'grid' | 'list'; minCardWidth?: number; columnGap?: number }\nexport function CardGrid({ view = 'grid', minCardWidth = 178, columnGap, className, style, ...props }: CardGridProps) { return <div {...props} role=\"list\" data-view={view} className={cx('monkeys-ui-card-grid', className)} style={{ '--monkeys-ui-card-width': minCardWidth + 'px', ...(columnGap !== undefined ? { '--monkeys-ui-grid-column-gap': columnGap + 'px' } : {}), ...style } as CSSProperties} />; }\nexport interface CardProps extends Omit<HTMLAttributes<HTMLElement>, 'title' | 'content'> {\n title: ReactNode;\n variant?: 'card' | 'row' | 'detail' | 'preview' | 'content';\n /** Let a containing panel own the surface while preserving card content and interactions.\n * Add data-frame=\"bento\" to adapt detail borders and inset to the containing Bento tokens. */\n chrome?: 'card' | 'plain';\n selected?: boolean;\n onSelectedChange?: (selected: boolean) => void;\n size?: 'sm' | 'md' | 'lg';\n headingLevel?: 1 | 2 | 3 | 4 | 5 | 6;\n image?: string;\n imageAlt?: string;\n imagePosition?: string;\n imageStyle?: CSSProperties;\n media?: ReactNode;\n mediaOverlay?: ReactNode;\n emptyMedia?: ReactNode;\n href?: string;\n onOpen?: () => void;\n header?: ReactNode;\n /** Opt out of the detail breadcrumb chip without changing its content or actions. */\n breadcrumbSurface?: 'default' | 'transparent';\n meta?: ReactNode;\n /** Revealed on hover/focus for compact layouts; always visible in detail. Supplied by the host. */\n description?: ReactNode;\n content?: ReactNode;\n stats?: StatItem[];\n actions?: ReactNode;\n navigation?: ReactNode;\n navigationLabel?: string;\n footer?: ReactNode;\n classNames?: { image?: string; content?: string; actions?: string; heading?: string; media?: string };\n}\n/** Presentation only. Fields, formatting, labels and action contents belong to the host. */\nexport const Card = forwardRef<HTMLElement, CardProps>(function Card({ title, variant = 'card', chrome = 'card', selected, onSelectedChange, size, headingLevel, image, imageAlt = '', imagePosition, imageStyle, media, mediaOverlay, emptyMedia, href, onOpen, header, breadcrumbSurface = 'default', meta, description, content, children, stats = [], actions, navigation, navigationLabel, footer, className, classNames, ...props }, ref) {\n const [failedSource, setFailedSource] = useState<string>();\n const id = useId();\n const detail = variant === 'detail';\n const hasDescription = description !== undefined && description !== null && description !== false && description !== '';\n const hasEntry = variant !== 'preview' && !!(onSelectedChange || href || onOpen);\n const descriptionId = id + '-description';\n const describedBy = [props['aria-describedby'], hasDescription ? descriptionId : undefined].filter(Boolean).join(' ') || undefined;\n const Heading = `h${headingLevel ?? (detail ? 1 : 3)}` as 'h1' | 'h2' | 'h3' | 'h4' | 'h5' | 'h6';\n const tooltipTitle = detail && typeof title === 'string' && title.length > 0;\n const headingContent = <Heading id={id} className={cx('monkeys-ui-record-heading', classNames?.heading)} tabIndex={tooltipTitle ? 0 : undefined} title={!detail && typeof title === 'string' ? title : undefined}>{title}</Heading>;\n const heading = tooltipTitle ? <Tooltip content={title}>{headingContent}</Tooltip> : headingContent;\n const mediaContent = media ?? (image && failedSource !== image ? <img className={cx(detail ? 'monkeys-ui-sidebar-image' : 'monkeys-ui-record-card-image', classNames?.image)} src={image} alt={imageAlt} style={{ objectPosition: imagePosition, ...imageStyle }} onError={() => setFailedSource(image)} loading=\"lazy\" /> : emptyMedia ?? (!detail ? <div className=\"monkeys-ui-media-placeholder\" aria-label=\"暂无图片\"><ImageOff size={32} aria-hidden=\"true\" /></div> : null));\n const statistics = stats.length ? <StatGroup items={stats} /> : null;\n const body = content ?? children;\n if (detail) return <ScrollSurface as=\"aside\" {...props} ref={ref} aria-labelledby={props['aria-label'] ? undefined : id} data-variant={variant} data-chrome={chrome === 'plain' ? chrome : undefined} className={cx('monkeys-ui-card', 'monkeys-ui-record-detail', className)}><div className={cx('monkeys-ui-sidebar-media', classNames?.media)}>{mediaContent}{mediaOverlay}</div><div className=\"monkeys-ui-sidebar-header\"><div className=\"monkeys-ui-breadcrumbs\" data-surface={breadcrumbSurface === 'transparent' ? 'transparent' : undefined}>{header}</div>{actions ? <div className={cx('monkeys-ui-sidebar-header-actions', classNames?.actions)}>{actions}</div> : null}</div><div className={cx('monkeys-ui-sidebar-details', classNames?.content)}><SurfaceEffect variant=\"chroma\" />{heading}{meta ? <div className=\"monkeys-ui-sidebar-meta\">{meta}</div> : null}{description ? <div className=\"monkeys-ui-description\">{description}</div> : null}{body}{statistics}{navigation ? <nav aria-label={navigationLabel ?? '记录导航'} className=\"monkeys-ui-sidebar-navigation\">{navigation}</nav> : null}{footer ? <div className=\"monkeys-ui-sidebar-actions\">{footer}</div> : null}</div></ScrollSurface>;\n return <article {...props} ref={ref} aria-labelledby={props['aria-label'] ? undefined : id} aria-describedby={hasEntry ? props['aria-describedby'] : describedBy} tabIndex={props.tabIndex ?? (hasDescription && !hasEntry ? 0 : undefined)} data-variant={variant} data-chrome={chrome === 'plain' ? chrome : undefined} data-selected={selected || undefined} data-size={size} data-preview={variant === 'preview' || undefined} className={cx('monkeys-ui-card', 'monkeys-ui-record-card', className)}>\n {variant === 'content' && !media && !image ? null : media !== undefined ? <div className={cx('monkeys-ui-record-media', classNames?.media)}>{mediaContent}</div> : mediaContent}\n {mediaOverlay ? <div className=\"monkeys-ui-media-overlay\">{mediaOverlay}</div> : null}{header}\n {hasEntry && (onSelectedChange ? <button type=\"button\" aria-pressed={selected ?? false} onClick={() => onSelectedChange(!selected)} aria-labelledby={id} aria-describedby={describedBy} className=\"monkeys-ui-card-entry\" /> : href ? <a href={href} aria-labelledby={id} aria-describedby={describedBy} className=\"monkeys-ui-card-entry\" /> : <button type=\"button\" onClick={onOpen} aria-labelledby={id} aria-describedby={describedBy} className=\"monkeys-ui-card-entry\" />)}\n {selected ? <span className=\"monkeys-ui-card-selection-mark\" aria-hidden=\"true\"><Check size={14} /></span> : null}\n <div className={cx('monkeys-ui-card-info', classNames?.content)}>\n {heading}{meta}{body}{statistics}\n {hasDescription ? <div className=\"monkeys-ui-card-description\"><div className=\"monkeys-ui-card-description-clip\"><div id={descriptionId} className=\"monkeys-ui-description\">{description}</div></div></div> : null}\n </div>\n {actions ? <div className={cx('monkeys-ui-card-actions', classNames?.actions)}>{actions}</div> : null}{footer}\n </article>;\n});\nexport interface StatItem { label: string; value: ReactNode }\nexport interface StatGroupProps extends HTMLAttributes<HTMLDListElement> { items: StatItem[] }\nexport function StatGroup({ items, className, ...props }: StatGroupProps) { return <dl {...props} className={cx('monkeys-ui-stats', className)}>{items.map(item => <div key={item.label}><dt>{item.label}</dt><dd>{item.value}</dd></div>)}</dl>; }\n","import { type HTMLAttributes, type ReactNode } from 'react';\nimport { Button } from './controls';\nimport { cx } from './internal';\nimport { Plus, X } from 'lucide-react';\n\nexport interface DesignElementItem { id: string; label: string; content?: ReactNode }\nexport interface DesignElementFieldProps extends HTMLAttributes<HTMLDivElement> { label: string; items: DesignElementItem[]; onAdd?: () => void; onRemove?: (id: string) => void; renderItem?: (item: DesignElementItem) => ReactNode }\nexport function DesignElementField({ label, items, onAdd, onRemove, renderItem, className, ...props }: DesignElementFieldProps) { return <div {...props} role=\"group\" aria-label={label} className={cx('monkeys-ui-design-elements', className)}><div className=\"monkeys-ui-label\">{label}</div><div className=\"monkeys-ui-element-items\">{!items.length ? <div className=\"monkeys-ui-element\" aria-hidden=\"true\" /> : null}{items.map(item => <div key={item.id} className=\"monkeys-ui-element\"><div>{renderItem?.(item) ?? item.content ?? item.label}</div><span>{item.label}</span>{onRemove ? <Button shape=\"icon\" aria-label={'移除 ' + item.label} onClick={() => onRemove(item.id)}><X size={14} aria-hidden=\"true\" /></Button> : null}</div>)}{onAdd ? <Button shape=\"icon\" aria-label={'添加' + label} onClick={onAdd}><Plus size={14} aria-hidden=\"true\" /></Button> : null}</div></div>; }\n","import { forwardRef, useId, useRef, type HTMLAttributes, type ReactNode } from 'react';\nimport { Button } from './controls';\nimport { Notice } from './overlays';\nimport { cx } from './internal';\nimport { Plus, X, ImageOff } from 'lucide-react';\n\nexport interface ImageFileRejection { file: File; reason: 'type' | 'size' | 'duplicate' }\nexport interface ImageValidationOptions { accept?: readonly string[]; maxFileBytes?: number; existingFiles?: ReadonlyArray<Pick<File, 'name' | 'size' | 'lastModified'>> }\nconst defaultAccept = ['image/jpeg', 'image/png'];\nconst identity = (file: Pick<File, 'name' | 'size' | 'lastModified'>) => `${file.name}:${file.size}:${file.lastModified}`;\n/** Shared by selection, drop and paste. Decoding is a separate host operation. */\nexport function validateImageFiles(files: readonly File[], { accept = defaultAccept, maxFileBytes = Infinity, existingFiles = [] }: ImageValidationOptions = {}) {\n const seen = new Set(existingFiles.map(identity));\n const accepted: File[] = [];\n const rejected: ImageFileRejection[] = [];\n for (const file of files) {\n const key = identity(file);\n const reason = !accept.includes(file.type) ? 'type' : file.size > maxFileBytes ? 'size' : seen.has(key) ? 'duplicate' : undefined;\n if (reason) rejected.push({ file, reason });\n else { seen.add(key); accepted.push(file); }\n }\n return { accepted, rejected };\n}\nexport interface UploadedImage { id: string; name: string; src?: string; status: 'pending' | 'ready' | 'error'; progress?: number; error?: string }\nexport interface UploadedImageItemProps extends Omit<HTMLAttributes<HTMLDivElement>, 'onSelect'> { item: UploadedImage; onRemove?: () => void; onRetry?: () => void; onSelectCover?: () => void; cover?: boolean; disabled?: boolean }\nexport const UploadedImageItem = forwardRef<HTMLDivElement, UploadedImageItemProps>(function UploadedImageItem({ item, onRemove, onRetry, onSelectCover, cover, disabled, className, ...props }, ref) {\n return <div {...props} ref={ref} className={cx('monkeys-ui-uploaded-image', className)} data-state={item.status} aria-label={item.name} aria-busy={item.status === 'pending'}>{item.src ? <img src={item.src} alt={item.name} /> : <ImageOff size={24} aria-hidden=\"true\" />}<div className=\"monkeys-ui-uploaded-info\"><span title={item.name}>{item.name}</span>{item.status === 'pending' ? <><span role=\"status\">上传中</span>{item.progress != null ? <progress aria-label={item.name + ' 上传进度'} value={item.progress} max={100} /> : null}</> : null}{item.status === 'error' ? <><span role=\"alert\">{item.error ?? '上传失败'}</span>{onRetry ? <Button size=\"sm\" disabled={disabled} onClick={onRetry}>重试</Button> : null}</> : null}{onSelectCover && item.status !== 'error' ? <Button size=\"sm\" disabled={disabled} aria-pressed={cover} onClick={onSelectCover}>{cover ? '封面' : '设为封面'}</Button> : null}</div>{onRemove ? <Button shape=\"icon\" aria-label={'移除 ' + item.name} className=\"monkeys-ui-upload-remove\" size=\"sm\" disabled={disabled} onClick={onRemove}><X size={14} aria-hidden=\"true\" /></Button> : null}</div>;\n});\nexport interface ImageUploadFieldProps extends Omit<HTMLAttributes<HTMLDivElement>, 'onChange'>, ImageValidationOptions { label?: string; description?: ReactNode; items: UploadedImage[]; disabled?: boolean; onFilesSelected: (files: File[]) => void; onRejected?: (rejections: ImageFileRejection[]) => void; onRemove?: (id: string) => void; onRetry?: (id: string) => void; onSelectCover?: (id: string) => void; coverId?: string; error?: string }\nexport const ImageUploadField = forwardRef<HTMLDivElement, ImageUploadFieldProps>(function ImageUploadField({ id: explicitId, label = '上传图片', description, items, disabled, accept = defaultAccept, maxFileBytes, existingFiles, onFilesSelected, onRejected, onRemove, onRetry, onSelectCover, coverId, error, className, onDrop, onPaste, onDragOver, ...props }, ref) {\n const generated = useId(); const id = explicitId ?? generated;\n const input = useRef<HTMLInputElement>(null);\n function receive(files: File[]) { if (disabled) return; const result = validateImageFiles(files, { accept, maxFileBytes, existingFiles }); if (result.rejected.length) onRejected?.(result.rejected); if (result.accepted.length) onFilesSelected(result.accepted); }\n return <div {...props} ref={ref} id={id} role=\"group\" aria-label={label} aria-describedby={description ? id + '-description' : undefined} className={cx('monkeys-ui-upload', className)} onDragOver={event => { onDragOver?.(event); if (!disabled && event.dataTransfer.types.includes('Files')) event.preventDefault(); }} onDrop={event => { onDrop?.(event); if (!event.defaultPrevented && event.dataTransfer.files.length) { event.preventDefault(); receive(Array.from(event.dataTransfer.files)); } }} onPaste={event => { onPaste?.(event); if (!event.defaultPrevented && event.clipboardData.files.length) { event.preventDefault(); receive(Array.from(event.clipboardData.files)); } }}><div className=\"monkeys-ui-label\">{label}</div><div className=\"monkeys-ui-upload-items\"><Button className=\"monkeys-ui-upload-target\" variant=\"outline\" disabled={disabled} onClick={() => input.current?.click()} aria-describedby={description ? id + '-description' : undefined}><Plus size={28} aria-hidden=\"true\" /><span>选择、拖入或粘贴图片</span></Button><input className=\"monkeys-ui-visually-hidden\" ref={input} type=\"file\" tabIndex={-1} accept={accept.join(',')} multiple disabled={disabled} aria-label={label} onChange={event => { receive(Array.from(event.currentTarget.files ?? [])); event.currentTarget.value = ''; }} />{items.map(item => <UploadedImageItem key={item.id} item={item} disabled={disabled} cover={item.id === coverId} onRemove={onRemove ? () => onRemove(item.id) : undefined} onRetry={onRetry ? () => onRetry(item.id) : undefined} onSelectCover={onSelectCover ? () => onSelectCover(item.id) : undefined} />)}</div>{description ? <div className=\"monkeys-ui-description\" id={id + '-description'}>{description}</div> : null}{error ? <Notice tone=\"danger\">{error}</Notice> : null}</div>;\n});\n","import { forwardRef, useState, type CSSProperties, type FormHTMLAttributes, type HTMLAttributes, type MouseEventHandler, type ReactNode } from 'react';\nimport { MoreHorizontal, Bookmark, LocateFixed } from 'lucide-react';\nimport { Button, SectionTitle, ToggleButton } from './controls';\nimport { Panel, type PanelProps } from './collection';\nimport { Badge, Menu, Notice, type MenuItem } from './overlays';\nimport { cx } from './internal';\nimport { SurfaceEffect } from './surface-effect';\nimport { sampleInk } from './sample-color';\n\nexport interface StackProps extends HTMLAttributes<HTMLDivElement> {\n direction?: 'vertical' | 'horizontal';\n gap?: number;\n wrap?: boolean;\n}\n/** Layout only: children keep their own semantics and keyboard order. */\nexport const Stack = forwardRef<HTMLDivElement, StackProps>(function Stack({ direction = 'vertical', gap = 16, wrap, className, style, ...props }, ref) {\n return <div {...props} ref={ref} className={cx('monkeys-ui-stack', className)} data-direction={direction} style={{ flexDirection: direction === 'vertical' ? 'column' : 'row', gap, flexWrap: wrap ? 'wrap' : undefined, ...style }} />;\n});\n\nexport interface BreadcrumbItem {\n id: string;\n label: ReactNode;\n href?: string;\n onClick?: MouseEventHandler<HTMLButtonElement>;\n}\nexport interface BreadcrumbsProps extends HTMLAttributes<HTMLElement> { items: BreadcrumbItem[] }\nexport function Breadcrumbs({ items, className, 'aria-label': label = '面包屑', ...props }: BreadcrumbsProps) {\n return <nav {...props} aria-label={label} className={cx('monkeys-ui-breadcrumb-trail', className)}><ol>{items.map((item, index) => {\n const current = index === items.length - 1;\n return <li key={item.id}>{index > 0 ? <span aria-hidden=\"true\" className=\"monkeys-ui-breadcrumb-separator\">&gt;</span> : null}{current ? <span aria-current=\"page\">{item.label}</span> : item.href ? <a href={item.href}>{item.label}</a> : item.onClick ? <button type=\"button\" onClick={item.onClick}>{item.label}</button> : <span>{item.label}</span>}</li>;\n })}</ol></nav>;\n}\n\nexport interface BrandMarkProps extends HTMLAttributes<HTMLSpanElement> {\n label: string;\n image?: string;\n variant?: 'inline' | 'overlay';\n}\nexport function BrandMark({ label, image, variant = 'inline', className, ...props }: BrandMarkProps) {\n const [failedSource, setFailedSource] = useState<string>();\n return <span {...props} role=\"img\" aria-label={label} className={cx('monkeys-ui-brand-mark', className)} data-variant={variant}>{image && image !== failedSource ? <img src={image} alt=\"\" onError={() => setFailedSource(image)} /> : label}</span>;\n}\n\nexport interface BrandBannerProps extends PanelProps { description?: ReactNode; search?: ReactNode; caption?: ReactNode }\nexport function BrandBanner({ description, search, caption, children, className, ...props }: BrandBannerProps) {\n return <Panel {...props} className={cx('monkeys-ui-brand-banner', className)}><SurfaceEffect variant=\"banner\" />{description ? <p className=\"monkeys-ui-description\">{description}</p> : null}{search}{caption ? <div className=\"monkeys-ui-brand-caption\">{caption}</div> : null}{children}</Panel>;\n}\n\nexport interface CardGridItemProps extends HTMLAttributes<HTMLDivElement> {}\nexport const CardGridItem = forwardRef<HTMLDivElement, CardGridItemProps>(function CardGridItem({ className, ...props }, ref) {\n return <div {...props} ref={ref} role=\"listitem\" className={cx('monkeys-ui-card-grid-item', className)} />;\n});\n\nexport interface CardActionsProps {\n label: string;\n monitored?: boolean;\n monitorPending?: boolean;\n onMonitoredChange?: (value: boolean) => void;\n favorite?: boolean;\n favoritePending?: boolean;\n onFavoriteChange?: (value: boolean) => void;\n menuItems?: MenuItem[];\n menuLabel?: string;\n onMenuCloseAutoFocus?: (event: Event) => void;\n}\n/** Host owns requests, optimistic rollback and the focus target after deletion. */\nexport function CardActions({ label, monitored, monitorPending, onMonitoredChange, favorite, favoritePending, onFavoriteChange, menuItems = [], menuLabel, onMenuCloseAutoFocus }: CardActionsProps) {\n return <>{onMonitoredChange ? <ToggleButton shape=\"icon\" aria-label={'监测 ' + label} data-monitored={monitored || undefined} size=\"sm\" variant=\"ghost\" checked={monitored ?? false} loading={monitorPending} onCheckedChange={onMonitoredChange}><LocateFixed size={14} fill={monitored ? 'currentColor' : 'none'} aria-hidden=\"true\" /></ToggleButton> : null}{onFavoriteChange ? <ToggleButton shape=\"icon\" aria-label={'收藏 ' + label} size=\"sm\" variant=\"ghost\" checked={favorite ?? false} loading={favoritePending} onCheckedChange={onFavoriteChange}><Bookmark size={14} fill={favorite ? 'currentColor' : 'none'} aria-hidden=\"true\" /></ToggleButton> : null}{menuItems.length ? <Menu label={menuLabel ?? label + ' 操作'} trigger={<Button shape=\"icon\" aria-label={'更多 ' + label}><MoreHorizontal size={16} aria-hidden=\"true\" /></Button>} onCloseAutoFocus={onMenuCloseAutoFocus} items={menuItems} /> : null}</>;\n}\n\nexport interface FormPanelProps extends Omit<FormHTMLAttributes<HTMLFormElement>, 'title'> {\n title: ReactNode;\n description?: ReactNode;\n actions?: ReactNode;\n}\n/** Ref and native form props are forwarded to the form, not the outer Panel. */\nexport const FormPanel = forwardRef<HTMLFormElement, FormPanelProps>(function FormPanel({ title, description, actions, children, className, ...props }, ref) {\n return <Panel className=\"monkeys-ui-form-panel\"><form {...props} ref={ref} className={className}><div className=\"monkeys-ui-form-header\"><div><SectionTitle as=\"h1\">{title}</SectionTitle>{description ? <p>{description}</p> : null}</div>{actions ? <div className=\"monkeys-ui-form-actions\">{actions}</div> : null}</div><div className=\"monkeys-ui-form-body\">{children}</div></form></Panel>;\n});\n\nexport interface FormGridProps extends HTMLAttributes<HTMLDivElement> { variant?: 'standard' | 'compact' }\nexport function FormGrid({ variant = 'standard', className, children, ...props }: FormGridProps) {\n return <div {...props} className={cx('monkeys-ui-form-grid', className)} data-variant={variant}><div className=\"monkeys-ui-form-grid-content\">{children}</div></div>;\n}\n\nexport type DesignElementKind = 'color' | 'fabric' | 'silhouette' | 'pattern' | 'technique' | 'accessory';\nexport interface DesignElementPreviewProps extends HTMLAttributes<HTMLSpanElement> {\n variant?: 'plain' | 'labelled';\n header?: ReactNode;\n details?: ReactNode;\n kind?: DesignElementKind;\n label: string;\n image?: string;\n color?: string;\n secondaryColor?: string;\n}\n/** Color values and images describe the host's sample, not the UI theme. */\nexport function DesignElementPreview({ kind = 'color', variant = 'plain', header, details, label, image, color, secondaryColor, className, style, ...props }: DesignElementPreviewProps) {\n return <span {...props} role=\"img\" aria-label={label} data-kind={kind} data-variant={variant} data-ink={sampleInk(color)} className={cx('monkeys-ui-element-preview', className)} style={{ '--monkeys-ui-sample-color': color, '--monkeys-ui-sample-secondary': secondaryColor, ...style } as CSSProperties}>{image ? <img src={image} alt=\"\" /> : null}{variant === 'labelled' ? <><span className=\"monkeys-ui-swatch-header\">{header}</span><span className=\"monkeys-ui-swatch-details\">{details}</span></> : null}</span>;\n}\n\nexport interface PreviewPanelProps extends PanelProps {\n state?: 'empty' | 'pending' | 'ready' | 'error';\n pendingLabel?: string;\n emptyMessage?: ReactNode;\n errorMessage?: ReactNode;\n}\n/** Generic preview surface. Supply children and all labels. */\nexport function PreviewPanel({ children, state = 'ready', pendingLabel, emptyMessage, errorMessage, className, ...props }: PreviewPanelProps) {\n return <Panel {...props} className={cx('monkeys-ui-preview-panel', className)}><div className=\"monkeys-ui-preview-panel-card\">{children}{state === 'pending' && pendingLabel ? <Badge>{pendingLabel}</Badge> : null}{state === 'empty' && emptyMessage ? <span className=\"monkeys-ui-description\">{emptyMessage}</span> : null}{state === 'error' && errorMessage ? <Notice tone=\"danger\">{errorMessage}</Notice> : null}</div></Panel>;\n}\n\nexport interface NoticeRegionProps extends HTMLAttributes<HTMLElement> { position?: 'bottom-end' | 'top-end' }\nexport function NoticeRegion({ position = 'bottom-end', className, 'aria-label': label = '通知', ...props }: NoticeRegionProps) {\n return <aside {...props} aria-label={label} className={cx('monkeys-ui-notice-region', className)} data-position={position} />;\n}\n","import { useEffect, useState, type ComponentProps, type CSSProperties, type HTMLAttributes } from 'react';\nimport { cx } from './internal';\n\ntype ShaderModule = typeof import('shaders/react');\ntype AuroraShaderProps = ComponentProps<ShaderModule['Aurora']>;\ntype ChromaFlowShaderProps = ComponentProps<ShaderModule['ChromaFlow']>;\ntype LightEdgeShaderProps = ComponentProps<ShaderModule['LightEdge']>;\ntype EffectHostProps = Omit<HTMLAttributes<HTMLDivElement>, 'children'> & {\n onUnavailable?: (reason: string) => void;\n};\n\nfunction useShaderModule() {\n const [module, setModule] = useState<ShaderModule | null>(null);\n useEffect(() => {\n let active = true;\n import('shaders/react').then(loaded => {\n if (active) setModule(loaded);\n });\n return () => { active = false; };\n }, []);\n return module;\n}\n\nexport interface AuroraProps extends EffectHostProps, Partial<AuroraShaderProps> {}\nexport function Aurora({ className, style, onUnavailable, ...props }: AuroraProps) {\n const module = useShaderModule();\n const [ready, setReady] = useState(false);\n const hostStyle: CSSProperties = { height: 240, ...style, position: 'relative', overflow: 'hidden' };\n return <div className={cx('monkeys-ui-shader-effect', className)} style={hostStyle}>\n {!ready ? <div aria-hidden=\"true\" className=\"monkeys-ui-shader-fallback\" data-effect=\"aurora\" /> : null}\n {module ? <module.Shader style={{ width: '100%', height: '100%' }} onReady={() => setReady(true)} onUnavailable={onUnavailable}><module.Aurora {...props} /></module.Shader> : null}\n </div>;\n}\n\nexport interface ChromaFlowProps extends EffectHostProps, Partial<ChromaFlowShaderProps> {}\nexport function ChromaFlow({ className, style, onUnavailable, ...props }: ChromaFlowProps) {\n const module = useShaderModule();\n const [ready, setReady] = useState(false);\n const hostStyle: CSSProperties = { height: 240, ...style, position: 'relative', overflow: 'hidden' };\n return <div className={cx('monkeys-ui-shader-effect', className)} style={hostStyle}>\n {!ready ? <div aria-hidden=\"true\" className=\"monkeys-ui-shader-fallback\" data-effect=\"chroma\" /> : null}\n {module ? <module.Shader style={{ width: '100%', height: '100%' }} onReady={() => setReady(true)} onUnavailable={onUnavailable}><module.ChromaFlow {...props} /></module.Shader> : null}\n </div>;\n}\n\nexport interface LightEdgeProps extends EffectHostProps, Partial<LightEdgeShaderProps> {}\nexport function LightEdge({ className, style, onUnavailable, ...props }: LightEdgeProps) {\n const module = useShaderModule();\n const [ready, setReady] = useState(false);\n const hostStyle: CSSProperties = { height: 240, ...style, position: 'relative', overflow: 'hidden' };\n return <div className={cx('monkeys-ui-shader-effect', className)} style={hostStyle}>\n {!ready ? <div aria-hidden=\"true\" className=\"monkeys-ui-shader-fallback\" data-effect=\"light-edge\" /> : null}\n {module ? <module.Shader style={{ width: '100%', height: '100%' }} onReady={() => setReady(true)} onUnavailable={onUnavailable}><module.LightEdge {...props} /></module.Shader> : null}\n </div>;\n}\n"]}
1
+ {"version":3,"sources":["../../../src/ui/internal.ts","../../../src/theme-system/theme-tokens.ts","../../../src/theme-system/bento-tokens.ts","../../../src/locale/en-US.ts","../../../src/locale/zh-CN.ts","../../../src/locale/resolve-locale.ts","../../../src/provider/context.ts","../../../src/ui/theme/tokens.json","../../../src/ui/theme/theme.tsx","../../../src/ui/sample-color.ts","../../../src/ui/button-light-edge.tsx","../../../src/components/base/BasePortal.tsx","../../../src/components/base/internal/overlayPortal.tsx","../../../src/components/base/utils.ts","../../../src/components/base/theme.ts","../../../src/components/base/BaseTooltip.tsx","../../../src/components/base/form-help.tsx","../../../src/ui/controls.tsx","../../../src/ui/scroll-surface.tsx","../../../src/components/runtime/BentoScope.tsx","../../../src/components/runtime/useBentoSurface.ts","../../../src/ui/overlays.tsx","../../../src/components/base/BasePanel.tsx","../../../src/components/primitives/BentoPanel.tsx","../../../src/ui/panel-surface.ts","../../../src/ui/surface-effect.tsx","../../../src/ui/collection.tsx","../../../src/ui/catalog.tsx","../../../src/ui/upload.tsx","../../../src/ui/patterns.tsx","../../../src/ui/effects.tsx"],"names":["fallback","hue","saturation","lightness","host","key","path","createContext","useContext","useState","document","useMemo","TooltipPrimitive","useRef","useEffect","jsx","Fragment","jsxs","forwardRef","option","index","useId","isValidElement","Tooltip","TooltipPrimitive2","X","Check","ImageOff","Plus"],"mappings":"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","file":"index.mjs","sourcesContent":["import { useRef, useState } from 'react';\nexport const cx = (...values: Array<string | false | undefined>) => values.filter(Boolean).join(' ');\nexport function useControllable<T>(value: T | undefined, defaultValue: T | undefined, fallback: T, onChange?: (value: T) => void) {\n const controlled = value !== undefined;\n const initial = useRef(controlled);\n const warned = useRef(false);\n if (process.env.NODE_ENV !== 'production' && !warned.current && ((value !== undefined && defaultValue !== undefined) || initial.current !== controlled)) {\n console.error('monkeys-design UI: choose controlled or uncontrolled state; do not supply both value and defaultValue or switch modes.');\n warned.current = true;\n }\n const [local, setLocal] = useState(defaultValue ?? fallback);\n const current = controlled ? value : local;\n const update = (next: T) => { if (!controlled) setLocal(next); if (next !== current) onChange?.(next); };\n return [current, update] as const;\n}\n","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\nexport interface ClearThemeTokensOptions {\n target?: HTMLElement | null;\n}\n\ntype ThemeTokenCssAliasAxis = 'colorMode' | 'density';\ntype ThemeTokenCssAliasFormat = 'hsl' | 'css';\n\ninterface ThemeTokenCssAlias {\n variableName: string;\n axis: ThemeTokenCssAliasAxis;\n expectedType: ResolvedThemeToken['type'];\n format: ThemeTokenCssAliasFormat;\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_VARIABLES: 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\nconst THEME_TOKEN_CSS_ALIASES: Readonly<Record<string, ThemeTokenCssAlias>> = Object.freeze({\n ...Object.fromEntries(\n Object.entries(HSL_SEMANTIC_VARIABLES).map(([path, variableName]) => [path, {\n variableName,\n axis: 'colorMode',\n expectedType: 'color',\n format: 'hsl',\n }]),\n ),\n 'semantic.color.neocard': {\n variableName: '--neocard',\n axis: 'colorMode',\n expectedType: 'color',\n format: 'css',\n },\n 'semantic.radius.base': {\n variableName: '--radius',\n axis: 'colorMode',\n expectedType: 'dimension',\n format: 'css',\n },\n 'semantic.spacing.global': {\n variableName: '--global-spacing',\n axis: 'density',\n expectedType: 'dimension',\n format: 'css',\n },\n 'semantic.gradient.brand': {\n variableName: '--monkeys-gradient',\n axis: 'colorMode',\n expectedType: 'gradient',\n format: 'css',\n },\n 'semantic.font.body': {\n variableName: '--font-sans',\n axis: 'colorMode',\n expectedType: 'fontFamily',\n format: 'css',\n },\n});\n\nexport function resolveThemeTokenCssVariable(reference: string): string {\n const path = reference.startsWith('$') ? reference.slice(1).trim() : reference.trim();\n if (!/^[a-z][a-z0-9]*(?:[.-][a-z0-9]+)*$/i.test(path)) {\n throw new TypeError(`Invalid Design Token path ${reference}.`);\n }\n const alias = THEME_TOKEN_CSS_ALIASES[path];\n if (alias) return alias.format === 'hsl' ? `hsl(var(${alias.variableName}))` : `var(${alias.variableName})`;\n return `var(${toCssVariableName(path, 'monkeys')})`;\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, alias] of Object.entries(THEME_TOKEN_CSS_ALIASES)) {\n const axis = alias.axis === 'density' ? density : colorMode;\n const path = selectModePath(paths, basePath, axis);\n if (!path) continue;\n const token = resolved.tokens.get(path);\n if (!token || token.type !== alias.expectedType) {\n throw new TypeError(`${path} must be a ${alias.expectedType} token to drive ${alias.variableName}.`);\n }\n cssVariables[alias.variableName] = alias.format === 'hsl'\n ? formatHslTriplet(token.value as ThemeColorValue)\n : 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\nexport function clearThemeTokens(options: ClearThemeTokensOptions = {}): void {\n const target = options.target ?? (typeof document === 'undefined' ? null : document.documentElement);\n if (!target) return;\n\n const previouslyApplied = APPLIED_VARIABLES.get(target) ?? new Set<string>();\n for (const name of previouslyApplied) target.style.removeProperty(name);\n APPLIED_VARIABLES.delete(target);\n\n delete target.dataset.monkeysTheme;\n delete target.dataset.monkeysColorMode;\n delete target.dataset.monkeysDensity;\n}\n","import type { CompiledThemeTokens } from './theme-tokens';\n\nexport const BENTO_STYLE_FIELDS = [\n 'background',\n 'glowColor',\n 'borderColor',\n 'borderWidth',\n 'borderStyle',\n 'radius',\n 'shadow',\n 'padding',\n 'gap',\n] as const;\nexport type BentoStyleField = (typeof BENTO_STYLE_FIELDS)[number];\nexport interface ResolvedBentoTokens {\n values: Record<BentoStyleField, string>;\n sources: Record<BentoStyleField, string>;\n}\n\nconst fallback: Record<BentoStyleField, string> = {\n background: 'hsl(var(--card, 0 0% 100%))',\n glowColor: 'var(--monkeys-bento-glow-default)',\n borderColor: 'hsl(var(--border, 214.3 31.8% 91.4%))',\n borderWidth: '1px',\n borderStyle: 'solid',\n radius: 'var(--radius, 0.75rem)',\n shadow: 'none',\n padding: 'var(--global-spacing, 0.75rem)',\n gap: 'var(--global-spacing, 0.75rem)',\n};\nconst cache = new WeakMap<\n CompiledThemeTokens,\n Map<number, ResolvedBentoTokens>\n>();\n\n/** Resolve fields independently; local component overrides are applied by the surface. */\nexport function resolveBentoTokens(\n theme: CompiledThemeTokens | undefined,\n level: number,\n): ResolvedBentoTokens {\n if (!Number.isSafeInteger(level) || level < 1)\n throw new RangeError('Bento level must be a positive safe integer.');\n const cached = theme && cache.get(theme)?.get(level);\n if (cached) return cached;\n const values = { ...fallback };\n const sources = Object.fromEntries(\n BENTO_STYLE_FIELDS.map((field) => [field, 'builtin']),\n ) as Record<BentoStyleField, string>;\n for (const field of BENTO_STYLE_FIELDS) {\n const axis =\n field === 'padding' || field === 'gap'\n ? theme?.density\n : theme?.colorMode;\n // Glow is an optional Design component token. Keep the SDK's closed\n // semantic.bento recipe compatible with existing token documents.\n const namespace = field === 'glowColor' ? 'component.bento' : 'semantic.bento';\n const paths = [\n `${namespace}.levels.level${level}.${field}`,\n `${namespace}.default.${field}`,\n ];\n for (const base of paths) {\n const path =\n axis && theme?.cssValues[`${base}.${axis}`] !== undefined\n ? `${base}.${axis}`\n : base;\n const value = theme?.cssValues[path];\n if (value !== undefined) {\n values[field] = value;\n sources[field] = path;\n break;\n }\n }\n }\n const result = Object.freeze({\n values: Object.freeze(values),\n sources: Object.freeze(sources),\n });\n if (theme) {\n const levels = cache.get(theme) ?? new Map<number, ResolvedBentoTokens>();\n levels.set(level, result);\n cache.set(theme, levels);\n }\n return result;\n}\n","import type { MonkeysLocale } from \"./types\";\n\nexport const enUS = {\n locale: \"en-US\",\n messages: {\n pagination: {\n navigation: \"Pagination\",\n first: \"First\",\n previous: \"Previous\",\n next: \"Next\",\n last: \"Last\",\n page: ({ page, pageCount }) => `Page ${page} of ${pageCount}`,\n currentPage: ({ page, pageCount }) =>\n `Page ${page} of ${pageCount}, current page`,\n emptyResults: \"0 results\",\n range: ({ start, end, total }) => `${start}-${end} of ${total}`,\n selected: ({ count }) => `${count} selected`,\n pageSize: \"Items per page\",\n loadBatchSize: \"Items per load\",\n perLoad: \"Items per load\",\n jumpToPage: \"Jump to page\",\n pages: \"pages\",\n clickToJump: \"Click to jump to a page\",\n },\n dialog: {\n close: \"Close dialog\",\n },\n dropdownMenu: {\n actions: \"Actions\",\n },\n loading: {\n spinner: \"Loading\",\n },\n layout: {\n resizePanels: \"Resize panels\",\n expandPanel: \"Expand\",\n collapsePanel: \"Collapse\",\n movePanel: \"Move\",\n moveBefore: \"Move earlier\",\n moveAfter: \"Move later\",\n },\n steps: {\n label: \"Progress\",\n current: \"Current\",\n completed: \"Completed\",\n error: \"Error\",\n disabled: \"Disabled\",\n },\n numberInput: {\n increment: \"Increase value\",\n decrement: \"Decrease value\",\n },\n passwordInput: {\n showPassword: \"Show password\",\n hidePassword: \"Hide password\",\n },\n multiSelect: {\n placeholder: \"Select options\",\n empty: \"No options\",\n removeOption: ({ value }) => `Remove ${value}`,\n },\n table: {\n dragColumn: ({ columnId }) => `Drag column ${columnId}`,\n resizeColumn: ({ columnId }) => `Resize column ${columnId}`,\n sortColumn: ({ columnId }) =>\n columnId ? `Sort column ${columnId}` : \"Sort column\",\n loadingRow: \"Loading table row\",\n },\n toolbar: {\n theme: {\n label: \"Appearance\",\n toggle: \"Toggle theme\",\n auto: \"Auto\",\n light: \"Light\",\n dark: \"Dark\",\n },\n language: {\n label: \"Language\",\n switch: \"Switch language\",\n },\n },\n toast: {\n errorTitle: \"Error\",\n warningTitle: \"Warning\",\n defaultErrorDescription: \"Something went wrong.\",\n defaultWarningDescription: \"Please check and try again.\",\n },\n dataExplorer: {\n viewTree: {\n actions: \"More actions\",\n expand: \"Expand\",\n collapse: \"Collapse\",\n loading: \"Loading...\",\n empty: \"No views\",\n error: \"Unable to load views\",\n },\n },\n workbench: {\n relationshipGraph: { zoomOut: 'Zoom out', zoomIn: 'Zoom in', zoomToFit: 'Fit graph', minimap: 'Graph overview' },\n collection: {\n label: \"Collection\",\n loading: \"Loading items\",\n empty: \"No items\",\n loadError: \"Unable to load items\",\n refreshError: \"Unable to refresh items\",\n retry: \"Retry\",\n loadingMore: \"Loading more items\",\n permission: \"You do not have permission to view this content\",\n offline: \"You appear to be offline\",\n requestAccess: \"Request access\",\n },\n interactiveTable: {\n columnActions: \"Column actions\",\n freezeColumn: \"Freeze to left\",\n freezeEndColumn: \"Freeze to right\",\n unfreezeColumn: \"Unfreeze from left\",\n unfreezeEndColumn: \"Unfreeze from right\",\n unfreezeAllColumns: \"Unfreeze all columns\",\n resetColumnWidth: \"Reset column width\",\n frozenColumnTitle: \"Frozen column\",\n },\n },\n agentWorkbench: {\n label: \"Session activity\",\n reasoning: \"Reasoning\",\n plan: \"Plan\",\n taskNoDetail: \"No additional details\",\n modes: { chat: \"Chat\", work: \"Work\" },\n composer: {\n send: \"Send message\",\n stop: \"Stop generating\",\n queue: \"Queue message\",\n attach: \"Add photos or files\",\n voice: \"Start voice input\",\n webSearch: \"Web search\",\n chatMode: \"Chat mode\",\n model: \"Model\",\n reasoning: \"Reasoning effort\",\n permissions: \"Permissions\",\n removeAttachment: \"Remove attachment\",\n editQueued: \"Edit queued message\",\n deleteQueued: \"Delete queued message\",\n moveUp: \"Move message up\",\n moveDown: \"Move message down\",\n queued: \"Queued messages\",\n uploading: \"Uploading\",\n uploadFailed: \"Upload failed\",\n retryAttachment: \"Retry attachment upload\",\n noModels: \"No models available\",\n message: \"Message\",\n attachmentOnly: \"Attachment\",\n reasoningOptions: {\n low: \"Low\",\n medium: \"Medium\",\n high: \"High\",\n xhigh: \"Extra high\",\n },\n permissionOptions: {\n \"approval-required\": \"Approval required\",\n \"auto-approve\": \"Auto approve\",\n \"full-access\": \"Full access\",\n },\n },\n quickStart: {\n label: \"Quick start\",\n back: \"Back\",\n addFile: \"Add file\",\n },\n tool: {\n input: \"Input\",\n output: \"Output\",\n status: {\n pending: \"Pending\",\n running: \"Running\",\n completed: \"Completed\",\n failed: \"Error\",\n denied: \"Denied\",\n },\n },\n approval: {\n approve: \"Approve\",\n reject: \"Reject\",\n approved: \"Approved\",\n rejected: \"Rejected\",\n },\n artifact: {\n pending: \"Preparing\",\n ready: \"Ready\",\n failed: \"Failed\",\n open: ({ name }) => `Open ${name}`,\n },\n run: {\n stopping: \"Stopping...\",\n stoppedAfter: ({ duration }) => `You stopped after ${duration}`,\n },\n process: {\n running: \"Working\",\n queued: \"Queued\",\n waitingApproval: \"Waiting for approval\",\n failed: \"Failed\",\n stopped: \"Stopped\",\n processed: \"Processed\",\n processedFor: ({ duration }) => `Worked for ${duration}`,\n completedCount: ({ completed, total }) =>\n `${completed}/${total} completed`,\n },\n artifactWorkspace: {\n outputs: \"Outputs\",\n sources: \"Sources\",\n viewAll: \"View all\",\n toggleSummary: \"Toggle files\",\n tabs: \"Open files\",\n closeTab: ({ name }) => `Close ${name}`,\n closeWorkspace: \"Close workspace\",\n download: ({ name }) => `Download ${name}`,\n openExternal: ({ name }) => `Open ${name} in a new window`,\n loading: \"Loading preview...\",\n failed: \"Preview unavailable\",\n retry: \"Try again\",\n },\n usage: {\n label: \"Context usage\",\n context: ({ used, total }) => `${used} / ${total} tokens`,\n },\n navigation: {\n search: \"Search agents and sessions\",\n searchSessions: \"Search sessions\",\n searchShortcut: \"Focus search\",\n clearSearch: \"Clear search\",\n tabsLabel: \"Agent workbench navigation\",\n agents: \"Agents\",\n sessions: \"Sessions\",\n newAgent: \"New Agent\",\n newSession: \"New Session\",\n capabilities: \"Capabilities & Extensions\",\n settings: \"Agent Settings\",\n allAgents: \"All Agents\",\n recentSessions: \"Recent Sessions\",\n chat: \"Chat\",\n work: \"Work\",\n chats: \"Chats\",\n builtIn: \"Built-in\",\n noDescription: \"No description\",\n loading: \"Loading...\",\n emptyAgents: \"No agents yet\",\n emptySessions: \"No sessions yet\",\n noResults: \"No matching results\",\n retry: \"Retry\",\n pin: \"Pin\",\n unpin: \"Unpin\",\n rename: \"Rename\",\n delete: \"Delete\",\n actions: \"Actions\",\n save: \"Save\",\n cancel: \"Cancel\",\n running: \"Running\",\n completed: \"Completed\",\n failed: \"Failed\",\n contextUsage: ({ percent }) => `${percent}% context used`,\n },\n details: {\n title: \"Task details\",\n description: \"Summary and workspace activity\",\n duration: \"Duration\",\n updated: \"Updated\",\n model: \"Model\",\n mode: \"Mode\",\n permissions: \"Permissions\",\n tokenUsage: \"Token usage\",\n summary: \"Summary\",\n summaryEmpty: \"No summary is available yet.\",\n summaryFailed: \"The summary could not be generated.\",\n highlights: \"Highlights\",\n pendingItems: \"Pending items\",\n tabs: {\n label: \"Task detail views\",\n summary: \"Summary\",\n workspace: \"Workspace\",\n },\n status: {\n queued: \"Queued\",\n running: \"Running\",\n waiting_approval: \"Waiting for approval\",\n stopping: \"Stopping\",\n stopped: \"Stopped\",\n completed: \"Completed\",\n failed: \"Failed\",\n },\n state: {\n loading: {\n title: \"Loading task details\",\n description: \"Restoring the latest session activity.\",\n },\n empty: {\n title: \"No task selected\",\n description: \"Select a task to inspect its details.\",\n },\n error: {\n title: \"Unable to load task details\",\n description: \"Try again after the session is available.\",\n },\n },\n actions: {\n close: \"Close task details\",\n copySummary: \"Copy summary\",\n retry: \"Retry\",\n retrySummary: \"Retry summary\",\n resume: \"Resume\",\n continueInNewTask: \"Continue in new task\",\n editAndRerun: \"Edit and rerun\",\n export: \"Export\",\n },\n workspace: {\n diffs: \"Code changes\",\n files: \"Files\",\n terminals: \"Terminals\",\n tests: \"Tests\",\n artifacts: \"Artifacts\",\n exitCode: ({ code }) => `Exit code ${code}`,\n diffStatus: {\n added: \"Added\",\n modified: \"Modified\",\n deleted: \"Deleted\",\n renamed: \"Renamed\",\n },\n fileOperation: { upsert: \"Updated\", delete: \"Deleted\" },\n },\n },\n },\n },\n} satisfies MonkeysLocale;\n","import type { MonkeysLocale } from \"./types\";\n\nexport const zhCN = {\n locale: \"zh-CN\",\n messages: {\n pagination: {\n navigation: \"分页导航\",\n first: \"首页\",\n previous: \"上一页\",\n next: \"下一页\",\n last: \"末页\",\n page: ({ page, pageCount }) => `第 ${page} 页,共 ${pageCount} 页`,\n currentPage: ({ page, pageCount }) =>\n `第 ${page} 页,共 ${pageCount} 页,当前页`,\n emptyResults: \"共 0 条\",\n range: ({ start, end, total }) => `第 ${start}-${end} 条,共 ${total} 条`,\n selected: ({ count }) => `已选择 ${count} 项`,\n pageSize: \"每页显示数量\",\n loadBatchSize: \"每次加载数量\",\n perLoad: \"每次加载\",\n jumpToPage: \"跳转到页码\",\n pages: \"页\",\n clickToJump: \"点击跳转页码\",\n },\n dialog: {\n close: \"关闭对话框\",\n },\n dropdownMenu: {\n actions: \"操作\",\n },\n loading: {\n spinner: \"正在加载\",\n },\n layout: {\n resizePanels: \"调整面板大小\",\n expandPanel: \"展开\",\n collapsePanel: \"收起\",\n movePanel: \"移动\",\n moveBefore: \"向前移动\",\n moveAfter: \"向后移动\",\n },\n steps: {\n label: \"进度\",\n current: \"当前步骤\",\n completed: \"已完成\",\n error: \"错误\",\n disabled: \"已禁用\",\n },\n numberInput: {\n increment: \"增加数值\",\n decrement: \"减少数值\",\n },\n passwordInput: {\n showPassword: \"显示密码\",\n hidePassword: \"隐藏密码\",\n },\n multiSelect: {\n placeholder: \"请选择\",\n empty: \"暂无选项\",\n removeOption: ({ value }) => `移除 ${value}`,\n },\n table: {\n dragColumn: ({ columnId }) => `拖动列 ${columnId}`,\n resizeColumn: ({ columnId }) => `调整列宽 ${columnId}`,\n sortColumn: ({ columnId }) =>\n columnId ? `排序列 ${columnId}` : \"排序列\",\n loadingRow: \"正在加载表格行\",\n },\n toolbar: {\n theme: {\n label: \"外观\",\n toggle: \"切换主题\",\n auto: \"跟随系统\",\n light: \"浅色模式\",\n dark: \"深色模式\",\n },\n language: {\n label: \"语言\",\n switch: \"切换语言\",\n },\n },\n toast: {\n errorTitle: \"错误\",\n warningTitle: \"提示\",\n defaultErrorDescription: \"发生错误,请稍后重试。\",\n defaultWarningDescription: \"请检查后重试。\",\n },\n dataExplorer: {\n viewTree: {\n actions: \"更多操作\",\n expand: \"展开\",\n collapse: \"收起\",\n loading: \"正在加载...\",\n empty: \"暂无视图\",\n error: \"无法加载视图\",\n },\n },\n workbench: {\n relationshipGraph: { zoomOut: '缩小', zoomIn: '放大', zoomToFit: '适应画布', minimap: '图谱概览' },\n collection: {\n label: \"内容集合\",\n loading: \"正在加载内容\",\n empty: \"暂无内容\",\n loadError: \"无法加载内容\",\n refreshError: \"无法刷新内容\",\n retry: \"重试\",\n loadingMore: \"正在加载更多内容\",\n permission: \"你没有权限查看此内容\",\n offline: \"网络连接已断开\",\n requestAccess: \"申请权限\",\n },\n interactiveTable: {\n columnActions: \"列操作\",\n freezeColumn: \"固定到左侧\",\n freezeEndColumn: \"固定到右侧\",\n unfreezeColumn: \"取消左侧固定\",\n unfreezeEndColumn: \"取消右侧固定\",\n unfreezeAllColumns: \"取消全部固定\",\n resetColumnWidth: \"重置列宽\",\n frozenColumnTitle: \"已固定列\",\n },\n },\n agentWorkbench: {\n label: \"会话活动\",\n reasoning: \"思考过程\",\n plan: \"执行计划\",\n taskNoDetail: \"暂无更多详情\",\n modes: { chat: \"对话\", work: \"工作\" },\n composer: {\n send: \"发送消息\",\n stop: \"停止生成\",\n queue: \"排队发送\",\n attach: \"添加照片或文件\",\n voice: \"开始语音输入\",\n webSearch: \"联网搜索\",\n chatMode: \"对话模式\",\n model: \"模型\",\n reasoning: \"思考强度\",\n permissions: \"权限\",\n removeAttachment: \"移除附件\",\n editQueued: \"编辑排队消息\",\n deleteQueued: \"删除排队消息\",\n moveUp: \"上移消息\",\n moveDown: \"下移消息\",\n queued: \"排队消息\",\n uploading: \"上传中\",\n uploadFailed: \"上传失败\",\n retryAttachment: \"重试附件上传\",\n noModels: \"暂无可用模型\",\n message: \"消息\",\n attachmentOnly: \"附件\",\n reasoningOptions: {\n low: \"低\",\n medium: \"中\",\n high: \"高\",\n xhigh: \"最高\",\n },\n permissionOptions: {\n \"approval-required\": \"需要批准\",\n \"auto-approve\": \"自动批准\",\n \"full-access\": \"完全访问\",\n },\n },\n quickStart: {\n label: \"快速开始\",\n back: \"返回\",\n addFile: \"添加文件\",\n },\n tool: {\n input: \"输入\",\n output: \"输出\",\n status: {\n pending: \"等待中\",\n running: \"运行中\",\n completed: \"已完成\",\n failed: \"错误\",\n denied: \"已拒绝\",\n },\n },\n approval: {\n approve: \"允许\",\n reject: \"拒绝\",\n approved: \"已允许\",\n rejected: \"已拒绝\",\n },\n artifact: {\n pending: \"准备中\",\n ready: \"已就绪\",\n failed: \"失败\",\n open: ({ name }) => `打开 ${name}`,\n },\n run: {\n stopping: \"正在停止...\",\n stoppedAfter: ({ duration }) => `你在 ${duration} 后停止了任务`,\n },\n process: {\n running: \"执行过程\",\n queued: \"排队中\",\n waitingApproval: \"等待审批\",\n failed: \"失败\",\n stopped: \"已停止\",\n processed: \"已处理\",\n processedFor: ({ duration }) =>\n `耗时 ${duration\n .replace(/(\\d+)h/g, \"$1小时\")\n .replace(/(\\d+)m/g, \"$1分钟\")\n .replace(/(\\d+)s/g, \"$1秒\")\n .replace(/\\s+/g, \"\")}`,\n completedCount: ({ completed, total }) =>\n `${completed}/${total} 已完成`,\n },\n artifactWorkspace: {\n outputs: \"输出\",\n sources: \"来源\",\n viewAll: \"查看全部\",\n toggleSummary: \"切换文件摘要\",\n tabs: \"已打开文件\",\n closeTab: ({ name }) => `关闭 ${name}`,\n closeWorkspace: \"关闭工作区\",\n download: ({ name }) => `下载 ${name}`,\n openExternal: ({ name }) => `在新窗口打开 ${name}`,\n loading: \"正在加载预览...\",\n failed: \"预览不可用\",\n retry: \"重试\",\n },\n usage: {\n label: \"上下文用量\",\n context: ({ used, total }) => `${used} / ${total} tokens`,\n },\n navigation: {\n search: \"搜索智能体和会话\",\n searchSessions: \"搜索会话\",\n searchShortcut: \"聚焦搜索框\",\n clearSearch: \"清除搜索\",\n tabsLabel: \"智能体工作台导航\",\n agents: \"智能体\",\n sessions: \"会话\",\n newAgent: \"新建智能体\",\n newSession: \"新建会话\",\n capabilities: \"能力与扩展\",\n settings: \"智能体设置\",\n allAgents: \"全部智能体\",\n recentSessions: \"最近会话\",\n chat: \"对话\",\n work: \"工作\",\n chats: \"聊天\",\n builtIn: \"内置\",\n noDescription: \"暂无描述\",\n loading: \"加载中...\",\n emptyAgents: \"暂无智能体\",\n emptySessions: \"暂无会话\",\n noResults: \"没有匹配结果\",\n retry: \"重试\",\n pin: \"置顶\",\n unpin: \"取消置顶\",\n rename: \"重命名\",\n delete: \"删除\",\n actions: \"操作\",\n save: \"保存\",\n cancel: \"取消\",\n running: \"运行中\",\n completed: \"已完成\",\n failed: \"失败\",\n contextUsage: ({ percent }) => `已使用 ${percent}% 上下文`,\n },\n details: {\n title: \"任务详情\",\n description: \"摘要与工作区活动\",\n duration: \"耗时\",\n updated: \"更新时间\",\n model: \"模型\",\n mode: \"模式\",\n permissions: \"权限\",\n tokenUsage: \"Token 用量\",\n summary: \"摘要\",\n summaryEmpty: \"暂时没有可用摘要。\",\n summaryFailed: \"摘要生成失败。\",\n highlights: \"重点\",\n pendingItems: \"待处理事项\",\n tabs: {\n label: \"任务详情视图\",\n summary: \"摘要\",\n workspace: \"工作区\",\n },\n status: {\n queued: \"排队中\",\n running: \"运行中\",\n waiting_approval: \"等待审批\",\n stopping: \"正在停止\",\n stopped: \"已停止\",\n completed: \"已完成\",\n failed: \"失败\",\n },\n state: {\n loading: {\n title: \"正在加载任务详情\",\n description: \"正在恢复最新的会话活动。\",\n },\n empty: {\n title: \"未选择任务\",\n description: \"选择任务后查看详细信息。\",\n },\n error: {\n title: \"无法加载任务详情\",\n description: \"会话恢复可用后请重试。\",\n },\n },\n actions: {\n close: \"关闭任务详情\",\n copySummary: \"复制摘要\",\n retry: \"重试\",\n retrySummary: \"重新生成摘要\",\n resume: \"继续运行\",\n continueInNewTask: \"在新任务中继续\",\n editAndRerun: \"编辑并重新运行\",\n export: \"导出\",\n },\n workspace: {\n diffs: \"代码变更\",\n files: \"文件\",\n terminals: \"终端\",\n tests: \"测试\",\n artifacts: \"产物\",\n exitCode: ({ code }) => `退出码 ${code}`,\n diffStatus: {\n added: \"新增\",\n modified: \"修改\",\n deleted: \"删除\",\n renamed: \"重命名\",\n },\n fileOperation: { upsert: \"已更新\", delete: \"已删除\" },\n },\n },\n },\n },\n} satisfies MonkeysLocale;\n","import { enUS } from './en-US';\nimport type {\n MonkeysBuiltInLocaleId,\n MonkeysLocale,\n MonkeysLocaleInput,\n MonkeysLocaleMessages,\n MonkeysLocaleMessagesOverride,\n MonkeysResolvedLocale,\n} from './types';\nimport { zhCN } from './zh-CN';\n\nconst BUILT_IN_LOCALES: Record<MonkeysBuiltInLocaleId, MonkeysLocale> = {\n 'en-US': enUS,\n 'zh-CN': zhCN,\n};\n\nfunction normalizeLocaleId(locale: unknown): string {\n if (typeof locale !== 'string' || !locale.trim()) {\n throw new TypeError('Monkeys locale must be a non-empty BCP 47 string.');\n }\n\n try {\n return Intl.getCanonicalLocales(locale)[0];\n } catch {\n throw new RangeError(\n `Monkeys locale \"${locale}\" is not a valid BCP 47 identifier.`,\n );\n }\n}\n\nfunction isRecord(value: unknown): value is Record<string, unknown> {\n return Boolean(value) && typeof value === 'object' && !Array.isArray(value);\n}\n\nfunction validateMessageOverride(\n value: unknown,\n schema: unknown,\n path: string,\n) {\n if (!isRecord(value) || !isRecord(schema)) {\n throw new TypeError(`${path} must be an object.`);\n }\n\n for (const [key, candidate] of Object.entries(value)) {\n if (candidate === undefined) continue;\n if (!(key in schema)) {\n throw new TypeError(`${path}.${key} is not a supported Monkeys message.`);\n }\n\n const expected = schema[key];\n const candidatePath = `${path}.${key}`;\n if (typeof expected === 'function') {\n if (typeof candidate !== 'function') {\n throw new TypeError(`${candidatePath} must be a function.`);\n }\n } else if (typeof expected === 'string') {\n if (typeof candidate !== 'string') {\n throw new TypeError(`${candidatePath} must be a string.`);\n }\n } else {\n validateMessageOverride(candidate, expected, candidatePath);\n }\n }\n}\n\nfunction assertMessagesOverride(\n value: unknown,\n path: string,\n): asserts value is MonkeysLocaleMessagesOverride {\n validateMessageOverride(value, enUS.messages, path);\n}\n\nfunction isBuiltInLocale(locale: string): locale is MonkeysBuiltInLocaleId {\n return locale === 'en-US' || locale === 'zh-CN';\n}\n\nfunction normalizeLocaleInput(input: MonkeysLocaleInput | undefined): {\n locale: string | undefined;\n messages: MonkeysLocaleMessagesOverride | undefined;\n hasExplicitLocale: boolean;\n} {\n if (input === undefined) {\n return {\n locale: undefined,\n messages: undefined,\n hasExplicitLocale: false,\n };\n }\n\n if (typeof input === 'string') {\n const locale = normalizeLocaleId(input);\n if (!isBuiltInLocale(locale)) {\n throw new RangeError(\n `Unsupported built-in Monkeys locale \"${locale}\". Provide a locale pack object for custom locales.`,\n );\n }\n return { locale, messages: undefined, hasExplicitLocale: true };\n }\n\n if (!input || typeof input !== 'object' || Array.isArray(input)) {\n throw new TypeError('Monkeys locale must be a locale id or locale pack object.');\n }\n\n const locale = normalizeLocaleId(input.locale);\n assertMessagesOverride(input.messages, 'Monkeys locale messages');\n\n return {\n locale,\n messages: input.messages,\n hasExplicitLocale: true,\n };\n}\n\nexport function mergeMonkeysLocaleMessages(\n base: MonkeysLocaleMessages,\n override?: MonkeysLocaleMessagesOverride,\n): MonkeysLocaleMessages {\n if (!override) return base;\n\n return {\n pagination: { ...base.pagination, ...override.pagination },\n dialog: { ...base.dialog, ...override.dialog },\n dropdownMenu: { ...base.dropdownMenu, ...override.dropdownMenu },\n loading: { ...base.loading, ...override.loading },\n layout: { ...base.layout, ...override.layout },\n steps: { ...base.steps, ...override.steps },\n numberInput: { ...base.numberInput, ...override.numberInput },\n passwordInput: { ...base.passwordInput, ...override.passwordInput },\n multiSelect: { ...base.multiSelect, ...override.multiSelect },\n table: { ...base.table, ...override.table },\n toolbar: {\n theme: { ...base.toolbar.theme, ...override.toolbar?.theme },\n language: { ...base.toolbar.language, ...override.toolbar?.language },\n },\n toast: { ...base.toast, ...override.toast },\n dataExplorer: {\n viewTree: {\n ...base.dataExplorer.viewTree,\n ...override.dataExplorer?.viewTree,\n },\n },\n workbench: {\n relationshipGraph: { zoomOut: 'Zoom out', zoomIn: 'Zoom in', zoomToFit: 'Fit graph', minimap: 'Graph overview', ...base.workbench.relationshipGraph, ...override.workbench?.relationshipGraph },\n collection: {\n ...base.workbench.collection,\n ...override.workbench?.collection,\n },\n interactiveTable: {\n ...base.workbench.interactiveTable,\n ...override.workbench?.interactiveTable,\n },\n },\n agentWorkbench: {\n ...base.agentWorkbench,\n ...override.agentWorkbench,\n modes: {\n ...base.agentWorkbench.modes,\n ...override.agentWorkbench?.modes,\n },\n composer: {\n ...base.agentWorkbench.composer,\n ...override.agentWorkbench?.composer,\n },\n quickStart: {\n ...base.agentWorkbench.quickStart,\n ...override.agentWorkbench?.quickStart,\n },\n tool: {\n ...base.agentWorkbench.tool,\n ...override.agentWorkbench?.tool,\n status: {\n ...base.agentWorkbench.tool.status,\n ...override.agentWorkbench?.tool?.status,\n },\n },\n approval: {\n ...base.agentWorkbench.approval,\n ...override.agentWorkbench?.approval,\n },\n artifact: {\n ...base.agentWorkbench.artifact,\n ...override.agentWorkbench?.artifact,\n },\n run: {\n ...base.agentWorkbench.run,\n ...override.agentWorkbench?.run,\n },\n process: {\n ...base.agentWorkbench.process,\n ...override.agentWorkbench?.process,\n },\n artifactWorkspace: {\n ...base.agentWorkbench.artifactWorkspace,\n ...override.agentWorkbench?.artifactWorkspace,\n },\n usage: {\n ...base.agentWorkbench.usage,\n ...override.agentWorkbench?.usage,\n },\n navigation: {\n ...base.agentWorkbench.navigation,\n ...override.agentWorkbench?.navigation,\n },\n details: {\n ...base.agentWorkbench.details,\n ...override.agentWorkbench?.details,\n tabs: {\n ...base.agentWorkbench.details.tabs,\n ...override.agentWorkbench?.details?.tabs,\n },\n status: {\n ...base.agentWorkbench.details.status,\n ...override.agentWorkbench?.details?.status,\n },\n state: {\n loading: {\n ...base.agentWorkbench.details.state.loading,\n ...override.agentWorkbench?.details?.state?.loading,\n },\n empty: {\n ...base.agentWorkbench.details.state.empty,\n ...override.agentWorkbench?.details?.state?.empty,\n },\n error: {\n ...base.agentWorkbench.details.state.error,\n ...override.agentWorkbench?.details?.state?.error,\n },\n },\n actions: {\n ...base.agentWorkbench.details.actions,\n ...override.agentWorkbench?.details?.actions,\n },\n workspace: {\n ...base.agentWorkbench.details.workspace,\n ...override.agentWorkbench?.details?.workspace,\n diffStatus: {\n ...base.agentWorkbench.details.workspace.diffStatus,\n ...override.agentWorkbench?.details?.workspace?.diffStatus,\n },\n fileOperation: {\n ...base.agentWorkbench.details.workspace.fileOperation,\n ...override.agentWorkbench?.details?.workspace?.fileOperation,\n },\n },\n },\n },\n };\n}\n\nexport const defaultMonkeysLocale: MonkeysResolvedLocale = {\n locale: enUS.locale,\n messages: mergeMonkeysLocaleMessages(\n enUS.messages as MonkeysLocaleMessages,\n ),\n};\n\nexport function resolveMonkeysLocale(\n input?: MonkeysLocaleInput,\n override?: MonkeysLocaleMessagesOverride,\n parent?: MonkeysResolvedLocale,\n): MonkeysResolvedLocale {\n if (override !== undefined) {\n assertMessagesOverride(override, 'MonkeysProvider messages');\n }\n const normalized = normalizeLocaleInput(input);\n const locale = normalized.locale ?? parent?.locale ?? enUS.locale;\n const builtInMessages = isBuiltInLocale(locale)\n ? BUILT_IN_LOCALES[locale].messages\n : undefined;\n let messages = mergeMonkeysLocaleMessages(\n enUS.messages as MonkeysLocaleMessages,\n builtInMessages,\n );\n\n if (parent && (!normalized.hasExplicitLocale || parent.locale === locale)) {\n messages = mergeMonkeysLocaleMessages(messages, parent.messages);\n }\n\n messages = mergeMonkeysLocaleMessages(messages, normalized.messages);\n messages = mergeMonkeysLocaleMessages(messages, override);\n\n return { locale, messages };\n}\n","import {\n createContext,\n useContext,\n useMemo,\n type Context,\n} from 'react';\n\nimport type { AssetIconResolver, AssetImageResolver } from '../components/base/BaseAssetIcon';\nimport type { BaseAppearance } from '../components/base/types';\nimport type { DataExplorerAppearance } from '../components/data-explorer/types';\nimport {\n defaultMonkeysLocale,\n type MonkeysLocaleMessages,\n type MonkeysResolvedLocale,\n} from '../locale';\nimport type { CompiledThemeTokens } from '../theme-system';\n\nexport type MonkeysDirection = 'ltr' | 'rtl';\n\nexport interface MonkeysEnvironment {\n getDocument?: () => Document | null;\n getWindow?: () => Window | null;\n}\n\nexport type MonkeysPortalContainer =\n | Element\n | null\n | (() => Element | null);\n\nexport interface MonkeysPortalOptions {\n container?: MonkeysPortalContainer;\n disabled?: boolean;\n}\n\nexport type MonkeysLoadingStateVariant = 'spinner' | 'skeleton';\nexport type MonkeysEmptyStateVariant = 'default' | 'compact';\nexport type MonkeysStatusStateDensity = 'compact' | 'default' | 'comfortable';\n\nexport type MonkeysListFooterPaginationMode = 'auto' | 'pages' | 'compact';\nexport type MonkeysListFooterAlignment = 'start' | 'end' | 'space-between';\n\nexport interface MonkeysListFooterConfig {\n showTotal?: boolean;\n showPageSize?: boolean;\n pageSizeOptions?: number[];\n paginationMode?: MonkeysListFooterPaginationMode;\n alignment?: MonkeysListFooterAlignment;\n density?: MonkeysStatusStateDensity;\n}\n\nexport interface MonkeysStatusStatesConfig {\n loading?: { variant?: MonkeysLoadingStateVariant };\n empty?: { variant?: MonkeysEmptyStateVariant };\n error?: { showRetry?: boolean };\n permission?: { showRequestAccess?: boolean };\n density?: MonkeysStatusStateDensity;\n}\n\nexport interface MonkeysComponentAttributes {\n dir?: MonkeysDirection;\n 'data-monkeys-direction'?: MonkeysDirection;\n 'data-monkeys-locale'?: string;\n 'data-monkeys-theme'?: string;\n 'data-monkeys-theme-mode'?: string;\n}\n\ninterface MonkeysLocaleContextValue extends MonkeysResolvedLocale {\n provided: boolean;\n}\n\ninterface MonkeysThemeContextValue {\n provided: boolean;\n resolvedTheme?: CompiledThemeTokens;\n themeId?: string;\n baseAppearance?: BaseAppearance;\n dataExplorerAppearance?: DataExplorerAppearance;\n statusStates?: MonkeysStatusStatesConfig;\n listFooter?: MonkeysListFooterConfig;\n}\n\ninterface MonkeysDirectionContextValue {\n provided: boolean;\n direction?: MonkeysDirection;\n}\n\ninterface MonkeysEnvironmentContextValue {\n provided: boolean;\n environment: MonkeysEnvironment;\n portal: MonkeysPortalOptions;\n iconResolver?: AssetIconResolver;\n imageResolver?: AssetImageResolver;\n}\n\nconst EMPTY_ENVIRONMENT = Object.freeze({}) satisfies MonkeysEnvironment;\nconst EMPTY_PORTAL = Object.freeze({}) satisfies MonkeysPortalOptions;\n\ninterface MonkeysProviderContexts {\n locale: Context<MonkeysLocaleContextValue>;\n theme: Context<MonkeysThemeContextValue>;\n direction: Context<MonkeysDirectionContextValue>;\n environment: Context<MonkeysEnvironmentContextValue>;\n}\n\n// Every bundled public entry contains this module. Keep only the Context\n// identities in a realm-wide registry so root, provider, and component\n// subpaths interoperate in both CJS and ESM builds. Provider values remain in\n// React trees, so SSR requests are isolated. Bump the contract key only when\n// these Context value shapes become intentionally incompatible.\nconst MONKEYS_PROVIDER_CONTEXTS_KEY = Symbol.for(\n '@inf-monkeys-tech/monkeys-design/provider-context@1',\n);\n\ntype MonkeysProviderContextHost = typeof globalThis & {\n [MONKEYS_PROVIDER_CONTEXTS_KEY]?: MonkeysProviderContexts;\n};\n\nfunction createMonkeysProviderContexts(): MonkeysProviderContexts {\n return Object.freeze({\n locale: createContext<MonkeysLocaleContextValue>({\n ...defaultMonkeysLocale,\n provided: false,\n }),\n theme: createContext<MonkeysThemeContextValue>({\n provided: false,\n }),\n direction: createContext<MonkeysDirectionContextValue>({\n provided: false,\n }),\n environment: createContext<MonkeysEnvironmentContextValue>({\n provided: false,\n environment: EMPTY_ENVIRONMENT,\n portal: EMPTY_PORTAL,\n }),\n });\n}\n\nfunction getMonkeysProviderContexts(): MonkeysProviderContexts {\n const host = globalThis as MonkeysProviderContextHost;\n const existing = host[MONKEYS_PROVIDER_CONTEXTS_KEY];\n if (existing) return existing;\n\n const contexts = createMonkeysProviderContexts();\n Object.defineProperty(host, MONKEYS_PROVIDER_CONTEXTS_KEY, {\n value: contexts,\n enumerable: false,\n configurable: false,\n writable: false,\n });\n return contexts;\n}\n\nconst providerContexts = getMonkeysProviderContexts();\n\nexport const MonkeysLocaleContext = providerContexts.locale;\n\nexport const MonkeysThemeContext = providerContexts.theme;\n\nexport const MonkeysDirectionContext = providerContexts.direction;\n\nexport const MonkeysEnvironmentContext = providerContexts.environment;\n\nfunction mergeAppearance<T extends { slots?: object; styles?: object }>(\n inherited: T | undefined,\n explicit: T | undefined,\n): T | undefined {\n if (explicit === undefined) return inherited;\n if (inherited === undefined) return explicit;\n\n return {\n ...inherited,\n ...explicit,\n slots:\n inherited.slots || explicit.slots\n ? { ...inherited.slots, ...explicit.slots }\n : undefined,\n styles:\n inherited.styles || explicit.styles\n ? { ...inherited.styles, ...explicit.styles }\n : undefined,\n };\n}\n\nexport function useMonkeysLocale() {\n try {\n const context = useContext(MonkeysLocaleContext);\n return context ?? { ...defaultMonkeysLocale, provided: false };\n } catch {\n return { ...defaultMonkeysLocale, provided: false };\n }\n}\n\nexport function useMonkeysLocaleMessages(): MonkeysLocaleMessages {\n return useContext(MonkeysLocaleContext).messages;\n}\n\nexport function useMonkeysResolvedTheme() {\n return useContext(MonkeysThemeContext).resolvedTheme;\n}\n\nexport function useMonkeysBaseAppearance(\n explicit?: BaseAppearance,\n): BaseAppearance | undefined {\n const inherited = useContext(MonkeysThemeContext).baseAppearance;\n return useMemo(\n () => mergeAppearance(inherited, explicit),\n [explicit, inherited],\n );\n}\n\nexport function useMonkeysDataExplorerAppearance(\n explicit?: DataExplorerAppearance,\n): DataExplorerAppearance | undefined {\n const inherited = useContext(MonkeysThemeContext).dataExplorerAppearance;\n return useMemo(\n () => mergeAppearance(inherited, explicit),\n [explicit, inherited],\n );\n}\n\nexport function useMonkeysStatusStates(): MonkeysStatusStatesConfig {\n return useContext(MonkeysThemeContext).statusStates ?? {};\n}\n\nexport function useMonkeysListFooter(): MonkeysListFooterConfig {\n return useContext(MonkeysThemeContext).listFooter ?? {};\n}\n\nexport function useMonkeysDirection() {\n return useContext(MonkeysDirectionContext).direction;\n}\n\nexport function useMonkeysEnvironment() {\n return useContext(MonkeysEnvironmentContext).environment;\n}\n\nexport function useMonkeysPortalOptions() {\n return useContext(MonkeysEnvironmentContext).portal;\n}\n\nexport function useMonkeysComponentAttributes(): MonkeysComponentAttributes {\n const locale = useContext(MonkeysLocaleContext);\n const theme = useContext(MonkeysThemeContext);\n const direction = useContext(MonkeysDirectionContext);\n const providerActive = locale.provided || theme.provided || direction.provided;\n\n return useMemo(\n () =>\n providerActive\n ? {\n dir: direction.direction,\n 'data-monkeys-direction': direction.direction,\n 'data-monkeys-locale': locale.locale,\n 'data-monkeys-theme': theme.themeId,\n 'data-monkeys-theme-mode': theme.resolvedTheme?.colorMode,\n }\n : {},\n [\n direction.direction,\n locale.locale,\n providerActive,\n theme.resolvedTheme?.colorMode,\n theme.themeId,\n ],\n );\n}\n\nexport function useMonkeysAssetIconResolver(): AssetIconResolver | undefined {\n return useContext(MonkeysEnvironmentContext).iconResolver;\n}\nexport function useMonkeysAssetImageResolver(): AssetImageResolver | undefined {\n return useContext(MonkeysEnvironmentContext).imageResolver;\n}\n","{\n \"seed\": {\n \"ui\": {\n \"color\": {\n \"page\": {\n \"$type\": \"color\",\n \"$value\": {\n \"colorSpace\": \"srgb\",\n \"components\": [\n 0.07450980392156863,\n 0.08235294117647059,\n 0.10196078431372549\n ],\n \"hex\": \"#13151A\"\n }\n },\n \"surface\": {\n \"$type\": \"color\",\n \"$value\": {\n \"colorSpace\": \"srgb\",\n \"components\": [\n 0.09019607843137255,\n 0.10588235294117647,\n 0.15294117647058825\n ],\n \"hex\": \"#171B27\"\n }\n },\n \"elevated\": {\n \"$type\": \"color\",\n \"$value\": {\n \"colorSpace\": \"srgb\",\n \"components\": [\n 0.13333333333333333,\n 0.15294117647058825,\n 0.2196078431372549\n ],\n \"hex\": \"#222738\"\n }\n },\n \"foreground\": {\n \"$type\": \"color\",\n \"$value\": {\n \"colorSpace\": \"srgb\",\n \"components\": [\n 1,\n 1,\n 1\n ],\n \"hex\": \"#FFFFFF\"\n }\n },\n \"muted\": {\n \"$type\": \"color\",\n \"$value\": {\n \"colorSpace\": \"srgb\",\n \"components\": [\n 0.7843137254901961,\n 0.7843137254901961,\n 0.7843137254901961\n ],\n \"hex\": \"#C8C8C8\"\n }\n },\n \"subtle\": {\n \"$type\": \"color\",\n \"$value\": {\n \"colorSpace\": \"srgb\",\n \"components\": [\n 0.6980392156862745,\n 0.6980392156862745,\n 0.6980392156862745\n ],\n \"hex\": \"#B2B2B2\"\n }\n },\n \"primary\": {\n \"$type\": \"color\",\n \"$value\": {\n \"colorSpace\": \"srgb\",\n \"components\": [\n 0.28627450980392155,\n 0.4666666666666667,\n 0.9215686274509803\n ],\n \"hex\": \"#4977EB\"\n }\n },\n \"lightEdgeBlue\": {\n \"$type\": \"color\",\n \"$value\": {\n \"colorSpace\": \"srgb\",\n \"components\": [\n 0.25882352941176473,\n 0.5215686274509804,\n 1\n ],\n \"hex\": \"#4285FF\"\n }\n },\n \"primaryHover\": {\n \"$type\": \"color\",\n \"$value\": {\n \"colorSpace\": \"srgb\",\n \"components\": [\n 0.3803921568627451,\n 0.5450980392156862,\n 0.9568627450980393\n ],\n \"hex\": \"#618BF4\"\n }\n },\n \"violet\": {\n \"$type\": \"color\",\n \"$value\": {\n \"colorSpace\": \"srgb\",\n \"components\": [\n 0.5764705882352941,\n 0.36470588235294116,\n 1\n ],\n \"hex\": \"#935DFF\"\n }\n },\n \"focus\": {\n \"$type\": \"color\",\n \"$value\": {\n \"colorSpace\": \"srgb\",\n \"components\": [\n 0.6627450980392157,\n 0.7333333333333333,\n 1\n ],\n \"hex\": \"#A9BBFF\"\n }\n },\n \"danger\": {\n \"$type\": \"color\",\n \"$value\": {\n \"colorSpace\": \"srgb\",\n \"components\": [\n 0.9411764705882353,\n 0.5019607843137255,\n 0.5019607843137255\n ],\n \"hex\": \"#F08080\"\n }\n },\n \"dangerBackground\": {\n \"$type\": \"color\",\n \"$value\": {\n \"colorSpace\": \"srgb\",\n \"components\": [\n 0.6078431372549019,\n 0.1450980392156863,\n 0.1843137254901961\n ],\n \"hex\": \"#9B252F\"\n }\n },\n \"success\": {\n \"$type\": \"color\",\n \"$value\": {\n \"colorSpace\": \"srgb\",\n \"components\": [\n 0.5176470588235295,\n 0.8588235294117647,\n 0.6784313725490196\n ],\n \"hex\": \"#84DBAD\"\n }\n },\n \"control\": {\n \"$type\": \"color\",\n \"$value\": {\n \"colorSpace\": \"srgb\",\n \"components\": [\n 0.47058823529411764,\n 0.47058823529411764,\n 0.47058823529411764\n ],\n \"hex\": \"#787878\",\n \"alpha\": 0.2\n }\n },\n \"border\": {\n \"$type\": \"color\",\n \"$value\": {\n \"colorSpace\": \"srgb\",\n \"components\": [\n 0.6862745098039216,\n 0.7333333333333333,\n 1\n ],\n \"hex\": \"#AFBBFF\",\n \"alpha\": 0.5\n }\n },\n \"info\": {\n \"$type\": \"color\",\n \"$value\": {\n \"colorSpace\": \"srgb\",\n \"components\": [\n 0,\n 0,\n 0\n ],\n \"hex\": \"#000000\",\n \"alpha\": 0.8\n }\n },\n \"previewInfo\": {\n \"$type\": \"color\",\n \"$value\": {\n \"colorSpace\": \"srgb\",\n \"components\": [\n 0,\n 0,\n 0\n ],\n \"hex\": \"#000000\",\n \"alpha\": 0.4\n }\n },\n \"blueGlow\": {\n \"$type\": \"color\",\n \"$value\": {\n \"colorSpace\": \"srgb\",\n \"components\": [\n 0.13725490196078433,\n 0.3411764705882353,\n 0.9176470588235294\n ],\n \"hex\": \"#2357EA\",\n \"alpha\": 0.35\n }\n },\n \"violetGlow\": {\n \"$type\": \"color\",\n \"$value\": {\n \"colorSpace\": \"srgb\",\n \"components\": [\n 0.4627450980392157,\n 0.19215686274509805,\n 1\n ],\n \"hex\": \"#7631FF\",\n \"alpha\": 0.5\n }\n },\n \"transparent\": {\n \"$type\": \"color\",\n \"$value\": {\n \"colorSpace\": \"srgb\",\n \"components\": [\n 0,\n 0,\n 0\n ],\n \"hex\": \"#000000\",\n \"alpha\": 0\n }\n },\n \"overlay\": {\n \"$type\": \"color\",\n \"$value\": {\n \"colorSpace\": \"srgb\",\n \"components\": [\n 0,\n 0,\n 0\n ],\n \"hex\": \"#000000\",\n \"alpha\": 0.65\n }\n },\n \"primaryAccessible\": {\n \"$type\": \"color\",\n \"$value\": {\n \"colorSpace\": \"srgb\",\n \"components\": [\n 0.23529411764705882,\n 0.38823529411764707,\n 0.8117647058823529\n ],\n \"hex\": \"#3C63CF\"\n }\n }\n }\n }\n },\n \"semantic\": {\n \"color\": {\n \"primary\": {\n \"dark\": {\n \"$type\": \"color\",\n \"$value\": \"{seed.ui.color.primaryAccessible}\"\n }\n }\n }\n },\n \"component\": {\n \"ui\": {\n \"page\": {\n \"$type\": \"color\",\n \"$value\": \"{seed.ui.color.page}\"\n },\n \"surface\": {\n \"$type\": \"color\",\n \"$value\": \"{seed.ui.color.surface}\"\n },\n \"elevated\": {\n \"$type\": \"color\",\n \"$value\": \"{seed.ui.color.elevated}\"\n },\n \"foreground\": {\n \"$type\": \"color\",\n \"$value\": \"{seed.ui.color.foreground}\"\n },\n \"muted\": {\n \"$type\": \"color\",\n \"$value\": \"{seed.ui.color.muted}\"\n },\n \"subtle\": {\n \"$type\": \"color\",\n \"$value\": \"{seed.ui.color.subtle}\"\n },\n \"primary\": {\n \"$type\": \"color\",\n \"$value\": \"{seed.ui.color.primary}\"\n },\n \"primaryHover\": {\n \"$type\": \"color\",\n \"$value\": \"{seed.ui.color.primaryHover}\"\n },\n \"violet\": {\n \"$type\": \"color\",\n \"$value\": \"{seed.ui.color.violet}\"\n },\n \"focus\": {\n \"$type\": \"color\",\n \"$value\": \"{semantic.color.primary.dark}\"\n },\n \"danger\": {\n \"$type\": \"color\",\n \"$value\": \"{seed.ui.color.danger}\"\n },\n \"dangerBackground\": {\n \"$type\": \"color\",\n \"$value\": \"{seed.ui.color.dangerBackground}\"\n },\n \"success\": {\n \"$type\": \"color\",\n \"$value\": \"{seed.ui.color.success}\"\n },\n \"control\": {\n \"$type\": \"color\",\n \"$value\": \"{seed.ui.color.control}\"\n },\n \"border\": {\n \"$type\": \"color\",\n \"$value\": \"{seed.ui.color.border}\"\n },\n \"info\": {\n \"$type\": \"color\",\n \"$value\": \"{seed.ui.color.info}\"\n },\n \"previewInfo\": {\n \"$type\": \"color\",\n \"$value\": {\n \"colorSpace\": \"srgb\",\n \"components\": [\n 0,\n 0,\n 0\n ],\n \"hex\": \"#000000\",\n \"alpha\": 0.65\n }\n },\n \"blueGlow\": {\n \"$type\": \"color\",\n \"$value\": \"{seed.ui.color.blueGlow}\"\n },\n \"violetGlow\": {\n \"$type\": \"color\",\n \"$value\": \"{seed.ui.color.violetGlow}\"\n },\n \"transparent\": {\n \"$type\": \"color\",\n \"$value\": \"{seed.ui.color.transparent}\"\n },\n \"overlay\": {\n \"$type\": \"color\",\n \"$value\": \"{seed.ui.color.overlay}\"\n },\n \"button\": {\n \"primary\": {\n \"background\": {\n \"$type\": \"color\",\n \"$value\": \"{semantic.color.primary.dark}\"\n },\n \"hover\": {\n \"$type\": \"color\",\n \"$value\": \"{semantic.color.primary.dark}\"\n }\n }\n },\n \"radius\": {\n \"panel\": {\n \"$type\": \"dimension\",\n \"$value\": {\n \"value\": 16,\n \"unit\": \"px\"\n }\n },\n \"card\": {\n \"$type\": \"dimension\",\n \"$value\": {\n \"value\": 16,\n \"unit\": \"px\"\n }\n },\n \"control\": {\n \"$type\": \"dimension\",\n \"$value\": {\n \"value\": 24,\n \"unit\": \"px\"\n }\n },\n \"info\": {\n \"$type\": \"dimension\",\n \"$value\": {\n \"value\": 12,\n \"unit\": \"px\"\n }\n }\n },\n \"controlHeight\": {\n \"$type\": \"dimension\",\n \"$value\": {\n \"value\": 34,\n \"unit\": \"px\"\n }\n },\n \"font\": {\n \"$type\": \"fontFamily\",\n \"$value\": [\n \"Inter\",\n \"Monkeys UI Sans\",\n \"Microsoft YaHei\",\n \"sans-serif\"\n ]\n },\n \"motion\": {\n \"press\": {\n \"$type\": \"duration\",\n \"$value\": {\n \"value\": 140,\n \"unit\": \"ms\"\n }\n },\n \"popup\": {\n \"$type\": \"duration\",\n \"$value\": {\n \"value\": 180,\n \"unit\": \"ms\"\n }\n },\n \"ease\": {\n \"$type\": \"cubicBezier\",\n \"$value\": [\n 0.2,\n 0.8,\n 0.2,\n 1\n ]\n }\n },\n \"header-background\": {\n \"$type\": \"color\",\n \"$value\": {\n \"colorSpace\": \"srgb\",\n \"components\": [\n 0.12941176470588237,\n 0.32941176470588235,\n 0.8509803921568627\n ],\n \"hex\": \"#2154D9\"\n }\n },\n \"sidebar-background\": {\n \"$type\": \"color\",\n \"$value\": {\n \"colorSpace\": \"srgb\",\n \"components\": [\n 0,\n 0,\n 0\n ],\n \"hex\": \"#000000\"\n }\n },\n \"sample-ink-light\": {\n \"$type\": \"color\",\n \"$value\": {\n \"colorSpace\": \"srgb\",\n \"components\": [\n 1,\n 1,\n 1\n ],\n \"hex\": \"#FFFFFF\"\n }\n },\n \"sample-ink-dark\": {\n \"$type\": \"color\",\n \"$value\": {\n \"colorSpace\": \"srgb\",\n \"components\": [\n 0,\n 0,\n 0\n ],\n \"hex\": \"#000000\"\n }\n }\n }\n }\n}\n","import { createContext, useContext, useEffect, useMemo, useState, type CSSProperties, type HTMLAttributes, type ReactNode } from 'react';\nimport { createPortal } from 'react-dom';\nimport { compileThemeTokens, getThemeTokenCssValue, type ThemeTokens } from '../../theme-system';\nimport { useMonkeysDirection, useMonkeysEnvironment, useMonkeysPortalOptions, useMonkeysResolvedTheme, useMonkeysLocale } from '../../provider/context';\nimport { zhCN, type MonkeysResolvedLocale } from '../../locale';\nimport * as TooltipPrimitive from '@radix-ui/react-tooltip';\nimport defaults from './tokens.json';\n\nexport const defaultThemeTokens = defaults as ThemeTokens;\nconst isGroup = (value: unknown): value is Record<string, unknown> => !!value && typeof value === 'object' && !Array.isArray(value);\n/** Groups merge recursively; a token is an atomic leaf, including its type. */\nexport function mergeThemeTokens(base: ThemeTokens, override?: ThemeTokens): ThemeTokens {\n function merge(a: unknown, b: unknown): unknown {\n if (b === undefined) return a;\n if (!isGroup(a) || !isGroup(b) || '$value' in b || '$value' in a) return b;\n const result = { ...a };\n for (const key of Object.keys(b)) result[key] = merge(a[key], b[key]);\n return result;\n }\n return merge(base, override) as ThemeTokens;\n}\n\n/** Uses the canonical compiler: no second token resolver or value formatter. */\nexport function compileUITheme(tokens: ThemeTokens): Record<string, string> {\n const compiled = compileThemeTokens(tokens, { colorMode: 'dark' });\n const variables: Record<string, string> = {};\n for (const path of Object.keys(compiled.cssValues).filter(path => path.startsWith('component.ui.'))) {\n const name = '--monkeys-ui-' + path.slice('component.ui.'.length).replace(/([a-z])([A-Z])/g, '$1-$2').replace(/\\./g, '-').toLowerCase();\n if (variables[name] !== undefined) throw new TypeError(`Duplicate UI variable: ${name}`);\n variables[name] = getThemeTokenCssValue(compiled, path)!;\n }\n for (const name of ['foreground', 'page', 'focus', 'button-primary-background', 'font']) {\n if (!variables['--monkeys-ui-' + name]) throw new TypeError(`Missing required UI token: ${name}`);\n }\n return variables;\n}\n\ninterface UITheme { tokens: ThemeTokens; variables: Record<string, string>; dir: 'ltr' | 'rtl' }\nconst UIThemeContext = createContext<UITheme | null>(null);\nconst PortalDepthContext = createContext(0);\nexport function useUIDirection(explicit?: 'ltr' | 'rtl') {\n const theme = useContext(UIThemeContext);\n const inherited = useMonkeysDirection();\n const environment = useMonkeysEnvironment();\n const [documentDirection, setDocumentDirection] = useState<'ltr' | 'rtl'>();\n useEffect(() => {\n if (explicit || theme?.dir || inherited) return;\n const document = environment.getDocument?.() ?? globalThis.document;\n const root = document?.documentElement;\n if (!root) return;\n const update = () => setDocumentDirection(root.dir === 'rtl' ? 'rtl' : 'ltr');\n update(); const observer = new MutationObserver(update); observer.observe(root, { attributes: true, attributeFilter: ['dir'] });\n return () => observer.disconnect();\n }, [explicit, theme?.dir, inherited, environment]);\n return explicit ?? theme?.dir ?? inherited ?? documentDirection;\n}\nexport function useUILocale(): MonkeysResolvedLocale & { provided: boolean } { const locale = useMonkeysLocale(); return locale.provided ? locale : { ...zhCN, provided: false }; }\nexport function useTooltipScope() { return useContext(UIThemeContext) !== null; }\nconst inputDocuments = new WeakMap<Document, { count: number; dispose: () => void }>();\nfunction observeInput(document: Document) {\n const existing = inputDocuments.get(document);\n if (existing) { existing.count++; return () => releaseInput(document); }\n const root = document.documentElement;\n const previous = root.getAttribute('data-monkeys-ui-input');\n const pointer = () => root.setAttribute('data-monkeys-ui-input', 'pointer');\n const keyboard = () => root.setAttribute('data-monkeys-ui-input', 'keyboard');\n document.addEventListener('pointerdown', pointer, true);\n document.addEventListener('keydown', keyboard, true);\n inputDocuments.set(document, { count: 1, dispose: () => { document.removeEventListener('pointerdown', pointer, true); document.removeEventListener('keydown', keyboard, true); if (previous === null) root.removeAttribute('data-monkeys-ui-input'); else root.setAttribute('data-monkeys-ui-input', previous); } });\n return () => releaseInput(document);\n}\nfunction releaseInput(document: Document) { const entry = inputDocuments.get(document); if (entry && --entry.count === 0) { entry.dispose(); inputDocuments.delete(document); } }\nexport interface ThemeProviderProps extends HTMLAttributes<HTMLDivElement> { tokens?: ThemeTokens }\nexport function ThemeProvider({ tokens, children, className, style, dir, ...rest }: ThemeProviderProps) {\n const parent = useContext(UIThemeContext);\n const inherited = useMonkeysResolvedTheme();\n const inheritedDirection = useMonkeysDirection();\n const document = useMemo(() => mergeThemeTokens(mergeThemeTokens(defaultThemeTokens, parent?.tokens ?? inherited?.contract), tokens), [parent?.tokens, inherited?.contract, tokens]);\n const variables = useMemo(() => compileUITheme(document), [document]);\n const direction = (dir === 'rtl' || dir === 'ltr' ? dir : parent?.dir ?? inheritedDirection ?? 'ltr');\n const context = useMemo(() => ({ tokens: document, variables, dir: direction }), [document, variables, direction]);\n return <UIThemeContext.Provider value={context}><TooltipPrimitive.Provider delayDuration={500} skipDelayDuration={300}><div {...rest} dir={direction} data-monkeys-ui-theme=\"dark\" className={['monkeys-ui-scope', className].filter(Boolean).join(' ')} style={{ ...variables, ...style } as CSSProperties}>{children}</div></TooltipPrimitive.Provider></UIThemeContext.Provider>;\n}\n\n/** Client-only host preserves the theme and direction across body portals. */\nexport function Portal({ children }: { children: ReactNode }) {\n const theme = useContext(UIThemeContext);\n const environment = useMonkeysEnvironment();\n const options = useMonkeysPortalOptions();\n const direction = useUIDirection();\n const depth = useContext(PortalDepthContext) + 1;\n const [host, setHost] = useState<Element | null>(null);\n useEffect(() => {\n const document = environment.getDocument?.() ?? globalThis.document;\n setHost(typeof options.container === 'function' ? options.container() : options.container ?? document?.body ?? null);\n return document ? observeInput(document) : undefined;\n }, [environment, options.container]);\n const content = <PortalDepthContext.Provider value={depth}><div className=\"monkeys-ui-scope monkeys-ui-portal\" dir={direction} data-monkeys-ui-theme=\"dark\" style={{ ...theme?.variables, '--monkeys-ui-overlay-layer': 1200 + depth * 10 } as CSSProperties}>{children}</div></PortalDepthContext.Provider>;\n return options.disabled ? content : host ? createPortal(content, host) : null;\n}\n","/** Sample colors are host content. Pick the stronger black/white text contrast. */\nexport function sampleInk(color?: string) {\n if (!color || !/^#([\\da-f]{3}|[\\da-f]{6})$/i.test(color)) return 'light';\n const hex = color.slice(1).length === 3 ? [...color.slice(1)].map(value => value + value).join('') : color.slice(1);\n const channels = [0, 2, 4].map(index => {\n const value = parseInt(hex.slice(index, index + 2), 16) / 255;\n return value <= 0.04045 ? value / 12.92 : ((value + 0.055) / 1.055) ** 2.4;\n });\n const luminance = channels[0] * 0.2126 + channels[1] * 0.7152 + channels[2] * 0.0722;\n return (luminance + 0.05) / 0.05 >= 1.05 / (luminance + 0.05) ? 'dark' : 'light';\n}\n","import { useEffect, useId, useRef, useState, type ComponentProps } from 'react';\nimport tokens from './theme/tokens.json';\n\ntype ShaderModule = typeof import('shaders/react');\nexport type ButtonLightEdgeOptions = Partial<Pick<ComponentProps<ShaderModule['LightEdge']>,\n 'colorA' | 'colorB' | 'colorSpace' | 'thickness' | 'softness' | 'intensity' | 'bloom' | 'spots' | 'spotSize' | 'pulse' | 'smoke' | 'smokeSize' | 'speed' | 'seed'>>;\n\n/** Decorative only: the button owns sizing, clipping, focus, and pointer input. */\nexport function ButtonLightEdge(options: ButtonLightEdgeOptions) {\n const filterId = `button-light-edge-${useId().replace(/:/g, '')}`;\n const hostRef = useRef<HTMLSpanElement>(null);\n const [module, setModule] = useState<ShaderModule | null>(null);\n const [enabled, setEnabled] = useState(false);\n const [ready, setReady] = useState(false);\n const [shape, setShape] = useState<Record<string, number | string> | null>(null);\n\n useEffect(() => {\n const motion = window.matchMedia('(prefers-reduced-motion: reduce)');\n const colors = window.matchMedia('(forced-colors: active)');\n const update = () => setEnabled(!motion.matches && !colors.matches);\n update();\n motion.addEventListener('change', update);\n colors.addEventListener('change', update);\n return () => { motion.removeEventListener('change', update); colors.removeEventListener('change', update); };\n }, []);\n\n useEffect(() => {\n if (!enabled) return;\n let active = true;\n import('shaders/react').then(loaded => { if (active) setModule(loaded); }).catch(() => {});\n return () => { active = false; };\n }, [enabled]);\n\n useEffect(() => {\n const host = hostRef.current;\n const button = host?.closest('button');\n if (!button || !host) return;\n const update = () => {\n const width = host.clientWidth;\n const height = host.clientHeight;\n if (!width || !height) return;\n const radiusValue = getComputedStyle(button).borderTopLeftRadius;\n const radius = radiusValue.endsWith('%')\n ? Math.min(width, height) * parseFloat(radiusValue) / 100\n : parseFloat(radiusValue) || 0;\n const inset = 1.5;\n setShape({ type: 'roundedRectSDF', radius: Math.max(0.01, width / (2 * height) - inset / height), height: Math.max(0.01, 0.5 - inset / height), rounding: Math.max(0, Math.min(radius - inset, height / 2 - inset)) / height });\n };\n update();\n const observer = new ResizeObserver(update);\n observer.observe(button);\n return () => observer.disconnect();\n }, []);\n\n return <span ref={hostRef} className=\"monkeys-ui-button-light-edge-mask\" data-ready={ready || undefined}>\n <svg width=\"0\" height=\"0\" aria-hidden=\"true\" className=\"monkeys-ui-button-light-edge-defs\">\n <defs>\n {/* Composite a diffuse glow and a soft flow from the same canvas. */}\n <filter id={filterId} x=\"-30%\" y=\"-100%\" width=\"160%\" height=\"300%\" colorInterpolationFilters=\"sRGB\">\n <feGaussianBlur in=\"SourceGraphic\" stdDeviation=\"4.5\" result=\"glow\" />\n <feGaussianBlur in=\"SourceGraphic\" stdDeviation=\"1\" result=\"flow\" />\n <feMerge><feMergeNode in=\"glow\" /><feMergeNode in=\"flow\" /></feMerge>\n </filter>\n </defs>\n </svg>\n <span className=\"monkeys-ui-button-light-edge-flow\" style={{ filter: `url(#${filterId})` }}>\n <span className=\"monkeys-ui-button-light-edge-ambient\" />\n {enabled && module && shape ? <module.Shader disableTelemetry style={{ width: '100%', height: '100%' }} onReady={() => setReady(true)}>\n <module.LightEdge colorA={tokens.seed.ui.color.lightEdgeBlue.$value.hex} colorB={tokens.seed.ui.color.violetGlow.$value.hex} thickness={0.48} softness={1} intensity={0.9} bloom={0.2} spots={1} spotSize={0.6} smoke={0.12} smokeSize={0.65} speed={0.45} {...options} stops={null} shape={shape} />\n </module.Shader> : null}\n </span>\n </span>;\n}\n","import { useEffect, useState } from 'react';\nimport { createPortal } from 'react-dom';\n\nimport {\n useMonkeysEnvironment,\n useMonkeysPortalOptions,\n} from '../../provider/context';\nimport type { BasePortalContainer, BasePortalProps } from './types';\n\nfunction resolveContainerValue(\n value: BasePortalContainer,\n source: string,\n): Element | null {\n const candidate = typeof value === 'function' ? value() : value;\n if (candidate === null) return null;\n if (\n !candidate ||\n typeof candidate !== 'object' ||\n candidate.nodeType !== 1\n ) {\n throw new TypeError(`${source} must resolve to an Element or null.`);\n }\n return candidate;\n}\n\ninterface ResolveBasePortalContainerOptions {\n explicitProvided: boolean;\n explicitContainer?: BasePortalContainer;\n providerProvided: boolean;\n providerContainer?: BasePortalContainer;\n getDocument?: () => Document | null;\n}\n\nexport function resolveBasePortalContainer({\n explicitProvided,\n explicitContainer,\n providerProvided,\n providerContainer,\n getDocument,\n}: ResolveBasePortalContainerOptions): Element | null {\n if (explicitProvided) {\n return resolveContainerValue(\n explicitContainer as BasePortalContainer,\n 'BasePortal container',\n );\n }\n if (providerProvided) {\n return resolveContainerValue(\n providerContainer as BasePortalContainer,\n 'MonkeysProvider portal.container',\n );\n }\n if (!getDocument) return null;\n\n const ownerDocument = getDocument();\n if (ownerDocument === null) return null;\n if (\n !ownerDocument ||\n typeof ownerDocument !== 'object' ||\n !('body' in ownerDocument)\n ) {\n throw new TypeError(\n 'MonkeysProvider environment.getDocument must resolve to a Document or null.',\n );\n }\n return resolveContainerValue(\n ownerDocument.body,\n 'MonkeysProvider environment.getDocument().body',\n );\n}\n\nexport function BasePortal(props: BasePortalProps) {\n const environment = useMonkeysEnvironment();\n const portalOptions = useMonkeysPortalOptions();\n const [mounted, setMounted] = useState(false);\n\n useEffect(() => {\n setMounted(true);\n }, []);\n\n if (props.disabled !== undefined && typeof props.disabled !== 'boolean') {\n throw new TypeError('BasePortal disabled must be a boolean.');\n }\n if (props.inline !== undefined && typeof props.inline !== 'boolean') {\n throw new TypeError('BasePortal inline must be a boolean.');\n }\n\n const disabled = props.disabled ?? portalOptions.disabled ?? false;\n if (!mounted || disabled || props.inline) {\n return <>{props.children}</>;\n }\n\n const container = resolveBasePortalContainer({\n explicitProvided: props.container !== undefined,\n explicitContainer: props.container,\n providerProvided: portalOptions.container !== undefined,\n providerContainer: portalOptions.container,\n getDocument: environment.getDocument,\n });\n\n return container\n ? createPortal(props.children, container)\n : <>{props.children}</>;\n}\n","import { useEffect, useState, type ReactNode } from 'react';\nimport { createPortal } from 'react-dom';\n\nimport {\n useMonkeysEnvironment,\n useMonkeysPortalOptions,\n type MonkeysPortalContainer,\n} from '../../../provider/context';\nimport { resolveBasePortalContainer } from '../BasePortal';\n\ninterface ResolveBaseOverlayPortalStateOptions {\n mounted: boolean;\n explicitDisabled?: boolean;\n explicitContainer?: MonkeysPortalContainer;\n providerDisabled?: boolean;\n providerContainer?: MonkeysPortalContainer;\n getDocument?: () => Document | null;\n}\n\ninterface BaseOverlayPortalInlineState {\n mounted: boolean;\n disabled: boolean;\n shouldPortal: false;\n container: null;\n radixPortalProps: undefined;\n}\n\ninterface BaseOverlayPortalReadyState {\n mounted: true;\n disabled: false;\n shouldPortal: true;\n container: Element;\n radixPortalProps: Readonly<{ container: Element }>;\n}\n\nexport type BaseOverlayPortalState =\n | BaseOverlayPortalInlineState\n | BaseOverlayPortalReadyState;\n\nexport function resolveBaseOverlayPortalState({\n mounted,\n explicitDisabled,\n explicitContainer,\n providerDisabled,\n providerContainer,\n getDocument,\n}: ResolveBaseOverlayPortalStateOptions): BaseOverlayPortalState {\n const disabled = explicitDisabled ?? providerDisabled ?? false;\n if (!mounted || disabled) {\n return {\n mounted,\n disabled,\n shouldPortal: false,\n container: null,\n radixPortalProps: undefined,\n };\n }\n\n const container = resolveBasePortalContainer({\n explicitProvided: explicitContainer !== undefined,\n explicitContainer,\n providerProvided: providerContainer !== undefined,\n providerContainer,\n getDocument,\n });\n\n if (!container) {\n return {\n mounted: true,\n disabled: false,\n shouldPortal: false,\n container: null,\n radixPortalProps: undefined,\n };\n }\n\n return {\n mounted: true,\n disabled: false,\n shouldPortal: true,\n container,\n radixPortalProps: Object.freeze({ container }),\n };\n}\n\nexport interface UseBaseOverlayPortalOptions {\n container?: MonkeysPortalContainer;\n disabled?: boolean;\n}\n\nfunction getDefaultDocument(): Document | null {\n return globalThis.document ?? null;\n}\n\nexport function useBaseOverlayPortal(\n options: UseBaseOverlayPortalOptions = {},\n): BaseOverlayPortalState {\n const environment = useMonkeysEnvironment();\n const portalOptions = useMonkeysPortalOptions();\n const [mounted, setMounted] = useState(false);\n\n useEffect(() => {\n setMounted(true);\n }, []);\n\n return resolveBaseOverlayPortalState({\n mounted,\n explicitDisabled: options.disabled,\n explicitContainer: options.container,\n providerDisabled: portalOptions.disabled,\n providerContainer: portalOptions.container,\n getDocument: environment.getDocument ?? getDefaultDocument,\n });\n}\n\nexport interface BaseOverlayPortalProps extends UseBaseOverlayPortalOptions {\n children?: ReactNode;\n}\n\nexport function renderBaseOverlayPortalContent(\n children: ReactNode,\n portal: BaseOverlayPortalState,\n) {\n return portal.shouldPortal\n ? createPortal(children, portal.container)\n : <>{children}</>;\n}\n\nexport function BaseOverlayPortal({\n children,\n container,\n disabled,\n}: BaseOverlayPortalProps) {\n const portal = useBaseOverlayPortal({ container, disabled });\n return renderBaseOverlayPortalContent(children, portal);\n}\n","import type { ReactNode } from 'react';\nimport { twMerge } from 'tailwind-merge';\n\nexport function cn(...parts: Array<string | false | null | undefined>) {\n return twMerge(parts.filter(Boolean).join(' '));\n}\n\nexport function hasRenderableNode(node: ReactNode) {\n return node !== undefined && node !== null && typeof node !== 'boolean';\n}\n\nexport function hasNonEmptyRenderableNode(node: ReactNode) {\n if (typeof node === 'string') return node.trim().length > 0;\n return hasRenderableNode(node);\n}\n","import type {\n BaseAppearance,\n BaseBackground,\n BaseBorder,\n BaseControlTone,\n BaseDensity,\n BaseHeadingSize,\n BaseLayoutAlign,\n BaseLayoutJustify,\n BaseLayoutLength,\n BaseListMarker,\n BaseListSpacing,\n BaseRadius,\n BaseResolvedTheme,\n BaseThemePresetId,\n BaseThemeSlots,\n BaseThemeStyles,\n BaseTypographySize,\n BaseTypographyTone,\n} from './types';\nimport { cn } from './utils';\n\ntype ResolvedSlots = Required<BaseThemeSlots>;\n\nconst emptyStyles: BaseThemeStyles = {};\n\nconst motionBase =\n 'motion-safe:transition motion-safe:duration-300 motion-safe:ease-out';\n\nconst motionInteractive =\n 'motion-safe:transition-all motion-safe:duration-300 motion-safe:ease-out';\n\nconst motionTransform =\n 'motion-safe:transition-transform motion-safe:duration-300 motion-safe:ease-out';\nconst tableScrollbarChrome = cn(\n '[scrollbar-width:thin]',\n '[scrollbar-color:hsl(var(--muted-foreground)/0.45)_transparent]',\n '[&::-webkit-scrollbar]:h-2 [&::-webkit-scrollbar]:w-2',\n '[&::-webkit-scrollbar-button]:hidden [&::-webkit-scrollbar-button]:h-0 [&::-webkit-scrollbar-button]:w-0 [&::-webkit-scrollbar-button]:bg-transparent',\n '[&::-webkit-scrollbar-button:single-button]:hidden [&::-webkit-scrollbar-button:single-button]:h-0 [&::-webkit-scrollbar-button:single-button]:w-0',\n '[&::-webkit-scrollbar-button:double-button]:hidden [&::-webkit-scrollbar-button:double-button]:h-0 [&::-webkit-scrollbar-button:double-button]:w-0',\n '[&::-webkit-scrollbar-corner]:bg-transparent',\n '[&::-webkit-scrollbar-track]:bg-transparent',\n '[&:has(thead.sticky)::-webkit-scrollbar-track]:mt-[var(--base-table-header-height)]',\n '[&::-webkit-scrollbar-thumb]:rounded-full [&::-webkit-scrollbar-thumb]:bg-muted-foreground/40',\n 'hover:[&::-webkit-scrollbar-thumb]:bg-muted-foreground/55',\n);\nconst tableStickyHeaderCells = cn(\n '[&.sticky_th]:sticky [&.sticky_th]:top-0 [&.sticky_th]:z-[2]',\n '[&.sticky_th]:bg-[var(--base-table-sticky-header-bg)]',\n '[&.sticky_th]:shadow-[inset_0_-1px_0_var(--base-table-header-separator)]',\n);\n\nconst baseSlots: ResolvedSlots = {\n buttonBase:\n cn(\n 'group/button inline-flex min-w-0 items-center justify-center gap-2 rounded-md border px-3 text-sm font-medium focus-visible:outline-hidden',\n 'cursor-pointer disabled:!cursor-not-allowed',\n motionInteractive,\n ),\n buttonDefault:\n 'border-border bg-background text-foreground hover:bg-accent/60',\n buttonPrimary:\n 'border-primary/20 bg-primary/10 text-primary hover:bg-primary/15',\n buttonSuccess:\n 'border-[hsl(var(--success,142_72%_29%)_/_0.30)] bg-[hsl(var(--success,142_72%_29%)_/_0.10)] text-[hsl(var(--success,142_72%_29%))] hover:bg-[hsl(var(--success,142_72%_29%)_/_0.15)]',\n buttonWarning:\n 'border-[hsl(var(--warning,45_93%_47%)_/_0.30)] bg-[hsl(var(--warning,45_93%_47%)_/_0.10)] text-[hsl(var(--warning-foreground,28_73%_26%))] hover:bg-[hsl(var(--warning,45_93%_47%)_/_0.15)]',\n buttonDanger:\n 'border-destructive/20 bg-destructive/10 text-destructive-text hover:bg-destructive/15',\n buttonMuted:\n 'border-border/60 bg-muted/45 text-muted-foreground hover:bg-muted/70 hover:text-foreground',\n buttonActive: 'border-primary/35 bg-primary/10 text-primary',\n buttonDisabled: '!cursor-not-allowed opacity-60',\n buttonIconOnly: 'w-9 px-0',\n buttonIcon:\n 'inline-flex h-4 w-4 shrink-0 items-center justify-center text-[inherit] [&_*]:!text-[inherit] [&_svg]:!stroke-current [&_svg_*]:!stroke-current',\n buttonLabel: 'min-w-0 truncate',\n badgeBase:\n cn(\n 'inline-flex max-w-full items-center gap-1.5 rounded-full border px-2 py-0.5 text-xs font-medium',\n motionBase,\n ),\n badgeDefault: 'border-border/60 bg-background text-foreground',\n badgePrimary: 'border-primary/30 bg-primary/10 text-primary',\n badgeSuccess: 'border-[hsl(var(--success,142_72%_29%)_/_0.30)] bg-[hsl(var(--success,142_72%_29%)_/_0.10)] text-[hsl(var(--success,142_72%_29%))]',\n badgeWarning: 'border-[hsl(var(--warning,45_93%_47%)_/_0.30)] bg-[hsl(var(--warning,45_93%_47%)_/_0.10)] text-[hsl(var(--warning-foreground,28_73%_26%))]',\n badgeDanger: 'border-destructive/30 bg-destructive/10 text-destructive-text',\n badgeMuted: 'border-border/60 bg-muted text-muted-foreground',\n badgeIcon: 'inline-flex h-3.5 w-3.5 shrink-0 items-center justify-center',\n badgeLabel: 'min-w-0 truncate',\n textRoot: 'min-w-0 break-words leading-6',\n textSizeXs: 'text-xs',\n textSizeSm: 'text-sm',\n textSizeMd: 'text-base',\n textSizeLg: 'text-lg',\n textSizeXl: 'text-xl',\n typographyToneDefault: 'text-foreground',\n typographyToneMuted: 'text-muted-foreground',\n typographyTonePrimary: 'text-primary',\n typographyToneSuccess: 'text-emerald-700 dark:text-emerald-400',\n typographyToneWarning: 'text-amber-700 dark:text-amber-400',\n typographyToneDanger: 'text-destructive-text',\n typographyToneInherit: 'text-inherit',\n headingRoot: 'min-w-0 break-words font-semibold tracking-tight',\n headingSizeXs: 'text-sm leading-5',\n headingSizeSm: 'text-base leading-6',\n headingSizeMd: 'text-lg leading-7',\n headingSizeLg: 'text-xl leading-7',\n headingSizeXl: 'text-2xl leading-8',\n headingSize2xl: 'text-3xl leading-9',\n linkRoot:\n 'inline break-words underline decoration-current/40 underline-offset-4 hover:decoration-current focus-visible:outline-hidden focus-visible:ring-2 focus-visible:ring-primary/30',\n codeInline:\n 'rounded border border-border/70 bg-muted/60 px-1.5 py-0.5 font-mono text-[0.875em] leading-[1.45] text-foreground',\n codeBlock:\n 'm-0 max-w-full overflow-x-auto rounded-md border border-border/70 bg-muted/60 p-4 text-foreground',\n codeContent: 'font-mono text-sm leading-6',\n kbdRoot:\n 'inline-flex min-h-5 items-center rounded border border-border bg-muted/70 px-1.5 font-mono text-[0.75em] font-medium leading-5 text-foreground shadow-[inset_0_-1px_0_hsl(var(--monkeys-color-border))]',\n listRoot: 'm-0 min-w-0 list-outside break-words ps-5 text-foreground',\n listSpacingCompact: '[&>li+li]:mt-1',\n listSpacingDefault: '[&>li+li]:mt-2',\n listSpacingRelaxed: '[&>li+li]:mt-3',\n listMarkerNone: 'list-none ps-0',\n listMarkerDisc: 'list-disc',\n listMarkerCircle: 'list-[circle]',\n listMarkerSquare: 'list-[square]',\n listMarkerDecimal: 'list-decimal',\n listMarkerLowerAlpha: 'list-[lower-alpha]',\n listMarkerUpperAlpha: 'list-[upper-alpha]',\n listItem: 'min-w-0 ps-1 leading-6 marker:text-muted-foreground',\n stackRoot: 'flex min-w-0 flex-col',\n inlineRoot: 'flex min-w-0 flex-row',\n gridRoot: 'grid min-w-0',\n containerRoot: 'mx-auto w-full min-w-0',\n aspectRatioRoot:\n 'relative min-w-0 overflow-hidden [&>*]:h-full [&>*]:w-full',\n spinnerRoot:\n 'inline-flex shrink-0 items-center justify-center text-current align-middle',\n spinnerIndicator:\n 'h-5 w-5 rounded-full border-2 border-current border-r-transparent motion-safe:animate-spin motion-reduce:animate-none',\n visuallyHiddenRoot: 'sr-only',\n visuallyHiddenFocusable:\n 'focus:not-sr-only focus:fixed focus:left-4 focus:top-4 focus:z-[1000] focus:rounded-md focus:bg-background focus:px-4 focus:py-2 focus:text-foreground focus:shadow-lg focus:outline-hidden focus:ring-2 focus:ring-ring focus-within:not-sr-only focus-within:fixed focus-within:left-4 focus-within:top-4 focus-within:z-[1000] focus-within:rounded-md focus-within:bg-background focus-within:px-4 focus-within:py-2 focus-within:text-foreground focus-within:shadow-lg focus-within:ring-2 focus-within:ring-ring',\n fieldsetRoot: 'min-w-0 border-0 p-0 text-foreground',\n fieldsetLegend: 'min-w-0 text-sm font-semibold leading-6 text-foreground',\n fieldsetDescription: 'mt-1 text-sm leading-5 text-muted-foreground',\n fieldsetError: 'mt-1 text-sm leading-5 text-destructive-text',\n fieldsetContent: 'mt-3 grid min-w-0 gap-3',\n stepsRoot: 'm-0 min-w-0 list-none p-0 text-foreground',\n stepsHorizontal:\n 'flex w-full max-w-full items-start overflow-x-auto pb-2',\n stepsVertical: 'grid',\n stepsItem: 'relative min-w-0',\n stepsItemHorizontal: 'flex min-w-52 flex-1 items-start',\n stepsItemVertical: 'pb-6 last:pb-0',\n stepsTrigger:\n 'flex min-w-0 flex-1 items-start gap-3 rounded-md border-0 bg-transparent p-1 text-start text-inherit',\n stepsTriggerInteractive:\n 'cursor-pointer hover:bg-accent/50 focus-visible:outline-hidden focus-visible:ring-2 focus-visible:ring-ring focus-visible:ring-offset-2 motion-safe:transition motion-safe:duration-300 motion-safe:ease-out',\n stepsTriggerDisabled: '!cursor-not-allowed opacity-60',\n stepsIndicator:\n 'relative z-[1] inline-flex h-7 w-7 shrink-0 items-center justify-center rounded-full border text-xs font-semibold',\n stepsIndicatorPending: 'border-border bg-background text-muted-foreground',\n stepsIndicatorCurrent: 'border-primary/50 bg-primary/10 text-primary',\n stepsIndicatorCompleted:\n 'border-primary bg-primary text-primary-foreground',\n stepsIndicatorError:\n 'border-destructive bg-destructive text-destructive-foreground',\n stepsContent: 'grid min-w-0 gap-1 pt-0.5',\n stepsLabel: 'min-w-0 break-words text-sm font-medium leading-5',\n stepsDescription:\n 'min-w-0 break-words text-sm leading-5 text-muted-foreground',\n stepsStatus: 'sr-only',\n stepsConnector: 'shrink-0 bg-border',\n stepsConnectorHorizontal: 'mt-3.5 h-px w-8',\n stepsConnectorVertical:\n 'absolute bottom-0 top-8 start-3.5 w-px -translate-x-1/2',\n stepsConnectorCompleted: 'bg-primary/60',\n stepsConnectorError: 'bg-destructive/60',\n scrollAreaViewport: 'min-h-0 min-w-0',\n numberInputControl: 'tabular-nums',\n numberInputStepControls:\n 'me-1 flex shrink-0 self-stretch overflow-hidden border-s border-border',\n numberInputStepButton:\n 'flex min-h-6 w-7 cursor-pointer items-center justify-center border-0 bg-transparent px-1 text-xs leading-none text-muted-foreground hover:bg-accent hover:text-foreground focus-visible:z-[1] focus-visible:outline-hidden focus-visible:ring-2 focus-visible:ring-inset focus-visible:ring-ring disabled:!cursor-not-allowed disabled:opacity-40',\n passwordInputControl: 'pe-2',\n passwordInputToggle:\n 'me-1 inline-flex min-h-7 shrink-0 cursor-pointer items-center justify-center rounded px-2 text-xs font-medium text-muted-foreground hover:bg-accent hover:text-foreground focus-visible:outline-hidden focus-visible:ring-2 focus-visible:ring-ring disabled:!cursor-not-allowed disabled:opacity-40',\n inputGroupRoot:\n cn(\n 'relative flex min-w-0 items-stretch overflow-hidden rounded-md border border-border bg-background text-foreground focus-within:border-primary/50 focus-within:ring-2 focus-within:ring-ring/30',\n motionBase,\n ),\n inputGroupInvalid:\n 'border-destructive/55 focus-within:border-destructive/70 focus-within:ring-destructive/25',\n inputGroupDisabled: '!cursor-not-allowed bg-muted/35',\n inputGroupContent:\n 'flex min-w-0 flex-1 items-stretch [&>*]:min-w-0',\n inputGroupStartElement:\n 'inline-flex shrink-0 items-center justify-center ps-3 pe-1 text-foreground/75',\n inputGroupEndElement:\n 'inline-flex shrink-0 items-center justify-center ps-1 pe-3 text-foreground/75',\n inputGroupStartAddon:\n 'inline-flex max-w-[min(40%,16rem)] shrink-0 items-center overflow-hidden border-e border-border bg-muted/60 px-3 text-sm text-foreground/75 text-ellipsis whitespace-nowrap [&>*]:min-w-0',\n inputGroupEndAddon:\n 'inline-flex max-w-[min(40%,16rem)] shrink-0 items-center overflow-hidden border-s border-border bg-muted/60 px-3 text-sm text-foreground/75 text-ellipsis whitespace-nowrap [&>*]:min-w-0',\n panelRoot:\n cn(\n 'group relative flex min-w-0 flex-col overflow-hidden rounded-lg border border-border/70 bg-background',\n motionInteractive,\n ),\n panelInteractive:\n 'cursor-pointer hover:shadow-md',\n panelSelected: 'border-primary/45 bg-primary/5',\n panelDisabled: '!cursor-not-allowed opacity-60',\n panelMedia:\n 'shrink-0 overflow-hidden',\n panelHeader: 'min-w-0 p-token-lg',\n panelTitle: 'min-w-0 truncate text-sm font-semibold leading-none text-foreground',\n panelDescription: 'mt-1 text-sm leading-5 text-foreground/75',\n panelBody: 'min-w-0 px-token-lg pb-token-lg text-sm text-foreground',\n panelBodyStandalone: 'pt-token-lg',\n panelFooter: 'shrink-0 border-t border-border/60 px-token-lg py-token-md',\n stateRoot:\n cn(\n 'flex min-h-48 flex-col items-center justify-center rounded-lg border border-border/70 bg-background px-6 py-10 text-center',\n motionBase,\n ),\n stateIcon:\n 'mb-token-lg flex h-12 w-12 items-center justify-center rounded-full bg-muted text-muted-foreground motion-safe:animate-in motion-safe:fade-in',\n stateTitle: 'text-sm font-semibold text-foreground',\n stateDescription: 'mt-2 max-w-md text-sm leading-6 text-muted-foreground',\n stateActions: 'mt-token-xl flex flex-wrap items-center justify-center gap-token-sm',\n loadingSpinner:\n 'h-5 w-5 motion-safe:animate-spin motion-reduce:animate-none',\n fieldRoot: 'grid min-w-0 gap-token-md',\n fieldLabelRow: 'flex min-w-0 items-center justify-between gap-token-md',\n fieldLabel: 'min-w-0 text-sm font-medium leading-none text-foreground',\n fieldRequired: 'text-destructive-text',\n fieldDescription: 'text-sm leading-5 text-muted-foreground',\n fieldMessage: 'text-sm leading-5 text-muted-foreground',\n fieldControl: 'min-w-0',\n controlWrapper:\n cn(\n 'relative flex min-w-0 items-center rounded-md border border-border bg-background text-foreground focus-within:border-primary/35',\n motionBase,\n ),\n controlBase:\n 'min-w-0 flex-1 bg-transparent px-3 text-sm text-foreground outline-hidden placeholder:text-muted-foreground disabled:!cursor-not-allowed',\n controlInput: 'h-9',\n controlTextarea: 'min-h-24 resize-y py-2 leading-6',\n controlSelect: 'h-9 cursor-pointer appearance-none pr-9 disabled:!cursor-not-allowed',\n controlIcon:\n 'pointer-events-none ml-3 inline-flex h-4 w-4 shrink-0 items-center justify-center text-muted-foreground',\n controlTrailing:\n 'mr-3 inline-flex shrink-0 items-center justify-center text-muted-foreground',\n controlInvalid:\n 'border-destructive/45 focus-within:border-destructive/60',\n controlDisabled: '!cursor-not-allowed opacity-60',\n controlReadOnly: 'bg-muted/35',\n selectChevron:\n cn(\n 'pointer-events-none absolute right-3 top-1/2 h-2 w-2 -translate-y-1/2 rotate-45 border-b border-r border-current text-muted-foreground',\n motionTransform,\n ),\n selectMenu:\n 'absolute left-0 right-0 top-[calc(100%+0.375rem)] z-50 max-h-60 overflow-auto rounded-md border border-border bg-background p-1 text-sm text-foreground shadow-lg outline-hidden',\n selectOption:\n cn(\n 'flex min-h-8 w-full min-w-0 cursor-pointer items-center rounded-sm px-2.5 py-1.5 text-left text-sm text-foreground',\n motionInteractive,\n ),\n selectOptionActive: 'bg-accent text-accent-foreground',\n selectOptionSelected: 'bg-primary/10 text-primary',\n selectOptionDisabled: '!cursor-not-allowed opacity-50',\n selectPlaceholder: 'text-muted-foreground',\n selectNative: 'sr-only',\n switchRoot: 'inline-flex min-w-0 cursor-pointer items-start gap-3',\n switchInput: 'sr-only',\n switchTrack:\n cn(\n 'relative mt-0.5 inline-flex h-6 w-10 shrink-0 items-center rounded-full border border-border bg-muted focus-within:border-primary/35',\n motionBase,\n ),\n switchThumb:\n cn(\n 'h-4 w-4 translate-x-1 rounded-full bg-background shadow-sm',\n motionTransform,\n ),\n switchChecked: 'border-primary/40 bg-primary/80 text-primary-foreground',\n switchDisabled: '!cursor-not-allowed opacity-60',\n switchContent: 'grid min-w-0 gap-1',\n switchLabel: 'text-sm font-medium leading-none text-foreground',\n switchDescription: 'text-sm leading-5 text-muted-foreground',\n checkboxRoot: 'inline-flex min-w-0 cursor-pointer items-start gap-3',\n checkboxInput: 'sr-only',\n checkboxBox:\n cn(\n 'mt-0.5 inline-flex h-4 w-4 shrink-0 items-center justify-center rounded border border-border bg-background text-primary focus-within:border-primary/40',\n motionBase,\n ),\n checkboxBoxChecked: 'border-primary/45 bg-primary text-primary-foreground',\n checkboxBoxInvalid: 'border-destructive/50',\n checkboxIndicator: 'text-xs font-bold leading-none',\n checkboxDisabled: '!cursor-not-allowed opacity-60',\n checkboxContent: 'grid min-w-0 gap-1',\n checkboxLabel: 'text-sm font-medium leading-none text-foreground',\n checkboxDescription: 'text-sm leading-5 text-muted-foreground',\n radioGroupRoot: 'grid min-w-0 gap-2',\n radioOption:\n cn(\n 'inline-flex min-w-0 cursor-pointer items-start gap-3 rounded-md border border-border/60 bg-background px-3 py-2 text-sm',\n motionInteractive,\n 'hover:bg-muted/35',\n ),\n radioInput: 'sr-only',\n radioMarker:\n cn(\n 'mt-0.5 inline-flex h-4 w-4 shrink-0 items-center justify-center rounded-full border border-border bg-background text-primary focus-within:border-primary/40',\n motionBase,\n ),\n radioMarkerChecked: 'border-primary/50 bg-primary/10',\n radioIndicator: 'h-2 w-2 rounded-full bg-primary',\n radioOptionDisabled: '!cursor-not-allowed opacity-60 hover:bg-background',\n radioContent: 'grid min-w-0 gap-1',\n radioLabel: 'text-sm font-medium leading-none text-foreground',\n radioDescription: 'text-sm leading-5 text-muted-foreground',\n dialogRoot: 'relative',\n dialogTrigger: '',\n dialogTriggerDisabled: '!cursor-not-allowed opacity-60',\n dialogOverlay:\n 'fixed inset-0 z-50 bg-background/70 backdrop-blur-sm motion-safe:animate-in motion-safe:fade-in motion-safe:duration-300 motion-safe:ease-out',\n dialogContent:\n 'pointer-events-none fixed inset-0 z-50 flex min-h-0 items-center justify-center p-4',\n dialogPanel:\n cn(\n 'pointer-events-auto relative flex max-h-[min(85vh,720px)] w-full max-w-lg min-w-0 flex-col overflow-hidden rounded-lg border border-border/70 bg-background text-foreground shadow-xl',\n 'motion-safe:animate-in motion-safe:fade-in motion-safe:zoom-in-95 motion-safe:duration-300 motion-safe:ease-out',\n ),\n dialogHeader: 'grid min-w-0 gap-1 border-b border-border/60 px-5 py-4',\n dialogTitle: 'min-w-0 pr-8 text-base font-semibold leading-6 text-foreground',\n dialogDescription: 'text-sm leading-6 text-muted-foreground',\n dialogBody: 'min-h-0 min-w-0 overflow-auto px-5 py-4 text-sm text-foreground',\n dialogFooter:\n 'flex shrink-0 flex-wrap items-center justify-end gap-2 border-t border-border/60 px-5 py-4',\n dialogClose:\n cn(\n 'absolute right-3 top-3 inline-flex h-8 w-8 cursor-pointer items-center justify-center rounded-md text-muted-foreground hover:bg-muted/60 hover:text-foreground focus-visible:outline-hidden focus-visible:ring-2 focus-visible:ring-primary/30',\n motionInteractive,\n ),\n dropdownRoot: 'relative inline-flex min-w-0',\n dropdownTrigger: '',\n dropdownTriggerDisabled: '!cursor-not-allowed opacity-60',\n dropdownMenu:\n 'z-50 min-w-48 overflow-hidden rounded-md border border-border bg-background p-1 text-sm text-foreground shadow-lg motion-safe:animate-in motion-safe:fade-in motion-safe:duration-300 motion-safe:ease-out',\n dropdownMenuTop: 'bottom-[calc(100%+0.375rem)] top-auto',\n dropdownMenuEnd: 'left-auto right-0',\n dropdownLabel:\n 'px-2.5 py-1.5 text-xs font-semibold uppercase tracking-[0.12em] text-muted-foreground',\n dropdownSeparator: 'my-1 h-px bg-border/70',\n dropdownItem:\n cn(\n 'flex min-w-0 cursor-pointer items-center gap-2 rounded-sm px-2.5 py-2 text-left text-sm text-foreground hover:bg-accent/60 focus:bg-accent/60 data-[highlighted]:bg-accent/60 focus-visible:outline-hidden focus-visible:ring-2 focus-visible:ring-primary/30',\n motionInteractive,\n ),\n dropdownItemDanger:\n 'text-destructive-text hover:bg-destructive/10 focus:bg-destructive/10 data-[highlighted]:bg-destructive/10',\n dropdownItemDisabled:\n '!cursor-not-allowed opacity-50 hover:bg-transparent focus:bg-transparent data-[highlighted]:bg-transparent',\n dropdownItemIcon: 'inline-flex h-4 w-4 shrink-0 items-center justify-center',\n dropdownItemContent: 'grid min-w-0 flex-1 gap-0.5',\n dropdownItemLabel: 'min-w-0 truncate',\n dropdownItemDescription:\n 'min-w-0 truncate text-xs leading-4 text-muted-foreground',\n dropdownItemShortcut:\n 'ml-3 shrink-0 text-xs font-medium text-muted-foreground',\n tooltipRoot: 'relative inline-flex min-w-0',\n tooltipTrigger: 'inline-flex min-w-0',\n tooltipContent:\n 'pointer-events-none z-50 max-w-xs rounded-md border border-border bg-popover px-2.5 py-1.5 text-xs leading-5 text-popover-foreground shadow-lg motion-safe:animate-in motion-safe:fade-in motion-safe:duration-300 motion-safe:ease-out',\n noticeBase:\n cn(\n 'flex min-w-0 gap-3 rounded-lg border px-4 py-3 text-sm',\n motionBase,\n 'motion-safe:animate-in motion-safe:fade-in',\n ),\n noticeDefault: 'border-border bg-background text-foreground',\n noticePrimary: 'border-primary/25 bg-primary/10 text-primary',\n noticeSuccess:\n 'border-[hsl(var(--success,142_72%_29%)_/_0.30)] bg-[hsl(var(--success,142_72%_29%)_/_0.10)] text-foreground',\n noticeWarning: 'border-[hsl(var(--warning,45_93%_47%)_/_0.30)] bg-[hsl(var(--warning,45_93%_47%)_/_0.10)] text-[hsl(var(--warning-foreground,28_73%_26%))]',\n noticeDanger:\n 'border-destructive/30 bg-destructive/10 text-destructive-text',\n noticeMuted: 'border-border/60 bg-muted/35 text-muted-foreground',\n noticeIcon:\n 'mt-0.5 inline-flex h-4 w-4 shrink-0 items-center justify-center motion-safe:animate-in motion-safe:fade-in',\n noticeTitle: 'font-semibold leading-5',\n noticeDescription: 'leading-6',\n noticeActions: 'mt-3 flex flex-wrap items-center gap-2',\n dividerRoot: cn('shrink-0 border-border/70', motionBase),\n dividerLabel:\n 'mx-3 shrink-0 text-xs font-medium uppercase tracking-[0.12em] text-muted-foreground motion-safe:animate-in motion-safe:fade-in',\n sectionHeaderRoot:\n 'flex min-w-0 flex-wrap items-start justify-between gap-token-md motion-safe:animate-in motion-safe:fade-in motion-safe:duration-300 motion-safe:ease-out',\n sectionHeaderContent: 'grid min-w-0 gap-1',\n sectionHeaderEyebrow:\n 'text-xs font-semibold uppercase tracking-[0.14em] text-muted-foreground',\n sectionHeaderTitle: 'text-base font-semibold leading-6 text-foreground',\n sectionHeaderDescription: 'max-w-2xl text-sm leading-6 text-muted-foreground',\n sectionHeaderActions: 'flex shrink-0 flex-wrap items-center gap-2',\n tabsRoot: 'grid min-w-0 gap-token-md',\n tabsList:\n cn(\n 'inline-flex min-w-0 flex-wrap items-center gap-token-xs rounded-lg border border-border/70 bg-muted/30 p-token-xs',\n motionBase,\n ),\n tabsTrigger:\n cn(\n 'inline-flex min-w-0 cursor-pointer items-center justify-center rounded-md px-3 py-1.5 text-sm font-medium text-muted-foreground hover:bg-background/70 hover:text-foreground focus-visible:outline-hidden focus-visible:ring-2 focus-visible:ring-primary/30 focus-visible:ring-offset-1 motion-reduce:transition-none',\n motionInteractive,\n ),\n tabsTriggerActive:\n 'bg-background text-foreground shadow-sm',\n tabsTriggerDisabled: '!cursor-not-allowed opacity-50 hover:bg-transparent',\n tabsPanel:\n 'min-w-0 rounded-lg border border-border/70 bg-background p-4 text-sm text-foreground focus-visible:outline-hidden focus-visible:ring-2 focus-visible:ring-primary/30 motion-safe:animate-in motion-safe:fade-in motion-safe:duration-300 motion-safe:ease-out motion-reduce:transition-none',\n segmentedRoot:\n cn(\n 'inline-flex min-w-0 items-center gap-1 rounded-lg border border-border/70 bg-muted/30 p-1',\n motionBase,\n ),\n segmentedItem:\n cn(\n 'inline-flex min-w-0 cursor-pointer items-center justify-center gap-1.5 rounded-md px-3 py-1.5 text-sm font-medium text-muted-foreground hover:bg-background/70 hover:text-foreground focus-visible:outline-hidden',\n motionInteractive,\n ),\n segmentedItemActive:\n 'bg-background text-foreground shadow-sm',\n segmentedItemDisabled: '!cursor-not-allowed opacity-50 hover:bg-transparent',\n progressRoot: 'grid min-w-0 gap-2',\n progressTrack:\n 'h-2 w-full overflow-hidden rounded-full bg-muted',\n progressIndicator:\n 'h-full rounded-full bg-primary motion-safe:transition-[width] motion-safe:duration-500 motion-safe:ease-out',\n progressLabelRow: 'flex min-w-0 items-center justify-between gap-3',\n progressLabel: 'min-w-0 truncate text-sm font-medium text-foreground',\n progressValue: 'shrink-0 text-xs font-medium text-muted-foreground',\n skeletonRoot:\n 'relative overflow-hidden rounded-md bg-muted/70',\n avatarRoot:\n 'relative inline-flex shrink-0 items-center justify-center overflow-hidden rounded-full border border-border bg-muted text-sm font-semibold text-muted-foreground motion-safe:transition motion-safe:duration-300 motion-safe:ease-out',\n avatarImage:\n 'h-full w-full object-cover',\n avatarFallback:\n 'flex h-full w-full items-center justify-center bg-muted text-foreground',\n avatarStatus:\n 'absolute bottom-0 right-0 h-2.5 w-2.5 rounded-full border-2 border-background bg-muted-foreground motion-safe:animate-pulse',\n avatarText: 'min-w-0 truncate text-sm font-medium text-foreground',\n toolbarRoot:\n cn(\n 'flex min-w-0 flex-wrap items-center justify-between gap-token-md rounded-lg border border-border/70 bg-background px-token-lg py-token-md',\n motionBase,\n ),\n toolbarLeading: 'flex min-w-0 items-center gap-token-md',\n toolbarTitle: 'min-w-0 truncate text-sm font-semibold text-foreground',\n toolbarDescription: 'mt-0.5 text-sm leading-5 text-muted-foreground',\n toolbarContent: 'min-w-0 flex-1',\n toolbarActions: 'flex shrink-0 flex-wrap items-center gap-token-sm',\n breadcrumbRoot: 'min-w-0 text-sm text-muted-foreground',\n breadcrumbList: 'flex min-w-0 flex-wrap items-center gap-1.5',\n breadcrumbItem: 'inline-flex min-w-0 items-center gap-1.5',\n breadcrumbLink:\n 'min-w-0 cursor-pointer truncate text-muted-foreground hover:text-foreground disabled:!cursor-not-allowed disabled:opacity-50 aria-disabled:!cursor-not-allowed aria-disabled:opacity-50 aria-disabled:hover:text-muted-foreground motion-safe:transition motion-safe:duration-300 motion-safe:ease-out',\n breadcrumbCurrent: 'min-w-0 truncate font-medium text-foreground',\n breadcrumbSeparator: 'shrink-0 text-muted-foreground/70',\n paginationRoot:\n 'flex min-w-0 flex-wrap items-center justify-between gap-3 text-sm',\n paginationInfo: 'min-w-0 text-muted-foreground',\n paginationControls: 'flex min-w-0 flex-wrap items-center justify-end gap-1.5',\n paginationButton:\n 'inline-flex h-8 min-w-8 cursor-pointer items-center justify-center whitespace-nowrap rounded-md border border-border bg-background px-2.5 text-sm font-medium text-foreground hover:bg-accent/60 disabled:!cursor-not-allowed disabled:opacity-50 motion-safe:transition motion-safe:duration-300 motion-safe:ease-out',\n paginationButtonDisabled: '!cursor-not-allowed opacity-50',\n paginationPage:\n 'inline-flex h-8 min-w-8 cursor-default items-center justify-center rounded-md bg-muted/50 px-2.5 text-sm font-medium text-foreground hover:bg-muted/50',\n paginationEllipsis:\n 'inline-flex h-8 min-w-6 items-center justify-center px-1 text-sm text-muted-foreground',\n descriptionListRoot:\n 'grid min-w-0 gap-3 text-sm',\n descriptionListItem:\n 'grid min-w-0 gap-1 rounded-md border border-border/60 bg-background px-3 py-2 motion-safe:transition motion-safe:duration-300 motion-safe:ease-out hover:shadow-sm',\n descriptionListTerm:\n 'min-w-0 truncate text-xs font-medium uppercase tracking-[0.08em] text-muted-foreground',\n descriptionListValue: 'min-w-0 text-sm leading-6 text-foreground',\n accordionRoot: 'grid min-w-0 gap-2',\n accordionItem:\n 'overflow-hidden rounded-lg border border-border/70 bg-background motion-safe:transition motion-safe:duration-300 motion-safe:ease-out motion-reduce:transition-none',\n accordionTrigger:\n 'flex w-full min-w-0 cursor-pointer items-center justify-between gap-3 px-4 py-3 text-start text-sm font-medium text-foreground hover:bg-muted/40 focus-visible:outline-hidden focus-visible:ring-2 focus-visible:ring-inset focus-visible:ring-ring disabled:!cursor-not-allowed disabled:opacity-50 motion-safe:transition motion-safe:duration-300 motion-safe:ease-out motion-reduce:transition-none',\n accordionTriggerIcon:\n cn(\n 'h-2 w-2 shrink-0 rotate-45 border-b border-r border-current text-muted-foreground',\n motionTransform,\n 'motion-reduce:transition-none',\n ),\n accordionPanel:\n 'border-t border-border/60 px-4 py-3 text-sm leading-6 text-muted-foreground motion-safe:animate-in motion-safe:fade-in motion-safe:duration-300 motion-safe:ease-out motion-reduce:animate-none',\n menuTrigger: 'inline-flex min-w-0',\n menuContent:\n 'z-50 min-w-44 overflow-hidden rounded-md border border-border bg-background p-1 text-sm text-foreground shadow-lg outline-hidden motion-safe:animate-in motion-safe:fade-in motion-safe:zoom-in-95 motion-safe:duration-300 motion-safe:ease-out',\n menuLabel: 'px-2 py-1.5 text-xs font-medium text-muted-foreground',\n menuSeparator: '-mx-1 my-1 h-px bg-border',\n menuItem:\n cn(\n 'relative flex min-h-8 min-w-0 cursor-pointer select-none items-center gap-2 rounded-sm px-2.5 py-1.5 text-sm text-foreground outline-hidden focus:bg-accent focus:text-accent-foreground data-[disabled]:!cursor-not-allowed data-[highlighted]:bg-accent data-[highlighted]:text-accent-foreground',\n motionInteractive,\n ),\n menuItemDefault: 'text-foreground',\n menuItemPrimary: 'text-primary focus:text-primary data-[highlighted]:text-primary',\n menuItemSuccess:\n 'text-[hsl(var(--success,142_72%_29%))] focus:text-[hsl(var(--success,142_72%_29%))] data-[highlighted]:text-[hsl(var(--success,142_72%_29%))]',\n menuItemWarning:\n 'text-[hsl(var(--warning-foreground,28_73%_26%))] focus:text-[hsl(var(--warning-foreground,28_73%_26%))] data-[highlighted]:text-[hsl(var(--warning-foreground,28_73%_26%))]',\n menuItemDanger:\n 'text-destructive-text focus:text-destructive-text data-[highlighted]:text-destructive-text',\n menuItemMuted:\n 'text-muted-foreground focus:text-foreground data-[highlighted]:text-foreground',\n menuItemDisabled:\n '!cursor-not-allowed opacity-50 data-[disabled]:pointer-events-none',\n menuItemIcon: 'inline-flex h-4 w-4 shrink-0 items-center justify-center',\n menuItemLabel: 'min-w-0 flex-1 truncate',\n menuItemShortcut:\n 'ml-4 shrink-0 text-xs font-medium text-muted-foreground',\n menuCheckboxIndicator:\n 'absolute left-2 inline-flex h-4 w-4 items-center justify-center text-current',\n menuRadioIndicator:\n 'absolute left-2 inline-flex h-4 w-4 items-center justify-center text-current',\n menuSubTrigger:\n cn(\n 'relative flex min-h-8 min-w-0 cursor-pointer select-none items-center gap-2 rounded-sm px-2.5 py-1.5 text-sm text-foreground outline-hidden focus:bg-accent focus:text-accent-foreground data-[disabled]:!cursor-not-allowed data-[highlighted]:bg-accent data-[highlighted]:text-accent-foreground data-[state=open]:bg-accent data-[state=open]:text-accent-foreground',\n motionInteractive,\n ),\n menuSubTriggerIcon:\n 'ml-auto inline-flex h-4 w-4 shrink-0 items-center justify-center text-muted-foreground',\n menuSubContent:\n 'z-50 min-w-40 overflow-hidden rounded-md border border-border bg-background p-1 text-sm text-foreground shadow-lg outline-hidden motion-safe:animate-in motion-safe:fade-in motion-safe:zoom-in-95 motion-safe:duration-300 motion-safe:ease-out',\n tableContainer:\n cn(\n 'relative isolate min-w-0 overflow-auto rounded-lg border border-border/70 bg-background/95 bg-clip-padding [scrollbar-gutter:stable]',\n '[--base-table-header-height:2.75rem] [--base-table-split-scrollbar-gutter:0.75rem]',\n '[--base-table-sticky-header-bg:hsl(var(--background))] [--base-table-header-separator:hsl(var(--border)_/_0.7)]',\n tableScrollbarChrome,\n motionBase,\n ),\n tableContainerFooterAttached: '!rounded-b-none !shadow-none',\n tableRoot: 'w-full caption-bottom border-separate border-spacing-0 text-sm text-foreground',\n tableCaption: 'mt-3 text-sm text-muted-foreground',\n tableHeader:\n cn(\n 'relative z-[2] bg-transparent [&_tr]:bg-transparent',\n tableStickyHeaderCells,\n ),\n tableBody: '[&_tr:last-child>*]:border-b-0',\n tableFooter: 'bg-muted/30 font-medium [&_tr>*]:border-t [&_tr>*]:border-border/70',\n tableFooterBar:\n cn(\n 'flex min-w-0 flex-wrap items-center justify-between gap-3 rounded-lg border border-border/70 bg-muted/20 px-4 py-3 text-sm text-foreground shadow-none',\n motionBase,\n ),\n tableFooterBarAttached:\n '-mt-px rounded-t-none border-t border-border/70 shadow-none',\n tableFooterBarLeading: 'flex min-w-0 items-center gap-2',\n tableFooterBarContent: 'min-w-0 flex-1',\n tableFooterBarActions: 'ms-auto flex shrink-0 flex-wrap items-center gap-2',\n tableSplitRoot:\n 'grid w-full min-w-0 grid-cols-[minmax(0,1fr)] grid-rows-[auto_minmax(0,1fr)_auto] caption-bottom border-separate border-spacing-0 text-sm text-foreground',\n tableSplitHeader:\n 'block w-full min-w-0 shrink-0 overflow-x-hidden overflow-y-hidden bg-transparent',\n tableSplitBody:\n cn(\n 'block min-h-0 w-full min-w-0 max-w-full justify-self-stretch overflow-auto [scrollbar-gutter:stable]',\n tableScrollbarChrome,\n ),\n tableSplitFooter:\n 'block w-full min-w-0 shrink-0 overflow-x-hidden overflow-y-hidden',\n tableSplitRow:\n 'grid w-max min-w-full [grid-template-columns:var(--base-table-column-template)]',\n tableSplitHead: 'flex min-w-0 overflow-hidden',\n tableSplitCell: 'block min-w-0 overflow-hidden [overflow-wrap:anywhere]',\n tableRow:\n cn(\n '[&>*]:border-b [&>*]:border-border/60 data-[state=selected]:bg-primary/5 data-[state=selected]:[&>*]:bg-primary/5',\n motionBase,\n ),\n tableRowInteractive:\n 'cursor-pointer [--base-table-row-hover-bg:hsl(var(--muted)_/_0.35)] hover:bg-[var(--base-table-row-hover-bg)] hover:[&>*]:bg-[var(--base-table-row-hover-bg)]',\n tableRowSelected: 'bg-primary/5 [&>*]:bg-primary/5',\n tableRowDisabled: '!cursor-not-allowed opacity-60',\n tableHead:\n 'relative h-11 whitespace-nowrap px-3 py-2 text-left align-middle text-xs font-semibold text-muted-foreground shadow-[inset_0_-1px_0_var(--base-table-header-separator)]',\n tableHeadContent: 'flex min-w-0 items-center justify-between gap-2',\n tableHeadMain: 'flex min-w-0 items-center gap-2',\n tableHeadIcon: 'inline-flex h-4 w-4 shrink-0 items-center justify-center text-muted-foreground',\n tableHeadText: 'grid min-w-0 gap-0.5',\n tableHeadLabel: 'min-w-0 truncate text-xs font-semibold leading-4 text-foreground',\n tableHeadDescription: 'min-w-0 truncate text-xs font-normal leading-4 text-muted-foreground',\n tableHeadMeta: 'shrink-0 text-xs font-medium text-muted-foreground',\n tableHeadActions: 'flex shrink-0 items-center gap-1',\n tableHeadSortButton:\n cn(\n 'inline-flex min-w-0 cursor-pointer items-center gap-1 rounded-sm text-left focus-visible:outline-hidden focus-visible:ring-2 focus-visible:ring-primary/30 disabled:!cursor-not-allowed disabled:opacity-60',\n motionBase,\n ),\n tableHeadSortIcon:\n cn(\n 'inline-flex h-3 w-3 shrink-0 items-center justify-center text-muted-foreground',\n motionTransform,\n ),\n tableHeadDragHandle:\n cn(\n 'inline-flex h-5 w-4 shrink-0 cursor-grab items-center justify-center rounded-sm text-muted-foreground hover:bg-muted active:cursor-grabbing focus-visible:outline-hidden focus-visible:ring-2 focus-visible:ring-primary/30 disabled:!cursor-not-allowed disabled:opacity-50',\n motionBase,\n ),\n tableHeadResizeHandle:\n cn(\n 'absolute end-0 top-1/2 h-7 w-2 -translate-y-1/2 cursor-col-resize touch-none rounded-sm after:absolute after:start-1/2 after:top-1/2 after:h-5 after:w-px after:-translate-x-1/2 after:-translate-y-1/2 after:bg-border hover:after:bg-primary focus-visible:outline-hidden focus-visible:ring-2 focus-visible:ring-primary/30 disabled:!cursor-not-allowed disabled:opacity-50',\n motionBase,\n ),\n tableCell: 'min-w-0 px-3 py-2 align-middle text-sm text-foreground [overflow-wrap:anywhere]',\n tableCellAlignCenter: 'text-center',\n tableCellAlignRight: 'text-right',\n tableEmptyRow: '[&>*]:border-b [&>*]:border-border/60',\n tableEmptyCell: 'px-4 py-10 text-center',\n tableEmptyContent: 'mx-auto flex max-w-md flex-col items-center justify-center text-center',\n tableEmptyIcon:\n 'mb-3 flex h-10 w-10 items-center justify-center rounded-full bg-muted text-muted-foreground',\n tableEmptyTitle: 'text-sm font-semibold text-foreground',\n tableEmptyDescription: 'mt-1 text-sm leading-6 text-muted-foreground',\n tableEmptyActions: 'mt-4 flex flex-wrap items-center justify-center gap-2',\n tableLoadingRow: '[&>*]:border-b [&>*]:border-border/60',\n tableLoadingCell: 'px-3 py-2',\n tableLoadingSkeleton: 'h-4 w-full rounded-md bg-muted/70',\n layoutRoot:\n cn(\n 'grid min-w-0 overflow-hidden grid-rows-[auto_minmax(0,1fr)_auto] gap-3 rounded-lg border border-border/70 bg-background p-3 text-foreground',\n motionBase,\n ),\n layoutRootFull: 'h-full min-h-0',\n layoutHeader: 'min-w-0',\n layoutBody: 'grid min-h-0 min-w-0 overflow-hidden gap-token-md',\n layoutSidebar: 'min-h-0 min-w-0 overflow-hidden',\n layoutMain: 'min-h-0 min-w-0 overflow-hidden',\n layoutAside: 'min-h-0 min-w-0 overflow-hidden',\n layoutFooter: 'min-w-0',\n layoutPane:\n cn(\n 'h-full max-h-full min-h-0 min-w-0 overflow-hidden rounded-lg bg-background text-foreground',\n motionBase,\n ),\n layoutPaneScrollable: 'overflow-auto',\n layoutPaneBordered: 'border border-border/70',\n layoutPaneMuted: 'bg-muted/25',\n layoutPaneSoft: 'bg-background/95 shadow-sm',\n layoutPaneTransparent: 'bg-transparent shadow-none',\n layoutSplitRoot: 'grid min-h-0 min-w-0 overflow-hidden',\n layoutSplitHorizontal: 'grid-flow-col',\n layoutSplitVertical: 'grid-flow-row',\n layoutSplitPane: 'min-h-0 min-w-0 overflow-hidden',\n layoutSplitPrimary: '',\n layoutSplitSecondary: '',\n layoutResizeHandle:\n cn(\n 'group/resize relative z-10 flex shrink-0 items-center justify-center bg-transparent text-muted-foreground hover:bg-border/60 active:bg-border/70 focus-visible:bg-border/60 focus-visible:outline-hidden focus-visible:ring-2 focus-visible:ring-primary/30',\n motionInteractive,\n ),\n layoutResizeHandleHorizontal: 'w-2 cursor-col-resize',\n layoutResizeHandleVertical: 'h-2 cursor-row-resize',\n layoutResizeHandleDisabled: 'cursor-default opacity-60',\n layoutResizeHandleIndicator:\n 'rounded-full bg-muted-foreground/45 group-hover/resize:bg-primary/70',\n};\n\nconst densitySlots: Record<BaseDensity, Partial<BaseThemeSlots>> = {\n compact: {\n buttonBase: 'h-8 px-2.5 text-xs',\n buttonIconOnly: 'h-8 w-8 px-0',\n badgeBase: 'px-1.5 py-0 text-xs',\n panelHeader: 'p-token-md',\n panelBody: 'px-token-md pb-token-md text-xs',\n panelBodyStandalone: 'pt-token-md',\n panelFooter: 'px-token-md py-token-md',\n stateRoot: 'min-h-36 px-4 py-7',\n stateIcon: 'mb-3 h-10 w-10',\n fieldRoot: 'gap-token-sm',\n fieldLabel: 'text-xs',\n fieldDescription: 'text-xs leading-5',\n fieldMessage: 'text-xs leading-5',\n controlInput: 'h-8 text-xs',\n controlTextarea: 'min-h-20 text-xs',\n controlSelect: 'h-8 text-xs',\n selectMenu: 'text-xs',\n selectOption: 'min-h-7 px-2 py-1 text-xs',\n switchTrack: 'h-5 w-9',\n switchThumb: 'h-3.5 w-3.5',\n checkboxBox: 'h-3.5 w-3.5',\n checkboxLabel: 'text-xs',\n checkboxDescription: 'text-xs leading-5',\n radioOption: 'px-2 py-1.5 text-xs',\n radioMarker: 'h-3.5 w-3.5',\n radioIndicator: 'h-1.5 w-1.5',\n radioLabel: 'text-xs',\n radioDescription: 'text-xs leading-5',\n dialogPanel: 'max-w-md',\n dialogHeader: 'px-4 py-3',\n dialogTitle: 'text-sm leading-5',\n dialogDescription: 'text-xs leading-5',\n dialogBody: 'px-4 py-3 text-xs',\n dialogFooter: 'px-4 py-3',\n dropdownMenu: 'min-w-44 text-xs',\n dropdownItem: 'px-2 py-1.5 text-xs',\n tooltipContent: 'text-xs leading-4',\n noticeBase: 'px-3 py-2 text-xs',\n dividerLabel: 'text-xs',\n sectionHeaderRoot: 'gap-token-sm',\n sectionHeaderTitle: 'text-sm leading-5',\n sectionHeaderDescription: 'text-xs leading-5',\n tabsList: 'gap-token-xs p-token-xs',\n tabsTrigger: 'px-2 py-1 text-xs',\n tabsPanel: 'p-3 text-xs',\n segmentedRoot: 'gap-token-xs p-token-xs',\n segmentedItem: 'px-2 py-1 text-xs',\n progressTrack: 'h-1.5',\n avatarRoot: 'text-xs',\n toolbarRoot: 'gap-token-sm px-token-md py-token-md',\n toolbarTitle: 'text-xs',\n toolbarDescription: 'text-xs leading-5',\n paginationButton: 'h-7 min-w-7 px-2 text-xs',\n paginationPage: 'h-7 min-w-7 px-2 text-xs',\n descriptionListRoot: 'gap-2 text-xs',\n descriptionListItem: 'px-2 py-1.5',\n descriptionListTerm: 'text-xs',\n descriptionListValue: 'text-xs leading-5',\n accordionTrigger: 'px-3 py-2 text-xs',\n accordionPanel: 'px-3 py-2 text-xs leading-5',\n menuContent: 'min-w-40 p-0.5 text-xs',\n menuSubContent: 'min-w-36 p-0.5 text-xs',\n menuLabel: 'px-2 py-1 text-xs',\n menuItem: 'min-h-7 px-2 py-1 text-xs',\n menuSubTrigger: 'min-h-7 px-2 py-1 text-xs',\n menuItemShortcut: 'text-xs',\n tableContainer: '[--base-table-header-height:2.25rem]',\n tableHead: 'h-9 px-2 py-1.5 text-xs',\n tableCell: 'px-2 py-1.5 text-xs',\n tableHeadLabel: 'text-xs',\n tableHeadDescription: 'text-xs leading-3',\n tableLoadingCell: 'px-2 py-1.5',\n layoutRoot: 'gap-token-md p-token-md',\n layoutBody: 'gap-token-md',\n layoutPane: 'rounded-md text-xs',\n layoutResizeHandleHorizontal: 'w-1.5',\n layoutResizeHandleVertical: 'h-1.5',\n },\n default: {\n buttonBase: 'h-9',\n },\n comfortable: {\n buttonBase: 'h-10 px-3.5',\n buttonIconOnly: 'h-10 w-10 px-0',\n badgeBase: 'px-2.5 py-1',\n panelHeader: 'p-token-xl',\n panelBody: 'px-token-xl pb-token-xl',\n panelBodyStandalone: 'pt-token-xl',\n panelFooter: 'px-token-xl py-token-lg',\n stateRoot: 'min-h-56 px-8 py-12',\n stateIcon: 'mb-5 h-14 w-14',\n fieldRoot: 'gap-token-md',\n controlInput: 'h-10',\n controlTextarea: 'min-h-28',\n controlSelect: 'h-10',\n selectMenu: 'p-1.5',\n selectOption: 'min-h-9 px-3 py-2',\n switchTrack: 'h-7 w-12',\n switchThumb: 'h-5 w-5',\n checkboxBox: 'h-5 w-5',\n radioOption: 'px-4 py-3',\n radioMarker: 'h-5 w-5',\n radioIndicator: 'h-2.5 w-2.5',\n dialogPanel: 'max-w-xl',\n dialogHeader: 'px-6 py-5',\n dialogBody: 'px-6 py-5',\n dialogFooter: 'px-6 py-5',\n dropdownMenu: 'min-w-56',\n dropdownItem: 'px-3 py-2.5',\n noticeBase: 'px-5 py-4',\n sectionHeaderTitle: 'text-lg leading-7',\n tabsTrigger: 'px-3.5 py-2',\n tabsPanel: 'p-5',\n segmentedItem: 'px-3.5 py-2',\n progressTrack: 'h-2.5',\n toolbarRoot: 'px-token-xl py-token-lg',\n paginationButton: 'h-9 min-w-9 px-3',\n paginationPage: 'h-9 min-w-9 px-3',\n descriptionListItem: 'px-4 py-3',\n accordionTrigger: 'px-5 py-4',\n accordionPanel: 'px-5 py-4',\n menuContent: 'min-w-48 p-1.5',\n menuSubContent: 'min-w-44 p-1.5',\n menuItem: 'min-h-9 px-3 py-2',\n menuSubTrigger: 'min-h-9 px-3 py-2',\n tableContainer: '[--base-table-header-height:3rem]',\n tableHead: 'h-12 px-4 py-3',\n tableCell: 'px-4 py-3',\n tableLoadingCell: 'px-4 py-3',\n layoutRoot: 'gap-token-lg p-token-lg',\n layoutBody: 'gap-token-lg',\n layoutPane: 'rounded-xl',\n layoutResizeHandleHorizontal: 'w-2.5',\n layoutResizeHandleVertical: 'h-2.5',\n },\n};\n\nconst radiusSlots: Record<BaseRadius, Partial<BaseThemeSlots>> = {\n none: {\n buttonBase: 'rounded-none',\n badgeBase: 'rounded-none',\n panelRoot: 'rounded-none',\n stateRoot: 'rounded-none',\n stateIcon: 'rounded-none',\n controlWrapper: 'rounded-none',\n selectMenu: 'rounded-none',\n selectOption: 'rounded-none',\n switchTrack: 'rounded-none',\n switchThumb: 'rounded-none',\n checkboxBox: 'rounded-none',\n radioOption: 'rounded-none',\n dialogPanel: 'rounded-none',\n dialogClose: 'rounded-none',\n dropdownMenu: 'rounded-none',\n dropdownItem: 'rounded-none',\n tooltipContent: 'rounded-none',\n noticeBase: 'rounded-none',\n tabsList: 'rounded-none',\n tabsTrigger: 'rounded-none',\n tabsPanel: 'rounded-none',\n segmentedRoot: 'rounded-none',\n segmentedItem: 'rounded-none',\n progressTrack: 'rounded-none',\n progressIndicator: 'rounded-none',\n skeletonRoot: 'rounded-none',\n avatarRoot: 'rounded-none',\n avatarStatus: 'rounded-none',\n toolbarRoot: 'rounded-none',\n paginationButton: 'rounded-none',\n paginationPage: 'rounded-none',\n descriptionListItem: 'rounded-none',\n accordionItem: 'rounded-none',\n menuContent: 'rounded-none',\n menuItem: 'rounded-none',\n menuSubTrigger: 'rounded-none',\n menuSubContent: 'rounded-none',\n tableContainer: 'rounded-none',\n tableEmptyIcon: 'rounded-none',\n tableLoadingSkeleton: 'rounded-none',\n layoutRoot: 'rounded-none',\n layoutPane: 'rounded-none',\n },\n sm: {\n buttonBase: 'rounded-sm',\n badgeBase: 'rounded-sm',\n panelRoot: 'rounded-sm',\n stateRoot: 'rounded-sm',\n stateIcon: 'rounded-sm',\n controlWrapper: 'rounded-sm',\n selectMenu: 'rounded-sm',\n selectOption: 'rounded-sm',\n switchTrack: 'rounded-sm',\n switchThumb: 'rounded-sm',\n checkboxBox: 'rounded-sm',\n radioOption: 'rounded-sm',\n dialogPanel: 'rounded-sm',\n dialogClose: 'rounded-sm',\n dropdownMenu: 'rounded-sm',\n dropdownItem: 'rounded-sm',\n tooltipContent: 'rounded-sm',\n noticeBase: 'rounded-sm',\n tabsList: 'rounded-sm',\n tabsTrigger: 'rounded-sm',\n tabsPanel: 'rounded-sm',\n segmentedRoot: 'rounded-sm',\n segmentedItem: 'rounded-sm',\n progressTrack: 'rounded-sm',\n progressIndicator: 'rounded-sm',\n skeletonRoot: 'rounded-sm',\n avatarRoot: 'rounded-sm',\n avatarStatus: 'rounded-sm',\n toolbarRoot: 'rounded-sm',\n paginationButton: 'rounded-sm',\n paginationPage: 'rounded-sm',\n descriptionListItem: 'rounded-sm',\n accordionItem: 'rounded-sm',\n menuContent: 'rounded-sm',\n menuItem: 'rounded-sm',\n menuSubTrigger: 'rounded-sm',\n menuSubContent: 'rounded-sm',\n tableContainer: 'rounded-sm',\n tableEmptyIcon: 'rounded-sm',\n tableLoadingSkeleton: 'rounded-sm',\n layoutRoot: 'rounded-sm',\n layoutPane: 'rounded-sm',\n },\n md: {},\n lg: {\n buttonBase: 'rounded-lg',\n badgeBase: 'rounded-lg',\n panelRoot: 'rounded-xl',\n stateRoot: 'rounded-xl',\n stateIcon: 'rounded-xl',\n controlWrapper: 'rounded-lg',\n selectMenu: 'rounded-lg',\n selectOption: 'rounded-md',\n switchTrack: 'rounded-full',\n switchThumb: 'rounded-full',\n checkboxBox: 'rounded-md',\n radioOption: 'rounded-xl',\n dialogPanel: 'rounded-xl',\n dialogClose: 'rounded-lg',\n dropdownMenu: 'rounded-lg',\n dropdownItem: 'rounded-md',\n tooltipContent: 'rounded-md',\n noticeBase: 'rounded-xl',\n tabsList: 'rounded-xl',\n tabsTrigger: 'rounded-lg',\n tabsPanel: 'rounded-xl',\n segmentedRoot: 'rounded-xl',\n segmentedItem: 'rounded-lg',\n skeletonRoot: 'rounded-lg',\n toolbarRoot: 'rounded-xl',\n descriptionListItem: 'rounded-lg',\n accordionItem: 'rounded-xl',\n menuContent: 'rounded-lg',\n menuItem: 'rounded-md',\n menuSubTrigger: 'rounded-md',\n menuSubContent: 'rounded-lg',\n tableContainer: 'rounded-xl',\n tableEmptyIcon: 'rounded-xl',\n tableLoadingSkeleton: 'rounded-lg',\n layoutRoot: 'rounded-xl',\n layoutPane: 'rounded-xl',\n },\n xl: {\n buttonBase: 'rounded-xl',\n badgeBase: 'rounded-xl',\n panelRoot: 'rounded-2xl',\n stateRoot: 'rounded-2xl',\n stateIcon: 'rounded-2xl',\n controlWrapper: 'rounded-xl',\n selectMenu: 'rounded-xl',\n selectOption: 'rounded-lg',\n switchTrack: 'rounded-full',\n switchThumb: 'rounded-full',\n checkboxBox: 'rounded-lg',\n radioOption: 'rounded-2xl',\n dialogPanel: 'rounded-2xl',\n dialogClose: 'rounded-xl',\n dropdownMenu: 'rounded-xl',\n dropdownItem: 'rounded-lg',\n tooltipContent: 'rounded-lg',\n noticeBase: 'rounded-2xl',\n tabsList: 'rounded-2xl',\n tabsTrigger: 'rounded-xl',\n tabsPanel: 'rounded-2xl',\n segmentedRoot: 'rounded-2xl',\n segmentedItem: 'rounded-xl',\n skeletonRoot: 'rounded-xl',\n toolbarRoot: 'rounded-2xl',\n paginationButton: 'rounded-xl',\n paginationPage: 'rounded-xl',\n descriptionListItem: 'rounded-xl',\n accordionItem: 'rounded-2xl',\n menuContent: 'rounded-xl',\n menuItem: 'rounded-lg',\n menuSubTrigger: 'rounded-lg',\n menuSubContent: 'rounded-xl',\n tableContainer: 'rounded-2xl',\n tableEmptyIcon: 'rounded-2xl',\n tableLoadingSkeleton: 'rounded-xl',\n layoutRoot: 'rounded-2xl',\n layoutPane: 'rounded-2xl',\n },\n full: {\n buttonBase: 'rounded-full',\n badgeBase: 'rounded-full',\n panelRoot: 'rounded-2xl',\n stateRoot: 'rounded-2xl',\n stateIcon: 'rounded-full',\n controlWrapper: 'rounded-full',\n selectMenu: 'rounded-2xl',\n selectOption: 'rounded-full',\n switchTrack: 'rounded-full',\n switchThumb: 'rounded-full',\n checkboxBox: 'rounded-full',\n radioOption: 'rounded-2xl',\n dialogPanel: 'rounded-2xl',\n dialogClose: 'rounded-full',\n dropdownMenu: 'rounded-2xl',\n dropdownItem: 'rounded-full',\n tooltipContent: 'rounded-full',\n noticeBase: 'rounded-2xl',\n tabsList: 'rounded-full',\n tabsTrigger: 'rounded-full',\n tabsPanel: 'rounded-2xl',\n segmentedRoot: 'rounded-full',\n segmentedItem: 'rounded-full',\n progressTrack: 'rounded-full',\n progressIndicator: 'rounded-full',\n skeletonRoot: 'rounded-full',\n avatarRoot: 'rounded-full',\n avatarStatus: 'rounded-full',\n toolbarRoot: 'rounded-2xl',\n paginationButton: 'rounded-full',\n paginationPage: 'rounded-full',\n descriptionListItem: 'rounded-2xl',\n accordionItem: 'rounded-2xl',\n menuContent: 'rounded-2xl',\n menuItem: 'rounded-full',\n menuSubTrigger: 'rounded-full',\n menuSubContent: 'rounded-2xl',\n tableContainer: 'rounded-2xl',\n tableEmptyIcon: 'rounded-full',\n tableLoadingSkeleton: 'rounded-full',\n layoutRoot: 'rounded-2xl',\n layoutPane: 'rounded-2xl',\n },\n};\n\nconst borderSlots: Record<BaseBorder, Partial<BaseThemeSlots>> = {\n none: {\n buttonBase: 'border-transparent',\n badgeBase: 'border-transparent',\n panelRoot: 'border-transparent',\n panelFooter: 'border-transparent',\n stateRoot: 'border-transparent',\n controlWrapper: 'border-transparent',\n selectMenu: 'border-transparent',\n switchTrack: 'border-transparent',\n checkboxBox: 'border-transparent',\n radioOption: 'border-transparent',\n radioMarker: 'border-transparent',\n dialogPanel: 'border-transparent',\n dialogHeader: 'border-transparent',\n dialogFooter: 'border-transparent',\n dropdownMenu: 'border-transparent',\n tooltipContent: 'border-transparent',\n noticeBase: 'border-transparent',\n dividerRoot: 'border-transparent',\n tabsList: 'border-transparent',\n tabsPanel: 'border-transparent',\n segmentedRoot: 'border-transparent',\n avatarRoot: 'border-transparent',\n toolbarRoot: 'border-transparent',\n paginationButton: 'border-transparent',\n descriptionListItem: 'border-transparent',\n accordionItem: 'border-transparent',\n accordionPanel: 'border-transparent',\n menuContent: 'border-transparent',\n menuSeparator: 'bg-transparent',\n menuSubContent: 'border-transparent',\n tableContainer: 'border-transparent [--base-table-header-separator:transparent]',\n tableHeader: 'border-transparent',\n tableFooter: '[&_tr>*]:border-transparent',\n tableFooterBar: 'border-transparent',\n tableFooterBarAttached: 'border-t border-transparent',\n tableRow: '[&>*]:border-transparent',\n tableEmptyRow: '[&>*]:border-transparent',\n tableLoadingRow: '[&>*]:border-transparent',\n layoutRoot: 'border-transparent',\n layoutPaneBordered: 'border-transparent',\n layoutResizeHandle: 'bg-transparent hover:bg-transparent active:bg-transparent focus-visible:bg-transparent',\n },\n subtle: {\n buttonDefault: 'border-border/60',\n badgeDefault: 'border-border/60',\n panelRoot: 'border-border/60',\n panelFooter: 'border-border/60',\n stateRoot: 'border-border/60',\n controlWrapper: 'border-border/60',\n selectMenu: 'border-border/60',\n switchTrack: 'border-border/60',\n checkboxBox: 'border-border/60',\n radioOption: 'border-border/60',\n radioMarker: 'border-border/60',\n dialogPanel: 'border-border/60',\n dialogHeader: 'border-border/60',\n dialogFooter: 'border-border/60',\n dropdownMenu: 'border-border/60',\n tooltipContent: 'border-border/60',\n noticeDefault: 'border-border/60',\n dividerRoot: 'border-border/60',\n tabsList: 'border-border/60',\n tabsPanel: 'border-border/60',\n segmentedRoot: 'border-border/60',\n avatarRoot: 'border-border/60',\n toolbarRoot: 'border-border/60',\n paginationButton: 'border-border/60',\n descriptionListItem: 'border-border/60',\n accordionItem: 'border-border/60',\n accordionPanel: 'border-border/60',\n menuContent: 'border-border/60',\n menuSeparator: 'bg-border/60',\n menuSubContent: 'border-border/60',\n tableContainer: 'border-border/60 [--base-table-header-separator:hsl(var(--border)_/_0.6)]',\n tableHeader: 'border-border/60',\n tableFooter: '[&_tr>*]:border-border/60',\n tableFooterBar: 'border-border/60',\n tableFooterBarAttached: 'border-t border-border/60',\n tableRow: '[&>*]:border-border/50',\n tableEmptyRow: '[&>*]:border-border/50',\n tableLoadingRow: '[&>*]:border-border/50',\n layoutRoot: 'border-border/60',\n layoutPaneBordered: 'border-border/60',\n },\n solid: {},\n strong: {\n buttonDefault: 'border-foreground/20',\n badgeDefault: 'border-foreground/20',\n panelRoot: 'border-foreground/20',\n panelFooter: 'border-foreground/20',\n stateRoot: 'border-foreground/20',\n controlWrapper: 'border-foreground/20',\n selectMenu: 'border-foreground/20',\n switchTrack: 'border-foreground/20',\n checkboxBox: 'border-foreground/20',\n radioOption: 'border-foreground/20',\n radioMarker: 'border-foreground/20',\n dialogPanel: 'border-foreground/20',\n dialogHeader: 'border-foreground/15',\n dialogFooter: 'border-foreground/15',\n dropdownMenu: 'border-foreground/20',\n tooltipContent: 'border-foreground/20',\n noticeDefault: 'border-foreground/20',\n dividerRoot: 'border-foreground/20',\n tabsList: 'border-foreground/20',\n tabsPanel: 'border-foreground/20',\n segmentedRoot: 'border-foreground/20',\n avatarRoot: 'border-foreground/20',\n toolbarRoot: 'border-foreground/20',\n paginationButton: 'border-foreground/20',\n descriptionListItem: 'border-foreground/20',\n accordionItem: 'border-foreground/20',\n accordionPanel: 'border-foreground/20',\n menuContent: 'border-foreground/20',\n menuSeparator: 'bg-foreground/15',\n menuSubContent: 'border-foreground/20',\n tableContainer:\n 'border-foreground/20 [--base-table-header-separator:hsl(var(--foreground)_/_0.15)]',\n tableHeader: 'border-foreground/20',\n tableFooter: '[&_tr>*]:border-foreground/20',\n tableFooterBar: 'border-foreground/20',\n tableFooterBarAttached: 'border-t border-foreground/20',\n tableRow: '[&>*]:border-foreground/15',\n tableEmptyRow: '[&>*]:border-foreground/15',\n tableLoadingRow: '[&>*]:border-foreground/15',\n layoutRoot: 'border-foreground/20',\n layoutPaneBordered: 'border-foreground/20',\n layoutResizeHandle: 'hover:bg-foreground/15 active:bg-foreground/20 focus-visible:bg-foreground/15',\n },\n};\n\nconst backgroundSlots: Record<BaseBackground, Partial<BaseThemeSlots>> = {\n plain: {},\n muted: {\n buttonDefault: 'bg-muted/20 hover:bg-muted/45',\n panelRoot: 'bg-card',\n panelFooter: 'bg-muted/20',\n stateRoot: 'bg-muted/20',\n controlWrapper: 'bg-background',\n selectMenu: 'bg-background',\n selectOptionActive: 'bg-muted/70 text-foreground',\n checkboxBox: 'bg-background',\n radioOption: 'bg-card hover:bg-muted/45',\n radioMarker: 'bg-background',\n dialogPanel: 'bg-card',\n dropdownMenu: 'bg-background',\n dropdownItem: 'hover:bg-muted/60',\n tooltipContent: 'bg-popover',\n noticeDefault: 'bg-muted/20',\n tabsList: 'bg-muted/35',\n tabsTriggerActive: 'bg-background',\n tabsPanel: 'bg-card',\n segmentedRoot: 'bg-muted/35',\n segmentedItemActive: 'bg-background',\n progressTrack: 'bg-muted/60',\n skeletonRoot: 'bg-muted',\n toolbarRoot: 'bg-card',\n paginationButton: 'bg-background hover:bg-muted/60',\n paginationPage: 'bg-muted/60',\n descriptionListItem: 'bg-card',\n accordionItem: 'bg-card',\n menuContent: 'bg-background',\n menuItem: 'focus:bg-muted/70 data-[highlighted]:bg-muted/70',\n menuSubTrigger:\n 'focus:bg-muted/70 data-[highlighted]:bg-muted/70 data-[state=open]:bg-muted/70',\n menuSubContent: 'bg-background',\n tableContainer: 'bg-background/95 [scrollbar-gutter:stable]',\n tableFooter: 'bg-muted/35',\n tableFooterBar: 'bg-muted/30 shadow-none',\n tableRowInteractive: 'cursor-pointer [--base-table-row-hover-bg:hsl(var(--muted)_/_0.45)]',\n tableLoadingSkeleton: 'bg-muted',\n layoutRoot: 'bg-card',\n layoutPane: 'bg-card',\n layoutPaneMuted: 'bg-muted/35',\n layoutResizeHandle: 'hover:bg-border/70 active:bg-border/80 focus-visible:bg-border/70',\n },\n soft: {\n buttonDefault: 'bg-muted/30 hover:bg-muted/55',\n panelRoot: 'bg-background/95 shadow-sm',\n stateRoot: 'bg-background/95 shadow-sm',\n controlWrapper: 'bg-background/95',\n selectMenu: 'bg-background/95 shadow-xl',\n selectOptionActive: 'bg-muted/60 text-foreground',\n checkboxBox: 'bg-background/95',\n radioOption: 'bg-background/95 shadow-sm hover:bg-muted/35',\n radioMarker: 'bg-background/95',\n dialogPanel: 'bg-background/95 shadow-xl',\n dropdownMenu: 'bg-background/95 shadow-xl',\n dropdownItem: 'hover:bg-muted/55',\n tooltipContent: 'bg-popover shadow-xl',\n noticeDefault: 'bg-background/95 shadow-sm',\n tabsList: 'bg-background/60 shadow-sm',\n tabsTriggerActive: 'bg-background',\n tabsPanel: 'bg-background/95 shadow-sm',\n segmentedRoot: 'bg-background/60 shadow-sm',\n segmentedItemActive: 'bg-background',\n skeletonRoot: 'bg-background/80',\n toolbarRoot: 'bg-background/95 shadow-sm',\n paginationButton: 'bg-background/95 hover:bg-muted/55',\n descriptionListItem: 'bg-background/95 shadow-sm',\n accordionItem: 'bg-background/95 shadow-sm',\n menuContent: 'bg-background/95 shadow-xl',\n menuItem: 'focus:bg-muted/60 data-[highlighted]:bg-muted/60',\n menuSubTrigger:\n 'focus:bg-muted/60 data-[highlighted]:bg-muted/60 data-[state=open]:bg-muted/60',\n menuSubContent: 'bg-background/95 shadow-xl',\n tableContainer:\n 'bg-background/95 shadow-sm [scrollbar-gutter:stable]',\n tableFooter: 'bg-muted/25',\n tableFooterBar: 'bg-muted/25 shadow-none',\n tableRowInteractive: 'cursor-pointer [--base-table-row-hover-bg:hsl(var(--muted)_/_0.35)]',\n tableLoadingSkeleton: 'bg-muted/65',\n layoutRoot: 'bg-background/95 shadow-sm',\n layoutPane: 'bg-background/95 shadow-sm',\n layoutPaneSoft: 'bg-background/95 shadow-md',\n },\n glass: {\n buttonBase: 'backdrop-blur-md',\n buttonDefault:\n 'border-white/10 bg-white/[0.08] text-foreground hover:bg-white/[0.14]',\n badgeDefault: 'border-white/10 bg-white/[0.08] text-foreground',\n panelRoot: 'border-white/10 bg-white/[0.06] shadow-none backdrop-blur-md',\n panelFooter: 'border-white/10 bg-white/[0.05]',\n stateRoot: 'border-white/10 bg-white/[0.06] shadow-none backdrop-blur-md',\n stateIcon: 'bg-white/10 text-foreground',\n controlWrapper:\n 'border-white/10 bg-white/[0.08] text-foreground backdrop-blur-md',\n selectMenu:\n 'border-foreground/10 bg-background/10 text-foreground shadow-[0_18px_60px_hsl(var(--foreground)/0.18)] backdrop-blur-md',\n selectOption: 'text-foreground',\n selectOptionActive: 'bg-white/[0.14] text-foreground',\n selectOptionSelected: 'bg-white/[0.18] text-foreground',\n switchTrack: 'border-white/10 bg-white/[0.12] backdrop-blur-md',\n checkboxBox: 'border-white/10 bg-white/[0.08] backdrop-blur-md',\n checkboxBoxChecked: 'border-white/20 bg-white/[0.22] text-foreground',\n radioOption: 'border-white/10 bg-white/[0.06] backdrop-blur-md hover:bg-white/[0.10]',\n radioMarker: 'border-white/10 bg-white/[0.08] backdrop-blur-md',\n radioMarkerChecked: 'border-white/25 bg-white/[0.16]',\n dialogOverlay: 'bg-background/45 backdrop-blur-md',\n dialogPanel: 'border-white/10 bg-white/[0.08] shadow-2xl backdrop-blur-md',\n dialogHeader: 'border-white/10',\n dialogFooter: 'border-white/10',\n dropdownMenu:\n 'border-foreground/10 bg-background/10 text-foreground shadow-[0_18px_60px_hsl(var(--foreground)/0.18)] backdrop-blur-md',\n dropdownItem: 'text-foreground hover:bg-white/[0.14]',\n tooltipContent:\n 'border-foreground/10 bg-background/15 text-foreground shadow-[0_18px_60px_hsl(var(--foreground)/0.18)] backdrop-blur-md',\n noticeDefault:\n 'border-white/10 bg-white/[0.08] text-foreground backdrop-blur-md',\n dividerRoot: 'border-white/15',\n tabsList: 'border-white/10 bg-white/[0.08] backdrop-blur-md',\n tabsTrigger: 'text-muted-foreground hover:bg-white/[0.12] hover:text-foreground',\n tabsTriggerActive: 'bg-white/[0.16] text-foreground shadow-none',\n tabsPanel:\n 'border-white/10 bg-white/[0.06] shadow-none backdrop-blur-md',\n segmentedRoot: 'border-white/10 bg-white/[0.08] backdrop-blur-md',\n segmentedItem: 'text-muted-foreground hover:bg-white/[0.12] hover:text-foreground',\n segmentedItemActive: 'bg-white/[0.16] text-foreground shadow-none',\n progressTrack: 'bg-white/[0.12]',\n skeletonRoot: 'bg-white/[0.16]',\n avatarRoot: 'border-white/10 bg-white/[0.12] text-foreground',\n avatarFallback: 'bg-white/[0.12] text-foreground',\n avatarStatus: 'border-background',\n toolbarRoot:\n 'border-white/10 bg-white/[0.06] shadow-none backdrop-blur-md',\n paginationButton:\n 'border-white/10 bg-white/[0.08] text-foreground hover:bg-white/[0.14]',\n paginationPage: 'bg-white/[0.12] text-foreground',\n descriptionListItem:\n 'border-white/10 bg-white/[0.06] shadow-none backdrop-blur-md',\n accordionItem:\n 'border-white/10 bg-white/[0.06] shadow-none backdrop-blur-md',\n accordionPanel: 'border-white/10',\n menuContent:\n 'border-foreground/10 bg-background/10 text-foreground shadow-[0_18px_60px_hsl(var(--foreground)/0.18)] backdrop-blur-md',\n menuSeparator: 'bg-white/10',\n menuItem:\n 'text-foreground focus:bg-white/[0.14] focus:text-foreground data-[highlighted]:bg-white/[0.14] data-[highlighted]:text-foreground',\n menuSubTrigger:\n 'text-foreground focus:bg-white/[0.14] focus:text-foreground data-[highlighted]:bg-white/[0.14] data-[highlighted]:text-foreground data-[state=open]:bg-white/[0.16]',\n menuSubContent:\n 'border-foreground/10 bg-background/10 text-foreground shadow-[0_18px_60px_hsl(var(--foreground)/0.18)] backdrop-blur-md',\n tableContainer:\n 'border-foreground/10 bg-background/[0.06] shadow-none backdrop-blur-md [scrollbar-gutter:stable] [--base-table-sticky-header-bg:hsl(var(--background)/0.94)] [--base-table-header-separator:hsl(var(--foreground)/0.24)]',\n tableHeader: 'border-white/10',\n tableFooter: 'bg-white/[0.05] [&_tr>*]:border-white/10',\n tableFooterBar:\n 'border-white/10 bg-white/[0.05] shadow-none backdrop-blur-md',\n tableFooterBarAttached: 'border-t border-white/10',\n tableRow: '[&>*]:border-white/10',\n tableRowInteractive: 'cursor-pointer [--base-table-row-hover-bg:hsl(var(--foreground)/0.08)]',\n tableHeadLabel: 'text-foreground',\n tableLoadingSkeleton: 'bg-white/[0.16]',\n layoutRoot:\n 'border-white/10 bg-white/[0.05] shadow-none backdrop-blur-md',\n layoutPane:\n 'border-white/10 bg-white/[0.06] shadow-none backdrop-blur-md',\n layoutPaneMuted: 'bg-white/[0.08]',\n layoutPaneSoft: 'bg-white/[0.10] shadow-none backdrop-blur-md',\n layoutResizeHandle: 'text-foreground/65 hover:bg-white/10 active:bg-white/15 focus-visible:bg-white/10',\n layoutResizeHandleIndicator: 'bg-white/45 group-hover/resize:bg-white/75',\n },\n dark: {\n buttonBase:\n 'border-white/15 text-white shadow-lg backdrop-blur',\n buttonDefault: 'bg-black/30 hover:bg-black/[0.45]',\n buttonPrimary: 'border-white/25 bg-white/20 text-white hover:bg-white/25',\n buttonMuted:\n 'border-white/10 bg-black/20 text-white/70 hover:bg-black/[0.35] hover:text-white',\n badgeDefault: 'border-white/10 bg-white/[0.08] text-white',\n badgeMuted: 'border-white/10 bg-black/20 text-white/70',\n panelRoot: 'border-white/10 bg-slate-950 text-white shadow-none',\n panelTitle: 'text-white',\n panelDescription: 'text-white/65',\n panelBody: 'text-white/85',\n panelFooter: 'border-white/10 bg-white/[0.04]',\n stateRoot: 'border-white/10 bg-slate-950 text-white shadow-none',\n stateIcon: 'bg-white/10 text-white/75',\n stateTitle: 'text-white',\n stateDescription: 'text-white/65',\n fieldLabel: 'text-white',\n fieldDescription: 'text-white/65',\n fieldMessage: 'text-white/65',\n controlWrapper:\n 'border-white/15 bg-black/30 text-white shadow-lg backdrop-blur focus-within:border-white/35',\n controlBase: 'text-white placeholder:text-white/45',\n selectChevron: 'text-white/65',\n selectMenu: 'border-white/15 bg-slate-950 text-white shadow-2xl',\n selectOption: 'text-white',\n selectOptionActive: 'bg-white/[0.12] text-white',\n selectOptionSelected: 'bg-white/[0.16] text-white',\n selectPlaceholder: 'text-white/45',\n switchTrack: 'border-white/15 bg-black/30 shadow-lg backdrop-blur',\n switchChecked: 'border-white/25 bg-white/25 text-white',\n switchLabel: 'text-white',\n switchDescription: 'text-white/65',\n checkboxBox: 'border-white/15 bg-black/30 text-white shadow-lg backdrop-blur',\n checkboxBoxChecked: 'border-white/25 bg-white/25 text-white',\n checkboxLabel: 'text-white',\n checkboxDescription: 'text-white/65',\n radioOption: 'border-white/10 bg-white/[0.06] text-white hover:bg-white/[0.08]',\n radioMarker: 'border-white/15 bg-black/30 text-white shadow-lg backdrop-blur',\n radioMarkerChecked: 'border-white/25 bg-white/25',\n radioIndicator: 'bg-white',\n radioLabel: 'text-white',\n radioDescription: 'text-white/65',\n dialogOverlay: 'bg-slate-950/75',\n dialogPanel: 'border-white/10 bg-slate-950 text-white shadow-2xl',\n dialogHeader: 'border-white/10',\n dialogTitle: 'text-white',\n dialogDescription: 'text-white/65',\n dialogBody: 'text-white/85',\n dialogFooter: 'border-white/10',\n dialogClose: 'text-white/65 hover:bg-white/[0.08] hover:text-white',\n dropdownMenu: 'border-white/15 bg-slate-950 text-white shadow-2xl',\n dropdownLabel: 'text-white/55',\n dropdownSeparator: 'bg-white/15',\n dropdownItem: 'text-white hover:bg-white/[0.10]',\n dropdownItemDescription: 'text-white/55',\n dropdownItemShortcut: 'text-white/55',\n tooltipContent: 'border-white/15 bg-slate-950 text-white shadow-2xl',\n noticeDefault: 'border-white/10 bg-white/[0.08] text-white',\n noticeMuted: 'border-white/10 bg-black/20 text-white/70',\n dividerRoot: 'border-white/15',\n dividerLabel: 'text-white/55',\n sectionHeaderEyebrow: 'text-white/55',\n sectionHeaderTitle: 'text-white',\n sectionHeaderDescription: 'text-white/65',\n tabsList: 'border-white/10 bg-white/[0.08]',\n tabsTrigger: 'text-white/65 hover:bg-white/[0.12] hover:text-white',\n tabsTriggerActive: 'bg-white/[0.16] text-white shadow-none',\n tabsPanel: 'border-white/10 bg-white/[0.06] text-white',\n segmentedRoot: 'border-white/10 bg-white/[0.08]',\n segmentedItem: 'text-white/65 hover:bg-white/[0.12] hover:text-white',\n segmentedItemActive: 'bg-white/[0.16] text-white shadow-none',\n progressTrack: 'bg-white/[0.12]',\n progressLabel: 'text-white',\n progressValue: 'text-white/65',\n skeletonRoot: 'bg-white/[0.14]',\n avatarRoot: 'border-white/15 bg-white/[0.10] text-white',\n avatarFallback: 'bg-white/[0.10] text-white/75',\n avatarText: 'text-white',\n avatarStatus: 'border-slate-950',\n toolbarRoot: 'border-white/10 bg-white/[0.06] text-white',\n toolbarTitle: 'text-white',\n toolbarDescription: 'text-white/65',\n breadcrumbLink: 'text-white/65 hover:text-white',\n breadcrumbCurrent: 'text-white',\n breadcrumbSeparator: 'text-white/45',\n paginationInfo: 'text-white/65',\n paginationButton: 'border-white/10 bg-white/[0.08] text-white hover:bg-white/[0.14]',\n paginationPage: 'bg-white/[0.14] text-white',\n descriptionListItem: 'border-white/10 bg-white/[0.06]',\n descriptionListTerm: 'text-white/55',\n descriptionListValue: 'text-white',\n accordionItem: 'border-white/10 bg-white/[0.06]',\n accordionTrigger: 'text-white hover:bg-white/[0.08]',\n accordionPanel: 'border-white/10 text-white/70',\n tableContainer:\n 'border-foreground/10 bg-background text-foreground shadow-none [scrollbar-gutter:stable] [--base-table-sticky-header-bg:hsl(var(--background)/0.98)] [--base-table-header-separator:hsl(var(--foreground)/0.16)]',\n tableRoot: 'text-white',\n tableHeader: 'border-white/10',\n tableFooter: 'bg-white/[0.05] [&_tr>*]:border-white/10',\n tableFooterBar: 'border-white/10 bg-white/[0.05] text-white/65',\n tableFooterBarAttached: 'border-t border-white/10',\n tableRow: '[&>*]:border-white/10',\n tableRowInteractive: 'cursor-pointer [--base-table-row-hover-bg:hsl(var(--foreground)/0.06)]',\n tableHead: 'text-white/65',\n tableHeadLabel: 'text-white',\n tableHeadDescription: 'text-white/55',\n tableHeadMeta: 'text-white/55',\n tableHeadIcon: 'text-white/55',\n tableHeadSortIcon: 'text-white/55',\n tableHeadDragHandle: 'text-white/55 hover:bg-white/[0.08]',\n tableHeadResizeHandle: 'after:bg-white/20 hover:after:bg-white/60',\n tableCell: 'text-white/85',\n tableEmptyIcon: 'bg-white/10 text-white/65',\n tableEmptyTitle: 'text-white',\n tableEmptyDescription: 'text-white/60',\n menuContent: 'border-white/10 bg-slate-950 text-white shadow-2xl',\n menuLabel: 'text-white/55',\n menuSeparator: 'bg-white/10',\n menuItem:\n 'text-white focus:bg-white/[0.10] focus:text-white data-[highlighted]:bg-white/[0.10] data-[highlighted]:text-white',\n menuItemDefault: 'text-white',\n menuItemPrimary: 'text-primary focus:text-primary data-[highlighted]:text-primary',\n menuItemSuccess:\n 'text-[hsl(var(--success,142_69%_58%))] focus:text-[hsl(var(--success,142_69%_58%))] data-[highlighted]:text-[hsl(var(--success,142_69%_58%))]',\n menuItemWarning:\n 'text-[hsl(var(--warning-foreground,53_98%_77%))] focus:text-[hsl(var(--warning-foreground,53_98%_77%))] data-[highlighted]:text-[hsl(var(--warning-foreground,53_98%_77%))]',\n menuItemDanger:\n 'text-destructive-text focus:text-destructive-text data-[highlighted]:text-destructive-text',\n menuItemMuted:\n 'text-white/65 focus:text-white data-[highlighted]:text-white',\n menuItemShortcut: 'text-white/45',\n menuSubTrigger:\n 'text-white focus:bg-white/[0.10] focus:text-white data-[highlighted]:bg-white/[0.10] data-[highlighted]:text-white data-[state=open]:bg-white/[0.12]',\n menuSubTriggerIcon: 'text-white/55',\n menuSubContent: 'border-white/10 bg-slate-950 text-white shadow-2xl',\n tableLoadingSkeleton: 'bg-white/[0.14]',\n layoutRoot: 'border-white/10 bg-slate-950 text-white shadow-none',\n layoutPane: 'border-white/10 bg-slate-950 text-white shadow-none',\n layoutPaneMuted: 'bg-white/[0.06]',\n layoutPaneSoft: 'bg-white/[0.08] shadow-none',\n layoutResizeHandle: 'text-white/65 hover:bg-white/10 active:bg-white/15 focus-visible:bg-white/10',\n layoutResizeHandleIndicator: 'bg-white/45 group-hover/resize:bg-white/75',\n },\n};\n\nconst presetDefaults: Record<\n BaseThemePresetId,\n Pick<BaseAppearance, 'density' | 'radius' | 'border' | 'background'>\n> = {\n default: {\n density: 'default',\n radius: 'md',\n border: 'solid',\n background: 'plain',\n },\n soft: {\n density: 'default',\n radius: 'lg',\n border: 'subtle',\n background: 'soft',\n },\n compact: {\n density: 'compact',\n radius: 'md',\n border: 'subtle',\n background: 'muted',\n },\n 'tinted-glass': {\n density: 'default',\n radius: 'lg',\n border: 'subtle',\n background: 'glass',\n },\n glass: {\n density: 'default',\n radius: 'xl',\n border: 'subtle',\n background: 'glass',\n },\n 'hard-edge': {\n density: 'compact',\n radius: 'none',\n border: 'strong',\n background: 'plain',\n },\n};\n\nconst presetSlots: Record<string, Partial<BaseThemeSlots>> = {\n soft: {\n buttonBase: 'font-medium',\n panelRoot: 'border-border/70',\n controlWrapper: 'font-medium',\n tabsTrigger: 'font-medium',\n segmentedItem: 'font-medium',\n toolbarRoot: 'border-border/70',\n tableContainer: 'border-border/70',\n tableFooterBar: 'border-border/70',\n tableHeadLabel: 'font-semibold',\n menuItemLabel: 'font-medium',\n },\n compact: {\n buttonBase: 'text-xs',\n badgeBase: 'text-xs',\n fieldLabel: 'text-xs',\n controlBase: 'text-xs',\n selectOption: 'text-xs',\n menuItem: 'text-xs',\n menuSubTrigger: 'text-xs',\n noticeBase: 'text-xs',\n sectionHeaderTitle: 'text-sm',\n tabsTrigger: 'text-xs',\n segmentedItem: 'text-xs',\n toolbarTitle: 'text-xs',\n paginationRoot: 'text-xs',\n },\n 'tinted-glass': {\n buttonPrimary: 'border-primary/25 bg-primary/15 text-primary-foreground hover:bg-primary/20',\n badgePrimary: 'border-primary/25 bg-primary/15 text-primary-foreground',\n noticePrimary: 'border-primary/25 bg-primary/15 text-primary-foreground',\n progressIndicator: 'bg-primary',\n avatarStatus: 'border-background',\n },\n glass: {\n panelRoot: 'shadow-[0_24px_80px_hsl(var(--foreground)/0.12)]',\n stateRoot: 'shadow-[0_24px_80px_hsl(var(--foreground)/0.12)]',\n noticeBase: 'shadow-[0_18px_60px_hsl(var(--foreground)/0.10)]',\n tabsPanel: 'shadow-[0_18px_60px_hsl(var(--foreground)/0.10)]',\n toolbarRoot: 'shadow-[0_18px_60px_hsl(var(--foreground)/0.10)]',\n descriptionListItem: 'shadow-[0_12px_40px_hsl(var(--foreground)/0.08)]',\n accordionItem: 'shadow-[0_12px_40px_hsl(var(--foreground)/0.08)]',\n },\n 'hard-edge': {\n buttonBase: 'shadow-none',\n panelRoot: 'shadow-none',\n stateRoot: 'shadow-none',\n controlWrapper: 'shadow-none',\n selectMenu: 'shadow-none',\n menuContent: 'shadow-none',\n menuSubContent: 'shadow-none',\n noticeBase: 'shadow-none',\n tabsList: 'shadow-none',\n tabsTriggerActive: 'shadow-none',\n tabsPanel: 'shadow-none',\n segmentedRoot: 'shadow-none',\n segmentedItemActive: 'shadow-none',\n toolbarRoot: 'shadow-none',\n descriptionListItem: 'shadow-none',\n accordionItem: 'shadow-none',\n },\n};\n\nfunction getPresetDefaults(preset: BaseThemePresetId) {\n return (\n presetDefaults[preset as keyof typeof presetDefaults] ?? presetDefaults.default\n );\n}\n\nconst slotKeys = Object.keys(baseSlots) as Array<keyof BaseThemeSlots>;\n\nfunction mergeSlots(\n ...sources: Array<Partial<BaseThemeSlots> | undefined>\n): ResolvedSlots {\n return slotKeys.reduce((resolved, key) => {\n resolved[key] = cn(...sources.map((source) => source?.[key]));\n return resolved;\n }, {} as ResolvedSlots);\n}\n\nfunction mergeStyles(...styleSets: Array<BaseThemeStyles | undefined>) {\n return Object.assign({}, ...styleSets.filter(Boolean));\n}\n\nexport function resolveBaseAppearance(\n appearance?: BaseAppearance,\n): BaseResolvedTheme {\n const preset = appearance?.preset ?? 'default';\n const variant = appearance?.variant ?? 'default';\n const defaults = getPresetDefaults(preset);\n const density = appearance?.density ?? defaults.density ?? 'default';\n const state = appearance?.state ?? 'idle';\n const radius = appearance?.radius ?? defaults.radius ?? 'md';\n const border = appearance?.border ?? defaults.border ?? 'solid';\n const background = appearance?.background ?? defaults.background ?? 'plain';\n\n return {\n preset,\n variant,\n density,\n state,\n radius,\n border,\n background,\n styles: mergeStyles(emptyStyles, appearance?.styles),\n slots: mergeSlots(\n baseSlots,\n presetSlots[preset],\n densitySlots[density],\n radiusSlots[radius],\n borderSlots[border],\n backgroundSlots[background],\n appearance?.slots,\n ),\n };\n}\n\nexport function getBaseButtonToneClassName(\n theme: BaseResolvedTheme,\n tone: BaseControlTone = 'default',\n active = false,\n) {\n return cn(\n tone === 'default' && theme.slots.buttonDefault,\n tone === 'primary' && theme.slots.buttonPrimary,\n tone === 'success' && theme.slots.buttonSuccess,\n tone === 'warning' && theme.slots.buttonWarning,\n tone === 'danger' && theme.slots.buttonDanger,\n tone === 'muted' && theme.slots.buttonMuted,\n active && theme.slots.buttonActive,\n );\n}\n\nexport function getBaseBadgeToneClassName(\n theme: BaseResolvedTheme,\n tone: BaseControlTone = 'default',\n) {\n return cn(\n tone === 'default' && theme.slots.badgeDefault,\n tone === 'primary' && theme.slots.badgePrimary,\n tone === 'success' && theme.slots.badgeSuccess,\n tone === 'warning' && theme.slots.badgeWarning,\n tone === 'danger' && theme.slots.badgeDanger,\n tone === 'muted' && theme.slots.badgeMuted,\n );\n}\n\nexport function getBaseNoticeToneClassName(\n theme: BaseResolvedTheme,\n tone: BaseControlTone = 'default',\n) {\n return cn(\n tone === 'default' && theme.slots.noticeDefault,\n tone === 'primary' && theme.slots.noticePrimary,\n tone === 'success' && theme.slots.noticeSuccess,\n tone === 'warning' && theme.slots.noticeWarning,\n tone === 'danger' && theme.slots.noticeDanger,\n tone === 'muted' && theme.slots.noticeMuted,\n );\n}\n\nexport function getBaseMenuItemToneClassName(\n theme: BaseResolvedTheme,\n tone: BaseControlTone = 'default',\n) {\n return cn(\n tone === 'default' && theme.slots.menuItemDefault,\n tone === 'primary' && theme.slots.menuItemPrimary,\n tone === 'success' && theme.slots.menuItemSuccess,\n tone === 'warning' && theme.slots.menuItemWarning,\n tone === 'danger' && theme.slots.menuItemDanger,\n tone === 'muted' && theme.slots.menuItemMuted,\n );\n}\n\nexport function getBaseTypographyToneClassName(\n theme: BaseResolvedTheme,\n tone: BaseTypographyTone = 'default',\n) {\n return cn(\n tone === 'default' && theme.slots.typographyToneDefault,\n tone === 'muted' && theme.slots.typographyToneMuted,\n tone === 'primary' && theme.slots.typographyTonePrimary,\n tone === 'success' && theme.slots.typographyToneSuccess,\n tone === 'warning' && theme.slots.typographyToneWarning,\n tone === 'danger' && theme.slots.typographyToneDanger,\n tone === 'inherit' && theme.slots.typographyToneInherit,\n );\n}\n\nexport function getBaseTextSizeClassName(\n theme: BaseResolvedTheme,\n size: BaseTypographySize = 'md',\n) {\n return cn(\n size === 'xs' && theme.slots.textSizeXs,\n size === 'sm' && theme.slots.textSizeSm,\n size === 'md' && theme.slots.textSizeMd,\n size === 'lg' && theme.slots.textSizeLg,\n size === 'xl' && theme.slots.textSizeXl,\n );\n}\n\nexport function getBaseHeadingSizeClassName(\n theme: BaseResolvedTheme,\n size: BaseHeadingSize = 'lg',\n) {\n return cn(\n size === 'xs' && theme.slots.headingSizeXs,\n size === 'sm' && theme.slots.headingSizeSm,\n size === 'md' && theme.slots.headingSizeMd,\n size === 'lg' && theme.slots.headingSizeLg,\n size === 'xl' && theme.slots.headingSizeXl,\n size === '2xl' && theme.slots.headingSize2xl,\n );\n}\n\nexport function getBaseListSpacingClassName(\n theme: BaseResolvedTheme,\n spacing: BaseListSpacing = 'default',\n) {\n return cn(\n spacing === 'compact' && theme.slots.listSpacingCompact,\n spacing === 'default' && theme.slots.listSpacingDefault,\n spacing === 'relaxed' && theme.slots.listSpacingRelaxed,\n );\n}\n\nexport function getBaseListMarkerClassName(\n theme: BaseResolvedTheme,\n marker: Exclude<BaseListMarker, 'auto'>,\n) {\n return cn(\n marker === 'none' && theme.slots.listMarkerNone,\n marker === 'disc' && theme.slots.listMarkerDisc,\n marker === 'circle' && theme.slots.listMarkerCircle,\n marker === 'square' && theme.slots.listMarkerSquare,\n marker === 'decimal' && theme.slots.listMarkerDecimal,\n marker === 'lower-alpha' && theme.slots.listMarkerLowerAlpha,\n marker === 'upper-alpha' && theme.slots.listMarkerUpperAlpha,\n );\n}\n\nconst cssLengthPattern = /^(?:0+(?:\\.0+)?|(?:\\d+(?:\\.\\d+)?|\\.\\d+)(?:%|cap|ch|cm|dvb|dvh|dvi|dvw|em|ex|ic|in|lh|lvb|lvh|lvi|lvw|mm|pc|pt|px|q|rem|rlh|svb|svh|svi|svw|vb|vh|vi|vmax|vmin|vw))$/i;\nconst cssLengthFunctions = new Set(['calc', 'clamp', 'max', 'min', 'var']);\nconst unsafeCssValuePattern = /[;{}<>\"'\\\\\\u0000-\\u001f\\u007f]/;\nconst gridTemplateTokenPattern = /(?:\\b(?:auto|fit-content|max-content|min-content|subgrid)\\b|(?:calc|clamp|max|min|minmax|repeat|var)\\s*\\(|(?:^|[\\s,(])(?:0+(?:\\.0+)?|(?:\\d+(?:\\.\\d+)?|\\.\\d+)(?:%|cap|ch|cm|dvb|dvh|dvi|dvw|em|ex|fr|ic|in|lh|lvb|lvh|lvi|lvw|mm|pc|pt|px|q|rem|rlh|svb|svh|svi|svw|vb|vh|vi|vmax|vmin|vw))(?:$|[\\s,)\\]]))/i;\n\nfunction hasBalancedDelimiters(value: string) {\n const pairs: Record<string, string> = { ')': '(', ']': '[' };\n const stack: string[] = [];\n\n for (const character of value) {\n if (character === '(' || character === '[') {\n stack.push(character);\n } else if (character === ')' || character === ']') {\n if (stack.pop() !== pairs[character]) return false;\n }\n }\n\n return stack.length === 0;\n}\n\nfunction isSupportedCssLengthFunction(value: string) {\n const match = /^([a-z]+)\\(([\\s\\S]+)\\)$/i.exec(value);\n if (!match || !cssLengthFunctions.has(match[1].toLowerCase())) return false;\n if (!match[2].trim() || !hasBalancedDelimiters(value)) return false;\n\n if (match[1].toLowerCase() === 'var') {\n return /^\\s*--[a-z0-9_-]+(?:\\s*,[\\s\\S]+)?\\s*$/i.test(match[2]);\n }\n\n return cssLengthPattern.test(match[2].trim()) || /\\b(?:calc|clamp|max|min|var)\\s*\\(/i.test(match[2]) || /(?:^|[\\s,(])(?:0+(?:\\.0+)?|(?:\\d+(?:\\.\\d+)?|\\.\\d+)(?:%|cap|ch|cm|dvb|dvh|dvi|dvw|em|ex|ic|in|lh|lvb|lvh|lvi|lvw|mm|pc|pt|px|q|rem|rlh|svb|svh|svi|svw|vb|vh|vi|vmax|vmin|vw))(?:$|[\\s,)])/i.test(match[2]);\n}\n\nexport function resolveBaseLayoutLength(\n componentName: string,\n propName: string,\n value: BaseLayoutLength,\n) {\n if (typeof value === 'number') {\n if (!Number.isFinite(value) || value < 0) {\n throw new RangeError(\n `${componentName} ${propName} must be a finite, non-negative number or a supported CSS length string.`,\n );\n }\n return `${value}px`;\n }\n\n if (typeof value !== 'string') {\n throw new TypeError(\n `${componentName} ${propName} must be a finite, non-negative number or a supported CSS length string.`,\n );\n }\n\n const normalized = value.trim();\n if (\n !normalized ||\n unsafeCssValuePattern.test(normalized) ||\n (!cssLengthPattern.test(normalized) &&\n !isSupportedCssLengthFunction(normalized))\n ) {\n throw new TypeError(\n `${componentName} ${propName} must be a non-empty, non-negative CSS length (for example 12px, 1rem, 5%, or var(--space)).`,\n );\n }\n\n return normalized;\n}\n\nexport function resolveBaseGridColumns(value: number | string) {\n if (typeof value === 'number') {\n if (!Number.isInteger(value) || value <= 0) {\n throw new RangeError(\n 'BaseGrid columns must be a positive integer or a supported CSS grid-template-columns string.',\n );\n }\n return `repeat(${value}, minmax(0, 1fr))`;\n }\n\n if (typeof value !== 'string') {\n throw new TypeError(\n 'BaseGrid columns must be a positive integer or a supported CSS grid-template-columns string.',\n );\n }\n\n const normalized = value.trim();\n if (\n !normalized ||\n unsafeCssValuePattern.test(normalized) ||\n /\\burl\\s*\\(/i.test(normalized) ||\n !hasBalancedDelimiters(normalized) ||\n !gridTemplateTokenPattern.test(normalized)\n ) {\n throw new TypeError(\n 'BaseGrid columns must be a non-empty CSS grid-template-columns value such as \"12rem minmax(0, 1fr)\" or \"repeat(3, minmax(0, 1fr))\".',\n );\n }\n\n return normalized;\n}\n\ntype BaseLayoutAlignValue =\n | 'flex-start'\n | 'center'\n | 'flex-end'\n | 'stretch'\n | 'baseline';\n\ntype BaseLayoutJustifyValue =\n | 'flex-start'\n | 'center'\n | 'flex-end'\n | 'space-between'\n | 'space-around'\n | 'space-evenly';\n\nconst layoutAlignValues: Record<BaseLayoutAlign, BaseLayoutAlignValue> = {\n start: 'flex-start',\n center: 'center',\n end: 'flex-end',\n stretch: 'stretch',\n baseline: 'baseline',\n};\n\nconst layoutJustifyValues: Record<\n BaseLayoutJustify,\n BaseLayoutJustifyValue\n> = {\n start: 'flex-start',\n center: 'center',\n end: 'flex-end',\n between: 'space-between',\n around: 'space-around',\n evenly: 'space-evenly',\n};\n\nexport function resolveBaseLayoutAlign(\n componentName: string,\n value: BaseLayoutAlign,\n): BaseLayoutAlignValue {\n if (!Object.prototype.hasOwnProperty.call(layoutAlignValues, value)) {\n throw new TypeError(\n `${componentName} align must be one of: start, center, end, stretch, baseline.`,\n );\n }\n return layoutAlignValues[value];\n}\n\nexport function resolveBaseLayoutJustify(\n componentName: string,\n value: BaseLayoutJustify,\n): BaseLayoutJustifyValue {\n if (!Object.prototype.hasOwnProperty.call(layoutJustifyValues, value)) {\n throw new TypeError(\n `${componentName} justify must be one of: start, center, end, between, around, evenly.`,\n );\n }\n return layoutJustifyValues[value];\n}\n","import * as Tooltip from '@radix-ui/react-tooltip';\nimport {\n Fragment,\n forwardRef,\n isValidElement,\n useState,\n type ReactNode,\n} from 'react';\n\nimport {\n useMonkeysBaseAppearance,\n useMonkeysComponentAttributes,\n} from '../../provider/context';\nimport { useBaseOverlayPortal } from './internal/overlayPortal';\nimport type { BaseTooltipPlacement, BaseTooltipProps } from './types';\nimport { resolveBaseAppearance } from './theme';\nimport { cn, hasRenderableNode } from './utils';\n\nfunction validateBoolean(value: unknown, name: string) {\n if (typeof value !== 'boolean') {\n throw new TypeError(`BaseTooltip ${name} must be a boolean.`);\n }\n}\n\nfunction validatePlacement(value: unknown) {\n if (\n value !== 'top' &&\n value !== 'bottom' &&\n value !== 'left' &&\n value !== 'right'\n ) {\n throw new TypeError(\n 'BaseTooltip placement must be \"top\", \"bottom\", \"left\", or \"right\".',\n );\n }\n}\n\nfunction normalizeTrigger(children: ReactNode, disabled: boolean) {\n if (isValidElement(children) && children.type !== Fragment) {\n return children;\n }\n\n return (\n <span tabIndex={!disabled && hasRenderableNode(children) ? 0 : undefined}>\n {children}\n </span>\n );\n}\n\nexport const BaseTooltip = forwardRef<HTMLSpanElement, BaseTooltipProps>(\n function BaseTooltip(\n {\n content,\n children,\n open,\n defaultOpen = false,\n placement = 'top',\n disabled = false,\n portal = false,\n appearance,\n className,\n classNames,\n style,\n onOpenChange,\n ...tooltipProps\n },\n ref,\n ) {\n if (open !== undefined) validateBoolean(open, 'open');\n validateBoolean(defaultOpen, 'defaultOpen');\n validateBoolean(disabled, 'disabled');\n validateBoolean(portal, 'portal');\n validatePlacement(placement);\n\n const resolvedAppearance = useMonkeysBaseAppearance(appearance);\n const componentAttributes = useMonkeysComponentAttributes();\n const theme = resolveBaseAppearance(resolvedAppearance);\n const overlayPortal = useBaseOverlayPortal({ disabled: !portal });\n const [uncontrolledOpen, setUncontrolledOpen] = useState(defaultOpen);\n const isControlled = open !== undefined;\n const canShow = !disabled && hasRenderableNode(content);\n const requestedOpen = isControlled ? open : uncontrolledOpen;\n const isOpen = canShow && requestedOpen;\n const portalState =\n portal && overlayPortal.shouldPortal ? 'portaled' : 'inline';\n\n const handleOpenChange = (nextOpen: boolean) => {\n if (nextOpen && !canShow) return;\n if (!isControlled) {\n setUncontrolledOpen(nextOpen);\n }\n onOpenChange?.(nextOpen);\n };\n\n const trigger = normalizeTrigger(children, disabled);\n const tooltipContent = canShow ? (\n <Tooltip.Content\n {...componentAttributes}\n side={placement}\n sideOffset={8}\n collisionPadding={8}\n data-monkeys-component=\"tooltip\"\n data-slot=\"content\"\n data-placement={placement}\n data-portal={portalState}\n data-disabled={disabled || undefined}\n className={cn(theme.slots.tooltipContent, classNames?.content)}\n style={theme.styles.tooltip}\n >\n {content}\n </Tooltip.Content>\n ) : null;\n\n return (\n <span\n {...componentAttributes}\n {...tooltipProps}\n ref={ref}\n data-monkeys-component=\"tooltip\"\n data-slot=\"root\"\n data-state={isOpen ? 'open' : 'closed'}\n data-placement={placement}\n data-portal={portalState}\n data-disabled={disabled || undefined}\n className={cn(theme.slots.tooltipRoot, classNames?.root, className)}\n style={style}\n >\n <Tooltip.Provider\n delayDuration={0}\n skipDelayDuration={0}\n disableHoverableContent\n >\n <Tooltip.Root\n open={isOpen}\n onOpenChange={handleOpenChange}\n delayDuration={0}\n disableHoverableContent\n >\n <span\n {...componentAttributes}\n data-monkeys-component=\"tooltip\"\n data-slot=\"trigger-wrapper\"\n data-state={isOpen ? 'open' : 'closed'}\n data-placement={placement}\n data-portal={portalState}\n data-disabled={disabled || undefined}\n className={cn(theme.slots.tooltipTrigger, classNames?.trigger)}\n >\n <Tooltip.Trigger\n asChild\n {...componentAttributes}\n data-monkeys-component=\"tooltip\"\n data-slot=\"trigger\"\n data-placement={placement}\n data-portal={portalState}\n data-disabled={disabled || undefined}\n >\n {trigger}\n </Tooltip.Trigger>\n </span>\n {portal && overlayPortal.shouldPortal ? (\n <Tooltip.Portal {...overlayPortal.radixPortalProps}>\n {tooltipContent}\n </Tooltip.Portal>\n ) : (\n tooltipContent\n )}\n </Tooltip.Root>\n </Tooltip.Provider>\n </span>\n );\n },\n);\n","import { HelpCircle } from 'lucide-react';\nimport { createContext, type ReactNode } from 'react';\n\nimport { BaseTooltip } from './BaseTooltip';\nimport { useMonkeysLocale } from '../../provider/context';\n\nexport const FormHelpPresentationContext = createContext(false);\n\n/** A separate focusable trigger keeps help out of a field's accessible label. */\nexport function BaseFormHelp({ children }: { children: ReactNode }) {\n const { locale } = useMonkeysLocale();\n if (children === undefined || children === null || children === '')\n return null;\n return (\n <BaseTooltip content={children} portal>\n <button\n type=\"button\"\n aria-label={\n typeof children === 'string'\n ? children\n : locale.startsWith('zh')\n ? '说明'\n : 'Help'\n }\n data-form-help\n className=\"inline-flex h-5 w-5 shrink-0 items-center justify-center rounded-md text-muted-foreground hover:text-foreground focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-ring\"\n >\n <HelpCircle className=\"h-4 w-4\" aria-hidden=\"true\" />\n </button>\n </BaseTooltip>\n );\n}\n","import { Children, cloneElement, createContext, forwardRef, isValidElement, useContext, useId, useImperativeHandle, useRef, useState, type ButtonHTMLAttributes, type InputHTMLAttributes, type TextareaHTMLAttributes, type HTMLAttributes, type ReactElement, type ReactNode, type CSSProperties } from 'react';\nimport * as SwitchPrimitive from '@radix-ui/react-switch';\nimport * as SelectPrimitive from '@radix-ui/react-select';\nimport * as TabsPrimitive from '@radix-ui/react-tabs';\nimport * as ToggleGroup from '@radix-ui/react-toggle-group';\nimport { cx, useControllable } from './internal';\nimport { Portal, useUIDirection, useUILocale } from './theme/theme';\nimport { Search, X, ChevronDown, ChevronUp, Check } from 'lucide-react';\nimport { sampleInk } from './sample-color';\nimport { ButtonLightEdge, type ButtonLightEdgeOptions } from './button-light-edge';\nimport { BaseFormHelp, FormHelpPresentationContext } from '../components/base/form-help';\n\ninterface ButtonBaseProps extends ButtonHTMLAttributes<HTMLButtonElement> { variant?: 'solid' | 'soft' | 'outline' | 'ghost'; tone?: 'neutral' | 'primary' | 'danger'; size?: 'sm' | 'md' | 'lg'; loading?: boolean; icon?: ReactNode; lightEdge?: boolean | ButtonLightEdgeOptions }\ntype ButtonShapeProps = { shape?: 'default' | 'tile' } | { shape: 'icon'; 'aria-label': string };\nexport type ButtonProps = ButtonBaseProps & ButtonShapeProps;\nexport const Button = forwardRef<HTMLButtonElement, ButtonProps>(function Button({ variant, shape = 'default', icon, tone = 'neutral', size = 'md', loading = false, lightEdge = false, type = 'button', className, children, onClick, onPointerDown, onKeyDown, ...props }, ref) {\n const direction = useUIDirection();\n return <button {...props} dir={props.dir ?? direction} ref={ref} type={type} className={cx('monkeys-ui-button', className)} data-light-edge={lightEdge ? true : undefined} data-shape={shape} data-variant={variant ?? (shape === 'icon' ? 'ghost' : shape === 'tile' ? 'outline' : 'solid')} data-tone={tone} data-size={size} onPointerDown={event => { event.currentTarget.dataset.input = 'pointer'; onPointerDown?.(event); }} onKeyDown={event => { event.currentTarget.dataset.input = 'keyboard'; onKeyDown?.(event); }} aria-busy={loading || undefined} aria-disabled={loading || props['aria-disabled']} onClick={event => { if (loading || props['aria-disabled'] === true || props['aria-disabled'] === 'true') { event.preventDefault(); return; } onClick?.(event); }}>{lightEdge ? <span className=\"monkeys-ui-button-light-edge\" aria-hidden=\"true\"><ButtonLightEdge {...(lightEdge === true ? {} : lightEdge)} /></span> : null}<span className=\"monkeys-ui-button-label\" data-loading={loading || undefined}>{icon ? <span className=\"monkeys-ui-button-icon\" aria-hidden=\"true\">{icon}</span> : null}{children}</span>{loading ? <span className=\"monkeys-ui-button-spinner\" aria-hidden=\"true\" /> : null}</button>;\n});\nexport type ToggleButtonProps = Omit<ButtonBaseProps, 'value' | 'defaultValue'> & ButtonShapeProps & { checked?: boolean; defaultChecked?: boolean; onCheckedChange?: (checked: boolean) => void };\nexport const ToggleButton = forwardRef<HTMLButtonElement, ToggleButtonProps>(function ToggleButton({ checked, defaultChecked, onCheckedChange, onClick, ...props }, ref) {\n const [value, setValue] = useControllable(checked, defaultChecked, false, onCheckedChange);\n return <Button {...props} ref={ref} aria-pressed={value} onClick={event => { onClick?.(event); if (!event.defaultPrevented) setValue(!value); }} />;\n});\n\nexport interface ColorOption { id: string; label: string; color: string }\nexport interface ColorSliderProps extends Omit<InputHTMLAttributes<HTMLInputElement>, 'type' | 'value' | 'defaultValue' | 'onChange' | 'min' | 'max' | 'step' | 'children'> {\n options: ColorOption[];\n value?: string;\n defaultValue?: string;\n onValueChange?: (value: string) => void;\n onValueCommit?: (value: string) => void;\n}\n/** A native, discrete range control. The gradient never creates selectable intermediate colors. */\nexport const ColorSlider = forwardRef<HTMLInputElement, ColorSliderProps>(function ColorSlider({ options, value, defaultValue, onValueChange, onValueCommit, disabled, readOnly, className, style, onPointerDown, onKeyDown, onPointerUp, onKeyUp, dir, ...props }, ref) {\n const field = useField(props);\n const direction = useUIDirection(dir === 'rtl' || dir === 'ltr' ? dir : undefined);\n const [selected, setSelected] = useControllable(value, defaultValue, options[0]?.id ?? '', onValueChange);\n const index = Math.max(0, options.findIndex(option => option.id === selected));\n const option = options[index];\n const position = options.length > 1 ? index / (options.length - 1) : 0.5;\n // Native hit target, visual thumb and gradient stops share the same inset.\n const location = (fraction: number) => `calc(${fraction * 100}% + ${0.5 - fraction} * var(--monkeys-ui-color-slider-thumb-width))`;\n const gradient = options.map((item, index) => {\n const t = options.length > 1 ? index / (options.length - 1) : 0;\n return `${item.color} ${location(t)}`;\n });\n const background = options.length > 1 ? `linear-gradient(to ${direction === 'rtl' ? 'left' : 'right'}, ${gradient.join(', ')})` : option?.color;\n const locked = disabled || readOnly || options.length < 2;\n const commit = (input: HTMLInputElement) => {\n const next = options[Number(input.value)];\n if (!locked && next) onValueCommit?.(next.id);\n };\n return <div className={cx('monkeys-ui-color-slider', className)} data-disabled={disabled || options.length === 0 || undefined} dir={direction} style={style}>\n <span className=\"monkeys-ui-color-slider-track\" style={{ background }} aria-hidden=\"true\" />\n <span className=\"monkeys-ui-color-slider-thumb\" data-ink={sampleInk(option?.color)} style={{ insetInlineStart: location(position), '--monkeys-ui-color-slider-selected': option?.color } as CSSProperties} aria-hidden=\"true\"><span className=\"monkeys-ui-color-slider-label\">{option?.label}</span></span>\n <input {...props} {...field} ref={ref} type=\"range\" dir={direction} min={0} max={Math.max(0, options.length - 1)} step={1} value={index} disabled={disabled || options.length === 0} aria-readonly={readOnly || undefined} aria-valuetext={option?.label ?? ''} className=\"monkeys-ui-color-slider-input\" onPointerDown={event => { onPointerDown?.(event); if (readOnly) event.preventDefault(); }} onKeyDown={event => { onKeyDown?.(event); if (readOnly && ['ArrowLeft','ArrowRight','ArrowUp','ArrowDown','Home','End','PageUp','PageDown'].includes(event.key)) event.preventDefault(); }} onChange={event => { if (!locked) { const next = options[Number(event.target.value)]; if (next) setSelected(next.id); } }} onPointerUp={event => { onPointerUp?.(event); if (!event.defaultPrevented) commit(event.currentTarget); }} onKeyUp={event => { onKeyUp?.(event); if (!event.defaultPrevented && ['ArrowLeft','ArrowRight','ArrowUp','ArrowDown','Home','End','PageUp','PageDown'].includes(event.key)) commit(event.currentTarget); }} />\n </div>;\n});\n\ninterface FieldContextValue { id: string; describedBy?: string; invalid?: boolean; required?: boolean }\nconst FieldContext = createContext<FieldContextValue | null>(null);\nfunction useField(props: { id?: string; dir?: string; 'aria-describedby'?: string; 'aria-invalid'?: InputHTMLAttributes<HTMLInputElement>['aria-invalid']; required?: boolean }) {\n const field = useContext(FieldContext);\n const direction = useUIDirection(props.dir === 'rtl' || props.dir === 'ltr' ? props.dir : undefined);\n return { id: field?.id ?? props.id, dir: props.dir ?? direction, 'aria-describedby': [field?.describedBy, props['aria-describedby']].filter(Boolean).join(' ') || undefined, 'aria-invalid': props['aria-invalid'] ?? field?.invalid, required: props.required ?? field?.required };\n}\nexport interface FieldProps extends Omit<HTMLAttributes<HTMLDivElement>, 'children'> { label: ReactNode; children: ReactElement; description?: ReactNode; error?: ReactNode; invalid?: boolean; required?: boolean }\nexport function Field({ id: explicitId, label, description, error, invalid, required, className, children, ...props }: FieldProps) {\n const generated = useId();\n const helpInTooltip = useContext(FormHelpPresentationContext);\n const id = explicitId ?? (isValidElement<{ id?: string }>(children) ? children.props.id : undefined) ?? generated;\n const describedBy = [description ? id + '-description' : '', error ? id + '-error' : ''].filter(Boolean).join(' ') || undefined;\n const fieldLabel = <label className=\"monkeys-ui-label\" htmlFor={id}>{label}{required ? <span className=\"monkeys-ui-required\" aria-hidden=\"true\"> *</span> : null}</label>;\n return <div {...props} className={cx('monkeys-ui-field', className)}>\n {helpInTooltip && description ? <div className=\"flex items-center gap-1\" data-slot=\"label-row\">{fieldLabel}<BaseFormHelp>{description}</BaseFormHelp></div> : fieldLabel}\n <FieldContext.Provider value={{ id, describedBy, invalid: invalid ?? !!error, required }}>{Children.only(children)}</FieldContext.Provider>\n {description ? <div id={id + '-description'} className={helpInTooltip ? 'monkeys-ui-visually-hidden' : 'monkeys-ui-description'}>{description}</div> : null}\n {error ? <div id={id + '-error'} className=\"monkeys-ui-error\" role=\"alert\">{error}</div> : null}\n </div>;\n}\nexport interface FieldsetProps extends HTMLAttributes<HTMLFieldSetElement> { legend: ReactNode; disabled?: boolean }\nexport function Fieldset({ legend, children, className, ...props }: FieldsetProps) { return <fieldset {...props} className={cx('monkeys-ui-fieldset', className)}>{legend != null ? <legend>{legend}</legend> : null}{children}</fieldset>; }\nexport const Input = forwardRef<HTMLInputElement, InputHTMLAttributes<HTMLInputElement>>(function Input({ className, ...props }, ref) { const field = useField(props); return <input {...props} {...field} className={cx('monkeys-ui-input', className)} ref={ref} />; });\nexport const Textarea = forwardRef<HTMLTextAreaElement, TextareaHTMLAttributes<HTMLTextAreaElement>>(function Textarea({ className, ...props }, ref) { const field = useField(props); return <textarea {...props} {...field} ref={ref} className={cx('monkeys-ui-textarea', className)} />; });\nexport function parseNumberValue(text: string): number | null { return /^-?(?:\\d+|\\d*\\.\\d+)$/.test(text.trim()) && Number.isFinite(Number(text)) ? Number(text) : null; }\nexport interface NumberInputProps extends Omit<InputHTMLAttributes<HTMLInputElement>, 'type' | 'value' | 'defaultValue' | 'onChange'> { value?: string; defaultValue?: string; onValueChange?: (text: string, detail: { numberValue: number | null }) => void }\nexport const NumberInput = forwardRef<HTMLInputElement, NumberInputProps>(function NumberInput({ value, defaultValue, onValueChange, ...props }, ref) {\n const [text, setText] = useControllable(value, defaultValue, '', next => onValueChange?.(next, { numberValue: parseNumberValue(next) }));\n return <Input {...props} type=\"text\" inputMode=\"decimal\" value={text} onChange={event => setText(event.target.value)} ref={ref} />;\n});\nexport interface SearchFieldProps extends Omit<InputHTMLAttributes<HTMLInputElement>, 'type' | 'value' | 'defaultValue' | 'onChange' | 'onSubmit'> { value?: string; defaultValue?: string; onValueChange?: (value: string) => void; onSearch?: (value: string) => void; clearLabel?: string }\nexport const SearchField = forwardRef<HTMLInputElement, SearchFieldProps>(function SearchField({ value, defaultValue, onValueChange, onSearch, clearLabel = '清空搜索', className, onKeyDown, disabled, readOnly, ...props }, ref) {\n const [text, setText] = useControllable(value, defaultValue, '', onValueChange);\n const composing = useRef(false);\n const input = useRef<HTMLInputElement>(null);\n useImperativeHandle(ref, () => input.current!, []);\n return <div className={cx('monkeys-ui-search', className)}><Search size={17} aria-hidden=\"true\" /><Input {...props} ref={input} type=\"search\" disabled={disabled} readOnly={readOnly} value={text} onChange={event => setText(event.target.value)} onCompositionStart={() => { composing.current = true; }} onCompositionEnd={() => { composing.current = false; }} onKeyDown={event => { onKeyDown?.(event); if (!event.defaultPrevented && event.key === 'Enter' && !composing.current && !event.nativeEvent.isComposing) { event.preventDefault(); onSearch?.(text); } }} />{text ? <Button shape=\"icon\" aria-label={clearLabel} size=\"sm\" disabled={disabled || readOnly} onClick={() => { if (!disabled && !readOnly) { setText(''); input.current?.focus(); } }}><X size={14} aria-hidden=\"true\" /></Button> : null}</div>;\n});\nexport interface SwitchProps extends Omit<SwitchPrimitive.SwitchProps, 'defaultChecked'> { defaultChecked?: boolean }\nexport const Switch = forwardRef<HTMLButtonElement, SwitchProps>(function Switch({ checked, defaultChecked, onCheckedChange, className, onPointerDown, onKeyDown, ...props }, ref) {\n const field = useField(props);\n const [value, setValue] = useControllable(checked, defaultChecked, false, onCheckedChange);\n return <SwitchPrimitive.Root {...props} {...field} ref={ref} checked={value} onCheckedChange={setValue} onPointerDown={event => { event.currentTarget.dataset.input = 'pointer'; onPointerDown?.(event); }} onKeyDown={event => { event.currentTarget.dataset.input = 'keyboard'; onKeyDown?.(event); }} className={cx('monkeys-ui-switch', className)}><SwitchPrimitive.Thumb className=\"monkeys-ui-switch-thumb\" /></SwitchPrimitive.Root>;\n});\nexport interface SelectOption { value: string; label: string; disabled?: boolean }\n/** Shared select appearance for popover-backed pickers; the parent owns selection semantics. */\nexport interface PickerTriggerProps extends ButtonHTMLAttributes<HTMLButtonElement> { indicator?: ReactNode }\nexport const PickerTrigger = forwardRef<HTMLButtonElement, PickerTriggerProps>(function PickerTrigger({ indicator = <ChevronDown size={12} />, className, children, type = 'button', ...props }, ref) {\n return <button {...props} ref={ref} type={type} className={cx('monkeys-ui-select', className)}><span className=\"min-w-0 truncate\">{children}</span><span className=\"shrink-0\" aria-hidden=\"true\">{indicator}</span></button>;\n});\nexport interface SelectProps extends Omit<SelectPrimitive.SelectProps, 'children'> { options: SelectOption[]; placeholder?: string; id?: string; className?: string; style?: React.CSSProperties; 'aria-label'?: string; 'aria-describedby'?: string; 'aria-invalid'?: boolean }\nexport const Select = forwardRef<HTMLButtonElement, SelectProps>(function Select({ options, placeholder, className, style, id, 'aria-label': label, 'aria-describedby': describedBy, 'aria-invalid': invalid, value, defaultValue, onValueChange, ...props }, ref) {\n const field = useField({ id, dir: props.dir, 'aria-describedby': describedBy, 'aria-invalid': invalid, required: props.required });\n const [selected, setSelected] = useControllable(value, defaultValue, '', onValueChange);\n const direction = useUIDirection(props.dir);\n const locale = useUILocale();\n const { required, ...fieldAttributes } = field;\n return <SelectPrimitive.Root {...props} dir={direction} required={required} value={selected} onValueChange={setSelected}><SelectPrimitive.Trigger ref={ref} {...fieldAttributes} aria-required={required || undefined} aria-label={label} className={cx('monkeys-ui-select', className)} style={style}><SelectPrimitive.Value placeholder={placeholder ?? locale.messages.multiSelect.placeholder} /><SelectPrimitive.Icon aria-hidden=\"true\"><ChevronDown size={12} /></SelectPrimitive.Icon></SelectPrimitive.Trigger><Portal><SelectPrimitive.Content className=\"monkeys-ui-select-content\" position=\"popper\" sideOffset={6}><SelectPrimitive.ScrollUpButton><ChevronUp size={12} aria-hidden=\"true\" /></SelectPrimitive.ScrollUpButton><SelectPrimitive.Viewport>{options.map(option => <SelectPrimitive.Item key={option.value} value={option.value} disabled={option.disabled} className=\"monkeys-ui-select-item\"><SelectPrimitive.ItemText>{option.label}</SelectPrimitive.ItemText><SelectPrimitive.ItemIndicator><Check size={12} aria-hidden=\"true\" /></SelectPrimitive.ItemIndicator></SelectPrimitive.Item>)}</SelectPrimitive.Viewport><SelectPrimitive.ScrollDownButton><ChevronDown size={12} aria-hidden=\"true\" /></SelectPrimitive.ScrollDownButton></SelectPrimitive.Content></Portal></SelectPrimitive.Root>;\n});\nexport interface ChoiceItem { value: string; label: ReactNode; ariaLabel?: string; disabled?: boolean }\nexport interface SegmentedControlProps extends Omit<HTMLAttributes<HTMLDivElement>, 'defaultValue' | 'onChange' | 'dir'> { dir?: 'ltr' | 'rtl'; items: ChoiceItem[]; value?: string; defaultValue?: string; onValueChange?: (value: string) => void; 'aria-label': string }\nexport function SegmentedControl({ items, value, defaultValue, onValueChange, className, ...props }: SegmentedControlProps) {\n const [selected, setSelected] = useControllable(value, defaultValue, items[0]?.value ?? '', onValueChange);\n const direction = useUIDirection(props.dir);\n return <ToggleGroup.Root {...props} dir={direction} type=\"single\" value={selected} onValueChange={next => { if (next) setSelected(next); }} className={cx('monkeys-ui-segmented', className)}>{items.map(item => <ToggleGroup.Item type=\"button\" key={item.value} value={item.value} aria-label={item.ariaLabel} disabled={item.disabled} className=\"monkeys-ui-segment\">{item.label}</ToggleGroup.Item>)}</ToggleGroup.Root>;\n}\nexport interface SectionTitleProps extends HTMLAttributes<HTMLElement> {\n as?: 'h1' | 'h2' | 'h3' | 'h4' | 'h5' | 'h6' | 'span';\n indicator?: boolean;\n}\n/** Shared title/indicator presentation; the parent owns navigation and selection. */\nexport function SectionTitle({ as: Element = 'h2', indicator = true, className, ...props }: SectionTitleProps) {\n return <Element {...props} className={cx('monkeys-ui-section-title', className)} data-indicator={indicator} />;\n}\nexport interface TabItem extends ChoiceItem { content: ReactNode }\nexport interface TabsProps extends Omit<TabsPrimitive.TabsProps, 'children'> { items: TabItem[]; 'aria-label': string }\nexport function Tabs({ items, value, defaultValue, onValueChange, className, 'aria-label': label, ...props }: TabsProps) {\n const [selected, setSelected] = useControllable(value, defaultValue, items[0]?.value ?? '', onValueChange);\n const direction = useUIDirection(props.dir);\n return <TabsPrimitive.Root {...props} dir={direction} value={selected} onValueChange={setSelected} className={cx('monkeys-ui-tabs', className)}><TabsPrimitive.List aria-label={label} className=\"monkeys-ui-tab-list\">{items.map(item => <TabsPrimitive.Trigger type=\"button\" key={item.value} value={item.value} aria-label={item.ariaLabel} disabled={item.disabled} className=\"monkeys-ui-tab\"><SectionTitle as=\"span\" indicator={selected === item.value}>{item.label}</SectionTitle></TabsPrimitive.Trigger>)}</TabsPrimitive.List>{items.map(item => <TabsPrimitive.Content key={item.value} value={item.value} className=\"monkeys-ui-tab-panel\">{item.content}</TabsPrimitive.Content>)}</TabsPrimitive.Root>;\n}\n","import { forwardRef, type HTMLAttributes } from 'react';\nimport * as ScrollArea from '@radix-ui/react-scroll-area';\nimport { useUIDirection } from './theme/theme';\nimport { cx } from './internal';\n\ninterface ScrollSurfaceProps extends HTMLAttributes<HTMLElement> {\n as?: 'section' | 'aside';\n}\n\n/** Internal bento surface: native scrolling with transient, overlaid drag handles. */\nexport const ScrollSurface = forwardRef<HTMLElement, ScrollSurfaceProps>(function ScrollSurface({ as: Element = 'section', children, className, onScroll, dir, ...props }, ref) {\n const direction = useUIDirection(dir === 'rtl' || dir === 'ltr' ? dir : undefined);\n return <ScrollArea.Root asChild type=\"scroll\" scrollHideDelay={700} dir={direction}>\n <Element {...props} ref={ref} className={cx('monkeys-ui-scroll-surface', className)}>\n <ScrollArea.Viewport className=\"monkeys-ui-scroll-viewport\" tabIndex={0} role=\"group\" aria-labelledby={props['aria-labelledby']} aria-label={props['aria-labelledby'] ? undefined : props['aria-label'] ?? '滚动内容'} onScroll={onScroll}>\n {children}\n </ScrollArea.Viewport>\n <ScrollArea.Scrollbar orientation=\"vertical\" className=\"monkeys-ui-scrollbar\" aria-hidden=\"true\"><ScrollArea.Thumb className=\"monkeys-ui-scroll-thumb\" /></ScrollArea.Scrollbar>\n <ScrollArea.Scrollbar orientation=\"horizontal\" className=\"monkeys-ui-scrollbar\" aria-hidden=\"true\"><ScrollArea.Thumb className=\"monkeys-ui-scroll-thumb\" /></ScrollArea.Scrollbar>\n </Element>\n </ScrollArea.Root>;\n});\n","import { createContext, useContext, type Context, type ReactNode } from 'react';\n\n// Public entry points are independently bundled; share context identity, never provider values.\nconst key = Symbol.for('@inf-monkeys-tech/monkeys-design/bento-depth@1');\nconst host = globalThis as typeof globalThis & { [key]?: Context<number> };\nconst BentoDepth = host[key] ?? (host[key] = createContext(0));\n\nexport function useBentoDepth(): number {\n return useContext(BentoDepth);\n}\n\n/** A page or overlay starts an independent surface hierarchy without adding DOM. */\nexport function BentoDepthProvider({\n children,\n depth,\n}: {\n children?: ReactNode;\n depth: number;\n}) {\n return <BentoDepth.Provider value={depth}>{children}</BentoDepth.Provider>;\n}\n\nexport function BentoScope({ children }: { children?: ReactNode }) {\n return <BentoDepthProvider depth={0}>{children}</BentoDepthProvider>;\n}\n","import type { CSSProperties } from \"react\";\nimport { useMonkeysResolvedTheme } from \"../../provider/context\";\nimport {\n BENTO_STYLE_FIELDS,\n resolveBentoTokens,\n} from \"../../theme-system/bento-tokens\";\nimport { useBentoDepth } from \"./BentoScope\";\n\nexport const bentoSurfaceClassName =\n \"rounded-[var(--monkeys-bento-radius)] border-[length:var(--monkeys-bento-border-width)] border-[color:var(--monkeys-bento-border-color)] [border-style:var(--monkeys-bento-border-style)] bg-[var(--monkeys-bento-background)] shadow-[shadow:var(--monkeys-bento-shadow)] p-[var(--monkeys-bento-padding)] gap-[var(--monkeys-bento-gap)]\";\n\n/** Supply one surface recipe without adding a layout wrapper. */\nexport function useBentoSurface() {\n const parentDepth = useBentoDepth();\n const level = parentDepth + 1;\n const recipe = resolveBentoTokens(useMonkeysResolvedTheme(), level);\n const variables = Object.fromEntries(\n BENTO_STYLE_FIELDS.map((field) => [\n `--monkeys-bento-${field.replace(/[A-Z]/g, (letter) => `-${letter.toLowerCase()}`)}`,\n recipe.values[field],\n ]),\n ) as CSSProperties;\n return { parentDepth, level, variables };\n}\n","import { forwardRef, useId, useRef, type HTMLAttributes, type ReactElement, type ReactNode, type RefObject } from 'react';\nimport * as DialogPrimitive from '@radix-ui/react-dialog';\nimport * as MenuPrimitive from '@radix-ui/react-dropdown-menu';\nimport * as TooltipPrimitive from '@radix-ui/react-tooltip';\nimport * as AvatarPrimitive from '@radix-ui/react-avatar';\nimport { Button } from './controls';\nimport { Portal, useUIDirection, useUILocale, useTooltipScope } from './theme/theme';\nimport { cx, useControllable } from './internal';\nimport { X } from 'lucide-react';\nimport { ScrollSurface } from './scroll-surface';\nimport { useBentoSurface } from '../components/runtime/useBentoSurface';\n\nexport interface TooltipProps { content: ReactNode; children: ReactElement; delayDuration?: number; side?: 'top' | 'bottom' | 'left' | 'right' }\nexport function Tooltip({ content, children, delayDuration, side = 'top' }: TooltipProps) {\n const scoped = useTooltipScope();\n const tooltip = <TooltipPrimitive.Root delayDuration={delayDuration}><TooltipPrimitive.Trigger asChild>{children}</TooltipPrimitive.Trigger><Portal><TooltipPrimitive.Content side={side} sideOffset={7} className=\"monkeys-ui-tooltip\">{content}</TooltipPrimitive.Content></Portal></TooltipPrimitive.Root>;\n return scoped ? tooltip : <TooltipPrimitive.Provider delayDuration={delayDuration ?? 500} skipDelayDuration={300}>{tooltip}</TooltipPrimitive.Provider>;\n}\nexport interface MenuItem { id: string; label: ReactNode; disabled?: boolean; danger?: boolean; onSelect?: () => void }\nexport interface MenuProps { trigger: ReactElement; items: MenuItem[]; label?: string; open?: boolean; defaultOpen?: boolean; onOpenChange?: (open: boolean) => void; onCloseAutoFocus?: (event: Event) => void }\nexport function Menu({ trigger, items, label, open, defaultOpen, onOpenChange, onCloseAutoFocus }: MenuProps) {\n const [shown, setShown] = useControllable(open, defaultOpen, false, onOpenChange);\n const direction = useUIDirection();\n return <MenuPrimitive.Root dir={direction} open={shown} onOpenChange={setShown}><MenuPrimitive.Trigger asChild>{trigger}</MenuPrimitive.Trigger><Portal><MenuPrimitive.Content aria-label={label} sideOffset={6} align=\"end\" onCloseAutoFocus={onCloseAutoFocus} className=\"monkeys-ui-menu\">{items.map(item => <MenuPrimitive.Item key={item.id} disabled={item.disabled} className=\"monkeys-ui-menu-item\" data-danger={item.danger || undefined} onSelect={item.onSelect}>{item.label}</MenuPrimitive.Item>)}</MenuPrimitive.Content></Portal></MenuPrimitive.Root>;\n}\nexport interface DialogProps { frame?: 'default' | 'bento'; size?: 'md' | 'xl'; scroll?: 'dialog' | 'body'; backdrop?: 'dim' | 'blur'; surface?: 'default' | 'gradient'; open?: boolean; defaultOpen?: boolean; onOpenChange?: (open: boolean) => void; trigger?: ReactElement; title: ReactNode; description?: ReactNode; children?: ReactNode; actions?: ReactNode; initialFocusRef?: RefObject<HTMLElement>; restoreFocusRef?: RefObject<HTMLElement>; onCloseAutoFocus?: (event: Event) => void; className?: string; closeLabel?: string }\nexport function Dialog({ frame = 'default', size = 'md', scroll = 'dialog', backdrop = 'dim', surface = 'default', open, defaultOpen, onOpenChange, trigger, title, description, children, actions, initialFocusRef, restoreFocusRef, onCloseAutoFocus, className, closeLabel }: DialogProps) {\n const [shown, setShown] = useControllable(open, defaultOpen, false, onOpenChange);\n const close = useRef<HTMLButtonElement>(null);\n const bento = useBentoSurface();\n const locale = useUILocale();\n return <DialogPrimitive.Root open={shown} onOpenChange={setShown}>{trigger ? <DialogPrimitive.Trigger asChild>{trigger}</DialogPrimitive.Trigger> : null}<Portal><DialogPrimitive.Overlay data-backdrop={backdrop} className=\"monkeys-ui-dialog-overlay\" /><DialogPrimitive.Content data-frame={frame} style={frame === 'bento' ? bento.variables : undefined} data-size={size} data-scroll={scroll} data-surface={surface} className={cx('monkeys-ui-dialog', className)} {...(description ? {} : { 'aria-describedby': undefined })} onOpenAutoFocus={event => {\n event.preventDefault();\n // Radix registers its dismissable layer after mounting. Focus marks the\n // dialog ready for keyboard input, so expose it after that registration.\n const button = close.current;\n button?.ownerDocument.defaultView?.requestAnimationFrame(() => {\n if (button.isConnected && button.closest('[role=\"dialog\"]')?.getAttribute('data-state') === 'open') (initialFocusRef?.current ?? button).focus();\n });\n }} onCloseAutoFocus={event => { onCloseAutoFocus?.(event); if (!event.defaultPrevented && restoreFocusRef?.current) { event.preventDefault(); restoreFocusRef.current.focus(); } }}><DialogPrimitive.Title className=\"monkeys-ui-dialog-title\">{title}</DialogPrimitive.Title>{description ? <DialogPrimitive.Description className=\"monkeys-ui-description\">{description}</DialogPrimitive.Description> : null}<DialogPrimitive.Close asChild><Button shape=\"icon\" ref={close} aria-label={closeLabel ?? locale.messages.dialog.close} className=\"monkeys-ui-dialog-close\"><X size={16} aria-hidden=\"true\" /></Button></DialogPrimitive.Close>{scroll === 'body' ? <ScrollSurface className=\"monkeys-ui-dialog-body\" aria-label={typeof title === 'string' ? title + '内容' : '对话框内容'}>{children}</ScrollSurface> : children}{actions ? <div className=\"monkeys-ui-dialog-actions\">{actions}</div> : null}</DialogPrimitive.Content></Portal></DialogPrimitive.Root>;\n}\nexport interface BadgeProps extends HTMLAttributes<HTMLSpanElement> { tone?: 'neutral' | 'primary' | 'danger' | 'success' }\nexport function Badge({ tone = 'neutral', className, ...props }: BadgeProps) { return <span {...props} data-tone={tone} className={cx('monkeys-ui-badge', className)} />; }\nexport interface NoticeProps extends HTMLAttributes<HTMLDivElement> { tone?: 'neutral' | 'danger' | 'success'; action?: ReactNode }\nexport function Notice({ tone = 'neutral', action, children, className, ...props }: NoticeProps) { return <div role={tone === 'danger' ? 'alert' : 'status'} {...props} data-tone={tone} className={cx('monkeys-ui-notice', className)}><div>{children}</div>{action}</div>; }\nexport interface EmptyStateProps extends HTMLAttributes<HTMLDivElement> { title: string; description?: ReactNode; action?: ReactNode }\nexport function EmptyState({ title, description, action, className, ...props }: EmptyStateProps) { return <div {...props} className={cx('monkeys-ui-empty', className)}><strong>{title}</strong>{description ? <p>{description}</p> : null}{action}</div>; }\nexport interface LoadingStateProps extends HTMLAttributes<HTMLDivElement> { label?: string }\nexport function LoadingState({ label, className, ...props }: LoadingStateProps) { const locale = useUILocale(); return <div role=\"status\" aria-busy=\"true\" {...props} className={cx('monkeys-ui-loading', className)}><span className=\"monkeys-ui-inline-spinner\" aria-hidden=\"true\" />{label ?? locale.messages.loading.spinner}</div>; }\nexport interface AvatarProps extends AvatarPrimitive.AvatarProps { src?: string; alt: string; fallback?: ReactNode }\nexport const Avatar = forwardRef<HTMLSpanElement, AvatarProps>(function Avatar({ src, alt, fallback, className, ...props }, ref) { return <AvatarPrimitive.Root {...props} ref={ref} className={cx('monkeys-ui-avatar', className)}><AvatarPrimitive.Image src={src} alt={alt} /><AvatarPrimitive.Fallback>{fallback ?? alt.slice(0, 1)}</AvatarPrimitive.Fallback></AvatarPrimitive.Root>; });\n","import type { ElementType } from 'react';\n\nimport type { BasePanelProps } from './types';\nimport { resolveBaseAppearance } from './theme';\nimport { cn, hasRenderableNode } from './utils';\n\nexport function BasePanel({\n as = 'article',\n title,\n description,\n media,\n header,\n footer,\n children,\n interactive,\n selected,\n disabled,\n appearance,\n variant,\n density,\n state,\n className,\n classNames,\n style,\n ...panelProps\n}: BasePanelProps) {\n const theme = resolveBaseAppearance({ ...appearance, variant, density, state });\n const Component = as as ElementType;\n const hasHeader =\n header !== undefined\n ? hasRenderableNode(header)\n : hasRenderableNode(title) || hasRenderableNode(description);\n const hasMedia = media !== undefined && media !== null;\n const bodyIsStandalone = !hasHeader && !hasMedia;\n\n return (\n <Component\n {...panelProps}\n aria-disabled={disabled || undefined}\n data-variant={theme.variant}\n data-density={theme.density}\n data-state={state ?? (disabled ? 'disabled' : selected ? 'selected' : 'idle')}\n data-monkeys-component=\"panel\"\n data-slot=\"root\"\n data-interactive={interactive || undefined}\n data-selected={selected || undefined}\n data-disabled={disabled || undefined}\n className={cn(\n theme.slots.panelRoot,\n interactive && !disabled && theme.slots.panelInteractive,\n selected && theme.slots.panelSelected,\n disabled && theme.slots.panelDisabled,\n classNames?.root,\n className,\n )}\n style={{\n ...theme.styles.panel,\n ...style,\n }}\n >\n {hasMedia ? (\n <div\n data-slot=\"media\"\n className={cn(theme.slots.panelMedia, classNames?.media)}\n >\n {media}\n </div>\n ) : null}\n\n {hasHeader ? (\n <div\n data-slot=\"header\"\n className={cn(theme.slots.panelHeader, classNames?.header)}\n style={theme.styles.panelHeader}\n >\n {header !== undefined ? (\n header\n ) : (\n <>\n {hasRenderableNode(title) ? (\n <div\n data-slot=\"title\"\n className={cn(theme.slots.panelTitle, classNames?.title)}\n >\n {title}\n </div>\n ) : null}\n {hasRenderableNode(description) ? (\n <div\n data-slot=\"description\"\n className={cn(\n theme.slots.panelDescription,\n classNames?.description,\n )}\n >\n {description}\n </div>\n ) : null}\n </>\n )}\n </div>\n ) : null}\n\n {children !== undefined && children !== null ? (\n <div\n data-slot=\"body\"\n className={cn(\n theme.slots.panelBody,\n bodyIsStandalone && theme.slots.panelBodyStandalone,\n classNames?.body,\n )}\n style={theme.styles.panelBody}\n >\n {children}\n </div>\n ) : null}\n\n {footer !== undefined && footer !== null ? (\n <div\n data-slot=\"footer\"\n className={cn(theme.slots.panelFooter, classNames?.footer)}\n style={theme.styles.panelFooter}\n >\n {footer}\n </div>\n ) : null}\n </Component>\n );\n}\n","import type { ComponentType, ReactNode, CSSProperties } from \"react\";\nimport { useMonkeysBaseAppearance } from \"../../provider/context\";\nimport { BentoDepthProvider } from \"../runtime/BentoScope\";\nimport { useBentoSurface } from \"../runtime/useBentoSurface\";\n\nimport { BasePanel } from \"../base/BasePanel\";\nimport type { BasePanelClassNames, BasePanelProps } from \"../base/types\";\nimport { cn } from \"../base/utils\";\n\nexport interface BentoPanelProps\n extends Omit<\n BasePanelProps,\n \"children\" | \"className\" | \"classNames\" | \"header\" | \"title\"\n > {\n children?: ReactNode;\n className?: string;\n contentClassName?: string;\n chrome?: \"panel\" | \"plain\";\n /** Allow header actions to wrap below the title in narrow containers. */\n headerWrap?: boolean;\n title?: ReactNode;\n titleIcon?: ComponentType<{\n className?: string;\n color?: string;\n stroke?: string;\n }>;\n action?: ReactNode;\n classNames?: Omit<BasePanelClassNames, \"header\" | \"body\"> & {\n header?: string;\n body?: string;\n };\n}\n\nconst ownsPadding = (\n styles: CSSProperties | undefined,\n classes: string | undefined,\n) =>\n Object.keys(styles ?? {}).some(\n (key) =>\n key.startsWith(\"padding\") &&\n styles?.[key as keyof CSSProperties] !== undefined,\n ) || /(?:^|[\\s:])!?p[xytrblse]?-(?:\\[|[a-z0-9])/.test(classes ?? \"\");\n\n/**\n * Add native `data-surface=\"glow\"` to opt into the shared radial surface.\n * Color follows component.bento.{default,levels.levelN}.glowColor tokens;\n * unmarked and chrome=\"plain\" panels retain their normal backgrounds.\n */\nexport function BentoPanel({\n children,\n className,\n contentClassName,\n chrome = \"panel\",\n headerWrap = false,\n title,\n titleIcon: TitleIcon,\n action,\n appearance: explicitAppearance,\n classNames,\n ...props\n}: BentoPanelProps) {\n const { parentDepth, level, variables } = useBentoSurface();\n const appearance = useMonkeysBaseAppearance(explicitAppearance);\n const framed = chrome === \"panel\";\n const bodyOwnsPadding = ownsPadding(\n appearance?.styles?.panelBody,\n [classNames?.body, contentClassName, appearance?.slots?.panelBody].join(\n \" \",\n ),\n );\n return (\n <BentoDepthProvider depth={framed ? level : parentDepth}>\n <BasePanel\n as=\"section\"\n appearance={{\n ...appearance,\n slots: {\n ...appearance?.slots,\n panelRoot: appearance?.slots?.panelRoot,\n },\n styles: {\n ...appearance?.styles,\n // Token padding utilities may otherwise win over px-0/p-0 in host CSS.\n panelHeader: {\n ...(chrome === \"plain\"\n ? {\n padding: 0,\n paddingBlockEnd: \"var(--global-spacing-lg, 1rem)\",\n }\n : {}),\n ...appearance?.styles?.panelHeader,\n },\n panelBody: {\n ...(!bodyOwnsPadding || chrome === \"plain\" ? { padding: 0 } : {}),\n ...appearance?.styles?.panelBody,\n },\n },\n }}\n classNames={{\n ...classNames,\n root: cn(\n \"min-h-0\",\n framed && \"gap-[var(--monkeys-bento-gap)]\",\n framed &&\n appearance?.radius === undefined &&\n !appearance?.preset &&\n \"rounded-[var(--monkeys-bento-radius)]\",\n framed &&\n appearance?.border === undefined &&\n !appearance?.preset &&\n \"border-[length:var(--monkeys-bento-border-width)] border-[color:var(--monkeys-bento-border-color)] [border-style:var(--monkeys-bento-border-style)]\",\n framed &&\n appearance?.background === undefined &&\n !appearance?.preset &&\n \"bg-[var(--monkeys-bento-background)]\",\n framed &&\n !appearance?.preset &&\n appearance?.background === undefined &&\n \"shadow-[shadow:var(--monkeys-bento-shadow)]\",\n framed && !bodyOwnsPadding && \"p-[var(--monkeys-bento-padding)]\",\n !framed && \"border-0 bg-transparent shadow-none\",\n appearance?.slots?.panelRoot,\n classNames?.root,\n className,\n ),\n header: cn(\n \"flex min-w-0 items-center gap-[var(--monkeys-bento-gap,var(--global-spacing,0.75rem))] border-b border-border p-0 pb-[var(--monkeys-bento-gap)]\",\n chrome === \"plain\" && \"border-0 px-0 pt-0 pb-token-lg\",\n classNames?.header,\n ),\n body: cn(\n \"flex min-h-0 flex-col gap-[var(--monkeys-bento-gap,var(--global-spacing,0.75rem))] p-0\",\n appearance?.slots?.panelBody,\n classNames?.body,\n contentClassName,\n ),\n footer: cn(\n \"px-0 pb-0 pt-[var(--monkeys-bento-gap)]\",\n classNames?.footer,\n ),\n }}\n header={\n title ? (\n <div\n className={cn(\n \"flex min-w-0 flex-1 items-center justify-between gap-token-md\",\n headerWrap && \"flex-wrap\",\n )}\n >\n <div\n className={cn(\n \"flex min-w-0 flex-1 items-center gap-token-sm\",\n headerWrap && \"basis-auto\",\n )}\n >\n {TitleIcon ? (\n <span className=\"inline-flex size-8 shrink-0 items-center justify-center rounded-md border border-primary/30 bg-primary/10 text-primary\">\n <TitleIcon\n className=\"size-4 text-primary\"\n color=\"currentColor\"\n stroke=\"currentColor\"\n />\n </span>\n ) : null}\n <div className=\"min-w-0\">\n <h2 className=\"truncate text-base font-semibold text-foreground\">\n {title}\n </h2>\n {props.description ? (\n <div className=\"mt-1 text-sm text-muted-foreground\">\n {props.description}\n </div>\n ) : null}\n </div>\n </div>\n {action ? (\n <div className={cn(\"shrink-0\", headerWrap && \"max-w-full\")}>\n {action}\n </div>\n ) : null}\n </div>\n ) : undefined\n }\n {...props}\n data-monkeys-bento-level={framed ? level : undefined}\n style={{ ...(framed ? variables : {}), ...props.style }}\n >\n {children}\n </BasePanel>\n </BentoDepthProvider>\n );\n}\n","import { createContext } from 'react';\n\n/** Internal surface choice for compound controls embedded in a Bento workspace. */\nexport const PanelSurfaceContext = createContext<'catalog' | 'bento'>('catalog');\n","import { useEffect, useRef, useState } from 'react';\nimport type * as Shaders from 'shaders/react';\nimport tokens from './theme/tokens.json';\n\n/** Shared shader settings keep banner and detail surfaces visually consistent. */\nconst chromaFlow = { baseColor: tokens.seed.ui.color.blueGlow.$value.hex, intensity: 0.7, momentum: 23, radius: 6, upColor: tokens.seed.ui.color.violetGlow.$value.hex };\n\nexport function SurfaceEffect({ variant }: { variant: 'banner' | 'chroma' }) {\n const [enabled, setEnabled] = useState(false);\n const [shaders, setShaders] = useState<typeof Shaders | null>(null);\n const [rendererState, setRendererState] = useState<'loading' | 'ready' | 'unavailable'>('loading');\n const surface = useRef<HTMLDivElement>(null);\n\n useEffect(() => {\n const reducedMotion = window.matchMedia('(prefers-reduced-motion: reduce)');\n const forcedColors = window.matchMedia('(forced-colors: active)');\n const update = () => setEnabled(!reducedMotion.matches && !forcedColors.matches);\n update();\n reducedMotion.addEventListener('change', update);\n forcedColors.addEventListener('change', update);\n return () => {\n reducedMotion.removeEventListener('change', update);\n forcedColors.removeEventListener('change', update);\n };\n }, []);\n\n useEffect(() => {\n if (!enabled || shaders) return;\n let active = true;\n import('shaders/react').then(module => {\n if (active) setShaders(module);\n }).catch(() => { if (active) setRendererState('unavailable'); });\n return () => { active = false; };\n }, [enabled, shaders]);\n\n useEffect(() => {\n const element = surface.current;\n const parent = element?.parentElement;\n if (!enabled || variant !== 'chroma' || rendererState === 'ready' || !element || !parent) return;\n // The decorative layer does not intercept input; listen on its content surface.\n const move = (event: PointerEvent) => {\n if (event.pointerType === 'touch') return;\n const bounds = element.getBoundingClientRect();\n element.style.setProperty('--monkeys-ui-surface-x', `${event.clientX - bounds.left}px`);\n element.style.setProperty('--monkeys-ui-surface-y', `${event.clientY - bounds.top}px`);\n element.dataset.pointerActive = '';\n };\n const leave = () => { delete element.dataset.pointerActive; };\n parent.addEventListener('pointerenter', move);\n parent.addEventListener('pointermove', move);\n parent.addEventListener('pointerleave', leave);\n return () => {\n parent.removeEventListener('pointerenter', move);\n parent.removeEventListener('pointermove', move);\n parent.removeEventListener('pointerleave', leave);\n leave();\n element.style.removeProperty('--monkeys-ui-surface-x');\n element.style.removeProperty('--monkeys-ui-surface-y');\n };\n }, [enabled, variant, rendererState]);\n\n return <div ref={surface} className={variant === 'banner' ? 'monkeys-ui-brand-banner-effect' : 'monkeys-ui-card-surface-effect'} data-monkeys-ui-brand-effect={variant === 'banner' ? '' : undefined} data-monkeys-ui-card-effect={variant === 'chroma' ? '' : undefined} data-renderer-state={enabled ? rendererState : 'disabled'} aria-hidden=\"true\">\n {enabled && variant === 'chroma' && rendererState !== 'ready' ? <div className=\"monkeys-ui-shader-fallback\" data-effect=\"surface-chroma\" /> : null}\n {enabled && shaders ? <shaders.Shader disableTelemetry onReady={() => setRendererState('ready')} onUnavailable={() => setRendererState('unavailable')} style={{ width: '100%', height: '100%' }}>\n <shaders.ChromaFlow {...chromaFlow} />\n {variant === 'banner' ? <shaders.Aurora colorA={chromaFlow.baseColor} colorB={chromaFlow.upColor} colorSpace=\"hsl\" curtainCount={2} height={81} intensity={64} rayDensity={12} speed={10} waviness={39} transform={{ rotation: 180 }} /> : null}\n </shaders.Shader> : null}\n </div>;\n}\n","import { forwardRef, useContext, useId, useState, type AnchorHTMLAttributes, type ButtonHTMLAttributes, type CSSProperties, type HTMLAttributes, type ReactNode } from 'react';\nimport { BentoPanel } from '../components/primitives/BentoPanel';\nimport { PanelSurfaceContext } from './panel-surface';\nimport { cx } from './internal';\nimport { Check, ImageOff } from 'lucide-react';\nimport { ScrollSurface } from './scroll-surface';\nimport { SurfaceEffect } from './surface-effect';\nimport { Tooltip } from './overlays';\n\nexport interface PanelProps extends Omit<HTMLAttributes<HTMLElement>, 'title'> { title?: ReactNode; actions?: ReactNode; density?: 'comfortable' | 'compact'; classNames?: { header?: string; body?: string }; children?: ReactNode }\nexport const Panel = forwardRef<HTMLElement, PanelProps>(function Panel({ title, actions, density = 'comfortable', classNames, className, children, ...props }, ref) {\n const id = useId();\n const surface = useContext(PanelSurfaceContext);\n if (surface === 'bento') return <BentoPanel {...props} className={cx('monkeys-ui-bento-panel', className)}>\n <ScrollSurface ref={ref} aria-labelledby={title ? id : props['aria-labelledby']} className=\"monkeys-ui-bento-scroll\">\n {title || actions ? <div className={cx('monkeys-ui-panel-header', classNames?.header)}>{title ? <h2 id={id}>{title}</h2> : null}{actions}</div> : null}\n <div className={cx('monkeys-ui-panel-body', classNames?.body)}>{children}</div>\n </ScrollSurface>\n </BentoPanel>;\n return <ScrollSurface {...props} ref={ref} data-density={density} aria-labelledby={title ? id : props['aria-labelledby']} className={cx('monkeys-ui-panel', className)}>{title || actions ? <div className={cx('monkeys-ui-panel-header', classNames?.header)}>{title ? <h2 id={id}>{title}</h2> : null}{actions}</div> : null}<div className={cx('monkeys-ui-panel-body', classNames?.body)}>{children}</div></ScrollSurface>;\n});\nexport interface PageShellProps extends HTMLAttributes<HTMLDivElement> { header?: ReactNode; classNames?: { main?: string } }\nexport function PageShell({ header, className, classNames, children, ...props }: PageShellProps) { return <div {...props} className={cx('monkeys-ui-page', className)}>{header}<main className={cx('monkeys-ui-page-main', classNames?.main)}>{children}</main></div>; }\nexport interface AppHeaderProps extends HTMLAttributes<HTMLElement> { logo: ReactNode; navigation?: ReactNode; account?: ReactNode }\nexport function AppHeader({ logo, navigation, account, className, ...props }: AppHeaderProps) { return <header {...props} className={cx('monkeys-ui-header', className)}><div className=\"monkeys-ui-header-logo\">{logo}</div><nav aria-label=\"主导航\" className=\"monkeys-ui-header-nav\">{navigation}</nav><div className=\"monkeys-ui-header-account\">{account}</div></header>; }\nexport interface SplitLayoutProps extends HTMLAttributes<HTMLDivElement> { sidebar: ReactNode; side?: 'start' | 'end'; sidebarWidth?: string }\nexport function SplitLayout({ sidebar, side = 'start', sidebarWidth = '252px', children, className, style, ...props }: SplitLayoutProps) { return <div {...props} data-side={side} className={cx('monkeys-ui-split', className)} style={{ '--monkeys-ui-sidebar-width': sidebarWidth, ...style } as CSSProperties}><div className=\"monkeys-ui-split-sidebar\">{sidebar}</div><div className=\"monkeys-ui-split-main\">{children}</div></div>; }\nexport interface CollectionToolbarProps extends HTMLAttributes<HTMLDivElement> { search?: ReactNode; filters?: ReactNode; actions?: ReactNode }\nexport function CollectionToolbar({ search, filters, actions, className, ...props }: CollectionToolbarProps) { return <div {...props} className={cx('monkeys-ui-toolbar', className)}><div className=\"monkeys-ui-toolbar-search\">{search}</div>{filters}<div className=\"monkeys-ui-toolbar-actions\">{actions}</div></div>; }\nexport interface CollectionSectionProps extends Omit<HTMLAttributes<HTMLElement>, 'title'> { title: ReactNode; action?: ReactNode; lead?: ReactNode }\nexport function CollectionSection({ title, action, lead, children, className, ...props }: CollectionSectionProps) { const id = useId(); return <section {...props} aria-labelledby={id} data-layout={lead ? 'featured' : undefined} className={cx('monkeys-ui-collection', className)}><div className={cx('monkeys-ui-collection-heading', !!lead && !action && 'monkeys-ui-visually-hidden')}><h2 id={id} tabIndex={-1} className={lead ? 'monkeys-ui-visually-hidden' : undefined}>{title}</h2>{action}</div>{lead ? <div className=\"monkeys-ui-collection-row\"><div className=\"monkeys-ui-collection-lead\">{lead}</div><div className=\"monkeys-ui-collection-members\">{children}</div></div> : children}</section>; }\nexport interface CardGridProps extends HTMLAttributes<HTMLDivElement> { view?: 'grid' | 'list'; minCardWidth?: number; columnGap?: number }\nexport function CardGrid({ view = 'grid', minCardWidth = 178, columnGap, className, style, ...props }: CardGridProps) { return <div {...props} role=\"list\" data-view={view} className={cx('monkeys-ui-card-grid', className)} style={{ '--monkeys-ui-card-width': minCardWidth + 'px', ...(columnGap !== undefined ? { '--monkeys-ui-grid-column-gap': columnGap + 'px' } : {}), ...style } as CSSProperties} />; }\nexport interface CardProps extends Omit<HTMLAttributes<HTMLElement>, 'title' | 'content'> {\n title: ReactNode;\n variant?: 'card' | 'row' | 'detail' | 'preview' | 'content';\n /** Let a containing panel own the surface while preserving card content and interactions.\n * Add data-frame=\"bento\" to adapt detail borders and inset to the containing Bento tokens. */\n chrome?: 'card' | 'plain';\n selected?: boolean;\n onSelectedChange?: (selected: boolean) => void;\n size?: 'sm' | 'md' | 'lg';\n headingLevel?: 1 | 2 | 3 | 4 | 5 | 6;\n image?: string;\n imageAlt?: string;\n imagePosition?: string;\n imageStyle?: CSSProperties;\n media?: ReactNode;\n mediaOverlay?: ReactNode;\n emptyMedia?: ReactNode;\n href?: string;\n onOpen?: () => void;\n header?: ReactNode;\n /** Opt out of the detail breadcrumb chip without changing its content or actions. */\n breadcrumbSurface?: 'default' | 'transparent';\n meta?: ReactNode;\n /** Revealed on hover/focus for compact layouts; always visible in detail. Supplied by the host. */\n description?: ReactNode;\n content?: ReactNode;\n stats?: StatItem[];\n actions?: ReactNode;\n navigation?: ReactNode;\n navigationLabel?: string;\n footer?: ReactNode;\n classNames?: { image?: string; content?: string; actions?: string; heading?: string; media?: string };\n}\n/** Presentation only. Fields, formatting, labels and action contents belong to the host. */\nexport const Card = forwardRef<HTMLElement, CardProps>(function Card({ title, variant = 'card', chrome = 'card', selected, onSelectedChange, size, headingLevel, image, imageAlt = '', imagePosition, imageStyle, media, mediaOverlay, emptyMedia, href, onOpen, header, breadcrumbSurface = 'default', meta, description, content, children, stats = [], actions, navigation, navigationLabel, footer, className, classNames, ...props }, ref) {\n const [failedSource, setFailedSource] = useState<string>();\n const id = useId();\n const detail = variant === 'detail';\n const hasDescription = description !== undefined && description !== null && description !== false && description !== '';\n const hasEntry = variant !== 'preview' && !!(onSelectedChange || href || onOpen);\n const descriptionId = id + '-description';\n const describedBy = [props['aria-describedby'], hasDescription ? descriptionId : undefined].filter(Boolean).join(' ') || undefined;\n const Heading = `h${headingLevel ?? (detail ? 1 : 3)}` as 'h1' | 'h2' | 'h3' | 'h4' | 'h5' | 'h6';\n const tooltipTitle = detail && typeof title === 'string' && title.length > 0;\n const headingContent = <Heading id={id} className={cx('monkeys-ui-record-heading', classNames?.heading)} tabIndex={tooltipTitle ? 0 : undefined} title={!detail && typeof title === 'string' ? title : undefined}>{title}</Heading>;\n const heading = tooltipTitle ? <Tooltip content={title}>{headingContent}</Tooltip> : headingContent;\n const mediaContent = media ?? (image && failedSource !== image ? <img className={cx(detail ? 'monkeys-ui-sidebar-image' : 'monkeys-ui-record-card-image', classNames?.image)} src={image} alt={imageAlt} style={{ objectPosition: imagePosition, ...imageStyle }} onError={() => setFailedSource(image)} loading=\"lazy\" /> : emptyMedia ?? (!detail ? <div className=\"monkeys-ui-media-placeholder\" aria-label=\"暂无图片\"><ImageOff size={32} aria-hidden=\"true\" /></div> : null));\n const statistics = stats.length ? <StatGroup items={stats} /> : null;\n const body = content ?? children;\n if (detail) return <ScrollSurface as=\"aside\" {...props} ref={ref} aria-labelledby={props['aria-label'] ? undefined : id} data-variant={variant} data-chrome={chrome === 'plain' ? chrome : undefined} className={cx('monkeys-ui-card', 'monkeys-ui-record-detail', className)}><div className={cx('monkeys-ui-sidebar-media', classNames?.media)}>{mediaContent}{mediaOverlay}</div><div className=\"monkeys-ui-sidebar-header\"><div className=\"monkeys-ui-breadcrumbs\" data-surface={breadcrumbSurface === 'transparent' ? 'transparent' : undefined}>{header}</div>{actions ? <div className={cx('monkeys-ui-sidebar-header-actions', classNames?.actions)}>{actions}</div> : null}</div><div className={cx('monkeys-ui-sidebar-details', classNames?.content)}><SurfaceEffect variant=\"chroma\" />{heading}{meta ? <div className=\"monkeys-ui-sidebar-meta\">{meta}</div> : null}{description ? <div className=\"monkeys-ui-description\">{description}</div> : null}{body}{statistics}{navigation ? <nav aria-label={navigationLabel ?? '记录导航'} className=\"monkeys-ui-sidebar-navigation\">{navigation}</nav> : null}{footer ? <div className=\"monkeys-ui-sidebar-actions\">{footer}</div> : null}</div></ScrollSurface>;\n return <article {...props} ref={ref} aria-labelledby={props['aria-label'] ? undefined : id} aria-describedby={hasEntry ? props['aria-describedby'] : describedBy} tabIndex={props.tabIndex ?? (hasDescription && !hasEntry ? 0 : undefined)} data-variant={variant} data-chrome={chrome === 'plain' ? chrome : undefined} data-selected={selected || undefined} data-size={size} data-preview={variant === 'preview' || undefined} className={cx('monkeys-ui-card', 'monkeys-ui-record-card', className)}>\n {variant === 'content' && !media && !image ? null : media !== undefined ? <div className={cx('monkeys-ui-record-media', classNames?.media)}>{mediaContent}</div> : mediaContent}\n {mediaOverlay ? <div className=\"monkeys-ui-media-overlay\">{mediaOverlay}</div> : null}{header}\n {hasEntry && (onSelectedChange ? <button type=\"button\" aria-pressed={selected ?? false} onClick={() => onSelectedChange(!selected)} aria-labelledby={id} aria-describedby={describedBy} className=\"monkeys-ui-card-entry\" /> : href ? <a href={href} aria-labelledby={id} aria-describedby={describedBy} className=\"monkeys-ui-card-entry\" /> : <button type=\"button\" onClick={onOpen} aria-labelledby={id} aria-describedby={describedBy} className=\"monkeys-ui-card-entry\" />)}\n {selected ? <span className=\"monkeys-ui-card-selection-mark\" aria-hidden=\"true\"><Check size={14} /></span> : null}\n <div className={cx('monkeys-ui-card-info', classNames?.content)}>\n {heading}{meta}{body}{statistics}\n {hasDescription ? <div className=\"monkeys-ui-card-description\"><div className=\"monkeys-ui-card-description-clip\"><div id={descriptionId} className=\"monkeys-ui-description\">{description}</div></div></div> : null}\n </div>\n {actions ? <div className={cx('monkeys-ui-card-actions', classNames?.actions)}>{actions}</div> : null}{footer}\n </article>;\n});\nexport interface StatItem { label: string; value: ReactNode }\nexport interface StatGroupProps extends HTMLAttributes<HTMLDListElement> { items: StatItem[] }\nexport function StatGroup({ items, className, ...props }: StatGroupProps) { return <dl {...props} className={cx('monkeys-ui-stats', className)}>{items.map(item => <div key={item.label}><dt>{item.label}</dt><dd>{item.value}</dd></div>)}</dl>; }\n","import { type HTMLAttributes, type ReactNode } from 'react';\nimport { Button } from './controls';\nimport { cx } from './internal';\nimport { Plus, X } from 'lucide-react';\n\nexport interface DesignElementItem { id: string; label: string; content?: ReactNode }\nexport interface DesignElementFieldProps extends HTMLAttributes<HTMLDivElement> { label: string; items: DesignElementItem[]; onAdd?: () => void; onRemove?: (id: string) => void; renderItem?: (item: DesignElementItem) => ReactNode }\nexport function DesignElementField({ label, items, onAdd, onRemove, renderItem, className, ...props }: DesignElementFieldProps) { return <div {...props} role=\"group\" aria-label={label} className={cx('monkeys-ui-design-elements', className)}><div className=\"monkeys-ui-label\">{label}</div><div className=\"monkeys-ui-element-items\">{!items.length ? <div className=\"monkeys-ui-element\" aria-hidden=\"true\" /> : null}{items.map(item => <div key={item.id} className=\"monkeys-ui-element\"><div>{renderItem?.(item) ?? item.content ?? item.label}</div><span>{item.label}</span>{onRemove ? <Button shape=\"icon\" aria-label={'移除 ' + item.label} onClick={() => onRemove(item.id)}><X size={14} aria-hidden=\"true\" /></Button> : null}</div>)}{onAdd ? <Button shape=\"icon\" aria-label={'添加' + label} onClick={onAdd}><Plus size={14} aria-hidden=\"true\" /></Button> : null}</div></div>; }\n","import { forwardRef, useId, useRef, type HTMLAttributes, type ReactNode } from 'react';\nimport { Button } from './controls';\nimport { Notice } from './overlays';\nimport { cx } from './internal';\nimport { Plus, X, ImageOff } from 'lucide-react';\n\nexport interface ImageFileRejection { file: File; reason: 'type' | 'size' | 'duplicate' }\nexport interface ImageValidationOptions { accept?: readonly string[]; maxFileBytes?: number; existingFiles?: ReadonlyArray<Pick<File, 'name' | 'size' | 'lastModified'>> }\nconst defaultAccept = ['image/jpeg', 'image/png'];\nconst identity = (file: Pick<File, 'name' | 'size' | 'lastModified'>) => `${file.name}:${file.size}:${file.lastModified}`;\n/** Shared by selection, drop and paste. Decoding is a separate host operation. */\nexport function validateImageFiles(files: readonly File[], { accept = defaultAccept, maxFileBytes = Infinity, existingFiles = [] }: ImageValidationOptions = {}) {\n const seen = new Set(existingFiles.map(identity));\n const accepted: File[] = [];\n const rejected: ImageFileRejection[] = [];\n for (const file of files) {\n const key = identity(file);\n const reason = !accept.some(type => type.endsWith('/*') ? file.type.startsWith(type.slice(0, -1)) : type === file.type) ? 'type' : file.size > maxFileBytes ? 'size' : seen.has(key) ? 'duplicate' : undefined;\n if (reason) rejected.push({ file, reason });\n else { seen.add(key); accepted.push(file); }\n }\n return { accepted, rejected };\n}\nexport interface UploadedImage { id: string; name: string; src?: string; status: 'pending' | 'ready' | 'error'; progress?: number; error?: string }\nexport interface UploadedImageItemProps extends Omit<HTMLAttributes<HTMLDivElement>, 'onSelect'> { item: UploadedImage; onRemove?: () => void; onRetry?: () => void; onSelectCover?: () => void; cover?: boolean; disabled?: boolean }\nexport const UploadedImageItem = forwardRef<HTMLDivElement, UploadedImageItemProps>(function UploadedImageItem({ item, onRemove, onRetry, onSelectCover, cover, disabled, className, ...props }, ref) {\n return <div {...props} ref={ref} className={cx('monkeys-ui-uploaded-image', className)} data-state={item.status} aria-label={item.name} aria-busy={item.status === 'pending'}>{item.src ? <img src={item.src} alt={item.name} /> : <ImageOff size={24} aria-hidden=\"true\" />}<div className=\"monkeys-ui-uploaded-info\"><span title={item.name}>{item.name}</span>{item.status === 'pending' ? <><span role=\"status\">上传中</span>{item.progress != null ? <progress aria-label={item.name + ' 上传进度'} value={item.progress} max={100} /> : null}</> : null}{item.status === 'error' ? <><span role=\"alert\">{item.error ?? '上传失败'}</span>{onRetry ? <Button size=\"sm\" disabled={disabled} onClick={onRetry}>重试</Button> : null}</> : null}{onSelectCover && item.status !== 'error' ? <Button size=\"sm\" disabled={disabled} aria-pressed={cover} onClick={onSelectCover}>{cover ? '封面' : '设为封面'}</Button> : null}</div>{onRemove ? <Button shape=\"icon\" aria-label={'移除 ' + item.name} className=\"monkeys-ui-upload-remove\" size=\"sm\" disabled={disabled} onClick={onRemove}><X size={14} aria-hidden=\"true\" /></Button> : null}</div>;\n});\nexport interface ImageUploadFieldProps extends Omit<HTMLAttributes<HTMLDivElement>, 'onChange'>, ImageValidationOptions { label?: string; description?: ReactNode; items: UploadedImage[]; disabled?: boolean; onFilesSelected: (files: File[]) => void; onRejected?: (rejections: ImageFileRejection[]) => void; onRemove?: (id: string) => void; onRetry?: (id: string) => void; onSelectCover?: (id: string) => void; coverId?: string; error?: string }\nexport const ImageUploadField = forwardRef<HTMLDivElement, ImageUploadFieldProps>(function ImageUploadField({ id: explicitId, label = '上传图片', description, items, disabled, accept = defaultAccept, maxFileBytes, existingFiles, onFilesSelected, onRejected, onRemove, onRetry, onSelectCover, coverId, error, className, onDrop, onPaste, onDragOver, ...props }, ref) {\n const generated = useId(); const id = explicitId ?? generated;\n const input = useRef<HTMLInputElement>(null);\n function receive(files: File[]) { if (disabled) return; const result = validateImageFiles(files, { accept, maxFileBytes, existingFiles }); if (result.rejected.length) onRejected?.(result.rejected); if (result.accepted.length) onFilesSelected(result.accepted); }\n return <div {...props} ref={ref} id={id} role=\"group\" aria-label={label} aria-describedby={description ? id + '-description' : undefined} className={cx('monkeys-ui-upload', className)} onDragOver={event => { onDragOver?.(event); if (!disabled && event.dataTransfer.types.includes('Files')) event.preventDefault(); }} onDrop={event => { onDrop?.(event); if (!event.defaultPrevented && event.dataTransfer.files.length) { event.preventDefault(); receive(Array.from(event.dataTransfer.files)); } }} onPaste={event => { onPaste?.(event); if (!event.defaultPrevented && event.clipboardData.files.length) { event.preventDefault(); receive(Array.from(event.clipboardData.files)); } }}><div className=\"monkeys-ui-label\">{label}</div><div className=\"monkeys-ui-upload-items\"><Button className=\"monkeys-ui-upload-target\" variant=\"outline\" disabled={disabled} onClick={() => input.current?.click()} aria-describedby={description ? id + '-description' : undefined}><Plus size={28} aria-hidden=\"true\" /><span>选择、拖入或粘贴图片</span></Button><input className=\"monkeys-ui-visually-hidden\" ref={input} type=\"file\" tabIndex={-1} accept={accept.join(',')} multiple disabled={disabled} aria-label={label} onChange={event => { receive(Array.from(event.currentTarget.files ?? [])); event.currentTarget.value = ''; }} />{items.map(item => <UploadedImageItem key={item.id} item={item} disabled={disabled} cover={item.id === coverId} onRemove={onRemove ? () => onRemove(item.id) : undefined} onRetry={onRetry ? () => onRetry(item.id) : undefined} onSelectCover={onSelectCover ? () => onSelectCover(item.id) : undefined} />)}</div>{description ? <div className=\"monkeys-ui-description\" id={id + '-description'}>{description}</div> : null}{error ? <Notice tone=\"danger\">{error}</Notice> : null}</div>;\n});\n","import { forwardRef, useState, type CSSProperties, type FormHTMLAttributes, type HTMLAttributes, type MouseEventHandler, type ReactNode } from 'react';\nimport { MoreHorizontal, Bookmark, LocateFixed } from 'lucide-react';\nimport { Button, SectionTitle, ToggleButton } from './controls';\nimport { Panel, type PanelProps } from './collection';\nimport { Badge, Menu, Notice, type MenuItem } from './overlays';\nimport { cx } from './internal';\nimport { SurfaceEffect } from './surface-effect';\nimport { sampleInk } from './sample-color';\n\nexport interface StackProps extends HTMLAttributes<HTMLDivElement> {\n direction?: 'vertical' | 'horizontal';\n gap?: number;\n wrap?: boolean;\n}\n/** Layout only: children keep their own semantics and keyboard order. */\nexport const Stack = forwardRef<HTMLDivElement, StackProps>(function Stack({ direction = 'vertical', gap = 16, wrap, className, style, ...props }, ref) {\n return <div {...props} ref={ref} className={cx('monkeys-ui-stack', className)} data-direction={direction} style={{ flexDirection: direction === 'vertical' ? 'column' : 'row', gap, flexWrap: wrap ? 'wrap' : undefined, ...style }} />;\n});\n\nexport interface BreadcrumbItem {\n id: string;\n label: ReactNode;\n href?: string;\n onClick?: MouseEventHandler<HTMLButtonElement>;\n}\nexport interface BreadcrumbsProps extends HTMLAttributes<HTMLElement> { items: BreadcrumbItem[] }\nexport function Breadcrumbs({ items, className, 'aria-label': label = '面包屑', ...props }: BreadcrumbsProps) {\n return <nav {...props} aria-label={label} className={cx('monkeys-ui-breadcrumb-trail', className)}><ol>{items.map((item, index) => {\n const current = index === items.length - 1;\n return <li key={item.id}>{index > 0 ? <span aria-hidden=\"true\" className=\"monkeys-ui-breadcrumb-separator\">&gt;</span> : null}{current ? <span aria-current=\"page\">{item.label}</span> : item.href ? <a href={item.href}>{item.label}</a> : item.onClick ? <button type=\"button\" onClick={item.onClick}>{item.label}</button> : <span>{item.label}</span>}</li>;\n })}</ol></nav>;\n}\n\nexport interface BrandMarkProps extends HTMLAttributes<HTMLSpanElement> {\n label: string;\n image?: string;\n variant?: 'inline' | 'overlay';\n}\nexport function BrandMark({ label, image, variant = 'inline', className, ...props }: BrandMarkProps) {\n const [failedSource, setFailedSource] = useState<string>();\n return <span {...props} role=\"img\" aria-label={label} className={cx('monkeys-ui-brand-mark', className)} data-variant={variant}>{image && image !== failedSource ? <img src={image} alt=\"\" onError={() => setFailedSource(image)} /> : label}</span>;\n}\n\nexport interface BrandBannerProps extends PanelProps { description?: ReactNode; search?: ReactNode; caption?: ReactNode }\nexport function BrandBanner({ description, search, caption, children, className, ...props }: BrandBannerProps) {\n return <Panel {...props} className={cx('monkeys-ui-brand-banner', className)}><SurfaceEffect variant=\"banner\" />{description ? <p className=\"monkeys-ui-description\">{description}</p> : null}{search}{caption ? <div className=\"monkeys-ui-brand-caption\">{caption}</div> : null}{children}</Panel>;\n}\n\nexport interface CardGridItemProps extends HTMLAttributes<HTMLDivElement> {}\nexport const CardGridItem = forwardRef<HTMLDivElement, CardGridItemProps>(function CardGridItem({ className, ...props }, ref) {\n return <div {...props} ref={ref} role=\"listitem\" className={cx('monkeys-ui-card-grid-item', className)} />;\n});\n\nexport interface CardActionsProps {\n label: string;\n monitored?: boolean;\n monitorPending?: boolean;\n onMonitoredChange?: (value: boolean) => void;\n favorite?: boolean;\n favoritePending?: boolean;\n onFavoriteChange?: (value: boolean) => void;\n menuItems?: MenuItem[];\n menuLabel?: string;\n onMenuCloseAutoFocus?: (event: Event) => void;\n}\n/** Host owns requests, optimistic rollback and the focus target after deletion. */\nexport function CardActions({ label, monitored, monitorPending, onMonitoredChange, favorite, favoritePending, onFavoriteChange, menuItems = [], menuLabel, onMenuCloseAutoFocus }: CardActionsProps) {\n return <>{onMonitoredChange ? <ToggleButton shape=\"icon\" aria-label={'监测 ' + label} data-monitored={monitored || undefined} size=\"sm\" variant=\"ghost\" checked={monitored ?? false} loading={monitorPending} onCheckedChange={onMonitoredChange}><LocateFixed size={14} fill={monitored ? 'currentColor' : 'none'} aria-hidden=\"true\" /></ToggleButton> : null}{onFavoriteChange ? <ToggleButton shape=\"icon\" aria-label={'收藏 ' + label} size=\"sm\" variant=\"ghost\" checked={favorite ?? false} loading={favoritePending} onCheckedChange={onFavoriteChange}><Bookmark size={14} fill={favorite ? 'currentColor' : 'none'} aria-hidden=\"true\" /></ToggleButton> : null}{menuItems.length ? <Menu label={menuLabel ?? label + ' 操作'} trigger={<Button shape=\"icon\" aria-label={'更多 ' + label}><MoreHorizontal size={16} aria-hidden=\"true\" /></Button>} onCloseAutoFocus={onMenuCloseAutoFocus} items={menuItems} /> : null}</>;\n}\n\nexport interface FormPanelProps extends Omit<FormHTMLAttributes<HTMLFormElement>, 'title'> {\n title: ReactNode;\n description?: ReactNode;\n actions?: ReactNode;\n}\n/** Ref and native form props are forwarded to the form, not the outer Panel. */\nexport const FormPanel = forwardRef<HTMLFormElement, FormPanelProps>(function FormPanel({ title, description, actions, children, className, ...props }, ref) {\n return <Panel className=\"monkeys-ui-form-panel\"><form {...props} ref={ref} className={className}><div className=\"monkeys-ui-form-header\"><div><SectionTitle as=\"h1\">{title}</SectionTitle>{description ? <p>{description}</p> : null}</div>{actions ? <div className=\"monkeys-ui-form-actions\">{actions}</div> : null}</div><div className=\"monkeys-ui-form-body\">{children}</div></form></Panel>;\n});\n\nexport interface FormGridProps extends HTMLAttributes<HTMLDivElement> { variant?: 'standard' | 'compact' }\nexport function FormGrid({ variant = 'standard', className, children, ...props }: FormGridProps) {\n return <div {...props} className={cx('monkeys-ui-form-grid', className)} data-variant={variant}><div className=\"monkeys-ui-form-grid-content\">{children}</div></div>;\n}\n\nexport type DesignElementKind = 'color' | 'fabric' | 'silhouette' | 'pattern' | 'technique' | 'accessory';\nexport interface DesignElementPreviewProps extends HTMLAttributes<HTMLSpanElement> {\n variant?: 'plain' | 'labelled';\n header?: ReactNode;\n details?: ReactNode;\n kind?: DesignElementKind;\n label: string;\n image?: string;\n color?: string;\n secondaryColor?: string;\n}\n/** Color values and images describe the host's sample, not the UI theme. */\nexport function DesignElementPreview({ kind = 'color', variant = 'plain', header, details, label, image, color, secondaryColor, className, style, ...props }: DesignElementPreviewProps) {\n return <span {...props} role=\"img\" aria-label={label} data-kind={kind} data-variant={variant} data-ink={sampleInk(color)} className={cx('monkeys-ui-element-preview', className)} style={{ '--monkeys-ui-sample-color': color, '--monkeys-ui-sample-secondary': secondaryColor, ...style } as CSSProperties}>{image ? <img src={image} alt=\"\" /> : null}{variant === 'labelled' ? <><span className=\"monkeys-ui-swatch-header\">{header}</span><span className=\"monkeys-ui-swatch-details\">{details}</span></> : null}</span>;\n}\n\nexport interface PreviewPanelProps extends PanelProps {\n state?: 'empty' | 'pending' | 'ready' | 'error';\n pendingLabel?: string;\n emptyMessage?: ReactNode;\n errorMessage?: ReactNode;\n}\n/** Generic preview surface. Supply children and all labels. */\nexport function PreviewPanel({ children, state = 'ready', pendingLabel, emptyMessage, errorMessage, className, ...props }: PreviewPanelProps) {\n return <Panel {...props} className={cx('monkeys-ui-preview-panel', className)}><div className=\"monkeys-ui-preview-panel-card\">{children}{state === 'pending' && pendingLabel ? <Badge>{pendingLabel}</Badge> : null}{state === 'empty' && emptyMessage ? <span className=\"monkeys-ui-description\">{emptyMessage}</span> : null}{state === 'error' && errorMessage ? <Notice tone=\"danger\">{errorMessage}</Notice> : null}</div></Panel>;\n}\n\nexport interface NoticeRegionProps extends HTMLAttributes<HTMLElement> { position?: 'bottom-end' | 'top-end' }\nexport function NoticeRegion({ position = 'bottom-end', className, 'aria-label': label = '通知', ...props }: NoticeRegionProps) {\n return <aside {...props} aria-label={label} className={cx('monkeys-ui-notice-region', className)} data-position={position} />;\n}\n","import { useEffect, useState, type ComponentProps, type CSSProperties, type HTMLAttributes } from 'react';\nimport { cx } from './internal';\n\ntype ShaderModule = typeof import('shaders/react');\ntype AuroraShaderProps = ComponentProps<ShaderModule['Aurora']>;\ntype ChromaFlowShaderProps = ComponentProps<ShaderModule['ChromaFlow']>;\ntype LightEdgeShaderProps = ComponentProps<ShaderModule['LightEdge']>;\ntype EffectHostProps = Omit<HTMLAttributes<HTMLDivElement>, 'children'> & {\n onUnavailable?: (reason: string) => void;\n};\n\nfunction useShaderModule() {\n const [module, setModule] = useState<ShaderModule | null>(null);\n useEffect(() => {\n let active = true;\n import('shaders/react').then(loaded => {\n if (active) setModule(loaded);\n });\n return () => { active = false; };\n }, []);\n return module;\n}\n\nexport interface AuroraProps extends EffectHostProps, Partial<AuroraShaderProps> {}\nexport function Aurora({ className, style, onUnavailable, ...props }: AuroraProps) {\n const module = useShaderModule();\n const [ready, setReady] = useState(false);\n const hostStyle: CSSProperties = { height: 240, ...style, position: 'relative', overflow: 'hidden' };\n return <div className={cx('monkeys-ui-shader-effect', className)} style={hostStyle}>\n {!ready ? <div aria-hidden=\"true\" className=\"monkeys-ui-shader-fallback\" data-effect=\"aurora\" /> : null}\n {module ? <module.Shader style={{ width: '100%', height: '100%' }} onReady={() => setReady(true)} onUnavailable={onUnavailable}><module.Aurora {...props} /></module.Shader> : null}\n </div>;\n}\n\nexport interface ChromaFlowProps extends EffectHostProps, Partial<ChromaFlowShaderProps> {}\nexport function ChromaFlow({ className, style, onUnavailable, ...props }: ChromaFlowProps) {\n const module = useShaderModule();\n const [ready, setReady] = useState(false);\n const hostStyle: CSSProperties = { height: 240, ...style, position: 'relative', overflow: 'hidden' };\n return <div className={cx('monkeys-ui-shader-effect', className)} style={hostStyle}>\n {!ready ? <div aria-hidden=\"true\" className=\"monkeys-ui-shader-fallback\" data-effect=\"chroma\" /> : null}\n {module ? <module.Shader style={{ width: '100%', height: '100%' }} onReady={() => setReady(true)} onUnavailable={onUnavailable}><module.ChromaFlow {...props} /></module.Shader> : null}\n </div>;\n}\n\nexport interface LightEdgeProps extends EffectHostProps, Partial<LightEdgeShaderProps> {}\nexport function LightEdge({ className, style, onUnavailable, ...props }: LightEdgeProps) {\n const module = useShaderModule();\n const [ready, setReady] = useState(false);\n const hostStyle: CSSProperties = { height: 240, ...style, position: 'relative', overflow: 'hidden' };\n return <div className={cx('monkeys-ui-shader-effect', className)} style={hostStyle}>\n {!ready ? <div aria-hidden=\"true\" className=\"monkeys-ui-shader-fallback\" data-effect=\"light-edge\" /> : null}\n {module ? <module.Shader style={{ width: '100%', height: '100%' }} onReady={() => setReady(true)} onUnavailable={onUnavailable}><module.LightEdge {...props} /></module.Shader> : null}\n </div>;\n}\n"]}