@splenddev/kreativ-core 0.0.1 → 0.1.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (44) hide show
  1. package/README.md +70 -13
  2. package/dist/{common-CxqD2cxB.d.cts → common-1QyKLdTc.d.cts} +1 -1
  3. package/dist/{common-CxqD2cxB.d.ts → common-1QyKLdTc.d.ts} +1 -1
  4. package/dist/{hooks.cjs → hooks/index.cjs} +2 -2
  5. package/dist/hooks/index.cjs.map +1 -0
  6. package/dist/{hooks.d.ts → hooks/index.d.cts} +10 -4
  7. package/dist/{hooks.d.cts → hooks/index.d.ts} +10 -4
  8. package/dist/{hooks.js → hooks/index.js} +2 -2
  9. package/dist/hooks/index.js.map +1 -0
  10. package/dist/index.cjs +25 -1039
  11. package/dist/index.cjs.map +1 -1
  12. package/dist/index.d.cts +351 -7
  13. package/dist/index.d.ts +351 -7
  14. package/dist/index.js +26 -1010
  15. package/dist/index.js.map +1 -1
  16. package/dist/types/index.cjs +4 -0
  17. package/dist/types/index.cjs.map +1 -0
  18. package/dist/{types.d.ts → types/index.d.cts} +2 -2
  19. package/dist/{types.d.cts → types/index.d.ts} +2 -2
  20. package/dist/types/index.js +3 -0
  21. package/dist/types/index.js.map +1 -0
  22. package/dist/{utils.cjs → utils/index.cjs} +2 -2
  23. package/dist/utils/index.cjs.map +1 -0
  24. package/dist/{utils.d.cts → utils/index.d.cts} +1 -1
  25. package/dist/{utils.d.ts → utils/index.d.ts} +1 -1
  26. package/dist/{utils.js → utils/index.js} +2 -2
  27. package/dist/utils/index.js.map +1 -0
  28. package/package.json +1 -6
  29. package/dist/hooks.cjs.map +0 -1
  30. package/dist/hooks.js.map +0 -1
  31. package/dist/theme.cjs +0 -1183
  32. package/dist/theme.cjs.map +0 -1
  33. package/dist/theme.d.cts +0 -2724
  34. package/dist/theme.d.ts +0 -2724
  35. package/dist/theme.js +0 -1142
  36. package/dist/theme.js.map +0 -1
  37. package/dist/types.cjs +0 -4
  38. package/dist/types.cjs.map +0 -1
  39. package/dist/types.js +0 -3
  40. package/dist/types.js.map +0 -1
  41. package/dist/useColorMode-B7eyS27H.d.ts +0 -10
  42. package/dist/useColorMode-tvcgvc4V.d.cts +0 -10
  43. package/dist/utils.cjs.map +0 -1
  44. package/dist/utils.js.map +0 -1
