@tamagui/toast 3.0.0-beta.924.1 → 3.0.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (52) hide show
  1. package/dist/cjs/ToastComposable.cjs +61 -68
  2. package/dist/cjs/ToastComposable.native.cjs +80 -94
  3. package/dist/cjs/ToastComposable.native.js +80 -94
  4. package/dist/cjs/ToastComposable.native.js.map +1 -1
  5. package/dist/cjs/ToastItemFrame.cjs +4 -3
  6. package/dist/cjs/ToastItemFrame.native.cjs +4 -3
  7. package/dist/cjs/ToastItemFrame.native.js +4 -3
  8. package/dist/cjs/ToastItemFrame.native.js.map +1 -1
  9. package/dist/cjs/ToastState.cjs +1 -0
  10. package/dist/cjs/ToastState.native.cjs +3 -13
  11. package/dist/cjs/ToastState.native.js +3 -13
  12. package/dist/cjs/ToastState.native.js.map +1 -1
  13. package/dist/esm/ToastComposable.mjs +62 -69
  14. package/dist/esm/ToastComposable.mjs.map +1 -1
  15. package/dist/esm/ToastComposable.native.js +81 -95
  16. package/dist/esm/ToastComposable.native.js.map +1 -1
  17. package/dist/esm/ToastItemFrame.mjs +4 -3
  18. package/dist/esm/ToastItemFrame.mjs.map +1 -1
  19. package/dist/esm/ToastItemFrame.native.js +4 -3
  20. package/dist/esm/ToastItemFrame.native.js.map +1 -1
  21. package/dist/esm/ToastState.mjs +1 -0
  22. package/dist/esm/ToastState.mjs.map +1 -1
  23. package/dist/esm/ToastState.native.js +3 -13
  24. package/dist/esm/ToastState.native.js.map +1 -1
  25. package/dist/jsx/ToastComposable.mjs +62 -69
  26. package/dist/jsx/ToastComposable.mjs.map +1 -1
  27. package/dist/jsx/ToastComposable.native.cjs +80 -94
  28. package/dist/jsx/ToastComposable.native.js +80 -94
  29. package/dist/jsx/ToastComposable.native.js.map +1 -1
  30. package/dist/jsx/ToastItemFrame.mjs +4 -3
  31. package/dist/jsx/ToastItemFrame.mjs.map +1 -1
  32. package/dist/jsx/ToastItemFrame.native.cjs +4 -3
  33. package/dist/jsx/ToastItemFrame.native.js +4 -3
  34. package/dist/jsx/ToastItemFrame.native.js.map +1 -1
  35. package/dist/jsx/ToastState.mjs +1 -0
  36. package/dist/jsx/ToastState.mjs.map +1 -1
  37. package/dist/jsx/ToastState.native.cjs +3 -13
  38. package/dist/jsx/ToastState.native.js +3 -13
  39. package/dist/jsx/ToastState.native.js.map +1 -1
  40. package/package.json +22 -20
  41. package/src/ToastComposable.tsx +107 -113
  42. package/src/ToastItemFrame.tsx +7 -3
  43. package/src/ToastState.ts +4 -1
  44. package/src/useToastAnimations.ts +3 -4
  45. package/types/ToastComposable.d.ts +32 -72
  46. package/types/ToastComposable.d.ts.map +1 -1
  47. package/types/ToastItemFrame.d.ts +12 -36
  48. package/types/ToastItemFrame.d.ts.map +1 -1
  49. package/types/ToastState.d.ts.map +1 -1
  50. package/types/useAnimatedDragGesture.native.d.ts +1 -1
  51. package/types/useToastAnimations.d.ts +2 -3
  52. package/types/useToastAnimations.d.ts.map +1 -1
