{"version":3,"file":"App-DRD4mLuY.js","sources":["../../node_modules/reka-ui/dist/Toast/ToastProvider.js","../../node_modules/reka-ui/dist/Toast/utils.js","../../node_modules/reka-ui/dist/Toast/ToastAnnounce.js","../../node_modules/reka-ui/dist/Toast/ToastRootImpl.js","../../node_modules/reka-ui/dist/Toast/ToastRoot.js","../../node_modules/reka-ui/dist/Toast/ToastAnnounceExclude.js","../../node_modules/reka-ui/dist/Toast/ToastClose.js","../../node_modules/reka-ui/dist/Toast/FocusProxy.js","../../node_modules/reka-ui/dist/DismissableLayer/DismissableLayerBranch.js","../../node_modules/reka-ui/dist/Toast/ToastViewport.js","../../node_modules/reka-ui/dist/Toast/ToastTitle.js","../../node_modules/reka-ui/dist/Toast/ToastDescription.js","../../src/components/ui/toast/Toast.vue","../../src/components/ui/toast/ToastClose.vue","../../src/components/ui/toast/ToastDescription.vue","../../src/components/ui/toast/Toaster.vue","../../src/components/ui/toast/ToastProvider.vue","../../src/components/ui/toast/ToastTitle.vue","../../src/components/ui/toast/ToastViewport.vue","../../src/components/ui/toast/index.ts","../../src/App.vue"],"sourcesContent":["import { defineComponent, toRefs, ref, renderSlot } from 'vue';\nimport { u as useCollection } from '../Collection/Collection.js';\nimport { c as createContext } from '../shared/createContext.js';\n\nconst [injectToastProviderContext, provideToastProviderContext] = createContext(\"ToastProvider\");\nconst _sfc_main = /* @__PURE__ */ defineComponent({\n ...{\n inheritAttrs: false\n },\n __name: \"ToastProvider\",\n props: {\n label: { default: \"Notification\" },\n duration: { default: 5e3 },\n swipeDirection: { default: \"right\" },\n swipeThreshold: { default: 50 }\n },\n setup(__props) {\n const props = __props;\n const { label, duration, swipeDirection, swipeThreshold } = toRefs(props);\n useCollection({ isProvider: true });\n const viewport = ref();\n const toastCount = ref(0);\n const isFocusedToastEscapeKeyDownRef = ref(false);\n const isClosePausedRef = ref(false);\n if (props.label && typeof props.label === \"string\" && !props.label.trim()) {\n const error = \"Invalid prop `label` supplied to `ToastProvider`. Expected non-empty `string`.\";\n throw new Error(error);\n }\n provideToastProviderContext({\n label,\n duration,\n swipeDirection,\n swipeThreshold,\n toastCount,\n viewport,\n onViewportChange(el) {\n viewport.value = el;\n },\n onToastAdd() {\n toastCount.value++;\n },\n onToastRemove() {\n toastCount.value--;\n },\n isFocusedToastEscapeKeyDownRef,\n isClosePausedRef\n });\n return (_ctx, _cache) => {\n return renderSlot(_ctx.$slots, \"default\");\n };\n }\n});\n\nexport { _sfc_main as _, injectToastProviderContext as i };\n//# sourceMappingURL=ToastProvider.js.map\n","const TOAST_SWIPE_START = \"toast.swipeStart\";\nconst TOAST_SWIPE_MOVE = \"toast.swipeMove\";\nconst TOAST_SWIPE_CANCEL = \"toast.swipeCancel\";\nconst TOAST_SWIPE_END = \"toast.swipeEnd\";\nconst VIEWPORT_PAUSE = \"toast.viewportPause\";\nconst VIEWPORT_RESUME = \"toast.viewportResume\";\nfunction handleAndDispatchCustomEvent(name, handler, detail) {\n const currentTarget = detail.originalEvent.currentTarget;\n const event = new CustomEvent(name, {\n bubbles: false,\n cancelable: true,\n detail\n });\n if (handler)\n currentTarget.addEventListener(name, handler, { once: true });\n currentTarget.dispatchEvent(event);\n}\nfunction isDeltaInDirection(delta, direction, threshold = 0) {\n const deltaX = Math.abs(delta.x);\n const deltaY = Math.abs(delta.y);\n const isDeltaX = deltaX > deltaY;\n if (direction === \"left\" || direction === \"right\")\n return isDeltaX && deltaX > threshold;\n else\n return !isDeltaX && deltaY > threshold;\n}\nfunction isHTMLElement(node) {\n return node.nodeType === node.ELEMENT_NODE;\n}\nfunction getAnnounceTextContent(container) {\n const textContent = [];\n const childNodes = Array.from(container.childNodes);\n childNodes.forEach((node) => {\n if (node.nodeType === node.TEXT_NODE && node.textContent)\n textContent.push(node.textContent);\n if (isHTMLElement(node)) {\n const isHidden = node.ariaHidden || node.hidden || node.style.display === \"none\";\n const isExcluded = node.dataset.rekaToastAnnounceExclude === \"\";\n if (!isHidden) {\n if (isExcluded) {\n const altText = node.dataset.rekaToastAnnounceAlt;\n if (altText)\n textContent.push(altText);\n } else {\n textContent.push(...getAnnounceTextContent(node));\n }\n }\n }\n });\n return textContent;\n}\n\nexport { TOAST_SWIPE_MOVE as T, VIEWPORT_PAUSE as V, VIEWPORT_RESUME as a, TOAST_SWIPE_START as b, TOAST_SWIPE_END as c, TOAST_SWIPE_CANCEL as d, getAnnounceTextContent as g, handleAndDispatchCustomEvent as h, isDeltaInDirection as i };\n//# sourceMappingURL=utils.js.map\n","import { defineComponent, ref, unref, openBlock, createBlock, withCtx, createTextVNode, toDisplayString, renderSlot, createCommentVNode } from 'vue';\nimport { useTimeout } from '@vueuse/shared';\nimport { useRafFn } from '@vueuse/core';\nimport { i as injectToastProviderContext } from './ToastProvider.js';\nimport { _ as _sfc_main$1 } from '../VisuallyHidden/VisuallyHidden.js';\n\nconst _sfc_main = /* @__PURE__ */ defineComponent({\n __name: \"ToastAnnounce\",\n setup(__props) {\n const providerContext = injectToastProviderContext();\n const isAnnounced = useTimeout(1e3);\n const renderAnnounceText = ref(false);\n useRafFn(() => {\n renderAnnounceText.value = true;\n });\n return (_ctx, _cache) => {\n return unref(isAnnounced) || renderAnnounceText.value ? (openBlock(), createBlock(unref(_sfc_main$1), { key: 0 }, {\n default: withCtx(() => [\n createTextVNode(toDisplayString(unref(providerContext).label.value) + \" \", 1),\n renderSlot(_ctx.$slots, \"default\")\n ]),\n _: 3\n })) : createCommentVNode(\"\", true);\n };\n }\n});\n\nexport { _sfc_main as _ };\n//# sourceMappingURL=ToastAnnounce.js.map\n","import { defineComponent, ref, computed, watchEffect, watch, onMounted, onUnmounted, openBlock, createElementBlock, Fragment, createBlock, withCtx, createTextVNode, toDisplayString, createCommentVNode, unref, Teleport, createVNode, mergeProps, withModifiers, renderSlot } from 'vue';\nimport { g as getAnnounceTextContent, V as VIEWPORT_PAUSE, a as VIEWPORT_RESUME, h as handleAndDispatchCustomEvent, T as TOAST_SWIPE_MOVE, i as isDeltaInDirection, b as TOAST_SWIPE_START, c as TOAST_SWIPE_END, d as TOAST_SWIPE_CANCEL } from './utils.js';\nimport { useRafFn, onKeyStroke } from '@vueuse/core';\nimport { _ as _sfc_main$1 } from './ToastAnnounce.js';\nimport { isClient } from '@vueuse/shared';\nimport { u as useCollection } from '../Collection/Collection.js';\nimport { u as useForwardExpose } from '../shared/useForwardExpose.js';\nimport { P as Primitive } from '../Primitive/Primitive.js';\nimport { c as createContext } from '../shared/createContext.js';\nimport { g as getActiveElement } from '../shared/getActiveElement.js';\nimport { i as injectToastProviderContext } from './ToastProvider.js';\n\nconst [injectToastRootContext, provideToastRootContext] = createContext(\"ToastRoot\");\nconst _sfc_main = /* @__PURE__ */ defineComponent({\n ...{\n inheritAttrs: false\n },\n __name: \"ToastRootImpl\",\n props: {\n type: {},\n open: { type: Boolean, default: false },\n duration: {},\n asChild: { type: Boolean },\n as: { default: \"li\" }\n },\n emits: [\"close\", \"escapeKeyDown\", \"pause\", \"resume\", \"swipeStart\", \"swipeMove\", \"swipeCancel\", \"swipeEnd\"],\n setup(__props, { emit: __emit }) {\n const props = __props;\n const emits = __emit;\n const { forwardRef, currentElement } = useForwardExpose();\n const { CollectionItem } = useCollection();\n const providerContext = injectToastProviderContext();\n const pointerStartRef = ref(null);\n const swipeDeltaRef = ref(null);\n const duration = computed(\n () => typeof props.duration === \"number\" ? props.duration : providerContext.duration.value\n );\n const closeTimerStartTimeRef = ref(0);\n const closeTimerRemainingTimeRef = ref(duration.value);\n const closeTimerRef = ref(0);\n const remainingTime = ref(duration.value);\n const remainingRaf = useRafFn(() => {\n const elapsedTime = (/* @__PURE__ */ new Date()).getTime() - closeTimerStartTimeRef.value;\n remainingTime.value = Math.max(closeTimerRemainingTimeRef.value - elapsedTime, 0);\n }, { fpsLimit: 60 });\n function startTimer(duration2) {\n if (duration2 <= 0 || duration2 === Number.POSITIVE_INFINITY)\n return;\n if (!isClient)\n return;\n window.clearTimeout(closeTimerRef.value);\n closeTimerStartTimeRef.value = (/* @__PURE__ */ new Date()).getTime();\n closeTimerRef.value = window.setTimeout(handleClose, duration2);\n }\n function handleClose() {\n const isFocusInToast = currentElement.value?.contains(getActiveElement());\n if (isFocusInToast)\n providerContext.viewport.value?.focus();\n providerContext.isClosePausedRef.value = false;\n emits(\"close\");\n }\n const announceTextContent = computed(() => currentElement.value ? getAnnounceTextContent(currentElement.value) : null);\n if (props.type && ![\"foreground\", \"background\"].includes(props.type)) {\n const error = \"Invalid prop `type` supplied to `Toast`. Expected `foreground | background`.\";\n throw new Error(error);\n }\n watchEffect((cleanupFn) => {\n const viewport = providerContext.viewport.value;\n if (viewport) {\n const handleResume = () => {\n startTimer(closeTimerRemainingTimeRef.value);\n remainingRaf.resume();\n emits(\"resume\");\n };\n const handlePause = () => {\n const elapsedTime = (/* @__PURE__ */ new Date()).getTime() - closeTimerStartTimeRef.value;\n closeTimerRemainingTimeRef.value = closeTimerRemainingTimeRef.value - elapsedTime;\n window.clearTimeout(closeTimerRef.value);\n remainingRaf.pause();\n emits(\"pause\");\n };\n viewport.addEventListener(VIEWPORT_PAUSE, handlePause);\n viewport.addEventListener(VIEWPORT_RESUME, handleResume);\n return () => {\n viewport.removeEventListener(VIEWPORT_PAUSE, handlePause);\n viewport.removeEventListener(VIEWPORT_RESUME, handleResume);\n };\n }\n });\n watch(() => [props.open, duration.value], () => {\n closeTimerRemainingTimeRef.value = duration.value;\n if (props.open && !providerContext.isClosePausedRef.value)\n startTimer(duration.value);\n }, { immediate: true });\n onKeyStroke(\"Escape\", (event) => {\n emits(\"escapeKeyDown\", event);\n if (!event.defaultPrevented) {\n providerContext.isFocusedToastEscapeKeyDownRef.value = true;\n handleClose();\n }\n });\n onMounted(() => {\n providerContext.onToastAdd();\n });\n onUnmounted(() => {\n providerContext.onToastRemove();\n });\n provideToastRootContext({ onClose: handleClose });\n return (_ctx, _cache) => {\n return openBlock(), createElementBlock(Fragment, null, [\n announceTextContent.value ? (openBlock(), createBlock(_sfc_main$1, {\n key: 0,\n role: \"alert\",\n \"aria-live\": _ctx.type === \"foreground\" ? \"assertive\" : \"polite\",\n \"aria-atomic\": \"true\"\n }, {\n default: withCtx(() => [\n createTextVNode(toDisplayString(announceTextContent.value), 1)\n ]),\n _: 1\n }, 8, [\"aria-live\"])) : createCommentVNode(\"\", true),\n unref(providerContext).viewport.value ? (openBlock(), createBlock(Teleport, {\n key: 1,\n to: unref(providerContext).viewport.value\n }, [\n createVNode(unref(CollectionItem), null, {\n default: withCtx(() => [\n createVNode(unref(Primitive), mergeProps({\n ref: unref(forwardRef),\n role: \"alert\",\n \"aria-live\": \"off\",\n \"aria-atomic\": \"true\",\n tabindex: \"0\"\n }, _ctx.$attrs, {\n as: _ctx.as,\n \"as-child\": _ctx.asChild,\n \"data-state\": _ctx.open ? \"open\" : \"closed\",\n \"data-swipe-direction\": unref(providerContext).swipeDirection.value,\n style: { userSelect: \"none\", touchAction: \"none\" },\n onPointerdown: _cache[0] || (_cache[0] = withModifiers((event) => {\n pointerStartRef.value = { x: event.clientX, y: event.clientY };\n }, [\"left\"])),\n onPointermove: _cache[1] || (_cache[1] = (event) => {\n if (!pointerStartRef.value) return;\n const x = event.clientX - pointerStartRef.value.x;\n const y = event.clientY - pointerStartRef.value.y;\n const hasSwipeMoveStarted = Boolean(swipeDeltaRef.value);\n const isHorizontalSwipe = [\"left\", \"right\"].includes(unref(providerContext).swipeDirection.value);\n const clamp = [\"left\", \"up\"].includes(unref(providerContext).swipeDirection.value) ? Math.min : Math.max;\n const clampedX = isHorizontalSwipe ? clamp(0, x) : 0;\n const clampedY = !isHorizontalSwipe ? clamp(0, y) : 0;\n const moveStartBuffer = event.pointerType === \"touch\" ? 10 : 2;\n const delta = { x: clampedX, y: clampedY };\n const eventDetail = { originalEvent: event, delta };\n if (hasSwipeMoveStarted) {\n swipeDeltaRef.value = delta;\n unref(handleAndDispatchCustomEvent)(unref(TOAST_SWIPE_MOVE), (ev) => emits(\"swipeMove\", ev), eventDetail);\n } else if (unref(isDeltaInDirection)(delta, unref(providerContext).swipeDirection.value, moveStartBuffer)) {\n swipeDeltaRef.value = delta;\n unref(handleAndDispatchCustomEvent)(unref(TOAST_SWIPE_START), (ev) => emits(\"swipeStart\", ev), eventDetail);\n event.target.setPointerCapture(event.pointerId);\n } else if (Math.abs(x) > moveStartBuffer || Math.abs(y) > moveStartBuffer) {\n pointerStartRef.value = null;\n }\n }),\n onPointerup: _cache[2] || (_cache[2] = (event) => {\n const delta = swipeDeltaRef.value;\n const target = event.target;\n if (target.hasPointerCapture(event.pointerId)) {\n target.releasePointerCapture(event.pointerId);\n }\n swipeDeltaRef.value = null;\n pointerStartRef.value = null;\n if (delta) {\n const toast = event.currentTarget;\n const eventDetail = { originalEvent: event, delta };\n if (unref(isDeltaInDirection)(delta, unref(providerContext).swipeDirection.value, unref(providerContext).swipeThreshold.value)) {\n unref(handleAndDispatchCustomEvent)(unref(TOAST_SWIPE_END), (ev) => emits(\"swipeEnd\", ev), eventDetail);\n } else {\n unref(handleAndDispatchCustomEvent)(unref(TOAST_SWIPE_CANCEL), (ev) => emits(\"swipeCancel\", ev), eventDetail);\n }\n toast?.addEventListener(\"click\", (event2) => event2.preventDefault(), {\n once: true\n });\n }\n })\n }), {\n default: withCtx(() => [\n renderSlot(_ctx.$slots, \"default\", {\n remaining: remainingTime.value,\n duration: duration.value\n })\n ]),\n _: 3\n }, 16, [\"as\", \"as-child\", \"data-state\", \"data-swipe-direction\"])\n ]),\n _: 3\n })\n ], 8, [\"to\"])) : createCommentVNode(\"\", true)\n ], 64);\n };\n }\n});\n\nexport { _sfc_main as _, injectToastRootContext as i };\n//# sourceMappingURL=ToastRootImpl.js.map\n","import { defineComponent, openBlock, createBlock, unref, withCtx, createVNode, mergeProps, renderSlot } from 'vue';\nimport { useVModel } from '@vueuse/core';\nimport { _ as _sfc_main$1 } from './ToastRootImpl.js';\nimport { u as useForwardExpose } from '../shared/useForwardExpose.js';\nimport { P as Presence } from '../Presence/Presence.js';\n\nconst _sfc_main = /* @__PURE__ */ defineComponent({\n __name: \"ToastRoot\",\n props: {\n defaultOpen: { type: Boolean, default: true },\n forceMount: { type: Boolean },\n type: { default: \"foreground\" },\n open: { type: Boolean, default: undefined },\n duration: {},\n asChild: { type: Boolean },\n as: { default: \"li\" }\n },\n emits: [\"escapeKeyDown\", \"pause\", \"resume\", \"swipeStart\", \"swipeMove\", \"swipeCancel\", \"swipeEnd\", \"update:open\"],\n setup(__props, { emit: __emit }) {\n const props = __props;\n const emits = __emit;\n const { forwardRef } = useForwardExpose();\n const open = useVModel(props, \"open\", emits, {\n defaultValue: props.defaultOpen,\n passive: props.open === undefined\n });\n return (_ctx, _cache) => {\n return openBlock(), createBlock(unref(Presence), {\n present: _ctx.forceMount || unref(open)\n }, {\n default: withCtx(() => [\n createVNode(_sfc_main$1, mergeProps({\n ref: unref(forwardRef),\n open: unref(open),\n type: _ctx.type,\n as: _ctx.as,\n \"as-child\": _ctx.asChild,\n duration: _ctx.duration\n }, _ctx.$attrs, {\n onClose: _cache[0] || (_cache[0] = ($event) => open.value = false),\n onPause: _cache[1] || (_cache[1] = ($event) => emits(\"pause\")),\n onResume: _cache[2] || (_cache[2] = ($event) => emits(\"resume\")),\n onEscapeKeyDown: _cache[3] || (_cache[3] = ($event) => emits(\"escapeKeyDown\", $event)),\n onSwipeStart: _cache[4] || (_cache[4] = (event) => {\n emits(\"swipeStart\", event);\n event.currentTarget.setAttribute(\"data-swipe\", \"start\");\n }),\n onSwipeMove: _cache[5] || (_cache[5] = (event) => {\n const { x, y } = event.detail.delta;\n const target = event.currentTarget;\n target.setAttribute(\"data-swipe\", \"move\");\n target.style.setProperty(\"--reka-toast-swipe-move-x\", `${x}px`);\n target.style.setProperty(\"--reka-toast-swipe-move-y\", `${y}px`);\n }),\n onSwipeCancel: _cache[6] || (_cache[6] = (event) => {\n const target = event.currentTarget;\n target.setAttribute(\"data-swipe\", \"cancel\");\n target.style.removeProperty(\"--reka-toast-swipe-move-x\");\n target.style.removeProperty(\"--reka-toast-swipe-move-y\");\n target.style.removeProperty(\"--reka-toast-swipe-end-x\");\n target.style.removeProperty(\"--reka-toast-swipe-end-y\");\n }),\n onSwipeEnd: _cache[7] || (_cache[7] = (event) => {\n const { x, y } = event.detail.delta;\n const target = event.currentTarget;\n target.setAttribute(\"data-swipe\", \"end\");\n target.style.removeProperty(\"--reka-toast-swipe-move-x\");\n target.style.removeProperty(\"--reka-toast-swipe-move-y\");\n target.style.setProperty(\"--reka-toast-swipe-end-x\", `${x}px`);\n target.style.setProperty(\"--reka-toast-swipe-end-y\", `${y}px`);\n open.value = false;\n })\n }), {\n default: withCtx(({ remaining, duration: _duration }) => [\n renderSlot(_ctx.$slots, \"default\", {\n remaining,\n duration: _duration,\n open: unref(open)\n })\n ]),\n _: 3\n }, 16, [\"open\", \"type\", \"as\", \"as-child\", \"duration\"])\n ]),\n _: 3\n }, 8, [\"present\"]);\n };\n }\n});\n\nexport { _sfc_main as _ };\n//# sourceMappingURL=ToastRoot.js.map\n","import { defineComponent, openBlock, createBlock, unref, withCtx, renderSlot } from 'vue';\nimport { P as Primitive } from '../Primitive/Primitive.js';\n\nconst _sfc_main = /* @__PURE__ */ defineComponent({\n __name: \"ToastAnnounceExclude\",\n props: {\n altText: {},\n asChild: { type: Boolean },\n as: {}\n },\n setup(__props) {\n return (_ctx, _cache) => {\n return openBlock(), createBlock(unref(Primitive), {\n as: _ctx.as,\n \"as-child\": _ctx.asChild,\n \"data-reka-toast-announce-exclude\": \"\",\n \"data-reka-toast-announce-alt\": _ctx.altText || undefined\n }, {\n default: withCtx(() => [\n renderSlot(_ctx.$slots, \"default\")\n ]),\n _: 3\n }, 8, [\"as\", \"as-child\", \"data-reka-toast-announce-alt\"]);\n };\n }\n});\n\nexport { _sfc_main as _ };\n//# sourceMappingURL=ToastAnnounceExclude.js.map\n","import { defineComponent, openBlock, createBlock, withCtx, createVNode, unref, mergeProps, renderSlot } from 'vue';\nimport { _ as _sfc_main$1 } from './ToastAnnounceExclude.js';\nimport { i as injectToastRootContext } from './ToastRootImpl.js';\nimport { u as useForwardExpose } from '../shared/useForwardExpose.js';\nimport { P as Primitive } from '../Primitive/Primitive.js';\n\nconst _sfc_main = /* @__PURE__ */ defineComponent({\n __name: \"ToastClose\",\n props: {\n asChild: { type: Boolean },\n as: { default: \"button\" }\n },\n setup(__props) {\n const props = __props;\n const rootContext = injectToastRootContext();\n const { forwardRef } = useForwardExpose();\n return (_ctx, _cache) => {\n return openBlock(), createBlock(_sfc_main$1, { \"as-child\": \"\" }, {\n default: withCtx(() => [\n createVNode(unref(Primitive), mergeProps(props, {\n ref: unref(forwardRef),\n type: _ctx.as === \"button\" ? \"button\" : undefined,\n onClick: _cache[0] || (_cache[0] = ($event) => unref(rootContext).onClose())\n }), {\n default: withCtx(() => [\n renderSlot(_ctx.$slots, \"default\")\n ]),\n _: 3\n }, 16, [\"type\"])\n ]),\n _: 3\n });\n };\n }\n});\n\nexport { _sfc_main as _ };\n//# sourceMappingURL=ToastClose.js.map\n","import { defineComponent, openBlock, createBlock, unref, withCtx, renderSlot } from 'vue';\nimport { _ as _sfc_main$1 } from '../VisuallyHidden/VisuallyHidden.js';\nimport { i as injectToastProviderContext } from './ToastProvider.js';\n\nconst _sfc_main = /* @__PURE__ */ defineComponent({\n __name: \"FocusProxy\",\n emits: [\"focusFromOutsideViewport\"],\n setup(__props, { emit: __emit }) {\n const emits = __emit;\n const providerContext = injectToastProviderContext();\n return (_ctx, _cache) => {\n return openBlock(), createBlock(unref(_sfc_main$1), {\n \"aria-hidden\": \"true\",\n tabindex: \"0\",\n style: { \"position\": \"fixed\" },\n onFocus: _cache[0] || (_cache[0] = (event) => {\n const prevFocusedElement = event.relatedTarget;\n const isFocusFromOutsideViewport = !unref(providerContext).viewport.value?.contains(prevFocusedElement);\n if (isFocusFromOutsideViewport) emits(\"focusFromOutsideViewport\");\n })\n }, {\n default: withCtx(() => [\n renderSlot(_ctx.$slots, \"default\")\n ]),\n _: 3\n });\n };\n }\n});\n\nexport { _sfc_main as _ };\n//# sourceMappingURL=FocusProxy.js.map\n","import { defineComponent, onMounted, onUnmounted, openBlock, createBlock, unref, mergeProps, withCtx, renderSlot } from 'vue';\nimport { u as useForwardExpose } from '../shared/useForwardExpose.js';\nimport { c as context } from './DismissableLayer.js';\nimport { P as Primitive } from '../Primitive/Primitive.js';\n\nconst _sfc_main = /* @__PURE__ */ defineComponent({\n __name: \"DismissableLayerBranch\",\n props: {\n asChild: { type: Boolean },\n as: {}\n },\n setup(__props) {\n const props = __props;\n const { forwardRef, currentElement } = useForwardExpose();\n onMounted(() => {\n context.branches.add(currentElement.value);\n });\n onUnmounted(() => {\n context.branches.delete(currentElement.value);\n });\n return (_ctx, _cache) => {\n return openBlock(), createBlock(unref(Primitive), mergeProps({ ref: unref(forwardRef) }, props), {\n default: withCtx(() => [\n renderSlot(_ctx.$slots, \"default\")\n ]),\n _: 3\n }, 16);\n };\n }\n});\n\nexport { _sfc_main as _ };\n//# sourceMappingURL=DismissableLayerBranch.js.map\n","import { defineComponent, toRefs, computed, ref, onMounted, watchEffect, openBlock, createBlock, unref, normalizeStyle, withCtx, createCommentVNode, createVNode, mergeProps, renderSlot } from 'vue';\nimport { onKeyStroke, unrefElement } from '@vueuse/core';\nimport { _ as _sfc_main$2 } from './FocusProxy.js';\nimport { f as focusFirst, g as getTabbableCandidates } from '../FocusScope/utils.js';\nimport { V as VIEWPORT_PAUSE, a as VIEWPORT_RESUME } from './utils.js';\nimport { _ as _sfc_main$1 } from '../DismissableLayer/DismissableLayerBranch.js';\nimport { u as useCollection } from '../Collection/Collection.js';\nimport { u as useForwardExpose } from '../shared/useForwardExpose.js';\nimport { P as Primitive } from '../Primitive/Primitive.js';\nimport { g as getActiveElement } from '../shared/getActiveElement.js';\nimport { i as injectToastProviderContext } from './ToastProvider.js';\n\nconst _sfc_main = /* @__PURE__ */ defineComponent({\n ...{\n inheritAttrs: false\n },\n __name: \"ToastViewport\",\n props: {\n hotkey: { default: () => [\"F8\"] },\n label: { type: [String, Function], default: \"Notifications ({hotkey})\" },\n asChild: { type: Boolean },\n as: { default: \"ol\" }\n },\n setup(__props) {\n const props = __props;\n const { hotkey, label } = toRefs(props);\n const { forwardRef, currentElement } = useForwardExpose();\n const { CollectionSlot, getItems } = useCollection();\n const providerContext = injectToastProviderContext();\n const hasToasts = computed(() => providerContext.toastCount.value > 0);\n const headFocusProxyRef = ref();\n const tailFocusProxyRef = ref();\n const hotkeyMessage = computed(() => hotkey.value.join(\"+\").replace(/Key/g, \"\").replace(/Digit/g, \"\"));\n onKeyStroke(hotkey.value, () => {\n currentElement.value.focus();\n });\n onMounted(() => {\n providerContext.onViewportChange(currentElement.value);\n });\n watchEffect((cleanupFn) => {\n const viewport = currentElement.value;\n if (hasToasts.value && viewport) {\n const handlePause = () => {\n if (!providerContext.isClosePausedRef.value) {\n const pauseEvent = new CustomEvent(VIEWPORT_PAUSE);\n viewport.dispatchEvent(pauseEvent);\n providerContext.isClosePausedRef.value = true;\n }\n };\n const handleResume = () => {\n if (providerContext.isClosePausedRef.value) {\n const resumeEvent = new CustomEvent(VIEWPORT_RESUME);\n viewport.dispatchEvent(resumeEvent);\n providerContext.isClosePausedRef.value = false;\n }\n };\n const handleFocusOutResume = (event) => {\n const isFocusMovingOutside = !viewport.contains(event.relatedTarget);\n if (isFocusMovingOutside)\n handleResume();\n };\n const handlePointerLeaveResume = () => {\n const isFocusInside = viewport.contains(getActiveElement());\n if (!isFocusInside)\n handleResume();\n };\n const handleKeyDown = (event) => {\n const isMetaKey = event.altKey || event.ctrlKey || event.metaKey;\n const isTabKey = event.key === \"Tab\" && !isMetaKey;\n if (isTabKey) {\n const focusedElement = getActiveElement();\n const isTabbingBackwards = event.shiftKey;\n const targetIsViewport = event.target === viewport;\n if (targetIsViewport && isTabbingBackwards) {\n headFocusProxyRef.value?.focus();\n return;\n }\n const tabbingDirection = isTabbingBackwards ? \"backwards\" : \"forwards\";\n const sortedCandidates = getSortedTabbableCandidates({ tabbingDirection });\n const index = sortedCandidates.findIndex((candidate) => candidate === focusedElement);\n if (focusFirst(sortedCandidates.slice(index + 1))) {\n event.preventDefault();\n } else {\n isTabbingBackwards ? headFocusProxyRef.value?.focus() : tailFocusProxyRef.value?.focus();\n }\n }\n };\n viewport.addEventListener(\"focusin\", handlePause);\n viewport.addEventListener(\"focusout\", handleFocusOutResume);\n viewport.addEventListener(\"pointermove\", handlePause);\n viewport.addEventListener(\"pointerleave\", handlePointerLeaveResume);\n viewport.addEventListener(\"keydown\", handleKeyDown);\n window.addEventListener(\"blur\", handlePause);\n window.addEventListener(\"focus\", handleResume);\n cleanupFn(() => {\n viewport.removeEventListener(\"focusin\", handlePause);\n viewport.removeEventListener(\"focusout\", handleFocusOutResume);\n viewport.removeEventListener(\"pointermove\", handlePause);\n viewport.removeEventListener(\"pointerleave\", handlePointerLeaveResume);\n viewport.removeEventListener(\"keydown\", handleKeyDown);\n window.removeEventListener(\"blur\", handlePause);\n window.removeEventListener(\"focus\", handleResume);\n });\n }\n });\n function getSortedTabbableCandidates({ tabbingDirection }) {\n const toastItems = getItems().map((i) => i.ref);\n const tabbableCandidates = toastItems.map((toastNode) => {\n const toastTabbableCandidates = [toastNode, ...getTabbableCandidates(toastNode)];\n return tabbingDirection === \"forwards\" ? toastTabbableCandidates : toastTabbableCandidates.reverse();\n });\n return (tabbingDirection === \"forwards\" ? tabbableCandidates.reverse() : tabbableCandidates).flat();\n }\n return (_ctx, _cache) => {\n return openBlock(), createBlock(unref(_sfc_main$1), {\n role: \"region\",\n \"aria-label\": typeof unref(label) === \"string\" ? unref(label).replace(\"{hotkey}\", hotkeyMessage.value) : unref(label)(hotkeyMessage.value),\n tabindex: \"-1\",\n style: normalizeStyle({\n // incase list has size when empty (e.g. padding), we remove pointer events so\n // it doesn't prevent interactions with page elements that it overlays\n pointerEvents: hasToasts.value ? undefined : \"none\"\n })\n }, {\n default: withCtx(() => [\n hasToasts.value ? (openBlock(), createBlock(_sfc_main$2, {\n key: 0,\n ref: (node) => {\n headFocusProxyRef.value = unref(unrefElement)(node);\n return undefined;\n },\n onFocusFromOutsideViewport: _cache[0] || (_cache[0] = () => {\n const tabbableCandidates = getSortedTabbableCandidates({\n tabbingDirection: \"forwards\"\n });\n unref(focusFirst)(tabbableCandidates);\n })\n }, null, 512)) : createCommentVNode(\"\", true),\n createVNode(unref(CollectionSlot), null, {\n default: withCtx(() => [\n createVNode(unref(Primitive), mergeProps({\n ref: unref(forwardRef),\n tabindex: \"-1\",\n as: _ctx.as,\n \"as-child\": _ctx.asChild\n }, _ctx.$attrs), {\n default: withCtx(() => [\n renderSlot(_ctx.$slots, \"default\")\n ]),\n _: 3\n }, 16, [\"as\", \"as-child\"])\n ]),\n _: 3\n }),\n hasToasts.value ? (openBlock(), createBlock(_sfc_main$2, {\n key: 1,\n ref: (node) => {\n tailFocusProxyRef.value = unref(unrefElement)(node);\n return undefined;\n },\n onFocusFromOutsideViewport: _cache[1] || (_cache[1] = () => {\n const tabbableCandidates = getSortedTabbableCandidates({\n tabbingDirection: \"backwards\"\n });\n unref(focusFirst)(tabbableCandidates);\n })\n }, null, 512)) : createCommentVNode(\"\", true)\n ]),\n _: 3\n }, 8, [\"aria-label\", \"style\"]);\n };\n }\n});\n\nexport { _sfc_main as _ };\n//# sourceMappingURL=ToastViewport.js.map\n","import { defineComponent, openBlock, createBlock, unref, normalizeProps, guardReactiveProps, withCtx, renderSlot } from 'vue';\nimport { u as useForwardExpose } from '../shared/useForwardExpose.js';\nimport { P as Primitive } from '../Primitive/Primitive.js';\n\nconst _sfc_main = /* @__PURE__ */ defineComponent({\n __name: \"ToastTitle\",\n props: {\n asChild: { type: Boolean },\n as: {}\n },\n setup(__props) {\n const props = __props;\n useForwardExpose();\n return (_ctx, _cache) => {\n return openBlock(), createBlock(unref(Primitive), normalizeProps(guardReactiveProps(props)), {\n default: withCtx(() => [\n renderSlot(_ctx.$slots, \"default\")\n ]),\n _: 3\n }, 16);\n };\n }\n});\n\nexport { _sfc_main as _ };\n//# sourceMappingURL=ToastTitle.js.map\n","import { defineComponent, openBlock, createBlock, unref, normalizeProps, guardReactiveProps, withCtx, renderSlot } from 'vue';\nimport { u as useForwardExpose } from '../shared/useForwardExpose.js';\nimport { P as Primitive } from '../Primitive/Primitive.js';\n\nconst _sfc_main = /* @__PURE__ */ defineComponent({\n __name: \"ToastDescription\",\n props: {\n asChild: { type: Boolean },\n as: {}\n },\n setup(__props) {\n const props = __props;\n useForwardExpose();\n return (_ctx, _cache) => {\n return openBlock(), createBlock(unref(Primitive), normalizeProps(guardReactiveProps(props)), {\n default: withCtx(() => [\n renderSlot(_ctx.$slots, \"default\")\n ]),\n _: 3\n }, 16);\n };\n }\n});\n\nexport { _sfc_main as _ };\n//# sourceMappingURL=ToastDescription.js.map\n","\n\n\n","\n\n\n","\n\n\n","\n\n\n","\n\n\n","\n\n\n","\n\n\n","import type { ToastRootProps } from 'reka-ui'\nimport type { HTMLAttributes } from 'vue'\n\nexport { default as Toast } from './Toast.vue'\nexport { default as ToastAction } from './ToastAction.vue'\nexport { default as ToastClose } from './ToastClose.vue'\nexport { default as ToastDescription } from './ToastDescription.vue'\nexport { default as Toaster } from './Toaster.vue'\nexport { default as ToastProvider } from './ToastProvider.vue'\nexport { default as ToastTitle } from './ToastTitle.vue'\nexport { default as ToastViewport } from './ToastViewport.vue'\nexport { toast, useToast } from './use-toast'\n\nimport { cva, type VariantProps } from 'class-variance-authority'\n\nexport const toastVariants = cva(\n 'group pointer-events-auto relative flex w-full items-center justify-between space-x-4 overflow-hidden rounded-md border p-6 pr-8 shadow-lg transition-all data-[swipe=cancel]:translate-x-0 data-[swipe=end]:translate-x-[--reka-toast-swipe-end-x] data-[swipe=move]:translate-x-[--reka-toast-swipe-move-x] data-[swipe=move]:transition-none data-[state=open]:animate-in data-[state=closed]:animate-out data-[swipe=end]:animate-out data-[state=closed]:fade-out-80 data-[state=closed]:slide-out-to-right-full data-[state=open]:slide-in-from-top-full data-[state=open]:sm:slide-in-from-bottom-full',\n {\n variants: {\n variant: {\n default: 'border bg-background text-foreground',\n destructive:\n 'destructive group border-destructive bg-destructive text-destructive-foreground',\n },\n },\n defaultVariants: {\n variant: 'default',\n },\n },\n)\n\ntype ToastVariants = VariantProps\n\nexport interface ToastProps extends ToastRootProps {\n class?: HTMLAttributes['class']\n variant?: ToastVariants['variant']\n onOpenChange?: ((value: boolean) => void) | undefined\n}\n","\n\n\n"],"names":["injectToastProviderContext","provideToastProviderContext","createContext","_sfc_main","defineComponent","inheritAttrs","__name","props","label","default","duration","swipeDirection","swipeThreshold","setup","__props","toRefs","useCollection","isProvider","viewport","ref","toastCount","isFocusedToastEscapeKeyDownRef","isClosePausedRef","trim","Error","onViewportChange","el","value","onToastAdd","onToastRemove","_ctx","_cache","renderSlot","$slots","VIEWPORT_PAUSE","VIEWPORT_RESUME","handleAndDispatchCustomEvent","name","handler","detail","currentTarget","originalEvent","event","CustomEvent","bubbles","cancelable","addEventListener","once","dispatchEvent","isDeltaInDirection","delta","direction","threshold","deltaX","Math","abs","x","deltaY","y","isDeltaX","getAnnounceTextContent","container","textContent","Array","from","childNodes","forEach","node","nodeType","TEXT_NODE","push","ELEMENT_NODE","isHTMLElement","isHidden","ariaHidden","hidden","style","display","isExcluded","dataset","rekaToastAnnounceExclude","altText","rekaToastAnnounceAlt","providerContext","isAnnounced","useTimeout","renderAnnounceText","useRafFn","unref","openBlock","createBlock","_sfc_main$1","key","withCtx","createTextVNode","toDisplayString","_","createCommentVNode","injectToastRootContext","provideToastRootContext","type","open","Boolean","asChild","as","emits","emit","__emit","forwardRef","currentElement","useForwardExpose","CollectionItem","pointerStartRef","swipeDeltaRef","computed","closeTimerStartTimeRef","closeTimerRemainingTimeRef","closeTimerRef","remainingTime","remainingRaf","elapsedTime","Date","getTime","max","fpsLimit","startTimer","duration2","Number","POSITIVE_INFINITY","isClient","window","clearTimeout","setTimeout","handleClose","_a","contains","getActiveElement","_b","focus","announceTextContent","includes","watchEffect","cleanupFn","handleResume","resume","handlePause","pause","removeEventListener","watch","immediate","onKeyStroke","defaultPrevented","onMounted","onUnmounted","onClose","createElementBlock","Fragment","role","Teleport","to","createVNode","Primitive","mergeProps","tabindex","$attrs","userSelect","touchAction","onPointerdown","withModifiers","clientX","clientY","onPointermove","hasSwipeMoveStarted","isHorizontalSwipe","clamp","min","clampedX","clampedY","moveStartBuffer","pointerType","eventDetail","ev","target","setPointerCapture","pointerId","onPointerup","hasPointerCapture","releasePointerCapture","toast","event2","preventDefault","remaining","defaultOpen","forceMount","useVModel","defaultValue","passive","Presence","present","$event","onPause","onResume","onEscapeKeyDown","onSwipeStart","setAttribute","onSwipeMove","setProperty","onSwipeCancel","removeProperty","onSwipeEnd","_duration","rootContext","onClick","position","onFocus","prevFocusedElement","relatedTarget","context","branches","add","delete","hotkey","String","Function","CollectionSlot","getItems","hasToasts","headFocusProxyRef","tailFocusProxyRef","hotkeyMessage","join","replace","getSortedTabbableCandidates","tabbingDirection","tabbableCandidates","map","i","toastNode","toastTabbableCandidates","getTabbableCandidates","reverse","flat","pauseEvent","resumeEvent","handleFocusOutResume","handlePointerLeaveResume","handleKeyDown","isMetaKey","altKey","ctrlKey","metaKey","focusedElement","isTabbingBackwards","shiftKey","sortedCandidates","index","findIndex","candidate","focusFirst","slice","_c","normalizeStyle","pointerEvents","_sfc_main$2","unrefElement","onFocusFromOutsideViewport","normalizeProps","guardReactiveProps","delegatedProps","class","delegated","forwarded","useForwardPropsEmits","toasts","useToast","toastVariants","cva","variants","variant","destructive","defaultVariants","routerViewKey","Symbol","staticColor","getColor","nowPrefersColor","matchMedia","matches","e","isDark","colorIndex","provide","route","useRoute","params","username","newUser","projname","newProj","oldUser","OldProj"],"mappings":"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","x_google_ignoreList":[0,1,2,3,4,5,6,7,8,9,10,11]}