{"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","../node_modules/.pnpm/zustand@5.0.4_@types+react@19.1.4_react@18.3.1/node_modules/zustand/esm/index.mjs","../src/toast.ts","../src/DevTools.tsx","../src/index.ts","../src/ToastProvider.tsx","../src/ToastPortal.tsx","../src/useToast.ts","../node_modules/.pnpm/zustand@5.0.4_@types+react@19.1.4_react@18.3.1/node_modules/zustand/esm/vanilla/shallow.mjs","../node_modules/.pnpm/zustand@5.0.4_@types+react@19.1.4_react@18.3.1/node_modules/zustand/esm/react/shallow.mjs"],"names":["createStoreImpl","createStore","init_vanilla","__esmMin","createState","state","listeners","setState","partial","replace","nextState","previousState","listener","getState","api","initialState","useStore","selector","identity","slice","React","createImpl","create","init_react","arg","useBoundStore","init_esm","DEFAULT_CONFIG","DEFAULT_POSITION","DEFAULT_THEME","DEFAULT_MAX_TOASTS","getSystemTheme","useToastStore","generateId","iconStrings","createToast","createVariantToast","toast","registerPlugin","unregisterPlugin","cleanup","init_toast","set","get","config","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","options","cfg","base","toastOptions","variant","component","promise","loadingOpts","defaultDuration","data","successOpts","errorOpts","toastDevTools","DevTools_exports","__export","ToastDevTools","DevTools_default","useState","useEffect","useCallback","useMemo","init_DevTools","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","createTestToast","handleKeyDown","e","prevOpen","getVariantStyle","stylesObj","isActive","isWarning","style","color","Fragment","tab","key","fn","prev","memo","useRef","findHighestZIndex","cached","lastCheck","highest","elements","i","z","DEVICE_BREAKPOINTS","TOAST_WIDTHS","SVGIcon","svgString","className","html","AccessibilityAnnouncer","announcement","setAnnouncement","lastTextRef","lastIdRef","latest","text","useSwipeGesture","enabled","onSwipe","threshold","startX","startY","swiping","handleTouchStart","handleTouchMove","dx","dy","handleTouchEnd","ProgressBar","duration","isPaused","progressBarStyle","progressBarColor","progressBarThickness","progressBarPosition","progressAnimation","controls","useAnimation","totalPausedMsRef","pauseStartRef","animStartRef","ease","isVertical","activeMs","baseClass","motion","ToastItem","onDismiss","onPause","onResume","animation","position","toastTheme","defaultStyle","toastRef","handleDismiss","handlePause","handleResume","handleRippleEffect","rect","ripple","variantStyles","isDark","map","from","to","animationVariants","anim","pos","isTop","isLeft","isRight","initial","exit","additionalClasses","classes","vs","iconColor","progressBarClasses","swipeGesture","action","ToastContainer","positionStyle","defaultAnimation","containerClassName","AnimatePresence","ToastPortal","topOffset","bottomOffset","leftOffset","rightOffset","enableAccessibleAnnouncements","suppressHydrationWarning","isMounted","setIsMounted","portalElement","setPortalElement","deviceType","setDeviceType","screenWidthRef","handleResize","width","next","portalDiv","resizeTimer","throttledResize","getToastWidth","getPositionStyle","safe","toastsByPosition","content","posToasts","createPortal","ToastPortal_default","createContext","useContext","ToastProviderContext","ToastProvider","children","defaultDismissible","defaultPauseOnHover","defaultDismissOnClick","defaultProgressBarStyle","defaultProgressBarColor","defaultProgressBarPosition","defaultProgressBarThickness","defaultProgressAnimation","defaultFloating","defaultRippleEffect","defaultSwipeToDismiss","defaultPriority","defaultStagger","enableDevMode","enableDevTools","globalClassName","globalStyle","setConfig","contextValue","DevToolsComponent","useToastProvider","context","isIterable","obj","hasIterableEntries","value","compareEntries","valueA","valueB","mapA","mapB","compareIterables","iteratorA","iteratorB","nextA","nextB","shallow","useShallow","useToast","addToast","updateToast","getToastById","hasToasts","useToastConfig","useToastStats","cssInjected","injectCSS"],"mappings":"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AA;AAAA;;AAAA;AAAA;AAAA;AAAA;AAAA;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;;AAAA;AAAA;AAAA;AAAA;AAAA;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;;AAAA;AAAA;AAAA;AAAA;AAAA;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;;AAAA;AAAA;AAAA;AAAA;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;;AAAA;AAAA;AAAA;AAAA;;AAAA;AAAA;AAAA;AAAA;;AAAA;AAAA;AAAA;AAAA;;AAAA;AAAA;AAAA;AAAA;;AAAA;AAAA;AAAA;AAAA;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;;AAAA;AAAA;AAAA;AAAA;;AAAA;AAAA;AAAA;AAAA;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;;AAAA;AAAA;AAAA;AAAA;AAAA;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;;AAAA;AAAA;AAAA;AAAA;;AAAA;AAAA;AAAA;AAAA;;AAAA;AAAA;AAAA;AAAA;;AAAA;AAAA;AAAA;AAAA;;AAAA;AAAA;AAAA;AAAA;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;;AAAA;AAAA;AAAA;AAAA;AAAA;;AAAA;AAAA;AAAA;AAAA;AAAA;;AAAA;AAAA;AAAA;AAAA;AAAA;;AAAA;AAAA;AAAA;AAAA;AAAA;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;;AAAA;AAAA;AAAA;AAAA;AAAA;;AAAA;AAAA;AAAA;AAAA;AAAA;;AAAA;AAAA;AAAA;AAAA;AAAA;;AAAA;AAAA;AAAA;AAAA;AAAA;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;;AAAA;AAAA;AAAA;;AAAA;AAAA;AAAA;AAAA;AAAA;;AAAA;AAAA;AAAA;AAAA;;AAAA;AAAA;AAAA;;AAAA;AAAA;AAAA;AAAA;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;;AAAA;AAAA;AAAA;AAAA;;AAAA;;AAAA;AAAA;AAAA;AAAA;;AAAA;AAAA;AAAA;;AAAA;AAAA;AAAA;AAAA;AAAA;;AAAA;AAAA;AAAA;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;;AAAA;AAAA;AAAA;AAAA;;AAAA;AAAA;AAAA;AAAA;AAAA;;AAAA;AAAA;AAAA;AAAA;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;;AAAA;AAAA;AAAA;AAAA;AAAA;;AAAA;AAAA;AAAA;AAAA;;AAAA;AAAA;AAAA;AAAA;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;;AAAA;AAAA;AAAA;AAAA;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;;AAAA;AAAA;AAAA;AAAA;AAAA;;AAAA;AAAA;AAAA;AAAA;;AAAA;AAAA;AAAA;AAAA;;AAAA;AAAA;AAAA;AAAA;;AAAA;AAAA;AAAA;AAAA;;AAAA;AAAA;AAAA;AAAA;AAAA;;AAAA;AAAA;AAAA;AAAA;AAAA;;AAAA;AAAA;AAAA;AAAA;AAAA;;AAAA;AAAA;AAAA;AAAA;;AAAA;AAAA;AAAA;;AAAA;AAAA;AAAA;AAAA;;AAAA;AAAA;AAAA;;AAAA;AAAA;AAAA;;AAAA;AAAA;AAAA;AAAA;AAAA;;AAAA;AAAA;AAAA;AAAA;AAAA;;AAAA;AAAA;AAAA;AAAA;;AAAA;AAAA;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;;AAAA;AAAA;AAAA;;AAAA;AAAA;AAAA;AAAA;;AAAA;AAAA;AAAA;AAAA;;AAAA;AAAA;AAAA;AAAA;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;;AAAA;AAAA;AAAA;;AAAA;AAAA;AAAA;AAAA;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;;AAAA;AAAA;AAAA;;AAAA;AAAA;AAAA;;AAAA;AAAA;AAAA;AAAA;AAAA;;AAAA;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;;AAAA;AAAA;AAAA;AAAA;AAAA;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;;AAAA;AAAA;AAAA;AAAA;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;;AAAA;AAAA;AAAA;AAAA;AAAA;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;;AAAA;AAAA;AAAA;AAAA;AAAA;;AAAA;AAAA;AAAA;AAAA;AAAA;;AAAA;AAAA;AAAA;AAAA;;AAAA;AAAA;AAAA;AAAA;;AAAA;AAAA;AAAA;AAAA;;AAAA;AAAA;AAAA;AAAA;;AAAA;AAAA;AAAA;AAAA;;AAAA;AAAA;AAAA;AAAA;;AAAA;AAAA;AAAA;AAAA;;AAAA;AAAA;AAAA;AAAA;;AAAA;AAAA;AAAA;AAAA;;AAAA;AAAA;AAAA;;AAAA;AAAA;AAAA;;AAAA;AAAA;AAAA;;AAAA;AAAA;AAAA;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,CAAA,CACpB,QAAS,CAAA,IAAA,CAAK,YAAaA,CAAAA,CAAAA,CAAO,SAAS,IAAK,CAAA,UAAA,EAAc,IAAI,CAAA,CAClEiL,CAAc,CAAA,CAAA,EAChB,CAASvL,MAAAA,CAAAA,CAAG,CACV,OAAQ,CAAA,IAAA,CAAK,yCAA2CA,CAAAA,CAAC,EAC3D,CAAA,CACF,EAEI,OAAO,OAAW,GAChB,GAAA,QAAA,CAAS,UAAe,GAAA,SAAA,CAC1B,QAAS,CAAA,gBAAA,CAAiB,kBAAoBwL,CAAAA,EAAS,EAEvDA,EAAU,EAAA,CAAA","file":"index.cjs","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","export * from 'zustand/vanilla';\nexport * from 'zustand/react';\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;","// __CSS_CONTENT__ is replaced at compile time by tsup's `define` option —\n// see tsup.config.ts. At runtime this is already a plain string literal.\ndeclare const __CSS_CONTENT__: string;\n\nlet cssInjected = false;\n\nexport const injectCSS = () => {\n  if (typeof document === 'undefined' || cssInjected) return;\n  if (document.getElementById('react-toast-kit-styles')) {\n    cssInjected = true;\n    return;\n  }\n  try {\n    const style = document.createElement('style');\n    style.id = 'react-toast-kit-styles';\n    style.textContent = __CSS_CONTENT__;\n    document.head.insertBefore(style, document.head.firstChild ?? null);\n    cssInjected = true;\n  } catch (e) {\n    console.warn('[react-toast-kit] Could not inject CSS:', e);\n  }\n};\n\nif (typeof window !== 'undefined') {\n  if (document.readyState === 'loading') {\n    document.addEventListener('DOMContentLoaded', injectCSS);\n  } else {\n    injectCSS();\n  }\n}\n\n// Core exports — optimized for tree shaking\nexport { toast } from './toast';\nexport { ToastProvider } from './ToastProvider';\nexport { useToast, useToastConfig, useToastStats } from './useToast';\nexport { useToastStore } from './toast';\nexport { registerPlugin, unregisterPlugin, cleanup } from './toast';\nexport { useToastProvider } from './ToastProvider';\n\nexport type {\n  Toast,\n  ToastOptions,\n  ToastPosition,\n  ToastVariant,\n  ToastTheme,\n  ToastAnimation,\n  ToastStyle,\n  ToastAction,\n  ProgressBarStyle,\n  CustomAnimation,\n  ToastPlugin,\n  StrictToastOptions,\n  ToastStoreConfig,\n} from './toast';\n","import * as React from 'react';\n\ndeclare global {\n  interface Window {\n    __TOAST_DEV_MODE__?: boolean;\n  }\n}\nimport { useToastStore } from './toast';\nimport type { ToastTheme, ToastPosition, ToastAnimation, ToastStyle, ProgressBarStyle } from './toast';\nimport ToastPortal from './ToastPortal';\n\nconst { createContext, useContext, useEffect, useMemo } = React;\n\ninterface ToastProviderProps {\n  children: React.ReactNode;\n\n  // Basic configuration\n  theme?: ToastTheme;\n  position?: ToastPosition;\n  maxToasts?: number;\n\n  // Default styling options\n  defaultAnimation?: ToastAnimation;\n  defaultStyle?: ToastStyle;\n  defaultDuration?: number;\n\n  // Default behavior options\n  defaultDismissible?: boolean;\n  defaultPauseOnHover?: boolean;\n  defaultDismissOnClick?: boolean;\n\n  // Progress bar defaults\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\n  // Advanced defaults\n  defaultFloating?: boolean;\n  defaultRippleEffect?: boolean;\n  defaultSwipeToDismiss?: boolean;\n  defaultPriority?: 'low' | 'normal' | 'high';\n  defaultStagger?: number;\n\n  // Container styling\n  containerClassName?: string;\n  topOffset?: number;\n  bottomOffset?: number;\n  leftOffset?: number;\n  rightOffset?: number;\n\n  // Features\n  enableAccessibleAnnouncements?: boolean;\n  enableDevMode?: boolean;\n  enableDevTools?: boolean;\n  suppressHydrationWarning?: boolean;\n\n  // Global overrides\n  globalClassName?: string;\n  globalStyle?: React.CSSProperties;\n}\n\ninterface ToastProviderContext {\n  theme: ToastTheme;\n  effectiveTheme: 'light' | 'dark';\n  position: ToastPosition;\n  maxToasts: number;\n  defaultAnimation: ToastAnimation;\n  defaultStyle: ToastStyle;\n  defaultDuration: number;\n  defaultDismissible: boolean;\n  defaultPauseOnHover: boolean;\n  defaultDismissOnClick: boolean;\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 ToastProviderContext = createContext<ToastProviderContext | null>(null);\n\nexport const ToastProvider: React.FC<ToastProviderProps> = ({\n  children,\n  theme = 'system',\n  position = 'top-right',\n  maxToasts = 3,\n  defaultAnimation = 'slide',\n  defaultStyle = 'solid',\n  defaultDuration = 4000,\n  defaultDismissible = true,\n  defaultPauseOnHover = true,\n  defaultDismissOnClick = false,\n  defaultProgressBarStyle,\n  defaultProgressBarColor,\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  containerClassName,\n  topOffset,\n  bottomOffset,\n  leftOffset,\n  rightOffset,\n  enableAccessibleAnnouncements = true,\n  enableDevMode = false,\n  enableDevTools = false,\n  suppressHydrationWarning = false,\n  globalClassName,\n  globalStyle,\n}) => {\n  const { setTheme, setMaxToasts, setConfig, effectiveTheme } = useToastStore();\n\n  // Sync theme and maxToasts into the store\n  useEffect(() => {\n    setTheme(theme);\n  }, [theme, setTheme]);\n\n  useEffect(() => {\n    setMaxToasts(maxToasts);\n  }, [maxToasts, setMaxToasts]);\n\n  // Sync all provider defaults into the store so the imperative toast() API\n  // can access them without window globals.\n  useEffect(() => {\n    setConfig({\n      defaultDuration,\n      defaultDismissible,\n      defaultPauseOnHover,\n      defaultDismissOnClick,\n      defaultAnimation,\n      defaultStyle,\n      defaultProgressBarStyle,\n      defaultProgressBarColor,\n      defaultProgressBarPosition,\n      defaultProgressBarThickness,\n      defaultProgressAnimation,\n      defaultFloating,\n      defaultRippleEffect,\n      defaultSwipeToDismiss,\n      defaultPriority,\n      defaultStagger,\n      globalClassName,\n      globalStyle,\n    });\n  }, [\n    setConfig,\n    defaultDuration,\n    defaultDismissible,\n    defaultPauseOnHover,\n    defaultDismissOnClick,\n    defaultAnimation,\n    defaultStyle,\n    defaultProgressBarStyle,\n    defaultProgressBarColor,\n    defaultProgressBarPosition,\n    defaultProgressBarThickness,\n    defaultProgressAnimation,\n    defaultFloating,\n    defaultRippleEffect,\n    defaultSwipeToDismiss,\n    defaultPriority,\n    defaultStagger,\n    globalClassName,\n    globalStyle,\n  ]);\n\n  // Dev mode: expose store reference on window for debugging\n  useEffect(() => {\n    if (enableDevMode && typeof window !== 'undefined' && process.env.NODE_ENV === 'development') {\n      window.__TOAST_DEV_MODE__ = true;\n    }\n    return () => {\n      if (typeof window !== 'undefined') {\n        delete window.__TOAST_DEV_MODE__;\n      }\n    };\n  }, [enableDevMode]);\n\n  const contextValue = useMemo<ToastProviderContext>(\n    () => ({\n      theme,\n      effectiveTheme,\n      position,\n      maxToasts,\n      defaultAnimation,\n      defaultStyle,\n      defaultDuration,\n      defaultDismissible,\n      defaultPauseOnHover,\n      defaultDismissOnClick,\n      defaultProgressBarStyle,\n      defaultProgressBarColor,\n      defaultProgressBarPosition,\n      defaultProgressBarThickness,\n      defaultProgressAnimation,\n      defaultFloating,\n      defaultRippleEffect,\n      defaultSwipeToDismiss,\n      defaultPriority,\n      defaultStagger,\n      globalClassName,\n      globalStyle,\n    }),\n    [\n      theme,\n      effectiveTheme,\n      position,\n      maxToasts,\n      defaultAnimation,\n      defaultStyle,\n      defaultDuration,\n      defaultDismissible,\n      defaultPauseOnHover,\n      defaultDismissOnClick,\n      defaultProgressBarStyle,\n      defaultProgressBarColor,\n      defaultProgressBarPosition,\n      defaultProgressBarThickness,\n      defaultProgressAnimation,\n      defaultFloating,\n      defaultRippleEffect,\n      defaultSwipeToDismiss,\n      defaultPriority,\n      defaultStagger,\n      globalClassName,\n      globalStyle,\n    ]\n  );\n\n  // DevTools are only rendered in development and only when explicitly enabled.\n  // Loaded lazily to keep the main bundle free of DevTools code.\n  const DevToolsComponent = useMemo(() => {\n    if (!enableDevTools || process.env.NODE_ENV !== 'development') return null;\n    // Lazy-require so the DevTools module is excluded from production bundles\n    // eslint-disable-next-line @typescript-eslint/no-var-requires\n    const { ToastDevTools } = require('./DevTools');\n    return ToastDevTools as React.FC;\n  }, [enableDevTools]);\n\n  return (\n    <ToastProviderContext.Provider value={contextValue}>\n      {children}\n      <ToastPortal\n        containerClassName={containerClassName}\n        topOffset={topOffset}\n        bottomOffset={bottomOffset}\n        leftOffset={leftOffset}\n        rightOffset={rightOffset}\n        defaultAnimation={defaultAnimation}\n        defaultStyle={defaultStyle}\n        enableAccessibleAnnouncements={enableAccessibleAnnouncements}\n        suppressHydrationWarning={suppressHydrationWarning}\n      />\n      {DevToolsComponent && <DevToolsComponent />}\n    </ToastProviderContext.Provider>\n  );\n};\n\nexport const useToastProvider = () => {\n  const context = useContext(ToastProviderContext);\n  if (!context) {\n    throw new Error('useToastProvider must be used within a ToastProvider');\n  }\n  return context;\n};\n","import * as React from 'react';\nimport { createPortal } from 'react-dom';\nimport { useToastStore } from './toast';\nimport { AnimatePresence, motion, useAnimation } from 'framer-motion';\nimport type { Toast, ToastPosition, ToastAnimation, ToastStyle, ToastAction } from './toast';\nimport type { TargetAndTransition } from 'framer-motion';\n\nconst { useEffect, useState, memo, useRef, useCallback, useMemo } = React;\n\n// Scans DOM for the highest in-use z-index so the portal sits on top.\n// Result is cached for 5 seconds to avoid repeated DOM walks.\nconst findHighestZIndex = (() => {\n  let cached: number | null = null;\n  let lastCheck = 0;\n  return (): number => {\n    const now = Date.now();\n    if (cached !== null && now - lastCheck < 5000) return cached;\n    let highest = 9000;\n    if (typeof window !== 'undefined') {\n      try {\n        const elements = document.getElementsByTagName('*');\n        for (let i = 0; i < elements.length; i++) {\n          const z = parseInt(window.getComputedStyle(elements[i]).zIndex, 10);\n          if (z && z > highest) highest = z;\n        }\n      } catch {\n        // Ignore cross-origin or permission errors\n      }\n    }\n    cached = highest + 1;\n    lastCheck = now;\n    return cached;\n  };\n})();\n\ninterface ToastPortalProps {\n  containerClassName?: string;\n  topOffset?: number;\n  bottomOffset?: number;\n  leftOffset?: number;\n  rightOffset?: number;\n  defaultAnimation?: ToastAnimation;\n  defaultStyle?: ToastStyle;\n  enableAccessibleAnnouncements?: boolean;\n  suppressHydrationWarning?: boolean;\n}\n\nconst DEVICE_BREAKPOINTS = { mobile: 640, tablet: 1024 };\nconst TOAST_WIDTHS = { mobile: 320, tablet: 360, desktop: 380 };\n\n// ─── SVGIcon ────────────────────────────────────────────────────────────────\n\nconst SVGIcon = memo(({ svgString, className = '' }: { svgString: string; className?: string }) => {\n  const html = useMemo(() => ({ __html: svgString }), [svgString]);\n  return <div className={className} dangerouslySetInnerHTML={html} />;\n});\nSVGIcon.displayName = 'SVGIcon';\n\n// ─── AccessibilityAnnouncer ──────────────────────────────────────────────────\n\nconst AccessibilityAnnouncer = memo(({ toasts }: { toasts: Toast[] }) => {\n  const [announcement, setAnnouncement] = useState('');\n  const lastTextRef = useRef('');\n  const lastIdRef = useRef<string | null>(null);\n\n  useEffect(() => {\n    if (toasts.length === 0) return;\n    const latest = toasts[0];\n    if (latest.id === lastIdRef.current) return;\n\n    let text = latest.variant ? `${latest.variant} notification: ` : '';\n    if (latest.title) text += latest.title + (latest.description ? '. ' : '');\n    if (latest.description) text += latest.description;\n\n    if (text && text !== lastTextRef.current) {\n      lastTextRef.current = text;\n      lastIdRef.current = latest.id;\n      setAnnouncement(text);\n      setTimeout(() => setAnnouncement(''), 1000);\n    }\n  }, [toasts]);\n\n  if (!announcement) return null;\n  return (\n    <div aria-live=\"polite\" aria-atomic=\"true\" className=\"sr-only\" role=\"status\">\n      {announcement}\n    </div>\n  );\n});\nAccessibilityAnnouncer.displayName = 'AccessibilityAnnouncer';\n\n// ─── useSwipeGesture ─────────────────────────────────────────────────────────\n\nconst useSwipeGesture = (enabled: boolean, onSwipe: () => void, threshold = 100) => {\n  const startX = useRef(0);\n  const startY = useRef(0);\n  const swiping = useRef(false);\n\n  const handleTouchStart = useCallback(\n    (e: React.TouchEvent) => {\n      if (!enabled) return;\n      startX.current = e.touches[0].clientX;\n      startY.current = e.touches[0].clientY;\n      swiping.current = false;\n    },\n    [enabled]\n  );\n\n  const handleTouchMove = useCallback(\n    (e: React.TouchEvent) => {\n      if (!enabled) return;\n      const dx = Math.abs(e.touches[0].clientX - startX.current);\n      const dy = Math.abs(e.touches[0].clientY - startY.current);\n      if (dx > dy && dx > 10) {\n        swiping.current = true;\n        e.preventDefault();\n      }\n    },\n    [enabled]\n  );\n\n  const handleTouchEnd = useCallback(\n    (e: React.TouchEvent) => {\n      if (!enabled || !swiping.current) return;\n      if (Math.abs(e.changedTouches[0].clientX - startX.current) > threshold) onSwipe();\n      swiping.current = false;\n    },\n    [enabled, onSwipe, threshold]\n  );\n\n  return { handleTouchStart, handleTouchMove, handleTouchEnd };\n};\n\n// ─── ProgressBar ─────────────────────────────────────────────────────────────\n\n// Separate component that owns the animation so it can pause/resume cleanly.\nconst ProgressBar = memo(({\n  duration,\n  isPaused,\n  progressBarStyle,\n  progressBarColor,\n  progressBarThickness,\n  progressBarPosition,\n  progressAnimation,\n}: {\n  duration: number;\n  isPaused: boolean;\n  progressBarStyle?: string;\n  progressBarColor?: string;\n  progressBarThickness?: number;\n  progressBarPosition?: string;\n  progressAnimation?: string;\n}) => {\n  const controls = useAnimation();\n  const totalPausedMsRef = useRef(0);\n  const pauseStartRef = useRef<number | null>(null);\n  const animStartRef = useRef(Date.now());\n  const ease = (progressAnimation || 'linear') as string;\n\n  const isVertical = progressBarPosition === 'left' || progressBarPosition === 'right';\n\n  // Start animation once on mount — scaleX/scaleY is GPU-accelerated (no layout reflow)\n  useEffect(() => {\n    animStartRef.current = Date.now();\n    if (isVertical) {\n      controls.start({ scaleY: 0, transition: { duration: duration / 1000, ease } });\n    } else {\n      controls.start({ scaleX: 0, transition: { duration: duration / 1000, ease } });\n    }\n    // eslint-disable-next-line react-hooks/exhaustive-deps\n  }, []);\n\n  // Pause / resume the animation whenever the toast is hovered\n  useEffect(() => {\n    if (isPaused) {\n      controls.stop();\n      pauseStartRef.current = Date.now();\n    } else if (pauseStartRef.current !== null) {\n      totalPausedMsRef.current += Date.now() - pauseStartRef.current;\n      pauseStartRef.current = null;\n      const activeMs = Date.now() - animStartRef.current - totalPausedMsRef.current;\n      const remaining = Math.max(0, duration / 1000 - activeMs / 1000);\n      if (isVertical) {\n        controls.start({ scaleY: 0, transition: { duration: remaining, ease: 'linear' } });\n      } else {\n        controls.start({ scaleX: 0, transition: { duration: remaining, ease: 'linear' } });\n      }\n    }\n    // eslint-disable-next-line react-hooks/exhaustive-deps\n  }, [isPaused]);\n\n  const baseClass = `react-toast-progress${progressBarStyle ? ` ${progressBarStyle}` : ''}`;\n\n  return (\n    <div className={baseClass}>\n      <motion.div\n        animate={controls}\n        initial={isVertical ? { scaleY: 1 } : { scaleX: 1 }}\n        className=\"react-toast-progress-fill\"\n        style={{\n          backgroundColor: progressBarColor || undefined,\n          transformOrigin: isVertical ? 'top center' : 'left center',\n          ...(isVertical\n            ? { width: progressBarThickness ? `${progressBarThickness}px` : undefined }\n            : { height: progressBarThickness ? `${progressBarThickness}px` : undefined }),\n        }}\n      />\n    </div>\n  );\n});\nProgressBar.displayName = 'ProgressBar';\n\n// ─── ToastItem ───────────────────────────────────────────────────────────────\n\nconst ToastItem = memo(({\n  toast,\n  onDismiss,\n  onPause,\n  onResume,\n  animation,\n  position,\n  toastTheme,\n  defaultStyle,\n}: {\n  toast: Toast;\n  onDismiss: (id: string) => void;\n  onPause: (id: string) => void;\n  onResume: (id: string) => void;\n  animation: ToastAnimation;\n  position: ToastPosition;\n  toastTheme: 'light' | 'dark';\n  defaultStyle: ToastStyle;\n}) => {\n  const toastRef = useRef<HTMLDivElement>(null);\n\n  // Subscribe only to this toast's pause state to avoid re-rendering all items\n  const isPaused = useToastStore((state) => state.pausedToasts.has(toast.id));\n\n  const handleDismiss = useCallback(() => onDismiss(toast.id), [onDismiss, toast.id]);\n\n  const handlePause = useCallback(() => {\n    if (toast.pauseOnHover) onPause(toast.id);\n  }, [onPause, toast.id, toast.pauseOnHover]);\n\n  const handleResume = useCallback(() => onResume(toast.id), [onResume, toast.id]);\n\n  const handleRippleEffect = useCallback(\n    (e: React.MouseEvent<HTMLDivElement>) => {\n      if (toast.rippleEffect && toastRef.current) {\n        const rect = toastRef.current.getBoundingClientRect();\n        const ripple = document.createElement('div');\n        ripple.className = 'toast-ripple-element';\n        ripple.style.left = `${e.clientX - rect.left}px`;\n        ripple.style.top = `${e.clientY - rect.top}px`;\n        toastRef.current.appendChild(ripple);\n        setTimeout(() => {\n          if (toastRef.current?.contains(ripple)) toastRef.current.removeChild(ripple);\n        }, 700);\n      }\n      if (toast.dismissOnClick) handleDismiss();\n    },\n    [toast.rippleEffect, toast.dismissOnClick, handleDismiss]\n  );\n\n  // CSS custom properties for gradient variant\n  const variantStyles = useMemo<React.CSSProperties>(() => {\n    const styleClass = toast.visualStyle || defaultStyle;\n    if (styleClass !== 'gradient') return {};\n    const isDark = toastTheme === 'dark';\n    const map: Record<string, [string, string]> = {\n      success: [isDark ? 'rgba(5,95,70,.9)' : 'rgba(16,185,129,.8)', isDark ? 'rgba(4,120,87,.8)' : 'rgba(5,150,105,.7)'],\n      error: [isDark ? 'rgba(153,27,27,.9)' : 'rgba(239,68,68,.8)', isDark ? 'rgba(185,28,28,.8)' : 'rgba(220,38,38,.7)'],\n      warning: [isDark ? 'rgba(146,64,14,.9)' : 'rgba(245,158,11,.8)', isDark ? 'rgba(180,83,9,.8)' : 'rgba(217,119,6,.7)'],\n      info: [isDark ? 'rgba(30,64,175,.9)' : 'rgba(59,130,246,.8)', isDark ? 'rgba(29,78,216,.8)' : 'rgba(37,99,235,.7)'],\n    };\n    const [from, to] = map[toast.variant] ?? [\n      isDark ? 'rgba(55,65,81,.9)' : 'rgba(229,231,235,.8)',\n      isDark ? 'rgba(75,85,99,.8)' : 'rgba(209,213,219,.7)',\n    ];\n    return { '--toast-gradient-from': from, '--toast-gradient-to': to } as React.CSSProperties;\n  }, [toast.variant, toast.visualStyle, toastTheme, defaultStyle]);\n\n  const animationVariants = useMemo(() => {\n    if (toast.customAnimation) {\n      return {\n        initial: toast.customAnimation.initial as TargetAndTransition,\n        animate: toast.customAnimation.animate as TargetAndTransition,\n        exit: toast.customAnimation.exit as TargetAndTransition,\n      };\n    }\n\n    const anim = toast.animation || animation;\n    const pos = toast.position || position;\n    const isTop = pos.startsWith('top');\n    const isLeft = pos.endsWith('left');\n    const isRight = pos.endsWith('right');\n\n    if (anim === 'none') return { initial: { opacity: 1 }, animate: { opacity: 1 }, exit: { opacity: 1 } };\n    if (anim === 'fade') return { initial: { opacity: 0 }, animate: { opacity: 1 }, exit: { opacity: 0 } };\n\n    if (anim === 'bounce') {\n      const initial: TargetAndTransition = { opacity: 0, scale: 0.9 };\n      if (isTop) Object.assign(initial, { y: -80 });\n      else if (isLeft) Object.assign(initial, { x: -80 });\n      else if (isRight) Object.assign(initial, { x: 80 });\n      else Object.assign(initial, { y: 80 });\n      return {\n        initial,\n        animate: { opacity: 1, y: 0, x: 0, scale: 1, transition: { type: 'spring', stiffness: 350, damping: 25 } },\n        exit: { opacity: 0, scale: 0.9, transition: { duration: 0.2 } },\n      };\n    }\n\n    if (anim === 'flip') {\n      return {\n        initial: { opacity: 0, rotateX: 90, perspective: 400 },\n        animate: { opacity: 1, rotateX: 0, perspective: 400, transition: { type: 'spring', stiffness: 300, damping: 25 } },\n        exit: { opacity: 0, rotateX: 90, perspective: 400, transition: { duration: 0.3 } },\n      };\n    }\n\n    if (anim === 'zoom') {\n      return {\n        initial: { opacity: 0, scale: 0.5 },\n        animate: { opacity: 1, scale: 1, transition: { type: 'spring', stiffness: 400, damping: 30 } },\n        exit: { opacity: 0, scale: 0.5, transition: { duration: 0.2 } },\n      };\n    }\n\n    if (anim === 'elastic') {\n      const initial: TargetAndTransition = { opacity: 0, scale: 0.8 };\n      if (isTop) Object.assign(initial, { y: -30 });\n      else if (isLeft) Object.assign(initial, { x: -30 });\n      else if (isRight) Object.assign(initial, { x: 30 });\n      else Object.assign(initial, { y: 30 });\n      return {\n        initial,\n        animate: {\n          opacity: 1, y: 0, x: 0, scale: 1,\n          transition: { type: 'spring', stiffness: 500, damping: 20, mass: 0.8 },\n        },\n        exit: {\n          opacity: 0, scale: 0.85,\n          transition: { type: 'spring', stiffness: 600, damping: 35 },\n        },\n      };\n    }\n\n    // slide (default)\n    const initial: TargetAndTransition = { opacity: 0 };\n    const exit: TargetAndTransition = { opacity: 0 };\n    if (isTop) { Object.assign(initial, { y: -20 }); Object.assign(exit, { y: -20 }); }\n    else if (isLeft) { Object.assign(initial, { x: -20 }); Object.assign(exit, { x: -20 }); }\n    else if (isRight) { Object.assign(initial, { x: 20 }); Object.assign(exit, { x: 20 }); }\n    else { Object.assign(initial, { y: 20 }); Object.assign(exit, { y: 20 }); }\n\n    return { initial, animate: { opacity: 1, y: 0, x: 0 }, exit };\n  }, [toast.customAnimation, toast.animation, animation, toast.position, position]);\n\n  const additionalClasses = useMemo(() => {\n    const classes: string[] = [];\n    if (toast.floating) classes.push('react-toast-floating');\n    if (toast.rippleEffect) classes.push('toast-ripple');\n    const vs = toast.visualStyle || defaultStyle;\n    if (vs === 'glass' || vs === 'gradient') classes.push('toast-soft-shadow');\n    return classes.join(' ');\n  }, [toast.floating, toast.rippleEffect, toast.visualStyle, defaultStyle]);\n\n  const iconColor = useMemo(() => {\n    if (toast.variant === 'custom') return '';\n    if (!toast.variant || toast.variant === 'default') return toastTheme === 'dark' ? 'text-gray-300' : 'text-gray-500';\n    return 'text-white';\n  }, [toast.variant, toastTheme]);\n\n  const progressBarClasses = useMemo(() => {\n    if (toast.progressBarStyle) return toast.progressBarStyle;\n    if (toast.variant === 'custom') return 'bg-white/20';\n    if (!toast.variant || toast.variant === 'default')\n      return toastTheme === 'dark' ? 'bg-gray-600' : 'bg-gray-300';\n    return 'bg-white/30';\n  }, [toast.progressBarStyle, toast.variant, toastTheme]);\n\n  const swipeGesture = useSwipeGesture(toast.swipeToDismiss || false, handleDismiss);\n\n  return (\n    <motion.div\n      key={toast.id}\n      className=\"react-toast-item w-full\"\n      initial={animationVariants.initial}\n      animate={animationVariants.animate}\n      exit={animationVariants.exit}\n      transition={{ duration: toast.updating ? 0.1 : 0.2 }}\n      layout\n    >\n      <div\n        ref={toastRef}\n        role={toast.variant === 'error' ? 'alert' : 'status'}\n        aria-live={toast.variant === 'error' ? 'assertive' : 'polite'}\n        className={`relative overflow-hidden shadow-lg rounded-lg react-toast w-full ${toast.className || ''} ${additionalClasses}`}\n        style={{ ...(toast.style || {}), ...variantStyles }}\n        onMouseEnter={handlePause}\n        onMouseLeave={handleResume}\n        onClick={handleRippleEffect}\n        onTouchStart={swipeGesture.handleTouchStart}\n        onTouchMove={swipeGesture.handleTouchMove}\n        onTouchEnd={swipeGesture.handleTouchEnd}\n        data-variant={toast.variant}\n        data-theme={toastTheme}\n        data-style={toast.visualStyle || defaultStyle}\n        data-progress-position={toast.progressBarPosition || 'bottom'}\n        data-testid={`toast-${toast.id}`}\n        tabIndex={0}\n      >\n        {/* Progress bar — purely visual; the store timer owns dismissal timing */}\n        {toast.duration > 0 && (\n          <ProgressBar\n            duration={toast.duration}\n            isPaused={isPaused}\n            progressBarStyle={progressBarClasses}\n            progressBarColor={toast.progressBarColor}\n            progressBarThickness={toast.progressBarThickness}\n            progressBarPosition={toast.progressBarPosition}\n            progressAnimation={toast.progressAnimation}\n          />\n        )}\n\n        <div className=\"p-4 toast-content\">\n          {toast.variant === 'custom' && toast.component ? (\n            toast.component\n          ) : (\n            <div className=\"flex items-start\">\n              {toast.emoji ? (\n                <div className=\"flex-shrink-0 mr-3 toast-emoji\">{toast.emoji}</div>\n              ) : toast.icon ? (\n                <div className={`flex-shrink-0 mr-3 ${iconColor} toast-icon-container toast-icon-animated`}>\n                  {toast.icon}\n                </div>\n              ) : toast.iconString ? (\n                <div className={`flex-shrink-0 mr-3 ${iconColor} toast-icon-container toast-icon-animated`}>\n                  <SVGIcon svgString={toast.iconString} className={iconColor} />\n                </div>\n              ) : null}\n\n              <div className=\"flex-1\">\n                {toast.title && <h4 className=\"font-medium mb-1\">{toast.title}</h4>}\n                {toast.description && <div className=\"toast-description\">{toast.description}</div>}\n                {toast.actions && toast.actions.length > 0 && (\n                  <div className=\"toast-actions\">\n                    {toast.actions.map((action: ToastAction, i: number) => (\n                      <button\n                        key={i}\n                        data-variant={action.variant || 'primary'}\n                        className=\"toast-action-btn\"\n                        onClick={(e) => {\n                          e.stopPropagation();\n                          action.onClick(toast.id);\n                          if (action.closeOnClick !== false) onDismiss(toast.id);\n                        }}\n                      >\n                        {action.label}\n                      </button>\n                    ))}\n                  </div>\n                )}\n              </div>\n\n              {toast.dismissible && (\n                <button\n                  onClick={(e) => { e.stopPropagation(); handleDismiss(); }}\n                  className=\"react-toast-close\"\n                  aria-label=\"Close notification\"\n                  data-dismiss=\"toast\"\n                >\n                  <svg className=\"w-4 h-4\" 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              )}\n            </div>\n          )}\n        </div>\n      </div>\n    </motion.div>\n  );\n});\nToastItem.displayName = 'ToastItem';\n\n// ─── ToastContainer ───────────────────────────────────────────────────────────\n\nconst ToastContainer = memo(({\n  position,\n  toasts,\n  positionStyle,\n  onDismiss,\n  onPause,\n  onResume,\n  defaultAnimation,\n  toastTheme,\n  defaultStyle,\n  containerClassName,\n}: {\n  position: ToastPosition;\n  toasts: Toast[];\n  positionStyle: React.CSSProperties;\n  onDismiss: (id: string) => void;\n  onPause: (id: string) => void;\n  onResume: (id: string) => void;\n  defaultAnimation: ToastAnimation;\n  toastTheme: 'light' | 'dark';\n  defaultStyle: ToastStyle;\n  containerClassName?: string;\n}) => (\n  <div\n    className={`fixed flex flex-col z-50 react-toast-container ${containerClassName || ''}`}\n    data-position={position}\n    data-theme={toastTheme}\n    style={positionStyle}\n  >\n    <AnimatePresence mode=\"sync\">\n      {toasts.map((t) => (\n        <ToastItem\n          key={t.id}\n          toast={t}\n          onDismiss={onDismiss}\n          onPause={onPause}\n          onResume={onResume}\n          animation={t.animation || defaultAnimation}\n          position={position}\n          toastTheme={toastTheme}\n          defaultStyle={defaultStyle}\n        />\n      ))}\n    </AnimatePresence>\n  </div>\n));\nToastContainer.displayName = 'ToastContainer';\n\n// ─── ToastPortal ──────────────────────────────────────────────────────────────\n\nconst ToastPortal: React.FC<ToastPortalProps> = ({\n  containerClassName = '',\n  topOffset = 16,\n  bottomOffset = 16,\n  leftOffset = 16,\n  rightOffset = 16,\n  defaultAnimation = 'slide',\n  defaultStyle = 'solid',\n  enableAccessibleAnnouncements = true,\n  suppressHydrationWarning = false,\n}) => {\n  const [isMounted, setIsMounted] = useState(false);\n  const [portalElement, setPortalElement] = useState<HTMLDivElement | null>(null);\n  const [deviceType, setDeviceType] = useState<'mobile' | 'tablet' | 'desktop'>('desktop');\n  const screenWidthRef = useRef(1024);\n\n  // Use Zustand selectors to subscribe only to the data this component needs\n  const toasts = useToastStore((state) => state.toasts);\n  const removeToast = useToastStore((state) => state.removeToast);\n  const pauseToast = useToastStore((state) => state.pauseToast);\n  const resumeToast = useToastStore((state) => state.resumeToast);\n  const effectiveTheme = useToastStore((state) => state.effectiveTheme);\n\n  const handleResize = useCallback(() => {\n    if (typeof window === 'undefined') return;\n    const width = window.innerWidth;\n    screenWidthRef.current = width;\n    const next =\n      width < DEVICE_BREAKPOINTS.mobile ? 'mobile' : width < DEVICE_BREAKPOINTS.tablet ? 'tablet' : 'desktop';\n    setDeviceType((prev) => (prev !== next ? next : prev));\n  }, []);\n\n  useEffect(() => {\n    if (typeof window === 'undefined') return;\n\n    handleResize();\n    setIsMounted(true);\n\n    let portalDiv = document.getElementById('react-toast-kit-portal') as HTMLDivElement;\n    if (!portalDiv) {\n      portalDiv = document.createElement('div');\n      portalDiv.id = 'react-toast-kit-portal';\n      portalDiv.style.cssText = `position:fixed;top:0;left:0;width:0;height:0;z-index:${findHighestZIndex()}`;\n      if (suppressHydrationWarning) {\n        portalDiv.setAttribute('data-suppress-hydration-warning', 'true');\n      }\n      document.body.appendChild(portalDiv);\n    }\n    setPortalElement(portalDiv);\n\n    let resizeTimer: number;\n    const throttledResize = () => {\n      clearTimeout(resizeTimer);\n      resizeTimer = window.setTimeout(handleResize, 100);\n    };\n    window.addEventListener('resize', throttledResize);\n\n    return () => {\n      window.removeEventListener('resize', throttledResize);\n      clearTimeout(resizeTimer);\n      if (portalDiv?.parentNode && !document.getElementById('react-toast-kit-portal-static')) {\n        document.body.removeChild(portalDiv);\n      }\n    };\n  }, [handleResize, suppressHydrationWarning]);\n\n  const getToastWidth = useCallback((): number => TOAST_WIDTHS[deviceType], [deviceType]);\n\n  const getPositionStyle = useCallback(\n    (pos: ToastPosition): React.CSSProperties => {\n      const width = getToastWidth();\n      const base: React.CSSProperties = { position: 'fixed', width: `${width}px`, display: 'flex', flexDirection: 'column', gap: '0.5rem' };\n\n      if (deviceType === 'mobile') {\n        const safe = Math.min(width, screenWidthRef.current - leftOffset - rightOffset);\n        base.width = `${safe}px`;\n        base.maxWidth = `calc(100vw - ${leftOffset + rightOffset}px)`;\n      }\n\n      switch (pos) {\n        case 'top-left':    return { ...base, top: `${topOffset}px`, left: `${leftOffset}px`, alignItems: 'flex-start' };\n        case 'top-center':  return { ...base, top: `${topOffset}px`, left: '50%', transform: 'translateX(-50%)', alignItems: 'center' };\n        case 'top-right':   return { ...base, top: `${topOffset}px`, right: `${rightOffset}px`, alignItems: 'flex-end' };\n        case 'bottom-left': return { ...base, bottom: `${bottomOffset}px`, left: `${leftOffset}px`, alignItems: 'flex-start' };\n        case 'bottom-center': return { ...base, bottom: `${bottomOffset}px`, left: '50%', transform: 'translateX(-50%)', alignItems: 'center' };\n        case 'bottom-right': return { ...base, bottom: `${bottomOffset}px`, right: `${rightOffset}px`, alignItems: 'flex-end' };\n        default:            return { ...base, top: `${topOffset}px`, right: `${rightOffset}px`, alignItems: 'flex-end' };\n      }\n    },\n    [getToastWidth, deviceType, leftOffset, rightOffset, topOffset, bottomOffset]\n  );\n\n  const toastsByPosition = useMemo(\n    () =>\n      toasts.reduce<Record<ToastPosition, Toast[]>>((acc, t) => {\n        const pos = t.position || 'top-right';\n        if (!acc[pos]) acc[pos] = [];\n        acc[pos].push(t);\n        return acc;\n      }, {} as Record<ToastPosition, Toast[]>),\n    [toasts]\n  );\n\n  if (!isMounted || !portalElement) return null;\n\n  const content = (\n    <>\n      {enableAccessibleAnnouncements && <AccessibilityAnnouncer toasts={toasts} />}\n      {(Object.entries(toastsByPosition) as [ToastPosition, Toast[]][]).map(([pos, posToasts]) => (\n        <ToastContainer\n          key={pos}\n          position={pos}\n          toasts={posToasts}\n          positionStyle={getPositionStyle(pos)}\n          onDismiss={removeToast}\n          onPause={pauseToast}\n          onResume={resumeToast}\n          defaultAnimation={defaultAnimation}\n          toastTheme={effectiveTheme}\n          defaultStyle={defaultStyle}\n          containerClassName={containerClassName}\n        />\n      ))}\n    </>\n  );\n\n  return createPortal(\n    suppressHydrationWarning ? <div suppressHydrationWarning>{content}</div> : content,\n    portalElement\n  );\n};\nToastPortal.displayName = 'ToastPortal';\n\nexport default memo(ToastPortal);\n","import * as React from 'react';\nimport { useToastStore } from './toast';\nimport { useShallow } from 'zustand/shallow';\nimport type { ToastTheme, ToastPosition } from './toast';\n\nconst { useCallback, useMemo } = React;\n\n/**\n * Primary hook — exposes toast state and actions for component use.\n * Uses a shallow selector so consumers only re-render when user-facing\n * state changes (toasts list, theme, maxToasts, plugins). Internal timer\n * bookkeeping (activeTimers, timerStartedAt, remainingTime, pausedToasts)\n * does NOT cause re-renders here.\n */\nexport const useToast = () => {\n  const {\n    toasts,\n    theme,\n    effectiveTheme,\n    maxToasts,\n    plugins,\n    addToast,\n    removeToast,\n    updateToast,\n    clearAllToasts,\n    pauseToast,\n    resumeToast,\n    setTheme,\n    setMaxToasts,\n    registerPlugin,\n    unregisterPlugin,\n  } = useToastStore(\n    useShallow((state) => ({\n      toasts: state.toasts,\n      theme: state.theme,\n      effectiveTheme: state.effectiveTheme,\n      maxToasts: state.maxToasts,\n      plugins: state.plugins,\n      addToast: state.addToast,\n      removeToast: state.removeToast,\n      updateToast: state.updateToast,\n      clearAllToasts: state.clearAllToasts,\n      pauseToast: state.pauseToast,\n      resumeToast: state.resumeToast,\n      setTheme: state.setTheme,\n      setMaxToasts: state.setMaxToasts,\n      registerPlugin: state.registerPlugin,\n      unregisterPlugin: state.unregisterPlugin,\n    }))\n  );\n\n  const stats = useMemo(\n    () => ({\n      total: toasts.length,\n      byVariant: toasts.reduce<Record<string, number>>((acc, t) => {\n        acc[t.variant] = (acc[t.variant] || 0) + 1;\n        return acc;\n      }, {}),\n      byPosition: toasts.reduce<Record<ToastPosition, number>>((acc, t) => {\n        acc[t.position] = (acc[t.position] || 0) + 1;\n        return acc;\n      }, {} as Record<ToastPosition, number>),\n    }),\n    [toasts]\n  );\n\n  const getToastById = useCallback((id: string) => toasts.find((t) => t.id === id), [toasts]);\n  const hasToasts = useCallback(() => toasts.length > 0, [toasts]);\n\n  return {\n    toasts,\n    theme,\n    effectiveTheme,\n    maxToasts,\n    plugins,\n    addToast,\n    removeToast,\n    updateToast,\n    clearAllToasts,\n    pauseToast,\n    resumeToast,\n    setTheme,\n    setMaxToasts,\n    registerPlugin,\n    unregisterPlugin,\n    getToastById,\n    hasToasts,\n    stats,\n  };\n};\n\n/**\n * Lightweight hook for reading/setting theme and maxToasts only.\n */\nexport const useToastConfig = () =>\n  useToastStore(\n    useShallow((state) => ({\n      theme: state.theme,\n      effectiveTheme: state.effectiveTheme,\n      setTheme: state.setTheme,\n      maxToasts: state.maxToasts,\n      setMaxToasts: state.setMaxToasts,\n    }))\n  );\n\n/**\n * Derived statistics hook — useful for analytics or custom UI.\n */\nexport const useToastStats = () => {\n  const toasts = useToastStore((state) => state.toasts);\n  return useMemo(\n    () => ({\n      total: toasts.length,\n      byVariant: toasts.reduce((acc, t) => {\n        acc[t.variant] = (acc[t.variant] || 0) + 1;\n        return acc;\n      }, {} as Record<string, number>),\n      byPosition: toasts.reduce((acc, t) => {\n        acc[t.position] = (acc[t.position] || 0) + 1;\n        return acc;\n      }, {} as Record<ToastPosition, number>),\n      byTheme: toasts.reduce((acc, t) => {\n        acc[t.theme] = (acc[t.theme] || 0) + 1;\n        return acc;\n      }, {} as Record<ToastTheme, number>),\n    }),\n    [toasts]\n  );\n};\n","const isIterable = (obj) => Symbol.iterator in obj;\nconst hasIterableEntries = (value) => (\n  // HACK: avoid checking entries type\n  \"entries\" in value\n);\nconst compareEntries = (valueA, valueB) => {\n  const mapA = valueA instanceof Map ? valueA : new Map(valueA.entries());\n  const mapB = valueB instanceof Map ? valueB : new Map(valueB.entries());\n  if (mapA.size !== mapB.size) {\n    return false;\n  }\n  for (const [key, value] of mapA) {\n    if (!Object.is(value, mapB.get(key))) {\n      return false;\n    }\n  }\n  return true;\n};\nconst compareIterables = (valueA, valueB) => {\n  const iteratorA = valueA[Symbol.iterator]();\n  const iteratorB = valueB[Symbol.iterator]();\n  let nextA = iteratorA.next();\n  let nextB = iteratorB.next();\n  while (!nextA.done && !nextB.done) {\n    if (!Object.is(nextA.value, nextB.value)) {\n      return false;\n    }\n    nextA = iteratorA.next();\n    nextB = iteratorB.next();\n  }\n  return !!nextA.done && !!nextB.done;\n};\nfunction shallow(valueA, valueB) {\n  if (Object.is(valueA, valueB)) {\n    return true;\n  }\n  if (typeof valueA !== \"object\" || valueA === null || typeof valueB !== \"object\" || valueB === null) {\n    return false;\n  }\n  if (!isIterable(valueA) || !isIterable(valueB)) {\n    return compareEntries(\n      { entries: () => Object.entries(valueA) },\n      { entries: () => Object.entries(valueB) }\n    );\n  }\n  if (hasIterableEntries(valueA) && hasIterableEntries(valueB)) {\n    return compareEntries(valueA, valueB);\n  }\n  return compareIterables(valueA, valueB);\n}\n\nexport { shallow };\n","import React from 'react';\nimport { shallow } from 'zustand/vanilla/shallow';\n\nfunction useShallow(selector) {\n  const prev = React.useRef(void 0);\n  return (state) => {\n    const next = selector(state);\n    return shallow(prev.current, next) ? prev.current : prev.current = next;\n  };\n}\n\nexport { useShallow };\n"]}