{"version":3,"sources":["../node_modules/.pnpm/zustand@5.0.4_@types+react@19.1.4_react@18.3.1/node_modules/zustand/esm/vanilla.mjs","../node_modules/.pnpm/zustand@5.0.4_@types+react@19.1.4_react@18.3.1/node_modules/zustand/esm/react.mjs","../src/toast.ts","../src/DevTools.tsx","../src/DevToolsWrapper.tsx"],"names":["createStoreImpl","createState","state","listeners","setState","partial","replace","nextState","previousState","listener","getState","api","initialState","createStore","identity","arg","useStore","selector","slice","React","createImpl","useBoundStore","create","DEFAULT_CONFIG","DEFAULT_POSITION","DEFAULT_THEME","DEFAULT_MAX_TOASTS","getSystemTheme","useToastStore","set","get","config","toast","plugins","activeTimers","pausedToasts","processedToast","plugin","result","mergedStyle","toastsBeforeAdd","oldest","a","b","t","freshToasts","insertIndex","lowPriorityIndex","updatedToasts","existing","now","timerId","error","id","toasts","shouldRemove","newActiveTimers","newTimerStartedAt","newRemainingTime","newPausedToasts","updatedFields","existingTimer","updated","newTimerId","m","timerStartedAt","startedAt","elapsed","remaining","remainingTime","theme","max","newEffectiveTheme","p","name","darkModeQuery","handleSystemThemeChange","generateId","iconStrings","createToast","options","cfg","base","toastOptions","createVariantToast","variant","component","promise","loadingOpts","defaultDuration","data","successOpts","errorOpts","toastDevTools","useState","useEffect","useCallback","useMemo","ToastDevTools","isOpen","setIsOpen","activeTab","setActiveTab","isMinimized","setIsMinimized","effectiveTheme","maxToasts","clearAllToasts","removeToast","pauseToast","resumeToast","setTheme","setMaxToasts","testConfig","setTestConfig","stats","byVariant","acc","byPosition","quickTests","jsxs","jsx","resolve","reject","i","createTestToast","handleKeyDown","e","prevOpen","getVariantStyle","stylesObj","isActive","isWarning","style","color","Fragment","tab","key","fn","prev","createContext","useContext","DevToolsContext","devToolsConfig","configureDevTools","useDevToolsVisible","context","ClientDevTools","visible","DevToolsWrapper","children","mergedConfig","enabled","defaultVisible","shortcut","setVisible","prevVisible","keys","modifiers","toggle"],"mappings":"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","file":"devtools-entry.mjs","sourcesContent":["const createStoreImpl = (createState) => {\n  let state;\n  const listeners = /* @__PURE__ */ new Set();\n  const setState = (partial, replace) => {\n    const nextState = typeof partial === \"function\" ? partial(state) : partial;\n    if (!Object.is(nextState, state)) {\n      const previousState = state;\n      state = (replace != null ? replace : typeof nextState !== \"object\" || nextState === null) ? nextState : Object.assign({}, state, nextState);\n      listeners.forEach((listener) => listener(state, previousState));\n    }\n  };\n  const getState = () => state;\n  const getInitialState = () => initialState;\n  const subscribe = (listener) => {\n    listeners.add(listener);\n    return () => listeners.delete(listener);\n  };\n  const api = { setState, getState, getInitialState, subscribe };\n  const initialState = state = createState(setState, getState, api);\n  return api;\n};\nconst createStore = (createState) => createState ? createStoreImpl(createState) : createStoreImpl;\n\nexport { createStore };\n","import React from 'react';\nimport { createStore } from 'zustand/vanilla';\n\nconst identity = (arg) => arg;\nfunction useStore(api, selector = identity) {\n  const slice = React.useSyncExternalStore(\n    api.subscribe,\n    () => selector(api.getState()),\n    () => selector(api.getInitialState())\n  );\n  React.useDebugValue(slice);\n  return slice;\n}\nconst createImpl = (createState) => {\n  const api = createStore(createState);\n  const useBoundStore = (selector) => useStore(api, selector);\n  Object.assign(useBoundStore, api);\n  return useBoundStore;\n};\nconst create = (createState) => createState ? createImpl(createState) : createImpl;\n\nexport { create, useStore };\n","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' | 'elastic';\nexport type ToastStyle = 'solid' | 'gradient' | 'glass' | 'shimmer' | 'pill' | 'neon' | 'retro' | 'confetti' | 'minimal' | 'outlined';\n\nexport interface ToastAction {\n  label: string;\n  onClick: (id: string) => void;\n  variant?: 'primary' | 'secondary' | 'danger';\n  closeOnClick?: boolean;\n}\n\nexport type ProgressBarStyle =\n  | 'default'\n  | 'fancy'\n  | 'gradient-wave'\n  | 'pulse'\n  | 'particles'\n  | 'liquid'\n  | 'three-d'\n  | 'dashed'\n  | 'glow'\n  | 'rainbow'\n  | 'data-flow'\n  | 'step-progress';\n\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\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  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  actions?: ToastAction[];\n}\n\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  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  actions?: ToastAction[];\n  iconString?: string;\n  updating?: boolean;\n}\n\n// Provider-level defaults stored in the Zustand store so the imperative\n// `toast()` API can read them without relying on window globals.\nexport interface ToastStoreConfig {\n  defaultDuration: number;\n  defaultDismissible: boolean;\n  defaultPauseOnHover: boolean;\n  defaultDismissOnClick: boolean;\n  defaultAnimation: ToastAnimation;\n  defaultStyle: ToastStyle;\n  defaultProgressBarStyle?: ProgressBarStyle;\n  defaultProgressBarColor?: string;\n  defaultProgressBarPosition: 'top' | 'bottom' | 'left' | 'right';\n  defaultProgressBarThickness: number;\n  defaultProgressAnimation: 'linear' | 'ease' | 'ease-in' | 'ease-out' | 'ease-in-out' | 'spring';\n  defaultFloating: boolean;\n  defaultRippleEffect: boolean;\n  defaultSwipeToDismiss: boolean;\n  defaultPriority: 'low' | 'normal' | 'high';\n  defaultStagger: number;\n  globalClassName?: string;\n  globalStyle?: React.CSSProperties;\n}\n\nconst DEFAULT_CONFIG: ToastStoreConfig = {\n  defaultDuration: 4000,\n  defaultDismissible: true,\n  defaultPauseOnHover: true,\n  defaultDismissOnClick: false,\n  defaultAnimation: 'slide',\n  defaultStyle: 'solid',\n  defaultProgressBarPosition: 'bottom',\n  defaultProgressBarThickness: 3,\n  defaultProgressAnimation: 'linear',\n  defaultFloating: false,\n  defaultRippleEffect: false,\n  defaultSwipeToDismiss: false,\n  defaultPriority: 'normal',\n  defaultStagger: 0,\n};\n\nconst DEFAULT_POSITION: ToastPosition = 'top-right';\nconst DEFAULT_THEME: ToastTheme = 'system';\nconst DEFAULT_MAX_TOASTS = 3;\n\nconst getSystemTheme = (): 'light' | 'dark' => {\n  if (typeof window === 'undefined' || typeof window.matchMedia !== 'function') {\n    return 'light';\n  }\n  try {\n    return window.matchMedia('(prefers-color-scheme: dark)').matches ? 'dark' : 'light';\n  } catch {\n    return 'light';\n  }\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>;\n  // Tracks when each active timer was started so we can compute remaining time on pause\n  timerStartedAt: Map<string, number>;\n  // Stores the remaining ms for paused toasts so resume restarts from the right point\n  remainingTime: Map<string, number>;\n  plugins: ToastPlugin[];\n  config: ToastStoreConfig;\n\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  setConfig: (config: Partial<ToastStoreConfig>) => void;\n  cleanup: () => void;\n  registerPlugin: (plugin: ToastPlugin) => void;\n  unregisterPlugin: (name: string) => void;\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  timerStartedAt: new Map<string, number>(),\n  remainingTime: new Map<string, number>(),\n  plugins: [],\n  config: DEFAULT_CONFIG,\n\n  setConfig: (config) => {\n    set((state) => ({ config: { ...state.config, ...config } }));\n  },\n\n  addToast: (toast) => {\n    try {\n      const { plugins, activeTimers, pausedToasts } = get();\n\n      let processedToast: Toast = toast;\n\n      for (const plugin of plugins) {\n        if (plugin.beforeCreate) {\n          const result = plugin.beforeCreate(processedToast as unknown as ToastOptions);\n          let mergedStyle: React.CSSProperties | undefined;\n          if (result.style || processedToast.style) {\n            mergedStyle = { ...(processedToast.style || {}), ...(result.style || {}) };\n          }\n          processedToast = {\n            ...processedToast,\n            ...result,\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            style: mergedStyle,\n            iconString: processedToast.iconString,\n            updating: processedToast.updating,\n          };\n        }\n      }\n\n      // Remove oldest toast if at capacity (read fresh state after potential prior removals)\n      const toastsBeforeAdd = get().toasts;\n      if (toastsBeforeAdd.length >= get().maxToasts) {\n        const oldest = [...toastsBeforeAdd]\n          .sort((a, b) => a.createdAt - b.createdAt)\n          .find((t) => t.id !== processedToast.id);\n        if (oldest) {\n          get().removeToast(oldest.id);\n        }\n      }\n\n      // Re-read fresh state after potential removal and compute insert position\n      const freshToasts = get().toasts;\n      let insertIndex = freshToasts.length;\n      if (processedToast.priority === 'high') {\n        insertIndex = 0;\n      } else if (processedToast.priority === 'normal') {\n        const lowPriorityIndex = freshToasts.findIndex((t) => t.priority === 'low');\n        if (lowPriorityIndex !== -1) insertIndex = lowPriorityIndex;\n      }\n\n      const updatedToasts = [...freshToasts];\n      updatedToasts.splice(insertIndex, 0, processedToast);\n      set({ toasts: updatedToasts });\n\n      // Set up auto-dismiss timer\n      if (processedToast.duration > 0 && !pausedToasts.has(processedToast.id)) {\n        const existing = activeTimers.get(processedToast.id);\n        if (existing) clearTimeout(existing);\n\n        const now = Date.now();\n        const timerId = window.setTimeout(() => {\n          get().removeToast(processedToast.id);\n        }, processedToast.duration) as unknown as number;\n\n        set((state) => ({\n          activeTimers: new Map(state.activeTimers).set(processedToast.id, timerId),\n          timerStartedAt: new Map(state.timerStartedAt).set(processedToast.id, now),\n        }));\n      }\n\n      for (const plugin of plugins) {\n        plugin.afterCreate?.(processedToast);\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      if (!toast) return;\n\n      let shouldRemove = true;\n      for (const plugin of plugins) {\n        if (plugin.beforeRemove?.(toast) === false) {\n          shouldRemove = false;\n        }\n      }\n      if (!shouldRemove) return;\n\n      const timerId = activeTimers.get(id);\n      if (timerId) clearTimeout(timerId);\n\n      toast.onDismiss?.(id);\n\n      set((state) => {\n        const newActiveTimers = new Map(state.activeTimers);\n        newActiveTimers.delete(id);\n        const newTimerStartedAt = new Map(state.timerStartedAt);\n        newTimerStartedAt.delete(id);\n        const newRemainingTime = new Map(state.remainingTime);\n        newRemainingTime.delete(id);\n        const newPausedToasts = new Set(state.pausedToasts);\n        newPausedToasts.delete(id);\n        return {\n          toasts: state.toasts.filter((t) => t.id !== id),\n          pausedToasts: newPausedToasts,\n          activeTimers: newActiveTimers,\n          timerStartedAt: newTimerStartedAt,\n          remainingTime: newRemainingTime,\n        };\n      });\n\n      for (const plugin of plugins) {\n        plugin.afterRemove?.(toast);\n      }\n    } catch (error) {\n      console.error('React Toast Kit: Failed to remove toast', error);\n    }\n  },\n\n  updateToast: (id, updatedFields) => {\n    try {\n      set((state) => ({\n        toasts: state.toasts.map((t) =>\n          t.id === id ? { ...t, ...updatedFields, updating: true } : t\n        ),\n      }));\n\n      // Reset timer if duration changed\n      if (updatedFields.duration !== undefined) {\n        const { activeTimers, pausedToasts } = get();\n        const existingTimer = activeTimers.get(id);\n        if (existingTimer) clearTimeout(existingTimer);\n\n        const updated = get().toasts.find((t) => t.id === id);\n        if (updated && updated.duration > 0 && !pausedToasts.has(id)) {\n          const now = Date.now();\n          const newTimerId = window.setTimeout(() => {\n            get().removeToast(id);\n          }, updated.duration) as unknown as number;\n\n          set((state) => ({\n            activeTimers: new Map(state.activeTimers).set(id, newTimerId),\n            timerStartedAt: new Map(state.timerStartedAt).set(id, now),\n            remainingTime: (() => {\n              const m = new Map(state.remainingTime);\n              m.delete(id);\n              return m;\n            })(),\n          }));\n        }\n      }\n\n      // Clear updating flag after animation frame\n      setTimeout(() => {\n        set((state) => ({\n          toasts: state.toasts.map((t) => (t.id === id ? { ...t, updating: false } : t)),\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, timerStartedAt } = get();\n    const existingTimer = activeTimers.get(id);\n\n    if (existingTimer) {\n      clearTimeout(existingTimer);\n      // Calculate remaining time based on when the timer was started\n      const startedAt = timerStartedAt.get(id);\n      const toast = get().toasts.find((t) => t.id === id);\n      if (startedAt !== undefined && toast) {\n        const elapsed = Date.now() - startedAt;\n        const remaining = Math.max(0, toast.duration - elapsed);\n        set((state) => {\n          const newActiveTimers = new Map(state.activeTimers);\n          newActiveTimers.delete(id);\n          const newTimerStartedAt = new Map(state.timerStartedAt);\n          newTimerStartedAt.delete(id);\n          const newRemainingTime = new Map(state.remainingTime).set(id, remaining);\n          return { activeTimers: newActiveTimers, timerStartedAt: newTimerStartedAt, remainingTime: newRemainingTime };\n        });\n      } else {\n        set((state) => {\n          const newActiveTimers = new Map(state.activeTimers);\n          newActiveTimers.delete(id);\n          return { activeTimers: newActiveTimers };\n        });\n      }\n    }\n\n    set((state) => ({ pausedToasts: new Set(state.pausedToasts).add(id) }));\n  },\n\n  resumeToast: (id) => {\n    const { remainingTime, toasts } = get();\n\n    set((state) => {\n      const newPausedToasts = new Set(state.pausedToasts);\n      newPausedToasts.delete(id);\n      return { pausedToasts: newPausedToasts };\n    });\n\n    const toast = toasts.find((t) => t.id === id);\n    if (!toast || toast.duration <= 0) return;\n\n    // Use stored remaining time if available (correct after multiple pause/resume cycles)\n    const remaining = remainingTime.get(id) ?? Math.max(0, toast.duration - (Date.now() - toast.createdAt));\n\n    if (remaining > 0) {\n      const now = Date.now();\n      const timerId = window.setTimeout(() => {\n        get().removeToast(id);\n      }, remaining) as unknown as number;\n\n      set((state) => {\n        const newRemainingTime = new Map(state.remainingTime);\n        newRemainingTime.delete(id);\n        return {\n          activeTimers: new Map(state.activeTimers).set(id, timerId),\n          timerStartedAt: new Map(state.timerStartedAt).set(id, now),\n          remainingTime: newRemainingTime,\n        };\n      });\n    }\n  },\n\n  clearAllToasts: () => {\n    try {\n      const { toasts, activeTimers } = get();\n      activeTimers.forEach((timerId) => clearTimeout(timerId));\n      toasts.forEach((toast) => toast.onDismiss?.(toast.id));\n      set({\n        toasts: [],\n        pausedToasts: new Set(),\n        activeTimers: new Map(),\n        timerStartedAt: new Map(),\n        remainingTime: 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    set({ maxToasts: Math.max(1, max) });\n  },\n\n  updateEffectiveTheme: () => {\n    const { theme } = get();\n    const newEffectiveTheme = theme === 'system' ? getSystemTheme() : (theme as 'light' | 'dark');\n    set({ effectiveTheme: newEffectiveTheme });\n  },\n\n  cleanup: () => {\n    try {\n      const { activeTimers, toasts } = get();\n      activeTimers.forEach((timerId) => clearTimeout(timerId));\n      toasts.forEach((toast) => toast.onDismiss?.(toast.id));\n      set({\n        toasts: [],\n        pausedToasts: new Set(),\n        activeTimers: new Map(),\n        timerStartedAt: new Map(),\n        remainingTime: new Map(),\n      });\n    } catch (error) {\n      console.error('React Toast Kit: Failed to cleanup', error);\n    }\n  },\n\n  registerPlugin: (plugin) => {\n    set((state) => ({\n      plugins: [...state.plugins.filter((p) => p.name !== plugin.name), plugin],\n    }));\n  },\n\n  unregisterPlugin: (name) => {\n    set((state) => ({\n      plugins: state.plugins.filter((p) => p.name !== name),\n    }));\n  },\n}));\n\n// Single module-level media query listener — no MutationObserver to avoid memory leaks.\n// Class-based dark mode toggling should be handled by setting `theme` on <ToastProvider>.\nif (typeof window !== 'undefined' && typeof window.matchMedia === 'function') {\n  try {\n    const darkModeQuery = window.matchMedia('(prefers-color-scheme: dark)');\n    const handleSystemThemeChange = () => {\n      if (useToastStore.getState().theme === 'system') {\n        useToastStore.getState().updateEffectiveTheme();\n      }\n    };\n    if (typeof darkModeQuery.addEventListener === 'function') {\n      darkModeQuery.addEventListener('change', handleSystemThemeChange);\n    } else {\n      // Legacy Safari <14 fallback — addListener was deprecated in favour of addEventListener\n      const legacy = darkModeQuery as MediaQueryList & { addListener?: (cb: () => void) => void };\n      legacy.addListener?.(handleSystemThemeChange);\n    }\n    // Initialize effective theme on load\n    useToastStore.getState().updateEffectiveTheme();\n  } catch {\n    // matchMedia not fully supported — silent fallback\n  }\n}\n\nconst generateId = () => Math.random().toString(36).substring(2, 9);\n\nconst iconStrings: Record<string, string> = {\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\"><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\"/><path d=\"M6.66669 10L9.16669 12.5L13.3334 7.5\" stroke=\"currentColor\" stroke-width=\"1.5\" stroke-linecap=\"round\" stroke-linejoin=\"round\"/></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\"><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\"/><path d=\"M12.5 7.5L7.5 12.5\" stroke=\"currentColor\" stroke-width=\"1.5\" stroke-linecap=\"round\" stroke-linejoin=\"round\"/><path d=\"M7.5 7.5L12.5 12.5\" stroke=\"currentColor\" stroke-width=\"1.5\" stroke-linecap=\"round\" stroke-linejoin=\"round\"/></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\"><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\"/><path d=\"M10 7.5V10.8333\" stroke=\"currentColor\" stroke-width=\"1.5\" stroke-linecap=\"round\" stroke-linejoin=\"round\"/><path d=\"M10 14.1667H10.0083\" stroke=\"currentColor\" stroke-width=\"2\" stroke-linecap=\"round\" stroke-linejoin=\"round\"/></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\"><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\"/><path d=\"M10 13.3333V10\" stroke=\"currentColor\" stroke-width=\"1.5\" stroke-linecap=\"round\" stroke-linejoin=\"round\"/><path d=\"M10 6.66663H10.0083\" stroke=\"currentColor\" stroke-width=\"1.5\" stroke-linecap=\"round\" stroke-linejoin=\"round\"/></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\"><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\"/><path d=\"M10 6.66667V10\" stroke=\"currentColor\" stroke-width=\"1.5\" stroke-linecap=\"round\" stroke-linejoin=\"round\"/><path d=\"M10 13.3333H10.0083\" stroke=\"currentColor\" stroke-width=\"1.5\" stroke-linecap=\"round\" stroke-linejoin=\"round\"/></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\"><path d=\"M10 3.33337V5.00004\" stroke=\"currentColor\" stroke-width=\"1.5\" stroke-linecap=\"round\" stroke-linejoin=\"round\"/><path d=\"M10 15V16.6667\" stroke=\"currentColor\" stroke-width=\"1.5\" stroke-linecap=\"round\" stroke-linejoin=\"round\"/><path d=\"M4.1084 4.1084L5.2834 5.28257\" stroke=\"currentColor\" stroke-width=\"1.5\" stroke-linecap=\"round\" stroke-linejoin=\"round\"/><path d=\"M14.7166 14.7167L15.8916 15.8917\" stroke=\"currentColor\" stroke-width=\"1.5\" stroke-linecap=\"round\" stroke-linejoin=\"round\"/><path d=\"M3.33337 10H5.00004\" stroke=\"currentColor\" stroke-width=\"1.5\" stroke-linecap=\"round\" stroke-linejoin=\"round\"/><path d=\"M15 10H16.6667\" stroke=\"currentColor\" stroke-width=\"1.5\" stroke-linecap=\"round\" stroke-linejoin=\"round\"/><path d=\"M4.1084 15.8917L5.2834 14.7167\" stroke=\"currentColor\" stroke-width=\"1.5\" stroke-linecap=\"round\" stroke-linejoin=\"round\"/><path d=\"M14.7166 5.28257L15.8916 4.1084\" stroke=\"currentColor\" stroke-width=\"1.5\" stroke-linecap=\"round\" stroke-linejoin=\"round\"/></svg>`,\n};\n\nconst createToast = (options: ToastOptions | string): string => {\n  try {\n    const cfg = useToastStore.getState().config;\n\n    const base: ToastOptions = {\n      duration: cfg.defaultDuration,\n      dismissible: cfg.defaultDismissible,\n      pauseOnHover: cfg.defaultPauseOnHover,\n      dismissOnClick: cfg.defaultDismissOnClick,\n      animation: cfg.defaultAnimation,\n      visualStyle: cfg.defaultStyle,\n      progressBarStyle: cfg.defaultProgressBarStyle,\n      progressBarColor: cfg.defaultProgressBarColor,\n      progressBarPosition: cfg.defaultProgressBarPosition,\n      progressBarThickness: cfg.defaultProgressBarThickness,\n      progressAnimation: cfg.defaultProgressAnimation,\n      floating: cfg.defaultFloating,\n      rippleEffect: cfg.defaultRippleEffect,\n      swipeToDismiss: cfg.defaultSwipeToDismiss,\n      priority: cfg.defaultPriority,\n      stagger: cfg.defaultStagger,\n    };\n\n    const toastOptions: ToastOptions =\n      typeof options === 'string' ? { ...base, description: options } : { ...base, ...options };\n\n    if (cfg.globalClassName) {\n      toastOptions.className = toastOptions.className\n        ? `${cfg.globalClassName} ${toastOptions.className}`\n        : cfg.globalClassName;\n    }\n    if (cfg.globalStyle) {\n      toastOptions.style = { ...cfg.globalStyle, ...(toastOptions.style || {}) };\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 ?? cfg.defaultDuration,\n      pauseOnHover: toastOptions.pauseOnHover ?? true,\n      dismissible: toastOptions.dismissible ?? true,\n      dismissOnClick: 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      actions: toastOptions.actions,\n    };\n\n    if (!toast.icon && !toast.emoji && toast.variant && toast.variant in iconStrings) {\n      toast.iconString = iconStrings[toast.variant];\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\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 =\n  (variant: ToastVariant) =>\n  (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  createToast({ ...options, component, variant: 'custom' });\n\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 loadingOpts = typeof options.loading === 'string' ? { description: options.loading } : options.loading;\n  const id = createToast({ ...loadingOpts, variant: 'loading', duration: 0 });\n\n  const defaultDuration = useToastStore.getState().config.defaultDuration;\n\n  try {\n    const data = await promise;\n    const successOpts = typeof options.success === 'function' ? options.success(data) : options.success;\n    toast.update(\n      id,\n      typeof successOpts === 'string'\n        ? { description: successOpts, variant: 'success', duration: defaultDuration }\n        : { ...successOpts, variant: 'success', duration: successOpts.duration ?? defaultDuration }\n    );\n    return data;\n  } catch (error) {\n    const errorOpts = typeof options.error === 'function' ? options.error(error) : options.error;\n    toast.update(\n      id,\n      typeof errorOpts === 'string'\n        ? { description: errorOpts, variant: 'error', duration: defaultDuration }\n        : { ...errorOpts, variant: 'error', duration: errorOpts.duration ?? defaultDuration }\n    );\n    throw error;\n  }\n};\n\ntoast.update = (id: string, options: Partial<ToastOptions>) => {\n  try {\n    const existing = useToastStore.getState().toasts.find((t) => t.id === id);\n    if (existing?.variant === 'loading' && options.variant && options.variant !== 'loading' && !options.duration) {\n      options.duration = useToastStore.getState().config.defaultDuration;\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  if (id) {\n    useToastStore.getState().removeToast(id);\n  } else {\n    useToastStore.getState().clearAllToasts();\n  }\n};\n\ntoast.clearAll = () => {\n  useToastStore.getState().clearAllToasts();\n};\n\nexport const registerPlugin = (plugin: ToastPlugin) => {\n  useToastStore.getState().registerPlugin(plugin);\n};\n\nexport const unregisterPlugin = (name: string) => {\n  useToastStore.getState().unregisterPlugin(name);\n};\n\nexport const cleanup = () => {\n  useToastStore.getState().cleanup();\n};\n\nexport const toastDevTools = {\n  show: () => {\n    if (typeof window !== 'undefined') {\n      window.dispatchEvent(new CustomEvent('react-toast-kit:devtools:show'));\n    }\n  },\n  hide: () => {\n    if (typeof window !== 'undefined') {\n      window.dispatchEvent(new CustomEvent('react-toast-kit:devtools:hide'));\n    }\n  },\n  toggle: () => {\n    if (typeof window !== 'undefined') {\n      window.dispatchEvent(new CustomEvent('react-toast-kit:devtools:toggle'));\n    }\n  },\n  getToasts: () => useToastStore.getState().toasts,\n  ...(typeof process !== 'undefined' && process.env.NODE_ENV === 'development'\n    ? {\n        getActiveToasts: () => useToastStore.getState().toasts,\n        clearAll: () => useToastStore.getState().clearAllToasts(),\n        debugInfo: () => {\n          const state = useToastStore.getState();\n          /* eslint-disable no-console */\n          console.group('React Toast Kit Debug Info');\n          console.table(\n            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          );\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          /* eslint-enable no-console */\n        },\n        getStore: () => useToastStore.getState(),\n        simulateError: () => toast.error('Test error toast for debugging'),\n        simulateSuccess: () => toast.success('Test success toast for debugging'),\n      }\n    : {}),\n};\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  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  // Memoized to avoid rebuilding hundreds of style objects on every render\n  const stylesObj = useMemo(() => ({\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  }), [effectiveTheme, isMinimized]);\n\n  // Don't render in production unless explicitly enabled — placed after all hooks\n  if (typeof process !== 'undefined' && process.env.NODE_ENV === 'production') {\n    return null;\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                  [\n                    { key: 'monitor', label: 'Monitor', icon: '📊' },\n                    { key: 'create', label: 'Create', icon: '➕' },\n                    { key: 'settings', label: 'Settings', icon: '⚙️' },\n                  ] as Array<{ key: 'monitor' | 'create' | 'settings'; label: string; icon: string }>\n                ).map(tab => (\n                  <button\n                    key={tab.key}\n                    onClick={() => setActiveTab(tab.key)}\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=\"bounce\">Bounce</option>\n                            <option value=\"flip\">Flip</option>\n                            <option value=\"zoom\">Zoom</option>\n                            <option value=\"elastic\">Elastic</option>\n                            <option value=\"none\">None</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=\"minimal\">Minimal</option>\n                            <option value=\"outlined\">Outlined</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;","import * as React from 'react';\nimport { ToastDevTools } from './DevTools';\n\nconst { createContext, useContext, useEffect, useState } = React;\n\n// Create a context for DevTools visibility\ninterface DevToolsContextType {\n  visible: boolean;\n  setVisible: (visible: boolean) => void;\n  toggle: () => void;\n}\n\nconst DevToolsContext = createContext<DevToolsContextType>({\n  visible: false,\n  setVisible: () => {},\n  toggle: () => {},\n});\n\n// Configuration for DevTools\nexport interface DevToolsConfig {\n  /**\n   * Whether DevTools should be enabled\n   * @default false in production, true in development\n   */\n  enabled?: boolean;\n  \n  /**\n   * Whether DevTools should be visible by default\n   * @default false\n   */\n  defaultVisible?: boolean;\n  \n  /**\n   * Keyboard shortcut to toggle DevTools\n   * @default 'alt+shift+d'\n   */\n  shortcut?: string;\n  \n  /**\n   * Whether to show DevTools button\n   * @default true\n   */\n  showButton?: boolean;\n  \n  /**\n   * Position of the DevTools button\n   * @default 'bottom-right'\n   */\n  buttonPosition?: 'bottom-right' | 'bottom-left' | 'top-right' | 'top-left';\n}\n\n// Global DevTools configuration\nlet devToolsConfig: DevToolsConfig = {\n  enabled: process.env.NODE_ENV !== 'production',\n  defaultVisible: false,\n  shortcut: 'alt+shift+d',\n  showButton: true,\n  buttonPosition: 'bottom-right',\n};\n\n/**\n * Configure the DevTools globally\n * @param config DevTools configuration\n */\nexport function configureDevTools(config: DevToolsConfig) {\n  devToolsConfig = { ...devToolsConfig, ...config };\n}\n\n/**\n * Hook to access DevTools visibility state\n */\nexport function useDevToolsVisible() {\n  const context = useContext(DevToolsContext);\n  return {\n    visible: context.visible,\n    setVisible: context.setVisible,\n    toggle: context.toggle,\n  };\n}\n\n// The DevTools component that will be lazily loaded\nexport const ClientDevTools = ({ visible = false }: { visible?: boolean }) => {\n  if (!visible) return null;\n  return <ToastDevTools />;\n};\n\n/**\n * DevToolsWrapper - A wrapper for DevTools with visibility control and keyboard shortcut\n */\nexport default function DevToolsWrapper({ \n  children,\n  config \n}: { \n  children?: React.ReactNode;\n  config?: DevToolsConfig;\n}) {\n  // Merge provided config with global config\n  const mergedConfig = { ...devToolsConfig, ...config };\n  const { enabled, defaultVisible, shortcut } = mergedConfig;\n  \n  // DevTools visibility state\n  const [visible, setVisible] = useState<boolean>(defaultVisible || false);\n  \n  // Keyboard shortcut handler\n  useEffect(() => {\n    if (!enabled) return;\n    \n    const handleKeyDown = (e: KeyboardEvent) => {\n      // Default: Alt+Shift+D\n      if (shortcut === 'alt+shift+d' && e.altKey && e.shiftKey && e.key.toLowerCase() === 'd') {\n        setVisible(prevVisible => !prevVisible);\n      } else if (shortcut) {\n        // Custom shortcut parsing\n        const keys = shortcut.toLowerCase().split('+');\n        const modifiers = {\n          alt: keys.includes('alt'),\n          shift: keys.includes('shift'),\n          ctrl: keys.includes('ctrl') || keys.includes('control'),\n          meta: keys.includes('meta') || keys.includes('command') || keys.includes('cmd'),\n        };\n        \n        const key = keys.filter(k => !['alt', 'shift', 'ctrl', 'control', 'meta', 'command', 'cmd'].includes(k))[0];\n        \n        if (\n          (!modifiers.alt || e.altKey) &&\n          (!modifiers.shift || e.shiftKey) &&\n          (!modifiers.ctrl || e.ctrlKey) &&\n          (!modifiers.meta || e.metaKey) &&\n          key === e.key.toLowerCase()\n        ) {\n          setVisible(prevVisible => !prevVisible);\n        }\n      }\n    };\n    \n    window.addEventListener('keydown', handleKeyDown);\n    return () => window.removeEventListener('keydown', handleKeyDown);\n  }, [enabled, shortcut]);\n  \n  // Don't render anything in production unless explicitly enabled\n  if (!enabled) {\n    return <>{children}</>;\n  }\n  \n  // Toggle visibility\n  const toggle = () => setVisible(prevVisible => !prevVisible);\n  \n  return (\n    <DevToolsContext.Provider value={{ visible, setVisible, toggle }}>\n      {children}\n      <ClientDevTools visible={visible} />\n    </DevToolsContext.Provider>\n  );\n}"]}