tailwind-styled-v4 5.0.7 → 5.0.9
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/CHANGELOG.md +184 -410
- package/README.md +45 -15
- package/dist/cli.js +62 -52
- package/dist/cli.js.map +1 -1
- package/dist/cli.mjs +62 -52
- package/dist/cli.mjs.map +1 -1
- package/dist/compiler.d.mts +8 -3
- package/dist/compiler.d.ts +8 -3
- package/dist/compiler.js +214 -127
- package/dist/compiler.js.map +1 -1
- package/dist/compiler.mjs +195 -103
- package/dist/compiler.mjs.map +1 -1
- package/dist/engine.js +146 -66
- package/dist/engine.js.map +1 -1
- package/dist/engine.mjs +146 -66
- package/dist/engine.mjs.map +1 -1
- package/dist/index.d.mts +26 -8
- package/dist/index.d.ts +26 -8
- package/dist/index.js +72 -19
- package/dist/index.js.map +1 -1
- package/dist/index.mjs +72 -19
- package/dist/index.mjs.map +1 -1
- package/dist/next.d.mts +12 -40
- package/dist/next.d.ts +12 -40
- package/dist/next.js +27 -320
- package/dist/next.js.map +1 -1
- package/dist/next.mjs +27 -320
- package/dist/next.mjs.map +1 -1
- package/dist/turbopackLoader.js +137 -88
- package/dist/turbopackLoader.js.map +1 -1
- package/dist/turbopackLoader.mjs +137 -88
- package/dist/turbopackLoader.mjs.map +1 -1
- package/dist/tw.js +62 -52
- package/dist/tw.js.map +1 -1
- package/dist/tw.mjs +62 -52
- package/dist/tw.mjs.map +1 -1
- package/dist/vite.js +146 -66
- package/dist/vite.js.map +1 -1
- package/dist/vite.mjs +146 -66
- package/dist/vite.mjs.map +1 -1
- package/dist/webpackLoader.js +92 -83
- package/dist/webpackLoader.js.map +1 -1
- package/dist/webpackLoader.mjs +92 -83
- package/dist/webpackLoader.mjs.map +1 -1
- package/native/tailwind-styled-native.node +0 -0
- package/package.json +3 -3
package/dist/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../packages/domain/core/src/containerQuery.ts","../packages/domain/core/src/merge.ts","../packages/domain/core/src/stateEngine.ts","../packages/domain/core/src/createComponent.ts","../packages/domain/core/src/cv.ts","../packages/domain/core/src/cx.ts","../packages/domain/theme/src/liveTokenEngine.ts","../packages/domain/core/src/registry.ts","../packages/domain/core/src/styled.ts","../packages/domain/core/src/styledSystem.ts","../packages/domain/core/src/twProxy.ts","../packages/domain/core/src/twTheme.ts"],"names":["twMerge","twMergeOriginal","React","merged","extended","baseComponent","component","result","setToken","setTokens","applyTokenSet","cv"],"mappings":"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","file":"index.js","sourcesContent":["/**\r\n * tailwind-styled-v4 — Container Query Engine\r\n *\r\n * Generates @container rules from a simple breakpoint config.\r\n *\r\n * Usage:\r\n * const Card = tw.div({\r\n * base: \"p-4\",\r\n * container: {\r\n * sm: \"flex-col\", // @container (min-width: 320px)\r\n * md: \"flex-row\", // @container (min-width: 640px)\r\n * lg: \"grid-cols-3\", // @container (min-width: 1024px)\r\n * },\r\n * containerName: \"card\",\r\n * })\r\n *\r\n * // Wrap with container context:\r\n * const CardWrapper = tw.div`@container`\r\n *\r\n * Named containers:\r\n * const SidebarCard = tw.div({\r\n * base: \"p-2\",\r\n * container: { lg: \"text-sm\" },\r\n * containerName: \"sidebar\",\r\n * })\r\n * // Generates: @container sidebar (min-width: 1024px) { ... }\r\n */\r\n\r\nimport type { ContainerConfig } from \"./types\"\r\n\r\n// ─────────────────────────────────────────────────────────────────────────────\r\n// Breakpoint map — matches Tailwind defaults\r\n// ─────────────────────────────────────────────────────────────────────────────\r\n\r\nconst CONTAINER_BREAKPOINTS: Record<string, string> = {\r\n xs: \"240px\",\r\n sm: \"320px\",\r\n md: \"640px\",\r\n lg: \"1024px\",\r\n xl: \"1280px\",\r\n \"2xl\": \"1536px\",\r\n}\r\n\r\n// ─────────────────────────────────────────────────────────────────────────────\r\n// Registry\r\n// ─────────────────────────────────────────────────────────────────────────────\r\n\r\nexport interface ContainerEntry {\r\n id: string\r\n tag: string\r\n containerName?: string\r\n breakpoints: Array<{ minWidth: string; classes: string }>\r\n cssInjected: boolean\r\n}\r\n\r\nconst containerRegistry = new Map<string, ContainerEntry>()\r\n\r\ndeclare global {\r\n interface Window {\r\n __TW_CONTAINER_REGISTRY__?: typeof containerRegistry\r\n }\r\n}\r\n\r\nif (typeof window !== \"undefined\") {\r\n window.__TW_CONTAINER_REGISTRY__ = containerRegistry\r\n}\r\n\r\n// ─────────────────────────────────────────────────────────────────────────────\r\n// Hash\r\n// ─────────────────────────────────────────────────────────────────────────────\r\n\r\nfunction hashContainer(tag: string, container: ContainerConfig, name?: string): string {\r\n const key = tag + (name ?? \"\") + JSON.stringify(Object.entries(container).sort())\r\n const hash = key.split(\"\").reduce((h, char) => ((h << 5) + h) ^ char.charCodeAt(0), 5381)\r\n return `tw-cq-${Math.abs(hash).toString(36).slice(0, 6)}`\r\n}\r\n\r\n// ─────────────────────────────────────────────────────────────────────────────\r\n// CSS generator\r\n// ─────────────────────────────────────────────────────────────────────────────\r\n\r\n/** Minimal Tailwind → CSS for container query contexts */\r\nconst LAYOUT_MAP: Record<string, string> = {\r\n \"flex-col\": \"flex-direction:column\",\r\n \"flex-row\": \"flex-direction:row\",\r\n \"flex-wrap\": \"flex-wrap:wrap\",\r\n \"flex-nowrap\": \"flex-wrap:nowrap\",\r\n \"flex-1\": \"flex:1 1 0%\",\r\n hidden: \"display:none\",\r\n block: \"display:block\",\r\n flex: \"display:flex\",\r\n grid: \"display:grid\",\r\n \"grid-cols-1\": \"grid-template-columns:repeat(1,minmax(0,1fr))\",\r\n \"grid-cols-2\": \"grid-template-columns:repeat(2,minmax(0,1fr))\",\r\n \"grid-cols-3\": \"grid-template-columns:repeat(3,minmax(0,1fr))\",\r\n \"grid-cols-4\": \"grid-template-columns:repeat(4,minmax(0,1fr))\",\r\n \"grid-cols-6\": \"grid-template-columns:repeat(6,minmax(0,1fr))\",\r\n \"grid-cols-12\": \"grid-template-columns:repeat(12,minmax(0,1fr))\",\r\n \"text-sm\": \"font-size:0.875rem;line-height:1.25rem\",\r\n \"text-base\": \"font-size:1rem;line-height:1.5rem\",\r\n \"text-lg\": \"font-size:1.125rem;line-height:1.75rem\",\r\n \"text-xl\": \"font-size:1.25rem;line-height:1.75rem\",\r\n \"text-2xl\": \"font-size:1.5rem;line-height:2rem\",\r\n \"text-xs\": \"font-size:0.75rem;line-height:1rem\",\r\n \"p-2\": \"padding:0.5rem\",\r\n \"p-4\": \"padding:1rem\",\r\n \"p-6\": \"padding:1.5rem\",\r\n \"p-8\": \"padding:2rem\",\r\n \"px-2\": \"padding-left:0.5rem;padding-right:0.5rem\",\r\n \"px-4\": \"padding-left:1rem;padding-right:1rem\",\r\n \"px-6\": \"padding-left:1.5rem;padding-right:1.5rem\",\r\n \"py-2\": \"padding-top:0.5rem;padding-bottom:0.5rem\",\r\n \"py-4\": \"padding-top:1rem;padding-bottom:1rem\",\r\n \"gap-2\": \"gap:0.5rem\",\r\n \"gap-4\": \"gap:1rem\",\r\n \"gap-6\": \"gap:1.5rem\",\r\n \"gap-8\": \"gap:2rem\",\r\n \"w-full\": \"width:100%\",\r\n \"w-1/2\": \"width:50%\",\r\n \"w-1/3\": \"width:33.333333%\",\r\n \"w-2/3\": \"width:66.666667%\",\r\n \"max-w-sm\": \"max-width:24rem\",\r\n \"max-w-md\": \"max-width:28rem\",\r\n \"max-w-lg\": \"max-width:32rem\",\r\n \"max-w-xl\": \"max-width:36rem\",\r\n \"items-center\": \"align-items:center\",\r\n \"items-start\": \"align-items:flex-start\",\r\n \"items-end\": \"align-items:flex-end\",\r\n \"justify-center\": \"justify-content:center\",\r\n \"justify-between\": \"justify-content:space-between\",\r\n \"justify-start\": \"justify-content:flex-start\",\r\n \"justify-end\": \"justify-content:flex-end\",\r\n}\r\n\r\nfunction layoutClassesToCss(classes: string): string {\r\n const decls: string[] = []\r\n for (const cls of classes.trim().split(/\\s+/)) {\r\n if (LAYOUT_MAP[cls]) decls.push(LAYOUT_MAP[cls])\r\n else if (cls.startsWith(\"w-[\")) {\r\n const val = cls.match(/\\[(.+)\\]/)?.[1]\r\n if (val) decls.push(`width:${val}`)\r\n } else if (cls.startsWith(\"max-w-[\")) {\r\n const val = cls.match(/\\[(.+)\\]/)?.[1]\r\n if (val) decls.push(`max-width:${val}`)\r\n }\r\n }\r\n return decls.join(\";\")\r\n}\r\n\r\nfunction buildContainerRules(\r\n id: string,\r\n container: ContainerConfig,\r\n containerName?: string\r\n): string {\r\n const rules = Object.entries(container)\r\n .map(([key, value]) => {\r\n const minWidth =\r\n typeof value === \"string\"\r\n ? (CONTAINER_BREAKPOINTS[key] ?? key)\r\n : (value.minWidth ?? CONTAINER_BREAKPOINTS[key] ?? key)\r\n const classes = typeof value === \"string\" ? value : value.classes\r\n\r\n const css = layoutClassesToCss(classes)\r\n if (!css) return null\r\n\r\n const query = containerName\r\n ? `@container ${containerName} (min-width: ${minWidth})`\r\n : `@container (min-width: ${minWidth})`\r\n\r\n return `${query}{.${id}{${css}}}`\r\n })\r\n .filter(Boolean) as string[]\r\n\r\n return rules.join(\"\\n\")\r\n}\r\n\r\n// ─────────────────────────────────────────────────────────────────────────────\r\n// Style injection\r\n// ─────────────────────────────────────────────────────────────────────────────\r\n\r\nfunction injectContainerStyles(\r\n id: string,\r\n container: ContainerConfig,\r\n containerName?: string\r\n): void {\r\n if (typeof document === \"undefined\") return\r\n const styleId = `tw-cq-${id}`\r\n if (document.getElementById(styleId)) return\r\n\r\n const css = buildContainerRules(id, container, containerName)\r\n if (!css) return\r\n\r\n // Try batched injector first (available when runtime-css is installed)\r\n try {\r\n const { batchedInject } = require(\"@tailwind-styled/runtime-css/batched\") as {\r\n batchedInject: (css: string) => void\r\n }\r\n for (const rule of css.split(\"\\n\").filter(Boolean)) batchedInject(rule)\r\n return\r\n } catch {\r\n // Fallback: per-element style tag\r\n }\r\n\r\n const style = document.createElement(\"style\")\r\n style.id = styleId\r\n style.setAttribute(\"data-tw-container\", id)\r\n style.textContent = css\r\n document.head.appendChild(style)\r\n}\r\n\r\n// ─────────────────────────────────────────────────────────────────────────────\r\n// Public API\r\n// ─────────────────────────────────────────────────────────────────────────────\r\n\r\nexport interface ContainerQueryResult {\r\n containerClass: string\r\n hasContainer: true\r\n}\r\n\r\nexport function processContainer(\r\n tag: string,\r\n container: ContainerConfig,\r\n containerName?: string\r\n): ContainerQueryResult {\r\n const id = hashContainer(tag, container, containerName)\r\n\r\n if (!containerRegistry.has(id)) {\r\n const breakpoints = Object.entries(container).map(([key, value]) => ({\r\n minWidth: CONTAINER_BREAKPOINTS[key] ?? key,\r\n classes: typeof value === \"string\" ? value : value.classes,\r\n }))\r\n containerRegistry.set(id, {\r\n id,\r\n tag,\r\n containerName,\r\n breakpoints,\r\n cssInjected: false,\r\n })\r\n }\r\n\r\n injectContainerStyles(id, container, containerName)\r\n containerRegistry.get(id)!.cssInjected = true\r\n\r\n return { containerClass: id, hasContainer: true }\r\n}\r\n\r\nexport function generateContainerCss(\r\n tag: string,\r\n container: ContainerConfig,\r\n containerName?: string\r\n): string {\r\n const id = hashContainer(tag, container, containerName)\r\n return buildContainerRules(id, container, containerName)\r\n}\r\n\r\nexport function getContainerRegistry(): Map<string, ContainerEntry> {\r\n return containerRegistry\r\n}\r\n","import { twMerge as twMergeOriginal } from \"tailwind-merge\"\r\n\r\nimport type { ThemeConfig } from \"./themeReader\"\r\n\r\nexport interface MergeOptions {\r\n prefix?: string\r\n separator?: string\r\n theme?: ThemeConfig\r\n}\r\n\r\nfunction normalizeClassInput(classLists: Array<string | undefined | null | false>): string[] {\r\n return classLists\r\n .filter(Boolean)\r\n .map((v) => String(v).trim())\r\n .filter((v) => v.length > 0)\r\n}\r\n\r\nexport function createTwMerge(_options: MergeOptions = {}) {\r\n return function twMerge(...classLists: Array<string | undefined | null | false>): string {\r\n const clean = normalizeClassInput(classLists)\r\n return twMergeOriginal(clean.join(\" \"))\r\n }\r\n}\r\n\r\nexport const twMerge = createTwMerge()\r\n\r\nexport function mergeWithRules(\r\n rules: Record<string, (classes: string[]) => string>,\r\n ...classLists: string[]\r\n): string {\r\n const base = twMerge(...classLists)\r\n const classes = Object.values(rules).reduce(\r\n (acc, rule) => twMerge(rule(acc)).split(/\\s+/).filter(Boolean),\r\n base.split(/\\s+/).filter(Boolean)\r\n )\r\n\r\n return classes.join(\" \")\r\n}\r\n","/**\r\n * tailwind-styled-v4 — Reactive State Engine\r\n *\r\n * Zero-JS CSS state management via data attributes.\r\n * No React re-render needed for style changes.\r\n *\r\n * How it works:\r\n * 1. tw.button({ state: { active: \"bg-blue-500\", loading: \"opacity-70\" } })\r\n * 2. State engine generates a unique class + injects CSS:\r\n * .tw-s-abc123[data-active=\"true\"] { @apply bg-blue-500; }\r\n * .tw-s-abc123[data-loading=\"true\"] { @apply opacity-70; }\r\n * 3. Component renders with the state class\r\n * 4. User sets data-active=\"true\" directly — no state needed\r\n *\r\n * Devtools integration:\r\n * All components register to __TW_STATE_REGISTRY__ for devtools inspection.\r\n */\r\n\r\nimport type { StateConfig } from \"./types\"\r\n\r\n// ─────────────────────────────────────────────────────────────────────────────\r\n// Registry — tracks all state-enabled components\r\n// ─────────────────────────────────────────────────────────────────────────────\r\n\r\nexport interface StateComponentEntry {\r\n id: string\r\n tag: string\r\n states: string[]\r\n cssInjected: boolean\r\n}\r\n\r\nconst stateRegistry = new Map<string, StateComponentEntry>()\r\n\r\ndeclare global {\r\n interface Window {\r\n __TW_STATE_REGISTRY__?: typeof stateRegistry\r\n }\r\n}\r\n\r\nif (typeof window !== \"undefined\") {\r\n window.__TW_STATE_REGISTRY__ = stateRegistry\r\n}\r\n\r\n// ─────────────────────────────────────────────────────────────────────────────\r\n// Deterministic hash — same config → same class (no re-injection on HMR)\r\n// ─────────────────────────────────────────────────────────────────────────────\r\n\r\nfunction hashState(tag: string, state: StateConfig): string {\r\n const key = tag + JSON.stringify(Object.entries(state).sort())\r\n const hash = key.split(\"\").reduce((h, char) => ((h << 5) + h) ^ char.charCodeAt(0), 5381)\r\n return `tw-s-${Math.abs(hash).toString(36).slice(0, 6)}`\r\n}\r\n\r\n// ─────────────────────────────────────────────────────────────────────────────\r\n// CSS generator — Tailwind class → plain CSS via CSSOM\r\n// ─────────────────────────────────────────────────────────────────────────────\r\n\r\n/**\r\n * Map Tailwind utility classes to inline CSS declarations.\r\n * Subset covers all common state-driven utilities.\r\n * For full coverage the compiler strips this and uses the real Tailwind engine.\r\n */\r\nconst TW_MAP: Record<string, string> = {\r\n // Display\r\n hidden: \"display:none\",\r\n block: \"display:block\",\r\n flex: \"display:flex\",\r\n inline: \"display:inline\",\r\n \"inline-flex\": \"display:inline-flex\",\r\n grid: \"display:grid\",\r\n // Opacity\r\n \"opacity-0\": \"opacity:0\",\r\n \"opacity-5\": \"opacity:0.05\",\r\n \"opacity-10\": \"opacity:0.1\",\r\n \"opacity-20\": \"opacity:0.2\",\r\n \"opacity-25\": \"opacity:0.25\",\r\n \"opacity-30\": \"opacity:0.3\",\r\n \"opacity-40\": \"opacity:0.4\",\r\n \"opacity-50\": \"opacity:0.5\",\r\n \"opacity-60\": \"opacity:0.6\",\r\n \"opacity-70\": \"opacity:0.7\",\r\n \"opacity-75\": \"opacity:0.75\",\r\n \"opacity-80\": \"opacity:0.8\",\r\n \"opacity-90\": \"opacity:0.9\",\r\n \"opacity-95\": \"opacity:0.95\",\r\n \"opacity-100\": \"opacity:1\",\r\n // Cursor\r\n \"cursor-pointer\": \"cursor:pointer\",\r\n \"cursor-not-allowed\": \"cursor:not-allowed\",\r\n \"cursor-default\": \"cursor:default\",\r\n \"cursor-wait\": \"cursor:wait\",\r\n \"cursor-move\": \"cursor:move\",\r\n \"cursor-grab\": \"cursor:grab\",\r\n \"cursor-grabbing\": \"cursor:grabbing\",\r\n // Pointer events\r\n \"pointer-events-none\": \"pointer-events:none\",\r\n \"pointer-events-auto\": \"pointer-events:auto\",\r\n // Scale\r\n \"scale-90\": \"transform:scale(0.9)\",\r\n \"scale-95\": \"transform:scale(0.95)\",\r\n \"scale-100\": \"transform:scale(1)\",\r\n \"scale-105\": \"transform:scale(1.05)\",\r\n \"scale-110\": \"transform:scale(1.1)\",\r\n // Translate\r\n \"translate-x-0\": \"transform:translateX(0)\",\r\n \"translate-y-0\": \"transform:translateY(0)\",\r\n \"-translate-x-1\": \"transform:translateX(-0.25rem)\",\r\n \"-translate-y-1\": \"transform:translateY(-0.25rem)\",\r\n \"translate-x-1\": \"transform:translateX(0.25rem)\",\r\n \"translate-y-1\": \"transform:translateY(0.25rem)\",\r\n // Ring\r\n ring: \"box-shadow:0 0 0 3px rgba(59,130,246,0.5)\",\r\n \"ring-2\": \"box-shadow:0 0 0 2px rgba(59,130,246,0.5)\",\r\n \"ring-4\": \"box-shadow:0 0 0 4px rgba(59,130,246,0.5)\",\r\n \"ring-inset\": \"box-shadow:inset 0 0 0 3px rgba(59,130,246,0.5)\",\r\n // Border\r\n border: \"border-width:1px\",\r\n \"border-2\": \"border-width:2px\",\r\n \"border-transparent\": \"border-color:transparent\",\r\n // Outline\r\n \"outline-none\": \"outline:2px solid transparent;outline-offset:2px\",\r\n outline: \"outline:2px solid currentColor\",\r\n // Overflow\r\n \"overflow-hidden\": \"overflow:hidden\",\r\n \"overflow-auto\": \"overflow:auto\",\r\n \"overflow-scroll\": \"overflow:scroll\",\r\n // Text decoration\r\n underline: \"text-decoration-line:underline\",\r\n \"no-underline\": \"text-decoration-line:none\",\r\n \"line-through\": \"text-decoration-line:line-through\",\r\n // Font weight\r\n \"font-bold\": \"font-weight:700\",\r\n \"font-semibold\": \"font-weight:600\",\r\n \"font-medium\": \"font-weight:500\",\r\n \"font-normal\": \"font-weight:400\",\r\n // Background colors (common)\r\n \"bg-transparent\": \"background-color:transparent\",\r\n \"bg-white\": \"background-color:#fff\",\r\n \"bg-black\": \"background-color:#000\",\r\n \"bg-blue-500\": \"background-color:rgb(59,130,246)\",\r\n \"bg-blue-600\": \"background-color:rgb(37,99,235)\",\r\n \"bg-red-500\": \"background-color:rgb(239,68,68)\",\r\n \"bg-green-500\": \"background-color:rgb(34,197,94)\",\r\n \"bg-yellow-500\": \"background-color:rgb(234,179,8)\",\r\n \"bg-zinc-900\": \"background-color:rgb(24,24,27)\",\r\n \"bg-zinc-800\": \"background-color:rgb(39,39,42)\",\r\n // Text colors\r\n \"text-white\": \"color:#fff\",\r\n \"text-black\": \"color:#000\",\r\n \"text-blue-500\": \"color:rgb(59,130,246)\",\r\n \"text-red-500\": \"color:rgb(239,68,68)\",\r\n \"text-zinc-400\": \"color:rgb(161,161,170)\",\r\n \"text-zinc-500\": \"color:rgb(113,113,122)\",\r\n}\r\n\r\nfunction twClassesToCss(classes: string): string {\r\n const decls: string[] = []\r\n for (const cls of classes.trim().split(/\\s+/)) {\r\n if (TW_MAP[cls]) decls.push(TW_MAP[cls])\r\n // Arbitrary values: bg-[#f00] color-[red]\r\n else if (cls.includes(\"[\") && cls.includes(\"]\")) {\r\n const val = cls.match(/\\[(.+)\\]/)?.[1]\r\n if (!val) continue\r\n if (cls.startsWith(\"bg-[\")) decls.push(`background-color:${val}`)\r\n else if (cls.startsWith(\"text-[\")) decls.push(`color:${val}`)\r\n else if (cls.startsWith(\"w-[\")) decls.push(`width:${val}`)\r\n else if (cls.startsWith(\"h-[\")) decls.push(`height:${val}`)\r\n else if (cls.startsWith(\"opacity-[\")) decls.push(`opacity:${val}`)\r\n }\r\n }\r\n return decls.join(\";\")\r\n}\r\n\r\n// ─────────────────────────────────────────────────────────────────────────────\r\n// Style injection — batched for performance (FIX CSS Rule Batching)\r\n// ─────────────────────────────────────────────────────────────────────────────\r\n\r\nfunction injectStateStyles(id: string, state: StateConfig): void {\r\n if (typeof document === \"undefined\") return\r\n\r\n const styleId = `tw-state-${id}`\r\n if (document.getElementById(styleId)) return // already injected\r\n\r\n const rules = Object.entries(state)\r\n .map(([stateName, classes]) => {\r\n const css = twClassesToCss(classes)\r\n return css ? `.${id}[data-${stateName}=\"true\"]{${css}}` : null\r\n })\r\n .filter(Boolean) as string[]\r\n\r\n if (rules.length === 0) return\r\n\r\n // Try batched injector first (available when runtime-css is installed)\r\n try {\r\n const { batchedInject } = require(\"@tailwind-styled/runtime-css/batched\") as {\r\n batchedInject: (css: string) => void\r\n }\r\n for (const rule of rules) batchedInject(rule)\r\n return\r\n } catch {\r\n // Fallback: per-element style tag (original behavior)\r\n }\r\n\r\n const style = document.createElement(\"style\")\r\n style.id = styleId\r\n style.setAttribute(\"data-tw-state\", id)\r\n style.textContent = rules.join(\"\\n\")\r\n document.head.appendChild(style)\r\n}\r\n\r\n// ─────────────────────────────────────────────────────────────────────────────\r\n// Public API\r\n// ─────────────────────────────────────────────────────────────────────────────\r\n\r\nexport interface StateEngineResult {\r\n /** CSS class to add to the component */\r\n stateClass: string\r\n /** Whether this component uses state (for SSR data attributes) */\r\n hasState: true\r\n /** List of state names (for devtools) */\r\n stateNames: string[]\r\n}\r\n\r\n/**\r\n * Process a StateConfig for a component.\r\n * Returns the state class and injects CSS (client-side only).\r\n */\r\nexport function processState(tag: string, state: StateConfig): StateEngineResult {\r\n const id = hashState(tag, state)\r\n const stateNames = Object.keys(state)\r\n\r\n // Register for devtools\r\n if (!stateRegistry.has(id)) {\r\n stateRegistry.set(id, {\r\n id,\r\n tag,\r\n states: stateNames,\r\n cssInjected: false,\r\n })\r\n }\r\n\r\n // Inject CSS (client only)\r\n injectStateStyles(id, state)\r\n\r\n // Mark as injected\r\n const entry = stateRegistry.get(id)!\r\n entry.cssInjected = true\r\n\r\n return { stateClass: id, hasState: true, stateNames }\r\n}\r\n\r\n/**\r\n * Generate SSR-safe CSS string for a state config.\r\n * Used by SSR to inject styles into <head>.\r\n */\r\nexport function generateStateCss(tag: string, state: StateConfig): string {\r\n const id = hashState(tag, state)\r\n\r\n const rules = Object.entries(state)\r\n .map(([stateName, classes]) => {\r\n const css = twClassesToCss(classes)\r\n return css ? `.${id}[data-${stateName}=\"true\"]{${css}}` : null\r\n })\r\n .filter(Boolean) as string[]\r\n\r\n return rules.join(\"\\n\")\r\n}\r\n\r\n/**\r\n * Get the state registry (for devtools).\r\n */\r\nexport function getStateRegistry(): Map<string, StateComponentEntry> {\r\n return stateRegistry\r\n}\r\n","// AnimateOptions loaded dynamically to avoid bundling @tailwind-styled/animate\r\ntype AnimateOptions = { from: string; to: string; duration?: number; easing?: string; delay?: number; fill?: string; iterations?: number | \"infinite\"; direction?: string; name?: string }\r\nimport React from \"react\"\r\n\r\nimport { processContainer } from \"./containerQuery\"\r\nimport { twMerge } from \"./merge\"\r\nimport { processState } from \"./stateEngine\"\r\nimport type { ComponentConfig, TwStyledComponent } from \"./types\"\r\n\r\nconst ALWAYS_BLOCKED = new Set([\"base\", \"_ref\", \"state\", \"container\", \"containerName\"])\r\n\r\n// ── Sub-component auto-registration ──────────────────────────────────────────\r\n\r\n/** Extract [name] patterns dari template string: \"[icon] { color: red }\" → [\"icon\"] */\r\nfunction parseSubComponentNames(template: string): string[] {\r\n const matches = [...template.matchAll(/\\[(\\w+)\\]/g)]\r\n return [...new Set(matches.map((m) => m[1]!))]\r\n}\r\n\r\n/**\r\n * Strip semua `[name] { ... }` blocks dari template string sehingga\r\n * twMerge hanya menerima base classes (outer scope).\r\n *\r\n * Tanpa ini, twMerge membaca `flex h-12 ... [icon] { flex h-4 }` sebagai\r\n * satu flat class list dan melaporkan conflict antara `h-12` dan `h-4`\r\n * padahal keduanya berada di elemen yang berbeda.\r\n */\r\nfunction extractBaseClasses(template: string): string {\r\n return template.replace(/\\[\\w+\\]\\s*\\{[^}]*\\}/g, \"\").replace(/\\s+/g, \" \").trim()\r\n}\r\n\r\n/**\r\n * Buat sub-component React FC untuk setiap name yang ditemukan di template.\r\n * Sub-component meneruskan className ke elemen wrapper agar bisa di-style.\r\n */\r\nfunction createSubComponentAccessor(\r\n parentDisplayName: string,\r\n name: string\r\n): React.FC<{ children?: React.ReactNode; className?: string }> {\r\n const SubComponent: React.FC<{ children?: React.ReactNode; className?: string }> = ({\r\n children,\r\n className,\r\n }) => React.createElement(React.Fragment, null, children)\r\n SubComponent.displayName = `${parentDisplayName}[${name}]`\r\n return SubComponent\r\n}\r\n\r\n/** Register semua sub-components yang di-parse dari template ke component object. */\r\nfunction registerSubComponents<P extends object>(\r\n component: TwStyledComponent<P>,\r\n template: string\r\n): void {\r\n const names = parseSubComponentNames(template)\r\n const displayName = component.displayName ?? \"tw\"\r\n const map = component as unknown as Record<string, unknown>\r\n for (const name of names) {\r\n if (!(name in map)) {\r\n map[name] = createSubComponentAccessor(displayName, name)\r\n }\r\n }\r\n}\r\n\r\ntype RuntimeProps = Record<string, unknown> & { className?: string }\r\n\r\nfunction normalizeClassName(value: unknown): string | undefined {\r\n return typeof value === \"string\" ? value : undefined\r\n}\r\n\r\nfunction makeFilterProps(variantKeys: Set<string>) {\r\n return function filterProps(props: Record<string, unknown>): Record<string, unknown> {\r\n const out: Record<string, unknown> = {}\r\n for (const key in props) {\r\n if (variantKeys.has(key)) continue\r\n if (key.startsWith(\"$\")) continue\r\n if (ALWAYS_BLOCKED.has(key)) continue\r\n out[key] = props[key]\r\n }\r\n return out\r\n }\r\n}\r\n\r\nfunction resolveVariants(\r\n variants: Record<string, Record<string, string>>,\r\n props: Record<string, unknown>,\r\n defaults: Record<string, string>\r\n): string {\r\n const classes: string[] = []\r\n for (const key in variants) {\r\n const value = props[key] ?? defaults[key]\r\n if (value !== undefined && variants[key][String(value)]) {\r\n classes.push(variants[key][String(value)])\r\n }\r\n }\r\n return classes.join(\" \")\r\n}\r\n\r\nfunction resolveCompound(\r\n compounds: ReadonlyArray<{ readonly class: string; readonly [key: string]: unknown }>,\r\n props: Record<string, unknown>\r\n): string {\r\n const classes: string[] = []\r\n for (const compound of compounds) {\r\n const { class: compoundClass, ...conditions } = compound as {\r\n class: string\r\n [key: string]: unknown\r\n }\r\n const matches = Object.entries(conditions).every(([key, value]) => props[key] === value)\r\n if (matches) {\r\n classes.push(compoundClass)\r\n }\r\n }\r\n return classes.join(\" \")\r\n}\r\n\r\n/** Carry over subcomponent keys from source to target (exclude internal methods) */\r\nfunction carryOverSubComponents<P extends object>(\r\n target: TwStyledComponent<P>,\r\n source: TwStyledComponent<P>\r\n): void {\r\n const INTERNAL_KEYS = new Set([\"extend\", \"withVariants\", \"animate\", \"withSub\", \"displayName\"])\r\n for (const key of Object.keys(source)) {\r\n if (!INTERNAL_KEYS.has(key)) {\r\n ;(target as unknown as Record<string, unknown>)[key] = (source as unknown as Record<string, unknown>)[key]\r\n }\r\n }\r\n}\r\n\r\nfunction attachExtend<P extends object>(\r\n component: TwStyledComponent<P>,\r\n originalTag: React.ElementType,\r\n base: string,\r\n config: string | ComponentConfig\r\n): TwStyledComponent<P> {\r\n /**\r\n * Extend component dengan extra classes (template literal).\r\n *\r\n * @example\r\n * const PrimaryBtn = Button.extend`bg-blue-500 text-white`\r\n */\r\n function extendWithClasses(strings: TemplateStringsArray): TwStyledComponent<P>\r\n /**\r\n * Extend component dengan extra classes + variant overrides (object).\r\n * Ini menyelesaikan gap desain yang disebutkan di CRITIQUE-20 #2.\r\n *\r\n * @example\r\n * // Extend classes DAN tambah variant sekaligus\r\n * const BigDangerBtn = Button.extend({\r\n * classes: \"text-lg px-8\",\r\n * variants: { loading: { true: \"opacity-50\" } },\r\n * defaultVariants: { loading: \"false\" }\r\n * })\r\n */\r\n function extendWithClasses(extendConfig: {\r\n classes?: string\r\n variants?: ComponentConfig[\"variants\"]\r\n defaultVariants?: ComponentConfig[\"defaultVariants\"]\r\n compoundVariants?: ComponentConfig[\"compoundVariants\"]\r\n }): TwStyledComponent<P>\r\n function extendWithClasses(\r\n stringsOrConfig: TemplateStringsArray | {\r\n classes?: string\r\n variants?: ComponentConfig[\"variants\"]\r\n defaultVariants?: ComponentConfig[\"defaultVariants\"]\r\n compoundVariants?: ComponentConfig[\"compoundVariants\"]\r\n }\r\n ): TwStyledComponent<P> {\r\n // Template literal path\r\n if (Array.isArray(stringsOrConfig) && \"raw\" in stringsOrConfig) {\r\n const extra = (stringsOrConfig as TemplateStringsArray).raw.join(\"\").trim().replace(/\\s+/g, \" \")\r\n const merged = twMerge(extractBaseClasses(base), extra)\r\n const extended = createComponent<P>(\r\n originalTag,\r\n typeof config === \"string\" ? merged : { ...config, base: merged }\r\n )\r\n carryOverSubComponents(extended, component)\r\n return extended\r\n }\r\n\r\n // Object config path — support extend + withVariants in one call\r\n const extCfg = stringsOrConfig as {\r\n classes?: string\r\n variants?: ComponentConfig[\"variants\"]\r\n defaultVariants?: ComponentConfig[\"defaultVariants\"]\r\n compoundVariants?: ComponentConfig[\"compoundVariants\"]\r\n }\r\n const extraClasses = extCfg.classes ?? \"\"\r\n const merged = twMerge(extractBaseClasses(base), extraClasses)\r\n const existing = typeof config === \"object\" ? config : {}\r\n const extended = createComponent<P>(originalTag, {\r\n ...existing,\r\n base: merged,\r\n variants: { ...(existing.variants ?? {}), ...(extCfg.variants ?? {}) },\r\n compoundVariants: [\r\n ...(existing.compoundVariants ?? []),\r\n ...(extCfg.compoundVariants ?? []),\r\n ],\r\n defaultVariants: {\r\n ...(existing.defaultVariants ?? {}),\r\n ...(extCfg.defaultVariants ?? {}),\r\n },\r\n })\r\n carryOverSubComponents(extended, component)\r\n return extended\r\n }\r\n\r\n component.extend = extendWithClasses as TwStyledComponent<P>[\"extend\"]\r\n\r\n component.withVariants = (newConfig: Partial<ComponentConfig>) => {\r\n const existing = typeof config === \"object\" ? config : {}\r\n return createComponent<P>(originalTag, {\r\n ...existing,\r\n base,\r\n variants: { ...(existing.variants ?? {}), ...(newConfig.variants ?? {}) },\r\n compoundVariants: [\r\n ...(existing.compoundVariants ?? []),\r\n ...(newConfig.compoundVariants ?? []),\r\n ],\r\n defaultVariants: {\r\n ...(existing.defaultVariants ?? {}),\r\n ...(newConfig.defaultVariants ?? {}),\r\n },\r\n })\r\n }\r\n\r\n // .animate() dipindah ke tailwind-styled-v4/animate agar tidak bundle @tailwind-styled/animate\r\n // ke dalam main browser bundle (animate butuh Rust native binding → Node.js only)\r\n component.animate = async (_opts: AnimateOptions) => {\r\n console.warn(\r\n \"[tailwind-styled-v4] .animate() tidak tersedia di main bundle.\\n\" +\r\n \"Gunakan: import { animate } from \\\"tailwind-styled-v4/animate\\\"\"\r\n )\r\n return component\r\n }\r\n\r\n // .withSub<\"icon\" | \"badge\">() — declare sub-component names untuk TypeScript\r\n // Runtime: no-op, hanya untuk type inference\r\n component.withSub = (() => component) as TwStyledComponent<P>[\"withSub\"]\r\n\r\n return component\r\n}\r\n\r\nexport function createComponent<P extends object = Record<string, unknown>>(\r\n tag: React.ElementType,\r\n config: string | ComponentConfig\r\n): TwStyledComponent<P> {\r\n const isStatic = typeof config === \"string\"\r\n const base = typeof config === \"string\" ? config : (config.base ?? \"\")\r\n const variants = typeof config === \"string\" ? {} : (config.variants ?? {})\r\n const compoundVariants = typeof config === \"string\" ? [] : (config.compoundVariants ?? [])\r\n const defaultVariants = typeof config === \"string\" ? {} : (config.defaultVariants ?? {})\r\n const stateConfig = typeof config === \"string\" ? undefined : config.state\r\n const containerConfig = typeof config === \"string\" ? undefined : config.container\r\n const containerName = typeof config === \"string\" ? undefined : config.containerName\r\n\r\n const stateResult = stateConfig\r\n ? processState(typeof tag === \"string\" ? tag : \"component\", stateConfig)\r\n : null\r\n const containerResult = containerConfig\r\n ? processContainer(typeof tag === \"string\" ? tag : \"component\", containerConfig, containerName)\r\n : null\r\n\r\n const engineClasses = [stateResult?.stateClass, containerResult?.containerClass]\r\n .filter(Boolean)\r\n .join(\" \")\r\n\r\n const filterProps = makeFilterProps(new Set(Object.keys(variants)))\r\n const tagLabel =\r\n typeof tag === \"string\" ? tag : ((tag as { displayName?: string }).displayName ?? \"Component\")\r\n\r\n if (isStatic || Object.keys(variants).length === 0) {\r\n const baseComponent = React.forwardRef<unknown, RuntimeProps>((props, ref) => {\r\n const { className, ...rest } = props\r\n const runtimeClassName = normalizeClassName(className)\r\n return React.createElement(tag, {\r\n ref,\r\n ...filterProps(rest),\r\n className: twMerge(extractBaseClasses(base), engineClasses, runtimeClassName),\r\n })\r\n })\r\n\r\n const component = baseComponent as unknown as TwStyledComponent<P>\r\n component.displayName = `tw.${tagLabel}`\r\n const result = attachExtend<P>(component, tag, base, config)\r\n registerSubComponents(result, base)\r\n return result\r\n }\r\n\r\n const baseComponent = React.forwardRef<unknown, RuntimeProps>((props, ref) => {\r\n const { className, ...rest } = props\r\n const runtimeClassName = normalizeClassName(className)\r\n const variantClasses = resolveVariants(variants, props, defaultVariants)\r\n const compoundClasses = resolveCompound(compoundVariants, props)\r\n\r\n return React.createElement(tag, {\r\n ref,\r\n ...filterProps(rest),\r\n className: twMerge(extractBaseClasses(base), variantClasses, compoundClasses, engineClasses, runtimeClassName),\r\n })\r\n })\r\n\r\n const component = baseComponent as unknown as TwStyledComponent<P>\r\n component.displayName = `tw.${tagLabel}`\r\n const result = attachExtend<P>(component, tag, base, config)\r\n registerSubComponents(result, base)\r\n return result\r\n}","/**\r\n * tailwind-styled-v4 — cv()\r\n *\r\n * Runtime: pure JS, browser-safe, zero fs/native.\r\n *\r\n * Dua mode:\r\n * 1. GENERATED (optimal) — import dari variants.generated.ts hasil `npx tw compile-variants`\r\n * → O(1) lookup, static, zero runtime computation\r\n * 2. RUNTIME (fallback) — compute on-the-fly, pure JS\r\n * → Tetap browser-safe, tidak ada native binding\r\n */\r\n\r\nimport { twMerge } from \"tailwind-merge\"\r\nimport type { ComponentConfig, CvFn, InferVariantProps } from \"./types\"\r\n\r\n// Registry untuk generated lookup tables\r\n// Diisi oleh cv.register() dari generated file\r\nconst __generatedRegistry: Record<string, Record<string, string>> = {}\r\n\r\n/**\r\n * Register pre-computed variant table dari generated file.\r\n * Dipanggil otomatis saat import variants.generated.ts\r\n */\r\nexport function registerVariantTable(\r\n componentId: string,\r\n table: Record<string, string>\r\n): void {\r\n __generatedRegistry[componentId] = table\r\n}\r\n\r\nfunction lookupGenerated(\r\n componentId: string,\r\n props: Record<string, unknown>,\r\n defaultVariants?: Record<string, string>\r\n): string | undefined {\r\n const table = __generatedRegistry[componentId]\r\n if (!table) return undefined\r\n\r\n const merged = { ...defaultVariants, ...props }\r\n const key = Object.keys(merged)\r\n .sort()\r\n .filter((k) => k !== \"className\")\r\n .map((k) => `${k}:${String(merged[k])}`)\r\n .join(\"|\")\r\n\r\n return table[key]\r\n}\r\n\r\n// Pure JS fallback — compute on-the-fly\r\nfunction resolveVariantsJS<C extends ComponentConfig>(\r\n config: C,\r\n props: InferVariantProps<C> & { className?: string } & Readonly<Record<string, unknown>>\r\n): string {\r\n const { base = \"\", variants = {}, compoundVariants = [], defaultVariants = {} } = config\r\n const classes: string[] = []\r\n\r\n if (base) classes.push(...base.split(\" \").filter(Boolean))\r\n\r\n const resolved: Record<string, unknown> = { ...defaultVariants, ...props }\r\n\r\n for (const [key, variantMap] of Object.entries(variants)) {\r\n const value = resolved[key]\r\n if (value !== undefined && value !== null) {\r\n const variantClass = (variantMap as Record<string, string>)[String(value)]\r\n if (variantClass) classes.push(...variantClass.split(\" \").filter(Boolean))\r\n }\r\n }\r\n\r\n for (const compound of compoundVariants) {\r\n const { class: compoundClass, className: compoundClassName, ...conditions } = compound as Record<string, unknown>\r\n const matches = Object.entries(conditions).every(([key, val]) => resolved[key] === val)\r\n if (matches) {\r\n if (compoundClass) classes.push(...String(compoundClass).split(\" \").filter(Boolean))\r\n if (compoundClassName) classes.push(...String(compoundClassName).split(\" \").filter(Boolean))\r\n }\r\n }\r\n\r\n return [...new Set(classes)].join(\" \")\r\n}\r\n\r\nexport function cv<C extends ComponentConfig>(config: C, componentId?: string): CvFn<C> {\r\n if (process.env.NODE_ENV !== \"production\") {\r\n const { variants = {}, defaultVariants = {} } = config\r\n for (const dk of Object.keys(defaultVariants)) {\r\n if (!(dk in variants)) {\r\n console.warn(`[tailwind-styled] defaultVariants[\"${dk}\"] not in variants`)\r\n }\r\n }\r\n }\r\n\r\n return (\r\n props: InferVariantProps<C> & { className?: string } & Readonly<Record<string, unknown>> = {} as never\r\n ): string => {\r\n let result: string\r\n\r\n // Mode 1: generated lookup table (O(1), hasil compile-variants)\r\n if (componentId) {\r\n const generated = lookupGenerated(\r\n componentId,\r\n props as Record<string, unknown>,\r\n config.defaultVariants as Record<string, string>\r\n )\r\n result = generated ?? resolveVariantsJS(config, props)\r\n } else {\r\n // Mode 2: pure JS fallback\r\n result = resolveVariantsJS(config, props)\r\n }\r\n\r\n return props.className ? twMerge(result, props.className) : result\r\n }\r\n}\r\n\r\nexport interface VariantValidationError {\r\n type: \"unknown_key\" | \"unknown_value\" | \"missing_default\" | \"compound_condition_missing\"\r\n key: string\r\n value?: string\r\n message: string\r\n}\r\n\r\nexport interface VariantValidationResult {\r\n valid: boolean\r\n errors: VariantValidationError[]\r\n warnings: string[]\r\n}\r\n\r\nexport function validateVariantConfig(config: ComponentConfig): VariantValidationResult {\r\n const errors: VariantValidationError[] = []\r\n const warnings: string[] = []\r\n const { variants = {}, defaultVariants = {}, compoundVariants = [] } = config\r\n\r\n for (const [key, val] of Object.entries(defaultVariants)) {\r\n if (!(key in variants)) {\r\n errors.push({ type: \"unknown_key\", key, message: `defaultVariants[\"${key}\"] not in variants` })\r\n } else if (val && !((variants[key] ?? {})[val])) {\r\n errors.push({ type: \"unknown_value\", key, value: val, message: `invalid value \"${val}\"` })\r\n }\r\n }\r\n\r\n for (const [i, compound] of compoundVariants.entries()) {\r\n const { class: _cls, ...conditions } = compound\r\n for (const [key] of Object.entries(conditions)) {\r\n if (!(key in variants)) {\r\n errors.push({ type: \"unknown_key\", key, message: `compoundVariants[${i}]: \"${key}\" not in variants` })\r\n }\r\n }\r\n }\r\n\r\n return { valid: errors.length === 0, errors, warnings }\r\n}","/**\r\n * tailwind-styled-v4 v2 — cx / cn\r\n *\r\n * FIX #09: Rename for clarity — behavior was confusing with two near-identical utils.\r\n *\r\n * BEFORE:\r\n * cx() → simple join, no conflict resolution → cx(\"p-4\", \"p-8\") = \"p-4 p-8\" (WRONG)\r\n * cxm() → twMerge, correct — but obscure name\r\n *\r\n * AFTER:\r\n * cn() → simple join (for cases where you know there's no conflict)\r\n * cx() → twMerge-powered, conflict-aware (recommended for most use cases)\r\n * cxm() → kept as alias for cx() for backward compat\r\n */\r\n\r\nimport { twMerge } from \"tailwind-merge\"\r\n\r\ntype ClassValue = string | undefined | null | false | 0\r\n\r\n/**\r\n * cn — simple class name joiner (no conflict resolution).\r\n * Use when you know classes don't conflict.\r\n *\r\n * FIX #09: Previously named `cx`. Renamed to `cn` for clarity.\r\n *\r\n * @example cn(\"p-4\", isActive && \"opacity-100\") → \"p-4 opacity-100\"\r\n */\r\nexport function cn(...inputs: ClassValue[]): string {\r\n return inputs.filter(Boolean).join(\" \").replace(/\\s+/g, \" \").trim()\r\n}\r\n\r\n/**\r\n * cx — conflict-aware class merger using tailwind-merge.\r\n * Recommended for combining Tailwind classes where conflicts are possible.\r\n *\r\n * FIX #09: Previously named `cxm`. Renamed to `cx` as the primary utility.\r\n *\r\n * @example cx(\"p-4 p-8\") → \"p-8\" (conflict resolved, last wins)\r\n * @example cx(\"bg-red-500\", \"bg-blue-500\") → \"bg-blue-500\"\r\n */\r\nexport function cx(...inputs: ClassValue[]): string {\r\n return twMerge(...(inputs.filter(Boolean) as string[]))\r\n}\r\n\r\n/**\r\n * cxm — alias for cx(), kept for backward compatibility.\r\n * @deprecated Use cx() instead.\r\n */\r\nexport const cxm = cx\r\n","import React from \"react\"\r\n\r\nimport type { TokenMap } from '@tailwind-styled/shared'\r\nexport type { TokenMap }\r\n\r\nexport type TokenSubscriber = (tokens: TokenMap) => void\r\n\r\nexport interface LiveTokenSet {\r\n vars: Record<string, string>\r\n get(name: string): string | undefined\r\n set(name: string, value: string): void\r\n setAll(tokens: TokenMap): void\r\n snapshot(): TokenMap\r\n}\r\n\r\nexport interface LiveTokenEngineBridge {\r\n getToken(name: string): string | undefined\r\n getTokens(): TokenMap\r\n setToken(name: string, value: string): void\r\n setTokens(tokens: TokenMap): void\r\n applyTokenSet(tokens: TokenMap): void\r\n subscribeTokens(fn: TokenSubscriber): () => void\r\n subscribe?(fn: TokenSubscriber): () => void\r\n}\r\n\r\ninterface LiveTokenEngineRuntime {\r\n liveToken(tokens: TokenMap): LiveTokenSet\r\n getToken(name: string): string | undefined\r\n getTokens(): TokenMap\r\n setToken(name: string, value: string): void\r\n setTokens(tokens: TokenMap): void\r\n applyTokenSet(tokens: TokenMap): void\r\n generateTokenCssString(): string\r\n subscribe(fn: TokenSubscriber): () => void\r\n}\r\n\r\nconst TOKEN_ENGINE_KEY = \"__TW_TOKEN_ENGINE__\"\r\n\r\nexport function tokenVar(name: string): string {\r\n const normalized = name.replace(/[^a-zA-Z0-9-]/g, \"-\").toLowerCase()\r\n return `--tw-token-${normalized}`\r\n}\r\n\r\nexport function tokenRef(name: string): string {\r\n return `var(${tokenVar(name)})`\r\n}\r\n\r\nconst buildRootCss = (tokens: TokenMap): string => {\r\n const vars = Object.entries(tokens)\r\n .map(([name, value]) => ` ${tokenVar(name)}: ${value};`)\r\n .join(\"\\n\")\r\n return `:root {\\n${vars}\\n}`\r\n}\r\n\r\nconst createLiveTokenEngine = (): LiveTokenEngineRuntime => {\r\n const state = {\r\n currentTokens: {} as TokenMap,\r\n styleEl: null as HTMLStyleElement | null,\r\n }\r\n const subscribers = new Set<TokenSubscriber>()\r\n\r\n const syncStyleEl = (): void => {\r\n if (typeof document === \"undefined\") return\r\n\r\n if (!state.styleEl) {\r\n const styleEl = document.createElement(\"style\")\r\n styleEl.id = \"tw-live-tokens\"\r\n styleEl.setAttribute(\"data-tw-tokens\", \"true\")\r\n document.head.appendChild(styleEl)\r\n state.styleEl = styleEl\r\n }\r\n\r\n state.styleEl.textContent = buildRootCss(state.currentTokens)\r\n }\r\n\r\n const notifySubscribers = (): void => {\r\n const snapshot = { ...state.currentTokens }\r\n for (const subscriber of subscribers) {\r\n try {\r\n subscriber(snapshot)\r\n } catch {\r\n // Intentionally ignore subscriber errors.\r\n }\r\n }\r\n }\r\n\r\n const setToken = (name: string, value: string): void => {\r\n state.currentTokens = { ...state.currentTokens, [name]: value }\r\n if (typeof document !== \"undefined\") {\r\n document.documentElement.style.setProperty(tokenVar(name), value)\r\n }\r\n syncStyleEl()\r\n notifySubscribers()\r\n }\r\n\r\n const setTokens = (tokens: TokenMap): void => {\r\n state.currentTokens = { ...state.currentTokens, ...tokens }\r\n if (typeof document !== \"undefined\") {\r\n const root = document.documentElement\r\n for (const [name, value] of Object.entries(tokens)) {\r\n root.style.setProperty(tokenVar(name), value)\r\n }\r\n }\r\n syncStyleEl()\r\n notifySubscribers()\r\n }\r\n\r\n const applyTokenSet = (tokens: TokenMap): void => {\r\n if (typeof document !== \"undefined\") {\r\n const root = document.documentElement\r\n for (const name of Object.keys(state.currentTokens)) {\r\n if (!(name in tokens)) {\r\n root.style.removeProperty(tokenVar(name))\r\n }\r\n }\r\n for (const [name, value] of Object.entries(tokens)) {\r\n root.style.setProperty(tokenVar(name), value)\r\n }\r\n }\r\n\r\n state.currentTokens = { ...tokens }\r\n syncStyleEl()\r\n notifySubscribers()\r\n }\r\n\r\n return {\r\n liveToken(tokens: TokenMap): LiveTokenSet {\r\n setTokens(tokens)\r\n\r\n const vars: Record<string, string> = {}\r\n for (const name of Object.keys(tokens)) {\r\n vars[name] = tokenRef(name)\r\n }\r\n\r\n return {\r\n vars,\r\n get(name: string) {\r\n return state.currentTokens[name]\r\n },\r\n set(name: string, value: string) {\r\n setToken(name, value)\r\n },\r\n setAll(nextTokens: TokenMap) {\r\n setTokens(nextTokens)\r\n },\r\n snapshot() {\r\n return { ...state.currentTokens }\r\n },\r\n }\r\n },\r\n getToken(name: string): string | undefined {\r\n return state.currentTokens[name]\r\n },\r\n getTokens(): TokenMap {\r\n return { ...state.currentTokens }\r\n },\r\n setToken,\r\n setTokens,\r\n applyTokenSet,\r\n generateTokenCssString(): string {\r\n return buildRootCss(state.currentTokens)\r\n },\r\n subscribe(fn: TokenSubscriber): () => void {\r\n subscribers.add(fn)\r\n return () => {\r\n subscribers.delete(fn)\r\n }\r\n },\r\n }\r\n}\r\n\r\nconst engine = createLiveTokenEngine()\r\n\r\nexport function liveToken(tokens: TokenMap): LiveTokenSet {\r\n return engine.liveToken(tokens)\r\n}\r\n\r\nexport function setToken(name: string, value: string): void {\r\n engine.setToken(name, value)\r\n}\r\n\r\nexport function setTokens(tokens: TokenMap): void {\r\n engine.setTokens(tokens)\r\n}\r\n\r\nexport function applyTokenSet(tokens: TokenMap): void {\r\n engine.applyTokenSet(tokens)\r\n}\r\n\r\nexport function getToken(name: string): string | undefined {\r\n return engine.getToken(name)\r\n}\r\n\r\nexport function getTokens(): TokenMap {\r\n return engine.getTokens()\r\n}\r\n\r\nexport function subscribeTokens(fn: TokenSubscriber): () => void {\r\n return engine.subscribe(fn)\r\n}\r\n\r\nexport function generateTokenCssString(): string {\r\n return engine.generateTokenCssString()\r\n}\r\n\r\nexport function createUseTokens() {\r\n return function useTokens(): TokenMap {\r\n const [tokens, setTokensState] = React.useState<TokenMap>(engine.getTokens())\r\n\r\n React.useEffect(() => {\r\n setTokensState(engine.getTokens())\r\n return engine.subscribe((nextTokens) => setTokensState(nextTokens))\r\n }, [])\r\n\r\n return tokens\r\n }\r\n}\r\n\r\nexport const liveTokenEngine: LiveTokenEngineBridge = {\r\n getToken: engine.getToken,\r\n getTokens: engine.getTokens,\r\n setToken: engine.setToken,\r\n setTokens: engine.setTokens,\r\n applyTokenSet: engine.applyTokenSet,\r\n subscribeTokens: engine.subscribe,\r\n subscribe: engine.subscribe,\r\n}\r\n\r\ndeclare global {\r\n interface Window {\r\n __TW_TOKEN_ENGINE__?: LiveTokenEngineBridge\r\n }\r\n}\r\n\r\nconst globalTokenEngine = globalThis as typeof globalThis & {\r\n [TOKEN_ENGINE_KEY]?: LiveTokenEngineBridge\r\n}\r\n\r\nglobalTokenEngine[TOKEN_ENGINE_KEY] = liveTokenEngine\r\nif (typeof window !== \"undefined\") {\r\n window.__TW_TOKEN_ENGINE__ = liveTokenEngine\r\n}\r\n","import React from \"react\"\r\n\r\nexport interface SubComponentProps {\r\n children?: React.ReactNode\r\n className?: string\r\n}\r\n\r\nexport interface SubComponentEntry {\r\n name: string\r\n component: React.FC<SubComponentProps>\r\n defaultClasses?: string\r\n}\r\n\r\nconst subComponentRegistry = new Map<string, SubComponentEntry>()\r\n\r\nexport function registerSubComponent(entry: SubComponentEntry): void {\r\n subComponentRegistry.set(entry.name, entry)\r\n}\r\n\r\nexport function getSubComponent(name: string): SubComponentEntry | undefined {\r\n return subComponentRegistry.get(name)\r\n}\r\n\r\nexport function getAllSubComponents(): SubComponentEntry[] {\r\n return Array.from(subComponentRegistry.values())\r\n}\r\n\r\nexport function withSubComponents<T extends object>(\r\n Component: T,\r\n subComponentNames: string[]\r\n): T & Record<string, React.FC<SubComponentProps>> {\r\n const result = { ...Component } as Record<string, unknown>\r\n for (const name of subComponentNames) {\r\n const entry = getSubComponent(name)\r\n if (entry) result[name] = entry.component\r\n }\r\n return result as T & Record<string, React.FC<SubComponentProps>>\r\n}\r\n\r\nregisterSubComponent({\r\n name: \"icon\",\r\n component: ({ children, className }) => React.createElement(\"span\", { className }, children),\r\n defaultClasses: \"\",\r\n})\r\n\r\nregisterSubComponent({\r\n name: \"text\",\r\n component: ({ children, className }) => React.createElement(\"span\", { className }, children),\r\n defaultClasses: \"\",\r\n})\r\n\r\nregisterSubComponent({\r\n name: \"badge\",\r\n component: ({ children, className }) =>\r\n React.createElement(\r\n \"span\",\r\n {\r\n className: `ml-2 px-2 py-0.5 text-xs rounded-full bg-red-500 text-white ${className || \"\"}`,\r\n },\r\n children\r\n ),\r\n defaultClasses: \"ml-2 px-2 py-0.5 text-xs rounded-full bg-red-500 text-white\",\r\n})\r\n\r\nregisterSubComponent({\r\n name: \"header\",\r\n component: ({ children, className }) =>\r\n React.createElement(\"header\", { className: `font-bold text-lg ${className || \"\"}` }, children),\r\n defaultClasses: \"font-bold text-lg\",\r\n})\r\n\r\nregisterSubComponent({\r\n name: \"body\",\r\n component: ({ children, className }) =>\r\n React.createElement(\"div\", { className: `flex-1 ${className || \"\"}` }, children),\r\n defaultClasses: \"flex-1\",\r\n})\r\n\r\nregisterSubComponent({\r\n name: \"footer\",\r\n component: ({ children, className }) =>\r\n React.createElement(\"footer\", { className: `border-t pt-4 ${className || \"\"}` }, children),\r\n defaultClasses: \"border-t pt-4\",\r\n})\r\n\r\nregisterSubComponent({\r\n name: \"content\",\r\n component: ({ children, className }) => React.createElement(\"div\", { className }, children),\r\n defaultClasses: \"\",\r\n})\r\n\r\nregisterSubComponent({\r\n name: \"title\",\r\n component: ({ children, className }) =>\r\n React.createElement(\"div\", { className: `font-semibold ${className || \"\"}` }, children),\r\n defaultClasses: \"font-semibold\",\r\n})\r\n\r\nregisterSubComponent({\r\n name: \"message\",\r\n component: ({ children, className }) =>\r\n React.createElement(\"div\", { className: `text-sm ${className || \"\"}` }, children),\r\n defaultClasses: \"text-sm\",\r\n})\r\n\r\nregisterSubComponent({\r\n name: \"close\",\r\n component: ({ children, className }) =>\r\n React.createElement(\"span\", { className: `cursor-pointer ${className || \"\"}` }, children),\r\n defaultClasses: \"cursor-pointer\",\r\n})\r\n\r\nregisterSubComponent({\r\n name: \"image\",\r\n component: ({ className }) => React.createElement(\"img\", { className }),\r\n defaultClasses: \"\",\r\n})\r\n","import { twMerge } from \"./merge\"\r\n\r\nexport interface StyledOptions {\r\n base?: string\r\n variants?: Record<string, Record<string, string>>\r\n defaultVariants?: Record<string, string>\r\n compoundVariants?: Array<{\r\n variants: Record<string, string>\r\n className: string\r\n }>\r\n}\r\n\r\nexport type StyledProps = {\r\n className?: string\r\n} & Record<string, string | number | boolean | undefined>\r\n\r\nfunction resolveVariantClass(options: StyledOptions, props: StyledProps): string[] {\r\n const out: string[] = []\r\n const variants = options.variants ?? {}\r\n const defaults = options.defaultVariants ?? {}\r\n\r\n for (const [variantName, valueMap] of Object.entries(variants)) {\r\n const value = props[variantName] ?? defaults[variantName]\r\n if (value === undefined) continue\r\n\r\n const key = String(value)\r\n const cls = valueMap[key]\r\n if (cls) out.push(cls)\r\n }\r\n\r\n for (const compound of options.compoundVariants ?? []) {\r\n const matches = Object.entries(compound.variants).every(([k, expected]) => {\r\n const current = props[k] ?? defaults[k]\r\n return String(current) === expected\r\n })\r\n\r\n if (matches) out.push(compound.className)\r\n }\r\n\r\n return out\r\n}\r\n\r\nexport function resolveStyledClassName(options: StyledOptions, props: StyledProps = {}): string {\r\n const parts = [options.base ?? \"\", ...resolveVariantClass(options, props), props.className ?? \"\"]\r\n return twMerge(...parts)\r\n}\r\n\r\nexport function styled(options: StyledOptions) {\r\n return function getClassName(props: StyledProps = {}): string {\r\n return resolveStyledClassName(options, props)\r\n }\r\n}\r\n","/**\r\n * tailwind-styled-v4 — createStyledSystem()\r\n *\r\n * Design System Factory — Mode 3 API.\r\n *\r\n * Level 1 — utility: tw.div`p-4`\r\n * Level 2 — styled: tw(Button)`px-4`\r\n * Level 3 — design system: ui.button({ variant: \"primary\" })\r\n *\r\n * Usage:\r\n * const ui = createStyledSystem({\r\n * tokens: {\r\n * colors: { primary: \"#6366f1\", muted: \"#71717a\" },\r\n * radius: { base: \"0.5rem\", full: \"9999px\" },\r\n * },\r\n * components: {\r\n * button: {\r\n * base: \"inline-flex items-center font-medium transition-colors\",\r\n * variants: {\r\n * variant: {\r\n * primary: \"bg-[var(--sys-color-primary)] text-white\",\r\n * ghost: \"bg-transparent border border-current\",\r\n * danger: \"bg-red-500 text-white\",\r\n * },\r\n * size: {\r\n * sm: \"h-8 px-3 text-sm\",\r\n * md: \"h-10 px-4 text-base\",\r\n * lg: \"h-12 px-6 text-lg\",\r\n * },\r\n * },\r\n * defaultVariants: { variant: \"primary\", size: \"md\" },\r\n * },\r\n * },\r\n * })\r\n *\r\n * const Button = ui.button()\r\n * // → <Button variant=\"primary\" size=\"lg\" />\r\n *\r\n * // Token access\r\n * ui.token(\"colors.primary\") // → \"var(--sys-color-primary)\"\r\n * ui.cssVar(\"colors.primary\") // → \"#6366f1\"\r\n */\r\n\r\nimport type React from \"react\"\r\n\r\nimport { createComponent } from \"./createComponent\"\r\nimport type { ComponentConfig, TwStyledComponent } from \"./types\"\r\n\r\n// ─────────────────────────────────────────────────────────────────────────────\r\n// System token types\r\n// ─────────────────────────────────────────────────────────────────────────────\r\n\r\nexport type SystemTokenMap = Record<string, Record<string, string>>\r\n\r\nexport interface SystemComponentConfig extends ComponentConfig {\r\n /** Extra class applied only when used from the system (e.g. system-level resets) */\r\n systemBase?: string\r\n /** HTML tag for the component */\r\n tag?: string\r\n}\r\n\r\nexport interface StyledSystemConfig<\r\n T extends SystemTokenMap = SystemTokenMap,\r\n C extends Record<string, SystemComponentConfig> = Record<string, SystemComponentConfig>,\r\n> {\r\n /** Design tokens — injected as CSS custom properties under --sys-{group}-{name} */\r\n tokens?: T\r\n /** Component presets */\r\n components?: C\r\n /** CSS variable prefix. Default: \"sys\" → --sys-color-primary */\r\n prefix?: string\r\n /** If true, auto-inject token CSS vars into :root on init. Default: true */\r\n injectTokens?: boolean\r\n}\r\n\r\n// ─────────────────────────────────────────────────────────────────────────────\r\n// Token → CSS var helpers\r\n// ─────────────────────────────────────────────────────────────────────────────\r\n\r\nfunction tokenVarName(prefix: string, group: string, name: string): string {\r\n return `--${prefix}-${group}-${name}`\r\n}\r\n\r\nfunction tokenVarRef(prefix: string, group: string, name: string): string {\r\n return `var(${tokenVarName(prefix, group, name)})`\r\n}\r\n\r\nfunction resolveTokenRef(tokens: SystemTokenMap, prefix: string, value: string): string {\r\n // If value is \"token:colors.primary\" → resolve to var(--sys-colors-primary)\r\n if (value.startsWith(\"token:\")) {\r\n const path = value.slice(6)\r\n const [group, name] = path.split(\".\")\r\n if (group && name && tokens[group]?.[name] !== undefined) {\r\n return tokenVarRef(prefix, group, name)\r\n }\r\n }\r\n return value\r\n}\r\n\r\nfunction injectTokensToRoot(tokens: SystemTokenMap, prefix: string): void {\r\n if (typeof document === \"undefined\") return\r\n\r\n const styleId = `__tw-sys-tokens-${prefix}`\r\n if (document.getElementById(styleId)) return\r\n\r\n const lines: string[] = [\":root {\"]\r\n for (const [group, map] of Object.entries(tokens)) {\r\n for (const [name, value] of Object.entries(map)) {\r\n lines.push(` ${tokenVarName(prefix, group, name)}: ${value};`)\r\n }\r\n }\r\n lines.push(\"}\")\r\n\r\n const style = document.createElement(\"style\")\r\n style.id = styleId\r\n style.textContent = lines.join(\"\\n\")\r\n document.head.appendChild(style)\r\n}\r\n\r\n// ─────────────────────────────────────────────────────────────────────────────\r\n// Variant class resolver — replaces \"token:*\" references inside variant values\r\n// ─────────────────────────────────────────────────────────────────────────────\r\n\r\nfunction resolveComponentConfig(\r\n config: SystemComponentConfig,\r\n tokens: SystemTokenMap,\r\n prefix: string\r\n): ComponentConfig {\r\n const resolveStr = (s: string) => resolveTokenRef(tokens, prefix, s)\r\n\r\n const base = resolveStr(config.base ?? \"\")\r\n const systemBase = resolveStr(config.systemBase ?? \"\")\r\n const mergedBase = [systemBase, base].filter(Boolean).join(\" \")\r\n\r\n const variants: Record<string, Record<string, string>> = {}\r\n for (const [variantKey, variantMap] of Object.entries(config.variants ?? {})) {\r\n variants[variantKey] = {}\r\n for (const [optKey, classes] of Object.entries(variantMap)) {\r\n variants[variantKey][optKey] = classes.split(\" \").map(resolveStr).join(\" \")\r\n }\r\n }\r\n\r\n const compoundVariants = (config.compoundVariants ?? []).map((cv) => {\r\n const { class: cls, ...rest } = cv\r\n return { class: resolveStr(cls), ...rest }\r\n })\r\n\r\n return {\r\n base: mergedBase,\r\n variants,\r\n compoundVariants,\r\n defaultVariants: config.defaultVariants ?? {},\r\n state: config.state,\r\n container: config.container,\r\n containerName: config.containerName,\r\n }\r\n}\r\n\r\n// ─────────────────────────────────────────────────────────────────────────────\r\n// StyledSystem instance type\r\n// ─────────────────────────────────────────────────────────────────────────────\r\n\r\nexport type SystemComponentFactory<C extends SystemComponentConfig> = (\r\n overrides?: Partial<C>\r\n) => TwStyledComponent<Record<string, unknown>>\r\n\r\nexport type StyledSystemInstance<\r\n T extends SystemTokenMap,\r\n C extends Record<string, SystemComponentConfig>,\r\n> = {\r\n [K in keyof C]: SystemComponentFactory<C[K]>\r\n} & {\r\n /**\r\n * Get the CSS variable reference for a token.\r\n * @example ui.token(\"colors.primary\") → \"var(--sys-colors-primary)\"\r\n */\r\n token(path: string): string\r\n /**\r\n * Get the raw value of a token.\r\n * @example ui.rawToken(\"colors.primary\") → \"#6366f1\"\r\n */\r\n rawToken(path: string): string | undefined\r\n /**\r\n * Update token values at runtime (re-injects into :root).\r\n */\r\n setTokens(updates: Partial<{ [G in keyof T]: Partial<T[G]> }>): void\r\n /**\r\n * Access the resolved component config for a registered component.\r\n */\r\n getConfig(name: keyof C): ComponentConfig | undefined\r\n /**\r\n * The tokens object (for reference).\r\n */\r\n tokens: T\r\n}\r\n\r\n// ─────────────────────────────────────────────────────────────────────────────\r\n// createStyledSystem\r\n// ─────────────────────────────────────────────────────────────────────────────\r\n\r\nexport function createStyledSystem<\r\n T extends SystemTokenMap = SystemTokenMap,\r\n C extends Record<string, SystemComponentConfig> = Record<string, SystemComponentConfig>,\r\n>(config: StyledSystemConfig<T, C>): StyledSystemInstance<T, C> {\r\n const prefix = config.prefix ?? \"sys\"\r\n const tokens = (config.tokens ?? {}) as T\r\n const componentDefs = config.components ?? ({} as C)\r\n const shouldInject = config.injectTokens !== false\r\n\r\n // Inject tokens into :root on first call (client only)\r\n if (shouldInject && typeof window !== \"undefined\") {\r\n injectTokensToRoot(tokens as SystemTokenMap, prefix)\r\n }\r\n\r\n // Cache resolved component configs\r\n const resolvedConfigs = new Map<string, ComponentConfig>()\r\n\r\n for (const [name, compCfg] of Object.entries(componentDefs)) {\r\n resolvedConfigs.set(\r\n name,\r\n resolveComponentConfig(compCfg, tokens as SystemTokenMap, prefix)\r\n )\r\n }\r\n\r\n // Build component factories\r\n const factories: Record<string, SystemComponentFactory<SystemComponentConfig>> = {}\r\n\r\n for (const [name, compCfg] of Object.entries(componentDefs)) {\r\n const tag = compCfg.tag ?? \"div\"\r\n\r\n factories[name] = (overrides?: Partial<SystemComponentConfig>) => {\r\n const baseResolved = resolvedConfigs.get(name)!\r\n const runtimeTag = tag as React.ElementType\r\n\r\n if (!overrides || Object.keys(overrides).length === 0) {\r\n return createComponent(runtimeTag, baseResolved)\r\n }\r\n\r\n // Merge overrides into resolved config\r\n const overrideResolved = resolveComponentConfig(\r\n overrides as SystemComponentConfig,\r\n tokens as SystemTokenMap,\r\n prefix\r\n )\r\n\r\n const merged: ComponentConfig = {\r\n base: [baseResolved.base, overrideResolved.base].filter(Boolean).join(\" \"),\r\n variants: {\r\n ...(baseResolved.variants ?? undefined),\r\n ...(overrideResolved.variants ?? undefined),\r\n },\r\n compoundVariants: [\r\n ...(baseResolved.compoundVariants ?? []),\r\n ...(overrideResolved.compoundVariants ?? []),\r\n ],\r\n defaultVariants: {\r\n ...(baseResolved.defaultVariants ?? undefined),\r\n ...(overrideResolved.defaultVariants ?? undefined),\r\n },\r\n state: overrideResolved.state ?? baseResolved.state,\r\n container: overrideResolved.container ?? baseResolved.container,\r\n containerName: overrideResolved.containerName ?? baseResolved.containerName,\r\n }\r\n\r\n return createComponent(runtimeTag, merged)\r\n }\r\n }\r\n\r\n // Token utilities\r\n function token(path: string): string {\r\n const [group, name] = path.split(\".\")\r\n if (!group || !name) return path\r\n return tokenVarRef(prefix, group, name)\r\n }\r\n\r\n function rawToken(path: string): string | undefined {\r\n const [group, name] = path.split(\".\")\r\n if (!group || !name) return undefined\r\n return (tokens as SystemTokenMap)[group]?.[name]\r\n }\r\n\r\n function setTokens(updates: Partial<{ [G in keyof T]: Partial<T[G]> }>): void {\r\n if (typeof document === \"undefined\") return\r\n\r\n // Find or create the :root style element\r\n const styleId = `__tw-sys-tokens-${prefix}`\r\n const style =\r\n (document.getElementById(styleId) as HTMLStyleElement | null) ??\r\n (() => {\r\n const el = document.createElement(\"style\")\r\n el.id = styleId\r\n document.head.appendChild(el)\r\n return el\r\n })()\r\n\r\n // Merge updates into tokens and re-generate\r\n for (const [group, map] of Object.entries(updates)) {\r\n if (!tokens[group as keyof T]) continue\r\n for (const [name, value] of Object.entries(map as Record<string, string>)) {\r\n ;(tokens as SystemTokenMap)[group][name] = value\r\n }\r\n }\r\n\r\n const lines: string[] = [\":root {\"]\r\n for (const [group, map] of Object.entries(tokens as SystemTokenMap)) {\r\n for (const [name, value] of Object.entries(map)) {\r\n lines.push(` ${tokenVarName(prefix, group, name)}: ${value};`)\r\n }\r\n }\r\n lines.push(\"}\")\r\n style.textContent = lines.join(\"\\n\")\r\n }\r\n\r\n function getConfig(name: keyof C): ComponentConfig | undefined {\r\n return resolvedConfigs.get(name as string)\r\n }\r\n\r\n return Object.assign(factories, {\r\n token,\r\n rawToken,\r\n setTokens,\r\n getConfig,\r\n tokens,\r\n }) as StyledSystemInstance<T, C>\r\n}\r\n","/**\r\n * tailwind-styled-v4 v2 — tw\r\n *\r\n * API:\r\n * tw.div`p-4 bg-zinc-900`\r\n * tw.button`px-4 [icon] { h-4 w-4 }` ← sub-components inline\r\n * tw.button({ base: \"px-4\", variants: { size: { sm: \"text-sm\" } } })\r\n * tw(Link)`underline text-blue-400`\r\n * tw.server.div`p-4` ← server-only, compiler enforced + runtime dev warning\r\n */\r\n\r\nimport React from \"react\"\r\nimport { createComponent } from \"./createComponent\"\r\nimport type {\r\n ComponentConfig,\r\n TwComponentFactory,\r\n TwObject,\r\n TwServerObject,\r\n TwStyledComponent,\r\n TwTagFactory,\r\n TwTagFactoryAny,\r\n} from \"./types\"\r\n\r\n// types.ts is single source of truth — re-export for consumers\r\nexport type { TwComponentFactory, TwObject, TwServerObject, TwTagFactory }\r\n\r\n// ─────────────────────────────────────────────────────────────────────────────\r\n// Template parser\r\n// ─────────────────────────────────────────────────────────────────────────────\r\n\r\ninterface ParsedTemplate {\r\n /** Base classes — tanpa sub-component blocks */\r\n base: string\r\n /** Sub-component map: { icon: \"h-4 w-4 ...\", badge: \"px-2 ...\" } */\r\n subs: Record<string, string>\r\n /** Ada sub-component atau tidak */\r\n hasSubs: boolean\r\n}\r\n\r\nconst SUB_RE = /\\[([a-zA-Z][a-zA-Z0-9_-]*)\\]\\s*\\{([^}]*)\\}/g\r\nconst COMMENT_RE = /\\/\\/[^\\n]*/g\r\n\r\nfunction parseTemplate(strings: TemplateStringsArray, exprs: unknown[]): ParsedTemplate {\r\n const raw = strings.raw.reduce((acc, str, i) => {\r\n const expr = exprs[i]\r\n const exprStr = typeof expr === \"function\" ? \"\" : (expr ?? \"\")\r\n return acc + str + String(exprStr)\r\n }, \"\")\r\n\r\n const subs: Record<string, string> = {}\r\n let base = raw\r\n\r\n // Extract dan hapus semua [name] { ... } blocks dari base\r\n let match: RegExpExecArray | null\r\n SUB_RE.lastIndex = 0\r\n while ((match = SUB_RE.exec(raw)) !== null) {\r\n const name = match[1]\r\n const inner = match[2]\r\n .replace(COMMENT_RE, \"\") // strip //comments\r\n .split(\"\\n\").map((l) => l.trim()).filter(Boolean).join(\" \")\r\n .replace(/\\s+/g, \" \").trim()\r\n\r\n subs[name] = inner\r\n base = base.replace(match[0], \"\")\r\n }\r\n\r\n // Clean base: strip comments, normalize whitespace\r\n const cleanBase = base\r\n .replace(COMMENT_RE, \"\")\r\n .split(\"\\n\").map((l) => l.trim()).filter(Boolean).join(\" \")\r\n .replace(/\\s+/g, \" \").trim()\r\n\r\n return {\r\n base: cleanBase,\r\n subs,\r\n hasSubs: Object.keys(subs).length > 0,\r\n }\r\n}\r\n\r\ntype RuntimeTagFactory = ((\r\n stringsOrConfig: TemplateStringsArray | ComponentConfig,\r\n ...exprs: unknown[]\r\n) => TwStyledComponent<Record<string, unknown>>) &\r\n TwTagFactoryAny\r\n\r\n// ─────────────────────────────────────────────────────────────────────────────\r\n// makeTag\r\n// ─────────────────────────────────────────────────────────────────────────────\r\n\r\nfunction makeTag(tag: React.ElementType): RuntimeTagFactory {\r\n return ((\r\n stringsOrConfig: TemplateStringsArray | ComponentConfig,\r\n ...exprs: unknown[]\r\n ): TwStyledComponent<Record<string, unknown>> => {\r\n // Object config path\r\n if (\r\n !Array.isArray(stringsOrConfig) &&\r\n typeof stringsOrConfig === \"object\" &&\r\n stringsOrConfig !== null &&\r\n !(\"raw\" in stringsOrConfig)\r\n ) {\r\n return createComponent(tag, stringsOrConfig as ComponentConfig)\r\n }\r\n\r\n // Template literal path\r\n const parsed = parseTemplate(stringsOrConfig as TemplateStringsArray, exprs)\r\n\r\n // Buat component dari base classes\r\n const component = createComponent(tag, parsed.base)\r\n\r\n // Attach sub-components sebagai React.FC dari classes yang di-extract\r\n if (parsed.hasSubs) {\r\n for (const [name, classes] of Object.entries(parsed.subs)) {\r\n // Setiap sub-component adalah styled span/div dengan classesnya\r\n const SubComp = React.forwardRef<\r\n HTMLSpanElement,\r\n { children?: React.ReactNode; className?: string }\r\n >(({ children, className }, ref) =>\r\n React.createElement(\"span\", {\r\n ref,\r\n className: className ? `${classes} ${className}` : classes,\r\n }, children)\r\n )\r\n SubComp.displayName = `tw.${typeof tag === \"string\" ? tag : \"component\"}.${name}`;\r\n (component as Record<string, unknown>)[name] = SubComp\r\n }\r\n }\r\n\r\n return component\r\n }) as RuntimeTagFactory\r\n}\r\n\r\n// ─────────────────────────────────────────────────────────────────────────────\r\n// HTML tag list\r\n// ─────────────────────────────────────────────────────────────────────────────\r\n\r\nconst HTML_TAGS = [\r\n \"div\", \"section\", \"article\", \"aside\", \"header\", \"footer\", \"main\", \"nav\",\r\n \"figure\", \"figcaption\", \"details\", \"summary\",\r\n \"h1\", \"h2\", \"h3\", \"h4\", \"h5\", \"h6\",\r\n \"p\", \"span\", \"strong\", \"em\", \"b\", \"i\", \"s\", \"u\", \"small\", \"mark\",\r\n \"abbr\", \"cite\", \"code\", \"kbd\", \"samp\", \"var\", \"time\", \"address\",\r\n \"blockquote\", \"q\", \"del\", \"ins\", \"sub\", \"sup\",\r\n \"ul\", \"ol\", \"li\", \"dl\", \"dt\", \"dd\",\r\n \"table\", \"thead\", \"tbody\", \"tfoot\", \"tr\", \"th\", \"td\", \"caption\",\r\n \"colgroup\", \"col\",\r\n \"img\", \"picture\", \"video\", \"audio\", \"source\", \"track\",\r\n \"canvas\", \"svg\", \"path\", \"circle\", \"rect\", \"line\",\r\n \"polyline\", \"polygon\", \"g\", \"defs\", \"use\", \"symbol\",\r\n \"form\", \"input\", \"textarea\", \"select\", \"option\", \"optgroup\",\r\n \"button\", \"label\", \"fieldset\", \"legend\", \"output\",\r\n \"progress\", \"meter\", \"datalist\",\r\n \"a\", \"area\", \"map\", \"iframe\", \"embed\", \"object\",\r\n \"pre\", \"hr\", \"br\", \"wbr\", \"dialog\", \"menu\", \"template\", \"slot\",\r\n] as const\r\n\r\n// ─────────────────────────────────────────────────────────────────────────────\r\n// tw.server — server-only namespace with dev warning\r\n// ─────────────────────────────────────────────────────────────────────────────\r\n\r\nfunction makeServerTag(tag: React.ElementType): RuntimeTagFactory {\r\n const baseFactory = makeTag(tag)\r\n if (typeof window !== \"undefined\" && process.env.NODE_ENV !== \"production\") {\r\n return ((\r\n stringsOrConfig: TemplateStringsArray | ComponentConfig,\r\n ...exprs: unknown[]\r\n ): TwStyledComponent<Record<string, unknown>> => {\r\n const tagName =\r\n typeof tag === \"string\"\r\n ? tag\r\n : ((tag as { displayName?: string }).displayName ?? \"Component\")\r\n console.warn(\r\n `[tailwind-styled-v4] tw.server.${tagName} rendered in browser. ` +\r\n `Ensure withTailwindStyled or Vite plugin is configured.`\r\n )\r\n return baseFactory(stringsOrConfig, ...exprs)\r\n }) as RuntimeTagFactory\r\n }\r\n return baseFactory\r\n}\r\n\r\nconst serverFactories: Record<string, RuntimeTagFactory> = {}\r\nfor (const tag of HTML_TAGS) {\r\n serverFactories[tag] = makeServerTag(tag as React.ElementType)\r\n}\r\n\r\nexport const server: TwServerObject = serverFactories as unknown as TwServerObject\r\n\r\n// ─────────────────────────────────────────────────────────────────────────────\r\n// tw — main export\r\n// ─────────────────────────────────────────────────────────────────────────────\r\n\r\nconst tagFactories: Record<string, RuntimeTagFactory> = {}\r\nfor (const tag of HTML_TAGS) {\r\n tagFactories[tag] = makeTag(tag as React.ElementType)\r\n}\r\n\r\nfunction twCallable(component: React.ComponentType<unknown>) {\r\n return makeTag(component)\r\n}\r\n\r\nexport const tw: TwObject = Object.assign(twCallable, tagFactories, {\r\n server,\r\n}) as unknown as TwObject","/**\r\n * tailwind-styled-v4 v2 — twTheme\r\n *\r\n * UPGRADE #1: Tailwind v4 CSS Variables integration.\r\n *\r\n * Tailwind v4 uses @theme inline to expose design tokens as CSS custom properties:\r\n * @theme inline {\r\n * --color-background: var(--background);\r\n * --color-foreground: var(--foreground);\r\n * --font-sans: var(--font-geist-sans);\r\n * }\r\n *\r\n * This module bridges tw() syntax with those CSS variables — zero config,\r\n * full IDE support, type-safe design tokens.\r\n *\r\n * @example\r\n * // Without twTheme (verbose, error-prone)\r\n * const Box = tw.div`bg-[var(--color-background)] text-[var(--color-foreground)]`\r\n *\r\n * // With twTheme (clean, type-safe)\r\n * const Box = tw.div`${t.bg(\"color-background\")} ${t.text(\"color-foreground\")}`\r\n *\r\n * // Or with createTheme for full project-level token map\r\n * const theme = createTheme({\r\n * colors: { bg: \"color-background\", fg: \"color-foreground\", primary: \"color-primary\" },\r\n * fonts: { sans: \"font-sans\", mono: \"font-mono\" },\r\n * })\r\n * const Box = tw.div`bg-${theme.colors.bg} text-${theme.colors.fg}`\r\n */\r\n\r\n// ─────────────────────────────────────────────────────────────────────────────\r\n// Core helper — CSS variable reference\r\n// ─────────────────────────────────────────────────────────────────────────────\r\n\r\n/**\r\n * Reference a CSS custom property in Tailwind v4 arbitrary value syntax.\r\n *\r\n * @example\r\n * cssVar(\"color-background\") → \"var(--color-background)\"\r\n * cssVar(\"color-primary\", \"#3b82f6\") → \"var(--color-primary, #3b82f6)\"\r\n */\r\nexport function cssVar(varName: string, fallback?: string): string {\r\n const name = varName.startsWith(\"--\") ? varName : `--${varName}`\r\n return fallback ? `var(${name}, ${fallback})` : `var(${name})`\r\n}\r\n\r\n/**\r\n * Generate a Tailwind v4 arbitrary value that references a CSS variable.\r\n *\r\n * @example\r\n * twVar(\"bg\", \"color-background\") → \"bg-[var(--color-background)]\"\r\n * twVar(\"text\", \"color-foreground\") → \"text-[var(--color-foreground)]\"\r\n * twVar(\"border\", \"color-border\", \"#e5e7eb\") → \"border-[var(--color-border,#e5e7eb)]\"\r\n */\r\nexport function twVar(property: string, varName: string, fallback?: string): string {\r\n const ref = fallback ? `var(--${varName},${fallback})` : `var(--${varName})`\r\n return `${property}-[${ref}]`\r\n}\r\n\r\n// ─────────────────────────────────────────────────────────────────────────────\r\n// Convenience shorthand builders\r\n// ─────────────────────────────────────────────────────────────────────────────\r\n\r\nexport const t = {\r\n /** Background color from CSS variable: t.bg(\"color-primary\") → \"bg-[var(--color-primary)]\" */\r\n bg: (v: string, fb?: string) => twVar(\"bg\", v, fb),\r\n /** Text color from CSS variable */\r\n text: (v: string, fb?: string) => twVar(\"text\", v, fb),\r\n /** Border color from CSS variable */\r\n border: (v: string, fb?: string) => twVar(\"border\", v, fb),\r\n /** Ring color from CSS variable */\r\n ring: (v: string, fb?: string) => twVar(\"ring\", v, fb),\r\n /** Outline color from CSS variable */\r\n outline: (v: string, fb?: string) => twVar(\"outline\", v, fb),\r\n /** Fill color from CSS variable (SVG) */\r\n fill: (v: string, fb?: string) => twVar(\"fill\", v, fb),\r\n /** Stroke color from CSS variable (SVG) */\r\n stroke: (v: string, fb?: string) => twVar(\"stroke\", v, fb),\r\n /** Font family from CSS variable */\r\n font: (v: string, fb?: string) => twVar(\"font\", v, fb),\r\n /** Shadow from CSS variable */\r\n shadow: (v: string, fb?: string) => twVar(\"shadow\", v, fb),\r\n /** Any arbitrary property from CSS variable */\r\n var: (property: string, v: string, fb?: string) => twVar(property, v, fb),\r\n}\r\n\r\n// ─────────────────────────────────────────────────────────────────────────────\r\n// createTheme — project-level design token map\r\n// ─────────────────────────────────────────────────────────────────────────────\r\n\r\nexport interface ThemeTokenMap {\r\n colors?: Record<string, string>\r\n fonts?: Record<string, string>\r\n spacing?: Record<string, string>\r\n [key: string]: Record<string, string> | undefined\r\n}\r\n\r\nexport type ResolvedThemeTokens<T extends ThemeTokenMap> = {\r\n [Group in keyof T]: T[Group] extends Record<string, string>\r\n ? {\r\n [Token in keyof T[Group]]: string\r\n }\r\n : never\r\n}\r\n\r\n/**\r\n * Create a typed theme token map from your CSS variable names.\r\n * Returns helper functions that generate Tailwind v4 arbitrary values.\r\n *\r\n * @example\r\n * // Define your tokens (match your globals.css @theme block)\r\n * const theme = createTheme({\r\n * colors: {\r\n * bg: \"color-background\",\r\n * fg: \"color-foreground\",\r\n * primary: \"color-primary\",\r\n * muted: \"color-muted\",\r\n * },\r\n * fonts: {\r\n * sans: \"font-sans\",\r\n * mono: \"font-mono\",\r\n * },\r\n * })\r\n *\r\n * // Use in tw components\r\n * const Card = tw.div`\r\n * bg-${theme.colors.bg}\r\n * text-${theme.colors.fg}\r\n * font-${theme.fonts.sans}\r\n * `\r\n * // → tw.div`bg-[var(--color-background)] text-[var(--color-foreground)] font-[var(--font-sans)]`\r\n *\r\n * // Use in cv()\r\n * const button = cv({\r\n * base: `px-4 py-2 ${theme.colors.bg} ${theme.colors.fg}`,\r\n * variants: { ... }\r\n * })\r\n */\r\nexport function createTheme<T extends ThemeTokenMap>(tokenMap: T): ResolvedThemeTokens<T> {\r\n const resolved: Record<string, Record<string, string>> = {}\r\n\r\n for (const group in tokenMap) {\r\n resolved[group] = {}\r\n const tokens = tokenMap[group]!\r\n for (const name in tokens) {\r\n const varName = tokens[name]\r\n const prefix = getGroupPrefix(group)\r\n resolved[group][name] = prefix ? twVar(prefix, varName) : cssVar(varName)\r\n }\r\n }\r\n\r\n return resolved as ResolvedThemeTokens<T>\r\n}\r\n\r\nfunction getGroupPrefix(group: string): string {\r\n const map: Record<string, string> = {\r\n colors: \"bg\", // default to bg; user can use t.text() for text colors\r\n fonts: \"font\",\r\n spacing: \"p\",\r\n shadows: \"shadow\",\r\n }\r\n return map[group] ?? \"\"\r\n}\r\n\r\n// ─────────────────────────────────────────────────────────────────────────────\r\n// Standard Tailwind v4 tokens\r\n//\r\n// Pre-built token references for the default next-app globals.css setup.\r\n// These match what Tailwind v4's @theme inline generates.\r\n// ─────────────────────────────────────────────────────────────────────────────\r\n\r\n/**\r\n * Pre-built references for standard Tailwind v4 CSS variable tokens.\r\n * Works out of the box with next-app-standar-config globals.css.\r\n *\r\n * @example\r\n * import { v4Tokens } from \"tailwind-styled-v4\"\r\n *\r\n * const Page = tw.div`${v4Tokens.bg} ${v4Tokens.text}`\r\n * // → tw.div`bg-[var(--color-background)] text-[var(--color-foreground)]`\r\n */\r\nexport const v4Tokens = {\r\n /** bg-[var(--color-background)] */\r\n bg: twVar(\"bg\", \"color-background\"),\r\n /** text-[var(--color-foreground)] */\r\n text: twVar(\"text\", \"color-foreground\"),\r\n /** font-[var(--font-sans)] */\r\n fontSans: twVar(\"font\", \"font-sans\"),\r\n /** font-[var(--font-mono)] */\r\n fontMono: twVar(\"font\", \"font-mono\"),\r\n} as const\r\n"]}
|
|
1
|
+
{"version":3,"sources":["../packages/domain/core/src/containerQuery.ts","../packages/domain/core/src/merge.ts","../packages/domain/core/src/stateEngine.ts","../packages/domain/core/src/createComponent.ts","../packages/domain/core/src/cv.ts","../packages/domain/core/src/cx.ts","../packages/domain/theme/src/liveTokenEngine.ts","../packages/domain/core/src/registry.ts","../packages/domain/core/src/styled.ts","../packages/domain/core/src/styledSystem.ts","../packages/domain/core/src/twProxy.ts","../packages/domain/core/src/twTheme.ts"],"names":["twMerge","twMergeOriginal","React","merged","extended","baseComponent","component","result","setToken","setTokens","applyTokenSet","cv"],"mappings":"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","file":"index.js","sourcesContent":["/**\r\n * tailwind-styled-v4 — Container Query Engine\r\n *\r\n * Generates @container rules from a simple breakpoint config.\r\n *\r\n * Usage:\r\n * const Card = tw.div({\r\n * base: \"p-4\",\r\n * container: {\r\n * sm: \"flex-col\", // @container (min-width: 320px)\r\n * md: \"flex-row\", // @container (min-width: 640px)\r\n * lg: \"grid-cols-3\", // @container (min-width: 1024px)\r\n * },\r\n * containerName: \"card\",\r\n * })\r\n *\r\n * // Wrap with container context:\r\n * const CardWrapper = tw.div`@container`\r\n *\r\n * Named containers:\r\n * const SidebarCard = tw.div({\r\n * base: \"p-2\",\r\n * container: { lg: \"text-sm\" },\r\n * containerName: \"sidebar\",\r\n * })\r\n * // Generates: @container sidebar (min-width: 1024px) { ... }\r\n */\r\n\r\nimport type { ContainerConfig } from \"./types\"\r\n\r\n// ─────────────────────────────────────────────────────────────────────────────\r\n// Breakpoint map — matches Tailwind defaults\r\n// ─────────────────────────────────────────────────────────────────────────────\r\n\r\nconst CONTAINER_BREAKPOINTS: Record<string, string> = {\r\n xs: \"240px\",\r\n sm: \"320px\",\r\n md: \"640px\",\r\n lg: \"1024px\",\r\n xl: \"1280px\",\r\n \"2xl\": \"1536px\",\r\n}\r\n\r\n// ─────────────────────────────────────────────────────────────────────────────\r\n// Registry\r\n// ─────────────────────────────────────────────────────────────────────────────\r\n\r\nexport interface ContainerEntry {\r\n id: string\r\n tag: string\r\n containerName?: string\r\n breakpoints: Array<{ minWidth: string; classes: string }>\r\n cssInjected: boolean\r\n}\r\n\r\nconst containerRegistry = new Map<string, ContainerEntry>()\r\n\r\ndeclare global {\r\n interface Window {\r\n __TW_CONTAINER_REGISTRY__?: typeof containerRegistry\r\n }\r\n}\r\n\r\nif (typeof window !== \"undefined\") {\r\n window.__TW_CONTAINER_REGISTRY__ = containerRegistry\r\n}\r\n\r\n// ─────────────────────────────────────────────────────────────────────────────\r\n// Hash\r\n// ─────────────────────────────────────────────────────────────────────────────\r\n\r\nfunction hashContainer(tag: string, container: ContainerConfig, name?: string): string {\r\n const key = tag + (name ?? \"\") + JSON.stringify(Object.entries(container).sort())\r\n const hash = key.split(\"\").reduce((h, char) => ((h << 5) + h) ^ char.charCodeAt(0), 5381)\r\n return `tw-cq-${Math.abs(hash).toString(36).slice(0, 6)}`\r\n}\r\n\r\n// ─────────────────────────────────────────────────────────────────────────────\r\n// CSS generator\r\n// ─────────────────────────────────────────────────────────────────────────────\r\n\r\n/** Minimal Tailwind → CSS for container query contexts */\r\nconst LAYOUT_MAP: Record<string, string> = {\r\n \"flex-col\": \"flex-direction:column\",\r\n \"flex-row\": \"flex-direction:row\",\r\n \"flex-wrap\": \"flex-wrap:wrap\",\r\n \"flex-nowrap\": \"flex-wrap:nowrap\",\r\n \"flex-1\": \"flex:1 1 0%\",\r\n hidden: \"display:none\",\r\n block: \"display:block\",\r\n flex: \"display:flex\",\r\n grid: \"display:grid\",\r\n \"grid-cols-1\": \"grid-template-columns:repeat(1,minmax(0,1fr))\",\r\n \"grid-cols-2\": \"grid-template-columns:repeat(2,minmax(0,1fr))\",\r\n \"grid-cols-3\": \"grid-template-columns:repeat(3,minmax(0,1fr))\",\r\n \"grid-cols-4\": \"grid-template-columns:repeat(4,minmax(0,1fr))\",\r\n \"grid-cols-6\": \"grid-template-columns:repeat(6,minmax(0,1fr))\",\r\n \"grid-cols-12\": \"grid-template-columns:repeat(12,minmax(0,1fr))\",\r\n \"text-sm\": \"font-size:0.875rem;line-height:1.25rem\",\r\n \"text-base\": \"font-size:1rem;line-height:1.5rem\",\r\n \"text-lg\": \"font-size:1.125rem;line-height:1.75rem\",\r\n \"text-xl\": \"font-size:1.25rem;line-height:1.75rem\",\r\n \"text-2xl\": \"font-size:1.5rem;line-height:2rem\",\r\n \"text-xs\": \"font-size:0.75rem;line-height:1rem\",\r\n \"p-2\": \"padding:0.5rem\",\r\n \"p-4\": \"padding:1rem\",\r\n \"p-6\": \"padding:1.5rem\",\r\n \"p-8\": \"padding:2rem\",\r\n \"px-2\": \"padding-left:0.5rem;padding-right:0.5rem\",\r\n \"px-4\": \"padding-left:1rem;padding-right:1rem\",\r\n \"px-6\": \"padding-left:1.5rem;padding-right:1.5rem\",\r\n \"py-2\": \"padding-top:0.5rem;padding-bottom:0.5rem\",\r\n \"py-4\": \"padding-top:1rem;padding-bottom:1rem\",\r\n \"gap-2\": \"gap:0.5rem\",\r\n \"gap-4\": \"gap:1rem\",\r\n \"gap-6\": \"gap:1.5rem\",\r\n \"gap-8\": \"gap:2rem\",\r\n \"w-full\": \"width:100%\",\r\n \"w-1/2\": \"width:50%\",\r\n \"w-1/3\": \"width:33.333333%\",\r\n \"w-2/3\": \"width:66.666667%\",\r\n \"max-w-sm\": \"max-width:24rem\",\r\n \"max-w-md\": \"max-width:28rem\",\r\n \"max-w-lg\": \"max-width:32rem\",\r\n \"max-w-xl\": \"max-width:36rem\",\r\n \"items-center\": \"align-items:center\",\r\n \"items-start\": \"align-items:flex-start\",\r\n \"items-end\": \"align-items:flex-end\",\r\n \"justify-center\": \"justify-content:center\",\r\n \"justify-between\": \"justify-content:space-between\",\r\n \"justify-start\": \"justify-content:flex-start\",\r\n \"justify-end\": \"justify-content:flex-end\",\r\n}\r\n\r\nfunction layoutClassesToCss(classes: string): string {\r\n const decls: string[] = []\r\n for (const cls of classes.trim().split(/\\s+/)) {\r\n if (LAYOUT_MAP[cls]) decls.push(LAYOUT_MAP[cls])\r\n else if (cls.startsWith(\"w-[\")) {\r\n const val = cls.match(/\\[(.+)\\]/)?.[1]\r\n if (val) decls.push(`width:${val}`)\r\n } else if (cls.startsWith(\"max-w-[\")) {\r\n const val = cls.match(/\\[(.+)\\]/)?.[1]\r\n if (val) decls.push(`max-width:${val}`)\r\n }\r\n }\r\n return decls.join(\";\")\r\n}\r\n\r\nfunction buildContainerRules(\r\n id: string,\r\n container: ContainerConfig,\r\n containerName?: string\r\n): string {\r\n const rules = Object.entries(container)\r\n .map(([key, value]) => {\r\n const minWidth =\r\n typeof value === \"string\"\r\n ? (CONTAINER_BREAKPOINTS[key] ?? key)\r\n : (value.minWidth ?? CONTAINER_BREAKPOINTS[key] ?? key)\r\n const classes = typeof value === \"string\" ? value : value.classes\r\n\r\n const css = layoutClassesToCss(classes)\r\n if (!css) return null\r\n\r\n const query = containerName\r\n ? `@container ${containerName} (min-width: ${minWidth})`\r\n : `@container (min-width: ${minWidth})`\r\n\r\n return `${query}{.${id}{${css}}}`\r\n })\r\n .filter(Boolean) as string[]\r\n\r\n return rules.join(\"\\n\")\r\n}\r\n\r\n// ─────────────────────────────────────────────────────────────────────────────\r\n// Style injection\r\n// ─────────────────────────────────────────────────────────────────────────────\r\n\r\nfunction injectContainerStyles(\r\n id: string,\r\n container: ContainerConfig,\r\n containerName?: string\r\n): void {\r\n if (typeof document === \"undefined\") return\r\n const styleId = `tw-cq-${id}`\r\n if (document.getElementById(styleId)) return\r\n\r\n const css = buildContainerRules(id, container, containerName)\r\n if (!css) return\r\n\r\n // Try batched injector first (available when runtime-css is installed)\r\n try {\r\n const { batchedInject } = require(\"@tailwind-styled/runtime-css/batched\") as {\r\n batchedInject: (css: string) => void\r\n }\r\n for (const rule of css.split(\"\\n\").filter(Boolean)) batchedInject(rule)\r\n return\r\n } catch {\r\n // Fallback: per-element style tag\r\n }\r\n\r\n const style = document.createElement(\"style\")\r\n style.id = styleId\r\n style.setAttribute(\"data-tw-container\", id)\r\n style.textContent = css\r\n document.head.appendChild(style)\r\n}\r\n\r\n// ─────────────────────────────────────────────────────────────────────────────\r\n// Public API\r\n// ─────────────────────────────────────────────────────────────────────────────\r\n\r\nexport interface ContainerQueryResult {\r\n containerClass: string\r\n hasContainer: true\r\n}\r\n\r\nexport function processContainer(\r\n tag: string,\r\n container: ContainerConfig,\r\n containerName?: string\r\n): ContainerQueryResult {\r\n const id = hashContainer(tag, container, containerName)\r\n\r\n if (!containerRegistry.has(id)) {\r\n const breakpoints = Object.entries(container).map(([key, value]) => ({\r\n minWidth: CONTAINER_BREAKPOINTS[key] ?? key,\r\n classes: typeof value === \"string\" ? value : value.classes,\r\n }))\r\n containerRegistry.set(id, {\r\n id,\r\n tag,\r\n containerName,\r\n breakpoints,\r\n cssInjected: false,\r\n })\r\n }\r\n\r\n injectContainerStyles(id, container, containerName)\r\n containerRegistry.get(id)!.cssInjected = true\r\n\r\n return { containerClass: id, hasContainer: true }\r\n}\r\n\r\nexport function generateContainerCss(\r\n tag: string,\r\n container: ContainerConfig,\r\n containerName?: string\r\n): string {\r\n const id = hashContainer(tag, container, containerName)\r\n return buildContainerRules(id, container, containerName)\r\n}\r\n\r\nexport function getContainerRegistry(): Map<string, ContainerEntry> {\r\n return containerRegistry\r\n}\r\n","import { twMerge as twMergeOriginal } from \"tailwind-merge\"\r\n\r\nimport type { ThemeConfig } from \"./themeReader\"\r\n\r\nexport interface MergeOptions {\r\n prefix?: string\r\n separator?: string\r\n theme?: ThemeConfig\r\n}\r\n\r\nfunction normalizeClassInput(classLists: Array<string | undefined | null | false>): string[] {\r\n return classLists\r\n .filter(Boolean)\r\n .map((v) => String(v).trim())\r\n .filter((v) => v.length > 0)\r\n}\r\n\r\nexport function createTwMerge(_options: MergeOptions = {}) {\r\n return function twMerge(...classLists: Array<string | undefined | null | false>): string {\r\n const clean = normalizeClassInput(classLists)\r\n return twMergeOriginal(clean.join(\" \"))\r\n }\r\n}\r\n\r\nexport const twMerge = createTwMerge()\r\n\r\nexport function mergeWithRules(\r\n rules: Record<string, (classes: string[]) => string>,\r\n ...classLists: string[]\r\n): string {\r\n const base = twMerge(...classLists)\r\n const classes = Object.values(rules).reduce(\r\n (acc, rule) => twMerge(rule(acc)).split(/\\s+/).filter(Boolean),\r\n base.split(/\\s+/).filter(Boolean)\r\n )\r\n\r\n return classes.join(\" \")\r\n}\r\n","/**\r\n * tailwind-styled-v4 — Reactive State Engine\r\n *\r\n * Zero-JS CSS state management via data attributes.\r\n * No React re-render needed for style changes.\r\n *\r\n * How it works:\r\n * 1. tw.button({ state: { active: \"bg-blue-500\", loading: \"opacity-70\" } })\r\n * 2. State engine generates a unique class + injects CSS:\r\n * .tw-s-abc123[data-active=\"true\"] { @apply bg-blue-500; }\r\n * .tw-s-abc123[data-loading=\"true\"] { @apply opacity-70; }\r\n * 3. Component renders with the state class\r\n * 4. User sets data-active=\"true\" directly — no state needed\r\n *\r\n * Devtools integration:\r\n * All components register to __TW_STATE_REGISTRY__ for devtools inspection.\r\n */\r\n\r\nimport type { StateConfig } from \"./types\"\r\n\r\n// ─────────────────────────────────────────────────────────────────────────────\r\n// Registry — tracks all state-enabled components\r\n// ─────────────────────────────────────────────────────────────────────────────\r\n\r\nexport interface StateComponentEntry {\r\n id: string\r\n tag: string\r\n states: string[]\r\n cssInjected: boolean\r\n}\r\n\r\nconst stateRegistry = new Map<string, StateComponentEntry>()\r\n\r\ndeclare global {\r\n interface Window {\r\n __TW_STATE_REGISTRY__?: typeof stateRegistry\r\n }\r\n}\r\n\r\nif (typeof window !== \"undefined\") {\r\n window.__TW_STATE_REGISTRY__ = stateRegistry\r\n}\r\n\r\n// ─────────────────────────────────────────────────────────────────────────────\r\n// Deterministic hash — same config → same class (no re-injection on HMR)\r\n// ─────────────────────────────────────────────────────────────────────────────\r\n\r\nfunction hashState(tag: string, state: StateConfig): string {\r\n const key = tag + JSON.stringify(Object.entries(state).sort())\r\n const hash = key.split(\"\").reduce((h, char) => ((h << 5) + h) ^ char.charCodeAt(0), 5381)\r\n return `tw-s-${Math.abs(hash).toString(36).slice(0, 6)}`\r\n}\r\n\r\n// ─────────────────────────────────────────────────────────────────────────────\r\n// CSS generator — Tailwind class → plain CSS via CSSOM\r\n// ─────────────────────────────────────────────────────────────────────────────\r\n\r\n/**\r\n * Map Tailwind utility classes to inline CSS declarations.\r\n * Subset covers all common state-driven utilities.\r\n * For full coverage the compiler strips this and uses the real Tailwind engine.\r\n */\r\nconst TW_MAP: Record<string, string> = {\r\n // Display\r\n hidden: \"display:none\",\r\n block: \"display:block\",\r\n flex: \"display:flex\",\r\n inline: \"display:inline\",\r\n \"inline-flex\": \"display:inline-flex\",\r\n grid: \"display:grid\",\r\n // Opacity\r\n \"opacity-0\": \"opacity:0\",\r\n \"opacity-5\": \"opacity:0.05\",\r\n \"opacity-10\": \"opacity:0.1\",\r\n \"opacity-20\": \"opacity:0.2\",\r\n \"opacity-25\": \"opacity:0.25\",\r\n \"opacity-30\": \"opacity:0.3\",\r\n \"opacity-40\": \"opacity:0.4\",\r\n \"opacity-50\": \"opacity:0.5\",\r\n \"opacity-60\": \"opacity:0.6\",\r\n \"opacity-70\": \"opacity:0.7\",\r\n \"opacity-75\": \"opacity:0.75\",\r\n \"opacity-80\": \"opacity:0.8\",\r\n \"opacity-90\": \"opacity:0.9\",\r\n \"opacity-95\": \"opacity:0.95\",\r\n \"opacity-100\": \"opacity:1\",\r\n // Cursor\r\n \"cursor-pointer\": \"cursor:pointer\",\r\n \"cursor-not-allowed\": \"cursor:not-allowed\",\r\n \"cursor-default\": \"cursor:default\",\r\n \"cursor-wait\": \"cursor:wait\",\r\n \"cursor-move\": \"cursor:move\",\r\n \"cursor-grab\": \"cursor:grab\",\r\n \"cursor-grabbing\": \"cursor:grabbing\",\r\n // Pointer events\r\n \"pointer-events-none\": \"pointer-events:none\",\r\n \"pointer-events-auto\": \"pointer-events:auto\",\r\n // Scale\r\n \"scale-90\": \"transform:scale(0.9)\",\r\n \"scale-95\": \"transform:scale(0.95)\",\r\n \"scale-100\": \"transform:scale(1)\",\r\n \"scale-105\": \"transform:scale(1.05)\",\r\n \"scale-110\": \"transform:scale(1.1)\",\r\n // Translate\r\n \"translate-x-0\": \"transform:translateX(0)\",\r\n \"translate-y-0\": \"transform:translateY(0)\",\r\n \"-translate-x-1\": \"transform:translateX(-0.25rem)\",\r\n \"-translate-y-1\": \"transform:translateY(-0.25rem)\",\r\n \"translate-x-1\": \"transform:translateX(0.25rem)\",\r\n \"translate-y-1\": \"transform:translateY(0.25rem)\",\r\n // Ring\r\n ring: \"box-shadow:0 0 0 3px rgba(59,130,246,0.5)\",\r\n \"ring-2\": \"box-shadow:0 0 0 2px rgba(59,130,246,0.5)\",\r\n \"ring-4\": \"box-shadow:0 0 0 4px rgba(59,130,246,0.5)\",\r\n \"ring-inset\": \"box-shadow:inset 0 0 0 3px rgba(59,130,246,0.5)\",\r\n // Border\r\n border: \"border-width:1px\",\r\n \"border-2\": \"border-width:2px\",\r\n \"border-transparent\": \"border-color:transparent\",\r\n // Outline\r\n \"outline-none\": \"outline:2px solid transparent;outline-offset:2px\",\r\n outline: \"outline:2px solid currentColor\",\r\n // Overflow\r\n \"overflow-hidden\": \"overflow:hidden\",\r\n \"overflow-auto\": \"overflow:auto\",\r\n \"overflow-scroll\": \"overflow:scroll\",\r\n // Text decoration\r\n underline: \"text-decoration-line:underline\",\r\n \"no-underline\": \"text-decoration-line:none\",\r\n \"line-through\": \"text-decoration-line:line-through\",\r\n // Font weight\r\n \"font-bold\": \"font-weight:700\",\r\n \"font-semibold\": \"font-weight:600\",\r\n \"font-medium\": \"font-weight:500\",\r\n \"font-normal\": \"font-weight:400\",\r\n // Background colors (common)\r\n \"bg-transparent\": \"background-color:transparent\",\r\n \"bg-white\": \"background-color:#fff\",\r\n \"bg-black\": \"background-color:#000\",\r\n \"bg-blue-500\": \"background-color:rgb(59,130,246)\",\r\n \"bg-blue-600\": \"background-color:rgb(37,99,235)\",\r\n \"bg-red-500\": \"background-color:rgb(239,68,68)\",\r\n \"bg-green-500\": \"background-color:rgb(34,197,94)\",\r\n \"bg-yellow-500\": \"background-color:rgb(234,179,8)\",\r\n \"bg-zinc-900\": \"background-color:rgb(24,24,27)\",\r\n \"bg-zinc-800\": \"background-color:rgb(39,39,42)\",\r\n // Text colors\r\n \"text-white\": \"color:#fff\",\r\n \"text-black\": \"color:#000\",\r\n \"text-blue-500\": \"color:rgb(59,130,246)\",\r\n \"text-red-500\": \"color:rgb(239,68,68)\",\r\n \"text-zinc-400\": \"color:rgb(161,161,170)\",\r\n \"text-zinc-500\": \"color:rgb(113,113,122)\",\r\n}\r\n\r\nfunction twClassesToCss(classes: string): string {\r\n const decls: string[] = []\r\n for (const cls of classes.trim().split(/\\s+/)) {\r\n if (TW_MAP[cls]) decls.push(TW_MAP[cls])\r\n // Arbitrary values: bg-[#f00] color-[red]\r\n else if (cls.includes(\"[\") && cls.includes(\"]\")) {\r\n const val = cls.match(/\\[(.+)\\]/)?.[1]\r\n if (!val) continue\r\n if (cls.startsWith(\"bg-[\")) decls.push(`background-color:${val}`)\r\n else if (cls.startsWith(\"text-[\")) decls.push(`color:${val}`)\r\n else if (cls.startsWith(\"w-[\")) decls.push(`width:${val}`)\r\n else if (cls.startsWith(\"h-[\")) decls.push(`height:${val}`)\r\n else if (cls.startsWith(\"opacity-[\")) decls.push(`opacity:${val}`)\r\n }\r\n }\r\n return decls.join(\";\")\r\n}\r\n\r\n// ─────────────────────────────────────────────────────────────────────────────\r\n// Style injection — batched for performance (FIX CSS Rule Batching)\r\n// ─────────────────────────────────────────────────────────────────────────────\r\n\r\nfunction injectStateStyles(id: string, state: StateConfig): void {\r\n if (typeof document === \"undefined\") return\r\n\r\n const styleId = `tw-state-${id}`\r\n if (document.getElementById(styleId)) return // already injected\r\n\r\n const rules = Object.entries(state)\r\n .map(([stateName, classes]) => {\r\n const css = twClassesToCss(classes)\r\n return css ? `.${id}[data-${stateName}=\"true\"]{${css}}` : null\r\n })\r\n .filter(Boolean) as string[]\r\n\r\n if (rules.length === 0) return\r\n\r\n // Try batched injector first (available when runtime-css is installed)\r\n try {\r\n const { batchedInject } = require(\"@tailwind-styled/runtime-css/batched\") as {\r\n batchedInject: (css: string) => void\r\n }\r\n for (const rule of rules) batchedInject(rule)\r\n return\r\n } catch {\r\n // Fallback: per-element style tag (original behavior)\r\n }\r\n\r\n const style = document.createElement(\"style\")\r\n style.id = styleId\r\n style.setAttribute(\"data-tw-state\", id)\r\n style.textContent = rules.join(\"\\n\")\r\n document.head.appendChild(style)\r\n}\r\n\r\n// ─────────────────────────────────────────────────────────────────────────────\r\n// Public API\r\n// ─────────────────────────────────────────────────────────────────────────────\r\n\r\nexport interface StateEngineResult {\r\n /** CSS class to add to the component */\r\n stateClass: string\r\n /** Whether this component uses state (for SSR data attributes) */\r\n hasState: true\r\n /** List of state names (for devtools) */\r\n stateNames: string[]\r\n}\r\n\r\n/**\r\n * Process a StateConfig for a component.\r\n * Returns the state class and injects CSS (client-side only).\r\n */\r\nexport function processState(tag: string, state: StateConfig): StateEngineResult {\r\n const id = hashState(tag, state)\r\n const stateNames = Object.keys(state)\r\n\r\n // Register for devtools\r\n if (!stateRegistry.has(id)) {\r\n stateRegistry.set(id, {\r\n id,\r\n tag,\r\n states: stateNames,\r\n cssInjected: false,\r\n })\r\n }\r\n\r\n // Inject CSS (client only)\r\n injectStateStyles(id, state)\r\n\r\n // Mark as injected\r\n const entry = stateRegistry.get(id)!\r\n entry.cssInjected = true\r\n\r\n return { stateClass: id, hasState: true, stateNames }\r\n}\r\n\r\n/**\r\n * Generate SSR-safe CSS string for a state config.\r\n * Used by SSR to inject styles into <head>.\r\n */\r\nexport function generateStateCss(tag: string, state: StateConfig): string {\r\n const id = hashState(tag, state)\r\n\r\n const rules = Object.entries(state)\r\n .map(([stateName, classes]) => {\r\n const css = twClassesToCss(classes)\r\n return css ? `.${id}[data-${stateName}=\"true\"]{${css}}` : null\r\n })\r\n .filter(Boolean) as string[]\r\n\r\n return rules.join(\"\\n\")\r\n}\r\n\r\n/**\r\n * Get the state registry (for devtools).\r\n */\r\nexport function getStateRegistry(): Map<string, StateComponentEntry> {\r\n return stateRegistry\r\n}\r\n","// AnimateOptions loaded dynamically to avoid bundling @tailwind-styled/animate\r\ntype AnimateOptions = { from: string; to: string; duration?: number; easing?: string; delay?: number; fill?: string; iterations?: number | \"infinite\"; direction?: string; name?: string }\r\nimport React from \"react\"\r\n\r\nimport { processContainer } from \"./containerQuery\"\r\nimport { twMerge } from \"./merge\"\r\nimport { processState } from \"./stateEngine\"\r\nimport type { ComponentConfig, TwStyledComponent } from \"./types\"\r\n\r\nconst ALWAYS_BLOCKED = new Set([\"base\", \"_ref\", \"state\", \"container\", \"containerName\"])\r\n\r\n// ── Sub-component auto-registration ──────────────────────────────────────────\r\n\r\n/**\r\n * Extract sub-component blocks dari template → Map<name, classes>\r\n * Mendukung dua syntax:\r\n * - Bracket: `[name] { classes }`\r\n * - No-bracket: `name { classes }`\r\n */\r\nfunction parseSubComponentBlocks(template: string): Map<string, string> {\r\n const map = new Map<string, string>()\r\n // Group 1 = bracket name, Group 2 = no-bracket name, Group 3 = classes\r\n const re = /(?:\\[([a-zA-Z][a-zA-Z0-9_-]*)\\]|([a-zA-Z][a-zA-Z0-9_-]*))\\s*\\{([^}]*)\\}/g\r\n let m: RegExpExecArray | null\r\n while ((m = re.exec(template)) !== null) {\r\n const name = (m[1] ?? m[2])!\r\n const classes = m[3]!.trim().replace(/\\s+/g, \" \")\r\n if (classes) map.set(name, classes)\r\n }\r\n return map\r\n}\r\n\r\n/**\r\n * Strip semua sub-component blocks (bracket dan no-bracket) dari template string\r\n * sehingga twMerge hanya menerima base classes (outer scope).\r\n */\r\nfunction extractBaseClasses(template: string): string {\r\n return template\r\n .replace(/(?:\\[[a-zA-Z][a-zA-Z0-9_-]*\\]|[a-zA-Z][a-zA-Z0-9_-]*)\\s*\\{[^}]*\\}/g, \"\")\r\n .replace(/\\s+/g, \" \")\r\n .trim()\r\n}\r\n\r\n/**\r\n * Buat sub-component React FC dengan classes-nya sendiri.\r\n * className prop di-merge ke belakang agar bisa di-override dari luar.\r\n */\r\nfunction createSubComponentAccessor(\r\n parentDisplayName: string,\r\n name: string,\r\n classes: string\r\n): React.FC<{ children?: React.ReactNode; className?: string }> {\r\n const SubComponent: React.FC<{ children?: React.ReactNode; className?: string }> = ({\r\n children,\r\n className,\r\n }) =>\r\n React.createElement(\r\n \"span\",\r\n { className: className ? `${classes} ${className}` : classes },\r\n children\r\n )\r\n SubComponent.displayName = `${parentDisplayName}[${name}]`\r\n return SubComponent\r\n}\r\n\r\n/** Register semua sub-components ke component object.\r\n * Sumber: (1) config.sub object — prioritas utama, TypeScript infer keys-nya.\r\n * (2) parseSubComponentBlocks dari template string — fallback untuk template literal syntax.\r\n */\r\nfunction registerSubComponents<P extends object>(\r\n component: TwStyledComponent<P>,\r\n template: string,\r\n configSub?: Record<string, string>\r\n): void {\r\n const displayName = component.displayName ?? \"tw\"\r\n const map = component as unknown as Record<string, unknown>\r\n\r\n // Priority 1: config.sub object — explicit, fully typed\r\n if (configSub) {\r\n for (const [name, classes] of Object.entries(configSub)) {\r\n map[name] = createSubComponentAccessor(displayName, name, classes.trim().replace(/\\s+/g, \" \"))\r\n }\r\n }\r\n\r\n // Priority 2: template block parsing — untuk template literal syntax\r\n const blocks = parseSubComponentBlocks(template)\r\n for (const [name, classes] of blocks) {\r\n if (!(name in map)) {\r\n map[name] = createSubComponentAccessor(displayName, name, classes)\r\n }\r\n }\r\n}\r\n\r\ntype RuntimeProps = Record<string, unknown> & { className?: string }\r\n\r\nfunction normalizeClassName(value: unknown): string | undefined {\r\n return typeof value === \"string\" ? value : undefined\r\n}\r\n\r\nfunction makeFilterProps(variantKeys: Set<string>) {\r\n return function filterProps(props: Record<string, unknown>): Record<string, unknown> {\r\n const out: Record<string, unknown> = {}\r\n for (const key in props) {\r\n if (variantKeys.has(key)) continue\r\n if (key.startsWith(\"$\")) continue\r\n if (ALWAYS_BLOCKED.has(key)) continue\r\n out[key] = props[key]\r\n }\r\n return out\r\n }\r\n}\r\n\r\nfunction resolveVariants(\r\n variants: Record<string, Record<string, string>>,\r\n props: Record<string, unknown>,\r\n defaults: Record<string, string>\r\n): string {\r\n const classes: string[] = []\r\n for (const key in variants) {\r\n const value = props[key] ?? defaults[key]\r\n if (value !== undefined && variants[key][String(value)]) {\r\n classes.push(variants[key][String(value)])\r\n }\r\n }\r\n return classes.join(\" \")\r\n}\r\n\r\nfunction resolveCompound(\r\n compounds: ReadonlyArray<{ readonly class: string; readonly [key: string]: unknown }>,\r\n props: Record<string, unknown>\r\n): string {\r\n const classes: string[] = []\r\n for (const compound of compounds) {\r\n const { class: compoundClass, ...conditions } = compound as {\r\n class: string\r\n [key: string]: unknown\r\n }\r\n const matches = Object.entries(conditions).every(([key, value]) => props[key] === value)\r\n if (matches) {\r\n classes.push(compoundClass)\r\n }\r\n }\r\n return classes.join(\" \")\r\n}\r\n\r\n/** Carry over subcomponent keys from source to target (exclude internal methods) */\r\nfunction carryOverSubComponents<P extends object>(\r\n target: TwStyledComponent<P>,\r\n source: TwStyledComponent<P>\r\n): void {\r\n const INTERNAL_KEYS = new Set([\"extend\", \"withVariants\", \"animate\", \"withSub\", \"displayName\"])\r\n for (const key of Object.keys(source)) {\r\n if (!INTERNAL_KEYS.has(key)) {\r\n ;(target as unknown as Record<string, unknown>)[key] = (source as unknown as Record<string, unknown>)[key]\r\n }\r\n }\r\n}\r\n\r\nfunction attachExtend<P extends object>(\r\n component: TwStyledComponent<P>,\r\n originalTag: React.ElementType,\r\n base: string,\r\n config: string | ComponentConfig\r\n): TwStyledComponent<P> {\r\n /**\r\n * Extend component dengan extra classes (template literal).\r\n *\r\n * @example\r\n * const PrimaryBtn = Button.extend`bg-blue-500 text-white`\r\n */\r\n function extendWithClasses(strings: TemplateStringsArray): TwStyledComponent<P>\r\n /**\r\n * Extend component dengan extra classes + variant overrides (object).\r\n * Ini menyelesaikan gap desain yang disebutkan di CRITIQUE-20 #2.\r\n *\r\n * @example\r\n * // Extend classes DAN tambah variant sekaligus\r\n * const BigDangerBtn = Button.extend({\r\n * classes: \"text-lg px-8\",\r\n * variants: { loading: { true: \"opacity-50\" } },\r\n * defaultVariants: { loading: \"false\" }\r\n * })\r\n */\r\n function extendWithClasses(extendConfig: {\r\n classes?: string\r\n variants?: ComponentConfig[\"variants\"]\r\n defaultVariants?: ComponentConfig[\"defaultVariants\"]\r\n compoundVariants?: ComponentConfig[\"compoundVariants\"]\r\n }): TwStyledComponent<P>\r\n function extendWithClasses(\r\n stringsOrConfig: TemplateStringsArray | {\r\n classes?: string\r\n variants?: ComponentConfig[\"variants\"]\r\n defaultVariants?: ComponentConfig[\"defaultVariants\"]\r\n compoundVariants?: ComponentConfig[\"compoundVariants\"]\r\n }\r\n ): TwStyledComponent<P> {\r\n // Template literal path\r\n if (Array.isArray(stringsOrConfig) && \"raw\" in stringsOrConfig) {\r\n const rawExtra = (stringsOrConfig as TemplateStringsArray).raw.join(\"\").trim().replace(/\\s+/g, \" \")\r\n // Strip sub-blocks from both sides before merging base classes\r\n const merged = twMerge(extractBaseClasses(base), extractBaseClasses(rawExtra))\r\n const extended = createComponent<P>(\r\n originalTag,\r\n typeof config === \"string\" ? merged : { ...config, base: merged }\r\n )\r\n // Carry over parent sub-components first, then apply overrides from extend template\r\n carryOverSubComponents(extended, component)\r\n const extendSubBlocks = parseSubComponentBlocks(rawExtra)\r\n if (extendSubBlocks.size > 0) {\r\n const extComp = extended as unknown as Record<string, unknown>\r\n const displayName = extended.displayName ?? \"tw\"\r\n for (const [subName, subClasses] of extendSubBlocks) {\r\n extComp[subName] = createSubComponentAccessor(displayName, subName, subClasses)\r\n }\r\n }\r\n return extended\r\n }\r\n\r\n // Object config path — support extend + withVariants in one call\r\n const extCfg = stringsOrConfig as {\r\n classes?: string\r\n variants?: ComponentConfig[\"variants\"]\r\n defaultVariants?: ComponentConfig[\"defaultVariants\"]\r\n compoundVariants?: ComponentConfig[\"compoundVariants\"]\r\n }\r\n const extraClasses = extCfg.classes ?? \"\"\r\n const merged = twMerge(extractBaseClasses(base), extraClasses)\r\n const existing = typeof config === \"object\" ? config : {}\r\n const extended = createComponent<P>(originalTag, {\r\n ...existing,\r\n base: merged,\r\n variants: { ...(existing.variants ?? {}), ...(extCfg.variants ?? {}) },\r\n compoundVariants: [\r\n ...(existing.compoundVariants ?? []),\r\n ...(extCfg.compoundVariants ?? []),\r\n ],\r\n defaultVariants: {\r\n ...(existing.defaultVariants ?? {}),\r\n ...(extCfg.defaultVariants ?? {}),\r\n },\r\n })\r\n carryOverSubComponents(extended, component)\r\n return extended\r\n }\r\n\r\n component.extend = extendWithClasses as TwStyledComponent<P>[\"extend\"]\r\n\r\n component.withVariants = (newConfig: Partial<ComponentConfig>) => {\r\n const existing = typeof config === \"object\" ? config : {}\r\n return createComponent<P>(originalTag, {\r\n ...existing,\r\n base,\r\n variants: { ...(existing.variants ?? {}), ...(newConfig.variants ?? {}) },\r\n compoundVariants: [\r\n ...(existing.compoundVariants ?? []),\r\n ...(newConfig.compoundVariants ?? []),\r\n ],\r\n defaultVariants: {\r\n ...(existing.defaultVariants ?? {}),\r\n ...(newConfig.defaultVariants ?? {}),\r\n },\r\n })\r\n }\r\n\r\n // .animate() dipindah ke tailwind-styled-v4/animate agar tidak bundle @tailwind-styled/animate\r\n // ke dalam main browser bundle (animate butuh Rust native binding → Node.js only)\r\n component.animate = async (_opts: AnimateOptions) => {\r\n console.warn(\r\n \"[tailwind-styled-v4] .animate() tidak tersedia di main bundle.\\n\" +\r\n \"Gunakan: import { animate } from \\\"tailwind-styled-v4/animate\\\"\"\r\n )\r\n return component\r\n }\r\n\r\n // .withSub<\"icon\" | \"badge\">() — declare sub-component names untuk TypeScript\r\n // Runtime: no-op, hanya untuk type inference\r\n component.withSub = (() => component) as TwStyledComponent<P>[\"withSub\"]\r\n\r\n return component\r\n}\r\n\r\nexport function createComponent<P extends object = Record<string, unknown>>(\r\n tag: React.ElementType,\r\n config: string | ComponentConfig\r\n): TwStyledComponent<P> {\r\n const isStatic = typeof config === \"string\"\r\n const base = typeof config === \"string\" ? config : (config.base ?? \"\")\r\n const variants = typeof config === \"string\" ? {} : (config.variants ?? {})\r\n const compoundVariants = typeof config === \"string\" ? [] : (config.compoundVariants ?? [])\r\n const defaultVariants = typeof config === \"string\" ? {} : (config.defaultVariants ?? {})\r\n const stateConfig = typeof config === \"string\" ? undefined : config.state\r\n const containerConfig = typeof config === \"string\" ? undefined : config.container\r\n const containerName = typeof config === \"string\" ? undefined : config.containerName\r\n const configSub = typeof config === \"string\" ? undefined : config.sub\r\n\r\n const stateResult = stateConfig\r\n ? processState(typeof tag === \"string\" ? tag : \"component\", stateConfig)\r\n : null\r\n const containerResult = containerConfig\r\n ? processContainer(typeof tag === \"string\" ? tag : \"component\", containerConfig, containerName)\r\n : null\r\n\r\n const engineClasses = [stateResult?.stateClass, containerResult?.containerClass]\r\n .filter(Boolean)\r\n .join(\" \")\r\n\r\n const filterProps = makeFilterProps(new Set(Object.keys(variants)))\r\n const tagLabel =\r\n typeof tag === \"string\" ? tag : ((tag as { displayName?: string }).displayName ?? \"Component\")\r\n\r\n if (isStatic || Object.keys(variants).length === 0) {\r\n const baseComponent = React.forwardRef<unknown, RuntimeProps>((props, ref) => {\r\n const { className, ...rest } = props\r\n const runtimeClassName = normalizeClassName(className)\r\n return React.createElement(tag, {\r\n ref,\r\n ...filterProps(rest),\r\n className: twMerge(extractBaseClasses(base), engineClasses, runtimeClassName),\r\n })\r\n })\r\n\r\n const component = baseComponent as unknown as TwStyledComponent<P>\r\n component.displayName = `tw.${tagLabel}`\r\n const result = attachExtend<P>(component, tag, base, config)\r\n registerSubComponents(result, base, configSub)\r\n return wrapWithSubProxy(result, tagLabel)\r\n }\r\n\r\n const baseComponent = React.forwardRef<unknown, RuntimeProps>((props, ref) => {\r\n const { className, ...rest } = props\r\n const runtimeClassName = normalizeClassName(className)\r\n const variantClasses = resolveVariants(variants, props, defaultVariants)\r\n const compoundClasses = resolveCompound(compoundVariants, props)\r\n\r\n return React.createElement(tag, {\r\n ref,\r\n ...filterProps(rest),\r\n className: twMerge(extractBaseClasses(base), variantClasses, compoundClasses, engineClasses, runtimeClassName),\r\n })\r\n })\r\n\r\n const component = baseComponent as unknown as TwStyledComponent<P>\r\n component.displayName = `tw.${tagLabel}`\r\n const result = attachExtend<P>(component, tag, base, config)\r\n registerSubComponents(result, base, configSub)\r\n return wrapWithSubProxy(result, tagLabel)\r\n}\r\n\r\n// ── Sub-component fallback proxy ──────────────────────────────────────────────\r\n/**\r\n * Wrap component dengan Proxy sehingga akses ke sub-component yang tidak\r\n * terdefinisi (misal Button.footer) tidak mengembalikan undefined dan crash,\r\n * tapi fallback ke <span> passthrough yang render children-nya saja.\r\n */\r\nconst SKIP_PROXY_KEYS = new Set([\r\n \"extend\", \"withVariants\", \"animate\", \"withSub\",\r\n \"displayName\", \"$$typeof\", \"render\", \"prototype\",\r\n \"__esModule\", \"then\",\r\n])\r\n\r\nfunction wrapWithSubProxy<P extends object>(\r\n component: TwStyledComponent<P>,\r\n tagLabel: string\r\n): TwStyledComponent<P> {\r\n return new Proxy(component, {\r\n get(target, prop: string | symbol) {\r\n const value = (target as unknown as Record<string | symbol, unknown>)[prop]\r\n // Jika sudah ada (sub-component terdefinisi, method, dll) → pakai langsung\r\n if (value !== undefined) return value\r\n // Skip known internal / React symbols\r\n if (typeof prop === \"symbol\") return value\r\n if (SKIP_PROXY_KEYS.has(prop as string)) return value\r\n // Fallback: buat passthrough <span> untuk sub-component yang tidak terdefinisi\r\n const Fallback: React.FC<{ children?: React.ReactNode; className?: string }> = ({\r\n children,\r\n className,\r\n }) => React.createElement(\"span\", { className }, children)\r\n Fallback.displayName = `tw.${tagLabel}.${prop as string}(fallback)`\r\n return Fallback\r\n },\r\n })\r\n}","/**\r\n * tailwind-styled-v4 — cv()\r\n *\r\n * Runtime: pure JS, browser-safe, zero fs/native.\r\n *\r\n * Dua mode:\r\n * 1. GENERATED (optimal) — import dari variants.generated.ts hasil `npx tw compile-variants`\r\n * → O(1) lookup, static, zero runtime computation\r\n * 2. RUNTIME (fallback) — compute on-the-fly, pure JS\r\n * → Tetap browser-safe, tidak ada native binding\r\n */\r\n\r\nimport { twMerge } from \"tailwind-merge\"\r\nimport type { ComponentConfig, CvFn, InferVariantProps } from \"./types\"\r\n\r\n// Registry untuk generated lookup tables\r\n// Diisi oleh cv.register() dari generated file\r\nconst __generatedRegistry: Record<string, Record<string, string>> = {}\r\n\r\n/**\r\n * Register pre-computed variant table dari generated file.\r\n * Dipanggil otomatis saat import variants.generated.ts\r\n */\r\nexport function registerVariantTable(\r\n componentId: string,\r\n table: Record<string, string>\r\n): void {\r\n __generatedRegistry[componentId] = table\r\n}\r\n\r\nfunction lookupGenerated(\r\n componentId: string,\r\n props: Record<string, unknown>,\r\n defaultVariants?: Record<string, string>\r\n): string | undefined {\r\n const table = __generatedRegistry[componentId]\r\n if (!table) return undefined\r\n\r\n const merged = { ...defaultVariants, ...props }\r\n const key = Object.keys(merged)\r\n .sort()\r\n .filter((k) => k !== \"className\")\r\n .map((k) => `${k}:${String(merged[k])}`)\r\n .join(\"|\")\r\n\r\n return table[key]\r\n}\r\n\r\n// Pure JS fallback — compute on-the-fly\r\nfunction resolveVariantsJS<C extends ComponentConfig>(\r\n config: C,\r\n props: InferVariantProps<C> & { className?: string } & Readonly<Record<string, unknown>>\r\n): string {\r\n const { base = \"\", variants = {}, compoundVariants = [], defaultVariants = {} } = config\r\n const classes: string[] = []\r\n\r\n if (base) classes.push(...base.split(\" \").filter(Boolean))\r\n\r\n const resolved: Record<string, unknown> = { ...defaultVariants, ...props }\r\n\r\n for (const [key, variantMap] of Object.entries(variants)) {\r\n const value = resolved[key]\r\n if (value !== undefined && value !== null) {\r\n const variantClass = (variantMap as Record<string, string>)[String(value)]\r\n if (variantClass) classes.push(...variantClass.split(\" \").filter(Boolean))\r\n }\r\n }\r\n\r\n for (const compound of compoundVariants) {\r\n const { class: compoundClass, className: compoundClassName, ...conditions } = compound as Record<string, unknown>\r\n const matches = Object.entries(conditions).every(([key, val]) => resolved[key] === val)\r\n if (matches) {\r\n if (compoundClass) classes.push(...String(compoundClass).split(\" \").filter(Boolean))\r\n if (compoundClassName) classes.push(...String(compoundClassName).split(\" \").filter(Boolean))\r\n }\r\n }\r\n\r\n return [...new Set(classes)].join(\" \")\r\n}\r\n\r\nexport function cv<C extends ComponentConfig>(config: C, componentId?: string): CvFn<C> {\r\n if (process.env.NODE_ENV !== \"production\") {\r\n const { variants = {}, defaultVariants = {} } = config\r\n for (const dk of Object.keys(defaultVariants)) {\r\n if (!(dk in variants)) {\r\n console.warn(`[tailwind-styled] defaultVariants[\"${dk}\"] not in variants`)\r\n }\r\n }\r\n }\r\n\r\n return (\r\n props: InferVariantProps<C> & { className?: string } & Readonly<Record<string, unknown>> = {} as never\r\n ): string => {\r\n let result: string\r\n\r\n // Mode 1: generated lookup table (O(1), hasil compile-variants)\r\n if (componentId) {\r\n const generated = lookupGenerated(\r\n componentId,\r\n props as Record<string, unknown>,\r\n config.defaultVariants as Record<string, string>\r\n )\r\n result = generated ?? resolveVariantsJS(config, props)\r\n } else {\r\n // Mode 2: pure JS fallback\r\n result = resolveVariantsJS(config, props)\r\n }\r\n\r\n return props.className ? twMerge(result, props.className) : result\r\n }\r\n}\r\n\r\nexport interface VariantValidationError {\r\n type: \"unknown_key\" | \"unknown_value\" | \"missing_default\" | \"compound_condition_missing\"\r\n key: string\r\n value?: string\r\n message: string\r\n}\r\n\r\nexport interface VariantValidationResult {\r\n valid: boolean\r\n errors: VariantValidationError[]\r\n warnings: string[]\r\n}\r\n\r\nexport function validateVariantConfig(config: ComponentConfig): VariantValidationResult {\r\n const errors: VariantValidationError[] = []\r\n const warnings: string[] = []\r\n const { variants = {}, defaultVariants = {}, compoundVariants = [] } = config\r\n\r\n for (const [key, val] of Object.entries(defaultVariants)) {\r\n if (!(key in variants)) {\r\n errors.push({ type: \"unknown_key\", key, message: `defaultVariants[\"${key}\"] not in variants` })\r\n } else if (val && !((variants[key] ?? {})[val])) {\r\n errors.push({ type: \"unknown_value\", key, value: val, message: `invalid value \"${val}\"` })\r\n }\r\n }\r\n\r\n for (const [i, compound] of compoundVariants.entries()) {\r\n const { class: _cls, ...conditions } = compound\r\n for (const [key] of Object.entries(conditions)) {\r\n if (!(key in variants)) {\r\n errors.push({ type: \"unknown_key\", key, message: `compoundVariants[${i}]: \"${key}\" not in variants` })\r\n }\r\n }\r\n }\r\n\r\n return { valid: errors.length === 0, errors, warnings }\r\n}","/**\r\n * tailwind-styled-v4 v2 — cx / cn\r\n *\r\n * FIX #09: Rename for clarity — behavior was confusing with two near-identical utils.\r\n *\r\n * BEFORE:\r\n * cx() → simple join, no conflict resolution → cx(\"p-4\", \"p-8\") = \"p-4 p-8\" (WRONG)\r\n * cxm() → twMerge, correct — but obscure name\r\n *\r\n * AFTER:\r\n * cn() → simple join (for cases where you know there's no conflict)\r\n * cx() → twMerge-powered, conflict-aware (recommended for most use cases)\r\n * cxm() → kept as alias for cx() for backward compat\r\n */\r\n\r\nimport { twMerge } from \"tailwind-merge\"\r\n\r\ntype ClassValue = string | undefined | null | false | 0\r\n\r\n/**\r\n * cn — simple class name joiner (no conflict resolution).\r\n * Use when you know classes don't conflict.\r\n *\r\n * FIX #09: Previously named `cx`. Renamed to `cn` for clarity.\r\n *\r\n * @example cn(\"p-4\", isActive && \"opacity-100\") → \"p-4 opacity-100\"\r\n */\r\nexport function cn(...inputs: ClassValue[]): string {\r\n return inputs.filter(Boolean).join(\" \").replace(/\\s+/g, \" \").trim()\r\n}\r\n\r\n/**\r\n * cx — conflict-aware class merger using tailwind-merge.\r\n * Recommended for combining Tailwind classes where conflicts are possible.\r\n *\r\n * FIX #09: Previously named `cxm`. Renamed to `cx` as the primary utility.\r\n *\r\n * @example cx(\"p-4 p-8\") → \"p-8\" (conflict resolved, last wins)\r\n * @example cx(\"bg-red-500\", \"bg-blue-500\") → \"bg-blue-500\"\r\n */\r\nexport function cx(...inputs: ClassValue[]): string {\r\n return twMerge(...(inputs.filter(Boolean) as string[]))\r\n}\r\n\r\n/**\r\n * cxm — alias for cx(), kept for backward compatibility.\r\n * @deprecated Use cx() instead.\r\n */\r\nexport const cxm = cx\r\n","import React from \"react\"\r\n\r\nimport type { TokenMap } from '@tailwind-styled/shared'\r\nexport type { TokenMap }\r\n\r\nexport type TokenSubscriber = (tokens: TokenMap) => void\r\n\r\nexport interface LiveTokenSet {\r\n vars: Record<string, string>\r\n get(name: string): string | undefined\r\n set(name: string, value: string): void\r\n setAll(tokens: TokenMap): void\r\n snapshot(): TokenMap\r\n}\r\n\r\nexport interface LiveTokenEngineBridge {\r\n getToken(name: string): string | undefined\r\n getTokens(): TokenMap\r\n setToken(name: string, value: string): void\r\n setTokens(tokens: TokenMap): void\r\n applyTokenSet(tokens: TokenMap): void\r\n subscribeTokens(fn: TokenSubscriber): () => void\r\n subscribe?(fn: TokenSubscriber): () => void\r\n}\r\n\r\ninterface LiveTokenEngineRuntime {\r\n liveToken(tokens: TokenMap): LiveTokenSet\r\n getToken(name: string): string | undefined\r\n getTokens(): TokenMap\r\n setToken(name: string, value: string): void\r\n setTokens(tokens: TokenMap): void\r\n applyTokenSet(tokens: TokenMap): void\r\n generateTokenCssString(): string\r\n subscribe(fn: TokenSubscriber): () => void\r\n}\r\n\r\nconst TOKEN_ENGINE_KEY = \"__TW_TOKEN_ENGINE__\"\r\n\r\nexport function tokenVar(name: string): string {\r\n const normalized = name.replace(/[^a-zA-Z0-9-]/g, \"-\").toLowerCase()\r\n return `--tw-token-${normalized}`\r\n}\r\n\r\nexport function tokenRef(name: string): string {\r\n return `var(${tokenVar(name)})`\r\n}\r\n\r\nconst buildRootCss = (tokens: TokenMap): string => {\r\n const vars = Object.entries(tokens)\r\n .map(([name, value]) => ` ${tokenVar(name)}: ${value};`)\r\n .join(\"\\n\")\r\n return `:root {\\n${vars}\\n}`\r\n}\r\n\r\nconst createLiveTokenEngine = (): LiveTokenEngineRuntime => {\r\n const state = {\r\n currentTokens: {} as TokenMap,\r\n styleEl: null as HTMLStyleElement | null,\r\n }\r\n const subscribers = new Set<TokenSubscriber>()\r\n\r\n const syncStyleEl = (): void => {\r\n if (typeof document === \"undefined\") return\r\n\r\n if (!state.styleEl) {\r\n const styleEl = document.createElement(\"style\")\r\n styleEl.id = \"tw-live-tokens\"\r\n styleEl.setAttribute(\"data-tw-tokens\", \"true\")\r\n document.head.appendChild(styleEl)\r\n state.styleEl = styleEl\r\n }\r\n\r\n state.styleEl.textContent = buildRootCss(state.currentTokens)\r\n }\r\n\r\n const notifySubscribers = (): void => {\r\n const snapshot = { ...state.currentTokens }\r\n for (const subscriber of subscribers) {\r\n try {\r\n subscriber(snapshot)\r\n } catch {\r\n // Intentionally ignore subscriber errors.\r\n }\r\n }\r\n }\r\n\r\n const setToken = (name: string, value: string): void => {\r\n state.currentTokens = { ...state.currentTokens, [name]: value }\r\n if (typeof document !== \"undefined\") {\r\n document.documentElement.style.setProperty(tokenVar(name), value)\r\n }\r\n syncStyleEl()\r\n notifySubscribers()\r\n }\r\n\r\n const setTokens = (tokens: TokenMap): void => {\r\n state.currentTokens = { ...state.currentTokens, ...tokens }\r\n if (typeof document !== \"undefined\") {\r\n const root = document.documentElement\r\n for (const [name, value] of Object.entries(tokens)) {\r\n root.style.setProperty(tokenVar(name), value)\r\n }\r\n }\r\n syncStyleEl()\r\n notifySubscribers()\r\n }\r\n\r\n const applyTokenSet = (tokens: TokenMap): void => {\r\n if (typeof document !== \"undefined\") {\r\n const root = document.documentElement\r\n for (const name of Object.keys(state.currentTokens)) {\r\n if (!(name in tokens)) {\r\n root.style.removeProperty(tokenVar(name))\r\n }\r\n }\r\n for (const [name, value] of Object.entries(tokens)) {\r\n root.style.setProperty(tokenVar(name), value)\r\n }\r\n }\r\n\r\n state.currentTokens = { ...tokens }\r\n syncStyleEl()\r\n notifySubscribers()\r\n }\r\n\r\n return {\r\n liveToken(tokens: TokenMap): LiveTokenSet {\r\n setTokens(tokens)\r\n\r\n const vars: Record<string, string> = {}\r\n for (const name of Object.keys(tokens)) {\r\n vars[name] = tokenRef(name)\r\n }\r\n\r\n return {\r\n vars,\r\n get(name: string) {\r\n return state.currentTokens[name]\r\n },\r\n set(name: string, value: string) {\r\n setToken(name, value)\r\n },\r\n setAll(nextTokens: TokenMap) {\r\n setTokens(nextTokens)\r\n },\r\n snapshot() {\r\n return { ...state.currentTokens }\r\n },\r\n }\r\n },\r\n getToken(name: string): string | undefined {\r\n return state.currentTokens[name]\r\n },\r\n getTokens(): TokenMap {\r\n return { ...state.currentTokens }\r\n },\r\n setToken,\r\n setTokens,\r\n applyTokenSet,\r\n generateTokenCssString(): string {\r\n return buildRootCss(state.currentTokens)\r\n },\r\n subscribe(fn: TokenSubscriber): () => void {\r\n subscribers.add(fn)\r\n return () => {\r\n subscribers.delete(fn)\r\n }\r\n },\r\n }\r\n}\r\n\r\nconst engine = createLiveTokenEngine()\r\n\r\nexport function liveToken(tokens: TokenMap): LiveTokenSet {\r\n return engine.liveToken(tokens)\r\n}\r\n\r\nexport function setToken(name: string, value: string): void {\r\n engine.setToken(name, value)\r\n}\r\n\r\nexport function setTokens(tokens: TokenMap): void {\r\n engine.setTokens(tokens)\r\n}\r\n\r\nexport function applyTokenSet(tokens: TokenMap): void {\r\n engine.applyTokenSet(tokens)\r\n}\r\n\r\nexport function getToken(name: string): string | undefined {\r\n return engine.getToken(name)\r\n}\r\n\r\nexport function getTokens(): TokenMap {\r\n return engine.getTokens()\r\n}\r\n\r\nexport function subscribeTokens(fn: TokenSubscriber): () => void {\r\n return engine.subscribe(fn)\r\n}\r\n\r\nexport function generateTokenCssString(): string {\r\n return engine.generateTokenCssString()\r\n}\r\n\r\nexport function createUseTokens() {\r\n return function useTokens(): TokenMap {\r\n const [tokens, setTokensState] = React.useState<TokenMap>(engine.getTokens())\r\n\r\n React.useEffect(() => {\r\n setTokensState(engine.getTokens())\r\n return engine.subscribe((nextTokens) => setTokensState(nextTokens))\r\n }, [])\r\n\r\n return tokens\r\n }\r\n}\r\n\r\nexport const liveTokenEngine: LiveTokenEngineBridge = {\r\n getToken: engine.getToken,\r\n getTokens: engine.getTokens,\r\n setToken: engine.setToken,\r\n setTokens: engine.setTokens,\r\n applyTokenSet: engine.applyTokenSet,\r\n subscribeTokens: engine.subscribe,\r\n subscribe: engine.subscribe,\r\n}\r\n\r\ndeclare global {\r\n interface Window {\r\n __TW_TOKEN_ENGINE__?: LiveTokenEngineBridge\r\n }\r\n}\r\n\r\nconst globalTokenEngine = globalThis as typeof globalThis & {\r\n [TOKEN_ENGINE_KEY]?: LiveTokenEngineBridge\r\n}\r\n\r\nglobalTokenEngine[TOKEN_ENGINE_KEY] = liveTokenEngine\r\nif (typeof window !== \"undefined\") {\r\n window.__TW_TOKEN_ENGINE__ = liveTokenEngine\r\n}\r\n","import React from \"react\"\r\n\r\nexport interface SubComponentProps {\r\n children?: React.ReactNode\r\n className?: string\r\n}\r\n\r\nexport interface SubComponentEntry {\r\n name: string\r\n component: React.FC<SubComponentProps>\r\n defaultClasses?: string\r\n}\r\n\r\nconst subComponentRegistry = new Map<string, SubComponentEntry>()\r\n\r\nexport function registerSubComponent(entry: SubComponentEntry): void {\r\n subComponentRegistry.set(entry.name, entry)\r\n}\r\n\r\nexport function getSubComponent(name: string): SubComponentEntry | undefined {\r\n return subComponentRegistry.get(name)\r\n}\r\n\r\nexport function getAllSubComponents(): SubComponentEntry[] {\r\n return Array.from(subComponentRegistry.values())\r\n}\r\n\r\nexport function withSubComponents<T extends object>(\r\n Component: T,\r\n subComponentNames: string[]\r\n): T & Record<string, React.FC<SubComponentProps>> {\r\n const result = { ...Component } as Record<string, unknown>\r\n for (const name of subComponentNames) {\r\n const entry = getSubComponent(name)\r\n if (entry) result[name] = entry.component\r\n }\r\n return result as T & Record<string, React.FC<SubComponentProps>>\r\n}\r\n\r\nregisterSubComponent({\r\n name: \"icon\",\r\n component: ({ children, className }) => React.createElement(\"span\", { className }, children),\r\n defaultClasses: \"\",\r\n})\r\n\r\nregisterSubComponent({\r\n name: \"text\",\r\n component: ({ children, className }) => React.createElement(\"span\", { className }, children),\r\n defaultClasses: \"\",\r\n})\r\n\r\nregisterSubComponent({\r\n name: \"badge\",\r\n component: ({ children, className }) =>\r\n React.createElement(\r\n \"span\",\r\n {\r\n className: `ml-2 px-2 py-0.5 text-xs rounded-full bg-red-500 text-white ${className || \"\"}`,\r\n },\r\n children\r\n ),\r\n defaultClasses: \"ml-2 px-2 py-0.5 text-xs rounded-full bg-red-500 text-white\",\r\n})\r\n\r\nregisterSubComponent({\r\n name: \"header\",\r\n component: ({ children, className }) =>\r\n React.createElement(\"header\", { className: `font-bold text-lg ${className || \"\"}` }, children),\r\n defaultClasses: \"font-bold text-lg\",\r\n})\r\n\r\nregisterSubComponent({\r\n name: \"body\",\r\n component: ({ children, className }) =>\r\n React.createElement(\"div\", { className: `flex-1 ${className || \"\"}` }, children),\r\n defaultClasses: \"flex-1\",\r\n})\r\n\r\nregisterSubComponent({\r\n name: \"footer\",\r\n component: ({ children, className }) =>\r\n React.createElement(\"footer\", { className: `border-t pt-4 ${className || \"\"}` }, children),\r\n defaultClasses: \"border-t pt-4\",\r\n})\r\n\r\nregisterSubComponent({\r\n name: \"content\",\r\n component: ({ children, className }) => React.createElement(\"div\", { className }, children),\r\n defaultClasses: \"\",\r\n})\r\n\r\nregisterSubComponent({\r\n name: \"title\",\r\n component: ({ children, className }) =>\r\n React.createElement(\"div\", { className: `font-semibold ${className || \"\"}` }, children),\r\n defaultClasses: \"font-semibold\",\r\n})\r\n\r\nregisterSubComponent({\r\n name: \"message\",\r\n component: ({ children, className }) =>\r\n React.createElement(\"div\", { className: `text-sm ${className || \"\"}` }, children),\r\n defaultClasses: \"text-sm\",\r\n})\r\n\r\nregisterSubComponent({\r\n name: \"close\",\r\n component: ({ children, className }) =>\r\n React.createElement(\"span\", { className: `cursor-pointer ${className || \"\"}` }, children),\r\n defaultClasses: \"cursor-pointer\",\r\n})\r\n\r\nregisterSubComponent({\r\n name: \"image\",\r\n component: ({ className }) => React.createElement(\"img\", { className }),\r\n defaultClasses: \"\",\r\n})\r\n","import { twMerge } from \"./merge\"\r\n\r\nexport interface StyledOptions {\r\n base?: string\r\n variants?: Record<string, Record<string, string>>\r\n defaultVariants?: Record<string, string>\r\n compoundVariants?: Array<{\r\n variants: Record<string, string>\r\n className: string\r\n }>\r\n}\r\n\r\nexport type StyledProps = {\r\n className?: string\r\n} & Record<string, string | number | boolean | undefined>\r\n\r\nfunction resolveVariantClass(options: StyledOptions, props: StyledProps): string[] {\r\n const out: string[] = []\r\n const variants = options.variants ?? {}\r\n const defaults = options.defaultVariants ?? {}\r\n\r\n for (const [variantName, valueMap] of Object.entries(variants)) {\r\n const value = props[variantName] ?? defaults[variantName]\r\n if (value === undefined) continue\r\n\r\n const key = String(value)\r\n const cls = valueMap[key]\r\n if (cls) out.push(cls)\r\n }\r\n\r\n for (const compound of options.compoundVariants ?? []) {\r\n const matches = Object.entries(compound.variants).every(([k, expected]) => {\r\n const current = props[k] ?? defaults[k]\r\n return String(current) === expected\r\n })\r\n\r\n if (matches) out.push(compound.className)\r\n }\r\n\r\n return out\r\n}\r\n\r\nexport function resolveStyledClassName(options: StyledOptions, props: StyledProps = {}): string {\r\n const parts = [options.base ?? \"\", ...resolveVariantClass(options, props), props.className ?? \"\"]\r\n return twMerge(...parts)\r\n}\r\n\r\nexport function styled(options: StyledOptions) {\r\n return function getClassName(props: StyledProps = {}): string {\r\n return resolveStyledClassName(options, props)\r\n }\r\n}\r\n","/**\r\n * tailwind-styled-v4 — createStyledSystem()\r\n *\r\n * Design System Factory — Mode 3 API.\r\n *\r\n * Level 1 — utility: tw.div`p-4`\r\n * Level 2 — styled: tw(Button)`px-4`\r\n * Level 3 — design system: ui.button({ variant: \"primary\" })\r\n *\r\n * Usage:\r\n * const ui = createStyledSystem({\r\n * tokens: {\r\n * colors: { primary: \"#6366f1\", muted: \"#71717a\" },\r\n * radius: { base: \"0.5rem\", full: \"9999px\" },\r\n * },\r\n * components: {\r\n * button: {\r\n * base: \"inline-flex items-center font-medium transition-colors\",\r\n * variants: {\r\n * variant: {\r\n * primary: \"bg-[var(--sys-color-primary)] text-white\",\r\n * ghost: \"bg-transparent border border-current\",\r\n * danger: \"bg-red-500 text-white\",\r\n * },\r\n * size: {\r\n * sm: \"h-8 px-3 text-sm\",\r\n * md: \"h-10 px-4 text-base\",\r\n * lg: \"h-12 px-6 text-lg\",\r\n * },\r\n * },\r\n * defaultVariants: { variant: \"primary\", size: \"md\" },\r\n * },\r\n * },\r\n * })\r\n *\r\n * const Button = ui.button()\r\n * // → <Button variant=\"primary\" size=\"lg\" />\r\n *\r\n * // Token access\r\n * ui.token(\"colors.primary\") // → \"var(--sys-color-primary)\"\r\n * ui.cssVar(\"colors.primary\") // → \"#6366f1\"\r\n */\r\n\r\nimport type React from \"react\"\r\n\r\nimport { createComponent } from \"./createComponent\"\r\nimport type { ComponentConfig, TwStyledComponent } from \"./types\"\r\n\r\n// ─────────────────────────────────────────────────────────────────────────────\r\n// System token types\r\n// ─────────────────────────────────────────────────────────────────────────────\r\n\r\nexport type SystemTokenMap = Record<string, Record<string, string>>\r\n\r\nexport interface SystemComponentConfig extends ComponentConfig {\r\n /** Extra class applied only when used from the system (e.g. system-level resets) */\r\n systemBase?: string\r\n /** HTML tag for the component */\r\n tag?: string\r\n}\r\n\r\nexport interface StyledSystemConfig<\r\n T extends SystemTokenMap = SystemTokenMap,\r\n C extends Record<string, SystemComponentConfig> = Record<string, SystemComponentConfig>,\r\n> {\r\n /** Design tokens — injected as CSS custom properties under --sys-{group}-{name} */\r\n tokens?: T\r\n /** Component presets */\r\n components?: C\r\n /** CSS variable prefix. Default: \"sys\" → --sys-color-primary */\r\n prefix?: string\r\n /** If true, auto-inject token CSS vars into :root on init. Default: true */\r\n injectTokens?: boolean\r\n}\r\n\r\n// ─────────────────────────────────────────────────────────────────────────────\r\n// Token → CSS var helpers\r\n// ─────────────────────────────────────────────────────────────────────────────\r\n\r\nfunction tokenVarName(prefix: string, group: string, name: string): string {\r\n return `--${prefix}-${group}-${name}`\r\n}\r\n\r\nfunction tokenVarRef(prefix: string, group: string, name: string): string {\r\n return `var(${tokenVarName(prefix, group, name)})`\r\n}\r\n\r\nfunction resolveTokenRef(tokens: SystemTokenMap, prefix: string, value: string): string {\r\n // If value is \"token:colors.primary\" → resolve to var(--sys-colors-primary)\r\n if (value.startsWith(\"token:\")) {\r\n const path = value.slice(6)\r\n const [group, name] = path.split(\".\")\r\n if (group && name && tokens[group]?.[name] !== undefined) {\r\n return tokenVarRef(prefix, group, name)\r\n }\r\n }\r\n return value\r\n}\r\n\r\nfunction injectTokensToRoot(tokens: SystemTokenMap, prefix: string): void {\r\n if (typeof document === \"undefined\") return\r\n\r\n const styleId = `__tw-sys-tokens-${prefix}`\r\n if (document.getElementById(styleId)) return\r\n\r\n const lines: string[] = [\":root {\"]\r\n for (const [group, map] of Object.entries(tokens)) {\r\n for (const [name, value] of Object.entries(map)) {\r\n lines.push(` ${tokenVarName(prefix, group, name)}: ${value};`)\r\n }\r\n }\r\n lines.push(\"}\")\r\n\r\n const style = document.createElement(\"style\")\r\n style.id = styleId\r\n style.textContent = lines.join(\"\\n\")\r\n document.head.appendChild(style)\r\n}\r\n\r\n// ─────────────────────────────────────────────────────────────────────────────\r\n// Variant class resolver — replaces \"token:*\" references inside variant values\r\n// ─────────────────────────────────────────────────────────────────────────────\r\n\r\nfunction resolveComponentConfig(\r\n config: SystemComponentConfig,\r\n tokens: SystemTokenMap,\r\n prefix: string\r\n): ComponentConfig {\r\n const resolveStr = (s: string) => resolveTokenRef(tokens, prefix, s)\r\n\r\n const base = resolveStr(config.base ?? \"\")\r\n const systemBase = resolveStr(config.systemBase ?? \"\")\r\n const mergedBase = [systemBase, base].filter(Boolean).join(\" \")\r\n\r\n const variants: Record<string, Record<string, string>> = {}\r\n for (const [variantKey, variantMap] of Object.entries(config.variants ?? {})) {\r\n variants[variantKey] = {}\r\n for (const [optKey, classes] of Object.entries(variantMap)) {\r\n variants[variantKey][optKey] = classes.split(\" \").map(resolveStr).join(\" \")\r\n }\r\n }\r\n\r\n const compoundVariants = (config.compoundVariants ?? []).map((cv) => {\r\n const { class: cls, ...rest } = cv\r\n return { class: resolveStr(cls), ...rest }\r\n })\r\n\r\n return {\r\n base: mergedBase,\r\n variants,\r\n compoundVariants,\r\n defaultVariants: config.defaultVariants ?? {},\r\n state: config.state,\r\n container: config.container,\r\n containerName: config.containerName,\r\n }\r\n}\r\n\r\n// ─────────────────────────────────────────────────────────────────────────────\r\n// StyledSystem instance type\r\n// ─────────────────────────────────────────────────────────────────────────────\r\n\r\nexport type SystemComponentFactory<C extends SystemComponentConfig> = (\r\n overrides?: Partial<C>\r\n) => TwStyledComponent<Record<string, unknown>>\r\n\r\nexport type StyledSystemInstance<\r\n T extends SystemTokenMap,\r\n C extends Record<string, SystemComponentConfig>,\r\n> = {\r\n [K in keyof C]: SystemComponentFactory<C[K]>\r\n} & {\r\n /**\r\n * Get the CSS variable reference for a token.\r\n * @example ui.token(\"colors.primary\") → \"var(--sys-colors-primary)\"\r\n */\r\n token(path: string): string\r\n /**\r\n * Get the raw value of a token.\r\n * @example ui.rawToken(\"colors.primary\") → \"#6366f1\"\r\n */\r\n rawToken(path: string): string | undefined\r\n /**\r\n * Update token values at runtime (re-injects into :root).\r\n */\r\n setTokens(updates: Partial<{ [G in keyof T]: Partial<T[G]> }>): void\r\n /**\r\n * Access the resolved component config for a registered component.\r\n */\r\n getConfig(name: keyof C): ComponentConfig | undefined\r\n /**\r\n * The tokens object (for reference).\r\n */\r\n tokens: T\r\n}\r\n\r\n// ─────────────────────────────────────────────────────────────────────────────\r\n// createStyledSystem\r\n// ─────────────────────────────────────────────────────────────────────────────\r\n\r\nexport function createStyledSystem<\r\n T extends SystemTokenMap = SystemTokenMap,\r\n C extends Record<string, SystemComponentConfig> = Record<string, SystemComponentConfig>,\r\n>(config: StyledSystemConfig<T, C>): StyledSystemInstance<T, C> {\r\n const prefix = config.prefix ?? \"sys\"\r\n const tokens = (config.tokens ?? {}) as T\r\n const componentDefs = config.components ?? ({} as C)\r\n const shouldInject = config.injectTokens !== false\r\n\r\n // Inject tokens into :root on first call (client only)\r\n if (shouldInject && typeof window !== \"undefined\") {\r\n injectTokensToRoot(tokens as SystemTokenMap, prefix)\r\n }\r\n\r\n // Cache resolved component configs\r\n const resolvedConfigs = new Map<string, ComponentConfig>()\r\n\r\n for (const [name, compCfg] of Object.entries(componentDefs)) {\r\n resolvedConfigs.set(\r\n name,\r\n resolveComponentConfig(compCfg, tokens as SystemTokenMap, prefix)\r\n )\r\n }\r\n\r\n // Build component factories\r\n const factories: Record<string, SystemComponentFactory<SystemComponentConfig>> = {}\r\n\r\n for (const [name, compCfg] of Object.entries(componentDefs)) {\r\n const tag = compCfg.tag ?? \"div\"\r\n\r\n factories[name] = (overrides?: Partial<SystemComponentConfig>) => {\r\n const baseResolved = resolvedConfigs.get(name)!\r\n const runtimeTag = tag as React.ElementType\r\n\r\n if (!overrides || Object.keys(overrides).length === 0) {\r\n return createComponent(runtimeTag, baseResolved)\r\n }\r\n\r\n // Merge overrides into resolved config\r\n const overrideResolved = resolveComponentConfig(\r\n overrides as SystemComponentConfig,\r\n tokens as SystemTokenMap,\r\n prefix\r\n )\r\n\r\n const merged: ComponentConfig = {\r\n base: [baseResolved.base, overrideResolved.base].filter(Boolean).join(\" \"),\r\n variants: {\r\n ...(baseResolved.variants ?? undefined),\r\n ...(overrideResolved.variants ?? undefined),\r\n },\r\n compoundVariants: [\r\n ...(baseResolved.compoundVariants ?? []),\r\n ...(overrideResolved.compoundVariants ?? []),\r\n ],\r\n defaultVariants: {\r\n ...(baseResolved.defaultVariants ?? undefined),\r\n ...(overrideResolved.defaultVariants ?? undefined),\r\n },\r\n state: overrideResolved.state ?? baseResolved.state,\r\n container: overrideResolved.container ?? baseResolved.container,\r\n containerName: overrideResolved.containerName ?? baseResolved.containerName,\r\n }\r\n\r\n return createComponent(runtimeTag, merged)\r\n }\r\n }\r\n\r\n // Token utilities\r\n function token(path: string): string {\r\n const [group, name] = path.split(\".\")\r\n if (!group || !name) return path\r\n return tokenVarRef(prefix, group, name)\r\n }\r\n\r\n function rawToken(path: string): string | undefined {\r\n const [group, name] = path.split(\".\")\r\n if (!group || !name) return undefined\r\n return (tokens as SystemTokenMap)[group]?.[name]\r\n }\r\n\r\n function setTokens(updates: Partial<{ [G in keyof T]: Partial<T[G]> }>): void {\r\n if (typeof document === \"undefined\") return\r\n\r\n // Find or create the :root style element\r\n const styleId = `__tw-sys-tokens-${prefix}`\r\n const style =\r\n (document.getElementById(styleId) as HTMLStyleElement | null) ??\r\n (() => {\r\n const el = document.createElement(\"style\")\r\n el.id = styleId\r\n document.head.appendChild(el)\r\n return el\r\n })()\r\n\r\n // Merge updates into tokens and re-generate\r\n for (const [group, map] of Object.entries(updates)) {\r\n if (!tokens[group as keyof T]) continue\r\n for (const [name, value] of Object.entries(map as Record<string, string>)) {\r\n ;(tokens as SystemTokenMap)[group][name] = value\r\n }\r\n }\r\n\r\n const lines: string[] = [\":root {\"]\r\n for (const [group, map] of Object.entries(tokens as SystemTokenMap)) {\r\n for (const [name, value] of Object.entries(map)) {\r\n lines.push(` ${tokenVarName(prefix, group, name)}: ${value};`)\r\n }\r\n }\r\n lines.push(\"}\")\r\n style.textContent = lines.join(\"\\n\")\r\n }\r\n\r\n function getConfig(name: keyof C): ComponentConfig | undefined {\r\n return resolvedConfigs.get(name as string)\r\n }\r\n\r\n return Object.assign(factories, {\r\n token,\r\n rawToken,\r\n setTokens,\r\n getConfig,\r\n tokens,\r\n }) as StyledSystemInstance<T, C>\r\n}\r\n","/**\r\n * tailwind-styled-v4 v2 — tw\r\n *\r\n * API:\r\n * tw.div`p-4 bg-zinc-900`\r\n * tw.button`px-4 [icon] { h-4 w-4 }` ← sub-components inline\r\n * tw.button({ base: \"px-4\", variants: { size: { sm: \"text-sm\" } } })\r\n * tw(Link)`underline text-blue-400`\r\n * tw.server.div`p-4` ← server-only, compiler enforced + runtime dev warning\r\n */\r\n\r\nimport React from \"react\"\r\nimport { createComponent } from \"./createComponent\"\r\nimport type {\r\n ComponentConfig,\r\n TwComponentFactory,\r\n TwObject,\r\n TwServerObject,\r\n TwStyledComponent,\r\n TwTagFactory,\r\n TwTagFactoryAny,\r\n} from \"./types\"\r\n\r\n// types.ts is single source of truth — re-export for consumers\r\nexport type { TwComponentFactory, TwObject, TwServerObject, TwTagFactory }\r\n\r\n// ─────────────────────────────────────────────────────────────────────────────\r\n// Template parser\r\n// ─────────────────────────────────────────────────────────────────────────────\r\n\r\ninterface ParsedTemplate {\r\n /** Base classes — tanpa sub-component blocks */\r\n base: string\r\n /** Sub-component map: { icon: \"h-4 w-4 ...\", badge: \"px-2 ...\" } */\r\n subs: Record<string, string>\r\n /** Ada sub-component atau tidak */\r\n hasSubs: boolean\r\n}\r\n\r\n// Matches both `[name] { ... }` (bracket) and `name { ... }` (no-bracket) sub-component blocks.\r\n// Group 1 = bracket name, Group 2 = no-bracket name, Group 3 = classes inside braces.\r\nconst SUB_RE = /(?:\\[([a-zA-Z][a-zA-Z0-9_-]*)\\]|([a-zA-Z][a-zA-Z0-9_-]*))\\s*\\{([^}]*)\\}/g\r\nconst COMMENT_RE = /\\/\\/[^\\n]*/g\r\n\r\nfunction parseTemplate(strings: TemplateStringsArray, exprs: unknown[]): ParsedTemplate {\r\n const raw = strings.raw.reduce((acc, str, i) => {\r\n const expr = exprs[i]\r\n const exprStr = typeof expr === \"function\" ? \"\" : (expr ?? \"\")\r\n return acc + str + String(exprStr)\r\n }, \"\")\r\n\r\n const subs: Record<string, string> = {}\r\n let base = raw\r\n\r\n // Extract dan hapus semua sub-component blocks dari base (bracket dan no-bracket)\r\n let match: RegExpExecArray | null\r\n SUB_RE.lastIndex = 0\r\n while ((match = SUB_RE.exec(raw)) !== null) {\r\n const name = match[1] ?? match[2]\r\n const inner = match[3]\r\n .replace(COMMENT_RE, \"\") // strip //comments\r\n .split(\"\\n\").map((l) => l.trim()).filter(Boolean).join(\" \")\r\n .replace(/\\s+/g, \" \").trim()\r\n\r\n subs[name] = inner\r\n base = base.replace(match[0], \"\")\r\n }\r\n\r\n // Clean base: strip comments, normalize whitespace\r\n const cleanBase = base\r\n .replace(COMMENT_RE, \"\")\r\n .split(\"\\n\").map((l) => l.trim()).filter(Boolean).join(\" \")\r\n .replace(/\\s+/g, \" \").trim()\r\n\r\n return {\r\n base: cleanBase,\r\n subs,\r\n hasSubs: Object.keys(subs).length > 0,\r\n }\r\n}\r\n\r\ntype RuntimeTagFactory = ((\r\n stringsOrConfig: TemplateStringsArray | ComponentConfig,\r\n ...exprs: unknown[]\r\n) => TwStyledComponent<Record<string, unknown>>) &\r\n TwTagFactoryAny\r\n\r\n// ─────────────────────────────────────────────────────────────────────────────\r\n// makeTag\r\n// ─────────────────────────────────────────────────────────────────────────────\r\n\r\nfunction makeTag(tag: React.ElementType): RuntimeTagFactory {\r\n return ((\r\n stringsOrConfig: TemplateStringsArray | ComponentConfig,\r\n ...exprs: unknown[]\r\n ): TwStyledComponent<Record<string, unknown>> => {\r\n // Object config path\r\n if (\r\n !Array.isArray(stringsOrConfig) &&\r\n typeof stringsOrConfig === \"object\" &&\r\n stringsOrConfig !== null &&\r\n !(\"raw\" in stringsOrConfig)\r\n ) {\r\n return createComponent(tag, stringsOrConfig as ComponentConfig)\r\n }\r\n\r\n // Template literal path\r\n const parsed = parseTemplate(stringsOrConfig as TemplateStringsArray, exprs)\r\n\r\n // Buat component dari base classes\r\n const component = createComponent(tag, parsed.base)\r\n\r\n // Attach sub-components sebagai React.FC dari classes yang di-extract\r\n if (parsed.hasSubs) {\r\n for (const [name, classes] of Object.entries(parsed.subs)) {\r\n // Setiap sub-component adalah styled span/div dengan classesnya\r\n const SubComp = React.forwardRef<\r\n HTMLSpanElement,\r\n { children?: React.ReactNode; className?: string }\r\n >(({ children, className }, ref) =>\r\n React.createElement(\"span\", {\r\n ref,\r\n className: className ? `${classes} ${className}` : classes,\r\n }, children)\r\n )\r\n SubComp.displayName = `tw.${typeof tag === \"string\" ? tag : \"component\"}.${name}`;\r\n ;(component as unknown as Record<string, unknown>)[name] = SubComp\n }\r\n }\r\n\r\n return component\r\n }) as RuntimeTagFactory\r\n}\r\n\r\n// ─────────────────────────────────────────────────────────────────────────────\r\n// HTML tag list\r\n// ─────────────────────────────────────────────────────────────────────────────\r\n\r\nconst HTML_TAGS = [\r\n \"div\", \"section\", \"article\", \"aside\", \"header\", \"footer\", \"main\", \"nav\",\r\n \"figure\", \"figcaption\", \"details\", \"summary\",\r\n \"h1\", \"h2\", \"h3\", \"h4\", \"h5\", \"h6\",\r\n \"p\", \"span\", \"strong\", \"em\", \"b\", \"i\", \"s\", \"u\", \"small\", \"mark\",\r\n \"abbr\", \"cite\", \"code\", \"kbd\", \"samp\", \"var\", \"time\", \"address\",\r\n \"blockquote\", \"q\", \"del\", \"ins\", \"sub\", \"sup\",\r\n \"ul\", \"ol\", \"li\", \"dl\", \"dt\", \"dd\",\r\n \"table\", \"thead\", \"tbody\", \"tfoot\", \"tr\", \"th\", \"td\", \"caption\",\r\n \"colgroup\", \"col\",\r\n \"img\", \"picture\", \"video\", \"audio\", \"source\", \"track\",\r\n \"canvas\", \"svg\", \"path\", \"circle\", \"rect\", \"line\",\r\n \"polyline\", \"polygon\", \"g\", \"defs\", \"use\", \"symbol\",\r\n \"form\", \"input\", \"textarea\", \"select\", \"option\", \"optgroup\",\r\n \"button\", \"label\", \"fieldset\", \"legend\", \"output\",\r\n \"progress\", \"meter\", \"datalist\",\r\n \"a\", \"area\", \"map\", \"iframe\", \"embed\", \"object\",\r\n \"pre\", \"hr\", \"br\", \"wbr\", \"dialog\", \"menu\", \"template\", \"slot\",\r\n] as const\r\n\r\n// ─────────────────────────────────────────────────────────────────────────────\r\n// tw.server — server-only namespace with dev warning\r\n// ─────────────────────────────────────────────────────────────────────────────\r\n\r\nfunction makeServerTag(tag: React.ElementType): RuntimeTagFactory {\r\n const baseFactory = makeTag(tag)\r\n if (typeof window !== \"undefined\" && process.env.NODE_ENV !== \"production\") {\r\n return ((\r\n stringsOrConfig: TemplateStringsArray | ComponentConfig,\r\n ...exprs: unknown[]\r\n ): TwStyledComponent<Record<string, unknown>> => {\r\n const tagName =\r\n typeof tag === \"string\"\r\n ? tag\r\n : ((tag as { displayName?: string }).displayName ?? \"Component\")\r\n console.warn(\r\n `[tailwind-styled-v4] tw.server.${tagName} rendered in browser. ` +\r\n `Ensure withTailwindStyled or Vite plugin is configured.`\r\n )\r\n return baseFactory(stringsOrConfig, ...exprs)\r\n }) as RuntimeTagFactory\r\n }\r\n return baseFactory\r\n}\r\n\r\nconst serverFactories: Record<string, RuntimeTagFactory> = {}\r\nfor (const tag of HTML_TAGS) {\r\n serverFactories[tag] = makeServerTag(tag as React.ElementType)\r\n}\r\n\r\nexport const server: TwServerObject = serverFactories as unknown as TwServerObject\r\n\r\n// ─────────────────────────────────────────────────────────────────────────────\r\n// tw — main export\r\n// ─────────────────────────────────────────────────────────────────────────────\r\n\r\nconst tagFactories: Record<string, RuntimeTagFactory> = {}\r\nfor (const tag of HTML_TAGS) {\r\n tagFactories[tag] = makeTag(tag as React.ElementType)\r\n}\r\n\r\nfunction twCallable(component: React.ComponentType<unknown>) {\r\n return makeTag(component)\r\n}\r\n\r\nexport const tw: TwObject = Object.assign(twCallable, tagFactories, {\r\n server,\r\n}) as unknown as TwObject\n","/**\r\n * tailwind-styled-v4 v2 — twTheme\r\n *\r\n * UPGRADE #1: Tailwind v4 CSS Variables integration.\r\n *\r\n * Tailwind v4 uses @theme inline to expose design tokens as CSS custom properties:\r\n * @theme inline {\r\n * --color-background: var(--background);\r\n * --color-foreground: var(--foreground);\r\n * --font-sans: var(--font-geist-sans);\r\n * }\r\n *\r\n * This module bridges tw() syntax with those CSS variables — zero config,\r\n * full IDE support, type-safe design tokens.\r\n *\r\n * @example\r\n * // Without twTheme (verbose, error-prone)\r\n * const Box = tw.div`bg-[var(--color-background)] text-[var(--color-foreground)]`\r\n *\r\n * // With twTheme (clean, type-safe)\r\n * const Box = tw.div`${t.bg(\"color-background\")} ${t.text(\"color-foreground\")}`\r\n *\r\n * // Or with createTheme for full project-level token map\r\n * const theme = createTheme({\r\n * colors: { bg: \"color-background\", fg: \"color-foreground\", primary: \"color-primary\" },\r\n * fonts: { sans: \"font-sans\", mono: \"font-mono\" },\r\n * })\r\n * const Box = tw.div`bg-${theme.colors.bg} text-${theme.colors.fg}`\r\n */\r\n\r\n// ─────────────────────────────────────────────────────────────────────────────\r\n// Core helper — CSS variable reference\r\n// ─────────────────────────────────────────────────────────────────────────────\r\n\r\n/**\r\n * Reference a CSS custom property in Tailwind v4 arbitrary value syntax.\r\n *\r\n * @example\r\n * cssVar(\"color-background\") → \"var(--color-background)\"\r\n * cssVar(\"color-primary\", \"#3b82f6\") → \"var(--color-primary, #3b82f6)\"\r\n */\r\nexport function cssVar(varName: string, fallback?: string): string {\r\n const name = varName.startsWith(\"--\") ? varName : `--${varName}`\r\n return fallback ? `var(${name}, ${fallback})` : `var(${name})`\r\n}\r\n\r\n/**\r\n * Generate a Tailwind v4 arbitrary value that references a CSS variable.\r\n *\r\n * @example\r\n * twVar(\"bg\", \"color-background\") → \"bg-[var(--color-background)]\"\r\n * twVar(\"text\", \"color-foreground\") → \"text-[var(--color-foreground)]\"\r\n * twVar(\"border\", \"color-border\", \"#e5e7eb\") → \"border-[var(--color-border,#e5e7eb)]\"\r\n */\r\nexport function twVar(property: string, varName: string, fallback?: string): string {\r\n const ref = fallback ? `var(--${varName},${fallback})` : `var(--${varName})`\r\n return `${property}-[${ref}]`\r\n}\r\n\r\n// ─────────────────────────────────────────────────────────────────────────────\r\n// Convenience shorthand builders\r\n// ─────────────────────────────────────────────────────────────────────────────\r\n\r\nexport const t = {\r\n /** Background color from CSS variable: t.bg(\"color-primary\") → \"bg-[var(--color-primary)]\" */\r\n bg: (v: string, fb?: string) => twVar(\"bg\", v, fb),\r\n /** Text color from CSS variable */\r\n text: (v: string, fb?: string) => twVar(\"text\", v, fb),\r\n /** Border color from CSS variable */\r\n border: (v: string, fb?: string) => twVar(\"border\", v, fb),\r\n /** Ring color from CSS variable */\r\n ring: (v: string, fb?: string) => twVar(\"ring\", v, fb),\r\n /** Outline color from CSS variable */\r\n outline: (v: string, fb?: string) => twVar(\"outline\", v, fb),\r\n /** Fill color from CSS variable (SVG) */\r\n fill: (v: string, fb?: string) => twVar(\"fill\", v, fb),\r\n /** Stroke color from CSS variable (SVG) */\r\n stroke: (v: string, fb?: string) => twVar(\"stroke\", v, fb),\r\n /** Font family from CSS variable */\r\n font: (v: string, fb?: string) => twVar(\"font\", v, fb),\r\n /** Shadow from CSS variable */\r\n shadow: (v: string, fb?: string) => twVar(\"shadow\", v, fb),\r\n /** Any arbitrary property from CSS variable */\r\n var: (property: string, v: string, fb?: string) => twVar(property, v, fb),\r\n}\r\n\r\n// ─────────────────────────────────────────────────────────────────────────────\r\n// createTheme — project-level design token map\r\n// ─────────────────────────────────────────────────────────────────────────────\r\n\r\nexport interface ThemeTokenMap {\r\n colors?: Record<string, string>\r\n fonts?: Record<string, string>\r\n spacing?: Record<string, string>\r\n [key: string]: Record<string, string> | undefined\r\n}\r\n\r\nexport type ResolvedThemeTokens<T extends ThemeTokenMap> = {\r\n [Group in keyof T]: T[Group] extends Record<string, string>\r\n ? {\r\n [Token in keyof T[Group]]: string\r\n }\r\n : never\r\n}\r\n\r\n/**\r\n * Create a typed theme token map from your CSS variable names.\r\n * Returns helper functions that generate Tailwind v4 arbitrary values.\r\n *\r\n * @example\r\n * // Define your tokens (match your globals.css @theme block)\r\n * const theme = createTheme({\r\n * colors: {\r\n * bg: \"color-background\",\r\n * fg: \"color-foreground\",\r\n * primary: \"color-primary\",\r\n * muted: \"color-muted\",\r\n * },\r\n * fonts: {\r\n * sans: \"font-sans\",\r\n * mono: \"font-mono\",\r\n * },\r\n * })\r\n *\r\n * // Use in tw components\r\n * const Card = tw.div`\r\n * bg-${theme.colors.bg}\r\n * text-${theme.colors.fg}\r\n * font-${theme.fonts.sans}\r\n * `\r\n * // → tw.div`bg-[var(--color-background)] text-[var(--color-foreground)] font-[var(--font-sans)]`\r\n *\r\n * // Use in cv()\r\n * const button = cv({\r\n * base: `px-4 py-2 ${theme.colors.bg} ${theme.colors.fg}`,\r\n * variants: { ... }\r\n * })\r\n */\r\nexport function createTheme<T extends ThemeTokenMap>(tokenMap: T): ResolvedThemeTokens<T> {\r\n const resolved: Record<string, Record<string, string>> = {}\r\n\r\n for (const group in tokenMap) {\r\n resolved[group] = {}\r\n const tokens = tokenMap[group]!\r\n for (const name in tokens) {\r\n const varName = tokens[name]\r\n const prefix = getGroupPrefix(group)\r\n resolved[group][name] = prefix ? twVar(prefix, varName) : cssVar(varName)\r\n }\r\n }\r\n\r\n return resolved as ResolvedThemeTokens<T>\r\n}\r\n\r\nfunction getGroupPrefix(group: string): string {\r\n const map: Record<string, string> = {\r\n colors: \"bg\", // default to bg; user can use t.text() for text colors\r\n fonts: \"font\",\r\n spacing: \"p\",\r\n shadows: \"shadow\",\r\n }\r\n return map[group] ?? \"\"\r\n}\r\n\r\n// ─────────────────────────────────────────────────────────────────────────────\r\n// Standard Tailwind v4 tokens\r\n//\r\n// Pre-built token references for the default next-app globals.css setup.\r\n// These match what Tailwind v4's @theme inline generates.\r\n// ─────────────────────────────────────────────────────────────────────────────\r\n\r\n/**\r\n * Pre-built references for standard Tailwind v4 CSS variable tokens.\r\n * Works out of the box with next-app-standar-config globals.css.\r\n *\r\n * @example\r\n * import { v4Tokens } from \"tailwind-styled-v4\"\r\n *\r\n * const Page = tw.div`${v4Tokens.bg} ${v4Tokens.text}`\r\n * // → tw.div`bg-[var(--color-background)] text-[var(--color-foreground)]`\r\n */\r\nexport const v4Tokens = {\r\n /** bg-[var(--color-background)] */\r\n bg: twVar(\"bg\", \"color-background\"),\r\n /** text-[var(--color-foreground)] */\r\n text: twVar(\"text\", \"color-foreground\"),\r\n /** font-[var(--font-sans)] */\r\n fontSans: twVar(\"font\", \"font-sans\"),\r\n /** font-[var(--font-mono)] */\r\n fontMono: twVar(\"font\", \"font-mono\"),\r\n} as const\r\n"]}
|