@aurora-ds/theme 1.2.8 → 1.4.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +66 -22
- package/dist/index.cjs +1 -1
- package/dist/index.cjs.map +1 -1
- package/dist/index.d.cts +244 -22
- package/dist/index.d.ts +244 -22
- package/dist/index.js +1 -1
- package/dist/index.js.map +1 -1
- package/package.json +1 -1
package/dist/index.cjs.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../src/utils/styles/styleEngine.ts","../src/providers/ThemeProvider.tsx","../src/utils/theme/createTheme.ts","../src/utils/theme/colors/gray.ts","../src/utils/theme/colors/slate.ts","../src/utils/theme/colors/stone.ts","../src/utils/theme/colors/red.ts","../src/utils/theme/colors/orange.ts","../src/utils/theme/colors/amber.ts","../src/utils/theme/colors/yellow.ts","../src/utils/theme/colors/lime.ts","../src/utils/theme/colors/green.ts","../src/utils/theme/colors/emerald.ts","../src/utils/theme/colors/teal.ts","../src/utils/theme/colors/cyan.ts","../src/utils/theme/colors/sky.ts","../src/utils/theme/colors/blue.ts","../src/utils/theme/colors/indigo.ts","../src/utils/theme/colors/violet.ts","../src/utils/theme/colors/purple.ts","../src/utils/theme/colors/fuchsia.ts","../src/utils/theme/colors/pink.ts","../src/utils/theme/colors/rose.ts","../src/utils/theme/colors/index.ts","../src/utils/theme/palettes/shared.ts","../src/utils/theme/palettes/indigo.ts","../src/utils/theme/palettes/blue.ts","../src/utils/theme/palettes/rose.ts","../src/utils/theme/palettes/emerald.ts","../src/utils/theme/palettes/teal.ts","../src/utils/theme/palettes/violet.ts","../src/utils/theme/palettes/amber.ts","../src/utils/theme/palettes/cyan.ts","../src/utils/theme/palettes/slate.ts","../src/utils/theme/palettes/gray.ts","../src/utils/theme/palettes/index.ts","../src/utils/theme/defaultTheme.ts","../src/utils/styles/createStyles.ts","../src/utils/styles/keyframes.ts","../src/utils/styles/fontFace.ts","../src/utils/styles/cssVariables.ts","../src/utils/styles/ssr.ts"],"names":["IS_SERVER","themeContextGetter","styleSheet","ssrRules","cssKeyCache","staticStyleCache","usedClassNames","injectedKeyframes","injectedFontFaces","keyframeCounter","UNITLESS_PROPERTIES","MAX_CACHE_SIZE","existingStyle","style","setThemeContextGetter","getter","previous","getTheme","insertRule","rule","toKebabCase","key","cached","toKebabCaseClassName","name","CSS_INJECTION_PATTERNS","sanitizeCssValue","value","cleaned","__DEV__","toCssValue","objectToCss","obj","parts","createCacheKey","args","len","result","i","arg","t","cacheKeyToSuffix","hash","createLRUCache","maxSize","cache","factory","existing","firstKey","hashStyles","styles","str","hashString","getUniqueClassName","baseName","counter","generateCssClass","className","useCache","uniqueName","baseParts","specialRules","firstChar","innerCss","resolvedSelector","hasKeyframes","css","addKeyframes","getNextKeyframeId","hasFontFace","addFontFace","getSSRRulesInternal","resetState","ThemeContext","createContext","ThemeProvider","theme","children","previousGetter","useLayoutEffect","jsx","useTheme","useContext","hashObject","themeCache","MAX_THEME_CACHE_SIZE","deepMerge","target","source","sourceValue","targetValue","createTheme","baseTheme","overrides","cacheKey","mergeThemes","acc","override","createThemeVariant","variantOverrides","gray","slate","stone","red","orange","amber","yellow","lime","green","emerald","teal","cyan","sky","blue","indigo","violet","purple","fuchsia","pink","rose","white","black","transparent","current","colors","neutralLight","neutralDark","indigoLight","indigoDark","blueLight","blueDark","roseLight","roseDark","emeraldLight","emeraldDark","tealLight","tealDark","violetLight","violetDark","amberLight","amberDark","cyanLight","cyanDark","slateLight","slateDark","grayLight","grayDark","palettes","defaultSpacing","defaultRadius","defaultShadows","defaultFontSize","defaultFontWeight","defaultLineHeight","defaultZIndex","defaultTransition","defaultColors","defaultDarkColors","defaultTheme","defaultDarkTheme","getComponentNameFromStack","stack","match","fileMatch","processStyles","componentName","classes","lru","resolved","createStyles","stylesOrCreator","lastTheme","_","prop","keyframes","frames","fontFace","options","fontFamily","src","fontStyle","fontWeight","fontDisplay","unicodeRange","generateCssVariables","prefix","varName","injectCssVariables","variables","cssVar","path","fallback","cssVariables","inject","cssToInject","kebabKey","getSSRStyles","getSSRStyleTag","clearSSRRules","getSSRRulesArray"],"mappings":"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","file":"index.cjs","sourcesContent":["import type { StyleWithPseudos } from './types'\r\nimport type { Theme } from '@/types'\r\n\r\n// Environment detection (constant since it never changes)\r\nconst IS_SERVER = typeof document === 'undefined'\r\n\r\n// Global theme getter\r\nlet themeContextGetter: (() => Theme | undefined) | null = null\r\n\r\n// Stylesheet for client-side injection\r\nlet styleSheet: CSSStyleSheet | null = null\r\n\r\n// SSR buffer to collect server-side rules\r\nlet ssrRules: string[] = []\r\n\r\n// Cache for camelCase → kebab-case conversion (pre-allocated for common keys)\r\nconst cssKeyCache = new Map<string, string>([\r\n ['backgroundColor', 'background-color'],\r\n ['borderRadius', 'border-radius'],\r\n ['fontSize', 'font-size'],\r\n ['fontWeight', 'font-weight'],\r\n ['lineHeight', 'line-height'],\r\n ['marginTop', 'margin-top'],\r\n ['marginBottom', 'margin-bottom'],\r\n ['marginLeft', 'margin-left'],\r\n ['marginRight', 'margin-right'],\r\n ['paddingTop', 'padding-top'],\r\n ['paddingBottom', 'padding-bottom'],\r\n ['paddingLeft', 'padding-left'],\r\n ['paddingRight', 'padding-right'],\r\n ['textAlign', 'text-align'],\r\n ['justifyContent', 'justify-content'],\r\n ['alignItems', 'align-items'],\r\n ['flexDirection', 'flex-direction'],\r\n ['flexWrap', 'flex-wrap'],\r\n ['boxShadow', 'box-shadow'],\r\n ['zIndex', 'z-index'],\r\n])\r\n\r\n// Global cache for static styles (avoids regenerating the same styles)\r\nconst staticStyleCache = new Map<string, string>()\r\n\r\n// Set to track already used class names\r\nconst usedClassNames = new Set<string>()\r\n\r\n// Set to track already injected keyframes\r\nconst injectedKeyframes = new Set<string>()\r\n\r\n// Set to track already injected font-faces\r\nconst injectedFontFaces = new Set<string>()\r\n\r\n// Counter for unique keyframe names generation\r\nlet keyframeCounter = 0\r\n\r\n// Properties that accept unitless numbers (optimized Set)\r\nconst UNITLESS_PROPERTIES = new Set([\r\n 'animationIterationCount', 'columnCount', 'fillOpacity', 'flexGrow', 'flexShrink',\r\n 'fontWeight', 'lineHeight', 'opacity', 'order', 'orphans', 'widows', 'zIndex', 'zoom'\r\n])\r\n\r\n// Max LRU cache size for dynamic styles\r\nexport const MAX_CACHE_SIZE = 100\r\n\r\n// Initialize stylesheet (client-side only)\r\nif (!IS_SERVER) {\r\n const existingStyle = document.getElementById('aurora-styles') as HTMLStyleElement | null\r\n if (existingStyle) {\r\n styleSheet = existingStyle.sheet as CSSStyleSheet\r\n } else {\r\n const style = document.createElement('style')\r\n style.id = 'aurora-styles'\r\n document.head.appendChild(style)\r\n styleSheet = style.sheet as CSSStyleSheet\r\n }\r\n}\r\n\r\n/**\r\n * Set the theme getter\r\n */\r\nexport const setThemeContextGetter = (getter: (() => Theme | undefined) | null): (() => Theme | undefined) | null => {\r\n const previous = themeContextGetter\r\n themeContextGetter = getter\r\n return previous\r\n}\r\n\r\n/**\r\n * Get the current theme\r\n */\r\nexport const getTheme = (): Theme | undefined => {\r\n return themeContextGetter?.()\r\n}\r\n\r\n/**\r\n * Insert a CSS rule\r\n */\r\nexport const insertRule = (rule: string): void => {\r\n if (IS_SERVER) {\r\n ssrRules.push(rule)\r\n } else if (styleSheet) {\r\n try {\r\n styleSheet.insertRule(rule, styleSheet.cssRules.length)\r\n } catch {\r\n // Ignore errors (invalid rules)\r\n }\r\n }\r\n}\r\n\r\n/**\r\n * Convert camelCase to kebab-case with caching\r\n */\r\nexport const toKebabCase = (key: string): string => {\r\n let cached = cssKeyCache.get(key)\r\n if (!cached) {\r\n cached = key.replace(/([A-Z])/g, '-$1').toLowerCase()\r\n cssKeyCache.set(key, cached)\r\n }\r\n return cached\r\n}\r\n\r\n/**\r\n * Convert PascalCase/camelCase to kebab-case for class names\r\n */\r\nexport const toKebabCaseClassName = (name: string): string => {\r\n return name\r\n .replace(/([a-z])([A-Z])/g, '$1-$2')\r\n .replace(/([A-Z]+)([A-Z][a-z])/g, '$1-$2')\r\n .toLowerCase()\r\n}\r\n\r\n/**\r\n * Dangerous patterns that could be used for CSS injection attacks\r\n * - expression(): IE-specific, allows JavaScript execution\r\n * - url() with javascript:/data:: can execute scripts or embed malicious content\r\n * - behavior: IE-specific, loads external HTC files\r\n * - -moz-binding: Firefox-specific, loads XBL files\r\n * - @import: could load external malicious stylesheets\r\n * - </style>: could break out of style context\r\n */\r\nconst CSS_INJECTION_PATTERNS = /expression\\s*\\(|javascript\\s*:|data\\s*:\\s*text\\/html|behavior\\s*:|@import|<\\s*\\/?\\s*style/i\r\n\r\n/**\r\n * Sanitize a CSS value to prevent injection attacks\r\n * Returns the sanitized value or 'unset' if the value is dangerous\r\n */\r\nexport const sanitizeCssValue = (value: string): string => {\r\n // Remove any null bytes\r\n const cleaned = value.replace(/\\0/g, '')\r\n\r\n // Check for dangerous patterns\r\n if (CSS_INJECTION_PATTERNS.test(cleaned)) {\r\n if (__DEV__) {\r\n console.warn(`[Aurora] Potentially dangerous CSS value blocked: \"${value.slice(0, 50)}...\"`)\r\n }\r\n return 'unset'\r\n }\r\n\r\n return cleaned\r\n}\r\n\r\n// Development mode flag (will be tree-shaken in production)\r\nconst __DEV__ = typeof process !== 'undefined' && process.env?.NODE_ENV !== 'production'\r\n\r\n/**\r\n * Convert values to valid CSS with sanitization\r\n */\r\nexport const toCssValue = (key: string, value: unknown): string => {\r\n if (typeof value === 'number' && !UNITLESS_PROPERTIES.has(key)) {\r\n return `${value}px`\r\n }\r\n return sanitizeCssValue(String(value))\r\n}\r\n\r\n/**\r\n * Convert a styles object to CSS (simple properties only)\r\n * Optimized to avoid unnecessary allocations\r\n */\r\nexport const objectToCss = (obj: Record<string, unknown>): string => {\r\n const parts: string[] = []\r\n for (const key in obj) {\r\n const value = obj[key]\r\n if (value != null && typeof value !== 'object') {\r\n parts.push(`${toKebabCase(key)}:${toCssValue(key, value)}`)\r\n }\r\n }\r\n return parts.join(';') + (parts.length ? ';' : '')\r\n}\r\n\r\n/**\r\n * Convert an & selector to a valid CSS selector\r\n */\r\nexport const resolveAmpersandSelector = (selector: string, className: string): string => {\r\n return selector.replace(/&/g, `.${className}`)\r\n}\r\n\r\n/**\r\n * Create a cache key from arguments\r\n */\r\nexport const createCacheKey = (args: unknown[]): string => {\r\n const len = args.length\r\n if (len <= 4) {\r\n let result = ''\r\n for (let i = 0; i < len; i++) {\r\n const arg = args[i]\r\n const t = typeof arg\r\n if (arg === undefined) {\r\n result += i ? '|u' : 'u'\r\n } else if (arg === null) {\r\n result += i ? '|n' : 'n'\r\n } else if (t === 'string' || t === 'number' || t === 'boolean') {\r\n result += i ? '|' + arg : String(arg)\r\n } else {\r\n return JSON.stringify(args)\r\n }\r\n }\r\n return result\r\n }\r\n return JSON.stringify(args)\r\n}\r\n\r\n/**\r\n * Convert cacheKey to a valid CSS suffix\r\n */\r\nexport const cacheKeyToSuffix = (key: string): string => {\r\n if (key === 'true' || key === 'false' || /^-?\\d+$/.test(key)) {\r\n return key\r\n }\r\n if (/^[a-z][a-z0-9]*$/i.test(key)) {\r\n return toKebabCaseClassName(key)\r\n }\r\n let hash = 5381\r\n for (let i = 0; i < key.length; i++) {\r\n hash = ((hash << 5) + hash) ^ key.charCodeAt(i)\r\n }\r\n return (hash >>> 0).toString(36)\r\n}\r\n\r\n/**\r\n * Optimized LRU cache with O(1) deletion\r\n */\r\nexport const createLRUCache = <V>(maxSize: number): { getOrSet: (key: string, factory: () => V) => V } => {\r\n const cache = new Map<string, V>()\r\n return {\r\n getOrSet(key: string, factory: () => V): V {\r\n const existing = cache.get(key)\r\n if (existing !== undefined) {\r\n // Move to end (most recent) - O(1) with Map\r\n cache.delete(key)\r\n cache.set(key, existing)\r\n return existing\r\n }\r\n const value = factory()\r\n if (cache.size >= maxSize) {\r\n // Remove oldest (first element)\r\n const firstKey = cache.keys().next().value\r\n if (firstKey !== undefined) { cache.delete(firstKey) }\r\n }\r\n cache.set(key, value)\r\n return value\r\n }\r\n }\r\n}\r\n\r\n/**\r\n * Hash for static styles cache\r\n */\r\nexport const hashStyles = (styles: StyleWithPseudos): string => {\r\n const str = JSON.stringify(styles)\r\n let hash = 5381\r\n for (let i = 0; i < str.length; i++) {\r\n hash = ((hash << 5) + hash) ^ str.charCodeAt(i)\r\n }\r\n return (hash >>> 0).toString(36)\r\n}\r\n\r\n/**\r\n * Generic hash for a string\r\n */\r\nexport const hashString = (str: string): string => {\r\n let hash = 5381\r\n for (let i = 0; i < str.length; i++) {\r\n hash = ((hash << 5) + hash) ^ str.charCodeAt(i)\r\n }\r\n return (hash >>> 0).toString(36)\r\n}\r\n\r\n/**\r\n * Get a unique class name\r\n */\r\nexport const getUniqueClassName = (baseName: string): string => {\r\n if (!usedClassNames.has(baseName)) {\r\n usedClassNames.add(baseName)\r\n return baseName\r\n }\r\n let counter = 2\r\n let name = `${baseName}-${counter}`\r\n while (usedClassNames.has(name)) {\r\n name = `${baseName}-${++counter}`\r\n }\r\n usedClassNames.add(name)\r\n return name\r\n}\r\n\r\n/**\r\n * Generate a CSS class with support for complex selectors\r\n * Optimized to minimize allocations and iterations\r\n */\r\nexport const generateCssClass = (styles: StyleWithPseudos, className: string, useCache = false): string => {\r\n if (useCache) {\r\n const hash = hashStyles(styles)\r\n const cached = staticStyleCache.get(hash)\r\n if (cached) { return cached }\r\n }\r\n\r\n const uniqueName = getUniqueClassName(className)\r\n const baseParts: string[] = []\r\n const specialRules: string[] = []\r\n\r\n for (const key in styles) {\r\n const value = (styles as Record<string, unknown>)[key]\r\n const firstChar = key[0]\r\n\r\n if (firstChar === '@') {\r\n // @media, @container, @supports\r\n const innerCss = objectToCss(value as Record<string, unknown>)\r\n if (innerCss) {\r\n specialRules.push(`${key}{.${uniqueName}{${innerCss}}}`)\r\n }\r\n } else if (firstChar === '&') {\r\n // Complex selectors (& > div, &:nth-child, etc.)\r\n const innerCss = objectToCss(value as Record<string, unknown>)\r\n if (innerCss) {\r\n const resolvedSelector = key.replace(/&/g, `.${uniqueName}`)\r\n specialRules.push(`${resolvedSelector}{${innerCss}}`)\r\n }\r\n } else if (firstChar === ':') {\r\n // Pseudo-classes (:hover, :focus, etc.)\r\n const innerCss = objectToCss(value as Record<string, unknown>)\r\n if (innerCss) {\r\n specialRules.push(`.${uniqueName}${key}{${innerCss}}`)\r\n }\r\n } else if (value != null && typeof value !== 'object') {\r\n // Simple CSS properties\r\n baseParts.push(`${toKebabCase(key)}:${toCssValue(key, value)}`)\r\n }\r\n }\r\n\r\n // Inject rules\r\n if (baseParts.length) {\r\n insertRule(`.${uniqueName}{${baseParts.join(';')}}`)\r\n }\r\n for (const rule of specialRules) {\r\n insertRule(rule)\r\n }\r\n\r\n if (useCache) {\r\n staticStyleCache.set(hashStyles(styles), uniqueName)\r\n }\r\n\r\n return uniqueName\r\n}\r\n\r\n/**\r\n * Check if a keyframe already exists\r\n */\r\nexport const hasKeyframes = (css: string): boolean => {\r\n return injectedKeyframes.has(css)\r\n}\r\n\r\n/**\r\n * Add a keyframe to the registry\r\n */\r\nexport const addKeyframes = (css: string): void => {\r\n injectedKeyframes.add(css)\r\n}\r\n\r\n/**\r\n * Get the next keyframe ID\r\n */\r\nexport const getNextKeyframeId = (): string => {\r\n return (++keyframeCounter).toString(36)\r\n}\r\n\r\n/**\r\n * Check if a font-face already exists\r\n */\r\nexport const hasFontFace = (css: string): boolean => {\r\n return injectedFontFaces.has(css)\r\n}\r\n\r\n/**\r\n * Add a font-face to the registry\r\n */\r\nexport const addFontFace = (css: string): void => {\r\n injectedFontFaces.add(css)\r\n}\r\n\r\n/**\r\n * Get SSR rules\r\n */\r\nexport const getSSRRulesInternal = (): string[] => {\r\n return ssrRules\r\n}\r\n\r\n/**\r\n * Reset SSR state\r\n */\r\nexport const resetState = (): void => {\r\n ssrRules = []\r\n staticStyleCache.clear()\r\n usedClassNames.clear()\r\n injectedKeyframes.clear()\r\n injectedFontFaces.clear()\r\n keyframeCounter = 0\r\n}\r\n\r\n","import { createContext, useContext, useLayoutEffect, type ReactNode } from 'react'\r\n\r\nimport { setThemeContextGetter } from '@/utils/styles/styleEngine'\r\n\r\nimport type { Theme } from '@/types'\r\n\r\nconst ThemeContext = createContext<Theme | undefined>(undefined)\r\n\r\nexport type ThemeProviderProps<T extends Theme = Theme> = {\r\n theme: T\r\n children?: ReactNode\r\n}\r\n\r\n/**\r\n * Theme provider component\r\n * Provides theme context to all child components\r\n *\r\n * @example\r\n * ```tsx\r\n * // With default theme\r\n * <ThemeProvider theme={defaultTheme}>\r\n * <App />\r\n * </ThemeProvider>\r\n *\r\n * // With custom extended theme\r\n * <ThemeProvider theme={myCustomTheme}>\r\n * <App />\r\n * </ThemeProvider>\r\n * ```\r\n */\r\nexport const ThemeProvider = <T extends Theme>({\r\n theme,\r\n children\r\n}: ThemeProviderProps<T>) => {\r\n const previousGetter = setThemeContextGetter(() => theme)\r\n\r\n useLayoutEffect(() => {\r\n return () => {\r\n setThemeContextGetter(previousGetter)\r\n }\r\n }, [previousGetter])\r\n\r\n return (\r\n <ThemeContext.Provider value={theme}>\r\n {children}\r\n </ThemeContext.Provider>\r\n )\r\n}\r\n\r\n/**\r\n * Hook to access the current theme\r\n * Use the generic parameter to get proper typing for extended themes\r\n *\r\n * @example\r\n * ```tsx\r\n * // Basic usage\r\n * const theme = useTheme()\r\n *\r\n * // With custom theme type\r\n * const theme = useTheme<MyCustomTheme>()\r\n * ```\r\n *\r\n * @throws {Error} If used outside a ThemeProvider\r\n */\r\nexport const useTheme = <T extends Theme = Theme>(): T => {\r\n const theme = useContext(ThemeContext)\r\n\r\n if (!theme) {\r\n throw new Error('useTheme must be used within a ThemeProvider')\r\n }\r\n\r\n return theme as T\r\n}\r\n\r\n","import type { Theme, DeepPartial } from '@/types'\r\n\r\n/**\r\n * Simple hash function for objects (djb2)\r\n */\r\nconst hashObject = (obj: unknown): string => {\r\n const str = JSON.stringify(obj)\r\n let hash = 5381\r\n for (let i = 0; i < str.length; i++) {\r\n hash = ((hash << 5) + hash) ^ str.charCodeAt(i)\r\n }\r\n return (hash >>> 0).toString(36)\r\n}\r\n\r\n/**\r\n * Memoization cache for createTheme\r\n */\r\nconst themeCache = new Map<string, Theme>()\r\n\r\n/**\r\n * Maximum number of themes to cache before eviction\r\n */\r\nexport const MAX_THEME_CACHE_SIZE = 50\r\n\r\n/**\r\n * Clear the theme cache (useful for testing)\r\n */\r\nexport const clearThemeCache = (): void => {\r\n themeCache.clear()\r\n}\r\n\r\n/**\r\n * Get the current theme cache size (useful for testing)\r\n */\r\nexport const getThemeCacheSize = (): number => {\r\n return themeCache.size\r\n}\r\n\r\n/**\r\n * Deep merge two objects\r\n */\r\nconst deepMerge = <T extends Record<string, unknown>>(target: T, source: DeepPartial<T>): T => {\r\n const result = { ...target }\r\n\r\n for (const key in source) {\r\n const sourceValue = source[key]\r\n const targetValue = target[key]\r\n\r\n if (\r\n sourceValue !== undefined &&\r\n typeof sourceValue === 'object' &&\r\n sourceValue !== null &&\r\n !Array.isArray(sourceValue) &&\r\n typeof targetValue === 'object' &&\r\n targetValue !== null\r\n ) {\r\n result[key] = deepMerge(\r\n targetValue as Record<string, unknown>,\r\n sourceValue as DeepPartial<Record<string, unknown>>\r\n ) as T[Extract<keyof T, string>]\r\n } else if (sourceValue !== undefined) {\r\n result[key] = sourceValue as T[Extract<keyof T, string>]\r\n }\r\n }\r\n\r\n return result\r\n}\r\n\r\n/**\r\n * Create a theme by merging a base theme with overrides\r\n *\r\n * @example\r\n * ```ts\r\n * const myTheme = createTheme(defaultTheme, {\r\n * colors: {\r\n * primary: '#ff0000',\r\n * // Only override what you need\r\n * },\r\n * spacing: {\r\n * md: '1.5rem',\r\n * },\r\n * })\r\n * ```\r\n */\r\nexport const createTheme = <T extends Theme>(\r\n baseTheme: T,\r\n overrides: DeepPartial<T>\r\n): T => {\r\n // Create cache key from base theme reference + overrides hash\r\n const cacheKey = `${hashObject(baseTheme)}_${hashObject(overrides)}`\r\n\r\n const cached = themeCache.get(cacheKey)\r\n if (cached) {\r\n return cached as T\r\n }\r\n\r\n const result = deepMerge(baseTheme, overrides)\r\n\r\n // Evict oldest if cache is full\r\n if (themeCache.size >= MAX_THEME_CACHE_SIZE) {\r\n const firstKey = themeCache.keys().next().value\r\n if (firstKey) {themeCache.delete(firstKey)}\r\n }\r\n\r\n themeCache.set(cacheKey, result)\r\n return result\r\n}\r\n\r\n/**\r\n * Merge multiple theme overrides into one\r\n * Later overrides take precedence\r\n *\r\n * @example\r\n * ```ts\r\n * const theme = mergeThemes(\r\n * baseTheme,\r\n * brandOverrides,\r\n * darkModeOverrides,\r\n * userPreferences\r\n * )\r\n * ```\r\n */\r\nexport const mergeThemes = <T extends Theme>(\r\n baseTheme: T,\r\n ...overrides: DeepPartial<T>[]\r\n): T => {\r\n return overrides.reduce<T>(\r\n (acc, override) => deepMerge(acc, override),\r\n baseTheme\r\n )\r\n}\r\n\r\n/**\r\n * Create a theme extension factory\r\n * Useful for creating theme variants (dark mode, high contrast, etc.)\r\n *\r\n * @example\r\n * ```ts\r\n * const createDarkVariant = createThemeVariant({\r\n * colors: {\r\n * background: '#1a1a1a',\r\n * text: '#ffffff',\r\n * },\r\n * })\r\n *\r\n * const darkTheme = createDarkVariant(lightTheme)\r\n * ```\r\n */\r\nexport const createThemeVariant = <T extends Theme>(\r\n variantOverrides: DeepPartial<T>\r\n) => {\r\n return (baseTheme: T): T => createTheme(baseTheme, variantOverrides)\r\n}\r\n\r\n","import type { ColorScale } from '@/types'\r\n\r\nexport const gray: ColorScale = {\r\n 25: '#fcfcfc',\r\n 50: '#fafafa',\r\n 100: '#f4f4f5',\r\n 200: '#e4e4e7',\r\n 300: '#d4d4d8',\r\n 400: '#a1a1aa',\r\n 500: '#71717a',\r\n 600: '#52525b',\r\n 700: '#3f3f46',\r\n 800: '#27272a',\r\n 900: '#18181b',\r\n 950: '#09090b',\r\n}\r\n\r\n","import type { ColorScale } from '@/types'\r\n\r\nexport const slate: ColorScale = {\r\n 25: '#fcfcfd',\r\n 50: '#f8fafc',\r\n 100: '#f1f5f9',\r\n 200: '#e2e8f0',\r\n 300: '#cbd5e1',\r\n 400: '#94a3b8',\r\n 500: '#64748b',\r\n 600: '#475569',\r\n 700: '#334155',\r\n 800: '#1e293b',\r\n 900: '#0f172a',\r\n 950: '#020617',\r\n}\r\n\r\n","import type { ColorScale } from '@/types'\r\n\r\nexport const stone: ColorScale = {\r\n 25: '#fcfcfb',\r\n 50: '#fafaf9',\r\n 100: '#f5f5f4',\r\n 200: '#e7e5e4',\r\n 300: '#d6d3d1',\r\n 400: '#a8a29e',\r\n 500: '#78716c',\r\n 600: '#57534e',\r\n 700: '#44403c',\r\n 800: '#292524',\r\n 900: '#1c1917',\r\n 950: '#0c0a09',\r\n}\r\n\r\n","import type { ColorScale } from '@/types'\r\n\r\nexport const red: ColorScale = {\r\n 25: '#fffbfb',\r\n 50: '#fef2f2',\r\n 100: '#fee2e2',\r\n 200: '#fecaca',\r\n 300: '#fca5a5',\r\n 400: '#f87171',\r\n 500: '#ef4444',\r\n 600: '#dc2626',\r\n 700: '#b91c1c',\r\n 800: '#991b1b',\r\n 900: '#7f1d1d',\r\n 950: '#450a0a',\r\n}\r\n\r\n","import type { ColorScale } from '@/types'\r\n\r\nexport const orange: ColorScale = {\r\n 25: '#fffcfa',\r\n 50: '#fff7ed',\r\n 100: '#ffedd5',\r\n 200: '#fed7aa',\r\n 300: '#fdba74',\r\n 400: '#fb923c',\r\n 500: '#f97316',\r\n 600: '#ea580c',\r\n 700: '#c2410c',\r\n 800: '#9a3412',\r\n 900: '#7c2d12',\r\n 950: '#431407',\r\n}\r\n\r\n","import type { ColorScale } from '@/types'\r\n\r\nexport const amber: ColorScale = {\r\n 25: '#fffdfb',\r\n 50: '#fffbeb',\r\n 100: '#fef3c7',\r\n 200: '#fde68a',\r\n 300: '#fcd34d',\r\n 400: '#fbbf24',\r\n 500: '#f59e0b',\r\n 600: '#d97706',\r\n 700: '#b45309',\r\n 800: '#92400e',\r\n 900: '#78350f',\r\n 950: '#451a03',\r\n}\r\n\r\n","import type { ColorScale } from '@/types'\r\n\r\nexport const yellow: ColorScale = {\r\n 25: '#fefef9',\r\n 50: '#fefce8',\r\n 100: '#fef9c3',\r\n 200: '#fef08a',\r\n 300: '#fde047',\r\n 400: '#facc15',\r\n 500: '#eab308',\r\n 600: '#ca8a04',\r\n 700: '#a16207',\r\n 800: '#854d0e',\r\n 900: '#713f12',\r\n 950: '#422006',\r\n}\r\n\r\n","import type { ColorScale } from '@/types'\r\n\r\nexport const lime: ColorScale = {\r\n 25: '#fbfef8',\r\n 50: '#f7fee7',\r\n 100: '#ecfccb',\r\n 200: '#d9f99d',\r\n 300: '#bef264',\r\n 400: '#a3e635',\r\n 500: '#84cc16',\r\n 600: '#65a30d',\r\n 700: '#4d7c0f',\r\n 800: '#3f6212',\r\n 900: '#365314',\r\n 950: '#1a2e05',\r\n}\r\n\r\n","import type { ColorScale } from '@/types'\r\n\r\nexport const green: ColorScale = {\r\n 25: '#f6fef9',\r\n 50: '#f0fdf4',\r\n 100: '#dcfce7',\r\n 200: '#bbf7d0',\r\n 300: '#86efac',\r\n 400: '#4ade80',\r\n 500: '#22c55e',\r\n 600: '#16a34a',\r\n 700: '#15803d',\r\n 800: '#166534',\r\n 900: '#14532d',\r\n 950: '#052e16',\r\n}\r\n\r\n","import type { ColorScale } from '@/types'\r\n\r\nexport const emerald: ColorScale = {\r\n 25: '#f5fefc',\r\n 50: '#ecfdf5',\r\n 100: '#d1fae5',\r\n 200: '#a7f3d0',\r\n 300: '#6ee7b7',\r\n 400: '#34d399',\r\n 500: '#10b981',\r\n 600: '#059669',\r\n 700: '#047857',\r\n 800: '#065f46',\r\n 900: '#064e3b',\r\n 950: '#022c22',\r\n}\r\n\r\n","import type { ColorScale } from '@/types'\r\n\r\nexport const teal: ColorScale = {\r\n 25: '#f4fefe',\r\n 50: '#f0fdfa',\r\n 100: '#ccfbf1',\r\n 200: '#99f6e4',\r\n 300: '#5eead4',\r\n 400: '#2dd4bf',\r\n 500: '#14b8a6',\r\n 600: '#0d9488',\r\n 700: '#0f766e',\r\n 800: '#115e59',\r\n 900: '#134e4a',\r\n 950: '#042f2e',\r\n}\r\n\r\n","import type { ColorScale } from '@/types'\r\n\r\nexport const cyan: ColorScale = {\r\n 25: '#f3fefe',\r\n 50: '#ecfeff',\r\n 100: '#cffafe',\r\n 200: '#a5f3fc',\r\n 300: '#67e8f9',\r\n 400: '#22d3ee',\r\n 500: '#06b6d4',\r\n 600: '#0891b2',\r\n 700: '#0e7490',\r\n 800: '#155e75',\r\n 900: '#164e63',\r\n 950: '#083344',\r\n}\r\n\r\n","import type { ColorScale } from '@/types'\r\n\r\nexport const sky: ColorScale = {\r\n 25: '#f5faff',\r\n 50: '#f0f9ff',\r\n 100: '#e0f2fe',\r\n 200: '#bae6fd',\r\n 300: '#7dd3fc',\r\n 400: '#38bdf8',\r\n 500: '#0ea5e9',\r\n 600: '#0284c7',\r\n 700: '#0369a1',\r\n 800: '#075985',\r\n 900: '#0c4a6e',\r\n 950: '#082f49',\r\n}\r\n\r\n","import type { ColorScale } from '@/types'\r\n\r\nexport const blue: ColorScale = {\r\n 25: '#f5f8ff',\r\n 50: '#eff6ff',\r\n 100: '#dbeafe',\r\n 200: '#bfdbfe',\r\n 300: '#93c5fd',\r\n 400: '#60a5fa',\r\n 500: '#3b82f6',\r\n 600: '#2563eb',\r\n 700: '#1d4ed8',\r\n 800: '#1e40af',\r\n 900: '#1e3a8a',\r\n 950: '#172554',\r\n}\r\n\r\n","import type { ColorScale } from '@/types'\r\n\r\nexport const indigo: ColorScale = {\r\n 25: '#f5f7ff',\r\n 50: '#eef2ff',\r\n 100: '#e0e7ff',\r\n 200: '#c7d2fe',\r\n 300: '#a5b4fc',\r\n 400: '#818cf8',\r\n 500: '#6366f1',\r\n 600: '#4f46e5',\r\n 700: '#4338ca',\r\n 800: '#3730a3',\r\n 900: '#312e81',\r\n 950: '#1e1b4b',\r\n}\r\n\r\n","import type { ColorScale } from '@/types'\r\n\r\nexport const violet: ColorScale = {\r\n 25: '#f8f5ff',\r\n 50: '#f5f3ff',\r\n 100: '#ede9fe',\r\n 200: '#ddd6fe',\r\n 300: '#c4b5fd',\r\n 400: '#a78bfa',\r\n 500: '#8b5cf6',\r\n 600: '#7c3aed',\r\n 700: '#6d28d9',\r\n 800: '#5b21b6',\r\n 900: '#4c1d95',\r\n 950: '#2e1065',\r\n}\r\n\r\n","import type { ColorScale } from '@/types'\r\n\r\nexport const purple: ColorScale = {\r\n 25: '#faf5ff',\r\n 50: '#faf5ff',\r\n 100: '#f3e8ff',\r\n 200: '#e9d5ff',\r\n 300: '#d8b4fe',\r\n 400: '#c084fc',\r\n 500: '#a855f7',\r\n 600: '#9333ea',\r\n 700: '#7e22ce',\r\n 800: '#6b21a8',\r\n 900: '#581c87',\r\n 950: '#3b0764',\r\n}\r\n\r\n","import type { ColorScale } from '@/types'\r\n\r\nexport const fuchsia: ColorScale = {\r\n 25: '#fef5ff',\r\n 50: '#fdf4ff',\r\n 100: '#fae8ff',\r\n 200: '#f5d0fe',\r\n 300: '#f0abfc',\r\n 400: '#e879f9',\r\n 500: '#d946ef',\r\n 600: '#c026d3',\r\n 700: '#a21caf',\r\n 800: '#86198f',\r\n 900: '#701a75',\r\n 950: '#4a044e',\r\n}\r\n\r\n","import type { ColorScale } from '@/types'\r\n\r\nexport const pink: ColorScale = {\r\n 25: '#fef5f9',\r\n 50: '#fdf2f8',\r\n 100: '#fce7f3',\r\n 200: '#fbcfe8',\r\n 300: '#f9a8d4',\r\n 400: '#f472b6',\r\n 500: '#ec4899',\r\n 600: '#db2777',\r\n 700: '#be185d',\r\n 800: '#9d174d',\r\n 900: '#831843',\r\n 950: '#500724',\r\n}\r\n\r\n","import type { ColorScale } from '@/types'\r\n\r\nexport const rose: ColorScale = {\r\n 25: '#fff5f6',\r\n 50: '#fff1f2',\r\n 100: '#ffe4e6',\r\n 200: '#fecdd3',\r\n 300: '#fda4af',\r\n 400: '#fb7185',\r\n 500: '#f43f5e',\r\n 600: '#e11d48',\r\n 700: '#be123c',\r\n 800: '#9f1239',\r\n 900: '#881337',\r\n 950: '#4c0519',\r\n}\r\n\r\n","/**\r\n * Color Scales - Modern color palettes with shades from 25 to 950\r\n *\r\n * @example\r\n * ```ts\r\n * import { colors, indigo, emerald } from '@aurora-ui/theme'\r\n *\r\n * colors.indigo[500] // '#6366f1'\r\n * emerald[400] // '#34d399'\r\n * ```\r\n */\r\n\r\n// Neutrals\r\nexport { gray } from './gray'\r\nexport { slate } from './slate'\r\nexport { stone } from './stone'\r\n\r\n// Colors\r\nexport { red } from './red'\r\nexport { orange } from './orange'\r\nexport { amber } from './amber'\r\nexport { yellow } from './yellow'\r\nexport { lime } from './lime'\r\nexport { green } from './green'\r\nexport { emerald } from './emerald'\r\nexport { teal } from './teal'\r\nexport { cyan } from './cyan'\r\nexport { sky } from './sky'\r\nexport { blue } from './blue'\r\nexport { indigo } from './indigo'\r\nexport { violet } from './violet'\r\nexport { purple } from './purple'\r\nexport { fuchsia } from './fuchsia'\r\nexport { pink } from './pink'\r\nexport { rose } from './rose'\r\n\r\n// Special values\r\nexport const white = '#ffffff'\r\nexport const black = '#000000'\r\nexport const transparent = 'transparent'\r\nexport const current = 'currentColor'\r\n\r\n// Import all for the colors object\r\nimport { amber } from './amber'\r\nimport { blue } from './blue'\r\nimport { cyan } from './cyan'\r\nimport { emerald } from './emerald'\r\nimport { fuchsia } from './fuchsia'\r\nimport { gray } from './gray'\r\nimport { green } from './green'\r\nimport { indigo } from './indigo'\r\nimport { lime } from './lime'\r\nimport { orange } from './orange'\r\nimport { pink } from './pink'\r\nimport { purple } from './purple'\r\nimport { red } from './red'\r\nimport { rose } from './rose'\r\nimport { sky } from './sky'\r\nimport { slate } from './slate'\r\nimport { stone } from './stone'\r\nimport { teal } from './teal'\r\nimport { violet } from './violet'\r\nimport { yellow } from './yellow'\r\n\r\n/**\r\n * All color scales organized by name\r\n */\r\nexport const colors = {\r\n // Neutrals\r\n gray,\r\n slate,\r\n stone,\r\n // Colors\r\n red,\r\n orange,\r\n amber,\r\n yellow,\r\n lime,\r\n green,\r\n emerald,\r\n teal,\r\n cyan,\r\n sky,\r\n blue,\r\n indigo,\r\n violet,\r\n purple,\r\n fuchsia,\r\n pink,\r\n rose,\r\n // Special\r\n white: '#ffffff',\r\n black: '#000000',\r\n transparent: 'transparent',\r\n current: 'currentColor',\r\n} as const\r\n\r\n","import { slate, white } from '../colors'\r\n\r\nimport type { Theme } from '@/types'\r\n\r\ntype ColorPalette = Theme['colors']\r\n\r\n/**\r\n * Shared neutral colors for light themes\r\n * Follows WCAG AA contrast guidelines with slate palette\r\n */\r\nexport const neutralLight: Omit<ColorPalette,\r\n | 'primary' | 'onPrimary' | 'primaryHover' | 'primaryActive' | 'primarySubtle'\r\n | 'secondary' | 'onSecondary' | 'secondaryHover' | 'secondaryActive' | 'secondarySubtle'\r\n | 'accent' | 'onAccent' | 'accentHover' | 'accentSubtle'\r\n | 'borderFocus' | 'link' | 'linkHover' | 'linkVisited' | 'focus'\r\n | 'success' | 'onSuccess' | 'successHover' | 'successSubtle'\r\n | 'warning' | 'onWarning' | 'warningHover' | 'warningSubtle'\r\n | 'error' | 'onError' | 'errorHover' | 'errorSubtle'\r\n | 'info' | 'onInfo' | 'infoHover' | 'infoSubtle'\r\n> = {\r\n background: slate[50],\r\n surface: white,\r\n surfaceHover: slate[200],\r\n surfaceActive: slate[300],\r\n elevated: white,\r\n overlay: 'rgba(15, 23, 42, 0.6)',\r\n text: slate[800],\r\n textSecondary: slate[500],\r\n textTertiary: slate[400],\r\n textInverse: white,\r\n border: slate[200],\r\n borderHover: slate[300],\r\n borderSubtle: slate[100],\r\n disabled: slate[300],\r\n disabledText: slate[400],\r\n}\r\n\r\n/**\r\n * Shared neutral colors for dark themes\r\n * Follows WCAG AA contrast guidelines with slate palette\r\n */\r\nexport const neutralDark: Omit<ColorPalette,\r\n | 'primary' | 'onPrimary' | 'primaryHover' | 'primaryActive' | 'primarySubtle'\r\n | 'secondary' | 'onSecondary' | 'secondaryHover' | 'secondaryActive' | 'secondarySubtle'\r\n | 'accent' | 'onAccent' | 'accentHover' | 'accentSubtle'\r\n | 'borderFocus' | 'link' | 'linkHover' | 'linkVisited' | 'focus'\r\n | 'success' | 'onSuccess' | 'successHover' | 'successSubtle'\r\n | 'warning' | 'onWarning' | 'warningHover' | 'warningSubtle'\r\n | 'error' | 'onError' | 'errorHover' | 'errorSubtle'\r\n | 'info' | 'onInfo' | 'infoHover' | 'infoSubtle'\r\n> = {\r\n background: slate[950],\r\n surface: slate[900],\r\n surfaceHover: slate[800],\r\n surfaceActive: slate[700],\r\n elevated: slate[800],\r\n overlay: 'rgba(0, 0, 0, 0.8)',\r\n text: slate[50],\r\n textSecondary: slate[400],\r\n textTertiary: slate[500],\r\n textInverse: slate[900],\r\n border: slate[800],\r\n borderHover: slate[700],\r\n borderSubtle: slate[900],\r\n disabled: slate[700],\r\n disabledText: slate[500],\r\n}\r\n\r\n","import { neutralDark, neutralLight } from './shared'\r\nimport { indigo, cyan, slate, green, red, amber, blue, violet, white } from '../colors'\r\n\r\nimport type { Theme } from '@/types'\r\n\r\ntype ColorPalette = Theme['colors']\r\n\r\n/**\r\n * Indigo light palette - Modern, accessible color scheme\r\n * Follows WCAG AA contrast guidelines\r\n */\r\nexport const indigoLight: ColorPalette = {\r\n ...neutralLight,\r\n // Primary - Indigo palette\r\n primary: indigo[600],\r\n onPrimary: white,\r\n primaryHover: indigo[700],\r\n primaryActive: indigo[800],\r\n primarySubtle: indigo[50],\r\n // Secondary - Neutral with slight tint\r\n secondary: slate[100],\r\n onSecondary: slate[700],\r\n secondaryHover: slate[200],\r\n secondaryActive: slate[300],\r\n secondarySubtle: slate[50],\r\n // Accent\r\n accent: cyan[500],\r\n onAccent: white,\r\n accentHover: cyan[600],\r\n accentSubtle: cyan[50],\r\n borderFocus: indigo[500],\r\n // Semantic colors - Soft and subtle\r\n success: green[500],\r\n onSuccess: white,\r\n successHover: green[600],\r\n successSubtle: green[50],\r\n warning: amber[400],\r\n onWarning: amber[900],\r\n warningHover: amber[500],\r\n warningSubtle: amber[50],\r\n error: red[400],\r\n onError: white,\r\n errorHover: red[500],\r\n errorSubtle: red[50],\r\n info: blue[400],\r\n onInfo: white,\r\n infoHover: blue[500],\r\n infoSubtle: blue[50],\r\n // Interactive\r\n link: indigo[500],\r\n linkHover: indigo[600],\r\n linkVisited: violet[600],\r\n focus: indigo[500],\r\n}\r\n\r\n/**\r\n * Indigo dark palette - Modern, accessible color scheme\r\n * Follows WCAG AA contrast guidelines\r\n */\r\nexport const indigoDark: ColorPalette = {\r\n ...neutralDark,\r\n // Primary - Indigo palette\r\n primary: indigo[500],\r\n onPrimary: white,\r\n primaryHover: indigo[400],\r\n primaryActive: indigo[600],\r\n primarySubtle: indigo[950],\r\n // Secondary - Neutral with slight tint\r\n secondary: slate[800],\r\n onSecondary: slate[200],\r\n secondaryHover: slate[700],\r\n secondaryActive: slate[600],\r\n secondarySubtle: slate[900],\r\n // Accent\r\n accent: cyan[500],\r\n onAccent: white,\r\n accentHover: cyan[400],\r\n accentSubtle: cyan[950],\r\n borderFocus: indigo[400],\r\n // Semantic colors\r\n success: green[400],\r\n onSuccess: green[950],\r\n successHover: green[300],\r\n successSubtle: green[950],\r\n warning: amber[400],\r\n onWarning: amber[950],\r\n warningHover: amber[300],\r\n warningSubtle: amber[950],\r\n error: red[400],\r\n onError: red[950],\r\n errorHover: red[300],\r\n errorSubtle: red[950],\r\n info: blue[400],\r\n onInfo: blue[950],\r\n infoHover: blue[300],\r\n infoSubtle: blue[950],\r\n // Interactive\r\n link: indigo[400],\r\n linkHover: indigo[300],\r\n linkVisited: violet[400],\r\n focus: indigo[400],\r\n}\r\n\r\n","import { neutralDark, neutralLight } from './shared'\r\nimport { blue, slate, green, red, amber, violet, white } from '../colors'\r\n\r\nimport type { Theme } from '@/types'\r\n\r\ntype ColorPalette = Theme['colors']\r\n\r\n/**\r\n * Blue light palette - Modern, accessible color scheme\r\n * Follows WCAG AA contrast guidelines\r\n */\r\nexport const blueLight: ColorPalette = {\r\n ...neutralLight,\r\n // Primary - Blue palette\r\n primary: blue[600],\r\n onPrimary: white,\r\n primaryHover: blue[700],\r\n primaryActive: blue[800],\r\n primarySubtle: blue[50],\r\n // Secondary - Neutral with slight blue tint\r\n secondary: slate[100],\r\n onSecondary: slate[700],\r\n secondaryHover: slate[200],\r\n secondaryActive: slate[300],\r\n secondarySubtle: slate[50],\r\n // Accent (using primary for consistency)\r\n accent: blue[600],\r\n onAccent: white,\r\n accentHover: blue[700],\r\n accentSubtle: blue[50],\r\n borderFocus: blue[500],\r\n // Semantic colors - Soft and subtle\r\n success: green[500],\r\n onSuccess: white,\r\n successHover: green[600],\r\n successSubtle: green[50],\r\n warning: amber[400],\r\n onWarning: amber[900],\r\n warningHover: amber[500],\r\n warningSubtle: amber[50],\r\n error: red[400],\r\n onError: white,\r\n errorHover: red[500],\r\n errorSubtle: red[50],\r\n info: blue[400],\r\n onInfo: white,\r\n infoHover: blue[500],\r\n infoSubtle: blue[50],\r\n // Interactive\r\n link: blue[500],\r\n linkHover: blue[600],\r\n linkVisited: violet[600],\r\n focus: blue[500],\r\n}\r\n\r\n/**\r\n * Blue dark palette - Modern, accessible color scheme\r\n * Follows WCAG AA contrast guidelines\r\n */\r\nexport const blueDark: ColorPalette = {\r\n ...neutralDark,\r\n // Primary - Blue palette\r\n primary: blue[500],\r\n onPrimary: white,\r\n primaryHover: blue[400],\r\n primaryActive: blue[600],\r\n primarySubtle: blue[950],\r\n // Secondary - Neutral with slight blue tint\r\n secondary: slate[800],\r\n onSecondary: slate[200],\r\n secondaryHover: slate[700],\r\n secondaryActive: slate[600],\r\n secondarySubtle: slate[900],\r\n // Accent (using primary for consistency)\r\n accent: blue[500],\r\n onAccent: white,\r\n accentHover: blue[400],\r\n accentSubtle: blue[950],\r\n borderFocus: blue[400],\r\n // Semantic colors\r\n success: green[400],\r\n onSuccess: green[950],\r\n successHover: green[300],\r\n successSubtle: green[950],\r\n warning: amber[400],\r\n onWarning: amber[950],\r\n warningHover: amber[300],\r\n warningSubtle: amber[950],\r\n error: red[400],\r\n onError: red[950],\r\n errorHover: red[300],\r\n errorSubtle: red[950],\r\n info: blue[400],\r\n onInfo: blue[950],\r\n infoHover: blue[300],\r\n infoSubtle: blue[950],\r\n // Interactive\r\n link: blue[400],\r\n linkHover: blue[300],\r\n linkVisited: violet[400],\r\n focus: blue[400],\r\n}\r\n\r\n","import { neutralDark, neutralLight } from './shared'\r\nimport { rose, violet, slate, green, amber, red, blue, purple, white } from '../colors'\r\n\r\nimport type { Theme } from '@/types'\r\n\r\ntype ColorPalette = Theme['colors']\r\n\r\n/**\r\n * Rose light palette - Modern, accessible color scheme\r\n * Follows WCAG AA contrast guidelines\r\n */\r\nexport const roseLight: ColorPalette = {\r\n ...neutralLight,\r\n // Primary - Rose palette\r\n primary: rose[600],\r\n onPrimary: white,\r\n primaryHover: rose[700],\r\n primaryActive: rose[800],\r\n primarySubtle: rose[50],\r\n // Secondary - Neutral with slight tint\r\n secondary: slate[100],\r\n onSecondary: slate[700],\r\n secondaryHover: slate[200],\r\n secondaryActive: slate[300],\r\n secondarySubtle: slate[50],\r\n // Accent\r\n accent: violet[600],\r\n onAccent: white,\r\n accentHover: violet[700],\r\n accentSubtle: violet[50],\r\n borderFocus: rose[500],\r\n // Semantic colors - Soft and subtle\r\n success: green[500],\r\n onSuccess: white,\r\n successHover: green[600],\r\n successSubtle: green[50],\r\n warning: amber[400],\r\n onWarning: amber[900],\r\n warningHover: amber[500],\r\n warningSubtle: amber[50],\r\n error: red[400],\r\n onError: white,\r\n errorHover: red[500],\r\n errorSubtle: red[50],\r\n info: blue[400],\r\n onInfo: white,\r\n infoHover: blue[500],\r\n infoSubtle: blue[50],\r\n // Interactive\r\n link: rose[500],\r\n linkHover: rose[600],\r\n linkVisited: purple[600],\r\n focus: rose[500],\r\n}\r\n\r\n/**\r\n * Rose dark palette - Modern, accessible color scheme\r\n * Follows WCAG AA contrast guidelines\r\n */\r\nexport const roseDark: ColorPalette = {\r\n ...neutralDark,\r\n // Primary - Rose palette\r\n primary: rose[500],\r\n onPrimary: white,\r\n primaryHover: rose[400],\r\n primaryActive: rose[600],\r\n primarySubtle: rose[950],\r\n // Secondary - Neutral with slight tint\r\n secondary: slate[800],\r\n onSecondary: slate[200],\r\n secondaryHover: slate[700],\r\n secondaryActive: slate[600],\r\n secondarySubtle: slate[900],\r\n // Accent\r\n accent: violet[500],\r\n onAccent: white,\r\n accentHover: violet[400],\r\n accentSubtle: violet[950],\r\n borderFocus: rose[400],\r\n // Semantic colors\r\n success: green[400],\r\n onSuccess: green[950],\r\n successHover: green[300],\r\n successSubtle: green[950],\r\n warning: amber[400],\r\n onWarning: amber[950],\r\n warningHover: amber[300],\r\n warningSubtle: amber[950],\r\n error: red[400],\r\n onError: red[950],\r\n errorHover: red[300],\r\n errorSubtle: red[950],\r\n info: blue[400],\r\n onInfo: blue[950],\r\n infoHover: blue[300],\r\n infoSubtle: blue[950],\r\n // Interactive\r\n link: rose[400],\r\n linkHover: rose[300],\r\n linkVisited: purple[400],\r\n focus: rose[400],\r\n}\r\n\r\n","import { neutralDark, neutralLight } from './shared'\r\nimport { emerald, amber, slate, green, red, blue, teal, white } from '../colors'\r\n\r\nimport type { Theme } from '@/types'\r\n\r\ntype ColorPalette = Theme['colors']\r\n\r\n/**\r\n * Emerald light palette - Modern, accessible color scheme\r\n * Follows WCAG AA contrast guidelines\r\n */\r\nexport const emeraldLight: ColorPalette = {\r\n ...neutralLight,\r\n // Primary - Emerald palette\r\n primary: emerald[600],\r\n onPrimary: white,\r\n primaryHover: emerald[700],\r\n primaryActive: emerald[800],\r\n primarySubtle: emerald[50],\r\n // Secondary - Neutral with slight tint\r\n secondary: slate[100],\r\n onSecondary: slate[700],\r\n secondaryHover: slate[200],\r\n secondaryActive: slate[300],\r\n secondarySubtle: slate[50],\r\n // Accent\r\n accent: amber[500],\r\n onAccent: amber[900],\r\n accentHover: amber[600],\r\n accentSubtle: amber[50],\r\n borderFocus: emerald[500],\r\n // Semantic colors - Soft and subtle\r\n success: green[500],\r\n onSuccess: white,\r\n successHover: green[600],\r\n successSubtle: green[50],\r\n warning: amber[400],\r\n onWarning: amber[900],\r\n warningHover: amber[500],\r\n warningSubtle: amber[50],\r\n error: red[400],\r\n onError: white,\r\n errorHover: red[500],\r\n errorSubtle: red[50],\r\n info: blue[400],\r\n onInfo: white,\r\n infoHover: blue[500],\r\n infoSubtle: blue[50],\r\n // Interactive\r\n link: emerald[600],\r\n linkHover: emerald[700],\r\n linkVisited: teal[700],\r\n focus: emerald[500],\r\n}\r\n\r\n/**\r\n * Emerald dark palette - Modern, accessible color scheme\r\n * Follows WCAG AA contrast guidelines\r\n */\r\nexport const emeraldDark: ColorPalette = {\r\n ...neutralDark,\r\n // Primary - Emerald palette\r\n primary: emerald[500],\r\n onPrimary: white,\r\n primaryHover: emerald[400],\r\n primaryActive: emerald[600],\r\n primarySubtle: emerald[950],\r\n // Secondary - Neutral with slight tint\r\n secondary: slate[800],\r\n onSecondary: slate[200],\r\n secondaryHover: slate[700],\r\n secondaryActive: slate[600],\r\n secondarySubtle: slate[900],\r\n // Accent\r\n accent: amber[500],\r\n onAccent: amber[950],\r\n accentHover: amber[400],\r\n accentSubtle: amber[950],\r\n borderFocus: emerald[400],\r\n // Semantic colors\r\n success: green[400],\r\n onSuccess: green[950],\r\n successHover: green[300],\r\n successSubtle: green[950],\r\n warning: amber[400],\r\n onWarning: amber[950],\r\n warningHover: amber[300],\r\n warningSubtle: amber[950],\r\n error: red[400],\r\n onError: red[950],\r\n errorHover: red[300],\r\n errorSubtle: red[950],\r\n info: blue[400],\r\n onInfo: blue[950],\r\n infoHover: blue[300],\r\n infoSubtle: blue[950],\r\n // Interactive\r\n link: emerald[400],\r\n linkHover: emerald[300],\r\n linkVisited: teal[400],\r\n focus: emerald[400],\r\n}\r\n\r\n","import { neutralDark, neutralLight } from './shared'\r\nimport { teal, orange, slate, green, amber, red, blue, cyan, white } from '../colors'\r\n\r\nimport type { Theme } from '@/types'\r\n\r\ntype ColorPalette = Theme['colors']\r\n\r\n/**\r\n * Teal light palette - Modern, accessible color scheme\r\n * Follows WCAG AA contrast guidelines\r\n */\r\nexport const tealLight: ColorPalette = {\r\n ...neutralLight,\r\n // Primary - Teal palette\r\n primary: teal[600],\r\n onPrimary: white,\r\n primaryHover: teal[700],\r\n primaryActive: teal[800],\r\n primarySubtle: teal[50],\r\n // Secondary - Neutral with slight tint\r\n secondary: slate[100],\r\n onSecondary: slate[700],\r\n secondaryHover: slate[200],\r\n secondaryActive: slate[300],\r\n secondarySubtle: slate[50],\r\n // Accent\r\n accent: orange[500],\r\n onAccent: white,\r\n accentHover: orange[600],\r\n accentSubtle: orange[50],\r\n borderFocus: teal[500],\r\n // Semantic colors - Soft and subtle\r\n success: green[500],\r\n onSuccess: white,\r\n successHover: green[600],\r\n successSubtle: green[50],\r\n warning: amber[400],\r\n onWarning: amber[900],\r\n warningHover: amber[500],\r\n warningSubtle: amber[50],\r\n error: red[400],\r\n onError: white,\r\n errorHover: red[500],\r\n errorSubtle: red[50],\r\n info: blue[400],\r\n onInfo: white,\r\n infoHover: blue[500],\r\n infoSubtle: blue[50],\r\n // Interactive\r\n link: teal[600],\r\n linkHover: teal[700],\r\n linkVisited: cyan[700],\r\n focus: teal[500],\r\n}\r\n\r\n/**\r\n * Teal dark palette - Modern, accessible color scheme\r\n * Follows WCAG AA contrast guidelines\r\n */\r\nexport const tealDark: ColorPalette = {\r\n ...neutralDark,\r\n // Primary - Teal palette\r\n primary: teal[500],\r\n onPrimary: white,\r\n primaryHover: teal[400],\r\n primaryActive: teal[600],\r\n primarySubtle: teal[950],\r\n // Secondary - Neutral with slight tint\r\n secondary: slate[800],\r\n onSecondary: slate[200],\r\n secondaryHover: slate[700],\r\n secondaryActive: slate[600],\r\n secondarySubtle: slate[900],\r\n // Accent\r\n accent: orange[500],\r\n onAccent: white,\r\n accentHover: orange[400],\r\n accentSubtle: orange[950],\r\n borderFocus: teal[400],\r\n // Semantic colors\r\n success: green[400],\r\n onSuccess: green[950],\r\n successHover: green[300],\r\n successSubtle: green[950],\r\n warning: amber[400],\r\n onWarning: amber[950],\r\n warningHover: amber[300],\r\n warningSubtle: amber[950],\r\n error: red[400],\r\n onError: red[950],\r\n errorHover: red[300],\r\n errorSubtle: red[950],\r\n info: blue[400],\r\n onInfo: blue[950],\r\n infoHover: blue[300],\r\n infoSubtle: blue[950],\r\n // Interactive\r\n link: teal[400],\r\n linkHover: teal[300],\r\n linkVisited: cyan[400],\r\n focus: teal[400],\r\n}\r\n\r\n","import { neutralDark, neutralLight } from './shared'\r\nimport { violet, pink, slate, green, amber, red, blue, purple, white } from '../colors'\r\n\r\nimport type { Theme } from '@/types'\r\n\r\ntype ColorPalette = Theme['colors']\r\n\r\n/**\r\n * Violet light palette - Modern, accessible color scheme\r\n * Follows WCAG AA contrast guidelines\r\n */\r\nexport const violetLight: ColorPalette = {\r\n ...neutralLight,\r\n // Primary - Violet palette\r\n primary: violet[600],\r\n onPrimary: white,\r\n primaryHover: violet[700],\r\n primaryActive: violet[800],\r\n primarySubtle: violet[50],\r\n // Secondary - Neutral with slight tint\r\n secondary: slate[100],\r\n onSecondary: slate[700],\r\n secondaryHover: slate[200],\r\n secondaryActive: slate[300],\r\n secondarySubtle: slate[50],\r\n // Accent\r\n accent: pink[500],\r\n onAccent: white,\r\n accentHover: pink[600],\r\n accentSubtle: pink[50],\r\n borderFocus: violet[500],\r\n // Semantic colors - Soft and subtle\r\n success: green[500],\r\n onSuccess: white,\r\n successHover: green[600],\r\n successSubtle: green[50],\r\n warning: amber[400],\r\n onWarning: amber[900],\r\n warningHover: amber[500],\r\n warningSubtle: amber[50],\r\n error: red[400],\r\n onError: white,\r\n errorHover: red[500],\r\n errorSubtle: red[50],\r\n info: blue[400],\r\n onInfo: white,\r\n infoHover: blue[500],\r\n infoSubtle: blue[50],\r\n // Interactive\r\n link: violet[500],\r\n linkHover: violet[600],\r\n linkVisited: purple[600],\r\n focus: violet[500],\r\n}\r\n\r\n/**\r\n * Violet dark palette - Modern, accessible color scheme\r\n * Follows WCAG AA contrast guidelines\r\n */\r\nexport const violetDark: ColorPalette = {\r\n ...neutralDark,\r\n // Primary - Violet palette\r\n primary: violet[500],\r\n onPrimary: white,\r\n primaryHover: violet[400],\r\n primaryActive: violet[600],\r\n primarySubtle: violet[950],\r\n // Secondary - Neutral with slight tint\r\n secondary: slate[800],\r\n onSecondary: slate[200],\r\n secondaryHover: slate[700],\r\n secondaryActive: slate[600],\r\n secondarySubtle: slate[900],\r\n // Accent\r\n accent: pink[500],\r\n onAccent: white,\r\n accentHover: pink[400],\r\n accentSubtle: pink[950],\r\n borderFocus: violet[400],\r\n // Semantic colors\r\n success: green[400],\r\n onSuccess: green[950],\r\n successHover: green[300],\r\n successSubtle: green[950],\r\n warning: amber[400],\r\n onWarning: amber[950],\r\n warningHover: amber[300],\r\n warningSubtle: amber[950],\r\n error: red[400],\r\n onError: red[950],\r\n errorHover: red[300],\r\n errorSubtle: red[950],\r\n info: blue[400],\r\n onInfo: blue[950],\r\n infoHover: blue[300],\r\n infoSubtle: blue[950],\r\n // Interactive\r\n link: violet[400],\r\n linkHover: violet[300],\r\n linkVisited: purple[400],\r\n focus: violet[400],\r\n}\r\n\r\n","import { neutralDark, neutralLight } from './shared'\r\nimport { amber, indigo, slate, green, red, blue, yellow, white } from '../colors'\r\n\r\nimport type { Theme } from '@/types'\r\n\r\ntype ColorPalette = Theme['colors']\r\n\r\n/**\r\n * Amber light palette - Modern, accessible color scheme\r\n * Follows WCAG AA contrast guidelines\r\n */\r\nexport const amberLight: ColorPalette = {\r\n ...neutralLight,\r\n // Primary - Amber palette (darker shade for better contrast)\r\n primary: amber[500],\r\n onPrimary: amber[900],\r\n primaryHover: amber[600],\r\n primaryActive: amber[700],\r\n primarySubtle: amber[50],\r\n // Secondary - Neutral with slight tint\r\n secondary: slate[100],\r\n onSecondary: slate[700],\r\n secondaryHover: slate[200],\r\n secondaryActive: slate[300],\r\n secondarySubtle: slate[50],\r\n // Accent\r\n accent: indigo[600],\r\n onAccent: white,\r\n accentHover: indigo[700],\r\n accentSubtle: indigo[50],\r\n borderFocus: amber[500],\r\n // Semantic colors - Soft and subtle\r\n success: green[500],\r\n onSuccess: white,\r\n successHover: green[600],\r\n successSubtle: green[50],\r\n warning: amber[400],\r\n onWarning: amber[900],\r\n warningHover: amber[500],\r\n warningSubtle: amber[50],\r\n error: red[400],\r\n onError: white,\r\n errorHover: red[500],\r\n errorSubtle: red[50],\r\n info: blue[400],\r\n onInfo: white,\r\n infoHover: blue[500],\r\n infoSubtle: blue[50],\r\n // Interactive\r\n link: amber[600],\r\n linkHover: amber[700],\r\n linkVisited: yellow[700],\r\n focus: amber[500],\r\n}\r\n\r\n/**\r\n * Amber dark palette - Modern, accessible color scheme\r\n * Follows WCAG AA contrast guidelines\r\n */\r\nexport const amberDark: ColorPalette = {\r\n ...neutralDark,\r\n // Primary - Amber palette\r\n primary: amber[500],\r\n onPrimary: amber[950],\r\n primaryHover: amber[400],\r\n primaryActive: amber[600],\r\n primarySubtle: amber[950],\r\n // Secondary - Neutral with slight tint\r\n secondary: slate[800],\r\n onSecondary: slate[200],\r\n secondaryHover: slate[700],\r\n secondaryActive: slate[600],\r\n secondarySubtle: slate[900],\r\n // Accent\r\n accent: indigo[500],\r\n onAccent: white,\r\n accentHover: indigo[400],\r\n accentSubtle: indigo[950],\r\n borderFocus: amber[400],\r\n // Semantic colors\r\n success: green[400],\r\n onSuccess: green[950],\r\n successHover: green[300],\r\n successSubtle: green[950],\r\n warning: amber[400],\r\n onWarning: amber[950],\r\n warningHover: amber[300],\r\n warningSubtle: amber[950],\r\n error: red[400],\r\n onError: red[950],\r\n errorHover: red[300],\r\n errorSubtle: red[950],\r\n info: blue[400],\r\n onInfo: blue[950],\r\n infoHover: blue[300],\r\n infoSubtle: blue[950],\r\n // Interactive\r\n link: amber[400],\r\n linkHover: amber[300],\r\n linkVisited: yellow[400],\r\n focus: amber[400],\r\n}\r\n\r\n","import { neutralDark, neutralLight } from './shared'\r\nimport { cyan, rose, slate, green, amber, red, blue, teal, white } from '../colors'\r\n\r\nimport type { Theme } from '@/types'\r\n\r\ntype ColorPalette = Theme['colors']\r\n\r\n/**\r\n * Cyan light palette - Modern, accessible color scheme\r\n * Follows WCAG AA contrast guidelines\r\n */\r\nexport const cyanLight: ColorPalette = {\r\n ...neutralLight,\r\n // Primary - Cyan palette\r\n primary: cyan[600],\r\n onPrimary: white,\r\n primaryHover: cyan[700],\r\n primaryActive: cyan[800],\r\n primarySubtle: cyan[50],\r\n // Secondary - Neutral with slight tint\r\n secondary: slate[100],\r\n onSecondary: slate[700],\r\n secondaryHover: slate[200],\r\n secondaryActive: slate[300],\r\n secondarySubtle: slate[50],\r\n // Accent\r\n accent: rose[500],\r\n onAccent: white,\r\n accentHover: rose[600],\r\n accentSubtle: rose[50],\r\n borderFocus: cyan[500],\r\n // Semantic colors - Soft and subtle\r\n success: green[500],\r\n onSuccess: white,\r\n successHover: green[600],\r\n successSubtle: green[50],\r\n warning: amber[400],\r\n onWarning: amber[900],\r\n warningHover: amber[500],\r\n warningSubtle: amber[50],\r\n error: red[400],\r\n onError: white,\r\n errorHover: red[500],\r\n errorSubtle: red[50],\r\n info: blue[400],\r\n onInfo: white,\r\n infoHover: blue[500],\r\n infoSubtle: blue[50],\r\n // Interactive\r\n link: cyan[600],\r\n linkHover: cyan[700],\r\n linkVisited: teal[700],\r\n focus: cyan[500],\r\n}\r\n\r\n/**\r\n * Cyan dark palette - Modern, accessible color scheme\r\n * Follows WCAG AA contrast guidelines\r\n */\r\nexport const cyanDark: ColorPalette = {\r\n ...neutralDark,\r\n // Primary - Cyan palette\r\n primary: cyan[500],\r\n onPrimary: white,\r\n primaryHover: cyan[400],\r\n primaryActive: cyan[600],\r\n primarySubtle: cyan[950],\r\n // Secondary - Neutral with slight tint\r\n secondary: slate[800],\r\n onSecondary: slate[200],\r\n secondaryHover: slate[700],\r\n secondaryActive: slate[600],\r\n secondarySubtle: slate[900],\r\n // Accent\r\n accent: rose[500],\r\n onAccent: white,\r\n accentHover: rose[400],\r\n accentSubtle: rose[950],\r\n borderFocus: cyan[400],\r\n // Semantic colors\r\n success: green[400],\r\n onSuccess: green[950],\r\n successHover: green[300],\r\n successSubtle: green[950],\r\n warning: amber[400],\r\n onWarning: amber[950],\r\n warningHover: amber[300],\r\n warningSubtle: amber[950],\r\n error: red[400],\r\n onError: red[950],\r\n errorHover: red[300],\r\n errorSubtle: red[950],\r\n info: blue[400],\r\n onInfo: blue[950],\r\n infoHover: blue[300],\r\n infoSubtle: blue[950],\r\n // Interactive\r\n link: cyan[400],\r\n linkHover: cyan[300],\r\n linkVisited: teal[400],\r\n focus: cyan[400],\r\n}\r\n\r\n","import { neutralDark, neutralLight } from './shared'\r\nimport { slate, blue, green, amber, red, white } from '../colors'\r\n\r\nimport type { Theme } from '@/types'\r\n\r\ntype ColorPalette = Theme['colors']\r\n\r\n/**\r\n * Slate light palette - Modern, accessible color scheme\r\n * Follows WCAG AA contrast guidelines\r\n */\r\nexport const slateLight: ColorPalette = {\r\n ...neutralLight,\r\n // Primary - Slate palette\r\n primary: slate[700],\r\n onPrimary: white,\r\n primaryHover: slate[800],\r\n primaryActive: slate[900],\r\n primarySubtle: slate[100],\r\n // Secondary - Neutral\r\n secondary: slate[100],\r\n onSecondary: slate[700],\r\n secondaryHover: slate[200],\r\n secondaryActive: slate[300],\r\n secondarySubtle: slate[50],\r\n // Accent\r\n accent: blue[600],\r\n onAccent: white,\r\n accentHover: blue[700],\r\n accentSubtle: blue[50],\r\n borderFocus: slate[600],\r\n // Semantic colors - Soft and subtle\r\n success: green[500],\r\n onSuccess: white,\r\n successHover: green[600],\r\n successSubtle: green[50],\r\n warning: amber[400],\r\n onWarning: amber[900],\r\n warningHover: amber[500],\r\n warningSubtle: amber[50],\r\n error: red[400],\r\n onError: white,\r\n errorHover: red[500],\r\n errorSubtle: red[50],\r\n info: blue[400],\r\n onInfo: white,\r\n infoHover: blue[500],\r\n infoSubtle: blue[50],\r\n // Interactive\r\n link: slate[700],\r\n linkHover: slate[800],\r\n linkVisited: slate[600],\r\n focus: slate[600],\r\n}\r\n\r\n/**\r\n * Slate dark palette - Modern, accessible color scheme\r\n * Follows WCAG AA contrast guidelines\r\n */\r\nexport const slateDark: ColorPalette = {\r\n ...neutralDark,\r\n // Primary - Slate palette\r\n primary: slate[300],\r\n onPrimary: slate[900],\r\n primaryHover: slate[200],\r\n primaryActive: slate[400],\r\n primarySubtle: slate[900],\r\n // Secondary - Neutral\r\n secondary: slate[800],\r\n onSecondary: slate[200],\r\n secondaryHover: slate[700],\r\n secondaryActive: slate[600],\r\n secondarySubtle: slate[900],\r\n // Accent\r\n accent: blue[500],\r\n onAccent: white,\r\n accentHover: blue[400],\r\n accentSubtle: blue[950],\r\n borderFocus: slate[300],\r\n // Semantic colors\r\n success: green[400],\r\n onSuccess: green[950],\r\n successHover: green[300],\r\n successSubtle: green[950],\r\n warning: amber[400],\r\n onWarning: amber[950],\r\n warningHover: amber[300],\r\n warningSubtle: amber[950],\r\n error: red[400],\r\n onError: red[950],\r\n errorHover: red[300],\r\n errorSubtle: red[950],\r\n info: blue[400],\r\n onInfo: blue[950],\r\n infoHover: blue[300],\r\n infoSubtle: blue[950],\r\n // Interactive\r\n link: slate[300],\r\n linkHover: slate[200],\r\n linkVisited: slate[400],\r\n focus: slate[300],\r\n}\r\n\r\n","import { neutralDark, neutralLight } from './shared'\r\nimport { gray, indigo, slate, green, amber, red, blue, white } from '../colors'\r\n\r\nimport type { Theme } from '@/types'\r\n\r\ntype ColorPalette = Theme['colors']\r\n\r\n/**\r\n * Gray light palette - Modern, accessible color scheme\r\n * Follows WCAG AA contrast guidelines\r\n */\r\nexport const grayLight: ColorPalette = {\r\n ...neutralLight,\r\n // Primary - Gray palette\r\n primary: gray[900],\r\n onPrimary: white,\r\n primaryHover: gray[800],\r\n primaryActive: gray[950],\r\n primarySubtle: gray[100],\r\n // Secondary - Neutral\r\n secondary: slate[100],\r\n onSecondary: slate[700],\r\n secondaryHover: slate[200],\r\n secondaryActive: slate[300],\r\n secondarySubtle: slate[50],\r\n // Accent\r\n accent: indigo[600],\r\n onAccent: white,\r\n accentHover: indigo[700],\r\n accentSubtle: indigo[50],\r\n borderFocus: gray[900],\r\n // Semantic colors - Soft and subtle\r\n success: green[500],\r\n onSuccess: white,\r\n successHover: green[600],\r\n successSubtle: green[50],\r\n warning: amber[400],\r\n onWarning: amber[900],\r\n warningHover: amber[500],\r\n warningSubtle: amber[50],\r\n error: red[400],\r\n onError: white,\r\n errorHover: red[500],\r\n errorSubtle: red[50],\r\n info: blue[400],\r\n onInfo: white,\r\n infoHover: blue[500],\r\n infoSubtle: blue[50],\r\n // Interactive\r\n link: gray[900],\r\n linkHover: gray[700],\r\n linkVisited: gray[600],\r\n focus: gray[900],\r\n}\r\n\r\n/**\r\n * Gray dark palette - Modern, accessible color scheme\r\n * Follows WCAG AA contrast guidelines\r\n */\r\nexport const grayDark: ColorPalette = {\r\n ...neutralDark,\r\n // Primary - Gray palette\r\n primary: gray[50],\r\n onPrimary: gray[900],\r\n primaryHover: gray[100],\r\n primaryActive: gray[200],\r\n primarySubtle: gray[900],\r\n // Secondary - Neutral\r\n secondary: slate[800],\r\n onSecondary: slate[200],\r\n secondaryHover: slate[700],\r\n secondaryActive: slate[600],\r\n secondarySubtle: slate[900],\r\n // Accent\r\n accent: indigo[500],\r\n onAccent: white,\r\n accentHover: indigo[400],\r\n accentSubtle: indigo[950],\r\n borderFocus: gray[50],\r\n // Semantic colors\r\n success: green[400],\r\n onSuccess: green[950],\r\n successHover: green[300],\r\n successSubtle: green[950],\r\n warning: amber[400],\r\n onWarning: amber[950],\r\n warningHover: amber[300],\r\n warningSubtle: amber[950],\r\n error: red[400],\r\n onError: red[950],\r\n errorHover: red[300],\r\n errorSubtle: red[950],\r\n info: blue[400],\r\n onInfo: blue[950],\r\n infoHover: blue[300],\r\n infoSubtle: blue[950],\r\n // Interactive\r\n link: gray[50],\r\n linkHover: gray[200],\r\n linkVisited: gray[300],\r\n focus: gray[50],\r\n}\r\n\r\n","/**\r\n * Theme Presets - Ready-to-use color palettes for themes\r\n *\r\n * @example\r\n * ```ts\r\n * import { palettes, roseLight, createTheme, defaultTheme } from '@aurora-ui/theme'\r\n *\r\n * // Use a preset directly\r\n * const roseTheme = createTheme(defaultTheme, { colors: roseLight })\r\n *\r\n * // Or via the palettes object\r\n * const theme = createTheme(defaultTheme, {\r\n * colors: palettes.emerald.light\r\n * })\r\n * ```\r\n */\r\n\r\n// Default palette (indigo)\r\nexport { indigoLight, indigoDark } from './indigo'\r\n\r\n// Color palettes\r\nexport { blueLight, blueDark } from './blue'\r\nexport { roseLight, roseDark } from './rose'\r\nexport { emeraldLight, emeraldDark } from './emerald'\r\nexport { tealLight, tealDark } from './teal'\r\nexport { violetLight, violetDark } from './violet'\r\nexport { amberLight, amberDark } from './amber'\r\nexport { cyanLight, cyanDark } from './cyan'\r\n\r\n// Neutral palettes\r\nexport { slateLight, slateDark } from './slate'\r\nexport { grayLight, grayDark } from './gray'\r\n\r\n// Import for palettes object\r\nimport { amberLight, amberDark } from './amber'\r\nimport { blueLight, blueDark } from './blue'\r\nimport { cyanLight, cyanDark } from './cyan'\r\nimport { emeraldLight, emeraldDark } from './emerald'\r\nimport { grayLight, grayDark } from './gray'\r\nimport { indigoLight, indigoDark } from './indigo'\r\nimport { roseLight, roseDark } from './rose'\r\nimport { slateLight, slateDark } from './slate'\r\nimport { tealLight, tealDark } from './teal'\r\nimport { violetLight, violetDark } from './violet'\r\n\r\n/**\r\n * All available color palettes organized by name\r\n */\r\nexport const palettes = {\r\n // Default\r\n indigo: { light: indigoLight, dark: indigoDark },\r\n // Colors\r\n blue: { light: blueLight, dark: blueDark },\r\n rose: { light: roseLight, dark: roseDark },\r\n emerald: { light: emeraldLight, dark: emeraldDark },\r\n teal: { light: tealLight, dark: tealDark },\r\n violet: { light: violetLight, dark: violetDark },\r\n amber: { light: amberLight, dark: amberDark },\r\n cyan: { light: cyanLight, dark: cyanDark },\r\n // Neutrals\r\n slate: { light: slateLight, dark: slateDark },\r\n gray: { light: grayLight, dark: grayDark },\r\n} as const\r\n\r\n","import { indigoLight, indigoDark } from './palettes'\r\n\r\nimport type { Theme } from '@/types'\r\n\r\n\r\n/**\r\n * Default spacing scale\r\n */\r\nexport const defaultSpacing: Theme['spacing'] = {\r\n none: '0',\r\n '2xs': '0.125rem', // 2px\r\n xs: '0.25rem', // 4px\r\n sm: '0.5rem', // 8px\r\n md: '1rem', // 16px\r\n lg: '1.5rem', // 24px\r\n xl: '2rem', // 32px\r\n '2xl': '3rem', // 48px\r\n '3xl': '4rem', // 64px\r\n '4xl': '6rem', // 96px\r\n '5xl': '8rem', // 128px\r\n}\r\n\r\n/**\r\n * Default border radius scale\r\n */\r\nexport const defaultRadius: Theme['radius'] = {\r\n none: '0',\r\n xs: '0.125rem', // 2px\r\n sm: '0.25rem', // 4px\r\n md: '0.375rem', // 6px\r\n lg: '0.5rem', // 8px\r\n xl: '0.75rem', // 12px\r\n full: '9999px',\r\n}\r\n\r\n/**\r\n * Default shadow scale\r\n */\r\nexport const defaultShadows: Theme['shadows'] = {\r\n none: 'none',\r\n xs: '0 1px 2px 0 rgb(0 0 0 / 0.05)',\r\n sm: '0 1px 3px 0 rgb(0 0 0 / 0.1), 0 1px 2px -1px rgb(0 0 0 / 0.1)',\r\n md: '0 4px 6px -1px rgb(0 0 0 / 0.1), 0 2px 4px -2px rgb(0 0 0 / 0.1)',\r\n lg: '0 10px 15px -3px rgb(0 0 0 / 0.1), 0 4px 6px -4px rgb(0 0 0 / 0.1)',\r\n xl: '0 20px 25px -5px rgb(0 0 0 / 0.1), 0 8px 10px -6px rgb(0 0 0 / 0.1)',\r\n}\r\n\r\n/**\r\n * Default font size scale\r\n */\r\nexport const defaultFontSize: Theme['fontSize'] = {\r\n '2xs': '0.625rem', // 10px\r\n xs: '0.75rem', // 12px\r\n sm: '0.875rem', // 14px\r\n md: '1rem', // 16px\r\n lg: '1.25rem', // 20px\r\n xl: '1.5rem', // 24px\r\n '2xl': '2rem', // 32px\r\n '3xl': '2.5rem', // 40px\r\n '4xl': '3rem', // 48px\r\n '5xl': '4rem', // 64px\r\n}\r\n\r\n/**\r\n * Default font weight scale\r\n */\r\nexport const defaultFontWeight: Theme['fontWeight'] = {\r\n light: 300,\r\n regular: 400,\r\n medium: 500,\r\n semibold: 600,\r\n bold: 700,\r\n}\r\n\r\n/**\r\n * Default line height scale\r\n */\r\nexport const defaultLineHeight: Theme['lineHeight'] = {\r\n none: 1,\r\n tight: 1.25,\r\n normal: 1.5,\r\n relaxed: 1.75,\r\n}\r\n\r\n/**\r\n * Default z-index scale\r\n */\r\nexport const defaultZIndex: Theme['zIndex'] = {\r\n behind: -1,\r\n base: 0,\r\n dropdown: 1000,\r\n overlay: 1300,\r\n modal: 1400,\r\n tooltip: 1600,\r\n}\r\n\r\n/**\r\n * Default transition scale\r\n */\r\nexport const defaultTransition: Theme['transition'] = {\r\n fast: '150ms ease-out',\r\n normal: '250ms ease-out',\r\n slow: '350ms ease-out',\r\n}\r\n\r\n/**\r\n * Default colors (using indigo palette)\r\n */\r\nexport const defaultColors = indigoLight\r\n\r\n/**\r\n * Default dark colors (using indigo palette)\r\n */\r\nexport const defaultDarkColors = indigoDark\r\n\r\n/**\r\n * Complete default light theme\r\n */\r\nexport const defaultTheme: Theme = {\r\n colors: defaultColors,\r\n spacing: defaultSpacing,\r\n radius: defaultRadius,\r\n shadows: defaultShadows,\r\n fontSize: defaultFontSize,\r\n fontWeight: defaultFontWeight,\r\n lineHeight: defaultLineHeight,\r\n zIndex: defaultZIndex,\r\n transition: defaultTransition,\r\n}\r\n\r\n/**\r\n * Complete default dark theme\r\n */\r\nexport const defaultDarkTheme: Theme = {\r\n ...defaultTheme,\r\n colors: defaultDarkColors,\r\n}\r\n","\r\nimport {\r\n cacheKeyToSuffix,\r\n createCacheKey,\r\n createLRUCache,\r\n generateCssClass,\r\n getTheme,\r\n MAX_CACHE_SIZE,\r\n toKebabCaseClassName\r\n} from './styleEngine'\r\n\r\nimport type { StyleFunction, StyleWithPseudos } from './types'\r\nimport type { Theme } from '@/types'\r\n\r\n/**\r\n * Extract component name from stack trace\r\n */\r\nconst getComponentNameFromStack = (): string => {\r\n const stack = new Error().stack || ''\r\n const match = stack.match(/([A-Za-z0-9_]+)\\.styles\\.[tj]s/)\r\n if (match?.[1]) {\r\n return toKebabCaseClassName(match[1])\r\n }\r\n const fileMatch = stack.match(/\\/([A-Za-z0-9_]+)\\.[tj]sx?[:\\d]*\\)?$/m)\r\n if (fileMatch?.[1] && fileMatch[1] !== 'createStyles') {\r\n return toKebabCaseClassName(fileMatch[1])\r\n }\r\n return 'style'\r\n}\r\n\r\n/**\r\n * Process styles and generate CSS classes\r\n */\r\nconst processStyles = <T extends Record<string, StyleWithPseudos | StyleFunction>>(\r\n styles: T,\r\n componentName: string\r\n): Record<string, string | ((...args: unknown[]) => string)> => {\r\n const classes = {} as Record<string, string | ((...args: unknown[]) => string)>\r\n\r\n for (const key in styles) {\r\n const style = styles[key]\r\n if (style) {\r\n const baseName = `${componentName}-${toKebabCaseClassName(key)}`\r\n if (typeof style === 'function') {\r\n const lru = createLRUCache<string>(MAX_CACHE_SIZE)\r\n classes[key] = (...args: unknown[]) => {\r\n const cacheKey = createCacheKey(args)\r\n return lru.getOrSet(cacheKey, () => {\r\n const resolved = (style as (...a: unknown[]) => StyleWithPseudos)(...args)\r\n return generateCssClass(resolved, `${baseName}-${cacheKeyToSuffix(cacheKey)}`)\r\n })\r\n }\r\n } else {\r\n classes[key] = generateCssClass(style, baseName, true)\r\n }\r\n }\r\n }\r\n\r\n return classes\r\n}\r\n\r\n/**\r\n * Create typed styles with support for pseudo-classes, media queries, container queries, feature queries and complex selectors\r\n *\r\n * Supports custom extended themes via generic parameter.\r\n *\r\n * @example\r\n * ```ts\r\n * // Basic usage with default theme\r\n * const STYLES = createStyles((theme) => ({\r\n * root: {\r\n * display: 'flex',\r\n * padding: theme.spacing.md,\r\n * ':hover': { backgroundColor: theme.colors.backgroundHover },\r\n * }\r\n * }))\r\n *\r\n * // With custom extended theme\r\n * type MyTheme = Theme & { colors: BaseColors & { accent: string } }\r\n *\r\n * const STYLES = createStyles<MyTheme>((theme) => ({\r\n * root: {\r\n * backgroundColor: theme.colors.accent, // TypeScript knows about accent!\r\n * }\r\n * }))\r\n * ```\r\n */\r\nexport const createStyles = <\r\n TTheme extends Theme = Theme,\r\n T extends Record<string, StyleWithPseudos | StyleFunction> = Record<string, StyleWithPseudos | StyleFunction>\r\n>(\r\n stylesOrCreator: T | ((theme: TTheme) => T)\r\n ): { [K in keyof T]: T[K] extends (...args: infer TArgs) => StyleWithPseudos ? (...args: TArgs) => string : string } => {\r\n type Result = { [K in keyof T]: T[K] extends (...args: infer TArgs) => StyleWithPseudos ? (...args: TArgs) => string : string }\r\n const componentName = getComponentNameFromStack()\r\n\r\n // Styles with theme (function)\r\n if (typeof stylesOrCreator === 'function') {\r\n let cached: Result | null = null\r\n let lastTheme: TTheme | undefined\r\n\r\n return new Proxy({} as Result, {\r\n get(_, prop: string | symbol) {\r\n const theme = getTheme() as TTheme | undefined\r\n if (!theme) {\r\n throw new Error('createStyles: Theme context not found. Make sure you are using this inside a ThemeProvider.')\r\n }\r\n if (theme !== lastTheme || !cached) {\r\n cached = processStyles(stylesOrCreator(theme), componentName) as Result\r\n lastTheme = theme\r\n }\r\n return cached[prop as keyof T]\r\n }\r\n })\r\n }\r\n\r\n // Styles without theme (direct object)\r\n return processStyles(stylesOrCreator, componentName) as Result\r\n}\r\n\r\n","import {\r\n addKeyframes,\r\n getNextKeyframeId,\r\n hashString,\r\n hasKeyframes,\r\n insertRule,\r\n objectToCss\r\n} from './styleEngine'\r\n\r\nimport type { CSSProperties } from 'react'\r\n\r\n\r\n/**\r\n * Create and inject keyframes\r\n *\r\n * @example\r\n * ```ts\r\n * const fadeIn = keyframes({\r\n * from: { opacity: 0 },\r\n * to: { opacity: 1 }\r\n * })\r\n *\r\n * const STYLES = createStyles({\r\n * animated: { animation: `${fadeIn} 0.3s ease-in-out` }\r\n * })\r\n * ```\r\n */\r\nexport const keyframes = (frames: Record<string, CSSProperties>): string => {\r\n // Generate keyframes CSS\r\n let css = ''\r\n for (const key in frames) {\r\n css += `${key}{${objectToCss(frames[key] as Record<string, unknown>)}}`\r\n }\r\n\r\n // Check if these keyframes already exist\r\n if (hasKeyframes(css)) {\r\n const hash = hashString(css)\r\n return `aurora-kf-${hash}`\r\n }\r\n\r\n // Generate a unique name\r\n const name = `aurora-kf-${getNextKeyframeId()}`\r\n\r\n // Inject @keyframes rule\r\n insertRule(`@keyframes ${name}{${css}}`)\r\n addKeyframes(css)\r\n\r\n return name\r\n}\r\n\r\n","import { addFontFace, hasFontFace, insertRule } from './styleEngine'\r\n\r\nimport type { FontFaceOptions } from './types'\r\n\r\n/**\r\n * Inject a @font-face rule\r\n *\r\n * @example\r\n * ```ts\r\n * fontFace({\r\n * fontFamily: 'MyFont',\r\n * src: \"url('/fonts/myfont.woff2') format('woff2')\",\r\n * fontWeight: 400,\r\n * fontStyle: 'normal',\r\n * fontDisplay: 'swap'\r\n * })\r\n * ```\r\n */\r\nexport const fontFace = (options: FontFaceOptions): string => {\r\n const {\r\n fontFamily,\r\n src,\r\n fontStyle = 'normal',\r\n fontWeight = 400,\r\n fontDisplay = 'swap',\r\n unicodeRange\r\n } = options\r\n\r\n // Generate CSS\r\n let css = `font-family:\"${fontFamily}\";`\r\n css += `src:${src};`\r\n css += `font-style:${fontStyle};`\r\n css += `font-weight:${fontWeight};`\r\n css += `font-display:${fontDisplay};`\r\n if (unicodeRange) {\r\n css += `unicode-range:${unicodeRange};`\r\n }\r\n\r\n // Check if already injected\r\n if (!hasFontFace(css)) {\r\n insertRule(`@font-face{${css}}`)\r\n addFontFace(css)\r\n }\r\n\r\n return fontFamily\r\n}\r\n\r\n","import { insertRule, toKebabCase } from './styleEngine'\r\n\r\nimport type { Theme } from '@/types'\r\n\r\n\r\n/**\r\n * Generate CSS variables from a theme object\r\n */\r\nconst generateCssVariables = (obj: Record<string, unknown>, prefix: string): string => {\r\n let css = ''\r\n\r\n for (const key in obj) {\r\n const value = obj[key]\r\n const varName = `--${prefix}-${toKebabCase(key)}`\r\n\r\n if (value && typeof value === 'object') {\r\n css += generateCssVariables(value as Record<string, unknown>, `${prefix}-${toKebabCase(key)}`)\r\n } else if (value != null) {\r\n css += `${varName}:${value};`\r\n }\r\n }\r\n\r\n return css\r\n}\r\n\r\n/**\r\n * Create CSS variables from the theme\r\n * Injects variables into :root\r\n *\r\n * @example\r\n * ```ts\r\n * // In ThemeProvider\r\n * injectCssVariables(theme, 'aurora')\r\n * // Generates: :root { --aurora-colors-primary: #2563EB; ... }\r\n * ```\r\n */\r\nexport const injectCssVariables = (theme: Theme, prefix = 'theme'): void => {\r\n const variables = generateCssVariables(theme, prefix)\r\n insertRule(`:root{${variables}}`)\r\n}\r\n\r\n/**\r\n * Helper to use a CSS variable from the theme\r\n *\r\n * @example\r\n * ```ts\r\n * const STYLES = createStyles({\r\n * root: { color: cssVar('colors-primary') }\r\n * })\r\n * // Generates: color: var(--theme-colors-primary)\r\n * ```\r\n */\r\nexport const cssVar = (path: string, fallback?: string): string => {\r\n const varName = `--theme-${path.replace(/\\./g, '-')}`\r\n return fallback ? `var(${varName}, ${fallback})` : `var(${varName})`\r\n}\r\n\r\n/**\r\n * Create CSS variable references from a typed object\r\n * Returns an object with the same structure where values are var() references\r\n *\r\n * @example\r\n * ```ts\r\n * const vars = cssVariables({\r\n * primaryColor: '#007bff',\r\n * spacing: '1rem',\r\n * })\r\n * // vars.primaryColor === 'var(--primary-color)'\r\n * ```\r\n */\r\nexport const cssVariables = <T extends Record<string, string | number>>(\r\n variables: T,\r\n options: { prefix?: string; inject?: boolean } = {}\r\n): { [K in keyof T]: string } => {\r\n const { prefix = '', inject = false } = options\r\n const result = {} as { [K in keyof T]: string }\r\n let cssToInject = ''\r\n\r\n for (const key in variables) {\r\n const kebabKey = toKebabCase(key)\r\n const varName = prefix ? `--${prefix}-${kebabKey}` : `--${kebabKey}`\r\n result[key] = `var(${varName})`\r\n\r\n if (inject) {\r\n cssToInject += `${varName}:${variables[key]};`\r\n }\r\n }\r\n\r\n if (inject && cssToInject) {\r\n insertRule(`:root{${cssToInject}}`)\r\n }\r\n\r\n return result\r\n}\r\n\r\n","import { getSSRRulesInternal, resetState } from './styleEngine'\r\n\r\n/**\r\n * SSR: Get all collected CSS rules as a single string\r\n * @returns The CSS content to inject into HTML\r\n */\r\nexport const getSSRStyles = (): string => {\r\n return getSSRRulesInternal().join('')\r\n}\r\n\r\n/**\r\n * SSR: Get styles as a <style> tag ready to inject\r\n * @returns The complete style tag to inject into <head>\r\n */\r\nexport const getSSRStyleTag = (): string => {\r\n const css = getSSRStyles()\r\n if (!css) { return '' }\r\n return `<style id=\"aurora-styles\">${css}</style>`\r\n}\r\n\r\n/**\r\n * SSR: Clear the collected rules buffer\r\n * Call at the beginning of each SSR request to ensure clean state\r\n */\r\nexport const clearSSRRules = (): void => {\r\n resetState()\r\n}\r\n\r\n/**\r\n * SSR: Get raw CSS rules as an array\r\n * @returns Array of CSS rules\r\n */\r\nexport const getSSRRulesArray = (): string[] => {\r\n return [...getSSRRulesInternal()]\r\n}\r\n\r\n"]}
|
|
1
|
+
{"version":3,"sources":["../src/utils/styles/styleEngine.ts","../src/providers/ThemeProvider.tsx","../src/utils/theme/createTheme.ts","../src/utils/theme/colors/gray.ts","../src/utils/theme/colors/slate.ts","../src/utils/theme/colors/stone.ts","../src/utils/theme/colors/red.ts","../src/utils/theme/colors/orange.ts","../src/utils/theme/colors/amber.ts","../src/utils/theme/colors/yellow.ts","../src/utils/theme/colors/lime.ts","../src/utils/theme/colors/green.ts","../src/utils/theme/colors/emerald.ts","../src/utils/theme/colors/teal.ts","../src/utils/theme/colors/cyan.ts","../src/utils/theme/colors/sky.ts","../src/utils/theme/colors/blue.ts","../src/utils/theme/colors/indigo.ts","../src/utils/theme/colors/violet.ts","../src/utils/theme/colors/purple.ts","../src/utils/theme/colors/fuchsia.ts","../src/utils/theme/colors/pink.ts","../src/utils/theme/colors/rose.ts","../src/utils/theme/colors/index.ts","../src/utils/theme/palettes/shared.ts","../src/utils/theme/palettes/indigo.ts","../src/utils/theme/palettes/blue.ts","../src/utils/theme/palettes/rose.ts","../src/utils/theme/palettes/emerald.ts","../src/utils/theme/palettes/teal.ts","../src/utils/theme/palettes/violet.ts","../src/utils/theme/palettes/amber.ts","../src/utils/theme/palettes/cyan.ts","../src/utils/theme/palettes/slate.ts","../src/utils/theme/palettes/gray.ts","../src/utils/theme/palettes/index.ts","../src/utils/theme/defaultTheme.ts","../src/utils/styles/createStyles.ts","../src/utils/styles/keyframes.ts","../src/utils/styles/fontFace.ts","../src/utils/styles/cssVariables.ts","../src/utils/styles/ssr.ts","../src/utils/contrast/index.ts"],"names":["IS_SERVER","themeContextGetter","styleSheet","ssrRules","cssKeyCache","staticStyleCache","usedClassNames","injectedKeyframes","injectedFontFaces","keyframeCounter","UNITLESS_PROPERTIES","MAX_CACHE_SIZE","existingStyle","style","setThemeContextGetter","getter","previous","getTheme","insertRule","rule","toKebabCase","key","cached","toKebabCaseClassName","name","CSS_INJECTION_PATTERNS","sanitizeCssValue","value","cleaned","__DEV__","toCssValue","objectToCss","obj","parts","createCacheKey","args","len","result","i","arg","t","cacheKeyToSuffix","hash","createLRUCache","maxSize","cache","factory","existing","firstKey","hashStyles","styles","str","hashString","getUniqueClassName","baseName","counter","generateCssClass","className","useCache","uniqueName","baseParts","specialRules","firstChar","innerCss","resolvedSelector","hasKeyframes","css","addKeyframes","getNextKeyframeId","hasFontFace","addFontFace","getSSRRulesInternal","resetState","ThemeContext","createContext","ThemeProvider","theme","children","previousGetter","useLayoutEffect","jsx","useTheme","useContext","hashObject","themeCache","MAX_THEME_CACHE_SIZE","deepMerge","target","source","sourceValue","targetValue","createTheme","baseTheme","overrides","cacheKey","mergeThemes","acc","override","createThemeVariant","variantOverrides","gray","slate","stone","red","orange","amber","yellow","lime","green","emerald","teal","cyan","sky","blue","indigo","violet","purple","fuchsia","pink","rose","white","black","transparent","current","colors","neutralLight","neutralDark","indigoLight","indigoDark","blueLight","blueDark","roseLight","roseDark","emeraldLight","emeraldDark","tealLight","tealDark","violetLight","violetDark","amberLight","amberDark","cyanLight","cyanDark","slateLight","slateDark","grayLight","grayDark","palettes","defaultSpacing","defaultRadius","defaultShadows","defaultFontSize","defaultFontWeight","defaultLineHeight","defaultZIndex","defaultTransition","defaultOpacity","defaultColors","defaultDarkColors","defaultTheme","defaultDarkTheme","getComponentNameFromStack","stack","match","fileMatch","processStyles","componentName","classes","lru","resolved","createStyles","stylesOrCreator","lastTheme","_","prop","keyframes","frames","fontFace","options","fontFamily","src","fontStyle","fontWeight","fontDisplay","unicodeRange","generateCssVariables","prefix","varName","injectCssVariables","variables","cssVar","path","fallback","cssVariables","inject","cssToInject","kebabKey","getSSRStyles","getSSRStyleTag","clearSSRRules","getSSRRulesArray","hexToRgb","hex","cleanHex","fullHex","c","num","getLuminance","g","b","rs","gs","bs","sRGB","getContrastRatio","foreground","background","fgRgb","bgRgb","fgLuminance","bgLuminance","lighter","darker","meetsWCAG","level","largeText","ratio","checkContrast","THEME_COLOR_PAIRS","checkThemeContrast","issues","required","requiredLarge","fgKey","bgKey","pairName","suggestContrastColor","targetRatio","isLightBg","bestColor","bestRatio","factor","newR","newG","newB","newHex","newRatio"],"mappings":"gFAIA,IAAMA,EAAAA,CAAY,OAAO,QAAA,CAAa,IAGlCC,EAAAA,CAAuD,IAAA,CAGvDC,EAAmC,IAAA,CAGnCC,EAAAA,CAAqB,EAAC,CAGpBC,EAAAA,CAAc,IAAI,GAAA,CAAoB,CACxC,CAAC,kBAAmB,kBAAkB,CAAA,CACtC,CAAC,cAAA,CAAgB,eAAe,EAChC,CAAC,UAAA,CAAY,WAAW,CAAA,CACxB,CAAC,YAAA,CAAc,aAAa,CAAA,CAC5B,CAAC,YAAA,CAAc,aAAa,CAAA,CAC5B,CAAC,YAAa,YAAY,CAAA,CAC1B,CAAC,cAAA,CAAgB,eAAe,CAAA,CAChC,CAAC,YAAA,CAAc,aAAa,EAC5B,CAAC,aAAA,CAAe,cAAc,CAAA,CAC9B,CAAC,YAAA,CAAc,aAAa,CAAA,CAC5B,CAAC,gBAAiB,gBAAgB,CAAA,CAClC,CAAC,aAAA,CAAe,cAAc,CAAA,CAC9B,CAAC,cAAA,CAAgB,eAAe,CAAA,CAChC,CAAC,WAAA,CAAa,YAAY,EAC1B,CAAC,gBAAA,CAAkB,iBAAiB,CAAA,CACpC,CAAC,aAAc,aAAa,CAAA,CAC5B,CAAC,eAAA,CAAiB,gBAAgB,CAAA,CAClC,CAAC,UAAA,CAAY,WAAW,CAAA,CACxB,CAAC,WAAA,CAAa,YAAY,EAC1B,CAAC,QAAA,CAAU,SAAS,CACxB,CAAC,CAAA,CAGKC,GAAmB,IAAI,GAAA,CAGvBC,EAAiB,IAAI,GAAA,CAGrBC,GAAoB,IAAI,GAAA,CAGxBC,EAAAA,CAAoB,IAAI,GAAA,CAG1BC,EAAAA,CAAkB,EAGhBC,EAAAA,CAAsB,IAAI,IAAI,CAChC,yBAAA,CAA2B,cAAe,aAAA,CAAe,UAAA,CAAY,YAAA,CACrE,YAAA,CAAc,YAAA,CAAc,SAAA,CAAW,QAAS,SAAA,CAAW,QAAA,CAAU,SAAU,MACnF,CAAC,EAGYC,EAAAA,CAAiB,GAAA,CAG9B,GAAI,CAACX,EAAAA,CAAW,CACZ,IAAMY,CAAAA,CAAgB,QAAA,CAAS,cAAA,CAAe,eAAe,CAAA,CAC7D,GAAIA,EACAV,CAAAA,CAAaU,CAAAA,CAAc,KAAA,CAAA,KACxB,CACH,IAAMC,CAAAA,CAAQ,SAAS,aAAA,CAAc,OAAO,EAC5CA,CAAAA,CAAM,EAAA,CAAK,gBACX,QAAA,CAAS,IAAA,CAAK,WAAA,CAAYA,CAAK,CAAA,CAC/BX,CAAAA,CAAaW,EAAM,MACvB,CACJ,CAKO,IAAMC,CAAAA,CAAyBC,CAAAA,EAA+E,CACjH,IAAMC,CAAAA,CAAWf,EAAAA,CACjB,OAAAA,EAAAA,CAAqBc,CAAAA,CACdC,CACX,CAAA,CAKaC,EAAAA,CAAW,IACbhB,EAAAA,IAAqB,CAMnBiB,EAAcC,CAAAA,EAAuB,CAC9C,GAAInB,EAAAA,CACAG,EAAAA,CAAS,IAAA,CAAKgB,CAAI,CAAA,CAAA,KAAA,GACXjB,CAAAA,CACP,GAAI,CACAA,CAAAA,CAAW,UAAA,CAAWiB,EAAMjB,CAAAA,CAAW,QAAA,CAAS,MAAM,EAC1D,CAAA,KAAQ,CAER,CAER,CAAA,CAKakB,CAAAA,CAAeC,GAAwB,CAChD,IAAIC,EAASlB,EAAAA,CAAY,GAAA,CAAIiB,CAAG,CAAA,CAChC,OAAKC,CAAAA,GACDA,EAASD,CAAAA,CAAI,OAAA,CAAQ,WAAY,KAAK,CAAA,CAAE,aAAY,CACpDjB,EAAAA,CAAY,GAAA,CAAIiB,CAAAA,CAAKC,CAAM,CAAA,CAAA,CAExBA,CACX,CAAA,CAKaC,CAAAA,CAAwBC,GAC1BA,CAAAA,CACF,OAAA,CAAQ,kBAAmB,OAAO,CAAA,CAClC,OAAA,CAAQ,uBAAA,CAAyB,OAAO,CAAA,CACxC,aAAY,CAYfC,EAAAA,CAAyB,4FAAA,CAMlBC,EAAAA,CAAoBC,CAAAA,EAA0B,CAEvD,IAAMC,CAAAA,CAAUD,CAAAA,CAAM,OAAA,CAAQ,KAAA,CAAO,EAAE,CAAA,CAGvC,OAAIF,EAAAA,CAAuB,IAAA,CAAKG,CAAO,CAAA,EAC/BC,EAAAA,EACA,QAAQ,IAAA,CAAK,CAAA,mDAAA,EAAsDF,CAAAA,CAAM,KAAA,CAAM,CAAA,CAAG,EAAE,CAAC,CAAA,IAAA,CAAM,CAAA,CAExF,OAAA,EAGJC,CACX,CAAA,CAGMC,EAAAA,CAAU,OAAO,OAAA,CAAY,GAAA,EAAe,OAAA,CAAQ,GAAA,EAAK,QAAA,GAAa,YAAA,CAK/DC,GAAa,CAACT,CAAAA,CAAaM,IAChC,OAAOA,CAAAA,EAAU,UAAY,CAACjB,EAAAA,CAAoB,GAAA,CAAIW,CAAG,CAAA,CAClD,CAAA,EAAGM,CAAK,CAAA,EAAA,CAAA,CAEZD,EAAAA,CAAiB,MAAA,CAAOC,CAAK,CAAC,CAAA,CAO5BI,EAAeC,CAAAA,EAAyC,CACjE,IAAMC,CAAAA,CAAkB,EAAC,CACzB,QAAWZ,CAAAA,IAAOW,CAAAA,CAAK,CACnB,IAAML,CAAAA,CAAQK,EAAIX,CAAG,CAAA,CACjBM,CAAAA,EAAS,IAAA,EAAQ,OAAOA,CAAAA,EAAU,UAClCM,CAAAA,CAAM,IAAA,CAAK,GAAGb,CAAAA,CAAYC,CAAG,CAAC,CAAA,CAAA,EAAIS,EAAAA,CAAWT,CAAAA,CAAKM,CAAK,CAAC,CAAA,CAAE,EAElE,CACA,OAAOM,EAAM,IAAA,CAAK,GAAG,GAAKA,CAAAA,CAAM,MAAA,CAAS,GAAA,CAAM,EAAA,CACnD,EAYO,IAAMC,GAAkBC,CAAAA,EAA4B,CACvD,IAAMC,CAAAA,CAAMD,CAAAA,CAAK,MAAA,CACjB,GAAIC,CAAAA,EAAO,CAAA,CAAG,CACV,IAAIC,CAAAA,CAAS,EAAA,CACb,QAASC,CAAAA,CAAI,CAAA,CAAGA,EAAIF,CAAAA,CAAKE,CAAAA,EAAAA,CAAK,CAC1B,IAAMC,CAAAA,CAAMJ,CAAAA,CAAKG,CAAC,CAAA,CACZE,CAAAA,CAAI,OAAOD,CAAAA,CACjB,GAAIA,CAAAA,GAAQ,MAAA,CACRF,CAAAA,EAAUC,CAAAA,CAAI,KAAO,GAAA,CAAA,KAAA,GACdC,CAAAA,GAAQ,IAAA,CACfF,CAAAA,EAAUC,CAAAA,CAAI,IAAA,CAAO,YACdE,CAAAA,GAAM,QAAA,EAAYA,IAAM,QAAA,EAAYA,CAAAA,GAAM,UACjDH,CAAAA,EAAUC,CAAAA,CAAI,GAAA,CAAMC,CAAAA,CAAM,MAAA,CAAOA,CAAG,OAEpC,OAAO,IAAA,CAAK,SAAA,CAAUJ,CAAI,CAElC,CACA,OAAOE,CACX,CACA,OAAO,IAAA,CAAK,SAAA,CAAUF,CAAI,CAC9B,CAAA,CAKaM,EAAAA,CAAoBpB,GAAwB,CACrD,GAAIA,IAAQ,MAAA,EAAUA,CAAAA,GAAQ,OAAA,EAAW,SAAA,CAAU,IAAA,CAAKA,CAAG,EACvD,OAAOA,CAAAA,CAEX,GAAI,mBAAA,CAAoB,IAAA,CAAKA,CAAG,CAAA,CAC5B,OAAOE,CAAAA,CAAqBF,CAAG,CAAA,CAEnC,IAAIqB,EAAO,IAAA,CACX,IAAA,IAASJ,EAAI,CAAA,CAAGA,CAAAA,CAAIjB,EAAI,MAAA,CAAQiB,CAAAA,EAAAA,CAC5BI,CAAAA,CAAAA,CAASA,CAAAA,EAAQ,CAAA,EAAKA,CAAAA,CAAQrB,EAAI,UAAA,CAAWiB,CAAC,CAAA,CAElD,OAAA,CAAQI,CAAAA,GAAS,CAAA,EAAG,SAAS,EAAE,CACnC,CAAA,CAKaC,EAAAA,CAAqBC,CAAAA,EAAwE,CACtG,IAAMC,CAAAA,CAAQ,IAAI,IAClB,OAAO,CACH,SAASxB,CAAAA,CAAayB,CAAAA,CAAqB,CACvC,IAAMC,CAAAA,CAAWF,CAAAA,CAAM,IAAIxB,CAAG,CAAA,CAC9B,GAAI0B,CAAAA,GAAa,MAAA,CAEb,OAAAF,EAAM,MAAA,CAAOxB,CAAG,CAAA,CAChBwB,CAAAA,CAAM,GAAA,CAAIxB,CAAAA,CAAK0B,CAAQ,CAAA,CAChBA,CAAAA,CAEX,IAAMpB,CAAAA,CAAQmB,CAAAA,GACd,GAAID,CAAAA,CAAM,IAAA,EAAQD,CAAAA,CAAS,CAEvB,IAAMI,EAAWH,CAAAA,CAAM,IAAA,EAAK,CAAE,IAAA,EAAK,CAAE,KAAA,CACjCG,IAAa,MAAA,EAAaH,CAAAA,CAAM,MAAA,CAAOG,CAAQ,EACvD,CACA,OAAAH,CAAAA,CAAM,GAAA,CAAIxB,EAAKM,CAAK,CAAA,CACbA,CACX,CACJ,CACJ,CAAA,CAKasB,EAAAA,CAAcC,CAAAA,EAAqC,CAC5D,IAAMC,CAAAA,CAAM,IAAA,CAAK,UAAUD,CAAM,CAAA,CAC7BR,EAAO,IAAA,CACX,IAAA,IAASJ,CAAAA,CAAI,CAAA,CAAGA,CAAAA,CAAIa,CAAAA,CAAI,OAAQb,CAAAA,EAAAA,CAC5BI,CAAAA,CAAAA,CAASA,GAAQ,CAAA,EAAKA,CAAAA,CAAQS,EAAI,UAAA,CAAWb,CAAC,CAAA,CAElD,OAAA,CAAQI,CAAAA,GAAS,CAAA,EAAG,SAAS,EAAE,CACnC,CAAA,CAKaU,EAAAA,CAAcD,CAAAA,EAAwB,CAC/C,IAAIT,CAAAA,CAAO,IAAA,CACX,IAAA,IAASJ,CAAAA,CAAI,CAAA,CAAGA,CAAAA,CAAIa,EAAI,MAAA,CAAQb,CAAAA,EAAAA,CAC5BI,GAASA,CAAAA,EAAQ,CAAA,EAAKA,EAAQS,CAAAA,CAAI,UAAA,CAAWb,CAAC,CAAA,CAElD,OAAA,CAAQI,CAAAA,GAAS,GAAG,QAAA,CAAS,EAAE,CACnC,CAAA,CAKaW,EAAAA,CAAsBC,CAAAA,EAA6B,CAC5D,GAAI,CAAChD,CAAAA,CAAe,GAAA,CAAIgD,CAAQ,CAAA,CAC5B,OAAAhD,CAAAA,CAAe,GAAA,CAAIgD,CAAQ,CAAA,CACpBA,CAAAA,CAEX,IAAIC,CAAAA,CAAU,CAAA,CACV/B,CAAAA,CAAO,CAAA,EAAG8B,CAAQ,CAAA,CAAA,EAAIC,CAAO,CAAA,CAAA,CACjC,KAAOjD,CAAAA,CAAe,GAAA,CAAIkB,CAAI,CAAA,EAC1BA,EAAO,CAAA,EAAG8B,CAAQ,CAAA,CAAA,EAAI,EAAEC,CAAO,CAAA,CAAA,CAEnC,OAAAjD,CAAAA,CAAe,GAAA,CAAIkB,CAAI,CAAA,CAChBA,CACX,EAMagC,EAAAA,CAAmB,CAACN,CAAAA,CAA0BO,CAAAA,CAAmBC,CAAAA,CAAW,KAAA,GAAkB,CACvG,GAAIA,CAAAA,CAAU,CACV,IAAMhB,CAAAA,CAAOO,GAAWC,CAAM,CAAA,CACxB5B,CAAAA,CAASjB,EAAAA,CAAiB,GAAA,CAAIqC,CAAI,EACxC,GAAIpB,CAAAA,CAAU,OAAOA,CACzB,CAEA,IAAMqC,CAAAA,CAAaN,EAAAA,CAAmBI,CAAS,CAAA,CACzCG,CAAAA,CAAsB,GACtBC,CAAAA,CAAyB,EAAC,CAEhC,IAAA,IAAWxC,CAAAA,IAAO6B,CAAAA,CAAQ,CACtB,IAAMvB,CAAAA,CAASuB,CAAAA,CAAmC7B,CAAG,CAAA,CAC/CyC,CAAAA,CAAYzC,EAAI,CAAC,CAAA,CAEvB,GAAIyC,CAAAA,GAAc,GAAA,CAAK,CAEnB,IAAMC,CAAAA,CAAWhC,CAAAA,CAAYJ,CAAgC,CAAA,CACzDoC,CAAAA,EACAF,EAAa,IAAA,CAAK,CAAA,EAAGxC,CAAG,CAAA,EAAA,EAAKsC,CAAU,CAAA,CAAA,EAAII,CAAQ,CAAA,EAAA,CAAI,EAE/D,CAAA,KAAA,GAAWD,CAAAA,GAAc,GAAA,CAAK,CAE1B,IAAMC,CAAAA,CAAWhC,CAAAA,CAAYJ,CAAgC,CAAA,CAC7D,GAAIoC,EAAU,CACV,IAAMC,CAAAA,CAAmB3C,CAAAA,CAAI,OAAA,CAAQ,IAAA,CAAM,IAAIsC,CAAU,CAAA,CAAE,CAAA,CAC3DE,CAAAA,CAAa,IAAA,CAAK,CAAA,EAAGG,CAAgB,CAAA,CAAA,EAAID,CAAQ,CAAA,CAAA,CAAG,EACxD,CACJ,CAAA,KAAA,GAAWD,IAAc,GAAA,CAAK,CAE1B,IAAMC,CAAAA,CAAWhC,CAAAA,CAAYJ,CAAgC,CAAA,CACzDoC,CAAAA,EACAF,CAAAA,CAAa,IAAA,CAAK,CAAA,CAAA,EAAIF,CAAU,GAAGtC,CAAG,CAAA,CAAA,EAAI0C,CAAQ,CAAA,CAAA,CAAG,EAE7D,CAAA,KAAWpC,GAAS,IAAA,EAAQ,OAAOA,CAAAA,EAAU,QAAA,EAEzCiC,CAAAA,CAAU,IAAA,CAAK,GAAGxC,CAAAA,CAAYC,CAAG,CAAC,CAAA,CAAA,EAAIS,EAAAA,CAAWT,EAAKM,CAAK,CAAC,CAAA,CAAE,EAEtE,CAGIiC,CAAAA,CAAU,QACV1C,CAAAA,CAAW,CAAA,CAAA,EAAIyC,CAAU,CAAA,CAAA,EAAIC,CAAAA,CAAU,IAAA,CAAK,GAAG,CAAC,CAAA,CAAA,CAAG,CAAA,CAEvD,IAAA,IAAWzC,CAAAA,IAAQ0C,CAAAA,CACf3C,EAAWC,CAAI,CAAA,CAGnB,OAAIuC,CAAAA,EACArD,EAAAA,CAAiB,IAAI4C,EAAAA,CAAWC,CAAM,CAAA,CAAGS,CAAU,CAAA,CAGhDA,CACX,EAKaM,EAAAA,CAAgBC,CAAAA,EAClB3D,EAAAA,CAAkB,GAAA,CAAI2D,CAAG,CAAA,CAMvBC,GAAgBD,CAAAA,EAAsB,CAC/C3D,EAAAA,CAAkB,GAAA,CAAI2D,CAAG,EAC7B,EAKaE,EAAAA,CAAoB,IAAA,CACrB,EAAE3D,EAAAA,EAAiB,QAAA,CAAS,EAAE,CAAA,CAM7B4D,EAAAA,CAAeH,CAAAA,EACjB1D,EAAAA,CAAkB,GAAA,CAAI0D,CAAG,EAMvBI,EAAAA,CAAeJ,CAAAA,EAAsB,CAC9C1D,EAAAA,CAAkB,GAAA,CAAI0D,CAAG,EAC7B,CAAA,CAKaK,EAAAA,CAAsB,IACxBpE,EAAAA,CAMEqE,EAAAA,CAAa,IAAY,CAClCrE,EAAAA,CAAW,GACXE,EAAAA,CAAiB,KAAA,GACjBC,CAAAA,CAAe,KAAA,EAAM,CACrBC,EAAAA,CAAkB,KAAA,EAAM,CACxBC,GAAkB,KAAA,EAAM,CACxBC,GAAkB,EACtB,CAAA,CCvZA,IAAMgE,EAAAA,CAAeC,mBAAAA,CAAiC,MAAS,EAwBlDC,EAAAA,CAAgB,CAAkB,CAC3C,KAAA,CAAAC,CAAAA,CACA,SAAAC,CACJ,CAAA,GAA6B,CACzB,IAAMC,CAAAA,CAAiBhE,CAAAA,CAAsB,IAAM8D,CAAK,CAAA,CAExD,OAAAG,qBAAAA,CAAgB,IACL,IAAM,CACTjE,CAAAA,CAAsBgE,CAAc,EACxC,CAAA,CACD,CAACA,CAAc,CAAC,CAAA,CAGfE,cAAAA,CAACP,GAAa,QAAA,CAAb,CAAsB,MAAOG,CAAAA,CACzB,QAAA,CAAAC,CAAAA,CACL,CAER,CAAA,CAiBaI,EAAAA,CAAW,IAAkC,CACtD,IAAML,CAAAA,CAAQM,gBAAAA,CAAWT,EAAY,CAAA,CAErC,GAAI,CAACG,CAAAA,CACD,MAAM,IAAI,KAAA,CAAM,8CAA8C,EAGlE,OAAOA,CACX,ECnEA,IAAMO,EAAAA,CAAcnD,GAAyB,CACzC,IAAMmB,CAAAA,CAAM,IAAA,CAAK,SAAA,CAAUnB,CAAG,EAC1BU,CAAAA,CAAO,IAAA,CACX,IAAA,IAASJ,CAAAA,CAAI,CAAA,CAAGA,CAAAA,CAAIa,EAAI,MAAA,CAAQb,CAAAA,EAAAA,CAC5BI,CAAAA,CAAAA,CAASA,CAAAA,EAAQ,CAAA,EAAKA,CAAAA,CAAQS,EAAI,UAAA,CAAWb,CAAC,EAElD,OAAA,CAAQI,CAAAA,GAAS,GAAG,QAAA,CAAS,EAAE,CACnC,CAAA,CAKM0C,CAAAA,CAAa,IAAI,IAKVC,EAAAA,CAAuB,EAAA,KAmB9BC,EAAAA,CAAY,CAAoCC,EAAWC,CAAAA,GAA8B,CAC3F,IAAMnD,CAAAA,CAAS,CAAE,GAAGkD,CAAO,CAAA,CAE3B,IAAA,IAAWlE,KAAOmE,CAAAA,CAAQ,CACtB,IAAMC,CAAAA,CAAcD,CAAAA,CAAOnE,CAAG,CAAA,CACxBqE,CAAAA,CAAcH,CAAAA,CAAOlE,CAAG,CAAA,CAG1BoE,CAAAA,GAAgB,MAAA,EAChB,OAAOA,CAAAA,EAAgB,QAAA,EACvBA,IAAgB,IAAA,EAChB,CAAC,KAAA,CAAM,OAAA,CAAQA,CAAW,CAAA,EAC1B,OAAOC,CAAAA,EAAgB,QAAA,EACvBA,IAAgB,IAAA,CAEhBrD,CAAAA,CAAOhB,CAAG,CAAA,CAAIiE,EAAAA,CACVI,CAAAA,CACAD,CACJ,CAAA,CACOA,CAAAA,GAAgB,SACvBpD,CAAAA,CAAOhB,CAAG,CAAA,CAAIoE,CAAAA,EAEtB,CAEA,OAAOpD,CACX,CAAA,CAkBasD,EAAAA,CAAc,CACvBC,CAAAA,CACAC,CAAAA,GACI,CAEJ,IAAMC,CAAAA,CAAW,CAAA,EAAGX,GAAWS,CAAS,CAAC,IAAIT,EAAAA,CAAWU,CAAS,CAAC,CAAA,CAAA,CAE5DvE,CAAAA,CAAS8D,CAAAA,CAAW,IAAIU,CAAQ,CAAA,CACtC,GAAIxE,CAAAA,CACA,OAAOA,CAAAA,CAGX,IAAMe,CAAAA,CAASiD,EAAAA,CAAUM,CAAAA,CAAWC,CAAS,CAAA,CAG7C,GAAIT,EAAW,IAAA,EAAQC,EAAAA,CAAsB,CACzC,IAAMrC,CAAAA,CAAWoC,EAAW,IAAA,EAAK,CAAE,IAAA,EAAK,CAAE,KAAA,CACtCpC,CAAAA,EAAWoC,EAAW,MAAA,CAAOpC,CAAQ,EAC7C,CAEA,OAAAoC,EAAW,GAAA,CAAIU,CAAAA,CAAUzD,CAAM,CAAA,CACxBA,CACX,CAAA,CAgBa0D,GAAc,CACvBH,CAAAA,CAAAA,GACGC,IAEIA,CAAAA,CAAU,MAAA,CACb,CAACG,CAAAA,CAAKC,CAAAA,GAAaX,EAAAA,CAAUU,CAAAA,CAAKC,CAAQ,CAAA,CAC1CL,CACJ,CAAA,CAmBSM,EAAAA,CACTC,CAAAA,EAEQP,CAAAA,EAAoBD,EAAAA,CAAYC,CAAAA,CAAWO,CAAgB,ECrJhE,IAAMC,CAAAA,CAAmB,CAC5B,EAAA,CAAI,SAAA,CACJ,GAAI,SAAA,CACJ,GAAA,CAAK,UACL,GAAA,CAAK,SAAA,CACL,IAAK,SAAA,CACL,GAAA,CAAK,SAAA,CACL,GAAA,CAAK,SAAA,CACL,GAAA,CAAK,UACL,GAAA,CAAK,SAAA,CACL,GAAA,CAAK,SAAA,CACL,GAAA,CAAK,SAAA,CACL,IAAK,SACT,ECbO,IAAMC,CAAAA,CAAoB,CAC7B,EAAA,CAAI,UACJ,EAAA,CAAI,SAAA,CACJ,IAAK,SAAA,CACL,GAAA,CAAK,UACL,GAAA,CAAK,SAAA,CACL,GAAA,CAAK,SAAA,CACL,GAAA,CAAK,SAAA,CACL,IAAK,SAAA,CACL,GAAA,CAAK,SAAA,CACL,GAAA,CAAK,SAAA,CACL,GAAA,CAAK,UACL,GAAA,CAAK,SACT,ECbO,IAAMC,CAAAA,CAAoB,CAC7B,GAAI,SAAA,CACJ,EAAA,CAAI,UACJ,GAAA,CAAK,SAAA,CACL,IAAK,SAAA,CACL,GAAA,CAAK,SAAA,CACL,GAAA,CAAK,SAAA,CACL,GAAA,CAAK,UACL,GAAA,CAAK,SAAA,CACL,IAAK,SAAA,CACL,GAAA,CAAK,UACL,GAAA,CAAK,SAAA,CACL,GAAA,CAAK,SACT,ECbO,IAAMC,EAAkB,CAC3B,EAAA,CAAI,UACJ,EAAA,CAAI,SAAA,CACJ,IAAK,SAAA,CACL,GAAA,CAAK,SAAA,CACL,GAAA,CAAK,SAAA,CACL,GAAA,CAAK,UACL,GAAA,CAAK,SAAA,CACL,GAAA,CAAK,SAAA,CACL,GAAA,CAAK,SAAA,CACL,IAAK,SAAA,CACL,GAAA,CAAK,SAAA,CACL,GAAA,CAAK,SACT,MCbaC,CAAAA,CAAqB,CAC9B,GAAI,SAAA,CACJ,EAAA,CAAI,UACJ,GAAA,CAAK,SAAA,CACL,GAAA,CAAK,SAAA,CACL,GAAA,CAAK,SAAA,CACL,IAAK,SAAA,CACL,GAAA,CAAK,SAAA,CACL,GAAA,CAAK,SAAA,CACL,GAAA,CAAK,UACL,GAAA,CAAK,SAAA,CACL,GAAA,CAAK,SAAA,CACL,GAAA,CAAK,SACT,ECbO,IAAMC,CAAAA,CAAoB,CAC7B,EAAA,CAAI,SAAA,CACJ,GAAI,SAAA,CACJ,GAAA,CAAK,SAAA,CACL,GAAA,CAAK,SAAA,CACL,GAAA,CAAK,UACL,GAAA,CAAK,SAAA,CACL,GAAA,CAAK,SAAA,CACL,GAAA,CAAK,SAAA,CACL,IAAK,SAAA,CACL,GAAA,CAAK,SAAA,CACL,GAAA,CAAK,SAAA,CACL,GAAA,CAAK,SACT,ECbO,IAAMC,EAAqB,CAC9B,EAAA,CAAI,UACJ,EAAA,CAAI,SAAA,CACJ,GAAA,CAAK,SAAA,CACL,GAAA,CAAK,SAAA,CACL,IAAK,SAAA,CACL,GAAA,CAAK,UACL,GAAA,CAAK,SAAA,CACL,IAAK,SAAA,CACL,GAAA,CAAK,SAAA,CACL,GAAA,CAAK,SAAA,CACL,GAAA,CAAK,UACL,GAAA,CAAK,SACT,ECbO,IAAMC,CAAAA,CAAmB,CAC5B,EAAA,CAAI,SAAA,CACJ,EAAA,CAAI,SAAA,CACJ,GAAA,CAAK,SAAA,CACL,IAAK,SAAA,CACL,GAAA,CAAK,SAAA,CACL,GAAA,CAAK,SAAA,CACL,GAAA,CAAK,UACL,GAAA,CAAK,SAAA,CACL,GAAA,CAAK,SAAA,CACL,GAAA,CAAK,SAAA,CACL,IAAK,SAAA,CACL,GAAA,CAAK,SACT,ECbO,IAAMC,EAAoB,CAC7B,EAAA,CAAI,SAAA,CACJ,EAAA,CAAI,SAAA,CACJ,GAAA,CAAK,UACL,GAAA,CAAK,SAAA,CACL,GAAA,CAAK,SAAA,CACL,GAAA,CAAK,SAAA,CACL,IAAK,SAAA,CACL,GAAA,CAAK,SAAA,CACL,GAAA,CAAK,SAAA,CACL,GAAA,CAAK,UACL,GAAA,CAAK,SAAA,CACL,IAAK,SACT,MCbaC,CAAAA,CAAsB,CAC/B,EAAA,CAAI,SAAA,CACJ,EAAA,CAAI,SAAA,CACJ,IAAK,SAAA,CACL,GAAA,CAAK,SAAA,CACL,GAAA,CAAK,SAAA,CACL,GAAA,CAAK,UACL,GAAA,CAAK,SAAA,CACL,GAAA,CAAK,SAAA,CACL,GAAA,CAAK,SAAA,CACL,IAAK,SAAA,CACL,GAAA,CAAK,UACL,GAAA,CAAK,SACT,ECbO,IAAMC,CAAAA,CAAmB,CAC5B,EAAA,CAAI,SAAA,CACJ,EAAA,CAAI,UACJ,GAAA,CAAK,SAAA,CACL,IAAK,SAAA,CACL,GAAA,CAAK,UACL,GAAA,CAAK,SAAA,CACL,GAAA,CAAK,SAAA,CACL,GAAA,CAAK,SAAA,CACL,IAAK,SAAA,CACL,GAAA,CAAK,UACL,GAAA,CAAK,SAAA,CACL,IAAK,SACT,ECbO,IAAMC,CAAAA,CAAmB,CAC5B,EAAA,CAAI,UACJ,EAAA,CAAI,SAAA,CACJ,GAAA,CAAK,SAAA,CACL,GAAA,CAAK,SAAA,CACL,IAAK,SAAA,CACL,GAAA,CAAK,SAAA,CACL,GAAA,CAAK,SAAA,CACL,GAAA,CAAK,UACL,GAAA,CAAK,SAAA,CACL,IAAK,SAAA,CACL,GAAA,CAAK,UACL,GAAA,CAAK,SACT,ECbO,IAAMC,CAAAA,CAAkB,CAC3B,GAAI,SAAA,CACJ,EAAA,CAAI,SAAA,CACJ,GAAA,CAAK,SAAA,CACL,GAAA,CAAK,UACL,GAAA,CAAK,SAAA,CACL,GAAA,CAAK,SAAA,CACL,GAAA,CAAK,SAAA,CACL,IAAK,SAAA,CACL,GAAA,CAAK,UACL,GAAA,CAAK,SAAA,CACL,IAAK,SAAA,CACL,GAAA,CAAK,SACT,ECbO,IAAMC,CAAAA,CAAmB,CAC5B,EAAA,CAAI,SAAA,CACJ,EAAA,CAAI,SAAA,CACJ,GAAA,CAAK,SAAA,CACL,IAAK,SAAA,CACL,GAAA,CAAK,SAAA,CACL,GAAA,CAAK,SAAA,CACL,GAAA,CAAK,UACL,GAAA,CAAK,SAAA,CACL,IAAK,SAAA,CACL,GAAA,CAAK,UACL,GAAA,CAAK,SAAA,CACL,GAAA,CAAK,SACT,ECbO,IAAMC,EAAqB,CAC9B,EAAA,CAAI,UACJ,EAAA,CAAI,SAAA,CACJ,IAAK,SAAA,CACL,GAAA,CAAK,SAAA,CACL,GAAA,CAAK,SAAA,CACL,GAAA,CAAK,UACL,GAAA,CAAK,SAAA,CACL,IAAK,SAAA,CACL,GAAA,CAAK,UACL,GAAA,CAAK,SAAA,CACL,GAAA,CAAK,SAAA,CACL,GAAA,CAAK,SACT,ECbO,IAAMC,CAAAA,CAAqB,CAC9B,EAAA,CAAI,SAAA,CACJ,EAAA,CAAI,UACJ,GAAA,CAAK,SAAA,CACL,GAAA,CAAK,SAAA,CACL,GAAA,CAAK,SAAA,CACL,IAAK,SAAA,CACL,GAAA,CAAK,UACL,GAAA,CAAK,SAAA,CACL,IAAK,SAAA,CACL,GAAA,CAAK,SAAA,CACL,GAAA,CAAK,SAAA,CACL,GAAA,CAAK,SACT,ECbO,IAAMC,CAAAA,CAAqB,CAC9B,EAAA,CAAI,SAAA,CACJ,GAAI,SAAA,CACJ,GAAA,CAAK,SAAA,CACL,GAAA,CAAK,SAAA,CACL,GAAA,CAAK,UACL,GAAA,CAAK,SAAA,CACL,IAAK,SAAA,CACL,GAAA,CAAK,UACL,GAAA,CAAK,SAAA,CACL,GAAA,CAAK,SAAA,CACL,GAAA,CAAK,SAAA,CACL,IAAK,SACT,ECbO,IAAMC,CAAAA,CAAsB,CAC/B,EAAA,CAAI,UACJ,EAAA,CAAI,SAAA,CACJ,GAAA,CAAK,SAAA,CACL,GAAA,CAAK,SAAA,CACL,IAAK,SAAA,CACL,GAAA,CAAK,UACL,GAAA,CAAK,SAAA,CACL,IAAK,SAAA,CACL,GAAA,CAAK,SAAA,CACL,GAAA,CAAK,SAAA,CACL,GAAA,CAAK,UACL,GAAA,CAAK,SACT,ECbO,IAAMC,CAAAA,CAAmB,CAC5B,GAAI,SAAA,CACJ,EAAA,CAAI,SAAA,CACJ,GAAA,CAAK,SAAA,CACL,GAAA,CAAK,UACL,GAAA,CAAK,SAAA,CACL,IAAK,SAAA,CACL,GAAA,CAAK,UACL,GAAA,CAAK,SAAA,CACL,GAAA,CAAK,SAAA,CACL,GAAA,CAAK,SAAA,CACL,IAAK,SAAA,CACL,GAAA,CAAK,SACT,ECbO,IAAMC,CAAAA,CAAmB,CAC5B,EAAA,CAAI,SAAA,CACJ,EAAA,CAAI,SAAA,CACJ,GAAA,CAAK,SAAA,CACL,IAAK,SAAA,CACL,GAAA,CAAK,UACL,GAAA,CAAK,SAAA,CACL,IAAK,SAAA,CACL,GAAA,CAAK,SAAA,CACL,GAAA,CAAK,SAAA,CACL,GAAA,CAAK,UACL,GAAA,CAAK,SAAA,CACL,GAAA,CAAK,SACT,ECsBO,IAAMC,EAAQ,SAAA,CACRC,EAAAA,CAAQ,SAAA,CACRC,EAAAA,CAAc,aAAA,CACdC,EAAAA,CAAU,eA2BVC,EAAAA,CAAS,CAElB,KAAAxB,CAAAA,CACA,KAAA,CAAAC,EACA,KAAA,CAAAC,CAAAA,CAEA,GAAA,CAAAC,CAAAA,CACA,MAAA,CAAAC,CAAAA,CACA,MAAAC,CAAAA,CACA,MAAA,CAAAC,CAAAA,CACA,IAAA,CAAAC,CAAAA,CACA,KAAA,CAAAC,EACA,OAAA,CAAAC,CAAAA,CACA,IAAA,CAAAC,CAAAA,CACA,IAAA,CAAAC,CAAAA,CACA,IAAAC,CAAAA,CACA,IAAA,CAAAC,EACA,MAAA,CAAAC,CAAAA,CACA,OAAAC,CAAAA,CACA,MAAA,CAAAC,CAAAA,CACA,OAAA,CAAAC,CAAAA,CACA,IAAA,CAAAC,EACA,IAAA,CAAAC,CAAAA,CAEA,MAAO,SAAA,CACP,KAAA,CAAO,UACP,WAAA,CAAa,aAAA,CACb,OAAA,CAAS,cACb,ECrFO,IAAMM,EAUT,CACA,UAAA,CAAYxB,EAAM,EAAE,CAAA,CACpB,QAASmB,CAAAA,CACT,YAAA,CAAcnB,CAAAA,CAAM,GAAG,CAAA,CACvB,aAAA,CAAeA,EAAM,GAAG,CAAA,CACxB,QAAA,CAAUmB,CAAAA,CACV,OAAA,CAAS,uBAAA,CACT,KAAMnB,CAAAA,CAAM,GAAG,CAAA,CACf,aAAA,CAAeA,CAAAA,CAAM,GAAG,EACxB,YAAA,CAAcA,CAAAA,CAAM,GAAG,CAAA,CACvB,WAAA,CAAamB,EACb,MAAA,CAAQnB,CAAAA,CAAM,GAAG,CAAA,CACjB,WAAA,CAAaA,CAAAA,CAAM,GAAG,CAAA,CACtB,YAAA,CAAcA,CAAAA,CAAM,GAAG,CAAA,CACvB,QAAA,CAAUA,EAAM,GAAG,CAAA,CACnB,YAAA,CAAcA,CAAAA,CAAM,GAAG,CAC3B,EAMayB,CAAAA,CAUT,CACA,WAAYzB,CAAAA,CAAM,GAAG,EACrB,OAAA,CAASA,CAAAA,CAAM,GAAG,CAAA,CAClB,YAAA,CAAcA,CAAAA,CAAM,GAAG,CAAA,CACvB,aAAA,CAAeA,CAAAA,CAAM,GAAG,CAAA,CACxB,QAAA,CAAUA,EAAM,GAAG,CAAA,CACnB,OAAA,CAAS,oBAAA,CACT,IAAA,CAAMA,CAAAA,CAAM,GAAG,CAAA,CACf,aAAA,CAAeA,EAAM,GAAG,CAAA,CACxB,aAAcA,CAAAA,CAAM,GAAG,CAAA,CACvB,WAAA,CAAaA,CAAAA,CAAM,GAAG,EACtB,MAAA,CAAQA,CAAAA,CAAM,GAAG,CAAA,CACjB,WAAA,CAAaA,EAAM,GAAG,CAAA,CACtB,YAAA,CAAcA,CAAAA,CAAM,GAAG,CAAA,CACvB,SAAUA,CAAAA,CAAM,GAAG,EACnB,YAAA,CAAcA,CAAAA,CAAM,GAAG,CAC3B,CAAA,CCzDO,IAAM0B,CAAAA,CAA4B,CACrC,GAAGF,EAEH,OAAA,CAASX,CAAAA,CAAO,GAAG,CAAA,CACnB,SAAA,CAAWM,CAAAA,CACX,aAAcN,CAAAA,CAAO,GAAG,CAAA,CACxB,aAAA,CAAeA,CAAAA,CAAO,GAAG,EACzB,aAAA,CAAeA,CAAAA,CAAO,EAAE,CAAA,CACxB,eAAA,CAAiBA,EAAO,GAAG,CAAA,CAE3B,SAAA,CAAWb,CAAAA,CAAM,GAAG,CAAA,CACpB,YAAaA,CAAAA,CAAM,GAAG,CAAA,CACtB,cAAA,CAAgBA,CAAAA,CAAM,GAAG,EACzB,eAAA,CAAiBA,CAAAA,CAAM,GAAG,CAAA,CAC1B,eAAA,CAAiBA,CAAAA,CAAM,EAAE,CAAA,CACzB,iBAAA,CAAmBA,EAAM,GAAG,CAAA,CAE5B,SAAUe,CAAAA,CAAO,GAAG,CAAA,CACpB,UAAA,CAAYI,CAAAA,CACZ,aAAA,CAAeJ,EAAO,GAAG,CAAA,CACzB,cAAA,CAAgBA,CAAAA,CAAO,GAAG,CAAA,CAC1B,eAAgBA,CAAAA,CAAO,EAAE,CAAA,CACzB,gBAAA,CAAkBA,CAAAA,CAAO,GAAG,EAE5B,MAAA,CAAQL,CAAAA,CAAK,GAAG,CAAA,CAChB,QAAA,CAAUS,EACV,WAAA,CAAaT,CAAAA,CAAK,GAAG,CAAA,CACrB,YAAA,CAAcA,CAAAA,CAAK,GAAG,CAAA,CACtB,YAAA,CAAcA,EAAK,EAAE,CAAA,CACrB,YAAaG,CAAAA,CAAO,GAAG,CAAA,CAEvB,OAAA,CAASN,CAAAA,CAAM,GAAG,EAClB,SAAA,CAAWY,CAAAA,CACX,aAAcZ,CAAAA,CAAM,GAAG,EACvB,aAAA,CAAeA,CAAAA,CAAM,EAAE,CAAA,CACvB,OAAA,CAASH,CAAAA,CAAM,GAAG,CAAA,CAClB,SAAA,CAAWA,CAAAA,CAAM,GAAG,CAAA,CACpB,YAAA,CAAcA,EAAM,GAAG,CAAA,CACvB,aAAA,CAAeA,CAAAA,CAAM,EAAE,CAAA,CACvB,MAAOF,CAAAA,CAAI,GAAG,EACd,OAAA,CAASiB,CAAAA,CACT,WAAYjB,CAAAA,CAAI,GAAG,CAAA,CACnB,WAAA,CAAaA,CAAAA,CAAI,EAAE,EACnB,IAAA,CAAMU,CAAAA,CAAK,GAAG,CAAA,CACd,MAAA,CAAQO,CAAAA,CACR,UAAWP,CAAAA,CAAK,GAAG,CAAA,CACnB,UAAA,CAAYA,CAAAA,CAAK,EAAE,EAEnB,IAAA,CAAMC,CAAAA,CAAO,GAAG,CAAA,CAChB,SAAA,CAAWA,EAAO,GAAG,CAAA,CACrB,UAAA,CAAYA,CAAAA,CAAO,GAAG,CAAA,CACtB,YAAaC,CAAAA,CAAO,GAAG,CAAA,CACvB,KAAA,CAAOD,CAAAA,CAAO,GAAG,CACrB,CAAA,CAMac,CAAAA,CAA2B,CACpC,GAAGF,CAAAA,CAEH,OAAA,CAASZ,EAAO,GAAG,CAAA,CACnB,UAAWA,CAAAA,CAAO,GAAG,EACrB,YAAA,CAAcA,CAAAA,CAAO,GAAG,CAAA,CACxB,aAAA,CAAeA,CAAAA,CAAO,GAAG,CAAA,CACzB,aAAA,CAAeA,EAAO,GAAG,CAAA,CACzB,gBAAiBA,CAAAA,CAAO,GAAG,CAAA,CAE3B,SAAA,CAAWb,CAAAA,CAAM,GAAG,EACpB,WAAA,CAAaA,CAAAA,CAAM,GAAG,CAAA,CACtB,cAAA,CAAgBA,EAAM,GAAG,CAAA,CACzB,eAAA,CAAiBA,CAAAA,CAAM,GAAG,CAAA,CAC1B,gBAAiBA,CAAAA,CAAM,GAAG,CAAA,CAC1B,iBAAA,CAAmBA,CAAAA,CAAM,GAAG,EAE5B,QAAA,CAAUe,CAAAA,CAAO,GAAG,CAAA,CACpB,UAAA,CAAYA,CAAAA,CAAO,GAAG,CAAA,CACtB,aAAA,CAAeA,EAAO,GAAG,CAAA,CACzB,eAAgBA,CAAAA,CAAO,GAAG,CAAA,CAC1B,cAAA,CAAgBA,CAAAA,CAAO,GAAG,EAC1B,gBAAA,CAAkBA,CAAAA,CAAO,GAAG,CAAA,CAE5B,MAAA,CAAQL,CAAAA,CAAK,GAAG,CAAA,CAChB,QAAA,CAAUA,CAAAA,CAAK,GAAG,CAAA,CAClB,WAAA,CAAaA,EAAK,GAAG,CAAA,CACrB,aAAcA,CAAAA,CAAK,GAAG,EACtB,YAAA,CAAcA,CAAAA,CAAK,GAAG,CAAA,CACtB,WAAA,CAAaG,CAAAA,CAAO,GAAG,CAAA,CAEvB,OAAA,CAASN,CAAAA,CAAM,GAAG,CAAA,CAClB,SAAA,CAAWA,EAAM,GAAG,CAAA,CACpB,YAAA,CAAcA,CAAAA,CAAM,GAAG,CAAA,CACvB,cAAeA,CAAAA,CAAM,GAAG,EACxB,OAAA,CAASH,CAAAA,CAAM,GAAG,CAAA,CAClB,SAAA,CAAWA,CAAAA,CAAM,GAAG,CAAA,CACpB,YAAA,CAAcA,EAAM,GAAG,CAAA,CACvB,cAAeA,CAAAA,CAAM,GAAG,EACxB,KAAA,CAAOF,CAAAA,CAAI,GAAG,CAAA,CACd,OAAA,CAASA,CAAAA,CAAI,GAAG,CAAA,CAChB,UAAA,CAAYA,EAAI,GAAG,CAAA,CACnB,YAAaA,CAAAA,CAAI,GAAG,CAAA,CACpB,IAAA,CAAMU,CAAAA,CAAK,GAAG,EACd,MAAA,CAAQA,CAAAA,CAAK,GAAG,CAAA,CAChB,SAAA,CAAWA,CAAAA,CAAK,GAAG,CAAA,CACnB,UAAA,CAAYA,CAAAA,CAAK,GAAG,CAAA,CAEpB,IAAA,CAAMC,EAAO,GAAG,CAAA,CAChB,UAAWA,CAAAA,CAAO,GAAG,EACrB,UAAA,CAAYA,CAAAA,CAAO,GAAG,CAAA,CACtB,WAAA,CAAaC,CAAAA,CAAO,GAAG,CAAA,CACvB,KAAA,CAAOD,CAAAA,CAAO,GAAG,CACrB,MChHae,CAAAA,CAA0B,CACnC,GAAGJ,CAAAA,CAEH,OAAA,CAASZ,CAAAA,CAAK,GAAG,CAAA,CACjB,SAAA,CAAWO,EACX,YAAA,CAAcP,CAAAA,CAAK,GAAG,CAAA,CACtB,aAAA,CAAeA,CAAAA,CAAK,GAAG,CAAA,CACvB,aAAA,CAAeA,EAAK,EAAE,CAAA,CACtB,eAAA,CAAiBA,CAAAA,CAAK,GAAG,CAAA,CAEzB,UAAWZ,CAAAA,CAAM,GAAG,CAAA,CACpB,WAAA,CAAaA,CAAAA,CAAM,GAAG,EACtB,cAAA,CAAgBA,CAAAA,CAAM,GAAG,CAAA,CACzB,eAAA,CAAiBA,EAAM,GAAG,CAAA,CAC1B,eAAA,CAAiBA,CAAAA,CAAM,EAAE,CAAA,CACzB,kBAAmBA,CAAAA,CAAM,GAAG,EAE5B,QAAA,CAAUW,CAAAA,CAAI,GAAG,CAAA,CACjB,UAAA,CAAYQ,CAAAA,CACZ,aAAA,CAAeR,CAAAA,CAAI,GAAG,EACtB,cAAA,CAAgBA,CAAAA,CAAI,GAAG,CAAA,CACvB,cAAA,CAAgBA,EAAI,EAAE,CAAA,CACtB,gBAAA,CAAkBA,CAAAA,CAAI,GAAG,CAAA,CAEzB,OAAQD,CAAAA,CAAK,GAAG,CAAA,CAChB,QAAA,CAAUS,CAAAA,CACV,WAAA,CAAaT,EAAK,GAAG,CAAA,CACrB,YAAA,CAAcA,CAAAA,CAAK,GAAG,CAAA,CACtB,aAAcA,CAAAA,CAAK,EAAE,EACrB,WAAA,CAAaE,CAAAA,CAAK,GAAG,CAAA,CAErB,OAAA,CAASL,CAAAA,CAAM,GAAG,CAAA,CAClB,SAAA,CAAWY,EACX,YAAA,CAAcZ,CAAAA,CAAM,GAAG,CAAA,CACvB,aAAA,CAAeA,CAAAA,CAAM,EAAE,CAAA,CACvB,OAAA,CAASH,CAAAA,CAAM,GAAG,CAAA,CAClB,SAAA,CAAWA,EAAM,GAAG,CAAA,CACpB,aAAcA,CAAAA,CAAM,GAAG,EACvB,aAAA,CAAeA,CAAAA,CAAM,EAAE,CAAA,CACvB,KAAA,CAAOF,CAAAA,CAAI,GAAG,CAAA,CACd,OAAA,CAASiB,CAAAA,CACT,UAAA,CAAYjB,CAAAA,CAAI,GAAG,EACnB,WAAA,CAAaA,CAAAA,CAAI,EAAE,CAAA,CACnB,IAAA,CAAMU,CAAAA,CAAK,GAAG,CAAA,CACd,MAAA,CAAQO,EACR,SAAA,CAAWP,CAAAA,CAAK,GAAG,CAAA,CACnB,UAAA,CAAYA,CAAAA,CAAK,EAAE,CAAA,CAEnB,IAAA,CAAMA,EAAK,GAAG,CAAA,CACd,UAAWA,CAAAA,CAAK,GAAG,EACnB,UAAA,CAAYA,CAAAA,CAAK,GAAG,CAAA,CACpB,WAAA,CAAaE,CAAAA,CAAO,GAAG,CAAA,CACvB,KAAA,CAAOF,EAAK,GAAG,CACnB,EAMaiB,CAAAA,CAAyB,CAClC,GAAGJ,CAAAA,CAEH,OAAA,CAASb,CAAAA,CAAK,GAAG,CAAA,CACjB,SAAA,CAAWA,CAAAA,CAAK,GAAG,CAAA,CACnB,YAAA,CAAcA,EAAK,GAAG,CAAA,CACtB,aAAA,CAAeA,CAAAA,CAAK,GAAG,CAAA,CACvB,cAAeA,CAAAA,CAAK,GAAG,EACvB,eAAA,CAAiBA,CAAAA,CAAK,GAAG,CAAA,CAEzB,SAAA,CAAWZ,CAAAA,CAAM,GAAG,CAAA,CACpB,WAAA,CAAaA,EAAM,GAAG,CAAA,CACtB,cAAA,CAAgBA,CAAAA,CAAM,GAAG,CAAA,CACzB,gBAAiBA,CAAAA,CAAM,GAAG,CAAA,CAC1B,eAAA,CAAiBA,CAAAA,CAAM,GAAG,EAC1B,iBAAA,CAAmBA,CAAAA,CAAM,GAAG,CAAA,CAE5B,QAAA,CAAUW,EAAI,GAAG,CAAA,CACjB,UAAA,CAAYA,CAAAA,CAAI,GAAG,CAAA,CACnB,cAAeA,CAAAA,CAAI,GAAG,CAAA,CACtB,cAAA,CAAgBA,CAAAA,CAAI,GAAG,EACvB,cAAA,CAAgBA,CAAAA,CAAI,GAAG,CAAA,CACvB,gBAAA,CAAkBA,CAAAA,CAAI,GAAG,CAAA,CAEzB,MAAA,CAAQD,EAAK,GAAG,CAAA,CAChB,SAAUA,CAAAA,CAAK,GAAG,CAAA,CAClB,WAAA,CAAaA,CAAAA,CAAK,GAAG,EACrB,YAAA,CAAcA,CAAAA,CAAK,GAAG,CAAA,CACtB,YAAA,CAAcA,CAAAA,CAAK,GAAG,CAAA,CACtB,WAAA,CAAaE,CAAAA,CAAK,GAAG,CAAA,CAErB,OAAA,CAASL,EAAM,GAAG,CAAA,CAClB,UAAWA,CAAAA,CAAM,GAAG,EACpB,YAAA,CAAcA,CAAAA,CAAM,GAAG,CAAA,CACvB,aAAA,CAAeA,CAAAA,CAAM,GAAG,CAAA,CACxB,OAAA,CAASH,CAAAA,CAAM,GAAG,CAAA,CAClB,SAAA,CAAWA,EAAM,GAAG,CAAA,CACpB,YAAA,CAAcA,CAAAA,CAAM,GAAG,CAAA,CACvB,cAAeA,CAAAA,CAAM,GAAG,EACxB,KAAA,CAAOF,CAAAA,CAAI,GAAG,CAAA,CACd,OAAA,CAASA,CAAAA,CAAI,GAAG,CAAA,CAChB,UAAA,CAAYA,EAAI,GAAG,CAAA,CACnB,WAAA,CAAaA,CAAAA,CAAI,GAAG,CAAA,CACpB,KAAMU,CAAAA,CAAK,GAAG,CAAA,CACd,MAAA,CAAQA,CAAAA,CAAK,GAAG,EAChB,SAAA,CAAWA,CAAAA,CAAK,GAAG,CAAA,CACnB,UAAA,CAAYA,EAAK,GAAG,CAAA,CAEpB,IAAA,CAAMA,CAAAA,CAAK,GAAG,CAAA,CACd,UAAWA,CAAAA,CAAK,GAAG,CAAA,CACnB,UAAA,CAAYA,CAAAA,CAAK,GAAG,EACpB,WAAA,CAAaE,CAAAA,CAAO,GAAG,CAAA,CACvB,KAAA,CAAOF,CAAAA,CAAK,GAAG,CACnB,MChHakB,CAAAA,CAA0B,CACnC,GAAGN,CAAAA,CAEH,OAAA,CAASN,CAAAA,CAAK,GAAG,CAAA,CACjB,SAAA,CAAWC,EACX,YAAA,CAAcD,CAAAA,CAAK,GAAG,CAAA,CACtB,aAAA,CAAeA,EAAK,GAAG,CAAA,CACvB,aAAA,CAAeA,CAAAA,CAAK,EAAE,CAAA,CACtB,gBAAiBA,CAAAA,CAAK,GAAG,EAEzB,SAAA,CAAWlB,CAAAA,CAAM,GAAG,CAAA,CACpB,WAAA,CAAaA,CAAAA,CAAM,GAAG,CAAA,CACtB,cAAA,CAAgBA,EAAM,GAAG,CAAA,CACzB,eAAA,CAAiBA,CAAAA,CAAM,GAAG,CAAA,CAC1B,gBAAiBA,CAAAA,CAAM,EAAE,CAAA,CACzB,iBAAA,CAAmBA,CAAAA,CAAM,GAAG,EAE5B,QAAA,CAAUiB,CAAAA,CAAK,GAAG,CAAA,CAClB,UAAA,CAAYE,EACZ,aAAA,CAAeF,CAAAA,CAAK,GAAG,CAAA,CACvB,cAAA,CAAgBA,CAAAA,CAAK,GAAG,CAAA,CACxB,cAAA,CAAgBA,CAAAA,CAAK,EAAE,CAAA,CACvB,gBAAA,CAAkBA,EAAK,GAAG,CAAA,CAE1B,MAAA,CAAQH,CAAAA,CAAO,GAAG,CAAA,CAClB,SAAUK,CAAAA,CACV,WAAA,CAAaL,EAAO,GAAG,CAAA,CACvB,aAAcA,CAAAA,CAAO,GAAG,CAAA,CACxB,YAAA,CAAcA,CAAAA,CAAO,EAAE,EACvB,WAAA,CAAaI,CAAAA,CAAK,GAAG,CAAA,CAErB,OAAA,CAASX,CAAAA,CAAM,GAAG,CAAA,CAClB,SAAA,CAAWY,CAAAA,CACX,YAAA,CAAcZ,CAAAA,CAAM,GAAG,EACvB,aAAA,CAAeA,CAAAA,CAAM,EAAE,CAAA,CACvB,OAAA,CAASH,EAAM,GAAG,CAAA,CAClB,SAAA,CAAWA,CAAAA,CAAM,GAAG,CAAA,CACpB,aAAcA,CAAAA,CAAM,GAAG,EACvB,aAAA,CAAeA,CAAAA,CAAM,EAAE,CAAA,CACvB,KAAA,CAAOF,CAAAA,CAAI,GAAG,CAAA,CACd,OAAA,CAASiB,EACT,UAAA,CAAYjB,CAAAA,CAAI,GAAG,CAAA,CACnB,WAAA,CAAaA,EAAI,EAAE,CAAA,CACnB,IAAA,CAAMU,CAAAA,CAAK,GAAG,CAAA,CACd,OAAQO,CAAAA,CACR,SAAA,CAAWP,CAAAA,CAAK,GAAG,CAAA,CACnB,UAAA,CAAYA,EAAK,EAAE,CAAA,CAEnB,IAAA,CAAMM,CAAAA,CAAK,GAAG,CAAA,CACd,UAAWA,CAAAA,CAAK,GAAG,EACnB,UAAA,CAAYA,CAAAA,CAAK,GAAG,CAAA,CACpB,WAAA,CAAaH,CAAAA,CAAO,GAAG,CAAA,CACvB,KAAA,CAAOG,EAAK,GAAG,CACnB,CAAA,CAMaa,CAAAA,CAAyB,CAClC,GAAGN,EAEH,OAAA,CAASP,CAAAA,CAAK,GAAG,CAAA,CACjB,SAAA,CAAWA,CAAAA,CAAK,GAAG,CAAA,CACnB,YAAA,CAAcA,EAAK,GAAG,CAAA,CACtB,cAAeA,CAAAA,CAAK,GAAG,CAAA,CACvB,aAAA,CAAeA,CAAAA,CAAK,GAAG,EACvB,eAAA,CAAiBA,CAAAA,CAAK,GAAG,CAAA,CAEzB,SAAA,CAAWlB,CAAAA,CAAM,GAAG,CAAA,CACpB,WAAA,CAAaA,CAAAA,CAAM,GAAG,CAAA,CACtB,cAAA,CAAgBA,EAAM,GAAG,CAAA,CACzB,gBAAiBA,CAAAA,CAAM,GAAG,EAC1B,eAAA,CAAiBA,CAAAA,CAAM,GAAG,CAAA,CAC1B,iBAAA,CAAmBA,CAAAA,CAAM,GAAG,CAAA,CAE5B,QAAA,CAAUiB,EAAK,GAAG,CAAA,CAClB,WAAYA,CAAAA,CAAK,GAAG,CAAA,CACpB,aAAA,CAAeA,CAAAA,CAAK,GAAG,EACvB,cAAA,CAAgBA,CAAAA,CAAK,GAAG,CAAA,CACxB,cAAA,CAAgBA,EAAK,GAAG,CAAA,CACxB,gBAAA,CAAkBA,CAAAA,CAAK,GAAG,CAAA,CAE1B,OAAQH,CAAAA,CAAO,GAAG,CAAA,CAClB,QAAA,CAAUA,CAAAA,CAAO,GAAG,EACpB,WAAA,CAAaA,CAAAA,CAAO,GAAG,CAAA,CACvB,YAAA,CAAcA,CAAAA,CAAO,GAAG,CAAA,CACxB,YAAA,CAAcA,EAAO,GAAG,CAAA,CACxB,YAAaI,CAAAA,CAAK,GAAG,CAAA,CAErB,OAAA,CAASX,CAAAA,CAAM,GAAG,EAClB,SAAA,CAAWA,CAAAA,CAAM,GAAG,CAAA,CACpB,YAAA,CAAcA,CAAAA,CAAM,GAAG,CAAA,CACvB,aAAA,CAAeA,CAAAA,CAAM,GAAG,CAAA,CACxB,OAAA,CAASH,EAAM,GAAG,CAAA,CAClB,UAAWA,CAAAA,CAAM,GAAG,EACpB,YAAA,CAAcA,CAAAA,CAAM,GAAG,CAAA,CACvB,aAAA,CAAeA,CAAAA,CAAM,GAAG,CAAA,CACxB,KAAA,CAAOF,CAAAA,CAAI,GAAG,CAAA,CACd,OAAA,CAASA,EAAI,GAAG,CAAA,CAChB,UAAA,CAAYA,CAAAA,CAAI,GAAG,CAAA,CACnB,YAAaA,CAAAA,CAAI,GAAG,EACpB,IAAA,CAAMU,CAAAA,CAAK,GAAG,CAAA,CACd,MAAA,CAAQA,CAAAA,CAAK,GAAG,CAAA,CAChB,SAAA,CAAWA,EAAK,GAAG,CAAA,CACnB,WAAYA,CAAAA,CAAK,GAAG,EAEpB,IAAA,CAAMM,CAAAA,CAAK,GAAG,CAAA,CACd,SAAA,CAAWA,CAAAA,CAAK,GAAG,CAAA,CACnB,UAAA,CAAYA,EAAK,GAAG,CAAA,CACpB,YAAaH,CAAAA,CAAO,GAAG,CAAA,CACvB,KAAA,CAAOG,CAAAA,CAAK,GAAG,CACnB,EChHO,IAAMc,CAAAA,CAA6B,CACtC,GAAGR,CAAAA,CAEH,QAAShB,CAAAA,CAAQ,GAAG,CAAA,CACpB,SAAA,CAAWW,CAAAA,CACX,YAAA,CAAcX,EAAQ,GAAG,CAAA,CACzB,cAAeA,CAAAA,CAAQ,GAAG,EAC1B,aAAA,CAAeA,CAAAA,CAAQ,EAAE,CAAA,CACzB,eAAA,CAAiBA,CAAAA,CAAQ,GAAG,CAAA,CAE5B,SAAA,CAAWR,CAAAA,CAAM,GAAG,CAAA,CACpB,WAAA,CAAaA,EAAM,GAAG,CAAA,CACtB,cAAA,CAAgBA,CAAAA,CAAM,GAAG,CAAA,CACzB,gBAAiBA,CAAAA,CAAM,GAAG,EAC1B,eAAA,CAAiBA,CAAAA,CAAM,EAAE,CAAA,CACzB,iBAAA,CAAmBA,CAAAA,CAAM,GAAG,CAAA,CAE5B,QAAA,CAAUS,EAAK,GAAG,CAAA,CAClB,UAAA,CAAYU,CAAAA,CACZ,aAAA,CAAeV,CAAAA,CAAK,GAAG,CAAA,CACvB,cAAA,CAAgBA,CAAAA,CAAK,GAAG,CAAA,CACxB,cAAA,CAAgBA,EAAK,EAAE,CAAA,CACvB,iBAAkBA,CAAAA,CAAK,GAAG,EAE1B,MAAA,CAAQL,CAAAA,CAAM,GAAG,CAAA,CACjB,QAAA,CAAUA,CAAAA,CAAM,GAAG,CAAA,CACnB,WAAA,CAAaA,EAAM,GAAG,CAAA,CACtB,aAAcA,CAAAA,CAAM,GAAG,CAAA,CACvB,YAAA,CAAcA,CAAAA,CAAM,EAAE,EACtB,WAAA,CAAaI,CAAAA,CAAQ,GAAG,CAAA,CAExB,OAAA,CAASD,EAAM,GAAG,CAAA,CAClB,SAAA,CAAWY,CAAAA,CACX,YAAA,CAAcZ,CAAAA,CAAM,GAAG,CAAA,CACvB,aAAA,CAAeA,CAAAA,CAAM,EAAE,CAAA,CACvB,OAAA,CAASH,EAAM,GAAG,CAAA,CAClB,SAAA,CAAWA,CAAAA,CAAM,GAAG,CAAA,CACpB,aAAcA,CAAAA,CAAM,GAAG,EACvB,aAAA,CAAeA,CAAAA,CAAM,EAAE,CAAA,CACvB,KAAA,CAAOF,CAAAA,CAAI,GAAG,CAAA,CACd,OAAA,CAASiB,EACT,UAAA,CAAYjB,CAAAA,CAAI,GAAG,CAAA,CACnB,WAAA,CAAaA,CAAAA,CAAI,EAAE,CAAA,CACnB,IAAA,CAAMU,CAAAA,CAAK,GAAG,CAAA,CACd,MAAA,CAAQO,EACR,SAAA,CAAWP,CAAAA,CAAK,GAAG,CAAA,CACnB,UAAA,CAAYA,EAAK,EAAE,CAAA,CAEnB,IAAA,CAAMJ,CAAAA,CAAQ,GAAG,CAAA,CACjB,UAAWA,CAAAA,CAAQ,GAAG,CAAA,CACtB,UAAA,CAAYA,CAAAA,CAAQ,GAAG,EACvB,WAAA,CAAaC,CAAAA,CAAK,GAAG,CAAA,CACrB,KAAA,CAAOD,CAAAA,CAAQ,GAAG,CACtB,CAAA,CAMayB,EAA4B,CACrC,GAAGR,EAEH,OAAA,CAASjB,CAAAA,CAAQ,GAAG,CAAA,CACpB,SAAA,CAAWA,CAAAA,CAAQ,GAAG,CAAA,CACtB,YAAA,CAAcA,EAAQ,GAAG,CAAA,CACzB,cAAeA,CAAAA,CAAQ,GAAG,CAAA,CAC1B,aAAA,CAAeA,CAAAA,CAAQ,GAAG,EAC1B,eAAA,CAAiBA,CAAAA,CAAQ,GAAG,CAAA,CAE5B,SAAA,CAAWR,EAAM,GAAG,CAAA,CACpB,WAAA,CAAaA,CAAAA,CAAM,GAAG,CAAA,CACtB,eAAgBA,CAAAA,CAAM,GAAG,CAAA,CACzB,eAAA,CAAiBA,CAAAA,CAAM,GAAG,EAC1B,eAAA,CAAiBA,CAAAA,CAAM,GAAG,CAAA,CAC1B,iBAAA,CAAmBA,CAAAA,CAAM,GAAG,CAAA,CAE5B,QAAA,CAAUS,EAAK,GAAG,CAAA,CAClB,WAAYA,CAAAA,CAAK,GAAG,CAAA,CACpB,aAAA,CAAeA,CAAAA,CAAK,GAAG,EACvB,cAAA,CAAgBA,CAAAA,CAAK,GAAG,CAAA,CACxB,cAAA,CAAgBA,CAAAA,CAAK,GAAG,CAAA,CACxB,gBAAA,CAAkBA,CAAAA,CAAK,GAAG,CAAA,CAE1B,MAAA,CAAQL,EAAM,GAAG,CAAA,CACjB,SAAUA,CAAAA,CAAM,GAAG,EACnB,WAAA,CAAaA,CAAAA,CAAM,GAAG,CAAA,CACtB,YAAA,CAAcA,CAAAA,CAAM,GAAG,CAAA,CACvB,YAAA,CAAcA,CAAAA,CAAM,GAAG,CAAA,CACvB,WAAA,CAAaI,EAAQ,GAAG,CAAA,CAExB,OAAA,CAASD,CAAAA,CAAM,GAAG,CAAA,CAClB,UAAWA,CAAAA,CAAM,GAAG,EACpB,YAAA,CAAcA,CAAAA,CAAM,GAAG,CAAA,CACvB,aAAA,CAAeA,CAAAA,CAAM,GAAG,CAAA,CACxB,OAAA,CAASH,EAAM,GAAG,CAAA,CAClB,UAAWA,CAAAA,CAAM,GAAG,EACpB,YAAA,CAAcA,CAAAA,CAAM,GAAG,CAAA,CACvB,aAAA,CAAeA,CAAAA,CAAM,GAAG,CAAA,CACxB,KAAA,CAAOF,EAAI,GAAG,CAAA,CACd,QAASA,CAAAA,CAAI,GAAG,CAAA,CAChB,UAAA,CAAYA,CAAAA,CAAI,GAAG,EACnB,WAAA,CAAaA,CAAAA,CAAI,GAAG,CAAA,CACpB,IAAA,CAAMU,CAAAA,CAAK,GAAG,CAAA,CACd,MAAA,CAAQA,CAAAA,CAAK,GAAG,CAAA,CAChB,SAAA,CAAWA,EAAK,GAAG,CAAA,CACnB,WAAYA,CAAAA,CAAK,GAAG,EAEpB,IAAA,CAAMJ,CAAAA,CAAQ,GAAG,CAAA,CACjB,SAAA,CAAWA,CAAAA,CAAQ,GAAG,CAAA,CACtB,UAAA,CAAYA,CAAAA,CAAQ,GAAG,CAAA,CACvB,WAAA,CAAaC,EAAK,GAAG,CAAA,CACrB,KAAA,CAAOD,CAAAA,CAAQ,GAAG,CACtB,EChHO,IAAM0B,CAAAA,CAA0B,CACnC,GAAGV,CAAAA,CAEH,QAASf,CAAAA,CAAK,GAAG,CAAA,CACjB,SAAA,CAAWU,CAAAA,CACX,YAAA,CAAcV,EAAK,GAAG,CAAA,CACtB,aAAA,CAAeA,CAAAA,CAAK,GAAG,CAAA,CACvB,cAAeA,CAAAA,CAAK,EAAE,CAAA,CACtB,eAAA,CAAiBA,CAAAA,CAAK,GAAG,EAEzB,SAAA,CAAWT,CAAAA,CAAM,GAAG,CAAA,CACpB,WAAA,CAAaA,EAAM,GAAG,CAAA,CACtB,cAAA,CAAgBA,CAAAA,CAAM,GAAG,CAAA,CACzB,gBAAiBA,CAAAA,CAAM,GAAG,CAAA,CAC1B,eAAA,CAAiBA,CAAAA,CAAM,EAAE,EACzB,iBAAA,CAAmBA,CAAAA,CAAM,GAAG,CAAA,CAE5B,QAAA,CAAUU,CAAAA,CAAK,GAAG,CAAA,CAClB,UAAA,CAAYS,EACZ,aAAA,CAAeT,CAAAA,CAAK,GAAG,CAAA,CACvB,cAAA,CAAgBA,CAAAA,CAAK,GAAG,CAAA,CACxB,cAAA,CAAgBA,EAAK,EAAE,CAAA,CACvB,gBAAA,CAAkBA,CAAAA,CAAK,GAAG,CAAA,CAE1B,OAAQP,CAAAA,CAAO,GAAG,CAAA,CAClB,QAAA,CAAUgB,CAAAA,CACV,WAAA,CAAahB,EAAO,GAAG,CAAA,CACvB,aAAcA,CAAAA,CAAO,GAAG,EACxB,YAAA,CAAcA,CAAAA,CAAO,EAAE,CAAA,CACvB,WAAA,CAAaM,CAAAA,CAAK,GAAG,CAAA,CAErB,OAAA,CAASF,CAAAA,CAAM,GAAG,CAAA,CAClB,SAAA,CAAWY,EACX,YAAA,CAAcZ,CAAAA,CAAM,GAAG,CAAA,CACvB,aAAA,CAAeA,CAAAA,CAAM,EAAE,CAAA,CACvB,OAAA,CAASH,EAAM,GAAG,CAAA,CAClB,UAAWA,CAAAA,CAAM,GAAG,CAAA,CACpB,YAAA,CAAcA,CAAAA,CAAM,GAAG,EACvB,aAAA,CAAeA,CAAAA,CAAM,EAAE,CAAA,CACvB,KAAA,CAAOF,CAAAA,CAAI,GAAG,CAAA,CACd,OAAA,CAASiB,CAAAA,CACT,UAAA,CAAYjB,CAAAA,CAAI,GAAG,EACnB,WAAA,CAAaA,CAAAA,CAAI,EAAE,CAAA,CACnB,IAAA,CAAMU,EAAK,GAAG,CAAA,CACd,MAAA,CAAQO,CAAAA,CACR,SAAA,CAAWP,CAAAA,CAAK,GAAG,CAAA,CACnB,UAAA,CAAYA,EAAK,EAAE,CAAA,CAEnB,KAAMH,CAAAA,CAAK,GAAG,CAAA,CACd,SAAA,CAAWA,CAAAA,CAAK,GAAG,EACnB,UAAA,CAAYA,CAAAA,CAAK,GAAG,CAAA,CACpB,WAAA,CAAaC,EAAK,GAAG,CAAA,CACrB,KAAA,CAAOD,CAAAA,CAAK,GAAG,CACnB,EAMa0B,CAAAA,CAAyB,CAClC,GAAGV,CAAAA,CAEH,OAAA,CAAShB,CAAAA,CAAK,GAAG,CAAA,CACjB,SAAA,CAAWA,CAAAA,CAAK,GAAG,CAAA,CACnB,YAAA,CAAcA,EAAK,GAAG,CAAA,CACtB,cAAeA,CAAAA,CAAK,GAAG,EACvB,aAAA,CAAeA,CAAAA,CAAK,GAAG,CAAA,CACvB,eAAA,CAAiBA,CAAAA,CAAK,GAAG,CAAA,CAEzB,SAAA,CAAWT,CAAAA,CAAM,GAAG,CAAA,CACpB,WAAA,CAAaA,EAAM,GAAG,CAAA,CACtB,cAAA,CAAgBA,CAAAA,CAAM,GAAG,CAAA,CACzB,gBAAiBA,CAAAA,CAAM,GAAG,EAC1B,eAAA,CAAiBA,CAAAA,CAAM,GAAG,CAAA,CAC1B,iBAAA,CAAmBA,CAAAA,CAAM,GAAG,CAAA,CAE5B,QAAA,CAAUU,EAAK,GAAG,CAAA,CAClB,UAAA,CAAYA,CAAAA,CAAK,GAAG,CAAA,CACpB,cAAeA,CAAAA,CAAK,GAAG,CAAA,CACvB,cAAA,CAAgBA,CAAAA,CAAK,GAAG,EACxB,cAAA,CAAgBA,CAAAA,CAAK,GAAG,CAAA,CACxB,gBAAA,CAAkBA,EAAK,GAAG,CAAA,CAE1B,MAAA,CAAQP,CAAAA,CAAO,GAAG,CAAA,CAClB,SAAUA,CAAAA,CAAO,GAAG,EACpB,WAAA,CAAaA,CAAAA,CAAO,GAAG,CAAA,CACvB,YAAA,CAAcA,CAAAA,CAAO,GAAG,CAAA,CACxB,YAAA,CAAcA,EAAO,GAAG,CAAA,CACxB,YAAaM,CAAAA,CAAK,GAAG,EAErB,OAAA,CAASF,CAAAA,CAAM,GAAG,CAAA,CAClB,SAAA,CAAWA,CAAAA,CAAM,GAAG,CAAA,CACpB,YAAA,CAAcA,CAAAA,CAAM,GAAG,CAAA,CACvB,aAAA,CAAeA,EAAM,GAAG,CAAA,CACxB,OAAA,CAASH,CAAAA,CAAM,GAAG,CAAA,CAClB,UAAWA,CAAAA,CAAM,GAAG,EACpB,YAAA,CAAcA,CAAAA,CAAM,GAAG,CAAA,CACvB,aAAA,CAAeA,CAAAA,CAAM,GAAG,CAAA,CACxB,KAAA,CAAOF,EAAI,GAAG,CAAA,CACd,OAAA,CAASA,CAAAA,CAAI,GAAG,CAAA,CAChB,WAAYA,CAAAA,CAAI,GAAG,CAAA,CACnB,WAAA,CAAaA,CAAAA,CAAI,GAAG,EACpB,IAAA,CAAMU,CAAAA,CAAK,GAAG,CAAA,CACd,MAAA,CAAQA,EAAK,GAAG,CAAA,CAChB,SAAA,CAAWA,CAAAA,CAAK,GAAG,CAAA,CACnB,WAAYA,CAAAA,CAAK,GAAG,CAAA,CAEpB,IAAA,CAAMH,CAAAA,CAAK,GAAG,EACd,SAAA,CAAWA,CAAAA,CAAK,GAAG,CAAA,CACnB,UAAA,CAAYA,CAAAA,CAAK,GAAG,CAAA,CACpB,WAAA,CAAaC,EAAK,GAAG,CAAA,CACrB,MAAOD,CAAAA,CAAK,GAAG,CACnB,EChHO,IAAM2B,EAAAA,CAA4B,CACrC,GAAGZ,CAAAA,CAEH,QAASV,CAAAA,CAAO,GAAG,EACnB,SAAA,CAAWK,CAAAA,CACX,YAAA,CAAcL,CAAAA,CAAO,GAAG,CAAA,CACxB,cAAeA,CAAAA,CAAO,GAAG,EACzB,aAAA,CAAeA,CAAAA,CAAO,EAAE,CAAA,CACxB,eAAA,CAAiBA,CAAAA,CAAO,GAAG,CAAA,CAE3B,SAAA,CAAWd,EAAM,GAAG,CAAA,CACpB,WAAA,CAAaA,CAAAA,CAAM,GAAG,CAAA,CACtB,eAAgBA,CAAAA,CAAM,GAAG,CAAA,CACzB,eAAA,CAAiBA,CAAAA,CAAM,GAAG,EAC1B,eAAA,CAAiBA,CAAAA,CAAM,EAAE,CAAA,CACzB,iBAAA,CAAmBA,EAAM,GAAG,CAAA,CAE5B,QAAA,CAAUe,CAAAA,CAAO,GAAG,CAAA,CACpB,WAAYI,CAAAA,CACZ,aAAA,CAAeJ,CAAAA,CAAO,GAAG,CAAA,CACzB,cAAA,CAAgBA,EAAO,GAAG,CAAA,CAC1B,cAAA,CAAgBA,CAAAA,CAAO,EAAE,CAAA,CACzB,iBAAkBA,CAAAA,CAAO,GAAG,EAE5B,MAAA,CAAQE,CAAAA,CAAK,GAAG,CAAA,CAChB,QAAA,CAAUE,CAAAA,CACV,WAAA,CAAaF,CAAAA,CAAK,GAAG,EACrB,YAAA,CAAcA,CAAAA,CAAK,GAAG,CAAA,CACtB,YAAA,CAAcA,CAAAA,CAAK,EAAE,CAAA,CACrB,WAAA,CAAaH,CAAAA,CAAO,GAAG,CAAA,CAEvB,OAAA,CAASP,EAAM,GAAG,CAAA,CAClB,UAAWY,CAAAA,CACX,YAAA,CAAcZ,EAAM,GAAG,CAAA,CACvB,aAAA,CAAeA,CAAAA,CAAM,EAAE,CAAA,CACvB,QAASH,CAAAA,CAAM,GAAG,EAClB,SAAA,CAAWA,CAAAA,CAAM,GAAG,CAAA,CACpB,YAAA,CAAcA,CAAAA,CAAM,GAAG,CAAA,CACvB,aAAA,CAAeA,EAAM,EAAE,CAAA,CACvB,MAAOF,CAAAA,CAAI,GAAG,EACd,OAAA,CAASiB,CAAAA,CACT,UAAA,CAAYjB,CAAAA,CAAI,GAAG,CAAA,CACnB,YAAaA,CAAAA,CAAI,EAAE,CAAA,CACnB,IAAA,CAAMU,CAAAA,CAAK,GAAG,EACd,MAAA,CAAQO,CAAAA,CACR,SAAA,CAAWP,CAAAA,CAAK,GAAG,CAAA,CACnB,WAAYA,CAAAA,CAAK,EAAE,EAEnB,IAAA,CAAME,CAAAA,CAAO,GAAG,CAAA,CAChB,SAAA,CAAWA,CAAAA,CAAO,GAAG,CAAA,CACrB,UAAA,CAAYA,EAAO,GAAG,CAAA,CACtB,WAAA,CAAaC,CAAAA,CAAO,GAAG,CAAA,CACvB,MAAOD,CAAAA,CAAO,GAAG,CACrB,CAAA,CAMauB,EAAAA,CAA2B,CACpC,GAAGZ,CAAAA,CAEH,OAAA,CAASX,EAAO,GAAG,CAAA,CACnB,UAAWA,CAAAA,CAAO,GAAG,CAAA,CACrB,YAAA,CAAcA,CAAAA,CAAO,GAAG,EACxB,aAAA,CAAeA,CAAAA,CAAO,GAAG,CAAA,CACzB,aAAA,CAAeA,CAAAA,CAAO,GAAG,CAAA,CACzB,eAAA,CAAiBA,CAAAA,CAAO,GAAG,CAAA,CAE3B,SAAA,CAAWd,EAAM,GAAG,CAAA,CACpB,YAAaA,CAAAA,CAAM,GAAG,EACtB,cAAA,CAAgBA,CAAAA,CAAM,GAAG,CAAA,CACzB,eAAA,CAAiBA,CAAAA,CAAM,GAAG,CAAA,CAC1B,eAAA,CAAiBA,EAAM,GAAG,CAAA,CAC1B,kBAAmBA,CAAAA,CAAM,GAAG,CAAA,CAE5B,QAAA,CAAUe,CAAAA,CAAO,GAAG,EACpB,UAAA,CAAYA,CAAAA,CAAO,GAAG,CAAA,CACtB,aAAA,CAAeA,EAAO,GAAG,CAAA,CACzB,cAAA,CAAgBA,CAAAA,CAAO,GAAG,CAAA,CAC1B,eAAgBA,CAAAA,CAAO,GAAG,CAAA,CAC1B,gBAAA,CAAkBA,CAAAA,CAAO,GAAG,EAE5B,MAAA,CAAQE,CAAAA,CAAK,GAAG,CAAA,CAChB,QAAA,CAAUA,CAAAA,CAAK,GAAG,CAAA,CAClB,WAAA,CAAaA,EAAK,GAAG,CAAA,CACrB,aAAcA,CAAAA,CAAK,GAAG,CAAA,CACtB,YAAA,CAAcA,CAAAA,CAAK,GAAG,EACtB,WAAA,CAAaH,CAAAA,CAAO,GAAG,CAAA,CAEvB,OAAA,CAASP,CAAAA,CAAM,GAAG,CAAA,CAClB,SAAA,CAAWA,CAAAA,CAAM,GAAG,CAAA,CACpB,YAAA,CAAcA,EAAM,GAAG,CAAA,CACvB,cAAeA,CAAAA,CAAM,GAAG,EACxB,OAAA,CAASH,CAAAA,CAAM,GAAG,CAAA,CAClB,SAAA,CAAWA,CAAAA,CAAM,GAAG,CAAA,CACpB,YAAA,CAAcA,CAAAA,CAAM,GAAG,CAAA,CACvB,aAAA,CAAeA,EAAM,GAAG,CAAA,CACxB,KAAA,CAAOF,CAAAA,CAAI,GAAG,CAAA,CACd,QAASA,CAAAA,CAAI,GAAG,EAChB,UAAA,CAAYA,CAAAA,CAAI,GAAG,CAAA,CACnB,WAAA,CAAaA,CAAAA,CAAI,GAAG,CAAA,CACpB,IAAA,CAAMU,EAAK,GAAG,CAAA,CACd,OAAQA,CAAAA,CAAK,GAAG,EAChB,SAAA,CAAWA,CAAAA,CAAK,GAAG,CAAA,CACnB,UAAA,CAAYA,CAAAA,CAAK,GAAG,CAAA,CAEpB,IAAA,CAAME,EAAO,GAAG,CAAA,CAChB,UAAWA,CAAAA,CAAO,GAAG,CAAA,CACrB,UAAA,CAAYA,CAAAA,CAAO,GAAG,EACtB,WAAA,CAAaC,CAAAA,CAAO,GAAG,CAAA,CACvB,KAAA,CAAOD,CAAAA,CAAO,GAAG,CACrB,EChHO,IAAMwB,EAAAA,CAA2B,CACpC,GAAGd,EAEH,OAAA,CAASpB,CAAAA,CAAM,GAAG,CAAA,CAClB,SAAA,CAAWA,EAAM,GAAG,CAAA,CACpB,YAAA,CAAcA,CAAAA,CAAM,GAAG,CAAA,CACvB,cAAeA,CAAAA,CAAM,GAAG,CAAA,CACxB,aAAA,CAAeA,CAAAA,CAAM,EAAE,EACvB,eAAA,CAAiBA,CAAAA,CAAM,GAAG,CAAA,CAE1B,SAAA,CAAWJ,CAAAA,CAAM,GAAG,CAAA,CACpB,WAAA,CAAaA,EAAM,GAAG,CAAA,CACtB,eAAgBA,CAAAA,CAAM,GAAG,CAAA,CACzB,eAAA,CAAiBA,CAAAA,CAAM,GAAG,EAC1B,eAAA,CAAiBA,CAAAA,CAAM,EAAE,CAAA,CACzB,iBAAA,CAAmBA,CAAAA,CAAM,GAAG,CAAA,CAE5B,QAAA,CAAUG,CAAAA,CAAO,GAAG,CAAA,CACpB,UAAA,CAAYgB,EACZ,aAAA,CAAehB,CAAAA,CAAO,GAAG,CAAA,CACzB,cAAA,CAAgBA,EAAO,GAAG,CAAA,CAC1B,cAAA,CAAgBA,CAAAA,CAAO,EAAE,CAAA,CACzB,iBAAkBA,CAAAA,CAAO,GAAG,EAE5B,MAAA,CAAQU,CAAAA,CAAO,GAAG,CAAA,CAClB,QAAA,CAAUM,CAAAA,CACV,WAAA,CAAaN,CAAAA,CAAO,GAAG,EACvB,YAAA,CAAcA,CAAAA,CAAO,GAAG,CAAA,CACxB,YAAA,CAAcA,EAAO,EAAE,CAAA,CACvB,WAAA,CAAaT,CAAAA,CAAM,GAAG,CAAA,CAEtB,QAASG,CAAAA,CAAM,GAAG,CAAA,CAClB,SAAA,CAAWY,CAAAA,CACX,YAAA,CAAcZ,EAAM,GAAG,CAAA,CACvB,aAAA,CAAeA,CAAAA,CAAM,EAAE,CAAA,CACvB,QAASF,CAAAA,CAAO,GAAG,EACnB,SAAA,CAAWA,CAAAA,CAAO,GAAG,CAAA,CACrB,YAAA,CAAcA,CAAAA,CAAO,GAAG,CAAA,CACxB,aAAA,CAAeA,EAAO,EAAE,CAAA,CACxB,KAAA,CAAOH,CAAAA,CAAI,GAAG,CAAA,CACd,QAASiB,CAAAA,CACT,UAAA,CAAYjB,CAAAA,CAAI,GAAG,CAAA,CACnB,WAAA,CAAaA,EAAI,EAAE,CAAA,CACnB,KAAMU,CAAAA,CAAK,GAAG,EACd,MAAA,CAAQO,CAAAA,CACR,SAAA,CAAWP,CAAAA,CAAK,GAAG,CAAA,CACnB,WAAYA,CAAAA,CAAK,EAAE,CAAA,CAEnB,IAAA,CAAMR,CAAAA,CAAM,GAAG,EACf,SAAA,CAAWA,CAAAA,CAAM,GAAG,CAAA,CACpB,UAAA,CAAYA,CAAAA,CAAM,GAAG,CAAA,CACrB,WAAA,CAAaD,EAAO,GAAG,CAAA,CACvB,MAAOC,CAAAA,CAAM,GAAG,CACpB,CAAA,CAMamC,EAAAA,CAA0B,CACnC,GAAGd,CAAAA,CAEH,OAAA,CAASrB,CAAAA,CAAM,GAAG,CAAA,CAClB,SAAA,CAAWA,EAAM,GAAG,CAAA,CACpB,YAAA,CAAcA,CAAAA,CAAM,GAAG,CAAA,CACvB,cAAeA,CAAAA,CAAM,GAAG,EACxB,aAAA,CAAeA,CAAAA,CAAM,GAAG,CAAA,CACxB,eAAA,CAAiBA,CAAAA,CAAM,GAAG,CAAA,CAE1B,SAAA,CAAWJ,EAAM,GAAG,CAAA,CACpB,WAAA,CAAaA,CAAAA,CAAM,GAAG,CAAA,CACtB,eAAgBA,CAAAA,CAAM,GAAG,CAAA,CACzB,eAAA,CAAiBA,CAAAA,CAAM,GAAG,EAC1B,eAAA,CAAiBA,CAAAA,CAAM,GAAG,CAAA,CAC1B,iBAAA,CAAmBA,EAAM,GAAG,CAAA,CAE5B,QAAA,CAAUG,CAAAA,CAAO,GAAG,CAAA,CACpB,WAAYA,CAAAA,CAAO,GAAG,CAAA,CACtB,aAAA,CAAeA,CAAAA,CAAO,GAAG,EACzB,cAAA,CAAgBA,CAAAA,CAAO,GAAG,CAAA,CAC1B,cAAA,CAAgBA,CAAAA,CAAO,GAAG,CAAA,CAC1B,gBAAA,CAAkBA,EAAO,GAAG,CAAA,CAE5B,OAAQU,CAAAA,CAAO,GAAG,CAAA,CAClB,QAAA,CAAUA,CAAAA,CAAO,GAAG,EACpB,WAAA,CAAaA,CAAAA,CAAO,GAAG,CAAA,CACvB,YAAA,CAAcA,CAAAA,CAAO,GAAG,CAAA,CACxB,YAAA,CAAcA,CAAAA,CAAO,GAAG,CAAA,CACxB,WAAA,CAAaT,EAAM,GAAG,CAAA,CAEtB,QAASG,CAAAA,CAAM,GAAG,EAClB,SAAA,CAAWA,CAAAA,CAAM,GAAG,CAAA,CACpB,YAAA,CAAcA,CAAAA,CAAM,GAAG,CAAA,CACvB,aAAA,CAAeA,EAAM,GAAG,CAAA,CACxB,QAASF,CAAAA,CAAO,GAAG,CAAA,CACnB,SAAA,CAAWA,CAAAA,CAAO,GAAG,EACrB,YAAA,CAAcA,CAAAA,CAAO,GAAG,CAAA,CACxB,aAAA,CAAeA,EAAO,GAAG,CAAA,CACzB,KAAA,CAAOH,CAAAA,CAAI,GAAG,CAAA,CACd,QAASA,CAAAA,CAAI,GAAG,CAAA,CAChB,UAAA,CAAYA,CAAAA,CAAI,GAAG,EACnB,WAAA,CAAaA,CAAAA,CAAI,GAAG,CAAA,CACpB,IAAA,CAAMU,CAAAA,CAAK,GAAG,CAAA,CACd,MAAA,CAAQA,EAAK,GAAG,CAAA,CAChB,UAAWA,CAAAA,CAAK,GAAG,CAAA,CACnB,UAAA,CAAYA,CAAAA,CAAK,GAAG,EAEpB,IAAA,CAAMR,CAAAA,CAAM,GAAG,CAAA,CACf,SAAA,CAAWA,CAAAA,CAAM,GAAG,CAAA,CACpB,UAAA,CAAYA,CAAAA,CAAM,GAAG,CAAA,CACrB,WAAA,CAAaD,EAAO,GAAG,CAAA,CACvB,MAAOC,CAAAA,CAAM,GAAG,CACpB,EChHO,IAAMoC,EAAAA,CAA0B,CACnC,GAAGhB,CAAAA,CAEH,QAASd,CAAAA,CAAK,GAAG,CAAA,CACjB,SAAA,CAAWS,CAAAA,CACX,YAAA,CAAcT,EAAK,GAAG,CAAA,CACtB,aAAA,CAAeA,CAAAA,CAAK,GAAG,CAAA,CACvB,cAAeA,CAAAA,CAAK,EAAE,EACtB,eAAA,CAAiBA,CAAAA,CAAK,GAAG,CAAA,CAEzB,SAAA,CAAWV,CAAAA,CAAM,GAAG,CAAA,CACpB,WAAA,CAAaA,EAAM,GAAG,CAAA,CACtB,eAAgBA,CAAAA,CAAM,GAAG,EACzB,eAAA,CAAiBA,CAAAA,CAAM,GAAG,CAAA,CAC1B,eAAA,CAAiBA,CAAAA,CAAM,EAAE,CAAA,CACzB,iBAAA,CAAmBA,EAAM,GAAG,CAAA,CAE5B,SAAUW,CAAAA,CAAI,GAAG,CAAA,CACjB,UAAA,CAAYQ,CAAAA,CACZ,aAAA,CAAeR,EAAI,GAAG,CAAA,CACtB,cAAA,CAAgBA,CAAAA,CAAI,GAAG,CAAA,CACvB,eAAgBA,CAAAA,CAAI,EAAE,CAAA,CACtB,gBAAA,CAAkBA,CAAAA,CAAI,GAAG,EAEzB,MAAA,CAAQO,CAAAA,CAAK,GAAG,CAAA,CAChB,QAAA,CAAUC,EACV,WAAA,CAAaD,CAAAA,CAAK,GAAG,CAAA,CACrB,YAAA,CAAcA,CAAAA,CAAK,GAAG,CAAA,CACtB,YAAA,CAAcA,CAAAA,CAAK,EAAE,CAAA,CACrB,WAAA,CAAaR,EAAK,GAAG,CAAA,CAErB,OAAA,CAASH,CAAAA,CAAM,GAAG,CAAA,CAClB,UAAWY,CAAAA,CACX,YAAA,CAAcZ,EAAM,GAAG,CAAA,CACvB,cAAeA,CAAAA,CAAM,EAAE,CAAA,CACvB,OAAA,CAASH,CAAAA,CAAM,GAAG,EAClB,SAAA,CAAWA,CAAAA,CAAM,GAAG,CAAA,CACpB,YAAA,CAAcA,CAAAA,CAAM,GAAG,CAAA,CACvB,aAAA,CAAeA,CAAAA,CAAM,EAAE,CAAA,CACvB,KAAA,CAAOF,EAAI,GAAG,CAAA,CACd,QAASiB,CAAAA,CACT,UAAA,CAAYjB,EAAI,GAAG,CAAA,CACnB,WAAA,CAAaA,CAAAA,CAAI,EAAE,CAAA,CACnB,KAAMU,CAAAA,CAAK,GAAG,EACd,MAAA,CAAQO,CAAAA,CACR,UAAWP,CAAAA,CAAK,GAAG,CAAA,CACnB,UAAA,CAAYA,CAAAA,CAAK,EAAE,EAEnB,IAAA,CAAMF,CAAAA,CAAK,GAAG,CAAA,CACd,SAAA,CAAWA,EAAK,GAAG,CAAA,CACnB,UAAA,CAAYA,CAAAA,CAAK,GAAG,CAAA,CACpB,YAAaD,CAAAA,CAAK,GAAG,CAAA,CACrB,KAAA,CAAOC,CAAAA,CAAK,GAAG,CACnB,CAAA,CAMa+B,EAAAA,CAAyB,CAClC,GAAGhB,CAAAA,CAEH,OAAA,CAASf,EAAK,GAAG,CAAA,CACjB,UAAWA,CAAAA,CAAK,GAAG,EACnB,YAAA,CAAcA,CAAAA,CAAK,GAAG,CAAA,CACtB,aAAA,CAAeA,CAAAA,CAAK,GAAG,CAAA,CACvB,aAAA,CAAeA,CAAAA,CAAK,GAAG,CAAA,CACvB,eAAA,CAAiBA,EAAK,GAAG,CAAA,CAEzB,SAAA,CAAWV,CAAAA,CAAM,GAAG,CAAA,CACpB,YAAaA,CAAAA,CAAM,GAAG,EACtB,cAAA,CAAgBA,CAAAA,CAAM,GAAG,CAAA,CACzB,eAAA,CAAiBA,CAAAA,CAAM,GAAG,CAAA,CAC1B,eAAA,CAAiBA,EAAM,GAAG,CAAA,CAC1B,iBAAA,CAAmBA,CAAAA,CAAM,GAAG,CAAA,CAE5B,SAAUW,CAAAA,CAAI,GAAG,CAAA,CACjB,UAAA,CAAYA,CAAAA,CAAI,GAAG,EACnB,aAAA,CAAeA,CAAAA,CAAI,GAAG,CAAA,CACtB,cAAA,CAAgBA,EAAI,GAAG,CAAA,CACvB,cAAA,CAAgBA,CAAAA,CAAI,GAAG,CAAA,CACvB,iBAAkBA,CAAAA,CAAI,GAAG,EAEzB,MAAA,CAAQO,CAAAA,CAAK,GAAG,CAAA,CAChB,QAAA,CAAUA,CAAAA,CAAK,GAAG,CAAA,CAClB,WAAA,CAAaA,EAAK,GAAG,CAAA,CACrB,aAAcA,CAAAA,CAAK,GAAG,EACtB,YAAA,CAAcA,CAAAA,CAAK,GAAG,CAAA,CACtB,WAAA,CAAaR,CAAAA,CAAK,GAAG,CAAA,CAErB,OAAA,CAASH,CAAAA,CAAM,GAAG,CAAA,CAClB,SAAA,CAAWA,EAAM,GAAG,CAAA,CACpB,YAAA,CAAcA,CAAAA,CAAM,GAAG,CAAA,CACvB,cAAeA,CAAAA,CAAM,GAAG,EACxB,OAAA,CAASH,CAAAA,CAAM,GAAG,CAAA,CAClB,SAAA,CAAWA,CAAAA,CAAM,GAAG,CAAA,CACpB,YAAA,CAAcA,EAAM,GAAG,CAAA,CACvB,aAAA,CAAeA,CAAAA,CAAM,GAAG,CAAA,CACxB,MAAOF,CAAAA,CAAI,GAAG,CAAA,CACd,OAAA,CAASA,CAAAA,CAAI,GAAG,EAChB,UAAA,CAAYA,CAAAA,CAAI,GAAG,CAAA,CACnB,WAAA,CAAaA,EAAI,GAAG,CAAA,CACpB,IAAA,CAAMU,CAAAA,CAAK,GAAG,CAAA,CACd,OAAQA,CAAAA,CAAK,GAAG,CAAA,CAChB,SAAA,CAAWA,CAAAA,CAAK,GAAG,EACnB,UAAA,CAAYA,CAAAA,CAAK,GAAG,CAAA,CAEpB,IAAA,CAAMF,CAAAA,CAAK,GAAG,CAAA,CACd,SAAA,CAAWA,EAAK,GAAG,CAAA,CACnB,WAAYA,CAAAA,CAAK,GAAG,CAAA,CACpB,WAAA,CAAaD,CAAAA,CAAK,GAAG,EACrB,KAAA,CAAOC,CAAAA,CAAK,GAAG,CACnB,MChHagC,EAAAA,CAA2B,CACpC,GAAGlB,CAAAA,CAEH,OAAA,CAASxB,CAAAA,CAAM,GAAG,CAAA,CAClB,SAAA,CAAWmB,EACX,YAAA,CAAcnB,CAAAA,CAAM,GAAG,CAAA,CACvB,aAAA,CAAeA,CAAAA,CAAM,GAAG,CAAA,CACxB,aAAA,CAAeA,EAAM,GAAG,CAAA,CACxB,eAAA,CAAiBA,CAAAA,CAAM,GAAG,CAAA,CAE1B,UAAWA,CAAAA,CAAM,GAAG,CAAA,CACpB,WAAA,CAAaA,CAAAA,CAAM,GAAG,EACtB,cAAA,CAAgBA,CAAAA,CAAM,GAAG,CAAA,CACzB,eAAA,CAAiBA,EAAM,GAAG,CAAA,CAC1B,eAAA,CAAiBA,CAAAA,CAAM,EAAE,CAAA,CACzB,kBAAmBA,CAAAA,CAAM,GAAG,CAAA,CAE5B,QAAA,CAAUA,CAAAA,CAAM,GAAG,EACnB,UAAA,CAAYmB,CAAAA,CACZ,aAAA,CAAenB,CAAAA,CAAM,GAAG,CAAA,CACxB,eAAgBA,CAAAA,CAAM,GAAG,EACzB,cAAA,CAAgBA,CAAAA,CAAM,GAAG,CAAA,CACzB,gBAAA,CAAkBA,CAAAA,CAAM,GAAG,CAAA,CAE3B,MAAA,CAAQY,EAAK,GAAG,CAAA,CAChB,QAAA,CAAUO,CAAAA,CACV,WAAA,CAAaP,CAAAA,CAAK,GAAG,CAAA,CACrB,YAAA,CAAcA,CAAAA,CAAK,GAAG,CAAA,CACtB,YAAA,CAAcA,EAAK,EAAE,CAAA,CACrB,YAAaA,CAAAA,CAAK,GAAG,EAErB,OAAA,CAASL,CAAAA,CAAM,GAAG,CAAA,CAClB,SAAA,CAAWY,CAAAA,CACX,aAAcZ,CAAAA,CAAM,GAAG,EACvB,aAAA,CAAeA,CAAAA,CAAM,EAAE,CAAA,CACvB,OAAA,CAASH,CAAAA,CAAM,GAAG,CAAA,CAClB,SAAA,CAAWA,EAAM,GAAG,CAAA,CACpB,aAAcA,CAAAA,CAAM,GAAG,EACvB,aAAA,CAAeA,CAAAA,CAAM,EAAE,CAAA,CACvB,KAAA,CAAOF,CAAAA,CAAI,GAAG,CAAA,CACd,OAAA,CAASiB,CAAAA,CACT,UAAA,CAAYjB,CAAAA,CAAI,GAAG,EACnB,WAAA,CAAaA,CAAAA,CAAI,EAAE,CAAA,CACnB,IAAA,CAAMU,CAAAA,CAAK,GAAG,CAAA,CACd,MAAA,CAAQO,EACR,SAAA,CAAWP,CAAAA,CAAK,GAAG,CAAA,CACnB,UAAA,CAAYA,CAAAA,CAAK,EAAE,CAAA,CAEnB,IAAA,CAAMA,EAAK,GAAG,CAAA,CACd,SAAA,CAAWA,CAAAA,CAAK,GAAG,CAAA,CACnB,WAAYA,CAAAA,CAAK,GAAG,CAAA,CACpB,WAAA,CAAaC,CAAAA,CAAO,GAAG,EACvB,KAAA,CAAOD,CAAAA,CAAK,GAAG,CACnB,CAAA,CAMa+B,GAA0B,CACnC,GAAGlB,CAAAA,CAEH,OAAA,CAASzB,CAAAA,CAAM,GAAG,EAClB,SAAA,CAAWA,CAAAA,CAAM,GAAG,CAAA,CACpB,YAAA,CAAcA,CAAAA,CAAM,GAAG,CAAA,CACvB,aAAA,CAAeA,CAAAA,CAAM,GAAG,CAAA,CACxB,aAAA,CAAeA,EAAM,GAAG,CAAA,CACxB,gBAAiBA,CAAAA,CAAM,GAAG,EAE1B,SAAA,CAAWA,CAAAA,CAAM,GAAG,CAAA,CACpB,WAAA,CAAaA,CAAAA,CAAM,GAAG,CAAA,CACtB,cAAA,CAAgBA,EAAM,GAAG,CAAA,CACzB,gBAAiBA,CAAAA,CAAM,GAAG,CAAA,CAC1B,eAAA,CAAiBA,CAAAA,CAAM,GAAG,EAC1B,iBAAA,CAAmBA,CAAAA,CAAM,GAAG,CAAA,CAE5B,QAAA,CAAUA,EAAM,GAAG,CAAA,CACnB,UAAA,CAAYA,CAAAA,CAAM,GAAG,CAAA,CACrB,cAAeA,CAAAA,CAAM,GAAG,CAAA,CACxB,cAAA,CAAgBA,CAAAA,CAAM,GAAG,EACzB,cAAA,CAAgBA,CAAAA,CAAM,GAAG,CAAA,CACzB,gBAAA,CAAkBA,CAAAA,CAAM,GAAG,CAAA,CAE3B,MAAA,CAAQY,EAAK,GAAG,CAAA,CAChB,SAAUA,CAAAA,CAAK,GAAG,CAAA,CAClB,WAAA,CAAaA,CAAAA,CAAK,GAAG,EACrB,YAAA,CAAcA,CAAAA,CAAK,GAAG,CAAA,CACtB,YAAA,CAAcA,CAAAA,CAAK,GAAG,CAAA,CACtB,WAAA,CAAaA,CAAAA,CAAK,GAAG,CAAA,CAErB,OAAA,CAASL,EAAM,GAAG,CAAA,CAClB,UAAWA,CAAAA,CAAM,GAAG,EACpB,YAAA,CAAcA,CAAAA,CAAM,GAAG,CAAA,CACvB,aAAA,CAAeA,CAAAA,CAAM,GAAG,CAAA,CACxB,OAAA,CAASH,CAAAA,CAAM,GAAG,CAAA,CAClB,SAAA,CAAWA,EAAM,GAAG,CAAA,CACpB,YAAA,CAAcA,CAAAA,CAAM,GAAG,CAAA,CACvB,cAAeA,CAAAA,CAAM,GAAG,EACxB,KAAA,CAAOF,CAAAA,CAAI,GAAG,CAAA,CACd,OAAA,CAASA,CAAAA,CAAI,GAAG,CAAA,CAChB,UAAA,CAAYA,EAAI,GAAG,CAAA,CACnB,WAAA,CAAaA,CAAAA,CAAI,GAAG,CAAA,CACpB,KAAMU,CAAAA,CAAK,GAAG,CAAA,CACd,MAAA,CAAQA,CAAAA,CAAK,GAAG,EAChB,SAAA,CAAWA,CAAAA,CAAK,GAAG,CAAA,CACnB,UAAA,CAAYA,EAAK,GAAG,CAAA,CAEpB,IAAA,CAAMA,CAAAA,CAAK,GAAG,CAAA,CACd,UAAWA,CAAAA,CAAK,GAAG,CAAA,CACnB,UAAA,CAAYA,CAAAA,CAAK,GAAG,EACpB,WAAA,CAAaC,CAAAA,CAAO,GAAG,CAAA,CACvB,KAAA,CAAOD,CAAAA,CAAK,GAAG,CACnB,MChHagC,EAAAA,CAA0B,CACnC,GAAGpB,CAAAA,CAEH,OAAA,CAASzB,CAAAA,CAAK,GAAG,CAAA,CACjB,SAAA,CAAWoB,EACX,YAAA,CAAcpB,CAAAA,CAAK,GAAG,CAAA,CACtB,aAAA,CAAeA,CAAAA,CAAK,GAAG,CAAA,CACvB,aAAA,CAAeA,CAAAA,CAAK,GAAG,CAAA,CACvB,eAAA,CAAiBA,EAAK,GAAG,CAAA,CAEzB,UAAWA,CAAAA,CAAK,GAAG,EACnB,WAAA,CAAaA,CAAAA,CAAK,GAAG,CAAA,CACrB,cAAA,CAAgBA,CAAAA,CAAK,GAAG,CAAA,CACxB,eAAA,CAAiBA,CAAAA,CAAK,GAAG,CAAA,CACzB,eAAA,CAAiBA,EAAK,EAAE,CAAA,CACxB,iBAAA,CAAmBA,CAAAA,CAAK,GAAG,CAAA,CAE3B,SAAUA,CAAAA,CAAK,GAAG,EAClB,UAAA,CAAYoB,CAAAA,CACZ,cAAepB,CAAAA,CAAK,GAAG,CAAA,CACvB,cAAA,CAAgBA,CAAAA,CAAK,GAAG,EACxB,cAAA,CAAgBA,CAAAA,CAAK,GAAG,CAAA,CACxB,gBAAA,CAAkBA,EAAK,GAAG,CAAA,CAE1B,MAAA,CAAQc,CAAAA,CAAO,GAAG,CAAA,CAClB,SAAUM,CAAAA,CACV,WAAA,CAAaN,EAAO,GAAG,CAAA,CACvB,aAAcA,CAAAA,CAAO,GAAG,CAAA,CACxB,YAAA,CAAcA,CAAAA,CAAO,EAAE,EACvB,WAAA,CAAaA,CAAAA,CAAO,GAAG,CAAA,CAEvB,OAAA,CAASN,CAAAA,CAAM,GAAG,CAAA,CAClB,SAAA,CAAWY,CAAAA,CACX,YAAA,CAAcZ,CAAAA,CAAM,GAAG,EACvB,aAAA,CAAeA,CAAAA,CAAM,EAAE,CAAA,CACvB,OAAA,CAASH,EAAM,GAAG,CAAA,CAClB,SAAA,CAAWA,CAAAA,CAAM,GAAG,CAAA,CACpB,aAAcA,CAAAA,CAAM,GAAG,CAAA,CACvB,aAAA,CAAeA,CAAAA,CAAM,EAAE,EACvB,KAAA,CAAOF,CAAAA,CAAI,GAAG,CAAA,CACd,OAAA,CAASiB,CAAAA,CACT,WAAYjB,CAAAA,CAAI,GAAG,EACnB,WAAA,CAAaA,CAAAA,CAAI,EAAE,CAAA,CACnB,IAAA,CAAMU,CAAAA,CAAK,GAAG,CAAA,CACd,MAAA,CAAQO,EACR,SAAA,CAAWP,CAAAA,CAAK,GAAG,CAAA,CACnB,UAAA,CAAYA,CAAAA,CAAK,EAAE,CAAA,CAEnB,IAAA,CAAMC,CAAAA,CAAO,GAAG,CAAA,CAChB,SAAA,CAAWA,EAAO,GAAG,CAAA,CACrB,WAAYA,CAAAA,CAAO,GAAG,EACtB,WAAA,CAAaC,CAAAA,CAAO,GAAG,CAAA,CACvB,KAAA,CAAOD,CAAAA,CAAO,GAAG,CACrB,CAAA,CAMagC,GAAyB,CAClC,GAAGpB,EAEH,OAAA,CAAS1B,CAAAA,CAAK,GAAG,CAAA,CACjB,SAAA,CAAWA,CAAAA,CAAK,GAAG,CAAA,CACnB,YAAA,CAAcA,EAAK,EAAE,CAAA,CACrB,cAAeA,CAAAA,CAAK,GAAG,CAAA,CACvB,aAAA,CAAeA,CAAAA,CAAK,GAAG,EACvB,eAAA,CAAiBA,CAAAA,CAAK,GAAG,CAAA,CAEzB,SAAA,CAAWA,CAAAA,CAAK,GAAG,CAAA,CACnB,WAAA,CAAaA,CAAAA,CAAK,GAAG,CAAA,CACrB,cAAA,CAAgBA,EAAK,GAAG,CAAA,CACxB,gBAAiBA,CAAAA,CAAK,GAAG,EACzB,eAAA,CAAiBA,CAAAA,CAAK,GAAG,CAAA,CACzB,iBAAA,CAAmBA,CAAAA,CAAK,GAAG,CAAA,CAE3B,QAAA,CAAUA,CAAAA,CAAK,GAAG,CAAA,CAClB,UAAA,CAAYA,EAAK,GAAG,CAAA,CACpB,aAAA,CAAeA,CAAAA,CAAK,GAAG,CAAA,CACvB,eAAgBA,CAAAA,CAAK,GAAG,EACxB,cAAA,CAAgBA,CAAAA,CAAK,GAAG,CAAA,CACxB,gBAAA,CAAkBA,CAAAA,CAAK,GAAG,CAAA,CAE1B,MAAA,CAAQc,EAAO,GAAG,CAAA,CAClB,QAAA,CAAUA,CAAAA,CAAO,GAAG,CAAA,CACpB,YAAaA,CAAAA,CAAO,GAAG,CAAA,CACvB,YAAA,CAAcA,CAAAA,CAAO,GAAG,EACxB,YAAA,CAAcA,CAAAA,CAAO,GAAG,CAAA,CACxB,WAAA,CAAaA,EAAO,GAAG,CAAA,CAEvB,OAAA,CAASN,CAAAA,CAAM,GAAG,CAAA,CAClB,UAAWA,CAAAA,CAAM,GAAG,EACpB,YAAA,CAAcA,CAAAA,CAAM,GAAG,CAAA,CACvB,aAAA,CAAeA,CAAAA,CAAM,GAAG,CAAA,CACxB,OAAA,CAASH,EAAM,GAAG,CAAA,CAClB,UAAWA,CAAAA,CAAM,GAAG,EACpB,YAAA,CAAcA,CAAAA,CAAM,GAAG,CAAA,CACvB,aAAA,CAAeA,CAAAA,CAAM,GAAG,CAAA,CACxB,KAAA,CAAOF,CAAAA,CAAI,GAAG,CAAA,CACd,OAAA,CAASA,EAAI,GAAG,CAAA,CAChB,UAAA,CAAYA,CAAAA,CAAI,GAAG,CAAA,CACnB,YAAaA,CAAAA,CAAI,GAAG,EACpB,IAAA,CAAMU,CAAAA,CAAK,GAAG,CAAA,CACd,MAAA,CAAQA,CAAAA,CAAK,GAAG,CAAA,CAChB,SAAA,CAAWA,EAAK,GAAG,CAAA,CACnB,UAAA,CAAYA,CAAAA,CAAK,GAAG,CAAA,CAEpB,KAAMC,CAAAA,CAAO,GAAG,CAAA,CAChB,SAAA,CAAWA,CAAAA,CAAO,GAAG,EACrB,UAAA,CAAYA,CAAAA,CAAO,GAAG,CAAA,CACtB,WAAA,CAAaC,EAAO,GAAG,CAAA,CACvB,KAAA,CAAOD,CAAAA,CAAO,GAAG,CACrB,EC3EO,IAAMiC,EAAAA,CAAW,CAEpB,MAAA,CAAQ,CAAE,KAAA,CAAOpB,EAAa,IAAA,CAAMC,CAAW,CAAA,CAE/C,IAAA,CAAM,CAAE,KAAA,CAAOC,EAAW,IAAA,CAAMC,CAAS,EACzC,IAAA,CAAM,CAAE,MAAOC,CAAAA,CAAW,IAAA,CAAMC,CAAS,CAAA,CACzC,OAAA,CAAS,CAAE,MAAOC,CAAAA,CAAc,IAAA,CAAMC,CAAY,CAAA,CAClD,IAAA,CAAM,CAAE,KAAA,CAAOC,CAAAA,CAAW,IAAA,CAAMC,CAAS,CAAA,CACzC,MAAA,CAAQ,CAAE,KAAA,CAAOC,EAAAA,CAAa,KAAMC,EAAW,CAAA,CAC/C,MAAO,CAAE,KAAA,CAAOC,EAAAA,CAAY,IAAA,CAAMC,EAAU,CAAA,CAC5C,KAAM,CAAE,KAAA,CAAOC,EAAAA,CAAW,IAAA,CAAMC,EAAS,CAAA,CAEzC,MAAO,CAAE,KAAA,CAAOC,EAAAA,CAAY,IAAA,CAAMC,EAAU,CAAA,CAC5C,KAAM,CAAE,KAAA,CAAOC,GAAW,IAAA,CAAMC,EAAS,CAC7C,ECtDO,IAAME,EAAAA,CAAmC,CAC5C,IAAA,CAAM,GAAA,CACN,MAAO,UAAA,CACP,EAAA,CAAI,SAAA,CACJ,EAAA,CAAI,QAAA,CACJ,EAAA,CAAI,OACJ,EAAA,CAAI,QAAA,CACJ,EAAA,CAAI,MAAA,CACJ,KAAA,CAAO,MAAA,CACP,MAAO,MAAA,CACP,KAAA,CAAO,OACP,KAAA,CAAO,MACX,EAKaC,EAAAA,CAAiC,CAC1C,IAAA,CAAM,GAAA,CACN,EAAA,CAAI,UAAA,CACJ,GAAI,SAAA,CACJ,EAAA,CAAI,UAAA,CACJ,EAAA,CAAI,QAAA,CACJ,EAAA,CAAI,UACJ,KAAA,CAAO,MAAA,CACP,IAAA,CAAM,QACV,CAAA,CAKaC,EAAAA,CAAmC,CAC5C,IAAA,CAAM,MAAA,CACN,GAAI,+BAAA,CACJ,EAAA,CAAI,gEACJ,EAAA,CAAI,kEAAA,CACJ,EAAA,CAAI,oEAAA,CACJ,EAAA,CAAI,qEAAA,CACJ,MAAO,qCAAA,CACP,KAAA,CAAO,sCACP,KAAA,CAAO,iCACX,EAKaC,EAAAA,CAAqC,CAC9C,KAAA,CAAO,UAAA,CACP,EAAA,CAAI,SAAA,CACJ,GAAI,UAAA,CACJ,EAAA,CAAI,OACJ,EAAA,CAAI,SAAA,CACJ,GAAI,QAAA,CACJ,KAAA,CAAO,MAAA,CACP,KAAA,CAAO,QAAA,CACP,KAAA,CAAO,OACP,KAAA,CAAO,MACX,CAAA,CAKaC,EAAAA,CAAyC,CAClD,KAAA,CAAO,IACP,OAAA,CAAS,GAAA,CACT,MAAA,CAAQ,GAAA,CACR,QAAA,CAAU,GAAA,CACV,KAAM,GACV,CAAA,CAKaC,GAAyC,CAClD,IAAA,CAAM,EACN,KAAA,CAAO,IAAA,CACP,MAAA,CAAQ,GAAA,CACR,OAAA,CAAS,IAAA,CACT,MAAO,CACX,CAAA,CAKaC,EAAAA,CAAiC,CAC1C,MAAA,CAAQ,EAAA,CACR,KAAM,CAAA,CACN,QAAA,CAAU,GAAA,CACV,MAAA,CAAQ,IAAA,CACR,OAAA,CAAS,KACT,KAAA,CAAO,IAAA,CACP,QAAS,IAAA,CACT,OAAA,CAAS,KACT,KAAA,CAAO,IACX,CAAA,CAKaC,EAAAA,CAAyC,CAClD,IAAA,CAAM,iBACN,MAAA,CAAQ,gBAAA,CACR,IAAA,CAAM,gBACV,CAAA,CAKaC,EAAAA,CAAmC,CAC5C,IAAA,CAAM,CAAA,CACN,MAAA,CAAQ,GAAA,CACR,GAAA,CAAK,EAAA,CACL,OAAQ,GAAA,CACR,IAAA,CAAM,GACN,MAAA,CAAQ,GAAA,CACR,KAAM,CACV,CAAA,CAKaC,EAAAA,CAAgB9B,CAAAA,CAKhB+B,EAAAA,CAAoB9B,CAAAA,CAKpB+B,GAAsB,CAC/B,MAAA,CAAQF,GACR,OAAA,CAAST,EAAAA,CACT,OAAQC,EAAAA,CACR,OAAA,CAASC,EAAAA,CACT,QAAA,CAAUC,EAAAA,CACV,UAAA,CAAYC,GACZ,UAAA,CAAYC,EAAAA,CACZ,OAAQC,EAAAA,CACR,UAAA,CAAYC,GACZ,OAAA,CAASC,EACb,CAAA,CAKaI,EAAAA,CAA0B,CACnC,GAAGD,GACH,MAAA,CAAQD,EACZ,EC7IA,IAAMG,EAAAA,CAA4B,IAAc,CAC5C,IAAMC,CAAAA,CAAQ,IAAI,KAAA,EAAM,CAAE,KAAA,EAAS,GAC7BC,CAAAA,CAAQD,CAAAA,CAAM,MAAM,gCAAgC,CAAA,CAC1D,GAAIC,CAAAA,GAAQ,CAAC,CAAA,CACT,OAAO5I,CAAAA,CAAqB4I,CAAAA,CAAM,CAAC,CAAC,CAAA,CAExC,IAAMC,CAAAA,CAAYF,CAAAA,CAAM,KAAA,CAAM,uCAAuC,CAAA,CACrE,OAAIE,CAAAA,GAAY,CAAC,CAAA,EAAKA,CAAAA,CAAU,CAAC,CAAA,GAAM,cAAA,CAC5B7I,EAAqB6I,CAAAA,CAAU,CAAC,CAAC,CAAA,CAErC,OACX,CAAA,CAKMC,EAAAA,CAAgB,CAClBnH,CAAAA,CACAoH,IAC4D,CAC5D,IAAMC,CAAAA,CAAU,EAAC,CAEjB,IAAA,IAAWlJ,KAAO6B,CAAAA,CAAQ,CACtB,IAAMrC,CAAAA,CAAQqC,CAAAA,CAAO7B,CAAG,EACxB,GAAIR,CAAAA,CAAO,CACP,IAAMyC,CAAAA,CAAW,GAAGgH,CAAa,CAAA,CAAA,EAAI/I,CAAAA,CAAqBF,CAAG,CAAC,CAAA,CAAA,CAC9D,GAAI,OAAOR,CAAAA,EAAU,WAAY,CAC7B,IAAM2J,EAAM7H,EAAAA,CAAuBhC,EAAc,CAAA,CACjD4J,CAAAA,CAAQlJ,CAAG,CAAA,CAAI,IAAIc,CAAAA,GAAoB,CACnC,IAAM2D,CAAAA,CAAW5D,EAAAA,CAAeC,CAAI,CAAA,CACpC,OAAOqI,CAAAA,CAAI,QAAA,CAAS1E,CAAAA,CAAU,IAAM,CAChC,IAAM2E,CAAAA,CAAY5J,CAAAA,CAAgD,GAAGsB,CAAI,CAAA,CACzE,OAAOqB,EAAAA,CAAiBiH,CAAAA,CAAU,CAAA,EAAGnH,CAAQ,CAAA,CAAA,EAAIb,EAAAA,CAAiBqD,CAAQ,CAAC,CAAA,CAAE,CACjF,CAAC,CACL,EACJ,CAAA,KACIyE,CAAAA,CAAQlJ,CAAG,CAAA,CAAImC,EAAAA,CAAiB3C,CAAAA,CAAOyC,EAAU,IAAI,EAE7D,CACJ,CAEA,OAAOiH,CACX,EA4BaG,EAAAA,CAILC,CAAAA,EACoH,CAExH,IAAML,CAAAA,CAAgBL,EAAAA,GAGtB,GAAI,OAAOU,GAAoB,UAAA,CAAY,CACvC,IAAIrJ,CAAAA,CAAwB,IAAA,CACxBsJ,CAAAA,CAEJ,OAAO,IAAI,KAAA,CAAM,EAAC,CAAa,CAC3B,GAAA,CAAIC,CAAAA,CAAGC,CAAAA,CAAuB,CAC1B,IAAMlG,CAAAA,CAAQ3D,EAAAA,EAAS,CACvB,GAAI,CAAC2D,CAAAA,CACD,MAAM,IAAI,KAAA,CAAM,6FAA6F,CAAA,CAEjH,OAAA,CAAIA,IAAUgG,CAAAA,EAAa,CAACtJ,CAAAA,IACxBA,CAAAA,CAAS+I,EAAAA,CAAcM,CAAAA,CAAgB/F,CAAK,CAAA,CAAG0F,CAAa,CAAA,CAC5DM,CAAAA,CAAYhG,CAAAA,CAAAA,CAETtD,CAAAA,CAAOwJ,CAAe,CACjC,CACJ,CAAC,CACL,CAGA,OAAOT,GAAcM,CAAAA,CAAiBL,CAAa,CACvD,EC3FO,IAAMS,GAAaC,CAAAA,EAAkD,CAExE,IAAI9G,CAAAA,CAAM,EAAA,CACV,IAAA,IAAW7C,KAAO2J,CAAAA,CACd9G,CAAAA,EAAO,CAAA,EAAG7C,CAAG,CAAA,CAAA,EAAIU,CAAAA,CAAYiJ,EAAO3J,CAAG,CAA4B,CAAC,CAAA,CAAA,CAAA,CAIxE,GAAI4C,EAAAA,CAAaC,CAAG,CAAA,CAEhB,OAAO,aADMd,EAAAA,CAAWc,CAAG,CACH,CAAA,CAAA,CAI5B,IAAM1C,CAAAA,CAAO,CAAA,UAAA,EAAa4C,EAAAA,EAAmB,GAG7C,OAAAlD,CAAAA,CAAW,CAAA,WAAA,EAAcM,CAAI,CAAA,CAAA,EAAI0C,CAAG,GAAG,CAAA,CACvCC,EAAAA,CAAaD,CAAG,CAAA,CAET1C,CACX,MC9BayJ,EAAAA,CAAYC,CAAAA,EAAqC,CAC1D,GAAM,CACF,WAAAC,CAAAA,CACA,GAAA,CAAAC,CAAAA,CACA,SAAA,CAAAC,CAAAA,CAAY,QAAA,CACZ,WAAAC,CAAAA,CAAa,GAAA,CACb,WAAA,CAAAC,CAAAA,CAAc,MAAA,CACd,YAAA,CAAAC,CACJ,CAAA,CAAIN,CAAAA,CAGAhH,CAAAA,CAAM,CAAA,aAAA,EAAgBiH,CAAU,CAAA,EAAA,CAAA,CACpC,OAAAjH,CAAAA,EAAO,CAAA,IAAA,EAAOkH,CAAG,CAAA,CAAA,CAAA,CACjBlH,CAAAA,EAAO,cAAcmH,CAAS,CAAA,CAAA,CAAA,CAC9BnH,CAAAA,EAAO,CAAA,YAAA,EAAeoH,CAAU,CAAA,CAAA,CAAA,CAChCpH,GAAO,CAAA,aAAA,EAAgBqH,CAAW,IAC9BC,CAAAA,GACAtH,CAAAA,EAAO,iBAAiBsH,CAAY,CAAA,CAAA,CAAA,CAAA,CAInCnH,EAAAA,CAAYH,CAAG,CAAA,GAChBhD,CAAAA,CAAW,cAAcgD,CAAG,CAAA,CAAA,CAAG,EAC/BI,EAAAA,CAAYJ,CAAG,GAGZiH,CACX,ECrCA,IAAMM,EAAAA,CAAuB,CAACzJ,CAAAA,CAA8B0J,IAA2B,CACnF,IAAIxH,CAAAA,CAAM,EAAA,CAEV,IAAA,IAAW7C,CAAAA,IAAOW,EAAK,CACnB,IAAML,CAAAA,CAAQK,CAAAA,CAAIX,CAAG,CAAA,CACfsK,EAAU,CAAA,EAAA,EAAKD,CAAM,IAAItK,CAAAA,CAAYC,CAAG,CAAC,CAAA,CAAA,CAE3CM,CAAAA,EAAS,OAAOA,CAAAA,EAAU,QAAA,CAC1BuC,CAAAA,EAAOuH,GAAqB9J,CAAAA,CAAkC,CAAA,EAAG+J,CAAM,CAAA,CAAA,EAAItK,CAAAA,CAAYC,CAAG,CAAC,CAAA,CAAE,CAAA,CACtFM,CAAAA,EAAS,IAAA,GAChBuC,CAAAA,EAAO,CAAA,EAAGyH,CAAO,CAAA,CAAA,EAAIhK,CAAK,KAElC,CAEA,OAAOuC,CACX,CAAA,CAaa0H,EAAAA,CAAqB,CAAChH,CAAAA,CAAc8G,CAAAA,CAAS,OAAA,GAAkB,CACxE,IAAMG,CAAAA,CAAYJ,EAAAA,CAAqB7G,CAAAA,CAAO8G,CAAM,CAAA,CACpDxK,EAAW,CAAA,MAAA,EAAS2K,CAAS,CAAA,CAAA,CAAG,EACpC,CAAA,CAaaC,EAAAA,CAAS,CAACC,CAAAA,CAAcC,CAAAA,GAA8B,CAC/D,IAAML,CAAAA,CAAU,WAAWI,CAAAA,CAAK,OAAA,CAAQ,KAAA,CAAO,GAAG,CAAC,CAAA,CAAA,CACnD,OAAOC,CAAAA,CAAW,CAAA,IAAA,EAAOL,CAAO,CAAA,EAAA,EAAKK,CAAQ,IAAM,CAAA,IAAA,EAAOL,CAAO,CAAA,CAAA,CACrE,CAAA,CAeaM,EAAAA,CAAe,CACxBJ,EACAX,CAAAA,CAAiD,KACpB,CAC7B,GAAM,CAAE,MAAA,CAAAQ,CAAAA,CAAS,EAAA,CAAI,MAAA,CAAAQ,CAAAA,CAAS,KAAM,EAAIhB,CAAAA,CAClC7I,CAAAA,CAAS,EAAC,CACZ8J,CAAAA,CAAc,EAAA,CAElB,QAAW9K,CAAAA,IAAOwK,CAAAA,CAAW,CACzB,IAAMO,CAAAA,CAAWhL,CAAAA,CAAYC,CAAG,CAAA,CAC1BsK,CAAAA,CAAUD,EAAS,CAAA,EAAA,EAAKA,CAAM,IAAIU,CAAQ,CAAA,CAAA,CAAK,CAAA,EAAA,EAAKA,CAAQ,CAAA,CAAA,CAClE/J,CAAAA,CAAOhB,CAAG,CAAA,CAAI,CAAA,IAAA,EAAOsK,CAAO,CAAA,CAAA,CAAA,CAExBO,CAAAA,GACAC,CAAAA,EAAe,GAAGR,CAAO,CAAA,CAAA,EAAIE,CAAAA,CAAUxK,CAAG,CAAC,CAAA,CAAA,CAAA,EAEnD,CAEA,OAAI6K,CAAAA,EAAUC,GACVjL,CAAAA,CAAW,CAAA,MAAA,EAASiL,CAAW,CAAA,CAAA,CAAG,CAAA,CAG/B9J,CACX,ECvFO,IAAMgK,EAAAA,CAAe,IACjB9H,EAAAA,EAAoB,CAAE,IAAA,CAAK,EAAE,CAAA,CAO3B+H,EAAAA,CAAiB,IAAc,CACxC,IAAMpI,CAAAA,CAAMmI,EAAAA,EAAa,CACzB,OAAKnI,EACE,CAAA,0BAAA,EAA6BA,CAAG,WADpB,EAEvB,CAAA,CAMaqI,GAAgB,IAAY,CACrC/H,EAAAA,GACJ,CAAA,CAMagI,EAAAA,CAAmB,IACrB,CAAC,GAAGjI,IAAqB,MCkC9BkI,EAAAA,CAAYC,CAAAA,EAA4D,CAE1E,IAAMC,CAAAA,CAAWD,CAAAA,CAAI,QAAQ,IAAA,CAAM,EAAE,EAG/BE,CAAAA,CAAUD,CAAAA,CAAS,SAAW,CAAA,CAC9BA,CAAAA,CAAS,KAAA,CAAM,EAAE,CAAA,CAAE,GAAA,CAAIE,GAAKA,CAAAA,CAAIA,CAAC,CAAA,CAAE,IAAA,CAAK,EAAE,CAAA,CAC1CF,EAEN,GAAIC,CAAAA,CAAQ,MAAA,GAAW,CAAA,CACnB,OAAO,IAAA,CAGX,IAAME,CAAAA,CAAM,QAAA,CAASF,EAAS,EAAE,CAAA,CAChC,OAAI,KAAA,CAAME,CAAG,CAAA,CACF,IAAA,CAGJ,CACH,CAAA,CAAIA,GAAO,EAAA,CAAM,GAAA,CACjB,CAAA,CAAIA,CAAAA,EAAO,CAAA,CAAK,GAAA,CAChB,EAAGA,CAAAA,CAAM,GACb,CACJ,CAAA,CAMMC,EAAAA,CAAe,CAAC,EAAWC,CAAAA,CAAWC,CAAAA,GAAsB,CAC9D,GAAM,CAACC,EAAIC,CAAAA,CAAIC,CAAE,CAAA,CAAI,CAAC,CAAA,CAAGJ,CAAAA,CAAGC,CAAC,CAAA,CAAE,GAAA,CAAIJ,CAAAA,EAAK,CACpC,IAAMQ,CAAAA,CAAOR,EAAI,GAAA,CACjB,OAAOQ,CAAAA,EAAQ,MAAA,CACTA,CAAAA,CAAO,KAAA,CACP,KAAK,GAAA,CAAA,CAAKA,CAAAA,CAAO,MAAS,KAAA,CAAO,GAAG,CAC9C,CAAC,CAAA,CACD,OAAO,KAAA,CAASH,CAAAA,CAAK,KAAA,CAASC,EAAK,KAAA,CAASC,CAChD,EAiBaE,CAAAA,CAAmB,CAACC,EAAoBC,CAAAA,GAAsC,CACvF,IAAMC,CAAAA,CAAQhB,EAAAA,CAASc,CAAU,EAC3BG,CAAAA,CAAQjB,EAAAA,CAASe,CAAU,CAAA,CAEjC,GAAI,CAACC,CAAAA,EAAS,CAACC,CAAAA,CACX,OAAO,IAAA,CAGX,IAAMC,EAAcZ,EAAAA,CAAaU,CAAAA,CAAM,CAAA,CAAGA,CAAAA,CAAM,CAAA,CAAGA,CAAAA,CAAM,CAAC,CAAA,CACpDG,CAAAA,CAAcb,EAAAA,CAAaW,CAAAA,CAAM,CAAA,CAAGA,CAAAA,CAAM,EAAGA,CAAAA,CAAM,CAAC,EAEpDG,CAAAA,CAAU,IAAA,CAAK,IAAIF,CAAAA,CAAaC,CAAW,CAAA,CAC3CE,CAAAA,CAAS,IAAA,CAAK,GAAA,CAAIH,EAAaC,CAAW,CAAA,CAEhD,OAAA,CAAQC,CAAAA,CAAU,GAAA,GAASC,CAAAA,CAAS,IACxC,CAAA,CAkBaC,EAAAA,CAAY,CACrBR,CAAAA,CACAC,CAAAA,CACAQ,CAAAA,CAAmB,KACnBC,CAAAA,CAAqB,KAAA,GACX,CACV,IAAMC,CAAAA,CAAQZ,EAAiBC,CAAAA,CAAYC,CAAU,CAAA,CACrD,OAAIU,CAAAA,GAAU,IAAA,CACH,MAQJA,CAAAA,EALc,CACjB,EAAA,CAAID,CAAAA,CAAY,CAAA,CAAI,GAAA,CACpB,IAAKA,CAAAA,CAAY,GAAA,CAAM,CAC3B,CAAA,CAE6BD,CAAK,CACtC,EAsBaG,EAAAA,CAAgB,CAACZ,EAAoBC,CAAAA,GAA8C,CAC5F,IAAMU,CAAAA,CAAQZ,CAAAA,CAAiBC,CAAAA,CAAYC,CAAU,CAAA,CACrD,OAAIU,IAAU,IAAA,CACH,IAAA,CAGJ,CACH,MAAA,CAAQ,CAACX,EAAYC,CAAU,CAAA,CAC/B,KAAA,CAAO,IAAA,CAAK,KAAA,CAAMU,CAAAA,CAAQ,GAAG,CAAA,CAAI,GAAA,CACjC,SAAUA,CAAAA,EAAS,GAAA,CACnB,cAAeA,CAAAA,EAAS,CAAA,CACxB,SAAA,CAAWA,CAAAA,EAAS,CAAA,CACpB,cAAA,CAAgBA,GAAS,GAC7B,CACJ,CAAA,CAMME,EAAAA,CAAgD,CAElD,CAAC,YAAa,SAAA,CAAW,mBAAmB,CAAA,CAC5C,CAAC,MAAA,CAAQ,eAAA,CAAiB,oBAAoB,CAAA,CAG9C,CAAC,cAAe,WAAA,CAAa,uBAAuB,EACpD,CAAC,MAAA,CAAQ,iBAAA,CAAmB,sBAAsB,CAAA,CAGlD,CAAC,aAAc,UAAA,CAAY,qBAAqB,CAAA,CAChD,CAAC,MAAA,CAAQ,gBAAA,CAAkB,qBAAqB,CAAA,CAGhD,CAAC,UAAA,CAAY,QAAA,CAAU,iBAAiB,CAAA,CACxC,CAAC,MAAA,CAAQ,cAAA,CAAgB,mBAAmB,CAAA,CAG5C,CAAC,OAAQ,YAAA,CAAc,iBAAiB,CAAA,CACxC,CAAC,MAAA,CAAQ,SAAA,CAAW,cAAc,CAAA,CAClC,CAAC,eAAA,CAAiB,SAAA,CAAW,uBAAuB,CAAA,CACpD,CAAC,cAAA,CAAgB,SAAA,CAAW,sBAAsB,CAAA,CAGlD,CAAC,WAAA,CAAa,UAAW,mBAAmB,CAAA,CAC5C,CAAC,MAAA,CAAQ,eAAA,CAAiB,oBAAoB,CAAA,CAG9C,CAAC,WAAA,CAAa,SAAA,CAAW,mBAAmB,CAAA,CAC5C,CAAC,MAAA,CAAQ,eAAA,CAAiB,oBAAoB,CAAA,CAG9C,CAAC,UAAW,OAAA,CAAS,eAAe,CAAA,CACpC,CAAC,MAAA,CAAQ,aAAA,CAAe,kBAAkB,CAAA,CAG1C,CAAC,SAAU,MAAA,CAAQ,aAAa,EAChC,CAAC,MAAA,CAAQ,YAAA,CAAc,iBAAiB,CAAA,CAGxC,CAAC,OAAQ,SAAA,CAAW,cAAc,CAAA,CAClC,CAAC,MAAA,CAAQ,YAAA,CAAc,iBAAiB,CAC5C,CAAA,CAsBaC,EAAAA,CAAqB,CAC9BzJ,CAAAA,CACAoJ,CAAAA,CAAmB,OACI,CACvB,IAAMM,EAA+B,EAAC,CAChCC,EAAWP,CAAAA,GAAU,KAAA,CAAQ,CAAA,CAAI,GAAA,CACjCQ,CAAAA,CAAgBR,CAAAA,GAAU,MAAQ,GAAA,CAAM,CAAA,CAE9C,IAAA,GAAW,CAACS,CAAAA,CAAOC,CAAAA,CAAOC,CAAQ,CAAA,GAAKP,EAAAA,CAAmB,CACtD,IAAMb,CAAAA,CAAa3I,CAAAA,CAAM,OAAO6J,CAAK,CAAA,CAC/BjB,EAAa5I,CAAAA,CAAM,MAAA,CAAO8J,CAAK,CAAA,CAOrC,GALI,CAACnB,CAAAA,EAAc,CAACC,CAAAA,EAKhB,CAACD,CAAAA,CAAW,UAAA,CAAW,GAAG,CAAA,EAAK,CAACC,CAAAA,CAAW,WAAW,GAAG,CAAA,CACzD,SAGJ,IAAMU,CAAAA,CAAQZ,CAAAA,CAAiBC,EAAYC,CAAU,CAAA,CACjDU,IAAU,IAAA,GAKVA,CAAAA,CAAQK,EACRD,CAAAA,CAAO,IAAA,CAAK,CACR,IAAA,CAAMK,CAAAA,CACN,UAAA,CAAYF,EACZ,UAAA,CAAYC,CAAAA,CACZ,MAAO,IAAA,CAAK,KAAA,CAAMR,EAAQ,GAAG,CAAA,CAAI,GAAA,CACjC,QAAA,CAAAK,CAAAA,CACA,KAAA,CAAO,IACX,CAAC,CAAA,CACML,EAAQM,CAAAA,EAEfF,CAAAA,CAAO,KAAK,CACR,IAAA,CAAMK,CAAAA,CACN,UAAA,CAAYF,CAAAA,CACZ,UAAA,CAAYC,EACZ,KAAA,CAAO,IAAA,CAAK,KAAA,CAAMR,CAAAA,CAAQ,GAAG,CAAA,CAAI,IACjC,QAAA,CAAUM,CAAAA,CACV,KAAA,CAAO,SACX,CAAC,CAAA,EAET,CAEA,OAAOF,CACX,EAkBaM,EAAAA,CAAuB,CAChCrB,EACAC,CAAAA,CACAqB,CAAAA,CAAsB,GAAA,GACN,CAChB,IAAMpB,CAAAA,CAAQhB,GAASc,CAAU,CAAA,CAC3BG,CAAAA,CAAQjB,EAAAA,CAASe,CAAU,CAAA,CAEjC,GAAI,CAACC,CAAAA,EAAS,CAACC,CAAAA,CACX,OAAO,IAAA,CAIX,IAAMoB,CAAAA,CADc/B,EAAAA,CAAaW,EAAM,CAAA,CAAGA,CAAAA,CAAM,EAAGA,CAAAA,CAAM,CAAC,CAAA,CAC1B,EAAA,CAG5BqB,CAAAA,CAAYxB,CAAAA,CACZyB,EAAY1B,CAAAA,CAAiBC,CAAAA,CAAYC,CAAU,CAAA,EAAK,CAAA,CAG5D,IAAA,IAASlL,EAAI,CAAA,CAAGA,CAAAA,EAAK,GAAA,CAAKA,CAAAA,EAAK,CAAA,CAAG,CAC9B,IAAM2M,CAAAA,CAASH,CAAAA,CAAAA,CAAa,IAAMxM,CAAAA,EAAK,GAAA,CAAA,CAAO,IAAMA,CAAAA,EAAK,GAAA,CAEnD4M,EAAAA,CAAO,IAAA,CAAK,GAAA,CAAI,GAAA,CAAK,KAAK,GAAA,CAAI,CAAA,CAAG,IAAA,CAAK,KAAA,CAAMzB,CAAAA,CAAM,CAAA,CAAIwB,CAAM,CAAC,CAAC,CAAA,CAC9DE,EAAAA,CAAO,IAAA,CAAK,GAAA,CAAI,IAAK,IAAA,CAAK,GAAA,CAAI,EAAG,IAAA,CAAK,KAAA,CAAM1B,EAAM,CAAA,CAAIwB,CAAM,CAAC,CAAC,CAAA,CAC9DG,EAAAA,CAAO,KAAK,GAAA,CAAI,GAAA,CAAK,IAAA,CAAK,GAAA,CAAI,CAAA,CAAG,IAAA,CAAK,MAAM3B,CAAAA,CAAM,CAAA,CAAIwB,CAAM,CAAC,CAAC,CAAA,CAE9DI,GAAS,CAAA,CAAA,EAAIH,EAAAA,CAAK,SAAS,EAAE,CAAA,CAAE,SAAS,CAAA,CAAG,GAAG,CAAC,CAAA,EAAGC,EAAAA,CAAK,QAAA,CAAS,EAAE,CAAA,CAAE,QAAA,CAAS,CAAA,CAAG,GAAG,CAAC,CAAA,EAAGC,GAAK,QAAA,CAAS,EAAE,CAAA,CAAE,QAAA,CAAS,CAAA,CAAG,GAAG,CAAC,CAAA,CAAA,CACzHE,CAAAA,CAAWhC,EAAiB+B,EAAAA,CAAQ7B,CAAU,EAEpD,GAAI8B,CAAAA,EAAYA,CAAAA,EAAYT,CAAAA,CACxB,OAAOQ,EAAAA,CAGPC,GAAYA,CAAAA,CAAWN,CAAAA,GACvBD,CAAAA,CAAYM,EAAAA,CACZL,CAAAA,CAAYM,CAAAA,EAEpB,CAEA,OAAON,CAAAA,EAAaH,CAAAA,CAAcE,CAAAA,CAAY,IAClD","file":"index.cjs","sourcesContent":["import type { StyleWithPseudos } from './types'\r\nimport type { Theme } from '@/types'\r\n\r\n// Environment detection (constant since it never changes)\r\nconst IS_SERVER = typeof document === 'undefined'\r\n\r\n// Global theme getter\r\nlet themeContextGetter: (() => Theme | undefined) | null = null\r\n\r\n// Stylesheet for client-side injection\r\nlet styleSheet: CSSStyleSheet | null = null\r\n\r\n// SSR buffer to collect server-side rules\r\nlet ssrRules: string[] = []\r\n\r\n// Cache for camelCase → kebab-case conversion (pre-allocated for common keys)\r\nconst cssKeyCache = new Map<string, string>([\r\n ['backgroundColor', 'background-color'],\r\n ['borderRadius', 'border-radius'],\r\n ['fontSize', 'font-size'],\r\n ['fontWeight', 'font-weight'],\r\n ['lineHeight', 'line-height'],\r\n ['marginTop', 'margin-top'],\r\n ['marginBottom', 'margin-bottom'],\r\n ['marginLeft', 'margin-left'],\r\n ['marginRight', 'margin-right'],\r\n ['paddingTop', 'padding-top'],\r\n ['paddingBottom', 'padding-bottom'],\r\n ['paddingLeft', 'padding-left'],\r\n ['paddingRight', 'padding-right'],\r\n ['textAlign', 'text-align'],\r\n ['justifyContent', 'justify-content'],\r\n ['alignItems', 'align-items'],\r\n ['flexDirection', 'flex-direction'],\r\n ['flexWrap', 'flex-wrap'],\r\n ['boxShadow', 'box-shadow'],\r\n ['zIndex', 'z-index'],\r\n])\r\n\r\n// Global cache for static styles (avoids regenerating the same styles)\r\nconst staticStyleCache = new Map<string, string>()\r\n\r\n// Set to track already used class names\r\nconst usedClassNames = new Set<string>()\r\n\r\n// Set to track already injected keyframes\r\nconst injectedKeyframes = new Set<string>()\r\n\r\n// Set to track already injected font-faces\r\nconst injectedFontFaces = new Set<string>()\r\n\r\n// Counter for unique keyframe names generation\r\nlet keyframeCounter = 0\r\n\r\n// Properties that accept unitless numbers (optimized Set)\r\nconst UNITLESS_PROPERTIES = new Set([\r\n 'animationIterationCount', 'columnCount', 'fillOpacity', 'flexGrow', 'flexShrink',\r\n 'fontWeight', 'lineHeight', 'opacity', 'order', 'orphans', 'widows', 'zIndex', 'zoom'\r\n])\r\n\r\n// Max LRU cache size for dynamic styles\r\nexport const MAX_CACHE_SIZE = 100\r\n\r\n// Initialize stylesheet (client-side only)\r\nif (!IS_SERVER) {\r\n const existingStyle = document.getElementById('aurora-styles') as HTMLStyleElement | null\r\n if (existingStyle) {\r\n styleSheet = existingStyle.sheet as CSSStyleSheet\r\n } else {\r\n const style = document.createElement('style')\r\n style.id = 'aurora-styles'\r\n document.head.appendChild(style)\r\n styleSheet = style.sheet as CSSStyleSheet\r\n }\r\n}\r\n\r\n/**\r\n * Set the theme getter\r\n */\r\nexport const setThemeContextGetter = (getter: (() => Theme | undefined) | null): (() => Theme | undefined) | null => {\r\n const previous = themeContextGetter\r\n themeContextGetter = getter\r\n return previous\r\n}\r\n\r\n/**\r\n * Get the current theme\r\n */\r\nexport const getTheme = (): Theme | undefined => {\r\n return themeContextGetter?.()\r\n}\r\n\r\n/**\r\n * Insert a CSS rule\r\n */\r\nexport const insertRule = (rule: string): void => {\r\n if (IS_SERVER) {\r\n ssrRules.push(rule)\r\n } else if (styleSheet) {\r\n try {\r\n styleSheet.insertRule(rule, styleSheet.cssRules.length)\r\n } catch {\r\n // Ignore errors (invalid rules)\r\n }\r\n }\r\n}\r\n\r\n/**\r\n * Convert camelCase to kebab-case with caching\r\n */\r\nexport const toKebabCase = (key: string): string => {\r\n let cached = cssKeyCache.get(key)\r\n if (!cached) {\r\n cached = key.replace(/([A-Z])/g, '-$1').toLowerCase()\r\n cssKeyCache.set(key, cached)\r\n }\r\n return cached\r\n}\r\n\r\n/**\r\n * Convert PascalCase/camelCase to kebab-case for class names\r\n */\r\nexport const toKebabCaseClassName = (name: string): string => {\r\n return name\r\n .replace(/([a-z])([A-Z])/g, '$1-$2')\r\n .replace(/([A-Z]+)([A-Z][a-z])/g, '$1-$2')\r\n .toLowerCase()\r\n}\r\n\r\n/**\r\n * Dangerous patterns that could be used for CSS injection attacks\r\n * - expression(): IE-specific, allows JavaScript execution\r\n * - url() with javascript:/data:: can execute scripts or embed malicious content\r\n * - behavior: IE-specific, loads external HTC files\r\n * - -moz-binding: Firefox-specific, loads XBL files\r\n * - @import: could load external malicious stylesheets\r\n * - </style>: could break out of style context\r\n */\r\nconst CSS_INJECTION_PATTERNS = /expression\\s*\\(|javascript\\s*:|data\\s*:\\s*text\\/html|behavior\\s*:|@import|<\\s*\\/?\\s*style/i\r\n\r\n/**\r\n * Sanitize a CSS value to prevent injection attacks\r\n * Returns the sanitized value or 'unset' if the value is dangerous\r\n */\r\nexport const sanitizeCssValue = (value: string): string => {\r\n // Remove any null bytes\r\n const cleaned = value.replace(/\\0/g, '')\r\n\r\n // Check for dangerous patterns\r\n if (CSS_INJECTION_PATTERNS.test(cleaned)) {\r\n if (__DEV__) {\r\n console.warn(`[Aurora] Potentially dangerous CSS value blocked: \"${value.slice(0, 50)}...\"`)\r\n }\r\n return 'unset'\r\n }\r\n\r\n return cleaned\r\n}\r\n\r\n// Development mode flag (will be tree-shaken in production)\r\nconst __DEV__ = typeof process !== 'undefined' && process.env?.NODE_ENV !== 'production'\r\n\r\n/**\r\n * Convert values to valid CSS with sanitization\r\n */\r\nexport const toCssValue = (key: string, value: unknown): string => {\r\n if (typeof value === 'number' && !UNITLESS_PROPERTIES.has(key)) {\r\n return `${value}px`\r\n }\r\n return sanitizeCssValue(String(value))\r\n}\r\n\r\n/**\r\n * Convert a styles object to CSS (simple properties only)\r\n * Optimized to avoid unnecessary allocations\r\n */\r\nexport const objectToCss = (obj: Record<string, unknown>): string => {\r\n const parts: string[] = []\r\n for (const key in obj) {\r\n const value = obj[key]\r\n if (value != null && typeof value !== 'object') {\r\n parts.push(`${toKebabCase(key)}:${toCssValue(key, value)}`)\r\n }\r\n }\r\n return parts.join(';') + (parts.length ? ';' : '')\r\n}\r\n\r\n/**\r\n * Convert an & selector to a valid CSS selector\r\n */\r\nexport const resolveAmpersandSelector = (selector: string, className: string): string => {\r\n return selector.replace(/&/g, `.${className}`)\r\n}\r\n\r\n/**\r\n * Create a cache key from arguments\r\n */\r\nexport const createCacheKey = (args: unknown[]): string => {\r\n const len = args.length\r\n if (len <= 4) {\r\n let result = ''\r\n for (let i = 0; i < len; i++) {\r\n const arg = args[i]\r\n const t = typeof arg\r\n if (arg === undefined) {\r\n result += i ? '|u' : 'u'\r\n } else if (arg === null) {\r\n result += i ? '|n' : 'n'\r\n } else if (t === 'string' || t === 'number' || t === 'boolean') {\r\n result += i ? '|' + arg : String(arg)\r\n } else {\r\n return JSON.stringify(args)\r\n }\r\n }\r\n return result\r\n }\r\n return JSON.stringify(args)\r\n}\r\n\r\n/**\r\n * Convert cacheKey to a valid CSS suffix\r\n */\r\nexport const cacheKeyToSuffix = (key: string): string => {\r\n if (key === 'true' || key === 'false' || /^-?\\d+$/.test(key)) {\r\n return key\r\n }\r\n if (/^[a-z][a-z0-9]*$/i.test(key)) {\r\n return toKebabCaseClassName(key)\r\n }\r\n let hash = 5381\r\n for (let i = 0; i < key.length; i++) {\r\n hash = ((hash << 5) + hash) ^ key.charCodeAt(i)\r\n }\r\n return (hash >>> 0).toString(36)\r\n}\r\n\r\n/**\r\n * Optimized LRU cache with O(1) deletion\r\n */\r\nexport const createLRUCache = <V>(maxSize: number): { getOrSet: (key: string, factory: () => V) => V } => {\r\n const cache = new Map<string, V>()\r\n return {\r\n getOrSet(key: string, factory: () => V): V {\r\n const existing = cache.get(key)\r\n if (existing !== undefined) {\r\n // Move to end (most recent) - O(1) with Map\r\n cache.delete(key)\r\n cache.set(key, existing)\r\n return existing\r\n }\r\n const value = factory()\r\n if (cache.size >= maxSize) {\r\n // Remove oldest (first element)\r\n const firstKey = cache.keys().next().value\r\n if (firstKey !== undefined) { cache.delete(firstKey) }\r\n }\r\n cache.set(key, value)\r\n return value\r\n }\r\n }\r\n}\r\n\r\n/**\r\n * Hash for static styles cache\r\n */\r\nexport const hashStyles = (styles: StyleWithPseudos): string => {\r\n const str = JSON.stringify(styles)\r\n let hash = 5381\r\n for (let i = 0; i < str.length; i++) {\r\n hash = ((hash << 5) + hash) ^ str.charCodeAt(i)\r\n }\r\n return (hash >>> 0).toString(36)\r\n}\r\n\r\n/**\r\n * Generic hash for a string\r\n */\r\nexport const hashString = (str: string): string => {\r\n let hash = 5381\r\n for (let i = 0; i < str.length; i++) {\r\n hash = ((hash << 5) + hash) ^ str.charCodeAt(i)\r\n }\r\n return (hash >>> 0).toString(36)\r\n}\r\n\r\n/**\r\n * Get a unique class name\r\n */\r\nexport const getUniqueClassName = (baseName: string): string => {\r\n if (!usedClassNames.has(baseName)) {\r\n usedClassNames.add(baseName)\r\n return baseName\r\n }\r\n let counter = 2\r\n let name = `${baseName}-${counter}`\r\n while (usedClassNames.has(name)) {\r\n name = `${baseName}-${++counter}`\r\n }\r\n usedClassNames.add(name)\r\n return name\r\n}\r\n\r\n/**\r\n * Generate a CSS class with support for complex selectors\r\n * Optimized to minimize allocations and iterations\r\n */\r\nexport const generateCssClass = (styles: StyleWithPseudos, className: string, useCache = false): string => {\r\n if (useCache) {\r\n const hash = hashStyles(styles)\r\n const cached = staticStyleCache.get(hash)\r\n if (cached) { return cached }\r\n }\r\n\r\n const uniqueName = getUniqueClassName(className)\r\n const baseParts: string[] = []\r\n const specialRules: string[] = []\r\n\r\n for (const key in styles) {\r\n const value = (styles as Record<string, unknown>)[key]\r\n const firstChar = key[0]\r\n\r\n if (firstChar === '@') {\r\n // @media, @container, @supports\r\n const innerCss = objectToCss(value as Record<string, unknown>)\r\n if (innerCss) {\r\n specialRules.push(`${key}{.${uniqueName}{${innerCss}}}`)\r\n }\r\n } else if (firstChar === '&') {\r\n // Complex selectors (& > div, &:nth-child, etc.)\r\n const innerCss = objectToCss(value as Record<string, unknown>)\r\n if (innerCss) {\r\n const resolvedSelector = key.replace(/&/g, `.${uniqueName}`)\r\n specialRules.push(`${resolvedSelector}{${innerCss}}`)\r\n }\r\n } else if (firstChar === ':') {\r\n // Pseudo-classes (:hover, :focus, etc.)\r\n const innerCss = objectToCss(value as Record<string, unknown>)\r\n if (innerCss) {\r\n specialRules.push(`.${uniqueName}${key}{${innerCss}}`)\r\n }\r\n } else if (value != null && typeof value !== 'object') {\r\n // Simple CSS properties\r\n baseParts.push(`${toKebabCase(key)}:${toCssValue(key, value)}`)\r\n }\r\n }\r\n\r\n // Inject rules\r\n if (baseParts.length) {\r\n insertRule(`.${uniqueName}{${baseParts.join(';')}}`)\r\n }\r\n for (const rule of specialRules) {\r\n insertRule(rule)\r\n }\r\n\r\n if (useCache) {\r\n staticStyleCache.set(hashStyles(styles), uniqueName)\r\n }\r\n\r\n return uniqueName\r\n}\r\n\r\n/**\r\n * Check if a keyframe already exists\r\n */\r\nexport const hasKeyframes = (css: string): boolean => {\r\n return injectedKeyframes.has(css)\r\n}\r\n\r\n/**\r\n * Add a keyframe to the registry\r\n */\r\nexport const addKeyframes = (css: string): void => {\r\n injectedKeyframes.add(css)\r\n}\r\n\r\n/**\r\n * Get the next keyframe ID\r\n */\r\nexport const getNextKeyframeId = (): string => {\r\n return (++keyframeCounter).toString(36)\r\n}\r\n\r\n/**\r\n * Check if a font-face already exists\r\n */\r\nexport const hasFontFace = (css: string): boolean => {\r\n return injectedFontFaces.has(css)\r\n}\r\n\r\n/**\r\n * Add a font-face to the registry\r\n */\r\nexport const addFontFace = (css: string): void => {\r\n injectedFontFaces.add(css)\r\n}\r\n\r\n/**\r\n * Get SSR rules\r\n */\r\nexport const getSSRRulesInternal = (): string[] => {\r\n return ssrRules\r\n}\r\n\r\n/**\r\n * Reset SSR state\r\n */\r\nexport const resetState = (): void => {\r\n ssrRules = []\r\n staticStyleCache.clear()\r\n usedClassNames.clear()\r\n injectedKeyframes.clear()\r\n injectedFontFaces.clear()\r\n keyframeCounter = 0\r\n}\r\n\r\n","import { createContext, useContext, useLayoutEffect, type ReactNode } from 'react'\r\n\r\nimport { setThemeContextGetter } from '@/utils/styles/styleEngine'\r\n\r\nimport type { Theme } from '@/types'\r\n\r\nconst ThemeContext = createContext<Theme | undefined>(undefined)\r\n\r\nexport type ThemeProviderProps<T extends Theme = Theme> = {\r\n theme: T\r\n children?: ReactNode\r\n}\r\n\r\n/**\r\n * Theme provider component\r\n * Provides theme context to all child components\r\n *\r\n * @example\r\n * ```tsx\r\n * // With default theme\r\n * <ThemeProvider theme={defaultTheme}>\r\n * <App />\r\n * </ThemeProvider>\r\n *\r\n * // With custom extended theme\r\n * <ThemeProvider theme={myCustomTheme}>\r\n * <App />\r\n * </ThemeProvider>\r\n * ```\r\n */\r\nexport const ThemeProvider = <T extends Theme>({\r\n theme,\r\n children\r\n}: ThemeProviderProps<T>) => {\r\n const previousGetter = setThemeContextGetter(() => theme)\r\n\r\n useLayoutEffect(() => {\r\n return () => {\r\n setThemeContextGetter(previousGetter)\r\n }\r\n }, [previousGetter])\r\n\r\n return (\r\n <ThemeContext.Provider value={theme}>\r\n {children}\r\n </ThemeContext.Provider>\r\n )\r\n}\r\n\r\n/**\r\n * Hook to access the current theme\r\n * Use the generic parameter to get proper typing for extended themes\r\n *\r\n * @example\r\n * ```tsx\r\n * // Basic usage\r\n * const theme = useTheme()\r\n *\r\n * // With custom theme type\r\n * const theme = useTheme<MyCustomTheme>()\r\n * ```\r\n *\r\n * @throws {Error} If used outside a ThemeProvider\r\n */\r\nexport const useTheme = <T extends Theme = Theme>(): T => {\r\n const theme = useContext(ThemeContext)\r\n\r\n if (!theme) {\r\n throw new Error('useTheme must be used within a ThemeProvider')\r\n }\r\n\r\n return theme as T\r\n}\r\n\r\n","import type { Theme, DeepPartial } from '@/types'\r\n\r\n/**\r\n * Simple hash function for objects (djb2)\r\n */\r\nconst hashObject = (obj: unknown): string => {\r\n const str = JSON.stringify(obj)\r\n let hash = 5381\r\n for (let i = 0; i < str.length; i++) {\r\n hash = ((hash << 5) + hash) ^ str.charCodeAt(i)\r\n }\r\n return (hash >>> 0).toString(36)\r\n}\r\n\r\n/**\r\n * Memoization cache for createTheme\r\n */\r\nconst themeCache = new Map<string, Theme>()\r\n\r\n/**\r\n * Maximum number of themes to cache before eviction\r\n */\r\nexport const MAX_THEME_CACHE_SIZE = 50\r\n\r\n/**\r\n * Clear the theme cache (useful for testing)\r\n */\r\nexport const clearThemeCache = (): void => {\r\n themeCache.clear()\r\n}\r\n\r\n/**\r\n * Get the current theme cache size (useful for testing)\r\n */\r\nexport const getThemeCacheSize = (): number => {\r\n return themeCache.size\r\n}\r\n\r\n/**\r\n * Deep merge two objects\r\n */\r\nconst deepMerge = <T extends Record<string, unknown>>(target: T, source: DeepPartial<T>): T => {\r\n const result = { ...target }\r\n\r\n for (const key in source) {\r\n const sourceValue = source[key]\r\n const targetValue = target[key]\r\n\r\n if (\r\n sourceValue !== undefined &&\r\n typeof sourceValue === 'object' &&\r\n sourceValue !== null &&\r\n !Array.isArray(sourceValue) &&\r\n typeof targetValue === 'object' &&\r\n targetValue !== null\r\n ) {\r\n result[key] = deepMerge(\r\n targetValue as Record<string, unknown>,\r\n sourceValue as DeepPartial<Record<string, unknown>>\r\n ) as T[Extract<keyof T, string>]\r\n } else if (sourceValue !== undefined) {\r\n result[key] = sourceValue as T[Extract<keyof T, string>]\r\n }\r\n }\r\n\r\n return result\r\n}\r\n\r\n/**\r\n * Create a theme by merging a base theme with overrides\r\n *\r\n * @example\r\n * ```ts\r\n * const myTheme = createTheme(defaultTheme, {\r\n * colors: {\r\n * primary: '#ff0000',\r\n * // Only override what you need\r\n * },\r\n * spacing: {\r\n * md: '1.5rem',\r\n * },\r\n * })\r\n * ```\r\n */\r\nexport const createTheme = <T extends Theme>(\r\n baseTheme: T,\r\n overrides: DeepPartial<T>\r\n): T => {\r\n // Create cache key from base theme reference + overrides hash\r\n const cacheKey = `${hashObject(baseTheme)}_${hashObject(overrides)}`\r\n\r\n const cached = themeCache.get(cacheKey)\r\n if (cached) {\r\n return cached as T\r\n }\r\n\r\n const result = deepMerge(baseTheme, overrides)\r\n\r\n // Evict oldest if cache is full\r\n if (themeCache.size >= MAX_THEME_CACHE_SIZE) {\r\n const firstKey = themeCache.keys().next().value\r\n if (firstKey) {themeCache.delete(firstKey)}\r\n }\r\n\r\n themeCache.set(cacheKey, result)\r\n return result\r\n}\r\n\r\n/**\r\n * Merge multiple theme overrides into one\r\n * Later overrides take precedence\r\n *\r\n * @example\r\n * ```ts\r\n * const theme = mergeThemes(\r\n * baseTheme,\r\n * brandOverrides,\r\n * darkModeOverrides,\r\n * userPreferences\r\n * )\r\n * ```\r\n */\r\nexport const mergeThemes = <T extends Theme>(\r\n baseTheme: T,\r\n ...overrides: DeepPartial<T>[]\r\n): T => {\r\n return overrides.reduce<T>(\r\n (acc, override) => deepMerge(acc, override),\r\n baseTheme\r\n )\r\n}\r\n\r\n/**\r\n * Create a theme extension factory\r\n * Useful for creating theme variants (dark mode, high contrast, etc.)\r\n *\r\n * @example\r\n * ```ts\r\n * const createDarkVariant = createThemeVariant({\r\n * colors: {\r\n * background: '#1a1a1a',\r\n * text: '#ffffff',\r\n * },\r\n * })\r\n *\r\n * const darkTheme = createDarkVariant(lightTheme)\r\n * ```\r\n */\r\nexport const createThemeVariant = <T extends Theme>(\r\n variantOverrides: DeepPartial<T>\r\n) => {\r\n return (baseTheme: T): T => createTheme(baseTheme, variantOverrides)\r\n}\r\n\r\n","import type { ColorScale } from '@/types'\r\n\r\nexport const gray: ColorScale = {\r\n 25: '#fcfcfc',\r\n 50: '#fafafa',\r\n 100: '#f4f4f5',\r\n 200: '#e4e4e7',\r\n 300: '#d4d4d8',\r\n 400: '#a1a1aa',\r\n 500: '#71717a',\r\n 600: '#52525b',\r\n 700: '#3f3f46',\r\n 800: '#27272a',\r\n 900: '#18181b',\r\n 950: '#09090b',\r\n}\r\n\r\n","import type { ColorScale } from '@/types'\r\n\r\nexport const slate: ColorScale = {\r\n 25: '#fcfcfd',\r\n 50: '#f8fafc',\r\n 100: '#f1f5f9',\r\n 200: '#e2e8f0',\r\n 300: '#cbd5e1',\r\n 400: '#94a3b8',\r\n 500: '#64748b',\r\n 600: '#475569',\r\n 700: '#334155',\r\n 800: '#1e293b',\r\n 900: '#0f172a',\r\n 950: '#020617',\r\n}\r\n\r\n","import type { ColorScale } from '@/types'\r\n\r\nexport const stone: ColorScale = {\r\n 25: '#fcfcfb',\r\n 50: '#fafaf9',\r\n 100: '#f5f5f4',\r\n 200: '#e7e5e4',\r\n 300: '#d6d3d1',\r\n 400: '#a8a29e',\r\n 500: '#78716c',\r\n 600: '#57534e',\r\n 700: '#44403c',\r\n 800: '#292524',\r\n 900: '#1c1917',\r\n 950: '#0c0a09',\r\n}\r\n\r\n","import type { ColorScale } from '@/types'\r\n\r\nexport const red: ColorScale = {\r\n 25: '#fffbfb',\r\n 50: '#fef2f2',\r\n 100: '#fee2e2',\r\n 200: '#fecaca',\r\n 300: '#fca5a5',\r\n 400: '#f87171',\r\n 500: '#ef4444',\r\n 600: '#dc2626',\r\n 700: '#b91c1c',\r\n 800: '#991b1b',\r\n 900: '#7f1d1d',\r\n 950: '#450a0a',\r\n}\r\n\r\n","import type { ColorScale } from '@/types'\r\n\r\nexport const orange: ColorScale = {\r\n 25: '#fffcfa',\r\n 50: '#fff7ed',\r\n 100: '#ffedd5',\r\n 200: '#fed7aa',\r\n 300: '#fdba74',\r\n 400: '#fb923c',\r\n 500: '#f97316',\r\n 600: '#ea580c',\r\n 700: '#c2410c',\r\n 800: '#9a3412',\r\n 900: '#7c2d12',\r\n 950: '#431407',\r\n}\r\n\r\n","import type { ColorScale } from '@/types'\r\n\r\nexport const amber: ColorScale = {\r\n 25: '#fffdfb',\r\n 50: '#fffbeb',\r\n 100: '#fef3c7',\r\n 200: '#fde68a',\r\n 300: '#fcd34d',\r\n 400: '#fbbf24',\r\n 500: '#f59e0b',\r\n 600: '#d97706',\r\n 700: '#b45309',\r\n 800: '#92400e',\r\n 900: '#78350f',\r\n 950: '#451a03',\r\n}\r\n\r\n","import type { ColorScale } from '@/types'\r\n\r\nexport const yellow: ColorScale = {\r\n 25: '#fefef9',\r\n 50: '#fefce8',\r\n 100: '#fef9c3',\r\n 200: '#fef08a',\r\n 300: '#fde047',\r\n 400: '#facc15',\r\n 500: '#eab308',\r\n 600: '#ca8a04',\r\n 700: '#a16207',\r\n 800: '#854d0e',\r\n 900: '#713f12',\r\n 950: '#422006',\r\n}\r\n\r\n","import type { ColorScale } from '@/types'\r\n\r\nexport const lime: ColorScale = {\r\n 25: '#fbfef8',\r\n 50: '#f7fee7',\r\n 100: '#ecfccb',\r\n 200: '#d9f99d',\r\n 300: '#bef264',\r\n 400: '#a3e635',\r\n 500: '#84cc16',\r\n 600: '#65a30d',\r\n 700: '#4d7c0f',\r\n 800: '#3f6212',\r\n 900: '#365314',\r\n 950: '#1a2e05',\r\n}\r\n\r\n","import type { ColorScale } from '@/types'\r\n\r\nexport const green: ColorScale = {\r\n 25: '#f6fef9',\r\n 50: '#f0fdf4',\r\n 100: '#dcfce7',\r\n 200: '#bbf7d0',\r\n 300: '#86efac',\r\n 400: '#4ade80',\r\n 500: '#22c55e',\r\n 600: '#16a34a',\r\n 700: '#15803d',\r\n 800: '#166534',\r\n 900: '#14532d',\r\n 950: '#052e16',\r\n}\r\n\r\n","import type { ColorScale } from '@/types'\r\n\r\nexport const emerald: ColorScale = {\r\n 25: '#f5fefc',\r\n 50: '#ecfdf5',\r\n 100: '#d1fae5',\r\n 200: '#a7f3d0',\r\n 300: '#6ee7b7',\r\n 400: '#34d399',\r\n 500: '#10b981',\r\n 600: '#059669',\r\n 700: '#047857',\r\n 800: '#065f46',\r\n 900: '#064e3b',\r\n 950: '#022c22',\r\n}\r\n\r\n","import type { ColorScale } from '@/types'\r\n\r\nexport const teal: ColorScale = {\r\n 25: '#f4fefe',\r\n 50: '#f0fdfa',\r\n 100: '#ccfbf1',\r\n 200: '#99f6e4',\r\n 300: '#5eead4',\r\n 400: '#2dd4bf',\r\n 500: '#14b8a6',\r\n 600: '#0d9488',\r\n 700: '#0f766e',\r\n 800: '#115e59',\r\n 900: '#134e4a',\r\n 950: '#042f2e',\r\n}\r\n\r\n","import type { ColorScale } from '@/types'\r\n\r\nexport const cyan: ColorScale = {\r\n 25: '#f3fefe',\r\n 50: '#ecfeff',\r\n 100: '#cffafe',\r\n 200: '#a5f3fc',\r\n 300: '#67e8f9',\r\n 400: '#22d3ee',\r\n 500: '#06b6d4',\r\n 600: '#0891b2',\r\n 700: '#0e7490',\r\n 800: '#155e75',\r\n 900: '#164e63',\r\n 950: '#083344',\r\n}\r\n\r\n","import type { ColorScale } from '@/types'\r\n\r\nexport const sky: ColorScale = {\r\n 25: '#f5faff',\r\n 50: '#f0f9ff',\r\n 100: '#e0f2fe',\r\n 200: '#bae6fd',\r\n 300: '#7dd3fc',\r\n 400: '#38bdf8',\r\n 500: '#0ea5e9',\r\n 600: '#0284c7',\r\n 700: '#0369a1',\r\n 800: '#075985',\r\n 900: '#0c4a6e',\r\n 950: '#082f49',\r\n}\r\n\r\n","import type { ColorScale } from '@/types'\r\n\r\nexport const blue: ColorScale = {\r\n 25: '#f5f8ff',\r\n 50: '#eff6ff',\r\n 100: '#dbeafe',\r\n 200: '#bfdbfe',\r\n 300: '#93c5fd',\r\n 400: '#60a5fa',\r\n 500: '#3b82f6',\r\n 600: '#2563eb',\r\n 700: '#1d4ed8',\r\n 800: '#1e40af',\r\n 900: '#1e3a8a',\r\n 950: '#172554',\r\n}\r\n\r\n","import type { ColorScale } from '@/types'\r\n\r\nexport const indigo: ColorScale = {\r\n 25: '#f5f7ff',\r\n 50: '#eef2ff',\r\n 100: '#e0e7ff',\r\n 200: '#c7d2fe',\r\n 300: '#a5b4fc',\r\n 400: '#818cf8',\r\n 500: '#6366f1',\r\n 600: '#4f46e5',\r\n 700: '#4338ca',\r\n 800: '#3730a3',\r\n 900: '#312e81',\r\n 950: '#1e1b4b',\r\n}\r\n\r\n","import type { ColorScale } from '@/types'\r\n\r\nexport const violet: ColorScale = {\r\n 25: '#f8f5ff',\r\n 50: '#f5f3ff',\r\n 100: '#ede9fe',\r\n 200: '#ddd6fe',\r\n 300: '#c4b5fd',\r\n 400: '#a78bfa',\r\n 500: '#8b5cf6',\r\n 600: '#7c3aed',\r\n 700: '#6d28d9',\r\n 800: '#5b21b6',\r\n 900: '#4c1d95',\r\n 950: '#2e1065',\r\n}\r\n\r\n","import type { ColorScale } from '@/types'\r\n\r\nexport const purple: ColorScale = {\r\n 25: '#faf5ff',\r\n 50: '#faf5ff',\r\n 100: '#f3e8ff',\r\n 200: '#e9d5ff',\r\n 300: '#d8b4fe',\r\n 400: '#c084fc',\r\n 500: '#a855f7',\r\n 600: '#9333ea',\r\n 700: '#7e22ce',\r\n 800: '#6b21a8',\r\n 900: '#581c87',\r\n 950: '#3b0764',\r\n}\r\n\r\n","import type { ColorScale } from '@/types'\r\n\r\nexport const fuchsia: ColorScale = {\r\n 25: '#fef5ff',\r\n 50: '#fdf4ff',\r\n 100: '#fae8ff',\r\n 200: '#f5d0fe',\r\n 300: '#f0abfc',\r\n 400: '#e879f9',\r\n 500: '#d946ef',\r\n 600: '#c026d3',\r\n 700: '#a21caf',\r\n 800: '#86198f',\r\n 900: '#701a75',\r\n 950: '#4a044e',\r\n}\r\n\r\n","import type { ColorScale } from '@/types'\r\n\r\nexport const pink: ColorScale = {\r\n 25: '#fef5f9',\r\n 50: '#fdf2f8',\r\n 100: '#fce7f3',\r\n 200: '#fbcfe8',\r\n 300: '#f9a8d4',\r\n 400: '#f472b6',\r\n 500: '#ec4899',\r\n 600: '#db2777',\r\n 700: '#be185d',\r\n 800: '#9d174d',\r\n 900: '#831843',\r\n 950: '#500724',\r\n}\r\n\r\n","import type { ColorScale } from '@/types'\r\n\r\nexport const rose: ColorScale = {\r\n 25: '#fff5f6',\r\n 50: '#fff1f2',\r\n 100: '#ffe4e6',\r\n 200: '#fecdd3',\r\n 300: '#fda4af',\r\n 400: '#fb7185',\r\n 500: '#f43f5e',\r\n 600: '#e11d48',\r\n 700: '#be123c',\r\n 800: '#9f1239',\r\n 900: '#881337',\r\n 950: '#4c0519',\r\n}\r\n\r\n","/**\r\n * Color Scales - Modern color palettes with shades from 25 to 950\r\n *\r\n * @example\r\n * ```ts\r\n * import { colors, indigo, emerald } from '@aurora-ui/theme'\r\n *\r\n * colors.indigo[500] // '#6366f1'\r\n * emerald[400] // '#34d399'\r\n * ```\r\n */\r\n\r\n// Neutrals\r\nexport { gray } from './gray'\r\nexport { slate } from './slate'\r\nexport { stone } from './stone'\r\n\r\n// Colors\r\nexport { red } from './red'\r\nexport { orange } from './orange'\r\nexport { amber } from './amber'\r\nexport { yellow } from './yellow'\r\nexport { lime } from './lime'\r\nexport { green } from './green'\r\nexport { emerald } from './emerald'\r\nexport { teal } from './teal'\r\nexport { cyan } from './cyan'\r\nexport { sky } from './sky'\r\nexport { blue } from './blue'\r\nexport { indigo } from './indigo'\r\nexport { violet } from './violet'\r\nexport { purple } from './purple'\r\nexport { fuchsia } from './fuchsia'\r\nexport { pink } from './pink'\r\nexport { rose } from './rose'\r\n\r\n// Special values\r\nexport const white = '#ffffff'\r\nexport const black = '#000000'\r\nexport const transparent = 'transparent'\r\nexport const current = 'currentColor'\r\n\r\n// Import all for the colors object\r\nimport { amber } from './amber'\r\nimport { blue } from './blue'\r\nimport { cyan } from './cyan'\r\nimport { emerald } from './emerald'\r\nimport { fuchsia } from './fuchsia'\r\nimport { gray } from './gray'\r\nimport { green } from './green'\r\nimport { indigo } from './indigo'\r\nimport { lime } from './lime'\r\nimport { orange } from './orange'\r\nimport { pink } from './pink'\r\nimport { purple } from './purple'\r\nimport { red } from './red'\r\nimport { rose } from './rose'\r\nimport { sky } from './sky'\r\nimport { slate } from './slate'\r\nimport { stone } from './stone'\r\nimport { teal } from './teal'\r\nimport { violet } from './violet'\r\nimport { yellow } from './yellow'\r\n\r\n/**\r\n * All color scales organized by name\r\n */\r\nexport const colors = {\r\n // Neutrals\r\n gray,\r\n slate,\r\n stone,\r\n // Colors\r\n red,\r\n orange,\r\n amber,\r\n yellow,\r\n lime,\r\n green,\r\n emerald,\r\n teal,\r\n cyan,\r\n sky,\r\n blue,\r\n indigo,\r\n violet,\r\n purple,\r\n fuchsia,\r\n pink,\r\n rose,\r\n // Special\r\n white: '#ffffff',\r\n black: '#000000',\r\n transparent: 'transparent',\r\n current: 'currentColor',\r\n} as const\r\n\r\n","import { slate, white } from '../colors'\r\n\r\nimport type { Theme } from '@/types'\r\n\r\ntype ColorPalette = Theme['colors']\r\n\r\n/**\r\n * Shared neutral colors for light themes\r\n * Follows WCAG AA contrast guidelines with slate palette\r\n */\r\nexport const neutralLight: Omit<ColorPalette,\r\n | 'primary' | 'onPrimary' | 'primaryHover' | 'primaryActive' | 'primarySubtle' | 'primaryDisabled'\r\n | 'secondary' | 'onSecondary' | 'secondaryHover' | 'secondaryActive' | 'secondarySubtle' | 'secondaryDisabled'\r\n | 'accent' | 'onAccent' | 'accentHover' | 'accentActive' | 'accentSubtle'\r\n | 'tertiary' | 'onTertiary' | 'tertiaryHover' | 'tertiaryActive' | 'tertiarySubtle' | 'tertiaryDisabled'\r\n | 'borderFocus' | 'link' | 'linkHover' | 'linkActive' | 'linkVisited' | 'focus'\r\n | 'success' | 'onSuccess' | 'successHover' | 'successSubtle'\r\n | 'warning' | 'onWarning' | 'warningHover' | 'warningSubtle'\r\n | 'error' | 'onError' | 'errorHover' | 'errorSubtle'\r\n | 'info' | 'onInfo' | 'infoHover' | 'infoSubtle'\r\n> = {\r\n background: slate[25],\r\n surface: white,\r\n surfaceHover: slate[100],\r\n surfaceActive: slate[200],\r\n elevated: white,\r\n overlay: 'rgba(15, 23, 42, 0.6)',\r\n text: slate[800],\r\n textSecondary: slate[500],\r\n textTertiary: slate[400],\r\n textInverse: white,\r\n border: slate[200],\r\n borderHover: slate[300],\r\n borderSubtle: slate[100],\r\n disabled: slate[300],\r\n disabledText: slate[400],\r\n}\r\n\r\n/**\r\n * Shared neutral colors for dark themes\r\n * Follows WCAG AA contrast guidelines with slate palette\r\n */\r\nexport const neutralDark: Omit<ColorPalette,\r\n | 'primary' | 'onPrimary' | 'primaryHover' | 'primaryActive' | 'primarySubtle' | 'primaryDisabled'\r\n | 'secondary' | 'onSecondary' | 'secondaryHover' | 'secondaryActive' | 'secondarySubtle' | 'secondaryDisabled'\r\n | 'accent' | 'onAccent' | 'accentHover' | 'accentActive' | 'accentSubtle'\r\n | 'tertiary' | 'onTertiary' | 'tertiaryHover' | 'tertiaryActive' | 'tertiarySubtle' | 'tertiaryDisabled'\r\n | 'borderFocus' | 'link' | 'linkHover' | 'linkActive' | 'linkVisited' | 'focus'\r\n | 'success' | 'onSuccess' | 'successHover' | 'successSubtle'\r\n | 'warning' | 'onWarning' | 'warningHover' | 'warningSubtle'\r\n | 'error' | 'onError' | 'errorHover' | 'errorSubtle'\r\n | 'info' | 'onInfo' | 'infoHover' | 'infoSubtle'\r\n> = {\r\n background: slate[900],\r\n surface: slate[800],\r\n surfaceHover: slate[700],\r\n surfaceActive: slate[600],\r\n elevated: slate[700],\r\n overlay: 'rgba(0, 0, 0, 0.7)',\r\n text: slate[100],\r\n textSecondary: slate[400],\r\n textTertiary: slate[500],\r\n textInverse: slate[900],\r\n border: slate[600],\r\n borderHover: slate[500],\r\n borderSubtle: slate[700],\r\n disabled: slate[600],\r\n disabledText: slate[500],\r\n}\r\n\r\n","import { neutralDark, neutralLight } from './shared'\r\nimport { indigo, cyan, slate, green, red, amber, blue, violet, purple, white } from '../colors'\r\n\r\nimport type { Theme } from '@/types'\r\n\r\ntype ColorPalette = Theme['colors']\r\n\r\n/**\r\n * Indigo light palette - Modern, accessible color scheme\r\n * Follows WCAG AA contrast guidelines\r\n */\r\nexport const indigoLight: ColorPalette = {\r\n ...neutralLight,\r\n // Primary - Indigo palette\r\n primary: indigo[600],\r\n onPrimary: white,\r\n primaryHover: indigo[700],\r\n primaryActive: indigo[800],\r\n primarySubtle: indigo[50],\r\n primaryDisabled: indigo[300],\r\n // Secondary - Neutral with slight tint\r\n secondary: slate[100],\r\n onSecondary: slate[700],\r\n secondaryHover: slate[200],\r\n secondaryActive: slate[300],\r\n secondarySubtle: slate[50],\r\n secondaryDisabled: slate[100],\r\n // Tertiary - Complementary purple\r\n tertiary: purple[600],\r\n onTertiary: white,\r\n tertiaryHover: purple[700],\r\n tertiaryActive: purple[800],\r\n tertiarySubtle: purple[50],\r\n tertiaryDisabled: purple[300],\r\n // Accent - Contrasting cyan\r\n accent: cyan[500],\r\n onAccent: white,\r\n accentHover: cyan[600],\r\n accentActive: cyan[700],\r\n accentSubtle: cyan[50],\r\n borderFocus: indigo[500],\r\n // Semantic colors\r\n success: green[600],\r\n onSuccess: white,\r\n successHover: green[700],\r\n successSubtle: green[50],\r\n warning: amber[500],\r\n onWarning: amber[950],\r\n warningHover: amber[600],\r\n warningSubtle: amber[50],\r\n error: red[500],\r\n onError: white,\r\n errorHover: red[600],\r\n errorSubtle: red[50],\r\n info: blue[500],\r\n onInfo: white,\r\n infoHover: blue[600],\r\n infoSubtle: blue[50],\r\n // Interactive\r\n link: indigo[600],\r\n linkHover: indigo[700],\r\n linkActive: indigo[800],\r\n linkVisited: violet[700],\r\n focus: indigo[500],\r\n}\r\n\r\n/**\r\n * Indigo dark palette - Modern, accessible color scheme\r\n * Follows WCAG AA contrast guidelines\r\n */\r\nexport const indigoDark: ColorPalette = {\r\n ...neutralDark,\r\n // Primary - Indigo palette (lighter for dark mode)\r\n primary: indigo[400],\r\n onPrimary: indigo[950],\r\n primaryHover: indigo[300],\r\n primaryActive: indigo[500],\r\n primarySubtle: indigo[950],\r\n primaryDisabled: indigo[700],\r\n // Secondary - Neutral with slight tint\r\n secondary: slate[700],\r\n onSecondary: slate[100],\r\n secondaryHover: slate[600],\r\n secondaryActive: slate[500],\r\n secondarySubtle: slate[800],\r\n secondaryDisabled: slate[800],\r\n // Tertiary - Complementary purple\r\n tertiary: purple[400],\r\n onTertiary: purple[950],\r\n tertiaryHover: purple[300],\r\n tertiaryActive: purple[500],\r\n tertiarySubtle: purple[950],\r\n tertiaryDisabled: purple[700],\r\n // Accent - Contrasting cyan\r\n accent: cyan[400],\r\n onAccent: cyan[950],\r\n accentHover: cyan[300],\r\n accentActive: cyan[500],\r\n accentSubtle: cyan[950],\r\n borderFocus: indigo[400],\r\n // Semantic colors\r\n success: green[400],\r\n onSuccess: green[950],\r\n successHover: green[300],\r\n successSubtle: green[950],\r\n warning: amber[400],\r\n onWarning: amber[950],\r\n warningHover: amber[300],\r\n warningSubtle: amber[950],\r\n error: red[400],\r\n onError: red[950],\r\n errorHover: red[300],\r\n errorSubtle: red[950],\r\n info: blue[400],\r\n onInfo: blue[950],\r\n infoHover: blue[300],\r\n infoSubtle: blue[950],\r\n // Interactive\r\n link: indigo[400],\r\n linkHover: indigo[300],\r\n linkActive: indigo[500],\r\n linkVisited: violet[400],\r\n focus: indigo[400],\r\n}\r\n\r\n","import { neutralDark, neutralLight } from './shared'\r\nimport { blue, sky, slate, green, red, amber, violet, cyan, white } from '../colors'\r\n\r\nimport type { Theme } from '@/types'\r\n\r\ntype ColorPalette = Theme['colors']\r\n\r\n/**\r\n * Blue light palette - Classic, accessible color scheme\r\n * Follows WCAG AA contrast guidelines\r\n */\r\nexport const blueLight: ColorPalette = {\r\n ...neutralLight,\r\n // Primary - Blue palette\r\n primary: blue[600],\r\n onPrimary: white,\r\n primaryHover: blue[700],\r\n primaryActive: blue[800],\r\n primarySubtle: blue[50],\r\n primaryDisabled: blue[300],\r\n // Secondary - Neutral with slight blue tint\r\n secondary: slate[100],\r\n onSecondary: slate[700],\r\n secondaryHover: slate[200],\r\n secondaryActive: slate[300],\r\n secondarySubtle: slate[50],\r\n secondaryDisabled: slate[100],\r\n // Tertiary - Complementary sky blue\r\n tertiary: sky[500],\r\n onTertiary: white,\r\n tertiaryHover: sky[600],\r\n tertiaryActive: sky[700],\r\n tertiarySubtle: sky[50],\r\n tertiaryDisabled: sky[300],\r\n // Accent - Contrasting cyan\r\n accent: cyan[500],\r\n onAccent: white,\r\n accentHover: cyan[600],\r\n accentActive: cyan[700],\r\n accentSubtle: cyan[50],\r\n borderFocus: blue[500],\r\n // Semantic colors\r\n success: green[600],\r\n onSuccess: white,\r\n successHover: green[700],\r\n successSubtle: green[50],\r\n warning: amber[500],\r\n onWarning: amber[950],\r\n warningHover: amber[600],\r\n warningSubtle: amber[50],\r\n error: red[500],\r\n onError: white,\r\n errorHover: red[600],\r\n errorSubtle: red[50],\r\n info: blue[500],\r\n onInfo: white,\r\n infoHover: blue[600],\r\n infoSubtle: blue[50],\r\n // Interactive\r\n link: blue[600],\r\n linkHover: blue[700],\r\n linkActive: blue[800],\r\n linkVisited: violet[700],\r\n focus: blue[500],\r\n}\r\n\r\n/**\r\n * Blue dark palette - Classic, accessible color scheme\r\n * Follows WCAG AA contrast guidelines\r\n */\r\nexport const blueDark: ColorPalette = {\r\n ...neutralDark,\r\n // Primary - Blue palette (lighter for dark mode)\r\n primary: blue[400],\r\n onPrimary: blue[950],\r\n primaryHover: blue[300],\r\n primaryActive: blue[500],\r\n primarySubtle: blue[950],\r\n primaryDisabled: blue[700],\r\n // Secondary - Neutral with slight blue tint\r\n secondary: slate[700],\r\n onSecondary: slate[100],\r\n secondaryHover: slate[600],\r\n secondaryActive: slate[500],\r\n secondarySubtle: slate[800],\r\n secondaryDisabled: slate[800],\r\n // Tertiary - Complementary sky blue\r\n tertiary: sky[400],\r\n onTertiary: sky[950],\r\n tertiaryHover: sky[300],\r\n tertiaryActive: sky[500],\r\n tertiarySubtle: sky[950],\r\n tertiaryDisabled: sky[700],\r\n // Accent - Contrasting cyan\r\n accent: cyan[400],\r\n onAccent: cyan[950],\r\n accentHover: cyan[300],\r\n accentActive: cyan[500],\r\n accentSubtle: cyan[950],\r\n borderFocus: blue[400],\r\n // Semantic colors\r\n success: green[400],\r\n onSuccess: green[950],\r\n successHover: green[300],\r\n successSubtle: green[950],\r\n warning: amber[400],\r\n onWarning: amber[950],\r\n warningHover: amber[300],\r\n warningSubtle: amber[950],\r\n error: red[400],\r\n onError: red[950],\r\n errorHover: red[300],\r\n errorSubtle: red[950],\r\n info: blue[400],\r\n onInfo: blue[950],\r\n infoHover: blue[300],\r\n infoSubtle: blue[950],\r\n // Interactive\r\n link: blue[400],\r\n linkHover: blue[300],\r\n linkActive: blue[500],\r\n linkVisited: violet[400],\r\n focus: blue[400],\r\n}\r\n\r\n","import { neutralDark, neutralLight } from './shared'\r\nimport { rose, violet, slate, green, amber, red, blue, purple, pink, white } from '../colors'\r\n\r\nimport type { Theme } from '@/types'\r\n\r\ntype ColorPalette = Theme['colors']\r\n\r\n/**\r\n * Rose light palette - Elegant, accessible color scheme\r\n * Follows WCAG AA contrast guidelines\r\n */\r\nexport const roseLight: ColorPalette = {\r\n ...neutralLight,\r\n // Primary - Rose palette\r\n primary: rose[600],\r\n onPrimary: white,\r\n primaryHover: rose[700],\r\n primaryActive: rose[800],\r\n primarySubtle: rose[50],\r\n primaryDisabled: rose[300],\r\n // Secondary - Neutral with slight tint\r\n secondary: slate[100],\r\n onSecondary: slate[700],\r\n secondaryHover: slate[200],\r\n secondaryActive: slate[300],\r\n secondarySubtle: slate[50],\r\n secondaryDisabled: slate[100],\r\n // Tertiary - Complementary pink\r\n tertiary: pink[500],\r\n onTertiary: white,\r\n tertiaryHover: pink[600],\r\n tertiaryActive: pink[700],\r\n tertiarySubtle: pink[50],\r\n tertiaryDisabled: pink[300],\r\n // Accent - Contrasting violet\r\n accent: violet[600],\r\n onAccent: white,\r\n accentHover: violet[700],\r\n accentActive: violet[800],\r\n accentSubtle: violet[50],\r\n borderFocus: rose[500],\r\n // Semantic colors\r\n success: green[600],\r\n onSuccess: white,\r\n successHover: green[700],\r\n successSubtle: green[50],\r\n warning: amber[500],\r\n onWarning: amber[950],\r\n warningHover: amber[600],\r\n warningSubtle: amber[50],\r\n error: red[500],\r\n onError: white,\r\n errorHover: red[600],\r\n errorSubtle: red[50],\r\n info: blue[500],\r\n onInfo: white,\r\n infoHover: blue[600],\r\n infoSubtle: blue[50],\r\n // Interactive\r\n link: rose[600],\r\n linkHover: rose[700],\r\n linkActive: rose[800],\r\n linkVisited: purple[700],\r\n focus: rose[500],\r\n}\r\n\r\n/**\r\n * Rose dark palette - Elegant, accessible color scheme\r\n * Follows WCAG AA contrast guidelines\r\n */\r\nexport const roseDark: ColorPalette = {\r\n ...neutralDark,\r\n // Primary - Rose palette (lighter for dark mode)\r\n primary: rose[400],\r\n onPrimary: rose[950],\r\n primaryHover: rose[300],\r\n primaryActive: rose[500],\r\n primarySubtle: rose[950],\r\n primaryDisabled: rose[700],\r\n // Secondary - Neutral with slight tint\r\n secondary: slate[700],\r\n onSecondary: slate[100],\r\n secondaryHover: slate[600],\r\n secondaryActive: slate[500],\r\n secondarySubtle: slate[800],\r\n secondaryDisabled: slate[800],\r\n // Tertiary - Complementary pink\r\n tertiary: pink[400],\r\n onTertiary: pink[950],\r\n tertiaryHover: pink[300],\r\n tertiaryActive: pink[500],\r\n tertiarySubtle: pink[950],\r\n tertiaryDisabled: pink[700],\r\n // Accent - Contrasting violet\r\n accent: violet[400],\r\n onAccent: violet[950],\r\n accentHover: violet[300],\r\n accentActive: violet[500],\r\n accentSubtle: violet[950],\r\n borderFocus: rose[400],\r\n // Semantic colors\r\n success: green[400],\r\n onSuccess: green[950],\r\n successHover: green[300],\r\n successSubtle: green[950],\r\n warning: amber[400],\r\n onWarning: amber[950],\r\n warningHover: amber[300],\r\n warningSubtle: amber[950],\r\n error: red[400],\r\n onError: red[950],\r\n errorHover: red[300],\r\n errorSubtle: red[950],\r\n info: blue[400],\r\n onInfo: blue[950],\r\n infoHover: blue[300],\r\n infoSubtle: blue[950],\r\n // Interactive\r\n link: rose[400],\r\n linkHover: rose[300],\r\n linkActive: rose[500],\r\n linkVisited: purple[400],\r\n focus: rose[400],\r\n}\r\n\r\n","import { neutralDark, neutralLight } from './shared'\r\nimport { emerald, amber, slate, green, red, blue, teal, white } from '../colors'\r\n\r\nimport type { Theme } from '@/types'\r\n\r\ntype ColorPalette = Theme['colors']\r\n\r\n/**\r\n * Emerald light palette - Fresh, accessible color scheme\r\n * Follows WCAG AA contrast guidelines\r\n */\r\nexport const emeraldLight: ColorPalette = {\r\n ...neutralLight,\r\n // Primary - Emerald palette\r\n primary: emerald[600],\r\n onPrimary: white,\r\n primaryHover: emerald[700],\r\n primaryActive: emerald[800],\r\n primarySubtle: emerald[50],\r\n primaryDisabled: emerald[300],\r\n // Secondary - Neutral with slight tint\r\n secondary: slate[100],\r\n onSecondary: slate[700],\r\n secondaryHover: slate[200],\r\n secondaryActive: slate[300],\r\n secondarySubtle: slate[50],\r\n secondaryDisabled: slate[100],\r\n // Tertiary - Complementary teal\r\n tertiary: teal[500],\r\n onTertiary: white,\r\n tertiaryHover: teal[600],\r\n tertiaryActive: teal[700],\r\n tertiarySubtle: teal[50],\r\n tertiaryDisabled: teal[300],\r\n // Accent - Warm amber contrast\r\n accent: amber[500],\r\n onAccent: amber[950],\r\n accentHover: amber[600],\r\n accentActive: amber[700],\r\n accentSubtle: amber[50],\r\n borderFocus: emerald[500],\r\n // Semantic colors\r\n success: green[600],\r\n onSuccess: white,\r\n successHover: green[700],\r\n successSubtle: green[50],\r\n warning: amber[500],\r\n onWarning: amber[950],\r\n warningHover: amber[600],\r\n warningSubtle: amber[50],\r\n error: red[500],\r\n onError: white,\r\n errorHover: red[600],\r\n errorSubtle: red[50],\r\n info: blue[500],\r\n onInfo: white,\r\n infoHover: blue[600],\r\n infoSubtle: blue[50],\r\n // Interactive\r\n link: emerald[600],\r\n linkHover: emerald[700],\r\n linkActive: emerald[800],\r\n linkVisited: teal[700],\r\n focus: emerald[500],\r\n}\r\n\r\n/**\r\n * Emerald dark palette - Fresh, accessible color scheme\r\n * Follows WCAG AA contrast guidelines\r\n */\r\nexport const emeraldDark: ColorPalette = {\r\n ...neutralDark,\r\n // Primary - Emerald palette (lighter for dark mode)\r\n primary: emerald[400],\r\n onPrimary: emerald[950],\r\n primaryHover: emerald[300],\r\n primaryActive: emerald[500],\r\n primarySubtle: emerald[950],\r\n primaryDisabled: emerald[700],\r\n // Secondary - Neutral with slight tint\r\n secondary: slate[700],\r\n onSecondary: slate[100],\r\n secondaryHover: slate[600],\r\n secondaryActive: slate[500],\r\n secondarySubtle: slate[800],\r\n secondaryDisabled: slate[800],\r\n // Tertiary - Complementary teal\r\n tertiary: teal[400],\r\n onTertiary: teal[950],\r\n tertiaryHover: teal[300],\r\n tertiaryActive: teal[500],\r\n tertiarySubtle: teal[950],\r\n tertiaryDisabled: teal[700],\r\n // Accent - Warm amber contrast\r\n accent: amber[400],\r\n onAccent: amber[950],\r\n accentHover: amber[300],\r\n accentActive: amber[500],\r\n accentSubtle: amber[950],\r\n borderFocus: emerald[400],\r\n // Semantic colors\r\n success: green[400],\r\n onSuccess: green[950],\r\n successHover: green[300],\r\n successSubtle: green[950],\r\n warning: amber[400],\r\n onWarning: amber[950],\r\n warningHover: amber[300],\r\n warningSubtle: amber[950],\r\n error: red[400],\r\n onError: red[950],\r\n errorHover: red[300],\r\n errorSubtle: red[950],\r\n info: blue[400],\r\n onInfo: blue[950],\r\n infoHover: blue[300],\r\n infoSubtle: blue[950],\r\n // Interactive\r\n link: emerald[400],\r\n linkHover: emerald[300],\r\n linkActive: emerald[500],\r\n linkVisited: teal[400],\r\n focus: emerald[400],\r\n}\r\n\r\n","import { neutralDark, neutralLight } from './shared'\r\nimport { teal, orange, slate, green, amber, red, blue, cyan, white } from '../colors'\r\n\r\nimport type { Theme } from '@/types'\r\n\r\ntype ColorPalette = Theme['colors']\r\n\r\n/**\r\n * Teal light palette - Cool, accessible color scheme\r\n * Follows WCAG AA contrast guidelines\r\n */\r\nexport const tealLight: ColorPalette = {\r\n ...neutralLight,\r\n // Primary - Teal palette\r\n primary: teal[600],\r\n onPrimary: white,\r\n primaryHover: teal[700],\r\n primaryActive: teal[800],\r\n primarySubtle: teal[50],\r\n primaryDisabled: teal[300],\r\n // Secondary - Neutral with slight tint\r\n secondary: slate[100],\r\n onSecondary: slate[700],\r\n secondaryHover: slate[200],\r\n secondaryActive: slate[300],\r\n secondarySubtle: slate[50],\r\n secondaryDisabled: slate[100],\r\n // Tertiary - Complementary cyan\r\n tertiary: cyan[500],\r\n onTertiary: white,\r\n tertiaryHover: cyan[600],\r\n tertiaryActive: cyan[700],\r\n tertiarySubtle: cyan[50],\r\n tertiaryDisabled: cyan[300],\r\n // Accent - Warm orange contrast\r\n accent: orange[500],\r\n onAccent: white,\r\n accentHover: orange[600],\r\n accentActive: orange[700],\r\n accentSubtle: orange[50],\r\n borderFocus: teal[500],\r\n // Semantic colors\r\n success: green[600],\r\n onSuccess: white,\r\n successHover: green[700],\r\n successSubtle: green[50],\r\n warning: amber[500],\r\n onWarning: amber[950],\r\n warningHover: amber[600],\r\n warningSubtle: amber[50],\r\n error: red[500],\r\n onError: white,\r\n errorHover: red[600],\r\n errorSubtle: red[50],\r\n info: blue[500],\r\n onInfo: white,\r\n infoHover: blue[600],\r\n infoSubtle: blue[50],\r\n // Interactive\r\n link: teal[600],\r\n linkHover: teal[700],\r\n linkActive: teal[800],\r\n linkVisited: cyan[700],\r\n focus: teal[500],\r\n}\r\n\r\n/**\r\n * Teal dark palette - Cool, accessible color scheme\r\n * Follows WCAG AA contrast guidelines\r\n */\r\nexport const tealDark: ColorPalette = {\r\n ...neutralDark,\r\n // Primary - Teal palette (lighter for dark mode)\r\n primary: teal[400],\r\n onPrimary: teal[950],\r\n primaryHover: teal[300],\r\n primaryActive: teal[500],\r\n primarySubtle: teal[950],\r\n primaryDisabled: teal[700],\r\n // Secondary - Neutral with slight tint\r\n secondary: slate[700],\r\n onSecondary: slate[100],\r\n secondaryHover: slate[600],\r\n secondaryActive: slate[500],\r\n secondarySubtle: slate[800],\r\n secondaryDisabled: slate[800],\r\n // Tertiary - Complementary cyan\r\n tertiary: cyan[400],\r\n onTertiary: cyan[950],\r\n tertiaryHover: cyan[300],\r\n tertiaryActive: cyan[500],\r\n tertiarySubtle: cyan[950],\r\n tertiaryDisabled: cyan[700],\r\n // Accent - Warm orange contrast\r\n accent: orange[400],\r\n onAccent: orange[950],\r\n accentHover: orange[300],\r\n accentActive: orange[500],\r\n accentSubtle: orange[950],\r\n borderFocus: teal[400],\r\n // Semantic colors\r\n success: green[400],\r\n onSuccess: green[950],\r\n successHover: green[300],\r\n successSubtle: green[950],\r\n warning: amber[400],\r\n onWarning: amber[950],\r\n warningHover: amber[300],\r\n warningSubtle: amber[950],\r\n error: red[400],\r\n onError: red[950],\r\n errorHover: red[300],\r\n errorSubtle: red[950],\r\n info: blue[400],\r\n onInfo: blue[950],\r\n infoHover: blue[300],\r\n infoSubtle: blue[950],\r\n // Interactive\r\n link: teal[400],\r\n linkHover: teal[300],\r\n linkActive: teal[500],\r\n linkVisited: cyan[400],\r\n focus: teal[400],\r\n}\r\n\r\n","import { neutralDark, neutralLight } from './shared'\r\nimport { violet, pink, slate, green, amber, red, blue, purple, white } from '../colors'\r\n\r\nimport type { Theme } from '@/types'\r\n\r\ntype ColorPalette = Theme['colors']\r\n\r\n/**\r\n * Violet light palette - Creative, accessible color scheme\r\n * Follows WCAG AA contrast guidelines\r\n */\r\nexport const violetLight: ColorPalette = {\r\n ...neutralLight,\r\n // Primary - Violet palette\r\n primary: violet[600],\r\n onPrimary: white,\r\n primaryHover: violet[700],\r\n primaryActive: violet[800],\r\n primarySubtle: violet[50],\r\n primaryDisabled: violet[300],\r\n // Secondary - Neutral with slight tint\r\n secondary: slate[100],\r\n onSecondary: slate[700],\r\n secondaryHover: slate[200],\r\n secondaryActive: slate[300],\r\n secondarySubtle: slate[50],\r\n secondaryDisabled: slate[100],\r\n // Tertiary - Complementary purple\r\n tertiary: purple[500],\r\n onTertiary: white,\r\n tertiaryHover: purple[600],\r\n tertiaryActive: purple[700],\r\n tertiarySubtle: purple[50],\r\n tertiaryDisabled: purple[300],\r\n // Accent - Vibrant pink\r\n accent: pink[500],\r\n onAccent: white,\r\n accentHover: pink[600],\r\n accentActive: pink[700],\r\n accentSubtle: pink[50],\r\n borderFocus: violet[500],\r\n // Semantic colors\r\n success: green[600],\r\n onSuccess: white,\r\n successHover: green[700],\r\n successSubtle: green[50],\r\n warning: amber[500],\r\n onWarning: amber[950],\r\n warningHover: amber[600],\r\n warningSubtle: amber[50],\r\n error: red[500],\r\n onError: white,\r\n errorHover: red[600],\r\n errorSubtle: red[50],\r\n info: blue[500],\r\n onInfo: white,\r\n infoHover: blue[600],\r\n infoSubtle: blue[50],\r\n // Interactive\r\n link: violet[600],\r\n linkHover: violet[700],\r\n linkActive: violet[800],\r\n linkVisited: purple[700],\r\n focus: violet[500],\r\n}\r\n\r\n/**\r\n * Violet dark palette - Creative, accessible color scheme\r\n * Follows WCAG AA contrast guidelines\r\n */\r\nexport const violetDark: ColorPalette = {\r\n ...neutralDark,\r\n // Primary - Violet palette (lighter for dark mode)\r\n primary: violet[400],\r\n onPrimary: violet[950],\r\n primaryHover: violet[300],\r\n primaryActive: violet[500],\r\n primarySubtle: violet[950],\r\n primaryDisabled: violet[700],\r\n // Secondary - Neutral with slight tint\r\n secondary: slate[700],\r\n onSecondary: slate[100],\r\n secondaryHover: slate[600],\r\n secondaryActive: slate[500],\r\n secondarySubtle: slate[800],\r\n secondaryDisabled: slate[800],\r\n // Tertiary - Complementary purple\r\n tertiary: purple[400],\r\n onTertiary: purple[950],\r\n tertiaryHover: purple[300],\r\n tertiaryActive: purple[500],\r\n tertiarySubtle: purple[950],\r\n tertiaryDisabled: purple[700],\r\n // Accent - Vibrant pink\r\n accent: pink[400],\r\n onAccent: pink[950],\r\n accentHover: pink[300],\r\n accentActive: pink[500],\r\n accentSubtle: pink[950],\r\n borderFocus: violet[400],\r\n // Semantic colors\r\n success: green[400],\r\n onSuccess: green[950],\r\n successHover: green[300],\r\n successSubtle: green[950],\r\n warning: amber[400],\r\n onWarning: amber[950],\r\n warningHover: amber[300],\r\n warningSubtle: amber[950],\r\n error: red[400],\r\n onError: red[950],\r\n errorHover: red[300],\r\n errorSubtle: red[950],\r\n info: blue[400],\r\n onInfo: blue[950],\r\n infoHover: blue[300],\r\n infoSubtle: blue[950],\r\n // Interactive\r\n link: violet[400],\r\n linkHover: violet[300],\r\n linkActive: violet[500],\r\n linkVisited: purple[400],\r\n focus: violet[400],\r\n}\r\n\r\n","import { neutralDark, neutralLight } from './shared'\r\nimport { amber, indigo, slate, green, red, blue, yellow, orange, white } from '../colors'\r\n\r\nimport type { Theme } from '@/types'\r\n\r\ntype ColorPalette = Theme['colors']\r\n\r\n/**\r\n * Amber light palette - Warm, accessible color scheme\r\n * Follows WCAG AA contrast guidelines\r\n */\r\nexport const amberLight: ColorPalette = {\r\n ...neutralLight,\r\n // Primary - Amber palette (darker shade for better contrast)\r\n primary: amber[500],\r\n onPrimary: amber[950],\r\n primaryHover: amber[600],\r\n primaryActive: amber[700],\r\n primarySubtle: amber[50],\r\n primaryDisabled: amber[300],\r\n // Secondary - Neutral with warm tint\r\n secondary: slate[100],\r\n onSecondary: slate[700],\r\n secondaryHover: slate[200],\r\n secondaryActive: slate[300],\r\n secondarySubtle: slate[50],\r\n secondaryDisabled: slate[100],\r\n // Tertiary - Warm orange complement\r\n tertiary: orange[500],\r\n onTertiary: white,\r\n tertiaryHover: orange[600],\r\n tertiaryActive: orange[700],\r\n tertiarySubtle: orange[50],\r\n tertiaryDisabled: orange[300],\r\n // Accent - Contrasting indigo\r\n accent: indigo[600],\r\n onAccent: white,\r\n accentHover: indigo[700],\r\n accentActive: indigo[800],\r\n accentSubtle: indigo[50],\r\n borderFocus: amber[500],\r\n // Semantic colors\r\n success: green[600],\r\n onSuccess: white,\r\n successHover: green[700],\r\n successSubtle: green[50],\r\n warning: yellow[500],\r\n onWarning: yellow[950],\r\n warningHover: yellow[600],\r\n warningSubtle: yellow[50],\r\n error: red[500],\r\n onError: white,\r\n errorHover: red[600],\r\n errorSubtle: red[50],\r\n info: blue[500],\r\n onInfo: white,\r\n infoHover: blue[600],\r\n infoSubtle: blue[50],\r\n // Interactive\r\n link: amber[700],\r\n linkHover: amber[800],\r\n linkActive: amber[900],\r\n linkVisited: orange[700],\r\n focus: amber[500],\r\n}\r\n\r\n/**\r\n * Amber dark palette - Warm, accessible color scheme\r\n * Follows WCAG AA contrast guidelines\r\n */\r\nexport const amberDark: ColorPalette = {\r\n ...neutralDark,\r\n // Primary - Amber palette (lighter for dark mode)\r\n primary: amber[400],\r\n onPrimary: amber[950],\r\n primaryHover: amber[300],\r\n primaryActive: amber[500],\r\n primarySubtle: amber[950],\r\n primaryDisabled: amber[700],\r\n // Secondary - Neutral with warm tint\r\n secondary: slate[700],\r\n onSecondary: slate[100],\r\n secondaryHover: slate[600],\r\n secondaryActive: slate[500],\r\n secondarySubtle: slate[800],\r\n secondaryDisabled: slate[800],\r\n // Tertiary - Warm orange complement\r\n tertiary: orange[400],\r\n onTertiary: orange[950],\r\n tertiaryHover: orange[300],\r\n tertiaryActive: orange[500],\r\n tertiarySubtle: orange[950],\r\n tertiaryDisabled: orange[700],\r\n // Accent - Contrasting indigo\r\n accent: indigo[400],\r\n onAccent: indigo[950],\r\n accentHover: indigo[300],\r\n accentActive: indigo[500],\r\n accentSubtle: indigo[950],\r\n borderFocus: amber[400],\r\n // Semantic colors\r\n success: green[400],\r\n onSuccess: green[950],\r\n successHover: green[300],\r\n successSubtle: green[950],\r\n warning: yellow[400],\r\n onWarning: yellow[950],\r\n warningHover: yellow[300],\r\n warningSubtle: yellow[950],\r\n error: red[400],\r\n onError: red[950],\r\n errorHover: red[300],\r\n errorSubtle: red[950],\r\n info: blue[400],\r\n onInfo: blue[950],\r\n infoHover: blue[300],\r\n infoSubtle: blue[950],\r\n // Interactive\r\n link: amber[400],\r\n linkHover: amber[300],\r\n linkActive: amber[500],\r\n linkVisited: orange[400],\r\n focus: amber[400],\r\n}\r\n\r\n","import { neutralDark, neutralLight } from './shared'\r\nimport { cyan, rose, slate, green, amber, red, blue, teal, sky, white } from '../colors'\r\n\r\nimport type { Theme } from '@/types'\r\n\r\ntype ColorPalette = Theme['colors']\r\n\r\n/**\r\n * Cyan light palette - Fresh, accessible color scheme\r\n * Follows WCAG AA contrast guidelines\r\n */\r\nexport const cyanLight: ColorPalette = {\r\n ...neutralLight,\r\n // Primary - Cyan palette\r\n primary: cyan[600],\r\n onPrimary: white,\r\n primaryHover: cyan[700],\r\n primaryActive: cyan[800],\r\n primarySubtle: cyan[50],\r\n primaryDisabled: cyan[300],\r\n // Secondary - Neutral with slight tint\r\n secondary: slate[100],\r\n onSecondary: slate[700],\r\n secondaryHover: slate[200],\r\n secondaryActive: slate[300],\r\n secondarySubtle: slate[50],\r\n secondaryDisabled: slate[100],\r\n // Tertiary - Complementary sky blue\r\n tertiary: sky[500],\r\n onTertiary: white,\r\n tertiaryHover: sky[600],\r\n tertiaryActive: sky[700],\r\n tertiarySubtle: sky[50],\r\n tertiaryDisabled: sky[300],\r\n // Accent - Warm rose contrast\r\n accent: rose[500],\r\n onAccent: white,\r\n accentHover: rose[600],\r\n accentActive: rose[700],\r\n accentSubtle: rose[50],\r\n borderFocus: cyan[500],\r\n // Semantic colors\r\n success: green[600],\r\n onSuccess: white,\r\n successHover: green[700],\r\n successSubtle: green[50],\r\n warning: amber[500],\r\n onWarning: amber[950],\r\n warningHover: amber[600],\r\n warningSubtle: amber[50],\r\n error: red[500],\r\n onError: white,\r\n errorHover: red[600],\r\n errorSubtle: red[50],\r\n info: blue[500],\r\n onInfo: white,\r\n infoHover: blue[600],\r\n infoSubtle: blue[50],\r\n // Interactive\r\n link: cyan[600],\r\n linkHover: cyan[700],\r\n linkActive: cyan[800],\r\n linkVisited: teal[700],\r\n focus: cyan[500],\r\n}\r\n\r\n/**\r\n * Cyan dark palette - Fresh, accessible color scheme\r\n * Follows WCAG AA contrast guidelines\r\n */\r\nexport const cyanDark: ColorPalette = {\r\n ...neutralDark,\r\n // Primary - Cyan palette (lighter for dark mode)\r\n primary: cyan[400],\r\n onPrimary: cyan[950],\r\n primaryHover: cyan[300],\r\n primaryActive: cyan[500],\r\n primarySubtle: cyan[950],\r\n primaryDisabled: cyan[700],\r\n // Secondary - Neutral with slight tint\r\n secondary: slate[700],\r\n onSecondary: slate[100],\r\n secondaryHover: slate[600],\r\n secondaryActive: slate[500],\r\n secondarySubtle: slate[800],\r\n secondaryDisabled: slate[800],\r\n // Tertiary - Complementary sky blue\r\n tertiary: sky[400],\r\n onTertiary: sky[950],\r\n tertiaryHover: sky[300],\r\n tertiaryActive: sky[500],\r\n tertiarySubtle: sky[950],\r\n tertiaryDisabled: sky[700],\r\n // Accent - Warm rose contrast\r\n accent: rose[400],\r\n onAccent: rose[950],\r\n accentHover: rose[300],\r\n accentActive: rose[500],\r\n accentSubtle: rose[950],\r\n borderFocus: cyan[400],\r\n // Semantic colors\r\n success: green[400],\r\n onSuccess: green[950],\r\n successHover: green[300],\r\n successSubtle: green[950],\r\n warning: amber[400],\r\n onWarning: amber[950],\r\n warningHover: amber[300],\r\n warningSubtle: amber[950],\r\n error: red[400],\r\n onError: red[950],\r\n errorHover: red[300],\r\n errorSubtle: red[950],\r\n info: blue[400],\r\n onInfo: blue[950],\r\n infoHover: blue[300],\r\n infoSubtle: blue[950],\r\n // Interactive\r\n link: cyan[400],\r\n linkHover: cyan[300],\r\n linkActive: cyan[500],\r\n linkVisited: teal[400],\r\n focus: cyan[400],\r\n}\r\n\r\n","import { neutralDark, neutralLight } from './shared'\r\nimport { slate, blue, green, amber, red, indigo, white } from '../colors'\r\n\r\nimport type { Theme } from '@/types'\r\n\r\ntype ColorPalette = Theme['colors']\r\n\r\n/**\r\n * Slate light palette - Professional, accessible color scheme\r\n * Follows WCAG AA contrast guidelines\r\n */\r\nexport const slateLight: ColorPalette = {\r\n ...neutralLight,\r\n // Primary - Slate palette\r\n primary: slate[700],\r\n onPrimary: white,\r\n primaryHover: slate[800],\r\n primaryActive: slate[900],\r\n primarySubtle: slate[100],\r\n primaryDisabled: slate[400],\r\n // Secondary - Neutral\r\n secondary: slate[100],\r\n onSecondary: slate[700],\r\n secondaryHover: slate[200],\r\n secondaryActive: slate[300],\r\n secondarySubtle: slate[50],\r\n secondaryDisabled: slate[100],\r\n // Tertiary - Complementary blue-gray\r\n tertiary: slate[600],\r\n onTertiary: white,\r\n tertiaryHover: slate[700],\r\n tertiaryActive: slate[800],\r\n tertiarySubtle: slate[100],\r\n tertiaryDisabled: slate[400],\r\n // Accent - Vibrant blue for highlights\r\n accent: blue[600],\r\n onAccent: white,\r\n accentHover: blue[700],\r\n accentActive: blue[800],\r\n accentSubtle: blue[50],\r\n borderFocus: blue[500],\r\n // Semantic colors\r\n success: green[600],\r\n onSuccess: white,\r\n successHover: green[700],\r\n successSubtle: green[50],\r\n warning: amber[500],\r\n onWarning: amber[950],\r\n warningHover: amber[600],\r\n warningSubtle: amber[50],\r\n error: red[500],\r\n onError: white,\r\n errorHover: red[600],\r\n errorSubtle: red[50],\r\n info: blue[500],\r\n onInfo: white,\r\n infoHover: blue[600],\r\n infoSubtle: blue[50],\r\n // Interactive\r\n link: blue[600],\r\n linkHover: blue[700],\r\n linkActive: blue[800],\r\n linkVisited: indigo[700],\r\n focus: blue[500],\r\n}\r\n\r\n/**\r\n * Slate dark palette - Professional, accessible color scheme\r\n * Follows WCAG AA contrast guidelines\r\n */\r\nexport const slateDark: ColorPalette = {\r\n ...neutralDark,\r\n // Primary - Slate palette (lighter for dark mode)\r\n primary: slate[200],\r\n onPrimary: slate[900],\r\n primaryHover: slate[100],\r\n primaryActive: slate[300],\r\n primarySubtle: slate[900],\r\n primaryDisabled: slate[600],\r\n // Secondary - Neutral\r\n secondary: slate[700],\r\n onSecondary: slate[100],\r\n secondaryHover: slate[600],\r\n secondaryActive: slate[500],\r\n secondarySubtle: slate[800],\r\n secondaryDisabled: slate[800],\r\n // Tertiary - Complementary blue-gray\r\n tertiary: slate[400],\r\n onTertiary: slate[950],\r\n tertiaryHover: slate[300],\r\n tertiaryActive: slate[500],\r\n tertiarySubtle: slate[900],\r\n tertiaryDisabled: slate[600],\r\n // Accent - Vibrant blue for highlights\r\n accent: blue[400],\r\n onAccent: blue[950],\r\n accentHover: blue[300],\r\n accentActive: blue[500],\r\n accentSubtle: blue[950],\r\n borderFocus: blue[400],\r\n // Semantic colors\r\n success: green[400],\r\n onSuccess: green[950],\r\n successHover: green[300],\r\n successSubtle: green[950],\r\n warning: amber[400],\r\n onWarning: amber[950],\r\n warningHover: amber[300],\r\n warningSubtle: amber[950],\r\n error: red[400],\r\n onError: red[950],\r\n errorHover: red[300],\r\n errorSubtle: red[950],\r\n info: blue[400],\r\n onInfo: blue[950],\r\n infoHover: blue[300],\r\n infoSubtle: blue[950],\r\n // Interactive\r\n link: blue[400],\r\n linkHover: blue[300],\r\n linkActive: blue[500],\r\n linkVisited: indigo[400],\r\n focus: blue[400],\r\n}\r\n\r\n","import { neutralDark, neutralLight } from './shared'\r\nimport { gray, indigo, green, amber, red, blue, violet, white } from '../colors'\r\n\r\nimport type { Theme } from '@/types'\r\n\r\ntype ColorPalette = Theme['colors']\r\n\r\n/**\r\n * Gray light palette - Clean, accessible color scheme\r\n * Follows WCAG AA contrast guidelines\r\n */\r\nexport const grayLight: ColorPalette = {\r\n ...neutralLight,\r\n // Primary - Gray palette\r\n primary: gray[800],\r\n onPrimary: white,\r\n primaryHover: gray[900],\r\n primaryActive: gray[950],\r\n primarySubtle: gray[100],\r\n primaryDisabled: gray[400],\r\n // Secondary - Neutral\r\n secondary: gray[100],\r\n onSecondary: gray[700],\r\n secondaryHover: gray[200],\r\n secondaryActive: gray[300],\r\n secondarySubtle: gray[50],\r\n secondaryDisabled: gray[100],\r\n // Tertiary - Warm gray variant\r\n tertiary: gray[600],\r\n onTertiary: white,\r\n tertiaryHover: gray[700],\r\n tertiaryActive: gray[800],\r\n tertiarySubtle: gray[100],\r\n tertiaryDisabled: gray[400],\r\n // Accent - Vibrant indigo for highlights\r\n accent: indigo[600],\r\n onAccent: white,\r\n accentHover: indigo[700],\r\n accentActive: indigo[800],\r\n accentSubtle: indigo[50],\r\n borderFocus: indigo[500],\r\n // Semantic colors\r\n success: green[600],\r\n onSuccess: white,\r\n successHover: green[700],\r\n successSubtle: green[50],\r\n warning: amber[500],\r\n onWarning: amber[950],\r\n warningHover: amber[600],\r\n warningSubtle: amber[50],\r\n error: red[500],\r\n onError: white,\r\n errorHover: red[600],\r\n errorSubtle: red[50],\r\n info: blue[500],\r\n onInfo: white,\r\n infoHover: blue[600],\r\n infoSubtle: blue[50],\r\n // Interactive\r\n link: indigo[600],\r\n linkHover: indigo[700],\r\n linkActive: indigo[800],\r\n linkVisited: violet[700],\r\n focus: indigo[500],\r\n}\r\n\r\n/**\r\n * Gray dark palette - Clean, accessible color scheme\r\n * Follows WCAG AA contrast guidelines\r\n */\r\nexport const grayDark: ColorPalette = {\r\n ...neutralDark,\r\n // Primary - Gray palette (lighter for dark mode)\r\n primary: gray[100],\r\n onPrimary: gray[900],\r\n primaryHover: gray[50],\r\n primaryActive: gray[200],\r\n primarySubtle: gray[900],\r\n primaryDisabled: gray[600],\r\n // Secondary - Neutral\r\n secondary: gray[700],\r\n onSecondary: gray[100],\r\n secondaryHover: gray[600],\r\n secondaryActive: gray[500],\r\n secondarySubtle: gray[800],\r\n secondaryDisabled: gray[800],\r\n // Tertiary - Warm gray variant\r\n tertiary: gray[400],\r\n onTertiary: gray[950],\r\n tertiaryHover: gray[300],\r\n tertiaryActive: gray[500],\r\n tertiarySubtle: gray[900],\r\n tertiaryDisabled: gray[600],\r\n // Accent - Vibrant indigo for highlights\r\n accent: indigo[400],\r\n onAccent: indigo[950],\r\n accentHover: indigo[300],\r\n accentActive: indigo[500],\r\n accentSubtle: indigo[950],\r\n borderFocus: indigo[400],\r\n // Semantic colors\r\n success: green[400],\r\n onSuccess: green[950],\r\n successHover: green[300],\r\n successSubtle: green[950],\r\n warning: amber[400],\r\n onWarning: amber[950],\r\n warningHover: amber[300],\r\n warningSubtle: amber[950],\r\n error: red[400],\r\n onError: red[950],\r\n errorHover: red[300],\r\n errorSubtle: red[950],\r\n info: blue[400],\r\n onInfo: blue[950],\r\n infoHover: blue[300],\r\n infoSubtle: blue[950],\r\n // Interactive\r\n link: indigo[400],\r\n linkHover: indigo[300],\r\n linkActive: indigo[500],\r\n linkVisited: violet[400],\r\n focus: indigo[400],\r\n}\r\n\r\n","/**\r\n * Theme Presets - Ready-to-use color palettes for themes\r\n *\r\n * @example\r\n * ```ts\r\n * import { palettes, roseLight, createTheme, defaultTheme } from '@aurora-ui/theme'\r\n *\r\n * // Use a preset directly\r\n * const roseTheme = createTheme(defaultTheme, { colors: roseLight })\r\n *\r\n * // Or via the palettes object\r\n * const theme = createTheme(defaultTheme, {\r\n * colors: palettes.emerald.light\r\n * })\r\n * ```\r\n */\r\n\r\n// Default palette (indigo)\r\nexport { indigoLight, indigoDark } from './indigo'\r\n\r\n// Color palettes\r\nexport { blueLight, blueDark } from './blue'\r\nexport { roseLight, roseDark } from './rose'\r\nexport { emeraldLight, emeraldDark } from './emerald'\r\nexport { tealLight, tealDark } from './teal'\r\nexport { violetLight, violetDark } from './violet'\r\nexport { amberLight, amberDark } from './amber'\r\nexport { cyanLight, cyanDark } from './cyan'\r\n\r\n// Neutral palettes\r\nexport { slateLight, slateDark } from './slate'\r\nexport { grayLight, grayDark } from './gray'\r\n\r\n// Import for palettes object\r\nimport { amberLight, amberDark } from './amber'\r\nimport { blueLight, blueDark } from './blue'\r\nimport { cyanLight, cyanDark } from './cyan'\r\nimport { emeraldLight, emeraldDark } from './emerald'\r\nimport { grayLight, grayDark } from './gray'\r\nimport { indigoLight, indigoDark } from './indigo'\r\nimport { roseLight, roseDark } from './rose'\r\nimport { slateLight, slateDark } from './slate'\r\nimport { tealLight, tealDark } from './teal'\r\nimport { violetLight, violetDark } from './violet'\r\n\r\n/**\r\n * All available color palettes organized by name\r\n */\r\nexport const palettes = {\r\n // Default\r\n indigo: { light: indigoLight, dark: indigoDark },\r\n // Colors\r\n blue: { light: blueLight, dark: blueDark },\r\n rose: { light: roseLight, dark: roseDark },\r\n emerald: { light: emeraldLight, dark: emeraldDark },\r\n teal: { light: tealLight, dark: tealDark },\r\n violet: { light: violetLight, dark: violetDark },\r\n amber: { light: amberLight, dark: amberDark },\r\n cyan: { light: cyanLight, dark: cyanDark },\r\n // Neutrals\r\n slate: { light: slateLight, dark: slateDark },\r\n gray: { light: grayLight, dark: grayDark },\r\n} as const\r\n\r\n","import { indigoLight, indigoDark } from './palettes'\r\n\r\nimport type { Theme } from '@/types'\r\n\r\n\r\n/**\r\n * Default spacing scale\r\n */\r\nexport const defaultSpacing: Theme['spacing'] = {\r\n none: '0',\r\n '2xs': '0.125rem', // 2px\r\n xs: '0.25rem', // 4px\r\n sm: '0.5rem', // 8px\r\n md: '1rem', // 16px\r\n lg: '1.5rem', // 24px\r\n xl: '2rem', // 32px\r\n '2xl': '3rem', // 48px\r\n '3xl': '4rem', // 64px\r\n '4xl': '6rem', // 96px\r\n '5xl': '8rem', // 128px\r\n}\r\n\r\n/**\r\n * Default border radius scale\r\n */\r\nexport const defaultRadius: Theme['radius'] = {\r\n none: '0',\r\n xs: '0.125rem', // 2px\r\n sm: '0.25rem', // 4px\r\n md: '0.375rem', // 6px\r\n lg: '0.5rem', // 8px\r\n xl: '0.75rem', // 12px\r\n '2xl': '1rem', // 16px\r\n full: '9999px',\r\n}\r\n\r\n/**\r\n * Default shadow scale\r\n */\r\nexport const defaultShadows: Theme['shadows'] = {\r\n none: 'none',\r\n xs: '0 1px 2px 0 rgb(0 0 0 / 0.05)',\r\n sm: '0 1px 3px 0 rgb(0 0 0 / 0.1), 0 1px 2px -1px rgb(0 0 0 / 0.1)',\r\n md: '0 4px 6px -1px rgb(0 0 0 / 0.1), 0 2px 4px -2px rgb(0 0 0 / 0.1)',\r\n lg: '0 10px 15px -3px rgb(0 0 0 / 0.1), 0 4px 6px -4px rgb(0 0 0 / 0.1)',\r\n xl: '0 20px 25px -5px rgb(0 0 0 / 0.1), 0 8px 10px -6px rgb(0 0 0 / 0.1)',\r\n '2xl': '0 25px 50px -12px rgb(0 0 0 / 0.25)',\r\n inner: 'inset 0 2px 4px 0 rgb(0 0 0 / 0.05)',\r\n focus: '0 0 0 3px rgb(99 102 241 / 0.4)',\r\n}\r\n\r\n/**\r\n * Default font size scale\r\n */\r\nexport const defaultFontSize: Theme['fontSize'] = {\r\n '2xs': '0.625rem', // 10px\r\n xs: '0.75rem', // 12px\r\n sm: '0.875rem', // 14px\r\n md: '1rem', // 16px\r\n lg: '1.25rem', // 20px\r\n xl: '1.5rem', // 24px\r\n '2xl': '2rem', // 32px\r\n '3xl': '2.5rem', // 40px\r\n '4xl': '3rem', // 48px\r\n '5xl': '4rem', // 64px\r\n}\r\n\r\n/**\r\n * Default font weight scale\r\n */\r\nexport const defaultFontWeight: Theme['fontWeight'] = {\r\n light: 300,\r\n regular: 400,\r\n medium: 500,\r\n semibold: 600,\r\n bold: 700,\r\n}\r\n\r\n/**\r\n * Default line height scale\r\n */\r\nexport const defaultLineHeight: Theme['lineHeight'] = {\r\n none: 1,\r\n tight: 1.25,\r\n normal: 1.5,\r\n relaxed: 1.75,\r\n loose: 2,\r\n}\r\n\r\n/**\r\n * Default z-index scale\r\n */\r\nexport const defaultZIndex: Theme['zIndex'] = {\r\n behind: -1,\r\n base: 0,\r\n dropdown: 1000,\r\n sticky: 1100,\r\n overlay: 1300,\r\n modal: 1400,\r\n popover: 1500,\r\n tooltip: 1600,\r\n toast: 1700,\r\n}\r\n\r\n/**\r\n * Default transition scale\r\n */\r\nexport const defaultTransition: Theme['transition'] = {\r\n fast: '150ms ease-out',\r\n normal: '250ms ease-out',\r\n slow: '350ms ease-out',\r\n}\r\n\r\n/**\r\n * Default opacity scale\r\n */\r\nexport const defaultOpacity: Theme['opacity'] = {\r\n none: 0,\r\n lowest: 0.05,\r\n low: 0.1,\r\n medium: 0.25,\r\n high: 0.5,\r\n higher: 0.75,\r\n full: 1,\r\n}\r\n\r\n/**\r\n * Default colors (using indigo palette)\r\n */\r\nexport const defaultColors = indigoLight\r\n\r\n/**\r\n * Default dark colors (using indigo palette)\r\n */\r\nexport const defaultDarkColors = indigoDark\r\n\r\n/**\r\n * Complete default light theme\r\n */\r\nexport const defaultTheme: Theme = {\r\n colors: defaultColors,\r\n spacing: defaultSpacing,\r\n radius: defaultRadius,\r\n shadows: defaultShadows,\r\n fontSize: defaultFontSize,\r\n fontWeight: defaultFontWeight,\r\n lineHeight: defaultLineHeight,\r\n zIndex: defaultZIndex,\r\n transition: defaultTransition,\r\n opacity: defaultOpacity,\r\n}\r\n\r\n/**\r\n * Complete default dark theme\r\n */\r\nexport const defaultDarkTheme: Theme = {\r\n ...defaultTheme,\r\n colors: defaultDarkColors,\r\n}\r\n","\r\nimport {\r\n cacheKeyToSuffix,\r\n createCacheKey,\r\n createLRUCache,\r\n generateCssClass,\r\n getTheme,\r\n MAX_CACHE_SIZE,\r\n toKebabCaseClassName\r\n} from './styleEngine'\r\n\r\nimport type { StyleFunction, StyleWithPseudos } from './types'\r\nimport type { Theme } from '@/types'\r\n\r\n/**\r\n * Extract component name from stack trace\r\n */\r\nconst getComponentNameFromStack = (): string => {\r\n const stack = new Error().stack || ''\r\n const match = stack.match(/([A-Za-z0-9_]+)\\.styles\\.[tj]s/)\r\n if (match?.[1]) {\r\n return toKebabCaseClassName(match[1])\r\n }\r\n const fileMatch = stack.match(/\\/([A-Za-z0-9_]+)\\.[tj]sx?[:\\d]*\\)?$/m)\r\n if (fileMatch?.[1] && fileMatch[1] !== 'createStyles') {\r\n return toKebabCaseClassName(fileMatch[1])\r\n }\r\n return 'style'\r\n}\r\n\r\n/**\r\n * Process styles and generate CSS classes\r\n */\r\nconst processStyles = <T extends Record<string, StyleWithPseudos | StyleFunction>>(\r\n styles: T,\r\n componentName: string\r\n): Record<string, string | ((...args: unknown[]) => string)> => {\r\n const classes = {} as Record<string, string | ((...args: unknown[]) => string)>\r\n\r\n for (const key in styles) {\r\n const style = styles[key]\r\n if (style) {\r\n const baseName = `${componentName}-${toKebabCaseClassName(key)}`\r\n if (typeof style === 'function') {\r\n const lru = createLRUCache<string>(MAX_CACHE_SIZE)\r\n classes[key] = (...args: unknown[]) => {\r\n const cacheKey = createCacheKey(args)\r\n return lru.getOrSet(cacheKey, () => {\r\n const resolved = (style as (...a: unknown[]) => StyleWithPseudos)(...args)\r\n return generateCssClass(resolved, `${baseName}-${cacheKeyToSuffix(cacheKey)}`)\r\n })\r\n }\r\n } else {\r\n classes[key] = generateCssClass(style, baseName, true)\r\n }\r\n }\r\n }\r\n\r\n return classes\r\n}\r\n\r\n/**\r\n * Create typed styles with support for pseudo-classes, media queries, container queries, feature queries and complex selectors\r\n *\r\n * Supports custom extended themes via generic parameter.\r\n *\r\n * @example\r\n * ```ts\r\n * // Basic usage with default theme\r\n * const STYLES = createStyles((theme) => ({\r\n * root: {\r\n * display: 'flex',\r\n * padding: theme.spacing.md,\r\n * ':hover': { backgroundColor: theme.colors.backgroundHover },\r\n * }\r\n * }))\r\n *\r\n * // With custom extended theme\r\n * type MyTheme = Theme & { colors: BaseColors & { accent: string } }\r\n *\r\n * const STYLES = createStyles<MyTheme>((theme) => ({\r\n * root: {\r\n * backgroundColor: theme.colors.accent, // TypeScript knows about accent!\r\n * }\r\n * }))\r\n * ```\r\n */\r\nexport const createStyles = <\r\n TTheme extends Theme = Theme,\r\n T extends Record<string, StyleWithPseudos | StyleFunction> = Record<string, StyleWithPseudos | StyleFunction>\r\n>(\r\n stylesOrCreator: T | ((theme: TTheme) => T)\r\n ): { [K in keyof T]: T[K] extends (...args: infer TArgs) => StyleWithPseudos ? (...args: TArgs) => string : string } => {\r\n type Result = { [K in keyof T]: T[K] extends (...args: infer TArgs) => StyleWithPseudos ? (...args: TArgs) => string : string }\r\n const componentName = getComponentNameFromStack()\r\n\r\n // Styles with theme (function)\r\n if (typeof stylesOrCreator === 'function') {\r\n let cached: Result | null = null\r\n let lastTheme: TTheme | undefined\r\n\r\n return new Proxy({} as Result, {\r\n get(_, prop: string | symbol) {\r\n const theme = getTheme() as TTheme | undefined\r\n if (!theme) {\r\n throw new Error('createStyles: Theme context not found. Make sure you are using this inside a ThemeProvider.')\r\n }\r\n if (theme !== lastTheme || !cached) {\r\n cached = processStyles(stylesOrCreator(theme), componentName) as Result\r\n lastTheme = theme\r\n }\r\n return cached[prop as keyof T]\r\n }\r\n })\r\n }\r\n\r\n // Styles without theme (direct object)\r\n return processStyles(stylesOrCreator, componentName) as Result\r\n}\r\n\r\n","import {\r\n addKeyframes,\r\n getNextKeyframeId,\r\n hashString,\r\n hasKeyframes,\r\n insertRule,\r\n objectToCss\r\n} from './styleEngine'\r\n\r\nimport type { CSSProperties } from 'react'\r\n\r\n\r\n/**\r\n * Create and inject keyframes\r\n *\r\n * @example\r\n * ```ts\r\n * const fadeIn = keyframes({\r\n * from: { opacity: 0 },\r\n * to: { opacity: 1 }\r\n * })\r\n *\r\n * const STYLES = createStyles({\r\n * animated: { animation: `${fadeIn} 0.3s ease-in-out` }\r\n * })\r\n * ```\r\n */\r\nexport const keyframes = (frames: Record<string, CSSProperties>): string => {\r\n // Generate keyframes CSS\r\n let css = ''\r\n for (const key in frames) {\r\n css += `${key}{${objectToCss(frames[key] as Record<string, unknown>)}}`\r\n }\r\n\r\n // Check if these keyframes already exist\r\n if (hasKeyframes(css)) {\r\n const hash = hashString(css)\r\n return `aurora-kf-${hash}`\r\n }\r\n\r\n // Generate a unique name\r\n const name = `aurora-kf-${getNextKeyframeId()}`\r\n\r\n // Inject @keyframes rule\r\n insertRule(`@keyframes ${name}{${css}}`)\r\n addKeyframes(css)\r\n\r\n return name\r\n}\r\n\r\n","import { addFontFace, hasFontFace, insertRule } from './styleEngine'\r\n\r\nimport type { FontFaceOptions } from './types'\r\n\r\n/**\r\n * Inject a @font-face rule\r\n *\r\n * @example\r\n * ```ts\r\n * fontFace({\r\n * fontFamily: 'MyFont',\r\n * src: \"url('/fonts/myfont.woff2') format('woff2')\",\r\n * fontWeight: 400,\r\n * fontStyle: 'normal',\r\n * fontDisplay: 'swap'\r\n * })\r\n * ```\r\n */\r\nexport const fontFace = (options: FontFaceOptions): string => {\r\n const {\r\n fontFamily,\r\n src,\r\n fontStyle = 'normal',\r\n fontWeight = 400,\r\n fontDisplay = 'swap',\r\n unicodeRange\r\n } = options\r\n\r\n // Generate CSS\r\n let css = `font-family:\"${fontFamily}\";`\r\n css += `src:${src};`\r\n css += `font-style:${fontStyle};`\r\n css += `font-weight:${fontWeight};`\r\n css += `font-display:${fontDisplay};`\r\n if (unicodeRange) {\r\n css += `unicode-range:${unicodeRange};`\r\n }\r\n\r\n // Check if already injected\r\n if (!hasFontFace(css)) {\r\n insertRule(`@font-face{${css}}`)\r\n addFontFace(css)\r\n }\r\n\r\n return fontFamily\r\n}\r\n\r\n","import { insertRule, toKebabCase } from './styleEngine'\r\n\r\nimport type { Theme } from '@/types'\r\n\r\n\r\n/**\r\n * Generate CSS variables from a theme object\r\n */\r\nconst generateCssVariables = (obj: Record<string, unknown>, prefix: string): string => {\r\n let css = ''\r\n\r\n for (const key in obj) {\r\n const value = obj[key]\r\n const varName = `--${prefix}-${toKebabCase(key)}`\r\n\r\n if (value && typeof value === 'object') {\r\n css += generateCssVariables(value as Record<string, unknown>, `${prefix}-${toKebabCase(key)}`)\r\n } else if (value != null) {\r\n css += `${varName}:${value};`\r\n }\r\n }\r\n\r\n return css\r\n}\r\n\r\n/**\r\n * Create CSS variables from the theme\r\n * Injects variables into :root\r\n *\r\n * @example\r\n * ```ts\r\n * // In ThemeProvider\r\n * injectCssVariables(theme, 'aurora')\r\n * // Generates: :root { --aurora-colors-primary: #2563EB; ... }\r\n * ```\r\n */\r\nexport const injectCssVariables = (theme: Theme, prefix = 'theme'): void => {\r\n const variables = generateCssVariables(theme, prefix)\r\n insertRule(`:root{${variables}}`)\r\n}\r\n\r\n/**\r\n * Helper to use a CSS variable from the theme\r\n *\r\n * @example\r\n * ```ts\r\n * const STYLES = createStyles({\r\n * root: { color: cssVar('colors-primary') }\r\n * })\r\n * // Generates: color: var(--theme-colors-primary)\r\n * ```\r\n */\r\nexport const cssVar = (path: string, fallback?: string): string => {\r\n const varName = `--theme-${path.replace(/\\./g, '-')}`\r\n return fallback ? `var(${varName}, ${fallback})` : `var(${varName})`\r\n}\r\n\r\n/**\r\n * Create CSS variable references from a typed object\r\n * Returns an object with the same structure where values are var() references\r\n *\r\n * @example\r\n * ```ts\r\n * const vars = cssVariables({\r\n * primaryColor: '#007bff',\r\n * spacing: '1rem',\r\n * })\r\n * // vars.primaryColor === 'var(--primary-color)'\r\n * ```\r\n */\r\nexport const cssVariables = <T extends Record<string, string | number>>(\r\n variables: T,\r\n options: { prefix?: string; inject?: boolean } = {}\r\n): { [K in keyof T]: string } => {\r\n const { prefix = '', inject = false } = options\r\n const result = {} as { [K in keyof T]: string }\r\n let cssToInject = ''\r\n\r\n for (const key in variables) {\r\n const kebabKey = toKebabCase(key)\r\n const varName = prefix ? `--${prefix}-${kebabKey}` : `--${kebabKey}`\r\n result[key] = `var(${varName})`\r\n\r\n if (inject) {\r\n cssToInject += `${varName}:${variables[key]};`\r\n }\r\n }\r\n\r\n if (inject && cssToInject) {\r\n insertRule(`:root{${cssToInject}}`)\r\n }\r\n\r\n return result\r\n}\r\n\r\n","import { getSSRRulesInternal, resetState } from './styleEngine'\r\n\r\n/**\r\n * SSR: Get all collected CSS rules as a single string\r\n * @returns The CSS content to inject into HTML\r\n */\r\nexport const getSSRStyles = (): string => {\r\n return getSSRRulesInternal().join('')\r\n}\r\n\r\n/**\r\n * SSR: Get styles as a <style> tag ready to inject\r\n * @returns The complete style tag to inject into <head>\r\n */\r\nexport const getSSRStyleTag = (): string => {\r\n const css = getSSRStyles()\r\n if (!css) { return '' }\r\n return `<style id=\"aurora-styles\">${css}</style>`\r\n}\r\n\r\n/**\r\n * SSR: Clear the collected rules buffer\r\n * Call at the beginning of each SSR request to ensure clean state\r\n */\r\nexport const clearSSRRules = (): void => {\r\n resetState()\r\n}\r\n\r\n/**\r\n * SSR: Get raw CSS rules as an array\r\n * @returns Array of CSS rules\r\n */\r\nexport const getSSRRulesArray = (): string[] => {\r\n return [...getSSRRulesInternal()]\r\n}\r\n\r\n","/**\r\n * WCAG Contrast Utilities\r\n *\r\n * Utilities for checking color contrast ratios according to WCAG 2.1 guidelines.\r\n *\r\n * @example\r\n * ```ts\r\n * import { getContrastRatio, meetsWCAG, checkThemeContrast } from '@aurora-ds/theme'\r\n *\r\n * // Check contrast between two colors\r\n * const ratio = getContrastRatio('#ffffff', '#000000') // 21\r\n *\r\n * // Check if colors meet WCAG standards\r\n * meetsWCAG('#ffffff', '#767676', 'AA') // true for large text\r\n * meetsWCAG('#ffffff', '#767676', 'AAA') // false\r\n *\r\n * // Check all theme color pairs\r\n * const issues = checkThemeContrast(myTheme)\r\n * ```\r\n */\r\n\r\n/**\r\n * WCAG contrast level requirements\r\n * - AA: 4.5:1 for normal text, 3:1 for large text\r\n * - AAA: 7:1 for normal text, 4.5:1 for large text\r\n */\r\nexport type WCAGLevel = 'AA' | 'AAA'\r\n\r\n/**\r\n * Result of a contrast check\r\n */\r\nexport type ContrastResult = {\r\n /** The two colors being compared */\r\n colors: [string, string]\r\n /** The contrast ratio (1-21) */\r\n ratio: number\r\n /** Whether it passes WCAG AA for normal text (4.5:1) */\r\n passesAA: boolean\r\n /** Whether it passes WCAG AA for large text (3:1) */\r\n passesAALarge: boolean\r\n /** Whether it passes WCAG AAA for normal text (7:1) */\r\n passesAAA: boolean\r\n /** Whether it passes WCAG AAA for large text (4.5:1) */\r\n passesAAALarge: boolean\r\n}\r\n\r\n/**\r\n * Theme contrast check result\r\n */\r\nexport type ThemeContrastIssue = {\r\n /** Name of the color pair (e.g., \"primary/onPrimary\") */\r\n pair: string\r\n /** Foreground color name */\r\n foreground: string\r\n /** Background color name */\r\n background: string\r\n /** The contrast ratio */\r\n ratio: number\r\n /** Required minimum ratio */\r\n required: number\r\n /** WCAG level that failed */\r\n level: 'AA' | 'AALarge'\r\n}\r\n\r\n/**\r\n * Parse a hex color to RGB values\r\n */\r\nconst hexToRgb = (hex: string): { r: number; g: number; b: number } | null => {\r\n // Remove # if present\r\n const cleanHex = hex.replace(/^#/, '')\r\n\r\n // Handle shorthand hex (e.g., #fff)\r\n const fullHex = cleanHex.length === 3\r\n ? cleanHex.split('').map(c => c + c).join('')\r\n : cleanHex\r\n\r\n if (fullHex.length !== 6) {\r\n return null\r\n }\r\n\r\n const num = parseInt(fullHex, 16)\r\n if (isNaN(num)) {\r\n return null\r\n }\r\n\r\n return {\r\n r: (num >> 16) & 255,\r\n g: (num >> 8) & 255,\r\n b: num & 255,\r\n }\r\n}\r\n\r\n/**\r\n * Convert RGB to relative luminance\r\n * @see https://www.w3.org/TR/WCAG21/#dfn-relative-luminance\r\n */\r\nconst getLuminance = (r: number, g: number, b: number): number => {\r\n const [rs, gs, bs] = [r, g, b].map(c => {\r\n const sRGB = c / 255\r\n return sRGB <= 0.03928\r\n ? sRGB / 12.92\r\n : Math.pow((sRGB + 0.055) / 1.055, 2.4)\r\n })\r\n return 0.2126 * rs + 0.7152 * gs + 0.0722 * bs\r\n}\r\n\r\n/**\r\n * Calculate the contrast ratio between two colors\r\n * @see https://www.w3.org/TR/WCAG21/#dfn-contrast-ratio\r\n *\r\n * @param foreground - Foreground color (hex)\r\n * @param background - Background color (hex)\r\n * @returns Contrast ratio (1-21), or null if colors are invalid\r\n *\r\n * @example\r\n * ```ts\r\n * getContrastRatio('#ffffff', '#000000') // 21\r\n * getContrastRatio('#ffffff', '#ffffff') // 1\r\n * getContrastRatio('#6366f1', '#ffffff') // ~4.5\r\n * ```\r\n */\r\nexport const getContrastRatio = (foreground: string, background: string): number | null => {\r\n const fgRgb = hexToRgb(foreground)\r\n const bgRgb = hexToRgb(background)\r\n\r\n if (!fgRgb || !bgRgb) {\r\n return null\r\n }\r\n\r\n const fgLuminance = getLuminance(fgRgb.r, fgRgb.g, fgRgb.b)\r\n const bgLuminance = getLuminance(bgRgb.r, bgRgb.g, bgRgb.b)\r\n\r\n const lighter = Math.max(fgLuminance, bgLuminance)\r\n const darker = Math.min(fgLuminance, bgLuminance)\r\n\r\n return (lighter + 0.05) / (darker + 0.05)\r\n}\r\n\r\n/**\r\n * Check if two colors meet WCAG contrast requirements\r\n *\r\n * @param foreground - Foreground color (hex)\r\n * @param background - Background color (hex)\r\n * @param level - WCAG level to check ('AA' or 'AAA')\r\n * @param largeText - Whether this is for large text (14pt bold or 18pt+)\r\n * @returns Whether the contrast meets the specified WCAG level\r\n *\r\n * @example\r\n * ```ts\r\n * meetsWCAG('#ffffff', '#6366f1', 'AA') // true\r\n * meetsWCAG('#ffffff', '#6366f1', 'AAA') // false\r\n * meetsWCAG('#ffffff', '#94a3b8', 'AA', true) // true (large text)\r\n * ```\r\n */\r\nexport const meetsWCAG = (\r\n foreground: string,\r\n background: string,\r\n level: WCAGLevel = 'AA',\r\n largeText: boolean = false\r\n): boolean => {\r\n const ratio = getContrastRatio(foreground, background)\r\n if (ratio === null) {\r\n return false\r\n }\r\n\r\n const requirements = {\r\n AA: largeText ? 3 : 4.5,\r\n AAA: largeText ? 4.5 : 7,\r\n }\r\n\r\n return ratio >= requirements[level]\r\n}\r\n\r\n/**\r\n * Get detailed contrast information between two colors\r\n *\r\n * @param foreground - Foreground color (hex)\r\n * @param background - Background color (hex)\r\n * @returns Detailed contrast result or null if colors are invalid\r\n *\r\n * @example\r\n * ```ts\r\n * const result = checkContrast('#ffffff', '#6366f1')\r\n * // {\r\n * // colors: ['#ffffff', '#6366f1'],\r\n * // ratio: 4.54,\r\n * // passesAA: true,\r\n * // passesAALarge: true,\r\n * // passesAAA: false,\r\n * // passesAAALarge: true\r\n * // }\r\n * ```\r\n */\r\nexport const checkContrast = (foreground: string, background: string): ContrastResult | null => {\r\n const ratio = getContrastRatio(foreground, background)\r\n if (ratio === null) {\r\n return null\r\n }\r\n\r\n return {\r\n colors: [foreground, background],\r\n ratio: Math.round(ratio * 100) / 100,\r\n passesAA: ratio >= 4.5,\r\n passesAALarge: ratio >= 3,\r\n passesAAA: ratio >= 7,\r\n passesAAALarge: ratio >= 4.5,\r\n }\r\n}\r\n\r\n/**\r\n * Color pairs to check in a theme\r\n * Format: [foregroundKey, backgroundKey, description]\r\n */\r\nconst THEME_COLOR_PAIRS: [string, string, string][] = [\r\n // Primary\r\n ['onPrimary', 'primary', 'primary/onPrimary'],\r\n ['text', 'primarySubtle', 'primarySubtle/text'],\r\n\r\n // Secondary\r\n ['onSecondary', 'secondary', 'secondary/onSecondary'],\r\n ['text', 'secondarySubtle', 'secondarySubtle/text'],\r\n\r\n // Tertiary\r\n ['onTertiary', 'tertiary', 'tertiary/onTertiary'],\r\n ['text', 'tertiarySubtle', 'tertiarySubtle/text'],\r\n\r\n // Accent\r\n ['onAccent', 'accent', 'accent/onAccent'],\r\n ['text', 'accentSubtle', 'accentSubtle/text'],\r\n\r\n // Surfaces\r\n ['text', 'background', 'background/text'],\r\n ['text', 'surface', 'surface/text'],\r\n ['textSecondary', 'surface', 'surface/textSecondary'],\r\n ['textTertiary', 'surface', 'surface/textTertiary'],\r\n\r\n // Semantic - Success\r\n ['onSuccess', 'success', 'success/onSuccess'],\r\n ['text', 'successSubtle', 'successSubtle/text'],\r\n\r\n // Semantic - Warning\r\n ['onWarning', 'warning', 'warning/onWarning'],\r\n ['text', 'warningSubtle', 'warningSubtle/text'],\r\n\r\n // Semantic - Error\r\n ['onError', 'error', 'error/onError'],\r\n ['text', 'errorSubtle', 'errorSubtle/text'],\r\n\r\n // Semantic - Info\r\n ['onInfo', 'info', 'info/onInfo'],\r\n ['text', 'infoSubtle', 'infoSubtle/text'],\r\n\r\n // Interactive\r\n ['link', 'surface', 'surface/link'],\r\n ['link', 'background', 'background/link'],\r\n]\r\n\r\n/**\r\n * Check all important color pairs in a theme for WCAG compliance\r\n *\r\n * @param theme - The theme to check\r\n * @param level - Minimum WCAG level to require ('AA' or 'AAA')\r\n * @returns Array of contrast issues found\r\n *\r\n * @example\r\n * ```ts\r\n * import { checkThemeContrast, defaultTheme } from '@aurora-ds/theme'\r\n *\r\n * const issues = checkThemeContrast(defaultTheme)\r\n * if (issues.length > 0) {\r\n * console.warn('Theme has contrast issues:', issues)\r\n * }\r\n *\r\n * // Check for AAA compliance\r\n * const strictIssues = checkThemeContrast(defaultTheme, 'AAA')\r\n * ```\r\n */\r\nexport const checkThemeContrast = (\r\n theme: { colors: Record<string, string> },\r\n level: WCAGLevel = 'AA'\r\n): ThemeContrastIssue[] => {\r\n const issues: ThemeContrastIssue[] = []\r\n const required = level === 'AAA' ? 7 : 4.5\r\n const requiredLarge = level === 'AAA' ? 4.5 : 3\r\n\r\n for (const [fgKey, bgKey, pairName] of THEME_COLOR_PAIRS) {\r\n const foreground = theme.colors[fgKey]\r\n const background = theme.colors[bgKey]\r\n\r\n if (!foreground || !background) {\r\n continue\r\n }\r\n\r\n // Skip non-hex colors (rgba, etc.)\r\n if (!foreground.startsWith('#') || !background.startsWith('#')) {\r\n continue\r\n }\r\n\r\n const ratio = getContrastRatio(foreground, background)\r\n if (ratio === null) {\r\n continue\r\n }\r\n\r\n // Check normal text requirement\r\n if (ratio < required) {\r\n issues.push({\r\n pair: pairName,\r\n foreground: fgKey,\r\n background: bgKey,\r\n ratio: Math.round(ratio * 100) / 100,\r\n required,\r\n level: 'AA',\r\n })\r\n } else if (ratio < requiredLarge) {\r\n // Also flag if it doesn't even meet large text requirement\r\n issues.push({\r\n pair: pairName,\r\n foreground: fgKey,\r\n background: bgKey,\r\n ratio: Math.round(ratio * 100) / 100,\r\n required: requiredLarge,\r\n level: 'AALarge',\r\n })\r\n }\r\n }\r\n\r\n return issues\r\n}\r\n\r\n/**\r\n * Get a suggested color that meets WCAG contrast requirements\r\n * Adjusts the lightness of the foreground color to meet the target ratio\r\n *\r\n * @param foreground - Current foreground color (hex)\r\n * @param background - Background color (hex)\r\n * @param targetRatio - Desired contrast ratio (default 4.5 for AA)\r\n * @returns Adjusted foreground color or null if adjustment isn't possible\r\n *\r\n * @example\r\n * ```ts\r\n * // If #94a3b8 on #ffffff doesn't meet AA\r\n * const suggested = suggestContrastColor('#94a3b8', '#ffffff', 4.5)\r\n * // Returns a darker shade that meets the requirement\r\n * ```\r\n */\r\nexport const suggestContrastColor = (\r\n foreground: string,\r\n background: string,\r\n targetRatio: number = 4.5\r\n): string | null => {\r\n const fgRgb = hexToRgb(foreground)\r\n const bgRgb = hexToRgb(background)\r\n\r\n if (!fgRgb || !bgRgb) {\r\n return null\r\n }\r\n\r\n const bgLuminance = getLuminance(bgRgb.r, bgRgb.g, bgRgb.b)\r\n const isLightBg = bgLuminance > 0.5\r\n\r\n // Try adjusting the foreground\r\n let bestColor = foreground\r\n let bestRatio = getContrastRatio(foreground, background) || 0\r\n\r\n // Adjust in steps\r\n for (let i = 0; i <= 100; i += 5) {\r\n const factor = isLightBg ? (100 - i) / 100 : (100 + i) / 100\r\n\r\n const newR = Math.min(255, Math.max(0, Math.round(fgRgb.r * factor)))\r\n const newG = Math.min(255, Math.max(0, Math.round(fgRgb.g * factor)))\r\n const newB = Math.min(255, Math.max(0, Math.round(fgRgb.b * factor)))\r\n\r\n const newHex = `#${newR.toString(16).padStart(2, '0')}${newG.toString(16).padStart(2, '0')}${newB.toString(16).padStart(2, '0')}`\r\n const newRatio = getContrastRatio(newHex, background)\r\n\r\n if (newRatio && newRatio >= targetRatio) {\r\n return newHex\r\n }\r\n\r\n if (newRatio && newRatio > bestRatio) {\r\n bestColor = newHex\r\n bestRatio = newRatio\r\n }\r\n }\r\n\r\n return bestRatio >= targetRatio ? bestColor : null\r\n}\r\n\r\n"]}
|