@@ -1 +1 @@
1
- {"version":3,"file":"ToastComposable.js","names":[],"sources":["esm/ToastComposable.js"],"sourcesContent":["import { createStyledHOC, createRefComponent } from \"@tamagui/core\";\nimport { AnimatePresence } from \"@tamagui/animate-presence\";\nimport { isWeb } from \"@tamagui/constants\";\nimport { getGestureHandler } from \"@tamagui/native\";\nimport {\n createStyledContext,\n styled,\n Theme,\n useConfiguration,\n useEvent,\n useThemeName,\n View\n} from \"@tamagui/core\";\nimport { withStaticProperties } from \"@tamagui/helpers\";\nimport { Portal } from \"@tamagui/portal\";\nimport { XStack, YStack } from \"@tamagui/stacks\";\nimport { SizableText } from \"@tamagui/text\";\nimport * as React from \"react\";\nimport { ToastState } from \"./ToastState\";\nimport { dispatchNativeToast } from \"./dispatchNativeToast\";\nimport { useAnimatedDragGesture } from \"./useAnimatedDragGesture\";\nimport { useToastAnimations } from \"./useToastAnimations\";\nimport { useReducedMotion } from \"./useReducedMotion\";\nimport {\n DefaultCloseIcon,\n ToastActionFrame,\n ToastCloseFrame,\n ToastItemFrame,\n ToastPositionWrapper\n} from \"./ToastItemFrame\";\nimport { jsx, jsxs } from \"react/jsx-runtime\";\nconst VISIBLE_TOASTS_AMOUNT = 4;\nconst VIEWPORT_OFFSET = 16;\nconst TOAST_GAP = 14;\nconst TOAST_LIFETIME = 4e3;\nconst FIXED_TOAST_HEIGHT = 72;\nconst TIME_BEFORE_UNMOUNT = 200;\nconst DEFAULT_HOTKEY = [\"altKey\", \"KeyT\"];\nconst ToastContext = createStyledContext({}, \"Toast__\");\nconst useToastContextValue = ToastContext.useStyledContext;\nfunction hasToastContext(ctx) {\n return !!ctx && Array.isArray(ctx.toasts) && typeof ctx.setToastHeight === \"function\" && typeof ctx.removeToast === \"function\";\n}\nfunction useToastContext(consumerName) {\n const ctx = useToastContextValue();\n if (!hasToastContext(ctx)) {\n throw new Error(`\\`${consumerName}\\` must be used within \\`Toast\\``);\n }\n return ctx;\n}\nconst ToastItemContext = React.createContext(null);\nfunction useToastItemContext() {\n const ctx = React.useContext(ToastItemContext);\n if (!ctx) {\n throw new Error(\"useToastItemContext must be used within Toast.Item or Toast.List\");\n }\n return ctx;\n}\nfunction resolveSwipeDirection(direction, position) {\n if (direction !== \"auto\") return direction;\n const [yPosition, xPosition] = position.split(\"-\");\n if (!isWeb) {\n return yPosition === \"top\" ? \"up\" : \"down\";\n }\n if (xPosition === \"left\") return \"left\";\n if (xPosition === \"right\") return \"right\";\n return \"horizontal\";\n}\nconst ToastRoot = createRefComponent(\n function ToastRoot2(props, _ref) {\n const {\n children,\n toasterId,\n position = \"bottom-right\",\n duration = TOAST_LIFETIME,\n gap = TOAST_GAP,\n visibleToasts = VISIBLE_TOASTS_AMOUNT,\n swipeDirection: swipeDirectionProp = \"auto\",\n swipeThreshold = 50,\n toastHeight = FIXED_TOAST_HEIGHT,\n closeButton = false,\n expand = false,\n theme: themeProp,\n reducedMotion: reducedMotionProp,\n native = false,\n burntOptions,\n notificationOptions,\n icons\n } = props;\n const reducedMotion = useReducedMotion(reducedMotionProp);\n const [toasts, setToasts] = React.useState([]);\n const [heights, setHeights] = React.useState({});\n const [localExpanded, setExpanded] = React.useState(false);\n const expanded = expand || localExpanded;\n const [interacting, setInteracting] = React.useState(false);\n const heightsLockedRef = React.useRef(false);\n const prevExpandedRef = React.useRef(expanded);\n React.useLayoutEffect(() => {\n if (prevExpandedRef.current !== expanded) {\n heightsLockedRef.current = true;\n prevExpandedRef.current = expanded;\n }\n const timer = setTimeout(() => {\n heightsLockedRef.current = false;\n }, 350);\n return () => clearTimeout(timer);\n }, [expanded]);\n const setToastHeight = React.useCallback(\n (toastId, height) => {\n if (heightsLockedRef.current) return;\n const rounded = Math.round(height);\n setHeights((prev) => {\n const existing = prev[toastId];\n if (existing != null && Math.abs(existing - rounded) <= 2) return prev;\n return { ...prev, [toastId]: rounded };\n });\n },\n []\n );\n const removeToastHeight = React.useCallback((toastId) => {\n setHeights((prev) => {\n if (!(toastId in prev)) return prev;\n const next = { ...prev };\n delete next[toastId];\n return next;\n });\n }, []);\n const dismissCooldownRef = React.useRef(false);\n const dismissCooldownTimerRef = React.useRef(\n null\n );\n const triggerDismissCooldown = React.useCallback(() => {\n dismissCooldownRef.current = true;\n if (dismissCooldownTimerRef.current) {\n clearTimeout(dismissCooldownTimerRef.current);\n }\n dismissCooldownTimerRef.current = setTimeout(() => {\n dismissCooldownRef.current = false;\n }, 800);\n }, []);\n const isInDismissCooldown = React.useCallback(() => dismissCooldownRef.current, []);\n const burntOptionsRef = React.useRef(burntOptions);\n const notificationOptionsRef = React.useRef(notificationOptions);\n React.useEffect(() => {\n burntOptionsRef.current = burntOptions;\n }, [burntOptions]);\n React.useEffect(() => {\n notificationOptionsRef.current = notificationOptions;\n }, [notificationOptions]);\n React.useEffect(() => {\n return ToastState.subscribe((toast) => {\n if (toast.dismiss) {\n setToasts(\n (toasts2) => toasts2.map((t) => t.id === toast.id ? { ...t, delete: true } : t)\n );\n return;\n }\n if (toast.toasterId !== toasterId) {\n return;\n }\n if (native) {\n const handled = dispatchNativeToast(toast, {\n duration,\n burntOptions: burntOptionsRef.current,\n notificationOptions: notificationOptionsRef.current\n });\n if (handled) return;\n }\n setToasts((toasts2) => {\n const idx = toasts2.findIndex((t) => t.id === toast.id);\n if (idx !== -1) {\n return [\n ...toasts2.slice(0, idx),\n { ...toasts2[idx], ...toast },\n ...toasts2.slice(idx + 1)\n ];\n }\n return [toast, ...toasts2];\n });\n });\n }, [native, duration, toasterId]);\n const prevToastCountRef = React.useRef(toasts.length);\n React.useEffect(() => {\n const prevCount = prevToastCountRef.current;\n prevToastCountRef.current = toasts.length;\n if (toasts.length <= 1 && !dismissCooldownRef.current) {\n setExpanded(false);\n } else if (toasts.length > prevCount && expanded) {\n setExpanded(false);\n }\n }, [toasts.length, expanded]);\n const removeToast = React.useCallback((toastToRemove) => {\n setToasts((toasts2) => {\n if (!toasts2.find((t) => t.id === toastToRemove.id)?.delete) {\n ToastState.dismiss(toastToRemove.id);\n }\n return toasts2.filter(({ id }) => id !== toastToRemove.id);\n });\n }, []);\n const swipeDirection = resolveSwipeDirection(swipeDirectionProp, position);\n const currentTheme = useThemeName();\n const resolvedTheme = themeProp === \"system\" || !themeProp ? currentTheme?.includes(\"dark\") ? \"dark\" : \"light\" : themeProp;\n const contextValue = {\n toasts,\n heights,\n setToastHeight,\n removeToastHeight,\n expanded,\n setExpanded,\n interacting,\n setInteracting,\n triggerDismissCooldown,\n isInDismissCooldown,\n removeToast,\n position,\n duration,\n gap,\n visibleToasts,\n swipeDirection,\n swipeThreshold,\n toastHeight,\n closeButton,\n reducedMotion,\n native,\n burntOptions,\n notificationOptions,\n icons\n };\n return /* @__PURE__ */ jsx(ToastContext.Provider, { ...contextValue, children: /* @__PURE__ */ jsx(Theme, { name: resolvedTheme, children }) });\n }\n);\nconst ToastViewportFrame = styled(View, {\n displayName: \"ToastViewport\",\n position: isWeb ? \"fixed\" : \"absolute\",\n zIndex: 1e5,\n pointerEvents: \"box-none\",\n maxWidth: \"100%\",\n ...isWeb && { width: 356 },\n minHeight: 1\n});\nconst ToastViewport = createStyledHOC(\n ToastViewportFrame,\n function ToastViewport2(props, ref) {\n const {\n offset = VIEWPORT_OFFSET,\n hotkey = DEFAULT_HOTKEY,\n label = \"Notifications\",\n portalToRoot = true,\n portalZIndex = Number.MAX_SAFE_INTEGER,\n children,\n ...rest\n } = props;\n const ctx = useToastContext(\"Toast.Viewport\");\n const listRef = React.useRef(null);\n const hoverTimeoutRef = React.useRef(null);\n const hoverCooldownRef = React.useRef(false);\n const deferredCollapseRef = React.useRef(null);\n const mouseInsideRef = React.useRef(false);\n const [yPosition, xPosition] = ctx.position.split(\"-\");\n const { insets: safeInsets } = useConfiguration();\n const offsetStyles = React.useMemo(() => {\n const styles = {};\n const defaultOffset = typeof offset === \"number\" ? offset : VIEWPORT_OFFSET;\n const offsetObj = typeof offset === \"object\" ? offset : {\n top: defaultOffset,\n right: defaultOffset,\n bottom: defaultOffset,\n left: defaultOffset\n };\n const safeTop = safeInsets?.top ?? 0;\n const safeBottom = safeInsets?.bottom ?? 0;\n const topOffset = safeTop > 0 ? safeTop : offsetObj.top ?? defaultOffset;\n const bottomOffset = safeBottom > 0 ? safeBottom : offsetObj.bottom ?? defaultOffset;\n if (yPosition === \"top\") styles.top = topOffset;\n else styles.bottom = bottomOffset;\n if (isWeb) {\n if (xPosition === \"left\") styles.left = offsetObj.left ?? defaultOffset;\n else if (xPosition === \"right\") styles.right = offsetObj.right ?? defaultOffset;\n else {\n styles.left = \"50%\";\n styles.transform = \"translateX(-50%)\";\n }\n } else {\n styles.left = offsetObj.left ?? defaultOffset;\n styles.right = offsetObj.right ?? defaultOffset;\n }\n return styles;\n }, [offset, yPosition, xPosition]);\n React.useEffect(() => {\n if (!isWeb) return;\n const handleKeyDown = (event) => {\n const isHotkeyPressed = hotkey.length > 0 && hotkey.every((key) => event[key] || event.code === key);\n if (isHotkeyPressed) {\n ctx.setExpanded(true);\n listRef.current?.focus();\n }\n };\n document.addEventListener(\"keydown\", handleKeyDown);\n return () => document.removeEventListener(\"keydown\", handleKeyDown);\n }, [hotkey]);\n if (ctx.toasts.length === 0) return null;\n const hotkeyLabel = hotkey.join(\"+\").replace(/Key/g, \"\").replace(/Digit/g, \"\");\n const content = /* @__PURE__ */ jsx(\n ToastViewportFrame,\n {\n ref: listRef,\n \"aria-label\": `${label} ${hotkeyLabel}`,\n tabIndex: -1,\n \"aria-live\": \"polite\",\n style: offsetStyles,\n \"data-y-position\": yPosition,\n \"data-x-position\": xPosition,\n ...isWeb ? {\n onMouseEnter: () => {\n mouseInsideRef.current = true;\n if (deferredCollapseRef.current) {\n clearTimeout(deferredCollapseRef.current);\n deferredCollapseRef.current = null;\n }\n if (ctx.toasts.length > 1 && !ctx.interacting && !hoverCooldownRef.current) {\n hoverTimeoutRef.current = setTimeout(() => ctx.setExpanded(true), 50);\n }\n },\n onMouseLeave: () => {\n mouseInsideRef.current = false;\n if (hoverTimeoutRef.current) {\n clearTimeout(hoverTimeoutRef.current);\n hoverTimeoutRef.current = null;\n }\n if (!ctx.interacting && !ctx.isInDismissCooldown()) {\n ctx.setExpanded(false);\n } else if (ctx.isInDismissCooldown()) {\n if (deferredCollapseRef.current) {\n clearTimeout(deferredCollapseRef.current);\n }\n deferredCollapseRef.current = setTimeout(() => {\n deferredCollapseRef.current = null;\n if (!mouseInsideRef.current) {\n ctx.setExpanded(false);\n }\n }, 1200);\n }\n },\n onPointerDown: () => {\n if (hoverTimeoutRef.current) {\n clearTimeout(hoverTimeoutRef.current);\n hoverTimeoutRef.current = null;\n }\n ctx.setInteracting(true);\n },\n onPointerUp: () => ctx.setInteracting(false),\n onPointerCancel: () => ctx.setInteracting(false)\n } : {\n onPress: () => {\n if (ctx.toasts.length > 1) {\n ctx.setExpanded((prev) => !prev);\n }\n }\n },\n ...isWeb && {\n onFocus: (event) => {\n if (!event.currentTarget.contains(\n event.relatedTarget\n )) {\n if (ctx.toasts.length > 1) {\n ctx.setExpanded(true);\n }\n ctx.setInteracting(true);\n }\n },\n onBlur: (event) => {\n if (!event.currentTarget.contains(\n event.relatedTarget\n )) {\n ctx.setInteracting(false);\n if (!ctx.isInDismissCooldown()) {\n ctx.setExpanded(false);\n }\n }\n }\n },\n ...rest,\n children\n }\n );\n if (portalToRoot) {\n return /* @__PURE__ */ jsx(Portal, { zIndex: portalZIndex, children: /* @__PURE__ */ jsx(ToastContext.Provider, { ...ctx, children: content }) });\n }\n return content;\n }\n);\nfunction ToastList({ renderItem }) {\n const ctx = useToastContext(\"Toast.List\");\n const maxRender = ctx.toasts.length;\n return /* @__PURE__ */ jsx(AnimatePresence, { children: ctx.toasts.slice(0, maxRender).map((toast, index) => {\n const handleClose = () => {\n if (toast.dismissible === false) return;\n toast.onDismiss?.(toast);\n ctx.removeToast(toast);\n };\n const itemContextValue = {\n toast,\n handleClose\n };\n if (!renderItem) {\n return /* @__PURE__ */ jsx(ToastItemContext.Provider, { value: itemContextValue, children: /* @__PURE__ */ jsx(ToastItemInner, { toast, index, children: /* @__PURE__ */ jsx(DefaultToastContent, { toast }) }) }, toast.id);\n }\n return /* @__PURE__ */ jsx(ToastItemContext.Provider, { value: itemContextValue, children: renderItem({ toast, index, handleClose }) }, toast.id);\n }) });\n}\nfunction DefaultToastContent({ toast }) {\n const ctx = useToastContext(\"Toast.Item\");\n const { handleClose } = useToastItemContext();\n const toastType = toast.type ?? \"default\";\n const dismissible = toast.dismissible !== false;\n const title = typeof toast.title === \"function\" ? toast.title() : toast.title;\n const description = typeof toast.description === \"function\" ? toast.description() : toast.description;\n return /* @__PURE__ */ jsxs(XStack, { alignItems: \"flex-start\", gap: \"3\", children: [\n /* @__PURE__ */ jsx(ToastIcon, {}),\n /* @__PURE__ */ jsxs(YStack, { flex: 1, gap: \"1\", children: [\n title && /* @__PURE__ */ jsx(ToastTitle, { children: title }),\n description && /* @__PURE__ */ jsx(ToastDescription, { children: description }),\n (toast.action || toast.cancel) && /* @__PURE__ */ jsxs(XStack, { gap: \"2\", marginTop: \"2\", children: [\n toast.cancel && /* @__PURE__ */ jsx(\n ToastActionFrame,\n {\n onPress: (e) => {\n toast.cancel?.onClick?.(e);\n handleClose();\n },\n children: /* @__PURE__ */ jsx(SizableText, { size: \"2\", children: toast.cancel.label })\n }\n ),\n toast.action && /* @__PURE__ */ jsx(\n ToastActionFrame,\n {\n onPress: (e) => {\n toast.action?.onClick?.(e);\n if (!e.defaultPrevented) {\n handleClose();\n }\n },\n children: /* @__PURE__ */ jsx(SizableText, { size: \"2\", children: toast.action.label })\n }\n )\n ] })\n ] }),\n ctx.closeButton && dismissible && /* @__PURE__ */ jsx(ToastClose, {})\n ] });\n}\nfunction DragWrapper({\n animatedStyle,\n gestureHandlers,\n gesture,\n AnimatedView,\n dragRef,\n children\n}) {\n if (isWeb) {\n return /* @__PURE__ */ jsx(\n \"div\",\n {\n ref: dragRef,\n style: {\n flex: 1,\n display: \"flex\",\n flexDirection: \"column\",\n userSelect: \"none\",\n WebkitUserSelect: \"none\",\n touchAction: \"none\",\n cursor: \"default\"\n },\n ...gestureHandlers,\n children\n }\n );\n }\n if (gesture) {\n const gh = getGestureHandler();\n const GestureDetector = gh.state.GestureDetector;\n if (GestureDetector) {\n return /* @__PURE__ */ jsx(GestureDetector, { gesture, children: /* @__PURE__ */ jsx(View, { style: { flex: 1 }, ...{ collapsable: false }, children: /* @__PURE__ */ jsx(AnimatedView, { style: [{ flex: 1 }, animatedStyle], children }) }) });\n }\n }\n return /* @__PURE__ */ jsx(AnimatedView, { style: [{ flex: 1 }, animatedStyle], ...gestureHandlers, children });\n}\nconst ToastItemInner = createStyledHOC(\n ToastItemFrame,\n function ToastItem(props, ref) {\n const { toast, index, children, ...rest } = props;\n const ctx = useToastContext(\"Toast.Item\");\n const [mounted, setMounted] = React.useState(false);\n const [removed, setRemoved] = React.useState(false);\n const [swipeOut, setSwipeOut] = React.useState(false);\n const [offsetBeforeRemove, setOffsetBeforeRemove] = React.useState(0);\n const swipeExitYRef = React.useRef(null);\n const closeTimerRef = React.useRef(null);\n const closeTimerStartRef = React.useRef(0);\n const lastPauseTimeRef = React.useRef(0);\n const remainingTimeRef = React.useRef(toast.duration ?? ctx.duration);\n const isFront = index === 0;\n const isVisible = index < ctx.visibleToasts;\n const toastType = toast.type ?? \"default\";\n const dismissible = toast.dismissible !== false;\n const duration = toast.duration ?? ctx.duration;\n const [yPosition] = ctx.position.split(\"-\");\n const isTop = yPosition === \"top\";\n const expandedOffset = isWeb ? (() => {\n let totalHeight = 0;\n let activeCount = 0;\n for (let i = 0; i < index; i++) {\n const toastId = ctx.toasts[i]?.id;\n if (toastId == null) continue;\n const h = ctx.heights[toastId];\n if (h === 0) continue;\n totalHeight += h ?? ctx.toastHeight;\n activeCount++;\n }\n return totalHeight + activeCount * ctx.gap;\n })() : index * (ctx.toastHeight + ctx.gap);\n const expandedOffsetRef = React.useRef(expandedOffset);\n expandedOffsetRef.current = expandedOffset;\n const isExpandedRef = React.useRef(ctx.expanded);\n isExpandedRef.current = ctx.expanded;\n const startTimer = React.useCallback(() => {\n if (duration === Number.POSITIVE_INFINITY || toastType === \"loading\") return;\n closeTimerStartRef.current = Date.now();\n closeTimerRef.current = setTimeout(() => {\n toast.onAutoClose?.(toast);\n setRemoved(true);\n setTimeout(() => ctx.removeToast(toast), TIME_BEFORE_UNMOUNT);\n }, remainingTimeRef.current);\n }, [duration, toastType, toast, ctx.removeToast]);\n const pauseTimer = useEvent(() => {\n if (closeTimerRef.current) {\n clearTimeout(closeTimerRef.current);\n }\n if (lastPauseTimeRef.current < closeTimerStartRef.current) {\n const elapsed = Date.now() - closeTimerStartRef.current;\n remainingTimeRef.current = Math.max(0, remainingTimeRef.current - elapsed);\n }\n lastPauseTimeRef.current = Date.now();\n });\n const resumeTimer = useEvent(() => {\n if (ctx.expanded || ctx.interacting) return;\n remainingTimeRef.current = duration;\n startTimer();\n });\n React.useEffect(() => {\n setMounted(true);\n }, []);\n React.useEffect(() => {\n if (toast.delete) {\n setRemoved(true);\n if (isExpandedRef.current) {\n setOffsetBeforeRemove(expandedOffsetRef.current);\n }\n setTimeout(() => ctx.removeToast(toast), TIME_BEFORE_UNMOUNT);\n }\n }, [toast.delete, toast, ctx.removeToast]);\n React.useEffect(() => {\n if (ctx.expanded || ctx.interacting) {\n pauseTimer();\n } else {\n startTimer();\n }\n return () => {\n if (closeTimerRef.current) clearTimeout(closeTimerRef.current);\n };\n }, [ctx.expanded, ctx.interacting, startTimer]);\n React.useEffect(() => {\n remainingTimeRef.current = duration;\n }, [duration]);\n const {\n setDragOffset,\n springBack,\n animateOut,\n animatedStyle,\n AnimatedView,\n dragRef\n } = useToastAnimations({\n reducedMotion: ctx.reducedMotion\n });\n const { isDragging, gestureHandlers, gesture } = useAnimatedDragGesture({\n direction: ctx.swipeDirection,\n threshold: ctx.swipeThreshold,\n disabled: !dismissible || toastType === \"loading\",\n expanded: ctx.expanded,\n onDragStart: pauseTimer,\n onDragMove: setDragOffset,\n onDismiss: (exitDirection, velocity) => {\n ctx.triggerDismissCooldown();\n setSwipeOut(true);\n toast.onDismiss?.(toast);\n swipeExitYRef.current = isExpandedRef.current ? isTop ? expandedOffsetRef.current : -expandedOffsetRef.current : isFront ? 0 : isTop ? ctx.gap * index : -ctx.gap * index;\n setRemoved(true);\n ctx.removeToast(toast);\n animateOut(exitDirection, velocity);\n },\n onCancel: () => {\n springBack(() => {\n resumeTimer();\n });\n }\n });\n const handleLayout = React.useCallback(\n (event) => {\n if (!isWeb) return;\n if (removed) return;\n if (!ctx.expanded && index !== 0) return;\n const { height } = event.nativeEvent.layout;\n ctx.setToastHeight(toast.id, height);\n },\n [toast.id, ctx.setToastHeight, index, ctx.expanded, removed]\n );\n React.useEffect(() => {\n if (!isWeb) return;\n return () => {\n ctx.removeToastHeight(toast.id);\n };\n }, [toast.id, ctx.removeToastHeight]);\n const handleClose = React.useCallback(() => {\n if (!dismissible) return;\n ctx.triggerDismissCooldown();\n toast.onDismiss?.(toast);\n setRemoved(true);\n if (isExpandedRef.current) {\n setOffsetBeforeRemove(expandedOffsetRef.current);\n }\n setTimeout(() => ctx.removeToast(toast), TIME_BEFORE_UNMOUNT);\n }, [dismissible, toast, ctx.removeToast, ctx.triggerDismissCooldown]);\n const itemContextValue = React.useMemo(\n () => ({ toast, handleClose }),\n [toast, handleClose]\n );\n let frontToastHeight = -1;\n if (isWeb) {\n for (const t of ctx.toasts) {\n const h = ctx.heights[t.id];\n if (h != null && h > 0) {\n frontToastHeight = h;\n break;\n }\n }\n }\n const stackScale = !ctx.expanded && !isFront ? 1 - index * 0.05 : 1;\n const activeExpandedOffset = removed ? offsetBeforeRemove : expandedOffset;\n const stackY = ctx.expanded ? isTop ? activeExpandedOffset : -activeExpandedOffset : isFront ? 0 : isTop ? ctx.gap * index : -ctx.gap * index;\n const computedOpacity = removed && !swipeOut ? 0 : index >= ctx.visibleToasts ? 0 : 1;\n const computedZIndex = removed ? 0 : ctx.visibleToasts - index + 1;\n const computedHeight = isWeb ? ctx.expanded ? ctx.heights[toast.id] || void 0 : !isFront && frontToastHeight > 0 ? frontToastHeight : void 0 : void 0;\n const computedPointerEvents = index >= ctx.visibleToasts ? \"none\" : \"auto\";\n const gapFillerHeight = ctx.expanded ? ctx.gap + 1 : 0;\n const dataAttributes = {\n \"data-mounted\": mounted ? \"true\" : \"false\",\n \"data-removed\": removed ? \"true\" : \"false\",\n \"data-swipe-out\": swipeOut ? \"true\" : \"false\",\n \"data-visible\": isVisible ? \"true\" : \"false\",\n \"data-front\": isFront ? \"true\" : \"false\",\n \"data-index\": String(index),\n \"data-type\": toastType,\n \"data-expanded\": ctx.expanded ? \"true\" : \"false\"\n };\n return /* @__PURE__ */ jsx(\n ToastPositionWrapper,\n {\n ref,\n testID: rest.testID,\n \"aria-label\": rest[\"aria-label\"],\n ...dataAttributes,\n transition: isDragging || ctx.reducedMotion ? void 0 : removed ? \"200ms\" : \"400ms\",\n y: ctx.reducedMotion ? stackY : `${stackY} enter:${isTop ? -80 : 80}px exit:${swipeOut ? swipeExitYRef.current ?? stackY : stackY}px`,\n scale: stackScale,\n opacity: `${computedOpacity} enter:0 exit:0`,\n zIndex: computedZIndex,\n height: computedHeight,\n overflow: \"visible\",\n pointerEvents: computedPointerEvents,\n top: isTop ? 0 : void 0,\n bottom: isTop ? void 0 : 0,\n ...isWeb && !isFront && {\n style: { transformOrigin: isTop ? \"top center\" : \"bottom center\" }\n },\n animateOnly: isWeb ? [\"transform\", \"opacity\", \"height\"] : [\"transform\", \"opacity\"],\n children: /* @__PURE__ */ jsx(\n DragWrapper,\n {\n animatedStyle,\n gestureHandlers,\n gesture,\n AnimatedView,\n dragRef,\n children: /* @__PURE__ */ jsxs(\n ToastItemFrame,\n {\n role: \"status\",\n \"aria-live\": \"polite\",\n \"aria-atomic\": true,\n tabIndex: 0,\n onLayout: handleLayout,\n ...isWeb && {\n onKeyDown: (event) => {\n if (event.key === \"Escape\" && dismissible) {\n const current = event.currentTarget;\n const container = current.closest(\"[aria-label]\");\n if (container) {\n const focusables = container.querySelectorAll('[tabindex=\"0\"]');\n const arr = Array.from(focusables);\n const idx = arr.indexOf(current);\n const next = arr[idx + 1] || arr[idx - 1];\n next?.focus();\n }\n handleClose();\n }\n }\n },\n ...rest,\n children: [\n ctx.expanded && gapFillerHeight > 0 && /* @__PURE__ */ jsx(\n View,\n {\n position: \"absolute\",\n left: 0,\n right: 0,\n height: gapFillerHeight,\n pointerEvents: \"auto\",\n ...isTop ? { top: \"100%\" } : { bottom: \"100%\" }\n }\n ),\n /* @__PURE__ */ jsx(ToastItemContext.Provider, { value: itemContextValue, children })\n ]\n }\n )\n }\n )\n }\n );\n }\n);\nconst ToastTitle = styled(SizableText, {\n displayName: \"ToastTitle\"\n});\nconst ToastDescription = styled(SizableText, {\n displayName: \"ToastDescription\"\n});\nconst ToastClose = createStyledHOC(ToastCloseFrame, function ToastClose2(props, ref) {\n let handleClose;\n try {\n const itemCtx = useToastItemContext();\n handleClose = itemCtx.handleClose;\n } catch {\n }\n const ctx = useToastContext(\"Toast.Close\");\n return /* @__PURE__ */ jsx(ToastCloseFrame, { ref, \"aria-label\": \"Close toast\", onPress: handleClose, ...props, children: props.children ?? ctx.icons?.close ?? /* @__PURE__ */ jsx(DefaultCloseIcon, {}) });\n});\nconst ToastAction = createStyledHOC(ToastActionFrame, function ToastAction2(props, ref) {\n return /* @__PURE__ */ jsx(ToastActionFrame, { ref, ...props });\n});\nfunction ToastIcon(props) {\n const ctx = useToastContext(\"Toast.Icon\");\n let toast;\n try {\n const itemCtx = useToastItemContext();\n toast = itemCtx.toast;\n } catch {\n return null;\n }\n if (!toast) return null;\n if (toast.icon !== void 0) {\n return /* @__PURE__ */ jsx(View, { flexShrink: 0, marginTop: \"0-5\", children: toast.icon });\n }\n const toastType = toast.type ?? \"default\";\n const icon = ctx.icons?.[toastType] ?? null;\n if (!icon) return null;\n return /* @__PURE__ */ jsx(View, { flexShrink: 0, marginTop: \"0-5\", children: icon });\n}\nfunction useToasts() {\n const ctx = useToastContext(\"useToasts\");\n return {\n toasts: ctx.toasts,\n expanded: ctx.expanded,\n position: ctx.position,\n closeButton: ctx.closeButton\n };\n}\nfunction useToastItem() {\n return useToastItemContext();\n}\nToastRoot.displayName = \"Toast\";\nconst Toast = withStaticProperties(ToastRoot, {\n Viewport: ToastViewport,\n List: ToastList,\n Item: ToastItemInner,\n Title: ToastTitle,\n Description: ToastDescription,\n Close: ToastClose,\n Action: ToastAction,\n Icon: ToastIcon\n});\nexport {\n Toast,\n useToastItem,\n useToasts\n};\n//# sourceMappingURL=ToastComposable.js.map\n"],"mappings":";;;;;;;;;;;;;;;;;;AA+BA,MAAM,wBAAwB;AAC9B,MAAM,kBAAkB;AACxB,MAAM,YAAY;AAClB,MAAM,iBAAiB;AACvB,MAAM,qBAAqB;AAC3B,MAAM,sBAAsB;AAC5B,MAAM,iBAAiB,CAAC,UAAU,MAAM;AACxC,MAAM,eAAe,oBAAoB,CAAC,GAAG,SAAS;AACtD,MAAM,uBAAuB,aAAa;AAC1C,SAAS,gBAAgB,KAAK;CAC5B,OAAO,CAAC,CAAC,OAAO,MAAM,QAAQ,IAAI,MAAM,KAAK,OAAO,IAAI,mBAAmB,cAAc,OAAO,IAAI,gBAAgB;AACtH;AACA,SAAS,gBAAgB,cAAc;CACrC,MAAM,MAAM,qBAAqB;CACjC,IAAI,CAAC,gBAAgB,GAAG,GAAG;EACzB,MAAM,IAAI,MAAM,KAAK,aAAa,iCAAiC;CACrE;CACA,OAAO;AACT;AACA,MAAM,mBAAmB,MAAM,cAAc,IAAI;AACjD,SAAS,sBAAsB;CAC7B,MAAM,MAAM,MAAM,WAAW,gBAAgB;CAC7C,IAAI,CAAC,KAAK;EACR,MAAM,IAAI,MAAM,kEAAkE;CACpF;CACA,OAAO;AACT;AACA,SAAS,sBAAsB,WAAW,UAAU;CAClD,IAAI,cAAc,QAAQ,OAAO;CACjC,MAAM,CAAC,WAAW,aAAa,SAAS,MAAM,GAAG;CACjD,IAAI,CAAC,OAAO;EACV,OAAO,cAAc,QAAQ,OAAO;CACtC;CACA,IAAI,cAAc,QAAQ,OAAO;CACjC,IAAI,cAAc,SAAS,OAAO;CAClC,OAAO;AACT;AACA,MAAM,YAAY,mBAChB,SAAS,WAAW,OAAO,MAAM;CAC/B,MAAM,EACJ,UACA,WACA,WAAW,gBACX,WAAW,gBACX,MAAM,WACN,gBAAgB,uBAChB,gBAAgB,qBAAqB,QACrC,iBAAiB,IACjB,cAAc,oBACd,cAAc,OACd,SAAS,OACT,OAAO,WACP,eAAe,mBACf,SAAS,OACT,cACA,qBACA,UACE;CACJ,MAAM,gBAAgB,iBAAiB,iBAAiB;CACxD,MAAM,CAAC,QAAQ,aAAa,MAAM,SAAS,CAAC,CAAC;CAC7C,MAAM,CAAC,SAAS,cAAc,MAAM,SAAS,CAAC,CAAC;CAC/C,MAAM,CAAC,eAAe,eAAe,MAAM,SAAS,KAAK;CACzD,MAAM,WAAW,UAAU;CAC3B,MAAM,CAAC,aAAa,kBAAkB,MAAM,SAAS,KAAK;CAC1D,MAAM,mBAAmB,MAAM,OAAO,KAAK;CAC3C,MAAM,kBAAkB,MAAM,OAAO,QAAQ;CAC7C,MAAM,sBAAsB;EAC1B,IAAI,gBAAgB,YAAY,UAAU;GACxC,iBAAiB,UAAU;GAC3B,gBAAgB,UAAU;EAC5B;EACA,MAAM,QAAQ,iBAAiB;GAC7B,iBAAiB,UAAU;EAC7B,GAAG,GAAG;EACN,aAAa,aAAa,KAAK;CACjC,GAAG,CAAC,QAAQ,CAAC;CACb,MAAM,iBAAiB,MAAM,aAC1B,SAAS,WAAW;EACnB,IAAI,iBAAiB,SAAS;EAC9B,MAAM,UAAU,KAAK,MAAM,MAAM;EACjC,YAAY,SAAS;GACnB,MAAM,WAAW,KAAK;GACtB,IAAI,YAAY,QAAQ,KAAK,IAAI,WAAW,OAAO,KAAK,GAAG,OAAO;GAClE,OAAO;IAAE,GAAG;KAAO,UAAU;GAAQ;EACvC,CAAC;CACH,GACA,CAAC,CACH;CACA,MAAM,oBAAoB,MAAM,aAAa,YAAY;EACvD,YAAY,SAAS;GACnB,IAAI,EAAE,WAAW,OAAO,OAAO;GAC/B,MAAM,OAAO,EAAE,GAAG,KAAK;GACvB,OAAO,KAAK;GACZ,OAAO;EACT,CAAC;CACH,GAAG,CAAC,CAAC;CACL,MAAM,qBAAqB,MAAM,OAAO,KAAK;CAC7C,MAAM,0BAA0B,MAAM,OACpC,IACF;CACA,MAAM,yBAAyB,MAAM,kBAAkB;EACrD,mBAAmB,UAAU;EAC7B,IAAI,wBAAwB,SAAS;GACnC,aAAa,wBAAwB,OAAO;EAC9C;EACA,wBAAwB,UAAU,iBAAiB;GACjD,mBAAmB,UAAU;EAC/B,GAAG,GAAG;CACR,GAAG,CAAC,CAAC;CACL,MAAM,sBAAsB,MAAM,kBAAkB,mBAAmB,SAAS,CAAC,CAAC;CAClF,MAAM,kBAAkB,MAAM,OAAO,YAAY;CACjD,MAAM,yBAAyB,MAAM,OAAO,mBAAmB;CAC/D,MAAM,gBAAgB;EACpB,gBAAgB,UAAU;CAC5B,GAAG,CAAC,YAAY,CAAC;CACjB,MAAM,gBAAgB;EACpB,uBAAuB,UAAU;CACnC,GAAG,CAAC,mBAAmB,CAAC;CACxB,MAAM,gBAAgB;EACpB,OAAO,WAAW,WAAW,UAAU;GACrC,IAAI,MAAM,SAAS;IACjB,WACG,YAAY,QAAQ,KAAK,MAAM,EAAE,OAAO,MAAM,KAAK;KAAE,GAAG;KAAG,QAAQ;IAAK,IAAI,CAAC,CAChF;IACA;GACF;GACA,IAAI,MAAM,cAAc,WAAW;IACjC;GACF;GACA,IAAI,QAAQ;IACV,MAAM,UAAU,oBAAoB,OAAO;KACzC;KACA,cAAc,gBAAgB;KAC9B,qBAAqB,uBAAuB;IAC9C,CAAC;IACD,IAAI,SAAS;GACf;GACA,WAAW,YAAY;IACrB,MAAM,MAAM,QAAQ,WAAW,MAAM,EAAE,OAAO,MAAM,EAAE;IACtD,IAAI,QAAQ,CAAC,GAAG;KACd,OAAO;MACL,GAAG,QAAQ,MAAM,GAAG,GAAG;MACvB;OAAE,GAAG,QAAQ;OAAM,GAAG;MAAM;MAC5B,GAAG,QAAQ,MAAM,MAAM,CAAC;KAC1B;IACF;IACA,OAAO,CAAC,OAAO,GAAG,OAAO;GAC3B,CAAC;EACH,CAAC;CACH,GAAG;EAAC;EAAQ;EAAU;CAAS,CAAC;CAChC,MAAM,oBAAoB,MAAM,OAAO,OAAO,MAAM;CACpD,MAAM,gBAAgB;EACpB,MAAM,YAAY,kBAAkB;EACpC,kBAAkB,UAAU,OAAO;EACnC,IAAI,OAAO,UAAU,KAAK,CAAC,mBAAmB,SAAS;GACrD,YAAY,KAAK;EACnB,OAAO,IAAI,OAAO,SAAS,aAAa,UAAU;GAChD,YAAY,KAAK;EACnB;CACF,GAAG,CAAC,OAAO,QAAQ,QAAQ,CAAC;CAC5B,MAAM,cAAc,MAAM,aAAa,kBAAkB;EACvD,WAAW,YAAY;GACrB,IAAI,CAAC,QAAQ,MAAM,MAAM,EAAE,OAAO,cAAc,EAAE,CAAC,EAAE,QAAQ;IAC3D,WAAW,QAAQ,cAAc,EAAE;GACrC;GACA,OAAO,QAAQ,QAAQ,EAAE,SAAS,OAAO,cAAc,EAAE;EAC3D,CAAC;CACH,GAAG,CAAC,CAAC;CACL,MAAM,iBAAiB,sBAAsB,oBAAoB,QAAQ;CACzE,MAAM,eAAe,aAAa;CAClC,MAAM,gBAAgB,cAAc,YAAY,CAAC,YAAY,cAAc,SAAS,MAAM,IAAI,SAAS,UAAU;CACjH,MAAM,eAAe;EACnB;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;CACF;CACA,OAAuB,oBAAI,aAAa,UAAU;EAAE,GAAG;EAAc,UAA0B,oBAAI,OAAO;GAAE,MAAM;GAAe;EAAS,CAAC;CAAE,CAAC;AAChJ,CACF;AACA,MAAM,qBAAqB,OAAO,MAAM;CACtC,aAAa;CACb,UAAU,QAAQ,UAAU;CAC5B,QAAQ;CACR,eAAe;CACf,UAAU;CACV,GAAG,SAAS,EAAE,OAAO,IAAI;CACzB,WAAW;AACb,CAAC;AACD,MAAM,gBAAgB,gBACpB,oBACA,SAAS,eAAe,OAAO,KAAK;CAClC,MAAM,EACJ,SAAS,iBACT,SAAS,gBACT,QAAQ,iBACR,eAAe,MACf,eAAe,OAAO,kBACtB,UACA,GAAG,SACD;CACJ,MAAM,MAAM,gBAAgB,gBAAgB;CAC5C,MAAM,UAAU,MAAM,OAAO,IAAI;CACjC,MAAM,kBAAkB,MAAM,OAAO,IAAI;CACzC,MAAM,mBAAmB,MAAM,OAAO,KAAK;CAC3C,MAAM,sBAAsB,MAAM,OAAO,IAAI;CAC7C,MAAM,iBAAiB,MAAM,OAAO,KAAK;CACzC,MAAM,CAAC,WAAW,aAAa,IAAI,SAAS,MAAM,GAAG;CACrD,MAAM,EAAE,QAAQ,eAAe,iBAAiB;CAChD,MAAM,eAAe,MAAM,cAAc;EACvC,MAAM,SAAS,CAAC;EAChB,MAAM,gBAAgB,OAAO,WAAW,WAAW,SAAS;EAC5D,MAAM,YAAY,OAAO,WAAW,WAAW,SAAS;GACtD,KAAK;GACL,OAAO;GACP,QAAQ;GACR,MAAM;EACR;EACA,MAAM,UAAU,YAAY,OAAO;EACnC,MAAM,aAAa,YAAY,UAAU;EACzC,MAAM,YAAY,UAAU,IAAI,UAAU,UAAU,OAAO;EAC3D,MAAM,eAAe,aAAa,IAAI,aAAa,UAAU,UAAU;EACvE,IAAI,cAAc,OAAO,OAAO,MAAM;OACjC,OAAO,SAAS;EACrB,IAAI,OAAO;GACT,IAAI,cAAc,QAAQ,OAAO,OAAO,UAAU,QAAQ;QACrD,IAAI,cAAc,SAAS,OAAO,QAAQ,UAAU,SAAS;QAC7D;IACH,OAAO,OAAO;IACd,OAAO,YAAY;GACrB;EACF,OAAO;GACL,OAAO,OAAO,UAAU,QAAQ;GAChC,OAAO,QAAQ,UAAU,SAAS;EACpC;EACA,OAAO;CACT,GAAG;EAAC;EAAQ;EAAW;CAAS,CAAC;CACjC,MAAM,gBAAgB;EACpB,IAAI,CAAC,OAAO;EACZ,MAAM,iBAAiB,UAAU;GAC/B,MAAM,kBAAkB,OAAO,SAAS,KAAK,OAAO,OAAO,QAAQ,MAAM,QAAQ,MAAM,SAAS,GAAG;GACnG,IAAI,iBAAiB;IACnB,IAAI,YAAY,IAAI;IACpB,QAAQ,SAAS,MAAM;GACzB;EACF;EACA,SAAS,iBAAiB,WAAW,aAAa;EAClD,aAAa,SAAS,oBAAoB,WAAW,aAAa;CACpE,GAAG,CAAC,MAAM,CAAC;CACX,IAAI,IAAI,OAAO,WAAW,GAAG,OAAO;CACpC,MAAM,cAAc,OAAO,KAAK,GAAG,CAAC,CAAC,QAAQ,QAAQ,EAAE,CAAC,CAAC,QAAQ,UAAU,EAAE;CAC7E,MAAM,UAA0B,oBAC9B,oBACA;EACE,KAAK;EACL,cAAc,GAAG,MAAM,GAAG;EAC1B,UAAU,CAAC;EACX,aAAa;EACb,OAAO;EACP,mBAAmB;EACnB,mBAAmB;EACnB,GAAG,QAAQ;GACT,oBAAoB;IAClB,eAAe,UAAU;IACzB,IAAI,oBAAoB,SAAS;KAC/B,aAAa,oBAAoB,OAAO;KACxC,oBAAoB,UAAU;IAChC;IACA,IAAI,IAAI,OAAO,SAAS,KAAK,CAAC,IAAI,eAAe,CAAC,iBAAiB,SAAS;KAC1E,gBAAgB,UAAU,iBAAiB,IAAI,YAAY,IAAI,GAAG,EAAE;IACtE;GACF;GACA,oBAAoB;IAClB,eAAe,UAAU;IACzB,IAAI,gBAAgB,SAAS;KAC3B,aAAa,gBAAgB,OAAO;KACpC,gBAAgB,UAAU;IAC5B;IACA,IAAI,CAAC,IAAI,eAAe,CAAC,IAAI,oBAAoB,GAAG;KAClD,IAAI,YAAY,KAAK;IACvB,OAAO,IAAI,IAAI,oBAAoB,GAAG;KACpC,IAAI,oBAAoB,SAAS;MAC/B,aAAa,oBAAoB,OAAO;KAC1C;KACA,oBAAoB,UAAU,iBAAiB;MAC7C,oBAAoB,UAAU;MAC9B,IAAI,CAAC,eAAe,SAAS;OAC3B,IAAI,YAAY,KAAK;MACvB;KACF,GAAG,IAAI;IACT;GACF;GACA,qBAAqB;IACnB,IAAI,gBAAgB,SAAS;KAC3B,aAAa,gBAAgB,OAAO;KACpC,gBAAgB,UAAU;IAC5B;IACA,IAAI,eAAe,IAAI;GACzB;GACA,mBAAmB,IAAI,eAAe,KAAK;GAC3C,uBAAuB,IAAI,eAAe,KAAK;EACjD,IAAI,EACF,eAAe;GACb,IAAI,IAAI,OAAO,SAAS,GAAG;IACzB,IAAI,aAAa,SAAS,CAAC,IAAI;GACjC;EACF,EACF;EACA,GAAG,SAAS;GACV,UAAU,UAAU;IAClB,IAAI,CAAC,MAAM,cAAc,SACvB,MAAM,aACR,GAAG;KACD,IAAI,IAAI,OAAO,SAAS,GAAG;MACzB,IAAI,YAAY,IAAI;KACtB;KACA,IAAI,eAAe,IAAI;IACzB;GACF;GACA,SAAS,UAAU;IACjB,IAAI,CAAC,MAAM,cAAc,SACvB,MAAM,aACR,GAAG;KACD,IAAI,eAAe,KAAK;KACxB,IAAI,CAAC,IAAI,oBAAoB,GAAG;MAC9B,IAAI,YAAY,KAAK;KACvB;IACF;GACF;EACF;EACA,GAAG;EACH;CACF,CACF;CACA,IAAI,cAAc;EAChB,OAAuB,oBAAI,QAAQ;GAAE,QAAQ;GAAc,UAA0B,oBAAI,aAAa,UAAU;IAAE,GAAG;IAAK,UAAU;GAAQ,CAAC;EAAE,CAAC;CAClJ;CACA,OAAO;AACT,CACF;AACA,SAAS,UAAU,EAAE,cAAc;CACjC,MAAM,MAAM,gBAAgB,YAAY;CACxC,MAAM,YAAY,IAAI,OAAO;CAC7B,OAAuB,oBAAI,iBAAiB,EAAE,UAAU,IAAI,OAAO,MAAM,GAAG,SAAS,CAAC,CAAC,KAAK,OAAO,UAAU;EAC3G,MAAM,oBAAoB;GACxB,IAAI,MAAM,gBAAgB,OAAO;GACjC,MAAM,YAAY,KAAK;GACvB,IAAI,YAAY,KAAK;EACvB;EACA,MAAM,mBAAmB;GACvB;GACA;EACF;EACA,IAAI,CAAC,YAAY;GACf,OAAuB,oBAAI,iBAAiB,UAAU;IAAE,OAAO;IAAkB,UAA0B,oBAAI,gBAAgB;KAAE;KAAO;KAAO,UAA0B,oBAAI,qBAAqB,EAAE,MAAM,CAAC;IAAE,CAAC;GAAE,GAAG,MAAM,EAAE;EAC7N;EACA,OAAuB,oBAAI,iBAAiB,UAAU;GAAE,OAAO;GAAkB,UAAU,WAAW;IAAE;IAAO;IAAO;GAAY,CAAC;EAAE,GAAG,MAAM,EAAE;CAClJ,CAAC,EAAE,CAAC;AACN;AACA,SAAS,oBAAoB,EAAE,SAAS;CACtC,MAAM,MAAM,gBAAgB,YAAY;CACxC,MAAM,EAAE,gBAAgB,oBAAoB;CAC5C,MAAM,YAAY,MAAM,QAAQ;CAChC,MAAM,cAAc,MAAM,gBAAgB;CAC1C,MAAM,QAAQ,OAAO,MAAM,UAAU,aAAa,MAAM,MAAM,IAAI,MAAM;CACxE,MAAM,cAAc,OAAO,MAAM,gBAAgB,aAAa,MAAM,YAAY,IAAI,MAAM;CAC1F,OAAuB,qBAAK,QAAQ;EAAE,YAAY;EAAc,KAAK;EAAK,UAAU;GAClE,oBAAI,WAAW,CAAC,CAAC;GACjB,qBAAK,QAAQ;IAAE,MAAM;IAAG,KAAK;IAAK,UAAU;KAC1D,SAAyB,oBAAI,YAAY,EAAE,UAAU,MAAM,CAAC;KAC5D,eAA+B,oBAAI,kBAAkB,EAAE,UAAU,YAAY,CAAC;MAC7E,MAAM,UAAU,MAAM,WAA2B,qBAAK,QAAQ;MAAE,KAAK;MAAK,WAAW;MAAK,UAAU,CACnG,MAAM,UAA0B,oBAC9B,kBACA;OACE,UAAU,MAAM;QACd,MAAM,QAAQ,UAAU,CAAC;QACzB,YAAY;OACd;OACA,UAA0B,oBAAI,aAAa;QAAE,MAAM;QAAK,UAAU,MAAM,OAAO;OAAM,CAAC;MACxF,CACF,GACA,MAAM,UAA0B,oBAC9B,kBACA;OACE,UAAU,MAAM;QACd,MAAM,QAAQ,UAAU,CAAC;QACzB,IAAI,CAAC,EAAE,kBAAkB;SACvB,YAAY;QACd;OACF;OACA,UAA0B,oBAAI,aAAa;QAAE,MAAM;QAAK,UAAU,MAAM,OAAO;OAAM,CAAC;MACxF,CACF,CACF;KAAE,CAAC;IACL;GAAE,CAAC;GACH,IAAI,eAAe,eAA+B,oBAAI,YAAY,CAAC,CAAC;EACtE;CAAE,CAAC;AACL;AACA,SAAS,YAAY,EACnB,eACA,iBACA,SACA,cACA,SACA,YACC;CACD,IAAI,OAAO;EACT,OAAuB,oBACrB,OACA;GACE,KAAK;GACL,OAAO;IACL,MAAM;IACN,SAAS;IACT,eAAe;IACf,YAAY;IACZ,kBAAkB;IAClB,aAAa;IACb,QAAQ;GACV;GACA,GAAG;GACH;EACF,CACF;CACF;CACA,IAAI,SAAS;EACX,MAAM,KAAK,kBAAkB;EAC7B,MAAM,kBAAkB,GAAG,MAAM;EACjC,IAAI,iBAAiB;GACnB,OAAuB,oBAAI,iBAAiB;IAAE;IAAS,UAA0B,oBAAI,MAAM;KAAE,OAAO,EAAE,MAAM,EAAE;KAAG,GAAG,EAAE,aAAa,MAAM;KAAG,UAA0B,oBAAI,cAAc;MAAE,OAAO,CAAC,EAAE,MAAM,EAAE,GAAG,aAAa;MAAG;KAAS,CAAC;IAAE,CAAC;GAAE,CAAC;EACjP;CACF;CACA,OAAuB,oBAAI,cAAc;EAAE,OAAO,CAAC,EAAE,MAAM,EAAE,GAAG,aAAa;EAAG,GAAG;EAAiB;CAAS,CAAC;AAChH;AACA,MAAM,iBAAiB,gBACrB,gBACA,SAAS,UAAU,OAAO,KAAK;CAC7B,MAAM,EAAE,OAAO,OAAO,UAAU,GAAG,SAAS;CAC5C,MAAM,MAAM,gBAAgB,YAAY;CACxC,MAAM,CAAC,SAAS,cAAc,MAAM,SAAS,KAAK;CAClD,MAAM,CAAC,SAAS,cAAc,MAAM,SAAS,KAAK;CAClD,MAAM,CAAC,UAAU,eAAe,MAAM,SAAS,KAAK;CACpD,MAAM,CAAC,oBAAoB,yBAAyB,MAAM,SAAS,CAAC;CACpE,MAAM,gBAAgB,MAAM,OAAO,IAAI;CACvC,MAAM,gBAAgB,MAAM,OAAO,IAAI;CACvC,MAAM,qBAAqB,MAAM,OAAO,CAAC;CACzC,MAAM,mBAAmB,MAAM,OAAO,CAAC;CACvC,MAAM,mBAAmB,MAAM,OAAO,MAAM,YAAY,IAAI,QAAQ;CACpE,MAAM,UAAU,UAAU;CAC1B,MAAM,YAAY,QAAQ,IAAI;CAC9B,MAAM,YAAY,MAAM,QAAQ;CAChC,MAAM,cAAc,MAAM,gBAAgB;CAC1C,MAAM,WAAW,MAAM,YAAY,IAAI;CACvC,MAAM,CAAC,aAAa,IAAI,SAAS,MAAM,GAAG;CAC1C,MAAM,QAAQ,cAAc;CAC5B,MAAM,iBAAiB,eAAe;EACpC,IAAI,cAAc;EAClB,IAAI,cAAc;EAClB,KAAK,IAAI,IAAI,GAAG,IAAI,OAAO,KAAK;GAC9B,MAAM,UAAU,IAAI,OAAO,EAAE,EAAE;GAC/B,IAAI,WAAW,MAAM;GACrB,MAAM,IAAI,IAAI,QAAQ;GACtB,IAAI,MAAM,GAAG;GACb,eAAe,KAAK,IAAI;GACxB;EACF;EACA,OAAO,cAAc,cAAc,IAAI;CACzC,EAAC,CAAE,IAAI,SAAS,IAAI,cAAc,IAAI;CACtC,MAAM,oBAAoB,MAAM,OAAO,cAAc;CACrD,kBAAkB,UAAU;CAC5B,MAAM,gBAAgB,MAAM,OAAO,IAAI,QAAQ;CAC/C,cAAc,UAAU,IAAI;CAC5B,MAAM,aAAa,MAAM,kBAAkB;EACzC,IAAI,aAAa,OAAO,qBAAqB,cAAc,WAAW;EACtE,mBAAmB,UAAU,KAAK,IAAI;EACtC,cAAc,UAAU,iBAAiB;GACvC,MAAM,cAAc,KAAK;GACzB,WAAW,IAAI;GACf,iBAAiB,IAAI,YAAY,KAAK,GAAG,mBAAmB;EAC9D,GAAG,iBAAiB,OAAO;CAC7B,GAAG;EAAC;EAAU;EAAW;EAAO,IAAI;CAAW,CAAC;CAChD,MAAM,aAAa,eAAe;EAChC,IAAI,cAAc,SAAS;GACzB,aAAa,cAAc,OAAO;EACpC;EACA,IAAI,iBAAiB,UAAU,mBAAmB,SAAS;GACzD,MAAM,UAAU,KAAK,IAAI,IAAI,mBAAmB;GAChD,iBAAiB,UAAU,KAAK,IAAI,GAAG,iBAAiB,UAAU,OAAO;EAC3E;EACA,iBAAiB,UAAU,KAAK,IAAI;CACtC,CAAC;CACD,MAAM,cAAc,eAAe;EACjC,IAAI,IAAI,YAAY,IAAI,aAAa;EACrC,iBAAiB,UAAU;EAC3B,WAAW;CACb,CAAC;CACD,MAAM,gBAAgB;EACpB,WAAW,IAAI;CACjB,GAAG,CAAC,CAAC;CACL,MAAM,gBAAgB;EACpB,IAAI,MAAM,QAAQ;GAChB,WAAW,IAAI;GACf,IAAI,cAAc,SAAS;IACzB,sBAAsB,kBAAkB,OAAO;GACjD;GACA,iBAAiB,IAAI,YAAY,KAAK,GAAG,mBAAmB;EAC9D;CACF,GAAG;EAAC,MAAM;EAAQ;EAAO,IAAI;CAAW,CAAC;CACzC,MAAM,gBAAgB;EACpB,IAAI,IAAI,YAAY,IAAI,aAAa;GACnC,WAAW;EACb,OAAO;GACL,WAAW;EACb;EACA,aAAa;GACX,IAAI,cAAc,SAAS,aAAa,cAAc,OAAO;EAC/D;CACF,GAAG;EAAC,IAAI;EAAU,IAAI;EAAa;CAAU,CAAC;CAC9C,MAAM,gBAAgB;EACpB,iBAAiB,UAAU;CAC7B,GAAG,CAAC,QAAQ,CAAC;CACb,MAAM,EACJ,eACA,YACA,YACA,eACA,cACA,YACE,mBAAmB,EACrB,eAAe,IAAI,cACrB,CAAC;CACD,MAAM,EAAE,YAAY,iBAAiB,YAAY,uBAAuB;EACtE,WAAW,IAAI;EACf,WAAW,IAAI;EACf,UAAU,CAAC,eAAe,cAAc;EACxC,UAAU,IAAI;EACd,aAAa;EACb,YAAY;EACZ,YAAY,eAAe,aAAa;GACtC,IAAI,uBAAuB;GAC3B,YAAY,IAAI;GAChB,MAAM,YAAY,KAAK;GACvB,cAAc,UAAU,cAAc,UAAU,QAAQ,kBAAkB,UAAU,CAAC,kBAAkB,UAAU,UAAU,IAAI,QAAQ,IAAI,MAAM,QAAQ,CAAC,IAAI,MAAM;GACpK,WAAW,IAAI;GACf,IAAI,YAAY,KAAK;GACrB,WAAW,eAAe,QAAQ;EACpC;EACA,gBAAgB;GACd,iBAAiB;IACf,YAAY;GACd,CAAC;EACH;CACF,CAAC;CACD,MAAM,eAAe,MAAM,aACxB,UAAU;EACT,IAAI,CAAC,OAAO;EACZ,IAAI,SAAS;EACb,IAAI,CAAC,IAAI,YAAY,UAAU,GAAG;EAClC,MAAM,EAAE,WAAW,MAAM,YAAY;EACrC,IAAI,eAAe,MAAM,IAAI,MAAM;CACrC,GACA;EAAC,MAAM;EAAI,IAAI;EAAgB;EAAO,IAAI;EAAU;CAAO,CAC7D;CACA,MAAM,gBAAgB;EACpB,IAAI,CAAC,OAAO;EACZ,aAAa;GACX,IAAI,kBAAkB,MAAM,EAAE;EAChC;CACF,GAAG,CAAC,MAAM,IAAI,IAAI,iBAAiB,CAAC;CACpC,MAAM,cAAc,MAAM,kBAAkB;EAC1C,IAAI,CAAC,aAAa;EAClB,IAAI,uBAAuB;EAC3B,MAAM,YAAY,KAAK;EACvB,WAAW,IAAI;EACf,IAAI,cAAc,SAAS;GACzB,sBAAsB,kBAAkB,OAAO;EACjD;EACA,iBAAiB,IAAI,YAAY,KAAK,GAAG,mBAAmB;CAC9D,GAAG;EAAC;EAAa;EAAO,IAAI;EAAa,IAAI;CAAsB,CAAC;CACpE,MAAM,mBAAmB,MAAM,eACtB;EAAE;EAAO;CAAY,IAC5B,CAAC,OAAO,WAAW,CACrB;CACA,IAAI,mBAAmB,CAAC;CACxB,IAAI,OAAO;EACT,KAAK,MAAM,KAAK,IAAI,QAAQ;GAC1B,MAAM,IAAI,IAAI,QAAQ,EAAE;GACxB,IAAI,KAAK,QAAQ,IAAI,GAAG;IACtB,mBAAmB;IACnB;GACF;EACF;CACF;CACA,MAAM,aAAa,CAAC,IAAI,YAAY,CAAC,UAAU,IAAI,QAAQ,MAAO;CAClE,MAAM,uBAAuB,UAAU,qBAAqB;CAC5D,MAAM,SAAS,IAAI,WAAW,QAAQ,uBAAuB,CAAC,uBAAuB,UAAU,IAAI,QAAQ,IAAI,MAAM,QAAQ,CAAC,IAAI,MAAM;CACxI,MAAM,kBAAkB,WAAW,CAAC,WAAW,IAAI,SAAS,IAAI,gBAAgB,IAAI;CACpF,MAAM,iBAAiB,UAAU,IAAI,IAAI,gBAAgB,QAAQ;CACjE,MAAM,iBAAiB,QAAQ,IAAI,WAAW,IAAI,QAAQ,MAAM,OAAO,KAAK,IAAI,CAAC,WAAW,mBAAmB,IAAI,mBAAmB,KAAK,IAAI,KAAK;CACpJ,MAAM,wBAAwB,SAAS,IAAI,gBAAgB,SAAS;CACpE,MAAM,kBAAkB,IAAI,WAAW,IAAI,MAAM,IAAI;CACrD,MAAM,iBAAiB;EACrB,gBAAgB,UAAU,SAAS;EACnC,gBAAgB,UAAU,SAAS;EACnC,kBAAkB,WAAW,SAAS;EACtC,gBAAgB,YAAY,SAAS;EACrC,cAAc,UAAU,SAAS;EACjC,cAAc,OAAO,KAAK;EAC1B,aAAa;EACb,iBAAiB,IAAI,WAAW,SAAS;CAC3C;CACA,OAAuB,oBACrB,sBACA;EACE;EACA,QAAQ,KAAK;EACb,cAAc,KAAK;EACnB,GAAG;EACH,YAAY,cAAc,IAAI,gBAAgB,KAAK,IAAI,UAAU,UAAU;EAC3E,GAAG,IAAI,gBAAgB,SAAS,GAAG,OAAO,SAAS,QAAQ,CAAC,KAAK,GAAG,UAAU,WAAW,cAAc,WAAW,SAAS,OAAO;EAClI,OAAO;EACP,SAAS,GAAG,gBAAgB;EAC5B,QAAQ;EACR,QAAQ;EACR,UAAU;EACV,eAAe;EACf,KAAK,QAAQ,IAAI,KAAK;EACtB,QAAQ,QAAQ,KAAK,IAAI;EACzB,GAAG,SAAS,CAAC,WAAW,EACtB,OAAO,EAAE,iBAAiB,QAAQ,eAAe,gBAAgB,EACnE;EACA,aAAa,QAAQ;GAAC;GAAa;GAAW;EAAQ,IAAI,CAAC,aAAa,SAAS;EACjF,UAA0B,oBACxB,aACA;GACE;GACA;GACA;GACA;GACA;GACA,UAA0B,qBACxB,gBACA;IACE,MAAM;IACN,aAAa;IACb,eAAe;IACf,UAAU;IACV,UAAU;IACV,GAAG,SAAS,EACV,YAAY,UAAU;KACpB,IAAI,MAAM,QAAQ,YAAY,aAAa;MACzC,MAAM,UAAU,MAAM;MACtB,MAAM,YAAY,QAAQ,QAAQ,cAAc;MAChD,IAAI,WAAW;OACb,MAAM,aAAa,UAAU,iBAAiB,kBAAgB;OAC9D,MAAM,MAAM,MAAM,KAAK,UAAU;OACjC,MAAM,MAAM,IAAI,QAAQ,OAAO;OAC/B,MAAM,OAAO,IAAI,MAAM,MAAM,IAAI,MAAM;OACvC,MAAM,MAAM;MACd;MACA,YAAY;KACd;IACF,EACF;IACA,GAAG;IACH,UAAU,CACR,IAAI,YAAY,kBAAkB,KAAqB,oBACrD,MACA;KACE,UAAU;KACV,MAAM;KACN,OAAO;KACP,QAAQ;KACR,eAAe;KACf,GAAG,QAAQ,EAAE,KAAK,OAAO,IAAI,EAAE,QAAQ,OAAO;IAChD,CACF,GACgB,oBAAI,iBAAiB,UAAU;KAAE,OAAO;KAAkB;IAAS,CAAC,CACtF;GACF,CACF;EACF,CACF;CACF,CACF;AACF,CACF;AACA,MAAM,aAAa,OAAO,aAAa,EACrC,aAAa,aACf,CAAC;AACD,MAAM,mBAAmB,OAAO,aAAa,EAC3C,aAAa,mBACf,CAAC;AACD,MAAM,aAAa,gBAAgB,iBAAiB,SAAS,YAAY,OAAO,KAAK;CACnF,IAAI;CACJ,IAAI;EACF,MAAM,UAAU,oBAAoB;EACpC,cAAc,QAAQ;CACxB,QAAQ,CACR;CACA,MAAM,MAAM,gBAAgB,aAAa;CACzC,OAAuB,oBAAI,iBAAiB;EAAE;EAAK,cAAc;EAAe,SAAS;EAAa,GAAG;EAAO,UAAU,MAAM,YAAY,IAAI,OAAO,SAAyB,oBAAI,kBAAkB,CAAC,CAAC;CAAE,CAAC;AAC7M,CAAC;AACD,MAAM,cAAc,gBAAgB,kBAAkB,SAAS,aAAa,OAAO,KAAK;CACtF,OAAuB,oBAAI,kBAAkB;EAAE;EAAK,GAAG;CAAM,CAAC;AAChE,CAAC;AACD,SAAS,UAAU,OAAO;CACxB,MAAM,MAAM,gBAAgB,YAAY;CACxC,IAAI;CACJ,IAAI;EACF,MAAM,UAAU,oBAAoB;EACpC,QAAQ,QAAQ;CAClB,QAAQ;EACN,OAAO;CACT;CACA,IAAI,CAAC,OAAO,OAAO;CACnB,IAAI,MAAM,SAAS,KAAK,GAAG;EACzB,OAAuB,oBAAI,MAAM;GAAE,YAAY;GAAG,WAAW;GAAO,UAAU,MAAM;EAAK,CAAC;CAC5F;CACA,MAAM,YAAY,MAAM,QAAQ;CAChC,MAAM,OAAO,IAAI,QAAQ,cAAc;CACvC,IAAI,CAAC,MAAM,OAAO;CAClB,OAAuB,oBAAI,MAAM;EAAE,YAAY;EAAG,WAAW;EAAO,UAAU;CAAK,CAAC;AACtF;AACA,SAAS,YAAY;CACnB,MAAM,MAAM,gBAAgB,WAAW;CACvC,OAAO;EACL,QAAQ,IAAI;EACZ,UAAU,IAAI;EACd,UAAU,IAAI;EACd,aAAa,IAAI;CACnB;AACF;AACA,SAAS,eAAe;CACtB,OAAO,oBAAoB;AAC7B;AACA,UAAU,cAAc;AACxB,MAAM,QAAQ,qBAAqB,WAAW;CAC5C,UAAU;CACV,MAAM;CACN,MAAM;CACN,OAAO;CACP,aAAa;CACb,OAAO;CACP,QAAQ;CACR,MAAM;AACR,CAAC"}
1
+ {"version":3,"file":"ToastComposable.js","names":[],"sources":["esm/ToastComposable.js"],"sourcesContent":["import { createStyledHOC, createRefComponent } from \"@tamagui/core\";\nimport { AnimatePresence } from \"@tamagui/animate-presence\";\nimport { isWeb } from \"@tamagui/constants\";\nimport { getGestureHandler } from \"@tamagui/native\";\nimport { createStyledContext, styled, useEvent, View } from \"@tamagui/core\";\nimport { withStaticProperties } from \"@tamagui/helpers\";\nimport { Portal } from \"@tamagui/portal\";\nimport { XStack, YStack } from \"@tamagui/stacks\";\nimport { SizableText } from \"@tamagui/text\";\nimport * as React from \"react\";\nimport { ToastState } from \"./ToastState\";\nimport { dispatchNativeToast } from \"./dispatchNativeToast\";\nimport { useAnimatedDragGesture } from \"./useAnimatedDragGesture\";\nimport { useToastAnimations } from \"./useToastAnimations\";\nimport { useReducedMotion } from \"./useReducedMotion\";\nimport {\n DefaultCloseIcon,\n ToastActionFrame,\n ToastCloseFrame,\n ToastItemFrame,\n ToastPositionWrapper\n} from \"./ToastItemFrame\";\nimport { jsx, jsxs } from \"react/jsx-runtime\";\nconst VISIBLE_TOASTS_AMOUNT = 4;\nconst VIEWPORT_OFFSET = 16;\nconst TOAST_GAP = 14;\nconst TOAST_LIFETIME = 4e3;\nconst FIXED_TOAST_HEIGHT = 72;\nconst TIME_BEFORE_UNMOUNT = 200;\nconst DEFAULT_HOTKEY = [\"altKey\", \"KeyT\"];\nconst ToastContext = createStyledContext({}, \"Toast__\");\nconst useToastContextValue = ToastContext.useStyledContext;\nfunction hasToastContext(ctx) {\n return !!ctx && Array.isArray(ctx.toasts) && typeof ctx.setToastHeight === \"function\" && typeof ctx.removeToast === \"function\";\n}\nfunction useToastContext(consumerName) {\n const ctx = useToastContextValue();\n if (!hasToastContext(ctx)) {\n throw new Error(`\\`${consumerName}\\` must be used within \\`Toast\\``);\n }\n return ctx;\n}\nconst ToastItemContext = React.createContext(null);\nfunction useToastItemContext() {\n const ctx = React.useContext(ToastItemContext);\n if (!ctx) {\n throw new Error(\"useToastItemContext must be used within Toast.Item or Toast.List\");\n }\n return ctx;\n}\nfunction resolveSwipeDirection(direction, position) {\n if (direction !== \"auto\") return direction;\n const [yPosition, xPosition] = position.split(\"-\");\n if (!isWeb) {\n return yPosition === \"top\" ? \"up\" : \"down\";\n }\n if (xPosition === \"left\") return \"left\";\n if (xPosition === \"right\") return \"right\";\n return \"horizontal\";\n}\nconst ToastRoot = createRefComponent(\n function ToastRoot2(props, _ref) {\n const {\n children,\n toasterId,\n position = \"bottom-right\",\n duration = TOAST_LIFETIME,\n gap = TOAST_GAP,\n visibleToasts = VISIBLE_TOASTS_AMOUNT,\n swipeDirection: swipeDirectionProp = \"auto\",\n swipeThreshold = 50,\n toastHeight = FIXED_TOAST_HEIGHT,\n closeButton = false,\n expand = false,\n reducedMotion: reducedMotionProp,\n native = false,\n burntOptions,\n notificationOptions,\n icons\n } = props;\n const reducedMotion = useReducedMotion(reducedMotionProp);\n const [toasts, setToasts] = React.useState([]);\n const [heights, setHeights] = React.useState({});\n const [localExpanded, setExpanded] = React.useState(false);\n const expanded = expand || localExpanded;\n const [interacting, setInteracting] = React.useState(false);\n const heightsLockedRef = React.useRef(false);\n const prevExpandedRef = React.useRef(expanded);\n React.useLayoutEffect(() => {\n if (prevExpandedRef.current !== expanded) {\n heightsLockedRef.current = true;\n prevExpandedRef.current = expanded;\n }\n const timer = setTimeout(() => {\n heightsLockedRef.current = false;\n }, 350);\n return () => clearTimeout(timer);\n }, [expanded]);\n const setToastHeight = React.useCallback(\n (toastId, height) => {\n if (heightsLockedRef.current) return;\n const rounded = Math.round(height);\n setHeights((prev) => {\n const existing = prev[toastId];\n if (existing != null && Math.abs(existing - rounded) <= 2) return prev;\n return { ...prev, [toastId]: rounded };\n });\n },\n []\n );\n const removeToastHeight = React.useCallback((toastId) => {\n setHeights((prev) => {\n if (!(toastId in prev)) return prev;\n const next = { ...prev };\n delete next[toastId];\n return next;\n });\n }, []);\n const dismissCooldownRef = React.useRef(false);\n const dismissCooldownTimerRef = React.useRef(\n null\n );\n const triggerDismissCooldown = React.useCallback(() => {\n dismissCooldownRef.current = true;\n if (dismissCooldownTimerRef.current) {\n clearTimeout(dismissCooldownTimerRef.current);\n }\n dismissCooldownTimerRef.current = setTimeout(() => {\n dismissCooldownRef.current = false;\n }, 800);\n }, []);\n const isInDismissCooldown = React.useCallback(() => dismissCooldownRef.current, []);\n const burntOptionsRef = React.useRef(burntOptions);\n const notificationOptionsRef = React.useRef(notificationOptions);\n React.useEffect(() => {\n burntOptionsRef.current = burntOptions;\n }, [burntOptions]);\n React.useEffect(() => {\n notificationOptionsRef.current = notificationOptions;\n }, [notificationOptions]);\n React.useEffect(() => {\n return ToastState.subscribe((toast) => {\n if (toast.dismiss) {\n setToasts(\n (toasts2) => toasts2.map((t) => t.id === toast.id ? { ...t, delete: true } : t)\n );\n return;\n }\n if (toast.toasterId !== toasterId) {\n return;\n }\n if (native) {\n const handled = dispatchNativeToast(toast, {\n duration,\n burntOptions: burntOptionsRef.current,\n notificationOptions: notificationOptionsRef.current\n });\n if (handled) return;\n }\n setToasts((toasts2) => {\n const idx = toasts2.findIndex((t) => t.id === toast.id);\n if (idx !== -1) {\n return [\n ...toasts2.slice(0, idx),\n // a re-created toast is shown again: drop the delete flag a\n // previous dismiss left on it, or it would never render again.\n { ...toasts2[idx], ...toast, delete: false },\n ...toasts2.slice(idx + 1)\n ];\n }\n return [toast, ...toasts2];\n });\n });\n }, [native, duration, toasterId]);\n const prevToastCountRef = React.useRef(toasts.length);\n React.useEffect(() => {\n const prevCount = prevToastCountRef.current;\n prevToastCountRef.current = toasts.length;\n if (toasts.length <= 1 && !dismissCooldownRef.current) {\n setExpanded(false);\n } else if (toasts.length > prevCount && expanded) {\n setExpanded(false);\n }\n }, [toasts.length, expanded]);\n const removeToast = React.useCallback((toastToRemove) => {\n setToasts((toasts2) => {\n if (!toasts2.find((t) => t.id === toastToRemove.id)?.delete) {\n ToastState.dismiss(toastToRemove.id);\n }\n return toasts2.filter(({ id }) => id !== toastToRemove.id);\n });\n }, []);\n const swipeDirection = resolveSwipeDirection(swipeDirectionProp, position);\n const contextValue = {\n toasts,\n heights,\n setToastHeight,\n removeToastHeight,\n expanded,\n setExpanded,\n interacting,\n setInteracting,\n triggerDismissCooldown,\n isInDismissCooldown,\n removeToast,\n position,\n duration,\n gap,\n visibleToasts,\n swipeDirection,\n swipeThreshold,\n toastHeight,\n closeButton,\n reducedMotion,\n native,\n burntOptions,\n notificationOptions,\n icons\n };\n return /* @__PURE__ */ jsx(ToastContext.Provider, { ...contextValue, children });\n }\n);\nconst ToastViewportFrame = styled(View, {\n displayName: \"ToastViewport\",\n position: isWeb ? \"fixed\" : \"absolute\",\n zIndex: 1e5,\n pointerEvents: \"box-none\",\n maxWidth: \"100%\",\n ...isWeb && { width: 356 },\n minHeight: 1\n});\nconst ToastViewport = createStyledHOC(\n ToastViewportFrame,\n function ToastViewport2(props, ref) {\n const {\n offset = VIEWPORT_OFFSET,\n hotkey = DEFAULT_HOTKEY,\n label = \"Notifications\",\n portalToRoot = true,\n portalZIndex = Number.MAX_SAFE_INTEGER,\n children,\n ...rest\n } = props;\n const ctx = useToastContext(\"Toast.Viewport\");\n const listRef = React.useRef(null);\n const hoverTimeoutRef = React.useRef(null);\n const hoverCooldownRef = React.useRef(false);\n const deferredCollapseRef = React.useRef(null);\n const mouseInsideRef = React.useRef(false);\n const [yPosition, xPosition] = ctx.position.split(\"-\");\n const defaultOffset = typeof offset === \"number\" ? offset : VIEWPORT_OFFSET;\n const offsetObj = typeof offset === \"object\" ? offset : {\n top: defaultOffset,\n right: defaultOffset,\n bottom: defaultOffset,\n left: defaultOffset\n };\n const edgeProps = yPosition === \"top\" ? { top: \"safe\", marginTop: offsetObj.top ?? defaultOffset } : { bottom: \"safe\", marginBottom: offsetObj.bottom ?? defaultOffset };\n const sideProps = isWeb ? xPosition === \"left\" ? { left: \"safe\", marginLeft: offsetObj.left ?? defaultOffset } : xPosition === \"right\" ? { right: \"safe\", marginRight: offsetObj.right ?? defaultOffset } : null : (\n // native: always set both left + right so viewport fills screen\n // (no fixed width on native — left/right offsets define the width)\n {\n left: \"safe\",\n marginLeft: offsetObj.left ?? defaultOffset,\n right: \"safe\",\n marginRight: offsetObj.right ?? defaultOffset\n }\n );\n const centerStyle = isWeb && xPosition === \"center\" ? { left: \"50%\", transform: \"translateX(-50%)\" } : null;\n React.useEffect(() => {\n if (!isWeb) return;\n const handleKeyDown = (event) => {\n const isHotkeyPressed = hotkey.length > 0 && hotkey.every((key) => event[key] || event.code === key);\n if (isHotkeyPressed) {\n ctx.setExpanded(true);\n listRef.current?.focus();\n }\n };\n document.addEventListener(\"keydown\", handleKeyDown);\n return () => document.removeEventListener(\"keydown\", handleKeyDown);\n }, [hotkey]);\n if (ctx.toasts.length === 0) return null;\n const hotkeyLabel = hotkey.join(\"+\").replace(/Key/g, \"\").replace(/Digit/g, \"\");\n const content = /* @__PURE__ */ jsx(\n ToastViewportFrame,\n {\n ref: listRef,\n \"aria-label\": `${label} ${hotkeyLabel}`,\n tabIndex: -1,\n \"aria-live\": \"polite\",\n ...edgeProps,\n ...sideProps,\n ...centerStyle ? { style: centerStyle } : null,\n \"data-y-position\": yPosition,\n \"data-x-position\": xPosition,\n ...isWeb ? {\n onMouseEnter: () => {\n mouseInsideRef.current = true;\n if (deferredCollapseRef.current) {\n clearTimeout(deferredCollapseRef.current);\n deferredCollapseRef.current = null;\n }\n if (ctx.toasts.length > 1 && !ctx.interacting && !hoverCooldownRef.current) {\n hoverTimeoutRef.current = setTimeout(() => ctx.setExpanded(true), 50);\n }\n },\n onMouseLeave: () => {\n mouseInsideRef.current = false;\n if (hoverTimeoutRef.current) {\n clearTimeout(hoverTimeoutRef.current);\n hoverTimeoutRef.current = null;\n }\n if (!ctx.interacting && !ctx.isInDismissCooldown()) {\n ctx.setExpanded(false);\n } else if (ctx.isInDismissCooldown()) {\n if (deferredCollapseRef.current) {\n clearTimeout(deferredCollapseRef.current);\n }\n deferredCollapseRef.current = setTimeout(() => {\n deferredCollapseRef.current = null;\n if (!mouseInsideRef.current) {\n ctx.setExpanded(false);\n }\n }, 1200);\n }\n },\n onPointerDown: () => {\n if (hoverTimeoutRef.current) {\n clearTimeout(hoverTimeoutRef.current);\n hoverTimeoutRef.current = null;\n }\n ctx.setInteracting(true);\n },\n onPointerUp: () => ctx.setInteracting(false),\n onPointerCancel: () => ctx.setInteracting(false)\n } : {\n onPress: () => {\n if (ctx.toasts.length > 1) {\n ctx.setExpanded((prev) => !prev);\n }\n }\n },\n ...isWeb && {\n onFocus: (event) => {\n if (!event.currentTarget.contains(\n event.relatedTarget\n )) {\n if (ctx.toasts.length > 1) {\n ctx.setExpanded(true);\n }\n ctx.setInteracting(true);\n }\n },\n onBlur: (event) => {\n if (!event.currentTarget.contains(\n event.relatedTarget\n )) {\n ctx.setInteracting(false);\n if (!ctx.isInDismissCooldown()) {\n ctx.setExpanded(false);\n }\n }\n }\n },\n ...rest,\n children\n }\n );\n if (portalToRoot) {\n return /* @__PURE__ */ jsx(Portal, { zIndex: portalZIndex, children: /* @__PURE__ */ jsx(ToastContext.Provider, { ...ctx, children: content }) });\n }\n return content;\n }\n);\nfunction ToastList({ renderItem }) {\n const ctx = useToastContext(\"Toast.List\");\n const maxRender = ctx.toasts.length;\n return /* @__PURE__ */ jsx(AnimatePresence, { children: ctx.toasts.slice(0, maxRender).map((toast, index) => {\n const handleClose = () => {\n if (toast.dismissible === false) return;\n toast.onDismiss?.(toast);\n ctx.removeToast(toast);\n };\n const itemContextValue = {\n toast,\n handleClose\n };\n if (!renderItem) {\n return /* @__PURE__ */ jsx(ToastItemContext.Provider, { value: itemContextValue, children: /* @__PURE__ */ jsx(ToastItemInner, { toast, index, children: /* @__PURE__ */ jsx(DefaultToastContent, { toast }) }) }, toast.id);\n }\n return /* @__PURE__ */ jsx(ToastItemContext.Provider, { value: itemContextValue, children: renderItem({ toast, index, handleClose }) }, toast.id);\n }) });\n}\nfunction DefaultToastContent({ toast }) {\n const ctx = useToastContext(\"Toast.Item\");\n const { handleClose } = useToastItemContext();\n const toastType = toast.type ?? \"default\";\n const dismissible = toast.dismissible !== false;\n const title = typeof toast.title === \"function\" ? toast.title() : toast.title;\n const description = typeof toast.description === \"function\" ? toast.description() : toast.description;\n return /* @__PURE__ */ jsxs(XStack, { alignItems: \"flex-start\", gap: \"3\", children: [\n /* @__PURE__ */ jsx(ToastIcon, {}),\n /* @__PURE__ */ jsxs(YStack, { flex: 1, gap: \"1\", children: [\n title && /* @__PURE__ */ jsx(ToastTitle, { children: title }),\n description && /* @__PURE__ */ jsx(ToastDescription, { children: description }),\n (toast.action || toast.cancel) && /* @__PURE__ */ jsxs(XStack, { gap: \"2\", marginTop: \"2\", children: [\n toast.cancel && /* @__PURE__ */ jsx(\n ToastActionFrame,\n {\n onPress: (e) => {\n toast.cancel?.onClick?.(e);\n handleClose();\n },\n children: /* @__PURE__ */ jsx(SizableText, { size: \"2\", children: toast.cancel.label })\n }\n ),\n toast.action && /* @__PURE__ */ jsx(\n ToastActionFrame,\n {\n onPress: (e) => {\n toast.action?.onClick?.(e);\n if (!e.defaultPrevented) {\n handleClose();\n }\n },\n children: /* @__PURE__ */ jsx(SizableText, { size: \"2\", children: toast.action.label })\n }\n )\n ] })\n ] }),\n ctx.closeButton && dismissible && /* @__PURE__ */ jsx(ToastClose, {})\n ] });\n}\nfunction DragWrapper({\n animatedStyle,\n gestureHandlers,\n gesture,\n AnimatedView,\n dragRef,\n children\n}) {\n if (isWeb) {\n return /* @__PURE__ */ jsx(\n \"div\",\n {\n ref: dragRef,\n style: {\n flex: 1,\n display: \"flex\",\n flexDirection: \"column\",\n userSelect: \"none\",\n WebkitUserSelect: \"none\",\n touchAction: \"none\",\n cursor: \"default\"\n },\n ...gestureHandlers,\n children\n }\n );\n }\n if (gesture) {\n const gh = getGestureHandler();\n const GestureDetector = gh.state.GestureDetector;\n if (GestureDetector) {\n return /* @__PURE__ */ jsx(GestureDetector, { gesture, children: /* @__PURE__ */ jsx(View, { style: { flex: 1 }, ...{ collapsable: false }, children: /* @__PURE__ */ jsx(AnimatedView, { style: [{ flex: 1 }, animatedStyle], children }) }) });\n }\n }\n return /* @__PURE__ */ jsx(AnimatedView, { style: [{ flex: 1 }, animatedStyle], ...gestureHandlers, children });\n}\nconst ToastItemInner = createStyledHOC(\n ToastItemFrame,\n function ToastItem(props, ref) {\n const { toast, index, children, ...rest } = props;\n const ctx = useToastContext(\"Toast.Item\");\n const [mounted, setMounted] = React.useState(false);\n const [removed, setRemoved] = React.useState(false);\n const [swipeOut, setSwipeOut] = React.useState(false);\n const [offsetBeforeRemove, setOffsetBeforeRemove] = React.useState(0);\n const swipeExitYRef = React.useRef(null);\n const closeTimerRef = React.useRef(null);\n const closeTimerStartRef = React.useRef(0);\n const lastPauseTimeRef = React.useRef(0);\n const remainingTimeRef = React.useRef(toast.duration ?? ctx.duration);\n const isFront = index === 0;\n const isVisible = index < ctx.visibleToasts;\n const toastType = toast.type ?? \"default\";\n const dismissible = toast.dismissible !== false;\n const duration = toast.duration ?? ctx.duration;\n const [yPosition] = ctx.position.split(\"-\");\n const isTop = yPosition === \"top\";\n const expandedOffset = isWeb ? (() => {\n let totalHeight = 0;\n let activeCount = 0;\n for (let i = 0; i < index; i++) {\n const toastId = ctx.toasts[i]?.id;\n if (toastId == null) continue;\n const h = ctx.heights[toastId];\n if (h === 0) continue;\n totalHeight += h ?? ctx.toastHeight;\n activeCount++;\n }\n return totalHeight + activeCount * ctx.gap;\n })() : index * (ctx.toastHeight + ctx.gap);\n const expandedOffsetRef = React.useRef(expandedOffset);\n expandedOffsetRef.current = expandedOffset;\n const isExpandedRef = React.useRef(ctx.expanded);\n isExpandedRef.current = ctx.expanded;\n const startTimer = React.useCallback(() => {\n if (duration === Number.POSITIVE_INFINITY || toastType === \"loading\") return;\n closeTimerStartRef.current = Date.now();\n closeTimerRef.current = setTimeout(() => {\n toast.onAutoClose?.(toast);\n setRemoved(true);\n setTimeout(() => ctx.removeToast(toast), TIME_BEFORE_UNMOUNT);\n }, remainingTimeRef.current);\n }, [duration, toastType, toast, ctx.removeToast]);\n const pauseTimer = useEvent(() => {\n if (closeTimerRef.current) {\n clearTimeout(closeTimerRef.current);\n }\n if (lastPauseTimeRef.current < closeTimerStartRef.current) {\n const elapsed = Date.now() - closeTimerStartRef.current;\n remainingTimeRef.current = Math.max(0, remainingTimeRef.current - elapsed);\n }\n lastPauseTimeRef.current = Date.now();\n });\n const resumeTimer = useEvent(() => {\n if (ctx.expanded || ctx.interacting) return;\n remainingTimeRef.current = duration;\n startTimer();\n });\n React.useEffect(() => {\n setMounted(true);\n }, []);\n React.useEffect(() => {\n if (!toast.delete) {\n setRemoved(false);\n return;\n }\n setRemoved(true);\n if (isExpandedRef.current) {\n setOffsetBeforeRemove(expandedOffsetRef.current);\n }\n const timer = setTimeout(() => ctx.removeToast(toast), TIME_BEFORE_UNMOUNT);\n return () => clearTimeout(timer);\n }, [toast.delete, toast, ctx.removeToast]);\n React.useEffect(() => {\n if (ctx.expanded || ctx.interacting) {\n pauseTimer();\n } else {\n startTimer();\n }\n return () => {\n if (closeTimerRef.current) clearTimeout(closeTimerRef.current);\n };\n }, [ctx.expanded, ctx.interacting, startTimer]);\n React.useEffect(() => {\n remainingTimeRef.current = duration;\n }, [duration]);\n const {\n setDragOffset,\n springBack,\n animateOut,\n animatedStyle,\n AnimatedView,\n dragRef\n } = useToastAnimations({\n reducedMotion: ctx.reducedMotion\n });\n const { isDragging, gestureHandlers, gesture } = useAnimatedDragGesture({\n direction: ctx.swipeDirection,\n threshold: ctx.swipeThreshold,\n disabled: !dismissible || toastType === \"loading\",\n expanded: ctx.expanded,\n onDragStart: pauseTimer,\n onDragMove: setDragOffset,\n onDismiss: (exitDirection, velocity) => {\n ctx.triggerDismissCooldown();\n setSwipeOut(true);\n toast.onDismiss?.(toast);\n swipeExitYRef.current = isExpandedRef.current ? isTop ? expandedOffsetRef.current : -expandedOffsetRef.current : isFront ? 0 : isTop ? ctx.gap * index : -ctx.gap * index;\n setRemoved(true);\n ctx.removeToast(toast);\n animateOut(exitDirection, velocity);\n },\n onCancel: () => {\n springBack(() => {\n resumeTimer();\n });\n }\n });\n const handleLayout = React.useCallback(\n (event) => {\n if (removed) return;\n if ((!isWeb || !ctx.expanded) && index !== 0) return;\n const { height } = event.nativeEvent.layout;\n ctx.setToastHeight(toast.id, height);\n },\n [toast.id, ctx.setToastHeight, index, ctx.expanded, removed]\n );\n React.useEffect(() => {\n return () => {\n ctx.removeToastHeight(toast.id);\n };\n }, [toast.id, ctx.removeToastHeight]);\n const handleClose = React.useCallback(() => {\n if (!dismissible) return;\n ctx.triggerDismissCooldown();\n toast.onDismiss?.(toast);\n setRemoved(true);\n if (isExpandedRef.current) {\n setOffsetBeforeRemove(expandedOffsetRef.current);\n }\n setTimeout(() => ctx.removeToast(toast), TIME_BEFORE_UNMOUNT);\n }, [dismissible, toast, ctx.removeToast, ctx.triggerDismissCooldown]);\n const itemContextValue = React.useMemo(\n () => ({ toast, handleClose }),\n [toast, handleClose]\n );\n let frontToastHeight = -1;\n for (const t of ctx.toasts) {\n const h = ctx.heights[t.id];\n if (h != null && h > 0) {\n frontToastHeight = h;\n break;\n }\n }\n const stackScale = !ctx.expanded && !isFront ? 1 - index * 0.05 : 1;\n const activeExpandedOffset = removed ? offsetBeforeRemove : expandedOffset;\n const stackY = ctx.expanded ? isTop ? activeExpandedOffset : -activeExpandedOffset : isFront ? 0 : isTop ? ctx.gap * index : -ctx.gap * index;\n const computedOpacity = removed && !swipeOut ? 0 : index >= ctx.visibleToasts ? 0 : 1;\n const computedZIndex = removed ? 0 : ctx.visibleToasts - index + 1;\n const collapsedHeight = !isFront && frontToastHeight > 0 ? frontToastHeight : void 0;\n const computedHeight = ctx.expanded ? isWeb ? ctx.heights[toast.id] || void 0 : void 0 : collapsedHeight;\n const computedPointerEvents = index >= ctx.visibleToasts ? \"none\" : \"auto\";\n const gapFillerHeight = ctx.expanded ? ctx.gap + 1 : 0;\n const dataAttributes = {\n \"data-mounted\": mounted ? \"true\" : \"false\",\n \"data-removed\": removed ? \"true\" : \"false\",\n \"data-swipe-out\": swipeOut ? \"true\" : \"false\",\n \"data-visible\": isVisible ? \"true\" : \"false\",\n \"data-front\": isFront ? \"true\" : \"false\",\n \"data-index\": String(index),\n \"data-type\": toastType,\n \"data-expanded\": ctx.expanded ? \"true\" : \"false\"\n };\n return /* @__PURE__ */ jsx(\n ToastPositionWrapper,\n {\n ref,\n testID: rest.testID,\n ...dataAttributes,\n transition: isDragging || ctx.reducedMotion ? void 0 : {\n duration: removed ? 200 : 400,\n // height only collapses the stack on web; native relayouts\n properties: isWeb ? \"transform, opacity, height\" : \"transform, opacity\"\n },\n y: ctx.reducedMotion ? stackY : (\n // every value needs an explicit `px` — a bare number inside a\n // transition string is a string, so `-14` would resolve as the\n // space token `-14` (= -56px) instead of -14 pixels\n `${stackY}px enter:${isTop ? -80 : 80}px exit:${swipeOut ? swipeExitYRef.current ?? stackY : stackY}px`\n ),\n scale: stackScale,\n opacity: `${computedOpacity} enter:0 exit:0`,\n zIndex: computedZIndex,\n height: computedHeight,\n overflow: \"visible\",\n pointerEvents: computedPointerEvents,\n top: isTop ? 0 : void 0,\n bottom: isTop ? void 0 : 0,\n ...!isFront && {\n style: { transformOrigin: isTop ? \"top center\" : \"bottom center\" }\n },\n children: /* @__PURE__ */ jsx(\n DragWrapper,\n {\n animatedStyle,\n gestureHandlers,\n gesture,\n AnimatedView,\n dragRef,\n children: /* @__PURE__ */ jsxs(\n ToastItemFrame,\n {\n role: \"status\",\n \"aria-live\": \"polite\",\n \"aria-atomic\": true,\n tabIndex: 0,\n onLayout: handleLayout,\n ...isWeb && {\n onKeyDown: (event) => {\n if (event.key === \"Escape\" && dismissible) {\n const current = event.currentTarget;\n const container = current.closest(\"[aria-label]\");\n if (container) {\n const focusables = container.querySelectorAll('[tabindex=\"0\"]');\n const arr = Array.from(focusables);\n const idx = arr.indexOf(current);\n const next = arr[idx + 1] || arr[idx - 1];\n next?.focus();\n }\n handleClose();\n }\n }\n },\n ...!isWeb && computedHeight != null && { flex: 1 },\n ...rest,\n children: [\n ctx.expanded && gapFillerHeight > 0 && /* @__PURE__ */ jsx(\n View,\n {\n position: \"absolute\",\n left: 0,\n right: 0,\n height: gapFillerHeight,\n pointerEvents: \"auto\",\n ...isTop ? { top: \"100%\" } : { bottom: \"100%\" }\n }\n ),\n /* @__PURE__ */ jsx(ToastItemContext.Provider, { value: itemContextValue, children })\n ]\n }\n )\n }\n )\n }\n );\n }\n);\nconst ToastTitle = styled(SizableText, {\n displayName: \"ToastTitle\"\n});\nconst ToastDescription = styled(SizableText, {\n displayName: \"ToastDescription\"\n});\nconst ToastClose = createStyledHOC(ToastCloseFrame, function ToastClose2(props, ref) {\n let handleClose;\n try {\n const itemCtx = useToastItemContext();\n handleClose = itemCtx.handleClose;\n } catch {\n }\n const ctx = useToastContext(\"Toast.Close\");\n return /* @__PURE__ */ jsx(ToastCloseFrame, { ref, \"aria-label\": \"Close toast\", onPress: handleClose, ...props, children: props.children ?? ctx.icons?.close ?? /* @__PURE__ */ jsx(DefaultCloseIcon, {}) });\n});\nconst ToastAction = createStyledHOC(ToastActionFrame, function ToastAction2(props, ref) {\n return /* @__PURE__ */ jsx(ToastActionFrame, { ref, ...props });\n});\nfunction ToastIcon(props) {\n const ctx = useToastContext(\"Toast.Icon\");\n let toast;\n try {\n const itemCtx = useToastItemContext();\n toast = itemCtx.toast;\n } catch {\n return null;\n }\n if (!toast) return null;\n if (toast.icon !== void 0) {\n return /* @__PURE__ */ jsx(View, { flexShrink: 0, marginTop: \"0-5\", children: toast.icon });\n }\n const toastType = toast.type ?? \"default\";\n const icon = ctx.icons?.[toastType] ?? null;\n if (!icon) return null;\n return /* @__PURE__ */ jsx(View, { flexShrink: 0, marginTop: \"0-5\", children: icon });\n}\nfunction useToasts() {\n const ctx = useToastContext(\"useToasts\");\n return {\n toasts: ctx.toasts,\n expanded: ctx.expanded,\n position: ctx.position,\n closeButton: ctx.closeButton\n };\n}\nfunction useToastItem() {\n return useToastItemContext();\n}\nToastRoot.displayName = \"Toast\";\nconst Toast = withStaticProperties(ToastRoot, {\n Viewport: ToastViewport,\n List: ToastList,\n Item: ToastItemInner,\n Title: ToastTitle,\n Description: ToastDescription,\n Close: ToastClose,\n Action: ToastAction,\n Icon: ToastIcon\n});\nexport {\n Toast,\n useToastItem,\n useToasts\n};\n//# sourceMappingURL=ToastComposable.js.map\n"],"mappings":"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"}
@@ -1,5 +1,5 @@
1
1
  import { jsx, jsxs } from "react/jsx-runtime";