package/dist/theme.js.map DELETED
@@ -1 +0,0 @@
1
- {"version":3,"sources":["../src/define/semanticToken.ts","../src/defaults/semanticTokens.ts","../src/define/size.ts","../src/defaults/sizes.ts","../src/define/token.ts","../src/defaults/tokens.ts","../src/define/typography.ts","../src/defaults/typography.ts","../src/define/recipe.ts","../src/runtime/validateCycles.ts","../src/define/theme.ts","../src/defaults/recipes/button.ts","../src/defaults/recipes/formControl.ts","../src/defaults/recipes/input.ts","../src/defaults/recipes/textarea.ts","../src/defaults/recipes/markdownEditor.ts","../src/defaults/recipes/checkbox.ts","../src/defaults/recipes/buttonGroup.ts","../src/defaults/recipes/switch.ts","../src/defaults/recipes/container.ts","../src/defaults/recipes/link.ts","../src/defaults/theme.ts","../src/utils/deepMerge.ts","../src/extend/tokens.ts","../src/extend/sizes.ts","../src/extend/typography.ts","../src/extend/recipes.ts","../src/extend/theme.ts"],"names":["defaultRecipes"],"mappings":"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","file":"theme.js","sourcesContent":["import type { SemanticToken, TokenValue } from \"@/types\";\n\n/**\n * Defines a semantic token that shares a single value across both\n * light and dark modes (the explicit sameForBothModes shorthand).\n */\nexport function defineSemanticToken<T extends TokenValue>(\n value: T,\n): SemanticToken<T>;\n/**\n * Defines a semantic token with distinct light and dark values.\n */\nexport function defineSemanticToken<T extends TokenValue>(\n light: T,\n dark: T,\n): SemanticToken<T>;\nexport function defineSemanticToken<T extends TokenValue>(\n lightOrValue: T,\n dark?: T,\n): SemanticToken<T> {\n if (dark === undefined) {\n return {\n value: {\n sameForBothModes: true,\n value: lightOrValue,\n },\n };\n }\n\n return {\n value: {\n sameForBothModes: false,\n light: lightOrValue,\n dark,\n },\n };\n}\n\ntype SemanticTokenInput<T extends TokenValue> = T | { light: T; dark: T };\n\nexport function defineSemanticTokens<\n T extends Record<string, SemanticTokenInput<TokenValue>>,\n>(\n tokens: T,\n): {\n [K in keyof T]: SemanticToken<T[K] extends { light: infer V; dark: infer _ }\n ? V extends TokenValue\n ? V\n : never\n : T[K] extends TokenValue\n ? T[K]\n : never>;\n} {\n return Object.fromEntries(\n Object.entries(tokens).map(([key, entry]) => [\n key,\n entry !== null &&\n typeof entry === \"object\" &&\n \"light\" in entry &&\n \"dark\" in entry\n ? defineSemanticToken(entry.light, entry.dark)\n : defineSemanticToken(entry as TokenValue),\n ]),\n ) as ReturnType<typeof defineSemanticTokens<T>>;\n}\n","import type { SemanticTokens } from \"@/types\";\nimport { defineSemanticToken } from \"../define/semanticToken\";\n\nexport const defaultSemanticTokens = {\n colors: {\n brand: defineSemanticToken(\"{colors.blue.500}\", \"{colors.blue.400}\"),\n\n brandHover: defineSemanticToken(\"{colors.blue.600}\", \"{colors.blue.300}\"),\n\n brandFg: defineSemanticToken(\"{colors.white}\"),\n\n background: defineSemanticToken(\"{colors.gray.50}\", \"{colors.gray.950}\"),\n\n surface: defineSemanticToken(\"{colors.white}\", \"{colors.gray.900}\"),\n\n surfaceRaised: defineSemanticToken(\"{colors.gray.50}\", \"{colors.gray.800}\"),\n\n surfaceSunken: defineSemanticToken(\n \"{colors.gray.100}\",\n \"{colors.gray.950}\",\n ),\n\n border: defineSemanticToken(\"{colors.gray.200}\", \"{colors.gray.600}\"),\n\n text: defineSemanticToken(\"{colors.gray.900}\", \"{colors.gray.50}\"),\n\n textMuted: defineSemanticToken(\"{colors.gray.500}\", \"{colors.gray.400}\"),\n\n destructive: defineSemanticToken(\"{colors.red.500}\", \"{colors.red.400}\"),\n\n destructiveFg: defineSemanticToken(\"{colors.white}\"),\n\n destructiveHover: defineSemanticToken(\n \"{colors.red.600}\",\n \"{colors.red.300}\",\n ),\n\n success: defineSemanticToken(\"{colors.green.500}\", \"{colors.green.400}\"),\n\n successFg: defineSemanticToken(\"{colors.white}\"),\n\n successHover: defineSemanticToken(\n \"{colors.green.600}\",\n \"{colors.green.300}\",\n ),\n\n warning: defineSemanticToken(\"{colors.amber.500}\", \"{colors.amber.400}\"),\n\n warningFg: defineSemanticToken(\"{colors.black}\"),\n\n warningHover: defineSemanticToken(\n \"{colors.amber.600}\",\n \"{colors.amber.300}\",\n ),\n\n info: defineSemanticToken(\"{colors.cyan.500}\", \"{colors.cyan.400}\"),\n\n infoFg: defineSemanticToken(\"{colors.white}\"),\n\n infoHover: defineSemanticToken(\"{colors.cyan.600}\", \"{colors.cyan.300}\"),\n\n shadowColor: defineSemanticToken(\"{colors.gray.200}\", \"{colors.gray.600}\"),\n },\n} satisfies SemanticTokens;\n","import type { SizeScale, SizeToken } from \"@/types\";\n\nexport function defineSize<const T extends SizeToken>(size: T): T {\n return size;\n}\n\nexport function defineSizes<const T extends SizeScale>(sizes: T): T {\n return sizes;\n}\n","import { defineSizes } from \"../define/size\";\n\nexport const defaultSizes = defineSizes({\n xs: {\n height: \"1.75rem\",\n width: \"1.75rem\",\n paddingX: \"0.5rem\",\n fontSize: \"{typography.sizeXs}\",\n gap: \"0.25rem\",\n iconSize: \"0.75rem\",\n radius: \"0.65rem\",\n separatorSize: \"15px\",\n },\n sm: {\n height: \"2rem\",\n width: \"2rem\",\n paddingX: \"0.75rem\",\n fontSize: \"{typography.sizeSm}\",\n gap: \"0.375rem\",\n iconSize: \"0.875rem\",\n radius: \"0.8rem\",\n separatorSize: \"20px\",\n },\n md: {\n height: \"2.5rem\",\n width: \"2.5rem\",\n paddingX: \"1rem\",\n fontSize: \"{typography.sizeMd}\",\n gap: \"0.5rem\",\n iconSize: \"1rem\",\n radius: \"1rem\",\n separatorSize: \"25px\",\n },\n lg: {\n height: \"3rem\",\n width: \"3rem\",\n paddingX: \"1.25rem\",\n fontSize: \"{typography.sizeLg}\",\n gap: \"0.625rem\",\n iconSize: \"1.25rem\",\n radius: \"1.15rem\",\n separatorSize: \"30px\",\n },\n xl: {\n height: \"3.5rem\",\n width: \"3.5rem\",\n paddingX: \"1.5rem\",\n fontSize: \"{typography.sizeXl}\",\n gap: \"0.875rem\",\n iconSize: \"1.5rem\",\n radius: \"1.3rem\",\n separatorSize: \"35px\",\n },\n});\n","import type { TokenValue } from \"@/types\";\n\nexport function defineToken<T extends TokenValue>(value: T) {\n return {\n value,\n };\n}\n\nexport function defineTokens<T extends Record<string, TokenValue>>(tokens: T) {\n return Object.fromEntries(\n Object.entries(tokens).map(([key, value]) => [key, defineToken(value)]),\n ) as {\n [K in keyof T]: ReturnType<typeof defineToken<T[K]>>;\n };\n}\n","import type { DesignTokens } from \"@/types\";\nimport { defineToken } from \"../define/token\";\n\nexport const defaultTokens = {\n colors: {\n blue: {\n 300: defineToken(\"#5EA6ED\"),\n 400: defineToken(\"#4799EB\"),\n 500: defineToken(\"#1A80E6\"),\n 600: defineToken(\"#1773CF\"),\n },\n red: {\n 300: defineToken(\"#EB4747\"),\n 400: defineToken(\"#E83030\"),\n 500: defineToken(\"#E61A1A\"),\n 600: defineToken(\"#CF1717\"),\n },\n green: {\n 300: defineToken(\"#26D997\"),\n 400: defineToken(\"#22C388\"),\n 500: defineToken(\"#16A249\"),\n 600: defineToken(\"#12875C\"),\n },\n amber: {\n 300: defineToken(\"#F7B23B\"),\n 400: defineToken(\"#F6A823\"),\n 500: defineToken(\"#F59F0A\"),\n 600: defineToken(\"#D38909\"),\n },\n cyan: {\n 300: defineToken(\"#6CC3EF\"),\n 400: defineToken(\"#47B4EB\"),\n 500: defineToken(\"#1791CF\"),\n 600: defineToken(\"#137BAE\"),\n },\n indigo: {\n 300: defineToken(\"#818CF8\"),\n 400: defineToken(\"#6366F1\"),\n 500: defineToken(\"#4F46E5\"),\n 600: defineToken(\"#4338CA\"),\n },\n emerald: {\n 300: defineToken(\"#6EE7B7\"),\n 400: defineToken(\"#34D399\"),\n 500: defineToken(\"#10B981\"),\n 600: defineToken(\"#059669\"),\n },\n violet: {\n 300: defineToken(\"#A78BFA\"),\n 400: defineToken(\"#8B5CF6\"),\n 500: defineToken(\"#7C3AED\"),\n 600: defineToken(\"#6D28D9\"),\n },\n rose: {\n 300: defineToken(\"#FDA4AF\"),\n 400: defineToken(\"#FB7185\"),\n 500: defineToken(\"#F43F5E\"),\n 600: defineToken(\"#E11D48\"),\n },\n orange: {\n 300: defineToken(\"#FDBA74\"),\n 400: defineToken(\"#FB923C\"),\n 500: defineToken(\"#F97316\"),\n 600: defineToken(\"#EA580C\"),\n },\n gray: {\n 50: defineToken(\"#FAFAFA\"),\n 100: defineToken(\"#EBEBEB\"),\n 200: defineToken(\"#D9D9D9\"),\n 300: defineToken(\"#BDBDBD\"),\n 400: defineToken(\"#999999\"),\n 500: defineToken(\"#666666\"),\n 600: defineToken(\"#4D4D4D\"),\n 700: defineToken(\"#333333\"),\n 800: defineToken(\"#2E2E2E\"),\n 900: defineToken(\"#1F1F1F\"),\n 950: defineToken(\"#141414\"),\n 1000: defineToken(\"#0A0A0A\"),\n },\n white: defineToken(\"#FFFFFF\"),\n black: defineToken(\"#000000\"),\n },\n spacing: {\n 1: defineToken(\"0.25rem\"),\n 2: defineToken(\"0.5rem\"),\n 3: defineToken(\"0.75rem\"),\n 4: defineToken(\"1rem\"),\n 5: defineToken(\"1.25rem\"),\n 6: defineToken(\"1.5rem\"),\n 8: defineToken(\"2rem\"),\n 10: defineToken(\"2.5rem\"),\n 12: defineToken(\"3rem\"),\n 16: defineToken(\"4rem\"),\n xs: defineToken(\"0.25rem\"),\n sm: defineToken(\"0.5rem\"),\n md: defineToken(\"1rem\"),\n lg: defineToken(\"1.5rem\"),\n xl: defineToken(\"2rem\"),\n },\n radii: {\n none: defineToken(\"0\"),\n sm: defineToken(\"0.25rem\"),\n md: defineToken(\"0.5rem\"),\n lg: defineToken(\"0.75rem\"),\n xl: defineToken(\"1rem\"),\n full: defineToken(\"9999px\"),\n },\n fonts: {\n body: defineToken(\"Inter, sans-serif\"),\n heading: defineToken(\"Inter, sans-serif\"),\n mono: defineToken(\"ui-monospace, SFMono-Regular, Menlo, monospace\"),\n },\n fontSizes: {\n xs: defineToken(\"0.75rem\"),\n sm: defineToken(\"0.875rem\"),\n md: defineToken(\"1rem\"),\n lg: defineToken(\"1.125rem\"),\n xl: defineToken(\"1.25rem\"),\n \"2xl\": defineToken(\"1.5rem\"),\n \"3xl\": defineToken(\"1.875rem\"),\n \"4xl\": defineToken(\"2.25rem\"),\n },\n fontWeights: {\n normal: defineToken(\"400\"),\n medium: defineToken(\"500\"),\n semibold: defineToken(\"600\"),\n bold: defineToken(\"700\"),\n },\n lineHeights: {\n tight: defineToken(\"1.25\"),\n normal: defineToken(\"1.5\"),\n relaxed: defineToken(\"1.75\"),\n },\n letterSpacings: {\n tighter: defineToken(\"-0.025em\"),\n tight: defineToken(\"-0.01em\"),\n normal: defineToken(\"0\"),\n wide: defineToken(\"0.025em\"),\n },\n animations: {\n spin: defineToken(\"kui-spin 0.6s linear infinite\"),\n \"fade-in\": defineToken(\"kui-fade-in 0.15s ease-out\"),\n \"fade-out\": defineToken(\"kui-fade-out 0.15s ease-in\"),\n \"scale-in\": defineToken(\"kui-scale-in 0.15s ease-out\"),\n \"scale-out\": defineToken(\"kui-scale-out 0.15s ease-in\"),\n \"slide-up\": defineToken(\"kui-slide-up 0.2s ease-out\"),\n \"slide-down\": defineToken(\"kui-slide-down 0.2s ease-out\"),\n \"slide-left\": defineToken(\"kui-slide-left 0.2s ease-out\"),\n \"slide-right\": defineToken(\"kui-slide-right 0.2s ease-out\"),\n \"slide-in-next\": defineToken(\"kui-slide-in-next 0.2s ease-out\"),\n \"slide-in-prev\": defineToken(\"kui-slide-in-prev 0.2s ease-out\"),\n bounce: defineToken(\"kui-bounce 0.8s infinite\"),\n pulse: defineToken(\"kui-pulse 1.5s ease-in-out infinite\"),\n shake: defineToken(\"kui-shake 0.25s ease-in-out\"),\n shimmer: defineToken(\"kui-shimmer 1.5s linear infinite\"),\n expand: defineToken(\"kui-expand 0.2s ease-out\"),\n collapse: defineToken(\"kui-collapse 0.2s ease-in\"),\n ping: defineToken(\"kui-ping 1s cubic-bezier(0, 0, 0.2, 1) infinite\"),\n \"state-error\": defineToken(\"kui-state-error 500ms ease-out 3 500ms\"),\n \"state-success\": defineToken(\"kui-state-success 500ms ease-out 2 500ms\"),\n \"state-warning\": defineToken(\"kui-state-warning 500ms ease-out 2 500ms\"),\n },\n breakpoints: {\n sm: defineToken(\"640px\"),\n md: defineToken(\"768px\"),\n lg: defineToken(\"1024px\"),\n xl: defineToken(\"1280px\"),\n \"2xl\": defineToken(\"1536px\"),\n },\n} satisfies DesignTokens;\n","import type { Typography } from \"@/types\";\n\nexport function defineTypography<const T extends Typography>(typography: T): T {\n return typography;\n}\n","import { defineTypography } from \"../define/typography\";\n\nexport const defaultTypography = defineTypography({\n body: {\n fontFamily: \"{fonts.body}\",\n fontWeight: \"{fontWeights.normal}\",\n lineHeight: \"{lineHeights.normal}\",\n },\n bodySmall: {\n fontFamily: \"{fonts.body}\",\n fontWeight: \"{fontWeights.normal}\",\n lineHeight: \"{lineHeights.normal}\",\n },\n heading: {\n fontFamily: \"{fonts.heading}\",\n fontSize: \"{fontSizes.2xl}\",\n fontWeight: \"{fontWeights.bold}\",\n lineHeight: \"{lineHeights.tight}\",\n },\n headingSmall: {\n fontFamily: \"{fonts.heading}\",\n fontSize: \"{fontSizes.xl}\",\n fontWeight: \"{fontWeights.semibold}\",\n lineHeight: \"{lineHeights.tight}\",\n },\n label: {\n fontFamily: \"{fonts.body}\",\n fontWeight: \"{fontWeights.medium}\",\n lineHeight: \"{lineHeights.normal}\",\n },\n caption: {\n fontFamily: \"{fonts.body}\",\n fontSize: \"{fontSizes.xs}\",\n fontWeight: \"{fontWeights.normal}\",\n lineHeight: \"{lineHeights.normal}\",\n },\n mono: {\n fontFamily: \"{fonts.mono}\",\n fontSize: \"{fontSizes.xs}\",\n fontWeight: \"{fontWeights.normal}\",\n lineHeight: \"{lineHeights.normal}\",\n },\n\n sizeXs: {\n fontFamily: \"{fonts.body}\",\n fontSize: \"{fontSizes.xs}\",\n fontWeight: \"{fontWeights.normal}\",\n lineHeight: \"{lineHeights.normal}\",\n },\n sizeSm: {\n fontFamily: \"{fonts.body}\",\n fontSize: \"{fontSizes.sm}\",\n fontWeight: \"{fontWeights.normal}\",\n lineHeight: \"{lineHeights.normal}\",\n },\n sizeMd: {\n fontFamily: \"{fonts.body}\",\n fontSize: \"{fontSizes.sm}\",\n fontWeight: \"{fontWeights.normal}\",\n lineHeight: \"{lineHeights.normal}\",\n },\n sizeLg: {\n fontFamily: \"{fonts.body}\",\n fontSize: \"{fontSizes.md}\",\n fontWeight: \"{fontWeights.normal}\",\n lineHeight: \"{lineHeights.normal}\",\n },\n sizeXl: {\n fontFamily: \"{fonts.body}\",\n fontSize: \"{fontSizes.xl}\",\n fontWeight: \"{fontWeights.medium}\",\n lineHeight: \"{lineHeights.tight}\",\n },\n});\n","import type { RecipeDefinition } from \"@/types\";\n\nexport function defineRecipe<const T extends RecipeDefinition>(recipe: T): T {\n return recipe;\n}\n","import type { SemanticTokens } from \"@/types\";\n\nconst REFERENCE_PATTERN = /^\\{(.+)\\}$/;\n\n/**\n * If value is a \"{colors.brand.500}\"-style reference string, returns\n * the raw dotted path (\"colors.brand.500\"). Otherwise returns null.\n */\nfunction extractReferencePath(value: unknown): string | undefined {\n if (typeof value !== \"string\") return undefined;\n const match = value.match(REFERENCE_PATTERN);\n return match ? match[1] : undefined;\n}\n\n/**\n * Resolves a dotted path against an object tree. Returns undefined\n * if any segment doesn't exist.\n */\nfunction resolvePath(tree: unknown, path: string): unknown {\n const segments = path.split(\".\");\n let current: unknown = tree;\n\n for (const segment of segments) {\n if (current === null || typeof current !== \"object\") return undefined;\n current = (current as Record<string, unknown>)[segment];\n }\n\n return current;\n}\n\n/**\n * Given a resolved semantic-token node (shape: { value: ColorModeValue }),\n * returns the reference string(s) its value points to, if any — i.e.\n * the next hop(s) in a semantic->semantic chain. Non-reference\n * (literal) values return an empty array — the chain ends there.\n */\nfunction nextReferences(node: unknown): string[] {\n if (node === null || typeof node !== \"object\" || !(\"value\" in node)) {\n return [];\n }\n\n const colorModeValue = (node as { value: unknown }).value;\n\n if (colorModeValue === null || typeof colorModeValue !== \"object\") {\n return [];\n }\n\n const cmv = colorModeValue as Record<string, unknown>;\n\n if (cmv.sameForBothModes === true) {\n const ref = extractReferencePath(cmv.value);\n return ref ? [ref] : [];\n }\n\n const refs: string[] = [];\n const lightRef = extractReferencePath(cmv.light);\n const darkRef = extractReferencePath(cmv.dark);\n if (lightRef) refs.push(lightRef);\n if (darkRef) refs.push(darkRef);\n return refs;\n}\n\nexport interface CycleValidationResult {\n valid: boolean;\n cyclePath?: string[];\n}\n\n/**\n * Walks every semantic token's reference chain looking for a\n * semantic->semantic cycle. Reference *existence* (does the path\n * resolve at all) is validated separately at the type level via\n * ValidateSemanticTokenSection — this function only detects cycles\n * among references that do resolve to another semantic token.\n *\n * A reference that resolves to nothing (dangling) or to a primitive\n * token is a dead end for cycle-walking purposes here, not an error\n * this function raises — that's the type-level existence check's job.\n */\nexport function validateNoCycles(\n semanticTokens: SemanticTokens,\n): CycleValidationResult {\n function walk(path: string, visited: string[]): CycleValidationResult {\n if (visited.includes(path)) {\n return { valid: false, cyclePath: [...visited, path] };\n }\n\n const node = resolvePath(semanticTokens, path);\n const refs = nextReferences(node);\n\n for (const ref of refs) {\n const result = walk(ref, [...visited, path]);\n if (!result.valid) return result;\n }\n\n return { valid: true };\n }\n\n function collectPaths(tree: unknown, prefix: string[] = []): string[][] {\n if (tree === null || typeof tree !== \"object\") return [];\n\n const entries = Object.entries(tree as Record<string, unknown>);\n const paths: string[][] = [];\n\n for (const [key, value] of entries) {\n const currentPath = [...prefix, key];\n\n if (\n value !== null &&\n typeof value === \"object\" &&\n \"value\" in (value as Record<string, unknown>)\n ) {\n paths.push(currentPath);\n } else {\n paths.push(...collectPaths(value, currentPath));\n }\n }\n\n return paths;\n }\n\n const allLeafPaths = collectPaths(semanticTokens);\n\n for (const pathSegments of allLeafPaths) {\n const path = pathSegments.join(\".\");\n const result = walk(path, []);\n if (!result.valid) return result;\n }\n\n return { valid: true };\n}\n\n/**\n * Throws a descriptive error if a semantic->semantic cycle is found.\n * Intended to be called from defineTheme/extendTheme.\n */\nexport function assertNoCycles(semanticTokens: SemanticTokens): void {\n const result = validateNoCycles(semanticTokens);\n\n if (!result.valid) {\n throw new Error(\n `Kreativ UI: circular semantic token reference detected: ${result.cyclePath?.join(\" -> \")}`,\n );\n }\n}\n","import type { Theme } from \"@/types\";\nimport type { ValidateTheme } from \"../validate/theme\";\nimport { assertNoCycles } from \"../runtime/validateCycles\";\n\n/**\n * Defines a Kreativ UI theme.\n *\n * Type-safe boundary for creating themes while preserving the exact\n * structure and types of the supplied theme. Does not merge with the\n * default theme or mutate the provided object — extension/resolution\n * are handled separately by extendTheme.\n *\n * `T & ValidateTheme<T>` is what actually enforces validation at the\n * call site: ValidateTheme<T> resolves to `unknown` (a no-op) when\n * every section passes, or a section-named `{ tokens: Invalid<...> }`\n * / `{ semanticTokens: Invalid<...> }` / etc. object when a section\n * fails. Intersecting that onto the parameter type means a failing\n * theme produces a real compile error naming the failing section and\n * message, not just a generic \"not assignable to Theme\".\n *\n * Reference *existence* (does \"{colors.brand.500}\" resolve to a real\n * token) is checked at compile time via ValidateSemanticTokenSection,\n * as part of ValidateTheme above. Reference *cycles* (semantic token\n * A -> B -> A) can't be reliably caught at the type level (hit TS\n * inference edge cases in recursive conditional types), so they're\n * checked here at call time instead, via assertNoCycles.\n */\nexport function defineTheme<T extends Theme>(theme: T & ValidateTheme<T>): T {\n assertNoCycles(theme.semanticTokens);\n return theme;\n}\n\n","import { defineRecipe } from \"@/define\";\r\n\r\nexport const buttonBase =\r\n \"inline-flex items-center justify-center \" +\r\n \"rounded-[var(--kui-button-radius,var(--kui-radius))] \" +\r\n \"font-medium \" +\r\n \"transition-[background-color,border-color,color,transform,opacity] \" +\r\n \"duration-200 \" +\r\n \"will-change-transform \" +\r\n \"focus-visible:outline-none focus-visible:ring-2 \" +\r\n \"focus-visible:ring-kui-brand \" +\r\n \"focus-visible:ring-offset-2 \" +\r\n \"focus-visible:ring-offset-surface \" +\r\n \"disabled:opacity-60 disabled:pointer-events-none disabled:active:scale-100\";\r\n\r\nexport const buttonVariants = {\r\n solid: \"ease-[cubic-bezier(0.34,1.56,0.64,1)] active:scale-[0.97]\",\r\n soft: \"ease-[cubic-bezier(0.34,1.56,0.64,1)] active:scale-[0.97]\",\r\n outline: \"border bg-transparent ease-out active:scale-[0.98]\",\r\n ghost: \"bg-transparent ease-out active:scale-[0.98]\",\r\n link: \"bg-transparent p-0 h-auto hover:underline ease-out\",\r\n} as const;\r\n\r\nexport const buttonColors = {\r\n brand: {\r\n solid: \"bg-kui-brand text-kui-brand-fg hover:bg-kui-brand-hover\",\r\n outline: \"border-kui-brand text-kui-brand hover:bg-kui-brand/10\",\r\n ghost: \"text-kui-brand hover:bg-kui-brand/10\",\r\n soft: \"bg-kui-brand/10 text-kui-brand hover:bg-kui-brand/20\",\r\n link: \"text-kui-brand\",\r\n },\r\n destructive: {\r\n solid: \"bg-kui-destructive text-kui-destructive-fg hover:bg-kui-destructive-hover\",\r\n outline: \"border-kui-destructive text-kui-destructive hover:bg-kui-destructive/10\",\r\n ghost: \"text-kui-destructive hover:bg-kui-destructive/10\",\r\n soft: \"bg-kui-destructive/10 text-kui-destructive hover:bg-kui-destructive/20\",\r\n link: \"text-kui-destructive\",\r\n },\r\n success: {\r\n solid: \"bg-kui-success text-kui-success-fg hover:bg-kui-success-hover\",\r\n outline: \"border-kui-success text-kui-success hover:bg-kui-success/10\",\r\n ghost: \"text-kui-success hover:bg-kui-success/10\",\r\n soft: \"bg-kui-success/10 text-kui-success hover:bg-kui-success/20\",\r\n link: \"text-kui-success\",\r\n },\r\n warning: {\r\n solid: \"bg-kui-warning text-kui-warning-fg hover:bg-kui-warning-hover\",\r\n outline: \"border-kui-warning text-kui-warning hover:bg-kui-warning/10\",\r\n ghost: \"text-kui-warning hover:bg-kui-warning/10\",\r\n soft: \"bg-kui-warning/10 text-kui-warning hover:bg-kui-warning/20\",\r\n link: \"text-kui-warning\",\r\n },\r\n info: {\r\n solid: \"bg-kui-info text-kui-info-fg hover:bg-kui-info-hover\",\r\n outline: \"border-kui-info text-kui-info hover:bg-kui-info/10\",\r\n ghost: \"text-kui-info hover:bg-kui-info/10\",\r\n soft: \"bg-kui-info/10 text-kui-info hover:bg-kui-info/20\",\r\n link: \"text-kui-info\",\r\n },\r\n white: {\r\n solid: \"bg-white text-black hover:bg-gray-50\",\r\n outline: \"border-white/30 text-white hover:bg-white/10\",\r\n ghost: \"text-white hover:bg-white/10\",\r\n soft: \"bg-white/10 text-white hover:bg-white/20\",\r\n link: \"text-white\",\r\n },\r\n neutral: {\r\n solid: \"bg-kui-surface-raised text-kui-text hover:bg-kui-surface-sunken\",\r\n outline: \"border-kui-border text-kui-text hover:bg-kui-surface-raised\",\r\n ghost: \"text-kui-text hover:bg-kui-surface-raised\",\r\n soft: \"bg-kui-surface-raised text-kui-text hover:bg-kui-surface-sunken\",\r\n link: \"text-kui-text\",\r\n },\r\n inherit: {\r\n solid:\r\n \"[background-color:var(--kui-inherit-bg)] \" +\r\n \"[color:var(--kui-inherit-fg)]\",\r\n\r\n outline:\r\n \"[border-color:var(--kui-inherit-border)] \" +\r\n \"[color:var(--kui-inherit-fg)] \" +\r\n \"bg-transparent\",\r\n\r\n ghost: \"[color:var(--kui-inherit-fg)] \" + \"bg-transparent\",\r\n\r\n soft:\r\n \"[background-color:var(--kui-inherit-soft-bg)] \" +\r\n \"[color:var(--kui-inherit-fg)]\",\r\n\r\n link: \"[color:var(--kui-inherit-fg)] \" + \"bg-transparent\",\r\n },\r\n} as const;\r\n\r\nconst buildCompoundVariants = () => {\r\n const compounds: Array<{\r\n conditions: Record<string, string>;\r\n className: string;\r\n }> = [];\r\n\r\n for (const [color, variantMap] of Object.entries(buttonColors)) {\r\n for (const [variant, className] of Object.entries(variantMap)) {\r\n compounds.push({\r\n conditions: { color, variant },\r\n className,\r\n });\r\n }\r\n }\r\n\r\n return compounds;\r\n};\r\n\r\nexport const buttonRecipe = defineRecipe({\r\n base: buttonBase,\r\n\r\n variants: {\r\n variant: buttonVariants,\r\n\r\n color: Object.fromEntries(\r\n Object.keys(buttonColors).map((color) => [color, \"\"]),\r\n ) as Record<string, string>,\r\n },\r\n\r\n defaultVariants: {\r\n variant: \"solid\",\r\n color: \"brand\",\r\n },\r\n\r\n compoundVariants: buildCompoundVariants(),\r\n});\r\n","import { defineRecipe } from \"@/define\";\r\n\r\nexport const formControlBase =\r\n \"group relative inline-flex items-center \" +\r\n \"rounded-[var(--kui-radii-md)] \" +\r\n \"transition-[border-color,box-shadow] duration-[var(--kui-duration-fast)] \" +\r\n \"focus-within:outline-none \" +\r\n \"focus-within:ring-offset-2 \" +\r\n \"focus-within:ring-offset-surface\";\r\n\r\nexport const formControlVariants = {\r\n outline: \"border border-kui-border bg-transparent text-kui-text\",\r\n\r\n filled: \"border border-transparent bg-kui-surface-raised text-kui-text\",\r\n\r\n ghost: \"border border-transparent bg-transparent text-kui-text\",\r\n} as const;\r\n\r\nconst standaloneStates = {\r\n none: \"hover:border-kui-brand focus-within:ring-2 focus-within:ring-kui-brand/20\",\r\n\r\n error:\r\n \"border-kui-destructive hover:border-kui-destructive \" +\r\n \"focus-within:ring-2 focus-within:ring-kui-destructive/20\",\r\n\r\n success:\r\n \"border-kui-success hover:border-kui-success \" +\r\n \"focus-within:ring-2 focus-within:ring-kui-success/20\",\r\n\r\n warning:\r\n \"border-kui-warning hover:border-kui-warning \" +\r\n \"focus-within:ring-2 focus-within:ring-kui-warning/20\",\r\n} as const;\r\n\r\nconst borderlessControl =\r\n \"rounded-none border-0! shadow-none! \" +\r\n \"hover:border-0! hover:bg-transparent! \" +\r\n \"focus-within:ring-0! focus-within:ring-offset-0! focus-within-outline-none!\";\r\n\r\nexport const formControlRecipe = defineRecipe({\r\n base: formControlBase,\r\n\r\n variants: {\r\n variant: formControlVariants,\r\n\r\n embedded: {\r\n true: borderlessControl,\r\n false: \"\",\r\n },\r\n\r\n groupItem: {\r\n true: borderlessControl,\r\n false: \"\",\r\n },\r\n\r\n state: standaloneStates,\r\n\r\n rounded: {\r\n true: \"rounded-full\",\r\n false: \"\",\r\n },\r\n\r\n fullWidth: {\r\n true: \"w-full\",\r\n false: \"\",\r\n },\r\n\r\n disabled: {\r\n true:\r\n \"cursor-not-allowed \" +\r\n \"opacity-50 \" +\r\n \"border-kui-border \" +\r\n \"hover:border-kui-border \" +\r\n \"focus-within:ring-0\",\r\n\r\n false: \"\",\r\n },\r\n\r\n attached: {\r\n true: \"rounded-r-none\",\r\n false: \"\",\r\n },\r\n\r\n hasAdornment: {\r\n true: \"px-2\",\r\n false: \"\",\r\n },\r\n },\r\n\r\n compoundVariants: [\r\n {\r\n conditions: {\r\n embedded: true,\r\n state: \"none\",\r\n },\r\n className: \"border-0! shadow-none! focus-within:ring-0! hover:border-0!\",\r\n },\r\n\r\n {\r\n conditions: {\r\n embedded: true,\r\n state: \"error\",\r\n },\r\n className: \"border-0! shadow-none! focus-within:ring-0! hover:border-0!\",\r\n },\r\n\r\n {\r\n conditions: {\r\n embedded: true,\r\n state: \"success\",\r\n },\r\n className: \"border-0! shadow-none! focus-within:ring-0! hover:border-0!\",\r\n },\r\n\r\n {\r\n conditions: {\r\n embedded: true,\r\n state: \"warning\",\r\n },\r\n className: \"border-0! shadow-none! focus-within:ring-0! hover:border-0!\",\r\n },\r\n\r\n {\r\n conditions: {\r\n groupItem: true,\r\n state: \"none\",\r\n },\r\n className: \"border-0! shadow-none! focus-within:ring-0! hover:border-0!\",\r\n },\r\n\r\n {\r\n conditions: {\r\n groupItem: true,\r\n state: \"error\",\r\n },\r\n className: \"border-0! shadow-none! focus-within:ring-0! hover:border-0!\",\r\n },\r\n\r\n {\r\n conditions: {\r\n groupItem: true,\r\n state: \"success\",\r\n },\r\n className: \"border-0! shadow-none! focus-within:ring-0! hover:border-0!\",\r\n },\r\n\r\n {\r\n conditions: {\r\n groupItem: true,\r\n state: \"warning\",\r\n },\r\n className: \"border-0! shadow-none! focus-within:ring-0! hover:border-0!\",\r\n },\r\n\r\n {\r\n conditions: {\r\n disabled: true,\r\n state: \"error\",\r\n },\r\n className:\r\n \"border-kui-border hover:border-kui-border focus-within:ring-0\",\r\n },\r\n\r\n {\r\n conditions: {\r\n disabled: true,\r\n state: \"success\",\r\n },\r\n className:\r\n \"border-kui-border hover:border-kui-border focus-within:ring-0\",\r\n },\r\n\r\n {\r\n conditions: {\r\n disabled: true,\r\n state: \"warning\",\r\n },\r\n className:\r\n \"border-kui-border hover:border-kui-border focus-within:ring-0\",\r\n },\r\n\r\n {\r\n conditions: {\r\n embedded: true,\r\n disabled: true,\r\n },\r\n className:\r\n \"border-0! hover:border-0! focus-within:ring-0! cursor-default\",\r\n },\r\n\r\n {\r\n conditions: {\r\n groupItem: true,\r\n disabled: true,\r\n },\r\n className:\r\n \"border-0! hover:border-0! focus-within:ring-0! cursor-default\",\r\n },\r\n ],\r\n\r\n defaultVariants: {\r\n variant: \"outline\",\r\n state: \"none\",\r\n\r\n embedded: false,\r\n groupItem: false,\r\n\r\n rounded: false,\r\n fullWidth: true,\r\n disabled: false,\r\n hasAdornment: false,\r\n\r\n attached: false,\r\n },\r\n});\r\n","import { defineRecipe } from \"@/define\";\r\n\r\nexport const inputBase =\r\n \"flex min-w-0 flex-1 \" +\r\n \"font-sans \" +\r\n \"bg-transparent border-0 outline-none \" +\r\n \"transition-colors duration-[var(--kui-duration-fast)] \" +\r\n \"placeholder:text-kui-text-muted \" +\r\n \"disabled:cursor-not-allowed\";\r\n\r\nexport const inputRecipe = defineRecipe({\r\n base: inputBase,\r\n\r\n variants: {\r\n variant: {\r\n outline: \"\",\r\n filled: \"\",\r\n ghost: \"\",\r\n },\r\n },\r\n\r\n defaultVariants: {\r\n variant: \"outline\",\r\n },\r\n});\r\n","import { defineRecipe } from \"@/define\";\r\n\r\nexport const textareaRecipe = defineRecipe({\r\n base:\r\n \"flex w-full min-w-0 \" +\r\n \"bg-transparent outline-none border-0 \" +\r\n \"text-kui-text placeholder:text-kui-text-muted \" +\r\n \"transition-colors duration-[var(--kui-duration-fast)] \" +\r\n \"disabled:pointer-events-none \" +\r\n \"disabled:cursor-not-allowed \" +\r\n \"disabled:opacity-50 \" +\r\n \"kui-scrollbar\",\r\n\r\n variants: {\r\n variant: {\r\n outline: \"\",\r\n filled: \"\",\r\n ghost: \"\",\r\n },\r\n\r\n resize: {\r\n none: \"resize-none\",\r\n both: \"resize\",\r\n horizontal: \"resize-x\",\r\n vertical: \"resize-y\",\r\n },\r\n\r\n autoResize: {\r\n true: \"resize-none overflow-hidden\",\r\n false: \"\",\r\n },\r\n },\r\n\r\n defaultVariants: {\r\n variant: \"outline\",\r\n resize: \"vertical\",\r\n autoResize: false,\r\n },\r\n});\r\n","import { defineRecipe } from \"@/define\";\r\n\r\nexport const markdownEditorRecipe = defineRecipe({\r\n base:\r\n \"group relative w-full overflow-hidden \" +\r\n \"rounded-[var(--kui-radii-md)] \" +\r\n \"transition-[border-color,box-shadow] duration-[var(--kui-duration-fast)]\",\r\n\r\n variants: {\r\n variant: {\r\n outline: \"border border-kui-border bg-transparent\",\r\n filled: \"border border-transparent bg-kui-surface-raised\",\r\n ghost: \"border border-transparent bg-transparent\",\r\n },\r\n\r\n state: {\r\n none: \"hover:border-kui-brand focus-within:ring-2 focus-within:ring-kui-brand/20\",\r\n\r\n error:\r\n \"border-kui-destructive focus-within:ring-2 focus-within:ring-kui-destructive/20\",\r\n\r\n success:\r\n \"border-kui-success focus-within:ring-2 focus-within:ring-kui-success/20\",\r\n\r\n warning:\r\n \"border-kui-warning focus-within:ring-2 focus-within:ring-kui-warning/20\",\r\n },\r\n\r\n disabled: {\r\n true:\r\n \"cursor-not-allowed opacity-50 \" +\r\n \"border-kui-border hover:border-kui-border \" +\r\n \"focus-within:ring-0\",\r\n false: \"\",\r\n },\r\n\r\n fullWidth: {\r\n true: \"w-full\",\r\n false: \"\",\r\n },\r\n },\r\n\r\n defaultVariants: {\r\n variant: \"outline\",\r\n state: \"none\",\r\n fullWidth: true,\r\n },\r\n});\r\n","import { defineRecipe } from \"@/define\";\r\n\r\nexport const checkboxRecipe = defineRecipe({\r\n base:\r\n \"relative inline-flex shrink-0 items-center justify-center \" +\r\n \"border transition-colors \" +\r\n \"duration-[var(--kui-duration-fast)] \" +\r\n \"peer-focus-visible:ring-2 \" +\r\n \"peer-focus-visible:ring-kui-brand \" +\r\n \"peer-focus-visible:ring-offset-1\",\r\n\r\n variants: {\r\n state: {\r\n none: \"border-kui-border\",\r\n error: \"border-kui-destructive\",\r\n success: \"border-kui-success\",\r\n warning: \"border-kui-warning\",\r\n },\r\n\r\n checked: {\r\n true: \"border-kui-brand bg-kui-brand text-kui-brand-fg\",\r\n false: \"bg-transparent\",\r\n },\r\n\r\n disabled: {\r\n true: \"cursor-not-allowed\",\r\n false: \"cursor-pointer\",\r\n },\r\n\r\n rounded: {\r\n true: \"rounded-full\",\r\n false: \"rounded-[calc(var(--kui-checkbox-radius)-4px)]\",\r\n },\r\n },\r\n\r\n compoundVariants: [\r\n {\r\n conditions: {\r\n checked: false,\r\n state: \"error\",\r\n },\r\n className: \"border-kui-destructive\",\r\n },\r\n\r\n {\r\n conditions: {\r\n checked: false,\r\n state: \"success\",\r\n },\r\n className: \"border-kui-success\",\r\n },\r\n {\r\n conditions: {\r\n checked: false,\r\n state: \"warning\",\r\n },\r\n className: \"border-kui-warning\",\r\n },\r\n ],\r\n\r\n defaultVariants: {\r\n state: \"none\",\r\n checked: false,\r\n disabled: false,\r\n rounded: false,\r\n },\r\n});\r\n","import { defineRecipe } from \"@/define\";\r\n\r\nexport const buttonGroupRecipe = defineRecipe({\r\n base: [\"inline-flex items-center relative isolate\", \"kui-button-group\"].join(\r\n \" \",\r\n ),\r\n\r\n variants: {\r\n orientation: {\r\n horizontal: \"flex-row\",\r\n vertical: \"flex-col items-stretch\",\r\n },\r\n\r\n attached: {\r\n true: \"gap-0\",\r\n false: \"\",\r\n },\r\n\r\n spacing: {\r\n none: \"gap-0\",\r\n sm: \"gap-1\",\r\n md: \"gap-2\",\r\n lg: \"gap-3\",\r\n },\r\n },\r\n\r\n defaultVariants: {\r\n orientation: \"horizontal\",\r\n attached: false,\r\n spacing: \"md\",\r\n },\r\n\r\n compoundVariants: [\r\n {\r\n conditions: {\r\n orientation: \"horizontal\",\r\n attached: true,\r\n },\r\n className: [\r\n \"[&>[data-kui-button-group-item]]:rounded-none\",\r\n \"[&>[data-kui-button-group-item]:first-child]:rounded-l-md\",\r\n \"[&>[data-kui-button-group-item]:last-child]:rounded-r-md\",\r\n \"[&>[data-kui-button-group-item]+[data-kui-button-group-item]]:-ml-px\",\r\n\r\n \"[&>[data-kui-button-group-separator]]:h-[var(--kui-button-group-separator-size)]\",\r\n \"[&>[data-kui-button-group-separator]]:w-px\",\r\n \"[&>[data-kui-button-group-separator]]:mx-1\",\r\n \"[&>[data-kui-button-group-separator]]:shrink-0\",\r\n ].join(\" \"),\r\n },\r\n\r\n {\r\n conditions: {\r\n orientation: \"vertical\",\r\n },\r\n className: [\r\n \"[&>[data-kui-button-group-item]]:w-full\",\r\n\r\n \"[&>[data-kui-button-group-separator]]:h-px\",\r\n \"[&>[data-kui-button-group-separator]]:w-[var(--kui-button-group-separator-size)]\",\r\n \"[&>[data-kui-button-group-separator]]:shrink-0\",\r\n ].join(\" \"),\r\n },\r\n\r\n {\r\n conditions: {\r\n orientation: \"vertical\",\r\n attached: true,\r\n },\r\n className: [\r\n \"[&>[data-kui-button-group-item]]:rounded-none\",\r\n \"[&>[data-kui-button-group-item]:first-child]:rounded-t-md\",\r\n \"[&>[data-kui-button-group-item]:last-child]:rounded-b-md\",\r\n \"[&>[data-kui-button-group-item]+[data-kui-button-group-item]]:-mt-px\",\r\n ].join(\" \"),\r\n },\r\n ],\r\n});\r\n","import { defineRecipe } from \"@/define\";\r\n\r\nexport const switchRecipe = defineRecipe({\r\n base: [\r\n \"relative inline-flex shrink-0 items-center\",\r\n \"rounded-full\",\r\n \"transition-[background-color,border-color,box-shadow]\",\r\n \"duration-[var(--kui-duration-fast)]\",\r\n\r\n \"peer-focus-visible:ring-2\",\r\n \"peer-focus-visible:ring-kui-brand\",\r\n \"peer-focus-visible:ring-offset-1\",\r\n \"peer-focus-visible:ring-offset-surface\",\r\n ].join(\" \"),\r\n\r\n variants: {\r\n checked: {\r\n true: \"bg-kui-brand\",\r\n false: \"bg-kui-border\",\r\n },\r\n\r\n state: {\r\n none: \"\",\r\n error: \"bg-kui-destructive\",\r\n success: \"bg-kui-success\",\r\n warning: \"bg-kui-warning\",\r\n },\r\n\r\n disabled: {\r\n true: \"cursor-not-allowed opacity-50\",\r\n false: \"\",\r\n },\r\n },\r\n\r\n defaultVariants: {\r\n checked: false,\r\n state: \"none\",\r\n disabled: false,\r\n },\r\n});\r\n","import { defineRecipe } from \"@/define\";\r\n\r\nexport const containerReccipe = defineRecipe({\r\n base: \"w-full\",\r\n variants: {\r\n maxWidth: {\r\n xs: \"max-w-screen-xs\",\r\n sm: \"max-w-screen-sm\",\r\n md: \"max-w-screen-md\",\r\n lg: \"max-w-screen-lg\",\r\n xl: \"max-w-screen-xl\",\r\n full: \"max-w-full\",\r\n },\r\n },\r\n defaultVariants: {\r\n maxWidth: \"lg\",\r\n },\r\n});\r\n","import { defineRecipe } from \"@/define\";\r\n\r\nexport const linkRecipe = defineRecipe({\r\n base: \"kui-link\",\r\n variants: {\r\n variant: {\r\n solid: \"text-kui-brand hover:text-kui-brand-hover\",\r\n outline: \"text-kui-text-secondary hover:text-kui-brand\",\r\n ghost: \"text-kui-text-secondary hover:text-kui-text\",\r\n soft: \"text-kui-brand hover:text-kui-brand-hover\",\r\n },\r\n underline: {\r\n always: \"underline\",\r\n hover: \"no-underline hover:underline\",\r\n none: \"no-underline\",\r\n },\r\n disabled: {\r\n true: \"pointer-events-none opacity-50 cursor-not-allowed\",\r\n false: \"\",\r\n },\r\n },\r\n defaultVariants: {\r\n variant: \"solid\",\r\n underline: \"hover\",\r\n disabled: false,\r\n },\r\n});\r\n","import type { RecipeCollection, Theme } from \"@/types\";\nimport { defaultTokens } from \"./tokens\";\nimport { defaultSemanticTokens } from \"./semanticTokens\";\nimport { defaultTypography } from \"./typography\";\nimport { defaultSizes } from \"./sizes\";\nimport { buttonRecipe } from \"./recipes/button\";\nimport { formControlRecipe } from \"./recipes/formControl\";\nimport { inputRecipe } from \"./recipes/input\";\nimport { textareaRecipe } from \"./recipes/textarea\";\nimport { markdownEditorRecipe } from \"./recipes/markdownEditor\";\nimport { checkboxRecipe } from \"./recipes/checkbox\";\nimport { buttonGroupRecipe } from \"./recipes/buttonGroup\";\nimport { switchRecipe } from \"./recipes/switch\";\nimport { containerReccipe } from \"./recipes/container\";\nimport { linkRecipe } from \"./recipes/link\";\nimport { defineTheme } from \"../define/theme\";\n\nexport const defaultRecipes = {\n Button: buttonRecipe,\n FormControl: formControlRecipe,\n Input: inputRecipe,\n Textarea: textareaRecipe,\n MarkdownEditor: markdownEditorRecipe,\n Checkbox: checkboxRecipe,\n ButtonGroup: buttonGroupRecipe,\n Switch: switchRecipe,\n Container: containerReccipe,\n Link: linkRecipe,\n} satisfies RecipeCollection;\n\nexport const defaultTheme = defineTheme({\n tokens: defaultTokens,\n semanticTokens: defaultSemanticTokens,\n typography: defaultTypography,\n recipes: defaultRecipes,\n intensity: 50,\n sizes: defaultSizes,\n} as const satisfies Theme);\n","function isPlainObject(value: unknown): value is Record<string, unknown> {\n return typeof value === \"object\" && value !== null && !Array.isArray(value);\n}\n\nexport function deepMerge<T>(base: T, override?: unknown): T {\n if (override === undefined) {\n return base;\n }\n\n if (!isPlainObject(base) || !isPlainObject(override)) {\n return override as T;\n }\n\n const result: Record<string, unknown> = {\n ...base,\n };\n\n for (const [key, value] of Object.entries(override)) {\n const existing = result[key];\n\n if (isPlainObject(existing) && isPlainObject(value)) {\n result[key] = deepMerge(existing, value);\n } else {\n result[key] = value;\n }\n }\n\n return result as T;\n}\n","import type { DesignTokens, ThemeOverride, SemanticTokens } from \"@/types\";\nimport { defaultTokens } from \"../defaults/tokens\";\nimport { deepMerge } from \"../utils/deepMerge\";\nimport { defaultSemanticTokens } from \"../defaults/semanticTokens\";\n\nexport function extendTokens(override?: ThemeOverride[\"tokens\"]): DesignTokens {\n return deepMerge(defaultTokens, override);\n}\n\nexport function extendSemanticTokens(\n override?: ThemeOverride[\"semanticTokens\"],\n): SemanticTokens {\n return deepMerge(defaultSemanticTokens, override);\n}\n","import type { ThemeOverride, SizeScale } from \"@/types\";\nimport { defaultSizes } from \"../defaults/sizes\";\n\nexport function extendSizes(override?: ThemeOverride[\"sizes\"]): SizeScale {\n const result: SizeScale = {\n ...defaultSizes,\n };\n\n if (!override) {\n return result;\n }\n\n for (const [key, value] of Object.entries(override)) {\n result[key] = {\n ...(defaultSizes[key as keyof typeof defaultSizes] ?? {}),\n ...value,\n };\n }\n\n return result;\n}\n","import type { ThemeOverride, Typography } from \"@/types\";\nimport { defaultTypography } from \"../defaults/typography\";\n\nexport function extendTypography(\n override?: ThemeOverride[\"typography\"],\n): Typography {\n if (!override) {\n return { ...defaultTypography };\n }\n\n const result: Typography = { ...defaultTypography };\n\n for (const key of Object.keys(override)) {\n const variant = key as keyof typeof defaultTypography;\n\n result[variant] = {\n ...defaultTypography[variant],\n ...override[variant],\n };\n }\n\n return result;\n}\n","import type { RecipeCollection, DeepPartial } from \"@/types\";\nimport { defaultRecipes as defaultRecipesLiteral } from \"../defaults/theme\";\n\n// defaultRecipesLiteral is `satisfies RecipeCollection`-typed (so its\n// own literal keys are preserved for ValidateTheme's benefit), but\n// extendRecipe/extendRecipes need to index it by an arbitrary\n// `keyof RecipeCollection` (including custom string keys from\n// CustomRecipes that the literal object has no index signature for)\n// — so it's treated as the general RecipeCollection shape here.\nconst defaultRecipes: RecipeCollection = defaultRecipesLiteral;\n\n/**\n * Overrides a single component's recipe against the built-in default\n * for that component. For overriding just one recipe inline, without\n * constructing a partial keyed-by-component-name object.\n */\nexport function extendRecipe<K extends keyof RecipeCollection>(\n name: K,\n override?: DeepPartial<RecipeCollection[K]>,\n): RecipeCollection[K] {\n const base = defaultRecipes[name];\n\n if (!override) {\n return base as RecipeCollection[K];\n }\n\n return {\n ...base,\n ...override,\n\n ...(override?.compoundVariants\n ? { compoundVariants: override.compoundVariants }\n : {}),\n\n ...(base?.variants || override?.variants\n ? {\n variants: {\n ...base?.variants,\n ...override?.variants,\n },\n }\n : {}),\n } as RecipeCollection[K];\n}\n\n/**\n * Overrides the theme's full recipe collection against the built-in\n * defaults. Thin wrapper over extendRecipe — the actual merge logic\n * lives in exactly one place.\n */\nexport function extendRecipes(\n override?: DeepPartial<RecipeCollection>,\n): RecipeCollection {\n if (!override) {\n return defaultRecipes;\n }\n\n const result: RecipeCollection = { ...defaultRecipes };\n\n for (const name of Object.keys(override) as (keyof RecipeCollection)[]) {\n result[name] = extendRecipe(name, override[name]);\n }\n\n return result;\n}\n","import type { Theme, ThemeOverride } from \"@/types\";\nimport { extendSizes } from \"./sizes\";\nimport { extendRecipes } from \"./recipes\";\nimport { extendTypography } from \"./typography\";\nimport { extendTokens, extendSemanticTokens } from \"./tokens\";\nimport { defaultTheme } from \"../defaults/theme\";\n\nexport function extendTheme(override?: ThemeOverride): Theme {\n if (!override) {\n return defaultTheme;\n }\n\n return {\n ...defaultTheme,\n ...override,\n\n tokens: extendTokens(override.tokens),\n\n semanticTokens: extendSemanticTokens(override.semanticTokens),\n\n sizes: extendSizes(override.sizes),\n\n typography: extendTypography(override.typography),\n\n recipes: extendRecipes(override.recipes),\n };\n}\n"]}
package/dist/types.cjs DELETED
@@ -1,4 +0,0 @@
1
- 'use strict';
2
-
3
- //# sourceMappingURL=types.cjs.map
4
- //# sourceMappingURL=types.cjs.map
@@ -1 +0,0 @@
1
- {"version":3,"sources":[],"names":[],"mappings":"","file":"types.cjs"}
package/dist/types.js DELETED
@@ -1,3 +0,0 @@
1
-
2
- //# sourceMappingURL=types.js.map
3
- //# sourceMappingURL=types.js.map
package/dist/types.js.map DELETED
@@ -1 +0,0 @@
1
- {"version":3,"sources":[],"names":[],"mappings":"","file":"types.js"}
@@ -1,10 +0,0 @@
1
- import { ColorMode } from './types.js';
2
-
3
- interface UseColorModeReturn {
4
- mode: ColorMode;
5
- setMode: (mode: ColorMode) => void;
6
- toggleColorMode: () => void;
7
- }
8
- declare function useColorMode(): UseColorModeReturn;
9
-
10
- export { type UseColorModeReturn as U, useColorMode as u };
@@ -1,10 +0,0 @@
1
- import { ColorMode } from './types.cjs';
2
-
3
- interface UseColorModeReturn {
4
- mode: ColorMode;
5
- setMode: (mode: ColorMode) => void;
6
- toggleColorMode: () => void;
7
- }
8
- declare function useColorMode(): UseColorModeReturn;
9
-
10
- export { type UseColorModeReturn as U, useColorMode as u };
@@ -1 +0,0 @@
1
- {"version":3,"sources":["../src/utils/createComponent.tsx","../src/utils/composeRefs.ts","../src/utils/createFromProps.ts","../src/utils/responsive.ts","../src/utils/deepMerge.ts","../src/utils/resolveTokenReference.ts","../src/utils/resolveTypography.ts"],"names":["React","value"],"mappings":"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","file":"utils.cjs","sourcesContent":["import * as React from \"react\";\n\nexport interface KuiSupports {\n disabled?: boolean;\n invalid?: boolean;\n required?: boolean;\n [key: string]: boolean | undefined;\n}\nexport type KuiSkeletonHint =\n | \"text\"\n | \"rect\"\n | \"circle\"\n | \"input-shaped\"\n | \"preserve\"\n | (string & {});\nexport type KuiRole =\n | \"action\"\n | \"formControl\"\n | \"overlay\"\n | \"layout\"\n | \"display\"\n | \"disclosure\"\n | \"navigation\"\n | (string & {});\n\nexport interface KuiMeta {\n formControl?: \"single\" | \"compound\";\n supports?: KuiSupports;\n skeleton?: KuiSkeletonHint;\n role?: KuiRole;\n groupSlot?: string;\n}\n\nexport type KuiComponent<P, E> = React.ForwardRefExoticComponent<\n React.PropsWithoutRef<P> & React.RefAttributes<E>\n> & { __kui: KuiMeta };\n\nexport interface CreateComponentConfig<P, E> {\n __kui: KuiMeta;\n render: (props: P, ref: React.ForwardedRef<E>) => React.ReactElement | null;\n displayName?: string;\n}\n\nexport function createComponent<P extends object, E = unknown>(\n config: CreateComponentConfig<P, E>,\n): KuiComponent<P, E> {\n const C = React.forwardRef(\n config.render as unknown as React.ForwardRefRenderFunction<E, any>,\n ) as unknown as KuiComponent<P, E>;\n if (config.displayName) C.displayName = config.displayName;\n C.__kui = config.__kui;\n return C;\n}\n\nexport function hasKuiMeta(value: unknown): value is { __kui: KuiMeta } {\n return (\n (typeof value === \"function\" ||\n (typeof value === \"object\" && value !== null)) &&\n \"__kui\" in (value as object) &&\n typeof (value as { __kui: unknown }).__kui === \"object\" &&\n (value as { __kui: unknown }).__kui !== null\n );\n}\n","import type * as React from \"react\";\ntype PossibleRef<T> = React.Ref<T> | undefined;\n\nexport function composeRefs<T>(...refs: PossibleRef<T>[]): React.RefCallback<T> {\n return (node) => {\n for (const ref of refs) {\n if (typeof ref === \"function\") ref(node);\n else if (ref) (ref as React.MutableRefObject<T | null>).current = node;\n }\n };\n}\n","export interface CreateFromPropsInput<T extends object> {\n providerDefaults?: Partial<T>;\n defaultProps?: Partial<T>;\n generatedProps?: Partial<T>;\n consumerProps?: Partial<T>;\n}\nexport function createFromProps<T extends object>(input: CreateFromPropsInput<T>): T {\n return {\n ...input.providerDefaults,\n ...input.defaultProps,\n ...input.generatedProps,\n ...input.consumerProps,\n } as T;\n}\n","import type { BaseBreakpoint, ResponsiveValue } from \"@/types\";\n\nexport function isResponsiveValue<T>(\n value: ResponsiveValue<T>,\n): value is Partial<Record<\"base\" | BaseBreakpoint, T>> {\n return typeof value === \"object\" && value !== null;\n}\n\nexport interface ResolvedResponsiveValue<T> {\n base?: T;\n responsive: Record<string, T>;\n}\n\nexport function resolveResponsiveValue<T, B extends string = string>(\n value: ResponsiveValue<T, B>,\n): ResolvedResponsiveValue<T> {\n if (value === null || typeof value !== \"object\" || Array.isArray(value)) {\n return {\n base: value,\n responsive: {},\n };\n }\n\n const responsiveValue = value as Partial<Record<\"base\" | B, T>>;\n\n const { base, ...responsive } = responsiveValue;\n\n return {\n base,\n responsive: Object.fromEntries(\n Object.entries(responsive).filter(([, value]) => value !== undefined),\n ) as Record<string, T>,\n };\n}\n\nexport function toResponsiveClasses<T>(\n value: ResolvedResponsiveValue<T>,\n resolve: (value: T) => string,\n): string {\n const classes: string[] = [];\n\n if (value.base !== undefined) {\n classes.push(resolve(value.base));\n }\n\n for (const [breakpoint, item] of Object.entries(value.responsive)) {\n classes.push(\n item\n ? item\n .toString()\n .split(\" \")\n .map((className) => `${breakpoint}:${className}`)\n .join(\" \")\n : \"\",\n );\n }\n\n return classes.filter(Boolean).join(\" \");\n}\n\nexport function mergeResponsiveValue<T, B extends string = string>(\n defaults: ResponsiveValue<T, B>,\n value?: ResponsiveValue<T, B>,\n): ResolvedResponsiveValue<T> {\n const defaultValue = resolveResponsiveValue(defaults);\n\n if (value === undefined) {\n return defaultValue;\n }\n\n const overrideValue = resolveResponsiveValue(value);\n\n return {\n base: overrideValue.base ?? defaultValue.base,\n responsive: {\n ...defaultValue.responsive,\n ...overrideValue.responsive,\n },\n };\n}\n","function isPlainObject(value: unknown): value is Record<string, unknown> {\n return typeof value === \"object\" && value !== null && !Array.isArray(value);\n}\n\nexport function deepMerge<T>(base: T, override?: unknown): T {\n if (override === undefined) {\n return base;\n }\n\n if (!isPlainObject(base) || !isPlainObject(override)) {\n return override as T;\n }\n\n const result: Record<string, unknown> = {\n ...base,\n };\n\n for (const [key, value] of Object.entries(override)) {\n const existing = result[key];\n\n if (isPlainObject(existing) && isPlainObject(value)) {\n result[key] = deepMerge(existing, value);\n } else {\n result[key] = value;\n }\n }\n\n return result as T;\n}\n","import type { DesignTokens } from \"@/types\";\r\n\r\nexport function resolveTokenReference(\r\n value: unknown,\r\n tokens: DesignTokens,\r\n): string | number {\r\n if (typeof value !== \"string\") {\r\n return typeof value === \"number\" ? value : \"\";\r\n }\r\n\r\n const match = value.match(/^\\{(.+)\\}$/);\r\n\r\n if (!match || match[1] === undefined) {\r\n return value;\r\n }\r\n\r\n const path = match[1].split(\".\");\r\n\r\n let current: unknown = tokens;\r\n\r\n for (const key of path) {\r\n if (typeof current !== \"object\" || current === null || !(key in current)) {\r\n return \"\";\r\n }\r\n\r\n current = (current as Record<string, unknown>)[key];\r\n }\r\n\r\n if (typeof current === \"object\" && current !== null && \"value\" in current) {\r\n const tokenValue = (current as { value: unknown }).value;\r\n\r\n if (typeof tokenValue === \"string\" || typeof tokenValue === \"number\") {\r\n return tokenValue;\r\n }\r\n\r\n return \"\";\r\n }\r\n\r\n return typeof current === \"string\" || typeof current === \"number\"\r\n ? current\r\n : \"\";\r\n}\r\n","import type { CSSProperties } from \"react\";\r\nimport type { DesignTokens, TypographyStyle } from \"@/types\";\r\nimport { resolveTokenReference } from \"./resolveTokenReference\";\r\n\r\nexport function resolveTypography(\r\n typography: TypographyStyle | undefined,\r\n tokens: DesignTokens,\r\n): CSSProperties {\r\n if (!typography) return {};\r\n\r\n return {\r\n fontFamily: resolveTokenReference(typography.fontFamily, tokens) as string,\r\n fontSize: resolveTokenReference(typography.fontSize, tokens) as string,\r\n fontWeight: resolveTokenReference(typography.fontWeight, tokens),\r\n lineHeight: resolveTokenReference(typography.lineHeight, tokens),\r\n letterSpacing: resolveTokenReference(\r\n typography.letterSpacing,\r\n tokens,\r\n ) as string,\r\n };\r\n}\r\n"]}
package/dist/utils.js.map DELETED
@@ -1 +0,0 @@
1
- {"version":3,"sources":["../src/utils/createComponent.tsx","../src/utils/composeRefs.ts","../src/utils/createFromProps.ts","../src/utils/responsive.ts","../src/utils/deepMerge.ts","../src/utils/resolveTokenReference.ts","../src/utils/resolveTypography.ts"],"names":["value"],"mappings":";;;AA2CO,SAAS,gBACd,MAAA,EACoB;AACpB,EAAA,MAAM,CAAA,GAAU,KAAA,CAAA,UAAA;AAAA,IACd,MAAA,CAAO;AAAA,GACT;AACA,EAAA,IAAI,MAAA,CAAO,WAAA,EAAa,CAAA,CAAE,WAAA,GAAc,MAAA,CAAO,WAAA;AAC/C,EAAA,CAAA,CAAE,QAAQ,MAAA,CAAO,KAAA;AACjB,EAAA,OAAO,CAAA;AACT;AAEO,SAAS,WAAW,KAAA,EAA6C;AACtE,EAAA,OAAA,CACG,OAAO,KAAA,KAAU,UAAA,IACf,OAAO,UAAU,QAAA,IAAY,KAAA,KAAU,IAAA,KAC1C,OAAA,IAAY,SACZ,OAAQ,KAAA,CAA6B,KAAA,KAAU,QAAA,IAC9C,MAA6B,KAAA,KAAU,IAAA;AAE5C;;;AC3DO,SAAS,eAAkB,IAAA,EAA8C;AAC9E,EAAA,OAAO,CAAC,IAAA,KAAS;AACf,IAAA,KAAA,MAAW,OAAO,IAAA,EAAM;AACtB,MAAA,IAAI,OAAO,GAAA,KAAQ,UAAA,EAAY,GAAA,CAAI,IAAI,CAAA;AAAA,WAAA,IAC9B,GAAA,EAAM,GAAA,CAAyC,OAAA,GAAU,IAAA;AAAA,IACpE;AAAA,EACF,CAAA;AACF;;;ACJO,SAAS,gBAAkC,KAAA,EAAmC;AACnF,EAAA,OAAO;AAAA,IACL,GAAG,KAAA,CAAM,gBAAA;AAAA,IACT,GAAG,KAAA,CAAM,YAAA;AAAA,IACT,GAAG,KAAA,CAAM,cAAA;AAAA,IACT,GAAG,KAAA,CAAM;AAAA,GACX;AACF;;;ACXO,SAAS,kBACd,KAAA,EACsD;AACtD,EAAA,OAAO,OAAO,KAAA,KAAU,QAAA,IAAY,KAAA,KAAU,IAAA;AAChD;AAOO,SAAS,uBACd,KAAA,EAC4B;AAC5B,EAAA,IAAI,KAAA,KAAU,QAAQ,OAAO,KAAA,KAAU,YAAY,KAAA,CAAM,OAAA,CAAQ,KAAK,CAAA,EAAG;AACvE,IAAA,OAAO;AAAA,MACL,IAAA,EAAM,KAAA;AAAA,MACN,YAAY;AAAC,KACf;AAAA,EACF;AAEA,EAAA,MAAM,eAAA,GAAkB,KAAA;AAExB,EAAA,MAAM,EAAE,IAAA,EAAM,GAAG,UAAA,EAAW,GAAI,eAAA;AAEhC,EAAA,OAAO;AAAA,IACL,IAAA;AAAA,IACA,YAAY,MAAA,CAAO,WAAA;AAAA,MACjB,MAAA,CAAO,OAAA,CAAQ,UAAU,CAAA,CAAE,MAAA,CAAO,CAAC,GAAGA,MAAK,CAAA,KAAMA,MAAAA,KAAU,MAAS;AAAA;AACtE,GACF;AACF;AAEO,SAAS,mBAAA,CACd,OACA,OAAA,EACQ;AACR,EAAA,MAAM,UAAoB,EAAC;AAE3B,EAAA,IAAI,KAAA,CAAM,SAAS,MAAA,EAAW;AAC5B,IAAA,OAAA,CAAQ,IAAA,CAAK,OAAA,CAAQ,KAAA,CAAM,IAAI,CAAC,CAAA;AAAA,EAClC;AAEA,EAAA,KAAA,MAAW,CAAC,YAAY,IAAI,CAAA,IAAK,OAAO,OAAA,CAAQ,KAAA,CAAM,UAAU,CAAA,EAAG;AACjE,IAAA,OAAA,CAAQ,IAAA;AAAA,MACN,OACI,IAAA,CACG,QAAA,GACA,KAAA,CAAM,GAAG,EACT,GAAA,CAAI,CAAC,SAAA,KAAc,CAAA,EAAG,UAAU,CAAA,CAAA,EAAI,SAAS,EAAE,CAAA,CAC/C,IAAA,CAAK,GAAG,CAAA,GACX;AAAA,KACN;AAAA,EACF;AAEA,EAAA,OAAO,OAAA,CAAQ,MAAA,CAAO,OAAO,CAAA,CAAE,KAAK,GAAG,CAAA;AACzC;AAEO,SAAS,oBAAA,CACd,UACA,KAAA,EAC4B;AAC5B,EAAA,MAAM,YAAA,GAAe,uBAAuB,QAAQ,CAAA;AAEpD,EAAA,IAAI,UAAU,MAAA,EAAW;AACvB,IAAA,OAAO,YAAA;AAAA,EACT;AAEA,EAAA,MAAM,aAAA,GAAgB,uBAAuB,KAAK,CAAA;AAElD,EAAA,OAAO;AAAA,IACL,IAAA,EAAM,aAAA,CAAc,IAAA,IAAQ,YAAA,CAAa,IAAA;AAAA,IACzC,UAAA,EAAY;AAAA,MACV,GAAG,YAAA,CAAa,UAAA;AAAA,MAChB,GAAG,aAAA,CAAc;AAAA;AACnB,GACF;AACF;;;AC/EA,SAAS,cAAc,KAAA,EAAkD;AACvE,EAAA,OAAO,OAAO,UAAU,QAAA,IAAY,KAAA,KAAU,QAAQ,CAAC,KAAA,CAAM,QAAQ,KAAK,CAAA;AAC5E;AAEO,SAAS,SAAA,CAAa,MAAS,QAAA,EAAuB;AAC3D,EAAA,IAAI,aAAa,MAAA,EAAW;AAC1B,IAAA,OAAO,IAAA;AAAA,EACT;AAEA,EAAA,IAAI,CAAC,aAAA,CAAc,IAAI,KAAK,CAAC,aAAA,CAAc,QAAQ,CAAA,EAAG;AACpD,IAAA,OAAO,QAAA;AAAA,EACT;AAEA,EAAA,MAAM,MAAA,GAAkC;AAAA,IACtC,GAAG;AAAA,GACL;AAEA,EAAA,KAAA,MAAW,CAAC,GAAA,EAAK,KAAK,KAAK,MAAA,CAAO,OAAA,CAAQ,QAAQ,CAAA,EAAG;AACnD,IAAA,MAAM,QAAA,GAAW,OAAO,GAAG,CAAA;AAE3B,IAAA,IAAI,aAAA,CAAc,QAAQ,CAAA,IAAK,aAAA,CAAc,KAAK,CAAA,EAAG;AACnD,MAAA,MAAA,CAAO,GAAG,CAAA,GAAI,SAAA,CAAU,QAAA,EAAU,KAAK,CAAA;AAAA,IACzC,CAAA,MAAO;AACL,MAAA,MAAA,CAAO,GAAG,CAAA,GAAI,KAAA;AAAA,IAChB;AAAA,EACF;AAEA,EAAA,OAAO,MAAA;AACT;;;AC1BO,SAAS,qBAAA,CACd,OACA,MAAA,EACiB;AACjB,EAAA,IAAI,OAAO,UAAU,QAAA,EAAU;AAC7B,IAAA,OAAO,OAAO,KAAA,KAAU,QAAA,GAAW,KAAA,GAAQ,EAAA;AAAA,EAC7C;AAEA,EAAA,MAAM,KAAA,GAAQ,KAAA,CAAM,KAAA,CAAM,YAAY,CAAA;AAEtC,EAAA,IAAI,CAAC,KAAA,IAAS,KAAA,CAAM,CAAC,MAAM,MAAA,EAAW;AACpC,IAAA,OAAO,KAAA;AAAA,EACT;AAEA,EAAA,MAAM,IAAA,GAAO,KAAA,CAAM,CAAC,CAAA,CAAE,MAAM,GAAG,CAAA;AAE/B,EAAA,IAAI,OAAA,GAAmB,MAAA;AAEvB,EAAA,KAAA,MAAW,OAAO,IAAA,EAAM;AACtB,IAAA,IAAI,OAAO,OAAA,KAAY,QAAA,IAAY,YAAY,IAAA,IAAQ,EAAE,OAAO,OAAA,CAAA,EAAU;AACxE,MAAA,OAAO,EAAA;AAAA,IACT;AAEA,IAAA,OAAA,GAAW,QAAoC,GAAG,CAAA;AAAA,EACpD;AAEA,EAAA,IAAI,OAAO,OAAA,KAAY,QAAA,IAAY,OAAA,KAAY,IAAA,IAAQ,WAAW,OAAA,EAAS;AACzE,IAAA,MAAM,aAAc,OAAA,CAA+B,KAAA;AAEnD,IAAA,IAAI,OAAO,UAAA,KAAe,QAAA,IAAY,OAAO,eAAe,QAAA,EAAU;AACpE,MAAA,OAAO,UAAA;AAAA,IACT;AAEA,IAAA,OAAO,EAAA;AAAA,EACT;AAEA,EAAA,OAAO,OAAO,OAAA,KAAY,QAAA,IAAY,OAAO,OAAA,KAAY,WACrD,OAAA,GACA,EAAA;AACN;;;ACrCO,SAAS,iBAAA,CACd,YACA,MAAA,EACe;AACf,EAAA,IAAI,CAAC,UAAA,EAAY,OAAO,EAAC;AAEzB,EAAA,OAAO;AAAA,IACL,UAAA,EAAY,qBAAA,CAAsB,UAAA,CAAW,UAAA,EAAY,MAAM,CAAA;AAAA,IAC/D,QAAA,EAAU,qBAAA,CAAsB,UAAA,CAAW,QAAA,EAAU,MAAM,CAAA;AAAA,IAC3D,UAAA,EAAY,qBAAA,CAAsB,UAAA,CAAW,UAAA,EAAY,MAAM,CAAA;AAAA,IAC/D,UAAA,EAAY,qBAAA,CAAsB,UAAA,CAAW,UAAA,EAAY,MAAM,CAAA;AAAA,IAC/D,aAAA,EAAe,qBAAA;AAAA,MACb,UAAA,CAAW,aAAA;AAAA,MACX;AAAA;AACF,GACF;AACF","file":"utils.js","sourcesContent":["import * as React from \"react\";\n\nexport interface KuiSupports {\n disabled?: boolean;\n invalid?: boolean;\n required?: boolean;\n [key: string]: boolean | undefined;\n}\nexport type KuiSkeletonHint =\n | \"text\"\n | \"rect\"\n | \"circle\"\n | \"input-shaped\"\n | \"preserve\"\n | (string & {});\nexport type KuiRole =\n | \"action\"\n | \"formControl\"\n | \"overlay\"\n | \"layout\"\n | \"display\"\n | \"disclosure\"\n | \"navigation\"\n | (string & {});\n\nexport interface KuiMeta {\n formControl?: \"single\" | \"compound\";\n supports?: KuiSupports;\n skeleton?: KuiSkeletonHint;\n role?: KuiRole;\n groupSlot?: string;\n}\n\nexport type KuiComponent<P, E> = React.ForwardRefExoticComponent<\n React.PropsWithoutRef<P> & React.RefAttributes<E>\n> & { __kui: KuiMeta };\n\nexport interface CreateComponentConfig<P, E> {\n __kui: KuiMeta;\n render: (props: P, ref: React.ForwardedRef<E>) => React.ReactElement | null;\n displayName?: string;\n}\n\nexport function createComponent<P extends object, E = unknown>(\n config: CreateComponentConfig<P, E>,\n): KuiComponent<P, E> {\n const C = React.forwardRef(\n config.render as unknown as React.ForwardRefRenderFunction<E, any>,\n ) as unknown as KuiComponent<P, E>;\n if (config.displayName) C.displayName = config.displayName;\n C.__kui = config.__kui;\n return C;\n}\n\nexport function hasKuiMeta(value: unknown): value is { __kui: KuiMeta } {\n return (\n (typeof value === \"function\" ||\n (typeof value === \"object\" && value !== null)) &&\n \"__kui\" in (value as object) &&\n typeof (value as { __kui: unknown }).__kui === \"object\" &&\n (value as { __kui: unknown }).__kui !== null\n );\n}\n","import type * as React from \"react\";\ntype PossibleRef<T> = React.Ref<T> | undefined;\n\nexport function composeRefs<T>(...refs: PossibleRef<T>[]): React.RefCallback<T> {\n return (node) => {\n for (const ref of refs) {\n if (typeof ref === \"function\") ref(node);\n else if (ref) (ref as React.MutableRefObject<T | null>).current = node;\n }\n };\n}\n","export interface CreateFromPropsInput<T extends object> {\n providerDefaults?: Partial<T>;\n defaultProps?: Partial<T>;\n generatedProps?: Partial<T>;\n consumerProps?: Partial<T>;\n}\nexport function createFromProps<T extends object>(input: CreateFromPropsInput<T>): T {\n return {\n ...input.providerDefaults,\n ...input.defaultProps,\n ...input.generatedProps,\n ...input.consumerProps,\n } as T;\n}\n","import type { BaseBreakpoint, ResponsiveValue } from \"@/types\";\n\nexport function isResponsiveValue<T>(\n value: ResponsiveValue<T>,\n): value is Partial<Record<\"base\" | BaseBreakpoint, T>> {\n return typeof value === \"object\" && value !== null;\n}\n\nexport interface ResolvedResponsiveValue<T> {\n base?: T;\n responsive: Record<string, T>;\n}\n\nexport function resolveResponsiveValue<T, B extends string = string>(\n value: ResponsiveValue<T, B>,\n): ResolvedResponsiveValue<T> {\n if (value === null || typeof value !== \"object\" || Array.isArray(value)) {\n return {\n base: value,\n responsive: {},\n };\n }\n\n const responsiveValue = value as Partial<Record<\"base\" | B, T>>;\n\n const { base, ...responsive } = responsiveValue;\n\n return {\n base,\n responsive: Object.fromEntries(\n Object.entries(responsive).filter(([, value]) => value !== undefined),\n ) as Record<string, T>,\n };\n}\n\nexport function toResponsiveClasses<T>(\n value: ResolvedResponsiveValue<T>,\n resolve: (value: T) => string,\n): string {\n const classes: string[] = [];\n\n if (value.base !== undefined) {\n classes.push(resolve(value.base));\n }\n\n for (const [breakpoint, item] of Object.entries(value.responsive)) {\n classes.push(\n item\n ? item\n .toString()\n .split(\" \")\n .map((className) => `${breakpoint}:${className}`)\n .join(\" \")\n : \"\",\n );\n }\n\n return classes.filter(Boolean).join(\" \");\n}\n\nexport function mergeResponsiveValue<T, B extends string = string>(\n defaults: ResponsiveValue<T, B>,\n value?: ResponsiveValue<T, B>,\n): ResolvedResponsiveValue<T> {\n const defaultValue = resolveResponsiveValue(defaults);\n\n if (value === undefined) {\n return defaultValue;\n }\n\n const overrideValue = resolveResponsiveValue(value);\n\n return {\n base: overrideValue.base ?? defaultValue.base,\n responsive: {\n ...defaultValue.responsive,\n ...overrideValue.responsive,\n },\n };\n}\n","function isPlainObject(value: unknown): value is Record<string, unknown> {\n return typeof value === \"object\" && value !== null && !Array.isArray(value);\n}\n\nexport function deepMerge<T>(base: T, override?: unknown): T {\n if (override === undefined) {\n return base;\n }\n\n if (!isPlainObject(base) || !isPlainObject(override)) {\n return override as T;\n }\n\n const result: Record<string, unknown> = {\n ...base,\n };\n\n for (const [key, value] of Object.entries(override)) {\n const existing = result[key];\n\n if (isPlainObject(existing) && isPlainObject(value)) {\n result[key] = deepMerge(existing, value);\n } else {\n result[key] = value;\n }\n }\n\n return result as T;\n}\n","import type { DesignTokens } from \"@/types\";\r\n\r\nexport function resolveTokenReference(\r\n value: unknown,\r\n tokens: DesignTokens,\r\n): string | number {\r\n if (typeof value !== \"string\") {\r\n return typeof value === \"number\" ? value : \"\";\r\n }\r\n\r\n const match = value.match(/^\\{(.+)\\}$/);\r\n\r\n if (!match || match[1] === undefined) {\r\n return value;\r\n }\r\n\r\n const path = match[1].split(\".\");\r\n\r\n let current: unknown = tokens;\r\n\r\n for (const key of path) {\r\n if (typeof current !== \"object\" || current === null || !(key in current)) {\r\n return \"\";\r\n }\r\n\r\n current = (current as Record<string, unknown>)[key];\r\n }\r\n\r\n if (typeof current === \"object\" && current !== null && \"value\" in current) {\r\n const tokenValue = (current as { value: unknown }).value;\r\n\r\n if (typeof tokenValue === \"string\" || typeof tokenValue === \"number\") {\r\n return tokenValue;\r\n }\r\n\r\n return \"\";\r\n }\r\n\r\n return typeof current === \"string\" || typeof current === \"number\"\r\n ? current\r\n : \"\";\r\n}\r\n","import type { CSSProperties } from \"react\";\r\nimport type { DesignTokens, TypographyStyle } from \"@/types\";\r\nimport { resolveTokenReference } from \"./resolveTokenReference\";\r\n\r\nexport function resolveTypography(\r\n typography: TypographyStyle | undefined,\r\n tokens: DesignTokens,\r\n): CSSProperties {\r\n if (!typography) return {};\r\n\r\n return {\r\n fontFamily: resolveTokenReference(typography.fontFamily, tokens) as string,\r\n fontSize: resolveTokenReference(typography.fontSize, tokens) as string,\r\n fontWeight: resolveTokenReference(typography.fontWeight, tokens),\r\n lineHeight: resolveTokenReference(typography.lineHeight, tokens),\r\n letterSpacing: resolveTokenReference(\r\n typography.letterSpacing,\r\n tokens,\r\n ) as string,\r\n };\r\n}\r\n"]}