windrunner 1.1.3 → 1.1.4
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +5 -5
- package/dist/index.esm.js +24 -14
- package/dist/index.esm.js.map +2 -2
- package/dist/index.js +24 -14
- package/dist/index.js.map +2 -2
- package/dist/index.min.js +1 -1
- package/dist/react.esm.js +24 -14
- package/dist/react.esm.js.map +2 -2
- package/dist/react.js +24 -14
- package/dist/react.js.map +2 -2
- package/package.json +1 -1
package/dist/index.js.map
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
{
|
|
2
2
|
"version": 3,
|
|
3
3
|
"sources": ["../src/index.js", "../src/theme.js", "../src/vars.js", "../src/config.js", "../src/utils.js", "../src/constants.js", "../src/resolvers.js", "../src/maps/layout.maps.js", "../src/maps/interactivity.maps.js", "../src/builders/layout.js", "../src/builders/spacing.js", "../src/maps/flexgrid.maps.js", "../src/builders/flexgrid.js", "../src/maps/typography.maps.js", "../src/builders/typography.js", "../src/builders/colors.js", "../src/builders/borders.js", "../src/maps/effects.maps.js", "../src/builders/effects.js", "../src/builders/backgrounds.js", "../src/builders/transforms.js", "../src/builders/filters.js", "../src/builders/transitions.js", "../src/builders/misc.js", "../src/builders/blending.js", "../src/builders/space-divide.js", "../src/plugins.js", "../src/compiler.js", "../src/preflight.js", "../src/runtime.js"],
|
|
4
|
-
"sourcesContent": ["export { default as windrunner, createWindrunner } from \"./runtime.js\";\nexport { parseClass, compileClass, compileCriticalCss, extractClassNames } from \"./compiler.js\";\nexport { plugin, defineUtilities, defineResponsiveUtilities } from \"./plugins.js\";\n", "const theme = {\n accentColor: ({ theme }) => ({\n ...theme(\"colors\"),\n auto: \"auto\",\n }),\n aspectRatio: {\n auto: \"auto\",\n square: \"1 / 1\",\n video: \"16 / 9\",\n },\n backdropBlur: ({ theme }) => theme(\"blur\"),\n backdropBrightness: ({ theme }) => theme(\"brightness\"),\n backdropContrast: ({ theme }) => theme(\"contrast\"),\n backdropGrayscale: ({ theme }) => theme(\"grayscale\"),\n backdropHueRotate: ({ theme }) => theme(\"hueRotate\"),\n backdropInvert: ({ theme }) => theme(\"invert\"),\n backdropOpacity: ({ theme }) => theme(\"opacity\"),\n backdropSaturate: ({ theme }) => theme(\"saturate\"),\n backdropSepia: ({ theme }) => theme(\"sepia\"),\n backgroundColor: ({ theme }) => theme(\"colors\"),\n backgroundImage: {\n none: \"none\",\n \"linear-to-t\": \"linear-gradient(to top, var(--tw-gradient-stops))\",\n \"linear-to-tr\": \"linear-gradient(to top right, var(--tw-gradient-stops))\",\n \"linear-to-r\": \"linear-gradient(to right, var(--tw-gradient-stops))\",\n \"linear-to-br\": \"linear-gradient(to bottom right, var(--tw-gradient-stops))\",\n \"linear-to-b\": \"linear-gradient(to bottom, var(--tw-gradient-stops))\",\n \"linear-to-bl\": \"linear-gradient(to bottom left, var(--tw-gradient-stops))\",\n \"linear-to-l\": \"linear-gradient(to left, var(--tw-gradient-stops))\",\n \"linear-to-tl\": \"linear-gradient(to top left, var(--tw-gradient-stops))\",\n },\n backgroundPosition: {\n bottom: \"bottom\",\n center: \"center\",\n left: \"left\",\n \"left-bottom\": \"left bottom\",\n \"left-top\": \"left top\",\n right: \"right\",\n \"right-bottom\": \"right bottom\",\n \"right-top\": \"right top\",\n top: \"top\",\n },\n backgroundSize: {\n auto: \"auto\",\n cover: \"cover\",\n contain: \"contain\",\n },\n blur: {\n 0: \"0\",\n none: \"0\",\n sm: \"4px\",\n DEFAULT: \"8px\",\n md: \"12px\",\n lg: \"16px\",\n xl: \"24px\",\n \"2xl\": \"40px\",\n \"3xl\": \"64px\",\n },\n borderColor: ({ theme }) => ({\n ...theme(\"colors\"),\n DEFAULT: \"#e5e7eb\",\n }),\n borderRadius: {\n none: \"0px\",\n sm: \"0.125rem\",\n DEFAULT: \"0.25rem\",\n md: \"0.375rem\",\n lg: \"0.5rem\",\n xl: \"0.75rem\",\n \"2xl\": \"1rem\",\n \"3xl\": \"1.5rem\",\n full: \"9999px\",\n },\n borderSpacing: ({ theme }) => ({\n ...theme(\"spacing\"),\n }),\n borderWidth: {\n DEFAULT: \"1px\",\n 0: \"0px\",\n 2: \"2px\",\n 4: \"4px\",\n 8: \"8px\",\n },\n boxShadow: {\n sm: \"0 1px 2px 0 rgb(0 0 0 / 0.05)\",\n DEFAULT: \"0 1px 3px 0 rgb(0 0 0 / 0.1), 0 1px 2px -1px rgb(0 0 0 / 0.1)\",\n md: \"0 4px 6px -1px rgb(0 0 0 / 0.1), 0 2px 4px -2px rgb(0 0 0 / 0.1)\",\n lg: \"0 10px 15px -3px rgb(0 0 0 / 0.1), 0 4px 6px -4px rgb(0 0 0 / 0.1)\",\n xl: \"0 20px 25px -5px rgb(0 0 0 / 0.1), 0 8px 10px -6px rgb(0 0 0 / 0.1)\",\n \"2xl\": \"0 25px 50px -12px rgb(0 0 0 / 0.25)\",\n inner: \"inset 0 2px 4px 0 rgb(0 0 0 / 0.05)\",\n none: \"none\",\n },\n boxShadowColor: ({ theme }) => theme(\"colors\"),\n brightness: {\n 0: \"0\",\n 50: \".5\",\n 75: \".75\",\n 90: \".9\",\n 95: \".95\",\n 100: \"1\",\n 105: \"1.05\",\n 110: \"1.1\",\n 125: \"1.25\",\n 150: \"1.5\",\n 200: \"2\",\n },\n caretColor: ({ theme }) => theme(\"colors\"),\n colors: {\n transparent: \"transparent\",\n current: \"currentColor\",\n black: \"oklch(0% 0 0)\",\n white: \"oklch(100% 0 0)\",\n slate: {\n 50: \"oklch(0.984 0.003 247.9)\",\n 100: \"oklch(0.968 0.007 247.9)\",\n 200: \"oklch(0.929 0.013 255.5)\",\n 300: \"oklch(0.869 0.022 252.9)\",\n 400: \"oklch(0.704 0.04 256.8)\",\n 500: \"oklch(0.554 0.046 257.4)\",\n 600: \"oklch(0.446 0.043 257.3)\",\n 700: \"oklch(0.372 0.044 257.4)\",\n 800: \"oklch(0.279 0.041 260.0)\",\n 900: \"oklch(0.208 0.042 265.8)\",\n 950: \"oklch(0.129 0.042 264.7)\",\n },\n gray: {\n 50: \"oklch(0.985 0.002 247.9)\",\n 100: \"oklch(0.967 0.003 264.5)\",\n 200: \"oklch(0.928 0.006 264.5)\",\n 300: \"oklch(0.872 0.010 258.3)\",\n 400: \"oklch(0.707 0.022 261.3)\",\n 500: \"oklch(0.551 0.027 264.4)\",\n 600: \"oklch(0.446 0.030 256.8)\",\n 700: \"oklch(0.373 0.034 259.7)\",\n 800: \"oklch(0.278 0.033 256.8)\",\n 900: \"oklch(0.210 0.034 264.7)\",\n 950: \"oklch(0.130 0.028 261.7)\",\n },\n zinc: {\n 50: \"oklch(0.985 0.000 0.0)\",\n 100: \"oklch(0.967 0.001 286.4)\",\n 200: \"oklch(0.920 0.004 286.3)\",\n 300: \"oklch(0.871 0.006 286.3)\",\n 400: \"oklch(0.705 0.015 286.1)\",\n 500: \"oklch(0.552 0.016 285.9)\",\n 600: \"oklch(0.442 0.017 285.8)\",\n 700: \"oklch(0.370 0.013 285.8)\",\n 800: \"oklch(0.274 0.006 286.0)\",\n 900: \"oklch(0.210 0.006 285.9)\",\n 950: \"oklch(0.141 0.005 285.8)\",\n },\n neutral: {\n 50: \"oklch(0.985 0.000 0.0)\",\n 100: \"oklch(0.970 0.000 0.0)\",\n 200: \"oklch(0.922 0.000 0.0)\",\n 300: \"oklch(0.870 0.000 0.0)\",\n 400: \"oklch(0.708 0.000 0.0)\",\n 500: \"oklch(0.556 0.000 0.0)\",\n 600: \"oklch(0.439 0.000 0.0)\",\n 700: \"oklch(0.371 0.000 0.0)\",\n 800: \"oklch(0.269 0.000 0.0)\",\n 900: \"oklch(0.205 0.000 0.0)\",\n 950: \"oklch(0.145 0.000 0.0)\",\n },\n stone: {\n 50: \"oklch(0.985 0.001 67.4)\",\n 100: \"oklch(0.970 0.002 75.2)\",\n 200: \"oklch(0.923 0.006 75.2)\",\n 300: \"oklch(0.869 0.011 65.3)\",\n 400: \"oklch(0.709 0.023 56.0)\",\n 500: \"oklch(0.553 0.028 50.3)\",\n 600: \"oklch(0.444 0.024 48.7)\",\n 700: \"oklch(0.374 0.020 50.9)\",\n 800: \"oklch(0.268 0.015 52.9)\",\n 900: \"oklch(0.216 0.012 56.0)\",\n 950: \"oklch(0.147 0.009 50.9)\",\n },\n red: {\n 50: \"oklch(0.971 0.013 17.4)\",\n 100: \"oklch(0.936 0.032 17.7)\",\n 200: \"oklch(0.885 0.062 18.3)\",\n 300: \"oklch(0.808 0.114 19.6)\",\n 400: \"oklch(0.704 0.191 22.2)\",\n 500: \"oklch(0.637 0.237 25.3)\",\n 600: \"oklch(0.577 0.245 27.3)\",\n 700: \"oklch(0.505 0.213 27.5)\",\n 800: \"oklch(0.444 0.177 26.3)\",\n 900: \"oklch(0.396 0.141 25.7)\",\n 950: \"oklch(0.258 0.092 26.0)\",\n },\n orange: {\n 50: \"oklch(0.980 0.016 73.7)\",\n 100: \"oklch(0.954 0.038 75.2)\",\n 200: \"oklch(0.901 0.076 70.7)\",\n 300: \"oklch(0.837 0.128 66.3)\",\n 400: \"oklch(0.750 0.183 55.9)\",\n 500: \"oklch(0.705 0.213 47.6)\",\n 600: \"oklch(0.646 0.222 41.1)\",\n 700: \"oklch(0.553 0.195 38.4)\",\n 800: \"oklch(0.470 0.157 37.5)\",\n 900: \"oklch(0.408 0.123 38.1)\",\n 950: \"oklch(0.266 0.079 36.3)\",\n },\n amber: {\n 50: \"oklch(0.987 0.022 95.3)\",\n 100: \"oklch(0.962 0.059 95.6)\",\n 200: \"oklch(0.924 0.120 95.2)\",\n 300: \"oklch(0.879 0.169 91.6)\",\n 400: \"oklch(0.828 0.189 84.6)\",\n 500: \"oklch(0.769 0.188 70.1)\",\n 600: \"oklch(0.666 0.179 58.3)\",\n 700: \"oklch(0.555 0.163 48.9)\",\n 800: \"oklch(0.473 0.137 46.2)\",\n 900: \"oklch(0.414 0.112 45.9)\",\n 950: \"oklch(0.279 0.077 45.2)\",\n },\n yellow: {\n 50: \"oklch(0.987 0.026 102.2)\",\n 100: \"oklch(0.973 0.071 103.2)\",\n 200: \"oklch(0.945 0.129 101.5)\",\n 300: \"oklch(0.905 0.182 98.1)\",\n 400: \"oklch(0.852 0.199 91.3)\",\n 500: \"oklch(0.795 0.184 86.0)\",\n 600: \"oklch(0.681 0.162 75.8)\",\n 700: \"oklch(0.554 0.135 66.4)\",\n 800: \"oklch(0.476 0.114 61.9)\",\n 900: \"oklch(0.421 0.095 57.7)\",\n 950: \"oklch(0.286 0.066 53.8)\",\n },\n lime: {\n 50: \"oklch(0.986 0.031 129.5)\",\n 100: \"oklch(0.967 0.067 130.9)\",\n 200: \"oklch(0.938 0.127 130.7)\",\n 300: \"oklch(0.897 0.196 126.5)\",\n 400: \"oklch(0.841 0.238 128.5)\",\n 500: \"oklch(0.768 0.233 130.9)\",\n 600: \"oklch(0.648 0.200 131.4)\",\n 700: \"oklch(0.532 0.157 131.6)\",\n 800: \"oklch(0.453 0.124 130.9)\",\n 900: \"oklch(0.405 0.101 131.1)\",\n 950: \"oklch(0.274 0.072 132.1)\",\n },\n green: {\n 50: \"oklch(0.982 0.018 155.8)\",\n 100: \"oklch(0.962 0.044 156.7)\",\n 200: \"oklch(0.925 0.084 155.9)\",\n 300: \"oklch(0.871 0.150 154.4)\",\n 400: \"oklch(0.792 0.209 151.7)\",\n 500: \"oklch(0.723 0.219 149.6)\",\n 600: \"oklch(0.627 0.194 149.2)\",\n 700: \"oklch(0.527 0.154 150.1)\",\n 800: \"oklch(0.448 0.119 151.3)\",\n 900: \"oklch(0.393 0.095 152.5)\",\n 950: \"oklch(0.266 0.065 152.9)\",\n },\n emerald: {\n 50: \"oklch(0.979 0.021 166.1)\",\n 100: \"oklch(0.950 0.052 163.1)\",\n 200: \"oklch(0.905 0.093 164.2)\",\n 300: \"oklch(0.845 0.143 164.9)\",\n 400: \"oklch(0.765 0.177 163.2)\",\n 500: \"oklch(0.696 0.170 162.5)\",\n 600: \"oklch(0.596 0.145 163.2)\",\n 700: \"oklch(0.508 0.118 165.6)\",\n 800: \"oklch(0.432 0.095 166.9)\",\n 900: \"oklch(0.378 0.077 168.9)\",\n 950: \"oklch(0.262 0.051 172.6)\",\n },\n teal: {\n 50: \"oklch(0.984 0.014 180.7)\",\n 100: \"oklch(0.953 0.051 180.8)\",\n 200: \"oklch(0.910 0.096 180.4)\",\n 300: \"oklch(0.855 0.138 181.1)\",\n 400: \"oklch(0.777 0.152 181.1)\",\n 500: \"oklch(0.704 0.140 182.5)\",\n 600: \"oklch(0.600 0.118 184.7)\",\n 700: \"oklch(0.511 0.096 186.4)\",\n 800: \"oklch(0.437 0.078 188.2)\",\n 900: \"oklch(0.386 0.063 188.4)\",\n 950: \"oklch(0.277 0.046 192.5)\",\n },\n cyan: {\n 50: \"oklch(0.984 0.019 200.9)\",\n 100: \"oklch(0.956 0.045 203.4)\",\n 200: \"oklch(0.917 0.080 205.0)\",\n 300: \"oklch(0.865 0.127 207.1)\",\n 400: \"oklch(0.789 0.154 211.1)\",\n 500: \"oklch(0.715 0.143 215.2)\",\n 600: \"oklch(0.609 0.126 221.7)\",\n 700: \"oklch(0.520 0.105 223.1)\",\n 800: \"oklch(0.450 0.085 224.3)\",\n 900: \"oklch(0.398 0.070 227.4)\",\n 950: \"oklch(0.302 0.056 229.7)\",\n },\n sky: {\n 50: \"oklch(0.977 0.013 236.6)\",\n 100: \"oklch(0.951 0.026 236.8)\",\n 200: \"oklch(0.901 0.058 230.9)\",\n 300: \"oklch(0.828 0.111 230.3)\",\n 400: \"oklch(0.746 0.160 232.7)\",\n 500: \"oklch(0.685 0.169 237.3)\",\n 600: \"oklch(0.588 0.158 241.9)\",\n 700: \"oklch(0.500 0.134 242.7)\",\n 800: \"oklch(0.443 0.110 240.8)\",\n 900: \"oklch(0.391 0.090 240.9)\",\n 950: \"oklch(0.293 0.066 243.2)\",\n },\n blue: {\n 50: \"oklch(0.970 0.014 254.6)\",\n 100: \"oklch(0.932 0.032 255.6)\",\n 200: \"oklch(0.882 0.059 254.1)\",\n 300: \"oklch(0.809 0.105 251.8)\",\n 400: \"oklch(0.707 0.165 254.6)\",\n 500: \"oklch(0.623 0.214 259.1)\",\n 600: \"oklch(0.546 0.245 262.9)\",\n 700: \"oklch(0.488 0.243 264.4)\",\n 800: \"oklch(0.424 0.199 265.6)\",\n 900: \"oklch(0.379 0.146 265.5)\",\n 950: \"oklch(0.282 0.091 267.9)\",\n },\n indigo: {\n 50: \"oklch(0.962 0.018 272.3)\",\n 100: \"oklch(0.930 0.034 272.8)\",\n 200: \"oklch(0.870 0.065 274.0)\",\n 300: \"oklch(0.785 0.115 274.7)\",\n 400: \"oklch(0.673 0.182 276.9)\",\n 500: \"oklch(0.585 0.233 277.1)\",\n 600: \"oklch(0.511 0.262 276.9)\",\n 700: \"oklch(0.457 0.240 277.0)\",\n 800: \"oklch(0.398 0.195 277.4)\",\n 900: \"oklch(0.359 0.144 278.7)\",\n 950: \"oklch(0.257 0.090 281.3)\",\n },\n violet: {\n 50: \"oklch(0.969 0.016 293.8)\",\n 100: \"oklch(0.943 0.029 294.6)\",\n 200: \"oklch(0.894 0.057 293.3)\",\n 300: \"oklch(0.811 0.111 293.6)\",\n 400: \"oklch(0.702 0.183 293.5)\",\n 500: \"oklch(0.606 0.250 292.7)\",\n 600: \"oklch(0.541 0.281 293.0)\",\n 700: \"oklch(0.491 0.270 292.6)\",\n 800: \"oklch(0.432 0.232 292.8)\",\n 900: \"oklch(0.380 0.189 293.7)\",\n 950: \"oklch(0.283 0.141 291.1)\",\n },\n purple: {\n 50: \"oklch(0.977 0.014 308.3)\",\n 100: \"oklch(0.946 0.033 307.1)\",\n 200: \"oklch(0.902 0.063 306.7)\",\n 300: \"oklch(0.827 0.119 306.3)\",\n 400: \"oklch(0.714 0.203 305.3)\",\n 500: \"oklch(0.627 0.265 303.9)\",\n 600: \"oklch(0.558 0.288 302.3)\",\n 700: \"oklch(0.496 0.265 301.9)\",\n 800: \"oklch(0.438 0.218 303.7)\",\n 900: \"oklch(0.381 0.176 304.1)\",\n 950: \"oklch(0.291 0.149 302.7)\",\n },\n fuchsia: {\n 50: \"oklch(0.977 0.017 320.1)\",\n 100: \"oklch(0.952 0.037 318.9)\",\n 200: \"oklch(0.903 0.076 319.6)\",\n 300: \"oklch(0.833 0.145 321.4)\",\n 400: \"oklch(0.740 0.238 322.2)\",\n 500: \"oklch(0.667 0.295 322.1)\",\n 600: \"oklch(0.591 0.293 321.5)\",\n 700: \"oklch(0.518 0.253 323.1)\",\n 800: \"oklch(0.452 0.211 324.1)\",\n 900: \"oklch(0.401 0.170 325.6)\",\n 950: \"oklch(0.293 0.136 325.7)\",\n },\n pink: {\n 50: \"oklch(0.971 0.014 343.2)\",\n 100: \"oklch(0.948 0.028 342.3)\",\n 200: \"oklch(0.899 0.061 343.2)\",\n 300: \"oklch(0.823 0.120 346.0)\",\n 400: \"oklch(0.718 0.202 349.8)\",\n 500: \"oklch(0.656 0.241 354.3)\",\n 600: \"oklch(0.592 0.249 0.6)\",\n 700: \"oklch(0.525 0.223 3.9)\",\n 800: \"oklch(0.459 0.187 3.8)\",\n 900: \"oklch(0.408 0.153 2.4)\",\n 950: \"oklch(0.284 0.109 3.9)\",\n },\n rose: {\n 50: \"oklch(0.969 0.015 12.4)\",\n 100: \"oklch(0.941 0.030 12.6)\",\n 200: \"oklch(0.892 0.058 10.0)\",\n 300: \"oklch(0.810 0.117 11.6)\",\n 400: \"oklch(0.712 0.194 13.4)\",\n 500: \"oklch(0.645 0.246 16.4)\",\n 600: \"oklch(0.586 0.253 17.6)\",\n 700: \"oklch(0.514 0.222 16.9)\",\n 800: \"oklch(0.455 0.188 13.9)\",\n 900: \"oklch(0.410 0.159 10.9)\",\n 950: \"oklch(0.271 0.105 12.1)\",\n },\n mauve: {\n 50: \"oklch(0.980 0.005 300.0)\",\n 100: \"oklch(0.960 0.010 300.0)\",\n 200: \"oklch(0.920 0.018 300.0)\",\n 300: \"oklch(0.860 0.028 300.0)\",\n 400: \"oklch(0.720 0.040 300.0)\",\n 500: \"oklch(0.580 0.052 300.0)\",\n 600: \"oklch(0.470 0.048 300.0)\",\n 700: \"oklch(0.380 0.040 300.0)\",\n 800: \"oklch(0.280 0.030 300.0)\",\n 900: \"oklch(0.200 0.022 300.0)\",\n 950: \"oklch(0.130 0.015 300.0)\",\n },\n olive: {\n 50: \"oklch(0.980 0.015 90.0)\",\n 100: \"oklch(0.960 0.022 90.0)\",\n 200: \"oklch(0.920 0.032 90.0)\",\n 300: \"oklch(0.860 0.045 90.0)\",\n 400: \"oklch(0.720 0.060 90.0)\",\n 500: \"oklch(0.580 0.072 90.0)\",\n 600: \"oklch(0.470 0.065 90.0)\",\n 700: \"oklch(0.380 0.055 90.0)\",\n 800: \"oklch(0.280 0.040 90.0)\",\n 900: \"oklch(0.200 0.028 90.0)\",\n 950: \"oklch(0.130 0.018 90.0)\",\n },\n mist: {\n 50: \"oklch(0.982 0.008 200.0)\",\n 100: \"oklch(0.962 0.014 200.0)\",\n 200: \"oklch(0.922 0.022 200.0)\",\n 300: \"oklch(0.862 0.034 200.0)\",\n 400: \"oklch(0.722 0.048 200.0)\",\n 500: \"oklch(0.582 0.060 200.0)\",\n 600: \"oklch(0.472 0.055 200.0)\",\n 700: \"oklch(0.382 0.045 200.0)\",\n 800: \"oklch(0.282 0.032 200.0)\",\n 900: \"oklch(0.202 0.022 200.0)\",\n 950: \"oklch(0.128 0.012 200.0)\",\n },\n taupe: {\n 50: \"oklch(0.978 0.008 60.0)\",\n 100: \"oklch(0.958 0.014 60.0)\",\n 200: \"oklch(0.918 0.022 60.0)\",\n 300: \"oklch(0.858 0.034 60.0)\",\n 400: \"oklch(0.718 0.048 60.0)\",\n 500: \"oklch(0.578 0.060 60.0)\",\n 600: \"oklch(0.468 0.055 60.0)\",\n 700: \"oklch(0.378 0.045 60.0)\",\n 800: \"oklch(0.278 0.032 60.0)\",\n 900: \"oklch(0.198 0.022 60.0)\",\n 950: \"oklch(0.128 0.014 60.0)\",\n },\n },\n columns: {\n auto: \"auto\",\n 1: \"1\",\n 2: \"2\",\n 3: \"3\",\n 4: \"4\",\n 5: \"5\",\n 6: \"6\",\n 7: \"7\",\n 8: \"8\",\n 9: \"9\",\n 10: \"10\",\n 11: \"11\",\n 12: \"12\",\n \"3xs\": \"16rem\",\n \"2xs\": \"18rem\",\n xs: \"20rem\",\n sm: \"24rem\",\n md: \"28rem\",\n lg: \"32rem\",\n xl: \"36rem\",\n \"2xl\": \"42rem\",\n \"3xl\": \"48rem\",\n \"4xl\": \"56rem\",\n \"5xl\": \"64rem\",\n \"6xl\": \"72rem\",\n \"7xl\": \"80rem\",\n },\n container: {},\n containers: {\n xs: \"20rem\", // 320px\n sm: \"24rem\", // 384px\n md: \"28rem\", // 448px\n lg: \"32rem\", // 512px\n xl: \"36rem\", // 576px\n \"2xl\": \"42rem\", // 672px\n \"3xl\": \"48rem\", // 768px\n \"4xl\": \"56rem\", // 896px\n \"5xl\": \"64rem\", // 1024px\n \"6xl\": \"72rem\", // 1152px\n \"7xl\": \"80rem\", // 1280px\n },\n content: {\n none: \"none\",\n },\n contrast: {\n 0: \"0\",\n 50: \".5\",\n 75: \".75\",\n 100: \"1\",\n 125: \"1.25\",\n 150: \"1.5\",\n 200: \"2\",\n },\n cursor: {\n auto: \"auto\",\n default: \"default\",\n pointer: \"pointer\",\n wait: \"wait\",\n text: \"text\",\n move: \"move\",\n help: \"help\",\n \"not-allowed\": \"not-allowed\",\n none: \"none\",\n \"context-menu\": \"context-menu\",\n progress: \"progress\",\n cell: \"cell\",\n crosshair: \"crosshair\",\n \"vertical-text\": \"vertical-text\",\n alias: \"alias\",\n copy: \"copy\",\n \"no-drop\": \"no-drop\",\n grab: \"grab\",\n grabbing: \"grabbing\",\n \"all-scroll\": \"all-scroll\",\n \"col-resize\": \"col-resize\",\n \"row-resize\": \"row-resize\",\n \"n-resize\": \"n-resize\",\n \"e-resize\": \"e-resize\",\n \"s-resize\": \"s-resize\",\n \"w-resize\": \"w-resize\",\n \"ne-resize\": \"ne-resize\",\n \"nw-resize\": \"nw-resize\",\n \"se-resize\": \"se-resize\",\n \"sw-resize\": \"sw-resize\",\n \"ew-resize\": \"ew-resize\",\n \"ns-resize\": \"ns-resize\",\n \"nesw-resize\": \"nesw-resize\",\n \"nwse-resize\": \"nwse-resize\",\n \"zoom-in\": \"zoom-in\",\n \"zoom-out\": \"zoom-out\",\n },\n divideColor: ({ theme }) => theme(\"borderColor\"),\n divideWidth: ({ theme }) => theme(\"borderWidth\"),\n dropShadow: {\n sm: \"0 1px 1px rgb(0 0 0 / 0.05)\",\n DEFAULT: \"0 1px 2px rgb(0 0 0 / 0.1) , 0 1px 1px rgb(0 0 0 / 0.06)\",\n md: \"0 4px 3px rgb(0 0 0 / 0.07) , 0 2px 2px rgb(0 0 0 / 0.06)\",\n lg: \"0 10px 8px rgb(0 0 0 / 0.04) , 0 4px 3px rgb(0 0 0 / 0.1)\",\n xl: \"0 20px 13px rgb(0 0 0 / 0.03) , 0 8px 5px rgb(0 0 0 / 0.08)\",\n \"2xl\": \"0 25px 25px rgb(0 0 0 / 0.15)\",\n none: \"0 0 #0000\",\n },\n fill: ({ theme }) => ({\n none: \"none\",\n ...theme(\"colors\"),\n }),\n flex: {\n 1: \"1 1 0%\",\n auto: \"1 1 auto\",\n initial: \"0 1 auto\",\n none: \"none\",\n },\n flexBasis: ({ theme }) => ({\n auto: \"auto\",\n ...theme(\"spacing\"),\n \"1/2\": \"50%\",\n \"1/3\": \"33.333333%\",\n \"2/3\": \"66.666667%\",\n \"1/4\": \"25%\",\n \"2/4\": \"50%\",\n \"3/4\": \"75%\",\n \"1/5\": \"20%\",\n \"2/5\": \"40%\",\n \"3/5\": \"60%\",\n \"4/5\": \"80%\",\n \"1/6\": \"16.666667%\",\n \"2/6\": \"33.333333%\",\n \"3/6\": \"50%\",\n \"4/6\": \"66.666667%\",\n \"5/6\": \"83.333333%\",\n \"1/12\": \"8.333333%\",\n \"2/12\": \"16.666667%\",\n \"3/12\": \"25%\",\n \"4/12\": \"33.333333%\",\n \"5/12\": \"41.666667%\",\n \"6/12\": \"50%\",\n \"7/12\": \"58.333333%\",\n \"8/12\": \"66.666667%\",\n \"9/12\": \"75%\",\n \"10/12\": \"83.333333%\",\n \"11/12\": \"91.666667%\",\n full: \"100%\",\n }),\n flexGrow: {\n 0: \"0\",\n DEFAULT: \"1\",\n },\n flexShrink: {\n 0: \"0\",\n DEFAULT: \"1\",\n },\n fontFamily: {\n sans: [\"ui-sans-serif\", \"system-ui\", \"sans-serif\", \"Apple Color Emoji\", \"Segoe UI Emoji\", \"Segoe UI Symbol\", \"Noto Color Emoji\"],\n serif: [\"ui-serif\", \"Georgia\", \"Cambria\", \"Times New Roman\", \"Times\", \"serif\"],\n mono: [\"ui-monospace\", \"SFMono-Regular\", \"Menlo\", \"Monaco\", \"Consolas\", \"Liberation Mono\", \"Courier New\", \"monospace\"],\n },\n fontSize: {\n xs: \"0.75rem\",\n sm: \"0.875rem\",\n base: \"1rem\",\n lg: \"1.125rem\",\n xl: \"1.25rem\",\n \"2xl\": \"1.5rem\",\n \"3xl\": \"1.875rem\",\n \"4xl\": \"2.25rem\",\n \"5xl\": \"3rem\",\n \"6xl\": \"3.75rem\",\n \"7xl\": \"4.5rem\",\n \"8xl\": \"6rem\",\n \"9xl\": \"8rem\",\n },\n fontWeight: {\n thin: \"100\",\n extralight: \"200\",\n light: \"300\",\n normal: \"400\",\n medium: \"500\",\n semibold: \"600\",\n bold: \"700\",\n extrabold: \"800\",\n black: \"900\",\n },\n gap: ({ theme }) => theme(\"spacing\"),\n gradientColorStops: ({ theme }) => theme(\"colors\"),\n gradientColorStopPositions: {\n \"0%\": \"0%\",\n \"5%\": \"5%\",\n \"10%\": \"10%\",\n \"15%\": \"15%\",\n \"20%\": \"20%\",\n \"25%\": \"25%\",\n \"30%\": \"30%\",\n \"35%\": \"35%\",\n \"40%\": \"40%\",\n \"45%\": \"45%\",\n \"50%\": \"50%\",\n \"55%\": \"55%\",\n \"60%\": \"60%\",\n \"65%\": \"65%\",\n \"70%\": \"70%\",\n \"75%\": \"75%\",\n \"80%\": \"80%\",\n \"85%\": \"85%\",\n \"90%\": \"90%\",\n \"95%\": \"95%\",\n \"100%\": \"100%\",\n },\n grayscale: {\n 0: \"0\",\n 50: \"0.5\",\n DEFAULT: \"100%\",\n },\n gridAutoColumns: {\n auto: \"auto\",\n min: \"min-content\",\n max: \"max-content\",\n fr: \"minmax(0, 1fr)\",\n },\n gridAutoRows: {\n auto: \"auto\",\n min: \"min-content\",\n max: \"max-content\",\n fr: \"minmax(0, 1fr)\",\n },\n gridColumn: {\n auto: \"auto\",\n \"span-1\": \"span 1 / span 1\",\n \"span-2\": \"span 2 / span 2\",\n \"span-3\": \"span 3 / span 3\",\n \"span-4\": \"span 4 / span 4\",\n \"span-5\": \"span 5 / span 5\",\n \"span-6\": \"span 6 / span 6\",\n \"span-7\": \"span 7 / span 7\",\n \"span-8\": \"span 8 / span 8\",\n \"span-9\": \"span 9 / span 9\",\n \"span-10\": \"span 10 / span 10\",\n \"span-11\": \"span 11 / span 11\",\n \"span-12\": \"span 12 / span 12\",\n \"span-full\": \"1 / -1\",\n },\n gridColumnEnd: {\n auto: \"auto\",\n 1: \"1\",\n 2: \"2\",\n 3: \"3\",\n 4: \"4\",\n 5: \"5\",\n 6: \"6\",\n 7: \"7\",\n 8: \"8\",\n 9: \"9\",\n 10: \"10\",\n 11: \"11\",\n 12: \"12\",\n 13: \"13\",\n },\n gridColumnStart: {\n auto: \"auto\",\n 1: \"1\",\n 2: \"2\",\n 3: \"3\",\n 4: \"4\",\n 5: \"5\",\n 6: \"6\",\n 7: \"7\",\n 8: \"8\",\n 9: \"9\",\n 10: \"10\",\n 11: \"11\",\n 12: \"12\",\n 13: \"13\",\n },\n gridRow: {\n auto: \"auto\",\n \"span-1\": \"span 1 / span 1\",\n \"span-2\": \"span 2 / span 2\",\n \"span-3\": \"span 3 / span 3\",\n \"span-4\": \"span 4 / span 4\",\n \"span-5\": \"span 5 / span 5\",\n \"span-6\": \"span 6 / span 6\",\n \"span-7\": \"span 7 / span 7\",\n \"span-8\": \"span 8 / span 8\",\n \"span-9\": \"span 9 / span 9\",\n \"span-10\": \"span 10 / span 10\",\n \"span-11\": \"span 11 / span 11\",\n \"span-12\": \"span 12 / span 12\",\n \"span-full\": \"1 / -1\",\n },\n gridRowEnd: {\n auto: \"auto\",\n 1: \"1\",\n 2: \"2\",\n 3: \"3\",\n 4: \"4\",\n 5: \"5\",\n 6: \"6\",\n 7: \"7\",\n 8: \"8\",\n 9: \"9\",\n 10: \"10\",\n 11: \"11\",\n 12: \"12\",\n 13: \"13\",\n },\n gridRowStart: {\n auto: \"auto\",\n 1: \"1\",\n 2: \"2\",\n 3: \"3\",\n 4: \"4\",\n 5: \"5\",\n 6: \"6\",\n 7: \"7\",\n 8: \"8\",\n 9: \"9\",\n 10: \"10\",\n 11: \"11\",\n 12: \"12\",\n 13: \"13\",\n },\n gridTemplateColumns: {\n none: \"none\",\n subgrid: \"subgrid\",\n 1: \"repeat(1, minmax(0, 1fr))\",\n 2: \"repeat(2, minmax(0, 1fr))\",\n 3: \"repeat(3, minmax(0, 1fr))\",\n 4: \"repeat(4, minmax(0, 1fr))\",\n 5: \"repeat(5, minmax(0, 1fr))\",\n 6: \"repeat(6, minmax(0, 1fr))\",\n 7: \"repeat(7, minmax(0, 1fr))\",\n 8: \"repeat(8, minmax(0, 1fr))\",\n 9: \"repeat(9, minmax(0, 1fr))\",\n 10: \"repeat(10, minmax(0, 1fr))\",\n 11: \"repeat(11, minmax(0, 1fr))\",\n 12: \"repeat(12, minmax(0, 1fr))\",\n },\n gridTemplateRows: {\n none: \"none\",\n subgrid: \"subgrid\",\n 1: \"repeat(1, minmax(0, 1fr))\",\n 2: \"repeat(2, minmax(0, 1fr))\",\n 3: \"repeat(3, minmax(0, 1fr))\",\n 4: \"repeat(4, minmax(0, 1fr))\",\n 5: \"repeat(5, minmax(0, 1fr))\",\n 6: \"repeat(6, minmax(0, 1fr))\",\n 7: \"repeat(7, minmax(0, 1fr))\",\n 8: \"repeat(8, minmax(0, 1fr))\",\n 9: \"repeat(9, minmax(0, 1fr))\",\n 10: \"repeat(10, minmax(0, 1fr))\",\n 11: \"repeat(11, minmax(0, 1fr))\",\n 12: \"repeat(12, minmax(0, 1fr))\",\n },\n height: ({ theme }) => ({\n auto: \"auto\",\n ...theme(\"spacing\"),\n \"1/2\": \"50%\",\n \"1/3\": \"33.333333%\",\n \"2/3\": \"66.666667%\",\n \"1/4\": \"25%\",\n \"2/4\": \"50%\",\n \"3/4\": \"75%\",\n \"1/5\": \"20%\",\n \"2/5\": \"40%\",\n \"3/5\": \"60%\",\n \"4/5\": \"80%\",\n \"1/6\": \"16.666667%\",\n \"2/6\": \"33.333333%\",\n \"3/6\": \"50%\",\n \"4/6\": \"66.666667%\",\n \"5/6\": \"83.333333%\",\n full: \"100%\",\n screen: \"100vh\",\n svh: \"100svh\",\n lvh: \"100lvh\",\n dvh: \"100dvh\",\n min: \"min-content\",\n max: \"max-content\",\n fit: \"fit-content\",\n }),\n hueRotate: {\n 0: \"0deg\",\n 15: \"15deg\",\n 30: \"30deg\",\n 60: \"60deg\",\n 90: \"90deg\",\n 180: \"180deg\",\n },\n inset: ({ theme }) => ({\n auto: \"auto\",\n ...theme(\"spacing\"),\n \"1/2\": \"50%\",\n \"1/3\": \"33.333333%\",\n \"2/3\": \"66.666667%\",\n \"1/4\": \"25%\",\n \"2/4\": \"50%\",\n \"3/4\": \"75%\",\n full: \"100%\",\n }),\n invert: {\n 0: \"0\",\n 50: \"0.5\",\n DEFAULT: \"100%\",\n },\n letterSpacing: {\n tighter: \"-0.05em\",\n tight: \"-0.025em\",\n normal: \"0em\",\n wide: \"0.025em\",\n wider: \"0.05em\",\n widest: \"0.1em\",\n },\n lineClamp: {\n 1: \"1\",\n 2: \"2\",\n 3: \"3\",\n 4: \"4\",\n 5: \"5\",\n 6: \"6\",\n },\n lineHeight: {\n none: \"1\",\n tight: \"1.25\",\n snug: \"1.375\",\n normal: \"1.5\",\n relaxed: \"1.625\",\n loose: \"2\",\n 3: \".75rem\",\n 4: \"1rem\",\n 5: \"1.25rem\",\n 6: \"1.5rem\",\n 7: \"1.75rem\",\n 8: \"2rem\",\n 9: \"2.25rem\",\n 10: \"2.5rem\",\n },\n listStyleType: {\n none: \"none\",\n disc: \"disc\",\n decimal: \"decimal\",\n },\n margin: ({ theme }) => ({\n auto: \"auto\",\n ...theme(\"spacing\"),\n }),\n maxHeight: ({ theme }) => ({\n ...theme(\"spacing\"),\n none: \"none\",\n full: \"100%\",\n screen: \"100vh\",\n svh: \"100svh\",\n lvh: \"100lvh\",\n dvh: \"100dvh\",\n min: \"min-content\",\n max: \"max-content\",\n fit: \"fit-content\",\n }),\n maxWidth: ({ theme }) => ({\n ...theme(\"spacing\"),\n none: \"none\",\n xs: \"20rem\",\n sm: \"24rem\",\n md: \"28rem\",\n lg: \"32rem\",\n xl: \"36rem\",\n \"2xl\": \"42rem\",\n \"3xl\": \"48rem\",\n \"4xl\": \"56rem\",\n \"5xl\": \"64rem\",\n \"6xl\": \"72rem\",\n \"7xl\": \"80rem\",\n full: \"100%\",\n min: \"min-content\",\n max: \"max-content\",\n fit: \"fit-content\",\n prose: \"65ch\",\n }),\n minHeight: ({ theme }) => ({\n ...theme(\"spacing\"),\n full: \"100%\",\n screen: \"100vh\",\n svh: \"100svh\",\n lvh: \"100lvh\",\n dvh: \"100dvh\",\n min: \"min-content\",\n max: \"max-content\",\n fit: \"fit-content\",\n }),\n minWidth: ({ theme }) => ({\n ...theme(\"spacing\"),\n full: \"100%\",\n min: \"min-content\",\n max: \"max-content\",\n fit: \"fit-content\",\n }),\n objectPosition: {\n bottom: \"bottom\",\n center: \"center\",\n left: \"left\",\n \"left-bottom\": \"left bottom\",\n \"left-top\": \"left top\",\n right: \"right\",\n \"right-bottom\": \"right bottom\",\n \"right-top\": \"right top\",\n top: \"top\",\n },\n opacity: {\n 0: \"0\",\n 5: \"0.05\",\n 10: \"0.1\",\n 15: \"0.15\",\n 20: \"0.2\",\n 25: \"0.25\",\n 30: \"0.3\",\n 35: \"0.35\",\n 40: \"0.4\",\n 45: \"0.45\",\n 50: \"0.5\",\n 55: \"0.55\",\n 60: \"0.6\",\n 65: \"0.65\",\n 70: \"0.7\",\n 75: \"0.75\",\n 80: \"0.8\",\n 85: \"0.85\",\n 90: \"0.9\",\n 95: \"0.95\",\n 100: \"1\",\n },\n order: {\n first: \"-9999\",\n last: \"9999\",\n none: \"0\",\n 1: \"1\",\n 2: \"2\",\n 3: \"3\",\n 4: \"4\",\n 5: \"5\",\n 6: \"6\",\n 7: \"7\",\n 8: \"8\",\n 9: \"9\",\n 10: \"10\",\n 11: \"11\",\n 12: \"12\",\n },\n outlineColor: ({ theme }) => theme(\"colors\"),\n outlineOffset: {\n 0: \"0px\",\n 1: \"1px\",\n 2: \"2px\",\n 4: \"4px\",\n 8: \"8px\",\n },\n outlineWidth: {\n 0: \"0px\",\n 1: \"1px\",\n 2: \"2px\",\n 4: \"4px\",\n 8: \"8px\",\n },\n padding: ({ theme }) => theme(\"spacing\"),\n placeholderColor: ({ theme }) => theme(\"colors\"),\n ringColor: ({ theme }) => ({\n DEFAULT: \"#3b82f6\",\n ...theme(\"colors\"),\n }),\n ringOffsetColor: ({ theme }) => theme(\"colors\"),\n ringOffsetWidth: {\n 0: \"0px\",\n 1: \"1px\",\n 2: \"2px\",\n 4: \"4px\",\n 8: \"8px\",\n },\n ringWidth: {\n DEFAULT: \"3px\",\n 0: \"0px\",\n 1: \"1px\",\n 2: \"2px\",\n 4: \"4px\",\n 8: \"8px\",\n },\n rotate: {\n 0: \"0deg\",\n 1: \"1deg\",\n 2: \"2deg\",\n 3: \"3deg\",\n 6: \"6deg\",\n 12: \"12deg\",\n 45: \"45deg\",\n 90: \"90deg\",\n 180: \"180deg\",\n },\n saturate: {\n 0: \"0\",\n 50: \".5\",\n 100: \"1\",\n 150: \"1.5\",\n 200: \"2\",\n },\n scale: {\n 0: \"0\",\n 50: \".5\",\n 75: \".75\",\n 90: \".9\",\n 95: \".95\",\n 100: \"1\",\n 105: \"1.05\",\n 110: \"1.1\",\n 125: \"1.25\",\n 150: \"1.5\",\n },\n screens: {\n sm: \"640px\",\n md: \"768px\",\n lg: \"1024px\",\n xl: \"1280px\",\n \"2xl\": \"1536px\",\n },\n scrollMargin: ({ theme }) => ({\n ...theme(\"spacing\"),\n }),\n scrollPadding: ({ theme }) => theme(\"spacing\"),\n sepia: {\n 0: \"0\",\n 50: \"0.5\",\n DEFAULT: \"100%\",\n },\n skew: {\n 0: \"0deg\",\n 1: \"1deg\",\n 2: \"2deg\",\n 3: \"3deg\",\n 6: \"6deg\",\n 12: \"12deg\",\n },\n space: ({ theme }) => ({\n ...theme(\"spacing\"),\n }),\n spacing: {\n px: \"1px\",\n 0: \"0px\",\n 0.5: \"0.125rem\",\n 1: \"0.25rem\",\n 1.5: \"0.375rem\",\n 2: \"0.5rem\",\n 2.5: \"0.625rem\",\n 3: \"0.75rem\",\n 3.5: \"0.875rem\",\n 4: \"1rem\",\n 5: \"1.25rem\",\n 6: \"1.5rem\",\n 7: \"1.75rem\",\n 8: \"2rem\",\n 9: \"2.25rem\",\n 10: \"2.5rem\",\n 11: \"2.75rem\",\n 12: \"3rem\",\n 14: \"3.5rem\",\n 16: \"4rem\",\n 20: \"5rem\",\n 24: \"6rem\",\n 28: \"7rem\",\n 32: \"8rem\",\n 36: \"9rem\",\n 40: \"10rem\",\n 44: \"11rem\",\n 48: \"12rem\",\n 52: \"13rem\",\n 56: \"14rem\",\n 60: \"15rem\",\n 64: \"16rem\",\n 72: \"18rem\",\n 80: \"20rem\",\n 96: \"24rem\",\n \"screen-sm\": \"640px\",\n \"screen-md\": \"768px\",\n \"screen-lg\": \"1024px\",\n \"screen-xl\": \"1280px\",\n \"screen-2xl\": \"1536px\",\n },\n stroke: ({ theme }) => ({\n none: \"none\",\n ...theme(\"colors\"),\n }),\n strokeWidth: {\n 0: \"0\",\n 1: \"1\",\n 2: \"2\",\n },\n textColor: ({ theme }) => theme(\"colors\"),\n textDecorationColor: ({ theme }) => theme(\"colors\"),\n textDecorationThickness: {\n auto: \"auto\",\n \"from-font\": \"from-font\",\n 0: \"0px\",\n 1: \"1px\",\n 2: \"2px\",\n 4: \"4px\",\n 8: \"8px\",\n },\n textIndent: ({ theme }) => ({\n ...theme(\"spacing\"),\n }),\n textShadowBlur: ({ theme }) => theme(\"blur\"),\n textShadowColor: ({ theme }) => ({\n ...theme(\"colors\"),\n DEFAULT: \"#e5e7eb\",\n }),\n textShadowOpacity: ({ theme }) => theme(\"opacity\"),\n textShadowX: {\n 0: \"0px\",\n 1: \"1px\",\n 2: \"2px\",\n 3: \"3px\",\n 4: \"4px\",\n 5: \"5px\",\n 6: \"6px\",\n 7: \"7px\",\n 8: \"8px\",\n 9: \"9px\",\n 10: \"10px\",\n },\n textShadowY: ({ theme }) => theme(\"textShadowX\"),\n textUnderlineOffset: {\n auto: \"auto\",\n 0: \"0px\",\n 1: \"1px\",\n 2: \"2px\",\n 4: \"4px\",\n 8: \"8px\",\n },\n transformOrigin: {\n center: \"center\",\n top: \"top\",\n \"top-right\": \"top right\",\n right: \"right\",\n \"bottom-right\": \"bottom right\",\n bottom: \"bottom\",\n \"bottom-left\": \"bottom left\",\n left: \"left\",\n \"top-left\": \"top left\",\n },\n translate: ({ theme }) => ({\n ...theme(\"spacing\"),\n \"1/2\": \"50%\",\n \"1/3\": \"33.333333%\",\n \"2/3\": \"66.666667%\",\n \"1/4\": \"25%\",\n \"2/4\": \"50%\",\n \"3/4\": \"75%\",\n full: \"100%\",\n }),\n size: ({ theme }) => ({\n auto: \"auto\",\n ...theme(\"spacing\"),\n \"1/2\": \"50%\",\n \"1/3\": \"33.333333%\",\n \"2/3\": \"66.666667%\",\n \"1/4\": \"25%\",\n \"2/4\": \"50%\",\n \"3/4\": \"75%\",\n \"1/5\": \"20%\",\n \"2/5\": \"40%\",\n \"3/5\": \"60%\",\n \"4/5\": \"80%\",\n \"1/6\": \"16.666667%\",\n \"2/6\": \"33.333333%\",\n \"3/6\": \"50%\",\n \"4/6\": \"66.666667%\",\n \"5/6\": \"83.333333%\",\n \"1/12\": \"8.333333%\",\n \"2/12\": \"16.666667%\",\n \"3/12\": \"25%\",\n \"4/12\": \"33.333333%\",\n \"5/12\": \"41.666667%\",\n \"6/12\": \"50%\",\n \"7/12\": \"58.333333%\",\n \"8/12\": \"66.666667%\",\n \"9/12\": \"75%\",\n \"10/12\": \"83.333333%\",\n \"11/12\": \"91.666667%\",\n full: \"100%\",\n min: \"min-content\",\n max: \"max-content\",\n fit: \"fit-content\",\n }),\n width: ({ theme }) => ({\n auto: \"auto\",\n ...theme(\"spacing\"),\n \"1/2\": \"50%\",\n \"1/3\": \"33.333333%\",\n \"2/3\": \"66.666667%\",\n \"1/4\": \"25%\",\n \"2/4\": \"50%\",\n \"3/4\": \"75%\",\n \"1/5\": \"20%\",\n \"2/5\": \"40%\",\n \"3/5\": \"60%\",\n \"4/5\": \"80%\",\n \"1/6\": \"16.666667%\",\n \"2/6\": \"33.333333%\",\n \"3/6\": \"50%\",\n \"4/6\": \"66.666667%\",\n \"5/6\": \"83.333333%\",\n \"1/12\": \"8.333333%\",\n \"2/12\": \"16.666667%\",\n \"3/12\": \"25%\",\n \"4/12\": \"33.333333%\",\n \"5/12\": \"41.666667%\",\n \"6/12\": \"50%\",\n \"7/12\": \"58.333333%\",\n \"8/12\": \"66.666667%\",\n \"9/12\": \"75%\",\n \"10/12\": \"83.333333%\",\n \"11/12\": \"91.666667%\",\n full: \"100%\",\n screen: \"100vw\",\n svw: \"100svw\",\n lvw: \"100lvw\",\n dvw: \"100dvw\",\n min: \"min-content\",\n max: \"max-content\",\n fit: \"fit-content\",\n }),\n textShadow: {\n \"2xs\": \"0 1px 2px rgb(0 0 0 / 0.10)\",\n xs: \"0 1px 2px rgb(0 0 0 / 0.20)\",\n sm: \"0 1px 3px rgb(0 0 0 / 0.25)\",\n DEFAULT:\"0 1px 3px rgb(0 0 0 / 0.30)\",\n md: \"0 2px 4px rgb(0 0 0 / 0.30)\",\n lg: \"0 4px 6px rgb(0 0 0 / 0.25)\",\n xl: \"0 8px 12px rgb(0 0 0 / 0.20)\",\n \"2xl\": \"0 16px 24px rgb(0 0 0 / 0.15)\",\n none: \"none\",\n },\n willChange: {\n auto: \"auto\",\n scroll: \"scroll-position\",\n contents: \"contents\",\n transform: \"transform\",\n },\n zoom: {\n 0: \"0\",\n 50: \".5\",\n 75: \".75\",\n 90: \".9\",\n 95: \".95\",\n 100: \"1\",\n 105: \"1.05\",\n 110: \"1.1\",\n 125: \"1.25\",\n 150: \"1.5\",\n 200: \"2\",\n },\n zIndex: {\n 0: \"0\",\n 10: \"10\",\n 20: \"20\",\n 30: \"30\",\n 40: \"40\",\n 50: \"50\",\n 60: \"60\",\n 70: \"70\",\n 80: \"80\",\n 90: \"90\",\n 100: \"100\",\n auto: \"auto\",\n },\n};\n\nexport default theme;\n", "const vars = {\n transform: `transform: translateX(var(--transform-translate-x, 0)) translateY(var(--transform-translate-y, 0)) rotate(var(--transform-rotate, 0)) skewX(var(--transform-skew-x, 0)) skewY(var(--transform-skew-y, 0)) scaleX(var(--transform-scale-x, 1)) scaleY(var(--transform-scale-y, 1));`,\n filter: `filter: blur(var(--blur, 0)) brightness(var(--brightness, 1)) contrast(var(--contrast, 1)) grayscale(var(--grayscale, 0)) hue-rotate(var(--hue-rotate, 0deg)) invert(var(--invert, 0)) saturate(var(--saturate, 1)) sepia(var(--sepia, 0)) drop-shadow(var(--drop-shadow, 0 0 #0000));`,\n backdropFilter: `-webkit-backdrop-filter: blur(var(--backdrop-blur, 0)) brightness(var(--backdrop-brightness, 1)) contrast(var(--backdrop-contrast, 1)) grayscale(var(--backdrop-grayscale, 0)) hue-rotate(var(--backdrop-hue-rotate, 0deg)) invert(var(--backdrop-invert, 0)) opacity(var(--backdrop-opacity, 1)) saturate(var(--backdrop-saturate, 1)) sepia(var(--backdrop-sepia, 0)); backdrop-filter: blur(var(--backdrop-blur, 0)) brightness(var(--backdrop-brightness, 1)) contrast(var(--backdrop-contrast, 1)) grayscale(var(--backdrop-grayscale, 0)) hue-rotate(var(--backdrop-hue-rotate, 0deg)) invert(var(--backdrop-invert, 0)) opacity(var(--backdrop-opacity, 1)) saturate(var(--backdrop-saturate, 1)) sepia(var(--backdrop-sepia, 0));`,\n};\n\nexport default vars;\n", "import theme from \"./theme.js\";\nimport vars from \"./vars.js\";\n\nconst configOptions = {\n theme,\n vars,\n};\n\nexport default configOptions;\n", "import defaultConfigOptions from \"./config.js\";\n\nfunction isFunction(fn) {\n return fn && {}.toString.call(fn) === \"[object Function]\";\n}\n\n// \u2500\u2500\u2500 Config Options Cache \u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\n// Cache resolved configs to prevent re-resolution on every createWindrunner() call\n// Uses WeakMap for automatic garbage collection when options object is released\n\nconst configCache = new WeakMap();\n\n// Default context for empty options (most common case in React apps)\nlet defaultContextCache = null;\n\n// \u2500\u2500\u2500 Lazy Theme Resolution with Proxy \u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\n// Instead of resolving all theme keys upfront (33KB!), only resolve what's needed\n\nfunction createLazyTheme(userTheme = {}, userThemeExtend = {}) {\n const resolved = new Map();\n const defaultTheme = defaultConfigOptions.theme;\n \n return new Proxy({}, {\n get(_, key) {\n // Return cached if already resolved\n if (resolved.has(key)) {\n return resolved.get(key);\n }\n \n // Resolve theme key on-demand\n let value = Object.prototype.hasOwnProperty.call(userTheme, key)\n ? userTheme[key]\n : defaultTheme[key];\n \n // If it's a function, call it with theme reference (recursive proxy)\n if (isFunction(value)) {\n value = value({\n theme: (keyRef) => {\n // Recursive lazy lookup\n if (resolved.has(keyRef)) return resolved.get(keyRef);\n // Resolve recursively (will also cache)\n return createLazyTheme(userTheme, userThemeExtend)[keyRef];\n },\n });\n }\n \n // Apply extend if exists\n if (userThemeExtend[key]) {\n value = Object.assign({}, value, userThemeExtend[key]);\n }\n \n // Cache and return\n resolved.set(key, value);\n return value;\n },\n \n has(_, key) {\n return key in defaultTheme || key in userTheme;\n },\n \n ownKeys(_) {\n // For Object.keys() etc - return all possible keys\n return [...new Set([...Object.keys(defaultTheme), ...Object.keys(userTheme)])];\n },\n \n getOwnPropertyDescriptor(_, key) {\n if (key in defaultTheme || key in userTheme) {\n return {\n enumerable: true,\n configurable: true,\n };\n }\n },\n });\n}\n\nexport function getConfigOptions(options = {}, pluginKeys = []) {\n // Fast path: empty options (most common case)\n if (!options || (typeof options === 'object' && Object.keys(options).length === 0)) {\n if (!defaultContextCache) {\n defaultContextCache = {\n ...defaultConfigOptions,\n theme: createLazyTheme({}, {}),\n };\n }\n return defaultContextCache;\n }\n \n // Check cache for this specific options object\n if (configCache.has(options)) {\n return configCache.get(options);\n }\n \n const { theme = {} } = options;\n const { extend: themeExtend = {} } = theme;\n\n // Use lazy theme proxy instead of eager resolution\n const lazyTheme = createLazyTheme(theme, themeExtend);\n\n const config = {\n ...defaultConfigOptions,\n ...options,\n theme: lazyTheme,\n };\n \n // Cache for future calls\n configCache.set(options, config);\n \n return config;\n}\n", "/**\n * Pre-compiled regex patterns and constants for performance optimization.\n * Creating regex patterns once and reusing them is faster than recreating on every call.\n */\n\n// \u2500\u2500\u2500 Arbitrary Value Patterns \u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\n\nexport const ARBITRARY_VALUE_REGEX = /^\\[.+\\]$/;\n\n// \u2500\u2500\u2500 Time Value Patterns (transitions, animations) \u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\n\nexport const TIME_VALUE_WITH_UNIT_REGEX = /^\\d+(?:\\.\\d+)?(?:ms|s)$/;\nexport const TIME_VALUE_NUMERIC_REGEX = /^\\d+(?:\\.\\d+)?$/;\n\n// \u2500\u2500\u2500 Numeric Patterns \u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\n\nexport const NUMERIC_REGEX = /^-?\\d+(?:\\.\\d+)?$/;\nexport const PERCENTAGE_REGEX = /^-?\\d+(?:\\.\\d+)?%$/;\n\n// \u2500\u2500\u2500 Color Patterns \u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\n\nexport const HEX_COLOR_REGEX = /^#([0-9a-fA-F]{3}|[0-9a-fA-F]{6}|[0-9a-fA-F]{8})$/;\nexport const RGB_REGEX = /^rgba?\\(/;\nexport const HSL_REGEX = /^hsla?\\(/;\nexport const OKLCH_REGEX = /^oklch\\(/;\n\n// \u2500\u2500\u2500 Prefix Extraction \u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\n\nexport const PREFIX_EXTRACTION_REGEX = /^([a-z]+(?:-[a-z]+)*)-/;\n\n// \u2500\u2500\u2500 CSS Identifier Escaping \u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\n\nexport const CSS_ESCAPE_BACKSLASH_REGEX = /\\\\/g;\nexport const CSS_ESCAPE_SPECIAL_CHARS_REGEX = /([ !\"#$%&'()*+,./:;<=>?@[\\\\\\]^`{|}~])/g;\nexport const CSS_ESCAPE_LEADING_DIGIT_REGEX = /^(\\d)/;\n\n// \u2500\u2500\u2500 Class Name Parsing \u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\n\nexport const IMPORTANT_PREFIX_REGEX = /^!/;\nexport const CONTAINER_BREAKPOINT_PREFIX_REGEX = /^@/;\n\n// \u2500\u2500\u2500 Variant Delimiter (for splitting class names) \u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\n\nexport const VARIANT_DELIMITER = \":\";\n\n// \u2500\u2500\u2500 Opacity Modifier \u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\n\nexport const OPACITY_SEPARATOR = \"/\";\n\n// \u2500\u2500\u2500 Common CSS Values \u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\n\nexport const CSS_INHERIT = \"inherit\";\nexport const CSS_INITIAL = \"initial\";\nexport const CSS_UNSET = \"unset\";\nexport const CSS_AUTO = \"auto\";\nexport const CSS_NONE = \"none\";\nexport const CSS_TRANSPARENT = \"transparent\";\nexport const CSS_CURRENT_COLOR = \"currentColor\";\n", "import {\n TIME_VALUE_WITH_UNIT_REGEX,\n TIME_VALUE_NUMERIC_REGEX,\n CSS_ESCAPE_BACKSLASH_REGEX,\n CSS_ESCAPE_SPECIAL_CHARS_REGEX,\n CSS_ESCAPE_LEADING_DIGIT_REGEX,\n} from \"./constants.js\";\n\n// \u2500\u2500\u2500 Arbitrary value \u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\n\nexport function resolveArbitraryValue(valueKey) {\n if (valueKey.startsWith(\"[\") && valueKey.endsWith(\"]\")) {\n return valueKey.slice(1, -1).replace(/_/g, \" \");\n }\n return undefined;\n}\n\n// \u2500\u2500\u2500 Theme scale lookup \u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\n\nexport function resolveThemeValue(scale, valueKey) {\n if (typeof scale !== \"object\" || scale === null) return undefined;\n if (Object.prototype.hasOwnProperty.call(scale, valueKey)) {\n return scale[valueKey];\n }\n const arbitrary = resolveArbitraryValue(valueKey);\n if (arbitrary !== undefined) return arbitrary;\n return undefined;\n}\n\n// \u2500\u2500\u2500 Time value (transition-duration / delay) \u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\n\nexport function resolveTimeValue(valueKey) {\n const arbitrary = resolveArbitraryValue(valueKey);\n if (arbitrary !== undefined) return arbitrary;\n if (TIME_VALUE_WITH_UNIT_REGEX.test(valueKey)) return valueKey;\n if (TIME_VALUE_NUMERIC_REGEX.test(valueKey)) return `${valueKey}ms`;\n return undefined;\n}\n\n// \u2500\u2500\u2500 Color lookup \u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\n\nexport function resolveColorValue(colors, colorKey) {\n if (!colors || typeof colors !== \"object\") return undefined;\n\n const arbitrary = resolveArbitraryValue(colorKey);\n if (arbitrary !== undefined) return arbitrary;\n\n if (Object.prototype.hasOwnProperty.call(colors, colorKey)) {\n const direct = colors[colorKey];\n if (typeof direct === \"string\") return direct;\n if (direct && typeof direct === \"object\" && typeof direct.DEFAULT === \"string\") {\n return direct.DEFAULT;\n }\n }\n\n // nested lookup: \"blue-500\" \u2192 colors.blue[\"500\"]\n const segments = colorKey.split(\"-\");\n let current = colors;\n for (let i = 0; i < segments.length; i += 1) {\n const segment = segments[i];\n if (!current || typeof current !== \"object\") return undefined;\n if (!Object.prototype.hasOwnProperty.call(current, segment)) return undefined;\n current = current[segment];\n }\n\n if (typeof current === \"string\") return current;\n if (current && typeof current === \"object\" && typeof current.DEFAULT === \"string\") {\n return current.DEFAULT;\n }\n return undefined;\n}\n\n// \u2500\u2500\u2500 Color with opacity modifier: \"blue-500/50\" \u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\n\nexport function resolveColorWithOpacity(colors, rawKey) {\n const slashIdx = rawKey.lastIndexOf(\"/\");\n if (slashIdx === -1) return resolveColorValue(colors, rawKey);\n\n const colorKey = rawKey.slice(0, slashIdx);\n const opacityStr = rawKey.slice(slashIdx + 1);\n const color = resolveColorValue(colors, colorKey);\n if (color === undefined) return undefined;\n\n // Arbitrary opacity e.g. /[0.35]\n const arbOpacity = resolveArbitraryValue(opacityStr);\n if (arbOpacity !== undefined) {\n const opacityVal = parseFloat(arbOpacity);\n if (isNaN(opacityVal)) return undefined;\n // If arbitrary opacity is already 0-1, use as-is; if >1, treat as percentage\n const finalOpacity = opacityVal <= 1 ? opacityVal * 100 : opacityVal;\n return `color-mix(in oklch, ${color} ${finalOpacity}%, transparent)`;\n }\n\n // Numeric opacity (0-100 scale)\n const opacityNum = parseFloat(opacityStr);\n if (isNaN(opacityNum)) return undefined;\n return `color-mix(in oklch, ${color} ${opacityNum}%, transparent)`;\n}\n\n// \u2500\u2500\u2500 CSS identifier escaping \u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\n\nexport function escapeCssIdentifier(value) {\n if (typeof CSS !== \"undefined\" && typeof CSS.escape === \"function\") {\n return CSS.escape(value);\n }\n return String(value)\n .replace(CSS_ESCAPE_BACKSLASH_REGEX, \"\\\\\\\\\")\n .replace(CSS_ESCAPE_SPECIAL_CHARS_REGEX, \"\\\\$1\")\n .replace(CSS_ESCAPE_LEADING_DIGIT_REGEX, \"\\\\3$1 \");\n}\n\n// \u2500\u2500\u2500 !important appender \u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\n// Optimized: uses single regex replace instead of multiple array operations\n\nexport function appendImportant(declaration, isImportant) {\n if (!isImportant) return declaration;\n // Match CSS declarations and append !important if not already present\n // Regex captures declaration content before semicolon\n return declaration.replace(/([^;{}]+);/g, (match, decl) => {\n const trimmed = decl.trim();\n if (!trimmed || trimmed.includes(\"!important\")) return match;\n return `${trimmed} !important;`;\n });\n}\n\n// \u2500\u2500\u2500 Variant delimiter splitter \u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\n// Splits \"md:hover:bg-blue-500\" into [\"md\", \"hover\", \"bg-blue-500\"]\n// but respects brackets so \"bg-[url(a:b)]\" stays as one token.\n// Optimized: uses index slicing instead of character concatenation for better performance\n\nexport function splitByVariantDelimiter(token) {\n const parts = [];\n let start = 0;\n let bracketDepth = 0;\n\n for (let i = 0; i < token.length; i += 1) {\n const char = token[i];\n if (char === \"[\") {\n bracketDepth += 1;\n } else if (char === \"]\") {\n bracketDepth = Math.max(0, bracketDepth - 1);\n } else if (char === \":\" && bracketDepth === 0) {\n parts.push(token.slice(start, i));\n start = i + 1;\n }\n }\n parts.push(token.slice(start));\n return parts;\n}\n", "// \u2500\u2500\u2500 Factory Helpers for Compressed Maps \u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\n// Generate maps with repetitive patterns to reduce bundle size after minification\n\n/**\n * Create a map from array of values with simple property pattern\n * @param {string} prop - CSS property name\n * @param {string[]} values - Array of CSS values\n * @param {Object} keyMap - Optional key remapping { cssValue: className }\n */\nfunction createSimpleMap(prop, values, keyMap = {}) {\n const map = {};\n values.forEach((value) => {\n const key = keyMap[value] || value;\n map[key] = `${prop}: ${value};`;\n });\n return map;\n}\n\n// \u2500\u2500\u2500 Optimized Display Map \u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\n\nexport const DISPLAY_MAP = {\n ...createSimpleMap(\"display\", [\n \"block\", \"inline\", \"inline-block\", \"flex\", \"inline-flex\", \n \"grid\", \"inline-grid\", \"contents\", \"flow-root\", \"list-item\",\n \"table\", \"inline-table\", \"table-caption\", \"table-cell\", \n \"table-column\", \"table-column-group\", \"table-footer-group\",\n \"table-header-group\", \"table-row-group\", \"table-row\"\n ]),\n hidden: \"display: none;\", // Special case\n};\n\n// \u2500\u2500\u2500 Optimized Position & Overflow Maps \u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\n\nexport const POSITION_MAP = createSimpleMap(\"position\", [\n \"static\", \"fixed\", \"absolute\", \"relative\", \"sticky\"\n]);\n\nexport const VISIBILITY_MAP = {\n ...createSimpleMap(\"visibility\", [\"visible\", \"collapse\"]),\n invisible: \"visibility: hidden;\", // Key differs from value\n};\n\nconst OVERFLOW_VALUES = [\"auto\", \"hidden\", \"clip\", \"visible\", \"scroll\"];\nexport const OVERFLOW_MAP = createSimpleMap(\"overflow\", OVERFLOW_VALUES);\nexport const OVERFLOW_X_MAP = createSimpleMap(\"overflow-x\", OVERFLOW_VALUES);\nexport const OVERFLOW_Y_MAP = createSimpleMap(\"overflow-y\", OVERFLOW_VALUES);\n\nconst OVERSCROLL_VALUES = [\"auto\", \"contain\", \"none\"];\nexport const OVERSCROLL_MAP = createSimpleMap(\"overscroll-behavior\", OVERSCROLL_VALUES);\nexport const OVERSCROLL_X_MAP = createSimpleMap(\"overscroll-behavior-x\", OVERSCROLL_VALUES);\nexport const OVERSCROLL_Y_MAP = createSimpleMap(\"overscroll-behavior-y\", OVERSCROLL_VALUES);\n\n// \u2500\u2500\u2500 Optimized Float & Clear Maps \u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\n\nexport const FLOAT_MAP = {\n ...createSimpleMap(\"float\", [\"left\", \"right\", \"none\"]),\n start: \"float: inline-start;\",\n end: \"float: inline-end;\",\n};\n\nexport const CLEAR_MAP = {\n ...createSimpleMap(\"clear\", [\"left\", \"right\", \"both\", \"none\"]),\n start: \"clear: inline-start;\",\n end: \"clear: inline-end;\",\n};\n\n// \u2500\u2500\u2500 Optimized Object & Transform Maps \u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\n\nexport const ISOLATION_MAP = {\n isolate: \"isolation: isolate;\",\n \"isolation-auto\": \"isolation: auto;\",\n};\n\nexport const OBJECT_FIT_MAP = createSimpleMap(\"object-fit\", [\n \"contain\", \"cover\", \"fill\", \"none\", \"scale-down\"\n]);\n\nexport const TRANSFORM_STYLE_MAP = {\n \"transform-style-flat\": \"transform-style: flat;\",\n \"transform-style-3d\": \"transform-style: preserve-3d;\",\n \"transform-3d\": \"transform-style: preserve-3d;\",\n};\n\nexport const BACKFACE_MAP = {\n \"backface-visible\": \"backface-visibility: visible;\",\n \"backface-hidden\": \"backface-visibility: hidden;\",\n};\n\nexport const FIELD_SIZING_MAP = {\n \"field-sizing-fixed\": \"field-sizing: fixed;\",\n \"field-sizing-content\": \"field-sizing: content;\",\n};\n\nexport const BOX_SIZING_MAP = {\n border: \"box-sizing: border-box;\",\n content: \"box-sizing: content-box;\",\n};\n\n// \u2500\u2500\u2500 Optimized Break Maps \u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\n\nconst BREAK_AFTER_BEFORE_VALUES = [\n \"auto\", \"avoid\", \"avoid-page\", \"avoid-column\", \n \"page\", \"left\", \"right\", \"recto\", \"verso\"\n];\nexport const BREAK_AFTER_MAP = {\n ...createSimpleMap(\"break-after\", BREAK_AFTER_BEFORE_VALUES),\n all: \"break-after: all;\",\n};\n\nexport const BREAK_BEFORE_MAP = createSimpleMap(\"break-before\", BREAK_AFTER_BEFORE_VALUES);\n\nexport const BREAK_INSIDE_MAP = createSimpleMap(\"break-inside\", [\n \"auto\", \"avoid\", \"avoid-page\", \"avoid-column\"\n]);\n\n// \u2500\u2500\u2500 Optimized Misc Maps \u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\n\nexport const BOX_DECORATION_BREAK_MAP = createSimpleMap(\"box-decoration-break\", [\n \"slice\", \"clone\"\n]);\n\nexport const HYPHENS_MAP = createSimpleMap(\"hyphens\", [\"none\", \"manual\", \"auto\"]);\n\nexport const COLOR_SCHEME_MAP = createSimpleMap(\"color-scheme\", [\n \"light\", \"dark\", \"normal\"\n]);\n\nexport const SCROLLBAR_COLOR_MAP = createSimpleMap(\"scrollbar-color\", [\n \"auto\", \"transparent\", \"current\"\n]);\n\nexport const SCROLLBAR_WIDTH_MAP = createSimpleMap(\"scrollbar-width\", [\n \"auto\", \"thin\", \"none\"\n]);\n\nexport const SCROLLBAR_GUTTER_MAP = {\n auto: \"scrollbar-gutter: auto;\",\n stable: \"scrollbar-gutter: stable;\",\n \"stable-both-edges\": \"scrollbar-gutter: stable both-edges;\",\n \"both-edges\": \"scrollbar-gutter: both-edges;\",\n};\n\nexport const TABLE_LAYOUT_MAP = createSimpleMap(\"table-layout\", [\"auto\", \"fixed\"]);\n\nexport const CAPTION_SIDE_MAP = createSimpleMap(\"caption-side\", [\"top\", \"bottom\"]);\n\nexport const BORDER_COLLAPSE_MAP = createSimpleMap(\"border-collapse\", [\n \"collapse\", \"separate\"\n]);\n\nexport const SCROLL_BEHAVIOR_MAP = createSimpleMap(\"scroll-behavior\", [\n \"auto\", \"smooth\"\n]);\n\n// Shared side/axis helpers used by spacing, inset, border, etc.\nexport const SIDE_PROPS = {\n \"\": [\"\"],\n t: [\"-top\"],\n r: [\"-right\"],\n b: [\"-bottom\"],\n l: [\"-left\"],\n x: [\"-left\", \"-right\"],\n y: [\"-top\", \"-bottom\"],\n};\n\nexport const INSET_AXIS_PROPS = {\n x: [\"left\", \"right\"],\n y: [\"top\", \"bottom\"],\n};\n\nexport const ROUNDED_PROPS = {\n \"\": [\"border-radius\"],\n t: [\"border-top-left-radius\", \"border-top-right-radius\"],\n r: [\"border-top-right-radius\", \"border-bottom-right-radius\"],\n b: [\"border-bottom-right-radius\", \"border-bottom-left-radius\"],\n l: [\"border-top-left-radius\", \"border-bottom-left-radius\"],\n tl: [\"border-top-left-radius\"],\n tr: [\"border-top-right-radius\"],\n br: [\"border-bottom-right-radius\"],\n bl: [\"border-bottom-left-radius\"],\n ss: [\"border-start-start-radius\"],\n se: [\"border-start-end-radius\"],\n es: [\"border-end-start-radius\"],\n ee: [\"border-end-end-radius\"],\n};\n", "// \u2500\u2500\u2500 Factory Helper for Compressed Maps \u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\n\nfunction createSimpleMap(prop, values) {\n const map = {};\n values.forEach((value) => {\n map[value] = `${prop}: ${value};`;\n });\n return map;\n}\n\n// \u2500\u2500\u2500 Optimized Cursor Map \u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\n\nexport const CURSOR_MAP = createSimpleMap(\"cursor\", [\n \"auto\", \"default\", \"pointer\", \"wait\", \"text\", \"move\", \"help\",\n \"not-allowed\", \"none\", \"context-menu\", \"progress\", \"cell\",\n \"crosshair\", \"vertical-text\", \"alias\", \"copy\", \"no-drop\",\n \"grab\", \"grabbing\", \"all-scroll\", \"zoom-in\", \"zoom-out\"\n]);\n\n// \u2500\u2500\u2500 Optimized Interaction Maps \u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\n\nexport const POINTER_EVENTS_MAP = createSimpleMap(\"pointer-events\", [\"none\", \"auto\"]);\n\nexport const RESIZE_MAP = {\n none: \"resize: none;\",\n y: \"resize: vertical;\",\n x: \"resize: horizontal;\",\n resize: \"resize: both;\",\n};\n\nexport const USER_SELECT_MAP = createSimpleMap(\"user-select\", [\n \"none\", \"text\", \"all\", \"auto\"\n]);\n\nexport const APPEARANCE_MAP = createSimpleMap(\"appearance\", [\"none\", \"auto\"]);\n\nexport const TOUCH_ACTION_MAP = createSimpleMap(\"touch-action\", [\n \"auto\", \"none\", \"pan-x\", \"pan-left\", \"pan-right\", \"pan-y\",\n \"pan-up\", \"pan-down\", \"pinch-zoom\", \"manipulation\"\n]);\n\n// \u2500\u2500\u2500 Optimized Style Maps \u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\n\nexport const OUTLINE_STYLE_MAP = {\n none: \"outline: 2px solid transparent; outline-offset: 2px;\",\n ...createSimpleMap(\"outline-style\", [\"solid\", \"dashed\", \"dotted\", \"double\"]),\n};\n\nexport const BORDER_STYLE_MAP = createSimpleMap(\"border-style\", [\n \"solid\", \"dashed\", \"dotted\", \"double\", \"hidden\", \"none\"\n]);\n\n// \u2500\u2500\u2500 Transition Maps \u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\n\nexport const TRANSITION_PROPERTY_MAP = {\n none: \"none\",\n all: \"all\",\n DEFAULT: \"color, background-color, border-color, text-decoration-color, fill, stroke, opacity, box-shadow, transform, filter, backdrop-filter\",\n colors: \"color, background-color, border-color, text-decoration-color, fill, stroke\",\n opacity: \"opacity\",\n shadow: \"box-shadow\",\n transform: \"transform\",\n};\n\nexport const TRANSITION_TIMING_MAP = {\n linear: \"linear\",\n in: \"cubic-bezier(0.4, 0, 1, 1)\",\n out: \"cubic-bezier(0, 0, 0.2, 1)\",\n \"in-out\": \"cubic-bezier(0.4, 0, 0.2, 1)\",\n};\n", "import {\n DISPLAY_MAP,\n VISIBILITY_MAP,\n ISOLATION_MAP,\n OVERFLOW_MAP,\n OVERFLOW_X_MAP,\n OVERFLOW_Y_MAP,\n OVERSCROLL_MAP,\n OVERSCROLL_X_MAP,\n OVERSCROLL_Y_MAP,\n FLOAT_MAP,\n CLEAR_MAP,\n OBJECT_FIT_MAP,\n TRANSFORM_STYLE_MAP,\n BACKFACE_MAP,\n FIELD_SIZING_MAP,\n BOX_SIZING_MAP,\n TABLE_LAYOUT_MAP,\n CAPTION_SIDE_MAP,\n BORDER_COLLAPSE_MAP,\n BREAK_AFTER_MAP,\n BREAK_BEFORE_MAP,\n BREAK_INSIDE_MAP,\n BOX_DECORATION_BREAK_MAP,\n HYPHENS_MAP,\n COLOR_SCHEME_MAP,\n SCROLLBAR_COLOR_MAP,\n SCROLLBAR_WIDTH_MAP,\n SCROLLBAR_GUTTER_MAP,\n SCROLL_BEHAVIOR_MAP,\n SIDE_PROPS,\n INSET_AXIS_PROPS,\n POSITION_MAP,\n} from \"../maps/layout.maps.js\";\nimport { TOUCH_ACTION_MAP, APPEARANCE_MAP } from \"../maps/interactivity.maps.js\";\nimport { resolveThemeValue, resolveArbitraryValue } from \"../resolvers.js\";\n\nexport function buildLayoutDeclaration(baseToken, theme) {\n // overflow\n if (baseToken.startsWith(\"overflow-x-\")) return OVERFLOW_X_MAP[baseToken.slice(11)] ?? undefined;\n if (baseToken.startsWith(\"overflow-y-\")) return OVERFLOW_Y_MAP[baseToken.slice(11)] ?? undefined;\n if (baseToken.startsWith(\"overflow-\")) return OVERFLOW_MAP[baseToken.slice(9)] ?? undefined;\n\n // overscroll\n if (baseToken.startsWith(\"overscroll-x-\")) return OVERSCROLL_X_MAP[baseToken.slice(13)] ?? undefined;\n if (baseToken.startsWith(\"overscroll-y-\")) return OVERSCROLL_Y_MAP[baseToken.slice(13)] ?? undefined;\n if (baseToken.startsWith(\"overscroll-\")) return OVERSCROLL_MAP[baseToken.slice(11)] ?? undefined;\n\n // float / clear\n if (baseToken.startsWith(\"float-\")) return FLOAT_MAP[baseToken.slice(6)] ?? undefined;\n if (baseToken.startsWith(\"clear-\")) return CLEAR_MAP[baseToken.slice(6)] ?? undefined;\n\n // object-fit / object-position\n if (baseToken.startsWith(\"object-fit-\")) return OBJECT_FIT_MAP[baseToken.slice(11)] ?? undefined;\n if (baseToken.startsWith(\"object-\")) {\n const val = baseToken.slice(7);\n if (OBJECT_FIT_MAP[val]) return OBJECT_FIT_MAP[val];\n const pos = resolveThemeValue(theme.objectPosition || {}, val);\n if (pos !== undefined) return `object-position: ${pos};`;\n }\n\n // z-index (support negative)\n if (baseToken.startsWith(\"z-\") || baseToken.startsWith(\"-z-\")) {\n const negative = baseToken.startsWith(\"-\");\n const key = negative ? baseToken.slice(3) : baseToken.slice(2);\n const val = resolveThemeValue(theme.zIndex || {}, key);\n if (val !== undefined) return `z-index: ${negative ? `-${val}` : val};`;\n const arb = resolveArbitraryValue(negative ? baseToken.slice(3) : baseToken.slice(2));\n if (arb !== undefined) return `z-index: ${negative ? `-${arb}` : arb};`;\n }\n\n // order\n if (baseToken.startsWith(\"order-\")) {\n const val = resolveThemeValue(theme.order || {}, baseToken.slice(6));\n if (val !== undefined) return `order: ${val};`;\n }\n\n // break / page break\n if (baseToken.startsWith(\"break-after-\")) return BREAK_AFTER_MAP[baseToken.slice(12)] ?? undefined;\n if (baseToken.startsWith(\"break-before-\")) return BREAK_BEFORE_MAP[baseToken.slice(13)] ?? undefined;\n if (baseToken.startsWith(\"break-inside-\")) return BREAK_INSIDE_MAP[baseToken.slice(13)] ?? undefined;\n if (baseToken.startsWith(\"box-decoration-break-\")) return BOX_DECORATION_BREAK_MAP[baseToken.slice(21)] ?? undefined;\n\n // hyphens\n if (baseToken.startsWith(\"hyphens-\")) return HYPHENS_MAP[baseToken.slice(8)] ?? undefined;\n\n // color-scheme\n if (baseToken.startsWith(\"color-scheme-\")) return COLOR_SCHEME_MAP[baseToken.slice(13)] ?? undefined;\n\n // scrollbar utilities\n if (baseToken.startsWith(\"scrollbar-color-\")) return SCROLLBAR_COLOR_MAP[baseToken.slice(16)] ?? undefined;\n if (baseToken.startsWith(\"scrollbar-width-\")) return SCROLLBAR_WIDTH_MAP[baseToken.slice(16)] ?? undefined;\n if (baseToken.startsWith(\"scrollbar-gutter-\")) return SCROLLBAR_GUTTER_MAP[baseToken.slice(17)] ?? undefined;\n\n // scroll-behavior\n if (baseToken.startsWith(\"scroll-behavior-\")) return SCROLL_BEHAVIOR_MAP[baseToken.slice(16)] ?? undefined;\n\n // aspect-ratio\n if (baseToken.startsWith(\"aspect-\")) {\n const val = resolveThemeValue(theme.aspectRatio || {}, baseToken.slice(7));\n if (val !== undefined) return `aspect-ratio: ${val};`;\n const arb = resolveArbitraryValue(baseToken.slice(7));\n if (arb !== undefined) return `aspect-ratio: ${arb};`;\n }\n\n // columns\n if (baseToken.startsWith(\"columns-\")) {\n const val = resolveThemeValue(theme.columns || {}, baseToken.slice(8));\n if (val !== undefined) return `columns: ${val};`;\n }\n\n // box-sizing\n if (baseToken.startsWith(\"box-\")) return BOX_SIZING_MAP[baseToken.slice(4)] ?? undefined;\n\n // table layout / caption\n if (baseToken.startsWith(\"table-\")) {\n const key = baseToken.slice(6);\n if (TABLE_LAYOUT_MAP[key]) return TABLE_LAYOUT_MAP[key];\n }\n if (baseToken.startsWith(\"caption-\")) return CAPTION_SIDE_MAP[baseToken.slice(8)] ?? undefined;\n if (baseToken.startsWith(\"border-collapse\") || baseToken.startsWith(\"border-separate\")) {\n return BORDER_COLLAPSE_MAP[baseToken.slice(7)] ?? undefined;\n }\n\n // scroll-behavior / scroll-margin / scroll-padding\n if (baseToken.startsWith(\"scroll-\")) {\n const key = baseToken.slice(7);\n if (SCROLL_BEHAVIOR_MAP[key]) return SCROLL_BEHAVIOR_MAP[key];\n\n const smMatch = baseToken.match(/^scroll-m([trblxy]?)-(.+)$/);\n if (smMatch) {\n const [, side, valueKey] = smMatch;\n const val = resolveThemeValue(theme.scrollMargin || theme.spacing || {}, valueKey);\n if (val === undefined) return undefined;\n const suffixes = SIDE_PROPS[side] ?? undefined;\n if (!suffixes) return undefined;\n return suffixes.map((s) => `scroll-margin${s}: ${val};`).join(\" \");\n }\n\n const spMatch = baseToken.match(/^scroll-p([trblxy]?)-(.+)$/);\n if (spMatch) {\n const [, side, valueKey] = spMatch;\n const val = resolveThemeValue(theme.scrollPadding || theme.spacing || {}, valueKey);\n if (val === undefined) return undefined;\n const suffixes = SIDE_PROPS[side] ?? undefined;\n if (!suffixes) return undefined;\n return suffixes.map((s) => `scroll-padding${s}: ${val};`).join(\" \");\n }\n }\n\n // will-change\n if (baseToken.startsWith(\"will-change-\")) {\n const val = resolveThemeValue(theme.willChange || {}, baseToken.slice(12));\n if (val !== undefined) return `will-change: ${val};`;\n }\n\n // content (pseudo-element)\n if (baseToken.startsWith(\"content-\")) {\n const valueKey = baseToken.slice(8);\n if (valueKey.startsWith(\"[\") && valueKey.endsWith(\"]\")) {\n const arb = resolveArbitraryValue(valueKey);\n if (arb !== undefined) return `content: ${arb};`;\n } else {\n const val = resolveThemeValue(theme.content || {}, valueKey);\n if (val !== undefined) return `content: \"${val}\";`;\n }\n }\n\n // size-* (width + height shorthand)\n if (baseToken.startsWith(\"size-\")) {\n const val = resolveThemeValue(theme.size || theme.spacing || {}, baseToken.slice(5));\n if (val !== undefined) return `width: ${val}; height: ${val};`;\n }\n\n // static maps\n if (DISPLAY_MAP[baseToken]) return DISPLAY_MAP[baseToken];\n if (VISIBILITY_MAP[baseToken]) return VISIBILITY_MAP[baseToken];\n if (ISOLATION_MAP[baseToken]) return ISOLATION_MAP[baseToken];\n if (TRANSFORM_STYLE_MAP[baseToken]) return TRANSFORM_STYLE_MAP[baseToken];\n if (BACKFACE_MAP[baseToken]) return BACKFACE_MAP[baseToken];\n if (FIELD_SIZING_MAP[baseToken]) return FIELD_SIZING_MAP[baseToken];\n\n if (baseToken.startsWith(\"touch-\")) {\n const key = baseToken.slice(6);\n if (TOUCH_ACTION_MAP[key]) return TOUCH_ACTION_MAP[key];\n }\n if (TOUCH_ACTION_MAP[baseToken]) return TOUCH_ACTION_MAP[baseToken];\n if (APPEARANCE_MAP[baseToken]) return APPEARANCE_MAP[baseToken];\n\n return undefined;\n}\n\nexport function buildPositionInsetDeclaration(baseToken, theme) {\n if (POSITION_MAP[baseToken]) return POSITION_MAP[baseToken];\n\n const negative = baseToken.startsWith(\"-\");\n const normalized = negative ? baseToken.slice(1) : baseToken;\n const insetScale = theme.inset || theme.spacing || {};\n\n const directionalMatch = normalized.match(/^(top|right|bottom|left)-(.+)$/);\n if (directionalMatch) {\n const [, side, valueKey] = directionalMatch;\n let value = resolveThemeValue(insetScale, valueKey);\n if (value === undefined) return undefined;\n if (negative && value !== \"auto\") value = `-${value}`;\n return `${side}: ${value};`;\n }\n\n const axisMatch = normalized.match(/^inset-([xy])-(.+)$/);\n if (axisMatch) {\n const [, axis, valueKey] = axisMatch;\n let value = resolveThemeValue(insetScale, valueKey);\n if (value === undefined) return undefined;\n if (negative && value !== \"auto\") value = `-${value}`;\n const props = INSET_AXIS_PROPS[axis];\n if (!props) return undefined;\n return props.map((prop) => `${prop}: ${value};`).join(\" \");\n }\n\n const insetMatch = normalized.match(/^inset-(.+)$/);\n if (insetMatch) {\n const valueKey = insetMatch[1];\n let value = resolveThemeValue(insetScale, valueKey);\n if (value === undefined) return undefined;\n if (negative && value !== \"auto\") value = `-${value}`;\n return `top: ${value}; right: ${value}; bottom: ${value}; left: ${value};`;\n }\n\n return undefined;\n}\n", "import { SIDE_PROPS } from \"../maps/layout.maps.js\";\nimport { resolveThemeValue, resolveArbitraryValue } from \"../resolvers.js\";\n\nexport function buildSpacingDeclaration(baseToken, theme) {\n const negative = baseToken.startsWith(\"-\");\n const normalized = negative ? baseToken.slice(1) : baseToken;\n const match = normalized.match(/^(m|p)([trblxy]?)-(.+)$/);\n if (!match) return undefined;\n\n const [, kind, side, valueKey] = match;\n const baseProp = kind === \"m\" ? \"margin\" : \"padding\";\n\n let value = resolveThemeValue(theme.spacing || {}, valueKey);\n if (value === undefined && kind === \"m\" && valueKey === \"auto\") value = \"auto\";\n if (value === undefined) return undefined;\n if (negative && value !== \"auto\") value = `-${value}`;\n\n const suffixes = SIDE_PROPS[side];\n if (!suffixes) return undefined;\n return suffixes.map((s) => `${baseProp}${s}: ${value};`).join(\" \");\n}\n\nexport function buildGapDeclaration(baseToken, theme) {\n const match = baseToken.match(/^gap(?:-([xy]))?-(.+)$/);\n if (!match) return undefined;\n\n const [, axis = \"\", valueKey] = match;\n const gapScale = theme.gap || theme.spacing || {};\n const value = resolveThemeValue(gapScale, valueKey);\n if (value === undefined) return undefined;\n\n if (axis === \"x\") return `column-gap: ${value};`;\n if (axis === \"y\") return `row-gap: ${value};`;\n return `gap: ${value};`;\n}\n\nexport function buildDimensionDeclaration(baseToken, theme) {\n const patterns = [\n { prefix: \"min-inline-size-\", prop: \"min-inline-size\", scale: theme.minWidth || theme.width || theme.spacing || {} },\n { prefix: \"max-inline-size-\", prop: \"max-inline-size\", scale: theme.maxWidth || theme.width || theme.spacing || {} },\n { prefix: \"inline-size-\", prop: \"inline-size\", scale: theme.width || theme.spacing || {} },\n { prefix: \"min-block-size-\", prop: \"min-block-size\", scale: theme.minHeight || theme.height || theme.spacing || {} },\n { prefix: \"max-block-size-\", prop: \"max-block-size\", scale: theme.maxHeight || theme.height || theme.spacing || {} },\n { prefix: \"block-size-\", prop: \"block-size\", scale: theme.height || theme.spacing || {} },\n { prefix: \"min-w-\", prop: \"min-width\", scale: theme.minWidth || theme.width || {} },\n { prefix: \"max-w-\", prop: \"max-width\", scale: theme.maxWidth || theme.width || {} },\n { prefix: \"min-h-\", prop: \"min-height\", scale: theme.minHeight || theme.height || {} },\n { prefix: \"max-h-\", prop: \"max-height\", scale: theme.maxHeight || theme.height || {} },\n { prefix: \"w-\", prop: \"width\", scale: theme.width || {} },\n { prefix: \"h-\", prop: \"height\", scale: theme.height || {} },\n ];\n\n for (const pattern of patterns) {\n if (!baseToken.startsWith(pattern.prefix)) continue;\n const valueKey = baseToken.slice(pattern.prefix.length);\n let value = resolveThemeValue(pattern.scale, valueKey);\n if (value === undefined) value = resolveThemeValue(theme.spacing || {}, valueKey);\n if (value === undefined) {\n const arb = resolveArbitraryValue(valueKey);\n if (arb !== undefined) return `${pattern.prop}: ${arb};`;\n return undefined;\n }\n return `${pattern.prop}: ${value};`;\n }\n\n return undefined;\n}\n", "export const FLEX_DIRECTION_MAP = {\n row: \"flex-direction: row;\",\n \"row-reverse\": \"flex-direction: row-reverse;\",\n col: \"flex-direction: column;\",\n \"col-reverse\": \"flex-direction: column-reverse;\",\n};\n\nexport const FLEX_WRAP_MAP = {\n nowrap: \"flex-wrap: nowrap;\",\n wrap: \"flex-wrap: wrap;\",\n \"wrap-reverse\": \"flex-wrap: wrap-reverse;\",\n};\n\nexport const ALIGN_CONTENT_MAP = {\n normal: \"align-content: normal;\",\n center: \"align-content: center;\",\n start: \"align-content: flex-start;\",\n end: \"align-content: flex-end;\",\n between: \"align-content: space-between;\",\n around: \"align-content: space-around;\",\n evenly: \"align-content: space-evenly;\",\n baseline: \"align-content: baseline;\",\n stretch: \"align-content: stretch;\",\n};\n\nexport const ALIGN_SELF_MAP = {\n auto: \"align-self: auto;\",\n start: \"align-self: flex-start;\",\n end: \"align-self: flex-end;\",\n center: \"align-self: center;\",\n stretch: \"align-self: stretch;\",\n baseline: \"align-self: baseline;\",\n};\n\nexport const ALIGN_ITEMS_MAP = {\n start: \"align-items: flex-start;\",\n end: \"align-items: flex-end;\",\n center: \"align-items: center;\",\n baseline: \"align-items: baseline;\",\n stretch: \"align-items: stretch;\",\n};\n\nexport const JUSTIFY_CONTENT_MAP = {\n normal: \"justify-content: normal;\",\n start: \"justify-content: flex-start;\",\n end: \"justify-content: flex-end;\",\n center: \"justify-content: center;\",\n between: \"justify-content: space-between;\",\n around: \"justify-content: space-around;\",\n evenly: \"justify-content: space-evenly;\",\n stretch: \"justify-content: stretch;\",\n};\n\nexport const JUSTIFY_ITEMS_MAP = {\n normal: \"justify-items: normal;\",\n start: \"justify-items: start;\",\n end: \"justify-items: end;\",\n center: \"justify-items: center;\",\n stretch: \"justify-items: stretch;\",\n};\n\nexport const JUSTIFY_SELF_MAP = {\n auto: \"justify-self: auto;\",\n start: \"justify-self: start;\",\n end: \"justify-self: end;\",\n center: \"justify-self: center;\",\n stretch: \"justify-self: stretch;\",\n};\n\nexport const PLACE_CONTENT_MAP = {\n center: \"place-content: center;\",\n start: \"place-content: start;\",\n end: \"place-content: end;\",\n between: \"place-content: space-between;\",\n around: \"place-content: space-around;\",\n evenly: \"place-content: space-evenly;\",\n baseline: \"place-content: baseline;\",\n stretch: \"place-content: stretch;\",\n};\n\nexport const PLACE_ITEMS_MAP = {\n start: \"place-items: start;\",\n end: \"place-items: end;\",\n center: \"place-items: center;\",\n baseline: \"place-items: baseline;\",\n stretch: \"place-items: stretch;\",\n};\n\nexport const PLACE_SELF_MAP = {\n auto: \"place-self: auto;\",\n start: \"place-self: start;\",\n end: \"place-self: end;\",\n center: \"place-self: center;\",\n stretch: \"place-self: stretch;\",\n};\n\nexport const GRID_AUTO_FLOW_MAP = {\n row: \"grid-auto-flow: row;\",\n col: \"grid-auto-flow: column;\",\n dense: \"grid-auto-flow: dense;\",\n \"row-dense\": \"grid-auto-flow: row dense;\",\n \"col-dense\": \"grid-auto-flow: column dense;\",\n};\n", "import {\n FLEX_DIRECTION_MAP,\n FLEX_WRAP_MAP,\n ALIGN_CONTENT_MAP,\n ALIGN_SELF_MAP,\n ALIGN_ITEMS_MAP,\n JUSTIFY_CONTENT_MAP,\n JUSTIFY_ITEMS_MAP,\n JUSTIFY_SELF_MAP,\n PLACE_CONTENT_MAP,\n PLACE_ITEMS_MAP,\n PLACE_SELF_MAP,\n GRID_AUTO_FLOW_MAP,\n} from \"../maps/flexgrid.maps.js\";\nimport { resolveThemeValue, resolveArbitraryValue } from \"../resolvers.js\";\n\nexport function buildFlexGridDeclaration(baseToken, theme) {\n // grow / shrink (v4 canonical)\n if (baseToken === \"grow\") return \"flex-grow: 1;\";\n if (baseToken === \"grow-0\") return \"flex-grow: 0;\";\n if (baseToken === \"shrink\") return \"flex-shrink: 1;\";\n if (baseToken === \"shrink-0\") return \"flex-shrink: 0;\";\n\n if (baseToken.startsWith(\"grow-\")) {\n const val = resolveThemeValue(theme.flexGrow || {}, baseToken.slice(5));\n if (val !== undefined) return `flex-grow: ${val};`;\n }\n if (baseToken.startsWith(\"shrink-\")) {\n const val = resolveThemeValue(theme.flexShrink || {}, baseToken.slice(7));\n if (val !== undefined) return `flex-shrink: ${val};`;\n }\n\n // flex-basis\n if (baseToken.startsWith(\"basis-\")) {\n const val = resolveThemeValue(theme.flexBasis || theme.spacing || {}, baseToken.slice(6));\n if (val !== undefined) return `flex-basis: ${val};`;\n }\n\n // flex shorthand\n if (baseToken === \"flex-1\") return \"flex: 1 1 0%;\";\n if (baseToken === \"flex-auto\") return \"flex: 1 1 auto;\";\n if (baseToken === \"flex-initial\") return \"flex: 0 1 auto;\";\n if (baseToken === \"flex-none\") return \"flex: none;\";\n if (baseToken.startsWith(\"flex-\")) {\n const value = baseToken.slice(5);\n if (FLEX_DIRECTION_MAP[value]) return FLEX_DIRECTION_MAP[value];\n if (FLEX_WRAP_MAP[value]) return FLEX_WRAP_MAP[value];\n const themeVal = resolveThemeValue(theme.flex || {}, value);\n if (themeVal !== undefined) return `flex: ${themeVal};`;\n }\n\n // align-content\n if (baseToken.startsWith(\"content-\")) {\n const key = baseToken.slice(8);\n if (ALIGN_CONTENT_MAP[key]) return ALIGN_CONTENT_MAP[key];\n }\n\n // align-self\n if (baseToken.startsWith(\"self-\")) return ALIGN_SELF_MAP[baseToken.slice(5)] ?? undefined;\n\n // justify-*\n if (baseToken.startsWith(\"justify-items-\")) return JUSTIFY_ITEMS_MAP[baseToken.slice(14)] ?? undefined;\n if (baseToken.startsWith(\"justify-self-\")) return JUSTIFY_SELF_MAP[baseToken.slice(13)] ?? undefined;\n if (baseToken.startsWith(\"justify-\")) return JUSTIFY_CONTENT_MAP[baseToken.slice(8)] ?? undefined;\n\n // align-items\n if (baseToken.startsWith(\"items-\")) return ALIGN_ITEMS_MAP[baseToken.slice(6)] ?? undefined;\n\n // place-*\n if (baseToken.startsWith(\"place-content-\")) return PLACE_CONTENT_MAP[baseToken.slice(14)] ?? undefined;\n if (baseToken.startsWith(\"place-items-\")) return PLACE_ITEMS_MAP[baseToken.slice(12)] ?? undefined;\n if (baseToken.startsWith(\"place-self-\")) return PLACE_SELF_MAP[baseToken.slice(11)] ?? undefined;\n\n // grid-auto-flow\n if (baseToken.startsWith(\"grid-flow-\")) return GRID_AUTO_FLOW_MAP[baseToken.slice(10)] ?? undefined;\n\n // grid-auto-columns / rows\n if (baseToken.startsWith(\"auto-cols-\")) {\n const val = resolveThemeValue(theme.gridAutoColumns || {}, baseToken.slice(10));\n if (val !== undefined) return `grid-auto-columns: ${val};`;\n }\n if (baseToken.startsWith(\"auto-rows-\")) {\n const val = resolveThemeValue(theme.gridAutoRows || {}, baseToken.slice(10));\n if (val !== undefined) return `grid-auto-rows: ${val};`;\n }\n\n // grid-template-columns\n if (baseToken.startsWith(\"grid-cols-\")) {\n const valueKey = baseToken.slice(10);\n const direct = resolveThemeValue(theme.gridTemplateColumns || {}, valueKey);\n if (direct !== undefined) return `grid-template-columns: ${direct};`;\n if (/^\\d+$/.test(valueKey)) return `grid-template-columns: repeat(${valueKey}, minmax(0, 1fr));`;\n const arb = resolveArbitraryValue(valueKey);\n if (arb !== undefined) return `grid-template-columns: ${arb};`;\n }\n\n // grid-template-rows\n if (baseToken.startsWith(\"grid-rows-\")) {\n const valueKey = baseToken.slice(10);\n const direct = resolveThemeValue(theme.gridTemplateRows || {}, valueKey);\n if (direct !== undefined) return `grid-template-rows: ${direct};`;\n if (/^\\d+$/.test(valueKey)) return `grid-template-rows: repeat(${valueKey}, minmax(0, 1fr));`;\n const arb = resolveArbitraryValue(valueKey);\n if (arb !== undefined) return `grid-template-rows: ${arb};`;\n }\n\n // col span / start / end\n if (baseToken.startsWith(\"col-\")) {\n const val = resolveThemeValue(theme.gridColumn || {}, baseToken.slice(4));\n if (val !== undefined) return `grid-column: ${val};`;\n const spanMatch = baseToken.match(/^col-span-(\\d+)$/);\n if (spanMatch) return `grid-column: span ${spanMatch[1]} / span ${spanMatch[1]};`;\n if (baseToken === \"col-auto\") return \"grid-column: auto;\";\n if (baseToken.startsWith(\"col-start-\")) {\n const sv = resolveThemeValue(theme.gridColumnStart || {}, baseToken.slice(10));\n if (sv !== undefined) return `grid-column-start: ${sv};`;\n }\n if (baseToken.startsWith(\"col-end-\")) {\n const ev = resolveThemeValue(theme.gridColumnEnd || {}, baseToken.slice(8));\n if (ev !== undefined) return `grid-column-end: ${ev};`;\n }\n }\n\n // row span / start / end\n if (baseToken.startsWith(\"row-\")) {\n const val = resolveThemeValue(theme.gridRow || {}, baseToken.slice(4));\n if (val !== undefined) return `grid-row: ${val};`;\n const spanMatch = baseToken.match(/^row-span-(\\d+)$/);\n if (spanMatch) return `grid-row: span ${spanMatch[1]} / span ${spanMatch[1]};`;\n if (baseToken === \"row-auto\") return \"grid-row: auto;\";\n if (baseToken.startsWith(\"row-start-\")) {\n const sv = resolveThemeValue(theme.gridRowStart || {}, baseToken.slice(10));\n if (sv !== undefined) return `grid-row-start: ${sv};`;\n }\n if (baseToken.startsWith(\"row-end-\")) {\n const ev = resolveThemeValue(theme.gridRowEnd || {}, baseToken.slice(8));\n if (ev !== undefined) return `grid-row-end: ${ev};`;\n }\n }\n\n return undefined;\n}\n", "export const TEXT_ALIGN_MAP = {\n left: \"text-align: left;\",\n center: \"text-align: center;\",\n right: \"text-align: right;\",\n justify: \"text-align: justify;\",\n start: \"text-align: start;\",\n end: \"text-align: end;\",\n};\n\nexport const TEXT_DECORATION_MAP = {\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};\n\nexport const TEXT_DECORATION_STYLE_MAP = {\n solid: \"text-decoration-style: solid;\",\n double: \"text-decoration-style: double;\",\n dotted: \"text-decoration-style: dotted;\",\n dashed: \"text-decoration-style: dashed;\",\n wavy: \"text-decoration-style: wavy;\",\n};\n\nexport const TEXT_TRANSFORM_MAP = {\n uppercase: \"text-transform: uppercase;\",\n lowercase: \"text-transform: lowercase;\",\n capitalize: \"text-transform: capitalize;\",\n \"normal-case\": \"text-transform: none;\",\n};\n\nexport const TEXT_OVERFLOW_MAP = {\n truncate: \"overflow: hidden; text-overflow: ellipsis; white-space: nowrap;\",\n \"overflow-ellipsis\": \"text-overflow: ellipsis;\",\n \"text-ellipsis\": \"text-overflow: ellipsis;\",\n \"text-clip\": \"text-overflow: clip;\",\n};\n\nexport const WHITESPACE_MAP = {\n normal: \"white-space: normal;\",\n nowrap: \"white-space: nowrap;\",\n pre: \"white-space: pre;\",\n \"pre-line\": \"white-space: pre-line;\",\n \"pre-wrap\": \"white-space: pre-wrap;\",\n \"break-spaces\": \"white-space: break-spaces;\",\n};\n\nexport const WORD_BREAK_MAP = {\n \"break-normal\": \"overflow-wrap: normal; word-break: normal;\",\n \"break-words\": \"overflow-wrap: break-word;\",\n \"break-all\": \"word-break: break-all;\",\n \"break-keep\": \"word-break: keep-all;\",\n};\n\nexport const FONT_STYLE_MAP = {\n italic: \"font-style: italic;\",\n \"not-italic\": \"font-style: normal;\",\n};\n\nexport const FONT_STRETCH_MAP = {\n \"ultra-condensed\": \"font-stretch: ultra-condensed;\",\n \"extra-condensed\": \"font-stretch: extra-condensed;\",\n condensed: \"font-stretch: condensed;\",\n \"semi-condensed\": \"font-stretch: semi-condensed;\",\n normal: \"font-stretch: normal;\",\n \"semi-expanded\": \"font-stretch: semi-expanded;\",\n expanded: \"font-stretch: expanded;\",\n \"extra-expanded\": \"font-stretch: extra-expanded;\",\n \"ultra-expanded\": \"font-stretch: ultra-expanded;\",\n};\n\nexport const FONT_VARIANT_NUMERIC_MAP = {\n ordinal: \"font-variant-numeric: ordinal;\",\n \"slashed-zero\": \"font-variant-numeric: slashed-zero;\",\n \"lining-nums\": \"font-variant-numeric: lining-nums;\",\n \"oldstyle-nums\": \"font-variant-numeric: oldstyle-nums;\",\n \"proportional-nums\": \"font-variant-numeric: proportional-nums;\",\n \"tabular-nums\": \"font-variant-numeric: tabular-nums;\",\n \"diagonal-fractions\": \"font-variant-numeric: diagonal-fractions;\",\n \"stacked-fractions\": \"font-variant-numeric: stacked-fractions;\",\n};\n\nexport const LIST_STYLE_IMAGE_MAP = {\n none: \"list-style-image: none;\",\n};\n\nexport const HYPHENS_MAP = {\n none: \"hyphens: none;\",\n manual: \"hyphens: manual;\",\n auto: \"hyphens: auto;\",\n};\n\nexport const FONT_SMOOTHING_MAP = {\n antialiased: \"-webkit-font-smoothing: antialiased; -moz-osx-font-smoothing: grayscale;\",\n \"subpixel-antialiased\": \"-webkit-font-smoothing: auto; -moz-osx-font-smoothing: auto;\",\n};\n\nexport const LIST_STYLE_POSITION_MAP = {\n inside: \"list-style-position: inside;\",\n outside: \"list-style-position: outside;\",\n};\n\nexport const VERTICAL_ALIGN_MAP = {\n baseline: \"vertical-align: baseline;\",\n top: \"vertical-align: top;\",\n middle: \"vertical-align: middle;\",\n bottom: \"vertical-align: bottom;\",\n \"text-top\": \"vertical-align: text-top;\",\n \"text-bottom\": \"vertical-align: text-bottom;\",\n sub: \"vertical-align: sub;\",\n super: \"vertical-align: super;\",\n};\n", "import {\n TEXT_ALIGN_MAP,\n TEXT_DECORATION_MAP,\n TEXT_DECORATION_STYLE_MAP,\n TEXT_TRANSFORM_MAP,\n TEXT_OVERFLOW_MAP,\n WHITESPACE_MAP,\n WORD_BREAK_MAP,\n FONT_STYLE_MAP,\n FONT_SMOOTHING_MAP,\n FONT_STRETCH_MAP,\n FONT_VARIANT_NUMERIC_MAP,\n LIST_STYLE_IMAGE_MAP,\n HYPHENS_MAP,\n LIST_STYLE_POSITION_MAP,\n VERTICAL_ALIGN_MAP,\n} from \"../maps/typography.maps.js\";\nimport { resolveThemeValue, resolveColorWithOpacity } from \"../resolvers.js\";\n\nexport function buildTypographyDeclaration(baseToken, theme) {\n // static keyword maps\n if (TEXT_DECORATION_MAP[baseToken]) return TEXT_DECORATION_MAP[baseToken];\n if (TEXT_TRANSFORM_MAP[baseToken]) return TEXT_TRANSFORM_MAP[baseToken];\n if (TEXT_OVERFLOW_MAP[baseToken]) return TEXT_OVERFLOW_MAP[baseToken];\n if (WORD_BREAK_MAP[baseToken]) return WORD_BREAK_MAP[baseToken];\n if (FONT_STYLE_MAP[baseToken]) return FONT_STYLE_MAP[baseToken];\n if (FONT_SMOOTHING_MAP[baseToken]) return FONT_SMOOTHING_MAP[baseToken];\n\n // text-*\n if (baseToken.startsWith(\"text-\")) {\n const valueKey = baseToken.slice(5);\n if (TEXT_ALIGN_MAP[valueKey]) return TEXT_ALIGN_MAP[valueKey];\n\n const fontSize = resolveThemeValue(theme.fontSize || {}, valueKey);\n if (fontSize !== undefined) {\n if (Array.isArray(fontSize)) return `font-size: ${fontSize[0]};`;\n return `font-size: ${fontSize};`;\n }\n\n const color = resolveColorWithOpacity(theme.colors || {}, valueKey);\n if (color !== undefined) return `color: ${color};`;\n }\n\n // font-*\n if (baseToken.startsWith(\"font-\")) {\n const valueKey = baseToken.slice(5);\n const fontWeight = resolveThemeValue(theme.fontWeight || {}, valueKey);\n if (fontWeight !== undefined) return `font-weight: ${fontWeight};`;\n const fontFamily = resolveThemeValue(theme.fontFamily || {}, valueKey);\n if (fontFamily !== undefined) {\n if (Array.isArray(fontFamily)) return `font-family: ${fontFamily.join(\", \")};`;\n return `font-family: ${fontFamily};`;\n }\n }\n\n if (baseToken.startsWith(\"font-stretch-\")) {\n return FONT_STRETCH_MAP[baseToken.slice(13)] ?? undefined;\n }\n\n if (baseToken.startsWith(\"font-variant-numeric-\")) {\n return FONT_VARIANT_NUMERIC_MAP[baseToken.slice(21)] ?? undefined;\n }\n\n // leading-* (line-height)\n if (baseToken.startsWith(\"leading-\")) {\n const val = resolveThemeValue(theme.lineHeight || {}, baseToken.slice(8));\n if (val !== undefined) return `line-height: ${val};`;\n }\n\n // tracking-* (letter-spacing)\n if (baseToken.startsWith(\"tracking-\")) {\n const val = resolveThemeValue(theme.letterSpacing || {}, baseToken.slice(9));\n if (val !== undefined) return `letter-spacing: ${val};`;\n }\n\n // decoration-* (style / thickness / color)\n if (baseToken.startsWith(\"decoration-\")) {\n const key = baseToken.slice(11);\n if (TEXT_DECORATION_STYLE_MAP[key]) return TEXT_DECORATION_STYLE_MAP[key];\n const thicknessVal = resolveThemeValue(theme.textDecorationThickness || {}, key);\n if (thicknessVal !== undefined) return `text-decoration-thickness: ${thicknessVal};`;\n const color = resolveColorWithOpacity(theme.colors || {}, key);\n if (color !== undefined) return `text-decoration-color: ${color};`;\n }\n\n // underline-offset\n if (baseToken.startsWith(\"underline-offset-\")) {\n const val = resolveThemeValue(theme.textUnderlineOffset || {}, baseToken.slice(17));\n if (val !== undefined) return `text-underline-offset: ${val};`;\n }\n\n // indent\n if (baseToken.startsWith(\"indent-\")) {\n const val = resolveThemeValue(theme.textIndent || theme.spacing || {}, baseToken.slice(7));\n if (val !== undefined) return `text-indent: ${val};`;\n }\n\n // list-*\n if (baseToken.startsWith(\"list-\")) {\n const key = baseToken.slice(5);\n if (LIST_STYLE_POSITION_MAP[key]) return LIST_STYLE_POSITION_MAP[key];\n if (LIST_STYLE_IMAGE_MAP[baseToken]) return LIST_STYLE_IMAGE_MAP[baseToken.slice(17)] ?? undefined;\n const val = resolveThemeValue(theme.listStyleType || {}, key);\n if (val !== undefined) return `list-style-type: ${val};`;\n }\n\n if (baseToken.startsWith(\"list-style-image-\")) {\n return LIST_STYLE_IMAGE_MAP[baseToken.slice(17)] ?? undefined;\n }\n\n // whitespace-*\n if (baseToken.startsWith(\"whitespace-\")) {\n const key = baseToken.slice(11);\n if (WHITESPACE_MAP[key]) return WHITESPACE_MAP[key];\n }\n\n // hyphens\n if (baseToken.startsWith(\"hyphens-\")) return HYPHENS_MAP[baseToken.slice(8)] ?? undefined;\n\n // text-wrap-*\n if (baseToken === \"text-wrap\") return \"text-wrap: wrap;\";\n if (baseToken === \"text-nowrap\") return \"text-wrap: nowrap;\";\n if (baseToken === \"text-balance\") return \"text-wrap: balance;\";\n if (baseToken === \"text-pretty\") return \"text-wrap: pretty;\";\n\n // align-* (vertical-align)\n if (baseToken.startsWith(\"align-\")) {\n const key = baseToken.slice(6);\n if (VERTICAL_ALIGN_MAP[key]) return VERTICAL_ALIGN_MAP[key];\n }\n\n // line-clamp-*\n if (baseToken === \"line-clamp-none\") {\n return \"overflow: visible; display: block; -webkit-box-orient: horizontal; -webkit-line-clamp: unset;\";\n }\n if (baseToken.startsWith(\"line-clamp-\")) {\n const val = resolveThemeValue(theme.lineClamp || {}, baseToken.slice(11));\n if (val !== undefined) {\n return `overflow: hidden; display: -webkit-box; -webkit-box-orient: vertical; -webkit-line-clamp: ${val};`;\n }\n // numeric fallback\n const num = baseToken.slice(11);\n if (/^\\d+$/.test(num)) {\n return `overflow: hidden; display: -webkit-box; -webkit-box-orient: vertical; -webkit-line-clamp: ${num};`;\n }\n }\n\n return undefined;\n}\n", "import { OUTLINE_STYLE_MAP } from \"../maps/interactivity.maps.js\";\nimport { resolveThemeValue, resolveColorWithOpacity } from \"../resolvers.js\";\n\nexport function buildColorDeclaration(baseToken, theme) {\n const colors = theme.colors || {};\n\n // background-color (non-image: handled in backgrounds.js)\n if (baseToken.startsWith(\"bg-\")) {\n const key = baseToken.slice(3);\n const color = resolveColorWithOpacity(colors, key);\n if (color !== undefined) return `background-color: ${color};`;\n }\n\n // border-color\n if (baseToken.startsWith(\"border-\")) {\n const key = baseToken.slice(7);\n const color = resolveColorWithOpacity(colors, key);\n if (color !== undefined) return `border-color: ${color};`;\n }\n\n // fill / stroke\n if (baseToken.startsWith(\"fill-\")) {\n const val = resolveColorWithOpacity({ ...colors, none: \"none\" }, baseToken.slice(5));\n if (val !== undefined) return `fill: ${val};`;\n }\n if (baseToken.startsWith(\"stroke-\")) {\n const key = baseToken.slice(7);\n const width = resolveThemeValue(theme.strokeWidth || {}, key);\n if (width !== undefined) return `stroke-width: ${width};`;\n const color = resolveColorWithOpacity({ ...colors, none: \"none\" }, key);\n if (color !== undefined) return `stroke: ${color};`;\n }\n\n // outline-color / width / offset / style\n if (baseToken.startsWith(\"outline-\")) {\n const key = baseToken.slice(8);\n if (OUTLINE_STYLE_MAP[key]) return OUTLINE_STYLE_MAP[key];\n const width = resolveThemeValue(theme.outlineWidth || {}, key);\n if (width !== undefined) return `outline-width: ${width};`;\n const offset = resolveThemeValue(theme.outlineOffset || {}, key);\n if (offset !== undefined) return `outline-offset: ${offset};`;\n const color = resolveColorWithOpacity(theme.outlineColor || colors, key);\n if (color !== undefined) return `outline-color: ${color};`;\n }\n\n // caret-color\n if (baseToken.startsWith(\"caret-\")) {\n const color = resolveColorWithOpacity(theme.caretColor || colors, baseToken.slice(6));\n if (color !== undefined) return `caret-color: ${color};`;\n }\n\n // accent-color\n if (baseToken.startsWith(\"accent-\")) {\n const color = resolveColorWithOpacity({ ...colors, auto: \"auto\" }, baseToken.slice(7));\n if (color !== undefined) return `accent-color: ${color};`;\n }\n\n // placeholder-color\n if (baseToken.startsWith(\"placeholder-\")) {\n const color = resolveColorWithOpacity(colors, baseToken.slice(12));\n if (color !== undefined) return `--tw-placeholder-color: ${color};`;\n }\n\n return undefined;\n}\n", "import { BORDER_STYLE_MAP } from \"../maps/interactivity.maps.js\";\nimport { ROUNDED_PROPS } from \"../maps/layout.maps.js\";\nimport { resolveThemeValue } from \"../resolvers.js\";\n\nexport function buildBorderDeclaration(baseToken, theme) {\n if (baseToken === \"border\") {\n const value = resolveThemeValue(theme.borderWidth || {}, \"DEFAULT\") || \"1px\";\n return `border-width: ${value};`;\n }\n\n // border-{side}-{width?}\n const sideMatch = baseToken.match(/^border-([trblxy])-?(\\d+)?$/);\n if (sideMatch) {\n const [, side, numVal] = sideMatch;\n const sideMap = { t: \"top\", r: \"right\", b: \"bottom\", l: \"left\" };\n const widthKey = numVal || \"DEFAULT\";\n const widthVal = resolveThemeValue(theme.borderWidth || {}, widthKey);\n if (widthVal === undefined) return undefined;\n if (side === \"x\") return `border-left-width: ${widthVal}; border-right-width: ${widthVal};`;\n if (side === \"y\") return `border-top-width: ${widthVal}; border-bottom-width: ${widthVal};`;\n return `border-${sideMap[side]}-width: ${widthVal};`;\n }\n\n // border-{number}\n const widthMatch = baseToken.match(/^border-(\\d+)$/);\n if (widthMatch) {\n const value = resolveThemeValue(theme.borderWidth || {}, widthMatch[1]);\n if (value !== undefined) return `border-width: ${value};`;\n }\n\n // border-style keywords\n if (baseToken.startsWith(\"border-\")) {\n const key = baseToken.slice(7);\n if (BORDER_STYLE_MAP[key]) return BORDER_STYLE_MAP[key];\n }\n\n return undefined;\n}\n\nexport function buildBorderRadiusDeclaration(baseToken, theme) {\n if (!baseToken.startsWith(\"rounded\")) return undefined;\n\n const match = baseToken.match(/^rounded(?:-(tl|tr|br|bl|ss|se|es|ee|t|r|b|l))?(?:-(.+))?$/);\n if (!match) return undefined;\n\n const [, side = \"\", rawValueKey] = match;\n const valueKey = rawValueKey || \"DEFAULT\";\n const radius = resolveThemeValue(theme.borderRadius || {}, valueKey);\n if (radius === undefined) return undefined;\n\n const props = ROUNDED_PROPS[side];\n if (!props) return undefined;\n return props.map((prop) => `${prop}: ${radius};`).join(\" \");\n}\n", "export const ANIMATE_MAP = {\n none: \"animation: none;\",\n spin: \"animation: spin 1s linear infinite;\",\n ping: \"animation: ping 1s cubic-bezier(0,0,0.2,1) infinite;\",\n pulse: \"animation: pulse 2s cubic-bezier(0.4,0,0.6,1) infinite;\",\n bounce: \"animation: bounce 1s infinite;\",\n};\n\nexport const INSET_SHADOW_SIZES = {\n none: \"box-shadow: none;\",\n xs: \"box-shadow: inset 0 1px 1px 0 rgb(0 0 0 / 0.05);\",\n sm: \"box-shadow: inset 0 1px 2px 0 rgb(0 0 0 / 0.1);\",\n DEFAULT: \"box-shadow: inset 0 2px 4px 0 rgb(0 0 0 / 0.1);\",\n md: \"box-shadow: inset 0 2px 6px 0 rgb(0 0 0 / 0.1);\",\n lg: \"box-shadow: inset 0 4px 8px 0 rgb(0 0 0 / 0.15);\",\n};\n\nexport const PERSPECTIVE_MAP = {\n none: \"perspective: none;\",\n dramatic: \"perspective: 100px;\",\n near: \"perspective: 300px;\",\n normal: \"perspective: 500px;\",\n midrange: \"perspective: 800px;\",\n distant: \"perspective: 1200px;\",\n};\n\nexport const PERSPECTIVE_ORIGIN_MAP = {\n center: \"perspective-origin: center;\",\n top: \"perspective-origin: top;\",\n bottom: \"perspective-origin: bottom;\",\n left: \"perspective-origin: left;\",\n right: \"perspective-origin: right;\",\n \"top-left\": \"perspective-origin: top left;\",\n \"top-right\": \"perspective-origin: top right;\",\n \"bottom-left\": \"perspective-origin: bottom left;\",\n \"bottom-right\": \"perspective-origin: bottom right;\",\n};\n\nexport const MASK_CLIP_MAP = {\n \"mask-clip-border\": \"mask-clip: border; -webkit-mask-clip: border;\",\n \"mask-clip-padding\": \"mask-clip: padding; -webkit-mask-clip: padding;\",\n \"mask-clip-content\": \"mask-clip: content; -webkit-mask-clip: content;\",\n \"mask-clip-text\": \"mask-clip: text; -webkit-mask-clip: text;\",\n};\n\nexport const MASK_COMPOSITE_MAP = {\n \"mask-composite-add\": \"mask-composite: add; -webkit-mask-composite: add;\",\n \"mask-composite-subtract\": \"mask-composite: subtract; -webkit-mask-composite: subtract;\",\n \"mask-composite-intersect\": \"mask-composite: intersect; -webkit-mask-composite: intersect;\",\n \"mask-composite-exclude\": \"mask-composite: exclude; -webkit-mask-composite: exclude;\",\n \"mask-composite-replace\": \"mask-composite: replace; -webkit-mask-composite: replace;\",\n \"mask-composite-xor\": \"mask-composite: xor; -webkit-mask-composite: xor;\",\n};\n\nexport const MASK_MODE_MAP = {\n \"mask-mode-alpha\": \"mask-mode: alpha; -webkit-mask-mode: alpha;\",\n \"mask-mode-luminance\": \"mask-mode: luminance; -webkit-mask-mode: luminance;\",\n \"mask-mode-match-source\": \"mask-mode: match-source; -webkit-mask-mode: match-source;\",\n};\n\nexport const MASK_ORIGIN_MAP = {\n \"mask-origin-border\": \"mask-origin: border-box; -webkit-mask-origin: border-box;\",\n \"mask-origin-padding\": \"mask-origin: padding-box; -webkit-mask-origin: padding-box;\",\n \"mask-origin-content\": \"mask-origin: content-box; -webkit-mask-origin: content-box;\",\n \"mask-origin-fill\": \"mask-origin: fill-box; -webkit-mask-origin: fill-box;\",\n \"mask-origin-stroke\": \"mask-origin: stroke-box; -webkit-mask-origin: stroke-box;\",\n \"mask-origin-view\": \"mask-origin: view-box; -webkit-mask-origin: view-box;\",\n};\n\nexport const MASK_TYPE_MAP = {\n \"mask-type-luminance\": \"mask-type: luminance; -webkit-mask-type: luminance;\",\n \"mask-type-alpha\": \"mask-type: alpha; -webkit-mask-type: alpha;\",\n};\n\nexport const MASK_LINEAR_MAP = {\n \"mask-linear-to-t\": \"mask-image: linear-gradient(to top, black, transparent); -webkit-mask-image: linear-gradient(to top, black, transparent);\",\n \"mask-linear-to-tr\": \"mask-image: linear-gradient(to top right, black, transparent); -webkit-mask-image: linear-gradient(to top right, black, transparent);\",\n \"mask-linear-to-r\": \"mask-image: linear-gradient(to right, black, transparent); -webkit-mask-image: linear-gradient(to right, black, transparent);\",\n \"mask-linear-to-br\": \"mask-image: linear-gradient(to bottom right, black, transparent); -webkit-mask-image: linear-gradient(to bottom right, black, transparent);\",\n \"mask-linear-to-b\": \"mask-image: linear-gradient(to bottom, black, transparent); -webkit-mask-image: linear-gradient(to bottom, black, transparent);\",\n \"mask-linear-to-bl\": \"mask-image: linear-gradient(to bottom left, black, transparent); -webkit-mask-image: linear-gradient(to bottom left, black, transparent);\",\n \"mask-linear-to-l\": \"mask-image: linear-gradient(to left, black, transparent); -webkit-mask-image: linear-gradient(to left, black, transparent);\",\n \"mask-linear-to-tl\": \"mask-image: linear-gradient(to top left, black, transparent); -webkit-mask-image: linear-gradient(to top left, black, transparent);\",\n \"mask-none\": \"mask-image: none; -webkit-mask-image: none;\",\n};\n\nexport const MASK_RADIAL_POSITIONS = {\n center: \"center\",\n top: \"top\",\n right: \"right\",\n bottom: \"bottom\",\n left: \"left\",\n \"top-right\": \"top right\",\n \"bottom-right\": \"bottom right\",\n \"bottom-left\": \"bottom left\",\n \"top-left\": \"top left\",\n};\n\nexport const MASK_REPEAT_MAP = {\n \"mask-repeat\": \"mask-repeat: repeat; -webkit-mask-repeat: repeat;\",\n \"mask-no-repeat\": \"mask-repeat: no-repeat; -webkit-mask-repeat: no-repeat;\",\n \"mask-repeat-x\": \"mask-repeat: repeat-x; -webkit-mask-repeat: repeat-x;\",\n \"mask-repeat-y\": \"mask-repeat: repeat-y; -webkit-mask-repeat: repeat-y;\",\n \"mask-repeat-round\": \"mask-repeat: round; -webkit-mask-repeat: round;\",\n \"mask-repeat-space\": \"mask-repeat: space; -webkit-mask-repeat: space;\",\n};\n\nexport const MASK_SIZE_MAP = {\n \"mask-size-auto\": \"mask-size: auto; -webkit-mask-size: auto;\",\n \"mask-size-cover\": \"mask-size: cover; -webkit-mask-size: cover;\",\n \"mask-size-contain\": \"mask-size: contain; -webkit-mask-size: contain;\",\n};\n\nexport const BG_ATTACHMENT_MAP = {\n fixed: \"background-attachment: fixed;\",\n local: \"background-attachment: local;\",\n scroll: \"background-attachment: scroll;\",\n};\n\nexport const BG_CLIP_MAP = {\n border: \"background-clip: border-box;\",\n padding: \"background-clip: padding-box;\",\n content: \"background-clip: content-box;\",\n text: \"background-clip: text; -webkit-background-clip: text;\",\n};\n\nexport const BG_ORIGIN_MAP = {\n border: \"background-origin: border-box;\",\n padding: \"background-origin: padding-box;\",\n content: \"background-origin: content-box;\",\n};\n\nexport const BG_REPEAT_MAP = {\n repeat: \"background-repeat: repeat;\",\n \"no-repeat\": \"background-repeat: no-repeat;\",\n \"repeat-x\": \"background-repeat: repeat-x;\",\n \"repeat-y\": \"background-repeat: repeat-y;\",\n \"repeat-round\": \"background-repeat: round;\",\n \"repeat-space\": \"background-repeat: space;\",\n};\n\nexport const MIX_BLEND_MAP = {\n \"mix-blend-normal\": \"mix-blend-mode: normal;\",\n \"mix-blend-multiply\": \"mix-blend-mode: multiply;\",\n \"mix-blend-screen\": \"mix-blend-mode: screen;\",\n \"mix-blend-overlay\": \"mix-blend-mode: overlay;\",\n \"mix-blend-darken\": \"mix-blend-mode: darken;\",\n \"mix-blend-lighten\": \"mix-blend-mode: lighten;\",\n \"mix-blend-color-dodge\": \"mix-blend-mode: color-dodge;\",\n \"mix-blend-color-burn\": \"mix-blend-mode: color-burn;\",\n \"mix-blend-hard-light\": \"mix-blend-mode: hard-light;\",\n \"mix-blend-soft-light\": \"mix-blend-mode: soft-light;\",\n \"mix-blend-difference\": \"mix-blend-mode: difference;\",\n \"mix-blend-exclusion\": \"mix-blend-mode: exclusion;\",\n \"mix-blend-hue\": \"mix-blend-mode: hue;\",\n \"mix-blend-saturation\": \"mix-blend-mode: saturation;\",\n \"mix-blend-color\": \"mix-blend-mode: color;\",\n \"mix-blend-luminosity\": \"mix-blend-mode: luminosity;\",\n \"mix-blend-plus-darker\": \"mix-blend-mode: plus-darker;\",\n \"mix-blend-plus-lighter\": \"mix-blend-mode: plus-lighter;\",\n};\n\nexport const BG_BLEND_MAP = {\n \"bg-blend-normal\": \"background-blend-mode: normal;\",\n \"bg-blend-multiply\": \"background-blend-mode: multiply;\",\n \"bg-blend-screen\": \"background-blend-mode: screen;\",\n \"bg-blend-overlay\": \"background-blend-mode: overlay;\",\n \"bg-blend-darken\": \"background-blend-mode: darken;\",\n \"bg-blend-lighten\": \"background-blend-mode: lighten;\",\n \"bg-blend-color-dodge\": \"background-blend-mode: color-dodge;\",\n \"bg-blend-color-burn\": \"background-blend-mode: color-burn;\",\n \"bg-blend-hard-light\": \"background-blend-mode: hard-light;\",\n \"bg-blend-soft-light\": \"background-blend-mode: soft-light;\",\n \"bg-blend-difference\": \"background-blend-mode: difference;\",\n \"bg-blend-exclusion\": \"background-blend-mode: exclusion;\",\n \"bg-blend-hue\": \"background-blend-mode: hue;\",\n \"bg-blend-saturation\": \"background-blend-mode: saturation;\",\n \"bg-blend-color\": \"background-blend-mode: color;\",\n \"bg-blend-luminosity\": \"background-blend-mode: luminosity;\",\n};\n\nexport const TEXT_SHADOW_SIZES = {\n \"2xs\": \"0 1px 2px rgb(0 0 0 / 0.10)\",\n xs: \"0 1px 2px rgb(0 0 0 / 0.20)\",\n sm: \"0 1px 3px rgb(0 0 0 / 0.25)\",\n DEFAULT:\"0 1px 3px rgb(0 0 0 / 0.30)\",\n md: \"0 2px 4px rgb(0 0 0 / 0.30)\",\n lg: \"0 4px 6px rgb(0 0 0 / 0.25)\",\n xl: \"0 8px 12px rgb(0 0 0 / 0.20)\",\n \"2xl\": \"0 16px 24px rgb(0 0 0 / 0.15)\",\n none: \"none\",\n};\n\nexport const FORCED_COLOR_MAP = {\n \"forced-color-adjust-auto\": \"forced-color-adjust: auto;\",\n \"forced-color-adjust-none\": \"forced-color-adjust: none;\",\n};\n", "import { INSET_SHADOW_SIZES, TEXT_SHADOW_SIZES } from \"../maps/effects.maps.js\";\nimport { resolveThemeValue, resolveColorWithOpacity, resolveArbitraryValue } from \"../resolvers.js\";\n\nexport function buildOpacityDeclaration(baseToken, theme) {\n if (!baseToken.startsWith(\"opacity-\")) return undefined;\n const opacity = resolveThemeValue(theme.opacity || {}, baseToken.slice(8));\n if (opacity === undefined) return undefined;\n return `opacity: ${opacity};`;\n}\n\nexport function buildShadowDeclaration(baseToken, theme) {\n if (baseToken === \"shadow\") {\n const value = resolveThemeValue(theme.boxShadow || {}, \"DEFAULT\");\n if (value === undefined) return undefined;\n return `box-shadow: ${value};`;\n }\n if (!baseToken.startsWith(\"shadow-\")) return undefined;\n\n const valueKey = baseToken.slice(7);\n\n // arbitrary value: shadow-[4px_4px_0_0]\n const arb = resolveArbitraryValue(valueKey);\n if (arb !== undefined) return `box-shadow: ${arb};`;\n\n // named shadow from theme\n const value = resolveThemeValue(theme.boxShadow || {}, valueKey);\n if (value !== undefined) return `box-shadow: ${value};`;\n\n // shadow-color: check boxShadowColor first, then fall back to colors\n const colorScale = theme.boxShadowColor || theme.colors || {};\n const color = resolveColorWithOpacity(colorScale, valueKey);\n if (color !== undefined) return `--tw-shadow-color: ${color};`;\n\n return undefined;\n}\n\nexport function buildInsetShadowDeclaration(baseToken, theme) {\n if (baseToken === \"inset-shadow\") return INSET_SHADOW_SIZES.DEFAULT;\n\n if (baseToken.startsWith(\"inset-shadow-\")) {\n const key = baseToken.slice(13);\n if (INSET_SHADOW_SIZES[key]) return INSET_SHADOW_SIZES[key];\n const color = resolveColorWithOpacity(theme.colors || {}, key);\n if (color !== undefined) return `--tw-inset-shadow-color: ${color};`;\n }\n\n return undefined;\n}\n\nexport function buildInsetRingDeclaration(baseToken, theme) {\n const ringColors = theme.ringColor || {};\n const colors = theme.colors || {};\n\n if (baseToken === \"inset-ring\") {\n return `box-shadow: inset 0 0 0 1px var(--tw-inset-ring-color, currentColor);`;\n }\n\n if (baseToken.startsWith(\"inset-ring-\")) {\n const key = baseToken.slice(11);\n if (/^\\d+$/.test(key)) {\n return `box-shadow: inset 0 0 0 ${key}px var(--tw-inset-ring-color, currentColor);`;\n }\n const color = resolveColorWithOpacity({ ...ringColors, ...colors }, key);\n if (color !== undefined) return `--tw-inset-ring-color: ${color};`;\n }\n\n return undefined;\n}\n\nexport function buildRingDeclaration(baseToken, theme) {\n const ringColorScale = theme.ringColor || {};\n const ringWidthScale = theme.ringWidth || {};\n const defaultRingColor = resolveThemeValue(ringColorScale, \"DEFAULT\") || \"#3b82f6\";\n\n const buildRingWidth = (widthValue) =>\n `--tw-ring-inset: ; --tw-ring-offset-width: 0px; --tw-ring-offset-color: #fff; --tw-ring-color: ${defaultRingColor}; box-shadow: var(--tw-ring-inset,) 0 0 0 calc(${widthValue} + var(--tw-ring-offset-width, 0px)) var(--tw-ring-color);`;\n\n if (baseToken === \"ring\") {\n const widthValue = resolveThemeValue(ringWidthScale, \"DEFAULT\") || \"3px\";\n return buildRingWidth(widthValue);\n }\n\n if (!baseToken.startsWith(\"ring-\")) return undefined;\n const valueKey = baseToken.slice(5);\n\n const widthValue = resolveThemeValue(ringWidthScale, valueKey);\n if (widthValue !== undefined) return buildRingWidth(widthValue);\n\n if (valueKey === \"inset\") return `--tw-ring-inset: inset;`;\n\n const colorValue =\n resolveColorWithOpacity(ringColorScale, valueKey) ||\n resolveColorWithOpacity(theme.colors || {}, valueKey);\n if (colorValue !== undefined) return `--tw-ring-color: ${colorValue};`;\n\n return undefined;\n}\n\nexport function buildTextShadowDeclaration(baseToken, theme) {\n if (baseToken === \"text-shadow\") {\n const val = (theme.textShadow || TEXT_SHADOW_SIZES).DEFAULT || TEXT_SHADOW_SIZES.DEFAULT;\n return `text-shadow: ${val};`;\n }\n\n if (baseToken.startsWith(\"text-shadow-\")) {\n const key = baseToken.slice(12);\n // text-shadow-color\n const color = resolveColorWithOpacity(theme.colors || {}, key);\n if (color !== undefined) return `--tw-text-shadow-color: ${color};`;\n // text-shadow-size\n const scale = theme.textShadow || TEXT_SHADOW_SIZES;\n const val = resolveThemeValue(scale, key);\n if (val !== undefined) return val === \"none\" ? \"text-shadow: none;\" : `text-shadow: ${val};`;\n }\n\n return undefined;\n}\n\nexport function buildRingOffsetDeclaration(baseToken, theme) {\n if (!baseToken.startsWith(\"ring-offset-\")) return undefined;\n const key = baseToken.slice(12);\n\n // ring-offset-{width}\n const widthVal = resolveThemeValue(theme.ringOffsetWidth || {}, key);\n if (widthVal !== undefined) {\n return `--tw-ring-offset-width: ${widthVal}; box-shadow: 0 0 0 var(--tw-ring-offset-width) var(--tw-ring-offset-color, #fff), var(--tw-ring-shadow, 0 0 #0000);`;\n }\n\n // ring-offset-{color}\n let color = resolveColorWithOpacity(theme.ringOffsetColor || {}, key);\n if (color === undefined) {\n color = resolveColorWithOpacity(theme.colors || {}, key);\n }\n if (color !== undefined) return `--tw-ring-offset-color: ${color};`;\n\n return undefined;\n}\n", "import {\n BG_ATTACHMENT_MAP,\n BG_CLIP_MAP,\n BG_ORIGIN_MAP,\n BG_REPEAT_MAP,\n} from \"../maps/effects.maps.js\";\nimport { resolveThemeValue, resolveColorWithOpacity } from \"../resolvers.js\";\n\nexport function buildBackgroundDeclaration(baseToken, theme) {\n if (!baseToken.startsWith(\"bg-\")) return undefined;\n const key = baseToken.slice(3);\n\n if (BG_ATTACHMENT_MAP[key]) return BG_ATTACHMENT_MAP[key];\n if (key.startsWith(\"clip-\")) return BG_CLIP_MAP[key.slice(5)] ?? undefined;\n if (key.startsWith(\"origin-\")) return BG_ORIGIN_MAP[key.slice(7)] ?? undefined;\n if (BG_REPEAT_MAP[key]) return BG_REPEAT_MAP[key];\n\n // bg-size (any value from theme, not just 3 keywords)\n const bgSize = resolveThemeValue(theme.backgroundSize || {}, key);\n if (bgSize !== undefined) return `background-size: ${bgSize};`;\n\n // bg-position\n const bgPos = resolveThemeValue(theme.backgroundPosition || {}, key);\n if (bgPos !== undefined) return `background-position: ${bgPos};`;\n\n // bg-image (linear gradients etc.)\n const bgImage = resolveThemeValue(theme.backgroundImage || {}, key);\n if (bgImage !== undefined) return `background-image: ${bgImage};`;\n\n return undefined;\n}\n\nexport function buildGradientDeclaration(baseToken, theme) {\n const colors = theme.gradientColorStops || theme.colors || {};\n\n // from-{color|position}\n if (baseToken.startsWith(\"from-\")) {\n const key = baseToken.slice(5);\n if (key.endsWith(\"%\")) return `--tw-gradient-from-position: ${key};`;\n const color = resolveColorWithOpacity(colors, key);\n if (color !== undefined) {\n return `--tw-gradient-from: ${color}; --tw-gradient-stops: var(--tw-gradient-from), var(--tw-gradient-via, transparent), var(--tw-gradient-to, transparent);`;\n }\n }\n\n // via-{color|position}\n if (baseToken.startsWith(\"via-\")) {\n const key = baseToken.slice(4);\n if (key.endsWith(\"%\")) return `--tw-gradient-via-position: ${key};`;\n const color = resolveColorWithOpacity(colors, key);\n if (color !== undefined) return `--tw-gradient-via: ${color};`;\n }\n\n // to-{color|position}\n if (baseToken.startsWith(\"to-\")) {\n const key = baseToken.slice(3);\n if (key.endsWith(\"%\")) return `--tw-gradient-to-position: ${key};`;\n const color = resolveColorWithOpacity(colors, key);\n if (color !== undefined) return `--tw-gradient-to: ${color};`;\n }\n\n return undefined;\n}\n", "import { PERSPECTIVE_MAP, PERSPECTIVE_ORIGIN_MAP } from \"../maps/effects.maps.js\";\nimport { resolveThemeValue, resolveArbitraryValue } from \"../resolvers.js\";\n\nexport function buildTransformDeclaration(baseToken, theme) {\n if (baseToken === \"transform\") {\n return \"--tw-translate-x: 0; --tw-translate-y: 0; --tw-rotate: 0; --tw-skew-x: 0; --tw-skew-y: 0; --tw-scale-x: 1; --tw-scale-y: 1; transform: translateX(var(--tw-translate-x)) translateY(var(--tw-translate-y)) rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y));\";\n }\n if (baseToken === \"transform-none\") return \"transform: none;\";\n if (baseToken === \"transform-gpu\") {\n return \"transform: translate3d(var(--tw-translate-x,0), var(--tw-translate-y,0), 0) rotate(var(--tw-rotate,0)) skewX(var(--tw-skew-x,0)) skewY(var(--tw-skew-y,0)) scaleX(var(--tw-scale-x,1)) scaleY(var(--tw-scale-y,1));\";\n }\n\n const negative = baseToken.startsWith(\"-\");\n const normalized = negative ? baseToken.slice(1) : baseToken;\n\n // rotate\n if (normalized.startsWith(\"rotate-\")) {\n const key = normalized.slice(7);\n const axisMatch = key.match(/^([xyz])-(.+)$/);\n if (axisMatch) {\n const [, axis, valueKey] = axisMatch;\n let val = resolveThemeValue(theme.rotate || {}, valueKey) || resolveArbitraryValue(valueKey);\n if (val === undefined) return undefined;\n if (negative) val = val.startsWith(\"-\") ? val.slice(1) : `-${val}`;\n return `rotate: ${axis.toUpperCase()}(${val});`;\n }\n let val = resolveThemeValue(theme.rotate || {}, key) || resolveArbitraryValue(key);\n if (val === undefined) return undefined;\n if (negative) val = val.startsWith(\"-\") ? val.slice(1) : `-${val}`;\n return `--tw-rotate: ${val}; transform: rotate(${val});`;\n }\n\n // scale\n if (normalized.startsWith(\"scale-\")) {\n const key = normalized.slice(6);\n const axisMatch = key.match(/^([xyz])-(.+)$/);\n if (axisMatch) {\n const [, axis, valueKey] = axisMatch;\n let val = resolveThemeValue(theme.scale || {}, valueKey) || resolveArbitraryValue(valueKey);\n if (val === undefined) return undefined;\n if (negative && val !== \"0\") val = `-${val}`;\n if (axis === \"z\") return `--tw-scale-z: ${val}; scale: var(--tw-scale-x, 1) var(--tw-scale-y, 1) ${val};`;\n return `--tw-scale-${axis}: ${val}; transform: scale${axis.toUpperCase()}(${val});`;\n }\n let val = resolveThemeValue(theme.scale || {}, key) || resolveArbitraryValue(key);\n if (val === undefined) return undefined;\n if (negative && val !== \"0\") val = `-${val}`;\n return `--tw-scale-x: ${val}; --tw-scale-y: ${val}; transform: scale(${val});`;\n }\n\n // translate\n if (normalized.startsWith(\"translate-\")) {\n const key = normalized.slice(10);\n const axisMatch = key.match(/^([xyz])-(.+)$/);\n if (axisMatch) {\n const [, axis, valueKey] = axisMatch;\n const scale = theme.translate || theme.spacing || {};\n let val = resolveThemeValue(scale, valueKey) || resolveArbitraryValue(valueKey);\n if (val === undefined) return undefined;\n if (negative && val !== \"0\") val = `-${val}`;\n if (axis === \"z\") return `--tw-translate-z: ${val}; transform: translateZ(${val});`;\n return `--tw-translate-${axis}: ${val}; transform: translate${axis.toUpperCase()}(${val});`;\n }\n const scale = theme.translate || theme.spacing || {};\n let val = resolveThemeValue(scale, key) || resolveArbitraryValue(key);\n if (val === undefined) return undefined;\n if (negative && val !== \"0\") val = `-${val}`;\n return `--tw-translate-x: ${val}; --tw-translate-y: ${val}; transform: translate(${val}, ${val});`;\n }\n\n // skew\n if (normalized.startsWith(\"skew-\")) {\n const key = normalized.slice(5);\n const axisMatch = key.match(/^([xy])-(.+)$/);\n if (axisMatch) {\n const [, axis, valueKey] = axisMatch;\n let val = resolveThemeValue(theme.skew || {}, valueKey) || resolveArbitraryValue(valueKey);\n if (val === undefined) return undefined;\n if (negative) val = val.startsWith(\"-\") ? val.slice(1) : `-${val}`;\n return `--tw-skew-${axis}: ${val}; transform: skew${axis.toUpperCase()}(${val});`;\n }\n }\n\n // transform-origin\n if (normalized.startsWith(\"origin-\")) {\n const val = resolveThemeValue(theme.transformOrigin || {}, normalized.slice(7));\n if (val !== undefined) return `transform-origin: ${val};`;\n }\n\n // perspective-origin\n if (normalized.startsWith(\"perspective-origin-\")) {\n const key = normalized.slice(19);\n if (PERSPECTIVE_ORIGIN_MAP[key]) return PERSPECTIVE_ORIGIN_MAP[key];\n const arb = resolveArbitraryValue(key);\n if (arb !== undefined) return `perspective-origin: ${arb};`;\n }\n\n // perspective\n if (normalized.startsWith(\"perspective-\")) {\n const key = normalized.slice(12);\n if (PERSPECTIVE_MAP[key]) return PERSPECTIVE_MAP[key];\n const arb = resolveArbitraryValue(key);\n if (arb !== undefined) return `perspective: ${arb};`;\n }\n\n return undefined;\n}\n", "import { resolveThemeValue } from \"../resolvers.js\";\n\nexport function buildFilterDeclaration(baseToken, theme) {\n const negative = baseToken.startsWith(\"-\");\n const normalized = negative ? baseToken.slice(1) : baseToken;\n const isBackdrop = normalized.startsWith(\"backdrop-\");\n const rest = isBackdrop ? normalized.slice(9) : normalized;\n const prefix = isBackdrop ? \"backdrop-filter\" : \"filter\";\n\n const getScale = (key) => {\n if (isBackdrop) {\n const backdropKey = `backdrop${key.charAt(0).toUpperCase() + key.slice(1)}`;\n return theme[backdropKey] || theme[key] || {};\n }\n return theme[key] || {};\n };\n\n if (rest === \"filter\") {\n return `${prefix}: none;`;\n }\n\n if (rest === \"blur\" || rest.startsWith(\"blur-\")) {\n const key = rest === \"blur\" ? \"DEFAULT\" : rest.slice(5);\n const val = resolveThemeValue(getScale(\"blur\"), key);\n if (val !== undefined) return `${prefix}: blur(${val});`;\n }\n\n if (rest === \"brightness\") {\n const val = resolveThemeValue(getScale(\"brightness\"), \"100\") || resolveThemeValue(getScale(\"brightness\"), \"DEFAULT\") || \"1\";\n return `${prefix}: brightness(${val});`;\n }\n\n if (rest.startsWith(\"brightness-\")) {\n const val = resolveThemeValue(getScale(\"brightness\"), rest.slice(11));\n if (val !== undefined) return `${prefix}: brightness(${val});`;\n }\n\n if (rest === \"contrast\") {\n const val = resolveThemeValue(getScale(\"contrast\"), \"100\") || resolveThemeValue(getScale(\"contrast\"), \"DEFAULT\") || \"1\";\n return `${prefix}: contrast(${val});`;\n }\n\n if (rest.startsWith(\"contrast-\")) {\n const val = resolveThemeValue(getScale(\"contrast\"), rest.slice(9));\n if (val !== undefined) return `${prefix}: contrast(${val});`;\n }\n\n if (rest === \"grayscale\" || rest.startsWith(\"grayscale-\")) {\n const key = rest === \"grayscale\" ? \"DEFAULT\" : rest.slice(10);\n const val = resolveThemeValue(getScale(\"grayscale\"), key);\n if (val !== undefined) return `${prefix}: grayscale(${val});`;\n }\n\n if (rest === \"hue-rotate\") {\n const val = resolveThemeValue(getScale(\"hueRotate\"), \"0\") || resolveThemeValue(getScale(\"hueRotate\"), \"DEFAULT\") || \"0deg\";\n return `${prefix}: hue-rotate(${val});`;\n }\n\n if (rest.startsWith(\"hue-rotate-\")) {\n const val = resolveThemeValue(getScale(\"hueRotate\"), rest.slice(11));\n if (val !== undefined) {\n const v = negative ? `-${val}` : val;\n return `${prefix}: hue-rotate(${v});`;\n }\n }\n\n if (rest === \"invert\" || rest.startsWith(\"invert-\")) {\n const key = rest === \"invert\" ? \"DEFAULT\" : rest.slice(7);\n const val = resolveThemeValue(getScale(\"invert\"), key);\n if (val !== undefined) return `${prefix}: invert(${val});`;\n }\n\n if (rest === \"saturate\") {\n const val = resolveThemeValue(getScale(\"saturate\"), \"100\") || resolveThemeValue(getScale(\"saturate\"), \"DEFAULT\") || \"1\";\n return `${prefix}: saturate(${val});`;\n }\n\n if (rest.startsWith(\"saturate-\")) {\n const val = resolveThemeValue(getScale(\"saturate\"), rest.slice(9));\n if (val !== undefined) return `${prefix}: saturate(${val});`;\n }\n\n if (rest === \"sepia\" || rest.startsWith(\"sepia-\")) {\n const key = rest === \"sepia\" ? \"DEFAULT\" : rest.slice(6);\n const val = resolveThemeValue(getScale(\"sepia\"), key);\n if (val !== undefined) return `${prefix}: sepia(${val});`;\n }\n\n // drop-shadow (non-backdrop only)\n if (!isBackdrop && rest === \"drop-shadow\") {\n const val = resolveThemeValue(theme.dropShadow || {}, \"DEFAULT\");\n if (val !== undefined) return `filter: drop-shadow(${val});`;\n }\n if (!isBackdrop && rest.startsWith(\"drop-shadow-\")) {\n const val = resolveThemeValue(theme.dropShadow || {}, rest.slice(12) || \"DEFAULT\");\n if (val !== undefined) return `filter: drop-shadow(${val});`;\n }\n\n // backdrop-opacity\n if (isBackdrop && rest === \"opacity\") {\n const val = resolveThemeValue(theme.backdropOpacity || theme.opacity || {}, \"DEFAULT\") || \"1\";\n return `backdrop-filter: opacity(${val});`;\n }\n\n if (isBackdrop && rest.startsWith(\"opacity-\")) {\n const val = resolveThemeValue(theme.backdropOpacity || theme.opacity || {}, rest.slice(8));\n if (val !== undefined) return `backdrop-filter: opacity(${val});`;\n }\n\n return undefined;\n}\n", "import { TRANSITION_PROPERTY_MAP, TRANSITION_TIMING_MAP } from \"../maps/interactivity.maps.js\";\nimport { resolveTimeValue, resolveArbitraryValue } from \"../resolvers.js\";\n\nexport function buildTransitionDeclaration(baseToken) {\n if (baseToken === \"transition\") {\n return `transition-property: ${TRANSITION_PROPERTY_MAP.DEFAULT}; transition-timing-function: ${TRANSITION_TIMING_MAP[\"in-out\"]}; transition-duration: 150ms;`;\n }\n\n if (baseToken.startsWith(\"transition-\")) {\n const key = baseToken.slice(11);\n if (Object.prototype.hasOwnProperty.call(TRANSITION_PROPERTY_MAP, key)) {\n const propertyValue = TRANSITION_PROPERTY_MAP[key];\n if (propertyValue === \"none\") return \"transition-property: none;\";\n return `transition-property: ${propertyValue}; transition-timing-function: ${TRANSITION_TIMING_MAP[\"in-out\"]}; transition-duration: 150ms;`;\n }\n }\n\n if (baseToken.startsWith(\"duration-\")) {\n const value = resolveTimeValue(baseToken.slice(9));\n if (value !== undefined) return `transition-duration: ${value};`;\n }\n\n if (baseToken.startsWith(\"delay-\")) {\n const value = resolveTimeValue(baseToken.slice(6));\n if (value !== undefined) return `transition-delay: ${value};`;\n }\n\n if (baseToken.startsWith(\"ease-\")) {\n const valueKey = baseToken.slice(5);\n const value = TRANSITION_TIMING_MAP[valueKey] || resolveArbitraryValue(valueKey);\n if (value !== undefined) return `transition-timing-function: ${value};`;\n }\n\n return undefined;\n}\n", "import {\n ANIMATE_MAP,\n MASK_LINEAR_MAP,\n MASK_REPEAT_MAP,\n MASK_SIZE_MAP,\n MASK_RADIAL_POSITIONS,\n MASK_CLIP_MAP,\n MASK_COMPOSITE_MAP,\n MASK_MODE_MAP,\n MASK_ORIGIN_MAP,\n MASK_TYPE_MAP,\n} from \"../maps/effects.maps.js\";\nimport {\n CURSOR_MAP,\n POINTER_EVENTS_MAP,\n USER_SELECT_MAP,\n APPEARANCE_MAP,\n OUTLINE_STYLE_MAP,\n} from \"../maps/interactivity.maps.js\";\nimport { resolveThemeValue, resolveColorWithOpacity, resolveArbitraryValue } from \"../resolvers.js\";\n\nexport function buildAnimationDeclaration(baseToken) {\n if (!baseToken.startsWith(\"animate-\")) return undefined;\n const key = baseToken.slice(8);\n if (ANIMATE_MAP[key]) return ANIMATE_MAP[key];\n const arb = resolveArbitraryValue(key);\n if (arb !== undefined) return `animation: ${arb};`;\n return undefined;\n}\n\nexport function buildMaskDeclaration(baseToken) {\n if (MASK_CLIP_MAP[baseToken]) return MASK_CLIP_MAP[baseToken];\n if (MASK_COMPOSITE_MAP[baseToken]) return MASK_COMPOSITE_MAP[baseToken];\n if (MASK_MODE_MAP[baseToken]) return MASK_MODE_MAP[baseToken];\n if (MASK_ORIGIN_MAP[baseToken]) return MASK_ORIGIN_MAP[baseToken];\n if (MASK_TYPE_MAP[baseToken]) return MASK_TYPE_MAP[baseToken];\n if (MASK_LINEAR_MAP[baseToken]) return MASK_LINEAR_MAP[baseToken];\n if (MASK_REPEAT_MAP[baseToken]) return MASK_REPEAT_MAP[baseToken];\n if (MASK_SIZE_MAP[baseToken]) return MASK_SIZE_MAP[baseToken];\n\n if (baseToken === \"mask-radial\") {\n return \"mask-image: radial-gradient(circle at center, black, transparent); -webkit-mask-image: radial-gradient(circle at center, black, transparent);\";\n }\n if (baseToken.startsWith(\"mask-radial-at-\")) {\n const pos = MASK_RADIAL_POSITIONS[baseToken.slice(15)];\n if (pos !== undefined) {\n return `mask-image: radial-gradient(circle at ${pos}, black, transparent); -webkit-mask-image: radial-gradient(circle at ${pos}, black, transparent);`;\n }\n }\n if (baseToken.startsWith(\"mask-position-\")) {\n const pos = MASK_RADIAL_POSITIONS[baseToken.slice(14)];\n if (pos !== undefined) {\n return `mask-position: ${pos}; -webkit-mask-position: ${pos};`;\n }\n }\n\n return undefined;\n}\n\nexport function buildContainerQueryDeclaration(baseToken) {\n if (baseToken === \"@container\") return \"container-type: inline-size;\";\n if (baseToken.startsWith(\"@container/\")) {\n const name = baseToken.slice(11);\n return `container-type: inline-size; container-name: ${name};`;\n }\n return undefined;\n}\n\nexport function buildInteractivityDeclaration(baseToken, theme) {\n if (baseToken.startsWith(\"cursor-\")) return CURSOR_MAP[baseToken.slice(7)] ?? undefined;\n if (baseToken.startsWith(\"pointer-events-\")) return POINTER_EVENTS_MAP[baseToken.slice(15)] ?? undefined;\n if (baseToken.startsWith(\"select-\")) return USER_SELECT_MAP[baseToken.slice(7)] ?? undefined;\n if (baseToken.startsWith(\"user-select-\")) return USER_SELECT_MAP[baseToken.slice(12)] ?? undefined;\n if (baseToken.startsWith(\"appearance-\")) {\n return APPEARANCE_MAP[baseToken.slice(11)] ? `appearance: ${baseToken.slice(11)};` : undefined;\n }\n\n // resize\n if (baseToken === \"resize-none\") return \"resize: none;\";\n if (baseToken === \"resize-y\") return \"resize: vertical;\";\n if (baseToken === \"resize-x\") return \"resize: horizontal;\";\n if (baseToken === \"resize\") return \"resize: both;\";\n\n // outline\n if (baseToken === \"outline\") return \"outline-style: solid;\";\n if (baseToken === \"outline-none\") return \"outline: 2px solid transparent; outline-offset: 2px;\";\n if (baseToken.startsWith(\"outline-\")) {\n const key = baseToken.slice(8);\n if (OUTLINE_STYLE_MAP[key]) return OUTLINE_STYLE_MAP[key];\n // outline-offset-{n}: key is \"offset-{n}\", strip \"offset-\" prefix\n if (key.startsWith(\"offset-\")) {\n const offsetKey = key.slice(7);\n const offset = resolveThemeValue(theme.outlineOffset || {}, offsetKey);\n if (offset !== undefined) return `outline-offset: ${offset};`;\n const arb = resolveArbitraryValue(offsetKey);\n if (arb !== undefined) return `outline-offset: ${arb};`;\n }\n const width = resolveThemeValue(theme.outlineWidth || {}, key);\n if (width !== undefined) return `outline-width: ${width};`;\n const color = resolveColorWithOpacity(theme.outlineColor || theme.colors || {}, key);\n if (color !== undefined) return `outline-color: ${color};`;\n }\n\n return undefined;\n}\n\nexport function buildZoomDeclaration(baseToken, theme) {\n if (!baseToken.startsWith(\"zoom-\")) return undefined;\n const key = baseToken.slice(5);\n const val = resolveThemeValue(theme.zoom || {}, key);\n if (val !== undefined) return `zoom: ${val};`;\n const arb = resolveArbitraryValue(key);\n if (arb !== undefined) return `zoom: ${arb};`;\n return undefined;\n}\n\nexport function buildForcedColorDeclaration(baseToken) {\n if (baseToken === \"forced-color-adjust-auto\") return \"forced-color-adjust: auto;\";\n if (baseToken === \"forced-color-adjust-none\") return \"forced-color-adjust: none;\";\n return undefined;\n}\n\nexport function buildBorderSpacingDeclaration(baseToken, theme) {\n if (!baseToken.startsWith(\"border-spacing-\")) return undefined;\n const rest = baseToken.slice(15); // after \"border-spacing-\"\n\n const axisMatchX = rest.match(/^x-(.+)$/);\n if (axisMatchX) {\n const val = resolveThemeValue(theme.borderSpacing || theme.spacing || {}, axisMatchX[1]);\n if (val !== undefined) return `--tw-border-spacing-x: ${val}; border-spacing: var(--tw-border-spacing-x) var(--tw-border-spacing-y, 0);`;\n }\n\n const axisMatchY = rest.match(/^y-(.+)$/);\n if (axisMatchY) {\n const val = resolveThemeValue(theme.borderSpacing || theme.spacing || {}, axisMatchY[1]);\n if (val !== undefined) return `--tw-border-spacing-y: ${val}; border-spacing: var(--tw-border-spacing-x, 0) var(--tw-border-spacing-y);`;\n }\n\n const val = resolveThemeValue(theme.borderSpacing || theme.spacing || {}, rest);\n if (val !== undefined) return `--tw-border-spacing-x: ${val}; --tw-border-spacing-y: ${val}; border-spacing: ${val};`;\n\n const arb = resolveArbitraryValue(rest);\n if (arb !== undefined) return `--tw-border-spacing-x: ${arb}; --tw-border-spacing-y: ${arb}; border-spacing: ${arb};`;\n\n return undefined;\n}\n\n// \u2500\u2500\u2500 Scroll snap \u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\n\nconst SNAP_TYPE_MAP = {\n none: \"scroll-snap-type: none;\",\n x: \"scroll-snap-type: x var(--tw-scroll-snap-strictness);\",\n y: \"scroll-snap-type: y var(--tw-scroll-snap-strictness);\",\n both: \"scroll-snap-type: both var(--tw-scroll-snap-strictness);\",\n mandatory: \"--tw-scroll-snap-strictness: mandatory;\",\n proximity: \"--tw-scroll-snap-strictness: proximity;\",\n};\n\nconst SNAP_ALIGN_MAP = {\n start: \"scroll-snap-align: start;\",\n end: \"scroll-snap-align: end;\",\n center: \"scroll-snap-align: center;\",\n \"align-none\": \"scroll-snap-align: none;\",\n};\n\nconst SNAP_STOP_MAP = {\n normal: \"scroll-snap-stop: normal;\",\n always: \"scroll-snap-stop: always;\",\n};\n\nexport function buildScrollSnapDeclaration(baseToken) {\n if (!baseToken.startsWith(\"snap-\")) return undefined;\n const key = baseToken.slice(5);\n if (SNAP_TYPE_MAP[key]) return SNAP_TYPE_MAP[key];\n if (SNAP_ALIGN_MAP[key]) return SNAP_ALIGN_MAP[key];\n if (SNAP_STOP_MAP[key]) return SNAP_STOP_MAP[key];\n return undefined;\n}\n\n// \u2500\u2500\u2500 SR-only (accessibility) \u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\n\nexport function buildAccessibilityDeclaration(baseToken) {\n if (baseToken === \"sr-only\") {\n return \"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 }\n if (baseToken === \"not-sr-only\") {\n return \"position: static; width: auto; height: auto; padding: 0; margin: 0; overflow: visible; clip: auto; white-space: normal;\";\n }\n return undefined;\n}\n", "import { MIX_BLEND_MAP, BG_BLEND_MAP } from \"../maps/effects.maps.js\";\n\nexport function buildBlendingDeclaration(baseToken) {\n if (MIX_BLEND_MAP[baseToken]) return MIX_BLEND_MAP[baseToken];\n if (BG_BLEND_MAP[baseToken]) return BG_BLEND_MAP[baseToken];\n return undefined;\n}\n", "import { BORDER_STYLE_MAP } from \"../maps/interactivity.maps.js\";\nimport { resolveThemeValue, resolveColorWithOpacity } from \"../resolvers.js\";\n\n// \u2500\u2500\u2500 Child selector marker \u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\n// Builders that need the > :not(:first-child) selector return a tagged object\n// instead of a plain string. The compiler checks for this and applies the scope.\n\nexport function childScoped(declaration) {\n return { __childScoped: true, declaration };\n}\n\nexport function isChildScoped(result) {\n return result !== null && typeof result === \"object\" && result.__childScoped === true;\n}\n\n// \u2500\u2500\u2500 space-x-* / space-y-* \u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\n\nexport function buildSpaceBetweenDeclaration(baseToken, theme) {\n const negative = baseToken.startsWith(\"-\");\n const normalized = negative ? baseToken.slice(1) : baseToken;\n\n // space-x-reverse / space-y-reverse: apply to parent, no child scoping\n if (normalized === \"space-x-reverse\") return \"--tw-space-x-reverse: 1;\";\n if (normalized === \"space-y-reverse\") return \"--tw-space-y-reverse: 1;\";\n\n const matchX = normalized.match(/^space-x-(.+)$/);\n if (matchX) {\n let val = resolveThemeValue(theme.spacing || {}, matchX[1]);\n if (val === undefined) return undefined;\n if (negative && val !== \"0\") val = `-${val}`;\n return childScoped([\n `--tw-space-x-reverse: 0;`,\n `margin-inline-end: calc(${val} * var(--tw-space-x-reverse));`,\n `margin-inline-start: calc(${val} * calc(1 - var(--tw-space-x-reverse)));`,\n ].join(\" \"));\n }\n\n const matchY = normalized.match(/^space-y-(.+)$/);\n if (matchY) {\n let val = resolveThemeValue(theme.spacing || {}, matchY[1]);\n if (val === undefined) return undefined;\n if (negative && val !== \"0\") val = `-${val}`;\n return childScoped([\n `--tw-space-y-reverse: 0;`,\n `margin-bottom: calc(${val} * var(--tw-space-y-reverse));`,\n `margin-top: calc(${val} * calc(1 - var(--tw-space-y-reverse)));`,\n ].join(\" \"));\n }\n\n return undefined;\n}\n\n// \u2500\u2500\u2500 divide-x-* / divide-y-* / divide-style / divide-color \u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\n\nexport function buildDivideDeclaration(baseToken, theme) {\n if (!baseToken.startsWith(\"divide-\")) return undefined;\n const key = baseToken.slice(7);\n\n // divide-x / divide-x-{n}\n if (key === \"x\" || key === \"x-reverse\") {\n if (key === \"x-reverse\") return \"--tw-divide-x-reverse: 1;\";\n const val = resolveThemeValue(theme.borderWidth || {}, \"DEFAULT\") || \"1px\";\n return childScoped(`--tw-divide-x-reverse: 0; border-inline-end-width: calc(${val} * var(--tw-divide-x-reverse)); border-inline-start-width: calc(${val} * calc(1 - var(--tw-divide-x-reverse)));`);\n }\n const matchX = key.match(/^x-(\\d+)$/);\n if (matchX) {\n const val = resolveThemeValue(theme.borderWidth || {}, matchX[1]);\n if (val !== undefined) return childScoped(`--tw-divide-x-reverse: 0; border-inline-end-width: calc(${val} * var(--tw-divide-x-reverse)); border-inline-start-width: calc(${val} * calc(1 - var(--tw-divide-x-reverse)));`);\n }\n\n // divide-y / divide-y-{n}\n if (key === \"y\" || key === \"y-reverse\") {\n if (key === \"y-reverse\") return \"--tw-divide-y-reverse: 1;\";\n const val = resolveThemeValue(theme.borderWidth || {}, \"DEFAULT\") || \"1px\";\n return childScoped(`--tw-divide-y-reverse: 0; border-bottom-width: calc(${val} * var(--tw-divide-y-reverse)); border-top-width: calc(${val} * calc(1 - var(--tw-divide-y-reverse)));`);\n }\n const matchY = key.match(/^y-(\\d+)$/);\n if (matchY) {\n const val = resolveThemeValue(theme.borderWidth || {}, matchY[1]);\n if (val !== undefined) return childScoped(`--tw-divide-y-reverse: 0; border-bottom-width: calc(${val} * var(--tw-divide-y-reverse)); border-top-width: calc(${val} * calc(1 - var(--tw-divide-y-reverse)));`);\n }\n\n // divide-style \u2014 applies to parent (controls style of the border lines)\n if (BORDER_STYLE_MAP[key]) return `border-style: ${BORDER_STYLE_MAP[key].replace(\"border-style: \", \"\").replace(\";\", \"\")};`;\n if (key === \"none\") return \"border-style: none;\";\n if (key === \"solid\") return \"border-style: solid;\";\n if (key === \"dashed\") return \"border-style: dashed;\";\n if (key === \"dotted\") return \"border-style: dotted;\";\n if (key === \"double\") return \"border-style: double;\";\n\n // divide-color \u2014 applies to children (sets border-color on the child borders)\n const colors = theme.colors || {};\n const color = resolveColorWithOpacity(theme.divideColor || colors, key);\n if (color !== undefined) return childScoped(`border-color: ${color};`);\n\n // divide-opacity (legacy)\n if (key.startsWith(\"opacity-\")) {\n const val = resolveThemeValue(theme.opacity || {}, key.slice(8));\n if (val !== undefined) return childScoped(`--tw-divide-opacity: ${val};`);\n }\n\n return undefined;\n}\n", "/**\n * Plugin system for Windrunner\n * Allows users to add custom utilities and variants\n */\n\n// \u2500\u2500\u2500 Plugin Registry \u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\n// Optimized: Split exact string matches (O(1) Map lookup) from regex patterns (O(n) scan)\n\nexport class PluginRegistry {\n constructor() {\n this.exactUtilities = new Map(); // O(1) lookup for exact string matches\n this.regexUtilities = []; // O(n) only for regex patterns (typically small)\n this.variants = new Map();\n }\n\n /**\n * Register a custom utility\n * @param {string|RegExp} pattern - Class name pattern (e.g., \"glass\" or /^glass-(.+)$/)\n * @param {Function|string} handler - Function that returns CSS or CSS string\n */\n addUtility(pattern, handler) {\n if (pattern instanceof RegExp) {\n this.regexUtilities.push([pattern, handler]);\n } else {\n // Exact string match - use Map for O(1) lookup\n this.exactUtilities.set(pattern, handler);\n }\n }\n\n /**\n * Register multiple utilities at once\n * @param {Object} utilities - Object mapping patterns to handlers\n */\n addUtilities(utilities) {\n Object.entries(utilities).forEach(([pattern, handler]) => {\n this.addUtility(pattern, handler);\n });\n }\n\n /**\n * Register a custom variant\n * @param {string} name - Variant name (e.g., \"parent-hover\")\n * @param {Function} handler - Function that transforms selector\n */\n addVariant(name, handler) {\n this.variants.set(name, handler);\n }\n\n /**\n * Register multiple variants at once\n * @param {Object} variants - Object mapping names to handlers\n */\n addVariants(variants) {\n Object.entries(variants).forEach(([name, handler]) => {\n this.addVariant(name, handler);\n });\n }\n\n /**\n * Check if a token matches any custom utility pattern\n * Optimized: O(1) fast path for exact matches, O(n) only for regex patterns\n * @param {string} token - The base token to match\n * @returns {Object|null} - { handler, match } or null\n */\n matchUtility(token) {\n // Fast path: O(1) exact match lookup\n if (this.exactUtilities.has(token)) {\n return {\n handler: this.exactUtilities.get(token),\n match: [token],\n };\n }\n \n // Fallback: O(n) regex pattern matching (only when exact match fails)\n for (let i = 0; i < this.regexUtilities.length; i += 1) {\n const [pattern, handler] = this.regexUtilities[i];\n const match = pattern.exec(token);\n if (match) {\n return { handler, match };\n }\n }\n \n return null;\n }\n\n /**\n * Check if a variant name matches any custom variant\n * @param {string} variantName - The variant to check\n * @returns {Function|null} - Handler function or null\n */\n matchVariant(variantName) {\n return this.variants.get(variantName) || null;\n }\n\n /**\n * Get all registered utility patterns (for debugging)\n */\n getUtilities() {\n return [\n ...Array.from(this.exactUtilities.keys()),\n ...this.regexUtilities.map(([pattern]) => pattern),\n ];\n }\n\n /**\n * Get all registered variant names (for debugging)\n */\n getVariants() {\n return Array.from(this.variants.keys());\n }\n\n /**\n * Clear all registered plugins\n */\n clear() {\n this.exactUtilities.clear();\n this.regexUtilities = [];\n this.variants.clear();\n }\n}\n\n// \u2500\u2500\u2500 Plugin Helper Functions \u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\n\n/**\n * Create a plugin definition\n * @param {Function} handler - Plugin setup function\n * @returns {Object} - Plugin object\n */\nexport function plugin(handler) {\n if (typeof handler !== 'function') {\n throw new Error('Plugin handler must be a function');\n }\n \n return {\n __isWindrunnerPlugin: true,\n handler,\n };\n}\n\n/**\n * Check if an object is a valid plugin\n * @param {*} obj - Object to check\n * @returns {boolean}\n */\nexport function isPlugin(obj) {\n return obj && obj.__isWindrunnerPlugin === true && typeof obj.handler === 'function';\n}\n\n// \u2500\u2500\u2500 Utility Builder Helpers \u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\n\n/**\n * Helper to create utilities from a simple object\n * @param {Object} definitions - { className: cssDeclaration }\n * @returns {Object} - Utilities object for addUtilities\n */\nexport function defineUtilities(definitions) {\n const utilities = {};\n \n Object.entries(definitions).forEach(([className, css]) => {\n utilities[className] = typeof css === 'string' \n ? css \n : objectToCss(css);\n });\n \n return utilities;\n}\n\n/**\n * Helper to create responsive utilities\n * @param {string} base - Base class name\n * @param {Object} values - { key: cssValue }\n * @param {Function} toDeclaration - (key, value) => cssDeclaration\n * @returns {Object} - Utilities object\n */\nexport function defineResponsiveUtilities(base, values, toDeclaration) {\n const utilities = {};\n \n Object.entries(values).forEach(([key, value]) => {\n const className = key === 'DEFAULT' ? base : `${base}-${key}`;\n utilities[className] = toDeclaration(key, value);\n });\n \n return utilities;\n}\n\n// \u2500\u2500\u2500 Internal Helpers \u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\n\nfunction objectToCss(obj) {\n return Object.entries(obj)\n .map(([prop, value]) => `${prop}: ${value};`)\n .join(' ');\n}\n\n// \u2500\u2500\u2500 Default Export \u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\n\nexport default {\n PluginRegistry,\n plugin,\n isPlugin,\n defineUtilities,\n defineResponsiveUtilities,\n};\n", "import { getConfigOptions } from \"./utils.js\";\nimport { splitByVariantDelimiter, escapeCssIdentifier, appendImportant } from \"./resolvers.js\";\nimport { buildLayoutDeclaration, buildPositionInsetDeclaration } from \"./builders/layout.js\";\nimport { buildSpacingDeclaration, buildGapDeclaration, buildDimensionDeclaration } from \"./builders/spacing.js\";\nimport { buildFlexGridDeclaration } from \"./builders/flexgrid.js\";\nimport { buildTypographyDeclaration } from \"./builders/typography.js\";\nimport { buildColorDeclaration } from \"./builders/colors.js\";\nimport { buildBorderDeclaration, buildBorderRadiusDeclaration } from \"./builders/borders.js\";\nimport {\n buildOpacityDeclaration,\n buildShadowDeclaration,\n buildInsetShadowDeclaration,\n buildInsetRingDeclaration,\n buildRingDeclaration,\n buildTextShadowDeclaration,\n buildRingOffsetDeclaration,\n} from \"./builders/effects.js\";\nimport { buildBackgroundDeclaration, buildGradientDeclaration } from \"./builders/backgrounds.js\";\nimport { buildTransformDeclaration } from \"./builders/transforms.js\";\nimport { buildFilterDeclaration } from \"./builders/filters.js\";\nimport { buildTransitionDeclaration } from \"./builders/transitions.js\";\nimport {\n buildAnimationDeclaration,\n buildMaskDeclaration,\n buildContainerQueryDeclaration,\n buildInteractivityDeclaration,\n buildZoomDeclaration,\n buildForcedColorDeclaration,\n buildBorderSpacingDeclaration,\n buildScrollSnapDeclaration,\n buildAccessibilityDeclaration,\n} from \"./builders/misc.js\";\nimport { buildBlendingDeclaration } from \"./builders/blending.js\";\nimport { buildSpaceBetweenDeclaration, buildDivideDeclaration, isChildScoped } from \"./builders/space-divide.js\";\nimport { PluginRegistry, isPlugin } from \"./plugins.js\";\n\n// \u2500\u2500\u2500 Prefix-based Router for Performance \u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\n\n/**\n * Router map: prefix \u2192 array of relevant builder functions\n * This allows us to only check relevant builders instead of all 30+ functions\n */\nconst PREFIX_ROUTER = {\n // Layout & Display\n \"block\": [buildLayoutDeclaration],\n \"inline\": [buildLayoutDeclaration],\n \"flex\": [buildFlexGridDeclaration, buildLayoutDeclaration],\n \"grid\": [buildFlexGridDeclaration, buildLayoutDeclaration],\n \"hidden\": [buildLayoutDeclaration],\n \"table\": [buildLayoutDeclaration],\n \"flow\": [buildLayoutDeclaration],\n \n // Position\n \"static\": [buildLayoutDeclaration],\n \"fixed\": [buildLayoutDeclaration],\n \"absolute\": [buildLayoutDeclaration],\n \"relative\": [buildLayoutDeclaration],\n \"sticky\": [buildLayoutDeclaration],\n \"inset\": [buildPositionInsetDeclaration, buildInsetShadowDeclaration, buildInsetRingDeclaration],\n \"top\": [buildPositionInsetDeclaration],\n \"right\": [buildPositionInsetDeclaration],\n \"bottom\": [buildPositionInsetDeclaration],\n \"left\": [buildPositionInsetDeclaration],\n \"start\": [buildPositionInsetDeclaration],\n \"end\": [buildPositionInsetDeclaration],\n \"z\": [buildLayoutDeclaration],\n \n // Spacing\n \"m\": [buildSpacingDeclaration],\n \"mx\": [buildSpacingDeclaration],\n \"my\": [buildSpacingDeclaration],\n \"mt\": [buildSpacingDeclaration],\n \"mr\": [buildSpacingDeclaration],\n \"mb\": [buildSpacingDeclaration],\n \"ml\": [buildSpacingDeclaration],\n \"ms\": [buildSpacingDeclaration],\n \"me\": [buildSpacingDeclaration],\n \"p\": [buildSpacingDeclaration],\n \"px\": [buildSpacingDeclaration],\n \"py\": [buildSpacingDeclaration],\n \"pt\": [buildSpacingDeclaration],\n \"pr\": [buildSpacingDeclaration],\n \"pb\": [buildSpacingDeclaration],\n \"pl\": [buildSpacingDeclaration],\n \"ps\": [buildSpacingDeclaration],\n \"pe\": [buildSpacingDeclaration],\n \"space\": [buildSpaceBetweenDeclaration],\n \n // Sizing\n \"w\": [buildDimensionDeclaration],\n \"h\": [buildDimensionDeclaration],\n \"min\": [buildDimensionDeclaration],\n \"max\": [buildDimensionDeclaration],\n \"size\": [buildDimensionDeclaration],\n \n // Typography\n \"text\": [buildTypographyDeclaration, buildColorDeclaration],\n \"font\": [buildTypographyDeclaration],\n \"leading\": [buildTypographyDeclaration],\n \"tracking\": [buildTypographyDeclaration],\n \"line\": [buildTypographyDeclaration],\n \"whitespace\": [buildTypographyDeclaration],\n \"break\": [buildTypographyDeclaration],\n \"hyphens\": [buildTypographyDeclaration],\n \"list\": [buildTypographyDeclaration],\n \"italic\": [buildTypographyDeclaration],\n \"underline\": [buildTypographyDeclaration],\n \"overline\": [buildTypographyDeclaration],\n \"uppercase\": [buildTypographyDeclaration],\n \"lowercase\": [buildTypographyDeclaration],\n \"capitalize\": [buildTypographyDeclaration],\n \"normal\": [buildTypographyDeclaration, buildLayoutDeclaration],\n \"truncate\": [buildTypographyDeclaration],\n \n // Colors & Backgrounds\n \"bg\": [buildBackgroundDeclaration, buildColorDeclaration, buildGradientDeclaration],\n \"from\": [buildGradientDeclaration],\n \"via\": [buildGradientDeclaration],\n \"to\": [buildGradientDeclaration],\n \"fill\": [buildColorDeclaration],\n \"stroke\": [buildColorDeclaration],\n \n // Borders\n \"border\": [buildBorderDeclaration, buildColorDeclaration],\n \"rounded\": [buildBorderRadiusDeclaration],\n \"divide\": [buildDivideDeclaration],\n \n // Effects\n \"shadow\": [buildShadowDeclaration, buildTextShadowDeclaration],\n \"opacity\": [buildOpacityDeclaration],\n \"ring\": [buildRingDeclaration, buildRingOffsetDeclaration],\n \n // Transforms\n \"scale\": [buildTransformDeclaration],\n \"rotate\": [buildTransformDeclaration],\n \"translate\": [buildTransformDeclaration],\n \"skew\": [buildTransformDeclaration],\n \"origin\": [buildTransformDeclaration],\n \"transform\": [buildTransformDeclaration],\n \n // Filters\n \"blur\": [buildFilterDeclaration],\n \"brightness\": [buildFilterDeclaration],\n \"contrast\": [buildFilterDeclaration],\n \"grayscale\": [buildFilterDeclaration],\n \"hue\": [buildFilterDeclaration],\n \"invert\": [buildFilterDeclaration],\n \"saturate\": [buildFilterDeclaration],\n \"sepia\": [buildFilterDeclaration],\n \"drop\": [buildFilterDeclaration],\n \"backdrop\": [buildFilterDeclaration],\n \n // Transitions & Animations\n \"transition\": [buildTransitionDeclaration],\n \"duration\": [buildTransitionDeclaration],\n \"ease\": [buildTransitionDeclaration],\n \"delay\": [buildTransitionDeclaration],\n \"animate\": [buildAnimationDeclaration],\n \n // Interactivity\n \"cursor\": [buildInteractivityDeclaration],\n \"pointer\": [buildInteractivityDeclaration],\n \"resize\": [buildInteractivityDeclaration],\n \"select\": [buildInteractivityDeclaration],\n \"appearance\": [buildInteractivityDeclaration],\n \"outline\": [buildColorDeclaration, buildInteractivityDeclaration],\n \"caret\": [buildColorDeclaration],\n \"accent\": [buildColorDeclaration],\n \n // Flexbox & Grid specific\n \"items\": [buildFlexGridDeclaration],\n \"justify\": [buildFlexGridDeclaration],\n \"place\": [buildFlexGridDeclaration],\n \"content\": [buildFlexGridDeclaration, buildTypographyDeclaration],\n \"self\": [buildFlexGridDeclaration],\n \"order\": [buildFlexGridDeclaration],\n \"gap\": [buildGapDeclaration],\n \"grow\": [buildFlexGridDeclaration],\n \"shrink\": [buildFlexGridDeclaration],\n \"basis\": [buildFlexGridDeclaration],\n \"cols\": [buildFlexGridDeclaration],\n \"rows\": [buildFlexGridDeclaration],\n \"col\": [buildFlexGridDeclaration],\n \"row\": [buildFlexGridDeclaration],\n \"auto\": [buildFlexGridDeclaration, buildLayoutDeclaration],\n \n // Misc\n \"overflow\": [buildLayoutDeclaration],\n \"overscroll\": [buildInteractivityDeclaration],\n \"scroll\": [buildScrollSnapDeclaration, buildInteractivityDeclaration],\n \"snap\": [buildScrollSnapDeclaration],\n \"touch\": [buildInteractivityDeclaration],\n \"will\": [buildInteractivityDeclaration],\n \"mix\": [buildBlendingDeclaration],\n \"blend\": [buildBlendingDeclaration],\n \"isolation\": [buildLayoutDeclaration],\n \"object\": [buildLayoutDeclaration],\n \"container\": [buildContainerQueryDeclaration],\n \"columns\": [buildLayoutDeclaration],\n \"aspect\": [buildLayoutDeclaration],\n \"clear\": [buildLayoutDeclaration],\n \"float\": [buildLayoutDeclaration],\n \"box\": [buildLayoutDeclaration],\n \"visible\": [buildLayoutDeclaration],\n \"invisible\": [buildLayoutDeclaration],\n \"collapse\": [buildLayoutDeclaration],\n \"mask\": [buildMaskDeclaration],\n \"forced\": [buildForcedColorDeclaration],\n \"field\": [buildInteractivityDeclaration],\n \"placeholder\": [buildColorDeclaration],\n \"sr\": [buildAccessibilityDeclaration],\n \"not\": [buildAccessibilityDeclaration],\n};\n\n/**\n * Extract the prefix from a utility class token.\n * Examples: \"bg-blue-500\" \u2192 \"bg\", \"text-xl\" \u2192 \"text\", \"mt-4\" \u2192 \"mt\"\n */\nfunction extractPrefix(token) {\n // Handle single-word utilities (flex, block, etc.)\n const dashIndex = token.indexOf(\"-\");\n if (dashIndex === -1) return token;\n \n // Handle multi-dash prefixes (min-w, max-h, etc.)\n const prefix = token.slice(0, dashIndex);\n \n // Check for two-part prefixes\n const secondDashIndex = token.indexOf(\"-\", dashIndex + 1);\n if (secondDashIndex !== -1) {\n const twoPartPrefix = token.slice(0, secondDashIndex);\n if (PREFIX_ROUTER[twoPartPrefix]) return twoPartPrefix;\n }\n \n return prefix;\n}\n\n// \u2500\u2500\u2500 Unknown Prefix Cache for Early Rejection \u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\n// Cache prefixes that are definitely not Tailwind utilities to skip checkAllBuilders\n// This prevents wasting cycles on typos, library classes, or non-Tailwind classes\n\nconst UNKNOWN_PREFIX_CACHE = new Set();\nconst MAX_UNKNOWN_CACHE_SIZE = 500; // Prevent unbounded growth\n\n/**\n * Fallback: check all builders (for utilities not in router or edge cases)\n * Optimized: Early rejection for known-invalid prefixes\n */\nfunction checkAllBuilders(baseToken, theme) {\n // Early rejection: if we've seen this prefix fail before, skip immediately\n const prefix = extractPrefix(baseToken);\n if (UNKNOWN_PREFIX_CACHE.has(prefix)) {\n return undefined;\n }\n \n const result = (\n buildLayoutDeclaration(baseToken, theme) ||\n buildPositionInsetDeclaration(baseToken, theme) ||\n buildSpacingDeclaration(baseToken, theme) ||\n buildSpaceBetweenDeclaration(baseToken, theme) ||\n buildGapDeclaration(baseToken, theme) ||\n buildDimensionDeclaration(baseToken, theme) ||\n buildFlexGridDeclaration(baseToken, theme) ||\n buildBorderDeclaration(baseToken, theme) ||\n buildBorderRadiusDeclaration(baseToken, theme) ||\n buildBorderSpacingDeclaration(baseToken, theme) ||\n buildDivideDeclaration(baseToken, theme) ||\n buildOpacityDeclaration(baseToken, theme) ||\n buildShadowDeclaration(baseToken, theme) ||\n buildInsetShadowDeclaration(baseToken, theme) ||\n buildInsetRingDeclaration(baseToken, theme) ||\n buildRingDeclaration(baseToken, theme) ||\n buildRingOffsetDeclaration(baseToken, theme) ||\n buildTextShadowDeclaration(baseToken, theme) ||\n buildTransitionDeclaration(baseToken) ||\n buildTransformDeclaration(baseToken, theme) ||\n buildFilterDeclaration(baseToken, theme) ||\n buildBackgroundDeclaration(baseToken, theme) ||\n buildGradientDeclaration(baseToken, theme) ||\n buildColorDeclaration(baseToken, theme) ||\n buildTypographyDeclaration(baseToken, theme) ||\n buildBlendingDeclaration(baseToken) ||\n buildInteractivityDeclaration(baseToken, theme) ||\n buildAnimationDeclaration(baseToken) ||\n buildMaskDeclaration(baseToken) ||\n buildContainerQueryDeclaration(baseToken) ||\n buildScrollSnapDeclaration(baseToken) ||\n buildAccessibilityDeclaration(baseToken) ||\n buildZoomDeclaration(baseToken, theme) ||\n buildForcedColorDeclaration(baseToken)\n );\n \n // If no builder matched, cache this prefix as unknown for future early rejection\n if (!result && prefix) {\n // Implement simple LRU-style eviction when cache grows too large\n if (UNKNOWN_PREFIX_CACHE.size >= MAX_UNKNOWN_CACHE_SIZE) {\n // Clear half the cache (oldest entries naturally fall off with Set iteration)\n const toRemove = Math.floor(MAX_UNKNOWN_CACHE_SIZE / 2);\n const iterator = UNKNOWN_PREFIX_CACHE.values();\n for (let i = 0; i < toRemove; i += 1) {\n const value = iterator.next().value;\n if (value) UNKNOWN_PREFIX_CACHE.delete(value);\n }\n }\n UNKNOWN_PREFIX_CACHE.add(prefix);\n }\n \n return result;\n}\n\n// \u2500\u2500\u2500 Master compile dispatcher \u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\n\nfunction compileBaseToken(baseToken, theme, pluginRegistry) {\n // Check custom utilities first (plugins have priority)\n if (pluginRegistry) {\n const pluginMatch = pluginRegistry.matchUtility(baseToken);\n if (pluginMatch) {\n const { handler, match } = pluginMatch;\n try {\n // Handler can be a function or string\n if (typeof handler === 'function') {\n const result = handler(match, theme);\n if (result) return result;\n } else if (typeof handler === 'string') {\n return handler;\n }\n } catch (error) {\n console.warn(`[Windrunner] Plugin utility handler error for \"${baseToken}\":`, error);\n }\n }\n }\n \n // Fast path: use prefix router to only check relevant builders\n const prefix = extractPrefix(baseToken);\n const builders = PREFIX_ROUTER[prefix];\n \n if (builders) {\n for (let i = 0; i < builders.length; i += 1) {\n const result = builders[i](baseToken, theme);\n if (result) return result;\n }\n }\n \n // Fallback: check all builders for edge cases or utilities not in router\n return checkAllBuilders(baseToken, theme);\n}\n\n// \u2500\u2500\u2500 Variant & selector logic \u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\n\n// \u2500\u2500\u2500 Variant Map for O(1) lookup \u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\n\n/**\n * Built-in variants mapped to selector transform functions.\n * Using a Map for O(1) lookup instead of a switch statement.\n * @type {Map<string, (selector: string) => string>}\n */\nconst VARIANT_MAP = new Map([\n // Dark mode\n [\"dark\", (s) => `.dark ${s}`],\n // Pseudo-classes \u2013 interactive\n [\"hover\", (s) => `${s}:hover`],\n [\"focus\", (s) => `${s}:focus`],\n [\"focus-visible\", (s) => `${s}:focus-visible`],\n [\"focus-within\", (s) => `${s}:focus-within`],\n [\"active\", (s) => `${s}:active`],\n [\"visited\", (s) => `${s}:visited`],\n [\"disabled\", (s) => `${s}:disabled`],\n [\"checked\", (s) => `${s}:checked`],\n [\"indeterminate\", (s) => `${s}:indeterminate`],\n [\"required\", (s) => `${s}:required`],\n [\"valid\", (s) => `${s}:valid`],\n [\"invalid\", (s) => `${s}:invalid`],\n [\"target\", (s) => `${s}:target`],\n [\"enabled\", (s) => `${s}:enabled`],\n [\"default\", (s) => `${s}:default`],\n [\"optional\", (s) => `${s}:optional`],\n [\"user-valid\", (s) => `${s}:user-valid`],\n [\"user-invalid\", (s) => `${s}:user-invalid`],\n [\"in-range\", (s) => `${s}:in-range`],\n [\"out-of-range\", (s) => `${s}:out-of-range`],\n [\"placeholder-shown\", (s) => `${s}:placeholder-shown`],\n [\"autofill\", (s) => `${s}:autofill`],\n [\"details-content\", (s) => `${s}:details-content`],\n [\"read-only\", (s) => `${s}:read-only`],\n [\"open\", (s) => `${s}[open]`],\n // Pseudo-elements\n [\"placeholder\", (s) => `${s}::placeholder`],\n [\"backdrop\", (s) => `${s}::backdrop`],\n [\"before\", (s) => `${s}::before`],\n [\"after\", (s) => `${s}::after`],\n [\"first-letter\", (s) => `${s}::first-letter`],\n [\"first-line\", (s) => `${s}::first-line`],\n [\"marker\", (s) => `${s}::marker`],\n [\"selection\", (s) => `${s}::selection`],\n [\"file\", (s) => `${s}::file-selector-button`],\n // Structural pseudo-classes\n [\"first\", (s) => `${s}:first-child`],\n [\"last\", (s) => `${s}:last-child`],\n [\"odd\", (s) => `${s}:nth-child(odd)`],\n [\"even\", (s) => `${s}:nth-child(even)`],\n [\"first-of-type\", (s) => `${s}:first-of-type`],\n [\"last-of-type\", (s) => `${s}:last-of-type`],\n [\"only\", (s) => `${s}:only-child`],\n [\"only-of-type\", (s) => `${s}:only-of-type`],\n [\"empty\", (s) => `${s}:empty`],\n // Group & peer variants\n [\"group-hover\", (s) => `.group:hover ${s}`],\n [\"group-focus\", (s) => `.group:focus ${s}`],\n [\"group-active\", (s) => `.group:active ${s}`],\n [\"peer-hover\", (s) => `.peer:hover ~ ${s}`],\n [\"peer-focus\", (s) => `.peer:focus ~ ${s}`],\n [\"peer-checked\", (s) => `.peer:checked ~ ${s}`],\n [\"peer-disabled\", (s) => `.peer:disabled ~ ${s}`],\n // Negation variants\n [\"not-hover\", (s) => `${s}:not(:hover)`],\n [\"not-focus\", (s) => `${s}:not(:focus)`],\n [\"not-disabled\", (s) => `${s}:not(:disabled)`],\n [\"not-checked\", (s) => `${s}:not(:checked)`],\n // In-* variants (group-based)\n [\"in-hover\", (s) => `.group:hover ${s}`],\n [\"in-focus\", (s) => `.group:focus ${s}`],\n]);\n\nfunction applyVariants(selector, variants, pluginRegistry) {\n let currentSelector = selector;\n\n for (const variant of variants) {\n // Check custom variants first (plugins have priority)\n if (pluginRegistry) {\n const customHandler = pluginRegistry.matchVariant(variant);\n if (customHandler) {\n try {\n const result = customHandler(currentSelector);\n if (result) {\n currentSelector = result;\n continue;\n }\n } catch (error) {\n console.warn(`[Windrunner] Plugin variant handler error for \"${variant}\":`, error);\n }\n }\n }\n\n // Built-in variant lookup (O(1) via Map)\n const builtinHandler = VARIANT_MAP.get(variant);\n if (builtinHandler) {\n currentSelector = builtinHandler(currentSelector);\n } else {\n return undefined;\n }\n }\n\n return currentSelector;\n}\n\n\n// \u2500\u2500\u2500 Runtime context \u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\n\nexport function resolveRuntimeContext(options = {}) {\n const config = getConfigOptions(options, []);\n const pluginRegistry = new PluginRegistry();\n \n // Load plugins from options\n if (options.plugins && Array.isArray(options.plugins)) {\n options.plugins.forEach(pluginDef => {\n if (isPlugin(pluginDef)) {\n try {\n pluginDef.handler({\n addUtility: (pattern, handler) => pluginRegistry.addUtility(pattern, handler),\n addUtilities: (utilities) => pluginRegistry.addUtilities(utilities),\n addVariant: (name, handler) => pluginRegistry.addVariant(name, handler),\n addVariants: (variants) => pluginRegistry.addVariants(variants),\n theme: (key) => {\n if (!key) return config.theme || {};\n const keys = key.split('.');\n let value = config.theme || {};\n for (const k of keys) {\n value = value[k];\n if (value === undefined) break;\n }\n return value;\n },\n config: () => config,\n });\n } catch (error) {\n console.error('[Windrunner] Plugin initialization error:', error);\n }\n }\n });\n }\n \n return {\n config,\n theme: config.theme || {},\n screens: (config.theme && config.theme.screens) || config.screens || {},\n containers: (config.theme && config.theme.containers) || config.containers || {},\n plugins: pluginRegistry,\n };\n}\n\nexport function getBaseTailwindOptions(options = {}) {\n const { id, autoStart, compatMode, compatStyleId, compatGenerateCss, ...tailwindOptions } = options;\n return tailwindOptions;\n}\n\n// \u2500\u2500\u2500 Parse Cache for Performance \u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\n\n/**\n * Cache for parsed class structures to avoid re-parsing the same class names.\n * Key: className + screens/containers hash\n * Value: parsed class object\n */\nconst parseCache = new Map();\nconst PARSE_CACHE_MAX_SIZE = 2000; // Limit cache size to prevent memory bloat\n\n/**\n * Generate a simple cache key from screens and containers config.\n * Most apps use a single config, so this will be the same for all classes.\n */\nfunction getConfigHash(screens, containers) {\n // For performance, we assume most calls use the same config\n // Just check if both are empty objects (common case)\n const screensEmpty = !screens || Object.keys(screens).length === 0;\n const containersEmpty = !containers || Object.keys(containers).length === 0;\n \n if (screensEmpty && containersEmpty) return \"default\";\n \n // For non-empty configs, create a simple hash\n return `${Object.keys(screens || {}).join(\",\")}|${Object.keys(containers || {}).join(\",\")}`;\n}\n\n// \u2500\u2500\u2500 Class parser \u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\n\n/**\n * Parse a runtime class token into its variants, breakpoint, and base utility.\n * Supports responsive prefixes (md:, lg:), container breakpoints (@sm:, @md:),\n * starting: variant, and the ! important prefix.\n *\n * @param {string} className\n * @param {Record<string, string>} screens\n * @param {Record<string, string>} containers\n * @returns {{ original: string, baseToken: string, variants: string[], breakpoint: string|null, containerBreakpoint: string|null, important: boolean, starting: boolean } | null}\n */\nexport function parseClass(className, screens = {}, containers = {}) {\n if (typeof className !== \"string\") return null;\n const token = className.trim();\n if (!token) return null;\n\n // Check cache first\n const configHash = getConfigHash(screens, containers);\n const cacheKey = `${token}:${configHash}`;\n \n if (parseCache.has(cacheKey)) {\n return parseCache.get(cacheKey);\n }\n\n // Parse the class\n const important = token.startsWith(\"!\");\n const normalized = important ? token.slice(1) : token;\n const parts = splitByVariantDelimiter(normalized);\n if (parts.length === 0) return null;\n\n const baseToken = parts[parts.length - 1];\n const variants = [];\n let breakpoint = null;\n let containerBreakpoint = null;\n let starting = false;\n\n for (let i = 0; i < parts.length - 1; i += 1) {\n const part = parts[i];\n\n if (part === \"starting\") { starting = true; continue; }\n\n if (part.startsWith(\"@\")) {\n const cKey = part.slice(1);\n if (!containerBreakpoint && containers[cKey]) { containerBreakpoint = cKey; continue; }\n }\n\n if (!breakpoint && screens[part]) { breakpoint = part; continue; }\n\n variants.push(part);\n }\n\n const result = { original: token, baseToken, variants, breakpoint, containerBreakpoint, important, starting };\n \n // Store in cache with size limit\n if (parseCache.size >= PARSE_CACHE_MAX_SIZE) {\n // Remove oldest entry (first item in Map)\n const firstKey = parseCache.keys().next().value;\n parseCache.delete(firstKey);\n }\n parseCache.set(cacheKey, result);\n \n return result;\n}\n\n// \u2500\u2500\u2500 Core compile function \u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\n\nexport function compileRuntimeClassNameWithContext(className, context) {\n const parsed = parseClass(className, context.screens, context.containers);\n if (!parsed) return \"\";\n\n const declaration = compileBaseToken(parsed.baseToken, context.theme, context.plugins);\n if (!declaration) return \"\";\n\n const selector = `.${escapeCssIdentifier(parsed.original)}`;\n const variantSelector = applyVariants(selector, parsed.variants, context.plugins);\n if (!variantSelector) return \"\";\n\n const finalDeclaration = appendImportant(\n isChildScoped(declaration) ? declaration.declaration : declaration,\n parsed.important,\n );\n const scopedSelector = isChildScoped(declaration)\n ? `${variantSelector} > :not(:first-child)`\n : variantSelector;\n const ruleBody = `${scopedSelector} { ${finalDeclaration} }`;\n\n let result = ruleBody;\n if (parsed.breakpoint) {\n result = `@media (min-width: ${context.screens[parsed.breakpoint]}) { ${ruleBody} }`;\n } else if (parsed.containerBreakpoint) {\n result = `@container (min-width: ${context.containers[parsed.containerBreakpoint]}) { ${ruleBody} }`;\n }\n\n if (parsed.starting) {\n return `@starting-style { ${result} }`;\n }\n\n return result;\n}\n\n// \u2500\u2500\u2500 Public compileClass API (Node.js + browser) \u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\n\n/**\n * Compile a single class name to a CSS rule string.\n * Works in Node.js too (no DOM dependency).\n *\n * @param {string} className\n * @param {object} options\n * @returns {string}\n */\nexport function compileClass(className, options = {}) {\n return compileRuntimeClassNameWithContext(className, resolveRuntimeContext(options));\n}\n\n// \u2500\u2500\u2500 SSR / Critical CSS Utility \u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\n\n/**\n * Compile multiple class names into a single CSS string for SSR / critical CSS.\n * This is useful for generating CSS at build time or in server-side rendering.\n *\n * @param {string | string[]} classNames - Single class string or array of class names\n * @param {object} options - Windrunner configuration options\n * @returns {string} - Combined CSS rules ready for injection into <style> tag\n *\n * @example\n * // Server-side rendering\n * import { compileCriticalCss } from 'windrunner';\n * \n * const criticalCss = compileCriticalCss([\n * 'flex items-center justify-between',\n * 'text-xl font-bold text-slate-900',\n * 'bg-white shadow-lg rounded-xl p-6'\n * ]);\n * \n * // Inject into HTML\n * const html = `\n * <style>${criticalCss}</style>\n * <div class=\"flex items-center justify-between\">...</div>\n * `;\n *\n * @example\n * // Static site generation\n * const allClasses = extractClassesFromTemplates('./src');\n * const criticalCss = compileCriticalCss(allClasses, {\n * theme: { colors: { brand: '#ff0000' } }\n * });\n * fs.writeFileSync('dist/critical.css', criticalCss);\n */\nexport function compileCriticalCss(classNames, options = {}) {\n // Normalize input to array\n const classList = typeof classNames === 'string'\n ? classNames.split(/\\s+/).filter(Boolean)\n : Array.isArray(classNames)\n ? classNames.flatMap(str => \n typeof str === 'string' ? str.split(/\\s+/).filter(Boolean) : []\n )\n : [];\n\n // Create compilation context once\n const context = resolveRuntimeContext(options);\n\n // Compile all classes and deduplicate\n const cssRules = new Set();\n \n classList.forEach((className) => {\n const css = compileRuntimeClassNameWithContext(className, context);\n if (css) {\n cssRules.add(css);\n }\n });\n\n // Combine all rules with newlines for readability\n return Array.from(cssRules).join('\\n');\n}\n\n/**\n * Extract unique class names from HTML string.\n * Utility helper for compileCriticalCss.\n *\n * @param {string} html - HTML content to extract classes from\n * @returns {string[]} - Array of unique class names\n *\n * @example\n * import { extractClassNames, compileCriticalCss } from 'windrunner';\n * \n * const html = await fs.readFile('dist/index.html', 'utf-8');\n * const classes = extractClassNames(html);\n * const css = compileCriticalCss(classes);\n */\nexport function extractClassNames(html) {\n const classSet = new Set();\n \n // Match class=\"...\" and className=\"...\" attributes\n const classRegex = /class(?:Name)?=[\"']([^\"']+)[\"']/g;\n let match;\n \n while ((match = classRegex.exec(html)) !== null) {\n const classes = match[1].split(/\\s+/).filter(Boolean);\n classes.forEach(cls => classSet.add(cls));\n }\n \n return Array.from(classSet);\n}\n", "/**\n * Windrunner Preflight \u2014 browser CSS reset based on Tailwind's preflight.\n * Injected once when windrunner initializes (preflight: true, default).\n */\nconst preflight = `\n*,::before,::after{box-sizing:border-box;border-width:0;border-style:solid;border-color:currentColor}\nhtml{line-height:1.5;-webkit-text-size-adjust:100%;-moz-tab-size:4;tab-size:4;font-family:\"Inter\",ui-sans-serif,system-ui,sans-serif;font-feature-settings:normal;font-variation-settings:normal;-webkit-tap-highlight-color:transparent}\nbody{margin:0;line-height:inherit}\nhr{height:0;color:inherit;border-top-width:1px}\nabbr:where([title]){text-decoration:underline dotted}\nh1,h2,h3,h4,h5,h6{font-size:inherit;font-weight:inherit}\na{color:inherit;text-decoration:inherit}\nb,strong{font-weight:bolder}\ncode,kbd,samp,pre{font-family:ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,\"Liberation Mono\",\"Courier New\",monospace;font-feature-settings:normal;font-variation-settings:normal;font-size:1em}\nsmall{font-size:80%}\nsub,sup{font-size:75%;line-height:0;position:relative;vertical-align:baseline}\nsub{bottom:-0.25em}\nsup{top:-0.5em}\ntable{text-indent:0;border-color:inherit;border-collapse:collapse}\nbutton,input,optgroup,select,textarea{font-family:inherit;font-feature-settings:inherit;font-variation-settings:inherit;font-size:100%;font-weight:inherit;line-height:inherit;letter-spacing:inherit;color:inherit;margin:0;padding:0}\nbutton,select{text-transform:none}\nbutton,input:where([type=button]),input:where([type=reset]),input:where([type=submit]){-webkit-appearance:button;background-color:transparent;background-image:none}\n:-moz-focusring{outline:auto}\n:-moz-ui-invalid{box-shadow:none}\nprogress{vertical-align:baseline}\n::-webkit-inner-spin-button,::-webkit-outer-spin-button{height:auto}\n[type=search]{-webkit-appearance:textfield;outline-offset:-2px}\n::-webkit-search-decoration{-webkit-appearance:none}\n::-webkit-file-upload-button{-webkit-appearance:button;font:inherit}\nsummary{display:list-item}\nblockquote,dl,dd,h1,h2,h3,h4,h5,h6,hr,figure,p,pre{margin:0}\nfieldset{margin:0;padding:0}\nlegend{padding:0}\nol,ul,menu{list-style:none;margin:0;padding:0}\ndialog{padding:0}\ntextarea{resize:vertical}\ninput::placeholder,textarea::placeholder{opacity:1;color:#9ca3af}\nbutton,[role=button]{cursor:pointer}\n:disabled{cursor:default}\nimg,svg,video,canvas,audio,iframe,embed,object{display:block;vertical-align:middle}\nimg,video{max-width:100%;height:auto}\n[hidden]:where(:not([hidden=until-found])){display:none}\n`;\n\nexport default preflight;\n", "import {\n resolveRuntimeContext,\n getBaseTailwindOptions,\n compileRuntimeClassNameWithContext,\n parseClass,\n} from \"./compiler.js\";\nimport preflightCss from \"./preflight.js\";\n\n// \u2500\u2500\u2500 DOM helpers \u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\n\nfunction injectPreflight(styleId) {\n if (typeof document !== \"object\") return;\n const prefId = `${styleId}-preflight`;\n const escapedId = prefId.replace(/\\\\/g, \"\\\\\\\\\").replace(/\"/g, '\\\\\"');\n if (document.querySelector(`style[data-tailwind-preflight=\"${escapedId}\"]`)) return;\n const style = document.createElement(\"style\");\n style.setAttribute(\"type\", \"text/css\");\n style.setAttribute(\"data-tailwind-preflight\", prefId);\n style.appendChild(document.createTextNode(preflightCss));\n const head = document.head || document.getElementsByTagName(\"head\")[0];\n // insert before any other styles so JIT rules take priority\n head.insertBefore(style, head.firstChild);\n}\n\nfunction findOrCreateRuntimeStyle(id) {\n if (typeof document !== \"object\") return null;\n\n const escapedId = String(id).replace(/\\\\/g, \"\\\\\\\\\").replace(/\"/g, '\\\\\"');\n const existing = document.querySelector(`style[data-tailwind-runtime=\"${escapedId}\"]`);\n if (existing) return existing;\n\n const style = document.createElement(\"style\");\n style.setAttribute(\"type\", \"text/css\");\n style.setAttribute(\"data-tailwind-runtime\", id);\n const head = document.head || document.getElementsByTagName(\"head\")[0];\n head.appendChild(style);\n return style;\n}\n\n// \u2500\u2500\u2500 Runtime factory \u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\n\n/**\n * Create a windrunner JIT runtime instance with full manual control.\n *\n * @param {{ id?: string, autoStart?: boolean, compatMode?: string, theme?: object } & object} options\n */\nexport function createWindrunner(options = {}) {\n const styleId = options.id || \"tailwind-runtime-css\";\n const preflight = options.preflight !== false; // default: true\n const compatMode = options.compatMode || \"none\";\n const compatStyleId = options.compatStyleId || `${styleId}-full`;\n const maxCacheSize = options.maxCacheSize || 10000;\n const onError = typeof options.onError === \"function\" ? options.onError : null;\n const onCompile = typeof options.onCompile === \"function\" ? options.onCompile : null;\n const tailwindOptions = getBaseTailwindOptions(options);\n const context = resolveRuntimeContext(tailwindOptions);\n\n const cache = new Map();\n const insertedRules = new Set();\n const pendingElements = new Set();\n\n let observer = null;\n let scheduled = false;\n let styleElement = null;\n let domReadyHandler = null;\n let compatLoaded = false;\n\n const loadExistingRules = (style) => {\n if (!style || !style.sheet || insertedRules.size > 0) return;\n try {\n const rules = style.sheet.cssRules || [];\n for (let i = 0; i < rules.length; i += 1) {\n insertedRules.add(rules[i].cssText);\n }\n } catch {\n // ignore unavailable stylesheet access\n }\n };\n\n // \u2500\u2500 compat fallback \u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\n\n const ensureCompatStyle = () => {\n if (compatMode !== \"full\") return false;\n if (compatLoaded) return true;\n if (typeof document !== \"object\") return false;\n if (typeof options.compatGenerateCss !== \"function\") return false;\n\n const escapedCompatId = String(compatStyleId).replace(/\\\\/g, \"\\\\\\\\\").replace(/\"/g, '\\\\\"');\n const existing = document.querySelector(`style[data-tailwind-runtime-compat=\"${escapedCompatId}\"]`);\n if (existing) { compatLoaded = true; return true; }\n\n const cssText = options.compatGenerateCss(tailwindOptions);\n if (typeof cssText !== \"string\" || !cssText.trim()) return false;\n\n const style = document.createElement(\"style\");\n style.setAttribute(\"type\", \"text/css\");\n style.setAttribute(\"data-tailwind-runtime-compat\", compatStyleId);\n style.appendChild(document.createTextNode(cssText));\n const head = document.head || document.getElementsByTagName(\"head\")[0];\n head.appendChild(style);\n compatLoaded = true;\n return true;\n };\n\n // \u2500\u2500 compile + inject \u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\n\n const compileWithCache = (className) => {\n if (cache.has(className)) return cache.get(className);\n const cssRule = compileRuntimeClassNameWithContext(className, context);\n // LRU-style eviction: remove oldest entry when cache exceeds max size\n if (cache.size >= maxCacheSize) {\n const firstKey = cache.keys().next().value;\n cache.delete(firstKey);\n }\n cache.set(className, cssRule);\n return cssRule;\n };\n\n const insertRule = (rule) => {\n if (!rule || insertedRules.has(rule)) return;\n if (typeof document !== \"object\") return;\n if (!styleElement) styleElement = findOrCreateRuntimeStyle(styleId);\n if (styleElement) loadExistingRules(styleElement);\n if (insertedRules.has(rule)) return;\n insertedRules.add(rule);\n if (!styleElement || !styleElement.sheet) return;\n try {\n styleElement.sheet.insertRule(rule, styleElement.sheet.cssRules.length);\n } catch {\n styleElement.appendChild(document.createTextNode(`${rule}\\n`));\n }\n };\n\n // \u2500\u2500 public methods \u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\n\n const processClassName = (className) => {\n const cssRule = compileWithCache(className);\n if (!cssRule) {\n ensureCompatStyle();\n // Enhanced error callback with context\n if (onError) {\n const parsed = parseClass(className, context.screens, context.containers);\n const errorContext = {\n reason: parsed ? 'unknown-utility' : 'parse-error',\n baseToken: parsed ? parsed.baseToken : className,\n variants: parsed ? parsed.variants : undefined,\n details: parsed \n ? `Could not compile utility \"${parsed.baseToken}\"${parsed.variants.length ? ` with variants: ${parsed.variants.join(', ')}` : ''}`\n : `Failed to parse class name \"${className}\"`,\n };\n onError(className, errorContext);\n }\n } else {\n insertRule(cssRule);\n if (onCompile) onCompile(className, cssRule);\n }\n return cssRule;\n };\n\n const processElement = (element) => {\n if (!element || !element.classList) return;\n element.classList.forEach((className) => processClassName(className));\n };\n\n const processElementTree = (element) => {\n if (!element || element.nodeType !== 1) return;\n processElement(element);\n const children = element.querySelectorAll ? element.querySelectorAll(\"[class]\") : [];\n children.forEach((child) => processElement(child));\n };\n\n const processClassList = (classList) => {\n if (!classList) return [];\n\n const values = typeof classList === \"string\"\n ? classList.split(/\\s+/)\n : Array.isArray(classList)\n ? classList\n : typeof classList === \"object\" && typeof classList.forEach === \"function\"\n ? Array.from(classList)\n : [];\n\n return values\n .filter((item) => typeof item === \"string\" && item.length > 0)\n .map((item) => processClassName(item))\n .filter(Boolean);\n };\n\n const scan = (root = document) => {\n if (typeof document !== \"object\" || !root) return;\n \n // Track scan stats\n const startTime = typeof performance !== \"undefined\" ? performance.now() : Date.now();\n const scannedElements = new Set();\n const foundClasses = new Set();\n const initialRuleCount = insertedRules.size;\n \n // Scan root element\n if (root.nodeType === 1) {\n processElementTree(root);\n if (root.classList) {\n scannedElements.add(root);\n root.classList.forEach(cls => foundClasses.add(cls));\n }\n }\n \n // Scan child elements\n const elements = root.querySelectorAll ? root.querySelectorAll(\"[class]\") : [];\n elements.forEach((element) => {\n processElement(element);\n scannedElements.add(element);\n if (element.classList) {\n element.classList.forEach(cls => foundClasses.add(cls));\n }\n });\n \n // Calculate stats and fire callback\n if (typeof options.onScanComplete === \"function\") {\n const endTime = typeof performance !== \"undefined\" ? performance.now() : Date.now();\n const stats = {\n elementCount: scannedElements.size,\n classCount: foundClasses.size,\n ruleCount: insertedRules.size - initialRuleCount,\n duration: endTime - startTime,\n };\n \n // Fire callback asynchronously to not block rendering\n if (typeof requestAnimationFrame === \"function\") {\n requestAnimationFrame(() => options.onScanComplete(stats));\n } else {\n setTimeout(() => options.onScanComplete(stats), 0);\n }\n }\n };\n\n const flushQueue = () => {\n scheduled = false;\n pendingElements.forEach((element) => processElementTree(element));\n pendingElements.clear();\n };\n\n const flush = () => {\n if (pendingElements.size > 0) flushQueue();\n };\n\n const scheduleFlush = () => {\n if (scheduled) return;\n scheduled = true;\n if (typeof requestAnimationFrame === \"function\") {\n requestAnimationFrame(flushQueue);\n } else {\n setTimeout(flushQueue, 0);\n }\n };\n\n const observe = (root = document.documentElement) => {\n if (typeof MutationObserver !== \"function\" || !root) return;\n if (observer) observer.disconnect();\n\n observer = new MutationObserver((mutations) => {\n mutations.forEach((mutation) => {\n if (mutation.type === \"attributes\" && mutation.target) {\n pendingElements.add(mutation.target);\n }\n mutation.addedNodes.forEach((node) => {\n if (node.nodeType === 1) pendingElements.add(node);\n });\n });\n scheduleFlush();\n });\n\n // Allow users to customize MutationObserver config\n // Default is aggressive (observe everything), but users can tune for performance\n const observerConfig = options.observerOptions || {};\n const finalConfig = {\n childList: observerConfig.childList !== false, // default: true\n subtree: observerConfig.subtree !== false, // default: true\n attributes: observerConfig.attributes !== false, // default: true\n attributeFilter: observerConfig.attributeFilter || [\"class\"], // default: [\"class\"]\n };\n\n observer.observe(root, finalConfig);\n };\n\n const disconnect = () => {\n pendingElements.clear();\n scheduled = false;\n if (observer) { observer.disconnect(); observer = null; }\n if (domReadyHandler && typeof document === \"object\") {\n document.removeEventListener(\"DOMContentLoaded\", domReadyHandler);\n domReadyHandler = null;\n }\n };\n\n const start = () => {\n if (typeof document !== \"object\") return;\n if (preflight) injectPreflight(styleId);\n\n const fireReady = () => {\n if (typeof options.onReady !== \"function\") return;\n if (typeof requestAnimationFrame === \"function\") {\n requestAnimationFrame(() => requestAnimationFrame(() => options.onReady()));\n } else {\n setTimeout(() => options.onReady(), 16);\n }\n };\n\n const runStart = () => {\n scan();\n observe();\n fireReady();\n };\n\n if (document.readyState === \"loading\") {\n if (!domReadyHandler) {\n domReadyHandler = () => { domReadyHandler = null; runStart(); };\n document.addEventListener(\"DOMContentLoaded\", domReadyHandler, { once: true });\n }\n return;\n }\n runStart();\n };\n\n const clearCache = () => {\n cache.clear();\n };\n\n const getStats = () => ({\n cacheSize: cache.size,\n insertedRuleCount: insertedRules.size,\n pendingElementCount: pendingElements.size,\n isObserving: observer !== null,\n isCompatLoaded: compatLoaded,\n });\n\n return {\n processClassName,\n processClassList,\n processElement,\n scan,\n observe,\n flush,\n start,\n disconnect,\n clearCache,\n getStats,\n isCompatLoaded: () => compatLoaded,\n getCacheSize: () => cache.size,\n getInsertedRuleCount: () => insertedRules.size,\n };\n}\n\n// \u2500\u2500\u2500 Default export: auto-start windrunner \u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\n\n/**\n * Create and optionally auto-start a windrunner runtime.\n * Drop-in for browser usage: just call windrunner({ autoStart: true }).\n *\n * @param {{ id?: string, autoStart?: boolean, theme?: object } & object} options\n */\nexport default function windrunner(options = {}) {\n const runtime = createWindrunner(options);\n if (typeof window === \"object\" && options.autoStart !== false) {\n runtime.start();\n }\n return runtime;\n}\n"],
|
|
5
|
-
"mappings": "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AAK;AAAA,MACL,KAAK;AAAA,MACL,KAAK;AAAA,MACL,KAAK;AAAA,MACL,KAAK;AAAA,MACL,KAAK;AAAA,MACL,KAAK;AAAA,MACL,KAAK;AAAA,MACL,KAAK;AAAA,IACP;AAAA,IACA,MAAM;AAAA,MACJ,IAAK;AAAA,MACL,KAAK;AAAA,MACL,KAAK;AAAA,MACL,KAAK;AAAA,MACL,KAAK;AAAA,MACL,KAAK;AAAA,MACL,KAAK;AAAA,MACL,KAAK;AAAA,MACL,KAAK;AAAA,MACL,KAAK;AAAA,MACL,KAAK;AAAA,IACP;AAAA,IACA,MAAM;AAAA,MACJ,IAAK;AAAA,MACL,KAAK;AAAA,MACL,KAAK;AAAA,MACL,KAAK;AAAA,MACL,KAAK;AAAA,MACL,KAAK;AAAA,MACL,KAAK;AAAA,MACL,KAAK;AAAA,MACL,KAAK;AAAA,MACL,KAAK;AAAA,MACL,KAAK;AAAA,IACP;AAAA,IACA,OAAO;AAAA,MACL,IAAK;AAAA,MACL,KAAK;AAAA,MACL,KAAK;AAAA,MACL,KAAK;AAAA,MACL,KAAK;AAAA,MACL,KAAK;AAAA,MACL,KAAK;AAAA,MACL,KAAK;AAAA,MACL,KAAK;AAAA,MACL,KAAK;AAAA,MACL,KAAK;AAAA,IACP;AAAA,IACA,OAAO;AAAA,MACL,IAAK;AAAA,MACL,KAAK;AAAA,MACL,KAAK;AAAA,MACL,KAAK;AAAA,MACL,KAAK;AAAA,MACL,KAAK;AAAA,MACL,KAAK;AAAA,MACL,KAAK;AAAA,MACL,KAAK;AAAA,MACL,KAAK;AAAA,MACL,KAAK;AAAA,IACP;AAAA,IACA,MAAM;AAAA,MACJ,IAAK;AAAA,MACL,KAAK;AAAA,MACL,KAAK;AAAA,MACL,KAAK;AAAA,MACL,KAAK;AAAA,MACL,KAAK;AAAA,MACL,KAAK;AAAA,MACL,KAAK;AAAA,MACL,KAAK;AAAA,MACL,KAAK;AAAA,MACL,KAAK;AAAA,IACP;AAAA,IACA,OAAO;AAAA,MACL,IAAK;AAAA,MACL,KAAK;AAAA,MACL,KAAK;AAAA,MACL,KAAK;AAAA,MACL,KAAK;AAAA,MACL,KAAK;AAAA,MACL,K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",
|
|
4
|
+
"sourcesContent": ["export { default as windrunner, createWindrunner } from \"./runtime.js\";\nexport { parseClass, compileClass, compileCriticalCss, extractClassNames } from \"./compiler.js\";\nexport { plugin, defineUtilities, defineResponsiveUtilities } from \"./plugins.js\";\n", "const theme = {\n accentColor: ({ theme }) => ({\n ...theme(\"colors\"),\n auto: \"auto\",\n }),\n aspectRatio: {\n auto: \"auto\",\n square: \"1 / 1\",\n video: \"16 / 9\",\n },\n backdropBlur: ({ theme }) => theme(\"blur\"),\n backdropBrightness: ({ theme }) => theme(\"brightness\"),\n backdropContrast: ({ theme }) => theme(\"contrast\"),\n backdropGrayscale: ({ theme }) => theme(\"grayscale\"),\n backdropHueRotate: ({ theme }) => theme(\"hueRotate\"),\n backdropInvert: ({ theme }) => theme(\"invert\"),\n backdropOpacity: ({ theme }) => theme(\"opacity\"),\n backdropSaturate: ({ theme }) => theme(\"saturate\"),\n backdropSepia: ({ theme }) => theme(\"sepia\"),\n backgroundColor: ({ theme }) => theme(\"colors\"),\n backgroundImage: {\n none: \"none\",\n \"gradient-to-t\": \"linear-gradient(to top, var(--tw-gradient-stops))\",\n \"gradient-to-tr\": \"linear-gradient(to top right, var(--tw-gradient-stops))\",\n \"gradient-to-r\": \"linear-gradient(to right, var(--tw-gradient-stops))\",\n \"gradient-to-br\": \"linear-gradient(to bottom right, var(--tw-gradient-stops))\",\n \"gradient-to-b\": \"linear-gradient(to bottom, var(--tw-gradient-stops))\",\n \"gradient-to-bl\": \"linear-gradient(to bottom left, var(--tw-gradient-stops))\",\n \"gradient-to-l\": \"linear-gradient(to left, var(--tw-gradient-stops))\",\n \"gradient-to-tl\": \"linear-gradient(to top left, var(--tw-gradient-stops))\",\n },\n backgroundPosition: {\n bottom: \"bottom\",\n center: \"center\",\n left: \"left\",\n \"left-bottom\": \"left bottom\",\n \"left-top\": \"left top\",\n right: \"right\",\n \"right-bottom\": \"right bottom\",\n \"right-top\": \"right top\",\n top: \"top\",\n },\n backgroundSize: {\n auto: \"auto\",\n cover: \"cover\",\n contain: \"contain\",\n },\n blur: {\n 0: \"0\",\n none: \"0\",\n sm: \"4px\",\n DEFAULT: \"8px\",\n md: \"12px\",\n lg: \"16px\",\n xl: \"24px\",\n \"2xl\": \"40px\",\n \"3xl\": \"64px\",\n },\n borderColor: ({ theme }) => ({\n ...theme(\"colors\"),\n DEFAULT: \"#e5e7eb\",\n }),\n borderRadius: {\n none: \"0px\",\n sm: \"0.125rem\",\n DEFAULT: \"0.25rem\",\n md: \"0.375rem\",\n lg: \"0.5rem\",\n xl: \"0.75rem\",\n \"2xl\": \"1rem\",\n \"3xl\": \"1.5rem\",\n full: \"9999px\",\n },\n borderSpacing: ({ theme }) => ({\n ...theme(\"spacing\"),\n }),\n borderWidth: {\n DEFAULT: \"1px\",\n 0: \"0px\",\n 2: \"2px\",\n 4: \"4px\",\n 8: \"8px\",\n },\n boxShadow: {\n sm: \"0 1px 2px 0 rgb(0 0 0 / 0.05)\",\n DEFAULT: \"0 1px 3px 0 rgb(0 0 0 / 0.1), 0 1px 2px -1px rgb(0 0 0 / 0.1)\",\n md: \"0 4px 6px -1px rgb(0 0 0 / 0.1), 0 2px 4px -2px rgb(0 0 0 / 0.1)\",\n lg: \"0 10px 15px -3px rgb(0 0 0 / 0.1), 0 4px 6px -4px rgb(0 0 0 / 0.1)\",\n xl: \"0 20px 25px -5px rgb(0 0 0 / 0.1), 0 8px 10px -6px rgb(0 0 0 / 0.1)\",\n \"2xl\": \"0 25px 50px -12px rgb(0 0 0 / 0.25)\",\n inner: \"inset 0 2px 4px 0 rgb(0 0 0 / 0.05)\",\n none: \"none\",\n },\n boxShadowColor: ({ theme }) => theme(\"colors\"),\n brightness: {\n 0: \"0\",\n 50: \".5\",\n 75: \".75\",\n 90: \".9\",\n 95: \".95\",\n 100: \"1\",\n 105: \"1.05\",\n 110: \"1.1\",\n 125: \"1.25\",\n 150: \"1.5\",\n 200: \"2\",\n },\n caretColor: ({ theme }) => theme(\"colors\"),\n colors: {\n transparent: \"transparent\",\n current: \"currentColor\",\n black: \"oklch(0% 0 0)\",\n white: \"oklch(100% 0 0)\",\n slate: {\n 50: \"oklch(0.984 0.003 247.9)\",\n 100: \"oklch(0.968 0.007 247.9)\",\n 200: \"oklch(0.929 0.013 255.5)\",\n 300: \"oklch(0.869 0.022 252.9)\",\n 400: \"oklch(0.704 0.04 256.8)\",\n 500: \"oklch(0.554 0.046 257.4)\",\n 600: \"oklch(0.446 0.043 257.3)\",\n 700: \"oklch(0.372 0.044 257.4)\",\n 800: \"oklch(0.279 0.041 260.0)\",\n 900: \"oklch(0.208 0.042 265.8)\",\n 950: \"oklch(0.129 0.042 264.7)\",\n },\n gray: {\n 50: \"oklch(0.985 0.002 247.9)\",\n 100: \"oklch(0.967 0.003 264.5)\",\n 200: \"oklch(0.928 0.006 264.5)\",\n 300: \"oklch(0.872 0.010 258.3)\",\n 400: \"oklch(0.707 0.022 261.3)\",\n 500: \"oklch(0.551 0.027 264.4)\",\n 600: \"oklch(0.446 0.030 256.8)\",\n 700: \"oklch(0.373 0.034 259.7)\",\n 800: \"oklch(0.278 0.033 256.8)\",\n 900: \"oklch(0.210 0.034 264.7)\",\n 950: \"oklch(0.130 0.028 261.7)\",\n },\n zinc: {\n 50: \"oklch(0.985 0.000 0.0)\",\n 100: \"oklch(0.967 0.001 286.4)\",\n 200: \"oklch(0.920 0.004 286.3)\",\n 300: \"oklch(0.871 0.006 286.3)\",\n 400: \"oklch(0.705 0.015 286.1)\",\n 500: \"oklch(0.552 0.016 285.9)\",\n 600: \"oklch(0.442 0.017 285.8)\",\n 700: \"oklch(0.370 0.013 285.8)\",\n 800: \"oklch(0.274 0.006 286.0)\",\n 900: \"oklch(0.210 0.006 285.9)\",\n 950: \"oklch(0.141 0.005 285.8)\",\n },\n neutral: {\n 50: \"oklch(0.985 0.000 0.0)\",\n 100: \"oklch(0.970 0.000 0.0)\",\n 200: \"oklch(0.922 0.000 0.0)\",\n 300: \"oklch(0.870 0.000 0.0)\",\n 400: \"oklch(0.708 0.000 0.0)\",\n 500: \"oklch(0.556 0.000 0.0)\",\n 600: \"oklch(0.439 0.000 0.0)\",\n 700: \"oklch(0.371 0.000 0.0)\",\n 800: \"oklch(0.269 0.000 0.0)\",\n 900: \"oklch(0.205 0.000 0.0)\",\n 950: \"oklch(0.145 0.000 0.0)\",\n },\n stone: {\n 50: \"oklch(0.985 0.001 67.4)\",\n 100: \"oklch(0.970 0.002 75.2)\",\n 200: \"oklch(0.923 0.006 75.2)\",\n 300: \"oklch(0.869 0.011 65.3)\",\n 400: \"oklch(0.709 0.023 56.0)\",\n 500: \"oklch(0.553 0.028 50.3)\",\n 600: \"oklch(0.444 0.024 48.7)\",\n 700: \"oklch(0.374 0.020 50.9)\",\n 800: \"oklch(0.268 0.015 52.9)\",\n 900: \"oklch(0.216 0.012 56.0)\",\n 950: \"oklch(0.147 0.009 50.9)\",\n },\n red: {\n 50: \"oklch(0.971 0.013 17.4)\",\n 100: \"oklch(0.936 0.032 17.7)\",\n 200: \"oklch(0.885 0.062 18.3)\",\n 300: \"oklch(0.808 0.114 19.6)\",\n 400: \"oklch(0.704 0.191 22.2)\",\n 500: \"oklch(0.637 0.237 25.3)\",\n 600: \"oklch(0.577 0.245 27.3)\",\n 700: \"oklch(0.505 0.213 27.5)\",\n 800: \"oklch(0.444 0.177 26.3)\",\n 900: \"oklch(0.396 0.141 25.7)\",\n 950: \"oklch(0.258 0.092 26.0)\",\n },\n orange: {\n 50: \"oklch(0.980 0.016 73.7)\",\n 100: \"oklch(0.954 0.038 75.2)\",\n 200: \"oklch(0.901 0.076 70.7)\",\n 300: \"oklch(0.837 0.128 66.3)\",\n 400: \"oklch(0.750 0.183 55.9)\",\n 500: \"oklch(0.705 0.213 47.6)\",\n 600: \"oklch(0.646 0.222 41.1)\",\n 700: \"oklch(0.553 0.195 38.4)\",\n 800: \"oklch(0.470 0.157 37.5)\",\n 900: \"oklch(0.408 0.123 38.1)\",\n 950: \"oklch(0.266 0.079 36.3)\",\n },\n amber: {\n 50: \"oklch(0.987 0.022 95.3)\",\n 100: \"oklch(0.962 0.059 95.6)\",\n 200: \"oklch(0.924 0.120 95.2)\",\n 300: \"oklch(0.879 0.169 91.6)\",\n 400: \"oklch(0.828 0.189 84.6)\",\n 500: \"oklch(0.769 0.188 70.1)\",\n 600: \"oklch(0.666 0.179 58.3)\",\n 700: \"oklch(0.555 0.163 48.9)\",\n 800: \"oklch(0.473 0.137 46.2)\",\n 900: \"oklch(0.414 0.112 45.9)\",\n 950: \"oklch(0.279 0.077 45.2)\",\n },\n yellow: {\n 50: \"oklch(0.987 0.026 102.2)\",\n 100: \"oklch(0.973 0.071 103.2)\",\n 200: \"oklch(0.945 0.129 101.5)\",\n 300: \"oklch(0.905 0.182 98.1)\",\n 400: \"oklch(0.852 0.199 91.3)\",\n 500: \"oklch(0.795 0.184 86.0)\",\n 600: \"oklch(0.681 0.162 75.8)\",\n 700: \"oklch(0.554 0.135 66.4)\",\n 800: \"oklch(0.476 0.114 61.9)\",\n 900: \"oklch(0.421 0.095 57.7)\",\n 950: \"oklch(0.286 0.066 53.8)\",\n },\n lime: {\n 50: \"oklch(0.986 0.031 129.5)\",\n 100: \"oklch(0.967 0.067 130.9)\",\n 200: \"oklch(0.938 0.127 130.7)\",\n 300: \"oklch(0.897 0.196 126.5)\",\n 400: \"oklch(0.841 0.238 128.5)\",\n 500: \"oklch(0.768 0.233 130.9)\",\n 600: \"oklch(0.648 0.200 131.4)\",\n 700: \"oklch(0.532 0.157 131.6)\",\n 800: \"oklch(0.453 0.124 130.9)\",\n 900: \"oklch(0.405 0.101 131.1)\",\n 950: \"oklch(0.274 0.072 132.1)\",\n },\n green: {\n 50: \"oklch(0.982 0.018 155.8)\",\n 100: \"oklch(0.962 0.044 156.7)\",\n 200: \"oklch(0.925 0.084 155.9)\",\n 300: \"oklch(0.871 0.150 154.4)\",\n 400: \"oklch(0.792 0.209 151.7)\",\n 500: \"oklch(0.723 0.219 149.6)\",\n 600: \"oklch(0.627 0.194 149.2)\",\n 700: \"oklch(0.527 0.154 150.1)\",\n 800: \"oklch(0.448 0.119 151.3)\",\n 900: \"oklch(0.393 0.095 152.5)\",\n 950: \"oklch(0.266 0.065 152.9)\",\n },\n emerald: {\n 50: \"oklch(0.979 0.021 166.1)\",\n 100: \"oklch(0.950 0.052 163.1)\",\n 200: \"oklch(0.905 0.093 164.2)\",\n 300: \"oklch(0.845 0.143 164.9)\",\n 400: \"oklch(0.765 0.177 163.2)\",\n 500: \"oklch(0.696 0.170 162.5)\",\n 600: \"oklch(0.596 0.145 163.2)\",\n 700: \"oklch(0.508 0.118 165.6)\",\n 800: \"oklch(0.432 0.095 166.9)\",\n 900: \"oklch(0.378 0.077 168.9)\",\n 950: \"oklch(0.262 0.051 172.6)\",\n },\n teal: {\n 50: \"oklch(0.984 0.014 180.7)\",\n 100: \"oklch(0.953 0.051 180.8)\",\n 200: \"oklch(0.910 0.096 180.4)\",\n 300: \"oklch(0.855 0.138 181.1)\",\n 400: \"oklch(0.777 0.152 181.1)\",\n 500: \"oklch(0.704 0.140 182.5)\",\n 600: \"oklch(0.600 0.118 184.7)\",\n 700: \"oklch(0.511 0.096 186.4)\",\n 800: \"oklch(0.437 0.078 188.2)\",\n 900: \"oklch(0.386 0.063 188.4)\",\n 950: \"oklch(0.277 0.046 192.5)\",\n },\n cyan: {\n 50: \"oklch(0.984 0.019 200.9)\",\n 100: \"oklch(0.956 0.045 203.4)\",\n 200: \"oklch(0.917 0.080 205.0)\",\n 300: \"oklch(0.865 0.127 207.1)\",\n 400: \"oklch(0.789 0.154 211.1)\",\n 500: \"oklch(0.715 0.143 215.2)\",\n 600: \"oklch(0.609 0.126 221.7)\",\n 700: \"oklch(0.520 0.105 223.1)\",\n 800: \"oklch(0.450 0.085 224.3)\",\n 900: \"oklch(0.398 0.070 227.4)\",\n 950: \"oklch(0.302 0.056 229.7)\",\n },\n sky: {\n 50: \"oklch(0.977 0.013 236.6)\",\n 100: \"oklch(0.951 0.026 236.8)\",\n 200: \"oklch(0.901 0.058 230.9)\",\n 300: \"oklch(0.828 0.111 230.3)\",\n 400: \"oklch(0.746 0.160 232.7)\",\n 500: \"oklch(0.685 0.169 237.3)\",\n 600: \"oklch(0.588 0.158 241.9)\",\n 700: \"oklch(0.500 0.134 242.7)\",\n 800: \"oklch(0.443 0.110 240.8)\",\n 900: \"oklch(0.391 0.090 240.9)\",\n 950: \"oklch(0.293 0.066 243.2)\",\n },\n blue: {\n 50: \"oklch(0.970 0.014 254.6)\",\n 100: \"oklch(0.932 0.032 255.6)\",\n 200: \"oklch(0.882 0.059 254.1)\",\n 300: \"oklch(0.809 0.105 251.8)\",\n 400: \"oklch(0.707 0.165 254.6)\",\n 500: \"oklch(0.623 0.214 259.1)\",\n 600: \"oklch(0.546 0.245 262.9)\",\n 700: \"oklch(0.488 0.243 264.4)\",\n 800: \"oklch(0.424 0.199 265.6)\",\n 900: \"oklch(0.379 0.146 265.5)\",\n 950: \"oklch(0.282 0.091 267.9)\",\n },\n indigo: {\n 50: \"oklch(0.962 0.018 272.3)\",\n 100: \"oklch(0.930 0.034 272.8)\",\n 200: \"oklch(0.870 0.065 274.0)\",\n 300: \"oklch(0.785 0.115 274.7)\",\n 400: \"oklch(0.673 0.182 276.9)\",\n 500: \"oklch(0.585 0.233 277.1)\",\n 600: \"oklch(0.511 0.262 276.9)\",\n 700: \"oklch(0.457 0.240 277.0)\",\n 800: \"oklch(0.398 0.195 277.4)\",\n 900: \"oklch(0.359 0.144 278.7)\",\n 950: \"oklch(0.257 0.090 281.3)\",\n },\n violet: {\n 50: \"oklch(0.969 0.016 293.8)\",\n 100: \"oklch(0.943 0.029 294.6)\",\n 200: \"oklch(0.894 0.057 293.3)\",\n 300: \"oklch(0.811 0.111 293.6)\",\n 400: \"oklch(0.702 0.183 293.5)\",\n 500: \"oklch(0.606 0.250 292.7)\",\n 600: \"oklch(0.541 0.281 293.0)\",\n 700: \"oklch(0.491 0.270 292.6)\",\n 800: \"oklch(0.432 0.232 292.8)\",\n 900: \"oklch(0.380 0.189 293.7)\",\n 950: \"oklch(0.283 0.141 291.1)\",\n },\n purple: {\n 50: \"oklch(0.977 0.014 308.3)\",\n 100: \"oklch(0.946 0.033 307.1)\",\n 200: \"oklch(0.902 0.063 306.7)\",\n 300: \"oklch(0.827 0.119 306.3)\",\n 400: \"oklch(0.714 0.203 305.3)\",\n 500: \"oklch(0.627 0.265 303.9)\",\n 600: \"oklch(0.558 0.288 302.3)\",\n 700: \"oklch(0.496 0.265 301.9)\",\n 800: \"oklch(0.438 0.218 303.7)\",\n 900: \"oklch(0.381 0.176 304.1)\",\n 950: \"oklch(0.291 0.149 302.7)\",\n },\n fuchsia: {\n 50: \"oklch(0.977 0.017 320.1)\",\n 100: \"oklch(0.952 0.037 318.9)\",\n 200: \"oklch(0.903 0.076 319.6)\",\n 300: \"oklch(0.833 0.145 321.4)\",\n 400: \"oklch(0.740 0.238 322.2)\",\n 500: \"oklch(0.667 0.295 322.1)\",\n 600: \"oklch(0.591 0.293 321.5)\",\n 700: \"oklch(0.518 0.253 323.1)\",\n 800: \"oklch(0.452 0.211 324.1)\",\n 900: \"oklch(0.401 0.170 325.6)\",\n 950: \"oklch(0.293 0.136 325.7)\",\n },\n pink: {\n 50: \"oklch(0.971 0.014 343.2)\",\n 100: \"oklch(0.948 0.028 342.3)\",\n 200: \"oklch(0.899 0.061 343.2)\",\n 300: \"oklch(0.823 0.120 346.0)\",\n 400: \"oklch(0.718 0.202 349.8)\",\n 500: \"oklch(0.656 0.241 354.3)\",\n 600: \"oklch(0.592 0.249 0.6)\",\n 700: \"oklch(0.525 0.223 3.9)\",\n 800: \"oklch(0.459 0.187 3.8)\",\n 900: \"oklch(0.408 0.153 2.4)\",\n 950: \"oklch(0.284 0.109 3.9)\",\n },\n rose: {\n 50: \"oklch(0.969 0.015 12.4)\",\n 100: \"oklch(0.941 0.030 12.6)\",\n 200: \"oklch(0.892 0.058 10.0)\",\n 300: \"oklch(0.810 0.117 11.6)\",\n 400: \"oklch(0.712 0.194 13.4)\",\n 500: \"oklch(0.645 0.246 16.4)\",\n 600: \"oklch(0.586 0.253 17.6)\",\n 700: \"oklch(0.514 0.222 16.9)\",\n 800: \"oklch(0.455 0.188 13.9)\",\n 900: \"oklch(0.410 0.159 10.9)\",\n 950: \"oklch(0.271 0.105 12.1)\",\n },\n mauve: {\n 50: \"oklch(0.980 0.005 300.0)\",\n 100: \"oklch(0.960 0.010 300.0)\",\n 200: \"oklch(0.920 0.018 300.0)\",\n 300: \"oklch(0.860 0.028 300.0)\",\n 400: \"oklch(0.720 0.040 300.0)\",\n 500: \"oklch(0.580 0.052 300.0)\",\n 600: \"oklch(0.470 0.048 300.0)\",\n 700: \"oklch(0.380 0.040 300.0)\",\n 800: \"oklch(0.280 0.030 300.0)\",\n 900: \"oklch(0.200 0.022 300.0)\",\n 950: \"oklch(0.130 0.015 300.0)\",\n },\n olive: {\n 50: \"oklch(0.980 0.015 90.0)\",\n 100: \"oklch(0.960 0.022 90.0)\",\n 200: \"oklch(0.920 0.032 90.0)\",\n 300: \"oklch(0.860 0.045 90.0)\",\n 400: \"oklch(0.720 0.060 90.0)\",\n 500: \"oklch(0.580 0.072 90.0)\",\n 600: \"oklch(0.470 0.065 90.0)\",\n 700: \"oklch(0.380 0.055 90.0)\",\n 800: \"oklch(0.280 0.040 90.0)\",\n 900: \"oklch(0.200 0.028 90.0)\",\n 950: \"oklch(0.130 0.018 90.0)\",\n },\n mist: {\n 50: \"oklch(0.982 0.008 200.0)\",\n 100: \"oklch(0.962 0.014 200.0)\",\n 200: \"oklch(0.922 0.022 200.0)\",\n 300: \"oklch(0.862 0.034 200.0)\",\n 400: \"oklch(0.722 0.048 200.0)\",\n 500: \"oklch(0.582 0.060 200.0)\",\n 600: \"oklch(0.472 0.055 200.0)\",\n 700: \"oklch(0.382 0.045 200.0)\",\n 800: \"oklch(0.282 0.032 200.0)\",\n 900: \"oklch(0.202 0.022 200.0)\",\n 950: \"oklch(0.128 0.012 200.0)\",\n },\n taupe: {\n 50: \"oklch(0.978 0.008 60.0)\",\n 100: \"oklch(0.958 0.014 60.0)\",\n 200: \"oklch(0.918 0.022 60.0)\",\n 300: \"oklch(0.858 0.034 60.0)\",\n 400: \"oklch(0.718 0.048 60.0)\",\n 500: \"oklch(0.578 0.060 60.0)\",\n 600: \"oklch(0.468 0.055 60.0)\",\n 700: \"oklch(0.378 0.045 60.0)\",\n 800: \"oklch(0.278 0.032 60.0)\",\n 900: \"oklch(0.198 0.022 60.0)\",\n 950: \"oklch(0.128 0.014 60.0)\",\n },\n },\n columns: {\n auto: \"auto\",\n 1: \"1\",\n 2: \"2\",\n 3: \"3\",\n 4: \"4\",\n 5: \"5\",\n 6: \"6\",\n 7: \"7\",\n 8: \"8\",\n 9: \"9\",\n 10: \"10\",\n 11: \"11\",\n 12: \"12\",\n \"3xs\": \"16rem\",\n \"2xs\": \"18rem\",\n xs: \"20rem\",\n sm: \"24rem\",\n md: \"28rem\",\n lg: \"32rem\",\n xl: \"36rem\",\n \"2xl\": \"42rem\",\n \"3xl\": \"48rem\",\n \"4xl\": \"56rem\",\n \"5xl\": \"64rem\",\n \"6xl\": \"72rem\",\n \"7xl\": \"80rem\",\n },\n container: {},\n containers: {\n xs: \"20rem\", // 320px\n sm: \"24rem\", // 384px\n md: \"28rem\", // 448px\n lg: \"32rem\", // 512px\n xl: \"36rem\", // 576px\n \"2xl\": \"42rem\", // 672px\n \"3xl\": \"48rem\", // 768px\n \"4xl\": \"56rem\", // 896px\n \"5xl\": \"64rem\", // 1024px\n \"6xl\": \"72rem\", // 1152px\n \"7xl\": \"80rem\", // 1280px\n },\n content: {\n none: \"none\",\n },\n contrast: {\n 0: \"0\",\n 50: \".5\",\n 75: \".75\",\n 100: \"1\",\n 125: \"1.25\",\n 150: \"1.5\",\n 200: \"2\",\n },\n cursor: {\n auto: \"auto\",\n default: \"default\",\n pointer: \"pointer\",\n wait: \"wait\",\n text: \"text\",\n move: \"move\",\n help: \"help\",\n \"not-allowed\": \"not-allowed\",\n none: \"none\",\n \"context-menu\": \"context-menu\",\n progress: \"progress\",\n cell: \"cell\",\n crosshair: \"crosshair\",\n \"vertical-text\": \"vertical-text\",\n alias: \"alias\",\n copy: \"copy\",\n \"no-drop\": \"no-drop\",\n grab: \"grab\",\n grabbing: \"grabbing\",\n \"all-scroll\": \"all-scroll\",\n \"col-resize\": \"col-resize\",\n \"row-resize\": \"row-resize\",\n \"n-resize\": \"n-resize\",\n \"e-resize\": \"e-resize\",\n \"s-resize\": \"s-resize\",\n \"w-resize\": \"w-resize\",\n \"ne-resize\": \"ne-resize\",\n \"nw-resize\": \"nw-resize\",\n \"se-resize\": \"se-resize\",\n \"sw-resize\": \"sw-resize\",\n \"ew-resize\": \"ew-resize\",\n \"ns-resize\": \"ns-resize\",\n \"nesw-resize\": \"nesw-resize\",\n \"nwse-resize\": \"nwse-resize\",\n \"zoom-in\": \"zoom-in\",\n \"zoom-out\": \"zoom-out\",\n },\n divideColor: ({ theme }) => theme(\"borderColor\"),\n divideWidth: ({ theme }) => theme(\"borderWidth\"),\n dropShadow: {\n sm: \"0 1px 1px rgb(0 0 0 / 0.05)\",\n DEFAULT: \"0 1px 2px rgb(0 0 0 / 0.1) , 0 1px 1px rgb(0 0 0 / 0.06)\",\n md: \"0 4px 3px rgb(0 0 0 / 0.07) , 0 2px 2px rgb(0 0 0 / 0.06)\",\n lg: \"0 10px 8px rgb(0 0 0 / 0.04) , 0 4px 3px rgb(0 0 0 / 0.1)\",\n xl: \"0 20px 13px rgb(0 0 0 / 0.03) , 0 8px 5px rgb(0 0 0 / 0.08)\",\n \"2xl\": \"0 25px 25px rgb(0 0 0 / 0.15)\",\n none: \"0 0 #0000\",\n },\n fill: ({ theme }) => ({\n none: \"none\",\n ...theme(\"colors\"),\n }),\n flex: {\n 1: \"1 1 0%\",\n auto: \"1 1 auto\",\n initial: \"0 1 auto\",\n none: \"none\",\n },\n flexBasis: ({ theme }) => ({\n auto: \"auto\",\n ...theme(\"spacing\"),\n \"1/2\": \"50%\",\n \"1/3\": \"33.333333%\",\n \"2/3\": \"66.666667%\",\n \"1/4\": \"25%\",\n \"2/4\": \"50%\",\n \"3/4\": \"75%\",\n \"1/5\": \"20%\",\n \"2/5\": \"40%\",\n \"3/5\": \"60%\",\n \"4/5\": \"80%\",\n \"1/6\": \"16.666667%\",\n \"2/6\": \"33.333333%\",\n \"3/6\": \"50%\",\n \"4/6\": \"66.666667%\",\n \"5/6\": \"83.333333%\",\n \"1/12\": \"8.333333%\",\n \"2/12\": \"16.666667%\",\n \"3/12\": \"25%\",\n \"4/12\": \"33.333333%\",\n \"5/12\": \"41.666667%\",\n \"6/12\": \"50%\",\n \"7/12\": \"58.333333%\",\n \"8/12\": \"66.666667%\",\n \"9/12\": \"75%\",\n \"10/12\": \"83.333333%\",\n \"11/12\": \"91.666667%\",\n full: \"100%\",\n }),\n flexGrow: {\n 0: \"0\",\n DEFAULT: \"1\",\n },\n flexShrink: {\n 0: \"0\",\n DEFAULT: \"1\",\n },\n fontFamily: {\n sans: [\"ui-sans-serif\", \"system-ui\", \"sans-serif\", \"Apple Color Emoji\", \"Segoe UI Emoji\", \"Segoe UI Symbol\", \"Noto Color Emoji\"],\n serif: [\"ui-serif\", \"Georgia\", \"Cambria\", \"Times New Roman\", \"Times\", \"serif\"],\n mono: [\"ui-monospace\", \"SFMono-Regular\", \"Menlo\", \"Monaco\", \"Consolas\", \"Liberation Mono\", \"Courier New\", \"monospace\"],\n },\n fontSize: {\n xs: \"0.75rem\",\n sm: \"0.875rem\",\n base: \"1rem\",\n lg: \"1.125rem\",\n xl: \"1.25rem\",\n \"2xl\": \"1.5rem\",\n \"3xl\": \"1.875rem\",\n \"4xl\": \"2.25rem\",\n \"5xl\": \"3rem\",\n \"6xl\": \"3.75rem\",\n \"7xl\": \"4.5rem\",\n \"8xl\": \"6rem\",\n \"9xl\": \"8rem\",\n },\n fontWeight: {\n thin: \"100\",\n extralight: \"200\",\n light: \"300\",\n normal: \"400\",\n medium: \"500\",\n semibold: \"600\",\n bold: \"700\",\n extrabold: \"800\",\n black: \"900\",\n },\n gap: ({ theme }) => theme(\"spacing\"),\n gradientColorStops: ({ theme }) => theme(\"colors\"),\n gradientColorStopPositions: {\n \"0%\": \"0%\",\n \"5%\": \"5%\",\n \"10%\": \"10%\",\n \"15%\": \"15%\",\n \"20%\": \"20%\",\n \"25%\": \"25%\",\n \"30%\": \"30%\",\n \"35%\": \"35%\",\n \"40%\": \"40%\",\n \"45%\": \"45%\",\n \"50%\": \"50%\",\n \"55%\": \"55%\",\n \"60%\": \"60%\",\n \"65%\": \"65%\",\n \"70%\": \"70%\",\n \"75%\": \"75%\",\n \"80%\": \"80%\",\n \"85%\": \"85%\",\n \"90%\": \"90%\",\n \"95%\": \"95%\",\n \"100%\": \"100%\",\n },\n grayscale: {\n 0: \"0\",\n 50: \"0.5\",\n DEFAULT: \"100%\",\n },\n gridAutoColumns: {\n auto: \"auto\",\n min: \"min-content\",\n max: \"max-content\",\n fr: \"minmax(0, 1fr)\",\n },\n gridAutoRows: {\n auto: \"auto\",\n min: \"min-content\",\n max: \"max-content\",\n fr: \"minmax(0, 1fr)\",\n },\n gridColumn: {\n auto: \"auto\",\n \"span-1\": \"span 1 / span 1\",\n \"span-2\": \"span 2 / span 2\",\n \"span-3\": \"span 3 / span 3\",\n \"span-4\": \"span 4 / span 4\",\n \"span-5\": \"span 5 / span 5\",\n \"span-6\": \"span 6 / span 6\",\n \"span-7\": \"span 7 / span 7\",\n \"span-8\": \"span 8 / span 8\",\n \"span-9\": \"span 9 / span 9\",\n \"span-10\": \"span 10 / span 10\",\n \"span-11\": \"span 11 / span 11\",\n \"span-12\": \"span 12 / span 12\",\n \"span-full\": \"1 / -1\",\n },\n gridColumnEnd: {\n auto: \"auto\",\n 1: \"1\",\n 2: \"2\",\n 3: \"3\",\n 4: \"4\",\n 5: \"5\",\n 6: \"6\",\n 7: \"7\",\n 8: \"8\",\n 9: \"9\",\n 10: \"10\",\n 11: \"11\",\n 12: \"12\",\n 13: \"13\",\n },\n gridColumnStart: {\n auto: \"auto\",\n 1: \"1\",\n 2: \"2\",\n 3: \"3\",\n 4: \"4\",\n 5: \"5\",\n 6: \"6\",\n 7: \"7\",\n 8: \"8\",\n 9: \"9\",\n 10: \"10\",\n 11: \"11\",\n 12: \"12\",\n 13: \"13\",\n },\n gridRow: {\n auto: \"auto\",\n \"span-1\": \"span 1 / span 1\",\n \"span-2\": \"span 2 / span 2\",\n \"span-3\": \"span 3 / span 3\",\n \"span-4\": \"span 4 / span 4\",\n \"span-5\": \"span 5 / span 5\",\n \"span-6\": \"span 6 / span 6\",\n \"span-7\": \"span 7 / span 7\",\n \"span-8\": \"span 8 / span 8\",\n \"span-9\": \"span 9 / span 9\",\n \"span-10\": \"span 10 / span 10\",\n \"span-11\": \"span 11 / span 11\",\n \"span-12\": \"span 12 / span 12\",\n \"span-full\": \"1 / -1\",\n },\n gridRowEnd: {\n auto: \"auto\",\n 1: \"1\",\n 2: \"2\",\n 3: \"3\",\n 4: \"4\",\n 5: \"5\",\n 6: \"6\",\n 7: \"7\",\n 8: \"8\",\n 9: \"9\",\n 10: \"10\",\n 11: \"11\",\n 12: \"12\",\n 13: \"13\",\n },\n gridRowStart: {\n auto: \"auto\",\n 1: \"1\",\n 2: \"2\",\n 3: \"3\",\n 4: \"4\",\n 5: \"5\",\n 6: \"6\",\n 7: \"7\",\n 8: \"8\",\n 9: \"9\",\n 10: \"10\",\n 11: \"11\",\n 12: \"12\",\n 13: \"13\",\n },\n gridTemplateColumns: {\n none: \"none\",\n subgrid: \"subgrid\",\n 1: \"repeat(1, minmax(0, 1fr))\",\n 2: \"repeat(2, minmax(0, 1fr))\",\n 3: \"repeat(3, minmax(0, 1fr))\",\n 4: \"repeat(4, minmax(0, 1fr))\",\n 5: \"repeat(5, minmax(0, 1fr))\",\n 6: \"repeat(6, minmax(0, 1fr))\",\n 7: \"repeat(7, minmax(0, 1fr))\",\n 8: \"repeat(8, minmax(0, 1fr))\",\n 9: \"repeat(9, minmax(0, 1fr))\",\n 10: \"repeat(10, minmax(0, 1fr))\",\n 11: \"repeat(11, minmax(0, 1fr))\",\n 12: \"repeat(12, minmax(0, 1fr))\",\n },\n gridTemplateRows: {\n none: \"none\",\n subgrid: \"subgrid\",\n 1: \"repeat(1, minmax(0, 1fr))\",\n 2: \"repeat(2, minmax(0, 1fr))\",\n 3: \"repeat(3, minmax(0, 1fr))\",\n 4: \"repeat(4, minmax(0, 1fr))\",\n 5: \"repeat(5, minmax(0, 1fr))\",\n 6: \"repeat(6, minmax(0, 1fr))\",\n 7: \"repeat(7, minmax(0, 1fr))\",\n 8: \"repeat(8, minmax(0, 1fr))\",\n 9: \"repeat(9, minmax(0, 1fr))\",\n 10: \"repeat(10, minmax(0, 1fr))\",\n 11: \"repeat(11, minmax(0, 1fr))\",\n 12: \"repeat(12, minmax(0, 1fr))\",\n },\n height: ({ theme }) => ({\n auto: \"auto\",\n ...theme(\"spacing\"),\n \"1/2\": \"50%\",\n \"1/3\": \"33.333333%\",\n \"2/3\": \"66.666667%\",\n \"1/4\": \"25%\",\n \"2/4\": \"50%\",\n \"3/4\": \"75%\",\n \"1/5\": \"20%\",\n \"2/5\": \"40%\",\n \"3/5\": \"60%\",\n \"4/5\": \"80%\",\n \"1/6\": \"16.666667%\",\n \"2/6\": \"33.333333%\",\n \"3/6\": \"50%\",\n \"4/6\": \"66.666667%\",\n \"5/6\": \"83.333333%\",\n full: \"100%\",\n screen: \"100vh\",\n svh: \"100svh\",\n lvh: \"100lvh\",\n dvh: \"100dvh\",\n min: \"min-content\",\n max: \"max-content\",\n fit: \"fit-content\",\n }),\n hueRotate: {\n 0: \"0deg\",\n 15: \"15deg\",\n 30: \"30deg\",\n 60: \"60deg\",\n 90: \"90deg\",\n 180: \"180deg\",\n },\n inset: ({ theme }) => ({\n auto: \"auto\",\n ...theme(\"spacing\"),\n \"1/2\": \"50%\",\n \"1/3\": \"33.333333%\",\n \"2/3\": \"66.666667%\",\n \"1/4\": \"25%\",\n \"2/4\": \"50%\",\n \"3/4\": \"75%\",\n full: \"100%\",\n }),\n invert: {\n 0: \"0\",\n 50: \"0.5\",\n DEFAULT: \"100%\",\n },\n letterSpacing: {\n tighter: \"-0.05em\",\n tight: \"-0.025em\",\n normal: \"0em\",\n wide: \"0.025em\",\n wider: \"0.05em\",\n widest: \"0.1em\",\n },\n lineClamp: {\n 1: \"1\",\n 2: \"2\",\n 3: \"3\",\n 4: \"4\",\n 5: \"5\",\n 6: \"6\",\n },\n lineHeight: {\n none: \"1\",\n tight: \"1.25\",\n snug: \"1.375\",\n normal: \"1.5\",\n relaxed: \"1.625\",\n loose: \"2\",\n 3: \".75rem\",\n 4: \"1rem\",\n 5: \"1.25rem\",\n 6: \"1.5rem\",\n 7: \"1.75rem\",\n 8: \"2rem\",\n 9: \"2.25rem\",\n 10: \"2.5rem\",\n },\n listStyleType: {\n none: \"none\",\n disc: \"disc\",\n decimal: \"decimal\",\n },\n margin: ({ theme }) => ({\n auto: \"auto\",\n ...theme(\"spacing\"),\n }),\n maxHeight: ({ theme }) => ({\n ...theme(\"spacing\"),\n none: \"none\",\n full: \"100%\",\n screen: \"100vh\",\n svh: \"100svh\",\n lvh: \"100lvh\",\n dvh: \"100dvh\",\n min: \"min-content\",\n max: \"max-content\",\n fit: \"fit-content\",\n }),\n maxWidth: ({ theme }) => ({\n ...theme(\"spacing\"),\n none: \"none\",\n xs: \"20rem\",\n sm: \"24rem\",\n md: \"28rem\",\n lg: \"32rem\",\n xl: \"36rem\",\n \"2xl\": \"42rem\",\n \"3xl\": \"48rem\",\n \"4xl\": \"56rem\",\n \"5xl\": \"64rem\",\n \"6xl\": \"72rem\",\n \"7xl\": \"80rem\",\n full: \"100%\",\n min: \"min-content\",\n max: \"max-content\",\n fit: \"fit-content\",\n prose: \"65ch\",\n }),\n minHeight: ({ theme }) => ({\n ...theme(\"spacing\"),\n full: \"100%\",\n screen: \"100vh\",\n svh: \"100svh\",\n lvh: \"100lvh\",\n dvh: \"100dvh\",\n min: \"min-content\",\n max: \"max-content\",\n fit: \"fit-content\",\n }),\n minWidth: ({ theme }) => ({\n ...theme(\"spacing\"),\n full: \"100%\",\n min: \"min-content\",\n max: \"max-content\",\n fit: \"fit-content\",\n }),\n objectPosition: {\n bottom: \"bottom\",\n center: \"center\",\n left: \"left\",\n \"left-bottom\": \"left bottom\",\n \"left-top\": \"left top\",\n right: \"right\",\n \"right-bottom\": \"right bottom\",\n \"right-top\": \"right top\",\n top: \"top\",\n },\n opacity: {\n 0: \"0\",\n 5: \"0.05\",\n 10: \"0.1\",\n 15: \"0.15\",\n 20: \"0.2\",\n 25: \"0.25\",\n 30: \"0.3\",\n 35: \"0.35\",\n 40: \"0.4\",\n 45: \"0.45\",\n 50: \"0.5\",\n 55: \"0.55\",\n 60: \"0.6\",\n 65: \"0.65\",\n 70: \"0.7\",\n 75: \"0.75\",\n 80: \"0.8\",\n 85: \"0.85\",\n 90: \"0.9\",\n 95: \"0.95\",\n 100: \"1\",\n },\n order: {\n first: \"-9999\",\n last: \"9999\",\n none: \"0\",\n 1: \"1\",\n 2: \"2\",\n 3: \"3\",\n 4: \"4\",\n 5: \"5\",\n 6: \"6\",\n 7: \"7\",\n 8: \"8\",\n 9: \"9\",\n 10: \"10\",\n 11: \"11\",\n 12: \"12\",\n },\n outlineColor: ({ theme }) => theme(\"colors\"),\n outlineOffset: {\n 0: \"0px\",\n 1: \"1px\",\n 2: \"2px\",\n 4: \"4px\",\n 8: \"8px\",\n },\n outlineWidth: {\n 0: \"0px\",\n 1: \"1px\",\n 2: \"2px\",\n 4: \"4px\",\n 8: \"8px\",\n },\n padding: ({ theme }) => theme(\"spacing\"),\n placeholderColor: ({ theme }) => theme(\"colors\"),\n ringColor: ({ theme }) => ({\n DEFAULT: \"#3b82f6\",\n ...theme(\"colors\"),\n }),\n ringOffsetColor: ({ theme }) => theme(\"colors\"),\n ringOffsetWidth: {\n 0: \"0px\",\n 1: \"1px\",\n 2: \"2px\",\n 4: \"4px\",\n 8: \"8px\",\n },\n ringWidth: {\n DEFAULT: \"3px\",\n 0: \"0px\",\n 1: \"1px\",\n 2: \"2px\",\n 4: \"4px\",\n 8: \"8px\",\n },\n rotate: {\n 0: \"0deg\",\n 1: \"1deg\",\n 2: \"2deg\",\n 3: \"3deg\",\n 6: \"6deg\",\n 12: \"12deg\",\n 45: \"45deg\",\n 90: \"90deg\",\n 180: \"180deg\",\n },\n saturate: {\n 0: \"0\",\n 50: \".5\",\n 100: \"1\",\n 150: \"1.5\",\n 200: \"2\",\n },\n scale: {\n 0: \"0\",\n 50: \".5\",\n 75: \".75\",\n 90: \".9\",\n 95: \".95\",\n 100: \"1\",\n 105: \"1.05\",\n 110: \"1.1\",\n 125: \"1.25\",\n 150: \"1.5\",\n },\n screens: {\n sm: \"640px\",\n md: \"768px\",\n lg: \"1024px\",\n xl: \"1280px\",\n \"2xl\": \"1536px\",\n },\n scrollMargin: ({ theme }) => ({\n ...theme(\"spacing\"),\n }),\n scrollPadding: ({ theme }) => theme(\"spacing\"),\n sepia: {\n 0: \"0\",\n 50: \"0.5\",\n DEFAULT: \"100%\",\n },\n skew: {\n 0: \"0deg\",\n 1: \"1deg\",\n 2: \"2deg\",\n 3: \"3deg\",\n 6: \"6deg\",\n 12: \"12deg\",\n },\n space: ({ theme }) => ({\n ...theme(\"spacing\"),\n }),\n spacing: {\n px: \"1px\",\n 0: \"0px\",\n 0.5: \"0.125rem\",\n 1: \"0.25rem\",\n 1.5: \"0.375rem\",\n 2: \"0.5rem\",\n 2.5: \"0.625rem\",\n 3: \"0.75rem\",\n 3.5: \"0.875rem\",\n 4: \"1rem\",\n 5: \"1.25rem\",\n 6: \"1.5rem\",\n 7: \"1.75rem\",\n 8: \"2rem\",\n 9: \"2.25rem\",\n 10: \"2.5rem\",\n 11: \"2.75rem\",\n 12: \"3rem\",\n 14: \"3.5rem\",\n 16: \"4rem\",\n 20: \"5rem\",\n 24: \"6rem\",\n 28: \"7rem\",\n 32: \"8rem\",\n 36: \"9rem\",\n 40: \"10rem\",\n 44: \"11rem\",\n 48: \"12rem\",\n 52: \"13rem\",\n 56: \"14rem\",\n 60: \"15rem\",\n 64: \"16rem\",\n 72: \"18rem\",\n 80: \"20rem\",\n 96: \"24rem\",\n \"screen-sm\": \"640px\",\n \"screen-md\": \"768px\",\n \"screen-lg\": \"1024px\",\n \"screen-xl\": \"1280px\",\n \"screen-2xl\": \"1536px\",\n },\n stroke: ({ theme }) => ({\n none: \"none\",\n ...theme(\"colors\"),\n }),\n strokeWidth: {\n 0: \"0\",\n 1: \"1\",\n 2: \"2\",\n },\n textColor: ({ theme }) => theme(\"colors\"),\n textDecorationColor: ({ theme }) => theme(\"colors\"),\n textDecorationThickness: {\n auto: \"auto\",\n \"from-font\": \"from-font\",\n 0: \"0px\",\n 1: \"1px\",\n 2: \"2px\",\n 4: \"4px\",\n 8: \"8px\",\n },\n textIndent: ({ theme }) => ({\n ...theme(\"spacing\"),\n }),\n textShadowBlur: ({ theme }) => theme(\"blur\"),\n textShadowColor: ({ theme }) => ({\n ...theme(\"colors\"),\n DEFAULT: \"#e5e7eb\",\n }),\n textShadowOpacity: ({ theme }) => theme(\"opacity\"),\n textShadowX: {\n 0: \"0px\",\n 1: \"1px\",\n 2: \"2px\",\n 3: \"3px\",\n 4: \"4px\",\n 5: \"5px\",\n 6: \"6px\",\n 7: \"7px\",\n 8: \"8px\",\n 9: \"9px\",\n 10: \"10px\",\n },\n textShadowY: ({ theme }) => theme(\"textShadowX\"),\n textUnderlineOffset: {\n auto: \"auto\",\n 0: \"0px\",\n 1: \"1px\",\n 2: \"2px\",\n 4: \"4px\",\n 8: \"8px\",\n },\n transformOrigin: {\n center: \"center\",\n top: \"top\",\n \"top-right\": \"top right\",\n right: \"right\",\n \"bottom-right\": \"bottom right\",\n bottom: \"bottom\",\n \"bottom-left\": \"bottom left\",\n left: \"left\",\n \"top-left\": \"top left\",\n },\n translate: ({ theme }) => ({\n ...theme(\"spacing\"),\n \"1/2\": \"50%\",\n \"1/3\": \"33.333333%\",\n \"2/3\": \"66.666667%\",\n \"1/4\": \"25%\",\n \"2/4\": \"50%\",\n \"3/4\": \"75%\",\n full: \"100%\",\n }),\n size: ({ theme }) => ({\n auto: \"auto\",\n ...theme(\"spacing\"),\n \"1/2\": \"50%\",\n \"1/3\": \"33.333333%\",\n \"2/3\": \"66.666667%\",\n \"1/4\": \"25%\",\n \"2/4\": \"50%\",\n \"3/4\": \"75%\",\n \"1/5\": \"20%\",\n \"2/5\": \"40%\",\n \"3/5\": \"60%\",\n \"4/5\": \"80%\",\n \"1/6\": \"16.666667%\",\n \"2/6\": \"33.333333%\",\n \"3/6\": \"50%\",\n \"4/6\": \"66.666667%\",\n \"5/6\": \"83.333333%\",\n \"1/12\": \"8.333333%\",\n \"2/12\": \"16.666667%\",\n \"3/12\": \"25%\",\n \"4/12\": \"33.333333%\",\n \"5/12\": \"41.666667%\",\n \"6/12\": \"50%\",\n \"7/12\": \"58.333333%\",\n \"8/12\": \"66.666667%\",\n \"9/12\": \"75%\",\n \"10/12\": \"83.333333%\",\n \"11/12\": \"91.666667%\",\n full: \"100%\",\n min: \"min-content\",\n max: \"max-content\",\n fit: \"fit-content\",\n }),\n width: ({ theme }) => ({\n auto: \"auto\",\n ...theme(\"spacing\"),\n \"1/2\": \"50%\",\n \"1/3\": \"33.333333%\",\n \"2/3\": \"66.666667%\",\n \"1/4\": \"25%\",\n \"2/4\": \"50%\",\n \"3/4\": \"75%\",\n \"1/5\": \"20%\",\n \"2/5\": \"40%\",\n \"3/5\": \"60%\",\n \"4/5\": \"80%\",\n \"1/6\": \"16.666667%\",\n \"2/6\": \"33.333333%\",\n \"3/6\": \"50%\",\n \"4/6\": \"66.666667%\",\n \"5/6\": \"83.333333%\",\n \"1/12\": \"8.333333%\",\n \"2/12\": \"16.666667%\",\n \"3/12\": \"25%\",\n \"4/12\": \"33.333333%\",\n \"5/12\": \"41.666667%\",\n \"6/12\": \"50%\",\n \"7/12\": \"58.333333%\",\n \"8/12\": \"66.666667%\",\n \"9/12\": \"75%\",\n \"10/12\": \"83.333333%\",\n \"11/12\": \"91.666667%\",\n full: \"100%\",\n screen: \"100vw\",\n svw: \"100svw\",\n lvw: \"100lvw\",\n dvw: \"100dvw\",\n min: \"min-content\",\n max: \"max-content\",\n fit: \"fit-content\",\n }),\n textShadow: {\n \"2xs\": \"0 1px 2px rgb(0 0 0 / 0.10)\",\n xs: \"0 1px 2px rgb(0 0 0 / 0.20)\",\n sm: \"0 1px 3px rgb(0 0 0 / 0.25)\",\n DEFAULT:\"0 1px 3px rgb(0 0 0 / 0.30)\",\n md: \"0 2px 4px rgb(0 0 0 / 0.30)\",\n lg: \"0 4px 6px rgb(0 0 0 / 0.25)\",\n xl: \"0 8px 12px rgb(0 0 0 / 0.20)\",\n \"2xl\": \"0 16px 24px rgb(0 0 0 / 0.15)\",\n none: \"none\",\n },\n willChange: {\n auto: \"auto\",\n scroll: \"scroll-position\",\n contents: \"contents\",\n transform: \"transform\",\n },\n zoom: {\n 0: \"0\",\n 50: \".5\",\n 75: \".75\",\n 90: \".9\",\n 95: \".95\",\n 100: \"1\",\n 105: \"1.05\",\n 110: \"1.1\",\n 125: \"1.25\",\n 150: \"1.5\",\n 200: \"2\",\n },\n zIndex: {\n 0: \"0\",\n 10: \"10\",\n 20: \"20\",\n 30: \"30\",\n 40: \"40\",\n 50: \"50\",\n 60: \"60\",\n 70: \"70\",\n 80: \"80\",\n 90: \"90\",\n 100: \"100\",\n auto: \"auto\",\n },\n};\n\nexport default theme;\n", "const vars = {\n transform: `transform: translateX(var(--transform-translate-x, 0)) translateY(var(--transform-translate-y, 0)) rotate(var(--transform-rotate, 0)) skewX(var(--transform-skew-x, 0)) skewY(var(--transform-skew-y, 0)) scaleX(var(--transform-scale-x, 1)) scaleY(var(--transform-scale-y, 1));`,\n filter: `filter: blur(var(--blur, 0)) brightness(var(--brightness, 1)) contrast(var(--contrast, 1)) grayscale(var(--grayscale, 0)) hue-rotate(var(--hue-rotate, 0deg)) invert(var(--invert, 0)) saturate(var(--saturate, 1)) sepia(var(--sepia, 0)) drop-shadow(var(--drop-shadow, 0 0 #0000));`,\n backdropFilter: `-webkit-backdrop-filter: blur(var(--backdrop-blur, 0)) brightness(var(--backdrop-brightness, 1)) contrast(var(--backdrop-contrast, 1)) grayscale(var(--backdrop-grayscale, 0)) hue-rotate(var(--backdrop-hue-rotate, 0deg)) invert(var(--backdrop-invert, 0)) opacity(var(--backdrop-opacity, 1)) saturate(var(--backdrop-saturate, 1)) sepia(var(--backdrop-sepia, 0)); backdrop-filter: blur(var(--backdrop-blur, 0)) brightness(var(--backdrop-brightness, 1)) contrast(var(--backdrop-contrast, 1)) grayscale(var(--backdrop-grayscale, 0)) hue-rotate(var(--backdrop-hue-rotate, 0deg)) invert(var(--backdrop-invert, 0)) opacity(var(--backdrop-opacity, 1)) saturate(var(--backdrop-saturate, 1)) sepia(var(--backdrop-sepia, 0));`,\n};\n\nexport default vars;\n", "import theme from \"./theme.js\";\nimport vars from \"./vars.js\";\n\nconst configOptions = {\n theme,\n vars,\n};\n\nexport default configOptions;\n", "import defaultConfigOptions from \"./config.js\";\n\nfunction isFunction(fn) {\n return fn && {}.toString.call(fn) === \"[object Function]\";\n}\n\n// \u2500\u2500\u2500 Config Options Cache \u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\n// Cache resolved configs to prevent re-resolution on every createWindrunner() call\n// Uses WeakMap for automatic garbage collection when options object is released\n\nconst configCache = new WeakMap();\n\n// Default context for empty options (most common case in React apps)\nlet defaultContextCache = null;\n\n// \u2500\u2500\u2500 Lazy Theme Resolution with Proxy \u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\n// Instead of resolving all theme keys upfront (33KB!), only resolve what's needed\n\nfunction createLazyTheme(userTheme = {}, userThemeExtend = {}) {\n const resolved = new Map();\n const defaultTheme = defaultConfigOptions.theme;\n \n return new Proxy({}, {\n get(_, key) {\n // Return cached if already resolved\n if (resolved.has(key)) {\n return resolved.get(key);\n }\n \n // Resolve theme key on-demand\n let value = Object.prototype.hasOwnProperty.call(userTheme, key)\n ? userTheme[key]\n : defaultTheme[key];\n \n // If it's a function, call it with theme reference (recursive proxy)\n if (isFunction(value)) {\n value = value({\n theme: (keyRef) => {\n // Recursive lazy lookup\n if (resolved.has(keyRef)) return resolved.get(keyRef);\n // Resolve recursively (will also cache)\n return createLazyTheme(userTheme, userThemeExtend)[keyRef];\n },\n });\n }\n \n // Apply extend if exists\n if (userThemeExtend[key]) {\n value = Object.assign({}, value, userThemeExtend[key]);\n }\n \n // Cache and return\n resolved.set(key, value);\n return value;\n },\n \n has(_, key) {\n return key in defaultTheme || key in userTheme;\n },\n \n ownKeys(_) {\n // For Object.keys() etc - return all possible keys\n return [...new Set([...Object.keys(defaultTheme), ...Object.keys(userTheme)])];\n },\n \n getOwnPropertyDescriptor(_, key) {\n if (key in defaultTheme || key in userTheme) {\n return {\n enumerable: true,\n configurable: true,\n };\n }\n },\n });\n}\n\nexport function getConfigOptions(options = {}, pluginKeys = []) {\n // Fast path: empty options (most common case)\n if (!options || (typeof options === 'object' && Object.keys(options).length === 0)) {\n if (!defaultContextCache) {\n defaultContextCache = {\n ...defaultConfigOptions,\n theme: createLazyTheme({}, {}),\n };\n }\n return defaultContextCache;\n }\n \n // Check cache for this specific options object\n if (configCache.has(options)) {\n return configCache.get(options);\n }\n \n const { theme = {} } = options;\n const { extend: themeExtend = {} } = theme;\n\n // Use lazy theme proxy instead of eager resolution\n const lazyTheme = createLazyTheme(theme, themeExtend);\n\n const config = {\n ...defaultConfigOptions,\n ...options,\n theme: lazyTheme,\n };\n \n // Cache for future calls\n configCache.set(options, config);\n \n return config;\n}\n", "/**\n * Pre-compiled regex patterns and constants for performance optimization.\n * Creating regex patterns once and reusing them is faster than recreating on every call.\n */\n\n// \u2500\u2500\u2500 Arbitrary Value Patterns \u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\n\nexport const ARBITRARY_VALUE_REGEX = /^\\[.+\\]$/;\n\n// \u2500\u2500\u2500 Time Value Patterns (transitions, animations) \u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\n\nexport const TIME_VALUE_WITH_UNIT_REGEX = /^\\d+(?:\\.\\d+)?(?:ms|s)$/;\nexport const TIME_VALUE_NUMERIC_REGEX = /^\\d+(?:\\.\\d+)?$/;\n\n// \u2500\u2500\u2500 Numeric Patterns \u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\n\nexport const NUMERIC_REGEX = /^-?\\d+(?:\\.\\d+)?$/;\nexport const PERCENTAGE_REGEX = /^-?\\d+(?:\\.\\d+)?%$/;\n\n// \u2500\u2500\u2500 Color Patterns \u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\n\nexport const HEX_COLOR_REGEX = /^#([0-9a-fA-F]{3}|[0-9a-fA-F]{6}|[0-9a-fA-F]{8})$/;\nexport const RGB_REGEX = /^rgba?\\(/;\nexport const HSL_REGEX = /^hsla?\\(/;\nexport const OKLCH_REGEX = /^oklch\\(/;\n\n// \u2500\u2500\u2500 Prefix Extraction \u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\n\nexport const PREFIX_EXTRACTION_REGEX = /^([a-z]+(?:-[a-z]+)*)-/;\n\n// \u2500\u2500\u2500 CSS Identifier Escaping \u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\n\nexport const CSS_ESCAPE_BACKSLASH_REGEX = /\\\\/g;\nexport const CSS_ESCAPE_SPECIAL_CHARS_REGEX = /([ !\"#$%&'()*+,./:;<=>?@[\\\\\\]^`{|}~])/g;\nexport const CSS_ESCAPE_LEADING_DIGIT_REGEX = /^(\\d)/;\n\n// \u2500\u2500\u2500 Class Name Parsing \u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\n\nexport const IMPORTANT_PREFIX_REGEX = /^!/;\nexport const CONTAINER_BREAKPOINT_PREFIX_REGEX = /^@/;\n\n// \u2500\u2500\u2500 Variant Delimiter (for splitting class names) \u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\n\nexport const VARIANT_DELIMITER = \":\";\n\n// \u2500\u2500\u2500 Opacity Modifier \u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\n\nexport const OPACITY_SEPARATOR = \"/\";\n\n// \u2500\u2500\u2500 Common CSS Values \u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\n\nexport const CSS_INHERIT = \"inherit\";\nexport const CSS_INITIAL = \"initial\";\nexport const CSS_UNSET = \"unset\";\nexport const CSS_AUTO = \"auto\";\nexport const CSS_NONE = \"none\";\nexport const CSS_TRANSPARENT = \"transparent\";\nexport const CSS_CURRENT_COLOR = \"currentColor\";\n", "import {\n TIME_VALUE_WITH_UNIT_REGEX,\n TIME_VALUE_NUMERIC_REGEX,\n CSS_ESCAPE_BACKSLASH_REGEX,\n CSS_ESCAPE_SPECIAL_CHARS_REGEX,\n CSS_ESCAPE_LEADING_DIGIT_REGEX,\n} from \"./constants.js\";\n\n// \u2500\u2500\u2500 Arbitrary value \u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\n\nexport function resolveArbitraryValue(valueKey) {\n if (valueKey.startsWith(\"[\") && valueKey.endsWith(\"]\")) {\n return valueKey.slice(1, -1).replace(/_/g, \" \");\n }\n return undefined;\n}\n\n// \u2500\u2500\u2500 Theme scale lookup \u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\n\nexport function resolveThemeValue(scale, valueKey) {\n if (typeof scale !== \"object\" || scale === null) return undefined;\n if (Object.prototype.hasOwnProperty.call(scale, valueKey)) {\n return scale[valueKey];\n }\n const arbitrary = resolveArbitraryValue(valueKey);\n if (arbitrary !== undefined) return arbitrary;\n return undefined;\n}\n\n// \u2500\u2500\u2500 Time value (transition-duration / delay) \u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\n\nexport function resolveTimeValue(valueKey) {\n const arbitrary = resolveArbitraryValue(valueKey);\n if (arbitrary !== undefined) return arbitrary;\n if (TIME_VALUE_WITH_UNIT_REGEX.test(valueKey)) return valueKey;\n if (TIME_VALUE_NUMERIC_REGEX.test(valueKey)) return `${valueKey}ms`;\n return undefined;\n}\n\n// \u2500\u2500\u2500 Color lookup \u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\n\nexport function resolveColorValue(colors, colorKey) {\n if (!colors || typeof colors !== \"object\") return undefined;\n\n const arbitrary = resolveArbitraryValue(colorKey);\n if (arbitrary !== undefined) return arbitrary;\n\n if (Object.prototype.hasOwnProperty.call(colors, colorKey)) {\n const direct = colors[colorKey];\n if (typeof direct === \"string\") return direct;\n if (direct && typeof direct === \"object\" && typeof direct.DEFAULT === \"string\") {\n return direct.DEFAULT;\n }\n }\n\n // nested lookup: \"blue-500\" \u2192 colors.blue[\"500\"]\n const segments = colorKey.split(\"-\");\n let current = colors;\n for (let i = 0; i < segments.length; i += 1) {\n const segment = segments[i];\n if (!current || typeof current !== \"object\") return undefined;\n if (!Object.prototype.hasOwnProperty.call(current, segment)) return undefined;\n current = current[segment];\n }\n\n if (typeof current === \"string\") return current;\n if (current && typeof current === \"object\" && typeof current.DEFAULT === \"string\") {\n return current.DEFAULT;\n }\n return undefined;\n}\n\n// \u2500\u2500\u2500 Color with opacity modifier: \"blue-500/50\" \u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\n\nexport function resolveColorWithOpacity(colors, rawKey) {\n const slashIdx = rawKey.lastIndexOf(\"/\");\n if (slashIdx === -1) return resolveColorValue(colors, rawKey);\n\n const colorKey = rawKey.slice(0, slashIdx);\n const opacityStr = rawKey.slice(slashIdx + 1);\n const color = resolveColorValue(colors, colorKey);\n if (color === undefined) return undefined;\n\n // Arbitrary opacity e.g. /[0.35]\n const arbOpacity = resolveArbitraryValue(opacityStr);\n if (arbOpacity !== undefined) {\n const opacityVal = parseFloat(arbOpacity);\n if (isNaN(opacityVal)) return undefined;\n // If arbitrary opacity is already 0-1, use as-is; if >1, treat as percentage\n const finalOpacity = opacityVal <= 1 ? opacityVal * 100 : opacityVal;\n return `color-mix(in oklch, ${color} ${finalOpacity}%, transparent)`;\n }\n\n // Numeric opacity (0-100 scale)\n const opacityNum = parseFloat(opacityStr);\n if (isNaN(opacityNum)) return undefined;\n return `color-mix(in oklch, ${color} ${opacityNum}%, transparent)`;\n}\n\n// \u2500\u2500\u2500 CSS identifier escaping \u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\n\nexport function escapeCssIdentifier(value) {\n if (typeof CSS !== \"undefined\" && typeof CSS.escape === \"function\") {\n return CSS.escape(value);\n }\n return String(value)\n .replace(CSS_ESCAPE_BACKSLASH_REGEX, \"\\\\\\\\\")\n .replace(CSS_ESCAPE_SPECIAL_CHARS_REGEX, \"\\\\$1\")\n .replace(CSS_ESCAPE_LEADING_DIGIT_REGEX, \"\\\\3$1 \");\n}\n\n// \u2500\u2500\u2500 !important appender \u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\n// Optimized: uses single regex replace instead of multiple array operations\n\nexport function appendImportant(declaration, isImportant) {\n if (!isImportant) return declaration;\n // Match CSS declarations and append !important if not already present\n // Regex captures declaration content before semicolon\n return declaration.replace(/([^;{}]+);/g, (match, decl) => {\n const trimmed = decl.trim();\n if (!trimmed || trimmed.includes(\"!important\")) return match;\n return `${trimmed} !important;`;\n });\n}\n\n// \u2500\u2500\u2500 Variant delimiter splitter \u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\n// Splits \"md:hover:bg-blue-500\" into [\"md\", \"hover\", \"bg-blue-500\"]\n// but respects brackets so \"bg-[url(a:b)]\" stays as one token.\n// Optimized: uses index slicing instead of character concatenation for better performance\n\nexport function splitByVariantDelimiter(token) {\n const parts = [];\n let start = 0;\n let bracketDepth = 0;\n\n for (let i = 0; i < token.length; i += 1) {\n const char = token[i];\n if (char === \"[\") {\n bracketDepth += 1;\n } else if (char === \"]\") {\n bracketDepth = Math.max(0, bracketDepth - 1);\n } else if (char === \":\" && bracketDepth === 0) {\n parts.push(token.slice(start, i));\n start = i + 1;\n }\n }\n parts.push(token.slice(start));\n return parts;\n}\n", "// \u2500\u2500\u2500 Factory Helpers for Compressed Maps \u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\n// Generate maps with repetitive patterns to reduce bundle size after minification\n\n/**\n * Create a map from array of values with simple property pattern\n * @param {string} prop - CSS property name\n * @param {string[]} values - Array of CSS values\n * @param {Object} keyMap - Optional key remapping { cssValue: className }\n */\nfunction createSimpleMap(prop, values, keyMap = {}) {\n const map = {};\n values.forEach((value) => {\n const key = keyMap[value] || value;\n map[key] = `${prop}: ${value};`;\n });\n return map;\n}\n\n// \u2500\u2500\u2500 Optimized Display Map \u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\n\nexport const DISPLAY_MAP = {\n ...createSimpleMap(\"display\", [\n \"block\", \"inline\", \"inline-block\", \"flex\", \"inline-flex\", \n \"grid\", \"inline-grid\", \"contents\", \"flow-root\", \"list-item\",\n \"table\", \"inline-table\", \"table-caption\", \"table-cell\", \n \"table-column\", \"table-column-group\", \"table-footer-group\",\n \"table-header-group\", \"table-row-group\", \"table-row\"\n ]),\n hidden: \"display: none;\", // Special case\n};\n\n// \u2500\u2500\u2500 Optimized Position & Overflow Maps \u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\n\nexport const POSITION_MAP = createSimpleMap(\"position\", [\n \"static\", \"fixed\", \"absolute\", \"relative\", \"sticky\"\n]);\n\nexport const VISIBILITY_MAP = {\n ...createSimpleMap(\"visibility\", [\"visible\", \"collapse\"]),\n invisible: \"visibility: hidden;\", // Key differs from value\n};\n\nconst OVERFLOW_VALUES = [\"auto\", \"hidden\", \"clip\", \"visible\", \"scroll\"];\nexport const OVERFLOW_MAP = createSimpleMap(\"overflow\", OVERFLOW_VALUES);\nexport const OVERFLOW_X_MAP = createSimpleMap(\"overflow-x\", OVERFLOW_VALUES);\nexport const OVERFLOW_Y_MAP = createSimpleMap(\"overflow-y\", OVERFLOW_VALUES);\n\nconst OVERSCROLL_VALUES = [\"auto\", \"contain\", \"none\"];\nexport const OVERSCROLL_MAP = createSimpleMap(\"overscroll-behavior\", OVERSCROLL_VALUES);\nexport const OVERSCROLL_X_MAP = createSimpleMap(\"overscroll-behavior-x\", OVERSCROLL_VALUES);\nexport const OVERSCROLL_Y_MAP = createSimpleMap(\"overscroll-behavior-y\", OVERSCROLL_VALUES);\n\n// \u2500\u2500\u2500 Optimized Float & Clear Maps \u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\n\nexport const FLOAT_MAP = {\n ...createSimpleMap(\"float\", [\"left\", \"right\", \"none\"]),\n start: \"float: inline-start;\",\n end: \"float: inline-end;\",\n};\n\nexport const CLEAR_MAP = {\n ...createSimpleMap(\"clear\", [\"left\", \"right\", \"both\", \"none\"]),\n start: \"clear: inline-start;\",\n end: \"clear: inline-end;\",\n};\n\n// \u2500\u2500\u2500 Optimized Object & Transform Maps \u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\n\nexport const ISOLATION_MAP = {\n isolate: \"isolation: isolate;\",\n \"isolation-auto\": \"isolation: auto;\",\n};\n\nexport const OBJECT_FIT_MAP = createSimpleMap(\"object-fit\", [\n \"contain\", \"cover\", \"fill\", \"none\", \"scale-down\"\n]);\n\nexport const TRANSFORM_STYLE_MAP = {\n \"transform-style-flat\": \"transform-style: flat;\",\n \"transform-style-3d\": \"transform-style: preserve-3d;\",\n \"transform-3d\": \"transform-style: preserve-3d;\",\n};\n\nexport const BACKFACE_MAP = {\n \"backface-visible\": \"backface-visibility: visible;\",\n \"backface-hidden\": \"backface-visibility: hidden;\",\n};\n\nexport const FIELD_SIZING_MAP = {\n \"field-sizing-fixed\": \"field-sizing: fixed;\",\n \"field-sizing-content\": \"field-sizing: content;\",\n};\n\nexport const BOX_SIZING_MAP = {\n border: \"box-sizing: border-box;\",\n content: \"box-sizing: content-box;\",\n};\n\n// \u2500\u2500\u2500 Optimized Break Maps \u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\n\nconst BREAK_AFTER_BEFORE_VALUES = [\n \"auto\", \"avoid\", \"avoid-page\", \"avoid-column\", \n \"page\", \"left\", \"right\", \"recto\", \"verso\"\n];\nexport const BREAK_AFTER_MAP = {\n ...createSimpleMap(\"break-after\", BREAK_AFTER_BEFORE_VALUES),\n all: \"break-after: all;\",\n};\n\nexport const BREAK_BEFORE_MAP = createSimpleMap(\"break-before\", BREAK_AFTER_BEFORE_VALUES);\n\nexport const BREAK_INSIDE_MAP = createSimpleMap(\"break-inside\", [\n \"auto\", \"avoid\", \"avoid-page\", \"avoid-column\"\n]);\n\n// \u2500\u2500\u2500 Optimized Misc Maps \u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\n\nexport const BOX_DECORATION_BREAK_MAP = createSimpleMap(\"box-decoration-break\", [\n \"slice\", \"clone\"\n]);\n\nexport const HYPHENS_MAP = createSimpleMap(\"hyphens\", [\"none\", \"manual\", \"auto\"]);\n\nexport const COLOR_SCHEME_MAP = createSimpleMap(\"color-scheme\", [\n \"light\", \"dark\", \"normal\"\n]);\n\nexport const SCROLLBAR_COLOR_MAP = createSimpleMap(\"scrollbar-color\", [\n \"auto\", \"transparent\", \"current\"\n]);\n\nexport const SCROLLBAR_WIDTH_MAP = createSimpleMap(\"scrollbar-width\", [\n \"auto\", \"thin\", \"none\"\n]);\n\nexport const SCROLLBAR_GUTTER_MAP = {\n auto: \"scrollbar-gutter: auto;\",\n stable: \"scrollbar-gutter: stable;\",\n \"stable-both-edges\": \"scrollbar-gutter: stable both-edges;\",\n \"both-edges\": \"scrollbar-gutter: both-edges;\",\n};\n\nexport const TABLE_LAYOUT_MAP = createSimpleMap(\"table-layout\", [\"auto\", \"fixed\"]);\n\nexport const CAPTION_SIDE_MAP = createSimpleMap(\"caption-side\", [\"top\", \"bottom\"]);\n\nexport const BORDER_COLLAPSE_MAP = createSimpleMap(\"border-collapse\", [\n \"collapse\", \"separate\"\n]);\n\nexport const SCROLL_BEHAVIOR_MAP = createSimpleMap(\"scroll-behavior\", [\n \"auto\", \"smooth\"\n]);\n\n// Shared side/axis helpers used by spacing, inset, border, etc.\nexport const SIDE_PROPS = {\n \"\": [\"\"],\n t: [\"-top\"],\n r: [\"-right\"],\n b: [\"-bottom\"],\n l: [\"-left\"],\n x: [\"-left\", \"-right\"],\n y: [\"-top\", \"-bottom\"],\n};\n\nexport const INSET_AXIS_PROPS = {\n x: [\"left\", \"right\"],\n y: [\"top\", \"bottom\"],\n};\n\nexport const ROUNDED_PROPS = {\n \"\": [\"border-radius\"],\n t: [\"border-top-left-radius\", \"border-top-right-radius\"],\n r: [\"border-top-right-radius\", \"border-bottom-right-radius\"],\n b: [\"border-bottom-right-radius\", \"border-bottom-left-radius\"],\n l: [\"border-top-left-radius\", \"border-bottom-left-radius\"],\n tl: [\"border-top-left-radius\"],\n tr: [\"border-top-right-radius\"],\n br: [\"border-bottom-right-radius\"],\n bl: [\"border-bottom-left-radius\"],\n ss: [\"border-start-start-radius\"],\n se: [\"border-start-end-radius\"],\n es: [\"border-end-start-radius\"],\n ee: [\"border-end-end-radius\"],\n};\n", "// \u2500\u2500\u2500 Factory Helper for Compressed Maps \u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\n\nfunction createSimpleMap(prop, values) {\n const map = {};\n values.forEach((value) => {\n map[value] = `${prop}: ${value};`;\n });\n return map;\n}\n\n// \u2500\u2500\u2500 Optimized Cursor Map \u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\n\nexport const CURSOR_MAP = createSimpleMap(\"cursor\", [\n \"auto\", \"default\", \"pointer\", \"wait\", \"text\", \"move\", \"help\",\n \"not-allowed\", \"none\", \"context-menu\", \"progress\", \"cell\",\n \"crosshair\", \"vertical-text\", \"alias\", \"copy\", \"no-drop\",\n \"grab\", \"grabbing\", \"all-scroll\", \"zoom-in\", \"zoom-out\"\n]);\n\n// \u2500\u2500\u2500 Optimized Interaction Maps \u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\n\nexport const POINTER_EVENTS_MAP = createSimpleMap(\"pointer-events\", [\"none\", \"auto\"]);\n\nexport const RESIZE_MAP = {\n none: \"resize: none;\",\n y: \"resize: vertical;\",\n x: \"resize: horizontal;\",\n resize: \"resize: both;\",\n};\n\nexport const USER_SELECT_MAP = createSimpleMap(\"user-select\", [\n \"none\", \"text\", \"all\", \"auto\"\n]);\n\nexport const APPEARANCE_MAP = createSimpleMap(\"appearance\", [\"none\", \"auto\"]);\n\nexport const TOUCH_ACTION_MAP = createSimpleMap(\"touch-action\", [\n \"auto\", \"none\", \"pan-x\", \"pan-left\", \"pan-right\", \"pan-y\",\n \"pan-up\", \"pan-down\", \"pinch-zoom\", \"manipulation\"\n]);\n\n// \u2500\u2500\u2500 Optimized Style Maps \u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\n\nexport const OUTLINE_STYLE_MAP = {\n none: \"outline: 2px solid transparent; outline-offset: 2px;\",\n ...createSimpleMap(\"outline-style\", [\"solid\", \"dashed\", \"dotted\", \"double\"]),\n};\n\nexport const BORDER_STYLE_MAP = createSimpleMap(\"border-style\", [\n \"solid\", \"dashed\", \"dotted\", \"double\", \"hidden\", \"none\"\n]);\n\n// \u2500\u2500\u2500 Transition Maps \u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\n\nexport const TRANSITION_PROPERTY_MAP = {\n none: \"none\",\n all: \"all\",\n DEFAULT: \"color, background-color, border-color, text-decoration-color, fill, stroke, opacity, box-shadow, transform, filter, backdrop-filter\",\n colors: \"color, background-color, border-color, text-decoration-color, fill, stroke\",\n opacity: \"opacity\",\n shadow: \"box-shadow\",\n transform: \"transform\",\n};\n\nexport const TRANSITION_TIMING_MAP = {\n linear: \"linear\",\n in: \"cubic-bezier(0.4, 0, 1, 1)\",\n out: \"cubic-bezier(0, 0, 0.2, 1)\",\n \"in-out\": \"cubic-bezier(0.4, 0, 0.2, 1)\",\n};\n", "import {\n DISPLAY_MAP,\n VISIBILITY_MAP,\n ISOLATION_MAP,\n OVERFLOW_MAP,\n OVERFLOW_X_MAP,\n OVERFLOW_Y_MAP,\n OVERSCROLL_MAP,\n OVERSCROLL_X_MAP,\n OVERSCROLL_Y_MAP,\n FLOAT_MAP,\n CLEAR_MAP,\n OBJECT_FIT_MAP,\n TRANSFORM_STYLE_MAP,\n BACKFACE_MAP,\n FIELD_SIZING_MAP,\n BOX_SIZING_MAP,\n TABLE_LAYOUT_MAP,\n CAPTION_SIDE_MAP,\n BORDER_COLLAPSE_MAP,\n BREAK_AFTER_MAP,\n BREAK_BEFORE_MAP,\n BREAK_INSIDE_MAP,\n BOX_DECORATION_BREAK_MAP,\n HYPHENS_MAP,\n COLOR_SCHEME_MAP,\n SCROLLBAR_COLOR_MAP,\n SCROLLBAR_WIDTH_MAP,\n SCROLLBAR_GUTTER_MAP,\n SCROLL_BEHAVIOR_MAP,\n SIDE_PROPS,\n INSET_AXIS_PROPS,\n POSITION_MAP,\n} from \"../maps/layout.maps.js\";\nimport { TOUCH_ACTION_MAP, APPEARANCE_MAP } from \"../maps/interactivity.maps.js\";\nimport { resolveThemeValue, resolveArbitraryValue } from \"../resolvers.js\";\n\nexport function buildLayoutDeclaration(baseToken, theme) {\n // overflow\n if (baseToken.startsWith(\"overflow-x-\")) return OVERFLOW_X_MAP[baseToken.slice(11)] ?? undefined;\n if (baseToken.startsWith(\"overflow-y-\")) return OVERFLOW_Y_MAP[baseToken.slice(11)] ?? undefined;\n if (baseToken.startsWith(\"overflow-\")) return OVERFLOW_MAP[baseToken.slice(9)] ?? undefined;\n\n // overscroll\n if (baseToken.startsWith(\"overscroll-x-\")) return OVERSCROLL_X_MAP[baseToken.slice(13)] ?? undefined;\n if (baseToken.startsWith(\"overscroll-y-\")) return OVERSCROLL_Y_MAP[baseToken.slice(13)] ?? undefined;\n if (baseToken.startsWith(\"overscroll-\")) return OVERSCROLL_MAP[baseToken.slice(11)] ?? undefined;\n\n // float / clear\n if (baseToken.startsWith(\"float-\")) return FLOAT_MAP[baseToken.slice(6)] ?? undefined;\n if (baseToken.startsWith(\"clear-\")) return CLEAR_MAP[baseToken.slice(6)] ?? undefined;\n\n // object-fit / object-position\n if (baseToken.startsWith(\"object-fit-\")) return OBJECT_FIT_MAP[baseToken.slice(11)] ?? undefined;\n if (baseToken.startsWith(\"object-\")) {\n const val = baseToken.slice(7);\n if (OBJECT_FIT_MAP[val]) return OBJECT_FIT_MAP[val];\n const pos = resolveThemeValue(theme.objectPosition || {}, val);\n if (pos !== undefined) return `object-position: ${pos};`;\n }\n\n // z-index (support negative)\n if (baseToken.startsWith(\"z-\") || baseToken.startsWith(\"-z-\")) {\n const negative = baseToken.startsWith(\"-\");\n const key = negative ? baseToken.slice(3) : baseToken.slice(2);\n const val = resolveThemeValue(theme.zIndex || {}, key);\n if (val !== undefined) return `z-index: ${negative ? `-${val}` : val};`;\n const arb = resolveArbitraryValue(negative ? baseToken.slice(3) : baseToken.slice(2));\n if (arb !== undefined) return `z-index: ${negative ? `-${arb}` : arb};`;\n }\n\n // order\n if (baseToken.startsWith(\"order-\")) {\n const val = resolveThemeValue(theme.order || {}, baseToken.slice(6));\n if (val !== undefined) return `order: ${val};`;\n }\n\n // break / page break\n if (baseToken.startsWith(\"break-after-\")) return BREAK_AFTER_MAP[baseToken.slice(12)] ?? undefined;\n if (baseToken.startsWith(\"break-before-\")) return BREAK_BEFORE_MAP[baseToken.slice(13)] ?? undefined;\n if (baseToken.startsWith(\"break-inside-\")) return BREAK_INSIDE_MAP[baseToken.slice(13)] ?? undefined;\n if (baseToken.startsWith(\"box-decoration-break-\")) return BOX_DECORATION_BREAK_MAP[baseToken.slice(21)] ?? undefined;\n\n // hyphens\n if (baseToken.startsWith(\"hyphens-\")) return HYPHENS_MAP[baseToken.slice(8)] ?? undefined;\n\n // color-scheme\n if (baseToken.startsWith(\"color-scheme-\")) return COLOR_SCHEME_MAP[baseToken.slice(13)] ?? undefined;\n\n // scrollbar utilities\n if (baseToken.startsWith(\"scrollbar-color-\")) return SCROLLBAR_COLOR_MAP[baseToken.slice(16)] ?? undefined;\n if (baseToken.startsWith(\"scrollbar-width-\")) return SCROLLBAR_WIDTH_MAP[baseToken.slice(16)] ?? undefined;\n if (baseToken.startsWith(\"scrollbar-gutter-\")) return SCROLLBAR_GUTTER_MAP[baseToken.slice(17)] ?? undefined;\n\n // scroll-behavior\n if (baseToken.startsWith(\"scroll-behavior-\")) return SCROLL_BEHAVIOR_MAP[baseToken.slice(16)] ?? undefined;\n\n // aspect-ratio\n if (baseToken.startsWith(\"aspect-\")) {\n const val = resolveThemeValue(theme.aspectRatio || {}, baseToken.slice(7));\n if (val !== undefined) return `aspect-ratio: ${val};`;\n const arb = resolveArbitraryValue(baseToken.slice(7));\n if (arb !== undefined) return `aspect-ratio: ${arb};`;\n }\n\n // columns\n if (baseToken.startsWith(\"columns-\")) {\n const val = resolveThemeValue(theme.columns || {}, baseToken.slice(8));\n if (val !== undefined) return `columns: ${val};`;\n }\n\n // box-sizing\n if (baseToken.startsWith(\"box-\")) return BOX_SIZING_MAP[baseToken.slice(4)] ?? undefined;\n\n // table layout / caption\n if (baseToken.startsWith(\"table-\")) {\n const key = baseToken.slice(6);\n if (TABLE_LAYOUT_MAP[key]) return TABLE_LAYOUT_MAP[key];\n }\n if (baseToken.startsWith(\"caption-\")) return CAPTION_SIDE_MAP[baseToken.slice(8)] ?? undefined;\n if (baseToken.startsWith(\"border-collapse\") || baseToken.startsWith(\"border-separate\")) {\n return BORDER_COLLAPSE_MAP[baseToken.slice(7)] ?? undefined;\n }\n\n // scroll-behavior / scroll-margin / scroll-padding\n if (baseToken.startsWith(\"scroll-\")) {\n const key = baseToken.slice(7);\n if (SCROLL_BEHAVIOR_MAP[key]) return SCROLL_BEHAVIOR_MAP[key];\n\n const smMatch = baseToken.match(/^scroll-m([trblxy]?)-(.+)$/);\n if (smMatch) {\n const [, side, valueKey] = smMatch;\n const val = resolveThemeValue(theme.scrollMargin || theme.spacing || {}, valueKey);\n if (val === undefined) return undefined;\n const suffixes = SIDE_PROPS[side] ?? undefined;\n if (!suffixes) return undefined;\n return suffixes.map((s) => `scroll-margin${s}: ${val};`).join(\" \");\n }\n\n const spMatch = baseToken.match(/^scroll-p([trblxy]?)-(.+)$/);\n if (spMatch) {\n const [, side, valueKey] = spMatch;\n const val = resolveThemeValue(theme.scrollPadding || theme.spacing || {}, valueKey);\n if (val === undefined) return undefined;\n const suffixes = SIDE_PROPS[side] ?? undefined;\n if (!suffixes) return undefined;\n return suffixes.map((s) => `scroll-padding${s}: ${val};`).join(\" \");\n }\n }\n\n // will-change\n if (baseToken.startsWith(\"will-change-\")) {\n const val = resolveThemeValue(theme.willChange || {}, baseToken.slice(12));\n if (val !== undefined) return `will-change: ${val};`;\n }\n\n // content (pseudo-element)\n if (baseToken.startsWith(\"content-\")) {\n const valueKey = baseToken.slice(8);\n if (valueKey.startsWith(\"[\") && valueKey.endsWith(\"]\")) {\n const arb = resolveArbitraryValue(valueKey);\n if (arb !== undefined) return `content: ${arb};`;\n } else {\n const val = resolveThemeValue(theme.content || {}, valueKey);\n if (val !== undefined) return `content: \"${val}\";`;\n }\n }\n\n // size-* (width + height shorthand)\n if (baseToken.startsWith(\"size-\")) {\n const val = resolveThemeValue(theme.size || theme.spacing || {}, baseToken.slice(5));\n if (val !== undefined) return `width: ${val}; height: ${val};`;\n }\n\n // static maps\n if (DISPLAY_MAP[baseToken]) return DISPLAY_MAP[baseToken];\n if (VISIBILITY_MAP[baseToken]) return VISIBILITY_MAP[baseToken];\n if (ISOLATION_MAP[baseToken]) return ISOLATION_MAP[baseToken];\n if (TRANSFORM_STYLE_MAP[baseToken]) return TRANSFORM_STYLE_MAP[baseToken];\n if (BACKFACE_MAP[baseToken]) return BACKFACE_MAP[baseToken];\n if (FIELD_SIZING_MAP[baseToken]) return FIELD_SIZING_MAP[baseToken];\n\n if (baseToken.startsWith(\"touch-\")) {\n const key = baseToken.slice(6);\n if (TOUCH_ACTION_MAP[key]) return TOUCH_ACTION_MAP[key];\n }\n if (TOUCH_ACTION_MAP[baseToken]) return TOUCH_ACTION_MAP[baseToken];\n if (APPEARANCE_MAP[baseToken]) return APPEARANCE_MAP[baseToken];\n\n return undefined;\n}\n\nexport function buildPositionInsetDeclaration(baseToken, theme) {\n if (POSITION_MAP[baseToken]) return POSITION_MAP[baseToken];\n\n const negative = baseToken.startsWith(\"-\");\n const normalized = negative ? baseToken.slice(1) : baseToken;\n const insetScale = theme.inset || theme.spacing || {};\n\n const directionalMatch = normalized.match(/^(top|right|bottom|left)-(.+)$/);\n if (directionalMatch) {\n const [, side, valueKey] = directionalMatch;\n let value = resolveThemeValue(insetScale, valueKey);\n if (value === undefined) return undefined;\n if (negative && value !== \"auto\") value = `-${value}`;\n return `${side}: ${value};`;\n }\n\n const axisMatch = normalized.match(/^inset-([xy])-(.+)$/);\n if (axisMatch) {\n const [, axis, valueKey] = axisMatch;\n let value = resolveThemeValue(insetScale, valueKey);\n if (value === undefined) return undefined;\n if (negative && value !== \"auto\") value = `-${value}`;\n const props = INSET_AXIS_PROPS[axis];\n if (!props) return undefined;\n return props.map((prop) => `${prop}: ${value};`).join(\" \");\n }\n\n const insetMatch = normalized.match(/^inset-(.+)$/);\n if (insetMatch) {\n const valueKey = insetMatch[1];\n let value = resolveThemeValue(insetScale, valueKey);\n if (value === undefined) return undefined;\n if (negative && value !== \"auto\") value = `-${value}`;\n return `top: ${value}; right: ${value}; bottom: ${value}; left: ${value};`;\n }\n\n return undefined;\n}\n", "import { SIDE_PROPS } from \"../maps/layout.maps.js\";\nimport { resolveThemeValue, resolveArbitraryValue } from \"../resolvers.js\";\n\nexport function buildSpacingDeclaration(baseToken, theme) {\n const negative = baseToken.startsWith(\"-\");\n const normalized = negative ? baseToken.slice(1) : baseToken;\n const match = normalized.match(/^(m|p)([trblxy]?)-(.+)$/);\n if (!match) return undefined;\n\n const [, kind, side, valueKey] = match;\n const baseProp = kind === \"m\" ? \"margin\" : \"padding\";\n\n let value = resolveThemeValue(theme.spacing || {}, valueKey);\n if (value === undefined && kind === \"m\" && valueKey === \"auto\") value = \"auto\";\n if (value === undefined) return undefined;\n if (negative && value !== \"auto\") value = `-${value}`;\n\n const suffixes = SIDE_PROPS[side];\n if (!suffixes) return undefined;\n return suffixes.map((s) => `${baseProp}${s}: ${value};`).join(\" \");\n}\n\nexport function buildGapDeclaration(baseToken, theme) {\n const match = baseToken.match(/^gap(?:-([xy]))?-(.+)$/);\n if (!match) return undefined;\n\n const [, axis = \"\", valueKey] = match;\n const gapScale = theme.gap || theme.spacing || {};\n const value = resolveThemeValue(gapScale, valueKey);\n if (value === undefined) return undefined;\n\n if (axis === \"x\") return `column-gap: ${value};`;\n if (axis === \"y\") return `row-gap: ${value};`;\n return `gap: ${value};`;\n}\n\nexport function buildDimensionDeclaration(baseToken, theme) {\n const patterns = [\n { prefix: \"min-inline-size-\", prop: \"min-inline-size\", scale: theme.minWidth || theme.width || theme.spacing || {} },\n { prefix: \"max-inline-size-\", prop: \"max-inline-size\", scale: theme.maxWidth || theme.width || theme.spacing || {} },\n { prefix: \"inline-size-\", prop: \"inline-size\", scale: theme.width || theme.spacing || {} },\n { prefix: \"min-block-size-\", prop: \"min-block-size\", scale: theme.minHeight || theme.height || theme.spacing || {} },\n { prefix: \"max-block-size-\", prop: \"max-block-size\", scale: theme.maxHeight || theme.height || theme.spacing || {} },\n { prefix: \"block-size-\", prop: \"block-size\", scale: theme.height || theme.spacing || {} },\n { prefix: \"min-w-\", prop: \"min-width\", scale: theme.minWidth || theme.width || {} },\n { prefix: \"max-w-\", prop: \"max-width\", scale: theme.maxWidth || theme.width || {} },\n { prefix: \"min-h-\", prop: \"min-height\", scale: theme.minHeight || theme.height || {} },\n { prefix: \"max-h-\", prop: \"max-height\", scale: theme.maxHeight || theme.height || {} },\n { prefix: \"w-\", prop: \"width\", scale: theme.width || {} },\n { prefix: \"h-\", prop: \"height\", scale: theme.height || {} },\n ];\n\n for (const pattern of patterns) {\n if (!baseToken.startsWith(pattern.prefix)) continue;\n const valueKey = baseToken.slice(pattern.prefix.length);\n let value = resolveThemeValue(pattern.scale, valueKey);\n if (value === undefined) value = resolveThemeValue(theme.spacing || {}, valueKey);\n if (value === undefined) {\n const arb = resolveArbitraryValue(valueKey);\n if (arb !== undefined) return `${pattern.prop}: ${arb};`;\n return undefined;\n }\n return `${pattern.prop}: ${value};`;\n }\n\n return undefined;\n}\n", "export const FLEX_DIRECTION_MAP = {\n row: \"flex-direction: row;\",\n \"row-reverse\": \"flex-direction: row-reverse;\",\n col: \"flex-direction: column;\",\n \"col-reverse\": \"flex-direction: column-reverse;\",\n};\n\nexport const FLEX_WRAP_MAP = {\n nowrap: \"flex-wrap: nowrap;\",\n wrap: \"flex-wrap: wrap;\",\n \"wrap-reverse\": \"flex-wrap: wrap-reverse;\",\n};\n\nexport const ALIGN_CONTENT_MAP = {\n normal: \"align-content: normal;\",\n center: \"align-content: center;\",\n start: \"align-content: flex-start;\",\n end: \"align-content: flex-end;\",\n between: \"align-content: space-between;\",\n around: \"align-content: space-around;\",\n evenly: \"align-content: space-evenly;\",\n baseline: \"align-content: baseline;\",\n stretch: \"align-content: stretch;\",\n};\n\nexport const ALIGN_SELF_MAP = {\n auto: \"align-self: auto;\",\n start: \"align-self: flex-start;\",\n end: \"align-self: flex-end;\",\n center: \"align-self: center;\",\n stretch: \"align-self: stretch;\",\n baseline: \"align-self: baseline;\",\n};\n\nexport const ALIGN_ITEMS_MAP = {\n start: \"align-items: flex-start;\",\n end: \"align-items: flex-end;\",\n center: \"align-items: center;\",\n baseline: \"align-items: baseline;\",\n stretch: \"align-items: stretch;\",\n};\n\nexport const JUSTIFY_CONTENT_MAP = {\n normal: \"justify-content: normal;\",\n start: \"justify-content: flex-start;\",\n end: \"justify-content: flex-end;\",\n center: \"justify-content: center;\",\n between: \"justify-content: space-between;\",\n around: \"justify-content: space-around;\",\n evenly: \"justify-content: space-evenly;\",\n stretch: \"justify-content: stretch;\",\n};\n\nexport const JUSTIFY_ITEMS_MAP = {\n normal: \"justify-items: normal;\",\n start: \"justify-items: start;\",\n end: \"justify-items: end;\",\n center: \"justify-items: center;\",\n stretch: \"justify-items: stretch;\",\n};\n\nexport const JUSTIFY_SELF_MAP = {\n auto: \"justify-self: auto;\",\n start: \"justify-self: start;\",\n end: \"justify-self: end;\",\n center: \"justify-self: center;\",\n stretch: \"justify-self: stretch;\",\n};\n\nexport const PLACE_CONTENT_MAP = {\n center: \"place-content: center;\",\n start: \"place-content: start;\",\n end: \"place-content: end;\",\n between: \"place-content: space-between;\",\n around: \"place-content: space-around;\",\n evenly: \"place-content: space-evenly;\",\n baseline: \"place-content: baseline;\",\n stretch: \"place-content: stretch;\",\n};\n\nexport const PLACE_ITEMS_MAP = {\n start: \"place-items: start;\",\n end: \"place-items: end;\",\n center: \"place-items: center;\",\n baseline: \"place-items: baseline;\",\n stretch: \"place-items: stretch;\",\n};\n\nexport const PLACE_SELF_MAP = {\n auto: \"place-self: auto;\",\n start: \"place-self: start;\",\n end: \"place-self: end;\",\n center: \"place-self: center;\",\n stretch: \"place-self: stretch;\",\n};\n\nexport const GRID_AUTO_FLOW_MAP = {\n row: \"grid-auto-flow: row;\",\n col: \"grid-auto-flow: column;\",\n dense: \"grid-auto-flow: dense;\",\n \"row-dense\": \"grid-auto-flow: row dense;\",\n \"col-dense\": \"grid-auto-flow: column dense;\",\n};\n", "import {\n FLEX_DIRECTION_MAP,\n FLEX_WRAP_MAP,\n ALIGN_CONTENT_MAP,\n ALIGN_SELF_MAP,\n ALIGN_ITEMS_MAP,\n JUSTIFY_CONTENT_MAP,\n JUSTIFY_ITEMS_MAP,\n JUSTIFY_SELF_MAP,\n PLACE_CONTENT_MAP,\n PLACE_ITEMS_MAP,\n PLACE_SELF_MAP,\n GRID_AUTO_FLOW_MAP,\n} from \"../maps/flexgrid.maps.js\";\nimport { resolveThemeValue, resolveArbitraryValue } from \"../resolvers.js\";\n\nexport function buildFlexGridDeclaration(baseToken, theme) {\n // grow / shrink (v4 canonical)\n if (baseToken === \"grow\") return \"flex-grow: 1;\";\n if (baseToken === \"grow-0\") return \"flex-grow: 0;\";\n if (baseToken === \"shrink\") return \"flex-shrink: 1;\";\n if (baseToken === \"shrink-0\") return \"flex-shrink: 0;\";\n\n if (baseToken.startsWith(\"grow-\")) {\n const val = resolveThemeValue(theme.flexGrow || {}, baseToken.slice(5));\n if (val !== undefined) return `flex-grow: ${val};`;\n }\n if (baseToken.startsWith(\"shrink-\")) {\n const val = resolveThemeValue(theme.flexShrink || {}, baseToken.slice(7));\n if (val !== undefined) return `flex-shrink: ${val};`;\n }\n\n // flex-basis\n if (baseToken.startsWith(\"basis-\")) {\n const val = resolveThemeValue(theme.flexBasis || theme.spacing || {}, baseToken.slice(6));\n if (val !== undefined) return `flex-basis: ${val};`;\n }\n\n // flex shorthand\n if (baseToken === \"flex-1\") return \"flex: 1 1 0%;\";\n if (baseToken === \"flex-auto\") return \"flex: 1 1 auto;\";\n if (baseToken === \"flex-initial\") return \"flex: 0 1 auto;\";\n if (baseToken === \"flex-none\") return \"flex: none;\";\n if (baseToken.startsWith(\"flex-\")) {\n const value = baseToken.slice(5);\n if (FLEX_DIRECTION_MAP[value]) return FLEX_DIRECTION_MAP[value];\n if (FLEX_WRAP_MAP[value]) return FLEX_WRAP_MAP[value];\n const themeVal = resolveThemeValue(theme.flex || {}, value);\n if (themeVal !== undefined) return `flex: ${themeVal};`;\n }\n\n // align-content\n if (baseToken.startsWith(\"content-\")) {\n const key = baseToken.slice(8);\n if (ALIGN_CONTENT_MAP[key]) return ALIGN_CONTENT_MAP[key];\n }\n\n // align-self\n if (baseToken.startsWith(\"self-\")) return ALIGN_SELF_MAP[baseToken.slice(5)] ?? undefined;\n\n // justify-*\n if (baseToken.startsWith(\"justify-items-\")) return JUSTIFY_ITEMS_MAP[baseToken.slice(14)] ?? undefined;\n if (baseToken.startsWith(\"justify-self-\")) return JUSTIFY_SELF_MAP[baseToken.slice(13)] ?? undefined;\n if (baseToken.startsWith(\"justify-\")) return JUSTIFY_CONTENT_MAP[baseToken.slice(8)] ?? undefined;\n\n // align-items\n if (baseToken.startsWith(\"items-\")) return ALIGN_ITEMS_MAP[baseToken.slice(6)] ?? undefined;\n\n // place-*\n if (baseToken.startsWith(\"place-content-\")) return PLACE_CONTENT_MAP[baseToken.slice(14)] ?? undefined;\n if (baseToken.startsWith(\"place-items-\")) return PLACE_ITEMS_MAP[baseToken.slice(12)] ?? undefined;\n if (baseToken.startsWith(\"place-self-\")) return PLACE_SELF_MAP[baseToken.slice(11)] ?? undefined;\n\n // grid-auto-flow\n if (baseToken.startsWith(\"grid-flow-\")) return GRID_AUTO_FLOW_MAP[baseToken.slice(10)] ?? undefined;\n\n // grid-auto-columns / rows\n if (baseToken.startsWith(\"auto-cols-\")) {\n const val = resolveThemeValue(theme.gridAutoColumns || {}, baseToken.slice(10));\n if (val !== undefined) return `grid-auto-columns: ${val};`;\n }\n if (baseToken.startsWith(\"auto-rows-\")) {\n const val = resolveThemeValue(theme.gridAutoRows || {}, baseToken.slice(10));\n if (val !== undefined) return `grid-auto-rows: ${val};`;\n }\n\n // grid-template-columns\n if (baseToken.startsWith(\"grid-cols-\")) {\n const valueKey = baseToken.slice(10);\n const direct = resolveThemeValue(theme.gridTemplateColumns || {}, valueKey);\n if (direct !== undefined) return `grid-template-columns: ${direct};`;\n if (/^\\d+$/.test(valueKey)) return `grid-template-columns: repeat(${valueKey}, minmax(0, 1fr));`;\n const arb = resolveArbitraryValue(valueKey);\n if (arb !== undefined) return `grid-template-columns: ${arb};`;\n }\n\n // grid-template-rows\n if (baseToken.startsWith(\"grid-rows-\")) {\n const valueKey = baseToken.slice(10);\n const direct = resolveThemeValue(theme.gridTemplateRows || {}, valueKey);\n if (direct !== undefined) return `grid-template-rows: ${direct};`;\n if (/^\\d+$/.test(valueKey)) return `grid-template-rows: repeat(${valueKey}, minmax(0, 1fr));`;\n const arb = resolveArbitraryValue(valueKey);\n if (arb !== undefined) return `grid-template-rows: ${arb};`;\n }\n\n // col span / start / end\n if (baseToken.startsWith(\"col-\")) {\n const val = resolveThemeValue(theme.gridColumn || {}, baseToken.slice(4));\n if (val !== undefined) return `grid-column: ${val};`;\n const spanMatch = baseToken.match(/^col-span-(\\d+)$/);\n if (spanMatch) return `grid-column: span ${spanMatch[1]} / span ${spanMatch[1]};`;\n if (baseToken === \"col-auto\") return \"grid-column: auto;\";\n if (baseToken.startsWith(\"col-start-\")) {\n const sv = resolveThemeValue(theme.gridColumnStart || {}, baseToken.slice(10));\n if (sv !== undefined) return `grid-column-start: ${sv};`;\n }\n if (baseToken.startsWith(\"col-end-\")) {\n const ev = resolveThemeValue(theme.gridColumnEnd || {}, baseToken.slice(8));\n if (ev !== undefined) return `grid-column-end: ${ev};`;\n }\n }\n\n // row span / start / end\n if (baseToken.startsWith(\"row-\")) {\n const val = resolveThemeValue(theme.gridRow || {}, baseToken.slice(4));\n if (val !== undefined) return `grid-row: ${val};`;\n const spanMatch = baseToken.match(/^row-span-(\\d+)$/);\n if (spanMatch) return `grid-row: span ${spanMatch[1]} / span ${spanMatch[1]};`;\n if (baseToken === \"row-auto\") return \"grid-row: auto;\";\n if (baseToken.startsWith(\"row-start-\")) {\n const sv = resolveThemeValue(theme.gridRowStart || {}, baseToken.slice(10));\n if (sv !== undefined) return `grid-row-start: ${sv};`;\n }\n if (baseToken.startsWith(\"row-end-\")) {\n const ev = resolveThemeValue(theme.gridRowEnd || {}, baseToken.slice(8));\n if (ev !== undefined) return `grid-row-end: ${ev};`;\n }\n }\n\n return undefined;\n}\n", "export const TEXT_ALIGN_MAP = {\n left: \"text-align: left;\",\n center: \"text-align: center;\",\n right: \"text-align: right;\",\n justify: \"text-align: justify;\",\n start: \"text-align: start;\",\n end: \"text-align: end;\",\n};\n\nexport const TEXT_DECORATION_MAP = {\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};\n\nexport const TEXT_DECORATION_STYLE_MAP = {\n solid: \"text-decoration-style: solid;\",\n double: \"text-decoration-style: double;\",\n dotted: \"text-decoration-style: dotted;\",\n dashed: \"text-decoration-style: dashed;\",\n wavy: \"text-decoration-style: wavy;\",\n};\n\nexport const TEXT_TRANSFORM_MAP = {\n uppercase: \"text-transform: uppercase;\",\n lowercase: \"text-transform: lowercase;\",\n capitalize: \"text-transform: capitalize;\",\n \"normal-case\": \"text-transform: none;\",\n};\n\nexport const TEXT_OVERFLOW_MAP = {\n truncate: \"overflow: hidden; text-overflow: ellipsis; white-space: nowrap;\",\n \"overflow-ellipsis\": \"text-overflow: ellipsis;\",\n \"text-ellipsis\": \"text-overflow: ellipsis;\",\n \"text-clip\": \"text-overflow: clip;\",\n};\n\nexport const WHITESPACE_MAP = {\n normal: \"white-space: normal;\",\n nowrap: \"white-space: nowrap;\",\n pre: \"white-space: pre;\",\n \"pre-line\": \"white-space: pre-line;\",\n \"pre-wrap\": \"white-space: pre-wrap;\",\n \"break-spaces\": \"white-space: break-spaces;\",\n};\n\nexport const WORD_BREAK_MAP = {\n \"break-normal\": \"overflow-wrap: normal; word-break: normal;\",\n \"break-words\": \"overflow-wrap: break-word;\",\n \"break-all\": \"word-break: break-all;\",\n \"break-keep\": \"word-break: keep-all;\",\n};\n\nexport const FONT_STYLE_MAP = {\n italic: \"font-style: italic;\",\n \"not-italic\": \"font-style: normal;\",\n};\n\nexport const FONT_STRETCH_MAP = {\n \"ultra-condensed\": \"font-stretch: ultra-condensed;\",\n \"extra-condensed\": \"font-stretch: extra-condensed;\",\n condensed: \"font-stretch: condensed;\",\n \"semi-condensed\": \"font-stretch: semi-condensed;\",\n normal: \"font-stretch: normal;\",\n \"semi-expanded\": \"font-stretch: semi-expanded;\",\n expanded: \"font-stretch: expanded;\",\n \"extra-expanded\": \"font-stretch: extra-expanded;\",\n \"ultra-expanded\": \"font-stretch: ultra-expanded;\",\n};\n\nexport const FONT_VARIANT_NUMERIC_MAP = {\n ordinal: \"font-variant-numeric: ordinal;\",\n \"slashed-zero\": \"font-variant-numeric: slashed-zero;\",\n \"lining-nums\": \"font-variant-numeric: lining-nums;\",\n \"oldstyle-nums\": \"font-variant-numeric: oldstyle-nums;\",\n \"proportional-nums\": \"font-variant-numeric: proportional-nums;\",\n \"tabular-nums\": \"font-variant-numeric: tabular-nums;\",\n \"diagonal-fractions\": \"font-variant-numeric: diagonal-fractions;\",\n \"stacked-fractions\": \"font-variant-numeric: stacked-fractions;\",\n};\n\nexport const LIST_STYLE_IMAGE_MAP = {\n none: \"list-style-image: none;\",\n};\n\nexport const HYPHENS_MAP = {\n none: \"hyphens: none;\",\n manual: \"hyphens: manual;\",\n auto: \"hyphens: auto;\",\n};\n\nexport const FONT_SMOOTHING_MAP = {\n antialiased: \"-webkit-font-smoothing: antialiased; -moz-osx-font-smoothing: grayscale;\",\n \"subpixel-antialiased\": \"-webkit-font-smoothing: auto; -moz-osx-font-smoothing: auto;\",\n};\n\nexport const LIST_STYLE_POSITION_MAP = {\n inside: \"list-style-position: inside;\",\n outside: \"list-style-position: outside;\",\n};\n\nexport const VERTICAL_ALIGN_MAP = {\n baseline: \"vertical-align: baseline;\",\n top: \"vertical-align: top;\",\n middle: \"vertical-align: middle;\",\n bottom: \"vertical-align: bottom;\",\n \"text-top\": \"vertical-align: text-top;\",\n \"text-bottom\": \"vertical-align: text-bottom;\",\n sub: \"vertical-align: sub;\",\n super: \"vertical-align: super;\",\n};\n", "import {\n TEXT_ALIGN_MAP,\n TEXT_DECORATION_MAP,\n TEXT_DECORATION_STYLE_MAP,\n TEXT_TRANSFORM_MAP,\n TEXT_OVERFLOW_MAP,\n WHITESPACE_MAP,\n WORD_BREAK_MAP,\n FONT_STYLE_MAP,\n FONT_SMOOTHING_MAP,\n FONT_STRETCH_MAP,\n FONT_VARIANT_NUMERIC_MAP,\n LIST_STYLE_IMAGE_MAP,\n HYPHENS_MAP,\n LIST_STYLE_POSITION_MAP,\n VERTICAL_ALIGN_MAP,\n} from \"../maps/typography.maps.js\";\nimport { resolveThemeValue, resolveColorWithOpacity } from \"../resolvers.js\";\n\nexport function buildTypographyDeclaration(baseToken, theme) {\n // static keyword maps\n if (TEXT_DECORATION_MAP[baseToken]) return TEXT_DECORATION_MAP[baseToken];\n if (TEXT_TRANSFORM_MAP[baseToken]) return TEXT_TRANSFORM_MAP[baseToken];\n if (TEXT_OVERFLOW_MAP[baseToken]) return TEXT_OVERFLOW_MAP[baseToken];\n if (WORD_BREAK_MAP[baseToken]) return WORD_BREAK_MAP[baseToken];\n if (FONT_STYLE_MAP[baseToken]) return FONT_STYLE_MAP[baseToken];\n if (FONT_SMOOTHING_MAP[baseToken]) return FONT_SMOOTHING_MAP[baseToken];\n\n // text-*\n if (baseToken.startsWith(\"text-\")) {\n const valueKey = baseToken.slice(5);\n if (TEXT_ALIGN_MAP[valueKey]) return TEXT_ALIGN_MAP[valueKey];\n\n const fontSize = resolveThemeValue(theme.fontSize || {}, valueKey);\n if (fontSize !== undefined) {\n if (Array.isArray(fontSize)) return `font-size: ${fontSize[0]};`;\n return `font-size: ${fontSize};`;\n }\n\n const color = resolveColorWithOpacity(theme.colors || {}, valueKey);\n if (color !== undefined) return `color: ${color};`;\n }\n\n // font-*\n if (baseToken.startsWith(\"font-\")) {\n const valueKey = baseToken.slice(5);\n const fontWeight = resolveThemeValue(theme.fontWeight || {}, valueKey);\n if (fontWeight !== undefined) return `font-weight: ${fontWeight};`;\n const fontFamily = resolveThemeValue(theme.fontFamily || {}, valueKey);\n if (fontFamily !== undefined) {\n if (Array.isArray(fontFamily)) return `font-family: ${fontFamily.join(\", \")};`;\n return `font-family: ${fontFamily};`;\n }\n }\n\n if (baseToken.startsWith(\"font-stretch-\")) {\n return FONT_STRETCH_MAP[baseToken.slice(13)] ?? undefined;\n }\n\n if (baseToken.startsWith(\"font-variant-numeric-\")) {\n return FONT_VARIANT_NUMERIC_MAP[baseToken.slice(21)] ?? undefined;\n }\n\n // leading-* (line-height)\n if (baseToken.startsWith(\"leading-\")) {\n const val = resolveThemeValue(theme.lineHeight || {}, baseToken.slice(8));\n if (val !== undefined) return `line-height: ${val};`;\n }\n\n // tracking-* (letter-spacing)\n if (baseToken.startsWith(\"tracking-\")) {\n const val = resolveThemeValue(theme.letterSpacing || {}, baseToken.slice(9));\n if (val !== undefined) return `letter-spacing: ${val};`;\n }\n\n // decoration-* (style / thickness / color)\n if (baseToken.startsWith(\"decoration-\")) {\n const key = baseToken.slice(11);\n if (TEXT_DECORATION_STYLE_MAP[key]) return TEXT_DECORATION_STYLE_MAP[key];\n const thicknessVal = resolveThemeValue(theme.textDecorationThickness || {}, key);\n if (thicknessVal !== undefined) return `text-decoration-thickness: ${thicknessVal};`;\n const color = resolveColorWithOpacity(theme.colors || {}, key);\n if (color !== undefined) return `text-decoration-color: ${color};`;\n }\n\n // underline-offset\n if (baseToken.startsWith(\"underline-offset-\")) {\n const val = resolveThemeValue(theme.textUnderlineOffset || {}, baseToken.slice(17));\n if (val !== undefined) return `text-underline-offset: ${val};`;\n }\n\n // indent\n if (baseToken.startsWith(\"indent-\")) {\n const val = resolveThemeValue(theme.textIndent || theme.spacing || {}, baseToken.slice(7));\n if (val !== undefined) return `text-indent: ${val};`;\n }\n\n // list-*\n if (baseToken.startsWith(\"list-\")) {\n const key = baseToken.slice(5);\n if (LIST_STYLE_POSITION_MAP[key]) return LIST_STYLE_POSITION_MAP[key];\n if (LIST_STYLE_IMAGE_MAP[baseToken]) return LIST_STYLE_IMAGE_MAP[baseToken.slice(17)] ?? undefined;\n const val = resolveThemeValue(theme.listStyleType || {}, key);\n if (val !== undefined) return `list-style-type: ${val};`;\n }\n\n if (baseToken.startsWith(\"list-style-image-\")) {\n return LIST_STYLE_IMAGE_MAP[baseToken.slice(17)] ?? undefined;\n }\n\n // whitespace-*\n if (baseToken.startsWith(\"whitespace-\")) {\n const key = baseToken.slice(11);\n if (WHITESPACE_MAP[key]) return WHITESPACE_MAP[key];\n }\n\n // hyphens\n if (baseToken.startsWith(\"hyphens-\")) return HYPHENS_MAP[baseToken.slice(8)] ?? undefined;\n\n // text-wrap-*\n if (baseToken === \"text-wrap\") return \"text-wrap: wrap;\";\n if (baseToken === \"text-nowrap\") return \"text-wrap: nowrap;\";\n if (baseToken === \"text-balance\") return \"text-wrap: balance;\";\n if (baseToken === \"text-pretty\") return \"text-wrap: pretty;\";\n\n // align-* (vertical-align)\n if (baseToken.startsWith(\"align-\")) {\n const key = baseToken.slice(6);\n if (VERTICAL_ALIGN_MAP[key]) return VERTICAL_ALIGN_MAP[key];\n }\n\n // line-clamp-*\n if (baseToken === \"line-clamp-none\") {\n return \"overflow: visible; display: block; -webkit-box-orient: horizontal; -webkit-line-clamp: unset;\";\n }\n if (baseToken.startsWith(\"line-clamp-\")) {\n const val = resolveThemeValue(theme.lineClamp || {}, baseToken.slice(11));\n if (val !== undefined) {\n return `overflow: hidden; display: -webkit-box; -webkit-box-orient: vertical; -webkit-line-clamp: ${val};`;\n }\n // numeric fallback\n const num = baseToken.slice(11);\n if (/^\\d+$/.test(num)) {\n return `overflow: hidden; display: -webkit-box; -webkit-box-orient: vertical; -webkit-line-clamp: ${num};`;\n }\n }\n\n return undefined;\n}\n", "import { OUTLINE_STYLE_MAP } from \"../maps/interactivity.maps.js\";\nimport { resolveThemeValue, resolveColorWithOpacity } from \"../resolvers.js\";\n\nexport function buildColorDeclaration(baseToken, theme) {\n const colors = theme.colors || {};\n\n // background-color (non-image: handled in backgrounds.js)\n if (baseToken.startsWith(\"bg-\")) {\n const key = baseToken.slice(3);\n const color = resolveColorWithOpacity(colors, key);\n if (color !== undefined) return `background-color: ${color};`;\n }\n\n // border-color\n if (baseToken.startsWith(\"border-\")) {\n const key = baseToken.slice(7);\n const color = resolveColorWithOpacity(colors, key);\n if (color !== undefined) return `border-color: ${color};`;\n }\n\n // fill / stroke\n if (baseToken.startsWith(\"fill-\")) {\n const val = resolveColorWithOpacity({ ...colors, none: \"none\" }, baseToken.slice(5));\n if (val !== undefined) return `fill: ${val};`;\n }\n if (baseToken.startsWith(\"stroke-\")) {\n const key = baseToken.slice(7);\n const width = resolveThemeValue(theme.strokeWidth || {}, key);\n if (width !== undefined) return `stroke-width: ${width};`;\n const color = resolveColorWithOpacity({ ...colors, none: \"none\" }, key);\n if (color !== undefined) return `stroke: ${color};`;\n }\n\n // outline-color / width / offset / style\n if (baseToken.startsWith(\"outline-\")) {\n const key = baseToken.slice(8);\n if (OUTLINE_STYLE_MAP[key]) return OUTLINE_STYLE_MAP[key];\n const width = resolveThemeValue(theme.outlineWidth || {}, key);\n if (width !== undefined) return `outline-width: ${width};`;\n const offset = resolveThemeValue(theme.outlineOffset || {}, key);\n if (offset !== undefined) return `outline-offset: ${offset};`;\n const color = resolveColorWithOpacity(theme.outlineColor || colors, key);\n if (color !== undefined) return `outline-color: ${color};`;\n }\n\n // caret-color\n if (baseToken.startsWith(\"caret-\")) {\n const color = resolveColorWithOpacity(theme.caretColor || colors, baseToken.slice(6));\n if (color !== undefined) return `caret-color: ${color};`;\n }\n\n // accent-color\n if (baseToken.startsWith(\"accent-\")) {\n const color = resolveColorWithOpacity({ ...colors, auto: \"auto\" }, baseToken.slice(7));\n if (color !== undefined) return `accent-color: ${color};`;\n }\n\n // placeholder-color\n if (baseToken.startsWith(\"placeholder-\")) {\n const color = resolveColorWithOpacity(colors, baseToken.slice(12));\n if (color !== undefined) return `--tw-placeholder-color: ${color};`;\n }\n\n return undefined;\n}\n", "import { BORDER_STYLE_MAP } from \"../maps/interactivity.maps.js\";\nimport { ROUNDED_PROPS } from \"../maps/layout.maps.js\";\nimport { resolveThemeValue } from \"../resolvers.js\";\n\nexport function buildBorderDeclaration(baseToken, theme) {\n if (baseToken === \"border\") {\n const value = resolveThemeValue(theme.borderWidth || {}, \"DEFAULT\") || \"1px\";\n return `border-width: ${value};`;\n }\n\n // border-{side}-{width?}\n const sideMatch = baseToken.match(/^border-([trblxy])-?(\\d+)?$/);\n if (sideMatch) {\n const [, side, numVal] = sideMatch;\n const sideMap = { t: \"top\", r: \"right\", b: \"bottom\", l: \"left\" };\n const widthKey = numVal || \"DEFAULT\";\n const widthVal = resolveThemeValue(theme.borderWidth || {}, widthKey);\n if (widthVal === undefined) return undefined;\n if (side === \"x\") return `border-left-width: ${widthVal}; border-right-width: ${widthVal};`;\n if (side === \"y\") return `border-top-width: ${widthVal}; border-bottom-width: ${widthVal};`;\n return `border-${sideMap[side]}-width: ${widthVal};`;\n }\n\n // border-{number}\n const widthMatch = baseToken.match(/^border-(\\d+)$/);\n if (widthMatch) {\n const value = resolveThemeValue(theme.borderWidth || {}, widthMatch[1]);\n if (value !== undefined) return `border-width: ${value};`;\n }\n\n // border-style keywords\n if (baseToken.startsWith(\"border-\")) {\n const key = baseToken.slice(7);\n if (BORDER_STYLE_MAP[key]) return BORDER_STYLE_MAP[key];\n }\n\n return undefined;\n}\n\nexport function buildBorderRadiusDeclaration(baseToken, theme) {\n if (!baseToken.startsWith(\"rounded\")) return undefined;\n\n const match = baseToken.match(/^rounded(?:-(tl|tr|br|bl|ss|se|es|ee|t|r|b|l))?(?:-(.+))?$/);\n if (!match) return undefined;\n\n const [, side = \"\", rawValueKey] = match;\n const valueKey = rawValueKey || \"DEFAULT\";\n const radius = resolveThemeValue(theme.borderRadius || {}, valueKey);\n if (radius === undefined) return undefined;\n\n const props = ROUNDED_PROPS[side];\n if (!props) return undefined;\n return props.map((prop) => `${prop}: ${radius};`).join(\" \");\n}\n", "export const ANIMATE_MAP = {\n none: \"animation: none;\",\n spin: \"animation: spin 1s linear infinite;\",\n ping: \"animation: ping 1s cubic-bezier(0,0,0.2,1) infinite;\",\n pulse: \"animation: pulse 2s cubic-bezier(0.4,0,0.6,1) infinite;\",\n bounce: \"animation: bounce 1s infinite;\",\n};\n\nexport const INSET_SHADOW_SIZES = {\n none: \"box-shadow: none;\",\n xs: \"box-shadow: inset 0 1px 1px 0 rgb(0 0 0 / 0.05);\",\n sm: \"box-shadow: inset 0 1px 2px 0 rgb(0 0 0 / 0.1);\",\n DEFAULT: \"box-shadow: inset 0 2px 4px 0 rgb(0 0 0 / 0.1);\",\n md: \"box-shadow: inset 0 2px 6px 0 rgb(0 0 0 / 0.1);\",\n lg: \"box-shadow: inset 0 4px 8px 0 rgb(0 0 0 / 0.15);\",\n};\n\nexport const PERSPECTIVE_MAP = {\n none: \"perspective: none;\",\n dramatic: \"perspective: 100px;\",\n near: \"perspective: 300px;\",\n normal: \"perspective: 500px;\",\n midrange: \"perspective: 800px;\",\n distant: \"perspective: 1200px;\",\n};\n\nexport const PERSPECTIVE_ORIGIN_MAP = {\n center: \"perspective-origin: center;\",\n top: \"perspective-origin: top;\",\n bottom: \"perspective-origin: bottom;\",\n left: \"perspective-origin: left;\",\n right: \"perspective-origin: right;\",\n \"top-left\": \"perspective-origin: top left;\",\n \"top-right\": \"perspective-origin: top right;\",\n \"bottom-left\": \"perspective-origin: bottom left;\",\n \"bottom-right\": \"perspective-origin: bottom right;\",\n};\n\nexport const MASK_CLIP_MAP = {\n \"mask-clip-border\": \"mask-clip: border; -webkit-mask-clip: border;\",\n \"mask-clip-padding\": \"mask-clip: padding; -webkit-mask-clip: padding;\",\n \"mask-clip-content\": \"mask-clip: content; -webkit-mask-clip: content;\",\n \"mask-clip-text\": \"mask-clip: text; -webkit-mask-clip: text;\",\n};\n\nexport const MASK_COMPOSITE_MAP = {\n \"mask-composite-add\": \"mask-composite: add; -webkit-mask-composite: add;\",\n \"mask-composite-subtract\": \"mask-composite: subtract; -webkit-mask-composite: subtract;\",\n \"mask-composite-intersect\": \"mask-composite: intersect; -webkit-mask-composite: intersect;\",\n \"mask-composite-exclude\": \"mask-composite: exclude; -webkit-mask-composite: exclude;\",\n \"mask-composite-replace\": \"mask-composite: replace; -webkit-mask-composite: replace;\",\n \"mask-composite-xor\": \"mask-composite: xor; -webkit-mask-composite: xor;\",\n};\n\nexport const MASK_MODE_MAP = {\n \"mask-mode-alpha\": \"mask-mode: alpha; -webkit-mask-mode: alpha;\",\n \"mask-mode-luminance\": \"mask-mode: luminance; -webkit-mask-mode: luminance;\",\n \"mask-mode-match-source\": \"mask-mode: match-source; -webkit-mask-mode: match-source;\",\n};\n\nexport const MASK_ORIGIN_MAP = {\n \"mask-origin-border\": \"mask-origin: border-box; -webkit-mask-origin: border-box;\",\n \"mask-origin-padding\": \"mask-origin: padding-box; -webkit-mask-origin: padding-box;\",\n \"mask-origin-content\": \"mask-origin: content-box; -webkit-mask-origin: content-box;\",\n \"mask-origin-fill\": \"mask-origin: fill-box; -webkit-mask-origin: fill-box;\",\n \"mask-origin-stroke\": \"mask-origin: stroke-box; -webkit-mask-origin: stroke-box;\",\n \"mask-origin-view\": \"mask-origin: view-box; -webkit-mask-origin: view-box;\",\n};\n\nexport const MASK_TYPE_MAP = {\n \"mask-type-luminance\": \"mask-type: luminance; -webkit-mask-type: luminance;\",\n \"mask-type-alpha\": \"mask-type: alpha; -webkit-mask-type: alpha;\",\n};\n\nexport const MASK_LINEAR_MAP = {\n \"mask-linear-to-t\": \"mask-image: linear-gradient(to top, black, transparent); -webkit-mask-image: linear-gradient(to top, black, transparent);\",\n \"mask-linear-to-tr\": \"mask-image: linear-gradient(to top right, black, transparent); -webkit-mask-image: linear-gradient(to top right, black, transparent);\",\n \"mask-linear-to-r\": \"mask-image: linear-gradient(to right, black, transparent); -webkit-mask-image: linear-gradient(to right, black, transparent);\",\n \"mask-linear-to-br\": \"mask-image: linear-gradient(to bottom right, black, transparent); -webkit-mask-image: linear-gradient(to bottom right, black, transparent);\",\n \"mask-linear-to-b\": \"mask-image: linear-gradient(to bottom, black, transparent); -webkit-mask-image: linear-gradient(to bottom, black, transparent);\",\n \"mask-linear-to-bl\": \"mask-image: linear-gradient(to bottom left, black, transparent); -webkit-mask-image: linear-gradient(to bottom left, black, transparent);\",\n \"mask-linear-to-l\": \"mask-image: linear-gradient(to left, black, transparent); -webkit-mask-image: linear-gradient(to left, black, transparent);\",\n \"mask-linear-to-tl\": \"mask-image: linear-gradient(to top left, black, transparent); -webkit-mask-image: linear-gradient(to top left, black, transparent);\",\n \"mask-none\": \"mask-image: none; -webkit-mask-image: none;\",\n};\n\nexport const MASK_RADIAL_POSITIONS = {\n center: \"center\",\n top: \"top\",\n right: \"right\",\n bottom: \"bottom\",\n left: \"left\",\n \"top-right\": \"top right\",\n \"bottom-right\": \"bottom right\",\n \"bottom-left\": \"bottom left\",\n \"top-left\": \"top left\",\n};\n\nexport const MASK_REPEAT_MAP = {\n \"mask-repeat\": \"mask-repeat: repeat; -webkit-mask-repeat: repeat;\",\n \"mask-no-repeat\": \"mask-repeat: no-repeat; -webkit-mask-repeat: no-repeat;\",\n \"mask-repeat-x\": \"mask-repeat: repeat-x; -webkit-mask-repeat: repeat-x;\",\n \"mask-repeat-y\": \"mask-repeat: repeat-y; -webkit-mask-repeat: repeat-y;\",\n \"mask-repeat-round\": \"mask-repeat: round; -webkit-mask-repeat: round;\",\n \"mask-repeat-space\": \"mask-repeat: space; -webkit-mask-repeat: space;\",\n};\n\nexport const MASK_SIZE_MAP = {\n \"mask-size-auto\": \"mask-size: auto; -webkit-mask-size: auto;\",\n \"mask-size-cover\": \"mask-size: cover; -webkit-mask-size: cover;\",\n \"mask-size-contain\": \"mask-size: contain; -webkit-mask-size: contain;\",\n};\n\nexport const BG_ATTACHMENT_MAP = {\n fixed: \"background-attachment: fixed;\",\n local: \"background-attachment: local;\",\n scroll: \"background-attachment: scroll;\",\n};\n\nexport const BG_CLIP_MAP = {\n border: \"background-clip: border-box;\",\n padding: \"background-clip: padding-box;\",\n content: \"background-clip: content-box;\",\n text: \"background-clip: text; -webkit-background-clip: text;\",\n};\n\nexport const BG_ORIGIN_MAP = {\n border: \"background-origin: border-box;\",\n padding: \"background-origin: padding-box;\",\n content: \"background-origin: content-box;\",\n};\n\nexport const BG_REPEAT_MAP = {\n repeat: \"background-repeat: repeat;\",\n \"no-repeat\": \"background-repeat: no-repeat;\",\n \"repeat-x\": \"background-repeat: repeat-x;\",\n \"repeat-y\": \"background-repeat: repeat-y;\",\n \"repeat-round\": \"background-repeat: round;\",\n \"repeat-space\": \"background-repeat: space;\",\n};\n\nexport const MIX_BLEND_MAP = {\n \"mix-blend-normal\": \"mix-blend-mode: normal;\",\n \"mix-blend-multiply\": \"mix-blend-mode: multiply;\",\n \"mix-blend-screen\": \"mix-blend-mode: screen;\",\n \"mix-blend-overlay\": \"mix-blend-mode: overlay;\",\n \"mix-blend-darken\": \"mix-blend-mode: darken;\",\n \"mix-blend-lighten\": \"mix-blend-mode: lighten;\",\n \"mix-blend-color-dodge\": \"mix-blend-mode: color-dodge;\",\n \"mix-blend-color-burn\": \"mix-blend-mode: color-burn;\",\n \"mix-blend-hard-light\": \"mix-blend-mode: hard-light;\",\n \"mix-blend-soft-light\": \"mix-blend-mode: soft-light;\",\n \"mix-blend-difference\": \"mix-blend-mode: difference;\",\n \"mix-blend-exclusion\": \"mix-blend-mode: exclusion;\",\n \"mix-blend-hue\": \"mix-blend-mode: hue;\",\n \"mix-blend-saturation\": \"mix-blend-mode: saturation;\",\n \"mix-blend-color\": \"mix-blend-mode: color;\",\n \"mix-blend-luminosity\": \"mix-blend-mode: luminosity;\",\n \"mix-blend-plus-darker\": \"mix-blend-mode: plus-darker;\",\n \"mix-blend-plus-lighter\": \"mix-blend-mode: plus-lighter;\",\n};\n\nexport const BG_BLEND_MAP = {\n \"bg-blend-normal\": \"background-blend-mode: normal;\",\n \"bg-blend-multiply\": \"background-blend-mode: multiply;\",\n \"bg-blend-screen\": \"background-blend-mode: screen;\",\n \"bg-blend-overlay\": \"background-blend-mode: overlay;\",\n \"bg-blend-darken\": \"background-blend-mode: darken;\",\n \"bg-blend-lighten\": \"background-blend-mode: lighten;\",\n \"bg-blend-color-dodge\": \"background-blend-mode: color-dodge;\",\n \"bg-blend-color-burn\": \"background-blend-mode: color-burn;\",\n \"bg-blend-hard-light\": \"background-blend-mode: hard-light;\",\n \"bg-blend-soft-light\": \"background-blend-mode: soft-light;\",\n \"bg-blend-difference\": \"background-blend-mode: difference;\",\n \"bg-blend-exclusion\": \"background-blend-mode: exclusion;\",\n \"bg-blend-hue\": \"background-blend-mode: hue;\",\n \"bg-blend-saturation\": \"background-blend-mode: saturation;\",\n \"bg-blend-color\": \"background-blend-mode: color;\",\n \"bg-blend-luminosity\": \"background-blend-mode: luminosity;\",\n};\n\nexport const TEXT_SHADOW_SIZES = {\n \"2xs\": \"0 1px 2px rgb(0 0 0 / 0.10)\",\n xs: \"0 1px 2px rgb(0 0 0 / 0.20)\",\n sm: \"0 1px 3px rgb(0 0 0 / 0.25)\",\n DEFAULT:\"0 1px 3px rgb(0 0 0 / 0.30)\",\n md: \"0 2px 4px rgb(0 0 0 / 0.30)\",\n lg: \"0 4px 6px rgb(0 0 0 / 0.25)\",\n xl: \"0 8px 12px rgb(0 0 0 / 0.20)\",\n \"2xl\": \"0 16px 24px rgb(0 0 0 / 0.15)\",\n none: \"none\",\n};\n\nexport const FORCED_COLOR_MAP = {\n \"forced-color-adjust-auto\": \"forced-color-adjust: auto;\",\n \"forced-color-adjust-none\": \"forced-color-adjust: none;\",\n};\n", "import { INSET_SHADOW_SIZES, TEXT_SHADOW_SIZES } from \"../maps/effects.maps.js\";\nimport { resolveThemeValue, resolveColorWithOpacity, resolveArbitraryValue } from \"../resolvers.js\";\n\nexport function buildOpacityDeclaration(baseToken, theme) {\n if (!baseToken.startsWith(\"opacity-\")) return undefined;\n const opacity = resolveThemeValue(theme.opacity || {}, baseToken.slice(8));\n if (opacity === undefined) return undefined;\n return `opacity: ${opacity};`;\n}\n\nexport function buildShadowDeclaration(baseToken, theme) {\n if (baseToken === \"shadow\") {\n const value = resolveThemeValue(theme.boxShadow || {}, \"DEFAULT\");\n if (value === undefined) return undefined;\n return `box-shadow: ${value};`;\n }\n if (!baseToken.startsWith(\"shadow-\")) return undefined;\n\n const valueKey = baseToken.slice(7);\n\n // arbitrary value: shadow-[4px_4px_0_0]\n const arb = resolveArbitraryValue(valueKey);\n if (arb !== undefined) return `box-shadow: ${arb};`;\n\n // named shadow from theme\n const value = resolveThemeValue(theme.boxShadow || {}, valueKey);\n if (value !== undefined) return `box-shadow: ${value};`;\n\n // shadow-color: check boxShadowColor first, then fall back to colors\n const colorScale = theme.boxShadowColor || theme.colors || {};\n const color = resolveColorWithOpacity(colorScale, valueKey);\n if (color !== undefined) return `--tw-shadow-color: ${color};`;\n\n return undefined;\n}\n\nexport function buildInsetShadowDeclaration(baseToken, theme) {\n if (baseToken === \"inset-shadow\") return INSET_SHADOW_SIZES.DEFAULT;\n\n if (baseToken.startsWith(\"inset-shadow-\")) {\n const key = baseToken.slice(13);\n if (INSET_SHADOW_SIZES[key]) return INSET_SHADOW_SIZES[key];\n const color = resolveColorWithOpacity(theme.colors || {}, key);\n if (color !== undefined) return `--tw-inset-shadow-color: ${color};`;\n }\n\n return undefined;\n}\n\nexport function buildInsetRingDeclaration(baseToken, theme) {\n const ringColors = theme.ringColor || {};\n const colors = theme.colors || {};\n\n if (baseToken === \"inset-ring\") {\n return `box-shadow: inset 0 0 0 1px var(--tw-inset-ring-color, currentColor);`;\n }\n\n if (baseToken.startsWith(\"inset-ring-\")) {\n const key = baseToken.slice(11);\n if (/^\\d+$/.test(key)) {\n return `box-shadow: inset 0 0 0 ${key}px var(--tw-inset-ring-color, currentColor);`;\n }\n const color = resolveColorWithOpacity({ ...ringColors, ...colors }, key);\n if (color !== undefined) return `--tw-inset-ring-color: ${color};`;\n }\n\n return undefined;\n}\n\nexport function buildRingDeclaration(baseToken, theme) {\n const ringColorScale = theme.ringColor || {};\n const ringWidthScale = theme.ringWidth || {};\n const defaultRingColor = resolveThemeValue(ringColorScale, \"DEFAULT\") || \"#3b82f6\";\n\n const buildRingWidth = (widthValue) =>\n `--tw-ring-inset: ; --tw-ring-offset-width: 0px; --tw-ring-offset-color: #fff; --tw-ring-color: ${defaultRingColor}; box-shadow: var(--tw-ring-inset,) 0 0 0 calc(${widthValue} + var(--tw-ring-offset-width, 0px)) var(--tw-ring-color);`;\n\n if (baseToken === \"ring\") {\n const widthValue = resolveThemeValue(ringWidthScale, \"DEFAULT\") || \"3px\";\n return buildRingWidth(widthValue);\n }\n\n if (!baseToken.startsWith(\"ring-\")) return undefined;\n const valueKey = baseToken.slice(5);\n\n const widthValue = resolveThemeValue(ringWidthScale, valueKey);\n if (widthValue !== undefined) return buildRingWidth(widthValue);\n\n if (valueKey === \"inset\") return `--tw-ring-inset: inset;`;\n\n const colorValue =\n resolveColorWithOpacity(ringColorScale, valueKey) ||\n resolveColorWithOpacity(theme.colors || {}, valueKey);\n if (colorValue !== undefined) return `--tw-ring-color: ${colorValue};`;\n\n return undefined;\n}\n\nexport function buildTextShadowDeclaration(baseToken, theme) {\n if (baseToken === \"text-shadow\") {\n const val = (theme.textShadow || TEXT_SHADOW_SIZES).DEFAULT || TEXT_SHADOW_SIZES.DEFAULT;\n return `text-shadow: ${val};`;\n }\n\n if (baseToken.startsWith(\"text-shadow-\")) {\n const key = baseToken.slice(12);\n // text-shadow-color\n const color = resolveColorWithOpacity(theme.colors || {}, key);\n if (color !== undefined) return `--tw-text-shadow-color: ${color};`;\n // text-shadow-size\n const scale = theme.textShadow || TEXT_SHADOW_SIZES;\n const val = resolveThemeValue(scale, key);\n if (val !== undefined) return val === \"none\" ? \"text-shadow: none;\" : `text-shadow: ${val};`;\n }\n\n return undefined;\n}\n\nexport function buildRingOffsetDeclaration(baseToken, theme) {\n if (!baseToken.startsWith(\"ring-offset-\")) return undefined;\n const key = baseToken.slice(12);\n\n // ring-offset-{width}\n const widthVal = resolveThemeValue(theme.ringOffsetWidth || {}, key);\n if (widthVal !== undefined) {\n return `--tw-ring-offset-width: ${widthVal}; box-shadow: 0 0 0 var(--tw-ring-offset-width) var(--tw-ring-offset-color, #fff), var(--tw-ring-shadow, 0 0 #0000);`;\n }\n\n // ring-offset-{color}\n let color = resolveColorWithOpacity(theme.ringOffsetColor || {}, key);\n if (color === undefined) {\n color = resolveColorWithOpacity(theme.colors || {}, key);\n }\n if (color !== undefined) return `--tw-ring-offset-color: ${color};`;\n\n return undefined;\n}\n", "import {\n BG_ATTACHMENT_MAP,\n BG_CLIP_MAP,\n BG_ORIGIN_MAP,\n BG_REPEAT_MAP,\n} from \"../maps/effects.maps.js\";\nimport { resolveThemeValue, resolveColorWithOpacity } from \"../resolvers.js\";\n\nexport function buildBackgroundDeclaration(baseToken, theme) {\n if (!baseToken.startsWith(\"bg-\")) return undefined;\n const key = baseToken.slice(3);\n\n if (BG_ATTACHMENT_MAP[key]) return BG_ATTACHMENT_MAP[key];\n if (key.startsWith(\"clip-\")) return BG_CLIP_MAP[key.slice(5)] ?? undefined;\n if (key.startsWith(\"origin-\")) return BG_ORIGIN_MAP[key.slice(7)] ?? undefined;\n if (BG_REPEAT_MAP[key]) return BG_REPEAT_MAP[key];\n\n // bg-size (any value from theme, not just 3 keywords)\n const bgSize = resolveThemeValue(theme.backgroundSize || {}, key);\n if (bgSize !== undefined) return `background-size: ${bgSize};`;\n\n // bg-position\n const bgPos = resolveThemeValue(theme.backgroundPosition || {}, key);\n if (bgPos !== undefined) return `background-position: ${bgPos};`;\n\n // bg-image (linear gradients etc.)\n const bgImage = resolveThemeValue(theme.backgroundImage || {}, key);\n if (bgImage !== undefined) return `background-image: ${bgImage};`;\n\n return undefined;\n}\n\nexport function buildGradientDeclaration(baseToken, theme) {\n const colors = theme.gradientColorStops || theme.colors || {};\n\n // from-{color|position}\n if (baseToken.startsWith(\"from-\")) {\n const key = baseToken.slice(5);\n \n // Position value (e.g., from-10%)\n if (key.endsWith(\"%\") || /^\\d+$/.test(key)) {\n return `--tw-gradient-from-position: ${key.endsWith(\"%\") ? key : key + \"%\"};`;\n }\n \n // Color value\n const color = resolveColorWithOpacity(colors, key);\n if (color !== undefined) {\n return `--tw-gradient-from: ${color} var(--tw-gradient-from-position, 0%); --tw-gradient-to: transparent var(--tw-gradient-to-position, 100%); --tw-gradient-stops: var(--tw-gradient-from), var(--tw-gradient-to);`;\n }\n }\n\n // via-{color|position}\n if (baseToken.startsWith(\"via-\")) {\n const key = baseToken.slice(4);\n \n // Position value (e.g., via-50%)\n if (key.endsWith(\"%\") || /^\\d+$/.test(key)) {\n return `--tw-gradient-via-position: ${key.endsWith(\"%\") ? key : key + \"%\"};`;\n }\n \n // Color value\n const color = resolveColorWithOpacity(colors, key);\n if (color !== undefined) {\n return `--tw-gradient-to: transparent var(--tw-gradient-to-position, 100%); --tw-gradient-stops: var(--tw-gradient-from), ${color} var(--tw-gradient-via-position, 50%), var(--tw-gradient-to);`;\n }\n }\n\n // to-{color|position}\n if (baseToken.startsWith(\"to-\")) {\n const key = baseToken.slice(3);\n \n // Position value (e.g., to-90%)\n if (key.endsWith(\"%\") || /^\\d+$/.test(key)) {\n return `--tw-gradient-to-position: ${key.endsWith(\"%\") ? key : key + \"%\"};`;\n }\n \n // Color value\n const color = resolveColorWithOpacity(colors, key);\n if (color !== undefined) {\n return `--tw-gradient-to: ${color} var(--tw-gradient-to-position, 100%);`;\n }\n }\n\n return undefined;\n}\n", "import { PERSPECTIVE_MAP, PERSPECTIVE_ORIGIN_MAP } from \"../maps/effects.maps.js\";\nimport { resolveThemeValue, resolveArbitraryValue } from \"../resolvers.js\";\n\nexport function buildTransformDeclaration(baseToken, theme) {\n if (baseToken === \"transform\") {\n return \"--tw-translate-x: 0; --tw-translate-y: 0; --tw-rotate: 0; --tw-skew-x: 0; --tw-skew-y: 0; --tw-scale-x: 1; --tw-scale-y: 1; transform: translateX(var(--tw-translate-x)) translateY(var(--tw-translate-y)) rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y));\";\n }\n if (baseToken === \"transform-none\") return \"transform: none;\";\n if (baseToken === \"transform-gpu\") {\n return \"transform: translate3d(var(--tw-translate-x,0), var(--tw-translate-y,0), 0) rotate(var(--tw-rotate,0)) skewX(var(--tw-skew-x,0)) skewY(var(--tw-skew-y,0)) scaleX(var(--tw-scale-x,1)) scaleY(var(--tw-scale-y,1));\";\n }\n\n const negative = baseToken.startsWith(\"-\");\n const normalized = negative ? baseToken.slice(1) : baseToken;\n\n // rotate\n if (normalized.startsWith(\"rotate-\")) {\n const key = normalized.slice(7);\n const axisMatch = key.match(/^([xyz])-(.+)$/);\n if (axisMatch) {\n const [, axis, valueKey] = axisMatch;\n let val = resolveThemeValue(theme.rotate || {}, valueKey) || resolveArbitraryValue(valueKey);\n if (val === undefined) return undefined;\n if (negative) val = val.startsWith(\"-\") ? val.slice(1) : `-${val}`;\n return `rotate: ${axis.toUpperCase()}(${val});`;\n }\n let val = resolveThemeValue(theme.rotate || {}, key) || resolveArbitraryValue(key);\n if (val === undefined) return undefined;\n if (negative) val = val.startsWith(\"-\") ? val.slice(1) : `-${val}`;\n return `--tw-rotate: ${val}; transform: rotate(${val});`;\n }\n\n // scale\n if (normalized.startsWith(\"scale-\")) {\n const key = normalized.slice(6);\n const axisMatch = key.match(/^([xyz])-(.+)$/);\n if (axisMatch) {\n const [, axis, valueKey] = axisMatch;\n let val = resolveThemeValue(theme.scale || {}, valueKey) || resolveArbitraryValue(valueKey);\n if (val === undefined) return undefined;\n if (negative && val !== \"0\") val = `-${val}`;\n if (axis === \"z\") return `--tw-scale-z: ${val}; scale: var(--tw-scale-x, 1) var(--tw-scale-y, 1) ${val};`;\n return `--tw-scale-${axis}: ${val}; transform: scale${axis.toUpperCase()}(${val});`;\n }\n let val = resolveThemeValue(theme.scale || {}, key) || resolveArbitraryValue(key);\n if (val === undefined) return undefined;\n if (negative && val !== \"0\") val = `-${val}`;\n return `--tw-scale-x: ${val}; --tw-scale-y: ${val}; transform: scale(${val});`;\n }\n\n // translate\n if (normalized.startsWith(\"translate-\")) {\n const key = normalized.slice(10);\n const axisMatch = key.match(/^([xyz])-(.+)$/);\n if (axisMatch) {\n const [, axis, valueKey] = axisMatch;\n const scale = theme.translate || theme.spacing || {};\n let val = resolveThemeValue(scale, valueKey) || resolveArbitraryValue(valueKey);\n if (val === undefined) return undefined;\n if (negative && val !== \"0\") val = `-${val}`;\n if (axis === \"z\") return `--tw-translate-z: ${val}; transform: translateZ(${val});`;\n return `--tw-translate-${axis}: ${val}; transform: translate${axis.toUpperCase()}(${val});`;\n }\n const scale = theme.translate || theme.spacing || {};\n let val = resolveThemeValue(scale, key) || resolveArbitraryValue(key);\n if (val === undefined) return undefined;\n if (negative && val !== \"0\") val = `-${val}`;\n return `--tw-translate-x: ${val}; --tw-translate-y: ${val}; transform: translate(${val}, ${val});`;\n }\n\n // skew\n if (normalized.startsWith(\"skew-\")) {\n const key = normalized.slice(5);\n const axisMatch = key.match(/^([xy])-(.+)$/);\n if (axisMatch) {\n const [, axis, valueKey] = axisMatch;\n let val = resolveThemeValue(theme.skew || {}, valueKey) || resolveArbitraryValue(valueKey);\n if (val === undefined) return undefined;\n if (negative) val = val.startsWith(\"-\") ? val.slice(1) : `-${val}`;\n return `--tw-skew-${axis}: ${val}; transform: skew${axis.toUpperCase()}(${val});`;\n }\n }\n\n // transform-origin\n if (normalized.startsWith(\"origin-\")) {\n const val = resolveThemeValue(theme.transformOrigin || {}, normalized.slice(7));\n if (val !== undefined) return `transform-origin: ${val};`;\n }\n\n // perspective-origin\n if (normalized.startsWith(\"perspective-origin-\")) {\n const key = normalized.slice(19);\n if (PERSPECTIVE_ORIGIN_MAP[key]) return PERSPECTIVE_ORIGIN_MAP[key];\n const arb = resolveArbitraryValue(key);\n if (arb !== undefined) return `perspective-origin: ${arb};`;\n }\n\n // perspective\n if (normalized.startsWith(\"perspective-\")) {\n const key = normalized.slice(12);\n if (PERSPECTIVE_MAP[key]) return PERSPECTIVE_MAP[key];\n const arb = resolveArbitraryValue(key);\n if (arb !== undefined) return `perspective: ${arb};`;\n }\n\n return undefined;\n}\n", "import { resolveThemeValue } from \"../resolvers.js\";\n\nexport function buildFilterDeclaration(baseToken, theme) {\n const negative = baseToken.startsWith(\"-\");\n const normalized = negative ? baseToken.slice(1) : baseToken;\n const isBackdrop = normalized.startsWith(\"backdrop-\");\n const rest = isBackdrop ? normalized.slice(9) : normalized;\n const prefix = isBackdrop ? \"backdrop-filter\" : \"filter\";\n\n const getScale = (key) => {\n if (isBackdrop) {\n const backdropKey = `backdrop${key.charAt(0).toUpperCase() + key.slice(1)}`;\n return theme[backdropKey] || theme[key] || {};\n }\n return theme[key] || {};\n };\n\n if (rest === \"filter\") {\n return `${prefix}: none;`;\n }\n\n if (rest === \"blur\" || rest.startsWith(\"blur-\")) {\n const key = rest === \"blur\" ? \"DEFAULT\" : rest.slice(5);\n const val = resolveThemeValue(getScale(\"blur\"), key);\n if (val !== undefined) return `${prefix}: blur(${val});`;\n }\n\n if (rest === \"brightness\") {\n const val = resolveThemeValue(getScale(\"brightness\"), \"100\") || resolveThemeValue(getScale(\"brightness\"), \"DEFAULT\") || \"1\";\n return `${prefix}: brightness(${val});`;\n }\n\n if (rest.startsWith(\"brightness-\")) {\n const val = resolveThemeValue(getScale(\"brightness\"), rest.slice(11));\n if (val !== undefined) return `${prefix}: brightness(${val});`;\n }\n\n if (rest === \"contrast\") {\n const val = resolveThemeValue(getScale(\"contrast\"), \"100\") || resolveThemeValue(getScale(\"contrast\"), \"DEFAULT\") || \"1\";\n return `${prefix}: contrast(${val});`;\n }\n\n if (rest.startsWith(\"contrast-\")) {\n const val = resolveThemeValue(getScale(\"contrast\"), rest.slice(9));\n if (val !== undefined) return `${prefix}: contrast(${val});`;\n }\n\n if (rest === \"grayscale\" || rest.startsWith(\"grayscale-\")) {\n const key = rest === \"grayscale\" ? \"DEFAULT\" : rest.slice(10);\n const val = resolveThemeValue(getScale(\"grayscale\"), key);\n if (val !== undefined) return `${prefix}: grayscale(${val});`;\n }\n\n if (rest === \"hue-rotate\") {\n const val = resolveThemeValue(getScale(\"hueRotate\"), \"0\") || resolveThemeValue(getScale(\"hueRotate\"), \"DEFAULT\") || \"0deg\";\n return `${prefix}: hue-rotate(${val});`;\n }\n\n if (rest.startsWith(\"hue-rotate-\")) {\n const val = resolveThemeValue(getScale(\"hueRotate\"), rest.slice(11));\n if (val !== undefined) {\n const v = negative ? `-${val}` : val;\n return `${prefix}: hue-rotate(${v});`;\n }\n }\n\n if (rest === \"invert\" || rest.startsWith(\"invert-\")) {\n const key = rest === \"invert\" ? \"DEFAULT\" : rest.slice(7);\n const val = resolveThemeValue(getScale(\"invert\"), key);\n if (val !== undefined) return `${prefix}: invert(${val});`;\n }\n\n if (rest === \"saturate\") {\n const val = resolveThemeValue(getScale(\"saturate\"), \"100\") || resolveThemeValue(getScale(\"saturate\"), \"DEFAULT\") || \"1\";\n return `${prefix}: saturate(${val});`;\n }\n\n if (rest.startsWith(\"saturate-\")) {\n const val = resolveThemeValue(getScale(\"saturate\"), rest.slice(9));\n if (val !== undefined) return `${prefix}: saturate(${val});`;\n }\n\n if (rest === \"sepia\" || rest.startsWith(\"sepia-\")) {\n const key = rest === \"sepia\" ? \"DEFAULT\" : rest.slice(6);\n const val = resolveThemeValue(getScale(\"sepia\"), key);\n if (val !== undefined) return `${prefix}: sepia(${val});`;\n }\n\n // drop-shadow (non-backdrop only)\n if (!isBackdrop && rest === \"drop-shadow\") {\n const val = resolveThemeValue(theme.dropShadow || {}, \"DEFAULT\");\n if (val !== undefined) return `filter: drop-shadow(${val});`;\n }\n if (!isBackdrop && rest.startsWith(\"drop-shadow-\")) {\n const val = resolveThemeValue(theme.dropShadow || {}, rest.slice(12) || \"DEFAULT\");\n if (val !== undefined) return `filter: drop-shadow(${val});`;\n }\n\n // backdrop-opacity\n if (isBackdrop && rest === \"opacity\") {\n const val = resolveThemeValue(theme.backdropOpacity || theme.opacity || {}, \"DEFAULT\") || \"1\";\n return `backdrop-filter: opacity(${val});`;\n }\n\n if (isBackdrop && rest.startsWith(\"opacity-\")) {\n const val = resolveThemeValue(theme.backdropOpacity || theme.opacity || {}, rest.slice(8));\n if (val !== undefined) return `backdrop-filter: opacity(${val});`;\n }\n\n return undefined;\n}\n", "import { TRANSITION_PROPERTY_MAP, TRANSITION_TIMING_MAP } from \"../maps/interactivity.maps.js\";\nimport { resolveTimeValue, resolveArbitraryValue } from \"../resolvers.js\";\n\nexport function buildTransitionDeclaration(baseToken) {\n if (baseToken === \"transition\") {\n return `transition-property: ${TRANSITION_PROPERTY_MAP.DEFAULT}; transition-timing-function: ${TRANSITION_TIMING_MAP[\"in-out\"]}; transition-duration: 150ms;`;\n }\n\n if (baseToken.startsWith(\"transition-\")) {\n const key = baseToken.slice(11);\n if (Object.prototype.hasOwnProperty.call(TRANSITION_PROPERTY_MAP, key)) {\n const propertyValue = TRANSITION_PROPERTY_MAP[key];\n if (propertyValue === \"none\") return \"transition-property: none;\";\n return `transition-property: ${propertyValue}; transition-timing-function: ${TRANSITION_TIMING_MAP[\"in-out\"]}; transition-duration: 150ms;`;\n }\n }\n\n if (baseToken.startsWith(\"duration-\")) {\n const value = resolveTimeValue(baseToken.slice(9));\n if (value !== undefined) return `transition-duration: ${value};`;\n }\n\n if (baseToken.startsWith(\"delay-\")) {\n const value = resolveTimeValue(baseToken.slice(6));\n if (value !== undefined) return `transition-delay: ${value};`;\n }\n\n if (baseToken.startsWith(\"ease-\")) {\n const valueKey = baseToken.slice(5);\n const value = TRANSITION_TIMING_MAP[valueKey] || resolveArbitraryValue(valueKey);\n if (value !== undefined) return `transition-timing-function: ${value};`;\n }\n\n return undefined;\n}\n", "import {\n ANIMATE_MAP,\n MASK_LINEAR_MAP,\n MASK_REPEAT_MAP,\n MASK_SIZE_MAP,\n MASK_RADIAL_POSITIONS,\n MASK_CLIP_MAP,\n MASK_COMPOSITE_MAP,\n MASK_MODE_MAP,\n MASK_ORIGIN_MAP,\n MASK_TYPE_MAP,\n} from \"../maps/effects.maps.js\";\nimport {\n CURSOR_MAP,\n POINTER_EVENTS_MAP,\n USER_SELECT_MAP,\n APPEARANCE_MAP,\n OUTLINE_STYLE_MAP,\n} from \"../maps/interactivity.maps.js\";\nimport { resolveThemeValue, resolveColorWithOpacity, resolveArbitraryValue } from \"../resolvers.js\";\n\nexport function buildAnimationDeclaration(baseToken) {\n if (!baseToken.startsWith(\"animate-\")) return undefined;\n const key = baseToken.slice(8);\n if (ANIMATE_MAP[key]) return ANIMATE_MAP[key];\n const arb = resolveArbitraryValue(key);\n if (arb !== undefined) return `animation: ${arb};`;\n return undefined;\n}\n\nexport function buildMaskDeclaration(baseToken) {\n if (MASK_CLIP_MAP[baseToken]) return MASK_CLIP_MAP[baseToken];\n if (MASK_COMPOSITE_MAP[baseToken]) return MASK_COMPOSITE_MAP[baseToken];\n if (MASK_MODE_MAP[baseToken]) return MASK_MODE_MAP[baseToken];\n if (MASK_ORIGIN_MAP[baseToken]) return MASK_ORIGIN_MAP[baseToken];\n if (MASK_TYPE_MAP[baseToken]) return MASK_TYPE_MAP[baseToken];\n if (MASK_LINEAR_MAP[baseToken]) return MASK_LINEAR_MAP[baseToken];\n if (MASK_REPEAT_MAP[baseToken]) return MASK_REPEAT_MAP[baseToken];\n if (MASK_SIZE_MAP[baseToken]) return MASK_SIZE_MAP[baseToken];\n\n if (baseToken === \"mask-radial\") {\n return \"mask-image: radial-gradient(circle at center, black, transparent); -webkit-mask-image: radial-gradient(circle at center, black, transparent);\";\n }\n if (baseToken.startsWith(\"mask-radial-at-\")) {\n const pos = MASK_RADIAL_POSITIONS[baseToken.slice(15)];\n if (pos !== undefined) {\n return `mask-image: radial-gradient(circle at ${pos}, black, transparent); -webkit-mask-image: radial-gradient(circle at ${pos}, black, transparent);`;\n }\n }\n if (baseToken.startsWith(\"mask-position-\")) {\n const pos = MASK_RADIAL_POSITIONS[baseToken.slice(14)];\n if (pos !== undefined) {\n return `mask-position: ${pos}; -webkit-mask-position: ${pos};`;\n }\n }\n\n return undefined;\n}\n\nexport function buildContainerQueryDeclaration(baseToken) {\n if (baseToken === \"@container\") return \"container-type: inline-size;\";\n if (baseToken.startsWith(\"@container/\")) {\n const name = baseToken.slice(11);\n return `container-type: inline-size; container-name: ${name};`;\n }\n return undefined;\n}\n\nexport function buildInteractivityDeclaration(baseToken, theme) {\n if (baseToken.startsWith(\"cursor-\")) return CURSOR_MAP[baseToken.slice(7)] ?? undefined;\n if (baseToken.startsWith(\"pointer-events-\")) return POINTER_EVENTS_MAP[baseToken.slice(15)] ?? undefined;\n if (baseToken.startsWith(\"select-\")) return USER_SELECT_MAP[baseToken.slice(7)] ?? undefined;\n if (baseToken.startsWith(\"user-select-\")) return USER_SELECT_MAP[baseToken.slice(12)] ?? undefined;\n if (baseToken.startsWith(\"appearance-\")) {\n return APPEARANCE_MAP[baseToken.slice(11)] ? `appearance: ${baseToken.slice(11)};` : undefined;\n }\n\n // resize\n if (baseToken === \"resize-none\") return \"resize: none;\";\n if (baseToken === \"resize-y\") return \"resize: vertical;\";\n if (baseToken === \"resize-x\") return \"resize: horizontal;\";\n if (baseToken === \"resize\") return \"resize: both;\";\n\n // outline\n if (baseToken === \"outline\") return \"outline-style: solid;\";\n if (baseToken === \"outline-none\") return \"outline: 2px solid transparent; outline-offset: 2px;\";\n if (baseToken.startsWith(\"outline-\")) {\n const key = baseToken.slice(8);\n if (OUTLINE_STYLE_MAP[key]) return OUTLINE_STYLE_MAP[key];\n // outline-offset-{n}: key is \"offset-{n}\", strip \"offset-\" prefix\n if (key.startsWith(\"offset-\")) {\n const offsetKey = key.slice(7);\n const offset = resolveThemeValue(theme.outlineOffset || {}, offsetKey);\n if (offset !== undefined) return `outline-offset: ${offset};`;\n const arb = resolveArbitraryValue(offsetKey);\n if (arb !== undefined) return `outline-offset: ${arb};`;\n }\n const width = resolveThemeValue(theme.outlineWidth || {}, key);\n if (width !== undefined) return `outline-width: ${width};`;\n const color = resolveColorWithOpacity(theme.outlineColor || theme.colors || {}, key);\n if (color !== undefined) return `outline-color: ${color};`;\n }\n\n return undefined;\n}\n\nexport function buildZoomDeclaration(baseToken, theme) {\n if (!baseToken.startsWith(\"zoom-\")) return undefined;\n const key = baseToken.slice(5);\n const val = resolveThemeValue(theme.zoom || {}, key);\n if (val !== undefined) return `zoom: ${val};`;\n const arb = resolveArbitraryValue(key);\n if (arb !== undefined) return `zoom: ${arb};`;\n return undefined;\n}\n\nexport function buildForcedColorDeclaration(baseToken) {\n if (baseToken === \"forced-color-adjust-auto\") return \"forced-color-adjust: auto;\";\n if (baseToken === \"forced-color-adjust-none\") return \"forced-color-adjust: none;\";\n return undefined;\n}\n\nexport function buildBorderSpacingDeclaration(baseToken, theme) {\n if (!baseToken.startsWith(\"border-spacing-\")) return undefined;\n const rest = baseToken.slice(15); // after \"border-spacing-\"\n\n const axisMatchX = rest.match(/^x-(.+)$/);\n if (axisMatchX) {\n const val = resolveThemeValue(theme.borderSpacing || theme.spacing || {}, axisMatchX[1]);\n if (val !== undefined) return `--tw-border-spacing-x: ${val}; border-spacing: var(--tw-border-spacing-x) var(--tw-border-spacing-y, 0);`;\n }\n\n const axisMatchY = rest.match(/^y-(.+)$/);\n if (axisMatchY) {\n const val = resolveThemeValue(theme.borderSpacing || theme.spacing || {}, axisMatchY[1]);\n if (val !== undefined) return `--tw-border-spacing-y: ${val}; border-spacing: var(--tw-border-spacing-x, 0) var(--tw-border-spacing-y);`;\n }\n\n const val = resolveThemeValue(theme.borderSpacing || theme.spacing || {}, rest);\n if (val !== undefined) return `--tw-border-spacing-x: ${val}; --tw-border-spacing-y: ${val}; border-spacing: ${val};`;\n\n const arb = resolveArbitraryValue(rest);\n if (arb !== undefined) return `--tw-border-spacing-x: ${arb}; --tw-border-spacing-y: ${arb}; border-spacing: ${arb};`;\n\n return undefined;\n}\n\n// \u2500\u2500\u2500 Scroll snap \u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\n\nconst SNAP_TYPE_MAP = {\n none: \"scroll-snap-type: none;\",\n x: \"scroll-snap-type: x var(--tw-scroll-snap-strictness);\",\n y: \"scroll-snap-type: y var(--tw-scroll-snap-strictness);\",\n both: \"scroll-snap-type: both var(--tw-scroll-snap-strictness);\",\n mandatory: \"--tw-scroll-snap-strictness: mandatory;\",\n proximity: \"--tw-scroll-snap-strictness: proximity;\",\n};\n\nconst SNAP_ALIGN_MAP = {\n start: \"scroll-snap-align: start;\",\n end: \"scroll-snap-align: end;\",\n center: \"scroll-snap-align: center;\",\n \"align-none\": \"scroll-snap-align: none;\",\n};\n\nconst SNAP_STOP_MAP = {\n normal: \"scroll-snap-stop: normal;\",\n always: \"scroll-snap-stop: always;\",\n};\n\nexport function buildScrollSnapDeclaration(baseToken) {\n if (!baseToken.startsWith(\"snap-\")) return undefined;\n const key = baseToken.slice(5);\n if (SNAP_TYPE_MAP[key]) return SNAP_TYPE_MAP[key];\n if (SNAP_ALIGN_MAP[key]) return SNAP_ALIGN_MAP[key];\n if (SNAP_STOP_MAP[key]) return SNAP_STOP_MAP[key];\n return undefined;\n}\n\n// \u2500\u2500\u2500 SR-only (accessibility) \u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\n\nexport function buildAccessibilityDeclaration(baseToken) {\n if (baseToken === \"sr-only\") {\n return \"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 }\n if (baseToken === \"not-sr-only\") {\n return \"position: static; width: auto; height: auto; padding: 0; margin: 0; overflow: visible; clip: auto; white-space: normal;\";\n }\n return undefined;\n}\n", "import { MIX_BLEND_MAP, BG_BLEND_MAP } from \"../maps/effects.maps.js\";\n\nexport function buildBlendingDeclaration(baseToken) {\n if (MIX_BLEND_MAP[baseToken]) return MIX_BLEND_MAP[baseToken];\n if (BG_BLEND_MAP[baseToken]) return BG_BLEND_MAP[baseToken];\n return undefined;\n}\n", "import { BORDER_STYLE_MAP } from \"../maps/interactivity.maps.js\";\nimport { resolveThemeValue, resolveColorWithOpacity } from \"../resolvers.js\";\n\n// \u2500\u2500\u2500 Child selector marker \u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\n// Builders that need the > :not(:first-child) selector return a tagged object\n// instead of a plain string. The compiler checks for this and applies the scope.\n\nexport function childScoped(declaration) {\n return { __childScoped: true, declaration };\n}\n\nexport function isChildScoped(result) {\n return result !== null && typeof result === \"object\" && result.__childScoped === true;\n}\n\n// \u2500\u2500\u2500 space-x-* / space-y-* \u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\n\nexport function buildSpaceBetweenDeclaration(baseToken, theme) {\n const negative = baseToken.startsWith(\"-\");\n const normalized = negative ? baseToken.slice(1) : baseToken;\n\n // space-x-reverse / space-y-reverse: apply to parent, no child scoping\n if (normalized === \"space-x-reverse\") return \"--tw-space-x-reverse: 1;\";\n if (normalized === \"space-y-reverse\") return \"--tw-space-y-reverse: 1;\";\n\n const matchX = normalized.match(/^space-x-(.+)$/);\n if (matchX) {\n let val = resolveThemeValue(theme.spacing || {}, matchX[1]);\n if (val === undefined) return undefined;\n if (negative && val !== \"0\") val = `-${val}`;\n return childScoped([\n `--tw-space-x-reverse: 0;`,\n `margin-inline-end: calc(${val} * var(--tw-space-x-reverse));`,\n `margin-inline-start: calc(${val} * calc(1 - var(--tw-space-x-reverse)));`,\n ].join(\" \"));\n }\n\n const matchY = normalized.match(/^space-y-(.+)$/);\n if (matchY) {\n let val = resolveThemeValue(theme.spacing || {}, matchY[1]);\n if (val === undefined) return undefined;\n if (negative && val !== \"0\") val = `-${val}`;\n return childScoped([\n `--tw-space-y-reverse: 0;`,\n `margin-bottom: calc(${val} * var(--tw-space-y-reverse));`,\n `margin-top: calc(${val} * calc(1 - var(--tw-space-y-reverse)));`,\n ].join(\" \"));\n }\n\n return undefined;\n}\n\n// \u2500\u2500\u2500 divide-x-* / divide-y-* / divide-style / divide-color \u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\n\nexport function buildDivideDeclaration(baseToken, theme) {\n if (!baseToken.startsWith(\"divide-\")) return undefined;\n const key = baseToken.slice(7);\n\n // divide-x / divide-x-{n}\n if (key === \"x\" || key === \"x-reverse\") {\n if (key === \"x-reverse\") return \"--tw-divide-x-reverse: 1;\";\n const val = resolveThemeValue(theme.borderWidth || {}, \"DEFAULT\") || \"1px\";\n return childScoped(`--tw-divide-x-reverse: 0; border-inline-end-width: calc(${val} * var(--tw-divide-x-reverse)); border-inline-start-width: calc(${val} * calc(1 - var(--tw-divide-x-reverse)));`);\n }\n const matchX = key.match(/^x-(\\d+)$/);\n if (matchX) {\n const val = resolveThemeValue(theme.borderWidth || {}, matchX[1]);\n if (val !== undefined) return childScoped(`--tw-divide-x-reverse: 0; border-inline-end-width: calc(${val} * var(--tw-divide-x-reverse)); border-inline-start-width: calc(${val} * calc(1 - var(--tw-divide-x-reverse)));`);\n }\n\n // divide-y / divide-y-{n}\n if (key === \"y\" || key === \"y-reverse\") {\n if (key === \"y-reverse\") return \"--tw-divide-y-reverse: 1;\";\n const val = resolveThemeValue(theme.borderWidth || {}, \"DEFAULT\") || \"1px\";\n return childScoped(`--tw-divide-y-reverse: 0; border-bottom-width: calc(${val} * var(--tw-divide-y-reverse)); border-top-width: calc(${val} * calc(1 - var(--tw-divide-y-reverse)));`);\n }\n const matchY = key.match(/^y-(\\d+)$/);\n if (matchY) {\n const val = resolveThemeValue(theme.borderWidth || {}, matchY[1]);\n if (val !== undefined) return childScoped(`--tw-divide-y-reverse: 0; border-bottom-width: calc(${val} * var(--tw-divide-y-reverse)); border-top-width: calc(${val} * calc(1 - var(--tw-divide-y-reverse)));`);\n }\n\n // divide-style \u2014 applies to parent (controls style of the border lines)\n if (BORDER_STYLE_MAP[key]) return `border-style: ${BORDER_STYLE_MAP[key].replace(\"border-style: \", \"\").replace(\";\", \"\")};`;\n if (key === \"none\") return \"border-style: none;\";\n if (key === \"solid\") return \"border-style: solid;\";\n if (key === \"dashed\") return \"border-style: dashed;\";\n if (key === \"dotted\") return \"border-style: dotted;\";\n if (key === \"double\") return \"border-style: double;\";\n\n // divide-color \u2014 applies to children (sets border-color on the child borders)\n const colors = theme.colors || {};\n const color = resolveColorWithOpacity(theme.divideColor || colors, key);\n if (color !== undefined) return childScoped(`border-color: ${color};`);\n\n // divide-opacity (legacy)\n if (key.startsWith(\"opacity-\")) {\n const val = resolveThemeValue(theme.opacity || {}, key.slice(8));\n if (val !== undefined) return childScoped(`--tw-divide-opacity: ${val};`);\n }\n\n return undefined;\n}\n", "/**\n * Plugin system for Windrunner\n * Allows users to add custom utilities and variants\n */\n\n// \u2500\u2500\u2500 Plugin Registry \u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\n// Optimized: Split exact string matches (O(1) Map lookup) from regex patterns (O(n) scan)\n\nexport class PluginRegistry {\n constructor() {\n this.exactUtilities = new Map(); // O(1) lookup for exact string matches\n this.regexUtilities = []; // O(n) only for regex patterns (typically small)\n this.variants = new Map();\n }\n\n /**\n * Register a custom utility\n * @param {string|RegExp} pattern - Class name pattern (e.g., \"glass\" or /^glass-(.+)$/)\n * @param {Function|string} handler - Function that returns CSS or CSS string\n */\n addUtility(pattern, handler) {\n if (pattern instanceof RegExp) {\n this.regexUtilities.push([pattern, handler]);\n } else {\n // Exact string match - use Map for O(1) lookup\n this.exactUtilities.set(pattern, handler);\n }\n }\n\n /**\n * Register multiple utilities at once\n * @param {Object} utilities - Object mapping patterns to handlers\n */\n addUtilities(utilities) {\n Object.entries(utilities).forEach(([pattern, handler]) => {\n this.addUtility(pattern, handler);\n });\n }\n\n /**\n * Register a custom variant\n * @param {string} name - Variant name (e.g., \"parent-hover\")\n * @param {Function} handler - Function that transforms selector\n */\n addVariant(name, handler) {\n this.variants.set(name, handler);\n }\n\n /**\n * Register multiple variants at once\n * @param {Object} variants - Object mapping names to handlers\n */\n addVariants(variants) {\n Object.entries(variants).forEach(([name, handler]) => {\n this.addVariant(name, handler);\n });\n }\n\n /**\n * Check if a token matches any custom utility pattern\n * Optimized: O(1) fast path for exact matches, O(n) only for regex patterns\n * @param {string} token - The base token to match\n * @returns {Object|null} - { handler, match } or null\n */\n matchUtility(token) {\n // Fast path: O(1) exact match lookup\n if (this.exactUtilities.has(token)) {\n return {\n handler: this.exactUtilities.get(token),\n match: [token],\n };\n }\n \n // Fallback: O(n) regex pattern matching (only when exact match fails)\n for (let i = 0; i < this.regexUtilities.length; i += 1) {\n const [pattern, handler] = this.regexUtilities[i];\n const match = pattern.exec(token);\n if (match) {\n return { handler, match };\n }\n }\n \n return null;\n }\n\n /**\n * Check if a variant name matches any custom variant\n * @param {string} variantName - The variant to check\n * @returns {Function|null} - Handler function or null\n */\n matchVariant(variantName) {\n return this.variants.get(variantName) || null;\n }\n\n /**\n * Get all registered utility patterns (for debugging)\n */\n getUtilities() {\n return [\n ...Array.from(this.exactUtilities.keys()),\n ...this.regexUtilities.map(([pattern]) => pattern),\n ];\n }\n\n /**\n * Get all registered variant names (for debugging)\n */\n getVariants() {\n return Array.from(this.variants.keys());\n }\n\n /**\n * Clear all registered plugins\n */\n clear() {\n this.exactUtilities.clear();\n this.regexUtilities = [];\n this.variants.clear();\n }\n}\n\n// \u2500\u2500\u2500 Plugin Helper Functions \u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\n\n/**\n * Create a plugin definition\n * @param {Function} handler - Plugin setup function\n * @returns {Object} - Plugin object\n */\nexport function plugin(handler) {\n if (typeof handler !== 'function') {\n throw new Error('Plugin handler must be a function');\n }\n \n return {\n __isWindrunnerPlugin: true,\n handler,\n };\n}\n\n/**\n * Check if an object is a valid plugin\n * @param {*} obj - Object to check\n * @returns {boolean}\n */\nexport function isPlugin(obj) {\n return obj && obj.__isWindrunnerPlugin === true && typeof obj.handler === 'function';\n}\n\n// \u2500\u2500\u2500 Utility Builder Helpers \u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\n\n/**\n * Helper to create utilities from a simple object\n * @param {Object} definitions - { className: cssDeclaration }\n * @returns {Object} - Utilities object for addUtilities\n */\nexport function defineUtilities(definitions) {\n const utilities = {};\n \n Object.entries(definitions).forEach(([className, css]) => {\n utilities[className] = typeof css === 'string' \n ? css \n : objectToCss(css);\n });\n \n return utilities;\n}\n\n/**\n * Helper to create responsive utilities\n * @param {string} base - Base class name\n * @param {Object} values - { key: cssValue }\n * @param {Function} toDeclaration - (key, value) => cssDeclaration\n * @returns {Object} - Utilities object\n */\nexport function defineResponsiveUtilities(base, values, toDeclaration) {\n const utilities = {};\n \n Object.entries(values).forEach(([key, value]) => {\n const className = key === 'DEFAULT' ? base : `${base}-${key}`;\n utilities[className] = toDeclaration(key, value);\n });\n \n return utilities;\n}\n\n// \u2500\u2500\u2500 Internal Helpers \u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\n\nfunction objectToCss(obj) {\n return Object.entries(obj)\n .map(([prop, value]) => `${prop}: ${value};`)\n .join(' ');\n}\n\n// \u2500\u2500\u2500 Default Export \u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\n\nexport default {\n PluginRegistry,\n plugin,\n isPlugin,\n defineUtilities,\n defineResponsiveUtilities,\n};\n", "import { getConfigOptions } from \"./utils.js\";\nimport { splitByVariantDelimiter, escapeCssIdentifier, appendImportant } from \"./resolvers.js\";\nimport { buildLayoutDeclaration, buildPositionInsetDeclaration } from \"./builders/layout.js\";\nimport { buildSpacingDeclaration, buildGapDeclaration, buildDimensionDeclaration } from \"./builders/spacing.js\";\nimport { buildFlexGridDeclaration } from \"./builders/flexgrid.js\";\nimport { buildTypographyDeclaration } from \"./builders/typography.js\";\nimport { buildColorDeclaration } from \"./builders/colors.js\";\nimport { buildBorderDeclaration, buildBorderRadiusDeclaration } from \"./builders/borders.js\";\nimport {\n buildOpacityDeclaration,\n buildShadowDeclaration,\n buildInsetShadowDeclaration,\n buildInsetRingDeclaration,\n buildRingDeclaration,\n buildTextShadowDeclaration,\n buildRingOffsetDeclaration,\n} from \"./builders/effects.js\";\nimport { buildBackgroundDeclaration, buildGradientDeclaration } from \"./builders/backgrounds.js\";\nimport { buildTransformDeclaration } from \"./builders/transforms.js\";\nimport { buildFilterDeclaration } from \"./builders/filters.js\";\nimport { buildTransitionDeclaration } from \"./builders/transitions.js\";\nimport {\n buildAnimationDeclaration,\n buildMaskDeclaration,\n buildContainerQueryDeclaration,\n buildInteractivityDeclaration,\n buildZoomDeclaration,\n buildForcedColorDeclaration,\n buildBorderSpacingDeclaration,\n buildScrollSnapDeclaration,\n buildAccessibilityDeclaration,\n} from \"./builders/misc.js\";\nimport { buildBlendingDeclaration } from \"./builders/blending.js\";\nimport { buildSpaceBetweenDeclaration, buildDivideDeclaration, isChildScoped } from \"./builders/space-divide.js\";\nimport { PluginRegistry, isPlugin } from \"./plugins.js\";\n\n// \u2500\u2500\u2500 Prefix-based Router for Performance \u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\n\n/**\n * Router map: prefix \u2192 array of relevant builder functions\n * This allows us to only check relevant builders instead of all 30+ functions\n */\nconst PREFIX_ROUTER = {\n // Layout & Display\n \"block\": [buildLayoutDeclaration],\n \"inline\": [buildLayoutDeclaration],\n \"flex\": [buildFlexGridDeclaration, buildLayoutDeclaration],\n \"grid\": [buildFlexGridDeclaration, buildLayoutDeclaration],\n \"hidden\": [buildLayoutDeclaration],\n \"table\": [buildLayoutDeclaration],\n \"flow\": [buildLayoutDeclaration],\n \n // Position\n \"static\": [buildLayoutDeclaration],\n \"fixed\": [buildLayoutDeclaration],\n \"absolute\": [buildLayoutDeclaration],\n \"relative\": [buildLayoutDeclaration],\n \"sticky\": [buildLayoutDeclaration],\n \"inset\": [buildPositionInsetDeclaration, buildInsetShadowDeclaration, buildInsetRingDeclaration],\n \"top\": [buildPositionInsetDeclaration],\n \"right\": [buildPositionInsetDeclaration],\n \"bottom\": [buildPositionInsetDeclaration],\n \"left\": [buildPositionInsetDeclaration],\n \"start\": [buildPositionInsetDeclaration],\n \"end\": [buildPositionInsetDeclaration],\n \"z\": [buildLayoutDeclaration],\n \n // Spacing\n \"m\": [buildSpacingDeclaration],\n \"mx\": [buildSpacingDeclaration],\n \"my\": [buildSpacingDeclaration],\n \"mt\": [buildSpacingDeclaration],\n \"mr\": [buildSpacingDeclaration],\n \"mb\": [buildSpacingDeclaration],\n \"ml\": [buildSpacingDeclaration],\n \"ms\": [buildSpacingDeclaration],\n \"me\": [buildSpacingDeclaration],\n \"p\": [buildSpacingDeclaration],\n \"px\": [buildSpacingDeclaration],\n \"py\": [buildSpacingDeclaration],\n \"pt\": [buildSpacingDeclaration],\n \"pr\": [buildSpacingDeclaration],\n \"pb\": [buildSpacingDeclaration],\n \"pl\": [buildSpacingDeclaration],\n \"ps\": [buildSpacingDeclaration],\n \"pe\": [buildSpacingDeclaration],\n \"space\": [buildSpaceBetweenDeclaration],\n \n // Sizing\n \"w\": [buildDimensionDeclaration],\n \"h\": [buildDimensionDeclaration],\n \"min\": [buildDimensionDeclaration],\n \"max\": [buildDimensionDeclaration],\n \"size\": [buildDimensionDeclaration],\n \n // Typography\n \"text\": [buildTypographyDeclaration, buildColorDeclaration],\n \"font\": [buildTypographyDeclaration],\n \"leading\": [buildTypographyDeclaration],\n \"tracking\": [buildTypographyDeclaration],\n \"line\": [buildTypographyDeclaration],\n \"whitespace\": [buildTypographyDeclaration],\n \"break\": [buildTypographyDeclaration],\n \"hyphens\": [buildTypographyDeclaration],\n \"list\": [buildTypographyDeclaration],\n \"italic\": [buildTypographyDeclaration],\n \"underline\": [buildTypographyDeclaration],\n \"overline\": [buildTypographyDeclaration],\n \"uppercase\": [buildTypographyDeclaration],\n \"lowercase\": [buildTypographyDeclaration],\n \"capitalize\": [buildTypographyDeclaration],\n \"normal\": [buildTypographyDeclaration, buildLayoutDeclaration],\n \"truncate\": [buildTypographyDeclaration],\n \n // Colors & Backgrounds\n \"bg\": [buildBackgroundDeclaration, buildColorDeclaration, buildGradientDeclaration],\n \"from\": [buildGradientDeclaration],\n \"via\": [buildGradientDeclaration],\n \"to\": [buildGradientDeclaration],\n \"fill\": [buildColorDeclaration],\n \"stroke\": [buildColorDeclaration],\n \n // Borders\n \"border\": [buildBorderDeclaration, buildColorDeclaration],\n \"rounded\": [buildBorderRadiusDeclaration],\n \"divide\": [buildDivideDeclaration],\n \n // Effects\n \"shadow\": [buildShadowDeclaration, buildTextShadowDeclaration],\n \"opacity\": [buildOpacityDeclaration],\n \"ring\": [buildRingDeclaration, buildRingOffsetDeclaration],\n \n // Transforms\n \"scale\": [buildTransformDeclaration],\n \"rotate\": [buildTransformDeclaration],\n \"translate\": [buildTransformDeclaration],\n \"skew\": [buildTransformDeclaration],\n \"origin\": [buildTransformDeclaration],\n \"transform\": [buildTransformDeclaration],\n \n // Filters\n \"blur\": [buildFilterDeclaration],\n \"brightness\": [buildFilterDeclaration],\n \"contrast\": [buildFilterDeclaration],\n \"grayscale\": [buildFilterDeclaration],\n \"hue\": [buildFilterDeclaration],\n \"invert\": [buildFilterDeclaration],\n \"saturate\": [buildFilterDeclaration],\n \"sepia\": [buildFilterDeclaration],\n \"drop\": [buildFilterDeclaration],\n \"backdrop\": [buildFilterDeclaration],\n \n // Transitions & Animations\n \"transition\": [buildTransitionDeclaration],\n \"duration\": [buildTransitionDeclaration],\n \"ease\": [buildTransitionDeclaration],\n \"delay\": [buildTransitionDeclaration],\n \"animate\": [buildAnimationDeclaration],\n \n // Interactivity\n \"cursor\": [buildInteractivityDeclaration],\n \"pointer\": [buildInteractivityDeclaration],\n \"resize\": [buildInteractivityDeclaration],\n \"select\": [buildInteractivityDeclaration],\n \"appearance\": [buildInteractivityDeclaration],\n \"outline\": [buildColorDeclaration, buildInteractivityDeclaration],\n \"caret\": [buildColorDeclaration],\n \"accent\": [buildColorDeclaration],\n \n // Flexbox & Grid specific\n \"items\": [buildFlexGridDeclaration],\n \"justify\": [buildFlexGridDeclaration],\n \"place\": [buildFlexGridDeclaration],\n \"content\": [buildFlexGridDeclaration, buildTypographyDeclaration],\n \"self\": [buildFlexGridDeclaration],\n \"order\": [buildFlexGridDeclaration],\n \"gap\": [buildGapDeclaration],\n \"grow\": [buildFlexGridDeclaration],\n \"shrink\": [buildFlexGridDeclaration],\n \"basis\": [buildFlexGridDeclaration],\n \"cols\": [buildFlexGridDeclaration],\n \"rows\": [buildFlexGridDeclaration],\n \"col\": [buildFlexGridDeclaration],\n \"row\": [buildFlexGridDeclaration],\n \"auto\": [buildFlexGridDeclaration, buildLayoutDeclaration],\n \n // Misc\n \"overflow\": [buildLayoutDeclaration],\n \"overscroll\": [buildInteractivityDeclaration],\n \"scroll\": [buildScrollSnapDeclaration, buildInteractivityDeclaration],\n \"snap\": [buildScrollSnapDeclaration],\n \"touch\": [buildInteractivityDeclaration],\n \"will\": [buildInteractivityDeclaration],\n \"mix\": [buildBlendingDeclaration],\n \"blend\": [buildBlendingDeclaration],\n \"isolation\": [buildLayoutDeclaration],\n \"object\": [buildLayoutDeclaration],\n \"container\": [buildContainerQueryDeclaration],\n \"columns\": [buildLayoutDeclaration],\n \"aspect\": [buildLayoutDeclaration],\n \"clear\": [buildLayoutDeclaration],\n \"float\": [buildLayoutDeclaration],\n \"box\": [buildLayoutDeclaration],\n \"visible\": [buildLayoutDeclaration],\n \"invisible\": [buildLayoutDeclaration],\n \"collapse\": [buildLayoutDeclaration],\n \"mask\": [buildMaskDeclaration],\n \"forced\": [buildForcedColorDeclaration],\n \"field\": [buildInteractivityDeclaration],\n \"placeholder\": [buildColorDeclaration],\n \"sr\": [buildAccessibilityDeclaration],\n \"not\": [buildAccessibilityDeclaration],\n};\n\n/**\n * Extract the prefix from a utility class token.\n * Examples: \"bg-blue-500\" \u2192 \"bg\", \"text-xl\" \u2192 \"text\", \"mt-4\" \u2192 \"mt\"\n */\nfunction extractPrefix(token) {\n // Handle single-word utilities (flex, block, etc.)\n const dashIndex = token.indexOf(\"-\");\n if (dashIndex === -1) return token;\n \n // Handle multi-dash prefixes (min-w, max-h, etc.)\n const prefix = token.slice(0, dashIndex);\n \n // Check for two-part prefixes\n const secondDashIndex = token.indexOf(\"-\", dashIndex + 1);\n if (secondDashIndex !== -1) {\n const twoPartPrefix = token.slice(0, secondDashIndex);\n if (PREFIX_ROUTER[twoPartPrefix]) return twoPartPrefix;\n }\n \n return prefix;\n}\n\n// \u2500\u2500\u2500 Unknown Prefix Cache for Early Rejection \u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\n// Cache prefixes that are definitely not Tailwind utilities to skip checkAllBuilders\n// This prevents wasting cycles on typos, library classes, or non-Tailwind classes\n\nconst UNKNOWN_PREFIX_CACHE = new Set();\nconst MAX_UNKNOWN_CACHE_SIZE = 500; // Prevent unbounded growth\n\n/**\n * Fallback: check all builders (for utilities not in router or edge cases)\n * Optimized: Early rejection for known-invalid prefixes\n */\nfunction checkAllBuilders(baseToken, theme) {\n // Early rejection: if we've seen this prefix fail before, skip immediately\n const prefix = extractPrefix(baseToken);\n if (UNKNOWN_PREFIX_CACHE.has(prefix)) {\n return undefined;\n }\n \n const result = (\n buildLayoutDeclaration(baseToken, theme) ||\n buildPositionInsetDeclaration(baseToken, theme) ||\n buildSpacingDeclaration(baseToken, theme) ||\n buildSpaceBetweenDeclaration(baseToken, theme) ||\n buildGapDeclaration(baseToken, theme) ||\n buildDimensionDeclaration(baseToken, theme) ||\n buildFlexGridDeclaration(baseToken, theme) ||\n buildBorderDeclaration(baseToken, theme) ||\n buildBorderRadiusDeclaration(baseToken, theme) ||\n buildBorderSpacingDeclaration(baseToken, theme) ||\n buildDivideDeclaration(baseToken, theme) ||\n buildOpacityDeclaration(baseToken, theme) ||\n buildShadowDeclaration(baseToken, theme) ||\n buildInsetShadowDeclaration(baseToken, theme) ||\n buildInsetRingDeclaration(baseToken, theme) ||\n buildRingDeclaration(baseToken, theme) ||\n buildRingOffsetDeclaration(baseToken, theme) ||\n buildTextShadowDeclaration(baseToken, theme) ||\n buildTransitionDeclaration(baseToken) ||\n buildTransformDeclaration(baseToken, theme) ||\n buildFilterDeclaration(baseToken, theme) ||\n buildBackgroundDeclaration(baseToken, theme) ||\n buildGradientDeclaration(baseToken, theme) ||\n buildColorDeclaration(baseToken, theme) ||\n buildTypographyDeclaration(baseToken, theme) ||\n buildBlendingDeclaration(baseToken) ||\n buildInteractivityDeclaration(baseToken, theme) ||\n buildAnimationDeclaration(baseToken) ||\n buildMaskDeclaration(baseToken) ||\n buildContainerQueryDeclaration(baseToken) ||\n buildScrollSnapDeclaration(baseToken) ||\n buildAccessibilityDeclaration(baseToken) ||\n buildZoomDeclaration(baseToken, theme) ||\n buildForcedColorDeclaration(baseToken)\n );\n \n // If no builder matched, cache this prefix as unknown for future early rejection\n if (!result && prefix) {\n // Implement simple LRU-style eviction when cache grows too large\n if (UNKNOWN_PREFIX_CACHE.size >= MAX_UNKNOWN_CACHE_SIZE) {\n // Clear half the cache (oldest entries naturally fall off with Set iteration)\n const toRemove = Math.floor(MAX_UNKNOWN_CACHE_SIZE / 2);\n const iterator = UNKNOWN_PREFIX_CACHE.values();\n for (let i = 0; i < toRemove; i += 1) {\n const value = iterator.next().value;\n if (value) UNKNOWN_PREFIX_CACHE.delete(value);\n }\n }\n UNKNOWN_PREFIX_CACHE.add(prefix);\n }\n \n return result;\n}\n\n// \u2500\u2500\u2500 Master compile dispatcher \u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\n\nfunction compileBaseToken(baseToken, theme, pluginRegistry) {\n // Check custom utilities first (plugins have priority)\n if (pluginRegistry) {\n const pluginMatch = pluginRegistry.matchUtility(baseToken);\n if (pluginMatch) {\n const { handler, match } = pluginMatch;\n try {\n // Handler can be a function or string\n if (typeof handler === 'function') {\n const result = handler(match, theme);\n if (result) return result;\n } else if (typeof handler === 'string') {\n return handler;\n }\n } catch (error) {\n console.warn(`[Windrunner] Plugin utility handler error for \"${baseToken}\":`, error);\n }\n }\n }\n \n // Fast path: use prefix router to only check relevant builders\n const prefix = extractPrefix(baseToken);\n const builders = PREFIX_ROUTER[prefix];\n \n if (builders) {\n for (let i = 0; i < builders.length; i += 1) {\n const result = builders[i](baseToken, theme);\n if (result) return result;\n }\n }\n \n // Fallback: check all builders for edge cases or utilities not in router\n return checkAllBuilders(baseToken, theme);\n}\n\n// \u2500\u2500\u2500 Variant & selector logic \u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\n\n// \u2500\u2500\u2500 Variant Map for O(1) lookup \u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\n\n/**\n * Built-in variants mapped to selector transform functions.\n * Using a Map for O(1) lookup instead of a switch statement.\n * @type {Map<string, (selector: string) => string>}\n */\nconst VARIANT_MAP = new Map([\n // Dark mode\n [\"dark\", (s) => `.dark ${s}`],\n // Pseudo-classes \u2013 interactive\n [\"hover\", (s) => `${s}:hover`],\n [\"focus\", (s) => `${s}:focus`],\n [\"focus-visible\", (s) => `${s}:focus-visible`],\n [\"focus-within\", (s) => `${s}:focus-within`],\n [\"active\", (s) => `${s}:active`],\n [\"visited\", (s) => `${s}:visited`],\n [\"disabled\", (s) => `${s}:disabled`],\n [\"checked\", (s) => `${s}:checked`],\n [\"indeterminate\", (s) => `${s}:indeterminate`],\n [\"required\", (s) => `${s}:required`],\n [\"valid\", (s) => `${s}:valid`],\n [\"invalid\", (s) => `${s}:invalid`],\n [\"target\", (s) => `${s}:target`],\n [\"enabled\", (s) => `${s}:enabled`],\n [\"default\", (s) => `${s}:default`],\n [\"optional\", (s) => `${s}:optional`],\n [\"user-valid\", (s) => `${s}:user-valid`],\n [\"user-invalid\", (s) => `${s}:user-invalid`],\n [\"in-range\", (s) => `${s}:in-range`],\n [\"out-of-range\", (s) => `${s}:out-of-range`],\n [\"placeholder-shown\", (s) => `${s}:placeholder-shown`],\n [\"autofill\", (s) => `${s}:autofill`],\n [\"details-content\", (s) => `${s}:details-content`],\n [\"read-only\", (s) => `${s}:read-only`],\n [\"open\", (s) => `${s}[open]`],\n // Pseudo-elements\n [\"placeholder\", (s) => `${s}::placeholder`],\n [\"backdrop\", (s) => `${s}::backdrop`],\n [\"before\", (s) => `${s}::before`],\n [\"after\", (s) => `${s}::after`],\n [\"first-letter\", (s) => `${s}::first-letter`],\n [\"first-line\", (s) => `${s}::first-line`],\n [\"marker\", (s) => `${s}::marker`],\n [\"selection\", (s) => `${s}::selection`],\n [\"file\", (s) => `${s}::file-selector-button`],\n // Structural pseudo-classes\n [\"first\", (s) => `${s}:first-child`],\n [\"last\", (s) => `${s}:last-child`],\n [\"odd\", (s) => `${s}:nth-child(odd)`],\n [\"even\", (s) => `${s}:nth-child(even)`],\n [\"first-of-type\", (s) => `${s}:first-of-type`],\n [\"last-of-type\", (s) => `${s}:last-of-type`],\n [\"only\", (s) => `${s}:only-child`],\n [\"only-of-type\", (s) => `${s}:only-of-type`],\n [\"empty\", (s) => `${s}:empty`],\n // Group & peer variants\n [\"group-hover\", (s) => `.group:hover ${s}`],\n [\"group-focus\", (s) => `.group:focus ${s}`],\n [\"group-active\", (s) => `.group:active ${s}`],\n [\"peer-hover\", (s) => `.peer:hover ~ ${s}`],\n [\"peer-focus\", (s) => `.peer:focus ~ ${s}`],\n [\"peer-checked\", (s) => `.peer:checked ~ ${s}`],\n [\"peer-disabled\", (s) => `.peer:disabled ~ ${s}`],\n // Negation variants\n [\"not-hover\", (s) => `${s}:not(:hover)`],\n [\"not-focus\", (s) => `${s}:not(:focus)`],\n [\"not-disabled\", (s) => `${s}:not(:disabled)`],\n [\"not-checked\", (s) => `${s}:not(:checked)`],\n // In-* variants (group-based)\n [\"in-hover\", (s) => `.group:hover ${s}`],\n [\"in-focus\", (s) => `.group:focus ${s}`],\n]);\n\nfunction applyVariants(selector, variants, pluginRegistry) {\n let currentSelector = selector;\n\n for (const variant of variants) {\n // Check custom variants first (plugins have priority)\n if (pluginRegistry) {\n const customHandler = pluginRegistry.matchVariant(variant);\n if (customHandler) {\n try {\n const result = customHandler(currentSelector);\n if (result) {\n currentSelector = result;\n continue;\n }\n } catch (error) {\n console.warn(`[Windrunner] Plugin variant handler error for \"${variant}\":`, error);\n }\n }\n }\n\n // Built-in variant lookup (O(1) via Map)\n const builtinHandler = VARIANT_MAP.get(variant);\n if (builtinHandler) {\n currentSelector = builtinHandler(currentSelector);\n } else {\n return undefined;\n }\n }\n\n return currentSelector;\n}\n\n\n// \u2500\u2500\u2500 Runtime context \u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\n\nexport function resolveRuntimeContext(options = {}) {\n const config = getConfigOptions(options, []);\n const pluginRegistry = new PluginRegistry();\n \n // Load plugins from options\n if (options.plugins && Array.isArray(options.plugins)) {\n options.plugins.forEach(pluginDef => {\n if (isPlugin(pluginDef)) {\n try {\n pluginDef.handler({\n addUtility: (pattern, handler) => pluginRegistry.addUtility(pattern, handler),\n addUtilities: (utilities) => pluginRegistry.addUtilities(utilities),\n addVariant: (name, handler) => pluginRegistry.addVariant(name, handler),\n addVariants: (variants) => pluginRegistry.addVariants(variants),\n theme: (key) => {\n if (!key) return config.theme || {};\n const keys = key.split('.');\n let value = config.theme || {};\n for (const k of keys) {\n value = value[k];\n if (value === undefined) break;\n }\n return value;\n },\n config: () => config,\n });\n } catch (error) {\n console.error('[Windrunner] Plugin initialization error:', error);\n }\n }\n });\n }\n \n return {\n config,\n theme: config.theme || {},\n screens: (config.theme && config.theme.screens) || config.screens || {},\n containers: (config.theme && config.theme.containers) || config.containers || {},\n plugins: pluginRegistry,\n };\n}\n\nexport function getBaseTailwindOptions(options = {}) {\n const { id, autoStart, compatMode, compatStyleId, compatGenerateCss, ...tailwindOptions } = options;\n return tailwindOptions;\n}\n\n// \u2500\u2500\u2500 Parse Cache for Performance \u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\n\n/**\n * Cache for parsed class structures to avoid re-parsing the same class names.\n * Key: className + screens/containers hash\n * Value: parsed class object\n */\nconst parseCache = new Map();\nconst PARSE_CACHE_MAX_SIZE = 2000; // Limit cache size to prevent memory bloat\n\n/**\n * Generate a simple cache key from screens and containers config.\n * Most apps use a single config, so this will be the same for all classes.\n */\nfunction getConfigHash(screens, containers) {\n // For performance, we assume most calls use the same config\n // Just check if both are empty objects (common case)\n const screensEmpty = !screens || Object.keys(screens).length === 0;\n const containersEmpty = !containers || Object.keys(containers).length === 0;\n \n if (screensEmpty && containersEmpty) return \"default\";\n \n // For non-empty configs, create a simple hash\n return `${Object.keys(screens || {}).join(\",\")}|${Object.keys(containers || {}).join(\",\")}`;\n}\n\n// \u2500\u2500\u2500 Class parser \u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\n\n/**\n * Parse a runtime class token into its variants, breakpoint, and base utility.\n * Supports responsive prefixes (md:, lg:), container breakpoints (@sm:, @md:),\n * starting: variant, and the ! important prefix.\n *\n * @param {string} className\n * @param {Record<string, string>} screens\n * @param {Record<string, string>} containers\n * @returns {{ original: string, baseToken: string, variants: string[], breakpoint: string|null, containerBreakpoint: string|null, important: boolean, starting: boolean } | null}\n */\nexport function parseClass(className, screens = {}, containers = {}) {\n if (typeof className !== \"string\") return null;\n const token = className.trim();\n if (!token) return null;\n\n // Check cache first\n const configHash = getConfigHash(screens, containers);\n const cacheKey = `${token}:${configHash}`;\n \n if (parseCache.has(cacheKey)) {\n return parseCache.get(cacheKey);\n }\n\n // Parse the class\n const important = token.startsWith(\"!\");\n const normalized = important ? token.slice(1) : token;\n const parts = splitByVariantDelimiter(normalized);\n if (parts.length === 0) return null;\n\n const baseToken = parts[parts.length - 1];\n const variants = [];\n let breakpoint = null;\n let containerBreakpoint = null;\n let starting = false;\n\n for (let i = 0; i < parts.length - 1; i += 1) {\n const part = parts[i];\n\n if (part === \"starting\") { starting = true; continue; }\n\n if (part.startsWith(\"@\")) {\n const cKey = part.slice(1);\n if (!containerBreakpoint && containers[cKey]) { containerBreakpoint = cKey; continue; }\n }\n\n if (!breakpoint && screens[part]) { breakpoint = part; continue; }\n\n variants.push(part);\n }\n\n const result = { original: token, baseToken, variants, breakpoint, containerBreakpoint, important, starting };\n \n // Store in cache with size limit\n if (parseCache.size >= PARSE_CACHE_MAX_SIZE) {\n // Remove oldest entry (first item in Map)\n const firstKey = parseCache.keys().next().value;\n parseCache.delete(firstKey);\n }\n parseCache.set(cacheKey, result);\n \n return result;\n}\n\n// \u2500\u2500\u2500 Core compile function \u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\n\nexport function compileRuntimeClassNameWithContext(className, context) {\n const parsed = parseClass(className, context.screens, context.containers);\n if (!parsed) return \"\";\n\n const declaration = compileBaseToken(parsed.baseToken, context.theme, context.plugins);\n if (!declaration) return \"\";\n\n const selector = `.${escapeCssIdentifier(parsed.original)}`;\n const variantSelector = applyVariants(selector, parsed.variants, context.plugins);\n if (!variantSelector) return \"\";\n\n const finalDeclaration = appendImportant(\n isChildScoped(declaration) ? declaration.declaration : declaration,\n parsed.important,\n );\n const scopedSelector = isChildScoped(declaration)\n ? `${variantSelector} > :not(:first-child)`\n : variantSelector;\n const ruleBody = `${scopedSelector} { ${finalDeclaration} }`;\n\n let result = ruleBody;\n if (parsed.breakpoint) {\n result = `@media (min-width: ${context.screens[parsed.breakpoint]}) { ${ruleBody} }`;\n } else if (parsed.containerBreakpoint) {\n result = `@container (min-width: ${context.containers[parsed.containerBreakpoint]}) { ${ruleBody} }`;\n }\n\n if (parsed.starting) {\n return `@starting-style { ${result} }`;\n }\n\n return result;\n}\n\n// \u2500\u2500\u2500 Public compileClass API (Node.js + browser) \u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\n\n/**\n * Compile a single class name to a CSS rule string.\n * Works in Node.js too (no DOM dependency).\n *\n * @param {string} className\n * @param {object} options\n * @returns {string}\n */\nexport function compileClass(className, options = {}) {\n return compileRuntimeClassNameWithContext(className, resolveRuntimeContext(options));\n}\n\n// \u2500\u2500\u2500 SSR / Critical CSS Utility \u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\n\n/**\n * Compile multiple class names into a single CSS string for SSR / critical CSS.\n * This is useful for generating CSS at build time or in server-side rendering.\n *\n * @param {string | string[]} classNames - Single class string or array of class names\n * @param {object} options - Windrunner configuration options\n * @returns {string} - Combined CSS rules ready for injection into <style> tag\n *\n * @example\n * // Server-side rendering\n * import { compileCriticalCss } from 'windrunner';\n * \n * const criticalCss = compileCriticalCss([\n * 'flex items-center justify-between',\n * 'text-xl font-bold text-slate-900',\n * 'bg-white shadow-lg rounded-xl p-6'\n * ]);\n * \n * // Inject into HTML\n * const html = `\n * <style>${criticalCss}</style>\n * <div class=\"flex items-center justify-between\">...</div>\n * `;\n *\n * @example\n * // Static site generation\n * const allClasses = extractClassesFromTemplates('./src');\n * const criticalCss = compileCriticalCss(allClasses, {\n * theme: { colors: { brand: '#ff0000' } }\n * });\n * fs.writeFileSync('dist/critical.css', criticalCss);\n */\nexport function compileCriticalCss(classNames, options = {}) {\n // Normalize input to array\n const classList = typeof classNames === 'string'\n ? classNames.split(/\\s+/).filter(Boolean)\n : Array.isArray(classNames)\n ? classNames.flatMap(str => \n typeof str === 'string' ? str.split(/\\s+/).filter(Boolean) : []\n )\n : [];\n\n // Create compilation context once\n const context = resolveRuntimeContext(options);\n\n // Compile all classes and deduplicate\n const cssRules = new Set();\n \n classList.forEach((className) => {\n const css = compileRuntimeClassNameWithContext(className, context);\n if (css) {\n cssRules.add(css);\n }\n });\n\n // Combine all rules with newlines for readability\n return Array.from(cssRules).join('\\n');\n}\n\n/**\n * Extract unique class names from HTML string.\n * Utility helper for compileCriticalCss.\n *\n * @param {string} html - HTML content to extract classes from\n * @returns {string[]} - Array of unique class names\n *\n * @example\n * import { extractClassNames, compileCriticalCss } from 'windrunner';\n * \n * const html = await fs.readFile('dist/index.html', 'utf-8');\n * const classes = extractClassNames(html);\n * const css = compileCriticalCss(classes);\n */\nexport function extractClassNames(html) {\n const classSet = new Set();\n \n // Match class=\"...\" and className=\"...\" attributes\n const classRegex = /class(?:Name)?=[\"']([^\"']+)[\"']/g;\n let match;\n \n while ((match = classRegex.exec(html)) !== null) {\n const classes = match[1].split(/\\s+/).filter(Boolean);\n classes.forEach(cls => classSet.add(cls));\n }\n \n return Array.from(classSet);\n}\n", "/**\n * Windrunner Preflight \u2014 browser CSS reset based on Tailwind's preflight.\n * Injected once when windrunner initializes (preflight: true, default).\n */\nconst preflight = `\n*,::before,::after{box-sizing:border-box;border-width:0;border-style:solid;border-color:currentColor}\nhtml{line-height:1.5;-webkit-text-size-adjust:100%;-moz-tab-size:4;tab-size:4;font-family:\"Inter\",ui-sans-serif,system-ui,sans-serif;font-feature-settings:normal;font-variation-settings:normal;-webkit-tap-highlight-color:transparent}\nbody{margin:0;line-height:inherit}\nhr{height:0;color:inherit;border-top-width:1px}\nabbr:where([title]){text-decoration:underline dotted}\nh1,h2,h3,h4,h5,h6{font-size:inherit;font-weight:inherit}\na{color:inherit;text-decoration:inherit}\nb,strong{font-weight:bolder}\ncode,kbd,samp,pre{font-family:ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,\"Liberation Mono\",\"Courier New\",monospace;font-feature-settings:normal;font-variation-settings:normal;font-size:1em}\nsmall{font-size:80%}\nsub,sup{font-size:75%;line-height:0;position:relative;vertical-align:baseline}\nsub{bottom:-0.25em}\nsup{top:-0.5em}\ntable{text-indent:0;border-color:inherit;border-collapse:collapse}\nbutton,input,optgroup,select,textarea{font-family:inherit;font-feature-settings:inherit;font-variation-settings:inherit;font-size:100%;font-weight:inherit;line-height:inherit;letter-spacing:inherit;color:inherit;margin:0;padding:0}\nbutton,select{text-transform:none}\nbutton,input:where([type=button]),input:where([type=reset]),input:where([type=submit]){-webkit-appearance:button;background-color:transparent;background-image:none}\n:-moz-focusring{outline:auto}\n:-moz-ui-invalid{box-shadow:none}\nprogress{vertical-align:baseline}\n::-webkit-inner-spin-button,::-webkit-outer-spin-button{height:auto}\n[type=search]{-webkit-appearance:textfield;outline-offset:-2px}\n::-webkit-search-decoration{-webkit-appearance:none}\n::-webkit-file-upload-button{-webkit-appearance:button;font:inherit}\nsummary{display:list-item}\nblockquote,dl,dd,h1,h2,h3,h4,h5,h6,hr,figure,p,pre{margin:0}\nfieldset{margin:0;padding:0}\nlegend{padding:0}\nol,ul,menu{list-style:none;margin:0;padding:0}\ndialog{padding:0}\ntextarea{resize:vertical}\ninput::placeholder,textarea::placeholder{opacity:1;color:#9ca3af}\nbutton,[role=button]{cursor:pointer}\n:disabled{cursor:default}\nimg,svg,video,canvas,audio,iframe,embed,object{display:block;vertical-align:middle}\nimg,video{max-width:100%;height:auto}\n[hidden]:where(:not([hidden=until-found])){display:none}\n`;\n\nexport default preflight;\n", "import {\n resolveRuntimeContext,\n getBaseTailwindOptions,\n compileRuntimeClassNameWithContext,\n parseClass,\n} from \"./compiler.js\";\nimport preflightCss from \"./preflight.js\";\n\n// \u2500\u2500\u2500 DOM helpers \u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\n\nfunction injectPreflight(styleId) {\n if (typeof document !== \"object\") return;\n const prefId = `${styleId}-preflight`;\n const escapedId = prefId.replace(/\\\\/g, \"\\\\\\\\\").replace(/\"/g, '\\\\\"');\n if (document.querySelector(`style[data-tailwind-preflight=\"${escapedId}\"]`)) return;\n const style = document.createElement(\"style\");\n style.setAttribute(\"type\", \"text/css\");\n style.setAttribute(\"data-tailwind-preflight\", prefId);\n style.appendChild(document.createTextNode(preflightCss));\n const head = document.head || document.getElementsByTagName(\"head\")[0];\n // insert before any other styles so JIT rules take priority\n head.insertBefore(style, head.firstChild);\n}\n\nfunction findOrCreateRuntimeStyle(id) {\n if (typeof document !== \"object\") return null;\n\n const escapedId = String(id).replace(/\\\\/g, \"\\\\\\\\\").replace(/\"/g, '\\\\\"');\n const existing = document.querySelector(`style[data-tailwind-runtime=\"${escapedId}\"]`);\n if (existing) return existing;\n\n const style = document.createElement(\"style\");\n style.setAttribute(\"type\", \"text/css\");\n style.setAttribute(\"data-tailwind-runtime\", id);\n const head = document.head || document.getElementsByTagName(\"head\")[0];\n head.appendChild(style);\n return style;\n}\n\n// \u2500\u2500\u2500 Runtime factory \u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\n\n/**\n * Create a windrunner JIT runtime instance with full manual control.\n *\n * @param {{ id?: string, autoStart?: boolean, compatMode?: string, theme?: object } & object} options\n */\nexport function createWindrunner(options = {}) {\n const styleId = options.id || \"tailwind-runtime-css\";\n const preflight = options.preflight !== false; // default: true\n const compatMode = options.compatMode || \"none\";\n const compatStyleId = options.compatStyleId || `${styleId}-full`;\n const maxCacheSize = options.maxCacheSize || 10000;\n const onError = typeof options.onError === \"function\" ? options.onError : null;\n const onCompile = typeof options.onCompile === \"function\" ? options.onCompile : null;\n const tailwindOptions = getBaseTailwindOptions(options);\n const context = resolveRuntimeContext(tailwindOptions);\n\n const cache = new Map();\n const insertedRules = new Set();\n const pendingElements = new Set();\n\n let observer = null;\n let scheduled = false;\n let styleElement = null;\n let domReadyHandler = null;\n let compatLoaded = false;\n\n const loadExistingRules = (style) => {\n if (!style || !style.sheet || insertedRules.size > 0) return;\n try {\n const rules = style.sheet.cssRules || [];\n for (let i = 0; i < rules.length; i += 1) {\n insertedRules.add(rules[i].cssText);\n }\n } catch {\n // ignore unavailable stylesheet access\n }\n };\n\n // \u2500\u2500 compat fallback \u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\n\n const ensureCompatStyle = () => {\n if (compatMode !== \"full\") return false;\n if (compatLoaded) return true;\n if (typeof document !== \"object\") return false;\n if (typeof options.compatGenerateCss !== \"function\") return false;\n\n const escapedCompatId = String(compatStyleId).replace(/\\\\/g, \"\\\\\\\\\").replace(/\"/g, '\\\\\"');\n const existing = document.querySelector(`style[data-tailwind-runtime-compat=\"${escapedCompatId}\"]`);\n if (existing) { compatLoaded = true; return true; }\n\n const cssText = options.compatGenerateCss(tailwindOptions);\n if (typeof cssText !== \"string\" || !cssText.trim()) return false;\n\n const style = document.createElement(\"style\");\n style.setAttribute(\"type\", \"text/css\");\n style.setAttribute(\"data-tailwind-runtime-compat\", compatStyleId);\n style.appendChild(document.createTextNode(cssText));\n const head = document.head || document.getElementsByTagName(\"head\")[0];\n head.appendChild(style);\n compatLoaded = true;\n return true;\n };\n\n // \u2500\u2500 compile + inject \u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\n\n const compileWithCache = (className) => {\n if (cache.has(className)) return cache.get(className);\n const cssRule = compileRuntimeClassNameWithContext(className, context);\n // LRU-style eviction: remove oldest entry when cache exceeds max size\n if (cache.size >= maxCacheSize) {\n const firstKey = cache.keys().next().value;\n cache.delete(firstKey);\n }\n cache.set(className, cssRule);\n return cssRule;\n };\n\n const insertRule = (rule) => {\n if (!rule || insertedRules.has(rule)) return;\n if (typeof document !== \"object\") return;\n if (!styleElement) styleElement = findOrCreateRuntimeStyle(styleId);\n if (styleElement) loadExistingRules(styleElement);\n if (insertedRules.has(rule)) return;\n insertedRules.add(rule);\n if (!styleElement || !styleElement.sheet) return;\n try {\n styleElement.sheet.insertRule(rule, styleElement.sheet.cssRules.length);\n } catch {\n styleElement.appendChild(document.createTextNode(`${rule}\\n`));\n }\n };\n\n // \u2500\u2500 public methods \u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\n\n const processClassName = (className) => {\n const cssRule = compileWithCache(className);\n if (!cssRule) {\n ensureCompatStyle();\n // Enhanced error callback with context\n if (onError) {\n const parsed = parseClass(className, context.screens, context.containers);\n const errorContext = {\n reason: parsed ? 'unknown-utility' : 'parse-error',\n baseToken: parsed ? parsed.baseToken : className,\n variants: parsed ? parsed.variants : undefined,\n details: parsed \n ? `Could not compile utility \"${parsed.baseToken}\"${parsed.variants.length ? ` with variants: ${parsed.variants.join(', ')}` : ''}`\n : `Failed to parse class name \"${className}\"`,\n };\n onError(className, errorContext);\n }\n } else {\n insertRule(cssRule);\n if (onCompile) onCompile(className, cssRule);\n }\n return cssRule;\n };\n\n const processElement = (element) => {\n if (!element || !element.classList) return;\n element.classList.forEach((className) => processClassName(className));\n };\n\n const processElementTree = (element) => {\n if (!element || element.nodeType !== 1) return;\n processElement(element);\n const children = element.querySelectorAll ? element.querySelectorAll(\"[class]\") : [];\n children.forEach((child) => processElement(child));\n };\n\n const processClassList = (classList) => {\n if (!classList) return [];\n\n const values = typeof classList === \"string\"\n ? classList.split(/\\s+/)\n : Array.isArray(classList)\n ? classList\n : typeof classList === \"object\" && typeof classList.forEach === \"function\"\n ? Array.from(classList)\n : [];\n\n return values\n .filter((item) => typeof item === \"string\" && item.length > 0)\n .map((item) => processClassName(item))\n .filter(Boolean);\n };\n\n const scan = (root = document) => {\n if (typeof document !== \"object\" || !root) return;\n \n // Track scan stats\n const startTime = typeof performance !== \"undefined\" ? performance.now() : Date.now();\n const scannedElements = new Set();\n const foundClasses = new Set();\n const initialRuleCount = insertedRules.size;\n \n // Scan root element\n if (root.nodeType === 1) {\n processElementTree(root);\n if (root.classList) {\n scannedElements.add(root);\n root.classList.forEach(cls => foundClasses.add(cls));\n }\n }\n \n // Scan child elements\n const elements = root.querySelectorAll ? root.querySelectorAll(\"[class]\") : [];\n elements.forEach((element) => {\n processElement(element);\n scannedElements.add(element);\n if (element.classList) {\n element.classList.forEach(cls => foundClasses.add(cls));\n }\n });\n \n // Calculate stats and fire callback\n if (typeof options.onScanComplete === \"function\") {\n const endTime = typeof performance !== \"undefined\" ? performance.now() : Date.now();\n const stats = {\n elementCount: scannedElements.size,\n classCount: foundClasses.size,\n ruleCount: insertedRules.size - initialRuleCount,\n duration: endTime - startTime,\n };\n \n // Fire callback asynchronously to not block rendering\n if (typeof requestAnimationFrame === \"function\") {\n requestAnimationFrame(() => options.onScanComplete(stats));\n } else {\n setTimeout(() => options.onScanComplete(stats), 0);\n }\n }\n };\n\n const flushQueue = () => {\n scheduled = false;\n pendingElements.forEach((element) => processElementTree(element));\n pendingElements.clear();\n };\n\n const flush = () => {\n if (pendingElements.size > 0) flushQueue();\n };\n\n const scheduleFlush = () => {\n if (scheduled) return;\n scheduled = true;\n if (typeof requestAnimationFrame === \"function\") {\n requestAnimationFrame(flushQueue);\n } else {\n setTimeout(flushQueue, 0);\n }\n };\n\n const observe = (root = document.documentElement) => {\n if (typeof MutationObserver !== \"function\" || !root) return;\n if (observer) observer.disconnect();\n\n observer = new MutationObserver((mutations) => {\n mutations.forEach((mutation) => {\n if (mutation.type === \"attributes\" && mutation.target) {\n pendingElements.add(mutation.target);\n }\n mutation.addedNodes.forEach((node) => {\n if (node.nodeType === 1) pendingElements.add(node);\n });\n });\n scheduleFlush();\n });\n\n // Allow users to customize MutationObserver config\n // Default is aggressive (observe everything), but users can tune for performance\n const observerConfig = options.observerOptions || {};\n const finalConfig = {\n childList: observerConfig.childList !== false, // default: true\n subtree: observerConfig.subtree !== false, // default: true\n attributes: observerConfig.attributes !== false, // default: true\n attributeFilter: observerConfig.attributeFilter || [\"class\"], // default: [\"class\"]\n };\n\n observer.observe(root, finalConfig);\n };\n\n const disconnect = () => {\n pendingElements.clear();\n scheduled = false;\n if (observer) { observer.disconnect(); observer = null; }\n if (domReadyHandler && typeof document === \"object\") {\n document.removeEventListener(\"DOMContentLoaded\", domReadyHandler);\n domReadyHandler = null;\n }\n };\n\n const start = () => {\n if (typeof document !== \"object\") return;\n if (preflight) injectPreflight(styleId);\n\n const fireReady = () => {\n if (typeof options.onReady !== \"function\") return;\n if (typeof requestAnimationFrame === \"function\") {\n requestAnimationFrame(() => requestAnimationFrame(() => options.onReady()));\n } else {\n setTimeout(() => options.onReady(), 16);\n }\n };\n\n const runStart = () => {\n scan();\n observe();\n fireReady();\n };\n\n if (document.readyState === \"loading\") {\n if (!domReadyHandler) {\n domReadyHandler = () => { domReadyHandler = null; runStart(); };\n document.addEventListener(\"DOMContentLoaded\", domReadyHandler, { once: true });\n }\n return;\n }\n runStart();\n };\n\n const clearCache = () => {\n cache.clear();\n };\n\n const getStats = () => ({\n cacheSize: cache.size,\n insertedRuleCount: insertedRules.size,\n pendingElementCount: pendingElements.size,\n isObserving: observer !== null,\n isCompatLoaded: compatLoaded,\n });\n\n return {\n processClassName,\n processClassList,\n processElement,\n scan,\n observe,\n flush,\n start,\n disconnect,\n clearCache,\n getStats,\n isCompatLoaded: () => compatLoaded,\n getCacheSize: () => cache.size,\n getInsertedRuleCount: () => insertedRules.size,\n };\n}\n\n// \u2500\u2500\u2500 Default export: auto-start windrunner \u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\n\n/**\n * Create and optionally auto-start a windrunner runtime.\n * Drop-in for browser usage: just call windrunner({ autoStart: true }).\n *\n * @param {{ id?: string, autoStart?: boolean, theme?: object } & object} options\n */\nexport default function windrunner(options = {}) {\n const runtime = createWindrunner(options);\n if (typeof window === \"object\" && options.autoStart !== false) {\n runtime.start();\n }\n return runtime;\n}\n"],
|
|
5
|
+
"mappings": "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;AAAA,MACL,KAAK;AAAA,MACL,KAAK;AAAA,MACL,KAAK;AAAA,MACL,KAAK;AAAA,MACL,KAAK;AAAA,MACL,KAAK;AAAA,MACL,KAAK;AAAA,MACL,KAAK;AAAA,MACL,KAAK;AAAA,IACP;AAAA,IACA,MAAM;AAAA,MACJ,IAAK;AAAA,MACL,KAAK;AAAA,MACL,KAAK;AAAA,MACL,KAAK;AAAA,MACL,KAAK;AAAA,MACL,KAAK;AAAA,MACL,KAAK;AAAA,MACL,KAAK;AAAA,MACL,KAAK;AAAA,MACL,KAAK;AAAA,MACL,KAAK;AAAA,IACP;AAAA,IACA,MAAM;AAAA,MACJ,IAAK;AAAA,MACL,KAAK;AAAA,MACL,KAAK;AAAA,MACL,KAAK;AAAA,MACL,KAAK;AAAA,MACL,KAAK;AAAA,MACL,KAAK;AAAA,MACL,KAAK;AAAA,MACL,KAAK;AAAA,MACL,KAAK;AAAA,MACL,KAAK;AAAA,IACP;AAAA,IACA,OAAO;AAAA,MACL,IAAK;AAAA,MACL,KAAK;AAAA,MACL,KAAK;AAAA,MACL,KAAK;AAAA,MACL,KAAK;AAAA,MACL,KAAK;AAAA,MACL,KAAK;AAAA,MACL,KAAK;AAAA,MACL,KAAK;AAAA,MACL,KAAK;AAAA,MACL,KAAK;AAAA,IACP;AAAA,IACA,OAAO;AAAA,MACL,IAAK;AAAA,MACL,KAAK;AAAA,MACL,KAAK;AAAA,MACL,KAAK;AAAA,MACL,KAAK;AAAA,MACL,KAAK;AAAA,MACL,KAAK;AAAA,MACL,KAAK;AAAA,MACL,KAAK;AAAA,MACL,KAAK;AAAA,MACL,KAAK;AAAA,IACP;AAAA,IACA,MAAM;AAAA,MACJ,IAAK;AAAA,MACL,KAAK;AAAA,MACL,KAAK;AAAA,MACL,KAAK;AAAA,MACL,KAAK;AAAA,MACL,KAAK;AAAA,MACL,KAAK;AAAA,MACL,KAAK;AAAA,MACL,KAAK;AAAA,MACL,KAAK;AAAA,MACL,KAAK;AAAA,IACP;AAAA,IACA,OAAO;AAAA,MACL,IAAK;AAAA,MACL,KAAK;AAAA,MACL,KAAK;AAAA,MACL,KAAK;AAAA,MACL,KAAK;AAAA,MACL,KAAK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",
|
|
6
6
|
"names": ["theme", "theme", "createSimpleMap", "createSimpleMap", "theme", "theme", "theme", "HYPHENS_MAP", "theme", "HYPHENS_MAP", "theme", "theme", "theme", "value", "widthValue", "theme", "theme", "val", "scale", "theme", "theme", "val", "theme", "theme", "preflight"]
|
|
7
7
|
}
|