2
- import { Theme, View, createRefComponent, createStyledContext, createStyledHOC, styled, useConfiguration, useEvent, useThemeName } from "@tamagui/core";
2
+ import { View, createRefComponent, createStyledContext, createStyledHOC, styled, useEvent } from "@tamagui/core";
3
3
  import { AnimatePresence } from "@tamagui/animate-presence";
4
4
  import { isWeb } from "@tamagui/constants";
5
5
  import { getGestureHandler } from "@tamagui/native";
@@ -15,10 +15,6 @@ import { useToastAnimations } from "./useToastAnimations.native.js";
15
15
  import { useReducedMotion } from "./useReducedMotion.native.js";
16
16
  import { DefaultCloseIcon, ToastActionFrame, ToastCloseFrame, ToastItemFrame, ToastPositionWrapper } from "./ToastItemFrame.native.js";
17
17
 
18
- function _type_of(obj) {
19
- "@swc/helpers - typeof";
20
- return obj && typeof Symbol !== "undefined" && obj.constructor === Symbol ? "symbol" : typeof obj;
21
- }
22
18
  var VISIBLE_TOASTS_AMOUNT = 4;
23
19
  var VIEWPORT_OFFSET = 16;
24
20
  var TOAST_GAP = 14;
@@ -57,7 +53,7 @@ function resolveSwipeDirection(direction, position) {
57
53
  return "horizontal";
58
54
  }
