@servicetitan/anvil2 1.27.0 → 1.27.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (76) hide show
  1. package/CHANGELOG.md +13 -0
  2. package/dist/{Combobox-kxTlPBj5.js → Combobox-BRZIYucw.js} +3 -3
  3. package/dist/{Combobox-kxTlPBj5.js.map → Combobox-BRZIYucw.js.map} +1 -1
  4. package/dist/Combobox.js +1 -1
  5. package/dist/DateField-DHIXyi2_.js +565 -0
  6. package/dist/DateField-DHIXyi2_.js.map +1 -0
  7. package/dist/DateField.js +1 -1
  8. package/dist/{Dialog-6g0s0fvb-DdwUwOVg.js → Dialog-DDsVwnZZ-s9GGnSax.js} +51 -50
  9. package/dist/Dialog-DDsVwnZZ-s9GGnSax.js.map +1 -0
  10. package/dist/{Dialog-BVG0m6dn.js → Dialog-wuBdQ785.js} +2 -2
  11. package/dist/{Dialog-BVG0m6dn.js.map → Dialog-wuBdQ785.js.map} +1 -1
  12. package/dist/Dialog.js +1 -1
  13. package/dist/{Drawer-DQSLhTtO.js → Drawer-BX7LCwCa.js} +58 -54
  14. package/dist/Drawer-BX7LCwCa.js.map +1 -0
  15. package/dist/Drawer.css +25 -26
  16. package/dist/Drawer.js +1 -1
  17. package/dist/InputMask-CiAjFhsc-Bnbf_ZQq.js +195 -0
  18. package/dist/InputMask-CiAjFhsc-Bnbf_ZQq.js.map +1 -0
  19. package/dist/{InputMask-DgkoDKtz.js → InputMask-Cifzg7Ee.js} +2 -2
  20. package/dist/{InputMask-DgkoDKtz.js.map → InputMask-Cifzg7Ee.js.map} +1 -1
  21. package/dist/InputMask.js +1 -1
  22. package/dist/{Label-Cmah7p_s-DYYyQxMK.js → Label-Do6kKzVr-BvIRT-vF.js} +3 -3
  23. package/dist/{Label-Cmah7p_s-DYYyQxMK.js.map → Label-Do6kKzVr-BvIRT-vF.js.map} +1 -1
  24. package/dist/{Menu-1N6kdaVX.js → Menu-COlGXBmd.js} +2 -2
  25. package/dist/{Menu-1N6kdaVX.js.map → Menu-COlGXBmd.js.map} +1 -1
  26. package/dist/Menu.js +1 -1
  27. package/dist/{Page-DUA2NqcR.js → Page-C5GjTBZh.js} +5 -5
  28. package/dist/{Page-DUA2NqcR.js.map → Page-C5GjTBZh.js.map} +1 -1
  29. package/dist/Page.js +1 -1
  30. package/dist/{Popover-Cbmy9jrU.js → Popover-DAxtbeRA.js} +2 -2
  31. package/dist/{Popover-Cbmy9jrU.js.map → Popover-DAxtbeRA.js.map} +1 -1
  32. package/dist/{Popover-Bv4sIKvC-CCbvaK8b.js → Popover-tcXHJePS-CMjz_uId.js} +27 -87
  33. package/dist/Popover-tcXHJePS-CMjz_uId.js.map +1 -0
  34. package/dist/Popover.js +1 -1
  35. package/dist/{ProgressBar-chBw0MyR-cnNzXxPv.js → ProgressBar-BrXijLda-BDwH4WrE.js} +3 -3
  36. package/dist/{ProgressBar-chBw0MyR-cnNzXxPv.js.map → ProgressBar-BrXijLda-BDwH4WrE.js.map} +1 -1
  37. package/dist/{ProgressBar-Cbt2k-7d.js → ProgressBar-aP7gOxee.js} +2 -2
  38. package/dist/{ProgressBar-Cbt2k-7d.js.map → ProgressBar-aP7gOxee.js.map} +1 -1
  39. package/dist/ProgressBar.js +1 -1
  40. package/dist/{TextField-A_NHddzb.js → TextField-BWHsVZiC.js} +2 -2
  41. package/dist/{TextField-A_NHddzb.js.map → TextField-BWHsVZiC.js.map} +1 -1
  42. package/dist/{TextField-CODjlcrt-CsYFQwcu.js → TextField-C614D1ZV-DeVOfPoS.js} +2 -2
  43. package/dist/{TextField-CODjlcrt-CsYFQwcu.js.map → TextField-C614D1ZV-DeVOfPoS.js.map} +1 -1
  44. package/dist/TextField.js +1 -1
  45. package/dist/{Textarea-BtVSVQSa.js → Textarea-Dj47MRiF.js} +2 -2
  46. package/dist/{Textarea-BtVSVQSa.js.map → Textarea-Dj47MRiF.js.map} +1 -1
  47. package/dist/Textarea.js +1 -1
  48. package/dist/Toast.js +1 -1
  49. package/dist/{Toolbar-ULYSDfhw.js → Toolbar-BAvsl6fK.js} +2 -2
  50. package/dist/{Toolbar-ULYSDfhw.js.map → Toolbar-BAvsl6fK.js.map} +1 -1
  51. package/dist/Toolbar.js +1 -1
  52. package/dist/{Tooltip-DeaFnid1.js → Tooltip-D38gdiV_.js} +2 -2
  53. package/dist/{Tooltip-DeaFnid1.js.map → Tooltip-D38gdiV_.js.map} +1 -1
  54. package/dist/{Tooltip-gkNXkPsE-CnvZcZY3.js → Tooltip-DVBEjajY-DN86i_oi.js} +3 -3
  55. package/dist/{Tooltip-gkNXkPsE-CnvZcZY3.js.map → Tooltip-DVBEjajY-DN86i_oi.js.map} +1 -1
  56. package/dist/Tooltip.js +1 -1
  57. package/dist/components/Dialog/Dialog.d.ts +0 -1
  58. package/dist/components/Drawer/Drawer.d.ts +0 -1
  59. package/dist/index.js +14 -14
  60. package/dist/{toast-C-xc_Azo.js → toast-DMKrL2Ew.js} +2 -2
  61. package/dist/{toast-C-xc_Azo.js.map → toast-DMKrL2Ew.js.map} +1 -1
  62. package/dist/{useKeyboardFocusables-BYoElaOi-T7ncq79D.js → useKeyboardFocusables-C3hMtJK_-Cz39LRmZ.js} +12 -165
  63. package/dist/{useKeyboardFocusables-BYoElaOi-T7ncq79D.js.map → useKeyboardFocusables-C3hMtJK_-Cz39LRmZ.js.map} +1 -1
  64. package/package.json +3 -3
  65. package/dist/DateField-CaDuuTnX.js +0 -579
  66. package/dist/DateField-CaDuuTnX.js.map +0 -1
  67. package/dist/Dialog-6g0s0fvb-DdwUwOVg.js.map +0 -1
  68. package/dist/Drawer-DQSLhTtO.js.map +0 -1
  69. package/dist/InputMask-mcs9lD4F-BuCF93Le.js +0 -320
  70. package/dist/InputMask-mcs9lD4F-BuCF93Le.js.map +0 -1
  71. package/dist/Popover-Bv4sIKvC-CCbvaK8b.js.map +0 -1
  72. /package/dist/{Dialog-6g0s0fvb.css → Dialog-DDsVwnZZ.css} +0 -0
  73. /package/dist/{Label-Cmah7p_s.css → Label-Do6kKzVr.css} +0 -0
  74. /package/dist/{Popover-Bv4sIKvC.css → Popover-tcXHJePS.css} +0 -0
  75. /package/dist/{ProgressBar-chBw0MyR.css → ProgressBar-BrXijLda.css} +0 -0
  76. /package/dist/{Tooltip-gkNXkPsE.css → Tooltip-DVBEjajY.css} +0 -0
