@kurocado-studio/systemhaus-react 1.1.0-develop.13 → 1.1.0-develop.15
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 +83 -1
- package/dist/exports.js +5 -4
- package/dist/exports.js.map +1 -0
- package/dist/index.d.ts +3093 -31
- package/dist/tsdoc-metadata.json +1 -1
- package/package.json +15 -29
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../../../domains/systemhaus-ui/src/domain/theme/theme.json","../../../domains/systemhaus-ui/src/domain/provider/lightDarkThemeToggle.ts","../../../domains/systemhaus-ui/src/domain/provider/variablesMap.ts","../../../domains/systemhaus-ui/src/domain/provider/handleSetThemeVariable.ts","../../../domains/systemhaus-ui/src/domain/provider/themeProviderSymbol.ts","../../../domains/systemhaus-ui/src/domain/provider/themeProviderShared.ts","../../../domains/systemhaus-ui/src/domain/components/card.ts","../../../domains/systemhaus-ui/src/domain/colors.ts","../../../node_modules/motion-utils/dist/es/noop.mjs","../../../node_modules/motion-utils/dist/es/easing/cubic-bezier.mjs","../../../node_modules/motion-utils/dist/es/easing/ease.mjs","../../../domains/systemhaus-ui/src/domain/motion.ts","../../../domains/systemhaus-ui/src/domain/grid.ts","../../../domains/systemhaus-ui/src/domain/components/Avatar/tokens.ts","../../../node_modules/tailwind-merge/src/lib/utils.ts","../../../node_modules/tailwind-merge/src/lib/class-group-utils.ts","../../../node_modules/tailwind-merge/src/lib/lru-cache.ts","../../../node_modules/tailwind-merge/src/lib/parse-class-name.ts","../../../node_modules/tailwind-merge/src/lib/sort-modifiers.ts","../../../node_modules/tailwind-merge/src/lib/config-utils.ts","../../../node_modules/tailwind-merge/src/lib/merge-classlist.ts","../../../node_modules/tailwind-merge/src/lib/tw-join.ts","../../../node_modules/tailwind-merge/src/lib/create-tailwind-merge.ts","../../../node_modules/tailwind-merge/src/lib/from-theme.ts","../../../node_modules/tailwind-merge/src/lib/validators.ts","../../../node_modules/tailwind-merge/src/lib/default-config.ts","../../../node_modules/tailwind-merge/src/lib/tw-merge.ts","../../../domains/systemhaus-ui/src/domain/enums/breakpoints.enum.ts","../../../domains/systemhaus-ui/src/domain/enums/spacing.enum.ts","../../../domains/systemhaus-ui/src/domain/components/common/squareSizeStyles.ts","../../../domains/systemhaus-ui/src/domain/components/Avatar/modelAvatar.ts","../../../domains/systemhaus-ui/src/domain/components/Avatar/avatar.styles.ts","../../../domains/systemhaus-ui/src/domain/components/Grid/grid.styles.ts","../../../domains/systemhaus-ui/src/domain/components/Grid/modelGridLayout.ts","../../../domains/systemhaus-ui/src/domain/components/ProgressiveImage/progressiveImage.ts","../../../domains/systemhaus-ui/src/domain/enums/controls.enum.ts","../../../domains/systemhaus-ui/src/domain/components/common/focusRing.styles.ts","../../../domains/systemhaus-ui/src/domain/components/common/control.common.styles.ts","../../../domains/systemhaus-ui/src/domain/components/common/cursor.styles.ts","../../../domains/systemhaus-ui/src/domain/components/common/fluidSizeStyles.ts","../../../domains/systemhaus-ui/src/domain/components/Typography/typography.styles.ts","../../../domains/systemhaus-ui/src/domain/components/Typography/config/label.ts","../../../domains/systemhaus-ui/src/domain/components/Typography/modelTypography.ts","../../../domains/systemhaus-ui/src/domain/components/common/horizontalSpacingStyles.ts","../../../domains/systemhaus-ui/src/domain/components/Button/modelButton.ts","../../../domains/systemhaus-ui/src/domain/components/Button/button.styles.ts","../../../domains/systemhaus-ui/src/domain/components/Button/createA11yButtonProperties.ts","../../../domains/systemhaus-ui/src/domain/abstractions/spacing.tailwind.ts","../../../domains/systemhaus-ui/src/domain/theme/defaultSystemHausThemeVariables.ts","../../../domains/systemhaus-ui/src/domain/axiosSystemHausInstance.ts","../../../domains/systemhaus-ui/src/domain/styles/input.styles.ts","../../../domains/systemhaus-ui/src/domain/styles/cursor.styles.ts","../../../domains/systemhaus-ui/src/domain/styles/textArea.styles.ts","../../../domains/systemhaus-ui/src/domain/scripts/toggleDarkMode.ts","../../../domains/systemhaus-ui/src/domain/index.ts","../../../domains/systemhaus-ui/src/application/composeThemeProvider.ts","../../../domains/systemhaus-ui/src/infrastructure/bauhausGridComposer.ts","../../../domains/systemhaus-ui/src/utils/composeAnimationProperties.ts","../../../domains/systemhaus-ui/src/utils/createCssVariableEntry.ts","../../../domains/systemhaus-ui/src/utils/flattenResponsive.ts","../src/components/Card/Card.tsx","../src/components/Button/Button.tsx","../src/components/BauHaus/BauhausGrid.tsx","../src/components/Grid/Grid.tsx","../src/components/Avatar/Avatar.tsx","../src/components/ProgressiveImage/ProgressiveImage.tsx","../src/hooks/useProgressiveImage.ts","../src/components/Input/Input.tsx","../src/components/Glass/Glass.tsx","../src/components/Loaders/FullScreenLoader.tsx","../src/components/TextArea/TextArea.tsx","../src/components/Typography/Typography.tsx","../../../domains/ui-domain/src/application/composeDesignSystem.ts","../../../domains/ui-domain/src/domain/components/Avatar/tokens.ts","../../../domains/ui-domain/src/domain/components/Avatar/avatar.styles.ts","../../../domains/ui-domain/src/domain/components/common/control.common.styles.ts","../../../domains/ui-domain/src/domain/components/Card/card.styles.ts","../../../domains/ui-domain/src/domain/components/Card/tokens.ts","../../../domains/ui-domain/src/domain/components/common/focusRing.styles.ts","../../../domains/ui-domain/src/domain/components/common/cursor.styles.ts","../../../domains/ui-domain/src/domain/components/Grid/modelGridLayout.ts","../../../domains/ui-domain/src/domain/components/Grid/grid.styles.ts","../../../domains/ui-domain/src/domain/components/Input/input.styles.ts","../../../domains/ui-domain/src/domain/components/Panel/panel.styles.ts","../../../domains/ui-domain/src/domain/components/Typography/typography.styles.ts","../../../domains/ui-domain/src/domain/components/Typography/config/label.ts","../../../domains/ui-domain/src/domain/components/Typography/modelTypography.ts","../../../domains/ui-domain/src/domain/provider/lightDarkThemeToggle.ts","../../../domains/ui-domain/src/domain/provider/variablesMap.ts","../../../domains/ui-domain/src/domain/provider/handleSetThemeVariable.ts","../../../domains/ui-domain/src/domain/provider/themeProviderSymbol.ts","../../../domains/ui-domain/src/domain/components/motion/constants.ts","../../../domains/ui-domain/src/domain/components/motion/createFadeProperties.ts","../../../domains/ui-domain/src/domain/components/motion/enums.ts","../../../domains/ui-domain/src/domain/components/motion/createStaggerContainerProperties.ts","../../../domains/ui-domain/src/application/composeThemeProvider.ts","../../../domains/ui-domain/src/utils/composeAnimationProperties.ts","../../../domains/ui-domain/src/utils/createCssVariableEntry.ts","../../../domains/ui-domain/src/utils/flattenResponsive.ts","../src/components/Typography/Label.tsx","../src/components/Typography/TextPrimitives.tsx","../src/components/Typography/TextSemantic.tsx","../src/hooks/useDarkMode.ts","../src/context/ThemeProvider.tsx","../src/context/axiosSystemHausInstance.ts","../src/sdk/FormKit/FormKitFormRenderer.tsx","../src/config/constants.ts","../src/sdk/FormKit/index.ts"],"sourcesContent":["{\n \"dimension\": {\n \"0\": \"var(--dimension-0)\",\n \"1\": \"var(--dimension-1)\",\n \"2\": \"var(--dimension-2)\",\n \"3\": \"var(--dimension-3)\",\n \"4\": \"var(--dimension-4)\",\n \"5\": \"var(--dimension-5)\",\n \"6\": \"var(--dimension-6)\",\n \"7\": \"var(--dimension-7)\",\n \"8\": \"var(--dimension-8)\",\n \"9\": \"var(--dimension-9)\",\n \"10\": \"var(--dimension-10)\",\n \"11\": \"var(--dimension-11)\",\n \"12\": \"var(--dimension-12)\",\n \"13\": \"var(--dimension-13)\",\n \"14\": \"var(--dimension-14)\",\n \"15\": \"var(--dimension-15)\",\n \"16\": \"var(--dimension-16)\",\n \"17\": \"var(--dimension-17)\",\n \"18\": \"var(--dimension-18)\",\n \"19\": \"var(--dimension-19)\",\n \"20\": \"var(--dimension-20)\",\n \"21\": \"var(--dimension-21)\",\n \"22\": \"var(--dimension-22)\",\n \"23\": \"var(--dimension-23)\",\n \"24\": \"var(--dimension-24)\",\n \"25\": \"var(--dimension-25)\",\n \"26\": \"var(--dimension-26)\",\n \"27\": \"var(--dimension-27)\",\n \"28\": \"var(--dimension-28)\",\n \"29\": \"var(--dimension-29)\",\n \"30\": \"var(--dimension-30)\",\n \"31\": \"var(--dimension-31)\",\n \"32\": \"var(--dimension-32)\",\n \"33\": \"var(--dimension-33)\",\n \"34\": \"var(--dimension-34)\",\n \"35\": \"var(--dimension-35)\",\n \"36\": \"var(--dimension-36)\",\n \"37\": \"var(--dimension-37)\",\n \"38\": \"var(--dimension-38)\",\n \"39\": \"var(--dimension-39)\",\n \"40\": \"var(--dimension-40)\",\n \"41\": \"var(--dimension-41)\",\n \"42\": \"var(--dimension-42)\",\n \"43\": \"var(--dimension-43)\",\n \"44\": \"var(--dimension-44)\",\n \"45\": \"var(--dimension-45)\",\n \"46\": \"var(--dimension-46)\",\n \"47\": \"var(--dimension-47)\",\n \"48\": \"var(--dimension-48)\",\n \"49\": \"var(--dimension-49)\",\n \"50\": \"var(--dimension-50)\",\n \"51\": \"var(--dimension-51)\",\n \"52\": \"var(--dimension-52)\",\n \"53\": \"var(--dimension-53)\",\n \"54\": \"var(--dimension-54)\",\n \"55\": \"var(--dimension-55)\",\n \"56\": \"var(--dimension-56)\",\n \"57\": \"var(--dimension-57)\",\n \"58\": \"var(--dimension-58)\",\n \"59\": \"var(--dimension-59)\",\n \"60\": \"var(--dimension-60)\",\n \"61\": \"var(--dimension-61)\",\n \"62\": \"var(--dimension-62)\",\n \"63\": \"var(--dimension-63)\",\n \"64\": \"var(--dimension-64)\",\n \"65\": \"var(--dimension-65)\",\n \"66\": \"var(--dimension-66)\",\n \"67\": \"var(--dimension-67)\",\n \"68\": \"var(--dimension-68)\",\n \"69\": \"var(--dimension-69)\",\n \"70\": \"var(--dimension-70)\",\n \"71\": \"var(--dimension-71)\",\n \"72\": \"var(--dimension-72)\",\n \"73\": \"var(--dimension-73)\",\n \"74\": \"var(--dimension-74)\",\n \"75\": \"var(--dimension-75)\",\n \"76\": \"var(--dimension-76)\",\n \"77\": \"var(--dimension-77)\",\n \"78\": \"var(--dimension-78)\",\n \"79\": \"var(--dimension-79)\",\n \"80\": \"var(--dimension-80)\",\n \"81\": \"var(--dimension-81)\",\n \"82\": \"var(--dimension-82)\",\n \"83\": \"var(--dimension-83)\",\n \"84\": \"var(--dimension-84)\",\n \"85\": \"var(--dimension-85)\",\n \"86\": \"var(--dimension-86)\",\n \"87\": \"var(--dimension-87)\",\n \"88\": \"var(--dimension-88)\",\n \"89\": \"var(--dimension-89)\",\n \"90\": \"var(--dimension-90)\",\n \"91\": \"var(--dimension-91)\",\n \"92\": \"var(--dimension-92)\",\n \"93\": \"var(--dimension-93)\",\n \"94\": \"var(--dimension-94)\",\n \"95\": \"var(--dimension-95)\",\n \"96\": \"var(--dimension-96)\",\n \"97\": \"var(--dimension-97)\",\n \"98\": \"var(--dimension-98)\",\n \"99\": \"var(--dimension-99)\",\n \"100\": \"var(--dimension-100)\",\n \"sm\": \"var(--dimension-sm)\",\n \"lg\": \"var(--dimension-lg)\",\n \"xl\": \"var(--dimension-xl)\",\n \"px\": \"var(--dimension-px)\",\n \"rounded-none\": \"var(--dimension-rounded-none)\",\n \"rounded-sm\": \"var(--dimension-rounded-sm)\",\n \"rounded-default\": \"var(--dimension-rounded-default)\",\n \"rounded-md\": \"var(--dimension-rounded-md)\",\n \"rounded-lg\": \"var(--dimension-rounded-lg)\",\n \"rounded-xl\": \"var(--dimension-rounded-xl)\",\n \"rounded-2xl\": \"var(--dimension-rounded-2xl)\",\n \"rounded-3xl\": \"var(--dimension-rounded-3xl)\",\n \"rounded-full\": \"var(--dimension-rounded-full)\",\n \"default\": \"var(--dimension-default)\",\n \"2xs\": \"var(--dimension-2xs)\",\n \"xs\": \"var(--dimension-xs)\",\n \"md\": \"var(--dimension-md)\",\n \"2xl\": \"var(--dimension-2xl)\",\n \"rem_base\": \"var(--dimension-rem_base)\"\n },\n \"fontSize\": {\n \"xs\": \"var(--font-size-xs)\",\n \"sm\": \"var(--font-size-sm)\",\n \"base\": \"var(--font-size-base)\",\n \"lg\": \"var(--font-size-lg)\",\n \"xl\": \"var(--font-size-xl)\",\n \"2xl\": \"var(--font-size-2xl)\",\n \"3xl\": \"var(--font-size-3xl)\",\n \"4xl\": \"var(--font-size-4xl)\",\n \"5xl\": \"var(--font-size-5xl)\",\n \"6xl\": \"var(--font-size-6xl)\",\n \"7xl\": \"var(--font-size-7xl)\",\n \"8xl\": \"var(--font-size-8xl)\",\n \"9xl\": \"var(--font-size-9xl)\"\n },\n \"fontFamily\": {\n \"body\": \"var(--font-family-body)\",\n \"sans\": \"var(--font-family-sans)\",\n \"display\": \"var(--font-family-display)\"\n },\n \"fontWeight\": {\n \"thin\": \"var(--font-weight-thin)\",\n \"extralight\": \"var(--font-weight-extralight)\",\n \"light\": \"var(--font-weight-light)\",\n \"normal\": \"var(--font-weight-normal)\",\n \"medium\": \"var(--font-weight-medium)\",\n \"semibold\": \"var(--font-weight-semibold)\",\n \"bold\": \"var(--font-weight-bold)\",\n \"extrabold\": \"var(--font-weight-extrabold)\",\n \"black\": \"var(--font-weight-black)\"\n },\n \"color\": {\n \"gray\": {\n \"50\": \"var(--color-gray-50)\",\n \"100\": \"var(--color-gray-100)\",\n \"200\": \"var(--color-gray-200)\",\n \"300\": \"var(--color-gray-300)\",\n \"400\": \"var(--color-gray-400)\",\n \"500\": \"var(--color-gray-500)\",\n \"600\": \"var(--color-gray-600)\",\n \"700\": \"var(--color-gray-700)\",\n \"800\": \"var(--color-gray-800)\",\n \"900\": \"var(--color-gray-900)\"\n },\n \"coolGray\": {\n \"50\": \"var(--color-coolGray-50)\",\n \"100\": \"var(--color-coolGray-100)\",\n \"200\": \"var(--color-coolGray-200)\",\n \"300\": \"var(--color-coolGray-300)\",\n \"400\": \"var(--color-coolGray-400)\",\n \"500\": \"var(--color-coolGray-500)\",\n \"600\": \"var(--color-coolGray-600)\",\n \"700\": \"var(--color-coolGray-700)\",\n \"800\": \"var(--color-coolGray-800)\",\n \"900\": \"var(--color-coolGray-900)\"\n },\n \"trueGray\": {\n \"50\": \"var(--color-trueGray-50)\",\n \"200\": \"var(--color-trueGray-200)\",\n \"300\": \"var(--color-trueGray-300)\",\n \"400\": \"var(--color-trueGray-400)\",\n \"500\": \"var(--color-trueGray-500)\",\n \"600\": \"var(--color-trueGray-600)\",\n \"700\": \"var(--color-trueGray-700)\",\n \"800\": \"var(--color-trueGray-800)\",\n \"900\": \"var(--color-trueGray-900)\"\n },\n \"warmGray\": {\n \"50\": \"var(--color-warmGray-50)\",\n \"100\": \"var(--color-warmGray-100)\",\n \"200\": \"var(--color-warmGray-200)\",\n \"300\": \"var(--color-warmGray-300)\",\n \"400\": \"var(--color-warmGray-400)\",\n \"500\": \"var(--color-warmGray-500)\",\n \"600\": \"var(--color-warmGray-600)\",\n \"700\": \"var(--color-warmGray-700)\",\n \"800\": \"var(--color-warmGray-800)\",\n \"900\": \"var(--color-warmGray-900)\"\n },\n \"red\": {\n \"50\": \"var(--color-red-50)\",\n \"100\": \"var(--color-red-100)\",\n \"200\": \"var(--color-red-200)\",\n \"300\": \"var(--color-red-300)\",\n \"400\": \"var(--color-red-400)\",\n \"500\": \"var(--color-red-500)\",\n \"600\": \"var(--color-red-600)\",\n \"700\": \"var(--color-red-700)\",\n \"800\": \"var(--color-red-800)\",\n \"900\": \"var(--color-red-900)\"\n },\n \"orange\": {\n \"50\": \"var(--color-orange-50)\",\n \"100\": \"var(--color-orange-100)\",\n \"200\": \"var(--color-orange-200)\",\n \"300\": \"var(--color-orange-300)\",\n \"400\": \"var(--color-orange-400)\",\n \"500\": \"var(--color-orange-500)\",\n \"600\": \"var(--color-orange-600)\",\n \"700\": \"var(--color-orange-700)\",\n \"800\": \"var(--color-orange-800)\",\n \"900\": \"var(--color-orange-900)\"\n },\n \"amber\": {\n \"50\": \"var(--color-amber-50)\",\n \"100\": \"var(--color-amber-100)\",\n \"200\": \"var(--color-amber-200)\",\n \"300\": \"var(--color-amber-300)\",\n \"400\": \"var(--color-amber-400)\",\n \"500\": \"var(--color-amber-500)\",\n \"600\": \"var(--color-amber-600)\",\n \"700\": \"var(--color-amber-700)\",\n \"800\": \"var(--color-amber-800)\",\n \"900\": \"var(--color-amber-900)\"\n },\n \"yellow\": {\n \"50\": \"var(--color-yellow-50)\",\n \"100\": \"var(--color-yellow-100)\",\n \"200\": \"var(--color-yellow-200)\",\n \"300\": \"var(--color-yellow-300)\",\n \"400\": \"var(--color-yellow-400)\",\n \"500\": \"var(--color-yellow-500)\",\n \"600\": \"var(--color-yellow-600)\",\n \"700\": \"var(--color-yellow-700)\",\n \"800\": \"var(--color-yellow-800)\",\n \"900\": \"var(--color-yellow-900)\"\n },\n \"lime\": {\n \"50\": \"var(--color-lime-50)\",\n \"100\": \"var(--color-lime-100)\",\n \"200\": \"var(--color-lime-200)\",\n \"300\": \"var(--color-lime-300)\",\n \"400\": \"var(--color-lime-400)\",\n \"500\": \"var(--color-lime-500)\",\n \"600\": \"var(--color-lime-600)\",\n \"700\": \"var(--color-lime-700)\",\n \"800\": \"var(--color-lime-800)\",\n \"900\": \"var(--color-lime-900)\"\n },\n \"green\": {\n \"50\": \"var(--color-green-50)\",\n \"100\": \"var(--color-green-100)\",\n \"200\": \"var(--color-green-200)\",\n \"300\": \"var(--color-green-300)\",\n \"400\": \"var(--color-green-400)\",\n \"500\": \"var(--color-green-500)\",\n \"600\": \"var(--color-green-600)\",\n \"700\": \"var(--color-green-700)\",\n \"800\": \"var(--color-green-800)\",\n \"900\": \"var(--color-green-900)\"\n },\n \"emerald\": {\n \"50\": \"var(--color-emerald-50)\",\n \"100\": \"var(--color-emerald-100)\",\n \"200\": \"var(--color-emerald-200)\",\n \"300\": \"var(--color-emerald-300)\",\n \"400\": \"var(--color-emerald-400)\",\n \"500\": \"var(--color-emerald-500)\",\n \"600\": \"var(--color-emerald-600)\",\n \"700\": \"var(--color-emerald-700)\",\n \"800\": \"var(--color-emerald-800)\",\n \"900\": \"var(--color-emerald-900)\"\n },\n \"teal\": {\n \"50\": \"var(--color-teal-50)\",\n \"100\": \"var(--color-teal-100)\",\n \"200\": \"var(--color-teal-200)\",\n \"300\": \"var(--color-teal-300)\",\n \"400\": \"var(--color-teal-400)\",\n \"500\": \"var(--color-teal-500)\",\n \"600\": \"var(--color-teal-600)\",\n \"700\": \"var(--color-teal-700)\",\n \"800\": \"var(--color-teal-800)\",\n \"900\": \"var(--color-teal-900)\"\n },\n \"cyan\": {\n \"50\": \"var(--color-cyan-50)\",\n \"100\": \"var(--color-cyan-100)\",\n \"200\": \"var(--color-cyan-200)\",\n \"300\": \"var(--color-cyan-300)\",\n \"400\": \"var(--color-cyan-400)\",\n \"500\": \"var(--color-cyan-500)\",\n \"600\": \"var(--color-cyan-600)\",\n \"700\": \"var(--color-cyan-700)\",\n \"800\": \"var(--color-cyan-800)\",\n \"900\": \"var(--color-cyan-900)\"\n },\n \"lightBlue\": {\n \"50\": \"var(--color-lightBlue-50)\",\n \"100\": \"var(--color-lightBlue-100)\",\n \"200\": \"var(--color-lightBlue-200)\",\n \"300\": \"var(--color-lightBlue-300)\",\n \"400\": \"var(--color-lightBlue-400)\",\n \"500\": \"var(--color-lightBlue-500)\",\n \"600\": \"var(--color-lightBlue-600)\",\n \"700\": \"var(--color-lightBlue-700)\",\n \"800\": \"var(--color-lightBlue-800)\",\n \"900\": \"var(--color-lightBlue-900)\"\n },\n \"blue\": {\n \"50\": \"var(--color-blue-50)\",\n \"100\": \"var(--color-blue-100)\",\n \"200\": \"var(--color-blue-200)\",\n \"300\": \"var(--color-blue-300)\",\n \"400\": \"var(--color-blue-400)\",\n \"500\": \"var(--color-blue-500)\",\n \"600\": \"var(--color-blue-600)\",\n \"700\": \"var(--color-blue-700)\",\n \"800\": \"var(--color-blue-800)\",\n \"900\": \"var(--color-blue-900)\"\n },\n \"indigo\": {\n \"50\": \"var(--color-indigo-50)\",\n \"100\": \"var(--color-indigo-100)\",\n \"200\": \"var(--color-indigo-200)\",\n \"300\": \"var(--color-indigo-300)\",\n \"400\": \"var(--color-indigo-400)\",\n \"500\": \"var(--color-indigo-500)\",\n \"600\": \"var(--color-indigo-600)\",\n \"700\": \"var(--color-indigo-700)\",\n \"800\": \"var(--color-indigo-800)\",\n \"900\": \"var(--color-indigo-900)\"\n },\n \"violet\": {\n \"50\": \"var(--color-violet-50)\",\n \"100\": \"var(--color-violet-100)\",\n \"200\": \"var(--color-violet-200)\",\n \"300\": \"var(--color-violet-300)\",\n \"400\": \"var(--color-violet-400)\",\n \"500\": \"var(--color-violet-500)\",\n \"600\": \"var(--color-violet-600)\",\n \"700\": \"var(--color-violet-700)\",\n \"800\": \"var(--color-violet-800)\",\n \"900\": \"var(--color-violet-900)\"\n },\n \"purple\": {\n \"50\": \"var(--color-purple-50)\",\n \"100\": \"var(--color-purple-100)\",\n \"200\": \"var(--color-purple-200)\",\n \"300\": \"var(--color-purple-300)\",\n \"400\": \"var(--color-purple-400)\",\n \"500\": \"var(--color-purple-500)\",\n \"600\": \"var(--color-purple-600)\",\n \"700\": \"var(--color-purple-700)\",\n \"800\": \"var(--color-purple-800)\",\n \"900\": \"var(--color-purple-900)\"\n },\n \"fuschia\": {\n \"50\": \"var(--color-fuschia-50)\",\n \"100\": \"var(--color-fuschia-100)\",\n \"200\": \"var(--color-fuschia-200)\",\n \"300\": \"var(--color-fuschia-300)\",\n \"400\": \"var(--color-fuschia-400)\",\n \"500\": \"var(--color-fuschia-500)\",\n \"600\": \"var(--color-fuschia-600)\",\n \"700\": \"var(--color-fuschia-700)\",\n \"800\": \"var(--color-fuschia-800)\",\n \"900\": \"var(--color-fuschia-900)\"\n },\n \"pink\": {\n \"50\": \"var(--color-pink-50)\",\n \"100\": \"var(--color-pink-100)\",\n \"200\": \"var(--color-pink-200)\",\n \"300\": \"var(--color-pink-300)\",\n \"400\": \"var(--color-pink-400)\",\n \"500\": \"var(--color-pink-500)\",\n \"600\": \"var(--color-pink-600)\",\n \"700\": \"var(--color-pink-700)\",\n \"800\": \"var(--color-pink-800)\",\n \"900\": \"var(--color-pink-900)\"\n },\n \"rose\": {\n \"50\": \"var(--color-rose-50)\",\n \"100\": \"var(--color-rose-100)\",\n \"200\": \"var(--color-rose-200)\",\n \"300\": \"var(--color-rose-300)\",\n \"400\": \"var(--color-rose-400)\",\n \"500\": \"var(--color-rose-500)\",\n \"600\": \"var(--color-rose-600)\",\n \"700\": \"var(--color-rose-700)\",\n \"800\": \"var(--color-rose-800)\",\n \"900\": \"var(--color-rose-900)\"\n },\n \"black\": \"var(--color-black)\",\n \"white\": \"var(--color-white)\"\n },\n \"borderRadius\": {},\n \"extend\": {\n \"colors\": {\n \"card-root-bg-default\": \"var(--color-white)\",\n \"dark:card-root-bg-default\": \"var(--color-black)\",\n \"card-root-fg-default\": \"var(--color-gray-900)\",\n \"dark:card-root-fg-default\": \"var(--color-black)\"\n },\n \"spacing\": {\n \"card-root-padding-default\": \"var(--dimension-8)\"\n },\n \"borderRadius\": {\n \"card-root-radius-default\": \"var(--dimension-8)\"\n }\n }\n}\n","export function handleToggleLightDarkTheme(): void {\n const root = document.documentElement;\n const selectedMode = root.classList.contains('dark');\n root.classList.toggle('dark', !selectedMode);\n}\n","export const HTMLStyleElementId = 'KUROCADO_STUDIO_CSS_VARIABLES_MAP';\n\nexport function handleVariablesMap(\n htmlStyleElementReference: HTMLStyleElement | undefined | null,\n cssVariablesPayload: Record<string, unknown>,\n): HTMLStyleElement {\n let styleElementReference: HTMLStyleElement | null =\n htmlStyleElementReference ??\n (document.querySelector(HTMLStyleElementId) as HTMLStyleElement);\n\n if (!styleElementReference) {\n styleElementReference = document.createElement('style');\n styleElementReference.id = HTMLStyleElementId;\n }\n\n styleElementReference.textContent = `:root {\n ${Object.entries(cssVariablesPayload)\n .map(([variableName, variableValue]) =>\n typeof variableValue === 'string'\n ? `${variableName}: ${variableValue};`\n : '',\n )\n .join('\\n')}\n }`;\n\n document.head.append(styleElementReference);\n return styleElementReference;\n}\n","export { handleVariablesMap } from './variablesMap';\n\nexport function handleSetThemeVariable(options: {\n variableName: string;\n variableValue: string;\n}):\n | {\n variableName: string;\n variableValue: string;\n }\n | undefined {\n const { variableName, variableValue } = options;\n\n const styles = getComputedStyle(document.documentElement);\n const cssVariableValue = styles.getPropertyValue(variableName);\n\n if (cssVariableValue.trim().length === 0) return;\n\n return {\n variableName,\n variableValue,\n };\n}\n","export const ThemeProviderSymbol = Symbol('ThemeProvider');\n","export type ProgressOptions = {\n minimumDelay?: number;\n steps?: number[];\n};\n\nexport const DEFAULT_PROGRESS_OPTIONS: ProgressOptions = {\n minimumDelay: 0,\n steps: [0, 5, 12, 18, 30, 34, 50, 59, 65, 75, 80, 85, 90, 95],\n};\n\nexport type ThemeWithIds = {\n organizationId: string;\n themeId: string;\n theme?: never;\n};\n\nexport type ThemeWithObject = {\n theme: Record<string, unknown>;\n organizationId?: never;\n themeId?: never;\n};\n\nexport type ThemeMode = ThemeWithIds | ThemeWithObject;\n","export const card = {\n cardComponentWrapperClasses:\n 'w-full border border-gray-200 dark:border-gray-800 dark:bg-black bg-card-root-bg-default rounded-card-root-radius-default p-card-root-padding-default',\n cardHeaderClasses: `border-b border-b-gray-300 dark:border-b-gray-800 pb-[1rem] mb-[1rem] w-full`,\n cardBodyClasses: 'w-full',\n cardFooterClasses:\n 'border-t border-t-gray-200 dark:border-t-gray-800 w-full pt-[1rem] mt-[1rem]',\n};\n","export enum SecondaryColors {\n GREEN = 'GREEN',\n ORANGE = 'ORANGE',\n PURPLE = 'PURPLE',\n}\n\nexport enum PrimaryColors {\n RED = 'bg-[Red] dark:bg-[ForestGreen]',\n BLUE = 'bg-[Blue] dark:bg-[DarkOrange]',\n YELLOW = 'bg-[Yellow] dark:bg-[DarkMagenta]',\n}\n\nexport enum BorderPrimaryColors {\n RED = 'border-[Red] dark:border-[ForestGreen]',\n BLUE = 'border-[Blue] dark:border-[DarkOrange]',\n YELLOW = 'border-[Yellow] dark:border-[DarkMagenta]',\n}\n\nexport enum SurfaceColors {\n BASE = 'bg-[#F2F5F9] dark:bg-[#0F0F0F]',\n ELEVATED = '#FFFFFF',\n MODAL = 'bg-card-root-bg-default dark:bg-[Black]',\n}\n","/*#__NO_SIDE_EFFECTS__*/\nconst noop = (any) => any;\n\nexport { noop };\n","import { noop } from '../noop.mjs';\n\n/*\n Bezier function generator\n This has been modified from Gaëtan Renaudeau's BezierEasing\n https://github.com/gre/bezier-easing/blob/master/src/index.js\n https://github.com/gre/bezier-easing/blob/master/LICENSE\n \n I've removed the newtonRaphsonIterate algo because in benchmarking it\n wasn't noticeably faster than binarySubdivision, indeed removing it\n usually improved times, depending on the curve.\n I also removed the lookup table, as for the added bundle size and loop we're\n only cutting ~4 or so subdivision iterations. I bumped the max iterations up\n to 12 to compensate and this still tended to be faster for no perceivable\n loss in accuracy.\n Usage\n const easeOut = cubicBezier(.17,.67,.83,.67);\n const x = easeOut(0.5); // returns 0.627...\n*/\n// Returns x(t) given t, x1, and x2, or y(t) given t, y1, and y2.\nconst calcBezier = (t, a1, a2) => (((1.0 - 3.0 * a2 + 3.0 * a1) * t + (3.0 * a2 - 6.0 * a1)) * t + 3.0 * a1) *\n t;\nconst subdivisionPrecision = 0.0000001;\nconst subdivisionMaxIterations = 12;\nfunction binarySubdivide(x, lowerBound, upperBound, mX1, mX2) {\n let currentX;\n let currentT;\n let i = 0;\n do {\n currentT = lowerBound + (upperBound - lowerBound) / 2.0;\n currentX = calcBezier(currentT, mX1, mX2) - x;\n if (currentX > 0.0) {\n upperBound = currentT;\n }\n else {\n lowerBound = currentT;\n }\n } while (Math.abs(currentX) > subdivisionPrecision &&\n ++i < subdivisionMaxIterations);\n return currentT;\n}\nfunction cubicBezier(mX1, mY1, mX2, mY2) {\n // If this is a linear gradient, return linear easing\n if (mX1 === mY1 && mX2 === mY2)\n return noop;\n const getTForX = (aX) => binarySubdivide(aX, 0, 1, mX1, mX2);\n // If animation is at start/end, return t without easing\n return (t) => t === 0 || t === 1 ? t : calcBezier(getTForX(t), mY1, mY2);\n}\n\nexport { cubicBezier };\n","import { cubicBezier } from './cubic-bezier.mjs';\n\nconst easeIn = /*@__PURE__*/ cubicBezier(0.42, 0, 1, 1);\nconst easeOut = /*@__PURE__*/ cubicBezier(0, 0, 0.58, 1);\nconst easeInOut = /*@__PURE__*/ cubicBezier(0.42, 0, 0.58, 1);\n\nexport { easeIn, easeInOut, easeOut };\n","import { easeIn, easeOut } from 'motion/react';\n\nexport const MOTION_ORIGIN = 36;\nexport const MOTION_DESTINATION = 0;\nexport const MOTION_DURATION = 0.3;\nexport const MOTION_STAGGER_CHILDREN = 0.1;\nexport const MOTION_DELAY_CHILDREN = 0.24;\n\nconst blurFilters = {\n hidden: { filter: 'blur(8px)' },\n visible: { filter: 'blur(0px)' },\n};\n\nexport const MOTION_VISIBLE_TRANSITION = easeIn;\n\nexport const MOTION_HIDDEN_TRANSITION = easeOut;\n\nexport const DEFAULT_VIEWPORT = {\n once: false,\n margin: '0px 0px -200px',\n};\n\nexport const VARIANTS_CONTAINER = {\n hidden: { opacity: 0 },\n visible: {\n opacity: 1,\n transition: {\n staggerChildren: MOTION_STAGGER_CHILDREN,\n ease: MOTION_VISIBLE_TRANSITION,\n },\n },\n};\n\nexport const LIST_VARIANTS_CONTAINER = {\n hidden: {},\n visible: {\n transition: {\n staggerChildren: MOTION_STAGGER_CHILDREN,\n delayChildren: MOTION_DELAY_CHILDREN,\n duration: MOTION_DURATION,\n ease: MOTION_VISIBLE_TRANSITION,\n },\n },\n};\n\nexport const LIST_ITEMS_VARIANTS = {\n hidden: { opacity: 0, x: MOTION_ORIGIN },\n visible: {\n opacity: 1,\n x: 0,\n },\n};\n\nexport const SLIDE_MENU_VARIANTS = {\n visible: {\n x: 0,\n opacity: 1,\n transition: {\n duration: MOTION_DURATION,\n ease: MOTION_VISIBLE_TRANSITION,\n },\n ...blurFilters.visible,\n },\n hidden: {\n x: 1000,\n opacity: 0,\n transition: {\n duration: MOTION_DURATION,\n ease: MOTION_HIDDEN_TRANSITION,\n },\n ...blurFilters.hidden,\n },\n};\n\nexport const VARIANTS_SECTION = {\n hidden: {\n opacity: 0,\n y: MOTION_ORIGIN,\n transition: {\n duration: MOTION_DURATION,\n ease: MOTION_HIDDEN_TRANSITION,\n },\n ...blurFilters.hidden,\n },\n visible: {\n opacity: 1,\n y: MOTION_DESTINATION,\n transition: {\n duration: MOTION_DURATION,\n ease: MOTION_VISIBLE_TRANSITION,\n },\n ...blurFilters.visible,\n },\n};\n\nexport const TRANSITION_SECTION = {\n duration: MOTION_DURATION,\n};\n","import { DEFAULT_VIEWPORT, TRANSITION_SECTION } from './motion';\n\nexport const gridContainerProperties = {\n initial: 'hidden',\n transition: TRANSITION_SECTION,\n variants: {\n hidden: { opacity: 0, filter: 'blur(8px)' },\n visible: { opacity: 1, filter: 'blur(0px)' },\n },\n viewport: DEFAULT_VIEWPORT,\n whileInView: 'visible',\n};\n","import { type AvatarComponentToken } from './types';\n\nexport const tailwindAvatarComponentToken: AvatarComponentToken = {\n bg: 'bg-avatar-root-bg-default',\n borderRadius: 'rounded-avatar-root-radius-default',\n fg: 'text-gray-100',\n border: 'border-2 border-gray-100',\n};\n\nexport const avatarVariantToken: AvatarComponentToken = {\n bg: 'avatar.root.bg.default',\n fg: 'avatar.root.fg.default',\n borderRadius: 'avatar.root.radius.default',\n border: 'avatar.root.border.default',\n};\n","/**\n * Concatenates two arrays faster than the array spread operator.\n */\nexport const concatArrays = <T, U>(\n array1: readonly T[],\n array2: readonly U[],\n): readonly (T | U)[] => {\n // Pre-allocate for better V8 optimization\n const combinedArray: (T | U)[] = new Array(array1.length + array2.length)\n for (let i = 0; i < array1.length; i++) {\n combinedArray[i] = array1[i]!\n }\n for (let i = 0; i < array2.length; i++) {\n combinedArray[array1.length + i] = array2[i]!\n }\n return combinedArray\n}\n","import {\n AnyClassGroupIds,\n AnyConfig,\n AnyThemeGroupIds,\n ClassGroup,\n ClassValidator,\n Config,\n ThemeGetter,\n ThemeObject,\n} from './types'\nimport { concatArrays } from './utils'\n\nexport interface ClassPartObject {\n nextPart: Map<string, ClassPartObject>\n validators: ClassValidatorObject[] | null\n classGroupId: AnyClassGroupIds | undefined // Always define optional props for consistent shape\n}\n\ninterface ClassValidatorObject {\n classGroupId: AnyClassGroupIds\n validator: ClassValidator\n}\n\n// Factory function ensures consistent object shapes\nconst createClassValidatorObject = (\n classGroupId: AnyClassGroupIds,\n validator: ClassValidator,\n): ClassValidatorObject => ({\n classGroupId,\n validator,\n})\n\n// Factory ensures consistent ClassPartObject shape\nconst createClassPartObject = (\n nextPart: Map<string, ClassPartObject> = new Map(),\n validators: ClassValidatorObject[] | null = null,\n classGroupId?: AnyClassGroupIds,\n): ClassPartObject => ({\n nextPart,\n validators,\n classGroupId,\n})\n\nconst CLASS_PART_SEPARATOR = '-'\n\nconst EMPTY_CONFLICTS: readonly AnyClassGroupIds[] = []\n// I use two dots here because one dot is used as prefix for class groups in plugins\nconst ARBITRARY_PROPERTY_PREFIX = 'arbitrary..'\n\nexport const createClassGroupUtils = (config: AnyConfig) => {\n const classMap = createClassMap(config)\n const { conflictingClassGroups, conflictingClassGroupModifiers } = config\n\n const getClassGroupId = (className: string) => {\n if (className.startsWith('[') && className.endsWith(']')) {\n return getGroupIdForArbitraryProperty(className)\n }\n\n const classParts = className.split(CLASS_PART_SEPARATOR)\n // Classes like `-inset-1` produce an empty string as first classPart. We assume that classes for negative values are used correctly and skip it.\n const startIndex = classParts[0] === '' && classParts.length > 1 ? 1 : 0\n return getGroupRecursive(classParts, startIndex, classMap)\n }\n\n const getConflictingClassGroupIds = (\n classGroupId: AnyClassGroupIds,\n hasPostfixModifier: boolean,\n ): readonly AnyClassGroupIds[] => {\n if (hasPostfixModifier) {\n const modifierConflicts = conflictingClassGroupModifiers[classGroupId]\n const baseConflicts = conflictingClassGroups[classGroupId]\n\n if (modifierConflicts) {\n if (baseConflicts) {\n // Merge base conflicts with modifier conflicts\n return concatArrays(baseConflicts, modifierConflicts)\n }\n // Only modifier conflicts\n return modifierConflicts\n }\n // Fall back to without postfix if no modifier conflicts\n return baseConflicts || EMPTY_CONFLICTS\n }\n\n return conflictingClassGroups[classGroupId] || EMPTY_CONFLICTS\n }\n\n return {\n getClassGroupId,\n getConflictingClassGroupIds,\n }\n}\n\nconst getGroupRecursive = (\n classParts: string[],\n startIndex: number,\n classPartObject: ClassPartObject,\n): AnyClassGroupIds | undefined => {\n const classPathsLength = classParts.length - startIndex\n if (classPathsLength === 0) {\n return classPartObject.classGroupId\n }\n\n const currentClassPart = classParts[startIndex]!\n const nextClassPartObject = classPartObject.nextPart.get(currentClassPart)\n\n if (nextClassPartObject) {\n const result = getGroupRecursive(classParts, startIndex + 1, nextClassPartObject)\n if (result) return result\n }\n\n const validators = classPartObject.validators\n if (validators === null) {\n return undefined\n }\n\n // Build classRest string efficiently by joining from startIndex onwards\n const classRest =\n startIndex === 0\n ? classParts.join(CLASS_PART_SEPARATOR)\n : classParts.slice(startIndex).join(CLASS_PART_SEPARATOR)\n const validatorsLength = validators.length\n\n for (let i = 0; i < validatorsLength; i++) {\n const validatorObj = validators[i]!\n if (validatorObj.validator(classRest)) {\n return validatorObj.classGroupId\n }\n }\n\n return undefined\n}\n\n/**\n * Get the class group ID for an arbitrary property.\n *\n * @param className - The class name to get the group ID for. Is expected to be string starting with `[` and ending with `]`.\n */\nconst getGroupIdForArbitraryProperty = (className: string): AnyClassGroupIds | undefined =>\n className.slice(1, -1).indexOf(':') === -1\n ? undefined\n : (() => {\n const content = className.slice(1, -1)\n const colonIndex = content.indexOf(':')\n const property = content.slice(0, colonIndex)\n return property ? ARBITRARY_PROPERTY_PREFIX + property : undefined\n })()\n\n/**\n * Exported for testing only\n */\nexport const createClassMap = (config: Config<AnyClassGroupIds, AnyThemeGroupIds>) => {\n const { theme, classGroups } = config\n return processClassGroups(classGroups, theme)\n}\n\n// Split into separate functions to maintain monomorphic call sites\nconst processClassGroups = (\n classGroups: Record<AnyClassGroupIds, ClassGroup<AnyThemeGroupIds>>,\n theme: ThemeObject<AnyThemeGroupIds>,\n): ClassPartObject => {\n const classMap = createClassPartObject()\n\n for (const classGroupId in classGroups) {\n const group = classGroups[classGroupId]!\n processClassesRecursively(group, classMap, classGroupId, theme)\n }\n\n return classMap\n}\n\nconst processClassesRecursively = (\n classGroup: ClassGroup<AnyThemeGroupIds>,\n classPartObject: ClassPartObject,\n classGroupId: AnyClassGroupIds,\n theme: ThemeObject<AnyThemeGroupIds>,\n) => {\n const len = classGroup.length\n for (let i = 0; i < len; i++) {\n const classDefinition = classGroup[i]!\n processClassDefinition(classDefinition, classPartObject, classGroupId, theme)\n }\n}\n\n// Split into separate functions for each type to maintain monomorphic call sites\nconst processClassDefinition = (\n classDefinition: ClassGroup<AnyThemeGroupIds>[number],\n classPartObject: ClassPartObject,\n classGroupId: AnyClassGroupIds,\n theme: ThemeObject<AnyThemeGroupIds>,\n) => {\n if (typeof classDefinition === 'string') {\n processStringDefinition(classDefinition, classPartObject, classGroupId)\n return\n }\n\n if (typeof classDefinition === 'function') {\n processFunctionDefinition(classDefinition, classPartObject, classGroupId, theme)\n return\n }\n\n processObjectDefinition(\n classDefinition as Record<string, ClassGroup<AnyThemeGroupIds>>,\n classPartObject,\n classGroupId,\n theme,\n )\n}\n\nconst processStringDefinition = (\n classDefinition: string,\n classPartObject: ClassPartObject,\n classGroupId: AnyClassGroupIds,\n) => {\n const classPartObjectToEdit =\n classDefinition === '' ? classPartObject : getPart(classPartObject, classDefinition)\n classPartObjectToEdit.classGroupId = classGroupId\n}\n\nconst processFunctionDefinition = (\n classDefinition: Function,\n classPartObject: ClassPartObject,\n classGroupId: AnyClassGroupIds,\n theme: ThemeObject<AnyThemeGroupIds>,\n) => {\n if (isThemeGetter(classDefinition)) {\n processClassesRecursively(classDefinition(theme), classPartObject, classGroupId, theme)\n return\n }\n\n if (classPartObject.validators === null) {\n classPartObject.validators = []\n }\n classPartObject.validators.push(\n createClassValidatorObject(classGroupId, classDefinition as ClassValidator),\n )\n}\n\nconst processObjectDefinition = (\n classDefinition: Record<string, ClassGroup<AnyThemeGroupIds>>,\n classPartObject: ClassPartObject,\n classGroupId: AnyClassGroupIds,\n theme: ThemeObject<AnyThemeGroupIds>,\n) => {\n const entries = Object.entries(classDefinition)\n const len = entries.length\n for (let i = 0; i < len; i++) {\n const [key, value] = entries[i]!\n processClassesRecursively(value, getPart(classPartObject, key), classGroupId, theme)\n }\n}\n\nconst getPart = (classPartObject: ClassPartObject, path: string): ClassPartObject => {\n let current = classPartObject\n const parts = path.split(CLASS_PART_SEPARATOR)\n const len = parts.length\n\n for (let i = 0; i < len; i++) {\n const part = parts[i]!\n\n let next = current.nextPart.get(part)\n if (!next) {\n next = createClassPartObject()\n current.nextPart.set(part, next)\n }\n current = next\n }\n\n return current\n}\n\n// Type guard maintains monomorphic check\nconst isThemeGetter = (func: Function): func is ThemeGetter =>\n 'isThemeGetter' in func && (func as ThemeGetter).isThemeGetter === true\n","// Export is needed because TypeScript complains about an error otherwise:\n// Error: …/tailwind-merge/src/config-utils.ts(8,17): semantic error TS4058: Return type of exported function has or is using name 'LruCache' from external module \"…/tailwind-merge/src/lru-cache\" but cannot be named.\nexport interface LruCache<Key extends string, Value> {\n get(key: Key): Value | undefined\n set(key: Key, value: Value): void\n}\n\n// LRU cache implementation using plain objects for simplicity\nexport const createLruCache = <Key extends string, Value>(\n maxCacheSize: number,\n): LruCache<Key, Value> => {\n if (maxCacheSize < 1) {\n return {\n get: () => undefined,\n set: () => {},\n }\n }\n\n let cacheSize = 0\n let cache: Record<Key, Value> = Object.create(null)\n let previousCache: Record<Key, Value> = Object.create(null)\n\n const update = (key: Key, value: Value) => {\n cache[key] = value\n cacheSize++\n\n if (cacheSize > maxCacheSize) {\n cacheSize = 0\n previousCache = cache\n cache = Object.create(null)\n }\n }\n\n return {\n get(key) {\n let value = cache[key]\n\n if (value !== undefined) {\n return value\n }\n if ((value = previousCache[key]) !== undefined) {\n update(key, value)\n return value\n }\n },\n set(key, value) {\n if (key in cache) {\n cache[key] = value\n } else {\n update(key, value)\n }\n },\n }\n}\n","import { AnyConfig, ParsedClassName } from './types'\n\nexport const IMPORTANT_MODIFIER = '!'\n\nconst MODIFIER_SEPARATOR = ':'\nconst EMPTY_MODIFIERS: string[] = []\n\n// Pre-allocated result object shape for consistency\nconst createResultObject = (\n modifiers: string[],\n hasImportantModifier: boolean,\n baseClassName: string,\n maybePostfixModifierPosition?: number,\n isExternal?: boolean,\n): ParsedClassName => ({\n modifiers,\n hasImportantModifier,\n baseClassName,\n maybePostfixModifierPosition,\n isExternal,\n})\n\nexport const createParseClassName = (config: AnyConfig) => {\n const { prefix, experimentalParseClassName } = config\n\n /**\n * Parse class name into parts.\n *\n * Inspired by `splitAtTopLevelOnly` used in Tailwind CSS\n * @see https://github.com/tailwindlabs/tailwindcss/blob/v3.2.2/src/util/splitAtTopLevelOnly.js\n */\n let parseClassName = (className: string): ParsedClassName => {\n // Use simple array with push for better performance\n const modifiers: string[] = []\n\n let bracketDepth = 0\n let parenDepth = 0\n let modifierStart = 0\n let postfixModifierPosition: number | undefined\n\n const len = className.length\n for (let index = 0; index < len; index++) {\n const currentCharacter = className[index]!\n\n if (bracketDepth === 0 && parenDepth === 0) {\n if (currentCharacter === MODIFIER_SEPARATOR) {\n modifiers.push(className.slice(modifierStart, index))\n modifierStart = index + 1\n continue\n }\n\n if (currentCharacter === '/') {\n postfixModifierPosition = index\n continue\n }\n }\n\n if (currentCharacter === '[') bracketDepth++\n else if (currentCharacter === ']') bracketDepth--\n else if (currentCharacter === '(') parenDepth++\n else if (currentCharacter === ')') parenDepth--\n }\n\n const baseClassNameWithImportantModifier =\n modifiers.length === 0 ? className : className.slice(modifierStart)\n\n // Inline important modifier check\n let baseClassName = baseClassNameWithImportantModifier\n let hasImportantModifier = false\n\n if (baseClassNameWithImportantModifier.endsWith(IMPORTANT_MODIFIER)) {\n baseClassName = baseClassNameWithImportantModifier.slice(0, -1)\n hasImportantModifier = true\n } else if (\n /**\n * In Tailwind CSS v3 the important modifier was at the start of the base class name. This is still supported for legacy reasons.\n * @see https://github.com/dcastil/tailwind-merge/issues/513#issuecomment-2614029864\n */\n baseClassNameWithImportantModifier.startsWith(IMPORTANT_MODIFIER)\n ) {\n baseClassName = baseClassNameWithImportantModifier.slice(1)\n hasImportantModifier = true\n }\n\n const maybePostfixModifierPosition =\n postfixModifierPosition && postfixModifierPosition > modifierStart\n ? postfixModifierPosition - modifierStart\n : undefined\n\n return createResultObject(\n modifiers,\n hasImportantModifier,\n baseClassName,\n maybePostfixModifierPosition,\n )\n }\n\n if (prefix) {\n const fullPrefix = prefix + MODIFIER_SEPARATOR\n const parseClassNameOriginal = parseClassName\n parseClassName = (className: string) =>\n className.startsWith(fullPrefix)\n ? parseClassNameOriginal(className.slice(fullPrefix.length))\n : createResultObject(EMPTY_MODIFIERS, false, className, undefined, true)\n }\n\n if (experimentalParseClassName) {\n const parseClassNameOriginal = parseClassName\n parseClassName = (className: string) =>\n experimentalParseClassName({ className, parseClassName: parseClassNameOriginal })\n }\n\n return parseClassName\n}\n","import { AnyConfig } from './types'\n\n/**\n * Sorts modifiers according to following schema:\n * - Predefined modifiers are sorted alphabetically\n * - When an arbitrary variant appears, it must be preserved which modifiers are before and after it\n */\nexport const createSortModifiers = (config: AnyConfig) => {\n // Pre-compute weights for all known modifiers for O(1) comparison\n const modifierWeights = new Map<string, number>()\n\n // Assign weights to sensitive modifiers (highest priority, but preserve order)\n config.orderSensitiveModifiers.forEach((mod, index) => {\n modifierWeights.set(mod, 1000000 + index) // High weights for sensitive mods\n })\n\n return (modifiers: readonly string[]): string[] => {\n const result: string[] = []\n let currentSegment: string[] = []\n\n // Process modifiers in one pass\n for (let i = 0; i < modifiers.length; i++) {\n const modifier = modifiers[i]!\n\n // Check if modifier is sensitive (starts with '[' or in orderSensitiveModifiers)\n const isArbitrary = modifier[0] === '['\n const isOrderSensitive = modifierWeights.has(modifier)\n\n if (isArbitrary || isOrderSensitive) {\n // Sort and flush current segment alphabetically\n if (currentSegment.length > 0) {\n currentSegment.sort()\n result.push(...currentSegment)\n currentSegment = []\n }\n result.push(modifier)\n } else {\n // Regular modifier - add to current segment for batch sorting\n currentSegment.push(modifier)\n }\n }\n\n // Sort and add any remaining segment items\n if (currentSegment.length > 0) {\n currentSegment.sort()\n result.push(...currentSegment)\n }\n\n return result\n }\n}\n","import { createClassGroupUtils } from './class-group-utils'\nimport { createLruCache } from './lru-cache'\nimport { createParseClassName } from './parse-class-name'\nimport { createSortModifiers } from './sort-modifiers'\nimport { AnyConfig } from './types'\n\nexport type ConfigUtils = ReturnType<typeof createConfigUtils>\n\nexport const createConfigUtils = (config: AnyConfig) => ({\n cache: createLruCache<string, string>(config.cacheSize),\n parseClassName: createParseClassName(config),\n sortModifiers: createSortModifiers(config),\n ...createClassGroupUtils(config),\n})\n","import { ConfigUtils } from './config-utils'\nimport { IMPORTANT_MODIFIER } from './parse-class-name'\n\nconst SPLIT_CLASSES_REGEX = /\\s+/\n\nexport const mergeClassList = (classList: string, configUtils: ConfigUtils) => {\n const { parseClassName, getClassGroupId, getConflictingClassGroupIds, sortModifiers } =\n configUtils\n\n /**\n * Set of classGroupIds in following format:\n * `{importantModifier}{variantModifiers}{classGroupId}`\n * @example 'float'\n * @example 'hover:focus:bg-color'\n * @example 'md:!pr'\n */\n const classGroupsInConflict: string[] = []\n const classNames = classList.trim().split(SPLIT_CLASSES_REGEX)\n\n let result = ''\n\n for (let index = classNames.length - 1; index >= 0; index -= 1) {\n const originalClassName = classNames[index]!\n\n const {\n isExternal,\n modifiers,\n hasImportantModifier,\n baseClassName,\n maybePostfixModifierPosition,\n } = parseClassName(originalClassName)\n\n if (isExternal) {\n result = originalClassName + (result.length > 0 ? ' ' + result : result)\n continue\n }\n\n let hasPostfixModifier = !!maybePostfixModifierPosition\n let classGroupId = getClassGroupId(\n hasPostfixModifier\n ? baseClassName.substring(0, maybePostfixModifierPosition)\n : baseClassName,\n )\n\n if (!classGroupId) {\n if (!hasPostfixModifier) {\n // Not a Tailwind class\n result = originalClassName + (result.length > 0 ? ' ' + result : result)\n continue\n }\n\n classGroupId = getClassGroupId(baseClassName)\n\n if (!classGroupId) {\n // Not a Tailwind class\n result = originalClassName + (result.length > 0 ? ' ' + result : result)\n continue\n }\n\n hasPostfixModifier = false\n }\n\n // Fast path: skip sorting for empty or single modifier\n const variantModifier =\n modifiers.length === 0\n ? ''\n : modifiers.length === 1\n ? modifiers[0]!\n : sortModifiers(modifiers).join(':')\n\n const modifierId = hasImportantModifier\n ? variantModifier + IMPORTANT_MODIFIER\n : variantModifier\n\n const classId = modifierId + classGroupId\n\n if (classGroupsInConflict.indexOf(classId) > -1) {\n // Tailwind class omitted due to conflict\n continue\n }\n\n classGroupsInConflict.push(classId)\n\n const conflictGroups = getConflictingClassGroupIds(classGroupId, hasPostfixModifier)\n for (let i = 0; i < conflictGroups.length; ++i) {\n const group = conflictGroups[i]!\n classGroupsInConflict.push(modifierId + group)\n }\n\n // Tailwind class not in conflict\n result = originalClassName + (result.length > 0 ? ' ' + result : result)\n }\n\n return result\n}\n","/**\n * The code in this file is copied from https://github.com/lukeed/clsx and modified to suit the needs of tailwind-merge better.\n *\n * Specifically:\n * - Runtime code from https://github.com/lukeed/clsx/blob/v1.2.1/src/index.js\n * - TypeScript types from https://github.com/lukeed/clsx/blob/v1.2.1/clsx.d.ts\n *\n * Original code has MIT license: Copyright (c) Luke Edwards <luke.edwards05@gmail.com> (lukeed.com)\n */\n\nexport type ClassNameValue = ClassNameArray | string | null | undefined | 0 | 0n | false\ntype ClassNameArray = ClassNameValue[]\n\nexport const twJoin = (...classLists: ClassNameValue[]): string => {\n let index = 0\n let argument: ClassNameValue\n let resolvedValue: string\n let string = ''\n\n while (index < classLists.length) {\n if ((argument = classLists[index++])) {\n if ((resolvedValue = toValue(argument))) {\n string && (string += ' ')\n string += resolvedValue\n }\n }\n }\n return string\n}\n\nconst toValue = (mix: ClassNameArray | string): string => {\n // Fast path for strings\n if (typeof mix === 'string') {\n return mix\n }\n\n let resolvedValue: string\n let string = ''\n\n for (let k = 0; k < mix.length; k++) {\n if (mix[k]) {\n if ((resolvedValue = toValue(mix[k] as ClassNameArray | string))) {\n string && (string += ' ')\n string += resolvedValue\n }\n }\n }\n\n return string\n}\n","import { createConfigUtils } from './config-utils'\nimport { mergeClassList } from './merge-classlist'\nimport { ClassNameValue, twJoin } from './tw-join'\nimport { AnyConfig } from './types'\n\ntype CreateConfigFirst = () => AnyConfig\ntype CreateConfigSubsequent = (config: AnyConfig) => AnyConfig\ntype TailwindMerge = (...classLists: ClassNameValue[]) => string\ntype ConfigUtils = ReturnType<typeof createConfigUtils>\n\nexport const createTailwindMerge = (\n createConfigFirst: CreateConfigFirst,\n ...createConfigRest: CreateConfigSubsequent[]\n): TailwindMerge => {\n let configUtils: ConfigUtils\n let cacheGet: ConfigUtils['cache']['get']\n let cacheSet: ConfigUtils['cache']['set']\n let functionToCall: (classList: string) => string\n\n const initTailwindMerge = (classList: string) => {\n const config = createConfigRest.reduce(\n (previousConfig, createConfigCurrent) => createConfigCurrent(previousConfig),\n createConfigFirst() as AnyConfig,\n )\n\n configUtils = createConfigUtils(config)\n cacheGet = configUtils.cache.get\n cacheSet = configUtils.cache.set\n functionToCall = tailwindMerge\n\n return tailwindMerge(classList)\n }\n\n const tailwindMerge = (classList: string) => {\n const cachedResult = cacheGet(classList)\n\n if (cachedResult) {\n return cachedResult\n }\n\n const result = mergeClassList(classList, configUtils)\n cacheSet(classList, result)\n\n return result\n }\n\n functionToCall = initTailwindMerge\n\n return (...args: ClassNameValue[]) => functionToCall(twJoin(...args))\n}\n","import { DefaultThemeGroupIds, NoInfer, ThemeGetter, ThemeObject } from './types'\n\nconst fallbackThemeArr: ThemeObject<DefaultThemeGroupIds>[DefaultThemeGroupIds] = []\n\nexport const fromTheme = <\n AdditionalThemeGroupIds extends string = never,\n DefaultThemeGroupIdsInner extends string = DefaultThemeGroupIds,\n>(\n key: NoInfer<DefaultThemeGroupIdsInner | AdditionalThemeGroupIds>,\n): ThemeGetter => {\n const themeGetter = (theme: ThemeObject<DefaultThemeGroupIdsInner | AdditionalThemeGroupIds>) =>\n theme[key] || fallbackThemeArr\n\n themeGetter.isThemeGetter = true as const\n\n return themeGetter\n}\n","const arbitraryValueRegex = /^\\[(?:(\\w[\\w-]*):)?(.+)\\]$/i\nconst arbitraryVariableRegex = /^\\((?:(\\w[\\w-]*):)?(.+)\\)$/i\nconst fractionRegex = /^\\d+\\/\\d+$/\nconst tshirtUnitRegex = /^(\\d+(\\.\\d+)?)?(xs|sm|md|lg|xl)$/\nconst lengthUnitRegex =\n /\\d+(%|px|r?em|[sdl]?v([hwib]|min|max)|pt|pc|in|cm|mm|cap|ch|ex|r?lh|cq(w|h|i|b|min|max))|\\b(calc|min|max|clamp)\\(.+\\)|^0$/\nconst colorFunctionRegex = /^(rgba?|hsla?|hwb|(ok)?(lab|lch)|color-mix)\\(.+\\)$/\n// Shadow always begins with x and y offset separated by underscore optionally prepended by inset\nconst shadowRegex = /^(inset_)?-?((\\d+)?\\.?(\\d+)[a-z]+|0)_-?((\\d+)?\\.?(\\d+)[a-z]+|0)/\nconst imageRegex =\n /^(url|image|image-set|cross-fade|element|(repeating-)?(linear|radial|conic)-gradient)\\(.+\\)$/\n\nexport const isFraction = (value: string) => fractionRegex.test(value)\n\nexport const isNumber = (value: string) => !!value && !Number.isNaN(Number(value))\n\nexport const isInteger = (value: string) => !!value && Number.isInteger(Number(value))\n\nexport const isPercent = (value: string) => value.endsWith('%') && isNumber(value.slice(0, -1))\n\nexport const isTshirtSize = (value: string) => tshirtUnitRegex.test(value)\n\nexport const isAny = () => true\n\nconst isLengthOnly = (value: string) =>\n // `colorFunctionRegex` check is necessary because color functions can have percentages in them which which would be incorrectly classified as lengths.\n // For example, `hsl(0 0% 0%)` would be classified as a length without this check.\n // I could also use lookbehind assertion in `lengthUnitRegex` but that isn't supported widely enough.\n lengthUnitRegex.test(value) && !colorFunctionRegex.test(value)\n\nconst isNever = () => false\n\nconst isShadow = (value: string) => shadowRegex.test(value)\n\nconst isImage = (value: string) => imageRegex.test(value)\n\nexport const isAnyNonArbitrary = (value: string) =>\n !isArbitraryValue(value) && !isArbitraryVariable(value)\n\nexport const isArbitrarySize = (value: string) => getIsArbitraryValue(value, isLabelSize, isNever)\n\nexport const isArbitraryValue = (value: string) => arbitraryValueRegex.test(value)\n\nexport const isArbitraryLength = (value: string) =>\n getIsArbitraryValue(value, isLabelLength, isLengthOnly)\n\nexport const isArbitraryNumber = (value: string) =>\n getIsArbitraryValue(value, isLabelNumber, isNumber)\n\nexport const isArbitraryPosition = (value: string) =>\n getIsArbitraryValue(value, isLabelPosition, isNever)\n\nexport const isArbitraryImage = (value: string) => getIsArbitraryValue(value, isLabelImage, isImage)\n\nexport const isArbitraryShadow = (value: string) =>\n getIsArbitraryValue(value, isLabelShadow, isShadow)\n\nexport const isArbitraryVariable = (value: string) => arbitraryVariableRegex.test(value)\n\nexport const isArbitraryVariableLength = (value: string) =>\n getIsArbitraryVariable(value, isLabelLength)\n\nexport const isArbitraryVariableFamilyName = (value: string) =>\n getIsArbitraryVariable(value, isLabelFamilyName)\n\nexport const isArbitraryVariablePosition = (value: string) =>\n getIsArbitraryVariable(value, isLabelPosition)\n\nexport const isArbitraryVariableSize = (value: string) => getIsArbitraryVariable(value, isLabelSize)\n\nexport const isArbitraryVariableImage = (value: string) =>\n getIsArbitraryVariable(value, isLabelImage)\n\nexport const isArbitraryVariableShadow = (value: string) =>\n getIsArbitraryVariable(value, isLabelShadow, true)\n\n// Helpers\n\nconst getIsArbitraryValue = (\n value: string,\n testLabel: (label: string) => boolean,\n testValue: (value: string) => boolean,\n) => {\n const result = arbitraryValueRegex.exec(value)\n\n if (result) {\n if (result[1]) {\n return testLabel(result[1])\n }\n\n return testValue(result[2]!)\n }\n\n return false\n}\n\nconst getIsArbitraryVariable = (\n value: string,\n testLabel: (label: string) => boolean,\n shouldMatchNoLabel = false,\n) => {\n const result = arbitraryVariableRegex.exec(value)\n\n if (result) {\n if (result[1]) {\n return testLabel(result[1])\n }\n return shouldMatchNoLabel\n }\n\n return false\n}\n\n// Labels\n\nconst isLabelPosition = (label: string) => label === 'position' || label === 'percentage'\n\nconst isLabelImage = (label: string) => label === 'image' || label === 'url'\n\nconst isLabelSize = (label: string) => label === 'length' || label === 'size' || label === 'bg-size'\n\nconst isLabelLength = (label: string) => label === 'length'\n\nconst isLabelNumber = (label: string) => label === 'number'\n\nconst isLabelFamilyName = (label: string) => label === 'family-name'\n\nconst isLabelShadow = (label: string) => label === 'shadow'\n","import { fromTheme } from './from-theme'\nimport { Config, DefaultClassGroupIds, DefaultThemeGroupIds } from './types'\nimport {\n isAny,\n isAnyNonArbitrary,\n isArbitraryImage,\n isArbitraryLength,\n isArbitraryNumber,\n isArbitraryPosition,\n isArbitraryShadow,\n isArbitrarySize,\n isArbitraryValue,\n isArbitraryVariable,\n isArbitraryVariableFamilyName,\n isArbitraryVariableImage,\n isArbitraryVariableLength,\n isArbitraryVariablePosition,\n isArbitraryVariableShadow,\n isArbitraryVariableSize,\n isFraction,\n isInteger,\n isNumber,\n isPercent,\n isTshirtSize,\n} from './validators'\n\nexport const getDefaultConfig = () => {\n /**\n * Theme getters for theme variable namespaces\n * @see https://tailwindcss.com/docs/theme#theme-variable-namespaces\n */\n /***/\n\n const themeColor = fromTheme('color')\n const themeFont = fromTheme('font')\n const themeText = fromTheme('text')\n const themeFontWeight = fromTheme('font-weight')\n const themeTracking = fromTheme('tracking')\n const themeLeading = fromTheme('leading')\n const themeBreakpoint = fromTheme('breakpoint')\n const themeContainer = fromTheme('container')\n const themeSpacing = fromTheme('spacing')\n const themeRadius = fromTheme('radius')\n const themeShadow = fromTheme('shadow')\n const themeInsetShadow = fromTheme('inset-shadow')\n const themeTextShadow = fromTheme('text-shadow')\n const themeDropShadow = fromTheme('drop-shadow')\n const themeBlur = fromTheme('blur')\n const themePerspective = fromTheme('perspective')\n const themeAspect = fromTheme('aspect')\n const themeEase = fromTheme('ease')\n const themeAnimate = fromTheme('animate')\n\n /**\n * Helpers to avoid repeating the same scales\n *\n * We use functions that create a new array every time they're called instead of static arrays.\n * This ensures that users who modify any scale by mutating the array (e.g. with `array.push(element)`) don't accidentally mutate arrays in other parts of the config.\n */\n /***/\n\n const scaleBreak = () =>\n ['auto', 'avoid', 'all', 'avoid-page', 'page', 'left', 'right', 'column'] as const\n const scalePosition = () =>\n [\n 'center',\n 'top',\n 'bottom',\n 'left',\n 'right',\n 'top-left',\n // Deprecated since Tailwind CSS v4.1.0, see https://github.com/tailwindlabs/tailwindcss/pull/17378\n 'left-top',\n 'top-right',\n // Deprecated since Tailwind CSS v4.1.0, see https://github.com/tailwindlabs/tailwindcss/pull/17378\n 'right-top',\n 'bottom-right',\n // Deprecated since Tailwind CSS v4.1.0, see https://github.com/tailwindlabs/tailwindcss/pull/17378\n 'right-bottom',\n 'bottom-left',\n // Deprecated since Tailwind CSS v4.1.0, see https://github.com/tailwindlabs/tailwindcss/pull/17378\n 'left-bottom',\n ] as const\n const scalePositionWithArbitrary = () =>\n [...scalePosition(), isArbitraryVariable, isArbitraryValue] as const\n const scaleOverflow = () => ['auto', 'hidden', 'clip', 'visible', 'scroll'] as const\n const scaleOverscroll = () => ['auto', 'contain', 'none'] as const\n const scaleUnambiguousSpacing = () =>\n [isArbitraryVariable, isArbitraryValue, themeSpacing] as const\n const scaleInset = () => [isFraction, 'full', 'auto', ...scaleUnambiguousSpacing()] as const\n const scaleGridTemplateColsRows = () =>\n [isInteger, 'none', 'subgrid', isArbitraryVariable, isArbitraryValue] as const\n const scaleGridColRowStartAndEnd = () =>\n [\n 'auto',\n { span: ['full', isInteger, isArbitraryVariable, isArbitraryValue] },\n isInteger,\n isArbitraryVariable,\n isArbitraryValue,\n ] as const\n const scaleGridColRowStartOrEnd = () =>\n [isInteger, 'auto', isArbitraryVariable, isArbitraryValue] as const\n const scaleGridAutoColsRows = () =>\n ['auto', 'min', 'max', 'fr', isArbitraryVariable, isArbitraryValue] as const\n const scaleAlignPrimaryAxis = () =>\n [\n 'start',\n 'end',\n 'center',\n 'between',\n 'around',\n 'evenly',\n 'stretch',\n 'baseline',\n 'center-safe',\n 'end-safe',\n ] as const\n const scaleAlignSecondaryAxis = () =>\n ['start', 'end', 'center', 'stretch', 'center-safe', 'end-safe'] as const\n const scaleMargin = () => ['auto', ...scaleUnambiguousSpacing()] as const\n const scaleSizing = () =>\n [\n isFraction,\n 'auto',\n 'full',\n 'dvw',\n 'dvh',\n 'lvw',\n 'lvh',\n 'svw',\n 'svh',\n 'min',\n 'max',\n 'fit',\n ...scaleUnambiguousSpacing(),\n ] as const\n const scaleColor = () => [themeColor, isArbitraryVariable, isArbitraryValue] as const\n const scaleBgPosition = () =>\n [\n ...scalePosition(),\n isArbitraryVariablePosition,\n isArbitraryPosition,\n { position: [isArbitraryVariable, isArbitraryValue] },\n ] as const\n const scaleBgRepeat = () => ['no-repeat', { repeat: ['', 'x', 'y', 'space', 'round'] }] as const\n const scaleBgSize = () =>\n [\n 'auto',\n 'cover',\n 'contain',\n isArbitraryVariableSize,\n isArbitrarySize,\n { size: [isArbitraryVariable, isArbitraryValue] },\n ] as const\n const scaleGradientStopPosition = () =>\n [isPercent, isArbitraryVariableLength, isArbitraryLength] as const\n const scaleRadius = () =>\n [\n // Deprecated since Tailwind CSS v4.0.0\n '',\n 'none',\n 'full',\n themeRadius,\n isArbitraryVariable,\n isArbitraryValue,\n ] as const\n const scaleBorderWidth = () =>\n ['', isNumber, isArbitraryVariableLength, isArbitraryLength] as const\n const scaleLineStyle = () => ['solid', 'dashed', 'dotted', 'double'] as const\n const scaleBlendMode = () =>\n [\n 'normal',\n 'multiply',\n 'screen',\n 'overlay',\n 'darken',\n 'lighten',\n 'color-dodge',\n 'color-burn',\n 'hard-light',\n 'soft-light',\n 'difference',\n 'exclusion',\n 'hue',\n 'saturation',\n 'color',\n 'luminosity',\n ] as const\n const scaleMaskImagePosition = () =>\n [isNumber, isPercent, isArbitraryVariablePosition, isArbitraryPosition] as const\n const scaleBlur = () =>\n [\n // Deprecated since Tailwind CSS v4.0.0\n '',\n 'none',\n themeBlur,\n isArbitraryVariable,\n isArbitraryValue,\n ] as const\n const scaleRotate = () => ['none', isNumber, isArbitraryVariable, isArbitraryValue] as const\n const scaleScale = () => ['none', isNumber, isArbitraryVariable, isArbitraryValue] as const\n const scaleSkew = () => [isNumber, isArbitraryVariable, isArbitraryValue] as const\n const scaleTranslate = () => [isFraction, 'full', ...scaleUnambiguousSpacing()] as const\n\n return {\n cacheSize: 500,\n theme: {\n animate: ['spin', 'ping', 'pulse', 'bounce'],\n aspect: ['video'],\n blur: [isTshirtSize],\n breakpoint: [isTshirtSize],\n color: [isAny],\n container: [isTshirtSize],\n 'drop-shadow': [isTshirtSize],\n ease: ['in', 'out', 'in-out'],\n font: [isAnyNonArbitrary],\n 'font-weight': [\n 'thin',\n 'extralight',\n 'light',\n 'normal',\n 'medium',\n 'semibold',\n 'bold',\n 'extrabold',\n 'black',\n ],\n 'inset-shadow': [isTshirtSize],\n leading: ['none', 'tight', 'snug', 'normal', 'relaxed', 'loose'],\n perspective: ['dramatic', 'near', 'normal', 'midrange', 'distant', 'none'],\n radius: [isTshirtSize],\n shadow: [isTshirtSize],\n spacing: ['px', isNumber],\n text: [isTshirtSize],\n 'text-shadow': [isTshirtSize],\n tracking: ['tighter', 'tight', 'normal', 'wide', 'wider', 'widest'],\n },\n classGroups: {\n // --------------\n // --- Layout ---\n // --------------\n\n /**\n * Aspect Ratio\n * @see https://tailwindcss.com/docs/aspect-ratio\n */\n aspect: [\n {\n aspect: [\n 'auto',\n 'square',\n isFraction,\n isArbitraryValue,\n isArbitraryVariable,\n themeAspect,\n ],\n },\n ],\n /**\n * Container\n * @see https://tailwindcss.com/docs/container\n * @deprecated since Tailwind CSS v4.0.0\n */\n container: ['container'],\n /**\n * Columns\n * @see https://tailwindcss.com/docs/columns\n */\n columns: [\n { columns: [isNumber, isArbitraryValue, isArbitraryVariable, themeContainer] },\n ],\n /**\n * Break After\n * @see https://tailwindcss.com/docs/break-after\n */\n 'break-after': [{ 'break-after': scaleBreak() }],\n /**\n * Break Before\n * @see https://tailwindcss.com/docs/break-before\n */\n 'break-before': [{ 'break-before': scaleBreak() }],\n /**\n * Break Inside\n * @see https://tailwindcss.com/docs/break-inside\n */\n 'break-inside': [{ 'break-inside': ['auto', 'avoid', 'avoid-page', 'avoid-column'] }],\n /**\n * Box Decoration Break\n * @see https://tailwindcss.com/docs/box-decoration-break\n */\n 'box-decoration': [{ 'box-decoration': ['slice', 'clone'] }],\n /**\n * Box Sizing\n * @see https://tailwindcss.com/docs/box-sizing\n */\n box: [{ box: ['border', 'content'] }],\n /**\n * Display\n * @see https://tailwindcss.com/docs/display\n */\n display: [\n 'block',\n 'inline-block',\n 'inline',\n 'flex',\n 'inline-flex',\n 'table',\n 'inline-table',\n 'table-caption',\n 'table-cell',\n 'table-column',\n 'table-column-group',\n 'table-footer-group',\n 'table-header-group',\n 'table-row-group',\n 'table-row',\n 'flow-root',\n 'grid',\n 'inline-grid',\n 'contents',\n 'list-item',\n 'hidden',\n ],\n /**\n * Screen Reader Only\n * @see https://tailwindcss.com/docs/display#screen-reader-only\n */\n sr: ['sr-only', 'not-sr-only'],\n /**\n * Floats\n * @see https://tailwindcss.com/docs/float\n */\n float: [{ float: ['right', 'left', 'none', 'start', 'end'] }],\n /**\n * Clear\n * @see https://tailwindcss.com/docs/clear\n */\n clear: [{ clear: ['left', 'right', 'both', 'none', 'start', 'end'] }],\n /**\n * Isolation\n * @see https://tailwindcss.com/docs/isolation\n */\n isolation: ['isolate', 'isolation-auto'],\n /**\n * Object Fit\n * @see https://tailwindcss.com/docs/object-fit\n */\n 'object-fit': [{ object: ['contain', 'cover', 'fill', 'none', 'scale-down'] }],\n /**\n * Object Position\n * @see https://tailwindcss.com/docs/object-position\n */\n 'object-position': [{ object: scalePositionWithArbitrary() }],\n /**\n * Overflow\n * @see https://tailwindcss.com/docs/overflow\n */\n overflow: [{ overflow: scaleOverflow() }],\n /**\n * Overflow X\n * @see https://tailwindcss.com/docs/overflow\n */\n 'overflow-x': [{ 'overflow-x': scaleOverflow() }],\n /**\n * Overflow Y\n * @see https://tailwindcss.com/docs/overflow\n */\n 'overflow-y': [{ 'overflow-y': scaleOverflow() }],\n /**\n * Overscroll Behavior\n * @see https://tailwindcss.com/docs/overscroll-behavior\n */\n overscroll: [{ overscroll: scaleOverscroll() }],\n /**\n * Overscroll Behavior X\n * @see https://tailwindcss.com/docs/overscroll-behavior\n */\n 'overscroll-x': [{ 'overscroll-x': scaleOverscroll() }],\n /**\n * Overscroll Behavior Y\n * @see https://tailwindcss.com/docs/overscroll-behavior\n */\n 'overscroll-y': [{ 'overscroll-y': scaleOverscroll() }],\n /**\n * Position\n * @see https://tailwindcss.com/docs/position\n */\n position: ['static', 'fixed', 'absolute', 'relative', 'sticky'],\n /**\n * Top / Right / Bottom / Left\n * @see https://tailwindcss.com/docs/top-right-bottom-left\n */\n inset: [{ inset: scaleInset() }],\n /**\n * Right / Left\n * @see https://tailwindcss.com/docs/top-right-bottom-left\n */\n 'inset-x': [{ 'inset-x': scaleInset() }],\n /**\n * Top / Bottom\n * @see https://tailwindcss.com/docs/top-right-bottom-left\n */\n 'inset-y': [{ 'inset-y': scaleInset() }],\n /**\n * Start\n * @see https://tailwindcss.com/docs/top-right-bottom-left\n */\n start: [{ start: scaleInset() }],\n /**\n * End\n * @see https://tailwindcss.com/docs/top-right-bottom-left\n */\n end: [{ end: scaleInset() }],\n /**\n * Top\n * @see https://tailwindcss.com/docs/top-right-bottom-left\n */\n top: [{ top: scaleInset() }],\n /**\n * Right\n * @see https://tailwindcss.com/docs/top-right-bottom-left\n */\n right: [{ right: scaleInset() }],\n /**\n * Bottom\n * @see https://tailwindcss.com/docs/top-right-bottom-left\n */\n bottom: [{ bottom: scaleInset() }],\n /**\n * Left\n * @see https://tailwindcss.com/docs/top-right-bottom-left\n */\n left: [{ left: scaleInset() }],\n /**\n * Visibility\n * @see https://tailwindcss.com/docs/visibility\n */\n visibility: ['visible', 'invisible', 'collapse'],\n /**\n * Z-Index\n * @see https://tailwindcss.com/docs/z-index\n */\n z: [{ z: [isInteger, 'auto', isArbitraryVariable, isArbitraryValue] }],\n\n // ------------------------\n // --- Flexbox and Grid ---\n // ------------------------\n\n /**\n * Flex Basis\n * @see https://tailwindcss.com/docs/flex-basis\n */\n basis: [\n {\n basis: [\n isFraction,\n 'full',\n 'auto',\n themeContainer,\n ...scaleUnambiguousSpacing(),\n ],\n },\n ],\n /**\n * Flex Direction\n * @see https://tailwindcss.com/docs/flex-direction\n */\n 'flex-direction': [{ flex: ['row', 'row-reverse', 'col', 'col-reverse'] }],\n /**\n * Flex Wrap\n * @see https://tailwindcss.com/docs/flex-wrap\n */\n 'flex-wrap': [{ flex: ['nowrap', 'wrap', 'wrap-reverse'] }],\n /**\n * Flex\n * @see https://tailwindcss.com/docs/flex\n */\n flex: [{ flex: [isNumber, isFraction, 'auto', 'initial', 'none', isArbitraryValue] }],\n /**\n * Flex Grow\n * @see https://tailwindcss.com/docs/flex-grow\n */\n grow: [{ grow: ['', isNumber, isArbitraryVariable, isArbitraryValue] }],\n /**\n * Flex Shrink\n * @see https://tailwindcss.com/docs/flex-shrink\n */\n shrink: [{ shrink: ['', isNumber, isArbitraryVariable, isArbitraryValue] }],\n /**\n * Order\n * @see https://tailwindcss.com/docs/order\n */\n order: [\n {\n order: [\n isInteger,\n 'first',\n 'last',\n 'none',\n isArbitraryVariable,\n isArbitraryValue,\n ],\n },\n ],\n /**\n * Grid Template Columns\n * @see https://tailwindcss.com/docs/grid-template-columns\n */\n 'grid-cols': [{ 'grid-cols': scaleGridTemplateColsRows() }],\n /**\n * Grid Column Start / End\n * @see https://tailwindcss.com/docs/grid-column\n */\n 'col-start-end': [{ col: scaleGridColRowStartAndEnd() }],\n /**\n * Grid Column Start\n * @see https://tailwindcss.com/docs/grid-column\n */\n 'col-start': [{ 'col-start': scaleGridColRowStartOrEnd() }],\n /**\n * Grid Column End\n * @see https://tailwindcss.com/docs/grid-column\n */\n 'col-end': [{ 'col-end': scaleGridColRowStartOrEnd() }],\n /**\n * Grid Template Rows\n * @see https://tailwindcss.com/docs/grid-template-rows\n */\n 'grid-rows': [{ 'grid-rows': scaleGridTemplateColsRows() }],\n /**\n * Grid Row Start / End\n * @see https://tailwindcss.com/docs/grid-row\n */\n 'row-start-end': [{ row: scaleGridColRowStartAndEnd() }],\n /**\n * Grid Row Start\n * @see https://tailwindcss.com/docs/grid-row\n */\n 'row-start': [{ 'row-start': scaleGridColRowStartOrEnd() }],\n /**\n * Grid Row End\n * @see https://tailwindcss.com/docs/grid-row\n */\n 'row-end': [{ 'row-end': scaleGridColRowStartOrEnd() }],\n /**\n * Grid Auto Flow\n * @see https://tailwindcss.com/docs/grid-auto-flow\n */\n 'grid-flow': [{ 'grid-flow': ['row', 'col', 'dense', 'row-dense', 'col-dense'] }],\n /**\n * Grid Auto Columns\n * @see https://tailwindcss.com/docs/grid-auto-columns\n */\n 'auto-cols': [{ 'auto-cols': scaleGridAutoColsRows() }],\n /**\n * Grid Auto Rows\n * @see https://tailwindcss.com/docs/grid-auto-rows\n */\n 'auto-rows': [{ 'auto-rows': scaleGridAutoColsRows() }],\n /**\n * Gap\n * @see https://tailwindcss.com/docs/gap\n */\n gap: [{ gap: scaleUnambiguousSpacing() }],\n /**\n * Gap X\n * @see https://tailwindcss.com/docs/gap\n */\n 'gap-x': [{ 'gap-x': scaleUnambiguousSpacing() }],\n /**\n * Gap Y\n * @see https://tailwindcss.com/docs/gap\n */\n 'gap-y': [{ 'gap-y': scaleUnambiguousSpacing() }],\n /**\n * Justify Content\n * @see https://tailwindcss.com/docs/justify-content\n */\n 'justify-content': [{ justify: [...scaleAlignPrimaryAxis(), 'normal'] }],\n /**\n * Justify Items\n * @see https://tailwindcss.com/docs/justify-items\n */\n 'justify-items': [{ 'justify-items': [...scaleAlignSecondaryAxis(), 'normal'] }],\n /**\n * Justify Self\n * @see https://tailwindcss.com/docs/justify-self\n */\n 'justify-self': [{ 'justify-self': ['auto', ...scaleAlignSecondaryAxis()] }],\n /**\n * Align Content\n * @see https://tailwindcss.com/docs/align-content\n */\n 'align-content': [{ content: ['normal', ...scaleAlignPrimaryAxis()] }],\n /**\n * Align Items\n * @see https://tailwindcss.com/docs/align-items\n */\n 'align-items': [{ items: [...scaleAlignSecondaryAxis(), { baseline: ['', 'last'] }] }],\n /**\n * Align Self\n * @see https://tailwindcss.com/docs/align-self\n */\n 'align-self': [\n { self: ['auto', ...scaleAlignSecondaryAxis(), { baseline: ['', 'last'] }] },\n ],\n /**\n * Place Content\n * @see https://tailwindcss.com/docs/place-content\n */\n 'place-content': [{ 'place-content': scaleAlignPrimaryAxis() }],\n /**\n * Place Items\n * @see https://tailwindcss.com/docs/place-items\n */\n 'place-items': [{ 'place-items': [...scaleAlignSecondaryAxis(), 'baseline'] }],\n /**\n * Place Self\n * @see https://tailwindcss.com/docs/place-self\n */\n 'place-self': [{ 'place-self': ['auto', ...scaleAlignSecondaryAxis()] }],\n // Spacing\n /**\n * Padding\n * @see https://tailwindcss.com/docs/padding\n */\n p: [{ p: scaleUnambiguousSpacing() }],\n /**\n * Padding X\n * @see https://tailwindcss.com/docs/padding\n */\n px: [{ px: scaleUnambiguousSpacing() }],\n /**\n * Padding Y\n * @see https://tailwindcss.com/docs/padding\n */\n py: [{ py: scaleUnambiguousSpacing() }],\n /**\n * Padding Start\n * @see https://tailwindcss.com/docs/padding\n */\n ps: [{ ps: scaleUnambiguousSpacing() }],\n /**\n * Padding End\n * @see https://tailwindcss.com/docs/padding\n */\n pe: [{ pe: scaleUnambiguousSpacing() }],\n /**\n * Padding Top\n * @see https://tailwindcss.com/docs/padding\n */\n pt: [{ pt: scaleUnambiguousSpacing() }],\n /**\n * Padding Right\n * @see https://tailwindcss.com/docs/padding\n */\n pr: [{ pr: scaleUnambiguousSpacing() }],\n /**\n * Padding Bottom\n * @see https://tailwindcss.com/docs/padding\n */\n pb: [{ pb: scaleUnambiguousSpacing() }],\n /**\n * Padding Left\n * @see https://tailwindcss.com/docs/padding\n */\n pl: [{ pl: scaleUnambiguousSpacing() }],\n /**\n * Margin\n * @see https://tailwindcss.com/docs/margin\n */\n m: [{ m: scaleMargin() }],\n /**\n * Margin X\n * @see https://tailwindcss.com/docs/margin\n */\n mx: [{ mx: scaleMargin() }],\n /**\n * Margin Y\n * @see https://tailwindcss.com/docs/margin\n */\n my: [{ my: scaleMargin() }],\n /**\n * Margin Start\n * @see https://tailwindcss.com/docs/margin\n */\n ms: [{ ms: scaleMargin() }],\n /**\n * Margin End\n * @see https://tailwindcss.com/docs/margin\n */\n me: [{ me: scaleMargin() }],\n /**\n * Margin Top\n * @see https://tailwindcss.com/docs/margin\n */\n mt: [{ mt: scaleMargin() }],\n /**\n * Margin Right\n * @see https://tailwindcss.com/docs/margin\n */\n mr: [{ mr: scaleMargin() }],\n /**\n * Margin Bottom\n * @see https://tailwindcss.com/docs/margin\n */\n mb: [{ mb: scaleMargin() }],\n /**\n * Margin Left\n * @see https://tailwindcss.com/docs/margin\n */\n ml: [{ ml: scaleMargin() }],\n /**\n * Space Between X\n * @see https://tailwindcss.com/docs/margin#adding-space-between-children\n */\n 'space-x': [{ 'space-x': scaleUnambiguousSpacing() }],\n /**\n * Space Between X Reverse\n * @see https://tailwindcss.com/docs/margin#adding-space-between-children\n */\n 'space-x-reverse': ['space-x-reverse'],\n /**\n * Space Between Y\n * @see https://tailwindcss.com/docs/margin#adding-space-between-children\n */\n 'space-y': [{ 'space-y': scaleUnambiguousSpacing() }],\n /**\n * Space Between Y Reverse\n * @see https://tailwindcss.com/docs/margin#adding-space-between-children\n */\n 'space-y-reverse': ['space-y-reverse'],\n\n // --------------\n // --- Sizing ---\n // --------------\n\n /**\n * Size\n * @see https://tailwindcss.com/docs/width#setting-both-width-and-height\n */\n size: [{ size: scaleSizing() }],\n /**\n * Width\n * @see https://tailwindcss.com/docs/width\n */\n w: [{ w: [themeContainer, 'screen', ...scaleSizing()] }],\n /**\n * Min-Width\n * @see https://tailwindcss.com/docs/min-width\n */\n 'min-w': [\n {\n 'min-w': [\n themeContainer,\n 'screen',\n /** Deprecated. @see https://github.com/tailwindlabs/tailwindcss.com/issues/2027#issuecomment-2620152757 */\n 'none',\n ...scaleSizing(),\n ],\n },\n ],\n /**\n * Max-Width\n * @see https://tailwindcss.com/docs/max-width\n */\n 'max-w': [\n {\n 'max-w': [\n themeContainer,\n 'screen',\n 'none',\n /** Deprecated since Tailwind CSS v4.0.0. @see https://github.com/tailwindlabs/tailwindcss.com/issues/2027#issuecomment-2620152757 */\n 'prose',\n /** Deprecated since Tailwind CSS v4.0.0. @see https://github.com/tailwindlabs/tailwindcss.com/issues/2027#issuecomment-2620152757 */\n { screen: [themeBreakpoint] },\n ...scaleSizing(),\n ],\n },\n ],\n /**\n * Height\n * @see https://tailwindcss.com/docs/height\n */\n h: [{ h: ['screen', 'lh', ...scaleSizing()] }],\n /**\n * Min-Height\n * @see https://tailwindcss.com/docs/min-height\n */\n 'min-h': [{ 'min-h': ['screen', 'lh', 'none', ...scaleSizing()] }],\n /**\n * Max-Height\n * @see https://tailwindcss.com/docs/max-height\n */\n 'max-h': [{ 'max-h': ['screen', 'lh', ...scaleSizing()] }],\n\n // ------------------\n // --- Typography ---\n // ------------------\n\n /**\n * Font Size\n * @see https://tailwindcss.com/docs/font-size\n */\n 'font-size': [\n { text: ['base', themeText, isArbitraryVariableLength, isArbitraryLength] },\n ],\n /**\n * Font Smoothing\n * @see https://tailwindcss.com/docs/font-smoothing\n */\n 'font-smoothing': ['antialiased', 'subpixel-antialiased'],\n /**\n * Font Style\n * @see https://tailwindcss.com/docs/font-style\n */\n 'font-style': ['italic', 'not-italic'],\n /**\n * Font Weight\n * @see https://tailwindcss.com/docs/font-weight\n */\n 'font-weight': [{ font: [themeFontWeight, isArbitraryVariable, isArbitraryNumber] }],\n /**\n * Font Stretch\n * @see https://tailwindcss.com/docs/font-stretch\n */\n 'font-stretch': [\n {\n 'font-stretch': [\n 'ultra-condensed',\n 'extra-condensed',\n 'condensed',\n 'semi-condensed',\n 'normal',\n 'semi-expanded',\n 'expanded',\n 'extra-expanded',\n 'ultra-expanded',\n isPercent,\n isArbitraryValue,\n ],\n },\n ],\n /**\n * Font Family\n * @see https://tailwindcss.com/docs/font-family\n */\n 'font-family': [{ font: [isArbitraryVariableFamilyName, isArbitraryValue, themeFont] }],\n /**\n * Font Variant Numeric\n * @see https://tailwindcss.com/docs/font-variant-numeric\n */\n 'fvn-normal': ['normal-nums'],\n /**\n * Font Variant Numeric\n * @see https://tailwindcss.com/docs/font-variant-numeric\n */\n 'fvn-ordinal': ['ordinal'],\n /**\n * Font Variant Numeric\n * @see https://tailwindcss.com/docs/font-variant-numeric\n */\n 'fvn-slashed-zero': ['slashed-zero'],\n /**\n * Font Variant Numeric\n * @see https://tailwindcss.com/docs/font-variant-numeric\n */\n 'fvn-figure': ['lining-nums', 'oldstyle-nums'],\n /**\n * Font Variant Numeric\n * @see https://tailwindcss.com/docs/font-variant-numeric\n */\n 'fvn-spacing': ['proportional-nums', 'tabular-nums'],\n /**\n * Font Variant Numeric\n * @see https://tailwindcss.com/docs/font-variant-numeric\n */\n 'fvn-fraction': ['diagonal-fractions', 'stacked-fractions'],\n /**\n * Letter Spacing\n * @see https://tailwindcss.com/docs/letter-spacing\n */\n tracking: [{ tracking: [themeTracking, isArbitraryVariable, isArbitraryValue] }],\n /**\n * Line Clamp\n * @see https://tailwindcss.com/docs/line-clamp\n */\n 'line-clamp': [\n { 'line-clamp': [isNumber, 'none', isArbitraryVariable, isArbitraryNumber] },\n ],\n /**\n * Line Height\n * @see https://tailwindcss.com/docs/line-height\n */\n leading: [\n {\n leading: [\n /** Deprecated since Tailwind CSS v4.0.0. @see https://github.com/tailwindlabs/tailwindcss.com/issues/2027#issuecomment-2620152757 */\n themeLeading,\n ...scaleUnambiguousSpacing(),\n ],\n },\n ],\n /**\n * List Style Image\n * @see https://tailwindcss.com/docs/list-style-image\n */\n 'list-image': [{ 'list-image': ['none', isArbitraryVariable, isArbitraryValue] }],\n /**\n * List Style Position\n * @see https://tailwindcss.com/docs/list-style-position\n */\n 'list-style-position': [{ list: ['inside', 'outside'] }],\n /**\n * List Style Type\n * @see https://tailwindcss.com/docs/list-style-type\n */\n 'list-style-type': [\n { list: ['disc', 'decimal', 'none', isArbitraryVariable, isArbitraryValue] },\n ],\n /**\n * Text Alignment\n * @see https://tailwindcss.com/docs/text-align\n */\n 'text-alignment': [{ text: ['left', 'center', 'right', 'justify', 'start', 'end'] }],\n /**\n * Placeholder Color\n * @deprecated since Tailwind CSS v3.0.0\n * @see https://v3.tailwindcss.com/docs/placeholder-color\n */\n 'placeholder-color': [{ placeholder: scaleColor() }],\n /**\n * Text Color\n * @see https://tailwindcss.com/docs/text-color\n */\n 'text-color': [{ text: scaleColor() }],\n /**\n * Text Decoration\n * @see https://tailwindcss.com/docs/text-decoration\n */\n 'text-decoration': ['underline', 'overline', 'line-through', 'no-underline'],\n /**\n * Text Decoration Style\n * @see https://tailwindcss.com/docs/text-decoration-style\n */\n 'text-decoration-style': [{ decoration: [...scaleLineStyle(), 'wavy'] }],\n /**\n * Text Decoration Thickness\n * @see https://tailwindcss.com/docs/text-decoration-thickness\n */\n 'text-decoration-thickness': [\n {\n decoration: [\n isNumber,\n 'from-font',\n 'auto',\n isArbitraryVariable,\n isArbitraryLength,\n ],\n },\n ],\n /**\n * Text Decoration Color\n * @see https://tailwindcss.com/docs/text-decoration-color\n */\n 'text-decoration-color': [{ decoration: scaleColor() }],\n /**\n * Text Underline Offset\n * @see https://tailwindcss.com/docs/text-underline-offset\n */\n 'underline-offset': [\n { 'underline-offset': [isNumber, 'auto', isArbitraryVariable, isArbitraryValue] },\n ],\n /**\n * Text Transform\n * @see https://tailwindcss.com/docs/text-transform\n */\n 'text-transform': ['uppercase', 'lowercase', 'capitalize', 'normal-case'],\n /**\n * Text Overflow\n * @see https://tailwindcss.com/docs/text-overflow\n */\n 'text-overflow': ['truncate', 'text-ellipsis', 'text-clip'],\n /**\n * Text Wrap\n * @see https://tailwindcss.com/docs/text-wrap\n */\n 'text-wrap': [{ text: ['wrap', 'nowrap', 'balance', 'pretty'] }],\n /**\n * Text Indent\n * @see https://tailwindcss.com/docs/text-indent\n */\n indent: [{ indent: scaleUnambiguousSpacing() }],\n /**\n * Vertical Alignment\n * @see https://tailwindcss.com/docs/vertical-align\n */\n 'vertical-align': [\n {\n align: [\n 'baseline',\n 'top',\n 'middle',\n 'bottom',\n 'text-top',\n 'text-bottom',\n 'sub',\n 'super',\n isArbitraryVariable,\n isArbitraryValue,\n ],\n },\n ],\n /**\n * Whitespace\n * @see https://tailwindcss.com/docs/whitespace\n */\n whitespace: [\n { whitespace: ['normal', 'nowrap', 'pre', 'pre-line', 'pre-wrap', 'break-spaces'] },\n ],\n /**\n * Word Break\n * @see https://tailwindcss.com/docs/word-break\n */\n break: [{ break: ['normal', 'words', 'all', 'keep'] }],\n /**\n * Overflow Wrap\n * @see https://tailwindcss.com/docs/overflow-wrap\n */\n wrap: [{ wrap: ['break-word', 'anywhere', 'normal'] }],\n /**\n * Hyphens\n * @see https://tailwindcss.com/docs/hyphens\n */\n hyphens: [{ hyphens: ['none', 'manual', 'auto'] }],\n /**\n * Content\n * @see https://tailwindcss.com/docs/content\n */\n content: [{ content: ['none', isArbitraryVariable, isArbitraryValue] }],\n\n // -------------------\n // --- Backgrounds ---\n // -------------------\n\n /**\n * Background Attachment\n * @see https://tailwindcss.com/docs/background-attachment\n */\n 'bg-attachment': [{ bg: ['fixed', 'local', 'scroll'] }],\n /**\n * Background Clip\n * @see https://tailwindcss.com/docs/background-clip\n */\n 'bg-clip': [{ 'bg-clip': ['border', 'padding', 'content', 'text'] }],\n /**\n * Background Origin\n * @see https://tailwindcss.com/docs/background-origin\n */\n 'bg-origin': [{ 'bg-origin': ['border', 'padding', 'content'] }],\n /**\n * Background Position\n * @see https://tailwindcss.com/docs/background-position\n */\n 'bg-position': [{ bg: scaleBgPosition() }],\n /**\n * Background Repeat\n * @see https://tailwindcss.com/docs/background-repeat\n */\n 'bg-repeat': [{ bg: scaleBgRepeat() }],\n /**\n * Background Size\n * @see https://tailwindcss.com/docs/background-size\n */\n 'bg-size': [{ bg: scaleBgSize() }],\n /**\n * Background Image\n * @see https://tailwindcss.com/docs/background-image\n */\n 'bg-image': [\n {\n bg: [\n 'none',\n {\n linear: [\n { to: ['t', 'tr', 'r', 'br', 'b', 'bl', 'l', 'tl'] },\n isInteger,\n isArbitraryVariable,\n isArbitraryValue,\n ],\n radial: ['', isArbitraryVariable, isArbitraryValue],\n conic: [isInteger, isArbitraryVariable, isArbitraryValue],\n },\n isArbitraryVariableImage,\n isArbitraryImage,\n ],\n },\n ],\n /**\n * Background Color\n * @see https://tailwindcss.com/docs/background-color\n */\n 'bg-color': [{ bg: scaleColor() }],\n /**\n * Gradient Color Stops From Position\n * @see https://tailwindcss.com/docs/gradient-color-stops\n */\n 'gradient-from-pos': [{ from: scaleGradientStopPosition() }],\n /**\n * Gradient Color Stops Via Position\n * @see https://tailwindcss.com/docs/gradient-color-stops\n */\n 'gradient-via-pos': [{ via: scaleGradientStopPosition() }],\n /**\n * Gradient Color Stops To Position\n * @see https://tailwindcss.com/docs/gradient-color-stops\n */\n 'gradient-to-pos': [{ to: scaleGradientStopPosition() }],\n /**\n * Gradient Color Stops From\n * @see https://tailwindcss.com/docs/gradient-color-stops\n */\n 'gradient-from': [{ from: scaleColor() }],\n /**\n * Gradient Color Stops Via\n * @see https://tailwindcss.com/docs/gradient-color-stops\n */\n 'gradient-via': [{ via: scaleColor() }],\n /**\n * Gradient Color Stops To\n * @see https://tailwindcss.com/docs/gradient-color-stops\n */\n 'gradient-to': [{ to: scaleColor() }],\n\n // ---------------\n // --- Borders ---\n // ---------------\n\n /**\n * Border Radius\n * @see https://tailwindcss.com/docs/border-radius\n */\n rounded: [{ rounded: scaleRadius() }],\n /**\n * Border Radius Start\n * @see https://tailwindcss.com/docs/border-radius\n */\n 'rounded-s': [{ 'rounded-s': scaleRadius() }],\n /**\n * Border Radius End\n * @see https://tailwindcss.com/docs/border-radius\n */\n 'rounded-e': [{ 'rounded-e': scaleRadius() }],\n /**\n * Border Radius Top\n * @see https://tailwindcss.com/docs/border-radius\n */\n 'rounded-t': [{ 'rounded-t': scaleRadius() }],\n /**\n * Border Radius Right\n * @see https://tailwindcss.com/docs/border-radius\n */\n 'rounded-r': [{ 'rounded-r': scaleRadius() }],\n /**\n * Border Radius Bottom\n * @see https://tailwindcss.com/docs/border-radius\n */\n 'rounded-b': [{ 'rounded-b': scaleRadius() }],\n /**\n * Border Radius Left\n * @see https://tailwindcss.com/docs/border-radius\n */\n 'rounded-l': [{ 'rounded-l': scaleRadius() }],\n /**\n * Border Radius Start Start\n * @see https://tailwindcss.com/docs/border-radius\n */\n 'rounded-ss': [{ 'rounded-ss': scaleRadius() }],\n /**\n * Border Radius Start End\n * @see https://tailwindcss.com/docs/border-radius\n */\n 'rounded-se': [{ 'rounded-se': scaleRadius() }],\n /**\n * Border Radius End End\n * @see https://tailwindcss.com/docs/border-radius\n */\n 'rounded-ee': [{ 'rounded-ee': scaleRadius() }],\n /**\n * Border Radius End Start\n * @see https://tailwindcss.com/docs/border-radius\n */\n 'rounded-es': [{ 'rounded-es': scaleRadius() }],\n /**\n * Border Radius Top Left\n * @see https://tailwindcss.com/docs/border-radius\n */\n 'rounded-tl': [{ 'rounded-tl': scaleRadius() }],\n /**\n * Border Radius Top Right\n * @see https://tailwindcss.com/docs/border-radius\n */\n 'rounded-tr': [{ 'rounded-tr': scaleRadius() }],\n /**\n * Border Radius Bottom Right\n * @see https://tailwindcss.com/docs/border-radius\n */\n 'rounded-br': [{ 'rounded-br': scaleRadius() }],\n /**\n * Border Radius Bottom Left\n * @see https://tailwindcss.com/docs/border-radius\n */\n 'rounded-bl': [{ 'rounded-bl': scaleRadius() }],\n /**\n * Border Width\n * @see https://tailwindcss.com/docs/border-width\n */\n 'border-w': [{ border: scaleBorderWidth() }],\n /**\n * Border Width X\n * @see https://tailwindcss.com/docs/border-width\n */\n 'border-w-x': [{ 'border-x': scaleBorderWidth() }],\n /**\n * Border Width Y\n * @see https://tailwindcss.com/docs/border-width\n */\n 'border-w-y': [{ 'border-y': scaleBorderWidth() }],\n /**\n * Border Width Start\n * @see https://tailwindcss.com/docs/border-width\n */\n 'border-w-s': [{ 'border-s': scaleBorderWidth() }],\n /**\n * Border Width End\n * @see https://tailwindcss.com/docs/border-width\n */\n 'border-w-e': [{ 'border-e': scaleBorderWidth() }],\n /**\n * Border Width Top\n * @see https://tailwindcss.com/docs/border-width\n */\n 'border-w-t': [{ 'border-t': scaleBorderWidth() }],\n /**\n * Border Width Right\n * @see https://tailwindcss.com/docs/border-width\n */\n 'border-w-r': [{ 'border-r': scaleBorderWidth() }],\n /**\n * Border Width Bottom\n * @see https://tailwindcss.com/docs/border-width\n */\n 'border-w-b': [{ 'border-b': scaleBorderWidth() }],\n /**\n * Border Width Left\n * @see https://tailwindcss.com/docs/border-width\n */\n 'border-w-l': [{ 'border-l': scaleBorderWidth() }],\n /**\n * Divide Width X\n * @see https://tailwindcss.com/docs/border-width#between-children\n */\n 'divide-x': [{ 'divide-x': scaleBorderWidth() }],\n /**\n * Divide Width X Reverse\n * @see https://tailwindcss.com/docs/border-width#between-children\n */\n 'divide-x-reverse': ['divide-x-reverse'],\n /**\n * Divide Width Y\n * @see https://tailwindcss.com/docs/border-width#between-children\n */\n 'divide-y': [{ 'divide-y': scaleBorderWidth() }],\n /**\n * Divide Width Y Reverse\n * @see https://tailwindcss.com/docs/border-width#between-children\n */\n 'divide-y-reverse': ['divide-y-reverse'],\n /**\n * Border Style\n * @see https://tailwindcss.com/docs/border-style\n */\n 'border-style': [{ border: [...scaleLineStyle(), 'hidden', 'none'] }],\n /**\n * Divide Style\n * @see https://tailwindcss.com/docs/border-style#setting-the-divider-style\n */\n 'divide-style': [{ divide: [...scaleLineStyle(), 'hidden', 'none'] }],\n /**\n * Border Color\n * @see https://tailwindcss.com/docs/border-color\n */\n 'border-color': [{ border: scaleColor() }],\n /**\n * Border Color X\n * @see https://tailwindcss.com/docs/border-color\n */\n 'border-color-x': [{ 'border-x': scaleColor() }],\n /**\n * Border Color Y\n * @see https://tailwindcss.com/docs/border-color\n */\n 'border-color-y': [{ 'border-y': scaleColor() }],\n /**\n * Border Color S\n * @see https://tailwindcss.com/docs/border-color\n */\n 'border-color-s': [{ 'border-s': scaleColor() }],\n /**\n * Border Color E\n * @see https://tailwindcss.com/docs/border-color\n */\n 'border-color-e': [{ 'border-e': scaleColor() }],\n /**\n * Border Color Top\n * @see https://tailwindcss.com/docs/border-color\n */\n 'border-color-t': [{ 'border-t': scaleColor() }],\n /**\n * Border Color Right\n * @see https://tailwindcss.com/docs/border-color\n */\n 'border-color-r': [{ 'border-r': scaleColor() }],\n /**\n * Border Color Bottom\n * @see https://tailwindcss.com/docs/border-color\n */\n 'border-color-b': [{ 'border-b': scaleColor() }],\n /**\n * Border Color Left\n * @see https://tailwindcss.com/docs/border-color\n */\n 'border-color-l': [{ 'border-l': scaleColor() }],\n /**\n * Divide Color\n * @see https://tailwindcss.com/docs/divide-color\n */\n 'divide-color': [{ divide: scaleColor() }],\n /**\n * Outline Style\n * @see https://tailwindcss.com/docs/outline-style\n */\n 'outline-style': [{ outline: [...scaleLineStyle(), 'none', 'hidden'] }],\n /**\n * Outline Offset\n * @see https://tailwindcss.com/docs/outline-offset\n */\n 'outline-offset': [\n { 'outline-offset': [isNumber, isArbitraryVariable, isArbitraryValue] },\n ],\n /**\n * Outline Width\n * @see https://tailwindcss.com/docs/outline-width\n */\n 'outline-w': [\n { outline: ['', isNumber, isArbitraryVariableLength, isArbitraryLength] },\n ],\n /**\n * Outline Color\n * @see https://tailwindcss.com/docs/outline-color\n */\n 'outline-color': [{ outline: scaleColor() }],\n\n // ---------------\n // --- Effects ---\n // ---------------\n\n /**\n * Box Shadow\n * @see https://tailwindcss.com/docs/box-shadow\n */\n shadow: [\n {\n shadow: [\n // Deprecated since Tailwind CSS v4.0.0\n '',\n 'none',\n themeShadow,\n isArbitraryVariableShadow,\n isArbitraryShadow,\n ],\n },\n ],\n /**\n * Box Shadow Color\n * @see https://tailwindcss.com/docs/box-shadow#setting-the-shadow-color\n */\n 'shadow-color': [{ shadow: scaleColor() }],\n /**\n * Inset Box Shadow\n * @see https://tailwindcss.com/docs/box-shadow#adding-an-inset-shadow\n */\n 'inset-shadow': [\n {\n 'inset-shadow': [\n 'none',\n themeInsetShadow,\n isArbitraryVariableShadow,\n isArbitraryShadow,\n ],\n },\n ],\n /**\n * Inset Box Shadow Color\n * @see https://tailwindcss.com/docs/box-shadow#setting-the-inset-shadow-color\n */\n 'inset-shadow-color': [{ 'inset-shadow': scaleColor() }],\n /**\n * Ring Width\n * @see https://tailwindcss.com/docs/box-shadow#adding-a-ring\n */\n 'ring-w': [{ ring: scaleBorderWidth() }],\n /**\n * Ring Width Inset\n * @see https://v3.tailwindcss.com/docs/ring-width#inset-rings\n * @deprecated since Tailwind CSS v4.0.0\n * @see https://github.com/tailwindlabs/tailwindcss/blob/v4.0.0/packages/tailwindcss/src/utilities.ts#L4158\n */\n 'ring-w-inset': ['ring-inset'],\n /**\n * Ring Color\n * @see https://tailwindcss.com/docs/box-shadow#setting-the-ring-color\n */\n 'ring-color': [{ ring: scaleColor() }],\n /**\n * Ring Offset Width\n * @see https://v3.tailwindcss.com/docs/ring-offset-width\n * @deprecated since Tailwind CSS v4.0.0\n * @see https://github.com/tailwindlabs/tailwindcss/blob/v4.0.0/packages/tailwindcss/src/utilities.ts#L4158\n */\n 'ring-offset-w': [{ 'ring-offset': [isNumber, isArbitraryLength] }],\n /**\n * Ring Offset Color\n * @see https://v3.tailwindcss.com/docs/ring-offset-color\n * @deprecated since Tailwind CSS v4.0.0\n * @see https://github.com/tailwindlabs/tailwindcss/blob/v4.0.0/packages/tailwindcss/src/utilities.ts#L4158\n */\n 'ring-offset-color': [{ 'ring-offset': scaleColor() }],\n /**\n * Inset Ring Width\n * @see https://tailwindcss.com/docs/box-shadow#adding-an-inset-ring\n */\n 'inset-ring-w': [{ 'inset-ring': scaleBorderWidth() }],\n /**\n * Inset Ring Color\n * @see https://tailwindcss.com/docs/box-shadow#setting-the-inset-ring-color\n */\n 'inset-ring-color': [{ 'inset-ring': scaleColor() }],\n /**\n * Text Shadow\n * @see https://tailwindcss.com/docs/text-shadow\n */\n 'text-shadow': [\n {\n 'text-shadow': [\n 'none',\n themeTextShadow,\n isArbitraryVariableShadow,\n isArbitraryShadow,\n ],\n },\n ],\n /**\n * Text Shadow Color\n * @see https://tailwindcss.com/docs/text-shadow#setting-the-shadow-color\n */\n 'text-shadow-color': [{ 'text-shadow': scaleColor() }],\n /**\n * Opacity\n * @see https://tailwindcss.com/docs/opacity\n */\n opacity: [{ opacity: [isNumber, isArbitraryVariable, isArbitraryValue] }],\n /**\n * Mix Blend Mode\n * @see https://tailwindcss.com/docs/mix-blend-mode\n */\n 'mix-blend': [{ 'mix-blend': [...scaleBlendMode(), 'plus-darker', 'plus-lighter'] }],\n /**\n * Background Blend Mode\n * @see https://tailwindcss.com/docs/background-blend-mode\n */\n 'bg-blend': [{ 'bg-blend': scaleBlendMode() }],\n /**\n * Mask Clip\n * @see https://tailwindcss.com/docs/mask-clip\n */\n 'mask-clip': [\n { 'mask-clip': ['border', 'padding', 'content', 'fill', 'stroke', 'view'] },\n 'mask-no-clip',\n ],\n /**\n * Mask Composite\n * @see https://tailwindcss.com/docs/mask-composite\n */\n 'mask-composite': [{ mask: ['add', 'subtract', 'intersect', 'exclude'] }],\n /**\n * Mask Image\n * @see https://tailwindcss.com/docs/mask-image\n */\n 'mask-image-linear-pos': [{ 'mask-linear': [isNumber] }],\n 'mask-image-linear-from-pos': [{ 'mask-linear-from': scaleMaskImagePosition() }],\n 'mask-image-linear-to-pos': [{ 'mask-linear-to': scaleMaskImagePosition() }],\n 'mask-image-linear-from-color': [{ 'mask-linear-from': scaleColor() }],\n 'mask-image-linear-to-color': [{ 'mask-linear-to': scaleColor() }],\n 'mask-image-t-from-pos': [{ 'mask-t-from': scaleMaskImagePosition() }],\n 'mask-image-t-to-pos': [{ 'mask-t-to': scaleMaskImagePosition() }],\n 'mask-image-t-from-color': [{ 'mask-t-from': scaleColor() }],\n 'mask-image-t-to-color': [{ 'mask-t-to': scaleColor() }],\n 'mask-image-r-from-pos': [{ 'mask-r-from': scaleMaskImagePosition() }],\n 'mask-image-r-to-pos': [{ 'mask-r-to': scaleMaskImagePosition() }],\n 'mask-image-r-from-color': [{ 'mask-r-from': scaleColor() }],\n 'mask-image-r-to-color': [{ 'mask-r-to': scaleColor() }],\n 'mask-image-b-from-pos': [{ 'mask-b-from': scaleMaskImagePosition() }],\n 'mask-image-b-to-pos': [{ 'mask-b-to': scaleMaskImagePosition() }],\n 'mask-image-b-from-color': [{ 'mask-b-from': scaleColor() }],\n 'mask-image-b-to-color': [{ 'mask-b-to': scaleColor() }],\n 'mask-image-l-from-pos': [{ 'mask-l-from': scaleMaskImagePosition() }],\n 'mask-image-l-to-pos': [{ 'mask-l-to': scaleMaskImagePosition() }],\n 'mask-image-l-from-color': [{ 'mask-l-from': scaleColor() }],\n 'mask-image-l-to-color': [{ 'mask-l-to': scaleColor() }],\n 'mask-image-x-from-pos': [{ 'mask-x-from': scaleMaskImagePosition() }],\n 'mask-image-x-to-pos': [{ 'mask-x-to': scaleMaskImagePosition() }],\n 'mask-image-x-from-color': [{ 'mask-x-from': scaleColor() }],\n 'mask-image-x-to-color': [{ 'mask-x-to': scaleColor() }],\n 'mask-image-y-from-pos': [{ 'mask-y-from': scaleMaskImagePosition() }],\n 'mask-image-y-to-pos': [{ 'mask-y-to': scaleMaskImagePosition() }],\n 'mask-image-y-from-color': [{ 'mask-y-from': scaleColor() }],\n 'mask-image-y-to-color': [{ 'mask-y-to': scaleColor() }],\n 'mask-image-radial': [{ 'mask-radial': [isArbitraryVariable, isArbitraryValue] }],\n 'mask-image-radial-from-pos': [{ 'mask-radial-from': scaleMaskImagePosition() }],\n 'mask-image-radial-to-pos': [{ 'mask-radial-to': scaleMaskImagePosition() }],\n 'mask-image-radial-from-color': [{ 'mask-radial-from': scaleColor() }],\n 'mask-image-radial-to-color': [{ 'mask-radial-to': scaleColor() }],\n 'mask-image-radial-shape': [{ 'mask-radial': ['circle', 'ellipse'] }],\n 'mask-image-radial-size': [\n { 'mask-radial': [{ closest: ['side', 'corner'], farthest: ['side', 'corner'] }] },\n ],\n 'mask-image-radial-pos': [{ 'mask-radial-at': scalePosition() }],\n 'mask-image-conic-pos': [{ 'mask-conic': [isNumber] }],\n 'mask-image-conic-from-pos': [{ 'mask-conic-from': scaleMaskImagePosition() }],\n 'mask-image-conic-to-pos': [{ 'mask-conic-to': scaleMaskImagePosition() }],\n 'mask-image-conic-from-color': [{ 'mask-conic-from': scaleColor() }],\n 'mask-image-conic-to-color': [{ 'mask-conic-to': scaleColor() }],\n /**\n * Mask Mode\n * @see https://tailwindcss.com/docs/mask-mode\n */\n 'mask-mode': [{ mask: ['alpha', 'luminance', 'match'] }],\n /**\n * Mask Origin\n * @see https://tailwindcss.com/docs/mask-origin\n */\n 'mask-origin': [\n { 'mask-origin': ['border', 'padding', 'content', 'fill', 'stroke', 'view'] },\n ],\n /**\n * Mask Position\n * @see https://tailwindcss.com/docs/mask-position\n */\n 'mask-position': [{ mask: scaleBgPosition() }],\n /**\n * Mask Repeat\n * @see https://tailwindcss.com/docs/mask-repeat\n */\n 'mask-repeat': [{ mask: scaleBgRepeat() }],\n /**\n * Mask Size\n * @see https://tailwindcss.com/docs/mask-size\n */\n 'mask-size': [{ mask: scaleBgSize() }],\n /**\n * Mask Type\n * @see https://tailwindcss.com/docs/mask-type\n */\n 'mask-type': [{ 'mask-type': ['alpha', 'luminance'] }],\n /**\n * Mask Image\n * @see https://tailwindcss.com/docs/mask-image\n */\n 'mask-image': [{ mask: ['none', isArbitraryVariable, isArbitraryValue] }],\n\n // ---------------\n // --- Filters ---\n // ---------------\n\n /**\n * Filter\n * @see https://tailwindcss.com/docs/filter\n */\n filter: [\n {\n filter: [\n // Deprecated since Tailwind CSS v3.0.0\n '',\n 'none',\n isArbitraryVariable,\n isArbitraryValue,\n ],\n },\n ],\n /**\n * Blur\n * @see https://tailwindcss.com/docs/blur\n */\n blur: [{ blur: scaleBlur() }],\n /**\n * Brightness\n * @see https://tailwindcss.com/docs/brightness\n */\n brightness: [{ brightness: [isNumber, isArbitraryVariable, isArbitraryValue] }],\n /**\n * Contrast\n * @see https://tailwindcss.com/docs/contrast\n */\n contrast: [{ contrast: [isNumber, isArbitraryVariable, isArbitraryValue] }],\n /**\n * Drop Shadow\n * @see https://tailwindcss.com/docs/drop-shadow\n */\n 'drop-shadow': [\n {\n 'drop-shadow': [\n // Deprecated since Tailwind CSS v4.0.0\n '',\n 'none',\n themeDropShadow,\n isArbitraryVariableShadow,\n isArbitraryShadow,\n ],\n },\n ],\n /**\n * Drop Shadow Color\n * @see https://tailwindcss.com/docs/filter-drop-shadow#setting-the-shadow-color\n */\n 'drop-shadow-color': [{ 'drop-shadow': scaleColor() }],\n /**\n * Grayscale\n * @see https://tailwindcss.com/docs/grayscale\n */\n grayscale: [{ grayscale: ['', isNumber, isArbitraryVariable, isArbitraryValue] }],\n /**\n * Hue Rotate\n * @see https://tailwindcss.com/docs/hue-rotate\n */\n 'hue-rotate': [{ 'hue-rotate': [isNumber, isArbitraryVariable, isArbitraryValue] }],\n /**\n * Invert\n * @see https://tailwindcss.com/docs/invert\n */\n invert: [{ invert: ['', isNumber, isArbitraryVariable, isArbitraryValue] }],\n /**\n * Saturate\n * @see https://tailwindcss.com/docs/saturate\n */\n saturate: [{ saturate: [isNumber, isArbitraryVariable, isArbitraryValue] }],\n /**\n * Sepia\n * @see https://tailwindcss.com/docs/sepia\n */\n sepia: [{ sepia: ['', isNumber, isArbitraryVariable, isArbitraryValue] }],\n /**\n * Backdrop Filter\n * @see https://tailwindcss.com/docs/backdrop-filter\n */\n 'backdrop-filter': [\n {\n 'backdrop-filter': [\n // Deprecated since Tailwind CSS v3.0.0\n '',\n 'none',\n isArbitraryVariable,\n isArbitraryValue,\n ],\n },\n ],\n /**\n * Backdrop Blur\n * @see https://tailwindcss.com/docs/backdrop-blur\n */\n 'backdrop-blur': [{ 'backdrop-blur': scaleBlur() }],\n /**\n * Backdrop Brightness\n * @see https://tailwindcss.com/docs/backdrop-brightness\n */\n 'backdrop-brightness': [\n { 'backdrop-brightness': [isNumber, isArbitraryVariable, isArbitraryValue] },\n ],\n /**\n * Backdrop Contrast\n * @see https://tailwindcss.com/docs/backdrop-contrast\n */\n 'backdrop-contrast': [\n { 'backdrop-contrast': [isNumber, isArbitraryVariable, isArbitraryValue] },\n ],\n /**\n * Backdrop Grayscale\n * @see https://tailwindcss.com/docs/backdrop-grayscale\n */\n 'backdrop-grayscale': [\n { 'backdrop-grayscale': ['', isNumber, isArbitraryVariable, isArbitraryValue] },\n ],\n /**\n * Backdrop Hue Rotate\n * @see https://tailwindcss.com/docs/backdrop-hue-rotate\n */\n 'backdrop-hue-rotate': [\n { 'backdrop-hue-rotate': [isNumber, isArbitraryVariable, isArbitraryValue] },\n ],\n /**\n * Backdrop Invert\n * @see https://tailwindcss.com/docs/backdrop-invert\n */\n 'backdrop-invert': [\n { 'backdrop-invert': ['', isNumber, isArbitraryVariable, isArbitraryValue] },\n ],\n /**\n * Backdrop Opacity\n * @see https://tailwindcss.com/docs/backdrop-opacity\n */\n 'backdrop-opacity': [\n { 'backdrop-opacity': [isNumber, isArbitraryVariable, isArbitraryValue] },\n ],\n /**\n * Backdrop Saturate\n * @see https://tailwindcss.com/docs/backdrop-saturate\n */\n 'backdrop-saturate': [\n { 'backdrop-saturate': [isNumber, isArbitraryVariable, isArbitraryValue] },\n ],\n /**\n * Backdrop Sepia\n * @see https://tailwindcss.com/docs/backdrop-sepia\n */\n 'backdrop-sepia': [\n { 'backdrop-sepia': ['', isNumber, isArbitraryVariable, isArbitraryValue] },\n ],\n\n // --------------\n // --- Tables ---\n // --------------\n\n /**\n * Border Collapse\n * @see https://tailwindcss.com/docs/border-collapse\n */\n 'border-collapse': [{ border: ['collapse', 'separate'] }],\n /**\n * Border Spacing\n * @see https://tailwindcss.com/docs/border-spacing\n */\n 'border-spacing': [{ 'border-spacing': scaleUnambiguousSpacing() }],\n /**\n * Border Spacing X\n * @see https://tailwindcss.com/docs/border-spacing\n */\n 'border-spacing-x': [{ 'border-spacing-x': scaleUnambiguousSpacing() }],\n /**\n * Border Spacing Y\n * @see https://tailwindcss.com/docs/border-spacing\n */\n 'border-spacing-y': [{ 'border-spacing-y': scaleUnambiguousSpacing() }],\n /**\n * Table Layout\n * @see https://tailwindcss.com/docs/table-layout\n */\n 'table-layout': [{ table: ['auto', 'fixed'] }],\n /**\n * Caption Side\n * @see https://tailwindcss.com/docs/caption-side\n */\n caption: [{ caption: ['top', 'bottom'] }],\n\n // ---------------------------------\n // --- Transitions and Animation ---\n // ---------------------------------\n\n /**\n * Transition Property\n * @see https://tailwindcss.com/docs/transition-property\n */\n transition: [\n {\n transition: [\n '',\n 'all',\n 'colors',\n 'opacity',\n 'shadow',\n 'transform',\n 'none',\n isArbitraryVariable,\n isArbitraryValue,\n ],\n },\n ],\n /**\n * Transition Behavior\n * @see https://tailwindcss.com/docs/transition-behavior\n */\n 'transition-behavior': [{ transition: ['normal', 'discrete'] }],\n /**\n * Transition Duration\n * @see https://tailwindcss.com/docs/transition-duration\n */\n duration: [{ duration: [isNumber, 'initial', isArbitraryVariable, isArbitraryValue] }],\n /**\n * Transition Timing Function\n * @see https://tailwindcss.com/docs/transition-timing-function\n */\n ease: [\n { ease: ['linear', 'initial', themeEase, isArbitraryVariable, isArbitraryValue] },\n ],\n /**\n * Transition Delay\n * @see https://tailwindcss.com/docs/transition-delay\n */\n delay: [{ delay: [isNumber, isArbitraryVariable, isArbitraryValue] }],\n /**\n * Animation\n * @see https://tailwindcss.com/docs/animation\n */\n animate: [{ animate: ['none', themeAnimate, isArbitraryVariable, isArbitraryValue] }],\n\n // ------------------\n // --- Transforms ---\n // ------------------\n\n /**\n * Backface Visibility\n * @see https://tailwindcss.com/docs/backface-visibility\n */\n backface: [{ backface: ['hidden', 'visible'] }],\n /**\n * Perspective\n * @see https://tailwindcss.com/docs/perspective\n */\n perspective: [\n { perspective: [themePerspective, isArbitraryVariable, isArbitraryValue] },\n ],\n /**\n * Perspective Origin\n * @see https://tailwindcss.com/docs/perspective-origin\n */\n 'perspective-origin': [{ 'perspective-origin': scalePositionWithArbitrary() }],\n /**\n * Rotate\n * @see https://tailwindcss.com/docs/rotate\n */\n rotate: [{ rotate: scaleRotate() }],\n /**\n * Rotate X\n * @see https://tailwindcss.com/docs/rotate\n */\n 'rotate-x': [{ 'rotate-x': scaleRotate() }],\n /**\n * Rotate Y\n * @see https://tailwindcss.com/docs/rotate\n */\n 'rotate-y': [{ 'rotate-y': scaleRotate() }],\n /**\n * Rotate Z\n * @see https://tailwindcss.com/docs/rotate\n */\n 'rotate-z': [{ 'rotate-z': scaleRotate() }],\n /**\n * Scale\n * @see https://tailwindcss.com/docs/scale\n */\n scale: [{ scale: scaleScale() }],\n /**\n * Scale X\n * @see https://tailwindcss.com/docs/scale\n */\n 'scale-x': [{ 'scale-x': scaleScale() }],\n /**\n * Scale Y\n * @see https://tailwindcss.com/docs/scale\n */\n 'scale-y': [{ 'scale-y': scaleScale() }],\n /**\n * Scale Z\n * @see https://tailwindcss.com/docs/scale\n */\n 'scale-z': [{ 'scale-z': scaleScale() }],\n /**\n * Scale 3D\n * @see https://tailwindcss.com/docs/scale\n */\n 'scale-3d': ['scale-3d'],\n /**\n * Skew\n * @see https://tailwindcss.com/docs/skew\n */\n skew: [{ skew: scaleSkew() }],\n /**\n * Skew X\n * @see https://tailwindcss.com/docs/skew\n */\n 'skew-x': [{ 'skew-x': scaleSkew() }],\n /**\n * Skew Y\n * @see https://tailwindcss.com/docs/skew\n */\n 'skew-y': [{ 'skew-y': scaleSkew() }],\n /**\n * Transform\n * @see https://tailwindcss.com/docs/transform\n */\n transform: [\n { transform: [isArbitraryVariable, isArbitraryValue, '', 'none', 'gpu', 'cpu'] },\n ],\n /**\n * Transform Origin\n * @see https://tailwindcss.com/docs/transform-origin\n */\n 'transform-origin': [{ origin: scalePositionWithArbitrary() }],\n /**\n * Transform Style\n * @see https://tailwindcss.com/docs/transform-style\n */\n 'transform-style': [{ transform: ['3d', 'flat'] }],\n /**\n * Translate\n * @see https://tailwindcss.com/docs/translate\n */\n translate: [{ translate: scaleTranslate() }],\n /**\n * Translate X\n * @see https://tailwindcss.com/docs/translate\n */\n 'translate-x': [{ 'translate-x': scaleTranslate() }],\n /**\n * Translate Y\n * @see https://tailwindcss.com/docs/translate\n */\n 'translate-y': [{ 'translate-y': scaleTranslate() }],\n /**\n * Translate Z\n * @see https://tailwindcss.com/docs/translate\n */\n 'translate-z': [{ 'translate-z': scaleTranslate() }],\n /**\n * Translate None\n * @see https://tailwindcss.com/docs/translate\n */\n 'translate-none': ['translate-none'],\n\n // ---------------------\n // --- Interactivity ---\n // ---------------------\n\n /**\n * Accent Color\n * @see https://tailwindcss.com/docs/accent-color\n */\n accent: [{ accent: scaleColor() }],\n /**\n * Appearance\n * @see https://tailwindcss.com/docs/appearance\n */\n appearance: [{ appearance: ['none', 'auto'] }],\n /**\n * Caret Color\n * @see https://tailwindcss.com/docs/just-in-time-mode#caret-color-utilities\n */\n 'caret-color': [{ caret: scaleColor() }],\n /**\n * Color Scheme\n * @see https://tailwindcss.com/docs/color-scheme\n */\n 'color-scheme': [\n { scheme: ['normal', 'dark', 'light', 'light-dark', 'only-dark', 'only-light'] },\n ],\n /**\n * Cursor\n * @see https://tailwindcss.com/docs/cursor\n */\n cursor: [\n {\n cursor: [\n 'auto',\n 'default',\n 'pointer',\n 'wait',\n 'text',\n 'move',\n 'help',\n 'not-allowed',\n 'none',\n 'context-menu',\n 'progress',\n 'cell',\n 'crosshair',\n 'vertical-text',\n 'alias',\n 'copy',\n 'no-drop',\n 'grab',\n 'grabbing',\n 'all-scroll',\n 'col-resize',\n 'row-resize',\n 'n-resize',\n 'e-resize',\n 's-resize',\n 'w-resize',\n 'ne-resize',\n 'nw-resize',\n 'se-resize',\n 'sw-resize',\n 'ew-resize',\n 'ns-resize',\n 'nesw-resize',\n 'nwse-resize',\n 'zoom-in',\n 'zoom-out',\n isArbitraryVariable,\n isArbitraryValue,\n ],\n },\n ],\n /**\n * Field Sizing\n * @see https://tailwindcss.com/docs/field-sizing\n */\n 'field-sizing': [{ 'field-sizing': ['fixed', 'content'] }],\n /**\n * Pointer Events\n * @see https://tailwindcss.com/docs/pointer-events\n */\n 'pointer-events': [{ 'pointer-events': ['auto', 'none'] }],\n /**\n * Resize\n * @see https://tailwindcss.com/docs/resize\n */\n resize: [{ resize: ['none', '', 'y', 'x'] }],\n /**\n * Scroll Behavior\n * @see https://tailwindcss.com/docs/scroll-behavior\n */\n 'scroll-behavior': [{ scroll: ['auto', 'smooth'] }],\n /**\n * Scroll Margin\n * @see https://tailwindcss.com/docs/scroll-margin\n */\n 'scroll-m': [{ 'scroll-m': scaleUnambiguousSpacing() }],\n /**\n * Scroll Margin X\n * @see https://tailwindcss.com/docs/scroll-margin\n */\n 'scroll-mx': [{ 'scroll-mx': scaleUnambiguousSpacing() }],\n /**\n * Scroll Margin Y\n * @see https://tailwindcss.com/docs/scroll-margin\n */\n 'scroll-my': [{ 'scroll-my': scaleUnambiguousSpacing() }],\n /**\n * Scroll Margin Start\n * @see https://tailwindcss.com/docs/scroll-margin\n */\n 'scroll-ms': [{ 'scroll-ms': scaleUnambiguousSpacing() }],\n /**\n * Scroll Margin End\n * @see https://tailwindcss.com/docs/scroll-margin\n */\n 'scroll-me': [{ 'scroll-me': scaleUnambiguousSpacing() }],\n /**\n * Scroll Margin Top\n * @see https://tailwindcss.com/docs/scroll-margin\n */\n 'scroll-mt': [{ 'scroll-mt': scaleUnambiguousSpacing() }],\n /**\n * Scroll Margin Right\n * @see https://tailwindcss.com/docs/scroll-margin\n */\n 'scroll-mr': [{ 'scroll-mr': scaleUnambiguousSpacing() }],\n /**\n * Scroll Margin Bottom\n * @see https://tailwindcss.com/docs/scroll-margin\n */\n 'scroll-mb': [{ 'scroll-mb': scaleUnambiguousSpacing() }],\n /**\n * Scroll Margin Left\n * @see https://tailwindcss.com/docs/scroll-margin\n */\n 'scroll-ml': [{ 'scroll-ml': scaleUnambiguousSpacing() }],\n /**\n * Scroll Padding\n * @see https://tailwindcss.com/docs/scroll-padding\n */\n 'scroll-p': [{ 'scroll-p': scaleUnambiguousSpacing() }],\n /**\n * Scroll Padding X\n * @see https://tailwindcss.com/docs/scroll-padding\n */\n 'scroll-px': [{ 'scroll-px': scaleUnambiguousSpacing() }],\n /**\n * Scroll Padding Y\n * @see https://tailwindcss.com/docs/scroll-padding\n */\n 'scroll-py': [{ 'scroll-py': scaleUnambiguousSpacing() }],\n /**\n * Scroll Padding Start\n * @see https://tailwindcss.com/docs/scroll-padding\n */\n 'scroll-ps': [{ 'scroll-ps': scaleUnambiguousSpacing() }],\n /**\n * Scroll Padding End\n * @see https://tailwindcss.com/docs/scroll-padding\n */\n 'scroll-pe': [{ 'scroll-pe': scaleUnambiguousSpacing() }],\n /**\n * Scroll Padding Top\n * @see https://tailwindcss.com/docs/scroll-padding\n */\n 'scroll-pt': [{ 'scroll-pt': scaleUnambiguousSpacing() }],\n /**\n * Scroll Padding Right\n * @see https://tailwindcss.com/docs/scroll-padding\n */\n 'scroll-pr': [{ 'scroll-pr': scaleUnambiguousSpacing() }],\n /**\n * Scroll Padding Bottom\n * @see https://tailwindcss.com/docs/scroll-padding\n */\n 'scroll-pb': [{ 'scroll-pb': scaleUnambiguousSpacing() }],\n /**\n * Scroll Padding Left\n * @see https://tailwindcss.com/docs/scroll-padding\n */\n 'scroll-pl': [{ 'scroll-pl': scaleUnambiguousSpacing() }],\n /**\n * Scroll Snap Align\n * @see https://tailwindcss.com/docs/scroll-snap-align\n */\n 'snap-align': [{ snap: ['start', 'end', 'center', 'align-none'] }],\n /**\n * Scroll Snap Stop\n * @see https://tailwindcss.com/docs/scroll-snap-stop\n */\n 'snap-stop': [{ snap: ['normal', 'always'] }],\n /**\n * Scroll Snap Type\n * @see https://tailwindcss.com/docs/scroll-snap-type\n */\n 'snap-type': [{ snap: ['none', 'x', 'y', 'both'] }],\n /**\n * Scroll Snap Type Strictness\n * @see https://tailwindcss.com/docs/scroll-snap-type\n */\n 'snap-strictness': [{ snap: ['mandatory', 'proximity'] }],\n /**\n * Touch Action\n * @see https://tailwindcss.com/docs/touch-action\n */\n touch: [{ touch: ['auto', 'none', 'manipulation'] }],\n /**\n * Touch Action X\n * @see https://tailwindcss.com/docs/touch-action\n */\n 'touch-x': [{ 'touch-pan': ['x', 'left', 'right'] }],\n /**\n * Touch Action Y\n * @see https://tailwindcss.com/docs/touch-action\n */\n 'touch-y': [{ 'touch-pan': ['y', 'up', 'down'] }],\n /**\n * Touch Action Pinch Zoom\n * @see https://tailwindcss.com/docs/touch-action\n */\n 'touch-pz': ['touch-pinch-zoom'],\n /**\n * User Select\n * @see https://tailwindcss.com/docs/user-select\n */\n select: [{ select: ['none', 'text', 'all', 'auto'] }],\n /**\n * Will Change\n * @see https://tailwindcss.com/docs/will-change\n */\n 'will-change': [\n {\n 'will-change': [\n 'auto',\n 'scroll',\n 'contents',\n 'transform',\n isArbitraryVariable,\n isArbitraryValue,\n ],\n },\n ],\n\n // -----------\n // --- SVG ---\n // -----------\n\n /**\n * Fill\n * @see https://tailwindcss.com/docs/fill\n */\n fill: [{ fill: ['none', ...scaleColor()] }],\n /**\n * Stroke Width\n * @see https://tailwindcss.com/docs/stroke-width\n */\n 'stroke-w': [\n {\n stroke: [\n isNumber,\n isArbitraryVariableLength,\n isArbitraryLength,\n isArbitraryNumber,\n ],\n },\n ],\n /**\n * Stroke\n * @see https://tailwindcss.com/docs/stroke\n */\n stroke: [{ stroke: ['none', ...scaleColor()] }],\n\n // ---------------------\n // --- Accessibility ---\n // ---------------------\n\n /**\n * Forced Color Adjust\n * @see https://tailwindcss.com/docs/forced-color-adjust\n */\n 'forced-color-adjust': [{ 'forced-color-adjust': ['auto', 'none'] }],\n },\n conflictingClassGroups: {\n overflow: ['overflow-x', 'overflow-y'],\n overscroll: ['overscroll-x', 'overscroll-y'],\n inset: ['inset-x', 'inset-y', 'start', 'end', 'top', 'right', 'bottom', 'left'],\n 'inset-x': ['right', 'left'],\n 'inset-y': ['top', 'bottom'],\n flex: ['basis', 'grow', 'shrink'],\n gap: ['gap-x', 'gap-y'],\n p: ['px', 'py', 'ps', 'pe', 'pt', 'pr', 'pb', 'pl'],\n px: ['pr', 'pl'],\n py: ['pt', 'pb'],\n m: ['mx', 'my', 'ms', 'me', 'mt', 'mr', 'mb', 'ml'],\n mx: ['mr', 'ml'],\n my: ['mt', 'mb'],\n size: ['w', 'h'],\n 'font-size': ['leading'],\n 'fvn-normal': [\n 'fvn-ordinal',\n 'fvn-slashed-zero',\n 'fvn-figure',\n 'fvn-spacing',\n 'fvn-fraction',\n ],\n 'fvn-ordinal': ['fvn-normal'],\n 'fvn-slashed-zero': ['fvn-normal'],\n 'fvn-figure': ['fvn-normal'],\n 'fvn-spacing': ['fvn-normal'],\n 'fvn-fraction': ['fvn-normal'],\n 'line-clamp': ['display', 'overflow'],\n rounded: [\n 'rounded-s',\n 'rounded-e',\n 'rounded-t',\n 'rounded-r',\n 'rounded-b',\n 'rounded-l',\n 'rounded-ss',\n 'rounded-se',\n 'rounded-ee',\n 'rounded-es',\n 'rounded-tl',\n 'rounded-tr',\n 'rounded-br',\n 'rounded-bl',\n ],\n 'rounded-s': ['rounded-ss', 'rounded-es'],\n 'rounded-e': ['rounded-se', 'rounded-ee'],\n 'rounded-t': ['rounded-tl', 'rounded-tr'],\n 'rounded-r': ['rounded-tr', 'rounded-br'],\n 'rounded-b': ['rounded-br', 'rounded-bl'],\n 'rounded-l': ['rounded-tl', 'rounded-bl'],\n 'border-spacing': ['border-spacing-x', 'border-spacing-y'],\n 'border-w': [\n 'border-w-x',\n 'border-w-y',\n 'border-w-s',\n 'border-w-e',\n 'border-w-t',\n 'border-w-r',\n 'border-w-b',\n 'border-w-l',\n ],\n 'border-w-x': ['border-w-r', 'border-w-l'],\n 'border-w-y': ['border-w-t', 'border-w-b'],\n 'border-color': [\n 'border-color-x',\n 'border-color-y',\n 'border-color-s',\n 'border-color-e',\n 'border-color-t',\n 'border-color-r',\n 'border-color-b',\n 'border-color-l',\n ],\n 'border-color-x': ['border-color-r', 'border-color-l'],\n 'border-color-y': ['border-color-t', 'border-color-b'],\n translate: ['translate-x', 'translate-y', 'translate-none'],\n 'translate-none': ['translate', 'translate-x', 'translate-y', 'translate-z'],\n 'scroll-m': [\n 'scroll-mx',\n 'scroll-my',\n 'scroll-ms',\n 'scroll-me',\n 'scroll-mt',\n 'scroll-mr',\n 'scroll-mb',\n 'scroll-ml',\n ],\n 'scroll-mx': ['scroll-mr', 'scroll-ml'],\n 'scroll-my': ['scroll-mt', 'scroll-mb'],\n 'scroll-p': [\n 'scroll-px',\n 'scroll-py',\n 'scroll-ps',\n 'scroll-pe',\n 'scroll-pt',\n 'scroll-pr',\n 'scroll-pb',\n 'scroll-pl',\n ],\n 'scroll-px': ['scroll-pr', 'scroll-pl'],\n 'scroll-py': ['scroll-pt', 'scroll-pb'],\n touch: ['touch-x', 'touch-y', 'touch-pz'],\n 'touch-x': ['touch'],\n 'touch-y': ['touch'],\n 'touch-pz': ['touch'],\n },\n conflictingClassGroupModifiers: {\n 'font-size': ['leading'],\n },\n orderSensitiveModifiers: [\n '*',\n '**',\n 'after',\n 'backdrop',\n 'before',\n 'details-content',\n 'file',\n 'first-letter',\n 'first-line',\n 'marker',\n 'placeholder',\n 'selection',\n ],\n } as const satisfies Config<DefaultClassGroupIds, DefaultThemeGroupIds>\n}\n","import { createTailwindMerge } from './create-tailwind-merge'\nimport { getDefaultConfig } from './default-config'\n\nexport const twMerge = createTailwindMerge(getDefaultConfig)\n","export enum BreakpointsEnum {\n BASE = 'base',\n SM = 'sm',\n MD = 'md',\n LG = 'lg',\n XL = 'xl',\n X2L = '2xl',\n}\n","export enum SpaceScaleOptionsEnum {\n X2S = '2xs',\n XS = 'xs',\n SM = 'sm',\n DEFAULT = 'DEFAULT',\n MD = 'md',\n LG = 'lg',\n XL = 'xl',\n X2L = '2xl',\n X3L = '3xl',\n X4L = '4xl',\n X5L = '5xl',\n X6L = '6xl',\n}\n","import { type VariantProps, tv } from 'tailwind-variants';\n\nimport { SpaceScaleOptionsEnum } from '../../enums/spacing.enum';\n\n/**\n * Tailwind’s default scale:\n * • h-8 / h-10 / h-12 → 32 / 40 / 48 px tall (meets 32-px tap-target)\n * • px-3 / px-4 / px-5 → 12 / 16 / 20 px horizontal padding\n * • text-sm / text-base keep copy legible while matching Tailwind buttons\n */\nexport const squareSizeStyles = tv({\n variants: {\n base: {\n [SpaceScaleOptionsEnum.X2S]: 'size-4',\n [SpaceScaleOptionsEnum.XS]: 'size-6',\n [SpaceScaleOptionsEnum.SM]: 'size-8',\n [SpaceScaleOptionsEnum.DEFAULT]: 'size-10',\n [SpaceScaleOptionsEnum.MD]: 'size-12',\n [SpaceScaleOptionsEnum.LG]: 'size-14',\n [SpaceScaleOptionsEnum.XL]: 'size-16',\n [SpaceScaleOptionsEnum.X2L]: 'size-18',\n [SpaceScaleOptionsEnum.X3L]: 'size-20',\n [SpaceScaleOptionsEnum.X4L]: 'size-22',\n [SpaceScaleOptionsEnum.X5L]: 'size-24',\n [SpaceScaleOptionsEnum.X6L]: 'size-26',\n },\n sm: {\n [SpaceScaleOptionsEnum.X2S]: 'sm:size-4',\n [SpaceScaleOptionsEnum.XS]: 'sm:size-6',\n [SpaceScaleOptionsEnum.SM]: 'sm:size-8',\n [SpaceScaleOptionsEnum.DEFAULT]: 'sm:size-10',\n [SpaceScaleOptionsEnum.MD]: 'sm:size-12',\n [SpaceScaleOptionsEnum.LG]: 'sm:size-14',\n [SpaceScaleOptionsEnum.XL]: 'sm:size-16',\n [SpaceScaleOptionsEnum.X2L]: 'sm:size-18',\n [SpaceScaleOptionsEnum.X3L]: 'sm:size-20',\n [SpaceScaleOptionsEnum.X4L]: 'sm:size-22',\n [SpaceScaleOptionsEnum.X5L]: 'sm:size-24',\n [SpaceScaleOptionsEnum.X6L]: 'sm:size-26',\n },\n md: {\n [SpaceScaleOptionsEnum.X2S]: 'md:size-4',\n [SpaceScaleOptionsEnum.XS]: 'md:size-6',\n [SpaceScaleOptionsEnum.SM]: 'md:size-8',\n [SpaceScaleOptionsEnum.DEFAULT]: 'md:size-10',\n [SpaceScaleOptionsEnum.MD]: 'md:size-12',\n [SpaceScaleOptionsEnum.LG]: 'md:size-14',\n [SpaceScaleOptionsEnum.XL]: 'md:size-16',\n [SpaceScaleOptionsEnum.X2L]: 'md:size-18',\n [SpaceScaleOptionsEnum.X3L]: 'md:size-20',\n [SpaceScaleOptionsEnum.X4L]: 'md:size-22',\n [SpaceScaleOptionsEnum.X5L]: 'md:size-24',\n [SpaceScaleOptionsEnum.X6L]: 'md:size-26',\n },\n lg: {\n [SpaceScaleOptionsEnum.X2S]: 'lg:size-4',\n [SpaceScaleOptionsEnum.XS]: 'lg:size-6',\n [SpaceScaleOptionsEnum.SM]: 'lg:size-8',\n [SpaceScaleOptionsEnum.DEFAULT]: 'lg:size-10',\n [SpaceScaleOptionsEnum.MD]: 'lg:size-12',\n [SpaceScaleOptionsEnum.LG]: 'lg:size-14',\n [SpaceScaleOptionsEnum.XL]: 'lg:size-16',\n [SpaceScaleOptionsEnum.X2L]: 'lg:size-18',\n [SpaceScaleOptionsEnum.X3L]: 'lg:size-20',\n [SpaceScaleOptionsEnum.X4L]: 'lg:size-22',\n [SpaceScaleOptionsEnum.X5L]: 'lg:size-24',\n [SpaceScaleOptionsEnum.X6L]: 'lg:size-26',\n },\n xl: {\n [SpaceScaleOptionsEnum.X2S]: 'xl:size-4',\n [SpaceScaleOptionsEnum.XS]: 'xl:size-6',\n [SpaceScaleOptionsEnum.SM]: 'xl:size-8',\n [SpaceScaleOptionsEnum.DEFAULT]: 'xl:size-10',\n [SpaceScaleOptionsEnum.MD]: 'xl:size-12',\n [SpaceScaleOptionsEnum.LG]: 'xl:size-14',\n [SpaceScaleOptionsEnum.XL]: 'xl:size-16',\n [SpaceScaleOptionsEnum.X2L]: 'xl:size-18',\n [SpaceScaleOptionsEnum.X3L]: 'xl:size-20',\n [SpaceScaleOptionsEnum.X4L]: 'xl:size-22',\n [SpaceScaleOptionsEnum.X5L]: 'xl:size-24',\n [SpaceScaleOptionsEnum.X6L]: 'xl:size-26',\n },\n '2xl': {\n [SpaceScaleOptionsEnum.X2S]: '2xl:size-4',\n [SpaceScaleOptionsEnum.XS]: '2xl:size-6',\n [SpaceScaleOptionsEnum.SM]: '2xl:size-8',\n [SpaceScaleOptionsEnum.DEFAULT]: '2xl:size-10',\n [SpaceScaleOptionsEnum.MD]: '2xl:size-12',\n [SpaceScaleOptionsEnum.LG]: '2xl:size-14',\n [SpaceScaleOptionsEnum.XL]: '2xl:size-16',\n [SpaceScaleOptionsEnum.X2L]: '2xl:size-18',\n [SpaceScaleOptionsEnum.X3L]: '2xl:size-20',\n [SpaceScaleOptionsEnum.X4L]: '2xl:size-22',\n [SpaceScaleOptionsEnum.X5L]: '2xl:size-24',\n [SpaceScaleOptionsEnum.X6L]: '2xl:size-26',\n },\n },\n});\n\nexport type FluidSizeProperties = VariantProps<typeof squareSizeStyles>;\n","import { get } from 'lodash-es';\nimport { twMerge } from 'tailwind-merge';\n\nimport { BreakpointsEnum } from '../../enums/breakpoints.enum';\nimport { SpaceScaleOptionsEnum } from '../../enums/spacing.enum';\nimport { ControlCommonStylesProperties } from '../common';\nimport { squareSizeStyles } from '../common/squareSizeStyles';\nimport { baseAvatarStyles } from './avatar.styles';\n\nexport interface ButtonLayoutOptions extends ControlCommonStylesProperties {\n className?: string;\n}\n\nexport function modelAvatar(payload: ButtonLayoutOptions): string {\n const { className } = payload;\n\n const size = {\n [BreakpointsEnum.BASE]: get(\n payload,\n ['size', BreakpointsEnum.BASE],\n get(payload, ['size'], SpaceScaleOptionsEnum.DEFAULT),\n ),\n [BreakpointsEnum.SM]: get(payload, ['size', BreakpointsEnum.SM]),\n [BreakpointsEnum.MD]: get(payload, ['size', BreakpointsEnum.MD]),\n [BreakpointsEnum.LG]: get(payload, ['size', BreakpointsEnum.LG]),\n [BreakpointsEnum.XL]: get(payload, ['size', BreakpointsEnum.XL]),\n [BreakpointsEnum.X2L]: get(payload, ['size', BreakpointsEnum.X2L]),\n };\n\n return twMerge(\n baseAvatarStyles(payload),\n squareSizeStyles(size),\n 'ring-1 m-2 shrink-0 inline-block ring-gray-300',\n className,\n );\n}\n","import { tv } from 'tailwind-variants';\n\nimport { modelAvatar } from './modelAvatar.ts';\n\nexport const baseAvatarStyles = tv({\n base: ['size-7 overflow-hidden rounded rounded-full object-cover'],\n});\n\nexport const avatarStyles = (payload: unknown): string =>\n modelAvatar(payload as Record<string, unknown>);\n","import { tv } from 'tailwind-variants';\n\nexport const directionStyles = tv({\n variants: {\n base: {\n vertical: 'grid-flow-row',\n horizontal: 'grid-flow-col',\n },\n sm: {\n vertical: 'sm:grid-flow-row',\n horizontal: 'sm:grid-flow-col',\n },\n md: {\n vertical: 'md:grid-flow-row',\n horizontal: 'md:grid-flow-col',\n },\n lg: {\n vertical: 'lg:grid-flow-row',\n horizontal: 'lg:grid-flow-col',\n },\n xl: {\n vertical: 'xl:grid-flow-row',\n horizontal: 'xl:grid-flow-col',\n },\n '2xl': {\n vertical: '2xl:grid-flow-row',\n horizontal: '2xl:grid-flow-col',\n },\n },\n defaultVariants: {\n base: 'vertical',\n },\n});\n\nexport const columnStyles = tv({\n variants: {\n base: {\n '1': 'grid-cols-1',\n '2': 'grid-cols-2',\n '3': 'grid-cols-3',\n '4': 'grid-cols-4',\n '5': 'grid-cols-5',\n '6': 'grid-cols-6',\n '7': 'grid-cols-7',\n '8': 'grid-cols-8',\n '9': 'grid-cols-9',\n '10': 'grid-cols-10',\n '11': 'grid-cols-11',\n '12': 'grid-cols-12',\n },\n sm: {\n '1': 'sm:grid-cols-1',\n '2': 'sm:grid-cols-2',\n '3': 'sm:grid-cols-3',\n '4': 'sm:grid-cols-4',\n '5': 'sm:grid-cols-5',\n '6': 'sm:grid-cols-6',\n '7': 'sm:grid-cols-7',\n '8': 'sm:grid-cols-8',\n '9': 'sm:grid-cols-9',\n '10': 'sm:grid-cols-10',\n '11': 'sm:grid-cols-11',\n '12': 'sm:grid-cols-12',\n },\n md: {\n '1': 'md:grid-cols-1',\n '2': 'md:grid-cols-2',\n '3': 'md:grid-cols-3',\n '4': 'md:grid-cols-4',\n '5': 'md:grid-cols-5',\n '6': 'md:grid-cols-6',\n '7': 'md:grid-cols-7',\n '8': 'md:grid-cols-8',\n '9': 'md:grid-cols-9',\n '10': 'md:grid-cols-10',\n '11': 'md:grid-cols-11',\n '12': 'md:grid-cols-12',\n },\n lg: {\n '1': 'lg:grid-cols-1',\n '2': 'lg:grid-cols-2',\n '3': 'lg:grid-cols-3',\n '4': 'lg:grid-cols-4',\n '5': 'lg:grid-cols-5',\n '6': 'lg:grid-cols-6',\n '7': 'lg:grid-cols-7',\n '8': 'lg:grid-cols-8',\n '9': 'lg:grid-cols-9',\n '10': 'lg:grid-cols-10',\n '11': 'lg:grid-cols-11',\n '12': 'lg:grid-cols-12',\n },\n xl: {\n '1': 'xl:grid-cols-1',\n '2': 'xl:grid-cols-2',\n '3': 'xl:grid-cols-3',\n '4': 'xl:grid-cols-4',\n '5': 'xl:grid-cols-5',\n '6': 'xl:grid-cols-6',\n '7': 'xl:grid-cols-7',\n '8': 'xl:grid-cols-8',\n '9': 'xl:grid-cols-9',\n '10': 'xl:grid-cols-10',\n '11': 'xl:grid-cols-11',\n '12': 'xl:grid-cols-12',\n },\n '2xl': {\n '1': '2xl:grid-cols-1',\n '2': '2xl:grid-cols-2',\n '3': '2xl:grid-cols-3',\n '4': '2xl:grid-cols-4',\n '5': '2xl:grid-cols-5',\n '6': '2xl:grid-cols-6',\n '7': '2xl:grid-cols-7',\n '8': '2xl:grid-cols-8',\n '9': '2xl:grid-cols-9',\n '10': '2xl:grid-cols-10',\n '11': '2xl:grid-cols-11',\n '12': '2xl:grid-cols-12',\n },\n },\n defaultVariants: {\n base: '1',\n },\n});\n\nexport const rowStyles = tv({\n variants: {\n base: {\n '1': 'grid-rows-1',\n '2': 'grid-rows-2',\n '3': 'grid-rows-3',\n '4': 'grid-rows-4',\n '5': 'grid-rows-5',\n '6': 'grid-rows-6',\n '7': 'grid-rows-7',\n '8': 'grid-rows-8',\n '9': 'grid-rows-9',\n '10': 'grid-rows-10',\n '11': 'grid-rows-11',\n '12': 'grid-rows-12',\n },\n sm: {\n '1': 'sm:grid-rows-1',\n '2': 'sm:grid-rows-2',\n '3': 'sm:grid-rows-3',\n '4': 'sm:grid-rows-4',\n '5': 'sm:grid-rows-5',\n '6': 'sm:grid-rows-6',\n '7': 'sm:grid-rows-7',\n '8': 'sm:grid-rows-8',\n '9': 'sm:grid-rows-9',\n '10': 'sm:grid-rows-10',\n '11': 'sm:grid-rows-11',\n '12': 'sm:grid-rows-12',\n },\n md: {\n '1': 'md:grid-rows-1',\n '2': 'md:grid-rows-2',\n '3': 'md:grid-rows-3',\n '4': 'md:grid-rows-4',\n '5': 'md:grid-rows-5',\n '6': 'md:grid-rows-6',\n '7': 'md:grid-rows-7',\n '8': 'md:grid-rows-8',\n '9': 'md:grid-rows-9',\n '10': 'md:grid-rows-10',\n '11': 'md:grid-rows-11',\n '12': 'md:grid-rows-12',\n },\n lg: {\n '1': 'lg:grid-rows-1',\n '2': 'lg:grid-rows-2',\n '3': 'lg:grid-rows-3',\n '4': 'lg:grid-rows-4',\n '5': 'lg:grid-rows-5',\n '6': 'lg:grid-rows-6',\n '7': 'lg:grid-rows-7',\n '8': 'lg:grid-rows-8',\n '9': 'lg:grid-rows-9',\n '10': 'lg:grid-rows-10',\n '11': 'lg:grid-rows-11',\n '12': 'lg:grid-rows-12',\n },\n xl: {\n '1': 'xl:grid-rows-1',\n '2': 'xl:grid-rows-2',\n '3': 'xl:grid-rows-3',\n '4': 'xl:grid-rows-4',\n '5': 'xl:grid-rows-5',\n '6': 'xl:grid-rows-6',\n '7': 'xl:grid-rows-7',\n '8': 'xl:grid-rows-8',\n '9': 'xl:grid-rows-9',\n '10': 'xl:grid-rows-10',\n '11': 'xl:grid-rows-11',\n '12': 'xl:grid-rows-12',\n },\n '2xl': {\n '1': '2xl:grid-rows-1',\n '2': '2xl:grid-rows-2',\n '3': '2xl:grid-rows-3',\n '4': '2xl:grid-rows-4',\n '5': '2xl:grid-rows-5',\n '6': '2xl:grid-rows-6',\n '7': '2xl:grid-rows-7',\n '8': '2xl:grid-rows-8',\n '9': '2xl:grid-rows-9',\n '10': '2xl:grid-rows-10',\n '11': '2xl:grid-rows-11',\n '12': '2xl:grid-rows-12',\n },\n },\n defaultVariants: {\n base: '1',\n },\n});\n\nexport const gapStyles = tv({\n variants: {\n base: {\n '0': 'gap-0',\n '1': 'gap-1',\n '2': 'gap-2',\n '4': 'gap-4',\n '6': 'gap-6',\n '8': 'gap-8',\n },\n sm: {\n '0': 'sm:gap-0',\n '1': 'sm:gap-1',\n '2': 'sm:gap-2',\n '4': 'sm:gap-4',\n '6': 'sm:gap-6',\n '8': 'sm:gap-8',\n },\n md: {\n '0': 'md:gap-0',\n '1': 'md:gap-1',\n '2': 'md:gap-2',\n '4': 'md:gap-4',\n '6': 'md:gap-6',\n '8': 'md:gap-8',\n },\n lg: {\n '0': 'lg:gap-0',\n '1': 'lg:gap-1',\n '2': 'lg:gap-2',\n '4': 'lg:gap-4',\n '6': 'lg:gap-6',\n '8': 'lg:gap-8',\n },\n xl: {\n '0': 'xl:gap-0',\n '1': 'xl:gap-1',\n '2': 'xl:gap-2',\n '4': 'xl:gap-4',\n '6': 'xl:gap-6',\n '8': 'xl:gap-8',\n },\n '2xl': {\n '0': '2xl:gap-0',\n '1': '2xl:gap-1',\n '2': '2xl:gap-2',\n '4': '2xl:gap-4',\n '6': '2xl:gap-6',\n '8': '2xl:gap-8',\n },\n },\n defaultVariants: {\n base: '0',\n },\n});\n\nexport const justifyStyles = tv({\n variants: {\n base: {\n start: 'justify-items-start',\n center: 'justify-items-center',\n end: 'justify-items-end',\n between: 'justify-items-between',\n around: 'justify-items-around',\n evenly: 'justify-items-evenly',\n },\n sm: {\n start: 'sm:justify-items-start',\n center: 'sm:justify-items-center',\n end: 'sm:justify-items-end',\n between: 'sm:justify-items-between',\n around: 'sm:justify-items-around',\n evenly: 'sm:justify-items-evenly',\n },\n md: {\n start: 'md:justify-items-start',\n center: 'md:justify-items-center',\n end: 'md:justify-items-end',\n between: 'md:justify-items-between',\n around: 'md:justify-items-around',\n evenly: 'md:justify-items-evenly',\n },\n lg: {\n start: 'lg:justify-items-start',\n center: 'lg:justify-items-center',\n end: 'lg:justify-items-end',\n between: 'lg:justify-items-between',\n around: 'lg:justify-items-around',\n evenly: 'lg:justify-items-evenly',\n },\n xl: {\n start: 'xl:justify-items-start',\n center: 'xl:justify-items-center',\n end: 'xl:justify-items-end',\n between: 'xl:justify-items-between',\n around: 'xl:justify-items-around',\n evenly: 'xl:justify-items-evenly',\n },\n '2xl': {\n start: '2xl:justify-items-start',\n center: '2xl:justify-items-center',\n end: '2xl:justify-items-end',\n between: '2xl:justify-items-between',\n around: '2xl:justify-items-around',\n evenly: '2xl:justify-items-evenly',\n },\n },\n defaultVariants: {\n base: 'start',\n },\n});\n\nexport const itemsStyles = tv({\n variants: {\n base: {\n start: 'items-start',\n center: 'items-center',\n end: 'items-end',\n stretch: 'items-stretch',\n },\n sm: {\n start: 'sm:items-start',\n center: 'sm:items-center',\n end: 'sm:items-end',\n stretch: 'sm:items-stretch',\n },\n md: {\n start: 'md:items-start',\n center: 'md:items-center',\n end: 'md:items-end',\n stretch: 'md:items-stretch',\n },\n lg: {\n start: 'lg:items-start',\n center: 'lg:items-center',\n end: 'lg:items-end',\n stretch: 'lg:items-stretch',\n },\n xl: {\n start: 'xl:items-start',\n center: 'xl:items-center',\n end: 'xl:items-end',\n stretch: 'xl:items-stretch',\n },\n '2xl': {\n start: '2xl:items-start',\n center: '2xl:items-center',\n end: '2xl:items-end',\n stretch: '2xl:items-stretch',\n },\n },\n defaultVariants: {\n base: 'stretch',\n },\n});\n\nexport const minWStyles = tv({\n variants: {\n base: {\n '0': 'min-w-0',\n full: 'min-w-full',\n fit: 'min-w-fit',\n max: 'min-w-max',\n screen: 'min-w-screen',\n },\n sm: {\n '0': 'sm:min-w-0',\n full: 'sm:min-w-full',\n fit: 'sm:min-w-fit',\n max: 'sm:min-w-max',\n screen: 'sm:min-w-screen',\n },\n md: {\n '0': 'md:min-w-0',\n full: 'md:min-w-full',\n fit: 'md:min-w-fit',\n max: 'md:min-w-max',\n screen: 'md:min-w-screen',\n },\n lg: {\n '0': 'lg:min-w-0',\n full: 'lg:min-w-full',\n fit: 'lg:min-w-fit',\n max: 'lg:min-w-max',\n screen: 'lg:min-w-screen',\n },\n xl: {\n '0': 'xl:min-w-0',\n full: 'xl:min-w-full',\n fit: 'xl:min-w-fit',\n max: 'xl:min-w-max',\n screen: 'xl:min-w-screen',\n },\n '2xl': {\n '0': '2xl:min-w-0',\n full: '2xl:min-w-full',\n fit: '2xl:min-w-fit',\n max: '2xl:min-w-max',\n screen: '2xl:min-w-screen',\n },\n },\n defaultVariants: {\n base: '0',\n },\n});\n\nexport const minHStyles = tv({\n variants: {\n base: {\n '0': 'min-h-0',\n full: 'min-h-full',\n fit: 'min-h-fit',\n max: 'min-h-max',\n screen: 'min-h-screen',\n },\n sm: {\n '0': 'sm:min-h-0',\n full: 'sm:min-h-full',\n fit: 'sm:min-h-fit',\n max: 'sm:min-h-max',\n screen: 'sm:min-h-screen',\n },\n md: {\n '0': 'md:min-h-0',\n full: 'md:min-h-full',\n fit: 'md:min-h-fit',\n max: 'md:min-h-max',\n screen: 'md:min-h-screen',\n },\n lg: {\n '0': 'lg:min-h-0',\n full: 'lg:min-h-full',\n fit: 'lg:min-h-fit',\n max: 'lg:min-h-max',\n screen: 'lg:min-h-screen',\n },\n xl: {\n '0': 'xl:min-h-0',\n full: 'xl:min-h-full',\n fit: 'xl:min-h-fit',\n max: 'xl:min-h-max',\n screen: 'xl:min-h-screen',\n },\n '2xl': {\n '0': '2xl:min-h-0',\n full: '2xl:min-h-full',\n fit: '2xl:min-h-fit',\n max: '2xl:min-h-max',\n screen: '2xl:min-h-screen',\n },\n },\n defaultVariants: {\n base: '0',\n },\n});\n","import { get } from 'lodash-es';\nimport { twMerge } from 'tailwind-merge';\n\nimport {\n columnStyles,\n directionStyles,\n gapStyles,\n itemsStyles,\n justifyStyles,\n minHStyles,\n minWStyles,\n rowStyles,\n} from './grid.styles';\nimport {\n type ColumnStyles,\n type DirectionStyles,\n type GapStyles,\n type GridComponentLayoutOptions,\n type ItemsStyles,\n type JustifyStyles,\n type MinHStyles,\n type MinWStyles,\n type RowStyles,\n} from './types';\n\nexport function modelGridLayout(payload: GridComponentLayoutOptions): string {\n const gridColumnStyles: ColumnStyles = {\n base: get(payload, ['columns', 'base'], get(payload, ['columns'])),\n sm: get(payload, ['columns', 'sm']),\n md: get(payload, ['columns', 'md']),\n lg: get(payload, ['columns', 'lg']),\n xl: get(payload, ['columns', 'xl']),\n '2xl': get(payload, ['columns', '2xl']),\n };\n\n const gridDirectionStyles: DirectionStyles = {\n base: get(payload, ['direction', 'base'], get(payload, ['direction'])),\n sm: get(payload, ['direction', 'sm']),\n md: get(payload, ['direction', 'md']),\n lg: get(payload, ['direction', 'lg']),\n xl: get(payload, ['direction', 'xl']),\n '2xl': get(payload, ['direction', '2xl']),\n };\n\n const gridGapStyles: GapStyles = {\n base: get(payload, ['gap', 'base'], get(payload, ['gap'])),\n sm: get(payload, ['gap', 'sm']),\n md: get(payload, ['gap', 'md']),\n lg: get(payload, ['gap', 'lg']),\n xl: get(payload, ['gap', 'xl']),\n '2xl': get(payload, ['gap', '2xl']),\n };\n\n const gridItemsStyles: ItemsStyles = {\n base: get(payload, ['items', 'base'], get(payload, ['items'])),\n sm: get(payload, ['items', 'sm']),\n md: get(payload, ['items', 'md']),\n lg: get(payload, ['items', 'lg']),\n xl: get(payload, ['items', 'xl']),\n '2xl': get(payload, ['items', '2xl']),\n };\n\n const gridJustifyStyles: JustifyStyles = {\n base: get(payload, ['justify', 'base'], get(payload, ['justify'])),\n sm: get(payload, ['justify', 'sm']),\n md: get(payload, ['justify', 'md']),\n lg: get(payload, ['justify', 'lg']),\n xl: get(payload, ['justify', 'xl']),\n '2xl': get(payload, ['justify', '2xl']),\n };\n\n const gridMinHStyles: MinHStyles = {\n base: get(payload, ['minH', 'base'], get(payload, ['minH'])),\n sm: get(payload, ['minH', 'sm']),\n md: get(payload, ['minH', 'md']),\n lg: get(payload, ['minH', 'lg']),\n xl: get(payload, ['minH', 'xl']),\n '2xl': get(payload, ['minH', '2xl']),\n };\n\n const gridMinWStyles: MinWStyles = {\n base: get(payload, ['minW', 'base'], get(payload, ['minW'])),\n sm: get(payload, ['minW', 'sm']),\n md: get(payload, ['minW', 'md']),\n lg: get(payload, ['minW', 'lg']),\n xl: get(payload, ['minW', 'xl']),\n '2xl': get(payload, ['minW', '2xl']),\n };\n\n const gridRowStyles: RowStyles = {\n base: get(payload, ['rows', 'base'], get(payload, ['rows'])),\n sm: get(payload, ['rows', 'sm']),\n md: get(payload, ['rows', 'md']),\n lg: get(payload, ['rows', 'lg']),\n xl: get(payload, ['rows', 'xl']),\n '2xl': get(payload, ['rows', '2xl']),\n };\n\n return twMerge(\n 'grid',\n columnStyles(gridColumnStyles),\n directionStyles(gridDirectionStyles),\n gapStyles(gridGapStyles),\n itemsStyles(gridItemsStyles),\n justifyStyles(gridJustifyStyles),\n minHStyles(gridMinHStyles),\n minWStyles(gridMinWStyles),\n rowStyles(gridRowStyles),\n );\n}\n","import { get } from 'lodash-es';\n\nexport enum ProgressiveImageStatusEnum {\n IDLE = 'idle',\n LOADED = 'loaded',\n ERROR = 'error',\n}\n\nexport interface ProgressiveImageOptions {\n src: string;\n preview?: string;\n fallback?: string;\n initialBlur?: number;\n transitionTime?: number;\n timingFunction?: string;\n}\n\nexport interface ProgressiveImageState {\n src: string;\n blur: number;\n status: ProgressiveImageStatusEnum;\n}\n\nconst createInitialState = (\n options: ProgressiveImageOptions,\n): ProgressiveImageState => ({\n src: get(options, ['preview'], options.preview ?? ''),\n blur: get(options, ['initialBlur'], 10),\n status: ProgressiveImageStatusEnum.IDLE,\n});\n\nconst resolveSuccess = (\n options: ProgressiveImageOptions,\n): ProgressiveImageState => ({\n src: options.src,\n blur: 0,\n status: ProgressiveImageStatusEnum.LOADED,\n});\n\nconst resolveError = (\n options: ProgressiveImageOptions,\n): ProgressiveImageState => ({\n src: get(options, ['fallback'], options.preview ?? ''),\n blur: 0,\n status: ProgressiveImageStatusEnum.ERROR,\n});\n\nexport type ProgressiveImageFactoryOptions = {\n status: ProgressiveImageStatusEnum;\n options: ProgressiveImageOptions;\n};\n\nexport const preloadImage = async (\n source: string,\n): Promise<ProgressiveImageStatusEnum> =>\n new Promise((resolve) => {\n const img = new Image();\n const cleanup = () => {\n img.removeEventListener('load', handleLoad);\n img.removeEventListener('error', handleError);\n };\n\n const handleLoad = () => {\n cleanup();\n resolve(ProgressiveImageStatusEnum.LOADED);\n };\n\n const handleError = () => {\n cleanup();\n resolve(ProgressiveImageStatusEnum.ERROR);\n };\n\n img.src = source;\n img.addEventListener('load', handleLoad, { once: true });\n img.addEventListener('error', handleError, { once: true });\n });\n\nexport const progressiveImageFactory = (\n payload: ProgressiveImageFactoryOptions,\n) => {\n const variantFactoryMap: Record<\n ProgressiveImageStatusEnum,\n (options: ProgressiveImageOptions) => ProgressiveImageState\n > = {\n [ProgressiveImageStatusEnum.ERROR]: resolveError,\n [ProgressiveImageStatusEnum.LOADED]: resolveSuccess,\n [ProgressiveImageStatusEnum.IDLE]: createInitialState,\n };\n return get(\n variantFactoryMap,\n [payload.status],\n createInitialState,\n )(payload.options);\n};\n","export enum ControlSizeEnum {\n XS = 'xs',\n SM = 'sm',\n DEFAULT = 'DEFAULT',\n MD = 'md',\n LG = 'lg',\n XL = 'xl',\n}\n","import { tv } from 'tailwind-variants';\n\nexport const focusRingStyles = tv({\n base: 'outline focus-visible:ring-2 focus-visible:ring-blue-400 outline-blue-400 dark:outline-blue-500 forced-colors:outline-[Highlight] outline-offset-2',\n variants: {\n isFocusVisible: {\n false: 'outline-0',\n true: 'outline-2',\n },\n },\n});\n","import { type VariantProps, tv } from 'tailwind-variants';\n\nimport { ControlSizeEnum } from '../../enums/controls.enum';\nimport { focusRingStyles } from './focusRing.styles';\n\n/**\n * Tailwind’s default scale:\n * • h-8 / h-10 / h-12 → 32 / 40 / 48 px tall (meets 32-px tah-target)\n * • px-3 / px-4 / px-5 → 12 / 16 / 20 px horizontal padding\n * • text-sm / text-base keep copy legible while matching Tailwind buttons\n */\nexport const controlCommonStyles = tv({\n extend: focusRingStyles,\n base: [\n 'rounded-md rounded',\n 'font-medium leading-5 text-sm',\n 'inline-flex items-center gah-2',\n 'border border-gray-300 dark:border-gray-500',\n 'bg-white dark:bg-gray-900 text-gray-800 dark:text-gray-300',\n 'outline-none transition-colors duration-150',\n ],\n variants: {\n base: {\n [ControlSizeEnum.XS]: 'h-8',\n [ControlSizeEnum.SM]: 'h-10',\n [ControlSizeEnum.DEFAULT]: 'h-12',\n [ControlSizeEnum.MD]: 'h-14',\n [ControlSizeEnum.LG]: 'h-16',\n [ControlSizeEnum.XL]: 'h-18',\n },\n sm: {\n [ControlSizeEnum.XS]: 'h-8',\n [ControlSizeEnum.SM]: 'h-10',\n [ControlSizeEnum.DEFAULT]: 'h-12',\n [ControlSizeEnum.MD]: 'h-14',\n [ControlSizeEnum.LG]: 'h-16',\n [ControlSizeEnum.XL]: 'h-18',\n },\n md: {\n [ControlSizeEnum.XS]: 'h-8',\n [ControlSizeEnum.SM]: 'h-10',\n [ControlSizeEnum.DEFAULT]: 'h-12',\n [ControlSizeEnum.MD]: 'h-14',\n [ControlSizeEnum.LG]: 'h-16',\n [ControlSizeEnum.XL]: 'h-18',\n },\n lg: {\n [ControlSizeEnum.XS]: 'h-8',\n [ControlSizeEnum.SM]: 'h-10',\n [ControlSizeEnum.DEFAULT]: 'h-12',\n [ControlSizeEnum.MD]: 'h-14',\n [ControlSizeEnum.LG]: 'h-16',\n [ControlSizeEnum.XL]: 'h-18',\n },\n xl: {\n [ControlSizeEnum.XS]: 'h-8',\n [ControlSizeEnum.SM]: 'h-10',\n [ControlSizeEnum.DEFAULT]: 'h-12',\n [ControlSizeEnum.MD]: 'h-14',\n [ControlSizeEnum.LG]: 'h-16',\n [ControlSizeEnum.XL]: 'h-18',\n },\n '2xl': {\n [ControlSizeEnum.XS]: 'h-8',\n [ControlSizeEnum.SM]: 'h-10',\n [ControlSizeEnum.DEFAULT]: 'h-12',\n [ControlSizeEnum.MD]: 'h-14',\n [ControlSizeEnum.LG]: 'h-16',\n [ControlSizeEnum.XL]: 'h-18',\n },\n disabled: {\n true: [\n 'bg-gray-100 dark:bg-gray-700 ',\n 'text-gray-400 border-gray-200 dark:border-gray-700',\n ],\n },\n },\n});\n\nexport type ControlCommonStylesProperties = VariantProps<\n typeof controlCommonStyles\n>;\n","import { tv } from 'tailwind-variants';\n\nconst baseCursorStyles = tv({\n base: 'cursor-pointer',\n variants: {\n loading: {\n true: 'cursor-progress',\n },\n disabled: {\n true: 'cursor-not-allowed',\n },\n },\n});\n\nexport const cursorStyles = <T>(payload: T): string =>\n baseCursorStyles(payload as unknown as Record<string, unknown>);\n","import { type VariantProps, tv } from 'tailwind-variants';\n\nimport { SpaceScaleOptionsEnum } from '../../enums/spacing.enum';\n\nexport const fluidSizeStyles = tv({\n variants: {\n base: {\n [SpaceScaleOptionsEnum.X2S]: 'p-4',\n [SpaceScaleOptionsEnum.XS]: 'p-6',\n [SpaceScaleOptionsEnum.SM]: 'p-8',\n [SpaceScaleOptionsEnum.DEFAULT]: 'p-10',\n [SpaceScaleOptionsEnum.MD]: 'p-12',\n [SpaceScaleOptionsEnum.LG]: 'p-14',\n [SpaceScaleOptionsEnum.XL]: 'p-16',\n [SpaceScaleOptionsEnum.X2L]: 'p-18',\n [SpaceScaleOptionsEnum.X3L]: 'p-20',\n [SpaceScaleOptionsEnum.X4L]: 'p-22',\n [SpaceScaleOptionsEnum.X5L]: 'p-24',\n [SpaceScaleOptionsEnum.X6L]: 'p-26',\n },\n sm: {\n [SpaceScaleOptionsEnum.X2S]: 'sm:p-4',\n [SpaceScaleOptionsEnum.XS]: 'sm:p-6',\n [SpaceScaleOptionsEnum.SM]: 'sm:p-8',\n [SpaceScaleOptionsEnum.DEFAULT]: 'sm:p-10',\n [SpaceScaleOptionsEnum.MD]: 'sm:p-12',\n [SpaceScaleOptionsEnum.LG]: 'sm:p-14',\n [SpaceScaleOptionsEnum.XL]: 'sm:p-16',\n [SpaceScaleOptionsEnum.X2L]: 'sm:p-18',\n [SpaceScaleOptionsEnum.X3L]: 'sm:p-20',\n [SpaceScaleOptionsEnum.X4L]: 'sm:p-22',\n [SpaceScaleOptionsEnum.X5L]: 'sm:p-24',\n [SpaceScaleOptionsEnum.X6L]: 'sm:p-26',\n },\n md: {\n [SpaceScaleOptionsEnum.X2S]: 'md:p-4',\n [SpaceScaleOptionsEnum.XS]: 'md:p-6',\n [SpaceScaleOptionsEnum.SM]: 'md:p-8',\n [SpaceScaleOptionsEnum.DEFAULT]: 'md:p-10',\n [SpaceScaleOptionsEnum.MD]: 'md:p-12',\n [SpaceScaleOptionsEnum.LG]: 'md:p-14',\n [SpaceScaleOptionsEnum.XL]: 'md:p-16',\n [SpaceScaleOptionsEnum.X2L]: 'md:p-18',\n [SpaceScaleOptionsEnum.X3L]: 'md:p-20',\n [SpaceScaleOptionsEnum.X4L]: 'md:p-22',\n [SpaceScaleOptionsEnum.X5L]: 'md:p-24',\n [SpaceScaleOptionsEnum.X6L]: 'md:p-26',\n },\n lg: {\n [SpaceScaleOptionsEnum.X2S]: 'lg:p-4',\n [SpaceScaleOptionsEnum.XS]: 'lg:p-6',\n [SpaceScaleOptionsEnum.SM]: 'lg:p-8',\n [SpaceScaleOptionsEnum.DEFAULT]: 'lg:p-10',\n [SpaceScaleOptionsEnum.MD]: 'lg:p-12',\n [SpaceScaleOptionsEnum.LG]: 'lg:p-14',\n [SpaceScaleOptionsEnum.XL]: 'lg:p-16',\n [SpaceScaleOptionsEnum.X2L]: 'lg:p-18',\n [SpaceScaleOptionsEnum.X3L]: 'lg:p-20',\n [SpaceScaleOptionsEnum.X4L]: 'lg:p-22',\n [SpaceScaleOptionsEnum.X5L]: 'lg:p-24',\n [SpaceScaleOptionsEnum.X6L]: 'lg:p-26',\n },\n xl: {\n [SpaceScaleOptionsEnum.X2S]: 'xl:p-4',\n [SpaceScaleOptionsEnum.XS]: 'xl:p-6',\n [SpaceScaleOptionsEnum.SM]: 'xl:p-8',\n [SpaceScaleOptionsEnum.DEFAULT]: 'xl:p-10',\n [SpaceScaleOptionsEnum.MD]: 'xl:p-12',\n [SpaceScaleOptionsEnum.LG]: 'xl:p-14',\n [SpaceScaleOptionsEnum.XL]: 'xl:p-16',\n [SpaceScaleOptionsEnum.X2L]: 'xl:p-18',\n [SpaceScaleOptionsEnum.X3L]: 'xl:p-20',\n [SpaceScaleOptionsEnum.X4L]: 'xl:p-22',\n [SpaceScaleOptionsEnum.X5L]: 'xl:p-24',\n [SpaceScaleOptionsEnum.X6L]: 'xl:p-26',\n },\n '2xl': {\n [SpaceScaleOptionsEnum.X2S]: '2xl:p-4',\n [SpaceScaleOptionsEnum.XS]: '2xl:p-6',\n [SpaceScaleOptionsEnum.SM]: '2xl:p-8',\n [SpaceScaleOptionsEnum.DEFAULT]: '2xl:p-10',\n [SpaceScaleOptionsEnum.MD]: '2xl:p-12',\n [SpaceScaleOptionsEnum.LG]: '2xl:p-14',\n [SpaceScaleOptionsEnum.XL]: '2xl:p-16',\n [SpaceScaleOptionsEnum.X2L]: '2xl:p-18',\n [SpaceScaleOptionsEnum.X3L]: '2xl:p-20',\n [SpaceScaleOptionsEnum.X4L]: '2xl:p-22',\n [SpaceScaleOptionsEnum.X5L]: '2xl:p-24',\n [SpaceScaleOptionsEnum.X6L]: '2xl:p-26',\n },\n },\n});\n\nexport type FluidSizeProperties = VariantProps<typeof fluidSizeStyles>;\n","import { tv } from 'tailwind-variants';\n\nexport const typographySizeStyles = tv({\n variants: {\n base: {\n xs: 'text-xs',\n sm: 'text-sm',\n caption: 'text-caption',\n base: 'text-base',\n lg: 'text-lg',\n xl: 'text-xl',\n '2xl': 'text-2xl',\n '3xl': 'text-3xl',\n '4xl': 'text-4xl',\n '5xl': 'text-5xl',\n '6xl': 'text-6xl',\n '7xl': 'text-7xl',\n '8xl': 'text-8xl',\n '9xl': 'text-9xl',\n },\n sm: {\n xs: 'sm:text-xs',\n sm: 'sm:text-sm',\n caption: 'sm:text-caption',\n base: 'sm:text-base',\n lg: 'sm:text-lg',\n xl: 'sm:text-xl',\n '2xl': 'sm:text-2xl',\n '3xl': 'sm:text-3xl',\n '4xl': 'sm:text-4xl',\n '5xl': 'sm:text-5xl',\n '6xl': 'sm:text-6xl',\n '7xl': 'sm:text-7xl',\n '8xl': 'sm:text-8xl',\n '9xl': 'sm:text-9xl',\n },\n md: {\n xs: 'md:text-xs',\n sm: 'md:text-sm',\n caption: 'md:text-caption',\n base: 'md:text-base',\n lg: 'md:text-lg',\n xl: 'md:text-xl',\n '2xl': 'md:text-2xl',\n '3xl': 'md:text-3xl',\n '4xl': 'md:text-4xl',\n '5xl': 'md:text-5xl',\n '6xl': 'md:text-6xl',\n '7xl': 'md:text-7xl',\n '8xl': 'md:text-8xl',\n '9xl': 'md:text-9xl',\n },\n lg: {\n xs: 'lg:text-xs',\n sm: 'lg:text-sm',\n caption: 'lg:text-caption',\n base: 'lg:text-base',\n lg: 'lg:text-lg',\n xl: 'lg:text-xl',\n '2xl': 'lg:text-2xl',\n '3xl': 'lg:text-3xl',\n '4xl': 'lg:text-4xl',\n '5xl': 'lg:text-5xl',\n '6xl': 'lg:text-6xl',\n '7xl': 'lg:text-7xl',\n '8xl': 'lg:text-8xl',\n '9xl': 'lg:text-9xl',\n },\n xl: {\n xs: 'xl:text-xs',\n sm: 'xl:text-sm',\n caption: 'xl:text-caption',\n base: 'xl:text-base',\n lg: 'xl:text-lg',\n xl: 'xl:text-xl',\n '2xl': 'xl:text-2xl',\n '3xl': 'xl:text-3xl',\n '4xl': 'xl:text-4xl',\n '5xl': 'xl:text-5xl',\n '6xl': 'xl:text-6xl',\n '7xl': 'xl:text-7xl',\n '8xl': 'xl:text-8xl',\n '9xl': 'xl:text-9xl',\n },\n '2xl': {\n xs: '2xl:text-xs',\n sm: '2xl:text-sm',\n caption: '2xl:text-caption',\n base: '2xl:text-base',\n lg: '2xl:text-lg',\n xl: '2xl:text-xl',\n '2xl': '2xl:text-2xl',\n '3xl': '2xl:text-3xl',\n '4xl': '2xl:text-4xl',\n '5xl': '2xl:text-5xl',\n '6xl': '2xl:text-6xl',\n '7xl': '2xl:text-7xl',\n '8xl': '2xl:text-8xl',\n '9xl': '2xl:text-9xl',\n },\n },\n});\n\nexport const weightStyles = tv({\n variants: {\n base: {\n thin: 'font-thin',\n extralight: 'font-extralight',\n light: 'font-light',\n normal: 'font-normal',\n medium: 'font-medium',\n semibold: 'font-semibold',\n bold: 'font-bold',\n extrabold: 'font-extrabold',\n black: 'font-black',\n },\n sm: {\n thin: 'sm:font-thin',\n extralight: 'sm:font-extralight',\n light: 'sm:font-light',\n normal: 'sm:font-normal',\n medium: 'sm:font-medium',\n semibold: 'sm:font-semibold',\n bold: 'sm:font-bold',\n extrabold: 'sm:font-extrabold',\n black: 'sm:font-black',\n },\n md: {\n thin: 'md:font-thin',\n extralight: 'md:font-extralight',\n light: 'md:font-light',\n normal: 'md:font-normal',\n medium: 'md:font-medium',\n semibold: 'md:font-semibold',\n bold: 'md:font-bold',\n extrabold: 'md:font-extrabold',\n black: 'md:font-black',\n },\n lg: {\n thin: 'lg:font-thin',\n extralight: 'lg:font-extralight',\n light: 'lg:font-light',\n normal: 'lg:font-normal',\n medium: 'lg:font-medium',\n semibold: 'lg:font-semibold',\n bold: 'lg:font-bold',\n extrabold: 'lg:font-extrabold',\n black: 'lg:font-black',\n },\n xl: {\n thin: 'xl:font-thin',\n extralight: 'xl:font-extralight',\n light: 'xl:font-light',\n normal: 'xl:font-normal',\n medium: 'xl:font-medium',\n semibold: 'xl:font-semibold',\n bold: 'xl:font-bold',\n extrabold: 'xl:font-extrabold',\n black: 'xl:font-black',\n },\n '2xl': {\n thin: '2xl:font-thin',\n extralight: '2xl:font-extralight',\n light: '2xl:font-light',\n normal: '2xl:font-normal',\n medium: '2xl:font-medium',\n semibold: '2xl:font-semibold',\n bold: '2xl:font-bold',\n extrabold: '2xl:font-extrabold',\n black: '2xl:font-black',\n },\n },\n});\n\nexport const leadingStyles = tv({\n variants: {\n base: {\n none: 'leading-none',\n tight: 'leading-tight',\n snug: 'leading-snug',\n normal: 'leading-normal',\n relaxed: 'leading-relaxed',\n loose: 'leading-loose',\n },\n sm: {\n none: 'sm:leading-none',\n tight: 'sm:leading-tight',\n snug: 'sm:leading-snug',\n normal: 'sm:leading-normal',\n relaxed: 'sm:leading-relaxed',\n loose: 'sm:leading-loose',\n },\n md: {\n none: 'md:leading-none',\n tight: 'md:leading-tight',\n snug: 'md:leading-snug',\n normal: 'md:leading-normal',\n relaxed: 'md:leading-relaxed',\n loose: 'md:leading-loose',\n },\n lg: {\n none: 'lg:leading-none',\n tight: 'lg:leading-tight',\n snug: 'lg:leading-snug',\n normal: 'lg:leading-normal',\n relaxed: 'lg:leading-relaxed',\n loose: 'lg:leading-loose',\n },\n xl: {\n none: 'xl:leading-none',\n tight: 'xl:leading-tight',\n snug: 'xl:leading-snug',\n normal: 'xl:leading-normal',\n relaxed: 'xl:leading-relaxed',\n loose: 'xl:leading-loose',\n },\n '2xl': {\n none: '2xl:leading-none',\n tight: '2xl:leading-tight',\n snug: '2xl:leading-snug',\n normal: '2xl:leading-normal',\n relaxed: '2xl:leading-relaxed',\n loose: '2xl:leading-loose',\n },\n },\n});\n\nexport const alignStyles = tv({\n variants: {\n base: {\n left: 'text-left',\n center: 'text-center',\n right: 'text-right',\n justify: 'text-justify',\n },\n sm: {\n left: 'sm:text-left',\n center: 'sm:text-center',\n right: 'sm:text-right',\n justify: 'sm:text-justify',\n },\n md: {\n left: 'md:text-left',\n center: 'md:text-center',\n right: 'md:text-right',\n justify: 'md:text-justify',\n },\n lg: {\n left: 'lg:text-left',\n center: 'lg:text-center',\n right: 'lg:text-right',\n justify: 'lg:text-justify',\n },\n xl: {\n left: 'xl:text-left',\n center: 'xl:text-center',\n right: 'xl:text-right',\n justify: 'xl:text-justify',\n },\n '2xl': {\n left: '2xl:text-left',\n center: '2xl:text-center',\n right: '2xl:text-right',\n justify: '2xl:text-justify',\n },\n },\n});\n\nexport const italicStyles = tv({\n variants: { italic: { true: 'italic', false: 'not-italic' } },\n});\n","import type { TypographyLayoutOptions } from '../types';\n\nexport type ComposeLabelOptions = TypographyLayoutOptions;\n\nexport function composeLabel(\n properties: TypographyLayoutOptions,\n): TypographyLayoutOptions & { as: 'label' } {\n return {\n ...properties,\n as: 'label',\n size: 'caption',\n weight: 'bold',\n leading: 'tight',\n };\n}\n","import { get } from 'lodash-es';\nimport { twMerge } from 'tailwind-merge';\n\nimport { type TypographyLayoutOptions } from './types';\nimport {\n alignStyles,\n italicStyles,\n leadingStyles,\n typographySizeStyles,\n weightStyles,\n} from './typography.styles';\n\nexport function modelTypography(payload: TypographyLayoutOptions): string {\n const { italic, className } = payload;\n\n const alignment = {\n base: get(payload, ['align', 'base'], get(payload, ['align'])),\n sm: get(payload, ['align', 'sm']),\n md: get(payload, ['align', 'md']),\n lg: get(payload, ['align', 'lg']),\n xl: get(payload, ['align', 'xl']),\n '2xl': get(payload, ['align', '2xl']),\n };\n\n const size = {\n base: get(payload, ['size', 'base'], get(payload, ['size'])),\n sm: get(payload, ['size', 'sm']),\n md: get(payload, ['size', 'md']),\n lg: get(payload, ['size', 'lg']),\n xl: get(payload, ['size', 'xl']),\n '2xl': get(payload, ['size', '2xl']),\n };\n\n const weight = {\n base: get(payload, ['weight', 'base'], get(payload, ['weight'])),\n sm: get(payload, ['weight', 'sm']),\n md: get(payload, ['weight', 'md']),\n lg: get(payload, ['weight', 'lg']),\n xl: get(payload, ['weight', 'xl']),\n '2xl': get(payload, ['weight', '2xl']),\n };\n\n const leading = {\n base: get(payload, ['leading', 'base'], get(payload, ['leading'])),\n sm: get(payload, ['leading', 'sm']),\n md: get(payload, ['leading', 'md']),\n lg: get(payload, ['leading', 'lg']),\n xl: get(payload, ['leading', 'xl']),\n '2xl': get(payload, ['leading', '2xl']),\n };\n return twMerge(\n className,\n 'text-gray-800 dark:text-gray-200',\n alignStyles(alignment),\n italicStyles({ italic }),\n typographySizeStyles(size),\n weightStyles(weight),\n leadingStyles(leading),\n );\n}\n","import { type VariantProps, tv } from 'tailwind-variants';\n\nimport { SpaceScaleOptionsEnum } from '../../enums/spacing.enum';\n\nexport const horizontalSpacingStyles = tv({\n variants: {\n base: {\n [SpaceScaleOptionsEnum.X2S]: 'px-1',\n [SpaceScaleOptionsEnum.XS]: 'px-1.5',\n [SpaceScaleOptionsEnum.SM]: 'px-2',\n [SpaceScaleOptionsEnum.DEFAULT]: 'px-4',\n [SpaceScaleOptionsEnum.MD]: 'px-6',\n [SpaceScaleOptionsEnum.LG]: 'px-8',\n [SpaceScaleOptionsEnum.XL]: 'px-12',\n [SpaceScaleOptionsEnum.X2L]: 'px-14',\n [SpaceScaleOptionsEnum.X3L]: 'px-16',\n [SpaceScaleOptionsEnum.X4L]: 'px-18',\n [SpaceScaleOptionsEnum.X5L]: 'px-20',\n [SpaceScaleOptionsEnum.X6L]: 'px-22',\n },\n\n sm: {\n [SpaceScaleOptionsEnum.X2S]: 'sm:px-1',\n [SpaceScaleOptionsEnum.XS]: 'sm:px-1.5',\n [SpaceScaleOptionsEnum.SM]: 'sm:px-2',\n [SpaceScaleOptionsEnum.DEFAULT]: 'sm:px-4',\n [SpaceScaleOptionsEnum.MD]: 'sm:px-6',\n [SpaceScaleOptionsEnum.LG]: 'sm:px-8',\n [SpaceScaleOptionsEnum.XL]: 'sm:px-12',\n [SpaceScaleOptionsEnum.X2L]: 'sm:px-14',\n [SpaceScaleOptionsEnum.X3L]: 'sm:px-16',\n [SpaceScaleOptionsEnum.X4L]: 'sm:px-18',\n [SpaceScaleOptionsEnum.X5L]: 'sm:px-20',\n [SpaceScaleOptionsEnum.X6L]: 'sm:px-22',\n },\n\n md: {\n [SpaceScaleOptionsEnum.X2S]: 'md:px-1',\n [SpaceScaleOptionsEnum.XS]: 'md:px-1.5',\n [SpaceScaleOptionsEnum.SM]: 'md:px-2',\n [SpaceScaleOptionsEnum.DEFAULT]: 'md:px-4',\n [SpaceScaleOptionsEnum.MD]: 'md:px-6',\n [SpaceScaleOptionsEnum.LG]: 'md:px-8',\n [SpaceScaleOptionsEnum.XL]: 'md:px-12',\n [SpaceScaleOptionsEnum.X2L]: 'md:px-14',\n [SpaceScaleOptionsEnum.X3L]: 'md:px-16',\n [SpaceScaleOptionsEnum.X4L]: 'md:px-18',\n [SpaceScaleOptionsEnum.X5L]: 'md:px-20',\n [SpaceScaleOptionsEnum.X6L]: 'md:px-22',\n },\n\n lg: {\n [SpaceScaleOptionsEnum.X2S]: 'lg:px-1',\n [SpaceScaleOptionsEnum.XS]: 'lg:px-1.5',\n [SpaceScaleOptionsEnum.SM]: 'lg:px-2',\n [SpaceScaleOptionsEnum.DEFAULT]: 'lg:px-4',\n [SpaceScaleOptionsEnum.MD]: 'lg:px-6',\n [SpaceScaleOptionsEnum.LG]: 'lg:px-8',\n [SpaceScaleOptionsEnum.XL]: 'lg:px-12',\n [SpaceScaleOptionsEnum.X2L]: 'lg:px-14',\n [SpaceScaleOptionsEnum.X3L]: 'lg:px-16',\n [SpaceScaleOptionsEnum.X4L]: 'lg:px-18',\n [SpaceScaleOptionsEnum.X5L]: 'lg:px-20',\n [SpaceScaleOptionsEnum.X6L]: 'lg:px-22',\n },\n\n xl: {\n [SpaceScaleOptionsEnum.X2S]: 'xl:px-1',\n [SpaceScaleOptionsEnum.XS]: 'xl:px-1.5',\n [SpaceScaleOptionsEnum.SM]: 'xl:px-2',\n [SpaceScaleOptionsEnum.DEFAULT]: 'xl:px-4',\n [SpaceScaleOptionsEnum.MD]: 'xl:px-6',\n [SpaceScaleOptionsEnum.LG]: 'xl:px-8',\n [SpaceScaleOptionsEnum.XL]: 'xl:px-12',\n [SpaceScaleOptionsEnum.X2L]: 'xl:px-14',\n [SpaceScaleOptionsEnum.X3L]: 'xl:px-16',\n [SpaceScaleOptionsEnum.X4L]: 'xl:px-18',\n [SpaceScaleOptionsEnum.X5L]: 'xl:px-20',\n [SpaceScaleOptionsEnum.X6L]: 'xl:px-22',\n },\n\n '2xl': {\n [SpaceScaleOptionsEnum.X2S]: '2xl:px-1',\n [SpaceScaleOptionsEnum.XS]: '2xl:px-1.5',\n [SpaceScaleOptionsEnum.SM]: '2xl:px-2',\n [SpaceScaleOptionsEnum.DEFAULT]: '2xl:px-4',\n [SpaceScaleOptionsEnum.MD]: '2xl:px-6',\n [SpaceScaleOptionsEnum.LG]: '2xl:px-8',\n [SpaceScaleOptionsEnum.XL]: '2xl:px-12',\n [SpaceScaleOptionsEnum.X2L]: '2xl:px-14',\n [SpaceScaleOptionsEnum.X3L]: '2xl:px-16',\n [SpaceScaleOptionsEnum.X4L]: '2xl:px-18',\n [SpaceScaleOptionsEnum.X5L]: '2xl:px-20',\n [SpaceScaleOptionsEnum.X6L]: '2xl:px-22',\n },\n },\n});\n\nexport type HorizontalSpacingStyles = VariantProps<\n typeof horizontalSpacingStyles\n>;\n","import { get } from 'lodash-es';\nimport { twMerge } from 'tailwind-merge';\n\nimport { BreakpointsEnum } from '../../enums/breakpoints.enum';\nimport { ControlSizeEnum } from '../../enums/controls.enum';\nimport { modelTypography } from '../Typography';\nimport { ControlCommonStylesProperties } from '../common';\nimport { horizontalSpacingStyles } from '../common/horizontalSpacingStyles';\nimport { baseButtonStyles } from './button.styles';\n\nexport interface ButtonLayoutOptions extends ControlCommonStylesProperties {\n className?: string;\n}\n\nexport function modelButton(payload: ButtonLayoutOptions): string {\n const { className } = payload;\n\n const size = {\n [BreakpointsEnum.BASE]: get(\n payload,\n ['size', BreakpointsEnum.BASE],\n get(payload, ['size'], ControlSizeEnum.DEFAULT),\n ),\n [BreakpointsEnum.SM]: get(payload, ['size', BreakpointsEnum.SM]),\n [BreakpointsEnum.MD]: get(payload, ['size', BreakpointsEnum.MD]),\n [BreakpointsEnum.LG]: get(payload, ['size', BreakpointsEnum.LG]),\n [BreakpointsEnum.XL]: get(payload, ['size', BreakpointsEnum.XL]),\n [BreakpointsEnum.X2L]: get(payload, ['size', BreakpointsEnum.X2L]),\n };\n\n return twMerge(\n className,\n baseButtonStyles({\n ...payload,\n ...size,\n }),\n modelTypography({ size }),\n horizontalSpacingStyles({ ...size }),\n );\n}\n","import { twMerge } from 'tailwind-merge';\nimport { tv } from 'tailwind-variants';\n\nimport { controlCommonStyles } from '../common';\nimport { ButtonLayoutOptions, modelButton } from './modelButton';\nimport { type ButtonVariantToken } from './types';\n\nconst primary: ButtonVariantToken = {\n bg: 'bg-[GreenYellow] dark:bg-[Black]',\n text: 'text-gray-800 dark:text-[GreenYellow]',\n hover:\n 'hover:bg-[Black] dark:hover:bg-[GreenYellow] hover:text-[GreenYellow] dark:hover:text-[Black]',\n pressed: 'pressed:text-[GreenYellow]/50',\n};\n\nconst secondary: ButtonVariantToken = {\n text: 'text-gray-800 dark:text-gray-300',\n bg: 'bg-gray-100',\n hover: 'hover:bg-gray-200',\n pressed: 'pressed:bg-gray-300',\n darkText: 'dark:text-gray-100',\n darkBg: 'dark:bg-gray-600',\n darkHover: 'dark:hover:bg-gray-500',\n darkPressed: 'dark:pressed:bg-gray-400',\n};\n\nconst destructive: ButtonVariantToken = {\n text: 'text-white',\n bg: 'bg-red-700',\n hover: 'hover:bg-red-800',\n pressed: 'pressed:bg-red-900',\n};\n\nconst success: ButtonVariantToken = {\n text: 'text-white',\n bg: 'bg-emerald-300',\n hover: 'hover:bg-green-800',\n pressed: 'pressed:bg-green-900',\n};\n\nconst icon: ButtonVariantToken = {\n text: 'text-gray-600',\n hover: 'hover:bg-black/5',\n pressed: 'pressed:bg-black/10',\n};\n\nconst primaryGhost: ButtonVariantToken = {\n text: 'text-blue-600',\n bg: 'bg-transparent',\n hover: 'hover:bg-blue-50',\n pressed: 'pressed:bg-blue-100',\n};\n\nconst secondaryGhost: ButtonVariantToken = {\n text: 'text-gray-800',\n bg: 'bg-transparent',\n hover: 'hover:bg-gray-100',\n pressed: 'pressed:bg-gray-200',\n};\n\nconst destructiveGhost: ButtonVariantToken = {\n text: 'text-red-700',\n bg: 'bg-transparent',\n hover: 'hover:bg-red-50',\n pressed: 'pressed:bg-red-100',\n};\n\nconst successGhost: ButtonVariantToken = {\n text: 'text-green-700',\n bg: 'bg-transparent',\n hover: 'hover:bg-green-50',\n pressed: 'pressed:bg-green-100',\n};\n\nconst iconGhost: ButtonVariantToken = {\n text: 'text-gray-600',\n hover: 'hover:bg-black/5',\n pressed: 'pressed:bg-black/10',\n};\n\nexport const baseButtonStyles = tv({\n extend: controlCommonStyles,\n base: 'block relative whitespace-nowrap text-center rounded-[12px]',\n variants: {\n intent: {\n primary: twMerge(Object.values(primary)),\n secondary: twMerge(Object.values(secondary)),\n destructive: twMerge(Object.values(destructive)),\n success: twMerge(Object.values(success)),\n icon: twMerge(Object.values(icon)),\n },\n fullWidth: {\n true: 'w-full',\n false: '',\n },\n },\n compoundVariants: [\n {\n intent: 'primary',\n ghost: true,\n class: twMerge(Object.values(primaryGhost)),\n },\n {\n intent: 'secondary',\n ghost: true,\n class: twMerge(Object.values(secondaryGhost)),\n },\n {\n intent: 'destructive',\n ghost: true,\n class: twMerge(Object.values(destructiveGhost)),\n },\n {\n intent: 'success',\n ghost: true,\n class: twMerge(Object.values(successGhost)),\n },\n {\n intent: 'icon',\n ghost: true,\n class: twMerge(Object.values(iconGhost)),\n },\n ],\n defaultVariants: {\n intent: 'primary',\n ghost: false,\n },\n});\n\nexport const buttonStyles = (payload: unknown): string =>\n twMerge(modelButton(payload as ButtonLayoutOptions));\n","/* eslint import/order:0 */\n/**\n *\n * TODO: fix mismatch between ESLint sort order still\n */\nimport { get } from 'lodash-es';\n\nimport { type A11yButtonOptions, type ButtonVariants } from './types.ts';\n\nexport type A11yButtonProperties = {\n 'aria-disabled'?: HTMLElementTagNameMap['button']['disabled'];\n onClick?: A11yButtonOptions['onClick'];\n onKeyDown?: HTMLElementTagNameMap['button']['onkeydown'];\n variant?: ButtonVariants;\n fullWidth?: boolean;\n size?: 'sm' | 'md' | 'lg';\n disabled?: boolean;\n id?: string;\n};\n\nexport function createA11yButtonProperties({\n onClick,\n disabled = false,\n ...restProperties\n}: A11yButtonOptions): A11yButtonProperties {\n const onKeyDown: HTMLElementTagNameMap['button']['onkeydown'] = (\n keyboardEvent: KeyboardEvent,\n ) => {\n if (keyboardEvent.key === 'Enter' || keyboardEvent.key === ' ') {\n keyboardEvent.preventDefault();\n onClick?.(keyboardEvent);\n }\n };\n\n return {\n ...restProperties,\n type: get(restProperties, ['type'], 'button'),\n role: get(restProperties, ['role'], 'button'),\n tabIndex: disabled ? -1 : 0,\n 'aria-disabled': disabled || undefined,\n ...(disabled === undefined && {\n onClick,\n onKeyDown,\n }),\n } as A11yButtonProperties;\n}\n","import { get } from 'lodash-es';\nimport { twMerge } from 'tailwind-merge';\n\nimport { BreakpointsEnum } from '../enums/breakpoints.enum.ts';\nimport { SpaceScaleOptionsEnum } from '../enums/spacing.enum.ts';\n\nexport type SpaceProjection = {\n padding: string;\n gap: string;\n flow: string;\n radius: string;\n};\n\nexport const SpacingRulesMap: Record<SpaceScaleOptionsEnum, SpaceProjection> = {\n [SpaceScaleOptionsEnum.X2S]: {\n padding: 'p-1',\n gap: 'gap-1',\n flow: 'space-y-1',\n radius: 'rounded-sm',\n },\n [SpaceScaleOptionsEnum.XS]: {\n padding: 'p-1.5',\n gap: 'gap-1.5',\n flow: 'space-y-1.5',\n radius: 'rounded-sm',\n },\n [SpaceScaleOptionsEnum.SM]: {\n padding: 'p-2',\n gap: 'gap-2',\n flow: 'space-y-2',\n radius: 'rounded-md',\n },\n [SpaceScaleOptionsEnum.DEFAULT]: {\n padding: 'p-3',\n gap: 'gap-3',\n flow: 'space-y-3',\n radius: 'rounded-md',\n },\n [SpaceScaleOptionsEnum.MD]: {\n padding: 'p-5',\n gap: 'gap-4',\n flow: 'space-y-4',\n radius: 'rounded-lg',\n },\n [SpaceScaleOptionsEnum.LG]: {\n padding: 'p-6',\n gap: 'gap-5',\n flow: 'space-y-5',\n radius: 'rounded-lg',\n },\n [SpaceScaleOptionsEnum.XL]: {\n padding: 'p-8',\n gap: 'gap-6',\n flow: 'space-y-6',\n radius: 'rounded-xl',\n },\n [SpaceScaleOptionsEnum.X2L]: {\n padding: 'p-10',\n gap: 'gap-8',\n flow: 'space-y-8',\n radius: 'rounded-xl',\n },\n [SpaceScaleOptionsEnum.X3L]: {\n padding: 'p-12',\n gap: 'gap-10',\n flow: 'space-y-10',\n radius: 'rounded-2xl',\n },\n [SpaceScaleOptionsEnum.X4L]: {\n padding: 'p-16',\n gap: 'gap-12',\n flow: 'space-y-12',\n radius: 'rounded-2xl',\n },\n [SpaceScaleOptionsEnum.X5L]: {\n padding: 'p-20',\n gap: 'gap-16',\n flow: 'space-y-16',\n radius: 'rounded-3xl',\n },\n [SpaceScaleOptionsEnum.X6L]: {\n padding: 'p-24',\n gap: 'gap-20',\n flow: 'space-y-20',\n radius: 'rounded-3xl',\n },\n};\n\nexport type SpacingOptions = {\n padding?:\n | Record<BreakpointsEnum, SpaceScaleOptionsEnum>\n | SpaceScaleOptionsEnum;\n gap?: Record<BreakpointsEnum, SpaceScaleOptionsEnum> | SpaceScaleOptionsEnum;\n flow?: Record<BreakpointsEnum, SpaceScaleOptionsEnum> | SpaceScaleOptionsEnum;\n radius?:\n | Record<BreakpointsEnum, SpaceScaleOptionsEnum>\n | SpaceScaleOptionsEnum;\n};\n\nconst resolveSpacingClass = (\n value: SpaceScaleOptionsEnum | undefined,\n property: keyof SpaceProjection,\n breakpoint: BreakpointsEnum,\n): string | undefined => {\n if (!value) return undefined;\n const className = get(SpacingRulesMap, [value, property]) as\n | string\n | undefined;\n if (!className) return undefined;\n return breakpoint === BreakpointsEnum.BASE\n ? className\n : `${breakpoint}:${className}`;\n};\n\nconst resolveResponsiveSpacing = (\n values: Record<BreakpointsEnum, SpaceScaleOptionsEnum | undefined>,\n property: keyof SpaceProjection,\n) =>\n [\n resolveSpacingClass(\n values[BreakpointsEnum.BASE],\n property,\n BreakpointsEnum.BASE,\n ),\n resolveSpacingClass(\n values[BreakpointsEnum.SM],\n property,\n BreakpointsEnum.SM,\n ),\n resolveSpacingClass(\n values[BreakpointsEnum.MD],\n property,\n BreakpointsEnum.MD,\n ),\n resolveSpacingClass(\n values[BreakpointsEnum.LG],\n property,\n BreakpointsEnum.LG,\n ),\n resolveSpacingClass(\n values[BreakpointsEnum.XL],\n property,\n BreakpointsEnum.XL,\n ),\n resolveSpacingClass(\n values[BreakpointsEnum.X2L],\n property,\n BreakpointsEnum.X2L,\n ),\n ].filter(Boolean);\n\nexport const modelSpacing = (payload: SpacingOptions): string => {\n const padding = {\n [BreakpointsEnum.BASE]: get(\n payload,\n ['padding', BreakpointsEnum.BASE],\n get(payload, ['padding'], SpaceScaleOptionsEnum.DEFAULT),\n ),\n [BreakpointsEnum.SM]: get(payload, ['padding', BreakpointsEnum.SM]),\n [BreakpointsEnum.MD]: get(payload, ['padding', BreakpointsEnum.MD]),\n [BreakpointsEnum.LG]: get(payload, ['padding', BreakpointsEnum.LG]),\n [BreakpointsEnum.XL]: get(payload, ['padding', BreakpointsEnum.XL]),\n [BreakpointsEnum.X2L]: get(payload, ['padding', BreakpointsEnum.X2L]),\n };\n\n const gap = {\n [BreakpointsEnum.BASE]: get(\n payload,\n ['gap', BreakpointsEnum.BASE],\n get(payload, ['gap'], SpaceScaleOptionsEnum.DEFAULT),\n ),\n [BreakpointsEnum.SM]: get(payload, ['gap', BreakpointsEnum.SM]),\n [BreakpointsEnum.MD]: get(payload, ['gap', BreakpointsEnum.MD]),\n [BreakpointsEnum.LG]: get(payload, ['gap', BreakpointsEnum.LG]),\n [BreakpointsEnum.XL]: get(payload, ['gap', BreakpointsEnum.XL]),\n [BreakpointsEnum.X2L]: get(payload, ['gap', BreakpointsEnum.X2L]),\n };\n\n const flow = {\n [BreakpointsEnum.BASE]: get(\n payload,\n ['flow', BreakpointsEnum.BASE],\n get(payload, ['flow'], SpaceScaleOptionsEnum.DEFAULT),\n ),\n [BreakpointsEnum.SM]: get(payload, ['flow', BreakpointsEnum.SM]),\n [BreakpointsEnum.MD]: get(payload, ['flow', BreakpointsEnum.MD]),\n [BreakpointsEnum.LG]: get(payload, ['flow', BreakpointsEnum.LG]),\n [BreakpointsEnum.XL]: get(payload, ['flow', BreakpointsEnum.XL]),\n [BreakpointsEnum.X2L]: get(payload, ['flow', BreakpointsEnum.X2L]),\n };\n\n const radius = {\n [BreakpointsEnum.BASE]: get(\n payload,\n ['radius', BreakpointsEnum.BASE],\n get(payload, ['radius'], SpaceScaleOptionsEnum.DEFAULT),\n ),\n [BreakpointsEnum.SM]: get(payload, ['radius', BreakpointsEnum.SM]),\n [BreakpointsEnum.MD]: get(payload, ['radius', BreakpointsEnum.MD]),\n [BreakpointsEnum.LG]: get(payload, ['radius', BreakpointsEnum.LG]),\n [BreakpointsEnum.XL]: get(payload, ['radius', BreakpointsEnum.XL]),\n [BreakpointsEnum.X2L]: get(payload, ['radius', BreakpointsEnum.X2L]),\n };\n console.log({ padding });\n return twMerge(\n resolveResponsiveSpacing(padding, 'padding').join(' '),\n resolveResponsiveSpacing(gap, 'gap').join(' '),\n resolveResponsiveSpacing(flow, 'flow').join(' '),\n resolveResponsiveSpacing(radius, 'radius').join(' '),\n );\n};\n","export const defaultSystemHausThemeVariables = {\n '--color-gray-50': '#f8fafc',\n '--color-gray-100': '#f1f5f9',\n '--color-gray-200': '#e2e8f0',\n '--color-gray-300': '#cbd5e1',\n '--color-gray-400': '#94a3b8',\n '--color-gray-500': '#64748b',\n '--color-gray-600': '#475569',\n '--color-gray-700': '#334155',\n '--color-gray-800': '#1e293b',\n '--color-gray-900': '#0f172a',\n\n '--color-coolGray-50': '#f9fafb',\n '--color-coolGray-100': '#f3f4f6',\n '--color-coolGray-200': '#e5e7eb',\n '--color-coolGray-300': '#d1d5db',\n '--color-coolGray-400': '#9ca3af',\n '--color-coolGray-500': '#6b7280',\n '--color-coolGray-600': '#4b5563',\n '--color-coolGray-700': '#374151',\n '--color-coolGray-800': '#4885da',\n '--color-coolGray-900': '#111827',\n\n '--color-trueGray-50': '#fafafa',\n '--color-trueGray-200': '#e5e5e5',\n '--color-trueGray-300': '#d4d4d4',\n '--color-trueGray-400': '#a3a3a3',\n '--color-trueGray-500': '#737373',\n '--color-trueGray-600': '#525252',\n '--color-trueGray-700': '#404040',\n '--color-trueGray-800': '#262626',\n '--color-trueGray-900': '#171717',\n\n '--color-warmGray-50': '#fafaf9',\n '--color-warmGray-100': '#f5f5f4',\n '--color-warmGray-200': '#e7e5e4',\n '--color-warmGray-300': '#d6d3d1',\n '--color-warmGray-400': '#a8a29e',\n '--color-warmGray-500': '#78716c',\n '--color-warmGray-600': '#57534e',\n '--color-warmGray-700': '#44403c',\n '--color-warmGray-800': '#292524',\n '--color-warmGray-900': '#1c1917',\n\n '--color-red-50': '#fef2f2',\n '--color-red-100': '#fee2e2',\n '--color-red-200': '#fecaca',\n '--color-red-300': '#fca5a5',\n '--color-red-400': '#f87171',\n '--color-red-500': '#ef4444',\n '--color-red-600': '#dc2626',\n '--color-red-700': '#b91c1c',\n '--color-red-800': '#991b1b',\n '--color-red-900': '#7f1d1d',\n\n '--color-orange-50': '#fff7ed',\n '--color-orange-100': '#ffedd5',\n '--color-orange-200': '#fed7aa',\n '--color-orange-300': '#fdba74',\n '--color-orange-400': '#fb923c',\n '--color-orange-500': '#f97316',\n '--color-orange-600': '#ea580c',\n '--color-orange-700': '#c2410c',\n '--color-orange-800': '#9a3412',\n '--color-orange-900': '#7c2d12',\n\n '--color-amber-50': '#fffbeb',\n '--color-amber-100': '#fef3c7',\n '--color-amber-200': '#fde68a',\n '--color-amber-300': '#fcd34d',\n '--color-amber-400': '#fbbf24',\n '--color-amber-500': '#f59e0b',\n '--color-amber-600': '#d97706',\n '--color-amber-700': '#b45309',\n '--color-amber-800': '#92400e',\n '--color-amber-900': '#78350f',\n\n '--color-yellow-50': '#fefce8',\n '--color-yellow-100': '#fef9c3',\n '--color-yellow-200': '#fef08a',\n '--color-yellow-300': '#fde047',\n '--color-yellow-400': '#facc15',\n '--color-yellow-500': '#eab308',\n '--color-yellow-600': '#ca8a04',\n '--color-yellow-700': '#a16207',\n '--color-yellow-800': '#854d0e',\n '--color-yellow-900': '#713f12',\n\n '--color-lime-50': '#f7fee7',\n '--color-lime-100': '#ecfccb',\n '--color-lime-200': '#d9f99d',\n '--color-lime-300': '#bef264',\n '--color-lime-400': '#a3e635',\n '--color-lime-500': '#84cc16',\n '--color-lime-600': '#65a30d',\n '--color-lime-700': '#4d7c0f',\n '--color-lime-800': '#3f6212',\n '--color-lime-900': '#365314',\n\n '--color-green-50': '#f0fdf4',\n '--color-green-100': '#d1fae5',\n '--color-green-200': '#bbf7d0',\n '--color-green-300': '#86efac',\n '--color-green-400': '#4ade80',\n '--color-green-500': '#22c55e',\n '--color-green-600': '#16a34a',\n '--color-green-700': '#15803d',\n '--color-green-800': '#166534',\n '--color-green-900': '#14532d',\n\n '--color-emerald-50': '#ecfdf5',\n '--color-emerald-100': '#d1fae5',\n '--color-emerald-200': '#a7f3d0',\n '--color-emerald-300': '#6ee7b7',\n '--color-emerald-400': '#34d399',\n '--color-emerald-500': '#10b981',\n '--color-emerald-600': '#059669',\n '--color-emerald-700': '#047857',\n '--color-emerald-800': '#065f46',\n '--color-emerald-900': '#064e3b',\n\n '--color-teal-50': '#f0fdfa',\n '--color-teal-100': '#ccfbf1',\n '--color-teal-200': '#99f6e4',\n '--color-teal-300': '#5eead4',\n '--color-teal-400': '#2dd4bf',\n '--color-teal-500': '#14b8a6',\n '--color-teal-600': '#0d9488',\n '--color-teal-700': '#0f766e',\n '--color-teal-800': '#115e59',\n '--color-teal-900': '#134e4a',\n\n '--color-cyan-50': '#ecfeff',\n '--color-cyan-100': '#cffafe',\n '--color-cyan-200': '#a5f3fc',\n '--color-cyan-300': '#67e8f9',\n '--color-cyan-400': '#22d3ee',\n '--color-cyan-500': '#06b6d4',\n '--color-cyan-600': '#0891b2',\n '--color-cyan-700': '#0e7490',\n '--color-cyan-800': '#155e75',\n '--color-cyan-900': '#164e63',\n\n '--color-lightBlue-50': '#f0f9ff',\n '--color-lightBlue-100': '#e0f2fe',\n '--color-lightBlue-200': '#bae6fd',\n '--color-lightBlue-300': '#7dd3fc',\n '--color-lightBlue-400': '#38bdf8',\n '--color-lightBlue-500': '#0ea5e9',\n '--color-lightBlue-600': '#0284c7',\n '--color-lightBlue-700': '#0369a1',\n '--color-lightBlue-800': '#075985',\n '--color-lightBlue-900': '#0c4a6e',\n\n '--color-blue-50': '#eff6ff',\n '--color-blue-100': '#dbeafe',\n '--color-blue-200': '#bfdbfe',\n '--color-blue-300': '#93c5fd',\n '--color-blue-400': '#60a5fa',\n '--color-blue-500': '#3b82f6',\n '--color-blue-600': '#2563eb',\n '--color-blue-700': '#1d4ed8',\n '--color-blue-800': '#1e40af',\n '--color-blue-900': '#1e3a8a',\n\n '--color-indigo-50': '#eef2ff',\n '--color-indigo-100': '#e0e7ff',\n '--color-indigo-200': '#c7d2fe',\n '--color-indigo-300': '#a5b4fc',\n '--color-indigo-400': '#818cf8',\n '--color-indigo-500': '#6366f1',\n '--color-indigo-600': '#4f46e5',\n '--color-indigo-700': '#4338ca',\n '--color-indigo-800': '#3730a3',\n '--color-indigo-900': '#312e81',\n\n '--color-violet-50': '#f5f3ff',\n '--color-violet-100': '#ede9fe',\n '--color-violet-200': '#ddd6fe',\n '--color-violet-300': '#c4b5fd',\n '--color-violet-400': '#a78bfa',\n '--color-violet-500': '#8b5cf6',\n '--color-violet-600': '#7c3aed',\n '--color-violet-700': '#6d28d9',\n '--color-violet-800': '#5b21b6',\n '--color-violet-900': '#4c1d95',\n\n '--color-purple-50': '#faf5ff',\n '--color-purple-100': '#f3e8ff',\n '--color-purple-200': '#e9d5ff',\n '--color-purple-300': '#d8b4fe',\n '--color-purple-400': '#c084fc',\n '--color-purple-500': '#a855f7',\n '--color-purple-600': '#9333ea',\n '--color-purple-700': '#7e22ce',\n '--color-purple-800': '#6b21a8',\n '--color-purple-900': '#581c87',\n\n '--color-fuschia-50': '#fdf4ff',\n '--color-fuschia-100': '#fae8ff',\n '--color-fuschia-200': '#f5d0fe',\n '--color-fuschia-300': '#f0abfc',\n '--color-fuschia-400': '#e879f9',\n '--color-fuschia-500': '#d946ef',\n '--color-fuschia-600': '#c026d3',\n '--color-fuschia-700': '#a21caf',\n '--color-fuschia-800': '#86198f',\n '--color-fuschia-900': '#701a75',\n\n '--color-pink-50': '#fdf2f8',\n '--color-pink-100': '#fce7f3',\n '--color-pink-200': '#fbcfe8',\n '--color-pink-300': '#f9a8d4',\n '--color-pink-400': '#f472b6',\n '--color-pink-500': '#ec4899',\n '--color-pink-600': '#db2777',\n '--color-pink-700': '#be185d',\n '--color-pink-800': '#9d174d',\n '--color-pink-900': '#831843',\n\n '--color-rose-50': '#fff1f2',\n '--color-rose-100': '#ffe4e6',\n '--color-rose-200': '#fecdd3',\n '--color-rose-300': '#fda4af',\n '--color-rose-400': '#fb7185',\n '--color-rose-500': '#f43f5e',\n '--color-rose-600': '#e11d48',\n '--color-rose-700': '#be123c',\n '--color-rose-800': '#9f1239',\n '--color-rose-900': '#881337',\n\n '--color-black': '#000000',\n '--color-white': '#ffffff',\n\n '--dimension-0': '0rem',\n '--dimension-1': '0.25rem',\n '--dimension-2': '0.5rem',\n '--dimension-3': '0.75rem',\n '--dimension-4': '1rem',\n '--dimension-5': '1.25rem',\n '--dimension-6': '1.5rem',\n '--dimension-7': '1.75rem',\n '--dimension-8': '2rem',\n '--dimension-9': '2.25rem',\n '--dimension-10': '2.5rem',\n '--dimension-11': '2.75rem',\n '--dimension-12': '3rem',\n '--dimension-13': '3.25rem',\n '--dimension-14': '3.5rem',\n '--dimension-15': '3.75rem',\n '--dimension-16': '4rem',\n '--dimension-17': '4.25rem',\n '--dimension-18': '4.5rem',\n '--dimension-19': '4.25rem',\n '--dimension-20': '5rem',\n '--dimension-21': '5.25rem',\n '--dimension-22': '5.5rem',\n '--dimension-23': '5.75rem',\n '--dimension-24': '6rem',\n '--dimension-25': '6.25rem',\n '--dimension-26': '6.5rem',\n '--dimension-27': '6.75rem',\n '--dimension-28': '7rem',\n '--dimension-29': '7.25rem',\n '--dimension-30': '7.5rem',\n '--dimension-31': '7.75rem',\n '--dimension-32': '8rem',\n '--dimension-33': '8.25rem',\n '--dimension-34': '8.5rem',\n '--dimension-35': '8.75rem',\n '--dimension-36': '9rem',\n '--dimension-37': '9.25rem',\n '--dimension-38': '9.5rem',\n '--dimension-39': '9.75rem',\n '--dimension-40': '10rem',\n '--dimension-41': '10.25rem',\n '--dimension-42': '10.5rem',\n '--dimension-43': '10.75rem',\n '--dimension-44': '11rem',\n '--dimension-45': '11.25rem',\n '--dimension-46': '11.5rem',\n '--dimension-47': '11.75rem',\n '--dimension-48': '12rem',\n '--dimension-49': '12.25rem',\n '--dimension-50': '12.5rem',\n '--dimension-51': '12.75rem',\n '--dimension-52': '13rem',\n '--dimension-53': '13.25rem',\n '--dimension-54': '13.5rem',\n '--dimension-55': '13.75rem',\n '--dimension-56': '14rem',\n '--dimension-57': '14.25rem',\n '--dimension-58': '14.5rem',\n '--dimension-59': '14.75rem',\n '--dimension-60': '15rem',\n '--dimension-61': '15.25rem',\n '--dimension-62': '15.5rem',\n '--dimension-63': '16rem',\n '--dimension-64': '16rem',\n '--dimension-65': '16.25rem',\n '--dimension-66': '16.5rem',\n '--dimension-67': '16.75rem',\n '--dimension-68': '17rem',\n '--dimension-69': '17.25rem',\n '--dimension-70': '17.5rem',\n '--dimension-71': '17.75rem',\n '--dimension-72': '18rem',\n '--dimension-73': '18.25rem',\n '--dimension-74': '18.5rem',\n '--dimension-75': '19rem',\n '--dimension-76': '19rem',\n '--dimension-77': '19.25rem',\n '--dimension-78': '19.5rem',\n '--dimension-79': '20rem',\n '--dimension-80': '20rem',\n '--dimension-81': '20.25rem',\n '--dimension-82': '20.5rem',\n '--dimension-83': '20.75rem',\n '--dimension-84': '21rem',\n '--dimension-85': '21.25rem',\n '--dimension-86': '21.5rem',\n '--dimension-87': '21.75rem',\n '--dimension-88': '22rem',\n '--dimension-89': '22.25rem',\n '--dimension-90': '22.5rem',\n '--dimension-91': '22.75rem',\n '--dimension-92': '23rem',\n '--dimension-93': '23.25rem',\n '--dimension-94': '23.5rem',\n '--dimension-95': '23.75rem',\n '--dimension-96': '24rem',\n '--dimension-97': '24.25rem',\n '--dimension-98': '24.5rem',\n '--dimension-99': '24.75rem',\n '--dimension-100': '25rem',\n '--dimension-sm': '40rem',\n '--dimension-lg': '64rem',\n '--dimension-xl': '80rem',\n '--dimension-px': '0.062rem',\n '--dimension-rounded-none': '0rem',\n '--dimension-rounded-sm': '0.125rem',\n '--dimension-rounded-default': '0.25rem',\n '--dimension-rounded-md': '0.375rem',\n '--dimension-rounded-lg': '0.5rem',\n '--dimension-rounded-xl': '0.75rem',\n '--dimension-rounded-2xl': '1rem',\n '--dimension-rounded-3xl': '1.5rem',\n '--dimension-rounded-full': '624.938rem',\n '--dimension-default': '0.062rem',\n '--dimension-2xs': '20rem',\n '--dimension-xs': '23.5rem',\n '--dimension-md': '48rem',\n '--dimension-2xl': '96rem',\n '--dimension-rem_base': '1rem',\n '--font-family-body': \"'Mona Sans', sans-serif\",\n '--font-family-sans': \"'Mona Sans', sans-serif\",\n '--font-family-display': \"'Mona Sans', sans-serif\",\n '--font-size-xs': '0.75rem',\n '--font-size-sm': '0.875rem',\n '--font-size-base': '1rem',\n '--font-size-lg': '1.125rem',\n '--font-size-xl': '1.25rem',\n '--font-size-2xl': '1.5rem',\n '--font-size-3xl': '1.875rem',\n '--font-size-4xl': '2.25rem',\n '--font-size-5xl': '3rem',\n '--font-size-6xl': '3.75rem',\n '--font-size-7xl': '4.5rem',\n '--font-size-8xl': '6rem',\n '--font-size-9xl': '8rem',\n '--font-weight-thin': '100',\n '--font-weight-extralight': '200',\n '--font-weight-light': '300',\n '--font-weight-normal': '400',\n '--font-weight-medium': '500',\n '--font-weight-semibold': '600',\n '--font-weight-bold': '700',\n '--font-weight-extrabold': '800',\n '--font-weight-black': '900',\n};\n","import axios from 'axios';\n\nconst baseURL =\n // @ts-expect-error while we fix typings\n import.meta.env['VITE_NODE_ENV'] === 'local'\n ? 'http://localhost:3000'\n : 'https://systemhaus.fly.dev';\n\nexport const axiosSystemHausInstance = axios.create({\n baseURL,\n headers: {\n 'Content-Type': 'application/json',\n },\n timeout: 10_000,\n});\n","import { tv } from 'tailwind-variants';\n\nexport const focusRingStyles = tv({\n base: 'outline focus-visible:ring-2 focus-visible:ring-blue-400 outline-blue-400 dark:outline-blue-500 forced-colors:outline-[Highlight] outline-offset-2',\n variants: {\n isFocusVisible: {\n false: 'outline-0',\n true: 'outline-2',\n },\n },\n});\n\nconst baseInputStyles = tv({\n extend: focusRingStyles,\n base: [\n 'w-full flex items-center flex-1 min-w-0 h-12 overflow-hidden',\n 'px-4 my-2',\n 'bg-white dark:bg-gray-900 forced-colors:bg-[Field]',\n 'border-2 rounded-2xl',\n 'text-md text-gray-800 dark:text-gray-300 outline outline-0',\n 'rounded-card-root-radius-default',\n 'placeholder-gray-500',\n ],\n variants: {\n isFocusWithin: {\n false:\n 'border-gray-300 dark:border-gray-500 forced-colors:border-[ButtonBorder]',\n true: 'border-gray-600 dark:border-gray-300 forced-colors:border-[Highlight]',\n },\n invalid: {\n true: 'border-red-600 dark:border-red-600 forced-colors:border-[Mark]',\n },\n disabled: {\n true: [\n 'disabled:text-gray-200 dark:disabled:text-gray-500',\n 'dark:bg-gray-700',\n 'border-gray-200 dark:border-gray-700 forced-colors:border-[GrayText]',\n ],\n },\n },\n});\n\nexport const inputStyles = <T>(properties: T): string =>\n baseInputStyles(properties as unknown as Record<string, unknown>);\n","import { tv } from 'tailwind-variants';\n\nconst baseCursorStyles = tv({\n base: 'cursor-pointer',\n variants: {\n loading: {\n true: 'cursor-progress',\n },\n disabled: {\n true: 'cursor-not-allowed',\n },\n },\n});\n\nexport const cursorStyles = <T>(payload: T): string =>\n baseCursorStyles(payload as unknown as Record<string, unknown>);\n","import { tv } from 'tailwind-variants';\n\nimport { focusRingStyles } from './input.styles';\n\nconst baseInputStyles = tv({\n extend: focusRingStyles,\n base: [\n 'w-full flex items-center flex-1 min-w-0 p-4',\n 'bg-white dark:bg-gray-900 forced-colors:bg-[Field]',\n 'border-2 rounded-[24px] min-h-8',\n 'text-md text-gray-800 dark:text-gray-300 outline outline-0',\n 'placeholder-gray-500',\n ],\n variants: {\n isFocusWithin: {\n false:\n 'border-gray-300 dark:border-gray-500 forced-colors:border-[ButtonBorder]',\n true: 'border-gray-600 dark:border-gray-300 forced-colors:border-[Highlight]',\n },\n invalid: {\n true: 'border-red-600 dark:border-red-600 forced-colors:border-[Mark]',\n },\n disabled: {\n true: [\n 'disabled:text-gray-200 dark:disabled:text-gray-500',\n 'dark:bg-gray-700',\n 'border-gray-200 dark:border-gray-700 forced-colors:border-[GrayText]',\n ],\n },\n },\n});\n\nexport const textAreaStyles = <T>(properties: T): string =>\n baseInputStyles(properties as unknown as Record<string, unknown>);\n","// darkModeManager.ts\n\nconst STORAGE_KEY = '@kurocado:color-scheme';\n\nexport const DARK_THEME_ICON = 'ph ph-moon-stars';\nexport const LIGHT_THEME_ICON = 'ph ph-sun';\nexport const UNKNOWN_THEME_ICON = 'ph ph-toggle-right';\n\nexport enum ThemeEnum {\n DARK = 'dark',\n LIGHT = 'light',\n SYSTEM = 'system',\n}\n\nconst hasWindow = globalThis?.window !== undefined;\nconst hasDocument = typeof document !== 'undefined';\nconst hasStorage = typeof localStorage !== 'undefined';\n\nfunction getSystemTheme(): ThemeEnum {\n if (!hasWindow || typeof globalThis?.matchMedia !== 'function') {\n return ThemeEnum.LIGHT;\n }\n return globalThis?.matchMedia('(prefers-color-scheme: dark)').matches\n ? ThemeEnum.DARK\n : ThemeEnum.LIGHT;\n}\n\nfunction getStoredTheme(): ThemeEnum | undefined {\n if (!hasStorage) return undefined;\n return (localStorage.getItem(STORAGE_KEY) as ThemeEnum) ?? undefined;\n}\n\nfunction applyTheme(theme: ThemeEnum) {\n if (!hasDocument) return;\n const root = document.documentElement;\n const { DARK } = ThemeEnum;\n\n if (theme === DARK) {\n root.classList.add(DARK);\n } else {\n root.classList.remove(DARK);\n }\n}\n\nfunction resolveEffectiveTheme(): ThemeEnum {\n const stored = getStoredTheme();\n return stored === ThemeEnum.SYSTEM || !stored ? getSystemTheme() : stored;\n}\n\nfunction setTheme(ThemeEnum: ThemeEnum) {\n if (hasStorage) {\n localStorage.setItem(STORAGE_KEY, ThemeEnum);\n }\n applyTheme(ThemeEnum === 'system' ? getSystemTheme() : ThemeEnum);\n}\n\nfunction toggleTheme(): ThemeEnum {\n const current = resolveEffectiveTheme();\n const newTheme: ThemeEnum =\n current === ThemeEnum.DARK ? ThemeEnum.LIGHT : ThemeEnum.DARK;\n\n setTheme(newTheme);\n\n return newTheme;\n}\n\nfunction isDarkMode(): boolean {\n return resolveEffectiveTheme() === 'dark';\n}\n\nexport const darkModeManager = {\n getStoredTheme,\n getSystemTheme,\n resolveEffectiveTheme,\n applyTheme,\n setTheme,\n toggleTheme,\n isDarkMode,\n};\n","import defaultTheme from './theme/theme.json';\n\nconst kurocadoTheme = defaultTheme;\nexport type { ThemeProviderProperties } from './types';\nexport type * from './types';\nexport { kurocadoTheme };\nexport * from './provider';\nexport * from './components/card';\nexport * from './colors';\nexport * from './grid';\nexport * from './motion';\nexport * from './components/Avatar';\nexport * from './components/Grid';\nexport * from './components/ProgressiveImage/progressiveImage';\nexport * from './components/Button';\nexport * from './components/Typography';\nexport * from './abstractions/spacing.tailwind';\nexport * from './enums/breakpoints.enum';\nexport * from './enums/spacing.enum';\nexport * from './enums/controls.enum';\nexport * from './components/ProgressiveImage/progressiveImage';\nexport * from './theme/defaultSystemHausThemeVariables';\nexport * from './axiosSystemHausInstance';\nexport * from './styles/input.styles';\nexport * from './styles/cursor.styles';\nexport * from './styles/textArea.styles';\nexport * from './scripts/toggleDarkMode';\n","import {\n type ThemeProviderComposer,\n handleSetThemeVariable,\n handleToggleLightDarkTheme,\n handleVariablesMap,\n} from '../domain';\n\nexport function composeThemeProvider(): ThemeProviderComposer {\n return {\n handleSetThemeVariable,\n handleVariablesMap,\n handleToggleLightDarkTheme,\n };\n}\n","import { BorderPrimaryColors, PrimaryColors } from '../domain/colors';\n\nexport interface BauhausBasicColorsGrid {\n blueSpanColumn: Record<string, unknown>;\n mainGridProps: Record<string, unknown>;\n redSpanColumn: Record<string, unknown>;\n innerRedSpanColumnGridProps: Record<string, unknown>;\n threeColumnsBasicColorBorders: Record<\n PrimaryColors,\n Record<string, unknown>[]\n >;\n blackSpanColumn: Record<string, unknown>;\n innerBlueSpanColumnGridProps: Record<string, unknown>;\n yellowSpanColumn: Record<string, unknown>;\n innerYellowSpanColumnGridProps: Record<string, unknown>;\n}\n\nexport interface BauhausVerticalLinesGrid {\n blinkingYellowDots: Record<string, unknown>[];\n mainGridProps: Record<string, unknown>;\n verticalSpanColumn: Record<string, unknown>;\n innerVerticalLines: Record<string, unknown>[];\n innerYellowDotsContainer: Record<string, unknown>;\n}\n\nexport const defaultGridProperties = {\n columns: '12',\n gap: '0',\n rows: '12',\n};\n\nexport type UIMode = 'react' | 'vue';\n\nexport const ariaHidden = {\n 'aria-hidden': true,\n};\n\nexport const composeCssClassName = (\n uiMode: UIMode,\n cssClass: string,\n): Record<string, string> => {\n return uiMode === 'react'\n ? {\n className: cssClass,\n }\n : {\n class: cssClass,\n };\n};\n\nexport const bauhausBasicColorsGridComposer = (\n uiMode: UIMode,\n): BauhausBasicColorsGrid => {\n const mainGridProperties = {\n ...defaultGridProperties,\n ...ariaHidden,\n ...composeCssClassName(\n uiMode,\n `h-screen w-screen absolute top-0 left-0 right-0 bottom-0`,\n ),\n };\n\n const redSpanColumn = {\n ...defaultGridProperties,\n ...ariaHidden,\n ...composeCssClassName(\n uiMode,\n `col-span-4 flex align-bottom w-full row-start-7 row-span-2 ${PrimaryColors.RED}`,\n ),\n };\n\n const innerRedSpanColumnGridProperties = {\n ...defaultGridProperties,\n ...ariaHidden,\n ...composeCssClassName(uiMode, `w-full subgrid flex items-end`),\n };\n\n const innerBlueSpanColumnGridProperties = {\n ...defaultGridProperties,\n ...ariaHidden,\n ...composeCssClassName(uiMode, `w-full h-full subgrid`),\n };\n\n const innerYellowSpanColumnGridProperties = {\n ...innerBlueSpanColumnGridProperties,\n };\n\n const blackSpanColumn = {\n ...defaultGridProperties,\n ...ariaHidden,\n ...composeCssClassName(\n uiMode,\n `col-span-4 overflow-hidden w-full row-start-7 row-span-2 bg-black`,\n ),\n };\n\n const blueSpanColumn = {\n ...ariaHidden,\n ...composeCssClassName(\n uiMode,\n `col-span-2 row-span-8 w-full ${PrimaryColors.BLUE}`,\n ),\n };\n\n const yellowSpanColumn = {\n ...ariaHidden,\n ...composeCssClassName(\n uiMode,\n `col-span-2 col-start-7 top-0 row-span-4 row-start-9 w-full ${PrimaryColors.YELLOW}`,\n ),\n };\n\n const threeColumnsBasicColorBorders = {\n [PrimaryColors.YELLOW]: [\n {\n ...ariaHidden,\n ...composeCssClassName(uiMode, `row-span-4 w-1 bg-black`),\n },\n {\n ...ariaHidden,\n ...composeCssClassName(\n uiMode,\n `row-span-4 w-1 row-start-5 ${PrimaryColors.RED}`,\n ),\n },\n {\n ...ariaHidden,\n ...composeCssClassName(\n uiMode,\n `row-span-4 w-1 row-start-9 ${PrimaryColors.BLUE}`,\n ),\n },\n ],\n [PrimaryColors.RED]: [\n {\n ...ariaHidden,\n ...composeCssClassName(\n uiMode,\n `col-span-4 h-1 w-full row-start-12 ${PrimaryColors.BLUE}`,\n ),\n },\n {\n ...ariaHidden,\n ...composeCssClassName(\n uiMode,\n `col-span-4 h-1 w-full row-start-12 ${PrimaryColors.YELLOW}`,\n ),\n },\n {\n ...ariaHidden,\n ...composeCssClassName(\n uiMode,\n `col-span-4 h-1 w-full row-start-12 bg-black`,\n ),\n },\n ],\n [PrimaryColors.BLUE]: [\n {\n ...ariaHidden,\n ...composeCssClassName(\n uiMode,\n `row-span-4 col-span-12 w-full border-r-4 border-black`,\n ),\n },\n {\n ...ariaHidden,\n ...composeCssClassName(\n uiMode,\n `row-span-4 col-span-12 w-full border-r-4 row-start-5 ${BorderPrimaryColors.RED}`,\n ),\n },\n {\n ...ariaHidden,\n ...composeCssClassName(\n uiMode,\n `row-span-4 col-span-12 w-full border-r-4 row-start-9 ${BorderPrimaryColors.YELLOW}`,\n ),\n },\n ],\n };\n\n return {\n blueSpanColumn,\n mainGridProps: mainGridProperties,\n redSpanColumn,\n innerRedSpanColumnGridProps: innerRedSpanColumnGridProperties,\n threeColumnsBasicColorBorders,\n blackSpanColumn,\n innerBlueSpanColumnGridProps: innerBlueSpanColumnGridProperties,\n yellowSpanColumn,\n innerYellowSpanColumnGridProps: innerYellowSpanColumnGridProperties,\n };\n};\n\nexport const bauhausVerticalLinesGridComposer = (\n uiMode: UIMode,\n): BauhausVerticalLinesGrid => {\n const mainGridProperties = {\n ...defaultGridProperties,\n ...ariaHidden,\n ...composeCssClassName(\n uiMode,\n `h-screen w-screen absolute top-0 left-0 right-0 bottom-0`,\n ),\n };\n\n const verticalSpanColumn = {\n ...ariaHidden,\n ...composeCssClassName(\n uiMode,\n `col-span-2 col-start-3 w-full row-span-12 overflow-hidden`,\n ),\n };\n\n const innerYellowDotsContainer = {\n ...composeCssClassName(\n uiMode,\n 'col-span-6 col-start-7 w-full row-span-3 row-start-2 overflow-hidden',\n ),\n };\n\n const innerVerticalLines = Array.from({ length: 100 }).map(() => {\n return composeCssClassName(\n uiMode,\n 'bg-black dark:bg-white block h-0.5 mb-6',\n );\n });\n\n const blinkingYellowDots = Array.from({ length: 1150 }).map((_, index) => {\n const delay = Math.random() * 2;\n\n const animate = {\n backgroundColor: ['#FFFF00', '#FF0000', '#0000FF'],\n };\n\n const transition = {\n duration: 4,\n times: [0, 0.33, 0.66, 1],\n repeat: Infinity,\n repeatType: 'loop',\n delay,\n };\n\n const prefersMotion =\n typeof globalThis.matchMedia === 'function' &&\n globalThis.matchMedia('(prefers-reduced-motion: reduce)').matches;\n\n return {\n ...(index % 8 === 0 && prefersMotion && { animate, transition }),\n ...composeCssClassName(\n uiMode,\n `rounded-full inline-flex m-0.5 space-x-1 space-y-1 h-1 w-1 ${PrimaryColors.YELLOW}`,\n ),\n };\n });\n\n return {\n blinkingYellowDots,\n mainGridProps: mainGridProperties,\n verticalSpanColumn,\n innerVerticalLines,\n innerYellowDotsContainer,\n };\n};\n","import { get } from 'lodash-es';\n\nexport const composeAnimationProperties = (\n properties: unknown,\n): Record<string, unknown> => {\n return {\n animate: get(properties, ['animate']),\n initial: get(properties, ['initial']),\n exit: get(properties, ['exit']),\n whileHover: get(properties, ['whileHover']),\n whileTap: get(properties, ['whileTap']),\n whileFocus: get(properties, ['whileFocus']),\n variants: get(properties, ['variants']),\n transition: get(properties, ['transition']) as TransitionEvent,\n };\n};\n","export function createCssVariableEntry(\n prefix: string,\n name: string,\n value: string,\n): {\n cssVariableName: string;\n cssVariableValue: string;\n cssVariableReference: string;\n} {\n const cssVariableName = `--${prefix}-${name}`;\n const cssVariableValue = value;\n const cssVariableReference = `var(${cssVariableName})`;\n\n return {\n cssVariableName,\n cssVariableValue,\n cssVariableReference,\n };\n}\n","export function flattenResponsive(\n prefix: string,\n map: Record<string, string | number>,\n): string[] {\n return Object.entries(map).map(\n ([breakpoint, value]) => `${breakpoint}:${prefix}${value}`,\n );\n}\n","import {\n PolymorphicMotionElement,\n type PolymorphicMotionProperties,\n} from '@kurocado-studio/systemhaus-motion-react';\nimport { card } from '@kurocado-studio/systemhaus-ui';\nimport { get, set } from 'lodash-es';\nimport React from 'react';\nimport { twMerge } from 'tailwind-merge';\n\nexport type CardProperties<\n T extends keyof React.JSX.IntrinsicElements = 'div',\n> = PolymorphicMotionProperties<T>;\n\nconst mappedDisplayNameComponentTokens: Record<string, string> = {\n CardHeader: card.cardHeaderClasses,\n CardFooter: card.cardFooterClasses,\n CardBody: card.cardBodyClasses,\n};\n\nexport function Card<T extends keyof React.JSX.IntrinsicElements = 'div'>(\n properties: React.PropsWithChildren<CardProperties<T>>,\n): React.ReactNode {\n const { className, ...rest } = properties;\n const childNodes = get(properties, ['children'], []);\n\n return (\n <PolymorphicMotionElement\n className={twMerge(card.cardComponentWrapperClasses, className)}\n {...rest}\n >\n {React.Children.toArray(childNodes).map((child, index) => {\n if (!React.isValidElement(child)) return child;\n\n const componentTokens = get(child, ['type', 'displayName']);\n const selectedNode = get(child, ['props', 'as'], 'div');\n\n return (\n <PolymorphicMotionElement\n key={index}\n as={selectedNode}\n {...(child.props as Record<string, unknown>)}\n className={twMerge(\n get(\n mappedDisplayNameComponentTokens,\n [componentTokens],\n mappedDisplayNameComponentTokens['CardBody'],\n ),\n get(child, ['props', 'className']),\n )}\n >\n {get(child, ['props', 'children'])}\n </PolymorphicMotionElement>\n );\n })}\n </PolymorphicMotionElement>\n );\n}\n\nfunction CardHeader<T extends keyof React.JSX.IntrinsicElements = 'div'>(\n properties: React.PropsWithChildren<CardProperties<T>>,\n): React.ReactNode {\n return <PolymorphicMotionElement {...properties} />;\n}\n\nfunction CardBody<T extends keyof React.JSX.IntrinsicElements = 'div'>(\n properties: React.PropsWithChildren<CardProperties<T>>,\n): React.ReactNode {\n return <PolymorphicMotionElement {...properties} />;\n}\n\nfunction CardFooter<T extends keyof React.JSX.IntrinsicElements = 'div'>(\n properties: React.PropsWithChildren<CardProperties<T>>,\n): React.ReactNode {\n return <PolymorphicMotionElement {...properties} />;\n}\n\nCard.Body = CardBody;\nCard.Header = CardHeader;\nCard.Footer = CardFooter;\n\nset(Card, ['Header', 'displayName'], 'CardHeader');\nset(Card, ['Body', 'displayName'], 'CardBody');\nset(Card, ['Footer', 'displayName'], 'CardFooter');\n","import {\n PolymorphicMotionElement,\n type PolymorphicMotionProperties,\n} from '@kurocado-studio/systemhaus-motion-react';\nimport {\n type CommonProperties,\n buttonStyles,\n cursorStyles,\n} from '@kurocado-studio/systemhaus-ui';\nimport { get } from 'lodash-es';\nimport React from 'react';\nimport { twMerge } from 'tailwind-merge';\n\nexport type ButtonProperties = React.PropsWithChildren<\n PolymorphicMotionProperties<'button'> &\n CommonProperties & {\n ghost?: true;\n intent?: string;\n fullWidth?: boolean;\n }\n>;\n\nexport function Button(properties: ButtonProperties): React.ReactNode {\n return (\n <PolymorphicMotionElement<'button'>\n as='button'\n {...properties}\n className={twMerge(\n buttonStyles(properties),\n cursorStyles(properties),\n properties.className,\n properties.fullWidth ? 'w-full' : undefined,\n )}\n type={get(properties, ['type'], 'button')}\n >\n {properties.children}\n </PolymorphicMotionElement>\n );\n}\n\nButton.displayName = 'Button';\n","'use client';\n\nimport {\n PolymorphicMotionElement,\n type PolymorphicMotionProperties,\n useCursorFollow,\n} from '@kurocado-studio/systemhaus-motion-react';\nimport {\n PrimaryColors,\n bauhausBasicColorsGridComposer,\n bauhausVerticalLinesGridComposer,\n} from '@kurocado-studio/systemhaus-ui';\nimport { motion } from 'framer-motion';\nimport React, { useRef } from 'react';\nimport { twMerge } from 'tailwind-merge';\n\nimport { Grid } from '../Grid/Grid';\n\nconst bauhausBasicColorsGrid = bauhausBasicColorsGridComposer('react');\nconst bauhausVerticalLinesGrid = bauhausVerticalLinesGridComposer('react');\n\nexport function BauhausGrid(\n properties: PolymorphicMotionProperties<'div'>,\n): React.ReactNode {\n return (\n <PolymorphicMotionElement<'div'>\n aria-hidden\n {...properties}\n className={twMerge('relative h-screen', properties.className)}\n >\n <PrimaryColorGrid />\n <VerticalLinesGrid />\n </PolymorphicMotionElement>\n );\n}\n\nexport function PrimaryColorGrid(): React.ReactNode {\n const spanReference = useRef<HTMLDivElement>(null);\n\n const mainCursorFollower = useCursorFollow(\n {\n damping: 100,\n stiffness: 600,\n maxDistance: 3000,\n intensity: 0.1,\n },\n spanReference,\n );\n\n return (\n <Grid {...bauhausBasicColorsGrid.mainGridProps}>\n <motion.span\n ref={spanReference}\n style={{ y: mainCursorFollower.x }}\n {...bauhausBasicColorsGrid.redSpanColumn}\n >\n <Grid {...bauhausBasicColorsGrid.innerRedSpanColumnGridProps}>\n {bauhausBasicColorsGrid.threeColumnsBasicColorBorders[\n PrimaryColors.RED\n ].map(\n (\n spanProperties: React.JSX.IntrinsicAttributes,\n index: React.Key | null | undefined,\n ) => (\n <span key={index} {...spanProperties} />\n ),\n )}\n </Grid>\n </motion.span>\n\n <span\n {...bauhausBasicColorsGrid.blackSpanColumn}\n className={twMerge(\n 'col-span-4 row-span-2 row-start-7 w-full overflow-hidden bg-black',\n 'bg-black',\n )}\n ></span>\n <motion.div\n ref={spanReference}\n style={{ x: mainCursorFollower.y }}\n {...bauhausBasicColorsGrid.blueSpanColumn}\n >\n <span>\n <Grid {...bauhausBasicColorsGrid.innerBlueSpanColumnGridProps}>\n {bauhausBasicColorsGrid.threeColumnsBasicColorBorders[\n PrimaryColors.BLUE\n ].map(\n (\n spanProperties: React.JSX.IntrinsicAttributes,\n index: React.Key | null | undefined,\n ) => (\n <span key={index} {...spanProperties} />\n ),\n )}\n </Grid>\n </span>\n </motion.div>\n <motion.div\n ref={spanReference}\n style={{ x: mainCursorFollower.x }}\n {...bauhausBasicColorsGrid.yellowSpanColumn}\n >\n <Grid {...bauhausBasicColorsGrid.innerYellowSpanColumnGridProps}>\n {bauhausBasicColorsGrid.threeColumnsBasicColorBorders[\n PrimaryColors.YELLOW\n ].map(\n (\n spanProperties: React.JSX.IntrinsicAttributes,\n index: React.Key | null | undefined,\n ) => (\n <span key={index} {...spanProperties} />\n ),\n )}\n </Grid>\n </motion.div>\n </Grid>\n );\n}\n\nexport function VerticalLinesGrid(): React.ReactNode {\n const secondaryCursorFollower = useCursorFollow({\n damping: 200,\n stiffness: 1000,\n maxDistance: 4000,\n intensity: 0.2,\n });\n\n return (\n <Grid {...bauhausVerticalLinesGrid.mainGridProps}>\n <span {...bauhausVerticalLinesGrid.verticalSpanColumn}>\n {bauhausVerticalLinesGrid.innerVerticalLines.map(\n (\n spanProperties: React.JSX.IntrinsicAttributes,\n index: React.Key | null | undefined,\n ) => {\n return (\n <motion.span\n ref={secondaryCursorFollower.ref}\n style={{\n x: secondaryCursorFollower.x,\n y: secondaryCursorFollower.y,\n }}\n key={index}\n {...spanProperties}\n />\n );\n },\n )}\n </span>\n <span {...bauhausVerticalLinesGrid.innerYellowDotsContainer}>\n {bauhausVerticalLinesGrid.blinkingYellowDots.map(\n (\n spanProperties: React.JSX.IntrinsicAttributes,\n index: React.Key | null | undefined,\n ) => {\n return <motion.span key={index} {...spanProperties} />;\n },\n )}\n </span>\n </Grid>\n );\n}\n","import {\n PolymorphicMotionElement,\n type PolymorphicMotionElementMap,\n type PolymorphicMotionProperties,\n} from '@kurocado-studio/systemhaus-motion-react';\nimport {\n type GridComponentLayoutOptions,\n modelGridLayout,\n} from '@kurocado-studio/systemhaus-ui';\nimport React from 'react';\nimport { twMerge } from 'tailwind-merge';\n\nexport type GridProperties<T extends PolymorphicMotionElementMap = 'div'> =\n GridComponentLayoutOptions & PolymorphicMotionProperties<T>;\n\nexport function Grid<T extends PolymorphicMotionElementMap = 'div'>(\n properties: React.PropsWithChildren<GridProperties<T>>,\n): React.ReactNode {\n const { className, children, ...rest } = properties;\n\n return (\n // @ts-expect-error while we sync types\n <PolymorphicMotionElement<T>\n className={twMerge(modelGridLayout(properties), className)}\n {...rest}\n >\n {children}\n </PolymorphicMotionElement>\n );\n}\n","import { PolymorphicMotionElement } from '@kurocado-studio/systemhaus-motion-react';\nimport {\n type CommonProperties,\n ControlSizeEnum,\n avatarStyles,\n} from '@kurocado-studio/systemhaus-ui';\nimport { get } from 'lodash-es';\nimport React from 'react';\nimport { twMerge } from 'tailwind-merge';\n\nimport { ProgressiveImageProperties } from '../ProgressiveImage/ProgressiveImage';\n\nexport type AvatarProperties = ProgressiveImageProperties &\n CommonProperties & {\n size?: `${ControlSizeEnum}` | object;\n };\n\nexport function Avatar(properties: AvatarProperties): React.ReactNode {\n return (\n <PolymorphicMotionElement\n {...properties}\n as='img'\n className={twMerge(avatarStyles(properties), properties.className)}\n alt={get(properties, ['alt'], 'Avatar')}\n />\n );\n}\n","import {\n PolymorphicMotionElement,\n type PolymorphicMotionProperties,\n} from '@kurocado-studio/systemhaus-motion-react';\nimport {\n type ProgressiveImageOptions,\n ProgressiveImageStatusEnum,\n} from '@kurocado-studio/systemhaus-ui';\nimport { twMerge } from 'tailwind-merge';\n\nimport { useProgressiveImage } from '../../hooks/useProgressiveImage';\n\nexport type ProgressiveImageProperties = PolymorphicMotionProperties<'img'> &\n ProgressiveImageOptions & {\n isLoading?: boolean;\n };\n\nexport const ProgressiveImage = (properties: ProgressiveImageProperties) => {\n const motionProperties = useProgressiveImage(properties);\n return (\n <PolymorphicMotionElement<'img'>\n as='img'\n {...motionProperties}\n decoding={properties.decoding ?? 'async'}\n alt={properties.alt}\n loading={properties.loading ?? 'lazy'}\n aria-busy={motionProperties.animate === ProgressiveImageStatusEnum.IDLE}\n className={twMerge(\n 'block h-auto w-full max-w-full rounded object-cover',\n motionProperties.className,\n properties.className,\n )}\n />\n );\n};\n","import {\n type PolymorphicMotionProperties,\n useSystemHausMotionProvider,\n} from '@kurocado-studio/systemhaus-motion-react';\nimport {\n type ProgressiveImageOptions,\n type ProgressiveImageState,\n ProgressiveImageStatusEnum,\n preloadImage,\n progressiveImageFactory,\n} from '@kurocado-studio/systemhaus-ui';\nimport { useEffect, useMemo, useState } from 'react';\n\nexport function useProgressiveImage(\n options: ProgressiveImageOptions,\n): PolymorphicMotionProperties<'img'> {\n const { transition } = useSystemHausMotionProvider();\n const initialImageState = progressiveImageFactory({\n status: ProgressiveImageStatusEnum.IDLE,\n options,\n });\n\n const [state, setState] = useState<ProgressiveImageState>(initialImageState);\n\n useEffect(() => {\n preloadImage(options.src).then((status) => {\n const nextState = progressiveImageFactory({\n status,\n options,\n });\n setState(nextState);\n });\n }, [options.src, options.preview, options.fallback]);\n\n const variants = useMemo(\n () => ({\n idle: {\n filter: `blur(${options.initialBlur ?? 10}px)`,\n clipPath: 'inset(0)',\n transition,\n },\n loaded: {\n filter: 'blur(0px)',\n clipPath: 'inset(0)',\n transition,\n },\n error: {\n filter: 'blur(0px)',\n clipPath: 'inset(0)',\n transition,\n },\n }),\n [options.initialBlur, transition],\n );\n\n return {\n src: state.src,\n initial: ProgressiveImageStatusEnum.IDLE,\n animate: state.status,\n variants,\n };\n}\n","import {\n PolymorphicMotionElement,\n type PolymorphicMotionProperties,\n} from '@kurocado-studio/systemhaus-motion-react';\nimport { cursorStyles, inputStyles } from '@kurocado-studio/systemhaus-ui';\nimport React from 'react';\nimport { twMerge } from 'tailwind-merge';\n\nexport type InputProperties = PolymorphicMotionProperties<'input'>;\n\nexport function Input(properties: InputProperties): React.ReactNode {\n return (\n <PolymorphicMotionElement<'input'>\n as='input'\n {...properties}\n className={twMerge(\n inputStyles(properties),\n cursorStyles(properties),\n properties.className,\n )}\n />\n );\n}\n","import {\n PolymorphicMotionElement,\n type PolymorphicMotionElementMap,\n type PolymorphicMotionProperties,\n} from '@kurocado-studio/systemhaus-motion-react';\nimport React, {\n type ButtonHTMLAttributes,\n type PropsWithChildren,\n} from 'react';\nimport { twMerge } from 'tailwind-merge';\n\nexport function GlassButton(\n properties: PropsWithChildren<ButtonHTMLAttributes<HTMLButtonElement>>,\n): React.ReactNode {\n return (\n <button\n type='button'\n {...properties}\n className={`glass-button ${properties.className}`}\n >\n {properties.children}\n </button>\n );\n}\n\nexport function GlassContainer<T extends PolymorphicMotionElementMap = 'div'>({\n children,\n ...properties\n}: React.PropsWithChildren<PolymorphicMotionProperties<T>>): React.ReactNode {\n return (\n // TODO: update types\n // @ts-expect-error while we sync types\n <PolymorphicMotionElement\n className={twMerge(\n 'p-4',\n 'relative w-full',\n 'before:rounded-[40px] after:rounded-[40px]',\n 'md:before:rounded-[84px] md:after:rounded-[84px]',\n `glass__container ${properties['className']}`,\n )}\n {...properties}\n >\n {children}\n </PolymorphicMotionElement>\n );\n}\n\nexport function GlassFilters(): React.ReactNode {\n return (\n <svg style={{ display: 'none' }} aria-hidden='true' focusable='false'>\n <filter id='container-glass' x='0%' y='0%' width='100%' height='100%'>\n <feTurbulence\n type='fractalNoise'\n baseFrequency='0.008 0.008'\n numOctaves='2'\n seed='92'\n result='noise'\n />\n <feGaussianBlur in='noise' stdDeviation='0.02' result='blur' />\n <feDisplacementMap\n in='SourceGraphic'\n in2='blur'\n scale='77'\n xChannelSelector='R'\n yChannelSelector='G'\n />\n </filter>\n <filter id='btn-glass' primitiveUnits='objectBoundingBox'>\n <feImage\n href={glassFilterHref}\n x='0'\n y='0'\n width='1'\n height='1'\n result='map'\n />\n <feGaussianBlur in='SourceGraphic' stdDeviation='0.02' result='blur' />\n <feDisplacementMap\n id='disp'\n in='blur'\n in2='map'\n scale='1'\n xChannelSelector='R'\n yChannelSelector='G'\n />\n </filter>\n </svg>\n );\n}\n\nfunction isChromeOnly(): boolean {\n const userAgent = navigator.userAgent.toLowerCase();\n const isChrome = userAgent.includes('chrome');\n const isEdge = userAgent.includes('edg/'); // Microsoft Edge Chromium has \"Edg/\"\n const isChromium = userAgent.includes('chromium'); // General Chromium\n const isOpera = userAgent.includes('opera') || userAgent.includes('opr/');\n\n // It is Chrome only if it is Chrome and none of the others\n return isChrome && !isEdge && !isChromium && !isOpera;\n}\n\n// Example usage:\nif (isChromeOnly()) {\n console.log('This is Google Chrome.');\n} else {\n console.log(\n 'This is not Google Chrome, or is another Chromium-based browser.',\n );\n}\n\nexport const glassFilterHref =\n 'data:image/png;base64,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';\n","import {\n AnimateMotionPresence,\n PolymorphicMotionElement,\n type Variant,\n} from '@kurocado-studio/systemhaus-motion-react';\nimport React from 'react';\n\nimport { type LoaderComponentProperties } from '../../types';\n\ntype Variants = Record<string, Variant>;\n\nexport function FullScreenLoader({\n progress,\n isLoading,\n}: LoaderComponentProperties): React.ReactNode {\n const finished = progress >= 100 && !isLoading;\n\n const wrapperVariants: Variants = {\n visible: {\n opacity: 1,\n scale: 1,\n transition: { duration: 0.6, ease: 'easeOut' },\n },\n exit: {\n opacity: 0,\n scale: 1.2,\n transition: { duration: 1, ease: 'easeInOut' },\n },\n };\n\n const barVariants: Variants = {\n initial: { height: '0%' },\n animate: (progress: number) => ({\n height: `${progress}%`,\n transition: {\n type: 'spring',\n stiffness: 140,\n damping: 28,\n mass: 0.5,\n },\n }),\n };\n\n return (\n <AnimateMotionPresence mode={'wait'} isVisible={!finished}>\n <PolymorphicMotionElement\n className='inset-0 z-50 flex items-center justify-center'\n style={{\n zIndex: 9999,\n position: 'fixed',\n overflow: 'hidden',\n background: 'Gainsboro',\n }}\n aria-busy={!finished}\n aria-live='polite'\n role='status'\n /*eslint-disable-next-line @typescript-eslint/ban-ts-comment*/\n /* @ts-ignore type mismatch */\n variants={wrapperVariants}\n initial='hidden'\n whileInView='visible'\n exit='exit'\n >\n <PolymorphicMotionElement\n className='absolute bottom-0 left-0 w-full'\n /*eslint-disable-next-line @typescript-eslint/ban-ts-comment*/\n /* @ts-ignore type mismatch */\n variants={barVariants}\n custom={progress}\n initial='initial'\n whileInView='animate'\n role='progressbar'\n aria-valuenow={progress}\n aria-valuemin={0}\n aria-valuemax={100}\n style={{\n background: 'rgba(173,255,47, 0.8)',\n width: '100%',\n borderRadius: '4px',\n position: 'absolute',\n }}\n />\n </PolymorphicMotionElement>\n </AnimateMotionPresence>\n );\n}\n","import {\n PolymorphicMotionElement,\n type PolymorphicMotionProperties,\n} from '@kurocado-studio/systemhaus-motion-react';\nimport { cursorStyles, textAreaStyles } from '@kurocado-studio/systemhaus-ui';\nimport { get } from 'lodash-es';\nimport React from 'react';\nimport { twMerge } from 'tailwind-merge';\n\nexport type TextAreaProperties = PolymorphicMotionProperties<'textarea'> & {\n rows?: number;\n};\n\nexport function TextArea(\n properties: React.PropsWithChildren<TextAreaProperties>,\n): React.ReactNode {\n return (\n <PolymorphicMotionElement<'textarea'>\n rows={get(properties, ['rows'], 4)}\n as='textarea'\n {...properties}\n className={twMerge(\n 'overflow-y-auto',\n textAreaStyles(properties),\n cursorStyles(properties),\n properties.className,\n )}\n />\n );\n}\n","import {\n PolymorphicMotionElement,\n type PolymorphicMotionElementMap,\n type PolymorphicMotionProperties,\n} from '@kurocado-studio/systemhaus-motion-react';\nimport {\n type TypographyLayoutOptions,\n modelTypography,\n} from '@kurocado-studio/systemhaus-ui';\nimport React from 'react';\nimport { twMerge } from 'tailwind-merge';\n\nexport type TypographyCore<T extends PolymorphicMotionElementMap = 'div'> =\n TypographyLayoutOptions & PolymorphicMotionProperties<T>;\n\nexport type TypographyProperties<\n T extends PolymorphicMotionElementMap = 'div',\n> = TypographyCore<T>;\n\nexport function Typography<T extends keyof HTMLElementTagNameMap>(\n properties: TypographyProperties<T>,\n): React.ReactNode {\n const { className, children, ...rest } = properties;\n\n return (\n // @ts-expect-error while we sync types\n <PolymorphicMotionElement<T>\n as={rest.as ?? 'p'}\n className={twMerge(modelTypography(properties), className)}\n {...rest}\n >\n {children}\n </PolymorphicMotionElement>\n );\n}\n","import { composeDesignSystem as composeDesignSystemBase } from '@kurocado-studio/systemhaus-api';\n\nimport type { Theme } from '../domain';\n\nexport const composeDesignSystem = (payload: Theme) =>\n composeDesignSystemBase(payload);\n","import { type AvatarComponentToken } from './types';\n\nexport const tailwindAvatarComponentToken: AvatarComponentToken = {\n bg: 'bg-avatar-root-bg-default',\n borderRadius: 'rounded-avatar-root-radius-default',\n fg: 'text-gray-100',\n border: 'border-2 border-gray-100',\n};\n\nexport const avatarVariantToken: AvatarComponentToken = {\n bg: 'avatar.root.bg.default',\n fg: 'avatar.root.fg.default',\n borderRadius: 'avatar.root.radius.default',\n border: 'avatar.root.border.default',\n};\n","import { tv } from 'tailwind-variants';\n\nimport { controlCommonStyles } from '../common';\nimport { tailwindAvatarComponentToken } from './tokens';\n\nconst baseAvatarStyles = tv({\n extend: controlCommonStyles,\n base: [\n tailwindAvatarComponentToken.bg,\n tailwindAvatarComponentToken.borderRadius,\n tailwindAvatarComponentToken.fg,\n tailwindAvatarComponentToken.border,\n ],\n defaultVariants: {\n borderRadiusSize: '2xl',\n controlSize: 'base',\n },\n});\n\nexport const avatarStyles = (payload: unknown): string =>\n baseAvatarStyles(payload as Record<string, unknown>);\n","import { tv } from 'tailwind-variants';\n\nimport { tailwindCardComponentToken } from '../Card';\nimport { focusRingStyles } from './focusRing.styles';\n\n/**\n * Tailwind’s default scale:\n * • h-8 / h-10 / h-12 → 32 / 40 / 48 px tall (meets 32-px tap-target)\n * • px-3 / px-4 / px-5 → 12 / 16 / 20 px horizontal padding\n * • text-sm / text-base keep copy legible while matching Tailwind buttons\n */\nexport const controlCommonStyles = tv({\n extend: focusRingStyles,\n base: [\n tailwindCardComponentToken.borderRadius,\n 'rounded-full',\n 'font-medium leading-5 text-sm',\n 'inline-flex items-center gap-2',\n 'border border-gray-300 dark:border-gray-500',\n 'bg-white dark:bg-gray-900 text-gray-800 dark:text-gray-300',\n 'outline-none transition-colors duration-150',\n ],\n variants: {\n size: {\n base: '',\n sm: 'h-8 px-3 text-sm',\n md: 'h-10 px-4 text-sm',\n lg: 'h-12 px-5 text-base',\n xl: '',\n '2xl': '',\n },\n fontSize: {\n base: 'text-base',\n sm: 'text-sm',\n md: 'text-md',\n lg: 'text-lg',\n xl: 'text-xl',\n '2xl': 'text-2xl',\n },\n controlSize: {\n base: 'size-16',\n sm: 'size-12',\n md: 'size-24',\n lg: 'size-36',\n xl: 'size-48',\n '2xl': 'size-60',\n },\n heightSize: {\n base: 'h-16',\n sm: 'h-12',\n md: 'h-24',\n lg: 'h-36',\n xl: 'h-48',\n '2xl': 'h-60',\n },\n widthSize: {\n base: 'w-',\n sm: 'w-',\n md: 'w-',\n lg: 'w-',\n xl: 'w-',\n '2xl': 'w-',\n },\n borderRadiusSize: {\n base: 'rounded-sm',\n sm: 'rounded-sm',\n md: 'rounded-md',\n lg: 'rounded-lg',\n xl: 'rounded-xl',\n '2xl': 'rounded-2xl',\n },\n disabled: {\n true: [\n 'bg-gray-100 dark:bg-gray-700 ',\n 'text-gray-400 border-gray-200 dark:border-gray-700',\n ],\n },\n },\n});\n","import { tv } from 'tailwind-variants';\n\nimport { tailwindCardComponentToken } from './tokens';\n\nconst defaultCardStyles = tv({\n base: [\n 'w-full',\n ...Object.values({\n bg: tailwindCardComponentToken.bg,\n fg: tailwindCardComponentToken.fg,\n }),\n ],\n});\n\nexport const cardHeaderClasses = tv({\n extend: defaultCardStyles,\n base: [tailwindCardComponentToken.padding],\n});\n\nexport const cardFooterClasses = tv({\n extend: defaultCardStyles,\n base: [tailwindCardComponentToken.padding],\n});\n\nexport const cardComponentWrapperClasses = tv({\n extend: defaultCardStyles,\n base: [\n 'dark:divide-gray-700',\n 'divide-gray-200',\n 'divide-y',\n 'overflow-hidden',\n tailwindCardComponentToken.borderRadius,\n tailwindCardComponentToken.border,\n ],\n variants: {\n tag: '',\n },\n});\n\nexport const cardBodyClasses = tv({\n extend: defaultCardStyles,\n base: [tailwindCardComponentToken.padding],\n});\n","import { type CardComponentToken } from './types';\n\nexport const tailwindCardComponentToken: CardComponentToken = {\n bg: 'bg-card-root-bg-default dark:bg-black',\n borderRadius: 'rounded-[12px]',\n fg: '',\n // borderRadius: 'rounded-card-root-radius-default',\n border: 'border-2 border-gray-200 dark:border-gray-800',\n divider: 'text-card-root-fg-default',\n padding: 'p-card-root-padding-default',\n};\n\nexport const cardVariantToken: CardComponentToken = {\n bg: 'card.root.bg.default',\n fg: 'card.root.fg.default',\n divider: 'card.root.divider.default',\n borderRadius: 'card.root.radius.default',\n border: 'card.root.border.default',\n padding: 'card.root.padding.default',\n};\n","import { tv } from 'tailwind-variants';\n\nexport const focusRingStyles = tv({\n base: 'outline focus-visible:ring-2 focus-visible:ring-blue-400 outline-blue-400 dark:outline-blue-500 forced-colors:outline-[Highlight] outline-offset-2',\n variants: {\n isFocusVisible: {\n false: 'outline-0',\n true: 'outline-2',\n },\n },\n});\n","import { tv } from 'tailwind-variants';\n\nconst baseCursorStyles = tv({\n base: 'cursor-pointer',\n variants: {\n loading: {\n true: 'cursor-progress',\n },\n disabled: {\n true: 'cursor-not-allowed',\n },\n },\n});\n\nexport const cursorStyles = <T>(payload: T): string =>\n baseCursorStyles(payload as unknown as Record<string, unknown>);\n","import { get } from 'lodash-es';\nimport { twMerge } from 'tailwind-merge';\n\nimport {\n columnStyles,\n directionStyles,\n gapStyles,\n itemsStyles,\n justifyStyles,\n minHStyles,\n minWStyles,\n rowStyles,\n} from './grid.styles';\nimport {\n type ColumnStyles,\n type DirectionStyles,\n type GapStyles,\n type GridComponentLayoutOptions,\n type ItemsStyles,\n type JustifyStyles,\n type MinHStyles,\n type MinWStyles,\n type RowStyles,\n} from './types';\n\nexport function modelGridLayout(payload: GridComponentLayoutOptions): string {\n const gridColumnStyles: ColumnStyles = {\n base: get(payload, ['columns', 'base'], get(payload, ['columns'])),\n sm: get(payload, ['columns', 'sm']),\n md: get(payload, ['columns', 'md']),\n lg: get(payload, ['columns', 'lg']),\n xl: get(payload, ['columns', 'xl']),\n '2xl': get(payload, ['columns', '2xl']),\n };\n\n const gridDirectionStyles: DirectionStyles = {\n base: get(payload, ['direction', 'base'], get(payload, ['direction'])),\n sm: get(payload, ['direction', 'sm']),\n md: get(payload, ['direction', 'md']),\n lg: get(payload, ['direction', 'lg']),\n xl: get(payload, ['direction', 'xl']),\n '2xl': get(payload, ['direction', '2xl']),\n };\n\n const gridGapStyles: GapStyles = {\n base: get(payload, ['gap', 'base'], get(payload, ['gap'])),\n sm: get(payload, ['gap', 'sm']),\n md: get(payload, ['gap', 'md']),\n lg: get(payload, ['gap', 'lg']),\n xl: get(payload, ['gap', 'xl']),\n '2xl': get(payload, ['gap', '2xl']),\n };\n\n const gridItemsStyles: ItemsStyles = {\n base: get(payload, ['items', 'base'], get(payload, ['items'])),\n sm: get(payload, ['items', 'sm']),\n md: get(payload, ['items', 'md']),\n lg: get(payload, ['items', 'lg']),\n xl: get(payload, ['items', 'xl']),\n '2xl': get(payload, ['items', '2xl']),\n };\n\n const gridJustifyStyles: JustifyStyles = {\n base: get(payload, ['justify', 'base'], get(payload, ['justify'])),\n sm: get(payload, ['justify', 'sm']),\n md: get(payload, ['justify', 'md']),\n lg: get(payload, ['justify', 'lg']),\n xl: get(payload, ['justify', 'xl']),\n '2xl': get(payload, ['justify', '2xl']),\n };\n\n const gridMinHStyles: MinHStyles = {\n base: get(payload, ['minH', 'base'], get(payload, ['minH'])),\n sm: get(payload, ['minH', 'sm']),\n md: get(payload, ['minH', 'md']),\n lg: get(payload, ['minH', 'lg']),\n xl: get(payload, ['minH', 'xl']),\n '2xl': get(payload, ['minH', '2xl']),\n };\n\n const gridMinWStyles: MinWStyles = {\n base: get(payload, ['minW', 'base'], get(payload, ['minW'])),\n sm: get(payload, ['minW', 'sm']),\n md: get(payload, ['minW', 'md']),\n lg: get(payload, ['minW', 'lg']),\n xl: get(payload, ['minW', 'xl']),\n '2xl': get(payload, ['minW', '2xl']),\n };\n\n const gridRowStyles: RowStyles = {\n base: get(payload, ['rows', 'base'], get(payload, ['rows'])),\n sm: get(payload, ['rows', 'sm']),\n md: get(payload, ['rows', 'md']),\n lg: get(payload, ['rows', 'lg']),\n xl: get(payload, ['rows', 'xl']),\n '2xl': get(payload, ['rows', '2xl']),\n };\n\n return twMerge(\n 'grid',\n columnStyles(gridColumnStyles),\n directionStyles(gridDirectionStyles),\n gapStyles(gridGapStyles),\n itemsStyles(gridItemsStyles),\n justifyStyles(gridJustifyStyles),\n minHStyles(gridMinHStyles),\n minWStyles(gridMinWStyles),\n rowStyles(gridRowStyles),\n );\n}\n","import { tv } from 'tailwind-variants';\n\nexport const directionStyles = tv({\n variants: {\n base: {\n vertical: 'grid-flow-row',\n horizontal: 'grid-flow-col',\n },\n sm: {\n vertical: 'sm:grid-flow-row',\n horizontal: 'sm:grid-flow-col',\n },\n md: {\n vertical: 'md:grid-flow-row',\n horizontal: 'md:grid-flow-col',\n },\n lg: {\n vertical: 'lg:grid-flow-row',\n horizontal: 'lg:grid-flow-col',\n },\n xl: {\n vertical: 'xl:grid-flow-row',\n horizontal: 'xl:grid-flow-col',\n },\n '2xl': {\n vertical: '2xl:grid-flow-row',\n horizontal: '2xl:grid-flow-col',\n },\n },\n defaultVariants: {\n base: 'vertical',\n },\n});\n\nexport const columnStyles = tv({\n variants: {\n base: {\n '1': 'grid-cols-1',\n '2': 'grid-cols-2',\n '3': 'grid-cols-3',\n '4': 'grid-cols-4',\n '5': 'grid-cols-5',\n '6': 'grid-cols-6',\n '7': 'grid-cols-7',\n '8': 'grid-cols-8',\n '9': 'grid-cols-9',\n '10': 'grid-cols-10',\n '11': 'grid-cols-11',\n '12': 'grid-cols-12',\n },\n sm: {\n '1': 'sm:grid-cols-1',\n '2': 'sm:grid-cols-2',\n '3': 'sm:grid-cols-3',\n '4': 'sm:grid-cols-4',\n '5': 'sm:grid-cols-5',\n '6': 'sm:grid-cols-6',\n '7': 'sm:grid-cols-7',\n '8': 'sm:grid-cols-8',\n '9': 'sm:grid-cols-9',\n '10': 'sm:grid-cols-10',\n '11': 'sm:grid-cols-11',\n '12': 'sm:grid-cols-12',\n },\n md: {\n '1': 'md:grid-cols-1',\n '2': 'md:grid-cols-2',\n '3': 'md:grid-cols-3',\n '4': 'md:grid-cols-4',\n '5': 'md:grid-cols-5',\n '6': 'md:grid-cols-6',\n '7': 'md:grid-cols-7',\n '8': 'md:grid-cols-8',\n '9': 'md:grid-cols-9',\n '10': 'md:grid-cols-10',\n '11': 'md:grid-cols-11',\n '12': 'md:grid-cols-12',\n },\n lg: {\n '1': 'lg:grid-cols-1',\n '2': 'lg:grid-cols-2',\n '3': 'lg:grid-cols-3',\n '4': 'lg:grid-cols-4',\n '5': 'lg:grid-cols-5',\n '6': 'lg:grid-cols-6',\n '7': 'lg:grid-cols-7',\n '8': 'lg:grid-cols-8',\n '9': 'lg:grid-cols-9',\n '10': 'lg:grid-cols-10',\n '11': 'lg:grid-cols-11',\n '12': 'lg:grid-cols-12',\n },\n xl: {\n '1': 'xl:grid-cols-1',\n '2': 'xl:grid-cols-2',\n '3': 'xl:grid-cols-3',\n '4': 'xl:grid-cols-4',\n '5': 'xl:grid-cols-5',\n '6': 'xl:grid-cols-6',\n '7': 'xl:grid-cols-7',\n '8': 'xl:grid-cols-8',\n '9': 'xl:grid-cols-9',\n '10': 'xl:grid-cols-10',\n '11': 'xl:grid-cols-11',\n '12': 'xl:grid-cols-12',\n },\n '2xl': {\n '1': '2xl:grid-cols-1',\n '2': '2xl:grid-cols-2',\n '3': '2xl:grid-cols-3',\n '4': '2xl:grid-cols-4',\n '5': '2xl:grid-cols-5',\n '6': '2xl:grid-cols-6',\n '7': '2xl:grid-cols-7',\n '8': '2xl:grid-cols-8',\n '9': '2xl:grid-cols-9',\n '10': '2xl:grid-cols-10',\n '11': '2xl:grid-cols-11',\n '12': '2xl:grid-cols-12',\n },\n },\n defaultVariants: {\n base: '1',\n },\n});\n\nexport const rowStyles = tv({\n variants: {\n base: {\n '1': 'grid-rows-1',\n '2': 'grid-rows-2',\n '3': 'grid-rows-3',\n '4': 'grid-rows-4',\n '5': 'grid-rows-5',\n '6': 'grid-rows-6',\n '7': 'grid-rows-7',\n '8': 'grid-rows-8',\n '9': 'grid-rows-9',\n '10': 'grid-rows-10',\n '11': 'grid-rows-11',\n '12': 'grid-rows-12',\n },\n sm: {\n '1': 'sm:grid-rows-1',\n '2': 'sm:grid-rows-2',\n '3': 'sm:grid-rows-3',\n '4': 'sm:grid-rows-4',\n '5': 'sm:grid-rows-5',\n '6': 'sm:grid-rows-6',\n '7': 'sm:grid-rows-7',\n '8': 'sm:grid-rows-8',\n '9': 'sm:grid-rows-9',\n '10': 'sm:grid-rows-10',\n '11': 'sm:grid-rows-11',\n '12': 'sm:grid-rows-12',\n },\n md: {\n '1': 'md:grid-rows-1',\n '2': 'md:grid-rows-2',\n '3': 'md:grid-rows-3',\n '4': 'md:grid-rows-4',\n '5': 'md:grid-rows-5',\n '6': 'md:grid-rows-6',\n '7': 'md:grid-rows-7',\n '8': 'md:grid-rows-8',\n '9': 'md:grid-rows-9',\n '10': 'md:grid-rows-10',\n '11': 'md:grid-rows-11',\n '12': 'md:grid-rows-12',\n },\n lg: {\n '1': 'lg:grid-rows-1',\n '2': 'lg:grid-rows-2',\n '3': 'lg:grid-rows-3',\n '4': 'lg:grid-rows-4',\n '5': 'lg:grid-rows-5',\n '6': 'lg:grid-rows-6',\n '7': 'lg:grid-rows-7',\n '8': 'lg:grid-rows-8',\n '9': 'lg:grid-rows-9',\n '10': 'lg:grid-rows-10',\n '11': 'lg:grid-rows-11',\n '12': 'lg:grid-rows-12',\n },\n xl: {\n '1': 'xl:grid-rows-1',\n '2': 'xl:grid-rows-2',\n '3': 'xl:grid-rows-3',\n '4': 'xl:grid-rows-4',\n '5': 'xl:grid-rows-5',\n '6': 'xl:grid-rows-6',\n '7': 'xl:grid-rows-7',\n '8': 'xl:grid-rows-8',\n '9': 'xl:grid-rows-9',\n '10': 'xl:grid-rows-10',\n '11': 'xl:grid-rows-11',\n '12': 'xl:grid-rows-12',\n },\n '2xl': {\n '1': '2xl:grid-rows-1',\n '2': '2xl:grid-rows-2',\n '3': '2xl:grid-rows-3',\n '4': '2xl:grid-rows-4',\n '5': '2xl:grid-rows-5',\n '6': '2xl:grid-rows-6',\n '7': '2xl:grid-rows-7',\n '8': '2xl:grid-rows-8',\n '9': '2xl:grid-rows-9',\n '10': '2xl:grid-rows-10',\n '11': '2xl:grid-rows-11',\n '12': '2xl:grid-rows-12',\n },\n },\n defaultVariants: {\n base: '1',\n },\n});\n\nexport const gapStyles = tv({\n variants: {\n base: {\n '0': 'gap-0',\n '1': 'gap-1',\n '2': 'gap-2',\n '4': 'gap-4',\n '6': 'gap-6',\n '8': 'gap-8',\n },\n sm: {\n '0': 'sm:gap-0',\n '1': 'sm:gap-1',\n '2': 'sm:gap-2',\n '4': 'sm:gap-4',\n '6': 'sm:gap-6',\n '8': 'sm:gap-8',\n },\n md: {\n '0': 'md:gap-0',\n '1': 'md:gap-1',\n '2': 'md:gap-2',\n '4': 'md:gap-4',\n '6': 'md:gap-6',\n '8': 'md:gap-8',\n },\n lg: {\n '0': 'lg:gap-0',\n '1': 'lg:gap-1',\n '2': 'lg:gap-2',\n '4': 'lg:gap-4',\n '6': 'lg:gap-6',\n '8': 'lg:gap-8',\n },\n xl: {\n '0': 'xl:gap-0',\n '1': 'xl:gap-1',\n '2': 'xl:gap-2',\n '4': 'xl:gap-4',\n '6': 'xl:gap-6',\n '8': 'xl:gap-8',\n },\n '2xl': {\n '0': '2xl:gap-0',\n '1': '2xl:gap-1',\n '2': '2xl:gap-2',\n '4': '2xl:gap-4',\n '6': '2xl:gap-6',\n '8': '2xl:gap-8',\n },\n },\n defaultVariants: {\n base: '0',\n },\n});\n\nexport const justifyStyles = tv({\n variants: {\n base: {\n start: 'justify-items-start',\n center: 'justify-items-center',\n end: 'justify-items-end',\n between: 'justify-items-between',\n around: 'justify-items-around',\n evenly: 'justify-items-evenly',\n },\n sm: {\n start: 'sm:justify-items-start',\n center: 'sm:justify-items-center',\n end: 'sm:justify-items-end',\n between: 'sm:justify-items-between',\n around: 'sm:justify-items-around',\n evenly: 'sm:justify-items-evenly',\n },\n md: {\n start: 'md:justify-items-start',\n center: 'md:justify-items-center',\n end: 'md:justify-items-end',\n between: 'md:justify-items-between',\n around: 'md:justify-items-around',\n evenly: 'md:justify-items-evenly',\n },\n lg: {\n start: 'lg:justify-items-start',\n center: 'lg:justify-items-center',\n end: 'lg:justify-items-end',\n between: 'lg:justify-items-between',\n around: 'lg:justify-items-around',\n evenly: 'lg:justify-items-evenly',\n },\n xl: {\n start: 'xl:justify-items-start',\n center: 'xl:justify-items-center',\n end: 'xl:justify-items-end',\n between: 'xl:justify-items-between',\n around: 'xl:justify-items-around',\n evenly: 'xl:justify-items-evenly',\n },\n '2xl': {\n start: '2xl:justify-items-start',\n center: '2xl:justify-items-center',\n end: '2xl:justify-items-end',\n between: '2xl:justify-items-between',\n around: '2xl:justify-items-around',\n evenly: '2xl:justify-items-evenly',\n },\n },\n defaultVariants: {\n base: 'start',\n },\n});\n\nexport const itemsStyles = tv({\n variants: {\n base: {\n start: 'items-start',\n center: 'items-center',\n end: 'items-end',\n stretch: 'items-stretch',\n },\n sm: {\n start: 'sm:items-start',\n center: 'sm:items-center',\n end: 'sm:items-end',\n stretch: 'sm:items-stretch',\n },\n md: {\n start: 'md:items-start',\n center: 'md:items-center',\n end: 'md:items-end',\n stretch: 'md:items-stretch',\n },\n lg: {\n start: 'lg:items-start',\n center: 'lg:items-center',\n end: 'lg:items-end',\n stretch: 'lg:items-stretch',\n },\n xl: {\n start: 'xl:items-start',\n center: 'xl:items-center',\n end: 'xl:items-end',\n stretch: 'xl:items-stretch',\n },\n '2xl': {\n start: '2xl:items-start',\n center: '2xl:items-center',\n end: '2xl:items-end',\n stretch: '2xl:items-stretch',\n },\n },\n defaultVariants: {\n base: 'stretch',\n },\n});\n\nexport const minWStyles = tv({\n variants: {\n base: {\n '0': 'min-w-0',\n full: 'min-w-full',\n fit: 'min-w-fit',\n max: 'min-w-max',\n screen: 'min-w-screen',\n },\n sm: {\n '0': 'sm:min-w-0',\n full: 'sm:min-w-full',\n fit: 'sm:min-w-fit',\n max: 'sm:min-w-max',\n screen: 'sm:min-w-screen',\n },\n md: {\n '0': 'md:min-w-0',\n full: 'md:min-w-full',\n fit: 'md:min-w-fit',\n max: 'md:min-w-max',\n screen: 'md:min-w-screen',\n },\n lg: {\n '0': 'lg:min-w-0',\n full: 'lg:min-w-full',\n fit: 'lg:min-w-fit',\n max: 'lg:min-w-max',\n screen: 'lg:min-w-screen',\n },\n xl: {\n '0': 'xl:min-w-0',\n full: 'xl:min-w-full',\n fit: 'xl:min-w-fit',\n max: 'xl:min-w-max',\n screen: 'xl:min-w-screen',\n },\n '2xl': {\n '0': '2xl:min-w-0',\n full: '2xl:min-w-full',\n fit: '2xl:min-w-fit',\n max: '2xl:min-w-max',\n screen: '2xl:min-w-screen',\n },\n },\n defaultVariants: {\n base: '0',\n },\n});\n\nexport const minHStyles = tv({\n variants: {\n base: {\n '0': 'min-h-0',\n full: 'min-h-full',\n fit: 'min-h-fit',\n max: 'min-h-max',\n screen: 'min-h-screen',\n },\n sm: {\n '0': 'sm:min-h-0',\n full: 'sm:min-h-full',\n fit: 'sm:min-h-fit',\n max: 'sm:min-h-max',\n screen: 'sm:min-h-screen',\n },\n md: {\n '0': 'md:min-h-0',\n full: 'md:min-h-full',\n fit: 'md:min-h-fit',\n max: 'md:min-h-max',\n screen: 'md:min-h-screen',\n },\n lg: {\n '0': 'lg:min-h-0',\n full: 'lg:min-h-full',\n fit: 'lg:min-h-fit',\n max: 'lg:min-h-max',\n screen: 'lg:min-h-screen',\n },\n xl: {\n '0': 'xl:min-h-0',\n full: 'xl:min-h-full',\n fit: 'xl:min-h-fit',\n max: 'xl:min-h-max',\n screen: 'xl:min-h-screen',\n },\n '2xl': {\n '0': '2xl:min-h-0',\n full: '2xl:min-h-full',\n fit: '2xl:min-h-fit',\n max: '2xl:min-h-max',\n screen: '2xl:min-h-screen',\n },\n },\n defaultVariants: {\n base: '0',\n },\n});\n","import { tv } from 'tailwind-variants';\n\nimport { focusRingStyles } from '../common';\n\nconst baseInputStyles = tv({\n extend: focusRingStyles,\n base: [\n 'w-full flex items-center flex-1 min-w-0 h-12 overflow-hidden',\n 'px-4 my-2',\n 'bg-white dark:bg-gray-900 forced-colors:bg-[Field]',\n 'border-2 rounded-2xl',\n 'text-md text-gray-800 dark:text-gray-300 outline outline-0',\n 'rounded-card-root-radius-default',\n 'placeholder-gray-500',\n ],\n variants: {\n isFocusWithin: {\n false:\n 'border-gray-300 dark:border-gray-500 forced-colors:border-[ButtonBorder]',\n true: 'border-gray-600 dark:border-gray-300 forced-colors:border-[Highlight]',\n },\n invalid: {\n true: 'border-red-600 dark:border-red-600 forced-colors:border-[Mark]',\n },\n disabled: {\n true: [\n 'disabled:text-gray-200 dark:disabled:text-gray-500',\n 'dark:bg-gray-700',\n 'border-gray-200 dark:border-gray-700 forced-colors:border-[GrayText]',\n ],\n },\n },\n});\n\nexport const inputStyles = <T>(properties: T): string =>\n baseInputStyles(properties as unknown as Record<string, unknown>);\n","import { tv } from 'tailwind-variants';\n\nexport const panelDialogStyles = tv({\n base: ['relative', 'z-9999'],\n});\n\nexport const panelBackdropStyles = tv({\n base: ['fixed', 'inset-0', 'backdrop-blur-sm'],\n});\n\nexport const panelContainerStyles = tv({\n base: [\n 'pointer-events-none',\n 'right-0',\n 'fixed',\n 'inset-y-0',\n 'flex',\n 'max-w-full',\n ],\n});\n\nexport const panelWrapperStyles = tv({\n base: ['pointer-events-auto', 'w-screen', 'my-2 mr-2'],\n variants: {\n size: {\n sm: 'max-w-sm',\n md: 'max-w-md',\n lg: 'max-w-2xl',\n },\n },\n defaultVariants: {\n size: 'sm',\n },\n});\n\nexport const panelFormStyles = tv({\n base: ['flex', 'h-full', 'flex-col', 'overflow-y-auto', 'shadow-xl'],\n variants: {\n rounded: {\n true: 'rounded-lg',\n false: '',\n },\n },\n defaultVariants: {\n rounded: false,\n },\n});\n","import { tv } from 'tailwind-variants';\n\nexport const sizeStyles = tv({\n variants: {\n base: {\n xs: 'text-xs',\n sm: 'text-sm',\n caption: 'text-caption',\n base: 'text-base',\n lg: 'text-lg',\n xl: 'text-xl',\n '2xl': 'text-2xl',\n '3xl': 'text-3xl',\n '4xl': 'text-4xl',\n '5xl': 'text-5xl',\n '6xl': 'text-6xl',\n '7xl': 'text-7xl',\n '8xl': 'text-8xl',\n '9xl': 'text-9xl',\n },\n sm: {\n xs: 'sm:text-xs',\n sm: 'sm:text-sm',\n caption: 'sm:text-caption',\n base: 'sm:text-base',\n lg: 'sm:text-lg',\n xl: 'sm:text-xl',\n '2xl': 'sm:text-2xl',\n '3xl': 'sm:text-3xl',\n '4xl': 'sm:text-4xl',\n '5xl': 'sm:text-5xl',\n '6xl': 'sm:text-6xl',\n '7xl': 'sm:text-7xl',\n '8xl': 'sm:text-8xl',\n '9xl': 'sm:text-9xl',\n },\n md: {\n xs: 'md:text-xs',\n sm: 'md:text-sm',\n caption: 'md:text-caption',\n base: 'md:text-base',\n lg: 'md:text-lg',\n xl: 'md:text-xl',\n '2xl': 'md:text-2xl',\n '3xl': 'md:text-3xl',\n '4xl': 'md:text-4xl',\n '5xl': 'md:text-5xl',\n '6xl': 'md:text-6xl',\n '7xl': 'md:text-7xl',\n '8xl': 'md:text-8xl',\n '9xl': 'md:text-9xl',\n },\n lg: {\n xs: 'lg:text-xs',\n sm: 'lg:text-sm',\n caption: 'lg:text-caption',\n base: 'lg:text-base',\n lg: 'lg:text-lg',\n xl: 'lg:text-xl',\n '2xl': 'lg:text-2xl',\n '3xl': 'lg:text-3xl',\n '4xl': 'lg:text-4xl',\n '5xl': 'lg:text-5xl',\n '6xl': 'lg:text-6xl',\n '7xl': 'lg:text-7xl',\n '8xl': 'lg:text-8xl',\n '9xl': 'lg:text-9xl',\n },\n xl: {\n xs: 'xl:text-xs',\n sm: 'xl:text-sm',\n caption: 'xl:text-caption',\n base: 'xl:text-base',\n lg: 'xl:text-lg',\n xl: 'xl:text-xl',\n '2xl': 'xl:text-2xl',\n '3xl': 'xl:text-3xl',\n '4xl': 'xl:text-4xl',\n '5xl': 'xl:text-5xl',\n '6xl': 'xl:text-6xl',\n '7xl': 'xl:text-7xl',\n '8xl': 'xl:text-8xl',\n '9xl': 'xl:text-9xl',\n },\n '2xl': {\n xs: '2xl:text-xs',\n sm: '2xl:text-sm',\n caption: '2xl:text-caption',\n base: '2xl:text-base',\n lg: '2xl:text-lg',\n xl: '2xl:text-xl',\n '2xl': '2xl:text-2xl',\n '3xl': '2xl:text-3xl',\n '4xl': '2xl:text-4xl',\n '5xl': '2xl:text-5xl',\n '6xl': '2xl:text-6xl',\n '7xl': '2xl:text-7xl',\n '8xl': '2xl:text-8xl',\n '9xl': '2xl:text-9xl',\n },\n },\n});\n\nexport const weightStyles = tv({\n variants: {\n base: {\n thin: 'font-thin',\n extralight: 'font-extralight',\n light: 'font-light',\n normal: 'font-normal',\n medium: 'font-medium',\n semibold: 'font-semibold',\n bold: 'font-bold',\n extrabold: 'font-extrabold',\n black: 'font-black',\n },\n sm: {\n thin: 'sm:font-thin',\n extralight: 'sm:font-extralight',\n light: 'sm:font-light',\n normal: 'sm:font-normal',\n medium: 'sm:font-medium',\n semibold: 'sm:font-semibold',\n bold: 'sm:font-bold',\n extrabold: 'sm:font-extrabold',\n black: 'sm:font-black',\n },\n md: {\n thin: 'md:font-thin',\n extralight: 'md:font-extralight',\n light: 'md:font-light',\n normal: 'md:font-normal',\n medium: 'md:font-medium',\n semibold: 'md:font-semibold',\n bold: 'md:font-bold',\n extrabold: 'md:font-extrabold',\n black: 'md:font-black',\n },\n lg: {\n thin: 'lg:font-thin',\n extralight: 'lg:font-extralight',\n light: 'lg:font-light',\n normal: 'lg:font-normal',\n medium: 'lg:font-medium',\n semibold: 'lg:font-semibold',\n bold: 'lg:font-bold',\n extrabold: 'lg:font-extrabold',\n black: 'lg:font-black',\n },\n xl: {\n thin: 'xl:font-thin',\n extralight: 'xl:font-extralight',\n light: 'xl:font-light',\n normal: 'xl:font-normal',\n medium: 'xl:font-medium',\n semibold: 'xl:font-semibold',\n bold: 'xl:font-bold',\n extrabold: 'xl:font-extrabold',\n black: 'xl:font-black',\n },\n '2xl': {\n thin: '2xl:font-thin',\n extralight: '2xl:font-extralight',\n light: '2xl:font-light',\n normal: '2xl:font-normal',\n medium: '2xl:font-medium',\n semibold: '2xl:font-semibold',\n bold: '2xl:font-bold',\n extrabold: '2xl:font-extrabold',\n black: '2xl:font-black',\n },\n },\n});\n\nexport const leadingStyles = tv({\n variants: {\n base: {\n none: 'leading-none',\n tight: 'leading-tight',\n snug: 'leading-snug',\n normal: 'leading-normal',\n relaxed: 'leading-relaxed',\n loose: 'leading-loose',\n },\n sm: {\n none: 'sm:leading-none',\n tight: 'sm:leading-tight',\n snug: 'sm:leading-snug',\n normal: 'sm:leading-normal',\n relaxed: 'sm:leading-relaxed',\n loose: 'sm:leading-loose',\n },\n md: {\n none: 'md:leading-none',\n tight: 'md:leading-tight',\n snug: 'md:leading-snug',\n normal: 'md:leading-normal',\n relaxed: 'md:leading-relaxed',\n loose: 'md:leading-loose',\n },\n lg: {\n none: 'lg:leading-none',\n tight: 'lg:leading-tight',\n snug: 'lg:leading-snug',\n normal: 'lg:leading-normal',\n relaxed: 'lg:leading-relaxed',\n loose: 'lg:leading-loose',\n },\n xl: {\n none: 'xl:leading-none',\n tight: 'xl:leading-tight',\n snug: 'xl:leading-snug',\n normal: 'xl:leading-normal',\n relaxed: 'xl:leading-relaxed',\n loose: 'xl:leading-loose',\n },\n '2xl': {\n none: '2xl:leading-none',\n tight: '2xl:leading-tight',\n snug: '2xl:leading-snug',\n normal: '2xl:leading-normal',\n relaxed: '2xl:leading-relaxed',\n loose: '2xl:leading-loose',\n },\n },\n});\n\nexport const alignStyles = tv({\n variants: {\n base: {\n left: 'text-left',\n center: 'text-center',\n right: 'text-right',\n justify: 'text-justify',\n },\n sm: {\n left: 'sm:text-left',\n center: 'sm:text-center',\n right: 'sm:text-right',\n justify: 'sm:text-justify',\n },\n md: {\n left: 'md:text-left',\n center: 'md:text-center',\n right: 'md:text-right',\n justify: 'md:text-justify',\n },\n lg: {\n left: 'lg:text-left',\n center: 'lg:text-center',\n right: 'lg:text-right',\n justify: 'lg:text-justify',\n },\n xl: {\n left: 'xl:text-left',\n center: 'xl:text-center',\n right: 'xl:text-right',\n justify: 'xl:text-justify',\n },\n '2xl': {\n left: '2xl:text-left',\n center: '2xl:text-center',\n right: '2xl:text-right',\n justify: '2xl:text-justify',\n },\n },\n});\n\nexport const italicStyles = tv({\n variants: { italic: { true: 'italic', false: 'not-italic' } },\n});\n","import type { TypographyLayoutOptions } from '../types';\n\nexport type ComposeLabelOptions = TypographyLayoutOptions;\n\nexport function composeLabel(\n properties: TypographyLayoutOptions,\n): TypographyLayoutOptions & { as: 'label' } {\n return {\n ...properties,\n as: 'label',\n size: 'caption',\n weight: 'bold',\n leading: 'tight',\n };\n}\n","import { get } from 'lodash-es';\nimport { twMerge } from 'tailwind-merge';\n\nimport { type TypographyLayoutOptions } from './types';\nimport {\n alignStyles,\n italicStyles,\n leadingStyles,\n sizeStyles,\n weightStyles,\n} from './typography.styles';\n\nexport function modelTypography(payload: TypographyLayoutOptions): string {\n const { italic, className } = payload;\n\n const alignment = {\n base: get(payload, ['align', 'base'], get(payload, ['align'])),\n sm: get(payload, ['align', 'sm']),\n md: get(payload, ['align', 'md']),\n lg: get(payload, ['align', 'lg']),\n xl: get(payload, ['align', 'xl']),\n '2xl': get(payload, ['align', '2xl']),\n };\n\n const size = {\n base: get(payload, ['size', 'base'], get(payload, ['size'])),\n sm: get(payload, ['size', 'sm']),\n md: get(payload, ['size', 'md']),\n lg: get(payload, ['size', 'lg']),\n xl: get(payload, ['size', 'xl']),\n '2xl': get(payload, ['size', '2xl']),\n };\n\n const weight = {\n base: get(payload, ['weight', 'base'], get(payload, ['weight'])),\n sm: get(payload, ['weight', 'sm']),\n md: get(payload, ['weight', 'md']),\n lg: get(payload, ['weight', 'lg']),\n xl: get(payload, ['weight', 'xl']),\n '2xl': get(payload, ['weight', '2xl']),\n };\n\n const leading = {\n base: get(payload, ['leading', 'base'], get(payload, ['leading'])),\n sm: get(payload, ['leading', 'sm']),\n md: get(payload, ['leading', 'md']),\n lg: get(payload, ['leading', 'lg']),\n xl: get(payload, ['leading', 'xl']),\n '2xl': get(payload, ['leading', '2xl']),\n };\n return twMerge(\n className,\n 'text-gray-800 dark:text-gray-200',\n alignStyles(alignment),\n italicStyles({ italic }),\n sizeStyles(size),\n weightStyles(weight),\n leadingStyles(leading),\n );\n}\n","export function handleToggleLightDarkTheme(): void {\n const root = document.documentElement;\n const selectedMode = root.classList.contains('dark');\n root.classList.toggle('dark', !selectedMode);\n}\n","export const HTMLStyleElementId = 'KUROCADO_STUDIO_CSS_VARIABLES_MAP';\n\nexport function handleVariablesMap(\n htmlStyleElementReference: HTMLStyleElement | null,\n cssVariablesPayload: Record<string, unknown>,\n): HTMLStyleElement {\n let styleElementReference: HTMLStyleElement | null =\n htmlStyleElementReference ??\n (document.querySelector(HTMLStyleElementId) as HTMLStyleElement);\n\n if (!styleElementReference) {\n styleElementReference = document.createElement('style');\n styleElementReference.id = HTMLStyleElementId;\n }\n\n styleElementReference.textContent = `:root {\n ${Object.entries(cssVariablesPayload)\n .map(([variableName, variableValue]) =>\n typeof variableValue === 'string'\n ? `${variableName}: ${variableValue};`\n : '',\n )\n .join('\\n')}\n }`;\n\n document.head.append(styleElementReference);\n return styleElementReference;\n}\n","export { handleVariablesMap } from './variablesMap';\n\nexport function handleSetThemeVariable(options: {\n variableName: string;\n variableValue: string;\n}):\n | {\n variableName: string;\n variableValue: string;\n }\n | undefined {\n const { variableName, variableValue } = options;\n\n const styles = getComputedStyle(document.documentElement);\n const cssVariableValue = styles.getPropertyValue(variableName);\n\n if (cssVariableValue.trim().length === 0) return;\n\n return {\n variableName,\n variableValue,\n };\n}\n","export const ThemeProviderSymbol = Symbol('ThemeProvider');\n","export const DEFAULT_VIEWPORT = {\n once: false,\n margin: '0px 0px -200px',\n};\nexport const DEFAULT_STAGGER_SPEED = 0.2;\nexport const DEFAULT_FADE_IN_SPEED = 24;\nexport const DEFAULT_TRANSITION_DURATION = 0.5;\n","import { get } from 'lodash-es';\n\nimport {\n DEFAULT_FADE_IN_SPEED,\n DEFAULT_STAGGER_SPEED,\n DEFAULT_TRANSITION_DURATION,\n DEFAULT_VIEWPORT,\n} from './constants';\nimport { FadeInDirection } from './enums';\nimport { type FadePropertiesOptions } from './types';\n\nexport function createFadeProperties<T extends keyof HTMLElementTagNameMap>(\n payload: Partial<FadePropertiesOptions<T>>,\n): Record<string, unknown> {\n const { shouldReduceMotion, isInStaggerGroup } = payload;\n\n const staggerOrder = get(payload, ['staggerOrder'], 0);\n const fadeInDirection = get(\n payload,\n ['fadeInDirection'],\n FadeInDirection.DEFAULT,\n );\n\n const rawSpeed = Math.abs(\n get(payload, ['fadeInSpeed'], DEFAULT_FADE_IN_SPEED),\n );\n\n const transitionDuration = Math.abs(\n get(payload, ['transitionDuration'], DEFAULT_TRANSITION_DURATION),\n );\n\n const viewport = get(payload, ['viewport'], DEFAULT_VIEWPORT);\n\n const positiveSpeed = shouldReduceMotion ? 0 : rawSpeed;\n const negativeSpeed = shouldReduceMotion ? 0 : -rawSpeed;\n\n const variantMap: { [K in FadeInDirection]: Record<string, unknown> } = {\n [FadeInDirection.DEFAULT]: {\n hidden: { opacity: 0, y: 0 },\n visible: { opacity: 1, y: 0 },\n },\n [FadeInDirection.UP]: {\n hidden: { opacity: 0, y: positiveSpeed },\n visible: { opacity: 1, y: 0 },\n },\n [FadeInDirection.DOWN]: {\n hidden: { opacity: 0, y: negativeSpeed },\n visible: { opacity: 1, y: 0 },\n },\n [FadeInDirection.LEFT_TO_RIGHT]: {\n hidden: { opacity: 0, x: negativeSpeed },\n visible: { opacity: 1, x: 0 },\n },\n [FadeInDirection.RIGHT_TO_LEFT]: {\n hidden: { opacity: 0, x: positiveSpeed },\n visible: { opacity: 1, x: 0 },\n },\n };\n\n return {\n variants: get(variantMap, [fadeInDirection], variantMap.DEFAULT),\n transition: {\n duration: transitionDuration,\n delay: staggerOrder * DEFAULT_STAGGER_SPEED,\n },\n ...(!isInStaggerGroup && {\n initial: 'hidden',\n whileInView: 'visible',\n viewport,\n }),\n };\n}\n","export enum FadeInDirection {\n DEFAULT = 'DEFAULT',\n UP = 'UP',\n DOWN = 'DOWN',\n LEFT_TO_RIGHT = 'LEFT_TO_RIGHT',\n RIGHT_TO_LEFT = 'RIGHT_TO_LEFT',\n}\n","/* eslint import/order:0 */\n/**\n *\n * TODO: fix mismatch between ESLint sort order still\n */\nimport { get } from 'lodash-es';\n\nimport { type Framework, type MotionIntrinsicProperties } from '../../types';\nimport { DEFAULT_STAGGER_SPEED, DEFAULT_VIEWPORT } from './constants';\n\nexport function createStaggerContainerProperties<\n T extends string,\n K extends Framework,\n>(options: {\n staggerSpeed?: number;\n}): Partial<MotionIntrinsicProperties<T, K>> {\n const staggerSpeed = get(options, ['staggerSpeed'], DEFAULT_STAGGER_SPEED);\n\n return {\n initial: 'hidden',\n whileInView: 'visible',\n viewport: DEFAULT_VIEWPORT,\n variants: {\n hidden: {},\n visible: { transition: { staggerChildren: staggerSpeed } },\n },\n } as MotionIntrinsicProperties<T, K>;\n}\n","import {\n type ThemeProviderComposer,\n handleSetThemeVariable,\n handleToggleLightDarkTheme,\n handleVariablesMap,\n} from '../domain';\n\nexport function composeThemeProvider(): ThemeProviderComposer {\n return {\n handleSetThemeVariable,\n handleVariablesMap,\n handleToggleLightDarkTheme,\n };\n}\n","import { get } from 'lodash-es';\n\nexport const composeAnimationProperties = (\n properties: unknown,\n): Record<string, unknown> => {\n return {\n animate: get(properties, ['animate']),\n initial: get(properties, ['initial']),\n exit: get(properties, ['exit']),\n whileHover: get(properties, ['whileHover']),\n whileTap: get(properties, ['whileTap']),\n whileFocus: get(properties, ['whileFocus']),\n variants: get(properties, ['variants']),\n transition: get(properties, ['transition']) as TransitionEvent,\n };\n};\n","export function createCssVariableEntry(\n prefix: string,\n name: string,\n value: string,\n): {\n cssVariableName: string;\n cssVariableValue: string;\n cssVariableReference: string;\n} {\n const cssVariableName = `--${prefix}-${name}`;\n const cssVariableValue = value;\n const cssVariableReference = `var(${cssVariableName})`;\n\n return {\n cssVariableName,\n cssVariableValue,\n cssVariableReference,\n };\n}\n","export function flattenResponsive(\n prefix: string,\n map: Record<string, string | number>,\n): string[] {\n return Object.entries(map).map(\n ([breakpoint, value]) => `${breakpoint}:${prefix}${value}`,\n );\n}\n","/**\n * TODO: fix mismatch between ESLint sort order still\n */\nimport {\n type ComposeLabelOptions,\n composeLabel,\n} from '@kurocado-studio/ui-domain';\nimport React from 'react';\n\nimport { Typography } from './Typography';\n\nexport type LabelProperties = React.LabelHTMLAttributes<HTMLLabelElement> &\n ComposeLabelOptions & {\n className?: string;\n };\n\nexport function Label(properties: LabelProperties): React.ReactNode {\n return (\n <Typography {...composeLabel(properties)} className={properties.className}>\n {properties.children}\n </Typography>\n );\n}\n","import { type TypographyLayoutOptions } from '@kurocado-studio/ui-domain';\nimport React from 'react';\nimport { twMerge } from 'tailwind-merge';\n\nimport { Typography, type TypographyProperties } from './Typography';\nimport type { TypographyOverwrites } from './types';\n\nexport function createTextVariant<\n T extends keyof HTMLElementTagNameMap = 'div',\n>(\n properties: TypographyProperties<T> & TypographyOverwrites<T>,\n): React.ReactNode {\n return (\n <Typography<T>\n {...properties}\n className={twMerge(\n properties.fontDisplay ? 'font-display' : undefined,\n properties.className,\n )}\n />\n );\n}\n\nconst baseProperties: TypographyLayoutOptions = {\n weight: {\n base: 'normal',\n sm: 'normal',\n md: 'normal',\n lg: 'normal',\n xl: 'normal',\n '2xl': 'normal',\n },\n leading: {\n base: 'normal',\n sm: 'normal',\n md: 'normal',\n lg: 'normal',\n xl: 'normal',\n '2xl': 'normal',\n },\n align: {\n base: 'left',\n sm: 'left',\n md: 'left',\n lg: 'left',\n xl: 'left',\n '2xl': 'left',\n },\n italic: false,\n};\n\nexport const SizeXs = <T extends keyof HTMLElementTagNameMap = 'div'>(\n properties: TypographyOverwrites<T>,\n): React.ReactNode =>\n createTextVariant<T>({\n ...baseProperties,\n ...properties,\n size: { base: 'xs', sm: 'xs', md: 'xs', lg: 'xs', xl: 'xs', '2xl': 'xs' },\n });\n\nexport const SizeSm = <T extends keyof HTMLElementTagNameMap = 'div'>(\n properties: TypographyOverwrites<T>,\n): React.ReactNode =>\n createTextVariant<T>({\n ...baseProperties,\n size: { base: 'sm', sm: 'sm', md: 'sm', lg: 'sm', xl: 'sm', '2xl': 'sm' },\n ...properties,\n });\n\nexport const SizeCaption = <T extends keyof HTMLElementTagNameMap = 'div'>(\n properties: TypographyOverwrites<T>,\n): React.ReactNode =>\n createTextVariant<T>({\n ...baseProperties,\n size: {\n base: 'caption',\n sm: 'caption',\n md: 'caption',\n lg: 'caption',\n xl: 'caption',\n '2xl': 'caption',\n },\n ...properties,\n });\n\nexport const SizeBase = <T extends keyof HTMLElementTagNameMap = 'div'>(\n properties: TypographyOverwrites<T>,\n): React.ReactNode =>\n createTextVariant<T>({\n ...baseProperties,\n size: {\n base: 'base',\n sm: 'base',\n md: 'base',\n lg: 'base',\n xl: 'base',\n '2xl': 'base',\n },\n ...properties,\n });\n\nexport const SizeLg = <T extends keyof HTMLElementTagNameMap = 'div'>(\n properties: TypographyOverwrites<T>,\n): React.ReactNode =>\n createTextVariant<T>({\n ...baseProperties,\n size: { base: 'lg', sm: 'lg', md: 'lg', lg: 'lg', xl: 'lg', '2xl': 'lg' },\n ...properties,\n });\n\nexport const SizeXl = <T extends keyof HTMLElementTagNameMap = 'div'>(\n properties: TypographyOverwrites<T>,\n): React.ReactNode =>\n createTextVariant<T>({\n ...baseProperties,\n size: { base: 'xl', sm: 'xl', md: 'xl', lg: 'xl', xl: 'xl', '2xl': 'xl' },\n ...properties,\n });\n\nexport const Size2xl = <T extends keyof HTMLElementTagNameMap = 'div'>(\n properties: TypographyOverwrites<T>,\n): React.ReactNode =>\n createTextVariant<T>({\n ...baseProperties,\n size: {\n base: '2xl',\n sm: '2xl',\n md: '2xl',\n lg: '2xl',\n xl: '2xl',\n '2xl': '2xl',\n },\n ...properties,\n });\n\nexport const Size3xl = <T extends keyof HTMLElementTagNameMap = 'div'>(\n properties: TypographyOverwrites<T>,\n): React.ReactNode =>\n createTextVariant<T>({\n ...baseProperties,\n size: {\n base: '3xl',\n sm: '3xl',\n md: '3xl',\n lg: '3xl',\n xl: '3xl',\n '2xl': '3xl',\n },\n ...properties,\n });\n\nexport const Size4xl = <T extends keyof HTMLElementTagNameMap = 'div'>(\n properties: TypographyOverwrites<T>,\n): React.ReactNode =>\n createTextVariant<T>({\n ...baseProperties,\n size: {\n base: '4xl',\n sm: '4xl',\n md: '4xl',\n lg: '4xl',\n xl: '4xl',\n '2xl': '4xl',\n },\n ...properties,\n });\n\nexport const Size5xl = <T extends keyof HTMLElementTagNameMap = 'div'>(\n properties: TypographyOverwrites<T>,\n): React.ReactNode =>\n createTextVariant<T>({\n ...baseProperties,\n size: {\n base: '5xl',\n sm: '5xl',\n md: '5xl',\n lg: '5xl',\n xl: '5xl',\n '2xl': '5xl',\n },\n ...properties,\n });\n\nexport const Size6xl = <T extends keyof HTMLElementTagNameMap = 'div'>(\n properties: TypographyOverwrites<T>,\n): React.ReactNode =>\n createTextVariant<T>({\n ...baseProperties,\n size: {\n base: '6xl',\n sm: '6xl',\n md: '6xl',\n lg: '6xl',\n xl: '6xl',\n '2xl': '6xl',\n },\n ...properties,\n });\n\nexport const Size7xl = <T extends keyof HTMLElementTagNameMap = 'div'>(\n properties: TypographyOverwrites<T>,\n): React.ReactNode =>\n createTextVariant<T>({\n ...baseProperties,\n size: {\n base: '7xl',\n sm: '7xl',\n md: '7xl',\n lg: '7xl',\n xl: '7xl',\n '2xl': '7xl',\n },\n ...properties,\n });\n\nexport const Size8xl = <T extends keyof HTMLElementTagNameMap = 'div'>(\n properties: TypographyOverwrites<T>,\n): React.ReactNode =>\n createTextVariant<T>({\n ...baseProperties,\n size: {\n base: '8xl',\n sm: '8xl',\n md: '8xl',\n lg: '8xl',\n xl: '8xl',\n '2xl': '8xl',\n },\n ...properties,\n });\n\nexport const Size9xl = <T extends keyof HTMLElementTagNameMap = 'div'>(\n properties: TypographyOverwrites<T>,\n): React.ReactNode =>\n createTextVariant<T>({\n ...baseProperties,\n size: {\n base: '9xl',\n sm: '9xl',\n md: '9xl',\n lg: '9xl',\n xl: '9xl',\n '2xl': '9xl',\n },\n ...properties,\n });\n\nexport const TextPrimitives = {\n SizeXs,\n SizeSm,\n SizeCaption,\n SizeBase,\n SizeLg,\n SizeXl,\n Size2xl,\n Size3xl,\n Size4xl,\n Size5xl,\n Size6xl,\n Size7xl,\n Size8xl,\n Size9xl,\n};\n","// Key decisions made:\n//\n// Inline elements (Strong, Em, Mark, Abbr, Dfn, Time, Data) → SizeLg (16px) to match Body\n// Code family → SizeBase (14px) for better code readability\n// Small details (Kbd, Caption, Sub, Sup) → SizeSm or SizeXs (12px or 10px)\n// Blockquote → SizeXl (18px) for visual emphasis\n// Form elements → SizeBase (14px) for labels, SizeLg (16px) for legends\n// Citations/Figcaptions → SizeBase (14px) as supporting text\n//\n// Text.ts - Content typography semantic layer\nimport { TextPrimitives } from './TextPrimitives';\n\n// Headings (h1-h6)\nconst H1 = TextPrimitives.Size5xl; // 32px - Bold\nconst H2 = TextPrimitives.Size3xl; // 24px - Bold\nconst H3 = TextPrimitives.Size2xl; // 20px - Bold\nconst H4 = TextPrimitives.SizeXl; // 18px - Semibold\nconst H5 = TextPrimitives.SizeLg; // 16px - Semibold\nconst H6 = TextPrimitives.SizeBase; // 14px - Semibold\n\n// Body text (p) - various sizes\nconst BodyXl = TextPrimitives.Size2xl; // 20px - Regular (hero paragraphs)\nconst BodyLg = TextPrimitives.SizeXl; // 18px - Regular (large content)\nconst Body = TextPrimitives.SizeLg; // 16px - Regular (default paragraph)\nconst BodySm = TextPrimitives.SizeBase; // 14px - Regular (compact)\nconst BodyXs = TextPrimitives.SizeSm; // 12px - Regular (fine print)\n\n// Inline emphasis (inherit parent size, just style variants)\nconst Strong = TextPrimitives.SizeLg; // 16px - Bold (same as Body)\nconst Em = TextPrimitives.SizeLg; // 16px - Italic (same as Body)\nconst Mark = TextPrimitives.SizeLg; // 16px - Highlighted (same as Body)\nconst Small = TextPrimitives.SizeSm; // 12px - Regular (fine print)\n\n// Code-related\nconst Code = TextPrimitives.SizeBase; // 14px - Mono (inline code)\nconst Pre = TextPrimitives.SizeBase; // 14px - Mono (code blocks)\nconst Kbd = TextPrimitives.SizeSm; // 12px - Mono (keyboard shortcuts)\nconst Samp = TextPrimitives.SizeBase; // 14px - Mono (sample output)\nconst Variable = TextPrimitives.SizeBase; // 14px - Mono italic (variables)\n\n// Quotations\nconst Blockquote = TextPrimitives.SizeXl; // 18px - Regular italic (emphasis)\nconst Q = TextPrimitives.SizeLg; // 16px - Regular (inline quotes)\nconst Cite = TextPrimitives.SizeBase; // 14px - Italic (citations)\n\n// Form-related\nconst Label = TextPrimitives.SizeBase; // 14px - Semibold (form labels)\nconst Legend = TextPrimitives.SizeLg; // 16px - Semibold (fieldset legends)\n\n// Descriptive/Supporting text\nconst Caption = TextPrimitives.SizeSm; // 12px - Regular (hints, descriptions)\nconst Figcaption = TextPrimitives.SizeBase; // 14px - Regular (figure captions)\n\n// Subscript/Superscript\nconst Sub = TextPrimitives.SizeXs; // 10px - Regular (subscript)\nconst Sup = TextPrimitives.SizeXs; // 10px - Regular (superscript)\n\n// Abbreviations/Definitions\nconst Abbr = TextPrimitives.SizeLg; // 16px - Regular (same as Body)\nconst Dfn = TextPrimitives.SizeLg; // 16px - Italic (same as Body)\n\n// Time/Data\nconst Time = TextPrimitives.SizeLg; // 16px - Regular (same as Body)\nconst Data = TextPrimitives.SizeLg; // 16px - Regular (same as Body)\n\nexport const Text = {\n // Headings\n H1,\n H2,\n H3,\n H4,\n H5,\n H6,\n // Body variants\n BodyXl,\n BodyLg,\n Body,\n BodySm,\n BodyXs,\n // Inline emphasis\n Strong,\n Em,\n Mark,\n Small,\n // Code-related\n Code,\n Pre,\n Kbd,\n Samp,\n Var: Variable,\n // Quotations\n Blockquote,\n Q,\n Cite,\n // Form elements\n Label,\n Legend,\n // Captions/descriptions\n Caption,\n Figcaption,\n // Script positioning\n Sub,\n Sup,\n // Semantic data\n Abbr,\n Dfn,\n Time,\n Data,\n};\n","'use client';\n\nimport {\n DARK_THEME_ICON,\n LIGHT_THEME_ICON,\n ThemeEnum,\n darkModeManager,\n} from '@kurocado-studio/systemhaus-ui';\nimport { useEffect, useState } from 'react';\n\nimport { DarkModeController } from '../types';\n\nexport { ThemeEnum } from '@kurocado-studio/systemhaus-ui';\n\nexport function useDarkMode(): DarkModeController {\n const [theme, setThemeState] = useState<ThemeEnum>(() => {\n if (globalThis.window === undefined) return ThemeEnum.LIGHT;\n return darkModeManager.resolveEffectiveTheme();\n });\n\n useEffect(() => {\n if (globalThis.window === undefined) return;\n\n darkModeManager.applyTheme(theme);\n\n const mediaQuery = globalThis.matchMedia('(prefers-color-scheme: dark)');\n\n const handleSystemChange = () => {\n const stored = darkModeManager.getStoredTheme();\n if (stored === ThemeEnum.SYSTEM || !stored) {\n const sysTheme = darkModeManager.getSystemTheme();\n darkModeManager.applyTheme(sysTheme);\n setThemeState(sysTheme);\n }\n };\n\n // Watch system preference\n mediaQuery.addEventListener('change', handleSystemChange);\n\n return () => {\n mediaQuery.removeEventListener('change', handleSystemChange);\n };\n }, [theme]);\n\n const toggle = () => {\n const newTheme = darkModeManager.toggleTheme();\n setThemeState(newTheme);\n };\n\n const setTheme = (newTheme: ThemeEnum) => {\n darkModeManager.setTheme(newTheme);\n setThemeState(darkModeManager.resolveEffectiveTheme());\n };\n\n const iconSettings =\n theme === ThemeEnum.DARK ? DARK_THEME_ICON : LIGHT_THEME_ICON;\n\n const isDark = theme === ThemeEnum.DARK;\n\n return {\n isDark,\n theme,\n toggle,\n iconSettings,\n setTheme,\n };\n}\n","/*TODO: update styleguide to whitelist .tsx (React components) */\nimport {\n type UseAxiosParameters,\n useAxios,\n} from '@kurocado-studio/axios-react';\nimport {\n DEFAULT_PROGRESS_OPTIONS,\n type ThemeMode,\n type ThemeProviderProperties,\n composeThemeProvider,\n defaultSystemHausThemeVariables,\n} from '@kurocado-studio/systemhaus-ui';\nimport { get, isEqual } from 'lodash-es';\nimport React from 'react';\n\nimport { GlassFilters } from '../components/Glass/Glass.tsx';\nimport { axiosSystemHausInstance } from './axiosSystemHausInstance';\n\nexport type ThemeProperties = ThemeMode & {\n progressOptions?: UseAxiosParameters<\n Record<string, unknown>\n >['progressOptions'];\n LoaderComponent?: React.FC<\n { progress: number; isLoading: boolean } & Record<string, unknown>\n >;\n children: React.ReactNode;\n};\n\nconst ThemeContext = React.createContext<ThemeProviderProperties>({\n setThemeVariable: () => {},\n toggleLightDarkTheme: () => {},\n setTheme: () => {},\n});\n\nconst themeEngine = composeThemeProvider();\n\nexport function ThemeProvider({\n organizationId,\n themeId,\n theme,\n children,\n ...restOfThemeProviderProperties\n}: ThemeProperties): React.ReactElement {\n const progressOptions = get(\n restOfThemeProviderProperties,\n ['progressOptions'],\n DEFAULT_PROGRESS_OPTIONS,\n );\n\n const [variablesState, fetchVariables] = useAxios({\n axiosInstance: axiosSystemHausInstance,\n progressOptions,\n });\n\n const [themeVariables, setThemeVariables] = React.useState<\n Record<string, unknown>\n >({});\n\n const styleReference = React.useRef<HTMLStyleElement | null>(null);\n\n const hasFetched = React.useRef(false);\n\n const handleVariablesMap = React.useCallback(\n (cssVariables: Record<string, unknown>) => {\n styleReference.current = themeEngine.handleVariablesMap(\n styleReference.current,\n cssVariables,\n );\n setThemeVariables((previous: Record<string, unknown>) => ({\n ...previous,\n cssVariables,\n }));\n },\n [],\n );\n\n const setThemeVariable = React.useCallback<\n ThemeProviderProperties['setThemeVariable']\n >(\n (variableName: string, variableValue: string) => {\n const payload = themeEngine.handleSetThemeVariable({\n variableName,\n variableValue,\n });\n if (!payload) return;\n handleVariablesMap({ [payload.variableName]: payload.variableValue });\n },\n [handleVariablesMap, themeVariables],\n );\n\n const toggleLightDarkTheme = themeEngine.handleToggleLightDarkTheme;\n\n const providerValue = React.useMemo<ThemeProviderProperties>(\n () => ({\n setTheme: handleVariablesMap,\n setThemeVariable,\n toggleLightDarkTheme,\n }),\n [handleVariablesMap, setThemeVariable, toggleLightDarkTheme],\n );\n\n const isSameTheme = isEqual(theme, themeVariables);\n\n React.useEffect(() => {\n if (!isSameTheme && !!theme) {\n handleVariablesMap(theme);\n }\n }, [theme, handleVariablesMap, isSameTheme]);\n\n React.useEffect(() => {\n if (hasFetched.current || !organizationId || !themeId) return;\n hasFetched.current = true;\n\n fetchVariables({\n method: 'GET',\n url: `/api/v1/organizations/${organizationId}/themes/${themeId}/css-variables`,\n responseType: 'json',\n })\n .then((response) => {\n if (response && typeof response === 'object') {\n handleVariablesMap(response);\n }\n })\n .catch(() => handleVariablesMap(defaultSystemHausThemeVariables));\n\n return () => {\n styleReference.current?.remove();\n /* eslint-disable-next-line unicorn/no-null*/\n styleReference.current = null;\n };\n }, [fetchVariables, handleVariablesMap, organizationId, themeId]);\n\n const Loader = get(\n restOfThemeProviderProperties,\n ['LoaderComponent'],\n () =>\n /* eslint-disable-next-line unicorn/no-null*/\n null,\n );\n\n return (\n <>\n <Loader\n progress={variablesState.progress}\n isLoading={variablesState.isLoading}\n />\n <ThemeContext.Provider value={providerValue}>\n {/* eslint-disable-next-line unicorn/no-null*/}\n {variablesState.isLoading ? null : children}\n <GlassFilters />\n </ThemeContext.Provider>\n </>\n );\n}\n","import axios from 'axios';\n\nconst baseURL =\n // @ts-expect-error while we fix typings\n import.meta.env['VITE_NODE_ENV'] === 'local'\n ? 'http://localhost:3000'\n : 'https://systemhaus.fly.dev';\n\nexport const axiosSystemHausInstance = axios.create({\n baseURL,\n headers: {\n 'Content-Type': 'application/json',\n },\n timeout: 10_000,\n});\n","import {\n FormKitConsumerForm,\n type FormKitNodeVariantMap,\n type Question,\n VariantEnum,\n formRendererComposer,\n useFormKitTextNode,\n} from '@kurocado-studio/formkit-ui-react-renderer';\nimport { type PolymorphicMotionProperties } from '@kurocado-studio/systemhaus-motion-react';\nimport React from 'react';\n\nimport { KUROCADO_STUDIO_ORGANIZATION_ID_FORMKIT } from '../../config/constants';\nimport { Input, Label } from '../../exports';\n\nexport function FormKitTextField(properties: {\n question: Question;\n inputProperties?: Partial<HTMLElementTagNameMap['input']>;\n}): React.ReactNode {\n const { question, inputProperties } = properties;\n\n const { labelProps, inputProps, descriptionProps, errorMessageProps } =\n useFormKitTextNode({ question });\n\n return (\n <>\n <Label className={'prose prose-md'} {...labelProps} />\n <Input\n {...(inputProperties as unknown as PolymorphicMotionProperties<'input'>)}\n {...(inputProps as unknown as PolymorphicMotionProperties<'input'>)}\n type={inputProperties?.type || inputProps?.type}\n />\n <p className='block w-full' {...descriptionProps} />\n <span className='block w-full text-red-700' {...errorMessageProps} />\n </>\n );\n}\n\nconst componentOverwrites: FormKitNodeVariantMap = {\n // since we are adding our own custom input using FormKit hooks\n [VariantEnum.TEXT]: FormKitTextField,\n};\n\nconst FormKitQuestionNodeMapper = formRendererComposer(componentOverwrites);\n\nexport function FormKitFormRenderer(properties: {\n formId: string;\n}): React.ReactNode {\n return (\n <FormKitConsumerForm\n key={properties.formId}\n organizationId={KUROCADO_STUDIO_ORGANIZATION_ID_FORMKIT}\n formId={properties.formId}\n >\n {({ question, indexInCollection }) => (\n <FormKitQuestionNodeMapper\n key={indexInCollection}\n questionNode={question}\n />\n )}\n </FormKitConsumerForm>\n );\n}\n","export const KUROCADO_STUDIO_ORGANIZATION_ID_FORMKIT =\n '05bc858a-f333-4dab-9e24-fb41b1b7468e';\n\nexport const KUROCADO_STUDIO_ORGANIZATION_ID_SYSTEMHAUS =\n 'b17245cd-3ee6-4b14-9b38-663732e56073';\n\nexport const KUROCADO_STUDIO_DEFAULT_THEME_ID =\n 'ce5658fe-6d4b-485f-9f62-77e66b3da866';\n\nexport const KUROCADO_STUDIO_DEMO_FORM_ID =\n '2305e7ed-b583-4ef7-9a4c-2bc094b34894';\n\nexport const KUROCADO_STUDIO_DEMO_LONG_FORM_ID =\n '8dd1e046-0539-48f8-bff5-050f27f38d9b';\n\nexport const KUROCADO_STUDIO_LOGIN_FORM_ID =\n '5139da7c-5fc2-4140-8041-6caff89990b5';\n","export * from './FormKitFormRenderer';\nexport {\n FormKitConsumerForm,\n HtmlForm,\n FormKitInputTextField,\n InputFieldTypeEnum,\n VariantEnum,\n} from '@kurocado-studio/formkit-ui-react-renderer';\n"],"mappings":"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0BACP,IAAO,0BACP,IAAO,yBACT,EACA,MAAS,CACP,GAAM,wBACN,IAAO,yBACP,IAAO,yBACP,IAAO,yBACP,IAAO,yBACP,IAAO,yBACP,IAAO,yBACP,IAAO,yBACP,IAAO,yBACP,IAAO,wBACT,EACA,OAAU,CACR,GAAM,yBACN,IAAO,0BACP,IAAO,0BACP,IAAO,0BACP,IAAO,0BACP,IAAO,0BACP,IAAO,0BACP,IAAO,0BACP,IAAO,0BACP,IAAO,yBACT,EACA,KAAQ,CACN,GAAM,uBACN,IAAO,wBACP,IAAO,wBACP,IAAO,wBACP,IAAO,wBACP,IAAO,wBACP,IAAO,wBACP,IAAO,wBACP,IAAO,wBACP,IAAO,uBACT,EACA,MAAS,CACP,GAAM,wBACN,IAAO,yBACP,IAAO,yBACP,IAAO,yBACP,IAAO,yBACP,IAAO,yBACP,IAAO,yBACP,IAAO,yBACP,IAAO,yBACP,IAAO,wBACT,EACA,QAAW,CACT,GAAM,0BACN,IAAO,2BACP,IAAO,2BACP,IAAO,2BACP,IAAO,2BACP,IAAO,2BACP,IAAO,2BACP,IAAO,2BACP,IAAO,2BACP,IAAO,0BACT,EACA,KAAQ,CACN,GAAM,uBACN,IAAO,wBACP,IAAO,wBACP,IAAO,wBACP,IAAO,wBACP,IAAO,wBACP,IAAO,wBACP,IAAO,wBACP,IAAO,wBACP,IAAO,uBACT,EACA,KAAQ,CACN,GAAM,uBACN,IAAO,wBACP,IAAO,wBACP,IAAO,wBACP,IAAO,wBACP,IAAO,wBACP,IAAO,wBACP,IAAO,wBACP,IAAO,wBACP,IAAO,uBACT,EACA,UAAa,CACX,GAAM,4BACN,IAAO,6BACP,IAAO,6BACP,IAAO,6BACP,IAAO,6BACP,IAAO,6BACP,IAAO,6BACP,IAAO,6BACP,IAAO,6BACP,IAAO,4BACT,EACA,KAAQ,CACN,GAAM,uBACN,IAAO,wBACP,IAAO,wBACP,IAAO,wBACP,IAAO,wBACP,IAAO,wBACP,IAAO,wBACP,IAAO,wBACP,IAAO,wBACP,IAAO,uBACT,EACA,OAAU,CACR,GAAM,yBACN,IAAO,0BACP,IAAO,0BACP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AAK,cACL,EAAK,cACL,EAAK,cACL,EAAK,cACL,EAAK,cACL,EAAK,cACL,EAAK,cACL,GAAM,eACN,GAAM,eACN,GAAM,cACR,EACA,GAAI,CACF,EAAK,iBACL,EAAK,iBACL,EAAK,iBACL,EAAK,iBACL,EAAK,iBACL,EAAK,iBACL,EAAK,iBACL,EAAK,iBACL,EAAK,iBACL,GAAM,kBACN,GAAM,kBACN,GAAM,iBACR,EACA,GAAI,CACF,EAAK,iBACL,EAAK,iBACL,EAAK,iBACL,EAAK,iBACL,EAAK,iBACL,EAAK,iBACL,EAAK,iBACL,EAAK,iBACL,EAAK,iBACL,GAAM,kBACN,GAAM,kBACN,GAAM,iBACR,EACA,GAAI,CACF,EAAK,iBACL,EAAK,iBACL,EAAK,iBACL,EAAK,iBACL,EAAK,iBACL,EAAK,iBACL,EAAK,iBACL,EAAK,iBACL,EAAK,iBACL,GAAM,kBACN,GAAM,kBACN,GAAM,iBACR,EACA,GAAI,CACF,EAAK,iBACL,EAAK,iBACL,EAAK,iBACL,EAAK,iBACL,EAAK,iBACL,EAAK,iBACL,EAAK,iBACL,EAAK,iBACL,EAAK,iBACL,GAAM,kBACN,GAAM,kBACN,GAAM,iBACR,EACA,MAAO,CACL,EAAK,kBACL,EAAK,kBACL,EAAK,kBACL,EAAK,kBACL,EAAK,kBACL,EAAK,kBACL,EAAK,kBACL,EAAK,kBACL,EAAK,kBACL,GAAM,mBACN,GAAM,mBACN,GAAM,kBACR,CACF,EACA,gBAAiB,CACf,KAAM,GACR,CACF,CAAC,EAEYO,GAAYP,EAAG,CAC1B,SAAU,CACR,KAAM,CACJ,EAAK,cACL,EAAK,cACL,EAAK,cACL,EAAK,cACL,EAAK,cACL,EAAK,cACL,EAAK,cACL,EAAK,cACL,EAAK,cACL,GAAM,eACN,GAAM,eACN,GAAM,cACR,EACA,GAAI,CACF,EAAK,iBACL,EAAK,iBACL,EAAK,iBACL,EAAK,iBACL,EAAK,iBACL,EAAK,iBACL,EAAK,iBACL,EAAK,iBACL,EAAK,iBACL,GAAM,kBACN,GAAM,kBACN,GAAM,iBACR,EACA,GAAI,CACF,EAAK,iBACL,EAAK,iBACL,EAAK,iBACL,EAAK,iBACL,EAAK,iBACL,EAAK,iBACL,EAAK,iBACL,EAAK,iBACL,EAAK,iBACL,GAAM,kBACN,GAAM,kBACN,GAAM,iBACR,EACA,GAAI,CACF,EAAK,iBACL,EAAK,iBACL,EAAK,iBACL,EAAK,iBACL,EAAK,iBACL,EAAK,iBACL,EAAK,iBACL,EAAK,iBACL,EAAK,iBACL,GAAM,kBACN,GAAM,kBACN,GAAM,iBACR,EACA,GAAI,CACF,EAAK,iBACL,EAAK,iBACL,EAAK,iBACL,EAAK,iBACL,EAAK,iBACL,EAAK,iBACL,EAAK,iBACL,EAAK,iBACL,EAAK,iBACL,GAAM,kBACN,GAAM,kBACN,GAAM,iBACR,EACA,MAAO,CACL,EAAK,kBACL,EAAK,kBACL,EAAK,kBACL,EAAK,kBACL,EAAK,kBACL,EAAK,kBACL,EAAK,kBACL,EAAK,kBACL,EAAK,kBACL,GAAM,mBACN,GAAM,mBACN,GAAM,kBACR,CACF,EACA,gBAAiB,CACf,KAAM,GACR,CACF,CAAC,EAEYQ,GAAYR,EAAG,CAC1B,SAAU,CACR,KAAM,CACJ,EAAK,QACL,EAAK,QACL,EAAK,QACL,EAAK,QACL,EAAK,QACL,EAAK,OACP,EACA,GAAI,CACF,EAAK,WACL,EAAK,WACL,EAAK,WACL,EAAK,WACL,EAAK,WACL,EAAK,UACP,EACA,GAAI,CACF,EAAK,WACL,EAAK,WACL,EAAK,WACL,EAAK,WACL,EAAK,WACL,EAAK,UACP,EACA,GAAI,CACF,EAAK,WACL,EAAK,WACL,EAAK,WACL,EAAK,WACL,EAAK,WACL,EAAK,UACP,EACA,GAAI,CACF,EAAK,WACL,EAAK,WACL,EAAK,WACL,EAAK,WACL,EAAK,WACL,EAAK,UACP,EACA,MAAO,CACL,EAAK,YACL,EAAK,YACL,EAAK,YACL,EAAK,YACL,EAAK,YACL,EAAK,WACP,CACF,EACA,gBAAiB,CACf,KAAM,GACR,CACF,CAAC,EAEYS,GAAgBT,EAAG,CAC9B,SAAU,CACR,KAAM,CACJ,MAAO,sBACP,OAAQ,uBAC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K,iBACL,EAAK,iBACL,EAAK,iBACL,EAAK,iBACL,GAAM,kBACN,GAAM,kBACN,GAAM,iBACR,EACA,GAAI,CACF,EAAK,iBACL,EAAK,iBACL,EAAK,iBACL,EAAK,iBACL,EAAK,iBACL,EAAK,iBACL,EAAK,iBACL,EAAK,iBACL,EAAK,iBACL,GAAM,kBACN,GAAM,kBACN,GAAM,iBACR,EACA,GAAI,CACF,EAAK,iBACL,EAAK,iBACL,EAAK,iBACL,EAAK,iBACL,EAAK,iBACL,EAAK,iBACL,EAAK,iBACL,EAAK,iBACL,EAAK,iBACL,GAAM,kBACN,GAAM,kBACN,GAAM,iBACR,EACA,MAAO,CACL,EAAK,kBACL,EAAK,kBACL,EAAK,kBACL,EAAK,kBACL,EAAK,kBACL,EAAK,kBACL,EAAK,kBACL,EAAK,kBACL,EAAK,kBACL,GAAM,mBACN,GAAM,mBACN,GAAM,kBACR,CACF,EACA,gBAAiB,CACf,KAAM,GACR,CACF,CAAC,EAEYE,GAAYF,EAAG,CAC1B,SAAU,CACR,KAAM,CACJ,EAAK,cACL,EAAK,cACL,EAAK,cACL,EAAK,cACL,EAAK,cACL,EAAK,cACL,EAAK,cACL,EAAK,cACL,EAAK,cACL,GAAM,eACN,GAAM,eACN,GAAM,cACR,EACA,GAAI,CACF,EAAK,iBACL,EAAK,iBACL,EAAK,iBACL,EAAK,iBACL,EAAK,iBACL,EAAK,iBACL,EAAK,iBACL,EAAK,iBACL,EAAK,iBACL,GAAM,kBACN,GAAM,kBACN,GAAM,iBACR,EACA,GAAI,CACF,EAAK,iBACL,EAAK,iBACL,EAAK,iBACL,EAAK,iBACL,EAAK,iBACL,EAAK,iBACL,EAAK,iBACL,EAAK,iBACL,EAAK,iBACL,GAAM,kBACN,GAAM,kBACN,GAAM,iBACR,EACA,GAAI,CACF,EAAK,iBACL,EAAK,iBACL,EAAK,iBACL,EAAK,iBACL,EAAK,iBACL,EAAK,iBACL,EAAK,iBACL,EAAK,iBACL,EAAK,iBACL,GAAM,kBACN,GAAM,kBACN,GAAM,iBACR,EACA,GAAI,CACF,EAAK,iBACL,EAAK,iBACL,EA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","names":["theme_default","handleToggleLightDarkTheme","root","selectedMode","HTMLStyleElementId","handleVariablesMap","htmlStyleElementReference","cssVariablesPayload","styleElementReference","variableName","variableValue","handleSetThemeVariable","options","DEFAULT_PROGRESS_OPTIONS","card","SecondaryColors","PrimaryColors","BorderPrimaryColors","SurfaceColors","noop","any","calcBezier","t","a1","a2","subdivisionPrecision","subdivisionMaxIterations","binarySubdivide","x","lowerBound","upperBound","mX1","mX2","currentX","currentT","i","cubicBezier","mY1","mY2","getTForX","aX","easeIn","easeOut","MOTION_ORIGIN","MOTION_DESTINATION","MOTION_DURATION","blurFilters","MOTION_VISIBLE_TRANSITION","easeIn","MOTION_HIDDEN_TRANSITION","easeOut","SLIDE_MENU_VARIANTS","MOTION_DURATION","MOTION_VISIBLE_TRANSITION","blurFilters","MOTION_HIDDEN_TRANSITION","VARIANTS_SECTION","MOTION_ORIGIN","MOTION_DESTINATION","concatArrays","array1","array2","combinedArray","Array","length","i","createClassValidatorObject","classGroupId","validator","createClassPartObject","nextPart","Map","validators","EMPTY_CONFLICTS","ARBITRARY_PROPERTY_PREFIX","createClassGroupUtils","config","classMap","createClassMap","conflictingClassGroups","conflictingClassGroupModifiers","getClassGroupId","className","startsWith","endsWith","getGroupIdForArbitraryProperty","classParts","split","CLASS_PART_SEPARATOR","startIndex","getGroupRecursive","getConflictingClassGroupIds","hasPostfixModifier","modifierConflicts","baseConflicts","classPartObject","currentClassPart","nextClassPartObject","get","result","classRest","join","slice","validatorsLength","validatorObj","indexOf","undefined","content","colonIndex","property","theme","classGroups","processClassGroups","group","processClassesRecursively","classGroup","len","classDefinition","processClassDefinition","processStringDefinition","processFunctionDefinition","processObjectDefinition","classPartObjectToEdit","getPart","isThemeGetter","push","entries","Object","key","value","path","current","parts","part","next","set","func","createLruCache","maxCacheSize","cacheSize","cache","create","previousCache","update","EMPTY_MODIFIERS","createResultObject","modifiers","hasImportantModifier","baseClassName","maybePostfixModifierPosition","isExternal","createParseClassName","prefix","experimentalParseClassName","parseClassName","bracketDepth","parenDepth","modifierStart","postfixModifierPosition","index","currentCharacter","MODIFIER_SEPARATOR","baseClassNameWithImportantModifier","IMPORTANT_MODIFIER","fullPrefix","parseClassNameOriginal","createSortModifiers","modifierWeights","orderSensitiveModifiers","forEach","mod","currentSegment","modifier","isArbitrary","isOrderSensitive","has","sort","createConfigUtils","sortModifiers","SPLIT_CLASSES_REGEX","mergeClassList","classList","configUtils","classGroupsInConflict","classNames","trim","originalClassName","substring","variantModifier","modifierId","classId","conflictGroups","twJoin","classLists","argument","resolvedValue","string","toValue","mix","k","createTailwindMerge","createConfigFirst","createConfigRest","cacheGet","cacheSet","functionToCall","initTailwindMerge","reduce","previousConfig","createConfigCurrent","tailwindMerge","cachedResult","args","fallbackThemeArr","fromTheme","themeGetter","arbitraryValueRegex","arbitraryVariableRegex","fractionRegex","tshirtUnitRegex","lengthUnitRegex","colorFunctionRegex","shadowRegex","imageRegex","isFraction","test","isNumber","Number","isNaN","isInteger","isPercent","isTshirtSize","isAny","isLengthOnly","isNever","isShadow","isImage","isAnyNonArbitrary","isArbitraryValue","isArbitraryVariable","isArbitrarySize","getIsArbitraryValue","isLabelSize","isArbitraryLength","isLabelLength","isArbitraryNumber","isLabelNumber","isArbitraryPosition","isLabelPosition","isArbitraryImage","isLabelImage","isArbitraryShadow","isLabelShadow","isArbitraryVariableLength","getIsArbitraryVariable","isArbitraryVariableFamilyName","isLabelFamilyName","isArbitraryVariablePosition","isArbitraryVariableSize","isArbitraryVariableImage","isArbitraryVariableShadow","testLabel","testValue","exec","shouldMatchNoLabel","label","getDefaultConfig","themeColor","themeFont","themeText","themeFontWeight","themeTracking","themeLeading","themeBreakpoint","themeContainer","themeSpacing","themeRadius","themeShadow","themeInsetShadow","themeTextShadow","themeDropShadow","themeBlur","themePerspective","themeAspect","themeEase","themeAnimate","scaleBreak","scalePosition","scalePositionWithArbitrary","scaleOverflow","scaleOverscroll","scaleUnambiguousSpacing","scaleInset","scaleGridTemplateColsRows","scaleGridColRowStartAndEnd","span","scaleGridColRowStartOrEnd","scaleGridAutoColsRows","scaleAlignPrimaryAxis","scaleAlignSecondaryAxis","scaleMargin","scaleSizing","scaleColor","scaleBgPosition","position","scaleBgRepeat","repeat","scaleBgSize","size","scaleGradientStopPosition","scaleRadius","scaleBorderWidth","scaleLineStyle","scaleBlendMode","scaleMaskImagePosition","scaleBlur","scaleRotate","scaleScale","scaleSkew","scaleTranslate","animate","aspect","blur","breakpoint","color","container","ease","font","leading","perspective","radius","shadow","spacing","text","tracking","columns","box","display","sr","float","clear","isolation","object","overflow","overscroll","inset","start","end","top","right","bottom","left","visibility","z","basis","flex","grow","shrink","order","col","row","gap","justify","items","baseline","self","p","px","py","ps","pe","pt","pr","pb","pl","m","mx","my","ms","me","mt","mr","mb","ml","w","screen","h","list","placeholder","decoration","indent","align","whitespace","break","wrap","hyphens","bg","linear","to","radial","conic","from","via","rounded","border","divide","outline","ring","opacity","mask","closest","farthest","filter","brightness","contrast","grayscale","invert","saturate","sepia","table","caption","transition","duration","delay","backface","rotate","scale","skew","transform","origin","translate","accent","appearance","caret","scheme","cursor","resize","scroll","snap","touch","select","fill","stroke","twMerge","BreakpointsEnum","SpaceScaleOptionsEnum","squareSizeStyles","tv","modelAvatar","payload","baseAvatarStyles","avatarStyles","directionStyles","columnStyles","rowStyles","gapStyles","justifyStyles","itemsStyles","minWStyles","minHStyles","modelGridLayout","gridColumnStyles","gridDirectionStyles","gridGapStyles","gridItemsStyles","gridJustifyStyles","gridMinHStyles","gridMinWStyles","gridRowStyles","ProgressiveImageStatusEnum","createInitialState","options","resolveSuccess","resolveError","preloadImage","source","resolve","img","cleanup","handleLoad","handleError","progressiveImageFactory","ControlSizeEnum","focusRingStyles","controlCommonStyles","typographySizeStyles","weightStyles","leadingStyles","alignStyles","italicStyles","modelTypography","payload","italic","className","alignment","get","size","weight","leading","twMerge","alignStyles","italicStyles","typographySizeStyles","weightStyles","leadingStyles","horizontalSpacingStyles","tv","modelButton","baseButtonStyles","primary","secondary","destructive","success","icon","primaryGhost","secondaryGhost","destructiveGhost","successGhost","iconGhost","controlCommonStyles","buttonStyles","defaultSystemHausThemeVariables","baseURL","axiosSystemHausInstance","axios","focusRingStyles","tv","baseInputStyles","inputStyles","properties","baseCursorStyles","cursorStyles","payload","textAreaStyles","STORAGE_KEY","DARK_THEME_ICON","LIGHT_THEME_ICON","ThemeEnum","hasWindow","hasDocument","hasStorage","getSystemTheme","getStoredTheme","STORAGE_KEY","applyTheme","theme","root","DARK","resolveEffectiveTheme","stored","setTheme","toggleTheme","newTheme","isDarkMode","darkModeManager","kurocadoTheme","theme_default","composeThemeProvider","handleSetThemeVariable","handleVariablesMap","handleToggleLightDarkTheme","defaultGridProperties","ariaHidden","composeCssClassName","uiMode","cssClass","bauhausBasicColorsGridComposer","mainGridProperties","redSpanColumn","innerRedSpanColumnGridProperties","innerBlueSpanColumnGridProperties","innerYellowSpanColumnGridProperties","blackSpanColumn","blueSpanColumn","yellowSpanColumn","threeColumnsBasicColorBorders","bauhausVerticalLinesGridComposer","verticalSpanColumn","innerYellowDotsContainer","innerVerticalLines","_","index","delay","animate","transition","prefersMotion","PolymorphicMotionElement","get","set","React","twMerge","mappedDisplayNameComponentTokens","Ft","Card","properties","className","rest","childNodes","PolymorphicMotionElement","child","index","componentTokens","selectedNode","CardHeader","CardBody","CardFooter","PolymorphicMotionElement","get","React","twMerge","Button","properties","PolymorphicMotionElement","Ns","di","PolymorphicMotionElement","useCursorFollow","motion","React","useRef","twMerge","PolymorphicMotionElement","React","twMerge","Grid","properties","className","children","rest","PolymorphicMotionElement","On","bauhausBasicColorsGrid","qi","bauhausVerticalLinesGrid","Ji","BauhausGrid","properties","React","PolymorphicMotionElement","twMerge","PrimaryColorGrid","VerticalLinesGrid","spanReference","useRef","mainCursorFollower","useCursorFollow","Grid","motion","_e","spanProperties","index","secondaryCursorFollower","PolymorphicMotionElement","get","React","twMerge","Avatar","properties","PolymorphicMotionElement","Tn","PolymorphicMotionElement","twMerge","useSystemHausMotionProvider","useEffect","useMemo","useState","useProgressiveImage","options","transition","useSystemHausMotionProvider","initialImageState","Nn","Uo","state","setState","Vn","status","nextState","variants","ProgressiveImage","properties","motionProperties","useProgressiveImage","PolymorphicMotionElement","Uo","twMerge","PolymorphicMotionElement","React","twMerge","Input","properties","PolymorphicMotionElement","ai","di","PolymorphicMotionElement","React","twMerge","GlassButton","properties","GlassContainer","children","GlassFilters","glassFilterHref","isChromeOnly","userAgent","isChrome","isEdge","isChromium","isOpera","AnimateMotionPresence","PolymorphicMotionElement","React","FullScreenLoader","progress","isLoading","finished","PolymorphicMotionElement","get","React","twMerge","TextArea","properties","PolymorphicMotionElement","fi","di","PolymorphicMotionElement","React","twMerge","Typography","properties","className","children","rest","PolymorphicMotionElement","Ir","tv","get","twMerge","tailwindAvatarComponentToken","tailwindCardComponentToken","defaultCardStyles","tv","tailwindCardComponentToken","cardHeaderClasses","cardFooterClasses","cardComponentWrapperClasses","cardBodyClasses","focusRingStyles","controlCommonStyles","baseCursorStyles","baseAvatarStyles","tv","controlCommonStyles","tailwindAvatarComponentToken","directionStyles","tv","columnStyles","rowStyles","gapStyles","justifyStyles","itemsStyles","minWStyles","minHStyles","baseInputStyles","tv","focusRingStyles","panelDialogStyles","tv","panelBackdropStyles","panelContainerStyles","panelWrapperStyles","panelFormStyles","sizeStyles","weightStyles","leadingStyles","alignStyles","italicStyles","composeLabel","properties","FadeInDirection","React","Label","properties","React","Typography","se","React","twMerge","createTextVariant","properties","React","Typography","twMerge","baseProperties","SizeXs","SizeSm","SizeCaption","SizeBase","SizeLg","SizeXl","Size2xl","Size3xl","Size4xl","Size5xl","Size6xl","Size7xl","Size8xl","Size9xl","TextPrimitives","H1","TextPrimitives","H2","H3","H4","H5","H6","BodyXl","BodyLg","Body","BodySm","BodyXs","Strong","Em","Mark","Small","Code","Pre","Kbd","Samp","Variable","Blockquote","Q","Cite","Label","Legend","Caption","Figcaption","Sub","Sup","Abbr","Dfn","Time","Data","Text","useEffect","useState","useDarkMode","theme","setThemeState","jr","yi","mediaQuery","handleSystemChange","stored","sysTheme","toggle","newTheme","setTheme","iconSettings","bi","vi","useAxios","get","isEqual","React","axios","baseURL","axiosSystemHausInstance","ThemeContext","React","themeEngine","Yi","ThemeProvider","organizationId","themeId","theme","children","restOfThemeProviderProperties","progressOptions","get","At","variablesState","fetchVariables","useAxios","axiosSystemHausInstance","themeVariables","setThemeVariables","styleReference","hasFetched","handleVariablesMap","cssVariables","previous","setThemeVariable","variableName","variableValue","payload","toggleLightDarkTheme","providerValue","isSameTheme","isEqual","response","oi","Loader","GlassFilters","FormKitConsumerForm","VariantEnum","formRendererComposer","useFormKitTextNode","React","KUROCADO_STUDIO_ORGANIZATION_ID_FORMKIT","FormKitTextField","properties","question","inputProperties","labelProps","inputProps","descriptionProps","errorMessageProps","useFormKitTextNode","React","Label","Input","componentOverwrites","VariantEnum","FormKitQuestionNodeMapper","formRendererComposer","FormKitFormRenderer","FormKitConsumerForm","KUROCADO_STUDIO_ORGANIZATION_ID_FORMKIT","indexInCollection","FormKitConsumerForm","HtmlForm","FormKitInputTextField","InputFieldTypeEnum","VariantEnum"]}
|