@servicetitan/anvil2 1.49.6 → 1.50.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/CHANGELOG.md +32 -0
- package/dist/{Alert-aGBkujwE.js → Alert-DNhUyWVm.js} +3 -2
- package/dist/{Alert-aGBkujwE.js.map → Alert-DNhUyWVm.js.map} +1 -1
- package/dist/Alert.js +1 -1
- package/dist/{Announcement-BPwFNhYe.js → Announcement-BBq8zIQ3.js} +3 -2
- package/dist/{Announcement-BPwFNhYe.js.map → Announcement-BBq8zIQ3.js.map} +1 -1
- package/dist/Announcement.js +1 -1
- package/dist/{Breadcrumbs-Y6IaMoi5.js → Breadcrumbs-CfJJlIIa.js} +2 -2
- package/dist/{Breadcrumbs-Y6IaMoi5.js.map → Breadcrumbs-CfJJlIIa.js.map} +1 -1
- package/dist/Breadcrumbs.js +1 -1
- package/dist/{Calendar-Ce08LvdP.js → Calendar-C9oxHTGG.js} +2 -2
- package/dist/{Calendar-Ce08LvdP.js.map → Calendar-C9oxHTGG.js.map} +1 -1
- package/dist/{Calendar-B5Ednjem.js → Calendar-CAYitkfM.js} +2 -2
- package/dist/{Calendar-B5Ednjem.js.map → Calendar-CAYitkfM.js.map} +1 -1
- package/dist/Calendar.js +2 -2
- package/dist/{Checkbox-nE-_tWmc.js → Checkbox-DbBeuNdW.js} +2 -2
- package/dist/{Checkbox-nE-_tWmc.js.map → Checkbox-DbBeuNdW.js.map} +1 -1
- package/dist/{Checkbox-ByaZv8wu.js → Checkbox-zAKOGEBl.js} +2 -2
- package/dist/{Checkbox-ByaZv8wu.js.map → Checkbox-zAKOGEBl.js.map} +1 -1
- package/dist/Checkbox.js +2 -2
- package/dist/{Combobox-Dy4IZDg1.js → Combobox-hxGMMb8x.js} +4 -4
- package/dist/{Combobox-Dy4IZDg1.js.map → Combobox-hxGMMb8x.js.map} +1 -1
- package/dist/Combobox.js +1 -1
- package/dist/{DataTable-D6MmOQF2.js → DataTable-DSySFGWC.js} +6 -6
- package/dist/{DataTable-D6MmOQF2.js.map → DataTable-DSySFGWC.js.map} +1 -1
- package/dist/{DateField-BxS9LZG7.js → DateField-BT9jJRp5.js} +5 -5
- package/dist/{DateField-BxS9LZG7.js.map → DateField-BT9jJRp5.js.map} +1 -1
- package/dist/DateField.js +1 -1
- package/dist/{DateFieldRange-BdDiHUfv.js → DateFieldRange-ZAic_9mt.js} +5 -5
- package/dist/{DateFieldRange-BdDiHUfv.js.map → DateFieldRange-ZAic_9mt.js.map} +1 -1
- package/dist/DateFieldRange.js +1 -1
- package/dist/{DateFieldSingle-CuQO3LH9.js → DateFieldSingle-DAtR8ImE.js} +5 -5
- package/dist/{DateFieldSingle-CuQO3LH9.js.map → DateFieldSingle-DAtR8ImE.js.map} +1 -1
- package/dist/DateFieldSingle.js +1 -1
- package/dist/{DateFieldYearless-2YhZmNYg.js → DateFieldYearless-DXO_MPwA.js} +3 -3
- package/dist/{DateFieldYearless-2YhZmNYg.js.map → DateFieldYearless-DXO_MPwA.js.map} +1 -1
- package/dist/DateFieldYearless.js +1 -1
- package/dist/{DateFieldYearlessRange-CgCmvHLs.js → DateFieldYearlessRange-Cg6bbPIi.js} +3 -3
- package/dist/{DateFieldYearlessRange-CgCmvHLs.js.map → DateFieldYearlessRange-Cg6bbPIi.js.map} +1 -1
- package/dist/DateFieldYearlessRange.js +1 -1
- package/dist/{DaysOfTheWeek-DlIka9b_.js → DaysOfTheWeek-9B9d7-hF.js} +2 -2
- package/dist/{DaysOfTheWeek-DlIka9b_.js.map → DaysOfTheWeek-9B9d7-hF.js.map} +1 -1
- package/dist/DaysOfTheWeek.js +1 -1
- package/dist/{Dialog-DSwvbfdW.js → Dialog-BwabBKoZ.js} +20 -14
- package/dist/Dialog-BwabBKoZ.js.map +1 -0
- package/dist/Dialog.css +35 -32
- package/dist/Dialog.js +1 -1
- package/dist/{Drawer-CGYcEj6d.js → Drawer-GXeoK-r9.js} +21 -13
- package/dist/Drawer-GXeoK-r9.js.map +1 -0
- package/dist/Drawer.css +37 -31
- package/dist/Drawer.js +1 -1
- package/dist/{FieldMessage-DWONT3dr.js → FieldMessage-DdCUxZz-.js} +3 -3
- package/dist/FieldMessage-DdCUxZz-.js.map +1 -0
- package/dist/FieldMessage.js +1 -1
- package/dist/{Helper-DjWotFtO.js → Helper-DzVUQgUJ.js} +2 -2
- package/dist/{Helper-DjWotFtO.js.map → Helper-DzVUQgUJ.js.map} +1 -1
- package/dist/{InputMask-DaN_Adz6.js → InputMask-CJC9xZHG.js} +2 -2
- package/dist/{InputMask-DaN_Adz6.js.map → InputMask-CJC9xZHG.js.map} +1 -1
- package/dist/InputMask.js +1 -1
- package/dist/{Link-DqZxs0kQ.js → Link-CGXEFA9w.js} +2 -2
- package/dist/{Link-DqZxs0kQ.js.map → Link-CGXEFA9w.js.map} +1 -1
- package/dist/Link.css +30 -24
- package/dist/Link.js +1 -1
- package/dist/Link.module-ByPQQ0zy.js +14 -0
- package/dist/Link.module-ByPQQ0zy.js.map +1 -0
- package/dist/{LinkButton-jb2Gc3hC.js → LinkButton-BBCO-4em.js} +2 -2
- package/dist/{LinkButton-jb2Gc3hC.js.map → LinkButton-BBCO-4em.js.map} +1 -1
- package/dist/LinkButton.js +1 -1
- package/dist/{ListView-B1I7Ii3g.js → ListView-D8mfK8Lu.js} +2 -2
- package/dist/{ListView-B1I7Ii3g.js.map → ListView-D8mfK8Lu.js.map} +1 -1
- package/dist/ListView.js +1 -1
- package/dist/{NumberField-BdK4U9mW.js → NumberField-CjWLnD9X.js} +2 -2
- package/dist/{NumberField-BdK4U9mW.js.map → NumberField-CjWLnD9X.js.map} +1 -1
- package/dist/NumberField.js +1 -1
- package/dist/{Page-C-yMjgoO.js → Page-DEbpjQw0.js} +4 -4
- package/dist/{Page-C-yMjgoO.js.map → Page-DEbpjQw0.js.map} +1 -1
- package/dist/Page.js +1 -1
- package/dist/{Pagination-CnF6yBr5.js → Pagination-BR8MiRaA.js} +17 -25
- package/dist/Pagination-BR8MiRaA.js.map +1 -0
- package/dist/Pagination.js +1 -1
- package/dist/{Popover-CcMDyKTj.js → Popover-CCXrzBul.js} +27 -6
- package/dist/Popover-CCXrzBul.js.map +1 -0
- package/dist/Popover.css +40 -9
- package/dist/Popover.js +1 -1
- package/dist/{ProgressBar-CufkbVu5.js → ProgressBar-BpKEr6cO.js} +4 -3
- package/dist/{ProgressBar-CufkbVu5.js.map → ProgressBar-BpKEr6cO.js.map} +1 -1
- package/dist/ProgressBar.js +1 -1
- package/dist/{Radio-BeBG7Ksw.js → Radio-jj0-1dOg.js} +2 -2
- package/dist/{Radio-BeBG7Ksw.js.map → Radio-jj0-1dOg.js.map} +1 -1
- package/dist/Radio.js +2 -2
- package/dist/{RadioGroup-BAjpkCjp.js → RadioGroup-Bxy415eu.js} +2 -2
- package/dist/{RadioGroup-BAjpkCjp.js.map → RadioGroup-Bxy415eu.js.map} +1 -1
- package/dist/{SearchField-D6bICv4b.js → SearchField-CJAo8dE0.js} +10 -7
- package/dist/{SearchField-D6bICv4b.js.map → SearchField-CJAo8dE0.js.map} +1 -1
- package/dist/SearchField.css +14 -8
- package/dist/SearchField.js +1 -1
- package/dist/{SelectCard-DDN7qqHv.js → SelectCard-CjbsPKZ4.js} +3 -3
- package/dist/{SelectCard-DDN7qqHv.js.map → SelectCard-CjbsPKZ4.js.map} +1 -1
- package/dist/SelectCard.js +1 -1
- package/dist/SelectField.js +1 -1
- package/dist/{SelectFieldSync-DQm3_D0v.js → SelectFieldSync-BOzavAtv.js} +2 -2
- package/dist/{SelectFieldSync-DQm3_D0v.js.map → SelectFieldSync-BOzavAtv.js.map} +1 -1
- package/dist/{SelectTrigger-CNEhRluU.js → SelectTrigger-DfVnPiNf.js} +2 -2
- package/dist/{SelectTrigger-CNEhRluU.js.map → SelectTrigger-DfVnPiNf.js.map} +1 -1
- package/dist/SelectTrigger.js +1 -1
- package/dist/{SelectTriggerBase-Cv6hGsrC.js → SelectTriggerBase-D8scKtBr.js} +2 -2
- package/dist/{SelectTriggerBase-Cv6hGsrC.js.map → SelectTriggerBase-D8scKtBr.js.map} +1 -1
- package/dist/{Switch-BXDPs2mD.js → Switch-CGpg2ake.js} +2 -2
- package/dist/{Switch-BXDPs2mD.js.map → Switch-CGpg2ake.js.map} +1 -1
- package/dist/Switch.js +1 -1
- package/dist/Table.js +1 -1
- package/dist/{TextField-aMwSN1iP.js → TextField-DNuEXKyN.js} +2 -2
- package/dist/{TextField-aMwSN1iP.js.map → TextField-DNuEXKyN.js.map} +1 -1
- package/dist/{TextField--y8q4R2H.js → TextField-Qv6OqiKQ.js} +2 -2
- package/dist/{TextField--y8q4R2H.js.map → TextField-Qv6OqiKQ.js.map} +1 -1
- package/dist/TextField.js +1 -1
- package/dist/{Textarea-D1zwX2h6.js → Textarea-DdLD4imO.js} +2 -2
- package/dist/{Textarea-D1zwX2h6.js.map → Textarea-DdLD4imO.js.map} +1 -1
- package/dist/Textarea.js +1 -1
- package/dist/{TimeField-BHxXbOfe.js → TimeField-C39hYluo.js} +3 -3
- package/dist/{TimeField-BHxXbOfe.js.map → TimeField-C39hYluo.js.map} +1 -1
- package/dist/TimeField.js +1 -1
- package/dist/Toast.js +2 -2
- package/dist/{Toaster-CRp3nf4U.js → Toaster-DJ4tNy-0.js} +2 -2
- package/dist/{Toaster-CRp3nf4U.js.map → Toaster-DJ4tNy-0.js.map} +1 -1
- package/dist/{Toaster-qPt6zb6F.js → Toaster-DyDVYq4x.js} +148 -53
- package/dist/Toaster-DyDVYq4x.js.map +1 -0
- package/dist/Toaster.css +95 -71
- package/dist/{Toolbar-XJrmS4v4.js → Toolbar-DEwvVf35.js} +11 -11
- package/dist/{Toolbar-XJrmS4v4.js.map → Toolbar-DEwvVf35.js.map} +1 -1
- package/dist/Toolbar.js +1 -1
- package/dist/{YearlessDateInputWithPicker-LiMI-Oer.js → YearlessDateInputWithPicker-DMGx3gE2.js} +2 -2
- package/dist/{YearlessDateInputWithPicker-LiMI-Oer.js.map → YearlessDateInputWithPicker-DMGx3gE2.js.map} +1 -1
- package/dist/beta.js +5 -5
- package/dist/check_circle-CM0ukqXv.js +6 -0
- package/dist/check_circle-CM0ukqXv.js.map +1 -0
- package/dist/components/Dialog/Dialog.d.ts +3 -3
- package/dist/components/Drawer/Drawer.d.ts +2 -2
- package/dist/components/Pagination/internal/Pagination.d.ts +3 -4
- package/dist/components/Pagination/internal/PaginationList.d.ts +1 -0
- package/dist/components/Pagination/internal/PaginationTotalCount.d.ts +2 -4
- package/dist/components/Popover/internal/PopoverContext.d.ts +1 -0
- package/dist/components/Popover/internal/usePopoverContext.d.ts +1 -0
- package/dist/components/Toast/internal/constants.d.ts +16 -0
- package/dist/error-DR_wWdYY.js +6 -0
- package/dist/error-DR_wWdYY.js.map +1 -0
- package/dist/index.js +37 -37
- package/dist/{utils-C-hkPwMi.js → utils-Bkbn9cyk.js} +2 -2
- package/dist/{utils-C-hkPwMi.js.map → utils-Bkbn9cyk.js.map} +1 -1
- package/package.json +7 -7
- package/dist/Dialog-DSwvbfdW.js.map +0 -1
- package/dist/Drawer-CGYcEj6d.js.map +0 -1
- package/dist/FieldMessage-DWONT3dr.js.map +0 -1
- package/dist/Link.module-CjeOl2NH.js +0 -14
- package/dist/Link.module-CjeOl2NH.js.map +0 -1
- package/dist/Pagination-CnF6yBr5.js.map +0 -1
- package/dist/Popover-CcMDyKTj.js.map +0 -1
- package/dist/Toaster-qPt6zb6F.js.map +0 -1
- package/dist/check_circle-Dja-C2lM.js +0 -8
- package/dist/check_circle-Dja-C2lM.js.map +0 -1
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"Popover-CcMDyKTj.js","sources":["../src/internal/hooks/usePopoverTransitionStates/usePopoverTransitionStates.ts","../src/components/Popover/internal/PopoverContext.ts","../src/components/Popover/internal/usePopoverContext.tsx","../src/components/Popover/internal/PopoverLegacy/usePopoverLegacy.tsx","../src/components/Popover/internal/PopoverLegacy/usePopoverLegacyContext.tsx","../src/components/Popover/internal/PopoverLegacy/PopoverLegacyTrigger.tsx","../src/components/Popover/internal/PopoverLegacy/PopoverLegacyContent.tsx","../src/components/Popover/internal/PopoverLegacy/PopoverLegacyClose.tsx","../src/components/Popover/internal/PopoverLegacy/PopoverLegacyButton.tsx","../src/components/Popover/internal/PopoverLegacy/PopoverLegacy.tsx","../src/components/Popover/PopoverClose.tsx","../src/components/Popover/PopoverButton.tsx","../src/components/Popover/PopoverContent.tsx","../src/components/Popover/PopoverTrigger.tsx","../src/components/Popover/Popover.tsx"],"sourcesContent":["import {\n useOpenCloseTransitionStates,\n type OpenCloseTransitionStateEffects,\n} from \"../useOpenCloseTransitionStates\";\n\n/**\n * Effects configuration for dialog transition states\n * @property {() => void} [onOpenAnimationStart] - Callback when opening animation starts\n * @property {() => void} [onCloseAnimationStart] - Callback when closing animation starts\n * @property {() => void} [onOpenAnimationComplete] - Callback when opening animation completes\n * @property {() => void} [onCloseAnimationComplete] - Callback when closing animation completes\n */\n\n/**\n * Custom hook for managing popover transition states and animations.\n *\n * Features:\n * - Manages popover open/close transition states\n * - Handles animation timing based on CSS animation duration\n * - Provides callbacks for animation lifecycle events\n * - Supports controlled popover state management\n * - Automatically handles showPopover() and closePopover() calls\n * - Provides utility flags for open/closed states\n *\n * @param popover - The popover element\n * @param openProp - The open prop controlling popover visibility\n * @param options - Additional, optional options including callbacks for animation start, complete, and initialization\n * @returns Object containing popover state, control functions, and utility flags\n */\nexport const usePopoverTransitionStates = (\n popover: HTMLElement | undefined,\n openProp: boolean | undefined,\n options: OpenCloseTransitionStateEffects = {},\n) => {\n const { onOpenAnimationStart, onCloseAnimationComplete } = options;\n return useOpenCloseTransitionStates(openProp, {\n ...options,\n onOpenAnimationStart: () => {\n if (!popover) return;\n onOpenAnimationStart?.();\n },\n onCloseAnimationComplete: () => {\n if (!popover) return;\n onCloseAnimationComplete?.();\n },\n durationMs: () => {\n if (!popover || !window) return 0;\n const duration = window.getComputedStyle(popover).animationDuration;\n return parseFloat(duration) * 1000;\n },\n });\n};\n","import {\n createContext,\n CSSProperties,\n Dispatch,\n RefObject,\n SetStateAction,\n} from \"react\";\nimport { PopoverProps } from \"../Popover\";\nimport { Placement } from \"@floating-ui/react-dom\";\n\nexport type PopoverContextProps = {\n popoverId: string;\n invoker?: HTMLElement;\n setInvoker?: Dispatch<SetStateAction<HTMLElement | undefined>>;\n popover?: HTMLElement;\n setPopover?: Dispatch<SetStateAction<HTMLElement | undefined>>;\n rootNode?: Node;\n setRootNode?: Dispatch<SetStateAction<Node | undefined>>;\n arrowElement?: HTMLSpanElement;\n setArrowElement?: Dispatch<SetStateAction<HTMLSpanElement | undefined>>;\n openState: boolean;\n popoverStyle?: CSSProperties;\n placement?: Placement;\n openPopover: () => void;\n closePopover: (replacementFn?: () => void) => void;\n onClose?: PopoverProps[\"onClose\"];\n openOnHover: PopoverProps[\"openOnHover\"];\n controlled: boolean;\n disableCloseOnClickOutside?: PopoverProps[\"disableCloseOnClickOutside\"];\n disableCloseOnEscape?: PopoverProps[\"disableCloseOnEscape\"];\n modal?: PopoverProps[\"modal\"];\n noPadding?: PopoverProps[\"noPadding\"];\n fillAvailableHeight: PopoverProps[\"fillAvailableHeight\"];\n maxHeight: PopoverProps[\"maxHeight\"];\n matchReferenceWidth: PopoverProps[\"matchReferenceWidth\"];\n fixedWidth: PopoverProps[\"fixedWidth\"];\n disableCaret: PopoverProps[\"disableCaret\"];\n disableFlipFallback: PopoverProps[\"disableFlipFallback\"];\n disableFocusLock: PopoverProps[\"disableFocusLock\"];\n disableTriggerFocus: PopoverProps[\"disableTriggerFocus\"];\n arrowRef: RefObject<HTMLSpanElement>;\n resetKey: number;\n delay: PopoverProps[\"delay\"];\n triggerHovered: boolean;\n setTriggerHovered: Dispatch<SetStateAction<boolean>>;\n contentHovered: boolean;\n setContentHovered: Dispatch<SetStateAction<boolean>>;\n};\n\nexport const PopoverContext = createContext<PopoverContextProps | null>(null);\n","import {\n useRef,\n useContext,\n useLayoutEffect,\n KeyboardEvent,\n useEffect,\n} from \"react\";\nimport { PopoverContext } from \"./PopoverContext\";\nimport { tabbable } from \"tabbable\";\n\nexport type dataStateType = \"open\" | \"closed\";\n\nexport function usePopoverContext() {\n const context = useContext(PopoverContext);\n const invokerRef = useRef<HTMLButtonElement>(null);\n const popoverRef = useRef<HTMLDivElement>(null);\n const arrowRef = useRef<HTMLSpanElement>(null);\n const { triggerHovered, setTriggerHovered, contentHovered } = context || {};\n\n useLayoutEffect(() => {\n if (!invokerRef.current) return;\n context?.setInvoker?.(invokerRef.current);\n }, [context, invokerRef]);\n\n useLayoutEffect(() => {\n if (!popoverRef.current) return;\n context?.setPopover?.(popoverRef.current);\n context?.setRootNode?.(popoverRef.current.getRootNode());\n if (!arrowRef.current) return;\n context?.setArrowElement?.(arrowRef.current);\n }, [context, popoverRef]);\n\n useEffect(() => {\n if (!context?.openOnHover) return;\n // If the popover was previously opened by hover, and is now unhovered, close the popover after 100ms\n if (!triggerHovered && !contentHovered) {\n const closeTimeout: NodeJS.Timeout = setTimeout(() => {\n context?.closePopover();\n }, 100);\n return () => {\n clearTimeout(closeTimeout);\n };\n }\n // If the popover was unopened by hover, and is now hovered, open the popover after the defined delay\n if (triggerHovered && !contentHovered) {\n if (context?.delay) {\n const openTimeout = setTimeout(() => {\n context?.openPopover();\n }, context.delay);\n return () => {\n clearTimeout(openTimeout);\n };\n } else {\n context?.openPopover();\n }\n }\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, [context?.delay, context?.openOnHover, triggerHovered, contentHovered]);\n\n const onMouseEnterHandler = () => {\n if (!context?.openOnHover) return;\n setTriggerHovered?.(true);\n };\n const onMouseLeaveHandler = () => {\n if (!context?.openOnHover) return;\n setTriggerHovered?.(false);\n };\n\n const onFocusHandler = (_e: React.FocusEvent) => {\n if (context?.openOnHover) {\n context?.openPopover();\n }\n };\n\n const onBlurHandler = (e: React.FocusEvent) => {\n if (context?.popover?.contains(e.relatedTarget as Node)) return; // If the focus is within the popover, don't close it\n if (context?.modal && context.openState) {\n e.preventDefault();\n requestAnimationFrame(() => {\n context?.invoker?.focus();\n const focusables = tabbable(context?.popover as Element);\n if (focusables.length > 0) {\n focusables[focusables.length - 1].focus();\n }\n });\n return;\n }\n if (!context?.disableCloseOnClickOutside) {\n context?.closePopover();\n }\n };\n\n const onKeyDownHandler = (e: KeyboardEvent) => {\n if (!context?.openState) return;\n if (\n e.code === \"Escape\" &&\n !context?.disableCloseOnEscape &&\n !context?.controlled\n ) {\n context?.closePopover();\n return;\n }\n };\n\n const onClickHandler = () => {\n context?.invoker?.focus();\n if (context?.openOnHover) return;\n if (context?.controlled === false) {\n if (context?.openState) {\n context?.closePopover();\n } else {\n context?.openPopover();\n }\n return;\n }\n };\n\n if (!context || !invokerRef || !popoverRef) return;\n return {\n invoker: {\n ref: invokerRef,\n element: context.invoker,\n onMouseEnter: onMouseEnterHandler,\n onMouseLeave: onMouseLeaveHandler,\n onKeyDown: onKeyDownHandler,\n onClick: onClickHandler,\n onFocus: onFocusHandler,\n onBlur: onBlurHandler,\n \"aria-haspopup\": true,\n \"aria-expanded\": context.openState,\n \"aria-details\": context.popoverId,\n \"data-state\": context.openState ? \"open\" : (\"closed\" as dataStateType),\n },\n popover: {\n ref: popoverRef,\n element: context.popover,\n id: context.popoverId,\n onClose: context.onClose,\n show: context.openPopover,\n close: context.closePopover,\n noPadding: context.noPadding,\n style: context.popoverStyle,\n arrowRef: arrowRef,\n key: context.resetKey,\n },\n rootNode: context.rootNode,\n onClose: context.onClose,\n open: context.openState,\n openOnHover: context.openOnHover,\n controlled: context.controlled,\n disableCloseOnClickOutside: context.disableCloseOnClickOutside,\n disableCloseOnEscape: context.disableCloseOnEscape,\n modal: context.modal,\n placement: context.placement,\n disableCaret: context.disableCaret,\n noPadding: context.noPadding,\n fillAvailableHeight: context.fillAvailableHeight,\n maxHeight: context.maxHeight,\n matchReferenceWidth: context.matchReferenceWidth,\n fixedWidth: context.fixedWidth,\n disableFlipFallback: context.disableFlipFallback,\n disableFocusLock: context.modal,\n disableTriggerFocus: context.disableTriggerFocus,\n triggerHovered: context.triggerHovered,\n setTriggerHovered: context.setTriggerHovered,\n contentHovered: context.contentHovered,\n setContentHovered: context.setContentHovered,\n };\n}\n","import { useState, useMemo, useRef, ReactNode } from \"react\";\nimport {\n useFloating,\n autoUpdate,\n offset,\n flip,\n shift,\n useClick,\n useDismiss,\n useRole,\n useInteractions,\n Placement,\n useHover,\n arrow,\n size,\n safePolygon,\n limitShift,\n type UseFloatingOptions,\n type UseDismissProps,\n} from \"@floating-ui/react\";\nimport { DisableCloseOnEscapeOrClickProps } from \"../../../../types\";\n\nexport type PopoverLegacyProps = DisableCloseOnEscapeOrClickProps & {\n children?: ReactNode;\n /**\n * Traps focus inside the floating element and outside content cannot be accessed\n */\n modal?: boolean;\n /**\n * Disables the shift of floating element\n * @internal\n */\n disableShift?: boolean;\n /**\n * Disables the flip of floating element\n * @internal\n */\n disableFlip?: boolean;\n /**\n * Disables the flip cross-axis fallback of floating element\n * @internal\n */\n disableFlipFallback?: boolean;\n /**\n * Changes interaction to use hover\n */\n openOnHover?: boolean;\n /**\n * Changes height and positioning for select/combobox\n */\n fillAvailableHeight?: boolean;\n maxHeight?: number | string;\n fitScreen?: boolean;\n minHeight?: number | string;\n matchReferenceWidth?: boolean;\n fixedWidth?: boolean;\n placement?: Placement;\n open?: boolean;\n defaultOpen?: boolean;\n onOpenChange?: UseFloatingOptions[\"onOpenChange\"];\n onOutsidePress?: Exclude<UseDismissProps[\"outsidePress\"], boolean>;\n /** This doesn't do anything for older browser */\n delay?: number;\n /**\n * Fires when the floating element is requests to be closed\n * Note: this does not fire when asTooltip is true and mouseleaves to close\n * eg. on clickoutside, [esc] to close, or by <Popover.Close>\n */\n onClose?: () => void;\n disableCaret?: boolean;\n noPadding?: boolean;\n disableAutoUpdate?: boolean;\n disableFocusLock?: boolean;\n disableTriggerFocus?: boolean;\n root?: HTMLElement | React.MutableRefObject<HTMLElement | null> | null;\n};\n\nexport function usePopoverLegacy({\n defaultOpen,\n placement = \"bottom\",\n modal,\n open: controlledOpen,\n onOpenChange: setControlledOpen,\n onOutsidePress,\n onClose,\n disableCloseOnClickOutside,\n disableCloseOnEscape,\n openOnHover,\n fillAvailableHeight,\n fitScreen,\n maxHeight,\n minHeight = \"2.875rem\",\n matchReferenceWidth,\n fixedWidth,\n disableCaret,\n noPadding,\n disableShift,\n disableFlip,\n disableFlipFallback,\n disableAutoUpdate,\n disableFocusLock,\n disableTriggerFocus,\n root,\n}: PopoverLegacyProps = {}) {\n const [uncontrolledOpen, setUncontrolledOpen] = useState(defaultOpen);\n const [labelId, setLabelId] = useState<string | undefined>();\n const [descriptionId, setDescriptionId] = useState<string | undefined>();\n\n const open = controlledOpen ?? uncontrolledOpen;\n const setOpen = setControlledOpen ?? setUncontrolledOpen;\n\n const arrowRef = useRef(null);\n\n const processMinHeight =\n typeof minHeight === \"string\" ? minHeight : `${minHeight}px`;\n\n const data = useFloating({\n placement,\n open,\n onOpenChange: setOpen,\n whileElementsMounted: !disableAutoUpdate ? autoUpdate : undefined,\n middleware: [\n offset(8),\n size({\n padding: 5,\n apply({ rects, availableHeight, elements }) {\n Object.assign(elements.floating.style, {\n ...(matchReferenceWidth\n ? { width: `${rects.reference.width}px` }\n : fixedWidth\n ? { width: \"40dvw\" }\n : {}),\n ...(fillAvailableHeight\n ? {\n height: `${availableHeight - 20}px`,\n minHeight: processMinHeight,\n }\n : {}),\n ...(maxHeight\n ? {\n minHeight: processMinHeight,\n height: fitScreen\n ? typeof maxHeight === \"string\"\n ? maxHeight\n : `${maxHeight}px`\n : undefined,\n maxHeight: fitScreen\n ? `${availableHeight - 20}px`\n : typeof maxHeight === \"string\"\n ? maxHeight\n : `${maxHeight}px`,\n }\n : {}),\n ...(fitScreen && !maxHeight\n ? {\n minHeight: processMinHeight,\n maxHeight: `${availableHeight - 20}px`,\n }\n : {}),\n zIndex: 1,\n });\n },\n }),\n flip({\n mainAxis: !disableFlip,\n crossAxis: false,\n fallbackAxisSideDirection: disableFlipFallback ? \"none\" : \"end\",\n padding: 5,\n }),\n shift({\n padding: 5,\n mainAxis: !disableShift,\n crossAxis: false,\n limiter: limitShift({\n mainAxis: !disableShift,\n }),\n }),\n arrow({ element: !disableCaret ? arrowRef : null, padding: 5 }),\n ],\n });\n\n const context = data.context;\n\n const click = useClick(context, {\n enabled: controlledOpen == null && !openOnHover,\n });\n\n const hover = useHover(context, {\n enabled: controlledOpen == null && !!openOnHover,\n handleClose: safePolygon(),\n });\n\n const dismiss = useDismiss(context, {\n escapeKey: !disableCloseOnEscape,\n outsidePress: (event) => {\n if (disableCloseOnClickOutside) {\n return false;\n }\n\n // if onOutsidePress exists and calling it returns falsy, then skip\n // calling onClose and setOpen and return the falsy value to outsidePress\n const result =\n typeof onOutsidePress === \"function\" ? onOutsidePress?.(event) : true;\n\n if (!result) {\n return result;\n } else {\n onClose?.();\n setOpen(false);\n return result;\n }\n },\n });\n\n const role = useRole(context);\n\n const interactions = useInteractions([click, hover, dismiss, role]);\n\n return useMemo(\n () => ({\n open,\n setOpen,\n onClose,\n ...interactions,\n ...data,\n modal,\n labelId,\n descriptionId,\n setLabelId,\n setDescriptionId,\n arrowRef,\n disableCaret,\n noPadding,\n fillAvailableHeight,\n maxHeight,\n matchReferenceWidth,\n fixedWidth,\n disableFlipFallback,\n disableAutoUpdate,\n disableFocusLock,\n disableTriggerFocus,\n root,\n }),\n [\n open,\n setOpen,\n onClose,\n interactions,\n data,\n modal,\n labelId,\n descriptionId,\n disableCaret,\n noPadding,\n fillAvailableHeight,\n maxHeight,\n matchReferenceWidth,\n fixedWidth,\n disableFlipFallback,\n disableAutoUpdate,\n disableFocusLock,\n disableTriggerFocus,\n root,\n ],\n );\n}\n","import { SetStateAction, Dispatch, createContext, useContext } from \"react\";\n\nimport { usePopoverLegacy } from \"./usePopoverLegacy\";\nimport { ThemeProviderContextProps } from \"../../../../providers\";\n\nexport type PopoverLegacyContextType =\n | (ReturnType<typeof usePopoverLegacy> & {\n setLabelId: Dispatch<SetStateAction<string | undefined>>;\n setDescriptionId: Dispatch<SetStateAction<string | undefined>>;\n theme?: ThemeProviderContextProps[\"theme\"];\n mode?: ThemeProviderContextProps[\"mode\"];\n })\n | null;\n\nexport const PopoverLegacyContext =\n createContext<PopoverLegacyContextType>(null);\n\nexport const usePopoverLegacyContext = () => {\n const context = useContext(PopoverLegacyContext);\n\n if (context == null) {\n throw new Error(\"Popover components must be wrapped in <Popover />\");\n }\n\n return context;\n};\n","import {\n ReactElement,\n useRef,\n ComponentPropsWithRef,\n ElementType,\n} from \"react\";\nimport { usePopoverLegacyContext } from \"./usePopoverLegacyContext\";\nimport { useMergeRefs } from \"../../../../hooks\";\n\ntype PopoverLegacyTriggerDataType = {\n \"data-state\": \"open\" | \"closed\";\n} & ComponentPropsWithRef<ElementType>;\n\nexport type PopoverLegacyTriggerProps = {\n children: (data: PopoverLegacyTriggerDataType) => ReactElement;\n};\n\nexport const PopoverLegacyTrigger = function PopoverLegacyTrigger(\n props: PopoverLegacyTriggerProps,\n) {\n const { children } = props;\n const context = usePopoverLegacyContext();\n const ref = useRef(null);\n const mergedRef = useMergeRefs([context.refs.setReference, ref]);\n\n return children({\n \"data-state\": context.open ? \"open\" : \"closed\",\n \"data-anv\": \"popover-trigger\",\n ...context.getReferenceProps({ ref: mergedRef }),\n });\n};\n","import { forwardRef, HTMLProps, KeyboardEvent, useContext } from \"react\";\nimport {\n FloatingPortal,\n FloatingFocusManager,\n FloatingArrow,\n} from \"@floating-ui/react\";\nimport { usePopoverLegacyContext } from \"./usePopoverLegacyContext\";\nimport styles from \"./PopoverLegacy.module.scss\";\nimport cx from \"classnames\";\nimport { useMergeRefs } from \"../../../../hooks\";\nimport { ThemeProvider } from \"../../../../providers\";\nimport { PortalProviderContext } from \"../../../../providers/PortalProvider\";\nimport { DialogContext } from \"../../../Dialog/internal/DialogContext\";\nimport { DrawerContext } from \"../../../Drawer/internal/DrawerContext\";\n\nexport type PopoverLegacyContentProps = Omit<HTMLProps<HTMLDivElement>, \"ref\">;\n\nexport const PopoverLegacyContent = forwardRef<\n HTMLDivElement,\n PopoverLegacyContentProps\n>(function PopoverContent({ className, style, ...props }, propRef) {\n const {\n context: floatingContext,\n theme,\n mode,\n disableCaret,\n noPadding,\n onClose,\n disableFocusLock,\n disableTriggerFocus,\n root,\n ...context\n } = usePopoverLegacyContext();\n const dialogContext = useContext(DialogContext);\n const drawerContext = useContext(DrawerContext);\n const { root: portalRoot } = useContext(PortalProviderContext);\n\n const ref = useMergeRefs([context.refs.setFloating, propRef]);\n\n if (!floatingContext.open) return null;\n if (dialogContext && !dialogContext?.ref?.current) return null;\n\n const popoverClassNames = cx(className, styles[\"content-legacy\"], {\n [styles[\"no-padding\"]]: noPadding,\n });\n\n const onKeyDownHandler = (e: KeyboardEvent<HTMLDivElement>) => {\n if (e.code === \"Escape\") {\n onClose?.();\n }\n };\n\n return (\n <FloatingPortal\n root={\n root ??\n dialogContext?.ref?.current ??\n drawerContext?.ref?.current ??\n portalRoot\n }\n >\n <FloatingFocusManager\n context={floatingContext}\n modal={context.modal}\n order={disableTriggerFocus ? [\"content\"] : [\"reference\", \"content\"]}\n disabled={disableFocusLock}\n >\n <ThemeProvider theme={theme} mode={mode}>\n <div\n ref={ref}\n data-anv=\"popover-content\"\n style={{ ...context.floatingStyles, ...style }}\n aria-labelledby={context.labelId}\n aria-describedby={context.descriptionId}\n className={popoverClassNames}\n {...context.getFloatingProps(props)}\n onKeyDown={onKeyDownHandler}\n role=\"presentation\"\n >\n <div className={styles[\"scroller-legacy\"]}>{props.children}</div>\n {!disableCaret && (\n <FloatingArrow\n ref={context.arrowRef}\n context={floatingContext}\n className={styles[\"arrow-legacy\"]}\n />\n )}\n </div>\n </ThemeProvider>\n </FloatingFocusManager>\n </FloatingPortal>\n );\n});\n","import { forwardRef } from \"react\";\n\nimport { usePopoverLegacyContext } from \"./usePopoverLegacyContext\";\nimport { Button, ButtonProps } from \"../../../Button\";\n\nexport type PopoverLegacyCloseProps = ButtonProps;\nexport const PopoverLegacyClose = forwardRef<\n HTMLButtonElement,\n PopoverLegacyCloseProps\n>(function PopoverClose(props, ref) {\n const { setOpen, onClose } = usePopoverLegacyContext();\n return (\n <Button\n ref={ref}\n data-anv=\"popover-close\"\n {...props}\n onClick={(event) => {\n props.onClick?.(event);\n onClose?.();\n setOpen(false);\n }}\n />\n );\n});\n","import { Ref, forwardRef } from \"react\";\nimport { usePopoverLegacyContext } from \"./usePopoverLegacyContext\";\nimport { Button, ButtonProps } from \"../../../Button\";\nimport { useMergeRefs } from \"../../../../hooks\";\n\nexport type PopoverLegacyButtonProps = ButtonProps;\n\nexport const PopoverLegacyButton = forwardRef<\n HTMLButtonElement,\n PopoverLegacyButtonProps\n>(function PopoverButton(props, ref) {\n const { children, size, ...rest } = props;\n const context = usePopoverLegacyContext();\n const childrenRef = (children as { ref?: Ref<unknown> })?.ref;\n const mergedRef = useMergeRefs([context.refs.setReference, ref, childrenRef]);\n\n return (\n <Button\n ref={mergedRef}\n size={size}\n data-state={context.open ? \"open\" : \"closed\"}\n data-anv=\"popover-button\"\n {...context.getReferenceProps(rest)}\n >\n {children}\n </Button>\n );\n});\n","import { useContext, useMemo } from \"react\";\nimport { usePopoverLegacy, PopoverLegacyProps } from \"./usePopoverLegacy\";\nimport { PopoverLegacyContext } from \"./usePopoverLegacyContext\";\nimport { PopoverLegacyTrigger } from \"./PopoverLegacyTrigger\";\nimport { PopoverLegacyContent } from \"./PopoverLegacyContent\";\nimport { PopoverLegacyClose } from \"./PopoverLegacyClose\";\nimport { PopoverLegacyButton } from \"./PopoverLegacyButton\";\nimport { ThemeProviderContext } from \"../../../../providers/ThemeProvider/internal/ThemeProviderContext\";\n\nexport function PopoverLegacyElement({\n children,\n modal,\n ...restOptions\n}: PopoverLegacyProps) {\n const popover = usePopoverLegacy({ modal, ...restOptions });\n const { theme, mode = \"light\" } = useContext(ThemeProviderContext);\n const value = useMemo(\n () => ({ ...popover, theme, mode }),\n [mode, popover, theme],\n );\n return (\n <PopoverLegacyContext.Provider value={value}>\n {children}\n </PopoverLegacyContext.Provider>\n );\n}\n\nexport const PopoverLegacy = Object.assign(PopoverLegacyElement, {\n Trigger: PopoverLegacyTrigger,\n Close: PopoverLegacyClose,\n Content: PopoverLegacyContent,\n Button: PopoverLegacyButton,\n});\n","import { forwardRef } from \"react\";\n\nimport { Button, ButtonProps } from \"../Button\";\nimport { usePopoverContext } from \"./internal/usePopoverContext\";\nimport { supportsPopover, childrenToString } from \"../../internal/functions\";\nimport {\n PopoverLegacyClose,\n PopoverLegacyCloseProps,\n} from \"./internal/PopoverLegacy\";\nimport { DataTrackingId } from \"../../types\";\nimport { useTrackingId } from \"../../hooks\";\n\n/**\n * Props for the PopoverClose component\n * @extends ButtonProps\n */\nexport type PopoverCloseProps = ButtonProps & DataTrackingId;\n\n/**\n * PopoverClose component for closing the popover.\n *\n * Features:\n * - Automatic popover closing on click\n * - Supports all Button component props and styling\n * - Controlled and uncontrolled mode support\n * - Legacy popover support with fallback\n * - Context integration with parent popover\n * - Accessibility support with proper button semantics\n * - Delayed closing for controlled mode\n *\n * @example\n * <Popover.Close>Close</Popover.Close>\n *\n * @example\n * <Popover.Close appearance=\"secondary\" size=\"small\">\n * Cancel\n * </Popover.Close>\n *\n * @example\n * <Popover.Close onClick={() => console.log('Custom close handler')}>\n * Close with custom handler\n * </Popover.Close>\n */\nexport const PopoverClose = forwardRef<HTMLButtonElement, PopoverCloseProps>(\n function PopoverClose(props, ref) {\n const { onClick, ...rest } = props;\n const context = usePopoverContext();\n\n const data = {\n children: childrenToString(props.children),\n };\n\n const trackingId = useTrackingId({\n name: \"PopoverClose\",\n data,\n hasOverride: !!props[\"data-tracking-id\"],\n });\n\n if (!supportsPopover())\n return (\n <PopoverLegacyClose {...(props as PopoverLegacyCloseProps)} ref={ref} />\n );\n return (\n <Button\n ref={ref}\n data-tracking-id={trackingId}\n data-anv=\"popover-close\"\n {...rest}\n onClick={(event) => {\n context?.popover.close();\n context?.onClose?.();\n onClick?.(event);\n }}\n />\n );\n },\n);\n\nPopoverClose.displayName = \"PopoverClose\";\n","import { forwardRef, MouseEvent, FocusEvent, KeyboardEvent } from \"react\";\nimport { Button, ButtonProps } from \"../Button\";\nimport { useMergeRefs, useTrackingId } from \"../../hooks\";\nimport { usePopoverContext } from \"./internal/usePopoverContext\";\nimport {\n PopoverLegacyButton,\n PopoverLegacyButtonProps,\n} from \"./internal/PopoverLegacy\";\nimport { supportsPopover, childrenToString } from \"../../internal/functions\";\nimport { DataTrackingId } from \"../../types\";\n\n/**\n * Props for the PopoverButton component\n * @extends ButtonProps\n */\nexport type PopoverButtonProps = ButtonProps & DataTrackingId;\n\n/**\n * PopoverButton component for creating button-style triggers.\n *\n * Features:\n * - Button styling and behavior with all Button props\n * - Automatic popover opening on click\n * - Hover interaction support for tooltip mode\n * - Focus management and keyboard navigation\n * - Accessibility attributes (aria-haspopup, aria-expanded, aria-details)\n * - Legacy popover support with fallback\n * - Context integration with parent popover\n * - Event handling for mouse, keyboard, and focus events\n *\n * @example\n * <Popover.Button>Click to open</Popover.Button>\n *\n * @example\n * <Popover.Button appearance=\"primary\" size=\"large\" icon={InfoIcon}>\n * Information\n * </Popover.Button>\n *\n * @example\n * <Popover.Button onClick={() => console.log('Custom click handler')}>\n * Custom handler\n * </Popover.Button>\n */\nexport const PopoverButton = forwardRef<HTMLButtonElement, PopoverButtonProps>(\n function PopoverButton(props, ref) {\n const {\n children,\n size,\n onMouseEnter,\n onMouseLeave,\n onClick,\n onKeyDown,\n onFocus,\n onBlur,\n ...rest\n } = props;\n const context = usePopoverContext();\n\n const data = {\n children: childrenToString(props.children),\n appearance: props.appearance,\n icon: props.icon,\n size: props.size,\n type: props.type,\n };\n\n const trackingId = useTrackingId({\n name: \"PopoverButton\",\n data,\n hasOverride: !!props[\"data-tracking-id\"],\n });\n\n const onMouseEnterHandler = (e: MouseEvent<HTMLButtonElement>) => {\n onMouseEnter?.(e);\n context?.invoker.onMouseEnter();\n };\n const onMouseLeaveHandler = (e: MouseEvent<HTMLButtonElement>) => {\n onMouseLeave?.(e);\n context?.invoker.onMouseLeave();\n };\n const onFocusHandler = (e: FocusEvent<HTMLButtonElement>) => {\n onFocus?.(e);\n context?.invoker.onFocus(e);\n };\n const onBlurHandler = (e: FocusEvent<HTMLButtonElement>) => {\n onBlur?.(e);\n context?.invoker.onBlur(e);\n };\n const onKeyDownHandler = (e: KeyboardEvent<HTMLButtonElement>) => {\n onKeyDown?.(e);\n context?.invoker.onKeyDown(e);\n };\n\n const onClickHandler = (e: MouseEvent<HTMLButtonElement>) => {\n onClick?.(e);\n context?.invoker.onClick();\n };\n\n const buttonRef = useMergeRefs([context?.invoker.ref, ref]);\n\n if (!supportsPopover())\n return (\n <PopoverLegacyButton\n {...(props as PopoverLegacyButtonProps)}\n ref={ref}\n />\n );\n\n return (\n <Button\n ref={buttonRef}\n size={size}\n onClick={onClickHandler}\n onKeyDown={onKeyDownHandler}\n onMouseEnter={onMouseEnterHandler}\n onMouseLeave={onMouseLeaveHandler}\n onFocus={onFocusHandler}\n onBlur={onBlurHandler}\n data-anv=\"popover-button\"\n data-tracking-id={trackingId}\n aria-haspopup={context?.invoker[\"aria-haspopup\"]}\n aria-expanded={context?.invoker[\"aria-expanded\"]}\n aria-details={context?.invoker[\"aria-details\"]}\n data-state={context?.invoker[\"data-state\"]}\n {...rest}\n >\n {children}\n </Button>\n );\n },\n);\n\nPopoverButton.displayName = \"PopoverButton\";\n","import {\n ComponentPropsWithoutRef,\n forwardRef,\n MouseEvent,\n useRef,\n FocusEvent,\n RefObject,\n} from \"react\";\nimport styles from \"./Popover.module.scss\";\nimport cx from \"classnames\";\nimport { useMergeRefs } from \"../../hooks\";\nimport { usePopoverContext } from \"./internal/usePopoverContext\";\nimport { supportsPopover } from \"../../internal/functions\";\nimport {\n PopoverLegacyContent,\n PopoverLegacyContentProps,\n} from \"./internal/PopoverLegacy\";\nimport { useFocusWithin } from \"../../internal/hooks\";\n\n/**\n * Props for the PopoverContent component\n * @extends ComponentPropsWithoutRef<\"div\">\n */\nexport type PopoverContentProps = Omit<\n ComponentPropsWithoutRef<\"div\">,\n \"popover\"\n> & {\n /**\n * Reference to the scrollable content area\n */\n scrollerRef?: RefObject<HTMLDivElement>;\n /**\n * Whether to remove the content from the DOM while the popover is closed\n */\n hideWhileClosed?: boolean;\n};\n\n/**\n * PopoverContent component for the main popover content area.\n *\n * Features:\n * - Automatic positioning and sizing based on trigger\n * - Screen boundary detection and fitting\n * - Scroll handling with custom scroller reference\n * - Focus management and keyboard navigation\n * - Hover interaction support for tooltip mode\n * - Escape key handling for closing\n * - Tab key trapping for modal popovers\n * - Arrow/caret indicator with automatic positioning\n * - Legacy popover support with fallback\n * - Context integration with parent popover\n * - Accessibility support with proper ARIA roles\n *\n * @example\n * <Popover.Content>\n * <p>This is the popover content</p>\n * <Popover.Close>Close</Popover.Close>\n * </Popover.Content>\n *\n * @example\n * <Popover.Content scrollerRef={scrollRef}>\n * <div style={{ height: '200px', overflow: 'auto' }}>\n * {longContent}\n * </div>\n * </Popover.Content>\n */\nexport const PopoverContent = forwardRef<HTMLDivElement, PopoverContentProps>(\n function PopoverContent(props, ref) {\n const {\n children,\n className,\n style,\n onMouseEnter,\n onMouseLeave,\n onKeyDown,\n onFocus,\n onBlur,\n onScroll,\n onScrollCapture,\n scrollerRef,\n hideWhileClosed = false,\n ...rest\n } = props;\n const context = usePopoverContext();\n const popoverClassNames = cx(className, styles[\"content\"], {\n [styles[\"no-padding\"]]: context?.noPadding,\n });\n const childrenRef = useRef<HTMLDivElement>(null);\n const combinedStyles = {\n ...style,\n ...context?.popover.style,\n };\n\n const { props: wrapperProps } = useFocusWithin({\n otherRelatedElements: context?.invoker.element\n ? [context?.invoker.element]\n : [],\n onBlur: (e) => {\n if (context?.modal) {\n e.preventDefault();\n requestAnimationFrame(() => {\n context?.invoker.element?.focus();\n });\n return;\n }\n onBlur?.(e as FocusEvent<HTMLDivElement>);\n context?.popover.close();\n },\n onFocus: (e) => {\n onFocus?.(e as FocusEvent<HTMLDivElement>);\n context?.popover.show();\n },\n });\n\n const onMouseEnterHandler = (e: MouseEvent<HTMLDivElement>) => {\n onMouseEnter?.(e);\n if (!context?.openOnHover) return;\n context.setContentHovered(true);\n };\n const onMouseLeaveHandler = (e: MouseEvent<HTMLDivElement>) => {\n onMouseLeave?.(e);\n if (!context?.openOnHover) return;\n context.setContentHovered(false);\n };\n\n const onKeyDownHandler = (e: React.KeyboardEvent<HTMLDivElement>) => {\n onKeyDown?.(e);\n if (e.code === \"Escape\" && !context?.disableCloseOnEscape) {\n context?.popover.close();\n }\n };\n\n const popoverContentRef = useMergeRefs([context?.popover.ref, ref]);\n const popoverScrollerRef = useMergeRefs([childrenRef, scrollerRef]);\n\n if (!supportsPopover())\n return (\n <PopoverLegacyContent\n {...(props as PopoverLegacyContentProps)}\n ref={ref}\n />\n );\n\n return (\n <div\n popover={\"manual\"}\n id={context?.popover.id}\n data-anv=\"popover-content\"\n className={popoverClassNames}\n ref={popoverContentRef}\n style={combinedStyles}\n onMouseEnter={onMouseEnterHandler}\n onMouseLeave={onMouseLeaveHandler}\n role=\"region\"\n {...rest}\n onFocus={wrapperProps.onFocus}\n onBlur={wrapperProps.onBlur}\n >\n <div\n className={styles.scroller}\n role=\"presentation\"\n tabIndex={-1}\n ref={popoverScrollerRef}\n key={context?.popover.key}\n onKeyDown={onKeyDownHandler}\n onScroll={onScroll}\n onScrollCapture={onScrollCapture}\n >\n {hideWhileClosed ? (context?.open ? children : null) : children}\n </div>\n {!context?.disableCaret && (\n <span className={styles[\"arrow\"]} ref={context?.popover.arrowRef}>\n <svg aria-hidden=\"true\" width=\"14\" height=\"14\" viewBox=\"0 0 14 14\">\n <path stroke=\"none\" d=\"M0,0 H14 L7,7 Q7,7 7,7 Z\"></path>\n <clipPath id=\":r9:\">\n <rect x=\"0\" y=\"0\" width=\"14\" height=\"14\"></rect>\n </clipPath>\n </svg>\n </span>\n )}\n </div>\n );\n },\n);\n\nPopoverContent.displayName = \"PopoverContent\";\n","import {\n ReactElement,\n MouseEvent,\n KeyboardEvent,\n FocusEvent,\n RefObject,\n} from \"react\";\nimport { dataStateType, usePopoverContext } from \"./internal/usePopoverContext\";\nimport { supportsPopover } from \"../../internal/functions\";\nimport {\n PopoverLegacyTrigger,\n PopoverLegacyTriggerProps,\n} from \"./internal/PopoverLegacy\";\n\ntype PopoverTriggerChildrenReturnType = {\n ref: RefObject<HTMLButtonElement>;\n onMouseEnter: (e: MouseEvent) => void;\n onMouseLeave: (e: MouseEvent) => void;\n onClick: (e: MouseEvent) => void;\n onKeyDown: (e: KeyboardEvent) => void;\n onBlur: (e: FocusEvent) => void;\n onFocus: (e: FocusEvent) => void;\n \"aria-haspopup\": boolean;\n \"aria-expanded\": boolean;\n \"aria-details\": HTMLElement[\"id\"];\n /**\n * @deprecated to be removed on next major\n * Use aria-expanded instead\n */\n \"data-state\": dataStateType;\n};\n\n/**\n * Props for the PopoverTrigger component\n */\nexport type PopoverTriggerProps = {\n /**\n * Render function that receives trigger props and returns a React element\n */\n children: (data: PopoverTriggerChildrenReturnType) => ReactElement;\n};\n\n/**\n * PopoverTrigger component for creating custom trigger elements.\n *\n * Features:\n * - Supports custom trigger elements via render prop pattern\n * - Automatic focus management and keyboard interaction\n * - Hover and click event handling\n * - Accessibility attributes (aria-haspopup, aria-expanded, aria-details)\n * - Legacy popover support with fallback\n * - Context integration with parent popover\n *\n * @example\n * <Popover.Trigger>\n * {(props) => (\n * <button {...props}>\n * Click to open popover\n * </button>\n * )}\n * </Popover.Trigger>\n *\n * @example\n * <Popover.Trigger>\n * {(props) => (\n * <div {...props} role=\"button\" tabIndex={0}>\n * Custom trigger element\n * </div>\n * )}\n * </Popover.Trigger>\n */\nexport function PopoverTrigger(props: PopoverTriggerProps) {\n const { children } = props;\n const context = usePopoverContext();\n\n if (!supportsPopover())\n return <PopoverLegacyTrigger {...(props as PopoverLegacyTriggerProps)} />;\n\n if (!context) return;\n const { element, ...rest } = context.invoker;\n\n return children(rest);\n}\n\nPopoverTrigger.displayName = \"PopoverTrigger\";\n","import { PopoverClose } from \"./PopoverClose\";\nimport { PopoverButton } from \"./PopoverButton\";\nimport { PopoverContent } from \"./PopoverContent\";\nimport { PopoverTrigger } from \"./PopoverTrigger\";\nimport {\n ComponentPropsWithoutRef,\n forwardRef,\n useCallback,\n useContext,\n useEffect,\n useId,\n useImperativeHandle,\n useLayoutEffect,\n useMemo,\n useRef,\n useState,\n} from \"react\";\nimport { PopoverContext, PopoverContextProps } from \"./internal/PopoverContext\";\nimport {\n arrow,\n autoUpdate,\n computePosition,\n flip,\n limitShift,\n offset,\n Placement,\n shift,\n size,\n} from \"@floating-ui/react\";\nimport {\n safeHidePopover,\n safeShowPopover,\n supportsPopover,\n} from \"../../internal/functions\";\nimport { PopoverLegacyElement } from \"./internal/PopoverLegacy/PopoverLegacy\";\nimport { PopoverLegacyProps } from \"./internal/PopoverLegacy\";\nimport { DisableCloseOnEscapeOrClickProps } from \"../../types\";\nimport {\n OpenCloseTransitionStateEffects,\n useOnClickOutside,\n useOptionallyControlledState,\n usePopoverTransitionStates,\n} from \"../../internal/hooks\";\nimport { DialogContext } from \"../Dialog/internal/DialogContext\";\n\n/**\n * Props for the Popover component\n * @property {ReactNode} [children] - The content to be rendered inside the popover\n * @property {string} [id] - Unique identifier for the popover\n * @property {boolean} [modal] - Whether the popover should be modal (traps focus)\n * @property {boolean} [openOnHover] - Changes interaction to use hover instead of click\n * @property {boolean} [fillAvailableHeight] - Changes height and positioning for select/combobox\n * @property {number | string} [maxHeight] - Maximum height of the popover content\n * @property {boolean} [fitScreen] - Whether the popover should fit within the screen bounds\n * @property {number | string} [minHeight] - Minimum height of the popover content\n * @property {boolean} [matchReferenceWidth] - Whether the popover width should match the trigger element\n * @property {boolean} [fixedWidth] - Whether the popover should have a fixed width\n * @property {string} [placement] - Placement of the popover relative to the trigger\n * @property {boolean} [open] - Controlled open state\n * @property {boolean} [defaultOpen] - Default open state for uncontrolled mode\n * @property {Function} [onOpenChange] - Callback when open state changes\n * @property {Function} [onOutsidePress] - Callback when clicking outside the popover\n * @property {Function} [onClose] - Fires when the floating element is requested to be closed\n * @property {boolean} [disableCaret] - Whether to disable the caret/arrow indicator\n * @property {boolean} [noPadding] - Whether to remove default padding from content\n * @property {boolean} [disableAutoUpdate] - Whether to disable automatic position updates\n * @property {boolean} [disableTriggerFocus] - Whether to disable focus on the trigger element\n * @property {number} [delay] - Delay before opening the popover (for hover mode)\n * @property {boolean} [disableCloseOnClickOutside] - Whether to disable closing on outside click\n * @property {boolean} [disableCloseOnEscape] - Whether to disable closing on escape key\n */\n\n/**\n * Props for the Popover component\n * @extends ComponentPropsWithoutRef<\"div\">\n * @extends DisableCloseOnEscapeOrClickProps\n */\nexport type PopoverProps = {\n /**\n * The content to be rendered inside the popover\n */\n children?: ComponentPropsWithoutRef<\"div\">[\"children\"];\n /**\n * Unique identifier for the popover\n */\n id?: ComponentPropsWithoutRef<\"div\">[\"id\"];\n /**\n * Whether the popover should be modal (traps focus)\n * @default false\n */\n modal?: boolean;\n /**\n * Disables the shift of floating element\n * @internal\n */\n disableShift?: boolean;\n /**\n * Disables the flip of floating element\n * @internal\n */\n disableFlip?: boolean;\n /**\n * Disables the flip cross-axis fallback of floating element\n * @internal\n */\n disableFlipFallback?: boolean;\n /**\n * Changes interaction to use hover instead of click\n * @default false\n */\n openOnHover?: boolean;\n /**\n * Changes height and positioning for select/combobox\n * @default false\n */\n fillAvailableHeight?: boolean;\n /**\n * Maximum height of the popover content\n */\n maxHeight?: number | string;\n /**\n * Whether the popover should fit within the screen bounds\n * @default false\n */\n fitScreen?: boolean;\n /**\n * Minimum height of the popover content\n * @default \"2.875rem\"\n */\n minHeight?: number | string;\n /**\n * Whether the popover width should match the trigger element\n * @default false\n */\n matchReferenceWidth?: boolean;\n /**\n * Whether the popover should have a fixed width\n * @default false\n */\n fixedWidth?: boolean;\n /**\n * Placement of the popover relative to the trigger\n * @default \"bottom\"\n */\n placement?: Placement;\n /**\n * Controlled open state\n */\n open?: boolean;\n /**\n * Default open state for uncontrolled mode\n * @default false\n */\n defaultOpen?: boolean;\n /**\n * @deprecated to be removed in next major\n * use onOpenAnimationStart, onOpenAnimationComplete, onCloseAnimationStart, onCloseAnimationComplete instead\n * Callback when open state changes\n */\n onOpenChange?: (open: boolean) => void;\n /**\n * @deprecated to be removed in next major\n * use onClickOutside instead\n * Callback when clicking outside the popover\n */\n onOutsidePress?: (e: globalThis.MouseEvent) => void;\n /**\n * Callback when clicking outside the popover\n */\n onClickOutside?: (e: globalThis.MouseEvent) => void;\n /**\n * Fires when the floating element is requested to be closed\n * Note: this does not fire when openOnHover is true and mouse leaves to close\n * eg. on click outside, [esc] to close, or by <Popover.Close>\n */\n onClose?: () => void;\n /**\n * Whether to disable the caret/arrow indicator\n * @default false\n */\n disableCaret?: boolean;\n /**\n * Whether to remove default padding from content\n * @default false\n */\n noPadding?: boolean;\n /**\n * Whether to disable automatic position updates\n * @default false\n */\n disableAutoUpdate?: boolean;\n /**\n * @deprecated to be removed on next major\n * use modal instead\n */\n disableFocusLock?: boolean;\n /**\n * Whether to disable focus on the trigger element\n * @default false\n */\n disableTriggerFocus?: boolean;\n /**\n * Delay before opening the popover (for hover mode)\n * @default 100\n */\n delay?: number;\n /**\n * @deprecated to be removed on next major\n * This is not needed anymore as the Popover API is used.\n * Popover API uses top-layer for its popover content.\n */\n root?: HTMLElement | React.MutableRefObject<HTMLElement | null> | null;\n} & DisableCloseOnEscapeOrClickProps &\n OpenCloseTransitionStateEffects;\n\nconst PopoverElement = forwardRef((props: PopoverProps, ref) => {\n const {\n children,\n openOnHover = false,\n delay = 100,\n placement = \"bottom\",\n minHeight = \"2.875rem\",\n open,\n defaultOpen = false,\n disableShift,\n disableFlip,\n disableFlipFallback,\n matchReferenceWidth,\n id,\n disableCaret,\n fixedWidth,\n fillAvailableHeight,\n maxHeight,\n disableCloseOnClickOutside,\n disableCloseOnEscape,\n fitScreen,\n disableFocusLock,\n disableTriggerFocus,\n modal,\n noPadding,\n onOpenChange,\n onOutsidePress,\n onClickOutside,\n onClose,\n onOpenAnimationStart,\n onOpenAnimationComplete,\n onCloseAnimationStart,\n onCloseAnimationComplete,\n } = props;\n const uid = useId();\n const [invoker, setInvoker] =\n useState<PopoverContextProps[\"invoker\"]>(undefined);\n const [popover, setPopover] =\n useState<PopoverContextProps[\"popover\"]>(undefined);\n const [rootNode, setRootNode] = useState<PopoverContextProps[\"rootNode\"]>();\n const [arrowElement, setArrowElement] =\n useState<PopoverContextProps[\"arrowElement\"]>(undefined);\n const [openState, setOpenState] = useOptionallyControlledState<\n PopoverContextProps[\"openState\"]\n >({\n controlledValue: open,\n defaultValue: defaultOpen,\n });\n const arrowRef = useRef<HTMLSpanElement>(null);\n const dialogContext = useContext(DialogContext);\n const [triggerHovered, setTriggerHovered] = useState(false);\n const [contentHovered, setContentHovered] = useState(false);\n\n // TODO: Find a way to test these properly!\n // Stryker disable all : Currently relying on Chromatic test for all visuals\n const processMinHeight =\n typeof minHeight === \"string\" ? minHeight : `${minHeight}px`;\n\n usePopoverTransitionStates(popover, openState, {\n onOpenAnimationStart: useCallback(() => {\n onOpenAnimationStart?.();\n }, [onOpenAnimationStart]),\n onOpenAnimationComplete: useCallback(() => {\n onOpenAnimationComplete?.();\n }, [onOpenAnimationComplete]),\n onCloseAnimationStart: useCallback(() => {\n onCloseAnimationStart?.();\n }, [onCloseAnimationStart]),\n onCloseAnimationComplete: useCallback(() => {\n onCloseAnimationComplete?.();\n }, [onCloseAnimationComplete]),\n });\n\n /* istanbul ignore next */\n const updatePosition = useCallback(() => {\n if (!invoker || !popover) return;\n // disable position update when closing\n if (!openState) return;\n computePosition(invoker, popover, {\n placement: placement,\n middleware: [\n offset(8),\n size({\n padding: 5,\n apply({ rects, availableHeight, elements }) {\n Object.assign(elements.floating.style, {\n ...(matchReferenceWidth\n ? { width: `${rects.reference.width}px` }\n : fixedWidth\n ? { width: \"40dvw\" }\n : {}),\n ...(fillAvailableHeight\n ? {\n height: `${availableHeight - 20}px`,\n minHeight: processMinHeight,\n }\n : {}),\n ...(maxHeight\n ? {\n minHeight: processMinHeight,\n height: fitScreen\n ? typeof maxHeight === \"string\"\n ? maxHeight\n : `${maxHeight}px`\n : undefined,\n maxHeight: fitScreen\n ? `${availableHeight - 20}px`\n : typeof maxHeight === \"string\"\n ? maxHeight\n : `${maxHeight}px`,\n }\n : {}),\n ...(fitScreen && !maxHeight\n ? {\n minHeight: processMinHeight,\n maxHeight: `${availableHeight - 20}px`,\n }\n : {}),\n zIndex: 1,\n });\n },\n }),\n flip({\n mainAxis: !disableFlip,\n crossAxis: false,\n fallbackAxisSideDirection: disableFlipFallback ? \"none\" : \"end\",\n padding: 5,\n }),\n shift({\n padding: 5,\n mainAxis: !disableShift,\n crossAxis: false,\n limiter: limitShift({\n mainAxis: !disableShift,\n }),\n }),\n arrow({\n element: !disableCaret && arrowElement ? arrowElement : null,\n padding: 5,\n }),\n ],\n }).then(({ x, y, placement, middlewareData }) => {\n const side = placement.split(\"-\")[0];\n\n const staticSide = {\n top: \"bottom\",\n right: \"left\",\n bottom: \"top\",\n left: \"right\",\n }[side as \"top\" | \"right\" | \"bottom\" | \"left\"];\n\n const arrowDeg = () => {\n if (staticSide === \"top\") return 180;\n if (staticSide === \"bottom\") return 0;\n if (staticSide === \"left\") return 90;\n return 270;\n };\n\n Object.assign(popover.style, {\n left: `${x}px`,\n top: `${y}px`,\n });\n if (middlewareData.arrow && arrowElement) {\n const { x, y } = middlewareData.arrow;\n Object.assign(arrowElement.style, {\n left: x != null ? `${x}px` : \"\",\n top: y != null ? `${y}px` : \"\",\n right: \"\",\n bottom: \"\",\n [staticSide as string]: `${-arrowElement.offsetWidth + 2}px`,\n transform: `rotate(${arrowDeg()}deg)`,\n });\n }\n });\n }, [\n arrowElement,\n disableCaret,\n disableFlip,\n disableFlipFallback,\n disableShift,\n fillAvailableHeight,\n fitScreen,\n fixedWidth,\n invoker,\n matchReferenceWidth,\n maxHeight,\n openState,\n placement,\n popover,\n processMinHeight,\n ]);\n\n const resetKey = useRef(0);\n // Effect to add autoUpdate to eventListener\n // while the popover is opened\n useLayoutEffect(() => {\n if (!popover || !invoker) return;\n if (!openState) {\n resetKey.current += 1;\n return;\n }\n\n let requestID: number | null = null;\n const cleanup = autoUpdate(invoker, popover, () => {\n requestID = requestAnimationFrame(updatePosition);\n });\n\n return () => {\n if (requestID) cancelAnimationFrame(requestID);\n cleanup();\n };\n }, [invoker, popover, updatePosition, openState]);\n // Stryker restore all\n\n popover?.getRootNode();\n\n const popoverId = id ?? `popover-${uid.replace(/:/g, \"\")}`;\n const isControlled = typeof open !== \"undefined\";\n\n // Main function to open popover\n const openPopover = useCallback(() => {\n if (\n !popover ||\n !(rootNode as ShadowRoot | Document)?.querySelector(`#${popoverId}`)\n )\n return;\n setOpenState(true);\n onOpenChange?.(true);\n }, [popover, rootNode, popoverId, onOpenChange, setOpenState]);\n\n // Main function to close popover\n const closePopover = useCallback(\n (fn?: () => void) => {\n if (!popover || !openState) return;\n if (!openOnHover) onClose?.();\n setOpenState(false);\n onOpenChange?.(false);\n fn?.();\n },\n [popover, openState, openOnHover, onClose, setOpenState, onOpenChange],\n );\n\n useImperativeHandle(\n ref,\n () => ({\n openPopover,\n closePopover,\n }),\n [openPopover, closePopover],\n );\n\n // Updating openness for controlled\n useEffect(() => {\n if (typeof openState === \"undefined\") return;\n if (openState) {\n if (dialogContext) {\n if (dialogContext?.ref?.current?.open) {\n safeShowPopover(popover);\n dialogContext?.setHasOpenPopover?.(true);\n }\n return;\n }\n safeShowPopover(popover);\n } else {\n safeHidePopover(popover);\n dialogContext?.setHasOpenPopover?.(false);\n }\n }, [openState, openPopover, closePopover, dialogContext, popover]);\n\n useOnClickOutside({\n disable: disableCloseOnClickOutside || !openState,\n onOutsidePress: (e) => {\n if (!openState) return;\n onClickOutside?.(e);\n onOutsidePress?.(e);\n },\n targets: [invoker, popover],\n onClose: () => {\n if (openOnHover || isControlled) return;\n closePopover();\n },\n });\n\n const value = useMemo(() => {\n return {\n popoverId,\n invoker,\n setInvoker,\n popover,\n setPopover,\n arrowElement,\n setArrowElement,\n openPopover,\n closePopover,\n placement,\n onClose,\n openOnHover,\n openState,\n setOpenState,\n disableCloseOnClickOutside,\n fillAvailableHeight,\n maxHeight,\n matchReferenceWidth,\n fixedWidth,\n disableCaret,\n disableFlipFallback,\n disableFocusLock,\n disableTriggerFocus,\n disableCloseOnEscape,\n noPadding,\n controlled: isControlled,\n modal: modal ?? disableFocusLock,\n arrowRef,\n resetKey: resetKey.current,\n rootNode,\n setRootNode,\n delay,\n triggerHovered,\n setTriggerHovered,\n contentHovered,\n setContentHovered,\n };\n }, [\n popoverId,\n invoker,\n popover,\n arrowElement,\n openPopover,\n closePopover,\n placement,\n onClose,\n openOnHover,\n openState,\n setOpenState,\n disableCloseOnClickOutside,\n fillAvailableHeight,\n maxHeight,\n matchReferenceWidth,\n fixedWidth,\n disableCaret,\n disableFlipFallback,\n disableFocusLock,\n disableTriggerFocus,\n disableCloseOnEscape,\n noPadding,\n isControlled,\n modal,\n rootNode,\n delay,\n triggerHovered,\n setTriggerHovered,\n contentHovered,\n setContentHovered,\n ]);\n\n if (!supportsPopover())\n return <PopoverLegacyElement {...(props as PopoverLegacyProps)} />;\n\n return (\n <PopoverContext.Provider value={value}>{children}</PopoverContext.Provider>\n );\n});\n\nPopoverElement.displayName = \"Popover\";\n\n/**\n * Popover component for displaying floating content relative to a trigger element.\n *\n * Features:\n * - Supports both controlled and uncontrolled modes\n * - Automatic positioning with fallback strategies\n * - Hover and click interaction modes\n * - Modal and non-modal variants\n * - Custom trigger elements\n * - Automatic height and width management\n * - Screen boundary detection and fitting\n * - Keyboard navigation and accessibility\n * - Popover API support with legacy fallback\n * - Outside click detection and handling\n * - Focus management and trapping\n * - Arrow/caret indicators\n * - Delay support for hover interactions\n * - Automatic tracking ID generation for analytics\n *\n * @example\n * <Popover>\n * <Popover.Button>Click to open</Popover.Button>\n * <Popover.Content>\n * <p>This is the popover content</p>\n * <Popover.Close>Close</Popover.Close>\n * </Popover.Content>\n * </Popover>\n *\n * @example\n * <Popover openOnHover delay={1000}>\n * <Popover.Button>Hover to open</Popover.Button>\n * <Popover.Content>Tooltip content</Popover.Content>\n * </Popover>\n *\n * @example\n * <Popover modal>\n * <Popover.Trigger>\n * {(props) => <button {...props}>Custom trigger</button>}\n * </Popover.Trigger>\n * <Popover.Content>\n * <TextField label=\"Form field\" />\n * <Popover.Close>Done</Popover.Close>\n * </Popover.Content>\n * </Popover>\n */\nexport const Popover = Object.assign(PopoverElement, {\n /**\n * PopoverTrigger component for creating custom trigger elements.\n *\n * Features:\n * - Supports custom trigger elements via render prop pattern\n * - Automatic focus management and keyboard interaction\n * - Hover and click event handling\n * - Accessibility attributes (aria-haspopup, aria-expanded, aria-details)\n * - Legacy popover support with fallback\n * - Context integration with parent popover\n * - Automatic tracking ID generation for analytics\n *\n * @example\n * <Popover.Trigger>\n * {(props) => (\n * <button {...props}>\n * Click to open popover\n * </button>\n * )}\n * </Popover.Trigger>\n */\n Trigger: PopoverTrigger,\n /**\n * PopoverContent component for the main popover content area.\n *\n * Features:\n * - Automatic positioning and sizing based on trigger\n * - Screen boundary detection and fitting\n * - Scroll handling with custom scroller reference\n * - Focus management and keyboard navigation\n * - Hover interaction support for tooltip mode\n * - Escape key handling for closing\n * - Tab key trapping for modal popovers\n * - Arrow/caret indicator with automatic positioning\n * - Legacy popover support with fallback\n * - Context integration with parent popover\n * - Accessibility support with proper ARIA roles\n *\n * @example\n * <Popover.Content>\n * <p>This is the popover content</p>\n * <Popover.Close>Close</Popover.Close>\n * </Popover.Content>\n */\n Content: PopoverContent,\n /**\n * PopoverClose component for closing the popover.\n *\n * Features:\n * - Automatic popover closing on click\n * - Supports all Button component props and styling\n * - Controlled and uncontrolled mode support\n * - Legacy popover support with fallback\n * - Context integration with parent popover\n * - Accessibility support with proper button semantics\n * - Delayed closing for controlled mode\n * - Automatic tracking ID generation for analytics\n *\n * @example\n * <Popover.Close>Close</Popover.Close>\n */\n Close: PopoverClose,\n /**\n * PopoverButton component for creating button-style triggers.\n *\n * Features:\n * - Button styling and behavior with all Button props\n * - Automatic popover opening on click\n * - Hover interaction support for tooltip mode\n * - Focus management and keyboard navigation\n * - Accessibility attributes (aria-haspopup, aria-expanded, aria-details)\n * - Legacy popover support with fallback\n * - Context integration with parent popover\n * - Event handling for mouse, keyboard, and focus events\n * - Automatic tracking ID generation for analytics\n *\n * @example\n * <Popover.Button>Click to open</Popover.Button>\n */\n Button: PopoverButton,\n});\n"],"names":["arrow","PopoverLegacyTrigger","styles","PopoverClose","PopoverButton","PopoverContent","placement","x","y"],"mappings":"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"}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"Toaster-qPt6zb6F.js","sources":["../src/components/Toast/internal/ToastProvider.tsx","../src/components/Toast/internal/useToasts.ts","../src/components/Toast/internal/ToasterPopover.tsx","../src/components/Toast/internal/constants.ts","../src/components/Toast/internal/addOrUpdateToastHeight.ts","../../../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","../src/components/Toast/toast.ts","../src/components/Toast/internal/useCloseToast.tsx","../src/components/Toast/internal/useToastPositionStyles.ts","../src/components/Toast/internal/Toast.tsx","../src/components/Toast/internal/useHotkeyFocus.tsx","../src/components/Toast/internal/useShowMoreButtonPositionStyles.ts","../src/components/Toast/internal/ToastStack.tsx","../src/components/Toast/internal/Toaster.tsx"],"sourcesContent":["/* eslint-disable react-refresh/only-export-components */\nimport {\n createContext,\n Dispatch,\n FC,\n PropsWithChildren,\n SetStateAction,\n useCallback,\n useEffect,\n useMemo,\n useState,\n} from \"react\";\nimport { ToastProps } from \"./Toast\";\n\n/**\n * Props for the ToastProvider component\n * @extends PropsWithChildren\n */\nexport type ToastProviderProps = PropsWithChildren<{\n /**\n * Whether this toaster is used within a dialog context\n * @default false\n */\n isDialogToaster?: boolean;\n}>;\n\n/**\n * Context properties for the ToastProvider\n */\nexport type ToastProviderContextProps = {\n /**\n * Array of active toast notifications\n */\n toasts: ToastProps[];\n /**\n * Function to update the toast array\n */\n setToasts: Dispatch<SetStateAction<ToastProps[]>>;\n /**\n * Array of toast height measurements\n */\n toastHeights: { id: string; height: number }[];\n /**\n * Function to update toast heights\n */\n setToastHeights: Dispatch<\n SetStateAction<ToastProviderContextProps[\"toastHeights\"]>\n >;\n /**\n * Function to calculate the total height of the toast stack\n */\n getToastStackHeight: (index?: number) => number;\n /**\n * Number of toasts to display before stacking\n */\n toastsBeforeStack: number;\n /**\n * Function to update the number of toasts before stacking\n */\n setToastsBeforeStack: Dispatch<SetStateAction<number>>;\n /**\n * Whether extra toasts are currently visible\n */\n extraToastsVisible: boolean;\n /**\n * Function to update the visibility of extra toasts\n */\n setExtraToastsVisible: Dispatch<SetStateAction<boolean>>;\n /**\n * Whether this toaster is used within a dialog context\n */\n isDialogToaster: boolean;\n};\n\n/**\n * Context for managing toast state and operations\n */\nexport const ToastProviderContext = createContext<ToastProviderContextProps>({\n toasts: [],\n setToasts: () => [],\n toastHeights: [],\n setToastHeights: () => [],\n getToastStackHeight: () => 0,\n toastsBeforeStack: 3,\n setToastsBeforeStack: () => [],\n extraToastsVisible: false,\n setExtraToastsVisible: () => [],\n isDialogToaster: false,\n});\n\n/**\n * Global reference to toast state setters for external access\n */\nexport const getSetToasts: {\n setToasts: ToastProviderContextProps[\"setToasts\"];\n setToastHeights: ToastProviderContextProps[\"setToastHeights\"];\n} = {\n setToasts: () => [],\n setToastHeights: () => [],\n};\n\n/**\n * ToastProvider component for managing toast state and context.\n *\n * Features:\n * - Manages toast state and lifecycle\n * - Handles toast height tracking for positioning\n * - Provides stacking behavior configuration\n * - Supports dialog toaster mode\n * - Automatic duplicate toast detection and removal\n * - Context-based state management\n * - Height calculation utilities for positioning\n *\n * @example\n * <ToastProvider isDialogToaster={false}>\n * <Toaster id=\"main-toaster\" />\n * </ToastProvider>\n */\nexport const ToastProvider: FC<ToastProviderProps> = ({\n children,\n isDialogToaster: isDialogToasterProp = false,\n}) => {\n const [toasts, setToasts] = useState<ToastProps[]>([]);\n const [toastHeights, setToastHeights] = useState<\n ToastProviderContextProps[\"toastHeights\"]\n >([]);\n const [toastsBeforeStack, setToastsBeforeStack] = useState<number>(3);\n const [extraToastsVisible, setExtraToastsVisible] = useState<boolean>(false);\n getSetToasts.setToasts = setToasts;\n getSetToasts.setToastHeights = setToastHeights;\n const [isDialogToaster, setIsDialogToaster] =\n useState<boolean>(isDialogToasterProp);\n\n const removeDuplicateToasts = (toasts: ToastProps[]) => {\n const toastIds = new Set<ToastProps[\"id\"]>();\n const uniqueToasts = toasts.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\n useEffect(() => {\n const uniqueToasts = removeDuplicateToasts(toasts);\n if (toasts.length !== uniqueToasts.length) {\n setToasts(uniqueToasts);\n }\n }, [toasts]);\n\n useEffect(() => {\n setIsDialogToaster(isDialogToasterProp);\n }, [isDialogToasterProp]);\n\n const getToastStackHeight = useCallback(\n (index?: number) => {\n const toastHeightsOnly = toastHeights\n .filter((_t, i) => {\n return index !== undefined ? i > index : true;\n })\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\n .filter((_t, i) => i >= toastHeightsOnly.length - toastsBeforeStack)\n .reduce((totalHeight, currentHeight) => {\n return totalHeight + currentHeight;\n });\n }\n return 0;\n },\n [toastHeights, extraToastsVisible, toastsBeforeStack],\n );\n\n const value = useMemo(\n () => ({\n toasts,\n setToasts,\n toastHeights,\n setToastHeights,\n getToastStackHeight,\n toastsBeforeStack,\n setToastsBeforeStack,\n extraToastsVisible,\n setExtraToastsVisible,\n isDialogToaster,\n }),\n [\n extraToastsVisible,\n getToastStackHeight,\n toastHeights,\n toasts,\n toastsBeforeStack,\n isDialogToaster,\n ],\n );\n\n return (\n <ToastProviderContext.Provider value={value}>\n {children}\n </ToastProviderContext.Provider>\n );\n};\n","import { useContext } from \"react\";\nimport { ToastProviderContext } from \"./ToastProvider\";\n\n/**\n * Hook for accessing toast context and state management functions\n * @returns ToastProviderContextProps - The toast context with state and functions\n * @throws Error when used outside of ToastProvider\n */\nexport const useToasts = () => {\n const context = useContext(ToastProviderContext);\n\n if (context == null) {\n throw new Error(\"useToasts must be wrapped in <ToastProvider />\");\n }\n\n return context;\n};\n","import {\n forwardRef,\n PropsWithChildren,\n useEffect,\n useMemo,\n useRef,\n} from \"react\";\n\nimport { useMergeRefs } from \"../../../hooks\";\nimport {\n supportsPopover,\n safeHidePopover,\n safeShowPopover,\n} from \"../../../internal/functions\";\n\nimport { useToasts } from \"./useToasts\";\n\nimport styles from \"./Toaster.module.scss\";\n\n/**\n * Props for the ToasterPopover component\n * @extends PropsWithChildren\n */\ntype ToasterPopoverProps = PropsWithChildren;\n\n/**\n * ToasterPopover component for displaying toast notifications in a popover.\n *\n * Features:\n * - Displays toast notifications in a native popover element\n * - Automatically shows/hides based on toast count\n * - Handles dialog toaster state management\n * - Browser compatibility checking for popover support\n * - Smooth transitions between show/hide states\n * - Integration with toast provider context\n *\n * @example\n * <ToasterPopover>\n * <ToastStack toasts={toastList} />\n * </ToasterPopover>\n */\nexport const ToasterPopover = forwardRef<HTMLDivElement, ToasterPopoverProps>(\n (props, ref) => {\n const { isDialogToaster } = useToasts();\n const popoverRef = useRef<HTMLDivElement>(null);\n const combinedRef = useMergeRefs([popoverRef, ref]);\n\n const { toasts } = useToasts();\n const toastCount = useMemo(() => toasts.length, [toasts]);\n\n useEffect(() => {\n if (!popoverRef.current) return;\n if (!supportsPopover()) {\n console.error(\"Popover is not supported in this browser\");\n return;\n }\n const currentPopover = popoverRef.current;\n let timeout: NodeJS.Timeout | undefined;\n\n if (toastCount > 0) {\n if (isDialogToaster) {\n // For dialog toasters, we need to reset the popover state\n timeout = setTimeout(() => {\n safeHidePopover(currentPopover);\n safeShowPopover(currentPopover);\n });\n } else {\n // For non-dialog toasters, just show the popover\n safeShowPopover(currentPopover);\n }\n } else {\n safeHidePopover(currentPopover);\n }\n\n return () => {\n if (timeout) clearTimeout(timeout);\n if (toastCount === 0) {\n safeHidePopover(currentPopover);\n }\n };\n }, [toastCount, isDialogToaster]);\n\n return (\n <div ref={combinedRef} className={styles.popover} popover=\"manual\">\n {props.children}\n </div>\n );\n },\n);\n\nToasterPopover.displayName = \"ToasterPopover\";\n","/**\n * Animation duration for toast transitions in milliseconds\n */\nexport const ANIMATION_DURATION = 300; // ms\n","import { ToastProviderContextProps } from \"./ToastProvider\";\n\n/**\n * Adds or updates the height of a toast in the height tracking system\n * @param toastId - The unique identifier of the toast\n * @param toastHeight - The height of the toast in pixels\n * @param setToastHeights - Function to update toast heights\n */\nexport const addOrUpdateToastHeight = (\n toastId: string,\n toastHeight: number,\n setToastHeights: ToastProviderContextProps[\"setToastHeights\"],\n) => {\n setToastHeights((prev) => {\n // update height if toast height is defined\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 // otherwise set height for the first time\n return [\n ...prev,\n {\n id: toastId,\n height: toastHeight,\n },\n ];\n });\n};\n","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 { MouseEvent } from \"react\";\nimport { v4 as uuid } from \"uuid\";\n\nimport { Status } from \"../../types\";\nimport { ToastCustomEventDetail, ToastUpdateProps } from \"./internal/types\";\nimport { ToastProps } from \"./internal/Toast\";\n\nexport type toastProps = Pick<\n ToastProps,\n | \"actions\"\n | \"containerClassName\"\n | \"duration\"\n | \"message\"\n | \"onClose\"\n | \"onDismiss\"\n | \"progress\"\n | \"title\"\n | \"toastClassName\"\n>;\n\n/**\n * Use to run toast methods for adding, updating, and dismissing toasts.\n *\n * @method info\n * @method success\n * @method warning\n * @method danger\n * @method promise\n * @method update\n * @method dismiss\n */\nexport const 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};\ntype ToastCustomEvent = CustomEvent<ToastCustomEventDetail>;\n\nconst TOAST_EVENT_NAME = \"hammer-toast\";\n\nconst TOAST_TYPES: readonly Status[] = [\"info\", \"success\", \"warning\", \"danger\"];\n\nconst methods: Record<string, (props: toastProps) => string> = {};\n\nTOAST_TYPES.forEach((type) => {\n methods[type] = (props: toastProps) => {\n const uniqueId = uuid();\n\n const ToastAddEvent: ToastCustomEvent =\n new CustomEvent<ToastCustomEventDetail>(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});\n\nconst update = (id: string, props: Omit<ToastUpdateProps, \"id\">) => {\n const ToastEvent: ToastCustomEvent = new CustomEvent<ToastCustomEventDetail>(\n TOAST_EVENT_NAME,\n {\n composed: true,\n detail: {\n eventType: \"update\",\n id,\n ...props,\n },\n },\n );\n dispatchEvent(ToastEvent);\n};\n\nconst dismiss = (id?: string) => {\n const ToastEvent: ToastCustomEvent = new CustomEvent<ToastCustomEventDetail>(\n TOAST_EVENT_NAME,\n {\n composed: true,\n detail: {\n eventType: \"dismiss\",\n id,\n },\n },\n );\n dispatchEvent(ToastEvent);\n};\n\nconst promise = async (\n promise: Promise<string>,\n toastConfig: {\n loading: toastProps;\n success: (data: string) => Omit<toastProps, \"id\">;\n error: (error: string) => Omit<toastProps, \"id\">;\n },\n): Promise<string> => {\n const { onClose, ...loadingToastConfig } = toastConfig.loading;\n let closedWhileLoading = false;\n\n const onCloseWhileLoading: toastProps[\"onClose\"] = (\n e: MouseEvent<HTMLButtonElement>,\n ) => {\n toastConfig.loading.onClose?.(e);\n closedWhileLoading = true;\n };\n\n const id = toast.info({\n ...loadingToastConfig,\n onClose: onCloseWhileLoading,\n duration: false,\n });\n await Promise.resolve(promise)\n .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 })\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};\n\n/**\n * Use to add info toast to the stack.\n *\n * @example\n * import { toast } from \"@servicetitan/anvil2\";\n * const id = toast.info({\n * message: \"This is an info toast\",\n * title: \"Info\",\n * });\n */\ntoast.info = methods.info;\n/**\n * Use to add success toast to the stack.\n *\n * @example\n * import { toast } from \"@servicetitan/anvil2\";\n * const id = toast.success({\n * message: \"This is an info toast\",\n * title: \"Info\",\n * });\n */\ntoast.success = methods.success;\n/**\n * Use to add warning toast to the stack.\n *\n * @example\n * import { toast } from \"@servicetitan/anvil2\";\n * const id = toast.warning({\n * message: \"This is an info toast\",\n * title: \"Info\",\n * });\n */\ntoast.warning = methods.warning;\n/**\n * Use to add danger toast to the stack.\n *\n * @example\n * import { toast } from \"@servicetitan/anvil2\";\n * const id = toast.danger({\n * message: \"This is an info toast\",\n * title: \"Info\",\n * });\n */\ntoast.danger = methods.danger;\n/**\n * Use to update a specific toast in the stack.\n *\n * @example\n * import { toast } from \"@servicetitan/anvil2\";\n * const id = toast.info({\n * message: \"This is an info toast\",\n * title: \"Info\",\n * });\n * toast.update(id, {\n * message: \"This is an updated toast\",\n * title: \"Updated\",\n * });\n */\ntoast.update = update;\n/**\n * Use to dismiss a specific toast in the stack.\n *\n * @example\n * import { toast } from \"@servicetitan/anvil2\";\n * const id = toast.info({\n * message: \"This is an info toast\",\n * title: \"Info\",\n * });\n * toast.dismiss(id);\n */\ntoast.dismiss = dismiss;\n/**\n * Use to create a toast that updates itself based on a Promise state.\n *\n * @example\n * ```ts\n * import { toast } from \"@servicetitan/anvil2\";\n * toast.promise(\n * new Promise((resolve, reject) => {\n * setTimeout(() => {\n * resolve(\"This is a success toast\");\n * }, 2000);\n * }),\n * {\n * loading: {\n * message: \"This is a loading toast\",\n * title: \"Loading\",\n * },\n * success: (data) => ({\n * message: data,\n * title: \"Success\",\n * }),\n * error: (error) => ({\n * message: error,\n * title: \"Error\",\n * }),\n * },\n * );\n * ```\n */\ntoast.promise = promise;\n","import { ToastProps } from \"./Toast\";\nimport { useToasts } from \"./useToasts\";\nimport { ANIMATION_DURATION } from \"./constants\";\nimport { ToastProviderContextProps } from \"./ToastProvider\";\n\n/**\n * Updates toasts after close\n * @param setToasts - Function to update toasts\n * @param setToastHeights - Function to update toast heights\n * @param id - Optional toast ID to close specific toast, or undefined to close all\n */\nconst setToastsAfterClose = (\n setToasts: ToastProviderContextProps[\"setToasts\"],\n setToastHeights: ToastProviderContextProps[\"setToastHeights\"],\n id?: string,\n) => {\n setToasts((prev) => (id ? prev.filter((t) => t.id !== id) : []));\n setToastHeights((prev) => (id ? prev.filter((t) => t.id !== id) : []));\n};\n\n/**\n * Closes a toast with animation support\n * @param setToasts - Function to update toasts\n * @param setToastHeights - Function to update toast heights\n * @param closingToastClassName - CSS class for closing animation\n * @param id - Optional toast ID to close specific toast, or undefined to close all\n */\nconst closeToast = (\n setToasts: ToastProviderContextProps[\"setToasts\"],\n setToastHeights: ToastProviderContextProps[\"setToastHeights\"],\n closingToastClassName: ToastProps[\"toastClassName\"],\n id?: string,\n) => {\n const prefersReducedMotion = globalThis.matchMedia(\n `(prefers-reduced-motion: reduce)`,\n ).matches;\n\n if (prefersReducedMotion) {\n setToastsAfterClose(setToasts, setToastHeights, id);\n } else {\n // show the close animation\n setToasts((prev) =>\n prev.map((t) => {\n if (!id || t.id === id) {\n return {\n ...t,\n toastClassName: closingToastClassName,\n };\n }\n return t;\n }),\n );\n // actually remove the toast\n setTimeout(() => {\n setToastsAfterClose(setToasts, setToastHeights, id);\n }, ANIMATION_DURATION - 10);\n }\n};\n\n/**\n * Hook that returns a function to close toasts\n * @param closingToastClassName - CSS class for closing animation\n * @returns Function to close toasts by ID or all toasts\n */\nexport const useCloseToast = (\n closingToastClassName: ToastProps[\"toastClassName\"],\n) => {\n const { setToasts, setToastHeights } = useToasts();\n return (id?: string) => {\n closeToast(setToasts, setToastHeights, closingToastClassName, id);\n };\n};\n","import { CSSProperties, useMemo } from \"react\";\nimport { useToasts } from \"./useToasts\";\n\nconst STACKED_TOAST_HEIGHT = \"5.3125rem\"; // border + padding + title + gap + message\nconst STACKED_TOAST_PEEK_HEIGHT = \"1rem\";\n\n/**\n * Hook for calculating position styles for individual toasts\n * @param index - The index of the toast in the stack\n * @returns CSS properties for positioning the toast\n */\nexport const useToastPositionStyles = (\n index: number,\n): CSSProperties | undefined => {\n const {\n toasts,\n toastHeights,\n getToastStackHeight,\n toastsBeforeStack,\n extraToastsVisible,\n } = useToasts();\n const toastCount = toasts.length;\n const toasterHeight = getToastStackHeight(index);\n\n return useMemo(() => {\n if (index === toastCount - 1) {\n return {\n top: 0,\n zIndex: 3,\n };\n } else if (\n // all toasts when show more is clicked\n extraToastsVisible ||\n // or visible toasts when stacked\n (!extraToastsVisible &&\n (toastCount <= toastsBeforeStack ||\n (toastCount > toastsBeforeStack &&\n index >= toastCount - toastsBeforeStack)))\n ) {\n return {\n top: toasterHeight,\n };\n\n // stacked toasts\n } else {\n if (toastCount > toastsBeforeStack) {\n // first stack\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 // second stack and hidden toasts\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 // only run when toastHeights changes\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, [toastHeights]);\n};\n","import cx from \"classnames\";\nimport { forwardRef, useEffect, useRef, useState } from \"react\";\n\nimport { Alert, AlertProps } from \"../../Alert\";\nimport { Button, ButtonProps } from \"../../Button\";\nimport { ProgressBar, ProgressBarProps } from \"../../ProgressBar\";\nimport { useSwipe, UseSwipeFn } from \"../../../hooks\";\n\nimport { ANIMATION_DURATION } from \"./constants\";\nimport { addOrUpdateToastHeight } from \"./addOrUpdateToastHeight\";\nimport { toast } from \"../toast\";\nimport { useCloseToast } from \"./useCloseToast\";\nimport { useToastPositionStyles } from \"./useToastPositionStyles\";\nimport { useToasts } from \"./useToasts\";\n\nimport styles from \"./Toaster.module.scss\";\n\ntype ToastAction = Pick<ButtonProps, \"appearance\" | \"onClick\"> & {\n label: string;\n};\n\n/**\n * Props for the Toast component\n * @extends ComponentPropsWithoutRef<\"div\">\n */\nexport type ToastProps = {\n // used in toast methods\n /**\n * Action buttons to display in the toast\n */\n actions?: { primary: ToastAction; secondary?: ToastAction };\n /**\n * CSS class name for the toast container\n */\n containerClassName?: string;\n /**\n * Duration in milliseconds before auto-dismiss. Set to false to disable auto-dismiss\n */\n duration?: number | false;\n /**\n * Additional message content to display below the title\n */\n message?: string;\n /**\n * Callback function called when toast is dismissed, expired, or closed\n */\n onDismiss?: () => void;\n /**\n * Progress bar value or indeterminate state\n */\n progress?: ProgressBarProps[\"value\"] | \"indeterminate\";\n /**\n * CSS class name for the toast element\n */\n toastClassName?: string;\n\n // used in toast methods and passed to alert\n /**\n * Unique identifier for the toast\n */\n id: string;\n /**\n * This is only run when the \"x\" button is triggered on the toast.\n * To run a callback when the toast is closed, expired, or dismissed,\n * use the `onDismiss` parameter instead.\n */\n onClose?: AlertProps[\"onClose\"];\n /**\n * Visual status of the toast (info, success, warning, danger)\n */\n status: AlertProps[\"status\"];\n /**\n * Title text displayed in the toast\n */\n title: string;\n\n // used by toaster (internal)\n /**\n * Timestamp when the toast was created (internal use)\n */\n createdAt?: number;\n /**\n * Position index of the toast in the stack (internal use)\n */\n index?: number;\n /**\n * Whether the toast is below the stack index (internal use)\n */\n isBelowStackIndex?: boolean;\n /**\n * Whether the toast is currently stacked (internal use)\n */\n isStacked?: boolean;\n /**\n * Pause status for hover interactions (internal use)\n */\n pausedStatus?: number | \"resumed\";\n};\n\n/**\n * Toast component for displaying temporary notifications to users.\n *\n * Features:\n * - Supports different visual styles (info, success, warning, danger)\n * - Auto-dismiss with configurable duration\n * - Optional action buttons for user interaction\n * - Progress bar support for loading states\n * - Swipe gestures for dismissal\n * - Stacking behavior for multiple toasts\n * - Pause on hover functionality\n * - Accessible with proper ARIA roles\n * - Smooth animations and transitions\n *\n * @example\n * <Toast\n * id=\"toast-1\"\n * status=\"success\"\n * title=\"Success!\"\n * message=\"Your changes have been saved.\"\n * duration={5000}\n * />\n */\nexport const Toast = forwardRef<HTMLDivElement, ToastProps>(\n (\n {\n actions,\n containerClassName,\n createdAt,\n duration: durationProp,\n index = 0,\n isBelowStackIndex,\n isStacked,\n message,\n onClose,\n onDismiss,\n pausedStatus,\n progress,\n toastClassName,\n ...alertProps\n },\n ref,\n ) => {\n const { setToastHeights, extraToastsVisible, isDialogToaster } =\n useToasts();\n const closeToast = useCloseToast(styles.close);\n const toastPositionStyles = useToastPositionStyles(index);\n\n const toastWrapperRef = useRef<HTMLDivElement>(null);\n const timerRef = useRef<NodeJS.Timeout | undefined>();\n const pausedAtRef = useRef<number>(0);\n const createdAtRef = useRef<number>(createdAt ?? 0);\n const hasBeenStackedRef = useRef<boolean>(false);\n\n const [transitionClass, setTransitionClass] = useState<string | undefined>(\n styles.hidden,\n );\n const [toastOpened, setToastOpened] = useState<boolean>(false);\n\n // don't allow toasts to auto-dismiss when actions are present\n const duration = actions ? false : durationProp;\n\n const alertClasses = cx(\n styles[\"toast-alert\"],\n toastClassName,\n transitionClass,\n );\n\n useEffect(() => {\n // add styles for opening animation then remove\n if (!toastOpened) {\n setTransitionClass(styles.open);\n\n setTimeout(() => {\n setTransitionClass(undefined);\n }, ANIMATION_DURATION);\n\n // manually set toast opened since animation is not run\n setToastOpened(true);\n }\n return () => {\n // run when toast is closed\n onDismiss?.();\n };\n // only run this once\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, []);\n\n // send height to toast provider for positioning calculations on open\n useEffect(() => {\n if (toastWrapperRef.current && toastOpened && !isStacked) {\n if ((isBelowStackIndex && extraToastsVisible) || isDialogToaster) {\n // animation is disabled when dialog toaster first opens\n const delay = isDialogToaster ? 0 : ANIMATION_DURATION;\n\n setTimeout(() => {\n const height = toastWrapperRef.current?.clientHeight;\n addOrUpdateToastHeight(alertProps.id, height ?? 0, setToastHeights);\n }, delay); // get correct height after width transition\n } else {\n const height = toastWrapperRef.current.clientHeight;\n addOrUpdateToastHeight(alertProps.id, height, setToastHeights);\n }\n }\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, [\n toastOpened,\n isStacked,\n extraToastsVisible,\n isDialogToaster,\n // toast updates\n actions,\n message,\n alertProps.title,\n ]);\n\n // handle duration timeout and pausing when hovering over toaster\n useEffect(() => {\n if (duration && !isStacked) {\n // initial render\n if (!pausedStatus) {\n timerRef.current = setTimeout(\n () => closeToast(alertProps.id),\n duration,\n );\n return () => clearTimeout(timerRef.current);\n\n // initial hovering over toaster\n } else if (typeof pausedStatus === \"number\") {\n clearTimeout(timerRef.current);\n pausedAtRef.current = pausedStatus;\n\n // after initial hovering over toaster\n } else if (pausedStatus === \"resumed\") {\n const remainingDuration =\n // rendering new toast after initial hover\n pausedAtRef.current === 0\n ? duration\n : // resume timer after valid hover\n duration + (createdAtRef.current || 0) - pausedAtRef.current;\n\n timerRef.current = setTimeout(() => {\n closeToast(alertProps.id);\n pausedAtRef.current = 0;\n }, remainingDuration);\n\n return () => clearTimeout(timerRef.current);\n }\n }\n // don't want to re-render here for alertProps.id, closeToast, or isStacked\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, [createdAtRef.current, duration, pausedStatus]);\n\n // disable timeout when toasts are stacked\n useEffect(() => {\n if (duration) {\n // stop timer if toast is stacked (hidden)\n if (isStacked) {\n clearTimeout(timerRef.current);\n hasBeenStackedRef.current = true;\n\n // reset timer after moving out of the stack\n } else if (\n !isStacked &&\n hasBeenStackedRef.current &&\n !(typeof pausedStatus === \"number\")\n ) {\n createdAtRef.current = Date.now();\n\n timerRef.current = setTimeout(() => {\n closeToast(alertProps.id);\n hasBeenStackedRef.current = false;\n }, duration);\n\n return () => clearTimeout(timerRef.current);\n }\n }\n // only run if isStacked or duration change\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, [isStacked, duration]);\n\n const onSwipe = (dir: UseSwipeFn[\"direction\"]) => {\n if (dir === \"right\") {\n toast.dismiss(alertProps.id);\n return;\n }\n };\n\n const { direction, ...touchProps } = useSwipe(onSwipe);\n\n const alertCloseProps:\n | {\n onClose: AlertProps[\"onClose\"];\n }\n | Record<string, never> =\n isStacked && !extraToastsVisible\n ? {}\n : {\n onClose,\n };\n\n const hasMessage = message && message !== \"\";\n const hasProgress = progress != null;\n\n return (\n <div\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 >\n <Alert\n className={alertClasses}\n {...alertProps}\n {...alertCloseProps}\n ref={ref}\n tabIndex={isStacked && !extraToastsVisible ? -1 : 0}\n >\n {hasMessage || hasProgress || actions ? (\n <>\n {hasMessage ? (\n <div\n className={styles[\"message-container\"]}\n id={`toast-message-${alertProps.id}`}\n >\n {message}\n </div>\n ) : null}\n\n {hasProgress ? (\n <>\n {progress === \"indeterminate\" ? (\n <ProgressBar\n aria-labelledby={`toast-message-${alertProps.id}`}\n indeterminate\n />\n ) : (\n <ProgressBar\n aria-labelledby={`toast-message-${alertProps.id}`}\n value={progress}\n />\n )}\n </>\n ) : null}\n\n {actions ? (\n <div className={styles[\"alert-action\"]}>\n <Button\n appearance={actions.primary.appearance}\n onClick={actions.primary.onClick}\n size=\"small\"\n >\n {actions.primary.label}\n </Button>\n\n {actions.secondary && (\n <Button\n appearance={actions.secondary.appearance}\n onClick={actions.secondary.onClick}\n size=\"small\"\n >\n {actions.secondary.label}\n </Button>\n )}\n </div>\n ) : null}\n </>\n ) : null}\n </Alert>\n </div>\n );\n },\n);\n\nToast.displayName = \"Toast\";\n","import { MutableRefObject, useEffect, useRef, useState } from \"react\";\nimport { getActiveElement } from \"../../../internal/functions\";\n\ntype HotkeyFocusParams = {\n disabled: boolean;\n hotkey: string;\n onHotkeyIn?: () => void | Promise<void>;\n onHotkeyOut?: () => void | Promise<void>;\n refToFocus: MutableRefObject<HTMLElement>;\n rootRef: MutableRefObject<HTMLElement>;\n};\n\n/**\n * A hook that listens for a hotkey press and focuses an element when the hotkey is pressed.\n * The hook also listens for the Escape key to blur the element and refocus the previous element.\n *\n * @param params\n * @param params.disabled - If true, the hotkey will not be active\n * @param params.hotkey - The key to press to focus the element\n * @param params.onHotkeyIn - A function to run when the hotkey is pressed; this runs before the element is focused\n * @param params.onHotkeyOut - A function to run when the user presses Escape after focusing the element\n * @param params.refToFocus - The ref to the element that will be focused when the hotkey is pressed\n * @param params.rootRef - The ref to the element that will listen for changes to focus, disabling the Escape key\n */\nexport const useHotkeyFocus = ({\n disabled,\n hotkey,\n onHotkeyIn,\n onHotkeyOut,\n refToFocus,\n rootRef,\n}: HotkeyFocusParams) => {\n const [shouldEscapeRefocus, setShouldEscapeRefocus] = useState(false);\n const previousFocusElement = useRef<HTMLElement | null>(null);\n\n useEffect(() => {\n if (disabled || typeof document === \"undefined\") return;\n const rootElement = rootRef.current;\n\n const blurHandler = (e: FocusEvent) => {\n if (e.relatedTarget && rootElement.contains(e.relatedTarget as Node)) {\n return;\n }\n // If the user's focus leaves the area, pressing Escape will no longer refocus the previous element\n setShouldEscapeRefocus(false);\n };\n\n const keyDownHandler = async (e: KeyboardEvent) => {\n const activeElement = getActiveElement(document);\n\n if (\n activeElement?.tagName.toLowerCase() !== \"input\" &&\n activeElement?.tagName.toLowerCase() !== \"textarea\" &&\n activeElement?.tagName.toLowerCase() !== \"pre\" &&\n e.key === hotkey\n ) {\n e.preventDefault();\n previousFocusElement.current = activeElement as HTMLElement | null;\n await onHotkeyIn?.();\n\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 (\n previousFocusElement.current &&\n previousFocusElement.current.tagName.toLowerCase() !== \"body\"\n ) {\n (previousFocusElement.current as HTMLElement).focus();\n } else {\n (activeElement as HTMLElement).blur();\n }\n }\n };\n\n document.addEventListener(\"keydown\", keyDownHandler);\n rootElement.addEventListener(\"focusout\", blurHandler);\n\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\n return { returnFocusRef: previousFocusElement };\n};\n","import { CSSProperties, useMemo } from \"react\";\nimport { useToasts } from \"./useToasts\";\n\n/**\n * Hook for calculating position styles for the show more button\n * @returns CSS properties for positioning the show more button\n */\nexport const useShowMoreButtonPositionStyles = (): CSSProperties => {\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\n .filter((_t, i) => i >= totalToasts - toastsBeforeStack)\n .map((t) => t.height)\n .reduce((t, c) => t + c);\n }\n return \"unset\";\n // toastHeights will force update at same time as totalToasts\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, [toastHeights, toastsBeforeStack]);\n\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};\n","import {\n ComponentPropsWithoutRef,\n forwardRef,\n useEffect,\n useRef,\n useCallback,\n useState,\n CSSProperties,\n} from \"react\";\nimport cx from \"classnames\";\n\nimport { Button } from \"../../Button\";\nimport { useMergeRefs } from \"../../../hooks\";\nimport { SrOnly } from \"../../SrOnly\";\n\nimport { ANIMATION_DURATION } from \"./constants\";\nimport { Toast, ToastProps } from \"./Toast\";\nimport { toast } from \"../toast\";\nimport { useHotkeyFocus } from \"./useHotkeyFocus\";\nimport { useShowMoreButtonPositionStyles } from \"./useShowMoreButtonPositionStyles\";\nimport { useToasts } from \"./useToasts\";\n\nimport styles from \"./Toaster.module.scss\";\n\n/**\n * Props for the ToastStack component\n * @extends ComponentPropsWithoutRef<\"div\">\n */\nexport type ToastStackProps = Omit<\n ComponentPropsWithoutRef<\"div\">,\n \"children\"\n> & {\n /**\n * Duration of the toast in milliseconds. If set to `false`, the toast will not auto-dismiss.\n * If `actions` are provided in the toast method, this prop will be ignored and treated as `false`.\n * @default false\n */\n duration?: number | false;\n /**\n * How a screen-reader will announce the hotkey used to set focus on the first toast.\n * @default \"t\"\n */\n focusKey?: string;\n /**\n * How many toasts to display before they start stacking.\n * @default 3\n */\n toastsBeforeStack?: number;\n /**\n * The toasts to display in the stack.\n * @default []\n */\n toasts: ToastProps[];\n};\n\n/**\n * ToastStack component for displaying a stack of toast notifications.\n *\n * Features:\n * - Displays multiple toasts in a vertical stack\n * - Automatic stacking behavior when toast count exceeds limit\n * - Show more button to expand stacked toasts\n * - Keyboard navigation with hotkey support\n * - Hover pause functionality for toast timers\n * - Smooth animations and transitions\n * - Accessibility features with screen reader support\n * - Responsive design with mobile touch support\n * - Focus management for keyboard users\n *\n * @example\n * <ToastStack\n * toasts={toastList}\n * duration={5000}\n * toastsBeforeStack={3}\n * focusKey=\"t\"\n * />\n *\n * @example\n * <ToastStack\n * toasts={[toast1, toast2]}\n * duration={false}\n * toastsBeforeStack={5}\n * />\n */\nexport const ToastStack = forwardRef<HTMLDivElement, ToastStackProps>(\n (\n {\n className,\n duration = false,\n focusKey = \"t\",\n toasts,\n toastsBeforeStack = 3,\n ...props\n },\n ref,\n ) => {\n const toastStackRef = useRef<HTMLDivElement>(null);\n const firstToastRef = useRef<HTMLDivElement | null>(null);\n const mergedToastStackRef = useMergeRefs([toastStackRef, ref]);\n const {\n setToastsBeforeStack,\n extraToastsVisible,\n setExtraToastsVisible,\n getToastStackHeight,\n isDialogToaster,\n } = useToasts();\n const toastCount = toasts.length;\n const isToastStackEmpty = toastCount === 0;\n\n const lastToastCount = useRef<number>(0);\n\n const [toastStackHeight, setToastStackHeight] = useState<number>(0);\n const [disableAnimations, setDisableAnimations] = useState(false);\n const [toastPausedStatus, setToastPausedStatus] =\n useState<ToastProps[\"pausedStatus\"]>(undefined);\n\n useEffect(() => {\n if (toastCount === 0) {\n setToastPausedStatus(undefined);\n }\n }, [toastCount]);\n\n useEffect(() => {\n const scrollListener = (e: WheelEvent) => {\n e.preventDefault();\n e.stopPropagation();\n toastStackRef.current?.scrollTo({\n top: toastStackRef.current.scrollTop + e.deltaY,\n });\n };\n\n if (isDialogToaster) {\n // prevent existing toasts from sliding in again\n setDisableAnimations(isDialogToaster);\n setTimeout(() => {\n setDisableAnimations(false);\n }, 500);\n\n // fix scrolling for toast stacks in dialogs\n const toastStackRefCurrent = toastStackRef.current;\n toastStackRefCurrent?.addEventListener(\"wheel\", scrollListener, {\n passive: false,\n });\n\n return () => {\n toastStackRefCurrent?.removeEventListener(\"wheel\", scrollListener);\n };\n }\n }, [isDialogToaster]);\n\n // reset toast stack height when toasts change\n useEffect(() => {\n let timer: NodeJS.Timeout;\n if (toastCount > lastToastCount.current || isDialogToaster) {\n setToastStackHeight(getToastStackHeight());\n } else {\n timer = setTimeout(\n () => setToastStackHeight(getToastStackHeight()),\n ANIMATION_DURATION - 10,\n );\n }\n lastToastCount.current = toastCount;\n return () => {\n clearTimeout(timer);\n };\n // only run after toastStackHeight updates or dialog state changes\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, [getToastStackHeight, isDialogToaster]);\n\n useEffect(() => {\n setToastsBeforeStack(toastsBeforeStack);\n }, [setToastsBeforeStack, toastsBeforeStack]);\n\n const handleToastStackBlur = useCallback(() => {\n setExtraToastsVisible(false);\n\n setToastPausedStatus(\"resumed\");\n\n if (toastStackRef.current?.scrollTo) {\n toastStackRef.current?.scrollTo(0, 0);\n }\n }, [setExtraToastsVisible]);\n\n const { returnFocusRef } = useHotkeyFocus({\n disabled: isToastStackEmpty,\n hotkey: focusKey,\n onHotkeyIn: async () => {\n setExtraToastsVisible(true);\n return new Promise((resolve) => {\n // add a delay for the ToastStack to render the hidden toasts\n setTimeout(() => {\n resolve();\n }, 100);\n });\n },\n onHotkeyOut: () => {\n setExtraToastsVisible(false);\n handleToastStackBlur();\n },\n refToFocus: firstToastRef as React.MutableRefObject<HTMLElement>,\n rootRef: toastStackRef as React.MutableRefObject<HTMLElement>,\n });\n\n const showMoreButtonPositionStyles = useShowMoreButtonPositionStyles();\n\n const showMoreButton =\n !extraToastsVisible && toastCount > toastsBeforeStack;\n const extraToastsLength = toastCount - toastsBeforeStack;\n const showMoreButtonText = `${extraToastsLength} more message${extraToastsLength > 1 ? \"s\" : \"\"}`;\n\n const toastStackClasses = cx(styles[\"toast-stack\"], className, {\n [styles[\"show-more-button\"]]: showMoreButton,\n [styles[\"show-extra-toast\"]]: extraToastsVisible,\n [styles[\"disable-animations\"]]: disableAnimations,\n });\n\n const handleToastStackFocusHover = () => {\n if (toastPausedStatus === \"resumed\" || toastPausedStatus === undefined) {\n setToastPausedStatus(Date.now());\n }\n };\n\n const handleToastStackOnBlur = () => {\n if (!toastStackRef.current?.matches(\":focus-within\")) {\n handleToastStackBlur();\n }\n };\n\n const handleShowMoreButtonClick = () => {\n setExtraToastsVisible(true);\n };\n\n let toastStackHeightStyle: CSSProperties[\"height\"] = 0;\n\n if (extraToastsVisible) {\n // need to reduce padding here due to box-sizing: content-box\n toastStackHeightStyle = \"calc(100vh - var(--toast-stack-padding) * 2)\";\n } else if (toastCount > toastsBeforeStack) {\n // 3rem to leave room for show more button\n toastStackHeightStyle = `calc(${toastStackHeight}px + 3rem + var(--toast-stack-padding))`;\n } else {\n toastStackHeightStyle = toastStackHeight;\n }\n\n return (\n <>\n <div\n data-anv=\"ToastStack\"\n className={toastStackClasses}\n ref={mergedToastStackRef}\n onMouseOver={handleToastStackFocusHover}\n onMouseLeave={handleToastStackBlur}\n onFocus={handleToastStackFocusHover}\n onBlur={handleToastStackOnBlur}\n style={{\n height: toastStackHeightStyle,\n }}\n {...props}\n >\n {toasts.map(({ toastClassName, onClose, ...toastProps }, index) => {\n const isStacked =\n !extraToastsVisible && index < toastCount - toastsBeforeStack;\n\n const isLastToastDisplayed =\n index === toastCount - toastsBeforeStack;\n\n const isHidden = index < toastCount - toastsBeforeStack - 2;\n\n const toastClasses = cx(styles.toast, toastClassName);\n const toastContainerClasses = cx(styles[\"toast-wrapper\"], {\n [styles.stacked]: isStacked || isLastToastDisplayed,\n [styles[\"stack-one\"]]:\n isStacked && index === toastCount - toastsBeforeStack - 1,\n [styles[\"stack-two\"]]:\n isStacked && index === toastCount - toastsBeforeStack - 2,\n [styles[\"stacked-extra\"]]: isHidden,\n [styles[\"stacked-show-extra\"]]: extraToastsVisible,\n });\n\n const handleOnClose = (\n e: React.MouseEvent<HTMLButtonElement, MouseEvent>,\n ) => {\n onClose?.(e);\n returnFocusRef.current?.focus();\n toast.dismiss(toastProps.id);\n };\n\n return (\n <Toast\n containerClassName={toastContainerClasses}\n duration={duration}\n index={index}\n isStacked={isStacked}\n isBelowStackIndex={index < toastCount - toastsBeforeStack}\n key={toastProps.id}\n onClose={handleOnClose}\n pausedStatus={toastPausedStatus}\n toastClassName={toastClasses}\n ref={index === 0 ? firstToastRef : undefined}\n {...toastProps}\n />\n );\n })}\n {showMoreButton && (\n <div\n className={styles[\"show-more-button-container\"]}\n style={showMoreButtonPositionStyles}\n >\n <Button\n className={styles[\"show-collapse-button\"]}\n onClick={handleShowMoreButtonClick}\n appearance=\"secondary\"\n tabIndex={0}\n >\n {showMoreButtonText}\n </Button>\n </div>\n )}\n <SrOnly aria-live=\"polite\">\n New toast message appeared. Press the {focusKey} key to focus on the\n toast messages. Press escape to return focus to previous position.\n </SrOnly>\n </div>\n {extraToastsVisible && (\n <div className={styles[\"show-collapse-button-container\"]}>\n <Button\n className={styles[\"show-collapse-button\"]}\n onClick={handleToastStackBlur}\n appearance=\"secondary\"\n >\n Collapse Messages\n </Button>\n </div>\n )}\n </>\n );\n },\n);\n\nToastStack.displayName = \"ToastStack\";\n","import cx from \"classnames\";\nimport {\n ComponentPropsWithoutRef,\n forwardRef,\n useEffect,\n useCallback,\n useRef,\n useState,\n} from \"react\";\n\nimport { ANIMATION_DURATION } from \"./constants\";\nimport { ToastProvider } from \"./ToastProvider\";\nimport {\n ToastCustomEventDetail,\n ToastCustomEventDetailAdd,\n ToastCustomEventDetailUpdate,\n ToastUpdateProps,\n} from \"./types\";\nimport { ToastProps } from \"./Toast\";\nimport { ToastStack, ToastStackProps } from \"./ToastStack\";\nimport { ToasterPopover } from \"./ToasterPopover\";\nimport { useCloseToast } from \"./useCloseToast\";\nimport { useMergeRefs } from \"../../../hooks\";\nimport { useToasts } from \"./useToasts\";\n\nimport styles from \"./Toaster.module.scss\";\n\nexport type ToastEventType = {\n eventType: \"add\" | \"update\" | \"dismiss\" | \"dismiss-all\";\n toastCount: number;\n id?: string;\n toasterId?: string;\n toastProps?: ToastProps | ToastUpdateProps;\n};\n\n/**\n * Props for the Toaster component\n * @extends ComponentPropsWithoutRef<\"div\">\n * @extends Omit<ToastStackProps, \"toasts\">\n */\nexport type ToasterProps = ComponentPropsWithoutRef<\"div\"> &\n Omit<ToastStackProps, \"toasts\"> & {\n /**\n * When `true`, the toaster will not listen for custom events to add, update, or dismiss toasts.\n * Use this to prevent multiple toasters from displaying the same toasts.\n * @default false\n */\n disableEvents?: boolean;\n /**\n * @deprecated This prop has no effect. The toaster no longer conditionally renders internally.\n * @default false\n */\n forceRender?: boolean;\n /**\n * Unique toaster id.\n */\n id: string;\n /**\n * Callback function that is called when toasts are added, updated, or dismissed.\n */\n onToastEvent?: (toastEvent: ToastEventType) => void;\n };\n\ntype DialogToasterCustomEventDetail = {\n eventType: \"dialog-toaster\";\n};\ntype DialogToasterCustomEvent = CustomEvent<DialogToasterCustomEventDetail>;\n\n/**\n * Toaster component for managing and displaying toast notifications.\n *\n * Features:\n * - Manages multiple toast notifications in a stack\n * - Handles toast positioning and stacking behavior\n * - Supports custom events for toast management\n * - Automatic toast dismissal with configurable duration\n * - Keyboard navigation and accessibility support\n * - Dialog-aware positioning for modal contexts\n * - Session storage for dialog toaster state\n * - Custom event system for toast lifecycle management\n * - Responsive design with mobile support\n *\n * @example\n * <Toaster\n * id=\"main-toaster\"\n * duration={5000}\n * toastsBeforeStack={3}\n * onToastEvent={(event) => console.log('Toast event:', event)}\n * />\n *\n * @example\n * <Toaster\n * id=\"dialog-toaster\"\n * disableEvents={false}\n * focusKey=\"t\"\n * />\n */\nexport const ToasterContent = forwardRef<HTMLDivElement, ToasterProps>(\n (\n {\n className,\n disableEvents = false,\n // eslint-disable-next-line @typescript-eslint/no-unused-vars -- pulling out of props\n forceRender = false,\n id,\n onToastEvent,\n\n // ToastStackProps\n duration,\n focusKey,\n toastsBeforeStack,\n ...props\n },\n ref,\n ) => {\n const toasterRef = useRef<HTMLDivElement>(null);\n const mergedToasterRef = useMergeRefs([toasterRef, ref]);\n\n const { toasts, setToasts, isDialogToaster } = useToasts();\n\n // refs using state to be used inside event listeners\n const disableEventsRef = useRef<boolean>(disableEvents);\n const toastCountRef = useRef<number>(0);\n const isDialogToasterRef = useRef<boolean>(isDialogToaster);\n\n const [shouldHideToaster, setShouldHideToaster] = useState(false);\n\n const updateDialogToasterStorage = useCallback(\n (isDialogToaster: boolean) => {\n const dialogToasters = JSON.parse(\n window?.sessionStorage.getItem(\"dialog-toasters\") ?? \"[]\",\n );\n\n if (isDialogToaster) {\n if (!dialogToasters.includes(id)) {\n window?.sessionStorage.setItem(\n \"dialog-toasters\",\n JSON.stringify([...dialogToasters, id]),\n );\n }\n } else if (dialogToasters.includes(id)) {\n window?.sessionStorage.setItem(\n \"dialog-toasters\",\n JSON.stringify(\n dialogToasters.filter(\n (dialogToaster: string) => dialogToaster !== id,\n ),\n ),\n );\n }\n },\n [id],\n );\n\n useEffect(() => {\n disableEventsRef.current = disableEvents;\n }, [disableEvents]);\n\n useEffect(() => {\n toastCountRef.current = toasts.length;\n }, [toasts.length]);\n\n useEffect(() => {\n // update session storage\n updateDialogToasterStorage(isDialogToaster);\n // update ref for event listeners\n isDialogToasterRef.current = isDialogToaster;\n\n // Dispatch a custom event to notify other Toasters\n const DialogToasterEvent: DialogToasterCustomEvent =\n new CustomEvent<DialogToasterCustomEventDetail>(\"dialog-toaster\", {\n composed: true,\n detail: {\n eventType: \"dialog-toaster\",\n },\n });\n dispatchEvent(DialogToasterEvent);\n // don't need to check for function change\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, [isDialogToaster]);\n\n const closeToast = useCloseToast(styles.close);\n\n useEffect(() => {\n let timeout: NodeJS.Timeout | undefined;\n updateDialogToasterStorage(isDialogToaster);\n\n /**\n * Listen for custom events to add, update, or dismiss toasts.\n */\n const toastEventListener = (e: Event) => {\n if (disableEventsRef.current) {\n return;\n }\n\n const { eventType, ...toastProps } = (\n e as CustomEvent<ToastCustomEventDetail>\n ).detail;\n\n if (eventType === \"add\") {\n const toastAddProps = toastProps as ToastCustomEventDetailAdd;\n\n if (!toastAddProps.toasterId || toastAddProps.toasterId === id) {\n setToasts((prev) => [...prev, toastProps as ToastProps]);\n }\n\n // allow for state change to finish before calling onToastEvent()\n timeout = setTimeout(() => {\n onToastEvent?.({\n eventType: \"add\",\n toastCount: toastCountRef.current,\n id: toastAddProps.id,\n toasterId: id,\n toastProps: toastAddProps,\n });\n });\n } else if (eventType === \"update\") {\n const toastUpdateProps = toastProps as ToastCustomEventDetailUpdate;\n\n setToasts((prev) => {\n return prev.map((t) => {\n if (t.id === toastUpdateProps.id) {\n return {\n ...t,\n ...toastUpdateProps,\n };\n } else {\n return t;\n }\n });\n });\n\n onToastEvent?.({\n eventType: \"update\",\n toastCount: toastCountRef.current,\n id: toastUpdateProps.id,\n toasterId: id,\n toastProps: toastUpdateProps,\n });\n } else if (eventType === \"dismiss\") {\n if (toastProps.id) {\n closeToast(toastProps.id);\n\n // allow for animation to finish before calling onToastEvent()\n timeout = setTimeout(() => {\n onToastEvent?.({\n eventType: \"dismiss\",\n toastCount: toastCountRef.current,\n id: toastProps.id,\n toasterId: id,\n });\n }, ANIMATION_DURATION);\n } else {\n closeToast();\n\n onToastEvent?.({\n eventType: \"dismiss-all\",\n toastCount: 0,\n toasterId: id,\n });\n }\n }\n };\n\n /**\n * Listen for custom events that indicate a dialog toaster is open or closed.\n */\n const dialogToasterEventListener = (e: Event) => {\n const { eventType } = (e as CustomEvent<DialogToasterCustomEventDetail>)\n .detail;\n if (eventType === \"dialog-toaster\") {\n const dialogToasters = JSON.parse(\n window?.sessionStorage.getItem(\"dialog-toasters\") ?? \"[]\",\n );\n if (dialogToasters.length > 0) {\n if (\n isDialogToasterRef.current &&\n dialogToasters[dialogToasters.length - 1] === id\n ) {\n setShouldHideToaster(false);\n } else {\n setShouldHideToaster(true);\n }\n } else {\n setShouldHideToaster(false);\n }\n }\n };\n\n const onPageRefreshListener = () => {\n window?.sessionStorage.removeItem(\"dialog-toasters\");\n };\n\n window?.addEventListener(\"hammer-toast\", toastEventListener);\n window?.addEventListener(\"dialog-toaster\", dialogToasterEventListener);\n window?.addEventListener(\"beforeunload\", onPageRefreshListener);\n\n return () => {\n window?.removeEventListener(\"hammer-toast\", toastEventListener);\n window?.removeEventListener(\n \"dialog-toaster\",\n dialogToasterEventListener,\n );\n window?.removeEventListener(\"beforeunload\", onPageRefreshListener);\n\n clearTimeout(timeout);\n updateDialogToasterStorage(false);\n };\n // only run on first render\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, []);\n\n const toasterClasses = cx(styles.toaster, {\n [styles[\"hidden\"]]: shouldHideToaster,\n [`${className}`]: className != null,\n });\n\n return (\n <div\n data-anv=\"toaster\"\n data-toaster-id={id}\n aria-hidden={shouldHideToaster}\n className={toasterClasses}\n ref={mergedToasterRef}\n {...props}\n >\n <ToastStack\n toasts={toasts}\n duration={duration}\n focusKey={focusKey}\n toastsBeforeStack={toastsBeforeStack}\n />\n </div>\n );\n },\n);\n\nexport const Toaster = forwardRef<HTMLDivElement, ToasterProps>(\n (props, ref) => {\n return (\n <ToastProvider>\n <ToasterPopover>\n <ToasterContent {...props} ref={ref} />\n </ToasterPopover>\n </ToastProvider>\n );\n },\n);\n\nToaster.displayName = \"Toaster\";\nToasterContent.displayName = \"ToasterContent\";\n"],"names":["toasts","uuid","promise","isDialogToaster"],"mappings":"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","x_google_ignoreList":[5,6,7,8]}
|
|
@@ -1,8 +0,0 @@
|
|
|
1
|
-
import * as React from 'react';
|
|
2
|
-
|
|
3
|
-
const SvgError = (props) => /* @__PURE__ */ React.createElement("svg", { xmlns: "http://www.w3.org/2000/svg", width: "1em", height: "1em", viewBox: "0 0 24 24", ...props }, /* @__PURE__ */ React.createElement("path", { d: "M12 2C6.48 2 2 6.48 2 12s4.48 10 10 10 10-4.48 10-10S17.52 2 12 2zm0 11c-.55 0-1-.45-1-1V8c0-.55.45-1 1-1s1 .45 1 1v4c0 .55-.45 1-1 1zm1 4h-2v-2h2v2z" }));
|
|
4
|
-
|
|
5
|
-
const SvgCheckCircle = (props) => /* @__PURE__ */ React.createElement("svg", { xmlns: "http://www.w3.org/2000/svg", width: "1em", height: "1em", viewBox: "0 0 24 24", ...props }, /* @__PURE__ */ React.createElement("path", { d: "M12 2C6.48 2 2 6.48 2 12s4.48 10 10 10 10-4.48 10-10S17.52 2 12 2zM9.29 16.29 5.7 12.7a.996.996 0 1 1 1.41-1.41L10 14.17l6.88-6.88a.996.996 0 1 1 1.41 1.41l-7.59 7.59a.996.996 0 0 1-1.41 0z" }));
|
|
6
|
-
|
|
7
|
-
export { SvgError as S, SvgCheckCircle as a };
|
|
8
|
-
//# sourceMappingURL=check_circle-Dja-C2lM.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"check_circle-Dja-C2lM.js","sources":["../../hammer-icon/mdi/round/error.svg","../../hammer-icon/mdi/round/check_circle.svg"],"sourcesContent":["import * as React from \"react\";\nconst SvgError = (props) => /* @__PURE__ */ React.createElement(\"svg\", { xmlns: \"http://www.w3.org/2000/svg\", width: \"1em\", height: \"1em\", viewBox: \"0 0 24 24\", ...props }, /* @__PURE__ */ React.createElement(\"path\", { d: \"M12 2C6.48 2 2 6.48 2 12s4.48 10 10 10 10-4.48 10-10S17.52 2 12 2zm0 11c-.55 0-1-.45-1-1V8c0-.55.45-1 1-1s1 .45 1 1v4c0 .55-.45 1-1 1zm1 4h-2v-2h2v2z\" }));\nexport default SvgError;\n","import * as React from \"react\";\nconst SvgCheckCircle = (props) => /* @__PURE__ */ React.createElement(\"svg\", { xmlns: \"http://www.w3.org/2000/svg\", width: \"1em\", height: \"1em\", viewBox: \"0 0 24 24\", ...props }, /* @__PURE__ */ React.createElement(\"path\", { d: \"M12 2C6.48 2 2 6.48 2 12s4.48 10 10 10 10-4.48 10-10S17.52 2 12 2zM9.29 16.29 5.7 12.7a.996.996 0 1 1 1.41-1.41L10 14.17l6.88-6.88a.996.996 0 1 1 1.41 1.41l-7.59 7.59a.996.996 0 0 1-1.41 0z\" }));\nexport default SvgCheckCircle;\n"],"names":[],"mappings":";;AACK,MAAC,QAAQ,GAAG,CAAC,KAAK,qBAAqB,KAAK,CAAC,aAAa,CAAC,KAAK,EAAE,EAAE,KAAK,EAAE,4BAA4B,EAAE,KAAK,EAAE,KAAK,EAAE,MAAM,EAAE,KAAK,EAAE,OAAO,EAAE,WAAW,EAAE,GAAG,KAAK,EAAE,kBAAkB,KAAK,CAAC,aAAa,CAAC,MAAM,EAAE,EAAE,CAAC,EAAE,uJAAuJ,EAAE,CAAC;;ACAnX,MAAC,cAAc,GAAG,CAAC,KAAK,qBAAqB,KAAK,CAAC,aAAa,CAAC,KAAK,EAAE,EAAE,KAAK,EAAE,4BAA4B,EAAE,KAAK,EAAE,KAAK,EAAE,MAAM,EAAE,KAAK,EAAE,OAAO,EAAE,WAAW,EAAE,GAAG,KAAK,EAAE,kBAAkB,KAAK,CAAC,aAAa,CAAC,MAAM,EAAE,EAAE,CAAC,EAAE,+LAA+L,EAAE,CAAC;;;;"}
|