tailwind-styled-v4 4.0.0 → 5.0.0

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 (77) hide show
  1. package/dist/animate.cjs +754 -235
  2. package/dist/animate.cjs.map +1 -1
  3. package/dist/animate.d.cts +55 -99
  4. package/dist/animate.d.ts +55 -99
  5. package/dist/animate.js +742 -235
  6. package/dist/animate.js.map +1 -1
  7. package/dist/chunk-VZEJV27B.js +11 -0
  8. package/dist/chunk-VZEJV27B.js.map +1 -0
  9. package/dist/chunk-Y5D3E72P.cjs +13 -0
  10. package/dist/chunk-Y5D3E72P.cjs.map +1 -0
  11. package/dist/css.cjs +61 -11
  12. package/dist/css.cjs.map +1 -1
  13. package/dist/css.d.cts +3 -18
  14. package/dist/css.d.ts +3 -18
  15. package/dist/css.js +61 -11
  16. package/dist/css.js.map +1 -1
  17. package/dist/devtools.cjs +200 -88
  18. package/dist/devtools.cjs.map +1 -1
  19. package/dist/devtools.js +200 -88
  20. package/dist/devtools.js.map +1 -1
  21. package/dist/index.cjs +430 -135
  22. package/dist/index.cjs.map +1 -1
  23. package/dist/index.d.cts +74 -3
  24. package/dist/index.d.ts +74 -3
  25. package/dist/index.js +415 -132
  26. package/dist/index.js.map +1 -1
  27. package/dist/next.cjs +118 -138
  28. package/dist/next.cjs.map +1 -1
  29. package/dist/next.d.cts +28 -19
  30. package/dist/next.d.ts +28 -19
  31. package/dist/next.js +111 -131
  32. package/dist/next.js.map +1 -1
  33. package/dist/preset.cjs +312 -18
  34. package/dist/preset.cjs.map +1 -1
  35. package/dist/preset.d.cts +29 -2
  36. package/dist/preset.d.ts +29 -2
  37. package/dist/preset.js +311 -19
  38. package/dist/preset.js.map +1 -1
  39. package/dist/turbopackLoader.cjs +24 -2676
  40. package/dist/turbopackLoader.cjs.map +1 -1
  41. package/dist/turbopackLoader.d.cts +3 -13
  42. package/dist/turbopackLoader.d.ts +3 -13
  43. package/dist/turbopackLoader.js +24 -2670
  44. package/dist/turbopackLoader.js.map +1 -1
  45. package/dist/vite.cjs +90 -57
  46. package/dist/vite.cjs.map +1 -1
  47. package/dist/vite.d.cts +35 -6
  48. package/dist/vite.d.ts +35 -6
  49. package/dist/vite.js +90 -58
  50. package/dist/vite.js.map +1 -1
  51. package/dist/webpackLoader.cjs +27 -2646
  52. package/dist/webpackLoader.cjs.map +1 -1
  53. package/dist/webpackLoader.d.cts +3 -10
  54. package/dist/webpackLoader.d.ts +3 -10
  55. package/dist/webpackLoader.js +27 -2640
  56. package/dist/webpackLoader.js.map +1 -1
  57. package/package.json +31 -28
  58. package/dist/astTransform-ua-eapqs.d.cts +0 -41
  59. package/dist/astTransform-ua-eapqs.d.ts +0 -41
  60. package/dist/compiler.cjs +0 -3594
  61. package/dist/compiler.cjs.map +0 -1
  62. package/dist/compiler.d.cts +0 -716
  63. package/dist/compiler.d.ts +0 -716
  64. package/dist/compiler.js +0 -3535
  65. package/dist/compiler.js.map +0 -1
  66. package/dist/plugins.cjs +0 -396
  67. package/dist/plugins.cjs.map +0 -1
  68. package/dist/plugins.d.cts +0 -231
  69. package/dist/plugins.d.ts +0 -231
  70. package/dist/plugins.js +0 -381
  71. package/dist/plugins.js.map +0 -1
  72. package/dist/theme.cjs +0 -154
  73. package/dist/theme.cjs.map +0 -1
  74. package/dist/theme.d.cts +0 -181
  75. package/dist/theme.d.ts +0 -181
  76. package/dist/theme.js +0 -148
  77. package/dist/theme.js.map +0 -1
