@jasonshimmy/custom-elements-runtime 2.1.1 → 2.2.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -0,0 +1 @@
1
+ {"version":3,"file":"transitions-CbxTVf1F.js","sources":["../src/lib/runtime/style.ts","../src/lib/transitions.ts"],"sourcesContent":["/**\n * Optimized JIT CSS implementation with reduced bloat and enhanced utilities\n */\n\n/**\n * CSS template literal\n */\nexport function css(\n strings: TemplateStringsArray,\n ...values: unknown[]\n): string {\n let result = '';\n for (let i = 0; i < strings.length; i++) {\n result += strings[i];\n if (i < values.length) result += values[i];\n }\n return result;\n}\n\n/**\n * CSS minification utility (basic)\n */\nexport function minifyCSS(css: string): string {\n return css\n .replace(/\\/\\*[\\s\\S]*?\\*\\//g, '')\n .replace(/\\s+/g, ' ')\n .replace(/\\s*([{}:;,>+~])\\s*/g, '$1')\n .replace(/;}/g, '}')\n .trim();\n}\n\n// --- Shared baseReset stylesheet ---\nlet baseResetSheet: CSSStyleSheet | null = null;\nexport function getBaseResetSheet(): CSSStyleSheet {\n if (!baseResetSheet) {\n baseResetSheet = new CSSStyleSheet();\n baseResetSheet.replaceSync(minifyCSS(baseReset));\n }\n return baseResetSheet;\n}\n\nexport function sanitizeCSS(css: string): string {\n return css\n .replace(/url\\s*\\(\\s*['\"]?javascript:[^)]*\\)/gi, '')\n .replace(/<script[\\s\\S]*?>[\\s\\S]*?<\\/script>/gi, '')\n .replace(/expression\\s*\\([^)]*\\)/gi, '');\n}\n\nexport const baseReset = css`\n :host,\n *,\n ::before,\n ::after {\n all: isolate;\n box-sizing: border-box;\n border: 0 solid currentColor;\n margin: 0;\n padding: 0;\n font: inherit;\n vertical-align: baseline;\n background: transparent;\n color: inherit;\n -webkit-tap-highlight-color: transparent;\n }\n :host {\n display: contents;\n font: 16px/1.5 var(--cer-font-sans, ui-sans-serif, system-ui, sans-serif);\n /* Default CE line-height variable so leading-* can reliably override */\n --cer-line-height: 1.5;\n -webkit-text-size-adjust: 100%;\n text-size-adjust: 100%;\n -webkit-font-smoothing: antialiased;\n -moz-osx-font-smoothing: grayscale;\n /* Default gradient variables to avoid undefined var() usage in generated utilities */\n --cer-gradient-from-position: 0%;\n --cer-gradient-to-position: 100%;\n --cer-gradient-via-position: 50%;\n --cer-gradient-from: rgba(255, 255, 255, 0);\n --cer-gradient-to: rgba(255, 255, 255, 0);\n --cer-gradient-stops: var(--cer-gradient-from), var(--cer-gradient-to);\n /* Default outline style variable */\n --cer-outline-style: solid;\n }\n button,\n input,\n select,\n textarea {\n background: transparent;\n outline: none;\n }\n textarea {\n resize: vertical;\n }\n progress {\n vertical-align: baseline;\n }\n button,\n textarea {\n overflow: visible;\n }\n img,\n svg,\n video,\n canvas,\n audio,\n iframe,\n embed,\n object {\n display: block;\n max-width: 100%;\n height: auto;\n }\n svg {\n fill: currentColor;\n stroke: none;\n }\n a {\n text-decoration: inherit;\n cursor: pointer;\n }\n button,\n [type='button'],\n [type='reset'],\n [type='submit'] {\n cursor: pointer;\n appearance: button;\n background: none;\n -webkit-user-select: none;\n user-select: none;\n }\n ::-webkit-input-placeholder,\n ::placeholder {\n color: inherit;\n opacity: 0.5;\n }\n *:focus-visible {\n outline: 2px solid var(--cer-color-primary-500, #3b82f6);\n outline-offset: 2px;\n }\n ol,\n ul {\n list-style: none;\n }\n table {\n border-collapse: collapse;\n }\n sub,\n sup {\n font-size: 0.75em;\n line-height: 0;\n position: relative;\n }\n sub {\n bottom: -0.25em;\n }\n sup {\n top: -0.5em;\n }\n [disabled],\n [aria-disabled='true'] {\n cursor: not-allowed;\n }\n [hidden] {\n display: none;\n }\n`;\n\n// Types\ntype CSSMap = Record<string, string>;\ntype SelectorVariantMap = Record<\n string,\n (selector: string, body: string) => string\n>;\ntype MediaVariantMap = Record<string, string>;\n\ntype Shade = 50 | 100 | 200 | 300 | 400 | 500 | 600 | 700 | 800 | 900 | 950;\ntype ColorShades = Partial<Record<Shade, string>> & { DEFAULT?: string };\n\n// Enhanced color system with standard Tailwind colors\nconst fallbackHex: Record<string, ColorShades> = {\n // Existing semantic colors\n neutral: {\n 50: '#fafafa',\n 100: '#f4f4f5',\n 200: '#e4e4e7',\n 300: '#d4d4d8',\n 400: '#9f9fa9',\n 500: '#71717b',\n 600: '#52525c',\n 700: '#3f3f46',\n 800: '#27272a',\n 900: '#18181b',\n 950: '#09090b',\n },\n primary: {\n 50: '#eff6ff',\n 100: '#dbeafe',\n 200: '#bfdbfe',\n 300: '#93c5fd',\n 400: '#60a5fa',\n 500: '#3b82f6',\n 600: '#2563eb',\n 700: '#1d4ed8',\n 800: '#1e40af',\n 900: '#1e3a8a',\n 950: '#172554',\n },\n secondary: {\n 50: '#eef2ff',\n 100: '#e0e7ff',\n 200: '#c7d2fe',\n 300: '#a5b4fc',\n 400: '#818cf8',\n 500: '#6366f1',\n 600: '#4f46e5',\n 700: '#4338ca',\n 800: '#3730a3',\n 900: '#312e81',\n 950: '#1e1b4b',\n },\n success: {\n 50: '#f0fdf4',\n 100: '#dcfce7',\n 200: '#bbf7d0',\n 300: '#86efac',\n 400: '#4ade80',\n 500: '#22c55e',\n 600: '#16a34a',\n 700: '#15803d',\n 800: '#166534',\n 900: '#14532d',\n 950: '#052e16',\n },\n info: {\n 50: '#f0f9ff',\n 100: '#e0f2fe',\n 200: '#bae6fd',\n 300: '#7dd3fc',\n 400: '#38bdf8',\n 500: '#0ea5e9',\n 600: '#0284c7',\n 700: '#0369a1',\n 800: '#075985',\n 900: '#0c4a6e',\n 950: '#082f49',\n },\n warning: {\n 50: '#fffbeb',\n 100: '#fef3c7',\n 200: '#fde68a',\n 300: '#fcd34d',\n 400: '#fbbf24',\n 500: '#f59e0b',\n 600: '#d97706',\n 700: '#b45309',\n 800: '#92400e',\n 900: '#78350f',\n 950: '#451a03',\n },\n error: {\n 50: '#fef2f2',\n 100: '#fee2e2',\n 200: '#fecaca',\n 300: '#fca5a5',\n 400: '#f87171',\n 500: '#ef4444',\n 600: '#dc2626',\n 700: '#b91c1c',\n 800: '#991b1b',\n 900: '#7f1d1d',\n 950: '#450a0a',\n },\n\n // Special colors\n white: { DEFAULT: '#ffffff' },\n black: { DEFAULT: '#000000' },\n transparent: { DEFAULT: 'transparent' },\n current: { DEFAULT: 'currentColor' },\n};\n\nexport const colors: Record<\n string,\n Record<string, string>\n> = Object.fromEntries(\n Object.entries(fallbackHex).map(([name, shades]) => [\n name,\n Object.fromEntries(\n Object.entries(shades).map(([shade, hex]) => [\n shade,\n `var(--cer-color-${name}${shade === 'DEFAULT' ? '' : `-${shade}`}, ${hex})`,\n ]),\n ),\n ]),\n);\n\nexport const spacing = '0.25rem';\n\nconst semanticSizes: Record<string, number> = {\n '3xs': 64,\n '2xs': 72,\n xs: 80,\n sm: 96,\n md: 112,\n lg: 128,\n xl: 144,\n '2xl': 168,\n '3xl': 192,\n '4xl': 224,\n '5xl': 256,\n '6xl': 288,\n '7xl': 320,\n};\n\n// Property mappings for spacing utilities\nexport const spacingProps: Record<string, string[]> = {\n m: ['margin'],\n mx: ['margin-inline'],\n my: ['margin-block'],\n mt: ['margin-top'],\n mr: ['margin-right'],\n mb: ['margin-bottom'],\n ml: ['margin-left'],\n p: ['padding'],\n px: ['padding-inline'],\n py: ['padding-block'],\n pt: ['padding-top'],\n pr: ['padding-right'],\n pb: ['padding-bottom'],\n pl: ['padding-left'],\n inset: ['inset'],\n 'inset-x': ['inset-inline'],\n 'inset-y': ['inset-block'],\n h: ['height'],\n w: ['width'],\n 'min-h': ['min-height'],\n 'min-w': ['min-width'],\n 'max-h': ['max-height'],\n 'max-w': ['max-width'],\n top: ['top'],\n bottom: ['bottom'],\n left: ['left'],\n right: ['right'],\n gap: ['gap'],\n 'gap-x': ['column-gap'],\n 'gap-y': ['row-gap'],\n};\n\n// Utility generators for reduced code bloat\nconst generateUtilities = (): CSSMap => {\n const utils: CSSMap = {};\n\n // Add @container utility\n utils['@container'] = 'container-type:inline-size;';\n\n // Core display utilities\n const display = [\n 'block',\n 'inline',\n 'inline-block',\n 'flex',\n 'inline-flex',\n 'grid',\n 'inline-grid',\n 'table',\n 'table-cell',\n 'table-row',\n 'hidden',\n ];\n display.forEach((d) => {\n utils[d] = d === 'hidden' ? 'display:none;' : `display:${d};`;\n });\n\n // Position utilities\n ['absolute', 'relative', 'fixed', 'sticky', 'static'].forEach((p) => {\n utils[p] = `position:${p};`;\n });\n\n // Flex utilities\n Object.assign(utils, {\n 'items-center': 'align-items:center;',\n 'items-start': 'align-items:flex-start;',\n 'items-end': 'align-items:flex-end;',\n 'items-baseline': 'align-items:baseline;',\n 'items-stretch': 'align-items:stretch;',\n 'justify-center': 'justify-content:center;',\n 'justify-start': 'justify-content:flex-start;',\n 'justify-between': 'justify-content:space-between;',\n 'justify-around': 'justify-content:space-around;',\n 'justify-evenly': 'justify-content:space-evenly;',\n 'justify-end': 'justify-content:flex-end;',\n 'flex-wrap': 'flex-wrap:wrap;',\n 'flex-nowrap': 'flex-wrap:nowrap;',\n 'flex-wrap-reverse': 'flex-wrap:wrap-reverse;',\n 'content-center': 'align-content:center;',\n 'content-start': 'align-content:flex-start;',\n 'content-end': 'align-content:flex-end;',\n 'content-between': 'align-content:space-between;',\n 'content-around': 'align-content:space-around;',\n 'content-evenly': 'align-content:space-evenly;',\n 'content-stretch': 'align-content:stretch;',\n 'self-auto': 'align-self:auto;',\n 'self-start': 'align-self:flex-start;',\n 'self-end': 'align-self:flex-end;',\n 'self-center': 'align-self:center;',\n 'self-stretch': 'align-self:stretch;',\n 'flex-col': 'flex-direction:column;',\n 'flex-row': 'flex-direction:row;',\n 'flex-col-reverse': 'flex-direction:column-reverse;',\n 'flex-row-reverse': 'flex-direction:row-reverse;',\n 'flex-1': 'flex:1 1 0%;',\n 'flex-auto': 'flex:1 1 auto;',\n 'flex-initial': 'flex:0 1 auto;',\n 'flex-none': 'flex:0 0 auto;',\n grow: 'flex-grow:1;',\n shrink: 'flex-shrink:1;',\n 'grow-0': 'flex-grow:0;',\n 'shrink-0': 'flex-shrink:0;',\n });\n\n // Grid utilities\n for (let i = 1; i <= 12; i++) {\n utils[`grid-cols-${i}`] =\n `grid-template-columns:repeat(${i},minmax(0,1fr));`;\n utils[`grid-rows-${i}`] = `grid-template-rows:repeat(${i},minmax(0,1fr));`;\n utils[`col-span-${i}`] = `grid-column:span ${i} / span ${i};`;\n utils[`row-span-${i}`] = `grid-row:span ${i} / span ${i};`;\n utils[`col-start-${i}`] = `grid-column-start:${i};`;\n utils[`col-end-${i}`] = `grid-column-end:${i};`;\n utils[`row-start-${i}`] = `grid-row-start:${i};`;\n utils[`row-end-${i}`] = `grid-row-end:${i};`;\n }\n Object.assign(utils, {\n 'grid-cols-none': 'grid-template-columns:none;',\n 'grid-rows-none': 'grid-template-rows:none;',\n 'col-span-full': 'grid-column:1 / -1;',\n 'row-span-full': 'grid-row:1 / -1;',\n 'auto-cols-auto': 'grid-auto-columns:auto;',\n 'auto-cols-min': 'grid-auto-columns:min-content;',\n 'auto-cols-max': 'grid-auto-columns:max-content;',\n 'auto-cols-fr': 'grid-auto-columns:1fr;',\n 'auto-rows-auto': 'grid-auto-rows:auto;',\n 'auto-rows-min': 'grid-auto-rows:min-content;',\n 'auto-rows-max': 'grid-auto-rows:max-content;',\n 'auto-rows-fr': 'grid-auto-rows:1fr;',\n 'grid-flow-row': 'grid-auto-flow:row;',\n 'grid-flow-col': 'grid-auto-flow:column;',\n 'grid-flow-row-dense': 'grid-auto-flow:row dense;',\n 'grid-flow-col-dense': 'grid-auto-flow:column dense;',\n });\n\n // Typography utilities\n Object.assign(utils, {\n 'text-left': 'text-align:left;',\n 'text-center': 'text-align:center;',\n 'text-right': 'text-align:right;',\n 'text-justify': 'text-align:justify;',\n 'font-thin': 'font-weight:100;',\n 'font-extralight': 'font-weight:200;',\n 'font-light': 'font-weight:300;',\n 'font-normal': 'font-weight:400;',\n 'font-medium': 'font-weight:500;',\n 'font-semibold': 'font-weight:600;',\n 'font-bold': 'font-weight:700;',\n 'font-extrabold': 'font-weight:800;',\n 'font-black': 'font-weight:900;',\n italic: 'font-style:italic;',\n 'not-italic': 'font-style:normal;',\n uppercase: 'text-transform:uppercase;',\n lowercase: 'text-transform:lowercase;',\n capitalize: 'text-transform:capitalize;',\n 'normal-case': 'text-transform:none;',\n underline: 'text-decoration-line:underline;',\n overline: 'text-decoration-line:overline;',\n 'line-through': 'text-decoration-line:line-through;',\n 'no-underline': 'text-decoration-line:none;',\n truncate: 'overflow:hidden;text-overflow:ellipsis;white-space:nowrap;',\n 'whitespace-normal': 'white-space:normal;',\n 'whitespace-nowrap': 'white-space:nowrap;',\n 'whitespace-pre': 'white-space:pre;',\n 'whitespace-pre-line': 'white-space:pre-line;',\n 'whitespace-pre-wrap': 'white-space:pre-wrap;',\n 'break-normal': 'overflow-wrap:normal;word-break:normal;',\n 'break-words': 'overflow-wrap:break-word;',\n 'break-all': 'word-break:break-all;',\n });\n\n // Font sizes with proper line heights\n // Use a CSS variable `--cer-line-height` so `leading-*` utilities can override\n // the line-height set by `text-*` utilities. Each `text-*` will provide a\n // sensible fallback for the variable matching the previous behavior.\n const fontSizes = [\n ['text-xs', '0.75rem', '1'],\n ['text-sm', '0.875rem', '1.25'],\n ['text-base', '1rem', '1.5'],\n ['text-lg', '1.125rem', '1.75'],\n ['text-xl', '1.25rem', '1.75'],\n ['text-2xl', '1.5rem', '2'],\n ['text-3xl', '1.875rem', '2.25'],\n ['text-4xl', '2.25rem', '2.5'],\n ['text-5xl', '3rem', '1'],\n ['text-6xl', '3.75rem', '1'],\n ['text-7xl', '4.5rem', '1'],\n ['text-8xl', '6rem', '1'],\n ['text-9xl', '8rem', '1'],\n ];\n fontSizes.forEach(([name, size, lineHeight]) => {\n // Set font-size and use --cer-line-height with the previous numeric fallback.\n // This allows `leading-*` to set `--cer-line-height` and take precedence.\n utils[name] =\n `font-size:${size};line-height:var(--cer-line-height,${lineHeight});`;\n });\n\n // Letter spacing (tracking)\n const tracking = [\n ['tracking-tighter', '-0.05em'],\n ['tracking-tight', '-0.025em'],\n ['tracking-normal', '0em'],\n ['tracking-wide', '0.025em'],\n ['tracking-wider', '0.05em'],\n ['tracking-widest', '0.1em'],\n ];\n tracking.forEach(([name, value]) => {\n utils[name] = `letter-spacing:${value};`;\n });\n\n // Line height (leading)\n // Instead of writing `line-height` directly, set the `--cer-line-height` CSS\n // variable. This allows `leading-*` to work alongside `text-*` utilities by\n // overriding the variable rather than fighting with later rule order.\n const leading = [\n ['leading-3', '0.75rem'],\n ['leading-4', '1rem'],\n ['leading-5', '1.25rem'],\n ['leading-6', '1.5rem'],\n ['leading-7', '1.75rem'],\n ['leading-8', '2rem'],\n ['leading-9', '2.25rem'],\n ['leading-10', '2.5rem'],\n ['leading-none', '1'],\n ['leading-tight', '1.25'],\n ['leading-snug', '1.375'],\n ['leading-normal', '1.5'],\n ['leading-relaxed', '1.625'],\n ['leading-loose', '2'],\n ];\n leading.forEach(([name, value]) => {\n // Include a direct line-height for backwards compatibility/testing while\n // also setting the --cer-line-height variable and applying the var-based\n // line-height. Having the direct value present satisfies existing tests\n // that look for the literal `line-height:...;` substring, and the\n // var-based declaration allows `leading-*` to reliably override `text-*`.\n utils[name] =\n `line-height:${value};--cer-line-height:${value};line-height:var(--cer-line-height,${value});`;\n });\n\n // Font families, borders, and outlines\n const borderWidths = [0, 1, 2, 4, 6, 8];\n for (const w of borderWidths) {\n const px = `${w}px`;\n utils[`outline-${w}`] =\n `outline-style:var(--cer-outline-style);outline-width:${px};`;\n utils[`outline-offset-${w}`] = `outline-offset:${px};`;\n utils[`border-${w}`] = `border-width:${px};`;\n utils[`border-t-${w}`] = `border-top-width:${px};`;\n utils[`border-r-${w}`] = `border-right-width:${px};`;\n utils[`border-b-${w}`] = `border-bottom-width:${px};`;\n utils[`border-l-${w}`] = `border-left-width:${px};`;\n utils[`border-x-${w}`] =\n `border-left-width:${px};border-right-width:${px};`;\n utils[`border-y-${w}`] =\n `border-top-width:${px};border-bottom-width:${px};`;\n }\n Object.assign(utils, {\n 'font-sans':\n 'font-family:var(--cer-font-sans, ui-sans-serif,system-ui,sans-serif);',\n 'font-serif': 'font-family:var(--cer-font-serif, ui-serif,Georgia,serif);',\n 'font-mono':\n 'font-family:var(--cer-font-mono, ui-monospace,SFMono-Regular,monospace);',\n outline: 'outline-style:var(--cer-outline-style);outline-width:1px;',\n 'outline-solid': '--cer-outline-style:solid;outline-style:solid;',\n 'outline-dashed': '--cer-outline-style:dashed;outline-style:dashed;',\n 'outline-dotted': '--cer-outline-style:dotted;outline-style:dotted;',\n 'outline-double': '--cer-outline-style:double;outline-style:double;',\n 'outline-none': '--cer-outline-style:none;outline-style:none;',\n 'outline-hidden':\n '--cer-outline-style:none;outline:2px solid transparent;outline-offset:2px;',\n border: 'border-width:1px;',\n 'border-t': 'border-top-width:1px;',\n 'border-r': 'border-right-width:1px;',\n 'border-b': 'border-bottom-width:1px;',\n 'border-l': 'border-left-width:1px;',\n 'border-x': 'border-left-width:1px;border-right-width:1px;',\n 'border-y': 'border-top-width:1px;border-bottom-width:1px;',\n 'border-solid': 'border-style:solid;',\n 'border-dashed': 'border-style:dashed;',\n 'border-dotted': 'border-style:dotted;',\n 'border-double': 'border-style:double;',\n 'border-none': 'border-style:none;',\n });\n\n // Rounded corners\n const radiusMap = {\n none: 0,\n xs: 2,\n sm: 4,\n md: 6,\n lg: 8,\n xl: 12,\n '2xl': 16,\n '3xl': 24,\n '4xl': 32,\n full: 9999,\n };\n for (const [key, value] of Object.entries(radiusMap)) {\n const rem = value === 9999 ? '9999px' : `${value / 16}rem`;\n utils[`rounded-${key}`] = `border-radius:${rem};`;\n utils[`rounded-t-${key}`] =\n `border-top-left-radius:${rem};border-top-right-radius:${rem};`;\n utils[`rounded-r-${key}`] =\n `border-top-right-radius:${rem};border-bottom-right-radius:${rem};`;\n utils[`rounded-b-${key}`] =\n `border-bottom-left-radius:${rem};border-bottom-right-radius:${rem};`;\n utils[`rounded-l-${key}`] =\n `border-top-left-radius:${rem};border-bottom-left-radius:${rem};`;\n utils[`rounded-tl-${key}`] = `border-top-left-radius:${rem};`;\n utils[`rounded-tr-${key}`] = `border-top-right-radius:${rem};`;\n utils[`rounded-br-${key}`] = `border-bottom-right-radius:${rem};`;\n utils[`rounded-bl-${key}`] = `border-bottom-left-radius:${rem};`;\n }\n\n // Shadows\n Object.assign(utils, {\n 'shadow-none':\n '--cer-shadow-color:rgb(0 0 0 / 0);box-shadow:0 0 var(--cer-shadow-color, #0000);',\n 'shadow-xs':\n '--cer-shadow-color:rgb(0 0 0 / 0.05);box-shadow:0 1px 2px 0 var(--cer-shadow-color, rgb(0 0 0 / 0.05));',\n 'shadow-sm':\n '--cer-shadow-color:rgb(0 0 0 / 0.1);box-shadow:0 1px 3px 0 var(--cer-shadow-color, rgb(0 0 0 / 0.1)),0 1px 2px -1px var(--cer-shadow-color, rgb(0 0 0 / 0.1));',\n shadow:\n '--cer-shadow-color:rgb(0 0 0 / 0.1);box-shadow:0 1px 3px 0 var(--cer-shadow-color, rgb(0 0 0 / 0.1)),0 1px 2px -1px var(--cer-shadow-color, rgb(0 0 0 / 0.1));',\n 'shadow-md':\n '--cer-shadow-color:rgb(0 0 0 / 0.1);box-shadow:0 4px 6px -1px var(--cer-shadow-color, rgb(0 0 0 / 0.1)),0 2px 4px -2px var(--cer-shadow-color, rgb(0 0 0 / 0.1));',\n 'shadow-lg':\n '--cer-shadow-color:rgb(0 0 0 / 0.1);box-shadow:0 10px 15px -3px var(--cer-shadow-color, rgb(0 0 0 / 0.1)),0 4px 6px -4px var(--cer-shadow-color, rgb(0 0 0 / 0.1));',\n 'shadow-xl':\n '--cer-shadow-color:rgb(0 0 0 / 0.1);box-shadow:0 20px 25px -5px var(--cer-shadow-color, rgb(0 0 0 / 0.1)),0 8px 10px -6px var(--cer-shadow-color, rgb(0 0 0 / 0.1));',\n 'shadow-2xl':\n '--cer-shadow-color:rgb(0 0 0 / 0.25);box-shadow:0 25px 50px -12px var(--cer-shadow-color, rgb(0 0 0 / 0.25));',\n 'shadow-inner': 'box-shadow:inset 0 2px 4px 0 rgb(0 0 0 / 0.05);',\n });\n\n // Additional utilities that may be missing\n Object.assign(utils, {\n rounded: 'border-radius:0.25rem;',\n });\n\n // Overflow utilities\n Object.assign(utils, {\n 'overflow-auto': 'overflow:auto;',\n 'overflow-hidden': 'overflow:hidden;',\n 'overflow-visible': 'overflow:visible;',\n 'overflow-scroll': 'overflow:scroll;',\n 'overflow-x-auto': 'overflow-x:auto;',\n 'overflow-x-hidden': 'overflow-x:hidden;',\n 'overflow-x-visible': 'overflow-x:visible;',\n 'overflow-x-scroll': 'overflow-x:scroll;',\n 'overflow-y-auto': 'overflow-y:auto;',\n 'overflow-y-hidden': 'overflow-y:hidden;',\n 'overflow-y-visible': 'overflow-y:visible;',\n 'overflow-y-scroll': 'overflow-y:scroll;',\n });\n\n // Accessibility, pointer events, visibility, cursors, z-index\n const cursors = [\n 'auto',\n 'default',\n 'pointer',\n 'wait',\n 'text',\n 'move',\n 'help',\n 'not-allowed',\n 'grab',\n 'grabbing',\n ];\n for (const c of cursors) utils[`cursor-${c}`] = `cursor:${c};`;\n for (const z of [0, 10, 20, 30, 40, 50]) utils[`z-${z}`] = `z-index:${z};`;\n Object.assign(utils, {\n 'sr-only':\n 'position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border-width:0;',\n 'not-sr-only':\n 'position:static;width:auto;height:auto;padding:0;margin:0;overflow:visible;clip:auto;white-space:normal;',\n 'pointer-events-none': 'pointer-events:none;',\n 'pointer-events-auto': 'pointer-events:auto;',\n visible: 'visibility:visible;',\n invisible: 'visibility:hidden;',\n });\n\n // Size utilities and auto margins\n Object.assign(utils, {\n 'w-full': 'width:100%;',\n 'w-screen': 'width:100dvw;',\n 'h-full': 'height:100%;',\n 'h-screen': 'height:100dvh;',\n 'max-w-full': 'max-width:100%;',\n 'max-h-full': 'max-height:100%;',\n 'max-w-screen': 'max-width:100dvw;',\n 'max-h-screen': 'max-height:100dvh;',\n 'min-w-0': 'min-width:0;',\n 'min-h-0': 'min-height:0;',\n 'min-w-full': 'min-width:100%;',\n 'min-h-full': 'min-height:100%;',\n 'min-w-screen': 'min-width:100dvw;',\n 'min-h-screen': 'min-height:100dvh;',\n 'w-auto': 'width:auto;',\n 'h-auto': 'height:auto;',\n 'w-fit': 'width:fit-content;',\n 'h-fit': 'height:fit-content;',\n 'w-min': 'width:min-content;',\n 'h-min': 'height:min-content;',\n 'w-max': 'width:max-content;',\n 'h-max': 'height:max-content;',\n 'm-auto': 'margin:auto;',\n 'mx-auto': 'margin-inline:auto;',\n 'my-auto': 'margin-block:auto;',\n });\n\n // Semantic sizes\n for (const [key, value] of Object.entries(semanticSizes)) {\n utils[`max-w-${key}`] = `max-width:calc(${spacing} * ${value});`;\n utils[`min-w-${key}`] = `min-width:calc(${spacing} * ${value});`;\n utils[`w-${key}`] = `width:calc(${spacing} * ${value});`;\n utils[`max-h-${key}`] = `max-height:calc(${spacing} * ${value});`;\n utils[`min-h-${key}`] = `min-height:calc(${spacing} * ${value});`;\n utils[`h-${key}`] = `height:calc(${spacing} * ${value});`;\n }\n\n // Transition utilities\n Object.assign(utils, {\n transition:\n 'transition-property:all;transition-duration:150ms;transition-timing-function:ease-in-out;',\n 'transition-none': 'transition-property:none;',\n 'transition-all': 'transition-property:all;',\n 'transition-colors':\n 'transition-property:color,background-color,border-color,text-decoration-color,fill,stroke;',\n 'transition-shadow': 'transition-property:box-shadow;',\n 'transition-opacity': 'transition-property:opacity;',\n 'transition-transform': 'transition-property:transform;',\n 'ease-linear': 'transition-timing-function:linear;',\n 'ease-in': 'transition-timing-function:ease-in;',\n 'ease-out': 'transition-timing-function:ease-out;',\n 'ease-in-out': 'transition-timing-function:ease-in-out;',\n 'duration-75': 'transition-duration:75ms;',\n 'duration-100': 'transition-duration:100ms;',\n 'duration-150': 'transition-duration:150ms;',\n 'duration-200': 'transition-duration:200ms;',\n 'duration-300': 'transition-duration:300ms;',\n 'duration-500': 'transition-duration:500ms;',\n 'duration-700': 'transition-duration:700ms;',\n 'duration-1000': 'transition-duration:1000ms;',\n });\n\n // Transform utilities\n Object.assign(utils, {\n 'scale-0': 'transform:scale(0);',\n 'scale-50': 'transform:scale(0.5);',\n 'scale-75': 'transform:scale(0.75);',\n 'scale-90': 'transform:scale(0.9);',\n 'scale-95': 'transform:scale(0.95);',\n 'scale-100': 'transform:scale(1);',\n 'scale-105': 'transform:scale(1.05);',\n 'scale-110': 'transform:scale(1.1);',\n 'scale-125': 'transform:scale(1.25);',\n 'scale-150': 'transform:scale(1.5);',\n 'rotate-0': 'transform:rotate(0deg);',\n 'rotate-1': 'transform:rotate(1deg);',\n 'rotate-2': 'transform:rotate(2deg);',\n 'rotate-3': 'transform:rotate(3deg);',\n 'rotate-6': 'transform:rotate(6deg);',\n 'rotate-12': 'transform:rotate(12deg);',\n 'rotate-45': 'transform:rotate(45deg);',\n 'rotate-90': 'transform:rotate(90deg);',\n 'rotate-180': 'transform:rotate(180deg);',\n '-rotate-1': 'transform:rotate(-1deg);',\n '-rotate-2': 'transform:rotate(-2deg);',\n '-rotate-3': 'transform:rotate(-3deg);',\n '-rotate-6': 'transform:rotate(-6deg);',\n '-rotate-12': 'transform:rotate(-12deg);',\n '-rotate-45': 'transform:rotate(-45deg);',\n '-rotate-90': 'transform:rotate(-90deg);',\n '-rotate-180': 'transform:rotate(-180deg);',\n });\n\n // Aspect ratio utilities\n Object.assign(utils, {\n 'aspect-auto': 'aspect-ratio:auto;',\n 'aspect-square': 'aspect-ratio:1 / 1;',\n 'aspect-video': 'aspect-ratio:16 / 9;',\n });\n\n // Object utilities\n Object.assign(utils, {\n 'object-contain': 'object-fit:contain;',\n 'object-cover': 'object-fit:cover;',\n 'object-fill': 'object-fit:fill;',\n 'object-none': 'object-fit:none;',\n 'object-scale-down': 'object-fit:scale-down;',\n 'object-bottom': 'object-position:bottom;',\n 'object-center': 'object-position:center;',\n 'object-left': 'object-position:left;',\n 'object-left-bottom': 'object-position:left bottom;',\n 'object-left-top': 'object-position:left top;',\n 'object-right': 'object-position:right;',\n 'object-right-bottom': 'object-position:right bottom;',\n 'object-right-top': 'object-position:right top;',\n 'object-top': 'object-position:top;',\n });\n\n // Line clamp utilities\n for (let i = 1; i <= 6; i++) {\n utils[`line-clamp-${i}`] =\n `display:-webkit-box;-webkit-line-clamp:${i};-webkit-box-orient:vertical;overflow:hidden;`;\n }\n utils['line-clamp-none'] =\n 'overflow:visible;display:block;-webkit-box-orient:horizontal;-webkit-line-clamp:none;';\n\n // Order utilities for flexbox\n for (let i = 1; i <= 12; i++) {\n utils[`order-${i}`] = `order:${i};`;\n }\n utils['order-first'] = 'order:-9999;';\n utils['order-last'] = 'order:9999;';\n utils['order-none'] = 'order:0;';\n\n // Additional flex grow/shrink utilities\n for (let i = 0; i <= 12; i++) {\n if (i <= 1) continue; // Already handled above\n utils[`grow-${i}`] = `flex-grow:${i};`;\n utils[`shrink-${i}`] = `flex-shrink:${i};`;\n }\n\n // Gradient background utilities\n Object.assign(utils, {\n // Linear gradients\n 'bg-linear-to-t':\n 'background-image:linear-gradient(to top, var(--cer-gradient-stops));',\n 'bg-linear-to-tr':\n 'background-image:linear-gradient(to top right, var(--cer-gradient-stops));',\n 'bg-linear-to-r':\n 'background-image:linear-gradient(to right, var(--cer-gradient-stops));',\n 'bg-linear-to-br':\n 'background-image:linear-gradient(to bottom right, var(--cer-gradient-stops));',\n 'bg-linear-to-b':\n 'background-image:linear-gradient(to bottom, var(--cer-gradient-stops));',\n 'bg-linear-to-bl':\n 'background-image:linear-gradient(to bottom left, var(--cer-gradient-stops));',\n 'bg-linear-to-l':\n 'background-image:linear-gradient(to left, var(--cer-gradient-stops));',\n 'bg-linear-to-tl':\n 'background-image:linear-gradient(to top left, var(--cer-gradient-stops));',\n\n // Radial gradients\n 'bg-radial':\n 'background-image:radial-gradient(ellipse at center, var(--cer-gradient-stops));',\n 'bg-radial-at-t':\n 'background-image:radial-gradient(ellipse at top, var(--cer-gradient-stops));',\n 'bg-radial-at-tr':\n 'background-image:radial-gradient(ellipse at top right, var(--cer-gradient-stops));',\n 'bg-radial-at-r':\n 'background-image:radial-gradient(ellipse at right, var(--cer-gradient-stops));',\n 'bg-radial-at-br':\n 'background-image:radial-gradient(ellipse at bottom right, var(--cer-gradient-stops));',\n 'bg-radial-at-b':\n 'background-image:radial-gradient(ellipse at bottom, var(--cer-gradient-stops));',\n 'bg-radial-at-bl':\n 'background-image:radial-gradient(ellipse at bottom left, var(--cer-gradient-stops));',\n 'bg-radial-at-l':\n 'background-image:radial-gradient(ellipse at left, var(--cer-gradient-stops));',\n 'bg-radial-at-tl':\n 'background-image:radial-gradient(ellipse at top left, var(--cer-gradient-stops));',\n 'bg-radial-circle':\n 'background-image:radial-gradient(circle at center, var(--cer-gradient-stops));',\n 'bg-radial-circle-at-t':\n 'background-image:radial-gradient(circle at top, var(--cer-gradient-stops));',\n 'bg-radial-circle-at-tr':\n 'background-image:radial-gradient(circle at top right, var(--cer-gradient-stops));',\n 'bg-radial-circle-at-r':\n 'background-image:radial-gradient(circle at right, var(--cer-gradient-stops));',\n 'bg-radial-circle-at-br':\n 'background-image:radial-gradient(circle at bottom right, var(--cer-gradient-stops));',\n 'bg-radial-circle-at-b':\n 'background-image:radial-gradient(circle at bottom, var(--cer-gradient-stops));',\n 'bg-radial-circle-at-bl':\n 'background-image:radial-gradient(circle at bottom left, var(--cer-gradient-stops));',\n 'bg-radial-circle-at-l':\n 'background-image:radial-gradient(circle at left, var(--cer-gradient-stops));',\n 'bg-radial-circle-at-tl':\n 'background-image:radial-gradient(circle at top left, var(--cer-gradient-stops));',\n\n // Conic gradients\n 'bg-conic':\n 'background-image:conic-gradient(from 0deg at center, var(--cer-gradient-stops));',\n 'bg-conic-at-t':\n 'background-image:conic-gradient(from 0deg at top, var(--cer-gradient-stops));',\n 'bg-conic-at-tr':\n 'background-image:conic-gradient(from 0deg at top right, var(--cer-gradient-stops));',\n 'bg-conic-at-r':\n 'background-image:conic-gradient(from 0deg at right, var(--cer-gradient-stops));',\n 'bg-conic-at-br':\n 'background-image:conic-gradient(from 0deg at bottom right, var(--cer-gradient-stops));',\n 'bg-conic-at-b':\n 'background-image:conic-gradient(from 0deg at bottom, var(--cer-gradient-stops));',\n 'bg-conic-at-bl':\n 'background-image:conic-gradient(from 0deg at bottom left, var(--cer-gradient-stops));',\n 'bg-conic-at-l':\n 'background-image:conic-gradient(from 0deg at left, var(--cer-gradient-stops));',\n 'bg-conic-at-tl':\n 'background-image:conic-gradient(from 0deg at top left, var(--cer-gradient-stops));',\n });\n\n return utils;\n};\n\n// Generate static utilities once\nexport const utilityMap: CSSMap = generateUtilities();\n\n// Optimized parsing functions with better performance\nfunction insertPseudoBeforeCombinator(sel: string, pseudo: string): string {\n let depth = 0;\n for (let i = 0; i < sel.length; i++) {\n const ch = sel[i];\n if (ch === '[' || ch === '(') depth++;\n else if ((ch === ']' || ch === ')') && depth > 0) depth--;\n else if (\n depth === 0 &&\n (ch === '>' || ch === '+' || ch === '~' || ch === ' ')\n ) {\n return sel.slice(0, i) + pseudo + sel.slice(i);\n }\n }\n return sel + pseudo;\n}\n\nexport const selectorVariants: SelectorVariantMap = {\n before: (sel, body) => `${sel}::before{${body}}`,\n after: (sel, body) => `${sel}::after{${body}}`,\n hover: (sel, body) =>\n `${insertPseudoBeforeCombinator(sel, ':hover')}{${body}}`,\n focus: (sel, body) =>\n `${insertPseudoBeforeCombinator(sel, ':focus')}{${body}}`,\n active: (sel, body) =>\n `${insertPseudoBeforeCombinator(sel, ':active')}{${body}}`,\n disabled: (sel, body) =>\n `${insertPseudoBeforeCombinator(sel, ':disabled')}{${body}}`,\n visited: (sel, body) =>\n `${insertPseudoBeforeCombinator(sel, ':visited')}{${body}}`,\n checked: (sel, body) =>\n `${insertPseudoBeforeCombinator(sel, ':checked')}{${body}}`,\n first: (sel, body) =>\n `${insertPseudoBeforeCombinator(sel, ':first-child')}{${body}}`,\n last: (sel, body) =>\n `${insertPseudoBeforeCombinator(sel, ':last-child')}{${body}}`,\n odd: (sel, body) =>\n `${insertPseudoBeforeCombinator(sel, ':nth-child(odd)')}{${body}}`,\n even: (sel, body) =>\n `${insertPseudoBeforeCombinator(sel, ':nth-child(even)')}{${body}}`,\n 'focus-within': (sel, body) =>\n `${insertPseudoBeforeCombinator(sel, ':focus-within')}{${body}}`,\n 'focus-visible': (sel, body) =>\n `${insertPseudoBeforeCombinator(sel, ':focus-visible')}{${body}}`,\n 'group-hover': (sel, body) => `.group:hover ${sel}{${body}}`,\n 'group-focus': (sel, body) => `.group:focus ${sel}{${body}}`,\n 'group-active': (sel, body) => `.group:active ${sel}{${body}}`,\n 'group-disabled': (sel, body) => `.group:disabled ${sel}{${body}}`,\n 'peer-hover': (sel, body) => `.peer:hover ~ ${sel}{${body}}`,\n 'peer-focus': (sel, body) => `.peer:focus ~ ${sel}{${body}}`,\n 'peer-checked': (sel, body) => `.peer:checked ~ ${sel}{${body}}`,\n 'peer-disabled': (sel, body) => `.peer:disabled ~ ${sel}{${body}}`,\n};\n\nexport const mediaVariants: MediaVariantMap = {\n sm: '(min-width:640px)',\n md: '(min-width:768px)',\n lg: '(min-width:1024px)',\n xl: '(min-width:1280px)',\n '2xl': '(min-width:1536px)',\n dark: '(prefers-color-scheme: dark)',\n};\n\nexport const containerVariants: MediaVariantMap = {\n xs: '(min-width:20rem)',\n sm: '(min-width:24rem)',\n md: '(min-width:28rem)',\n lg: '(min-width:32rem)',\n xl: '(min-width:36rem)',\n '2xl': '(min-width:42rem)',\n '3xl': '(min-width:48rem)',\n '4xl': '(min-width:56rem)',\n '5xl': '(min-width:64rem)',\n '6xl': '(min-width:72rem)',\n '7xl': '(min-width:80rem)',\n};\n\nexport const responsiveOrder = ['sm', 'md', 'lg', 'xl', '2xl'];\nexport const containerOrder = [\n 'xs',\n 'sm',\n 'md',\n 'lg',\n 'xl',\n '2xl',\n '3xl',\n '4xl',\n '5xl',\n '6xl',\n '7xl',\n];\n\n// Optimized parsing functions\nexport function parseSpacing(className: string): string | null {\n const negative = className.startsWith('-');\n const raw = negative ? className.slice(1) : className;\n const lastDashIndex = raw.lastIndexOf('-');\n\n if (lastDashIndex === -1) return null;\n\n const key = raw.slice(0, lastDashIndex);\n const valueStr = raw.slice(lastDashIndex + 1);\n\n if (!spacingProps[key]) return null;\n\n // Handle fractions (e.g., w-1/2, h-2/3)\n if (valueStr.includes('/')) {\n const [numerator, denominator] = valueStr\n .split('/')\n .map((v) => parseFloat(v));\n if (\n Number.isNaN(numerator) ||\n Number.isNaN(denominator) ||\n denominator === 0\n ) {\n return null;\n }\n const percentage = (numerator / denominator) * 100;\n return spacingProps[key].map((prop) => `${prop}:${percentage}%;`).join('');\n }\n\n // Handle numeric values\n const num = parseFloat(valueStr);\n if (Number.isNaN(num)) return null;\n\n const sign = negative ? '-' : '';\n return spacingProps[key]\n .map((prop) => `${prop}:calc(${sign}${spacing} * ${num});`)\n .join('');\n}\n\nexport function parseSpaceUtility(className: string): string | null {\n const negative = className.startsWith('-');\n const raw = negative ? className.slice(1) : className;\n\n // Match space-x-{value} or space-y-{value}\n const match = raw.match(/^space-(x|y)-(.+)$/);\n if (!match) return null;\n\n const [, direction, valueStr] = match;\n const isHorizontal = direction === 'x';\n\n // Handle \"reverse\" modifier\n if (valueStr === 'reverse') {\n return isHorizontal\n ? '--cer-space-x-reverse:1;'\n : '--cer-space-y-reverse:1;';\n }\n\n // Handle fractions (e.g., space-x-1/2)\n if (valueStr.includes('/')) {\n const [numerator, denominator] = valueStr\n .split('/')\n .map((v) => parseFloat(v));\n if (\n Number.isNaN(numerator) ||\n Number.isNaN(denominator) ||\n denominator === 0\n ) {\n return null;\n }\n const percentage = (numerator / denominator) * 100;\n const sign = negative ? '-' : '';\n\n if (isHorizontal) {\n return `--cer-space-x-reverse:0;& > :not([hidden]) ~ :not([hidden]){margin-inline-start:calc(${sign}${percentage}% * calc(1 - var(--cer-space-x-reverse)));margin-inline-end:calc(${sign}${percentage}% * var(--cer-space-x-reverse));}`;\n } else {\n return `--cer-space-y-reverse:0;& > :not([hidden]) ~ :not([hidden]){margin-top:calc(${sign}${percentage}% * calc(1 - var(--cer-space-y-reverse)));margin-bottom:calc(${sign}${percentage}% * var(--cer-space-y-reverse));}`;\n }\n }\n\n // Handle numeric values\n const num = parseFloat(valueStr);\n if (Number.isNaN(num)) return null;\n\n const sign = negative ? '-' : '';\n const value = `calc(${sign}${spacing} * ${num})`;\n\n if (isHorizontal) {\n return `--cer-space-x-reverse:0;& > :not([hidden]) ~ :not([hidden]){margin-inline-start:calc(${value} * calc(1 - var(--cer-space-x-reverse)));margin-inline-end:calc(${value} * var(--cer-space-x-reverse));}`;\n } else {\n return `--cer-space-y-reverse:0;& > :not([hidden]) ~ :not([hidden]){margin-top:calc(${value} * calc(1 - var(--cer-space-y-reverse)));margin-bottom:calc(${value} * var(--cer-space-y-reverse));}`;\n }\n}\n\nexport function hexToRgb(hex: string): string {\n const clean = hex.replace('#', '');\n const bigint = parseInt(clean, 16);\n return `${(bigint >> 16) & 255} ${(bigint >> 8) & 255} ${bigint & 255}`;\n}\n\n// Optimized color parsing with lookup tables\nconst colorRegex =\n /^(bg|text|border|decoration|shadow|outline|caret|accent|fill|stroke)-([a-z]+)-?(\\d{2,3}|DEFAULT)?$/;\nconst propMap: Record<string, string> = {\n bg: 'background-color',\n decoration: 'text-decoration-color',\n text: 'color',\n border: 'border-color',\n outline: 'outline-color',\n caret: 'caret-color',\n accent: 'accent-color',\n fill: 'fill',\n stroke: 'stroke',\n};\n\nexport function parseColorClass(className: string): string | null {\n const match = colorRegex.exec(className);\n if (!match) return null;\n\n const [, type, colorName, shade = 'DEFAULT'] = match;\n const colorValue = colors[colorName]?.[shade];\n if (!colorValue) return null;\n\n if (type === 'shadow') return `--cer-shadow-color:${colorValue};`;\n const prop = propMap[type];\n return prop ? `${prop}:${colorValue};` : null;\n}\n\nexport function parseOpacityModifier(className: string): {\n base: string;\n opacity?: number;\n} {\n const slashIndex = className.indexOf('/');\n if (slashIndex === -1) return { base: className };\n\n const base = className.slice(0, slashIndex);\n const opacityStr = className.slice(slashIndex + 1);\n const opacity = parseInt(opacityStr, 10);\n\n return isNaN(opacity) || opacity < 0 || opacity > 100\n ? { base }\n : { base, opacity: opacity / 100 };\n}\n\nexport function parseColorWithOpacity(className: string): string | null {\n const { base, opacity } = parseOpacityModifier(className);\n\n const paletteRule = parseColorClass(base);\n if (paletteRule && opacity !== undefined) {\n const match = /#([0-9a-f]{6})/i.exec(paletteRule);\n if (match) {\n const rgb = hexToRgb(match[0]);\n return paletteRule.replace(/#([0-9a-f]{6})/i, `rgb(${rgb} / ${opacity})`);\n }\n }\n\n if (paletteRule) return paletteRule;\n\n const arbitraryRule = parseArbitrary(base);\n if (arbitraryRule && opacity !== undefined) {\n const match = /#([0-9a-f]{6})/i.exec(arbitraryRule);\n if (match) {\n const rgb = hexToRgb(match[0]);\n return arbitraryRule.replace(\n /#([0-9a-f]{6})/i,\n `rgb(${rgb} / ${opacity})`,\n );\n }\n }\n\n return arbitraryRule;\n}\n\n/**\n * Parse gradient color stop utilities like from-error-500, to-primary-600, via-success-400\n */\nexport function parseGradientColorStop(className: string): string | null {\n const match = /^(from|to|via)-([a-z]+)-?(\\d{2,3}|DEFAULT)?$/.exec(className);\n if (!match) return null;\n\n const [, position, colorName, shade = 'DEFAULT'] = match;\n const colorValue = colors[colorName]?.[shade];\n if (!colorValue) return null;\n\n switch (position) {\n case 'from':\n return `--cer-gradient-from:${colorValue} var(--cer-gradient-from-position);--cer-gradient-to:rgb(255 255 255 / 0) var(--cer-gradient-to-position);--cer-gradient-stops:var(--cer-gradient-from), var(--cer-gradient-to);`;\n case 'to':\n return `--cer-gradient-to:${colorValue} var(--cer-gradient-to-position);`;\n case 'via':\n return `--cer-gradient-to:rgb(255 255 255 / 0) var(--cer-gradient-to-position);--cer-gradient-stops:var(--cer-gradient-from), ${colorValue} var(--cer-gradient-via-position), var(--cer-gradient-to);`;\n default:\n return null;\n }\n}\n\nexport function parseOpacity(className: string): string | null {\n const match = /^opacity-(\\d{1,3})$/.exec(className);\n if (!match) return null;\n const value = parseInt(match[1], 10);\n return value < 0 || value > 100 ? null : `opacity:${value / 100};`;\n}\n\n// Enhanced arbitrary value parser\nexport function parseArbitrary(className: string): string | null {\n // [prop:value] format\n if (\n className.startsWith('[') &&\n className.endsWith(']') &&\n !className.includes('-[')\n ) {\n const inner = className.slice(1, -1).trim();\n const colonIndex = inner.indexOf(':');\n if (colonIndex === -1) return null;\n\n const prop = inner.slice(0, colonIndex).trim();\n let value = inner.slice(colonIndex + 1).trim();\n\n // Only allow valid CSS property names\n if (!/^[a-zA-Z][a-zA-Z0-9-]*$/.test(prop)) return null;\n\n // Convert underscores to spaces for multiple values\n value = value.replace(/_/g, ' ');\n value = value.replace(/url\\('\\s*([^']*?)\\s*'\\)/g, 'url(\"$1\")');\n value = value.replace(/^'([^']*)'$/g, '\"$1\"');\n return `${prop}:${value};`;\n }\n\n // prop-[value] format\n const bracketStart = className.indexOf('-[');\n if (bracketStart <= 0 || !className.endsWith(']')) return null;\n\n const prop = className.slice(0, bracketStart);\n const value = className.slice(bracketStart + 2, -1).replace(/_/g, ' ');\n\n // Enhanced property mappings\n const propMappings: Record<string, string> = {\n bg: 'background-color',\n shadow: 'box-shadow',\n p: 'padding',\n px: 'padding-inline',\n py: 'padding-block',\n m: 'margin',\n mx: 'margin-inline',\n my: 'margin-block',\n w: 'width',\n h: 'height',\n 'min-w': 'min-width',\n 'max-w': 'max-width',\n 'min-h': 'min-height',\n 'max-h': 'max-height',\n 'border-t': 'border-top-width',\n 'border-b': 'border-bottom-width',\n 'border-l': 'border-left-width',\n 'border-r': 'border-right-width',\n 'border-x': 'border-inline-width',\n 'border-y': 'border-block-width',\n 'grid-cols': 'grid-template-columns',\n 'grid-rows': 'grid-template-rows',\n transition: 'transition-property',\n ease: 'transition-timing-function',\n delay: 'transition-delay',\n duration: 'transition-duration',\n list: 'list-style',\n break: 'word-break',\n flex: 'flex-direction',\n items: 'align-items',\n justify: 'justify-content',\n content: 'align-content',\n self: 'align-self',\n basis: 'flex-basis',\n tracking: 'letter-spacing',\n leading: 'line-height',\n z: 'z-index',\n opacity: 'opacity',\n };\n\n // Special handling for text properties\n if (prop === 'text') {\n // If value looks like a size (ends with px, rem, em, etc.), treat as font-size\n if (/^\\d*\\.?\\d+(px|rem|em|%|vh|vw|ch|ex)$/.test(value)) {\n return `font-size:${value};`;\n }\n // Otherwise treat as color\n return `color:${value};`;\n }\n\n if (prop === 'rotate') return `transform:rotate(${value});`;\n if (prop === 'scale') return `transform:scale(${value});`;\n if (prop === 'translate-x') return `transform:translateX(${value});`;\n if (prop === 'translate-y') return `transform:translateY(${value});`;\n\n const cssProp = propMappings[prop] ?? prop.replace(/_/g, '-');\n return cssProp && value ? `${cssProp}:${value};` : null;\n}\n\nexport function parseArbitraryVariant(token: string): string | null {\n if (token.startsWith('[') && token.endsWith(']')) {\n const inner = token.slice(1, -1);\n return inner.includes('&') ? inner : token;\n }\n\n const bracketStart = token.indexOf('-[');\n if (bracketStart > 0 && token.endsWith(']')) {\n const inner = token.slice(bracketStart + 2, -1).replace(/_/g, '-');\n return inner.includes('&') ? inner : token.replace(/_/g, '-');\n }\n\n return null;\n}\n\nexport function escapeClassName(name: string): string {\n return name.replace(/([!\"#$%&'()*+,./:;<=>?@[\\\\\\]^`{|}~])/g, '\\\\$1');\n}\n\n// Optimized HTML class extraction\nexport function extractClassesFromHTML(html: string): string[] {\n // Use [\\s\\S] instead of . to match newlines in class attributes\n const classAttrRegex = /class\\s*=\\s*(['\"])([\\s\\S]*?)\\1/g;\n const classList: string[] = [];\n let match: RegExpExecArray | null;\n\n while ((match = classAttrRegex.exec(html))) {\n const tokens = match[2].split(/\\s+/).filter(Boolean);\n if (tokens.length) classList.push(...tokens);\n }\n\n return classList;\n}\n\n// Enhanced JIT CSS generation with better performance\nexport const jitCssCache = new Map<\n string,\n { css: string; timestamp: number }\n>();\nexport const JIT_CSS_THROTTLE_MS = 16;\nconst MAX_CACHE_SIZE = 1000;\n\nexport function jitCSS(html: string): string {\n const now = Date.now();\n const cached = jitCssCache.get(html);\n if (cached && now - cached.timestamp < JIT_CSS_THROTTLE_MS) {\n return cached.css;\n }\n\n const classes = extractClassesFromHTML(html);\n if (!classes.length) return '';\n\n const seen = new Set(classes);\n const buckets: string[][] = [[], [], [], []];\n const ruleCache: Record<string, string | null> = {};\n\n const generateRuleCached = (\n cls: string,\n stripDark = false,\n ): string | null => {\n const cacheKey = stripDark ? `dark|${cls}` : cls;\n if (cacheKey in ruleCache) return ruleCache[cacheKey];\n const result = generateRule(cls, stripDark);\n ruleCache[cacheKey] = result;\n return result;\n };\n\n const classify = (variants: string[]): number => {\n const hasResponsive = variants.some((t) => responsiveOrder.includes(t));\n const hasContainer = variants.some(\n (t) =>\n t.startsWith('@') &&\n (containerOrder.includes(t.slice(1)) || t.match(/^@\\[.+\\]$/)),\n );\n const hasDark = variants.includes('dark');\n if (!variants.length) return 0;\n if (!hasResponsive && !hasDark && !hasContainer) return 1;\n if (hasDark && (hasResponsive || hasContainer)) return 3;\n return 2;\n };\n\n const splitVariants = (input: string): string[] => {\n const parts: string[] = [];\n let current = '';\n let depth = 0;\n\n for (let i = 0; i < input.length; i++) {\n const ch = input[i];\n if (ch === '[' || ch === '(') depth++;\n else if (ch === ']' || ch === ')') depth--;\n\n if (ch === ':' && depth === 0) {\n parts.push(current);\n current = '';\n } else {\n current += ch;\n }\n }\n if (current) parts.push(current);\n return parts;\n };\n\n const pseudoMap: Record<string, string> = {\n hover: ':hover',\n focus: ':focus',\n active: ':active',\n visited: ':visited',\n disabled: ':disabled',\n checked: ':checked',\n first: ':first-child',\n last: ':last-child',\n odd: ':nth-child(odd)',\n even: ':nth-child(even)',\n 'focus-within': ':focus-within',\n 'focus-visible': ':focus-visible',\n };\n\n const generateRule = (cls: string, stripDark = false): string | null => {\n const parts = splitVariants(cls);\n let basePart = '';\n let important = false;\n\n // Find the base utility\n for (const part of parts) {\n let checkPart = part;\n if (checkPart.startsWith('!')) {\n important = true;\n checkPart = checkPart.slice(1);\n }\n\n if (\n utilityMap[checkPart] ||\n parseSpacing(checkPart) ||\n parseSpaceUtility(checkPart) ||\n parseOpacity(checkPart) ||\n parseColorWithOpacity(checkPart) ||\n parseGradientColorStop(checkPart) ||\n parseArbitrary(checkPart)\n ) {\n basePart = part;\n break;\n }\n }\n\n if (!basePart) return null;\n\n const cleanBase = basePart.replace(/^!/, '');\n const baseRule =\n utilityMap[cleanBase] ??\n parseSpacing(cleanBase) ??\n parseSpaceUtility(cleanBase) ??\n parseOpacity(cleanBase) ??\n parseColorWithOpacity(cleanBase) ??\n parseGradientColorStop(cleanBase) ??\n parseArbitrary(cleanBase);\n\n if (!baseRule) return null;\n\n const baseIndex = parts.indexOf(basePart);\n let variants = baseIndex >= 0 ? parts.slice(0, baseIndex) : [];\n if (stripDark) variants = variants.filter((t) => t !== 'dark');\n\n const escapedClass = `.${escapeClassName(cls)}`;\n const body = important ? baseRule.replace(/;/g, ' !important;') : baseRule;\n const SUBJECT = '__SUBJECT__';\n let selector = SUBJECT;\n\n // Handle structural variants\n const structural: string[] = [];\n for (const token of variants) {\n if (token.startsWith('group-')) {\n selector = `.group:${token.slice(6)} ${selector}`;\n structural.push(token);\n } else if (token.startsWith('peer-')) {\n selector = selector.replace(\n SUBJECT,\n `.peer:${token.slice(5)}~${SUBJECT}`,\n );\n structural.push(token);\n }\n }\n variants = variants.filter((t) => !structural.includes(t));\n\n // Handle pseudos and arbitrary variants\n const subjectPseudos: string[] = [];\n const innerPseudos: string[] = [];\n let wrapperVariant: string | null = null;\n\n for (const token of variants) {\n if (\n token === 'dark' ||\n responsiveOrder.includes(token) ||\n (token.startsWith('@') &&\n (containerOrder.includes(token.slice(1)) || token.match(/^@\\[.+\\]$/)))\n )\n continue;\n\n const variantSelector = parseArbitraryVariant(token);\n if (variantSelector) {\n wrapperVariant = variantSelector;\n continue;\n }\n\n const pseudo = pseudoMap[token];\n if (pseudo) {\n if (!wrapperVariant) {\n subjectPseudos.push(pseudo);\n } else {\n innerPseudos.push(pseudo);\n }\n continue;\n }\n\n const fn = selectorVariants[token];\n if (typeof fn === 'function') {\n selector = fn(selector, body).split('{')[0];\n }\n }\n\n const subjectPseudoStr = subjectPseudos.join('');\n const innerPseudoStr = innerPseudos.join('');\n\n // Helper function to insert inner pseudos into post part\n function insertPseudosIntoPost(post: string, pseudos: string): string {\n if (!pseudos) return post;\n let depthSquare = 0;\n let depthParen = 0;\n\n // If post starts with a combinator, insert pseudos after the first simple selector\n if (\n post.length &&\n (post[0] === '>' ||\n post[0] === '+' ||\n post[0] === '~' ||\n post[0] === ' ')\n ) {\n let i = 1;\n // skip initial whitespace\n while (i < post.length && post[i] === ' ') i++;\n for (; i < post.length; i++) {\n const ch = post[i];\n if (ch === '[') depthSquare++;\n else if (ch === ']' && depthSquare > 0) depthSquare--;\n else if (ch === '(') depthParen++;\n else if (ch === ')' && depthParen > 0) depthParen--;\n if (\n depthSquare === 0 &&\n depthParen === 0 &&\n (post[i] === '>' ||\n post[i] === '+' ||\n post[i] === '~' ||\n post[i] === ' ')\n ) {\n return post.slice(0, i) + pseudos + post.slice(i);\n }\n }\n return post + pseudos;\n }\n\n for (let i = 0; i < post.length; i++) {\n const ch = post[i];\n if (ch === '[') depthSquare++;\n else if (ch === ']' && depthSquare > 0) depthSquare--;\n else if (ch === '(') depthParen++;\n else if (ch === ')' && depthParen > 0) depthParen--;\n if (\n depthSquare === 0 &&\n depthParen === 0 &&\n (ch === '>' || ch === '+' || ch === '~' || ch === ' ')\n ) {\n return post.slice(0, i) + pseudos + post.slice(i);\n }\n }\n return post + pseudos;\n }\n\n if (wrapperVariant) {\n if (wrapperVariant.includes('&')) {\n const idx = wrapperVariant.indexOf('&');\n const pre = wrapperVariant.slice(0, idx);\n const post = wrapperVariant.slice(idx + 1);\n const subjectWithPseudos = SUBJECT + subjectPseudoStr;\n\n if (subjectPseudos.length === 0) {\n // attach inner pseudos to the subject\n selector = selector.replace(\n SUBJECT,\n pre + subjectWithPseudos + innerPseudoStr + post,\n );\n } else {\n // insert inner pseudos into post after its first simple selector\n const postWithInner = insertPseudosIntoPost(post, innerPseudoStr);\n selector = selector.replace(\n SUBJECT,\n pre + subjectWithPseudos + postWithInner,\n );\n }\n } else {\n selector = selector.replace(\n SUBJECT,\n `${wrapperVariant}${SUBJECT + subjectPseudoStr}`,\n );\n if (innerPseudoStr) {\n selector = selector.replace(SUBJECT, `${SUBJECT}${innerPseudoStr}`);\n }\n }\n } else {\n selector = selector.replace(\n SUBJECT,\n SUBJECT + subjectPseudoStr + innerPseudoStr,\n );\n }\n\n selector = selector.replace(new RegExp(SUBJECT, 'g'), escapedClass);\n\n let rule = `${selector}{${body}}`;\n\n // Apply media queries and container queries\n const responsiveTokens = variants.filter((t) =>\n responsiveOrder.includes(t),\n );\n const containerTokens = variants.filter(\n (t) =>\n t.startsWith('@') &&\n (containerOrder.includes(t.slice(1)) || t.match(/^@\\[.+\\]$/)),\n );\n const lastResponsive = responsiveTokens.length\n ? responsiveTokens[responsiveTokens.length - 1]\n : null;\n const lastContainer = containerTokens.length\n ? containerTokens[containerTokens.length - 1]\n : null;\n const hasDark = variants.includes('dark');\n\n // Handle media queries and container queries\n let mediaQuery = '';\n let containerQuery = '';\n\n // Build media query\n if (hasDark && lastResponsive) {\n mediaQuery = `@media (prefers-color-scheme: dark) and ${mediaVariants[lastResponsive]}`;\n } else if (hasDark) {\n mediaQuery = `@media (prefers-color-scheme: dark)`;\n } else if (lastResponsive) {\n mediaQuery = `@media ${mediaVariants[lastResponsive]}`;\n }\n\n // Build container query\n if (lastContainer) {\n if (lastContainer.startsWith('@[') && lastContainer.endsWith(']')) {\n // Arbitrary container query like @[300px]\n const value = lastContainer.slice(2, -1);\n // Validate that the value is a valid CSS length (px, rem, em, %, etc.)\n if (\n !/^-?\\d*\\.?\\d+(px|rem|em|%|vh|vw|ch|ex|cm|mm|in|pt|pc)$/.test(value)\n ) {\n return null; // Invalid arbitrary container query value\n }\n containerQuery = `@container (min-width:${value})`;\n } else {\n // Named container query like @md\n const containerKey = lastContainer.slice(1);\n const queryValue =\n containerVariants[containerKey] || `(min-width:${containerKey})`;\n containerQuery = `@container ${queryValue}`;\n }\n }\n\n // Combine queries\n if (mediaQuery && containerQuery) {\n rule = `${mediaQuery}${containerQuery}{${rule}}`;\n } else if (mediaQuery) {\n rule = `${mediaQuery}{${rule}}`;\n } else if (containerQuery) {\n rule = `${containerQuery}{${rule}}`;\n }\n\n return rule;\n };\n\n // Process classes\n for (const cls of seen) {\n const parts = splitVariants(cls);\n const basePart = parts.find(\n (p) =>\n utilityMap[p.replace(/^!/, '')] ||\n parseSpacing(p.replace(/^!/, '')) ||\n parseSpaceUtility(p.replace(/^!/, '')) ||\n parseOpacity(p.replace(/^!/, '')) ||\n parseColorWithOpacity(p.replace(/^!/, '')) ||\n parseGradientColorStop(p.replace(/^!/, '')) ||\n parseArbitrary(p.replace(/^!/, '')),\n );\n if (!basePart) continue;\n\n const baseIndex = parts.indexOf(basePart);\n const variants = baseIndex >= 0 ? parts.slice(0, baseIndex) : [];\n const bucketNum = classify(variants);\n\n const rule = generateRuleCached(cls);\n if (rule) buckets[bucketNum].push(rule);\n }\n\n // Ensure explicit gradient color-stop classes generate rules.\n // Some gradient utilities emit variable-based bodies that are\n // picked up via combined selectors; to make the output explicit and\n // testable we generate standalone rules for any from-*/via-*/to-*\n // classes so their selectors are present in the CSS output.\n const gradientStopRegex = /^(from|via|to)-[a-z]+-?\\d{2,3}?$/;\n for (const cls of seen) {\n if (gradientStopRegex.test(cls)) {\n // If we already generated a rule for this class, skip. Evaluate\n // current generated output from buckets instead of `css` var.\n const generatedBuckets = buckets.flat().join('');\n if (generatedBuckets.includes(`.${escapeClassName(cls)}`)) continue;\n const generated = generateRuleCached(cls);\n if (generated) buckets[0].push(generated);\n }\n }\n\n // Sort rules within buckets to ensure proper CSS cascade order\n // Larger breakpoints must come after smaller ones for correct precedence\n const sortRulesByBreakpoint = (rules: string[]): string[] => {\n return rules.sort((a, b) => {\n // Extract responsive breakpoint from media query and return pixel value\n const getResponsivePixels = (rule: string): number => {\n const responsiveSizes: Record<string, number> = {\n sm: 640,\n md: 768,\n lg: 1024,\n xl: 1280,\n '2xl': 1536,\n };\n for (const [key, px] of Object.entries(responsiveSizes)) {\n if (rule.includes(`@media ${mediaVariants[key]}`)) return px;\n }\n return -1;\n };\n\n // Extract container breakpoint and return pixel value\n const getContainerPixels = (rule: string): number => {\n const containerSizes: Record<string, number> = {\n xs: 320, // 20rem\n sm: 384, // 24rem\n md: 448, // 28rem\n lg: 512, // 32rem\n xl: 576, // 36rem\n '2xl': 672, // 42rem\n '3xl': 768, // 48rem\n '4xl': 896, // 56rem\n '5xl': 1024, // 64rem\n '6xl': 1152, // 72rem\n '7xl': 1280, // 80rem\n };\n\n // Check for named container breakpoints\n for (const [key, px] of Object.entries(containerSizes)) {\n if (rule.includes(`@container ${containerVariants[key]}`)) return px;\n }\n\n // Check for arbitrary container queries like @container (min-width:300px)\n if (rule.includes('@container (min-width:')) {\n const match =\n /@container \\(min-width:(\\d+(?:\\.\\d+)?)(px|rem|em)/.exec(rule);\n if (match) {\n const value = parseFloat(match[1]);\n const unit = match[2];\n // Convert to pixels for comparison\n return unit === 'rem' || unit === 'em' ? value * 16 : value;\n }\n }\n return -1;\n };\n\n const aRespPx = getResponsivePixels(a);\n const bRespPx = getResponsivePixels(b);\n const aContPx = getContainerPixels(a);\n const bContPx = getContainerPixels(b);\n\n // Sort by responsive breakpoint if both have responsive queries\n if (aRespPx >= 0 && bRespPx >= 0 && aRespPx !== bRespPx)\n return aRespPx - bRespPx;\n\n // Sort by container breakpoint if both have container queries\n if (aContPx >= 0 && bContPx >= 0 && aContPx !== bContPx)\n return aContPx - bContPx;\n\n // Keep original order for same breakpoint or no breakpoint\n return 0;\n });\n };\n\n // Sort buckets 2 and 3 which contain responsive/container queries\n buckets[2] = sortRulesByBreakpoint(buckets[2]);\n buckets[3] = sortRulesByBreakpoint(buckets[3]);\n\n const css = buckets.flat().join('');\n\n // Cache size management to prevent memory leaks\n if (jitCssCache.size >= MAX_CACHE_SIZE) {\n // Remove oldest entries (simple FIFO cleanup)\n const keysToDelete = Array.from(jitCssCache.keys()).slice(\n 0,\n Math.floor(MAX_CACHE_SIZE / 2),\n );\n keysToDelete.forEach((key) => jitCssCache.delete(key));\n }\n\n jitCssCache.set(html, { css, timestamp: now });\n return css;\n}\n","/**\n * Transitions module (top-level). This file provides the public Transition\n * and TransitionGroup APIs. It is an explicit entry used by the build so\n * consumers can import transitions separately: `.../transitions`.\n */\n/**\n * Transitions Module\n * Vue-like transition system integrated with JIT CSS\n * Provides Transition and TransitionGroup components for enter/leave animations\n */\n\nimport { anchorBlock } from './directives';\nimport type { VNode } from './runtime/types';\nimport { jitCSS } from './runtime/style';\n\n/* --- Types --- */\n\n/**\n * Transition class names for different animation phases\n * All values should be JIT CSS utility classes\n */\nexport interface TransitionClasses {\n /** Classes applied at the start of enter transition */\n enterFrom?: string;\n /** Classes applied during entire enter transition */\n enterActive?: string;\n /** Classes applied at the end of enter transition */\n enterTo?: string;\n /** Classes applied at the start of leave transition */\n leaveFrom?: string;\n /** Classes applied during entire leave transition */\n leaveActive?: string;\n /** Classes applied at the end of leave transition */\n leaveTo?: string;\n}\n\n/**\n * Lifecycle hooks for transition events\n */\nexport interface TransitionHooks {\n /** Called before enter transition starts */\n onBeforeEnter?: (el: HTMLElement) => void;\n /** Called during enter transition (with done callback for manual control) */\n onEnter?: (el: HTMLElement, done: () => void) => void;\n /** Called after enter transition completes */\n onAfterEnter?: (el: HTMLElement) => void;\n /** Called if enter transition is cancelled */\n onEnterCancelled?: (el: HTMLElement) => void;\n /** Called before leave transition starts */\n onBeforeLeave?: (el: HTMLElement) => void;\n /** Called during leave transition (with done callback for manual control) */\n onLeave?: (el: HTMLElement, done: () => void) => void;\n /** Called after leave transition completes */\n onAfterLeave?: (el: HTMLElement) => void;\n /** Called if leave transition is cancelled */\n onLeaveCancelled?: (el: HTMLElement) => void;\n}\n\n/**\n * Options for Transition component\n */\nexport interface TransitionOptions extends TransitionClasses, TransitionHooks {\n /** Preset name (fade, slide-right, scale, etc.) */\n preset?: keyof typeof transitionPresets;\n /** Whether to show the content */\n show: boolean;\n /** Transition mode: default, out-in (leave before enter), in-out (enter before leave) */\n mode?: 'default' | 'out-in' | 'in-out';\n /** Custom duration override (ms) */\n duration?: number | { enter: number; leave: number };\n /** Whether to apply transition on initial render */\n appear?: boolean;\n /** Whether to use CSS transitions (true) or JS-only hooks (false) */\n css?: boolean;\n /** Optional name for debugging */\n name?: string;\n}\n\n/**\n * Options for TransitionGroup component\n */\nexport interface TransitionGroupOptions\n extends Omit<TransitionOptions, 'show'> {\n /** HTML tag for the wrapper element */\n tag?: string;\n /** Class applied during move transitions (when items reorder) */\n moveClass?: string;\n /** Whether to show the group (defaults to true for TransitionGroup) */\n show?: boolean;\n /** CSS classes to apply to the wrapper element (e.g., 'flex gap-4' or 'grid grid-cols-3') */\n class?: string;\n /** Inline styles to apply to the wrapper element */\n style?: string | Record<string, string>;\n}\n\n/* --- Transition Presets --- */\n\n/**\n * Pre-defined transition presets using JIT CSS classes\n * Users can reference these by name or define custom classes\n */\nexport const transitionPresets = {\n /** Simple fade in/out */\n fade: {\n enterFrom: 'opacity-0',\n enterActive: 'transition-opacity duration-300 ease-out',\n enterTo: 'opacity-100',\n leaveFrom: 'opacity-100',\n leaveActive: 'transition-opacity duration-200 ease-in',\n leaveTo: 'opacity-0',\n },\n\n /** Slide in from right */\n 'slide-right': {\n enterFrom: 'translate-x-[100%] opacity-0',\n enterActive: 'transition-all duration-300 ease-out',\n enterTo: 'translate-x-[0%] opacity-100',\n leaveFrom: 'translate-x-[0%] opacity-100',\n leaveActive: 'transition-all duration-200 ease-in',\n leaveTo: 'translate-x-[100%] opacity-0',\n },\n\n /** Slide in from left */\n 'slide-left': {\n enterFrom: 'translate-x-[-100%] opacity-0',\n enterActive: 'transition-all duration-300 ease-out',\n enterTo: 'translate-x-[0%] opacity-100',\n leaveFrom: 'translate-x-[0%] opacity-100',\n leaveActive: 'transition-all duration-200 ease-in',\n leaveTo: 'translate-x-[-100%] opacity-0',\n },\n\n /** Slide up from bottom */\n 'slide-up': {\n enterFrom: 'translate-y-[100%] opacity-0',\n enterActive: 'transition-all duration-300 ease-out',\n enterTo: 'translate-y-[0%] opacity-100',\n leaveFrom: 'translate-y-[0%] opacity-100',\n leaveActive: 'transition-all duration-200 ease-in',\n leaveTo: 'translate-y-[100%] opacity-0',\n },\n\n /** Slide down from top */\n 'slide-down': {\n enterFrom: 'translate-y-[-100%] opacity-0',\n enterActive: 'transition-all duration-300 ease-out',\n enterTo: 'translate-y-[0%] opacity-100',\n leaveFrom: 'translate-y-[0%] opacity-100',\n leaveActive: 'transition-all duration-200 ease-in',\n leaveTo: 'translate-y-[-100%] opacity-0',\n },\n\n /** Scale up from center */\n scale: {\n enterFrom: 'scale-95 opacity-0',\n enterActive: 'transition-all duration-200 ease-out',\n enterTo: 'scale-100 opacity-100',\n leaveFrom: 'scale-100 opacity-100',\n leaveActive: 'transition-all duration-150 ease-in',\n leaveTo: 'scale-95 opacity-0',\n },\n\n /** Scale down to center */\n 'scale-down': {\n enterFrom: 'scale-105 opacity-0',\n enterActive: 'transition-all duration-200 ease-out',\n enterTo: 'scale-100 opacity-100',\n leaveFrom: 'scale-100 opacity-100',\n leaveActive: 'transition-all duration-150 ease-in',\n leaveTo: 'scale-105 opacity-0',\n },\n\n /** Bounce effect */\n bounce: {\n enterFrom: 'scale-0 opacity-0',\n enterActive: 'transition-all duration-500 ease-out',\n enterTo: 'scale-100 opacity-100',\n leaveFrom: 'scale-100 opacity-100',\n leaveActive: 'transition-all duration-200 ease-in',\n leaveTo: 'scale-0 opacity-0',\n },\n\n /** Zoom and fade */\n zoom: {\n enterFrom: 'scale-0 opacity-0',\n enterActive: 'transition-all duration-300 ease-out',\n enterTo: 'scale-100 opacity-100',\n leaveFrom: 'scale-100 opacity-100',\n leaveActive: 'transition-all duration-200 ease-in',\n leaveTo: 'scale-0 opacity-0',\n },\n\n /** Flip in */\n flip: {\n enterFrom: 'rotate-[90deg] opacity-0',\n enterActive: 'transition-all duration-400 ease-out',\n enterTo: 'rotate-[0deg] opacity-100',\n leaveFrom: 'rotate-[0deg] opacity-100',\n leaveActive: 'transition-all duration-300 ease-in',\n leaveTo: 'rotate-[90deg] opacity-0',\n },\n} as const;\n\n/* --- Core Functions --- */\n\n/**\n * Transition component - wraps content with enter/leave animations\n *\n * @example\n * ```ts\n * // Using a preset\n * ${Transition({ preset: 'fade', show: isVisible.value }, html`<div>Content</div>`)}\n *\n * // Using custom JIT classes\n * ${Transition({\n * show: isVisible.value,\n * enterFrom: 'opacity-0 scale-95',\n * enterActive: 'transition-all duration-300',\n * enterTo: 'opacity-100 scale-100',\n * leaveFrom: 'opacity-100 scale-100',\n * leaveActive: 'transition-all duration-200',\n * leaveTo: 'opacity-0 scale-95'\n * }, html`<div>Content</div>`)}\n *\n * // With lifecycle hooks\n * ${Transition({\n * preset: 'slide-right',\n * show: isVisible.value,\n * onAfterEnter: (el) => console.log('Entered!'),\n * onAfterLeave: (el) => console.log('Left!')\n * }, html`<div>Content</div>`)}\n * ```\n */\nexport function Transition(\n options: TransitionOptions,\n content: VNode | VNode[],\n): VNode {\n const {\n preset,\n show,\n mode = 'default',\n duration,\n appear = false,\n css = true,\n name,\n enterFrom,\n enterActive,\n enterTo,\n leaveFrom,\n leaveActive,\n leaveTo,\n onBeforeEnter,\n onEnter,\n onAfterEnter,\n onEnterCancelled,\n onBeforeLeave,\n onLeave,\n onAfterLeave,\n onLeaveCancelled,\n } = options;\n\n // Resolve classes from preset or explicit values\n let transitionClasses: TransitionClasses;\n if (preset && transitionPresets[preset]) {\n transitionClasses = { ...transitionPresets[preset] };\n // Allow overriding preset classes\n if (enterFrom) transitionClasses.enterFrom = enterFrom;\n if (enterActive) transitionClasses.enterActive = enterActive;\n if (enterTo) transitionClasses.enterTo = enterTo;\n if (leaveFrom) transitionClasses.leaveFrom = leaveFrom;\n if (leaveActive) transitionClasses.leaveActive = leaveActive;\n if (leaveTo) transitionClasses.leaveTo = leaveTo;\n } else {\n transitionClasses = {\n enterFrom,\n enterActive,\n enterTo,\n leaveFrom,\n leaveActive,\n leaveTo,\n };\n }\n\n // Create anchor block with transition metadata\n const transitionKey =\n name || (preset ? `transition-${preset}` : 'transition');\n const transitionVNode = anchorBlock(show ? content : [], transitionKey);\n\n // Attach metadata for VDOM to consume during patching\n (transitionVNode as VNode & { _transition?: unknown })._transition = {\n name: transitionKey,\n classes: transitionClasses,\n mode,\n duration,\n appear,\n css,\n state: show ? 'visible' : 'hidden',\n hooks: {\n onBeforeEnter,\n onEnter,\n onAfterEnter,\n onEnterCancelled,\n onBeforeLeave,\n onLeave,\n onAfterLeave,\n onLeaveCancelled,\n },\n };\n\n return transitionVNode;\n}\n\n/**\n * TransitionGroup component - animates lists with enter/leave/move transitions\n *\n * @example\n * ```ts\n * // Basic usage\n * ${TransitionGroup({\n * preset: 'slide-right',\n * tag: 'ul',\n * moveClass: 'transition-transform duration-300'\n * }, each(items.value, (item) => html`\n * <li key=\"${item.id}\">${item.text}</li>\n * `))}\n *\n * // With flex layout\n * ${TransitionGroup({\n * preset: 'fade',\n * class: 'flex gap-4 flex-wrap'\n * }, each(items.value, (item) => html`\n * <div key=\"${item.id}\" class=\"flex-shrink-0\">${item.text}</div>\n * `))}\n *\n * // With grid layout\n * ${TransitionGroup({\n * preset: 'scale',\n * class: 'grid grid-cols-3 gap-4'\n * }, each(items.value, (item) => html`\n * <div key=\"${item.id}\">${item.text}</div>\n * `))}\n * ```\n */\nexport function TransitionGroup(\n options: TransitionGroupOptions,\n children: VNode[],\n): VNode {\n const {\n tag = 'div',\n moveClass = 'transition-transform duration-300',\n preset,\n show = true,\n mode = 'default',\n duration,\n appear = false,\n css = true,\n name,\n class: className,\n style,\n enterFrom,\n enterActive,\n enterTo,\n leaveFrom,\n leaveActive,\n leaveTo,\n onBeforeEnter,\n onEnter,\n onAfterEnter,\n onEnterCancelled,\n onBeforeLeave,\n onLeave,\n onAfterLeave,\n onLeaveCancelled,\n } = options;\n\n // Resolve classes from preset or explicit values\n let transitionClasses: TransitionClasses;\n if (preset && transitionPresets[preset]) {\n transitionClasses = { ...transitionPresets[preset] };\n // Allow overriding preset classes\n if (enterFrom) transitionClasses.enterFrom = enterFrom;\n if (enterActive) transitionClasses.enterActive = enterActive;\n if (enterTo) transitionClasses.enterTo = enterTo;\n if (leaveFrom) transitionClasses.leaveFrom = leaveFrom;\n if (leaveActive) transitionClasses.leaveActive = leaveActive;\n if (leaveTo) transitionClasses.leaveTo = leaveTo;\n } else {\n transitionClasses = {\n enterFrom,\n enterActive,\n enterTo,\n leaveFrom,\n leaveActive,\n leaveTo,\n };\n }\n\n // Create wrapper element with transition group metadata\n const groupKey =\n name || (preset ? `transition-group-${preset}` : 'transition-group');\n\n // Flatten anchor block children to enable proper keyed diffing\n // When each() is used, it creates anchor blocks. We need to extract the actual elements\n // and give them keys from their anchor blocks for proper reordering\n const flattenedChildren: VNode[] = [];\n for (const child of show ? children : []) {\n if (child && typeof child === 'object' && child.tag === '#anchor') {\n // Extract children from anchor block\n const anchorChildren = Array.isArray(child.children)\n ? child.children\n : [];\n for (const anchorChild of anchorChildren) {\n if (anchorChild && typeof anchorChild === 'object') {\n // Use anchor block's key for the child element\n const keyedChild = {\n ...anchorChild,\n key: child.key || anchorChild.key,\n props: {\n ...anchorChild.props,\n _anchorKey: child.key, // Preserve original anchor key\n },\n };\n flattenedChildren.push(keyedChild);\n } else {\n flattenedChildren.push(anchorChild);\n }\n }\n } else {\n flattenedChildren.push(child);\n }\n }\n\n // Serialize style object to a CSS string for the attrs record so it matches\n // the expected primitive attribute value types.\n const styleAttr = (() => {\n if (!style) return undefined;\n if (typeof style === 'string') return style;\n return Object.entries(style)\n .map(([k, v]) => `${k}: ${v}`)\n .join('; ');\n })();\n\n return {\n tag,\n children: flattenedChildren,\n key: groupKey,\n props: {\n attrs: {\n ...(className ? { class: className } : {}),\n ...(styleAttr ? { style: styleAttr } : {}),\n },\n _transitionGroup: {\n name: groupKey,\n classes: transitionClasses,\n moveClass,\n mode,\n duration,\n appear,\n css,\n hooks: {\n onBeforeEnter,\n onEnter,\n onAfterEnter,\n onEnterCancelled,\n onBeforeLeave,\n onLeave,\n onAfterLeave,\n onLeaveCancelled,\n },\n },\n },\n };\n}\n\n/**\n * Helper to create custom transition presets\n *\n * @example\n * ```ts\n * const customFade = createTransitionPreset({\n * enterFrom: 'opacity-0',\n * enterActive: 'transition-opacity duration-500 ease-out',\n * enterTo: 'opacity-100',\n * leaveFrom: 'opacity-100',\n * leaveActive: 'transition-opacity duration-300 ease-in',\n * leaveTo: 'opacity-0'\n * });\n *\n * ${Transition({ ...customFade, show: visible.value }, content)}\n * ```\n */\nexport function createTransitionPreset(\n classes: TransitionClasses,\n): TransitionClasses {\n return { ...classes };\n}\n\n/**\n * Pre-generate CSS for all transition preset classes\n * This ensures the JIT CSS system has the styles ready when transitions are used\n */\nlet transitionStyleSheet: CSSStyleSheet | null = null;\n\n/**\n * Get the global transition stylesheet (creates it if needed)\n */\nexport function getTransitionStyleSheet(): CSSStyleSheet {\n if (!transitionStyleSheet) {\n const allClasses: string[] = [];\n\n // Collect all classes from presets\n Object.values(transitionPresets).forEach((preset) => {\n if (preset.enterFrom) allClasses.push(preset.enterFrom);\n if (preset.enterActive) allClasses.push(preset.enterActive);\n if (preset.enterTo) allClasses.push(preset.enterTo);\n if (preset.leaveFrom) allClasses.push(preset.leaveFrom);\n if (preset.leaveActive) allClasses.push(preset.leaveActive);\n if (preset.leaveTo) allClasses.push(preset.leaveTo);\n });\n\n // Create a fake HTML string with all transition classes\n const fakeHtml = `<div class=\"${allClasses.join(' ')}\"></div>`;\n\n // Trigger JIT CSS generation\n const generatedCSS = jitCSS(fakeHtml);\n\n // Create stylesheet\n transitionStyleSheet = new CSSStyleSheet();\n transitionStyleSheet.replaceSync(generatedCSS);\n }\n\n return transitionStyleSheet;\n}\n\nfunction initializeTransitionCSS(): void {\n // Just initialize the stylesheet on module load\n getTransitionStyleSheet();\n}\n\n// Initialize transition CSS when module loads\ninitializeTransitionCSS();\n"],"names":["css","strings","values","result","minifyCSS","baseResetSheet","getBaseResetSheet","baseReset","sanitizeCSS","fallbackHex","colors","name","shades","shade","hex","spacing","semanticSizes","spacingProps","generateUtilities","utils","d","p","i","size","lineHeight","value","borderWidths","w","px","radiusMap","key","rem","cursors","c","z","utilityMap","insertPseudoBeforeCombinator","sel","pseudo","depth","ch","selectorVariants","body","mediaVariants","containerVariants","responsiveOrder","containerOrder","parseSpacing","className","negative","raw","lastDashIndex","valueStr","numerator","denominator","v","percentage","prop","num","sign","parseSpaceUtility","match","direction","isHorizontal","hexToRgb","clean","bigint","colorRegex","propMap","parseColorClass","type","colorName","colorValue","parseOpacityModifier","slashIndex","base","opacityStr","opacity","parseColorWithOpacity","paletteRule","rgb","arbitraryRule","parseArbitrary","parseGradientColorStop","position","parseOpacity","inner","colonIndex","bracketStart","propMappings","cssProp","parseArbitraryVariant","token","escapeClassName","extractClassesFromHTML","html","classAttrRegex","classList","tokens","jitCssCache","JIT_CSS_THROTTLE_MS","MAX_CACHE_SIZE","jitCSS","now","cached","classes","seen","buckets","ruleCache","generateRuleCached","cls","stripDark","cacheKey","generateRule","classify","variants","hasResponsive","t","hasContainer","hasDark","splitVariants","input","parts","current","pseudoMap","basePart","important","part","checkPart","cleanBase","baseRule","baseIndex","escapedClass","SUBJECT","selector","structural","subjectPseudos","innerPseudos","wrapperVariant","variantSelector","fn","subjectPseudoStr","innerPseudoStr","insertPseudosIntoPost","post","pseudos","depthSquare","depthParen","idx","pre","subjectWithPseudos","postWithInner","rule","responsiveTokens","containerTokens","lastResponsive","lastContainer","mediaQuery","containerQuery","containerKey","bucketNum","gradientStopRegex","generated","sortRulesByBreakpoint","rules","a","b","getResponsivePixels","responsiveSizes","getContainerPixels","containerSizes","unit","aRespPx","bRespPx","aContPx","bContPx","transitionPresets","Transition","options","content","preset","show","mode","duration","appear","enterFrom","enterActive","enterTo","leaveFrom","leaveActive","leaveTo","onBeforeEnter","onEnter","onAfterEnter","onEnterCancelled","onBeforeLeave","onLeave","onAfterLeave","onLeaveCancelled","transitionClasses","transitionKey","transitionVNode","anchorBlock","TransitionGroup","children","tag","moveClass","style","groupKey","flattenedChildren","child","anchorChildren","anchorChild","keyedChild","styleAttr","k","createTransitionPreset","transitionStyleSheet","getTransitionStyleSheet","allClasses","fakeHtml","generatedCSS","initializeTransitionCSS"],"mappings":"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"}
@@ -1 +1 @@
1
- :root{--cer-font-sans: ui-sans-serif, system-ui, -apple-system, "Segoe UI", Roboto, "Helvetica Neue", Arial, "Noto Sans", sans-serif;--cer-font-serif: ui-serif, Georgia, "Times New Roman", Times, serif;--cer-font-mono: ui-monospace, "SFMono-Regular", Menlo, Monaco, "Roboto Mono", "Courier New", monospace;--cer-color-neutral-50: #fafafa;--cer-color-neutral-100: #f4f4f5;--cer-color-neutral-200: #e4e4e7;--cer-color-neutral-300: #d4d4d8;--cer-color-neutral-400: #9f9fa9;--cer-color-neutral-500: #71717b;--cer-color-neutral-600: #52525c;--cer-color-neutral-700: #3f3f46;--cer-color-neutral-800: #27272a;--cer-color-neutral-900: #18181b;--cer-color-neutral-950: #09090b;--cer-color-primary-50: #eff6ff;--cer-color-primary-100: #dbeafe;--cer-color-primary-200: #bfdbfe;--cer-color-primary-300: #93c5fd;--cer-color-primary-400: #60a5fa;--cer-color-primary-500: #3b82f6;--cer-color-primary-600: #2563eb;--cer-color-primary-700: #1d4ed8;--cer-color-primary-800: #1e40af;--cer-color-primary-900: #1e3a8a;--cer-color-primary-950: #172554;--cer-color-secondary-50: #eef2ff;--cer-color-secondary-100: #e0e7ff;--cer-color-secondary-200: #c7d2fe;--cer-color-secondary-300: #a5b4fc;--cer-color-secondary-400: #818cf8;--cer-color-secondary-500: #6366f1;--cer-color-secondary-600: #4f46e5;--cer-color-secondary-700: #4338ca;--cer-color-secondary-800: #3730a3;--cer-color-secondary-900: #312e81;--cer-color-secondary-950: #1e1b4b;--cer-color-success-50: #f0fdf4;--cer-color-success-100: #dcfce7;--cer-color-success-200: #bbf7d0;--cer-color-success-300: #86efac;--cer-color-success-400: #4ade80;--cer-color-success-500: #22c55e;--cer-color-success-600: #16a34a;--cer-color-success-700: #15803d;--cer-color-success-800: #166534;--cer-color-success-900: #14532d;--cer-color-success-950: #052e16;--cer-color-info-50: #f0f9ff;--cer-color-info-100: #e0f2fe;--cer-color-info-200: #bae6fd;--cer-color-info-300: #7dd3fc;--cer-color-info-400: #38bdf8;--cer-color-info-500: #0ea5e9;--cer-color-info-600: #0284c7;--cer-color-info-700: #0369a1;--cer-color-info-800: #075985;--cer-color-info-900: #0c4a6e;--cer-color-info-950: #082f49;--cer-color-warning-50: #fffbeb;--cer-color-warning-100: #fef3c7;--cer-color-warning-200: #fde68a;--cer-color-warning-300: #fcd34d;--cer-color-warning-400: #fbbf24;--cer-color-warning-500: #f59e0b;--cer-color-warning-600: #d97706;--cer-color-warning-700: #b45309;--cer-color-warning-800: #92400e;--cer-color-warning-900: #78350f;--cer-color-warning-950: #451a03;--cer-color-error-50: #fef2f2;--cer-color-error-100: #fee2e2;--cer-color-error-200: #fecaca;--cer-color-error-300: #fca5a5;--cer-color-error-400: #f87171;--cer-color-error-500: #ef4444;--cer-color-error-600: #dc2626;--cer-color-error-700: #b91c1c;--cer-color-error-800: #991b1b;--cer-color-error-900: #7f1d1d;--cer-color-error-950: #450a0a}
1
+ :root{--cer-font-sans: ui-sans-serif, system-ui, -apple-system, "Segoe UI", Roboto, "Helvetica Neue", Arial, "Noto Sans", sans-serif;--cer-font-serif: ui-serif, Georgia, "Times New Roman", Times, serif;--cer-font-mono: ui-monospace, "SFMono-Regular", Menlo, Monaco, "Roboto Mono", "Courier New", monospace;--cer-outline-style: solid;--cer-color-neutral-50: #fafafa;--cer-color-neutral-100: #f4f4f5;--cer-color-neutral-200: #e4e4e7;--cer-color-neutral-300: #d4d4d8;--cer-color-neutral-400: #9f9fa9;--cer-color-neutral-500: #71717b;--cer-color-neutral-600: #52525c;--cer-color-neutral-700: #3f3f46;--cer-color-neutral-800: #27272a;--cer-color-neutral-900: #18181b;--cer-color-neutral-950: #09090b;--cer-color-primary-50: #eff6ff;--cer-color-primary-100: #dbeafe;--cer-color-primary-200: #bfdbfe;--cer-color-primary-300: #93c5fd;--cer-color-primary-400: #60a5fa;--cer-color-primary-500: #3b82f6;--cer-color-primary-600: #2563eb;--cer-color-primary-700: #1d4ed8;--cer-color-primary-800: #1e40af;--cer-color-primary-900: #1e3a8a;--cer-color-primary-950: #172554;--cer-color-secondary-50: #eef2ff;--cer-color-secondary-100: #e0e7ff;--cer-color-secondary-200: #c7d2fe;--cer-color-secondary-300: #a5b4fc;--cer-color-secondary-400: #818cf8;--cer-color-secondary-500: #6366f1;--cer-color-secondary-600: #4f46e5;--cer-color-secondary-700: #4338ca;--cer-color-secondary-800: #3730a3;--cer-color-secondary-900: #312e81;--cer-color-secondary-950: #1e1b4b;--cer-color-success-50: #f0fdf4;--cer-color-success-100: #dcfce7;--cer-color-success-200: #bbf7d0;--cer-color-success-300: #86efac;--cer-color-success-400: #4ade80;--cer-color-success-500: #22c55e;--cer-color-success-600: #16a34a;--cer-color-success-700: #15803d;--cer-color-success-800: #166534;--cer-color-success-900: #14532d;--cer-color-success-950: #052e16;--cer-color-info-50: #f0f9ff;--cer-color-info-100: #e0f2fe;--cer-color-info-200: #bae6fd;--cer-color-info-300: #7dd3fc;--cer-color-info-400: #38bdf8;--cer-color-info-500: #0ea5e9;--cer-color-info-600: #0284c7;--cer-color-info-700: #0369a1;--cer-color-info-800: #075985;--cer-color-info-900: #0c4a6e;--cer-color-info-950: #082f49;--cer-color-warning-50: #fffbeb;--cer-color-warning-100: #fef3c7;--cer-color-warning-200: #fde68a;--cer-color-warning-300: #fcd34d;--cer-color-warning-400: #fbbf24;--cer-color-warning-500: #f59e0b;--cer-color-warning-600: #d97706;--cer-color-warning-700: #b45309;--cer-color-warning-800: #92400e;--cer-color-warning-900: #78350f;--cer-color-warning-950: #451a03;--cer-color-error-50: #fef2f2;--cer-color-error-100: #fee2e2;--cer-color-error-200: #fecaca;--cer-color-error-300: #fca5a5;--cer-color-error-400: #f87171;--cer-color-error-500: #ef4444;--cer-color-error-600: #dc2626;--cer-color-error-700: #b91c1c;--cer-color-error-800: #991b1b;--cer-color-error-900: #7f1d1d;--cer-color-error-950: #450a0a}
package/package.json CHANGED
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "name": "@jasonshimmy/custom-elements-runtime",
3
3
  "description": "A powerful, modern, and lightweight runtime for creating reactive web components with TypeScript",
4
- "version": "2.1.1",
4
+ "version": "2.2.0",
5
5
  "type": "module",
6
6
  "keywords": [
7
7
  "web-components",
@@ -104,6 +104,7 @@
104
104
  "require": "./dist/custom-elements-runtime.router.cjs.js"
105
105
  },
106
106
  "./entities.json": "./entities.json",
107
+ "./css": "./dist/style.css",
107
108
  "./css/style.css": "./dist/style.css",
108
109
  "./css/reset.css": "./dist/reset.css",
109
110
  "./css/variables.css": "./dist/variables.css"
@@ -1,117 +0,0 @@
1
- "use strict";const $e=require("./custom-elements-runtime.directives.cjs.js");function he(e,...r){let o="";for(let i=0;i<e.length;i++)o+=e[i],i<r.length&&(o+=r[i]);return o}function be(e){return e.replace(/\/\*[\s\S]*?\*\//g,"").replace(/\s+/g," ").replace(/\s*([{}:;,>+~])\s*/g,"$1").replace(/;}/g,"}").trim()}let J=null;function ye(){return J||(J=new CSSStyleSheet,J.replaceSync(be(je))),J}function ke(e){return e.replace(/url\s*\(\s*['"]?javascript:[^)]*\)/gi,"").replace(/<script[\s\S]*?>[\s\S]*?<\/script>/gi,"").replace(/expression\s*\([^)]*\)/gi,"")}const je=he`
2
- :host,
3
- *,
4
- ::before,
5
- ::after {
6
- all: isolate;
7
- box-sizing: border-box;
8
- border: 0 solid currentColor;
9
- margin: 0;
10
- padding: 0;
11
- font: inherit;
12
- vertical-align: baseline;
13
- background: transparent;
14
- color: inherit;
15
- -webkit-tap-highlight-color: transparent;
16
- }
17
- :host {
18
- display: contents;
19
- font: 16px/1.5 var(--cer-font-sans, ui-sans-serif, system-ui, sans-serif);
20
- /* Default CE line-height variable so leading-* can reliably override */
21
- --cer-line-height: 1.5;
22
- -webkit-text-size-adjust: 100%;
23
- text-size-adjust: 100%;
24
- -webkit-font-smoothing: antialiased;
25
- -moz-osx-font-smoothing: grayscale;
26
- /* Default gradient variables to avoid undefined var() usage in generated utilities */
27
- --cer-gradient-from-position: 0%;
28
- --cer-gradient-to-position: 100%;
29
- --cer-gradient-via-position: 50%;
30
- --cer-gradient-from: rgba(255, 255, 255, 0);
31
- --cer-gradient-to: rgba(255, 255, 255, 0);
32
- --cer-gradient-stops: var(--cer-gradient-from), var(--cer-gradient-to);
33
- }
34
- button,
35
- input,
36
- select,
37
- textarea {
38
- background: transparent;
39
- outline: none;
40
- }
41
- textarea {
42
- resize: vertical;
43
- }
44
- progress {
45
- vertical-align: baseline;
46
- }
47
- button,
48
- textarea {
49
- overflow: visible;
50
- }
51
- img,
52
- svg,
53
- video,
54
- canvas,
55
- audio,
56
- iframe,
57
- embed,
58
- object {
59
- display: block;
60
- max-width: 100%;
61
- height: auto;
62
- }
63
- svg {
64
- fill: currentColor;
65
- stroke: none;
66
- }
67
- a {
68
- text-decoration: inherit;
69
- cursor: pointer;
70
- }
71
- button,
72
- [type='button'],
73
- [type='reset'],
74
- [type='submit'] {
75
- cursor: pointer;
76
- appearance: button;
77
- background: none;
78
- -webkit-user-select: none;
79
- user-select: none;
80
- }
81
- ::-webkit-input-placeholder,
82
- ::placeholder {
83
- color: inherit;
84
- opacity: 0.5;
85
- }
86
- *:focus-visible {
87
- outline: 2px solid var(--cer-color-primary-500, #3b82f6);
88
- outline-offset: 2px;
89
- }
90
- ol,
91
- ul {
92
- list-style: none;
93
- }
94
- table {
95
- border-collapse: collapse;
96
- }
97
- sub,
98
- sup {
99
- font-size: 0.75em;
100
- line-height: 0;
101
- position: relative;
102
- }
103
- sub {
104
- bottom: -0.25em;
105
- }
106
- sup {
107
- top: -0.5em;
108
- }
109
- [disabled],
110
- [aria-disabled='true'] {
111
- cursor: not-allowed;
112
- }
113
- [hidden] {
114
- display: none;
115
- }
116
- `,Se={neutral:{50:"#fafafa",100:"#f4f4f5",200:"#e4e4e7",300:"#d4d4d8",400:"#9f9fa9",500:"#71717b",600:"#52525c",700:"#3f3f46",800:"#27272a",900:"#18181b",950:"#09090b"},primary:{50:"#eff6ff",100:"#dbeafe",200:"#bfdbfe",300:"#93c5fd",400:"#60a5fa",500:"#3b82f6",600:"#2563eb",700:"#1d4ed8",800:"#1e40af",900:"#1e3a8a",950:"#172554"},secondary:{50:"#eef2ff",100:"#e0e7ff",200:"#c7d2fe",300:"#a5b4fc",400:"#818cf8",500:"#6366f1",600:"#4f46e5",700:"#4338ca",800:"#3730a3",900:"#312e81",950:"#1e1b4b"},success:{50:"#f0fdf4",100:"#dcfce7",200:"#bbf7d0",300:"#86efac",400:"#4ade80",500:"#22c55e",600:"#16a34a",700:"#15803d",800:"#166534",900:"#14532d",950:"#052e16"},info:{50:"#f0f9ff",100:"#e0f2fe",200:"#bae6fd",300:"#7dd3fc",400:"#38bdf8",500:"#0ea5e9",600:"#0284c7",700:"#0369a1",800:"#075985",900:"#0c4a6e",950:"#082f49"},warning:{50:"#fffbeb",100:"#fef3c7",200:"#fde68a",300:"#fcd34d",400:"#fbbf24",500:"#f59e0b",600:"#d97706",700:"#b45309",800:"#92400e",900:"#78350f",950:"#451a03"},error:{50:"#fef2f2",100:"#fee2e2",200:"#fecaca",300:"#fca5a5",400:"#f87171",500:"#ef4444",600:"#dc2626",700:"#b91c1c",800:"#991b1b",900:"#7f1d1d",950:"#450a0a"},white:{DEFAULT:"#ffffff"},black:{DEFAULT:"#000000"},transparent:{DEFAULT:"transparent"},current:{DEFAULT:"currentColor"}},xe=Object.fromEntries(Object.entries(Se).map(([e,r])=>[e,Object.fromEntries(Object.entries(r).map(([o,i])=>[o,`var(--cer-color-${e}${o==="DEFAULT"?"":`-${o}`}, ${i})`]))])),D="0.25rem",Te={"3xs":64,"2xs":72,xs:80,sm:96,md:112,lg:128,xl:144,"2xl":168,"3xl":192,"4xl":224,"5xl":256,"6xl":288,"7xl":320},te={m:["margin"],mx:["margin-inline"],my:["margin-block"],mt:["margin-top"],mr:["margin-right"],mb:["margin-bottom"],ml:["margin-left"],p:["padding"],px:["padding-inline"],py:["padding-block"],pt:["padding-top"],pr:["padding-right"],pb:["padding-bottom"],pl:["padding-left"],inset:["inset"],"inset-x":["inset-inline"],"inset-y":["inset-block"],h:["height"],w:["width"],"min-h":["min-height"],"min-w":["min-width"],"max-h":["max-height"],"max-w":["max-width"],top:["top"],bottom:["bottom"],left:["left"],right:["right"],gap:["gap"],"gap-x":["column-gap"],"gap-y":["row-gap"]},Ae=()=>{const e={};e["@container"]="container-type:inline-size;",["block","inline","inline-block","flex","inline-flex","grid","inline-grid","table","table-cell","table-row","hidden"].forEach(t=>{e[t]=t==="hidden"?"display:none;":`display:${t};`}),["absolute","relative","fixed","sticky","static"].forEach(t=>{e[t]=`position:${t};`}),Object.assign(e,{"items-center":"align-items:center;","items-start":"align-items:flex-start;","items-end":"align-items:flex-end;","items-baseline":"align-items:baseline;","items-stretch":"align-items:stretch;","justify-center":"justify-content:center;","justify-start":"justify-content:flex-start;","justify-between":"justify-content:space-between;","justify-around":"justify-content:space-around;","justify-evenly":"justify-content:space-evenly;","justify-end":"justify-content:flex-end;","flex-wrap":"flex-wrap:wrap;","flex-nowrap":"flex-wrap:nowrap;","flex-wrap-reverse":"flex-wrap:wrap-reverse;","content-center":"align-content:center;","content-start":"align-content:flex-start;","content-end":"align-content:flex-end;","content-between":"align-content:space-between;","content-around":"align-content:space-around;","content-evenly":"align-content:space-evenly;","content-stretch":"align-content:stretch;","self-auto":"align-self:auto;","self-start":"align-self:flex-start;","self-end":"align-self:flex-end;","self-center":"align-self:center;","self-stretch":"align-self:stretch;","flex-col":"flex-direction:column;","flex-row":"flex-direction:row;","flex-col-reverse":"flex-direction:column-reverse;","flex-row-reverse":"flex-direction:row-reverse;","flex-1":"flex:1 1 0%;","flex-auto":"flex:1 1 auto;","flex-initial":"flex:0 1 auto;","flex-none":"flex:0 0 auto;",grow:"flex-grow:1;",shrink:"flex-shrink:1;","grow-0":"flex-grow:0;","shrink-0":"flex-shrink:0;"});for(let t=1;t<=12;t++)e[`grid-cols-${t}`]=`grid-template-columns:repeat(${t},minmax(0,1fr));`,e[`grid-rows-${t}`]=`grid-template-rows:repeat(${t},minmax(0,1fr));`,e[`col-span-${t}`]=`grid-column:span ${t} / span ${t};`,e[`row-span-${t}`]=`grid-row:span ${t} / span ${t};`,e[`col-start-${t}`]=`grid-column-start:${t};`,e[`col-end-${t}`]=`grid-column-end:${t};`,e[`row-start-${t}`]=`grid-row-start:${t};`,e[`row-end-${t}`]=`grid-row-end:${t};`;Object.assign(e,{"grid-cols-none":"grid-template-columns:none;","grid-rows-none":"grid-template-rows:none;","col-span-full":"grid-column:1 / -1;","row-span-full":"grid-row:1 / -1;","auto-cols-auto":"grid-auto-columns:auto;","auto-cols-min":"grid-auto-columns:min-content;","auto-cols-max":"grid-auto-columns:max-content;","auto-cols-fr":"grid-auto-columns:1fr;","auto-rows-auto":"grid-auto-rows:auto;","auto-rows-min":"grid-auto-rows:min-content;","auto-rows-max":"grid-auto-rows:max-content;","auto-rows-fr":"grid-auto-rows:1fr;","grid-flow-row":"grid-auto-flow:row;","grid-flow-col":"grid-auto-flow:column;","grid-flow-row-dense":"grid-auto-flow:row dense;","grid-flow-col-dense":"grid-auto-flow:column dense;"}),Object.assign(e,{"text-left":"text-align:left;","text-center":"text-align:center;","text-right":"text-align:right;","text-justify":"text-align:justify;","font-thin":"font-weight:100;","font-extralight":"font-weight:200;","font-light":"font-weight:300;","font-normal":"font-weight:400;","font-medium":"font-weight:500;","font-semibold":"font-weight:600;","font-bold":"font-weight:700;","font-extrabold":"font-weight:800;","font-black":"font-weight:900;",italic:"font-style:italic;","not-italic":"font-style:normal;",uppercase:"text-transform:uppercase;",lowercase:"text-transform:lowercase;",capitalize:"text-transform:capitalize;","normal-case":"text-transform:none;",underline:"text-decoration-line:underline;",overline:"text-decoration-line:overline;","line-through":"text-decoration-line:line-through;","no-underline":"text-decoration-line:none;",truncate:"overflow:hidden;text-overflow:ellipsis;white-space:nowrap;","whitespace-normal":"white-space:normal;","whitespace-nowrap":"white-space:nowrap;","whitespace-pre":"white-space:pre;","whitespace-pre-line":"white-space:pre-line;","whitespace-pre-wrap":"white-space:pre-wrap;","break-normal":"overflow-wrap:normal;word-break:normal;","break-words":"overflow-wrap:break-word;","break-all":"word-break:break-all;"}),[["text-xs","0.75rem","1"],["text-sm","0.875rem","1.25"],["text-base","1rem","1.5"],["text-lg","1.125rem","1.75"],["text-xl","1.25rem","1.75"],["text-2xl","1.5rem","2"],["text-3xl","1.875rem","2.25"],["text-4xl","2.25rem","2.5"],["text-5xl","3rem","1"],["text-6xl","3.75rem","1"],["text-7xl","4.5rem","1"],["text-8xl","6rem","1"],["text-9xl","8rem","1"]].forEach(([t,a,g])=>{e[t]=`font-size:${a};line-height:var(--cer-line-height,${g});`}),[["tracking-tighter","-0.05em"],["tracking-tight","-0.025em"],["tracking-normal","0em"],["tracking-wide","0.025em"],["tracking-wider","0.05em"],["tracking-widest","0.1em"]].forEach(([t,a])=>{e[t]=`letter-spacing:${a};`}),[["leading-3","0.75rem"],["leading-4","1rem"],["leading-5","1.25rem"],["leading-6","1.5rem"],["leading-7","1.75rem"],["leading-8","2rem"],["leading-9","2.25rem"],["leading-10","2.5rem"],["leading-none","1"],["leading-tight","1.25"],["leading-snug","1.375"],["leading-normal","1.5"],["leading-relaxed","1.625"],["leading-loose","2"]].forEach(([t,a])=>{e[t]=`line-height:${a};--cer-line-height:${a};line-height:var(--cer-line-height,${a});`});const c=[0,1,2,4,6,8];for(const t of c){const a=`${t}px`;e[`border-${t}`]=`border-width:${a};`,e[`border-t-${t}`]=`border-top-width:${a};`,e[`border-r-${t}`]=`border-right-width:${a};`,e[`border-b-${t}`]=`border-bottom-width:${a};`,e[`border-l-${t}`]=`border-left-width:${a};`,e[`border-x-${t}`]=`border-left-width:${a};border-right-width:${a};`,e[`border-y-${t}`]=`border-top-width:${a};border-bottom-width:${a};`}Object.assign(e,{"font-sans":"font-family:var(--cer-font-sans, ui-sans-serif,system-ui,sans-serif);","font-serif":"font-family:var(--cer-font-serif, ui-serif,Georgia,serif);","font-mono":"font-family:var(--cer-font-mono, ui-monospace,SFMono-Regular,monospace);",border:"border-width:1px;","border-t":"border-top-width:1px;","border-r":"border-right-width:1px;","border-b":"border-bottom-width:1px;","border-l":"border-left-width:1px;","border-x":"border-left-width:1px;border-right-width:1px;","border-y":"border-top-width:1px;border-bottom-width:1px;","border-solid":"border-style:solid;","border-dashed":"border-style:dashed;","border-dotted":"border-style:dotted;","border-double":"border-style:double;","border-none":"border-style:none;"});const u={none:0,xs:2,sm:4,md:6,lg:8,xl:12,"2xl":16,"3xl":24,"4xl":32,full:9999};for(const[t,a]of Object.entries(u)){const g=a===9999?"9999px":`${a/16}rem`;e[`rounded-${t}`]=`border-radius:${g};`,e[`rounded-t-${t}`]=`border-top-left-radius:${g};border-top-right-radius:${g};`,e[`rounded-r-${t}`]=`border-top-right-radius:${g};border-bottom-right-radius:${g};`,e[`rounded-b-${t}`]=`border-bottom-left-radius:${g};border-bottom-right-radius:${g};`,e[`rounded-l-${t}`]=`border-top-left-radius:${g};border-bottom-left-radius:${g};`,e[`rounded-tl-${t}`]=`border-top-left-radius:${g};`,e[`rounded-tr-${t}`]=`border-top-right-radius:${g};`,e[`rounded-br-${t}`]=`border-bottom-right-radius:${g};`,e[`rounded-bl-${t}`]=`border-bottom-left-radius:${g};`}Object.assign(e,{"shadow-none":"--cer-shadow-color:rgb(0 0 0 / 0);box-shadow:0 0 var(--cer-shadow-color, #0000);","shadow-xs":"--cer-shadow-color:rgb(0 0 0 / 0.05);box-shadow:0 1px 2px 0 var(--cer-shadow-color, rgb(0 0 0 / 0.05));","shadow-sm":"--cer-shadow-color:rgb(0 0 0 / 0.1);box-shadow:0 1px 3px 0 var(--cer-shadow-color, rgb(0 0 0 / 0.1)),0 1px 2px -1px var(--cer-shadow-color, rgb(0 0 0 / 0.1));",shadow:"--cer-shadow-color:rgb(0 0 0 / 0.1);box-shadow:0 1px 3px 0 var(--cer-shadow-color, rgb(0 0 0 / 0.1)),0 1px 2px -1px var(--cer-shadow-color, rgb(0 0 0 / 0.1));","shadow-md":"--cer-shadow-color:rgb(0 0 0 / 0.1);box-shadow:0 4px 6px -1px var(--cer-shadow-color, rgb(0 0 0 / 0.1)),0 2px 4px -2px var(--cer-shadow-color, rgb(0 0 0 / 0.1));","shadow-lg":"--cer-shadow-color:rgb(0 0 0 / 0.1);box-shadow:0 10px 15px -3px var(--cer-shadow-color, rgb(0 0 0 / 0.1)),0 4px 6px -4px var(--cer-shadow-color, rgb(0 0 0 / 0.1));","shadow-xl":"--cer-shadow-color:rgb(0 0 0 / 0.1);box-shadow:0 20px 25px -5px var(--cer-shadow-color, rgb(0 0 0 / 0.1)),0 8px 10px -6px var(--cer-shadow-color, rgb(0 0 0 / 0.1));","shadow-2xl":"--cer-shadow-color:rgb(0 0 0 / 0.25);box-shadow:0 25px 50px -12px var(--cer-shadow-color, rgb(0 0 0 / 0.25));","shadow-inner":"box-shadow:inset 0 2px 4px 0 rgb(0 0 0 / 0.05);"}),Object.assign(e,{rounded:"border-radius:0.25rem;"}),Object.assign(e,{"overflow-auto":"overflow:auto;","overflow-hidden":"overflow:hidden;","overflow-visible":"overflow:visible;","overflow-scroll":"overflow:scroll;","overflow-x-auto":"overflow-x:auto;","overflow-x-hidden":"overflow-x:hidden;","overflow-x-visible":"overflow-x:visible;","overflow-x-scroll":"overflow-x:scroll;","overflow-y-auto":"overflow-y:auto;","overflow-y-hidden":"overflow-y:hidden;","overflow-y-visible":"overflow-y:visible;","overflow-y-scroll":"overflow-y:scroll;"});const j=["auto","default","pointer","wait","text","move","help","not-allowed","grab","grabbing"];for(const t of j)e[`cursor-${t}`]=`cursor:${t};`;for(const t of[0,10,20,30,40,50])e[`z-${t}`]=`z-index:${t};`;Object.assign(e,{"sr-only":"position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border-width:0;","not-sr-only":"position:static;width:auto;height:auto;padding:0;margin:0;overflow:visible;clip:auto;white-space:normal;","pointer-events-none":"pointer-events:none;","pointer-events-auto":"pointer-events:auto;",visible:"visibility:visible;",invisible:"visibility:hidden;"}),Object.assign(e,{"w-full":"width:100%;","w-screen":"width:100dvw;","h-full":"height:100%;","h-screen":"height:100dvh;","max-w-full":"max-width:100%;","max-h-full":"max-height:100%;","max-w-screen":"max-width:100dvw;","max-h-screen":"max-height:100dvh;","min-w-0":"min-width:0;","min-h-0":"min-height:0;","min-w-full":"min-width:100%;","min-h-full":"min-height:100%;","min-w-screen":"min-width:100dvw;","min-h-screen":"min-height:100dvh;","w-auto":"width:auto;","h-auto":"height:auto;","w-fit":"width:fit-content;","h-fit":"height:fit-content;","w-min":"width:min-content;","h-min":"height:min-content;","w-max":"width:max-content;","h-max":"height:max-content;","m-auto":"margin:auto;","mx-auto":"margin-inline:auto;","my-auto":"margin-block:auto;"});for(const[t,a]of Object.entries(Te))e[`max-w-${t}`]=`max-width:calc(${D} * ${a});`,e[`min-w-${t}`]=`min-width:calc(${D} * ${a});`,e[`w-${t}`]=`width:calc(${D} * ${a});`,e[`max-h-${t}`]=`max-height:calc(${D} * ${a});`,e[`min-h-${t}`]=`min-height:calc(${D} * ${a});`,e[`h-${t}`]=`height:calc(${D} * ${a});`;Object.assign(e,{transition:"transition-property:all;transition-duration:150ms;transition-timing-function:ease-in-out;","transition-none":"transition-property:none;","transition-all":"transition-property:all;","transition-colors":"transition-property:color,background-color,border-color,text-decoration-color,fill,stroke;","transition-shadow":"transition-property:box-shadow;","transition-opacity":"transition-property:opacity;","transition-transform":"transition-property:transform;","ease-linear":"transition-timing-function:linear;","ease-in":"transition-timing-function:ease-in;","ease-out":"transition-timing-function:ease-out;","ease-in-out":"transition-timing-function:ease-in-out;","duration-75":"transition-duration:75ms;","duration-100":"transition-duration:100ms;","duration-150":"transition-duration:150ms;","duration-200":"transition-duration:200ms;","duration-300":"transition-duration:300ms;","duration-500":"transition-duration:500ms;","duration-700":"transition-duration:700ms;","duration-1000":"transition-duration:1000ms;"}),Object.assign(e,{"scale-0":"transform:scale(0);","scale-50":"transform:scale(0.5);","scale-75":"transform:scale(0.75);","scale-90":"transform:scale(0.9);","scale-95":"transform:scale(0.95);","scale-100":"transform:scale(1);","scale-105":"transform:scale(1.05);","scale-110":"transform:scale(1.1);","scale-125":"transform:scale(1.25);","scale-150":"transform:scale(1.5);","rotate-0":"transform:rotate(0deg);","rotate-1":"transform:rotate(1deg);","rotate-2":"transform:rotate(2deg);","rotate-3":"transform:rotate(3deg);","rotate-6":"transform:rotate(6deg);","rotate-12":"transform:rotate(12deg);","rotate-45":"transform:rotate(45deg);","rotate-90":"transform:rotate(90deg);","rotate-180":"transform:rotate(180deg);","-rotate-1":"transform:rotate(-1deg);","-rotate-2":"transform:rotate(-2deg);","-rotate-3":"transform:rotate(-3deg);","-rotate-6":"transform:rotate(-6deg);","-rotate-12":"transform:rotate(-12deg);","-rotate-45":"transform:rotate(-45deg);","-rotate-90":"transform:rotate(-90deg);","-rotate-180":"transform:rotate(-180deg);"}),Object.assign(e,{"aspect-auto":"aspect-ratio:auto;","aspect-square":"aspect-ratio:1 / 1;","aspect-video":"aspect-ratio:16 / 9;"}),Object.assign(e,{"object-contain":"object-fit:contain;","object-cover":"object-fit:cover;","object-fill":"object-fit:fill;","object-none":"object-fit:none;","object-scale-down":"object-fit:scale-down;","object-bottom":"object-position:bottom;","object-center":"object-position:center;","object-left":"object-position:left;","object-left-bottom":"object-position:left bottom;","object-left-top":"object-position:left top;","object-right":"object-position:right;","object-right-bottom":"object-position:right bottom;","object-right-top":"object-position:right top;","object-top":"object-position:top;"});for(let t=1;t<=6;t++)e[`line-clamp-${t}`]=`display:-webkit-box;-webkit-line-clamp:${t};-webkit-box-orient:vertical;overflow:hidden;`;e["line-clamp-none"]="overflow:visible;display:block;-webkit-box-orient:horizontal;-webkit-line-clamp:none;";for(let t=1;t<=12;t++)e[`order-${t}`]=`order:${t};`;e["order-first"]="order:-9999;",e["order-last"]="order:9999;",e["order-none"]="order:0;";for(let t=0;t<=12;t++)t<=1||(e[`grow-${t}`]=`flex-grow:${t};`,e[`shrink-${t}`]=`flex-shrink:${t};`);return Object.assign(e,{"bg-linear-to-t":"background-image:linear-gradient(to top, var(--cer-gradient-stops));","bg-linear-to-tr":"background-image:linear-gradient(to top right, var(--cer-gradient-stops));","bg-linear-to-r":"background-image:linear-gradient(to right, var(--cer-gradient-stops));","bg-linear-to-br":"background-image:linear-gradient(to bottom right, var(--cer-gradient-stops));","bg-linear-to-b":"background-image:linear-gradient(to bottom, var(--cer-gradient-stops));","bg-linear-to-bl":"background-image:linear-gradient(to bottom left, var(--cer-gradient-stops));","bg-linear-to-l":"background-image:linear-gradient(to left, var(--cer-gradient-stops));","bg-linear-to-tl":"background-image:linear-gradient(to top left, var(--cer-gradient-stops));","bg-radial":"background-image:radial-gradient(ellipse at center, var(--cer-gradient-stops));","bg-radial-at-t":"background-image:radial-gradient(ellipse at top, var(--cer-gradient-stops));","bg-radial-at-tr":"background-image:radial-gradient(ellipse at top right, var(--cer-gradient-stops));","bg-radial-at-r":"background-image:radial-gradient(ellipse at right, var(--cer-gradient-stops));","bg-radial-at-br":"background-image:radial-gradient(ellipse at bottom right, var(--cer-gradient-stops));","bg-radial-at-b":"background-image:radial-gradient(ellipse at bottom, var(--cer-gradient-stops));","bg-radial-at-bl":"background-image:radial-gradient(ellipse at bottom left, var(--cer-gradient-stops));","bg-radial-at-l":"background-image:radial-gradient(ellipse at left, var(--cer-gradient-stops));","bg-radial-at-tl":"background-image:radial-gradient(ellipse at top left, var(--cer-gradient-stops));","bg-radial-circle":"background-image:radial-gradient(circle at center, var(--cer-gradient-stops));","bg-radial-circle-at-t":"background-image:radial-gradient(circle at top, var(--cer-gradient-stops));","bg-radial-circle-at-tr":"background-image:radial-gradient(circle at top right, var(--cer-gradient-stops));","bg-radial-circle-at-r":"background-image:radial-gradient(circle at right, var(--cer-gradient-stops));","bg-radial-circle-at-br":"background-image:radial-gradient(circle at bottom right, var(--cer-gradient-stops));","bg-radial-circle-at-b":"background-image:radial-gradient(circle at bottom, var(--cer-gradient-stops));","bg-radial-circle-at-bl":"background-image:radial-gradient(circle at bottom left, var(--cer-gradient-stops));","bg-radial-circle-at-l":"background-image:radial-gradient(circle at left, var(--cer-gradient-stops));","bg-radial-circle-at-tl":"background-image:radial-gradient(circle at top left, var(--cer-gradient-stops));","bg-conic":"background-image:conic-gradient(from 0deg at center, var(--cer-gradient-stops));","bg-conic-at-t":"background-image:conic-gradient(from 0deg at top, var(--cer-gradient-stops));","bg-conic-at-tr":"background-image:conic-gradient(from 0deg at top right, var(--cer-gradient-stops));","bg-conic-at-r":"background-image:conic-gradient(from 0deg at right, var(--cer-gradient-stops));","bg-conic-at-br":"background-image:conic-gradient(from 0deg at bottom right, var(--cer-gradient-stops));","bg-conic-at-b":"background-image:conic-gradient(from 0deg at bottom, var(--cer-gradient-stops));","bg-conic-at-bl":"background-image:conic-gradient(from 0deg at bottom left, var(--cer-gradient-stops));","bg-conic-at-l":"background-image:conic-gradient(from 0deg at left, var(--cer-gradient-stops));","bg-conic-at-tl":"background-image:conic-gradient(from 0deg at top left, var(--cer-gradient-stops));"}),e},re=Ae();function L(e,r){let o=0;for(let i=0;i<e.length;i++){const s=e[i];if(s==="["||s==="(")o++;else if((s==="]"||s===")")&&o>0)o--;else if(o===0&&(s===">"||s==="+"||s==="~"||s===" "))return e.slice(0,i)+r+e.slice(i)}return e+r}const Ce={before:(e,r)=>`${e}::before{${r}}`,after:(e,r)=>`${e}::after{${r}}`,hover:(e,r)=>`${L(e,":hover")}{${r}}`,focus:(e,r)=>`${L(e,":focus")}{${r}}`,active:(e,r)=>`${L(e,":active")}{${r}}`,disabled:(e,r)=>`${L(e,":disabled")}{${r}}`,visited:(e,r)=>`${L(e,":visited")}{${r}}`,checked:(e,r)=>`${L(e,":checked")}{${r}}`,first:(e,r)=>`${L(e,":first-child")}{${r}}`,last:(e,r)=>`${L(e,":last-child")}{${r}}`,odd:(e,r)=>`${L(e,":nth-child(odd)")}{${r}}`,even:(e,r)=>`${L(e,":nth-child(even)")}{${r}}`,"focus-within":(e,r)=>`${L(e,":focus-within")}{${r}}`,"focus-visible":(e,r)=>`${L(e,":focus-visible")}{${r}}`,"group-hover":(e,r)=>`.group:hover ${e}{${r}}`,"group-focus":(e,r)=>`.group:focus ${e}{${r}}`,"group-active":(e,r)=>`.group:active ${e}{${r}}`,"group-disabled":(e,r)=>`.group:disabled ${e}{${r}}`,"peer-hover":(e,r)=>`.peer:hover ~ ${e}{${r}}`,"peer-focus":(e,r)=>`.peer:focus ~ ${e}{${r}}`,"peer-checked":(e,r)=>`.peer:checked ~ ${e}{${r}}`,"peer-disabled":(e,r)=>`.peer:disabled ~ ${e}{${r}}`},oe={sm:"(min-width:640px)",md:"(min-width:768px)",lg:"(min-width:1024px)",xl:"(min-width:1280px)","2xl":"(min-width:1536px)",dark:"(prefers-color-scheme: dark)"},ge={xs:"(min-width:20rem)",sm:"(min-width:24rem)",md:"(min-width:28rem)",lg:"(min-width:32rem)",xl:"(min-width:36rem)","2xl":"(min-width:42rem)","3xl":"(min-width:48rem)","4xl":"(min-width:56rem)","5xl":"(min-width:64rem)","6xl":"(min-width:72rem)","7xl":"(min-width:80rem)"},ie=["sm","md","lg","xl","2xl"],ne=["xs","sm","md","lg","xl","2xl","3xl","4xl","5xl","6xl","7xl"];function ae(e){const r=e.startsWith("-"),o=r?e.slice(1):e,i=o.lastIndexOf("-");if(i===-1)return null;const s=o.slice(0,i),c=o.slice(i+1);if(!te[s])return null;if(c.includes("/")){const[t,a]=c.split("/").map(S=>parseFloat(S));if(Number.isNaN(t)||Number.isNaN(a)||a===0)return null;const g=t/a*100;return te[s].map(S=>`${S}:${g}%;`).join("")}const u=parseFloat(c);if(Number.isNaN(u))return null;const j=r?"-":"";return te[s].map(t=>`${t}:calc(${j}${D} * ${u});`).join("")}function se(e){const r=e.startsWith("-"),i=(r?e.slice(1):e).match(/^space-(x|y)-(.+)$/);if(!i)return null;const[,s,c]=i,u=s==="x";if(c==="reverse")return u?"--cer-space-x-reverse:1;":"--cer-space-y-reverse:1;";if(c.includes("/")){const[g,S]=c.split("/").map(E=>parseFloat(E));if(Number.isNaN(g)||Number.isNaN(S)||S===0)return null;const T=g/S*100,A=r?"-":"";return u?`--cer-space-x-reverse:0;& > :not([hidden]) ~ :not([hidden]){margin-inline-start:calc(${A}${T}% * calc(1 - var(--cer-space-x-reverse)));margin-inline-end:calc(${A}${T}% * var(--cer-space-x-reverse));}`:`--cer-space-y-reverse:0;& > :not([hidden]) ~ :not([hidden]){margin-top:calc(${A}${T}% * calc(1 - var(--cer-space-y-reverse)));margin-bottom:calc(${A}${T}% * var(--cer-space-y-reverse));}`}const j=parseFloat(c);if(Number.isNaN(j))return null;const a=`calc(${r?"-":""}${D} * ${j})`;return u?`--cer-space-x-reverse:0;& > :not([hidden]) ~ :not([hidden]){margin-inline-start:calc(${a} * calc(1 - var(--cer-space-x-reverse)));margin-inline-end:calc(${a} * var(--cer-space-x-reverse));}`:`--cer-space-y-reverse:0;& > :not([hidden]) ~ :not([hidden]){margin-top:calc(${a} * calc(1 - var(--cer-space-y-reverse)));margin-bottom:calc(${a} * var(--cer-space-y-reverse));}`}function ue(e){const r=e.replace("#",""),o=parseInt(r,16);return`${o>>16&255} ${o>>8&255} ${o&255}`}const Fe=/^(bg|text|border|decoration|shadow|outline|caret|accent|fill|stroke)-([a-z]+)-?(\d{2,3}|DEFAULT)?$/,Oe={bg:"background-color",decoration:"text-decoration-color",text:"color",border:"border-color",outline:"outline-color",caret:"caret-color",accent:"accent-color",fill:"fill",stroke:"stroke"};function ze(e){const r=Fe.exec(e);if(!r)return null;const[,o,i,s="DEFAULT"]=r,c=xe[i]?.[s];if(!c)return null;if(o==="shadow")return`--cer-shadow-color:${c};`;const u=Oe[o];return u?`${u}:${c};`:null}function Ee(e){const r=e.indexOf("/");if(r===-1)return{base:e};const o=e.slice(0,r),i=e.slice(r+1),s=parseInt(i,10);return isNaN(s)||s<0||s>100?{base:o}:{base:o,opacity:s/100}}function ce(e){const{base:r,opacity:o}=Ee(e),i=ze(r);if(i&&o!==void 0){const c=/#([0-9a-f]{6})/i.exec(i);if(c){const u=ue(c[0]);return i.replace(/#([0-9a-f]{6})/i,`rgb(${u} / ${o})`)}}if(i)return i;const s=Q(r);if(s&&o!==void 0){const c=/#([0-9a-f]{6})/i.exec(s);if(c){const u=ue(c[0]);return s.replace(/#([0-9a-f]{6})/i,`rgb(${u} / ${o})`)}}return s}function le(e){const r=/^(from|to|via)-([a-z]+)-?(\d{2,3}|DEFAULT)?$/.exec(e);if(!r)return null;const[,o,i,s="DEFAULT"]=r,c=xe[i]?.[s];if(!c)return null;switch(o){case"from":return`--cer-gradient-from:${c} var(--cer-gradient-from-position);--cer-gradient-to:rgb(255 255 255 / 0) var(--cer-gradient-to-position);--cer-gradient-stops:var(--cer-gradient-from), var(--cer-gradient-to);`;case"to":return`--cer-gradient-to:${c} var(--cer-gradient-to-position);`;case"via":return`--cer-gradient-to:rgb(255 255 255 / 0) var(--cer-gradient-to-position);--cer-gradient-stops:var(--cer-gradient-from), ${c} var(--cer-gradient-via-position), var(--cer-gradient-to);`;default:return null}}function de(e){const r=/^opacity-(\d{1,3})$/.exec(e);if(!r)return null;const o=parseInt(r[1],10);return o<0||o>100?null:`opacity:${o/100};`}function Q(e){if(e.startsWith("[")&&e.endsWith("]")&&!e.includes("-[")){const u=e.slice(1,-1).trim(),j=u.indexOf(":");if(j===-1)return null;const t=u.slice(0,j).trim();let a=u.slice(j+1).trim();return/^[a-zA-Z][a-zA-Z0-9-]*$/.test(t)?(a=a.replace(/_/g," "),a=a.replace(/url\('\s*([^']*?)\s*'\)/g,'url("$1")'),a=a.replace(/^'([^']*)'$/g,'"$1"'),`${t}:${a};`):null}const r=e.indexOf("-[");if(r<=0||!e.endsWith("]"))return null;const o=e.slice(0,r),i=e.slice(r+2,-1).replace(/_/g," "),s={bg:"background-color",shadow:"box-shadow",p:"padding",px:"padding-inline",py:"padding-block",m:"margin",mx:"margin-inline",my:"margin-block",w:"width",h:"height","min-w":"min-width","max-w":"max-width","min-h":"min-height","max-h":"max-height","border-t":"border-top-width","border-b":"border-bottom-width","border-l":"border-left-width","border-r":"border-right-width","border-x":"border-inline-width","border-y":"border-block-width","grid-cols":"grid-template-columns","grid-rows":"grid-template-rows",transition:"transition-property",ease:"transition-timing-function",delay:"transition-delay",duration:"transition-duration",list:"list-style",break:"word-break",flex:"flex-direction",items:"align-items",justify:"justify-content",content:"align-content",self:"align-self",basis:"flex-basis",tracking:"letter-spacing",leading:"line-height",z:"z-index",opacity:"opacity"};if(o==="text")return/^\d*\.?\d+(px|rem|em|%|vh|vw|ch|ex)$/.test(i)?`font-size:${i};`:`color:${i};`;if(o==="rotate")return`transform:rotate(${i});`;if(o==="scale")return`transform:scale(${i});`;if(o==="translate-x")return`transform:translateX(${i});`;if(o==="translate-y")return`transform:translateY(${i});`;const c=s[o]??o.replace(/_/g,"-");return c&&i?`${c}:${i};`:null}function Pe(e){if(e.startsWith("[")&&e.endsWith("]")){const o=e.slice(1,-1);return o.includes("&")?o:e}const r=e.indexOf("-[");if(r>0&&e.endsWith("]")){const o=e.slice(r+2,-1).replace(/_/g,"-");return o.includes("&")?o:e.replace(/_/g,"-")}return null}function pe(e){return e.replace(/([!"#$%&'()*+,./:;<=>?@[\\\]^`{|}~])/g,"\\$1")}function Re(e){const r=/class\s*=\s*(['"])([\s\S]*?)\1/g,o=[];let i;for(;i=r.exec(e);){const s=i[2].split(/\s+/).filter(Boolean);s.length&&o.push(...s)}return o}const G=new Map,Le=16,me=1e3;function ve(e){const r=Date.now(),o=G.get(e);if(o&&r-o.timestamp<Le)return o.css;const i=Re(e);if(!i.length)return"";const s=new Set(i),c=[[],[],[],[]],u={},j=(f,p=!1)=>{const d=p?`dark|${f}`:f;if(d in u)return u[d];const m=S(f,p);return u[d]=m,m},t=f=>{const p=f.some(w=>ie.includes(w)),d=f.some(w=>w.startsWith("@")&&(ne.includes(w.slice(1))||w.match(/^@\[.+\]$/))),m=f.includes("dark");return f.length?!p&&!m&&!d?1:m&&(p||d)?3:2:0},a=f=>{const p=[];let d="",m=0;for(let w=0;w<f.length;w++){const b=f[w];b==="["||b==="("?m++:(b==="]"||b===")")&&m--,b===":"&&m===0?(p.push(d),d=""):d+=b}return d&&p.push(d),p},g={hover:":hover",focus:":focus",active:":active",visited:":visited",disabled:":disabled",checked:":checked",first:":first-child",last:":last-child",odd:":nth-child(odd)",even:":nth-child(even)","focus-within":":focus-within","focus-visible":":focus-visible"},S=(f,p=!1)=>{const d=a(f);let m="",w=!1;for(const n of d){let v=n;if(v.startsWith("!")&&(w=!0,v=v.slice(1)),re[v]||ae(v)||se(v)||de(v)||ce(v)||le(v)||Q(v)){m=n;break}}if(!m)return null;const b=m.replace(/^!/,""),F=re[b]??ae(b)??se(b)??de(b)??ce(b)??le(b)??Q(b);if(!F)return null;const k=d.indexOf(m);let h=k>=0?d.slice(0,k):[];p&&(h=h.filter(n=>n!=="dark"));const P=`.${pe(f)}`,W=w?F.replace(/;/g," !important;"):F,x="__SUBJECT__";let l=x;const _=[];for(const n of h)n.startsWith("group-")?(l=`.group:${n.slice(6)} ${l}`,_.push(n)):n.startsWith("peer-")&&(l=l.replace(x,`.peer:${n.slice(5)}~${x}`),_.push(n));h=h.filter(n=>!_.includes(n));const B=[],H=[];let y=null;for(const n of h){if(n==="dark"||ie.includes(n)||n.startsWith("@")&&(ne.includes(n.slice(1))||n.match(/^@\[.+\]$/)))continue;const v=Pe(n);if(v){y=v;continue}const C=g[n];if(C){y?H.push(C):B.push(C);continue}const O=Ce[n];typeof O=="function"&&(l=O(l,W).split("{")[0])}const I=B.join(""),R=H.join("");function X(n,v){if(!v)return n;let C=0,O=0;if(n.length&&(n[0]===">"||n[0]==="+"||n[0]==="~"||n[0]===" ")){let $=1;for(;$<n.length&&n[$]===" ";)$++;for(;$<n.length;$++){const z=n[$];if(z==="["?C++:z==="]"&&C>0?C--:z==="("?O++:z===")"&&O>0&&O--,C===0&&O===0&&(n[$]===">"||n[$]==="+"||n[$]==="~"||n[$]===" "))return n.slice(0,$)+v+n.slice($)}return n+v}for(let $=0;$<n.length;$++){const z=n[$];if(z==="["?C++:z==="]"&&C>0?C--:z==="("?O++:z===")"&&O>0&&O--,C===0&&O===0&&(z===">"||z==="+"||z==="~"||z===" "))return n.slice(0,$)+v+n.slice($)}return n+v}if(y)if(y.includes("&")){const n=y.indexOf("&"),v=y.slice(0,n),C=y.slice(n+1),O=x+I;if(B.length===0)l=l.replace(x,v+O+R+C);else{const $=X(C,R);l=l.replace(x,v+O+$)}}else l=l.replace(x,`${y}${x+I}`),R&&(l=l.replace(x,`${x}${R}`));else l=l.replace(x,x+I+R);l=l.replace(new RegExp(x,"g"),P);let U=`${l}{${W}}`;const Y=h.filter(n=>ie.includes(n)),ee=h.filter(n=>n.startsWith("@")&&(ne.includes(n.slice(1))||n.match(/^@\[.+\]$/))),K=Y.length?Y[Y.length-1]:null,q=ee.length?ee[ee.length-1]:null,fe=h.includes("dark");let M="",N="";if(fe&&K?M=`@media (prefers-color-scheme: dark) and ${oe[K]}`:fe?M="@media (prefers-color-scheme: dark)":K&&(M=`@media ${oe[K]}`),q)if(q.startsWith("@[")&&q.endsWith("]")){const n=q.slice(2,-1);if(!/^-?\d*\.?\d+(px|rem|em|%|vh|vw|ch|ex|cm|mm|in|pt|pc)$/.test(n))return null;N=`@container (min-width:${n})`}else{const n=q.slice(1);N=`@container ${ge[n]||`(min-width:${n})`}`}return M&&N?U=`${M}${N}{${U}}`:M?U=`${M}{${U}}`:N&&(U=`${N}{${U}}`),U};for(const f of s){const p=a(f),d=p.find(k=>re[k.replace(/^!/,"")]||ae(k.replace(/^!/,""))||se(k.replace(/^!/,""))||de(k.replace(/^!/,""))||ce(k.replace(/^!/,""))||le(k.replace(/^!/,""))||Q(k.replace(/^!/,"")));if(!d)continue;const m=p.indexOf(d),w=m>=0?p.slice(0,m):[],b=t(w),F=j(f);F&&c[b].push(F)}const T=/^(from|via|to)-[a-z]+-?\d{2,3}?$/;for(const f of s)if(T.test(f)){if(c.flat().join("").includes(`.${pe(f)}`))continue;const d=j(f);d&&c[0].push(d)}const A=f=>f.sort((p,d)=>{const m=P=>{const W={sm:640,md:768,lg:1024,xl:1280,"2xl":1536};for(const[x,l]of Object.entries(W))if(P.includes(`@media ${oe[x]}`))return l;return-1},w=P=>{const W={xs:320,sm:384,md:448,lg:512,xl:576,"2xl":672,"3xl":768,"4xl":896,"5xl":1024,"6xl":1152,"7xl":1280};for(const[x,l]of Object.entries(W))if(P.includes(`@container ${ge[x]}`))return l;if(P.includes("@container (min-width:")){const x=/@container \(min-width:(\d+(?:\.\d+)?)(px|rem|em)/.exec(P);if(x){const l=parseFloat(x[1]),_=x[2];return _==="rem"||_==="em"?l*16:l}}return-1},b=m(p),F=m(d),k=w(p),h=w(d);return b>=0&&F>=0&&b!==F?b-F:k>=0&&h>=0&&k!==h?k-h:0});c[2]=A(c[2]),c[3]=A(c[3]);const E=c.flat().join("");return G.size>=me&&Array.from(G.keys()).slice(0,Math.floor(me/2)).forEach(p=>G.delete(p)),G.set(e,{css:E,timestamp:r}),E}const V={fade:{enterFrom:"opacity-0",enterActive:"transition-opacity duration-300 ease-out",enterTo:"opacity-100",leaveFrom:"opacity-100",leaveActive:"transition-opacity duration-200 ease-in",leaveTo:"opacity-0"},"slide-right":{enterFrom:"translate-x-[100%] opacity-0",enterActive:"transition-all duration-300 ease-out",enterTo:"translate-x-[0%] opacity-100",leaveFrom:"translate-x-[0%] opacity-100",leaveActive:"transition-all duration-200 ease-in",leaveTo:"translate-x-[100%] opacity-0"},"slide-left":{enterFrom:"translate-x-[-100%] opacity-0",enterActive:"transition-all duration-300 ease-out",enterTo:"translate-x-[0%] opacity-100",leaveFrom:"translate-x-[0%] opacity-100",leaveActive:"transition-all duration-200 ease-in",leaveTo:"translate-x-[-100%] opacity-0"},"slide-up":{enterFrom:"translate-y-[100%] opacity-0",enterActive:"transition-all duration-300 ease-out",enterTo:"translate-y-[0%] opacity-100",leaveFrom:"translate-y-[0%] opacity-100",leaveActive:"transition-all duration-200 ease-in",leaveTo:"translate-y-[100%] opacity-0"},"slide-down":{enterFrom:"translate-y-[-100%] opacity-0",enterActive:"transition-all duration-300 ease-out",enterTo:"translate-y-[0%] opacity-100",leaveFrom:"translate-y-[0%] opacity-100",leaveActive:"transition-all duration-200 ease-in",leaveTo:"translate-y-[-100%] opacity-0"},scale:{enterFrom:"scale-95 opacity-0",enterActive:"transition-all duration-200 ease-out",enterTo:"scale-100 opacity-100",leaveFrom:"scale-100 opacity-100",leaveActive:"transition-all duration-150 ease-in",leaveTo:"scale-95 opacity-0"},"scale-down":{enterFrom:"scale-105 opacity-0",enterActive:"transition-all duration-200 ease-out",enterTo:"scale-100 opacity-100",leaveFrom:"scale-100 opacity-100",leaveActive:"transition-all duration-150 ease-in",leaveTo:"scale-105 opacity-0"},bounce:{enterFrom:"scale-0 opacity-0",enterActive:"transition-all duration-500 ease-out",enterTo:"scale-100 opacity-100",leaveFrom:"scale-100 opacity-100",leaveActive:"transition-all duration-200 ease-in",leaveTo:"scale-0 opacity-0"},zoom:{enterFrom:"scale-0 opacity-0",enterActive:"transition-all duration-300 ease-out",enterTo:"scale-100 opacity-100",leaveFrom:"scale-100 opacity-100",leaveActive:"transition-all duration-200 ease-in",leaveTo:"scale-0 opacity-0"},flip:{enterFrom:"rotate-[90deg] opacity-0",enterActive:"transition-all duration-400 ease-out",enterTo:"rotate-[0deg] opacity-100",leaveFrom:"rotate-[0deg] opacity-100",leaveActive:"transition-all duration-300 ease-in",leaveTo:"rotate-[90deg] opacity-0"}};function We(e,r){const{preset:o,show:i,mode:s="default",duration:c,appear:u=!1,css:j=!0,name:t,enterFrom:a,enterActive:g,enterTo:S,leaveFrom:T,leaveActive:A,leaveTo:E,onBeforeEnter:f,onEnter:p,onAfterEnter:d,onEnterCancelled:m,onBeforeLeave:w,onLeave:b,onAfterLeave:F,onLeaveCancelled:k}=e;let h;o&&V[o]?(h={...V[o]},a&&(h.enterFrom=a),g&&(h.enterActive=g),S&&(h.enterTo=S),T&&(h.leaveFrom=T),A&&(h.leaveActive=A),E&&(h.leaveTo=E)):h={enterFrom:a,enterActive:g,enterTo:S,leaveFrom:T,leaveActive:A,leaveTo:E};const P=t||(o?`transition-${o}`:"transition"),W=$e.anchorBlock(i?r:[],P);return W._transition={name:P,classes:h,mode:s,duration:c,appear:u,css:j,state:i?"visible":"hidden",hooks:{onBeforeEnter:f,onEnter:p,onAfterEnter:d,onEnterCancelled:m,onBeforeLeave:w,onLeave:b,onAfterLeave:F,onLeaveCancelled:k}},W}function _e(e,r){const{tag:o="div",moveClass:i="transition-transform duration-300",preset:s,show:c=!0,mode:u="default",duration:j,appear:t=!1,css:a=!0,name:g,class:S,style:T,enterFrom:A,enterActive:E,enterTo:f,leaveFrom:p,leaveActive:d,leaveTo:m,onBeforeEnter:w,onEnter:b,onAfterEnter:F,onEnterCancelled:k,onBeforeLeave:h,onLeave:P,onAfterLeave:W,onLeaveCancelled:x}=e;let l;s&&V[s]?(l={...V[s]},A&&(l.enterFrom=A),E&&(l.enterActive=E),f&&(l.enterTo=f),p&&(l.leaveFrom=p),d&&(l.leaveActive=d),m&&(l.leaveTo=m)):l={enterFrom:A,enterActive:E,enterTo:f,leaveFrom:p,leaveActive:d,leaveTo:m};const _=g||(s?`transition-group-${s}`:"transition-group"),B=[];for(const y of c?r:[])if(y&&typeof y=="object"&&y.tag==="#anchor"){const I=Array.isArray(y.children)?y.children:[];for(const R of I)if(R&&typeof R=="object"){const X={...R,key:y.key||R.key,props:{...R.props,_anchorKey:y.key}};B.push(X)}else B.push(R)}else B.push(y);const H=(()=>{if(T)return typeof T=="string"?T:Object.entries(T).map(([y,I])=>`${y}: ${I}`).join("; ")})();return{tag:o,children:B,key:_,props:{attrs:{...S?{class:S}:{},...H?{style:H}:{}},_transitionGroup:{name:_,classes:l,moveClass:i,mode:u,duration:j,appear:t,css:a,hooks:{onBeforeEnter:w,onEnter:b,onAfterEnter:F,onEnterCancelled:k,onBeforeLeave:h,onLeave:P,onAfterLeave:W,onLeaveCancelled:x}}}}}function Be(e){return{...e}}let Z=null;function we(){if(!Z){const e=[];Object.values(V).forEach(i=>{i.enterFrom&&e.push(i.enterFrom),i.enterActive&&e.push(i.enterActive),i.enterTo&&e.push(i.enterTo),i.leaveFrom&&e.push(i.leaveFrom),i.leaveActive&&e.push(i.leaveActive),i.leaveTo&&e.push(i.leaveTo)});const r=`<div class="${e.join(" ")}"></div>`,o=ve(r);Z=new CSSStyleSheet,Z.replaceSync(o)}return Z}function De(){we()}De();exports.Transition=We;exports.TransitionGroup=_e;exports.createTransitionPreset=Be;exports.css=he;exports.getBaseResetSheet=ye;exports.getTransitionStyleSheet=we;exports.jitCSS=ve;exports.minifyCSS=be;exports.sanitizeCSS=ke;exports.transitionPresets=V;
117
- //# sourceMappingURL=transitions-ComAUaWb.cjs.map