@@ -1 +1 @@
1
- {"version":3,"file":"toast-C-xc_Azo.js","sources":["../../../node_modules/.pnpm/uuid@10.0.0/node_modules/uuid/dist/esm-browser/stringify.js","../../../node_modules/.pnpm/uuid@10.0.0/node_modules/uuid/dist/esm-browser/rng.js","../../../node_modules/.pnpm/uuid@10.0.0/node_modules/uuid/dist/esm-browser/native.js","../../../node_modules/.pnpm/uuid@10.0.0/node_modules/uuid/dist/esm-browser/v4.js","../../hammer-react/dist/Toaster-DrzbHeVc.js","../src/components/Toast/Toaster.tsx","../src/components/Toast/toast.ts"],"sourcesContent":["import validate from './validate.js';\n\n/**\n * Convert array of 16 byte values to UUID string format of the form:\n * XXXXXXXX-XXXX-XXXX-XXXX-XXXXXXXXXXXX\n */\nvar byteToHex = [];\nfor (var i = 0; i < 256; ++i) {\n byteToHex.push((i + 0x100).toString(16).slice(1));\n}\nexport function unsafeStringify(arr, offset = 0) {\n // Note: Be careful editing this code! It's been tuned for performance\n // and works in ways you may not expect. See https://github.com/uuidjs/uuid/pull/434\n //\n // Note to future-self: No, you can't remove the `toLowerCase()` call.\n // REF: https://github.com/uuidjs/uuid/pull/677#issuecomment-1757351351\n return (byteToHex[arr[offset + 0]] + byteToHex[arr[offset + 1]] + byteToHex[arr[offset + 2]] + byteToHex[arr[offset + 3]] + '-' + byteToHex[arr[offset + 4]] + byteToHex[arr[offset + 5]] + '-' + byteToHex[arr[offset + 6]] + byteToHex[arr[offset + 7]] + '-' + byteToHex[arr[offset + 8]] + byteToHex[arr[offset + 9]] + '-' + byteToHex[arr[offset + 10]] + byteToHex[arr[offset + 11]] + byteToHex[arr[offset + 12]] + byteToHex[arr[offset + 13]] + byteToHex[arr[offset + 14]] + byteToHex[arr[offset + 15]]).toLowerCase();\n}\nfunction stringify(arr, offset = 0) {\n var uuid = unsafeStringify(arr, offset);\n // Consistency check for valid UUID. If this throws, it's likely due to one\n // of the following:\n // - One or more input array values don't map to a hex octet (leading to\n // \"undefined\" in the uuid)\n // - Invalid input values for the RFC `version` or `variant` fields\n if (!validate(uuid)) {\n throw TypeError('Stringified UUID is invalid');\n }\n return uuid;\n}\nexport default stringify;","// Unique ID creation requires a high quality random # generator. In the browser we therefore\n// require the crypto API and do not support built-in fallback to lower quality random number\n// generators (like Math.random()).\n\nvar getRandomValues;\nvar rnds8 = new Uint8Array(16);\nexport default function rng() {\n // lazy load so that environments that need to polyfill have a chance to do so\n if (!getRandomValues) {\n // getRandomValues needs to be invoked in a context where \"this\" is a Crypto implementation.\n getRandomValues = typeof crypto !== 'undefined' && crypto.getRandomValues && crypto.getRandomValues.bind(crypto);\n if (!getRandomValues) {\n throw new Error('crypto.getRandomValues() not supported. See https://github.com/uuidjs/uuid#getrandomvalues-not-supported');\n }\n }\n return getRandomValues(rnds8);\n}","var randomUUID = typeof crypto !== 'undefined' && crypto.randomUUID && crypto.randomUUID.bind(crypto);\nexport default {\n randomUUID\n};","import native from './native.js';\nimport rng from './rng.js';\nimport { unsafeStringify } from './stringify.js';\nfunction v4(options, buf, offset) {\n if (native.randomUUID && !buf && !options) {\n return native.randomUUID();\n }\n options = options || {};\n var rnds = options.random || (options.rng || rng)();\n\n // Per 4.4, set bits for version and `clock_seq_hi_and_reserved`\n rnds[6] = rnds[6] & 0x0f | 0x40;\n rnds[8] = rnds[8] & 0x3f | 0x80;\n\n // Copy bytes to buffer, if provided\n if (buf) {\n offset = offset || 0;\n for (var i = 0; i < 16; ++i) {\n buf[offset + i] = rnds[i];\n }\n return buf;\n }\n return unsafeStringify(rnds);\n}\nexport default v4;","import { jsx, jsxs, Fragment } from 'react/jsx-runtime';\nimport cx from 'classnames';\nimport { createContext, useState, useEffect, useCallback, useMemo, useContext, forwardRef, useRef } from 'react';\nimport { B as Button } from './Button-BHwg8Uip.js';\nimport { v4 } from 'uuid';\nimport { A as Alert } from './Alert-BmiMaHHl.js';\nimport { P as ProgressBar } from './ProgressBar-chBw0MyR.js';\nimport { u as useSwipe } from './useSwipe-DIUHs7T5.js';\nimport { S as SrOnly } from './SrOnly-BXm1DGl3.js';\nimport { u as useMergeRefs } from './useMergeRefs-Bde85AWI.js';\n\nimport './Toaster.css';const toaster = \"_toaster_nxs96_3\";\nconst hidden = \"_hidden_nxs96_65\";\nconst stacked = \"_stacked_nxs96_72\";\nconst open = \"_open_nxs96_164\";\nconst close = \"_close_nxs96_165\";\nconst slideIn = \"_slideIn_nxs96_1\";\nconst slideOut = \"_slideOut_nxs96_1\";\nconst styles = {\n\ttoaster: toaster,\n\t\"toast-wrapper\": \"_toast-wrapper_nxs96_28\",\n\t\"toast-alert\": \"_toast-alert_nxs96_42\",\n\t\"alert-action\": \"_alert-action_nxs96_47\",\n\t\"message-container\": \"_message-container_nxs96_53\",\n\t\"show-extra-toast\": \"_show-extra-toast_nxs96_62\",\n\thidden: hidden,\n\tstacked: stacked,\n\t\"stack-one\": \"_stack-one_nxs96_75\",\n\t\"stack-two\": \"_stack-two_nxs96_75\",\n\t\"stacked-show-extra\": \"_stacked-show-extra_nxs96_91\",\n\t\"stacked-extra\": \"_stacked-extra_nxs96_105\",\n\t\"show-more-button-container\": \"_show-more-button-container_nxs96_118\",\n\t\"show-collapse-button-container\": \"_show-collapse-button-container_nxs96_119\",\n\t\"show-collapse-button\": \"_show-collapse-button_nxs96_119\",\n\topen: open,\n\tclose: close,\n\tslideIn: slideIn,\n\tslideOut: slideOut\n};\n\nconst ToastProviderContext = createContext({\n toasts: [],\n setToasts: () => [],\n toastHeights: [],\n setToastHeights: () => [],\n getToasterHeight: () => 0,\n toastsBeforeStack: 3,\n setToastsBeforeStack: () => [],\n extraToastsVisible: false,\n setExtraToastsVisible: () => []\n});\nconst ToastProvider = (children) => {\n const [toasts, setToasts] = useState([]);\n const [toastHeights, setToastHeights] = useState([]);\n const [toastsBeforeStack, setToastsBeforeStack] = useState(3);\n const [extraToastsVisible, setExtraToastsVisible] = useState(false);\n const removeDuplicateToasts = (toasts2) => {\n const toastIds = /* @__PURE__ */ new Set();\n const uniqueToasts = toasts2.filter((toast) => {\n if (toastIds.has(toast.id)) {\n console.error(\n `Encountered toast with duplicate id ${toast.id}. Each toast id needs to be unique.`\n );\n return false;\n } else {\n toastIds.add(toast.id);\n return true;\n }\n });\n return uniqueToasts;\n };\n useEffect(() => {\n const uniqueToasts = removeDuplicateToasts(toasts);\n if (toasts.length !== uniqueToasts.length) {\n setToasts(uniqueToasts);\n }\n }, [toasts]);\n const getToasterHeight = useCallback(\n (index) => {\n const toastHeightsOnly = toastHeights.filter((t, i) => {\n return index !== undefined ? i > index : true;\n }).map((t) => t.height);\n if (toastHeightsOnly.length > 0) {\n if (extraToastsVisible) {\n return toastHeightsOnly.reduce((totalHeight, currentHeight) => {\n return totalHeight + currentHeight;\n });\n }\n return toastHeightsOnly.filter((t, i) => i >= toastHeightsOnly.length - toastsBeforeStack).reduce((totalHeight, currentHeight) => {\n return totalHeight + currentHeight;\n });\n }\n return 0;\n },\n [toastHeights, extraToastsVisible, toastsBeforeStack]\n );\n const value = useMemo(\n () => ({\n toasts,\n setToasts,\n toastHeights,\n setToastHeights,\n getToasterHeight,\n toastsBeforeStack,\n setToastsBeforeStack,\n extraToastsVisible,\n setExtraToastsVisible\n }),\n [\n extraToastsVisible,\n getToasterHeight,\n toastHeights,\n toasts,\n toastsBeforeStack\n ]\n );\n return /* @__PURE__ */ jsx(ToastProviderContext.Provider, { value, ...children });\n};\nconst useToasts = () => {\n const context = useContext(ToastProviderContext);\n if (context == null) {\n throw new Error(\"useToasts must be wrapped in <ToastProvider />\");\n }\n return context;\n};\n\nconst toast = () => {\n const toastMethods = [\n \"info\",\n \"success\",\n \"warning\",\n \"danger\",\n \"promise\",\n \"update\",\n \"dismiss\"\n ];\n console.error(\n \"Please use one of the following toast methods:\\n\",\n ...toastMethods.map((m) => `\ttoast.${m}()\n`)\n );\n};\nconst TOAST_EVENT_NAME = \"hammer-toast\";\nconst TOAST_TYPES = [\"info\", \"success\", \"warning\", \"danger\"];\nconst methods = {};\nTOAST_TYPES.forEach((type) => {\n methods[type] = (props) => {\n const uniqueId = v4();\n const ToastAddEvent = new CustomEvent(TOAST_EVENT_NAME, {\n composed: true,\n detail: {\n id: uniqueId,\n eventType: \"add\",\n status: type,\n createdAt: Date.now(),\n ...props\n }\n });\n dispatchEvent(ToastAddEvent);\n return uniqueId;\n };\n});\nconst update = (id, props) => {\n const ToastEvent = new CustomEvent(\n TOAST_EVENT_NAME,\n {\n composed: true,\n detail: {\n eventType: \"update\",\n id,\n ...props\n }\n }\n );\n dispatchEvent(ToastEvent);\n};\nconst dismiss = (id) => {\n const ToastEvent = new CustomEvent(\n TOAST_EVENT_NAME,\n {\n composed: true,\n detail: {\n eventType: \"dismiss\",\n id\n }\n }\n );\n dispatchEvent(ToastEvent);\n};\nconst promise = async (promise2, toastConfig) => {\n const { onClose, ...loadingToastConfig } = toastConfig.loading;\n let closedWhileLoading = false;\n const onCloseWhileLoading = (e) => {\n toastConfig.loading.onClose?.(e);\n closedWhileLoading = true;\n };\n const id = toast.info({\n ...loadingToastConfig,\n onClose: onCloseWhileLoading,\n duration: false\n });\n await Promise.resolve(promise2).then((res) => {\n if (closedWhileLoading) {\n toast.success({\n ...toastConfig.success(res)\n });\n } else {\n toast.update(id, {\n ...toastConfig.success(res),\n status: \"success\"\n });\n }\n }).catch((err) => {\n if (closedWhileLoading) {\n toast.danger({\n ...toastConfig.error(err)\n });\n } else {\n toast.update(id, {\n ...toastConfig.error(err),\n status: \"danger\"\n });\n }\n });\n return id;\n};\ntoast.info = methods.info;\ntoast.success = methods.success;\ntoast.warning = methods.warning;\ntoast.danger = methods.danger;\ntoast.update = update;\ntoast.dismiss = dismiss;\ntoast.promise = promise;\n\nconst useShowMoreButtonPositionStyles = () => {\n const { toastHeights, toastsBeforeStack } = useToasts();\n const totalToasts = toastHeights.length;\n const extraSpace = totalToasts > toastsBeforeStack + 1 ? \"2rem\" : \"1rem\";\n const top = useMemo(() => {\n if (totalToasts > toastsBeforeStack) {\n return toastHeights.filter((t, i) => i >= totalToasts - toastsBeforeStack).map((t) => t.height).reduce((t, c) => t + c);\n }\n return \"unset\";\n }, [toastHeights, toastsBeforeStack]);\n return {\n // -0.75px fixes hover issue when 1rem != 16px due to pixel rounding\n top: `calc(${top}px + ${extraSpace} - 0.75px)`,\n position: \"absolute\",\n display: totalToasts > toastsBeforeStack ? undefined : \"none\"\n };\n};\nconst STACKED_TOAST_HEIGHT = \"5.3125rem\";\nconst STACKED_TOAST_PEEK_HEIGHT = \"1rem\";\nconst TOAST_GAP = `${24 / 16}rem`;\nconst useToastPositionStyles = (index) => {\n const {\n toasts,\n toastHeights,\n getToasterHeight,\n toastsBeforeStack,\n extraToastsVisible\n } = useToasts();\n const toastCount = toasts.length;\n const toasterHeight = getToasterHeight(index);\n return useMemo(() => {\n if (index === toastCount - 1) {\n return {\n top: TOAST_GAP,\n zIndex: 3\n };\n } else if (\n // all toasts when show more is clicked\n extraToastsVisible || // or visible toasts when stacked\n !extraToastsVisible && (toastCount <= toastsBeforeStack || toastCount > toastsBeforeStack && index >= toastCount - toastsBeforeStack)\n ) {\n return {\n top: `calc(${toasterHeight}px + ${TOAST_GAP})`\n };\n } else {\n if (toastCount > toastsBeforeStack) {\n if (index === toastCount - toastsBeforeStack - 1) {\n return {\n top: `calc(${toasterHeight || 0}px - ${STACKED_TOAST_HEIGHT} +\n ${STACKED_TOAST_PEEK_HEIGHT})`,\n zIndex: 1\n };\n } else if (index <= toastCount - toastsBeforeStack - 2) {\n return {\n top: `calc(${toasterHeight || 0}px -\n ${STACKED_TOAST_HEIGHT} \n + ${STACKED_TOAST_PEEK_HEIGHT} * 2)`,\n zIndex: 0\n };\n }\n }\n }\n return undefined;\n }, [toastHeights]);\n};\nconst addOrUpdateToastHeight = (toastId, toastHeight, setToastHeights) => {\n setToastHeights((prev) => {\n if (prev.find((t) => t.id === toastId)) {\n return prev.map((t) => {\n if (t.id === toastId) {\n return { ...t, height: toastHeight };\n }\n return t;\n });\n }\n return [\n ...prev,\n {\n id: toastId,\n height: toastHeight\n }\n ];\n });\n};\nconst setToastsAfterClose = (setToasts, setToastHeights, id) => {\n setToasts((prev) => id ? prev.filter((t) => t.id !== id) : []);\n setToastHeights((prev) => id ? prev.filter((t) => t.id !== id) : []);\n};\nconst closeToast = (setToasts, setToastHeights, closingToastClassName, id) => {\n const prefersReducedMotion = globalThis.matchMedia(\n `(prefers-reduced-motion: reduce)`\n ).matches;\n if (prefersReducedMotion) {\n setToastsAfterClose(setToasts, setToastHeights, id);\n } else {\n setToasts(\n (prev) => prev.map((t) => {\n if (!id || t.id === id) {\n return {\n ...t,\n toastClassName: closingToastClassName\n };\n }\n return t;\n })\n );\n setTimeout(() => {\n setToastsAfterClose(setToasts, setToastHeights, id);\n }, 290);\n }\n};\nconst useCloseToast = (closingToastClassName) => {\n const { setToasts, setToastHeights } = useToasts();\n return (id) => {\n closeToast(setToasts, setToastHeights, closingToastClassName, id);\n };\n};\n\nconst Toast = forwardRef(\n ({\n actions,\n containerClassName,\n createdAt,\n duration,\n index = 0,\n isBelowStackIndex,\n isStacked,\n message,\n onClose,\n pausedStatus,\n progress,\n toastClassName,\n ...alertProps\n }, ref) => {\n const { setToastHeights, extraToastsVisible } = useToasts();\n const closeToast = useCloseToast(styles.close);\n const toastPositionStyles = useToastPositionStyles(index);\n const toastWrapperRef = useRef(null);\n const timerRef = useRef();\n const pausedAtRef = useRef(0);\n const createdAtRef = useRef(createdAt ?? 0);\n const hasBeenStackedRef = useRef(false);\n const [transitionClass, setTransitionClass] = useState(\n styles.hidden\n );\n const [toastOpened, setToastOpened] = useState(false);\n const alertClasses = cx(\n styles[\"toast-alert\"],\n toastClassName,\n transitionClass\n );\n useEffect(() => {\n if (!toastOpened) {\n setTransitionClass(styles.open);\n setToastOpened(true);\n }\n }, []);\n useEffect(() => {\n if (toastWrapperRef.current && toastOpened && !isStacked) {\n if (isBelowStackIndex && extraToastsVisible) {\n setTimeout(() => {\n const height = toastWrapperRef.current?.clientHeight;\n addOrUpdateToastHeight(alertProps.id, height ?? 0, setToastHeights);\n }, 300);\n } else {\n const height = toastWrapperRef.current.clientHeight;\n addOrUpdateToastHeight(alertProps.id, height, setToastHeights);\n }\n }\n }, [\n toastOpened,\n isStacked,\n extraToastsVisible,\n // toast updates\n actions,\n message,\n alertProps.title\n ]);\n useEffect(() => {\n if (duration && !isStacked) {\n if (!pausedStatus) {\n timerRef.current = setTimeout(\n () => closeToast(alertProps.id),\n duration\n );\n return () => clearTimeout(timerRef.current);\n } else if (typeof pausedStatus === \"number\") {\n clearTimeout(timerRef.current);\n pausedAtRef.current = pausedStatus;\n } else if (pausedStatus === \"resumed\") {\n const remainingDuration = (\n // rendering new toast after initial hover\n pausedAtRef.current === 0 ? duration : (\n // resume timer after valid hover\n duration + (createdAtRef.current || 0) - pausedAtRef.current\n )\n );\n timerRef.current = setTimeout(() => {\n closeToast(alertProps.id);\n pausedAtRef.current = 0;\n }, remainingDuration);\n return () => clearTimeout(timerRef.current);\n }\n }\n }, [createdAtRef.current, duration, pausedStatus]);\n useEffect(() => {\n if (duration) {\n if (isStacked) {\n clearTimeout(timerRef.current);\n hasBeenStackedRef.current = true;\n } else if (!isStacked && hasBeenStackedRef.current && !(typeof pausedStatus === \"number\")) {\n createdAtRef.current = Date.now();\n timerRef.current = setTimeout(() => {\n closeToast(alertProps.id);\n hasBeenStackedRef.current = false;\n }, duration);\n return () => clearTimeout(timerRef.current);\n }\n }\n }, [isStacked, duration]);\n const onSwipe = (dir) => {\n if (dir === \"right\") {\n toast.dismiss(alertProps.id);\n return;\n }\n };\n const { direction, ...touchProps } = useSwipe(onSwipe);\n const alertCloseProps = isStacked && !extraToastsVisible ? {} : {\n onClose\n };\n if (duration !== false && actions) {\n throw new Error(\n \"If actions are provided to toast message, duration must be false.\"\n );\n }\n const hasMessage = message && message !== \"\";\n const hasProgress = progress != null;\n const hasActions = actions && duration === false;\n return /* @__PURE__ */ jsx(\n \"div\",\n {\n \"data-anv\": \"toast\",\n className: containerClassName,\n style: toastPositionStyles ?? { top: \"1.5rem\" },\n ref: toastWrapperRef,\n onAnimationStart: () => setToastOpened(true),\n role: isStacked ? \"presentation\" : undefined,\n ...touchProps,\n children: /* @__PURE__ */ jsx(\n Alert,\n {\n className: alertClasses,\n ...alertProps,\n ...alertCloseProps,\n ref,\n tabIndex: isStacked && !extraToastsVisible ? -1 : 0,\n children: hasMessage || hasProgress || hasActions ? /* @__PURE__ */ jsxs(Fragment, { children: [\n hasMessage ? /* @__PURE__ */ jsx(\n \"div\",\n {\n className: styles[\"message-container\"],\n id: `toast-message-${alertProps.id}`,\n children: message\n }\n ) : null,\n hasProgress ? /* @__PURE__ */ jsx(Fragment, { children: progress === \"indeterminate\" ? /* @__PURE__ */ jsx(\n ProgressBar,\n {\n \"aria-labelledby\": `toast-message-${alertProps.id}`,\n indeterminate: true\n }\n ) : /* @__PURE__ */ jsx(\n ProgressBar,\n {\n \"aria-labelledby\": `toast-message-${alertProps.id}`,\n value: progress\n }\n ) }) : null,\n hasActions ? /* @__PURE__ */ jsxs(\"div\", { className: styles[\"alert-action\"], children: [\n /* @__PURE__ */ jsx(\n Button,\n {\n appearance: actions.primary.appearance,\n onClick: actions.primary.onClick,\n size: \"small\",\n children: actions.primary.label\n }\n ),\n actions.secondary && /* @__PURE__ */ jsx(\n Button,\n {\n appearance: actions.secondary.appearance,\n onClick: actions.secondary.onClick,\n size: \"small\",\n children: actions.secondary.label\n }\n )\n ] }) : null\n ] }) : null\n }\n )\n }\n );\n }\n);\nToast.displayName = \"Toast\";\n\nfunction useHotkeyFocus({\n disabled,\n hotkey,\n onHotkeyIn,\n onHotkeyOut,\n refToFocus,\n rootRef\n}) {\n const [shouldEscapeRefocus, setShouldEscapeRefocus] = useState(false);\n const previousFocusElement = useRef(null);\n useEffect(() => {\n if (disabled || typeof document === \"undefined\") return;\n const rootElement = rootRef.current;\n const blurHandler = (e) => {\n if (e.relatedTarget && rootElement.contains(e.relatedTarget)) {\n return;\n }\n setShouldEscapeRefocus(false);\n };\n const keyDownHandler = async (e) => {\n const activeElement = document.activeElement?.shadowRoot?.activeElement || document.activeElement;\n if (activeElement?.tagName.toLowerCase() !== \"input\" && activeElement?.tagName.toLowerCase() !== \"textarea\" && activeElement?.tagName.toLowerCase() !== \"pre\" && e.key === hotkey) {\n e.preventDefault();\n previousFocusElement.current = activeElement;\n await onHotkeyIn?.();\n if (refToFocus.current) {\n refToFocus.current.focus();\n setShouldEscapeRefocus(true);\n if (refToFocus.current.scrollTo) {\n refToFocus.current.scrollTo();\n }\n }\n } else if (e.code === \"Escape\" && shouldEscapeRefocus) {\n onHotkeyOut?.();\n if (previousFocusElement.current && previousFocusElement.current.tagName.toLowerCase() !== \"body\") {\n previousFocusElement.current.focus();\n } else {\n activeElement.blur();\n }\n }\n };\n document.addEventListener(\"keydown\", keyDownHandler);\n rootElement.addEventListener(\"focusout\", blurHandler);\n return () => {\n document.removeEventListener(\"keydown\", keyDownHandler);\n rootElement.removeEventListener(\"focusout\", blurHandler);\n };\n }, [\n hotkey,\n disabled,\n rootRef,\n shouldEscapeRefocus,\n onHotkeyIn,\n refToFocus,\n onHotkeyOut\n ]);\n return { returnFocusRef: previousFocusElement };\n}\n\nconst Toaster = forwardRef(\n (props, ref) => {\n return /* @__PURE__ */ jsx(ToastProvider, { children: /* @__PURE__ */ jsx(ToasterContent, { ...props, ...ref }) });\n }\n);\nconst ToasterContent = forwardRef(\n ({\n className,\n duration = false,\n focusKey = \"t\",\n forceRender = false,\n id,\n toastsBeforeStack = 3,\n ...props\n }, ref) => {\n const toasterRef = useRef(null);\n const firstToastRef = useRef(null);\n const mergedToasterRef = useMergeRefs([toasterRef, ref]);\n const {\n toasts,\n setToastsBeforeStack,\n extraToastsVisible,\n setExtraToastsVisible,\n setToasts,\n getToasterHeight\n } = useToasts();\n const toastCount = toasts.length;\n const lastToastCount = useRef(0);\n const a1ToastGroupObserver = useRef(null);\n const a1ToastGroupObserverConnected = useRef(false);\n const closeToast = useCloseToast(styles.close);\n const [toasterHeight, setToasterHeight] = useState(0);\n const [a1ToastGroups, setA1ToastGroups] = useState([]);\n const updateA1ToastGroups = () => {\n const mfeRoots = document.querySelectorAll(\n \"[data-mfe-portal-name],[data-mfe-name]\"\n );\n const a1ToastGroupsLocal = [\n ...document.getElementsByClassName(\"ToastGroup\")\n ];\n if (mfeRoots.length > 0) {\n mfeRoots.forEach((el) => {\n setTimeout(() => {\n if (el.shadowRoot) {\n a1ToastGroupsLocal.push(\n ...el.shadowRoot.querySelectorAll(\".ToastGroup\")\n );\n }\n setA1ToastGroups(a1ToastGroupsLocal);\n });\n });\n } else {\n setA1ToastGroups(a1ToastGroupsLocal);\n }\n };\n const handleToasterBlur = useCallback(() => {\n setExtraToastsVisible(false);\n setToastPausedStatus(\"resumed\");\n if (toasterRef.current?.scrollTo) {\n toasterRef.current?.scrollTo(0, 0);\n }\n }, [setExtraToastsVisible]);\n useEffect(() => {\n const toastEventListener = (e) => {\n const toasters = document.querySelectorAll(\"[data-anv='toaster']\");\n const shadowToasters = toasterRef.current?.getRootNode()?.querySelectorAll(\"[data-anv='toaster']\") || [];\n if (toasters.length && id !== toasters[0].getAttribute(\"data-toaster-id\")) {\n return;\n } else if (\n // Toaster(s) exist in the shadow dom, bail out if this toaster is not the first one\n shadowToasters.length && id !== shadowToasters[0].getAttribute(\"data-toaster-id\")\n ) {\n return;\n }\n const { eventType, ...toastProps } = e.detail;\n if (eventType === \"add\") {\n const toastAddProps = toastProps;\n if (!toastAddProps.toasterId || toastAddProps.toasterId === id) {\n setToasts((prev) => [...prev, toastProps]);\n }\n } else if (eventType === \"update\") {\n setToasts((prev) => {\n return prev.map((t) => {\n if (t.id === toastProps.id) {\n return {\n ...t,\n ...toastProps\n };\n } else {\n return t;\n }\n });\n });\n } else if (eventType === \"dismiss\") {\n if (toastProps.id) {\n closeToast(toastProps.id);\n } else {\n closeToast();\n }\n }\n };\n window.addEventListener(\"hammer-toast\", toastEventListener);\n a1ToastGroupObserver.current = new MutationObserver(updateA1ToastGroups);\n return () => window.removeEventListener(\"hammer-toast\", toastEventListener);\n }, []);\n useEffect(() => {\n if (a1ToastGroupObserver.current !== null) {\n if (toastCount > 0 && a1ToastGroupObserverConnected.current === false) {\n a1ToastGroupObserver.current.observe(document.body, {\n childList: true,\n subtree: true\n });\n a1ToastGroupObserverConnected.current = true;\n updateA1ToastGroups();\n } else if (toastCount === 0 && a1ToastGroupObserverConnected.current === true) {\n a1ToastGroupObserver.current.disconnect();\n a1ToastGroupObserverConnected.current = false;\n }\n }\n }, [toastCount]);\n useEffect(() => {\n if (a1ToastGroups && a1ToastGroups.length > 0) {\n a1ToastGroups.forEach((group) => {\n group.style.top = toastCount === 0 ? \"16px\" : `calc(${toasterHeight}px + 3.5rem)`;\n });\n }\n }, [toasterHeight, a1ToastGroups.length]);\n useEffect(() => {\n let timer;\n if (toastCount > lastToastCount.current) {\n setToasterHeight(getToasterHeight());\n } else {\n timer = setTimeout(() => setToasterHeight(getToasterHeight()), 290);\n }\n lastToastCount.current = toastCount;\n return () => {\n clearTimeout(timer);\n };\n }, [getToasterHeight]);\n useEffect(() => {\n setToastsBeforeStack(toastsBeforeStack);\n }, [setToastsBeforeStack, toastsBeforeStack]);\n const isToasterEmpty = toastCount === 0;\n const { returnFocusRef } = useHotkeyFocus({\n disabled: isToasterEmpty,\n hotkey: focusKey,\n onHotkeyIn: async () => {\n setExtraToastsVisible(true);\n return new Promise((resolve) => {\n setTimeout(() => {\n resolve();\n }, 100);\n });\n },\n onHotkeyOut: () => {\n setExtraToastsVisible(false);\n handleToasterBlur();\n },\n refToFocus: firstToastRef,\n rootRef: toasterRef\n });\n const showMoreButtonPositionStyles = useShowMoreButtonPositionStyles();\n const [toastPausedStatus, setToastPausedStatus] = useState(undefined);\n const showMoreButton = !extraToastsVisible && toastCount > toastsBeforeStack;\n const extraToastsLength = toastCount - toastsBeforeStack;\n const showMoreButtonText = `${extraToastsLength} more message${extraToastsLength > 1 ? \"s\" : \"\"}`;\n const toasterClasses = cx(styles.toaster, className, {\n [styles[\"show-more-button\"]]: showMoreButton,\n [styles[\"show-extra-toast\"]]: extraToastsVisible\n });\n const handleToasterFocusHover = () => {\n if (toastPausedStatus === \"resumed\" || toastPausedStatus === undefined) {\n setToastPausedStatus(Date.now());\n }\n };\n const handleToasterOnBlur = () => {\n if (!toasterRef.current?.matches(\":focus-within\")) {\n handleToasterBlur();\n }\n };\n return /* @__PURE__ */ jsxs(Fragment, { children: [\n /* @__PURE__ */ jsxs(\n \"div\",\n {\n \"data-anv\": \"toaster\",\n \"data-toaster-id\": id,\n className: toasterClasses,\n ref: mergedToasterRef,\n onMouseOver: handleToasterFocusHover,\n onMouseLeave: handleToasterBlur,\n onFocus: handleToasterFocusHover,\n onBlur: handleToasterOnBlur,\n style: {\n height: extraToastsVisible ? \"100vh\" : `calc(${toasterHeight}px + 2rem + var(--toaster-padding))`\n },\n ...props,\n children: [\n toasts.map(({ toastClassName, onClose, ...toastProps }, index) => {\n const isStacked = !extraToastsVisible && index < toastCount - toastsBeforeStack;\n const isLastToastDisplayed = index === toastCount - toastsBeforeStack;\n const isHidden = index < toastCount - toastsBeforeStack - 2;\n const toastClasses = cx(styles.toast, toastClassName);\n const toastContainerClasses = cx(styles[\"toast-wrapper\"], {\n [styles.stacked]: isStacked || isLastToastDisplayed,\n [styles[\"stack-one\"]]: isStacked && index === toastCount - toastsBeforeStack - 1,\n [styles[\"stack-two\"]]: isStacked && index === toastCount - toastsBeforeStack - 2,\n [styles[\"stacked-extra\"]]: isHidden,\n [styles[\"stacked-show-extra\"]]: extraToastsVisible\n });\n const handleOnClose = (e) => {\n onClose?.(e);\n returnFocusRef.current?.focus();\n toast.dismiss(toastProps.id);\n };\n return /* @__PURE__ */ jsx(\n Toast,\n {\n containerClassName: toastContainerClasses,\n duration,\n index,\n isStacked,\n isBelowStackIndex: index < toastCount - toastsBeforeStack,\n onClose: handleOnClose,\n pausedStatus: toastPausedStatus,\n toastClassName: toastClasses,\n ref: index === 0 ? firstToastRef : undefined,\n ...toastProps\n },\n toastProps.id\n );\n }),\n showMoreButton && /* @__PURE__ */ jsx(\n \"div\",\n {\n className: styles[\"show-more-button-container\"],\n style: showMoreButtonPositionStyles,\n children: /* @__PURE__ */ jsx(\n Button,\n {\n className: styles[\"show-collapse-button\"],\n onClick: () => setExtraToastsVisible(true),\n appearance: \"secondary\",\n tabIndex: 0,\n children: showMoreButtonText\n }\n )\n }\n ),\n /* @__PURE__ */ jsxs(SrOnly, { \"aria-live\": \"polite\", children: [\n \"New toast message appeared. Press the \",\n focusKey,\n \" key to focus on the toast messages. Press escape to return focus to previous position.\"\n ] })\n ]\n }\n ),\n extraToastsVisible && /* @__PURE__ */ jsx(\"div\", { className: styles[\"show-collapse-button-container\"], children: /* @__PURE__ */ jsx(\n Button,\n {\n className: styles[\"show-collapse-button\"],\n onClick: handleToasterBlur,\n appearance: \"secondary\",\n children: \"Collapse Messages\"\n }\n ) })\n ] });\n }\n);\nToaster.displayName = \"Toaster\";\nToasterContent.displayName = \"ToasterContent\";\n\nexport { Toaster as T, toast as t };\n//# sourceMappingURL=Toaster-DrzbHeVc.js.map\n","import {\n ToasterProps as CoreToasterProps,\n Toaster as CoreToaster,\n} from \"@servicetitan/hammer-react\";\nimport { Ref, forwardRef } from \"react\";\n\nexport type ToasterProps = CoreToasterProps;\n\nexport const Toaster = forwardRef(\n (props: CoreToasterProps, ref: Ref<HTMLDivElement>) => {\n return <CoreToaster ref={ref} {...props} />;\n },\n);\n","import {\n toast as coreToast,\n toastProps as coreToastProps,\n} from \"@servicetitan/hammer-react\";\n\nexport type toastProps = coreToastProps;\n\nexport const toast = coreToast;\n"],"names":["toast","Toaster","CoreToaster","coreToast"],"mappings":"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","x_google_ignoreList":[0,1,2,3]}
1
+ {"version":3,"file":"toast-DMKrL2Ew.js","sources":["../../../node_modules/.pnpm/uuid@10.0.0/node_modules/uuid/dist/esm-browser/stringify.js","../../../node_modules/.pnpm/uuid@10.0.0/node_modules/uuid/dist/esm-browser/rng.js","../../../node_modules/.pnpm/uuid@10.0.0/node_modules/uuid/dist/esm-browser/native.js","../../../node_modules/.pnpm/uuid@10.0.0/node_modules/uuid/dist/esm-browser/v4.js","../../hammer-react/dist/Toaster-CJWQiHPs.js","../src/components/Toast/Toaster.tsx","../src/components/Toast/toast.ts"],"sourcesContent":["import validate from './validate.js';\n\n/**\n * Convert array of 16 byte values to UUID string format of the form:\n * XXXXXXXX-XXXX-XXXX-XXXX-XXXXXXXXXXXX\n */\nvar byteToHex = [];\nfor (var i = 0; i < 256; ++i) {\n byteToHex.push((i + 0x100).toString(16).slice(1));\n}\nexport function unsafeStringify(arr, offset = 0) {\n // Note: Be careful editing this code! It's been tuned for performance\n // and works in ways you may not expect. See https://github.com/uuidjs/uuid/pull/434\n //\n // Note to future-self: No, you can't remove the `toLowerCase()` call.\n // REF: https://github.com/uuidjs/uuid/pull/677#issuecomment-1757351351\n return (byteToHex[arr[offset + 0]] + byteToHex[arr[offset + 1]] + byteToHex[arr[offset + 2]] + byteToHex[arr[offset + 3]] + '-' + byteToHex[arr[offset + 4]] + byteToHex[arr[offset + 5]] + '-' + byteToHex[arr[offset + 6]] + byteToHex[arr[offset + 7]] + '-' + byteToHex[arr[offset + 8]] + byteToHex[arr[offset + 9]] + '-' + byteToHex[arr[offset + 10]] + byteToHex[arr[offset + 11]] + byteToHex[arr[offset + 12]] + byteToHex[arr[offset + 13]] + byteToHex[arr[offset + 14]] + byteToHex[arr[offset + 15]]).toLowerCase();\n}\nfunction stringify(arr, offset = 0) {\n var uuid = unsafeStringify(arr, offset);\n // Consistency check for valid UUID. If this throws, it's likely due to one\n // of the following:\n // - One or more input array values don't map to a hex octet (leading to\n // \"undefined\" in the uuid)\n // - Invalid input values for the RFC `version` or `variant` fields\n if (!validate(uuid)) {\n throw TypeError('Stringified UUID is invalid');\n }\n return uuid;\n}\nexport default stringify;","// Unique ID creation requires a high quality random # generator. In the browser we therefore\n// require the crypto API and do not support built-in fallback to lower quality random number\n// generators (like Math.random()).\n\nvar getRandomValues;\nvar rnds8 = new Uint8Array(16);\nexport default function rng() {\n // lazy load so that environments that need to polyfill have a chance to do so\n if (!getRandomValues) {\n // getRandomValues needs to be invoked in a context where \"this\" is a Crypto implementation.\n getRandomValues = typeof crypto !== 'undefined' && crypto.getRandomValues && crypto.getRandomValues.bind(crypto);\n if (!getRandomValues) {\n throw new Error('crypto.getRandomValues() not supported. See https://github.com/uuidjs/uuid#getrandomvalues-not-supported');\n }\n }\n return getRandomValues(rnds8);\n}","var randomUUID = typeof crypto !== 'undefined' && crypto.randomUUID && crypto.randomUUID.bind(crypto);\nexport default {\n randomUUID\n};","import native from './native.js';\nimport rng from './rng.js';\nimport { unsafeStringify } from './stringify.js';\nfunction v4(options, buf, offset) {\n if (native.randomUUID && !buf && !options) {\n return native.randomUUID();\n }\n options = options || {};\n var rnds = options.random || (options.rng || rng)();\n\n // Per 4.4, set bits for version and `clock_seq_hi_and_reserved`\n rnds[6] = rnds[6] & 0x0f | 0x40;\n rnds[8] = rnds[8] & 0x3f | 0x80;\n\n // Copy bytes to buffer, if provided\n if (buf) {\n offset = offset || 0;\n for (var i = 0; i < 16; ++i) {\n buf[offset + i] = rnds[i];\n }\n return buf;\n }\n return unsafeStringify(rnds);\n}\nexport default v4;","import { jsx, jsxs, Fragment } from 'react/jsx-runtime';\nimport cx from 'classnames';\nimport { createContext, useState, useEffect, useCallback, useMemo, useContext, forwardRef, useRef } from 'react';\nimport { B as Button } from './Button-BHwg8Uip.js';\nimport { v4 } from 'uuid';\nimport { A as Alert } from './Alert-BmiMaHHl.js';\nimport { P as ProgressBar } from './ProgressBar-BrXijLda.js';\nimport { u as useSwipe } from './useSwipe-DIUHs7T5.js';\nimport { S as SrOnly } from './SrOnly-BXm1DGl3.js';\nimport { u as useMergeRefs } from './useMergeRefs-Bde85AWI.js';\n\nimport './Toaster.css';const toaster = \"_toaster_nxs96_3\";\nconst hidden = \"_hidden_nxs96_65\";\nconst stacked = \"_stacked_nxs96_72\";\nconst open = \"_open_nxs96_164\";\nconst close = \"_close_nxs96_165\";\nconst slideIn = \"_slideIn_nxs96_1\";\nconst slideOut = \"_slideOut_nxs96_1\";\nconst styles = {\n\ttoaster: toaster,\n\t\"toast-wrapper\": \"_toast-wrapper_nxs96_28\",\n\t\"toast-alert\": \"_toast-alert_nxs96_42\",\n\t\"alert-action\": \"_alert-action_nxs96_47\",\n\t\"message-container\": \"_message-container_nxs96_53\",\n\t\"show-extra-toast\": \"_show-extra-toast_nxs96_62\",\n\thidden: hidden,\n\tstacked: stacked,\n\t\"stack-one\": \"_stack-one_nxs96_75\",\n\t\"stack-two\": \"_stack-two_nxs96_75\",\n\t\"stacked-show-extra\": \"_stacked-show-extra_nxs96_91\",\n\t\"stacked-extra\": \"_stacked-extra_nxs96_105\",\n\t\"show-more-button-container\": \"_show-more-button-container_nxs96_118\",\n\t\"show-collapse-button-container\": \"_show-collapse-button-container_nxs96_119\",\n\t\"show-collapse-button\": \"_show-collapse-button_nxs96_119\",\n\topen: open,\n\tclose: close,\n\tslideIn: slideIn,\n\tslideOut: slideOut\n};\n\nconst ToastProviderContext = createContext({\n toasts: [],\n setToasts: () => [],\n toastHeights: [],\n setToastHeights: () => [],\n getToasterHeight: () => 0,\n toastsBeforeStack: 3,\n setToastsBeforeStack: () => [],\n extraToastsVisible: false,\n setExtraToastsVisible: () => []\n});\nconst ToastProvider = (children) => {\n const [toasts, setToasts] = useState([]);\n const [toastHeights, setToastHeights] = useState([]);\n const [toastsBeforeStack, setToastsBeforeStack] = useState(3);\n const [extraToastsVisible, setExtraToastsVisible] = useState(false);\n const removeDuplicateToasts = (toasts2) => {\n const toastIds = /* @__PURE__ */ new Set();\n const uniqueToasts = toasts2.filter((toast) => {\n if (toastIds.has(toast.id)) {\n console.error(\n `Encountered toast with duplicate id ${toast.id}. Each toast id needs to be unique.`\n );\n return false;\n } else {\n toastIds.add(toast.id);\n return true;\n }\n });\n return uniqueToasts;\n };\n useEffect(() => {\n const uniqueToasts = removeDuplicateToasts(toasts);\n if (toasts.length !== uniqueToasts.length) {\n setToasts(uniqueToasts);\n }\n }, [toasts]);\n const getToasterHeight = useCallback(\n (index) => {\n const toastHeightsOnly = toastHeights.filter((t, i) => {\n return index !== undefined ? i > index : true;\n }).map((t) => t.height);\n if (toastHeightsOnly.length > 0) {\n if (extraToastsVisible) {\n return toastHeightsOnly.reduce((totalHeight, currentHeight) => {\n return totalHeight + currentHeight;\n });\n }\n return toastHeightsOnly.filter((t, i) => i >= toastHeightsOnly.length - toastsBeforeStack).reduce((totalHeight, currentHeight) => {\n return totalHeight + currentHeight;\n });\n }\n return 0;\n },\n [toastHeights, extraToastsVisible, toastsBeforeStack]\n );\n const value = useMemo(\n () => ({\n toasts,\n setToasts,\n toastHeights,\n setToastHeights,\n getToasterHeight,\n toastsBeforeStack,\n setToastsBeforeStack,\n extraToastsVisible,\n setExtraToastsVisible\n }),\n [\n extraToastsVisible,\n getToasterHeight,\n toastHeights,\n toasts,\n toastsBeforeStack\n ]\n );\n return /* @__PURE__ */ jsx(ToastProviderContext.Provider, { value, ...children });\n};\nconst useToasts = () => {\n const context = useContext(ToastProviderContext);\n if (context == null) {\n throw new Error(\"useToasts must be wrapped in <ToastProvider />\");\n }\n return context;\n};\n\nconst toast = () => {\n const toastMethods = [\n \"info\",\n \"success\",\n \"warning\",\n \"danger\",\n \"promise\",\n \"update\",\n \"dismiss\"\n ];\n console.error(\n \"Please use one of the following toast methods:\\n\",\n ...toastMethods.map((m) => `\ttoast.${m}()\n`)\n );\n};\nconst TOAST_EVENT_NAME = \"hammer-toast\";\nconst TOAST_TYPES = [\"info\", \"success\", \"warning\", \"danger\"];\nconst methods = {};\nTOAST_TYPES.forEach((type) => {\n methods[type] = (props) => {\n const uniqueId = v4();\n const ToastAddEvent = new CustomEvent(TOAST_EVENT_NAME, {\n composed: true,\n detail: {\n id: uniqueId,\n eventType: \"add\",\n status: type,\n createdAt: Date.now(),\n ...props\n }\n });\n dispatchEvent(ToastAddEvent);\n return uniqueId;\n };\n});\nconst update = (id, props) => {\n const ToastEvent = new CustomEvent(\n TOAST_EVENT_NAME,\n {\n composed: true,\n detail: {\n eventType: \"update\",\n id,\n ...props\n }\n }\n );\n dispatchEvent(ToastEvent);\n};\nconst dismiss = (id) => {\n const ToastEvent = new CustomEvent(\n TOAST_EVENT_NAME,\n {\n composed: true,\n detail: {\n eventType: \"dismiss\",\n id\n }\n }\n );\n dispatchEvent(ToastEvent);\n};\nconst promise = async (promise2, toastConfig) => {\n const { onClose, ...loadingToastConfig } = toastConfig.loading;\n let closedWhileLoading = false;\n const onCloseWhileLoading = (e) => {\n toastConfig.loading.onClose?.(e);\n closedWhileLoading = true;\n };\n const id = toast.info({\n ...loadingToastConfig,\n onClose: onCloseWhileLoading,\n duration: false\n });\n await Promise.resolve(promise2).then((res) => {\n if (closedWhileLoading) {\n toast.success({\n ...toastConfig.success(res)\n });\n } else {\n toast.update(id, {\n ...toastConfig.success(res),\n status: \"success\"\n });\n }\n }).catch((err) => {\n if (closedWhileLoading) {\n toast.danger({\n ...toastConfig.error(err)\n });\n } else {\n toast.update(id, {\n ...toastConfig.error(err),\n status: \"danger\"\n });\n }\n });\n return id;\n};\ntoast.info = methods.info;\ntoast.success = methods.success;\ntoast.warning = methods.warning;\ntoast.danger = methods.danger;\ntoast.update = update;\ntoast.dismiss = dismiss;\ntoast.promise = promise;\n\nconst useShowMoreButtonPositionStyles = () => {\n const { toastHeights, toastsBeforeStack } = useToasts();\n const totalToasts = toastHeights.length;\n const extraSpace = totalToasts > toastsBeforeStack + 1 ? \"2rem\" : \"1rem\";\n const top = useMemo(() => {\n if (totalToasts > toastsBeforeStack) {\n return toastHeights.filter((t, i) => i >= totalToasts - toastsBeforeStack).map((t) => t.height).reduce((t, c) => t + c);\n }\n return \"unset\";\n }, [toastHeights, toastsBeforeStack]);\n return {\n // -0.75px fixes hover issue when 1rem != 16px due to pixel rounding\n top: `calc(${top}px + ${extraSpace} - 0.75px)`,\n position: \"absolute\",\n display: totalToasts > toastsBeforeStack ? undefined : \"none\"\n };\n};\nconst STACKED_TOAST_HEIGHT = \"5.3125rem\";\nconst STACKED_TOAST_PEEK_HEIGHT = \"1rem\";\nconst TOAST_GAP = `${24 / 16}rem`;\nconst useToastPositionStyles = (index) => {\n const {\n toasts,\n toastHeights,\n getToasterHeight,\n toastsBeforeStack,\n extraToastsVisible\n } = useToasts();\n const toastCount = toasts.length;\n const toasterHeight = getToasterHeight(index);\n return useMemo(() => {\n if (index === toastCount - 1) {\n return {\n top: TOAST_GAP,\n zIndex: 3\n };\n } else if (\n // all toasts when show more is clicked\n extraToastsVisible || // or visible toasts when stacked\n !extraToastsVisible && (toastCount <= toastsBeforeStack || toastCount > toastsBeforeStack && index >= toastCount - toastsBeforeStack)\n ) {\n return {\n top: `calc(${toasterHeight}px + ${TOAST_GAP})`\n };\n } else {\n if (toastCount > toastsBeforeStack) {\n if (index === toastCount - toastsBeforeStack - 1) {\n return {\n top: `calc(${toasterHeight || 0}px - ${STACKED_TOAST_HEIGHT} +\n ${STACKED_TOAST_PEEK_HEIGHT})`,\n zIndex: 1\n };\n } else if (index <= toastCount - toastsBeforeStack - 2) {\n return {\n top: `calc(${toasterHeight || 0}px -\n ${STACKED_TOAST_HEIGHT} \n + ${STACKED_TOAST_PEEK_HEIGHT} * 2)`,\n zIndex: 0\n };\n }\n }\n }\n return undefined;\n }, [toastHeights]);\n};\nconst addOrUpdateToastHeight = (toastId, toastHeight, setToastHeights) => {\n setToastHeights((prev) => {\n if (prev.find((t) => t.id === toastId)) {\n return prev.map((t) => {\n if (t.id === toastId) {\n return { ...t, height: toastHeight };\n }\n return t;\n });\n }\n return [\n ...prev,\n {\n id: toastId,\n height: toastHeight\n }\n ];\n });\n};\nconst setToastsAfterClose = (setToasts, setToastHeights, id) => {\n setToasts((prev) => id ? prev.filter((t) => t.id !== id) : []);\n setToastHeights((prev) => id ? prev.filter((t) => t.id !== id) : []);\n};\nconst closeToast = (setToasts, setToastHeights, closingToastClassName, id) => {\n const prefersReducedMotion = globalThis.matchMedia(\n `(prefers-reduced-motion: reduce)`\n ).matches;\n if (prefersReducedMotion) {\n setToastsAfterClose(setToasts, setToastHeights, id);\n } else {\n setToasts(\n (prev) => prev.map((t) => {\n if (!id || t.id === id) {\n return {\n ...t,\n toastClassName: closingToastClassName\n };\n }\n return t;\n })\n );\n setTimeout(() => {\n setToastsAfterClose(setToasts, setToastHeights, id);\n }, 290);\n }\n};\nconst useCloseToast = (closingToastClassName) => {\n const { setToasts, setToastHeights } = useToasts();\n return (id) => {\n closeToast(setToasts, setToastHeights, closingToastClassName, id);\n };\n};\n\nconst Toast = forwardRef(\n ({\n actions,\n containerClassName,\n createdAt,\n duration,\n index = 0,\n isBelowStackIndex,\n isStacked,\n message,\n onClose,\n pausedStatus,\n progress,\n toastClassName,\n ...alertProps\n }, ref) => {\n const { setToastHeights, extraToastsVisible } = useToasts();\n const closeToast = useCloseToast(styles.close);\n const toastPositionStyles = useToastPositionStyles(index);\n const toastWrapperRef = useRef(null);\n const timerRef = useRef();\n const pausedAtRef = useRef(0);\n const createdAtRef = useRef(createdAt ?? 0);\n const hasBeenStackedRef = useRef(false);\n const [transitionClass, setTransitionClass] = useState(\n styles.hidden\n );\n const [toastOpened, setToastOpened] = useState(false);\n const alertClasses = cx(\n styles[\"toast-alert\"],\n toastClassName,\n transitionClass\n );\n useEffect(() => {\n if (!toastOpened) {\n setTransitionClass(styles.open);\n setToastOpened(true);\n }\n }, []);\n useEffect(() => {\n if (toastWrapperRef.current && toastOpened && !isStacked) {\n if (isBelowStackIndex && extraToastsVisible) {\n setTimeout(() => {\n const height = toastWrapperRef.current?.clientHeight;\n addOrUpdateToastHeight(alertProps.id, height ?? 0, setToastHeights);\n }, 300);\n } else {\n const height = toastWrapperRef.current.clientHeight;\n addOrUpdateToastHeight(alertProps.id, height, setToastHeights);\n }\n }\n }, [\n toastOpened,\n isStacked,\n extraToastsVisible,\n // toast updates\n actions,\n message,\n alertProps.title\n ]);\n useEffect(() => {\n if (duration && !isStacked) {\n if (!pausedStatus) {\n timerRef.current = setTimeout(\n () => closeToast(alertProps.id),\n duration\n );\n return () => clearTimeout(timerRef.current);\n } else if (typeof pausedStatus === \"number\") {\n clearTimeout(timerRef.current);\n pausedAtRef.current = pausedStatus;\n } else if (pausedStatus === \"resumed\") {\n const remainingDuration = (\n // rendering new toast after initial hover\n pausedAtRef.current === 0 ? duration : (\n // resume timer after valid hover\n duration + (createdAtRef.current || 0) - pausedAtRef.current\n )\n );\n timerRef.current = setTimeout(() => {\n closeToast(alertProps.id);\n pausedAtRef.current = 0;\n }, remainingDuration);\n return () => clearTimeout(timerRef.current);\n }\n }\n }, [createdAtRef.current, duration, pausedStatus]);\n useEffect(() => {\n if (duration) {\n if (isStacked) {\n clearTimeout(timerRef.current);\n hasBeenStackedRef.current = true;\n } else if (!isStacked && hasBeenStackedRef.current && !(typeof pausedStatus === \"number\")) {\n createdAtRef.current = Date.now();\n timerRef.current = setTimeout(() => {\n closeToast(alertProps.id);\n hasBeenStackedRef.current = false;\n }, duration);\n return () => clearTimeout(timerRef.current);\n }\n }\n }, [isStacked, duration]);\n const onSwipe = (dir) => {\n if (dir === \"right\") {\n toast.dismiss(alertProps.id);\n return;\n }\n };\n const { direction, ...touchProps } = useSwipe(onSwipe);\n const alertCloseProps = isStacked && !extraToastsVisible ? {} : {\n onClose\n };\n if (duration !== false && actions) {\n throw new Error(\n \"If actions are provided to toast message, duration must be false.\"\n );\n }\n const hasMessage = message && message !== \"\";\n const hasProgress = progress != null;\n const hasActions = actions && duration === false;\n return /* @__PURE__ */ jsx(\n \"div\",\n {\n \"data-anv\": \"toast\",\n className: containerClassName,\n style: toastPositionStyles ?? { top: \"1.5rem\" },\n ref: toastWrapperRef,\n onAnimationStart: () => setToastOpened(true),\n role: isStacked ? \"presentation\" : undefined,\n ...touchProps,\n children: /* @__PURE__ */ jsx(\n Alert,\n {\n className: alertClasses,\n ...alertProps,\n ...alertCloseProps,\n ref,\n tabIndex: isStacked && !extraToastsVisible ? -1 : 0,\n children: hasMessage || hasProgress || hasActions ? /* @__PURE__ */ jsxs(Fragment, { children: [\n hasMessage ? /* @__PURE__ */ jsx(\n \"div\",\n {\n className: styles[\"message-container\"],\n id: `toast-message-${alertProps.id}`,\n children: message\n }\n ) : null,\n hasProgress ? /* @__PURE__ */ jsx(Fragment, { children: progress === \"indeterminate\" ? /* @__PURE__ */ jsx(\n ProgressBar,\n {\n \"aria-labelledby\": `toast-message-${alertProps.id}`,\n indeterminate: true\n }\n ) : /* @__PURE__ */ jsx(\n ProgressBar,\n {\n \"aria-labelledby\": `toast-message-${alertProps.id}`,\n value: progress\n }\n ) }) : null,\n hasActions ? /* @__PURE__ */ jsxs(\"div\", { className: styles[\"alert-action\"], children: [\n /* @__PURE__ */ jsx(\n Button,\n {\n appearance: actions.primary.appearance,\n onClick: actions.primary.onClick,\n size: \"small\",\n children: actions.primary.label\n }\n ),\n actions.secondary && /* @__PURE__ */ jsx(\n Button,\n {\n appearance: actions.secondary.appearance,\n onClick: actions.secondary.onClick,\n size: \"small\",\n children: actions.secondary.label\n }\n )\n ] }) : null\n ] }) : null\n }\n )\n }\n );\n }\n);\nToast.displayName = \"Toast\";\n\nfunction useHotkeyFocus({\n disabled,\n hotkey,\n onHotkeyIn,\n onHotkeyOut,\n refToFocus,\n rootRef\n}) {\n const [shouldEscapeRefocus, setShouldEscapeRefocus] = useState(false);\n const previousFocusElement = useRef(null);\n useEffect(() => {\n if (disabled || typeof document === \"undefined\") return;\n const rootElement = rootRef.current;\n const blurHandler = (e) => {\n if (e.relatedTarget && rootElement.contains(e.relatedTarget)) {\n return;\n }\n setShouldEscapeRefocus(false);\n };\n const keyDownHandler = async (e) => {\n const activeElement = document.activeElement?.shadowRoot?.activeElement || document.activeElement;\n if (activeElement?.tagName.toLowerCase() !== \"input\" && activeElement?.tagName.toLowerCase() !== \"textarea\" && activeElement?.tagName.toLowerCase() !== \"pre\" && e.key === hotkey) {\n e.preventDefault();\n previousFocusElement.current = activeElement;\n await onHotkeyIn?.();\n if (refToFocus.current) {\n refToFocus.current.focus();\n setShouldEscapeRefocus(true);\n if (refToFocus.current.scrollTo) {\n refToFocus.current.scrollTo();\n }\n }\n } else if (e.code === \"Escape\" && shouldEscapeRefocus) {\n onHotkeyOut?.();\n if (previousFocusElement.current && previousFocusElement.current.tagName.toLowerCase() !== \"body\") {\n previousFocusElement.current.focus();\n } else {\n activeElement.blur();\n }\n }\n };\n document.addEventListener(\"keydown\", keyDownHandler);\n rootElement.addEventListener(\"focusout\", blurHandler);\n return () => {\n document.removeEventListener(\"keydown\", keyDownHandler);\n rootElement.removeEventListener(\"focusout\", blurHandler);\n };\n }, [\n hotkey,\n disabled,\n rootRef,\n shouldEscapeRefocus,\n onHotkeyIn,\n refToFocus,\n onHotkeyOut\n ]);\n return { returnFocusRef: previousFocusElement };\n}\n\nconst Toaster = forwardRef(\n (props, ref) => {\n return /* @__PURE__ */ jsx(ToastProvider, { children: /* @__PURE__ */ jsx(ToasterContent, { ...props, ...ref }) });\n }\n);\nconst ToasterContent = forwardRef(\n ({\n className,\n duration = false,\n focusKey = \"t\",\n forceRender = false,\n id,\n toastsBeforeStack = 3,\n ...props\n }, ref) => {\n const toasterRef = useRef(null);\n const firstToastRef = useRef(null);\n const mergedToasterRef = useMergeRefs([toasterRef, ref]);\n const {\n toasts,\n setToastsBeforeStack,\n extraToastsVisible,\n setExtraToastsVisible,\n setToasts,\n getToasterHeight\n } = useToasts();\n const toastCount = toasts.length;\n const lastToastCount = useRef(0);\n const a1ToastGroupObserver = useRef(null);\n const a1ToastGroupObserverConnected = useRef(false);\n const closeToast = useCloseToast(styles.close);\n const [toasterHeight, setToasterHeight] = useState(0);\n const [a1ToastGroups, setA1ToastGroups] = useState([]);\n const updateA1ToastGroups = () => {\n const mfeRoots = document.querySelectorAll(\n \"[data-mfe-portal-name],[data-mfe-name]\"\n );\n const a1ToastGroupsLocal = [\n ...document.getElementsByClassName(\"ToastGroup\")\n ];\n if (mfeRoots.length > 0) {\n mfeRoots.forEach((el) => {\n setTimeout(() => {\n if (el.shadowRoot) {\n a1ToastGroupsLocal.push(\n ...el.shadowRoot.querySelectorAll(\".ToastGroup\")\n );\n }\n setA1ToastGroups(a1ToastGroupsLocal);\n });\n });\n } else {\n setA1ToastGroups(a1ToastGroupsLocal);\n }\n };\n const handleToasterBlur = useCallback(() => {\n setExtraToastsVisible(false);\n setToastPausedStatus(\"resumed\");\n if (toasterRef.current?.scrollTo) {\n toasterRef.current?.scrollTo(0, 0);\n }\n }, [setExtraToastsVisible]);\n useEffect(() => {\n const toastEventListener = (e) => {\n const toasters = document.querySelectorAll(\"[data-anv='toaster']\");\n const shadowToasters = toasterRef.current?.getRootNode()?.querySelectorAll(\"[data-anv='toaster']\") || [];\n if (toasters.length && id !== toasters[0].getAttribute(\"data-toaster-id\")) {\n return;\n } else if (\n // Toaster(s) exist in the shadow dom, bail out if this toaster is not the first one\n shadowToasters.length && id !== shadowToasters[0].getAttribute(\"data-toaster-id\")\n ) {\n return;\n }\n const { eventType, ...toastProps } = e.detail;\n if (eventType === \"add\") {\n const toastAddProps = toastProps;\n if (!toastAddProps.toasterId || toastAddProps.toasterId === id) {\n setToasts((prev) => [...prev, toastProps]);\n }\n } else if (eventType === \"update\") {\n setToasts((prev) => {\n return prev.map((t) => {\n if (t.id === toastProps.id) {\n return {\n ...t,\n ...toastProps\n };\n } else {\n return t;\n }\n });\n });\n } else if (eventType === \"dismiss\") {\n if (toastProps.id) {\n closeToast(toastProps.id);\n } else {\n closeToast();\n }\n }\n };\n window.addEventListener(\"hammer-toast\", toastEventListener);\n a1ToastGroupObserver.current = new MutationObserver(updateA1ToastGroups);\n return () => window.removeEventListener(\"hammer-toast\", toastEventListener);\n }, []);\n useEffect(() => {\n if (a1ToastGroupObserver.current !== null) {\n if (toastCount > 0 && a1ToastGroupObserverConnected.current === false) {\n a1ToastGroupObserver.current.observe(document.body, {\n childList: true,\n subtree: true\n });\n a1ToastGroupObserverConnected.current = true;\n updateA1ToastGroups();\n } else if (toastCount === 0 && a1ToastGroupObserverConnected.current === true) {\n a1ToastGroupObserver.current.disconnect();\n a1ToastGroupObserverConnected.current = false;\n }\n }\n }, [toastCount]);\n useEffect(() => {\n if (a1ToastGroups && a1ToastGroups.length > 0) {\n a1ToastGroups.forEach((group) => {\n group.style.top = toastCount === 0 ? \"16px\" : `calc(${toasterHeight}px + 3.5rem)`;\n });\n }\n }, [toasterHeight, a1ToastGroups.length]);\n useEffect(() => {\n let timer;\n if (toastCount > lastToastCount.current) {\n setToasterHeight(getToasterHeight());\n } else {\n timer = setTimeout(() => setToasterHeight(getToasterHeight()), 290);\n }\n lastToastCount.current = toastCount;\n return () => {\n clearTimeout(timer);\n };\n }, [getToasterHeight]);\n useEffect(() => {\n setToastsBeforeStack(toastsBeforeStack);\n }, [setToastsBeforeStack, toastsBeforeStack]);\n const isToasterEmpty = toastCount === 0;\n const { returnFocusRef } = useHotkeyFocus({\n disabled: isToasterEmpty,\n hotkey: focusKey,\n onHotkeyIn: async () => {\n setExtraToastsVisible(true);\n return new Promise((resolve) => {\n setTimeout(() => {\n resolve();\n }, 100);\n });\n },\n onHotkeyOut: () => {\n setExtraToastsVisible(false);\n handleToasterBlur();\n },\n refToFocus: firstToastRef,\n rootRef: toasterRef\n });\n const showMoreButtonPositionStyles = useShowMoreButtonPositionStyles();\n const [toastPausedStatus, setToastPausedStatus] = useState(undefined);\n const showMoreButton = !extraToastsVisible && toastCount > toastsBeforeStack;\n const extraToastsLength = toastCount - toastsBeforeStack;\n const showMoreButtonText = `${extraToastsLength} more message${extraToastsLength > 1 ? \"s\" : \"\"}`;\n const toasterClasses = cx(styles.toaster, className, {\n [styles[\"show-more-button\"]]: showMoreButton,\n [styles[\"show-extra-toast\"]]: extraToastsVisible\n });\n const handleToasterFocusHover = () => {\n if (toastPausedStatus === \"resumed\" || toastPausedStatus === undefined) {\n setToastPausedStatus(Date.now());\n }\n };\n const handleToasterOnBlur = () => {\n if (!toasterRef.current?.matches(\":focus-within\")) {\n handleToasterBlur();\n }\n };\n return /* @__PURE__ */ jsxs(Fragment, { children: [\n /* @__PURE__ */ jsxs(\n \"div\",\n {\n \"data-anv\": \"toaster\",\n \"data-toaster-id\": id,\n className: toasterClasses,\n ref: mergedToasterRef,\n onMouseOver: handleToasterFocusHover,\n onMouseLeave: handleToasterBlur,\n onFocus: handleToasterFocusHover,\n onBlur: handleToasterOnBlur,\n style: {\n height: extraToastsVisible ? \"100vh\" : `calc(${toasterHeight}px + 2rem + var(--toaster-padding))`\n },\n ...props,\n children: [\n toasts.map(({ toastClassName, onClose, ...toastProps }, index) => {\n const isStacked = !extraToastsVisible && index < toastCount - toastsBeforeStack;\n const isLastToastDisplayed = index === toastCount - toastsBeforeStack;\n const isHidden = index < toastCount - toastsBeforeStack - 2;\n const toastClasses = cx(styles.toast, toastClassName);\n const toastContainerClasses = cx(styles[\"toast-wrapper\"], {\n [styles.stacked]: isStacked || isLastToastDisplayed,\n [styles[\"stack-one\"]]: isStacked && index === toastCount - toastsBeforeStack - 1,\n [styles[\"stack-two\"]]: isStacked && index === toastCount - toastsBeforeStack - 2,\n [styles[\"stacked-extra\"]]: isHidden,\n [styles[\"stacked-show-extra\"]]: extraToastsVisible\n });\n const handleOnClose = (e) => {\n onClose?.(e);\n returnFocusRef.current?.focus();\n toast.dismiss(toastProps.id);\n };\n return /* @__PURE__ */ jsx(\n Toast,\n {\n containerClassName: toastContainerClasses,\n duration,\n index,\n isStacked,\n isBelowStackIndex: index < toastCount - toastsBeforeStack,\n onClose: handleOnClose,\n pausedStatus: toastPausedStatus,\n toastClassName: toastClasses,\n ref: index === 0 ? firstToastRef : undefined,\n ...toastProps\n },\n toastProps.id\n );\n }),\n showMoreButton && /* @__PURE__ */ jsx(\n \"div\",\n {\n className: styles[\"show-more-button-container\"],\n style: showMoreButtonPositionStyles,\n children: /* @__PURE__ */ jsx(\n Button,\n {\n className: styles[\"show-collapse-button\"],\n onClick: () => setExtraToastsVisible(true),\n appearance: \"secondary\",\n tabIndex: 0,\n children: showMoreButtonText\n }\n )\n }\n ),\n /* @__PURE__ */ jsxs(SrOnly, { \"aria-live\": \"polite\", children: [\n \"New toast message appeared. Press the \",\n focusKey,\n \" key to focus on the toast messages. Press escape to return focus to previous position.\"\n ] })\n ]\n }\n ),\n extraToastsVisible && /* @__PURE__ */ jsx(\"div\", { className: styles[\"show-collapse-button-container\"], children: /* @__PURE__ */ jsx(\n Button,\n {\n className: styles[\"show-collapse-button\"],\n onClick: handleToasterBlur,\n appearance: \"secondary\",\n children: \"Collapse Messages\"\n }\n ) })\n ] });\n }\n);\nToaster.displayName = \"Toaster\";\nToasterContent.displayName = \"ToasterContent\";\n\nexport { Toaster as T, toast as t };\n//# sourceMappingURL=Toaster-CJWQiHPs.js.map\n","import {\n ToasterProps as CoreToasterProps,\n Toaster as CoreToaster,\n} from \"@servicetitan/hammer-react\";\nimport { Ref, forwardRef } from \"react\";\n\nexport type ToasterProps = CoreToasterProps;\n\nexport const Toaster = forwardRef(\n (props: CoreToasterProps, ref: Ref<HTMLDivElement>) => {\n return <CoreToaster ref={ref} {...props} />;\n },\n);\n","import {\n toast as coreToast,\n toastProps as coreToastProps,\n} from \"@servicetitan/hammer-react\";\n\nexport type toastProps = coreToastProps;\n\nexport const toast = coreToast;\n"],"names":["toast","Toaster","CoreToaster","coreToast"],"mappings":"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","x_google_ignoreList":[0,1,2,3]}
@@ -49,20 +49,6 @@ var isInert = function isInert(node, lookUp) {
49
49
  return result;
50
50
  };