package/dist/index.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"sources":["../src/containerQuery.ts","../src/stateEngine.ts","../src/createComponent.ts","../src/cv.ts","../src/cx.ts","../src/liveTokenEngine.ts","../src/styledSystem.ts","../src/twProxy.ts","../src/twTheme.ts"],"names":["Component","_a","twMerge","t","cv","_b","_c","_d","setTokens"],"mappings":"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","file":"index.js","sourcesContent":["/**\n * tailwind-styled-v4 — Container Query Engine\n *\n * Generates @container rules from a simple breakpoint config.\n *\n * Usage:\n * const Card = tw.div({\n * base: \"p-4\",\n * container: {\n * sm: \"flex-col\", // @container (min-width: 320px)\n * md: \"flex-row\", // @container (min-width: 640px)\n * lg: \"grid-cols-3\", // @container (min-width: 1024px)\n * },\n * containerName: \"card\",\n * })\n *\n * // Wrap with container context:\n * const CardWrapper = tw.div`@container`\n *\n * Named containers:\n * const SidebarCard = tw.div({\n * base: \"p-2\",\n * container: { lg: \"text-sm\" },\n * containerName: \"sidebar\",\n * })\n * // Generates: @container sidebar (min-width: 1024px) { ... }\n */\n\nimport type { ContainerConfig } from \"./types\"\n\n// ─────────────────────────────────────────────────────────────────────────────\n// Breakpoint map — matches Tailwind defaults\n// ─────────────────────────────────────────────────────────────────────────────\n\nconst CONTAINER_BREAKPOINTS: Record<string, string> = {\n xs: \"240px\",\n sm: \"320px\",\n md: \"640px\",\n lg: \"1024px\",\n xl: \"1280px\",\n \"2xl\": \"1536px\",\n}\n\n// ─────────────────────────────────────────────────────────────────────────────\n// Registry\n// ─────────────────────────────────────────────────────────────────────────────\n\nexport interface ContainerEntry {\n id: string\n tag: string\n containerName?: string\n breakpoints: Array<{ minWidth: string; classes: string }>\n cssInjected: boolean\n}\n\nconst containerRegistry = new Map<string, ContainerEntry>()\n\nif (typeof window !== \"undefined\") {\n ;(window as any).__TW_CONTAINER_REGISTRY__ = containerRegistry\n}\n\n// ─────────────────────────────────────────────────────────────────────────────\n// Hash\n// ─────────────────────────────────────────────────────────────────────────────\n\nfunction hashContainer(tag: string, container: ContainerConfig, name?: string): string {\n const key = tag + (name ?? \"\") + JSON.stringify(Object.entries(container).sort())\n let hash = 5381\n for (let i = 0; i < key.length; i++) {\n hash = ((hash << 5) + hash) ^ key.charCodeAt(i)\n }\n return `tw-cq-${Math.abs(hash).toString(36).slice(0, 6)}`\n}\n\n// ─────────────────────────────────────────────────────────────────────────────\n// CSS generator\n// ─────────────────────────────────────────────────────────────────────────────\n\n/** Minimal Tailwind → CSS for container query contexts */\nconst LAYOUT_MAP: Record<string, string> = {\n \"flex-col\": \"flex-direction:column\",\n \"flex-row\": \"flex-direction:row\",\n \"flex-wrap\": \"flex-wrap:wrap\",\n \"flex-nowrap\": \"flex-wrap:nowrap\",\n \"flex-1\": \"flex:1 1 0%\",\n hidden: \"display:none\",\n block: \"display:block\",\n flex: \"display:flex\",\n grid: \"display:grid\",\n \"grid-cols-1\": \"grid-template-columns:repeat(1,minmax(0,1fr))\",\n \"grid-cols-2\": \"grid-template-columns:repeat(2,minmax(0,1fr))\",\n \"grid-cols-3\": \"grid-template-columns:repeat(3,minmax(0,1fr))\",\n \"grid-cols-4\": \"grid-template-columns:repeat(4,minmax(0,1fr))\",\n \"grid-cols-6\": \"grid-template-columns:repeat(6,minmax(0,1fr))\",\n \"grid-cols-12\": \"grid-template-columns:repeat(12,minmax(0,1fr))\",\n \"text-sm\": \"font-size:0.875rem;line-height:1.25rem\",\n \"text-base\": \"font-size:1rem;line-height:1.5rem\",\n \"text-lg\": \"font-size:1.125rem;line-height:1.75rem\",\n \"text-xl\": \"font-size:1.25rem;line-height:1.75rem\",\n \"text-2xl\": \"font-size:1.5rem;line-height:2rem\",\n \"text-xs\": \"font-size:0.75rem;line-height:1rem\",\n \"p-2\": \"padding:0.5rem\",\n \"p-4\": \"padding:1rem\",\n \"p-6\": \"padding:1.5rem\",\n \"p-8\": \"padding:2rem\",\n \"px-2\": \"padding-left:0.5rem;padding-right:0.5rem\",\n \"px-4\": \"padding-left:1rem;padding-right:1rem\",\n \"px-6\": \"padding-left:1.5rem;padding-right:1.5rem\",\n \"py-2\": \"padding-top:0.5rem;padding-bottom:0.5rem\",\n \"py-4\": \"padding-top:1rem;padding-bottom:1rem\",\n \"gap-2\": \"gap:0.5rem\",\n \"gap-4\": \"gap:1rem\",\n \"gap-6\": \"gap:1.5rem\",\n \"gap-8\": \"gap:2rem\",\n \"w-full\": \"width:100%\",\n \"w-1/2\": \"width:50%\",\n \"w-1/3\": \"width:33.333333%\",\n \"w-2/3\": \"width:66.666667%\",\n \"max-w-sm\": \"max-width:24rem\",\n \"max-w-md\": \"max-width:28rem\",\n \"max-w-lg\": \"max-width:32rem\",\n \"max-w-xl\": \"max-width:36rem\",\n \"items-center\": \"align-items:center\",\n \"items-start\": \"align-items:flex-start\",\n \"items-end\": \"align-items:flex-end\",\n \"justify-center\": \"justify-content:center\",\n \"justify-between\": \"justify-content:space-between\",\n \"justify-start\": \"justify-content:flex-start\",\n \"justify-end\": \"justify-content:flex-end\",\n}\n\nfunction layoutClassesToCss(classes: string): string {\n const decls: string[] = []\n for (const cls of classes.trim().split(/\\s+/)) {\n if (LAYOUT_MAP[cls]) decls.push(LAYOUT_MAP[cls])\n else if (cls.startsWith(\"w-[\")) {\n const val = cls.match(/\\[(.+)\\]/)?.[1]\n if (val) decls.push(`width:${val}`)\n } else if (cls.startsWith(\"max-w-[\")) {\n const val = cls.match(/\\[(.+)\\]/)?.[1]\n if (val) decls.push(`max-width:${val}`)\n }\n }\n return decls.join(\";\")\n}\n\nfunction buildContainerRules(\n id: string,\n container: ContainerConfig,\n containerName?: string\n): string {\n const rules: string[] = []\n\n for (const [key, value] of Object.entries(container)) {\n let minWidth: string\n let classes: string\n\n if (typeof value === \"string\") {\n minWidth = CONTAINER_BREAKPOINTS[key] ?? key\n classes = value\n } else {\n minWidth = value.minWidth ?? CONTAINER_BREAKPOINTS[key] ?? key\n classes = value.classes\n }\n\n const css = layoutClassesToCss(classes)\n if (!css) continue\n\n const query = containerName\n ? `@container ${containerName} (min-width: ${minWidth})`\n : `@container (min-width: ${minWidth})`\n\n rules.push(`${query}{.${id}{${css}}}`)\n }\n\n return rules.join(\"\\n\")\n}\n\n// ─────────────────────────────────────────────────────────────────────────────\n// Style injection\n// ─────────────────────────────────────────────────────────────────────────────\n\nfunction injectContainerStyles(\n id: string,\n container: ContainerConfig,\n containerName?: string\n): void {\n if (typeof document === \"undefined\") return\n const styleId = `tw-cq-${id}`\n if (document.getElementById(styleId)) return\n\n const css = buildContainerRules(id, container, containerName)\n if (!css) return\n\n // Try batched injector first (available when runtime-css is installed)\n try {\n // eslint-disable-next-line @typescript-eslint/no-var-requires\n const { batchedInject } = require(\"@tailwind-styled/runtime-css/batched\") as {\n batchedInject: (css: string) => void\n }\n for (const rule of css.split(\"\\n\").filter(Boolean)) batchedInject(rule)\n return\n } catch {\n // Fallback: per-element style tag\n }\n\n const style = document.createElement(\"style\")\n style.id = styleId\n style.setAttribute(\"data-tw-container\", id)\n style.textContent = css\n document.head.appendChild(style)\n}\n\n// ─────────────────────────────────────────────────────────────────────────────\n// Public API\n// ─────────────────────────────────────────────────────────────────────────────\n\nexport interface ContainerQueryResult {\n containerClass: string\n hasContainer: true\n}\n\nexport function processContainer(\n tag: string,\n container: ContainerConfig,\n containerName?: string\n): ContainerQueryResult {\n const id = hashContainer(tag, container, containerName)\n\n if (!containerRegistry.has(id)) {\n const breakpoints = Object.entries(container).map(([key, value]) => ({\n minWidth: CONTAINER_BREAKPOINTS[key] ?? key,\n classes: typeof value === \"string\" ? value : value.classes,\n }))\n containerRegistry.set(id, {\n id,\n tag,\n containerName,\n breakpoints,\n cssInjected: false,\n })\n }\n\n injectContainerStyles(id, container, containerName)\n containerRegistry.get(id)!.cssInjected = true\n\n return { containerClass: id, hasContainer: true }\n}\n\nexport function generateContainerCss(\n tag: string,\n container: ContainerConfig,\n containerName?: string\n): string {\n const id = hashContainer(tag, container, containerName)\n return buildContainerRules(id, container, containerName)\n}\n\nexport function getContainerRegistry(): Map<string, ContainerEntry> {\n return containerRegistry\n}\n","/**\n * tailwind-styled-v4 — Reactive State Engine\n *\n * Zero-JS CSS state management via data attributes.\n * No React re-render needed for style changes.\n *\n * How it works:\n * 1. tw.button({ state: { active: \"bg-blue-500\", loading: \"opacity-70\" } })\n * 2. State engine generates a unique class + injects CSS:\n * .tw-s-abc123[data-active=\"true\"] { @apply bg-blue-500; }\n * .tw-s-abc123[data-loading=\"true\"] { @apply opacity-70; }\n * 3. Component renders with the state class\n * 4. User sets data-active=\"true\" directly — no state needed\n *\n * Devtools integration:\n * All components register to __TW_STATE_REGISTRY__ for devtools inspection.\n */\n\nimport type { StateConfig } from \"./types\"\n\n// ─────────────────────────────────────────────────────────────────────────────\n// Registry — tracks all state-enabled components\n// ─────────────────────────────────────────────────────────────────────────────\n\nexport interface StateComponentEntry {\n id: string\n tag: string\n states: string[]\n cssInjected: boolean\n}\n\nconst stateRegistry = new Map<string, StateComponentEntry>()\n\nif (typeof window !== \"undefined\") {\n ;(window as any).__TW_STATE_REGISTRY__ = stateRegistry\n}\n\n// ─────────────────────────────────────────────────────────────────────────────\n// Deterministic hash — same config → same class (no re-injection on HMR)\n// ─────────────────────────────────────────────────────────────────────────────\n\nfunction hashState(tag: string, state: StateConfig): string {\n const key = tag + JSON.stringify(Object.entries(state).sort())\n let hash = 5381\n for (let i = 0; i < key.length; i++) {\n hash = ((hash << 5) + hash) ^ key.charCodeAt(i)\n }\n return `tw-s-${Math.abs(hash).toString(36).slice(0, 6)}`\n}\n\n// ─────────────────────────────────────────────────────────────────────────────\n// CSS generator — Tailwind class → plain CSS via CSSOM\n// ─────────────────────────────────────────────────────────────────────────────\n\n/**\n * Map Tailwind utility classes to inline CSS declarations.\n * Subset covers all common state-driven utilities.\n * For full coverage the compiler strips this and uses the real Tailwind engine.\n */\nconst TW_MAP: Record<string, string> = {\n // Display\n hidden: \"display:none\",\n block: \"display:block\",\n flex: \"display:flex\",\n inline: \"display:inline\",\n \"inline-flex\": \"display:inline-flex\",\n grid: \"display:grid\",\n // Opacity\n \"opacity-0\": \"opacity:0\",\n \"opacity-5\": \"opacity:0.05\",\n \"opacity-10\": \"opacity:0.1\",\n \"opacity-20\": \"opacity:0.2\",\n \"opacity-25\": \"opacity:0.25\",\n \"opacity-30\": \"opacity:0.3\",\n \"opacity-40\": \"opacity:0.4\",\n \"opacity-50\": \"opacity:0.5\",\n \"opacity-60\": \"opacity:0.6\",\n \"opacity-70\": \"opacity:0.7\",\n \"opacity-75\": \"opacity:0.75\",\n \"opacity-80\": \"opacity:0.8\",\n \"opacity-90\": \"opacity:0.9\",\n \"opacity-95\": \"opacity:0.95\",\n \"opacity-100\": \"opacity:1\",\n // Cursor\n \"cursor-pointer\": \"cursor:pointer\",\n \"cursor-not-allowed\": \"cursor:not-allowed\",\n \"cursor-default\": \"cursor:default\",\n \"cursor-wait\": \"cursor:wait\",\n \"cursor-move\": \"cursor:move\",\n \"cursor-grab\": \"cursor:grab\",\n \"cursor-grabbing\": \"cursor:grabbing\",\n // Pointer events\n \"pointer-events-none\": \"pointer-events:none\",\n \"pointer-events-auto\": \"pointer-events:auto\",\n // Scale\n \"scale-90\": \"transform:scale(0.9)\",\n \"scale-95\": \"transform:scale(0.95)\",\n \"scale-100\": \"transform:scale(1)\",\n \"scale-105\": \"transform:scale(1.05)\",\n \"scale-110\": \"transform:scale(1.1)\",\n // Translate\n \"translate-x-0\": \"transform:translateX(0)\",\n \"translate-y-0\": \"transform:translateY(0)\",\n \"-translate-x-1\": \"transform:translateX(-0.25rem)\",\n \"-translate-y-1\": \"transform:translateY(-0.25rem)\",\n \"translate-x-1\": \"transform:translateX(0.25rem)\",\n \"translate-y-1\": \"transform:translateY(0.25rem)\",\n // Ring\n ring: \"box-shadow:0 0 0 3px rgba(59,130,246,0.5)\",\n \"ring-2\": \"box-shadow:0 0 0 2px rgba(59,130,246,0.5)\",\n \"ring-4\": \"box-shadow:0 0 0 4px rgba(59,130,246,0.5)\",\n \"ring-inset\": \"box-shadow:inset 0 0 0 3px rgba(59,130,246,0.5)\",\n // Border\n border: \"border-width:1px\",\n \"border-2\": \"border-width:2px\",\n \"border-transparent\": \"border-color:transparent\",\n // Outline\n \"outline-none\": \"outline:2px solid transparent;outline-offset:2px\",\n outline: \"outline:2px solid currentColor\",\n // Overflow\n \"overflow-hidden\": \"overflow:hidden\",\n \"overflow-auto\": \"overflow:auto\",\n \"overflow-scroll\": \"overflow:scroll\",\n // Text decoration\n underline: \"text-decoration-line:underline\",\n \"no-underline\": \"text-decoration-line:none\",\n \"line-through\": \"text-decoration-line:line-through\",\n // Font weight\n \"font-bold\": \"font-weight:700\",\n \"font-semibold\": \"font-weight:600\",\n \"font-medium\": \"font-weight:500\",\n \"font-normal\": \"font-weight:400\",\n // Background colors (common)\n \"bg-transparent\": \"background-color:transparent\",\n \"bg-white\": \"background-color:#fff\",\n \"bg-black\": \"background-color:#000\",\n \"bg-blue-500\": \"background-color:rgb(59,130,246)\",\n \"bg-blue-600\": \"background-color:rgb(37,99,235)\",\n \"bg-red-500\": \"background-color:rgb(239,68,68)\",\n \"bg-green-500\": \"background-color:rgb(34,197,94)\",\n \"bg-yellow-500\": \"background-color:rgb(234,179,8)\",\n \"bg-zinc-900\": \"background-color:rgb(24,24,27)\",\n \"bg-zinc-800\": \"background-color:rgb(39,39,42)\",\n // Text colors\n \"text-white\": \"color:#fff\",\n \"text-black\": \"color:#000\",\n \"text-blue-500\": \"color:rgb(59,130,246)\",\n \"text-red-500\": \"color:rgb(239,68,68)\",\n \"text-zinc-400\": \"color:rgb(161,161,170)\",\n \"text-zinc-500\": \"color:rgb(113,113,122)\",\n}\n\nfunction twClassesToCss(classes: string): string {\n const decls: string[] = []\n for (const cls of classes.trim().split(/\\s+/)) {\n if (TW_MAP[cls]) decls.push(TW_MAP[cls])\n // Arbitrary values: bg-[#f00] color-[red]\n else if (cls.includes(\"[\") && cls.includes(\"]\")) {\n const val = cls.match(/\\[(.+)\\]/)?.[1]\n if (!val) continue\n if (cls.startsWith(\"bg-[\")) decls.push(`background-color:${val}`)\n else if (cls.startsWith(\"text-[\")) decls.push(`color:${val}`)\n else if (cls.startsWith(\"w-[\")) decls.push(`width:${val}`)\n else if (cls.startsWith(\"h-[\")) decls.push(`height:${val}`)\n else if (cls.startsWith(\"opacity-[\")) decls.push(`opacity:${val}`)\n }\n }\n return decls.join(\";\")\n}\n\n// ─────────────────────────────────────────────────────────────────────────────\n// Style injection — batched for performance (FIX CSS Rule Batching)\n// ─────────────────────────────────────────────────────────────────────────────\n\nfunction injectStateStyles(id: string, state: StateConfig): void {\n if (typeof document === \"undefined\") return\n\n const styleId = `tw-state-${id}`\n if (document.getElementById(styleId)) return // already injected\n\n const rules: string[] = []\n\n for (const [stateName, classes] of Object.entries(state)) {\n const css = twClassesToCss(classes)\n if (css) {\n rules.push(`.${id}[data-${stateName}=\"true\"]{${css}}`)\n }\n }\n\n if (rules.length === 0) return\n\n // Try batched injector first (available when runtime-css is installed)\n try {\n // eslint-disable-next-line @typescript-eslint/no-var-requires\n const { batchedInject } = require(\"@tailwind-styled/runtime-css/batched\") as {\n batchedInject: (css: string) => void\n }\n for (const rule of rules) batchedInject(rule)\n return\n } catch {\n // Fallback: per-element style tag (original behavior)\n }\n\n const style = document.createElement(\"style\")\n style.id = styleId\n style.setAttribute(\"data-tw-state\", id)\n style.textContent = rules.join(\"\\n\")\n document.head.appendChild(style)\n}\n\n// ─────────────────────────────────────────────────────────────────────────────\n// Public API\n// ─────────────────────────────────────────────────────────────────────────────\n\nexport interface StateEngineResult {\n /** CSS class to add to the component */\n stateClass: string\n /** Whether this component uses state (for SSR data attributes) */\n hasState: true\n /** List of state names (for devtools) */\n stateNames: string[]\n}\n\n/**\n * Process a StateConfig for a component.\n * Returns the state class and injects CSS (client-side only).\n */\nexport function processState(tag: string, state: StateConfig): StateEngineResult {\n const id = hashState(tag, state)\n const stateNames = Object.keys(state)\n\n // Register for devtools\n if (!stateRegistry.has(id)) {\n stateRegistry.set(id, {\n id,\n tag,\n states: stateNames,\n cssInjected: false,\n })\n }\n\n // Inject CSS (client only)\n injectStateStyles(id, state)\n\n // Mark as injected\n const entry = stateRegistry.get(id)!\n entry.cssInjected = true\n\n return { stateClass: id, hasState: true, stateNames }\n}\n\n/**\n * Generate SSR-safe CSS string for a state config.\n * Used by SSR to inject styles into <head>.\n */\nexport function generateStateCss(tag: string, state: StateConfig): string {\n const id = hashState(tag, state)\n const rules: string[] = []\n\n for (const [stateName, classes] of Object.entries(state)) {\n const css = twClassesToCss(classes)\n if (css) {\n rules.push(`.${id}[data-${stateName}=\"true\"]{${css}}`)\n }\n }\n\n return rules.join(\"\\n\")\n}\n\n/**\n * Get the state registry (for devtools).\n */\nexport function getStateRegistry(): Map<string, StateComponentEntry> {\n return stateRegistry\n}\n","/**\n * tailwind-styled-v4 v3 — createComponent\n *\n * v3 additions:\n * - StateEngine integration: state key → data-attr CSS\n * - ContainerQuery integration: container key → @container CSS\n *\n * Fixes from v2:\n * #03 — filterProps: dynamic based on actual variant keys\n * #07 — extend(): always use originalTag, not previous forwardRef wrapper\n */\n\nimport React from \"react\"\nimport { twMerge } from \"tailwind-merge\"\nimport { processContainer } from \"./containerQuery\"\nimport { processState } from \"./stateEngine\"\nimport type { ComponentConfig, TwStyledComponent } from \"./types\"\n\n// ─────────────────────────────────────────────────────────────────────────────\n// Prop filter — FIX #03: dynamic based on actual variant keys\n// ─────────────────────────────────────────────────────────────────────────────\n\nconst ALWAYS_BLOCKED = new Set([\"base\", \"_ref\", \"state\", \"container\", \"containerName\"])\n\nfunction makeFilterProps(variantKeys: Set<string>) {\n return function filterProps(props: Record<string, any>): Record<string, any> {\n const out: Record<string, any> = {}\n for (const key in props) {\n if (variantKeys.has(key)) continue\n if (key.startsWith(\"$\")) continue\n if (ALWAYS_BLOCKED.has(key)) continue\n out[key] = props[key]\n }\n return out\n }\n}\n\n// ─────────────────────────────────────────────────────────────────────────────\n// Variant resolver\n// ─────────────────────────────────────────────────────────────────────────────\n\nfunction resolveVariants(\n variants: Record<string, Record<string, string>>,\n props: Record<string, any>,\n defaults: Record<string, string>\n): string {\n const classes: string[] = []\n for (const key in variants) {\n const val = props[key] ?? defaults[key]\n if (val !== undefined && variants[key][String(val)]) {\n classes.push(variants[key][String(val)])\n }\n }\n return classes.join(\" \")\n}\n\nfunction resolveCompound(\n compounds: Array<{ class: string; [key: string]: any }>,\n props: Record<string, any>\n): string {\n const classes: string[] = []\n for (const compound of compounds) {\n const { class: cls, ...conditions } = compound\n const match = Object.entries(conditions).every(([k, v]) => props[k] === v)\n if (match) classes.push(cls)\n }\n return classes.join(\" \")\n}\n\n// ─────────────────────────────────────────────────────────────────────────────\n// createComponent\n// ─────────────────────────────────────────────────────────────────────────────\n\nexport function createComponent<P extends object = Record<string, any>>(\n tag: any,\n config: string | ComponentConfig\n): TwStyledComponent<P> {\n const isStatic = typeof config === \"string\"\n\n const base = isStatic ? (config as string) : (config.base ?? \"\")\n const variants = isStatic ? {} : (config.variants ?? {})\n const compoundVariants = isStatic ? [] : (config.compoundVariants ?? [])\n const defaultVariants = isStatic ? {} : (config.defaultVariants ?? {})\n const stateConfig = isStatic ? undefined : config.state\n const containerConfig = isStatic ? undefined : config.container\n const containerName = isStatic ? undefined : config.containerName\n\n // Process state and container (injects CSS client-side)\n const stateResult = stateConfig\n ? processState(typeof tag === \"string\" ? tag : \"component\", stateConfig)\n : null\n const containerResult = containerConfig\n ? processContainer(typeof tag === \"string\" ? tag : \"component\", containerConfig, containerName)\n : null\n\n // Extra classes from state + container engines\n const engineClasses = [stateResult?.stateClass, containerResult?.containerClass]\n .filter(Boolean)\n .join(\" \")\n\n // FIX #03: build dynamic filter based on actual variant keys\n const variantKeySet = new Set(Object.keys(variants))\n const filterProps = makeFilterProps(variantKeySet)\n\n const tagStr = typeof tag === \"string\" ? tag : (tag.displayName ?? \"Component\")\n\n // ── static shortcut ───────────────────────────────────────────────────\n if (isStatic || Object.keys(variants).length === 0) {\n const Component = React.forwardRef<any, any>((props, ref) => {\n const { className, ...rest } = props\n return React.createElement(tag, {\n ref,\n ...filterProps(rest),\n className: twMerge(base, engineClasses, className),\n })\n })\n\n Component.displayName = `tw.${tagStr}`\n attachExtend(Component, tag, base, config)\n return Component as unknown as TwStyledComponent<P>\n }\n\n // ── variant path ──────────────────────────────────────────────────────\n const Component = React.forwardRef<any, any>((props, ref) => {\n const { className } = props\n const variantClasses = resolveVariants(variants, props, defaultVariants)\n const compoundClasses = resolveCompound(compoundVariants, props)\n\n return React.createElement(tag, {\n ref,\n ...filterProps(props),\n className: twMerge(base, variantClasses, compoundClasses, engineClasses, className),\n })\n })\n\n Component.displayName = `tw.${tagStr}`\n attachExtend(Component, tag, base, config)\n return Component as unknown as TwStyledComponent<P>\n}\n\n// ─────────────────────────────────────────────────────────────────────────────\n// attachExtend — FIX #07\n// ─────────────────────────────────────────────────────────────────────────────\n\nfunction attachExtend(\n Component: any,\n originalTag: any,\n base: string,\n config: string | ComponentConfig\n) {\n Component.extend = (strings: TemplateStringsArray, ..._exprs: any[]) => {\n const extra = strings.raw.join(\"\").trim().replace(/\\s+/g, \" \")\n const merged = twMerge(base, extra)\n return createComponent(\n originalTag,\n typeof config === \"string\" ? merged : { ...(config as ComponentConfig), base: merged }\n )\n }\n\n Component.withVariants = (newConfig: Partial<ComponentConfig>) => {\n const existing = typeof config === \"object\" ? config : {}\n return createComponent(originalTag, {\n ...existing,\n base,\n variants: { ...(existing.variants ?? {}), ...(newConfig.variants ?? {}) },\n compoundVariants: [\n ...(existing.compoundVariants ?? []),\n ...(newConfig.compoundVariants ?? []),\n ],\n defaultVariants: {\n ...(existing.defaultVariants ?? {}),\n ...(newConfig.defaultVariants ?? {}),\n },\n })\n }\n\n // .animate() — integrates with @tailwind-styled/animate\n // Lazy require so animate package is optional\n Component.animate = (opts: any) => {\n try {\n const { animate: animateFn } =\n require(\"@tailwind-styled/animate\") as typeof import(\"@tailwind-styled/animate\")\n const animClass = animateFn(opts)\n const merged = twMerge(base, animClass)\n return createComponent(\n originalTag,\n typeof config === \"string\" ? merged : { ...(config as ComponentConfig), base: merged }\n )\n } catch {\n console.warn(\"[tailwind-styled-v4] .animate() requires @tailwind-styled/animate\")\n return Component\n }\n }\n}\n","/**\n * tailwind-styled-v4 v2 — cv()\n *\n * UPGRADE #3: cv() now infers exact variant values from config.\n *\n * Standalone class variant function — no React needed.\n * Compatible with shadcn/ui, Radix, Headless UI.\n *\n * @example\n * const button = cv({\n * base: \"px-4 py-2 rounded-lg\",\n * variants: { size: { sm: \"text-sm\", lg: \"text-lg\" } },\n * defaultVariants: { size: \"sm\" }\n * })\n *\n * // BEFORE: button({ size: \"xl\" }) — no error (size was string)\n * // AFTER: button({ size: \"xl\" }) — TypeScript ERROR: \"xl\" not in \"sm\" | \"lg\" ✓\n *\n * button({ size: \"lg\" }) → \"px-4 py-2 rounded-lg text-lg\"\n */\n\nimport { twMerge } from \"tailwind-merge\"\nimport type { ComponentConfig, CvFn, InferVariantProps } from \"./types\"\n\nexport function cv<C extends ComponentConfig>(config: C): CvFn<C> {\n const { base = \"\", variants = {}, compoundVariants = [], defaultVariants = {} } = config\n\n return (\n props: InferVariantProps<C> & { className?: string } & Record<string, any> = {} as any\n ): string => {\n const classes: string[] = [base]\n\n for (const key in variants) {\n const val = (props as any)[key] ?? defaultVariants[key]\n if (val !== undefined && (variants as any)[key][String(val)]) {\n classes.push((variants as any)[key][String(val)])\n }\n }\n\n for (const compound of compoundVariants) {\n const { class: cls, ...conditions } = compound\n const match = Object.entries(conditions).every(([k, v]) => (props as any)[k] === v)\n if (match) classes.push(cls)\n }\n\n if (props.className) classes.push(props.className)\n\n return twMerge(...classes)\n }\n}\n","/**\n * tailwind-styled-v4 v2 — cx / cn\n *\n * FIX #09: Rename for clarity — behavior was confusing with two near-identical utils.\n *\n * BEFORE:\n * cx() → simple join, no conflict resolution → cx(\"p-4\", \"p-8\") = \"p-4 p-8\" (WRONG)\n * cxm() → twMerge, correct — but obscure name\n *\n * AFTER:\n * cn() → simple join (for cases where you know there's no conflict)\n * cx() → twMerge-powered, conflict-aware (recommended for most use cases)\n * cxm() → kept as alias for cx() for backward compat\n */\n\nimport { twMerge } from \"tailwind-merge\"\n\ntype ClassValue = string | undefined | null | false | 0\n\n/**\n * cn — simple class name joiner (no conflict resolution).\n * Use when you know classes don't conflict.\n *\n * FIX #09: Previously named `cx`. Renamed to `cn` for clarity.\n *\n * @example cn(\"p-4\", isActive && \"opacity-100\") → \"p-4 opacity-100\"\n */\nexport function cn(...inputs: ClassValue[]): string {\n return inputs.filter(Boolean).join(\" \").replace(/\\s+/g, \" \").trim()\n}\n\n/**\n * cx — conflict-aware class merger using tailwind-merge.\n * Recommended for combining Tailwind classes where conflicts are possible.\n *\n * FIX #09: Previously named `cxm`. Renamed to `cx` as the primary utility.\n *\n * @example cx(\"p-4 p-8\") → \"p-8\" (conflict resolved, last wins)\n * @example cx(\"bg-red-500\", \"bg-blue-500\") → \"bg-blue-500\"\n */\nexport function cx(...inputs: ClassValue[]): string {\n return twMerge(...(inputs.filter(Boolean) as string[]))\n}\n\n/**\n * cxm — alias for cx(), kept for backward compatibility.\n * @deprecated Use cx() instead.\n */\nexport const cxm = cx\n","/**\n * tailwind-styled-v4 — Live Token Engine\n *\n * Runtime design token management via CSS custom properties.\n * Theme changes propagate instantly — no rebuild, no re-render.\n *\n * Usage:\n * import { liveToken, setToken, setTokens, subscribeTokens } from \"tailwind-styled-v4\"\n *\n * // Define tokens (injected as CSS vars on first call)\n * const theme = liveToken({\n * primary: \"#3b82f6\",\n * secondary: \"#6366f1\",\n * accent: \"#f59e0b\",\n * surface: \"#18181b\",\n * \"text-base\": \"#e4e4e7\",\n * })\n *\n * // Use in components\n * const Button = tw.button`\n * bg-[var(--tw-token-primary)]\n * text-[var(--tw-token-text-base)]\n * `\n *\n * // Update at runtime (instant, no rebuild)\n * setToken(\"primary\", \"#ef4444\") // single token\n * setTokens({ primary: \"#ef4444\", secondary: \"#ec4899\" }) // batch\n *\n * // Switch themes\n * applyTokenSet(darkTheme)\n *\n * // Subscribe to changes\n * const unsub = subscribeTokens((tokens) => {\n * console.log(\"theme changed\", tokens)\n * })\n *\n * Token CSS variable naming:\n * token(\"primary\") → var(--tw-token-primary)\n * token(\"text-base\") → var(--tw-token-text-base)\n */\n\n// ─────────────────────────────────────────────────────────────────────────────\n// Types\n// ─────────────────────────────────────────────────────────────────────────────\n\nexport type TokenMap = Record<string, string>\n\nexport interface LiveTokenSet {\n /** Token name → CSS variable name mapping */\n vars: Record<string, string>\n /** Get current value of a token */\n get(name: string): string | undefined\n /** Update a single token */\n set(name: string, value: string): void\n /** Update multiple tokens at once */\n setAll(tokens: TokenMap): void\n /** Snapshot of current values */\n snapshot(): TokenMap\n}\n\nexport type TokenSubscriber = (tokens: TokenMap) => void\n\n// ─────────────────────────────────────────────────────────────────────────────\n// Internal state\n// ─────────────────────────────────────────────────────────────────────────────\n\nlet _currentTokens: TokenMap = {}\nconst _subscribers = new Set<TokenSubscriber>()\nlet _styleEl: HTMLStyleElement | null = null\n\n// Devtools integration\nif (typeof window !== \"undefined\") {\n ;(window as any).__TW_TOKEN_ENGINE__ = {\n getTokens: () => _currentTokens,\n setToken: (name: string, value: string) => setToken(name, value),\n subscribe: (fn: TokenSubscriber) => subscribeTokens(fn),\n }\n}\n\n// ─────────────────────────────────────────────────────────────────────────────\n// CSS variable name\n// ─────────────────────────────────────────────────────────────────────────────\n\nexport function tokenVar(name: string): string {\n const normalized = name.replace(/[^a-zA-Z0-9-]/g, \"-\").toLowerCase()\n return `--tw-token-${normalized}`\n}\n\nexport function tokenRef(name: string): string {\n return `var(${tokenVar(name)})`\n}\n\n// ─────────────────────────────────────────────────────────────────────────────\n// Style injection\n// ─────────────────────────────────────────────────────────────────────────────\n\nfunction buildRootCss(tokens: TokenMap): string {\n const vars = Object.entries(tokens)\n .map(([name, value]) => ` ${tokenVar(name)}: ${value};`)\n .join(\"\\n\")\n return `:root {\\n${vars}\\n}`\n}\n\nfunction syncStyleEl(): void {\n if (typeof document === \"undefined\") return\n\n if (!_styleEl) {\n _styleEl = document.createElement(\"style\")\n _styleEl.id = \"tw-live-tokens\"\n _styleEl.setAttribute(\"data-tw-tokens\", \"true\")\n document.head.appendChild(_styleEl)\n }\n\n _styleEl.textContent = buildRootCss(_currentTokens)\n}\n\nfunction notifySubscribers(): void {\n const snapshot = { ..._currentTokens }\n for (const sub of _subscribers) {\n try {\n sub(snapshot)\n } catch (_e) {\n /* silent */\n }\n }\n}\n\n// ─────────────────────────────────────────────────────────────────────────────\n// Core API\n// ─────────────────────────────────────────────────────────────────────────────\n\n/**\n * Define a set of live tokens and inject them as CSS variables.\n * Returns a LiveTokenSet for programmatic control.\n *\n * @example\n * const theme = liveToken({ primary: \"#3b82f6\" })\n * theme.set(\"primary\", \"#ef4444\") // instant update\n */\nexport function liveToken(tokens: TokenMap): LiveTokenSet {\n // Merge into current token map\n _currentTokens = { ..._currentTokens, ...tokens }\n syncStyleEl()\n\n const vars: Record<string, string> = {}\n for (const name of Object.keys(tokens)) {\n vars[name] = tokenRef(name)\n }\n\n return {\n vars,\n get(name) {\n return _currentTokens[name]\n },\n set(name, value) {\n setToken(name, value)\n },\n setAll(newTokens) {\n setTokens(newTokens)\n },\n snapshot() {\n return { ..._currentTokens }\n },\n }\n}\n\n/**\n * Update a single design token at runtime.\n * CSS variable is updated immediately — no rebuild needed.\n */\nexport function setToken(name: string, value: string): void {\n _currentTokens = { ..._currentTokens, [name]: value }\n\n // Fast path: update CSSOM directly if possible\n if (typeof document !== \"undefined\") {\n document.documentElement.style.setProperty(tokenVar(name), value)\n }\n\n notifySubscribers()\n}\n\n/**\n * Update multiple tokens in one batch (single DOM update).\n */\nexport function setTokens(tokens: TokenMap): void {\n _currentTokens = { ..._currentTokens, ...tokens }\n\n if (typeof document !== \"undefined\") {\n const root = document.documentElement\n for (const [name, value] of Object.entries(tokens)) {\n root.style.setProperty(tokenVar(name), value)\n }\n }\n\n notifySubscribers()\n}\n\n/**\n * Replace all tokens with a new token set (theme switch).\n */\nexport function applyTokenSet(tokens: TokenMap): void {\n // Remove old vars\n if (typeof document !== \"undefined\") {\n const root = document.documentElement\n for (const name of Object.keys(_currentTokens)) {\n if (!(name in tokens)) {\n root.style.removeProperty(tokenVar(name))\n }\n }\n }\n\n _currentTokens = { ...tokens }\n syncStyleEl()\n notifySubscribers()\n}\n\n/**\n * Get current value of a token.\n */\nexport function getToken(name: string): string | undefined {\n return _currentTokens[name]\n}\n\n/**\n * Get snapshot of all current tokens.\n */\nexport function getTokens(): TokenMap {\n return { ..._currentTokens }\n}\n\n/**\n * Subscribe to token changes.\n * Returns unsubscribe function.\n *\n * @example\n * const unsub = subscribeTokens((tokens) => {\n * document.documentElement.classList.toggle(\"dark\", tokens.surface === \"#000\")\n * })\n * // Later:\n * unsub()\n */\nexport function subscribeTokens(fn: TokenSubscriber): () => void {\n _subscribers.add(fn)\n return () => {\n _subscribers.delete(fn)\n }\n}\n\n/**\n * Generate SSR-safe CSS string for current tokens.\n */\nexport function generateTokenCssString(): string {\n return buildRootCss(_currentTokens)\n}\n\n/**\n * React hook for reading live tokens (re-renders on change).\n * Import from tailwind-styled-v4/react.\n */\nexport function createUseTokens() {\n // Lazy import React to avoid issues in non-React environments\n let useState: any, useEffect: any\n try {\n const react = require(\"react\")\n useState = react.useState\n useEffect = react.useEffect\n } catch {\n return null\n }\n\n return function useTokens(): TokenMap {\n const [tokens, setTokens_] = (useState as <S>(init: S) => [S, (v: S) => void])<TokenMap>({\n ..._currentTokens,\n })\n\n useEffect(() => {\n // Sync on mount\n setTokens_({ ..._currentTokens })\n const unsub = subscribeTokens((t) => setTokens_({ ...t }))\n return unsub\n }, [])\n\n return tokens\n }\n}\n","/**\n * tailwind-styled-v4 — createStyledSystem()\n *\n * Design System Factory — Mode 3 API.\n *\n * Level 1 — utility: tw.div`p-4`\n * Level 2 — styled: tw(Button)`px-4`\n * Level 3 — design system: ui.button({ variant: \"primary\" })\n *\n * Usage:\n * const ui = createStyledSystem({\n * tokens: {\n * colors: { primary: \"#6366f1\", muted: \"#71717a\" },\n * radius: { base: \"0.5rem\", full: \"9999px\" },\n * },\n * components: {\n * button: {\n * base: \"inline-flex items-center font-medium transition-colors\",\n * variants: {\n * variant: {\n * primary: \"bg-[var(--sys-color-primary)] text-white\",\n * ghost: \"bg-transparent border border-current\",\n * danger: \"bg-red-500 text-white\",\n * },\n * size: {\n * sm: \"h-8 px-3 text-sm\",\n * md: \"h-10 px-4 text-base\",\n * lg: \"h-12 px-6 text-lg\",\n * },\n * },\n * defaultVariants: { variant: \"primary\", size: \"md\" },\n * },\n * },\n * })\n *\n * const Button = ui.button()\n * // → <Button variant=\"primary\" size=\"lg\" />\n *\n * // Token access\n * ui.token(\"colors.primary\") // → \"var(--sys-color-primary)\"\n * ui.cssVar(\"colors.primary\") // → \"#6366f1\"\n */\n\nimport { createComponent } from \"./createComponent\"\nimport type { ComponentConfig, TwStyledComponent } from \"./types\"\n\n// ─────────────────────────────────────────────────────────────────────────────\n// System token types\n// ─────────────────────────────────────────────────────────────────────────────\n\nexport type SystemTokenMap = Record<string, Record<string, string>>\n\nexport interface SystemComponentConfig extends ComponentConfig {\n /** Extra class applied only when used from the system (e.g. system-level resets) */\n systemBase?: string\n}\n\nexport interface StyledSystemConfig<\n T extends SystemTokenMap = SystemTokenMap,\n C extends Record<string, SystemComponentConfig> = Record<string, SystemComponentConfig>,\n> {\n /** Design tokens — injected as CSS custom properties under --sys-{group}-{name} */\n tokens?: T\n /** Component presets */\n components?: C\n /** CSS variable prefix. Default: \"sys\" → --sys-color-primary */\n prefix?: string\n /** If true, auto-inject token CSS vars into :root on init. Default: true */\n injectTokens?: boolean\n}\n\n// ─────────────────────────────────────────────────────────────────────────────\n// Token → CSS var helpers\n// ─────────────────────────────────────────────────────────────────────────────\n\nfunction tokenVarName(prefix: string, group: string, name: string): string {\n return `--${prefix}-${group}-${name}`\n}\n\nfunction tokenVarRef(prefix: string, group: string, name: string): string {\n return `var(${tokenVarName(prefix, group, name)})`\n}\n\nfunction resolveTokenRef(tokens: SystemTokenMap, prefix: string, value: string): string {\n // If value is \"token:colors.primary\" → resolve to var(--sys-colors-primary)\n if (value.startsWith(\"token:\")) {\n const path = value.slice(6)\n const [group, name] = path.split(\".\")\n if (group && name && tokens[group]?.[name] !== undefined) {\n return tokenVarRef(prefix, group, name)\n }\n }\n return value\n}\n\nfunction injectTokensToRoot(tokens: SystemTokenMap, prefix: string): void {\n if (typeof document === \"undefined\") return\n\n const styleId = `__tw-sys-tokens-${prefix}`\n if (document.getElementById(styleId)) return\n\n const lines: string[] = [\":root {\"]\n for (const [group, map] of Object.entries(tokens)) {\n for (const [name, value] of Object.entries(map)) {\n lines.push(` ${tokenVarName(prefix, group, name)}: ${value};`)\n }\n }\n lines.push(\"}\")\n\n const style = document.createElement(\"style\")\n style.id = styleId\n style.textContent = lines.join(\"\\n\")\n document.head.appendChild(style)\n}\n\n// ─────────────────────────────────────────────────────────────────────────────\n// Variant class resolver — replaces \"token:*\" references inside variant values\n// ─────────────────────────────────────────────────────────────────────────────\n\nfunction resolveComponentConfig(\n config: SystemComponentConfig,\n tokens: SystemTokenMap,\n prefix: string\n): ComponentConfig {\n const resolveStr = (s: string) => resolveTokenRef(tokens, prefix, s)\n\n const base = resolveStr(config.base ?? \"\")\n const systemBase = resolveStr(config.systemBase ?? \"\")\n const mergedBase = [systemBase, base].filter(Boolean).join(\" \")\n\n const variants: Record<string, Record<string, string>> = {}\n for (const [variantKey, variantMap] of Object.entries(config.variants ?? {})) {\n variants[variantKey] = {}\n for (const [optKey, classes] of Object.entries(variantMap)) {\n variants[variantKey][optKey] = classes.split(\" \").map(resolveStr).join(\" \")\n }\n }\n\n const compoundVariants = (config.compoundVariants ?? []).map((cv) => {\n const { class: cls, ...rest } = cv\n return { class: resolveStr(cls), ...rest }\n })\n\n return {\n base: mergedBase,\n variants,\n compoundVariants,\n defaultVariants: config.defaultVariants ?? {},\n state: config.state,\n container: config.container,\n containerName: config.containerName,\n }\n}\n\n// ─────────────────────────────────────────────────────────────────────────────\n// StyledSystem instance type\n// ─────────────────────────────────────────────────────────────────────────────\n\nexport type SystemComponentFactory<C extends SystemComponentConfig> = (\n overrides?: Partial<C>\n) => TwStyledComponent<any>\n\nexport type StyledSystemInstance<\n T extends SystemTokenMap,\n C extends Record<string, SystemComponentConfig>,\n> = {\n [K in keyof C]: SystemComponentFactory<C[K]>\n} & {\n /**\n * Get the CSS variable reference for a token.\n * @example ui.token(\"colors.primary\") → \"var(--sys-colors-primary)\"\n */\n token(path: string): string\n /**\n * Get the raw value of a token.\n * @example ui.rawToken(\"colors.primary\") → \"#6366f1\"\n */\n rawToken(path: string): string | undefined\n /**\n * Update token values at runtime (re-injects into :root).\n */\n setTokens(updates: Partial<{ [G in keyof T]: Partial<T[G]> }>): void\n /**\n * Access the resolved component config for a registered component.\n */\n getConfig(name: keyof C): ComponentConfig | undefined\n /**\n * The tokens object (for reference).\n */\n tokens: T\n}\n\n// ─────────────────────────────────────────────────────────────────────────────\n// createStyledSystem\n// ─────────────────────────────────────────────────────────────────────────────\n\nexport function createStyledSystem<\n T extends SystemTokenMap = SystemTokenMap,\n C extends Record<string, SystemComponentConfig> = Record<string, SystemComponentConfig>,\n>(config: StyledSystemConfig<T, C>): StyledSystemInstance<T, C> {\n const prefix = config.prefix ?? \"sys\"\n const tokens = (config.tokens ?? {}) as unknown as T\n const componentDefs = config.components ?? ({} as C)\n const shouldInject = config.injectTokens !== false\n\n // Inject tokens into :root on first call (client only)\n if (shouldInject && typeof window !== \"undefined\") {\n injectTokensToRoot(tokens as unknown as SystemTokenMap, prefix)\n }\n\n // Cache resolved component configs\n const resolvedConfigs = new Map<string, ComponentConfig>()\n\n for (const [name, compCfg] of Object.entries(componentDefs)) {\n resolvedConfigs.set(\n name,\n resolveComponentConfig(compCfg, tokens as unknown as SystemTokenMap, prefix)\n )\n }\n\n // Build component factories\n const factories: Record<string, SystemComponentFactory<any>> = {}\n\n for (const [name, compCfg] of Object.entries(componentDefs)) {\n const tag = (compCfg as any).tag ?? \"div\"\n\n factories[name] = (overrides?: Partial<SystemComponentConfig>) => {\n const baseResolved = resolvedConfigs.get(name)!\n\n if (!overrides || Object.keys(overrides).length === 0) {\n return createComponent(tag, baseResolved)\n }\n\n // Merge overrides into resolved config\n const overrideResolved = resolveComponentConfig(\n overrides as SystemComponentConfig,\n tokens as unknown as SystemTokenMap,\n prefix\n )\n\n const merged: ComponentConfig = {\n base: [baseResolved.base, overrideResolved.base].filter(Boolean).join(\" \"),\n variants: {\n ...(baseResolved.variants ?? {}),\n ...(overrideResolved.variants ?? {}),\n },\n compoundVariants: [\n ...(baseResolved.compoundVariants ?? []),\n ...(overrideResolved.compoundVariants ?? []),\n ],\n defaultVariants: {\n ...(baseResolved.defaultVariants ?? {}),\n ...(overrideResolved.defaultVariants ?? {}),\n },\n state: overrideResolved.state ?? baseResolved.state,\n container: overrideResolved.container ?? baseResolved.container,\n containerName: overrideResolved.containerName ?? baseResolved.containerName,\n }\n\n return createComponent(tag, merged)\n }\n }\n\n // Token utilities\n function token(path: string): string {\n const [group, name] = path.split(\".\")\n if (!group || !name) return path\n return tokenVarRef(prefix, group, name)\n }\n\n function rawToken(path: string): string | undefined {\n const [group, name] = path.split(\".\")\n if (!group || !name) return undefined\n return (tokens as unknown as SystemTokenMap)[group]?.[name]\n }\n\n function setTokens(updates: Partial<{ [G in keyof T]: Partial<T[G]> }>): void {\n if (typeof document === \"undefined\") return\n\n // Find or create the :root style element\n const styleId = `__tw-sys-tokens-${prefix}`\n let style = document.getElementById(styleId) as HTMLStyleElement | null\n if (!style) {\n style = document.createElement(\"style\")\n style.id = styleId\n document.head.appendChild(style)\n }\n\n // Merge updates into tokens and re-generate\n for (const [group, map] of Object.entries(updates)) {\n if (!tokens[group as keyof T]) continue\n for (const [name, value] of Object.entries(map as Record<string, string>)) {\n ;(tokens as unknown as SystemTokenMap)[group][name] = value\n }\n }\n\n const lines: string[] = [\":root {\"]\n for (const [group, map] of Object.entries(tokens as unknown as SystemTokenMap)) {\n for (const [name, value] of Object.entries(map)) {\n lines.push(` ${tokenVarName(prefix, group, name)}: ${value};`)\n }\n }\n lines.push(\"}\")\n style.textContent = lines.join(\"\\n\")\n }\n\n function getConfig(name: keyof C): ComponentConfig | undefined {\n return resolvedConfigs.get(name as string)\n }\n\n return Object.assign(factories, {\n token,\n rawToken,\n setTokens,\n getConfig,\n tokens,\n }) as unknown as StyledSystemInstance<T, C>\n}\n","/**\n * tailwind-styled-v4 v2 — tw\n *\n * API:\n * tw.div`p-4 bg-zinc-900`\n * tw.button({ base: \"px-4\", variants: { size: { sm: \"text-sm\" } } })\n * tw(Link)`underline text-blue-400`\n * tw.server.div`p-4` ← server-only, compiler enforced + runtime dev warning\n */\n\nimport type React from \"react\"\nimport { createComponent } from \"./createComponent\"\nimport type {\n ComponentConfig,\n TwComponentFactory,\n TwObject,\n TwServerObject,\n TwStyledComponent,\n TwTagFactory,\n} from \"./types\"\n\n// types.ts is single source of truth — re-export for consumers\nexport type { TwTagFactory, TwComponentFactory, TwObject, TwServerObject }\n\n// ─────────────────────────────────────────────────────────────────────────────\n// Template parser\n// ─────────────────────────────────────────────────────────────────────────────\n\nfunction parseTemplate(strings: TemplateStringsArray, exprs: any[]): string {\n return strings.raw\n .reduce((acc, str, i) => {\n const expr = exprs[i]\n const exprStr = typeof expr === \"function\" ? \"\" : (expr ?? \"\")\n return acc + str + String(exprStr)\n }, \"\")\n .split(\"\\n\")\n .map((l) => l.trim())\n .filter(Boolean)\n .join(\" \")\n .replace(/\\s+/g, \" \")\n .trim()\n}\n\n// ─────────────────────────────────────────────────────────────────────────────\n// makeTag\n// ─────────────────────────────────────────────────────────────────────────────\n\nfunction makeTag(tag: any): TwTagFactory<any> {\n return ((\n stringsOrConfig: TemplateStringsArray | ComponentConfig,\n ...exprs: any[]\n ): TwStyledComponent<any> => {\n if (\n !Array.isArray(stringsOrConfig) &&\n typeof stringsOrConfig === \"object\" &&\n stringsOrConfig !== null &&\n !(\"raw\" in stringsOrConfig)\n ) {\n return createComponent(tag, stringsOrConfig as ComponentConfig)\n }\n const classes = parseTemplate(stringsOrConfig as TemplateStringsArray, exprs)\n return createComponent(tag, classes)\n }) as TwTagFactory<any>\n}\n\n// ─────────────────────────────────────────────────────────────────────────────\n// HTML tag list\n// ─────────────────────────────────────────────────────────────────────────────\n\nconst HTML_TAGS = [\n \"div\",\n \"section\",\n \"article\",\n \"aside\",\n \"header\",\n \"footer\",\n \"main\",\n \"nav\",\n \"figure\",\n \"figcaption\",\n \"details\",\n \"summary\",\n \"h1\",\n \"h2\",\n \"h3\",\n \"h4\",\n \"h5\",\n \"h6\",\n \"p\",\n \"span\",\n \"strong\",\n \"em\",\n \"b\",\n \"i\",\n \"s\",\n \"u\",\n \"small\",\n \"mark\",\n \"abbr\",\n \"cite\",\n \"code\",\n \"kbd\",\n \"samp\",\n \"var\",\n \"time\",\n \"address\",\n \"blockquote\",\n \"q\",\n \"del\",\n \"ins\",\n \"sub\",\n \"sup\",\n \"ul\",\n \"ol\",\n \"li\",\n \"dl\",\n \"dt\",\n \"dd\",\n \"table\",\n \"thead\",\n \"tbody\",\n \"tfoot\",\n \"tr\",\n \"th\",\n \"td\",\n \"caption\",\n \"colgroup\",\n \"col\",\n \"img\",\n \"picture\",\n \"video\",\n \"audio\",\n \"source\",\n \"track\",\n \"canvas\",\n \"svg\",\n \"path\",\n \"circle\",\n \"rect\",\n \"line\",\n \"polyline\",\n \"polygon\",\n \"g\",\n \"defs\",\n \"use\",\n \"symbol\",\n \"form\",\n \"input\",\n \"textarea\",\n \"select\",\n \"option\",\n \"optgroup\",\n \"button\",\n \"label\",\n \"fieldset\",\n \"legend\",\n \"output\",\n \"progress\",\n \"meter\",\n \"datalist\",\n \"a\",\n \"area\",\n \"map\",\n \"iframe\",\n \"embed\",\n \"object\",\n \"pre\",\n \"hr\",\n \"br\",\n \"wbr\",\n \"dialog\",\n \"menu\",\n \"template\",\n \"slot\",\n] as const\n\n// ─────────────────────────────────────────────────────────────────────────────\n// tw.server — server-only namespace with dev warning\n// ─────────────────────────────────────────────────────────────────────────────\n\nfunction makeServerTag(tag: any): TwTagFactory<any> {\n const baseFactory = makeTag(tag)\n if (typeof window !== \"undefined\" && process.env.NODE_ENV !== \"production\") {\n return ((...args: any[]): TwStyledComponent<any> => {\n const tagName = typeof tag === \"string\" ? tag : (tag.displayName ?? \"Component\")\n console.warn(\n `[tailwind-styled-v4] tw.server.${tagName} rendered in browser. ` +\n `Ensure withTailwindStyled or Vite plugin is configured.`\n )\n return (baseFactory as any)(...args)\n }) as TwTagFactory<any>\n }\n return baseFactory\n}\n\n// Build server namespace — explicit type annotation so DTS bundler doesn't\n// flatten it to Readonly<{}> (which happens with Object.freeze)\nconst serverFactories: { [K: string]: TwTagFactory<any> } = {}\nfor (const tag of HTML_TAGS) {\n serverFactories[tag] = makeServerTag(tag)\n}\n\nexport const server: TwServerObject = serverFactories as unknown as TwServerObject\n\n// ─────────────────────────────────────────────────────────────────────────────\n// tw — main export\n// ─────────────────────────────────────────────────────────────────────────────\n\nconst tagFactories: { [K: string]: TwTagFactory<any> } = {}\nfor (const tag of HTML_TAGS) {\n tagFactories[tag] = makeTag(tag)\n}\n\nfunction twCallable<C extends React.ComponentType<any>>(component: C): TwComponentFactory<C> {\n return makeTag(component) as any\n}\n\n// Explicit type annotation — TypeScript uses TwObject, DTS bundler inlines it correctly\nexport const tw: TwObject = Object.assign(twCallable as any, tagFactories, {\n server,\n}) as unknown as TwObject\n","/**\n * tailwind-styled-v4 v2 — twTheme\n *\n * UPGRADE #1: Tailwind v4 CSS Variables integration.\n *\n * Tailwind v4 uses @theme inline to expose design tokens as CSS custom properties:\n * @theme inline {\n * --color-background: var(--background);\n * --color-foreground: var(--foreground);\n * --font-sans: var(--font-geist-sans);\n * }\n *\n * This module bridges tw() syntax with those CSS variables — zero config,\n * full IDE support, type-safe design tokens.\n *\n * @example\n * // Without twTheme (verbose, error-prone)\n * const Box = tw.div`bg-[var(--color-background)] text-[var(--color-foreground)]`\n *\n * // With twTheme (clean, type-safe)\n * const Box = tw.div`${t.bg(\"color-background\")} ${t.text(\"color-foreground\")}`\n *\n * // Or with createTheme for full project-level token map\n * const theme = createTheme({\n * colors: { bg: \"color-background\", fg: \"color-foreground\", primary: \"color-primary\" },\n * fonts: { sans: \"font-sans\", mono: \"font-mono\" },\n * })\n * const Box = tw.div`bg-${theme.colors.bg} text-${theme.colors.fg}`\n */\n\n// ─────────────────────────────────────────────────────────────────────────────\n// Core helper — CSS variable reference\n// ─────────────────────────────────────────────────────────────────────────────\n\n/**\n * Reference a CSS custom property in Tailwind v4 arbitrary value syntax.\n *\n * @example\n * cssVar(\"color-background\") → \"var(--color-background)\"\n * cssVar(\"color-primary\", \"#3b82f6\") → \"var(--color-primary, #3b82f6)\"\n */\nexport function cssVar(varName: string, fallback?: string): string {\n const name = varName.startsWith(\"--\") ? varName : `--${varName}`\n return fallback ? `var(${name}, ${fallback})` : `var(${name})`\n}\n\n/**\n * Generate a Tailwind v4 arbitrary value that references a CSS variable.\n *\n * @example\n * twVar(\"bg\", \"color-background\") → \"bg-[var(--color-background)]\"\n * twVar(\"text\", \"color-foreground\") → \"text-[var(--color-foreground)]\"\n * twVar(\"border\", \"color-border\", \"#e5e7eb\") → \"border-[var(--color-border,#e5e7eb)]\"\n */\nexport function twVar(property: string, varName: string, fallback?: string): string {\n const ref = fallback ? `var(--${varName},${fallback})` : `var(--${varName})`\n return `${property}-[${ref}]`\n}\n\n// ─────────────────────────────────────────────────────────────────────────────\n// Convenience shorthand builders\n// ─────────────────────────────────────────────────────────────────────────────\n\nexport const t = {\n /** Background color from CSS variable: t.bg(\"color-primary\") → \"bg-[var(--color-primary)]\" */\n bg: (v: string, fb?: string) => twVar(\"bg\", v, fb),\n /** Text color from CSS variable */\n text: (v: string, fb?: string) => twVar(\"text\", v, fb),\n /** Border color from CSS variable */\n border: (v: string, fb?: string) => twVar(\"border\", v, fb),\n /** Ring color from CSS variable */\n ring: (v: string, fb?: string) => twVar(\"ring\", v, fb),\n /** Outline color from CSS variable */\n outline: (v: string, fb?: string) => twVar(\"outline\", v, fb),\n /** Fill color from CSS variable (SVG) */\n fill: (v: string, fb?: string) => twVar(\"fill\", v, fb),\n /** Stroke color from CSS variable (SVG) */\n stroke: (v: string, fb?: string) => twVar(\"stroke\", v, fb),\n /** Font family from CSS variable */\n font: (v: string, fb?: string) => twVar(\"font\", v, fb),\n /** Shadow from CSS variable */\n shadow: (v: string, fb?: string) => twVar(\"shadow\", v, fb),\n /** Any arbitrary property from CSS variable */\n var: (property: string, v: string, fb?: string) => twVar(property, v, fb),\n}\n\n// ─────────────────────────────────────────────────────────────────────────────\n// createTheme — project-level design token map\n// ─────────────────────────────────────────────────────────────────────────────\n\nexport interface ThemeTokenMap {\n colors?: Record<string, string>\n fonts?: Record<string, string>\n spacing?: Record<string, string>\n [key: string]: Record<string, string> | undefined\n}\n\nexport type ResolvedThemeTokens<T extends ThemeTokenMap> = {\n [Group in keyof T]: T[Group] extends Record<string, string>\n ? {\n [Token in keyof T[Group]]: string\n }\n : never\n}\n\n/**\n * Create a typed theme token map from your CSS variable names.\n * Returns helper functions that generate Tailwind v4 arbitrary values.\n *\n * @example\n * // Define your tokens (match your globals.css @theme block)\n * const theme = createTheme({\n * colors: {\n * bg: \"color-background\",\n * fg: \"color-foreground\",\n * primary: \"color-primary\",\n * muted: \"color-muted\",\n * },\n * fonts: {\n * sans: \"font-sans\",\n * mono: \"font-mono\",\n * },\n * })\n *\n * // Use in tw components\n * const Card = tw.div`\n * bg-${theme.colors.bg}\n * text-${theme.colors.fg}\n * font-${theme.fonts.sans}\n * `\n * // → tw.div`bg-[var(--color-background)] text-[var(--color-foreground)] font-[var(--font-sans)]`\n *\n * // Use in cv()\n * const button = cv({\n * base: `px-4 py-2 ${theme.colors.bg} ${theme.colors.fg}`,\n * variants: { ... }\n * })\n */\nexport function createTheme<T extends ThemeTokenMap>(tokenMap: T): ResolvedThemeTokens<T> {\n const resolved = {} as any\n\n for (const group in tokenMap) {\n resolved[group] = {}\n const tokens = tokenMap[group]!\n for (const name in tokens) {\n const varName = tokens[name]\n // Determine Tailwind property prefix based on group name\n const prefix = getGroupPrefix(group)\n resolved[group][name] = prefix ? twVar(prefix, varName) : cssVar(varName)\n }\n }\n\n return resolved as ResolvedThemeTokens<T>\n}\n\nfunction getGroupPrefix(group: string): string {\n const map: Record<string, string> = {\n colors: \"bg\", // default to bg; user can use t.text() for text colors\n fonts: \"font\",\n spacing: \"p\",\n shadows: \"shadow\",\n }\n return map[group] ?? \"\"\n}\n\n// ─────────────────────────────────────────────────────────────────────────────\n// Standard Tailwind v4 tokens\n//\n// Pre-built token references for the default next-app globals.css setup.\n// These match what Tailwind v4's @theme inline generates.\n// ─────────────────────────────────────────────────────────────────────────────\n\n/**\n * Pre-built references for standard Tailwind v4 CSS variable tokens.\n * Works out of the box with next-app-standar-config globals.css.\n *\n * @example\n * import { v4Tokens } from \"tailwind-styled-v4\"\n *\n * const Page = tw.div`${v4Tokens.bg} ${v4Tokens.text}`\n * // → tw.div`bg-[var(--color-background)] text-[var(--color-foreground)]`\n */\nexport const v4Tokens = {\n /** bg-[var(--color-background)] */\n bg: twVar(\"bg\", \"color-background\"),\n /** text-[var(--color-foreground)] */\n text: twVar(\"text\", \"color-foreground\"),\n /** font-[var(--font-sans)] */\n fontSans: twVar(\"font\", \"font-sans\"),\n /** font-[var(--font-mono)] */\n fontMono: twVar(\"font\", \"font-mono\"),\n} as const\n"]}
1
+ {"version":3,"sources":["../src/containerQuery.ts","../src/stateEngine.ts","../src/createComponent.ts","../src/cv.ts","../src/cx.ts","../src/merge.ts","../src/liveTokenEngine.ts","../src/styledSystem.ts","../src/styled.ts","../src/twProxy.ts","../src/twTheme.ts","../src/parser.ts","../src/themeReader.ts"],"names":["Component","twMerge","twMergeOriginal","t","cv","setTokens","setToken"],"mappings":"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","file":"index.js","sourcesContent":["/**\n * tailwind-styled-v4 — Container Query Engine\n *\n * Generates @container rules from a simple breakpoint config.\n *\n * Usage:\n * const Card = tw.div({\n * base: \"p-4\",\n * container: {\n * sm: \"flex-col\", // @container (min-width: 320px)\n * md: \"flex-row\", // @container (min-width: 640px)\n * lg: \"grid-cols-3\", // @container (min-width: 1024px)\n * },\n * containerName: \"card\",\n * })\n *\n * // Wrap with container context:\n * const CardWrapper = tw.div`@container`\n *\n * Named containers:\n * const SidebarCard = tw.div({\n * base: \"p-2\",\n * container: { lg: \"text-sm\" },\n * containerName: \"sidebar\",\n * })\n * // Generates: @container sidebar (min-width: 1024px) { ... }\n */\n\nimport type { ContainerConfig } from \"./types\"\n\n// ─────────────────────────────────────────────────────────────────────────────\n// Breakpoint map — matches Tailwind defaults\n// ─────────────────────────────────────────────────────────────────────────────\n\nconst CONTAINER_BREAKPOINTS: Record<string, string> = {\n xs: \"240px\",\n sm: \"320px\",\n md: \"640px\",\n lg: \"1024px\",\n xl: \"1280px\",\n \"2xl\": \"1536px\",\n}\n\n// ─────────────────────────────────────────────────────────────────────────────\n// Registry\n// ─────────────────────────────────────────────────────────────────────────────\n\nexport interface ContainerEntry {\n id: string\n tag: string\n containerName?: string\n breakpoints: Array<{ minWidth: string; classes: string }>\n cssInjected: boolean\n}\n\nconst containerRegistry = new Map<string, ContainerEntry>()\n\nif (typeof window !== \"undefined\") {\n ;(window as any).__TW_CONTAINER_REGISTRY__ = containerRegistry\n}\n\n// ─────────────────────────────────────────────────────────────────────────────\n// Hash\n// ─────────────────────────────────────────────────────────────────────────────\n\nfunction hashContainer(tag: string, container: ContainerConfig, name?: string): string {\n const key = tag + (name ?? \"\") + JSON.stringify(Object.entries(container).sort())\n let hash = 5381\n for (let i = 0; i < key.length; i++) {\n hash = ((hash << 5) + hash) ^ key.charCodeAt(i)\n }\n return `tw-cq-${Math.abs(hash).toString(36).slice(0, 6)}`\n}\n\n// ─────────────────────────────────────────────────────────────────────────────\n// CSS generator\n// ─────────────────────────────────────────────────────────────────────────────\n\n/** Minimal Tailwind → CSS for container query contexts */\nconst LAYOUT_MAP: Record<string, string> = {\n \"flex-col\": \"flex-direction:column\",\n \"flex-row\": \"flex-direction:row\",\n \"flex-wrap\": \"flex-wrap:wrap\",\n \"flex-nowrap\": \"flex-wrap:nowrap\",\n \"flex-1\": \"flex:1 1 0%\",\n hidden: \"display:none\",\n block: \"display:block\",\n flex: \"display:flex\",\n grid: \"display:grid\",\n \"grid-cols-1\": \"grid-template-columns:repeat(1,minmax(0,1fr))\",\n \"grid-cols-2\": \"grid-template-columns:repeat(2,minmax(0,1fr))\",\n \"grid-cols-3\": \"grid-template-columns:repeat(3,minmax(0,1fr))\",\n \"grid-cols-4\": \"grid-template-columns:repeat(4,minmax(0,1fr))\",\n \"grid-cols-6\": \"grid-template-columns:repeat(6,minmax(0,1fr))\",\n \"grid-cols-12\": \"grid-template-columns:repeat(12,minmax(0,1fr))\",\n \"text-sm\": \"font-size:0.875rem;line-height:1.25rem\",\n \"text-base\": \"font-size:1rem;line-height:1.5rem\",\n \"text-lg\": \"font-size:1.125rem;line-height:1.75rem\",\n \"text-xl\": \"font-size:1.25rem;line-height:1.75rem\",\n \"text-2xl\": \"font-size:1.5rem;line-height:2rem\",\n \"text-xs\": \"font-size:0.75rem;line-height:1rem\",\n \"p-2\": \"padding:0.5rem\",\n \"p-4\": \"padding:1rem\",\n \"p-6\": \"padding:1.5rem\",\n \"p-8\": \"padding:2rem\",\n \"px-2\": \"padding-left:0.5rem;padding-right:0.5rem\",\n \"px-4\": \"padding-left:1rem;padding-right:1rem\",\n \"px-6\": \"padding-left:1.5rem;padding-right:1.5rem\",\n \"py-2\": \"padding-top:0.5rem;padding-bottom:0.5rem\",\n \"py-4\": \"padding-top:1rem;padding-bottom:1rem\",\n \"gap-2\": \"gap:0.5rem\",\n \"gap-4\": \"gap:1rem\",\n \"gap-6\": \"gap:1.5rem\",\n \"gap-8\": \"gap:2rem\",\n \"w-full\": \"width:100%\",\n \"w-1/2\": \"width:50%\",\n \"w-1/3\": \"width:33.333333%\",\n \"w-2/3\": \"width:66.666667%\",\n \"max-w-sm\": \"max-width:24rem\",\n \"max-w-md\": \"max-width:28rem\",\n \"max-w-lg\": \"max-width:32rem\",\n \"max-w-xl\": \"max-width:36rem\",\n \"items-center\": \"align-items:center\",\n \"items-start\": \"align-items:flex-start\",\n \"items-end\": \"align-items:flex-end\",\n \"justify-center\": \"justify-content:center\",\n \"justify-between\": \"justify-content:space-between\",\n \"justify-start\": \"justify-content:flex-start\",\n \"justify-end\": \"justify-content:flex-end\",\n}\n\nfunction layoutClassesToCss(classes: string): string {\n const decls: string[] = []\n for (const cls of classes.trim().split(/\\s+/)) {\n if (LAYOUT_MAP[cls]) decls.push(LAYOUT_MAP[cls])\n else if (cls.startsWith(\"w-[\")) {\n const val = cls.match(/\\[(.+)\\]/)?.[1]\n if (val) decls.push(`width:${val}`)\n } else if (cls.startsWith(\"max-w-[\")) {\n const val = cls.match(/\\[(.+)\\]/)?.[1]\n if (val) decls.push(`max-width:${val}`)\n }\n }\n return decls.join(\";\")\n}\n\nfunction buildContainerRules(\n id: string,\n container: ContainerConfig,\n containerName?: string\n): string {\n const rules: string[] = []\n\n for (const [key, value] of Object.entries(container)) {\n let minWidth: string\n let classes: string\n\n if (typeof value === \"string\") {\n minWidth = CONTAINER_BREAKPOINTS[key] ?? key\n classes = value\n } else {\n minWidth = value.minWidth ?? CONTAINER_BREAKPOINTS[key] ?? key\n classes = value.classes\n }\n\n const css = layoutClassesToCss(classes)\n if (!css) continue\n\n const query = containerName\n ? `@container ${containerName} (min-width: ${minWidth})`\n : `@container (min-width: ${minWidth})`\n\n rules.push(`${query}{.${id}{${css}}}`)\n }\n\n return rules.join(\"\\n\")\n}\n\n// ─────────────────────────────────────────────────────────────────────────────\n// Style injection\n// ─────────────────────────────────────────────────────────────────────────────\n\nfunction injectContainerStyles(\n id: string,\n container: ContainerConfig,\n containerName?: string\n): void {\n if (typeof document === \"undefined\") return\n const styleId = `tw-cq-${id}`\n if (document.getElementById(styleId)) return\n\n const css = buildContainerRules(id, container, containerName)\n if (!css) return\n\n // Try batched injector first (available when runtime-css is installed)\n try {\n // eslint-disable-next-line @typescript-eslint/no-var-requires\n const { batchedInject } = require(\"@tailwind-styled/runtime-css/batched\") as {\n batchedInject: (css: string) => void\n }\n for (const rule of css.split(\"\\n\").filter(Boolean)) batchedInject(rule)\n return\n } catch {\n // Fallback: per-element style tag\n }\n\n const style = document.createElement(\"style\")\n style.id = styleId\n style.setAttribute(\"data-tw-container\", id)\n style.textContent = css\n document.head.appendChild(style)\n}\n\n// ─────────────────────────────────────────────────────────────────────────────\n// Public API\n// ─────────────────────────────────────────────────────────────────────────────\n\nexport interface ContainerQueryResult {\n containerClass: string\n hasContainer: true\n}\n\nexport function processContainer(\n tag: string,\n container: ContainerConfig,\n containerName?: string\n): ContainerQueryResult {\n const id = hashContainer(tag, container, containerName)\n\n if (!containerRegistry.has(id)) {\n const breakpoints = Object.entries(container).map(([key, value]) => ({\n minWidth: CONTAINER_BREAKPOINTS[key] ?? key,\n classes: typeof value === \"string\" ? value : value.classes,\n }))\n containerRegistry.set(id, {\n id,\n tag,\n containerName,\n breakpoints,\n cssInjected: false,\n })\n }\n\n injectContainerStyles(id, container, containerName)\n containerRegistry.get(id)!.cssInjected = true\n\n return { containerClass: id, hasContainer: true }\n}\n\nexport function generateContainerCss(\n tag: string,\n container: ContainerConfig,\n containerName?: string\n): string {\n const id = hashContainer(tag, container, containerName)\n return buildContainerRules(id, container, containerName)\n}\n\nexport function getContainerRegistry(): Map<string, ContainerEntry> {\n return containerRegistry\n}\n","/**\n * tailwind-styled-v4 — Reactive State Engine\n *\n * Zero-JS CSS state management via data attributes.\n * No React re-render needed for style changes.\n *\n * How it works:\n * 1. tw.button({ state: { active: \"bg-blue-500\", loading: \"opacity-70\" } })\n * 2. State engine generates a unique class + injects CSS:\n * .tw-s-abc123[data-active=\"true\"] { @apply bg-blue-500; }\n * .tw-s-abc123[data-loading=\"true\"] { @apply opacity-70; }\n * 3. Component renders with the state class\n * 4. User sets data-active=\"true\" directly — no state needed\n *\n * Devtools integration:\n * All components register to __TW_STATE_REGISTRY__ for devtools inspection.\n */\n\nimport type { StateConfig } from \"./types\"\n\n// ─────────────────────────────────────────────────────────────────────────────\n// Registry — tracks all state-enabled components\n// ─────────────────────────────────────────────────────────────────────────────\n\nexport interface StateComponentEntry {\n id: string\n tag: string\n states: string[]\n cssInjected: boolean\n}\n\nconst stateRegistry = new Map<string, StateComponentEntry>()\n\nif (typeof window !== \"undefined\") {\n ;(window as any).__TW_STATE_REGISTRY__ = stateRegistry\n}\n\n// ─────────────────────────────────────────────────────────────────────────────\n// Deterministic hash — same config → same class (no re-injection on HMR)\n// ─────────────────────────────────────────────────────────────────────────────\n\nfunction hashState(tag: string, state: StateConfig): string {\n const key = tag + JSON.stringify(Object.entries(state).sort())\n let hash = 5381\n for (let i = 0; i < key.length; i++) {\n hash = ((hash << 5) + hash) ^ key.charCodeAt(i)\n }\n return `tw-s-${Math.abs(hash).toString(36).slice(0, 6)}`\n}\n\n// ─────────────────────────────────────────────────────────────────────────────\n// CSS generator — Tailwind class → plain CSS via CSSOM\n// ─────────────────────────────────────────────────────────────────────────────\n\n/**\n * Map Tailwind utility classes to inline CSS declarations.\n * Subset covers all common state-driven utilities.\n * For full coverage the compiler strips this and uses the real Tailwind engine.\n */\nconst TW_MAP: Record<string, string> = {\n // Display\n hidden: \"display:none\",\n block: \"display:block\",\n flex: \"display:flex\",\n inline: \"display:inline\",\n \"inline-flex\": \"display:inline-flex\",\n grid: \"display:grid\",\n // Opacity\n \"opacity-0\": \"opacity:0\",\n \"opacity-5\": \"opacity:0.05\",\n \"opacity-10\": \"opacity:0.1\",\n \"opacity-20\": \"opacity:0.2\",\n \"opacity-25\": \"opacity:0.25\",\n \"opacity-30\": \"opacity:0.3\",\n \"opacity-40\": \"opacity:0.4\",\n \"opacity-50\": \"opacity:0.5\",\n \"opacity-60\": \"opacity:0.6\",\n \"opacity-70\": \"opacity:0.7\",\n \"opacity-75\": \"opacity:0.75\",\n \"opacity-80\": \"opacity:0.8\",\n \"opacity-90\": \"opacity:0.9\",\n \"opacity-95\": \"opacity:0.95\",\n \"opacity-100\": \"opacity:1\",\n // Cursor\n \"cursor-pointer\": \"cursor:pointer\",\n \"cursor-not-allowed\": \"cursor:not-allowed\",\n \"cursor-default\": \"cursor:default\",\n \"cursor-wait\": \"cursor:wait\",\n \"cursor-move\": \"cursor:move\",\n \"cursor-grab\": \"cursor:grab\",\n \"cursor-grabbing\": \"cursor:grabbing\",\n // Pointer events\n \"pointer-events-none\": \"pointer-events:none\",\n \"pointer-events-auto\": \"pointer-events:auto\",\n // Scale\n \"scale-90\": \"transform:scale(0.9)\",\n \"scale-95\": \"transform:scale(0.95)\",\n \"scale-100\": \"transform:scale(1)\",\n \"scale-105\": \"transform:scale(1.05)\",\n \"scale-110\": \"transform:scale(1.1)\",\n // Translate\n \"translate-x-0\": \"transform:translateX(0)\",\n \"translate-y-0\": \"transform:translateY(0)\",\n \"-translate-x-1\": \"transform:translateX(-0.25rem)\",\n \"-translate-y-1\": \"transform:translateY(-0.25rem)\",\n \"translate-x-1\": \"transform:translateX(0.25rem)\",\n \"translate-y-1\": \"transform:translateY(0.25rem)\",\n // Ring\n ring: \"box-shadow:0 0 0 3px rgba(59,130,246,0.5)\",\n \"ring-2\": \"box-shadow:0 0 0 2px rgba(59,130,246,0.5)\",\n \"ring-4\": \"box-shadow:0 0 0 4px rgba(59,130,246,0.5)\",\n \"ring-inset\": \"box-shadow:inset 0 0 0 3px rgba(59,130,246,0.5)\",\n // Border\n border: \"border-width:1px\",\n \"border-2\": \"border-width:2px\",\n \"border-transparent\": \"border-color:transparent\",\n // Outline\n \"outline-none\": \"outline:2px solid transparent;outline-offset:2px\",\n outline: \"outline:2px solid currentColor\",\n // Overflow\n \"overflow-hidden\": \"overflow:hidden\",\n \"overflow-auto\": \"overflow:auto\",\n \"overflow-scroll\": \"overflow:scroll\",\n // Text decoration\n underline: \"text-decoration-line:underline\",\n \"no-underline\": \"text-decoration-line:none\",\n \"line-through\": \"text-decoration-line:line-through\",\n // Font weight\n \"font-bold\": \"font-weight:700\",\n \"font-semibold\": \"font-weight:600\",\n \"font-medium\": \"font-weight:500\",\n \"font-normal\": \"font-weight:400\",\n // Background colors (common)\n \"bg-transparent\": \"background-color:transparent\",\n \"bg-white\": \"background-color:#fff\",\n \"bg-black\": \"background-color:#000\",\n \"bg-blue-500\": \"background-color:rgb(59,130,246)\",\n \"bg-blue-600\": \"background-color:rgb(37,99,235)\",\n \"bg-red-500\": \"background-color:rgb(239,68,68)\",\n \"bg-green-500\": \"background-color:rgb(34,197,94)\",\n \"bg-yellow-500\": \"background-color:rgb(234,179,8)\",\n \"bg-zinc-900\": \"background-color:rgb(24,24,27)\",\n \"bg-zinc-800\": \"background-color:rgb(39,39,42)\",\n // Text colors\n \"text-white\": \"color:#fff\",\n \"text-black\": \"color:#000\",\n \"text-blue-500\": \"color:rgb(59,130,246)\",\n \"text-red-500\": \"color:rgb(239,68,68)\",\n \"text-zinc-400\": \"color:rgb(161,161,170)\",\n \"text-zinc-500\": \"color:rgb(113,113,122)\",\n}\n\nfunction twClassesToCss(classes: string): string {\n const decls: string[] = []\n for (const cls of classes.trim().split(/\\s+/)) {\n if (TW_MAP[cls]) decls.push(TW_MAP[cls])\n // Arbitrary values: bg-[#f00] color-[red]\n else if (cls.includes(\"[\") && cls.includes(\"]\")) {\n const val = cls.match(/\\[(.+)\\]/)?.[1]\n if (!val) continue\n if (cls.startsWith(\"bg-[\")) decls.push(`background-color:${val}`)\n else if (cls.startsWith(\"text-[\")) decls.push(`color:${val}`)\n else if (cls.startsWith(\"w-[\")) decls.push(`width:${val}`)\n else if (cls.startsWith(\"h-[\")) decls.push(`height:${val}`)\n else if (cls.startsWith(\"opacity-[\")) decls.push(`opacity:${val}`)\n }\n }\n return decls.join(\";\")\n}\n\n// ─────────────────────────────────────────────────────────────────────────────\n// Style injection — batched for performance (FIX CSS Rule Batching)\n// ─────────────────────────────────────────────────────────────────────────────\n\nfunction injectStateStyles(id: string, state: StateConfig): void {\n if (typeof document === \"undefined\") return\n\n const styleId = `tw-state-${id}`\n if (document.getElementById(styleId)) return // already injected\n\n const rules: string[] = []\n\n for (const [stateName, classes] of Object.entries(state)) {\n const css = twClassesToCss(classes)\n if (css) {\n rules.push(`.${id}[data-${stateName}=\"true\"]{${css}}`)\n }\n }\n\n if (rules.length === 0) return\n\n // Try batched injector first (available when runtime-css is installed)\n try {\n // eslint-disable-next-line @typescript-eslint/no-var-requires\n const { batchedInject } = require(\"@tailwind-styled/runtime-css/batched\") as {\n batchedInject: (css: string) => void\n }\n for (const rule of rules) batchedInject(rule)\n return\n } catch {\n // Fallback: per-element style tag (original behavior)\n }\n\n const style = document.createElement(\"style\")\n style.id = styleId\n style.setAttribute(\"data-tw-state\", id)\n style.textContent = rules.join(\"\\n\")\n document.head.appendChild(style)\n}\n\n// ─────────────────────────────────────────────────────────────────────────────\n// Public API\n// ─────────────────────────────────────────────────────────────────────────────\n\nexport interface StateEngineResult {\n /** CSS class to add to the component */\n stateClass: string\n /** Whether this component uses state (for SSR data attributes) */\n hasState: true\n /** List of state names (for devtools) */\n stateNames: string[]\n}\n\n/**\n * Process a StateConfig for a component.\n * Returns the state class and injects CSS (client-side only).\n */\nexport function processState(tag: string, state: StateConfig): StateEngineResult {\n const id = hashState(tag, state)\n const stateNames = Object.keys(state)\n\n // Register for devtools\n if (!stateRegistry.has(id)) {\n stateRegistry.set(id, {\n id,\n tag,\n states: stateNames,\n cssInjected: false,\n })\n }\n\n // Inject CSS (client only)\n injectStateStyles(id, state)\n\n // Mark as injected\n const entry = stateRegistry.get(id)!\n entry.cssInjected = true\n\n return { stateClass: id, hasState: true, stateNames }\n}\n\n/**\n * Generate SSR-safe CSS string for a state config.\n * Used by SSR to inject styles into <head>.\n */\nexport function generateStateCss(tag: string, state: StateConfig): string {\n const id = hashState(tag, state)\n const rules: string[] = []\n\n for (const [stateName, classes] of Object.entries(state)) {\n const css = twClassesToCss(classes)\n if (css) {\n rules.push(`.${id}[data-${stateName}=\"true\"]{${css}}`)\n }\n }\n\n return rules.join(\"\\n\")\n}\n\n/**\n * Get the state registry (for devtools).\n */\nexport function getStateRegistry(): Map<string, StateComponentEntry> {\n return stateRegistry\n}\n","/**\n * tailwind-styled-v4 v3 — createComponent\n *\n * v3 additions:\n * - StateEngine integration: state key → data-attr CSS\n * - ContainerQuery integration: container key → @container CSS\n *\n * Fixes from v2:\n * #03 — filterProps: dynamic based on actual variant keys\n * #07 — extend(): always use originalTag, not previous forwardRef wrapper\n */\n\nimport React from \"react\"\nimport { twMerge } from \"tailwind-merge\"\nimport { processContainer } from \"./containerQuery\"\nimport { processState } from \"./stateEngine\"\nimport type { ComponentConfig, TwStyledComponent } from \"./types\"\n\n// ─────────────────────────────────────────────────────────────────────────────\n// Prop filter — FIX #03: dynamic based on actual variant keys\n// ─────────────────────────────────────────────────────────────────────────────\n\nconst ALWAYS_BLOCKED = new Set([\"base\", \"_ref\", \"state\", \"container\", \"containerName\"])\n\nfunction makeFilterProps(variantKeys: Set<string>) {\n return function filterProps(props: Record<string, any>): Record<string, any> {\n const out: Record<string, any> = {}\n for (const key in props) {\n if (variantKeys.has(key)) continue\n if (key.startsWith(\"$\")) continue\n if (ALWAYS_BLOCKED.has(key)) continue\n out[key] = props[key]\n }\n return out\n }\n}\n\n// ─────────────────────────────────────────────────────────────────────────────\n// Variant resolver\n// ─────────────────────────────────────────────────────────────────────────────\n\nfunction resolveVariants(\n variants: Record<string, Record<string, string>>,\n props: Record<string, any>,\n defaults: Record<string, string>\n): string {\n const classes: string[] = []\n for (const key in variants) {\n const val = props[key] ?? defaults[key]\n if (val !== undefined && variants[key][String(val)]) {\n classes.push(variants[key][String(val)])\n }\n }\n return classes.join(\" \")\n}\n\nfunction resolveCompound(\n compounds: Array<{ class: string; [key: string]: any }>,\n props: Record<string, any>\n): string {\n const classes: string[] = []\n for (const compound of compounds) {\n const { class: cls, ...conditions } = compound\n const match = Object.entries(conditions).every(([k, v]) => props[k] === v)\n if (match) classes.push(cls)\n }\n return classes.join(\" \")\n}\n\n// ─────────────────────────────────────────────────────────────────────────────\n// createComponent\n// ─────────────────────────────────────────────────────────────────────────────\n\nexport function createComponent<P extends object = Record<string, any>>(\n tag: any,\n config: string | ComponentConfig\n): TwStyledComponent<P> {\n const isStatic = typeof config === \"string\"\n\n const base = isStatic ? (config as string) : (config.base ?? \"\")\n const variants = isStatic ? {} : (config.variants ?? {})\n const compoundVariants = isStatic ? [] : (config.compoundVariants ?? [])\n const defaultVariants = isStatic ? {} : (config.defaultVariants ?? {})\n const stateConfig = isStatic ? undefined : config.state\n const containerConfig = isStatic ? undefined : config.container\n const containerName = isStatic ? undefined : config.containerName\n\n // Process state and container (injects CSS client-side)\n const stateResult = stateConfig\n ? processState(typeof tag === \"string\" ? tag : \"component\", stateConfig)\n : null\n const containerResult = containerConfig\n ? processContainer(typeof tag === \"string\" ? tag : \"component\", containerConfig, containerName)\n : null\n\n // Extra classes from state + container engines\n const engineClasses = [stateResult?.stateClass, containerResult?.containerClass]\n .filter(Boolean)\n .join(\" \")\n\n // FIX #03: build dynamic filter based on actual variant keys\n const variantKeySet = new Set(Object.keys(variants))\n const filterProps = makeFilterProps(variantKeySet)\n\n const tagStr = typeof tag === \"string\" ? tag : (tag.displayName ?? \"Component\")\n\n // ── static shortcut ───────────────────────────────────────────────────\n if (isStatic || Object.keys(variants).length === 0) {\n const Component = React.forwardRef<any, any>((props, ref) => {\n const { className, ...rest } = props\n return React.createElement(tag, {\n ref,\n ...filterProps(rest),\n className: twMerge(base, engineClasses, className),\n })\n })\n\n Component.displayName = `tw.${tagStr}`\n attachExtend(Component, tag, base, config)\n return Component as unknown as TwStyledComponent<P>\n }\n\n // ── variant path ──────────────────────────────────────────────────────\n const Component = React.forwardRef<any, any>((props, ref) => {\n const { className } = props\n const variantClasses = resolveVariants(variants, props, defaultVariants)\n const compoundClasses = resolveCompound(compoundVariants, props)\n\n return React.createElement(tag, {\n ref,\n ...filterProps(props),\n className: twMerge(base, variantClasses, compoundClasses, engineClasses, className),\n })\n })\n\n Component.displayName = `tw.${tagStr}`\n attachExtend(Component, tag, base, config)\n return Component as unknown as TwStyledComponent<P>\n}\n\n// ─────────────────────────────────────────────────────────────────────────────\n// attachExtend — FIX #07\n// ─────────────────────────────────────────────────────────────────────────────\n\nfunction attachExtend(\n Component: any,\n originalTag: any,\n base: string,\n config: string | ComponentConfig\n) {\n Component.extend = (strings: TemplateStringsArray, ..._exprs: any[]) => {\n const extra = strings.raw.join(\"\").trim().replace(/\\s+/g, \" \")\n const merged = twMerge(base, extra)\n return createComponent(\n originalTag,\n typeof config === \"string\" ? merged : { ...(config as ComponentConfig), base: merged }\n )\n }\n\n Component.withVariants = (newConfig: Partial<ComponentConfig>) => {\n const existing = typeof config === \"object\" ? config : {}\n return createComponent(originalTag, {\n ...existing,\n base,\n variants: { ...(existing.variants ?? undefined), ...(newConfig.variants ?? undefined) },\n compoundVariants: [\n ...(existing.compoundVariants ?? []),\n ...(newConfig.compoundVariants ?? []),\n ],\n defaultVariants: {\n ...(existing.defaultVariants ?? undefined),\n ...(newConfig.defaultVariants ?? undefined),\n },\n })\n }\n\n // .animate() — integrates with @tailwind-styled/animate\n // Lazy require so animate package is optional\n Component.animate = async (opts: any) => {\n try {\n const { animate: animateFn } =\n require(\"@tailwind-styled/animate\") as typeof import(\"@tailwind-styled/animate\")\n const animClass = await animateFn(opts)\n const merged = twMerge(base, animClass)\n return createComponent(\n originalTag,\n typeof config === \"string\" ? merged : { ...(config as ComponentConfig), base: merged }\n )\n } catch {\n console.warn(\"[tailwind-styled-v4] .animate() requires @tailwind-styled/animate\")\n return Component\n }\n }\n}\n","/**\n * tailwind-styled-v4 v2 — cv()\n *\n * UPGRADE #3: cv() now infers exact variant values from config.\n *\n * Standalone class variant function — no React needed.\n * Compatible with shadcn/ui, Radix, Headless UI.\n *\n * @example\n * const button = cv({\n * base: \"px-4 py-2 rounded-lg\",\n * variants: { size: { sm: \"text-sm\", lg: \"text-lg\" } },\n * defaultVariants: { size: \"sm\" }\n * })\n *\n * // BEFORE: button({ size: \"xl\" }) — no error (size was string)\n * // AFTER: button({ size: \"xl\" }) — TypeScript ERROR: \"xl\" not in \"sm\" | \"lg\" ✓\n *\n * button({ size: \"lg\" }) → \"px-4 py-2 rounded-lg text-lg\"\n */\n\nimport { twMerge } from \"tailwind-merge\"\nimport type { ComponentConfig, CvFn, InferVariantProps } from \"./types\"\n\nexport function cv<C extends ComponentConfig>(config: C): CvFn<C> {\n const { base = \"\", variants = {}, compoundVariants = [], defaultVariants = {} } = config\n\n return (\n props: InferVariantProps<C> & { className?: string } & Record<string, any> = {} as any\n ): string => {\n const classes: string[] = [base]\n\n for (const key in variants) {\n const val = (props as any)[key] ?? defaultVariants[key]\n if (val !== undefined && (variants as any)[key][String(val)]) {\n classes.push((variants as any)[key][String(val)])\n }\n }\n\n for (const compound of compoundVariants) {\n const { class: cls, ...conditions } = compound\n const match = Object.entries(conditions).every(([k, v]) => (props as any)[k] === v)\n if (match) classes.push(cls)\n }\n\n if (props.className) classes.push(props.className)\n\n return twMerge(...classes)\n }\n}\n","/**\n * tailwind-styled-v4 v2 — cx / cn\n *\n * FIX #09: Rename for clarity — behavior was confusing with two near-identical utils.\n *\n * BEFORE:\n * cx() → simple join, no conflict resolution → cx(\"p-4\", \"p-8\") = \"p-4 p-8\" (WRONG)\n * cxm() → twMerge, correct — but obscure name\n *\n * AFTER:\n * cn() → simple join (for cases where you know there's no conflict)\n * cx() → twMerge-powered, conflict-aware (recommended for most use cases)\n * cxm() → kept as alias for cx() for backward compat\n */\n\nimport { twMerge } from \"tailwind-merge\"\n\ntype ClassValue = string | undefined | null | false | 0\n\n/**\n * cn — simple class name joiner (no conflict resolution).\n * Use when you know classes don't conflict.\n *\n * FIX #09: Previously named `cx`. Renamed to `cn` for clarity.\n *\n * @example cn(\"p-4\", isActive && \"opacity-100\") → \"p-4 opacity-100\"\n */\nexport function cn(...inputs: ClassValue[]): string {\n return inputs.filter(Boolean).join(\" \").replace(/\\s+/g, \" \").trim()\n}\n\n/**\n * cx — conflict-aware class merger using tailwind-merge.\n * Recommended for combining Tailwind classes where conflicts are possible.\n *\n * FIX #09: Previously named `cxm`. Renamed to `cx` as the primary utility.\n *\n * @example cx(\"p-4 p-8\") → \"p-8\" (conflict resolved, last wins)\n * @example cx(\"bg-red-500\", \"bg-blue-500\") → \"bg-blue-500\"\n */\nexport function cx(...inputs: ClassValue[]): string {\n return twMerge(...(inputs.filter(Boolean) as string[]))\n}\n\n/**\n * cxm — alias for cx(), kept for backward compatibility.\n * @deprecated Use cx() instead.\n */\nexport const cxm = cx\n","import { twMerge as twMergeOriginal } from \"tailwind-merge\"\n\nimport type { ThemeConfig } from \"./themeReader\"\n\nexport interface MergeOptions {\n prefix?: string\n separator?: string\n theme?: ThemeConfig\n}\n\nfunction normalizeClassInput(classLists: Array<string | undefined | null | false>): string[] {\n return classLists\n .filter(Boolean)\n .map((v) => String(v).trim())\n .filter((v) => v.length > 0)\n}\n\nexport function createTwMerge(_options: MergeOptions = {}) {\n return function twMerge(...classLists: Array<string | undefined | null | false>): string {\n const clean = normalizeClassInput(classLists)\n return twMergeOriginal(clean.join(\" \"))\n }\n}\n\nexport const twMerge = createTwMerge()\n\nexport function mergeWithRules(\n rules: Record<string, (classes: string[]) => string>,\n ...classLists: string[]\n): string {\n const base = twMerge(...classLists)\n let classes = base.split(/\\s+/).filter(Boolean)\n\n for (const rule of Object.values(rules)) {\n const next = rule(classes)\n classes = twMerge(next).split(/\\s+/).filter(Boolean)\n }\n\n return classes.join(\" \")\n}\n","/**\n * tailwind-styled-v4 — Live Token Engine\n *\n * Runtime design token management via CSS custom properties.\n * Theme changes propagate instantly — no rebuild, no re-render.\n *\n * Usage:\n * import { liveToken, setToken, setTokens, subscribeTokens } from \"tailwind-styled-v4\"\n *\n * // Define tokens (injected as CSS vars on first call)\n * const theme = liveToken({\n * primary: \"#3b82f6\",\n * secondary: \"#6366f1\",\n * accent: \"#f59e0b\",\n * surface: \"#18181b\",\n * \"text-base\": \"#e4e4e7\",\n * })\n *\n * // Use in components\n * const Button = tw.button`\n * bg-[var(--tw-token-primary)]\n * text-[var(--tw-token-text-base)]\n * `\n *\n * // Update at runtime (instant, no rebuild)\n * setToken(\"primary\", \"#ef4444\") // single token\n * setTokens({ primary: \"#ef4444\", secondary: \"#ec4899\" }) // batch\n *\n * // Switch themes\n * applyTokenSet(darkTheme)\n *\n * // Subscribe to changes\n * const unsub = subscribeTokens((tokens) => {\n * console.log(\"theme changed\", tokens)\n * })\n *\n * Token CSS variable naming:\n * token(\"primary\") → var(--tw-token-primary)\n * token(\"text-base\") → var(--tw-token-text-base)\n */\n\n// ─────────────────────────────────────────────────────────────────────────────\n// Types\n// ─────────────────────────────────────────────────────────────────────────────\n\nexport type TokenMap = Record<string, string>\n\nexport interface LiveTokenSet {\n /** Token name → CSS variable name mapping */\n vars: Record<string, string>\n /** Get current value of a token */\n get(name: string): string | undefined\n /** Update a single token */\n set(name: string, value: string): void\n /** Update multiple tokens at once */\n setAll(tokens: TokenMap): void\n /** Snapshot of current values */\n snapshot(): TokenMap\n}\n\nexport type TokenSubscriber = (tokens: TokenMap) => void\n\n// ─────────────────────────────────────────────────────────────────────────────\n// Internal state\n// ─────────────────────────────────────────────────────────────────────────────\n\nlet _currentTokens: TokenMap = {}\nconst _subscribers = new Set<TokenSubscriber>()\nlet _styleEl: HTMLStyleElement | null = null\n\n// Devtools integration\nif (typeof window !== \"undefined\") {\n ;(window as any).__TW_TOKEN_ENGINE__ = {\n getTokens: () => _currentTokens,\n setToken: (name: string, value: string) => setToken(name, value),\n subscribe: (fn: TokenSubscriber) => subscribeTokens(fn),\n }\n}\n\n// ─────────────────────────────────────────────────────────────────────────────\n// CSS variable name\n// ─────────────────────────────────────────────────────────────────────────────\n\nexport function tokenVar(name: string): string {\n const normalized = name.replace(/[^a-zA-Z0-9-]/g, \"-\").toLowerCase()\n return `--tw-token-${normalized}`\n}\n\nexport function tokenRef(name: string): string {\n return `var(${tokenVar(name)})`\n}\n\n// ─────────────────────────────────────────────────────────────────────────────\n// Style injection\n// ─────────────────────────────────────────────────────────────────────────────\n\nfunction buildRootCss(tokens: TokenMap): string {\n const vars = Object.entries(tokens)\n .map(([name, value]) => ` ${tokenVar(name)}: ${value};`)\n .join(\"\\n\")\n return `:root {\\n${vars}\\n}`\n}\n\nfunction syncStyleEl(): void {\n if (typeof document === \"undefined\") return\n\n if (!_styleEl) {\n _styleEl = document.createElement(\"style\")\n _styleEl.id = \"tw-live-tokens\"\n _styleEl.setAttribute(\"data-tw-tokens\", \"true\")\n document.head.appendChild(_styleEl)\n }\n\n _styleEl.textContent = buildRootCss(_currentTokens)\n}\n\nfunction notifySubscribers(): void {\n const snapshot = { ..._currentTokens }\n for (const sub of _subscribers) {\n try {\n sub(snapshot)\n } catch {\n /* silent */\n }\n }\n}\n\n// ─────────────────────────────────────────────────────────────────────────────\n// Core API\n// ─────────────────────────────────────────────────────────────────────────────\n\n/**\n * Define a set of live tokens and inject them as CSS variables.\n * Returns a LiveTokenSet for programmatic control.\n *\n * @example\n * const theme = liveToken({ primary: \"#3b82f6\" })\n * theme.set(\"primary\", \"#ef4444\") // instant update\n */\nexport function liveToken(tokens: TokenMap): LiveTokenSet {\n // Merge into current token map\n _currentTokens = { ..._currentTokens, ...tokens }\n syncStyleEl()\n\n const vars: Record<string, string> = {}\n for (const name of Object.keys(tokens)) {\n vars[name] = tokenRef(name)\n }\n\n return {\n vars,\n get(name) {\n return _currentTokens[name]\n },\n set(name, value) {\n setToken(name, value)\n },\n setAll(newTokens) {\n setTokens(newTokens)\n },\n snapshot() {\n return { ..._currentTokens }\n },\n }\n}\n\n/**\n * Update a single design token at runtime.\n * CSS variable is updated immediately — no rebuild needed.\n */\nexport function setToken(name: string, value: string): void {\n _currentTokens = { ..._currentTokens, [name]: value }\n\n // Fast path: update CSSOM directly if possible\n if (typeof document !== \"undefined\") {\n document.documentElement.style.setProperty(tokenVar(name), value)\n }\n\n notifySubscribers()\n}\n\n/**\n * Update multiple tokens in one batch (single DOM update).\n */\nexport function setTokens(tokens: TokenMap): void {\n _currentTokens = { ..._currentTokens, ...tokens }\n\n if (typeof document !== \"undefined\") {\n const root = document.documentElement\n for (const [name, value] of Object.entries(tokens)) {\n root.style.setProperty(tokenVar(name), value)\n }\n }\n\n notifySubscribers()\n}\n\n/**\n * Replace all tokens with a new token set (theme switch).\n */\nexport function applyTokenSet(tokens: TokenMap): void {\n // Remove old vars\n if (typeof document !== \"undefined\") {\n const root = document.documentElement\n for (const name of Object.keys(_currentTokens)) {\n if (!(name in tokens)) {\n root.style.removeProperty(tokenVar(name))\n }\n }\n }\n\n _currentTokens = { ...tokens }\n syncStyleEl()\n notifySubscribers()\n}\n\n/**\n * Get current value of a token.\n */\nexport function getToken(name: string): string | undefined {\n return _currentTokens[name]\n}\n\n/**\n * Get snapshot of all current tokens.\n */\nexport function getTokens(): TokenMap {\n return { ..._currentTokens }\n}\n\n/**\n * Subscribe to token changes.\n * Returns unsubscribe function.\n *\n * @example\n * const unsub = subscribeTokens((tokens) => {\n * document.documentElement.classList.toggle(\"dark\", tokens.surface === \"#000\")\n * })\n * // Later:\n * unsub()\n */\nexport function subscribeTokens(fn: TokenSubscriber): () => void {\n _subscribers.add(fn)\n return () => {\n _subscribers.delete(fn)\n }\n}\n\n/**\n * Generate SSR-safe CSS string for current tokens.\n */\nexport function generateTokenCssString(): string {\n return buildRootCss(_currentTokens)\n}\n\n/**\n * React hook for reading live tokens (re-renders on change).\n * Import from tailwind-styled-v4/react.\n */\nexport function createUseTokens() {\n // Lazy import React to avoid issues in non-React environments\n let useState: any, useEffect: any\n try {\n const react = require(\"react\")\n useState = react.useState\n useEffect = react.useEffect\n } catch {\n return null\n }\n\n return function useTokens(): TokenMap {\n const [tokens, setTokens_] = (useState as <S>(init: S) => [S, (v: S) => void])<TokenMap>({\n ..._currentTokens,\n })\n\n useEffect(() => {\n // Sync on mount\n setTokens_({ ..._currentTokens })\n const unsub = subscribeTokens((t) => setTokens_({ ...t }))\n return unsub\n }, [])\n\n return tokens\n }\n}\n","/**\n * tailwind-styled-v4 — createStyledSystem()\n *\n * Design System Factory — Mode 3 API.\n *\n * Level 1 — utility: tw.div`p-4`\n * Level 2 — styled: tw(Button)`px-4`\n * Level 3 — design system: ui.button({ variant: \"primary\" })\n *\n * Usage:\n * const ui = createStyledSystem({\n * tokens: {\n * colors: { primary: \"#6366f1\", muted: \"#71717a\" },\n * radius: { base: \"0.5rem\", full: \"9999px\" },\n * },\n * components: {\n * button: {\n * base: \"inline-flex items-center font-medium transition-colors\",\n * variants: {\n * variant: {\n * primary: \"bg-[var(--sys-color-primary)] text-white\",\n * ghost: \"bg-transparent border border-current\",\n * danger: \"bg-red-500 text-white\",\n * },\n * size: {\n * sm: \"h-8 px-3 text-sm\",\n * md: \"h-10 px-4 text-base\",\n * lg: \"h-12 px-6 text-lg\",\n * },\n * },\n * defaultVariants: { variant: \"primary\", size: \"md\" },\n * },\n * },\n * })\n *\n * const Button = ui.button()\n * // → <Button variant=\"primary\" size=\"lg\" />\n *\n * // Token access\n * ui.token(\"colors.primary\") // → \"var(--sys-color-primary)\"\n * ui.cssVar(\"colors.primary\") // → \"#6366f1\"\n */\n\nimport { createComponent } from \"./createComponent\"\nimport type { ComponentConfig, TwStyledComponent } from \"./types\"\n\n// ─────────────────────────────────────────────────────────────────────────────\n// System token types\n// ─────────────────────────────────────────────────────────────────────────────\n\nexport type SystemTokenMap = Record<string, Record<string, string>>\n\nexport interface SystemComponentConfig extends ComponentConfig {\n /** Extra class applied only when used from the system (e.g. system-level resets) */\n systemBase?: string\n}\n\nexport interface StyledSystemConfig<\n T extends SystemTokenMap = SystemTokenMap,\n C extends Record<string, SystemComponentConfig> = Record<string, SystemComponentConfig>,\n> {\n /** Design tokens — injected as CSS custom properties under --sys-{group}-{name} */\n tokens?: T\n /** Component presets */\n components?: C\n /** CSS variable prefix. Default: \"sys\" → --sys-color-primary */\n prefix?: string\n /** If true, auto-inject token CSS vars into :root on init. Default: true */\n injectTokens?: boolean\n}\n\n// ─────────────────────────────────────────────────────────────────────────────\n// Token → CSS var helpers\n// ─────────────────────────────────────────────────────────────────────────────\n\nfunction tokenVarName(prefix: string, group: string, name: string): string {\n return `--${prefix}-${group}-${name}`\n}\n\nfunction tokenVarRef(prefix: string, group: string, name: string): string {\n return `var(${tokenVarName(prefix, group, name)})`\n}\n\nfunction resolveTokenRef(tokens: SystemTokenMap, prefix: string, value: string): string {\n // If value is \"token:colors.primary\" → resolve to var(--sys-colors-primary)\n if (value.startsWith(\"token:\")) {\n const path = value.slice(6)\n const [group, name] = path.split(\".\")\n if (group && name && tokens[group]?.[name] !== undefined) {\n return tokenVarRef(prefix, group, name)\n }\n }\n return value\n}\n\nfunction injectTokensToRoot(tokens: SystemTokenMap, prefix: string): void {\n if (typeof document === \"undefined\") return\n\n const styleId = `__tw-sys-tokens-${prefix}`\n if (document.getElementById(styleId)) return\n\n const lines: string[] = [\":root {\"]\n for (const [group, map] of Object.entries(tokens)) {\n for (const [name, value] of Object.entries(map)) {\n lines.push(` ${tokenVarName(prefix, group, name)}: ${value};`)\n }\n }\n lines.push(\"}\")\n\n const style = document.createElement(\"style\")\n style.id = styleId\n style.textContent = lines.join(\"\\n\")\n document.head.appendChild(style)\n}\n\n// ─────────────────────────────────────────────────────────────────────────────\n// Variant class resolver — replaces \"token:*\" references inside variant values\n// ─────────────────────────────────────────────────────────────────────────────\n\nfunction resolveComponentConfig(\n config: SystemComponentConfig,\n tokens: SystemTokenMap,\n prefix: string\n): ComponentConfig {\n const resolveStr = (s: string) => resolveTokenRef(tokens, prefix, s)\n\n const base = resolveStr(config.base ?? \"\")\n const systemBase = resolveStr(config.systemBase ?? \"\")\n const mergedBase = [systemBase, base].filter(Boolean).join(\" \")\n\n const variants: Record<string, Record<string, string>> = {}\n for (const [variantKey, variantMap] of Object.entries(config.variants ?? {})) {\n variants[variantKey] = {}\n for (const [optKey, classes] of Object.entries(variantMap)) {\n variants[variantKey][optKey] = classes.split(\" \").map(resolveStr).join(\" \")\n }\n }\n\n const compoundVariants = (config.compoundVariants ?? []).map((cv) => {\n const { class: cls, ...rest } = cv\n return { class: resolveStr(cls), ...rest }\n })\n\n return {\n base: mergedBase,\n variants,\n compoundVariants,\n defaultVariants: config.defaultVariants ?? {},\n state: config.state,\n container: config.container,\n containerName: config.containerName,\n }\n}\n\n// ─────────────────────────────────────────────────────────────────────────────\n// StyledSystem instance type\n// ─────────────────────────────────────────────────────────────────────────────\n\nexport type SystemComponentFactory<C extends SystemComponentConfig> = (\n overrides?: Partial<C>\n) => TwStyledComponent<any>\n\nexport type StyledSystemInstance<\n T extends SystemTokenMap,\n C extends Record<string, SystemComponentConfig>,\n> = {\n [K in keyof C]: SystemComponentFactory<C[K]>\n} & {\n /**\n * Get the CSS variable reference for a token.\n * @example ui.token(\"colors.primary\") → \"var(--sys-colors-primary)\"\n */\n token(path: string): string\n /**\n * Get the raw value of a token.\n * @example ui.rawToken(\"colors.primary\") → \"#6366f1\"\n */\n rawToken(path: string): string | undefined\n /**\n * Update token values at runtime (re-injects into :root).\n */\n setTokens(updates: Partial<{ [G in keyof T]: Partial<T[G]> }>): void\n /**\n * Access the resolved component config for a registered component.\n */\n getConfig(name: keyof C): ComponentConfig | undefined\n /**\n * The tokens object (for reference).\n */\n tokens: T\n}\n\n// ─────────────────────────────────────────────────────────────────────────────\n// createStyledSystem\n// ─────────────────────────────────────────────────────────────────────────────\n\nexport function createStyledSystem<\n T extends SystemTokenMap = SystemTokenMap,\n C extends Record<string, SystemComponentConfig> = Record<string, SystemComponentConfig>,\n>(config: StyledSystemConfig<T, C>): StyledSystemInstance<T, C> {\n const prefix = config.prefix ?? \"sys\"\n const tokens = (config.tokens ?? {}) as unknown as T\n const componentDefs = config.components ?? ({} as C)\n const shouldInject = config.injectTokens !== false\n\n // Inject tokens into :root on first call (client only)\n if (shouldInject && typeof window !== \"undefined\") {\n injectTokensToRoot(tokens as unknown as SystemTokenMap, prefix)\n }\n\n // Cache resolved component configs\n const resolvedConfigs = new Map<string, ComponentConfig>()\n\n for (const [name, compCfg] of Object.entries(componentDefs)) {\n resolvedConfigs.set(\n name,\n resolveComponentConfig(compCfg, tokens as unknown as SystemTokenMap, prefix)\n )\n }\n\n // Build component factories\n const factories: Record<string, SystemComponentFactory<any>> = {}\n\n for (const [name, compCfg] of Object.entries(componentDefs)) {\n const tag = (compCfg as any).tag ?? \"div\"\n\n factories[name] = (overrides?: Partial<SystemComponentConfig>) => {\n const baseResolved = resolvedConfigs.get(name)!\n\n if (!overrides || Object.keys(overrides).length === 0) {\n return createComponent(tag, baseResolved)\n }\n\n // Merge overrides into resolved config\n const overrideResolved = resolveComponentConfig(\n overrides as SystemComponentConfig,\n tokens as unknown as SystemTokenMap,\n prefix\n )\n\n const merged: ComponentConfig = {\n base: [baseResolved.base, overrideResolved.base].filter(Boolean).join(\" \"),\n variants: {\n ...(baseResolved.variants ?? undefined),\n ...(overrideResolved.variants ?? undefined),\n },\n compoundVariants: [\n ...(baseResolved.compoundVariants ?? []),\n ...(overrideResolved.compoundVariants ?? []),\n ],\n defaultVariants: {\n ...(baseResolved.defaultVariants ?? undefined),\n ...(overrideResolved.defaultVariants ?? undefined),\n },\n state: overrideResolved.state ?? baseResolved.state,\n container: overrideResolved.container ?? baseResolved.container,\n containerName: overrideResolved.containerName ?? baseResolved.containerName,\n }\n\n return createComponent(tag, merged)\n }\n }\n\n // Token utilities\n function token(path: string): string {\n const [group, name] = path.split(\".\")\n if (!group || !name) return path\n return tokenVarRef(prefix, group, name)\n }\n\n function rawToken(path: string): string | undefined {\n const [group, name] = path.split(\".\")\n if (!group || !name) return undefined\n return (tokens as unknown as SystemTokenMap)[group]?.[name]\n }\n\n function setTokens(updates: Partial<{ [G in keyof T]: Partial<T[G]> }>): void {\n if (typeof document === \"undefined\") return\n\n // Find or create the :root style element\n const styleId = `__tw-sys-tokens-${prefix}`\n let style = document.getElementById(styleId) as HTMLStyleElement | null\n if (!style) {\n style = document.createElement(\"style\")\n style.id = styleId\n document.head.appendChild(style)\n }\n\n // Merge updates into tokens and re-generate\n for (const [group, map] of Object.entries(updates)) {\n if (!tokens[group as keyof T]) continue\n for (const [name, value] of Object.entries(map as Record<string, string>)) {\n ;(tokens as unknown as SystemTokenMap)[group][name] = value\n }\n }\n\n const lines: string[] = [\":root {\"]\n for (const [group, map] of Object.entries(tokens as unknown as SystemTokenMap)) {\n for (const [name, value] of Object.entries(map)) {\n lines.push(` ${tokenVarName(prefix, group, name)}: ${value};`)\n }\n }\n lines.push(\"}\")\n style.textContent = lines.join(\"\\n\")\n }\n\n function getConfig(name: keyof C): ComponentConfig | undefined {\n return resolvedConfigs.get(name as string)\n }\n\n return Object.assign(factories, {\n token,\n rawToken,\n setTokens,\n getConfig,\n tokens,\n }) as unknown as StyledSystemInstance<T, C>\n}\n","import { twMerge } from \"./merge\"\n\nexport interface StyledOptions {\n base?: string\n variants?: Record<string, Record<string, string>>\n defaultVariants?: Record<string, string>\n compoundVariants?: Array<{\n variants: Record<string, string>\n className: string\n }>\n}\n\nexport type StyledProps = {\n className?: string\n} & Record<string, string | number | boolean | undefined>\n\nfunction resolveVariantClass(options: StyledOptions, props: StyledProps): string[] {\n const out: string[] = []\n const variants = options.variants ?? {}\n const defaults = options.defaultVariants ?? {}\n\n for (const [variantName, valueMap] of Object.entries(variants)) {\n const value = props[variantName] ?? defaults[variantName]\n if (value === undefined) continue\n\n const key = String(value)\n const cls = valueMap[key]\n if (cls) out.push(cls)\n }\n\n for (const compound of options.compoundVariants ?? []) {\n const matches = Object.entries(compound.variants).every(([k, expected]) => {\n const current = props[k] ?? defaults[k]\n return String(current) === expected\n })\n\n if (matches) out.push(compound.className)\n }\n\n return out\n}\n\nexport function resolveStyledClassName(options: StyledOptions, props: StyledProps = {}): string {\n const parts = [options.base ?? \"\", ...resolveVariantClass(options, props), props.className ?? \"\"]\n return twMerge(...parts)\n}\n\nexport function styled(options: StyledOptions) {\n return function getClassName(props: StyledProps = {}): string {\n return resolveStyledClassName(options, props)\n }\n}\n","/**\n * tailwind-styled-v4 v2 — tw\n *\n * API:\n * tw.div`p-4 bg-zinc-900`\n * tw.button({ base: \"px-4\", variants: { size: { sm: \"text-sm\" } } })\n * tw(Link)`underline text-blue-400`\n * tw.server.div`p-4` ← server-only, compiler enforced + runtime dev warning\n */\n\nimport type React from \"react\"\nimport { createComponent } from \"./createComponent\"\nimport type {\n ComponentConfig,\n TwComponentFactory,\n TwObject,\n TwServerObject,\n TwStyledComponent,\n TwTagFactory,\n} from \"./types\"\n\n// types.ts is single source of truth — re-export for consumers\nexport type { TwTagFactory, TwComponentFactory, TwObject, TwServerObject }\n\n// ─────────────────────────────────────────────────────────────────────────────\n// Template parser\n// ─────────────────────────────────────────────────────────────────────────────\n\nfunction parseTemplate(strings: TemplateStringsArray, exprs: any[]): string {\n return strings.raw\n .reduce((acc, str, i) => {\n const expr = exprs[i]\n const exprStr = typeof expr === \"function\" ? \"\" : (expr ?? \"\")\n return acc + str + String(exprStr)\n }, \"\")\n .split(\"\\n\")\n .map((l) => l.trim())\n .filter(Boolean)\n .join(\" \")\n .replace(/\\s+/g, \" \")\n .trim()\n}\n\n// ─────────────────────────────────────────────────────────────────────────────\n// makeTag\n// ─────────────────────────────────────────────────────────────────────────────\n\nfunction makeTag(tag: any): TwTagFactory<any> {\n return ((\n stringsOrConfig: TemplateStringsArray | ComponentConfig,\n ...exprs: any[]\n ): TwStyledComponent<any> => {\n if (\n !Array.isArray(stringsOrConfig) &&\n typeof stringsOrConfig === \"object\" &&\n stringsOrConfig !== null &&\n !(\"raw\" in stringsOrConfig)\n ) {\n return createComponent(tag, stringsOrConfig as ComponentConfig)\n }\n const classes = parseTemplate(stringsOrConfig as TemplateStringsArray, exprs)\n return createComponent(tag, classes)\n }) as TwTagFactory<any>\n}\n\n// ─────────────────────────────────────────────────────────────────────────────\n// HTML tag list\n// ─────────────────────────────────────────────────────────────────────────────\n\nconst HTML_TAGS = [\n \"div\",\n \"section\",\n \"article\",\n \"aside\",\n \"header\",\n \"footer\",\n \"main\",\n \"nav\",\n \"figure\",\n \"figcaption\",\n \"details\",\n \"summary\",\n \"h1\",\n \"h2\",\n \"h3\",\n \"h4\",\n \"h5\",\n \"h6\",\n \"p\",\n \"span\",\n \"strong\",\n \"em\",\n \"b\",\n \"i\",\n \"s\",\n \"u\",\n \"small\",\n \"mark\",\n \"abbr\",\n \"cite\",\n \"code\",\n \"kbd\",\n \"samp\",\n \"var\",\n \"time\",\n \"address\",\n \"blockquote\",\n \"q\",\n \"del\",\n \"ins\",\n \"sub\",\n \"sup\",\n \"ul\",\n \"ol\",\n \"li\",\n \"dl\",\n \"dt\",\n \"dd\",\n \"table\",\n \"thead\",\n \"tbody\",\n \"tfoot\",\n \"tr\",\n \"th\",\n \"td\",\n \"caption\",\n \"colgroup\",\n \"col\",\n \"img\",\n \"picture\",\n \"video\",\n \"audio\",\n \"source\",\n \"track\",\n \"canvas\",\n \"svg\",\n \"path\",\n \"circle\",\n \"rect\",\n \"line\",\n \"polyline\",\n \"polygon\",\n \"g\",\n \"defs\",\n \"use\",\n \"symbol\",\n \"form\",\n \"input\",\n \"textarea\",\n \"select\",\n \"option\",\n \"optgroup\",\n \"button\",\n \"label\",\n \"fieldset\",\n \"legend\",\n \"output\",\n \"progress\",\n \"meter\",\n \"datalist\",\n \"a\",\n \"area\",\n \"map\",\n \"iframe\",\n \"embed\",\n \"object\",\n \"pre\",\n \"hr\",\n \"br\",\n \"wbr\",\n \"dialog\",\n \"menu\",\n \"template\",\n \"slot\",\n] as const\n\n// ─────────────────────────────────────────────────────────────────────────────\n// tw.server — server-only namespace with dev warning\n// ─────────────────────────────────────────────────────────────────────────────\n\nfunction makeServerTag(tag: any): TwTagFactory<any> {\n const baseFactory = makeTag(tag)\n if (typeof window !== \"undefined\" && process.env.NODE_ENV !== \"production\") {\n return ((...args: any[]): TwStyledComponent<any> => {\n const tagName = typeof tag === \"string\" ? tag : (tag.displayName ?? \"Component\")\n console.warn(\n `[tailwind-styled-v4] tw.server.${tagName} rendered in browser. ` +\n `Ensure withTailwindStyled or Vite plugin is configured.`\n )\n return (baseFactory as any)(...args)\n }) as TwTagFactory<any>\n }\n return baseFactory\n}\n\n// Build server namespace — explicit type annotation so DTS bundler doesn't\n// flatten it to Readonly<{}> (which happens with Object.freeze)\nconst serverFactories: { [K: string]: TwTagFactory<any> } = {}\nfor (const tag of HTML_TAGS) {\n serverFactories[tag] = makeServerTag(tag)\n}\n\nexport const server: TwServerObject = serverFactories as unknown as TwServerObject\n\n// ─────────────────────────────────────────────────────────────────────────────\n// tw — main export\n// ─────────────────────────────────────────────────────────────────────────────\n\nconst tagFactories: { [K: string]: TwTagFactory<any> } = {}\nfor (const tag of HTML_TAGS) {\n tagFactories[tag] = makeTag(tag)\n}\n\nfunction twCallable<C extends React.ComponentType<any>>(component: C): TwComponentFactory<C> {\n return makeTag(component) as any\n}\n\n// Explicit type annotation — TypeScript uses TwObject, DTS bundler inlines it correctly\nexport const tw: TwObject = Object.assign(twCallable as any, tagFactories, {\n server,\n}) as unknown as TwObject\n","/**\n * tailwind-styled-v4 v2 — twTheme\n *\n * UPGRADE #1: Tailwind v4 CSS Variables integration.\n *\n * Tailwind v4 uses @theme inline to expose design tokens as CSS custom properties:\n * @theme inline {\n * --color-background: var(--background);\n * --color-foreground: var(--foreground);\n * --font-sans: var(--font-geist-sans);\n * }\n *\n * This module bridges tw() syntax with those CSS variables — zero config,\n * full IDE support, type-safe design tokens.\n *\n * @example\n * // Without twTheme (verbose, error-prone)\n * const Box = tw.div`bg-[var(--color-background)] text-[var(--color-foreground)]`\n *\n * // With twTheme (clean, type-safe)\n * const Box = tw.div`${t.bg(\"color-background\")} ${t.text(\"color-foreground\")}`\n *\n * // Or with createTheme for full project-level token map\n * const theme = createTheme({\n * colors: { bg: \"color-background\", fg: \"color-foreground\", primary: \"color-primary\" },\n * fonts: { sans: \"font-sans\", mono: \"font-mono\" },\n * })\n * const Box = tw.div`bg-${theme.colors.bg} text-${theme.colors.fg}`\n */\n\n// ─────────────────────────────────────────────────────────────────────────────\n// Core helper — CSS variable reference\n// ─────────────────────────────────────────────────────────────────────────────\n\n/**\n * Reference a CSS custom property in Tailwind v4 arbitrary value syntax.\n *\n * @example\n * cssVar(\"color-background\") → \"var(--color-background)\"\n * cssVar(\"color-primary\", \"#3b82f6\") → \"var(--color-primary, #3b82f6)\"\n */\nexport function cssVar(varName: string, fallback?: string): string {\n const name = varName.startsWith(\"--\") ? varName : `--${varName}`\n return fallback ? `var(${name}, ${fallback})` : `var(${name})`\n}\n\n/**\n * Generate a Tailwind v4 arbitrary value that references a CSS variable.\n *\n * @example\n * twVar(\"bg\", \"color-background\") → \"bg-[var(--color-background)]\"\n * twVar(\"text\", \"color-foreground\") → \"text-[var(--color-foreground)]\"\n * twVar(\"border\", \"color-border\", \"#e5e7eb\") → \"border-[var(--color-border,#e5e7eb)]\"\n */\nexport function twVar(property: string, varName: string, fallback?: string): string {\n const ref = fallback ? `var(--${varName},${fallback})` : `var(--${varName})`\n return `${property}-[${ref}]`\n}\n\n// ─────────────────────────────────────────────────────────────────────────────\n// Convenience shorthand builders\n// ─────────────────────────────────────────────────────────────────────────────\n\nexport const t = {\n /** Background color from CSS variable: t.bg(\"color-primary\") → \"bg-[var(--color-primary)]\" */\n bg: (v: string, fb?: string) => twVar(\"bg\", v, fb),\n /** Text color from CSS variable */\n text: (v: string, fb?: string) => twVar(\"text\", v, fb),\n /** Border color from CSS variable */\n border: (v: string, fb?: string) => twVar(\"border\", v, fb),\n /** Ring color from CSS variable */\n ring: (v: string, fb?: string) => twVar(\"ring\", v, fb),\n /** Outline color from CSS variable */\n outline: (v: string, fb?: string) => twVar(\"outline\", v, fb),\n /** Fill color from CSS variable (SVG) */\n fill: (v: string, fb?: string) => twVar(\"fill\", v, fb),\n /** Stroke color from CSS variable (SVG) */\n stroke: (v: string, fb?: string) => twVar(\"stroke\", v, fb),\n /** Font family from CSS variable */\n font: (v: string, fb?: string) => twVar(\"font\", v, fb),\n /** Shadow from CSS variable */\n shadow: (v: string, fb?: string) => twVar(\"shadow\", v, fb),\n /** Any arbitrary property from CSS variable */\n var: (property: string, v: string, fb?: string) => twVar(property, v, fb),\n}\n\n// ─────────────────────────────────────────────────────────────────────────────\n// createTheme — project-level design token map\n// ─────────────────────────────────────────────────────────────────────────────\n\nexport interface ThemeTokenMap {\n colors?: Record<string, string>\n fonts?: Record<string, string>\n spacing?: Record<string, string>\n [key: string]: Record<string, string> | undefined\n}\n\nexport type ResolvedThemeTokens<T extends ThemeTokenMap> = {\n [Group in keyof T]: T[Group] extends Record<string, string>\n ? {\n [Token in keyof T[Group]]: string\n }\n : never\n}\n\n/**\n * Create a typed theme token map from your CSS variable names.\n * Returns helper functions that generate Tailwind v4 arbitrary values.\n *\n * @example\n * // Define your tokens (match your globals.css @theme block)\n * const theme = createTheme({\n * colors: {\n * bg: \"color-background\",\n * fg: \"color-foreground\",\n * primary: \"color-primary\",\n * muted: \"color-muted\",\n * },\n * fonts: {\n * sans: \"font-sans\",\n * mono: \"font-mono\",\n * },\n * })\n *\n * // Use in tw components\n * const Card = tw.div`\n * bg-${theme.colors.bg}\n * text-${theme.colors.fg}\n * font-${theme.fonts.sans}\n * `\n * // → tw.div`bg-[var(--color-background)] text-[var(--color-foreground)] font-[var(--font-sans)]`\n *\n * // Use in cv()\n * const button = cv({\n * base: `px-4 py-2 ${theme.colors.bg} ${theme.colors.fg}`,\n * variants: { ... }\n * })\n */\nexport function createTheme<T extends ThemeTokenMap>(tokenMap: T): ResolvedThemeTokens<T> {\n const resolved = {} as any\n\n for (const group in tokenMap) {\n resolved[group] = {}\n const tokens = tokenMap[group]!\n for (const name in tokens) {\n const varName = tokens[name]\n // Determine Tailwind property prefix based on group name\n const prefix = getGroupPrefix(group)\n resolved[group][name] = prefix ? twVar(prefix, varName) : cssVar(varName)\n }\n }\n\n return resolved as ResolvedThemeTokens<T>\n}\n\nfunction getGroupPrefix(group: string): string {\n const map: Record<string, string> = {\n colors: \"bg\", // default to bg; user can use t.text() for text colors\n fonts: \"font\",\n spacing: \"p\",\n shadows: \"shadow\",\n }\n return map[group] ?? \"\"\n}\n\n// ─────────────────────────────────────────────────────────────────────────────\n// Standard Tailwind v4 tokens\n//\n// Pre-built token references for the default next-app globals.css setup.\n// These match what Tailwind v4's @theme inline generates.\n// ─────────────────────────────────────────────────────────────────────────────\n\n/**\n * Pre-built references for standard Tailwind v4 CSS variable tokens.\n * Works out of the box with next-app-standar-config globals.css.\n *\n * @example\n * import { v4Tokens } from \"tailwind-styled-v4\"\n *\n * const Page = tw.div`${v4Tokens.bg} ${v4Tokens.text}`\n * // → tw.div`bg-[var(--color-background)] text-[var(--color-foreground)]`\n */\nexport const v4Tokens = {\n /** bg-[var(--color-background)] */\n bg: twVar(\"bg\", \"color-background\"),\n /** text-[var(--color-foreground)] */\n text: twVar(\"text\", \"color-foreground\"),\n /** font-[var(--font-sans)] */\n fontSans: twVar(\"font\", \"font-sans\"),\n /** font-[var(--font-mono)] */\n fontMono: twVar(\"font\", \"font-mono\"),\n} as const\n","/**\n * tailwind-styled-v4 — Class parser\n *\n * Tries the Rust native binding first (parse_classes via napi),\n * falls back to the JS implementation when the binding is unavailable.\n *\n * Public API is unchanged — same types and functions as before.\n */\n\n// Lazy load Node built-ins — browser safe (never called in browser context)\nconst _getNodePath = () => (typeof require !== \"undefined\" ? require(\"path\") : null)\nconst _getCreateRequire = () => {\n if (typeof require !== \"undefined\") {\n try {\n return require(\"module\").createRequire\n } catch {\n return null\n }\n }\n return null\n}\n\n// ── Types (re-exported so consumers don't need to change imports) ─────────────\n\nexport interface ParsedClassModifier {\n type: \"opacity\" | \"arbitrary\"\n value: string\n}\n\nexport interface ParsedClass {\n raw: string\n base: string\n variants: string[]\n modifier?: ParsedClassModifier\n}\n\n// ── Rust native binding ───────────────────────────────────────────────────────\n\ninterface NativeParserBinding {\n parseClasses?: (input: string) => Array<{\n raw: string\n base: string\n variants: string[]\n modifierType?: string | null\n modifierValue?: string | null\n }>\n}\n\nlet _binding: NativeParserBinding | null | undefined\n\nfunction getBinding(): NativeParserBinding | null {\n if (_binding !== undefined) return _binding\n if (process.env.TWS_NO_NATIVE === \"1\" || process.env.TWS_NO_RUST === \"1\") {\n return (_binding = null)\n }\n // Guard: skip entirely in browser environment\n if (typeof process === \"undefined\" || typeof process.cwd !== \"function\") {\n return (_binding = null)\n }\n\n const runtimeDir = typeof __dirname === \"string\" ? __dirname : process.cwd()\n\n // Lazy-load Node built-ins — safe in browser (never reached due to guard above)\n // eslint-disable-next-line @typescript-eslint/no-require-imports\n const nodePath = _getNodePath()\n const nodeCreateRequire = _getCreateRequire()\n if (!nodePath) return (_binding = null)\n\n const req =\n typeof require === \"function\"\n ? require\n : nodeCreateRequire\n ? nodeCreateRequire(nodePath.join(runtimeDir, \"noop.cjs\"))\n : null\n\n if (!req) return (_binding = null)\n\n const candidates = [\n nodePath.resolve(process.cwd(), \"native\", \"tailwind_styled_parser.node\"),\n nodePath.resolve(runtimeDir, \"..\", \"..\", \"..\", \"native\", \"tailwind_styled_parser.node\"),\n nodePath.resolve(runtimeDir, \"..\", \"..\", \"..\", \"..\", \"native\", \"tailwind_styled_parser.node\"),\n ]\n\n for (const c of candidates) {\n try {\n const mod = req(c) as NativeParserBinding\n if (mod?.parseClasses) return (_binding = mod)\n } catch {\n /* try next */\n }\n }\n\n return (_binding = null)\n}\n\n// ── JS fallback implementations ───────────────────────────────────────────────\n\nfunction splitClassListJS(input: string): string[] {\n const out: string[] = []\n let token = \"\"\n let square = 0\n let round = 0\n let escaped = false\n\n for (const ch of input) {\n if (escaped) {\n token += ch\n escaped = false\n continue\n }\n if (ch === \"\\\\\") {\n token += ch\n escaped = true\n continue\n }\n if (ch === \"[\") square++\n else if (ch === \"]\") square = Math.max(0, square - 1)\n else if (ch === \"(\") round++\n else if (ch === \")\") round = Math.max(0, round - 1)\n const isSpace = /\\s/.test(ch)\n if (isSpace && square === 0 && round === 0) {\n if (token.trim().length > 0) out.push(token.trim())\n token = \"\"\n continue\n }\n token += ch\n }\n if (token.trim().length > 0) out.push(token.trim())\n return out\n}\n\nfunction parseClassTokenJS(rawToken: string): ParsedClass {\n const parts: string[] = []\n let current = \"\"\n let square = 0\n let round = 0\n let escaped = false\n\n for (const ch of rawToken) {\n if (escaped) {\n current += ch\n escaped = false\n continue\n }\n if (ch === \"\\\\\") {\n current += ch\n escaped = true\n continue\n }\n if (ch === \"[\") square++\n else if (ch === \"]\") square = Math.max(0, square - 1)\n else if (ch === \"(\") round++\n else if (ch === \")\") round = Math.max(0, round - 1)\n if (ch === \":\" && square === 0 && round === 0) {\n parts.push(current)\n current = \"\"\n continue\n }\n current += ch\n }\n parts.push(current)\n\n const variants = parts.slice(0, -1).filter(Boolean)\n const baseToken = parts[parts.length - 1] ?? \"\"\n const parsed: ParsedClass = { raw: rawToken, base: baseToken, variants }\n\n const opacityMatch = baseToken.match(/^(.*)\\/(\\d{1,3})$/)\n if (opacityMatch && opacityMatch[1].length > 0) {\n parsed.base = opacityMatch[1]\n parsed.modifier = { type: \"opacity\", value: opacityMatch[2] }\n return parsed\n }\n\n const arbitraryMatch = baseToken.match(/\\((--[a-zA-Z0-9_-]+)\\)/)\n if (arbitraryMatch) {\n parsed.modifier = { type: \"arbitrary\", value: arbitraryMatch[1] }\n }\n\n return parsed\n}\n\n// ── Public API ────────────────────────────────────────────────────────────────\n\n/**\n * Split a Tailwind class string, preserving bracket/parenthesis expressions.\n * Uses Rust napi when available, JS fallback otherwise.\n */\nexport function splitClassList(input: string): string[] {\n const binding = getBinding()\n if (binding?.parseClasses) {\n try {\n return binding.parseClasses(input).map((p) => p.raw)\n } catch {\n /* fall through */\n }\n }\n return splitClassListJS(input)\n}\n\n/**\n * Parse a single Tailwind class token into variants + base + modifier metadata.\n * Uses Rust napi when available, JS fallback otherwise.\n */\nexport function parseClassToken(rawToken: string): ParsedClass {\n const binding = getBinding()\n if (binding?.parseClasses) {\n try {\n const results = binding.parseClasses(rawToken)\n if (results.length === 1) {\n const r = results[0]\n const parsed: ParsedClass = {\n raw: r.raw,\n base: r.base,\n variants: r.variants,\n }\n if (r.modifierType && r.modifierValue) {\n parsed.modifier = {\n type: r.modifierType as \"opacity\" | \"arbitrary\",\n value: r.modifierValue,\n }\n }\n return parsed\n }\n } catch {\n /* fall through */\n }\n }\n return parseClassTokenJS(rawToken)\n}\n\n/**\n * Parse all Tailwind classes in a space-separated string.\n * Uses Rust napi for bulk parsing when available.\n */\nexport function parseTailwindClasses(input: string): ParsedClass[] {\n const binding = getBinding()\n if (binding?.parseClasses) {\n try {\n return binding.parseClasses(input).map((r) => {\n const parsed: ParsedClass = { raw: r.raw, base: r.base, variants: r.variants }\n if (r.modifierType && r.modifierValue) {\n parsed.modifier = {\n type: r.modifierType as \"opacity\" | \"arbitrary\",\n value: r.modifierValue,\n }\n }\n return parsed\n })\n } catch {\n /* fall through */\n }\n }\n return splitClassListJS(input).map(parseClassTokenJS)\n}\n","export interface ThemeConfig {\n colors: Record<string, string>\n spacing: Record<string, string>\n fonts: Record<string, string>\n breakpoints: Record<string, string>\n animations: Record<string, string>\n raw: Record<string, string>\n}\n\nconst THEME_BLOCK_RE = /@theme\\s*\\{([\\s\\S]*?)\\}/g\nconst CSS_VAR_RE = /--([a-zA-Z0-9_-]+)\\s*:\\s*([^;]+);/g\n\nconst cache = new Map<string, ThemeConfig>()\n\nfunction createEmptyTheme(): ThemeConfig {\n return {\n colors: {},\n spacing: {},\n fonts: {},\n breakpoints: {},\n animations: {},\n raw: {},\n }\n}\n\nfunction setToken(theme: ThemeConfig, key: string, value: string): void {\n theme.raw[key] = value\n\n if (key.startsWith(\"color-\")) {\n theme.colors[key.slice(\"color-\".length)] = value\n return\n }\n if (key.startsWith(\"spacing-\")) {\n theme.spacing[key.slice(\"spacing-\".length)] = value\n return\n }\n if (key.startsWith(\"font-\")) {\n theme.fonts[key.slice(\"font-\".length)] = value\n return\n }\n if (key.startsWith(\"breakpoint-\")) {\n theme.breakpoints[key.slice(\"breakpoint-\".length)] = value\n return\n }\n if (key.startsWith(\"animate-\")) {\n theme.animations[key.slice(\"animate-\".length)] = value\n }\n}\n\nexport function resolveThemeValue(\n key: string,\n theme: ThemeConfig,\n visited: Set<string> = new Set()\n): string {\n const token = key.replace(/^--/, \"\")\n const raw = theme.raw[token]\n if (!raw) return \"\"\n if (visited.has(token)) return raw\n\n const nested = raw.match(/^var\\((--[a-zA-Z0-9_-]+)\\)$/)\n if (!nested) return raw\n\n visited.add(token)\n return resolveThemeValue(nested[1], theme, visited)\n}\n\nexport function extractThemeFromCSS(cssContent: string): ThemeConfig {\n const hit = cache.get(cssContent)\n if (hit) return hit\n\n const theme = createEmptyTheme()\n\n let blockMatch: RegExpExecArray | null\n while ((blockMatch = THEME_BLOCK_RE.exec(cssContent)) !== null) {\n const block = blockMatch[1]\n\n let varMatch: RegExpExecArray | null\n while ((varMatch = CSS_VAR_RE.exec(block)) !== null) {\n const key = varMatch[1]\n const value = varMatch[2].trim()\n setToken(theme, key, value)\n }\n }\n\n for (const key of Object.keys(theme.raw)) {\n const resolved = resolveThemeValue(`--${key}`, theme)\n theme.raw[key] = resolved\n\n if (key.startsWith(\"color-\")) {\n theme.colors[key.slice(\"color-\".length)] = resolved\n } else if (key.startsWith(\"spacing-\")) {\n theme.spacing[key.slice(\"spacing-\".length)] = resolved\n } else if (key.startsWith(\"font-\")) {\n theme.fonts[key.slice(\"font-\".length)] = resolved\n } else if (key.startsWith(\"breakpoint-\")) {\n theme.breakpoints[key.slice(\"breakpoint-\".length)] = resolved\n } else if (key.startsWith(\"animate-\")) {\n theme.animations[key.slice(\"animate-\".length)] = resolved\n }\n }\n\n cache.set(cssContent, theme)\n return theme\n}\n\nexport function generateTypeDefinitions(theme: ThemeConfig): string {\n const toRecordType = (name: string, obj: Record<string, string>) => {\n const keys = Object.keys(obj)\n if (keys.length === 0) return ` ${name}: Record<string, string>`\n const mapped = keys.map((k) => ` \"${k}\": string`).join(\"\\n\")\n return ` ${name}: {\\n${mapped}\\n }`\n }\n\n return [\n \"export interface TailwindStyledThemeTokens {\",\n toRecordType(\"colors\", theme.colors),\n toRecordType(\"spacing\", theme.spacing),\n toRecordType(\"fonts\", theme.fonts),\n toRecordType(\"breakpoints\", theme.breakpoints),\n toRecordType(\"animations\", theme.animations),\n \"}\",\n \"\",\n ].join(\"\\n\")\n}\n\nexport function clearThemeReaderCache(): void {\n cache.clear()\n}\n"]}