59
55
  var ToastRoot = createRefComponent(function ToastRoot2(props, _ref) {
60
- var { children, toasterId, position = "bottom-right", duration = TOAST_LIFETIME, gap = TOAST_GAP, visibleToasts = VISIBLE_TOASTS_AMOUNT, swipeDirection: swipeDirectionProp = "auto", swipeThreshold = 50, toastHeight = FIXED_TOAST_HEIGHT, closeButton = false, expand = false, theme: themeProp, reducedMotion: reducedMotionProp, native = false, burntOptions, notificationOptions, icons } = props;
56
+ var { children, toasterId, position = "bottom-right", duration = TOAST_LIFETIME, gap = TOAST_GAP, visibleToasts = VISIBLE_TOASTS_AMOUNT, swipeDirection: swipeDirectionProp = "auto", swipeThreshold = 50, toastHeight = FIXED_TOAST_HEIGHT, closeButton = false, expand = false, reducedMotion: reducedMotionProp, native = false, burntOptions, notificationOptions, icons } = props;
61
57
  var reducedMotion = useReducedMotion(reducedMotionProp);
62
58
  var [toasts, setToasts] = React.useState([]);
63
59
  var [heights, setHeights] = React.useState({});
@@ -153,7 +149,8 @@ var ToastRoot = createRefComponent(function ToastRoot2(props, _ref) {
153
149
  ...toasts2.slice(0, idx),
154
150
  {
155
151
  ...toasts2[idx],
156
- ...toast
152
+ ...toast,
153
+ delete: false
157
154
  },
158
155
  ...toasts2.slice(idx + 1)
159
156
  ];
@@ -191,8 +188,6 @@ var ToastRoot = createRefComponent(function ToastRoot2(props, _ref) {
191
188
  });
192
189
  }, []);
193
190
  var swipeDirection = resolveSwipeDirection(swipeDirectionProp, position);
194
- var currentTheme = useThemeName();
195
- var resolvedTheme = themeProp === "system" || !themeProp ? (currentTheme === null || currentTheme === void 0 ? void 0 : currentTheme.includes("dark")) ? "dark" : "light" : themeProp;
196
191
  var contextValue = {
197
192
  toasts,
198
193
  heights,
@@ -221,10 +216,7 @@ var ToastRoot = createRefComponent(function ToastRoot2(props, _ref) {
221
216
  };
222
217
  return /* @__PURE__ */ jsx(ToastContext.Provider, {
223
218
  ...contextValue,
224
- children: /* @__PURE__ */ jsx(Theme, {
225
- name: resolvedTheme,
226
- children
227
- })
219
+ children
228
220
  });
229
221
  });
230
222
  var ToastViewportFrame = styled(View, {
@@ -245,46 +237,38 @@ var ToastViewport = createStyledHOC(ToastViewportFrame, function ToastViewport2(
245
237
  var deferredCollapseRef = React.useRef(null);
246
238
  var mouseInsideRef = React.useRef(false);
247
239
  var [yPosition, xPosition] = ctx.position.split("-");
248
- var { insets: safeInsets } = useConfiguration();
249
- var offsetStyles = React.useMemo(function() {
250
- var styles = {};
251
- var defaultOffset = typeof offset === "number" ? offset : VIEWPORT_OFFSET;
252
- var offsetObj = (typeof offset === "undefined" ? "undefined" : _type_of(offset)) === "object" ? offset : {
253
- top: defaultOffset,
254
- right: defaultOffset,
255
- bottom: defaultOffset,
256
- left: defaultOffset
257
- };
258
- var _safeInsets_top;
259
- var safeTop = (_safeInsets_top = safeInsets === null || safeInsets === void 0 ? void 0 : safeInsets.top) !== null && _safeInsets_top !== void 0 ? _safeInsets_top : 0;
260
- var _safeInsets_bottom;
261
- var safeBottom = (_safeInsets_bottom = safeInsets === null || safeInsets === void 0 ? void 0 : safeInsets.bottom) !== null && _safeInsets_bottom !== void 0 ? _safeInsets_bottom : 0;
262
- var _offsetObj_top;
263
- var topOffset = safeTop > 0 ? safeTop : (_offsetObj_top = offsetObj.top) !== null && _offsetObj_top !== void 0 ? _offsetObj_top : defaultOffset;
264
- var _offsetObj_bottom;
265
- var bottomOffset = safeBottom > 0 ? safeBottom : (_offsetObj_bottom = offsetObj.bottom) !== null && _offsetObj_bottom !== void 0 ? _offsetObj_bottom : defaultOffset;
266
- if (yPosition === "top") styles.top = topOffset;
267
- else styles.bottom = bottomOffset;
268
- if (isWeb) {
269
- var _offsetObj_left, _offsetObj_right;
270
- if (xPosition === "left") styles.left = (_offsetObj_left = offsetObj.left) !== null && _offsetObj_left !== void 0 ? _offsetObj_left : defaultOffset;
271
- else if (xPosition === "right") styles.right = (_offsetObj_right = offsetObj.right) !== null && _offsetObj_right !== void 0 ? _offsetObj_right : defaultOffset;
272
- else {
273
- styles.left = "50%";
274
- styles.transform = "translateX(-50%)";
275
- }
276
- } else {
277
- var _offsetObj_left1;
278
- styles.left = (_offsetObj_left1 = offsetObj.left) !== null && _offsetObj_left1 !== void 0 ? _offsetObj_left1 : defaultOffset;
279
- var _offsetObj_right1;
280
- styles.right = (_offsetObj_right1 = offsetObj.right) !== null && _offsetObj_right1 !== void 0 ? _offsetObj_right1 : defaultOffset;
281
- }
282
- return styles;
283
- }, [
284
- offset,
285
- yPosition,
286
- xPosition
287
- ]);
240
+ var defaultOffset = typeof offset === "number" ? offset : VIEWPORT_OFFSET;
241
+ var offsetObj = typeof offset === "object" ? offset : {
242
+ top: defaultOffset,
243
+ right: defaultOffset,
244
+ bottom: defaultOffset,
245
+ left: defaultOffset
246
+ };
247
+ var _offsetObj_top, _offsetObj_bottom;
248
+ var edgeProps = yPosition === "top" ? {
249
+ top: "safe",
250
+ marginTop: (_offsetObj_top = offsetObj.top) !== null && _offsetObj_top !== void 0 ? _offsetObj_top : defaultOffset
251
+ } : {
252
+ bottom: "safe",
253
+ marginBottom: (_offsetObj_bottom = offsetObj.bottom) !== null && _offsetObj_bottom !== void 0 ? _offsetObj_bottom : defaultOffset
254
+ };
255
+ var _offsetObj_left, _offsetObj_right, _offsetObj_left1, _offsetObj_right1;
256
+ var sideProps = isWeb ? xPosition === "left" ? {
257
+ left: "safe",
258
+ marginLeft: (_offsetObj_left = offsetObj.left) !== null && _offsetObj_left !== void 0 ? _offsetObj_left : defaultOffset
259
+ } : xPosition === "right" ? {
260
+ right: "safe",
261
+ marginRight: (_offsetObj_right = offsetObj.right) !== null && _offsetObj_right !== void 0 ? _offsetObj_right : defaultOffset
262
+ } : null : {
263
+ left: "safe",
264
+ marginLeft: (_offsetObj_left1 = offsetObj.left) !== null && _offsetObj_left1 !== void 0 ? _offsetObj_left1 : defaultOffset,
265
+ right: "safe",
266
+ marginRight: (_offsetObj_right1 = offsetObj.right) !== null && _offsetObj_right1 !== void 0 ? _offsetObj_right1 : defaultOffset
267
+ };
268
+ var centerStyle = isWeb && xPosition === "center" ? {
269
+ left: "50%",
270
+ transform: "translateX(-50%)"
271
+ } : null;
288
272
  React.useEffect(function() {
289
273
  if (!isWeb) return;
290
274
  var handleKeyDown = function(event) {
@@ -309,7 +293,9 @@ var ToastViewport = createStyledHOC(ToastViewportFrame, function ToastViewport2(
309
293
  "aria-label": `${label} ${hotkeyLabel}`,
310
294
  tabIndex: -1,
311
295
  "aria-live": "polite",
312
- style: offsetStyles,
296
+ ...edgeProps,
297
+ ...sideProps,
298
+ ...centerStyle ? { style: centerStyle } : null,
313
299
  "data-y-position": yPosition,
314
300
  "data-x-position": xPosition,
315
301
  ...isWeb ? {
@@ -602,15 +588,20 @@ var ToastItemInner = createStyledHOC(ToastItemFrame, function ToastItem(props, r
602
588
  setMounted(true);
603
589
  }, []);
604
590
  React.useEffect(function() {
605
- if (toast.delete) {
606
- setRemoved(true);
607
- if (isExpandedRef.current) {
608
- setOffsetBeforeRemove(expandedOffsetRef.current);
609
- }
610
- setTimeout(function() {
611
- return ctx.removeToast(toast);
612
- }, TIME_BEFORE_UNMOUNT);
591
+ if (!toast.delete) {
592
+ setRemoved(false);
593
+ return;
594
+ }
595
+ setRemoved(true);
596
+ if (isExpandedRef.current) {
597
+ setOffsetBeforeRemove(expandedOffsetRef.current);
613
598
  }
599
+ var timer = setTimeout(function() {
600
+ return ctx.removeToast(toast);
601
+ }, TIME_BEFORE_UNMOUNT);
602
+ return function() {
603
+ return clearTimeout(timer);
604
+ };
614
605
  }, [
615
606
  toast.delete,
616
607
  toast,
@@ -658,9 +649,8 @@ var ToastItemInner = createStyledHOC(ToastItemFrame, function ToastItem(props, r
658
649
  }
659
650
  });
660
651
  var handleLayout = React.useCallback(function(event) {
661
- if (!isWeb) return;
662
652
  if (removed) return;
663
- if (!ctx.expanded && index !== 0) return;
653
+ if ((!isWeb || !ctx.expanded) && index !== 0) return;
664
654
  var { height } = event.nativeEvent.layout;
665
655
  ctx.setToastHeight(toast.id, height);
666
656
  }, [
@@ -671,7 +661,6 @@ var ToastItemInner = createStyledHOC(ToastItemFrame, function ToastItem(props, r
671
661
  removed
672
662
  ]);
673
663
  React.useEffect(function() {
674
- if (!isWeb) return;
675
664
  return function() {
676
665
  ctx.removeToastHeight(toast.id);
677
666
  };
@@ -701,29 +690,27 @@ var ToastItemInner = createStyledHOC(ToastItemFrame, function ToastItem(props, r
701
690
  };
702
691
  }, [toast, handleClose]);
703
692
  var frontToastHeight = -1;
704
- if (isWeb) {
705
- var _iteratorNormalCompletion = true, _didIteratorError = false, _iteratorError = void 0;
693
+ var _iteratorNormalCompletion = true, _didIteratorError = false, _iteratorError = void 0;
694
+ try {
695
+ for (var _iterator = ctx.toasts[Symbol.iterator](), _step; !(_iteratorNormalCompletion = (_step = _iterator.next()).done); _iteratorNormalCompletion = true) {
696
+ var t = _step.value;
697
+ var h = ctx.heights[t.id];
698
+ if (h != null && h > 0) {
699
+ frontToastHeight = h;
700
+ break;
701
+ }
702
+ }
703
+ } catch (err) {
704
+ _didIteratorError = true;
705
+ _iteratorError = err;
706
+ } finally {
706
707
  try {
707
- for (var _iterator = ctx.toasts[Symbol.iterator](), _step; !(_iteratorNormalCompletion = (_step = _iterator.next()).done); _iteratorNormalCompletion = true) {
708
- var t = _step.value;
709
- var h = ctx.heights[t.id];
710
- if (h != null && h > 0) {
711
- frontToastHeight = h;
712
- break;
713
- }
708
+ if (!_iteratorNormalCompletion && _iterator.return != null) {
709
+ _iterator.return();
714
710
  }
715
- } catch (err) {
716
- _didIteratorError = true;
717
- _iteratorError = err;
718
711
  } finally {
719
- try {
720
- if (!_iteratorNormalCompletion && _iterator.return != null) {
721
- _iterator.return();
722
- }
723
- } finally {
724
- if (_didIteratorError) {
725
- throw _iteratorError;
726
- }
712
+ if (_didIteratorError) {
713
+ throw _iteratorError;
727
714
  }
728
715
  }
729
716
  }
@@ -732,7 +719,8 @@ var ToastItemInner = createStyledHOC(ToastItemFrame, function ToastItem(props, r
732
719
  var stackY = ctx.expanded ? isTop ? activeExpandedOffset : -activeExpandedOffset : isFront ? 0 : isTop ? ctx.gap * index : -ctx.gap * index;
733
720
  var computedOpacity = removed && !swipeOut ? 0 : index >= ctx.visibleToasts ? 0 : 1;
734
721
  var computedZIndex = removed ? 0 : ctx.visibleToasts - index + 1;
735
- var computedHeight = isWeb ? ctx.expanded ? ctx.heights[toast.id] || void 0 : !isFront && frontToastHeight > 0 ? frontToastHeight : void 0 : void 0;
722
+ var collapsedHeight = !isFront && frontToastHeight > 0 ? frontToastHeight : void 0;
723
+ var computedHeight = ctx.expanded ? isWeb ? ctx.heights[toast.id] || void 0 : void 0 : collapsedHeight;
736
724
  var computedPointerEvents = index >= ctx.visibleToasts ? "none" : "auto";
737
725
  var gapFillerHeight = ctx.expanded ? ctx.gap + 1 : 0;
738
726
  var dataAttributes = {
@@ -749,10 +737,12 @@ var ToastItemInner = createStyledHOC(ToastItemFrame, function ToastItem(props, r
749
737
  return /* @__PURE__ */ jsx(ToastPositionWrapper, {
750
738
  ref,
751
739
  testID: rest.testID,
752
- "aria-label": rest["aria-label"],
753
740
  ...dataAttributes,
754
- transition: isDragging || ctx.reducedMotion ? void 0 : removed ? "200ms" : "400ms",
755
- y: ctx.reducedMotion ? stackY : `${stackY} enter:${isTop ? -80 : 80}px exit:${swipeOut ? (_swipeExitYRef_current = swipeExitYRef.current) !== null && _swipeExitYRef_current !== void 0 ? _swipeExitYRef_current : stackY : stackY}px`,
741
+ transition: isDragging || ctx.reducedMotion ? void 0 : {
742
+ duration: removed ? 200 : 400,
743
+ properties: isWeb ? "transform, opacity, height" : "transform, opacity"
744
+ },
745
+ y: ctx.reducedMotion ? stackY : `${stackY}px enter:${isTop ? -80 : 80}px exit:${swipeOut ? (_swipeExitYRef_current = swipeExitYRef.current) !== null && _swipeExitYRef_current !== void 0 ? _swipeExitYRef_current : stackY : stackY}px`,
756
746
  scale: stackScale,
757
747
  opacity: `${computedOpacity} enter:0 exit:0`,
758
748
  zIndex: computedZIndex,
@@ -761,12 +751,7 @@ var ToastItemInner = createStyledHOC(ToastItemFrame, function ToastItem(props, r
761
751
  pointerEvents: computedPointerEvents,
762
752
  top: isTop ? 0 : void 0,
763
753
  bottom: isTop ? void 0 : 0,
764
- ...isWeb && !isFront && { style: { transformOrigin: isTop ? "top center" : "bottom center" } },
765
- animateOnly: isWeb ? [
766
- "transform",
767
- "opacity",
768
- "height"
769
- ] : ["transform", "opacity"],
754
+ ...!isFront && { style: { transformOrigin: isTop ? "top center" : "bottom center" } },
770
755
  children: /* @__PURE__ */ jsx(DragWrapper, {
771
756
  animatedStyle,
772
757
  gestureHandlers,
@@ -793,6 +778,7 @@ var ToastItemInner = createStyledHOC(ToastItemFrame, function ToastItem(props, r
793
778
  handleClose();
794
779
  }
795
780
  } },
781
+ ...!isWeb && computedHeight != null && { flex: 1 },
796
782
  ...rest,
797
783
  children: [ctx.expanded && gapFillerHeight > 0 && /* @__PURE__ */ jsx(View, {
798
784
  position: "absolute",