51
51
 
52
- /**
53
- * Determines if a node's content is editable.
54
- * @param {Element} [node]
55
- * @returns True if it's content-editable; false if it's not or `node` is falsy.
56
- */
57
- var isContentEditable = function isContentEditable(node) {
58
- var _node$getAttribute2;
59
- // CAREFUL: JSDom does not support the `HTMLElement.isContentEditable` API so we have
60
- // to use the attribute directly to check for this, which can either be empty or 'true';
61
- // if it's `null` (not specified) or 'false', it's a non-editable element
62
- var attValue = node === null || node === undefined ? undefined : (_node$getAttribute2 = node.getAttribute) === null || _node$getAttribute2 === undefined ? undefined : _node$getAttribute2.call(node, 'contenteditable');
63
- return attValue === '' || attValue === 'true';
64
- };
65
-
66
52
  /**
67
53
  * @param {Element} el container to check in
68
54
  * @param {boolean} includeContainer add container to check
@@ -181,60 +167,6 @@ var getCandidatesIteratively = function getCandidatesIteratively(elements, inclu
181
167
  }
182
168
  return candidates;
183
169
  };
184
-
185
- /**
186
- * @private
187
- * Determines if the node has an explicitly specified `tabindex` attribute.
188
- * @param {HTMLElement} node
189
- * @returns {boolean} True if so; false if not.
190
- */
191
- var hasTabIndex = function hasTabIndex(node) {
192
- return !isNaN(parseInt(node.getAttribute('tabindex'), 10));
193
- };
194
-
195
- /**
196
- * Determine the tab index of a given node.
197
- * @param {HTMLElement} node
198
- * @returns {number} Tab order (negative, 0, or positive number).
199
- * @throws {Error} If `node` is falsy.
200
- */
201
- var getTabIndex = function getTabIndex(node) {
202
- if (!node) {
203
- throw new Error('No node provided');
204
- }
205
- if (node.tabIndex < 0) {
206
- // in Chrome, <details/>, <audio controls/> and <video controls/> elements get a default
207
- // `tabIndex` of -1 when the 'tabindex' attribute isn't specified in the DOM,
208
- // yet they are still part of the regular tab order; in FF, they get a default
209
- // `tabIndex` of 0; since Chrome still puts those elements in the regular tab
210
- // order, consider their tab index to be 0.
211
- // Also browsers do not return `tabIndex` correctly for contentEditable nodes;
212
- // so if they don't have a tabindex attribute specifically set, assume it's 0.
213
- if ((/^(AUDIO|VIDEO|DETAILS)$/.test(node.tagName) || isContentEditable(node)) && !hasTabIndex(node)) {
214
- return 0;
215
- }
216
- }
217
- return node.tabIndex;
218
- };
219
-
220
- /**
221
- * Determine the tab index of a given node __for sort order purposes__.
222
- * @param {HTMLElement} node
223
- * @param {boolean} [isScope] True for a custom element with shadow root or slot that, by default,
224
- * has tabIndex -1, but needs to be sorted by document order in order for its content to be
225
- * inserted into the correct sort position.
226
- * @returns {number} Tab order (negative, 0, or positive number).
227
- */
228
- var getSortOrderTabIndex = function getSortOrderTabIndex(node, isScope) {
229
- var tabIndex = getTabIndex(node);
230
- if (tabIndex < 0 && isScope && !hasTabIndex(node)) {
231
- return 0;
232
- }
233
- return tabIndex;
234
- };
235
- var sortOrderedTabbables = function sortOrderedTabbables(a, b) {
236
- return a.tabIndex === b.tabIndex ? a.documentOrder - b.documentOrder : a.tabIndex - b.tabIndex;
237
- };
238
170
  var isInput = function isInput(node) {
239
171
  return node.tagName === 'INPUT';
240
172
  };
