{"version":3,"sources":["../src/theme/ThemeProvider.tsx","../src/tokens/hooks.ts","../src/tokens/tokens.json","../src/tokens/constants.ts"],"sourcesContent":["import React, { createContext, useContext, useEffect, useState, useCallback, useMemo } from 'react';\nimport { Theme, ThemeContext as IThemeContext, ThemeColors, ThemeProviderProps } from './types';\n\nconst ThemeContext = createContext<IThemeContext | undefined>(undefined);\n\n// Script to inject for preventing FOUC\n// Can be customized with defaultTheme parameter\nexport const themeInitScript = (defaultTheme?: string) => `\n  (function() {\n    const theme = localStorage.getItem('theme');\n    const systemTheme = window.matchMedia('(prefers-color-scheme: dark)').matches ? 'dark' : 'light';\n    const fallbackTheme = ${defaultTheme ? `'${defaultTheme}'` : 'systemTheme'};\n    document.documentElement.setAttribute('data-theme', theme || fallbackTheme);\n  })();\n`;\n\n/**\n * ThemeProvider with automatic localStorage persistence and system preference detection.\n *\n * @example\n * // Basic usage - themes are automatically persisted\n * <ThemeProvider defaultTheme=\"grove-light\">\n *   <App />\n * </ThemeProvider>\n *\n * // With theme change callback\n * <ThemeProvider\n *   defaultTheme=\"grove-dark\"\n *   onThemeChange={(theme) => analytics.track('theme_changed', { theme })}\n * >\n *   <App />\n * </ThemeProvider>\n *\n * // Access theme state in components\n * const { theme, setTheme, themes } = useTheme();\n *\n * @param props - ThemeProvider configuration\n * @param props.children - Child components to wrap\n * @param props.defaultTheme - Default theme when no stored preference exists\n * @param props.initialTheme - Override theme for testing/Storybook (skips persistence)\n * @param props.onThemeChange - Callback fired when theme changes\n * @param props.disableInitialTransition - Prevent transition animation on initial load (default: true)\n */\nexport const ThemeProvider: React.FC<ThemeProviderProps> = ({\n  children,\n  defaultTheme = 'light',\n  initialTheme,\n  onThemeChange,\n  disableInitialTransition = true,\n}) => {\n  // Development-time prop validation\n  if (typeof process !== 'undefined' && process.env && process.env['NODE_ENV'] === 'development') {\n    // Check for common mistakes\n    const propsToValidate = {\n      children,\n      defaultTheme,\n      initialTheme,\n      onThemeChange,\n      disableInitialTransition,\n    };\n    const invalidProps = Object.keys(propsToValidate as Record<string, unknown>).filter(\n      (key) =>\n        ![\n          'children',\n          'defaultTheme',\n          'initialTheme',\n          'onThemeChange',\n          'disableInitialTransition',\n        ].includes(key)\n    );\n\n    if (invalidProps.length > 0) {\n      console.warn(\n        `ThemeProvider: Invalid props detected: ${invalidProps.join(', ')}.\\n` +\n          `Valid props are: children, defaultTheme, initialTheme, onThemeChange, disableInitialTransition.\\n` +\n          `See docs: https://design-system.orchard9.ai/theme`\n      );\n    }\n\n    if (\n      defaultTheme &&\n      !['light', 'dark', 'cupcake', 'business', 'grove-light', 'grove-dark', 'dawn', 'dusk'].includes(defaultTheme)\n    ) {\n      console.warn(\n        `ThemeProvider: Invalid defaultTheme \"${defaultTheme}\".\\n` +\n          `Valid themes are: light, dark, cupcake, business, grove-light, grove-dark, dawn, dusk.`\n      );\n    }\n  }\n\n  const [theme, setThemeState] = useState<Theme>(initialTheme || defaultTheme);\n  const [systemTheme, setSystemTheme] = useState<'light' | 'dark'>('light');\n  const [colors, setColors] = useState<ThemeColors>({} as ThemeColors);\n  const [isInitialized, setIsInitialized] = useState(false);\n\n  const themes = useMemo<Theme[]>(\n    () => ['light', 'dark', 'cupcake', 'business', 'grove-light', 'grove-dark', 'dawn', 'dusk'],\n    []\n  );\n\n  // Get computed theme colors\n  const updateColors = useCallback(() => {\n    const computed = getComputedStyle(document.documentElement);\n    const newColors: Partial<ThemeColors> = {};\n\n    // DaisyUI color variables\n    const colorVars = [\n      'primary',\n      'primary-focus',\n      'primary-content',\n      'secondary',\n      'secondary-focus',\n      'secondary-content',\n      'accent',\n      'accent-focus',\n      'accent-content',\n      'neutral',\n      'neutral-focus',\n      'neutral-content',\n      'base-100',\n      'base-200',\n      'base-300',\n      'base-content',\n      'info',\n      'success',\n      'warning',\n      'error',\n    ];\n\n    colorVars.forEach((color) => {\n      const hsl = computed.getPropertyValue(`--${color}`).trim();\n      if (hsl) {\n        newColors[color as keyof ThemeColors] = `hsl(${hsl})`;\n      }\n    });\n\n    setColors(newColors as ThemeColors);\n  }, []);\n\n  // Initialize theme from localStorage or system preference (skip if initialTheme provided)\n  useEffect(() => {\n    // If initialTheme is provided (e.g., from Storybook), don't override it\n    if (initialTheme) {\n      return;\n    }\n\n    const stored = localStorage.getItem('theme') as Theme | null;\n    const mediaQuery = window.matchMedia('(prefers-color-scheme: dark)');\n\n    setSystemTheme(mediaQuery.matches ? 'dark' : 'light');\n\n    if (stored && themes.includes(stored)) {\n      setThemeState(stored);\n    } else if (defaultTheme && themes.includes(defaultTheme)) {\n      // Respect defaultTheme before falling back to system preference\n      setThemeState(defaultTheme);\n    } else if (mediaQuery.matches) {\n      setThemeState('dark');\n    } else {\n      setThemeState('light');\n    }\n\n    const handleChange = (e: MediaQueryListEvent) => {\n      setSystemTheme(e.matches ? 'dark' : 'light');\n      if (!localStorage.getItem('theme')) {\n        setThemeState(e.matches ? 'dark' : 'light');\n      }\n    };\n\n    mediaQuery.addEventListener('change', handleChange);\n    return () => mediaQuery.removeEventListener('change', handleChange);\n  }, [themes, initialTheme, defaultTheme]);\n\n  // Apply theme and update colors\n  useEffect(() => {\n    document.documentElement.setAttribute('data-theme', theme);\n\n    // Only apply transition after initial load to prevent FOUC\n    if (disableInitialTransition && !isInitialized) {\n      // Skip transition on initial load\n    } else {\n      document.documentElement.style.setProperty(\n        'transition',\n        'background-color 0.3s ease, color 0.3s ease'\n      );\n    }\n\n    localStorage.setItem('theme', theme);\n\n    // Update colors after theme change\n    requestAnimationFrame(updateColors);\n\n    // Emit theme change event\n    window.dispatchEvent(new CustomEvent('themechange', { detail: { theme } }));\n\n    // Call optional callback\n    onThemeChange?.(theme);\n  }, [theme, updateColors, onThemeChange, disableInitialTransition, isInitialized]);\n\n  // Mark as initialized after first mount\n  useEffect(() => {\n    setIsInitialized(true);\n  }, []);\n\n  const setTheme = useCallback((newTheme: Theme) => {\n    setThemeState(newTheme);\n  }, []);\n\n  const value: IThemeContext = {\n    theme,\n    setTheme,\n    themes,\n    systemTheme,\n    colors,\n  };\n\n  return <ThemeContext.Provider value={value}>{children}</ThemeContext.Provider>;\n};\n\nexport const useTheme = () => {\n  const context = useContext(ThemeContext);\n  if (!context) {\n    throw new Error('useTheme must be used within ThemeProvider');\n  }\n  return context;\n};\n","import { useTheme } from '../theme/ThemeProvider';\nimport { useMemo } from 'react';\nimport tokens from './tokens.json';\nimport type { Tokens } from './types';\n\n/**\n * Hook to get all design tokens for the current theme\n * @returns Complete token object for the active theme\n */\nexport const useTokens = (): Tokens => {\n  const { theme } = useTheme();\n\n  return useMemo(() => {\n    // Fall back to light theme if tokens don't exist for the current theme\n    const themeTokens = tokens[theme as keyof typeof tokens] || tokens.light;\n    return themeTokens as unknown as Tokens;\n  }, [theme]);\n};\n\n/**\n * Hook to get color tokens for the current theme\n * @returns Color token object with all semantic color values\n */\nexport const useColorTokens = () => {\n  const tokens = useTokens();\n  return tokens.colors;\n};\n\n/**\n * Hook to get spacing tokens\n * @returns Spacing scale object with rem/px values\n */\nexport const useSpacingTokens = () => {\n  const tokens = useTokens();\n  return tokens.spacing;\n};\n\n/**\n * Hook to get typography tokens\n * @returns Typography scale with font sizes, weights, and line heights\n */\nexport const useTypographyTokens = () => {\n  const tokens = useTokens();\n  return tokens.typography;\n};\n\n/**\n * Hook to get animation tokens\n * @returns Animation duration and easing values\n */\nexport const useAnimationTokens = () => {\n  const tokens = useTokens();\n  return tokens.animation;\n};\n\n/**\n * Hook to get shadow tokens\n * @returns Box shadow definitions for different elevations\n */\nexport const useShadowTokens = () => {\n  const tokens = useTokens();\n  return tokens.shadows;\n};\n\n/**\n * Hook to get border radius tokens\n * @returns Border radius values for different corner styles\n */\nexport const useBorderRadiusTokens = () => {\n  const tokens = useTokens();\n  return tokens.borderRadius;\n};\n\n/**\n * Hook to get a specific color token value\n * @param colorName - The color token name (e.g., 'primary', 'base-100')\n * @returns The hex color value for the current theme\n */\nexport const useColorValue = (colorName: keyof Tokens['colors']) => {\n  const colors = useColorTokens();\n  return colors[colorName];\n};\n\n/**\n * Hook to get a specific spacing token value\n * @param spacing - The spacing token key (e.g., '4', '8', '16')\n * @returns The spacing value in rem/px\n */\nexport const useSpacingValue = (spacing: keyof Tokens['spacing']) => {\n  const spacingTokens = useSpacingTokens();\n  return spacingTokens[spacing];\n};\n","{\n  \"light\": {\n    \"colors\": {\n      \"primary\": \"#6419E6\",\n      \"primary-focus\": \"#5016C7\",\n      \"primary-content\": \"#FFFFFF\",\n      \"secondary\": \"#E879F9\",\n      \"secondary-focus\": \"#D946EF\",\n      \"secondary-content\": \"#FFFFFF\",\n      \"accent\": \"#F59E0B\",\n      \"accent-focus\": \"#D97706\",\n      \"accent-content\": \"#FFFFFF\",\n      \"neutral\": \"#3D4451\",\n      \"neutral-focus\": \"#2A2E37\",\n      \"neutral-content\": \"#FFFFFF\",\n      \"base-100\": \"#FFFFFF\",\n      \"base-200\": \"#F2F2F2\",\n      \"base-300\": \"#E5E6E6\",\n      \"base-content\": \"#1F2937\",\n      \"info\": \"#3ABFF8\",\n      \"success\": \"#36D399\",\n      \"warning\": \"#FBBD23\",\n      \"error\": \"#F87272\"\n    },\n    \"spacing\": {\n      \"0\": \"0px\",\n      \"1\": \"0.25rem\",\n      \"2\": \"0.5rem\",\n      \"3\": \"0.75rem\",\n      \"4\": \"1rem\",\n      \"5\": \"1.25rem\",\n      \"6\": \"1.5rem\",\n      \"8\": \"2rem\",\n      \"10\": \"2.5rem\",\n      \"12\": \"3rem\",\n      \"16\": \"4rem\",\n      \"20\": \"5rem\",\n      \"24\": \"6rem\"\n    },\n    \"typography\": {\n      \"fontSize\": {\n        \"xs\": [\n          \"0.6875rem\",\n          {\n            \"lineHeight\": \"0.9375rem\"\n          }\n        ],\n        \"sm\": [\n          \"0.8125rem\",\n          {\n            \"lineHeight\": \"1.125rem\"\n          }\n        ],\n        \"base\": [\n          \"0.9375rem\",\n          {\n            \"lineHeight\": \"1.375rem\"\n          }\n        ],\n        \"lg\": [\n          \"1rem\",\n          {\n            \"lineHeight\": \"1.5rem\"\n          }\n        ],\n        \"xl\": [\n          \"1.0625rem\",\n          {\n            \"lineHeight\": \"1.5rem\"\n          }\n        ],\n        \"2xl\": [\n          \"1.1875rem\",\n          {\n            \"lineHeight\": \"1.625rem\"\n          }\n        ],\n        \"3xl\": [\n          \"1.375rem\",\n          {\n            \"lineHeight\": \"1.75rem\"\n          }\n        ],\n        \"4xl\": [\n          \"1.625rem\",\n          {\n            \"lineHeight\": \"1.875rem\"\n          }\n        ],\n        \"5xl\": [\n          \"2rem\",\n          {\n            \"lineHeight\": \"1\"\n          }\n        ]\n      },\n      \"fontWeight\": {\n        \"normal\": \"400\",\n        \"medium\": \"500\",\n        \"semibold\": \"600\",\n        \"bold\": \"700\"\n      }\n    },\n    \"animation\": {\n      \"duration\": {\n        \"fast\": \"150ms\",\n        \"base\": \"300ms\",\n        \"slow\": \"500ms\",\n        \"slower\": \"700ms\"\n      },\n      \"easing\": {\n        \"default\": \"cubic-bezier(0.4, 0, 0.2, 1)\",\n        \"linear\": \"linear\",\n        \"in\": \"cubic-bezier(0.4, 0, 1, 1)\",\n        \"out\": \"cubic-bezier(0, 0, 0.2, 1)\",\n        \"inOut\": \"cubic-bezier(0.4, 0, 0.2, 1)\"\n      }\n    },\n    \"shadows\": {\n      \"sm\": \"0 1px 2px 0 rgb(0 0 0 / 0.05)\",\n      \"base\": \"0 1px 3px 0 rgb(0 0 0 / 0.1), 0 1px 2px -1px rgb(0 0 0 / 0.1)\",\n      \"md\": \"0 4px 6px -1px rgb(0 0 0 / 0.1), 0 2px 4px -2px rgb(0 0 0 / 0.1)\",\n      \"lg\": \"0 10px 15px -3px rgb(0 0 0 / 0.1), 0 4px 6px -4px rgb(0 0 0 / 0.1)\",\n      \"xl\": \"0 20px 25px -5px rgb(0 0 0 / 0.1), 0 8px 10px -6px rgb(0 0 0 / 0.1)\"\n    },\n    \"borderRadius\": {\n      \"none\": \"0\",\n      \"sm\": \"0.125rem\",\n      \"base\": \"0.25rem\",\n      \"md\": \"0.375rem\",\n      \"lg\": \"0.5rem\",\n      \"xl\": \"0.75rem\",\n      \"2xl\": \"1rem\",\n      \"full\": \"9999px\"\n    }\n  },\n  \"dark\": {\n    \"colors\": {\n      \"primary\": \"#6419E6\",\n      \"primary-focus\": \"#5016C7\",\n      \"primary-content\": \"#FFFFFF\",\n      \"secondary\": \"#E879F9\",\n      \"secondary-focus\": \"#D946EF\",\n      \"secondary-content\": \"#FFFFFF\",\n      \"accent\": \"#F59E0B\",\n      \"accent-focus\": \"#D97706\",\n      \"accent-content\": \"#FFFFFF\",\n      \"neutral\": \"#2A2E37\",\n      \"neutral-focus\": \"#16181D\",\n      \"neutral-content\": \"#A6ADBB\",\n      \"base-100\": \"#1D232A\",\n      \"base-200\": \"#191E24\",\n      \"base-300\": \"#15191E\",\n      \"base-content\": \"#A6ADBB\",\n      \"info\": \"#3ABFF8\",\n      \"success\": \"#36D399\",\n      \"warning\": \"#FBBD23\",\n      \"error\": \"#F87272\"\n    },\n    \"spacing\": {\n      \"0\": \"0px\",\n      \"1\": \"0.25rem\",\n      \"2\": \"0.5rem\",\n      \"3\": \"0.75rem\",\n      \"4\": \"1rem\",\n      \"5\": \"1.25rem\",\n      \"6\": \"1.5rem\",\n      \"8\": \"2rem\",\n      \"10\": \"2.5rem\",\n      \"12\": \"3rem\",\n      \"16\": \"4rem\",\n      \"20\": \"5rem\",\n      \"24\": \"6rem\"\n    },\n    \"typography\": {\n      \"fontSize\": {\n        \"xs\": [\n          \"0.6875rem\",\n          {\n            \"lineHeight\": \"0.9375rem\"\n          }\n        ],\n        \"sm\": [\n          \"0.8125rem\",\n          {\n            \"lineHeight\": \"1.125rem\"\n          }\n        ],\n        \"base\": [\n          \"0.9375rem\",\n          {\n            \"lineHeight\": \"1.375rem\"\n          }\n        ],\n        \"lg\": [\n          \"1rem\",\n          {\n            \"lineHeight\": \"1.5rem\"\n          }\n        ],\n        \"xl\": [\n          \"1.0625rem\",\n          {\n            \"lineHeight\": \"1.5rem\"\n          }\n        ],\n        \"2xl\": [\n          \"1.1875rem\",\n          {\n            \"lineHeight\": \"1.625rem\"\n          }\n        ],\n        \"3xl\": [\n          \"1.375rem\",\n          {\n            \"lineHeight\": \"1.75rem\"\n          }\n        ],\n        \"4xl\": [\n          \"1.625rem\",\n          {\n            \"lineHeight\": \"1.875rem\"\n          }\n        ],\n        \"5xl\": [\n          \"2rem\",\n          {\n            \"lineHeight\": \"1\"\n          }\n        ]\n      },\n      \"fontWeight\": {\n        \"normal\": \"400\",\n        \"medium\": \"500\",\n        \"semibold\": \"600\",\n        \"bold\": \"700\"\n      }\n    },\n    \"animation\": {\n      \"duration\": {\n        \"fast\": \"150ms\",\n        \"base\": \"300ms\",\n        \"slow\": \"500ms\",\n        \"slower\": \"700ms\"\n      },\n      \"easing\": {\n        \"default\": \"cubic-bezier(0.4, 0, 0.2, 1)\",\n        \"linear\": \"linear\",\n        \"in\": \"cubic-bezier(0.4, 0, 1, 1)\",\n        \"out\": \"cubic-bezier(0, 0, 0.2, 1)\",\n        \"inOut\": \"cubic-bezier(0.4, 0, 0.2, 1)\"\n      }\n    },\n    \"shadows\": {\n      \"sm\": \"0 1px 2px 0 rgb(0 0 0 / 0.05)\",\n      \"base\": \"0 1px 3px 0 rgb(0 0 0 / 0.1), 0 1px 2px -1px rgb(0 0 0 / 0.1)\",\n      \"md\": \"0 4px 6px -1px rgb(0 0 0 / 0.1), 0 2px 4px -2px rgb(0 0 0 / 0.1)\",\n      \"lg\": \"0 10px 15px -3px rgb(0 0 0 / 0.1), 0 4px 6px -4px rgb(0 0 0 / 0.1)\",\n      \"xl\": \"0 20px 25px -5px rgb(0 0 0 / 0.1), 0 8px 10px -6px rgb(0 0 0 / 0.1)\"\n    },\n    \"borderRadius\": {\n      \"none\": \"0\",\n      \"sm\": \"0.125rem\",\n      \"base\": \"0.25rem\",\n      \"md\": \"0.375rem\",\n      \"lg\": \"0.5rem\",\n      \"xl\": \"0.75rem\",\n      \"2xl\": \"1rem\",\n      \"full\": \"9999px\"\n    }\n  },\n  \"cupcake\": {\n    \"colors\": {\n      \"primary\": \"#0E7490\",\n      \"primary-focus\": \"#0F3F4F\",\n      \"primary-content\": \"#1F2937\",\n      \"secondary\": \"#D946EF\",\n      \"secondary-focus\": \"#C026D3\",\n      \"secondary-content\": \"#1F2937\",\n      \"accent\": \"#EEAF3A\",\n      \"accent-focus\": \"#E9A429\",\n      \"accent-content\": \"#1F2937\",\n      \"neutral\": \"#291334\",\n      \"neutral-focus\": \"#1F0E2B\",\n      \"neutral-content\": \"#D7DDE4\",\n      \"base-100\": \"#FAF7F5\",\n      \"base-200\": \"#EFEAE6\",\n      \"base-300\": \"#E7E2DF\",\n      \"base-content\": \"#291334\",\n      \"info\": \"#3ABFF8\",\n      \"success\": \"#36D399\",\n      \"warning\": \"#FBBD23\",\n      \"error\": \"#F87272\"\n    },\n    \"spacing\": {\n      \"0\": \"0px\",\n      \"1\": \"0.25rem\",\n      \"2\": \"0.5rem\",\n      \"3\": \"0.75rem\",\n      \"4\": \"1rem\",\n      \"5\": \"1.25rem\",\n      \"6\": \"1.5rem\",\n      \"8\": \"2rem\",\n      \"10\": \"2.5rem\",\n      \"12\": \"3rem\",\n      \"16\": \"4rem\",\n      \"20\": \"5rem\",\n      \"24\": \"6rem\"\n    },\n    \"typography\": {\n      \"fontSize\": {\n        \"xs\": [\n          \"0.6875rem\",\n          {\n            \"lineHeight\": \"0.9375rem\"\n          }\n        ],\n        \"sm\": [\n          \"0.8125rem\",\n          {\n            \"lineHeight\": \"1.125rem\"\n          }\n        ],\n        \"base\": [\n          \"0.9375rem\",\n          {\n            \"lineHeight\": \"1.375rem\"\n          }\n        ],\n        \"lg\": [\n          \"1rem\",\n          {\n            \"lineHeight\": \"1.5rem\"\n          }\n        ],\n        \"xl\": [\n          \"1.0625rem\",\n          {\n            \"lineHeight\": \"1.5rem\"\n          }\n        ],\n        \"2xl\": [\n          \"1.1875rem\",\n          {\n            \"lineHeight\": \"1.625rem\"\n          }\n        ],\n        \"3xl\": [\n          \"1.375rem\",\n          {\n            \"lineHeight\": \"1.75rem\"\n          }\n        ],\n        \"4xl\": [\n          \"1.625rem\",\n          {\n            \"lineHeight\": \"1.875rem\"\n          }\n        ],\n        \"5xl\": [\n          \"2rem\",\n          {\n            \"lineHeight\": \"1\"\n          }\n        ]\n      },\n      \"fontWeight\": {\n        \"normal\": \"400\",\n        \"medium\": \"500\",\n        \"semibold\": \"600\",\n        \"bold\": \"700\"\n      }\n    },\n    \"animation\": {\n      \"duration\": {\n        \"fast\": \"150ms\",\n        \"base\": \"300ms\",\n        \"slow\": \"500ms\",\n        \"slower\": \"700ms\"\n      },\n      \"easing\": {\n        \"default\": \"cubic-bezier(0.4, 0, 0.2, 1)\",\n        \"linear\": \"linear\",\n        \"in\": \"cubic-bezier(0.4, 0, 1, 1)\",\n        \"out\": \"cubic-bezier(0, 0, 0.2, 1)\",\n        \"inOut\": \"cubic-bezier(0.4, 0, 0.2, 1)\"\n      }\n    },\n    \"shadows\": {\n      \"sm\": \"0 1px 2px 0 rgb(0 0 0 / 0.05)\",\n      \"base\": \"0 1px 3px 0 rgb(0 0 0 / 0.1), 0 1px 2px -1px rgb(0 0 0 / 0.1)\",\n      \"md\": \"0 4px 6px -1px rgb(0 0 0 / 0.1), 0 2px 4px -2px rgb(0 0 0 / 0.1)\",\n      \"lg\": \"0 10px 15px -3px rgb(0 0 0 / 0.1), 0 4px 6px -4px rgb(0 0 0 / 0.1)\",\n      \"xl\": \"0 20px 25px -5px rgb(0 0 0 / 0.1), 0 8px 10px -6px rgb(0 0 0 / 0.1)\"\n    },\n    \"borderRadius\": {\n      \"none\": \"0\",\n      \"sm\": \"0.125rem\",\n      \"base\": \"0.25rem\",\n      \"md\": \"0.375rem\",\n      \"lg\": \"0.5rem\",\n      \"xl\": \"0.75rem\",\n      \"2xl\": \"1rem\",\n      \"full\": \"9999px\"\n    }\n  },\n  \"business\": {\n    \"colors\": {\n      \"primary\": \"#1C4ED8\",\n      \"primary-focus\": \"#1E40AF\",\n      \"primary-content\": \"#FFFFFF\",\n      \"secondary\": \"#7C3AED\",\n      \"secondary-focus\": \"#6D28D9\",\n      \"secondary-content\": \"#FFFFFF\",\n      \"accent\": \"#F59E0B\",\n      \"accent-focus\": \"#D97706\",\n      \"accent-content\": \"#FFFFFF\",\n      \"neutral\": \"#2D3748\",\n      \"neutral-focus\": \"#1A202C\",\n      \"neutral-content\": \"#A0AEC0\",\n      \"base-100\": \"#FFFFFF\",\n      \"base-200\": \"#F7FAFC\",\n      \"base-300\": \"#EDF2F7\",\n      \"base-content\": \"#1A202C\",\n      \"info\": \"#3182CE\",\n      \"success\": \"#38A169\",\n      \"warning\": \"#D69E2E\",\n      \"error\": \"#E53E3E\"\n    },\n    \"spacing\": {\n      \"0\": \"0px\",\n      \"1\": \"0.25rem\",\n      \"2\": \"0.5rem\",\n      \"3\": \"0.75rem\",\n      \"4\": \"1rem\",\n      \"5\": \"1.25rem\",\n      \"6\": \"1.5rem\",\n      \"8\": \"2rem\",\n      \"10\": \"2.5rem\",\n      \"12\": \"3rem\",\n      \"16\": \"4rem\",\n      \"20\": \"5rem\",\n      \"24\": \"6rem\"\n    },\n    \"typography\": {\n      \"fontSize\": {\n        \"xs\": [\n          \"0.6875rem\",\n          {\n            \"lineHeight\": \"0.9375rem\"\n          }\n        ],\n        \"sm\": [\n          \"0.8125rem\",\n          {\n            \"lineHeight\": \"1.125rem\"\n          }\n        ],\n        \"base\": [\n          \"0.9375rem\",\n          {\n            \"lineHeight\": \"1.375rem\"\n          }\n        ],\n        \"lg\": [\n          \"1rem\",\n          {\n            \"lineHeight\": \"1.5rem\"\n          }\n        ],\n        \"xl\": [\n          \"1.0625rem\",\n          {\n            \"lineHeight\": \"1.5rem\"\n          }\n        ],\n        \"2xl\": [\n          \"1.1875rem\",\n          {\n            \"lineHeight\": \"1.625rem\"\n          }\n        ],\n        \"3xl\": [\n          \"1.375rem\",\n          {\n            \"lineHeight\": \"1.75rem\"\n          }\n        ],\n        \"4xl\": [\n          \"1.625rem\",\n          {\n            \"lineHeight\": \"1.875rem\"\n          }\n        ],\n        \"5xl\": [\n          \"2rem\",\n          {\n            \"lineHeight\": \"1\"\n          }\n        ]\n      },\n      \"fontWeight\": {\n        \"normal\": \"400\",\n        \"medium\": \"500\",\n        \"semibold\": \"600\",\n        \"bold\": \"700\"\n      }\n    },\n    \"animation\": {\n      \"duration\": {\n        \"fast\": \"150ms\",\n        \"base\": \"300ms\",\n        \"slow\": \"500ms\",\n        \"slower\": \"700ms\"\n      },\n      \"easing\": {\n        \"default\": \"cubic-bezier(0.4, 0, 0.2, 1)\",\n        \"linear\": \"linear\",\n        \"in\": \"cubic-bezier(0.4, 0, 1, 1)\",\n        \"out\": \"cubic-bezier(0, 0, 0.2, 1)\",\n        \"inOut\": \"cubic-bezier(0.4, 0, 0.2, 1)\"\n      }\n    },\n    \"shadows\": {\n      \"sm\": \"0 1px 2px 0 rgb(0 0 0 / 0.05)\",\n      \"base\": \"0 1px 3px 0 rgb(0 0 0 / 0.1), 0 1px 2px -1px rgb(0 0 0 / 0.1)\",\n      \"md\": \"0 4px 6px -1px rgb(0 0 0 / 0.1), 0 2px 4px -2px rgb(0 0 0 / 0.1)\",\n      \"lg\": \"0 10px 15px -3px rgb(0 0 0 / 0.1), 0 4px 6px -4px rgb(0 0 0 / 0.1)\",\n      \"xl\": \"0 20px 25px -5px rgb(0 0 0 / 0.1), 0 8px 10px -6px rgb(0 0 0 / 0.1)\"\n    },\n    \"borderRadius\": {\n      \"none\": \"0\",\n      \"sm\": \"0.125rem\",\n      \"base\": \"0.25rem\",\n      \"md\": \"0.375rem\",\n      \"lg\": \"0.5rem\",\n      \"xl\": \"0.75rem\",\n      \"2xl\": \"1rem\",\n      \"full\": \"9999px\"\n    }\n  },\n  \"grove-dark\": {\n    \"colors\": {\n      \"primary\": \"#22c55e\",\n      \"primary-focus\": \"#16a34a\",\n      \"primary-content\": \"#ffffff\",\n      \"secondary\": \"#fbbf24\",\n      \"secondary-focus\": \"#f59e0b\",\n      \"secondary-content\": \"#000000\",\n      \"accent\": \"#22c55e\",\n      \"accent-focus\": \"#16a34a\",\n      \"accent-content\": \"#ffffff\",\n      \"neutral\": \"#27272a\",\n      \"neutral-focus\": \"#18181b\",\n      \"neutral-content\": \"#fafafa\",\n      \"base-100\": \"#09090b\",\n      \"base-200\": \"#18181b\",\n      \"base-300\": \"#27272a\",\n      \"base-content\": \"#fafafa\",\n      \"info\": \"#3b82f6\",\n      \"success\": \"#22c55e\",\n      \"warning\": \"#fbbf24\",\n      \"error\": \"#ef4444\"\n    },\n    \"spacing\": {\n      \"0\": \"0px\",\n      \"1\": \"0.25rem\",\n      \"2\": \"0.5rem\",\n      \"3\": \"0.75rem\",\n      \"4\": \"1rem\",\n      \"5\": \"1.25rem\",\n      \"6\": \"1.5rem\",\n      \"8\": \"2rem\",\n      \"10\": \"2.5rem\",\n      \"12\": \"3rem\",\n      \"16\": \"4rem\",\n      \"20\": \"5rem\",\n      \"24\": \"6rem\"\n    },\n    \"typography\": {\n      \"fontSize\": {\n        \"xs\": [\n          \"0.6875rem\",\n          {\n            \"lineHeight\": \"0.9375rem\"\n          }\n        ],\n        \"sm\": [\n          \"0.8125rem\",\n          {\n            \"lineHeight\": \"1.125rem\"\n          }\n        ],\n        \"base\": [\n          \"0.9375rem\",\n          {\n            \"lineHeight\": \"1.375rem\"\n          }\n        ],\n        \"lg\": [\n          \"1rem\",\n          {\n            \"lineHeight\": \"1.5rem\"\n          }\n        ],\n        \"xl\": [\n          \"1.0625rem\",\n          {\n            \"lineHeight\": \"1.5rem\"\n          }\n        ],\n        \"2xl\": [\n          \"1.1875rem\",\n          {\n            \"lineHeight\": \"1.625rem\"\n          }\n        ],\n        \"3xl\": [\n          \"1.375rem\",\n          {\n            \"lineHeight\": \"1.75rem\"\n          }\n        ],\n        \"4xl\": [\n          \"1.625rem\",\n          {\n            \"lineHeight\": \"1.875rem\"\n          }\n        ],\n        \"5xl\": [\n          \"2rem\",\n          {\n            \"lineHeight\": \"1\"\n          }\n        ]\n      },\n      \"fontWeight\": {\n        \"normal\": \"400\",\n        \"medium\": \"500\",\n        \"semibold\": \"600\",\n        \"bold\": \"700\"\n      }\n    },\n    \"animation\": {\n      \"duration\": {\n        \"fast\": \"150ms\",\n        \"base\": \"300ms\",\n        \"slow\": \"500ms\",\n        \"slower\": \"700ms\"\n      },\n      \"easing\": {\n        \"default\": \"cubic-bezier(0.4, 0, 0.2, 1)\",\n        \"linear\": \"linear\",\n        \"in\": \"cubic-bezier(0.4, 0, 1, 1)\",\n        \"out\": \"cubic-bezier(0, 0, 0.2, 1)\",\n        \"inOut\": \"cubic-bezier(0.4, 0, 0.2, 1)\"\n      }\n    },\n    \"shadows\": {\n      \"sm\": \"0 1px 2px 0 rgb(0 0 0 / 0.05)\",\n      \"base\": \"0 1px 3px 0 rgb(0 0 0 / 0.1), 0 1px 2px -1px rgb(0 0 0 / 0.1)\",\n      \"md\": \"0 4px 6px -1px rgb(0 0 0 / 0.1), 0 2px 4px -2px rgb(0 0 0 / 0.1)\",\n      \"lg\": \"0 10px 15px -3px rgb(0 0 0 / 0.1), 0 4px 6px -4px rgb(0 0 0 / 0.1)\",\n      \"xl\": \"0 20px 25px -5px rgb(0 0 0 / 0.1), 0 8px 10px -6px rgb(0 0 0 / 0.1)\"\n    },\n    \"borderRadius\": {\n      \"none\": \"0\",\n      \"sm\": \"0.125rem\",\n      \"base\": \"0.25rem\",\n      \"md\": \"0.375rem\",\n      \"lg\": \"0.5rem\",\n      \"xl\": \"0.75rem\",\n      \"2xl\": \"1rem\",\n      \"full\": \"9999px\"\n    }\n  },\n  \"grove-light\": {\n    \"colors\": {\n      \"primary\": \"#22c55e\",\n      \"primary-focus\": \"#16a34a\",\n      \"primary-content\": \"#ffffff\",\n      \"secondary\": \"#fbbf24\",\n      \"secondary-focus\": \"#f59e0b\",\n      \"secondary-content\": \"#000000\",\n      \"accent\": \"#22c55e\",\n      \"accent-focus\": \"#16a34a\",\n      \"accent-content\": \"#ffffff\",\n      \"neutral\": \"#f5f5f4\",\n      \"neutral-focus\": \"#e7e5e4\",\n      \"neutral-content\": \"#1c1917\",\n      \"base-100\": \"#fefefe\",\n      \"base-200\": \"#f8f8f7\",\n      \"base-300\": \"#f5f5f4\",\n      \"base-content\": \"#1a1a1a\",\n      \"info\": \"#3b82f6\",\n      \"success\": \"#22c55e\",\n      \"warning\": \"#f59e0b\",\n      \"error\": \"#dc2626\"\n    },\n    \"spacing\": {\n      \"0\": \"0px\",\n      \"1\": \"0.25rem\",\n      \"2\": \"0.5rem\",\n      \"3\": \"0.75rem\",\n      \"4\": \"1rem\",\n      \"5\": \"1.25rem\",\n      \"6\": \"1.5rem\",\n      \"8\": \"2rem\",\n      \"10\": \"2.5rem\",\n      \"12\": \"3rem\",\n      \"16\": \"4rem\",\n      \"20\": \"5rem\",\n      \"24\": \"6rem\"\n    },\n    \"typography\": {\n      \"fontSize\": {\n        \"xs\": [\n          \"0.6875rem\",\n          {\n            \"lineHeight\": \"0.9375rem\"\n          }\n        ],\n        \"sm\": [\n          \"0.8125rem\",\n          {\n            \"lineHeight\": \"1.125rem\"\n          }\n        ],\n        \"base\": [\n          \"0.9375rem\",\n          {\n            \"lineHeight\": \"1.375rem\"\n          }\n        ],\n        \"lg\": [\n          \"1rem\",\n          {\n            \"lineHeight\": \"1.5rem\"\n          }\n        ],\n        \"xl\": [\n          \"1.0625rem\",\n          {\n            \"lineHeight\": \"1.5rem\"\n          }\n        ],\n        \"2xl\": [\n          \"1.1875rem\",\n          {\n            \"lineHeight\": \"1.625rem\"\n          }\n        ],\n        \"3xl\": [\n          \"1.375rem\",\n          {\n            \"lineHeight\": \"1.75rem\"\n          }\n        ],\n        \"4xl\": [\n          \"1.625rem\",\n          {\n            \"lineHeight\": \"1.875rem\"\n          }\n        ],\n        \"5xl\": [\n          \"2rem\",\n          {\n            \"lineHeight\": \"1\"\n          }\n        ]\n      },\n      \"fontWeight\": {\n        \"normal\": \"400\",\n        \"medium\": \"500\",\n        \"semibold\": \"600\",\n        \"bold\": \"700\"\n      }\n    },\n    \"animation\": {\n      \"duration\": {\n        \"fast\": \"150ms\",\n        \"base\": \"300ms\",\n        \"slow\": \"500ms\",\n        \"slower\": \"700ms\"\n      },\n      \"easing\": {\n        \"default\": \"cubic-bezier(0.4, 0, 0.2, 1)\",\n        \"linear\": \"linear\",\n        \"in\": \"cubic-bezier(0.4, 0, 1, 1)\",\n        \"out\": \"cubic-bezier(0, 0, 0.2, 1)\",\n        \"inOut\": \"cubic-bezier(0.4, 0, 0.2, 1)\"\n      }\n    },\n    \"shadows\": {\n      \"sm\": \"0 1px 2px 0 rgb(0 0 0 / 0.05)\",\n      \"base\": \"0 1px 3px 0 rgb(0 0 0 / 0.1), 0 1px 2px -1px rgb(0 0 0 / 0.1)\",\n      \"md\": \"0 4px 6px -1px rgb(0 0 0 / 0.1), 0 2px 4px -2px rgb(0 0 0 / 0.1)\",\n      \"lg\": \"0 10px 15px -3px rgb(0 0 0 / 0.1), 0 4px 6px -4px rgb(0 0 0 / 0.1)\",\n      \"xl\": \"0 20px 25px -5px rgb(0 0 0 / 0.1), 0 8px 10px -6px rgb(0 0 0 / 0.1)\"\n    },\n    \"borderRadius\": {\n      \"none\": \"0\",\n      \"sm\": \"0.125rem\",\n      \"base\": \"0.25rem\",\n      \"md\": \"0.375rem\",\n      \"lg\": \"0.5rem\",\n      \"xl\": \"0.75rem\",\n      \"2xl\": \"1rem\",\n      \"full\": \"9999px\"\n    }\n  }\n}","// Auto-generated - do not edit\nimport tokens from './tokens.json';\nimport type { ThemeTokens, Theme } from './types';\n\n/**\n * Complete token object for all themes\n */\nexport const designTokens: ThemeTokens = tokens as unknown as ThemeTokens;\n\n/**\n * Available theme names\n */\nexport const themes: Theme[] = ['light', 'dark', 'cupcake', 'business', 'grove-light', 'grove-dark'];\n\n/**\n * Default theme\n */\nexport const defaultTheme: Theme = 'light';\n\n/**\n * Light theme tokens\n */\nexport const lightTokens = designTokens.light;\n\n/**\n * Dark theme tokens\n */\nexport const darkTokens = designTokens.dark;\n\n/**\n * Cupcake theme tokens\n */\nexport const cupcakeTokens = designTokens.cupcake;\n\n/**\n * Business theme tokens\n */\nexport const businessTokens = designTokens.business;\n\n/**\n * Get tokens for a specific theme\n * @param theme - Theme name\n * @returns Token object for the specified theme\n */\nexport const getThemeTokens = (theme: Theme) => {\n  return designTokens[theme];\n};\n\n/**\n * Check if a theme exists\n * @param theme - Theme name to check\n * @returns Whether the theme is valid\n */\nexport const isValidTheme = (theme: string): theme is Theme => {\n  return themes.includes(theme as Theme);\n};\n"],"mappings":"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","names":["useMemo","useMemo"]}