@n3wth/ui 0.5.2 → 0.5.4

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/dist/index.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sources":["../src/tokens/colors.ts","../src/tokens/typography.ts","../src/tokens/spacing.ts","../src/tokens/effects.ts","../node_modules/clsx/dist/clsx.mjs","../node_modules/tailwind-merge/dist/bundle-mjs.mjs","../src/utils/cn.ts","../src/atoms/Button/Button.tsx","../src/atoms/Badge/Badge.tsx","../src/atoms/Input/Input.tsx","../node_modules/iconoir-react/dist/esm/IconoirContext.mjs","../node_modules/iconoir-react/dist/esm/regular/ArrowDown.mjs","../node_modules/iconoir-react/dist/esm/regular/ArrowLeft.mjs","../node_modules/iconoir-react/dist/esm/regular/ArrowRight.mjs","../node_modules/iconoir-react/dist/esm/regular/ArrowUpRight.mjs","../node_modules/iconoir-react/dist/esm/regular/ArrowUp.mjs","../node_modules/iconoir-react/dist/esm/regular/Bell.mjs","../node_modules/iconoir-react/dist/esm/regular/Calendar.mjs","../node_modules/iconoir-react/dist/esm/regular/CheckCircle.mjs","../node_modules/iconoir-react/dist/esm/regular/Check.mjs","../node_modules/iconoir-react/dist/esm/regular/Clock.mjs","../node_modules/iconoir-react/dist/esm/regular/Code.mjs","../node_modules/iconoir-react/dist/esm/regular/Copy.mjs","../node_modules/iconoir-react/dist/esm/regular/Download.mjs","../node_modules/iconoir-react/dist/esm/regular/EditPencil.mjs","../node_modules/iconoir-react/dist/esm/regular/EyeClosed.mjs","../node_modules/iconoir-react/dist/esm/regular/Eye.mjs","../node_modules/iconoir-react/dist/esm/regular/Filter.mjs","../node_modules/iconoir-react/dist/esm/regular/Folder.mjs","../node_modules/iconoir-react/dist/esm/regular/Github.mjs","../node_modules/iconoir-react/dist/esm/regular/HalfMoon.mjs","../node_modules/iconoir-react/dist/esm/regular/Heart.mjs","../node_modules/iconoir-react/dist/esm/regular/Home.mjs","../node_modules/iconoir-react/dist/esm/regular/InfoCircle.mjs","../node_modules/iconoir-react/dist/esm/regular/Link.mjs","../node_modules/iconoir-react/dist/esm/regular/List.mjs","../node_modules/iconoir-react/dist/esm/regular/LockSlash.mjs","../node_modules/iconoir-react/dist/esm/regular/Lock.mjs","../node_modules/iconoir-react/dist/esm/regular/Mail.mjs","../node_modules/iconoir-react/dist/esm/regular/Menu.mjs","../node_modules/iconoir-react/dist/esm/regular/Minus.mjs","../node_modules/iconoir-react/dist/esm/regular/MoreHoriz.mjs","../node_modules/iconoir-react/dist/esm/regular/MoreVert.mjs","../node_modules/iconoir-react/dist/esm/regular/NavArrowDown.mjs","../node_modules/iconoir-react/dist/esm/regular/NavArrowLeft.mjs","../node_modules/iconoir-react/dist/esm/regular/NavArrowRight.mjs","../node_modules/iconoir-react/dist/esm/regular/NavArrowUp.mjs","../node_modules/iconoir-react/dist/esm/regular/OpenInWindow.mjs","../node_modules/iconoir-react/dist/esm/regular/Page.mjs","../node_modules/iconoir-react/dist/esm/regular/Plus.mjs","../node_modules/iconoir-react/dist/esm/regular/RefreshDouble.mjs","../node_modules/iconoir-react/dist/esm/regular/Search.mjs","../node_modules/iconoir-react/dist/esm/regular/Settings.mjs","../node_modules/iconoir-react/dist/esm/regular/SortDown.mjs","../node_modules/iconoir-react/dist/esm/regular/Sparks.mjs","../node_modules/iconoir-react/dist/esm/regular/Star.mjs","../node_modules/iconoir-react/dist/esm/regular/SunLight.mjs","../node_modules/iconoir-react/dist/esm/regular/Terminal.mjs","../node_modules/iconoir-react/dist/esm/regular/Trash.mjs","../node_modules/iconoir-react/dist/esm/regular/Upload.mjs","../node_modules/iconoir-react/dist/esm/regular/User.mjs","../node_modules/iconoir-react/dist/esm/regular/ViewGrid.mjs","../node_modules/iconoir-react/dist/esm/regular/WarningTriangle.mjs","../node_modules/iconoir-react/dist/esm/regular/XmarkCircle.mjs","../node_modules/iconoir-react/dist/esm/regular/Xmark.mjs","../src/atoms/Icon/Icon.tsx","../src/atoms/NoiseOverlay/NoiseOverlay.tsx","../src/atoms/ScrollIndicator/ScrollIndicator.tsx","../src/atoms/HamburgerIcon/HamburgerIcon.tsx","../src/atoms/AnimatedText/AnimatedText.tsx","../src/atoms/CodeBlock/CodeBlock.tsx","../src/atoms/Skeleton/Skeleton.tsx","../src/atoms/Shape/patterns.ts","../src/atoms/Shape/Shape.tsx","../src/atoms/Character/Character.tsx","../src/atoms/SpeechBubble/SpeechBubble.tsx","../src/atoms/Tooltip/Tooltip.tsx","../src/molecules/Card/Card.tsx","../src/molecules/NavLink/NavLink.tsx","../src/molecules/CommandBox/CommandBox.tsx","../src/molecules/ThemeToggle/ThemeToggle.tsx","../src/molecules/MobileDrawer/MobileDrawer.tsx","../src/molecules/ErrorBoundary/ErrorBoundary.tsx","../src/molecules/CompositeShape/presets.ts","../src/molecules/CompositeShape/CompositeShape.tsx","../src/molecules/Modal/Modal.tsx","../src/hooks/useReducedMotion.ts","../src/molecules/Tabs/Tabs.tsx","../src/molecules/Toast/Toast.tsx","../src/molecules/Dropdown/Dropdown.tsx","../src/organisms/Nav/Nav.tsx","../src/organisms/Footer/Footer.tsx","../src/organisms/Hero/Hero.tsx","../src/organisms/Section/Section.tsx","../src/hooks/useTheme.ts","../src/hooks/useKeyboardShortcuts.ts","../src/hooks/useMediaQuery.ts","../src/hooks/useToast.ts","../src/hooks/useCountUp.ts","../src/hooks/useScrollReveal.ts","../src/hooks/useStaggerList.ts","../src/hooks/usePageTransition.ts","../src/hooks/useTextReveal.ts","../src/hooks/useButtonPulse.ts"],"sourcesContent":["export const colors = {\n // Dark mode (default)\n dark: {\n bg: '#000000',\n bgSecondary: '#0a0a0a',\n white: '#ffffff',\n grey: {\n 100: '#f5f5f7',\n 200: '#e8e8ed',\n 300: '#c7c7cc',\n 400: '#86868b',\n 600: '#6e6e73',\n 800: '#1d1d1f',\n },\n accent: '#ffffff',\n accentSoft: 'rgba(255, 255, 255, 0.15)',\n glass: {\n bg: 'rgba(255, 255, 255, 0.05)',\n border: 'rgba(255, 255, 255, 0.1)',\n highlight: 'rgba(255, 255, 255, 0.15)',\n },\n // Category colors (flat, no glow)\n category: {\n sage: '#30d158',\n coral: '#ff6961',\n mint: '#64d2ff',\n gold: '#ffd60a',\n },\n // Playful illustration colors\n playful: {\n pink: '#FF6B9D',\n green: '#2ECC71',\n maroon: '#922B3E',\n olive: '#8B7355',\n peach: '#FFAB91',\n lavender: '#A78BFA',\n teal: '#20B2AA',\n mustard: '#F39C12',\n },\n },\n // Light mode\n light: {\n bg: '#ffffff',\n bgSecondary: '#f5f5f7',\n white: '#1d1d1f',\n grey: {\n 100: '#1d1d1f',\n 200: '#3a3a3c',\n 300: '#48484a',\n 400: '#636366',\n 600: '#8e8e93',\n 800: '#e5e5ea',\n },\n accent: '#1d1d1f',\n accentSoft: 'rgba(0, 0, 0, 0.1)',\n glass: {\n bg: 'rgba(0, 0, 0, 0.03)',\n border: 'rgba(0, 0, 0, 0.08)',\n highlight: 'rgba(0, 0, 0, 0.12)',\n },\n category: {\n sage: '#248a3d',\n coral: '#d70015',\n mint: '#0071e3',\n gold: '#b25000',\n },\n // Playful illustration colors (slightly adjusted for light mode)\n playful: {\n pink: '#E91E63',\n green: '#27AE60',\n maroon: '#7B1E2E',\n olive: '#6B5344',\n peach: '#FF8A65',\n lavender: '#9575CD',\n teal: '#009688',\n mustard: '#E67E22',\n },\n },\n} as const\n\nexport type ColorMode = keyof typeof colors\n","export const typography = {\n fontFamily: {\n display: \"'Mona Sans', system-ui, sans-serif\",\n sans: \"'Geist Sans', system-ui, sans-serif\",\n mono: \"'Geist Mono', ui-monospace, 'SF Mono', Menlo, Monaco, monospace\",\n },\n fontSize: {\n xs: '0.6875rem', // 11px\n sm: '0.875rem', // 14px\n base: '1rem', // 16px\n lg: '1.125rem', // 18px\n xl: '1.25rem', // 20px\n '2xl': '1.5rem', // 24px\n '3xl': '2rem', // 32px\n '4xl': '2.5rem', // 40px\n '5xl': '3rem', // 48px\n '6xl': '4rem', // 64px\n '7xl': '5rem', // 80px\n '8xl': '6rem', // 96px\n '9xl': '8rem', // 128px\n '10xl': '10rem', // 160px\n },\n fontWeight: {\n light: '300',\n normal: '400',\n medium: '500',\n semibold: '600',\n bold: '700',\n extrabold: '800',\n black: '900',\n },\n letterSpacing: {\n tighter: '-0.05em',\n tight: '-0.025em',\n normal: '0',\n wide: '0.08em',\n },\n lineHeight: {\n none: '1',\n tight: '1.1',\n snug: '1.25',\n normal: '1.5',\n relaxed: '1.625',\n },\n} as const\n","export const spacing = {\n px: '1px',\n 0: '0',\n 0.5: '0.125rem',\n 1: '0.25rem',\n 2: '0.5rem',\n 3: '0.75rem',\n 4: '1rem',\n 5: '1.25rem',\n 6: '1.5rem',\n 8: '2rem',\n 10: '2.5rem',\n 12: '3rem',\n 16: '4rem',\n 20: '5rem',\n 24: '6rem',\n 32: '8rem',\n} as const\n\nexport const borderRadius = {\n none: '0',\n sm: '0.25rem',\n md: '0.5rem',\n lg: '1rem',\n xl: '1.25rem',\n '2xl': '1.5rem',\n full: '9999px',\n} as const\n","export const effects = {\n // Transitions\n transition: {\n fast: '0.15s cubic-bezier(0.4, 0, 0.2, 1)',\n base: '0.2s cubic-bezier(0.4, 0, 0.2, 1)',\n slow: '0.3s cubic-bezier(0.4, 0, 0.2, 1)',\n spring: '0.35s cubic-bezier(0.4, 0, 0.2, 1)',\n },\n // Backdrop blur for glass effect\n backdropBlur: {\n sm: '8px',\n md: '12px',\n lg: '20px',\n xl: '40px',\n },\n // Transform scales for hover states (NO shadows!)\n scale: {\n press: '0.96',\n hover: '1.02',\n active: '1.05',\n },\n} as const\n\n// NO box-shadow, drop-shadow, or glow effects!\n","function r(e){var t,f,n=\"\";if(\"string\"==typeof e||\"number\"==typeof e)n+=e;else if(\"object\"==typeof e)if(Array.isArray(e)){var o=e.length;for(t=0;t<o;t++)e[t]&&(f=r(e[t]))&&(n&&(n+=\" \"),n+=f)}else for(f in e)e[f]&&(n&&(n+=\" \"),n+=f);return n}export function clsx(){for(var e,t,f=0,n=\"\",o=arguments.length;f<o;f++)(e=arguments[f])&&(t=r(e))&&(n&&(n+=\" \"),n+=t);return n}export default clsx;","const CLASS_PART_SEPARATOR = '-';\nconst createClassGroupUtils = config => {\n const classMap = createClassMap(config);\n const {\n conflictingClassGroups,\n conflictingClassGroupModifiers\n } = config;\n const getClassGroupId = className => {\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 remove it from classParts.\n if (classParts[0] === '' && classParts.length !== 1) {\n classParts.shift();\n }\n return getGroupRecursive(classParts, classMap) || getGroupIdForArbitraryProperty(className);\n };\n const getConflictingClassGroupIds = (classGroupId, hasPostfixModifier) => {\n const conflicts = conflictingClassGroups[classGroupId] || [];\n if (hasPostfixModifier && conflictingClassGroupModifiers[classGroupId]) {\n return [...conflicts, ...conflictingClassGroupModifiers[classGroupId]];\n }\n return conflicts;\n };\n return {\n getClassGroupId,\n getConflictingClassGroupIds\n };\n};\nconst getGroupRecursive = (classParts, classPartObject) => {\n if (classParts.length === 0) {\n return classPartObject.classGroupId;\n }\n const currentClassPart = classParts[0];\n const nextClassPartObject = classPartObject.nextPart.get(currentClassPart);\n const classGroupFromNextClassPart = nextClassPartObject ? getGroupRecursive(classParts.slice(1), nextClassPartObject) : undefined;\n if (classGroupFromNextClassPart) {\n return classGroupFromNextClassPart;\n }\n if (classPartObject.validators.length === 0) {\n return undefined;\n }\n const classRest = classParts.join(CLASS_PART_SEPARATOR);\n return classPartObject.validators.find(({\n validator\n }) => validator(classRest))?.classGroupId;\n};\nconst arbitraryPropertyRegex = /^\\[(.+)\\]$/;\nconst getGroupIdForArbitraryProperty = className => {\n if (arbitraryPropertyRegex.test(className)) {\n const arbitraryPropertyClassName = arbitraryPropertyRegex.exec(className)[1];\n const property = arbitraryPropertyClassName?.substring(0, arbitraryPropertyClassName.indexOf(':'));\n if (property) {\n // I use two dots here because one dot is used as prefix for class groups in plugins\n return 'arbitrary..' + property;\n }\n }\n};\n/**\n * Exported for testing only\n */\nconst createClassMap = config => {\n const {\n theme,\n prefix\n } = config;\n const classMap = {\n nextPart: new Map(),\n validators: []\n };\n const prefixedClassGroupEntries = getPrefixedClassGroupEntries(Object.entries(config.classGroups), prefix);\n prefixedClassGroupEntries.forEach(([classGroupId, classGroup]) => {\n processClassesRecursively(classGroup, classMap, classGroupId, theme);\n });\n return classMap;\n};\nconst processClassesRecursively = (classGroup, classPartObject, classGroupId, theme) => {\n classGroup.forEach(classDefinition => {\n if (typeof classDefinition === 'string') {\n const classPartObjectToEdit = classDefinition === '' ? classPartObject : getPart(classPartObject, classDefinition);\n classPartObjectToEdit.classGroupId = classGroupId;\n return;\n }\n if (typeof classDefinition === 'function') {\n if (isThemeGetter(classDefinition)) {\n processClassesRecursively(classDefinition(theme), classPartObject, classGroupId, theme);\n return;\n }\n classPartObject.validators.push({\n validator: classDefinition,\n classGroupId\n });\n return;\n }\n Object.entries(classDefinition).forEach(([key, classGroup]) => {\n processClassesRecursively(classGroup, getPart(classPartObject, key), classGroupId, theme);\n });\n });\n};\nconst getPart = (classPartObject, path) => {\n let currentClassPartObject = classPartObject;\n path.split(CLASS_PART_SEPARATOR).forEach(pathPart => {\n if (!currentClassPartObject.nextPart.has(pathPart)) {\n currentClassPartObject.nextPart.set(pathPart, {\n nextPart: new Map(),\n validators: []\n });\n }\n currentClassPartObject = currentClassPartObject.nextPart.get(pathPart);\n });\n return currentClassPartObject;\n};\nconst isThemeGetter = func => func.isThemeGetter;\nconst getPrefixedClassGroupEntries = (classGroupEntries, prefix) => {\n if (!prefix) {\n return classGroupEntries;\n }\n return classGroupEntries.map(([classGroupId, classGroup]) => {\n const prefixedClassGroup = classGroup.map(classDefinition => {\n if (typeof classDefinition === 'string') {\n return prefix + classDefinition;\n }\n if (typeof classDefinition === 'object') {\n return Object.fromEntries(Object.entries(classDefinition).map(([key, value]) => [prefix + key, value]));\n }\n return classDefinition;\n });\n return [classGroupId, prefixedClassGroup];\n });\n};\n\n// LRU cache inspired from hashlru (https://github.com/dominictarr/hashlru/blob/v1.0.4/index.js) but object replaced with Map to improve performance\nconst createLruCache = maxCacheSize => {\n if (maxCacheSize < 1) {\n return {\n get: () => undefined,\n set: () => {}\n };\n }\n let cacheSize = 0;\n let cache = new Map();\n let previousCache = new Map();\n const update = (key, value) => {\n cache.set(key, value);\n cacheSize++;\n if (cacheSize > maxCacheSize) {\n cacheSize = 0;\n previousCache = cache;\n cache = new Map();\n }\n };\n return {\n get(key) {\n let value = cache.get(key);\n if (value !== undefined) {\n return value;\n }\n if ((value = previousCache.get(key)) !== undefined) {\n update(key, value);\n return value;\n }\n },\n set(key, value) {\n if (cache.has(key)) {\n cache.set(key, value);\n } else {\n update(key, value);\n }\n }\n };\n};\nconst IMPORTANT_MODIFIER = '!';\nconst createParseClassName = config => {\n const {\n separator,\n experimentalParseClassName\n } = config;\n const isSeparatorSingleCharacter = separator.length === 1;\n const firstSeparatorCharacter = separator[0];\n const separatorLength = separator.length;\n // parseClassName inspired by https://github.com/tailwindlabs/tailwindcss/blob/v3.2.2/src/util/splitAtTopLevelOnly.js\n const parseClassName = className => {\n const modifiers = [];\n let bracketDepth = 0;\n let modifierStart = 0;\n let postfixModifierPosition;\n for (let index = 0; index < className.length; index++) {\n let currentCharacter = className[index];\n if (bracketDepth === 0) {\n if (currentCharacter === firstSeparatorCharacter && (isSeparatorSingleCharacter || className.slice(index, index + separatorLength) === separator)) {\n modifiers.push(className.slice(modifierStart, index));\n modifierStart = index + separatorLength;\n continue;\n }\n if (currentCharacter === '/') {\n postfixModifierPosition = index;\n continue;\n }\n }\n if (currentCharacter === '[') {\n bracketDepth++;\n } else if (currentCharacter === ']') {\n bracketDepth--;\n }\n }\n const baseClassNameWithImportantModifier = modifiers.length === 0 ? className : className.substring(modifierStart);\n const hasImportantModifier = baseClassNameWithImportantModifier.startsWith(IMPORTANT_MODIFIER);\n const baseClassName = hasImportantModifier ? baseClassNameWithImportantModifier.substring(1) : baseClassNameWithImportantModifier;\n const maybePostfixModifierPosition = postfixModifierPosition && postfixModifierPosition > modifierStart ? postfixModifierPosition - modifierStart : undefined;\n return {\n modifiers,\n hasImportantModifier,\n baseClassName,\n maybePostfixModifierPosition\n };\n };\n if (experimentalParseClassName) {\n return className => experimentalParseClassName({\n className,\n parseClassName\n });\n }\n return parseClassName;\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 */\nconst sortModifiers = modifiers => {\n if (modifiers.length <= 1) {\n return modifiers;\n }\n const sortedModifiers = [];\n let unsortedModifiers = [];\n modifiers.forEach(modifier => {\n const isArbitraryVariant = modifier[0] === '[';\n if (isArbitraryVariant) {\n sortedModifiers.push(...unsortedModifiers.sort(), modifier);\n unsortedModifiers = [];\n } else {\n unsortedModifiers.push(modifier);\n }\n });\n sortedModifiers.push(...unsortedModifiers.sort());\n return sortedModifiers;\n};\nconst createConfigUtils = config => ({\n cache: createLruCache(config.cacheSize),\n parseClassName: createParseClassName(config),\n ...createClassGroupUtils(config)\n});\nconst SPLIT_CLASSES_REGEX = /\\s+/;\nconst mergeClassList = (classList, configUtils) => {\n const {\n parseClassName,\n getClassGroupId,\n getConflictingClassGroupIds\n } = configUtils;\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 = [];\n const classNames = classList.trim().split(SPLIT_CLASSES_REGEX);\n let result = '';\n for (let index = classNames.length - 1; index >= 0; index -= 1) {\n const originalClassName = classNames[index];\n const {\n modifiers,\n hasImportantModifier,\n baseClassName,\n maybePostfixModifierPosition\n } = parseClassName(originalClassName);\n let hasPostfixModifier = Boolean(maybePostfixModifierPosition);\n let classGroupId = getClassGroupId(hasPostfixModifier ? baseClassName.substring(0, maybePostfixModifierPosition) : baseClassName);\n if (!classGroupId) {\n if (!hasPostfixModifier) {\n // Not a Tailwind class\n result = originalClassName + (result.length > 0 ? ' ' + result : result);\n continue;\n }\n classGroupId = getClassGroupId(baseClassName);\n if (!classGroupId) {\n // Not a Tailwind class\n result = originalClassName + (result.length > 0 ? ' ' + result : result);\n continue;\n }\n hasPostfixModifier = false;\n }\n const variantModifier = sortModifiers(modifiers).join(':');\n const modifierId = hasImportantModifier ? variantModifier + IMPORTANT_MODIFIER : variantModifier;\n const classId = modifierId + classGroupId;\n if (classGroupsInConflict.includes(classId)) {\n // Tailwind class omitted due to conflict\n continue;\n }\n classGroupsInConflict.push(classId);\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 // Tailwind class not in conflict\n result = originalClassName + (result.length > 0 ? ' ' + result : result);\n }\n return result;\n};\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 */\nfunction twJoin() {\n let index = 0;\n let argument;\n let resolvedValue;\n let string = '';\n while (index < arguments.length) {\n if (argument = arguments[index++]) {\n if (resolvedValue = toValue(argument)) {\n string && (string += ' ');\n string += resolvedValue;\n }\n }\n }\n return string;\n}\nconst toValue = mix => {\n if (typeof mix === 'string') {\n return mix;\n }\n let resolvedValue;\n let string = '';\n for (let k = 0; k < mix.length; k++) {\n if (mix[k]) {\n if (resolvedValue = toValue(mix[k])) {\n string && (string += ' ');\n string += resolvedValue;\n }\n }\n }\n return string;\n};\nfunction createTailwindMerge(createConfigFirst, ...createConfigRest) {\n let configUtils;\n let cacheGet;\n let cacheSet;\n let functionToCall = initTailwindMerge;\n function initTailwindMerge(classList) {\n const config = createConfigRest.reduce((previousConfig, createConfigCurrent) => createConfigCurrent(previousConfig), createConfigFirst());\n configUtils = createConfigUtils(config);\n cacheGet = configUtils.cache.get;\n cacheSet = configUtils.cache.set;\n functionToCall = tailwindMerge;\n return tailwindMerge(classList);\n }\n function tailwindMerge(classList) {\n const cachedResult = cacheGet(classList);\n if (cachedResult) {\n return cachedResult;\n }\n const result = mergeClassList(classList, configUtils);\n cacheSet(classList, result);\n return result;\n }\n return function callTailwindMerge() {\n return functionToCall(twJoin.apply(null, arguments));\n };\n}\nconst fromTheme = key => {\n const themeGetter = theme => theme[key] || [];\n themeGetter.isThemeGetter = true;\n return themeGetter;\n};\nconst arbitraryValueRegex = /^\\[(?:([a-z-]+):)?(.+)\\]$/i;\nconst fractionRegex = /^\\d+\\/\\d+$/;\nconst stringLengths = /*#__PURE__*/new Set(['px', 'full', 'screen']);\nconst tshirtUnitRegex = /^(\\d+(\\.\\d+)?)?(xs|sm|md|lg|xl)$/;\nconst lengthUnitRegex = /\\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))\\(.+\\)$/;\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 = /^(url|image|image-set|cross-fade|element|(repeating-)?(linear|radial|conic)-gradient)\\(.+\\)$/;\nconst isLength = value => isNumber(value) || stringLengths.has(value) || fractionRegex.test(value);\nconst isArbitraryLength = value => getIsArbitraryValue(value, 'length', isLengthOnly);\nconst isNumber = value => Boolean(value) && !Number.isNaN(Number(value));\nconst isArbitraryNumber = value => getIsArbitraryValue(value, 'number', isNumber);\nconst isInteger = value => Boolean(value) && Number.isInteger(Number(value));\nconst isPercent = value => value.endsWith('%') && isNumber(value.slice(0, -1));\nconst isArbitraryValue = value => arbitraryValueRegex.test(value);\nconst isTshirtSize = value => tshirtUnitRegex.test(value);\nconst sizeLabels = /*#__PURE__*/new Set(['length', 'size', 'percentage']);\nconst isArbitrarySize = value => getIsArbitraryValue(value, sizeLabels, isNever);\nconst isArbitraryPosition = value => getIsArbitraryValue(value, 'position', isNever);\nconst imageLabels = /*#__PURE__*/new Set(['image', 'url']);\nconst isArbitraryImage = value => getIsArbitraryValue(value, imageLabels, isImage);\nconst isArbitraryShadow = value => getIsArbitraryValue(value, '', isShadow);\nconst isAny = () => true;\nconst getIsArbitraryValue = (value, label, testValue) => {\n const result = arbitraryValueRegex.exec(value);\n if (result) {\n if (result[1]) {\n return typeof label === 'string' ? result[1] === label : label.has(result[1]);\n }\n return testValue(result[2]);\n }\n return false;\n};\nconst isLengthOnly = value =>\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.\nlengthUnitRegex.test(value) && !colorFunctionRegex.test(value);\nconst isNever = () => false;\nconst isShadow = value => shadowRegex.test(value);\nconst isImage = value => imageRegex.test(value);\nconst validators = /*#__PURE__*/Object.defineProperty({\n __proto__: null,\n isAny,\n isArbitraryImage,\n isArbitraryLength,\n isArbitraryNumber,\n isArbitraryPosition,\n isArbitraryShadow,\n isArbitrarySize,\n isArbitraryValue,\n isInteger,\n isLength,\n isNumber,\n isPercent,\n isTshirtSize\n}, Symbol.toStringTag, {\n value: 'Module'\n});\nconst getDefaultConfig = () => {\n const colors = fromTheme('colors');\n const spacing = fromTheme('spacing');\n const blur = fromTheme('blur');\n const brightness = fromTheme('brightness');\n const borderColor = fromTheme('borderColor');\n const borderRadius = fromTheme('borderRadius');\n const borderSpacing = fromTheme('borderSpacing');\n const borderWidth = fromTheme('borderWidth');\n const contrast = fromTheme('contrast');\n const grayscale = fromTheme('grayscale');\n const hueRotate = fromTheme('hueRotate');\n const invert = fromTheme('invert');\n const gap = fromTheme('gap');\n const gradientColorStops = fromTheme('gradientColorStops');\n const gradientColorStopPositions = fromTheme('gradientColorStopPositions');\n const inset = fromTheme('inset');\n const margin = fromTheme('margin');\n const opacity = fromTheme('opacity');\n const padding = fromTheme('padding');\n const saturate = fromTheme('saturate');\n const scale = fromTheme('scale');\n const sepia = fromTheme('sepia');\n const skew = fromTheme('skew');\n const space = fromTheme('space');\n const translate = fromTheme('translate');\n const getOverscroll = () => ['auto', 'contain', 'none'];\n const getOverflow = () => ['auto', 'hidden', 'clip', 'visible', 'scroll'];\n const getSpacingWithAutoAndArbitrary = () => ['auto', isArbitraryValue, spacing];\n const getSpacingWithArbitrary = () => [isArbitraryValue, spacing];\n const getLengthWithEmptyAndArbitrary = () => ['', isLength, isArbitraryLength];\n const getNumberWithAutoAndArbitrary = () => ['auto', isNumber, isArbitraryValue];\n const getPositions = () => ['bottom', 'center', 'left', 'left-bottom', 'left-top', 'right', 'right-bottom', 'right-top', 'top'];\n const getLineStyles = () => ['solid', 'dashed', 'dotted', 'double', 'none'];\n const getBlendModes = () => ['normal', 'multiply', 'screen', 'overlay', 'darken', 'lighten', 'color-dodge', 'color-burn', 'hard-light', 'soft-light', 'difference', 'exclusion', 'hue', 'saturation', 'color', 'luminosity'];\n const getAlign = () => ['start', 'end', 'center', 'between', 'around', 'evenly', 'stretch'];\n const getZeroAndEmpty = () => ['', '0', isArbitraryValue];\n const getBreaks = () => ['auto', 'avoid', 'all', 'avoid-page', 'page', 'left', 'right', 'column'];\n const getNumberAndArbitrary = () => [isNumber, isArbitraryValue];\n return {\n cacheSize: 500,\n separator: ':',\n theme: {\n colors: [isAny],\n spacing: [isLength, isArbitraryLength],\n blur: ['none', '', isTshirtSize, isArbitraryValue],\n brightness: getNumberAndArbitrary(),\n borderColor: [colors],\n borderRadius: ['none', '', 'full', isTshirtSize, isArbitraryValue],\n borderSpacing: getSpacingWithArbitrary(),\n borderWidth: getLengthWithEmptyAndArbitrary(),\n contrast: getNumberAndArbitrary(),\n grayscale: getZeroAndEmpty(),\n hueRotate: getNumberAndArbitrary(),\n invert: getZeroAndEmpty(),\n gap: getSpacingWithArbitrary(),\n gradientColorStops: [colors],\n gradientColorStopPositions: [isPercent, isArbitraryLength],\n inset: getSpacingWithAutoAndArbitrary(),\n margin: getSpacingWithAutoAndArbitrary(),\n opacity: getNumberAndArbitrary(),\n padding: getSpacingWithArbitrary(),\n saturate: getNumberAndArbitrary(),\n scale: getNumberAndArbitrary(),\n sepia: getZeroAndEmpty(),\n skew: getNumberAndArbitrary(),\n space: getSpacingWithArbitrary(),\n translate: getSpacingWithArbitrary()\n },\n classGroups: {\n // Layout\n /**\n * Aspect Ratio\n * @see https://tailwindcss.com/docs/aspect-ratio\n */\n aspect: [{\n aspect: ['auto', 'square', 'video', isArbitraryValue]\n }],\n /**\n * Container\n * @see https://tailwindcss.com/docs/container\n */\n container: ['container'],\n /**\n * Columns\n * @see https://tailwindcss.com/docs/columns\n */\n columns: [{\n columns: [isTshirtSize]\n }],\n /**\n * Break After\n * @see https://tailwindcss.com/docs/break-after\n */\n 'break-after': [{\n 'break-after': getBreaks()\n }],\n /**\n * Break Before\n * @see https://tailwindcss.com/docs/break-before\n */\n 'break-before': [{\n 'break-before': getBreaks()\n }],\n /**\n * Break Inside\n * @see https://tailwindcss.com/docs/break-inside\n */\n 'break-inside': [{\n 'break-inside': ['auto', 'avoid', 'avoid-page', 'avoid-column']\n }],\n /**\n * Box Decoration Break\n * @see https://tailwindcss.com/docs/box-decoration-break\n */\n 'box-decoration': [{\n 'box-decoration': ['slice', 'clone']\n }],\n /**\n * Box Sizing\n * @see https://tailwindcss.com/docs/box-sizing\n */\n box: [{\n box: ['border', 'content']\n }],\n /**\n * Display\n * @see https://tailwindcss.com/docs/display\n */\n display: ['block', 'inline-block', 'inline', 'flex', 'inline-flex', 'table', 'inline-table', 'table-caption', 'table-cell', 'table-column', 'table-column-group', 'table-footer-group', 'table-header-group', 'table-row-group', 'table-row', 'flow-root', 'grid', 'inline-grid', 'contents', 'list-item', 'hidden'],\n /**\n * Floats\n * @see https://tailwindcss.com/docs/float\n */\n float: [{\n float: ['right', 'left', 'none', 'start', 'end']\n }],\n /**\n * Clear\n * @see https://tailwindcss.com/docs/clear\n */\n clear: [{\n clear: ['left', 'right', 'both', 'none', 'start', 'end']\n }],\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': [{\n object: ['contain', 'cover', 'fill', 'none', 'scale-down']\n }],\n /**\n * Object Position\n * @see https://tailwindcss.com/docs/object-position\n */\n 'object-position': [{\n object: [...getPositions(), isArbitraryValue]\n }],\n /**\n * Overflow\n * @see https://tailwindcss.com/docs/overflow\n */\n overflow: [{\n overflow: getOverflow()\n }],\n /**\n * Overflow X\n * @see https://tailwindcss.com/docs/overflow\n */\n 'overflow-x': [{\n 'overflow-x': getOverflow()\n }],\n /**\n * Overflow Y\n * @see https://tailwindcss.com/docs/overflow\n */\n 'overflow-y': [{\n 'overflow-y': getOverflow()\n }],\n /**\n * Overscroll Behavior\n * @see https://tailwindcss.com/docs/overscroll-behavior\n */\n overscroll: [{\n overscroll: getOverscroll()\n }],\n /**\n * Overscroll Behavior X\n * @see https://tailwindcss.com/docs/overscroll-behavior\n */\n 'overscroll-x': [{\n 'overscroll-x': getOverscroll()\n }],\n /**\n * Overscroll Behavior Y\n * @see https://tailwindcss.com/docs/overscroll-behavior\n */\n 'overscroll-y': [{\n 'overscroll-y': getOverscroll()\n }],\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: [{\n inset: [inset]\n }],\n /**\n * Right / Left\n * @see https://tailwindcss.com/docs/top-right-bottom-left\n */\n 'inset-x': [{\n 'inset-x': [inset]\n }],\n /**\n * Top / Bottom\n * @see https://tailwindcss.com/docs/top-right-bottom-left\n */\n 'inset-y': [{\n 'inset-y': [inset]\n }],\n /**\n * Start\n * @see https://tailwindcss.com/docs/top-right-bottom-left\n */\n start: [{\n start: [inset]\n }],\n /**\n * End\n * @see https://tailwindcss.com/docs/top-right-bottom-left\n */\n end: [{\n end: [inset]\n }],\n /**\n * Top\n * @see https://tailwindcss.com/docs/top-right-bottom-left\n */\n top: [{\n top: [inset]\n }],\n /**\n * Right\n * @see https://tailwindcss.com/docs/top-right-bottom-left\n */\n right: [{\n right: [inset]\n }],\n /**\n * Bottom\n * @see https://tailwindcss.com/docs/top-right-bottom-left\n */\n bottom: [{\n bottom: [inset]\n }],\n /**\n * Left\n * @see https://tailwindcss.com/docs/top-right-bottom-left\n */\n left: [{\n left: [inset]\n }],\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: [{\n z: ['auto', isInteger, isArbitraryValue]\n }],\n // Flexbox and Grid\n /**\n * Flex Basis\n * @see https://tailwindcss.com/docs/flex-basis\n */\n basis: [{\n basis: getSpacingWithAutoAndArbitrary()\n }],\n /**\n * Flex Direction\n * @see https://tailwindcss.com/docs/flex-direction\n */\n 'flex-direction': [{\n flex: ['row', 'row-reverse', 'col', 'col-reverse']\n }],\n /**\n * Flex Wrap\n * @see https://tailwindcss.com/docs/flex-wrap\n */\n 'flex-wrap': [{\n flex: ['wrap', 'wrap-reverse', 'nowrap']\n }],\n /**\n * Flex\n * @see https://tailwindcss.com/docs/flex\n */\n flex: [{\n flex: ['1', 'auto', 'initial', 'none', isArbitraryValue]\n }],\n /**\n * Flex Grow\n * @see https://tailwindcss.com/docs/flex-grow\n */\n grow: [{\n grow: getZeroAndEmpty()\n }],\n /**\n * Flex Shrink\n * @see https://tailwindcss.com/docs/flex-shrink\n */\n shrink: [{\n shrink: getZeroAndEmpty()\n }],\n /**\n * Order\n * @see https://tailwindcss.com/docs/order\n */\n order: [{\n order: ['first', 'last', 'none', isInteger, isArbitraryValue]\n }],\n /**\n * Grid Template Columns\n * @see https://tailwindcss.com/docs/grid-template-columns\n */\n 'grid-cols': [{\n 'grid-cols': [isAny]\n }],\n /**\n * Grid Column Start / End\n * @see https://tailwindcss.com/docs/grid-column\n */\n 'col-start-end': [{\n col: ['auto', {\n span: ['full', isInteger, isArbitraryValue]\n }, isArbitraryValue]\n }],\n /**\n * Grid Column Start\n * @see https://tailwindcss.com/docs/grid-column\n */\n 'col-start': [{\n 'col-start': getNumberWithAutoAndArbitrary()\n }],\n /**\n * Grid Column End\n * @see https://tailwindcss.com/docs/grid-column\n */\n 'col-end': [{\n 'col-end': getNumberWithAutoAndArbitrary()\n }],\n /**\n * Grid Template Rows\n * @see https://tailwindcss.com/docs/grid-template-rows\n */\n 'grid-rows': [{\n 'grid-rows': [isAny]\n }],\n /**\n * Grid Row Start / End\n * @see https://tailwindcss.com/docs/grid-row\n */\n 'row-start-end': [{\n row: ['auto', {\n span: [isInteger, isArbitraryValue]\n }, isArbitraryValue]\n }],\n /**\n * Grid Row Start\n * @see https://tailwindcss.com/docs/grid-row\n */\n 'row-start': [{\n 'row-start': getNumberWithAutoAndArbitrary()\n }],\n /**\n * Grid Row End\n * @see https://tailwindcss.com/docs/grid-row\n */\n 'row-end': [{\n 'row-end': getNumberWithAutoAndArbitrary()\n }],\n /**\n * Grid Auto Flow\n * @see https://tailwindcss.com/docs/grid-auto-flow\n */\n 'grid-flow': [{\n 'grid-flow': ['row', 'col', 'dense', 'row-dense', 'col-dense']\n }],\n /**\n * Grid Auto Columns\n * @see https://tailwindcss.com/docs/grid-auto-columns\n */\n 'auto-cols': [{\n 'auto-cols': ['auto', 'min', 'max', 'fr', isArbitraryValue]\n }],\n /**\n * Grid Auto Rows\n * @see https://tailwindcss.com/docs/grid-auto-rows\n */\n 'auto-rows': [{\n 'auto-rows': ['auto', 'min', 'max', 'fr', isArbitraryValue]\n }],\n /**\n * Gap\n * @see https://tailwindcss.com/docs/gap\n */\n gap: [{\n gap: [gap]\n }],\n /**\n * Gap X\n * @see https://tailwindcss.com/docs/gap\n */\n 'gap-x': [{\n 'gap-x': [gap]\n }],\n /**\n * Gap Y\n * @see https://tailwindcss.com/docs/gap\n */\n 'gap-y': [{\n 'gap-y': [gap]\n }],\n /**\n * Justify Content\n * @see https://tailwindcss.com/docs/justify-content\n */\n 'justify-content': [{\n justify: ['normal', ...getAlign()]\n }],\n /**\n * Justify Items\n * @see https://tailwindcss.com/docs/justify-items\n */\n 'justify-items': [{\n 'justify-items': ['start', 'end', 'center', 'stretch']\n }],\n /**\n * Justify Self\n * @see https://tailwindcss.com/docs/justify-self\n */\n 'justify-self': [{\n 'justify-self': ['auto', 'start', 'end', 'center', 'stretch']\n }],\n /**\n * Align Content\n * @see https://tailwindcss.com/docs/align-content\n */\n 'align-content': [{\n content: ['normal', ...getAlign(), 'baseline']\n }],\n /**\n * Align Items\n * @see https://tailwindcss.com/docs/align-items\n */\n 'align-items': [{\n items: ['start', 'end', 'center', 'baseline', 'stretch']\n }],\n /**\n * Align Self\n * @see https://tailwindcss.com/docs/align-self\n */\n 'align-self': [{\n self: ['auto', 'start', 'end', 'center', 'stretch', 'baseline']\n }],\n /**\n * Place Content\n * @see https://tailwindcss.com/docs/place-content\n */\n 'place-content': [{\n 'place-content': [...getAlign(), 'baseline']\n }],\n /**\n * Place Items\n * @see https://tailwindcss.com/docs/place-items\n */\n 'place-items': [{\n 'place-items': ['start', 'end', 'center', 'baseline', 'stretch']\n }],\n /**\n * Place Self\n * @see https://tailwindcss.com/docs/place-self\n */\n 'place-self': [{\n 'place-self': ['auto', 'start', 'end', 'center', 'stretch']\n }],\n // Spacing\n /**\n * Padding\n * @see https://tailwindcss.com/docs/padding\n */\n p: [{\n p: [padding]\n }],\n /**\n * Padding X\n * @see https://tailwindcss.com/docs/padding\n */\n px: [{\n px: [padding]\n }],\n /**\n * Padding Y\n * @see https://tailwindcss.com/docs/padding\n */\n py: [{\n py: [padding]\n }],\n /**\n * Padding Start\n * @see https://tailwindcss.com/docs/padding\n */\n ps: [{\n ps: [padding]\n }],\n /**\n * Padding End\n * @see https://tailwindcss.com/docs/padding\n */\n pe: [{\n pe: [padding]\n }],\n /**\n * Padding Top\n * @see https://tailwindcss.com/docs/padding\n */\n pt: [{\n pt: [padding]\n }],\n /**\n * Padding Right\n * @see https://tailwindcss.com/docs/padding\n */\n pr: [{\n pr: [padding]\n }],\n /**\n * Padding Bottom\n * @see https://tailwindcss.com/docs/padding\n */\n pb: [{\n pb: [padding]\n }],\n /**\n * Padding Left\n * @see https://tailwindcss.com/docs/padding\n */\n pl: [{\n pl: [padding]\n }],\n /**\n * Margin\n * @see https://tailwindcss.com/docs/margin\n */\n m: [{\n m: [margin]\n }],\n /**\n * Margin X\n * @see https://tailwindcss.com/docs/margin\n */\n mx: [{\n mx: [margin]\n }],\n /**\n * Margin Y\n * @see https://tailwindcss.com/docs/margin\n */\n my: [{\n my: [margin]\n }],\n /**\n * Margin Start\n * @see https://tailwindcss.com/docs/margin\n */\n ms: [{\n ms: [margin]\n }],\n /**\n * Margin End\n * @see https://tailwindcss.com/docs/margin\n */\n me: [{\n me: [margin]\n }],\n /**\n * Margin Top\n * @see https://tailwindcss.com/docs/margin\n */\n mt: [{\n mt: [margin]\n }],\n /**\n * Margin Right\n * @see https://tailwindcss.com/docs/margin\n */\n mr: [{\n mr: [margin]\n }],\n /**\n * Margin Bottom\n * @see https://tailwindcss.com/docs/margin\n */\n mb: [{\n mb: [margin]\n }],\n /**\n * Margin Left\n * @see https://tailwindcss.com/docs/margin\n */\n ml: [{\n ml: [margin]\n }],\n /**\n * Space Between X\n * @see https://tailwindcss.com/docs/space\n */\n 'space-x': [{\n 'space-x': [space]\n }],\n /**\n * Space Between X Reverse\n * @see https://tailwindcss.com/docs/space\n */\n 'space-x-reverse': ['space-x-reverse'],\n /**\n * Space Between Y\n * @see https://tailwindcss.com/docs/space\n */\n 'space-y': [{\n 'space-y': [space]\n }],\n /**\n * Space Between Y Reverse\n * @see https://tailwindcss.com/docs/space\n */\n 'space-y-reverse': ['space-y-reverse'],\n // Sizing\n /**\n * Width\n * @see https://tailwindcss.com/docs/width\n */\n w: [{\n w: ['auto', 'min', 'max', 'fit', 'svw', 'lvw', 'dvw', isArbitraryValue, spacing]\n }],\n /**\n * Min-Width\n * @see https://tailwindcss.com/docs/min-width\n */\n 'min-w': [{\n 'min-w': [isArbitraryValue, spacing, 'min', 'max', 'fit']\n }],\n /**\n * Max-Width\n * @see https://tailwindcss.com/docs/max-width\n */\n 'max-w': [{\n 'max-w': [isArbitraryValue, spacing, 'none', 'full', 'min', 'max', 'fit', 'prose', {\n screen: [isTshirtSize]\n }, isTshirtSize]\n }],\n /**\n * Height\n * @see https://tailwindcss.com/docs/height\n */\n h: [{\n h: [isArbitraryValue, spacing, 'auto', 'min', 'max', 'fit', 'svh', 'lvh', 'dvh']\n }],\n /**\n * Min-Height\n * @see https://tailwindcss.com/docs/min-height\n */\n 'min-h': [{\n 'min-h': [isArbitraryValue, spacing, 'min', 'max', 'fit', 'svh', 'lvh', 'dvh']\n }],\n /**\n * Max-Height\n * @see https://tailwindcss.com/docs/max-height\n */\n 'max-h': [{\n 'max-h': [isArbitraryValue, spacing, 'min', 'max', 'fit', 'svh', 'lvh', 'dvh']\n }],\n /**\n * Size\n * @see https://tailwindcss.com/docs/size\n */\n size: [{\n size: [isArbitraryValue, spacing, 'auto', 'min', 'max', 'fit']\n }],\n // Typography\n /**\n * Font Size\n * @see https://tailwindcss.com/docs/font-size\n */\n 'font-size': [{\n text: ['base', isTshirtSize, 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': [{\n font: ['thin', 'extralight', 'light', 'normal', 'medium', 'semibold', 'bold', 'extrabold', 'black', isArbitraryNumber]\n }],\n /**\n * Font Family\n * @see https://tailwindcss.com/docs/font-family\n */\n 'font-family': [{\n font: [isAny]\n }],\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: [{\n tracking: ['tighter', 'tight', 'normal', 'wide', 'wider', 'widest', isArbitraryValue]\n }],\n /**\n * Line Clamp\n * @see https://tailwindcss.com/docs/line-clamp\n */\n 'line-clamp': [{\n 'line-clamp': ['none', isNumber, isArbitraryNumber]\n }],\n /**\n * Line Height\n * @see https://tailwindcss.com/docs/line-height\n */\n leading: [{\n leading: ['none', 'tight', 'snug', 'normal', 'relaxed', 'loose', isLength, isArbitraryValue]\n }],\n /**\n * List Style Image\n * @see https://tailwindcss.com/docs/list-style-image\n */\n 'list-image': [{\n 'list-image': ['none', isArbitraryValue]\n }],\n /**\n * List Style Type\n * @see https://tailwindcss.com/docs/list-style-type\n */\n 'list-style-type': [{\n list: ['none', 'disc', 'decimal', isArbitraryValue]\n }],\n /**\n * List Style Position\n * @see https://tailwindcss.com/docs/list-style-position\n */\n 'list-style-position': [{\n list: ['inside', 'outside']\n }],\n /**\n * Placeholder Color\n * @deprecated since Tailwind CSS v3.0.0\n * @see https://tailwindcss.com/docs/placeholder-color\n */\n 'placeholder-color': [{\n placeholder: [colors]\n }],\n /**\n * Placeholder Opacity\n * @see https://tailwindcss.com/docs/placeholder-opacity\n */\n 'placeholder-opacity': [{\n 'placeholder-opacity': [opacity]\n }],\n /**\n * Text Alignment\n * @see https://tailwindcss.com/docs/text-align\n */\n 'text-alignment': [{\n text: ['left', 'center', 'right', 'justify', 'start', 'end']\n }],\n /**\n * Text Color\n * @see https://tailwindcss.com/docs/text-color\n */\n 'text-color': [{\n text: [colors]\n }],\n /**\n * Text Opacity\n * @see https://tailwindcss.com/docs/text-opacity\n */\n 'text-opacity': [{\n 'text-opacity': [opacity]\n }],\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': [{\n decoration: [...getLineStyles(), 'wavy']\n }],\n /**\n * Text Decoration Thickness\n * @see https://tailwindcss.com/docs/text-decoration-thickness\n */\n 'text-decoration-thickness': [{\n decoration: ['auto', 'from-font', isLength, isArbitraryLength]\n }],\n /**\n * Text Underline Offset\n * @see https://tailwindcss.com/docs/text-underline-offset\n */\n 'underline-offset': [{\n 'underline-offset': ['auto', isLength, isArbitraryValue]\n }],\n /**\n * Text Decoration Color\n * @see https://tailwindcss.com/docs/text-decoration-color\n */\n 'text-decoration-color': [{\n decoration: [colors]\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': [{\n text: ['wrap', 'nowrap', 'balance', 'pretty']\n }],\n /**\n * Text Indent\n * @see https://tailwindcss.com/docs/text-indent\n */\n indent: [{\n indent: getSpacingWithArbitrary()\n }],\n /**\n * Vertical Alignment\n * @see https://tailwindcss.com/docs/vertical-align\n */\n 'vertical-align': [{\n align: ['baseline', 'top', 'middle', 'bottom', 'text-top', 'text-bottom', 'sub', 'super', isArbitraryValue]\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: [{\n break: ['normal', 'words', 'all', 'keep']\n }],\n /**\n * Hyphens\n * @see https://tailwindcss.com/docs/hyphens\n */\n hyphens: [{\n hyphens: ['none', 'manual', 'auto']\n }],\n /**\n * Content\n * @see https://tailwindcss.com/docs/content\n */\n content: [{\n content: ['none', isArbitraryValue]\n }],\n // Backgrounds\n /**\n * Background Attachment\n * @see https://tailwindcss.com/docs/background-attachment\n */\n 'bg-attachment': [{\n bg: ['fixed', 'local', 'scroll']\n }],\n /**\n * Background Clip\n * @see https://tailwindcss.com/docs/background-clip\n */\n 'bg-clip': [{\n 'bg-clip': ['border', 'padding', 'content', 'text']\n }],\n /**\n * Background Opacity\n * @deprecated since Tailwind CSS v3.0.0\n * @see https://tailwindcss.com/docs/background-opacity\n */\n 'bg-opacity': [{\n 'bg-opacity': [opacity]\n }],\n /**\n * Background Origin\n * @see https://tailwindcss.com/docs/background-origin\n */\n 'bg-origin': [{\n 'bg-origin': ['border', 'padding', 'content']\n }],\n /**\n * Background Position\n * @see https://tailwindcss.com/docs/background-position\n */\n 'bg-position': [{\n bg: [...getPositions(), isArbitraryPosition]\n }],\n /**\n * Background Repeat\n * @see https://tailwindcss.com/docs/background-repeat\n */\n 'bg-repeat': [{\n bg: ['no-repeat', {\n repeat: ['', 'x', 'y', 'round', 'space']\n }]\n }],\n /**\n * Background Size\n * @see https://tailwindcss.com/docs/background-size\n */\n 'bg-size': [{\n bg: ['auto', 'cover', 'contain', isArbitrarySize]\n }],\n /**\n * Background Image\n * @see https://tailwindcss.com/docs/background-image\n */\n 'bg-image': [{\n bg: ['none', {\n 'gradient-to': ['t', 'tr', 'r', 'br', 'b', 'bl', 'l', 'tl']\n }, isArbitraryImage]\n }],\n /**\n * Background Color\n * @see https://tailwindcss.com/docs/background-color\n */\n 'bg-color': [{\n bg: [colors]\n }],\n /**\n * Gradient Color Stops From Position\n * @see https://tailwindcss.com/docs/gradient-color-stops\n */\n 'gradient-from-pos': [{\n from: [gradientColorStopPositions]\n }],\n /**\n * Gradient Color Stops Via Position\n * @see https://tailwindcss.com/docs/gradient-color-stops\n */\n 'gradient-via-pos': [{\n via: [gradientColorStopPositions]\n }],\n /**\n * Gradient Color Stops To Position\n * @see https://tailwindcss.com/docs/gradient-color-stops\n */\n 'gradient-to-pos': [{\n to: [gradientColorStopPositions]\n }],\n /**\n * Gradient Color Stops From\n * @see https://tailwindcss.com/docs/gradient-color-stops\n */\n 'gradient-from': [{\n from: [gradientColorStops]\n }],\n /**\n * Gradient Color Stops Via\n * @see https://tailwindcss.com/docs/gradient-color-stops\n */\n 'gradient-via': [{\n via: [gradientColorStops]\n }],\n /**\n * Gradient Color Stops To\n * @see https://tailwindcss.com/docs/gradient-color-stops\n */\n 'gradient-to': [{\n to: [gradientColorStops]\n }],\n // Borders\n /**\n * Border Radius\n * @see https://tailwindcss.com/docs/border-radius\n */\n rounded: [{\n rounded: [borderRadius]\n }],\n /**\n * Border Radius Start\n * @see https://tailwindcss.com/docs/border-radius\n */\n 'rounded-s': [{\n 'rounded-s': [borderRadius]\n }],\n /**\n * Border Radius End\n * @see https://tailwindcss.com/docs/border-radius\n */\n 'rounded-e': [{\n 'rounded-e': [borderRadius]\n }],\n /**\n * Border Radius Top\n * @see https://tailwindcss.com/docs/border-radius\n */\n 'rounded-t': [{\n 'rounded-t': [borderRadius]\n }],\n /**\n * Border Radius Right\n * @see https://tailwindcss.com/docs/border-radius\n */\n 'rounded-r': [{\n 'rounded-r': [borderRadius]\n }],\n /**\n * Border Radius Bottom\n * @see https://tailwindcss.com/docs/border-radius\n */\n 'rounded-b': [{\n 'rounded-b': [borderRadius]\n }],\n /**\n * Border Radius Left\n * @see https://tailwindcss.com/docs/border-radius\n */\n 'rounded-l': [{\n 'rounded-l': [borderRadius]\n }],\n /**\n * Border Radius Start Start\n * @see https://tailwindcss.com/docs/border-radius\n */\n 'rounded-ss': [{\n 'rounded-ss': [borderRadius]\n }],\n /**\n * Border Radius Start End\n * @see https://tailwindcss.com/docs/border-radius\n */\n 'rounded-se': [{\n 'rounded-se': [borderRadius]\n }],\n /**\n * Border Radius End End\n * @see https://tailwindcss.com/docs/border-radius\n */\n 'rounded-ee': [{\n 'rounded-ee': [borderRadius]\n }],\n /**\n * Border Radius End Start\n * @see https://tailwindcss.com/docs/border-radius\n */\n 'rounded-es': [{\n 'rounded-es': [borderRadius]\n }],\n /**\n * Border Radius Top Left\n * @see https://tailwindcss.com/docs/border-radius\n */\n 'rounded-tl': [{\n 'rounded-tl': [borderRadius]\n }],\n /**\n * Border Radius Top Right\n * @see https://tailwindcss.com/docs/border-radius\n */\n 'rounded-tr': [{\n 'rounded-tr': [borderRadius]\n }],\n /**\n * Border Radius Bottom Right\n * @see https://tailwindcss.com/docs/border-radius\n */\n 'rounded-br': [{\n 'rounded-br': [borderRadius]\n }],\n /**\n * Border Radius Bottom Left\n * @see https://tailwindcss.com/docs/border-radius\n */\n 'rounded-bl': [{\n 'rounded-bl': [borderRadius]\n }],\n /**\n * Border Width\n * @see https://tailwindcss.com/docs/border-width\n */\n 'border-w': [{\n border: [borderWidth]\n }],\n /**\n * Border Width X\n * @see https://tailwindcss.com/docs/border-width\n */\n 'border-w-x': [{\n 'border-x': [borderWidth]\n }],\n /**\n * Border Width Y\n * @see https://tailwindcss.com/docs/border-width\n */\n 'border-w-y': [{\n 'border-y': [borderWidth]\n }],\n /**\n * Border Width Start\n * @see https://tailwindcss.com/docs/border-width\n */\n 'border-w-s': [{\n 'border-s': [borderWidth]\n }],\n /**\n * Border Width End\n * @see https://tailwindcss.com/docs/border-width\n */\n 'border-w-e': [{\n 'border-e': [borderWidth]\n }],\n /**\n * Border Width Top\n * @see https://tailwindcss.com/docs/border-width\n */\n 'border-w-t': [{\n 'border-t': [borderWidth]\n }],\n /**\n * Border Width Right\n * @see https://tailwindcss.com/docs/border-width\n */\n 'border-w-r': [{\n 'border-r': [borderWidth]\n }],\n /**\n * Border Width Bottom\n * @see https://tailwindcss.com/docs/border-width\n */\n 'border-w-b': [{\n 'border-b': [borderWidth]\n }],\n /**\n * Border Width Left\n * @see https://tailwindcss.com/docs/border-width\n */\n 'border-w-l': [{\n 'border-l': [borderWidth]\n }],\n /**\n * Border Opacity\n * @see https://tailwindcss.com/docs/border-opacity\n */\n 'border-opacity': [{\n 'border-opacity': [opacity]\n }],\n /**\n * Border Style\n * @see https://tailwindcss.com/docs/border-style\n */\n 'border-style': [{\n border: [...getLineStyles(), 'hidden']\n }],\n /**\n * Divide Width X\n * @see https://tailwindcss.com/docs/divide-width\n */\n 'divide-x': [{\n 'divide-x': [borderWidth]\n }],\n /**\n * Divide Width X Reverse\n * @see https://tailwindcss.com/docs/divide-width\n */\n 'divide-x-reverse': ['divide-x-reverse'],\n /**\n * Divide Width Y\n * @see https://tailwindcss.com/docs/divide-width\n */\n 'divide-y': [{\n 'divide-y': [borderWidth]\n }],\n /**\n * Divide Width Y Reverse\n * @see https://tailwindcss.com/docs/divide-width\n */\n 'divide-y-reverse': ['divide-y-reverse'],\n /**\n * Divide Opacity\n * @see https://tailwindcss.com/docs/divide-opacity\n */\n 'divide-opacity': [{\n 'divide-opacity': [opacity]\n }],\n /**\n * Divide Style\n * @see https://tailwindcss.com/docs/divide-style\n */\n 'divide-style': [{\n divide: getLineStyles()\n }],\n /**\n * Border Color\n * @see https://tailwindcss.com/docs/border-color\n */\n 'border-color': [{\n border: [borderColor]\n }],\n /**\n * Border Color X\n * @see https://tailwindcss.com/docs/border-color\n */\n 'border-color-x': [{\n 'border-x': [borderColor]\n }],\n /**\n * Border Color Y\n * @see https://tailwindcss.com/docs/border-color\n */\n 'border-color-y': [{\n 'border-y': [borderColor]\n }],\n /**\n * Border Color S\n * @see https://tailwindcss.com/docs/border-color\n */\n 'border-color-s': [{\n 'border-s': [borderColor]\n }],\n /**\n * Border Color E\n * @see https://tailwindcss.com/docs/border-color\n */\n 'border-color-e': [{\n 'border-e': [borderColor]\n }],\n /**\n * Border Color Top\n * @see https://tailwindcss.com/docs/border-color\n */\n 'border-color-t': [{\n 'border-t': [borderColor]\n }],\n /**\n * Border Color Right\n * @see https://tailwindcss.com/docs/border-color\n */\n 'border-color-r': [{\n 'border-r': [borderColor]\n }],\n /**\n * Border Color Bottom\n * @see https://tailwindcss.com/docs/border-color\n */\n 'border-color-b': [{\n 'border-b': [borderColor]\n }],\n /**\n * Border Color Left\n * @see https://tailwindcss.com/docs/border-color\n */\n 'border-color-l': [{\n 'border-l': [borderColor]\n }],\n /**\n * Divide Color\n * @see https://tailwindcss.com/docs/divide-color\n */\n 'divide-color': [{\n divide: [borderColor]\n }],\n /**\n * Outline Style\n * @see https://tailwindcss.com/docs/outline-style\n */\n 'outline-style': [{\n outline: ['', ...getLineStyles()]\n }],\n /**\n * Outline Offset\n * @see https://tailwindcss.com/docs/outline-offset\n */\n 'outline-offset': [{\n 'outline-offset': [isLength, isArbitraryValue]\n }],\n /**\n * Outline Width\n * @see https://tailwindcss.com/docs/outline-width\n */\n 'outline-w': [{\n outline: [isLength, isArbitraryLength]\n }],\n /**\n * Outline Color\n * @see https://tailwindcss.com/docs/outline-color\n */\n 'outline-color': [{\n outline: [colors]\n }],\n /**\n * Ring Width\n * @see https://tailwindcss.com/docs/ring-width\n */\n 'ring-w': [{\n ring: getLengthWithEmptyAndArbitrary()\n }],\n /**\n * Ring Width Inset\n * @see https://tailwindcss.com/docs/ring-width\n */\n 'ring-w-inset': ['ring-inset'],\n /**\n * Ring Color\n * @see https://tailwindcss.com/docs/ring-color\n */\n 'ring-color': [{\n ring: [colors]\n }],\n /**\n * Ring Opacity\n * @see https://tailwindcss.com/docs/ring-opacity\n */\n 'ring-opacity': [{\n 'ring-opacity': [opacity]\n }],\n /**\n * Ring Offset Width\n * @see https://tailwindcss.com/docs/ring-offset-width\n */\n 'ring-offset-w': [{\n 'ring-offset': [isLength, isArbitraryLength]\n }],\n /**\n * Ring Offset Color\n * @see https://tailwindcss.com/docs/ring-offset-color\n */\n 'ring-offset-color': [{\n 'ring-offset': [colors]\n }],\n // Effects\n /**\n * Box Shadow\n * @see https://tailwindcss.com/docs/box-shadow\n */\n shadow: [{\n shadow: ['', 'inner', 'none', isTshirtSize, isArbitraryShadow]\n }],\n /**\n * Box Shadow Color\n * @see https://tailwindcss.com/docs/box-shadow-color\n */\n 'shadow-color': [{\n shadow: [isAny]\n }],\n /**\n * Opacity\n * @see https://tailwindcss.com/docs/opacity\n */\n opacity: [{\n opacity: [opacity]\n }],\n /**\n * Mix Blend Mode\n * @see https://tailwindcss.com/docs/mix-blend-mode\n */\n 'mix-blend': [{\n 'mix-blend': [...getBlendModes(), 'plus-lighter', 'plus-darker']\n }],\n /**\n * Background Blend Mode\n * @see https://tailwindcss.com/docs/background-blend-mode\n */\n 'bg-blend': [{\n 'bg-blend': getBlendModes()\n }],\n // Filters\n /**\n * Filter\n * @deprecated since Tailwind CSS v3.0.0\n * @see https://tailwindcss.com/docs/filter\n */\n filter: [{\n filter: ['', 'none']\n }],\n /**\n * Blur\n * @see https://tailwindcss.com/docs/blur\n */\n blur: [{\n blur: [blur]\n }],\n /**\n * Brightness\n * @see https://tailwindcss.com/docs/brightness\n */\n brightness: [{\n brightness: [brightness]\n }],\n /**\n * Contrast\n * @see https://tailwindcss.com/docs/contrast\n */\n contrast: [{\n contrast: [contrast]\n }],\n /**\n * Drop Shadow\n * @see https://tailwindcss.com/docs/drop-shadow\n */\n 'drop-shadow': [{\n 'drop-shadow': ['', 'none', isTshirtSize, isArbitraryValue]\n }],\n /**\n * Grayscale\n * @see https://tailwindcss.com/docs/grayscale\n */\n grayscale: [{\n grayscale: [grayscale]\n }],\n /**\n * Hue Rotate\n * @see https://tailwindcss.com/docs/hue-rotate\n */\n 'hue-rotate': [{\n 'hue-rotate': [hueRotate]\n }],\n /**\n * Invert\n * @see https://tailwindcss.com/docs/invert\n */\n invert: [{\n invert: [invert]\n }],\n /**\n * Saturate\n * @see https://tailwindcss.com/docs/saturate\n */\n saturate: [{\n saturate: [saturate]\n }],\n /**\n * Sepia\n * @see https://tailwindcss.com/docs/sepia\n */\n sepia: [{\n sepia: [sepia]\n }],\n /**\n * Backdrop Filter\n * @deprecated since Tailwind CSS v3.0.0\n * @see https://tailwindcss.com/docs/backdrop-filter\n */\n 'backdrop-filter': [{\n 'backdrop-filter': ['', 'none']\n }],\n /**\n * Backdrop Blur\n * @see https://tailwindcss.com/docs/backdrop-blur\n */\n 'backdrop-blur': [{\n 'backdrop-blur': [blur]\n }],\n /**\n * Backdrop Brightness\n * @see https://tailwindcss.com/docs/backdrop-brightness\n */\n 'backdrop-brightness': [{\n 'backdrop-brightness': [brightness]\n }],\n /**\n * Backdrop Contrast\n * @see https://tailwindcss.com/docs/backdrop-contrast\n */\n 'backdrop-contrast': [{\n 'backdrop-contrast': [contrast]\n }],\n /**\n * Backdrop Grayscale\n * @see https://tailwindcss.com/docs/backdrop-grayscale\n */\n 'backdrop-grayscale': [{\n 'backdrop-grayscale': [grayscale]\n }],\n /**\n * Backdrop Hue Rotate\n * @see https://tailwindcss.com/docs/backdrop-hue-rotate\n */\n 'backdrop-hue-rotate': [{\n 'backdrop-hue-rotate': [hueRotate]\n }],\n /**\n * Backdrop Invert\n * @see https://tailwindcss.com/docs/backdrop-invert\n */\n 'backdrop-invert': [{\n 'backdrop-invert': [invert]\n }],\n /**\n * Backdrop Opacity\n * @see https://tailwindcss.com/docs/backdrop-opacity\n */\n 'backdrop-opacity': [{\n 'backdrop-opacity': [opacity]\n }],\n /**\n * Backdrop Saturate\n * @see https://tailwindcss.com/docs/backdrop-saturate\n */\n 'backdrop-saturate': [{\n 'backdrop-saturate': [saturate]\n }],\n /**\n * Backdrop Sepia\n * @see https://tailwindcss.com/docs/backdrop-sepia\n */\n 'backdrop-sepia': [{\n 'backdrop-sepia': [sepia]\n }],\n // Tables\n /**\n * Border Collapse\n * @see https://tailwindcss.com/docs/border-collapse\n */\n 'border-collapse': [{\n border: ['collapse', 'separate']\n }],\n /**\n * Border Spacing\n * @see https://tailwindcss.com/docs/border-spacing\n */\n 'border-spacing': [{\n 'border-spacing': [borderSpacing]\n }],\n /**\n * Border Spacing X\n * @see https://tailwindcss.com/docs/border-spacing\n */\n 'border-spacing-x': [{\n 'border-spacing-x': [borderSpacing]\n }],\n /**\n * Border Spacing Y\n * @see https://tailwindcss.com/docs/border-spacing\n */\n 'border-spacing-y': [{\n 'border-spacing-y': [borderSpacing]\n }],\n /**\n * Table Layout\n * @see https://tailwindcss.com/docs/table-layout\n */\n 'table-layout': [{\n table: ['auto', 'fixed']\n }],\n /**\n * Caption Side\n * @see https://tailwindcss.com/docs/caption-side\n */\n caption: [{\n caption: ['top', 'bottom']\n }],\n // Transitions and Animation\n /**\n * Tranisition Property\n * @see https://tailwindcss.com/docs/transition-property\n */\n transition: [{\n transition: ['none', 'all', '', 'colors', 'opacity', 'shadow', 'transform', isArbitraryValue]\n }],\n /**\n * Transition Duration\n * @see https://tailwindcss.com/docs/transition-duration\n */\n duration: [{\n duration: getNumberAndArbitrary()\n }],\n /**\n * Transition Timing Function\n * @see https://tailwindcss.com/docs/transition-timing-function\n */\n ease: [{\n ease: ['linear', 'in', 'out', 'in-out', isArbitraryValue]\n }],\n /**\n * Transition Delay\n * @see https://tailwindcss.com/docs/transition-delay\n */\n delay: [{\n delay: getNumberAndArbitrary()\n }],\n /**\n * Animation\n * @see https://tailwindcss.com/docs/animation\n */\n animate: [{\n animate: ['none', 'spin', 'ping', 'pulse', 'bounce', isArbitraryValue]\n }],\n // Transforms\n /**\n * Transform\n * @see https://tailwindcss.com/docs/transform\n */\n transform: [{\n transform: ['', 'gpu', 'none']\n }],\n /**\n * Scale\n * @see https://tailwindcss.com/docs/scale\n */\n scale: [{\n scale: [scale]\n }],\n /**\n * Scale X\n * @see https://tailwindcss.com/docs/scale\n */\n 'scale-x': [{\n 'scale-x': [scale]\n }],\n /**\n * Scale Y\n * @see https://tailwindcss.com/docs/scale\n */\n 'scale-y': [{\n 'scale-y': [scale]\n }],\n /**\n * Rotate\n * @see https://tailwindcss.com/docs/rotate\n */\n rotate: [{\n rotate: [isInteger, isArbitraryValue]\n }],\n /**\n * Translate X\n * @see https://tailwindcss.com/docs/translate\n */\n 'translate-x': [{\n 'translate-x': [translate]\n }],\n /**\n * Translate Y\n * @see https://tailwindcss.com/docs/translate\n */\n 'translate-y': [{\n 'translate-y': [translate]\n }],\n /**\n * Skew X\n * @see https://tailwindcss.com/docs/skew\n */\n 'skew-x': [{\n 'skew-x': [skew]\n }],\n /**\n * Skew Y\n * @see https://tailwindcss.com/docs/skew\n */\n 'skew-y': [{\n 'skew-y': [skew]\n }],\n /**\n * Transform Origin\n * @see https://tailwindcss.com/docs/transform-origin\n */\n 'transform-origin': [{\n origin: ['center', 'top', 'top-right', 'right', 'bottom-right', 'bottom', 'bottom-left', 'left', 'top-left', isArbitraryValue]\n }],\n // Interactivity\n /**\n * Accent Color\n * @see https://tailwindcss.com/docs/accent-color\n */\n accent: [{\n accent: ['auto', colors]\n }],\n /**\n * Appearance\n * @see https://tailwindcss.com/docs/appearance\n */\n appearance: [{\n appearance: ['none', 'auto']\n }],\n /**\n * Cursor\n * @see https://tailwindcss.com/docs/cursor\n */\n cursor: [{\n cursor: ['auto', 'default', 'pointer', 'wait', 'text', 'move', 'help', 'not-allowed', 'none', 'context-menu', 'progress', 'cell', 'crosshair', 'vertical-text', 'alias', 'copy', 'no-drop', 'grab', 'grabbing', 'all-scroll', 'col-resize', 'row-resize', 'n-resize', 'e-resize', 's-resize', 'w-resize', 'ne-resize', 'nw-resize', 'se-resize', 'sw-resize', 'ew-resize', 'ns-resize', 'nesw-resize', 'nwse-resize', 'zoom-in', 'zoom-out', isArbitraryValue]\n }],\n /**\n * Caret Color\n * @see https://tailwindcss.com/docs/just-in-time-mode#caret-color-utilities\n */\n 'caret-color': [{\n caret: [colors]\n }],\n /**\n * Pointer Events\n * @see https://tailwindcss.com/docs/pointer-events\n */\n 'pointer-events': [{\n 'pointer-events': ['none', 'auto']\n }],\n /**\n * Resize\n * @see https://tailwindcss.com/docs/resize\n */\n resize: [{\n resize: ['none', 'y', 'x', '']\n }],\n /**\n * Scroll Behavior\n * @see https://tailwindcss.com/docs/scroll-behavior\n */\n 'scroll-behavior': [{\n scroll: ['auto', 'smooth']\n }],\n /**\n * Scroll Margin\n * @see https://tailwindcss.com/docs/scroll-margin\n */\n 'scroll-m': [{\n 'scroll-m': getSpacingWithArbitrary()\n }],\n /**\n * Scroll Margin X\n * @see https://tailwindcss.com/docs/scroll-margin\n */\n 'scroll-mx': [{\n 'scroll-mx': getSpacingWithArbitrary()\n }],\n /**\n * Scroll Margin Y\n * @see https://tailwindcss.com/docs/scroll-margin\n */\n 'scroll-my': [{\n 'scroll-my': getSpacingWithArbitrary()\n }],\n /**\n * Scroll Margin Start\n * @see https://tailwindcss.com/docs/scroll-margin\n */\n 'scroll-ms': [{\n 'scroll-ms': getSpacingWithArbitrary()\n }],\n /**\n * Scroll Margin End\n * @see https://tailwindcss.com/docs/scroll-margin\n */\n 'scroll-me': [{\n 'scroll-me': getSpacingWithArbitrary()\n }],\n /**\n * Scroll Margin Top\n * @see https://tailwindcss.com/docs/scroll-margin\n */\n 'scroll-mt': [{\n 'scroll-mt': getSpacingWithArbitrary()\n }],\n /**\n * Scroll Margin Right\n * @see https://tailwindcss.com/docs/scroll-margin\n */\n 'scroll-mr': [{\n 'scroll-mr': getSpacingWithArbitrary()\n }],\n /**\n * Scroll Margin Bottom\n * @see https://tailwindcss.com/docs/scroll-margin\n */\n 'scroll-mb': [{\n 'scroll-mb': getSpacingWithArbitrary()\n }],\n /**\n * Scroll Margin Left\n * @see https://tailwindcss.com/docs/scroll-margin\n */\n 'scroll-ml': [{\n 'scroll-ml': getSpacingWithArbitrary()\n }],\n /**\n * Scroll Padding\n * @see https://tailwindcss.com/docs/scroll-padding\n */\n 'scroll-p': [{\n 'scroll-p': getSpacingWithArbitrary()\n }],\n /**\n * Scroll Padding X\n * @see https://tailwindcss.com/docs/scroll-padding\n */\n 'scroll-px': [{\n 'scroll-px': getSpacingWithArbitrary()\n }],\n /**\n * Scroll Padding Y\n * @see https://tailwindcss.com/docs/scroll-padding\n */\n 'scroll-py': [{\n 'scroll-py': getSpacingWithArbitrary()\n }],\n /**\n * Scroll Padding Start\n * @see https://tailwindcss.com/docs/scroll-padding\n */\n 'scroll-ps': [{\n 'scroll-ps': getSpacingWithArbitrary()\n }],\n /**\n * Scroll Padding End\n * @see https://tailwindcss.com/docs/scroll-padding\n */\n 'scroll-pe': [{\n 'scroll-pe': getSpacingWithArbitrary()\n }],\n /**\n * Scroll Padding Top\n * @see https://tailwindcss.com/docs/scroll-padding\n */\n 'scroll-pt': [{\n 'scroll-pt': getSpacingWithArbitrary()\n }],\n /**\n * Scroll Padding Right\n * @see https://tailwindcss.com/docs/scroll-padding\n */\n 'scroll-pr': [{\n 'scroll-pr': getSpacingWithArbitrary()\n }],\n /**\n * Scroll Padding Bottom\n * @see https://tailwindcss.com/docs/scroll-padding\n */\n 'scroll-pb': [{\n 'scroll-pb': getSpacingWithArbitrary()\n }],\n /**\n * Scroll Padding Left\n * @see https://tailwindcss.com/docs/scroll-padding\n */\n 'scroll-pl': [{\n 'scroll-pl': getSpacingWithArbitrary()\n }],\n /**\n * Scroll Snap Align\n * @see https://tailwindcss.com/docs/scroll-snap-align\n */\n 'snap-align': [{\n snap: ['start', 'end', 'center', 'align-none']\n }],\n /**\n * Scroll Snap Stop\n * @see https://tailwindcss.com/docs/scroll-snap-stop\n */\n 'snap-stop': [{\n snap: ['normal', 'always']\n }],\n /**\n * Scroll Snap Type\n * @see https://tailwindcss.com/docs/scroll-snap-type\n */\n 'snap-type': [{\n snap: ['none', 'x', 'y', 'both']\n }],\n /**\n * Scroll Snap Type Strictness\n * @see https://tailwindcss.com/docs/scroll-snap-type\n */\n 'snap-strictness': [{\n snap: ['mandatory', 'proximity']\n }],\n /**\n * Touch Action\n * @see https://tailwindcss.com/docs/touch-action\n */\n touch: [{\n touch: ['auto', 'none', 'manipulation']\n }],\n /**\n * Touch Action X\n * @see https://tailwindcss.com/docs/touch-action\n */\n 'touch-x': [{\n 'touch-pan': ['x', 'left', 'right']\n }],\n /**\n * Touch Action Y\n * @see https://tailwindcss.com/docs/touch-action\n */\n 'touch-y': [{\n 'touch-pan': ['y', 'up', 'down']\n }],\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: [{\n select: ['none', 'text', 'all', 'auto']\n }],\n /**\n * Will Change\n * @see https://tailwindcss.com/docs/will-change\n */\n 'will-change': [{\n 'will-change': ['auto', 'scroll', 'contents', 'transform', isArbitraryValue]\n }],\n // SVG\n /**\n * Fill\n * @see https://tailwindcss.com/docs/fill\n */\n fill: [{\n fill: [colors, 'none']\n }],\n /**\n * Stroke Width\n * @see https://tailwindcss.com/docs/stroke-width\n */\n 'stroke-w': [{\n stroke: [isLength, isArbitraryLength, isArbitraryNumber]\n }],\n /**\n * Stroke\n * @see https://tailwindcss.com/docs/stroke\n */\n stroke: [{\n stroke: [colors, 'none']\n }],\n // Accessibility\n /**\n * Screen Readers\n * @see https://tailwindcss.com/docs/screen-readers\n */\n sr: ['sr-only', 'not-sr-only'],\n /**\n * Forced Color Adjust\n * @see https://tailwindcss.com/docs/forced-color-adjust\n */\n 'forced-color-adjust': [{\n 'forced-color-adjust': ['auto', 'none']\n }]\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': ['fvn-ordinal', 'fvn-slashed-zero', 'fvn-figure', 'fvn-spacing', 'fvn-fraction'],\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: ['rounded-s', 'rounded-e', 'rounded-t', 'rounded-r', 'rounded-b', 'rounded-l', 'rounded-ss', 'rounded-se', 'rounded-ee', 'rounded-es', 'rounded-tl', 'rounded-tr', 'rounded-br', 'rounded-bl'],\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': ['border-w-s', 'border-w-e', 'border-w-t', 'border-w-r', 'border-w-b', 'border-w-l'],\n 'border-w-x': ['border-w-r', 'border-w-l'],\n 'border-w-y': ['border-w-t', 'border-w-b'],\n 'border-color': ['border-color-s', 'border-color-e', 'border-color-t', 'border-color-r', 'border-color-b', 'border-color-l'],\n 'border-color-x': ['border-color-r', 'border-color-l'],\n 'border-color-y': ['border-color-t', 'border-color-b'],\n 'scroll-m': ['scroll-mx', 'scroll-my', 'scroll-ms', 'scroll-me', 'scroll-mt', 'scroll-mr', 'scroll-mb', 'scroll-ml'],\n 'scroll-mx': ['scroll-mr', 'scroll-ml'],\n 'scroll-my': ['scroll-mt', 'scroll-mb'],\n 'scroll-p': ['scroll-px', 'scroll-py', 'scroll-ps', 'scroll-pe', 'scroll-pt', 'scroll-pr', 'scroll-pb', 'scroll-pl'],\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 };\n};\n\n/**\n * @param baseConfig Config where other config will be merged into. This object will be mutated.\n * @param configExtension Partial config to merge into the `baseConfig`.\n */\nconst mergeConfigs = (baseConfig, {\n cacheSize,\n prefix,\n separator,\n experimentalParseClassName,\n extend = {},\n override = {}\n}) => {\n overrideProperty(baseConfig, 'cacheSize', cacheSize);\n overrideProperty(baseConfig, 'prefix', prefix);\n overrideProperty(baseConfig, 'separator', separator);\n overrideProperty(baseConfig, 'experimentalParseClassName', experimentalParseClassName);\n for (const configKey in override) {\n overrideConfigProperties(baseConfig[configKey], override[configKey]);\n }\n for (const key in extend) {\n mergeConfigProperties(baseConfig[key], extend[key]);\n }\n return baseConfig;\n};\nconst overrideProperty = (baseObject, overrideKey, overrideValue) => {\n if (overrideValue !== undefined) {\n baseObject[overrideKey] = overrideValue;\n }\n};\nconst overrideConfigProperties = (baseObject, overrideObject) => {\n if (overrideObject) {\n for (const key in overrideObject) {\n overrideProperty(baseObject, key, overrideObject[key]);\n }\n }\n};\nconst mergeConfigProperties = (baseObject, mergeObject) => {\n if (mergeObject) {\n for (const key in mergeObject) {\n const mergeValue = mergeObject[key];\n if (mergeValue !== undefined) {\n baseObject[key] = (baseObject[key] || []).concat(mergeValue);\n }\n }\n }\n};\nconst extendTailwindMerge = (configExtension, ...createConfig) => typeof configExtension === 'function' ? createTailwindMerge(getDefaultConfig, configExtension, ...createConfig) : createTailwindMerge(() => mergeConfigs(getDefaultConfig(), configExtension), ...createConfig);\nconst twMerge = /*#__PURE__*/createTailwindMerge(getDefaultConfig);\nexport { createTailwindMerge, extendTailwindMerge, fromTheme, getDefaultConfig, mergeConfigs, twJoin, twMerge, validators };\n//# sourceMappingURL=bundle-mjs.mjs.map\n","import { type ClassValue, clsx } from 'clsx'\nimport { twMerge } from 'tailwind-merge'\n\nexport function cn(...inputs: ClassValue[]) {\n return twMerge(clsx(inputs))\n}\n","import {\n forwardRef,\n type ButtonHTMLAttributes,\n type ReactNode,\n cloneElement,\n isValidElement,\n} from 'react'\nimport { cn } from '../../utils/cn'\n\nexport type ButtonSize = 'sm' | 'md' | 'lg'\n\nexport interface ButtonProps extends ButtonHTMLAttributes<HTMLButtonElement> {\n variant?: 'primary' | 'secondary' | 'ghost' | 'glass'\n /** Size of the button. Can be a single value or responsive object */\n size?: ButtonSize | { base?: ButtonSize; md?: ButtonSize; lg?: ButtonSize }\n children: ReactNode\n isLoading?: boolean\n leftIcon?: ReactNode\n rightIcon?: ReactNode\n asChild?: boolean\n /** Ensures minimum 44px touch target for accessibility (WCAG 2.5.5) */\n touchTarget?: boolean\n}\n\nexport const Button = forwardRef<HTMLButtonElement, ButtonProps>(\n (\n {\n variant = 'primary',\n size = 'md',\n children,\n isLoading = false,\n leftIcon,\n rightIcon,\n className,\n disabled,\n asChild = false,\n touchTarget = false,\n ...props\n },\n ref\n ) => {\n const baseStyles = [\n 'inline-flex items-center justify-center gap-2',\n 'font-medium',\n 'border',\n 'rounded-full',\n 'transition-[transform,background-color,border-color,color,opacity] duration-200 ease-out',\n 'focus-ring',\n 'disabled:opacity-50 disabled:cursor-not-allowed disabled:pointer-events-none',\n // Active state for touch feedback\n 'active:scale-[0.96]',\n ]\n\n const variants = {\n primary: [\n 'bg-[var(--color-white)] text-[var(--color-bg)]',\n 'border-[var(--color-white)]',\n 'hover:scale-[1.02]',\n 'glow-white',\n ],\n secondary: [\n 'bg-transparent text-[var(--color-white)]',\n 'border-[var(--glass-border)]',\n 'hover:border-[var(--glass-highlight)] hover:bg-[var(--glass-bg)]',\n ],\n ghost: [\n 'bg-transparent text-[var(--color-grey-400)]',\n 'border-transparent',\n 'hover:text-[var(--color-white)] hover:bg-[var(--glass-bg)]',\n ],\n glass: [\n 'bg-[var(--glass-bg)] text-[var(--color-white)]',\n 'border-[var(--glass-border)]',\n 'backdrop-blur-lg',\n 'hover:bg-[rgba(255,255,255,0.1)] hover:border-[var(--glass-highlight)]',\n 'hover:scale-[1.02]',\n ],\n }\n\n const sizes = {\n sm: 'px-3 py-1.5 text-xs',\n md: 'px-4 py-2 text-sm',\n lg: 'px-6 py-3 text-base',\n }\n\n // Handle responsive size prop\n const getSizeClasses = () => {\n if (typeof size === 'string') {\n return sizes[size]\n }\n\n // Responsive size object\n const classes: string[] = []\n if (size.base) classes.push(sizes[size.base])\n if (size.md) classes.push(`md:${sizes[size.md].split(' ').join(' md:')}`)\n if (size.lg) classes.push(`lg:${sizes[size.lg].split(' ').join(' lg:')}`)\n\n // If no base specified, default to sm for mobile-first\n if (!size.base && (size.md || size.lg)) {\n classes.unshift(sizes.sm)\n }\n\n return classes.join(' ')\n }\n\n const touchTargetStyles = touchTarget ? 'min-w-[44px] min-h-[44px]' : ''\n\n const buttonClassName = cn(\n baseStyles,\n variants[variant],\n getSizeClasses(),\n touchTargetStyles,\n className\n )\n\n type ChildProps = { children?: ReactNode; className?: string }\n const childElement = isValidElement<ChildProps>(children) ? children : null\n\n const content = (\n <>\n {isLoading ? (\n <span className=\"w-4 h-4 border-2 border-current border-t-transparent rounded-full animate-spin\" />\n ) : (\n leftIcon\n )}\n {asChild && childElement ? childElement.props.children : children}\n {!isLoading && rightIcon}\n </>\n )\n\n if (asChild && childElement) {\n return cloneElement(childElement, {\n className: cn(buttonClassName, childElement.props.className),\n ref,\n children: content,\n } as ChildProps)\n }\n\n return (\n <button\n ref={ref}\n className={buttonClassName}\n disabled={disabled || isLoading}\n {...props}\n >\n {content}\n </button>\n )\n }\n)\n\nButton.displayName = 'Button'\n","import { type HTMLAttributes, type ReactNode } from 'react'\nimport { cn } from '../../utils/cn'\n\nexport interface BadgeProps extends HTMLAttributes<HTMLSpanElement> {\n variant?: 'default' | 'sage' | 'coral' | 'mint' | 'gold' | 'outline'\n size?: 'sm' | 'md'\n children: ReactNode\n}\n\nexport function Badge({\n variant = 'default',\n size = 'sm',\n children,\n className,\n ...props\n}: BadgeProps) {\n const baseStyles = [\n 'inline-flex items-center justify-center',\n 'font-medium',\n 'rounded-full',\n 'whitespace-nowrap',\n 'transition-colors duration-200',\n 'backdrop-blur-sm',\n ]\n\n const variants = {\n default: [\n 'bg-[var(--glass-bg)]',\n 'text-[var(--color-grey-400)]',\n 'border border-[var(--glass-border)]',\n ],\n sage: [\n 'bg-[var(--color-sage)]/10',\n 'text-[var(--color-sage)]',\n 'border border-[var(--color-sage)]/20',\n ],\n coral: [\n 'bg-[var(--color-coral)]/10',\n 'text-[var(--color-coral)]',\n 'border border-[var(--color-coral)]/20',\n ],\n mint: [\n 'bg-[var(--color-mint)]/10',\n 'text-[var(--color-mint)]',\n 'border border-[var(--color-mint)]/20',\n ],\n gold: [\n 'bg-[var(--color-gold)]/10',\n 'text-[var(--color-gold)]',\n 'border border-[var(--color-gold)]/20',\n ],\n outline: [\n 'bg-transparent',\n 'text-[var(--color-grey-400)]',\n 'border border-[var(--glass-border)]',\n ],\n }\n\n const sizes = {\n sm: 'px-2 py-0.5 text-[10px] tracking-wide uppercase',\n md: 'px-3 py-1 text-xs',\n }\n\n return (\n <span className={cn(baseStyles, variants[variant], sizes[size], className)} {...props}>\n {children}\n </span>\n )\n}\n","import { forwardRef, type InputHTMLAttributes, type ReactNode } from 'react'\nimport { cn } from '../../utils/cn'\n\nexport interface InputProps extends InputHTMLAttributes<HTMLInputElement> {\n variant?: 'default' | 'glass'\n inputSize?: 'sm' | 'md' | 'lg'\n leftIcon?: ReactNode\n rightIcon?: ReactNode\n /** Error state - boolean for styling only, or string to display error message */\n error?: boolean | string\n /** Associated label id for accessibility */\n labelId?: string\n}\n\nexport const Input = forwardRef<HTMLInputElement, InputProps>(\n (\n {\n variant = 'default',\n inputSize = 'md',\n leftIcon,\n rightIcon,\n error = false,\n labelId,\n className,\n id,\n ...props\n },\n ref\n ) => {\n const hasError = Boolean(error)\n const errorMessage = typeof error === 'string' ? error : undefined\n const errorId = errorMessage && id ? `${id}-error` : undefined\n const wrapperStyles = [\n 'relative inline-flex items-center w-full',\n 'border rounded-xl',\n 'transition-[border-color,background-color,box-shadow] duration-200',\n 'focus-within:border-[var(--color-white)]',\n 'focus-glow',\n ]\n\n const variants = {\n default: [\n 'bg-transparent',\n hasError ? 'border-[var(--color-coral)]' : 'border-[var(--glass-border)]',\n 'hover:border-[var(--glass-highlight)]',\n ],\n glass: [\n 'bg-[var(--glass-bg)]',\n 'backdrop-blur-lg',\n hasError ? 'border-[var(--color-coral)]' : 'border-[var(--glass-border)]',\n 'hover:bg-[rgba(255,255,255,0.08)]',\n ],\n }\n\n const sizes = {\n sm: 'h-8',\n md: 'h-10',\n lg: 'h-12',\n }\n\n const inputSizes = {\n sm: 'text-xs px-3',\n md: 'text-sm px-4',\n lg: 'text-base px-5',\n }\n\n const iconPadding = {\n sm: { left: 'pl-8', right: 'pr-8' },\n md: { left: 'pl-10', right: 'pr-10' },\n lg: { left: 'pl-12', right: 'pr-12' },\n }\n\n return (\n <div className=\"flex flex-col gap-1.5\">\n <div className={cn(wrapperStyles, variants[variant], sizes[inputSize], className)}>\n {leftIcon && (\n <span className=\"absolute left-3 text-[var(--color-grey-400)] pointer-events-none\" aria-hidden=\"true\">\n {leftIcon}\n </span>\n )}\n <input\n ref={ref}\n id={id}\n className={cn(\n 'w-full h-full bg-transparent',\n 'text-[var(--color-white)]',\n 'placeholder:text-[var(--color-grey-600)]',\n 'focus:outline-none focus-visible:outline-none',\n inputSizes[inputSize],\n leftIcon && iconPadding[inputSize].left,\n rightIcon && iconPadding[inputSize].right\n )}\n aria-invalid={hasError || undefined}\n aria-describedby={errorId}\n aria-labelledby={labelId}\n {...props}\n />\n {rightIcon && (\n <span className=\"absolute right-3 text-[var(--color-grey-400)]\" aria-hidden=\"true\">{rightIcon}</span>\n )}\n </div>\n {errorMessage && (\n <span id={errorId} className=\"text-xs text-[var(--color-coral)]\" role=\"alert\">\n {errorMessage}\n </span>\n )}\n </div>\n )\n }\n)\n\nInput.displayName = 'Input'\n","\"use client\";import o from\"react\";const t=o.createContext({});function i({iconProps:e,children:r}){return o.createElement(t.Provider,{value:e||{},children:r})}export{t as IconoirContext,i as IconoirProvider};\n","\"use client\";var p=Object.defineProperty;var s=Object.getOwnPropertySymbols;var f=Object.prototype.hasOwnProperty,c=Object.prototype.propertyIsEnumerable;var i=(t,o,r)=>o in t?p(t,o,{enumerable:!0,configurable:!0,writable:!0,value:r}):t[o]=r,e=(t,o)=>{for(var r in o||(o={}))f.call(o,r)&&i(t,r,o[r]);if(s)for(var r of s(o))c.call(o,r)&&i(t,r,o[r]);return t};import*as n from\"react\";import{forwardRef as l}from\"react\";import{IconoirContext as d}from\"../IconoirContext.mjs\";const u=(t,o)=>{const r=n.useContext(d),m=e(e({},r),t);return n.createElement(\"svg\",e({width:\"1.5em\",height:\"1.5em\",viewBox:\"0 0 24 24\",strokeWidth:1.5,fill:\"none\",xmlns:\"http://www.w3.org/2000/svg\",color:\"currentColor\",ref:o},m),n.createElement(\"path\",{d:\"M12 3L12 21M12 21L20.5 12.5M12 21L3.5 12.5\",stroke:\"currentColor\",strokeLinecap:\"round\",strokeLinejoin:\"round\"}))},w=l(u);var x=w;export{x as default};\n","\"use client\";var p=Object.defineProperty;var s=Object.getOwnPropertySymbols;var f=Object.prototype.hasOwnProperty,c=Object.prototype.propertyIsEnumerable;var i=(t,o,r)=>o in t?p(t,o,{enumerable:!0,configurable:!0,writable:!0,value:r}):t[o]=r,e=(t,o)=>{for(var r in o||(o={}))f.call(o,r)&&i(t,r,o[r]);if(s)for(var r of s(o))c.call(o,r)&&i(t,r,o[r]);return t};import*as n from\"react\";import{forwardRef as l}from\"react\";import{IconoirContext as d}from\"../IconoirContext.mjs\";const u=(t,o)=>{const r=n.useContext(d),m=e(e({},r),t);return n.createElement(\"svg\",e({width:\"1.5em\",height:\"1.5em\",viewBox:\"0 0 24 24\",strokeWidth:1.5,fill:\"none\",xmlns:\"http://www.w3.org/2000/svg\",color:\"currentColor\",ref:o},m),n.createElement(\"path\",{d:\"M21 12L3 12M3 12L11.5 3.5M3 12L11.5 20.5\",stroke:\"currentColor\",strokeLinecap:\"round\",strokeLinejoin:\"round\"}))},w=l(u);var x=w;export{x as default};\n","\"use client\";var p=Object.defineProperty;var s=Object.getOwnPropertySymbols;var f=Object.prototype.hasOwnProperty,c=Object.prototype.propertyIsEnumerable;var i=(t,o,r)=>o in t?p(t,o,{enumerable:!0,configurable:!0,writable:!0,value:r}):t[o]=r,e=(t,o)=>{for(var r in o||(o={}))f.call(o,r)&&i(t,r,o[r]);if(s)for(var r of s(o))c.call(o,r)&&i(t,r,o[r]);return t};import*as n from\"react\";import{forwardRef as l}from\"react\";import{IconoirContext as d}from\"../IconoirContext.mjs\";const u=(t,o)=>{const r=n.useContext(d),m=e(e({},r),t);return n.createElement(\"svg\",e({width:\"1.5em\",height:\"1.5em\",viewBox:\"0 0 24 24\",strokeWidth:1.5,fill:\"none\",xmlns:\"http://www.w3.org/2000/svg\",color:\"currentColor\",ref:o},m),n.createElement(\"path\",{d:\"M3 12L21 12M21 12L12.5 3.5M21 12L12.5 20.5\",stroke:\"currentColor\",strokeLinecap:\"round\",strokeLinejoin:\"round\"}))},w=l(u);var x=w;export{x as default};\n","\"use client\";var p=Object.defineProperty;var s=Object.getOwnPropertySymbols;var f=Object.prototype.hasOwnProperty,c=Object.prototype.propertyIsEnumerable;var i=(t,o,r)=>o in t?p(t,o,{enumerable:!0,configurable:!0,writable:!0,value:r}):t[o]=r,e=(t,o)=>{for(var r in o||(o={}))f.call(o,r)&&i(t,r,o[r]);if(s)for(var r of s(o))c.call(o,r)&&i(t,r,o[r]);return t};import*as n from\"react\";import{forwardRef as l}from\"react\";import{IconoirContext as d}from\"../IconoirContext.mjs\";const u=(t,o)=>{const r=n.useContext(d),m=e(e({},r),t);return n.createElement(\"svg\",e({width:\"1.5em\",height:\"1.5em\",viewBox:\"0 0 24 24\",strokeWidth:1.5,fill:\"none\",xmlns:\"http://www.w3.org/2000/svg\",color:\"currentColor\",ref:o},m),n.createElement(\"path\",{d:\"M6.00005 19L19 5.99996M19 5.99996V18.48M19 5.99996H6.52005\",stroke:\"currentColor\",strokeLinecap:\"round\",strokeLinejoin:\"round\"}))},w=l(u);var h=w;export{h as default};\n","\"use client\";var p=Object.defineProperty;var s=Object.getOwnPropertySymbols;var f=Object.prototype.hasOwnProperty,c=Object.prototype.propertyIsEnumerable;var i=(t,o,r)=>o in t?p(t,o,{enumerable:!0,configurable:!0,writable:!0,value:r}):t[o]=r,e=(t,o)=>{for(var r in o||(o={}))f.call(o,r)&&i(t,r,o[r]);if(s)for(var r of s(o))c.call(o,r)&&i(t,r,o[r]);return t};import*as n from\"react\";import{forwardRef as l}from\"react\";import{IconoirContext as d}from\"../IconoirContext.mjs\";const u=(t,o)=>{const r=n.useContext(d),m=e(e({},r),t);return n.createElement(\"svg\",e({width:\"1.5em\",height:\"1.5em\",viewBox:\"0 0 24 24\",strokeWidth:1.5,fill:\"none\",xmlns:\"http://www.w3.org/2000/svg\",color:\"currentColor\",ref:o},m),n.createElement(\"path\",{d:\"M12 21L12 3M12 3L20.5 11.5M12 3L3.5 11.5\",stroke:\"currentColor\",strokeLinecap:\"round\",strokeLinejoin:\"round\"}))},w=l(u);var x=w;export{x as default};\n","\"use client\";var C=Object.defineProperty;var s=Object.getOwnPropertySymbols;var m=Object.prototype.hasOwnProperty,c=Object.prototype.propertyIsEnumerable;var i=(e,o,r)=>o in e?C(e,o,{enumerable:!0,configurable:!0,writable:!0,value:r}):e[o]=r,t=(e,o)=>{for(var r in o||(o={}))m.call(o,r)&&i(e,r,o[r]);if(s)for(var r of s(o))c.call(o,r)&&i(e,r,o[r]);return e};import*as n from\"react\";import{forwardRef as f}from\"react\";import{IconoirContext as d}from\"../IconoirContext.mjs\";const l=(e,o)=>{const r=n.useContext(d),p=t(t({},r),e);return n.createElement(\"svg\",t({width:\"1.5em\",height:\"1.5em\",strokeWidth:1.5,viewBox:\"0 0 24 24\",fill:\"none\",xmlns:\"http://www.w3.org/2000/svg\",color:\"currentColor\",ref:o},p),n.createElement(\"path\",{d:\"M18 8.4C18 6.70261 17.3679 5.07475 16.2426 3.87452C15.1174 2.67428 13.5913 2 12 2C10.4087 2 8.88258 2.67428 7.75736 3.87452C6.63214 5.07475 6 6.70261 6 8.4C6 15.8667 3 18 3 18H21C21 18 18 15.8667 18 8.4Z\",stroke:\"currentColor\",strokeLinecap:\"round\",strokeLinejoin:\"round\"}),n.createElement(\"path\",{d:\"M13.73 21C13.5542 21.3031 13.3019 21.5547 12.9982 21.7295C12.6946 21.9044 12.3504 21.9965 12 21.9965C11.6496 21.9965 11.3054 21.9044 11.0018 21.7295C10.6982 21.5547 10.4458 21.3031 10.27 21\",stroke:\"currentColor\",strokeLinecap:\"round\",strokeLinejoin:\"round\"}))},u=f(l);var S=u;export{S as default};\n","\"use client\";var d=Object.defineProperty;var s=Object.getOwnPropertySymbols;var u=Object.prototype.hasOwnProperty,c=Object.prototype.propertyIsEnumerable;var i=(e,o,r)=>o in e?d(e,o,{enumerable:!0,configurable:!0,writable:!0,value:r}):e[o]=r,n=(e,o)=>{for(var r in o||(o={}))u.call(o,r)&&i(e,r,o[r]);if(s)for(var r of s(o))c.call(o,r)&&i(e,r,o[r]);return e};import*as t from\"react\";import{forwardRef as m}from\"react\";import{IconoirContext as k}from\"../IconoirContext.mjs\";const l=(e,o)=>{const r=t.useContext(k),p=n(n({},r),e);return t.createElement(\"svg\",n({width:\"1.5em\",height:\"1.5em\",strokeWidth:1.5,viewBox:\"0 0 24 24\",fill:\"none\",xmlns:\"http://www.w3.org/2000/svg\",color:\"currentColor\",ref:o},p),t.createElement(\"path\",{d:\"M15 4V2M15 4V6M15 4H10.5M3 10V19C3 20.1046 3.89543 21 5 21H19C20.1046 21 21 20.1046 21 19V10H3Z\",stroke:\"currentColor\",strokeLinecap:\"round\",strokeLinejoin:\"round\"}),t.createElement(\"path\",{d:\"M3 10V6C3 4.89543 3.89543 4 5 4H7\",stroke:\"currentColor\",strokeLinecap:\"round\",strokeLinejoin:\"round\"}),t.createElement(\"path\",{d:\"M7 2V6\",stroke:\"currentColor\",strokeLinecap:\"round\",strokeLinejoin:\"round\"}),t.createElement(\"path\",{d:\"M21 10V6C21 4.89543 20.1046 4 19 4H18.5\",stroke:\"currentColor\",strokeLinecap:\"round\",strokeLinejoin:\"round\"}))},V=m(l);var w=V;export{w as default};\n","\"use client\";var m=Object.defineProperty;var s=Object.getOwnPropertySymbols;var c=Object.prototype.hasOwnProperty,f=Object.prototype.propertyIsEnumerable;var i=(e,o,r)=>o in e?m(e,o,{enumerable:!0,configurable:!0,writable:!0,value:r}):e[o]=r,t=(e,o)=>{for(var r in o||(o={}))c.call(o,r)&&i(e,r,o[r]);if(s)for(var r of s(o))f.call(o,r)&&i(e,r,o[r]);return e};import*as n from\"react\";import{forwardRef as d}from\"react\";import{IconoirContext as l}from\"../IconoirContext.mjs\";const u=(e,o)=>{const r=n.useContext(l),p=t(t({},r),e);return n.createElement(\"svg\",t({width:\"1.5em\",height:\"1.5em\",strokeWidth:1.5,viewBox:\"0 0 24 24\",fill:\"none\",xmlns:\"http://www.w3.org/2000/svg\",color:\"currentColor\",ref:o},p),n.createElement(\"path\",{d:\"M7 12.5L10 15.5L17 8.5\",stroke:\"currentColor\",strokeLinecap:\"round\",strokeLinejoin:\"round\"}),n.createElement(\"path\",{d:\"M12 22C17.5228 22 22 17.5228 22 12C22 6.47715 17.5228 2 12 2C6.47715 2 2 6.47715 2 12C2 17.5228 6.47715 22 12 22Z\",stroke:\"currentColor\",strokeLinecap:\"round\",strokeLinejoin:\"round\"}))},C=d(u);var S=C;export{S as default};\n","\"use client\";var p=Object.defineProperty;var s=Object.getOwnPropertySymbols;var f=Object.prototype.hasOwnProperty,c=Object.prototype.propertyIsEnumerable;var i=(t,o,r)=>o in t?p(t,o,{enumerable:!0,configurable:!0,writable:!0,value:r}):t[o]=r,e=(t,o)=>{for(var r in o||(o={}))f.call(o,r)&&i(t,r,o[r]);if(s)for(var r of s(o))c.call(o,r)&&i(t,r,o[r]);return t};import*as n from\"react\";import{forwardRef as l}from\"react\";import{IconoirContext as d}from\"../IconoirContext.mjs\";const u=(t,o)=>{const r=n.useContext(d),m=e(e({},r),t);return n.createElement(\"svg\",e({width:\"1.5em\",height:\"1.5em\",strokeWidth:1.5,viewBox:\"0 0 24 24\",fill:\"none\",xmlns:\"http://www.w3.org/2000/svg\",color:\"currentColor\",ref:o},m),n.createElement(\"path\",{d:\"M5 13L9 17L19 7\",stroke:\"currentColor\",strokeLinecap:\"round\",strokeLinejoin:\"round\"}))},w=l(u);var x=w;export{x as default};\n","\"use client\";var m=Object.defineProperty;var s=Object.getOwnPropertySymbols;var c=Object.prototype.hasOwnProperty,f=Object.prototype.propertyIsEnumerable;var i=(e,o,r)=>o in e?m(e,o,{enumerable:!0,configurable:!0,writable:!0,value:r}):e[o]=r,t=(e,o)=>{for(var r in o||(o={}))c.call(o,r)&&i(e,r,o[r]);if(s)for(var r of s(o))f.call(o,r)&&i(e,r,o[r]);return e};import*as n from\"react\";import{forwardRef as d}from\"react\";import{IconoirContext as l}from\"../IconoirContext.mjs\";const u=(e,o)=>{const r=n.useContext(l),p=t(t({},r),e);return n.createElement(\"svg\",t({width:\"1.5em\",height:\"1.5em\",strokeWidth:1.5,viewBox:\"0 0 24 24\",fill:\"none\",xmlns:\"http://www.w3.org/2000/svg\",color:\"currentColor\",ref:o},p),n.createElement(\"path\",{d:\"M12 6L12 12L18 12\",stroke:\"currentColor\",strokeLinecap:\"round\",strokeLinejoin:\"round\"}),n.createElement(\"path\",{d:\"M12 22C17.5228 22 22 17.5228 22 12C22 6.47715 17.5228 2 12 2C6.47715 2 2 6.47715 2 12C2 17.5228 6.47715 22 12 22Z\",stroke:\"currentColor\",strokeLinecap:\"round\",strokeLinejoin:\"round\"}))},C=d(u);var S=C;export{S as default};\n","\"use client\";var d=Object.defineProperty;var s=Object.getOwnPropertySymbols;var m=Object.prototype.hasOwnProperty,u=Object.prototype.propertyIsEnumerable;var i=(e,o,r)=>o in e?d(e,o,{enumerable:!0,configurable:!0,writable:!0,value:r}):e[o]=r,n=(e,o)=>{for(var r in o||(o={}))m.call(o,r)&&i(e,r,o[r]);if(s)for(var r of s(o))u.call(o,r)&&i(e,r,o[r]);return e};import*as t from\"react\";import{forwardRef as c}from\"react\";import{IconoirContext as f}from\"../IconoirContext.mjs\";const l=(e,o)=>{const r=t.useContext(f),p=n(n({},r),e);return t.createElement(\"svg\",n({width:\"1.5em\",height:\"1.5em\",strokeWidth:1.5,viewBox:\"0 0 24 24\",fill:\"none\",xmlns:\"http://www.w3.org/2000/svg\",color:\"currentColor\",ref:o},p),t.createElement(\"path\",{d:\"M13.5 6L10 18.5\",stroke:\"currentColor\",strokeLinecap:\"round\",strokeLinejoin:\"round\"}),t.createElement(\"path\",{d:\"M6.5 8.5L3 12L6.5 15.5\",stroke:\"currentColor\",strokeLinecap:\"round\",strokeLinejoin:\"round\"}),t.createElement(\"path\",{d:\"M17.5 8.5L21 12L17.5 15.5\",stroke:\"currentColor\",strokeLinecap:\"round\",strokeLinejoin:\"round\"}))},L=c(l);var C=L;export{C as default};\n","\"use client\";var m=Object.defineProperty;var s=Object.getOwnPropertySymbols;var C=Object.prototype.hasOwnProperty,c=Object.prototype.propertyIsEnumerable;var i=(e,o,r)=>o in e?m(e,o,{enumerable:!0,configurable:!0,writable:!0,value:r}):e[o]=r,t=(e,o)=>{for(var r in o||(o={}))C.call(o,r)&&i(e,r,o[r]);if(s)for(var r of s(o))c.call(o,r)&&i(e,r,o[r]);return e};import*as n from\"react\";import{forwardRef as f}from\"react\";import{IconoirContext as d}from\"../IconoirContext.mjs\";const l=(e,o)=>{const r=n.useContext(d),p=t(t({},r),e);return n.createElement(\"svg\",t({width:\"1.5em\",height:\"1.5em\",strokeWidth:1.5,viewBox:\"0 0 24 24\",fill:\"none\",xmlns:\"http://www.w3.org/2000/svg\",color:\"currentColor\",ref:o},p),n.createElement(\"path\",{d:\"M19.4 20H9.6C9.26863 20 9 19.7314 9 19.4V9.6C9 9.26863 9.26863 9 9.6 9H19.4C19.7314 9 20 9.26863 20 9.6V19.4C20 19.7314 19.7314 20 19.4 20Z\",stroke:\"currentColor\",strokeLinecap:\"round\",strokeLinejoin:\"round\"}),n.createElement(\"path\",{d:\"M15 9V4.6C15 4.26863 14.7314 4 14.4 4H4.6C4.26863 4 4 4.26863 4 4.6V14.4C4 14.7314 4.26863 15 4.6 15H9\",stroke:\"currentColor\",strokeLinecap:\"round\",strokeLinejoin:\"round\"}))},u=f(l);var k=u;export{k as default};\n","\"use client\";var m=Object.defineProperty;var s=Object.getOwnPropertySymbols;var c=Object.prototype.hasOwnProperty,f=Object.prototype.propertyIsEnumerable;var i=(e,o,r)=>o in e?m(e,o,{enumerable:!0,configurable:!0,writable:!0,value:r}):e[o]=r,t=(e,o)=>{for(var r in o||(o={}))c.call(o,r)&&i(e,r,o[r]);if(s)for(var r of s(o))f.call(o,r)&&i(e,r,o[r]);return e};import*as n from\"react\";import{forwardRef as d}from\"react\";import{IconoirContext as l}from\"../IconoirContext.mjs\";const u=(e,o)=>{const r=n.useContext(l),p=t(t({},r),e);return n.createElement(\"svg\",t({width:\"1.5em\",height:\"1.5em\",strokeWidth:1.5,viewBox:\"0 0 24 24\",fill:\"none\",xmlns:\"http://www.w3.org/2000/svg\",color:\"currentColor\",ref:o},p),n.createElement(\"path\",{d:\"M6 20L18 20\",stroke:\"currentColor\",strokeLinecap:\"round\",strokeLinejoin:\"round\"}),n.createElement(\"path\",{d:\"M12 4V16M12 16L15.5 12.5M12 16L8.5 12.5\",stroke:\"currentColor\",strokeLinecap:\"round\",strokeLinejoin:\"round\"}))},w=d(u);var S=w;export{S as default};\n","\"use client\";var p=Object.defineProperty;var s=Object.getOwnPropertySymbols;var f=Object.prototype.hasOwnProperty,c=Object.prototype.propertyIsEnumerable;var i=(t,o,r)=>o in t?p(t,o,{enumerable:!0,configurable:!0,writable:!0,value:r}):t[o]=r,e=(t,o)=>{for(var r in o||(o={}))f.call(o,r)&&i(t,r,o[r]);if(s)for(var r of s(o))c.call(o,r)&&i(t,r,o[r]);return t};import*as n from\"react\";import{forwardRef as l}from\"react\";import{IconoirContext as C}from\"../IconoirContext.mjs\";const L=(t,o)=>{const r=n.useContext(C),m=e(e({},r),t);return n.createElement(\"svg\",e({width:\"1.5em\",height:\"1.5em\",viewBox:\"0 0 24 24\",strokeWidth:1.5,fill:\"none\",xmlns:\"http://www.w3.org/2000/svg\",color:\"currentColor\",ref:o},m),n.createElement(\"path\",{d:\"M14.3632 5.65156L15.8431 4.17157C16.6242 3.39052 17.8905 3.39052 18.6716 4.17157L20.0858 5.58579C20.8668 6.36683 20.8668 7.63316 20.0858 8.41421L18.6058 9.8942M14.3632 5.65156L4.74749 15.2672C4.41542 15.5993 4.21079 16.0376 4.16947 16.5054L3.92738 19.2459C3.87261 19.8659 4.39148 20.3848 5.0115 20.33L7.75191 20.0879C8.21972 20.0466 8.65806 19.8419 8.99013 19.5099L18.6058 9.8942M14.3632 5.65156L18.6058 9.8942\",stroke:\"currentColor\",strokeLinecap:\"round\",strokeLinejoin:\"round\"}))},d=l(L);var g=d;export{g as default};\n","\"use client\";var d=Object.defineProperty;var s=Object.getOwnPropertySymbols;var u=Object.prototype.hasOwnProperty,c=Object.prototype.propertyIsEnumerable;var i=(e,o,r)=>o in e?d(e,o,{enumerable:!0,configurable:!0,writable:!0,value:r}):e[o]=r,n=(e,o)=>{for(var r in o||(o={}))u.call(o,r)&&i(e,r,o[r]);if(s)for(var r of s(o))c.call(o,r)&&i(e,r,o[r]);return e};import*as t from\"react\";import{forwardRef as m}from\"react\";import{IconoirContext as k}from\"../IconoirContext.mjs\";const l=(e,o)=>{const r=t.useContext(k),p=n(n({},r),e);return t.createElement(\"svg\",n({width:\"1.5em\",height:\"1.5em\",viewBox:\"0 0 24 24\",strokeWidth:1.5,fill:\"none\",xmlns:\"http://www.w3.org/2000/svg\",color:\"currentColor\",ref:o},p),t.createElement(\"path\",{d:\"M19.5 16L17.0248 12.6038\",stroke:\"currentColor\",strokeLinecap:\"round\",strokeLinejoin:\"round\"}),t.createElement(\"path\",{d:\"M12 17.5V14\",stroke:\"currentColor\",strokeLinecap:\"round\",strokeLinejoin:\"round\"}),t.createElement(\"path\",{d:\"M4.5 16L6.96895 12.6124\",stroke:\"currentColor\",strokeLinecap:\"round\",strokeLinejoin:\"round\"}),t.createElement(\"path\",{d:\"M3 8C6.6 16 17.4 16 21 8\",stroke:\"currentColor\",strokeLinecap:\"round\",strokeLinejoin:\"round\"}))},f=m(l);var w=f;export{w as default};\n","\"use client\";var m=Object.defineProperty;var s=Object.getOwnPropertySymbols;var c=Object.prototype.hasOwnProperty,f=Object.prototype.propertyIsEnumerable;var i=(e,o,r)=>o in e?m(e,o,{enumerable:!0,configurable:!0,writable:!0,value:r}):e[o]=r,t=(e,o)=>{for(var r in o||(o={}))c.call(o,r)&&i(e,r,o[r]);if(s)for(var r of s(o))f.call(o,r)&&i(e,r,o[r]);return e};import*as n from\"react\";import{forwardRef as d}from\"react\";import{IconoirContext as l}from\"../IconoirContext.mjs\";const u=(e,o)=>{const r=n.useContext(l),p=t(t({},r),e);return n.createElement(\"svg\",t({width:\"1.5em\",height:\"1.5em\",viewBox:\"0 0 24 24\",strokeWidth:1.5,fill:\"none\",xmlns:\"http://www.w3.org/2000/svg\",color:\"currentColor\",ref:o},p),n.createElement(\"path\",{d:\"M3 13C6.6 5 17.4 5 21 13\",stroke:\"currentColor\",strokeLinecap:\"round\",strokeLinejoin:\"round\"}),n.createElement(\"path\",{d:\"M12 17C10.3431 17 9 15.6569 9 14C9 12.3431 10.3431 11 12 11C13.6569 11 15 12.3431 15 14C15 15.6569 13.6569 17 12 17Z\",stroke:\"currentColor\",strokeLinecap:\"round\",strokeLinejoin:\"round\"}))},C=d(u);var S=C;export{S as default};\n","\"use client\";var p=Object.defineProperty;var s=Object.getOwnPropertySymbols;var C=Object.prototype.hasOwnProperty,f=Object.prototype.propertyIsEnumerable;var i=(t,o,r)=>o in t?p(t,o,{enumerable:!0,configurable:!0,writable:!0,value:r}):t[o]=r,e=(t,o)=>{for(var r in o||(o={}))C.call(o,r)&&i(t,r,o[r]);if(s)for(var r of s(o))f.call(o,r)&&i(t,r,o[r]);return t};import*as n from\"react\";import{forwardRef as c}from\"react\";import{IconoirContext as l}from\"../IconoirContext.mjs\";const d=(t,o)=>{const r=n.useContext(l),m=e(e({},r),t);return n.createElement(\"svg\",e({width:\"1.5em\",height:\"1.5em\",strokeWidth:1.5,viewBox:\"0 0 24 24\",fill:\"none\",xmlns:\"http://www.w3.org/2000/svg\",color:\"currentColor\",ref:o},m),n.createElement(\"path\",{d:\"M3.99961 3H19.9997C20.552 3 20.9997 3.44764 20.9997 3.99987L20.9999 5.58569C21 5.85097 20.8946 6.10538 20.707 6.29295L14.2925 12.7071C14.105 12.8946 13.9996 13.149 13.9996 13.4142L13.9996 19.7192C13.9996 20.3698 13.3882 20.8472 12.7571 20.6894L10.7571 20.1894C10.3119 20.0781 9.99961 19.6781 9.99961 19.2192L9.99961 13.4142C9.99961 13.149 9.89425 12.8946 9.70672 12.7071L3.2925 6.29289C3.10496 6.10536 2.99961 5.851 2.99961 5.58579V4C2.99961 3.44772 3.44732 3 3.99961 3Z\",stroke:\"currentColor\",strokeLinecap:\"round\",strokeLinejoin:\"round\"}))},u=c(d);var a=u;export{a as default};\n","\"use client\";var p=Object.defineProperty;var s=Object.getOwnPropertySymbols;var f=Object.prototype.hasOwnProperty,c=Object.prototype.propertyIsEnumerable;var i=(t,o,r)=>o in t?p(t,o,{enumerable:!0,configurable:!0,writable:!0,value:r}):t[o]=r,e=(t,o)=>{for(var r in o||(o={}))f.call(o,r)&&i(t,r,o[r]);if(s)for(var r of s(o))c.call(o,r)&&i(t,r,o[r]);return t};import*as n from\"react\";import{forwardRef as C}from\"react\";import{IconoirContext as l}from\"../IconoirContext.mjs\";const V=(t,o)=>{const r=n.useContext(l),m=e(e({},r),t);return n.createElement(\"svg\",e({width:\"1.5em\",height:\"1.5em\",strokeWidth:1.5,viewBox:\"0 0 24 24\",fill:\"none\",xmlns:\"http://www.w3.org/2000/svg\",color:\"currentColor\",ref:o},m),n.createElement(\"path\",{d:\"M2 11V4.6C2 4.26863 2.26863 4 2.6 4H8.77805C8.92127 4 9.05977 4.05124 9.16852 4.14445L12.3315 6.85555C12.4402 6.94876 12.5787 7 12.722 7H21.4C21.7314 7 22 7.26863 22 7.6V11M2 11V19.4C2 19.7314 2.26863 20 2.6 20H21.4C21.7314 20 22 19.7314 22 19.4V11M2 11H22\",stroke:\"currentColor\",strokeLinecap:\"round\",strokeLinejoin:\"round\"}))},d=C(V);var g=d;export{g as default};\n","\"use client\";var p=Object.defineProperty;var s=Object.getOwnPropertySymbols;var m=Object.prototype.hasOwnProperty,c=Object.prototype.propertyIsEnumerable;var C=(e,o,r)=>o in e?p(e,o,{enumerable:!0,configurable:!0,writable:!0,value:r}):e[o]=r,t=(e,o)=>{for(var r in o||(o={}))m.call(o,r)&&C(e,r,o[r]);if(s)for(var r of s(o))c.call(o,r)&&C(e,r,o[r]);return e};import*as n from\"react\";import{forwardRef as f}from\"react\";import{IconoirContext as d}from\"../IconoirContext.mjs\";const l=(e,o)=>{const r=n.useContext(d),i=t(t({},r),e);return n.createElement(\"svg\",t({width:\"1.5em\",height:\"1.5em\",strokeWidth:1.5,viewBox:\"0 0 24 24\",fill:\"none\",xmlns:\"http://www.w3.org/2000/svg\",color:\"currentColor\",ref:o},i),n.createElement(\"path\",{d:\"M16 22.0268V19.1568C16.0375 18.68 15.9731 18.2006 15.811 17.7506C15.6489 17.3006 15.3929 16.8902 15.06 16.5468C18.2 16.1968 21.5 15.0068 21.5 9.54679C21.4997 8.15062 20.9627 6.80799 20 5.79679C20.4558 4.5753 20.4236 3.22514 19.91 2.02679C19.91 2.02679 18.73 1.67679 16 3.50679C13.708 2.88561 11.292 2.88561 8.99999 3.50679C6.26999 1.67679 5.08999 2.02679 5.08999 2.02679C4.57636 3.22514 4.54413 4.5753 4.99999 5.79679C4.03011 6.81549 3.49251 8.17026 3.49999 9.57679C3.49999 14.9968 6.79998 16.1868 9.93998 16.5768C9.61098 16.9168 9.35725 17.3222 9.19529 17.7667C9.03334 18.2112 8.96679 18.6849 8.99999 19.1568V22.0268\",stroke:\"currentColor\",strokeLinecap:\"round\",strokeLinejoin:\"round\"}),n.createElement(\"path\",{d:\"M9 20.0267C6 20.9999 3.5 20.0267 2 17.0267\",stroke:\"currentColor\",strokeLinecap:\"round\",strokeLinejoin:\"round\"}))},u=f(l);var k=u;export{k as default};\n","\"use client\";var p=Object.defineProperty;var s=Object.getOwnPropertySymbols;var f=Object.prototype.hasOwnProperty,c=Object.prototype.propertyIsEnumerable;var i=(t,o,r)=>o in t?p(t,o,{enumerable:!0,configurable:!0,writable:!0,value:r}):t[o]=r,e=(t,o)=>{for(var r in o||(o={}))f.call(o,r)&&i(t,r,o[r]);if(s)for(var r of s(o))c.call(o,r)&&i(t,r,o[r]);return t};import*as n from\"react\";import{forwardRef as l}from\"react\";import{IconoirContext as C}from\"../IconoirContext.mjs\";const d=(t,o)=>{const r=n.useContext(C),m=e(e({},r),t);return n.createElement(\"svg\",e({width:\"1.5em\",height:\"1.5em\",strokeWidth:1.5,viewBox:\"0 0 24 24\",fill:\"none\",xmlns:\"http://www.w3.org/2000/svg\",color:\"currentColor\",ref:o},m),n.createElement(\"path\",{d:\"M3 11.5066C3 16.7497 7.25034 21 12.4934 21C16.2209 21 19.4466 18.8518 21 15.7259C12.4934 15.7259 8.27411 11.5066 8.27411 3C5.14821 4.55344 3 7.77915 3 11.5066Z\",stroke:\"currentColor\",strokeLinecap:\"round\",strokeLinejoin:\"round\"}))},u=l(d);var h=u;export{h as default};\n","\"use client\";var p=Object.defineProperty;var s=Object.getOwnPropertySymbols;var C=Object.prototype.hasOwnProperty,f=Object.prototype.propertyIsEnumerable;var m=(t,o,r)=>o in t?p(t,o,{enumerable:!0,configurable:!0,writable:!0,value:r}):t[o]=r,e=(t,o)=>{for(var r in o||(o={}))C.call(o,r)&&m(t,r,o[r]);if(s)for(var r of s(o))f.call(o,r)&&m(t,r,o[r]);return t};import*as n from\"react\";import{forwardRef as c}from\"react\";import{IconoirContext as l}from\"../IconoirContext.mjs\";const w=(t,o)=>{const r=n.useContext(l),i=e(e({},r),t);return n.createElement(\"svg\",e({width:\"1.5em\",height:\"1.5em\",strokeWidth:1.5,viewBox:\"0 0 24 24\",fill:\"none\",xmlns:\"http://www.w3.org/2000/svg\",color:\"currentColor\",ref:o},i),n.createElement(\"path\",{d:\"M22 8.86222C22 10.4087 21.4062 11.8941 20.3458 12.9929C17.9049 15.523 15.5374 18.1613 13.0053 20.5997C12.4249 21.1505 11.5042 21.1304 10.9488 20.5547L3.65376 12.9929C1.44875 10.7072 1.44875 7.01723 3.65376 4.73157C5.88044 2.42345 9.50794 2.42345 11.7346 4.73157L11.9998 5.00642L12.2648 4.73173C13.3324 3.6245 14.7864 3 16.3053 3C17.8242 3 19.2781 3.62444 20.3458 4.73157C21.4063 5.83045 22 7.31577 22 8.86222Z\",stroke:\"currentColor\",strokeLinejoin:\"round\"}))},d=c(w);var x=d;export{x as default};\n","\"use client\";var m=Object.defineProperty;var s=Object.getOwnPropertySymbols;var c=Object.prototype.hasOwnProperty,f=Object.prototype.propertyIsEnumerable;var i=(e,o,r)=>o in e?m(e,o,{enumerable:!0,configurable:!0,writable:!0,value:r}):e[o]=r,t=(e,o)=>{for(var r in o||(o={}))c.call(o,r)&&i(e,r,o[r]);if(s)for(var r of s(o))f.call(o,r)&&i(e,r,o[r]);return e};import*as n from\"react\";import{forwardRef as d}from\"react\";import{IconoirContext as l}from\"../IconoirContext.mjs\";const u=(e,o)=>{const r=n.useContext(l),p=t(t({},r),e);return n.createElement(\"svg\",t({width:\"1.5em\",height:\"1.5em\",viewBox:\"0 0 24 24\",strokeWidth:1.5,fill:\"none\",xmlns:\"http://www.w3.org/2000/svg\",color:\"currentColor\",ref:o},p),n.createElement(\"path\",{d:\"M2 8L11.7317 3.13416C11.9006 3.04971 12.0994 3.0497 12.2683 3.13416L22 8\",stroke:\"currentColor\",strokeLinecap:\"round\",strokeLinejoin:\"round\"}),n.createElement(\"path\",{d:\"M20 11V19C20 20.1046 19.1046 21 18 21H6C4.89543 21 4 20.1046 4 19V11\",stroke:\"currentColor\",strokeLinecap:\"round\",strokeLinejoin:\"round\"}))},C=d(u);var k=C;export{k as default};\n","\"use client\";var d=Object.defineProperty;var s=Object.getOwnPropertySymbols;var m=Object.prototype.hasOwnProperty,u=Object.prototype.propertyIsEnumerable;var i=(e,o,r)=>o in e?d(e,o,{enumerable:!0,configurable:!0,writable:!0,value:r}):e[o]=r,n=(e,o)=>{for(var r in o||(o={}))m.call(o,r)&&i(e,r,o[r]);if(s)for(var r of s(o))u.call(o,r)&&i(e,r,o[r]);return e};import*as t from\"react\";import{forwardRef as c}from\"react\";import{IconoirContext as f}from\"../IconoirContext.mjs\";const l=(e,o)=>{const r=t.useContext(f),p=n(n({},r),e);return t.createElement(\"svg\",n({width:\"1.5em\",height:\"1.5em\",strokeWidth:1.5,viewBox:\"0 0 24 24\",fill:\"none\",xmlns:\"http://www.w3.org/2000/svg\",color:\"currentColor\",ref:o},p),t.createElement(\"path\",{d:\"M12 11.5V16.5\",stroke:\"currentColor\",strokeLinecap:\"round\",strokeLinejoin:\"round\"}),t.createElement(\"path\",{d:\"M12 7.51L12.01 7.49889\",stroke:\"currentColor\",strokeLinecap:\"round\",strokeLinejoin:\"round\"}),t.createElement(\"path\",{d:\"M12 22C17.5228 22 22 17.5228 22 12C22 6.47715 17.5228 2 12 2C6.47715 2 2 6.47715 2 12C2 17.5228 6.47715 22 12 22Z\",stroke:\"currentColor\",strokeLinecap:\"round\",strokeLinejoin:\"round\"}))},C=c(l);var L=C;export{L as default};\n","\"use client\";var C=Object.defineProperty;var s=Object.getOwnPropertySymbols;var m=Object.prototype.hasOwnProperty,c=Object.prototype.propertyIsEnumerable;var i=(e,o,r)=>o in e?C(e,o,{enumerable:!0,configurable:!0,writable:!0,value:r}):e[o]=r,t=(e,o)=>{for(var r in o||(o={}))m.call(o,r)&&i(e,r,o[r]);if(s)for(var r of s(o))c.call(o,r)&&i(e,r,o[r]);return e};import*as n from\"react\";import{forwardRef as f}from\"react\";import{IconoirContext as d}from\"../IconoirContext.mjs\";const l=(e,o)=>{const r=n.useContext(d),p=t(t({},r),e);return n.createElement(\"svg\",t({width:\"1.5em\",height:\"1.5em\",strokeWidth:1.5,viewBox:\"0 0 24 24\",fill:\"none\",xmlns:\"http://www.w3.org/2000/svg\",color:\"currentColor\",ref:o},p),n.createElement(\"path\",{d:\"M14 11.9976C14 9.5059 11.683 7 8.85714 7C8.52241 7 7.41904 7.00001 7.14286 7.00001C4.30254 7.00001 2 9.23752 2 11.9976C2 14.376 3.70973 16.3664 6 16.8714C6.36756 16.9525 6.75006 16.9952 7.14286 16.9952\",stroke:\"currentColor\",strokeLinecap:\"round\",strokeLinejoin:\"round\"}),n.createElement(\"path\",{d:\"M10 11.9976C10 14.4893 12.317 16.9952 15.1429 16.9952C15.4776 16.9952 16.581 16.9952 16.8571 16.9952C19.6975 16.9952 22 14.7577 22 11.9976C22 9.6192 20.2903 7.62884 18 7.12383C17.6324 7.04278 17.2499 6.99999 16.8571 6.99999\",stroke:\"currentColor\",strokeLinecap:\"round\",strokeLinejoin:\"round\"}))},u=f(l);var S=u;export{S as default};\n","\"use client\";var d=Object.defineProperty;var s=Object.getOwnPropertySymbols;var u=Object.prototype.hasOwnProperty,k=Object.prototype.propertyIsEnumerable;var i=(e,o,r)=>o in e?d(e,o,{enumerable:!0,configurable:!0,writable:!0,value:r}):e[o]=r,t=(e,o)=>{for(var r in o||(o={}))u.call(o,r)&&i(e,r,o[r]);if(s)for(var r of s(o))k.call(o,r)&&i(e,r,o[r]);return e};import*as n from\"react\";import{forwardRef as L}from\"react\";import{IconoirContext as c}from\"../IconoirContext.mjs\";const l=(e,o)=>{const r=n.useContext(c),p=t(t({},r),e);return n.createElement(\"svg\",t({width:\"1.5em\",height:\"1.5em\",strokeWidth:1.5,viewBox:\"0 0 24 24\",fill:\"none\",xmlns:\"http://www.w3.org/2000/svg\",color:\"currentColor\",ref:o},p),n.createElement(\"path\",{d:\"M8 6L20 6\",stroke:\"currentColor\",strokeLinecap:\"round\",strokeLinejoin:\"round\"}),n.createElement(\"path\",{d:\"M4 6.01L4.01 5.99889\",stroke:\"currentColor\",strokeLinecap:\"round\",strokeLinejoin:\"round\"}),n.createElement(\"path\",{d:\"M4 12.01L4.01 11.9989\",stroke:\"currentColor\",strokeLinecap:\"round\",strokeLinejoin:\"round\"}),n.createElement(\"path\",{d:\"M4 18.01L4.01 17.9989\",stroke:\"currentColor\",strokeLinecap:\"round\",strokeLinejoin:\"round\"}),n.createElement(\"path\",{d:\"M8 12L20 12\",stroke:\"currentColor\",strokeLinecap:\"round\",strokeLinejoin:\"round\"}),n.createElement(\"path\",{d:\"M8 18L20 18\",stroke:\"currentColor\",strokeLinecap:\"round\",strokeLinejoin:\"round\"}))},m=L(l);var w=m;export{w as default};\n","\"use client\";var d=Object.defineProperty;var s=Object.getOwnPropertySymbols;var u=Object.prototype.hasOwnProperty,k=Object.prototype.propertyIsEnumerable;var i=(e,o,r)=>o in e?d(e,o,{enumerable:!0,configurable:!0,writable:!0,value:r}):e[o]=r,n=(e,o)=>{for(var r in o||(o={}))u.call(o,r)&&i(e,r,o[r]);if(s)for(var r of s(o))k.call(o,r)&&i(e,r,o[r]);return e};import*as t from\"react\";import{forwardRef as c}from\"react\";import{IconoirContext as C}from\"../IconoirContext.mjs\";const l=(e,o)=>{const r=t.useContext(C),p=n(n({},r),e);return t.createElement(\"svg\",n({width:\"1.5em\",height:\"1.5em\",strokeWidth:1.5,viewBox:\"0 0 24 24\",fill:\"none\",xmlns:\"http://www.w3.org/2000/svg\",color:\"currentColor\",ref:o},p),t.createElement(\"path\",{d:\"M11.5 12H6.6C6.26863 12 6 12.2686 6 12.6V19.4C6 19.7314 6.26863 20 6.6 20H17.4C17.7314 20 18 19.7314 18 19.4V18.5\",stroke:\"currentColor\",strokeLinecap:\"round\",strokeLinejoin:\"round\"}),t.createElement(\"path\",{d:\"M16 12V8C16 6.66667 15.2 4 12 4C11.2532 4 10.6371 4.14525 10.1313 4.38491\",stroke:\"currentColor\",strokeLinecap:\"round\",strokeLinejoin:\"round\"}),t.createElement(\"path\",{d:\"M16 12H17.4C17.7314 12 18 12.2686 18 12.6V13\",stroke:\"currentColor\",strokeLinecap:\"round\",strokeLinejoin:\"round\"}),t.createElement(\"path\",{d:\"M8 8V8.5V12\",stroke:\"currentColor\",strokeLinecap:\"round\",strokeLinejoin:\"round\"}),t.createElement(\"path\",{d:\"M3 3L21 21\",stroke:\"currentColor\",strokeLinecap:\"round\",strokeLinejoin:\"round\"}))},m=c(l);var h=m;export{h as default};\n","\"use client\";var p=Object.defineProperty;var s=Object.getOwnPropertySymbols;var f=Object.prototype.hasOwnProperty,c=Object.prototype.propertyIsEnumerable;var i=(t,o,r)=>o in t?p(t,o,{enumerable:!0,configurable:!0,writable:!0,value:r}):t[o]=r,e=(t,o)=>{for(var r in o||(o={}))f.call(o,r)&&i(t,r,o[r]);if(s)for(var r of s(o))c.call(o,r)&&i(t,r,o[r]);return t};import*as n from\"react\";import{forwardRef as C}from\"react\";import{IconoirContext as l}from\"../IconoirContext.mjs\";const V=(t,o)=>{const r=n.useContext(l),m=e(e({},r),t);return n.createElement(\"svg\",e({width:\"1.5em\",height:\"1.5em\",strokeWidth:1.5,viewBox:\"0 0 24 24\",fill:\"none\",xmlns:\"http://www.w3.org/2000/svg\",color:\"currentColor\",ref:o},m),n.createElement(\"path\",{d:\"M16 12H17.4C17.7314 12 18 12.2686 18 12.6V19.4C18 19.7314 17.7314 20 17.4 20H6.6C6.26863 20 6 19.7314 6 19.4V12.6C6 12.2686 6.26863 12 6.6 12H8M16 12V8C16 6.66667 15.2 4 12 4C8.8 4 8 6.66667 8 8V12M16 12H8\",stroke:\"currentColor\",strokeLinecap:\"round\",strokeLinejoin:\"round\"}))},d=C(V);var g=d;export{g as default};\n","\"use client\";var m=Object.defineProperty;var s=Object.getOwnPropertySymbols;var f=Object.prototype.hasOwnProperty,c=Object.prototype.propertyIsEnumerable;var p=(t,o,r)=>o in t?m(t,o,{enumerable:!0,configurable:!0,writable:!0,value:r}):t[o]=r,e=(t,o)=>{for(var r in o||(o={}))f.call(o,r)&&p(t,r,o[r]);if(s)for(var r of s(o))c.call(o,r)&&p(t,r,o[r]);return t};import*as n from\"react\";import{forwardRef as l}from\"react\";import{IconoirContext as C}from\"../IconoirContext.mjs\";const d=(t,o)=>{const r=n.useContext(C),i=e(e({},r),t);return n.createElement(\"svg\",e({width:\"1.5em\",height:\"1.5em\",strokeWidth:1.5,viewBox:\"0 0 24 24\",fill:\"none\",xmlns:\"http://www.w3.org/2000/svg\",color:\"currentColor\",ref:o},i),n.createElement(\"path\",{d:\"M7 9L12 12.5L17 9\",stroke:\"currentColor\",strokeLinecap:\"round\",strokeLinejoin:\"round\"}),n.createElement(\"path\",{d:\"M2 17V7C2 5.89543 2.89543 5 4 5H20C21.1046 5 22 5.89543 22 7V17C22 18.1046 21.1046 19 20 19H4C2.89543 19 2 18.1046 2 17Z\",stroke:\"currentColor\"}))},u=l(d);var a=u;export{a as default};\n","\"use client\";var d=Object.defineProperty;var s=Object.getOwnPropertySymbols;var m=Object.prototype.hasOwnProperty,u=Object.prototype.propertyIsEnumerable;var i=(e,o,r)=>o in e?d(e,o,{enumerable:!0,configurable:!0,writable:!0,value:r}):e[o]=r,n=(e,o)=>{for(var r in o||(o={}))m.call(o,r)&&i(e,r,o[r]);if(s)for(var r of s(o))u.call(o,r)&&i(e,r,o[r]);return e};import*as t from\"react\";import{forwardRef as c}from\"react\";import{IconoirContext as f}from\"../IconoirContext.mjs\";const l=(e,o)=>{const r=t.useContext(f),p=n(n({},r),e);return t.createElement(\"svg\",n({width:\"1.5em\",height:\"1.5em\",strokeWidth:1.5,viewBox:\"0 0 24 24\",fill:\"none\",xmlns:\"http://www.w3.org/2000/svg\",color:\"currentColor\",ref:o},p),t.createElement(\"path\",{d:\"M3 5H21\",stroke:\"currentColor\",strokeLinecap:\"round\",strokeLinejoin:\"round\"}),t.createElement(\"path\",{d:\"M3 12H21\",stroke:\"currentColor\",strokeLinecap:\"round\",strokeLinejoin:\"round\"}),t.createElement(\"path\",{d:\"M3 19H21\",stroke:\"currentColor\",strokeLinecap:\"round\",strokeLinejoin:\"round\"}))},k=c(l);var S=k;export{S as default};\n","\"use client\";var p=Object.defineProperty;var s=Object.getOwnPropertySymbols;var f=Object.prototype.hasOwnProperty,c=Object.prototype.propertyIsEnumerable;var i=(t,o,r)=>o in t?p(t,o,{enumerable:!0,configurable:!0,writable:!0,value:r}):t[o]=r,e=(t,o)=>{for(var r in o||(o={}))f.call(o,r)&&i(t,r,o[r]);if(s)for(var r of s(o))c.call(o,r)&&i(t,r,o[r]);return t};import*as n from\"react\";import{forwardRef as l}from\"react\";import{IconoirContext as d}from\"../IconoirContext.mjs\";const u=(t,o)=>{const r=n.useContext(d),m=e(e({},r),t);return n.createElement(\"svg\",e({width:\"1.5em\",height:\"1.5em\",strokeWidth:1.5,viewBox:\"0 0 24 24\",fill:\"none\",xmlns:\"http://www.w3.org/2000/svg\",color:\"currentColor\",ref:o},m),n.createElement(\"path\",{d:\"M6 12H18\",stroke:\"currentColor\",strokeLinecap:\"round\",strokeLinejoin:\"round\"}))},w=l(u);var x=w;export{x as default};\n","\"use client\";var l=Object.defineProperty;var s=Object.getOwnPropertySymbols;var p=Object.prototype.hasOwnProperty,u=Object.prototype.propertyIsEnumerable;var i=(e,o,r)=>o in e?l(e,o,{enumerable:!0,configurable:!0,writable:!0,value:r}):e[o]=r,n=(e,o)=>{for(var r in o||(o={}))p.call(o,r)&&i(e,r,o[r]);if(s)for(var r of s(o))u.call(o,r)&&i(e,r,o[r]);return e};import*as t from\"react\";import{forwardRef as c}from\"react\";import{IconoirContext as f}from\"../IconoirContext.mjs\";const d=(e,o)=>{const r=t.useContext(f),C=n(n({},r),e);return t.createElement(\"svg\",n({width:\"1.5em\",height:\"1.5em\",viewBox:\"0 0 24 24\",strokeWidth:1.5,fill:\"none\",xmlns:\"http://www.w3.org/2000/svg\",color:\"currentColor\",ref:o},C),t.createElement(\"path\",{d:\"M20 12.5C20.2761 12.5 20.5 12.2761 20.5 12C20.5 11.7239 20.2761 11.5 20 11.5C19.7239 11.5 19.5 11.7239 19.5 12C19.5 12.2761 19.7239 12.5 20 12.5Z\",fill:\"currentColor\",stroke:\"currentColor\",strokeLinecap:\"round\",strokeLinejoin:\"round\"}),t.createElement(\"path\",{d:\"M12 12.5C12.2761 12.5 12.5 12.2761 12.5 12C12.5 11.7239 12.2761 11.5 12 11.5C11.7239 11.5 11.5 11.7239 11.5 12C11.5 12.2761 11.7239 12.5 12 12.5Z\",fill:\"currentColor\",stroke:\"currentColor\",strokeLinecap:\"round\",strokeLinejoin:\"round\"}),t.createElement(\"path\",{d:\"M4 12.5C4.27614 12.5 4.5 12.2761 4.5 12C4.5 11.7239 4.27614 11.5 4 11.5C3.72386 11.5 3.5 11.7239 3.5 12C3.5 12.2761 3.72386 12.5 4 12.5Z\",fill:\"currentColor\",stroke:\"currentColor\",strokeLinecap:\"round\",strokeLinejoin:\"round\"}))},m=c(d);var S=m;export{S as default};\n","\"use client\";var l=Object.defineProperty;var s=Object.getOwnPropertySymbols;var p=Object.prototype.hasOwnProperty,u=Object.prototype.propertyIsEnumerable;var i=(e,o,r)=>o in e?l(e,o,{enumerable:!0,configurable:!0,writable:!0,value:r}):e[o]=r,n=(e,o)=>{for(var r in o||(o={}))p.call(o,r)&&i(e,r,o[r]);if(s)for(var r of s(o))u.call(o,r)&&i(e,r,o[r]);return e};import*as t from\"react\";import{forwardRef as c}from\"react\";import{IconoirContext as f}from\"../IconoirContext.mjs\";const d=(e,o)=>{const r=t.useContext(f),C=n(n({},r),e);return t.createElement(\"svg\",n({width:\"1.5em\",height:\"1.5em\",viewBox:\"0 0 24 24\",strokeWidth:1.5,fill:\"none\",xmlns:\"http://www.w3.org/2000/svg\",color:\"currentColor\",ref:o},C),t.createElement(\"path\",{d:\"M12 12.5C12.2761 12.5 12.5 12.2761 12.5 12C12.5 11.7239 12.2761 11.5 12 11.5C11.7239 11.5 11.5 11.7239 11.5 12C11.5 12.2761 11.7239 12.5 12 12.5Z\",fill:\"currentColor\",stroke:\"currentColor\",strokeLinecap:\"round\",strokeLinejoin:\"round\"}),t.createElement(\"path\",{d:\"M12 20.5C12.2761 20.5 12.5 20.2761 12.5 20C12.5 19.7239 12.2761 19.5 12 19.5C11.7239 19.5 11.5 19.7239 11.5 20C11.5 20.2761 11.7239 20.5 12 20.5Z\",fill:\"currentColor\",stroke:\"currentColor\",strokeLinecap:\"round\",strokeLinejoin:\"round\"}),t.createElement(\"path\",{d:\"M12 4.5C12.2761 4.5 12.5 4.27614 12.5 4C12.5 3.72386 12.2761 3.5 12 3.5C11.7239 3.5 11.5 3.72386 11.5 4C11.5 4.27614 11.7239 4.5 12 4.5Z\",fill:\"currentColor\",stroke:\"currentColor\",strokeLinecap:\"round\",strokeLinejoin:\"round\"}))},m=c(d);var S=m;export{S as default};\n","\"use client\";var p=Object.defineProperty;var s=Object.getOwnPropertySymbols;var f=Object.prototype.hasOwnProperty,c=Object.prototype.propertyIsEnumerable;var i=(t,o,r)=>o in t?p(t,o,{enumerable:!0,configurable:!0,writable:!0,value:r}):t[o]=r,e=(t,o)=>{for(var r in o||(o={}))f.call(o,r)&&i(t,r,o[r]);if(s)for(var r of s(o))c.call(o,r)&&i(t,r,o[r]);return t};import*as n from\"react\";import{forwardRef as l}from\"react\";import{IconoirContext as d}from\"../IconoirContext.mjs\";const u=(t,o)=>{const r=n.useContext(d),m=e(e({},r),t);return n.createElement(\"svg\",e({width:\"1.5em\",height:\"1.5em\",strokeWidth:1.5,viewBox:\"0 0 24 24\",fill:\"none\",xmlns:\"http://www.w3.org/2000/svg\",color:\"currentColor\",ref:o},m),n.createElement(\"path\",{d:\"M6 9L12 15L18 9\",stroke:\"currentColor\",strokeLinecap:\"round\",strokeLinejoin:\"round\"}))},w=l(u);var x=w;export{x as default};\n","\"use client\";var p=Object.defineProperty;var s=Object.getOwnPropertySymbols;var f=Object.prototype.hasOwnProperty,c=Object.prototype.propertyIsEnumerable;var i=(t,o,r)=>o in t?p(t,o,{enumerable:!0,configurable:!0,writable:!0,value:r}):t[o]=r,e=(t,o)=>{for(var r in o||(o={}))f.call(o,r)&&i(t,r,o[r]);if(s)for(var r of s(o))c.call(o,r)&&i(t,r,o[r]);return t};import*as n from\"react\";import{forwardRef as l}from\"react\";import{IconoirContext as d}from\"../IconoirContext.mjs\";const u=(t,o)=>{const r=n.useContext(d),m=e(e({},r),t);return n.createElement(\"svg\",e({width:\"1.5em\",height:\"1.5em\",strokeWidth:1.5,viewBox:\"0 0 24 24\",fill:\"none\",xmlns:\"http://www.w3.org/2000/svg\",color:\"currentColor\",ref:o},m),n.createElement(\"path\",{d:\"M15 6L9 12L15 18\",stroke:\"currentColor\",strokeLinecap:\"round\",strokeLinejoin:\"round\"}))},w=l(u);var x=w;export{x as default};\n","\"use client\";var p=Object.defineProperty;var s=Object.getOwnPropertySymbols;var f=Object.prototype.hasOwnProperty,c=Object.prototype.propertyIsEnumerable;var i=(t,o,r)=>o in t?p(t,o,{enumerable:!0,configurable:!0,writable:!0,value:r}):t[o]=r,e=(t,o)=>{for(var r in o||(o={}))f.call(o,r)&&i(t,r,o[r]);if(s)for(var r of s(o))c.call(o,r)&&i(t,r,o[r]);return t};import*as n from\"react\";import{forwardRef as l}from\"react\";import{IconoirContext as d}from\"../IconoirContext.mjs\";const u=(t,o)=>{const r=n.useContext(d),m=e(e({},r),t);return n.createElement(\"svg\",e({width:\"1.5em\",height:\"1.5em\",strokeWidth:1.5,viewBox:\"0 0 24 24\",fill:\"none\",xmlns:\"http://www.w3.org/2000/svg\",color:\"currentColor\",ref:o},m),n.createElement(\"path\",{d:\"M9 6L15 12L9 18\",stroke:\"currentColor\",strokeLinecap:\"round\",strokeLinejoin:\"round\"}))},w=l(u);var x=w;export{x as default};\n","\"use client\";var p=Object.defineProperty;var s=Object.getOwnPropertySymbols;var f=Object.prototype.hasOwnProperty,c=Object.prototype.propertyIsEnumerable;var i=(t,o,r)=>o in t?p(t,o,{enumerable:!0,configurable:!0,writable:!0,value:r}):t[o]=r,e=(t,o)=>{for(var r in o||(o={}))f.call(o,r)&&i(t,r,o[r]);if(s)for(var r of s(o))c.call(o,r)&&i(t,r,o[r]);return t};import*as n from\"react\";import{forwardRef as l}from\"react\";import{IconoirContext as d}from\"../IconoirContext.mjs\";const u=(t,o)=>{const r=n.useContext(d),m=e(e({},r),t);return n.createElement(\"svg\",e({width:\"1.5em\",height:\"1.5em\",strokeWidth:1.5,viewBox:\"0 0 24 24\",fill:\"none\",xmlns:\"http://www.w3.org/2000/svg\",color:\"currentColor\",ref:o},m),n.createElement(\"path\",{d:\"M6 15L12 9L18 15\",stroke:\"currentColor\",strokeLinecap:\"round\",strokeLinejoin:\"round\"}))},w=l(u);var x=w;export{x as default};\n","\"use client\";var m=Object.defineProperty;var s=Object.getOwnPropertySymbols;var c=Object.prototype.hasOwnProperty,f=Object.prototype.propertyIsEnumerable;var i=(e,o,r)=>o in e?m(e,o,{enumerable:!0,configurable:!0,writable:!0,value:r}):e[o]=r,t=(e,o)=>{for(var r in o||(o={}))c.call(o,r)&&i(e,r,o[r]);if(s)for(var r of s(o))f.call(o,r)&&i(e,r,o[r]);return e};import*as n from\"react\";import{forwardRef as d}from\"react\";import{IconoirContext as l}from\"../IconoirContext.mjs\";const u=(e,o)=>{const r=n.useContext(l),p=t(t({},r),e);return n.createElement(\"svg\",t({width:\"1.5em\",height:\"1.5em\",strokeWidth:1.5,viewBox:\"0 0 24 24\",fill:\"none\",xmlns:\"http://www.w3.org/2000/svg\",color:\"currentColor\",ref:o},p),n.createElement(\"path\",{d:\"M8 21H20.4C20.7314 21 21 20.7314 21 20.4V3.6C21 3.26863 20.7314 3 20.4 3H3.6C3.26863 3 3 3.26863 3 3.6V16\",stroke:\"currentColor\",strokeLinecap:\"round\",strokeLinejoin:\"round\"}),n.createElement(\"path\",{d:\"M3.5 20.5L12 12M12 12V16M12 12H8\",stroke:\"currentColor\",strokeLinecap:\"round\",strokeLinejoin:\"round\"}))},C=d(u);var k=C;export{k as default};\n","\"use client\";var d=Object.defineProperty;var s=Object.getOwnPropertySymbols;var u=Object.prototype.hasOwnProperty,k=Object.prototype.propertyIsEnumerable;var i=(e,o,r)=>o in e?d(e,o,{enumerable:!0,configurable:!0,writable:!0,value:r}):e[o]=r,n=(e,o)=>{for(var r in o||(o={}))u.call(o,r)&&i(e,r,o[r]);if(s)for(var r of s(o))k.call(o,r)&&i(e,r,o[r]);return e};import*as t from\"react\";import{forwardRef as c}from\"react\";import{IconoirContext as C}from\"../IconoirContext.mjs\";const l=(e,o)=>{const r=t.useContext(C),p=n(n({},r),e);return t.createElement(\"svg\",n({width:\"1.5em\",height:\"1.5em\",viewBox:\"0 0 24 24\",strokeWidth:1.5,fill:\"none\",xmlns:\"http://www.w3.org/2000/svg\",color:\"currentColor\",ref:o},p),t.createElement(\"path\",{d:\"M4 21.4V2.6C4 2.26863 4.26863 2 4.6 2H16.2515C16.4106 2 16.5632 2.06321 16.6757 2.17574L19.8243 5.32426C19.9368 5.43679 20 5.5894 20 5.74853V21.4C20 21.7314 19.7314 22 19.4 22H4.6C4.26863 22 4 21.7314 4 21.4Z\",stroke:\"currentColor\",strokeLinecap:\"round\",strokeLinejoin:\"round\"}),t.createElement(\"path\",{d:\"M8 10L16 10\",stroke:\"currentColor\",strokeLinecap:\"round\",strokeLinejoin:\"round\"}),t.createElement(\"path\",{d:\"M8 18L16 18\",stroke:\"currentColor\",strokeLinecap:\"round\",strokeLinejoin:\"round\"}),t.createElement(\"path\",{d:\"M8 14L12 14\",stroke:\"currentColor\",strokeLinecap:\"round\",strokeLinejoin:\"round\"}),t.createElement(\"path\",{d:\"M16 2V5.4C16 5.73137 16.2686 6 16.6 6H20\",stroke:\"currentColor\",strokeLinecap:\"round\",strokeLinejoin:\"round\"}))},m=c(l);var V=m;export{V as default};\n","\"use client\";var p=Object.defineProperty;var s=Object.getOwnPropertySymbols;var f=Object.prototype.hasOwnProperty,c=Object.prototype.propertyIsEnumerable;var i=(t,o,r)=>o in t?p(t,o,{enumerable:!0,configurable:!0,writable:!0,value:r}):t[o]=r,e=(t,o)=>{for(var r in o||(o={}))f.call(o,r)&&i(t,r,o[r]);if(s)for(var r of s(o))c.call(o,r)&&i(t,r,o[r]);return t};import*as n from\"react\";import{forwardRef as l}from\"react\";import{IconoirContext as d}from\"../IconoirContext.mjs\";const u=(t,o)=>{const r=n.useContext(d),m=e(e({},r),t);return n.createElement(\"svg\",e({width:\"1.5em\",height:\"1.5em\",strokeWidth:1.5,viewBox:\"0 0 24 24\",fill:\"none\",xmlns:\"http://www.w3.org/2000/svg\",color:\"currentColor\",ref:o},m),n.createElement(\"path\",{d:\"M6 12H12M18 12H12M12 12V6M12 12V18\",stroke:\"currentColor\",strokeLinecap:\"round\",strokeLinejoin:\"round\"}))},w=l(u);var h=w;export{h as default};\n","\"use client\";var d=Object.defineProperty;var s=Object.getOwnPropertySymbols;var u=Object.prototype.hasOwnProperty,c=Object.prototype.propertyIsEnumerable;var i=(e,o,r)=>o in e?d(e,o,{enumerable:!0,configurable:!0,writable:!0,value:r}):e[o]=r,n=(e,o)=>{for(var r in o||(o={}))u.call(o,r)&&i(e,r,o[r]);if(s)for(var r of s(o))c.call(o,r)&&i(e,r,o[r]);return e};import*as t from\"react\";import{forwardRef as m}from\"react\";import{IconoirContext as C}from\"../IconoirContext.mjs\";const k=(e,o)=>{const r=t.useContext(C),p=n(n({},r),e);return t.createElement(\"svg\",n({width:\"1.5em\",height:\"1.5em\",strokeWidth:1.5,viewBox:\"0 0 24 24\",fill:\"none\",xmlns:\"http://www.w3.org/2000/svg\",color:\"currentColor\",ref:o},p),t.createElement(\"path\",{d:\"M21.1679 8C19.6247 4.46819 16.1006 2 11.9999 2C6.81459 2 2.55104 5.94668 2.04932 11\",stroke:\"currentColor\",strokeLinecap:\"round\",strokeLinejoin:\"round\"}),t.createElement(\"path\",{d:\"M17 8H21.4C21.7314 8 22 7.73137 22 7.4V3\",stroke:\"currentColor\",strokeLinecap:\"round\",strokeLinejoin:\"round\"}),t.createElement(\"path\",{d:\"M2.88146 16C4.42458 19.5318 7.94874 22 12.0494 22C17.2347 22 21.4983 18.0533 22 13\",stroke:\"currentColor\",strokeLinecap:\"round\",strokeLinejoin:\"round\"}),t.createElement(\"path\",{d:\"M7.04932 16H2.64932C2.31795 16 2.04932 16.2686 2.04932 16.6V21\",stroke:\"currentColor\",strokeLinecap:\"round\",strokeLinejoin:\"round\"}))},l=m(k);var L=l;export{L as default};\n","\"use client\";var m=Object.defineProperty;var s=Object.getOwnPropertySymbols;var c=Object.prototype.hasOwnProperty,f=Object.prototype.propertyIsEnumerable;var i=(e,o,r)=>o in e?m(e,o,{enumerable:!0,configurable:!0,writable:!0,value:r}):e[o]=r,t=(e,o)=>{for(var r in o||(o={}))c.call(o,r)&&i(e,r,o[r]);if(s)for(var r of s(o))f.call(o,r)&&i(e,r,o[r]);return e};import*as n from\"react\";import{forwardRef as d}from\"react\";import{IconoirContext as l}from\"../IconoirContext.mjs\";const u=(e,o)=>{const r=n.useContext(l),p=t(t({},r),e);return n.createElement(\"svg\",t({width:\"1.5em\",height:\"1.5em\",viewBox:\"0 0 24 24\",strokeWidth:1.5,fill:\"none\",xmlns:\"http://www.w3.org/2000/svg\",color:\"currentColor\",ref:o},p),n.createElement(\"path\",{d:\"M17 17L21 21\",stroke:\"currentColor\",strokeLinecap:\"round\",strokeLinejoin:\"round\"}),n.createElement(\"path\",{d:\"M3 11C3 15.4183 6.58172 19 11 19C13.213 19 15.2161 18.1015 16.6644 16.6493C18.1077 15.2022 19 13.2053 19 11C19 6.58172 15.4183 3 11 3C6.58172 3 3 6.58172 3 11Z\",stroke:\"currentColor\",strokeLinecap:\"round\",strokeLinejoin:\"round\"}))},C=d(u);var S=C;export{S as default};\n","\"use client\";var p=Object.defineProperty;var n=Object.getOwnPropertySymbols;var m=Object.prototype.hasOwnProperty,c=Object.prototype.propertyIsEnumerable;var s=(e,o,r)=>o in e?p(e,o,{enumerable:!0,configurable:!0,writable:!0,value:r}):e[o]=r,t=(e,o)=>{for(var r in o||(o={}))m.call(o,r)&&s(e,r,o[r]);if(n)for(var r of n(o))c.call(o,r)&&s(e,r,o[r]);return e};import*as L from\"react\";import{forwardRef as f}from\"react\";import{IconoirContext as d}from\"../IconoirContext.mjs\";const l=(e,o)=>{const r=L.useContext(d),i=t(t({},r),e);return L.createElement(\"svg\",t({width:\"1.5em\",height:\"1.5em\",strokeWidth:1.5,viewBox:\"0 0 24 24\",fill:\"none\",xmlns:\"http://www.w3.org/2000/svg\",color:\"currentColor\",ref:o},i),L.createElement(\"path\",{d:\"M12 15C13.6569 15 15 13.6569 15 12C15 10.3431 13.6569 9 12 9C10.3431 9 9 10.3431 9 12C9 13.6569 10.3431 15 12 15Z\",stroke:\"currentColor\",strokeLinecap:\"round\",strokeLinejoin:\"round\"}),L.createElement(\"path\",{d:\"M19.6224 10.3954L18.5247 7.7448L20 6L18 4L16.2647 5.48295L13.5578 4.36974L12.9353 2H10.981L10.3491 4.40113L7.70441 5.51596L6 4L4 6L5.45337 7.78885L4.3725 10.4463L2 11V13L4.40111 13.6555L5.51575 16.2997L4 18L6 20L7.79116 18.5403L10.397 19.6123L11 22H13L13.6045 19.6132L16.2551 18.5155C16.6969 18.8313 18 20 18 20L20 18L18.5159 16.2494L19.6139 13.598L21.9999 12.9772L22 11L19.6224 10.3954Z\",stroke:\"currentColor\",strokeLinecap:\"round\",strokeLinejoin:\"round\"}))},u=f(l);var k=u;export{k as default};\n","\"use client\";var d=Object.defineProperty;var s=Object.getOwnPropertySymbols;var u=Object.prototype.hasOwnProperty,k=Object.prototype.propertyIsEnumerable;var i=(e,o,r)=>o in e?d(e,o,{enumerable:!0,configurable:!0,writable:!0,value:r}):e[o]=r,n=(e,o)=>{for(var r in o||(o={}))u.call(o,r)&&i(e,r,o[r]);if(s)for(var r of s(o))k.call(o,r)&&i(e,r,o[r]);return e};import*as t from\"react\";import{forwardRef as c}from\"react\";import{IconoirContext as l}from\"../IconoirContext.mjs\";const m=(e,o)=>{const r=t.useContext(l),p=n(n({},r),e);return t.createElement(\"svg\",n({width:\"1.5em\",height:\"1.5em\",strokeWidth:1.5,viewBox:\"0 0 24 24\",fill:\"none\",xmlns:\"http://www.w3.org/2000/svg\",color:\"currentColor\",ref:o},p),t.createElement(\"path\",{d:\"M14 10L2 10\",stroke:\"currentColor\",strokeLinecap:\"round\",strokeLinejoin:\"round\"}),t.createElement(\"path\",{d:\"M10 14H2\",stroke:\"currentColor\",strokeLinecap:\"round\",strokeLinejoin:\"round\"}),t.createElement(\"path\",{d:\"M6 18H2\",stroke:\"currentColor\",strokeLinecap:\"round\",strokeLinejoin:\"round\"}),t.createElement(\"path\",{d:\"M18 6L2 6\",stroke:\"currentColor\",strokeLinecap:\"round\",strokeLinejoin:\"round\"}),t.createElement(\"path\",{d:\"M19 10V20M19 20L22 17M19 20L16 17\",stroke:\"currentColor\",strokeLinecap:\"round\",strokeLinejoin:\"round\"}))},L=c(m);var w=L;export{w as default};\n","\"use client\";var p=Object.defineProperty;var s=Object.getOwnPropertySymbols;var C=Object.prototype.hasOwnProperty,f=Object.prototype.propertyIsEnumerable;var i=(t,o,r)=>o in t?p(t,o,{enumerable:!0,configurable:!0,writable:!0,value:r}):t[o]=r,e=(t,o)=>{for(var r in o||(o={}))C.call(o,r)&&i(t,r,o[r]);if(s)for(var r of s(o))f.call(o,r)&&i(t,r,o[r]);return t};import*as n from\"react\";import{forwardRef as l}from\"react\";import{IconoirContext as c}from\"../IconoirContext.mjs\";const d=(t,o)=>{const r=n.useContext(c),m=e(e({},r),t);return n.createElement(\"svg\",e({width:\"1.5em\",height:\"1.5em\",viewBox:\"0 0 24 24\",strokeWidth:1.5,fill:\"none\",xmlns:\"http://www.w3.org/2000/svg\",color:\"currentColor\",ref:o},m),n.createElement(\"path\",{d:\"M8 15C12.8747 15 15 12.949 15 8C15 12.949 17.1104 15 22 15C17.1104 15 15 17.1104 15 22C15 17.1104 12.8747 15 8 15Z\",stroke:\"currentColor\",strokeLinejoin:\"round\"}),n.createElement(\"path\",{d:\"M2 6.5C5.13376 6.5 6.5 5.18153 6.5 2C6.5 5.18153 7.85669 6.5 11 6.5C7.85669 6.5 6.5 7.85669 6.5 11C6.5 7.85669 5.13376 6.5 2 6.5Z\",stroke:\"currentColor\",strokeLinejoin:\"round\"}))},u=l(d);var x=u;export{x as default};\n","\"use client\";var p=Object.defineProperty;var s=Object.getOwnPropertySymbols;var f=Object.prototype.hasOwnProperty,L=Object.prototype.propertyIsEnumerable;var i=(t,o,r)=>o in t?p(t,o,{enumerable:!0,configurable:!0,writable:!0,value:r}):t[o]=r,e=(t,o)=>{for(var r in o||(o={}))f.call(o,r)&&i(t,r,o[r]);if(s)for(var r of s(o))L.call(o,r)&&i(t,r,o[r]);return t};import*as n from\"react\";import{forwardRef as c}from\"react\";import{IconoirContext as l}from\"../IconoirContext.mjs\";const C=(t,o)=>{const r=n.useContext(l),m=e(e({},r),t);return n.createElement(\"svg\",e({width:\"1.5em\",height:\"1.5em\",strokeWidth:1.5,viewBox:\"0 0 24 24\",fill:\"none\",xmlns:\"http://www.w3.org/2000/svg\",color:\"currentColor\",ref:o},m),n.createElement(\"path\",{d:\"M8.58737 8.23597L11.1849 3.00376C11.5183 2.33208 12.4817 2.33208 12.8151 3.00376L15.4126 8.23597L21.2215 9.08017C21.9668 9.18848 22.2638 10.0994 21.7243 10.6219L17.5217 14.6918L18.5135 20.4414C18.6409 21.1798 17.8614 21.7428 17.1945 21.3941L12 18.678L6.80547 21.3941C6.1386 21.7428 5.35909 21.1798 5.48645 20.4414L6.47825 14.6918L2.27575 10.6219C1.73617 10.0994 2.03322 9.18848 2.77852 9.08017L8.58737 8.23597Z\",stroke:\"currentColor\",strokeLinecap:\"round\",strokeLinejoin:\"round\"}))},d=c(C);var g=d;export{g as default};\n","\"use client\";var u=Object.defineProperty;var s=Object.getOwnPropertySymbols;var p=Object.prototype.hasOwnProperty,k=Object.prototype.propertyIsEnumerable;var i=(n,o,r)=>o in n?u(n,o,{enumerable:!0,configurable:!0,writable:!0,value:r}):n[o]=r,t=(n,o)=>{for(var r in o||(o={}))p.call(o,r)&&i(n,r,o[r]);if(s)for(var r of s(o))k.call(o,r)&&i(n,r,o[r]);return n};import*as e from\"react\";import{forwardRef as L}from\"react\";import{IconoirContext as c}from\"../IconoirContext.mjs\";const l=(n,o)=>{const r=e.useContext(c),d=t(t({},r),n);return e.createElement(\"svg\",t({width:\"1.5em\",height:\"1.5em\",strokeWidth:1.5,viewBox:\"0 0 24 24\",fill:\"none\",xmlns:\"http://www.w3.org/2000/svg\",color:\"currentColor\",ref:o},d),e.createElement(\"path\",{d:\"M12 18C15.3137 18 18 15.3137 18 12C18 8.68629 15.3137 6 12 6C8.68629 6 6 8.68629 6 12C6 15.3137 8.68629 18 12 18Z\",stroke:\"currentColor\",strokeLinecap:\"round\",strokeLinejoin:\"round\"}),e.createElement(\"path\",{d:\"M22 12L23 12\",stroke:\"currentColor\",strokeLinecap:\"round\",strokeLinejoin:\"round\"}),e.createElement(\"path\",{d:\"M12 2V1\",stroke:\"currentColor\",strokeLinecap:\"round\",strokeLinejoin:\"round\"}),e.createElement(\"path\",{d:\"M12 23V22\",stroke:\"currentColor\",strokeLinecap:\"round\",strokeLinejoin:\"round\"}),e.createElement(\"path\",{d:\"M20 20L19 19\",stroke:\"currentColor\",strokeLinecap:\"round\",strokeLinejoin:\"round\"}),e.createElement(\"path\",{d:\"M20 4L19 5\",stroke:\"currentColor\",strokeLinecap:\"round\",strokeLinejoin:\"round\"}),e.createElement(\"path\",{d:\"M4 20L5 19\",stroke:\"currentColor\",strokeLinecap:\"round\",strokeLinejoin:\"round\"}),e.createElement(\"path\",{d:\"M4 4L5 5\",stroke:\"currentColor\",strokeLinecap:\"round\",strokeLinejoin:\"round\"}),e.createElement(\"path\",{d:\"M1 12L2 12\",stroke:\"currentColor\",strokeLinecap:\"round\",strokeLinejoin:\"round\"}))},C=L(l);var j=C;export{j as default};\n","\"use client\";var m=Object.defineProperty;var s=Object.getOwnPropertySymbols;var c=Object.prototype.hasOwnProperty,f=Object.prototype.propertyIsEnumerable;var i=(e,o,r)=>o in e?m(e,o,{enumerable:!0,configurable:!0,writable:!0,value:r}):e[o]=r,t=(e,o)=>{for(var r in o||(o={}))c.call(o,r)&&i(e,r,o[r]);if(s)for(var r of s(o))f.call(o,r)&&i(e,r,o[r]);return e};import*as n from\"react\";import{forwardRef as d}from\"react\";import{IconoirContext as l}from\"../IconoirContext.mjs\";const u=(e,o)=>{const r=n.useContext(l),p=t(t({},r),e);return n.createElement(\"svg\",t({width:\"1.5em\",height:\"1.5em\",strokeWidth:1.5,viewBox:\"0 0 24 24\",fill:\"none\",xmlns:\"http://www.w3.org/2000/svg\",color:\"currentColor\",ref:o},p),n.createElement(\"path\",{d:\"M13 17H20\",stroke:\"currentColor\",strokeLinecap:\"round\",strokeLinejoin:\"round\"}),n.createElement(\"path\",{d:\"M5 7L10 12L5 17\",stroke:\"currentColor\",strokeLinecap:\"round\",strokeLinejoin:\"round\"}))},w=d(u);var g=w;export{g as default};\n","\"use client\";var m=Object.defineProperty;var s=Object.getOwnPropertySymbols;var c=Object.prototype.hasOwnProperty,f=Object.prototype.propertyIsEnumerable;var i=(e,o,r)=>o in e?m(e,o,{enumerable:!0,configurable:!0,writable:!0,value:r}):e[o]=r,t=(e,o)=>{for(var r in o||(o={}))c.call(o,r)&&i(e,r,o[r]);if(s)for(var r of s(o))f.call(o,r)&&i(e,r,o[r]);return e};import*as n from\"react\";import{forwardRef as d}from\"react\";import{IconoirContext as l}from\"../IconoirContext.mjs\";const u=(e,o)=>{const r=n.useContext(l),p=t(t({},r),e);return n.createElement(\"svg\",t({width:\"1.5em\",height:\"1.5em\",viewBox:\"0 0 24 24\",strokeWidth:1.5,fill:\"none\",xmlns:\"http://www.w3.org/2000/svg\",color:\"currentColor\",ref:o},p),n.createElement(\"path\",{d:\"M20 9L18.005 20.3463C17.8369 21.3026 17.0062 22 16.0353 22H7.96474C6.99379 22 6.1631 21.3026 5.99496 20.3463L4 9\",stroke:\"currentColor\",strokeLinecap:\"round\",strokeLinejoin:\"round\"}),n.createElement(\"path\",{d:\"M21 6L15.375 6M3 6L8.625 6M8.625 6V4C8.625 2.89543 9.52043 2 10.625 2H13.375C14.4796 2 15.375 2.89543 15.375 4V6M8.625 6L15.375 6\",stroke:\"currentColor\",strokeLinecap:\"round\",strokeLinejoin:\"round\"}))},C=d(u);var h=C;export{h as default};\n","\"use client\";var m=Object.defineProperty;var s=Object.getOwnPropertySymbols;var c=Object.prototype.hasOwnProperty,f=Object.prototype.propertyIsEnumerable;var i=(e,o,r)=>o in e?m(e,o,{enumerable:!0,configurable:!0,writable:!0,value:r}):e[o]=r,t=(e,o)=>{for(var r in o||(o={}))c.call(o,r)&&i(e,r,o[r]);if(s)for(var r of s(o))f.call(o,r)&&i(e,r,o[r]);return e};import*as n from\"react\";import{forwardRef as d}from\"react\";import{IconoirContext as l}from\"../IconoirContext.mjs\";const u=(e,o)=>{const r=n.useContext(l),p=t(t({},r),e);return n.createElement(\"svg\",t({width:\"1.5em\",height:\"1.5em\",strokeWidth:1.5,viewBox:\"0 0 24 24\",fill:\"none\",xmlns:\"http://www.w3.org/2000/svg\",color:\"currentColor\",ref:o},p),n.createElement(\"path\",{d:\"M6 20L18 20\",stroke:\"currentColor\",strokeLinecap:\"round\",strokeLinejoin:\"round\"}),n.createElement(\"path\",{d:\"M12 16V4M12 4L15.5 7.5M12 4L8.5 7.5\",stroke:\"currentColor\",strokeLinecap:\"round\",strokeLinejoin:\"round\"}))},w=d(u);var S=w;export{S as default};\n","\"use client\";var m=Object.defineProperty;var s=Object.getOwnPropertySymbols;var c=Object.prototype.hasOwnProperty,f=Object.prototype.propertyIsEnumerable;var i=(e,o,r)=>o in e?m(e,o,{enumerable:!0,configurable:!0,writable:!0,value:r}):e[o]=r,t=(e,o)=>{for(var r in o||(o={}))c.call(o,r)&&i(e,r,o[r]);if(s)for(var r of s(o))f.call(o,r)&&i(e,r,o[r]);return e};import*as n from\"react\";import{forwardRef as C}from\"react\";import{IconoirContext as d}from\"../IconoirContext.mjs\";const l=(e,o)=>{const r=n.useContext(d),p=t(t({},r),e);return n.createElement(\"svg\",t({width:\"1.5em\",height:\"1.5em\",strokeWidth:1.5,viewBox:\"0 0 24 24\",fill:\"none\",xmlns:\"http://www.w3.org/2000/svg\",color:\"currentColor\",ref:o},p),n.createElement(\"path\",{d:\"M5 20V19C5 15.134 8.13401 12 12 12V12C15.866 12 19 15.134 19 19V20\",stroke:\"currentColor\",strokeLinecap:\"round\",strokeLinejoin:\"round\"}),n.createElement(\"path\",{d:\"M12 12C14.2091 12 16 10.2091 16 8C16 5.79086 14.2091 4 12 4C9.79086 4 8 5.79086 8 8C8 10.2091 9.79086 12 12 12Z\",stroke:\"currentColor\",strokeLinecap:\"round\",strokeLinejoin:\"round\"}))},u=C(l);var k=u;export{k as default};\n","\"use client\";var m=Object.defineProperty;var n=Object.getOwnPropertySymbols;var V=Object.prototype.hasOwnProperty,l=Object.prototype.propertyIsEnumerable;var s=(t,o,r)=>o in t?m(t,o,{enumerable:!0,configurable:!0,writable:!0,value:r}):t[o]=r,C=(t,o)=>{for(var r in o||(o={}))V.call(o,r)&&s(t,r,o[r]);if(n)for(var r of n(o))l.call(o,r)&&s(t,r,o[r]);return t};import*as e from\"react\";import{forwardRef as f}from\"react\";import{IconoirContext as i}from\"../IconoirContext.mjs\";const c=(t,o)=>{const r=e.useContext(i),p=C(C({},r),t);return e.createElement(\"svg\",C({width:\"1.5em\",height:\"1.5em\",strokeWidth:1.5,viewBox:\"0 0 24 24\",fill:\"none\",xmlns:\"http://www.w3.org/2000/svg\",color:\"currentColor\",ref:o},p),e.createElement(\"path\",{d:\"M14 20.4V14.6C14 14.2686 14.2686 14 14.6 14H20.4C20.7314 14 21 14.2686 21 14.6V20.4C21 20.7314 20.7314 21 20.4 21H14.6C14.2686 21 14 20.7314 14 20.4Z\",stroke:\"currentColor\"}),e.createElement(\"path\",{d:\"M3 20.4V14.6C3 14.2686 3.26863 14 3.6 14H9.4C9.73137 14 10 14.2686 10 14.6V20.4C10 20.7314 9.73137 21 9.4 21H3.6C3.26863 21 3 20.7314 3 20.4Z\",stroke:\"currentColor\"}),e.createElement(\"path\",{d:\"M14 9.4V3.6C14 3.26863 14.2686 3 14.6 3H20.4C20.7314 3 21 3.26863 21 3.6V9.4C21 9.73137 20.7314 10 20.4 10H14.6C14.2686 10 14 9.73137 14 9.4Z\",stroke:\"currentColor\"}),e.createElement(\"path\",{d:\"M3 9.4V3.6C3 3.26863 3.26863 3 3.6 3H9.4C9.73137 3 10 3.26863 10 3.6V9.4C10 9.73137 9.73137 10 9.4 10H3.6C3.26863 10 3 9.73137 3 9.4Z\",stroke:\"currentColor\"}))},d=f(c);var S=d;export{S as default};\n","\"use client\";var m=Object.defineProperty;var s=Object.getOwnPropertySymbols;var c=Object.prototype.hasOwnProperty,d=Object.prototype.propertyIsEnumerable;var p=(t,o,r)=>o in t?m(t,o,{enumerable:!0,configurable:!0,writable:!0,value:r}):t[o]=r,n=(t,o)=>{for(var r in o||(o={}))c.call(o,r)&&p(t,r,o[r]);if(s)for(var r of s(o))d.call(o,r)&&p(t,r,o[r]);return t};import*as e from\"react\";import{forwardRef as f}from\"react\";import{IconoirContext as l}from\"../IconoirContext.mjs\";const u=(t,o)=>{const r=e.useContext(l),i=n(n({},r),t);return e.createElement(\"svg\",n({width:\"1.5em\",height:\"1.5em\",strokeWidth:1.5,viewBox:\"0 0 24 24\",fill:\"none\",xmlns:\"http://www.w3.org/2000/svg\",color:\"currentColor\",ref:o},i),e.createElement(\"path\",{d:\"M20.0429 21H3.95705C2.41902 21 1.45658 19.3364 2.22324 18.0031L10.2662 4.01533C11.0352 2.67792 12.9648 2.67791 13.7338 4.01532L21.7768 18.0031C22.5434 19.3364 21.581 21 20.0429 21Z\",stroke:\"currentColor\",strokeLinecap:\"round\"}),e.createElement(\"path\",{d:\"M12 9V13\",stroke:\"currentColor\",strokeLinecap:\"round\"}),e.createElement(\"path\",{d:\"M12 17.01L12.01 16.9989\",stroke:\"currentColor\",strokeLinecap:\"round\",strokeLinejoin:\"round\"}))},C=f(u);var L=C;export{L as default};\n","\"use client\";var m=Object.defineProperty;var s=Object.getOwnPropertySymbols;var c=Object.prototype.hasOwnProperty,f=Object.prototype.propertyIsEnumerable;var i=(e,o,r)=>o in e?m(e,o,{enumerable:!0,configurable:!0,writable:!0,value:r}):e[o]=r,t=(e,o)=>{for(var r in o||(o={}))c.call(o,r)&&i(e,r,o[r]);if(s)for(var r of s(o))f.call(o,r)&&i(e,r,o[r]);return e};import*as n from\"react\";import{forwardRef as d}from\"react\";import{IconoirContext as l}from\"../IconoirContext.mjs\";const u=(e,o)=>{const r=n.useContext(l),p=t(t({},r),e);return n.createElement(\"svg\",t({width:\"1.5em\",height:\"1.5em\",strokeWidth:1.5,viewBox:\"0 0 24 24\",fill:\"none\",xmlns:\"http://www.w3.org/2000/svg\",color:\"currentColor\",ref:o},p),n.createElement(\"path\",{d:\"M9.17218 14.8284L12.0006 12M14.829 9.17157L12.0006 12M12.0006 12L9.17218 9.17157M12.0006 12L14.829 14.8284\",stroke:\"currentColor\",strokeLinecap:\"round\",strokeLinejoin:\"round\"}),n.createElement(\"path\",{d:\"M12 22C17.5228 22 22 17.5228 22 12C22 6.47715 17.5228 2 12 2C6.47715 2 2 6.47715 2 12C2 17.5228 6.47715 22 12 22Z\",stroke:\"currentColor\",strokeLinecap:\"round\",strokeLinejoin:\"round\"}))},C=d(u);var k=C;export{k as default};\n","\"use client\";var p=Object.defineProperty;var s=Object.getOwnPropertySymbols;var f=Object.prototype.hasOwnProperty,c=Object.prototype.propertyIsEnumerable;var i=(t,o,r)=>o in t?p(t,o,{enumerable:!0,configurable:!0,writable:!0,value:r}):t[o]=r,e=(t,o)=>{for(var r in o||(o={}))f.call(o,r)&&i(t,r,o[r]);if(s)for(var r of s(o))c.call(o,r)&&i(t,r,o[r]);return t};import*as n from\"react\";import{forwardRef as l}from\"react\";import{IconoirContext as d}from\"../IconoirContext.mjs\";const u=(t,o)=>{const r=n.useContext(d),m=e(e({},r),t);return n.createElement(\"svg\",e({width:\"1.5em\",height:\"1.5em\",strokeWidth:1.5,viewBox:\"0 0 24 24\",fill:\"none\",xmlns:\"http://www.w3.org/2000/svg\",color:\"currentColor\",ref:o},m),n.createElement(\"path\",{d:\"M6.75827 17.2426L12.0009 12M17.2435 6.75736L12.0009 12M12.0009 12L6.75827 6.75736M12.0009 12L17.2435 17.2426\",stroke:\"currentColor\",strokeLinecap:\"round\",strokeLinejoin:\"round\"}))},w=l(u);var x=w;export{x as default};\n","import { type ComponentType, type SVGProps } from 'react'\nimport {\n ArrowRight,\n ArrowLeft,\n ArrowUp,\n ArrowDown,\n NavArrowRight,\n NavArrowLeft,\n NavArrowDown,\n NavArrowUp,\n Check,\n Xmark,\n Copy,\n Search,\n Menu,\n SunLight,\n HalfMoon,\n ArrowUpRight,\n Github,\n Terminal,\n Code,\n Sparks,\n Plus,\n Minus,\n Settings,\n User,\n Heart,\n Star,\n Mail,\n Calendar,\n Clock,\n Bell,\n Home,\n Folder,\n Page,\n Trash,\n EditPencil,\n Eye,\n EyeClosed,\n Lock,\n LockSlash,\n Link,\n OpenInWindow,\n Download,\n Upload,\n RefreshDouble,\n Filter,\n SortDown,\n ViewGrid,\n List,\n MoreHoriz,\n MoreVert,\n InfoCircle,\n WarningTriangle,\n CheckCircle,\n XmarkCircle,\n} from 'iconoir-react'\nimport { cn } from '../../utils/cn'\n\n// Map of icon names to Iconoir components\nconst iconComponents = {\n 'arrow-right': ArrowRight,\n 'arrow-left': ArrowLeft,\n 'arrow-up': ArrowUp,\n 'arrow-down': ArrowDown,\n 'chevron-right': NavArrowRight,\n 'chevron-left': NavArrowLeft,\n 'chevron-down': NavArrowDown,\n 'chevron-up': NavArrowUp,\n check: Check,\n x: Xmark,\n copy: Copy,\n search: Search,\n menu: Menu,\n sun: SunLight,\n moon: HalfMoon,\n external: ArrowUpRight,\n github: Github,\n terminal: Terminal,\n code: Code,\n sparkles: Sparks,\n plus: Plus,\n minus: Minus,\n settings: Settings,\n user: User,\n heart: Heart,\n star: Star,\n mail: Mail,\n calendar: Calendar,\n clock: Clock,\n bell: Bell,\n home: Home,\n folder: Folder,\n file: Page,\n trash: Trash,\n edit: EditPencil,\n eye: Eye,\n 'eye-off': EyeClosed,\n lock: Lock,\n unlock: LockSlash,\n link: Link,\n 'external-link': OpenInWindow,\n download: Download,\n upload: Upload,\n refresh: RefreshDouble,\n filter: Filter,\n sort: SortDown,\n grid: ViewGrid,\n list: List,\n 'more-horizontal': MoreHoriz,\n 'more-vertical': MoreVert,\n info: InfoCircle,\n warning: WarningTriangle,\n success: CheckCircle,\n error: XmarkCircle,\n} as const\n\nexport type IconName = keyof typeof iconComponents\n\nexport interface IconProps extends Omit<SVGProps<SVGSVGElement>, 'ref'> {\n name: IconName\n size?: 'xs' | 'sm' | 'md' | 'lg' | 'xl' | number\n}\n\nconst sizeClasses = {\n xs: 'w-3 h-3',\n sm: 'w-4 h-4',\n md: 'w-5 h-5',\n lg: 'w-6 h-6',\n xl: 'w-8 h-8',\n}\n\nconst sizePixels = {\n xs: 12,\n sm: 16,\n md: 20,\n lg: 24,\n xl: 32,\n}\n\nexport function Icon({ name, size = 'md', className, ...props }: IconProps) {\n const IconComponent = iconComponents[name] as ComponentType<SVGProps<SVGSVGElement>>\n\n if (!IconComponent) {\n console.warn(`Icon \"${name}\" not found`)\n return null\n }\n\n const isNumericSize = typeof size === 'number'\n const pixelSize = isNumericSize ? size : sizePixels[size]\n\n return (\n <IconComponent\n width={pixelSize}\n height={pixelSize}\n strokeWidth={1.5}\n className={cn(!isNumericSize && sizeClasses[size], className)}\n aria-hidden=\"true\"\n {...props}\n />\n )\n}\n\n// Re-export all iconoir icons for direct use\nexport * from 'iconoir-react'\n","import { type HTMLAttributes } from 'react'\nimport { cn } from '../../utils/cn'\n\nexport interface NoiseOverlayProps extends HTMLAttributes<HTMLDivElement> {\n /** Opacity of the noise texture (0-1) */\n opacity?: number\n /** Whether to use a fixed position overlay */\n fixed?: boolean\n}\n\nconst noiseSvg = `url(\"data:image/svg+xml,%3Csvg viewBox='0 0 256 256' xmlns='http://www.w3.org/2000/svg'%3E%3Cfilter id='noise'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='0.8' numOctaves='4' stitchTiles='stitch'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23noise)'/%3E%3C/svg%3E\")`\n\nexport function NoiseOverlay({\n opacity = 0.03,\n fixed = true,\n className,\n style,\n ...props\n}: NoiseOverlayProps) {\n return (\n <div\n className={cn(\n 'inset-0 pointer-events-none z-50',\n fixed ? 'fixed' : 'absolute',\n className\n )}\n style={{\n backgroundImage: noiseSvg,\n opacity,\n ...style,\n }}\n aria-hidden=\"true\"\n {...props}\n />\n )\n}\n","import { type HTMLAttributes } from 'react'\nimport { cn } from '../../utils/cn'\n\nexport interface ScrollIndicatorProps extends HTMLAttributes<HTMLDivElement> {\n /** Label text next to the indicator */\n label?: string\n /** Size of the icon */\n size?: 'sm' | 'md' | 'lg'\n /** Position of the indicator */\n position?: 'bottom-left' | 'bottom-center' | 'bottom-right'\n}\n\nconst sizeMap = {\n sm: { icon: 12, text: 'text-[10px]' },\n md: { icon: 16, text: 'text-xs' },\n lg: { icon: 20, text: 'text-sm' },\n}\n\nconst positionMap = {\n 'bottom-left': 'bottom-8 left-6 md:left-12',\n 'bottom-center': 'bottom-8 left-1/2 -translate-x-1/2',\n 'bottom-right': 'bottom-8 right-6 md:right-12',\n}\n\nexport function ScrollIndicator({\n label = 'Scroll',\n size = 'md',\n position = 'bottom-left',\n className,\n ...props\n}: ScrollIndicatorProps) {\n const { icon, text } = sizeMap[size]\n\n return (\n <div\n className={cn(\n 'absolute flex items-center gap-3 text-current opacity-60',\n positionMap[position],\n className\n )}\n {...props}\n >\n <svg\n width={icon}\n height={icon * 1.5}\n viewBox=\"0 0 16 24\"\n fill=\"none\"\n stroke=\"currentColor\"\n strokeWidth=\"1.5\"\n className=\"animate-bounce\"\n >\n <path d=\"M8 4v16M4 16l4 4 4-4\" />\n </svg>\n {label && (\n <span className={cn('font-mono uppercase tracking-wider', text)}>\n {label}\n </span>\n )}\n </div>\n )\n}\n","import { type SVGProps } from 'react'\nimport { cn } from '../../utils/cn'\n\nexport interface HamburgerIconProps extends SVGProps<SVGSVGElement> {\n /** Whether the menu is open (shows X) or closed (shows hamburger) */\n isOpen: boolean\n /** Size of the icon */\n size?: number\n}\n\nexport function HamburgerIcon({\n isOpen,\n size = 24,\n className,\n ...props\n}: HamburgerIconProps) {\n return (\n <svg\n xmlns=\"http://www.w3.org/2000/svg\"\n width={size}\n height={size}\n viewBox=\"0 0 24 24\"\n fill=\"none\"\n stroke=\"currentColor\"\n strokeWidth=\"2\"\n strokeLinecap=\"round\"\n strokeLinejoin=\"round\"\n className={cn('transition-transform duration-300', className)}\n aria-hidden=\"true\"\n {...props}\n >\n <path\n d={isOpen ? 'M18 6L6 18' : 'M4 6h16'}\n className=\"origin-center transition-all duration-300\"\n />\n <path\n d={isOpen ? 'M6 6l12 12' : 'M4 12h16'}\n className={cn(\n 'origin-center transition-all duration-300',\n isOpen && 'opacity-0'\n )}\n />\n {!isOpen && <path d=\"M4 18h16\" />}\n </svg>\n )\n}\n","import { type HTMLAttributes, type ReactNode } from 'react'\nimport { cn } from '../../utils/cn'\n\nexport interface AnimatedTextProps extends HTMLAttributes<HTMLElement> {\n /** Text content or children */\n children: ReactNode\n /** Animation type */\n animation?: 'fade-up' | 'fade-in' | 'slide-up' | 'blur-in'\n /** Delay before animation starts (ms) */\n delay?: number\n /** Duration of animation (ms) */\n duration?: number\n /** HTML tag to render */\n as?: 'span' | 'p' | 'h1' | 'h2' | 'h3' | 'h4' | 'h5' | 'h6' | 'div'\n /** Whether to animate on scroll into view */\n animateOnScroll?: boolean\n}\n\nconst animationStyles = {\n 'fade-up': {\n initial: 'opacity-0 translate-y-8',\n animate: 'opacity-100 translate-y-0',\n },\n 'fade-in': {\n initial: 'opacity-0',\n animate: 'opacity-100',\n },\n 'slide-up': {\n initial: 'opacity-0 translate-y-full',\n animate: 'opacity-100 translate-y-0',\n },\n 'blur-in': {\n initial: 'opacity-0 blur-sm',\n animate: 'opacity-100 blur-0',\n },\n}\n\nexport function AnimatedText({\n children,\n animation = 'fade-up',\n delay = 0,\n duration = 600,\n as: Component = 'span',\n animateOnScroll = true,\n className,\n style,\n ...props\n}: AnimatedTextProps) {\n const { initial } = animationStyles[animation]\n\n // CSS-only animation using animation-timeline for scroll-based\n // Falls back to immediate animation if not supported\n const animationStyle = {\n '--animation-delay': `${delay}ms`,\n '--animation-duration': `${duration}ms`,\n ...style,\n } as React.CSSProperties\n\n return (\n <Component\n className={cn(\n 'transition-all ease-out',\n animateOnScroll ? 'motion-safe:animate-fade-up' : '',\n // Fallback for reduced motion\n 'motion-reduce:opacity-100 motion-reduce:translate-y-0 motion-reduce:blur-0',\n initial,\n // Apply animate class after mount via CSS animation\n '[animation-fill-mode:forwards]',\n className\n )}\n style={{\n transitionDuration: `${duration}ms`,\n transitionDelay: `${delay}ms`,\n animationDelay: `${delay}ms`,\n animationDuration: `${duration}ms`,\n ...animationStyle,\n }}\n {...props}\n >\n {children}\n </Component>\n )\n}\n","import { useMemo } from 'react'\nimport { cn } from '../../utils/cn'\n\nexport interface CodeBlockProps {\n /** Code string to display */\n code: string\n /** Programming language for syntax highlighting */\n language?: 'javascript' | 'typescript' | 'json' | 'bash' | 'css'\n /** Show line numbers */\n showLineNumbers?: boolean\n /** Additional class names */\n className?: string\n}\n\ninterface Token {\n type:\n | 'keyword'\n | 'string'\n | 'number'\n | 'comment'\n | 'property'\n | 'punctuation'\n | 'text'\n value: string\n}\n\nconst COLORS = {\n keyword: 'var(--color-coral)',\n string: 'var(--color-mint)',\n number: 'var(--color-gold)',\n comment: 'var(--color-grey-500)',\n property: 'var(--color-sage)',\n punctuation: 'var(--color-grey-400)',\n text: 'var(--color-grey-200)',\n}\n\nfunction tokenize(code: string): Token[] {\n const tokens: Token[] = []\n let remaining = code\n\n const patterns: [RegExp, Token['type']][] = [\n [/^\\/\\/.*$/m, 'comment'],\n [/^\\/\\*[\\s\\S]*?\\*\\//, 'comment'],\n [/^#.*$/m, 'comment'], // bash comments\n [/^'[^']*'/, 'string'],\n [/^\"[^\"]*\"/, 'string'],\n [/^`[^`]*`/, 'string'],\n [\n /^\\b(const|let|var|function|return|if|else|for|while|import|export|from|default|class|extends|new|this|true|false|null|undefined|async|await|try|catch|throw|finally|typeof|instanceof|in|of|yield|switch|case|break|continue|do|with|debugger|delete|void)\\b/,\n 'keyword',\n ],\n [/^\\b\\d+(\\.\\d+)?\\b/, 'number'],\n [/^[a-zA-Z_][a-zA-Z0-9_]*(?=\\s*:)/, 'property'],\n [/^[{}[\\](),;:=<>!&|?+\\-*/%^~]/, 'punctuation'],\n [/^\\s+/, 'text'],\n [/^[^\\s{}[\\](),;:'\"`=<>!&|?+\\-*/%^~]+/, 'text'],\n ]\n\n while (remaining.length > 0) {\n let matched = false\n\n for (const [pattern, type] of patterns) {\n const match = remaining.match(pattern)\n if (match) {\n tokens.push({ type, value: match[0] })\n remaining = remaining.slice(match[0].length)\n matched = true\n break\n }\n }\n\n if (!matched) {\n tokens.push({ type: 'text', value: remaining[0] })\n remaining = remaining.slice(1)\n }\n }\n\n return tokens\n}\n\n/**\n * Lightweight syntax highlighting code block\n * No external dependencies, uses CSS custom properties for theming\n */\nexport function CodeBlock({\n code,\n language: _language = 'javascript',\n showLineNumbers = false,\n className,\n}: CodeBlockProps) {\n const tokens = useMemo(() => tokenize(code), [code])\n const lines = useMemo(() => code.split('\\n'), [code])\n\n return (\n <pre\n className={cn(\n 'text-sm font-mono whitespace-pre overflow-x-auto',\n 'bg-[var(--glass-bg)] rounded-lg p-4',\n 'border border-[var(--glass-border)]',\n className\n )}\n style={{ color: 'var(--color-grey-200)' }}\n >\n <code className={showLineNumbers ? 'flex' : undefined}>\n {showLineNumbers && (\n <span className=\"select-none pr-4 text-[var(--color-grey-600)] border-r border-[var(--glass-border)] mr-4\">\n {lines.map((_, i) => (\n <span key={i} className=\"block\">\n {i + 1}\n </span>\n ))}\n </span>\n )}\n <span className={showLineNumbers ? 'flex-1' : undefined}>\n {tokens.map((token, i) => (\n <span key={i} style={{ color: COLORS[token.type] }}>\n {token.value}\n </span>\n ))}\n </span>\n </code>\n </pre>\n )\n}\n","import { type HTMLAttributes } from 'react'\nimport { cn } from '../../utils/cn'\n\nexport interface SkeletonProps extends HTMLAttributes<HTMLDivElement> {\n /** Skeleton variant */\n variant?: 'text' | 'circular' | 'rectangular'\n /** Width of the skeleton */\n width?: string | number\n /** Height of the skeleton */\n height?: string | number\n /** Enable shimmer animation */\n animate?: boolean\n}\n\n/**\n * Skeleton loading placeholder\n * Uses CSS custom properties for consistent theming\n */\nexport function Skeleton({\n variant = 'text',\n width,\n height,\n animate = true,\n className,\n style,\n ...props\n}: SkeletonProps) {\n const baseStyles = [\n 'bg-[var(--glass-highlight)]',\n animate && 'animate-pulse',\n ]\n\n const variants = {\n text: 'rounded h-4',\n circular: 'rounded-full',\n rectangular: 'rounded-lg',\n }\n\n return (\n <div\n className={cn(baseStyles, variants[variant], className)}\n style={{\n width: typeof width === 'number' ? `${width}px` : width,\n height: typeof height === 'number' ? `${height}px` : height,\n ...style,\n }}\n {...props}\n />\n )\n}\n\nexport interface CardSkeletonProps extends HTMLAttributes<HTMLDivElement> {\n /** Number of text lines to show */\n lines?: number\n /** Show header indicator */\n showHeader?: boolean\n /** Show tags row */\n showTags?: boolean\n}\n\n/**\n * Pre-composed card skeleton for common use cases\n */\nexport function CardSkeleton({\n lines = 2,\n showHeader = true,\n showTags = true,\n className,\n ...props\n}: CardSkeletonProps) {\n return (\n <div\n className={cn(\n 'p-5 md:p-6 rounded-2xl border',\n 'bg-[var(--glass-bg)] border-[var(--glass-border)]',\n className\n )}\n {...props}\n >\n {showHeader && (\n <div className=\"mb-3 md:mb-4\">\n <Skeleton variant=\"circular\" width={12} height={12} />\n </div>\n )}\n\n <Skeleton width=\"70%\" height={20} className=\"mb-2\" />\n\n <div className=\"space-y-2 mb-3 md:mb-4\">\n {Array.from({ length: lines }).map((_, i) => (\n <Skeleton\n key={i}\n width={i === lines - 1 ? '85%' : '100%'}\n height={14}\n className=\"bg-[var(--glass-bg)]\"\n />\n ))}\n </div>\n\n {showTags && (\n <div className=\"flex flex-wrap gap-2\">\n {[50, 60, 70].map((width, i) => (\n <Skeleton\n key={i}\n width={width}\n height={12}\n className=\"bg-[var(--glass-bg)]\"\n />\n ))}\n </div>\n )}\n </div>\n )\n}\n","/**\n * SVG pattern generators for shapes\n * Returns pattern definition and pattern ID for use in fills\n */\n\nexport type PatternType = 'solid' | 'checkered' | 'striped' | 'dotted'\n\nexport interface PatternConfig {\n type: PatternType\n colors: string[]\n scale?: number\n angle?: number\n}\n\nlet patternCounter = 0\n\nexport function generatePatternId(): string {\n return `pattern-${++patternCounter}-${Date.now()}`\n}\n\nexport function generateCheckeredPattern(\n id: string,\n colors: [string, string],\n scale: number = 1\n): string {\n const size = 10 * scale\n const half = size / 2\n return `\n <pattern id=\"${id}\" patternUnits=\"userSpaceOnUse\" width=\"${size}\" height=\"${size}\">\n <rect width=\"${half}\" height=\"${half}\" fill=\"${colors[0]}\"/>\n <rect x=\"${half}\" y=\"${half}\" width=\"${half}\" height=\"${half}\" fill=\"${colors[0]}\"/>\n <rect x=\"${half}\" width=\"${half}\" height=\"${half}\" fill=\"${colors[1]}\"/>\n <rect y=\"${half}\" width=\"${half}\" height=\"${half}\" fill=\"${colors[1]}\"/>\n </pattern>\n `\n}\n\nexport function generateStripedPattern(\n id: string,\n colors: string[],\n scale: number = 1,\n angle: number = 45\n): string {\n const stripeWidth = 4 * scale\n const totalWidth = stripeWidth * colors.length\n const stripes = colors\n .map(\n (color, i) =>\n `<rect x=\"${i * stripeWidth}\" width=\"${stripeWidth}\" height=\"${totalWidth}\" fill=\"${color}\"/>`\n )\n .join('')\n return `\n <pattern id=\"${id}\" patternUnits=\"userSpaceOnUse\" width=\"${totalWidth}\" height=\"${totalWidth}\" patternTransform=\"rotate(${angle})\">\n ${stripes}\n </pattern>\n `\n}\n\nexport function generateDottedPattern(\n id: string,\n bgColor: string,\n dotColor: string,\n scale: number = 1\n): string {\n const size = 8 * scale\n const radius = 1.5 * scale\n return `\n <pattern id=\"${id}\" patternUnits=\"userSpaceOnUse\" width=\"${size}\" height=\"${size}\">\n <rect width=\"${size}\" height=\"${size}\" fill=\"${bgColor}\"/>\n <circle cx=\"${size / 2}\" cy=\"${size / 2}\" r=\"${radius}\" fill=\"${dotColor}\"/>\n </pattern>\n `\n}\n\nexport function generatePattern(config: PatternConfig): { defs: string; fill: string } | null {\n if (config.type === 'solid' || config.colors.length === 0) {\n return null\n }\n\n const id = generatePatternId()\n const scale = config.scale ?? 1\n\n switch (config.type) {\n case 'checkered':\n return {\n defs: generateCheckeredPattern(id, [config.colors[0], config.colors[1] || config.colors[0]], scale),\n fill: `url(#${id})`,\n }\n case 'striped':\n return {\n defs: generateStripedPattern(id, config.colors, scale, config.angle ?? 45),\n fill: `url(#${id})`,\n }\n case 'dotted':\n return {\n defs: generateDottedPattern(id, config.colors[0], config.colors[1] || '#fff', scale),\n fill: `url(#${id})`,\n }\n default:\n return null\n }\n}\n","import { cn } from '../../utils/cn'\nimport { generatePattern, PatternType } from './patterns'\n\nexport type ShapeType =\n | 'circle'\n | 'square'\n | 'triangle'\n | 'diamond'\n | 'hexagon'\n | 'semicircle'\n | 'arc'\n | 'pill'\n | 'star'\n\nexport type ResponsiveSize = {\n base?: number | { width: number; height: number }\n sm?: number | { width: number; height: number }\n md?: number | { width: number; height: number }\n lg?: number | { width: number; height: number }\n}\n\nexport interface ShapeProps {\n type: ShapeType\n /**\n * Size of the shape. Can be:\n * - A number (same width/height)\n * - An object { width, height }\n * - A responsive object { base, sm, md, lg }\n */\n size?: number | { width: number; height: number } | ResponsiveSize\n color?: string\n pattern?: PatternType\n patternColors?: string[]\n patternScale?: number\n patternAngle?: number\n rotation?: number\n opacity?: number\n className?: string\n style?: React.CSSProperties\n /** Disable animations when user prefers reduced motion (handled via CSS) */\n 'aria-hidden'?: boolean\n}\n\nfunction getShapePath(type: ShapeType): string {\n switch (type) {\n case 'circle':\n return ''\n case 'square':\n return ''\n case 'triangle':\n return 'M12 2L22 20H2L12 2Z'\n case 'diamond':\n return 'M12 1L23 12L12 23L1 12L12 1Z'\n case 'hexagon':\n return 'M12 2L21.5 7V17L12 22L2.5 17V7L12 2Z'\n case 'semicircle':\n return 'M2 12A10 10 0 0 1 22 12Z'\n case 'arc':\n return 'M4 20A12 12 0 0 1 20 20'\n case 'pill':\n return ''\n case 'star':\n return 'M12 2L14.5 8.5L21.5 9L16.5 13.5L18 21L12 17L6 21L7.5 13.5L2.5 9L9.5 8.5L12 2Z'\n default:\n return ''\n }\n}\n\n// Check if size is a responsive object\nfunction isResponsiveSize(size: ShapeProps['size']): size is ResponsiveSize {\n return (\n typeof size === 'object' &&\n size !== null &&\n ('base' in size || 'sm' in size || 'md' in size || 'lg' in size)\n )\n}\n\nexport function Shape({\n type,\n size = 48,\n color = 'currentColor',\n pattern = 'solid',\n patternColors,\n patternScale = 1,\n patternAngle = 45,\n rotation = 0,\n opacity = 1,\n className,\n style,\n 'aria-hidden': ariaHidden = true,\n}: ShapeProps) {\n // Handle responsive sizes by computing base size\n // CSS custom properties will handle the responsive scaling\n let computedSize: number | { width: number; height: number }\n\n if (isResponsiveSize(size)) {\n // Use base size or fallback to first defined breakpoint\n computedSize = size.base ?? size.sm ?? size.md ?? size.lg ?? 48\n } else {\n computedSize = size\n }\n\n const width = typeof computedSize === 'number' ? computedSize : computedSize.width\n const height = typeof computedSize === 'number' ? computedSize : computedSize.height\n\n // Generate responsive CSS custom properties\n const responsiveStyles: Record<string, string> = {}\n if (isResponsiveSize(size)) {\n const getSize = (s: number | { width: number; height: number } | undefined) => {\n if (!s) return undefined\n return typeof s === 'number' ? s : s.width\n }\n\n if (size.base) responsiveStyles['--shape-size-base'] = `${getSize(size.base)}px`\n if (size.sm) responsiveStyles['--shape-size-sm'] = `${getSize(size.sm)}px`\n if (size.md) responsiveStyles['--shape-size-md'] = `${getSize(size.md)}px`\n if (size.lg) responsiveStyles['--shape-size-lg'] = `${getSize(size.lg)}px`\n }\n\n const patternResult =\n pattern !== 'solid' && patternColors\n ? generatePattern({\n type: pattern,\n colors: patternColors,\n scale: patternScale,\n angle: patternAngle,\n })\n : null\n\n const fill = patternResult?.fill ?? color\n\n const renderShape = () => {\n switch (type) {\n case 'circle':\n return <circle cx=\"12\" cy=\"12\" r=\"10\" fill={fill} />\n case 'square':\n return <rect x=\"2\" y=\"2\" width=\"20\" height=\"20\" rx=\"2\" fill={fill} />\n case 'pill':\n return <rect x=\"2\" y=\"6\" width=\"20\" height=\"12\" rx=\"6\" fill={fill} />\n case 'arc':\n return (\n <path\n d=\"M4 20A12 12 0 0 1 20 20\"\n fill=\"none\"\n stroke={fill}\n strokeWidth=\"4\"\n strokeLinecap=\"round\"\n />\n )\n default: {\n const path = getShapePath(type)\n return path ? <path d={path} fill={fill} /> : null\n }\n }\n }\n\n // Determine if we need responsive class\n const responsiveClass = isResponsiveSize(size) ? 'shape-responsive' : ''\n\n return (\n <svg\n viewBox=\"0 0 24 24\"\n width={width}\n height={height}\n className={cn('shape', responsiveClass, className)}\n style={{\n transform: rotation ? `rotate(${rotation}deg)` : undefined,\n opacity,\n ...responsiveStyles,\n ...style,\n }}\n aria-hidden={ariaHidden}\n focusable=\"false\"\n >\n {patternResult && (\n <defs dangerouslySetInnerHTML={{ __html: patternResult.defs }} />\n )}\n {renderShape()}\n </svg>\n )\n}\n","import { cn } from '../../utils/cn'\n\nexport type Expression =\n | 'happy'\n | 'wink'\n | 'surprised'\n | 'excited'\n | 'thinking'\n | 'cool'\n | 'sleepy'\n | 'love'\n\nexport type Accessory = 'none' | 'glasses' | 'hat' | 'flower' | 'bowtie'\n\nexport interface CharacterProps {\n expression?: Expression\n size?: number\n color?: string\n featureColor?: string\n accessory?: Accessory\n accessoryColor?: string\n animate?: boolean\n className?: string\n style?: React.CSSProperties\n}\n\nfunction renderEyes(expression: Expression, featureColor: string) {\n switch (expression) {\n case 'happy':\n return (\n <>\n <circle cx=\"9\" cy=\"10\" r=\"1.5\" fill={featureColor} />\n <circle cx=\"15\" cy=\"10\" r=\"1.5\" fill={featureColor} />\n </>\n )\n case 'wink':\n return (\n <>\n <circle cx=\"9\" cy=\"10\" r=\"1.5\" fill={featureColor} />\n <path d=\"M13.5 10.5L16.5 9.5\" stroke={featureColor} strokeWidth=\"1.5\" strokeLinecap=\"round\" />\n </>\n )\n case 'surprised':\n return (\n <>\n <circle cx=\"9\" cy=\"10\" r=\"2\" fill={featureColor} />\n <circle cx=\"15\" cy=\"10\" r=\"2\" fill={featureColor} />\n </>\n )\n case 'excited':\n return (\n <>\n <path d=\"M7 9L11 11\" stroke={featureColor} strokeWidth=\"1.5\" strokeLinecap=\"round\" />\n <path d=\"M17 9L13 11\" stroke={featureColor} strokeWidth=\"1.5\" strokeLinecap=\"round\" />\n </>\n )\n case 'thinking':\n return (\n <>\n <circle cx=\"9\" cy=\"10\" r=\"1.5\" fill={featureColor} />\n <circle cx=\"15\" cy=\"11\" r=\"1.5\" fill={featureColor} />\n </>\n )\n case 'cool':\n return null // Glasses cover eyes\n case 'sleepy':\n return (\n <>\n <path d=\"M7 10H11\" stroke={featureColor} strokeWidth=\"1.5\" strokeLinecap=\"round\" />\n <path d=\"M13 10H17\" stroke={featureColor} strokeWidth=\"1.5\" strokeLinecap=\"round\" />\n </>\n )\n case 'love':\n return (\n <>\n <path d=\"M7.5 9.5C7.5 8.5 8.5 8 9 8.5C9.5 8 10.5 8.5 10.5 9.5C10.5 10.5 9 12 9 12C9 12 7.5 10.5 7.5 9.5Z\" fill=\"#FF6B9D\" />\n <path d=\"M13.5 9.5C13.5 8.5 14.5 8 15 8.5C15.5 8 16.5 8.5 16.5 9.5C16.5 10.5 15 12 15 12C15 12 13.5 10.5 13.5 9.5Z\" fill=\"#FF6B9D\" />\n </>\n )\n default:\n return (\n <>\n <circle cx=\"9\" cy=\"10\" r=\"1.5\" fill={featureColor} />\n <circle cx=\"15\" cy=\"10\" r=\"1.5\" fill={featureColor} />\n </>\n )\n }\n}\n\nfunction renderMouth(expression: Expression, featureColor: string) {\n switch (expression) {\n case 'happy':\n case 'wink':\n return (\n <path d=\"M8 14C8 14 10 16 12 16C14 16 16 14 16 14\" stroke={featureColor} strokeWidth=\"1.5\" strokeLinecap=\"round\" fill=\"none\" />\n )\n case 'surprised':\n return <circle cx=\"12\" cy=\"15\" r=\"2\" fill={featureColor} />\n case 'excited':\n return (\n <path d=\"M8 13C8 13 10 17 12 17C14 17 16 13 16 13\" stroke={featureColor} strokeWidth=\"1.5\" strokeLinecap=\"round\" fill=\"none\" />\n )\n case 'thinking':\n return (\n <path d=\"M10 15L14 14\" stroke={featureColor} strokeWidth=\"1.5\" strokeLinecap=\"round\" />\n )\n case 'cool':\n return (\n <path d=\"M9 14C9 14 10.5 15.5 12 15.5C13.5 15.5 15 14 15 14\" stroke={featureColor} strokeWidth=\"1.5\" strokeLinecap=\"round\" fill=\"none\" />\n )\n case 'sleepy':\n return (\n <path d=\"M10 15L14 15\" stroke={featureColor} strokeWidth=\"1.5\" strokeLinecap=\"round\" />\n )\n case 'love':\n return (\n <path d=\"M8 14C8 14 10 16 12 16C14 16 16 14 16 14\" stroke={featureColor} strokeWidth=\"1.5\" strokeLinecap=\"round\" fill=\"none\" />\n )\n default:\n return (\n <path d=\"M8 14C8 14 10 16 12 16C14 16 16 14 16 14\" stroke={featureColor} strokeWidth=\"1.5\" strokeLinecap=\"round\" fill=\"none\" />\n )\n }\n}\n\nfunction renderAccessory(accessory: Accessory, accessoryColor: string, featureColor: string) {\n switch (accessory) {\n case 'glasses':\n return (\n <g>\n <circle cx=\"9\" cy=\"10\" r=\"3\" fill=\"none\" stroke={featureColor} strokeWidth=\"1.5\" />\n <circle cx=\"15\" cy=\"10\" r=\"3\" fill=\"none\" stroke={featureColor} strokeWidth=\"1.5\" />\n <path d=\"M12 10H12\" stroke={featureColor} strokeWidth=\"1.5\" />\n <path d=\"M6 10H6\" stroke={featureColor} strokeWidth=\"1.5\" />\n <path d=\"M18 10H18\" stroke={featureColor} strokeWidth=\"1.5\" />\n </g>\n )\n case 'hat':\n return (\n <g>\n <rect x=\"6\" y=\"1\" width=\"12\" height=\"3\" rx=\"1\" fill={accessoryColor} />\n <rect x=\"8\" y=\"-2\" width=\"8\" height=\"4\" rx=\"1\" fill={accessoryColor} />\n </g>\n )\n case 'flower':\n return (\n <g transform=\"translate(16, 2)\">\n <circle cx=\"0\" cy=\"0\" r=\"2\" fill={accessoryColor} />\n <circle cx=\"2\" cy=\"-1\" r=\"2\" fill={accessoryColor} />\n <circle cx=\"2\" cy=\"1\" r=\"2\" fill={accessoryColor} />\n <circle cx=\"-1\" cy=\"-1.5\" r=\"2\" fill={accessoryColor} />\n <circle cx=\"-1\" cy=\"1.5\" r=\"2\" fill={accessoryColor} />\n <circle cx=\"0.5\" cy=\"0\" r=\"1.5\" fill=\"#FFD93D\" />\n </g>\n )\n case 'bowtie':\n return (\n <g transform=\"translate(12, 19)\">\n <path d=\"M-3 0L0 2L3 0L0 -2L-3 0Z\" fill={accessoryColor} />\n <circle cx=\"0\" cy=\"0\" r=\"1\" fill={featureColor} />\n </g>\n )\n default:\n return null\n }\n}\n\nexport function Character({\n expression = 'happy',\n size = 48,\n color = '#A78BFA',\n featureColor = '#1d1d1f',\n accessory = 'none',\n accessoryColor = '#FF6B9D',\n animate = false,\n className,\n style,\n}: CharacterProps) {\n return (\n <svg\n viewBox=\"0 0 24 24\"\n width={size}\n height={size}\n className={cn(\n 'character',\n animate && 'character-animate',\n className\n )}\n style={style}\n >\n <style>\n {animate\n ? `\n .character-animate .character-face {\n animation: characterBounce 2s ease-in-out infinite;\n }\n @keyframes characterBounce {\n 0%, 100% { transform: translateY(0); }\n 50% { transform: translateY(-1px); }\n }\n @media (prefers-reduced-motion: reduce) {\n .character-animate .character-face {\n animation: none;\n }\n }\n `\n : ''}\n </style>\n <g className=\"character-face\">\n {/* Face */}\n <circle cx=\"12\" cy=\"12\" r=\"10\" fill={color} />\n\n {/* Eyes */}\n {renderEyes(expression, featureColor)}\n\n {/* Mouth */}\n {renderMouth(expression, featureColor)}\n\n {/* Accessory */}\n {renderAccessory(accessory, accessoryColor, featureColor)}\n </g>\n </svg>\n )\n}\n","import { cn } from '../../utils/cn'\n\nexport type BubbleDirection = 'left' | 'right' | 'top' | 'bottom'\nexport type BubbleVariant = 'speech' | 'thought'\nexport type BubbleSize = 'sm' | 'md' | 'lg'\n\nexport interface SpeechBubbleProps {\n children: React.ReactNode\n direction?: BubbleDirection\n variant?: BubbleVariant\n size?: BubbleSize\n color?: string\n borderColor?: string\n className?: string\n style?: React.CSSProperties\n}\n\nconst sizeClasses: Record<BubbleSize, string> = {\n sm: 'px-2 py-1 text-xs',\n md: 'px-3 py-2 text-sm',\n lg: 'px-4 py-3 text-base',\n}\n\nexport function SpeechBubble({\n children,\n direction = 'bottom',\n variant = 'speech',\n size = 'md',\n color = 'var(--glass-bg, rgba(255, 255, 255, 0.05))',\n borderColor = 'var(--glass-border, rgba(255, 255, 255, 0.1))',\n className,\n style,\n}: SpeechBubbleProps) {\n const isThought = variant === 'thought'\n\n // Tail positioning\n const tailPosition: Record<BubbleDirection, string> = {\n bottom: 'bottom-0 left-1/2 -translate-x-1/2 translate-y-full',\n top: 'top-0 left-1/2 -translate-x-1/2 -translate-y-full rotate-180',\n left: 'left-0 top-1/2 -translate-x-full -translate-y-1/2 -rotate-90',\n right: 'right-0 top-1/2 translate-x-full -translate-y-1/2 rotate-90',\n }\n\n // Thought bubble dots positioning\n const dotsPosition: Record<BubbleDirection, string> = {\n bottom: 'bottom-0 left-1/2 -translate-x-1/2 translate-y-[150%]',\n top: 'top-0 left-1/2 -translate-x-1/2 -translate-y-[150%]',\n left: 'left-0 top-1/2 -translate-x-[150%] -translate-y-1/2',\n right: 'right-0 top-1/2 translate-x-[150%] -translate-y-1/2',\n }\n\n return (\n <div\n className={cn('relative inline-block', className)}\n style={style}\n >\n <div\n className={cn(\n 'relative rounded-xl',\n sizeClasses[size]\n )}\n style={{\n backgroundColor: color,\n border: `1px solid ${borderColor}`,\n }}\n >\n {children}\n\n {/* Speech tail or thought dots */}\n {isThought ? (\n <div className={cn('absolute flex gap-1', dotsPosition[direction])}>\n <div\n className=\"w-2 h-2 rounded-full\"\n style={{ backgroundColor: color, border: `1px solid ${borderColor}` }}\n />\n <div\n className=\"w-1.5 h-1.5 rounded-full\"\n style={{ backgroundColor: color, border: `1px solid ${borderColor}` }}\n />\n </div>\n ) : (\n <div className={cn('absolute', tailPosition[direction])}>\n <svg\n width=\"12\"\n height=\"8\"\n viewBox=\"0 0 12 8\"\n fill=\"none\"\n >\n <path\n d=\"M6 8L0 0H12L6 8Z\"\n fill={color}\n />\n <path\n d=\"M0.5 0L6 7L11.5 0\"\n stroke={borderColor}\n strokeWidth=\"1\"\n fill=\"none\"\n />\n </svg>\n </div>\n )}\n </div>\n </div>\n )\n}\n","import {\n forwardRef,\n useState,\n useRef,\n useEffect,\n useCallback,\n useId,\n type ReactNode,\n} from 'react'\nimport { createPortal } from 'react-dom'\nimport { cn } from '../../utils/cn'\n\nexport type TooltipPosition = 'top' | 'right' | 'bottom' | 'left'\n\nexport interface TooltipProps {\n /** Content to display inside the tooltip */\n content: ReactNode\n /** The element that triggers the tooltip */\n children: ReactNode\n /** Preferred position of the tooltip relative to the trigger */\n position?: TooltipPosition\n /** Delay in ms before showing the tooltip */\n showDelay?: number\n /** Delay in ms before hiding the tooltip */\n hideDelay?: number\n /** Whether the tooltip is disabled */\n disabled?: boolean\n /** Show arrow indicator */\n arrow?: boolean\n /** Additional class names for the tooltip popup */\n className?: string\n}\n\ninterface Coords {\n top: number\n left: number\n actualPosition: TooltipPosition\n}\n\nfunction getCoords(\n triggerRect: DOMRect,\n tooltipRect: DOMRect,\n preferred: TooltipPosition,\n gap: number\n): Coords {\n const viewport = {\n width: window.innerWidth,\n height: window.innerHeight,\n }\n\n const positions: Record<TooltipPosition, { top: number; left: number }> = {\n top: {\n top: triggerRect.top - tooltipRect.height - gap,\n left: triggerRect.left + (triggerRect.width - tooltipRect.width) / 2,\n },\n bottom: {\n top: triggerRect.bottom + gap,\n left: triggerRect.left + (triggerRect.width - tooltipRect.width) / 2,\n },\n left: {\n top: triggerRect.top + (triggerRect.height - tooltipRect.height) / 2,\n left: triggerRect.left - tooltipRect.width - gap,\n },\n right: {\n top: triggerRect.top + (triggerRect.height - tooltipRect.height) / 2,\n left: triggerRect.right + gap,\n },\n }\n\n const fits = (pos: TooltipPosition): boolean => {\n const { top, left } = positions[pos]\n return (\n top >= 0 &&\n left >= 0 &&\n top + tooltipRect.height <= viewport.height &&\n left + tooltipRect.width <= viewport.width\n )\n }\n\n const fallbackOrder: Record<TooltipPosition, TooltipPosition[]> = {\n top: ['top', 'bottom', 'right', 'left'],\n bottom: ['bottom', 'top', 'right', 'left'],\n left: ['left', 'right', 'top', 'bottom'],\n right: ['right', 'left', 'top', 'bottom'],\n }\n\n const actualPosition = fallbackOrder[preferred].find(fits) ?? preferred\n const coords = positions[actualPosition]\n\n const pad = 8\n return {\n top: Math.max(pad, Math.min(coords.top, viewport.height - tooltipRect.height - pad)),\n left: Math.max(pad, Math.min(coords.left, viewport.width - tooltipRect.width - pad)),\n actualPosition,\n }\n}\n\nexport const Tooltip = forwardRef<HTMLDivElement, TooltipProps>(\n (\n {\n content,\n children,\n position = 'top',\n showDelay = 200,\n hideDelay = 0,\n disabled = false,\n arrow = true,\n className,\n },\n ref\n ) => {\n const [visible, setVisible] = useState(false)\n const [coords, setCoords] = useState<Coords | null>(null)\n const triggerRef = useRef<HTMLDivElement | null>(null)\n const tooltipRef = useRef<HTMLDivElement | null>(null)\n const showTimeout = useRef<ReturnType<typeof setTimeout> | undefined>(undefined)\n const hideTimeout = useRef<ReturnType<typeof setTimeout> | undefined>(undefined)\n const tooltipId = useId()\n\n const updatePosition = useCallback(() => {\n const trigger = triggerRef.current\n const tooltip = tooltipRef.current\n if (!trigger || !tooltip) return\n\n const triggerRect = trigger.getBoundingClientRect()\n const tooltipRect = tooltip.getBoundingClientRect()\n setCoords(getCoords(triggerRect, tooltipRect, position, 8))\n }, [position])\n\n const show = useCallback(() => {\n if (disabled) return\n if (hideTimeout.current !== undefined) clearTimeout(hideTimeout.current)\n showTimeout.current = setTimeout(() => {\n setVisible(true)\n }, showDelay)\n }, [disabled, showDelay])\n\n const hide = useCallback(() => {\n if (showTimeout.current !== undefined) clearTimeout(showTimeout.current)\n hideTimeout.current = setTimeout(() => {\n setVisible(false)\n setCoords(null)\n }, hideDelay)\n }, [hideDelay])\n\n useEffect(() => {\n if (visible) {\n const id = requestAnimationFrame(updatePosition)\n return () => cancelAnimationFrame(id)\n }\n }, [visible, updatePosition])\n\n useEffect(() => {\n if (!visible) return\n\n const handleUpdate = () => updatePosition()\n window.addEventListener('scroll', handleUpdate, true)\n window.addEventListener('resize', handleUpdate)\n return () => {\n window.removeEventListener('scroll', handleUpdate, true)\n window.removeEventListener('resize', handleUpdate)\n }\n }, [visible, updatePosition])\n\n useEffect(() => {\n return () => {\n if (showTimeout.current !== undefined) clearTimeout(showTimeout.current)\n if (hideTimeout.current !== undefined) clearTimeout(hideTimeout.current)\n }\n }, [])\n\n const arrowStyles: Record<TooltipPosition, string> = {\n top: 'bottom-0 left-1/2 -translate-x-1/2 translate-y-1/2 rotate-45',\n bottom: 'top-0 left-1/2 -translate-x-1/2 -translate-y-1/2 rotate-45',\n left: 'right-0 top-1/2 translate-x-1/2 -translate-y-1/2 rotate-45',\n right: 'left-0 top-1/2 -translate-x-1/2 -translate-y-1/2 rotate-45',\n }\n\n const actualPos = coords?.actualPosition ?? position\n\n const tooltipElement = visible\n ? createPortal(\n <div\n ref={tooltipRef}\n id={tooltipId}\n role=\"tooltip\"\n style={\n coords\n ? { top: coords.top, left: coords.left }\n : { top: -9999, left: -9999 }\n }\n className={cn(\n 'fixed z-50 pointer-events-none',\n 'max-w-xs px-3 py-1.5',\n 'text-xs font-medium text-[var(--color-white)]',\n 'rounded-lg',\n 'bg-[var(--glass-bg)] backdrop-blur-lg',\n 'border border-[var(--glass-border)]',\n coords\n ? [\n 'opacity-100 scale-100',\n 'motion-safe:transition-[opacity,transform] motion-safe:duration-150 motion-safe:ease-out',\n ]\n : 'opacity-0 scale-95',\n className\n )}\n >\n {content}\n {arrow && (\n <span\n aria-hidden\n className={cn(\n 'absolute w-2 h-2',\n 'bg-[var(--glass-bg)]',\n 'border border-[var(--glass-border)]',\n arrowStyles[actualPos],\n actualPos === 'top' && 'border-t-0 border-l-0',\n actualPos === 'bottom' && 'border-b-0 border-r-0',\n actualPos === 'left' && 'border-l-0 border-b-0',\n actualPos === 'right' && 'border-r-0 border-t-0'\n )}\n />\n )}\n </div>,\n document.body\n )\n : null\n\n return (\n <>\n <div\n ref={(node) => {\n triggerRef.current = node\n if (typeof ref === 'function') ref(node)\n else if (ref) ref.current = node\n }}\n onMouseEnter={show}\n onMouseLeave={hide}\n onFocus={show}\n onBlur={hide}\n aria-describedby={visible ? tooltipId : undefined}\n className=\"inline-flex\"\n >\n {children}\n </div>\n {tooltipElement}\n </>\n )\n }\n)\n\nTooltip.displayName = 'Tooltip'\n","import { type HTMLAttributes, type ReactNode } from 'react'\nimport { cn } from '../../utils/cn'\n\nexport interface CardProps extends HTMLAttributes<HTMLDivElement> {\n variant?: 'default' | 'glass' | 'interactive'\n padding?: 'none' | 'sm' | 'md' | 'lg'\n children: ReactNode\n}\n\nexport function Card({\n variant = 'default',\n padding = 'md',\n children,\n className,\n ...props\n}: CardProps) {\n const baseStyles = [\n 'rounded-2xl',\n 'border',\n 'transition-[background-color,border-color] duration-300 ease-out',\n ]\n\n const variants = {\n default: [\n 'bg-transparent',\n 'border-[var(--glass-border)]',\n ],\n glass: [\n 'bg-[var(--glass-bg)]',\n 'backdrop-blur-lg',\n 'border-[var(--glass-border)]',\n ],\n interactive: [\n 'bg-transparent',\n 'border-[var(--glass-border)]',\n 'hover:border-[var(--glass-highlight)]',\n 'hover:bg-[var(--glass-bg)]',\n 'cursor-pointer',\n 'gradient-border shine-sweep',\n ],\n }\n\n const paddings = {\n none: '',\n sm: 'p-3',\n md: 'p-5',\n lg: 'p-8',\n }\n\n return (\n <div\n className={cn(baseStyles, variants[variant], paddings[padding], className)}\n {...props}\n >\n {children}\n </div>\n )\n}\n\nexport interface CardHeaderProps extends HTMLAttributes<HTMLDivElement> {\n children: ReactNode\n}\n\nexport function CardHeader({ children, className, ...props }: CardHeaderProps) {\n return (\n <div className={cn('flex flex-col gap-1.5', className)} {...props}>\n {children}\n </div>\n )\n}\n\nexport interface CardTitleProps extends HTMLAttributes<HTMLHeadingElement> {\n children: ReactNode\n as?: 'h1' | 'h2' | 'h3' | 'h4'\n}\n\nexport function CardTitle({ children, as: Tag = 'h3', className, ...props }: CardTitleProps) {\n return (\n <Tag\n className={cn(\n 'font-display text-base font-semibold text-[var(--color-white)]',\n 'tracking-tight',\n className\n )}\n {...props}\n >\n {children}\n </Tag>\n )\n}\n\nexport interface CardDescriptionProps extends HTMLAttributes<HTMLParagraphElement> {\n children: ReactNode\n}\n\nexport function CardDescription({ children, className, ...props }: CardDescriptionProps) {\n return (\n <p\n className={cn(\n 'text-sm text-[var(--color-grey-400)]',\n 'line-clamp-2',\n className\n )}\n {...props}\n >\n {children}\n </p>\n )\n}\n\nexport interface CardContentProps extends HTMLAttributes<HTMLDivElement> {\n children: ReactNode\n}\n\nexport function CardContent({ children, className, ...props }: CardContentProps) {\n return (\n <div className={cn('mt-4', className)} {...props}>\n {children}\n </div>\n )\n}\n\nexport interface CardFooterProps extends HTMLAttributes<HTMLDivElement> {\n children: ReactNode\n}\n\nexport function CardFooter({ children, className, ...props }: CardFooterProps) {\n return (\n <div\n className={cn(\n 'mt-4 pt-4',\n 'border-t border-[var(--glass-border)]',\n 'flex items-center gap-3',\n className\n )}\n {...props}\n >\n {children}\n </div>\n )\n}\n","import { type AnchorHTMLAttributes, type ReactNode, forwardRef } from 'react'\nimport { cn } from '../../utils/cn'\n\nexport interface NavLinkProps extends AnchorHTMLAttributes<HTMLAnchorElement> {\n variant?: 'default' | 'underline' | 'pill'\n isActive?: boolean\n children: ReactNode\n}\n\nexport const NavLink = forwardRef<HTMLAnchorElement, NavLinkProps>(\n ({ variant = 'default', isActive = false, children, className, style, ...props }, ref) => {\n const baseStyles = [\n 'inline-flex items-center',\n 'text-sm font-normal',\n 'transition-[color,background-color,border-color,transform] duration-200 ease-out',\n 'focus-ring',\n 'hover:text-[--color-white]',\n ]\n\n const variants = {\n default: [],\n underline: ['relative', 'link-hover'],\n pill: [\n 'px-3 py-1.5',\n 'rounded-full',\n 'border',\n isActive\n ? 'bg-[--color-white] border-[--color-white]'\n : 'bg-transparent border-transparent hover:bg-[--glass-bg] hover:border-[--glass-border]',\n ],\n }\n\n const getColor = () => {\n if (variant === 'pill' && isActive) return 'var(--color-bg)'\n return 'var(--color-white)'\n }\n\n return (\n <a\n ref={ref}\n className={cn(baseStyles, variants[variant], className)}\n style={{ color: getColor(), ...style }}\n {...props}\n >\n {children}\n </a>\n )\n }\n)\n\nNavLink.displayName = 'NavLink'\n","import { useState, useCallback, type HTMLAttributes } from 'react'\nimport { cn } from '../../utils/cn'\nimport { Icon } from '../../atoms/Icon'\n\nexport interface CommandBoxProps extends Omit<HTMLAttributes<HTMLDivElement>, 'children'> {\n command: string\n variant?: 'default' | 'primary'\n showCopyButton?: boolean\n onCopy?: () => void\n}\n\nexport function CommandBox({\n command,\n variant = 'default',\n showCopyButton = true,\n onCopy,\n className,\n ...props\n}: CommandBoxProps) {\n const [copied, setCopied] = useState(false)\n\n const handleCopy = useCallback(async () => {\n try {\n await navigator.clipboard.writeText(command)\n setCopied(true)\n onCopy?.()\n setTimeout(() => setCopied(false), 2000)\n } catch (err) {\n console.error('Failed to copy:', err)\n }\n }, [command, onCopy])\n\n const baseStyles = [\n 'flex items-center justify-between gap-3',\n 'px-4 py-3',\n 'rounded-xl',\n 'border',\n 'backdrop-blur-lg',\n 'transition-[background-color,border-color] duration-200',\n ]\n\n const variants = {\n default: [\n 'bg-[rgba(255,255,255,0.03)]',\n 'border-[var(--glass-border)]',\n 'hover:bg-[rgba(255,255,255,0.06)]',\n 'hover:border-[var(--glass-highlight)]',\n ],\n primary: [\n 'bg-[var(--glass-bg)]',\n 'border-[var(--glass-highlight)]',\n 'hover:bg-[rgba(255,255,255,0.12)]',\n ],\n }\n\n return (\n <div className={cn(baseStyles, variants[variant], className)} {...props}>\n <code className=\"text-sm font-mono text-[var(--color-grey-300)] truncate\">{command}</code>\n {showCopyButton && (\n <>\n <button\n type=\"button\"\n onClick={handleCopy}\n className={cn(\n 'flex-shrink-0',\n 'p-2 rounded-lg',\n 'transition-[background-color,color,transform] duration-200',\n 'hover:scale-105 active:scale-92',\n copied\n ? 'bg-[var(--color-sage)] text-[var(--color-bg)]'\n : 'bg-[rgba(255,255,255,0.1)] text-[var(--color-grey-400)] hover:bg-[rgba(255,255,255,0.15)] hover:text-[var(--color-white)]'\n )}\n aria-label={copied ? 'Copied!' : 'Copy to clipboard'}\n >\n <Icon name={copied ? 'check' : 'copy'} size=\"sm\" />\n </button>\n {/* Live region for screen reader announcement */}\n <span className=\"sr-only\" role=\"status\" aria-live=\"polite\">\n {copied ? 'Copied to clipboard' : ''}\n </span>\n </>\n )}\n </div>\n )\n}\n","import { type ButtonHTMLAttributes } from 'react'\nimport { cn } from '../../utils/cn'\nimport { Icon } from '../../atoms/Icon'\n\nexport interface ThemeToggleProps extends Omit<ButtonHTMLAttributes<HTMLButtonElement>, 'children'> {\n theme: 'dark' | 'light'\n onToggle: () => void\n size?: 'sm' | 'md'\n}\n\nexport function ThemeToggle({\n theme,\n onToggle,\n size = 'md',\n className,\n ...props\n}: ThemeToggleProps) {\n const sizes = {\n sm: 'w-8 h-8',\n md: 'w-10 h-10',\n }\n\n const iconSizes = {\n sm: 'sm' as const,\n md: 'md' as const,\n }\n\n return (\n <button\n type=\"button\"\n onClick={onToggle}\n className={cn(\n 'inline-flex items-center justify-center',\n 'rounded-full',\n 'border border-[var(--glass-border)]',\n 'bg-transparent',\n 'text-[var(--color-grey-400)]',\n 'transition-all duration-200 ease-out',\n 'hover:border-[var(--glass-highlight)]',\n 'hover:bg-[var(--glass-bg)]',\n 'hover:text-[var(--color-white)]',\n 'hover:scale-105',\n 'active:scale-95',\n 'focus-ring',\n sizes[size],\n className\n )}\n aria-label={`Switch to ${theme === 'dark' ? 'light' : 'dark'} mode`}\n {...props}\n >\n <Icon name={theme === 'dark' ? 'sun' : 'moon'} size={iconSizes[size]} />\n </button>\n )\n}\n","import { type HTMLAttributes, type ReactNode, useEffect, useRef, useCallback } from 'react'\nimport { cn } from '../../utils/cn'\n\nexport interface MobileDrawerProps extends HTMLAttributes<HTMLDivElement> {\n /** Whether the drawer is open */\n isOpen: boolean\n /** Callback when drawer should close */\n onClose: () => void\n /** Drawer content */\n children: ReactNode\n /** Width of the drawer */\n width?: string\n /** Position of the drawer */\n position?: 'left' | 'right'\n /** Z-index for the drawer */\n zIndex?: number\n /** Accessible label for the drawer */\n ariaLabel?: string\n}\n\nexport function MobileDrawer({\n isOpen,\n onClose,\n children,\n width = '280px',\n position = 'right',\n zIndex = 50,\n ariaLabel = 'Navigation menu',\n className,\n ...props\n}: MobileDrawerProps) {\n const drawerRef = useRef<HTMLDivElement>(null)\n const previousActiveElement = useRef<HTMLElement | null>(null)\n\n // Lock body scroll when open\n useEffect(() => {\n if (isOpen) {\n document.body.style.overflow = 'hidden'\n } else {\n document.body.style.overflow = ''\n }\n return () => {\n document.body.style.overflow = ''\n }\n }, [isOpen])\n\n // Handle escape key\n useEffect(() => {\n const handleEscape = (e: KeyboardEvent) => {\n if (e.key === 'Escape' && isOpen) {\n onClose()\n }\n }\n document.addEventListener('keydown', handleEscape)\n return () => document.removeEventListener('keydown', handleEscape)\n }, [isOpen, onClose])\n\n // Focus management\n useEffect(() => {\n if (isOpen) {\n previousActiveElement.current = document.activeElement as HTMLElement\n // Focus first focusable element in drawer\n const firstFocusable = drawerRef.current?.querySelector<HTMLElement>(\n 'a[href], button:not([disabled]), input:not([disabled]), select:not([disabled]), textarea:not([disabled]), [tabindex]:not([tabindex=\"-1\"])'\n )\n firstFocusable?.focus()\n } else if (previousActiveElement.current) {\n previousActiveElement.current.focus()\n previousActiveElement.current = null\n }\n }, [isOpen])\n\n // Focus trap\n const handleKeyDown = useCallback((e: React.KeyboardEvent) => {\n if (e.key !== 'Tab' || !drawerRef.current) return\n\n const focusableElements = drawerRef.current.querySelectorAll<HTMLElement>(\n 'a[href], button:not([disabled]), input:not([disabled]), select:not([disabled]), textarea:not([disabled]), [tabindex]:not([tabindex=\"-1\"])'\n )\n const firstElement = focusableElements[0]\n const lastElement = focusableElements[focusableElements.length - 1]\n\n if (e.shiftKey && document.activeElement === firstElement) {\n e.preventDefault()\n lastElement?.focus()\n } else if (!e.shiftKey && document.activeElement === lastElement) {\n e.preventDefault()\n firstElement?.focus()\n }\n }, [])\n\n const translateClass =\n position === 'right'\n ? isOpen\n ? 'translate-x-0'\n : 'translate-x-full'\n : isOpen\n ? 'translate-x-0'\n : '-translate-x-full'\n\n const positionClass = position === 'right' ? 'right-0' : 'left-0'\n\n return (\n <div className={className}>\n {/* Backdrop overlay */}\n <div\n className={cn(\n 'fixed inset-0 bg-black/50 transition-opacity duration-300',\n isOpen ? 'opacity-100' : 'opacity-0 pointer-events-none'\n )}\n style={{ zIndex }}\n onClick={onClose}\n aria-hidden=\"true\"\n />\n\n {/* Drawer panel */}\n <div\n ref={drawerRef}\n role=\"dialog\"\n aria-modal={isOpen}\n aria-label={ariaLabel}\n aria-hidden={!isOpen}\n className={cn(\n 'mobile-menu-drawer',\n 'fixed top-0 h-full',\n 'transition-transform duration-300 ease-out',\n translateClass,\n positionClass\n )}\n style={{\n width,\n maxWidth: '80vw',\n zIndex: zIndex + 1,\n }}\n onKeyDown={handleKeyDown}\n {...props}\n >\n {children}\n </div>\n </div>\n )\n}\n","import { Component, type ReactNode } from 'react'\nimport { cn } from '../../utils/cn'\n\nexport interface ErrorBoundaryProps {\n /** Child components to wrap */\n children: ReactNode\n /** Custom fallback UI */\n fallback?: ReactNode\n /** Callback when error is caught */\n onError?: (error: Error, errorInfo: React.ErrorInfo) => void\n}\n\ninterface ErrorBoundaryState {\n hasError: boolean\n error: Error | null\n}\n\n/**\n * Error boundary component that catches JavaScript errors in child components\n * Displays fallback UI and optionally reports errors via callback\n */\nexport class ErrorBoundary extends Component<\n ErrorBoundaryProps,\n ErrorBoundaryState\n> {\n constructor(props: ErrorBoundaryProps) {\n super(props)\n this.state = { hasError: false, error: null }\n }\n\n static getDerivedStateFromError(error: Error): ErrorBoundaryState {\n return { hasError: true, error }\n }\n\n componentDidCatch(error: Error, errorInfo: React.ErrorInfo): void {\n this.props.onError?.(error, errorInfo)\n }\n\n handleRetry = (): void => {\n this.setState({ hasError: false, error: null })\n }\n\n render(): ReactNode {\n if (this.state.hasError) {\n if (this.props.fallback) {\n return this.props.fallback\n }\n\n return (\n <div className=\"min-h-[400px] flex items-center justify-center p-8\">\n <div className=\"text-center max-w-md\">\n <div className=\"w-16 h-16 mx-auto mb-6 rounded-full bg-[var(--color-coral)]/10 flex items-center justify-center\">\n <svg\n className=\"w-8 h-8 text-[var(--color-coral)]\"\n fill=\"none\"\n viewBox=\"0 0 24 24\"\n stroke=\"currentColor\"\n >\n <path\n strokeLinecap=\"round\"\n strokeLinejoin=\"round\"\n strokeWidth={2}\n d=\"M12 9v2m0 4h.01m-6.938 4h13.856c1.54 0 2.502-1.667 1.732-3L13.732 4c-.77-1.333-2.694-1.333-3.464 0L3.34 16c-.77 1.333.192 3 1.732 3z\"\n />\n </svg>\n </div>\n <h2 className=\"text-xl font-semibold text-[var(--color-white)] mb-2\">\n Something went wrong\n </h2>\n <p className=\"text-[var(--color-grey-400)] mb-6\">\n We encountered an unexpected error. Please try again.\n </p>\n <button\n onClick={this.handleRetry}\n className={cn(\n 'px-6 py-3 rounded-full font-medium',\n 'bg-[var(--glass-bg)] border border-[var(--glass-border)]',\n 'hover:bg-[var(--glass-highlight)] transition-colors'\n )}\n >\n Try Again\n </button>\n </div>\n </div>\n )\n }\n\n return this.props.children\n }\n}\n\nexport interface ErrorFallbackProps {\n /** Error title */\n title?: string\n /** Error message */\n message?: string\n /** Show reload button */\n showReload?: boolean\n /** Show home link */\n showHomeLink?: boolean\n /** Home URL (default: /) */\n homeUrl?: string\n /** Additional class names */\n className?: string\n}\n\n/**\n * Standalone error fallback component for full-page errors\n */\nexport function ErrorFallback({\n title = 'Page Error',\n message = 'This page encountered an error and could not be displayed.',\n showReload = true,\n showHomeLink = true,\n homeUrl = '/',\n className,\n}: ErrorFallbackProps) {\n return (\n <div\n className={cn(\n 'min-h-screen flex items-center justify-center p-8',\n className\n )}\n >\n <div className=\"text-center max-w-md\">\n <div className=\"w-20 h-20 mx-auto mb-8 rounded-full bg-[var(--color-coral)]/10 flex items-center justify-center\">\n <svg\n className=\"w-10 h-10 text-[var(--color-coral)]\"\n fill=\"none\"\n viewBox=\"0 0 24 24\"\n stroke=\"currentColor\"\n >\n <path\n strokeLinecap=\"round\"\n strokeLinejoin=\"round\"\n strokeWidth={2}\n d=\"M12 9v2m0 4h.01m-6.938 4h13.856c1.54 0 2.502-1.667 1.732-3L13.732 4c-.77-1.333-2.694-1.333-3.464 0L3.34 16c-.77 1.333.192 3 1.732 3z\"\n />\n </svg>\n </div>\n <h1 className=\"text-2xl font-semibold text-[var(--color-white)] mb-3\">\n {title}\n </h1>\n <p className=\"text-[var(--color-grey-400)] mb-8\">{message}</p>\n <div className=\"flex gap-4 justify-center\">\n {showReload && (\n <button\n onClick={() => window.location.reload()}\n className={cn(\n 'px-6 py-3 rounded-full font-medium',\n 'bg-[var(--glass-bg)] border border-[var(--glass-border)]',\n 'hover:bg-[var(--glass-highlight)] transition-colors'\n )}\n >\n Reload Page\n </button>\n )}\n {showHomeLink && (\n <a\n href={homeUrl}\n className={cn(\n 'px-6 py-3 rounded-full font-medium',\n 'bg-[var(--glass-bg)] border border-[var(--glass-border)]',\n 'hover:bg-[var(--glass-highlight)] transition-colors'\n )}\n >\n Go Home\n </a>\n )}\n </div>\n </div>\n </div>\n )\n}\n","import { ShapeType, PatternType } from '../../atoms/Shape'\n\nexport interface ShapeLayer {\n type: ShapeType\n color: string\n pattern?: PatternType\n patternColors?: string[]\n size: number\n offsetX?: number\n offsetY?: number\n rotation?: number\n opacity?: number\n}\n\nexport type CompositePreset =\n | 'rainbow-arc'\n | 'cluster'\n | 'stack'\n | 'flower'\n | 'bear'\n | 'snail'\n | 'orbit'\n | 'checkerboard-stack'\n\nexport const presets: Record<CompositePreset, ShapeLayer[]> = {\n 'rainbow-arc': [\n { type: 'arc', color: '#FF6B9D', size: 80, offsetX: 0, offsetY: 0 },\n { type: 'arc', color: '#FF7F50', size: 68, offsetX: 0, offsetY: 6 },\n { type: 'arc', color: '#FFD93D', size: 56, offsetX: 0, offsetY: 12 },\n { type: 'arc', color: '#2ECC71', size: 44, offsetX: 0, offsetY: 18 },\n { type: 'arc', color: '#5DADE2', size: 32, offsetX: 0, offsetY: 24 },\n { type: 'arc', color: '#A78BFA', size: 20, offsetX: 0, offsetY: 30 },\n ],\n\n cluster: [\n { type: 'circle', color: '#2ECC71', size: 48, offsetX: 0, offsetY: 0 },\n { type: 'circle', color: '#FF6B9D', size: 36, offsetX: 30, offsetY: -10 },\n { type: 'diamond', color: '#FFD93D', size: 28, offsetX: -20, offsetY: 25 },\n { type: 'triangle', color: '#5DADE2', size: 32, offsetX: 35, offsetY: 20 },\n ],\n\n stack: [\n { type: 'square', color: '#8B7355', size: 56, offsetX: 0, offsetY: 0, rotation: 5 },\n { type: 'square', color: '#FFAB91', size: 48, offsetX: 4, offsetY: -8, rotation: -3 },\n { type: 'square', color: '#A78BFA', size: 40, offsetX: 8, offsetY: -16, rotation: 2 },\n ],\n\n flower: [\n { type: 'circle', color: '#FF6B9D', size: 32, offsetX: 0, offsetY: -20 },\n { type: 'circle', color: '#FF6B9D', size: 32, offsetX: 19, offsetY: -6 },\n { type: 'circle', color: '#FF6B9D', size: 32, offsetX: 12, offsetY: 16 },\n { type: 'circle', color: '#FF6B9D', size: 32, offsetX: -12, offsetY: 16 },\n { type: 'circle', color: '#FF6B9D', size: 32, offsetX: -19, offsetY: -6 },\n { type: 'circle', color: '#FFD93D', size: 24, offsetX: 0, offsetY: 0 },\n ],\n\n bear: [\n // Ears\n { type: 'circle', color: '#8B7355', size: 24, offsetX: -20, offsetY: -24 },\n { type: 'circle', color: '#8B7355', size: 24, offsetX: 20, offsetY: -24 },\n { type: 'circle', color: '#FFAB91', size: 12, offsetX: -20, offsetY: -24 },\n { type: 'circle', color: '#FFAB91', size: 12, offsetX: 20, offsetY: -24 },\n // Face\n { type: 'circle', color: '#8B7355', size: 56, offsetX: 0, offsetY: 0 },\n // Muzzle\n { type: 'circle', color: '#FFAB91', size: 28, offsetX: 0, offsetY: 8 },\n ],\n\n snail: [\n // Body\n { type: 'pill', color: '#2ECC71', size: 48, offsetX: -10, offsetY: 15 },\n // Shell layers\n { type: 'semicircle', color: '#922B3E', size: 44, offsetX: 10, offsetY: -5, rotation: -30 },\n { type: 'semicircle', color: '#FF6B9D', size: 32, offsetX: 14, offsetY: -2, rotation: -30 },\n { type: 'circle', color: '#FFD93D', size: 16, offsetX: 18, offsetY: 2 },\n ],\n\n orbit: [\n { type: 'circle', color: '#A78BFA', size: 32, offsetX: 0, offsetY: 0 },\n { type: 'circle', color: '#FF6B9D', size: 16, offsetX: 35, offsetY: 0 },\n { type: 'circle', color: '#2ECC71', size: 12, offsetX: -30, offsetY: 20 },\n { type: 'diamond', color: '#FFD93D', size: 14, offsetX: 10, offsetY: -35 },\n ],\n\n 'checkerboard-stack': [\n {\n type: 'square',\n color: '#FFAB91',\n pattern: 'checkered',\n patternColors: ['#FFAB91', '#8B7355'],\n size: 48,\n offsetX: 0,\n offsetY: 0,\n },\n { type: 'circle', color: '#2ECC71', size: 24, offsetX: 30, offsetY: -15 },\n { type: 'diamond', color: '#922B3E', size: 20, offsetX: -20, offsetY: -25 },\n ],\n}\n","import { Shape } from '../../atoms/Shape'\nimport { cn } from '../../utils/cn'\nimport { presets, CompositePreset, ShapeLayer } from './presets'\n\nexport interface CompositeShapeProps {\n preset?: CompositePreset\n layers?: ShapeLayer[]\n scale?: number\n className?: string\n style?: React.CSSProperties\n}\n\nexport function CompositeShape({\n preset,\n layers,\n scale = 1,\n className,\n style,\n}: CompositeShapeProps) {\n const shapeLayers = layers || (preset ? presets[preset] : [])\n\n if (shapeLayers.length === 0) {\n return null\n }\n\n // Calculate bounding box for the composition\n const bounds = shapeLayers.reduce(\n (acc, layer) => {\n const halfSize = layer.size / 2\n const x = layer.offsetX || 0\n const y = layer.offsetY || 0\n return {\n minX: Math.min(acc.minX, x - halfSize),\n maxX: Math.max(acc.maxX, x + halfSize),\n minY: Math.min(acc.minY, y - halfSize),\n maxY: Math.max(acc.maxY, y + halfSize),\n }\n },\n { minX: 0, maxX: 0, minY: 0, maxY: 0 }\n )\n\n const width = (bounds.maxX - bounds.minX) * scale\n const height = (bounds.maxY - bounds.minY) * scale\n const centerX = -bounds.minX\n const centerY = -bounds.minY\n\n return (\n <div\n className={cn('relative inline-block', className)}\n style={{\n width,\n height,\n ...style,\n }}\n >\n {shapeLayers.map((layer, index) => {\n const x = ((layer.offsetX || 0) + centerX) * scale\n const y = ((layer.offsetY || 0) + centerY) * scale\n const size = layer.size * scale\n\n return (\n <div\n key={index}\n className=\"absolute\"\n style={{\n left: x,\n top: y,\n transform: 'translate(-50%, -50%)',\n }}\n >\n <Shape\n type={layer.type}\n size={size}\n color={layer.color}\n pattern={layer.pattern}\n patternColors={layer.patternColors}\n rotation={layer.rotation}\n opacity={layer.opacity}\n />\n </div>\n )\n })}\n </div>\n )\n}\n","import {\n forwardRef,\n useEffect,\n useRef,\n useCallback,\n useId,\n useState,\n type HTMLAttributes,\n type ReactNode,\n} from 'react'\nimport { createPortal } from 'react-dom'\nimport { cn } from '../../utils/cn'\n\nexport type ModalSize = 'sm' | 'md' | 'lg' | 'full'\n\nexport interface ModalProps extends Omit<HTMLAttributes<HTMLDivElement>, 'role'> {\n /** Whether the modal is open */\n isOpen: boolean\n /** Callback when modal should close */\n onClose: () => void\n /** Modal content */\n children: ReactNode\n /** Size of the modal panel */\n size?: ModalSize\n /** Whether clicking the backdrop closes the modal */\n closeOnBackdropClick?: boolean\n /** Whether pressing Escape closes the modal */\n closeOnEscape?: boolean\n /** Accessible label for the modal (used if no Modal.Header is provided) */\n ariaLabel?: string\n}\n\nconst FOCUSABLE_SELECTOR =\n 'a[href], button:not([disabled]), input:not([disabled]), select:not([disabled]), textarea:not([disabled]), [tabindex]:not([tabindex=\"-1\"])'\n\nconst sizeClasses: Record<ModalSize, string> = {\n sm: 'max-w-[400px]',\n md: 'max-w-[560px]',\n lg: 'max-w-[720px]',\n full: 'max-w-none w-screen h-[100dvh] !rounded-none',\n}\n\nexport const Modal = forwardRef<HTMLDivElement, ModalProps>(\n (\n {\n isOpen,\n onClose,\n children,\n size = 'md',\n closeOnBackdropClick = true,\n closeOnEscape = true,\n ariaLabel,\n className,\n ...props\n },\n ref\n ) => {\n const internalRef = useRef<HTMLDivElement>(null)\n const panelRef = (ref as React.RefObject<HTMLDivElement>) || internalRef\n const previousActiveElement = useRef<HTMLElement | null>(null)\n const labelId = useId()\n const descriptionId = useId()\n const [mounted, setMounted] = useState(false)\n const [visible, setVisible] = useState(false)\n\n // Mount/unmount with animation\n useEffect(() => {\n if (isOpen) {\n setMounted(true)\n // Trigger enter animation on next frame\n requestAnimationFrame(() => {\n requestAnimationFrame(() => {\n setVisible(true)\n })\n })\n } else {\n setVisible(false)\n const timer = setTimeout(() => setMounted(false), 200)\n return () => clearTimeout(timer)\n }\n }, [isOpen])\n\n // Lock body scroll when open\n useEffect(() => {\n if (isOpen) {\n const scrollY = window.scrollY\n document.body.style.overflow = 'hidden'\n document.body.style.position = 'fixed'\n document.body.style.top = `-${scrollY}px`\n document.body.style.width = '100%'\n } else {\n const top = document.body.style.top\n document.body.style.overflow = ''\n document.body.style.position = ''\n document.body.style.top = ''\n document.body.style.width = ''\n if (top) {\n window.scrollTo(0, parseInt(top, 10) * -1)\n }\n }\n return () => {\n document.body.style.overflow = ''\n document.body.style.position = ''\n document.body.style.top = ''\n document.body.style.width = ''\n }\n }, [isOpen])\n\n // Escape key handler\n useEffect(() => {\n if (!closeOnEscape || !isOpen) return\n const handleEscape = (e: KeyboardEvent) => {\n if (e.key === 'Escape') {\n e.stopPropagation()\n onClose()\n }\n }\n document.addEventListener('keydown', handleEscape)\n return () => document.removeEventListener('keydown', handleEscape)\n }, [isOpen, onClose, closeOnEscape])\n\n // Focus management\n useEffect(() => {\n if (isOpen) {\n previousActiveElement.current = document.activeElement as HTMLElement\n // Focus first focusable element in panel\n const panel = panelRef.current\n if (panel) {\n const firstFocusable = panel.querySelector<HTMLElement>(FOCUSABLE_SELECTOR)\n if (firstFocusable) {\n firstFocusable.focus()\n } else {\n panel.focus()\n }\n }\n } else if (previousActiveElement.current) {\n previousActiveElement.current.focus()\n previousActiveElement.current = null\n }\n }, [isOpen, panelRef])\n\n // Focus trap\n const handleKeyDown = useCallback(\n (e: React.KeyboardEvent) => {\n if (e.key !== 'Tab' || !panelRef.current) return\n\n const focusableElements =\n panelRef.current.querySelectorAll<HTMLElement>(FOCUSABLE_SELECTOR)\n if (focusableElements.length === 0) {\n e.preventDefault()\n return\n }\n\n const firstElement = focusableElements[0]\n const lastElement = focusableElements[focusableElements.length - 1]\n\n if (e.shiftKey && document.activeElement === firstElement) {\n e.preventDefault()\n lastElement?.focus()\n } else if (!e.shiftKey && document.activeElement === lastElement) {\n e.preventDefault()\n firstElement?.focus()\n }\n },\n [panelRef]\n )\n\n // Backdrop click handler\n const handleBackdropClick = useCallback(\n (e: React.MouseEvent) => {\n if (closeOnBackdropClick && e.target === e.currentTarget) {\n onClose()\n }\n },\n [closeOnBackdropClick, onClose]\n )\n\n if (!mounted) return null\n\n return createPortal(\n <div\n className={cn(\n 'fixed inset-0 z-50 flex items-center justify-center',\n // Backdrop\n 'transition-[background-color,backdrop-filter] duration-200 ease-out',\n visible\n ? 'bg-black/60 backdrop-blur-sm'\n : 'bg-black/0 backdrop-blur-none',\n // Reduced motion: instant transitions\n 'motion-reduce:transition-none'\n )}\n onClick={handleBackdropClick}\n aria-hidden=\"true\"\n >\n {/* Panel */}\n <div\n ref={panelRef}\n role=\"dialog\"\n aria-modal=\"true\"\n aria-labelledby={ariaLabel ? undefined : labelId}\n aria-label={ariaLabel}\n aria-describedby={descriptionId}\n tabIndex={-1}\n className={cn(\n 'relative w-full mx-4',\n sizeClasses[size],\n // Glass panel styling\n 'bg-[var(--color-bg-secondary)] border border-[var(--glass-border)]',\n 'backdrop-blur-lg',\n size !== 'full' && 'rounded-2xl',\n // Focus ring\n 'focus-ring',\n // Animation\n 'transition-[opacity,transform] duration-200 ease-out',\n visible\n ? 'opacity-100 scale-100 translate-y-0'\n : 'opacity-0 scale-95 translate-y-2',\n // Reduced motion: no scale/translate, instant\n 'motion-reduce:transition-none motion-reduce:transform-none',\n className\n )}\n onKeyDown={handleKeyDown}\n // Pass through the label/description IDs via data attributes for sub-components\n data-modal-label-id={labelId}\n data-modal-description-id={descriptionId}\n {...props}\n >\n {children}\n </div>\n </div>,\n document.body\n )\n }\n)\n\nModal.displayName = 'Modal'\n\n// --- Compound sub-components ---\n\nexport interface ModalHeaderProps extends HTMLAttributes<HTMLDivElement> {\n children: ReactNode\n}\n\nexport function ModalHeader({ children, className, ...props }: ModalHeaderProps) {\n return (\n <div\n className={cn(\n 'px-6 pt-6 pb-0',\n 'flex items-start justify-between gap-4',\n className\n )}\n {...props}\n >\n {children}\n </div>\n )\n}\n\nModalHeader.displayName = 'ModalHeader'\n\nexport interface ModalTitleProps extends HTMLAttributes<HTMLHeadingElement> {\n children: ReactNode\n as?: 'h1' | 'h2' | 'h3' | 'h4'\n}\n\nexport function ModalTitle({ children, as: Tag = 'h2', className, id, ...props }: ModalTitleProps) {\n return (\n <Tag\n id={id}\n className={cn(\n 'font-display text-lg font-semibold text-[var(--color-white)]',\n 'tracking-tight',\n className\n )}\n {...props}\n >\n {children}\n </Tag>\n )\n}\n\nModalTitle.displayName = 'ModalTitle'\n\nexport interface ModalDescriptionProps extends HTMLAttributes<HTMLParagraphElement> {\n children: ReactNode\n}\n\nexport function ModalDescription({ children, className, id, ...props }: ModalDescriptionProps) {\n return (\n <p\n id={id}\n className={cn(\n 'text-sm text-[var(--color-grey-400)]',\n 'mt-1',\n className\n )}\n {...props}\n >\n {children}\n </p>\n )\n}\n\nModalDescription.displayName = 'ModalDescription'\n\nexport interface ModalBodyProps extends HTMLAttributes<HTMLDivElement> {\n children: ReactNode\n}\n\nexport function ModalBody({ children, className, ...props }: ModalBodyProps) {\n return (\n <div\n className={cn(\n 'px-6 py-4',\n 'overflow-y-auto',\n className\n )}\n {...props}\n >\n {children}\n </div>\n )\n}\n\nModalBody.displayName = 'ModalBody'\n\nexport interface ModalFooterProps extends HTMLAttributes<HTMLDivElement> {\n children: ReactNode\n}\n\nexport function ModalFooter({ children, className, ...props }: ModalFooterProps) {\n return (\n <div\n className={cn(\n 'px-6 pb-6 pt-0',\n 'border-t border-[var(--glass-border)]',\n 'mt-2 pt-4',\n 'flex items-center justify-end gap-3',\n className\n )}\n {...props}\n >\n {children}\n </div>\n )\n}\n\nModalFooter.displayName = 'ModalFooter'\n\nexport interface ModalCloseButtonProps extends HTMLAttributes<HTMLButtonElement> {\n /** Accessible label for the close button */\n ariaLabel?: string\n}\n\nexport function ModalCloseButton({\n ariaLabel = 'Close',\n className,\n onClick,\n ...props\n}: ModalCloseButtonProps) {\n return (\n <button\n type=\"button\"\n aria-label={ariaLabel}\n className={cn(\n 'inline-flex items-center justify-center',\n 'w-8 h-8 rounded-lg',\n 'text-[var(--color-grey-400)]',\n 'hover:text-[var(--color-white)] hover:bg-[var(--glass-bg)]',\n 'transition-colors duration-200',\n 'focus-ring',\n 'motion-reduce:transition-none',\n className\n )}\n onClick={onClick}\n {...props}\n >\n <svg\n width=\"16\"\n height=\"16\"\n viewBox=\"0 0 16 16\"\n fill=\"none\"\n stroke=\"currentColor\"\n strokeWidth=\"2\"\n strokeLinecap=\"round\"\n >\n <path d=\"M4 4l8 8M12 4l-8 8\" />\n </svg>\n </button>\n )\n}\n\nModalCloseButton.displayName = 'ModalCloseButton'\n","import { useState, useEffect, useCallback, useMemo } from 'react'\n\n/**\n * Hook to detect user's motion preference with SSR safety\n * Returns true if user prefers reduced motion\n *\n * Note: For animations, consider using this to:\n * - Disable or reduce animation duration\n * - Use fade instead of transform animations\n * - Skip parallax and auto-playing animations\n */\nexport function useReducedMotion(): boolean {\n const getInitialState = useCallback(() => {\n if (typeof window === 'undefined') {\n // Default to reduced motion for SSR (safer, more accessible)\n return true\n }\n return window.matchMedia('(prefers-reduced-motion: reduce)').matches\n }, [])\n\n const [prefersReducedMotion, setPrefersReducedMotion] = useState(getInitialState)\n\n useEffect(() => {\n if (typeof window === 'undefined') {\n return\n }\n\n const mediaQuery = window.matchMedia('(prefers-reduced-motion: reduce)')\n\n // Update on mount for SSR hydration\n setPrefersReducedMotion(mediaQuery.matches)\n\n const handleChange = (event: MediaQueryListEvent) => {\n setPrefersReducedMotion(event.matches)\n }\n\n mediaQuery.addEventListener('change', handleChange)\n return () => mediaQuery.removeEventListener('change', handleChange)\n }, [])\n\n return prefersReducedMotion\n}\n\n/**\n * Returns animation configuration based on reduced motion preference\n * Provides sensible defaults that can be spread into animation props\n */\nexport function useMotionConfig() {\n const prefersReducedMotion = useReducedMotion()\n\n return useMemo(\n () => ({\n /** Whether reduced motion is preferred */\n isReduced: prefersReducedMotion,\n\n /** Suggested animation duration in ms */\n duration: prefersReducedMotion ? 0 : 300,\n\n /** Suggested animation duration as CSS value */\n durationCss: prefersReducedMotion ? '0ms' : '300ms',\n\n /** Suggested easing function */\n easing: prefersReducedMotion ? 'linear' : 'cubic-bezier(0.4, 0, 0.2, 1)',\n\n /** Whether to disable transform animations */\n disableTransform: prefersReducedMotion,\n\n /** Whether to disable parallax effects */\n disableParallax: prefersReducedMotion,\n\n /** Whether to disable auto-playing animations */\n disableAutoPlay: prefersReducedMotion,\n\n /** Suggested transition config for Framer Motion / GSAP */\n transition: prefersReducedMotion\n ? { duration: 0 }\n : { duration: 0.3, ease: [0.4, 0, 0.2, 1] },\n }),\n [prefersReducedMotion]\n )\n}\n\n/**\n * Returns true if user prefers high contrast\n */\nexport function usePrefersHighContrast(): boolean {\n const getInitialState = useCallback(() => {\n if (typeof window === 'undefined') {\n return false\n }\n return window.matchMedia('(prefers-contrast: high)').matches\n }, [])\n\n const [prefersHighContrast, setPrefersHighContrast] = useState(getInitialState)\n\n useEffect(() => {\n if (typeof window === 'undefined') {\n return\n }\n\n const mediaQuery = window.matchMedia('(prefers-contrast: high)')\n setPrefersHighContrast(mediaQuery.matches)\n\n const handleChange = (event: MediaQueryListEvent) => {\n setPrefersHighContrast(event.matches)\n }\n\n mediaQuery.addEventListener('change', handleChange)\n return () => mediaQuery.removeEventListener('change', handleChange)\n }, [])\n\n return prefersHighContrast\n}\n","import {\n forwardRef,\n createContext,\n useContext,\n useState,\n useCallback,\n useRef,\n useEffect,\n useId,\n type HTMLAttributes,\n type ButtonHTMLAttributes,\n type ReactNode,\n type KeyboardEvent,\n} from 'react'\nimport { cn } from '../../utils/cn'\nimport { useReducedMotion } from '../../hooks/useReducedMotion'\n\ntype TabsVariant = 'underline' | 'pill'\n\ninterface TabsContextValue {\n activeValue: string\n setActiveValue: (value: string) => void\n variant: TabsVariant\n baseId: string\n registerTab: (value: string, element: HTMLButtonElement | null) => void\n getTabElements: () => Map<string, HTMLButtonElement>\n}\n\nconst TabsContext = createContext<TabsContextValue | null>(null)\n\nfunction useTabsContext() {\n const context = useContext(TabsContext)\n if (!context) {\n throw new Error('Tabs compound components must be used within a <Tabs> parent')\n }\n return context\n}\n\n// --- Tabs Root ---\n\nexport interface TabsProps extends Omit<HTMLAttributes<HTMLDivElement>, 'onChange'> {\n /** The controlled active tab value */\n value?: string\n /** Callback when active tab changes */\n onChange?: (value: string) => void\n /** The default active tab value for uncontrolled mode */\n defaultValue?: string\n /** Visual variant */\n variant?: TabsVariant\n children: ReactNode\n}\n\nexport const Tabs = forwardRef<HTMLDivElement, TabsProps>(\n ({ value, onChange, defaultValue, variant = 'underline', children, className, ...props }, ref) => {\n const [internalValue, setInternalValue] = useState(defaultValue ?? '')\n const tabElementsRef = useRef<Map<string, HTMLButtonElement>>(new Map())\n const baseId = useId()\n\n const activeValue = value !== undefined ? value : internalValue\n\n const setActiveValue = useCallback(\n (newValue: string) => {\n if (value === undefined) {\n setInternalValue(newValue)\n }\n onChange?.(newValue)\n },\n [value, onChange]\n )\n\n const registerTab = useCallback((tabValue: string, element: HTMLButtonElement | null) => {\n if (element) {\n tabElementsRef.current.set(tabValue, element)\n } else {\n tabElementsRef.current.delete(tabValue)\n }\n }, [])\n\n const getTabElements = useCallback(() => tabElementsRef.current, [])\n\n return (\n <TabsContext.Provider value={{ activeValue, setActiveValue, variant, baseId, registerTab, getTabElements }}>\n <div ref={ref} className={cn('flex flex-col', className)} {...props}>\n {children}\n </div>\n </TabsContext.Provider>\n )\n }\n)\n\nTabs.displayName = 'Tabs'\n\n// --- TabsList ---\n\nexport interface TabsListProps extends HTMLAttributes<HTMLDivElement> {\n /** Enable glass morphism background */\n glass?: boolean\n children: ReactNode\n}\n\nexport const TabsList = forwardRef<HTMLDivElement, TabsListProps>(\n ({ glass = false, children, className, ...props }, ref) => {\n const { variant, activeValue, getTabElements } = useTabsContext()\n const listRef = useRef<HTMLDivElement>(null)\n const indicatorRef = useRef<HTMLDivElement>(null)\n const prefersReducedMotion = useReducedMotion()\n\n // Merge forwarded ref with internal ref\n const mergedRef = useCallback(\n (node: HTMLDivElement | null) => {\n (listRef as React.MutableRefObject<HTMLDivElement | null>).current = node\n if (typeof ref === 'function') ref(node)\n else if (ref) (ref as React.MutableRefObject<HTMLDivElement | null>).current = node\n },\n [ref]\n )\n\n // Animate indicator position\n useEffect(() => {\n const indicator = indicatorRef.current\n const list = listRef.current\n if (!indicator || !list) return\n\n const tabs = getTabElements()\n const activeTab = tabs.get(activeValue)\n if (!activeTab) {\n indicator.style.opacity = '0'\n return\n }\n\n const listRect = list.getBoundingClientRect()\n const tabRect = activeTab.getBoundingClientRect()\n\n const left = tabRect.left - listRect.left\n const width = tabRect.width\n\n indicator.style.opacity = '1'\n indicator.style.transform = `translateX(${left}px)`\n indicator.style.width = `${width}px`\n\n if (variant === 'pill') {\n indicator.style.height = `${tabRect.height}px`\n }\n }, [activeValue, variant, getTabElements])\n\n const isUnderline = variant === 'underline'\n const isPill = variant === 'pill'\n\n return (\n <div\n ref={mergedRef}\n role=\"tablist\"\n className={cn(\n 'relative flex items-center gap-1',\n isUnderline && 'border-b border-[var(--glass-border)]',\n isPill && [\n 'p-1 rounded-full',\n 'bg-[var(--glass-bg)]',\n 'border border-[var(--glass-border)]',\n ],\n glass && 'backdrop-blur-lg',\n className\n )}\n {...props}\n >\n {/* Animated indicator */}\n <div\n ref={indicatorRef}\n aria-hidden\n className={cn(\n 'absolute left-0',\n prefersReducedMotion\n ? 'transition-none'\n : 'transition-[transform,width,opacity] duration-200 ease-out',\n isUnderline && [\n 'bottom-0 h-[2px]',\n 'bg-[var(--color-white)]',\n ],\n isPill && [\n 'top-1 rounded-full',\n 'bg-[var(--color-white)]',\n ],\n )}\n style={{ opacity: 0, width: 0 }}\n />\n {children}\n </div>\n )\n }\n)\n\nTabsList.displayName = 'TabsList'\n\n// --- TabsTab ---\n\nexport interface TabsTabProps extends ButtonHTMLAttributes<HTMLButtonElement> {\n /** Unique value identifying this tab */\n value: string\n children: ReactNode\n}\n\nexport const TabsTab = forwardRef<HTMLButtonElement, TabsTabProps>(\n ({ value, children, className, onKeyDown, ...props }, ref) => {\n const { activeValue, setActiveValue, variant, baseId, registerTab, getTabElements } = useTabsContext()\n const internalRef = useRef<HTMLButtonElement | null>(null)\n const isActive = activeValue === value\n\n const mergedRef = useCallback(\n (node: HTMLButtonElement | null) => {\n internalRef.current = node\n registerTab(value, node)\n if (typeof ref === 'function') ref(node)\n else if (ref) (ref as React.MutableRefObject<HTMLButtonElement | null>).current = node\n },\n [ref, registerTab, value]\n )\n\n const handleKeyDown = useCallback(\n (e: KeyboardEvent<HTMLButtonElement>) => {\n onKeyDown?.(e)\n if (e.defaultPrevented) return\n\n const tabs = getTabElements()\n const tabValues = Array.from(tabs.keys())\n const currentIndex = tabValues.indexOf(value)\n\n let targetIndex: number | null = null\n\n switch (e.key) {\n case 'ArrowRight':\n targetIndex = (currentIndex + 1) % tabValues.length\n break\n case 'ArrowLeft':\n targetIndex = (currentIndex - 1 + tabValues.length) % tabValues.length\n break\n case 'Home':\n targetIndex = 0\n break\n case 'End':\n targetIndex = tabValues.length - 1\n break\n default:\n return\n }\n\n e.preventDefault()\n const targetValue = tabValues[targetIndex]\n const targetElement = tabs.get(targetValue)\n if (targetElement) {\n targetElement.focus()\n setActiveValue(targetValue)\n }\n },\n [onKeyDown, getTabElements, value, setActiveValue]\n )\n\n const isUnderline = variant === 'underline'\n const isPill = variant === 'pill'\n\n return (\n <button\n ref={mergedRef}\n role=\"tab\"\n type=\"button\"\n id={`${baseId}-tab-${value}`}\n aria-selected={isActive}\n aria-controls={`${baseId}-panel-${value}`}\n tabIndex={isActive ? 0 : -1}\n onClick={() => setActiveValue(value)}\n onKeyDown={handleKeyDown}\n className={cn(\n 'relative z-10',\n 'inline-flex items-center justify-center',\n 'text-sm font-medium',\n 'focus-ring',\n 'transition-colors duration-200 ease-out',\n 'cursor-pointer',\n 'whitespace-nowrap',\n isUnderline && [\n 'px-3 py-2',\n isActive\n ? 'text-[var(--color-white)]'\n : 'text-[var(--color-grey-400)] hover:text-[var(--color-white)]',\n ],\n isPill && [\n 'px-3 py-1.5',\n 'rounded-full',\n isActive\n ? 'text-[var(--color-bg)]'\n : 'text-[var(--color-grey-400)] hover:text-[var(--color-white)]',\n ],\n className\n )}\n {...props}\n >\n {children}\n </button>\n )\n }\n)\n\nTabsTab.displayName = 'TabsTab'\n\n// --- TabsPanel ---\n\nexport interface TabsPanelProps extends HTMLAttributes<HTMLDivElement> {\n /** The tab value this panel corresponds to */\n value: string\n children: ReactNode\n}\n\nexport const TabsPanel = forwardRef<HTMLDivElement, TabsPanelProps>(\n ({ value, children, className, ...props }, ref) => {\n const { activeValue, baseId } = useTabsContext()\n const isActive = activeValue === value\n\n if (!isActive) return null\n\n return (\n <div\n ref={ref}\n role=\"tabpanel\"\n id={`${baseId}-panel-${value}`}\n aria-labelledby={`${baseId}-tab-${value}`}\n tabIndex={0}\n className={cn('mt-2 focus-ring', className)}\n {...props}\n >\n {children}\n </div>\n )\n }\n)\n\nTabsPanel.displayName = 'TabsPanel'\n","import {\n forwardRef,\n type HTMLAttributes,\n type ReactNode,\n useEffect,\n useRef,\n useState,\n useCallback,\n} from 'react'\nimport { cn } from '../../utils/cn'\nimport { Icon } from '../../atoms/Icon'\nimport type { IconName } from '../../atoms/Icon'\n\nexport type ToastVariant = 'default' | 'success' | 'error' | 'warning' | 'info'\n\nexport type ToastPosition =\n | 'top-right'\n | 'top-left'\n | 'top-center'\n | 'bottom-right'\n | 'bottom-left'\n | 'bottom-center'\n\nexport interface ToastData {\n id: string\n variant: ToastVariant\n title?: string\n description?: string\n duration?: number\n icon?: ReactNode\n}\n\nexport interface ToastProps extends Omit<HTMLAttributes<HTMLDivElement>, 'title'> {\n variant?: ToastVariant\n title?: string\n description?: string\n duration?: number\n icon?: ReactNode\n onDismiss?: () => void\n open?: boolean\n}\n\nconst variantIcons: Record<ToastVariant, IconName> = {\n default: 'bell',\n success: 'success',\n error: 'error',\n warning: 'warning',\n info: 'info',\n}\n\nconst variantStyles: Record<ToastVariant, string[]> = {\n default: [\n 'border-[var(--glass-border)]',\n ],\n success: [\n 'border-[var(--color-sage)]/30',\n ],\n error: [\n 'border-[var(--color-coral)]/30',\n ],\n warning: [\n 'border-[var(--color-gold)]/30',\n ],\n info: [\n 'border-[var(--color-mint)]/30',\n ],\n}\n\nconst variantIconColors: Record<ToastVariant, string> = {\n default: 'text-[var(--color-grey-400)]',\n success: 'text-[var(--color-sage)]',\n error: 'text-[var(--color-coral)]',\n warning: 'text-[var(--color-gold)]',\n info: 'text-[var(--color-mint)]',\n}\n\nexport const Toast = forwardRef<HTMLDivElement, ToastProps>(\n (\n {\n variant = 'default',\n title,\n description,\n duration = 5000,\n icon,\n onDismiss,\n open = true,\n className,\n ...props\n },\n ref\n ) => {\n const [isVisible, setIsVisible] = useState(open)\n const [isExiting, setIsExiting] = useState(false)\n const timerRef = useRef<ReturnType<typeof setTimeout> | null>(null)\n\n const handleDismiss = useCallback(() => {\n setIsExiting(true)\n setTimeout(() => {\n setIsVisible(false)\n onDismiss?.()\n }, 200)\n }, [onDismiss])\n\n useEffect(() => {\n if (!open) {\n handleDismiss()\n return\n }\n setIsVisible(true)\n setIsExiting(false)\n }, [open, handleDismiss])\n\n useEffect(() => {\n if (duration > 0 && isVisible && !isExiting) {\n timerRef.current = setTimeout(handleDismiss, duration)\n return () => {\n if (timerRef.current) clearTimeout(timerRef.current)\n }\n }\n }, [duration, isVisible, isExiting, handleDismiss])\n\n if (!isVisible) return null\n\n const iconElement = icon ?? (\n <Icon\n name={variantIcons[variant]}\n size=\"sm\"\n className={variantIconColors[variant]}\n />\n )\n\n return (\n <div\n ref={ref}\n role=\"alert\"\n aria-live=\"polite\"\n className={cn(\n // Base\n 'pointer-events-auto',\n 'w-[360px] max-w-[calc(100vw-2rem)]',\n 'rounded-2xl border',\n 'bg-[var(--glass-bg)] backdrop-blur-lg',\n 'p-4',\n // Animation\n 'motion-safe:transition-[transform,opacity] motion-safe:duration-200 motion-safe:ease-out',\n isExiting\n ? 'opacity-0 translate-x-2'\n : 'opacity-100 translate-x-0 motion-safe:animate-[toastSlideIn_0.3s_cubic-bezier(0.4,0,0.2,1)]',\n // Variant border\n variantStyles[variant],\n className\n )}\n {...props}\n >\n <div className=\"flex items-start gap-3\">\n <span className=\"mt-0.5 shrink-0\">{iconElement}</span>\n <div className=\"flex-1 min-w-0\">\n {title && (\n <p className=\"text-sm font-medium text-[var(--color-white)]\">\n {title}\n </p>\n )}\n {description && (\n <p className={cn(\n 'text-sm text-[var(--color-grey-400)]',\n title && 'mt-1'\n )}>\n {description}\n </p>\n )}\n </div>\n <button\n onClick={handleDismiss}\n className={cn(\n 'shrink-0 mt-0.5',\n 'rounded-full p-1',\n 'text-[var(--color-grey-400)]',\n 'hover:text-[var(--color-white)] hover:bg-[var(--glass-bg)]',\n 'transition-colors duration-150',\n 'focus-ring',\n )}\n aria-label=\"Dismiss notification\"\n >\n <Icon name=\"x\" size=\"xs\" />\n </button>\n </div>\n </div>\n )\n }\n)\n\nToast.displayName = 'Toast'\n\nexport interface ToastContainerProps extends HTMLAttributes<HTMLDivElement> {\n position?: ToastPosition\n children?: ReactNode\n}\n\nconst positionStyles: Record<ToastPosition, string> = {\n 'top-right': 'top-0 right-0 items-end',\n 'top-left': 'top-0 left-0 items-start',\n 'top-center': 'top-0 left-1/2 -translate-x-1/2 items-center',\n 'bottom-right': 'bottom-0 right-0 items-end',\n 'bottom-left': 'bottom-0 left-0 items-start',\n 'bottom-center': 'bottom-0 left-1/2 -translate-x-1/2 items-center',\n}\n\nexport function ToastContainer({\n position = 'top-right',\n children,\n className,\n ...props\n}: ToastContainerProps) {\n return (\n <div\n className={cn(\n 'fixed z-50',\n 'flex flex-col gap-3',\n 'p-4',\n 'pointer-events-none',\n positionStyles[position],\n className\n )}\n {...props}\n >\n {children}\n </div>\n )\n}\n","import {\n forwardRef,\n useState,\n useRef,\n useEffect,\n useCallback,\n useMemo,\n useId,\n createContext,\n useContext,\n type ReactNode,\n type HTMLAttributes,\n type KeyboardEvent,\n type MouseEvent,\n} from 'react'\nimport { createPortal } from 'react-dom'\nimport { cn } from '../../utils/cn'\n\n/* ------------------------------------------------------------------\n Types\n ------------------------------------------------------------------ */\n\nexport interface DropdownOption {\n value: string\n label: string\n disabled?: boolean\n}\n\nexport interface DropdownProps {\n /** Options to display */\n options: DropdownOption[]\n /** Controlled value (single-select) */\n value?: string\n /** Controlled values (multi-select) */\n values?: string[]\n /** Default value for uncontrolled single-select */\n defaultValue?: string\n /** Default values for uncontrolled multi-select */\n defaultValues?: string[]\n /** Called when selection changes (single-select) */\n onChange?: (value: string) => void\n /** Called when selection changes (multi-select) */\n onMultiChange?: (values: string[]) => void\n /** Enable multi-select mode */\n multi?: boolean\n /** Enable search/filter input */\n searchable?: boolean\n /** Placeholder text when nothing is selected */\n placeholder?: string\n /** Search input placeholder */\n searchPlaceholder?: string\n /** Disabled state */\n disabled?: boolean\n /** Size variant */\n size?: 'sm' | 'md' | 'lg'\n /** Visual variant */\n variant?: 'default' | 'glass'\n /** Additional class names for the trigger */\n className?: string\n /** Additional class names for the menu */\n menuClassName?: string\n /** Use portal rendering for overflow contexts */\n portal?: boolean\n /** Children for compound API (overrides options-based rendering) */\n children?: ReactNode\n}\n\n/* ------------------------------------------------------------------\n Context for compound API\n ------------------------------------------------------------------ */\n\ninterface DropdownContextValue {\n isOpen: boolean\n activeIndex: number\n selectedValues: Set<string>\n multi: boolean\n listboxId: string\n triggerId: string\n toggle: () => void\n close: () => void\n select: (value: string) => void\n setActiveIndex: (index: number) => void\n registerItem: (value: string, index: number) => void\n}\n\nconst DropdownContext = createContext<DropdownContextValue | null>(null)\n\nfunction useDropdownContext() {\n const ctx = useContext(DropdownContext)\n if (!ctx) throw new Error('Dropdown compound components must be used within <Dropdown>')\n return ctx\n}\n\n/* ------------------------------------------------------------------\n Hooks\n ------------------------------------------------------------------ */\n\nfunction useClickOutside(\n refs: React.RefObject<HTMLElement | null>[],\n handler: () => void\n) {\n useEffect(() => {\n function onPointerDown(e: PointerEvent) {\n const target = e.target as Node\n if (refs.every((r) => r.current && !r.current.contains(target))) {\n handler()\n }\n }\n document.addEventListener('pointerdown', onPointerDown)\n return () => document.removeEventListener('pointerdown', onPointerDown)\n }, [refs, handler])\n}\n\nfunction usePositioning(\n triggerRef: React.RefObject<HTMLElement | null>,\n isOpen: boolean\n) {\n const [style, setStyle] = useState<React.CSSProperties>({})\n\n useEffect(() => {\n if (!isOpen || !triggerRef.current) return\n\n function update() {\n const trigger = triggerRef.current\n if (!trigger) return\n const rect = trigger.getBoundingClientRect()\n setStyle({\n position: 'fixed',\n top: rect.bottom + 4,\n left: rect.left,\n width: rect.width,\n zIndex: 9999,\n })\n }\n\n update()\n window.addEventListener('scroll', update, true)\n window.addEventListener('resize', update)\n return () => {\n window.removeEventListener('scroll', update, true)\n window.removeEventListener('resize', update)\n }\n }, [isOpen, triggerRef])\n\n return style\n}\n\n/* ------------------------------------------------------------------\n Sub-components\n ------------------------------------------------------------------ */\n\nexport interface DropdownTriggerProps extends HTMLAttributes<HTMLButtonElement> {\n children?: ReactNode\n}\n\nexport const DropdownTrigger = forwardRef<HTMLButtonElement, DropdownTriggerProps>(\n ({ children, className, onClick, ...props }, ref) => {\n const ctx = useDropdownContext()\n\n const handleClick = (e: MouseEvent<HTMLButtonElement>) => {\n onClick?.(e)\n ctx.toggle()\n }\n\n return (\n <button\n ref={ref}\n id={ctx.triggerId}\n type=\"button\"\n role=\"combobox\"\n aria-expanded={ctx.isOpen}\n aria-haspopup=\"listbox\"\n aria-controls={ctx.isOpen ? ctx.listboxId : undefined}\n className={className}\n onClick={handleClick}\n {...props}\n >\n {children}\n </button>\n )\n }\n)\nDropdownTrigger.displayName = 'Dropdown.Trigger'\n\nexport interface DropdownMenuProps extends HTMLAttributes<HTMLUListElement> {\n children?: ReactNode\n}\n\nexport const DropdownMenu = forwardRef<HTMLUListElement, DropdownMenuProps>(\n ({ children, className, ...props }, ref) => {\n const ctx = useDropdownContext()\n\n if (!ctx.isOpen) return null\n\n return (\n <ul\n ref={ref}\n id={ctx.listboxId}\n role=\"listbox\"\n aria-multiselectable={ctx.multi || undefined}\n tabIndex={-1}\n className={className}\n {...props}\n >\n {children}\n </ul>\n )\n }\n)\nDropdownMenu.displayName = 'Dropdown.Menu'\n\nexport interface DropdownItemProps extends HTMLAttributes<HTMLLIElement> {\n value: string\n disabled?: boolean\n children?: ReactNode\n}\n\nexport const DropdownItem = forwardRef<HTMLLIElement, DropdownItemProps>(\n ({ value, disabled = false, children, className, onClick, ...props }, ref) => {\n const ctx = useDropdownContext()\n const isSelected = ctx.selectedValues.has(value)\n\n const handleClick = (e: MouseEvent<HTMLLIElement>) => {\n if (disabled) return\n onClick?.(e)\n ctx.select(value)\n }\n\n return (\n <li\n ref={ref}\n role=\"option\"\n aria-selected={isSelected}\n aria-disabled={disabled || undefined}\n data-value={value}\n className={className}\n onClick={handleClick}\n {...props}\n >\n {children ?? value}\n </li>\n )\n }\n)\nDropdownItem.displayName = 'Dropdown.Item'\n\n/* ------------------------------------------------------------------\n Chevron icon (inline SVG to avoid dependency)\n ------------------------------------------------------------------ */\n\nfunction ChevronIcon({ open, className }: { open: boolean; className?: string }) {\n return (\n <svg\n width=\"16\"\n height=\"16\"\n viewBox=\"0 0 16 16\"\n fill=\"none\"\n className={cn(\n 'transition-transform duration-200 shrink-0',\n open && 'rotate-180',\n className\n )}\n aria-hidden=\"true\"\n >\n <path\n d=\"M4 6L8 10L12 6\"\n stroke=\"currentColor\"\n strokeWidth=\"1.5\"\n strokeLinecap=\"round\"\n strokeLinejoin=\"round\"\n />\n </svg>\n )\n}\n\nfunction SearchIcon() {\n return (\n <svg\n width=\"14\"\n height=\"14\"\n viewBox=\"0 0 16 16\"\n fill=\"none\"\n className=\"shrink-0\"\n aria-hidden=\"true\"\n >\n <circle cx=\"7\" cy=\"7\" r=\"5\" stroke=\"currentColor\" strokeWidth=\"1.5\" />\n <path d=\"M11 11L14 14\" stroke=\"currentColor\" strokeWidth=\"1.5\" strokeLinecap=\"round\" />\n </svg>\n )\n}\n\nfunction CheckIcon() {\n return (\n <svg\n width=\"14\"\n height=\"14\"\n viewBox=\"0 0 16 16\"\n fill=\"none\"\n className=\"shrink-0\"\n aria-hidden=\"true\"\n >\n <path\n d=\"M3.5 8.5L6.5 11.5L12.5 4.5\"\n stroke=\"currentColor\"\n strokeWidth=\"1.5\"\n strokeLinecap=\"round\"\n strokeLinejoin=\"round\"\n />\n </svg>\n )\n}\n\n/* ------------------------------------------------------------------\n Main Dropdown component\n ------------------------------------------------------------------ */\n\nexport const Dropdown = Object.assign(\n forwardRef<HTMLDivElement, DropdownProps>(\n (\n {\n options = [],\n value,\n values,\n defaultValue,\n defaultValues,\n onChange,\n onMultiChange,\n multi = false,\n searchable = false,\n placeholder = 'Select...',\n searchPlaceholder = 'Search...',\n disabled = false,\n size = 'md',\n variant = 'default',\n className,\n menuClassName,\n portal = false,\n children,\n },\n ref\n ) => {\n const uid = useId()\n const triggerId = `dropdown-trigger-${uid}`\n const listboxId = `dropdown-listbox-${uid}`\n\n // State\n const [isOpen, setIsOpen] = useState(false)\n const [search, setSearch] = useState('')\n const [activeIndex, setActiveIndex] = useState(-1)\n\n // Selection state (controlled or uncontrolled)\n const [internalValue, setInternalValue] = useState<string | undefined>(defaultValue)\n const [internalValues, setInternalValues] = useState<string[]>(defaultValues ?? [])\n\n const isControlled = multi ? values !== undefined : value !== undefined\n const selectedValue = isControlled ? value : internalValue\n const selectedMultiValues = isControlled ? (values ?? []) : internalValues\n const selectedSet = useMemo(\n () => new Set(multi ? selectedMultiValues : selectedValue ? [selectedValue] : []),\n [multi, selectedMultiValues, selectedValue]\n )\n\n // Refs\n const triggerRef = useRef<HTMLButtonElement>(null)\n const menuRef = useRef<HTMLUListElement>(null)\n const searchRef = useRef<HTMLInputElement>(null)\n const containerRef = useRef<HTMLDivElement>(null)\n const itemMapRef = useRef<Map<number, string>>(new Map())\n\n // Filtered options\n const filteredOptions = useMemo(() => {\n if (!search) return options\n const lower = search.toLowerCase()\n return options.filter((o) => o.label.toLowerCase().includes(lower))\n }, [options, search])\n\n // Position for portal mode\n const portalStyle = usePositioning(triggerRef, isOpen && portal)\n\n // Close handler\n const close = useCallback(() => {\n setIsOpen(false)\n setSearch('')\n setActiveIndex(-1)\n triggerRef.current?.focus()\n }, [])\n\n // Toggle\n const toggle = useCallback(() => {\n if (disabled) return\n setIsOpen((prev) => {\n if (prev) {\n setSearch('')\n setActiveIndex(-1)\n }\n return !prev\n })\n }, [disabled])\n\n // Selection\n const select = useCallback(\n (val: string) => {\n if (multi) {\n const next = selectedSet.has(val)\n ? selectedMultiValues.filter((v) => v !== val)\n : [...selectedMultiValues, val]\n if (!isControlled) setInternalValues(next)\n onMultiChange?.(next)\n } else {\n if (!isControlled) setInternalValue(val)\n onChange?.(val)\n close()\n }\n },\n [multi, selectedSet, selectedMultiValues, isControlled, onChange, onMultiChange, close]\n )\n\n // Register item (for compound API)\n const registerItem = useCallback((val: string, index: number) => {\n itemMapRef.current.set(index, val)\n }, [])\n\n // Click outside\n useClickOutside([containerRef, menuRef], () => {\n if (isOpen) close()\n })\n\n // Focus search input when menu opens\n useEffect(() => {\n if (isOpen && searchable) {\n requestAnimationFrame(() => searchRef.current?.focus())\n }\n }, [isOpen, searchable])\n\n // Keyboard handler\n const handleKeyDown = useCallback(\n (e: KeyboardEvent<HTMLDivElement>) => {\n if (disabled) return\n\n switch (e.key) {\n case 'ArrowDown': {\n e.preventDefault()\n if (!isOpen) {\n setIsOpen(true)\n setActiveIndex(0)\n return\n }\n setActiveIndex((prev) => {\n const max = filteredOptions.length - 1\n let next = prev + 1\n while (next <= max && filteredOptions[next]?.disabled) next++\n return next > max ? prev : next\n })\n break\n }\n case 'ArrowUp': {\n e.preventDefault()\n if (!isOpen) {\n setIsOpen(true)\n setActiveIndex(filteredOptions.length - 1)\n return\n }\n setActiveIndex((prev) => {\n let next = prev - 1\n while (next >= 0 && filteredOptions[next]?.disabled) next--\n return next < 0 ? prev : next\n })\n break\n }\n case 'Enter':\n case ' ': {\n if (!isOpen) {\n e.preventDefault()\n setIsOpen(true)\n setActiveIndex(0)\n return\n }\n // Allow space in search input\n if (e.key === ' ' && searchable && document.activeElement === searchRef.current) {\n return\n }\n e.preventDefault()\n if (activeIndex >= 0 && filteredOptions[activeIndex] && !filteredOptions[activeIndex].disabled) {\n select(filteredOptions[activeIndex].value)\n }\n break\n }\n case 'Escape': {\n e.preventDefault()\n close()\n break\n }\n case 'Home': {\n if (isOpen) {\n e.preventDefault()\n const first = filteredOptions.findIndex((o) => !o.disabled)\n if (first >= 0) setActiveIndex(first)\n }\n break\n }\n case 'End': {\n if (isOpen) {\n e.preventDefault()\n for (let i = filteredOptions.length - 1; i >= 0; i--) {\n if (!filteredOptions[i].disabled) {\n setActiveIndex(i)\n break\n }\n }\n }\n break\n }\n case 'Tab': {\n if (isOpen) close()\n break\n }\n default: {\n // Type-ahead: single character jumps to matching option\n if (!searchable && e.key.length === 1 && !e.ctrlKey && !e.metaKey && !e.altKey) {\n e.preventDefault()\n if (!isOpen) setIsOpen(true)\n const char = e.key.toLowerCase()\n const startIndex = activeIndex + 1\n const reordered = [\n ...filteredOptions.slice(startIndex),\n ...filteredOptions.slice(0, startIndex),\n ]\n const match = reordered.findIndex(\n (o) => !o.disabled && o.label.toLowerCase().startsWith(char)\n )\n if (match >= 0) {\n setActiveIndex((match + startIndex) % filteredOptions.length)\n }\n }\n }\n }\n },\n [disabled, isOpen, filteredOptions, activeIndex, searchable, select, close]\n )\n\n // Scroll active item into view\n useEffect(() => {\n if (!isOpen || activeIndex < 0 || !menuRef.current) return\n const activeEl = menuRef.current.querySelector(`[data-index=\"${activeIndex}\"]`)\n activeEl?.scrollIntoView({ block: 'nearest' })\n }, [isOpen, activeIndex])\n\n // Size styles\n const triggerSizes = {\n sm: 'h-8 px-3 text-xs',\n md: 'h-10 px-4 text-sm',\n lg: 'h-12 px-5 text-base',\n }\n\n const itemSizes = {\n sm: 'px-3 py-1.5 text-xs',\n md: 'px-4 py-2 text-sm',\n lg: 'px-5 py-2.5 text-base',\n }\n\n // Variant styles\n const triggerVariants = {\n default: [\n 'bg-transparent',\n 'border-[var(--glass-border)]',\n 'hover:border-[var(--glass-highlight)]',\n ],\n glass: [\n 'bg-[var(--glass-bg)]',\n 'backdrop-blur-lg',\n 'border-[var(--glass-border)]',\n 'hover:bg-[rgba(255,255,255,0.08)]',\n ],\n }\n\n // Display value\n const displayValue = useMemo(() => {\n if (multi) {\n if (selectedMultiValues.length === 0) return null\n const labels = selectedMultiValues\n .map((v) => options.find((o) => o.value === v)?.label ?? v)\n if (labels.length <= 2) return labels.join(', ')\n return `${labels[0]}, ${labels[1]} +${labels.length - 2}`\n }\n if (!selectedValue) return null\n return options.find((o) => o.value === selectedValue)?.label ?? selectedValue\n }, [multi, selectedMultiValues, selectedValue, options])\n\n // Active descendant\n const activeDescendant =\n isOpen && activeIndex >= 0\n ? `${listboxId}-option-${activeIndex}`\n : undefined\n\n // Context value\n const contextValue: DropdownContextValue = {\n isOpen,\n activeIndex,\n selectedValues: selectedSet,\n multi,\n listboxId,\n triggerId,\n toggle,\n close,\n select,\n setActiveIndex,\n registerItem,\n }\n\n // If children are provided, use compound API\n if (children) {\n return (\n <DropdownContext.Provider value={contextValue}>\n <div ref={ref} onKeyDown={handleKeyDown}>\n {children}\n </div>\n </DropdownContext.Provider>\n )\n }\n\n // Options-based rendering\n const menuContent = (\n <ul\n ref={menuRef}\n id={listboxId}\n role=\"listbox\"\n aria-multiselectable={multi || undefined}\n aria-label=\"Options\"\n tabIndex={-1}\n className={cn(\n 'py-1 max-h-60 overflow-y-auto',\n 'bg-[var(--glass-bg)] backdrop-blur-xl',\n 'border border-[var(--glass-border)]',\n 'rounded-xl',\n 'scrollbar-hidden',\n 'animate-in',\n menuClassName\n )}\n style={portal ? portalStyle : undefined}\n >\n {searchable && (\n <li role=\"presentation\" className=\"px-2 py-1.5 sticky top-0 bg-[var(--glass-bg)] backdrop-blur-xl z-10\">\n <div className=\"flex items-center gap-2 px-2 py-1.5 rounded-lg border border-[var(--glass-border)] bg-transparent\">\n <span className=\"text-[var(--color-grey-400)]\">\n <SearchIcon />\n </span>\n <input\n ref={searchRef}\n type=\"text\"\n role=\"searchbox\"\n aria-label=\"Filter options\"\n value={search}\n onChange={(e) => {\n setSearch(e.target.value)\n setActiveIndex(0)\n }}\n placeholder={searchPlaceholder}\n className={cn(\n 'w-full bg-transparent',\n 'text-[var(--color-white)]',\n 'placeholder:text-[var(--color-grey-600)]',\n 'focus:outline-none',\n 'text-xs'\n )}\n />\n </div>\n </li>\n )}\n {filteredOptions.length === 0 && (\n <li\n role=\"presentation\"\n className=\"px-4 py-3 text-center text-xs text-[var(--color-grey-600)]\"\n >\n No options found\n </li>\n )}\n {filteredOptions.map((option, index) => {\n const isSelected = selectedSet.has(option.value)\n const isActive = index === activeIndex\n\n return (\n <li\n key={option.value}\n id={`${listboxId}-option-${index}`}\n role=\"option\"\n aria-selected={isSelected}\n aria-disabled={option.disabled || undefined}\n data-index={index}\n data-value={option.value}\n className={cn(\n 'flex items-center gap-2 cursor-pointer',\n 'transition-[background-color,color] duration-150',\n itemSizes[size],\n isActive && 'bg-[var(--glass-highlight)]',\n isSelected && !isActive && 'text-[var(--color-white)]',\n !isSelected && !isActive && 'text-[var(--color-grey-300)]',\n option.disabled && 'opacity-40 cursor-not-allowed pointer-events-none',\n !option.disabled && !isActive && 'hover:bg-[var(--glass-bg)]'\n )}\n onClick={() => {\n if (!option.disabled) select(option.value)\n }}\n onMouseEnter={() => setActiveIndex(index)}\n >\n {multi && (\n <span\n className={cn(\n 'w-4 h-4 rounded border flex items-center justify-center shrink-0',\n 'transition-[background-color,border-color] duration-150',\n isSelected\n ? 'bg-[var(--color-white)] border-[var(--color-white)] text-[var(--color-bg)]'\n : 'border-[var(--glass-border)]'\n )}\n >\n {isSelected && <CheckIcon />}\n </span>\n )}\n <span className=\"truncate\">{option.label}</span>\n {!multi && isSelected && (\n <span className=\"ml-auto text-[var(--color-white)]\">\n <CheckIcon />\n </span>\n )}\n </li>\n )\n })}\n </ul>\n )\n\n return (\n <div\n ref={(node) => {\n // Merge refs\n ;(containerRef as React.MutableRefObject<HTMLDivElement | null>).current = node\n if (typeof ref === 'function') ref(node)\n else if (ref) (ref as React.MutableRefObject<HTMLDivElement | null>).current = node\n }}\n className=\"relative inline-block w-full\"\n onKeyDown={handleKeyDown}\n >\n {/* Trigger */}\n <button\n ref={triggerRef}\n id={triggerId}\n type=\"button\"\n role=\"combobox\"\n aria-expanded={isOpen}\n aria-haspopup=\"listbox\"\n aria-controls={isOpen ? listboxId : undefined}\n aria-activedescendant={activeDescendant}\n disabled={disabled}\n className={cn(\n 'w-full inline-flex items-center justify-between gap-2',\n 'border rounded-xl',\n 'transition-[border-color,background-color] duration-200',\n 'focus-ring',\n 'disabled:opacity-50 disabled:cursor-not-allowed',\n triggerSizes[size],\n triggerVariants[variant],\n isOpen && 'border-[var(--color-white)]',\n className\n )}\n onClick={toggle}\n >\n <span\n className={cn(\n 'truncate text-left',\n displayValue\n ? 'text-[var(--color-white)]'\n : 'text-[var(--color-grey-600)]'\n )}\n >\n {displayValue ?? placeholder}\n </span>\n <ChevronIcon open={isOpen} className=\"text-[var(--color-grey-400)]\" />\n </button>\n\n {/* Menu */}\n {isOpen && (\n portal\n ? createPortal(menuContent, document.body)\n : <div className=\"absolute left-0 right-0 mt-1 z-50\">{menuContent}</div>\n )}\n </div>\n )\n }\n ),\n {\n Trigger: DropdownTrigger,\n Menu: DropdownMenu,\n Item: DropdownItem,\n }\n)\n\nDropdown.displayName = 'Dropdown'\n","import { type HTMLAttributes, type ReactNode, useState, useCallback, useEffect, useRef } from 'react'\nimport { cn } from '../../utils/cn'\nimport { NavLink } from '../../molecules/NavLink'\nimport { ThemeToggle } from '../../molecules/ThemeToggle'\nimport { MobileDrawer } from '../../molecules/MobileDrawer'\n\nexport interface NavItem {\n label: string\n href: string\n isActive?: boolean\n external?: boolean\n}\n\nexport interface NavProps extends HTMLAttributes<HTMLElement> {\n logo?: ReactNode\n logoHref?: string\n items?: NavItem[]\n theme?: 'dark' | 'light'\n onThemeToggle?: () => void\n showThemeToggle?: boolean\n fixed?: boolean\n hideOnScroll?: boolean\n}\n\nexport function Nav({\n logo,\n logoHref = '/',\n items = [],\n theme = 'dark',\n onThemeToggle,\n showThemeToggle = true,\n fixed = false,\n hideOnScroll = false,\n className,\n ...props\n}: NavProps) {\n const [isMenuOpen, setIsMenuOpen] = useState(false)\n const [navOffset, setNavOffset] = useState(0)\n const lastScrollY = useRef(0)\n const navRef = useRef<HTMLElement>(null)\n\n const toggleMenu = useCallback(() => {\n setIsMenuOpen((prev) => !prev)\n }, [])\n\n const closeMenu = useCallback(() => {\n setIsMenuOpen(false)\n }, [])\n\n useEffect(() => {\n if (!hideOnScroll) return\n\n const handleScroll = () => {\n const currentScrollY = window.scrollY\n const delta = currentScrollY - lastScrollY.current\n const navHeight = navRef.current?.offsetHeight || 80\n\n // Calculate new offset (clamped between -navHeight and 0)\n setNavOffset((prev) => {\n const newOffset = prev - delta\n return Math.max(-navHeight, Math.min(0, newOffset))\n })\n\n lastScrollY.current = currentScrollY\n }\n\n window.addEventListener('scroll', handleScroll, { passive: true })\n return () => window.removeEventListener('scroll', handleScroll)\n }, [hideOnScroll])\n\n return (\n <>\n <nav\n ref={navRef}\n className={cn(\n 'glass-nav',\n 'py-4 md:py-6',\n fixed && 'fixed left-0 right-0 z-50',\n className\n )}\n style={hideOnScroll ? { top: navOffset } : undefined}\n {...props}\n >\n <div className=\"mx-auto max-w-6xl px-6 md:px-12 flex items-center justify-between\">\n {/* Logo */}\n <a\n href={logoHref}\n className=\"text-base md:text-lg font-display font-semibold hover:opacity-70 transition-opacity\"\n style={{ color: 'var(--color-accent)' }}\n >\n {logo}\n </a>\n\n {/* Desktop Navigation */}\n <div className=\"hidden md:flex md:items-center md:gap-6\">\n {items.map((item) => (\n <NavLink\n key={item.href}\n href={item.href}\n isActive={item.isActive}\n variant=\"underline\"\n {...(item.external && { target: '_blank', rel: 'noopener noreferrer' })}\n >\n {item.label}\n </NavLink>\n ))}\n {showThemeToggle && onThemeToggle && (\n <ThemeToggle theme={theme} onToggle={onThemeToggle} size=\"sm\" />\n )}\n </div>\n\n {/* Mobile Menu Button */}\n <button\n onClick={toggleMenu}\n className=\"md:hidden p-2 min-w-[44px] min-h-[44px] flex items-center justify-center rounded-lg transition-opacity duration-200 hover:opacity-70\"\n style={{ color: 'var(--color-grey-200)' }}\n aria-label={isMenuOpen ? 'Close menu' : 'Open menu'}\n aria-expanded={isMenuOpen}\n >\n <svg\n xmlns=\"http://www.w3.org/2000/svg\"\n width=\"24\"\n height=\"24\"\n viewBox=\"0 0 24 24\"\n fill=\"none\"\n stroke=\"currentColor\"\n strokeWidth=\"2\"\n strokeLinecap=\"round\"\n strokeLinejoin=\"round\"\n className=\"transition-transform duration-300\"\n aria-hidden=\"true\"\n >\n {isMenuOpen ? (\n <>\n <path d=\"M18 6L6 18\" />\n <path d=\"M6 6l12 12\" />\n </>\n ) : (\n <>\n <path d=\"M4 6h16\" />\n <path d=\"M4 12h16\" />\n <path d=\"M4 18h16\" />\n </>\n )}\n </svg>\n </button>\n </div>\n </nav>\n\n {/* Mobile Drawer */}\n <MobileDrawer\n isOpen={isMenuOpen}\n onClose={closeMenu}\n position=\"right\"\n width=\"280px\"\n zIndex={55}\n className=\"md:hidden\"\n >\n <div className=\"flex flex-col h-full pt-20 px-6 pb-8\">\n <div className=\"flex flex-col gap-2\">\n <a\n href={logoHref}\n onClick={closeMenu}\n className=\"mobile-nav-link text-lg py-4 px-4 rounded-xl transition-all duration-200 min-h-[52px] flex items-center\"\n style={{ color: 'var(--color-white)' }}\n >\n Home\n </a>\n {items.map((item) => (\n <a\n key={item.href}\n href={item.href}\n onClick={closeMenu}\n className=\"mobile-nav-link text-lg py-4 px-4 rounded-xl transition-all duration-200 min-h-[52px] flex items-center\"\n style={{ color: 'var(--color-white)' }}\n {...(item.external && { target: '_blank', rel: 'noopener noreferrer' })}\n >\n {item.label}\n {item.external && (\n <svg\n xmlns=\"http://www.w3.org/2000/svg\"\n width=\"16\"\n height=\"16\"\n viewBox=\"0 0 24 24\"\n fill=\"none\"\n stroke=\"currentColor\"\n strokeWidth=\"2\"\n strokeLinecap=\"round\"\n strokeLinejoin=\"round\"\n className=\"ml-2 opacity-50\"\n aria-hidden=\"true\"\n >\n <path d=\"M18 13v6a2 2 0 0 1-2 2H5a2 2 0 0 1-2-2V8a2 2 0 0 1 2-2h6\" />\n <polyline points=\"15 3 21 3 21 9\" />\n <line x1=\"10\" y1=\"14\" x2=\"21\" y2=\"3\" />\n </svg>\n )}\n </a>\n ))}\n </div>\n\n {showThemeToggle && onThemeToggle && (\n <div className=\"mt-auto pt-6 border-t\" style={{ borderColor: 'var(--glass-border)' }}>\n <div className=\"flex items-center justify-between px-4\">\n <span className=\"text-sm\" style={{ color: 'var(--color-grey-400)' }}>\n Theme\n </span>\n <ThemeToggle theme={theme} onToggle={onThemeToggle} size=\"sm\" />\n </div>\n </div>\n )}\n </div>\n </MobileDrawer>\n </>\n )\n}\n","import { type HTMLAttributes, type ReactNode } from 'react'\nimport { cn } from '../../utils/cn'\nimport { NavLink } from '../../molecules/NavLink'\n\nexport interface FooterLink {\n label: string\n href: string\n}\n\nexport interface FooterSection {\n title: string\n links: FooterLink[]\n}\n\nexport interface FooterProps extends HTMLAttributes<HTMLElement> {\n logo?: ReactNode\n description?: string\n sections?: FooterSection[]\n bottomLinks?: FooterLink[]\n copyright?: string\n socialLinks?: Array<{\n label: string\n href: string\n icon: ReactNode\n }>\n}\n\nexport function Footer({\n logo,\n description,\n sections = [],\n bottomLinks = [],\n copyright,\n socialLinks = [],\n className,\n ...props\n}: FooterProps) {\n return (\n <footer\n className={cn(\n 'border-t border-[var(--glass-border)]',\n 'bg-[var(--color-bg)]',\n className\n )}\n {...props}\n >\n <div className=\"mx-auto max-w-6xl px-6 py-16 md:px-12\">\n <div className=\"grid grid-cols-1 gap-12 md:grid-cols-4 lg:grid-cols-5\">\n {/* Brand Column */}\n <div className=\"md:col-span-2 lg:col-span-2\">\n {logo && <div className=\"mb-4\">{logo}</div>}\n {description && (\n <p className=\"text-sm text-[var(--color-grey-400)] max-w-sm leading-relaxed\">\n {description}\n </p>\n )}\n {socialLinks.length > 0 && (\n <div className=\"flex items-center gap-4 mt-6\">\n {socialLinks.map((link) => (\n <a\n key={link.href}\n href={link.href}\n className={cn(\n 'text-[var(--color-grey-600)]',\n 'hover:text-[var(--color-white)]',\n 'transition-colors duration-200'\n )}\n aria-label={link.label}\n target=\"_blank\"\n rel=\"noopener noreferrer\"\n >\n {link.icon}\n </a>\n ))}\n </div>\n )}\n </div>\n\n {/* Link Sections */}\n {sections.map((section) => (\n <div key={section.title}>\n <h4 className=\"label mb-4\">{section.title}</h4>\n <ul className=\"space-y-3\">\n {section.links.map((link) => (\n <li key={link.href}>\n <NavLink href={link.href} variant=\"default\">\n {link.label}\n </NavLink>\n </li>\n ))}\n </ul>\n </div>\n ))}\n </div>\n\n {/* Bottom Bar */}\n {(copyright || bottomLinks.length > 0) && (\n <div className=\"mt-16 pt-8 border-t border-[var(--glass-border)] flex flex-col md:flex-row md:items-center md:justify-between gap-4\">\n {copyright && (\n <p className=\"text-xs text-[var(--color-grey-600)]\">{copyright}</p>\n )}\n {bottomLinks.length > 0 && (\n <div className=\"flex flex-wrap items-center gap-6\">\n {bottomLinks.map((link) => (\n <NavLink key={link.href} href={link.href} variant=\"default\">\n <span className=\"text-xs\">{link.label}</span>\n </NavLink>\n ))}\n </div>\n )}\n </div>\n )}\n </div>\n </footer>\n )\n}\n","import { type HTMLAttributes, type ReactNode } from 'react'\nimport { cn } from '../../utils/cn'\nimport { Badge } from '../../atoms/Badge'\nimport { Button } from '../../atoms/Button'\n\nexport interface HeroCTA {\n label: string\n href: string\n variant?: 'primary' | 'secondary' | 'ghost'\n}\n\nexport interface HeroProps extends Omit<HTMLAttributes<HTMLElement>, 'title'> {\n badge?: string\n title: ReactNode\n description?: ReactNode\n ctas?: HeroCTA[]\n align?: 'left' | 'center'\n size?: 'default' | 'large'\n gradient?: boolean\n}\n\nexport function Hero({\n badge,\n title,\n description,\n ctas = [],\n align = 'center',\n size = 'default',\n gradient = true,\n className,\n ...props\n}: HeroProps) {\n const alignments = {\n left: 'text-left items-start',\n center: 'text-center items-center',\n }\n\n const titleSizes = {\n default: 'text-4xl sm:text-5xl md:text-6xl',\n large: 'text-5xl sm:text-6xl md:text-7xl lg:text-8xl',\n }\n\n return (\n <section\n className={cn(\n 'relative',\n 'px-6 py-24 md:py-32 lg:py-40',\n className\n )}\n {...props}\n >\n <div\n className={cn(\n 'mx-auto max-w-4xl',\n 'flex flex-col gap-6',\n alignments[align]\n )}\n >\n {badge && (\n <Badge variant=\"default\" size=\"md\" className=\"animate-in\">\n {badge}\n </Badge>\n )}\n\n <h1\n className={cn(\n 'font-display font-semibold tracking-tight',\n titleSizes[size],\n gradient ? 'hero-gradient-text' : 'text-[var(--color-white)]',\n 'animate-in'\n )}\n style={{ animationDelay: '0.1s', textAlign: align === 'center' ? 'center' : 'left', width: '100%', display: 'block' }}\n >\n {title}\n </h1>\n\n {description && (\n <p\n className={cn(\n 'text-lg md:text-xl',\n 'text-[var(--color-grey-400)]',\n 'max-w-2xl leading-relaxed',\n 'animate-in'\n )}\n style={{ animationDelay: '0.2s' }}\n >\n {description}\n </p>\n )}\n\n {ctas.length > 0 && (\n <div\n className={cn(\n 'flex flex-wrap gap-4 mt-4',\n align === 'center' ? 'justify-center' : 'justify-start',\n 'animate-in'\n )}\n style={{ animationDelay: '0.3s' }}\n >\n {ctas.map((cta, index) => (\n <Button\n key={cta.href}\n variant={cta.variant || (index === 0 ? 'primary' : 'secondary')}\n size=\"lg\"\n asChild\n >\n <a href={cta.href}>{cta.label}</a>\n </Button>\n ))}\n </div>\n )}\n </div>\n </section>\n )\n}\n","import { type HTMLAttributes, type ReactNode } from 'react'\nimport { cn } from '../../utils/cn'\n\nexport interface SectionProps extends HTMLAttributes<HTMLElement> {\n children: ReactNode\n size?: 'sm' | 'md' | 'lg' | 'full'\n spacing?: 'none' | 'sm' | 'md' | 'lg'\n container?: boolean\n}\n\nexport function Section({\n children,\n size = 'md',\n spacing = 'md',\n container = true,\n className,\n ...props\n}: SectionProps) {\n const sizes = {\n sm: 'max-w-3xl',\n md: 'max-w-5xl',\n lg: 'max-w-7xl',\n full: 'max-w-none',\n }\n\n const spacings = {\n none: 'py-0',\n sm: 'py-12 md:py-16',\n md: 'py-16 md:py-24',\n lg: 'py-24 md:py-32',\n }\n\n // Add scroll-margin-top when section has an id for anchor links\n const hasId = Boolean(props.id)\n\n return (\n <section\n className={cn(spacings[spacing], hasId && 'scroll-mt-20', className)}\n {...props}\n >\n {container ? (\n <div className={cn('mx-auto px-6 md:px-10', sizes[size])}>\n {children}\n </div>\n ) : (\n children\n )}\n </section>\n )\n}\n\nexport interface SectionHeaderProps extends HTMLAttributes<HTMLDivElement> {\n title: string\n description?: string\n align?: 'left' | 'center'\n}\n\nexport function SectionHeader({\n title,\n description,\n align = 'left',\n className,\n ...props\n}: SectionHeaderProps) {\n const alignments = {\n left: 'text-left',\n center: 'text-center mx-auto',\n }\n\n return (\n <div\n className={cn('max-w-2xl mb-12', alignments[align], className)}\n {...props}\n >\n <h2 className=\"font-display text-2xl md:text-3xl font-semibold text-[var(--color-white)] tracking-tight\">\n {title}\n </h2>\n {description && (\n <p className=\"mt-4 text-base md:text-lg text-[var(--color-grey-400)] leading-relaxed\">\n {description}\n </p>\n )}\n </div>\n )\n}\n","import { useState, useEffect, useCallback } from 'react'\n\nexport type Theme = 'dark' | 'light'\n\nexport interface UseThemeOptions {\n defaultTheme?: Theme\n storageKey?: string\n attribute?: string\n}\n\nexport interface UseThemeReturn {\n theme: Theme\n setTheme: (theme: Theme) => void\n toggleTheme: () => void\n isDark: boolean\n isLight: boolean\n}\n\nexport function useTheme(options: UseThemeOptions = {}): UseThemeReturn {\n const {\n defaultTheme = 'dark',\n storageKey = 'n3wth-theme',\n attribute = 'data-theme',\n } = options\n\n const [theme, setThemeState] = useState<Theme>(() => {\n if (typeof window === 'undefined') return defaultTheme\n\n const stored = localStorage.getItem(storageKey)\n if (stored === 'dark' || stored === 'light') return stored\n\n if (window.matchMedia('(prefers-color-scheme: light)').matches) {\n return 'light'\n }\n\n return defaultTheme\n })\n\n const setTheme = useCallback(\n (newTheme: Theme) => {\n setThemeState(newTheme)\n\n if (typeof window !== 'undefined') {\n localStorage.setItem(storageKey, newTheme)\n document.documentElement.setAttribute(attribute, newTheme)\n }\n },\n [storageKey, attribute]\n )\n\n const toggleTheme = useCallback(() => {\n setTheme(theme === 'dark' ? 'light' : 'dark')\n }, [theme, setTheme])\n\n // Initialize theme on mount\n useEffect(() => {\n document.documentElement.setAttribute(attribute, theme)\n }, [attribute, theme])\n\n // Listen for system theme changes\n useEffect(() => {\n const mediaQuery = window.matchMedia('(prefers-color-scheme: light)')\n\n const handleChange = (e: MediaQueryListEvent) => {\n const stored = localStorage.getItem(storageKey)\n if (!stored) {\n setTheme(e.matches ? 'light' : 'dark')\n }\n }\n\n mediaQuery.addEventListener('change', handleChange)\n return () => mediaQuery.removeEventListener('change', handleChange)\n }, [storageKey, setTheme])\n\n return {\n theme,\n setTheme,\n toggleTheme,\n isDark: theme === 'dark',\n isLight: theme === 'light',\n }\n}\n","import { useEffect, useCallback, useRef } from 'react'\n\nexport interface KeyboardShortcut {\n key: string\n ctrl?: boolean\n meta?: boolean\n shift?: boolean\n alt?: boolean\n handler: () => void\n description?: string\n}\n\nexport interface UseKeyboardShortcutsOptions {\n shortcuts: KeyboardShortcut[]\n enabled?: boolean\n}\n\nexport function useKeyboardShortcuts({\n shortcuts,\n enabled = true,\n}: UseKeyboardShortcutsOptions): void {\n const shortcutsRef = useRef(shortcuts)\n shortcutsRef.current = shortcuts\n\n const handleKeyDown = useCallback(\n (event: KeyboardEvent) => {\n if (!enabled) return\n\n // Skip if user is typing in an input\n const target = event.target as HTMLElement\n if (\n target.tagName === 'INPUT' ||\n target.tagName === 'TEXTAREA' ||\n target.isContentEditable\n ) {\n return\n }\n\n for (const shortcut of shortcutsRef.current) {\n const keyMatch = event.key.toLowerCase() === shortcut.key.toLowerCase()\n const ctrlMatch = shortcut.ctrl ? event.ctrlKey : !event.ctrlKey\n const metaMatch = shortcut.meta ? event.metaKey : !event.metaKey\n const shiftMatch = shortcut.shift ? event.shiftKey : !event.shiftKey\n const altMatch = shortcut.alt ? event.altKey : !event.altKey\n\n if (keyMatch && ctrlMatch && metaMatch && shiftMatch && altMatch) {\n event.preventDefault()\n shortcut.handler()\n return\n }\n }\n },\n [enabled]\n )\n\n useEffect(() => {\n window.addEventListener('keydown', handleKeyDown)\n return () => window.removeEventListener('keydown', handleKeyDown)\n }, [handleKeyDown])\n}\n\n// Helper to get modifier key based on OS\nexport function getModifierKey(): 'meta' | 'ctrl' {\n if (typeof navigator === 'undefined') return 'ctrl'\n return navigator.platform.toLowerCase().includes('mac') ? 'meta' : 'ctrl'\n}\n\n// Format shortcut for display\nexport function formatShortcut(shortcut: KeyboardShortcut): string {\n const parts: string[] = []\n const isMac = typeof navigator !== 'undefined' && navigator.platform.toLowerCase().includes('mac')\n\n if (shortcut.ctrl) parts.push(isMac ? '^' : 'Ctrl')\n if (shortcut.meta) parts.push(isMac ? '⌘' : 'Win')\n if (shortcut.alt) parts.push(isMac ? '⌥' : 'Alt')\n if (shortcut.shift) parts.push(isMac ? '⇧' : 'Shift')\n parts.push(shortcut.key.toUpperCase())\n\n return parts.join(isMac ? '' : '+')\n}\n","import { useState, useEffect, useCallback, useMemo } from 'react'\n\n/**\n * Standard breakpoints matching Tailwind CSS defaults\n * sm: 640px, md: 768px, lg: 1024px, xl: 1280px, 2xl: 1536px\n */\nexport const BREAKPOINTS = {\n sm: 640,\n md: 768,\n lg: 1024,\n xl: 1280,\n '2xl': 1536,\n} as const\n\nexport type Breakpoint = keyof typeof BREAKPOINTS\n\n/**\n * Hook for responsive media queries with SSR safety\n * Returns false during SSR to prevent hydration mismatches\n *\n * @param query - CSS media query string\n * @param defaultValue - Initial value for SSR (defaults to false)\n * @returns boolean indicating if the query matches\n */\nexport function useMediaQuery(query: string, defaultValue = false): boolean {\n // Use callback to get initial state to avoid SSR issues\n const getInitialState = useCallback(() => {\n if (typeof window === 'undefined') {\n return defaultValue\n }\n return window.matchMedia(query).matches\n }, [query, defaultValue])\n\n const [matches, setMatches] = useState(getInitialState)\n\n useEffect(() => {\n if (typeof window === 'undefined') {\n return\n }\n\n const mediaQuery = window.matchMedia(query)\n\n // Set initial value (handles SSR hydration)\n setMatches(mediaQuery.matches)\n\n const handleChange = (event: MediaQueryListEvent) => {\n setMatches(event.matches)\n }\n\n mediaQuery.addEventListener('change', handleChange)\n return () => mediaQuery.removeEventListener('change', handleChange)\n }, [query])\n\n return matches\n}\n\n/**\n * Returns true when viewport is mobile width (< 768px)\n * Mobile-first default: returns true initially for SSR\n */\nexport function useIsMobile(): boolean {\n return useMediaQuery('(max-width: 767px)', true)\n}\n\n/**\n * Returns true when viewport is tablet width (768px - 1023px)\n */\nexport function useIsTablet(): boolean {\n return useMediaQuery('(min-width: 768px) and (max-width: 1023px)')\n}\n\n/**\n * Returns true when viewport is desktop width (>= 1024px)\n */\nexport function useIsDesktop(): boolean {\n return useMediaQuery('(min-width: 1024px)')\n}\n\n/**\n * Returns true when viewport is large desktop width (>= 1280px)\n */\nexport function useIsLargeDesktop(): boolean {\n return useMediaQuery('(min-width: 1280px)')\n}\n\n/**\n * Returns the current breakpoint name\n * Useful for conditional rendering based on screen size\n */\nexport function useBreakpoint(): Breakpoint | 'xs' {\n const isSm = useMediaQuery(`(min-width: ${BREAKPOINTS.sm}px)`)\n const isMd = useMediaQuery(`(min-width: ${BREAKPOINTS.md}px)`)\n const isLg = useMediaQuery(`(min-width: ${BREAKPOINTS.lg}px)`)\n const isXl = useMediaQuery(`(min-width: ${BREAKPOINTS.xl}px)`)\n const is2xl = useMediaQuery(`(min-width: ${BREAKPOINTS['2xl']}px)`)\n\n return useMemo(() => {\n if (is2xl) return '2xl'\n if (isXl) return 'xl'\n if (isLg) return 'lg'\n if (isMd) return 'md'\n if (isSm) return 'sm'\n return 'xs'\n }, [isSm, isMd, isLg, isXl, is2xl])\n}\n\n/**\n * Returns true when user prefers touch interaction\n * Useful for adapting UI interactions\n */\nexport function useIsTouchDevice(): boolean {\n return useMediaQuery('(hover: none) and (pointer: coarse)')\n}\n\n/**\n * Returns true when viewport is in portrait orientation\n */\nexport function useIsPortrait(): boolean {\n return useMediaQuery('(orientation: portrait)')\n}\n\n/**\n * Returns true when viewport is in landscape orientation\n */\nexport function useIsLandscape(): boolean {\n return useMediaQuery('(orientation: landscape)')\n}\n","import {\n useState,\n useCallback,\n useRef,\n createContext,\n useContext,\n type ReactNode,\n} from 'react'\nimport { createElement } from 'react'\nimport type { ToastVariant, ToastData, ToastPosition } from '../molecules/Toast/Toast'\nimport { Toast, ToastContainer } from '../molecules/Toast/Toast'\n\nexport interface ToastOptions {\n title?: string\n description?: string\n variant?: ToastVariant\n duration?: number\n icon?: ReactNode\n}\n\nexport interface UseToastReturn {\n toasts: ToastData[]\n toast: ToastFn\n dismiss: (id: string) => void\n dismissAll: () => void\n}\n\nexport interface ToastFn {\n (options: ToastOptions): string\n success: (options: Omit<ToastOptions, 'variant'>) => string\n error: (options: Omit<ToastOptions, 'variant'>) => string\n warning: (options: Omit<ToastOptions, 'variant'>) => string\n info: (options: Omit<ToastOptions, 'variant'>) => string\n}\n\nexport interface ToastProviderProps {\n children: ReactNode\n maxToasts?: number\n position?: ToastPosition\n}\n\nlet idCounter = 0\n\nfunction generateId(): string {\n return `toast-${++idCounter}-${Date.now()}`\n}\n\nconst ToastContext = createContext<UseToastReturn | null>(null)\n\nfunction useToastState(maxToasts = 5): UseToastReturn {\n const [toasts, setToasts] = useState<ToastData[]>([])\n const toastsRef = useRef(toasts)\n toastsRef.current = toasts\n\n const dismiss = useCallback((id: string) => {\n setToasts((prev) => prev.filter((t) => t.id !== id))\n }, [])\n\n const dismissAll = useCallback(() => {\n setToasts([])\n }, [])\n\n const addToast = useCallback(\n (options: ToastOptions): string => {\n const id = generateId()\n const newToast: ToastData = {\n id,\n variant: options.variant ?? 'default',\n title: options.title,\n description: options.description,\n duration: options.duration ?? 5000,\n icon: options.icon,\n }\n\n setToasts((prev) => {\n const next = [...prev, newToast]\n if (next.length > maxToasts) {\n return next.slice(next.length - maxToasts)\n }\n return next\n })\n\n return id\n },\n [maxToasts]\n )\n\n const toast = useCallback(\n (options: ToastOptions) => addToast(options),\n [addToast]\n ) as ToastFn\n\n toast.success = useCallback(\n (options: Omit<ToastOptions, 'variant'>) =>\n addToast({ ...options, variant: 'success' }),\n [addToast]\n )\n\n toast.error = useCallback(\n (options: Omit<ToastOptions, 'variant'>) =>\n addToast({ ...options, variant: 'error' }),\n [addToast]\n )\n\n toast.warning = useCallback(\n (options: Omit<ToastOptions, 'variant'>) =>\n addToast({ ...options, variant: 'warning' }),\n [addToast]\n )\n\n toast.info = useCallback(\n (options: Omit<ToastOptions, 'variant'>) =>\n addToast({ ...options, variant: 'info' }),\n [addToast]\n )\n\n return { toasts, toast, dismiss, dismissAll }\n}\n\nexport function ToastProvider({\n children,\n maxToasts = 5,\n position = 'top-right',\n}: ToastProviderProps) {\n const state = useToastState(maxToasts)\n\n return createElement(\n ToastContext.Provider,\n { value: state },\n children,\n createElement(\n ToastContainer,\n { position },\n ...state.toasts.map((t) =>\n createElement(Toast, {\n key: t.id,\n variant: t.variant,\n title: t.title,\n description: t.description,\n duration: t.duration,\n icon: t.icon,\n onDismiss: () => state.dismiss(t.id),\n })\n )\n )\n )\n}\n\nexport function useToast(maxToasts?: number): UseToastReturn {\n const context = useContext(ToastContext)\n if (context) return context\n\n // Fallback: standalone usage without provider\n // eslint-disable-next-line react-hooks/rules-of-hooks\n return useToastState(maxToasts)\n}\n","import { useEffect, useRef, useState } from 'react'\nimport gsap from 'gsap'\nimport { ScrollTrigger } from 'gsap/ScrollTrigger'\n\ngsap.registerPlugin(ScrollTrigger)\n\nexport interface UseCountUpOptions {\n /** Animation duration in seconds */\n duration?: number\n /** Delay before animation starts */\n delay?: number\n /** Trigger animation on scroll into view */\n onScroll?: boolean\n /** Suffix to append to value (e.g., '%', '+') */\n suffix?: string\n /** Prefix to prepend to value (e.g., '$') */\n prefix?: string\n /** Callback when animation completes */\n onComplete?: () => void\n}\n\nexport interface UseCountUpReturn {\n ref: React.RefObject<HTMLElement | null>\n value: number\n displayValue: string\n}\n\n/**\n * Hook for animated number counting\n * Creates smooth counter animations with scroll trigger support\n */\nexport function useCountUp(\n target: number,\n options: UseCountUpOptions = {}\n): UseCountUpReturn {\n const {\n duration = 1.5,\n delay = 0,\n onScroll = true,\n suffix = '',\n prefix = '',\n onComplete,\n } = options\n\n const [value, setValue] = useState(0)\n const ref = useRef<HTMLElement>(null)\n const hasAnimated = useRef(false)\n\n useEffect(() => {\n const element = ref.current\n if (!element || hasAnimated.current) return\n\n const prefersReducedMotion = window.matchMedia(\n '(prefers-reduced-motion: reduce)'\n ).matches\n\n if (prefersReducedMotion) {\n setValue(target)\n onComplete?.()\n return\n }\n\n const counter = { value: 0 }\n\n const animate = () => {\n if (hasAnimated.current) return\n hasAnimated.current = true\n\n gsap.to(counter, {\n value: target,\n duration,\n delay,\n ease: 'power2.out',\n onUpdate: () => {\n setValue(Math.round(counter.value))\n },\n onComplete,\n })\n }\n\n if (onScroll) {\n ScrollTrigger.create({\n trigger: element,\n start: 'top 80%',\n onEnter: animate,\n once: true,\n })\n } else {\n animate()\n }\n\n return () => {\n ScrollTrigger.getAll().forEach((st) => {\n if (st.trigger === element) st.kill()\n })\n }\n }, [target, duration, delay, onScroll, onComplete])\n\n const displayValue = `${prefix}${value.toLocaleString()}${suffix}`\n\n return { ref, value, displayValue }\n}\n","import { useEffect, useRef } from 'react'\nimport gsap from 'gsap'\nimport { ScrollTrigger } from 'gsap/ScrollTrigger'\n\ngsap.registerPlugin(ScrollTrigger)\n\nexport interface UseScrollRevealOptions {\n /** Animation duration in seconds */\n duration?: number\n /** Delay before animation starts */\n delay?: number\n /** Stagger delay between children (false to disable, number for custom) */\n stagger?: boolean | number\n /** Direction elements animate from */\n direction?: 'up' | 'down' | 'left' | 'right'\n /** Distance in pixels to animate from */\n distance?: number\n}\n\n/**\n * Hook that creates scroll-triggered entrance animations\n * Uses GSAP ScrollTrigger for performant viewport-based reveals\n */\nexport function useScrollReveal(options: UseScrollRevealOptions = {}) {\n const {\n duration = 0.8,\n delay = 0,\n stagger = 0.1,\n direction = 'up',\n distance = 40,\n } = options\n\n const ref = useRef<HTMLDivElement>(null)\n\n useEffect(() => {\n const element = ref.current\n if (!element) return\n\n const children = Array.from(element.children) as HTMLElement[]\n if (children.length === 0) return\n\n const directions = {\n up: { y: distance, x: 0 },\n down: { y: -distance, x: 0 },\n left: { x: distance, y: 0 },\n right: { x: -distance, y: 0 },\n }\n\n const movement = directions[direction]\n\n // Check for reduced motion preference\n const prefersReducedMotion = window.matchMedia(\n '(prefers-reduced-motion: reduce)'\n ).matches\n\n if (prefersReducedMotion) {\n children.forEach((child) => {\n child.style.opacity = '1'\n })\n return\n }\n\n // Create timeline for staggered reveals\n const ctx = gsap.context(() => {\n gsap.fromTo(\n children,\n {\n opacity: 0,\n ...movement,\n },\n {\n opacity: 1,\n x: 0,\n y: 0,\n duration,\n delay,\n stagger: stagger ? (typeof stagger === 'number' ? stagger : 0.1) : 0,\n ease: 'cubic.out',\n scrollTrigger: {\n trigger: element,\n start: 'top 80%',\n toggleActions: 'play none none none',\n },\n }\n )\n }, element)\n\n return () => ctx.revert()\n }, [duration, delay, stagger, direction, distance])\n\n return ref\n}\n","import { useEffect, useRef } from 'react'\nimport gsap from 'gsap'\n\nexport interface UseStaggerListOptions {\n /** Animation duration in seconds */\n duration?: number\n /** Stagger delay between items */\n stagger?: number\n /** Delay before animation starts */\n delay?: number\n /** Direction items animate from */\n direction?: 'up' | 'down' | 'left' | 'right' | 'scale'\n}\n\n/**\n * Hook for staggered list item animations\n * Creates cascade effects as items appear\n *\n * Items should have data-stagger-item attribute:\n * ```tsx\n * <ul ref={ref}>\n * <li data-stagger-item>Item 1</li>\n * <li data-stagger-item>Item 2</li>\n * </ul>\n * ```\n */\nexport function useStaggerList(options: UseStaggerListOptions = {}) {\n const {\n duration = 0.5,\n stagger = 0.08,\n delay = 0,\n direction = 'up',\n } = options\n\n const ref = useRef<HTMLElement>(null)\n\n useEffect(() => {\n const container = ref.current\n if (!container) return\n\n const items = container.querySelectorAll('[data-stagger-item]')\n if (items.length === 0) return\n\n const prefersReducedMotion = window.matchMedia(\n '(prefers-reduced-motion: reduce)'\n ).matches\n\n if (prefersReducedMotion) {\n gsap.set(items, { opacity: 1 })\n return\n }\n\n const fromVars: gsap.TweenVars = { opacity: 0 }\n const toVars: gsap.TweenVars = {\n opacity: 1,\n duration,\n stagger,\n delay,\n ease: 'cubic.out',\n }\n\n switch (direction) {\n case 'up':\n fromVars.y = 20\n toVars.y = 0\n break\n case 'down':\n fromVars.y = -20\n toVars.y = 0\n break\n case 'left':\n fromVars.x = 20\n toVars.x = 0\n break\n case 'right':\n fromVars.x = -20\n toVars.x = 0\n break\n case 'scale':\n fromVars.scale = 0.8\n toVars.scale = 1\n toVars.ease = 'back.out(1.7)'\n break\n }\n\n const ctx = gsap.context(() => {\n gsap.fromTo(items, fromVars, toVars)\n }, container)\n\n return () => ctx.revert()\n }, [duration, stagger, delay, direction])\n\n return ref\n}\n","import { useEffect, useRef } from 'react'\nimport gsap from 'gsap'\n\nexport interface UsePageTransitionOptions {\n /** Entrance animation duration in seconds */\n duration?: number\n /** Exit animation duration in seconds */\n exitDuration?: number\n}\n\n/**\n * Hook for page entrance/exit animations\n * Creates smooth transitions when navigating between pages\n */\nexport function usePageTransition(options: UsePageTransitionOptions = {}) {\n const { duration = 0.5, exitDuration = 0.25 } = options\n const pageRef = useRef<HTMLDivElement>(null)\n\n useEffect(() => {\n const page = pageRef.current\n if (!page) return\n\n const prefersReducedMotion = window.matchMedia(\n '(prefers-reduced-motion: reduce)'\n ).matches\n\n if (prefersReducedMotion) {\n page.style.opacity = '1'\n return\n }\n\n // Entrance animation\n gsap.fromTo(\n page,\n {\n opacity: 0,\n y: 16,\n },\n {\n opacity: 1,\n y: 0,\n duration,\n ease: 'cubic.out',\n }\n )\n\n // Exit animation on unmount\n return () => {\n if (page) {\n gsap.to(page, {\n opacity: 0,\n y: -8,\n duration: exitDuration,\n ease: 'cubic.in',\n })\n }\n }\n }, [duration, exitDuration])\n\n return pageRef\n}\n","import { useEffect, useRef } from 'react'\nimport gsap from 'gsap'\nimport { ScrollTrigger } from 'gsap/ScrollTrigger'\n\ngsap.registerPlugin(ScrollTrigger)\n\nexport interface UseTextRevealOptions {\n /** Animation duration in seconds */\n duration?: number\n /** Delay before animation starts */\n delay?: number\n /** Stagger amount between characters */\n staggerAmount?: number\n /** Trigger animation on scroll into view */\n onScroll?: boolean\n}\n\n/**\n * Hook for revealing text character by character\n * Creates staggered entrance animations for text content\n *\n * Note: This will replace the element's text content with spans\n */\nexport function useTextReveal(options: UseTextRevealOptions = {}) {\n const {\n duration = 0.6,\n delay = 0,\n staggerAmount = 0.03,\n onScroll = true,\n } = options\n\n const ref = useRef<HTMLElement>(null)\n\n useEffect(() => {\n const element = ref.current\n if (!element) return\n\n const text = element.textContent || ''\n const prefersReducedMotion = window.matchMedia(\n '(prefers-reduced-motion: reduce)'\n ).matches\n\n if (prefersReducedMotion || !text) return\n\n // Split text into characters\n const characters = text.split('')\n element.textContent = ''\n\n // Create spans for each character\n characters.forEach((char) => {\n const span = document.createElement('span')\n span.textContent = char === ' ' ? '\\u00A0' : char // Non-breaking space for spaces\n span.style.display = 'inline-block'\n span.style.opacity = '0'\n element.appendChild(span)\n })\n\n const spans = Array.from(element.querySelectorAll('span'))\n\n const ctx = gsap.context(() => {\n if (onScroll) {\n gsap.fromTo(\n spans,\n { opacity: 0, y: 12 },\n {\n opacity: 1,\n y: 0,\n duration: duration / 2,\n stagger: staggerAmount,\n ease: 'cubic.out',\n scrollTrigger: {\n trigger: element,\n start: 'top 75%',\n toggleActions: 'play none none none',\n },\n }\n )\n } else {\n gsap.fromTo(\n spans,\n { opacity: 0, y: 12 },\n {\n opacity: 1,\n y: 0,\n duration: duration / 2,\n stagger: staggerAmount,\n delay,\n ease: 'cubic.out',\n }\n )\n }\n }, element)\n\n return () => ctx.revert()\n }, [duration, delay, staggerAmount, onScroll])\n\n return ref\n}\n","import { useEffect, useRef } from 'react'\nimport gsap from 'gsap'\n\nexport interface UseButtonPulseOptions {\n /** Scale on hover */\n hoverScale?: number\n /** Scale on press */\n pressScale?: number\n /** Animation duration in seconds */\n duration?: number\n}\n\n/**\n * Hook for subtle button interaction animations\n * Creates depth-aware scale interactions on hover and press\n */\nexport function useButtonPulse(options: UseButtonPulseOptions = {}) {\n const { hoverScale = 1.02, pressScale = 0.96, duration = 0.2 } = options\n\n const ref = useRef<HTMLButtonElement>(null)\n\n useEffect(() => {\n const button = ref.current\n if (!button) return\n\n const prefersReducedMotion = window.matchMedia(\n '(prefers-reduced-motion: reduce)'\n ).matches\n\n if (prefersReducedMotion) return\n\n const handleMouseEnter = () => {\n gsap.to(button, {\n scale: hoverScale,\n duration,\n ease: 'cubic.out',\n })\n }\n\n const handleMouseLeave = () => {\n gsap.to(button, {\n scale: 1,\n duration,\n ease: 'cubic.out',\n })\n }\n\n const handleMouseDown = () => {\n gsap.to(button, {\n scale: pressScale,\n duration: duration / 2,\n ease: 'cubic.out',\n })\n }\n\n const handleMouseUp = () => {\n gsap.to(button, {\n scale: hoverScale,\n duration: duration / 2,\n ease: 'cubic.out',\n })\n }\n\n button.addEventListener('mouseenter', handleMouseEnter)\n button.addEventListener('mouseleave', handleMouseLeave)\n button.addEventListener('mousedown', handleMouseDown)\n button.addEventListener('mouseup', handleMouseUp)\n\n return () => {\n button.removeEventListener('mouseenter', handleMouseEnter)\n button.removeEventListener('mouseleave', handleMouseLeave)\n button.removeEventListener('mousedown', handleMouseDown)\n button.removeEventListener('mouseup', handleMouseUp)\n }\n }, [hoverScale, pressScale, duration])\n\n return ref\n}\n"],"names":["colors","typography","spacing","borderRadius","effects","r","e","t","f","n","o","clsx","CLASS_PART_SEPARATOR","createClassGroupUtils","config","classMap","createClassMap","conflictingClassGroups","conflictingClassGroupModifiers","className","classParts","getGroupRecursive","getGroupIdForArbitraryProperty","classGroupId","hasPostfixModifier","conflicts","classPartObject","currentClassPart","nextClassPartObject","classGroupFromNextClassPart","classRest","validator","arbitraryPropertyRegex","arbitraryPropertyClassName","property","theme","prefix","getPrefixedClassGroupEntries","classGroup","processClassesRecursively","classDefinition","classPartObjectToEdit","getPart","isThemeGetter","key","path","currentClassPartObject","pathPart","func","classGroupEntries","prefixedClassGroup","value","createLruCache","maxCacheSize","cacheSize","cache","previousCache","update","IMPORTANT_MODIFIER","createParseClassName","separator","experimentalParseClassName","isSeparatorSingleCharacter","firstSeparatorCharacter","separatorLength","parseClassName","modifiers","bracketDepth","modifierStart","postfixModifierPosition","index","currentCharacter","baseClassNameWithImportantModifier","hasImportantModifier","baseClassName","maybePostfixModifierPosition","sortModifiers","sortedModifiers","unsortedModifiers","modifier","createConfigUtils","SPLIT_CLASSES_REGEX","mergeClassList","classList","configUtils","getClassGroupId","getConflictingClassGroupIds","classGroupsInConflict","classNames","result","originalClassName","variantModifier","modifierId","classId","conflictGroups","i","group","twJoin","argument","resolvedValue","string","toValue","mix","k","createTailwindMerge","createConfigFirst","createConfigRest","cacheGet","cacheSet","functionToCall","initTailwindMerge","previousConfig","createConfigCurrent","tailwindMerge","cachedResult","fromTheme","themeGetter","arbitraryValueRegex","fractionRegex","stringLengths","tshirtUnitRegex","lengthUnitRegex","colorFunctionRegex","shadowRegex","imageRegex","isLength","isNumber","isArbitraryLength","getIsArbitraryValue","isLengthOnly","isArbitraryNumber","isInteger","isPercent","isArbitraryValue","isTshirtSize","sizeLabels","isArbitrarySize","isNever","isArbitraryPosition","imageLabels","isArbitraryImage","isImage","isArbitraryShadow","isShadow","isAny","label","testValue","getDefaultConfig","blur","brightness","borderColor","borderSpacing","borderWidth","contrast","grayscale","hueRotate","invert","gap","gradientColorStops","gradientColorStopPositions","inset","margin","opacity","padding","saturate","scale","sepia","skew","space","translate","getOverscroll","getOverflow","getSpacingWithAutoAndArbitrary","getSpacingWithArbitrary","getLengthWithEmptyAndArbitrary","getNumberWithAutoAndArbitrary","getPositions","getLineStyles","getBlendModes","getAlign","getZeroAndEmpty","getBreaks","getNumberAndArbitrary","twMerge","cn","inputs","Button","forwardRef","variant","size","children","isLoading","leftIcon","rightIcon","disabled","asChild","touchTarget","props","ref","baseStyles","variants","sizes","getSizeClasses","classes","touchTargetStyles","buttonClassName","childElement","isValidElement","content","jsxs","Fragment","jsx","cloneElement","Badge","Input","inputSize","error","labelId","id","hasError","errorMessage","errorId","wrapperStyles","inputSizes","iconPadding","p","s","c","u","d","m","w","l","x","h","C","S","V","L","g","a","j","iconComponents","ArrowRight","ArrowLeft","ArrowUp","ArrowDown","NavArrowRight","NavArrowLeft","NavArrowDown","NavArrowUp","Check","Xmark","Copy","Search","Menu","SunLight","HalfMoon","ArrowUpRight","Github","Terminal","Code","Sparks","Plus","Minus","Settings","User","Heart","Star","Mail","Calendar","Clock","Bell","Home","Folder","Page","Trash","EditPencil","Eye","EyeClosed","Lock","LockSlash","Link","OpenInWindow","Download","Upload","RefreshDouble","Filter","SortDown","ViewGrid","List","MoreHoriz","MoreVert","InfoCircle","WarningTriangle","CheckCircle","XmarkCircle","sizeClasses","sizePixels","Icon","name","IconComponent","isNumericSize","pixelSize","noiseSvg","NoiseOverlay","fixed","style","sizeMap","positionMap","ScrollIndicator","position","icon","text","HamburgerIcon","isOpen","animationStyles","AnimatedText","animation","delay","duration","Component","animateOnScroll","initial","animationStyle","COLORS","tokenize","code","tokens","remaining","patterns","matched","pattern","type","match","CodeBlock","_language","showLineNumbers","useMemo","lines","_","token","Skeleton","width","height","animate","CardSkeleton","showHeader","showTags","patternCounter","generatePatternId","generateCheckeredPattern","half","generateStripedPattern","angle","stripeWidth","totalWidth","stripes","color","generateDottedPattern","bgColor","dotColor","radius","generatePattern","getShapePath","isResponsiveSize","Shape","patternColors","patternScale","patternAngle","rotation","ariaHidden","computedSize","responsiveStyles","getSize","patternResult","fill","renderShape","responsiveClass","renderEyes","expression","featureColor","renderMouth","renderAccessory","accessory","accessoryColor","Character","SpeechBubble","direction","isThought","tailPosition","dotsPosition","getCoords","triggerRect","tooltipRect","preferred","viewport","positions","fits","pos","top","left","actualPosition","coords","pad","Tooltip","showDelay","hideDelay","arrow","visible","setVisible","useState","setCoords","triggerRef","useRef","tooltipRef","showTimeout","hideTimeout","tooltipId","useId","updatePosition","useCallback","trigger","tooltip","show","hide","useEffect","handleUpdate","arrowStyles","actualPos","tooltipElement","createPortal","node","Card","paddings","CardHeader","CardTitle","Tag","CardDescription","CardContent","CardFooter","NavLink","isActive","getColor","CommandBox","command","showCopyButton","onCopy","copied","setCopied","handleCopy","err","ThemeToggle","onToggle","iconSizes","MobileDrawer","onClose","zIndex","ariaLabel","drawerRef","previousActiveElement","handleEscape","handleKeyDown","focusableElements","firstElement","lastElement","translateClass","positionClass","ErrorBoundary","__publicField","errorInfo","ErrorFallback","title","message","showReload","showHomeLink","homeUrl","presets","CompositeShape","preset","layers","shapeLayers","bounds","acc","layer","halfSize","y","centerX","centerY","FOCUSABLE_SELECTOR","Modal","closeOnBackdropClick","closeOnEscape","internalRef","panelRef","descriptionId","mounted","setMounted","timer","scrollY","panel","firstFocusable","handleBackdropClick","ModalHeader","ModalTitle","ModalDescription","ModalBody","ModalFooter","ModalCloseButton","onClick","useReducedMotion","getInitialState","prefersReducedMotion","setPrefersReducedMotion","mediaQuery","handleChange","event","useMotionConfig","usePrefersHighContrast","prefersHighContrast","setPrefersHighContrast","TabsContext","createContext","useTabsContext","context","useContext","Tabs","onChange","defaultValue","internalValue","setInternalValue","tabElementsRef","baseId","activeValue","setActiveValue","newValue","registerTab","tabValue","element","getTabElements","TabsList","glass","listRef","indicatorRef","mergedRef","indicator","list","activeTab","listRect","tabRect","isUnderline","isPill","TabsTab","onKeyDown","tabs","tabValues","currentIndex","targetIndex","targetValue","targetElement","TabsPanel","variantIcons","variantStyles","variantIconColors","Toast","description","onDismiss","open","isVisible","setIsVisible","isExiting","setIsExiting","timerRef","handleDismiss","iconElement","positionStyles","ToastContainer","DropdownContext","useDropdownContext","ctx","useClickOutside","refs","handler","onPointerDown","target","usePositioning","setStyle","rect","DropdownTrigger","handleClick","DropdownMenu","DropdownItem","isSelected","ChevronIcon","SearchIcon","CheckIcon","Dropdown","options","values","defaultValues","onMultiChange","multi","searchable","placeholder","searchPlaceholder","menuClassName","portal","uid","triggerId","listboxId","setIsOpen","search","setSearch","activeIndex","setActiveIndex","internalValues","setInternalValues","isControlled","selectedValue","selectedMultiValues","selectedSet","menuRef","searchRef","containerRef","itemMapRef","filteredOptions","lower","portalStyle","close","toggle","prev","select","val","next","v","registerItem","max","first","char","startIndex","triggerSizes","itemSizes","triggerVariants","displayValue","labels","activeDescendant","contextValue","menuContent","option","Nav","logo","logoHref","items","onThemeToggle","showThemeToggle","hideOnScroll","isMenuOpen","setIsMenuOpen","navOffset","setNavOffset","lastScrollY","navRef","toggleMenu","closeMenu","handleScroll","currentScrollY","delta","navHeight","newOffset","item","Footer","sections","bottomLinks","copyright","socialLinks","link","section","Hero","badge","ctas","align","gradient","alignments","titleSizes","cta","Section","container","spacings","hasId","SectionHeader","useTheme","defaultTheme","storageKey","attribute","setThemeState","stored","setTheme","newTheme","toggleTheme","useKeyboardShortcuts","shortcuts","enabled","shortcutsRef","shortcut","keyMatch","ctrlMatch","metaMatch","shiftMatch","altMatch","getModifierKey","formatShortcut","parts","isMac","BREAKPOINTS","useMediaQuery","query","matches","setMatches","useIsMobile","useIsTablet","useIsDesktop","useIsLargeDesktop","useBreakpoint","isSm","isMd","isLg","isXl","is2xl","useIsTouchDevice","useIsPortrait","useIsLandscape","idCounter","generateId","ToastContext","useToastState","maxToasts","toasts","setToasts","toastsRef","dismiss","dismissAll","addToast","newToast","toast","ToastProvider","state","createElement","useToast","gsap","ScrollTrigger","useCountUp","onScroll","suffix","onComplete","setValue","hasAnimated","counter","st","useScrollReveal","stagger","distance","movement","child","useStaggerList","fromVars","toVars","usePageTransition","exitDuration","pageRef","page","useTextReveal","staggerAmount","characters","span","spans","useButtonPulse","hoverScale","pressScale","button","handleMouseEnter","handleMouseLeave","handleMouseDown","handleMouseUp"],"mappings":"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","x_google_ignoreList":[4,5,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,29,30,31,32,33,34,35,36,37,38,39,40,41,42,43,44,45,46,47,48,49,50,51,52,53,54,55,56,57,58,59,60,61,62,63,64]}
1
+ {"version":3,"file":"index.js","sources":["../src/tokens/colors.ts","../src/tokens/typography.ts","../src/tokens/spacing.ts","../src/tokens/effects.ts","../node_modules/clsx/dist/clsx.mjs","../node_modules/tailwind-merge/dist/bundle-mjs.mjs","../src/utils/cn.ts","../src/atoms/Button/Button.tsx","../src/atoms/Badge/Badge.tsx","../src/atoms/Input/Input.tsx","../node_modules/iconoir-react/dist/esm/IconoirContext.mjs","../node_modules/iconoir-react/dist/esm/regular/ArrowDown.mjs","../node_modules/iconoir-react/dist/esm/regular/ArrowLeft.mjs","../node_modules/iconoir-react/dist/esm/regular/ArrowRight.mjs","../node_modules/iconoir-react/dist/esm/regular/ArrowUpRight.mjs","../node_modules/iconoir-react/dist/esm/regular/ArrowUp.mjs","../node_modules/iconoir-react/dist/esm/regular/Bell.mjs","../node_modules/iconoir-react/dist/esm/regular/Calendar.mjs","../node_modules/iconoir-react/dist/esm/regular/CheckCircle.mjs","../node_modules/iconoir-react/dist/esm/regular/Check.mjs","../node_modules/iconoir-react/dist/esm/regular/Clock.mjs","../node_modules/iconoir-react/dist/esm/regular/Code.mjs","../node_modules/iconoir-react/dist/esm/regular/Copy.mjs","../node_modules/iconoir-react/dist/esm/regular/Download.mjs","../node_modules/iconoir-react/dist/esm/regular/EditPencil.mjs","../node_modules/iconoir-react/dist/esm/regular/EyeClosed.mjs","../node_modules/iconoir-react/dist/esm/regular/Eye.mjs","../node_modules/iconoir-react/dist/esm/regular/Filter.mjs","../node_modules/iconoir-react/dist/esm/regular/Folder.mjs","../node_modules/iconoir-react/dist/esm/regular/Github.mjs","../node_modules/iconoir-react/dist/esm/regular/HalfMoon.mjs","../node_modules/iconoir-react/dist/esm/regular/Heart.mjs","../node_modules/iconoir-react/dist/esm/regular/Home.mjs","../node_modules/iconoir-react/dist/esm/regular/InfoCircle.mjs","../node_modules/iconoir-react/dist/esm/regular/Link.mjs","../node_modules/iconoir-react/dist/esm/regular/List.mjs","../node_modules/iconoir-react/dist/esm/regular/LockSlash.mjs","../node_modules/iconoir-react/dist/esm/regular/Lock.mjs","../node_modules/iconoir-react/dist/esm/regular/Mail.mjs","../node_modules/iconoir-react/dist/esm/regular/Menu.mjs","../node_modules/iconoir-react/dist/esm/regular/Minus.mjs","../node_modules/iconoir-react/dist/esm/regular/MoreHoriz.mjs","../node_modules/iconoir-react/dist/esm/regular/MoreVert.mjs","../node_modules/iconoir-react/dist/esm/regular/NavArrowDown.mjs","../node_modules/iconoir-react/dist/esm/regular/NavArrowLeft.mjs","../node_modules/iconoir-react/dist/esm/regular/NavArrowRight.mjs","../node_modules/iconoir-react/dist/esm/regular/NavArrowUp.mjs","../node_modules/iconoir-react/dist/esm/regular/OpenInWindow.mjs","../node_modules/iconoir-react/dist/esm/regular/Page.mjs","../node_modules/iconoir-react/dist/esm/regular/Plus.mjs","../node_modules/iconoir-react/dist/esm/regular/RefreshDouble.mjs","../node_modules/iconoir-react/dist/esm/regular/Search.mjs","../node_modules/iconoir-react/dist/esm/regular/Settings.mjs","../node_modules/iconoir-react/dist/esm/regular/SortDown.mjs","../node_modules/iconoir-react/dist/esm/regular/Sparks.mjs","../node_modules/iconoir-react/dist/esm/regular/Star.mjs","../node_modules/iconoir-react/dist/esm/regular/SunLight.mjs","../node_modules/iconoir-react/dist/esm/regular/Terminal.mjs","../node_modules/iconoir-react/dist/esm/regular/Trash.mjs","../node_modules/iconoir-react/dist/esm/regular/Upload.mjs","../node_modules/iconoir-react/dist/esm/regular/User.mjs","../node_modules/iconoir-react/dist/esm/regular/ViewGrid.mjs","../node_modules/iconoir-react/dist/esm/regular/WarningTriangle.mjs","../node_modules/iconoir-react/dist/esm/regular/XmarkCircle.mjs","../node_modules/iconoir-react/dist/esm/regular/Xmark.mjs","../src/atoms/Icon/Icon.tsx","../src/atoms/NoiseOverlay/NoiseOverlay.tsx","../src/atoms/ScrollIndicator/ScrollIndicator.tsx","../src/atoms/HamburgerIcon/HamburgerIcon.tsx","../src/atoms/AnimatedText/AnimatedText.tsx","../src/atoms/CodeBlock/CodeBlock.tsx","../src/atoms/Skeleton/Skeleton.tsx","../src/atoms/Shape/patterns.ts","../src/atoms/Shape/Shape.tsx","../src/atoms/Character/Character.tsx","../src/atoms/SpeechBubble/SpeechBubble.tsx","../src/atoms/Tooltip/Tooltip.tsx","../src/molecules/Card/Card.tsx","../src/molecules/NavLink/NavLink.tsx","../src/molecules/CommandBox/CommandBox.tsx","../src/molecules/ThemeToggle/ThemeToggle.tsx","../src/molecules/MobileDrawer/MobileDrawer.tsx","../src/molecules/ErrorBoundary/ErrorBoundary.tsx","../src/molecules/CompositeShape/presets.ts","../src/molecules/CompositeShape/CompositeShape.tsx","../src/molecules/Modal/Modal.tsx","../src/hooks/useReducedMotion.ts","../src/molecules/Tabs/Tabs.tsx","../src/molecules/Toast/Toast.tsx","../src/molecules/Dropdown/Dropdown.tsx","../src/organisms/Nav/Nav.tsx","../src/organisms/Footer/Footer.tsx","../src/organisms/Hero/Hero.tsx","../src/organisms/Section/Section.tsx","../src/hooks/useTheme.ts","../src/hooks/useKeyboardShortcuts.ts","../src/hooks/useMediaQuery.ts","../src/hooks/useToast.ts","../src/hooks/useCountUp.ts","../src/hooks/useScrollReveal.ts","../src/hooks/useStaggerList.ts","../src/hooks/usePageTransition.ts","../src/hooks/useTextReveal.ts","../src/hooks/useButtonPulse.ts"],"sourcesContent":["export const colors = {\n // Dark mode (default)\n dark: {\n bg: '#000000',\n bgSecondary: '#0a0a0a',\n white: '#ffffff',\n grey: {\n 100: '#f5f5f7',\n 200: '#e8e8ed',\n 300: '#c7c7cc',\n 400: '#86868b',\n 600: '#6e6e73',\n 800: '#1d1d1f',\n },\n accent: '#ffffff',\n accentSoft: 'rgba(255, 255, 255, 0.15)',\n glass: {\n bg: 'rgba(255, 255, 255, 0.05)',\n border: 'rgba(255, 255, 255, 0.1)',\n highlight: 'rgba(255, 255, 255, 0.15)',\n },\n // Category colors (flat, no glow)\n category: {\n sage: '#30d158',\n coral: '#ff6961',\n mint: '#64d2ff',\n gold: '#ffd60a',\n },\n // Playful illustration colors\n playful: {\n pink: '#FF6B9D',\n green: '#2ECC71',\n maroon: '#922B3E',\n olive: '#8B7355',\n peach: '#FFAB91',\n lavender: '#A78BFA',\n teal: '#20B2AA',\n mustard: '#F39C12',\n },\n },\n // Light mode\n light: {\n bg: '#ffffff',\n bgSecondary: '#f5f5f7',\n white: '#1d1d1f',\n grey: {\n 100: '#1d1d1f',\n 200: '#3a3a3c',\n 300: '#48484a',\n 400: '#636366',\n 600: '#8e8e93',\n 800: '#e5e5ea',\n },\n accent: '#1d1d1f',\n accentSoft: 'rgba(0, 0, 0, 0.1)',\n glass: {\n bg: 'rgba(0, 0, 0, 0.03)',\n border: 'rgba(0, 0, 0, 0.08)',\n highlight: 'rgba(0, 0, 0, 0.12)',\n },\n category: {\n sage: '#248a3d',\n coral: '#d70015',\n mint: '#0071e3',\n gold: '#b25000',\n },\n // Playful illustration colors (slightly adjusted for light mode)\n playful: {\n pink: '#E91E63',\n green: '#27AE60',\n maroon: '#7B1E2E',\n olive: '#6B5344',\n peach: '#FF8A65',\n lavender: '#9575CD',\n teal: '#009688',\n mustard: '#E67E22',\n },\n },\n} as const\n\nexport type ColorMode = keyof typeof colors\n","export const typography = {\n fontFamily: {\n display: \"'Mona Sans', system-ui, sans-serif\",\n sans: \"'Geist Sans', system-ui, sans-serif\",\n mono: \"'Geist Mono', ui-monospace, 'SF Mono', Menlo, Monaco, monospace\",\n },\n fontSize: {\n xs: '0.6875rem', // 11px\n sm: '0.875rem', // 14px\n base: '1rem', // 16px\n lg: '1.125rem', // 18px\n xl: '1.25rem', // 20px\n '2xl': '1.5rem', // 24px\n '3xl': '2rem', // 32px\n '4xl': '2.5rem', // 40px\n '5xl': '3rem', // 48px\n '6xl': '4rem', // 64px\n '7xl': '5rem', // 80px\n '8xl': '6rem', // 96px\n '9xl': '8rem', // 128px\n '10xl': '10rem', // 160px\n },\n fontWeight: {\n light: '300',\n normal: '400',\n medium: '500',\n semibold: '600',\n bold: '700',\n extrabold: '800',\n black: '900',\n },\n letterSpacing: {\n tighter: '-0.05em',\n tight: '-0.025em',\n normal: '0',\n wide: '0.08em',\n },\n lineHeight: {\n none: '1',\n tight: '1.1',\n snug: '1.25',\n normal: '1.5',\n relaxed: '1.625',\n },\n} as const\n","export const spacing = {\n px: '1px',\n 0: '0',\n 0.5: '0.125rem',\n 1: '0.25rem',\n 2: '0.5rem',\n 3: '0.75rem',\n 4: '1rem',\n 5: '1.25rem',\n 6: '1.5rem',\n 8: '2rem',\n 10: '2.5rem',\n 12: '3rem',\n 16: '4rem',\n 20: '5rem',\n 24: '6rem',\n 32: '8rem',\n} as const\n\nexport const borderRadius = {\n none: '0',\n sm: '0.25rem',\n md: '0.5rem',\n lg: '1rem',\n xl: '1.25rem',\n '2xl': '1.5rem',\n full: '9999px',\n} as const\n","export const effects = {\n // Transitions\n transition: {\n fast: '0.15s cubic-bezier(0.4, 0, 0.2, 1)',\n base: '0.2s cubic-bezier(0.4, 0, 0.2, 1)',\n slow: '0.3s cubic-bezier(0.4, 0, 0.2, 1)',\n spring: '0.35s cubic-bezier(0.4, 0, 0.2, 1)',\n },\n // Backdrop blur for glass effect\n backdropBlur: {\n sm: '8px',\n md: '12px',\n lg: '20px',\n xl: '40px',\n },\n // Transform scales for hover states (NO shadows!)\n scale: {\n press: '0.96',\n hover: '1.02',\n active: '1.05',\n },\n} as const\n\n// NO box-shadow, drop-shadow, or glow effects!\n","function r(e){var t,f,n=\"\";if(\"string\"==typeof e||\"number\"==typeof e)n+=e;else if(\"object\"==typeof e)if(Array.isArray(e)){var o=e.length;for(t=0;t<o;t++)e[t]&&(f=r(e[t]))&&(n&&(n+=\" \"),n+=f)}else for(f in e)e[f]&&(n&&(n+=\" \"),n+=f);return n}export function clsx(){for(var e,t,f=0,n=\"\",o=arguments.length;f<o;f++)(e=arguments[f])&&(t=r(e))&&(n&&(n+=\" \"),n+=t);return n}export default clsx;","const CLASS_PART_SEPARATOR = '-';\nconst createClassGroupUtils = config => {\n const classMap = createClassMap(config);\n const {\n conflictingClassGroups,\n conflictingClassGroupModifiers\n } = config;\n const getClassGroupId = className => {\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 remove it from classParts.\n if (classParts[0] === '' && classParts.length !== 1) {\n classParts.shift();\n }\n return getGroupRecursive(classParts, classMap) || getGroupIdForArbitraryProperty(className);\n };\n const getConflictingClassGroupIds = (classGroupId, hasPostfixModifier) => {\n const conflicts = conflictingClassGroups[classGroupId] || [];\n if (hasPostfixModifier && conflictingClassGroupModifiers[classGroupId]) {\n return [...conflicts, ...conflictingClassGroupModifiers[classGroupId]];\n }\n return conflicts;\n };\n return {\n getClassGroupId,\n getConflictingClassGroupIds\n };\n};\nconst getGroupRecursive = (classParts, classPartObject) => {\n if (classParts.length === 0) {\n return classPartObject.classGroupId;\n }\n const currentClassPart = classParts[0];\n const nextClassPartObject = classPartObject.nextPart.get(currentClassPart);\n const classGroupFromNextClassPart = nextClassPartObject ? getGroupRecursive(classParts.slice(1), nextClassPartObject) : undefined;\n if (classGroupFromNextClassPart) {\n return classGroupFromNextClassPart;\n }\n if (classPartObject.validators.length === 0) {\n return undefined;\n }\n const classRest = classParts.join(CLASS_PART_SEPARATOR);\n return classPartObject.validators.find(({\n validator\n }) => validator(classRest))?.classGroupId;\n};\nconst arbitraryPropertyRegex = /^\\[(.+)\\]$/;\nconst getGroupIdForArbitraryProperty = className => {\n if (arbitraryPropertyRegex.test(className)) {\n const arbitraryPropertyClassName = arbitraryPropertyRegex.exec(className)[1];\n const property = arbitraryPropertyClassName?.substring(0, arbitraryPropertyClassName.indexOf(':'));\n if (property) {\n // I use two dots here because one dot is used as prefix for class groups in plugins\n return 'arbitrary..' + property;\n }\n }\n};\n/**\n * Exported for testing only\n */\nconst createClassMap = config => {\n const {\n theme,\n prefix\n } = config;\n const classMap = {\n nextPart: new Map(),\n validators: []\n };\n const prefixedClassGroupEntries = getPrefixedClassGroupEntries(Object.entries(config.classGroups), prefix);\n prefixedClassGroupEntries.forEach(([classGroupId, classGroup]) => {\n processClassesRecursively(classGroup, classMap, classGroupId, theme);\n });\n return classMap;\n};\nconst processClassesRecursively = (classGroup, classPartObject, classGroupId, theme) => {\n classGroup.forEach(classDefinition => {\n if (typeof classDefinition === 'string') {\n const classPartObjectToEdit = classDefinition === '' ? classPartObject : getPart(classPartObject, classDefinition);\n classPartObjectToEdit.classGroupId = classGroupId;\n return;\n }\n if (typeof classDefinition === 'function') {\n if (isThemeGetter(classDefinition)) {\n processClassesRecursively(classDefinition(theme), classPartObject, classGroupId, theme);\n return;\n }\n classPartObject.validators.push({\n validator: classDefinition,\n classGroupId\n });\n return;\n }\n Object.entries(classDefinition).forEach(([key, classGroup]) => {\n processClassesRecursively(classGroup, getPart(classPartObject, key), classGroupId, theme);\n });\n });\n};\nconst getPart = (classPartObject, path) => {\n let currentClassPartObject = classPartObject;\n path.split(CLASS_PART_SEPARATOR).forEach(pathPart => {\n if (!currentClassPartObject.nextPart.has(pathPart)) {\n currentClassPartObject.nextPart.set(pathPart, {\n nextPart: new Map(),\n validators: []\n });\n }\n currentClassPartObject = currentClassPartObject.nextPart.get(pathPart);\n });\n return currentClassPartObject;\n};\nconst isThemeGetter = func => func.isThemeGetter;\nconst getPrefixedClassGroupEntries = (classGroupEntries, prefix) => {\n if (!prefix) {\n return classGroupEntries;\n }\n return classGroupEntries.map(([classGroupId, classGroup]) => {\n const prefixedClassGroup = classGroup.map(classDefinition => {\n if (typeof classDefinition === 'string') {\n return prefix + classDefinition;\n }\n if (typeof classDefinition === 'object') {\n return Object.fromEntries(Object.entries(classDefinition).map(([key, value]) => [prefix + key, value]));\n }\n return classDefinition;\n });\n return [classGroupId, prefixedClassGroup];\n });\n};\n\n// LRU cache inspired from hashlru (https://github.com/dominictarr/hashlru/blob/v1.0.4/index.js) but object replaced with Map to improve performance\nconst createLruCache = maxCacheSize => {\n if (maxCacheSize < 1) {\n return {\n get: () => undefined,\n set: () => {}\n };\n }\n let cacheSize = 0;\n let cache = new Map();\n let previousCache = new Map();\n const update = (key, value) => {\n cache.set(key, value);\n cacheSize++;\n if (cacheSize > maxCacheSize) {\n cacheSize = 0;\n previousCache = cache;\n cache = new Map();\n }\n };\n return {\n get(key) {\n let value = cache.get(key);\n if (value !== undefined) {\n return value;\n }\n if ((value = previousCache.get(key)) !== undefined) {\n update(key, value);\n return value;\n }\n },\n set(key, value) {\n if (cache.has(key)) {\n cache.set(key, value);\n } else {\n update(key, value);\n }\n }\n };\n};\nconst IMPORTANT_MODIFIER = '!';\nconst createParseClassName = config => {\n const {\n separator,\n experimentalParseClassName\n } = config;\n const isSeparatorSingleCharacter = separator.length === 1;\n const firstSeparatorCharacter = separator[0];\n const separatorLength = separator.length;\n // parseClassName inspired by https://github.com/tailwindlabs/tailwindcss/blob/v3.2.2/src/util/splitAtTopLevelOnly.js\n const parseClassName = className => {\n const modifiers = [];\n let bracketDepth = 0;\n let modifierStart = 0;\n let postfixModifierPosition;\n for (let index = 0; index < className.length; index++) {\n let currentCharacter = className[index];\n if (bracketDepth === 0) {\n if (currentCharacter === firstSeparatorCharacter && (isSeparatorSingleCharacter || className.slice(index, index + separatorLength) === separator)) {\n modifiers.push(className.slice(modifierStart, index));\n modifierStart = index + separatorLength;\n continue;\n }\n if (currentCharacter === '/') {\n postfixModifierPosition = index;\n continue;\n }\n }\n if (currentCharacter === '[') {\n bracketDepth++;\n } else if (currentCharacter === ']') {\n bracketDepth--;\n }\n }\n const baseClassNameWithImportantModifier = modifiers.length === 0 ? className : className.substring(modifierStart);\n const hasImportantModifier = baseClassNameWithImportantModifier.startsWith(IMPORTANT_MODIFIER);\n const baseClassName = hasImportantModifier ? baseClassNameWithImportantModifier.substring(1) : baseClassNameWithImportantModifier;\n const maybePostfixModifierPosition = postfixModifierPosition && postfixModifierPosition > modifierStart ? postfixModifierPosition - modifierStart : undefined;\n return {\n modifiers,\n hasImportantModifier,\n baseClassName,\n maybePostfixModifierPosition\n };\n };\n if (experimentalParseClassName) {\n return className => experimentalParseClassName({\n className,\n parseClassName\n });\n }\n return parseClassName;\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 */\nconst sortModifiers = modifiers => {\n if (modifiers.length <= 1) {\n return modifiers;\n }\n const sortedModifiers = [];\n let unsortedModifiers = [];\n modifiers.forEach(modifier => {\n const isArbitraryVariant = modifier[0] === '[';\n if (isArbitraryVariant) {\n sortedModifiers.push(...unsortedModifiers.sort(), modifier);\n unsortedModifiers = [];\n } else {\n unsortedModifiers.push(modifier);\n }\n });\n sortedModifiers.push(...unsortedModifiers.sort());\n return sortedModifiers;\n};\nconst createConfigUtils = config => ({\n cache: createLruCache(config.cacheSize),\n parseClassName: createParseClassName(config),\n ...createClassGroupUtils(config)\n});\nconst SPLIT_CLASSES_REGEX = /\\s+/;\nconst mergeClassList = (classList, configUtils) => {\n const {\n parseClassName,\n getClassGroupId,\n getConflictingClassGroupIds\n } = configUtils;\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 = [];\n const classNames = classList.trim().split(SPLIT_CLASSES_REGEX);\n let result = '';\n for (let index = classNames.length - 1; index >= 0; index -= 1) {\n const originalClassName = classNames[index];\n const {\n modifiers,\n hasImportantModifier,\n baseClassName,\n maybePostfixModifierPosition\n } = parseClassName(originalClassName);\n let hasPostfixModifier = Boolean(maybePostfixModifierPosition);\n let classGroupId = getClassGroupId(hasPostfixModifier ? baseClassName.substring(0, maybePostfixModifierPosition) : baseClassName);\n if (!classGroupId) {\n if (!hasPostfixModifier) {\n // Not a Tailwind class\n result = originalClassName + (result.length > 0 ? ' ' + result : result);\n continue;\n }\n classGroupId = getClassGroupId(baseClassName);\n if (!classGroupId) {\n // Not a Tailwind class\n result = originalClassName + (result.length > 0 ? ' ' + result : result);\n continue;\n }\n hasPostfixModifier = false;\n }\n const variantModifier = sortModifiers(modifiers).join(':');\n const modifierId = hasImportantModifier ? variantModifier + IMPORTANT_MODIFIER : variantModifier;\n const classId = modifierId + classGroupId;\n if (classGroupsInConflict.includes(classId)) {\n // Tailwind class omitted due to conflict\n continue;\n }\n classGroupsInConflict.push(classId);\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 // Tailwind class not in conflict\n result = originalClassName + (result.length > 0 ? ' ' + result : result);\n }\n return result;\n};\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 */\nfunction twJoin() {\n let index = 0;\n let argument;\n let resolvedValue;\n let string = '';\n while (index < arguments.length) {\n if (argument = arguments[index++]) {\n if (resolvedValue = toValue(argument)) {\n string && (string += ' ');\n string += resolvedValue;\n }\n }\n }\n return string;\n}\nconst toValue = mix => {\n if (typeof mix === 'string') {\n return mix;\n }\n let resolvedValue;\n let string = '';\n for (let k = 0; k < mix.length; k++) {\n if (mix[k]) {\n if (resolvedValue = toValue(mix[k])) {\n string && (string += ' ');\n string += resolvedValue;\n }\n }\n }\n return string;\n};\nfunction createTailwindMerge(createConfigFirst, ...createConfigRest) {\n let configUtils;\n let cacheGet;\n let cacheSet;\n let functionToCall = initTailwindMerge;\n function initTailwindMerge(classList) {\n const config = createConfigRest.reduce((previousConfig, createConfigCurrent) => createConfigCurrent(previousConfig), createConfigFirst());\n configUtils = createConfigUtils(config);\n cacheGet = configUtils.cache.get;\n cacheSet = configUtils.cache.set;\n functionToCall = tailwindMerge;\n return tailwindMerge(classList);\n }\n function tailwindMerge(classList) {\n const cachedResult = cacheGet(classList);\n if (cachedResult) {\n return cachedResult;\n }\n const result = mergeClassList(classList, configUtils);\n cacheSet(classList, result);\n return result;\n }\n return function callTailwindMerge() {\n return functionToCall(twJoin.apply(null, arguments));\n };\n}\nconst fromTheme = key => {\n const themeGetter = theme => theme[key] || [];\n themeGetter.isThemeGetter = true;\n return themeGetter;\n};\nconst arbitraryValueRegex = /^\\[(?:([a-z-]+):)?(.+)\\]$/i;\nconst fractionRegex = /^\\d+\\/\\d+$/;\nconst stringLengths = /*#__PURE__*/new Set(['px', 'full', 'screen']);\nconst tshirtUnitRegex = /^(\\d+(\\.\\d+)?)?(xs|sm|md|lg|xl)$/;\nconst lengthUnitRegex = /\\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))\\(.+\\)$/;\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 = /^(url|image|image-set|cross-fade|element|(repeating-)?(linear|radial|conic)-gradient)\\(.+\\)$/;\nconst isLength = value => isNumber(value) || stringLengths.has(value) || fractionRegex.test(value);\nconst isArbitraryLength = value => getIsArbitraryValue(value, 'length', isLengthOnly);\nconst isNumber = value => Boolean(value) && !Number.isNaN(Number(value));\nconst isArbitraryNumber = value => getIsArbitraryValue(value, 'number', isNumber);\nconst isInteger = value => Boolean(value) && Number.isInteger(Number(value));\nconst isPercent = value => value.endsWith('%') && isNumber(value.slice(0, -1));\nconst isArbitraryValue = value => arbitraryValueRegex.test(value);\nconst isTshirtSize = value => tshirtUnitRegex.test(value);\nconst sizeLabels = /*#__PURE__*/new Set(['length', 'size', 'percentage']);\nconst isArbitrarySize = value => getIsArbitraryValue(value, sizeLabels, isNever);\nconst isArbitraryPosition = value => getIsArbitraryValue(value, 'position', isNever);\nconst imageLabels = /*#__PURE__*/new Set(['image', 'url']);\nconst isArbitraryImage = value => getIsArbitraryValue(value, imageLabels, isImage);\nconst isArbitraryShadow = value => getIsArbitraryValue(value, '', isShadow);\nconst isAny = () => true;\nconst getIsArbitraryValue = (value, label, testValue) => {\n const result = arbitraryValueRegex.exec(value);\n if (result) {\n if (result[1]) {\n return typeof label === 'string' ? result[1] === label : label.has(result[1]);\n }\n return testValue(result[2]);\n }\n return false;\n};\nconst isLengthOnly = value =>\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.\nlengthUnitRegex.test(value) && !colorFunctionRegex.test(value);\nconst isNever = () => false;\nconst isShadow = value => shadowRegex.test(value);\nconst isImage = value => imageRegex.test(value);\nconst validators = /*#__PURE__*/Object.defineProperty({\n __proto__: null,\n isAny,\n isArbitraryImage,\n isArbitraryLength,\n isArbitraryNumber,\n isArbitraryPosition,\n isArbitraryShadow,\n isArbitrarySize,\n isArbitraryValue,\n isInteger,\n isLength,\n isNumber,\n isPercent,\n isTshirtSize\n}, Symbol.toStringTag, {\n value: 'Module'\n});\nconst getDefaultConfig = () => {\n const colors = fromTheme('colors');\n const spacing = fromTheme('spacing');\n const blur = fromTheme('blur');\n const brightness = fromTheme('brightness');\n const borderColor = fromTheme('borderColor');\n const borderRadius = fromTheme('borderRadius');\n const borderSpacing = fromTheme('borderSpacing');\n const borderWidth = fromTheme('borderWidth');\n const contrast = fromTheme('contrast');\n const grayscale = fromTheme('grayscale');\n const hueRotate = fromTheme('hueRotate');\n const invert = fromTheme('invert');\n const gap = fromTheme('gap');\n const gradientColorStops = fromTheme('gradientColorStops');\n const gradientColorStopPositions = fromTheme('gradientColorStopPositions');\n const inset = fromTheme('inset');\n const margin = fromTheme('margin');\n const opacity = fromTheme('opacity');\n const padding = fromTheme('padding');\n const saturate = fromTheme('saturate');\n const scale = fromTheme('scale');\n const sepia = fromTheme('sepia');\n const skew = fromTheme('skew');\n const space = fromTheme('space');\n const translate = fromTheme('translate');\n const getOverscroll = () => ['auto', 'contain', 'none'];\n const getOverflow = () => ['auto', 'hidden', 'clip', 'visible', 'scroll'];\n const getSpacingWithAutoAndArbitrary = () => ['auto', isArbitraryValue, spacing];\n const getSpacingWithArbitrary = () => [isArbitraryValue, spacing];\n const getLengthWithEmptyAndArbitrary = () => ['', isLength, isArbitraryLength];\n const getNumberWithAutoAndArbitrary = () => ['auto', isNumber, isArbitraryValue];\n const getPositions = () => ['bottom', 'center', 'left', 'left-bottom', 'left-top', 'right', 'right-bottom', 'right-top', 'top'];\n const getLineStyles = () => ['solid', 'dashed', 'dotted', 'double', 'none'];\n const getBlendModes = () => ['normal', 'multiply', 'screen', 'overlay', 'darken', 'lighten', 'color-dodge', 'color-burn', 'hard-light', 'soft-light', 'difference', 'exclusion', 'hue', 'saturation', 'color', 'luminosity'];\n const getAlign = () => ['start', 'end', 'center', 'between', 'around', 'evenly', 'stretch'];\n const getZeroAndEmpty = () => ['', '0', isArbitraryValue];\n const getBreaks = () => ['auto', 'avoid', 'all', 'avoid-page', 'page', 'left', 'right', 'column'];\n const getNumberAndArbitrary = () => [isNumber, isArbitraryValue];\n return {\n cacheSize: 500,\n separator: ':',\n theme: {\n colors: [isAny],\n spacing: [isLength, isArbitraryLength],\n blur: ['none', '', isTshirtSize, isArbitraryValue],\n brightness: getNumberAndArbitrary(),\n borderColor: [colors],\n borderRadius: ['none', '', 'full', isTshirtSize, isArbitraryValue],\n borderSpacing: getSpacingWithArbitrary(),\n borderWidth: getLengthWithEmptyAndArbitrary(),\n contrast: getNumberAndArbitrary(),\n grayscale: getZeroAndEmpty(),\n hueRotate: getNumberAndArbitrary(),\n invert: getZeroAndEmpty(),\n gap: getSpacingWithArbitrary(),\n gradientColorStops: [colors],\n gradientColorStopPositions: [isPercent, isArbitraryLength],\n inset: getSpacingWithAutoAndArbitrary(),\n margin: getSpacingWithAutoAndArbitrary(),\n opacity: getNumberAndArbitrary(),\n padding: getSpacingWithArbitrary(),\n saturate: getNumberAndArbitrary(),\n scale: getNumberAndArbitrary(),\n sepia: getZeroAndEmpty(),\n skew: getNumberAndArbitrary(),\n space: getSpacingWithArbitrary(),\n translate: getSpacingWithArbitrary()\n },\n classGroups: {\n // Layout\n /**\n * Aspect Ratio\n * @see https://tailwindcss.com/docs/aspect-ratio\n */\n aspect: [{\n aspect: ['auto', 'square', 'video', isArbitraryValue]\n }],\n /**\n * Container\n * @see https://tailwindcss.com/docs/container\n */\n container: ['container'],\n /**\n * Columns\n * @see https://tailwindcss.com/docs/columns\n */\n columns: [{\n columns: [isTshirtSize]\n }],\n /**\n * Break After\n * @see https://tailwindcss.com/docs/break-after\n */\n 'break-after': [{\n 'break-after': getBreaks()\n }],\n /**\n * Break Before\n * @see https://tailwindcss.com/docs/break-before\n */\n 'break-before': [{\n 'break-before': getBreaks()\n }],\n /**\n * Break Inside\n * @see https://tailwindcss.com/docs/break-inside\n */\n 'break-inside': [{\n 'break-inside': ['auto', 'avoid', 'avoid-page', 'avoid-column']\n }],\n /**\n * Box Decoration Break\n * @see https://tailwindcss.com/docs/box-decoration-break\n */\n 'box-decoration': [{\n 'box-decoration': ['slice', 'clone']\n }],\n /**\n * Box Sizing\n * @see https://tailwindcss.com/docs/box-sizing\n */\n box: [{\n box: ['border', 'content']\n }],\n /**\n * Display\n * @see https://tailwindcss.com/docs/display\n */\n display: ['block', 'inline-block', 'inline', 'flex', 'inline-flex', 'table', 'inline-table', 'table-caption', 'table-cell', 'table-column', 'table-column-group', 'table-footer-group', 'table-header-group', 'table-row-group', 'table-row', 'flow-root', 'grid', 'inline-grid', 'contents', 'list-item', 'hidden'],\n /**\n * Floats\n * @see https://tailwindcss.com/docs/float\n */\n float: [{\n float: ['right', 'left', 'none', 'start', 'end']\n }],\n /**\n * Clear\n * @see https://tailwindcss.com/docs/clear\n */\n clear: [{\n clear: ['left', 'right', 'both', 'none', 'start', 'end']\n }],\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': [{\n object: ['contain', 'cover', 'fill', 'none', 'scale-down']\n }],\n /**\n * Object Position\n * @see https://tailwindcss.com/docs/object-position\n */\n 'object-position': [{\n object: [...getPositions(), isArbitraryValue]\n }],\n /**\n * Overflow\n * @see https://tailwindcss.com/docs/overflow\n */\n overflow: [{\n overflow: getOverflow()\n }],\n /**\n * Overflow X\n * @see https://tailwindcss.com/docs/overflow\n */\n 'overflow-x': [{\n 'overflow-x': getOverflow()\n }],\n /**\n * Overflow Y\n * @see https://tailwindcss.com/docs/overflow\n */\n 'overflow-y': [{\n 'overflow-y': getOverflow()\n }],\n /**\n * Overscroll Behavior\n * @see https://tailwindcss.com/docs/overscroll-behavior\n */\n overscroll: [{\n overscroll: getOverscroll()\n }],\n /**\n * Overscroll Behavior X\n * @see https://tailwindcss.com/docs/overscroll-behavior\n */\n 'overscroll-x': [{\n 'overscroll-x': getOverscroll()\n }],\n /**\n * Overscroll Behavior Y\n * @see https://tailwindcss.com/docs/overscroll-behavior\n */\n 'overscroll-y': [{\n 'overscroll-y': getOverscroll()\n }],\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: [{\n inset: [inset]\n }],\n /**\n * Right / Left\n * @see https://tailwindcss.com/docs/top-right-bottom-left\n */\n 'inset-x': [{\n 'inset-x': [inset]\n }],\n /**\n * Top / Bottom\n * @see https://tailwindcss.com/docs/top-right-bottom-left\n */\n 'inset-y': [{\n 'inset-y': [inset]\n }],\n /**\n * Start\n * @see https://tailwindcss.com/docs/top-right-bottom-left\n */\n start: [{\n start: [inset]\n }],\n /**\n * End\n * @see https://tailwindcss.com/docs/top-right-bottom-left\n */\n end: [{\n end: [inset]\n }],\n /**\n * Top\n * @see https://tailwindcss.com/docs/top-right-bottom-left\n */\n top: [{\n top: [inset]\n }],\n /**\n * Right\n * @see https://tailwindcss.com/docs/top-right-bottom-left\n */\n right: [{\n right: [inset]\n }],\n /**\n * Bottom\n * @see https://tailwindcss.com/docs/top-right-bottom-left\n */\n bottom: [{\n bottom: [inset]\n }],\n /**\n * Left\n * @see https://tailwindcss.com/docs/top-right-bottom-left\n */\n left: [{\n left: [inset]\n }],\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: [{\n z: ['auto', isInteger, isArbitraryValue]\n }],\n // Flexbox and Grid\n /**\n * Flex Basis\n * @see https://tailwindcss.com/docs/flex-basis\n */\n basis: [{\n basis: getSpacingWithAutoAndArbitrary()\n }],\n /**\n * Flex Direction\n * @see https://tailwindcss.com/docs/flex-direction\n */\n 'flex-direction': [{\n flex: ['row', 'row-reverse', 'col', 'col-reverse']\n }],\n /**\n * Flex Wrap\n * @see https://tailwindcss.com/docs/flex-wrap\n */\n 'flex-wrap': [{\n flex: ['wrap', 'wrap-reverse', 'nowrap']\n }],\n /**\n * Flex\n * @see https://tailwindcss.com/docs/flex\n */\n flex: [{\n flex: ['1', 'auto', 'initial', 'none', isArbitraryValue]\n }],\n /**\n * Flex Grow\n * @see https://tailwindcss.com/docs/flex-grow\n */\n grow: [{\n grow: getZeroAndEmpty()\n }],\n /**\n * Flex Shrink\n * @see https://tailwindcss.com/docs/flex-shrink\n */\n shrink: [{\n shrink: getZeroAndEmpty()\n }],\n /**\n * Order\n * @see https://tailwindcss.com/docs/order\n */\n order: [{\n order: ['first', 'last', 'none', isInteger, isArbitraryValue]\n }],\n /**\n * Grid Template Columns\n * @see https://tailwindcss.com/docs/grid-template-columns\n */\n 'grid-cols': [{\n 'grid-cols': [isAny]\n }],\n /**\n * Grid Column Start / End\n * @see https://tailwindcss.com/docs/grid-column\n */\n 'col-start-end': [{\n col: ['auto', {\n span: ['full', isInteger, isArbitraryValue]\n }, isArbitraryValue]\n }],\n /**\n * Grid Column Start\n * @see https://tailwindcss.com/docs/grid-column\n */\n 'col-start': [{\n 'col-start': getNumberWithAutoAndArbitrary()\n }],\n /**\n * Grid Column End\n * @see https://tailwindcss.com/docs/grid-column\n */\n 'col-end': [{\n 'col-end': getNumberWithAutoAndArbitrary()\n }],\n /**\n * Grid Template Rows\n * @see https://tailwindcss.com/docs/grid-template-rows\n */\n 'grid-rows': [{\n 'grid-rows': [isAny]\n }],\n /**\n * Grid Row Start / End\n * @see https://tailwindcss.com/docs/grid-row\n */\n 'row-start-end': [{\n row: ['auto', {\n span: [isInteger, isArbitraryValue]\n }, isArbitraryValue]\n }],\n /**\n * Grid Row Start\n * @see https://tailwindcss.com/docs/grid-row\n */\n 'row-start': [{\n 'row-start': getNumberWithAutoAndArbitrary()\n }],\n /**\n * Grid Row End\n * @see https://tailwindcss.com/docs/grid-row\n */\n 'row-end': [{\n 'row-end': getNumberWithAutoAndArbitrary()\n }],\n /**\n * Grid Auto Flow\n * @see https://tailwindcss.com/docs/grid-auto-flow\n */\n 'grid-flow': [{\n 'grid-flow': ['row', 'col', 'dense', 'row-dense', 'col-dense']\n }],\n /**\n * Grid Auto Columns\n * @see https://tailwindcss.com/docs/grid-auto-columns\n */\n 'auto-cols': [{\n 'auto-cols': ['auto', 'min', 'max', 'fr', isArbitraryValue]\n }],\n /**\n * Grid Auto Rows\n * @see https://tailwindcss.com/docs/grid-auto-rows\n */\n 'auto-rows': [{\n 'auto-rows': ['auto', 'min', 'max', 'fr', isArbitraryValue]\n }],\n /**\n * Gap\n * @see https://tailwindcss.com/docs/gap\n */\n gap: [{\n gap: [gap]\n }],\n /**\n * Gap X\n * @see https://tailwindcss.com/docs/gap\n */\n 'gap-x': [{\n 'gap-x': [gap]\n }],\n /**\n * Gap Y\n * @see https://tailwindcss.com/docs/gap\n */\n 'gap-y': [{\n 'gap-y': [gap]\n }],\n /**\n * Justify Content\n * @see https://tailwindcss.com/docs/justify-content\n */\n 'justify-content': [{\n justify: ['normal', ...getAlign()]\n }],\n /**\n * Justify Items\n * @see https://tailwindcss.com/docs/justify-items\n */\n 'justify-items': [{\n 'justify-items': ['start', 'end', 'center', 'stretch']\n }],\n /**\n * Justify Self\n * @see https://tailwindcss.com/docs/justify-self\n */\n 'justify-self': [{\n 'justify-self': ['auto', 'start', 'end', 'center', 'stretch']\n }],\n /**\n * Align Content\n * @see https://tailwindcss.com/docs/align-content\n */\n 'align-content': [{\n content: ['normal', ...getAlign(), 'baseline']\n }],\n /**\n * Align Items\n * @see https://tailwindcss.com/docs/align-items\n */\n 'align-items': [{\n items: ['start', 'end', 'center', 'baseline', 'stretch']\n }],\n /**\n * Align Self\n * @see https://tailwindcss.com/docs/align-self\n */\n 'align-self': [{\n self: ['auto', 'start', 'end', 'center', 'stretch', 'baseline']\n }],\n /**\n * Place Content\n * @see https://tailwindcss.com/docs/place-content\n */\n 'place-content': [{\n 'place-content': [...getAlign(), 'baseline']\n }],\n /**\n * Place Items\n * @see https://tailwindcss.com/docs/place-items\n */\n 'place-items': [{\n 'place-items': ['start', 'end', 'center', 'baseline', 'stretch']\n }],\n /**\n * Place Self\n * @see https://tailwindcss.com/docs/place-self\n */\n 'place-self': [{\n 'place-self': ['auto', 'start', 'end', 'center', 'stretch']\n }],\n // Spacing\n /**\n * Padding\n * @see https://tailwindcss.com/docs/padding\n */\n p: [{\n p: [padding]\n }],\n /**\n * Padding X\n * @see https://tailwindcss.com/docs/padding\n */\n px: [{\n px: [padding]\n }],\n /**\n * Padding Y\n * @see https://tailwindcss.com/docs/padding\n */\n py: [{\n py: [padding]\n }],\n /**\n * Padding Start\n * @see https://tailwindcss.com/docs/padding\n */\n ps: [{\n ps: [padding]\n }],\n /**\n * Padding End\n * @see https://tailwindcss.com/docs/padding\n */\n pe: [{\n pe: [padding]\n }],\n /**\n * Padding Top\n * @see https://tailwindcss.com/docs/padding\n */\n pt: [{\n pt: [padding]\n }],\n /**\n * Padding Right\n * @see https://tailwindcss.com/docs/padding\n */\n pr: [{\n pr: [padding]\n }],\n /**\n * Padding Bottom\n * @see https://tailwindcss.com/docs/padding\n */\n pb: [{\n pb: [padding]\n }],\n /**\n * Padding Left\n * @see https://tailwindcss.com/docs/padding\n */\n pl: [{\n pl: [padding]\n }],\n /**\n * Margin\n * @see https://tailwindcss.com/docs/margin\n */\n m: [{\n m: [margin]\n }],\n /**\n * Margin X\n * @see https://tailwindcss.com/docs/margin\n */\n mx: [{\n mx: [margin]\n }],\n /**\n * Margin Y\n * @see https://tailwindcss.com/docs/margin\n */\n my: [{\n my: [margin]\n }],\n /**\n * Margin Start\n * @see https://tailwindcss.com/docs/margin\n */\n ms: [{\n ms: [margin]\n }],\n /**\n * Margin End\n * @see https://tailwindcss.com/docs/margin\n */\n me: [{\n me: [margin]\n }],\n /**\n * Margin Top\n * @see https://tailwindcss.com/docs/margin\n */\n mt: [{\n mt: [margin]\n }],\n /**\n * Margin Right\n * @see https://tailwindcss.com/docs/margin\n */\n mr: [{\n mr: [margin]\n }],\n /**\n * Margin Bottom\n * @see https://tailwindcss.com/docs/margin\n */\n mb: [{\n mb: [margin]\n }],\n /**\n * Margin Left\n * @see https://tailwindcss.com/docs/margin\n */\n ml: [{\n ml: [margin]\n }],\n /**\n * Space Between X\n * @see https://tailwindcss.com/docs/space\n */\n 'space-x': [{\n 'space-x': [space]\n }],\n /**\n * Space Between X Reverse\n * @see https://tailwindcss.com/docs/space\n */\n 'space-x-reverse': ['space-x-reverse'],\n /**\n * Space Between Y\n * @see https://tailwindcss.com/docs/space\n */\n 'space-y': [{\n 'space-y': [space]\n }],\n /**\n * Space Between Y Reverse\n * @see https://tailwindcss.com/docs/space\n */\n 'space-y-reverse': ['space-y-reverse'],\n // Sizing\n /**\n * Width\n * @see https://tailwindcss.com/docs/width\n */\n w: [{\n w: ['auto', 'min', 'max', 'fit', 'svw', 'lvw', 'dvw', isArbitraryValue, spacing]\n }],\n /**\n * Min-Width\n * @see https://tailwindcss.com/docs/min-width\n */\n 'min-w': [{\n 'min-w': [isArbitraryValue, spacing, 'min', 'max', 'fit']\n }],\n /**\n * Max-Width\n * @see https://tailwindcss.com/docs/max-width\n */\n 'max-w': [{\n 'max-w': [isArbitraryValue, spacing, 'none', 'full', 'min', 'max', 'fit', 'prose', {\n screen: [isTshirtSize]\n }, isTshirtSize]\n }],\n /**\n * Height\n * @see https://tailwindcss.com/docs/height\n */\n h: [{\n h: [isArbitraryValue, spacing, 'auto', 'min', 'max', 'fit', 'svh', 'lvh', 'dvh']\n }],\n /**\n * Min-Height\n * @see https://tailwindcss.com/docs/min-height\n */\n 'min-h': [{\n 'min-h': [isArbitraryValue, spacing, 'min', 'max', 'fit', 'svh', 'lvh', 'dvh']\n }],\n /**\n * Max-Height\n * @see https://tailwindcss.com/docs/max-height\n */\n 'max-h': [{\n 'max-h': [isArbitraryValue, spacing, 'min', 'max', 'fit', 'svh', 'lvh', 'dvh']\n }],\n /**\n * Size\n * @see https://tailwindcss.com/docs/size\n */\n size: [{\n size: [isArbitraryValue, spacing, 'auto', 'min', 'max', 'fit']\n }],\n // Typography\n /**\n * Font Size\n * @see https://tailwindcss.com/docs/font-size\n */\n 'font-size': [{\n text: ['base', isTshirtSize, 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': [{\n font: ['thin', 'extralight', 'light', 'normal', 'medium', 'semibold', 'bold', 'extrabold', 'black', isArbitraryNumber]\n }],\n /**\n * Font Family\n * @see https://tailwindcss.com/docs/font-family\n */\n 'font-family': [{\n font: [isAny]\n }],\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: [{\n tracking: ['tighter', 'tight', 'normal', 'wide', 'wider', 'widest', isArbitraryValue]\n }],\n /**\n * Line Clamp\n * @see https://tailwindcss.com/docs/line-clamp\n */\n 'line-clamp': [{\n 'line-clamp': ['none', isNumber, isArbitraryNumber]\n }],\n /**\n * Line Height\n * @see https://tailwindcss.com/docs/line-height\n */\n leading: [{\n leading: ['none', 'tight', 'snug', 'normal', 'relaxed', 'loose', isLength, isArbitraryValue]\n }],\n /**\n * List Style Image\n * @see https://tailwindcss.com/docs/list-style-image\n */\n 'list-image': [{\n 'list-image': ['none', isArbitraryValue]\n }],\n /**\n * List Style Type\n * @see https://tailwindcss.com/docs/list-style-type\n */\n 'list-style-type': [{\n list: ['none', 'disc', 'decimal', isArbitraryValue]\n }],\n /**\n * List Style Position\n * @see https://tailwindcss.com/docs/list-style-position\n */\n 'list-style-position': [{\n list: ['inside', 'outside']\n }],\n /**\n * Placeholder Color\n * @deprecated since Tailwind CSS v3.0.0\n * @see https://tailwindcss.com/docs/placeholder-color\n */\n 'placeholder-color': [{\n placeholder: [colors]\n }],\n /**\n * Placeholder Opacity\n * @see https://tailwindcss.com/docs/placeholder-opacity\n */\n 'placeholder-opacity': [{\n 'placeholder-opacity': [opacity]\n }],\n /**\n * Text Alignment\n * @see https://tailwindcss.com/docs/text-align\n */\n 'text-alignment': [{\n text: ['left', 'center', 'right', 'justify', 'start', 'end']\n }],\n /**\n * Text Color\n * @see https://tailwindcss.com/docs/text-color\n */\n 'text-color': [{\n text: [colors]\n }],\n /**\n * Text Opacity\n * @see https://tailwindcss.com/docs/text-opacity\n */\n 'text-opacity': [{\n 'text-opacity': [opacity]\n }],\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': [{\n decoration: [...getLineStyles(), 'wavy']\n }],\n /**\n * Text Decoration Thickness\n * @see https://tailwindcss.com/docs/text-decoration-thickness\n */\n 'text-decoration-thickness': [{\n decoration: ['auto', 'from-font', isLength, isArbitraryLength]\n }],\n /**\n * Text Underline Offset\n * @see https://tailwindcss.com/docs/text-underline-offset\n */\n 'underline-offset': [{\n 'underline-offset': ['auto', isLength, isArbitraryValue]\n }],\n /**\n * Text Decoration Color\n * @see https://tailwindcss.com/docs/text-decoration-color\n */\n 'text-decoration-color': [{\n decoration: [colors]\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': [{\n text: ['wrap', 'nowrap', 'balance', 'pretty']\n }],\n /**\n * Text Indent\n * @see https://tailwindcss.com/docs/text-indent\n */\n indent: [{\n indent: getSpacingWithArbitrary()\n }],\n /**\n * Vertical Alignment\n * @see https://tailwindcss.com/docs/vertical-align\n */\n 'vertical-align': [{\n align: ['baseline', 'top', 'middle', 'bottom', 'text-top', 'text-bottom', 'sub', 'super', isArbitraryValue]\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: [{\n break: ['normal', 'words', 'all', 'keep']\n }],\n /**\n * Hyphens\n * @see https://tailwindcss.com/docs/hyphens\n */\n hyphens: [{\n hyphens: ['none', 'manual', 'auto']\n }],\n /**\n * Content\n * @see https://tailwindcss.com/docs/content\n */\n content: [{\n content: ['none', isArbitraryValue]\n }],\n // Backgrounds\n /**\n * Background Attachment\n * @see https://tailwindcss.com/docs/background-attachment\n */\n 'bg-attachment': [{\n bg: ['fixed', 'local', 'scroll']\n }],\n /**\n * Background Clip\n * @see https://tailwindcss.com/docs/background-clip\n */\n 'bg-clip': [{\n 'bg-clip': ['border', 'padding', 'content', 'text']\n }],\n /**\n * Background Opacity\n * @deprecated since Tailwind CSS v3.0.0\n * @see https://tailwindcss.com/docs/background-opacity\n */\n 'bg-opacity': [{\n 'bg-opacity': [opacity]\n }],\n /**\n * Background Origin\n * @see https://tailwindcss.com/docs/background-origin\n */\n 'bg-origin': [{\n 'bg-origin': ['border', 'padding', 'content']\n }],\n /**\n * Background Position\n * @see https://tailwindcss.com/docs/background-position\n */\n 'bg-position': [{\n bg: [...getPositions(), isArbitraryPosition]\n }],\n /**\n * Background Repeat\n * @see https://tailwindcss.com/docs/background-repeat\n */\n 'bg-repeat': [{\n bg: ['no-repeat', {\n repeat: ['', 'x', 'y', 'round', 'space']\n }]\n }],\n /**\n * Background Size\n * @see https://tailwindcss.com/docs/background-size\n */\n 'bg-size': [{\n bg: ['auto', 'cover', 'contain', isArbitrarySize]\n }],\n /**\n * Background Image\n * @see https://tailwindcss.com/docs/background-image\n */\n 'bg-image': [{\n bg: ['none', {\n 'gradient-to': ['t', 'tr', 'r', 'br', 'b', 'bl', 'l', 'tl']\n }, isArbitraryImage]\n }],\n /**\n * Background Color\n * @see https://tailwindcss.com/docs/background-color\n */\n 'bg-color': [{\n bg: [colors]\n }],\n /**\n * Gradient Color Stops From Position\n * @see https://tailwindcss.com/docs/gradient-color-stops\n */\n 'gradient-from-pos': [{\n from: [gradientColorStopPositions]\n }],\n /**\n * Gradient Color Stops Via Position\n * @see https://tailwindcss.com/docs/gradient-color-stops\n */\n 'gradient-via-pos': [{\n via: [gradientColorStopPositions]\n }],\n /**\n * Gradient Color Stops To Position\n * @see https://tailwindcss.com/docs/gradient-color-stops\n */\n 'gradient-to-pos': [{\n to: [gradientColorStopPositions]\n }],\n /**\n * Gradient Color Stops From\n * @see https://tailwindcss.com/docs/gradient-color-stops\n */\n 'gradient-from': [{\n from: [gradientColorStops]\n }],\n /**\n * Gradient Color Stops Via\n * @see https://tailwindcss.com/docs/gradient-color-stops\n */\n 'gradient-via': [{\n via: [gradientColorStops]\n }],\n /**\n * Gradient Color Stops To\n * @see https://tailwindcss.com/docs/gradient-color-stops\n */\n 'gradient-to': [{\n to: [gradientColorStops]\n }],\n // Borders\n /**\n * Border Radius\n * @see https://tailwindcss.com/docs/border-radius\n */\n rounded: [{\n rounded: [borderRadius]\n }],\n /**\n * Border Radius Start\n * @see https://tailwindcss.com/docs/border-radius\n */\n 'rounded-s': [{\n 'rounded-s': [borderRadius]\n }],\n /**\n * Border Radius End\n * @see https://tailwindcss.com/docs/border-radius\n */\n 'rounded-e': [{\n 'rounded-e': [borderRadius]\n }],\n /**\n * Border Radius Top\n * @see https://tailwindcss.com/docs/border-radius\n */\n 'rounded-t': [{\n 'rounded-t': [borderRadius]\n }],\n /**\n * Border Radius Right\n * @see https://tailwindcss.com/docs/border-radius\n */\n 'rounded-r': [{\n 'rounded-r': [borderRadius]\n }],\n /**\n * Border Radius Bottom\n * @see https://tailwindcss.com/docs/border-radius\n */\n 'rounded-b': [{\n 'rounded-b': [borderRadius]\n }],\n /**\n * Border Radius Left\n * @see https://tailwindcss.com/docs/border-radius\n */\n 'rounded-l': [{\n 'rounded-l': [borderRadius]\n }],\n /**\n * Border Radius Start Start\n * @see https://tailwindcss.com/docs/border-radius\n */\n 'rounded-ss': [{\n 'rounded-ss': [borderRadius]\n }],\n /**\n * Border Radius Start End\n * @see https://tailwindcss.com/docs/border-radius\n */\n 'rounded-se': [{\n 'rounded-se': [borderRadius]\n }],\n /**\n * Border Radius End End\n * @see https://tailwindcss.com/docs/border-radius\n */\n 'rounded-ee': [{\n 'rounded-ee': [borderRadius]\n }],\n /**\n * Border Radius End Start\n * @see https://tailwindcss.com/docs/border-radius\n */\n 'rounded-es': [{\n 'rounded-es': [borderRadius]\n }],\n /**\n * Border Radius Top Left\n * @see https://tailwindcss.com/docs/border-radius\n */\n 'rounded-tl': [{\n 'rounded-tl': [borderRadius]\n }],\n /**\n * Border Radius Top Right\n * @see https://tailwindcss.com/docs/border-radius\n */\n 'rounded-tr': [{\n 'rounded-tr': [borderRadius]\n }],\n /**\n * Border Radius Bottom Right\n * @see https://tailwindcss.com/docs/border-radius\n */\n 'rounded-br': [{\n 'rounded-br': [borderRadius]\n }],\n /**\n * Border Radius Bottom Left\n * @see https://tailwindcss.com/docs/border-radius\n */\n 'rounded-bl': [{\n 'rounded-bl': [borderRadius]\n }],\n /**\n * Border Width\n * @see https://tailwindcss.com/docs/border-width\n */\n 'border-w': [{\n border: [borderWidth]\n }],\n /**\n * Border Width X\n * @see https://tailwindcss.com/docs/border-width\n */\n 'border-w-x': [{\n 'border-x': [borderWidth]\n }],\n /**\n * Border Width Y\n * @see https://tailwindcss.com/docs/border-width\n */\n 'border-w-y': [{\n 'border-y': [borderWidth]\n }],\n /**\n * Border Width Start\n * @see https://tailwindcss.com/docs/border-width\n */\n 'border-w-s': [{\n 'border-s': [borderWidth]\n }],\n /**\n * Border Width End\n * @see https://tailwindcss.com/docs/border-width\n */\n 'border-w-e': [{\n 'border-e': [borderWidth]\n }],\n /**\n * Border Width Top\n * @see https://tailwindcss.com/docs/border-width\n */\n 'border-w-t': [{\n 'border-t': [borderWidth]\n }],\n /**\n * Border Width Right\n * @see https://tailwindcss.com/docs/border-width\n */\n 'border-w-r': [{\n 'border-r': [borderWidth]\n }],\n /**\n * Border Width Bottom\n * @see https://tailwindcss.com/docs/border-width\n */\n 'border-w-b': [{\n 'border-b': [borderWidth]\n }],\n /**\n * Border Width Left\n * @see https://tailwindcss.com/docs/border-width\n */\n 'border-w-l': [{\n 'border-l': [borderWidth]\n }],\n /**\n * Border Opacity\n * @see https://tailwindcss.com/docs/border-opacity\n */\n 'border-opacity': [{\n 'border-opacity': [opacity]\n }],\n /**\n * Border Style\n * @see https://tailwindcss.com/docs/border-style\n */\n 'border-style': [{\n border: [...getLineStyles(), 'hidden']\n }],\n /**\n * Divide Width X\n * @see https://tailwindcss.com/docs/divide-width\n */\n 'divide-x': [{\n 'divide-x': [borderWidth]\n }],\n /**\n * Divide Width X Reverse\n * @see https://tailwindcss.com/docs/divide-width\n */\n 'divide-x-reverse': ['divide-x-reverse'],\n /**\n * Divide Width Y\n * @see https://tailwindcss.com/docs/divide-width\n */\n 'divide-y': [{\n 'divide-y': [borderWidth]\n }],\n /**\n * Divide Width Y Reverse\n * @see https://tailwindcss.com/docs/divide-width\n */\n 'divide-y-reverse': ['divide-y-reverse'],\n /**\n * Divide Opacity\n * @see https://tailwindcss.com/docs/divide-opacity\n */\n 'divide-opacity': [{\n 'divide-opacity': [opacity]\n }],\n /**\n * Divide Style\n * @see https://tailwindcss.com/docs/divide-style\n */\n 'divide-style': [{\n divide: getLineStyles()\n }],\n /**\n * Border Color\n * @see https://tailwindcss.com/docs/border-color\n */\n 'border-color': [{\n border: [borderColor]\n }],\n /**\n * Border Color X\n * @see https://tailwindcss.com/docs/border-color\n */\n 'border-color-x': [{\n 'border-x': [borderColor]\n }],\n /**\n * Border Color Y\n * @see https://tailwindcss.com/docs/border-color\n */\n 'border-color-y': [{\n 'border-y': [borderColor]\n }],\n /**\n * Border Color S\n * @see https://tailwindcss.com/docs/border-color\n */\n 'border-color-s': [{\n 'border-s': [borderColor]\n }],\n /**\n * Border Color E\n * @see https://tailwindcss.com/docs/border-color\n */\n 'border-color-e': [{\n 'border-e': [borderColor]\n }],\n /**\n * Border Color Top\n * @see https://tailwindcss.com/docs/border-color\n */\n 'border-color-t': [{\n 'border-t': [borderColor]\n }],\n /**\n * Border Color Right\n * @see https://tailwindcss.com/docs/border-color\n */\n 'border-color-r': [{\n 'border-r': [borderColor]\n }],\n /**\n * Border Color Bottom\n * @see https://tailwindcss.com/docs/border-color\n */\n 'border-color-b': [{\n 'border-b': [borderColor]\n }],\n /**\n * Border Color Left\n * @see https://tailwindcss.com/docs/border-color\n */\n 'border-color-l': [{\n 'border-l': [borderColor]\n }],\n /**\n * Divide Color\n * @see https://tailwindcss.com/docs/divide-color\n */\n 'divide-color': [{\n divide: [borderColor]\n }],\n /**\n * Outline Style\n * @see https://tailwindcss.com/docs/outline-style\n */\n 'outline-style': [{\n outline: ['', ...getLineStyles()]\n }],\n /**\n * Outline Offset\n * @see https://tailwindcss.com/docs/outline-offset\n */\n 'outline-offset': [{\n 'outline-offset': [isLength, isArbitraryValue]\n }],\n /**\n * Outline Width\n * @see https://tailwindcss.com/docs/outline-width\n */\n 'outline-w': [{\n outline: [isLength, isArbitraryLength]\n }],\n /**\n * Outline Color\n * @see https://tailwindcss.com/docs/outline-color\n */\n 'outline-color': [{\n outline: [colors]\n }],\n /**\n * Ring Width\n * @see https://tailwindcss.com/docs/ring-width\n */\n 'ring-w': [{\n ring: getLengthWithEmptyAndArbitrary()\n }],\n /**\n * Ring Width Inset\n * @see https://tailwindcss.com/docs/ring-width\n */\n 'ring-w-inset': ['ring-inset'],\n /**\n * Ring Color\n * @see https://tailwindcss.com/docs/ring-color\n */\n 'ring-color': [{\n ring: [colors]\n }],\n /**\n * Ring Opacity\n * @see https://tailwindcss.com/docs/ring-opacity\n */\n 'ring-opacity': [{\n 'ring-opacity': [opacity]\n }],\n /**\n * Ring Offset Width\n * @see https://tailwindcss.com/docs/ring-offset-width\n */\n 'ring-offset-w': [{\n 'ring-offset': [isLength, isArbitraryLength]\n }],\n /**\n * Ring Offset Color\n * @see https://tailwindcss.com/docs/ring-offset-color\n */\n 'ring-offset-color': [{\n 'ring-offset': [colors]\n }],\n // Effects\n /**\n * Box Shadow\n * @see https://tailwindcss.com/docs/box-shadow\n */\n shadow: [{\n shadow: ['', 'inner', 'none', isTshirtSize, isArbitraryShadow]\n }],\n /**\n * Box Shadow Color\n * @see https://tailwindcss.com/docs/box-shadow-color\n */\n 'shadow-color': [{\n shadow: [isAny]\n }],\n /**\n * Opacity\n * @see https://tailwindcss.com/docs/opacity\n */\n opacity: [{\n opacity: [opacity]\n }],\n /**\n * Mix Blend Mode\n * @see https://tailwindcss.com/docs/mix-blend-mode\n */\n 'mix-blend': [{\n 'mix-blend': [...getBlendModes(), 'plus-lighter', 'plus-darker']\n }],\n /**\n * Background Blend Mode\n * @see https://tailwindcss.com/docs/background-blend-mode\n */\n 'bg-blend': [{\n 'bg-blend': getBlendModes()\n }],\n // Filters\n /**\n * Filter\n * @deprecated since Tailwind CSS v3.0.0\n * @see https://tailwindcss.com/docs/filter\n */\n filter: [{\n filter: ['', 'none']\n }],\n /**\n * Blur\n * @see https://tailwindcss.com/docs/blur\n */\n blur: [{\n blur: [blur]\n }],\n /**\n * Brightness\n * @see https://tailwindcss.com/docs/brightness\n */\n brightness: [{\n brightness: [brightness]\n }],\n /**\n * Contrast\n * @see https://tailwindcss.com/docs/contrast\n */\n contrast: [{\n contrast: [contrast]\n }],\n /**\n * Drop Shadow\n * @see https://tailwindcss.com/docs/drop-shadow\n */\n 'drop-shadow': [{\n 'drop-shadow': ['', 'none', isTshirtSize, isArbitraryValue]\n }],\n /**\n * Grayscale\n * @see https://tailwindcss.com/docs/grayscale\n */\n grayscale: [{\n grayscale: [grayscale]\n }],\n /**\n * Hue Rotate\n * @see https://tailwindcss.com/docs/hue-rotate\n */\n 'hue-rotate': [{\n 'hue-rotate': [hueRotate]\n }],\n /**\n * Invert\n * @see https://tailwindcss.com/docs/invert\n */\n invert: [{\n invert: [invert]\n }],\n /**\n * Saturate\n * @see https://tailwindcss.com/docs/saturate\n */\n saturate: [{\n saturate: [saturate]\n }],\n /**\n * Sepia\n * @see https://tailwindcss.com/docs/sepia\n */\n sepia: [{\n sepia: [sepia]\n }],\n /**\n * Backdrop Filter\n * @deprecated since Tailwind CSS v3.0.0\n * @see https://tailwindcss.com/docs/backdrop-filter\n */\n 'backdrop-filter': [{\n 'backdrop-filter': ['', 'none']\n }],\n /**\n * Backdrop Blur\n * @see https://tailwindcss.com/docs/backdrop-blur\n */\n 'backdrop-blur': [{\n 'backdrop-blur': [blur]\n }],\n /**\n * Backdrop Brightness\n * @see https://tailwindcss.com/docs/backdrop-brightness\n */\n 'backdrop-brightness': [{\n 'backdrop-brightness': [brightness]\n }],\n /**\n * Backdrop Contrast\n * @see https://tailwindcss.com/docs/backdrop-contrast\n */\n 'backdrop-contrast': [{\n 'backdrop-contrast': [contrast]\n }],\n /**\n * Backdrop Grayscale\n * @see https://tailwindcss.com/docs/backdrop-grayscale\n */\n 'backdrop-grayscale': [{\n 'backdrop-grayscale': [grayscale]\n }],\n /**\n * Backdrop Hue Rotate\n * @see https://tailwindcss.com/docs/backdrop-hue-rotate\n */\n 'backdrop-hue-rotate': [{\n 'backdrop-hue-rotate': [hueRotate]\n }],\n /**\n * Backdrop Invert\n * @see https://tailwindcss.com/docs/backdrop-invert\n */\n 'backdrop-invert': [{\n 'backdrop-invert': [invert]\n }],\n /**\n * Backdrop Opacity\n * @see https://tailwindcss.com/docs/backdrop-opacity\n */\n 'backdrop-opacity': [{\n 'backdrop-opacity': [opacity]\n }],\n /**\n * Backdrop Saturate\n * @see https://tailwindcss.com/docs/backdrop-saturate\n */\n 'backdrop-saturate': [{\n 'backdrop-saturate': [saturate]\n }],\n /**\n * Backdrop Sepia\n * @see https://tailwindcss.com/docs/backdrop-sepia\n */\n 'backdrop-sepia': [{\n 'backdrop-sepia': [sepia]\n }],\n // Tables\n /**\n * Border Collapse\n * @see https://tailwindcss.com/docs/border-collapse\n */\n 'border-collapse': [{\n border: ['collapse', 'separate']\n }],\n /**\n * Border Spacing\n * @see https://tailwindcss.com/docs/border-spacing\n */\n 'border-spacing': [{\n 'border-spacing': [borderSpacing]\n }],\n /**\n * Border Spacing X\n * @see https://tailwindcss.com/docs/border-spacing\n */\n 'border-spacing-x': [{\n 'border-spacing-x': [borderSpacing]\n }],\n /**\n * Border Spacing Y\n * @see https://tailwindcss.com/docs/border-spacing\n */\n 'border-spacing-y': [{\n 'border-spacing-y': [borderSpacing]\n }],\n /**\n * Table Layout\n * @see https://tailwindcss.com/docs/table-layout\n */\n 'table-layout': [{\n table: ['auto', 'fixed']\n }],\n /**\n * Caption Side\n * @see https://tailwindcss.com/docs/caption-side\n */\n caption: [{\n caption: ['top', 'bottom']\n }],\n // Transitions and Animation\n /**\n * Tranisition Property\n * @see https://tailwindcss.com/docs/transition-property\n */\n transition: [{\n transition: ['none', 'all', '', 'colors', 'opacity', 'shadow', 'transform', isArbitraryValue]\n }],\n /**\n * Transition Duration\n * @see https://tailwindcss.com/docs/transition-duration\n */\n duration: [{\n duration: getNumberAndArbitrary()\n }],\n /**\n * Transition Timing Function\n * @see https://tailwindcss.com/docs/transition-timing-function\n */\n ease: [{\n ease: ['linear', 'in', 'out', 'in-out', isArbitraryValue]\n }],\n /**\n * Transition Delay\n * @see https://tailwindcss.com/docs/transition-delay\n */\n delay: [{\n delay: getNumberAndArbitrary()\n }],\n /**\n * Animation\n * @see https://tailwindcss.com/docs/animation\n */\n animate: [{\n animate: ['none', 'spin', 'ping', 'pulse', 'bounce', isArbitraryValue]\n }],\n // Transforms\n /**\n * Transform\n * @see https://tailwindcss.com/docs/transform\n */\n transform: [{\n transform: ['', 'gpu', 'none']\n }],\n /**\n * Scale\n * @see https://tailwindcss.com/docs/scale\n */\n scale: [{\n scale: [scale]\n }],\n /**\n * Scale X\n * @see https://tailwindcss.com/docs/scale\n */\n 'scale-x': [{\n 'scale-x': [scale]\n }],\n /**\n * Scale Y\n * @see https://tailwindcss.com/docs/scale\n */\n 'scale-y': [{\n 'scale-y': [scale]\n }],\n /**\n * Rotate\n * @see https://tailwindcss.com/docs/rotate\n */\n rotate: [{\n rotate: [isInteger, isArbitraryValue]\n }],\n /**\n * Translate X\n * @see https://tailwindcss.com/docs/translate\n */\n 'translate-x': [{\n 'translate-x': [translate]\n }],\n /**\n * Translate Y\n * @see https://tailwindcss.com/docs/translate\n */\n 'translate-y': [{\n 'translate-y': [translate]\n }],\n /**\n * Skew X\n * @see https://tailwindcss.com/docs/skew\n */\n 'skew-x': [{\n 'skew-x': [skew]\n }],\n /**\n * Skew Y\n * @see https://tailwindcss.com/docs/skew\n */\n 'skew-y': [{\n 'skew-y': [skew]\n }],\n /**\n * Transform Origin\n * @see https://tailwindcss.com/docs/transform-origin\n */\n 'transform-origin': [{\n origin: ['center', 'top', 'top-right', 'right', 'bottom-right', 'bottom', 'bottom-left', 'left', 'top-left', isArbitraryValue]\n }],\n // Interactivity\n /**\n * Accent Color\n * @see https://tailwindcss.com/docs/accent-color\n */\n accent: [{\n accent: ['auto', colors]\n }],\n /**\n * Appearance\n * @see https://tailwindcss.com/docs/appearance\n */\n appearance: [{\n appearance: ['none', 'auto']\n }],\n /**\n * Cursor\n * @see https://tailwindcss.com/docs/cursor\n */\n cursor: [{\n cursor: ['auto', 'default', 'pointer', 'wait', 'text', 'move', 'help', 'not-allowed', 'none', 'context-menu', 'progress', 'cell', 'crosshair', 'vertical-text', 'alias', 'copy', 'no-drop', 'grab', 'grabbing', 'all-scroll', 'col-resize', 'row-resize', 'n-resize', 'e-resize', 's-resize', 'w-resize', 'ne-resize', 'nw-resize', 'se-resize', 'sw-resize', 'ew-resize', 'ns-resize', 'nesw-resize', 'nwse-resize', 'zoom-in', 'zoom-out', isArbitraryValue]\n }],\n /**\n * Caret Color\n * @see https://tailwindcss.com/docs/just-in-time-mode#caret-color-utilities\n */\n 'caret-color': [{\n caret: [colors]\n }],\n /**\n * Pointer Events\n * @see https://tailwindcss.com/docs/pointer-events\n */\n 'pointer-events': [{\n 'pointer-events': ['none', 'auto']\n }],\n /**\n * Resize\n * @see https://tailwindcss.com/docs/resize\n */\n resize: [{\n resize: ['none', 'y', 'x', '']\n }],\n /**\n * Scroll Behavior\n * @see https://tailwindcss.com/docs/scroll-behavior\n */\n 'scroll-behavior': [{\n scroll: ['auto', 'smooth']\n }],\n /**\n * Scroll Margin\n * @see https://tailwindcss.com/docs/scroll-margin\n */\n 'scroll-m': [{\n 'scroll-m': getSpacingWithArbitrary()\n }],\n /**\n * Scroll Margin X\n * @see https://tailwindcss.com/docs/scroll-margin\n */\n 'scroll-mx': [{\n 'scroll-mx': getSpacingWithArbitrary()\n }],\n /**\n * Scroll Margin Y\n * @see https://tailwindcss.com/docs/scroll-margin\n */\n 'scroll-my': [{\n 'scroll-my': getSpacingWithArbitrary()\n }],\n /**\n * Scroll Margin Start\n * @see https://tailwindcss.com/docs/scroll-margin\n */\n 'scroll-ms': [{\n 'scroll-ms': getSpacingWithArbitrary()\n }],\n /**\n * Scroll Margin End\n * @see https://tailwindcss.com/docs/scroll-margin\n */\n 'scroll-me': [{\n 'scroll-me': getSpacingWithArbitrary()\n }],\n /**\n * Scroll Margin Top\n * @see https://tailwindcss.com/docs/scroll-margin\n */\n 'scroll-mt': [{\n 'scroll-mt': getSpacingWithArbitrary()\n }],\n /**\n * Scroll Margin Right\n * @see https://tailwindcss.com/docs/scroll-margin\n */\n 'scroll-mr': [{\n 'scroll-mr': getSpacingWithArbitrary()\n }],\n /**\n * Scroll Margin Bottom\n * @see https://tailwindcss.com/docs/scroll-margin\n */\n 'scroll-mb': [{\n 'scroll-mb': getSpacingWithArbitrary()\n }],\n /**\n * Scroll Margin Left\n * @see https://tailwindcss.com/docs/scroll-margin\n */\n 'scroll-ml': [{\n 'scroll-ml': getSpacingWithArbitrary()\n }],\n /**\n * Scroll Padding\n * @see https://tailwindcss.com/docs/scroll-padding\n */\n 'scroll-p': [{\n 'scroll-p': getSpacingWithArbitrary()\n }],\n /**\n * Scroll Padding X\n * @see https://tailwindcss.com/docs/scroll-padding\n */\n 'scroll-px': [{\n 'scroll-px': getSpacingWithArbitrary()\n }],\n /**\n * Scroll Padding Y\n * @see https://tailwindcss.com/docs/scroll-padding\n */\n 'scroll-py': [{\n 'scroll-py': getSpacingWithArbitrary()\n }],\n /**\n * Scroll Padding Start\n * @see https://tailwindcss.com/docs/scroll-padding\n */\n 'scroll-ps': [{\n 'scroll-ps': getSpacingWithArbitrary()\n }],\n /**\n * Scroll Padding End\n * @see https://tailwindcss.com/docs/scroll-padding\n */\n 'scroll-pe': [{\n 'scroll-pe': getSpacingWithArbitrary()\n }],\n /**\n * Scroll Padding Top\n * @see https://tailwindcss.com/docs/scroll-padding\n */\n 'scroll-pt': [{\n 'scroll-pt': getSpacingWithArbitrary()\n }],\n /**\n * Scroll Padding Right\n * @see https://tailwindcss.com/docs/scroll-padding\n */\n 'scroll-pr': [{\n 'scroll-pr': getSpacingWithArbitrary()\n }],\n /**\n * Scroll Padding Bottom\n * @see https://tailwindcss.com/docs/scroll-padding\n */\n 'scroll-pb': [{\n 'scroll-pb': getSpacingWithArbitrary()\n }],\n /**\n * Scroll Padding Left\n * @see https://tailwindcss.com/docs/scroll-padding\n */\n 'scroll-pl': [{\n 'scroll-pl': getSpacingWithArbitrary()\n }],\n /**\n * Scroll Snap Align\n * @see https://tailwindcss.com/docs/scroll-snap-align\n */\n 'snap-align': [{\n snap: ['start', 'end', 'center', 'align-none']\n }],\n /**\n * Scroll Snap Stop\n * @see https://tailwindcss.com/docs/scroll-snap-stop\n */\n 'snap-stop': [{\n snap: ['normal', 'always']\n }],\n /**\n * Scroll Snap Type\n * @see https://tailwindcss.com/docs/scroll-snap-type\n */\n 'snap-type': [{\n snap: ['none', 'x', 'y', 'both']\n }],\n /**\n * Scroll Snap Type Strictness\n * @see https://tailwindcss.com/docs/scroll-snap-type\n */\n 'snap-strictness': [{\n snap: ['mandatory', 'proximity']\n }],\n /**\n * Touch Action\n * @see https://tailwindcss.com/docs/touch-action\n */\n touch: [{\n touch: ['auto', 'none', 'manipulation']\n }],\n /**\n * Touch Action X\n * @see https://tailwindcss.com/docs/touch-action\n */\n 'touch-x': [{\n 'touch-pan': ['x', 'left', 'right']\n }],\n /**\n * Touch Action Y\n * @see https://tailwindcss.com/docs/touch-action\n */\n 'touch-y': [{\n 'touch-pan': ['y', 'up', 'down']\n }],\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: [{\n select: ['none', 'text', 'all', 'auto']\n }],\n /**\n * Will Change\n * @see https://tailwindcss.com/docs/will-change\n */\n 'will-change': [{\n 'will-change': ['auto', 'scroll', 'contents', 'transform', isArbitraryValue]\n }],\n // SVG\n /**\n * Fill\n * @see https://tailwindcss.com/docs/fill\n */\n fill: [{\n fill: [colors, 'none']\n }],\n /**\n * Stroke Width\n * @see https://tailwindcss.com/docs/stroke-width\n */\n 'stroke-w': [{\n stroke: [isLength, isArbitraryLength, isArbitraryNumber]\n }],\n /**\n * Stroke\n * @see https://tailwindcss.com/docs/stroke\n */\n stroke: [{\n stroke: [colors, 'none']\n }],\n // Accessibility\n /**\n * Screen Readers\n * @see https://tailwindcss.com/docs/screen-readers\n */\n sr: ['sr-only', 'not-sr-only'],\n /**\n * Forced Color Adjust\n * @see https://tailwindcss.com/docs/forced-color-adjust\n */\n 'forced-color-adjust': [{\n 'forced-color-adjust': ['auto', 'none']\n }]\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': ['fvn-ordinal', 'fvn-slashed-zero', 'fvn-figure', 'fvn-spacing', 'fvn-fraction'],\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: ['rounded-s', 'rounded-e', 'rounded-t', 'rounded-r', 'rounded-b', 'rounded-l', 'rounded-ss', 'rounded-se', 'rounded-ee', 'rounded-es', 'rounded-tl', 'rounded-tr', 'rounded-br', 'rounded-bl'],\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': ['border-w-s', 'border-w-e', 'border-w-t', 'border-w-r', 'border-w-b', 'border-w-l'],\n 'border-w-x': ['border-w-r', 'border-w-l'],\n 'border-w-y': ['border-w-t', 'border-w-b'],\n 'border-color': ['border-color-s', 'border-color-e', 'border-color-t', 'border-color-r', 'border-color-b', 'border-color-l'],\n 'border-color-x': ['border-color-r', 'border-color-l'],\n 'border-color-y': ['border-color-t', 'border-color-b'],\n 'scroll-m': ['scroll-mx', 'scroll-my', 'scroll-ms', 'scroll-me', 'scroll-mt', 'scroll-mr', 'scroll-mb', 'scroll-ml'],\n 'scroll-mx': ['scroll-mr', 'scroll-ml'],\n 'scroll-my': ['scroll-mt', 'scroll-mb'],\n 'scroll-p': ['scroll-px', 'scroll-py', 'scroll-ps', 'scroll-pe', 'scroll-pt', 'scroll-pr', 'scroll-pb', 'scroll-pl'],\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 };\n};\n\n/**\n * @param baseConfig Config where other config will be merged into. This object will be mutated.\n * @param configExtension Partial config to merge into the `baseConfig`.\n */\nconst mergeConfigs = (baseConfig, {\n cacheSize,\n prefix,\n separator,\n experimentalParseClassName,\n extend = {},\n override = {}\n}) => {\n overrideProperty(baseConfig, 'cacheSize', cacheSize);\n overrideProperty(baseConfig, 'prefix', prefix);\n overrideProperty(baseConfig, 'separator', separator);\n overrideProperty(baseConfig, 'experimentalParseClassName', experimentalParseClassName);\n for (const configKey in override) {\n overrideConfigProperties(baseConfig[configKey], override[configKey]);\n }\n for (const key in extend) {\n mergeConfigProperties(baseConfig[key], extend[key]);\n }\n return baseConfig;\n};\nconst overrideProperty = (baseObject, overrideKey, overrideValue) => {\n if (overrideValue !== undefined) {\n baseObject[overrideKey] = overrideValue;\n }\n};\nconst overrideConfigProperties = (baseObject, overrideObject) => {\n if (overrideObject) {\n for (const key in overrideObject) {\n overrideProperty(baseObject, key, overrideObject[key]);\n }\n }\n};\nconst mergeConfigProperties = (baseObject, mergeObject) => {\n if (mergeObject) {\n for (const key in mergeObject) {\n const mergeValue = mergeObject[key];\n if (mergeValue !== undefined) {\n baseObject[key] = (baseObject[key] || []).concat(mergeValue);\n }\n }\n }\n};\nconst extendTailwindMerge = (configExtension, ...createConfig) => typeof configExtension === 'function' ? createTailwindMerge(getDefaultConfig, configExtension, ...createConfig) : createTailwindMerge(() => mergeConfigs(getDefaultConfig(), configExtension), ...createConfig);\nconst twMerge = /*#__PURE__*/createTailwindMerge(getDefaultConfig);\nexport { createTailwindMerge, extendTailwindMerge, fromTheme, getDefaultConfig, mergeConfigs, twJoin, twMerge, validators };\n//# sourceMappingURL=bundle-mjs.mjs.map\n","import { type ClassValue, clsx } from 'clsx'\nimport { twMerge } from 'tailwind-merge'\n\nexport function cn(...inputs: ClassValue[]) {\n return twMerge(clsx(inputs))\n}\n","import {\n forwardRef,\n type ButtonHTMLAttributes,\n type ReactNode,\n cloneElement,\n isValidElement,\n} from 'react'\nimport { cn } from '../../utils/cn'\n\nexport type ButtonSize = 'sm' | 'md' | 'lg'\n\nexport interface ButtonProps extends ButtonHTMLAttributes<HTMLButtonElement> {\n variant?: 'primary' | 'secondary' | 'ghost' | 'glass'\n /** Size of the button. Can be a single value or responsive object */\n size?: ButtonSize | { base?: ButtonSize; md?: ButtonSize; lg?: ButtonSize }\n children: ReactNode\n isLoading?: boolean\n leftIcon?: ReactNode\n rightIcon?: ReactNode\n asChild?: boolean\n /** Ensures minimum 44px touch target for accessibility (WCAG 2.5.5) */\n touchTarget?: boolean\n}\n\nexport const Button = forwardRef<HTMLButtonElement, ButtonProps>(\n (\n {\n variant = 'primary',\n size = 'md',\n children,\n isLoading = false,\n leftIcon,\n rightIcon,\n className,\n disabled,\n asChild = false,\n touchTarget = false,\n ...props\n },\n ref\n ) => {\n const baseStyles = [\n 'inline-flex items-center justify-center gap-2',\n 'font-medium',\n 'border',\n 'rounded-full',\n 'transition-[transform,background-color,border-color,color,opacity] duration-200 ease-out',\n 'focus-ring',\n 'disabled:opacity-50 disabled:cursor-not-allowed disabled:pointer-events-none',\n // Active state for touch feedback\n 'active:scale-[0.96]',\n ]\n\n const variants = {\n primary: [\n 'bg-[var(--color-white)] text-[var(--color-bg)]',\n 'border-[var(--color-white)]',\n 'hover:scale-[1.02]',\n 'glow-white',\n ],\n secondary: [\n 'bg-transparent text-[var(--color-white)]',\n 'border-[var(--glass-border)]',\n 'hover:border-[var(--glass-highlight)] hover:bg-[var(--glass-bg)]',\n ],\n ghost: [\n 'bg-transparent text-[var(--color-grey-400)]',\n 'border-transparent',\n 'hover:text-[var(--color-white)] hover:bg-[var(--glass-bg)]',\n ],\n glass: [\n 'bg-[var(--glass-bg)] text-[var(--color-white)]',\n 'border-[var(--glass-border)]',\n 'backdrop-blur-lg',\n 'hover:bg-[rgba(255,255,255,0.1)] hover:border-[var(--glass-highlight)]',\n 'hover:scale-[1.02]',\n ],\n }\n\n const sizes = {\n sm: 'px-3 py-1.5 text-xs',\n md: 'px-4 py-2 text-sm',\n lg: 'px-6 py-3 text-base',\n }\n\n // Handle responsive size prop\n const getSizeClasses = () => {\n if (typeof size === 'string') {\n return sizes[size]\n }\n\n // Responsive size object\n const classes: string[] = []\n if (size.base) classes.push(sizes[size.base])\n if (size.md) classes.push(`md:${sizes[size.md].split(' ').join(' md:')}`)\n if (size.lg) classes.push(`lg:${sizes[size.lg].split(' ').join(' lg:')}`)\n\n // If no base specified, default to sm for mobile-first\n if (!size.base && (size.md || size.lg)) {\n classes.unshift(sizes.sm)\n }\n\n return classes.join(' ')\n }\n\n const touchTargetStyles = touchTarget ? 'min-w-[44px] min-h-[44px]' : ''\n\n const buttonClassName = cn(\n baseStyles,\n variants[variant],\n getSizeClasses(),\n touchTargetStyles,\n className\n )\n\n type ChildProps = { children?: ReactNode; className?: string }\n const childElement = isValidElement<ChildProps>(children) ? children : null\n\n const content = (\n <>\n {isLoading ? (\n <span className=\"w-4 h-4 border-2 border-current border-t-transparent rounded-full animate-spin\" />\n ) : (\n leftIcon\n )}\n {asChild && childElement ? childElement.props.children : children}\n {!isLoading && rightIcon}\n </>\n )\n\n if (asChild && childElement) {\n return cloneElement(childElement, {\n className: cn(buttonClassName, childElement.props.className),\n ref,\n children: content,\n } as ChildProps)\n }\n\n return (\n <button\n ref={ref}\n className={buttonClassName}\n disabled={disabled || isLoading}\n {...props}\n >\n {content}\n </button>\n )\n }\n)\n\nButton.displayName = 'Button'\n","import { type HTMLAttributes, type ReactNode } from 'react'\nimport { cn } from '../../utils/cn'\n\nexport interface BadgeProps extends HTMLAttributes<HTMLSpanElement> {\n variant?: 'default' | 'sage' | 'coral' | 'mint' | 'gold' | 'outline'\n size?: 'sm' | 'md'\n children: ReactNode\n}\n\nexport function Badge({\n variant = 'default',\n size = 'sm',\n children,\n className,\n ...props\n}: BadgeProps) {\n const baseStyles = [\n 'inline-flex items-center justify-center',\n 'font-medium',\n 'rounded-full',\n 'whitespace-nowrap',\n 'transition-colors duration-200',\n 'backdrop-blur-sm',\n ]\n\n const variants = {\n default: [\n 'bg-[var(--glass-bg)]',\n 'text-[var(--color-grey-400)]',\n 'border border-[var(--glass-border)]',\n ],\n sage: [\n 'bg-[var(--color-sage)]/10',\n 'text-[var(--color-sage)]',\n 'border border-[var(--color-sage)]/20',\n ],\n coral: [\n 'bg-[var(--color-coral)]/10',\n 'text-[var(--color-coral)]',\n 'border border-[var(--color-coral)]/20',\n ],\n mint: [\n 'bg-[var(--color-mint)]/10',\n 'text-[var(--color-mint)]',\n 'border border-[var(--color-mint)]/20',\n ],\n gold: [\n 'bg-[var(--color-gold)]/10',\n 'text-[var(--color-gold)]',\n 'border border-[var(--color-gold)]/20',\n ],\n outline: [\n 'bg-transparent',\n 'text-[var(--color-grey-400)]',\n 'border border-[var(--glass-border)]',\n ],\n }\n\n const sizes = {\n sm: 'px-2 py-0.5 text-[10px] tracking-wide uppercase',\n md: 'px-3 py-1 text-xs',\n }\n\n return (\n <span className={cn(baseStyles, variants[variant], sizes[size], className)} {...props}>\n {children}\n </span>\n )\n}\n","import { forwardRef, type InputHTMLAttributes, type ReactNode } from 'react'\nimport { cn } from '../../utils/cn'\n\nexport interface InputProps extends InputHTMLAttributes<HTMLInputElement> {\n variant?: 'default' | 'glass'\n inputSize?: 'sm' | 'md' | 'lg'\n leftIcon?: ReactNode\n rightIcon?: ReactNode\n /** Error state - boolean for styling only, or string to display error message */\n error?: boolean | string\n /** Associated label id for accessibility */\n labelId?: string\n}\n\nexport const Input = forwardRef<HTMLInputElement, InputProps>(\n (\n {\n variant = 'default',\n inputSize = 'md',\n leftIcon,\n rightIcon,\n error = false,\n labelId,\n className,\n id,\n ...props\n },\n ref\n ) => {\n const hasError = Boolean(error)\n const errorMessage = typeof error === 'string' ? error : undefined\n const errorId = errorMessage && id ? `${id}-error` : undefined\n const wrapperStyles = [\n 'relative inline-flex items-center w-full',\n 'border rounded-xl',\n 'transition-[border-color,background-color,box-shadow] duration-200',\n 'focus-within:border-[var(--color-white)]',\n 'focus-glow',\n ]\n\n const variants = {\n default: [\n 'bg-transparent',\n hasError ? 'border-[var(--color-coral)]' : 'border-[var(--glass-border)]',\n 'hover:border-[var(--glass-highlight)]',\n ],\n glass: [\n 'bg-[var(--glass-bg)]',\n 'backdrop-blur-lg',\n hasError ? 'border-[var(--color-coral)]' : 'border-[var(--glass-border)]',\n 'hover:bg-[rgba(255,255,255,0.08)]',\n ],\n }\n\n const sizes = {\n sm: 'h-8',\n md: 'h-10',\n lg: 'h-12',\n }\n\n const inputSizes = {\n sm: 'text-xs px-3',\n md: 'text-sm px-4',\n lg: 'text-base px-5',\n }\n\n const iconPadding = {\n sm: { left: 'pl-8', right: 'pr-8' },\n md: { left: 'pl-10', right: 'pr-10' },\n lg: { left: 'pl-12', right: 'pr-12' },\n }\n\n return (\n <div className=\"flex flex-col gap-1.5\">\n <div className={cn(wrapperStyles, variants[variant], sizes[inputSize], className)}>\n {leftIcon && (\n <span className=\"absolute left-3 text-[var(--color-grey-400)] pointer-events-none\" aria-hidden=\"true\">\n {leftIcon}\n </span>\n )}\n <input\n ref={ref}\n id={id}\n className={cn(\n 'w-full h-full bg-transparent',\n 'text-[var(--color-white)]',\n 'placeholder:text-[var(--color-grey-600)]',\n 'focus:outline-none focus-visible:outline-none',\n inputSizes[inputSize],\n leftIcon && iconPadding[inputSize].left,\n rightIcon && iconPadding[inputSize].right\n )}\n aria-invalid={hasError || undefined}\n aria-describedby={errorId}\n aria-labelledby={labelId}\n {...props}\n />\n {rightIcon && (\n <span className=\"absolute right-3 text-[var(--color-grey-400)]\" aria-hidden=\"true\">{rightIcon}</span>\n )}\n </div>\n {errorMessage && (\n <span id={errorId} className=\"text-xs text-[var(--color-coral)]\" role=\"alert\">\n {errorMessage}\n </span>\n )}\n </div>\n )\n }\n)\n\nInput.displayName = 'Input'\n","\"use client\";import o from\"react\";const t=o.createContext({});function i({iconProps:e,children:r}){return o.createElement(t.Provider,{value:e||{},children:r})}export{t as IconoirContext,i as IconoirProvider};\n","\"use client\";var p=Object.defineProperty;var s=Object.getOwnPropertySymbols;var f=Object.prototype.hasOwnProperty,c=Object.prototype.propertyIsEnumerable;var i=(t,o,r)=>o in t?p(t,o,{enumerable:!0,configurable:!0,writable:!0,value:r}):t[o]=r,e=(t,o)=>{for(var r in o||(o={}))f.call(o,r)&&i(t,r,o[r]);if(s)for(var r of s(o))c.call(o,r)&&i(t,r,o[r]);return t};import*as n from\"react\";import{forwardRef as l}from\"react\";import{IconoirContext as d}from\"../IconoirContext.mjs\";const u=(t,o)=>{const r=n.useContext(d),m=e(e({},r),t);return n.createElement(\"svg\",e({width:\"1.5em\",height:\"1.5em\",viewBox:\"0 0 24 24\",strokeWidth:1.5,fill:\"none\",xmlns:\"http://www.w3.org/2000/svg\",color:\"currentColor\",ref:o},m),n.createElement(\"path\",{d:\"M12 3L12 21M12 21L20.5 12.5M12 21L3.5 12.5\",stroke:\"currentColor\",strokeLinecap:\"round\",strokeLinejoin:\"round\"}))},w=l(u);var x=w;export{x as default};\n","\"use client\";var p=Object.defineProperty;var s=Object.getOwnPropertySymbols;var f=Object.prototype.hasOwnProperty,c=Object.prototype.propertyIsEnumerable;var i=(t,o,r)=>o in t?p(t,o,{enumerable:!0,configurable:!0,writable:!0,value:r}):t[o]=r,e=(t,o)=>{for(var r in o||(o={}))f.call(o,r)&&i(t,r,o[r]);if(s)for(var r of s(o))c.call(o,r)&&i(t,r,o[r]);return t};import*as n from\"react\";import{forwardRef as l}from\"react\";import{IconoirContext as d}from\"../IconoirContext.mjs\";const u=(t,o)=>{const r=n.useContext(d),m=e(e({},r),t);return n.createElement(\"svg\",e({width:\"1.5em\",height:\"1.5em\",viewBox:\"0 0 24 24\",strokeWidth:1.5,fill:\"none\",xmlns:\"http://www.w3.org/2000/svg\",color:\"currentColor\",ref:o},m),n.createElement(\"path\",{d:\"M21 12L3 12M3 12L11.5 3.5M3 12L11.5 20.5\",stroke:\"currentColor\",strokeLinecap:\"round\",strokeLinejoin:\"round\"}))},w=l(u);var x=w;export{x as default};\n","\"use client\";var p=Object.defineProperty;var s=Object.getOwnPropertySymbols;var f=Object.prototype.hasOwnProperty,c=Object.prototype.propertyIsEnumerable;var i=(t,o,r)=>o in t?p(t,o,{enumerable:!0,configurable:!0,writable:!0,value:r}):t[o]=r,e=(t,o)=>{for(var r in o||(o={}))f.call(o,r)&&i(t,r,o[r]);if(s)for(var r of s(o))c.call(o,r)&&i(t,r,o[r]);return t};import*as n from\"react\";import{forwardRef as l}from\"react\";import{IconoirContext as d}from\"../IconoirContext.mjs\";const u=(t,o)=>{const r=n.useContext(d),m=e(e({},r),t);return n.createElement(\"svg\",e({width:\"1.5em\",height:\"1.5em\",viewBox:\"0 0 24 24\",strokeWidth:1.5,fill:\"none\",xmlns:\"http://www.w3.org/2000/svg\",color:\"currentColor\",ref:o},m),n.createElement(\"path\",{d:\"M3 12L21 12M21 12L12.5 3.5M21 12L12.5 20.5\",stroke:\"currentColor\",strokeLinecap:\"round\",strokeLinejoin:\"round\"}))},w=l(u);var x=w;export{x as default};\n","\"use client\";var p=Object.defineProperty;var s=Object.getOwnPropertySymbols;var f=Object.prototype.hasOwnProperty,c=Object.prototype.propertyIsEnumerable;var i=(t,o,r)=>o in t?p(t,o,{enumerable:!0,configurable:!0,writable:!0,value:r}):t[o]=r,e=(t,o)=>{for(var r in o||(o={}))f.call(o,r)&&i(t,r,o[r]);if(s)for(var r of s(o))c.call(o,r)&&i(t,r,o[r]);return t};import*as n from\"react\";import{forwardRef as l}from\"react\";import{IconoirContext as d}from\"../IconoirContext.mjs\";const u=(t,o)=>{const r=n.useContext(d),m=e(e({},r),t);return n.createElement(\"svg\",e({width:\"1.5em\",height:\"1.5em\",viewBox:\"0 0 24 24\",strokeWidth:1.5,fill:\"none\",xmlns:\"http://www.w3.org/2000/svg\",color:\"currentColor\",ref:o},m),n.createElement(\"path\",{d:\"M6.00005 19L19 5.99996M19 5.99996V18.48M19 5.99996H6.52005\",stroke:\"currentColor\",strokeLinecap:\"round\",strokeLinejoin:\"round\"}))},w=l(u);var h=w;export{h as default};\n","\"use client\";var p=Object.defineProperty;var s=Object.getOwnPropertySymbols;var f=Object.prototype.hasOwnProperty,c=Object.prototype.propertyIsEnumerable;var i=(t,o,r)=>o in t?p(t,o,{enumerable:!0,configurable:!0,writable:!0,value:r}):t[o]=r,e=(t,o)=>{for(var r in o||(o={}))f.call(o,r)&&i(t,r,o[r]);if(s)for(var r of s(o))c.call(o,r)&&i(t,r,o[r]);return t};import*as n from\"react\";import{forwardRef as l}from\"react\";import{IconoirContext as d}from\"../IconoirContext.mjs\";const u=(t,o)=>{const r=n.useContext(d),m=e(e({},r),t);return n.createElement(\"svg\",e({width:\"1.5em\",height:\"1.5em\",viewBox:\"0 0 24 24\",strokeWidth:1.5,fill:\"none\",xmlns:\"http://www.w3.org/2000/svg\",color:\"currentColor\",ref:o},m),n.createElement(\"path\",{d:\"M12 21L12 3M12 3L20.5 11.5M12 3L3.5 11.5\",stroke:\"currentColor\",strokeLinecap:\"round\",strokeLinejoin:\"round\"}))},w=l(u);var x=w;export{x as default};\n","\"use client\";var C=Object.defineProperty;var s=Object.getOwnPropertySymbols;var m=Object.prototype.hasOwnProperty,c=Object.prototype.propertyIsEnumerable;var i=(e,o,r)=>o in e?C(e,o,{enumerable:!0,configurable:!0,writable:!0,value:r}):e[o]=r,t=(e,o)=>{for(var r in o||(o={}))m.call(o,r)&&i(e,r,o[r]);if(s)for(var r of s(o))c.call(o,r)&&i(e,r,o[r]);return e};import*as n from\"react\";import{forwardRef as f}from\"react\";import{IconoirContext as d}from\"../IconoirContext.mjs\";const l=(e,o)=>{const r=n.useContext(d),p=t(t({},r),e);return n.createElement(\"svg\",t({width:\"1.5em\",height:\"1.5em\",strokeWidth:1.5,viewBox:\"0 0 24 24\",fill:\"none\",xmlns:\"http://www.w3.org/2000/svg\",color:\"currentColor\",ref:o},p),n.createElement(\"path\",{d:\"M18 8.4C18 6.70261 17.3679 5.07475 16.2426 3.87452C15.1174 2.67428 13.5913 2 12 2C10.4087 2 8.88258 2.67428 7.75736 3.87452C6.63214 5.07475 6 6.70261 6 8.4C6 15.8667 3 18 3 18H21C21 18 18 15.8667 18 8.4Z\",stroke:\"currentColor\",strokeLinecap:\"round\",strokeLinejoin:\"round\"}),n.createElement(\"path\",{d:\"M13.73 21C13.5542 21.3031 13.3019 21.5547 12.9982 21.7295C12.6946 21.9044 12.3504 21.9965 12 21.9965C11.6496 21.9965 11.3054 21.9044 11.0018 21.7295C10.6982 21.5547 10.4458 21.3031 10.27 21\",stroke:\"currentColor\",strokeLinecap:\"round\",strokeLinejoin:\"round\"}))},u=f(l);var S=u;export{S as default};\n","\"use client\";var d=Object.defineProperty;var s=Object.getOwnPropertySymbols;var u=Object.prototype.hasOwnProperty,c=Object.prototype.propertyIsEnumerable;var i=(e,o,r)=>o in e?d(e,o,{enumerable:!0,configurable:!0,writable:!0,value:r}):e[o]=r,n=(e,o)=>{for(var r in o||(o={}))u.call(o,r)&&i(e,r,o[r]);if(s)for(var r of s(o))c.call(o,r)&&i(e,r,o[r]);return e};import*as t from\"react\";import{forwardRef as m}from\"react\";import{IconoirContext as k}from\"../IconoirContext.mjs\";const l=(e,o)=>{const r=t.useContext(k),p=n(n({},r),e);return t.createElement(\"svg\",n({width:\"1.5em\",height:\"1.5em\",strokeWidth:1.5,viewBox:\"0 0 24 24\",fill:\"none\",xmlns:\"http://www.w3.org/2000/svg\",color:\"currentColor\",ref:o},p),t.createElement(\"path\",{d:\"M15 4V2M15 4V6M15 4H10.5M3 10V19C3 20.1046 3.89543 21 5 21H19C20.1046 21 21 20.1046 21 19V10H3Z\",stroke:\"currentColor\",strokeLinecap:\"round\",strokeLinejoin:\"round\"}),t.createElement(\"path\",{d:\"M3 10V6C3 4.89543 3.89543 4 5 4H7\",stroke:\"currentColor\",strokeLinecap:\"round\",strokeLinejoin:\"round\"}),t.createElement(\"path\",{d:\"M7 2V6\",stroke:\"currentColor\",strokeLinecap:\"round\",strokeLinejoin:\"round\"}),t.createElement(\"path\",{d:\"M21 10V6C21 4.89543 20.1046 4 19 4H18.5\",stroke:\"currentColor\",strokeLinecap:\"round\",strokeLinejoin:\"round\"}))},V=m(l);var w=V;export{w as default};\n","\"use client\";var m=Object.defineProperty;var s=Object.getOwnPropertySymbols;var c=Object.prototype.hasOwnProperty,f=Object.prototype.propertyIsEnumerable;var i=(e,o,r)=>o in e?m(e,o,{enumerable:!0,configurable:!0,writable:!0,value:r}):e[o]=r,t=(e,o)=>{for(var r in o||(o={}))c.call(o,r)&&i(e,r,o[r]);if(s)for(var r of s(o))f.call(o,r)&&i(e,r,o[r]);return e};import*as n from\"react\";import{forwardRef as d}from\"react\";import{IconoirContext as l}from\"../IconoirContext.mjs\";const u=(e,o)=>{const r=n.useContext(l),p=t(t({},r),e);return n.createElement(\"svg\",t({width:\"1.5em\",height:\"1.5em\",strokeWidth:1.5,viewBox:\"0 0 24 24\",fill:\"none\",xmlns:\"http://www.w3.org/2000/svg\",color:\"currentColor\",ref:o},p),n.createElement(\"path\",{d:\"M7 12.5L10 15.5L17 8.5\",stroke:\"currentColor\",strokeLinecap:\"round\",strokeLinejoin:\"round\"}),n.createElement(\"path\",{d:\"M12 22C17.5228 22 22 17.5228 22 12C22 6.47715 17.5228 2 12 2C6.47715 2 2 6.47715 2 12C2 17.5228 6.47715 22 12 22Z\",stroke:\"currentColor\",strokeLinecap:\"round\",strokeLinejoin:\"round\"}))},C=d(u);var S=C;export{S as default};\n","\"use client\";var p=Object.defineProperty;var s=Object.getOwnPropertySymbols;var f=Object.prototype.hasOwnProperty,c=Object.prototype.propertyIsEnumerable;var i=(t,o,r)=>o in t?p(t,o,{enumerable:!0,configurable:!0,writable:!0,value:r}):t[o]=r,e=(t,o)=>{for(var r in o||(o={}))f.call(o,r)&&i(t,r,o[r]);if(s)for(var r of s(o))c.call(o,r)&&i(t,r,o[r]);return t};import*as n from\"react\";import{forwardRef as l}from\"react\";import{IconoirContext as d}from\"../IconoirContext.mjs\";const u=(t,o)=>{const r=n.useContext(d),m=e(e({},r),t);return n.createElement(\"svg\",e({width:\"1.5em\",height:\"1.5em\",strokeWidth:1.5,viewBox:\"0 0 24 24\",fill:\"none\",xmlns:\"http://www.w3.org/2000/svg\",color:\"currentColor\",ref:o},m),n.createElement(\"path\",{d:\"M5 13L9 17L19 7\",stroke:\"currentColor\",strokeLinecap:\"round\",strokeLinejoin:\"round\"}))},w=l(u);var x=w;export{x as default};\n","\"use client\";var m=Object.defineProperty;var s=Object.getOwnPropertySymbols;var c=Object.prototype.hasOwnProperty,f=Object.prototype.propertyIsEnumerable;var i=(e,o,r)=>o in e?m(e,o,{enumerable:!0,configurable:!0,writable:!0,value:r}):e[o]=r,t=(e,o)=>{for(var r in o||(o={}))c.call(o,r)&&i(e,r,o[r]);if(s)for(var r of s(o))f.call(o,r)&&i(e,r,o[r]);return e};import*as n from\"react\";import{forwardRef as d}from\"react\";import{IconoirContext as l}from\"../IconoirContext.mjs\";const u=(e,o)=>{const r=n.useContext(l),p=t(t({},r),e);return n.createElement(\"svg\",t({width:\"1.5em\",height:\"1.5em\",strokeWidth:1.5,viewBox:\"0 0 24 24\",fill:\"none\",xmlns:\"http://www.w3.org/2000/svg\",color:\"currentColor\",ref:o},p),n.createElement(\"path\",{d:\"M12 6L12 12L18 12\",stroke:\"currentColor\",strokeLinecap:\"round\",strokeLinejoin:\"round\"}),n.createElement(\"path\",{d:\"M12 22C17.5228 22 22 17.5228 22 12C22 6.47715 17.5228 2 12 2C6.47715 2 2 6.47715 2 12C2 17.5228 6.47715 22 12 22Z\",stroke:\"currentColor\",strokeLinecap:\"round\",strokeLinejoin:\"round\"}))},C=d(u);var S=C;export{S as default};\n","\"use client\";var d=Object.defineProperty;var s=Object.getOwnPropertySymbols;var m=Object.prototype.hasOwnProperty,u=Object.prototype.propertyIsEnumerable;var i=(e,o,r)=>o in e?d(e,o,{enumerable:!0,configurable:!0,writable:!0,value:r}):e[o]=r,n=(e,o)=>{for(var r in o||(o={}))m.call(o,r)&&i(e,r,o[r]);if(s)for(var r of s(o))u.call(o,r)&&i(e,r,o[r]);return e};import*as t from\"react\";import{forwardRef as c}from\"react\";import{IconoirContext as f}from\"../IconoirContext.mjs\";const l=(e,o)=>{const r=t.useContext(f),p=n(n({},r),e);return t.createElement(\"svg\",n({width:\"1.5em\",height:\"1.5em\",strokeWidth:1.5,viewBox:\"0 0 24 24\",fill:\"none\",xmlns:\"http://www.w3.org/2000/svg\",color:\"currentColor\",ref:o},p),t.createElement(\"path\",{d:\"M13.5 6L10 18.5\",stroke:\"currentColor\",strokeLinecap:\"round\",strokeLinejoin:\"round\"}),t.createElement(\"path\",{d:\"M6.5 8.5L3 12L6.5 15.5\",stroke:\"currentColor\",strokeLinecap:\"round\",strokeLinejoin:\"round\"}),t.createElement(\"path\",{d:\"M17.5 8.5L21 12L17.5 15.5\",stroke:\"currentColor\",strokeLinecap:\"round\",strokeLinejoin:\"round\"}))},L=c(l);var C=L;export{C as default};\n","\"use client\";var m=Object.defineProperty;var s=Object.getOwnPropertySymbols;var C=Object.prototype.hasOwnProperty,c=Object.prototype.propertyIsEnumerable;var i=(e,o,r)=>o in e?m(e,o,{enumerable:!0,configurable:!0,writable:!0,value:r}):e[o]=r,t=(e,o)=>{for(var r in o||(o={}))C.call(o,r)&&i(e,r,o[r]);if(s)for(var r of s(o))c.call(o,r)&&i(e,r,o[r]);return e};import*as n from\"react\";import{forwardRef as f}from\"react\";import{IconoirContext as d}from\"../IconoirContext.mjs\";const l=(e,o)=>{const r=n.useContext(d),p=t(t({},r),e);return n.createElement(\"svg\",t({width:\"1.5em\",height:\"1.5em\",strokeWidth:1.5,viewBox:\"0 0 24 24\",fill:\"none\",xmlns:\"http://www.w3.org/2000/svg\",color:\"currentColor\",ref:o},p),n.createElement(\"path\",{d:\"M19.4 20H9.6C9.26863 20 9 19.7314 9 19.4V9.6C9 9.26863 9.26863 9 9.6 9H19.4C19.7314 9 20 9.26863 20 9.6V19.4C20 19.7314 19.7314 20 19.4 20Z\",stroke:\"currentColor\",strokeLinecap:\"round\",strokeLinejoin:\"round\"}),n.createElement(\"path\",{d:\"M15 9V4.6C15 4.26863 14.7314 4 14.4 4H4.6C4.26863 4 4 4.26863 4 4.6V14.4C4 14.7314 4.26863 15 4.6 15H9\",stroke:\"currentColor\",strokeLinecap:\"round\",strokeLinejoin:\"round\"}))},u=f(l);var k=u;export{k as default};\n","\"use client\";var m=Object.defineProperty;var s=Object.getOwnPropertySymbols;var c=Object.prototype.hasOwnProperty,f=Object.prototype.propertyIsEnumerable;var i=(e,o,r)=>o in e?m(e,o,{enumerable:!0,configurable:!0,writable:!0,value:r}):e[o]=r,t=(e,o)=>{for(var r in o||(o={}))c.call(o,r)&&i(e,r,o[r]);if(s)for(var r of s(o))f.call(o,r)&&i(e,r,o[r]);return e};import*as n from\"react\";import{forwardRef as d}from\"react\";import{IconoirContext as l}from\"../IconoirContext.mjs\";const u=(e,o)=>{const r=n.useContext(l),p=t(t({},r),e);return n.createElement(\"svg\",t({width:\"1.5em\",height:\"1.5em\",strokeWidth:1.5,viewBox:\"0 0 24 24\",fill:\"none\",xmlns:\"http://www.w3.org/2000/svg\",color:\"currentColor\",ref:o},p),n.createElement(\"path\",{d:\"M6 20L18 20\",stroke:\"currentColor\",strokeLinecap:\"round\",strokeLinejoin:\"round\"}),n.createElement(\"path\",{d:\"M12 4V16M12 16L15.5 12.5M12 16L8.5 12.5\",stroke:\"currentColor\",strokeLinecap:\"round\",strokeLinejoin:\"round\"}))},w=d(u);var S=w;export{S as default};\n","\"use client\";var p=Object.defineProperty;var s=Object.getOwnPropertySymbols;var f=Object.prototype.hasOwnProperty,c=Object.prototype.propertyIsEnumerable;var i=(t,o,r)=>o in t?p(t,o,{enumerable:!0,configurable:!0,writable:!0,value:r}):t[o]=r,e=(t,o)=>{for(var r in o||(o={}))f.call(o,r)&&i(t,r,o[r]);if(s)for(var r of s(o))c.call(o,r)&&i(t,r,o[r]);return t};import*as n from\"react\";import{forwardRef as l}from\"react\";import{IconoirContext as C}from\"../IconoirContext.mjs\";const L=(t,o)=>{const r=n.useContext(C),m=e(e({},r),t);return n.createElement(\"svg\",e({width:\"1.5em\",height:\"1.5em\",viewBox:\"0 0 24 24\",strokeWidth:1.5,fill:\"none\",xmlns:\"http://www.w3.org/2000/svg\",color:\"currentColor\",ref:o},m),n.createElement(\"path\",{d:\"M14.3632 5.65156L15.8431 4.17157C16.6242 3.39052 17.8905 3.39052 18.6716 4.17157L20.0858 5.58579C20.8668 6.36683 20.8668 7.63316 20.0858 8.41421L18.6058 9.8942M14.3632 5.65156L4.74749 15.2672C4.41542 15.5993 4.21079 16.0376 4.16947 16.5054L3.92738 19.2459C3.87261 19.8659 4.39148 20.3848 5.0115 20.33L7.75191 20.0879C8.21972 20.0466 8.65806 19.8419 8.99013 19.5099L18.6058 9.8942M14.3632 5.65156L18.6058 9.8942\",stroke:\"currentColor\",strokeLinecap:\"round\",strokeLinejoin:\"round\"}))},d=l(L);var g=d;export{g as default};\n","\"use client\";var d=Object.defineProperty;var s=Object.getOwnPropertySymbols;var u=Object.prototype.hasOwnProperty,c=Object.prototype.propertyIsEnumerable;var i=(e,o,r)=>o in e?d(e,o,{enumerable:!0,configurable:!0,writable:!0,value:r}):e[o]=r,n=(e,o)=>{for(var r in o||(o={}))u.call(o,r)&&i(e,r,o[r]);if(s)for(var r of s(o))c.call(o,r)&&i(e,r,o[r]);return e};import*as t from\"react\";import{forwardRef as m}from\"react\";import{IconoirContext as k}from\"../IconoirContext.mjs\";const l=(e,o)=>{const r=t.useContext(k),p=n(n({},r),e);return t.createElement(\"svg\",n({width:\"1.5em\",height:\"1.5em\",viewBox:\"0 0 24 24\",strokeWidth:1.5,fill:\"none\",xmlns:\"http://www.w3.org/2000/svg\",color:\"currentColor\",ref:o},p),t.createElement(\"path\",{d:\"M19.5 16L17.0248 12.6038\",stroke:\"currentColor\",strokeLinecap:\"round\",strokeLinejoin:\"round\"}),t.createElement(\"path\",{d:\"M12 17.5V14\",stroke:\"currentColor\",strokeLinecap:\"round\",strokeLinejoin:\"round\"}),t.createElement(\"path\",{d:\"M4.5 16L6.96895 12.6124\",stroke:\"currentColor\",strokeLinecap:\"round\",strokeLinejoin:\"round\"}),t.createElement(\"path\",{d:\"M3 8C6.6 16 17.4 16 21 8\",stroke:\"currentColor\",strokeLinecap:\"round\",strokeLinejoin:\"round\"}))},f=m(l);var w=f;export{w as default};\n","\"use client\";var m=Object.defineProperty;var s=Object.getOwnPropertySymbols;var c=Object.prototype.hasOwnProperty,f=Object.prototype.propertyIsEnumerable;var i=(e,o,r)=>o in e?m(e,o,{enumerable:!0,configurable:!0,writable:!0,value:r}):e[o]=r,t=(e,o)=>{for(var r in o||(o={}))c.call(o,r)&&i(e,r,o[r]);if(s)for(var r of s(o))f.call(o,r)&&i(e,r,o[r]);return e};import*as n from\"react\";import{forwardRef as d}from\"react\";import{IconoirContext as l}from\"../IconoirContext.mjs\";const u=(e,o)=>{const r=n.useContext(l),p=t(t({},r),e);return n.createElement(\"svg\",t({width:\"1.5em\",height:\"1.5em\",viewBox:\"0 0 24 24\",strokeWidth:1.5,fill:\"none\",xmlns:\"http://www.w3.org/2000/svg\",color:\"currentColor\",ref:o},p),n.createElement(\"path\",{d:\"M3 13C6.6 5 17.4 5 21 13\",stroke:\"currentColor\",strokeLinecap:\"round\",strokeLinejoin:\"round\"}),n.createElement(\"path\",{d:\"M12 17C10.3431 17 9 15.6569 9 14C9 12.3431 10.3431 11 12 11C13.6569 11 15 12.3431 15 14C15 15.6569 13.6569 17 12 17Z\",stroke:\"currentColor\",strokeLinecap:\"round\",strokeLinejoin:\"round\"}))},C=d(u);var S=C;export{S as default};\n","\"use client\";var p=Object.defineProperty;var s=Object.getOwnPropertySymbols;var C=Object.prototype.hasOwnProperty,f=Object.prototype.propertyIsEnumerable;var i=(t,o,r)=>o in t?p(t,o,{enumerable:!0,configurable:!0,writable:!0,value:r}):t[o]=r,e=(t,o)=>{for(var r in o||(o={}))C.call(o,r)&&i(t,r,o[r]);if(s)for(var r of s(o))f.call(o,r)&&i(t,r,o[r]);return t};import*as n from\"react\";import{forwardRef as c}from\"react\";import{IconoirContext as l}from\"../IconoirContext.mjs\";const d=(t,o)=>{const r=n.useContext(l),m=e(e({},r),t);return n.createElement(\"svg\",e({width:\"1.5em\",height:\"1.5em\",strokeWidth:1.5,viewBox:\"0 0 24 24\",fill:\"none\",xmlns:\"http://www.w3.org/2000/svg\",color:\"currentColor\",ref:o},m),n.createElement(\"path\",{d:\"M3.99961 3H19.9997C20.552 3 20.9997 3.44764 20.9997 3.99987L20.9999 5.58569C21 5.85097 20.8946 6.10538 20.707 6.29295L14.2925 12.7071C14.105 12.8946 13.9996 13.149 13.9996 13.4142L13.9996 19.7192C13.9996 20.3698 13.3882 20.8472 12.7571 20.6894L10.7571 20.1894C10.3119 20.0781 9.99961 19.6781 9.99961 19.2192L9.99961 13.4142C9.99961 13.149 9.89425 12.8946 9.70672 12.7071L3.2925 6.29289C3.10496 6.10536 2.99961 5.851 2.99961 5.58579V4C2.99961 3.44772 3.44732 3 3.99961 3Z\",stroke:\"currentColor\",strokeLinecap:\"round\",strokeLinejoin:\"round\"}))},u=c(d);var a=u;export{a as default};\n","\"use client\";var p=Object.defineProperty;var s=Object.getOwnPropertySymbols;var f=Object.prototype.hasOwnProperty,c=Object.prototype.propertyIsEnumerable;var i=(t,o,r)=>o in t?p(t,o,{enumerable:!0,configurable:!0,writable:!0,value:r}):t[o]=r,e=(t,o)=>{for(var r in o||(o={}))f.call(o,r)&&i(t,r,o[r]);if(s)for(var r of s(o))c.call(o,r)&&i(t,r,o[r]);return t};import*as n from\"react\";import{forwardRef as C}from\"react\";import{IconoirContext as l}from\"../IconoirContext.mjs\";const V=(t,o)=>{const r=n.useContext(l),m=e(e({},r),t);return n.createElement(\"svg\",e({width:\"1.5em\",height:\"1.5em\",strokeWidth:1.5,viewBox:\"0 0 24 24\",fill:\"none\",xmlns:\"http://www.w3.org/2000/svg\",color:\"currentColor\",ref:o},m),n.createElement(\"path\",{d:\"M2 11V4.6C2 4.26863 2.26863 4 2.6 4H8.77805C8.92127 4 9.05977 4.05124 9.16852 4.14445L12.3315 6.85555C12.4402 6.94876 12.5787 7 12.722 7H21.4C21.7314 7 22 7.26863 22 7.6V11M2 11V19.4C2 19.7314 2.26863 20 2.6 20H21.4C21.7314 20 22 19.7314 22 19.4V11M2 11H22\",stroke:\"currentColor\",strokeLinecap:\"round\",strokeLinejoin:\"round\"}))},d=C(V);var g=d;export{g as default};\n","\"use client\";var p=Object.defineProperty;var s=Object.getOwnPropertySymbols;var m=Object.prototype.hasOwnProperty,c=Object.prototype.propertyIsEnumerable;var C=(e,o,r)=>o in e?p(e,o,{enumerable:!0,configurable:!0,writable:!0,value:r}):e[o]=r,t=(e,o)=>{for(var r in o||(o={}))m.call(o,r)&&C(e,r,o[r]);if(s)for(var r of s(o))c.call(o,r)&&C(e,r,o[r]);return e};import*as n from\"react\";import{forwardRef as f}from\"react\";import{IconoirContext as d}from\"../IconoirContext.mjs\";const l=(e,o)=>{const r=n.useContext(d),i=t(t({},r),e);return n.createElement(\"svg\",t({width:\"1.5em\",height:\"1.5em\",strokeWidth:1.5,viewBox:\"0 0 24 24\",fill:\"none\",xmlns:\"http://www.w3.org/2000/svg\",color:\"currentColor\",ref:o},i),n.createElement(\"path\",{d:\"M16 22.0268V19.1568C16.0375 18.68 15.9731 18.2006 15.811 17.7506C15.6489 17.3006 15.3929 16.8902 15.06 16.5468C18.2 16.1968 21.5 15.0068 21.5 9.54679C21.4997 8.15062 20.9627 6.80799 20 5.79679C20.4558 4.5753 20.4236 3.22514 19.91 2.02679C19.91 2.02679 18.73 1.67679 16 3.50679C13.708 2.88561 11.292 2.88561 8.99999 3.50679C6.26999 1.67679 5.08999 2.02679 5.08999 2.02679C4.57636 3.22514 4.54413 4.5753 4.99999 5.79679C4.03011 6.81549 3.49251 8.17026 3.49999 9.57679C3.49999 14.9968 6.79998 16.1868 9.93998 16.5768C9.61098 16.9168 9.35725 17.3222 9.19529 17.7667C9.03334 18.2112 8.96679 18.6849 8.99999 19.1568V22.0268\",stroke:\"currentColor\",strokeLinecap:\"round\",strokeLinejoin:\"round\"}),n.createElement(\"path\",{d:\"M9 20.0267C6 20.9999 3.5 20.0267 2 17.0267\",stroke:\"currentColor\",strokeLinecap:\"round\",strokeLinejoin:\"round\"}))},u=f(l);var k=u;export{k as default};\n","\"use client\";var p=Object.defineProperty;var s=Object.getOwnPropertySymbols;var f=Object.prototype.hasOwnProperty,c=Object.prototype.propertyIsEnumerable;var i=(t,o,r)=>o in t?p(t,o,{enumerable:!0,configurable:!0,writable:!0,value:r}):t[o]=r,e=(t,o)=>{for(var r in o||(o={}))f.call(o,r)&&i(t,r,o[r]);if(s)for(var r of s(o))c.call(o,r)&&i(t,r,o[r]);return t};import*as n from\"react\";import{forwardRef as l}from\"react\";import{IconoirContext as C}from\"../IconoirContext.mjs\";const d=(t,o)=>{const r=n.useContext(C),m=e(e({},r),t);return n.createElement(\"svg\",e({width:\"1.5em\",height:\"1.5em\",strokeWidth:1.5,viewBox:\"0 0 24 24\",fill:\"none\",xmlns:\"http://www.w3.org/2000/svg\",color:\"currentColor\",ref:o},m),n.createElement(\"path\",{d:\"M3 11.5066C3 16.7497 7.25034 21 12.4934 21C16.2209 21 19.4466 18.8518 21 15.7259C12.4934 15.7259 8.27411 11.5066 8.27411 3C5.14821 4.55344 3 7.77915 3 11.5066Z\",stroke:\"currentColor\",strokeLinecap:\"round\",strokeLinejoin:\"round\"}))},u=l(d);var h=u;export{h as default};\n","\"use client\";var p=Object.defineProperty;var s=Object.getOwnPropertySymbols;var C=Object.prototype.hasOwnProperty,f=Object.prototype.propertyIsEnumerable;var m=(t,o,r)=>o in t?p(t,o,{enumerable:!0,configurable:!0,writable:!0,value:r}):t[o]=r,e=(t,o)=>{for(var r in o||(o={}))C.call(o,r)&&m(t,r,o[r]);if(s)for(var r of s(o))f.call(o,r)&&m(t,r,o[r]);return t};import*as n from\"react\";import{forwardRef as c}from\"react\";import{IconoirContext as l}from\"../IconoirContext.mjs\";const w=(t,o)=>{const r=n.useContext(l),i=e(e({},r),t);return n.createElement(\"svg\",e({width:\"1.5em\",height:\"1.5em\",strokeWidth:1.5,viewBox:\"0 0 24 24\",fill:\"none\",xmlns:\"http://www.w3.org/2000/svg\",color:\"currentColor\",ref:o},i),n.createElement(\"path\",{d:\"M22 8.86222C22 10.4087 21.4062 11.8941 20.3458 12.9929C17.9049 15.523 15.5374 18.1613 13.0053 20.5997C12.4249 21.1505 11.5042 21.1304 10.9488 20.5547L3.65376 12.9929C1.44875 10.7072 1.44875 7.01723 3.65376 4.73157C5.88044 2.42345 9.50794 2.42345 11.7346 4.73157L11.9998 5.00642L12.2648 4.73173C13.3324 3.6245 14.7864 3 16.3053 3C17.8242 3 19.2781 3.62444 20.3458 4.73157C21.4063 5.83045 22 7.31577 22 8.86222Z\",stroke:\"currentColor\",strokeLinejoin:\"round\"}))},d=c(w);var x=d;export{x as default};\n","\"use client\";var m=Object.defineProperty;var s=Object.getOwnPropertySymbols;var c=Object.prototype.hasOwnProperty,f=Object.prototype.propertyIsEnumerable;var i=(e,o,r)=>o in e?m(e,o,{enumerable:!0,configurable:!0,writable:!0,value:r}):e[o]=r,t=(e,o)=>{for(var r in o||(o={}))c.call(o,r)&&i(e,r,o[r]);if(s)for(var r of s(o))f.call(o,r)&&i(e,r,o[r]);return e};import*as n from\"react\";import{forwardRef as d}from\"react\";import{IconoirContext as l}from\"../IconoirContext.mjs\";const u=(e,o)=>{const r=n.useContext(l),p=t(t({},r),e);return n.createElement(\"svg\",t({width:\"1.5em\",height:\"1.5em\",viewBox:\"0 0 24 24\",strokeWidth:1.5,fill:\"none\",xmlns:\"http://www.w3.org/2000/svg\",color:\"currentColor\",ref:o},p),n.createElement(\"path\",{d:\"M2 8L11.7317 3.13416C11.9006 3.04971 12.0994 3.0497 12.2683 3.13416L22 8\",stroke:\"currentColor\",strokeLinecap:\"round\",strokeLinejoin:\"round\"}),n.createElement(\"path\",{d:\"M20 11V19C20 20.1046 19.1046 21 18 21H6C4.89543 21 4 20.1046 4 19V11\",stroke:\"currentColor\",strokeLinecap:\"round\",strokeLinejoin:\"round\"}))},C=d(u);var k=C;export{k as default};\n","\"use client\";var d=Object.defineProperty;var s=Object.getOwnPropertySymbols;var m=Object.prototype.hasOwnProperty,u=Object.prototype.propertyIsEnumerable;var i=(e,o,r)=>o in e?d(e,o,{enumerable:!0,configurable:!0,writable:!0,value:r}):e[o]=r,n=(e,o)=>{for(var r in o||(o={}))m.call(o,r)&&i(e,r,o[r]);if(s)for(var r of s(o))u.call(o,r)&&i(e,r,o[r]);return e};import*as t from\"react\";import{forwardRef as c}from\"react\";import{IconoirContext as f}from\"../IconoirContext.mjs\";const l=(e,o)=>{const r=t.useContext(f),p=n(n({},r),e);return t.createElement(\"svg\",n({width:\"1.5em\",height:\"1.5em\",strokeWidth:1.5,viewBox:\"0 0 24 24\",fill:\"none\",xmlns:\"http://www.w3.org/2000/svg\",color:\"currentColor\",ref:o},p),t.createElement(\"path\",{d:\"M12 11.5V16.5\",stroke:\"currentColor\",strokeLinecap:\"round\",strokeLinejoin:\"round\"}),t.createElement(\"path\",{d:\"M12 7.51L12.01 7.49889\",stroke:\"currentColor\",strokeLinecap:\"round\",strokeLinejoin:\"round\"}),t.createElement(\"path\",{d:\"M12 22C17.5228 22 22 17.5228 22 12C22 6.47715 17.5228 2 12 2C6.47715 2 2 6.47715 2 12C2 17.5228 6.47715 22 12 22Z\",stroke:\"currentColor\",strokeLinecap:\"round\",strokeLinejoin:\"round\"}))},C=c(l);var L=C;export{L as default};\n","\"use client\";var C=Object.defineProperty;var s=Object.getOwnPropertySymbols;var m=Object.prototype.hasOwnProperty,c=Object.prototype.propertyIsEnumerable;var i=(e,o,r)=>o in e?C(e,o,{enumerable:!0,configurable:!0,writable:!0,value:r}):e[o]=r,t=(e,o)=>{for(var r in o||(o={}))m.call(o,r)&&i(e,r,o[r]);if(s)for(var r of s(o))c.call(o,r)&&i(e,r,o[r]);return e};import*as n from\"react\";import{forwardRef as f}from\"react\";import{IconoirContext as d}from\"../IconoirContext.mjs\";const l=(e,o)=>{const r=n.useContext(d),p=t(t({},r),e);return n.createElement(\"svg\",t({width:\"1.5em\",height:\"1.5em\",strokeWidth:1.5,viewBox:\"0 0 24 24\",fill:\"none\",xmlns:\"http://www.w3.org/2000/svg\",color:\"currentColor\",ref:o},p),n.createElement(\"path\",{d:\"M14 11.9976C14 9.5059 11.683 7 8.85714 7C8.52241 7 7.41904 7.00001 7.14286 7.00001C4.30254 7.00001 2 9.23752 2 11.9976C2 14.376 3.70973 16.3664 6 16.8714C6.36756 16.9525 6.75006 16.9952 7.14286 16.9952\",stroke:\"currentColor\",strokeLinecap:\"round\",strokeLinejoin:\"round\"}),n.createElement(\"path\",{d:\"M10 11.9976C10 14.4893 12.317 16.9952 15.1429 16.9952C15.4776 16.9952 16.581 16.9952 16.8571 16.9952C19.6975 16.9952 22 14.7577 22 11.9976C22 9.6192 20.2903 7.62884 18 7.12383C17.6324 7.04278 17.2499 6.99999 16.8571 6.99999\",stroke:\"currentColor\",strokeLinecap:\"round\",strokeLinejoin:\"round\"}))},u=f(l);var S=u;export{S as default};\n","\"use client\";var d=Object.defineProperty;var s=Object.getOwnPropertySymbols;var u=Object.prototype.hasOwnProperty,k=Object.prototype.propertyIsEnumerable;var i=(e,o,r)=>o in e?d(e,o,{enumerable:!0,configurable:!0,writable:!0,value:r}):e[o]=r,t=(e,o)=>{for(var r in o||(o={}))u.call(o,r)&&i(e,r,o[r]);if(s)for(var r of s(o))k.call(o,r)&&i(e,r,o[r]);return e};import*as n from\"react\";import{forwardRef as L}from\"react\";import{IconoirContext as c}from\"../IconoirContext.mjs\";const l=(e,o)=>{const r=n.useContext(c),p=t(t({},r),e);return n.createElement(\"svg\",t({width:\"1.5em\",height:\"1.5em\",strokeWidth:1.5,viewBox:\"0 0 24 24\",fill:\"none\",xmlns:\"http://www.w3.org/2000/svg\",color:\"currentColor\",ref:o},p),n.createElement(\"path\",{d:\"M8 6L20 6\",stroke:\"currentColor\",strokeLinecap:\"round\",strokeLinejoin:\"round\"}),n.createElement(\"path\",{d:\"M4 6.01L4.01 5.99889\",stroke:\"currentColor\",strokeLinecap:\"round\",strokeLinejoin:\"round\"}),n.createElement(\"path\",{d:\"M4 12.01L4.01 11.9989\",stroke:\"currentColor\",strokeLinecap:\"round\",strokeLinejoin:\"round\"}),n.createElement(\"path\",{d:\"M4 18.01L4.01 17.9989\",stroke:\"currentColor\",strokeLinecap:\"round\",strokeLinejoin:\"round\"}),n.createElement(\"path\",{d:\"M8 12L20 12\",stroke:\"currentColor\",strokeLinecap:\"round\",strokeLinejoin:\"round\"}),n.createElement(\"path\",{d:\"M8 18L20 18\",stroke:\"currentColor\",strokeLinecap:\"round\",strokeLinejoin:\"round\"}))},m=L(l);var w=m;export{w as default};\n","\"use client\";var d=Object.defineProperty;var s=Object.getOwnPropertySymbols;var u=Object.prototype.hasOwnProperty,k=Object.prototype.propertyIsEnumerable;var i=(e,o,r)=>o in e?d(e,o,{enumerable:!0,configurable:!0,writable:!0,value:r}):e[o]=r,n=(e,o)=>{for(var r in o||(o={}))u.call(o,r)&&i(e,r,o[r]);if(s)for(var r of s(o))k.call(o,r)&&i(e,r,o[r]);return e};import*as t from\"react\";import{forwardRef as c}from\"react\";import{IconoirContext as C}from\"../IconoirContext.mjs\";const l=(e,o)=>{const r=t.useContext(C),p=n(n({},r),e);return t.createElement(\"svg\",n({width:\"1.5em\",height:\"1.5em\",strokeWidth:1.5,viewBox:\"0 0 24 24\",fill:\"none\",xmlns:\"http://www.w3.org/2000/svg\",color:\"currentColor\",ref:o},p),t.createElement(\"path\",{d:\"M11.5 12H6.6C6.26863 12 6 12.2686 6 12.6V19.4C6 19.7314 6.26863 20 6.6 20H17.4C17.7314 20 18 19.7314 18 19.4V18.5\",stroke:\"currentColor\",strokeLinecap:\"round\",strokeLinejoin:\"round\"}),t.createElement(\"path\",{d:\"M16 12V8C16 6.66667 15.2 4 12 4C11.2532 4 10.6371 4.14525 10.1313 4.38491\",stroke:\"currentColor\",strokeLinecap:\"round\",strokeLinejoin:\"round\"}),t.createElement(\"path\",{d:\"M16 12H17.4C17.7314 12 18 12.2686 18 12.6V13\",stroke:\"currentColor\",strokeLinecap:\"round\",strokeLinejoin:\"round\"}),t.createElement(\"path\",{d:\"M8 8V8.5V12\",stroke:\"currentColor\",strokeLinecap:\"round\",strokeLinejoin:\"round\"}),t.createElement(\"path\",{d:\"M3 3L21 21\",stroke:\"currentColor\",strokeLinecap:\"round\",strokeLinejoin:\"round\"}))},m=c(l);var h=m;export{h as default};\n","\"use client\";var p=Object.defineProperty;var s=Object.getOwnPropertySymbols;var f=Object.prototype.hasOwnProperty,c=Object.prototype.propertyIsEnumerable;var i=(t,o,r)=>o in t?p(t,o,{enumerable:!0,configurable:!0,writable:!0,value:r}):t[o]=r,e=(t,o)=>{for(var r in o||(o={}))f.call(o,r)&&i(t,r,o[r]);if(s)for(var r of s(o))c.call(o,r)&&i(t,r,o[r]);return t};import*as n from\"react\";import{forwardRef as C}from\"react\";import{IconoirContext as l}from\"../IconoirContext.mjs\";const V=(t,o)=>{const r=n.useContext(l),m=e(e({},r),t);return n.createElement(\"svg\",e({width:\"1.5em\",height:\"1.5em\",strokeWidth:1.5,viewBox:\"0 0 24 24\",fill:\"none\",xmlns:\"http://www.w3.org/2000/svg\",color:\"currentColor\",ref:o},m),n.createElement(\"path\",{d:\"M16 12H17.4C17.7314 12 18 12.2686 18 12.6V19.4C18 19.7314 17.7314 20 17.4 20H6.6C6.26863 20 6 19.7314 6 19.4V12.6C6 12.2686 6.26863 12 6.6 12H8M16 12V8C16 6.66667 15.2 4 12 4C8.8 4 8 6.66667 8 8V12M16 12H8\",stroke:\"currentColor\",strokeLinecap:\"round\",strokeLinejoin:\"round\"}))},d=C(V);var g=d;export{g as default};\n","\"use client\";var m=Object.defineProperty;var s=Object.getOwnPropertySymbols;var f=Object.prototype.hasOwnProperty,c=Object.prototype.propertyIsEnumerable;var p=(t,o,r)=>o in t?m(t,o,{enumerable:!0,configurable:!0,writable:!0,value:r}):t[o]=r,e=(t,o)=>{for(var r in o||(o={}))f.call(o,r)&&p(t,r,o[r]);if(s)for(var r of s(o))c.call(o,r)&&p(t,r,o[r]);return t};import*as n from\"react\";import{forwardRef as l}from\"react\";import{IconoirContext as C}from\"../IconoirContext.mjs\";const d=(t,o)=>{const r=n.useContext(C),i=e(e({},r),t);return n.createElement(\"svg\",e({width:\"1.5em\",height:\"1.5em\",strokeWidth:1.5,viewBox:\"0 0 24 24\",fill:\"none\",xmlns:\"http://www.w3.org/2000/svg\",color:\"currentColor\",ref:o},i),n.createElement(\"path\",{d:\"M7 9L12 12.5L17 9\",stroke:\"currentColor\",strokeLinecap:\"round\",strokeLinejoin:\"round\"}),n.createElement(\"path\",{d:\"M2 17V7C2 5.89543 2.89543 5 4 5H20C21.1046 5 22 5.89543 22 7V17C22 18.1046 21.1046 19 20 19H4C2.89543 19 2 18.1046 2 17Z\",stroke:\"currentColor\"}))},u=l(d);var a=u;export{a as default};\n","\"use client\";var d=Object.defineProperty;var s=Object.getOwnPropertySymbols;var m=Object.prototype.hasOwnProperty,u=Object.prototype.propertyIsEnumerable;var i=(e,o,r)=>o in e?d(e,o,{enumerable:!0,configurable:!0,writable:!0,value:r}):e[o]=r,n=(e,o)=>{for(var r in o||(o={}))m.call(o,r)&&i(e,r,o[r]);if(s)for(var r of s(o))u.call(o,r)&&i(e,r,o[r]);return e};import*as t from\"react\";import{forwardRef as c}from\"react\";import{IconoirContext as f}from\"../IconoirContext.mjs\";const l=(e,o)=>{const r=t.useContext(f),p=n(n({},r),e);return t.createElement(\"svg\",n({width:\"1.5em\",height:\"1.5em\",strokeWidth:1.5,viewBox:\"0 0 24 24\",fill:\"none\",xmlns:\"http://www.w3.org/2000/svg\",color:\"currentColor\",ref:o},p),t.createElement(\"path\",{d:\"M3 5H21\",stroke:\"currentColor\",strokeLinecap:\"round\",strokeLinejoin:\"round\"}),t.createElement(\"path\",{d:\"M3 12H21\",stroke:\"currentColor\",strokeLinecap:\"round\",strokeLinejoin:\"round\"}),t.createElement(\"path\",{d:\"M3 19H21\",stroke:\"currentColor\",strokeLinecap:\"round\",strokeLinejoin:\"round\"}))},k=c(l);var S=k;export{S as default};\n","\"use client\";var p=Object.defineProperty;var s=Object.getOwnPropertySymbols;var f=Object.prototype.hasOwnProperty,c=Object.prototype.propertyIsEnumerable;var i=(t,o,r)=>o in t?p(t,o,{enumerable:!0,configurable:!0,writable:!0,value:r}):t[o]=r,e=(t,o)=>{for(var r in o||(o={}))f.call(o,r)&&i(t,r,o[r]);if(s)for(var r of s(o))c.call(o,r)&&i(t,r,o[r]);return t};import*as n from\"react\";import{forwardRef as l}from\"react\";import{IconoirContext as d}from\"../IconoirContext.mjs\";const u=(t,o)=>{const r=n.useContext(d),m=e(e({},r),t);return n.createElement(\"svg\",e({width:\"1.5em\",height:\"1.5em\",strokeWidth:1.5,viewBox:\"0 0 24 24\",fill:\"none\",xmlns:\"http://www.w3.org/2000/svg\",color:\"currentColor\",ref:o},m),n.createElement(\"path\",{d:\"M6 12H18\",stroke:\"currentColor\",strokeLinecap:\"round\",strokeLinejoin:\"round\"}))},w=l(u);var x=w;export{x as default};\n","\"use client\";var l=Object.defineProperty;var s=Object.getOwnPropertySymbols;var p=Object.prototype.hasOwnProperty,u=Object.prototype.propertyIsEnumerable;var i=(e,o,r)=>o in e?l(e,o,{enumerable:!0,configurable:!0,writable:!0,value:r}):e[o]=r,n=(e,o)=>{for(var r in o||(o={}))p.call(o,r)&&i(e,r,o[r]);if(s)for(var r of s(o))u.call(o,r)&&i(e,r,o[r]);return e};import*as t from\"react\";import{forwardRef as c}from\"react\";import{IconoirContext as f}from\"../IconoirContext.mjs\";const d=(e,o)=>{const r=t.useContext(f),C=n(n({},r),e);return t.createElement(\"svg\",n({width:\"1.5em\",height:\"1.5em\",viewBox:\"0 0 24 24\",strokeWidth:1.5,fill:\"none\",xmlns:\"http://www.w3.org/2000/svg\",color:\"currentColor\",ref:o},C),t.createElement(\"path\",{d:\"M20 12.5C20.2761 12.5 20.5 12.2761 20.5 12C20.5 11.7239 20.2761 11.5 20 11.5C19.7239 11.5 19.5 11.7239 19.5 12C19.5 12.2761 19.7239 12.5 20 12.5Z\",fill:\"currentColor\",stroke:\"currentColor\",strokeLinecap:\"round\",strokeLinejoin:\"round\"}),t.createElement(\"path\",{d:\"M12 12.5C12.2761 12.5 12.5 12.2761 12.5 12C12.5 11.7239 12.2761 11.5 12 11.5C11.7239 11.5 11.5 11.7239 11.5 12C11.5 12.2761 11.7239 12.5 12 12.5Z\",fill:\"currentColor\",stroke:\"currentColor\",strokeLinecap:\"round\",strokeLinejoin:\"round\"}),t.createElement(\"path\",{d:\"M4 12.5C4.27614 12.5 4.5 12.2761 4.5 12C4.5 11.7239 4.27614 11.5 4 11.5C3.72386 11.5 3.5 11.7239 3.5 12C3.5 12.2761 3.72386 12.5 4 12.5Z\",fill:\"currentColor\",stroke:\"currentColor\",strokeLinecap:\"round\",strokeLinejoin:\"round\"}))},m=c(d);var S=m;export{S as default};\n","\"use client\";var l=Object.defineProperty;var s=Object.getOwnPropertySymbols;var p=Object.prototype.hasOwnProperty,u=Object.prototype.propertyIsEnumerable;var i=(e,o,r)=>o in e?l(e,o,{enumerable:!0,configurable:!0,writable:!0,value:r}):e[o]=r,n=(e,o)=>{for(var r in o||(o={}))p.call(o,r)&&i(e,r,o[r]);if(s)for(var r of s(o))u.call(o,r)&&i(e,r,o[r]);return e};import*as t from\"react\";import{forwardRef as c}from\"react\";import{IconoirContext as f}from\"../IconoirContext.mjs\";const d=(e,o)=>{const r=t.useContext(f),C=n(n({},r),e);return t.createElement(\"svg\",n({width:\"1.5em\",height:\"1.5em\",viewBox:\"0 0 24 24\",strokeWidth:1.5,fill:\"none\",xmlns:\"http://www.w3.org/2000/svg\",color:\"currentColor\",ref:o},C),t.createElement(\"path\",{d:\"M12 12.5C12.2761 12.5 12.5 12.2761 12.5 12C12.5 11.7239 12.2761 11.5 12 11.5C11.7239 11.5 11.5 11.7239 11.5 12C11.5 12.2761 11.7239 12.5 12 12.5Z\",fill:\"currentColor\",stroke:\"currentColor\",strokeLinecap:\"round\",strokeLinejoin:\"round\"}),t.createElement(\"path\",{d:\"M12 20.5C12.2761 20.5 12.5 20.2761 12.5 20C12.5 19.7239 12.2761 19.5 12 19.5C11.7239 19.5 11.5 19.7239 11.5 20C11.5 20.2761 11.7239 20.5 12 20.5Z\",fill:\"currentColor\",stroke:\"currentColor\",strokeLinecap:\"round\",strokeLinejoin:\"round\"}),t.createElement(\"path\",{d:\"M12 4.5C12.2761 4.5 12.5 4.27614 12.5 4C12.5 3.72386 12.2761 3.5 12 3.5C11.7239 3.5 11.5 3.72386 11.5 4C11.5 4.27614 11.7239 4.5 12 4.5Z\",fill:\"currentColor\",stroke:\"currentColor\",strokeLinecap:\"round\",strokeLinejoin:\"round\"}))},m=c(d);var S=m;export{S as default};\n","\"use client\";var p=Object.defineProperty;var s=Object.getOwnPropertySymbols;var f=Object.prototype.hasOwnProperty,c=Object.prototype.propertyIsEnumerable;var i=(t,o,r)=>o in t?p(t,o,{enumerable:!0,configurable:!0,writable:!0,value:r}):t[o]=r,e=(t,o)=>{for(var r in o||(o={}))f.call(o,r)&&i(t,r,o[r]);if(s)for(var r of s(o))c.call(o,r)&&i(t,r,o[r]);return t};import*as n from\"react\";import{forwardRef as l}from\"react\";import{IconoirContext as d}from\"../IconoirContext.mjs\";const u=(t,o)=>{const r=n.useContext(d),m=e(e({},r),t);return n.createElement(\"svg\",e({width:\"1.5em\",height:\"1.5em\",strokeWidth:1.5,viewBox:\"0 0 24 24\",fill:\"none\",xmlns:\"http://www.w3.org/2000/svg\",color:\"currentColor\",ref:o},m),n.createElement(\"path\",{d:\"M6 9L12 15L18 9\",stroke:\"currentColor\",strokeLinecap:\"round\",strokeLinejoin:\"round\"}))},w=l(u);var x=w;export{x as default};\n","\"use client\";var p=Object.defineProperty;var s=Object.getOwnPropertySymbols;var f=Object.prototype.hasOwnProperty,c=Object.prototype.propertyIsEnumerable;var i=(t,o,r)=>o in t?p(t,o,{enumerable:!0,configurable:!0,writable:!0,value:r}):t[o]=r,e=(t,o)=>{for(var r in o||(o={}))f.call(o,r)&&i(t,r,o[r]);if(s)for(var r of s(o))c.call(o,r)&&i(t,r,o[r]);return t};import*as n from\"react\";import{forwardRef as l}from\"react\";import{IconoirContext as d}from\"../IconoirContext.mjs\";const u=(t,o)=>{const r=n.useContext(d),m=e(e({},r),t);return n.createElement(\"svg\",e({width:\"1.5em\",height:\"1.5em\",strokeWidth:1.5,viewBox:\"0 0 24 24\",fill:\"none\",xmlns:\"http://www.w3.org/2000/svg\",color:\"currentColor\",ref:o},m),n.createElement(\"path\",{d:\"M15 6L9 12L15 18\",stroke:\"currentColor\",strokeLinecap:\"round\",strokeLinejoin:\"round\"}))},w=l(u);var x=w;export{x as default};\n","\"use client\";var p=Object.defineProperty;var s=Object.getOwnPropertySymbols;var f=Object.prototype.hasOwnProperty,c=Object.prototype.propertyIsEnumerable;var i=(t,o,r)=>o in t?p(t,o,{enumerable:!0,configurable:!0,writable:!0,value:r}):t[o]=r,e=(t,o)=>{for(var r in o||(o={}))f.call(o,r)&&i(t,r,o[r]);if(s)for(var r of s(o))c.call(o,r)&&i(t,r,o[r]);return t};import*as n from\"react\";import{forwardRef as l}from\"react\";import{IconoirContext as d}from\"../IconoirContext.mjs\";const u=(t,o)=>{const r=n.useContext(d),m=e(e({},r),t);return n.createElement(\"svg\",e({width:\"1.5em\",height:\"1.5em\",strokeWidth:1.5,viewBox:\"0 0 24 24\",fill:\"none\",xmlns:\"http://www.w3.org/2000/svg\",color:\"currentColor\",ref:o},m),n.createElement(\"path\",{d:\"M9 6L15 12L9 18\",stroke:\"currentColor\",strokeLinecap:\"round\",strokeLinejoin:\"round\"}))},w=l(u);var x=w;export{x as default};\n","\"use client\";var p=Object.defineProperty;var s=Object.getOwnPropertySymbols;var f=Object.prototype.hasOwnProperty,c=Object.prototype.propertyIsEnumerable;var i=(t,o,r)=>o in t?p(t,o,{enumerable:!0,configurable:!0,writable:!0,value:r}):t[o]=r,e=(t,o)=>{for(var r in o||(o={}))f.call(o,r)&&i(t,r,o[r]);if(s)for(var r of s(o))c.call(o,r)&&i(t,r,o[r]);return t};import*as n from\"react\";import{forwardRef as l}from\"react\";import{IconoirContext as d}from\"../IconoirContext.mjs\";const u=(t,o)=>{const r=n.useContext(d),m=e(e({},r),t);return n.createElement(\"svg\",e({width:\"1.5em\",height:\"1.5em\",strokeWidth:1.5,viewBox:\"0 0 24 24\",fill:\"none\",xmlns:\"http://www.w3.org/2000/svg\",color:\"currentColor\",ref:o},m),n.createElement(\"path\",{d:\"M6 15L12 9L18 15\",stroke:\"currentColor\",strokeLinecap:\"round\",strokeLinejoin:\"round\"}))},w=l(u);var x=w;export{x as default};\n","\"use client\";var m=Object.defineProperty;var s=Object.getOwnPropertySymbols;var c=Object.prototype.hasOwnProperty,f=Object.prototype.propertyIsEnumerable;var i=(e,o,r)=>o in e?m(e,o,{enumerable:!0,configurable:!0,writable:!0,value:r}):e[o]=r,t=(e,o)=>{for(var r in o||(o={}))c.call(o,r)&&i(e,r,o[r]);if(s)for(var r of s(o))f.call(o,r)&&i(e,r,o[r]);return e};import*as n from\"react\";import{forwardRef as d}from\"react\";import{IconoirContext as l}from\"../IconoirContext.mjs\";const u=(e,o)=>{const r=n.useContext(l),p=t(t({},r),e);return n.createElement(\"svg\",t({width:\"1.5em\",height:\"1.5em\",strokeWidth:1.5,viewBox:\"0 0 24 24\",fill:\"none\",xmlns:\"http://www.w3.org/2000/svg\",color:\"currentColor\",ref:o},p),n.createElement(\"path\",{d:\"M8 21H20.4C20.7314 21 21 20.7314 21 20.4V3.6C21 3.26863 20.7314 3 20.4 3H3.6C3.26863 3 3 3.26863 3 3.6V16\",stroke:\"currentColor\",strokeLinecap:\"round\",strokeLinejoin:\"round\"}),n.createElement(\"path\",{d:\"M3.5 20.5L12 12M12 12V16M12 12H8\",stroke:\"currentColor\",strokeLinecap:\"round\",strokeLinejoin:\"round\"}))},C=d(u);var k=C;export{k as default};\n","\"use client\";var d=Object.defineProperty;var s=Object.getOwnPropertySymbols;var u=Object.prototype.hasOwnProperty,k=Object.prototype.propertyIsEnumerable;var i=(e,o,r)=>o in e?d(e,o,{enumerable:!0,configurable:!0,writable:!0,value:r}):e[o]=r,n=(e,o)=>{for(var r in o||(o={}))u.call(o,r)&&i(e,r,o[r]);if(s)for(var r of s(o))k.call(o,r)&&i(e,r,o[r]);return e};import*as t from\"react\";import{forwardRef as c}from\"react\";import{IconoirContext as C}from\"../IconoirContext.mjs\";const l=(e,o)=>{const r=t.useContext(C),p=n(n({},r),e);return t.createElement(\"svg\",n({width:\"1.5em\",height:\"1.5em\",viewBox:\"0 0 24 24\",strokeWidth:1.5,fill:\"none\",xmlns:\"http://www.w3.org/2000/svg\",color:\"currentColor\",ref:o},p),t.createElement(\"path\",{d:\"M4 21.4V2.6C4 2.26863 4.26863 2 4.6 2H16.2515C16.4106 2 16.5632 2.06321 16.6757 2.17574L19.8243 5.32426C19.9368 5.43679 20 5.5894 20 5.74853V21.4C20 21.7314 19.7314 22 19.4 22H4.6C4.26863 22 4 21.7314 4 21.4Z\",stroke:\"currentColor\",strokeLinecap:\"round\",strokeLinejoin:\"round\"}),t.createElement(\"path\",{d:\"M8 10L16 10\",stroke:\"currentColor\",strokeLinecap:\"round\",strokeLinejoin:\"round\"}),t.createElement(\"path\",{d:\"M8 18L16 18\",stroke:\"currentColor\",strokeLinecap:\"round\",strokeLinejoin:\"round\"}),t.createElement(\"path\",{d:\"M8 14L12 14\",stroke:\"currentColor\",strokeLinecap:\"round\",strokeLinejoin:\"round\"}),t.createElement(\"path\",{d:\"M16 2V5.4C16 5.73137 16.2686 6 16.6 6H20\",stroke:\"currentColor\",strokeLinecap:\"round\",strokeLinejoin:\"round\"}))},m=c(l);var V=m;export{V as default};\n","\"use client\";var p=Object.defineProperty;var s=Object.getOwnPropertySymbols;var f=Object.prototype.hasOwnProperty,c=Object.prototype.propertyIsEnumerable;var i=(t,o,r)=>o in t?p(t,o,{enumerable:!0,configurable:!0,writable:!0,value:r}):t[o]=r,e=(t,o)=>{for(var r in o||(o={}))f.call(o,r)&&i(t,r,o[r]);if(s)for(var r of s(o))c.call(o,r)&&i(t,r,o[r]);return t};import*as n from\"react\";import{forwardRef as l}from\"react\";import{IconoirContext as d}from\"../IconoirContext.mjs\";const u=(t,o)=>{const r=n.useContext(d),m=e(e({},r),t);return n.createElement(\"svg\",e({width:\"1.5em\",height:\"1.5em\",strokeWidth:1.5,viewBox:\"0 0 24 24\",fill:\"none\",xmlns:\"http://www.w3.org/2000/svg\",color:\"currentColor\",ref:o},m),n.createElement(\"path\",{d:\"M6 12H12M18 12H12M12 12V6M12 12V18\",stroke:\"currentColor\",strokeLinecap:\"round\",strokeLinejoin:\"round\"}))},w=l(u);var h=w;export{h as default};\n","\"use client\";var d=Object.defineProperty;var s=Object.getOwnPropertySymbols;var u=Object.prototype.hasOwnProperty,c=Object.prototype.propertyIsEnumerable;var i=(e,o,r)=>o in e?d(e,o,{enumerable:!0,configurable:!0,writable:!0,value:r}):e[o]=r,n=(e,o)=>{for(var r in o||(o={}))u.call(o,r)&&i(e,r,o[r]);if(s)for(var r of s(o))c.call(o,r)&&i(e,r,o[r]);return e};import*as t from\"react\";import{forwardRef as m}from\"react\";import{IconoirContext as C}from\"../IconoirContext.mjs\";const k=(e,o)=>{const r=t.useContext(C),p=n(n({},r),e);return t.createElement(\"svg\",n({width:\"1.5em\",height:\"1.5em\",strokeWidth:1.5,viewBox:\"0 0 24 24\",fill:\"none\",xmlns:\"http://www.w3.org/2000/svg\",color:\"currentColor\",ref:o},p),t.createElement(\"path\",{d:\"M21.1679 8C19.6247 4.46819 16.1006 2 11.9999 2C6.81459 2 2.55104 5.94668 2.04932 11\",stroke:\"currentColor\",strokeLinecap:\"round\",strokeLinejoin:\"round\"}),t.createElement(\"path\",{d:\"M17 8H21.4C21.7314 8 22 7.73137 22 7.4V3\",stroke:\"currentColor\",strokeLinecap:\"round\",strokeLinejoin:\"round\"}),t.createElement(\"path\",{d:\"M2.88146 16C4.42458 19.5318 7.94874 22 12.0494 22C17.2347 22 21.4983 18.0533 22 13\",stroke:\"currentColor\",strokeLinecap:\"round\",strokeLinejoin:\"round\"}),t.createElement(\"path\",{d:\"M7.04932 16H2.64932C2.31795 16 2.04932 16.2686 2.04932 16.6V21\",stroke:\"currentColor\",strokeLinecap:\"round\",strokeLinejoin:\"round\"}))},l=m(k);var L=l;export{L as default};\n","\"use client\";var m=Object.defineProperty;var s=Object.getOwnPropertySymbols;var c=Object.prototype.hasOwnProperty,f=Object.prototype.propertyIsEnumerable;var i=(e,o,r)=>o in e?m(e,o,{enumerable:!0,configurable:!0,writable:!0,value:r}):e[o]=r,t=(e,o)=>{for(var r in o||(o={}))c.call(o,r)&&i(e,r,o[r]);if(s)for(var r of s(o))f.call(o,r)&&i(e,r,o[r]);return e};import*as n from\"react\";import{forwardRef as d}from\"react\";import{IconoirContext as l}from\"../IconoirContext.mjs\";const u=(e,o)=>{const r=n.useContext(l),p=t(t({},r),e);return n.createElement(\"svg\",t({width:\"1.5em\",height:\"1.5em\",viewBox:\"0 0 24 24\",strokeWidth:1.5,fill:\"none\",xmlns:\"http://www.w3.org/2000/svg\",color:\"currentColor\",ref:o},p),n.createElement(\"path\",{d:\"M17 17L21 21\",stroke:\"currentColor\",strokeLinecap:\"round\",strokeLinejoin:\"round\"}),n.createElement(\"path\",{d:\"M3 11C3 15.4183 6.58172 19 11 19C13.213 19 15.2161 18.1015 16.6644 16.6493C18.1077 15.2022 19 13.2053 19 11C19 6.58172 15.4183 3 11 3C6.58172 3 3 6.58172 3 11Z\",stroke:\"currentColor\",strokeLinecap:\"round\",strokeLinejoin:\"round\"}))},C=d(u);var S=C;export{S as default};\n","\"use client\";var p=Object.defineProperty;var n=Object.getOwnPropertySymbols;var m=Object.prototype.hasOwnProperty,c=Object.prototype.propertyIsEnumerable;var s=(e,o,r)=>o in e?p(e,o,{enumerable:!0,configurable:!0,writable:!0,value:r}):e[o]=r,t=(e,o)=>{for(var r in o||(o={}))m.call(o,r)&&s(e,r,o[r]);if(n)for(var r of n(o))c.call(o,r)&&s(e,r,o[r]);return e};import*as L from\"react\";import{forwardRef as f}from\"react\";import{IconoirContext as d}from\"../IconoirContext.mjs\";const l=(e,o)=>{const r=L.useContext(d),i=t(t({},r),e);return L.createElement(\"svg\",t({width:\"1.5em\",height:\"1.5em\",strokeWidth:1.5,viewBox:\"0 0 24 24\",fill:\"none\",xmlns:\"http://www.w3.org/2000/svg\",color:\"currentColor\",ref:o},i),L.createElement(\"path\",{d:\"M12 15C13.6569 15 15 13.6569 15 12C15 10.3431 13.6569 9 12 9C10.3431 9 9 10.3431 9 12C9 13.6569 10.3431 15 12 15Z\",stroke:\"currentColor\",strokeLinecap:\"round\",strokeLinejoin:\"round\"}),L.createElement(\"path\",{d:\"M19.6224 10.3954L18.5247 7.7448L20 6L18 4L16.2647 5.48295L13.5578 4.36974L12.9353 2H10.981L10.3491 4.40113L7.70441 5.51596L6 4L4 6L5.45337 7.78885L4.3725 10.4463L2 11V13L4.40111 13.6555L5.51575 16.2997L4 18L6 20L7.79116 18.5403L10.397 19.6123L11 22H13L13.6045 19.6132L16.2551 18.5155C16.6969 18.8313 18 20 18 20L20 18L18.5159 16.2494L19.6139 13.598L21.9999 12.9772L22 11L19.6224 10.3954Z\",stroke:\"currentColor\",strokeLinecap:\"round\",strokeLinejoin:\"round\"}))},u=f(l);var k=u;export{k as default};\n","\"use client\";var d=Object.defineProperty;var s=Object.getOwnPropertySymbols;var u=Object.prototype.hasOwnProperty,k=Object.prototype.propertyIsEnumerable;var i=(e,o,r)=>o in e?d(e,o,{enumerable:!0,configurable:!0,writable:!0,value:r}):e[o]=r,n=(e,o)=>{for(var r in o||(o={}))u.call(o,r)&&i(e,r,o[r]);if(s)for(var r of s(o))k.call(o,r)&&i(e,r,o[r]);return e};import*as t from\"react\";import{forwardRef as c}from\"react\";import{IconoirContext as l}from\"../IconoirContext.mjs\";const m=(e,o)=>{const r=t.useContext(l),p=n(n({},r),e);return t.createElement(\"svg\",n({width:\"1.5em\",height:\"1.5em\",strokeWidth:1.5,viewBox:\"0 0 24 24\",fill:\"none\",xmlns:\"http://www.w3.org/2000/svg\",color:\"currentColor\",ref:o},p),t.createElement(\"path\",{d:\"M14 10L2 10\",stroke:\"currentColor\",strokeLinecap:\"round\",strokeLinejoin:\"round\"}),t.createElement(\"path\",{d:\"M10 14H2\",stroke:\"currentColor\",strokeLinecap:\"round\",strokeLinejoin:\"round\"}),t.createElement(\"path\",{d:\"M6 18H2\",stroke:\"currentColor\",strokeLinecap:\"round\",strokeLinejoin:\"round\"}),t.createElement(\"path\",{d:\"M18 6L2 6\",stroke:\"currentColor\",strokeLinecap:\"round\",strokeLinejoin:\"round\"}),t.createElement(\"path\",{d:\"M19 10V20M19 20L22 17M19 20L16 17\",stroke:\"currentColor\",strokeLinecap:\"round\",strokeLinejoin:\"round\"}))},L=c(m);var w=L;export{w as default};\n","\"use client\";var p=Object.defineProperty;var s=Object.getOwnPropertySymbols;var C=Object.prototype.hasOwnProperty,f=Object.prototype.propertyIsEnumerable;var i=(t,o,r)=>o in t?p(t,o,{enumerable:!0,configurable:!0,writable:!0,value:r}):t[o]=r,e=(t,o)=>{for(var r in o||(o={}))C.call(o,r)&&i(t,r,o[r]);if(s)for(var r of s(o))f.call(o,r)&&i(t,r,o[r]);return t};import*as n from\"react\";import{forwardRef as l}from\"react\";import{IconoirContext as c}from\"../IconoirContext.mjs\";const d=(t,o)=>{const r=n.useContext(c),m=e(e({},r),t);return n.createElement(\"svg\",e({width:\"1.5em\",height:\"1.5em\",viewBox:\"0 0 24 24\",strokeWidth:1.5,fill:\"none\",xmlns:\"http://www.w3.org/2000/svg\",color:\"currentColor\",ref:o},m),n.createElement(\"path\",{d:\"M8 15C12.8747 15 15 12.949 15 8C15 12.949 17.1104 15 22 15C17.1104 15 15 17.1104 15 22C15 17.1104 12.8747 15 8 15Z\",stroke:\"currentColor\",strokeLinejoin:\"round\"}),n.createElement(\"path\",{d:\"M2 6.5C5.13376 6.5 6.5 5.18153 6.5 2C6.5 5.18153 7.85669 6.5 11 6.5C7.85669 6.5 6.5 7.85669 6.5 11C6.5 7.85669 5.13376 6.5 2 6.5Z\",stroke:\"currentColor\",strokeLinejoin:\"round\"}))},u=l(d);var x=u;export{x as default};\n","\"use client\";var p=Object.defineProperty;var s=Object.getOwnPropertySymbols;var f=Object.prototype.hasOwnProperty,L=Object.prototype.propertyIsEnumerable;var i=(t,o,r)=>o in t?p(t,o,{enumerable:!0,configurable:!0,writable:!0,value:r}):t[o]=r,e=(t,o)=>{for(var r in o||(o={}))f.call(o,r)&&i(t,r,o[r]);if(s)for(var r of s(o))L.call(o,r)&&i(t,r,o[r]);return t};import*as n from\"react\";import{forwardRef as c}from\"react\";import{IconoirContext as l}from\"../IconoirContext.mjs\";const C=(t,o)=>{const r=n.useContext(l),m=e(e({},r),t);return n.createElement(\"svg\",e({width:\"1.5em\",height:\"1.5em\",strokeWidth:1.5,viewBox:\"0 0 24 24\",fill:\"none\",xmlns:\"http://www.w3.org/2000/svg\",color:\"currentColor\",ref:o},m),n.createElement(\"path\",{d:\"M8.58737 8.23597L11.1849 3.00376C11.5183 2.33208 12.4817 2.33208 12.8151 3.00376L15.4126 8.23597L21.2215 9.08017C21.9668 9.18848 22.2638 10.0994 21.7243 10.6219L17.5217 14.6918L18.5135 20.4414C18.6409 21.1798 17.8614 21.7428 17.1945 21.3941L12 18.678L6.80547 21.3941C6.1386 21.7428 5.35909 21.1798 5.48645 20.4414L6.47825 14.6918L2.27575 10.6219C1.73617 10.0994 2.03322 9.18848 2.77852 9.08017L8.58737 8.23597Z\",stroke:\"currentColor\",strokeLinecap:\"round\",strokeLinejoin:\"round\"}))},d=c(C);var g=d;export{g as default};\n","\"use client\";var u=Object.defineProperty;var s=Object.getOwnPropertySymbols;var p=Object.prototype.hasOwnProperty,k=Object.prototype.propertyIsEnumerable;var i=(n,o,r)=>o in n?u(n,o,{enumerable:!0,configurable:!0,writable:!0,value:r}):n[o]=r,t=(n,o)=>{for(var r in o||(o={}))p.call(o,r)&&i(n,r,o[r]);if(s)for(var r of s(o))k.call(o,r)&&i(n,r,o[r]);return n};import*as e from\"react\";import{forwardRef as L}from\"react\";import{IconoirContext as c}from\"../IconoirContext.mjs\";const l=(n,o)=>{const r=e.useContext(c),d=t(t({},r),n);return e.createElement(\"svg\",t({width:\"1.5em\",height:\"1.5em\",strokeWidth:1.5,viewBox:\"0 0 24 24\",fill:\"none\",xmlns:\"http://www.w3.org/2000/svg\",color:\"currentColor\",ref:o},d),e.createElement(\"path\",{d:\"M12 18C15.3137 18 18 15.3137 18 12C18 8.68629 15.3137 6 12 6C8.68629 6 6 8.68629 6 12C6 15.3137 8.68629 18 12 18Z\",stroke:\"currentColor\",strokeLinecap:\"round\",strokeLinejoin:\"round\"}),e.createElement(\"path\",{d:\"M22 12L23 12\",stroke:\"currentColor\",strokeLinecap:\"round\",strokeLinejoin:\"round\"}),e.createElement(\"path\",{d:\"M12 2V1\",stroke:\"currentColor\",strokeLinecap:\"round\",strokeLinejoin:\"round\"}),e.createElement(\"path\",{d:\"M12 23V22\",stroke:\"currentColor\",strokeLinecap:\"round\",strokeLinejoin:\"round\"}),e.createElement(\"path\",{d:\"M20 20L19 19\",stroke:\"currentColor\",strokeLinecap:\"round\",strokeLinejoin:\"round\"}),e.createElement(\"path\",{d:\"M20 4L19 5\",stroke:\"currentColor\",strokeLinecap:\"round\",strokeLinejoin:\"round\"}),e.createElement(\"path\",{d:\"M4 20L5 19\",stroke:\"currentColor\",strokeLinecap:\"round\",strokeLinejoin:\"round\"}),e.createElement(\"path\",{d:\"M4 4L5 5\",stroke:\"currentColor\",strokeLinecap:\"round\",strokeLinejoin:\"round\"}),e.createElement(\"path\",{d:\"M1 12L2 12\",stroke:\"currentColor\",strokeLinecap:\"round\",strokeLinejoin:\"round\"}))},C=L(l);var j=C;export{j as default};\n","\"use client\";var m=Object.defineProperty;var s=Object.getOwnPropertySymbols;var c=Object.prototype.hasOwnProperty,f=Object.prototype.propertyIsEnumerable;var i=(e,o,r)=>o in e?m(e,o,{enumerable:!0,configurable:!0,writable:!0,value:r}):e[o]=r,t=(e,o)=>{for(var r in o||(o={}))c.call(o,r)&&i(e,r,o[r]);if(s)for(var r of s(o))f.call(o,r)&&i(e,r,o[r]);return e};import*as n from\"react\";import{forwardRef as d}from\"react\";import{IconoirContext as l}from\"../IconoirContext.mjs\";const u=(e,o)=>{const r=n.useContext(l),p=t(t({},r),e);return n.createElement(\"svg\",t({width:\"1.5em\",height:\"1.5em\",strokeWidth:1.5,viewBox:\"0 0 24 24\",fill:\"none\",xmlns:\"http://www.w3.org/2000/svg\",color:\"currentColor\",ref:o},p),n.createElement(\"path\",{d:\"M13 17H20\",stroke:\"currentColor\",strokeLinecap:\"round\",strokeLinejoin:\"round\"}),n.createElement(\"path\",{d:\"M5 7L10 12L5 17\",stroke:\"currentColor\",strokeLinecap:\"round\",strokeLinejoin:\"round\"}))},w=d(u);var g=w;export{g as default};\n","\"use client\";var m=Object.defineProperty;var s=Object.getOwnPropertySymbols;var c=Object.prototype.hasOwnProperty,f=Object.prototype.propertyIsEnumerable;var i=(e,o,r)=>o in e?m(e,o,{enumerable:!0,configurable:!0,writable:!0,value:r}):e[o]=r,t=(e,o)=>{for(var r in o||(o={}))c.call(o,r)&&i(e,r,o[r]);if(s)for(var r of s(o))f.call(o,r)&&i(e,r,o[r]);return e};import*as n from\"react\";import{forwardRef as d}from\"react\";import{IconoirContext as l}from\"../IconoirContext.mjs\";const u=(e,o)=>{const r=n.useContext(l),p=t(t({},r),e);return n.createElement(\"svg\",t({width:\"1.5em\",height:\"1.5em\",viewBox:\"0 0 24 24\",strokeWidth:1.5,fill:\"none\",xmlns:\"http://www.w3.org/2000/svg\",color:\"currentColor\",ref:o},p),n.createElement(\"path\",{d:\"M20 9L18.005 20.3463C17.8369 21.3026 17.0062 22 16.0353 22H7.96474C6.99379 22 6.1631 21.3026 5.99496 20.3463L4 9\",stroke:\"currentColor\",strokeLinecap:\"round\",strokeLinejoin:\"round\"}),n.createElement(\"path\",{d:\"M21 6L15.375 6M3 6L8.625 6M8.625 6V4C8.625 2.89543 9.52043 2 10.625 2H13.375C14.4796 2 15.375 2.89543 15.375 4V6M8.625 6L15.375 6\",stroke:\"currentColor\",strokeLinecap:\"round\",strokeLinejoin:\"round\"}))},C=d(u);var h=C;export{h as default};\n","\"use client\";var m=Object.defineProperty;var s=Object.getOwnPropertySymbols;var c=Object.prototype.hasOwnProperty,f=Object.prototype.propertyIsEnumerable;var i=(e,o,r)=>o in e?m(e,o,{enumerable:!0,configurable:!0,writable:!0,value:r}):e[o]=r,t=(e,o)=>{for(var r in o||(o={}))c.call(o,r)&&i(e,r,o[r]);if(s)for(var r of s(o))f.call(o,r)&&i(e,r,o[r]);return e};import*as n from\"react\";import{forwardRef as d}from\"react\";import{IconoirContext as l}from\"../IconoirContext.mjs\";const u=(e,o)=>{const r=n.useContext(l),p=t(t({},r),e);return n.createElement(\"svg\",t({width:\"1.5em\",height:\"1.5em\",strokeWidth:1.5,viewBox:\"0 0 24 24\",fill:\"none\",xmlns:\"http://www.w3.org/2000/svg\",color:\"currentColor\",ref:o},p),n.createElement(\"path\",{d:\"M6 20L18 20\",stroke:\"currentColor\",strokeLinecap:\"round\",strokeLinejoin:\"round\"}),n.createElement(\"path\",{d:\"M12 16V4M12 4L15.5 7.5M12 4L8.5 7.5\",stroke:\"currentColor\",strokeLinecap:\"round\",strokeLinejoin:\"round\"}))},w=d(u);var S=w;export{S as default};\n","\"use client\";var m=Object.defineProperty;var s=Object.getOwnPropertySymbols;var c=Object.prototype.hasOwnProperty,f=Object.prototype.propertyIsEnumerable;var i=(e,o,r)=>o in e?m(e,o,{enumerable:!0,configurable:!0,writable:!0,value:r}):e[o]=r,t=(e,o)=>{for(var r in o||(o={}))c.call(o,r)&&i(e,r,o[r]);if(s)for(var r of s(o))f.call(o,r)&&i(e,r,o[r]);return e};import*as n from\"react\";import{forwardRef as C}from\"react\";import{IconoirContext as d}from\"../IconoirContext.mjs\";const l=(e,o)=>{const r=n.useContext(d),p=t(t({},r),e);return n.createElement(\"svg\",t({width:\"1.5em\",height:\"1.5em\",strokeWidth:1.5,viewBox:\"0 0 24 24\",fill:\"none\",xmlns:\"http://www.w3.org/2000/svg\",color:\"currentColor\",ref:o},p),n.createElement(\"path\",{d:\"M5 20V19C5 15.134 8.13401 12 12 12V12C15.866 12 19 15.134 19 19V20\",stroke:\"currentColor\",strokeLinecap:\"round\",strokeLinejoin:\"round\"}),n.createElement(\"path\",{d:\"M12 12C14.2091 12 16 10.2091 16 8C16 5.79086 14.2091 4 12 4C9.79086 4 8 5.79086 8 8C8 10.2091 9.79086 12 12 12Z\",stroke:\"currentColor\",strokeLinecap:\"round\",strokeLinejoin:\"round\"}))},u=C(l);var k=u;export{k as default};\n","\"use client\";var m=Object.defineProperty;var n=Object.getOwnPropertySymbols;var V=Object.prototype.hasOwnProperty,l=Object.prototype.propertyIsEnumerable;var s=(t,o,r)=>o in t?m(t,o,{enumerable:!0,configurable:!0,writable:!0,value:r}):t[o]=r,C=(t,o)=>{for(var r in o||(o={}))V.call(o,r)&&s(t,r,o[r]);if(n)for(var r of n(o))l.call(o,r)&&s(t,r,o[r]);return t};import*as e from\"react\";import{forwardRef as f}from\"react\";import{IconoirContext as i}from\"../IconoirContext.mjs\";const c=(t,o)=>{const r=e.useContext(i),p=C(C({},r),t);return e.createElement(\"svg\",C({width:\"1.5em\",height:\"1.5em\",strokeWidth:1.5,viewBox:\"0 0 24 24\",fill:\"none\",xmlns:\"http://www.w3.org/2000/svg\",color:\"currentColor\",ref:o},p),e.createElement(\"path\",{d:\"M14 20.4V14.6C14 14.2686 14.2686 14 14.6 14H20.4C20.7314 14 21 14.2686 21 14.6V20.4C21 20.7314 20.7314 21 20.4 21H14.6C14.2686 21 14 20.7314 14 20.4Z\",stroke:\"currentColor\"}),e.createElement(\"path\",{d:\"M3 20.4V14.6C3 14.2686 3.26863 14 3.6 14H9.4C9.73137 14 10 14.2686 10 14.6V20.4C10 20.7314 9.73137 21 9.4 21H3.6C3.26863 21 3 20.7314 3 20.4Z\",stroke:\"currentColor\"}),e.createElement(\"path\",{d:\"M14 9.4V3.6C14 3.26863 14.2686 3 14.6 3H20.4C20.7314 3 21 3.26863 21 3.6V9.4C21 9.73137 20.7314 10 20.4 10H14.6C14.2686 10 14 9.73137 14 9.4Z\",stroke:\"currentColor\"}),e.createElement(\"path\",{d:\"M3 9.4V3.6C3 3.26863 3.26863 3 3.6 3H9.4C9.73137 3 10 3.26863 10 3.6V9.4C10 9.73137 9.73137 10 9.4 10H3.6C3.26863 10 3 9.73137 3 9.4Z\",stroke:\"currentColor\"}))},d=f(c);var S=d;export{S as default};\n","\"use client\";var m=Object.defineProperty;var s=Object.getOwnPropertySymbols;var c=Object.prototype.hasOwnProperty,d=Object.prototype.propertyIsEnumerable;var p=(t,o,r)=>o in t?m(t,o,{enumerable:!0,configurable:!0,writable:!0,value:r}):t[o]=r,n=(t,o)=>{for(var r in o||(o={}))c.call(o,r)&&p(t,r,o[r]);if(s)for(var r of s(o))d.call(o,r)&&p(t,r,o[r]);return t};import*as e from\"react\";import{forwardRef as f}from\"react\";import{IconoirContext as l}from\"../IconoirContext.mjs\";const u=(t,o)=>{const r=e.useContext(l),i=n(n({},r),t);return e.createElement(\"svg\",n({width:\"1.5em\",height:\"1.5em\",strokeWidth:1.5,viewBox:\"0 0 24 24\",fill:\"none\",xmlns:\"http://www.w3.org/2000/svg\",color:\"currentColor\",ref:o},i),e.createElement(\"path\",{d:\"M20.0429 21H3.95705C2.41902 21 1.45658 19.3364 2.22324 18.0031L10.2662 4.01533C11.0352 2.67792 12.9648 2.67791 13.7338 4.01532L21.7768 18.0031C22.5434 19.3364 21.581 21 20.0429 21Z\",stroke:\"currentColor\",strokeLinecap:\"round\"}),e.createElement(\"path\",{d:\"M12 9V13\",stroke:\"currentColor\",strokeLinecap:\"round\"}),e.createElement(\"path\",{d:\"M12 17.01L12.01 16.9989\",stroke:\"currentColor\",strokeLinecap:\"round\",strokeLinejoin:\"round\"}))},C=f(u);var L=C;export{L as default};\n","\"use client\";var m=Object.defineProperty;var s=Object.getOwnPropertySymbols;var c=Object.prototype.hasOwnProperty,f=Object.prototype.propertyIsEnumerable;var i=(e,o,r)=>o in e?m(e,o,{enumerable:!0,configurable:!0,writable:!0,value:r}):e[o]=r,t=(e,o)=>{for(var r in o||(o={}))c.call(o,r)&&i(e,r,o[r]);if(s)for(var r of s(o))f.call(o,r)&&i(e,r,o[r]);return e};import*as n from\"react\";import{forwardRef as d}from\"react\";import{IconoirContext as l}from\"../IconoirContext.mjs\";const u=(e,o)=>{const r=n.useContext(l),p=t(t({},r),e);return n.createElement(\"svg\",t({width:\"1.5em\",height:\"1.5em\",strokeWidth:1.5,viewBox:\"0 0 24 24\",fill:\"none\",xmlns:\"http://www.w3.org/2000/svg\",color:\"currentColor\",ref:o},p),n.createElement(\"path\",{d:\"M9.17218 14.8284L12.0006 12M14.829 9.17157L12.0006 12M12.0006 12L9.17218 9.17157M12.0006 12L14.829 14.8284\",stroke:\"currentColor\",strokeLinecap:\"round\",strokeLinejoin:\"round\"}),n.createElement(\"path\",{d:\"M12 22C17.5228 22 22 17.5228 22 12C22 6.47715 17.5228 2 12 2C6.47715 2 2 6.47715 2 12C2 17.5228 6.47715 22 12 22Z\",stroke:\"currentColor\",strokeLinecap:\"round\",strokeLinejoin:\"round\"}))},C=d(u);var k=C;export{k as default};\n","\"use client\";var p=Object.defineProperty;var s=Object.getOwnPropertySymbols;var f=Object.prototype.hasOwnProperty,c=Object.prototype.propertyIsEnumerable;var i=(t,o,r)=>o in t?p(t,o,{enumerable:!0,configurable:!0,writable:!0,value:r}):t[o]=r,e=(t,o)=>{for(var r in o||(o={}))f.call(o,r)&&i(t,r,o[r]);if(s)for(var r of s(o))c.call(o,r)&&i(t,r,o[r]);return t};import*as n from\"react\";import{forwardRef as l}from\"react\";import{IconoirContext as d}from\"../IconoirContext.mjs\";const u=(t,o)=>{const r=n.useContext(d),m=e(e({},r),t);return n.createElement(\"svg\",e({width:\"1.5em\",height:\"1.5em\",strokeWidth:1.5,viewBox:\"0 0 24 24\",fill:\"none\",xmlns:\"http://www.w3.org/2000/svg\",color:\"currentColor\",ref:o},m),n.createElement(\"path\",{d:\"M6.75827 17.2426L12.0009 12M17.2435 6.75736L12.0009 12M12.0009 12L6.75827 6.75736M12.0009 12L17.2435 17.2426\",stroke:\"currentColor\",strokeLinecap:\"round\",strokeLinejoin:\"round\"}))},w=l(u);var x=w;export{x as default};\n","import { type ComponentType, type SVGProps } from 'react'\nimport {\n ArrowRight,\n ArrowLeft,\n ArrowUp,\n ArrowDown,\n NavArrowRight,\n NavArrowLeft,\n NavArrowDown,\n NavArrowUp,\n Check,\n Xmark,\n Copy,\n Search,\n Menu,\n SunLight,\n HalfMoon,\n ArrowUpRight,\n Github,\n Terminal,\n Code,\n Sparks,\n Plus,\n Minus,\n Settings,\n User,\n Heart,\n Star,\n Mail,\n Calendar,\n Clock,\n Bell,\n Home,\n Folder,\n Page,\n Trash,\n EditPencil,\n Eye,\n EyeClosed,\n Lock,\n LockSlash,\n Link,\n OpenInWindow,\n Download,\n Upload,\n RefreshDouble,\n Filter,\n SortDown,\n ViewGrid,\n List,\n MoreHoriz,\n MoreVert,\n InfoCircle,\n WarningTriangle,\n CheckCircle,\n XmarkCircle,\n} from 'iconoir-react'\nimport { cn } from '../../utils/cn'\n\n// Map of icon names to Iconoir components\nconst iconComponents = {\n 'arrow-right': ArrowRight,\n 'arrow-left': ArrowLeft,\n 'arrow-up': ArrowUp,\n 'arrow-down': ArrowDown,\n 'chevron-right': NavArrowRight,\n 'chevron-left': NavArrowLeft,\n 'chevron-down': NavArrowDown,\n 'chevron-up': NavArrowUp,\n check: Check,\n x: Xmark,\n copy: Copy,\n search: Search,\n menu: Menu,\n sun: SunLight,\n moon: HalfMoon,\n external: ArrowUpRight,\n github: Github,\n terminal: Terminal,\n code: Code,\n sparkles: Sparks,\n plus: Plus,\n minus: Minus,\n settings: Settings,\n user: User,\n heart: Heart,\n star: Star,\n mail: Mail,\n calendar: Calendar,\n clock: Clock,\n bell: Bell,\n home: Home,\n folder: Folder,\n file: Page,\n trash: Trash,\n edit: EditPencil,\n eye: Eye,\n 'eye-off': EyeClosed,\n lock: Lock,\n unlock: LockSlash,\n link: Link,\n 'external-link': OpenInWindow,\n download: Download,\n upload: Upload,\n refresh: RefreshDouble,\n filter: Filter,\n sort: SortDown,\n grid: ViewGrid,\n list: List,\n 'more-horizontal': MoreHoriz,\n 'more-vertical': MoreVert,\n info: InfoCircle,\n warning: WarningTriangle,\n success: CheckCircle,\n error: XmarkCircle,\n} as const\n\nexport type IconName = keyof typeof iconComponents\n\nexport interface IconProps extends Omit<SVGProps<SVGSVGElement>, 'ref'> {\n name: IconName\n size?: 'xs' | 'sm' | 'md' | 'lg' | 'xl' | number\n}\n\nconst sizeClasses = {\n xs: 'w-3 h-3',\n sm: 'w-4 h-4',\n md: 'w-5 h-5',\n lg: 'w-6 h-6',\n xl: 'w-8 h-8',\n}\n\nconst sizePixels = {\n xs: 12,\n sm: 16,\n md: 20,\n lg: 24,\n xl: 32,\n}\n\nexport function Icon({ name, size = 'md', className, ...props }: IconProps) {\n const IconComponent = iconComponents[name] as ComponentType<SVGProps<SVGSVGElement>>\n\n if (!IconComponent) {\n console.warn(`Icon \"${name}\" not found`)\n return null\n }\n\n const isNumericSize = typeof size === 'number'\n const pixelSize = isNumericSize ? size : sizePixels[size]\n\n return (\n <IconComponent\n width={pixelSize}\n height={pixelSize}\n strokeWidth={1.5}\n className={cn(!isNumericSize && sizeClasses[size], className)}\n aria-hidden=\"true\"\n {...props}\n />\n )\n}\n\n// Re-export all iconoir icons for direct use\nexport * from 'iconoir-react'\n","import { type HTMLAttributes } from 'react'\nimport { cn } from '../../utils/cn'\n\nexport interface NoiseOverlayProps extends HTMLAttributes<HTMLDivElement> {\n /** Opacity of the noise texture (0-1) */\n opacity?: number\n /** Whether to use a fixed position overlay */\n fixed?: boolean\n}\n\nconst noiseSvg = `url(\"data:image/svg+xml,%3Csvg viewBox='0 0 256 256' xmlns='http://www.w3.org/2000/svg'%3E%3Cfilter id='noise'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='0.8' numOctaves='4' stitchTiles='stitch'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23noise)'/%3E%3C/svg%3E\")`\n\nexport function NoiseOverlay({\n opacity = 0.03,\n fixed = true,\n className,\n style,\n ...props\n}: NoiseOverlayProps) {\n return (\n <div\n className={cn(\n 'inset-0 pointer-events-none z-50',\n fixed ? 'fixed' : 'absolute',\n className\n )}\n style={{\n backgroundImage: noiseSvg,\n opacity,\n ...style,\n }}\n aria-hidden=\"true\"\n {...props}\n />\n )\n}\n","import { type HTMLAttributes } from 'react'\nimport { cn } from '../../utils/cn'\n\nexport interface ScrollIndicatorProps extends HTMLAttributes<HTMLDivElement> {\n /** Label text next to the indicator */\n label?: string\n /** Size of the icon */\n size?: 'sm' | 'md' | 'lg'\n /** Position of the indicator */\n position?: 'bottom-left' | 'bottom-center' | 'bottom-right'\n}\n\nconst sizeMap = {\n sm: { icon: 12, text: 'text-[10px]' },\n md: { icon: 16, text: 'text-xs' },\n lg: { icon: 20, text: 'text-sm' },\n}\n\nconst positionMap = {\n 'bottom-left': 'bottom-8 left-6 md:left-12',\n 'bottom-center': 'bottom-8 left-1/2 -translate-x-1/2',\n 'bottom-right': 'bottom-8 right-6 md:right-12',\n}\n\nexport function ScrollIndicator({\n label = 'Scroll',\n size = 'md',\n position = 'bottom-left',\n className,\n ...props\n}: ScrollIndicatorProps) {\n const { icon, text } = sizeMap[size]\n\n return (\n <div\n className={cn(\n 'absolute flex items-center gap-3 text-current opacity-60',\n positionMap[position],\n className\n )}\n {...props}\n >\n <svg\n width={icon}\n height={icon * 1.5}\n viewBox=\"0 0 16 24\"\n fill=\"none\"\n stroke=\"currentColor\"\n strokeWidth=\"1.5\"\n className=\"animate-bounce\"\n >\n <path d=\"M8 4v16M4 16l4 4 4-4\" />\n </svg>\n {label && (\n <span className={cn('font-mono uppercase tracking-wider', text)}>\n {label}\n </span>\n )}\n </div>\n )\n}\n","import { type SVGProps } from 'react'\nimport { cn } from '../../utils/cn'\n\nexport interface HamburgerIconProps extends SVGProps<SVGSVGElement> {\n /** Whether the menu is open (shows X) or closed (shows hamburger) */\n isOpen: boolean\n /** Size of the icon */\n size?: number\n}\n\nexport function HamburgerIcon({\n isOpen,\n size = 24,\n className,\n ...props\n}: HamburgerIconProps) {\n return (\n <svg\n xmlns=\"http://www.w3.org/2000/svg\"\n width={size}\n height={size}\n viewBox=\"0 0 24 24\"\n fill=\"none\"\n stroke=\"currentColor\"\n strokeWidth=\"2\"\n strokeLinecap=\"round\"\n strokeLinejoin=\"round\"\n className={cn('transition-transform duration-300', className)}\n aria-hidden=\"true\"\n {...props}\n >\n <path\n d={isOpen ? 'M18 6L6 18' : 'M4 6h16'}\n className=\"origin-center transition-all duration-300\"\n />\n <path\n d={isOpen ? 'M6 6l12 12' : 'M4 12h16'}\n className={cn(\n 'origin-center transition-all duration-300',\n isOpen && 'opacity-0'\n )}\n />\n {!isOpen && <path d=\"M4 18h16\" />}\n </svg>\n )\n}\n","import { type HTMLAttributes, type ReactNode } from 'react'\nimport { cn } from '../../utils/cn'\n\nexport interface AnimatedTextProps extends HTMLAttributes<HTMLElement> {\n /** Text content or children */\n children: ReactNode\n /** Animation type */\n animation?: 'fade-up' | 'fade-in' | 'slide-up' | 'blur-in'\n /** Delay before animation starts (ms) */\n delay?: number\n /** Duration of animation (ms) */\n duration?: number\n /** HTML tag to render */\n as?: 'span' | 'p' | 'h1' | 'h2' | 'h3' | 'h4' | 'h5' | 'h6' | 'div'\n /** Whether to animate on scroll into view */\n animateOnScroll?: boolean\n}\n\nconst animationStyles = {\n 'fade-up': {\n initial: 'opacity-0 translate-y-8',\n animate: 'opacity-100 translate-y-0',\n },\n 'fade-in': {\n initial: 'opacity-0',\n animate: 'opacity-100',\n },\n 'slide-up': {\n initial: 'opacity-0 translate-y-full',\n animate: 'opacity-100 translate-y-0',\n },\n 'blur-in': {\n initial: 'opacity-0 blur-sm',\n animate: 'opacity-100 blur-0',\n },\n}\n\nexport function AnimatedText({\n children,\n animation = 'fade-up',\n delay = 0,\n duration = 600,\n as: Component = 'span',\n animateOnScroll = true,\n className,\n style,\n ...props\n}: AnimatedTextProps) {\n const { initial } = animationStyles[animation]\n\n // CSS-only animation using animation-timeline for scroll-based\n // Falls back to immediate animation if not supported\n const animationStyle = {\n '--animation-delay': `${delay}ms`,\n '--animation-duration': `${duration}ms`,\n ...style,\n } as React.CSSProperties\n\n return (\n <Component\n className={cn(\n 'transition-all ease-out',\n animateOnScroll ? 'motion-safe:animate-fade-up' : '',\n // Fallback for reduced motion\n 'motion-reduce:opacity-100 motion-reduce:translate-y-0 motion-reduce:blur-0',\n initial,\n // Apply animate class after mount via CSS animation\n '[animation-fill-mode:forwards]',\n className\n )}\n style={{\n transitionDuration: `${duration}ms`,\n transitionDelay: `${delay}ms`,\n animationDelay: `${delay}ms`,\n animationDuration: `${duration}ms`,\n ...animationStyle,\n }}\n {...props}\n >\n {children}\n </Component>\n )\n}\n","import { useMemo } from 'react'\nimport { cn } from '../../utils/cn'\n\nexport interface CodeBlockProps {\n /** Code string to display */\n code: string\n /** Programming language for syntax highlighting */\n language?: 'javascript' | 'typescript' | 'json' | 'bash' | 'css'\n /** Show line numbers */\n showLineNumbers?: boolean\n /** Additional class names */\n className?: string\n}\n\ninterface Token {\n type:\n | 'keyword'\n | 'string'\n | 'number'\n | 'comment'\n | 'property'\n | 'punctuation'\n | 'text'\n value: string\n}\n\nconst COLORS = {\n keyword: 'var(--color-coral)',\n string: 'var(--color-mint)',\n number: 'var(--color-gold)',\n comment: 'var(--color-grey-500)',\n property: 'var(--color-sage)',\n punctuation: 'var(--color-grey-400)',\n text: 'var(--color-grey-200)',\n}\n\nfunction tokenize(code: string): Token[] {\n const tokens: Token[] = []\n let remaining = code\n\n const patterns: [RegExp, Token['type']][] = [\n [/^\\/\\/.*$/m, 'comment'],\n [/^\\/\\*[\\s\\S]*?\\*\\//, 'comment'],\n [/^#.*$/m, 'comment'], // bash comments\n [/^'[^']*'/, 'string'],\n [/^\"[^\"]*\"/, 'string'],\n [/^`[^`]*`/, 'string'],\n [\n /^\\b(const|let|var|function|return|if|else|for|while|import|export|from|default|class|extends|new|this|true|false|null|undefined|async|await|try|catch|throw|finally|typeof|instanceof|in|of|yield|switch|case|break|continue|do|with|debugger|delete|void)\\b/,\n 'keyword',\n ],\n [/^\\b\\d+(\\.\\d+)?\\b/, 'number'],\n [/^[a-zA-Z_][a-zA-Z0-9_]*(?=\\s*:)/, 'property'],\n [/^[{}[\\](),;:=<>!&|?+\\-*/%^~]/, 'punctuation'],\n [/^\\s+/, 'text'],\n [/^[^\\s{}[\\](),;:'\"`=<>!&|?+\\-*/%^~]+/, 'text'],\n ]\n\n while (remaining.length > 0) {\n let matched = false\n\n for (const [pattern, type] of patterns) {\n const match = remaining.match(pattern)\n if (match) {\n tokens.push({ type, value: match[0] })\n remaining = remaining.slice(match[0].length)\n matched = true\n break\n }\n }\n\n if (!matched) {\n tokens.push({ type: 'text', value: remaining[0] })\n remaining = remaining.slice(1)\n }\n }\n\n return tokens\n}\n\n/**\n * Lightweight syntax highlighting code block\n * No external dependencies, uses CSS custom properties for theming\n */\nexport function CodeBlock({\n code,\n language: _language = 'javascript',\n showLineNumbers = false,\n className,\n}: CodeBlockProps) {\n const tokens = useMemo(() => tokenize(code), [code])\n const lines = useMemo(() => code.split('\\n'), [code])\n\n return (\n <pre\n className={cn(\n 'text-sm font-mono whitespace-pre overflow-x-auto',\n 'bg-[var(--glass-bg)] rounded-lg p-4',\n 'border border-[var(--glass-border)]',\n className\n )}\n style={{ color: 'var(--color-grey-200)' }}\n >\n <code className={showLineNumbers ? 'flex' : undefined}>\n {showLineNumbers && (\n <span className=\"select-none pr-4 text-[var(--color-grey-600)] border-r border-[var(--glass-border)] mr-4\">\n {lines.map((_, i) => (\n <span key={i} className=\"block\">\n {i + 1}\n </span>\n ))}\n </span>\n )}\n <span className={showLineNumbers ? 'flex-1' : undefined}>\n {tokens.map((token, i) => (\n <span key={i} style={{ color: COLORS[token.type] }}>\n {token.value}\n </span>\n ))}\n </span>\n </code>\n </pre>\n )\n}\n","import { type HTMLAttributes } from 'react'\nimport { cn } from '../../utils/cn'\n\nexport interface SkeletonProps extends HTMLAttributes<HTMLDivElement> {\n /** Skeleton variant */\n variant?: 'text' | 'circular' | 'rectangular'\n /** Width of the skeleton */\n width?: string | number\n /** Height of the skeleton */\n height?: string | number\n /** Enable shimmer animation */\n animate?: boolean\n}\n\n/**\n * Skeleton loading placeholder\n * Uses CSS custom properties for consistent theming\n */\nexport function Skeleton({\n variant = 'text',\n width,\n height,\n animate = true,\n className,\n style,\n ...props\n}: SkeletonProps) {\n const baseStyles = [\n 'bg-[var(--glass-highlight)]',\n animate && 'animate-pulse',\n ]\n\n const variants = {\n text: 'rounded h-4',\n circular: 'rounded-full',\n rectangular: 'rounded-lg',\n }\n\n return (\n <div\n className={cn(baseStyles, variants[variant], className)}\n style={{\n width: typeof width === 'number' ? `${width}px` : width,\n height: typeof height === 'number' ? `${height}px` : height,\n ...style,\n }}\n {...props}\n />\n )\n}\n\nexport interface CardSkeletonProps extends HTMLAttributes<HTMLDivElement> {\n /** Number of text lines to show */\n lines?: number\n /** Show header indicator */\n showHeader?: boolean\n /** Show tags row */\n showTags?: boolean\n}\n\n/**\n * Pre-composed card skeleton for common use cases\n */\nexport function CardSkeleton({\n lines = 2,\n showHeader = true,\n showTags = true,\n className,\n ...props\n}: CardSkeletonProps) {\n return (\n <div\n className={cn(\n 'p-5 md:p-6 rounded-2xl border',\n 'bg-[var(--glass-bg)] border-[var(--glass-border)]',\n className\n )}\n {...props}\n >\n {showHeader && (\n <div className=\"mb-3 md:mb-4\">\n <Skeleton variant=\"circular\" width={12} height={12} />\n </div>\n )}\n\n <Skeleton width=\"70%\" height={20} className=\"mb-2\" />\n\n <div className=\"space-y-2 mb-3 md:mb-4\">\n {Array.from({ length: lines }).map((_, i) => (\n <Skeleton\n key={i}\n width={i === lines - 1 ? '85%' : '100%'}\n height={14}\n className=\"bg-[var(--glass-bg)]\"\n />\n ))}\n </div>\n\n {showTags && (\n <div className=\"flex flex-wrap gap-2\">\n {[50, 60, 70].map((width, i) => (\n <Skeleton\n key={i}\n width={width}\n height={12}\n className=\"bg-[var(--glass-bg)]\"\n />\n ))}\n </div>\n )}\n </div>\n )\n}\n","/**\n * SVG pattern generators for shapes\n * Returns pattern definition and pattern ID for use in fills\n */\n\nexport type PatternType = 'solid' | 'checkered' | 'striped' | 'dotted'\n\nexport interface PatternConfig {\n type: PatternType\n colors: string[]\n scale?: number\n angle?: number\n}\n\nlet patternCounter = 0\n\nexport function generatePatternId(): string {\n return `pattern-${++patternCounter}-${Date.now()}`\n}\n\nexport function generateCheckeredPattern(\n id: string,\n colors: [string, string],\n scale: number = 1\n): string {\n const size = 10 * scale\n const half = size / 2\n return `\n <pattern id=\"${id}\" patternUnits=\"userSpaceOnUse\" width=\"${size}\" height=\"${size}\">\n <rect width=\"${half}\" height=\"${half}\" fill=\"${colors[0]}\"/>\n <rect x=\"${half}\" y=\"${half}\" width=\"${half}\" height=\"${half}\" fill=\"${colors[0]}\"/>\n <rect x=\"${half}\" width=\"${half}\" height=\"${half}\" fill=\"${colors[1]}\"/>\n <rect y=\"${half}\" width=\"${half}\" height=\"${half}\" fill=\"${colors[1]}\"/>\n </pattern>\n `\n}\n\nexport function generateStripedPattern(\n id: string,\n colors: string[],\n scale: number = 1,\n angle: number = 45\n): string {\n const stripeWidth = 4 * scale\n const totalWidth = stripeWidth * colors.length\n const stripes = colors\n .map(\n (color, i) =>\n `<rect x=\"${i * stripeWidth}\" width=\"${stripeWidth}\" height=\"${totalWidth}\" fill=\"${color}\"/>`\n )\n .join('')\n return `\n <pattern id=\"${id}\" patternUnits=\"userSpaceOnUse\" width=\"${totalWidth}\" height=\"${totalWidth}\" patternTransform=\"rotate(${angle})\">\n ${stripes}\n </pattern>\n `\n}\n\nexport function generateDottedPattern(\n id: string,\n bgColor: string,\n dotColor: string,\n scale: number = 1\n): string {\n const size = 8 * scale\n const radius = 1.5 * scale\n return `\n <pattern id=\"${id}\" patternUnits=\"userSpaceOnUse\" width=\"${size}\" height=\"${size}\">\n <rect width=\"${size}\" height=\"${size}\" fill=\"${bgColor}\"/>\n <circle cx=\"${size / 2}\" cy=\"${size / 2}\" r=\"${radius}\" fill=\"${dotColor}\"/>\n </pattern>\n `\n}\n\nexport function generatePattern(config: PatternConfig): { defs: string; fill: string } | null {\n if (config.type === 'solid' || config.colors.length === 0) {\n return null\n }\n\n const id = generatePatternId()\n const scale = config.scale ?? 1\n\n switch (config.type) {\n case 'checkered':\n return {\n defs: generateCheckeredPattern(id, [config.colors[0], config.colors[1] || config.colors[0]], scale),\n fill: `url(#${id})`,\n }\n case 'striped':\n return {\n defs: generateStripedPattern(id, config.colors, scale, config.angle ?? 45),\n fill: `url(#${id})`,\n }\n case 'dotted':\n return {\n defs: generateDottedPattern(id, config.colors[0], config.colors[1] || '#fff', scale),\n fill: `url(#${id})`,\n }\n default:\n return null\n }\n}\n","import { cn } from '../../utils/cn'\nimport { generatePattern, PatternType } from './patterns'\n\nexport type ShapeType =\n | 'circle'\n | 'square'\n | 'triangle'\n | 'diamond'\n | 'hexagon'\n | 'semicircle'\n | 'arc'\n | 'pill'\n | 'star'\n\nexport type ResponsiveSize = {\n base?: number | { width: number; height: number }\n sm?: number | { width: number; height: number }\n md?: number | { width: number; height: number }\n lg?: number | { width: number; height: number }\n}\n\nexport interface ShapeProps {\n type: ShapeType\n /**\n * Size of the shape. Can be:\n * - A number (same width/height)\n * - An object { width, height }\n * - A responsive object { base, sm, md, lg }\n */\n size?: number | { width: number; height: number } | ResponsiveSize\n color?: string\n pattern?: PatternType\n patternColors?: string[]\n patternScale?: number\n patternAngle?: number\n rotation?: number\n opacity?: number\n className?: string\n style?: React.CSSProperties\n /** Disable animations when user prefers reduced motion (handled via CSS) */\n 'aria-hidden'?: boolean\n}\n\nfunction getShapePath(type: ShapeType): string {\n switch (type) {\n case 'circle':\n return ''\n case 'square':\n return ''\n case 'triangle':\n return 'M12 2L22 20H2L12 2Z'\n case 'diamond':\n return 'M12 1L23 12L12 23L1 12L12 1Z'\n case 'hexagon':\n return 'M12 2L21.5 7V17L12 22L2.5 17V7L12 2Z'\n case 'semicircle':\n return 'M2 12A10 10 0 0 1 22 12Z'\n case 'arc':\n return 'M4 20A12 12 0 0 1 20 20'\n case 'pill':\n return ''\n case 'star':\n return 'M12 2L14.5 8.5L21.5 9L16.5 13.5L18 21L12 17L6 21L7.5 13.5L2.5 9L9.5 8.5L12 2Z'\n default:\n return ''\n }\n}\n\n// Check if size is a responsive object\nfunction isResponsiveSize(size: ShapeProps['size']): size is ResponsiveSize {\n return (\n typeof size === 'object' &&\n size !== null &&\n ('base' in size || 'sm' in size || 'md' in size || 'lg' in size)\n )\n}\n\nexport function Shape({\n type,\n size = 48,\n color = 'currentColor',\n pattern = 'solid',\n patternColors,\n patternScale = 1,\n patternAngle = 45,\n rotation = 0,\n opacity = 1,\n className,\n style,\n 'aria-hidden': ariaHidden = true,\n}: ShapeProps) {\n // Handle responsive sizes by computing base size\n // CSS custom properties will handle the responsive scaling\n let computedSize: number | { width: number; height: number }\n\n if (isResponsiveSize(size)) {\n // Use base size or fallback to first defined breakpoint\n computedSize = size.base ?? size.sm ?? size.md ?? size.lg ?? 48\n } else {\n computedSize = size\n }\n\n const width = typeof computedSize === 'number' ? computedSize : computedSize.width\n const height = typeof computedSize === 'number' ? computedSize : computedSize.height\n\n // Generate responsive CSS custom properties\n const responsiveStyles: Record<string, string> = {}\n if (isResponsiveSize(size)) {\n const getSize = (s: number | { width: number; height: number } | undefined) => {\n if (!s) return undefined\n return typeof s === 'number' ? s : s.width\n }\n\n if (size.base) responsiveStyles['--shape-size-base'] = `${getSize(size.base)}px`\n if (size.sm) responsiveStyles['--shape-size-sm'] = `${getSize(size.sm)}px`\n if (size.md) responsiveStyles['--shape-size-md'] = `${getSize(size.md)}px`\n if (size.lg) responsiveStyles['--shape-size-lg'] = `${getSize(size.lg)}px`\n }\n\n const patternResult =\n pattern !== 'solid' && patternColors\n ? generatePattern({\n type: pattern,\n colors: patternColors,\n scale: patternScale,\n angle: patternAngle,\n })\n : null\n\n const fill = patternResult?.fill ?? color\n\n const renderShape = () => {\n switch (type) {\n case 'circle':\n return <circle cx=\"12\" cy=\"12\" r=\"10\" fill={fill} />\n case 'square':\n return <rect x=\"2\" y=\"2\" width=\"20\" height=\"20\" rx=\"2\" fill={fill} />\n case 'pill':\n return <rect x=\"2\" y=\"6\" width=\"20\" height=\"12\" rx=\"6\" fill={fill} />\n case 'arc':\n return (\n <path\n d=\"M4 20A12 12 0 0 1 20 20\"\n fill=\"none\"\n stroke={fill}\n strokeWidth=\"4\"\n strokeLinecap=\"round\"\n />\n )\n default: {\n const path = getShapePath(type)\n return path ? <path d={path} fill={fill} /> : null\n }\n }\n }\n\n // Determine if we need responsive class\n const responsiveClass = isResponsiveSize(size) ? 'shape-responsive' : ''\n\n return (\n <svg\n viewBox=\"0 0 24 24\"\n width={width}\n height={height}\n className={cn('shape', responsiveClass, className)}\n style={{\n transform: rotation ? `rotate(${rotation}deg)` : undefined,\n opacity,\n ...responsiveStyles,\n ...style,\n }}\n aria-hidden={ariaHidden}\n focusable=\"false\"\n >\n {patternResult && (\n <defs dangerouslySetInnerHTML={{ __html: patternResult.defs }} />\n )}\n {renderShape()}\n </svg>\n )\n}\n","import { cn } from '../../utils/cn'\n\nexport type Expression =\n | 'happy'\n | 'wink'\n | 'surprised'\n | 'excited'\n | 'thinking'\n | 'cool'\n | 'sleepy'\n | 'love'\n\nexport type Accessory = 'none' | 'glasses' | 'hat' | 'flower' | 'bowtie'\n\nexport interface CharacterProps {\n expression?: Expression\n size?: number\n color?: string\n featureColor?: string\n accessory?: Accessory\n accessoryColor?: string\n animate?: boolean\n className?: string\n style?: React.CSSProperties\n}\n\nfunction renderEyes(expression: Expression, featureColor: string) {\n switch (expression) {\n case 'happy':\n return (\n <>\n <circle cx=\"9\" cy=\"10\" r=\"1.5\" fill={featureColor} />\n <circle cx=\"15\" cy=\"10\" r=\"1.5\" fill={featureColor} />\n </>\n )\n case 'wink':\n return (\n <>\n <circle cx=\"9\" cy=\"10\" r=\"1.5\" fill={featureColor} />\n <path d=\"M13.5 10.5L16.5 9.5\" stroke={featureColor} strokeWidth=\"1.5\" strokeLinecap=\"round\" />\n </>\n )\n case 'surprised':\n return (\n <>\n <circle cx=\"9\" cy=\"10\" r=\"2\" fill={featureColor} />\n <circle cx=\"15\" cy=\"10\" r=\"2\" fill={featureColor} />\n </>\n )\n case 'excited':\n return (\n <>\n <path d=\"M7 9L11 11\" stroke={featureColor} strokeWidth=\"1.5\" strokeLinecap=\"round\" />\n <path d=\"M17 9L13 11\" stroke={featureColor} strokeWidth=\"1.5\" strokeLinecap=\"round\" />\n </>\n )\n case 'thinking':\n return (\n <>\n <circle cx=\"9\" cy=\"10\" r=\"1.5\" fill={featureColor} />\n <circle cx=\"15\" cy=\"11\" r=\"1.5\" fill={featureColor} />\n </>\n )\n case 'cool':\n return null // Glasses cover eyes\n case 'sleepy':\n return (\n <>\n <path d=\"M7 10H11\" stroke={featureColor} strokeWidth=\"1.5\" strokeLinecap=\"round\" />\n <path d=\"M13 10H17\" stroke={featureColor} strokeWidth=\"1.5\" strokeLinecap=\"round\" />\n </>\n )\n case 'love':\n return (\n <>\n <path d=\"M7.5 9.5C7.5 8.5 8.5 8 9 8.5C9.5 8 10.5 8.5 10.5 9.5C10.5 10.5 9 12 9 12C9 12 7.5 10.5 7.5 9.5Z\" fill=\"#FF6B9D\" />\n <path d=\"M13.5 9.5C13.5 8.5 14.5 8 15 8.5C15.5 8 16.5 8.5 16.5 9.5C16.5 10.5 15 12 15 12C15 12 13.5 10.5 13.5 9.5Z\" fill=\"#FF6B9D\" />\n </>\n )\n default:\n return (\n <>\n <circle cx=\"9\" cy=\"10\" r=\"1.5\" fill={featureColor} />\n <circle cx=\"15\" cy=\"10\" r=\"1.5\" fill={featureColor} />\n </>\n )\n }\n}\n\nfunction renderMouth(expression: Expression, featureColor: string) {\n switch (expression) {\n case 'happy':\n case 'wink':\n return (\n <path d=\"M8 14C8 14 10 16 12 16C14 16 16 14 16 14\" stroke={featureColor} strokeWidth=\"1.5\" strokeLinecap=\"round\" fill=\"none\" />\n )\n case 'surprised':\n return <circle cx=\"12\" cy=\"15\" r=\"2\" fill={featureColor} />\n case 'excited':\n return (\n <path d=\"M8 13C8 13 10 17 12 17C14 17 16 13 16 13\" stroke={featureColor} strokeWidth=\"1.5\" strokeLinecap=\"round\" fill=\"none\" />\n )\n case 'thinking':\n return (\n <path d=\"M10 15L14 14\" stroke={featureColor} strokeWidth=\"1.5\" strokeLinecap=\"round\" />\n )\n case 'cool':\n return (\n <path d=\"M9 14C9 14 10.5 15.5 12 15.5C13.5 15.5 15 14 15 14\" stroke={featureColor} strokeWidth=\"1.5\" strokeLinecap=\"round\" fill=\"none\" />\n )\n case 'sleepy':\n return (\n <path d=\"M10 15L14 15\" stroke={featureColor} strokeWidth=\"1.5\" strokeLinecap=\"round\" />\n )\n case 'love':\n return (\n <path d=\"M8 14C8 14 10 16 12 16C14 16 16 14 16 14\" stroke={featureColor} strokeWidth=\"1.5\" strokeLinecap=\"round\" fill=\"none\" />\n )\n default:\n return (\n <path d=\"M8 14C8 14 10 16 12 16C14 16 16 14 16 14\" stroke={featureColor} strokeWidth=\"1.5\" strokeLinecap=\"round\" fill=\"none\" />\n )\n }\n}\n\nfunction renderAccessory(accessory: Accessory, accessoryColor: string, featureColor: string) {\n switch (accessory) {\n case 'glasses':\n return (\n <g>\n <circle cx=\"9\" cy=\"10\" r=\"3\" fill=\"none\" stroke={featureColor} strokeWidth=\"1.5\" />\n <circle cx=\"15\" cy=\"10\" r=\"3\" fill=\"none\" stroke={featureColor} strokeWidth=\"1.5\" />\n <path d=\"M12 10H12\" stroke={featureColor} strokeWidth=\"1.5\" />\n <path d=\"M6 10H6\" stroke={featureColor} strokeWidth=\"1.5\" />\n <path d=\"M18 10H18\" stroke={featureColor} strokeWidth=\"1.5\" />\n </g>\n )\n case 'hat':\n return (\n <g>\n <rect x=\"6\" y=\"1\" width=\"12\" height=\"3\" rx=\"1\" fill={accessoryColor} />\n <rect x=\"8\" y=\"-2\" width=\"8\" height=\"4\" rx=\"1\" fill={accessoryColor} />\n </g>\n )\n case 'flower':\n return (\n <g transform=\"translate(16, 2)\">\n <circle cx=\"0\" cy=\"0\" r=\"2\" fill={accessoryColor} />\n <circle cx=\"2\" cy=\"-1\" r=\"2\" fill={accessoryColor} />\n <circle cx=\"2\" cy=\"1\" r=\"2\" fill={accessoryColor} />\n <circle cx=\"-1\" cy=\"-1.5\" r=\"2\" fill={accessoryColor} />\n <circle cx=\"-1\" cy=\"1.5\" r=\"2\" fill={accessoryColor} />\n <circle cx=\"0.5\" cy=\"0\" r=\"1.5\" fill=\"#FFD93D\" />\n </g>\n )\n case 'bowtie':\n return (\n <g transform=\"translate(12, 19)\">\n <path d=\"M-3 0L0 2L3 0L0 -2L-3 0Z\" fill={accessoryColor} />\n <circle cx=\"0\" cy=\"0\" r=\"1\" fill={featureColor} />\n </g>\n )\n default:\n return null\n }\n}\n\nexport function Character({\n expression = 'happy',\n size = 48,\n color = '#A78BFA',\n featureColor = '#1d1d1f',\n accessory = 'none',\n accessoryColor = '#FF6B9D',\n animate = false,\n className,\n style,\n}: CharacterProps) {\n return (\n <svg\n viewBox=\"0 0 24 24\"\n width={size}\n height={size}\n className={cn(\n 'character',\n animate && 'character-animate',\n className\n )}\n style={style}\n >\n <style>\n {animate\n ? `\n .character-animate .character-face {\n animation: characterBounce 2s ease-in-out infinite;\n }\n @keyframes characterBounce {\n 0%, 100% { transform: translateY(0); }\n 50% { transform: translateY(-1px); }\n }\n @media (prefers-reduced-motion: reduce) {\n .character-animate .character-face {\n animation: none;\n }\n }\n `\n : ''}\n </style>\n <g className=\"character-face\">\n {/* Face */}\n <circle cx=\"12\" cy=\"12\" r=\"10\" fill={color} />\n\n {/* Eyes */}\n {renderEyes(expression, featureColor)}\n\n {/* Mouth */}\n {renderMouth(expression, featureColor)}\n\n {/* Accessory */}\n {renderAccessory(accessory, accessoryColor, featureColor)}\n </g>\n </svg>\n )\n}\n","import { cn } from '../../utils/cn'\n\nexport type BubbleDirection = 'left' | 'right' | 'top' | 'bottom'\nexport type BubbleVariant = 'speech' | 'thought'\nexport type BubbleSize = 'sm' | 'md' | 'lg'\n\nexport interface SpeechBubbleProps {\n children: React.ReactNode\n direction?: BubbleDirection\n variant?: BubbleVariant\n size?: BubbleSize\n color?: string\n borderColor?: string\n className?: string\n style?: React.CSSProperties\n}\n\nconst sizeClasses: Record<BubbleSize, string> = {\n sm: 'px-2 py-1 text-xs',\n md: 'px-3 py-2 text-sm',\n lg: 'px-4 py-3 text-base',\n}\n\nexport function SpeechBubble({\n children,\n direction = 'bottom',\n variant = 'speech',\n size = 'md',\n color = 'var(--glass-bg, rgba(255, 255, 255, 0.05))',\n borderColor = 'var(--glass-border, rgba(255, 255, 255, 0.1))',\n className,\n style,\n}: SpeechBubbleProps) {\n const isThought = variant === 'thought'\n\n // Tail positioning\n const tailPosition: Record<BubbleDirection, string> = {\n bottom: 'bottom-0 left-1/2 -translate-x-1/2 translate-y-full',\n top: 'top-0 left-1/2 -translate-x-1/2 -translate-y-full rotate-180',\n left: 'left-0 top-1/2 -translate-x-full -translate-y-1/2 -rotate-90',\n right: 'right-0 top-1/2 translate-x-full -translate-y-1/2 rotate-90',\n }\n\n // Thought bubble dots positioning\n const dotsPosition: Record<BubbleDirection, string> = {\n bottom: 'bottom-0 left-1/2 -translate-x-1/2 translate-y-[150%]',\n top: 'top-0 left-1/2 -translate-x-1/2 -translate-y-[150%]',\n left: 'left-0 top-1/2 -translate-x-[150%] -translate-y-1/2',\n right: 'right-0 top-1/2 translate-x-[150%] -translate-y-1/2',\n }\n\n return (\n <div\n className={cn('relative inline-block', className)}\n style={style}\n >\n <div\n className={cn(\n 'relative rounded-xl',\n sizeClasses[size]\n )}\n style={{\n backgroundColor: color,\n border: `1px solid ${borderColor}`,\n }}\n >\n {children}\n\n {/* Speech tail or thought dots */}\n {isThought ? (\n <div className={cn('absolute flex gap-1', dotsPosition[direction])}>\n <div\n className=\"w-2 h-2 rounded-full\"\n style={{ backgroundColor: color, border: `1px solid ${borderColor}` }}\n />\n <div\n className=\"w-1.5 h-1.5 rounded-full\"\n style={{ backgroundColor: color, border: `1px solid ${borderColor}` }}\n />\n </div>\n ) : (\n <div className={cn('absolute', tailPosition[direction])}>\n <svg\n width=\"12\"\n height=\"8\"\n viewBox=\"0 0 12 8\"\n fill=\"none\"\n >\n <path\n d=\"M6 8L0 0H12L6 8Z\"\n fill={color}\n />\n <path\n d=\"M0.5 0L6 7L11.5 0\"\n stroke={borderColor}\n strokeWidth=\"1\"\n fill=\"none\"\n />\n </svg>\n </div>\n )}\n </div>\n </div>\n )\n}\n","import {\n forwardRef,\n useState,\n useRef,\n useEffect,\n useCallback,\n useId,\n type ReactNode,\n} from 'react'\nimport { createPortal } from 'react-dom'\nimport { cn } from '../../utils/cn'\n\nexport type TooltipPosition = 'top' | 'right' | 'bottom' | 'left'\n\nexport interface TooltipProps {\n /** Content to display inside the tooltip */\n content: ReactNode\n /** The element that triggers the tooltip */\n children: ReactNode\n /** Preferred position of the tooltip relative to the trigger */\n position?: TooltipPosition\n /** Delay in ms before showing the tooltip */\n showDelay?: number\n /** Delay in ms before hiding the tooltip */\n hideDelay?: number\n /** Whether the tooltip is disabled */\n disabled?: boolean\n /** Show arrow indicator */\n arrow?: boolean\n /** Additional class names for the tooltip popup */\n className?: string\n}\n\ninterface Coords {\n top: number\n left: number\n actualPosition: TooltipPosition\n}\n\nfunction getCoords(\n triggerRect: DOMRect,\n tooltipRect: DOMRect,\n preferred: TooltipPosition,\n gap: number\n): Coords {\n const viewport = {\n width: window.innerWidth,\n height: window.innerHeight,\n }\n\n const positions: Record<TooltipPosition, { top: number; left: number }> = {\n top: {\n top: triggerRect.top - tooltipRect.height - gap,\n left: triggerRect.left + (triggerRect.width - tooltipRect.width) / 2,\n },\n bottom: {\n top: triggerRect.bottom + gap,\n left: triggerRect.left + (triggerRect.width - tooltipRect.width) / 2,\n },\n left: {\n top: triggerRect.top + (triggerRect.height - tooltipRect.height) / 2,\n left: triggerRect.left - tooltipRect.width - gap,\n },\n right: {\n top: triggerRect.top + (triggerRect.height - tooltipRect.height) / 2,\n left: triggerRect.right + gap,\n },\n }\n\n const fits = (pos: TooltipPosition): boolean => {\n const { top, left } = positions[pos]\n return (\n top >= 0 &&\n left >= 0 &&\n top + tooltipRect.height <= viewport.height &&\n left + tooltipRect.width <= viewport.width\n )\n }\n\n const fallbackOrder: Record<TooltipPosition, TooltipPosition[]> = {\n top: ['top', 'bottom', 'right', 'left'],\n bottom: ['bottom', 'top', 'right', 'left'],\n left: ['left', 'right', 'top', 'bottom'],\n right: ['right', 'left', 'top', 'bottom'],\n }\n\n const actualPosition = fallbackOrder[preferred].find(fits) ?? preferred\n const coords = positions[actualPosition]\n\n const pad = 8\n return {\n top: Math.max(pad, Math.min(coords.top, viewport.height - tooltipRect.height - pad)),\n left: Math.max(pad, Math.min(coords.left, viewport.width - tooltipRect.width - pad)),\n actualPosition,\n }\n}\n\nexport const Tooltip = forwardRef<HTMLDivElement, TooltipProps>(\n (\n {\n content,\n children,\n position = 'top',\n showDelay = 200,\n hideDelay = 0,\n disabled = false,\n arrow = true,\n className,\n },\n ref\n ) => {\n const [visible, setVisible] = useState(false)\n const [coords, setCoords] = useState<Coords | null>(null)\n const triggerRef = useRef<HTMLDivElement | null>(null)\n const tooltipRef = useRef<HTMLDivElement | null>(null)\n const showTimeout = useRef<ReturnType<typeof setTimeout> | undefined>(undefined)\n const hideTimeout = useRef<ReturnType<typeof setTimeout> | undefined>(undefined)\n const tooltipId = useId()\n\n const updatePosition = useCallback(() => {\n const trigger = triggerRef.current\n const tooltip = tooltipRef.current\n if (!trigger || !tooltip) return\n\n const triggerRect = trigger.getBoundingClientRect()\n const tooltipRect = tooltip.getBoundingClientRect()\n setCoords(getCoords(triggerRect, tooltipRect, position, 8))\n }, [position])\n\n const show = useCallback(() => {\n if (disabled) return\n if (hideTimeout.current !== undefined) clearTimeout(hideTimeout.current)\n showTimeout.current = setTimeout(() => {\n setVisible(true)\n }, showDelay)\n }, [disabled, showDelay])\n\n const hide = useCallback(() => {\n if (showTimeout.current !== undefined) clearTimeout(showTimeout.current)\n hideTimeout.current = setTimeout(() => {\n setVisible(false)\n setCoords(null)\n }, hideDelay)\n }, [hideDelay])\n\n useEffect(() => {\n if (visible) {\n const id = requestAnimationFrame(updatePosition)\n return () => cancelAnimationFrame(id)\n }\n }, [visible, updatePosition])\n\n useEffect(() => {\n if (!visible) return\n\n const handleUpdate = () => updatePosition()\n window.addEventListener('scroll', handleUpdate, true)\n window.addEventListener('resize', handleUpdate)\n return () => {\n window.removeEventListener('scroll', handleUpdate, true)\n window.removeEventListener('resize', handleUpdate)\n }\n }, [visible, updatePosition])\n\n useEffect(() => {\n return () => {\n if (showTimeout.current !== undefined) clearTimeout(showTimeout.current)\n if (hideTimeout.current !== undefined) clearTimeout(hideTimeout.current)\n }\n }, [])\n\n const arrowStyles: Record<TooltipPosition, string> = {\n top: 'bottom-0 left-1/2 -translate-x-1/2 translate-y-1/2 rotate-45',\n bottom: 'top-0 left-1/2 -translate-x-1/2 -translate-y-1/2 rotate-45',\n left: 'right-0 top-1/2 translate-x-1/2 -translate-y-1/2 rotate-45',\n right: 'left-0 top-1/2 -translate-x-1/2 -translate-y-1/2 rotate-45',\n }\n\n const actualPos = coords?.actualPosition ?? position\n\n const tooltipElement = visible\n ? createPortal(\n <div\n ref={tooltipRef}\n id={tooltipId}\n role=\"tooltip\"\n style={\n coords\n ? { top: coords.top, left: coords.left }\n : { top: -9999, left: -9999 }\n }\n className={cn(\n 'fixed z-50 pointer-events-none',\n 'max-w-xs px-3 py-1.5',\n 'text-xs font-medium text-[var(--color-white)]',\n 'rounded-lg',\n 'bg-[var(--glass-bg)] backdrop-blur-lg',\n 'border border-[var(--glass-border)]',\n coords\n ? [\n 'opacity-100 scale-100',\n 'motion-safe:transition-[opacity,transform] motion-safe:duration-150 motion-safe:ease-out',\n ]\n : 'opacity-0 scale-95',\n className\n )}\n >\n {content}\n {arrow && (\n <span\n aria-hidden\n className={cn(\n 'absolute w-2 h-2',\n 'bg-[var(--glass-bg)]',\n 'border border-[var(--glass-border)]',\n arrowStyles[actualPos],\n actualPos === 'top' && 'border-t-0 border-l-0',\n actualPos === 'bottom' && 'border-b-0 border-r-0',\n actualPos === 'left' && 'border-l-0 border-b-0',\n actualPos === 'right' && 'border-r-0 border-t-0'\n )}\n />\n )}\n </div>,\n document.body\n )\n : null\n\n return (\n <>\n <div\n ref={(node) => {\n triggerRef.current = node\n if (typeof ref === 'function') ref(node)\n else if (ref) ref.current = node\n }}\n onMouseEnter={show}\n onMouseLeave={hide}\n onFocus={show}\n onBlur={hide}\n aria-describedby={visible ? tooltipId : undefined}\n className=\"inline-flex\"\n >\n {children}\n </div>\n {tooltipElement}\n </>\n )\n }\n)\n\nTooltip.displayName = 'Tooltip'\n","import { type HTMLAttributes, type ReactNode } from 'react'\nimport { cn } from '../../utils/cn'\n\nexport interface CardProps extends HTMLAttributes<HTMLDivElement> {\n variant?: 'default' | 'glass' | 'interactive'\n padding?: 'none' | 'sm' | 'md' | 'lg'\n children: ReactNode\n}\n\nexport function Card({\n variant = 'default',\n padding = 'md',\n children,\n className,\n ...props\n}: CardProps) {\n const baseStyles = [\n 'rounded-2xl',\n 'border',\n 'transition-[background-color,border-color] duration-300 ease-out',\n ]\n\n const variants = {\n default: [\n 'bg-transparent',\n 'border-[var(--glass-border)]',\n ],\n glass: [\n 'bg-[var(--glass-bg)]',\n 'backdrop-blur-lg',\n 'border-[var(--glass-border)]',\n ],\n interactive: [\n 'bg-transparent',\n 'border-[var(--glass-border)]',\n 'hover:border-[var(--glass-highlight)]',\n 'hover:bg-[var(--glass-bg)]',\n 'cursor-pointer',\n 'gradient-border shine-sweep',\n ],\n }\n\n const paddings = {\n none: '',\n sm: 'p-3',\n md: 'p-5',\n lg: 'p-8',\n }\n\n return (\n <div\n className={cn(baseStyles, variants[variant], paddings[padding], className)}\n {...props}\n >\n {children}\n </div>\n )\n}\n\nexport interface CardHeaderProps extends HTMLAttributes<HTMLDivElement> {\n children: ReactNode\n}\n\nexport function CardHeader({ children, className, ...props }: CardHeaderProps) {\n return (\n <div className={cn('flex flex-col gap-1.5', className)} {...props}>\n {children}\n </div>\n )\n}\n\nexport interface CardTitleProps extends HTMLAttributes<HTMLHeadingElement> {\n children: ReactNode\n as?: 'h1' | 'h2' | 'h3' | 'h4'\n}\n\nexport function CardTitle({ children, as: Tag = 'h3', className, ...props }: CardTitleProps) {\n return (\n <Tag\n className={cn(\n 'font-display text-base font-semibold text-[var(--color-white)]',\n 'tracking-tight',\n className\n )}\n {...props}\n >\n {children}\n </Tag>\n )\n}\n\nexport interface CardDescriptionProps extends HTMLAttributes<HTMLParagraphElement> {\n children: ReactNode\n}\n\nexport function CardDescription({ children, className, ...props }: CardDescriptionProps) {\n return (\n <p\n className={cn(\n 'text-sm text-[var(--color-grey-400)]',\n 'line-clamp-2',\n className\n )}\n {...props}\n >\n {children}\n </p>\n )\n}\n\nexport interface CardContentProps extends HTMLAttributes<HTMLDivElement> {\n children: ReactNode\n}\n\nexport function CardContent({ children, className, ...props }: CardContentProps) {\n return (\n <div className={cn('mt-4', className)} {...props}>\n {children}\n </div>\n )\n}\n\nexport interface CardFooterProps extends HTMLAttributes<HTMLDivElement> {\n children: ReactNode\n}\n\nexport function CardFooter({ children, className, ...props }: CardFooterProps) {\n return (\n <div\n className={cn(\n 'mt-4 pt-4',\n 'border-t border-[var(--glass-border)]',\n 'flex items-center gap-3',\n className\n )}\n {...props}\n >\n {children}\n </div>\n )\n}\n","import { type AnchorHTMLAttributes, type ReactNode, forwardRef } from 'react'\nimport { cn } from '../../utils/cn'\n\nexport interface NavLinkProps extends AnchorHTMLAttributes<HTMLAnchorElement> {\n variant?: 'default' | 'underline' | 'pill'\n isActive?: boolean\n children: ReactNode\n}\n\nexport const NavLink = forwardRef<HTMLAnchorElement, NavLinkProps>(\n ({ variant = 'default', isActive = false, children, className, style, ...props }, ref) => {\n const baseStyles = [\n 'inline-flex items-center',\n 'text-sm font-normal',\n 'transition-[color,background-color,border-color,transform] duration-200 ease-out',\n 'focus-ring',\n 'hover:text-[--color-white]',\n ]\n\n const variants = {\n default: [],\n underline: ['relative', 'link-hover'],\n pill: [\n 'px-3 py-1.5',\n 'rounded-full',\n 'border',\n isActive\n ? 'bg-[--color-white] border-[--color-white]'\n : 'bg-transparent border-transparent hover:bg-[--glass-bg] hover:border-[--glass-border]',\n ],\n }\n\n const getColor = () => {\n if (variant === 'pill' && isActive) return 'var(--color-bg)'\n return 'var(--color-white)'\n }\n\n return (\n <a\n ref={ref}\n className={cn(baseStyles, variants[variant], className)}\n style={{ color: getColor(), ...style }}\n {...props}\n >\n {children}\n </a>\n )\n }\n)\n\nNavLink.displayName = 'NavLink'\n","import { useState, useCallback, type HTMLAttributes } from 'react'\nimport { cn } from '../../utils/cn'\nimport { Icon } from '../../atoms/Icon'\n\nexport interface CommandBoxProps extends Omit<HTMLAttributes<HTMLDivElement>, 'children'> {\n command: string\n variant?: 'default' | 'primary'\n showCopyButton?: boolean\n onCopy?: () => void\n}\n\nexport function CommandBox({\n command,\n variant = 'default',\n showCopyButton = true,\n onCopy,\n className,\n ...props\n}: CommandBoxProps) {\n const [copied, setCopied] = useState(false)\n\n const handleCopy = useCallback(async () => {\n try {\n await navigator.clipboard.writeText(command)\n setCopied(true)\n onCopy?.()\n setTimeout(() => setCopied(false), 2000)\n } catch (err) {\n console.error('Failed to copy:', err)\n }\n }, [command, onCopy])\n\n const baseStyles = [\n 'flex items-center justify-between gap-3',\n 'px-4 py-3',\n 'rounded-xl',\n 'border',\n 'backdrop-blur-lg',\n 'transition-[background-color,border-color] duration-200',\n ]\n\n const variants = {\n default: [\n 'bg-[rgba(255,255,255,0.03)]',\n 'border-[var(--glass-border)]',\n 'hover:bg-[rgba(255,255,255,0.06)]',\n 'hover:border-[var(--glass-highlight)]',\n ],\n primary: [\n 'bg-[var(--glass-bg)]',\n 'border-[var(--glass-highlight)]',\n 'hover:bg-[rgba(255,255,255,0.12)]',\n ],\n }\n\n return (\n <div className={cn(baseStyles, variants[variant], className)} {...props}>\n <code className=\"text-sm font-mono text-[var(--color-grey-300)] truncate\">{command}</code>\n {showCopyButton && (\n <>\n <button\n type=\"button\"\n onClick={handleCopy}\n className={cn(\n 'flex-shrink-0',\n 'p-2 rounded-lg',\n 'transition-[background-color,color,transform] duration-200',\n 'hover:scale-105 active:scale-92',\n copied\n ? 'bg-[var(--color-sage)] text-[var(--color-bg)]'\n : 'bg-[rgba(255,255,255,0.1)] text-[var(--color-grey-400)] hover:bg-[rgba(255,255,255,0.15)] hover:text-[var(--color-white)]'\n )}\n aria-label={copied ? 'Copied!' : 'Copy to clipboard'}\n >\n <Icon name={copied ? 'check' : 'copy'} size=\"sm\" />\n </button>\n {/* Live region for screen reader announcement */}\n <span className=\"sr-only\" role=\"status\" aria-live=\"polite\">\n {copied ? 'Copied to clipboard' : ''}\n </span>\n </>\n )}\n </div>\n )\n}\n","import { type ButtonHTMLAttributes } from 'react'\nimport { cn } from '../../utils/cn'\nimport { Icon } from '../../atoms/Icon'\n\nexport interface ThemeToggleProps extends Omit<ButtonHTMLAttributes<HTMLButtonElement>, 'children'> {\n theme: 'dark' | 'light'\n onToggle: () => void\n size?: 'sm' | 'md'\n}\n\nexport function ThemeToggle({\n theme,\n onToggle,\n size = 'md',\n className,\n ...props\n}: ThemeToggleProps) {\n const sizes = {\n sm: 'w-8 h-8',\n md: 'w-10 h-10',\n }\n\n const iconSizes = {\n sm: 'sm' as const,\n md: 'md' as const,\n }\n\n return (\n <button\n type=\"button\"\n onClick={onToggle}\n className={cn(\n 'inline-flex items-center justify-center',\n 'rounded-full',\n 'border border-[var(--glass-border)]',\n 'bg-transparent',\n 'text-[var(--color-grey-400)]',\n 'transition-all duration-200 ease-out',\n 'hover:border-[var(--glass-highlight)]',\n 'hover:bg-[var(--glass-bg)]',\n 'hover:text-[var(--color-white)]',\n 'hover:scale-105',\n 'active:scale-95',\n 'focus-ring',\n sizes[size],\n className\n )}\n aria-label={`Switch to ${theme === 'dark' ? 'light' : 'dark'} mode`}\n {...props}\n >\n <Icon name={theme === 'dark' ? 'sun' : 'moon'} size={iconSizes[size]} />\n </button>\n )\n}\n","import { type HTMLAttributes, type ReactNode, useEffect, useRef, useCallback } from 'react'\nimport { cn } from '../../utils/cn'\n\nexport interface MobileDrawerProps extends HTMLAttributes<HTMLDivElement> {\n /** Whether the drawer is open */\n isOpen: boolean\n /** Callback when drawer should close */\n onClose: () => void\n /** Drawer content */\n children: ReactNode\n /** Width of the drawer */\n width?: string\n /** Position of the drawer */\n position?: 'left' | 'right'\n /** Z-index for the drawer */\n zIndex?: number\n /** Accessible label for the drawer */\n ariaLabel?: string\n}\n\nexport function MobileDrawer({\n isOpen,\n onClose,\n children,\n width = '280px',\n position = 'right',\n zIndex = 50,\n ariaLabel = 'Navigation menu',\n className,\n ...props\n}: MobileDrawerProps) {\n const drawerRef = useRef<HTMLDivElement>(null)\n const previousActiveElement = useRef<HTMLElement | null>(null)\n\n // Lock body scroll when open\n useEffect(() => {\n if (isOpen) {\n document.body.style.overflow = 'hidden'\n } else {\n document.body.style.overflow = ''\n }\n return () => {\n document.body.style.overflow = ''\n }\n }, [isOpen])\n\n // Handle escape key\n useEffect(() => {\n const handleEscape = (e: KeyboardEvent) => {\n if (e.key === 'Escape' && isOpen) {\n onClose()\n }\n }\n document.addEventListener('keydown', handleEscape)\n return () => document.removeEventListener('keydown', handleEscape)\n }, [isOpen, onClose])\n\n // Focus management\n useEffect(() => {\n if (isOpen) {\n previousActiveElement.current = document.activeElement as HTMLElement\n // Focus first focusable element in drawer\n const firstFocusable = drawerRef.current?.querySelector<HTMLElement>(\n 'a[href], button:not([disabled]), input:not([disabled]), select:not([disabled]), textarea:not([disabled]), [tabindex]:not([tabindex=\"-1\"])'\n )\n firstFocusable?.focus()\n } else if (previousActiveElement.current) {\n previousActiveElement.current.focus()\n previousActiveElement.current = null\n }\n }, [isOpen])\n\n // Focus trap\n const handleKeyDown = useCallback((e: React.KeyboardEvent) => {\n if (e.key !== 'Tab' || !drawerRef.current) return\n\n const focusableElements = drawerRef.current.querySelectorAll<HTMLElement>(\n 'a[href], button:not([disabled]), input:not([disabled]), select:not([disabled]), textarea:not([disabled]), [tabindex]:not([tabindex=\"-1\"])'\n )\n const firstElement = focusableElements[0]\n const lastElement = focusableElements[focusableElements.length - 1]\n\n if (e.shiftKey && document.activeElement === firstElement) {\n e.preventDefault()\n lastElement?.focus()\n } else if (!e.shiftKey && document.activeElement === lastElement) {\n e.preventDefault()\n firstElement?.focus()\n }\n }, [])\n\n const translateClass =\n position === 'right'\n ? isOpen\n ? 'translate-x-0'\n : 'translate-x-full'\n : isOpen\n ? 'translate-x-0'\n : '-translate-x-full'\n\n const positionClass = position === 'right' ? 'right-0' : 'left-0'\n\n return (\n <div className={className}>\n {/* Backdrop overlay */}\n <div\n className={cn(\n 'fixed inset-0 bg-black/50 transition-opacity duration-300',\n isOpen ? 'opacity-100' : 'opacity-0 pointer-events-none'\n )}\n style={{ zIndex }}\n onClick={onClose}\n aria-hidden=\"true\"\n />\n\n {/* Drawer panel */}\n <div\n ref={drawerRef}\n role=\"dialog\"\n aria-modal={isOpen}\n aria-label={ariaLabel}\n aria-hidden={!isOpen}\n className={cn(\n 'mobile-menu-drawer',\n 'fixed top-0 h-full',\n 'transition-transform duration-300 ease-out',\n translateClass,\n positionClass\n )}\n style={{\n width,\n maxWidth: '80vw',\n zIndex: zIndex + 1,\n }}\n onKeyDown={handleKeyDown}\n {...props}\n >\n {children}\n </div>\n </div>\n )\n}\n","import { Component, type ReactNode } from 'react'\nimport { cn } from '../../utils/cn'\n\nexport interface ErrorBoundaryProps {\n /** Child components to wrap */\n children: ReactNode\n /** Custom fallback UI */\n fallback?: ReactNode\n /** Callback when error is caught */\n onError?: (error: Error, errorInfo: React.ErrorInfo) => void\n}\n\ninterface ErrorBoundaryState {\n hasError: boolean\n error: Error | null\n}\n\n/**\n * Error boundary component that catches JavaScript errors in child components\n * Displays fallback UI and optionally reports errors via callback\n */\nexport class ErrorBoundary extends Component<\n ErrorBoundaryProps,\n ErrorBoundaryState\n> {\n constructor(props: ErrorBoundaryProps) {\n super(props)\n this.state = { hasError: false, error: null }\n }\n\n static getDerivedStateFromError(error: Error): ErrorBoundaryState {\n return { hasError: true, error }\n }\n\n componentDidCatch(error: Error, errorInfo: React.ErrorInfo): void {\n this.props.onError?.(error, errorInfo)\n }\n\n handleRetry = (): void => {\n this.setState({ hasError: false, error: null })\n }\n\n render(): ReactNode {\n if (this.state.hasError) {\n if (this.props.fallback) {\n return this.props.fallback\n }\n\n return (\n <div className=\"min-h-[400px] flex items-center justify-center p-8\">\n <div className=\"text-center max-w-md\">\n <div className=\"w-16 h-16 mx-auto mb-6 rounded-full bg-[var(--color-coral)]/10 flex items-center justify-center\">\n <svg\n className=\"w-8 h-8 text-[var(--color-coral)]\"\n fill=\"none\"\n viewBox=\"0 0 24 24\"\n stroke=\"currentColor\"\n >\n <path\n strokeLinecap=\"round\"\n strokeLinejoin=\"round\"\n strokeWidth={2}\n d=\"M12 9v2m0 4h.01m-6.938 4h13.856c1.54 0 2.502-1.667 1.732-3L13.732 4c-.77-1.333-2.694-1.333-3.464 0L3.34 16c-.77 1.333.192 3 1.732 3z\"\n />\n </svg>\n </div>\n <h2 className=\"text-xl font-semibold text-[var(--color-white)] mb-2\">\n Something went wrong\n </h2>\n <p className=\"text-[var(--color-grey-400)] mb-6\">\n We encountered an unexpected error. Please try again.\n </p>\n <button\n onClick={this.handleRetry}\n className={cn(\n 'px-6 py-3 rounded-full font-medium',\n 'bg-[var(--glass-bg)] border border-[var(--glass-border)]',\n 'hover:bg-[var(--glass-highlight)] transition-colors'\n )}\n >\n Try Again\n </button>\n </div>\n </div>\n )\n }\n\n return this.props.children\n }\n}\n\nexport interface ErrorFallbackProps {\n /** Error title */\n title?: string\n /** Error message */\n message?: string\n /** Show reload button */\n showReload?: boolean\n /** Show home link */\n showHomeLink?: boolean\n /** Home URL (default: /) */\n homeUrl?: string\n /** Additional class names */\n className?: string\n}\n\n/**\n * Standalone error fallback component for full-page errors\n */\nexport function ErrorFallback({\n title = 'Page Error',\n message = 'This page encountered an error and could not be displayed.',\n showReload = true,\n showHomeLink = true,\n homeUrl = '/',\n className,\n}: ErrorFallbackProps) {\n return (\n <div\n className={cn(\n 'min-h-screen flex items-center justify-center p-8',\n className\n )}\n >\n <div className=\"text-center max-w-md\">\n <div className=\"w-20 h-20 mx-auto mb-8 rounded-full bg-[var(--color-coral)]/10 flex items-center justify-center\">\n <svg\n className=\"w-10 h-10 text-[var(--color-coral)]\"\n fill=\"none\"\n viewBox=\"0 0 24 24\"\n stroke=\"currentColor\"\n >\n <path\n strokeLinecap=\"round\"\n strokeLinejoin=\"round\"\n strokeWidth={2}\n d=\"M12 9v2m0 4h.01m-6.938 4h13.856c1.54 0 2.502-1.667 1.732-3L13.732 4c-.77-1.333-2.694-1.333-3.464 0L3.34 16c-.77 1.333.192 3 1.732 3z\"\n />\n </svg>\n </div>\n <h1 className=\"text-2xl font-semibold text-[var(--color-white)] mb-3\">\n {title}\n </h1>\n <p className=\"text-[var(--color-grey-400)] mb-8\">{message}</p>\n <div className=\"flex gap-4 justify-center\">\n {showReload && (\n <button\n onClick={() => window.location.reload()}\n className={cn(\n 'px-6 py-3 rounded-full font-medium',\n 'bg-[var(--glass-bg)] border border-[var(--glass-border)]',\n 'hover:bg-[var(--glass-highlight)] transition-colors'\n )}\n >\n Reload Page\n </button>\n )}\n {showHomeLink && (\n <a\n href={homeUrl}\n className={cn(\n 'px-6 py-3 rounded-full font-medium',\n 'bg-[var(--glass-bg)] border border-[var(--glass-border)]',\n 'hover:bg-[var(--glass-highlight)] transition-colors'\n )}\n >\n Go Home\n </a>\n )}\n </div>\n </div>\n </div>\n )\n}\n","import { ShapeType, PatternType } from '../../atoms/Shape'\n\nexport interface ShapeLayer {\n type: ShapeType\n color: string\n pattern?: PatternType\n patternColors?: string[]\n size: number\n offsetX?: number\n offsetY?: number\n rotation?: number\n opacity?: number\n}\n\nexport type CompositePreset =\n | 'rainbow-arc'\n | 'cluster'\n | 'stack'\n | 'flower'\n | 'bear'\n | 'snail'\n | 'orbit'\n | 'checkerboard-stack'\n\nexport const presets: Record<CompositePreset, ShapeLayer[]> = {\n 'rainbow-arc': [\n { type: 'arc', color: '#FF6B9D', size: 80, offsetX: 0, offsetY: 0 },\n { type: 'arc', color: '#FF7F50', size: 68, offsetX: 0, offsetY: 6 },\n { type: 'arc', color: '#FFD93D', size: 56, offsetX: 0, offsetY: 12 },\n { type: 'arc', color: '#2ECC71', size: 44, offsetX: 0, offsetY: 18 },\n { type: 'arc', color: '#5DADE2', size: 32, offsetX: 0, offsetY: 24 },\n { type: 'arc', color: '#A78BFA', size: 20, offsetX: 0, offsetY: 30 },\n ],\n\n cluster: [\n { type: 'circle', color: '#2ECC71', size: 48, offsetX: 0, offsetY: 0 },\n { type: 'circle', color: '#FF6B9D', size: 36, offsetX: 30, offsetY: -10 },\n { type: 'diamond', color: '#FFD93D', size: 28, offsetX: -20, offsetY: 25 },\n { type: 'triangle', color: '#5DADE2', size: 32, offsetX: 35, offsetY: 20 },\n ],\n\n stack: [\n { type: 'square', color: '#8B7355', size: 56, offsetX: 0, offsetY: 0, rotation: 5 },\n { type: 'square', color: '#FFAB91', size: 48, offsetX: 4, offsetY: -8, rotation: -3 },\n { type: 'square', color: '#A78BFA', size: 40, offsetX: 8, offsetY: -16, rotation: 2 },\n ],\n\n flower: [\n { type: 'circle', color: '#FF6B9D', size: 32, offsetX: 0, offsetY: -20 },\n { type: 'circle', color: '#FF6B9D', size: 32, offsetX: 19, offsetY: -6 },\n { type: 'circle', color: '#FF6B9D', size: 32, offsetX: 12, offsetY: 16 },\n { type: 'circle', color: '#FF6B9D', size: 32, offsetX: -12, offsetY: 16 },\n { type: 'circle', color: '#FF6B9D', size: 32, offsetX: -19, offsetY: -6 },\n { type: 'circle', color: '#FFD93D', size: 24, offsetX: 0, offsetY: 0 },\n ],\n\n bear: [\n // Ears\n { type: 'circle', color: '#8B7355', size: 24, offsetX: -20, offsetY: -24 },\n { type: 'circle', color: '#8B7355', size: 24, offsetX: 20, offsetY: -24 },\n { type: 'circle', color: '#FFAB91', size: 12, offsetX: -20, offsetY: -24 },\n { type: 'circle', color: '#FFAB91', size: 12, offsetX: 20, offsetY: -24 },\n // Face\n { type: 'circle', color: '#8B7355', size: 56, offsetX: 0, offsetY: 0 },\n // Muzzle\n { type: 'circle', color: '#FFAB91', size: 28, offsetX: 0, offsetY: 8 },\n ],\n\n snail: [\n // Body\n { type: 'pill', color: '#2ECC71', size: 48, offsetX: -10, offsetY: 15 },\n // Shell layers\n { type: 'semicircle', color: '#922B3E', size: 44, offsetX: 10, offsetY: -5, rotation: -30 },\n { type: 'semicircle', color: '#FF6B9D', size: 32, offsetX: 14, offsetY: -2, rotation: -30 },\n { type: 'circle', color: '#FFD93D', size: 16, offsetX: 18, offsetY: 2 },\n ],\n\n orbit: [\n { type: 'circle', color: '#A78BFA', size: 32, offsetX: 0, offsetY: 0 },\n { type: 'circle', color: '#FF6B9D', size: 16, offsetX: 35, offsetY: 0 },\n { type: 'circle', color: '#2ECC71', size: 12, offsetX: -30, offsetY: 20 },\n { type: 'diamond', color: '#FFD93D', size: 14, offsetX: 10, offsetY: -35 },\n ],\n\n 'checkerboard-stack': [\n {\n type: 'square',\n color: '#FFAB91',\n pattern: 'checkered',\n patternColors: ['#FFAB91', '#8B7355'],\n size: 48,\n offsetX: 0,\n offsetY: 0,\n },\n { type: 'circle', color: '#2ECC71', size: 24, offsetX: 30, offsetY: -15 },\n { type: 'diamond', color: '#922B3E', size: 20, offsetX: -20, offsetY: -25 },\n ],\n}\n","import { Shape } from '../../atoms/Shape'\nimport { cn } from '../../utils/cn'\nimport { presets, CompositePreset, ShapeLayer } from './presets'\n\nexport interface CompositeShapeProps {\n preset?: CompositePreset\n layers?: ShapeLayer[]\n scale?: number\n className?: string\n style?: React.CSSProperties\n}\n\nexport function CompositeShape({\n preset,\n layers,\n scale = 1,\n className,\n style,\n}: CompositeShapeProps) {\n const shapeLayers = layers || (preset ? presets[preset] : [])\n\n if (shapeLayers.length === 0) {\n return null\n }\n\n // Calculate bounding box for the composition\n const bounds = shapeLayers.reduce(\n (acc, layer) => {\n const halfSize = layer.size / 2\n const x = layer.offsetX || 0\n const y = layer.offsetY || 0\n return {\n minX: Math.min(acc.minX, x - halfSize),\n maxX: Math.max(acc.maxX, x + halfSize),\n minY: Math.min(acc.minY, y - halfSize),\n maxY: Math.max(acc.maxY, y + halfSize),\n }\n },\n { minX: 0, maxX: 0, minY: 0, maxY: 0 }\n )\n\n const width = (bounds.maxX - bounds.minX) * scale\n const height = (bounds.maxY - bounds.minY) * scale\n const centerX = -bounds.minX\n const centerY = -bounds.minY\n\n return (\n <div\n className={cn('relative inline-block', className)}\n style={{\n width,\n height,\n ...style,\n }}\n >\n {shapeLayers.map((layer, index) => {\n const x = ((layer.offsetX || 0) + centerX) * scale\n const y = ((layer.offsetY || 0) + centerY) * scale\n const size = layer.size * scale\n\n return (\n <div\n key={index}\n className=\"absolute\"\n style={{\n left: x,\n top: y,\n transform: 'translate(-50%, -50%)',\n }}\n >\n <Shape\n type={layer.type}\n size={size}\n color={layer.color}\n pattern={layer.pattern}\n patternColors={layer.patternColors}\n rotation={layer.rotation}\n opacity={layer.opacity}\n />\n </div>\n )\n })}\n </div>\n )\n}\n","import {\n forwardRef,\n useEffect,\n useRef,\n useCallback,\n useId,\n useState,\n type HTMLAttributes,\n type ReactNode,\n} from 'react'\nimport { createPortal } from 'react-dom'\nimport { cn } from '../../utils/cn'\n\nexport type ModalSize = 'sm' | 'md' | 'lg' | 'full'\n\nexport interface ModalProps extends Omit<HTMLAttributes<HTMLDivElement>, 'role'> {\n /** Whether the modal is open */\n isOpen: boolean\n /** Callback when modal should close */\n onClose: () => void\n /** Modal content */\n children: ReactNode\n /** Size of the modal panel */\n size?: ModalSize\n /** Whether clicking the backdrop closes the modal */\n closeOnBackdropClick?: boolean\n /** Whether pressing Escape closes the modal */\n closeOnEscape?: boolean\n /** Accessible label for the modal (used if no Modal.Header is provided) */\n ariaLabel?: string\n}\n\nconst FOCUSABLE_SELECTOR =\n 'a[href], button:not([disabled]), input:not([disabled]), select:not([disabled]), textarea:not([disabled]), [tabindex]:not([tabindex=\"-1\"])'\n\nconst sizeClasses: Record<ModalSize, string> = {\n sm: 'max-w-[400px]',\n md: 'max-w-[560px]',\n lg: 'max-w-[720px]',\n full: 'max-w-none w-screen h-[100dvh] !rounded-none',\n}\n\nexport const Modal = forwardRef<HTMLDivElement, ModalProps>(\n (\n {\n isOpen,\n onClose,\n children,\n size = 'md',\n closeOnBackdropClick = true,\n closeOnEscape = true,\n ariaLabel,\n className,\n ...props\n },\n ref\n ) => {\n const internalRef = useRef<HTMLDivElement>(null)\n const panelRef = (ref as React.RefObject<HTMLDivElement>) || internalRef\n const previousActiveElement = useRef<HTMLElement | null>(null)\n const labelId = useId()\n const descriptionId = useId()\n const [mounted, setMounted] = useState(false)\n const [visible, setVisible] = useState(false)\n\n // Mount/unmount with animation\n useEffect(() => {\n if (isOpen) {\n setMounted(true)\n // Trigger enter animation on next frame\n requestAnimationFrame(() => {\n requestAnimationFrame(() => {\n setVisible(true)\n })\n })\n } else {\n setVisible(false)\n const timer = setTimeout(() => setMounted(false), 200)\n return () => clearTimeout(timer)\n }\n }, [isOpen])\n\n // Lock body scroll when open\n useEffect(() => {\n if (isOpen) {\n const scrollY = window.scrollY\n document.body.style.overflow = 'hidden'\n document.body.style.position = 'fixed'\n document.body.style.top = `-${scrollY}px`\n document.body.style.width = '100%'\n } else {\n const top = document.body.style.top\n document.body.style.overflow = ''\n document.body.style.position = ''\n document.body.style.top = ''\n document.body.style.width = ''\n if (top) {\n window.scrollTo(0, parseInt(top, 10) * -1)\n }\n }\n return () => {\n document.body.style.overflow = ''\n document.body.style.position = ''\n document.body.style.top = ''\n document.body.style.width = ''\n }\n }, [isOpen])\n\n // Escape key handler\n useEffect(() => {\n if (!closeOnEscape || !isOpen) return\n const handleEscape = (e: KeyboardEvent) => {\n if (e.key === 'Escape') {\n e.stopPropagation()\n onClose()\n }\n }\n document.addEventListener('keydown', handleEscape)\n return () => document.removeEventListener('keydown', handleEscape)\n }, [isOpen, onClose, closeOnEscape])\n\n // Focus management\n useEffect(() => {\n if (isOpen) {\n previousActiveElement.current = document.activeElement as HTMLElement\n // Focus first focusable element in panel\n const panel = panelRef.current\n if (panel) {\n const firstFocusable = panel.querySelector<HTMLElement>(FOCUSABLE_SELECTOR)\n if (firstFocusable) {\n firstFocusable.focus()\n } else {\n panel.focus()\n }\n }\n } else if (previousActiveElement.current) {\n previousActiveElement.current.focus()\n previousActiveElement.current = null\n }\n }, [isOpen, panelRef])\n\n // Focus trap\n const handleKeyDown = useCallback(\n (e: React.KeyboardEvent) => {\n if (e.key !== 'Tab' || !panelRef.current) return\n\n const focusableElements =\n panelRef.current.querySelectorAll<HTMLElement>(FOCUSABLE_SELECTOR)\n if (focusableElements.length === 0) {\n e.preventDefault()\n return\n }\n\n const firstElement = focusableElements[0]\n const lastElement = focusableElements[focusableElements.length - 1]\n\n if (e.shiftKey && document.activeElement === firstElement) {\n e.preventDefault()\n lastElement?.focus()\n } else if (!e.shiftKey && document.activeElement === lastElement) {\n e.preventDefault()\n firstElement?.focus()\n }\n },\n [panelRef]\n )\n\n // Backdrop click handler\n const handleBackdropClick = useCallback(\n (e: React.MouseEvent) => {\n if (closeOnBackdropClick && e.target === e.currentTarget) {\n onClose()\n }\n },\n [closeOnBackdropClick, onClose]\n )\n\n if (!mounted) return null\n\n return createPortal(\n <div\n className={cn(\n 'fixed inset-0 z-50 flex items-center justify-center',\n // Backdrop\n 'transition-[background-color,backdrop-filter] duration-200 ease-out',\n visible\n ? 'bg-black/60 backdrop-blur-sm'\n : 'bg-black/0 backdrop-blur-none',\n // Reduced motion: instant transitions\n 'motion-reduce:transition-none'\n )}\n onClick={handleBackdropClick}\n aria-hidden=\"true\"\n >\n {/* Panel */}\n <div\n ref={panelRef}\n role=\"dialog\"\n aria-modal=\"true\"\n aria-labelledby={ariaLabel ? undefined : labelId}\n aria-label={ariaLabel}\n aria-describedby={descriptionId}\n tabIndex={-1}\n className={cn(\n 'relative w-full mx-4',\n sizeClasses[size],\n // Glass panel styling\n 'bg-[var(--color-bg-secondary)] border border-[var(--glass-border)]',\n 'backdrop-blur-lg',\n size !== 'full' && 'rounded-2xl',\n // Focus ring\n 'focus-ring',\n // Animation\n 'transition-[opacity,transform] duration-200 ease-out',\n visible\n ? 'opacity-100 scale-100 translate-y-0'\n : 'opacity-0 scale-95 translate-y-2',\n // Reduced motion: no scale/translate, instant\n 'motion-reduce:transition-none motion-reduce:transform-none',\n className\n )}\n onKeyDown={handleKeyDown}\n // Pass through the label/description IDs via data attributes for sub-components\n data-modal-label-id={labelId}\n data-modal-description-id={descriptionId}\n {...props}\n >\n {children}\n </div>\n </div>,\n document.body\n )\n }\n)\n\nModal.displayName = 'Modal'\n\n// --- Compound sub-components ---\n\nexport interface ModalHeaderProps extends HTMLAttributes<HTMLDivElement> {\n children: ReactNode\n}\n\nexport function ModalHeader({ children, className, ...props }: ModalHeaderProps) {\n return (\n <div\n className={cn(\n 'px-6 pt-6 pb-0',\n 'flex items-start justify-between gap-4',\n className\n )}\n {...props}\n >\n {children}\n </div>\n )\n}\n\nModalHeader.displayName = 'ModalHeader'\n\nexport interface ModalTitleProps extends HTMLAttributes<HTMLHeadingElement> {\n children: ReactNode\n as?: 'h1' | 'h2' | 'h3' | 'h4'\n}\n\nexport function ModalTitle({ children, as: Tag = 'h2', className, id, ...props }: ModalTitleProps) {\n return (\n <Tag\n id={id}\n className={cn(\n 'font-display text-lg font-semibold text-[var(--color-white)]',\n 'tracking-tight',\n className\n )}\n {...props}\n >\n {children}\n </Tag>\n )\n}\n\nModalTitle.displayName = 'ModalTitle'\n\nexport interface ModalDescriptionProps extends HTMLAttributes<HTMLParagraphElement> {\n children: ReactNode\n}\n\nexport function ModalDescription({ children, className, id, ...props }: ModalDescriptionProps) {\n return (\n <p\n id={id}\n className={cn(\n 'text-sm text-[var(--color-grey-400)]',\n 'mt-1',\n className\n )}\n {...props}\n >\n {children}\n </p>\n )\n}\n\nModalDescription.displayName = 'ModalDescription'\n\nexport interface ModalBodyProps extends HTMLAttributes<HTMLDivElement> {\n children: ReactNode\n}\n\nexport function ModalBody({ children, className, ...props }: ModalBodyProps) {\n return (\n <div\n className={cn(\n 'px-6 py-4',\n 'overflow-y-auto',\n className\n )}\n {...props}\n >\n {children}\n </div>\n )\n}\n\nModalBody.displayName = 'ModalBody'\n\nexport interface ModalFooterProps extends HTMLAttributes<HTMLDivElement> {\n children: ReactNode\n}\n\nexport function ModalFooter({ children, className, ...props }: ModalFooterProps) {\n return (\n <div\n className={cn(\n 'px-6 pb-6 pt-0',\n 'border-t border-[var(--glass-border)]',\n 'mt-2 pt-4',\n 'flex items-center justify-end gap-3',\n className\n )}\n {...props}\n >\n {children}\n </div>\n )\n}\n\nModalFooter.displayName = 'ModalFooter'\n\nexport interface ModalCloseButtonProps extends HTMLAttributes<HTMLButtonElement> {\n /** Accessible label for the close button */\n ariaLabel?: string\n}\n\nexport function ModalCloseButton({\n ariaLabel = 'Close',\n className,\n onClick,\n ...props\n}: ModalCloseButtonProps) {\n return (\n <button\n type=\"button\"\n aria-label={ariaLabel}\n className={cn(\n 'inline-flex items-center justify-center',\n 'w-8 h-8 rounded-lg',\n 'text-[var(--color-grey-400)]',\n 'hover:text-[var(--color-white)] hover:bg-[var(--glass-bg)]',\n 'transition-colors duration-200',\n 'focus-ring',\n 'motion-reduce:transition-none',\n className\n )}\n onClick={onClick}\n {...props}\n >\n <svg\n width=\"16\"\n height=\"16\"\n viewBox=\"0 0 16 16\"\n fill=\"none\"\n stroke=\"currentColor\"\n strokeWidth=\"2\"\n strokeLinecap=\"round\"\n >\n <path d=\"M4 4l8 8M12 4l-8 8\" />\n </svg>\n </button>\n )\n}\n\nModalCloseButton.displayName = 'ModalCloseButton'\n","import { useState, useEffect, useCallback, useMemo } from 'react'\n\n/**\n * Hook to detect user's motion preference with SSR safety\n * Returns true if user prefers reduced motion\n *\n * Note: For animations, consider using this to:\n * - Disable or reduce animation duration\n * - Use fade instead of transform animations\n * - Skip parallax and auto-playing animations\n */\nexport function useReducedMotion(): boolean {\n const getInitialState = useCallback(() => {\n if (typeof window === 'undefined') {\n // Default to reduced motion for SSR (safer, more accessible)\n return true\n }\n return window.matchMedia('(prefers-reduced-motion: reduce)').matches\n }, [])\n\n const [prefersReducedMotion, setPrefersReducedMotion] = useState(getInitialState)\n\n useEffect(() => {\n if (typeof window === 'undefined') {\n return\n }\n\n const mediaQuery = window.matchMedia('(prefers-reduced-motion: reduce)')\n\n // Update on mount for SSR hydration\n setPrefersReducedMotion(mediaQuery.matches)\n\n const handleChange = (event: MediaQueryListEvent) => {\n setPrefersReducedMotion(event.matches)\n }\n\n mediaQuery.addEventListener('change', handleChange)\n return () => mediaQuery.removeEventListener('change', handleChange)\n }, [])\n\n return prefersReducedMotion\n}\n\n/**\n * Returns animation configuration based on reduced motion preference\n * Provides sensible defaults that can be spread into animation props\n */\nexport function useMotionConfig() {\n const prefersReducedMotion = useReducedMotion()\n\n return useMemo(\n () => ({\n /** Whether reduced motion is preferred */\n isReduced: prefersReducedMotion,\n\n /** Suggested animation duration in ms */\n duration: prefersReducedMotion ? 0 : 300,\n\n /** Suggested animation duration as CSS value */\n durationCss: prefersReducedMotion ? '0ms' : '300ms',\n\n /** Suggested easing function */\n easing: prefersReducedMotion ? 'linear' : 'cubic-bezier(0.4, 0, 0.2, 1)',\n\n /** Whether to disable transform animations */\n disableTransform: prefersReducedMotion,\n\n /** Whether to disable parallax effects */\n disableParallax: prefersReducedMotion,\n\n /** Whether to disable auto-playing animations */\n disableAutoPlay: prefersReducedMotion,\n\n /** Suggested transition config for Framer Motion / GSAP */\n transition: prefersReducedMotion\n ? { duration: 0 }\n : { duration: 0.3, ease: [0.4, 0, 0.2, 1] },\n }),\n [prefersReducedMotion]\n )\n}\n\n/**\n * Returns true if user prefers high contrast\n */\nexport function usePrefersHighContrast(): boolean {\n const getInitialState = useCallback(() => {\n if (typeof window === 'undefined') {\n return false\n }\n return window.matchMedia('(prefers-contrast: high)').matches\n }, [])\n\n const [prefersHighContrast, setPrefersHighContrast] = useState(getInitialState)\n\n useEffect(() => {\n if (typeof window === 'undefined') {\n return\n }\n\n const mediaQuery = window.matchMedia('(prefers-contrast: high)')\n setPrefersHighContrast(mediaQuery.matches)\n\n const handleChange = (event: MediaQueryListEvent) => {\n setPrefersHighContrast(event.matches)\n }\n\n mediaQuery.addEventListener('change', handleChange)\n return () => mediaQuery.removeEventListener('change', handleChange)\n }, [])\n\n return prefersHighContrast\n}\n","import {\n forwardRef,\n createContext,\n useContext,\n useState,\n useCallback,\n useRef,\n useEffect,\n useId,\n type HTMLAttributes,\n type ButtonHTMLAttributes,\n type ReactNode,\n type KeyboardEvent,\n} from 'react'\nimport { cn } from '../../utils/cn'\nimport { useReducedMotion } from '../../hooks/useReducedMotion'\n\ntype TabsVariant = 'underline' | 'pill'\n\ninterface TabsContextValue {\n activeValue: string\n setActiveValue: (value: string) => void\n variant: TabsVariant\n baseId: string\n registerTab: (value: string, element: HTMLButtonElement | null) => void\n getTabElements: () => Map<string, HTMLButtonElement>\n}\n\nconst TabsContext = createContext<TabsContextValue | null>(null)\n\nfunction useTabsContext() {\n const context = useContext(TabsContext)\n if (!context) {\n throw new Error('Tabs compound components must be used within a <Tabs> parent')\n }\n return context\n}\n\n// --- Tabs Root ---\n\nexport interface TabsProps extends Omit<HTMLAttributes<HTMLDivElement>, 'onChange'> {\n /** The controlled active tab value */\n value?: string\n /** Callback when active tab changes */\n onChange?: (value: string) => void\n /** The default active tab value for uncontrolled mode */\n defaultValue?: string\n /** Visual variant */\n variant?: TabsVariant\n children: ReactNode\n}\n\nexport const Tabs = forwardRef<HTMLDivElement, TabsProps>(\n ({ value, onChange, defaultValue, variant = 'underline', children, className, ...props }, ref) => {\n const [internalValue, setInternalValue] = useState(defaultValue ?? '')\n const tabElementsRef = useRef<Map<string, HTMLButtonElement>>(new Map())\n const baseId = useId()\n\n const activeValue = value !== undefined ? value : internalValue\n\n const setActiveValue = useCallback(\n (newValue: string) => {\n if (value === undefined) {\n setInternalValue(newValue)\n }\n onChange?.(newValue)\n },\n [value, onChange]\n )\n\n const registerTab = useCallback((tabValue: string, element: HTMLButtonElement | null) => {\n if (element) {\n tabElementsRef.current.set(tabValue, element)\n } else {\n tabElementsRef.current.delete(tabValue)\n }\n }, [])\n\n const getTabElements = useCallback(() => tabElementsRef.current, [])\n\n return (\n <TabsContext.Provider value={{ activeValue, setActiveValue, variant, baseId, registerTab, getTabElements }}>\n <div ref={ref} className={cn('flex flex-col', className)} {...props}>\n {children}\n </div>\n </TabsContext.Provider>\n )\n }\n)\n\nTabs.displayName = 'Tabs'\n\n// --- TabsList ---\n\nexport interface TabsListProps extends HTMLAttributes<HTMLDivElement> {\n /** Enable glass morphism background */\n glass?: boolean\n children: ReactNode\n}\n\nexport const TabsList = forwardRef<HTMLDivElement, TabsListProps>(\n ({ glass = false, children, className, ...props }, ref) => {\n const { variant, activeValue, getTabElements } = useTabsContext()\n const listRef = useRef<HTMLDivElement>(null)\n const indicatorRef = useRef<HTMLDivElement>(null)\n const prefersReducedMotion = useReducedMotion()\n\n // Merge forwarded ref with internal ref\n const mergedRef = useCallback(\n (node: HTMLDivElement | null) => {\n (listRef as React.MutableRefObject<HTMLDivElement | null>).current = node\n if (typeof ref === 'function') ref(node)\n else if (ref) (ref as React.MutableRefObject<HTMLDivElement | null>).current = node\n },\n [ref]\n )\n\n // Animate indicator position\n useEffect(() => {\n const indicator = indicatorRef.current\n const list = listRef.current\n if (!indicator || !list) return\n\n const tabs = getTabElements()\n const activeTab = tabs.get(activeValue)\n if (!activeTab) {\n indicator.style.opacity = '0'\n return\n }\n\n const listRect = list.getBoundingClientRect()\n const tabRect = activeTab.getBoundingClientRect()\n\n const left = tabRect.left - listRect.left\n const width = tabRect.width\n\n indicator.style.opacity = '1'\n indicator.style.transform = `translateX(${left}px)`\n indicator.style.width = `${width}px`\n\n if (variant === 'pill') {\n indicator.style.height = `${tabRect.height}px`\n }\n }, [activeValue, variant, getTabElements])\n\n const isUnderline = variant === 'underline'\n const isPill = variant === 'pill'\n\n return (\n <div\n ref={mergedRef}\n role=\"tablist\"\n className={cn(\n 'relative flex items-center gap-1',\n isUnderline && 'border-b border-[var(--glass-border)]',\n isPill && [\n 'p-1 rounded-full',\n 'bg-[var(--glass-bg)]',\n 'border border-[var(--glass-border)]',\n ],\n glass && 'backdrop-blur-lg',\n className\n )}\n {...props}\n >\n {/* Animated indicator */}\n <div\n ref={indicatorRef}\n aria-hidden\n className={cn(\n 'absolute left-0',\n prefersReducedMotion\n ? 'transition-none'\n : 'transition-[transform,width,opacity] duration-200 ease-out',\n isUnderline && [\n 'bottom-0 h-[2px]',\n 'bg-[var(--color-white)]',\n ],\n isPill && [\n 'top-1 rounded-full',\n 'bg-[var(--color-white)]',\n ],\n )}\n style={{ opacity: 0, width: 0 }}\n />\n {children}\n </div>\n )\n }\n)\n\nTabsList.displayName = 'TabsList'\n\n// --- TabsTab ---\n\nexport interface TabsTabProps extends ButtonHTMLAttributes<HTMLButtonElement> {\n /** Unique value identifying this tab */\n value: string\n children: ReactNode\n}\n\nexport const TabsTab = forwardRef<HTMLButtonElement, TabsTabProps>(\n ({ value, children, className, onKeyDown, ...props }, ref) => {\n const { activeValue, setActiveValue, variant, baseId, registerTab, getTabElements } = useTabsContext()\n const internalRef = useRef<HTMLButtonElement | null>(null)\n const isActive = activeValue === value\n\n const mergedRef = useCallback(\n (node: HTMLButtonElement | null) => {\n internalRef.current = node\n registerTab(value, node)\n if (typeof ref === 'function') ref(node)\n else if (ref) (ref as React.MutableRefObject<HTMLButtonElement | null>).current = node\n },\n [ref, registerTab, value]\n )\n\n const handleKeyDown = useCallback(\n (e: KeyboardEvent<HTMLButtonElement>) => {\n onKeyDown?.(e)\n if (e.defaultPrevented) return\n\n const tabs = getTabElements()\n const tabValues = Array.from(tabs.keys())\n const currentIndex = tabValues.indexOf(value)\n\n let targetIndex: number\n\n switch (e.key) {\n case 'ArrowRight':\n targetIndex = (currentIndex + 1) % tabValues.length\n break\n case 'ArrowLeft':\n targetIndex = (currentIndex - 1 + tabValues.length) % tabValues.length\n break\n case 'Home':\n targetIndex = 0\n break\n case 'End':\n targetIndex = tabValues.length - 1\n break\n default:\n return\n }\n\n e.preventDefault()\n const targetValue = tabValues[targetIndex]\n const targetElement = tabs.get(targetValue)\n if (targetElement) {\n targetElement.focus()\n setActiveValue(targetValue)\n }\n },\n [onKeyDown, getTabElements, value, setActiveValue]\n )\n\n const isUnderline = variant === 'underline'\n const isPill = variant === 'pill'\n\n return (\n <button\n ref={mergedRef}\n role=\"tab\"\n type=\"button\"\n id={`${baseId}-tab-${value}`}\n aria-selected={isActive}\n aria-controls={`${baseId}-panel-${value}`}\n tabIndex={isActive ? 0 : -1}\n onClick={() => setActiveValue(value)}\n onKeyDown={handleKeyDown}\n className={cn(\n 'relative z-10',\n 'inline-flex items-center justify-center',\n 'text-sm font-medium',\n 'focus-ring',\n 'transition-colors duration-200 ease-out',\n 'cursor-pointer',\n 'whitespace-nowrap',\n isUnderline && [\n 'px-3 py-2',\n isActive\n ? 'text-[var(--color-white)]'\n : 'text-[var(--color-grey-400)] hover:text-[var(--color-white)]',\n ],\n isPill && [\n 'px-3 py-1.5',\n 'rounded-full',\n isActive\n ? 'text-[var(--color-bg)]'\n : 'text-[var(--color-grey-400)] hover:text-[var(--color-white)]',\n ],\n className\n )}\n {...props}\n >\n {children}\n </button>\n )\n }\n)\n\nTabsTab.displayName = 'TabsTab'\n\n// --- TabsPanel ---\n\nexport interface TabsPanelProps extends HTMLAttributes<HTMLDivElement> {\n /** The tab value this panel corresponds to */\n value: string\n children: ReactNode\n}\n\nexport const TabsPanel = forwardRef<HTMLDivElement, TabsPanelProps>(\n ({ value, children, className, ...props }, ref) => {\n const { activeValue, baseId } = useTabsContext()\n const isActive = activeValue === value\n\n if (!isActive) return null\n\n return (\n <div\n ref={ref}\n role=\"tabpanel\"\n id={`${baseId}-panel-${value}`}\n aria-labelledby={`${baseId}-tab-${value}`}\n tabIndex={0}\n className={cn('mt-2 focus-ring', className)}\n {...props}\n >\n {children}\n </div>\n )\n }\n)\n\nTabsPanel.displayName = 'TabsPanel'\n","import {\n forwardRef,\n type HTMLAttributes,\n type ReactNode,\n useEffect,\n useRef,\n useState,\n useCallback,\n} from 'react'\nimport { cn } from '../../utils/cn'\nimport { Icon } from '../../atoms/Icon'\nimport type { IconName } from '../../atoms/Icon'\n\nexport type ToastVariant = 'default' | 'success' | 'error' | 'warning' | 'info'\n\nexport type ToastPosition =\n | 'top-right'\n | 'top-left'\n | 'top-center'\n | 'bottom-right'\n | 'bottom-left'\n | 'bottom-center'\n\nexport interface ToastData {\n id: string\n variant: ToastVariant\n title?: string\n description?: string\n duration?: number\n icon?: ReactNode\n}\n\nexport interface ToastProps extends Omit<HTMLAttributes<HTMLDivElement>, 'title'> {\n variant?: ToastVariant\n title?: string\n description?: string\n duration?: number\n icon?: ReactNode\n onDismiss?: () => void\n open?: boolean\n}\n\nconst variantIcons: Record<ToastVariant, IconName> = {\n default: 'bell',\n success: 'success',\n error: 'error',\n warning: 'warning',\n info: 'info',\n}\n\nconst variantStyles: Record<ToastVariant, string[]> = {\n default: [\n 'border-[var(--glass-border)]',\n ],\n success: [\n 'border-[var(--color-sage)]/30',\n ],\n error: [\n 'border-[var(--color-coral)]/30',\n ],\n warning: [\n 'border-[var(--color-gold)]/30',\n ],\n info: [\n 'border-[var(--color-mint)]/30',\n ],\n}\n\nconst variantIconColors: Record<ToastVariant, string> = {\n default: 'text-[var(--color-grey-400)]',\n success: 'text-[var(--color-sage)]',\n error: 'text-[var(--color-coral)]',\n warning: 'text-[var(--color-gold)]',\n info: 'text-[var(--color-mint)]',\n}\n\nexport const Toast = forwardRef<HTMLDivElement, ToastProps>(\n (\n {\n variant = 'default',\n title,\n description,\n duration = 5000,\n icon,\n onDismiss,\n open = true,\n className,\n ...props\n },\n ref\n ) => {\n const [isVisible, setIsVisible] = useState(open)\n const [isExiting, setIsExiting] = useState(false)\n const timerRef = useRef<ReturnType<typeof setTimeout> | null>(null)\n\n const handleDismiss = useCallback(() => {\n setIsExiting(true)\n setTimeout(() => {\n setIsVisible(false)\n onDismiss?.()\n }, 200)\n }, [onDismiss])\n\n useEffect(() => {\n if (!open) {\n handleDismiss()\n return\n }\n setIsVisible(true)\n setIsExiting(false)\n }, [open, handleDismiss])\n\n useEffect(() => {\n if (duration > 0 && isVisible && !isExiting) {\n timerRef.current = setTimeout(handleDismiss, duration)\n return () => {\n if (timerRef.current) clearTimeout(timerRef.current)\n }\n }\n }, [duration, isVisible, isExiting, handleDismiss])\n\n if (!isVisible) return null\n\n const iconElement = icon ?? (\n <Icon\n name={variantIcons[variant]}\n size=\"sm\"\n className={variantIconColors[variant]}\n />\n )\n\n return (\n <div\n ref={ref}\n role=\"alert\"\n aria-live=\"polite\"\n className={cn(\n // Base\n 'pointer-events-auto',\n 'w-[360px] max-w-[calc(100vw-2rem)]',\n 'rounded-2xl border',\n 'bg-[var(--glass-bg)] backdrop-blur-lg',\n 'p-4',\n // Animation\n 'motion-safe:transition-[transform,opacity] motion-safe:duration-200 motion-safe:ease-out',\n isExiting\n ? 'opacity-0 translate-x-2'\n : 'opacity-100 translate-x-0 motion-safe:animate-[toastSlideIn_0.3s_cubic-bezier(0.4,0,0.2,1)]',\n // Variant border\n variantStyles[variant],\n className\n )}\n {...props}\n >\n <div className=\"flex items-start gap-3\">\n <span className=\"mt-0.5 shrink-0\">{iconElement}</span>\n <div className=\"flex-1 min-w-0\">\n {title && (\n <p className=\"text-sm font-medium text-[var(--color-white)]\">\n {title}\n </p>\n )}\n {description && (\n <p className={cn(\n 'text-sm text-[var(--color-grey-400)]',\n title && 'mt-1'\n )}>\n {description}\n </p>\n )}\n </div>\n <button\n onClick={handleDismiss}\n className={cn(\n 'shrink-0 mt-0.5',\n 'rounded-full p-1',\n 'text-[var(--color-grey-400)]',\n 'hover:text-[var(--color-white)] hover:bg-[var(--glass-bg)]',\n 'transition-colors duration-150',\n 'focus-ring',\n )}\n aria-label=\"Dismiss notification\"\n >\n <Icon name=\"x\" size=\"xs\" />\n </button>\n </div>\n </div>\n )\n }\n)\n\nToast.displayName = 'Toast'\n\nexport interface ToastContainerProps extends HTMLAttributes<HTMLDivElement> {\n position?: ToastPosition\n children?: ReactNode\n}\n\nconst positionStyles: Record<ToastPosition, string> = {\n 'top-right': 'top-0 right-0 items-end',\n 'top-left': 'top-0 left-0 items-start',\n 'top-center': 'top-0 left-1/2 -translate-x-1/2 items-center',\n 'bottom-right': 'bottom-0 right-0 items-end',\n 'bottom-left': 'bottom-0 left-0 items-start',\n 'bottom-center': 'bottom-0 left-1/2 -translate-x-1/2 items-center',\n}\n\nexport function ToastContainer({\n position = 'top-right',\n children,\n className,\n ...props\n}: ToastContainerProps) {\n return (\n <div\n className={cn(\n 'fixed z-50',\n 'flex flex-col gap-3',\n 'p-4',\n 'pointer-events-none',\n positionStyles[position],\n className\n )}\n {...props}\n >\n {children}\n </div>\n )\n}\n","import {\n forwardRef,\n useState,\n useRef,\n useEffect,\n useCallback,\n useMemo,\n useId,\n createContext,\n useContext,\n type ReactNode,\n type HTMLAttributes,\n type KeyboardEvent,\n type MouseEvent,\n} from 'react'\nimport { createPortal } from 'react-dom'\nimport { cn } from '../../utils/cn'\n\n/* ------------------------------------------------------------------\n Types\n ------------------------------------------------------------------ */\n\nexport interface DropdownOption {\n value: string\n label: string\n disabled?: boolean\n}\n\nexport interface DropdownProps {\n /** Options to display */\n options: DropdownOption[]\n /** Controlled value (single-select) */\n value?: string\n /** Controlled values (multi-select) */\n values?: string[]\n /** Default value for uncontrolled single-select */\n defaultValue?: string\n /** Default values for uncontrolled multi-select */\n defaultValues?: string[]\n /** Called when selection changes (single-select) */\n onChange?: (value: string) => void\n /** Called when selection changes (multi-select) */\n onMultiChange?: (values: string[]) => void\n /** Enable multi-select mode */\n multi?: boolean\n /** Enable search/filter input */\n searchable?: boolean\n /** Placeholder text when nothing is selected */\n placeholder?: string\n /** Search input placeholder */\n searchPlaceholder?: string\n /** Disabled state */\n disabled?: boolean\n /** Size variant */\n size?: 'sm' | 'md' | 'lg'\n /** Visual variant */\n variant?: 'default' | 'glass'\n /** Additional class names for the trigger */\n className?: string\n /** Additional class names for the menu */\n menuClassName?: string\n /** Use portal rendering for overflow contexts */\n portal?: boolean\n /** Children for compound API (overrides options-based rendering) */\n children?: ReactNode\n}\n\n/* ------------------------------------------------------------------\n Context for compound API\n ------------------------------------------------------------------ */\n\ninterface DropdownContextValue {\n isOpen: boolean\n activeIndex: number\n selectedValues: Set<string>\n multi: boolean\n listboxId: string\n triggerId: string\n toggle: () => void\n close: () => void\n select: (value: string) => void\n setActiveIndex: (index: number) => void\n registerItem: (value: string, index: number) => void\n}\n\nconst DropdownContext = createContext<DropdownContextValue | null>(null)\n\nfunction useDropdownContext() {\n const ctx = useContext(DropdownContext)\n if (!ctx) throw new Error('Dropdown compound components must be used within <Dropdown>')\n return ctx\n}\n\n/* ------------------------------------------------------------------\n Hooks\n ------------------------------------------------------------------ */\n\nfunction useClickOutside(\n refs: React.RefObject<HTMLElement | null>[],\n handler: () => void\n) {\n useEffect(() => {\n function onPointerDown(e: PointerEvent) {\n const target = e.target as Node\n if (refs.every((r) => r.current && !r.current.contains(target))) {\n handler()\n }\n }\n document.addEventListener('pointerdown', onPointerDown)\n return () => document.removeEventListener('pointerdown', onPointerDown)\n }, [refs, handler])\n}\n\nfunction usePositioning(\n triggerRef: React.RefObject<HTMLElement | null>,\n isOpen: boolean\n) {\n const [style, setStyle] = useState<React.CSSProperties>({})\n\n useEffect(() => {\n if (!isOpen || !triggerRef.current) return\n\n function update() {\n const trigger = triggerRef.current\n if (!trigger) return\n const rect = trigger.getBoundingClientRect()\n setStyle({\n position: 'fixed',\n top: rect.bottom + 4,\n left: rect.left,\n width: rect.width,\n zIndex: 9999,\n })\n }\n\n update()\n window.addEventListener('scroll', update, true)\n window.addEventListener('resize', update)\n return () => {\n window.removeEventListener('scroll', update, true)\n window.removeEventListener('resize', update)\n }\n }, [isOpen, triggerRef])\n\n return style\n}\n\n/* ------------------------------------------------------------------\n Sub-components\n ------------------------------------------------------------------ */\n\nexport interface DropdownTriggerProps extends HTMLAttributes<HTMLButtonElement> {\n children?: ReactNode\n}\n\nexport const DropdownTrigger = forwardRef<HTMLButtonElement, DropdownTriggerProps>(\n ({ children, className, onClick, ...props }, ref) => {\n const ctx = useDropdownContext()\n\n const handleClick = (e: MouseEvent<HTMLButtonElement>) => {\n onClick?.(e)\n ctx.toggle()\n }\n\n return (\n <button\n ref={ref}\n id={ctx.triggerId}\n type=\"button\"\n role=\"combobox\"\n aria-expanded={ctx.isOpen}\n aria-haspopup=\"listbox\"\n aria-controls={ctx.isOpen ? ctx.listboxId : undefined}\n className={className}\n onClick={handleClick}\n {...props}\n >\n {children}\n </button>\n )\n }\n)\nDropdownTrigger.displayName = 'Dropdown.Trigger'\n\nexport interface DropdownMenuProps extends HTMLAttributes<HTMLUListElement> {\n children?: ReactNode\n}\n\nexport const DropdownMenu = forwardRef<HTMLUListElement, DropdownMenuProps>(\n ({ children, className, ...props }, ref) => {\n const ctx = useDropdownContext()\n\n if (!ctx.isOpen) return null\n\n return (\n <ul\n ref={ref}\n id={ctx.listboxId}\n role=\"listbox\"\n aria-multiselectable={ctx.multi || undefined}\n tabIndex={-1}\n className={className}\n {...props}\n >\n {children}\n </ul>\n )\n }\n)\nDropdownMenu.displayName = 'Dropdown.Menu'\n\nexport interface DropdownItemProps extends HTMLAttributes<HTMLLIElement> {\n value: string\n disabled?: boolean\n children?: ReactNode\n}\n\nexport const DropdownItem = forwardRef<HTMLLIElement, DropdownItemProps>(\n ({ value, disabled = false, children, className, onClick, ...props }, ref) => {\n const ctx = useDropdownContext()\n const isSelected = ctx.selectedValues.has(value)\n\n const handleClick = (e: MouseEvent<HTMLLIElement>) => {\n if (disabled) return\n onClick?.(e)\n ctx.select(value)\n }\n\n return (\n <li\n ref={ref}\n role=\"option\"\n aria-selected={isSelected}\n aria-disabled={disabled || undefined}\n data-value={value}\n className={className}\n onClick={handleClick}\n {...props}\n >\n {children ?? value}\n </li>\n )\n }\n)\nDropdownItem.displayName = 'Dropdown.Item'\n\n/* ------------------------------------------------------------------\n Chevron icon (inline SVG to avoid dependency)\n ------------------------------------------------------------------ */\n\nfunction ChevronIcon({ open, className }: { open: boolean; className?: string }) {\n return (\n <svg\n width=\"16\"\n height=\"16\"\n viewBox=\"0 0 16 16\"\n fill=\"none\"\n className={cn(\n 'transition-transform duration-200 shrink-0',\n open && 'rotate-180',\n className\n )}\n aria-hidden=\"true\"\n >\n <path\n d=\"M4 6L8 10L12 6\"\n stroke=\"currentColor\"\n strokeWidth=\"1.5\"\n strokeLinecap=\"round\"\n strokeLinejoin=\"round\"\n />\n </svg>\n )\n}\n\nfunction SearchIcon() {\n return (\n <svg\n width=\"14\"\n height=\"14\"\n viewBox=\"0 0 16 16\"\n fill=\"none\"\n className=\"shrink-0\"\n aria-hidden=\"true\"\n >\n <circle cx=\"7\" cy=\"7\" r=\"5\" stroke=\"currentColor\" strokeWidth=\"1.5\" />\n <path d=\"M11 11L14 14\" stroke=\"currentColor\" strokeWidth=\"1.5\" strokeLinecap=\"round\" />\n </svg>\n )\n}\n\nfunction CheckIcon() {\n return (\n <svg\n width=\"14\"\n height=\"14\"\n viewBox=\"0 0 16 16\"\n fill=\"none\"\n className=\"shrink-0\"\n aria-hidden=\"true\"\n >\n <path\n d=\"M3.5 8.5L6.5 11.5L12.5 4.5\"\n stroke=\"currentColor\"\n strokeWidth=\"1.5\"\n strokeLinecap=\"round\"\n strokeLinejoin=\"round\"\n />\n </svg>\n )\n}\n\n/* ------------------------------------------------------------------\n Main Dropdown component\n ------------------------------------------------------------------ */\n\nexport const Dropdown = Object.assign(\n forwardRef<HTMLDivElement, DropdownProps>(\n (\n {\n options = [],\n value,\n values,\n defaultValue,\n defaultValues,\n onChange,\n onMultiChange,\n multi = false,\n searchable = false,\n placeholder = 'Select...',\n searchPlaceholder = 'Search...',\n disabled = false,\n size = 'md',\n variant = 'default',\n className,\n menuClassName,\n portal = false,\n children,\n },\n ref\n ) => {\n const uid = useId()\n const triggerId = `dropdown-trigger-${uid}`\n const listboxId = `dropdown-listbox-${uid}`\n\n // State\n const [isOpen, setIsOpen] = useState(false)\n const [search, setSearch] = useState('')\n const [activeIndex, setActiveIndex] = useState(-1)\n\n // Selection state (controlled or uncontrolled)\n const [internalValue, setInternalValue] = useState<string | undefined>(defaultValue)\n const [internalValues, setInternalValues] = useState<string[]>(defaultValues ?? [])\n\n const isControlled = multi ? values !== undefined : value !== undefined\n const selectedValue = useMemo(\n () => (isControlled ? value : internalValue),\n [isControlled, value, internalValue]\n )\n const selectedMultiValues = useMemo(\n () => (isControlled ? (values ?? []) : internalValues),\n [isControlled, values, internalValues]\n )\n const selectedSet = useMemo(\n () => new Set(multi ? selectedMultiValues : selectedValue ? [selectedValue] : []),\n [multi, selectedMultiValues, selectedValue]\n )\n\n // Refs\n const triggerRef = useRef<HTMLButtonElement>(null)\n const menuRef = useRef<HTMLUListElement>(null)\n const searchRef = useRef<HTMLInputElement>(null)\n const containerRef = useRef<HTMLDivElement>(null)\n const itemMapRef = useRef<Map<number, string>>(new Map())\n\n // Filtered options\n const filteredOptions = useMemo(() => {\n if (!search) return options\n const lower = search.toLowerCase()\n return options.filter((o) => o.label.toLowerCase().includes(lower))\n }, [options, search])\n\n // Position for portal mode\n const portalStyle = usePositioning(triggerRef, isOpen && portal)\n\n // Close handler\n const close = useCallback(() => {\n setIsOpen(false)\n setSearch('')\n setActiveIndex(-1)\n triggerRef.current?.focus()\n }, [])\n\n // Toggle\n const toggle = useCallback(() => {\n if (disabled) return\n setIsOpen((prev) => {\n if (prev) {\n setSearch('')\n setActiveIndex(-1)\n }\n return !prev\n })\n }, [disabled])\n\n // Selection\n const select = useCallback(\n (val: string) => {\n if (multi) {\n const next = selectedSet.has(val)\n ? selectedMultiValues.filter((v) => v !== val)\n : [...selectedMultiValues, val]\n if (!isControlled) setInternalValues(next)\n onMultiChange?.(next)\n } else {\n if (!isControlled) setInternalValue(val)\n onChange?.(val)\n close()\n }\n },\n [multi, selectedSet, selectedMultiValues, isControlled, onChange, onMultiChange, close]\n )\n\n // Register item (for compound API)\n const registerItem = useCallback((val: string, index: number) => {\n itemMapRef.current.set(index, val)\n }, [])\n\n // Click outside\n useClickOutside([containerRef, menuRef], () => {\n if (isOpen) close()\n })\n\n // Focus search input when menu opens\n useEffect(() => {\n if (isOpen && searchable) {\n requestAnimationFrame(() => searchRef.current?.focus())\n }\n }, [isOpen, searchable])\n\n // Keyboard handler\n const handleKeyDown = useCallback(\n (e: KeyboardEvent<HTMLDivElement>) => {\n if (disabled) return\n\n switch (e.key) {\n case 'ArrowDown': {\n e.preventDefault()\n if (!isOpen) {\n setIsOpen(true)\n setActiveIndex(0)\n return\n }\n setActiveIndex((prev) => {\n const max = filteredOptions.length - 1\n let next = prev + 1\n while (next <= max && filteredOptions[next]?.disabled) next++\n return next > max ? prev : next\n })\n break\n }\n case 'ArrowUp': {\n e.preventDefault()\n if (!isOpen) {\n setIsOpen(true)\n setActiveIndex(filteredOptions.length - 1)\n return\n }\n setActiveIndex((prev) => {\n let next = prev - 1\n while (next >= 0 && filteredOptions[next]?.disabled) next--\n return next < 0 ? prev : next\n })\n break\n }\n case 'Enter':\n case ' ': {\n if (!isOpen) {\n e.preventDefault()\n setIsOpen(true)\n setActiveIndex(0)\n return\n }\n // Allow space in search input\n if (e.key === ' ' && searchable && document.activeElement === searchRef.current) {\n return\n }\n e.preventDefault()\n if (activeIndex >= 0 && filteredOptions[activeIndex] && !filteredOptions[activeIndex].disabled) {\n select(filteredOptions[activeIndex].value)\n }\n break\n }\n case 'Escape': {\n e.preventDefault()\n close()\n break\n }\n case 'Home': {\n if (isOpen) {\n e.preventDefault()\n const first = filteredOptions.findIndex((o) => !o.disabled)\n if (first >= 0) setActiveIndex(first)\n }\n break\n }\n case 'End': {\n if (isOpen) {\n e.preventDefault()\n for (let i = filteredOptions.length - 1; i >= 0; i--) {\n if (!filteredOptions[i].disabled) {\n setActiveIndex(i)\n break\n }\n }\n }\n break\n }\n case 'Tab': {\n if (isOpen) close()\n break\n }\n default: {\n // Type-ahead: single character jumps to matching option\n if (!searchable && e.key.length === 1 && !e.ctrlKey && !e.metaKey && !e.altKey) {\n e.preventDefault()\n if (!isOpen) setIsOpen(true)\n const char = e.key.toLowerCase()\n const startIndex = activeIndex + 1\n const reordered = [\n ...filteredOptions.slice(startIndex),\n ...filteredOptions.slice(0, startIndex),\n ]\n const match = reordered.findIndex(\n (o) => !o.disabled && o.label.toLowerCase().startsWith(char)\n )\n if (match >= 0) {\n setActiveIndex((match + startIndex) % filteredOptions.length)\n }\n }\n }\n }\n },\n [disabled, isOpen, filteredOptions, activeIndex, searchable, select, close]\n )\n\n // Scroll active item into view\n useEffect(() => {\n if (!isOpen || activeIndex < 0 || !menuRef.current) return\n const activeEl = menuRef.current.querySelector(`[data-index=\"${activeIndex}\"]`)\n activeEl?.scrollIntoView({ block: 'nearest' })\n }, [isOpen, activeIndex])\n\n // Size styles\n const triggerSizes = {\n sm: 'h-8 px-3 text-xs',\n md: 'h-10 px-4 text-sm',\n lg: 'h-12 px-5 text-base',\n }\n\n const itemSizes = {\n sm: 'px-3 py-1.5 text-xs',\n md: 'px-4 py-2 text-sm',\n lg: 'px-5 py-2.5 text-base',\n }\n\n // Variant styles\n const triggerVariants = {\n default: [\n 'bg-transparent',\n 'border-[var(--glass-border)]',\n 'hover:border-[var(--glass-highlight)]',\n ],\n glass: [\n 'bg-[var(--glass-bg)]',\n 'backdrop-blur-lg',\n 'border-[var(--glass-border)]',\n 'hover:bg-[rgba(255,255,255,0.08)]',\n ],\n }\n\n // Display value\n const displayValue = useMemo(() => {\n if (multi) {\n if (selectedMultiValues.length === 0) return null\n const labels = selectedMultiValues\n .map((v) => options.find((o) => o.value === v)?.label ?? v)\n if (labels.length <= 2) return labels.join(', ')\n return `${labels[0]}, ${labels[1]} +${labels.length - 2}`\n }\n if (!selectedValue) return null\n return options.find((o) => o.value === selectedValue)?.label ?? selectedValue\n }, [multi, selectedMultiValues, selectedValue, options])\n\n // Active descendant\n const activeDescendant =\n isOpen && activeIndex >= 0\n ? `${listboxId}-option-${activeIndex}`\n : undefined\n\n // Context value\n const contextValue: DropdownContextValue = {\n isOpen,\n activeIndex,\n selectedValues: selectedSet,\n multi,\n listboxId,\n triggerId,\n toggle,\n close,\n select,\n setActiveIndex,\n registerItem,\n }\n\n // If children are provided, use compound API\n if (children) {\n return (\n <DropdownContext.Provider value={contextValue}>\n <div ref={ref} onKeyDown={handleKeyDown}>\n {children}\n </div>\n </DropdownContext.Provider>\n )\n }\n\n // Options-based rendering\n const menuContent = (\n <ul\n ref={menuRef}\n id={listboxId}\n role=\"listbox\"\n aria-multiselectable={multi || undefined}\n aria-label=\"Options\"\n tabIndex={-1}\n className={cn(\n 'py-1 max-h-60 overflow-y-auto',\n 'bg-[var(--glass-bg)] backdrop-blur-xl',\n 'border border-[var(--glass-border)]',\n 'rounded-xl',\n 'scrollbar-hidden',\n 'animate-in',\n menuClassName\n )}\n style={portal ? portalStyle : undefined}\n >\n {searchable && (\n <li role=\"presentation\" className=\"px-2 py-1.5 sticky top-0 bg-[var(--glass-bg)] backdrop-blur-xl z-10\">\n <div className=\"flex items-center gap-2 px-2 py-1.5 rounded-lg border border-[var(--glass-border)] bg-transparent\">\n <span className=\"text-[var(--color-grey-400)]\">\n <SearchIcon />\n </span>\n <input\n ref={searchRef}\n type=\"text\"\n role=\"searchbox\"\n aria-label=\"Filter options\"\n value={search}\n onChange={(e) => {\n setSearch(e.target.value)\n setActiveIndex(0)\n }}\n placeholder={searchPlaceholder}\n className={cn(\n 'w-full bg-transparent',\n 'text-[var(--color-white)]',\n 'placeholder:text-[var(--color-grey-600)]',\n 'focus:outline-none',\n 'text-xs'\n )}\n />\n </div>\n </li>\n )}\n {filteredOptions.length === 0 && (\n <li\n role=\"presentation\"\n className=\"px-4 py-3 text-center text-xs text-[var(--color-grey-600)]\"\n >\n No options found\n </li>\n )}\n {filteredOptions.map((option, index) => {\n const isSelected = selectedSet.has(option.value)\n const isActive = index === activeIndex\n\n return (\n <li\n key={option.value}\n id={`${listboxId}-option-${index}`}\n role=\"option\"\n aria-selected={isSelected}\n aria-disabled={option.disabled || undefined}\n data-index={index}\n data-value={option.value}\n className={cn(\n 'flex items-center gap-2 cursor-pointer',\n 'transition-[background-color,color] duration-150',\n itemSizes[size],\n isActive && 'bg-[var(--glass-highlight)]',\n isSelected && !isActive && 'text-[var(--color-white)]',\n !isSelected && !isActive && 'text-[var(--color-grey-300)]',\n option.disabled && 'opacity-40 cursor-not-allowed pointer-events-none',\n !option.disabled && !isActive && 'hover:bg-[var(--glass-bg)]'\n )}\n onClick={() => {\n if (!option.disabled) select(option.value)\n }}\n onMouseEnter={() => setActiveIndex(index)}\n >\n {multi && (\n <span\n className={cn(\n 'w-4 h-4 rounded border flex items-center justify-center shrink-0',\n 'transition-[background-color,border-color] duration-150',\n isSelected\n ? 'bg-[var(--color-white)] border-[var(--color-white)] text-[var(--color-bg)]'\n : 'border-[var(--glass-border)]'\n )}\n >\n {isSelected && <CheckIcon />}\n </span>\n )}\n <span className=\"truncate\">{option.label}</span>\n {!multi && isSelected && (\n <span className=\"ml-auto text-[var(--color-white)]\">\n <CheckIcon />\n </span>\n )}\n </li>\n )\n })}\n </ul>\n )\n\n return (\n <div\n ref={(node) => {\n // Merge refs\n ;(containerRef as React.MutableRefObject<HTMLDivElement | null>).current = node\n if (typeof ref === 'function') ref(node)\n else if (ref) (ref as React.MutableRefObject<HTMLDivElement | null>).current = node\n }}\n className=\"relative inline-block w-full\"\n onKeyDown={handleKeyDown}\n >\n {/* Trigger */}\n <button\n ref={triggerRef}\n id={triggerId}\n type=\"button\"\n role=\"combobox\"\n aria-expanded={isOpen}\n aria-haspopup=\"listbox\"\n aria-controls={isOpen ? listboxId : undefined}\n aria-activedescendant={activeDescendant}\n disabled={disabled}\n className={cn(\n 'w-full inline-flex items-center justify-between gap-2',\n 'border rounded-xl',\n 'transition-[border-color,background-color] duration-200',\n 'focus-ring',\n 'disabled:opacity-50 disabled:cursor-not-allowed',\n triggerSizes[size],\n triggerVariants[variant],\n isOpen && 'border-[var(--color-white)]',\n className\n )}\n onClick={toggle}\n >\n <span\n className={cn(\n 'truncate text-left',\n displayValue\n ? 'text-[var(--color-white)]'\n : 'text-[var(--color-grey-600)]'\n )}\n >\n {displayValue ?? placeholder}\n </span>\n <ChevronIcon open={isOpen} className=\"text-[var(--color-grey-400)]\" />\n </button>\n\n {/* Menu */}\n {isOpen && (\n portal\n ? createPortal(menuContent, document.body)\n : <div className=\"absolute left-0 right-0 mt-1 z-50\">{menuContent}</div>\n )}\n </div>\n )\n }\n ),\n {\n Trigger: DropdownTrigger,\n Menu: DropdownMenu,\n Item: DropdownItem,\n }\n)\n\nDropdown.displayName = 'Dropdown'\n","import { type HTMLAttributes, type ReactNode, useState, useCallback, useEffect, useRef } from 'react'\nimport { cn } from '../../utils/cn'\nimport { NavLink } from '../../molecules/NavLink'\nimport { ThemeToggle } from '../../molecules/ThemeToggle'\nimport { MobileDrawer } from '../../molecules/MobileDrawer'\n\nexport interface NavItem {\n label: string\n href: string\n isActive?: boolean\n external?: boolean\n}\n\nexport interface NavProps extends HTMLAttributes<HTMLElement> {\n logo?: ReactNode\n logoHref?: string\n items?: NavItem[]\n theme?: 'dark' | 'light'\n onThemeToggle?: () => void\n showThemeToggle?: boolean\n fixed?: boolean\n hideOnScroll?: boolean\n}\n\nexport function Nav({\n logo,\n logoHref = '/',\n items = [],\n theme = 'dark',\n onThemeToggle,\n showThemeToggle = true,\n fixed = false,\n hideOnScroll = false,\n className,\n ...props\n}: NavProps) {\n const [isMenuOpen, setIsMenuOpen] = useState(false)\n const [navOffset, setNavOffset] = useState(0)\n const lastScrollY = useRef(0)\n const navRef = useRef<HTMLElement>(null)\n\n const toggleMenu = useCallback(() => {\n setIsMenuOpen((prev) => !prev)\n }, [])\n\n const closeMenu = useCallback(() => {\n setIsMenuOpen(false)\n }, [])\n\n useEffect(() => {\n if (!hideOnScroll) return\n\n const handleScroll = () => {\n const currentScrollY = window.scrollY\n const delta = currentScrollY - lastScrollY.current\n const navHeight = navRef.current?.offsetHeight || 80\n\n // Calculate new offset (clamped between -navHeight and 0)\n setNavOffset((prev) => {\n const newOffset = prev - delta\n return Math.max(-navHeight, Math.min(0, newOffset))\n })\n\n lastScrollY.current = currentScrollY\n }\n\n window.addEventListener('scroll', handleScroll, { passive: true })\n return () => window.removeEventListener('scroll', handleScroll)\n }, [hideOnScroll])\n\n return (\n <>\n <nav\n ref={navRef}\n className={cn(\n 'glass-nav',\n 'py-4 md:py-6',\n fixed && 'fixed left-0 right-0 z-50',\n className\n )}\n style={hideOnScroll ? { top: navOffset } : undefined}\n {...props}\n >\n <div className=\"mx-auto max-w-6xl px-6 md:px-12 flex items-center justify-between\">\n {/* Logo */}\n <a\n href={logoHref}\n className=\"text-base md:text-lg font-display font-semibold hover:opacity-70 transition-opacity\"\n style={{ color: 'var(--color-accent)' }}\n >\n {logo}\n </a>\n\n {/* Desktop Navigation */}\n <div className=\"hidden md:flex md:items-center md:gap-6\">\n {items.map((item) => (\n <NavLink\n key={item.href}\n href={item.href}\n isActive={item.isActive}\n variant=\"underline\"\n {...(item.external && { target: '_blank', rel: 'noopener noreferrer' })}\n >\n {item.label}\n </NavLink>\n ))}\n {showThemeToggle && onThemeToggle && (\n <ThemeToggle theme={theme} onToggle={onThemeToggle} size=\"sm\" />\n )}\n </div>\n\n {/* Mobile Menu Button */}\n <button\n onClick={toggleMenu}\n className=\"md:hidden p-2 min-w-[44px] min-h-[44px] flex items-center justify-center rounded-lg transition-opacity duration-200 hover:opacity-70\"\n style={{ color: 'var(--color-grey-200)' }}\n aria-label={isMenuOpen ? 'Close menu' : 'Open menu'}\n aria-expanded={isMenuOpen}\n >\n <svg\n xmlns=\"http://www.w3.org/2000/svg\"\n width=\"24\"\n height=\"24\"\n viewBox=\"0 0 24 24\"\n fill=\"none\"\n stroke=\"currentColor\"\n strokeWidth=\"2\"\n strokeLinecap=\"round\"\n strokeLinejoin=\"round\"\n className=\"transition-transform duration-300\"\n aria-hidden=\"true\"\n >\n {isMenuOpen ? (\n <>\n <path d=\"M18 6L6 18\" />\n <path d=\"M6 6l12 12\" />\n </>\n ) : (\n <>\n <path d=\"M4 6h16\" />\n <path d=\"M4 12h16\" />\n <path d=\"M4 18h16\" />\n </>\n )}\n </svg>\n </button>\n </div>\n </nav>\n\n {/* Mobile Drawer */}\n <MobileDrawer\n isOpen={isMenuOpen}\n onClose={closeMenu}\n position=\"right\"\n width=\"280px\"\n zIndex={55}\n className=\"md:hidden\"\n >\n <div className=\"flex flex-col h-full pt-20 px-6 pb-8\">\n <div className=\"flex flex-col gap-2\">\n <a\n href={logoHref}\n onClick={closeMenu}\n className=\"mobile-nav-link text-lg py-4 px-4 rounded-xl transition-all duration-200 min-h-[52px] flex items-center\"\n style={{ color: 'var(--color-white)' }}\n >\n Home\n </a>\n {items.map((item) => (\n <a\n key={item.href}\n href={item.href}\n onClick={closeMenu}\n className=\"mobile-nav-link text-lg py-4 px-4 rounded-xl transition-all duration-200 min-h-[52px] flex items-center\"\n style={{ color: 'var(--color-white)' }}\n {...(item.external && { target: '_blank', rel: 'noopener noreferrer' })}\n >\n {item.label}\n {item.external && (\n <svg\n xmlns=\"http://www.w3.org/2000/svg\"\n width=\"16\"\n height=\"16\"\n viewBox=\"0 0 24 24\"\n fill=\"none\"\n stroke=\"currentColor\"\n strokeWidth=\"2\"\n strokeLinecap=\"round\"\n strokeLinejoin=\"round\"\n className=\"ml-2 opacity-50\"\n aria-hidden=\"true\"\n >\n <path d=\"M18 13v6a2 2 0 0 1-2 2H5a2 2 0 0 1-2-2V8a2 2 0 0 1 2-2h6\" />\n <polyline points=\"15 3 21 3 21 9\" />\n <line x1=\"10\" y1=\"14\" x2=\"21\" y2=\"3\" />\n </svg>\n )}\n </a>\n ))}\n </div>\n\n {showThemeToggle && onThemeToggle && (\n <div className=\"mt-auto pt-6 border-t\" style={{ borderColor: 'var(--glass-border)' }}>\n <div className=\"flex items-center justify-between px-4\">\n <span className=\"text-sm\" style={{ color: 'var(--color-grey-400)' }}>\n Theme\n </span>\n <ThemeToggle theme={theme} onToggle={onThemeToggle} size=\"sm\" />\n </div>\n </div>\n )}\n </div>\n </MobileDrawer>\n </>\n )\n}\n","import { type HTMLAttributes, type ReactNode } from 'react'\nimport { cn } from '../../utils/cn'\nimport { NavLink } from '../../molecules/NavLink'\n\nexport interface FooterLink {\n label: string\n href: string\n}\n\nexport interface FooterSection {\n title: string\n links: FooterLink[]\n}\n\nexport interface FooterProps extends HTMLAttributes<HTMLElement> {\n logo?: ReactNode\n description?: string\n sections?: FooterSection[]\n bottomLinks?: FooterLink[]\n copyright?: string\n socialLinks?: Array<{\n label: string\n href: string\n icon: ReactNode\n }>\n}\n\nexport function Footer({\n logo,\n description,\n sections = [],\n bottomLinks = [],\n copyright,\n socialLinks = [],\n className,\n ...props\n}: FooterProps) {\n return (\n <footer\n className={cn(\n 'border-t border-[var(--glass-border)]',\n 'bg-[var(--color-bg)]',\n className\n )}\n {...props}\n >\n <div className=\"mx-auto max-w-6xl px-6 py-16 md:px-12\">\n <div className=\"grid grid-cols-1 gap-12 md:grid-cols-4 lg:grid-cols-5\">\n {/* Brand Column */}\n <div className=\"md:col-span-2 lg:col-span-2\">\n {logo && <div className=\"mb-4\">{logo}</div>}\n {description && (\n <p className=\"text-sm text-[var(--color-grey-400)] max-w-sm leading-relaxed\">\n {description}\n </p>\n )}\n {socialLinks.length > 0 && (\n <div className=\"flex items-center gap-4 mt-6\">\n {socialLinks.map((link) => (\n <a\n key={link.href}\n href={link.href}\n className={cn(\n 'text-[var(--color-grey-600)]',\n 'hover:text-[var(--color-white)]',\n 'transition-colors duration-200'\n )}\n aria-label={link.label}\n target=\"_blank\"\n rel=\"noopener noreferrer\"\n >\n {link.icon}\n </a>\n ))}\n </div>\n )}\n </div>\n\n {/* Link Sections */}\n {sections.map((section) => (\n <div key={section.title}>\n <h4 className=\"label mb-4\">{section.title}</h4>\n <ul className=\"space-y-3\">\n {section.links.map((link) => (\n <li key={link.href}>\n <NavLink href={link.href} variant=\"default\">\n {link.label}\n </NavLink>\n </li>\n ))}\n </ul>\n </div>\n ))}\n </div>\n\n {/* Bottom Bar */}\n {(copyright || bottomLinks.length > 0) && (\n <div className=\"mt-16 pt-8 border-t border-[var(--glass-border)] flex flex-col md:flex-row md:items-center md:justify-between gap-4\">\n {copyright && (\n <p className=\"text-xs text-[var(--color-grey-600)]\">{copyright}</p>\n )}\n {bottomLinks.length > 0 && (\n <div className=\"flex flex-wrap items-center gap-6\">\n {bottomLinks.map((link) => (\n <NavLink key={link.href} href={link.href} variant=\"default\">\n <span className=\"text-xs\">{link.label}</span>\n </NavLink>\n ))}\n </div>\n )}\n </div>\n )}\n </div>\n </footer>\n )\n}\n","import { type HTMLAttributes, type ReactNode } from 'react'\nimport { cn } from '../../utils/cn'\nimport { Badge } from '../../atoms/Badge'\nimport { Button } from '../../atoms/Button'\n\nexport interface HeroCTA {\n label: string\n href: string\n variant?: 'primary' | 'secondary' | 'ghost'\n}\n\nexport interface HeroProps extends Omit<HTMLAttributes<HTMLElement>, 'title'> {\n badge?: string\n title: ReactNode\n description?: ReactNode\n ctas?: HeroCTA[]\n align?: 'left' | 'center'\n size?: 'default' | 'large'\n gradient?: boolean\n}\n\nexport function Hero({\n badge,\n title,\n description,\n ctas = [],\n align = 'center',\n size = 'default',\n gradient = true,\n className,\n ...props\n}: HeroProps) {\n const alignments = {\n left: 'text-left items-start',\n center: 'text-center items-center',\n }\n\n const titleSizes = {\n default: 'text-4xl sm:text-5xl md:text-6xl',\n large: 'text-5xl sm:text-6xl md:text-7xl lg:text-8xl',\n }\n\n return (\n <section\n className={cn(\n 'relative',\n 'px-6 py-24 md:py-32 lg:py-40',\n className\n )}\n {...props}\n >\n <div\n className={cn(\n 'mx-auto max-w-4xl',\n 'flex flex-col gap-6',\n alignments[align]\n )}\n >\n {badge && (\n <Badge variant=\"default\" size=\"md\" className=\"animate-in\">\n {badge}\n </Badge>\n )}\n\n <h1\n className={cn(\n 'font-display font-semibold tracking-tight',\n titleSizes[size],\n gradient ? 'hero-gradient-text' : 'text-[var(--color-white)]',\n 'animate-in'\n )}\n style={{ animationDelay: '0.1s', textAlign: align === 'center' ? 'center' : 'left', width: '100%', display: 'block' }}\n >\n {title}\n </h1>\n\n {description && (\n <p\n className={cn(\n 'text-lg md:text-xl',\n 'text-[var(--color-grey-400)]',\n 'max-w-2xl leading-relaxed',\n 'animate-in'\n )}\n style={{ animationDelay: '0.2s' }}\n >\n {description}\n </p>\n )}\n\n {ctas.length > 0 && (\n <div\n className={cn(\n 'flex flex-wrap gap-4 mt-4',\n align === 'center' ? 'justify-center' : 'justify-start',\n 'animate-in'\n )}\n style={{ animationDelay: '0.3s' }}\n >\n {ctas.map((cta, index) => (\n <Button\n key={cta.href}\n variant={cta.variant || (index === 0 ? 'primary' : 'secondary')}\n size=\"lg\"\n asChild\n >\n <a href={cta.href}>{cta.label}</a>\n </Button>\n ))}\n </div>\n )}\n </div>\n </section>\n )\n}\n","import { type HTMLAttributes, type ReactNode } from 'react'\nimport { cn } from '../../utils/cn'\n\nexport interface SectionProps extends HTMLAttributes<HTMLElement> {\n children: ReactNode\n size?: 'sm' | 'md' | 'lg' | 'full'\n spacing?: 'none' | 'sm' | 'md' | 'lg'\n container?: boolean\n}\n\nexport function Section({\n children,\n size = 'md',\n spacing = 'md',\n container = true,\n className,\n ...props\n}: SectionProps) {\n const sizes = {\n sm: 'max-w-3xl',\n md: 'max-w-5xl',\n lg: 'max-w-7xl',\n full: 'max-w-none',\n }\n\n const spacings = {\n none: 'py-0',\n sm: 'py-12 md:py-16',\n md: 'py-16 md:py-24',\n lg: 'py-24 md:py-32',\n }\n\n // Add scroll-margin-top when section has an id for anchor links\n const hasId = Boolean(props.id)\n\n return (\n <section\n className={cn(spacings[spacing], hasId && 'scroll-mt-20', className)}\n {...props}\n >\n {container ? (\n <div className={cn('mx-auto px-6 md:px-10', sizes[size])}>\n {children}\n </div>\n ) : (\n children\n )}\n </section>\n )\n}\n\nexport interface SectionHeaderProps extends HTMLAttributes<HTMLDivElement> {\n title: string\n description?: string\n align?: 'left' | 'center'\n}\n\nexport function SectionHeader({\n title,\n description,\n align = 'left',\n className,\n ...props\n}: SectionHeaderProps) {\n const alignments = {\n left: 'text-left',\n center: 'text-center mx-auto',\n }\n\n return (\n <div\n className={cn('max-w-2xl mb-12', alignments[align], className)}\n {...props}\n >\n <h2 className=\"font-display text-2xl md:text-3xl font-semibold text-[var(--color-white)] tracking-tight\">\n {title}\n </h2>\n {description && (\n <p className=\"mt-4 text-base md:text-lg text-[var(--color-grey-400)] leading-relaxed\">\n {description}\n </p>\n )}\n </div>\n )\n}\n","import { useState, useEffect, useCallback } from 'react'\n\nexport type Theme = 'dark' | 'light'\n\nexport interface UseThemeOptions {\n defaultTheme?: Theme\n storageKey?: string\n attribute?: string\n}\n\nexport interface UseThemeReturn {\n theme: Theme\n setTheme: (theme: Theme) => void\n toggleTheme: () => void\n isDark: boolean\n isLight: boolean\n}\n\nexport function useTheme(options: UseThemeOptions = {}): UseThemeReturn {\n const {\n defaultTheme = 'dark',\n storageKey = 'n3wth-theme',\n attribute = 'data-theme',\n } = options\n\n const [theme, setThemeState] = useState<Theme>(() => {\n if (typeof window === 'undefined') return defaultTheme\n\n const stored = localStorage.getItem(storageKey)\n if (stored === 'dark' || stored === 'light') return stored\n\n if (window.matchMedia('(prefers-color-scheme: light)').matches) {\n return 'light'\n }\n\n return defaultTheme\n })\n\n const setTheme = useCallback(\n (newTheme: Theme) => {\n setThemeState(newTheme)\n\n if (typeof window !== 'undefined') {\n localStorage.setItem(storageKey, newTheme)\n document.documentElement.setAttribute(attribute, newTheme)\n }\n },\n [storageKey, attribute]\n )\n\n const toggleTheme = useCallback(() => {\n setTheme(theme === 'dark' ? 'light' : 'dark')\n }, [theme, setTheme])\n\n // Initialize theme on mount\n useEffect(() => {\n document.documentElement.setAttribute(attribute, theme)\n }, [attribute, theme])\n\n // Listen for system theme changes\n useEffect(() => {\n const mediaQuery = window.matchMedia('(prefers-color-scheme: light)')\n\n const handleChange = (e: MediaQueryListEvent) => {\n const stored = localStorage.getItem(storageKey)\n if (!stored) {\n setTheme(e.matches ? 'light' : 'dark')\n }\n }\n\n mediaQuery.addEventListener('change', handleChange)\n return () => mediaQuery.removeEventListener('change', handleChange)\n }, [storageKey, setTheme])\n\n return {\n theme,\n setTheme,\n toggleTheme,\n isDark: theme === 'dark',\n isLight: theme === 'light',\n }\n}\n","import { useEffect, useCallback, useRef } from 'react'\n\nexport interface KeyboardShortcut {\n key: string\n ctrl?: boolean\n meta?: boolean\n shift?: boolean\n alt?: boolean\n handler: () => void\n description?: string\n}\n\nexport interface UseKeyboardShortcutsOptions {\n shortcuts: KeyboardShortcut[]\n enabled?: boolean\n}\n\nexport function useKeyboardShortcuts({\n shortcuts,\n enabled = true,\n}: UseKeyboardShortcutsOptions): void {\n const shortcutsRef = useRef(shortcuts)\n shortcutsRef.current = shortcuts\n\n const handleKeyDown = useCallback(\n (event: KeyboardEvent) => {\n if (!enabled) return\n\n // Skip if user is typing in an input\n const target = event.target as HTMLElement\n if (\n target.tagName === 'INPUT' ||\n target.tagName === 'TEXTAREA' ||\n target.isContentEditable\n ) {\n return\n }\n\n for (const shortcut of shortcutsRef.current) {\n const keyMatch = event.key.toLowerCase() === shortcut.key.toLowerCase()\n const ctrlMatch = shortcut.ctrl ? event.ctrlKey : !event.ctrlKey\n const metaMatch = shortcut.meta ? event.metaKey : !event.metaKey\n const shiftMatch = shortcut.shift ? event.shiftKey : !event.shiftKey\n const altMatch = shortcut.alt ? event.altKey : !event.altKey\n\n if (keyMatch && ctrlMatch && metaMatch && shiftMatch && altMatch) {\n event.preventDefault()\n shortcut.handler()\n return\n }\n }\n },\n [enabled]\n )\n\n useEffect(() => {\n window.addEventListener('keydown', handleKeyDown)\n return () => window.removeEventListener('keydown', handleKeyDown)\n }, [handleKeyDown])\n}\n\n// Helper to get modifier key based on OS\nexport function getModifierKey(): 'meta' | 'ctrl' {\n if (typeof navigator === 'undefined') return 'ctrl'\n return navigator.platform.toLowerCase().includes('mac') ? 'meta' : 'ctrl'\n}\n\n// Format shortcut for display\nexport function formatShortcut(shortcut: KeyboardShortcut): string {\n const parts: string[] = []\n const isMac = typeof navigator !== 'undefined' && navigator.platform.toLowerCase().includes('mac')\n\n if (shortcut.ctrl) parts.push(isMac ? '^' : 'Ctrl')\n if (shortcut.meta) parts.push(isMac ? '⌘' : 'Win')\n if (shortcut.alt) parts.push(isMac ? '⌥' : 'Alt')\n if (shortcut.shift) parts.push(isMac ? '⇧' : 'Shift')\n parts.push(shortcut.key.toUpperCase())\n\n return parts.join(isMac ? '' : '+')\n}\n","import { useState, useEffect, useCallback, useMemo } from 'react'\n\n/**\n * Standard breakpoints matching Tailwind CSS defaults\n * sm: 640px, md: 768px, lg: 1024px, xl: 1280px, 2xl: 1536px\n */\nexport const BREAKPOINTS = {\n sm: 640,\n md: 768,\n lg: 1024,\n xl: 1280,\n '2xl': 1536,\n} as const\n\nexport type Breakpoint = keyof typeof BREAKPOINTS\n\n/**\n * Hook for responsive media queries with SSR safety\n * Returns false during SSR to prevent hydration mismatches\n *\n * @param query - CSS media query string\n * @param defaultValue - Initial value for SSR (defaults to false)\n * @returns boolean indicating if the query matches\n */\nexport function useMediaQuery(query: string, defaultValue = false): boolean {\n // Use callback to get initial state to avoid SSR issues\n const getInitialState = useCallback(() => {\n if (typeof window === 'undefined') {\n return defaultValue\n }\n return window.matchMedia(query).matches\n }, [query, defaultValue])\n\n const [matches, setMatches] = useState(getInitialState)\n\n useEffect(() => {\n if (typeof window === 'undefined') {\n return\n }\n\n const mediaQuery = window.matchMedia(query)\n\n // Set initial value (handles SSR hydration)\n setMatches(mediaQuery.matches)\n\n const handleChange = (event: MediaQueryListEvent) => {\n setMatches(event.matches)\n }\n\n mediaQuery.addEventListener('change', handleChange)\n return () => mediaQuery.removeEventListener('change', handleChange)\n }, [query])\n\n return matches\n}\n\n/**\n * Returns true when viewport is mobile width (< 768px)\n * Mobile-first default: returns true initially for SSR\n */\nexport function useIsMobile(): boolean {\n return useMediaQuery('(max-width: 767px)', true)\n}\n\n/**\n * Returns true when viewport is tablet width (768px - 1023px)\n */\nexport function useIsTablet(): boolean {\n return useMediaQuery('(min-width: 768px) and (max-width: 1023px)')\n}\n\n/**\n * Returns true when viewport is desktop width (>= 1024px)\n */\nexport function useIsDesktop(): boolean {\n return useMediaQuery('(min-width: 1024px)')\n}\n\n/**\n * Returns true when viewport is large desktop width (>= 1280px)\n */\nexport function useIsLargeDesktop(): boolean {\n return useMediaQuery('(min-width: 1280px)')\n}\n\n/**\n * Returns the current breakpoint name\n * Useful for conditional rendering based on screen size\n */\nexport function useBreakpoint(): Breakpoint | 'xs' {\n const isSm = useMediaQuery(`(min-width: ${BREAKPOINTS.sm}px)`)\n const isMd = useMediaQuery(`(min-width: ${BREAKPOINTS.md}px)`)\n const isLg = useMediaQuery(`(min-width: ${BREAKPOINTS.lg}px)`)\n const isXl = useMediaQuery(`(min-width: ${BREAKPOINTS.xl}px)`)\n const is2xl = useMediaQuery(`(min-width: ${BREAKPOINTS['2xl']}px)`)\n\n return useMemo(() => {\n if (is2xl) return '2xl'\n if (isXl) return 'xl'\n if (isLg) return 'lg'\n if (isMd) return 'md'\n if (isSm) return 'sm'\n return 'xs'\n }, [isSm, isMd, isLg, isXl, is2xl])\n}\n\n/**\n * Returns true when user prefers touch interaction\n * Useful for adapting UI interactions\n */\nexport function useIsTouchDevice(): boolean {\n return useMediaQuery('(hover: none) and (pointer: coarse)')\n}\n\n/**\n * Returns true when viewport is in portrait orientation\n */\nexport function useIsPortrait(): boolean {\n return useMediaQuery('(orientation: portrait)')\n}\n\n/**\n * Returns true when viewport is in landscape orientation\n */\nexport function useIsLandscape(): boolean {\n return useMediaQuery('(orientation: landscape)')\n}\n","import {\n useState,\n useCallback,\n useRef,\n createContext,\n useContext,\n type ReactNode,\n} from 'react'\nimport { createElement } from 'react'\nimport type { ToastVariant, ToastData, ToastPosition } from '../molecules/Toast/Toast'\nimport { Toast, ToastContainer } from '../molecules/Toast/Toast'\n\nexport interface ToastOptions {\n title?: string\n description?: string\n variant?: ToastVariant\n duration?: number\n icon?: ReactNode\n}\n\nexport interface UseToastReturn {\n toasts: ToastData[]\n toast: ToastFn\n dismiss: (id: string) => void\n dismissAll: () => void\n}\n\nexport interface ToastFn {\n (options: ToastOptions): string\n success: (options: Omit<ToastOptions, 'variant'>) => string\n error: (options: Omit<ToastOptions, 'variant'>) => string\n warning: (options: Omit<ToastOptions, 'variant'>) => string\n info: (options: Omit<ToastOptions, 'variant'>) => string\n}\n\nexport interface ToastProviderProps {\n children: ReactNode\n maxToasts?: number\n position?: ToastPosition\n}\n\nlet idCounter = 0\n\nfunction generateId(): string {\n return `toast-${++idCounter}-${Date.now()}`\n}\n\nconst ToastContext = createContext<UseToastReturn | null>(null)\n\nfunction useToastState(maxToasts = 5): UseToastReturn {\n const [toasts, setToasts] = useState<ToastData[]>([])\n const toastsRef = useRef(toasts)\n toastsRef.current = toasts\n\n const dismiss = useCallback((id: string) => {\n setToasts((prev) => prev.filter((t) => t.id !== id))\n }, [])\n\n const dismissAll = useCallback(() => {\n setToasts([])\n }, [])\n\n const addToast = useCallback(\n (options: ToastOptions): string => {\n const id = generateId()\n const newToast: ToastData = {\n id,\n variant: options.variant ?? 'default',\n title: options.title,\n description: options.description,\n duration: options.duration ?? 5000,\n icon: options.icon,\n }\n\n setToasts((prev) => {\n const next = [...prev, newToast]\n if (next.length > maxToasts) {\n return next.slice(next.length - maxToasts)\n }\n return next\n })\n\n return id\n },\n [maxToasts]\n )\n\n const toast = useCallback(\n (options: ToastOptions) => addToast(options),\n [addToast]\n ) as ToastFn\n\n toast.success = useCallback(\n (options: Omit<ToastOptions, 'variant'>) =>\n addToast({ ...options, variant: 'success' }),\n [addToast]\n )\n\n toast.error = useCallback(\n (options: Omit<ToastOptions, 'variant'>) =>\n addToast({ ...options, variant: 'error' }),\n [addToast]\n )\n\n toast.warning = useCallback(\n (options: Omit<ToastOptions, 'variant'>) =>\n addToast({ ...options, variant: 'warning' }),\n [addToast]\n )\n\n toast.info = useCallback(\n (options: Omit<ToastOptions, 'variant'>) =>\n addToast({ ...options, variant: 'info' }),\n [addToast]\n )\n\n return { toasts, toast, dismiss, dismissAll }\n}\n\nexport function ToastProvider({\n children,\n maxToasts = 5,\n position = 'top-right',\n}: ToastProviderProps) {\n const state = useToastState(maxToasts)\n\n return createElement(\n ToastContext.Provider,\n { value: state },\n children,\n createElement(\n ToastContainer,\n { position },\n ...state.toasts.map((t) =>\n createElement(Toast, {\n key: t.id,\n variant: t.variant,\n title: t.title,\n description: t.description,\n duration: t.duration,\n icon: t.icon,\n onDismiss: () => state.dismiss(t.id),\n })\n )\n )\n )\n}\n\nexport function useToast(maxToasts?: number): UseToastReturn {\n const context = useContext(ToastContext)\n if (context) return context\n\n // Fallback: standalone usage without provider\n // eslint-disable-next-line react-hooks/rules-of-hooks\n return useToastState(maxToasts)\n}\n","import { useEffect, useRef, useState } from 'react'\nimport gsap from 'gsap'\nimport { ScrollTrigger } from 'gsap/ScrollTrigger'\n\ngsap.registerPlugin(ScrollTrigger)\n\nexport interface UseCountUpOptions {\n /** Animation duration in seconds */\n duration?: number\n /** Delay before animation starts */\n delay?: number\n /** Trigger animation on scroll into view */\n onScroll?: boolean\n /** Suffix to append to value (e.g., '%', '+') */\n suffix?: string\n /** Prefix to prepend to value (e.g., '$') */\n prefix?: string\n /** Callback when animation completes */\n onComplete?: () => void\n}\n\nexport interface UseCountUpReturn {\n ref: React.RefObject<HTMLElement | null>\n value: number\n displayValue: string\n}\n\n/**\n * Hook for animated number counting\n * Creates smooth counter animations with scroll trigger support\n */\nexport function useCountUp(\n target: number,\n options: UseCountUpOptions = {}\n): UseCountUpReturn {\n const {\n duration = 1.5,\n delay = 0,\n onScroll = true,\n suffix = '',\n prefix = '',\n onComplete,\n } = options\n\n const [value, setValue] = useState(0)\n const ref = useRef<HTMLElement>(null)\n const hasAnimated = useRef(false)\n\n useEffect(() => {\n const element = ref.current\n if (!element || hasAnimated.current) return\n\n const prefersReducedMotion = window.matchMedia(\n '(prefers-reduced-motion: reduce)'\n ).matches\n\n if (prefersReducedMotion) {\n setValue(target)\n onComplete?.()\n return\n }\n\n const counter = { value: 0 }\n\n const animate = () => {\n if (hasAnimated.current) return\n hasAnimated.current = true\n\n gsap.to(counter, {\n value: target,\n duration,\n delay,\n ease: 'power2.out',\n onUpdate: () => {\n setValue(Math.round(counter.value))\n },\n onComplete,\n })\n }\n\n if (onScroll) {\n ScrollTrigger.create({\n trigger: element,\n start: 'top 80%',\n onEnter: animate,\n once: true,\n })\n } else {\n animate()\n }\n\n return () => {\n ScrollTrigger.getAll().forEach((st) => {\n if (st.trigger === element) st.kill()\n })\n }\n }, [target, duration, delay, onScroll, onComplete])\n\n const displayValue = `${prefix}${value.toLocaleString()}${suffix}`\n\n return { ref, value, displayValue }\n}\n","import { useEffect, useRef } from 'react'\nimport gsap from 'gsap'\nimport { ScrollTrigger } from 'gsap/ScrollTrigger'\n\ngsap.registerPlugin(ScrollTrigger)\n\nexport interface UseScrollRevealOptions {\n /** Animation duration in seconds */\n duration?: number\n /** Delay before animation starts */\n delay?: number\n /** Stagger delay between children (false to disable, number for custom) */\n stagger?: boolean | number\n /** Direction elements animate from */\n direction?: 'up' | 'down' | 'left' | 'right'\n /** Distance in pixels to animate from */\n distance?: number\n}\n\n/**\n * Hook that creates scroll-triggered entrance animations\n * Uses GSAP ScrollTrigger for performant viewport-based reveals\n */\nexport function useScrollReveal(options: UseScrollRevealOptions = {}) {\n const {\n duration = 0.8,\n delay = 0,\n stagger = 0.1,\n direction = 'up',\n distance = 40,\n } = options\n\n const ref = useRef<HTMLDivElement>(null)\n\n useEffect(() => {\n const element = ref.current\n if (!element) return\n\n const children = Array.from(element.children) as HTMLElement[]\n if (children.length === 0) return\n\n const directions = {\n up: { y: distance, x: 0 },\n down: { y: -distance, x: 0 },\n left: { x: distance, y: 0 },\n right: { x: -distance, y: 0 },\n }\n\n const movement = directions[direction]\n\n // Check for reduced motion preference\n const prefersReducedMotion = window.matchMedia(\n '(prefers-reduced-motion: reduce)'\n ).matches\n\n if (prefersReducedMotion) {\n children.forEach((child) => {\n child.style.opacity = '1'\n })\n return\n }\n\n // Create timeline for staggered reveals\n const ctx = gsap.context(() => {\n gsap.fromTo(\n children,\n {\n opacity: 0,\n ...movement,\n },\n {\n opacity: 1,\n x: 0,\n y: 0,\n duration,\n delay,\n stagger: stagger ? (typeof stagger === 'number' ? stagger : 0.1) : 0,\n ease: 'cubic.out',\n scrollTrigger: {\n trigger: element,\n start: 'top 80%',\n toggleActions: 'play none none none',\n },\n }\n )\n }, element)\n\n return () => ctx.revert()\n }, [duration, delay, stagger, direction, distance])\n\n return ref\n}\n","import { useEffect, useRef } from 'react'\nimport gsap from 'gsap'\n\nexport interface UseStaggerListOptions {\n /** Animation duration in seconds */\n duration?: number\n /** Stagger delay between items */\n stagger?: number\n /** Delay before animation starts */\n delay?: number\n /** Direction items animate from */\n direction?: 'up' | 'down' | 'left' | 'right' | 'scale'\n}\n\n/**\n * Hook for staggered list item animations\n * Creates cascade effects as items appear\n *\n * Items should have data-stagger-item attribute:\n * ```tsx\n * <ul ref={ref}>\n * <li data-stagger-item>Item 1</li>\n * <li data-stagger-item>Item 2</li>\n * </ul>\n * ```\n */\nexport function useStaggerList(options: UseStaggerListOptions = {}) {\n const {\n duration = 0.5,\n stagger = 0.08,\n delay = 0,\n direction = 'up',\n } = options\n\n const ref = useRef<HTMLElement>(null)\n\n useEffect(() => {\n const container = ref.current\n if (!container) return\n\n const items = container.querySelectorAll('[data-stagger-item]')\n if (items.length === 0) return\n\n const prefersReducedMotion = window.matchMedia(\n '(prefers-reduced-motion: reduce)'\n ).matches\n\n if (prefersReducedMotion) {\n gsap.set(items, { opacity: 1 })\n return\n }\n\n const fromVars: gsap.TweenVars = { opacity: 0 }\n const toVars: gsap.TweenVars = {\n opacity: 1,\n duration,\n stagger,\n delay,\n ease: 'cubic.out',\n }\n\n switch (direction) {\n case 'up':\n fromVars.y = 20\n toVars.y = 0\n break\n case 'down':\n fromVars.y = -20\n toVars.y = 0\n break\n case 'left':\n fromVars.x = 20\n toVars.x = 0\n break\n case 'right':\n fromVars.x = -20\n toVars.x = 0\n break\n case 'scale':\n fromVars.scale = 0.8\n toVars.scale = 1\n toVars.ease = 'back.out(1.7)'\n break\n }\n\n const ctx = gsap.context(() => {\n gsap.fromTo(items, fromVars, toVars)\n }, container)\n\n return () => ctx.revert()\n }, [duration, stagger, delay, direction])\n\n return ref\n}\n","import { useEffect, useRef } from 'react'\nimport gsap from 'gsap'\n\nexport interface UsePageTransitionOptions {\n /** Entrance animation duration in seconds */\n duration?: number\n /** Exit animation duration in seconds */\n exitDuration?: number\n}\n\n/**\n * Hook for page entrance/exit animations\n * Creates smooth transitions when navigating between pages\n */\nexport function usePageTransition(options: UsePageTransitionOptions = {}) {\n const { duration = 0.5, exitDuration = 0.25 } = options\n const pageRef = useRef<HTMLDivElement>(null)\n\n useEffect(() => {\n const page = pageRef.current\n if (!page) return\n\n const prefersReducedMotion = window.matchMedia(\n '(prefers-reduced-motion: reduce)'\n ).matches\n\n if (prefersReducedMotion) {\n page.style.opacity = '1'\n return\n }\n\n // Entrance animation\n gsap.fromTo(\n page,\n {\n opacity: 0,\n y: 16,\n },\n {\n opacity: 1,\n y: 0,\n duration,\n ease: 'cubic.out',\n }\n )\n\n // Exit animation on unmount\n return () => {\n if (page) {\n gsap.to(page, {\n opacity: 0,\n y: -8,\n duration: exitDuration,\n ease: 'cubic.in',\n })\n }\n }\n }, [duration, exitDuration])\n\n return pageRef\n}\n","import { useEffect, useRef } from 'react'\nimport gsap from 'gsap'\nimport { ScrollTrigger } from 'gsap/ScrollTrigger'\n\ngsap.registerPlugin(ScrollTrigger)\n\nexport interface UseTextRevealOptions {\n /** Animation duration in seconds */\n duration?: number\n /** Delay before animation starts */\n delay?: number\n /** Stagger amount between characters */\n staggerAmount?: number\n /** Trigger animation on scroll into view */\n onScroll?: boolean\n}\n\n/**\n * Hook for revealing text character by character\n * Creates staggered entrance animations for text content\n *\n * Note: This will replace the element's text content with spans\n */\nexport function useTextReveal(options: UseTextRevealOptions = {}) {\n const {\n duration = 0.6,\n delay = 0,\n staggerAmount = 0.03,\n onScroll = true,\n } = options\n\n const ref = useRef<HTMLElement>(null)\n\n useEffect(() => {\n const element = ref.current\n if (!element) return\n\n const text = element.textContent || ''\n const prefersReducedMotion = window.matchMedia(\n '(prefers-reduced-motion: reduce)'\n ).matches\n\n if (prefersReducedMotion || !text) return\n\n // Split text into characters\n const characters = text.split('')\n element.textContent = ''\n\n // Create spans for each character\n characters.forEach((char) => {\n const span = document.createElement('span')\n span.textContent = char === ' ' ? '\\u00A0' : char // Non-breaking space for spaces\n span.style.display = 'inline-block'\n span.style.opacity = '0'\n element.appendChild(span)\n })\n\n const spans = Array.from(element.querySelectorAll('span'))\n\n const ctx = gsap.context(() => {\n if (onScroll) {\n gsap.fromTo(\n spans,\n { opacity: 0, y: 12 },\n {\n opacity: 1,\n y: 0,\n duration: duration / 2,\n stagger: staggerAmount,\n ease: 'cubic.out',\n scrollTrigger: {\n trigger: element,\n start: 'top 75%',\n toggleActions: 'play none none none',\n },\n }\n )\n } else {\n gsap.fromTo(\n spans,\n { opacity: 0, y: 12 },\n {\n opacity: 1,\n y: 0,\n duration: duration / 2,\n stagger: staggerAmount,\n delay,\n ease: 'cubic.out',\n }\n )\n }\n }, element)\n\n return () => ctx.revert()\n }, [duration, delay, staggerAmount, onScroll])\n\n return ref\n}\n","import { useEffect, useRef } from 'react'\nimport gsap from 'gsap'\n\nexport interface UseButtonPulseOptions {\n /** Scale on hover */\n hoverScale?: number\n /** Scale on press */\n pressScale?: number\n /** Animation duration in seconds */\n duration?: number\n}\n\n/**\n * Hook for subtle button interaction animations\n * Creates depth-aware scale interactions on hover and press\n */\nexport function useButtonPulse(options: UseButtonPulseOptions = {}) {\n const { hoverScale = 1.02, pressScale = 0.96, duration = 0.2 } = options\n\n const ref = useRef<HTMLButtonElement>(null)\n\n useEffect(() => {\n const button = ref.current\n if (!button) return\n\n const prefersReducedMotion = window.matchMedia(\n '(prefers-reduced-motion: reduce)'\n ).matches\n\n if (prefersReducedMotion) return\n\n const handleMouseEnter = () => {\n gsap.to(button, {\n scale: hoverScale,\n duration,\n ease: 'cubic.out',\n })\n }\n\n const handleMouseLeave = () => {\n gsap.to(button, {\n scale: 1,\n duration,\n ease: 'cubic.out',\n })\n }\n\n const handleMouseDown = () => {\n gsap.to(button, {\n scale: pressScale,\n duration: duration / 2,\n ease: 'cubic.out',\n })\n }\n\n const handleMouseUp = () => {\n gsap.to(button, {\n scale: hoverScale,\n duration: duration / 2,\n ease: 'cubic.out',\n })\n }\n\n button.addEventListener('mouseenter', handleMouseEnter)\n button.addEventListener('mouseleave', handleMouseLeave)\n button.addEventListener('mousedown', handleMouseDown)\n button.addEventListener('mouseup', handleMouseUp)\n\n return () => {\n button.removeEventListener('mouseenter', handleMouseEnter)\n button.removeEventListener('mouseleave', handleMouseLeave)\n button.removeEventListener('mousedown', handleMouseDown)\n button.removeEventListener('mouseup', handleMouseUp)\n }\n }, [hoverScale, pressScale, duration])\n\n return ref\n}\n"],"names":["colors","typography","spacing","borderRadius","effects","r","e","t","f","n","o","clsx","CLASS_PART_SEPARATOR","createClassGroupUtils","config","classMap","createClassMap","conflictingClassGroups","conflictingClassGroupModifiers","className","classParts","getGroupRecursive","getGroupIdForArbitraryProperty","classGroupId","hasPostfixModifier","conflicts","classPartObject","currentClassPart","nextClassPartObject","classGroupFromNextClassPart","classRest","validator","arbitraryPropertyRegex","arbitraryPropertyClassName","property","theme","prefix","getPrefixedClassGroupEntries","classGroup","processClassesRecursively","classDefinition","classPartObjectToEdit","getPart","isThemeGetter","key","path","currentClassPartObject","pathPart","func","classGroupEntries","prefixedClassGroup","value","createLruCache","maxCacheSize","cacheSize","cache","previousCache","update","IMPORTANT_MODIFIER","createParseClassName","separator","experimentalParseClassName","isSeparatorSingleCharacter","firstSeparatorCharacter","separatorLength","parseClassName","modifiers","bracketDepth","modifierStart","postfixModifierPosition","index","currentCharacter","baseClassNameWithImportantModifier","hasImportantModifier","baseClassName","maybePostfixModifierPosition","sortModifiers","sortedModifiers","unsortedModifiers","modifier","createConfigUtils","SPLIT_CLASSES_REGEX","mergeClassList","classList","configUtils","getClassGroupId","getConflictingClassGroupIds","classGroupsInConflict","classNames","result","originalClassName","variantModifier","modifierId","classId","conflictGroups","i","group","twJoin","argument","resolvedValue","string","toValue","mix","k","createTailwindMerge","createConfigFirst","createConfigRest","cacheGet","cacheSet","functionToCall","initTailwindMerge","previousConfig","createConfigCurrent","tailwindMerge","cachedResult","fromTheme","themeGetter","arbitraryValueRegex","fractionRegex","stringLengths","tshirtUnitRegex","lengthUnitRegex","colorFunctionRegex","shadowRegex","imageRegex","isLength","isNumber","isArbitraryLength","getIsArbitraryValue","isLengthOnly","isArbitraryNumber","isInteger","isPercent","isArbitraryValue","isTshirtSize","sizeLabels","isArbitrarySize","isNever","isArbitraryPosition","imageLabels","isArbitraryImage","isImage","isArbitraryShadow","isShadow","isAny","label","testValue","getDefaultConfig","blur","brightness","borderColor","borderSpacing","borderWidth","contrast","grayscale","hueRotate","invert","gap","gradientColorStops","gradientColorStopPositions","inset","margin","opacity","padding","saturate","scale","sepia","skew","space","translate","getOverscroll","getOverflow","getSpacingWithAutoAndArbitrary","getSpacingWithArbitrary","getLengthWithEmptyAndArbitrary","getNumberWithAutoAndArbitrary","getPositions","getLineStyles","getBlendModes","getAlign","getZeroAndEmpty","getBreaks","getNumberAndArbitrary","twMerge","cn","inputs","Button","forwardRef","variant","size","children","isLoading","leftIcon","rightIcon","disabled","asChild","touchTarget","props","ref","baseStyles","variants","sizes","getSizeClasses","classes","touchTargetStyles","buttonClassName","childElement","isValidElement","content","jsxs","Fragment","jsx","cloneElement","Badge","Input","inputSize","error","labelId","id","hasError","errorMessage","errorId","wrapperStyles","inputSizes","iconPadding","p","s","c","u","d","m","w","l","x","h","C","S","V","L","g","a","j","iconComponents","ArrowRight","ArrowLeft","ArrowUp","ArrowDown","NavArrowRight","NavArrowLeft","NavArrowDown","NavArrowUp","Check","Xmark","Copy","Search","Menu","SunLight","HalfMoon","ArrowUpRight","Github","Terminal","Code","Sparks","Plus","Minus","Settings","User","Heart","Star","Mail","Calendar","Clock","Bell","Home","Folder","Page","Trash","EditPencil","Eye","EyeClosed","Lock","LockSlash","Link","OpenInWindow","Download","Upload","RefreshDouble","Filter","SortDown","ViewGrid","List","MoreHoriz","MoreVert","InfoCircle","WarningTriangle","CheckCircle","XmarkCircle","sizeClasses","sizePixels","Icon","name","IconComponent","isNumericSize","pixelSize","noiseSvg","NoiseOverlay","fixed","style","sizeMap","positionMap","ScrollIndicator","position","icon","text","HamburgerIcon","isOpen","animationStyles","AnimatedText","animation","delay","duration","Component","animateOnScroll","initial","animationStyle","COLORS","tokenize","code","tokens","remaining","patterns","matched","pattern","type","match","CodeBlock","_language","showLineNumbers","useMemo","lines","_","token","Skeleton","width","height","animate","CardSkeleton","showHeader","showTags","patternCounter","generatePatternId","generateCheckeredPattern","half","generateStripedPattern","angle","stripeWidth","totalWidth","stripes","color","generateDottedPattern","bgColor","dotColor","radius","generatePattern","getShapePath","isResponsiveSize","Shape","patternColors","patternScale","patternAngle","rotation","ariaHidden","computedSize","responsiveStyles","getSize","patternResult","fill","renderShape","responsiveClass","renderEyes","expression","featureColor","renderMouth","renderAccessory","accessory","accessoryColor","Character","SpeechBubble","direction","isThought","tailPosition","dotsPosition","getCoords","triggerRect","tooltipRect","preferred","viewport","positions","fits","pos","top","left","actualPosition","coords","pad","Tooltip","showDelay","hideDelay","arrow","visible","setVisible","useState","setCoords","triggerRef","useRef","tooltipRef","showTimeout","hideTimeout","tooltipId","useId","updatePosition","useCallback","trigger","tooltip","show","hide","useEffect","handleUpdate","arrowStyles","actualPos","tooltipElement","createPortal","node","Card","paddings","CardHeader","CardTitle","Tag","CardDescription","CardContent","CardFooter","NavLink","isActive","getColor","CommandBox","command","showCopyButton","onCopy","copied","setCopied","handleCopy","err","ThemeToggle","onToggle","iconSizes","MobileDrawer","onClose","zIndex","ariaLabel","drawerRef","previousActiveElement","handleEscape","handleKeyDown","focusableElements","firstElement","lastElement","translateClass","positionClass","ErrorBoundary","__publicField","errorInfo","ErrorFallback","title","message","showReload","showHomeLink","homeUrl","presets","CompositeShape","preset","layers","shapeLayers","bounds","acc","layer","halfSize","y","centerX","centerY","FOCUSABLE_SELECTOR","Modal","closeOnBackdropClick","closeOnEscape","internalRef","panelRef","descriptionId","mounted","setMounted","timer","scrollY","panel","firstFocusable","handleBackdropClick","ModalHeader","ModalTitle","ModalDescription","ModalBody","ModalFooter","ModalCloseButton","onClick","useReducedMotion","getInitialState","prefersReducedMotion","setPrefersReducedMotion","mediaQuery","handleChange","event","useMotionConfig","usePrefersHighContrast","prefersHighContrast","setPrefersHighContrast","TabsContext","createContext","useTabsContext","context","useContext","Tabs","onChange","defaultValue","internalValue","setInternalValue","tabElementsRef","baseId","activeValue","setActiveValue","newValue","registerTab","tabValue","element","getTabElements","TabsList","glass","listRef","indicatorRef","mergedRef","indicator","list","activeTab","listRect","tabRect","isUnderline","isPill","TabsTab","onKeyDown","tabs","tabValues","currentIndex","targetIndex","targetValue","targetElement","TabsPanel","variantIcons","variantStyles","variantIconColors","Toast","description","onDismiss","open","isVisible","setIsVisible","isExiting","setIsExiting","timerRef","handleDismiss","iconElement","positionStyles","ToastContainer","DropdownContext","useDropdownContext","ctx","useClickOutside","refs","handler","onPointerDown","target","usePositioning","setStyle","rect","DropdownTrigger","handleClick","DropdownMenu","DropdownItem","isSelected","ChevronIcon","SearchIcon","CheckIcon","Dropdown","options","values","defaultValues","onMultiChange","multi","searchable","placeholder","searchPlaceholder","menuClassName","portal","uid","triggerId","listboxId","setIsOpen","search","setSearch","activeIndex","setActiveIndex","internalValues","setInternalValues","isControlled","selectedValue","selectedMultiValues","selectedSet","menuRef","searchRef","containerRef","itemMapRef","filteredOptions","lower","portalStyle","close","toggle","prev","select","val","next","v","registerItem","max","first","char","startIndex","triggerSizes","itemSizes","triggerVariants","displayValue","labels","activeDescendant","contextValue","menuContent","option","Nav","logo","logoHref","items","onThemeToggle","showThemeToggle","hideOnScroll","isMenuOpen","setIsMenuOpen","navOffset","setNavOffset","lastScrollY","navRef","toggleMenu","closeMenu","handleScroll","currentScrollY","delta","navHeight","newOffset","item","Footer","sections","bottomLinks","copyright","socialLinks","link","section","Hero","badge","ctas","align","gradient","alignments","titleSizes","cta","Section","container","spacings","hasId","SectionHeader","useTheme","defaultTheme","storageKey","attribute","setThemeState","stored","setTheme","newTheme","toggleTheme","useKeyboardShortcuts","shortcuts","enabled","shortcutsRef","shortcut","keyMatch","ctrlMatch","metaMatch","shiftMatch","altMatch","getModifierKey","formatShortcut","parts","isMac","BREAKPOINTS","useMediaQuery","query","matches","setMatches","useIsMobile","useIsTablet","useIsDesktop","useIsLargeDesktop","useBreakpoint","isSm","isMd","isLg","isXl","is2xl","useIsTouchDevice","useIsPortrait","useIsLandscape","idCounter","generateId","ToastContext","useToastState","maxToasts","toasts","setToasts","toastsRef","dismiss","dismissAll","addToast","newToast","toast","ToastProvider","state","createElement","useToast","gsap","ScrollTrigger","useCountUp","onScroll","suffix","onComplete","setValue","hasAnimated","counter","st","useScrollReveal","stagger","distance","movement","child","useStaggerList","fromVars","toVars","usePageTransition","exitDuration","pageRef","page","useTextReveal","staggerAmount","characters","span","spans","useButtonPulse","hoverScale","pressScale","button","handleMouseEnter","handleMouseLeave","handleMouseDown","handleMouseUp"],"mappings":"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","x_google_ignoreList":[4,5,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,29,30,31,32,33,34,35,36,37,38,39,40,41,42,43,44,45,46,47,48,49,50,51,52,53,54,55,56,57,58,59,60,61,62,63,64]}