@servicetitan/anvil2 1.46.1 → 1.46.3
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 +48 -0
- package/dist/{Alert-BNGvfMAV.js → Alert-CPOBY6O5.js} +2 -2
- package/dist/{Alert-BNGvfMAV.js.map → Alert-CPOBY6O5.js.map} +1 -1
- package/dist/Alert.js +1 -1
- package/dist/{Announcement-CoheCP1i.js → Announcement-BvzAEdx8.js} +2 -2
- package/dist/{Announcement-CoheCP1i.js.map → Announcement-BvzAEdx8.js.map} +1 -1
- package/dist/Announcement.js +1 -1
- package/dist/AnvilProvider-C_qRQnE6.js.map +1 -1
- package/dist/{Avatar-CyGjhToG.js → Avatar-3d5Kv2CF.js} +2 -2
- package/dist/{Avatar-CyGjhToG.js.map → Avatar-3d5Kv2CF.js.map} +1 -1
- package/dist/{Avatar-D07f9NH_.js → Avatar-DJ3oJNsv.js} +2 -2
- package/dist/{Avatar-D07f9NH_.js.map → Avatar-DJ3oJNsv.js.map} +1 -1
- package/dist/Avatar.js +2 -2
- package/dist/Badge-DCA9mfc2.js.map +1 -1
- package/dist/Breadcrumbs-C4_PEolS.js.map +1 -1
- package/dist/{Button-BxFXQ0-n.js → Button-VNQQgZ45.js} +2 -2
- package/dist/{Button-BxFXQ0-n.js.map → Button-VNQQgZ45.js.map} +1 -1
- package/dist/Button.css +48 -48
- package/dist/Button.js +1 -1
- package/dist/Button.module-C1g9rrJs.js +25 -0
- package/dist/Button.module-C1g9rrJs.js.map +1 -0
- package/dist/{ButtonCompound-BF2Q6gGX.js → ButtonCompound-BbPK-Xjj.js} +2 -2
- package/dist/{ButtonCompound-BF2Q6gGX.js.map → ButtonCompound-BbPK-Xjj.js.map} +1 -1
- package/dist/ButtonCompound.js +1 -1
- package/dist/{ButtonLink-CXv65WVV.js → ButtonLink-CqR1F5Wn.js} +3 -3
- package/dist/{ButtonLink-CXv65WVV.js.map → ButtonLink-CqR1F5Wn.js.map} +1 -1
- package/dist/ButtonLink.js +1 -1
- package/dist/{ButtonToggle-pSwg7NvT.js → ButtonToggle-PCeSG-5D.js} +3 -3
- package/dist/{ButtonToggle-pSwg7NvT.js.map → ButtonToggle-PCeSG-5D.js.map} +1 -1
- package/dist/ButtonToggle.js +1 -1
- package/dist/{Calendar-BQ5F2ENO.js → Calendar-Cn0fOgog.js} +366 -169
- package/dist/Calendar-Cn0fOgog.js.map +1 -0
- package/dist/Calendar.js +1 -1
- package/dist/Card-vTYeSkxt.js.map +1 -1
- package/dist/{Checkbox-Dl4KTwEJ.js → Checkbox-C5PX8wur.js} +2 -2
- package/dist/{Checkbox-Dl4KTwEJ.js.map → Checkbox-C5PX8wur.js.map} +1 -1
- package/dist/{Checkbox-DDrmVC-u.js → Checkbox-DAODkzN3.js} +2 -2
- package/dist/{Checkbox-DDrmVC-u.js.map → Checkbox-DAODkzN3.js.map} +1 -1
- package/dist/Checkbox.js +2 -2
- package/dist/{Chip-Bz-vlQ4D.js → Chip-DLU13qe-.js} +2 -2
- package/dist/{Chip-Bz-vlQ4D.js.map → Chip-DLU13qe-.js.map} +1 -1
- package/dist/Chip.js +1 -1
- package/dist/{Combobox-B9nesJuc.js → Combobox-DO8cIvRQ.js} +146 -55
- package/dist/Combobox-DO8cIvRQ.js.map +1 -0
- package/dist/Combobox.js +1 -1
- package/dist/{DateField-DXxPsRtf.js → DateField-qHdgwSlB.js} +36 -102
- package/dist/DateField-qHdgwSlB.js.map +1 -0
- package/dist/DateField.js +1 -1
- package/dist/{DateFieldRange-Xauviu1w.js → DateFieldRange-GNpWV70g.js} +57 -58
- package/dist/DateFieldRange-GNpWV70g.js.map +1 -0
- package/dist/DateFieldRange.js +1 -1
- package/dist/{DateFieldSingle-yLnwpVzd.js → DateFieldSingle-B9caNibj.js} +53 -55
- package/dist/DateFieldSingle-B9caNibj.js.map +1 -0
- package/dist/DateFieldSingle.js +1 -1
- package/dist/{DateFieldYearless-Ba7HiTiI.js → DateFieldYearless-BmeKGaDc.js} +4 -4
- package/dist/{DateFieldYearless-Ba7HiTiI.js.map → DateFieldYearless-BmeKGaDc.js.map} +1 -1
- package/dist/DateFieldYearless.js +1 -1
- package/dist/{DaysOfTheWeek-BYSYZySH.js → DaysOfTheWeek-DPH13VCK.js} +4 -4
- package/dist/{DaysOfTheWeek-BYSYZySH.js.map → DaysOfTheWeek-DPH13VCK.js.map} +1 -1
- package/dist/DaysOfTheWeek.js +1 -1
- package/dist/Details-CF8DImjw.js.map +1 -1
- package/dist/{Dialog-CgkrvrQu.js → Dialog-BHFLnFNQ.js} +7 -7
- package/dist/{Dialog-CgkrvrQu.js.map → Dialog-BHFLnFNQ.js.map} +1 -1
- package/dist/Dialog.js +1 -1
- package/dist/Divider-DJe8kLf2.js.map +1 -1
- package/dist/Dnd.js +1 -1
- package/dist/DndSort.js +2 -2
- package/dist/DndSort.js.map +1 -1
- package/dist/{Drawer-CM4ZbAro.js → Drawer-BDA7Sjj9.js} +7 -7
- package/dist/{Drawer-CM4ZbAro.js.map → Drawer-BDA7Sjj9.js.map} +1 -1
- package/dist/Drawer.js +1 -1
- package/dist/{DrawerContext-DboTgTmo.js → DrawerContext-D4tWTLVf.js} +27 -10
- package/dist/DrawerContext-D4tWTLVf.js.map +1 -0
- package/dist/{EditCard-WKzZ2XCz.js → EditCard-CZzL0nx7.js} +2 -2
- package/dist/{EditCard-WKzZ2XCz.js.map → EditCard-CZzL0nx7.js.map} +1 -1
- package/dist/EditCard.js +1 -1
- package/dist/{FieldLabel-BsbTTyom.js → FieldLabel-Bgl3iu13.js} +2 -2
- package/dist/{FieldLabel-BsbTTyom.js.map → FieldLabel-Bgl3iu13.js.map} +1 -1
- package/dist/FieldLabel.js +1 -1
- package/dist/FieldMessage-B7uQ8vmr.js.map +1 -1
- package/dist/Flex-BdQMekvA.js.map +1 -1
- package/dist/Grid-MGUC698u.js.map +1 -1
- package/dist/Helper-BkIDJqgA.js.map +1 -1
- package/dist/Icon-D8SPKeO4.js.map +1 -1
- package/dist/{InputMask-_F139qFu.js → InputMask-B13KumrK.js} +3 -3
- package/dist/{InputMask-_F139qFu.js.map → InputMask-B13KumrK.js.map} +1 -1
- package/dist/InputMask.js +1 -1
- package/dist/Layout-CUUb2PVr.js.map +1 -1
- package/dist/Link-eRsLWPaQ.js.map +1 -1
- package/dist/LinkButton-2lXfrVoU.js.map +1 -1
- package/dist/{ListView-pb3rIcze.js → ListView-C-cVQZHp.js} +3 -3
- package/dist/{ListView-pb3rIcze.js.map → ListView-C-cVQZHp.js.map} +1 -1
- package/dist/ListView.js +1 -1
- package/dist/{Listbox-CUhMbFm2.js → Listbox-DxGx630W.js} +2 -2
- package/dist/{Listbox-CUhMbFm2.js.map → Listbox-DxGx630W.js.map} +1 -1
- package/dist/Listbox.js +1 -1
- package/dist/LocalizationContext-UsmB5mnR.js.map +1 -1
- package/dist/LocalizationProvider-DEZyjW5d.js.map +1 -1
- package/dist/{Menu-DEVZz9xZ.js → Menu-DUZqzpwg.js} +8 -10
- package/dist/Menu-DUZqzpwg.js.map +1 -0
- package/dist/Menu.js +1 -1
- package/dist/{NumberField-CkZZrkYC.js → NumberField-DWPAy1eG.js} +11 -11
- package/dist/{NumberField-CkZZrkYC.js.map → NumberField-DWPAy1eG.js.map} +1 -1
- package/dist/NumberField.css +9 -6
- package/dist/NumberField.js +1 -1
- package/dist/Overflow.js.map +1 -1
- package/dist/{Page-BMDkbDcU.js → Page-BfH2mGSt.js} +11 -11
- package/dist/Page-BfH2mGSt.js.map +1 -0
- package/dist/Page.js +1 -1
- package/dist/{Pagination-BJsCppgW.js → Pagination-B_G9QcHf.js} +48 -24
- package/dist/Pagination-B_G9QcHf.js.map +1 -0
- package/dist/Pagination.css +6 -6
- package/dist/Pagination.js +1 -1
- package/dist/{Popover-r26xMIfm.js → Popover-v8R920kj.js} +137 -196
- package/dist/Popover-v8R920kj.js.map +1 -0
- package/dist/Popover.js +1 -1
- package/dist/PortalProvider-9lXkQ0xY.js.map +1 -1
- package/dist/{ProgressBar-DXcXZEJ2.js → ProgressBar-BWN2yv1s.js} +2 -2
- package/dist/{ProgressBar-DXcXZEJ2.js.map → ProgressBar-BWN2yv1s.js.map} +1 -1
- package/dist/ProgressBar.js +1 -1
- package/dist/{Radio-C89VCMXd.js → Radio-C5riI-do.js} +2 -2
- package/dist/{Radio-C89VCMXd.js.map → Radio-C5riI-do.js.map} +1 -1
- package/dist/Radio.js +2 -2
- package/dist/{RadioGroup-C_4buUtG.js → RadioGroup-B7O06pVu.js} +2 -2
- package/dist/{RadioGroup-C_4buUtG.js.map → RadioGroup-B7O06pVu.js.map} +1 -1
- package/dist/{SearchField-Bb0uObwG.js → SearchField-CbwGErC4.js} +2 -2
- package/dist/{SearchField-Bb0uObwG.js.map → SearchField-CbwGErC4.js.map} +1 -1
- package/dist/SearchField.js +1 -1
- package/dist/{SegmentedControl-CsjjV1Dz.js → SegmentedControl-CLDdes8W.js} +4 -4
- package/dist/{SegmentedControl-CsjjV1Dz.js.map → SegmentedControl-CLDdes8W.js.map} +1 -1
- package/dist/SegmentedControl.js +1 -1
- package/dist/{SelectCard-BTYZg9TG.js → SelectCard-Ca07K1FW.js} +3 -3
- package/dist/{SelectCard-BTYZg9TG.js.map → SelectCard-Ca07K1FW.js.map} +1 -1
- package/dist/SelectCard.js +1 -1
- package/dist/{SelectTrigger-f1hvRrSC.js → SelectTrigger-CaXX1SHG.js} +3 -3
- package/dist/{SelectTrigger-f1hvRrSC.js.map → SelectTrigger-CaXX1SHG.js.map} +1 -1
- package/dist/SelectTrigger.js +1 -1
- package/dist/{SelectTriggerBase-DP9fmRSo.js → SelectTriggerBase-C7TLCna1.js} +4 -4
- package/dist/{SelectTriggerBase-DP9fmRSo.js.map → SelectTriggerBase-C7TLCna1.js.map} +1 -1
- package/dist/{SideNav-CBAzYyML.js → SideNav-nqq5sAwz.js} +3 -3
- package/dist/SideNav-nqq5sAwz.js.map +1 -0
- package/dist/SideNav.js +1 -1
- package/dist/Skeleton.js.map +1 -1
- package/dist/Spinner-wmO8Epw0.js.map +1 -1
- package/dist/SrOnly-CTsYSuby.js.map +1 -1
- package/dist/{Stepper-D-fOH9TF.js → Stepper-DQ_Hm-AI.js} +4 -4
- package/dist/{Stepper-D-fOH9TF.js.map → Stepper-DQ_Hm-AI.js.map} +1 -1
- package/dist/Stepper.js +1 -1
- package/dist/Switch-C2ddZcr9.js.map +1 -1
- package/dist/{Tab-wNucMTgo.js → Tab-CzNx3IdF.js} +45 -37
- package/dist/Tab-CzNx3IdF.js.map +1 -0
- package/dist/Tab.js +1 -1
- package/dist/Text-BqvcbXyp.js.map +1 -1
- package/dist/{TextField-D8fow9j7.js → TextField-D9gD-34Q.js} +3 -3
- package/dist/{TextField-D8fow9j7.js.map → TextField-D9gD-34Q.js.map} +1 -1
- package/dist/{TextField-BiHxlzE3.js → TextField-uCHgwO5F.js} +2 -2
- package/dist/{TextField-BiHxlzE3.js.map → TextField-uCHgwO5F.js.map} +1 -1
- package/dist/TextField.js +1 -1
- package/dist/{Textarea-BdVJJlbP.js → Textarea-B2-6m291.js} +3 -3
- package/dist/{Textarea-BdVJJlbP.js.map → Textarea-B2-6m291.js.map} +1 -1
- package/dist/Textarea.js +1 -1
- package/dist/ThemeProvider-Be3Pvtpz.js.map +1 -1
- package/dist/ThemeProviderContext-l52GohYT.js.map +1 -1
- package/dist/{TimeField-CmbErrsZ.js → TimeField-B5Jgy-Zg.js} +363 -360
- package/dist/TimeField-B5Jgy-Zg.js.map +1 -0
- package/dist/TimeField.js +1 -1
- package/dist/Toast.js +2 -2
- package/dist/{Toaster-B7zUwJOt.js → Toaster-CHyB-Mxs.js} +3 -3
- package/dist/{Toaster-B7zUwJOt.js.map → Toaster-CHyB-Mxs.js.map} +1 -1
- package/dist/{Toaster-9cpG_tWR.js → Toaster-CyiGDKMh.js} +18 -18
- package/dist/{Toaster-9cpG_tWR.js.map → Toaster-CyiGDKMh.js.map} +1 -1
- package/dist/{Toolbar-D4zuUFhb.js → Toolbar-BXGTrR6o.js} +19 -18
- package/dist/Toolbar-BXGTrR6o.js.map +1 -0
- package/dist/Toolbar.js +1 -1
- package/dist/{Tooltip-BI3Xs75X.js → Tooltip-DhtVlhah.js} +9 -3
- package/dist/{Tooltip-BI3Xs75X.js.map → Tooltip-DhtVlhah.js.map} +1 -1
- package/dist/Tooltip.js +1 -1
- package/dist/TrackingProvider-BtSjkmpM.js.map +1 -1
- package/dist/beta.js +1 -1
- package/dist/childrenToString-Bz9MqbHb.js.map +1 -1
- package/dist/components/Calendar/Calendar.d.ts +5 -0
- package/dist/components/Calendar/CalendarNowButton.d.ts +3 -1
- package/dist/components/Combobox/ComboboxTypes.d.ts +10 -5
- package/dist/components/Combobox/internal/ComboboxGroupContext.d.ts +1 -1
- package/dist/components/Combobox/internal/useGroups.d.ts +2 -2
- package/dist/components/DndSort/internal/test-utils.d.ts +1 -1
- package/dist/components/Popover/Popover.d.ts +136 -1
- package/dist/components/Popover/PopoverTrigger.d.ts +0 -1
- package/dist/components/Popover/internal/PopoverContext.d.ts +5 -3
- package/dist/components/Popover/internal/usePopoverContext.d.ts +6 -4
- package/dist/components/TimeField/TimeField.d.ts +4 -1
- package/dist/extends-Bg2s_OKl.js.map +1 -1
- package/dist/getActiveElement-BcSyVE7S.js.map +1 -1
- package/dist/getKeyboardFocusableElements-QqcABz0D.js.map +1 -1
- package/dist/hooks/useMergeRefs/useMergeRefs.d.ts +11 -0
- package/dist/{index-V5Ez2gq_.js → index-DrM3iid4.js} +2 -2
- package/dist/{index-V5Ez2gq_.js.map → index-DrM3iid4.js.map} +1 -1
- package/dist/index-tZvMCc77.js.map +1 -1
- package/dist/{index.esm-D889iexm.js → index.esm-BwMVvxTV.js} +199 -144
- package/dist/index.esm-BwMVvxTV.js.map +1 -0
- package/dist/index.js +52 -52
- package/dist/index.js.map +1 -1
- package/dist/internal/hooks/useFocusWithin/useFocusWithin.d.ts +2 -1
- package/dist/internal/hooks/useKeyboardFocusables/useKeyboardFocusables.d.ts +0 -1
- package/dist/internal/hooks/useOnClickOutside/useOnClickOutside.d.ts +5 -1
- package/dist/makeZeroShortcutPreprocessor-CxsiGTRW.js.map +1 -1
- package/dist/{proxy-CreWmH-e.js → proxy-BbFHSE6L.js} +8631 -8680
- package/dist/proxy-BbFHSE6L.js.map +1 -0
- package/dist/{use-reduced-motion-znCm41qB.js → use-reduced-motion-DSpxmqyT.js} +3 -3
- package/dist/use-reduced-motion-DSpxmqyT.js.map +1 -0
- package/dist/useAccessibleColor-BYKjkGRg.js.map +1 -1
- package/dist/useBreakpoint-Cv5fnZxs.js.map +1 -1
- package/dist/{useFocusWithin-BhhgRXdZ.js → useFocusWithin-hi77jsrB.js} +6 -3
- package/dist/useFocusWithin-hi77jsrB.js.map +1 -0
- package/dist/useInfiniteCombobox-WcRgC9p6.js.map +1 -1
- package/dist/useIntersectionObserver-BEmMDO3P.js.map +1 -1
- package/dist/{useDialogTransitionStates-2NaE_noq.js → useKeyboardFocusables-ek2mYel-.js} +46 -5
- package/dist/useKeyboardFocusables-ek2mYel-.js.map +1 -0
- package/dist/useLayoutPropsUtil-DjD5IMh0.js.map +1 -1
- package/dist/useMergeRefs-Dfmtq9cI.js +22 -0
- package/dist/useMergeRefs-Dfmtq9cI.js.map +1 -0
- package/dist/useMergeRefs.js +1 -1
- package/dist/{useOnClickOutside-BHEWMLa9.js → useOnClickOutside-C5AZE_I6.js} +6 -62
- package/dist/useOnClickOutside-C5AZE_I6.js.map +1 -0
- package/dist/useOptionallyControlledState-DbDuos5L.js.map +1 -1
- package/dist/{usePopoverSupport-DIjjfodl.js → usePopoverSupport-CWTCDfN2.js} +2 -2
- package/dist/{usePopoverSupport-DIjjfodl.js.map → usePopoverSupport-CWTCDfN2.js.map} +1 -1
- package/dist/usePrefersColorScheme-_hT7dK7_.js.map +1 -1
- package/dist/usePrevious-Bvq-5auG.js.map +1 -1
- package/dist/useSize.js.map +1 -1
- package/dist/{useSwipe-CULmVQEk.js → useSwipe-Cp-CJxLU.js} +2 -2
- package/dist/{useSwipe-CULmVQEk.js.map → useSwipe-Cp-CJxLU.js.map} +1 -1
- package/dist/useSwipe.js +1 -1
- package/dist/useTrackingContext-DRwDL8DE.js.map +1 -1
- package/dist/useTrackingId.js.map +1 -1
- package/dist/utils-CnKBdBNm.js +50 -0
- package/dist/utils-CnKBdBNm.js.map +1 -0
- package/package.json +12 -18
- package/dist/Button.module-pUNSKoVC.js +0 -25
- package/dist/Button.module-pUNSKoVC.js.map +0 -1
- package/dist/Calendar-BQ5F2ENO.js.map +0 -1
- package/dist/Combobox-B9nesJuc.js.map +0 -1
- package/dist/DateField-DXxPsRtf.js.map +0 -1
- package/dist/DateFieldRange-Xauviu1w.js.map +0 -1
- package/dist/DateFieldSingle-yLnwpVzd.js.map +0 -1
- package/dist/DrawerContext-DboTgTmo.js.map +0 -1
- package/dist/Menu-DEVZz9xZ.js.map +0 -1
- package/dist/Page-BMDkbDcU.js.map +0 -1
- package/dist/Pagination-BJsCppgW.js.map +0 -1
- package/dist/Popover-r26xMIfm.js.map +0 -1
- package/dist/SideNav-CBAzYyML.js.map +0 -1
- package/dist/Tab-wNucMTgo.js.map +0 -1
- package/dist/TimeField-CmbErrsZ.js.map +0 -1
- package/dist/Toolbar-D4zuUFhb.js.map +0 -1
- package/dist/components/DateFieldSingle/internal/useDateFieldOrchestration.d.ts +0 -17
- package/dist/index.esm-D889iexm.js.map +0 -1
- package/dist/proxy-CreWmH-e.js.map +0 -1
- package/dist/use-reduced-motion-znCm41qB.js.map +0 -1
- package/dist/useDateFieldOrchestration-BNJCsRkS.js +0 -138
- package/dist/useDateFieldOrchestration-BNJCsRkS.js.map +0 -1
- package/dist/useDialogTransitionStates-2NaE_noq.js.map +0 -1
- package/dist/useFocusWithin-BhhgRXdZ.js.map +0 -1
- package/dist/useMergeRefs-Bde85AWI.js +0 -21
- package/dist/useMergeRefs-Bde85AWI.js.map +0 -1
- package/dist/useOnClickOutside-BHEWMLa9.js.map +0 -1
- package/dist/usePopoverCloseDelayWorkaround-BZcjPkvT.js +0 -18
- package/dist/usePopoverCloseDelayWorkaround-BZcjPkvT.js.map +0 -1
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"use-reduced-motion-znCm41qB.js","sources":["../../../node_modules/.pnpm/motion@12.4.10_@emotion+is-prop-valid@1.3.1_react-dom@18.2.0_react@18.2.0__react@18.2.0/node_modules/motion/dist/es/framer-motion/dist/es/utils/reduced-motion/use-reduced-motion.mjs"],"sourcesContent":["import { useState } from 'react';\nimport { initPrefersReducedMotion } from './index.mjs';\nimport { warnOnce } from '../warn-once.mjs';\nimport { hasReducedMotionListener, prefersReducedMotion } from './state.mjs';\n\n/**\n * A hook that returns `true` if we should be using reduced motion based on the current device's Reduced Motion setting.\n *\n * This can be used to implement changes to your UI based on Reduced Motion. For instance, replacing motion-sickness inducing\n * `x`/`y` animations with `opacity`, disabling the autoplay of background videos, or turning off parallax motion.\n *\n * It will actively respond to changes and re-render your components with the latest setting.\n *\n * ```jsx\n * export function Sidebar({ isOpen }) {\n * const shouldReduceMotion = useReducedMotion()\n * const closedX = shouldReduceMotion ? 0 : \"-100%\"\n *\n * return (\n * <motion.div animate={{\n * opacity: isOpen ? 1 : 0,\n * x: isOpen ? 0 : closedX\n * }} />\n * )\n * }\n * ```\n *\n * @return boolean\n *\n * @public\n */\nfunction useReducedMotion() {\n /**\n * Lazy initialisation of prefersReducedMotion\n */\n !hasReducedMotionListener.current && initPrefersReducedMotion();\n const [shouldReduceMotion] = useState(prefersReducedMotion.current);\n if (process.env.NODE_ENV !== \"production\") {\n warnOnce(shouldReduceMotion !== true, \"You have Reduced Motion enabled on your device. Animations may not appear as expected.\");\n }\n /**\n * TODO See if people miss automatically updating shouldReduceMotion setting\n */\n return shouldReduceMotion;\n}\n\nexport { useReducedMotion };\n"],"names":[],"mappings":";;;AAKA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS,gBAAgB,GAAG;AAC5B;AACA;AACA;AACA,IAAI,CAAC,wBAAwB,CAAC,OAAO,IAAI,wBAAwB,EAAE;AACnE,IAAI,MAAM,CAAC,kBAAkB,CAAC,GAAG,QAAQ,CAAC,oBAAoB,CAAC,OAAO,CAAC;AACvE,IAAI,IAAI,OAAO,CAAC,GAAG,CAAC,QAAQ,KAAK,YAAY,EAAE;AAC/C,QAAQ,QAAQ,CAAC,kBAAkB,KAAK,IAAI,EAAE,wFAAwF,CAAC;AACvI;AACA;AACA;AACA;AACA,IAAI,OAAO,kBAAkB;AAC7B;;;;","x_google_ignoreList":[0]}
|
|
@@ -1,138 +0,0 @@
|
|
|
1
|
-
import { D as DateTime } from './Calendar-BQ5F2ENO.js';
|
|
2
|
-
import { useRef, useState } from 'react';
|
|
3
|
-
import { a as useKeyboardFocusables } from './useOnClickOutside-BHEWMLa9.js';
|
|
4
|
-
|
|
5
|
-
const DateModeToFormatMap = {
|
|
6
|
-
"mm/dd/yyyy": "MM/dd/yyyy",
|
|
7
|
-
"dd/mm/yyyy": "dd/MM/yyyy",
|
|
8
|
-
"yyyy/mm/dd": "yyyy/MM/dd"
|
|
9
|
-
};
|
|
10
|
-
const DateModeToPlaceholderMap = {
|
|
11
|
-
"dd/mm/yyyy": "__/__/____",
|
|
12
|
-
"mm/dd/yyyy": "__/__/____",
|
|
13
|
-
"yyyy/mm/dd": "____/__/__"
|
|
14
|
-
};
|
|
15
|
-
|
|
16
|
-
function convertStringToDate(v) {
|
|
17
|
-
if (v === void 0 || v === null) {
|
|
18
|
-
return v;
|
|
19
|
-
}
|
|
20
|
-
const date = DateTime.fromISO(v, { setZone: true, zone: "utc" }).startOf(
|
|
21
|
-
"day"
|
|
22
|
-
);
|
|
23
|
-
if (date.isValid) {
|
|
24
|
-
return date;
|
|
25
|
-
}
|
|
26
|
-
return null;
|
|
27
|
-
}
|
|
28
|
-
function validateDate({
|
|
29
|
-
date,
|
|
30
|
-
constraints
|
|
31
|
-
}) {
|
|
32
|
-
const { required, unavailable, minDate, maxDate } = constraints;
|
|
33
|
-
if (!date) {
|
|
34
|
-
return required ? false : true;
|
|
35
|
-
}
|
|
36
|
-
if (unavailable?.dates?.some((d) => d.equals(date))) {
|
|
37
|
-
return false;
|
|
38
|
-
}
|
|
39
|
-
if (unavailable?.daysOfWeek?.includes(date.weekday)) {
|
|
40
|
-
return false;
|
|
41
|
-
}
|
|
42
|
-
if (minDate && date < minDate) {
|
|
43
|
-
return false;
|
|
44
|
-
}
|
|
45
|
-
if (maxDate && date > maxDate) {
|
|
46
|
-
return false;
|
|
47
|
-
}
|
|
48
|
-
return true;
|
|
49
|
-
}
|
|
50
|
-
|
|
51
|
-
const useDateFieldOrchestration = ({
|
|
52
|
-
inputRef,
|
|
53
|
-
calendarDefaultOpen,
|
|
54
|
-
popoverContentRef,
|
|
55
|
-
disableCalendar = false
|
|
56
|
-
}) => {
|
|
57
|
-
const documentRef = useRef(document.body);
|
|
58
|
-
const [calendarOpen, setCalendarOpen] = useState(calendarDefaultOpen);
|
|
59
|
-
const { focusables } = useKeyboardFocusables(documentRef, {
|
|
60
|
-
observeChange: true
|
|
61
|
-
});
|
|
62
|
-
const { focusables: popoverFocusables } = useKeyboardFocusables(
|
|
63
|
-
popoverContentRef,
|
|
64
|
-
{
|
|
65
|
-
observeChange: true
|
|
66
|
-
}
|
|
67
|
-
);
|
|
68
|
-
const pageFocusables = focusables?.filter(
|
|
69
|
-
(item) => !popoverFocusables?.includes(item)
|
|
70
|
-
);
|
|
71
|
-
const handleCalendarKeyDown = (event) => {
|
|
72
|
-
if (event.key === "Escape") {
|
|
73
|
-
inputRef.current?.focus();
|
|
74
|
-
}
|
|
75
|
-
};
|
|
76
|
-
const focusToCalendar = () => {
|
|
77
|
-
if (popoverContentRef.current) {
|
|
78
|
-
const currentFocusable = popoverContentRef.current.querySelectorAll('[tabindex = "0"]')[0];
|
|
79
|
-
if (currentFocusable) {
|
|
80
|
-
currentFocusable.focus();
|
|
81
|
-
}
|
|
82
|
-
}
|
|
83
|
-
};
|
|
84
|
-
const handleInputKeyDown = (ev) => {
|
|
85
|
-
if (disableCalendar) {
|
|
86
|
-
return;
|
|
87
|
-
}
|
|
88
|
-
let currentFocusIndex = 0;
|
|
89
|
-
switch (ev.key) {
|
|
90
|
-
case "Escape":
|
|
91
|
-
setCalendarOpen(false);
|
|
92
|
-
break;
|
|
93
|
-
case "Tab":
|
|
94
|
-
if (!calendarOpen || !pageFocusables?.length) {
|
|
95
|
-
break;
|
|
96
|
-
}
|
|
97
|
-
ev.preventDefault();
|
|
98
|
-
currentFocusIndex = pageFocusables.indexOf(inputRef.current) || 0;
|
|
99
|
-
setCalendarOpen(false);
|
|
100
|
-
if (ev.shiftKey) {
|
|
101
|
-
if (currentFocusIndex === 0) {
|
|
102
|
-
requestAnimationFrame(
|
|
103
|
-
() => pageFocusables[pageFocusables.length - 1].focus()
|
|
104
|
-
);
|
|
105
|
-
} else {
|
|
106
|
-
requestAnimationFrame(
|
|
107
|
-
() => pageFocusables[currentFocusIndex - 1].focus()
|
|
108
|
-
);
|
|
109
|
-
}
|
|
110
|
-
break;
|
|
111
|
-
}
|
|
112
|
-
if (pageFocusables.length > currentFocusIndex + 1) {
|
|
113
|
-
requestAnimationFrame(
|
|
114
|
-
() => pageFocusables[currentFocusIndex + 1].focus()
|
|
115
|
-
);
|
|
116
|
-
} else {
|
|
117
|
-
requestAnimationFrame(() => pageFocusables[0].focus());
|
|
118
|
-
}
|
|
119
|
-
break;
|
|
120
|
-
case "ArrowDown":
|
|
121
|
-
if (!calendarOpen) {
|
|
122
|
-
setCalendarOpen(true);
|
|
123
|
-
setTimeout(focusToCalendar, 200);
|
|
124
|
-
} else {
|
|
125
|
-
focusToCalendar();
|
|
126
|
-
}
|
|
127
|
-
}
|
|
128
|
-
};
|
|
129
|
-
return {
|
|
130
|
-
calendarOpen,
|
|
131
|
-
setCalendarOpen,
|
|
132
|
-
handleCalendarKeyDown,
|
|
133
|
-
handleInputKeyDown
|
|
134
|
-
};
|
|
135
|
-
};
|
|
136
|
-
|
|
137
|
-
export { DateModeToPlaceholderMap as D, DateModeToFormatMap as a, convertStringToDate as c, useDateFieldOrchestration as u, validateDate as v };
|
|
138
|
-
//# sourceMappingURL=useDateFieldOrchestration-BNJCsRkS.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"useDateFieldOrchestration-BNJCsRkS.js","sources":["../src/components/DateFieldSingle/internal/constants.ts","../src/components/DateFieldSingle/internal/utils.ts","../src/components/DateFieldSingle/internal/useDateFieldOrchestration.ts"],"sourcesContent":["import { DateMode } from \"../types\";\n\nexport const DateModeToFormatMap: Record<DateMode, string> = {\n \"mm/dd/yyyy\": \"MM/dd/yyyy\",\n \"dd/mm/yyyy\": \"dd/MM/yyyy\",\n \"yyyy/mm/dd\": \"yyyy/MM/dd\",\n};\n\nexport const DateModeToPlaceholderMap: Record<DateMode, string> = {\n \"dd/mm/yyyy\": \"__/__/____\",\n \"mm/dd/yyyy\": \"__/__/____\",\n \"yyyy/mm/dd\": \"____/__/__\",\n};\n","import { DateTime } from \"luxon\";\n\nexport function convertStringToDate(\n v: string | null | undefined,\n): DateTime | null | undefined {\n if (v === undefined || v === null) {\n return v;\n }\n const date = DateTime.fromISO(v, { setZone: true, zone: \"utc\" }).startOf(\n \"day\",\n );\n if (date.isValid) {\n return date;\n }\n return null;\n}\nexport function validateDate({\n date,\n constraints,\n}: {\n date: DateTime | null;\n constraints: {\n required?: boolean;\n unavailable?: {\n dates?: DateTime[];\n daysOfWeek?: number[];\n };\n minDate?: DateTime;\n maxDate?: DateTime;\n };\n}) {\n const { required, unavailable, minDate, maxDate } = constraints;\n if (!date) {\n return required ? false : true;\n }\n if (unavailable?.dates?.some((d) => d.equals(date))) {\n return false;\n }\n if (unavailable?.daysOfWeek?.includes(date.weekday)) {\n return false;\n }\n if (minDate && date < minDate) {\n return false;\n }\n if (maxDate && date > maxDate) {\n return false;\n }\n return true;\n}\n","import { KeyboardEventHandler, RefObject, useRef, useState } from \"react\";\nimport { useKeyboardFocusables } from \"../../../internal/hooks\";\n\n/**\n * Responsible for orchestrating the input and calendar popover states\n * @param inputRef - The ref to the input element\n * @returns calendarOpen, setCalendarOpen, handleCalendarKeyDown, handleInputKeyDown\n */\nexport const useDateFieldOrchestration = ({\n inputRef,\n calendarDefaultOpen,\n popoverContentRef,\n disableCalendar = false,\n}: {\n inputRef: RefObject<HTMLInputElement>;\n calendarDefaultOpen: boolean;\n popoverContentRef: RefObject<HTMLDivElement>;\n disableCalendar?: boolean;\n}) => {\n const documentRef = useRef<HTMLElement>(document.body);\n const [calendarOpen, setCalendarOpen] = useState(calendarDefaultOpen);\n\n const { focusables } = useKeyboardFocusables(documentRef, {\n observeChange: true,\n });\n\n const { focusables: popoverFocusables } = useKeyboardFocusables(\n popoverContentRef,\n {\n observeChange: true,\n },\n );\n\n const pageFocusables = focusables?.filter(\n (item) => !popoverFocusables?.includes(item),\n );\n\n const handleCalendarKeyDown = (\n event: React.KeyboardEvent<HTMLDivElement>,\n ) => {\n if (event.key === \"Escape\") {\n inputRef.current?.focus();\n }\n };\n\n const focusToCalendar = () => {\n if (popoverContentRef.current) {\n const currentFocusable =\n popoverContentRef.current.querySelectorAll('[tabindex = \"0\"]')[0];\n if (currentFocusable) {\n (currentFocusable as HTMLButtonElement).focus();\n }\n }\n };\n\n const handleInputKeyDown: KeyboardEventHandler<HTMLInputElement> = (ev) => {\n if (disableCalendar) {\n return;\n }\n let currentFocusIndex = 0;\n switch (ev.key) {\n case \"Escape\":\n setCalendarOpen(false);\n break;\n case \"Tab\":\n if (!calendarOpen || !pageFocusables?.length) {\n break;\n }\n ev.preventDefault();\n currentFocusIndex = pageFocusables.indexOf(inputRef.current!) || 0;\n setCalendarOpen(false);\n if (ev.shiftKey) {\n if (currentFocusIndex === 0) {\n requestAnimationFrame(() =>\n pageFocusables[pageFocusables.length - 1].focus(),\n );\n } else {\n requestAnimationFrame(() =>\n pageFocusables[currentFocusIndex - 1].focus(),\n );\n }\n break;\n }\n if (pageFocusables.length > currentFocusIndex + 1) {\n requestAnimationFrame(() =>\n pageFocusables[currentFocusIndex + 1].focus(),\n );\n } else {\n requestAnimationFrame(() => pageFocusables[0].focus());\n }\n break;\n case \"ArrowDown\":\n if (!calendarOpen) {\n setCalendarOpen(true);\n setTimeout(focusToCalendar, 200);\n } else {\n focusToCalendar();\n }\n }\n };\n\n return {\n calendarOpen,\n setCalendarOpen,\n handleCalendarKeyDown,\n handleInputKeyDown,\n };\n};\n"],"names":[],"mappings":";;;;AAEO,MAAM,mBAAgD,GAAA;AAAA,EAC3D,YAAc,EAAA,YAAA;AAAA,EACd,YAAc,EAAA,YAAA;AAAA,EACd,YAAc,EAAA;AAChB;AAEO,MAAM,wBAAqD,GAAA;AAAA,EAChE,YAAc,EAAA,YAAA;AAAA,EACd,YAAc,EAAA,YAAA;AAAA,EACd,YAAc,EAAA;AAChB;;ACVO,SAAS,oBACd,CAC6B,EAAA;AAC7B,EAAI,IAAA,CAAA,KAAM,MAAa,IAAA,CAAA,KAAM,IAAM,EAAA;AACjC,IAAO,OAAA,CAAA;AAAA;AAET,EAAM,MAAA,IAAA,GAAO,QAAS,CAAA,OAAA,CAAQ,CAAG,EAAA,EAAE,SAAS,IAAM,EAAA,IAAA,EAAM,KAAM,EAAC,CAAE,CAAA,OAAA;AAAA,IAC/D;AAAA,GACF;AACA,EAAA,IAAI,KAAK,OAAS,EAAA;AAChB,IAAO,OAAA,IAAA;AAAA;AAET,EAAO,OAAA,IAAA;AACT;AACO,SAAS,YAAa,CAAA;AAAA,EAC3B,IAAA;AAAA,EACA;AACF,CAWG,EAAA;AACD,EAAA,MAAM,EAAE,QAAA,EAAU,WAAa,EAAA,OAAA,EAAS,SAAY,GAAA,WAAA;AACpD,EAAA,IAAI,CAAC,IAAM,EAAA;AACT,IAAA,OAAO,WAAW,KAAQ,GAAA,IAAA;AAAA;AAE5B,EAAI,IAAA,WAAA,EAAa,OAAO,IAAK,CAAA,CAAC,MAAM,CAAE,CAAA,MAAA,CAAO,IAAI,CAAC,CAAG,EAAA;AACnD,IAAO,OAAA,KAAA;AAAA;AAET,EAAA,IAAI,WAAa,EAAA,UAAA,EAAY,QAAS,CAAA,IAAA,CAAK,OAAO,CAAG,EAAA;AACnD,IAAO,OAAA,KAAA;AAAA;AAET,EAAI,IAAA,OAAA,IAAW,OAAO,OAAS,EAAA;AAC7B,IAAO,OAAA,KAAA;AAAA;AAET,EAAI,IAAA,OAAA,IAAW,OAAO,OAAS,EAAA;AAC7B,IAAO,OAAA,KAAA;AAAA;AAET,EAAO,OAAA,IAAA;AACT;;ACxCO,MAAM,4BAA4B,CAAC;AAAA,EACxC,QAAA;AAAA,EACA,mBAAA;AAAA,EACA,iBAAA;AAAA,EACA,eAAkB,GAAA;AACpB,CAKM,KAAA;AACJ,EAAM,MAAA,WAAA,GAAc,MAAoB,CAAA,QAAA,CAAS,IAAI,CAAA;AACrD,EAAA,MAAM,CAAC,YAAA,EAAc,eAAe,CAAA,GAAI,SAAS,mBAAmB,CAAA;AAEpE,EAAA,MAAM,EAAE,UAAA,EAAe,GAAA,qBAAA,CAAsB,WAAa,EAAA;AAAA,IACxD,aAAe,EAAA;AAAA,GAChB,CAAA;AAED,EAAM,MAAA,EAAE,UAAY,EAAA,iBAAA,EAAsB,GAAA,qBAAA;AAAA,IACxC,iBAAA;AAAA,IACA;AAAA,MACE,aAAe,EAAA;AAAA;AACjB,GACF;AAEA,EAAA,MAAM,iBAAiB,UAAY,EAAA,MAAA;AAAA,IACjC,CAAC,IAAA,KAAS,CAAC,iBAAA,EAAmB,SAAS,IAAI;AAAA,GAC7C;AAEA,EAAM,MAAA,qBAAA,GAAwB,CAC5B,KACG,KAAA;AACH,IAAI,IAAA,KAAA,CAAM,QAAQ,QAAU,EAAA;AAC1B,MAAA,QAAA,CAAS,SAAS,KAAM,EAAA;AAAA;AAC1B,GACF;AAEA,EAAA,MAAM,kBAAkB,MAAM;AAC5B,IAAA,IAAI,kBAAkB,OAAS,EAAA;AAC7B,MAAA,MAAM,mBACJ,iBAAkB,CAAA,OAAA,CAAQ,gBAAiB,CAAA,kBAAkB,EAAE,CAAC,CAAA;AAClE,MAAA,IAAI,gBAAkB,EAAA;AACpB,QAAC,iBAAuC,KAAM,EAAA;AAAA;AAChD;AACF,GACF;AAEA,EAAM,MAAA,kBAAA,GAA6D,CAAC,EAAO,KAAA;AACzE,IAAA,IAAI,eAAiB,EAAA;AACnB,MAAA;AAAA;AAEF,IAAA,IAAI,iBAAoB,GAAA,CAAA;AACxB,IAAA,QAAQ,GAAG,GAAK;AAAA,MACd,KAAK,QAAA;AACH,QAAA,eAAA,CAAgB,KAAK,CAAA;AACrB,QAAA;AAAA,MACF,KAAK,KAAA;AACH,QAAA,IAAI,CAAC,YAAA,IAAgB,CAAC,cAAA,EAAgB,MAAQ,EAAA;AAC5C,UAAA;AAAA;AAEF,QAAA,EAAA,CAAG,cAAe,EAAA;AAClB,QAAA,iBAAA,GAAoB,cAAe,CAAA,OAAA,CAAQ,QAAS,CAAA,OAAQ,CAAK,IAAA,CAAA;AACjE,QAAA,eAAA,CAAgB,KAAK,CAAA;AACrB,QAAA,IAAI,GAAG,QAAU,EAAA;AACf,UAAA,IAAI,sBAAsB,CAAG,EAAA;AAC3B,YAAA,qBAAA;AAAA,cAAsB,MACpB,cAAe,CAAA,cAAA,CAAe,MAAS,GAAA,CAAC,EAAE,KAAM;AAAA,aAClD;AAAA,WACK,MAAA;AACL,YAAA,qBAAA;AAAA,cAAsB,MACpB,cAAA,CAAe,iBAAoB,GAAA,CAAC,EAAE,KAAM;AAAA,aAC9C;AAAA;AAEF,UAAA;AAAA;AAEF,QAAI,IAAA,cAAA,CAAe,MAAS,GAAA,iBAAA,GAAoB,CAAG,EAAA;AACjD,UAAA,qBAAA;AAAA,YAAsB,MACpB,cAAA,CAAe,iBAAoB,GAAA,CAAC,EAAE,KAAM;AAAA,WAC9C;AAAA,SACK,MAAA;AACL,UAAA,qBAAA,CAAsB,MAAM,cAAA,CAAe,CAAC,CAAA,CAAE,OAAO,CAAA;AAAA;AAEvD,QAAA;AAAA,MACF,KAAK,WAAA;AACH,QAAA,IAAI,CAAC,YAAc,EAAA;AACjB,UAAA,eAAA,CAAgB,IAAI,CAAA;AACpB,UAAA,UAAA,CAAW,iBAAiB,GAAG,CAAA;AAAA,SAC1B,MAAA;AACL,UAAgB,eAAA,EAAA;AAAA;AAClB;AACJ,GACF;AAEA,EAAO,OAAA;AAAA,IACL,YAAA;AAAA,IACA,eAAA;AAAA,IACA,qBAAA;AAAA,IACA;AAAA,GACF;AACF;;;;"}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"useDialogTransitionStates-2NaE_noq.js","sources":["../src/internal/hooks/useDialogScrollLock/useDialogScrollLock.ts","../src/internal/hooks/useDialogTransitionStates/useDialogTransitionStates.ts"],"sourcesContent":["import { useEffect } from \"react\";\n\nconst ATTRIBUTE_NAME_LIST = \"data-anv-dialogs\";\nconst ATTRIBUTE_NAME_BOOL = \"data-anv-dialogs-open\";\n\n/**\n * Props for the useDialogScrollLock hook\n * @property {boolean} open - Whether the dialog is open\n * @property {string} id - Unique identifier for the dialog\n * @property {boolean} [enableScrollChaining] - Whether to enable scroll chaining\n * @property {React.RefObject<HTMLElement>} elementRef - Reference to the dialog element\n */\nexport interface UseDialogScrollLockProps {\n /**\n * Whether the dialog is open\n */\n open: boolean;\n /**\n * Unique identifier for the dialog\n */\n id: string;\n /**\n * Whether to enable scroll chaining\n */\n enableScrollChaining?: boolean;\n /**\n * Reference to the dialog element\n */\n elementRef: React.RefObject<HTMLElement>;\n}\n\n/**\n * Custom hook for managing dialog scroll lock in shadow DOM environments.\n *\n * Features:\n * - Manages scroll lock state for dialogs in shadow DOM\n * - Tracks multiple open dialogs with unique IDs\n * - Prevents scroll chaining when dialogs are open\n * - Automatically cleans up scroll lock on unmount\n * - Supports enabling/disabling scroll chaining\n * - Uses data attributes to track dialog state\n *\n * @param props - Configuration object containing dialog state and element reference\n * @returns void\n */\nexport const useDialogScrollLock = ({\n open,\n id,\n enableScrollChaining,\n elementRef,\n}: UseDialogScrollLockProps) => {\n useEffect(() => {\n if (enableScrollChaining) return () => {};\n const root = elementRef.current?.getRootNode();\n if (!(root instanceof ShadowRoot)) return () => {};\n\n const updateDialogAttributes = (shouldAdd: boolean) => {\n const currentDialogs =\n root.host\n .getAttribute(ATTRIBUTE_NAME_LIST)\n ?.split(\" \")\n .filter(Boolean) ?? [];\n\n const newDialogs = new Set(currentDialogs);\n if (shouldAdd) {\n newDialogs.add(id);\n } else {\n newDialogs.delete(id);\n }\n\n const dialogList = Array.from(newDialogs);\n root.host.setAttribute(ATTRIBUTE_NAME_LIST, dialogList.join(\" \"));\n\n if (dialogList.length > 0) {\n root.host.setAttribute(ATTRIBUTE_NAME_BOOL, \"true\");\n } else {\n root.host.removeAttribute(ATTRIBUTE_NAME_BOOL);\n }\n };\n\n updateDialogAttributes(open);\n\n return () => {\n updateDialogAttributes(false);\n };\n }, [open, id, enableScrollChaining, elementRef]);\n};\n","import { RefObject } from \"react\";\nimport {\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 dialog transition states and animations.\n *\n * Features:\n * - Manages dialog open/close transition states\n * - Handles animation timing based on CSS animation duration\n * - Provides callbacks for animation lifecycle events\n * - Supports controlled dialog state management\n * - Automatically handles showModal() and close() calls\n * - Provides utility flags for open/closed states\n *\n * @param ref - The ref to the dialog element\n * @param openProp - The open prop controlling dialog visibility\n * @param options - Additional, optional options including callbacks for animation start, complete, and initialization\n * @returns Object containing dialog state, control functions, and utility flags\n */\n\n/**\n * Effects configuration for dialog transition states\n * @param openProp - The open prop controlling dialog visibility\n * @param options - The effects configuration\n * @returns The dialog transition state\n */\nexport const useDialogTransitionStates = (\n ref: RefObject<HTMLDialogElement>,\n openProp: boolean | undefined,\n options: OpenCloseTransitionStateEffects = {},\n) => {\n const { onOpenAnimationStart, onCloseAnimationComplete } = options;\n return useOpenCloseTransitionStates(openProp, {\n ...options,\n onOpenAnimationStart: () => {\n if (!ref.current) return;\n ref.current.showModal();\n onOpenAnimationStart?.();\n },\n onCloseAnimationComplete: () => {\n if (!ref.current) return;\n ref.current.close();\n onCloseAnimationComplete?.();\n },\n durationMs: () => {\n if (!ref.current) return 0;\n const duration = window.getComputedStyle(ref.current).animationDuration;\n return parseFloat(duration) * 1000;\n },\n });\n};\n"],"names":[],"mappings":";;;AAEA,MAAM,mBAAsB,GAAA,kBAAA;AAC5B,MAAM,mBAAsB,GAAA,uBAAA;AA0CrB,MAAM,sBAAsB,CAAC;AAAA,EAClC,IAAA;AAAA,EACA,EAAA;AAAA,EACA,oBAAA;AAAA,EACA;AACF,CAAgC,KAAA;AAC9B,EAAA,SAAA,CAAU,MAAM;AACd,IAAI,IAAA,oBAAA,SAA6B,MAAM;AAAA,KAAC;AACxC,IAAM,MAAA,IAAA,GAAO,UAAW,CAAA,OAAA,EAAS,WAAY,EAAA;AAC7C,IAAA,IAAI,EAAE,IAAA,YAAgB,UAAa,CAAA,EAAA,OAAO,MAAM;AAAA,KAAC;AAEjD,IAAM,MAAA,sBAAA,GAAyB,CAAC,SAAuB,KAAA;AACrD,MAAA,MAAM,cACJ,GAAA,IAAA,CAAK,IACF,CAAA,YAAA,CAAa,mBAAmB,CAAA,EAC/B,KAAM,CAAA,GAAG,CACV,CAAA,MAAA,CAAO,OAAO,CAAA,IAAK,EAAC;AAEzB,MAAM,MAAA,UAAA,GAAa,IAAI,GAAA,CAAI,cAAc,CAAA;AACzC,MAAA,IAAI,SAAW,EAAA;AACb,QAAA,UAAA,CAAW,IAAI,EAAE,CAAA;AAAA,OACZ,MAAA;AACL,QAAA,UAAA,CAAW,OAAO,EAAE,CAAA;AAAA;AAGtB,MAAM,MAAA,UAAA,GAAa,KAAM,CAAA,IAAA,CAAK,UAAU,CAAA;AACxC,MAAA,IAAA,CAAK,KAAK,YAAa,CAAA,mBAAA,EAAqB,UAAW,CAAA,IAAA,CAAK,GAAG,CAAC,CAAA;AAEhE,MAAI,IAAA,UAAA,CAAW,SAAS,CAAG,EAAA;AACzB,QAAK,IAAA,CAAA,IAAA,CAAK,YAAa,CAAA,mBAAA,EAAqB,MAAM,CAAA;AAAA,OAC7C,MAAA;AACL,QAAK,IAAA,CAAA,IAAA,CAAK,gBAAgB,mBAAmB,CAAA;AAAA;AAC/C,KACF;AAEA,IAAA,sBAAA,CAAuB,IAAI,CAAA;AAE3B,IAAA,OAAO,MAAM;AACX,MAAA,sBAAA,CAAuB,KAAK,CAAA;AAAA,KAC9B;AAAA,KACC,CAAC,IAAA,EAAM,EAAI,EAAA,oBAAA,EAAsB,UAAU,CAAC,CAAA;AACjD;;ACjDO,MAAM,4BAA4B,CACvC,GAAA,EACA,QACA,EAAA,OAAA,GAA2C,EACxC,KAAA;AACH,EAAM,MAAA,EAAE,oBAAsB,EAAA,wBAAA,EAA6B,GAAA,OAAA;AAC3D,EAAA,OAAO,6BAA6B,QAAU,EAAA;AAAA,IAC5C,GAAG,OAAA;AAAA,IACH,sBAAsB,MAAM;AAC1B,MAAI,IAAA,CAAC,IAAI,OAAS,EAAA;AAClB,MAAA,GAAA,CAAI,QAAQ,SAAU,EAAA;AACtB,MAAuB,oBAAA,IAAA;AAAA,KACzB;AAAA,IACA,0BAA0B,MAAM;AAC9B,MAAI,IAAA,CAAC,IAAI,OAAS,EAAA;AAClB,MAAA,GAAA,CAAI,QAAQ,KAAM,EAAA;AAClB,MAA2B,wBAAA,IAAA;AAAA,KAC7B;AAAA,IACA,YAAY,MAAM;AAChB,MAAI,IAAA,CAAC,GAAI,CAAA,OAAA,EAAgB,OAAA,CAAA;AACzB,MAAA,MAAM,QAAW,GAAA,MAAA,CAAO,gBAAiB,CAAA,GAAA,CAAI,OAAO,CAAE,CAAA,iBAAA;AACtD,MAAO,OAAA,UAAA,CAAW,QAAQ,CAAI,GAAA,GAAA;AAAA;AAChC,GACD,CAAA;AACH;;;;"}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"useFocusWithin-BhhgRXdZ.js","sources":["../src/internal/hooks/useFocusWithin/useFocusWithin.ts"],"sourcesContent":["import { FocusEventHandler, useRef } from \"react\";\nexport interface UseFocusWithinOptions {\n onFocus?: (event: React.FocusEvent) => void;\n onBlur?: (event: React.FocusEvent) => void;\n}\n\nexport interface UseFocusWithinReturnValue<\n T extends HTMLElement = HTMLElement,\n> {\n props: {\n onFocus: FocusEventHandler<T>;\n onBlur: FocusEventHandler<T>;\n };\n}\n\n/**\n * Custom hook for tracking focus state within a DOM element.\n *\n * @param options Configuration options for the hook\n * @param options.onFocus Optional callback when focus enters the element\n * @param options.onBlur Optional callback when focus leaves the element\n * @returns Object containing props for the element\n *\n * @example\n * const { props } = useFocusWithin({\n * onFocus: () => console.log('Focus entered'),\n * onBlur: () => console.log('Focus left')\n * });\n *\n * return <div {...props}>Content</div>;\n */\nexport function useFocusWithin<T extends HTMLElement = any>({\n onBlur,\n onFocus,\n}: UseFocusWithinOptions = {}): UseFocusWithinReturnValue<T> {\n const isFocusedRef = useRef(false);\n\n const handleFocus: FocusEventHandler<T> = (event) => {\n if (!isFocusedRef.current) {\n isFocusedRef.current = true;\n onFocus?.(event);\n }\n };\n\n const handleBlur: FocusEventHandler<T> = (event) => {\n if (isFocusedRef.current && !containsRelatedTarget(event)) {\n isFocusedRef.current = false;\n onBlur?.(event);\n }\n };\n\n return {\n props: { onFocus: handleFocus, onBlur: handleBlur },\n };\n}\n\nfunction containsRelatedTarget(event: React.FocusEvent) {\n if (\n event.currentTarget instanceof HTMLElement &&\n event.relatedTarget instanceof HTMLElement\n ) {\n return event.currentTarget.contains(event.relatedTarget);\n }\n\n return false;\n}\n"],"names":[],"mappings":";;AA+BO,SAAS,cAA4C,CAAA;AAAA,EAC1D,MAAA;AAAA,EACA;AACF,CAAA,GAA2B,EAAkC,EAAA;AAC3D,EAAM,MAAA,YAAA,GAAe,OAAO,KAAK,CAAA;AAEjC,EAAM,MAAA,WAAA,GAAoC,CAAC,KAAU,KAAA;AACnD,IAAI,IAAA,CAAC,aAAa,OAAS,EAAA;AACzB,MAAA,YAAA,CAAa,OAAU,GAAA,IAAA;AACvB,MAAA,OAAA,GAAU,KAAK,CAAA;AAAA;AACjB,GACF;AAEA,EAAM,MAAA,UAAA,GAAmC,CAAC,KAAU,KAAA;AAClD,IAAA,IAAI,YAAa,CAAA,OAAA,IAAW,CAAC,qBAAA,CAAsB,KAAK,CAAG,EAAA;AACzD,MAAA,YAAA,CAAa,OAAU,GAAA,KAAA;AACvB,MAAA,MAAA,GAAS,KAAK,CAAA;AAAA;AAChB,GACF;AAEA,EAAO,OAAA;AAAA,IACL,KAAO,EAAA,EAAE,OAAS,EAAA,WAAA,EAAa,QAAQ,UAAW;AAAA,GACpD;AACF;AAEA,SAAS,sBAAsB,KAAyB,EAAA;AACtD,EAAA,IACE,KAAM,CAAA,aAAA,YAAyB,WAC/B,IAAA,KAAA,CAAM,yBAAyB,WAC/B,EAAA;AACA,IAAA,OAAO,KAAM,CAAA,aAAA,CAAc,QAAS,CAAA,KAAA,CAAM,aAAa,CAAA;AAAA;AAGzD,EAAO,OAAA,KAAA;AACT;;;;"}
|
|
@@ -1,21 +0,0 @@
|
|
|
1
|
-
import { useMemo } from 'react';
|
|
2
|
-
|
|
3
|
-
function useMergeRefs(refs) {
|
|
4
|
-
return useMemo(() => {
|
|
5
|
-
if (refs.every((ref) => ref == null)) {
|
|
6
|
-
return null;
|
|
7
|
-
}
|
|
8
|
-
return (value) => {
|
|
9
|
-
refs.forEach((ref) => {
|
|
10
|
-
if (typeof ref === "function") {
|
|
11
|
-
ref(value);
|
|
12
|
-
} else if (ref != null) {
|
|
13
|
-
ref.current = value;
|
|
14
|
-
}
|
|
15
|
-
});
|
|
16
|
-
};
|
|
17
|
-
}, refs);
|
|
18
|
-
}
|
|
19
|
-
|
|
20
|
-
export { useMergeRefs as u };
|
|
21
|
-
//# sourceMappingURL=useMergeRefs-Bde85AWI.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"useMergeRefs-Bde85AWI.js","sources":["../src/hooks/useMergeRefs/useMergeRefs.ts"],"sourcesContent":["import {\n useMemo,\n type Ref,\n type RefCallback,\n type MutableRefObject,\n} from \"react\";\n\n/**\n * Custom hook for merging multiple React refs into a single callback ref.\n * @see https://floating-ui.com/docs/react-utils#usemergerefs\n *\n * Features:\n * - Merges an array of refs into a single callback ref\n * - Handles both function refs and object refs\n * - Optimized with useMemo for performance\n * - Returns null when all refs are null/undefined\n * - Supports generic types for type safety\n * - Automatically handles ref assignment and cleanup\n *\n * @param refs - Array of React refs to merge\n * @returns Single callback ref that handles all provided refs, or null if all refs are null\n */\nexport function useMergeRefs<Instance>(\n refs: Array<Ref<Instance> | undefined>,\n): RefCallback<Instance> | null {\n return useMemo(() => {\n if (refs.every((ref) => ref == null)) {\n return null;\n }\n\n return (value) => {\n refs.forEach((ref) => {\n if (typeof ref === \"function\") {\n ref(value);\n } else if (ref != null) {\n (ref as MutableRefObject<Instance | null>).current = value;\n }\n });\n };\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, refs);\n}\n"],"names":[],"mappings":";;AAsBO,SAAS,aACd,IAC8B,EAAA;AAC9B,EAAA,OAAO,QAAQ,MAAM;AACnB,IAAA,IAAI,KAAK,KAAM,CAAA,CAAC,GAAQ,KAAA,GAAA,IAAO,IAAI,CAAG,EAAA;AACpC,MAAO,OAAA,IAAA;AAAA;AAGT,IAAA,OAAO,CAAC,KAAU,KAAA;AAChB,MAAK,IAAA,CAAA,OAAA,CAAQ,CAAC,GAAQ,KAAA;AACpB,QAAI,IAAA,OAAO,QAAQ,UAAY,EAAA;AAC7B,UAAA,GAAA,CAAI,KAAK,CAAA;AAAA,SACX,MAAA,IAAW,OAAO,IAAM,EAAA;AACtB,UAAC,IAA0C,OAAU,GAAA,KAAA;AAAA;AACvD,OACD,CAAA;AAAA,KACH;AAAA,KAEC,IAAI,CAAA;AACT;;;;"}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"useOnClickOutside-BHEWMLa9.js","sources":["../src/internal/hooks/useOpenCloseTransitionStates/useOpenCloseTransitionStates.ts","../src/internal/hooks/useKeyboardFocusables/useKeyboardFocusables.ts","../src/internal/hooks/useOnClickOutside/useOnClickOutside.ts"],"sourcesContent":["import { useEffect, useState, useRef, useCallback } from \"react\";\n\n/**\n * Possible states for open/close transitions\n */\nexport type OpenCloseTransitionStates =\n | \"opening\"\n | \"open\"\n | \"closing\"\n | \"closed\";\n\n/**\n * Effects configuration for open/close 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 * @property {number | (() => number)} [durationMs] - Duration of the animation in milliseconds (or a function that returns the duration)\n */\nexport type OpenCloseTransitionStateEffects = {\n /**\n * Callback when opening animation starts\n */\n onOpenAnimationStart?: () => void;\n /**\n * Callback when closing animation starts\n */\n onCloseAnimationStart?: () => void;\n /**\n * Callback when opening animation completes\n */\n onOpenAnimationComplete?: () => void;\n /**\n * Callback when closing animation completes\n */\n onCloseAnimationComplete?: () => void;\n};\n\nexport type OpenCloseTransitionState = {\n state: OpenCloseTransitionStates;\n beginClosing: () => void;\n isOpenOrOpening: boolean;\n isClosedOrClosing: boolean;\n};\n\nexport type OpenCloseTransitionStateOptions = {\n durationMs: number | (() => number);\n onOpenAnimationStart?: () => void;\n onCloseAnimationStart?: () => void;\n onOpenAnimationComplete?: () => void;\n onCloseAnimationComplete?: () => void;\n};\n\n/**\n * Custom hook for managing open/close transition states and animations.\n *\n * @param openProp - The open prop controlling visibility\n * @param options - Additional, optional options including callbacks for animation start, complete, and initialization\n * @returns Object containing state, control functions, and utility flags\n */\nexport const useOpenCloseTransitionStates = (\n openProp: boolean | undefined,\n options: OpenCloseTransitionStateOptions = {\n durationMs: 0,\n },\n): OpenCloseTransitionState => {\n const {\n onOpenAnimationStart,\n onCloseAnimationStart,\n onOpenAnimationComplete,\n onCloseAnimationComplete,\n durationMs,\n } = options;\n const prevOpenProp = useRef<boolean | undefined>(openProp);\n const [state, setState] = useState<OpenCloseTransitionStates>(\n openProp ? \"open\" : \"closed\",\n );\n\n // Handle open/close prop changes\n useEffect(() => {\n if (prevOpenProp.current && !openProp) {\n // previously open, now closed\n setState(\"closing\");\n } else if (!prevOpenProp.current && openProp) {\n // previously closed, now open\n setState(\"opening\");\n } else {\n // Note: Using \"opening\" here catches the case where the element is initially open, allowing callbacks and animations to run.\n setState(openProp ? \"opening\" : \"closed\");\n }\n prevOpenProp.current = openProp;\n }, [openProp]);\n\n // Handle opening/closing animations\n useEffect(() => {\n if (!durationMs) return;\n if (state === \"open\" || state === \"closed\") return;\n if (state === \"opening\") {\n onOpenAnimationStart?.();\n } else if (state === \"closing\") {\n onCloseAnimationStart?.();\n }\n const d: number =\n typeof durationMs === \"function\" ? durationMs() : durationMs;\n const timeout = setTimeout(() => {\n if (state === \"opening\") {\n setState(\"open\");\n onOpenAnimationComplete?.();\n } else if (state === \"closing\") {\n setState(\"closed\");\n onCloseAnimationComplete?.();\n }\n }, d);\n\n return () => {\n clearTimeout(timeout);\n };\n }, [\n state,\n onOpenAnimationComplete,\n onCloseAnimationComplete,\n onOpenAnimationStart,\n onCloseAnimationStart,\n durationMs,\n ]);\n\n const beginClosing = useCallback(() => {\n setState(\"closing\");\n }, []);\n\n return {\n state,\n beginClosing,\n isOpenOrOpening: state === \"open\" || state === \"opening\",\n isClosedOrClosing: state === \"closed\" || state === \"closing\",\n };\n};\n","import { RefObject, useEffect, useRef, useState } from \"react\";\nimport { FocusableElement, tabbable } from \"tabbable\";\n\n/**\n * Options for the useKeyboardFocusables hook\n */\ntype OptionProps =\n | {\n /**\n * Disable mutation observer\n */\n observeChange: false;\n }\n | {\n /**\n * Enable mutation observer with optional configuration\n */\n observeChange: true;\n /**\n * Observe attribute changes\n */\n attributes?: boolean;\n /**\n * Observe text content changes\n */\n characterData?: boolean;\n /**\n * Observe child element changes\n */\n childList?: boolean;\n /**\n * Observe descendant changes\n */\n subtree?: boolean;\n };\n\n/**\n * Custom hook for tracking keyboard focusable elements within a container.\n *\n * Features:\n * - Tracks all keyboard focusable elements within a target container\n * - Supports both ref objects and direct element references\n * - Optional mutation observer for real-time updates\n * - Debounced updates to prevent excessive re-renders\n * - Configurable mutation observer options\n * - Manual update function for immediate refresh\n * - Uses tabbable library for accurate focusable detection\n * - Automatically cleans up mutation observer\n *\n * @param element - Target element or ref to monitor for focusable elements\n * @param options - Configuration options for mutation observer behavior\n * @returns Object containing current focusable elements and update function\n */\nexport const useKeyboardFocusables = (\n element: RefObject<HTMLElement> | HTMLElement | undefined,\n options: OptionProps = {\n observeChange: true,\n attributes: true,\n characterData: true,\n childList: true,\n subtree: true,\n },\n) => {\n const [focusables, setFocusables] = useState<FocusableElement[] | null>(null);\n const observerRef = useRef<MutationObserver>();\n\n useEffect(() => {\n const target = element instanceof HTMLElement ? element : element?.current;\n if (!target) return;\n\n if (observerRef.current) return;\n if (!options.observeChange && !focusables) {\n setFocusables(tabbable(target as Element));\n return;\n }\n\n let timeoutId: NodeJS.Timeout | null = null;\n const debounceDelay = 100;\n const mutationCallback = () => {\n const targetArr = tabbable(target as Element);\n if (targetArr.length === 0) return;\n if (timeoutId) {\n clearTimeout(timeoutId);\n }\n\n // Set a new timeout\n timeoutId = setTimeout(() => {\n // This code will execute after the debounceDelay if no new mutations occur\n setFocusables(targetArr);\n }, debounceDelay);\n };\n\n const observer = new MutationObserver(mutationCallback);\n observerRef.current = observer;\n observer.observe(target, {\n childList: true, // Observe changes to child elements\n subtree: true, // Observe changes to descendants of the target\n attributes: true, // Observe changes to attributes\n characterData: true, // Observe changes to text content\n });\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, [element, options]);\n\n useEffect(() => {\n return () => {\n if (!observerRef.current) return;\n observerRef.current.disconnect();\n };\n }, []);\n\n const updateFocusables = () => {\n const target = element instanceof HTMLElement ? element : element?.current;\n if (!target) return;\n setFocusables(tabbable(target as Element));\n };\n\n return { focusables, updateFocusables };\n};\n","import { useEffect } from \"react\";\n\n/**\n * Props for the useOnClickOutside hook\n */\ntype UseOnClickOutsideProps = {\n /**\n * Callback when clicking outside targets\n */\n onOutsidePress?: (e: globalThis.MouseEvent) => void;\n /**\n * Callback when closing (after outside press)\n */\n onClose?: () => void;\n /**\n * Array of target elements to monitor\n */\n targets: (HTMLElement | undefined)[];\n};\n\n/**\n * Custom hook for detecting clicks outside of specified target elements.\n *\n * Features:\n * - Detects clicks outside of multiple target elements\n * - Supports both mousedown and mouseup event handling\n * - Provides separate callbacks for outside press and close actions\n * - Handles SSR environments gracefully\n * - Automatically cleans up event listeners\n * - Uses composedPath for accurate event target detection\n * - Supports optional callbacks for flexible usage\n *\n * @param props - Configuration object containing targets and optional callbacks\n * @returns void\n */\nexport const useOnClickOutside = ({\n onOutsidePress,\n targets,\n onClose,\n}: UseOnClickOutsideProps) => {\n useEffect(() => {\n if (typeof document === \"undefined\") return;\n\n let isClosable = false;\n const onMouseDownHandler = (e: globalThis.MouseEvent) => {\n let isTarget = false;\n const path = e.composedPath();\n for (const el of targets) {\n if (el && path.includes(el)) {\n isTarget = true;\n break;\n }\n }\n\n if (!isTarget) {\n onOutsidePress?.(e);\n isClosable = true;\n }\n };\n const onMouseUpHandler = (e: globalThis.MouseEvent) => {\n if (!isClosable) return;\n let isTarget = false;\n const path = e.composedPath();\n for (const el of targets) {\n if (el && path.includes(el)) {\n isTarget = true;\n break;\n }\n }\n if (!isTarget) {\n onClose?.();\n }\n };\n\n document.addEventListener(\"mousedown\", onMouseDownHandler);\n document.addEventListener(\"mouseup\", onMouseUpHandler);\n return () => {\n document.removeEventListener(\"mousedown\", onMouseDownHandler);\n document.removeEventListener(\"mouseup\", onMouseUpHandler);\n };\n }, [onClose, onOutsidePress, targets]);\n};\n"],"names":[],"mappings":"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"}
|
|
@@ -1,18 +0,0 @@
|
|
|
1
|
-
import { useState, useEffect } from 'react';
|
|
2
|
-
|
|
3
|
-
const usePopoverCloseDelayWorkaround = (popoverOpen, delay = 300) => {
|
|
4
|
-
const [shouldShowContent, setShouldShowContent] = useState(popoverOpen);
|
|
5
|
-
useEffect(() => {
|
|
6
|
-
if (!popoverOpen) {
|
|
7
|
-
const timeout = setTimeout(() => {
|
|
8
|
-
setShouldShowContent(false);
|
|
9
|
-
}, delay);
|
|
10
|
-
return () => clearTimeout(timeout);
|
|
11
|
-
}
|
|
12
|
-
setShouldShowContent(true);
|
|
13
|
-
}, [popoverOpen, delay]);
|
|
14
|
-
return shouldShowContent;
|
|
15
|
-
};
|
|
16
|
-
|
|
17
|
-
export { usePopoverCloseDelayWorkaround as u };
|
|
18
|
-
//# sourceMappingURL=usePopoverCloseDelayWorkaround-BZcjPkvT.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"usePopoverCloseDelayWorkaround-BZcjPkvT.js","sources":["../src/internal/hooks/usePopoverCloseDelayWorkaround/usePopoverCloseDelayWorkaround.ts"],"sourcesContent":["import { useEffect, useState } from \"react\";\n\n// The Popover continues to render Popover.Content for X milliseconds after the popover is closed.\n// To prevent the popover content from appearing empty, we need to continue to show it inside Popover.Content for X milliseconds.\n// This is just a hack until we have a `onCloseAnimationEnd` prop on Popover.\nexport const usePopoverCloseDelayWorkaround = (\n popoverOpen: boolean,\n delay: number = 300,\n) => {\n const [shouldShowContent, setShouldShowContent] = useState(popoverOpen);\n\n useEffect(() => {\n if (!popoverOpen) {\n const timeout = setTimeout(() => {\n setShouldShowContent(false);\n }, delay);\n return () => clearTimeout(timeout);\n }\n setShouldShowContent(true);\n }, [popoverOpen, delay]);\n\n return shouldShowContent;\n};\n"],"names":[],"mappings":";;AAKO,MAAM,8BAAiC,GAAA,CAC5C,WACA,EAAA,KAAA,GAAgB,GACb,KAAA;AACH,EAAA,MAAM,CAAC,iBAAA,EAAmB,oBAAoB,CAAA,GAAI,SAAS,WAAW,CAAA;AAEtE,EAAA,SAAA,CAAU,MAAM;AACd,IAAA,IAAI,CAAC,WAAa,EAAA;AAChB,MAAM,MAAA,OAAA,GAAU,WAAW,MAAM;AAC/B,QAAA,oBAAA,CAAqB,KAAK,CAAA;AAAA,SACzB,KAAK,CAAA;AACR,MAAO,OAAA,MAAM,aAAa,OAAO,CAAA;AAAA;AAEnC,IAAA,oBAAA,CAAqB,IAAI,CAAA;AAAA,GACxB,EAAA,CAAC,WAAa,EAAA,KAAK,CAAC,CAAA;AAEvB,EAAO,OAAA,iBAAA;AACT;;;;"}
|