@tamagui/toast 3.0.0-beta.922.1 → 3.0.0
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.
- package/dist/cjs/ToastComposable.cjs +61 -68
- package/dist/cjs/ToastComposable.native.cjs +80 -94
- package/dist/cjs/ToastComposable.native.js +80 -94
- package/dist/cjs/ToastComposable.native.js.map +1 -1
- package/dist/cjs/ToastItemFrame.cjs +4 -3
- package/dist/cjs/ToastItemFrame.native.cjs +4 -3
- package/dist/cjs/ToastItemFrame.native.js +4 -3
- package/dist/cjs/ToastItemFrame.native.js.map +1 -1
- package/dist/cjs/ToastState.cjs +1 -0
- package/dist/cjs/ToastState.native.cjs +3 -13
- package/dist/cjs/ToastState.native.js +3 -13
- package/dist/cjs/ToastState.native.js.map +1 -1
- package/dist/esm/ToastComposable.mjs +62 -69
- package/dist/esm/ToastComposable.mjs.map +1 -1
- package/dist/esm/ToastComposable.native.js +81 -95
- package/dist/esm/ToastComposable.native.js.map +1 -1
- package/dist/esm/ToastItemFrame.mjs +4 -3
- package/dist/esm/ToastItemFrame.mjs.map +1 -1
- package/dist/esm/ToastItemFrame.native.js +4 -3
- package/dist/esm/ToastItemFrame.native.js.map +1 -1
- package/dist/esm/ToastState.mjs +1 -0
- package/dist/esm/ToastState.mjs.map +1 -1
- package/dist/esm/ToastState.native.js +3 -13
- package/dist/esm/ToastState.native.js.map +1 -1
- package/dist/jsx/ToastComposable.mjs +62 -69
- package/dist/jsx/ToastComposable.mjs.map +1 -1
- package/dist/jsx/ToastComposable.native.cjs +80 -94
- package/dist/jsx/ToastComposable.native.js +80 -94
- package/dist/jsx/ToastComposable.native.js.map +1 -1
- package/dist/jsx/ToastItemFrame.mjs +4 -3
- package/dist/jsx/ToastItemFrame.mjs.map +1 -1
- package/dist/jsx/ToastItemFrame.native.cjs +4 -3
- package/dist/jsx/ToastItemFrame.native.js +4 -3
- package/dist/jsx/ToastItemFrame.native.js.map +1 -1
- package/dist/jsx/ToastState.mjs +1 -0
- package/dist/jsx/ToastState.mjs.map +1 -1
- package/dist/jsx/ToastState.native.cjs +3 -13
- package/dist/jsx/ToastState.native.js +3 -13
- package/dist/jsx/ToastState.native.js.map +1 -1
- package/package.json +22 -20
- package/src/ToastComposable.tsx +107 -113
- package/src/ToastItemFrame.tsx +7 -3
- package/src/ToastState.ts +4 -1
- package/src/useToastAnimations.ts +3 -4
- package/types/ToastComposable.d.ts +32 -72
- package/types/ToastComposable.d.ts.map +1 -1
- package/types/ToastItemFrame.d.ts +12 -36
- package/types/ToastItemFrame.d.ts.map +1 -1
- package/types/ToastState.d.ts.map +1 -1
- package/types/useAnimatedDragGesture.native.d.ts +1 -1
- package/types/useToastAnimations.d.ts +2 -3
- package/types/useToastAnimations.d.ts.map +1 -1
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ToastComposable.native.js","names":[],"sources":["esm/ToastComposable.native.js"],"sourcesContent":["import { jsx as _jsx, jsxs as _jsxs } from \"react/jsx-runtime\";\nimport { createStyledHOC, createRefComponent } from \"@tamagui/core\";\nimport { AnimatePresence } from \"@tamagui/animate-presence\";\nimport { isWeb } from \"@tamagui/constants\";\nimport { getGestureHandler } from \"@tamagui/native\";\nimport { createStyledContext, styled, Theme, useConfiguration, useEvent, useThemeName, 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 { DefaultCloseIcon, ToastActionFrame, ToastCloseFrame, ToastItemFrame, ToastPositionWrapper } from \"./ToastItemFrame\";\nfunction _type_of(obj) {\n \"@swc/helpers - typeof\";\n return obj && typeof Symbol !== \"undefined\" && obj.constructor === Symbol ? \"symbol\" : typeof obj;\n}\nvar VISIBLE_TOASTS_AMOUNT = 4;\nvar VIEWPORT_OFFSET = 16;\nvar TOAST_GAP = 14;\nvar TOAST_LIFETIME = 4e3;\nvar FIXED_TOAST_HEIGHT = 72;\nvar TIME_BEFORE_UNMOUNT = 200;\nvar DEFAULT_HOTKEY = [\n \"altKey\",\n \"KeyT\"\n];\nvar ToastContext = createStyledContext({}, \"Toast__\");\nvar 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 var ctx = useToastContextValue();\n if (!hasToastContext(ctx)) {\n throw new Error(`\\`${consumerName}\\` must be used within \\`Toast\\``);\n }\n return ctx;\n}\nvar ToastItemContext = /* @__PURE__ */ React.createContext(null);\nfunction useToastItemContext() {\n var 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 var [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}\nvar ToastRoot = createRefComponent(function ToastRoot2(props, _ref) {\n 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;\n var reducedMotion = useReducedMotion(reducedMotionProp);\n var [toasts, setToasts] = React.useState([]);\n var [heights, setHeights] = React.useState({});\n var [localExpanded, setExpanded] = React.useState(false);\n var expanded = expand || localExpanded;\n var [interacting, setInteracting] = React.useState(false);\n var heightsLockedRef = React.useRef(false);\n var prevExpandedRef = React.useRef(expanded);\n React.useLayoutEffect(function() {\n if (prevExpandedRef.current !== expanded) {\n heightsLockedRef.current = true;\n prevExpandedRef.current = expanded;\n }\n var timer = setTimeout(function() {\n heightsLockedRef.current = false;\n }, 350);\n return function() {\n return clearTimeout(timer);\n };\n }, [\n expanded\n ]);\n var setToastHeight = React.useCallback(function(toastId, height) {\n if (heightsLockedRef.current) return;\n var rounded = Math.round(height);\n setHeights(function(prev) {\n var existing = prev[toastId];\n if (existing != null && Math.abs(existing - rounded) <= 2) return prev;\n return {\n ...prev,\n [toastId]: rounded\n };\n });\n }, []);\n var removeToastHeight = React.useCallback(function(toastId) {\n setHeights(function(prev) {\n if (!(toastId in prev)) return prev;\n var next = {\n ...prev\n };\n delete next[toastId];\n return next;\n });\n }, []);\n var dismissCooldownRef = React.useRef(false);\n var dismissCooldownTimerRef = React.useRef(null);\n var triggerDismissCooldown = React.useCallback(function() {\n dismissCooldownRef.current = true;\n if (dismissCooldownTimerRef.current) {\n clearTimeout(dismissCooldownTimerRef.current);\n }\n dismissCooldownTimerRef.current = setTimeout(function() {\n dismissCooldownRef.current = false;\n }, 800);\n }, []);\n var isInDismissCooldown = React.useCallback(function() {\n return dismissCooldownRef.current;\n }, []);\n var burntOptionsRef = React.useRef(burntOptions);\n var notificationOptionsRef = React.useRef(notificationOptions);\n React.useEffect(function() {\n burntOptionsRef.current = burntOptions;\n }, [\n burntOptions\n ]);\n React.useEffect(function() {\n notificationOptionsRef.current = notificationOptions;\n }, [\n notificationOptions\n ]);\n React.useEffect(function() {\n return ToastState.subscribe(function(toast) {\n if (toast.dismiss) {\n setToasts(function(toasts2) {\n return toasts2.map(function(t) {\n return t.id === toast.id ? {\n ...t,\n delete: true\n } : t;\n });\n });\n return;\n }\n if (toast.toasterId !== toasterId) {\n return;\n }\n if (native) {\n var handled = dispatchNativeToast(toast, {\n duration,\n burntOptions: burntOptionsRef.current,\n notificationOptions: notificationOptionsRef.current\n });\n if (handled) return;\n }\n setToasts(function(toasts2) {\n var idx = toasts2.findIndex(function(t) {\n return t.id === toast.id;\n });\n if (idx !== -1) {\n return [\n ...toasts2.slice(0, idx),\n {\n ...toasts2[idx],\n ...toast\n },\n ...toasts2.slice(idx + 1)\n ];\n }\n return [\n toast,\n ...toasts2\n ];\n });\n });\n }, [\n native,\n duration,\n toasterId\n ]);\n var prevToastCountRef = React.useRef(toasts.length);\n React.useEffect(function() {\n var 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 }, [\n toasts.length,\n expanded\n ]);\n var removeToast = React.useCallback(function(toastToRemove) {\n setToasts(function(toasts2) {\n var _toasts_find;\n if (!((_toasts_find = toasts2.find(function(t) {\n return t.id === toastToRemove.id;\n })) === null || _toasts_find === void 0 ? void 0 : _toasts_find.delete)) {\n ToastState.dismiss(toastToRemove.id);\n }\n return toasts2.filter(function(param) {\n var { id } = param;\n return id !== toastToRemove.id;\n });\n });\n }, []);\n var swipeDirection = resolveSwipeDirection(swipeDirectionProp, position);\n var currentTheme = useThemeName();\n var resolvedTheme = themeProp === \"system\" || !themeProp ? (currentTheme === null || currentTheme === void 0 ? void 0 : currentTheme.includes(\"dark\")) ? \"dark\" : \"light\" : themeProp;\n var 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, {\n ...contextValue,\n children: /* @__PURE__ */ _jsx(Theme, {\n name: resolvedTheme,\n children\n })\n });\n});\nvar ToastViewportFrame = styled(View, {\n displayName: \"ToastViewport\",\n position: isWeb ? \"fixed\" : \"absolute\",\n zIndex: 1e5,\n pointerEvents: \"box-none\",\n maxWidth: \"100%\",\n ...isWeb && {\n width: 356\n },\n minHeight: 1\n});\nvar ToastViewport = createStyledHOC(ToastViewportFrame, function ToastViewport2(props, ref) {\n var { offset = VIEWPORT_OFFSET, hotkey = DEFAULT_HOTKEY, label = \"Notifications\", portalToRoot = true, portalZIndex = Number.MAX_SAFE_INTEGER, children, ...rest } = props;\n var ctx = useToastContext(\"Toast.Viewport\");\n var listRef = React.useRef(null);\n var hoverTimeoutRef = React.useRef(null);\n var hoverCooldownRef = React.useRef(false);\n var deferredCollapseRef = React.useRef(null);\n var mouseInsideRef = React.useRef(false);\n var [yPosition, xPosition] = ctx.position.split(\"-\");\n var { insets: safeInsets } = useConfiguration();\n var offsetStyles = React.useMemo(function() {\n var styles = {};\n var defaultOffset = typeof offset === \"number\" ? offset : VIEWPORT_OFFSET;\n var offsetObj = (typeof offset === \"undefined\" ? \"undefined\" : _type_of(offset)) === \"object\" ? offset : {\n top: defaultOffset,\n right: defaultOffset,\n bottom: defaultOffset,\n left: defaultOffset\n };\n var _safeInsets_top;\n var safeTop = (_safeInsets_top = safeInsets === null || safeInsets === void 0 ? void 0 : safeInsets.top) !== null && _safeInsets_top !== void 0 ? _safeInsets_top : 0;\n var _safeInsets_bottom;\n var safeBottom = (_safeInsets_bottom = safeInsets === null || safeInsets === void 0 ? void 0 : safeInsets.bottom) !== null && _safeInsets_bottom !== void 0 ? _safeInsets_bottom : 0;\n var _offsetObj_top;\n var topOffset = safeTop > 0 ? safeTop : (_offsetObj_top = offsetObj.top) !== null && _offsetObj_top !== void 0 ? _offsetObj_top : defaultOffset;\n var _offsetObj_bottom;\n var bottomOffset = safeBottom > 0 ? safeBottom : (_offsetObj_bottom = offsetObj.bottom) !== null && _offsetObj_bottom !== void 0 ? _offsetObj_bottom : defaultOffset;\n if (yPosition === \"top\") styles.top = topOffset;\n else styles.bottom = bottomOffset;\n if (isWeb) {\n var _offsetObj_left, _offsetObj_right;\n if (xPosition === \"left\") styles.left = (_offsetObj_left = offsetObj.left) !== null && _offsetObj_left !== void 0 ? _offsetObj_left : defaultOffset;\n else if (xPosition === \"right\") styles.right = (_offsetObj_right = offsetObj.right) !== null && _offsetObj_right !== void 0 ? _offsetObj_right : defaultOffset;\n else {\n styles.left = \"50%\";\n styles.transform = \"translateX(-50%)\";\n }\n } else {\n var _offsetObj_left1;\n styles.left = (_offsetObj_left1 = offsetObj.left) !== null && _offsetObj_left1 !== void 0 ? _offsetObj_left1 : defaultOffset;\n var _offsetObj_right1;\n styles.right = (_offsetObj_right1 = offsetObj.right) !== null && _offsetObj_right1 !== void 0 ? _offsetObj_right1 : defaultOffset;\n }\n return styles;\n }, [\n offset,\n yPosition,\n xPosition\n ]);\n React.useEffect(function() {\n if (!isWeb) return;\n var handleKeyDown = function(event) {\n var isHotkeyPressed = hotkey.length > 0 && hotkey.every(function(key) {\n return event[key] || event.code === key;\n });\n if (isHotkeyPressed) {\n var _listRef_current;\n ctx.setExpanded(true);\n (_listRef_current = listRef.current) === null || _listRef_current === void 0 ? void 0 : _listRef_current.focus();\n }\n };\n document.addEventListener(\"keydown\", handleKeyDown);\n return function() {\n return document.removeEventListener(\"keydown\", handleKeyDown);\n };\n }, [\n hotkey\n ]);\n if (ctx.toasts.length === 0) return null;\n var hotkeyLabel = hotkey.join(\"+\").replace(/Key/g, \"\").replace(/Digit/g, \"\");\n var content = /* @__PURE__ */ _jsx(ToastViewportFrame, {\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: function() {\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(function() {\n return ctx.setExpanded(true);\n }, 50);\n }\n },\n onMouseLeave: function() {\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(function() {\n deferredCollapseRef.current = null;\n if (!mouseInsideRef.current) {\n ctx.setExpanded(false);\n }\n }, 1200);\n }\n },\n onPointerDown: function() {\n if (hoverTimeoutRef.current) {\n clearTimeout(hoverTimeoutRef.current);\n hoverTimeoutRef.current = null;\n }\n ctx.setInteracting(true);\n },\n onPointerUp: function() {\n return ctx.setInteracting(false);\n },\n onPointerCancel: function() {\n return ctx.setInteracting(false);\n }\n } : {\n onPress: function() {\n if (ctx.toasts.length > 1) {\n ctx.setExpanded(function(prev) {\n return !prev;\n });\n }\n }\n },\n ...isWeb && {\n onFocus: function(event) {\n if (!event.currentTarget.contains(event.relatedTarget)) {\n if (ctx.toasts.length > 1) {\n ctx.setExpanded(true);\n }\n ctx.setInteracting(true);\n }\n },\n onBlur: function(event) {\n if (!event.currentTarget.contains(event.relatedTarget)) {\n ctx.setInteracting(false);\n if (!ctx.isInDismissCooldown()) {\n ctx.setExpanded(false);\n }\n }\n }\n },\n ...rest,\n children\n });\n if (portalToRoot) {\n return /* @__PURE__ */ _jsx(Portal, {\n zIndex: portalZIndex,\n children: /* @__PURE__ */ _jsx(ToastContext.Provider, {\n ...ctx,\n children: content\n })\n });\n }\n return content;\n});\nfunction ToastList(param) {\n var { renderItem } = param;\n var ctx = useToastContext(\"Toast.List\");\n var maxRender = ctx.toasts.length;\n return /* @__PURE__ */ _jsx(AnimatePresence, {\n children: ctx.toasts.slice(0, maxRender).map(function(toast, index) {\n var handleClose = function() {\n var _toast_onDismiss;\n if (toast.dismissible === false) return;\n (_toast_onDismiss = toast.onDismiss) === null || _toast_onDismiss === void 0 ? void 0 : _toast_onDismiss.call(toast, toast);\n ctx.removeToast(toast);\n };\n var itemContextValue = {\n toast,\n handleClose\n };\n if (!renderItem) {\n return /* @__PURE__ */ _jsx(ToastItemContext.Provider, {\n value: itemContextValue,\n children: /* @__PURE__ */ _jsx(ToastItemInner, {\n toast,\n index,\n children: /* @__PURE__ */ _jsx(DefaultToastContent, {\n toast\n })\n })\n }, toast.id);\n }\n return /* @__PURE__ */ _jsx(ToastItemContext.Provider, {\n value: itemContextValue,\n children: renderItem({\n toast,\n index,\n handleClose\n })\n }, toast.id);\n })\n });\n}\nfunction DefaultToastContent(param) {\n var { toast } = param;\n var ctx = useToastContext(\"Toast.Item\");\n var { handleClose } = useToastItemContext();\n var _toast_type;\n var toastType = (_toast_type = toast.type) !== null && _toast_type !== void 0 ? _toast_type : \"default\";\n var dismissible = toast.dismissible !== false;\n var title = typeof toast.title === \"function\" ? toast.title() : toast.title;\n var description = typeof toast.description === \"function\" ? toast.description() : toast.description;\n return /* @__PURE__ */ _jsxs(XStack, {\n alignItems: \"flex-start\",\n gap: \"3\",\n children: [\n /* @__PURE__ */ _jsx(ToastIcon, {}),\n /* @__PURE__ */ _jsxs(YStack, {\n flex: 1,\n gap: \"1\",\n children: [\n title && /* @__PURE__ */ _jsx(ToastTitle, {\n children: title\n }),\n description && /* @__PURE__ */ _jsx(ToastDescription, {\n children: description\n }),\n (toast.action || toast.cancel) && /* @__PURE__ */ _jsxs(XStack, {\n gap: \"2\",\n marginTop: \"2\",\n children: [\n toast.cancel && /* @__PURE__ */ _jsx(ToastActionFrame, {\n onPress: function(e) {\n var _toast_cancel_onClick, _toast_cancel;\n (_toast_cancel = toast.cancel) === null || _toast_cancel === void 0 ? void 0 : (_toast_cancel_onClick = _toast_cancel.onClick) === null || _toast_cancel_onClick === void 0 ? void 0 : _toast_cancel_onClick.call(_toast_cancel, e);\n handleClose();\n },\n children: /* @__PURE__ */ _jsx(SizableText, {\n size: \"2\",\n children: toast.cancel.label\n })\n }),\n toast.action && /* @__PURE__ */ _jsx(ToastActionFrame, {\n onPress: function(e) {\n var _toast_action_onClick, _toast_action;\n (_toast_action = toast.action) === null || _toast_action === void 0 ? void 0 : (_toast_action_onClick = _toast_action.onClick) === null || _toast_action_onClick === void 0 ? void 0 : _toast_action_onClick.call(_toast_action, e);\n if (!e.defaultPrevented) {\n handleClose();\n }\n },\n children: /* @__PURE__ */ _jsx(SizableText, {\n size: \"2\",\n children: toast.action.label\n })\n })\n ]\n })\n ]\n }),\n ctx.closeButton && dismissible && /* @__PURE__ */ _jsx(ToastClose, {})\n ]\n });\n}\nfunction DragWrapper(param) {\n var { animatedStyle, gestureHandlers, gesture, AnimatedView, dragRef, children } = param;\n if (isWeb) {\n return /* @__PURE__ */ _jsx(\"div\", {\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 if (gesture) {\n var gh = getGestureHandler();\n var GestureDetector = gh.state.GestureDetector;\n if (GestureDetector) {\n return /* @__PURE__ */ _jsx(GestureDetector, {\n gesture,\n children: /* @__PURE__ */ _jsx(View, {\n style: {\n flex: 1\n },\n ...{\n collapsable: false\n },\n children: /* @__PURE__ */ _jsx(AnimatedView, {\n style: [\n {\n flex: 1\n },\n animatedStyle\n ],\n children\n })\n })\n });\n }\n }\n return /* @__PURE__ */ _jsx(AnimatedView, {\n style: [\n {\n flex: 1\n },\n animatedStyle\n ],\n ...gestureHandlers,\n children\n });\n}\nvar ToastItemInner = createStyledHOC(ToastItemFrame, function ToastItem(props, ref) {\n var { toast, index, children, ...rest } = props;\n var ctx = useToastContext(\"Toast.Item\");\n var [mounted, setMounted] = React.useState(false);\n var [removed, setRemoved] = React.useState(false);\n var [swipeOut, setSwipeOut] = React.useState(false);\n var [offsetBeforeRemove, setOffsetBeforeRemove] = React.useState(0);\n var swipeExitYRef = React.useRef(null);\n var closeTimerRef = React.useRef(null);\n var closeTimerStartRef = React.useRef(0);\n var lastPauseTimeRef = React.useRef(0);\n var _toast_duration;\n var remainingTimeRef = React.useRef((_toast_duration = toast.duration) !== null && _toast_duration !== void 0 ? _toast_duration : ctx.duration);\n var isFront = index === 0;\n var isVisible = index < ctx.visibleToasts;\n var _toast_type;\n var toastType = (_toast_type = toast.type) !== null && _toast_type !== void 0 ? _toast_type : \"default\";\n var dismissible = toast.dismissible !== false;\n var _toast_duration1;\n var duration = (_toast_duration1 = toast.duration) !== null && _toast_duration1 !== void 0 ? _toast_duration1 : ctx.duration;\n var [yPosition] = ctx.position.split(\"-\");\n var isTop = yPosition === \"top\";\n var expandedOffset = isWeb ? (function() {\n var totalHeight = 0;\n var activeCount = 0;\n for (var i = 0; i < index; i++) {\n var _ctx_toasts_i;\n var toastId = (_ctx_toasts_i = ctx.toasts[i]) === null || _ctx_toasts_i === void 0 ? void 0 : _ctx_toasts_i.id;\n if (toastId == null) continue;\n var h2 = ctx.heights[toastId];\n if (h2 === 0) continue;\n totalHeight += h2 !== null && h2 !== void 0 ? h2 : ctx.toastHeight;\n activeCount++;\n }\n return totalHeight + activeCount * ctx.gap;\n })() : index * (ctx.toastHeight + ctx.gap);\n var expandedOffsetRef = React.useRef(expandedOffset);\n expandedOffsetRef.current = expandedOffset;\n var isExpandedRef = React.useRef(ctx.expanded);\n isExpandedRef.current = ctx.expanded;\n var startTimer = React.useCallback(function() {\n if (duration === Number.POSITIVE_INFINITY || toastType === \"loading\") return;\n closeTimerStartRef.current = Date.now();\n closeTimerRef.current = setTimeout(function() {\n var _toast_onAutoClose;\n (_toast_onAutoClose = toast.onAutoClose) === null || _toast_onAutoClose === void 0 ? void 0 : _toast_onAutoClose.call(toast, toast);\n setRemoved(true);\n setTimeout(function() {\n return ctx.removeToast(toast);\n }, TIME_BEFORE_UNMOUNT);\n }, remainingTimeRef.current);\n }, [\n duration,\n toastType,\n toast,\n ctx.removeToast\n ]);\n var pauseTimer = useEvent(function() {\n if (closeTimerRef.current) {\n clearTimeout(closeTimerRef.current);\n }\n if (lastPauseTimeRef.current < closeTimerStartRef.current) {\n var elapsed = Date.now() - closeTimerStartRef.current;\n remainingTimeRef.current = Math.max(0, remainingTimeRef.current - elapsed);\n }\n lastPauseTimeRef.current = Date.now();\n });\n var resumeTimer = useEvent(function() {\n if (ctx.expanded || ctx.interacting) return;\n remainingTimeRef.current = duration;\n startTimer();\n });\n React.useEffect(function() {\n setMounted(true);\n }, []);\n React.useEffect(function() {\n if (toast.delete) {\n setRemoved(true);\n if (isExpandedRef.current) {\n setOffsetBeforeRemove(expandedOffsetRef.current);\n }\n setTimeout(function() {\n return ctx.removeToast(toast);\n }, TIME_BEFORE_UNMOUNT);\n }\n }, [\n toast.delete,\n toast,\n ctx.removeToast\n ]);\n React.useEffect(function() {\n if (ctx.expanded || ctx.interacting) {\n pauseTimer();\n } else {\n startTimer();\n }\n return function() {\n if (closeTimerRef.current) clearTimeout(closeTimerRef.current);\n };\n }, [\n ctx.expanded,\n ctx.interacting,\n startTimer\n ]);\n React.useEffect(function() {\n remainingTimeRef.current = duration;\n }, [\n duration\n ]);\n var { setDragOffset, springBack, animateOut, animatedStyle, AnimatedView, dragRef } = useToastAnimations({\n reducedMotion: ctx.reducedMotion\n });\n var { 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: function(exitDirection, velocity) {\n var _toast_onDismiss;\n ctx.triggerDismissCooldown();\n setSwipeOut(true);\n (_toast_onDismiss = toast.onDismiss) === null || _toast_onDismiss === void 0 ? void 0 : _toast_onDismiss.call(toast, 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: function() {\n springBack(function() {\n resumeTimer();\n });\n }\n });\n var handleLayout = React.useCallback(function(event) {\n if (!isWeb) return;\n if (removed) return;\n if (!ctx.expanded && index !== 0) return;\n var { height } = event.nativeEvent.layout;\n ctx.setToastHeight(toast.id, height);\n }, [\n toast.id,\n ctx.setToastHeight,\n index,\n ctx.expanded,\n removed\n ]);\n React.useEffect(function() {\n if (!isWeb) return;\n return function() {\n ctx.removeToastHeight(toast.id);\n };\n }, [\n toast.id,\n ctx.removeToastHeight\n ]);\n var handleClose = React.useCallback(function() {\n var _toast_onDismiss;\n if (!dismissible) return;\n ctx.triggerDismissCooldown();\n (_toast_onDismiss = toast.onDismiss) === null || _toast_onDismiss === void 0 ? void 0 : _toast_onDismiss.call(toast, toast);\n setRemoved(true);\n if (isExpandedRef.current) {\n setOffsetBeforeRemove(expandedOffsetRef.current);\n }\n setTimeout(function() {\n return ctx.removeToast(toast);\n }, TIME_BEFORE_UNMOUNT);\n }, [\n dismissible,\n toast,\n ctx.removeToast,\n ctx.triggerDismissCooldown\n ]);\n var itemContextValue = React.useMemo(function() {\n return {\n toast,\n handleClose\n };\n }, [\n toast,\n handleClose\n ]);\n var frontToastHeight = -1;\n if (isWeb) {\n var _iteratorNormalCompletion = true, _didIteratorError = false, _iteratorError = void 0;\n try {\n for (var _iterator = ctx.toasts[Symbol.iterator](), _step; !(_iteratorNormalCompletion = (_step = _iterator.next()).done); _iteratorNormalCompletion = true) {\n var t = _step.value;\n var h = ctx.heights[t.id];\n if (h != null && h > 0) {\n frontToastHeight = h;\n break;\n }\n }\n } catch (err) {\n _didIteratorError = true;\n _iteratorError = err;\n } finally {\n try {\n if (!_iteratorNormalCompletion && _iterator.return != null) {\n _iterator.return();\n }\n } finally {\n if (_didIteratorError) {\n throw _iteratorError;\n }\n }\n }\n }\n var stackScale = !ctx.expanded && !isFront ? 1 - index * 0.05 : 1;\n var activeExpandedOffset = removed ? offsetBeforeRemove : expandedOffset;\n var stackY = ctx.expanded ? isTop ? activeExpandedOffset : -activeExpandedOffset : isFront ? 0 : isTop ? ctx.gap * index : -ctx.gap * index;\n var computedOpacity = removed && !swipeOut ? 0 : index >= ctx.visibleToasts ? 0 : 1;\n var computedZIndex = removed ? 0 : ctx.visibleToasts - index + 1;\n var computedHeight = isWeb ? ctx.expanded ? ctx.heights[toast.id] || void 0 : !isFront && frontToastHeight > 0 ? frontToastHeight : void 0 : void 0;\n var computedPointerEvents = index >= ctx.visibleToasts ? \"none\" : \"auto\";\n var gapFillerHeight = ctx.expanded ? ctx.gap + 1 : 0;\n var 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 var _swipeExitYRef_current;\n return /* @__PURE__ */ _jsx(ToastPositionWrapper, {\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 = swipeExitYRef.current) !== null && _swipeExitYRef_current !== void 0 ? _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: {\n transformOrigin: isTop ? \"top center\" : \"bottom center\"\n }\n },\n animateOnly: isWeb ? [\n \"transform\",\n \"opacity\",\n \"height\"\n ] : [\n \"transform\",\n \"opacity\"\n ],\n children: /* @__PURE__ */ _jsx(DragWrapper, {\n animatedStyle,\n gestureHandlers,\n gesture,\n AnimatedView,\n dragRef,\n children: /* @__PURE__ */ _jsxs(ToastItemFrame, {\n role: \"status\",\n \"aria-live\": \"polite\",\n \"aria-atomic\": true,\n tabIndex: 0,\n onLayout: handleLayout,\n ...isWeb && {\n onKeyDown: function(event) {\n if (event.key === \"Escape\" && dismissible) {\n var current = event.currentTarget;\n var container = current.closest(\"[aria-label]\");\n if (container) {\n var focusables = container.querySelectorAll('[tabindex=\"0\"]');\n var arr = Array.from(focusables);\n var idx = arr.indexOf(current);\n var next = arr[idx + 1] || arr[idx - 1];\n next === null || next === void 0 ? void 0 : next.focus();\n }\n handleClose();\n }\n }\n },\n ...rest,\n children: [\n /* gap filler to prevent hover flicker */\n ctx.expanded && gapFillerHeight > 0 && /* @__PURE__ */ _jsx(View, {\n position: \"absolute\",\n left: 0,\n right: 0,\n height: gapFillerHeight,\n pointerEvents: \"auto\",\n ...isTop ? {\n top: \"100%\"\n } : {\n bottom: \"100%\"\n }\n }),\n /* @__PURE__ */ _jsx(ToastItemContext.Provider, {\n value: itemContextValue,\n children\n })\n ]\n })\n })\n });\n});\nvar ToastTitle = styled(SizableText, {\n displayName: \"ToastTitle\"\n});\nvar ToastDescription = styled(SizableText, {\n displayName: \"ToastDescription\"\n});\nvar ToastClose = createStyledHOC(ToastCloseFrame, function ToastClose2(props, ref) {\n var _ctx_icons;\n var handleClose;\n try {\n var itemCtx = useToastItemContext();\n handleClose = itemCtx.handleClose;\n } catch (e) {\n }\n var ctx = useToastContext(\"Toast.Close\");\n var _props_children, _ref;\n return /* @__PURE__ */ _jsx(ToastCloseFrame, {\n ref,\n \"aria-label\": \"Close toast\",\n onPress: handleClose,\n ...props,\n children: (_ref = (_props_children = props.children) !== null && _props_children !== void 0 ? _props_children : (_ctx_icons = ctx.icons) === null || _ctx_icons === void 0 ? void 0 : _ctx_icons.close) !== null && _ref !== void 0 ? _ref : /* @__PURE__ */ _jsx(DefaultCloseIcon, {})\n });\n});\nvar ToastAction = createStyledHOC(ToastActionFrame, function ToastAction2(props, ref) {\n return /* @__PURE__ */ _jsx(ToastActionFrame, {\n ref,\n ...props\n });\n});\nfunction ToastIcon(props) {\n var _ctx_icons;\n var ctx = useToastContext(\"Toast.Icon\");\n var toast;\n try {\n var itemCtx = useToastItemContext();\n toast = itemCtx.toast;\n } catch (e) {\n return null;\n }\n if (!toast) return null;\n if (toast.icon !== void 0) {\n return /* @__PURE__ */ _jsx(View, {\n flexShrink: 0,\n marginTop: \"0-5\",\n children: toast.icon\n });\n }\n var _toast_type;\n var toastType = (_toast_type = toast.type) !== null && _toast_type !== void 0 ? _toast_type : \"default\";\n var _ctx_icons_toastType;\n var icon = (_ctx_icons_toastType = (_ctx_icons = ctx.icons) === null || _ctx_icons === void 0 ? void 0 : _ctx_icons[toastType]) !== null && _ctx_icons_toastType !== void 0 ? _ctx_icons_toastType : null;\n if (!icon) return null;\n return /* @__PURE__ */ _jsx(View, {\n flexShrink: 0,\n marginTop: \"0-5\",\n children: icon\n });\n}\nfunction useToasts() {\n var 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\";\nvar 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
|
+
{"version":3,"file":"ToastComposable.native.js","names":[],"sources":["esm/ToastComposable.native.js"],"sourcesContent":["import { jsx as _jsx, jsxs as _jsxs } from \"react/jsx-runtime\";\nimport { 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 { DefaultCloseIcon, ToastActionFrame, ToastCloseFrame, ToastItemFrame, ToastPositionWrapper } from \"./ToastItemFrame\";\nvar VISIBLE_TOASTS_AMOUNT = 4;\nvar VIEWPORT_OFFSET = 16;\nvar TOAST_GAP = 14;\nvar TOAST_LIFETIME = 4e3;\nvar FIXED_TOAST_HEIGHT = 72;\nvar TIME_BEFORE_UNMOUNT = 200;\nvar DEFAULT_HOTKEY = [\n \"altKey\",\n \"KeyT\"\n];\nvar ToastContext = createStyledContext({}, \"Toast__\");\nvar 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 var ctx = useToastContextValue();\n if (!hasToastContext(ctx)) {\n throw new Error(`\\`${consumerName}\\` must be used within \\`Toast\\``);\n }\n return ctx;\n}\nvar ToastItemContext = /* @__PURE__ */ React.createContext(null);\nfunction useToastItemContext() {\n var 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 var [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}\nvar ToastRoot = createRefComponent(function ToastRoot2(props, _ref) {\n 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;\n var reducedMotion = useReducedMotion(reducedMotionProp);\n var [toasts, setToasts] = React.useState([]);\n var [heights, setHeights] = React.useState({});\n var [localExpanded, setExpanded] = React.useState(false);\n var expanded = expand || localExpanded;\n var [interacting, setInteracting] = React.useState(false);\n var heightsLockedRef = React.useRef(false);\n var prevExpandedRef = React.useRef(expanded);\n React.useLayoutEffect(function() {\n if (prevExpandedRef.current !== expanded) {\n heightsLockedRef.current = true;\n prevExpandedRef.current = expanded;\n }\n var timer = setTimeout(function() {\n heightsLockedRef.current = false;\n }, 350);\n return function() {\n return clearTimeout(timer);\n };\n }, [\n expanded\n ]);\n var setToastHeight = React.useCallback(function(toastId, height) {\n if (heightsLockedRef.current) return;\n var rounded = Math.round(height);\n setHeights(function(prev) {\n var existing = prev[toastId];\n if (existing != null && Math.abs(existing - rounded) <= 2) return prev;\n return {\n ...prev,\n [toastId]: rounded\n };\n });\n }, []);\n var removeToastHeight = React.useCallback(function(toastId) {\n setHeights(function(prev) {\n if (!(toastId in prev)) return prev;\n var next = {\n ...prev\n };\n delete next[toastId];\n return next;\n });\n }, []);\n var dismissCooldownRef = React.useRef(false);\n var dismissCooldownTimerRef = React.useRef(null);\n var triggerDismissCooldown = React.useCallback(function() {\n dismissCooldownRef.current = true;\n if (dismissCooldownTimerRef.current) {\n clearTimeout(dismissCooldownTimerRef.current);\n }\n dismissCooldownTimerRef.current = setTimeout(function() {\n dismissCooldownRef.current = false;\n }, 800);\n }, []);\n var isInDismissCooldown = React.useCallback(function() {\n return dismissCooldownRef.current;\n }, []);\n var burntOptionsRef = React.useRef(burntOptions);\n var notificationOptionsRef = React.useRef(notificationOptions);\n React.useEffect(function() {\n burntOptionsRef.current = burntOptions;\n }, [\n burntOptions\n ]);\n React.useEffect(function() {\n notificationOptionsRef.current = notificationOptions;\n }, [\n notificationOptions\n ]);\n React.useEffect(function() {\n return ToastState.subscribe(function(toast) {\n if (toast.dismiss) {\n setToasts(function(toasts2) {\n return toasts2.map(function(t) {\n return t.id === toast.id ? {\n ...t,\n delete: true\n } : t;\n });\n });\n return;\n }\n if (toast.toasterId !== toasterId) {\n return;\n }\n if (native) {\n var handled = dispatchNativeToast(toast, {\n duration,\n burntOptions: burntOptionsRef.current,\n notificationOptions: notificationOptionsRef.current\n });\n if (handled) return;\n }\n setToasts(function(toasts2) {\n var idx = toasts2.findIndex(function(t) {\n return t.id === toast.id;\n });\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 {\n ...toasts2[idx],\n ...toast,\n delete: false\n },\n ...toasts2.slice(idx + 1)\n ];\n }\n return [\n toast,\n ...toasts2\n ];\n });\n });\n }, [\n native,\n duration,\n toasterId\n ]);\n var prevToastCountRef = React.useRef(toasts.length);\n React.useEffect(function() {\n var 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 }, [\n toasts.length,\n expanded\n ]);\n var removeToast = React.useCallback(function(toastToRemove) {\n setToasts(function(toasts2) {\n var _toasts_find;\n if (!((_toasts_find = toasts2.find(function(t) {\n return t.id === toastToRemove.id;\n })) === null || _toasts_find === void 0 ? void 0 : _toasts_find.delete)) {\n ToastState.dismiss(toastToRemove.id);\n }\n return toasts2.filter(function(param) {\n var { id } = param;\n return id !== toastToRemove.id;\n });\n });\n }, []);\n var swipeDirection = resolveSwipeDirection(swipeDirectionProp, position);\n var 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, {\n ...contextValue,\n children\n });\n});\nvar ToastViewportFrame = styled(View, {\n displayName: \"ToastViewport\",\n position: isWeb ? \"fixed\" : \"absolute\",\n zIndex: 1e5,\n pointerEvents: \"box-none\",\n maxWidth: \"100%\",\n ...isWeb && {\n width: 356\n },\n minHeight: 1\n});\nvar ToastViewport = createStyledHOC(ToastViewportFrame, function ToastViewport2(props, ref) {\n var { offset = VIEWPORT_OFFSET, hotkey = DEFAULT_HOTKEY, label = \"Notifications\", portalToRoot = true, portalZIndex = Number.MAX_SAFE_INTEGER, children, ...rest } = props;\n var ctx = useToastContext(\"Toast.Viewport\");\n var listRef = React.useRef(null);\n var hoverTimeoutRef = React.useRef(null);\n var hoverCooldownRef = React.useRef(false);\n var deferredCollapseRef = React.useRef(null);\n var mouseInsideRef = React.useRef(false);\n var [yPosition, xPosition] = ctx.position.split(\"-\");\n var defaultOffset = typeof offset === \"number\" ? offset : VIEWPORT_OFFSET;\n var offsetObj = typeof offset === \"object\" ? offset : {\n top: defaultOffset,\n right: defaultOffset,\n bottom: defaultOffset,\n left: defaultOffset\n };\n var _offsetObj_top, _offsetObj_bottom;\n var edgeProps = yPosition === \"top\" ? {\n top: \"safe\",\n marginTop: (_offsetObj_top = offsetObj.top) !== null && _offsetObj_top !== void 0 ? _offsetObj_top : defaultOffset\n } : {\n bottom: \"safe\",\n marginBottom: (_offsetObj_bottom = offsetObj.bottom) !== null && _offsetObj_bottom !== void 0 ? _offsetObj_bottom : defaultOffset\n };\n var _offsetObj_left, _offsetObj_right, _offsetObj_left1, _offsetObj_right1;\n var sideProps = isWeb ? xPosition === \"left\" ? {\n left: \"safe\",\n marginLeft: (_offsetObj_left = offsetObj.left) !== null && _offsetObj_left !== void 0 ? _offsetObj_left : defaultOffset\n } : xPosition === \"right\" ? {\n right: \"safe\",\n marginRight: (_offsetObj_right = offsetObj.right) !== null && _offsetObj_right !== void 0 ? _offsetObj_right : defaultOffset\n } : 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_left1 = offsetObj.left) !== null && _offsetObj_left1 !== void 0 ? _offsetObj_left1 : defaultOffset,\n right: \"safe\",\n marginRight: (_offsetObj_right1 = offsetObj.right) !== null && _offsetObj_right1 !== void 0 ? _offsetObj_right1 : defaultOffset\n }\n );\n var centerStyle = isWeb && xPosition === \"center\" ? {\n left: \"50%\",\n transform: \"translateX(-50%)\"\n } : null;\n React.useEffect(function() {\n if (!isWeb) return;\n var handleKeyDown = function(event) {\n var isHotkeyPressed = hotkey.length > 0 && hotkey.every(function(key) {\n return event[key] || event.code === key;\n });\n if (isHotkeyPressed) {\n var _listRef_current;\n ctx.setExpanded(true);\n (_listRef_current = listRef.current) === null || _listRef_current === void 0 ? void 0 : _listRef_current.focus();\n }\n };\n document.addEventListener(\"keydown\", handleKeyDown);\n return function() {\n return document.removeEventListener(\"keydown\", handleKeyDown);\n };\n }, [\n hotkey\n ]);\n if (ctx.toasts.length === 0) return null;\n var hotkeyLabel = hotkey.join(\"+\").replace(/Key/g, \"\").replace(/Digit/g, \"\");\n var content = /* @__PURE__ */ _jsx(ToastViewportFrame, {\n ref: listRef,\n \"aria-label\": `${label} ${hotkeyLabel}`,\n tabIndex: -1,\n \"aria-live\": \"polite\",\n ...edgeProps,\n ...sideProps,\n ...centerStyle ? {\n style: centerStyle\n } : null,\n \"data-y-position\": yPosition,\n \"data-x-position\": xPosition,\n ...isWeb ? {\n onMouseEnter: function() {\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(function() {\n return ctx.setExpanded(true);\n }, 50);\n }\n },\n onMouseLeave: function() {\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(function() {\n deferredCollapseRef.current = null;\n if (!mouseInsideRef.current) {\n ctx.setExpanded(false);\n }\n }, 1200);\n }\n },\n onPointerDown: function() {\n if (hoverTimeoutRef.current) {\n clearTimeout(hoverTimeoutRef.current);\n hoverTimeoutRef.current = null;\n }\n ctx.setInteracting(true);\n },\n onPointerUp: function() {\n return ctx.setInteracting(false);\n },\n onPointerCancel: function() {\n return ctx.setInteracting(false);\n }\n } : {\n onPress: function() {\n if (ctx.toasts.length > 1) {\n ctx.setExpanded(function(prev) {\n return !prev;\n });\n }\n }\n },\n ...isWeb && {\n onFocus: function(event) {\n if (!event.currentTarget.contains(event.relatedTarget)) {\n if (ctx.toasts.length > 1) {\n ctx.setExpanded(true);\n }\n ctx.setInteracting(true);\n }\n },\n onBlur: function(event) {\n if (!event.currentTarget.contains(event.relatedTarget)) {\n ctx.setInteracting(false);\n if (!ctx.isInDismissCooldown()) {\n ctx.setExpanded(false);\n }\n }\n }\n },\n ...rest,\n children\n });\n if (portalToRoot) {\n return /* @__PURE__ */ _jsx(Portal, {\n zIndex: portalZIndex,\n children: /* @__PURE__ */ _jsx(ToastContext.Provider, {\n ...ctx,\n children: content\n })\n });\n }\n return content;\n});\nfunction ToastList(param) {\n var { renderItem } = param;\n var ctx = useToastContext(\"Toast.List\");\n var maxRender = ctx.toasts.length;\n return /* @__PURE__ */ _jsx(AnimatePresence, {\n children: ctx.toasts.slice(0, maxRender).map(function(toast, index) {\n var handleClose = function() {\n var _toast_onDismiss;\n if (toast.dismissible === false) return;\n (_toast_onDismiss = toast.onDismiss) === null || _toast_onDismiss === void 0 ? void 0 : _toast_onDismiss.call(toast, toast);\n ctx.removeToast(toast);\n };\n var itemContextValue = {\n toast,\n handleClose\n };\n if (!renderItem) {\n return /* @__PURE__ */ _jsx(ToastItemContext.Provider, {\n value: itemContextValue,\n children: /* @__PURE__ */ _jsx(ToastItemInner, {\n toast,\n index,\n children: /* @__PURE__ */ _jsx(DefaultToastContent, {\n toast\n })\n })\n }, toast.id);\n }\n return /* @__PURE__ */ _jsx(ToastItemContext.Provider, {\n value: itemContextValue,\n children: renderItem({\n toast,\n index,\n handleClose\n })\n }, toast.id);\n })\n });\n}\nfunction DefaultToastContent(param) {\n var { toast } = param;\n var ctx = useToastContext(\"Toast.Item\");\n var { handleClose } = useToastItemContext();\n var _toast_type;\n var toastType = (_toast_type = toast.type) !== null && _toast_type !== void 0 ? _toast_type : \"default\";\n var dismissible = toast.dismissible !== false;\n var title = typeof toast.title === \"function\" ? toast.title() : toast.title;\n var description = typeof toast.description === \"function\" ? toast.description() : toast.description;\n return /* @__PURE__ */ _jsxs(XStack, {\n alignItems: \"flex-start\",\n gap: \"3\",\n children: [\n /* @__PURE__ */ _jsx(ToastIcon, {}),\n /* @__PURE__ */ _jsxs(YStack, {\n flex: 1,\n gap: \"1\",\n children: [\n title && /* @__PURE__ */ _jsx(ToastTitle, {\n children: title\n }),\n description && /* @__PURE__ */ _jsx(ToastDescription, {\n children: description\n }),\n (toast.action || toast.cancel) && /* @__PURE__ */ _jsxs(XStack, {\n gap: \"2\",\n marginTop: \"2\",\n children: [\n toast.cancel && /* @__PURE__ */ _jsx(ToastActionFrame, {\n onPress: function(e) {\n var _toast_cancel_onClick, _toast_cancel;\n (_toast_cancel = toast.cancel) === null || _toast_cancel === void 0 ? void 0 : (_toast_cancel_onClick = _toast_cancel.onClick) === null || _toast_cancel_onClick === void 0 ? void 0 : _toast_cancel_onClick.call(_toast_cancel, e);\n handleClose();\n },\n children: /* @__PURE__ */ _jsx(SizableText, {\n size: \"2\",\n children: toast.cancel.label\n })\n }),\n toast.action && /* @__PURE__ */ _jsx(ToastActionFrame, {\n onPress: function(e) {\n var _toast_action_onClick, _toast_action;\n (_toast_action = toast.action) === null || _toast_action === void 0 ? void 0 : (_toast_action_onClick = _toast_action.onClick) === null || _toast_action_onClick === void 0 ? void 0 : _toast_action_onClick.call(_toast_action, e);\n if (!e.defaultPrevented) {\n handleClose();\n }\n },\n children: /* @__PURE__ */ _jsx(SizableText, {\n size: \"2\",\n children: toast.action.label\n })\n })\n ]\n })\n ]\n }),\n ctx.closeButton && dismissible && /* @__PURE__ */ _jsx(ToastClose, {})\n ]\n });\n}\nfunction DragWrapper(param) {\n var { animatedStyle, gestureHandlers, gesture, AnimatedView, dragRef, children } = param;\n if (isWeb) {\n return /* @__PURE__ */ _jsx(\"div\", {\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 if (gesture) {\n var gh = getGestureHandler();\n var GestureDetector = gh.state.GestureDetector;\n if (GestureDetector) {\n return /* @__PURE__ */ _jsx(GestureDetector, {\n gesture,\n children: /* @__PURE__ */ _jsx(View, {\n style: {\n flex: 1\n },\n ...{\n collapsable: false\n },\n children: /* @__PURE__ */ _jsx(AnimatedView, {\n style: [\n {\n flex: 1\n },\n animatedStyle\n ],\n children\n })\n })\n });\n }\n }\n return /* @__PURE__ */ _jsx(AnimatedView, {\n style: [\n {\n flex: 1\n },\n animatedStyle\n ],\n ...gestureHandlers,\n children\n });\n}\nvar ToastItemInner = createStyledHOC(ToastItemFrame, function ToastItem(props, ref) {\n var { toast, index, children, ...rest } = props;\n var ctx = useToastContext(\"Toast.Item\");\n var [mounted, setMounted] = React.useState(false);\n var [removed, setRemoved] = React.useState(false);\n var [swipeOut, setSwipeOut] = React.useState(false);\n var [offsetBeforeRemove, setOffsetBeforeRemove] = React.useState(0);\n var swipeExitYRef = React.useRef(null);\n var closeTimerRef = React.useRef(null);\n var closeTimerStartRef = React.useRef(0);\n var lastPauseTimeRef = React.useRef(0);\n var _toast_duration;\n var remainingTimeRef = React.useRef((_toast_duration = toast.duration) !== null && _toast_duration !== void 0 ? _toast_duration : ctx.duration);\n var isFront = index === 0;\n var isVisible = index < ctx.visibleToasts;\n var _toast_type;\n var toastType = (_toast_type = toast.type) !== null && _toast_type !== void 0 ? _toast_type : \"default\";\n var dismissible = toast.dismissible !== false;\n var _toast_duration1;\n var duration = (_toast_duration1 = toast.duration) !== null && _toast_duration1 !== void 0 ? _toast_duration1 : ctx.duration;\n var [yPosition] = ctx.position.split(\"-\");\n var isTop = yPosition === \"top\";\n var expandedOffset = isWeb ? (function() {\n var totalHeight = 0;\n var activeCount = 0;\n for (var i = 0; i < index; i++) {\n var _ctx_toasts_i;\n var toastId = (_ctx_toasts_i = ctx.toasts[i]) === null || _ctx_toasts_i === void 0 ? void 0 : _ctx_toasts_i.id;\n if (toastId == null) continue;\n var h2 = ctx.heights[toastId];\n if (h2 === 0) continue;\n totalHeight += h2 !== null && h2 !== void 0 ? h2 : ctx.toastHeight;\n activeCount++;\n }\n return totalHeight + activeCount * ctx.gap;\n })() : index * (ctx.toastHeight + ctx.gap);\n var expandedOffsetRef = React.useRef(expandedOffset);\n expandedOffsetRef.current = expandedOffset;\n var isExpandedRef = React.useRef(ctx.expanded);\n isExpandedRef.current = ctx.expanded;\n var startTimer = React.useCallback(function() {\n if (duration === Number.POSITIVE_INFINITY || toastType === \"loading\") return;\n closeTimerStartRef.current = Date.now();\n closeTimerRef.current = setTimeout(function() {\n var _toast_onAutoClose;\n (_toast_onAutoClose = toast.onAutoClose) === null || _toast_onAutoClose === void 0 ? void 0 : _toast_onAutoClose.call(toast, toast);\n setRemoved(true);\n setTimeout(function() {\n return ctx.removeToast(toast);\n }, TIME_BEFORE_UNMOUNT);\n }, remainingTimeRef.current);\n }, [\n duration,\n toastType,\n toast,\n ctx.removeToast\n ]);\n var pauseTimer = useEvent(function() {\n if (closeTimerRef.current) {\n clearTimeout(closeTimerRef.current);\n }\n if (lastPauseTimeRef.current < closeTimerStartRef.current) {\n var elapsed = Date.now() - closeTimerStartRef.current;\n remainingTimeRef.current = Math.max(0, remainingTimeRef.current - elapsed);\n }\n lastPauseTimeRef.current = Date.now();\n });\n var resumeTimer = useEvent(function() {\n if (ctx.expanded || ctx.interacting) return;\n remainingTimeRef.current = duration;\n startTimer();\n });\n React.useEffect(function() {\n setMounted(true);\n }, []);\n React.useEffect(function() {\n if (!toast.delete) {\n setRemoved(false);\n return;\n }\n setRemoved(true);\n if (isExpandedRef.current) {\n setOffsetBeforeRemove(expandedOffsetRef.current);\n }\n var timer = setTimeout(function() {\n return ctx.removeToast(toast);\n }, TIME_BEFORE_UNMOUNT);\n return function() {\n return clearTimeout(timer);\n };\n }, [\n toast.delete,\n toast,\n ctx.removeToast\n ]);\n React.useEffect(function() {\n if (ctx.expanded || ctx.interacting) {\n pauseTimer();\n } else {\n startTimer();\n }\n return function() {\n if (closeTimerRef.current) clearTimeout(closeTimerRef.current);\n };\n }, [\n ctx.expanded,\n ctx.interacting,\n startTimer\n ]);\n React.useEffect(function() {\n remainingTimeRef.current = duration;\n }, [\n duration\n ]);\n var { setDragOffset, springBack, animateOut, animatedStyle, AnimatedView, dragRef } = useToastAnimations({\n reducedMotion: ctx.reducedMotion\n });\n var { 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: function(exitDirection, velocity) {\n var _toast_onDismiss;\n ctx.triggerDismissCooldown();\n setSwipeOut(true);\n (_toast_onDismiss = toast.onDismiss) === null || _toast_onDismiss === void 0 ? void 0 : _toast_onDismiss.call(toast, 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: function() {\n springBack(function() {\n resumeTimer();\n });\n }\n });\n var handleLayout = React.useCallback(function(event) {\n if (removed) return;\n if ((!isWeb || !ctx.expanded) && index !== 0) return;\n var { height } = event.nativeEvent.layout;\n ctx.setToastHeight(toast.id, height);\n }, [\n toast.id,\n ctx.setToastHeight,\n index,\n ctx.expanded,\n removed\n ]);\n React.useEffect(function() {\n return function() {\n ctx.removeToastHeight(toast.id);\n };\n }, [\n toast.id,\n ctx.removeToastHeight\n ]);\n var handleClose = React.useCallback(function() {\n var _toast_onDismiss;\n if (!dismissible) return;\n ctx.triggerDismissCooldown();\n (_toast_onDismiss = toast.onDismiss) === null || _toast_onDismiss === void 0 ? void 0 : _toast_onDismiss.call(toast, toast);\n setRemoved(true);\n if (isExpandedRef.current) {\n setOffsetBeforeRemove(expandedOffsetRef.current);\n }\n setTimeout(function() {\n return ctx.removeToast(toast);\n }, TIME_BEFORE_UNMOUNT);\n }, [\n dismissible,\n toast,\n ctx.removeToast,\n ctx.triggerDismissCooldown\n ]);\n var itemContextValue = React.useMemo(function() {\n return {\n toast,\n handleClose\n };\n }, [\n toast,\n handleClose\n ]);\n var frontToastHeight = -1;\n var _iteratorNormalCompletion = true, _didIteratorError = false, _iteratorError = void 0;\n try {\n for (var _iterator = ctx.toasts[Symbol.iterator](), _step; !(_iteratorNormalCompletion = (_step = _iterator.next()).done); _iteratorNormalCompletion = true) {\n var t = _step.value;\n var h = ctx.heights[t.id];\n if (h != null && h > 0) {\n frontToastHeight = h;\n break;\n }\n }\n } catch (err) {\n _didIteratorError = true;\n _iteratorError = err;\n } finally {\n try {\n if (!_iteratorNormalCompletion && _iterator.return != null) {\n _iterator.return();\n }\n } finally {\n if (_didIteratorError) {\n throw _iteratorError;\n }\n }\n }\n var stackScale = !ctx.expanded && !isFront ? 1 - index * 0.05 : 1;\n var activeExpandedOffset = removed ? offsetBeforeRemove : expandedOffset;\n var stackY = ctx.expanded ? isTop ? activeExpandedOffset : -activeExpandedOffset : isFront ? 0 : isTop ? ctx.gap * index : -ctx.gap * index;\n var computedOpacity = removed && !swipeOut ? 0 : index >= ctx.visibleToasts ? 0 : 1;\n var computedZIndex = removed ? 0 : ctx.visibleToasts - index + 1;\n var collapsedHeight = !isFront && frontToastHeight > 0 ? frontToastHeight : void 0;\n var computedHeight = ctx.expanded ? isWeb ? ctx.heights[toast.id] || void 0 : void 0 : collapsedHeight;\n var computedPointerEvents = index >= ctx.visibleToasts ? \"none\" : \"auto\";\n var gapFillerHeight = ctx.expanded ? ctx.gap + 1 : 0;\n var 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 var _swipeExitYRef_current;\n return /* @__PURE__ */ _jsx(ToastPositionWrapper, {\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 = swipeExitYRef.current) !== null && _swipeExitYRef_current !== void 0 ? _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: {\n transformOrigin: isTop ? \"top center\" : \"bottom center\"\n }\n },\n children: /* @__PURE__ */ _jsx(DragWrapper, {\n animatedStyle,\n gestureHandlers,\n gesture,\n AnimatedView,\n dragRef,\n children: /* @__PURE__ */ _jsxs(ToastItemFrame, {\n role: \"status\",\n \"aria-live\": \"polite\",\n \"aria-atomic\": true,\n tabIndex: 0,\n onLayout: handleLayout,\n ...isWeb && {\n onKeyDown: function(event) {\n if (event.key === \"Escape\" && dismissible) {\n var current = event.currentTarget;\n var container = current.closest(\"[aria-label]\");\n if (container) {\n var focusables = container.querySelectorAll('[tabindex=\"0\"]');\n var arr = Array.from(focusables);\n var idx = arr.indexOf(current);\n var next = arr[idx + 1] || arr[idx - 1];\n next === null || next === void 0 ? void 0 : next.focus();\n }\n handleClose();\n }\n }\n },\n // native stacks in a column, so a card sized to the front toast only\n // shrinks to that height when it fills it (web stretches in its row)\n ...!isWeb && computedHeight != null && {\n flex: 1\n },\n ...rest,\n children: [\n /* gap filler to prevent hover flicker */\n ctx.expanded && gapFillerHeight > 0 && /* @__PURE__ */ _jsx(View, {\n position: \"absolute\",\n left: 0,\n right: 0,\n height: gapFillerHeight,\n pointerEvents: \"auto\",\n ...isTop ? {\n top: \"100%\"\n } : {\n bottom: \"100%\"\n }\n }),\n /* @__PURE__ */ _jsx(ToastItemContext.Provider, {\n value: itemContextValue,\n children\n })\n ]\n })\n })\n });\n});\nvar ToastTitle = styled(SizableText, {\n displayName: \"ToastTitle\"\n});\nvar ToastDescription = styled(SizableText, {\n displayName: \"ToastDescription\"\n});\nvar ToastClose = createStyledHOC(ToastCloseFrame, function ToastClose2(props, ref) {\n var _ctx_icons;\n var handleClose;\n try {\n var itemCtx = useToastItemContext();\n handleClose = itemCtx.handleClose;\n } catch (e) {\n }\n var ctx = useToastContext(\"Toast.Close\");\n var _props_children, _ref;\n return /* @__PURE__ */ _jsx(ToastCloseFrame, {\n ref,\n \"aria-label\": \"Close toast\",\n onPress: handleClose,\n ...props,\n children: (_ref = (_props_children = props.children) !== null && _props_children !== void 0 ? _props_children : (_ctx_icons = ctx.icons) === null || _ctx_icons === void 0 ? void 0 : _ctx_icons.close) !== null && _ref !== void 0 ? _ref : /* @__PURE__ */ _jsx(DefaultCloseIcon, {})\n });\n});\nvar ToastAction = createStyledHOC(ToastActionFrame, function ToastAction2(props, ref) {\n return /* @__PURE__ */ _jsx(ToastActionFrame, {\n ref,\n ...props\n });\n});\nfunction ToastIcon(props) {\n var _ctx_icons;\n var ctx = useToastContext(\"Toast.Icon\");\n var toast;\n try {\n var itemCtx = useToastItemContext();\n toast = itemCtx.toast;\n } catch (e) {\n return null;\n }\n if (!toast) return null;\n if (toast.icon !== void 0) {\n return /* @__PURE__ */ _jsx(View, {\n flexShrink: 0,\n marginTop: \"0-5\",\n children: toast.icon\n });\n }\n var _toast_type;\n var toastType = (_toast_type = toast.type) !== null && _toast_type !== void 0 ? _toast_type : \"default\";\n var _ctx_icons_toastType;\n var icon = (_ctx_icons_toastType = (_ctx_icons = ctx.icons) === null || _ctx_icons === void 0 ? void 0 : _ctx_icons[toastType]) !== null && _ctx_icons_toastType !== void 0 ? _ctx_icons_toastType : null;\n if (!icon) return null;\n return /* @__PURE__ */ _jsx(View, {\n flexShrink: 0,\n marginTop: \"0-5\",\n children: icon\n });\n}\nfunction useToasts() {\n var 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\";\nvar 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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"}
|
|
@@ -26,8 +26,8 @@ const ToastCloseFrame = styled(XStack, {
|
|
|
26
26
|
alignItems: "center",
|
|
27
27
|
justifyContent: "center",
|
|
28
28
|
cursor: "pointer",
|
|
29
|
-
width:
|
|
30
|
-
height:
|
|
29
|
+
width: 24,
|
|
30
|
+
height: 24
|
|
31
31
|
});
|
|
32
32
|
const ToastActionFrame = styled(XStack, {
|
|
33
33
|
displayName: "ToastAction",
|
|
@@ -38,7 +38,8 @@ const ToastActionFrame = styled(XStack, {
|
|
|
38
38
|
height: 24
|
|
39
39
|
});
|
|
40
40
|
const DefaultCloseIcon = () => /* @__PURE__ */ jsx(SizableText, {
|
|
41
|
-
size: "
|
|
41
|
+
size: "5",
|
|
42
|
+
lineHeight: "1",
|
|
42
43
|
children: "✕"
|
|
43
44
|
});
|
|
44
45
|
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ToastItemFrame.js","names":[],"sources":["esm/ToastItemFrame.js"],"sourcesContent":["import { styled } from \"@tamagui/core\";\nimport { XStack, YStack } from \"@tamagui/stacks\";\nimport { SizableText } from \"@tamagui/text\";\nimport { jsx } from \"react/jsx-runtime\";\nconst ToastPositionWrapper = styled(YStack, {\n displayName: \"ToastPositionWrapper\",\n pointerEvents: \"auto\",\n position: \"absolute\",\n left: 0,\n right: 0,\n opacity: 1,\n scale: 1,\n y: 0,\n x: 0\n});\nconst ToastItemFrame = styled(YStack, {\n displayName: \"ToastItem\",\n userSelect: \"none\",\n cursor: \"default\",\n tabIndex: 0\n});\nconst ToastCloseFrame = styled(XStack, {\n displayName: \"ToastClose\",\n render: \"button\",\n alignItems: \"center\",\n justifyContent: \"center\",\n cursor: \"pointer\",\n width:
|
|
1
|
+
{"version":3,"file":"ToastItemFrame.js","names":[],"sources":["esm/ToastItemFrame.js"],"sourcesContent":["import { styled } from \"@tamagui/core\";\nimport { XStack, YStack } from \"@tamagui/stacks\";\nimport { SizableText } from \"@tamagui/text\";\nimport { jsx } from \"react/jsx-runtime\";\nconst ToastPositionWrapper = styled(YStack, {\n displayName: \"ToastPositionWrapper\",\n pointerEvents: \"auto\",\n position: \"absolute\",\n left: 0,\n right: 0,\n opacity: 1,\n scale: 1,\n y: 0,\n x: 0\n});\nconst ToastItemFrame = styled(YStack, {\n displayName: \"ToastItem\",\n userSelect: \"none\",\n cursor: \"default\",\n tabIndex: 0\n});\nconst ToastCloseFrame = styled(XStack, {\n displayName: \"ToastClose\",\n render: \"button\",\n alignItems: \"center\",\n justifyContent: \"center\",\n cursor: \"pointer\",\n width: 24,\n height: 24\n});\nconst ToastActionFrame = styled(XStack, {\n displayName: \"ToastAction\",\n render: \"button\",\n alignItems: \"center\",\n justifyContent: \"center\",\n cursor: \"pointer\",\n height: 24\n});\nconst DefaultCloseIcon = () => /* @__PURE__ */ jsx(SizableText, { size: \"5\", lineHeight: \"1\", children: \"\\u2715\" });\nexport {\n DefaultCloseIcon,\n ToastActionFrame,\n ToastCloseFrame,\n ToastItemFrame,\n ToastPositionWrapper\n};\n//# sourceMappingURL=ToastItemFrame.js.map\n"],"mappings":";;;;;;AAIA,MAAM,uBAAuB,OAAO,QAAQ;CAC1C,aAAa;CACb,eAAe;CACf,UAAU;CACV,MAAM;CACN,OAAO;CACP,SAAS;CACT,OAAO;CACP,GAAG;CACH,GAAG;AACL,CAAC;AACD,MAAM,iBAAiB,OAAO,QAAQ;CACpC,aAAa;CACb,YAAY;CACZ,QAAQ;CACR,UAAU;AACZ,CAAC;AACD,MAAM,kBAAkB,OAAO,QAAQ;CACrC,aAAa;CACb,QAAQ;CACR,YAAY;CACZ,gBAAgB;CAChB,QAAQ;CACR,OAAO;CACP,QAAQ;AACV,CAAC;AACD,MAAM,mBAAmB,OAAO,QAAQ;CACtC,aAAa;CACb,QAAQ;CACR,YAAY;CACZ,gBAAgB;CAChB,QAAQ;CACR,QAAQ;AACV,CAAC;AACD,MAAM,yBAAyC,oBAAI,aAAa;CAAE,MAAM;CAAK,YAAY;CAAK,UAAU;AAAS,CAAC"}
|
|
@@ -26,8 +26,8 @@ var ToastCloseFrame = styled(XStack, {
|
|
|
26
26
|
alignItems: "center",
|
|
27
27
|
justifyContent: "center",
|
|
28
28
|
cursor: "pointer",
|
|
29
|
-
width:
|
|
30
|
-
height:
|
|
29
|
+
width: 24,
|
|
30
|
+
height: 24
|
|
31
31
|
});
|
|
32
32
|
var ToastActionFrame = styled(XStack, {
|
|
33
33
|
displayName: "ToastAction",
|
|
@@ -39,7 +39,8 @@ var ToastActionFrame = styled(XStack, {
|
|
|
39
39
|
});
|
|
40
40
|
var DefaultCloseIcon = function() {
|
|
41
41
|
return /* @__PURE__ */ jsx(SizableText, {
|
|
42
|
-
size: "
|
|
42
|
+
size: "5",
|
|
43
|
+
lineHeight: "1",
|
|
43
44
|
children: "✕"
|
|
44
45
|
});
|
|
45
46
|
};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ToastItemFrame.native.js","names":[],"sources":["esm/ToastItemFrame.native.js"],"sourcesContent":["import { jsx as _jsx } from \"react/jsx-runtime\";\nimport { styled } from \"@tamagui/core\";\nimport { XStack, YStack } from \"@tamagui/stacks\";\nimport { SizableText } from \"@tamagui/text\";\nvar ToastPositionWrapper = styled(YStack, {\n displayName: \"ToastPositionWrapper\",\n pointerEvents: \"auto\",\n position: \"absolute\",\n left: 0,\n right: 0,\n opacity: 1,\n scale: 1,\n y: 0,\n x: 0\n});\nvar ToastItemFrame = styled(YStack, {\n displayName: \"ToastItem\",\n userSelect: \"none\",\n cursor: \"default\",\n tabIndex: 0\n});\nvar ToastCloseFrame = styled(XStack, {\n displayName: \"ToastClose\",\n render: \"button\",\n alignItems: \"center\",\n justifyContent: \"center\",\n cursor: \"pointer\",\n width:
|
|
1
|
+
{"version":3,"file":"ToastItemFrame.native.js","names":[],"sources":["esm/ToastItemFrame.native.js"],"sourcesContent":["import { jsx as _jsx } from \"react/jsx-runtime\";\nimport { styled } from \"@tamagui/core\";\nimport { XStack, YStack } from \"@tamagui/stacks\";\nimport { SizableText } from \"@tamagui/text\";\nvar ToastPositionWrapper = styled(YStack, {\n displayName: \"ToastPositionWrapper\",\n pointerEvents: \"auto\",\n position: \"absolute\",\n left: 0,\n right: 0,\n opacity: 1,\n scale: 1,\n y: 0,\n x: 0\n});\nvar ToastItemFrame = styled(YStack, {\n displayName: \"ToastItem\",\n userSelect: \"none\",\n cursor: \"default\",\n tabIndex: 0\n});\nvar ToastCloseFrame = styled(XStack, {\n displayName: \"ToastClose\",\n render: \"button\",\n alignItems: \"center\",\n justifyContent: \"center\",\n cursor: \"pointer\",\n width: 24,\n height: 24\n});\nvar ToastActionFrame = styled(XStack, {\n displayName: \"ToastAction\",\n render: \"button\",\n alignItems: \"center\",\n justifyContent: \"center\",\n cursor: \"pointer\",\n height: 24\n});\nvar DefaultCloseIcon = function() {\n return /* @__PURE__ */ _jsx(SizableText, {\n size: \"5\",\n lineHeight: \"1\",\n children: \"\\u2715\"\n });\n};\nexport {\n DefaultCloseIcon,\n ToastActionFrame,\n ToastCloseFrame,\n ToastItemFrame,\n ToastPositionWrapper\n};\n//# sourceMappingURL=ToastItemFrame.js.map\n"],"mappings":";;;;;;AAIA,IAAI,uBAAuB,OAAO,QAAQ;CACxC,aAAa;CACb,eAAe;CACf,UAAU;CACV,MAAM;CACN,OAAO;CACP,SAAS;CACT,OAAO;CACP,GAAG;CACH,GAAG;AACL,CAAC;AACD,IAAI,iBAAiB,OAAO,QAAQ;CAClC,aAAa;CACb,YAAY;CACZ,QAAQ;CACR,UAAU;AACZ,CAAC;AACD,IAAI,kBAAkB,OAAO,QAAQ;CACnC,aAAa;CACb,QAAQ;CACR,YAAY;CACZ,gBAAgB;CAChB,QAAQ;CACR,OAAO;CACP,QAAQ;AACV,CAAC;AACD,IAAI,mBAAmB,OAAO,QAAQ;CACpC,aAAa;CACb,QAAQ;CACR,YAAY;CACZ,gBAAgB;CAChB,QAAQ;CACR,QAAQ;AACV,CAAC;AACD,IAAI,mBAAmB,WAAW;CAChC,OAAuB,oBAAK,aAAa;EACvC,MAAM;EACN,YAAY;EACZ,UAAU;CACZ,CAAC;AACH"}
|
package/dist/esm/ToastState.mjs
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ToastState.js","names":[],"sources":["esm/ToastState.js"],"sourcesContent":["let toastsCounter = 1;\nclass Observer {\n subscribers = [];\n toasts = [];\n dismissedToasts = /* @__PURE__ */ new Set();\n /**\n * Subscribe to toast state changes.\n * Returns an unsubscribe function.\n */\n subscribe = (subscriber) => {\n this.subscribers.push(subscriber);\n return () => {\n const index = this.subscribers.indexOf(subscriber);\n if (index > -1) {\n this.subscribers.splice(index, 1);\n }\n };\n };\n /**\n * Publish a toast to all subscribers\n */\n publish = (data) => {\n this.subscribers.forEach((subscriber) => subscriber(data));\n };\n /**\n * Add a new toast to the internal array and publish to subscribers\n */\n addToast = (data) => {\n this.publish(data);\n this.toasts = [...this.toasts, data];\n };\n /**\n * Create or update a toast\n */\n create = (data) => {\n const { title, ...rest } = data;\n const id = typeof data?.id === \"number\" || typeof data?.id === \"string\" && data.id.length > 0 ? data.id : toastsCounter++;\n const alreadyExists = this.toasts.find((toast2) => toast2.id === id);\n const dismissible = data.dismissible ?? true;\n if (this.dismissedToasts.has(id)) {\n this.dismissedToasts.delete(id);\n }\n if (alreadyExists) {\n this.toasts = this.toasts.map((toast2) => {\n if (toast2.id === id) {\n this.publish({ ...toast2, ...data, id, title, dismissible });\n return { ...toast2, ...data, id, title, dismissible };\n }\n return toast2;\n });\n } else {\n this.addToast({ title, ...rest, dismissible, id });\n }\n return id;\n };\n /**\n * Dismiss a toast by id, or all toasts if no id provided\n */\n dismiss = (id) => {\n if (id !== void 0) {\n this.dismissedToasts.add(id);\n requestAnimationFrame(() => {\n this.subscribers.forEach((subscriber) => subscriber({ id, dismiss: true }));\n });\n } else {\n this.toasts.forEach((toast2) => {\n this.subscribers.forEach(\n (subscriber) => subscriber({ id: toast2.id, dismiss: true })\n );\n });\n }\n return id;\n };\n /**\n * Show a basic toast message\n */\n message = (title, data) => {\n return this.create({ ...data, title, type: \"default\" });\n };\n /**\n * Show a success toast\n */\n success = (title, data) => {\n return this.create({ ...data, title, type: \"success\" });\n };\n /**\n * Show an error toast\n */\n error = (title, data) => {\n return this.create({ ...data, title, type: \"error\" });\n };\n /**\n * Show a warning toast\n */\n warning = (title, data) => {\n return this.create({ ...data, title, type: \"warning\" });\n };\n /**\n * Show an info toast\n */\n info = (title, data) => {\n return this.create({ ...data, title, type: \"info\" });\n };\n /**\n * Show a loading toast\n */\n loading = (title, data) => {\n return this.create({ ...data, title, type: \"loading\" });\n };\n /**\n * Show a toast for a promise, automatically transitioning through\n * loading -> success/error states\n */\n promise = (promise, data) => {\n if (!data) {\n return;\n }\n let id = void 0;\n if (data.loading !== void 0) {\n id = this.create({\n promise,\n type: \"loading\",\n title: data.loading,\n description: typeof data.description !== \"function\" ? data.description : void 0,\n // loading toasts shouldn't auto-dismiss\n duration: Number.POSITIVE_INFINITY\n });\n }\n const p = Promise.resolve(promise instanceof Function ? promise() : promise);\n let shouldDismiss = id !== void 0;\n let result;\n const originalPromise = p.then(async (response) => {\n result = [\"resolve\", response];\n if (isHttpResponse(response) && !response.ok) {\n shouldDismiss = false;\n const errorMsg = typeof data.error === \"function\" ? await data.error(`HTTP error! status: ${response.status}`) : data.error;\n const description = typeof data.description === \"function\" ? await data.description(`HTTP error! status: ${response.status}`) : data.description;\n this.create({ id, type: \"error\", title: errorMsg, description });\n } else if (data.success !== void 0) {\n shouldDismiss = false;\n const successMsg = typeof data.success === \"function\" ? await data.success(response) : data.success;\n const description = typeof data.description === \"function\" ? await data.description(response) : data.description;\n this.create({ id, type: \"success\", title: successMsg, description });\n }\n }).catch(async (error) => {\n result = [\"reject\", error];\n if (data.error !== void 0) {\n shouldDismiss = false;\n const errorMsg = typeof data.error === \"function\" ? await data.error(error) : data.error;\n const description = typeof data.description === \"function\" ? await data.description(error) : data.description;\n this.create({ id, type: \"error\", title: errorMsg, description });\n }\n }).finally(() => {\n if (shouldDismiss) {\n this.dismiss(id);\n id = void 0;\n }\n data.finally?.();\n });\n const unwrap = () => new Promise(\n (resolve, reject) => originalPromise.then(() => result[0] === \"reject\" ? reject(result[1]) : resolve(result[1])).catch(reject)\n );\n if (typeof id !== \"string\" && typeof id !== \"number\") {\n return { unwrap };\n } else {\n return Object.assign(id, { unwrap });\n }\n };\n /**\n * Show a custom JSX toast\n */\n custom = (jsx, data) => {\n const id = data?.id ?? toastsCounter++;\n this.create({ jsx: jsx(id), ...data, id });\n return id;\n };\n /**\n * Get all active (non-dismissed) toasts\n */\n getActiveToasts = () => {\n return this.toasts.filter((toast2) => !this.dismissedToasts.has(toast2.id));\n };\n /**\n * Get full toast history\n */\n getHistory = () => {\n return this.toasts;\n };\n}\nfunction isHttpResponse(data) {\n return data && typeof data === \"object\" && \"ok\" in data && typeof data.ok === \"boolean\" && \"status\" in data && typeof data.status === \"number\";\n}\nconst ToastState = new Observer();\nconst toastFunction = (title, data) => {\n return ToastState.create({ ...data, title });\n};\nconst getHistory = () => ToastState.getHistory();\nconst getToasts = () => ToastState.getActiveToasts();\nconst toast = Object.assign(toastFunction, {\n success: ToastState.success,\n error: ToastState.error,\n warning: ToastState.warning,\n info: ToastState.info,\n loading: ToastState.loading,\n promise: ToastState.promise,\n custom: ToastState.custom,\n dismiss: ToastState.dismiss,\n message: ToastState.message,\n getHistory,\n getToasts\n});\nexport {\n ToastState,\n toast\n};\n//# sourceMappingURL=ToastState.js.map\n"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"ToastState.js","names":[],"sources":["esm/ToastState.js"],"sourcesContent":["let toastsCounter = 1;\nclass Observer {\n subscribers = [];\n toasts = [];\n dismissedToasts = /* @__PURE__ */ new Set();\n /**\n * Subscribe to toast state changes.\n * Returns an unsubscribe function.\n */\n subscribe = (subscriber) => {\n this.subscribers.push(subscriber);\n return () => {\n const index = this.subscribers.indexOf(subscriber);\n if (index > -1) {\n this.subscribers.splice(index, 1);\n }\n };\n };\n /**\n * Publish a toast to all subscribers\n */\n publish = (data) => {\n this.subscribers.forEach((subscriber) => subscriber(data));\n };\n /**\n * Add a new toast to the internal array and publish to subscribers\n */\n addToast = (data) => {\n this.publish(data);\n this.toasts = [...this.toasts, data];\n };\n /**\n * Create or update a toast\n */\n create = (data) => {\n const { title, ...rest } = data;\n const id = typeof data?.id === \"number\" || typeof data?.id === \"string\" && data.id.length > 0 ? data.id : toastsCounter++;\n const alreadyExists = this.toasts.find((toast2) => toast2.id === id);\n const dismissible = data.dismissible ?? true;\n if (this.dismissedToasts.has(id)) {\n this.dismissedToasts.delete(id);\n }\n if (alreadyExists) {\n this.toasts = this.toasts.map((toast2) => {\n if (toast2.id === id) {\n this.publish({ ...toast2, ...data, id, title, dismissible });\n return { ...toast2, ...data, id, title, dismissible };\n }\n return toast2;\n });\n } else {\n this.addToast({ title, ...rest, dismissible, id });\n }\n return id;\n };\n /**\n * Dismiss a toast by id, or all toasts if no id provided\n */\n dismiss = (id) => {\n if (id !== void 0) {\n this.dismissedToasts.add(id);\n requestAnimationFrame(() => {\n if (!this.dismissedToasts.has(id)) return;\n this.subscribers.forEach((subscriber) => subscriber({ id, dismiss: true }));\n });\n } else {\n this.toasts.forEach((toast2) => {\n this.subscribers.forEach(\n (subscriber) => subscriber({ id: toast2.id, dismiss: true })\n );\n });\n }\n return id;\n };\n /**\n * Show a basic toast message\n */\n message = (title, data) => {\n return this.create({ ...data, title, type: \"default\" });\n };\n /**\n * Show a success toast\n */\n success = (title, data) => {\n return this.create({ ...data, title, type: \"success\" });\n };\n /**\n * Show an error toast\n */\n error = (title, data) => {\n return this.create({ ...data, title, type: \"error\" });\n };\n /**\n * Show a warning toast\n */\n warning = (title, data) => {\n return this.create({ ...data, title, type: \"warning\" });\n };\n /**\n * Show an info toast\n */\n info = (title, data) => {\n return this.create({ ...data, title, type: \"info\" });\n };\n /**\n * Show a loading toast\n */\n loading = (title, data) => {\n return this.create({ ...data, title, type: \"loading\" });\n };\n /**\n * Show a toast for a promise, automatically transitioning through\n * loading -> success/error states\n */\n promise = (promise, data) => {\n if (!data) {\n return;\n }\n let id = void 0;\n if (data.loading !== void 0) {\n id = this.create({\n promise,\n type: \"loading\",\n title: data.loading,\n description: typeof data.description !== \"function\" ? data.description : void 0,\n // loading toasts shouldn't auto-dismiss\n duration: Number.POSITIVE_INFINITY\n });\n }\n const p = Promise.resolve(promise instanceof Function ? promise() : promise);\n let shouldDismiss = id !== void 0;\n let result;\n const originalPromise = p.then(async (response) => {\n result = [\"resolve\", response];\n if (isHttpResponse(response) && !response.ok) {\n shouldDismiss = false;\n const errorMsg = typeof data.error === \"function\" ? await data.error(`HTTP error! status: ${response.status}`) : data.error;\n const description = typeof data.description === \"function\" ? await data.description(`HTTP error! status: ${response.status}`) : data.description;\n this.create({ id, type: \"error\", title: errorMsg, description });\n } else if (data.success !== void 0) {\n shouldDismiss = false;\n const successMsg = typeof data.success === \"function\" ? await data.success(response) : data.success;\n const description = typeof data.description === \"function\" ? await data.description(response) : data.description;\n this.create({ id, type: \"success\", title: successMsg, description });\n }\n }).catch(async (error) => {\n result = [\"reject\", error];\n if (data.error !== void 0) {\n shouldDismiss = false;\n const errorMsg = typeof data.error === \"function\" ? await data.error(error) : data.error;\n const description = typeof data.description === \"function\" ? await data.description(error) : data.description;\n this.create({ id, type: \"error\", title: errorMsg, description });\n }\n }).finally(() => {\n if (shouldDismiss) {\n this.dismiss(id);\n id = void 0;\n }\n data.finally?.();\n });\n const unwrap = () => new Promise(\n (resolve, reject) => originalPromise.then(() => result[0] === \"reject\" ? reject(result[1]) : resolve(result[1])).catch(reject)\n );\n if (typeof id !== \"string\" && typeof id !== \"number\") {\n return { unwrap };\n } else {\n return Object.assign(id, { unwrap });\n }\n };\n /**\n * Show a custom JSX toast\n */\n custom = (jsx, data) => {\n const id = data?.id ?? toastsCounter++;\n this.create({ jsx: jsx(id), ...data, id });\n return id;\n };\n /**\n * Get all active (non-dismissed) toasts\n */\n getActiveToasts = () => {\n return this.toasts.filter((toast2) => !this.dismissedToasts.has(toast2.id));\n };\n /**\n * Get full toast history\n */\n getHistory = () => {\n return this.toasts;\n };\n}\nfunction isHttpResponse(data) {\n return data && typeof data === \"object\" && \"ok\" in data && typeof data.ok === \"boolean\" && \"status\" in data && typeof data.status === \"number\";\n}\nconst ToastState = new Observer();\nconst toastFunction = (title, data) => {\n return ToastState.create({ ...data, title });\n};\nconst getHistory = () => ToastState.getHistory();\nconst getToasts = () => ToastState.getActiveToasts();\nconst toast = Object.assign(toastFunction, {\n success: ToastState.success,\n error: ToastState.error,\n warning: ToastState.warning,\n info: ToastState.info,\n loading: ToastState.loading,\n promise: ToastState.promise,\n custom: ToastState.custom,\n dismiss: ToastState.dismiss,\n message: ToastState.message,\n getHistory,\n getToasts\n});\nexport {\n ToastState,\n toast\n};\n//# sourceMappingURL=ToastState.js.map\n"],"mappings":"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"}
|
|
@@ -16,17 +16,6 @@ function _define_property(obj, key, value) {
|
|
|
16
16
|
}
|
|
17
17
|
return obj;
|
|
18
18
|
}
|
|
19
|
-
function _instanceof(left, right) {
|
|
20
|
-
if (right != null && typeof Symbol !== "undefined" && right[Symbol.hasInstance]) {
|
|
21
|
-
return !!right[Symbol.hasInstance](left);
|
|
22
|
-
} else {
|
|
23
|
-
return left instanceof right;
|
|
24
|
-
}
|
|
25
|
-
}
|
|
26
|
-
function _type_of(obj) {
|
|
27
|
-
"@swc/helpers - typeof";
|
|
28
|
-
return obj && typeof Symbol !== "undefined" && obj.constructor === Symbol ? "symbol" : typeof obj;
|
|
29
|
-
}
|
|
30
19
|
var toastsCounter = 1;
|
|
31
20
|
var Observer = function Observer2() {
|
|
32
21
|
"use strict";
|
|
@@ -98,6 +87,7 @@ var Observer = function Observer2() {
|
|
|
98
87
|
if (id !== void 0) {
|
|
99
88
|
_this.dismissedToasts.add(id);
|
|
100
89
|
requestAnimationFrame(function() {
|
|
90
|
+
if (!_this.dismissedToasts.has(id)) return;
|
|
101
91
|
_this.subscribers.forEach(function(subscriber) {
|
|
102
92
|
return subscriber({
|
|
103
93
|
id,
|
|
@@ -173,7 +163,7 @@ var Observer = function Observer2() {
|
|
|
173
163
|
duration: Number.POSITIVE_INFINITY
|
|
174
164
|
});
|
|
175
165
|
}
|
|
176
|
-
var p = Promise.resolve(
|
|
166
|
+
var p = Promise.resolve(promise instanceof Function ? promise() : promise);
|
|
177
167
|
var shouldDismiss = id !== void 0;
|
|
178
168
|
var result;
|
|
179
169
|
var originalPromise = p.then(async function(response) {
|
|
@@ -253,7 +243,7 @@ var Observer = function Observer2() {
|
|
|
253
243
|
});
|
|
254
244
|
};
|
|
255
245
|
function isHttpResponse(data) {
|
|
256
|
-
return data &&
|
|
246
|
+
return data && typeof data === "object" && "ok" in data && typeof data.ok === "boolean" && "status" in data && typeof data.status === "number";
|
|
257
247
|
}
|
|
258
248
|
var ToastState = new Observer();
|
|
259
249
|
var toastFunction = function(title, data) {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ToastState.native.js","names":[],"sources":["esm/ToastState.native.js"],"sourcesContent":["function _class_call_check(instance, Constructor) {\n if (!(instance instanceof Constructor)) {\n throw new TypeError(\"Cannot call a class as a function\");\n }\n}\nfunction _define_property(obj, key, value) {\n if (key in obj) {\n Object.defineProperty(obj, key, {\n value,\n enumerable: true,\n configurable: true,\n writable: true\n });\n } else {\n obj[key] = value;\n }\n return obj;\n}\nfunction _instanceof(left, right) {\n if (right != null && typeof Symbol !== \"undefined\" && right[Symbol.hasInstance]) {\n return !!right[Symbol.hasInstance](left);\n } else {\n return left instanceof right;\n }\n}\nfunction _type_of(obj) {\n \"@swc/helpers - typeof\";\n return obj && typeof Symbol !== \"undefined\" && obj.constructor === Symbol ? \"symbol\" : typeof obj;\n}\nvar toastsCounter = 1;\nvar Observer = function Observer2() {\n \"use strict\";\n var _this = this;\n _class_call_check(this, Observer2);\n _define_property(this, \"subscribers\", []);\n _define_property(this, \"toasts\", []);\n _define_property(this, \"dismissedToasts\", /* @__PURE__ */ new Set());\n _define_property(this, \"subscribe\", function(subscriber) {\n _this.subscribers.push(subscriber);\n return function() {\n var index = _this.subscribers.indexOf(subscriber);\n if (index > -1) {\n _this.subscribers.splice(index, 1);\n }\n };\n });\n _define_property(this, \"publish\", function(data) {\n _this.subscribers.forEach(function(subscriber) {\n return subscriber(data);\n });\n });\n _define_property(this, \"addToast\", function(data) {\n _this.publish(data);\n _this.toasts = [\n ..._this.toasts,\n data\n ];\n });\n _define_property(this, \"create\", function(data) {\n var { title, ...rest } = data;\n var id = typeof (data === null || data === void 0 ? void 0 : data.id) === \"number\" || typeof (data === null || data === void 0 ? void 0 : data.id) === \"string\" && data.id.length > 0 ? data.id : toastsCounter++;\n var alreadyExists = _this.toasts.find(function(toast2) {\n return toast2.id === id;\n });\n var _data_dismissible;\n var dismissible = (_data_dismissible = data.dismissible) !== null && _data_dismissible !== void 0 ? _data_dismissible : true;\n if (_this.dismissedToasts.has(id)) {\n _this.dismissedToasts.delete(id);\n }\n if (alreadyExists) {\n _this.toasts = _this.toasts.map(function(toast2) {\n if (toast2.id === id) {\n _this.publish({\n ...toast2,\n ...data,\n id,\n title,\n dismissible\n });\n return {\n ...toast2,\n ...data,\n id,\n title,\n dismissible\n };\n }\n return toast2;\n });\n } else {\n _this.addToast({\n title,\n ...rest,\n dismissible,\n id\n });\n }\n return id;\n });\n _define_property(this, \"dismiss\", function(id) {\n if (id !== void 0) {\n _this.dismissedToasts.add(id);\n requestAnimationFrame(function() {\n _this.subscribers.forEach(function(subscriber) {\n return subscriber({\n id,\n dismiss: true\n });\n });\n });\n } else {\n _this.toasts.forEach(function(toast2) {\n _this.subscribers.forEach(function(subscriber) {\n return subscriber({\n id: toast2.id,\n dismiss: true\n });\n });\n });\n }\n return id;\n });\n _define_property(this, \"message\", function(title, data) {\n return _this.create({\n ...data,\n title,\n type: \"default\"\n });\n });\n _define_property(this, \"success\", function(title, data) {\n return _this.create({\n ...data,\n title,\n type: \"success\"\n });\n });\n _define_property(this, \"error\", function(title, data) {\n return _this.create({\n ...data,\n title,\n type: \"error\"\n });\n });\n _define_property(this, \"warning\", function(title, data) {\n return _this.create({\n ...data,\n title,\n type: \"warning\"\n });\n });\n _define_property(this, \"info\", function(title, data) {\n return _this.create({\n ...data,\n title,\n type: \"info\"\n });\n });\n _define_property(this, \"loading\", function(title, data) {\n return _this.create({\n ...data,\n title,\n type: \"loading\"\n });\n });\n _define_property(this, \"promise\", function(promise, data) {\n if (!data) {\n return;\n }\n var id = void 0;\n if (data.loading !== void 0) {\n id = _this.create({\n promise,\n type: \"loading\",\n title: data.loading,\n description: typeof data.description !== \"function\" ? data.description : void 0,\n // loading toasts shouldn't auto-dismiss\n duration: Number.POSITIVE_INFINITY\n });\n }\n var p = Promise.resolve(_instanceof(promise, Function) ? promise() : promise);\n var shouldDismiss = id !== void 0;\n var result;\n var originalPromise = p.then(async function(response) {\n result = [\n \"resolve\",\n response\n ];\n if (isHttpResponse(response) && !response.ok) {\n shouldDismiss = false;\n var errorMsg = typeof data.error === \"function\" ? await data.error(`HTTP error! status: ${response.status}`) : data.error;\n var description = typeof data.description === \"function\" ? await data.description(`HTTP error! status: ${response.status}`) : data.description;\n _this.create({\n id,\n type: \"error\",\n title: errorMsg,\n description\n });\n } else if (data.success !== void 0) {\n shouldDismiss = false;\n var successMsg = typeof data.success === \"function\" ? await data.success(response) : data.success;\n var description1 = typeof data.description === \"function\" ? await data.description(response) : data.description;\n _this.create({\n id,\n type: \"success\",\n title: successMsg,\n description: description1\n });\n }\n }).catch(async function(error) {\n result = [\n \"reject\",\n error\n ];\n if (data.error !== void 0) {\n shouldDismiss = false;\n var errorMsg = typeof data.error === \"function\" ? await data.error(error) : data.error;\n var description = typeof data.description === \"function\" ? await data.description(error) : data.description;\n _this.create({\n id,\n type: \"error\",\n title: errorMsg,\n description\n });\n }\n }).finally(function() {\n var _data_finally;\n if (shouldDismiss) {\n _this.dismiss(id);\n id = void 0;\n }\n (_data_finally = data.finally) === null || _data_finally === void 0 ? void 0 : _data_finally.call(data);\n });\n var unwrap = function() {\n return new Promise(function(resolve, reject) {\n return originalPromise.then(function() {\n return result[0] === \"reject\" ? reject(result[1]) : resolve(result[1]);\n }).catch(reject);\n });\n };\n if (typeof id !== \"string\" && typeof id !== \"number\") {\n return {\n unwrap\n };\n } else {\n return Object.assign(id, {\n unwrap\n });\n }\n });\n _define_property(this, \"custom\", function(jsx, data) {\n var _data_id;\n var id = (_data_id = data === null || data === void 0 ? void 0 : data.id) !== null && _data_id !== void 0 ? _data_id : toastsCounter++;\n _this.create({\n jsx: jsx(id),\n ...data,\n id\n });\n return id;\n });\n _define_property(this, \"getActiveToasts\", function() {\n return _this.toasts.filter(function(toast2) {\n return !_this.dismissedToasts.has(toast2.id);\n });\n });\n _define_property(this, \"getHistory\", function() {\n return _this.toasts;\n });\n};\nfunction isHttpResponse(data) {\n return data && (typeof data === \"undefined\" ? \"undefined\" : _type_of(data)) === \"object\" && \"ok\" in data && typeof data.ok === \"boolean\" && \"status\" in data && typeof data.status === \"number\";\n}\nvar ToastState = new Observer();\nvar toastFunction = function(title, data) {\n return ToastState.create({\n ...data,\n title\n });\n};\nvar getHistory = function() {\n return ToastState.getHistory();\n};\nvar getToasts = function() {\n return ToastState.getActiveToasts();\n};\nvar toast = Object.assign(toastFunction, {\n success: ToastState.success,\n error: ToastState.error,\n warning: ToastState.warning,\n info: ToastState.info,\n loading: ToastState.loading,\n promise: ToastState.promise,\n custom: ToastState.custom,\n dismiss: ToastState.dismiss,\n message: ToastState.message,\n getHistory,\n getToasts\n});\nexport {\n ToastState,\n toast\n};\n//# sourceMappingURL=ToastState.js.map\n"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"ToastState.native.js","names":[],"sources":["esm/ToastState.native.js"],"sourcesContent":["function _class_call_check(instance, Constructor) {\n if (!(instance instanceof Constructor)) {\n throw new TypeError(\"Cannot call a class as a function\");\n }\n}\nfunction _define_property(obj, key, value) {\n if (key in obj) {\n Object.defineProperty(obj, key, {\n value,\n enumerable: true,\n configurable: true,\n writable: true\n });\n } else {\n obj[key] = value;\n }\n return obj;\n}\nvar toastsCounter = 1;\nvar Observer = function Observer2() {\n \"use strict\";\n var _this = this;\n _class_call_check(this, Observer2);\n _define_property(this, \"subscribers\", []);\n _define_property(this, \"toasts\", []);\n _define_property(this, \"dismissedToasts\", /* @__PURE__ */ new Set());\n _define_property(this, \"subscribe\", function(subscriber) {\n _this.subscribers.push(subscriber);\n return function() {\n var index = _this.subscribers.indexOf(subscriber);\n if (index > -1) {\n _this.subscribers.splice(index, 1);\n }\n };\n });\n _define_property(this, \"publish\", function(data) {\n _this.subscribers.forEach(function(subscriber) {\n return subscriber(data);\n });\n });\n _define_property(this, \"addToast\", function(data) {\n _this.publish(data);\n _this.toasts = [\n ..._this.toasts,\n data\n ];\n });\n _define_property(this, \"create\", function(data) {\n var { title, ...rest } = data;\n var id = typeof (data === null || data === void 0 ? void 0 : data.id) === \"number\" || typeof (data === null || data === void 0 ? void 0 : data.id) === \"string\" && data.id.length > 0 ? data.id : toastsCounter++;\n var alreadyExists = _this.toasts.find(function(toast2) {\n return toast2.id === id;\n });\n var _data_dismissible;\n var dismissible = (_data_dismissible = data.dismissible) !== null && _data_dismissible !== void 0 ? _data_dismissible : true;\n if (_this.dismissedToasts.has(id)) {\n _this.dismissedToasts.delete(id);\n }\n if (alreadyExists) {\n _this.toasts = _this.toasts.map(function(toast2) {\n if (toast2.id === id) {\n _this.publish({\n ...toast2,\n ...data,\n id,\n title,\n dismissible\n });\n return {\n ...toast2,\n ...data,\n id,\n title,\n dismissible\n };\n }\n return toast2;\n });\n } else {\n _this.addToast({\n title,\n ...rest,\n dismissible,\n id\n });\n }\n return id;\n });\n _define_property(this, \"dismiss\", function(id) {\n if (id !== void 0) {\n _this.dismissedToasts.add(id);\n requestAnimationFrame(function() {\n if (!_this.dismissedToasts.has(id)) return;\n _this.subscribers.forEach(function(subscriber) {\n return subscriber({\n id,\n dismiss: true\n });\n });\n });\n } else {\n _this.toasts.forEach(function(toast2) {\n _this.subscribers.forEach(function(subscriber) {\n return subscriber({\n id: toast2.id,\n dismiss: true\n });\n });\n });\n }\n return id;\n });\n _define_property(this, \"message\", function(title, data) {\n return _this.create({\n ...data,\n title,\n type: \"default\"\n });\n });\n _define_property(this, \"success\", function(title, data) {\n return _this.create({\n ...data,\n title,\n type: \"success\"\n });\n });\n _define_property(this, \"error\", function(title, data) {\n return _this.create({\n ...data,\n title,\n type: \"error\"\n });\n });\n _define_property(this, \"warning\", function(title, data) {\n return _this.create({\n ...data,\n title,\n type: \"warning\"\n });\n });\n _define_property(this, \"info\", function(title, data) {\n return _this.create({\n ...data,\n title,\n type: \"info\"\n });\n });\n _define_property(this, \"loading\", function(title, data) {\n return _this.create({\n ...data,\n title,\n type: \"loading\"\n });\n });\n _define_property(this, \"promise\", function(promise, data) {\n if (!data) {\n return;\n }\n var id = void 0;\n if (data.loading !== void 0) {\n id = _this.create({\n promise,\n type: \"loading\",\n title: data.loading,\n description: typeof data.description !== \"function\" ? data.description : void 0,\n // loading toasts shouldn't auto-dismiss\n duration: Number.POSITIVE_INFINITY\n });\n }\n var p = Promise.resolve(promise instanceof Function ? promise() : promise);\n var shouldDismiss = id !== void 0;\n var result;\n var originalPromise = p.then(async function(response) {\n result = [\n \"resolve\",\n response\n ];\n if (isHttpResponse(response) && !response.ok) {\n shouldDismiss = false;\n var errorMsg = typeof data.error === \"function\" ? await data.error(`HTTP error! status: ${response.status}`) : data.error;\n var description = typeof data.description === \"function\" ? await data.description(`HTTP error! status: ${response.status}`) : data.description;\n _this.create({\n id,\n type: \"error\",\n title: errorMsg,\n description\n });\n } else if (data.success !== void 0) {\n shouldDismiss = false;\n var successMsg = typeof data.success === \"function\" ? await data.success(response) : data.success;\n var description1 = typeof data.description === \"function\" ? await data.description(response) : data.description;\n _this.create({\n id,\n type: \"success\",\n title: successMsg,\n description: description1\n });\n }\n }).catch(async function(error) {\n result = [\n \"reject\",\n error\n ];\n if (data.error !== void 0) {\n shouldDismiss = false;\n var errorMsg = typeof data.error === \"function\" ? await data.error(error) : data.error;\n var description = typeof data.description === \"function\" ? await data.description(error) : data.description;\n _this.create({\n id,\n type: \"error\",\n title: errorMsg,\n description\n });\n }\n }).finally(function() {\n var _data_finally;\n if (shouldDismiss) {\n _this.dismiss(id);\n id = void 0;\n }\n (_data_finally = data.finally) === null || _data_finally === void 0 ? void 0 : _data_finally.call(data);\n });\n var unwrap = function() {\n return new Promise(function(resolve, reject) {\n return originalPromise.then(function() {\n return result[0] === \"reject\" ? reject(result[1]) : resolve(result[1]);\n }).catch(reject);\n });\n };\n if (typeof id !== \"string\" && typeof id !== \"number\") {\n return {\n unwrap\n };\n } else {\n return Object.assign(id, {\n unwrap\n });\n }\n });\n _define_property(this, \"custom\", function(jsx, data) {\n var _data_id;\n var id = (_data_id = data === null || data === void 0 ? void 0 : data.id) !== null && _data_id !== void 0 ? _data_id : toastsCounter++;\n _this.create({\n jsx: jsx(id),\n ...data,\n id\n });\n return id;\n });\n _define_property(this, \"getActiveToasts\", function() {\n return _this.toasts.filter(function(toast2) {\n return !_this.dismissedToasts.has(toast2.id);\n });\n });\n _define_property(this, \"getHistory\", function() {\n return _this.toasts;\n });\n};\nfunction isHttpResponse(data) {\n return data && typeof data === \"object\" && \"ok\" in data && typeof data.ok === \"boolean\" && \"status\" in data && typeof data.status === \"number\";\n}\nvar ToastState = new Observer();\nvar toastFunction = function(title, data) {\n return ToastState.create({\n ...data,\n title\n });\n};\nvar getHistory = function() {\n return ToastState.getHistory();\n};\nvar getToasts = function() {\n return ToastState.getActiveToasts();\n};\nvar toast = Object.assign(toastFunction, {\n success: ToastState.success,\n error: ToastState.error,\n warning: ToastState.warning,\n info: ToastState.info,\n loading: ToastState.loading,\n promise: ToastState.promise,\n custom: ToastState.custom,\n dismiss: ToastState.dismiss,\n message: ToastState.message,\n getHistory,\n getToasts\n});\nexport {\n ToastState,\n toast\n};\n//# sourceMappingURL=ToastState.js.map\n"],"mappings":"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"}
|