@mieweb/ui 0.11.0-dev.0 → 0.11.0-dev.2

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.
Files changed (60) hide show
  1. package/dist/{chunk-J2CKXXOW.js → chunk-4I6BW3FB.js} +8 -5
  2. package/dist/chunk-4I6BW3FB.js.map +1 -0
  3. package/dist/{chunk-XHK5VZ4L.cjs → chunk-6ZA574PU.cjs} +8 -5
  4. package/dist/chunk-6ZA574PU.cjs.map +1 -0
  5. package/dist/{chunk-ECYIDXG6.cjs → chunk-AFDW64EF.cjs} +4 -2
  6. package/dist/chunk-AFDW64EF.cjs.map +1 -0
  7. package/dist/{chunk-KVTKSPX5.js → chunk-AG5EKCE4.js} +4 -2
  8. package/dist/chunk-AG5EKCE4.js.map +1 -0
  9. package/dist/{chunk-FMEA6WAY.cjs → chunk-C66JR43M.cjs} +9 -9
  10. package/dist/{chunk-FMEA6WAY.cjs.map → chunk-C66JR43M.cjs.map} +1 -1
  11. package/dist/{chunk-OW3SQJ7P.js → chunk-EI4JU5JF.js} +3 -3
  12. package/dist/{chunk-OW3SQJ7P.js.map → chunk-EI4JU5JF.js.map} +1 -1
  13. package/dist/{chunk-TJ4GWQPM.js → chunk-GJPCWR4C.js} +102 -64
  14. package/dist/chunk-GJPCWR4C.js.map +1 -0
  15. package/dist/{chunk-JSXIB6EJ.cjs → chunk-GLG6UE2H.cjs} +12 -7
  16. package/dist/chunk-GLG6UE2H.cjs.map +1 -0
  17. package/dist/{chunk-H3ROMJYI.cjs → chunk-KY67AMQ5.cjs} +4 -4
  18. package/dist/{chunk-H3ROMJYI.cjs.map → chunk-KY67AMQ5.cjs.map} +1 -1
  19. package/dist/{chunk-YZCM7CXK.js → chunk-NKG2UNXE.js} +3 -3
  20. package/dist/{chunk-YZCM7CXK.js.map → chunk-NKG2UNXE.js.map} +1 -1
  21. package/dist/{chunk-FBN2VHUV.cjs → chunk-QQCHM7BZ.cjs} +4 -4
  22. package/dist/{chunk-FBN2VHUV.cjs.map → chunk-QQCHM7BZ.cjs.map} +1 -1
  23. package/dist/{chunk-EBKE4DLU.js → chunk-VYNFJVRZ.js} +3 -3
  24. package/dist/{chunk-EBKE4DLU.js.map → chunk-VYNFJVRZ.js.map} +1 -1
  25. package/dist/{chunk-U2RS574O.cjs → chunk-WGXJNCRG.cjs} +101 -63
  26. package/dist/chunk-WGXJNCRG.cjs.map +1 -0
  27. package/dist/{chunk-7X6R3JIA.js → chunk-YFWDS6MX.js} +12 -7
  28. package/dist/chunk-YFWDS6MX.js.map +1 -0
  29. package/dist/components/MegaMenu/index.cjs +5 -4
  30. package/dist/components/MegaMenu/index.js +2 -1
  31. package/dist/components/SuperChat/index.cjs +3 -3
  32. package/dist/components/SuperChat/index.d.cts +8 -4
  33. package/dist/components/SuperChat/index.d.ts +8 -4
  34. package/dist/components/SuperChat/index.js +1 -1
  35. package/dist/components/SuperChat/plugins/index.cjs +3 -3
  36. package/dist/components/SuperChat/plugins/index.js +2 -2
  37. package/dist/components/ThemeProvider/index.cjs +9 -8
  38. package/dist/components/ThemeProvider/index.js +3 -2
  39. package/dist/components/Tooltip/index.cjs +3 -2
  40. package/dist/components/Tooltip/index.d.cts +6 -2
  41. package/dist/components/Tooltip/index.d.ts +6 -2
  42. package/dist/components/Tooltip/index.js +2 -1
  43. package/dist/esheet.cjs +5 -5
  44. package/dist/esheet.js +2 -2
  45. package/dist/index.cjs +111 -111
  46. package/dist/index.d.cts +27 -12
  47. package/dist/index.d.ts +27 -12
  48. package/dist/index.js +12 -12
  49. package/dist/styles.css +1 -1
  50. package/dist/tailwind-preset.cjs +4 -4
  51. package/dist/tailwind-preset.js +1 -1
  52. package/package.json +1 -1
  53. package/dist/chunk-7X6R3JIA.js.map +0 -1
  54. package/dist/chunk-ECYIDXG6.cjs.map +0 -1
  55. package/dist/chunk-J2CKXXOW.js.map +0 -1
  56. package/dist/chunk-JSXIB6EJ.cjs.map +0 -1
  57. package/dist/chunk-KVTKSPX5.js.map +0 -1
  58. package/dist/chunk-TJ4GWQPM.js.map +0 -1
  59. package/dist/chunk-U2RS574O.cjs.map +0 -1
  60. package/dist/chunk-XHK5VZ4L.cjs.map +0 -1
