{"version":3,"file":"toast-DfCz10Et.mjs","sources":["../../node_modules/@radix-ui/react-toast/dist/index.mjs","../../src/components/ui/toast/toast.tsx"],"sourcesContent":["\"use client\";\n\n// src/toast.tsx\nimport * as React from \"react\";\nimport * as ReactDOM from \"react-dom\";\nimport { composeEventHandlers } from \"@radix-ui/primitive\";\nimport { useComposedRefs } from \"@radix-ui/react-compose-refs\";\nimport { createCollection } from \"@radix-ui/react-collection\";\nimport { createContextScope } from \"@radix-ui/react-context\";\nimport * as DismissableLayer from \"@radix-ui/react-dismissable-layer\";\nimport { Portal } from \"@radix-ui/react-portal\";\nimport { Presence } from \"@radix-ui/react-presence\";\nimport { Primitive, dispatchDiscreteCustomEvent } from \"@radix-ui/react-primitive\";\nimport { useCallbackRef } from \"@radix-ui/react-use-callback-ref\";\nimport { useControllableState } from \"@radix-ui/react-use-controllable-state\";\nimport { useLayoutEffect } from \"@radix-ui/react-use-layout-effect\";\nimport { VisuallyHidden } from \"@radix-ui/react-visually-hidden\";\nimport { Fragment, jsx, jsxs } from \"react/jsx-runtime\";\nvar PROVIDER_NAME = \"ToastProvider\";\nvar [Collection, useCollection, createCollectionScope] = createCollection(\"Toast\");\nvar [createToastContext, createToastScope] = createContextScope(\"Toast\", [createCollectionScope]);\nvar [ToastProviderProvider, useToastProviderContext] = createToastContext(PROVIDER_NAME);\nvar ToastProvider = (props) => {\n  const {\n    __scopeToast,\n    label = \"Notification\",\n    duration = 5e3,\n    swipeDirection = \"right\",\n    swipeThreshold = 50,\n    children\n  } = props;\n  const [viewport, setViewport] = React.useState(null);\n  const [toastCount, setToastCount] = React.useState(0);\n  const isFocusedToastEscapeKeyDownRef = React.useRef(false);\n  const isClosePausedRef = React.useRef(false);\n  if (!label.trim()) {\n    console.error(\n      `Invalid prop \\`label\\` supplied to \\`${PROVIDER_NAME}\\`. Expected non-empty \\`string\\`.`\n    );\n  }\n  return /* @__PURE__ */ jsx(Collection.Provider, { scope: __scopeToast, children: /* @__PURE__ */ jsx(\n    ToastProviderProvider,\n    {\n      scope: __scopeToast,\n      label,\n      duration,\n      swipeDirection,\n      swipeThreshold,\n      toastCount,\n      viewport,\n      onViewportChange: setViewport,\n      onToastAdd: React.useCallback(() => setToastCount((prevCount) => prevCount + 1), []),\n      onToastRemove: React.useCallback(() => setToastCount((prevCount) => prevCount - 1), []),\n      isFocusedToastEscapeKeyDownRef,\n      isClosePausedRef,\n      children\n    }\n  ) });\n};\nToastProvider.displayName = PROVIDER_NAME;\nvar VIEWPORT_NAME = \"ToastViewport\";\nvar VIEWPORT_DEFAULT_HOTKEY = [\"F8\"];\nvar VIEWPORT_PAUSE = \"toast.viewportPause\";\nvar VIEWPORT_RESUME = \"toast.viewportResume\";\nvar ToastViewport = React.forwardRef(\n  (props, forwardedRef) => {\n    const {\n      __scopeToast,\n      hotkey = VIEWPORT_DEFAULT_HOTKEY,\n      label = \"Notifications ({hotkey})\",\n      ...viewportProps\n    } = props;\n    const context = useToastProviderContext(VIEWPORT_NAME, __scopeToast);\n    const getItems = useCollection(__scopeToast);\n    const wrapperRef = React.useRef(null);\n    const headFocusProxyRef = React.useRef(null);\n    const tailFocusProxyRef = React.useRef(null);\n    const ref = React.useRef(null);\n    const composedRefs = useComposedRefs(forwardedRef, ref, context.onViewportChange);\n    const hotkeyLabel = hotkey.join(\"+\").replace(/Key/g, \"\").replace(/Digit/g, \"\");\n    const hasToasts = context.toastCount > 0;\n    React.useEffect(() => {\n      const handleKeyDown = (event) => {\n        const isHotkeyPressed = hotkey.length !== 0 && hotkey.every((key) => event[key] || event.code === key);\n        if (isHotkeyPressed) ref.current?.focus();\n      };\n      document.addEventListener(\"keydown\", handleKeyDown);\n      return () => document.removeEventListener(\"keydown\", handleKeyDown);\n    }, [hotkey]);\n    React.useEffect(() => {\n      const wrapper = wrapperRef.current;\n      const viewport = ref.current;\n      if (hasToasts && wrapper && viewport) {\n        const handlePause = () => {\n          if (!context.isClosePausedRef.current) {\n            const pauseEvent = new CustomEvent(VIEWPORT_PAUSE);\n            viewport.dispatchEvent(pauseEvent);\n            context.isClosePausedRef.current = true;\n          }\n        };\n        const handleResume = () => {\n          if (context.isClosePausedRef.current) {\n            const resumeEvent = new CustomEvent(VIEWPORT_RESUME);\n            viewport.dispatchEvent(resumeEvent);\n            context.isClosePausedRef.current = false;\n          }\n        };\n        const handleFocusOutResume = (event) => {\n          const isFocusMovingOutside = !wrapper.contains(event.relatedTarget);\n          if (isFocusMovingOutside) handleResume();\n        };\n        const handlePointerLeaveResume = () => {\n          const isFocusInside = wrapper.contains(document.activeElement);\n          if (!isFocusInside) handleResume();\n        };\n        wrapper.addEventListener(\"focusin\", handlePause);\n        wrapper.addEventListener(\"focusout\", handleFocusOutResume);\n        wrapper.addEventListener(\"pointermove\", handlePause);\n        wrapper.addEventListener(\"pointerleave\", handlePointerLeaveResume);\n        window.addEventListener(\"blur\", handlePause);\n        window.addEventListener(\"focus\", handleResume);\n        return () => {\n          wrapper.removeEventListener(\"focusin\", handlePause);\n          wrapper.removeEventListener(\"focusout\", handleFocusOutResume);\n          wrapper.removeEventListener(\"pointermove\", handlePause);\n          wrapper.removeEventListener(\"pointerleave\", handlePointerLeaveResume);\n          window.removeEventListener(\"blur\", handlePause);\n          window.removeEventListener(\"focus\", handleResume);\n        };\n      }\n    }, [hasToasts, context.isClosePausedRef]);\n    const getSortedTabbableCandidates = React.useCallback(\n      ({ tabbingDirection }) => {\n        const toastItems = getItems();\n        const tabbableCandidates = toastItems.map((toastItem) => {\n          const toastNode = toastItem.ref.current;\n          const toastTabbableCandidates = [toastNode, ...getTabbableCandidates(toastNode)];\n          return tabbingDirection === \"forwards\" ? toastTabbableCandidates : toastTabbableCandidates.reverse();\n        });\n        return (tabbingDirection === \"forwards\" ? tabbableCandidates.reverse() : tabbableCandidates).flat();\n      },\n      [getItems]\n    );\n    React.useEffect(() => {\n      const viewport = ref.current;\n      if (viewport) {\n        const handleKeyDown = (event) => {\n          const isMetaKey = event.altKey || event.ctrlKey || event.metaKey;\n          const isTabKey = event.key === \"Tab\" && !isMetaKey;\n          if (isTabKey) {\n            const focusedElement = document.activeElement;\n            const isTabbingBackwards = event.shiftKey;\n            const targetIsViewport = event.target === viewport;\n            if (targetIsViewport && isTabbingBackwards) {\n              headFocusProxyRef.current?.focus();\n              return;\n            }\n            const tabbingDirection = isTabbingBackwards ? \"backwards\" : \"forwards\";\n            const sortedCandidates = getSortedTabbableCandidates({ tabbingDirection });\n            const index = sortedCandidates.findIndex((candidate) => candidate === focusedElement);\n            if (focusFirst(sortedCandidates.slice(index + 1))) {\n              event.preventDefault();\n            } else {\n              isTabbingBackwards ? headFocusProxyRef.current?.focus() : tailFocusProxyRef.current?.focus();\n            }\n          }\n        };\n        viewport.addEventListener(\"keydown\", handleKeyDown);\n        return () => viewport.removeEventListener(\"keydown\", handleKeyDown);\n      }\n    }, [getItems, getSortedTabbableCandidates]);\n    return /* @__PURE__ */ jsxs(\n      DismissableLayer.Branch,\n      {\n        ref: wrapperRef,\n        role: \"region\",\n        \"aria-label\": label.replace(\"{hotkey}\", hotkeyLabel),\n        tabIndex: -1,\n        style: { pointerEvents: hasToasts ? void 0 : \"none\" },\n        children: [\n          hasToasts && /* @__PURE__ */ jsx(\n            FocusProxy,\n            {\n              ref: headFocusProxyRef,\n              onFocusFromOutsideViewport: () => {\n                const tabbableCandidates = getSortedTabbableCandidates({\n                  tabbingDirection: \"forwards\"\n                });\n                focusFirst(tabbableCandidates);\n              }\n            }\n          ),\n          /* @__PURE__ */ jsx(Collection.Slot, { scope: __scopeToast, children: /* @__PURE__ */ jsx(Primitive.ol, { tabIndex: -1, ...viewportProps, ref: composedRefs }) }),\n          hasToasts && /* @__PURE__ */ jsx(\n            FocusProxy,\n            {\n              ref: tailFocusProxyRef,\n              onFocusFromOutsideViewport: () => {\n                const tabbableCandidates = getSortedTabbableCandidates({\n                  tabbingDirection: \"backwards\"\n                });\n                focusFirst(tabbableCandidates);\n              }\n            }\n          )\n        ]\n      }\n    );\n  }\n);\nToastViewport.displayName = VIEWPORT_NAME;\nvar FOCUS_PROXY_NAME = \"ToastFocusProxy\";\nvar FocusProxy = React.forwardRef(\n  (props, forwardedRef) => {\n    const { __scopeToast, onFocusFromOutsideViewport, ...proxyProps } = props;\n    const context = useToastProviderContext(FOCUS_PROXY_NAME, __scopeToast);\n    return /* @__PURE__ */ jsx(\n      VisuallyHidden,\n      {\n        tabIndex: 0,\n        ...proxyProps,\n        ref: forwardedRef,\n        style: { position: \"fixed\" },\n        onFocus: (event) => {\n          const prevFocusedElement = event.relatedTarget;\n          const isFocusFromOutsideViewport = !context.viewport?.contains(prevFocusedElement);\n          if (isFocusFromOutsideViewport) onFocusFromOutsideViewport();\n        }\n      }\n    );\n  }\n);\nFocusProxy.displayName = FOCUS_PROXY_NAME;\nvar TOAST_NAME = \"Toast\";\nvar TOAST_SWIPE_START = \"toast.swipeStart\";\nvar TOAST_SWIPE_MOVE = \"toast.swipeMove\";\nvar TOAST_SWIPE_CANCEL = \"toast.swipeCancel\";\nvar TOAST_SWIPE_END = \"toast.swipeEnd\";\nvar Toast = React.forwardRef(\n  (props, forwardedRef) => {\n    const { forceMount, open: openProp, defaultOpen, onOpenChange, ...toastProps } = props;\n    const [open, setOpen] = useControllableState({\n      prop: openProp,\n      defaultProp: defaultOpen ?? true,\n      onChange: onOpenChange,\n      caller: TOAST_NAME\n    });\n    return /* @__PURE__ */ jsx(Presence, { present: forceMount || open, children: /* @__PURE__ */ jsx(\n      ToastImpl,\n      {\n        open,\n        ...toastProps,\n        ref: forwardedRef,\n        onClose: () => setOpen(false),\n        onPause: useCallbackRef(props.onPause),\n        onResume: useCallbackRef(props.onResume),\n        onSwipeStart: composeEventHandlers(props.onSwipeStart, (event) => {\n          event.currentTarget.setAttribute(\"data-swipe\", \"start\");\n        }),\n        onSwipeMove: composeEventHandlers(props.onSwipeMove, (event) => {\n          const { x, y } = event.detail.delta;\n          event.currentTarget.setAttribute(\"data-swipe\", \"move\");\n          event.currentTarget.style.setProperty(\"--radix-toast-swipe-move-x\", `${x}px`);\n          event.currentTarget.style.setProperty(\"--radix-toast-swipe-move-y\", `${y}px`);\n        }),\n        onSwipeCancel: composeEventHandlers(props.onSwipeCancel, (event) => {\n          event.currentTarget.setAttribute(\"data-swipe\", \"cancel\");\n          event.currentTarget.style.removeProperty(\"--radix-toast-swipe-move-x\");\n          event.currentTarget.style.removeProperty(\"--radix-toast-swipe-move-y\");\n          event.currentTarget.style.removeProperty(\"--radix-toast-swipe-end-x\");\n          event.currentTarget.style.removeProperty(\"--radix-toast-swipe-end-y\");\n        }),\n        onSwipeEnd: composeEventHandlers(props.onSwipeEnd, (event) => {\n          const { x, y } = event.detail.delta;\n          event.currentTarget.setAttribute(\"data-swipe\", \"end\");\n          event.currentTarget.style.removeProperty(\"--radix-toast-swipe-move-x\");\n          event.currentTarget.style.removeProperty(\"--radix-toast-swipe-move-y\");\n          event.currentTarget.style.setProperty(\"--radix-toast-swipe-end-x\", `${x}px`);\n          event.currentTarget.style.setProperty(\"--radix-toast-swipe-end-y\", `${y}px`);\n          setOpen(false);\n        })\n      }\n    ) });\n  }\n);\nToast.displayName = TOAST_NAME;\nvar [ToastInteractiveProvider, useToastInteractiveContext] = createToastContext(TOAST_NAME, {\n  onClose() {\n  }\n});\nvar ToastImpl = React.forwardRef(\n  (props, forwardedRef) => {\n    const {\n      __scopeToast,\n      type = \"foreground\",\n      duration: durationProp,\n      open,\n      onClose,\n      onEscapeKeyDown,\n      onPause,\n      onResume,\n      onSwipeStart,\n      onSwipeMove,\n      onSwipeCancel,\n      onSwipeEnd,\n      ...toastProps\n    } = props;\n    const context = useToastProviderContext(TOAST_NAME, __scopeToast);\n    const [node, setNode] = React.useState(null);\n    const composedRefs = useComposedRefs(forwardedRef, (node2) => setNode(node2));\n    const pointerStartRef = React.useRef(null);\n    const swipeDeltaRef = React.useRef(null);\n    const duration = durationProp || context.duration;\n    const closeTimerStartTimeRef = React.useRef(0);\n    const closeTimerRemainingTimeRef = React.useRef(duration);\n    const closeTimerRef = React.useRef(0);\n    const { onToastAdd, onToastRemove } = context;\n    const handleClose = useCallbackRef(() => {\n      const isFocusInToast = node?.contains(document.activeElement);\n      if (isFocusInToast) context.viewport?.focus();\n      onClose();\n    });\n    const startTimer = React.useCallback(\n      (duration2) => {\n        if (!duration2 || duration2 === Infinity) return;\n        window.clearTimeout(closeTimerRef.current);\n        closeTimerStartTimeRef.current = (/* @__PURE__ */ new Date()).getTime();\n        closeTimerRef.current = window.setTimeout(handleClose, duration2);\n      },\n      [handleClose]\n    );\n    React.useEffect(() => {\n      const viewport = context.viewport;\n      if (viewport) {\n        const handleResume = () => {\n          startTimer(closeTimerRemainingTimeRef.current);\n          onResume?.();\n        };\n        const handlePause = () => {\n          const elapsedTime = (/* @__PURE__ */ new Date()).getTime() - closeTimerStartTimeRef.current;\n          closeTimerRemainingTimeRef.current = closeTimerRemainingTimeRef.current - elapsedTime;\n          window.clearTimeout(closeTimerRef.current);\n          onPause?.();\n        };\n        viewport.addEventListener(VIEWPORT_PAUSE, handlePause);\n        viewport.addEventListener(VIEWPORT_RESUME, handleResume);\n        return () => {\n          viewport.removeEventListener(VIEWPORT_PAUSE, handlePause);\n          viewport.removeEventListener(VIEWPORT_RESUME, handleResume);\n        };\n      }\n    }, [context.viewport, duration, onPause, onResume, startTimer]);\n    React.useEffect(() => {\n      if (open && !context.isClosePausedRef.current) startTimer(duration);\n    }, [open, duration, context.isClosePausedRef, startTimer]);\n    React.useEffect(() => {\n      onToastAdd();\n      return () => onToastRemove();\n    }, [onToastAdd, onToastRemove]);\n    const announceTextContent = React.useMemo(() => {\n      return node ? getAnnounceTextContent(node) : null;\n    }, [node]);\n    if (!context.viewport) return null;\n    return /* @__PURE__ */ jsxs(Fragment, { children: [\n      announceTextContent && /* @__PURE__ */ jsx(\n        ToastAnnounce,\n        {\n          __scopeToast,\n          role: \"status\",\n          \"aria-live\": type === \"foreground\" ? \"assertive\" : \"polite\",\n          children: announceTextContent\n        }\n      ),\n      /* @__PURE__ */ jsx(ToastInteractiveProvider, { scope: __scopeToast, onClose: handleClose, children: ReactDOM.createPortal(\n        /* @__PURE__ */ jsx(Collection.ItemSlot, { scope: __scopeToast, children: /* @__PURE__ */ jsx(\n          DismissableLayer.Root,\n          {\n            asChild: true,\n            onEscapeKeyDown: composeEventHandlers(onEscapeKeyDown, () => {\n              if (!context.isFocusedToastEscapeKeyDownRef.current) handleClose();\n              context.isFocusedToastEscapeKeyDownRef.current = false;\n            }),\n            children: /* @__PURE__ */ jsx(\n              Primitive.li,\n              {\n                tabIndex: 0,\n                \"data-state\": open ? \"open\" : \"closed\",\n                \"data-swipe-direction\": context.swipeDirection,\n                ...toastProps,\n                ref: composedRefs,\n                style: { userSelect: \"none\", touchAction: \"none\", ...props.style },\n                onKeyDown: composeEventHandlers(props.onKeyDown, (event) => {\n                  if (event.key !== \"Escape\") return;\n                  onEscapeKeyDown?.(event.nativeEvent);\n                  if (!event.nativeEvent.defaultPrevented) {\n                    context.isFocusedToastEscapeKeyDownRef.current = true;\n                    handleClose();\n                  }\n                }),\n                onPointerDown: composeEventHandlers(props.onPointerDown, (event) => {\n                  if (event.button !== 0) return;\n                  pointerStartRef.current = { x: event.clientX, y: event.clientY };\n                }),\n                onPointerMove: composeEventHandlers(props.onPointerMove, (event) => {\n                  if (!pointerStartRef.current) return;\n                  const x = event.clientX - pointerStartRef.current.x;\n                  const y = event.clientY - pointerStartRef.current.y;\n                  const hasSwipeMoveStarted = Boolean(swipeDeltaRef.current);\n                  const isHorizontalSwipe = [\"left\", \"right\"].includes(context.swipeDirection);\n                  const clamp = [\"left\", \"up\"].includes(context.swipeDirection) ? Math.min : Math.max;\n                  const clampedX = isHorizontalSwipe ? clamp(0, x) : 0;\n                  const clampedY = !isHorizontalSwipe ? clamp(0, y) : 0;\n                  const moveStartBuffer = event.pointerType === \"touch\" ? 10 : 2;\n                  const delta = { x: clampedX, y: clampedY };\n                  const eventDetail = { originalEvent: event, delta };\n                  if (hasSwipeMoveStarted) {\n                    swipeDeltaRef.current = delta;\n                    handleAndDispatchCustomEvent(TOAST_SWIPE_MOVE, onSwipeMove, eventDetail, {\n                      discrete: false\n                    });\n                  } else if (isDeltaInDirection(delta, context.swipeDirection, moveStartBuffer)) {\n                    swipeDeltaRef.current = delta;\n                    handleAndDispatchCustomEvent(TOAST_SWIPE_START, onSwipeStart, eventDetail, {\n                      discrete: false\n                    });\n                    event.target.setPointerCapture(event.pointerId);\n                  } else if (Math.abs(x) > moveStartBuffer || Math.abs(y) > moveStartBuffer) {\n                    pointerStartRef.current = null;\n                  }\n                }),\n                onPointerUp: composeEventHandlers(props.onPointerUp, (event) => {\n                  const delta = swipeDeltaRef.current;\n                  const target = event.target;\n                  if (target.hasPointerCapture(event.pointerId)) {\n                    target.releasePointerCapture(event.pointerId);\n                  }\n                  swipeDeltaRef.current = null;\n                  pointerStartRef.current = null;\n                  if (delta) {\n                    const toast = event.currentTarget;\n                    const eventDetail = { originalEvent: event, delta };\n                    if (isDeltaInDirection(delta, context.swipeDirection, context.swipeThreshold)) {\n                      handleAndDispatchCustomEvent(TOAST_SWIPE_END, onSwipeEnd, eventDetail, {\n                        discrete: true\n                      });\n                    } else {\n                      handleAndDispatchCustomEvent(\n                        TOAST_SWIPE_CANCEL,\n                        onSwipeCancel,\n                        eventDetail,\n                        {\n                          discrete: true\n                        }\n                      );\n                    }\n                    toast.addEventListener(\"click\", (event2) => event2.preventDefault(), {\n                      once: true\n                    });\n                  }\n                })\n              }\n            )\n          }\n        ) }),\n        context.viewport\n      ) })\n    ] });\n  }\n);\nvar ToastAnnounce = (props) => {\n  const { __scopeToast, children, ...announceProps } = props;\n  const context = useToastProviderContext(TOAST_NAME, __scopeToast);\n  const [renderAnnounceText, setRenderAnnounceText] = React.useState(false);\n  const [isAnnounced, setIsAnnounced] = React.useState(false);\n  useNextFrame(() => setRenderAnnounceText(true));\n  React.useEffect(() => {\n    const timer = window.setTimeout(() => setIsAnnounced(true), 1e3);\n    return () => window.clearTimeout(timer);\n  }, []);\n  return isAnnounced ? null : /* @__PURE__ */ jsx(Portal, { asChild: true, children: /* @__PURE__ */ jsx(VisuallyHidden, { ...announceProps, children: renderAnnounceText && /* @__PURE__ */ jsxs(Fragment, { children: [\n    context.label,\n    \" \",\n    children\n  ] }) }) });\n};\nvar TITLE_NAME = \"ToastTitle\";\nvar ToastTitle = React.forwardRef(\n  (props, forwardedRef) => {\n    const { __scopeToast, ...titleProps } = props;\n    return /* @__PURE__ */ jsx(Primitive.div, { ...titleProps, ref: forwardedRef });\n  }\n);\nToastTitle.displayName = TITLE_NAME;\nvar DESCRIPTION_NAME = \"ToastDescription\";\nvar ToastDescription = React.forwardRef(\n  (props, forwardedRef) => {\n    const { __scopeToast, ...descriptionProps } = props;\n    return /* @__PURE__ */ jsx(Primitive.div, { ...descriptionProps, ref: forwardedRef });\n  }\n);\nToastDescription.displayName = DESCRIPTION_NAME;\nvar ACTION_NAME = \"ToastAction\";\nvar ToastAction = React.forwardRef(\n  (props, forwardedRef) => {\n    const { altText, ...actionProps } = props;\n    if (!altText.trim()) {\n      console.error(\n        `Invalid prop \\`altText\\` supplied to \\`${ACTION_NAME}\\`. Expected non-empty \\`string\\`.`\n      );\n      return null;\n    }\n    return /* @__PURE__ */ jsx(ToastAnnounceExclude, { altText, asChild: true, children: /* @__PURE__ */ jsx(ToastClose, { ...actionProps, ref: forwardedRef }) });\n  }\n);\nToastAction.displayName = ACTION_NAME;\nvar CLOSE_NAME = \"ToastClose\";\nvar ToastClose = React.forwardRef(\n  (props, forwardedRef) => {\n    const { __scopeToast, ...closeProps } = props;\n    const interactiveContext = useToastInteractiveContext(CLOSE_NAME, __scopeToast);\n    return /* @__PURE__ */ jsx(ToastAnnounceExclude, { asChild: true, children: /* @__PURE__ */ jsx(\n      Primitive.button,\n      {\n        type: \"button\",\n        ...closeProps,\n        ref: forwardedRef,\n        onClick: composeEventHandlers(props.onClick, interactiveContext.onClose)\n      }\n    ) });\n  }\n);\nToastClose.displayName = CLOSE_NAME;\nvar ToastAnnounceExclude = React.forwardRef((props, forwardedRef) => {\n  const { __scopeToast, altText, ...announceExcludeProps } = props;\n  return /* @__PURE__ */ jsx(\n    Primitive.div,\n    {\n      \"data-radix-toast-announce-exclude\": \"\",\n      \"data-radix-toast-announce-alt\": altText || void 0,\n      ...announceExcludeProps,\n      ref: forwardedRef\n    }\n  );\n});\nfunction getAnnounceTextContent(container) {\n  const textContent = [];\n  const childNodes = Array.from(container.childNodes);\n  childNodes.forEach((node) => {\n    if (node.nodeType === node.TEXT_NODE && node.textContent) textContent.push(node.textContent);\n    if (isHTMLElement(node)) {\n      const isHidden = node.ariaHidden || node.hidden || node.style.display === \"none\";\n      const isExcluded = node.dataset.radixToastAnnounceExclude === \"\";\n      if (!isHidden) {\n        if (isExcluded) {\n          const altText = node.dataset.radixToastAnnounceAlt;\n          if (altText) textContent.push(altText);\n        } else {\n          textContent.push(...getAnnounceTextContent(node));\n        }\n      }\n    }\n  });\n  return textContent;\n}\nfunction handleAndDispatchCustomEvent(name, handler, detail, { discrete }) {\n  const currentTarget = detail.originalEvent.currentTarget;\n  const event = new CustomEvent(name, { bubbles: true, cancelable: true, detail });\n  if (handler) currentTarget.addEventListener(name, handler, { once: true });\n  if (discrete) {\n    dispatchDiscreteCustomEvent(currentTarget, event);\n  } else {\n    currentTarget.dispatchEvent(event);\n  }\n}\nvar isDeltaInDirection = (delta, direction, threshold = 0) => {\n  const deltaX = Math.abs(delta.x);\n  const deltaY = Math.abs(delta.y);\n  const isDeltaX = deltaX > deltaY;\n  if (direction === \"left\" || direction === \"right\") {\n    return isDeltaX && deltaX > threshold;\n  } else {\n    return !isDeltaX && deltaY > threshold;\n  }\n};\nfunction useNextFrame(callback = () => {\n}) {\n  const fn = useCallbackRef(callback);\n  useLayoutEffect(() => {\n    let raf1 = 0;\n    let raf2 = 0;\n    raf1 = window.requestAnimationFrame(() => raf2 = window.requestAnimationFrame(fn));\n    return () => {\n      window.cancelAnimationFrame(raf1);\n      window.cancelAnimationFrame(raf2);\n    };\n  }, [fn]);\n}\nfunction isHTMLElement(node) {\n  return node.nodeType === node.ELEMENT_NODE;\n}\nfunction getTabbableCandidates(container) {\n  const nodes = [];\n  const walker = document.createTreeWalker(container, NodeFilter.SHOW_ELEMENT, {\n    acceptNode: (node) => {\n      const isHiddenInput = node.tagName === \"INPUT\" && node.type === \"hidden\";\n      if (node.disabled || node.hidden || isHiddenInput) return NodeFilter.FILTER_SKIP;\n      return node.tabIndex >= 0 ? NodeFilter.FILTER_ACCEPT : NodeFilter.FILTER_SKIP;\n    }\n  });\n  while (walker.nextNode()) nodes.push(walker.currentNode);\n  return nodes;\n}\nfunction focusFirst(candidates) {\n  const previouslyFocusedElement = document.activeElement;\n  return candidates.some((candidate) => {\n    if (candidate === previouslyFocusedElement) return true;\n    candidate.focus();\n    return document.activeElement !== previouslyFocusedElement;\n  });\n}\nvar Provider = ToastProvider;\nvar Viewport = ToastViewport;\nvar Root2 = Toast;\nvar Title = ToastTitle;\nvar Description = ToastDescription;\nvar Action = ToastAction;\nvar Close = ToastClose;\nexport {\n  Action,\n  Close,\n  Description,\n  Provider,\n  Root2 as Root,\n  Title,\n  Toast,\n  ToastAction,\n  ToastClose,\n  ToastDescription,\n  ToastProvider,\n  ToastTitle,\n  ToastViewport,\n  Viewport,\n  createToastScope\n};\n//# sourceMappingURL=index.mjs.map\n","\"use client\";\n\nimport * as ToastPrimitives from \"@radix-ui/react-toast\";\nimport { cva, type VariantProps } from \"class-variance-authority\";\nimport { X } from \"lucide-react\";\nimport React from \"react\";\nimport { cn } from \"@/lib/utils\";\n\nconst ToastProvider = ToastPrimitives.Provider;\n\nconst ToastViewport = ({\n\tclassName,\n\t...props\n}: React.ComponentProps<typeof ToastPrimitives.Viewport>) => (\n\t<ToastPrimitives.Viewport\n\t\tdata-slot=\"toast-viewport\"\n\t\tclassName={cn(\n\t\t\t\"fixed top-0 z-[100] flex max-h-screen w-full flex-col-reverse p-4 sm:top-auto sm:right-0 sm:bottom-0 sm:flex-col md:max-w-[420px]\",\n\t\t\tclassName,\n\t\t)}\n\t\t{...props}\n\t/>\n);\n\nconst toastVariants = cva(\n\t\"group pointer-events-auto relative flex w-full items-center justify-between space-x-4 overflow-hidden rounded-md border p-6 pr-8 shadow-lg transition-all data-[swipe=cancel]:translate-x-0 data-[swipe=end]:translate-x-[var(--radix-toast-swipe-end-x)] data-[swipe=move]:translate-x-[var(--radix-toast-swipe-move-x)] data-[swipe=move]:transition-none data-[state=open]:animate-in data-[state=closed]:animate-out data-[swipe=end]:animate-out data-[state=closed]:fade-out-80 data-[state=closed]:slide-out-to-right-full data-[state=open]:slide-in-from-top-full data-[state=open]:sm:slide-in-from-bottom-full\",\n\t{\n\t\tvariants: {\n\t\t\tvariant: {\n\t\t\t\tdefault: \"border bg-background text-foreground\",\n\t\t\t\tdestructive:\n\t\t\t\t\t\"destructive group border-destructive-foreground bg-destructive-foreground text-destructive border-destructive\",\n\t\t\t},\n\t\t},\n\t\tdefaultVariants: {\n\t\t\tvariant: \"default\",\n\t\t},\n\t},\n);\n\nconst Toast = ({\n\tclassName,\n\tvariant,\n\t...props\n}: React.ComponentProps<typeof ToastPrimitives.Root> & VariantProps<typeof toastVariants>) => {\n\treturn (\n\t\t<ToastPrimitives.Root\n\t\t\tdata-slot=\"toast-root\"\n\t\t\tclassName={cn(toastVariants({ variant }), className)}\n\t\t\t{...props}\n\t\t/>\n\t);\n};\n\nconst ToastAction = ({\n\tclassName,\n\t...props\n}: React.ComponentProps<typeof ToastPrimitives.Action>) => (\n\t<ToastPrimitives.Action\n\t\tdata-slot=\"toast-action\"\n\t\tclassName={cn(\n\t\t\t\"ring-offset-background hover:bg-secondary focus:ring-ring group-[.destructive]:border-muted/40 group-[.destructive]:hover:border-destructive/30 group-[.destructive]:hover:bg-destructive group-[.destructive]:hover:text-destructive-foreground group-[.destructive]:focus:ring-destructive inline-flex h-8 shrink-0 items-center justify-center rounded-md border bg-transparent px-3 text-sm font-medium transition-colors focus:ring-2 focus:ring-offset-2 focus:outline-none disabled:pointer-events-none disabled:opacity-50\",\n\t\t\tclassName,\n\t\t)}\n\t\t{...props}\n\t/>\n);\n\nconst ToastClose = ({\n\tclassName,\n\t...props\n}: React.ComponentProps<typeof ToastPrimitives.Close>) => (\n\t<ToastPrimitives.Close\n\t\tdata-slot=\"toast-close\"\n\t\tclassName={cn(\n\t\t\t\"text-foreground/50 hover:text-foreground absolute top-2 right-2 rounded-md p-1 opacity-0 transition-opacity group-hover:opacity-100 group-[.destructive]:text-red-300 group-[.destructive]:hover:text-red-50 focus:opacity-100 focus:ring-2 focus:outline-none group-[.destructive]:focus:ring-red-400 group-[.destructive]:focus:ring-offset-red-600\",\n\t\t\tclassName,\n\t\t)}\n\t\ttoast-close=\"\"\n\t\t{...props}\n\t>\n\t\t<X className=\"h-4 w-4\" />\n\t</ToastPrimitives.Close>\n);\n\nconst ToastTitle = ({\n\tclassName,\n\t...props\n}: React.ComponentProps<typeof ToastPrimitives.Title>) => (\n\t<ToastPrimitives.Title\n\t\tdata-slot=\"toast-title\"\n\t\tclassName={cn(\"text-sm font-semibold\", className)}\n\t\t{...props}\n\t/>\n);\n\nconst ToastDescription = ({\n\tclassName,\n\t...props\n}: React.ComponentProps<typeof ToastPrimitives.Description>) => (\n\t<ToastPrimitives.Description\n\t\tdata-slot=\"toast-description\"\n\t\tclassName={cn(\"text-sm opacity-90\", className)}\n\t\t{...props}\n\t/>\n);\n\ntype ToastProps = React.ComponentPropsWithoutRef<typeof Toast>;\n\ntype ToastActionElement = React.ReactElement<typeof ToastAction>;\n\nexport {\n\ttype ToastProps,\n\ttype ToastActionElement,\n\tToastProvider,\n\tToastViewport,\n\tToast,\n\tToastTitle,\n\tToastDescription,\n\tToastClose,\n\tToastAction,\n};\n"],"names":["ToastProvider","ToastViewport","DismissableLayer.Branch","Toast","node","duration","DismissableLayer.Root","event","ToastTitle","ToastDescription","ToastAction","ToastClose","useLayoutEffect","Root","ToastPrimitives","className","props","React","data-slot","cn","toastVariants","cva","variants","variant","default","destructive","defaultVariants","toast-close","X"],"mappings":"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","x_google_ignoreList":[0]}