@@ -247,42 +179,6 @@ var isDetailsWithSummary = function isDetailsWithSummary(node) {
247
179
  });
248
180
  return r;
249
181
  };
250
- var getCheckedRadio = function getCheckedRadio(nodes, form) {
251
- for (var i = 0; i < nodes.length; i++) {
252
- if (nodes[i].checked && nodes[i].form === form) {
253
- return nodes[i];
254
- }
255
- }
256
- };
257
- var isTabbableRadio = function isTabbableRadio(node) {
258
- if (!node.name) {
259
- return true;
260
- }
261
- var radioScope = node.form || getRootNode(node);
262
- var queryRadios = function queryRadios(name) {
263
- return radioScope.querySelectorAll('input[type="radio"][name="' + name + '"]');
264
- };
265
- var radioSet;
266
- if (typeof window !== 'undefined' && typeof window.CSS !== 'undefined' && typeof window.CSS.escape === 'function') {
267
- radioSet = queryRadios(window.CSS.escape(node.name));
268
- } else {
269
- try {
270
- radioSet = queryRadios(node.name);
271
- } catch (err) {
272
- // eslint-disable-next-line no-console
273
- console.error('Looks like you have a radio button with a name attribute containing invalid CSS selector characters and need the CSS.escape polyfill: %s', err.message);
274
- return false;
275
- }
276
- }
277
- var checked = getCheckedRadio(radioSet, node.form);
278
- return !checked || checked === node;
279
- };
280
- var isRadio = function isRadio(node) {
281
- return isInput(node) && node.type === 'radio';
282
- };
283
- var isNonTabbableRadio = function isNonTabbableRadio(node) {
284
- return isRadio(node) && !isTabbableRadio(node);
285
- };
286
182
 