@@ -1 +1 @@
1
- {"version":3,"sources":["../src/components/ThemeProvider/ThemeProvider.tsx","../src/components/ThemeProvider/ThemeToggle.tsx"],"names":["React","useTheme","jsx","cva","React2","cn","Tooltip"],"mappings":"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","file":"chunk-H3ROMJYI.cjs","sourcesContent":["import * as React from 'react';\nimport { useTheme, type Theme, type ResolvedTheme } from '../../hooks/useTheme';\n\nexport interface ThemeProviderContextValue {\n theme: Theme;\n setTheme: (theme: Theme) => void;\n resolvedTheme: ResolvedTheme;\n}\n\nconst ThemeProviderContext = React.createContext<\n ThemeProviderContextValue | undefined\n>(undefined);\n\nexport interface ThemeProviderProps {\n children: React.ReactNode;\n /** Default theme to use on first load */\n defaultTheme?: Theme;\n /** Storage key for persisting theme */\n storageKey?: string;\n}\n\n/**\n * Provider component that wraps your app to enable theme switching.\n *\n * @example\n * ```tsx\n * function App() {\n * return (\n * <ThemeProvider defaultTheme=\"system\">\n * <YourApp />\n * </ThemeProvider>\n * );\n * }\n * ```\n */\nfunction ThemeProvider({\n children,\n defaultTheme: _defaultTheme = 'system',\n}: ThemeProviderProps) {\n const { theme, setTheme, resolvedTheme } = useTheme();\n\n const value = React.useMemo(\n () => ({ theme, setTheme, resolvedTheme }),\n [theme, setTheme, resolvedTheme]\n );\n\n return (\n <ThemeProviderContext.Provider value={value}>\n {children}\n </ThemeProviderContext.Provider>\n );\n}\n\nThemeProvider.displayName = 'ThemeProvider';\n\n/**\n * Hook to access the theme context.\n *\n * @example\n * ```tsx\n * function ThemeToggle() {\n * const { theme, setTheme, resolvedTheme } = useThemeContext();\n * return (\n * <button onClick={() => setTheme(resolvedTheme === 'dark' ? 'light' : 'dark')}>\n * Toggle theme\n * </button>\n * );\n * }\n * ```\n */\nfunction useThemeContext(): ThemeProviderContextValue {\n const context = React.useContext(ThemeProviderContext);\n if (!context) {\n throw new Error('useThemeContext must be used within a ThemeProvider');\n }\n return context;\n}\n\nexport { ThemeProvider, ThemeProviderContext, useThemeContext };\n","import * as React from 'react';\nimport { cva, type VariantProps } from 'class-variance-authority';\nimport { cn } from '../../utils/cn';\nimport { useTheme, type Theme } from '../../hooks/useTheme';\nimport { Tooltip } from '../Tooltip';\n\n// ============================================================================\n// Theme Toggle Variants\n// ============================================================================\n\nconst themeToggleVariants = cva(\n [\n 'inline-flex items-center justify-center',\n 'rounded-md border transition-colors',\n 'focus:outline-none focus:ring-2 focus:ring-primary-500/40',\n ],\n {\n variants: {\n size: {\n sm: 'h-7 w-7',\n md: 'h-8 w-8',\n lg: 'h-9 w-9',\n },\n variant: {\n default: [\n 'border-neutral-300 bg-white text-neutral-600 shadow-sm',\n 'hover:bg-neutral-100',\n 'dark:border-neutral-600 dark:bg-neutral-800 dark:text-neutral-300 dark:hover:bg-neutral-700',\n ],\n ghost: [\n 'border-transparent bg-transparent text-neutral-600',\n 'hover:bg-neutral-100',\n 'dark:text-neutral-300 dark:hover:bg-neutral-700',\n ],\n },\n },\n defaultVariants: {\n size: 'md',\n variant: 'default',\n },\n }\n);\n\nconst themeToggleIconVariants = cva('', {\n variants: {\n size: {\n sm: 'h-3.5 w-3.5',\n md: 'h-4 w-4',\n lg: 'h-5 w-5',\n },\n },\n defaultVariants: {\n size: 'md',\n },\n});\n\n// ============================================================================\n// Icon Components\n// ============================================================================\n\ninterface IconProps {\n className?: string;\n}\n\nconst SunIcon: React.FC<IconProps> = ({ className }) => (\n <svg\n className={className}\n fill=\"none\"\n viewBox=\"0 0 24 24\"\n stroke=\"currentColor\"\n strokeWidth={2}\n aria-hidden=\"true\"\n >\n <path\n strokeLinecap=\"round\"\n strokeLinejoin=\"round\"\n d=\"M12 3v1m0 16v1m9-9h-1M4 12H3m15.364 6.364l-.707-.707M6.343 6.343l-.707-.707m12.728 0l-.707.707M6.343 17.657l-.707.707M16 12a4 4 0 11-8 0 4 4 0 018 0z\"\n />\n </svg>\n);\n\nconst MoonIcon: React.FC<IconProps> = ({ className }) => (\n <svg\n className={className}\n fill=\"none\"\n viewBox=\"0 0 24 24\"\n stroke=\"currentColor\"\n strokeWidth={2}\n aria-hidden=\"true\"\n >\n <path\n strokeLinecap=\"round\"\n strokeLinejoin=\"round\"\n d=\"M20.354 15.354A9 9 0 018.646 3.646 9.003 9.003 0 0012 21a9.003 9.003 0 008.354-5.646z\"\n />\n </svg>\n);\n\nconst SystemIcon: React.FC<IconProps> = ({ className }) => (\n <svg\n className={className}\n fill=\"none\"\n viewBox=\"0 0 24 24\"\n stroke=\"currentColor\"\n strokeWidth={2}\n aria-hidden=\"true\"\n >\n <path\n strokeLinecap=\"round\"\n strokeLinejoin=\"round\"\n d=\"M9.75 17L9 20l-1 1h8l-1-1-.75-3M3 13h18M5 17h14a2 2 0 002-2V5a2 2 0 00-2-2H5a2 2 0 00-2 2v10a2 2 0 002 2z\"\n />\n </svg>\n);\n\n// ============================================================================\n// Three-way cycle (single source of truth)\n// ============================================================================\n\n/** The three-way cycle order: light → dark → system → light. Click handler,\n * tooltip label, and default icon are all derived from this one map. */\nconst THREE_WAY_NEXT: Record<Theme, Theme> = {\n light: 'dark',\n dark: 'system',\n system: 'light',\n};\n\nconst THEME_LABELS: Record<Theme, string> = {\n light: 'Switch to light mode',\n dark: 'Switch to dark mode',\n system: 'Switch to system theme',\n};\n\n// ============================================================================\n// ThemeToggle Component\n// ============================================================================\n\nexport interface ThemeToggleProps\n extends\n Omit<React.ButtonHTMLAttributes<HTMLButtonElement>, 'children'>,\n VariantProps<typeof themeToggleVariants> {\n /**\n * What themes to cycle through.\n * - 'two-way': Toggle between light and dark only\n * - 'three-way': Cycle through light → dark → system\n * @default 'two-way'\n */\n mode?: 'two-way' | 'three-way';\n /**\n * Whether to show a tooltip with the current/next theme\n * @default true\n */\n showTooltip?: boolean;\n /**\n * Tooltip placement\n * @default 'bottom'\n */\n tooltipPlacement?: 'top' | 'right' | 'bottom' | 'left';\n /**\n * Delay before showing tooltip in ms\n * @default 140\n */\n tooltipDelay?: number;\n /**\n * Custom icon for light theme\n */\n lightIcon?: React.ReactNode;\n /**\n * Custom icon for dark theme\n */\n darkIcon?: React.ReactNode;\n /**\n * Custom icon for system theme (only used in three-way mode)\n */\n systemIcon?: React.ReactNode;\n}\n\n/**\n * An accessible theme toggle button that switches between light/dark modes.\n *\n * Uses the mieweb-ui useTheme hook for state management and persists\n * the user's preference to localStorage.\n *\n * @example\n * ```tsx\n * // Simple two-way toggle (light/dark)\n * <ThemeToggle />\n *\n * // Three-way cycle (light → dark → system)\n * <ThemeToggle mode=\"three-way\" />\n *\n * // With custom styling\n * <ThemeToggle size=\"lg\" variant=\"ghost\" />\n *\n * // Without tooltip\n * <ThemeToggle showTooltip={false} />\n * ```\n */\nconst ThemeToggle = React.forwardRef<HTMLButtonElement, ThemeToggleProps>(\n (\n {\n className,\n size,\n variant,\n mode = 'two-way',\n showTooltip = true,\n tooltipPlacement = 'bottom',\n tooltipDelay = 140,\n lightIcon,\n darkIcon,\n systemIcon,\n ...props\n },\n ref\n ) => {\n const { theme, setTheme, resolvedTheme } = useTheme();\n\n const handleClick = React.useCallback(() => {\n if (mode === 'two-way') {\n // Simple toggle between light and dark\n setTheme(resolvedTheme === 'dark' ? 'light' : 'dark');\n } else {\n setTheme(THREE_WAY_NEXT[theme]);\n }\n }, [mode, theme, resolvedTheme, setTheme]);\n\n const getLabel = () => {\n if (mode === 'two-way') {\n return resolvedTheme === 'dark'\n ? 'Switch to light mode'\n : 'Switch to dark mode';\n }\n // Three-way mode - name the next stop in the cycle\n return THEME_LABELS[THREE_WAY_NEXT[theme]];\n };\n\n const getCurrentIcon = () => {\n const iconClass = themeToggleIconVariants({ size });\n if (mode === 'three-way') {\n // The DEFAULT icon previews the next theme in the cycle, matching the\n // tooltip (previously dark showed a sun while the click gave system,\n // and system showed the current state instead of the next). The\n // lightIcon/darkIcon/systemIcon overrides are keyed by the CURRENT\n // theme — they replace the icon shown while in that theme.\n const override = {\n light: lightIcon,\n dark: darkIcon,\n system: systemIcon,\n }[theme];\n if (override) return override;\n const defaultIcons: Record<Theme, React.ReactNode> = {\n light: <SunIcon className={iconClass} />,\n dark: <MoonIcon className={iconClass} />,\n system: <SystemIcon className={iconClass} />,\n };\n return defaultIcons[THREE_WAY_NEXT[theme]];\n }\n\n // Two-way keeps the classic convention: sun while dark (\"click for\n // light\"), moon while light (\"click for dark\").\n if (resolvedTheme === 'dark') {\n return darkIcon || <SunIcon className={iconClass} />;\n }\n\n return lightIcon || <MoonIcon className={iconClass} />;\n };\n\n const label = getLabel();\n\n const button = (\n <button\n ref={ref}\n type=\"button\"\n aria-label={label}\n onClick={handleClick}\n className={cn(themeToggleVariants({ size, variant }), className)}\n {...props}\n >\n {getCurrentIcon()}\n </button>\n );\n\n if (showTooltip) {\n return (\n <Tooltip\n content={label}\n placement={tooltipPlacement}\n delay={tooltipDelay}\n >\n {button}\n </Tooltip>\n );\n }\n\n return button;\n }\n);\n\nThemeToggle.displayName = 'ThemeToggle';\n\nexport { ThemeToggle, themeToggleVariants, themeToggleIconVariants };\n"]}
1
+ {"version":3,"sources":["../src/components/ThemeProvider/ThemeProvider.tsx","../src/components/ThemeProvider/ThemeToggle.tsx"],"names":["React","useTheme","jsx","cva","React2","cn","Tooltip"],"mappings":"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","file":"chunk-KY67AMQ5.cjs","sourcesContent":["import * as React from 'react';\nimport { useTheme, type Theme, type ResolvedTheme } from '../../hooks/useTheme';\n\nexport interface ThemeProviderContextValue {\n theme: Theme;\n setTheme: (theme: Theme) => void;\n resolvedTheme: ResolvedTheme;\n}\n\nconst ThemeProviderContext = React.createContext<\n ThemeProviderContextValue | undefined\n>(undefined);\n\nexport interface ThemeProviderProps {\n children: React.ReactNode;\n /** Default theme to use on first load */\n defaultTheme?: Theme;\n /** Storage key for persisting theme */\n storageKey?: string;\n}\n\n/**\n * Provider component that wraps your app to enable theme switching.\n *\n * @example\n * ```tsx\n * function App() {\n * return (\n * <ThemeProvider defaultTheme=\"system\">\n * <YourApp />\n * </ThemeProvider>\n * );\n * }\n * ```\n */\nfunction ThemeProvider({\n children,\n defaultTheme: _defaultTheme = 'system',\n}: ThemeProviderProps) {\n const { theme, setTheme, resolvedTheme } = useTheme();\n\n const value = React.useMemo(\n () => ({ theme, setTheme, resolvedTheme }),\n [theme, setTheme, resolvedTheme]\n );\n\n return (\n <ThemeProviderContext.Provider value={value}>\n {children}\n </ThemeProviderContext.Provider>\n );\n}\n\nThemeProvider.displayName = 'ThemeProvider';\n\n/**\n * Hook to access the theme context.\n *\n * @example\n * ```tsx\n * function ThemeToggle() {\n * const { theme, setTheme, resolvedTheme } = useThemeContext();\n * return (\n * <button onClick={() => setTheme(resolvedTheme === 'dark' ? 'light' : 'dark')}>\n * Toggle theme\n * </button>\n * );\n * }\n * ```\n */\nfunction useThemeContext(): ThemeProviderContextValue {\n const context = React.useContext(ThemeProviderContext);\n if (!context) {\n throw new Error('useThemeContext must be used within a ThemeProvider');\n }\n return context;\n}\n\nexport { ThemeProvider, ThemeProviderContext, useThemeContext };\n","import * as React from 'react';\nimport { cva, type VariantProps } from 'class-variance-authority';\nimport { cn } from '../../utils/cn';\nimport { useTheme, type Theme } from '../../hooks/useTheme';\nimport { Tooltip } from '../Tooltip';\n\n// ============================================================================\n// Theme Toggle Variants\n// ============================================================================\n\nconst themeToggleVariants = cva(\n [\n 'inline-flex items-center justify-center',\n 'rounded-md border transition-colors',\n 'focus:outline-none focus:ring-2 focus:ring-primary-500/40',\n ],\n {\n variants: {\n size: {\n sm: 'h-7 w-7',\n md: 'h-8 w-8',\n lg: 'h-9 w-9',\n },\n variant: {\n default: [\n 'border-neutral-300 bg-white text-neutral-600 shadow-sm',\n 'hover:bg-neutral-100',\n 'dark:border-neutral-600 dark:bg-neutral-800 dark:text-neutral-300 dark:hover:bg-neutral-700',\n ],\n ghost: [\n 'border-transparent bg-transparent text-neutral-600',\n 'hover:bg-neutral-100',\n 'dark:text-neutral-300 dark:hover:bg-neutral-700',\n ],\n },\n },\n defaultVariants: {\n size: 'md',\n variant: 'default',\n },\n }\n);\n\nconst themeToggleIconVariants = cva('', {\n variants: {\n size: {\n sm: 'h-3.5 w-3.5',\n md: 'h-4 w-4',\n lg: 'h-5 w-5',\n },\n },\n defaultVariants: {\n size: 'md',\n },\n});\n\n// ============================================================================\n// Icon Components\n// ============================================================================\n\ninterface IconProps {\n className?: string;\n}\n\nconst SunIcon: React.FC<IconProps> = ({ className }) => (\n <svg\n className={className}\n fill=\"none\"\n viewBox=\"0 0 24 24\"\n stroke=\"currentColor\"\n strokeWidth={2}\n aria-hidden=\"true\"\n >\n <path\n strokeLinecap=\"round\"\n strokeLinejoin=\"round\"\n d=\"M12 3v1m0 16v1m9-9h-1M4 12H3m15.364 6.364l-.707-.707M6.343 6.343l-.707-.707m12.728 0l-.707.707M6.343 17.657l-.707.707M16 12a4 4 0 11-8 0 4 4 0 018 0z\"\n />\n </svg>\n);\n\nconst MoonIcon: React.FC<IconProps> = ({ className }) => (\n <svg\n className={className}\n fill=\"none\"\n viewBox=\"0 0 24 24\"\n stroke=\"currentColor\"\n strokeWidth={2}\n aria-hidden=\"true\"\n >\n <path\n strokeLinecap=\"round\"\n strokeLinejoin=\"round\"\n d=\"M20.354 15.354A9 9 0 018.646 3.646 9.003 9.003 0 0012 21a9.003 9.003 0 008.354-5.646z\"\n />\n </svg>\n);\n\nconst SystemIcon: React.FC<IconProps> = ({ className }) => (\n <svg\n className={className}\n fill=\"none\"\n viewBox=\"0 0 24 24\"\n stroke=\"currentColor\"\n strokeWidth={2}\n aria-hidden=\"true\"\n >\n <path\n strokeLinecap=\"round\"\n strokeLinejoin=\"round\"\n d=\"M9.75 17L9 20l-1 1h8l-1-1-.75-3M3 13h18M5 17h14a2 2 0 002-2V5a2 2 0 00-2-2H5a2 2 0 00-2 2v10a2 2 0 002 2z\"\n />\n </svg>\n);\n\n// ============================================================================\n// Three-way cycle (single source of truth)\n// ============================================================================\n\n/** The three-way cycle order: light → dark → system → light. Click handler,\n * tooltip label, and default icon are all derived from this one map. */\nconst THREE_WAY_NEXT: Record<Theme, Theme> = {\n light: 'dark',\n dark: 'system',\n system: 'light',\n};\n\nconst THEME_LABELS: Record<Theme, string> = {\n light: 'Switch to light mode',\n dark: 'Switch to dark mode',\n system: 'Switch to system theme',\n};\n\n// ============================================================================\n// ThemeToggle Component\n// ============================================================================\n\nexport interface ThemeToggleProps\n extends\n Omit<React.ButtonHTMLAttributes<HTMLButtonElement>, 'children'>,\n VariantProps<typeof themeToggleVariants> {\n /**\n * What themes to cycle through.\n * - 'two-way': Toggle between light and dark only\n * - 'three-way': Cycle through light → dark → system\n * @default 'two-way'\n */\n mode?: 'two-way' | 'three-way';\n /**\n * Whether to show a tooltip with the current/next theme\n * @default true\n */\n showTooltip?: boolean;\n /**\n * Tooltip placement\n * @default 'bottom'\n */\n tooltipPlacement?: 'top' | 'right' | 'bottom' | 'left';\n /**\n * Delay before showing tooltip in ms\n * @default 140\n */\n tooltipDelay?: number;\n /**\n * Custom icon for light theme\n */\n lightIcon?: React.ReactNode;\n /**\n * Custom icon for dark theme\n */\n darkIcon?: React.ReactNode;\n /**\n * Custom icon for system theme (only used in three-way mode)\n */\n systemIcon?: React.ReactNode;\n}\n\n/**\n * An accessible theme toggle button that switches between light/dark modes.\n *\n * Uses the mieweb-ui useTheme hook for state management and persists\n * the user's preference to localStorage.\n *\n * @example\n * ```tsx\n * // Simple two-way toggle (light/dark)\n * <ThemeToggle />\n *\n * // Three-way cycle (light → dark → system)\n * <ThemeToggle mode=\"three-way\" />\n *\n * // With custom styling\n * <ThemeToggle size=\"lg\" variant=\"ghost\" />\n *\n * // Without tooltip\n * <ThemeToggle showTooltip={false} />\n * ```\n */\nconst ThemeToggle = React.forwardRef<HTMLButtonElement, ThemeToggleProps>(\n (\n {\n className,\n size,\n variant,\n mode = 'two-way',\n showTooltip = true,\n tooltipPlacement = 'bottom',\n tooltipDelay = 140,\n lightIcon,\n darkIcon,\n systemIcon,\n ...props\n },\n ref\n ) => {\n const { theme, setTheme, resolvedTheme } = useTheme();\n\n const handleClick = React.useCallback(() => {\n if (mode === 'two-way') {\n // Simple toggle between light and dark\n setTheme(resolvedTheme === 'dark' ? 'light' : 'dark');\n } else {\n setTheme(THREE_WAY_NEXT[theme]);\n }\n }, [mode, theme, resolvedTheme, setTheme]);\n\n const getLabel = () => {\n if (mode === 'two-way') {\n return resolvedTheme === 'dark'\n ? 'Switch to light mode'\n : 'Switch to dark mode';\n }\n // Three-way mode - name the next stop in the cycle\n return THEME_LABELS[THREE_WAY_NEXT[theme]];\n };\n\n const getCurrentIcon = () => {\n const iconClass = themeToggleIconVariants({ size });\n if (mode === 'three-way') {\n // The DEFAULT icon previews the next theme in the cycle, matching the\n // tooltip (previously dark showed a sun while the click gave system,\n // and system showed the current state instead of the next). The\n // lightIcon/darkIcon/systemIcon overrides are keyed by the CURRENT\n // theme — they replace the icon shown while in that theme.\n const override = {\n light: lightIcon,\n dark: darkIcon,\n system: systemIcon,\n }[theme];\n if (override) return override;\n const defaultIcons: Record<Theme, React.ReactNode> = {\n light: <SunIcon className={iconClass} />,\n dark: <MoonIcon className={iconClass} />,\n system: <SystemIcon className={iconClass} />,\n };\n return defaultIcons[THREE_WAY_NEXT[theme]];\n }\n\n // Two-way keeps the classic convention: sun while dark (\"click for\n // light\"), moon while light (\"click for dark\").\n if (resolvedTheme === 'dark') {\n return darkIcon || <SunIcon className={iconClass} />;\n }\n\n return lightIcon || <MoonIcon className={iconClass} />;\n };\n\n const label = getLabel();\n\n const button = (\n <button\n ref={ref}\n type=\"button\"\n aria-label={label}\n onClick={handleClick}\n className={cn(themeToggleVariants({ size, variant }), className)}\n {...props}\n >\n {getCurrentIcon()}\n </button>\n );\n\n if (showTooltip) {\n return (\n <Tooltip\n content={label}\n placement={tooltipPlacement}\n delay={tooltipDelay}\n >\n {button}\n </Tooltip>\n );\n }\n\n return button;\n }\n);\n\nThemeToggle.displayName = 'ThemeToggle';\n\nexport { ThemeToggle, themeToggleVariants, themeToggleIconVariants };\n"]}
@@ -1,4 +1,4 @@
1
- import { notifyComposerMigrationOnce, DragDropZone, ChatComposer, DEFAULT_MAX_FILE_SIZE, DEFAULT_ACCEPTED_FILE_TYPES, CameraButton } from './chunk-TJ4GWQPM.js';
1
+ import { notifyComposerMigrationOnce, DragDropZone, ChatComposer, DEFAULT_MAX_FILE_SIZE, DEFAULT_ACCEPTED_FILE_TYPES, CameraButton } from './chunk-GJPCWR4C.js';
2
2
  import { cn } from './chunk-TQONQSJO.js';
3
3
  import * as React from 'react';
4
4
  import { cva } from 'class-variance-authority';
@@ -2043,5 +2043,5 @@ function MessagingSplitView({
2043
2043
  MessagingSplitView.displayName = "MessagingSplitView";
2044
2044
 
2045
2045
  export { AttachmentPreview, ConversationHeader, ConversationListItem, ConversationListSkeleton, DateSeparator, EmptyState, LightboxModal, LoadMoreButton, MessageBubble, MessageList, MessageStatusIcon, MessageThread, MessagingSplitView, ReadReceiptIndicator, SkeletonMessage, TypingIndicator, bubbleVariants, formatDateLabel, formatFileSize, formatLastSeen, getConversationSubtitle, getConversationTitle, groupMessagesByDate, headerVariants, isSameSenderGroup, useMessageScroll, useMessages, useReadReceipts, useTypingEmulation, useTypingIndicator };
2046
- //# sourceMappingURL=chunk-YZCM7CXK.js.map
2047
- //# sourceMappingURL=chunk-YZCM7CXK.js.map
2046
+ //# sourceMappingURL=chunk-NKG2UNXE.js.map
2047
+ //# sourceMappingURL=chunk-NKG2UNXE.js.map