{"version":3,"sources":["../src/toast.ts","../src/DevTools.tsx"],"names":["DEFAULT_DURATION","DEFAULT_POSITION","DEFAULT_THEME","DEFAULT_MAX_TOASTS","DEFAULT_ANIMATION","DEFAULT_STYLE","getSystemTheme","htmlEl","bodyEl","bodyStyles","htmlStyles","bgColor","rgb","error","getConfigValue","key","defaultValue","config","useToastStore","create","set","get","toast","toasts","maxToasts","plugins","activeTimers","pausedToasts","processedToast","plugin","result","mergedStyle","insertIndex","lowPriorityIndex","t","oldestToast","a","b","updatedToasts","existingTimer","timerId","state","id","shouldRemove","i","updatedToast","updated","newTimerId","newTimers","newPausedToasts","elapsed","remaining","theme","max","validatedMax","newEffectiveTheme","p","name","mediaQuerySetup","setupMediaQueryListener","darkModeQuery","iosDarkQuery","bodyObserver","generateId","iconStrings","createToast","options","toastOptions","globalClassName","globalStyle","createVariantToast","variant","component","promise","data","successOptions","errorOptions","existingToast","devTools","registerPlugin","unregisterPlugin","cleanup","toastDevTools","event","useState","useEffect","useCallback","useMemo","React","ToastDevTools","isOpen","setIsOpen","activeTab","setActiveTab","isMinimized","setIsMinimized","effectiveTheme","clearAllToasts","removeToast","pauseToast","resumeToast","setTheme","setMaxToasts","testConfig","setTestConfig","stats","byVariant","acc","byPosition","quickTests","jsxs","jsx","resolve","reject","createTestToast","handleKeyDown","e","prevOpen","getVariantStyle","stylesObj","isActive","isWarning","style","color","Fragment","tab","fn","prev"],"mappings":"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","file":"chunk-AANTHRRE.mjs","sourcesContent":["import { JSX } from 'react';\nimport { create } from 'zustand';\n\nexport type ToastPosition = \n  | 'top-right' \n  | 'top-center' \n  | 'top-left' \n  | 'bottom-right' \n  | 'bottom-center' \n  | 'bottom-left';\n\nexport type ToastVariant = 'success' | 'error' | 'info' | 'warning' | 'default' | 'custom' | 'loading';\nexport type ToastTheme = 'light' | 'dark' | 'system';\nexport type ToastAnimation = 'slide' | 'fade' | 'bounce' | 'flip' | 'zoom' | 'none';\nexport type ToastStyle = 'solid' | 'gradient' | 'glass' | 'shimmer' | 'pill' | 'neon' | 'retro' | 'confetti';\n\n// Enhanced progress bar styles\nexport type ProgressBarStyle = \n  | 'default'           // Standard progress bar\n  | 'fancy'             // Similar to react-toastify\n  | 'gradient-wave'     // Animated gradient that moves with the progress\n  | 'pulse'             // Pulsating progress bar\n  | 'particles'         // Small particles moving along the progress bar\n  | 'liquid'            // Fluid-like animation\n  | 'three-d'           // Progress bar with depth effect (renamed from '3d')\n  | 'dashed'            // Dashed/dotted line progress\n  | 'glow'              // Glowing effect that follows progress\n  | 'rainbow'           // Rainbow color animation\n  | 'data-flow'         // Digital data flow animation\n  | 'step-progress';    // Step-by-step completion indicators\n\n// Enhanced interface for custom animations\nexport interface CustomAnimation {\n  initial: Record<string, unknown>;\n  animate: Record<string, unknown>;\n  exit: Record<string, unknown>;\n  transition?: Record<string, unknown>;\n}\n\n// Plugin interface for extensibility\nexport interface ToastPlugin {\n  name: string;\n  description?: string;\n  beforeCreate?: (options: ToastOptions) => ToastOptions;\n  afterCreate?: (toast: Toast) => void;\n  beforeRemove?: (toast: Toast) => boolean;\n  afterRemove?: (toast: Toast) => void;\n}\n\nexport interface ToastOptions {\n  id?: string;\n  title?: string;\n  description?: string;\n  variant?: ToastVariant;\n  duration?: number;\n  position?: ToastPosition;\n  dismissible?: boolean;\n  pauseOnHover?: boolean;\n  dismissOnClick?: boolean;\n  theme?: ToastTheme;\n  icon?: JSX.Element;\n  component?: JSX.Element;\n  onDismiss?: (id: string) => void;\n  // Styling options\n  className?: string;\n  style?: React.CSSProperties;\n  animation?: ToastAnimation;\n  customAnimation?: CustomAnimation; // New: Support for custom animations\n  visualStyle?: ToastStyle;\n  progressBarStyle?: ProgressBarStyle;\n  progressBarColor?: string; // Custom color for progress bar\n  progressBarPosition?: 'top' | 'bottom' | 'left' | 'right'; // Position of progress bar\n  progressBarThickness?: number; // Thickness of progress bar in pixels\n  floating?: boolean;\n  emoji?: string;\n  rippleEffect?: boolean;\n  // New: Advanced options\n  stagger?: number; // Delay between multiple toasts\n  swipeToDismiss?: boolean; // Enable swipe to dismiss on mobile\n  priority?: 'low' | 'normal' | 'high'; // Toast priority\n  progressAnimation?: 'linear' | 'ease' | 'ease-in' | 'ease-out' | 'ease-in-out' | 'spring';\n}\n\n// Strict version for better type safety\nexport interface StrictToastOptions extends Omit<ToastOptions, 'variant' | 'position'> {\n  variant: ToastVariant;\n  position: ToastPosition;\n}\n\nexport interface Toast extends Required<Pick<ToastOptions, 'id' | 'variant' | 'position' | 'duration' | 'pauseOnHover' | 'dismissible' | 'dismissOnClick' | 'theme'>> {\n  title?: string;\n  description?: string;\n  icon?: JSX.Element;\n  component?: JSX.Element;\n  createdAt: number;\n  onDismiss?: (id: string) => void;\n  // Additional fields from options\n  className?: string;\n  style?: React.CSSProperties;\n  animation?: ToastAnimation;\n  customAnimation?: CustomAnimation;\n  visualStyle?: ToastStyle;\n  progressBarStyle?: ProgressBarStyle;\n  progressBarColor?: string;\n  progressBarPosition?: 'top' | 'bottom' | 'left' | 'right';\n  progressBarThickness?: number;\n  floating?: boolean;\n  emoji?: string;\n  rippleEffect?: boolean;\n  stagger?: number;\n  swipeToDismiss?: boolean;\n  priority?: 'low' | 'normal' | 'high';\n  progressAnimation?: 'linear' | 'ease' | 'ease-in' | 'ease-out' | 'ease-in-out' | 'spring';\n  // Internal properties\n  iconString?: string;\n  updating?: boolean;\n  timerId?: number; // Track timer for cleanup\n}\n\ninterface ToastState {\n  toasts: Toast[];\n  maxToasts: number;\n  theme: ToastTheme;\n  effectiveTheme: 'light' | 'dark';\n  pausedToasts: Set<string>;\n  activeTimers: Map<string, number>; // Track active timers\n  plugins: ToastPlugin[]; // Registered plugins\n  addToast: (toast: Toast) => string;\n  removeToast: (id: string) => void;\n  updateToast: (id: string, toast: Partial<Toast>) => void;\n  pauseToast: (id: string) => void;\n  resumeToast: (id: string) => void;\n  clearAllToasts: () => void;\n  setTheme: (theme: ToastTheme) => void;\n  setMaxToasts: (max: number) => void;\n  updateEffectiveTheme: () => void;\n  cleanup: () => void; // Cleanup function\n  registerPlugin: (plugin: ToastPlugin) => void;\n  unregisterPlugin: (name: string) => void;\n}\n\n// Default values\nconst DEFAULT_DURATION = 4000;\nconst DEFAULT_POSITION: ToastPosition = 'top-right';\nconst DEFAULT_THEME: ToastTheme = 'system';\nconst DEFAULT_MAX_TOASTS = 3;\nconst DEFAULT_ANIMATION: ToastAnimation = 'slide';\nconst DEFAULT_STYLE: ToastStyle = 'solid';\n// const DEFAULT_PROGRESS_STYLE: ProgressBarStyle = 'default';\n// const DEFAULT_PROGRESS_POSITION = 'bottom';\n// const DEFAULT_PROGRESS_THICKNESS = 3;\n// const DEFAULT_PROGRESS_ANIMATION = 'linear';\n\n// Enhanced system theme detection with better error handling and fallback\nconst getSystemTheme = (): 'light' | 'dark' => {\n  // Handle SSR\n  if (typeof window === 'undefined' || typeof window.matchMedia !== 'function') {\n    return 'light'; // Safe default for SSR\n  }\n\n  try {\n    // Try the standard media query first\n    const standardQuery = window.matchMedia('(prefers-color-scheme: dark)');\n    if (standardQuery.matches) return 'dark';\n\n    // Try alternative methods for older browsers or special cases\n    \n    // iOS/Safari specific detection\n    const iosDarkQuery = window.matchMedia('(-apple-system-interface-style: dark)');\n    if (iosDarkQuery.matches) return 'dark';\n\n    // Check for dark mode classes on html/body (common pattern)\n    const htmlEl = document.documentElement;\n    const bodyEl = document.body;\n    \n    if (\n      htmlEl?.classList.contains('dark') || \n      bodyEl?.classList.contains('dark') ||\n      htmlEl?.classList.contains('theme-dark') ||\n      bodyEl?.classList.contains('theme-dark') ||\n      htmlEl?.dataset.theme === 'dark' ||\n      bodyEl?.dataset.theme === 'dark'\n    ) {\n      return 'dark';\n    }\n    \n    // Check for CSS variables that might indicate dark mode\n    if (typeof window.getComputedStyle === 'function') {\n      const bodyStyles = window.getComputedStyle(document.body);\n      const htmlStyles = window.getComputedStyle(document.documentElement);\n      \n      const bgColor = bodyStyles.backgroundColor || htmlStyles.backgroundColor || '';\n      \n      // Simple heuristic: if background is dark, probably dark mode\n      if (bgColor) {\n        const rgb = bgColor.match(/\\d+/g)?.map(Number);\n        if (rgb && rgb.length >= 3) {\n          // Calculate luminance - if low, likely dark mode\n          const luminance = (0.299 * rgb[0] + 0.587 * rgb[1] + 0.114 * rgb[2]) / 255;\n          if (luminance < 0.5) return 'dark';\n        }\n      }\n    }\n    \n    // Default to light mode if all detection methods fail\n    return 'light';\n  } catch (error) {\n    console.warn('React Toast Kit: Error detecting system theme, falling back to light mode', error);\n    return 'light';\n  }\n};\n\n// Enhanced config value retrieval with validation\nconst getConfigValue = <T,>(key: string, defaultValue: T): T => {\n  if (typeof window === 'undefined') return defaultValue;\n  \n  try {\n    const config = (window as any).__TOAST_CONFIG__;\n    if (config && typeof config === 'object' && key in config) {\n      return config[key];\n    }\n  } catch (error) {\n    console.warn(`React Toast Kit: Failed to get config value for ${key}`, error);\n  }\n  \n  return defaultValue;\n};\n\n// Configuration validation\n// const validateConfig = (config: Record<string, unknown>): Record<string, unknown> => {\n//   if (config.maxToasts && typeof config.maxToasts === 'number' && config.maxToasts < 1) {\n//     console.warn('React Toast Kit: maxToasts should be at least 1, setting to 1');\n//     config.maxToasts = 1;\n//   }\n  \n//   if (config.defaultDuration && typeof config.defaultDuration === 'number' && config.defaultDuration < 0) {\n//     console.warn('React Toast Kit: defaultDuration should be positive, setting to 4000ms');\n//     config.defaultDuration = 4000;\n//   }\n  \n//   return config;\n// };\n\nexport const useToastStore = create<ToastState>((set, get) => ({\n  toasts: [],\n  maxToasts: DEFAULT_MAX_TOASTS,\n  theme: DEFAULT_THEME,\n  effectiveTheme: getSystemTheme(),\n  pausedToasts: new Set<string>(),\n  activeTimers: new Map<string, number>(),\n  plugins: [],\n  \n  addToast: (toast) => {\n    try {\n      const { toasts, maxToasts, plugins, activeTimers, pausedToasts } = get();\n      \n      // Create a complete Toast object with all required fields \n      // before passing to plugins (this fixes the TypeScript error)\n      let processedToast: Toast = toast;\n      \n      // Run beforeCreate plugins\n      plugins.forEach(plugin => {\n        if (plugin.beforeCreate) {\n          // Process the toast and ensure it still has all required properties\n          const result = plugin.beforeCreate(processedToast);\n          \n          // Safely merge styles\n          let mergedStyle: React.CSSProperties | undefined;\n          if (result.style || processedToast.style) {\n            mergedStyle = {\n              ...(processedToast.style || {}),\n              ...(result.style || {})\n            };\n          }\n          \n          // Create a new toast object with merged properties\n          processedToast = {\n            id: result.id || processedToast.id,\n            variant: result.variant || processedToast.variant,\n            position: result.position || processedToast.position,\n            duration: result.duration !== undefined ? result.duration : processedToast.duration,\n            pauseOnHover: result.pauseOnHover !== undefined ? result.pauseOnHover : processedToast.pauseOnHover,\n            dismissible: result.dismissible !== undefined ? result.dismissible : processedToast.dismissible,\n            dismissOnClick: result.dismissOnClick !== undefined ? result.dismissOnClick : processedToast.dismissOnClick,\n            theme: result.theme || processedToast.theme,\n            createdAt: processedToast.createdAt,\n            title: result.title || processedToast.title,\n            description: result.description || processedToast.description,\n            icon: result.icon || processedToast.icon,\n            component: result.component || processedToast.component,\n            onDismiss: result.onDismiss || processedToast.onDismiss,\n            className: result.className || processedToast.className,\n            style: mergedStyle,\n            animation: result.animation || processedToast.animation,\n            customAnimation: result.customAnimation || processedToast.customAnimation,\n            visualStyle: result.visualStyle || processedToast.visualStyle,\n            progressBarStyle: result.progressBarStyle || processedToast.progressBarStyle,\n            progressBarColor: result.progressBarColor || processedToast.progressBarColor,\n            progressBarPosition: result.progressBarPosition || processedToast.progressBarPosition,\n            progressBarThickness: result.progressBarThickness || processedToast.progressBarThickness,\n            floating: result.floating !== undefined ? result.floating : processedToast.floating,\n            emoji: result.emoji || processedToast.emoji,\n            rippleEffect: result.rippleEffect !== undefined ? result.rippleEffect : processedToast.rippleEffect,\n            stagger: result.stagger !== undefined ? result.stagger : processedToast.stagger,\n            swipeToDismiss: result.swipeToDismiss !== undefined ? result.swipeToDismiss : processedToast.swipeToDismiss,\n            priority: result.priority || processedToast.priority,\n            progressAnimation: result.progressAnimation || processedToast.progressAnimation,\n            iconString: processedToast.iconString,\n            updating: processedToast.updating,\n            timerId: processedToast.timerId,\n          };\n        }\n      });\n      \n      // Priority-based insertion\n      let insertIndex = toasts.length;\n      if (processedToast.priority === 'high') {\n        insertIndex = 0;\n      } else if (processedToast.priority === 'normal') {\n        // Find the first low priority toast\n        const lowPriorityIndex = toasts.findIndex(t => t.priority === 'low');\n        if (lowPriorityIndex !== -1) {\n          insertIndex = lowPriorityIndex;\n        }\n      }\n      \n      // Remove oldest if at capacity\n      if (toasts.length >= maxToasts) {\n        // Find the oldest toast that isn't the current one\n        const oldestToast = [...toasts]\n          .sort((a, b) => a.createdAt - b.createdAt)\n          .find(t => t.id !== processedToast.id);\n          \n        if (oldestToast) {\n          get().removeToast(oldestToast.id);\n        }\n      }\n      \n      // Add toast to state\n      const updatedToasts = [...toasts];\n      updatedToasts.splice(insertIndex, 0, processedToast);\n      set({ toasts: updatedToasts });\n      \n      // Set up timer for auto-dismiss if duration is set and toast is not paused\n      if (processedToast.duration && processedToast.duration > 0 && !pausedToasts.has(processedToast.id)) {\n        // Clear any existing timer for this toast\n        const existingTimer = activeTimers.get(processedToast.id);\n        if (existingTimer) {\n          clearTimeout(existingTimer);\n        }\n        \n        // Create new timer\n        const timerId = window.setTimeout(() => {\n          get().removeToast(processedToast.id);\n        }, processedToast.duration) as unknown as number;\n        \n        // Store timer reference\n        set(state => ({\n          activeTimers: new Map(state.activeTimers).set(processedToast.id, timerId)\n        }));\n      }\n      \n      // Run afterCreate plugins\n      plugins.forEach(plugin => {\n        if (plugin.afterCreate) {\n          plugin.afterCreate(processedToast);\n        }\n      });\n      \n      // Add stagger delay if specified\n      if (processedToast.stagger && processedToast.stagger > 0) {\n        setTimeout(() => {\n          // Returning ID after stagger\n        }, processedToast.stagger);\n      }\n      \n      return processedToast.id;\n    } catch (error) {\n      console.error('React Toast Kit: Failed to add toast', error);\n      return '';\n    }\n  },\n  \n  removeToast: (id) => {\n    try {\n      const { toasts, plugins, activeTimers } = get();\n      const toast = toasts.find(t => t.id === id);\n      \n      if (!toast) return;\n      \n      // Run beforeRemove plugins\n      let shouldRemove = true;\n      plugins.forEach(plugin => {\n        if (plugin.beforeRemove && plugin.beforeRemove(toast) === false) {\n          shouldRemove = false;\n        }\n      });\n      \n      if (!shouldRemove) return;\n      \n      // Clear timer if exists\n      const timerId = activeTimers.get(id);\n      if (timerId) {\n        clearTimeout(timerId);\n      }\n      \n      // Call onDismiss handler\n      if (toast.onDismiss) {\n        toast.onDismiss(id);\n      }\n      \n      set((state) => ({ \n        toasts: state.toasts.filter((t) => t.id !== id),\n        pausedToasts: new Set([...state.pausedToasts].filter(i => i !== id)),\n        activeTimers: new Map([...state.activeTimers].filter(([key]) => key !== id))\n      }));\n      \n      // Run afterRemove plugins\n      plugins.forEach(plugin => {\n        if (plugin.afterRemove) {\n          plugin.afterRemove(toast);\n        }\n      });\n    } catch (error) {\n      console.error('React Toast Kit: Failed to remove toast', error);\n    }\n  },\n  \n  updateToast: (id, updatedToast) => {\n    try {\n      const { activeTimers } = get();\n      // Update the toast in state\n      set((state) => ({\n        toasts: state.toasts.map((t) => {\n          if (t.id === id) {\n            const updated = { ...t, ...updatedToast, updating: true };\n            \n            // If duration changed and there's an active timer, reset it\n            if (updatedToast.duration !== undefined && updated.duration !== t.duration) {\n              // Clear existing timer\n              const existingTimer = activeTimers.get(id);\n              if (existingTimer) {\n                clearTimeout(existingTimer);\n              }\n              \n              // Set up new timer if duration is positive and toast isn't paused\n              if (updated.duration > 0 && !state.pausedToasts.has(id)) {\n                const newTimerId = window.setTimeout(() => {\n                  get().removeToast(id);\n                }, updated.duration) as unknown as number;\n                \n                // Update the timer map after the state update completes\n                setTimeout(() => {\n                  set(state => ({\n                    activeTimers: new Map(state.activeTimers).set(id, newTimerId)\n                  }));\n                }, 0);\n              }\n            }\n            \n            return updated;\n          }\n          return t;\n        })\n      }));\n      \n      // Clear updating flag after animation\n      setTimeout(() => {\n        set((state) => ({\n          toasts: state.toasts.map((t) => \n            t.id === id ? { ...t, updating: false } : t\n          )\n        }));\n      }, 100);\n    } catch (error) {\n      console.error('React Toast Kit: Failed to update toast', error);\n    }\n  },\n  \n  pauseToast: (id) => {\n    const { activeTimers } = get();\n    // Clear the existing timer if there is one\n    const existingTimer = activeTimers.get(id);\n    if (existingTimer) {\n      clearTimeout(existingTimer);\n      \n      // Update active timers map to remove this timer\n      set(state => {\n        const newTimers = new Map(state.activeTimers);\n        newTimers.delete(id);\n        return { activeTimers: newTimers };\n      });\n    }\n    \n    set((state) => ({\n      pausedToasts: new Set(state.pausedToasts).add(id)\n    }));\n  },\n  \n  resumeToast: (id) => {\n    const { toasts } = get();\n    // Remove from paused set\n    set((state) => {\n      const newPausedToasts = new Set(state.pausedToasts);\n      newPausedToasts.delete(id);\n      return { pausedToasts: newPausedToasts };\n    });\n    \n    // Restart the timer if toast has a duration\n    const toast = toasts.find(t => t.id === id);\n    if (toast && toast.duration && toast.duration > 0) {\n      // Calculate remaining time based on creation time and elapsed time\n      const elapsed = Date.now() - toast.createdAt;\n      const remaining = Math.max(0, toast.duration - elapsed);\n      \n      // Create new timer with remaining time\n      const timerId = window.setTimeout(() => {\n        get().removeToast(id);\n      }, remaining) as unknown as number;\n      \n      // Store timer reference\n      set(state => ({\n        activeTimers: new Map(state.activeTimers).set(id, timerId)\n      }));\n    }\n  },\n  \n  clearAllToasts: () => {\n    try {\n      const { toasts, activeTimers } = get();\n      \n      // Clear all timers\n      activeTimers.forEach(timerId => clearTimeout(timerId));\n      \n      // Call onDismiss handlers\n      toasts.forEach(toast => {\n        if (toast.onDismiss) {\n          toast.onDismiss(toast.id);\n        }\n      });\n      \n      set({ \n        toasts: [], \n        pausedToasts: new Set(),\n        activeTimers: new Map()\n      });\n    } catch (error) {\n      console.error('React Toast Kit: Failed to clear all toasts', error);\n    }\n  },\n  \n  setTheme: (theme) => {\n    set({ theme });\n    get().updateEffectiveTheme();\n  },\n  \n  setMaxToasts: (max) => {\n    const validatedMax = Math.max(1, max); // Ensure at least 1\n    set({ maxToasts: validatedMax });\n  },\n  \n  updateEffectiveTheme: () => {\n    const { theme } = get();\n    \n    let newEffectiveTheme: 'light' | 'dark';\n    \n    if (theme === 'system') {\n      newEffectiveTheme = getSystemTheme();\n    } else {\n      newEffectiveTheme = theme as 'light' | 'dark';\n    }\n    \n    set({ effectiveTheme: newEffectiveTheme });\n  },\n  \n  cleanup: () => {\n    try {\n      const { activeTimers, toasts } = get();\n      \n      // Clear all active timers\n      activeTimers.forEach(timerId => clearTimeout(timerId));\n      \n      // Call onDismiss for all toasts\n      toasts.forEach(toast => {\n        if (toast.onDismiss) {\n          toast.onDismiss(toast.id);\n        }\n      });\n      \n      set({ \n        toasts: [], \n        pausedToasts: new Set(),\n        activeTimers: new Map()\n      });\n    } catch (error) {\n      console.error('React Toast Kit: Failed to cleanup', error);\n    }\n  },\n  \n  registerPlugin: (plugin) => {\n    try {\n      set((state) => ({\n        plugins: [...state.plugins.filter(p => p.name !== plugin.name), plugin]\n      }));\n    } catch (error) {\n      console.error('React Toast Kit: Failed to register plugin', error);\n    }\n  },\n  \n  unregisterPlugin: (name) => {\n    try {\n      set((state) => ({\n        plugins: state.plugins.filter(p => p.name !== name)\n      }));\n    } catch (error) {\n      console.error('React Toast Kit: Failed to unregister plugin', error);\n    }\n  }\n}));\n\n// Setup media query listener in a safe way that doesn't interfere with React hooks\nlet mediaQuerySetup = false;\n\nconst setupMediaQueryListener = () => {\n  if (mediaQuerySetup || typeof window === 'undefined' || typeof window.matchMedia !== 'function') {\n    return;\n  }\n  \n  try {\n    const darkModeQuery = window.matchMedia('(prefers-color-scheme: dark)');\n    \n    // Modern browsers\n    if (typeof darkModeQuery.addEventListener === 'function') {\n      darkModeQuery.addEventListener('change', () => {\n        const { theme } = useToastStore.getState();\n        if (theme === 'system') {\n          useToastStore.getState().updateEffectiveTheme();\n        }\n      });\n    } \n    // Older browsers\n    else if (typeof darkModeQuery.addListener === 'function') {\n      darkModeQuery.addListener(() => {\n        const { theme } = useToastStore.getState();\n        if (theme === 'system') {\n          useToastStore.getState().updateEffectiveTheme();\n        }\n      });\n    }\n    \n    // Handle iOS Safari\n    try {\n      const iosDarkQuery = window.matchMedia('(-apple-system-interface-style: dark)');\n      if (typeof iosDarkQuery.addEventListener === 'function') {\n        iosDarkQuery.addEventListener('change', () => {\n          const { theme } = useToastStore.getState();\n          if (theme === 'system') {\n            useToastStore.getState().updateEffectiveTheme();\n          }\n        });\n      }\n    } catch (e) {\n      // iOS query not supported, ignore\n    }\n    \n    // Watch for class changes on html/body\n    if (typeof MutationObserver === 'function') {\n      const htmlObserver = new MutationObserver(() => {\n        const { theme } = useToastStore.getState();\n        if (theme === 'system') {\n          useToastStore.getState().updateEffectiveTheme();\n        }\n      });\n      \n      htmlObserver.observe(document.documentElement, {\n        attributes: true,\n        attributeFilter: ['class', 'data-theme']\n      });\n      \n      const bodyObserver = new MutationObserver(() => {\n        const { theme } = useToastStore.getState();\n        if (theme === 'system') {\n          useToastStore.getState().updateEffectiveTheme();\n        }\n      });\n      \n      if (document.body) {\n        bodyObserver.observe(document.body, {\n          attributes: true,\n          attributeFilter: ['class', 'data-theme']\n        });\n      }\n    }\n    \n    mediaQuerySetup = true;\n  } catch (error) {\n    console.warn('React Toast Kit: Error setting up theme change listeners', error);\n  }\n};\n\n// Only setup when needed, not at module level\nif (typeof window !== 'undefined' && typeof document !== 'undefined') {\n  // Wait for DOM to be ready\n  if (document.readyState === 'loading') {\n    document.addEventListener('DOMContentLoaded', setupMediaQueryListener);\n  } else {\n    setupMediaQueryListener();\n  }\n  \n  // Initialize effective theme\n  useToastStore.getState().updateEffectiveTheme();\n}\n\nconst generateId = () => Math.random().toString(36).substring(2, 9);\n\n// Enhanced icon strings with better SVG structure\nconst iconStrings = {\n  success: `<svg width=\"20\" height=\"20\" viewBox=\"0 0 20 20\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\" role=\"img\" aria-label=\"Success\">\n    <path d=\"M10 18.3333C14.6024 18.3333 18.3334 14.6023 18.3334 9.99996C18.3334 5.39759 14.6024 1.66663 10 1.66663C5.39765 1.66663 1.66669 5.39759 1.66669 9.99996C1.66669 14.6023 5.39765 18.3333 10 18.3333Z\" stroke=\"currentColor\" stroke-width=\"1.5\" stroke-linecap=\"round\" stroke-linejoin=\"round\"/>\n    <path d=\"M6.66669 10L9.16669 12.5L13.3334 7.5\" stroke=\"currentColor\" stroke-width=\"1.5\" stroke-linecap=\"round\" stroke-linejoin=\"round\"/>\n  </svg>`,\n  error: `<svg width=\"20\" height=\"20\" viewBox=\"0 0 20 20\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\" role=\"img\" aria-label=\"Error\">\n    <path d=\"M10 18.3333C14.6024 18.3333 18.3334 14.6023 18.3334 9.99996C18.3334 5.39759 14.6024 1.66663 10 1.66663C5.39765 1.66663 1.66669 5.39759 1.66669 9.99996C1.66669 14.6023 5.39765 18.3333 10 18.3333Z\" stroke=\"currentColor\" stroke-width=\"1.5\" stroke-linecap=\"round\" stroke-linejoin=\"round\"/>\n    <path d=\"M12.5 7.5L7.5 12.5\" stroke=\"currentColor\" stroke-width=\"1.5\" stroke-linecap=\"round\" stroke-linejoin=\"round\"/>\n    <path d=\"M7.5 7.5L12.5 12.5\" stroke=\"currentColor\" stroke-width=\"1.5\" stroke-linecap=\"round\" stroke-linejoin=\"round\"/>\n  </svg>`,\n  warning: `<svg width=\"20\" height=\"20\" viewBox=\"0 0 20 20\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\" role=\"img\" aria-label=\"Warning\">\n    <path d=\"M8.57465 3.21667L1.51632 15C1.37079 15.2589 1.29379 15.5503 1.29298 15.8469C1.29216 16.1434 1.36756 16.4353 1.51175 16.6951C1.65593 16.9548 1.86359 17.1738 2.11656 17.3309C2.36954 17.4879 2.65908 17.5778 2.95548 17.5917H17.0721C17.3685 17.5778 17.6581 17.4879 17.9111 17.3309C18.164 17.1738 18.3717 16.9548 18.5159 16.6951C18.6601 16.4353 18.7355 16.1434 18.7347 15.8469C18.7339 15.5503 18.6569 15.2589 18.5113 15L11.453 3.21667C11.3018 2.96735 11.0893 2.7609 10.8353 2.61224C10.5813 2.46357 10.294 2.3779 10.0005 2.3646C9.7069 2.37798 9.41956 2.46374 9.16556 2.61247C8.91156 2.76121 8.69907 2.96773 8.54798 3.21708L8.57465 3.21667Z\" stroke=\"currentColor\" stroke-width=\"1.5\" stroke-linecap=\"round\" stroke-linejoin=\"round\"/>\n    <path d=\"M10 7.5V10.8333\" stroke=\"currentColor\" stroke-width=\"1.5\" stroke-linecap=\"round\" stroke-linejoin=\"round\"/>\n    <path d=\"M10 14.1667H10.0083\" stroke=\"currentColor\" stroke-width=\"2\" stroke-linecap=\"round\" stroke-linejoin=\"round\"/>\n  </svg>`,\n  info: `<svg width=\"20\" height=\"20\" viewBox=\"0 0 20 20\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\" role=\"img\" aria-label=\"Info\">\n    <path d=\"M10 18.3333C14.6024 18.3333 18.3334 14.6023 18.3334 9.99996C18.3334 5.39759 14.6024 1.66663 10 1.66663C5.39765 1.66663 1.66669 5.39759 1.66669 9.99996C1.66669 14.6023 5.39765 18.3333 10 18.3333Z\" stroke=\"currentColor\" stroke-width=\"1.5\" stroke-linecap=\"round\" stroke-linejoin=\"round\"/>\n    <path d=\"M10 13.3333V10\" stroke=\"currentColor\" stroke-width=\"1.5\" stroke-linecap=\"round\" stroke-linejoin=\"round\"/>\n    <path d=\"M10 6.66663H10.0083\" stroke=\"currentColor\" stroke-width=\"1.5\" stroke-linecap=\"round\" stroke-linejoin=\"round\"/>\n  </svg>`,\n  default: `<svg width=\"20\" height=\"20\" viewBox=\"0 0 20 20\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\" role=\"img\" aria-label=\"Notification\">\n    <path d=\"M18.3334 10C18.3334 14.6024 14.6024 18.3333 10 18.3333C5.39765 18.3333 1.66669 14.6024 1.66669 10C1.66669 5.39763 5.39765 1.66667 10 1.66667C14.6024 1.66667 18.3334 5.39763 18.3334 10Z\" stroke=\"currentColor\" stroke-width=\"1.5\" stroke-linecap=\"round\" stroke-linejoin=\"round\"/>\n    <path d=\"M10 6.66667V10\" stroke=\"currentColor\" stroke-width=\"1.5\" stroke-linecap=\"round\" stroke-linejoin=\"round\"/>\n    <path d=\"M10 13.3333H10.0083\" stroke=\"currentColor\" stroke-width=\"1.5\" stroke-linecap=\"round\" stroke-linejoin=\"round\"/>\n  </svg>`,\n  loading: `<svg width=\"20\" height=\"20\" viewBox=\"0 0 20 20\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\" class=\"animate-spin\" role=\"img\" aria-label=\"Loading\">\n    <path d=\"M10 3.33337V5.00004\" stroke=\"currentColor\" stroke-width=\"1.5\" stroke-linecap=\"round\" stroke-linejoin=\"round\"/>\n    <path d=\"M10 15V16.6667\" stroke=\"currentColor\" stroke-width=\"1.5\" stroke-linecap=\"round\" stroke-linejoin=\"round\"/>\n    <path d=\"M4.1084 4.1084L5.2834 5.28257\" stroke=\"currentColor\" stroke-width=\"1.5\" stroke-linecap=\"round\" stroke-linejoin=\"round\"/>\n    <path d=\"M14.7166 14.7167L15.8916 15.8917\" stroke=\"currentColor\" stroke-width=\"1.5\" stroke-linecap=\"round\" stroke-linejoin=\"round\"/>\n    <path d=\"M3.33337 10H5.00004\" stroke=\"currentColor\" stroke-width=\"1.5\" stroke-linecap=\"round\" stroke-linejoin=\"round\"/>\n    <path d=\"M15 10H16.6667\" stroke=\"currentColor\" stroke-width=\"1.5\" stroke-linecap=\"round\" stroke-linejoin=\"round\"/>\n    <path d=\"M4.1084 15.8917L5.2834 14.7167\" stroke=\"currentColor\" stroke-width=\"1.5\" stroke-linecap=\"round\" stroke-linejoin=\"round\"/>\n    <path d=\"M14.7166 5.28257L15.8916 4.1084\" stroke=\"currentColor\" stroke-width=\"1.5\" stroke-linecap=\"round\" stroke-linejoin=\"round\"/>\n  </svg>`,\n};\n\n// Enhanced toast creation with better error handling\nconst createToast = (options: ToastOptions | string): string => {\n  try {\n    let toastOptions: ToastOptions;\n    \n    if (typeof options === 'string') {\n      toastOptions = { \n        description: options,\n        // Apply defaults from provider\n        duration: getConfigValue('defaultDuration', DEFAULT_DURATION),\n        dismissible: getConfigValue('defaultDismissible', true),\n        pauseOnHover: getConfigValue('defaultPauseOnHover', true),\n        dismissOnClick: getConfigValue('defaultDismissOnClick', false),\n        animation: getConfigValue('defaultAnimation', DEFAULT_ANIMATION),\n        visualStyle: getConfigValue('defaultStyle', DEFAULT_STYLE),\n        progressBarStyle: getConfigValue('defaultProgressBarStyle', undefined),\n        progressBarColor: getConfigValue('defaultProgressBarColor', undefined),\n        progressBarPosition: getConfigValue('defaultProgressBarPosition', 'bottom'),\n        progressBarThickness: getConfigValue('defaultProgressBarThickness', 3),\n        progressAnimation: getConfigValue('defaultProgressAnimation', 'linear'),\n        floating: getConfigValue('defaultFloating', false),\n        rippleEffect: getConfigValue('defaultRippleEffect', false),\n        swipeToDismiss: getConfigValue('defaultSwipeToDismiss', false),\n        priority: getConfigValue('defaultPriority', 'normal'),\n        stagger: getConfigValue('defaultStagger', 0),\n      };\n    } else {\n      toastOptions = {\n        // Apply defaults first, then override with provided options\n        duration: getConfigValue('defaultDuration', DEFAULT_DURATION),\n        dismissible: getConfigValue('defaultDismissible', true),\n        pauseOnHover: getConfigValue('defaultPauseOnHover', true),\n        dismissOnClick: getConfigValue('defaultDismissOnClick', false),\n        animation: getConfigValue('defaultAnimation', DEFAULT_ANIMATION),\n        visualStyle: getConfigValue('defaultStyle', DEFAULT_STYLE),\n        progressBarStyle: getConfigValue('defaultProgressBarStyle', undefined),\n        progressBarColor: getConfigValue('defaultProgressBarColor', undefined),\n        progressBarPosition: getConfigValue('defaultProgressBarPosition', 'bottom'),\n        progressBarThickness: getConfigValue('defaultProgressBarThickness', 3),\n        progressAnimation: getConfigValue('defaultProgressAnimation', 'linear'),\n        floating: getConfigValue('defaultFloating', false),\n        rippleEffect: getConfigValue('defaultRippleEffect', false),\n        swipeToDismiss: getConfigValue('defaultSwipeToDismiss', false),\n        priority: getConfigValue('defaultPriority', 'normal'),\n        stagger: getConfigValue('defaultStagger', 0),\n        ...options, // User options override defaults\n      };\n    }\n\n    // Apply global styles if configured\n    const globalClassName = getConfigValue('globalClassName', undefined);\n    const globalStyle = getConfigValue('globalStyle', undefined);\n    \n    if (globalClassName) {\n      toastOptions.className = toastOptions.className \n        ? `${globalClassName} ${toastOptions.className}`\n        : globalClassName;\n    }\n    \n    if (globalStyle && typeof globalStyle === 'object') {\n      toastOptions.style = {\n        ...(globalStyle as React.CSSProperties),\n        ...(toastOptions.style || {}),\n      };\n    }\n\n    const toast: Toast = {\n      id: toastOptions.id || generateId(),\n      variant: toastOptions.variant || 'default',\n      position: toastOptions.position || DEFAULT_POSITION,\n      duration: toastOptions.duration !== undefined ? toastOptions.duration : DEFAULT_DURATION,\n      pauseOnHover: toastOptions.pauseOnHover !== undefined ? toastOptions.pauseOnHover : true,\n      dismissible: toastOptions.dismissible !== undefined ? toastOptions.dismissible : true,\n      dismissOnClick: toastOptions.dismissOnClick !== undefined ? toastOptions.dismissOnClick : false,\n      theme: toastOptions.theme || DEFAULT_THEME,\n      title: toastOptions.title,\n      description: toastOptions.description,\n      icon: toastOptions.icon,\n      component: toastOptions.component,\n      createdAt: Date.now(),\n      onDismiss: toastOptions.onDismiss,\n      className: toastOptions.className,\n      style: toastOptions.style,\n      animation: toastOptions.animation,\n      customAnimation: toastOptions.customAnimation,\n      visualStyle: toastOptions.visualStyle,\n      progressBarStyle: toastOptions.progressBarStyle,\n      progressBarColor: toastOptions.progressBarColor,\n      progressBarPosition: toastOptions.progressBarPosition,\n      progressBarThickness: toastOptions.progressBarThickness,\n      floating: toastOptions.floating,\n      emoji: toastOptions.emoji,\n      rippleEffect: toastOptions.rippleEffect,\n      stagger: toastOptions.stagger,\n      swipeToDismiss: toastOptions.swipeToDismiss,\n      priority: toastOptions.priority,\n      progressAnimation: toastOptions.progressAnimation,\n    };\n\n    // Add icon string if variant has one and no custom icon provided\n    if (!toast.icon && !toast.emoji && toast.variant && toast.variant in iconStrings) {\n      toast.iconString = iconStrings[toast.variant as keyof typeof iconStrings];\n    }\n\n    return useToastStore.getState().addToast(toast);\n  } catch (error) {\n    console.error('React Toast Kit: Failed to create toast', error);\n    return '';\n  }\n};\n\n// Enhanced type definitions for function overloads\ntype ToastHandler = {\n  (message: string): string;\n  (options: ToastOptions): string;\n  success: (options: ToastOptions | string) => string;\n  error: (options: ToastOptions | string) => string;\n  warning: (options: ToastOptions | string) => string;\n  info: (options: ToastOptions | string) => string;\n  loading: (options: ToastOptions | string) => string;\n  custom: (component: JSX.Element, options?: Omit<ToastOptions, 'component'>) => string;\n  promise: <T>(\n    promise: Promise<T>,\n    options: {\n      loading: ToastOptions | string;\n      success: ((data: T) => ToastOptions | string) | ToastOptions | string;\n      error: ((error: unknown) => ToastOptions | string) | ToastOptions | string;\n    }\n  ) => Promise<T>;\n  update: (id: string, options: Partial<ToastOptions>) => void;\n  dismiss: (id?: string) => void;\n  clearAll: () => void;\n};\n\nconst createVariantToast = (variant: ToastVariant) => (options: ToastOptions | string): string => {\n  const toastOptions = typeof options === 'string' ? { description: options } : options;\n  return createToast({ ...toastOptions, variant });\n};\n\nexport const toast = ((options: ToastOptions | string) => createToast(options)) as ToastHandler;\n\ntoast.success = createVariantToast('success');\ntoast.error = createVariantToast('error');\ntoast.warning = createVariantToast('warning');\ntoast.info = createVariantToast('info');\ntoast.loading = createVariantToast('loading');\n\ntoast.custom = (component: JSX.Element, options: Omit<ToastOptions, 'component'> = {}) => {\n  return createToast({ ...options, component, variant: 'custom' });\n};\n\n// Enhanced promise handler with better error handling\ntoast.promise = async <T>(\n  promise: Promise<T>,\n  options: {\n    loading: ToastOptions | string;\n    success: ((data: T) => ToastOptions | string) | ToastOptions | string;\n    error: ((error: unknown) => ToastOptions | string) | ToastOptions | string;\n  }\n): Promise<T> => {\n  const id = createToast({\n    ...((typeof options.loading === 'string') ? { description: options.loading } : options.loading),\n    variant: 'loading',\n    duration: 0,\n  });\n  \n  try {\n    const data = await promise;\n    \n    let successOptions: ToastOptions | string;\n    if (typeof options.success === 'function') {\n      successOptions = options.success(data);\n    } else {\n      successOptions = options.success;\n    }\n    \n    toast.update(\n      id,\n      typeof successOptions === 'string' \n        ? { description: successOptions, variant: 'success', duration: DEFAULT_DURATION } \n        : { ...successOptions, variant: 'success', duration: successOptions.duration || DEFAULT_DURATION }\n    );\n    \n    return data;\n  } catch (error) {\n    let errorOptions: ToastOptions | string;\n    if (typeof options.error === 'function') {\n      errorOptions = options.error(error);\n    } else {\n      errorOptions = options.error;\n    }\n    \n    toast.update(\n      id,\n      typeof errorOptions === 'string' \n        ? { description: errorOptions, variant: 'error', duration: DEFAULT_DURATION } \n        : { ...errorOptions, variant: 'error', duration: errorOptions.duration || DEFAULT_DURATION }\n    );\n    \n    throw error;\n  }\n};\n\ntoast.update = (id: string, options: Partial<ToastOptions>) => {\n  try {\n    const existingToast = useToastStore.getState().toasts.find(t => t.id === id);\n    if (existingToast && existingToast.variant === 'loading' && options.variant && options.variant !== 'loading' && !options.duration) {\n      options.duration = DEFAULT_DURATION;\n    }\n    \n    useToastStore.getState().updateToast(id, options as Partial<Toast>);\n  } catch (error) {\n    console.error('React Toast Kit: Failed to update toast', error);\n  }\n};\n\ntoast.dismiss = (id?: string) => {\n  try {\n    if (id) {\n      useToastStore.getState().removeToast(id);\n    } else {\n      useToastStore.getState().clearAllToasts();\n    }\n  } catch (error) {\n    console.error('React Toast Kit: Failed to dismiss toast', error);\n  }\n};\n\ntoast.clearAll = () => {\n  try {\n    useToastStore.getState().clearAllToasts();\n  } catch (error) {\n    console.error('React Toast Kit: Failed to clear all toasts', error);\n  }\n};\n\n// Development tools (only available in development)\ntype DevTools = {\n  getActiveToasts: () => Toast[];\n  clearAll: () => void;\n  debugInfo: () => void;\n  getStore: () => ToastState;\n  simulateError: () => void;\n  simulateSuccess: () => void;\n};\n\n// Development tools (only available in development)\nconst devTools = typeof process !== 'undefined' && process.env.NODE_ENV === 'development' ? {\n  getActiveToasts: () => useToastStore.getState().toasts,\n  clearAll: () => useToastStore.getState().clearAllToasts(),\n  debugInfo: () => {\n    const state = useToastStore.getState();\n    console.group('React Toast Kit Debug Info');\n    console.table(state.toasts.map(t => ({\n      id: t.id,\n      variant: t.variant,\n      position: t.position,\n      duration: t.duration,\n      priority: t.priority,\n      createdAt: new Date(t.createdAt).toLocaleTimeString()\n    })));\n    console.log('Theme:', state.theme, '| Effective:', state.effectiveTheme);\n    console.log('Paused toasts:', Array.from(state.pausedToasts));\n    console.log('Active timers:', state.activeTimers.size);\n    console.log('Registered plugins:', state.plugins.map(p => p.name));\n    console.groupEnd();\n  },\n  getStore: () => useToastStore.getState(),\n  simulateError: () => {\n    toast.error('This is a test error toast for debugging');\n  },\n  simulateSuccess: () => {\n    toast.success('This is a test success toast for debugging');\n  }\n} as DevTools : {} as DevTools;\n\n// Plugin registration helpers\nexport const registerPlugin = (plugin: ToastPlugin) => {\n  useToastStore.getState().registerPlugin(plugin);\n};\n\nexport const unregisterPlugin = (name: string) => {\n  useToastStore.getState().unregisterPlugin(name);\n};\n\n// Cleanup function for applications\nexport const cleanup = () => {\n  useToastStore.getState().cleanup();\n};\n\n// DevTools specific API - only imported when using the devtools entry point\nexport const toastDevTools = {\n  /**\n   * Show the DevTools panel\n   */\n  show: () => {\n    if (typeof window !== 'undefined') {\n      const event = new CustomEvent('react-toast-kit:devtools:show');\n      window.dispatchEvent(event);\n    }\n  },\n\n  /**\n   * Hide the DevTools panel\n   */\n  hide: () => {\n    if (typeof window !== 'undefined') {\n      const event = new CustomEvent('react-toast-kit:devtools:hide');\n      window.dispatchEvent(event);\n    }\n  },\n\n  /**\n   * Toggle the DevTools panel visibility\n   */\n  toggle: () => {\n    if (typeof window !== 'undefined') {\n      const event = new CustomEvent('react-toast-kit:devtools:toggle');\n      window.dispatchEvent(event);\n    }\n  },\n\n  /**\n   * Get all active toasts\n   */\n  getToasts: () => useToastStore.getState().toasts,\n\n  // Include the development tools but only in development\n  ...devTools\n  \n  // Note: We removed the duplicate clearAll property since it's already in the devTools object\n};","import * as React from 'react';\nimport { useToastStore, toast,  type ToastOptions } from './toast';\nimport type { ToastPosition, ToastVariant, ToastAnimation, ToastStyle, ToastTheme } from './toast';\n\nconst { useState, useEffect, useCallback, useMemo } = React;\n\n/**\n * A framework-agnostic DevTools component for React Toast Kit\n * This component provides a UI for monitoring and testing toasts\n */\nexport const ToastDevTools: React.FC = () => {\n  const [isOpen, setIsOpen] = useState(false);\n  const [activeTab, setActiveTab] = useState<'monitor' | 'create' | 'settings'>('monitor');\n  const [isMinimized, setIsMinimized] = useState(false);\n  \n  const { \n    toasts, \n    theme, \n    effectiveTheme, \n    maxToasts, \n    pausedToasts, \n    activeTimers,\n    plugins,\n    clearAllToasts,\n    removeToast,\n    pauseToast,\n    resumeToast,\n    setTheme,\n    setMaxToasts \n  } = useToastStore();\n\n  // Test toast configurations\n  const [testConfig, setTestConfig] = useState<ToastOptions>({\n    title: 'Test Toast',\n    description: 'This is a test toast for debugging',\n    variant: 'info',\n    position: 'top-right',\n    animation: 'slide',\n    visualStyle: 'solid',\n    duration: 4000,\n    pauseOnHover: true,\n    dismissible: true,\n  });\n\n  // Statistics\n  const stats = useMemo(() => {\n    const byVariant = toasts.reduce((acc, toast) => {\n      acc[toast.variant] = (acc[toast.variant] || 0) + 1;\n      return acc;\n    }, {} as Record<string, number>);\n\n    const byPosition = toasts.reduce((acc, toast) => {\n      acc[toast.position] = (acc[toast.position] || 0) + 1;\n      return acc;\n    }, {} as Record<string, number>);\n\n    return {\n      total: toasts.length,\n      paused: pausedToasts.size,\n      timers: activeTimers.size,\n      byVariant,\n      byPosition,\n    };\n  }, [toasts, pausedToasts, activeTimers]);\n\n  // Quick test functions\n  const quickTests = {\n    success: () => toast.success('✅ Success toast test'),\n    error: () => toast.error('❌ Error toast test'),\n    warning: () => toast.warning('⚠️ Warning toast test'),\n    info: () => toast.info('ℹ️ Info toast test'),\n    loading: () => toast.loading('⏳ Loading toast test'),\n    custom: () => toast.custom(\n      <div style={{display: 'flex', alignItems: 'center', gap: '8px'}}>\n        <span style={{fontSize: '24px'}}>🎉</span>\n        <span>Custom component toast!</span>\n      </div>\n    ),\n    promise: () => {\n      const promise = new Promise((resolve, reject) => {\n        setTimeout(() => Math.random() > 0.5 ? resolve('Success!') : reject('Failed!'), 2000);\n      });\n      toast.promise(promise, {\n        loading: 'Loading...',\n        success: 'Promise resolved!',\n        error: 'Promise rejected!'\n      });\n    },\n    stress: () => {\n      for (let i = 0; i < 5; i++) {\n        setTimeout(() => {\n          toast({\n            title: `Stress test toast #${i + 1}`,\n            description: 'Testing multiple toasts at once',\n            variant: ['success', 'error', 'warning', 'info'][i % 4] as ToastVariant,\n            position: ['top-left', 'top-right', 'bottom-left', 'bottom-right'][i % 4] as ToastPosition,\n            duration: 2000,\n          });\n        }, i * 200);\n      }\n    }\n  };\n\n  // Handle test toast creation\n  const createTestToast = useCallback(() => {\n    toast(testConfig);\n  }, [testConfig]);\n\n  useEffect(() => {\n    // Set up keyboard shortcut to toggle DevTools\n    const handleKeyDown = (e: KeyboardEvent) => {\n      // Alt+Shift+D to toggle DevTools\n      if (e.altKey && e.shiftKey && e.key === 'D') {\n        setIsOpen(prevOpen => !prevOpen);\n      }\n    };\n\n    window.addEventListener('keydown', handleKeyDown);\n    return () => window.removeEventListener('keydown', handleKeyDown);\n  }, []);\n\n  // Don't render in production unless explicitly enabled\n  if (typeof process !== 'undefined' && process.env.NODE_ENV === 'production') {\n    return null;\n  }\n\n  // Create a styled wrapper for each platform without relying on specific CSS frameworks\n  const getVariantStyle = (variant: ToastVariant = 'default') => {\n    switch (variant) {\n      case 'success': return { background: '#dcfce7', color: '#166534' };\n      case 'error': return { background: '#fee2e2', color: '#b91c1c' };\n      case 'warning': return { background: '#fef3c7', color: '#92400e' };\n      case 'info': return { background: '#dbeafe', color: '#1e40af' };\n      case 'loading': return { background: '#f3f4f6', color: '#4b5563' };\n      default: return { background: '#f1f5f9', color: '#334155' };\n    }\n  };\n\n  // Using inline styles for framework-agnostic compatibility\n  const stylesObj = {\n    devToolsButton: {\n      position: 'fixed',\n      bottom: '16px',\n      right: '16px',\n      zIndex: 10000,\n      width: '48px',\n      height: '48px',\n      borderRadius: '24px',\n      background: 'linear-gradient(135deg, #3b82f6, #8b5cf6)',\n      color: 'white',\n      boxShadow: '0 4px 12px rgba(59, 130, 246, 0.5)',\n      border: 'none',\n      cursor: 'pointer',\n      display: 'flex',\n      alignItems: 'center',\n      justifyContent: 'center',\n      transition: 'transform 0.2s'\n    },\n    devToolsPanel: {\n      position: 'fixed',\n      bottom: '16px',\n      right: '16px',\n      zIndex: 10000,\n      width: isMinimized ? '320px' : '380px',\n      height: isMinimized ? '48px' : '600px',\n      background: effectiveTheme === 'dark' ? '#1f2937' : 'white',\n      borderRadius: '8px',\n      boxShadow: '0 10px 25px rgba(0, 0, 0, 0.2)',\n      border: `1px solid ${effectiveTheme === 'dark' ? '#374151' : '#e5e7eb'}`,\n      overflow: 'hidden',\n      fontFamily: 'system-ui, sans-serif',\n      display: 'flex',\n      flexDirection: 'column' as const\n    },\n    panelHeader: {\n      display: 'flex',\n      alignItems: 'center',\n      justifyContent: 'space-between',\n      padding: '12px 16px',\n      background: effectiveTheme === 'dark' ? '#111827' : '#f0f9ff',\n      borderBottom: `1px solid ${effectiveTheme === 'dark' ? '#374151' : '#e5e7eb'}`,\n    },\n    headerTitle: {\n      display: 'flex',\n      alignItems: 'center',\n      gap: '8px',\n      fontWeight: 600,\n      fontSize: '14px',\n      color: effectiveTheme === 'dark' ? '#f3f4f6' : '#1f2937'\n    },\n    statusIndicator: {\n      width: '8px',\n      height: '8px',\n      borderRadius: '4px',\n      background: '#22c55e'\n    },\n    tabsContainer: {\n      display: 'flex',\n      borderBottom: `1px solid ${effectiveTheme === 'dark' ? '#374151' : '#e5e7eb'}`,\n    },\n    tab: (isActive: boolean) => ({\n      flex: 1,\n      padding: '10px',\n      textAlign: 'center' as const,\n      fontSize: '13px',\n      color: isActive \n        ? (effectiveTheme === 'dark' ? '#60a5fa' : '#3b82f6') \n        : (effectiveTheme === 'dark' ? '#9ca3af' : '#64748b'),\n      background: isActive\n        ? (effectiveTheme === 'dark' ? '#111827' : 'white')\n        : (effectiveTheme === 'dark' ? '#1f2937' : '#f8fafc'),\n      cursor: 'pointer',\n      borderBottom: isActive ? `2px solid ${effectiveTheme === 'dark' ? '#60a5fa' : '#3b82f6'}` : '2px solid transparent'\n    }),\n    contentContainer: {\n      padding: '16px',\n      overflowY: 'auto' as const,\n      flex: 1,\n      fontSize: '14px'\n    },\n    statsGrid: {\n      display: 'grid',\n      gridTemplateColumns: 'repeat(2, 1fr)',\n      gap: '8px',\n      marginBottom: '16px'\n    },\n    statCard: (isWarning: boolean = false) => ({\n      padding: '12px',\n      borderRadius: '6px',\n      background: effectiveTheme === 'dark'\n        ? (isWarning ? '#422006' : '#082f49')\n        : (isWarning ? '#fef3c7' : '#f0f9ff'),\n      display: 'flex',\n      flexDirection: 'column' as const\n    }),\n    statTitle: (isWarning: boolean = false) => ({\n      fontSize: '12px',\n      fontWeight: 500,\n      color: effectiveTheme === 'dark'\n        ? (isWarning ? '#fcd34d' : '#93c5fd')\n        : (isWarning ? '#b45309' : '#0369a1'),\n      marginBottom: '4px'\n    }),\n    statValue: (isWarning: boolean = false) => ({\n      fontSize: '20px',\n      fontWeight: 700,\n      color: effectiveTheme === 'dark'\n        ? (isWarning ? '#fbbf24' : '#bfdbfe')\n        : (isWarning ? '#92400e' : '#0c4a6e')\n    }),\n    sectionTitle: {\n      fontWeight: 600,\n      color: effectiveTheme === 'dark' ? '#e2e8f0' : '#334155',\n      margin: '16px 0 8px'\n    },\n    quickTestsGrid: {\n      display: 'grid',\n      gridTemplateColumns: 'repeat(2, 1fr)',\n      gap: '8px',\n      marginBottom: '16px'\n    },\n    quickTestButton: {\n      padding: '8px',\n      borderRadius: '6px',\n      background: effectiveTheme === 'dark' ? '#1f2937' : '#f1f5f9',\n      border: 'none',\n      color: effectiveTheme === 'dark' ? '#d1d5db' : '#334155',\n      fontSize: '12px',\n      cursor: 'pointer',\n      textAlign: 'left' as const\n    },\n    toastsList: {\n      display: 'flex',\n      flexDirection: 'column' as const,\n      gap: '8px',\n      maxHeight: '240px',\n      overflowY: 'auto' as const\n    },\n    toastItem: {\n      padding: '10px',\n      borderRadius: '6px',\n      background: effectiveTheme === 'dark' ? '#1f2937' : '#f8fafc',\n      border: `1px solid ${effectiveTheme === 'dark' ? '#374151' : '#e2e8f0'}`\n    },\n    toastHeader: {\n      display: 'flex',\n      justifyContent: 'space-between',\n      alignItems: 'center',\n      marginBottom: '6px'\n    },\n    variantBadge: (variant: ToastVariant = 'default') => {\n      const style = getVariantStyle(variant);\n      return {\n        padding: '2px 6px',\n        borderRadius: '4px',\n        fontSize: '11px',\n        fontWeight: 500,\n        background: style.background,\n        color: style.color\n      };\n    },\n    toastActions: {\n      display: 'flex',\n      gap: '4px'\n    },\n    actionButton: (color: string) => ({\n      background: 'none',\n      border: 'none',\n      fontSize: '11px',\n      cursor: 'pointer',\n      padding: '2px 4px',\n      borderRadius: '4px',\n      color: color\n    }),\n    toastContent: {\n      fontSize: '12px',\n      color: effectiveTheme === 'dark' ? '#cbd5e1' : '#475569'\n    },\n    toastTitle: {\n      fontWeight: 500,\n      color: effectiveTheme === 'dark' ? '#e2e8f0' : '#334155',\n      marginBottom: '2px'\n    },\n    toastDescription: {\n      whiteSpace: 'nowrap' as const,\n      overflow: 'hidden',\n      textOverflow: 'ellipsis'\n    },\n    toastMeta: {\n      marginTop: '4px',\n      fontSize: '11px',\n      color: effectiveTheme === 'dark' ? '#64748b' : '#94a3b8'\n    },\n    inputGroup: {\n      marginBottom: '12px'\n    },\n    inputLabel: {\n      display: 'block',\n      fontSize: '12px',\n      fontWeight: 500,\n      color: effectiveTheme === 'dark' ? '#e2e8f0' : '#334155',\n      marginBottom: '4px'\n    },\n    textInput: {\n      width: '100%',\n      padding: '8px',\n      border: `1px solid ${effectiveTheme === 'dark' ? '#374151' : '#cbd5e1'}`,\n      borderRadius: '4px',\n      fontSize: '12px',\n      background: effectiveTheme === 'dark' ? '#1f2937' : 'white',\n      color: effectiveTheme === 'dark' ? '#f1f5f9' : 'inherit'\n    },\n    selectInput: {\n      width: '100%',\n      padding: '8px',\n      border: `1px solid ${effectiveTheme === 'dark' ? '#374151' : '#cbd5e1'}`,\n      borderRadius: '4px',\n      fontSize: '12px',\n      background: effectiveTheme === 'dark' ? '#1f2937' : 'white',\n      color: effectiveTheme === 'dark' ? '#f1f5f9' : 'inherit'\n    },\n    createButton: {\n      width: '100%',\n      padding: '8px',\n      background: '#3b82f6',\n      color: 'white',\n      border: 'none',\n      borderRadius: '4px',\n      fontSize: '13px',\n      fontWeight: 500,\n      cursor: 'pointer'\n    },\n    formGrid: {\n      display: 'grid',\n      gridTemplateColumns: '1fr 1fr',\n      gap: '8px'\n    }\n  };\n\n  return (\n    <>\n      {/* DevTools Button */}\n      {!isOpen && (\n        <button\n          onClick={() => setIsOpen(true)}\n          style={stylesObj.devToolsButton as React.CSSProperties}\n          title=\"Open Toast DevTools (Alt+Shift+D)\"\n        >\n          <svg width=\"24\" height=\"24\" fill=\"none\" stroke=\"currentColor\" viewBox=\"0 0 24 24\">\n            <path strokeLinecap=\"round\" strokeLinejoin=\"round\" strokeWidth={2} d=\"M10.325 4.317c.426-1.756 2.924-1.756 3.35 0a1.724 1.724 0 002.573 1.066c1.543-.94 3.31.826 2.37 2.37a1.724 1.724 0 001.065 2.572c1.756.426 1.756 2.924 0 3.35a1.724 1.724 0 00-1.066 2.573c.94 1.543-.826 3.31-2.37 2.37a1.724 1.724 0 00-2.572 1.065c-.426 1.756-2.924 1.756-3.35 0a1.724 1.724 0 00-2.573-1.066c-1.543.94-3.31-.826-2.37-2.37a1.724 1.724 0 00-1.065-2.572c-1.756-.426-1.756-2.924 0-3.35a1.724 1.724 0 001.066-2.573c-.94-1.543.826-3.31 2.37-2.37.996.608 2.296.07 2.572-1.065z\" />\n            <path strokeLinecap=\"round\" strokeLinejoin=\"round\" strokeWidth={2} d=\"M15 12a3 3 0 11-6 0 3 3 0 016 0z\" />\n          </svg>\n        </button>\n      )}\n\n      {/* DevTools Panel */}\n      {isOpen && (\n        <div style={stylesObj.devToolsPanel as React.CSSProperties}>\n          {/* Header */}\n          <div style={stylesObj.panelHeader as React.CSSProperties}>\n            <div style={stylesObj.headerTitle as React.CSSProperties}>\n              <div style={stylesObj.statusIndicator as React.CSSProperties}></div>\n              <span>React Toast Kit DevTools</span>\n              <span style={{\n                fontSize: '11px',\n                padding: '2px 6px',\n                borderRadius: '4px',\n                background: effectiveTheme === 'dark' ? '#0c4a6e' : '#dbeafe',\n                color: effectiveTheme === 'dark' ? '#bfdbfe' : '#1e40af'\n              }}>\n                {stats.total} active\n              </span>\n            </div>\n            <div style={{ display: 'flex', alignItems: 'center', gap: '4px' }}>\n              <button\n                onClick={() => setIsMinimized(!isMinimized)}\n                style={{\n                  padding: '4px',\n                  background: 'transparent',\n                  border: 'none',\n                  cursor: 'pointer',\n                  color: effectiveTheme === 'dark' ? '#9ca3af' : '#64748b'\n                }}\n                title={isMinimized ? 'Expand' : 'Minimize'}\n              >\n                <svg width=\"16\" height=\"16\" fill=\"none\" stroke=\"currentColor\" viewBox=\"0 0 24 24\">\n                  <path strokeLinecap=\"round\" strokeLinejoin=\"round\" strokeWidth={2} d={isMinimized ? \"M7 14l5-5 5 5\" : \"M17 10l-5 5-5-5\"} />\n                </svg>\n              </button>\n              <button\n                onClick={() => setIsOpen(false)}\n                style={{\n                  padding: '4px',\n                  background: 'transparent',\n                  border: 'none',\n                  cursor: 'pointer',\n                  color: '#ef4444'\n                }}\n                title=\"Close DevTools\"\n              >\n                <svg width=\"16\" height=\"16\" fill=\"none\" stroke=\"currentColor\" viewBox=\"0 0 24 24\">\n                  <path strokeLinecap=\"round\" strokeLinejoin=\"round\" strokeWidth={2} d=\"M6 18L18 6M6 6l12 12\" />\n                </svg>\n              </button>\n            </div>\n          </div>\n\n          {!isMinimized && (\n            <>\n              {/* Tabs */}\n              <div style={stylesObj.tabsContainer as React.CSSProperties}>\n                {[\n                  { key: 'monitor', label: 'Monitor', icon: '📊' },\n                  { key: 'create', label: 'Create', icon: '➕' },\n                  { key: 'settings', label: 'Settings', icon: '⚙️' }\n                ].map(tab => (\n                  <button\n                    key={tab.key}\n                    onClick={() => setActiveTab(tab.key as any)}\n                    style={stylesObj.tab(activeTab === tab.key) as React.CSSProperties}\n                  >\n                    <span style={{ marginRight: '4px' }}>{tab.icon}</span>\n                    {tab.label}\n                  </button>\n                ))}\n              </div>\n\n              {/* Content */}\n              <div style={stylesObj.contentContainer as React.CSSProperties}>\n                {activeTab === 'monitor' && (\n                  <div>\n                    {/* Stats Overview */}\n                    <div style={stylesObj.statsGrid as React.CSSProperties}>\n                      <div style={stylesObj.statCard() as React.CSSProperties}>\n                        <div style={stylesObj.statTitle() as React.CSSProperties}>Total</div>\n                        <div style={stylesObj.statValue() as React.CSSProperties}>{stats.total}</div>\n                      </div>\n                      <div style={stylesObj.statCard(true) as React.CSSProperties}>\n                        <div style={stylesObj.statTitle(true) as React.CSSProperties}>Paused</div>\n                        <div style={stylesObj.statValue(true) as React.CSSProperties}>{stats.paused}</div>\n                      </div>\n                    </div>\n\n                    {/* Quick Actions */}\n                    <div>\n                      <h3 style={stylesObj.sectionTitle as React.CSSProperties}>Quick Tests</h3>\n                      <div style={stylesObj.quickTestsGrid as React.CSSProperties}>\n                        {Object.entries(quickTests).map(([key, fn]) => (\n                          <button\n                            key={key}\n                            onClick={fn}\n                            style={stylesObj.quickTestButton as React.CSSProperties}\n                          >\n                            {key.charAt(0).toUpperCase() + key.slice(1)}\n                          </button>\n                        ))}\n                      </div>\n                    </div>\n\n                    {/* Active Toasts */}\n                    <div>\n                      <div style={{ display: 'flex', alignItems: 'center', justifyContent: 'space-between', marginBottom: '8px' }}>\n                        <h3 style={stylesObj.sectionTitle as React.CSSProperties}>Active Toasts</h3>\n                        {toasts.length > 0 && (\n                          <button\n                            onClick={clearAllToasts}\n                            style={{\n                              fontSize: '12px',\n                              color: '#ef4444',\n                              background: 'transparent',\n                              border: 'none',\n                              cursor: 'pointer',\n                              textDecoration: 'underline'\n                            }}\n                          >\n                            Clear All\n                          </button>\n                        )}\n                      </div>\n                      <div style={stylesObj.toastsList as React.CSSProperties}>\n                        {toasts.length === 0 ? (\n                          <div style={{ textAlign: 'center', padding: '16px', color: effectiveTheme === 'dark' ? '#9ca3af' : '#64748b' }}>\n                            No active toasts\n                          </div>\n                        ) : (\n                          toasts.map(toast => (\n                            <div key={toast.id} style={stylesObj.toastItem as React.CSSProperties}>\n                              <div style={stylesObj.toastHeader as React.CSSProperties}>\n                                <span style={stylesObj.variantBadge(toast.variant as ToastVariant) as React.CSSProperties}>\n                                  {toast.variant || 'default'}\n                                </span>\n                                <div style={stylesObj.toastActions as React.CSSProperties}>\n                                  <button\n                                    onClick={() => pausedToasts.has(toast.id) ? resumeToast(toast.id) : pauseToast(toast.id)}\n                                    style={stylesObj.actionButton('#2563eb') as React.CSSProperties}\n                                  >\n                                    {pausedToasts.has(toast.id) ? '▶️' : '⏸️'}\n                                  </button>\n                                  <button\n                                    onClick={() => removeToast(toast.id)}\n                                    style={stylesObj.actionButton('#ef4444') as React.CSSProperties}\n                                  >\n                                    ❌\n                                  </button>\n                                </div>\n                              </div>\n                              <div style={stylesObj.toastContent as React.CSSProperties}>\n                                <div style={stylesObj.toastTitle as React.CSSProperties}>{toast.title || 'No title'}</div>\n                                {toast.description && <div style={stylesObj.toastDescription as React.CSSProperties}>{toast.description}</div>}\n                                <div style={stylesObj.toastMeta as React.CSSProperties}>\n                                  {toast.position} • {toast.animation || 'slide'} • {toast.duration}ms\n                                </div>\n                              </div>\n                            </div>\n                          ))\n                        )}\n                      </div>\n                    </div>\n                  </div>\n                )}\n\n                {activeTab === 'create' && (\n                  <div>\n                    <h3 style={stylesObj.sectionTitle as React.CSSProperties}>Create Test Toast</h3>\n                    \n                    {/* Form inputs */}\n                    <div style={{ display: 'flex', flexDirection: 'column', gap: '12px' }}>\n                      <div style={stylesObj.inputGroup as React.CSSProperties}>\n                        <label style={stylesObj.inputLabel as React.CSSProperties}>Title</label>\n                        <input\n                          type=\"text\"\n                          value={testConfig.title || ''}\n                          onChange={(e) => setTestConfig(prev => ({ ...prev, title: e.target.value }))}\n                          style={stylesObj.textInput as React.CSSProperties}\n                        />\n                      </div>\n                      \n                      <div style={stylesObj.inputGroup as React.CSSProperties}>\n                        <label style={stylesObj.inputLabel as React.CSSProperties}>Description</label>\n                        <textarea\n                          value={testConfig.description || ''}\n                          onChange={(e) => setTestConfig(prev => ({ ...prev, description: e.target.value }))}\n                          style={{ ...stylesObj.textInput, minHeight: '60px', resize: 'vertical' } as React.CSSProperties}\n                          rows={2}\n                        />\n                      </div>\n\n                      <div style={stylesObj.formGrid as React.CSSProperties}>\n                        <div style={stylesObj.inputGroup as React.CSSProperties}>\n                          <label style={stylesObj.inputLabel as React.CSSProperties}>Variant</label>\n                          <select\n                            value={testConfig.variant || 'default'}\n                            onChange={(e) => setTestConfig(prev => ({ ...prev, variant: e.target.value as ToastVariant }))}\n                            style={stylesObj.selectInput as React.CSSProperties}\n                          >\n                            <option value=\"default\">Default</option>\n                            <option value=\"success\">Success</option>\n                            <option value=\"error\">Error</option>\n                            <option value=\"warning\">Warning</option>\n                            <option value=\"info\">Info</option>\n                            <option value=\"loading\">Loading</option>\n                          </select>\n                        </div>\n\n                        <div style={stylesObj.inputGroup as React.CSSProperties}>\n                          <label style={stylesObj.inputLabel as React.CSSProperties}>Position</label>\n                          <select\n                            value={testConfig.position || 'top-right'}\n                            onChange={(e) => setTestConfig(prev => ({ ...prev, position: e.target.value as ToastPosition }))}\n                            style={stylesObj.selectInput as React.CSSProperties}\n                          >\n                            <option value=\"top-left\">Top Left</option>\n                            <option value=\"top-center\">Top Center</option>\n                            <option value=\"top-right\">Top Right</option>\n                            <option value=\"bottom-left\">Bottom Left</option>\n                            <option value=\"bottom-center\">Bottom Center</option>\n                            <option value=\"bottom-right\">Bottom Right</option>\n                          </select>\n                        </div>\n                      </div>\n\n                      <div style={stylesObj.formGrid as React.CSSProperties}>\n                        <div style={stylesObj.inputGroup as React.CSSProperties}>\n                          <label style={stylesObj.inputLabel as React.CSSProperties}>Animation</label>\n                          <select\n                            value={testConfig.animation || 'slide'}\n                            onChange={(e) => setTestConfig(prev => ({ ...prev, animation: e.target.value as ToastAnimation }))}\n                            style={stylesObj.selectInput as React.CSSProperties}\n                          >\n                            <option value=\"slide\">Slide</option>\n                            <option value=\"fade\">Fade</option>\n                            <option value=\"scale\">Scale</option>\n                            <option value=\"flip\">Flip</option>\n                            <option value=\"zoom\">Zoom</option>\n                            <option value=\"bounce\">Bounce</option>\n                          </select>\n                        </div>\n\n                        <div style={stylesObj.inputGroup as React.CSSProperties}>\n                          <label style={stylesObj.inputLabel as React.CSSProperties}>Style</label>\n                          <select\n                            value={testConfig.visualStyle || 'solid'}\n                            onChange={(e) => setTestConfig(prev => ({ ...prev, visualStyle: e.target.value as ToastStyle }))}\n                            style={stylesObj.selectInput as React.CSSProperties}\n                          >\n                            <option value=\"solid\">Solid</option>\n                            <option value=\"glass\">Glass</option>\n                            <option value=\"gradient\">Gradient</option>\n                            <option value=\"shimmer\">Shimmer</option>\n                            <option value=\"pill\">Pill</option>\n                            <option value=\"neon\">Neon</option>\n                            <option value=\"retro\">Retro</option>\n                            <option value=\"confetti\">Confetti</option>\n                          </select>\n                        </div>\n                      </div>\n\n                      <div style={stylesObj.inputGroup as React.CSSProperties}>\n                        <label style={stylesObj.inputLabel as React.CSSProperties}>Duration (ms)</label>\n                        <input\n                          type=\"number\"\n                          value={testConfig.duration || 4000}\n                          onChange={(e) => setTestConfig(prev => ({ ...prev, duration: parseInt(e.target.value) }))}\n                          style={stylesObj.textInput as React.CSSProperties}\n                        />\n                      </div>\n\n                      <button\n                        onClick={createTestToast}\n                        style={stylesObj.createButton as React.CSSProperties}\n                      >\n                        Create Toast\n                      </button>\n                    </div>\n                  </div>\n                )}\n\n                {activeTab === 'settings' && (\n                  <div>\n                    <h3 style={stylesObj.sectionTitle as React.CSSProperties}>Global Settings</h3>\n                    \n                    <div style={{ display: 'flex', flexDirection: 'column', gap: '12px' }}>\n                      <div style={stylesObj.inputGroup as React.CSSProperties}>\n                        <label style={stylesObj.inputLabel as React.CSSProperties}>Theme</label>\n                        <select\n                          value={theme}\n                          onChange={(e) => setTheme(e.target.value as ToastTheme)}\n                          style={stylesObj.selectInput as React.CSSProperties}\n                        >\n                          <option value=\"light\">Light</option>\n                          <option value=\"dark\">Dark</option>\n                          <option value=\"system\">System</option>\n                        </select>\n                        <div style={{ fontSize: '11px', color: effectiveTheme === 'dark' ? '#64748b' : '#94a3b8', marginTop: '4px' }}>\n                          Current: {effectiveTheme}\n                        </div>\n                      </div>\n\n                      <div style={stylesObj.inputGroup as React.CSSProperties}>\n                        <label style={stylesObj.inputLabel as React.CSSProperties}>Max Toasts</label>\n                        <input\n                          type=\"number\"\n                          value={maxToasts}\n                          onChange={(e) => setMaxToasts(parseInt(e.target.value))}\n                          min=\"1\"\n                          max=\"10\"\n                          style={stylesObj.textInput as React.CSSProperties}\n                        />\n                      </div>\n\n                      <div style={{ \n                        marginTop: '16px', \n                        paddingTop: '16px', \n                        borderTop: `1px solid ${effectiveTheme === 'dark' ? '#374151' : '#e5e7eb'}` \n                      }}>\n                        <h4 style={{ ...stylesObj.sectionTitle, fontSize: '13px' } as React.CSSProperties}>Keyboard Shortcuts</h4>\n                        <div style={{ \n                          fontSize: '12px', \n                          background: effectiveTheme === 'dark' ? '#1f2937' : '#f1f5f9', \n                          padding: '8px',\n                          borderRadius: '4px',\n                          marginTop: '8px'\n                        }}>\n                          <div>\n                            <strong>Alt + Shift + D</strong>: Toggle DevTools\n                          </div>\n                        </div>\n                      </div>\n\n                      <div style={{ \n                        marginTop: '8px', \n                        paddingTop: '16px', \n                        borderTop: `1px solid ${effectiveTheme === 'dark' ? '#374151' : '#e5e7eb'}` \n                      }}>\n                        <h4 style={{ ...stylesObj.sectionTitle, fontSize: '13px' } as React.CSSProperties}>Plugin Info</h4>\n                        {plugins.length === 0 ? (\n                          <div style={{ \n                            fontSize: '12px', \n                            color: effectiveTheme === 'dark' ? '#9ca3af' : '#64748b'\n                          }}>\n                            No plugins registered\n                          </div>\n                        ) : (\n                          <div style={{ display: 'flex', flexDirection: 'column', gap: '8px' }}>\n                            {plugins.map(plugin => (\n                              <div key={plugin.name} style={{ \n                                fontSize: '12px', \n                                background: effectiveTheme === 'dark' ? '#1f2937' : '#f1f5f9', \n                                padding: '8px',\n                                borderRadius: '4px'\n                              }}>\n                                <div style={{ fontWeight: 500 }}>{plugin.name}</div>\n                                <div style={{ color: effectiveTheme === 'dark' ? '#9ca3af' : '#64748b' }}>{plugin.description}</div>\n                              </div>\n                            ))}\n                          </div>\n                        )}\n                      </div>\n                    </div>\n                  </div>\n                )}\n              </div>\n            </>\n          )}\n        </div>\n      )}\n    </>\n  );\n};\n\nexport default ToastDevTools;"]}