287
183
  // determines if a node is ultimately attached to the window's document
288
184
  var isNodeAttached = function isNodeAttached(node) {
@@ -473,65 +369,19 @@ var isNodeMatchingSelectorFocusable = function isNodeMatchingSelectorFocusable(o
473
369
  }
474
370
  return true;
475
371
  };
476
- var isNodeMatchingSelectorTabbable = function isNodeMatchingSelectorTabbable(options, node) {
477
- if (isNonTabbableRadio(node) || getTabIndex(node) < 0 || !isNodeMatchingSelectorFocusable(options, node)) {
478
- return false;
479
- }
480
- return true;
481
- };
482
- var isValidShadowRootTabbable = function isValidShadowRootTabbable(shadowHostNode) {
483
- var tabIndex = parseInt(shadowHostNode.getAttribute('tabindex'), 10);
484
- if (isNaN(tabIndex) || tabIndex >= 0) {
485
- return true;
486
- }
487
- // If a custom element has an explicit negative tabindex,
488
- // browsers will not allow tab targeting said element's children.
489
- return false;
490
- };
491
-
492
- /**
493
- * @param {Array.<Element|CandidateScope>} candidates
494
- * @returns Element[]
495
- */
496
- var sortByOrder = function sortByOrder(candidates) {
497
- var regularTabbables = [];
498
- var orderedTabbables = [];
499
- candidates.forEach(function (item, i) {
500
- var isScope = !!item.scopeParent;
501
- var element = isScope ? item.scopeParent : item;
502
- var candidateTabindex = getSortOrderTabIndex(element, isScope);
503
- var elements = isScope ? sortByOrder(item.candidates) : element;
504
- if (candidateTabindex === 0) {
505
- isScope ? regularTabbables.push.apply(regularTabbables, elements) : regularTabbables.push(element);
506
- } else {
507
- orderedTabbables.push({
508
- documentOrder: i,
509
- tabIndex: candidateTabindex,
510
- item: item,
511
- isScope: isScope,
512
- content: elements
513
- });
514
- }
515
- });
516
- return orderedTabbables.sort(sortOrderedTabbables).reduce(function (acc, sortable) {
517
- sortable.isScope ? acc.push.apply(acc, sortable.content) : acc.push(sortable.content);
518
- return acc;
519
- }, []).concat(regularTabbables);
520
- };
521
- var tabbable = function tabbable(container, options) {
372
+ var focusable = function focusable(container, options) {
522
373
  options = options || {};
523
374
  var candidates;
524
375
  if (options.getShadowRoot) {
525
376
  candidates = getCandidatesIteratively([container], options.includeContainer, {
526
- filter: isNodeMatchingSelectorTabbable.bind(null, options),
527
- flatten: false,
528
- getShadowRoot: options.getShadowRoot,
529
- shadowRootFilter: isValidShadowRootTabbable
377
+ filter: isNodeMatchingSelectorFocusable.bind(null, options),
378
+ flatten: true,
379
+ getShadowRoot: options.getShadowRoot
530
380
  });
531
381
  } else {
532
- candidates = getCandidates(container, options.includeContainer, isNodeMatchingSelectorTabbable.bind(null, options));
382
+ candidates = getCandidates(container, options.includeContainer, isNodeMatchingSelectorFocusable.bind(null, options));
533
383
  }
534
- return sortByOrder(candidates);
384
+ return candidates;
535
385
  };
536
386
 
537
387
  const useKeyboardFocusables = (element, options = {
@@ -544,19 +394,18 @@ const useKeyboardFocusables = (element, options = {
544
394
  const [focusables, setFocusables] = useState(null);
545
395
  const observerRef = useRef();
546
396
  useEffect(() => {
547
- const target = element instanceof HTMLElement ? element : element?.current;
548
- if (!target) return;
397
+ if (!element.current) return;
549
398
  if (observerRef.current) return;
550
399
  if (!options.observeChange && !focusables) {
551
- setFocusables(tabbable(target));
400
+ setFocusables(focusable(element.current));
552
401
  return;
553
402
  }
554
403
  const mutationCallback = () => {
555
- setFocusables(tabbable(target));
404
+ setFocusables(focusable(element.current));
556
405
  };
557
406
  const observer = new MutationObserver(mutationCallback);
558
407
  observerRef.current = observer;
559
- observer.observe(target, {
408
+ observer.observe(element.current, {
560
409
  childList: true,
561
410
  // Observe changes to child elements
562
411
  subtree: true,
@@ -574,12 +423,10 @@ const useKeyboardFocusables = (element, options = {
574
423
  };
575
424
  }, []);
576
425
  const updateFocusables = () => {
577
- const target = element instanceof HTMLElement ? element : element?.current;
578
- if (!target) return;
579
- setFocusables(tabbable(target));
426
+ setFocusables(focusable(element.current));
580
427
  };
581
428
  return { focusables, updateFocusables };
582
429
  };
583
430
 
584
431
  export { useKeyboardFocusables as u };
585
- //# sourceMappingURL=useKeyboardFocusables-BYoElaOi-T7ncq79D.js.map
432
+ //# sourceMappingURL=useKeyboardFocusables-C3hMtJK_-Cz39LRmZ.js.map