@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 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Details-CF8DImjw.js","sources":["../src/components/Details/internal/DetailsContext.tsx","../src/components/Details/internal/DetailsArrow.tsx","../src/components/Details/DetailsSummary.tsx","../src/components/Details/DetailsContent.tsx","../src/components/Details/Details.tsx"],"sourcesContent":["import { createContext } from \"react\";\n\nexport type DetailsContextProps = {\n id: string;\n isExpanded: boolean;\n expanded: () => void;\n close: () => void;\n toggle: () => void;\n};\n\nexport const DetailsContext = createContext<DetailsContextProps>({\n id: \"\",\n isExpanded: false,\n expanded: () => undefined,\n close: () => undefined,\n toggle: () => undefined,\n});\n","import { forwardRef, useContext, type ComponentPropsWithoutRef } from \"react\";\nimport Arrow_right from \"@servicetitan/hammer-icon/mdi/round/chevron_right.svg\";\nimport { DetailsContext } from \"./DetailsContext\";\nimport Icon from \"../../Icon\";\n\nimport cx from \"classnames\";\nimport styles from \"../Details.module.scss\";\n\n/**\n * Props for the DetailsArrow component\n * @extends ComponentPropsWithoutRef<\"span\">\n */\nexport type DetailsArrowProps = ComponentPropsWithoutRef<\"span\">;\n\n/**\n * DetailsArrow component for the animated arrow indicator in DetailsSummary.\n *\n * Features:\n * - Animated chevron icon that rotates on expand/collapse\n * - Automatically reflects the current expanded state\n * - Uses consistent icon sizing and styling\n * - Smooth transition animations\n * - Accessible with proper ARIA context\n *\n * @example\n * <DetailsArrow className=\"custom-arrow\" />\n */\nexport const DetailsArrow = forwardRef<HTMLSpanElement, DetailsArrowProps>(\n function DetailsArrow({ className: classNameProp, ...rest }, ref) {\n const { isExpanded } = useContext(DetailsContext);\n\n const className = cx(\n styles.arrow,\n { [styles[\"is-expanded\"]]: isExpanded },\n classNameProp,\n );\n\n return (\n <span className={className} ref={ref} {...rest}>\n <Icon size=\"large\" svg={Arrow_right} />\n </span>\n );\n },\n);\n","import {\n forwardRef,\n useContext,\n type ComponentPropsWithoutRef,\n type MouseEventHandler,\n} from \"react\";\nimport { DataTrackingId } from \"../../types\";\nimport { DetailsContext } from \"./internal/DetailsContext\";\nimport { childrenToString } from \"../../internal/functions\";\nimport { useTrackingId } from \"../../hooks\";\nimport { DetailsArrow } from \"./internal/DetailsArrow\";\n\nimport cx from \"classnames\";\nimport styles from \"./Details.module.scss\";\n\n/**\n * Props for the DetailsSummary component\n * @extends ComponentPropsWithoutRef<\"button\">\n */\nexport type DetailsSummaryProps = ComponentPropsWithoutRef<\"button\"> &\n DataTrackingId;\n\n/**\n * DetailsSummary component for the clickable header of a Details section.\n *\n * Features:\n * - Clickable button that toggles the Details expanded state\n * - Automatic ARIA attributes for accessibility\n * - Includes animated arrow indicator\n * - Supports custom onClick handlers\n * - Keyboard navigation support (Enter, Space)\n * - Styled with consistent typography and spacing\n *\n * @example\n * <Details.Summary onClick={() => console.log('Summary clicked')}>\n * Click to expand content\n * </Details.Summary>\n */\nexport const DetailsSummary = forwardRef<\n HTMLButtonElement,\n DetailsSummaryProps\n>(function DetailsSummary(\n { children, onClick: onClickProp, className: classNameProp, ...rest },\n ref,\n) {\n const { id, isExpanded, toggle } = useContext(DetailsContext);\n\n const handleClick: MouseEventHandler<HTMLButtonElement> = (...args) => {\n onClickProp?.(...args);\n toggle();\n };\n\n const data = {\n children: childrenToString(children),\n };\n\n const trackingId = useTrackingId({\n name: \"DetailsSummary\",\n data,\n hasOverride: !!rest[\"data-tracking-id\"],\n });\n\n const className = cx(styles.summary, classNameProp);\n\n return (\n <button\n data-tracking-id={trackingId}\n data-anv=\"details-summary\"\n aria-controls={id}\n aria-expanded={isExpanded}\n className={className}\n onClick={handleClick}\n ref={ref}\n {...rest}\n >\n <DetailsArrow />\n {children}\n </button>\n );\n});\n","import { forwardRef, useContext, type ComponentPropsWithoutRef } from \"react\";\nimport { DetailsContext } from \"./internal/DetailsContext\";\n\nimport cx from \"classnames\";\nimport styles from \"./Details.module.scss\";\n\n/**\n * Props for the DetailsContent component\n * @extends ComponentPropsWithoutRef<\"div\">\n */\nexport type DetailsContentProps = ComponentPropsWithoutRef<\"div\"> & {\n /**\n * Fixed height for the content area\n */\n height?: string | number;\n /**\n * Maximum height for the content area\n */\n maxHeight?: string | number;\n};\n\n/**\n * DetailsContent component for the expandable content area of a Details section.\n *\n * Features:\n * - Expandable and collapsible content area\n * - Smooth animations for height transitions\n * - Configurable height and maxHeight constraints\n * - Automatic overflow handling when height is constrained\n * - Proper ARIA associations with the summary\n * - Responsive design with flexible layout\n *\n * @example\n * <Details.Content maxHeight={300}>\n * <p>This content will be constrained to 300px max height</p>\n * </Details.Content>\n */\nexport const DetailsContent = forwardRef<HTMLDivElement, DetailsContentProps>(\n function DetailsContent(\n {\n className: classNameProp,\n children,\n height,\n maxHeight,\n style: styleProp,\n ...rest\n },\n ref,\n ) {\n const { id, isExpanded } = useContext(DetailsContext);\n\n const style = {\n height,\n maxHeight,\n ...(height || maxHeight ? { overflow: \"auto\" } : {}),\n ...styleProp,\n };\n\n return (\n <div\n data-anv=\"details-content\"\n id={id}\n className={cx(styles[\"content-wrapper\"], {\n [styles.expanded]: isExpanded,\n })}\n ref={ref}\n >\n <div className={styles.content}>\n <div className={classNameProp} style={style} {...rest}>\n {children}\n </div>\n </div>\n </div>\n );\n },\n);\n","import {\n ComponentPropsWithoutRef,\n Ref,\n forwardRef,\n useId,\n useMemo,\n useState,\n} from \"react\";\nimport { LayoutUtilProps } from \"../../types\";\nimport { DetailsSummary } from \"./DetailsSummary\";\nimport { DetailsContent } from \"./DetailsContent\";\nimport { DetailsContext } from \"./internal/DetailsContext\";\nimport { useLayoutPropsUtil } from \"../../internal/hooks\";\n\nimport cx from \"classnames\";\nimport styles from \"./Details.module.scss\";\n\n/**\n * Props for the Details component\n * @extends ComponentPropsWithoutRef<\"div\">\n * @extends LayoutUtilProps\n */\nexport type DetailsProps = ComponentPropsWithoutRef<\"div\"> &\n LayoutUtilProps & {\n /**\n * Determines the controlled expanded state of the details.\n * @remarks Use this to make the details expanded state controlled.\n * @default false\n */\n expanded?: boolean;\n /**\n * Determines the default expanded state of the details.\n * @remarks Use this to make the details expanded state uncontrolled.\n * @default false\n */\n defaultExpanded?: boolean;\n };\n\nconst DetailsElement = forwardRef(\n (props: DetailsProps, ref: Ref<HTMLDivElement>) => {\n const { layoutStyles, componentProps } = useLayoutPropsUtil(props);\n const {\n children,\n id: idProp,\n expanded: expandedControlled,\n defaultExpanded = false,\n style,\n className,\n ...rest\n } = componentProps;\n const id = useId();\n const [isExpanded, setIsOpen] = useState(defaultExpanded);\n\n function expanded() {\n setIsOpen(true);\n }\n\n function close() {\n setIsOpen(false);\n }\n\n function toggle() {\n setIsOpen((prevIsOpen: boolean) => !prevIsOpen);\n }\n\n const value = useMemo(\n () => ({\n id: idProp != null ? idProp : id,\n isExpanded:\n expandedControlled != null ? expandedControlled : isExpanded,\n expanded,\n close,\n toggle,\n }),\n [id, idProp, isExpanded, expandedControlled],\n );\n\n const styleCombined = {\n ...style,\n ...layoutStyles,\n };\n\n return (\n <DetailsContext.Provider value={value}>\n <div\n data-anv=\"details\"\n ref={ref}\n className={cx(styles.details, className)}\n style={styleCombined}\n {...rest}\n >\n {children}\n </div>\n </DetailsContext.Provider>\n );\n },\n);\n\nDetailsElement.displayName = \"Details\";\n\n/**\n * Details component for creating expandable/collapsible content sections.\n *\n * Features:\n * - Expandable and collapsible content sections\n * - Controlled and uncontrolled state management\n * - Accessible with proper ARIA attributes\n * - Smooth animations for expand/collapse\n * - Keyboard navigation support\n * - Layout utility props for positioning and spacing\n * - Compound component pattern with Summary, Content, and Arrow sub-components\n * - Automatic tracking ID generation for analytics\n *\n * @example\n * <Details defaultExpanded>\n * <Details.Summary>Click to expand</Details.Summary>\n * <Details.Content>This content is now visible</Details.Content>\n * </Details>\n */\nexport const Details = Object.assign(DetailsElement, {\n Summary: DetailsSummary,\n Content: DetailsContent,\n});\n"],"names":["DetailsArrow","Arrow_right","DetailsSummary","DetailsContent"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"Details-CF8DImjw.js","sources":["../src/components/Details/internal/DetailsContext.tsx","../src/components/Details/internal/DetailsArrow.tsx","../src/components/Details/DetailsSummary.tsx","../src/components/Details/DetailsContent.tsx","../src/components/Details/Details.tsx"],"sourcesContent":["import { createContext } from \"react\";\n\nexport type DetailsContextProps = {\n id: string;\n isExpanded: boolean;\n expanded: () => void;\n close: () => void;\n toggle: () => void;\n};\n\nexport const DetailsContext = createContext<DetailsContextProps>({\n id: \"\",\n isExpanded: false,\n expanded: () => undefined,\n close: () => undefined,\n toggle: () => undefined,\n});\n","import { forwardRef, useContext, type ComponentPropsWithoutRef } from \"react\";\nimport Arrow_right from \"@servicetitan/hammer-icon/mdi/round/chevron_right.svg\";\nimport { DetailsContext } from \"./DetailsContext\";\nimport Icon from \"../../Icon\";\n\nimport cx from \"classnames\";\nimport styles from \"../Details.module.scss\";\n\n/**\n * Props for the DetailsArrow component\n * @extends ComponentPropsWithoutRef<\"span\">\n */\nexport type DetailsArrowProps = ComponentPropsWithoutRef<\"span\">;\n\n/**\n * DetailsArrow component for the animated arrow indicator in DetailsSummary.\n *\n * Features:\n * - Animated chevron icon that rotates on expand/collapse\n * - Automatically reflects the current expanded state\n * - Uses consistent icon sizing and styling\n * - Smooth transition animations\n * - Accessible with proper ARIA context\n *\n * @example\n * <DetailsArrow className=\"custom-arrow\" />\n */\nexport const DetailsArrow = forwardRef<HTMLSpanElement, DetailsArrowProps>(\n function DetailsArrow({ className: classNameProp, ...rest }, ref) {\n const { isExpanded } = useContext(DetailsContext);\n\n const className = cx(\n styles.arrow,\n { [styles[\"is-expanded\"]]: isExpanded },\n classNameProp,\n );\n\n return (\n <span className={className} ref={ref} {...rest}>\n <Icon size=\"large\" svg={Arrow_right} />\n </span>\n );\n },\n);\n","import {\n forwardRef,\n useContext,\n type ComponentPropsWithoutRef,\n type MouseEventHandler,\n} from \"react\";\nimport { DataTrackingId } from \"../../types\";\nimport { DetailsContext } from \"./internal/DetailsContext\";\nimport { childrenToString } from \"../../internal/functions\";\nimport { useTrackingId } from \"../../hooks\";\nimport { DetailsArrow } from \"./internal/DetailsArrow\";\n\nimport cx from \"classnames\";\nimport styles from \"./Details.module.scss\";\n\n/**\n * Props for the DetailsSummary component\n * @extends ComponentPropsWithoutRef<\"button\">\n */\nexport type DetailsSummaryProps = ComponentPropsWithoutRef<\"button\"> &\n DataTrackingId;\n\n/**\n * DetailsSummary component for the clickable header of a Details section.\n *\n * Features:\n * - Clickable button that toggles the Details expanded state\n * - Automatic ARIA attributes for accessibility\n * - Includes animated arrow indicator\n * - Supports custom onClick handlers\n * - Keyboard navigation support (Enter, Space)\n * - Styled with consistent typography and spacing\n *\n * @example\n * <Details.Summary onClick={() => console.log('Summary clicked')}>\n * Click to expand content\n * </Details.Summary>\n */\nexport const DetailsSummary = forwardRef<\n HTMLButtonElement,\n DetailsSummaryProps\n>(function DetailsSummary(\n { children, onClick: onClickProp, className: classNameProp, ...rest },\n ref,\n) {\n const { id, isExpanded, toggle } = useContext(DetailsContext);\n\n const handleClick: MouseEventHandler<HTMLButtonElement> = (...args) => {\n onClickProp?.(...args);\n toggle();\n };\n\n const data = {\n children: childrenToString(children),\n };\n\n const trackingId = useTrackingId({\n name: \"DetailsSummary\",\n data,\n hasOverride: !!rest[\"data-tracking-id\"],\n });\n\n const className = cx(styles.summary, classNameProp);\n\n return (\n <button\n data-tracking-id={trackingId}\n data-anv=\"details-summary\"\n aria-controls={id}\n aria-expanded={isExpanded}\n className={className}\n onClick={handleClick}\n ref={ref}\n {...rest}\n >\n <DetailsArrow />\n {children}\n </button>\n );\n});\n","import { forwardRef, useContext, type ComponentPropsWithoutRef } from \"react\";\nimport { DetailsContext } from \"./internal/DetailsContext\";\n\nimport cx from \"classnames\";\nimport styles from \"./Details.module.scss\";\n\n/**\n * Props for the DetailsContent component\n * @extends ComponentPropsWithoutRef<\"div\">\n */\nexport type DetailsContentProps = ComponentPropsWithoutRef<\"div\"> & {\n /**\n * Fixed height for the content area\n */\n height?: string | number;\n /**\n * Maximum height for the content area\n */\n maxHeight?: string | number;\n};\n\n/**\n * DetailsContent component for the expandable content area of a Details section.\n *\n * Features:\n * - Expandable and collapsible content area\n * - Smooth animations for height transitions\n * - Configurable height and maxHeight constraints\n * - Automatic overflow handling when height is constrained\n * - Proper ARIA associations with the summary\n * - Responsive design with flexible layout\n *\n * @example\n * <Details.Content maxHeight={300}>\n * <p>This content will be constrained to 300px max height</p>\n * </Details.Content>\n */\nexport const DetailsContent = forwardRef<HTMLDivElement, DetailsContentProps>(\n function DetailsContent(\n {\n className: classNameProp,\n children,\n height,\n maxHeight,\n style: styleProp,\n ...rest\n },\n ref,\n ) {\n const { id, isExpanded } = useContext(DetailsContext);\n\n const style = {\n height,\n maxHeight,\n ...(height || maxHeight ? { overflow: \"auto\" } : {}),\n ...styleProp,\n };\n\n return (\n <div\n data-anv=\"details-content\"\n id={id}\n className={cx(styles[\"content-wrapper\"], {\n [styles.expanded]: isExpanded,\n })}\n ref={ref}\n >\n <div className={styles.content}>\n <div className={classNameProp} style={style} {...rest}>\n {children}\n </div>\n </div>\n </div>\n );\n },\n);\n","import {\n ComponentPropsWithoutRef,\n Ref,\n forwardRef,\n useId,\n useMemo,\n useState,\n} from \"react\";\nimport { LayoutUtilProps } from \"../../types\";\nimport { DetailsSummary } from \"./DetailsSummary\";\nimport { DetailsContent } from \"./DetailsContent\";\nimport { DetailsContext } from \"./internal/DetailsContext\";\nimport { useLayoutPropsUtil } from \"../../internal/hooks\";\n\nimport cx from \"classnames\";\nimport styles from \"./Details.module.scss\";\n\n/**\n * Props for the Details component\n * @extends ComponentPropsWithoutRef<\"div\">\n * @extends LayoutUtilProps\n */\nexport type DetailsProps = ComponentPropsWithoutRef<\"div\"> &\n LayoutUtilProps & {\n /**\n * Determines the controlled expanded state of the details.\n * @remarks Use this to make the details expanded state controlled.\n * @default false\n */\n expanded?: boolean;\n /**\n * Determines the default expanded state of the details.\n * @remarks Use this to make the details expanded state uncontrolled.\n * @default false\n */\n defaultExpanded?: boolean;\n };\n\nconst DetailsElement = forwardRef(\n (props: DetailsProps, ref: Ref<HTMLDivElement>) => {\n const { layoutStyles, componentProps } = useLayoutPropsUtil(props);\n const {\n children,\n id: idProp,\n expanded: expandedControlled,\n defaultExpanded = false,\n style,\n className,\n ...rest\n } = componentProps;\n const id = useId();\n const [isExpanded, setIsOpen] = useState(defaultExpanded);\n\n function expanded() {\n setIsOpen(true);\n }\n\n function close() {\n setIsOpen(false);\n }\n\n function toggle() {\n setIsOpen((prevIsOpen: boolean) => !prevIsOpen);\n }\n\n const value = useMemo(\n () => ({\n id: idProp != null ? idProp : id,\n isExpanded:\n expandedControlled != null ? expandedControlled : isExpanded,\n expanded,\n close,\n toggle,\n }),\n [id, idProp, isExpanded, expandedControlled],\n );\n\n const styleCombined = {\n ...style,\n ...layoutStyles,\n };\n\n return (\n <DetailsContext.Provider value={value}>\n <div\n data-anv=\"details\"\n ref={ref}\n className={cx(styles.details, className)}\n style={styleCombined}\n {...rest}\n >\n {children}\n </div>\n </DetailsContext.Provider>\n );\n },\n);\n\nDetailsElement.displayName = \"Details\";\n\n/**\n * Details component for creating expandable/collapsible content sections.\n *\n * Features:\n * - Expandable and collapsible content sections\n * - Controlled and uncontrolled state management\n * - Accessible with proper ARIA attributes\n * - Smooth animations for expand/collapse\n * - Keyboard navigation support\n * - Layout utility props for positioning and spacing\n * - Compound component pattern with Summary, Content, and Arrow sub-components\n * - Automatic tracking ID generation for analytics\n *\n * @example\n * <Details defaultExpanded>\n * <Details.Summary>Click to expand</Details.Summary>\n * <Details.Content>This content is now visible</Details.Content>\n * </Details>\n */\nexport const Details = Object.assign(DetailsElement, {\n Summary: DetailsSummary,\n Content: DetailsContent,\n});\n"],"names":["DetailsArrow","Arrow_right","DetailsSummary","DetailsContent"],"mappings":";;;;;;;;;AAUO,MAAM,iBAAiB,aAAA,CAAmC;AAAA,EAC/D,EAAA,EAAI,EAAA;AAAA,EACJ,UAAA,EAAY,KAAA;AAAA,EACZ,UAAU,MAAM,MAAA;AAAA,EAChB,OAAO,MAAM,MAAA;AAAA,EACb,QAAQ,MAAM;AAChB,CAAC,CAAA;;;;;;;;;;;;;;;;;ACWM,MAAM,YAAA,GAAe,UAAA;AAAA,EAC1B,SAASA,cAAa,EAAE,SAAA,EAAW,eAAe,GAAG,IAAA,IAAQ,GAAA,EAAK;AAChE,IAAA,MAAM,EAAE,UAAA,EAAW,GAAI,UAAA,CAAW,cAAc,CAAA;AAEhD,IAAA,MAAM,SAAA,GAAY,EAAA;AAAA,MAChB,MAAA,CAAO,KAAA;AAAA,MACP,EAAE,CAAC,MAAA,CAAO,aAAa,CAAC,GAAG,UAAA,EAAW;AAAA,MACtC;AAAA,KACF;AAEA,IAAA,uBACE,GAAA,CAAC,MAAA,EAAA,EAAK,SAAA,EAAsB,GAAA,EAAW,GAAG,IAAA,EACxC,QAAA,kBAAA,GAAA,CAAC,IAAA,EAAA,EAAK,IAAA,EAAK,OAAA,EAAQ,GAAA,EAAKC,eAAA,EAAa,CAAA,EACvC,CAAA;AAAA,EAEJ;AACF,CAAA;;ACLO,MAAM,cAAA,GAAiB,UAAA,CAG5B,SAASC,eAAAA,CACT,EAAE,QAAA,EAAU,OAAA,EAAS,WAAA,EAAa,SAAA,EAAW,aAAA,EAAe,GAAG,IAAA,IAC/D,GAAA,EACA;AACA,EAAA,MAAM,EAAE,EAAA,EAAI,UAAA,EAAY,MAAA,EAAO,GAAI,WAAW,cAAc,CAAA;AAE5D,EAAA,MAAM,WAAA,GAAoD,IAAI,IAAA,KAAS;AACrE,IAAA,WAAA,GAAc,GAAG,IAAI,CAAA;AACrB,IAAA,MAAA,EAAO;AAAA,EACT,CAAA;AAEA,EAAA,MAAM,IAAA,GAAO;AAAA,IACX,QAAA,EAAU,iBAAiB,QAAQ;AAAA,GACrC;AAEA,EAAA,MAAM,aAAa,aAAA,CAAc;AAAA,IAC/B,IAAA,EAAM,gBAAA;AAAA,IACN,IAAA;AAAA,IACA,WAAA,EAAa,CAAC,CAAC,IAAA,CAAK,kBAAkB;AAAA,GACvC,CAAA;AAED,EAAA,MAAM,SAAA,GAAY,EAAA,CAAG,MAAA,CAAO,OAAA,EAAS,aAAa,CAAA;AAElD,EAAA,uBACE,IAAA;AAAA,IAAC,QAAA;AAAA,IAAA;AAAA,MACC,kBAAA,EAAkB,UAAA;AAAA,MAClB,UAAA,EAAS,iBAAA;AAAA,MACT,eAAA,EAAe,EAAA;AAAA,MACf,eAAA,EAAe,UAAA;AAAA,MACf,SAAA;AAAA,MACA,OAAA,EAAS,WAAA;AAAA,MACT,GAAA;AAAA,MACC,GAAG,IAAA;AAAA,MAEJ,QAAA,EAAA;AAAA,wBAAA,GAAA,CAAC,YAAA,EAAA,EAAa,CAAA;AAAA,QACb;AAAA;AAAA;AAAA,GACH;AAEJ,CAAC;;AC1CM,MAAM,cAAA,GAAiB,UAAA;AAAA,EAC5B,SAASC,eAAAA,CACP;AAAA,IACE,SAAA,EAAW,aAAA;AAAA,IACX,QAAA;AAAA,IACA,MAAA;AAAA,IACA,SAAA;AAAA,IACA,KAAA,EAAO,SAAA;AAAA,IACP,GAAG;AAAA,KAEL,GAAA,EACA;AACA,IAAA,MAAM,EAAE,EAAA,EAAI,UAAA,EAAW,GAAI,WAAW,cAAc,CAAA;AAEpD,IAAA,MAAM,KAAA,GAAQ;AAAA,MACZ,MAAA;AAAA,MACA,SAAA;AAAA,MACA,GAAI,MAAA,IAAU,SAAA,GAAY,EAAE,QAAA,EAAU,MAAA,KAAW,EAAC;AAAA,MAClD,GAAG;AAAA,KACL;AAEA,IAAA,uBACE,GAAA;AAAA,MAAC,KAAA;AAAA,MAAA;AAAA,QACC,UAAA,EAAS,iBAAA;AAAA,QACT,EAAA;AAAA,QACA,SAAA,EAAW,EAAA,CAAG,MAAA,CAAO,iBAAiB,CAAA,EAAG;AAAA,UACvC,CAAC,MAAA,CAAO,QAAQ,GAAG;AAAA,SACpB,CAAA;AAAA,QACD,GAAA;AAAA,QAEA,QAAA,kBAAA,GAAA,CAAC,KAAA,EAAA,EAAI,SAAA,EAAW,MAAA,CAAO,OAAA,EACrB,QAAA,kBAAA,GAAA,CAAC,KAAA,EAAA,EAAI,SAAA,EAAW,aAAA,EAAe,KAAA,EAAe,GAAG,IAAA,EAC9C,UACH,CAAA,EACF;AAAA;AAAA,KACF;AAAA,EAEJ;AACF;;ACrCA,MAAM,cAAA,GAAiB,UAAA;AAAA,EACrB,CAAC,OAAqB,GAAA,KAA6B;AACjD,IAAA,MAAM,EAAE,YAAA,EAAc,cAAA,EAAe,GAAI,mBAAmB,KAAK,CAAA;AACjE,IAAA,MAAM;AAAA,MACJ,QAAA;AAAA,MACA,EAAA,EAAI,MAAA;AAAA,MACJ,QAAA,EAAU,kBAAA;AAAA,MACV,eAAA,GAAkB,KAAA;AAAA,MAClB,KAAA;AAAA,MACA,SAAA;AAAA,MACA,GAAG;AAAA,KACL,GAAI,cAAA;AACJ,IAAA,MAAM,KAAK,KAAA,EAAM;AACjB,IAAA,MAAM,CAAC,UAAA,EAAY,SAAS,CAAA,GAAI,SAAS,eAAe,CAAA;AAExD,IAAA,SAAS,QAAA,GAAW;AAClB,MAAA,SAAA,CAAU,IAAI,CAAA;AAAA,IAChB;AAEA,IAAA,SAAS,KAAA,GAAQ;AACf,MAAA,SAAA,CAAU,KAAK,CAAA;AAAA,IACjB;AAEA,IAAA,SAAS,MAAA,GAAS;AAChB,MAAA,SAAA,CAAU,CAAC,UAAA,KAAwB,CAAC,UAAU,CAAA;AAAA,IAChD;AAEA,IAAA,MAAM,KAAA,GAAQ,OAAA;AAAA,MACZ,OAAO;AAAA,QACL,EAAA,EAAI,MAAA,IAAU,IAAA,GAAO,MAAA,GAAS,EAAA;AAAA,QAC9B,UAAA,EACE,kBAAA,IAAsB,IAAA,GAAO,kBAAA,GAAqB,UAAA;AAAA,QACpD,QAAA;AAAA,QACA,KAAA;AAAA,QACA;AAAA,OACF,CAAA;AAAA,MACA,CAAC,EAAA,EAAI,MAAA,EAAQ,UAAA,EAAY,kBAAkB;AAAA,KAC7C;AAEA,IAAA,MAAM,aAAA,GAAgB;AAAA,MACpB,GAAG,KAAA;AAAA,MACH,GAAG;AAAA,KACL;AAEA,IAAA,uBACE,GAAA,CAAC,cAAA,CAAe,QAAA,EAAf,EAAwB,KAAA,EACvB,QAAA,kBAAA,GAAA;AAAA,MAAC,KAAA;AAAA,MAAA;AAAA,QACC,UAAA,EAAS,SAAA;AAAA,QACT,GAAA;AAAA,QACA,SAAA,EAAW,EAAA,CAAG,MAAA,CAAO,OAAA,EAAS,SAAS,CAAA;AAAA,QACvC,KAAA,EAAO,aAAA;AAAA,QACN,GAAG,IAAA;AAAA,QAEH;AAAA;AAAA,KACH,EACF,CAAA;AAAA,EAEJ;AACF,CAAA;AAEA,cAAA,CAAe,WAAA,GAAc,SAAA;AAqBtB,MAAM,OAAA,GAAU,MAAA,CAAO,MAAA,CAAO,cAAA,EAAgB;AAAA,EACnD,OAAA,EAAS,cAAA;AAAA,EACT,OAAA,EAAS;AACX,CAAC;;;;"}
|
|
@@ -3,15 +3,15 @@ import { useContext, forwardRef, useRef, useState, useId, useCallback, useEffect
|
|
|
3
3
|
import { S as SvgClose } from './close-DZj38AEh.js';
|
|
4
4
|
import { c as cx } from './index-tZvMCc77.js';
|
|
5
5
|
import { T as Text } from './Text-BqvcbXyp.js';
|
|
6
|
-
import { B as Button } from './Button-
|
|
7
|
-
import { D as DialogContext } from './DrawerContext-
|
|
6
|
+
import { B as Button } from './Button-VNQQgZ45.js';
|
|
7
|
+
import { D as DialogContext } from './DrawerContext-D4tWTLVf.js';
|
|
8
8
|
import { useTrackingId } from './useTrackingId.js';
|
|
9
9
|
import { c as childrenToString } from './childrenToString-Bz9MqbHb.js';
|
|
10
|
-
import { a as ToastProvider, b as ToasterPopover, c as ToasterContent } from './Toaster-
|
|
11
|
-
import { u as useDialogTransitionStates, a as useDialogScrollLock } from './
|
|
12
|
-
import { a as
|
|
10
|
+
import { a as ToastProvider, b as ToasterPopover, c as ToasterContent } from './Toaster-CyiGDKMh.js';
|
|
11
|
+
import { u as useDialogTransitionStates, a as useKeyboardFocusables, b as useDialogScrollLock } from './useKeyboardFocusables-ek2mYel-.js';
|
|
12
|
+
import { a as useOnClickOutside } from './useOnClickOutside-C5AZE_I6.js';
|
|
13
13
|
import { g as getActiveElement } from './getActiveElement-BcSyVE7S.js';
|
|
14
|
-
import { u as useMergeRefs } from './useMergeRefs-
|
|
14
|
+
import { u as useMergeRefs } from './useMergeRefs-Dfmtq9cI.js';
|
|
15
15
|
|
|
16
16
|
import './Dialog.css';function useDialogContext() {
|
|
17
17
|
const context = useContext(DialogContext);
|
|
@@ -378,4 +378,4 @@ const Dialog = Object.assign(DialogElement, {
|
|
|
378
378
|
});
|
|
379
379
|
|
|
380
380
|
export { Dialog as D, DialogCancelButton as a, DialogContent as b, DialogFooter as c, DialogHeader as d };
|
|
381
|
-
//# sourceMappingURL=Dialog-
|
|
381
|
+
//# sourceMappingURL=Dialog-BHFLnFNQ.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Dialog-CgkrvrQu.js","sources":["../src/components/Dialog/internal/useDialogContext.ts","../src/components/Dialog/DialogCancelButton.tsx","../src/components/Dialog/DialogHeader.tsx","../src/components/Dialog/DialogFooter.tsx","../src/components/Dialog/DialogContent.tsx","../src/components/Dialog/Dialog.tsx"],"sourcesContent":["import { useContext } from \"react\";\nimport { DialogContext } from \"./DialogContext\";\n\nexport function useDialogContext() {\n const context = useContext(DialogContext);\n if (!context) {\n throw new Error(\n \"useDialogContext must be used within a DialogContextProvider\",\n );\n }\n return context;\n}\n","import { MouseEvent, forwardRef } from \"react\";\nimport { Button, ButtonProps } from \"../Button\";\nimport { useDialogContext } from \"./internal/useDialogContext\";\nimport { DataTrackingId } from \"../../types\";\nimport { useTrackingId } from \"../../hooks\";\n\n/**\n * Props for the DialogCancelButton component\n * @extends ButtonProps\n */\nexport type DialogCancelButtonProps = ButtonProps & DataTrackingId;\n\n/**\n * DialogCancelButton component for cancel/close actions in a Dialog.\n *\n * Features:\n * - Button that automatically closes the dialog when clicked\n * - Extends all Button component props and functionality\n * - Proper accessibility with close dialog semantics\n * - Automatic focus management\n * - Consistent styling with other dialog elements\n *\n * @example\n * <Dialog.CancelButton appearance=\"ghost\">Cancel</Dialog.CancelButton>\n */\nexport const DialogCancelButton = forwardRef<\n HTMLButtonElement,\n DialogCancelButtonProps\n>((props, ref) => {\n const { onClick, ...rest } = props;\n const { close } = useDialogContext();\n const data = {\n title: props.title,\n appearance: props.appearance,\n size: props.size,\n type: props.type,\n };\n\n const trackingId = useTrackingId({\n name: \"DialogCancelButton\",\n data,\n hasOverride: !!props[\"data-tracking-id\"],\n });\n const onClickHandler = (e: MouseEvent<HTMLButtonElement>) => {\n onClick?.(e);\n close();\n };\n return (\n <Button\n aria-label=\"Close dialog\"\n data-anv=\"dialog-cancel-button\"\n data-tracking-id={trackingId}\n onClick={onClickHandler}\n ref={ref}\n {...rest}\n />\n );\n});\n\nDialogCancelButton.displayName = \"DialogCancelButton\";\n","import { ComponentPropsWithoutRef, forwardRef } from \"react\";\nimport Close from \"@servicetitan/hammer-icon/mdi/round/close.svg\";\nimport cx from \"classnames\";\n\nimport { Text } from \"../Text\";\nimport { DialogCancelButton } from \"./DialogCancelButton\";\n\nimport styles from \"./Dialog.module.scss\";\nimport { childrenToString } from \"../../internal/functions\";\nimport { useTrackingId } from \"../../hooks\";\nimport { DataTrackingId } from \"../../types\";\n\n/**\n * Props for the DialogHeader component\n * @extends ComponentPropsWithoutRef<\"header\">\n */\nexport type DialogHeaderProps = ComponentPropsWithoutRef<\"header\"> &\n DataTrackingId;\n\n/**\n * DialogHeader component for the header section of a Dialog.\n *\n * Features:\n * - Displays dialog title with headline typography\n * - Includes close button with proper accessibility\n * - Sticky positioning for long content\n * - Consistent spacing and styling\n * - Automatic focus management\n *\n * @example\n * <Dialog.Header>Confirm Delete</Dialog.Header>\n */\nexport const DialogHeader = forwardRef<HTMLDivElement, DialogHeaderProps>(\n (props: DialogHeaderProps, ref) => {\n const { children, className, ...rest } = props;\n const data = {\n children: childrenToString(props.children),\n };\n\n const trackingId = useTrackingId({\n name: \"Dialog\",\n data,\n hasOverride: !!props[\"data-tracking-id\"],\n });\n\n const headerClassNames = cx(className, styles[\"header\"]);\n\n return (\n <header\n className={headerClassNames}\n data-anv=\"dialog-header\"\n data-tracking-id={trackingId}\n ref={ref}\n {...rest}\n >\n <Text variant=\"headline\" el=\"h1\">\n {children}\n </Text>\n <span className={styles[\"close-container\"]}>\n <DialogCancelButton\n className={styles[\"close-button\"]}\n size=\"small\"\n appearance=\"ghost\"\n aria-label=\"Close dialog\"\n icon={Close}\n />\n </span>\n </header>\n );\n },\n);\n\nDialogHeader.displayName = \"DialogHeader\";\n","import { ComponentPropsWithoutRef, forwardRef } from \"react\";\nimport cx from \"classnames\";\n\nimport styles from \"./Dialog.module.scss\";\n\n/**\n * Props for the DialogFooter component\n * @extends ComponentPropsWithoutRef<\"footer\">\n */\nexport type DialogFooterProps = ComponentPropsWithoutRef<\"footer\"> & {\n /**\n * @default false\n */\n sticky?: boolean;\n};\n\n/**\n * DialogFooter component for the footer section of a Dialog.\n *\n * Features:\n * - Container for dialog action buttons\n * - Optional sticky positioning for long content\n * - Consistent spacing and alignment\n * - Right-aligned button layout by default\n * - Flexible content area for custom layouts\n *\n * @example\n * <Dialog.Footer sticky>\n * <Dialog.CancelButton>Cancel</Dialog.CancelButton>\n * <Button appearance=\"primary\">Save</Button>\n * </Dialog.Footer>\n */\nexport const DialogFooter = forwardRef<HTMLElement, DialogFooterProps>(\n (props, ref) => {\n const { children, className, sticky = false, ...rest } = props;\n\n const footerClassNames = cx(styles[\"footer\"], className, {\n [styles[\"sticky\"]]: sticky,\n });\n\n return (\n <footer\n className={footerClassNames}\n data-anv=\"dialog-footer\"\n ref={ref}\n {...rest}\n >\n {children}\n </footer>\n );\n },\n);\n\nDialogFooter.displayName = \"DialogFooter\";\n","import { ComponentPropsWithoutRef, forwardRef } from \"react\";\nimport cx from \"classnames\";\n\nimport styles from \"./Dialog.module.scss\";\n\n/**\n * Props for the DialogContent component\n * @extends ComponentPropsWithoutRef<\"div\">\n */\nexport type DialogContentProps = ComponentPropsWithoutRef<\"div\">;\n\n/**\n * DialogContent component for the main content area of a Dialog.\n *\n * Features:\n * - Main content container for dialog body\n * - Flexible height with overflow handling\n * - Consistent padding and spacing\n * - Responsive design\n * - Proper content scrolling for long content\n *\n * @example\n * <Dialog.Content>\n * <p>This is the main content of the dialog.</p>\n * </Dialog.Content>\n */\nexport const DialogContent = forwardRef<HTMLDivElement, DialogContentProps>(\n (props, ref) => {\n const { children, className, ...rest } = props;\n\n const contentClassNames = cx(styles[\"content\"], className);\n\n return (\n <div\n className={contentClassNames}\n data-anv=\"dialog-content\"\n ref={ref}\n {...rest}\n >\n {children}\n </div>\n );\n },\n);\n\nDialogContent.displayName = \"DialogContent\";\n","import {\n ComponentPropsWithoutRef,\n forwardRef,\n useCallback,\n useEffect,\n useId,\n useRef,\n useState,\n KeyboardEvent,\n} from \"react\";\nimport { DialogHeader } from \"./DialogHeader\";\nimport { DialogFooter } from \"./DialogFooter\";\nimport { DialogContent } from \"./DialogContent\";\nimport { DialogCancelButton } from \"./DialogCancelButton\";\nimport {\n OpenCloseTransitionStateEffects,\n useDialogScrollLock,\n useDialogTransitionStates,\n useKeyboardFocusables,\n useOnClickOutside,\n} from \"../../internal/hooks\";\nimport { DisableCloseOnEscapeOrClickProps, Size } from \"../../types\";\nimport { DialogContext, DialogContextProps } from \"./internal/DialogContext\";\nimport styles from \"./Dialog.module.scss\";\nimport { getActiveElement } from \"../../internal/functions\";\nimport { useMergeRefs } from \"../../hooks\";\nimport cx from \"classnames\";\n\nimport { ToastProvider } from \"../Toast/internal/ToastProvider\";\nimport { ToasterPopover } from \"../Toast/internal/ToasterPopover\";\nimport { ToasterContent } from \"../Toast/internal/Toaster\";\n\n/**\n * Props for the Dialog component\n * @extends ComponentPropsWithoutRef<\"dialog\">\n * @extends DialogTransitionStateEffects\n * @extends DisableCloseOnEscapeOrClickProps\n */\nexport type DialogProps = ComponentPropsWithoutRef<\"dialog\"> &\n OpenCloseTransitionStateEffects &\n DisableCloseOnEscapeOrClickProps & {\n /**\n * @default false\n */\n fullScreen?: boolean;\n /**\n * @default \"medium\"\n */\n size?: Extract<Size, \"medium\" | \"large\">;\n\n /**\n * @default false\n */\n open?: boolean;\n onClose?: () => void;\n /**\n * @deprecated - use onOpenAnimationStart or onOpenAnimationComplete instead\n */\n onOpen?: () => void;\n /**\n * @deprecated - use onOpenAnimationStart or onOpenAnimationComplete instead\n */\n onOpenChange?: (open: boolean) => void;\n /**\n * Callback when clicking outside the dialog\n */\n onClickOutside?: (e: globalThis.MouseEvent) => void;\n /**\n * Enables scroll chaining\n * @link https://developer.mozilla.org/en-US/docs/Glossary/Scroll_chaining\n */\n enableScrollChaining?: boolean;\n };\n\nexport const DialogElement = forwardRef<HTMLDialogElement, DialogProps>(\n (props, ref) => {\n const {\n className,\n open = false,\n children,\n onOpen,\n onOpenChange,\n onClose,\n onKeyDown,\n fullScreen = false,\n disableCloseOnEscape = false,\n onClickOutside,\n disableCloseOnClickOutside = false,\n size,\n enableScrollChaining,\n onOpenAnimationStart,\n onOpenAnimationComplete,\n onCloseAnimationStart,\n onCloseAnimationComplete,\n ...rest\n } = props;\n\n const elRef = useRef<HTMLDialogElement>(null);\n const contentRef = useRef<HTMLDivElement>(null);\n const toasterRef = useRef<HTMLDivElement>(null);\n const [hasOpenPopover, setHasOpenPopover] =\n useState<DialogContextProps[\"hasOpenPopover\"]>(false);\n const id = useId();\n\n const { state, isOpenOrOpening } = useDialogTransitionStates(elRef, open, {\n onOpenAnimationStart: useCallback(() => {\n onOpenAnimationStart?.();\n }, [onOpenAnimationStart]),\n onOpenAnimationComplete: useCallback(() => {\n onOpenAnimationComplete?.();\n onOpen?.(); // DEPRECATED\n }, [onOpen, onOpenAnimationComplete]),\n onCloseAnimationStart: useCallback(() => {\n onCloseAnimationStart?.();\n }, [onCloseAnimationStart]),\n onCloseAnimationComplete: useCallback(() => {\n onCloseAnimationComplete?.();\n }, [onCloseAnimationComplete]),\n });\n\n // DEPRECATED\n const initial = useRef(true);\n useEffect(() => {\n if (initial.current) {\n initial.current = false;\n } else {\n onOpenChange?.(isOpenOrOpening);\n }\n }, [id, onOpenChange, isOpenOrOpening]);\n\n const classNames = cx([styles[\"dialog\"]], className, {\n [styles[\"closing\"]]: state === \"closing\",\n [styles[\"fullscreen\"]]: fullScreen,\n [styles[\"large\"]]: size === \"large\",\n });\n\n const { focusables } = useKeyboardFocusables(contentRef, {\n observeChange: true,\n });\n\n useDialogScrollLock({\n open: isOpenOrOpening,\n id,\n enableScrollChaining,\n elementRef: elRef,\n });\n\n useOnClickOutside({\n onOutsidePress: (e) => {\n if (!open) return;\n onClickOutside?.(e);\n },\n targets: [\n contentRef.current as HTMLElement,\n toasterRef.current as HTMLElement,\n ],\n onClose: () => {\n if (disableCloseOnClickOutside || !open) return;\n onClose?.();\n },\n });\n\n useEffect(() => {\n if (!isOpenOrOpening) return;\n if (!focusables) return;\n\n const activeElement = getActiveElement(document);\n if (!activeElement) return;\n\n if (\n activeElement.dataset.anv !== \"drawer-header-close-button\" &&\n (focusables.includes(activeElement) ||\n activeElement.tagName === \"DIALOG\")\n ) {\n return;\n }\n\n if (\n focusables[0]?.dataset.anv === \"dialog-header-close-button\" &&\n focusables[1]\n ) {\n focusables[1].focus();\n } else {\n focusables[0]?.focus();\n }\n }, [isOpenOrOpening, focusables]);\n\n const onKeyDownHandler = (e: KeyboardEvent<HTMLDialogElement>) => {\n onKeyDown?.(e);\n if (e.code === \"Escape\") {\n e.preventDefault();\n if (disableCloseOnEscape) return;\n if (hasOpenPopover) return;\n onClose?.();\n return;\n }\n\n if (e.code === \"Tab\") {\n if (e.shiftKey && e.target === focusables?.[0]) {\n e.preventDefault();\n (focusables[focusables.length - 1] as HTMLElement)?.focus();\n return;\n }\n if (e.target === focusables?.[focusables.length - 1] && !e.shiftKey) {\n e.preventDefault();\n focusables[0].focus();\n return;\n }\n }\n };\n\n return (\n // dialog element does seem to be interactive on MDN guideline\n // eslint-disable-next-line jsx-a11y/no-noninteractive-element-interactions\n <dialog\n className={classNames}\n data-anv=\"dialog\"\n data-anv-scroll-chaining={enableScrollChaining}\n data-anv-transition-state={state}\n ref={useMergeRefs([ref, elRef])}\n onKeyDown={onKeyDownHandler}\n {...rest}\n >\n <ToastProvider isDialogToaster={open}>\n <ToasterPopover>\n <ToasterContent id=\"dialog-toaster\" ref={toasterRef} />\n </ToasterPopover>\n </ToastProvider>\n <DialogContext.Provider\n value={{\n close: () => onClose?.(),\n ref: elRef,\n hasOpenPopover,\n setHasOpenPopover,\n }}\n >\n <section\n ref={contentRef}\n className={styles[\"container\"]}\n data-open={open}\n >\n {children}\n </section>\n </DialogContext.Provider>\n </dialog>\n );\n },\n);\n\nDialogElement.displayName = \"Dialog\";\n\n/**\n * Dialog component for creating modal dialogs and overlays.\n *\n * Features:\n * - Modal dialog with backdrop overlay\n * - Controlled and uncontrolled open state\n * - Smooth open/close animations\n * - Keyboard navigation and focus management\n * - Escape key and click outside to close\n * - Multiple size variants (medium, large, fullscreen)\n * - Scroll chaining support\n * - Toast integration for notifications\n * - Compound component pattern with Header, Footer, Content, and CancelButton sub-components\n * - Automatic tracking ID generation for analytics\n *\n * @example\n * <Dialog open={isOpen} onClose={() => setIsOpen(false)}>\n * <Dialog.Header>Confirm Action</Dialog.Header>\n * <Dialog.Content>Are you sure you want to proceed?</Dialog.Content>\n * <Dialog.Footer>\n * <Dialog.CancelButton>Cancel</Dialog.CancelButton>\n * <Button appearance=\"primary\">Confirm</Button>\n * </Dialog.Footer>\n * </Dialog>\n */\nexport const Dialog = Object.assign(DialogElement, {\n /**\n * DialogHeader component for the header section of a Dialog.\n *\n * Features:\n * - Displays dialog title with headline typography\n * - Includes close button with proper accessibility\n * - Sticky positioning for long content\n * - Consistent spacing and styling\n * - Automatic focus management\n * - Automatic tracking ID generation for analytics\n *\n * @example\n * <Dialog.Header>Confirm Delete</Dialog.Header>\n */\n Header: DialogHeader,\n /**\n * DialogFooter component for the footer section of a Dialog.\n *\n * Features:\n * - Container for dialog action buttons\n * - Optional sticky positioning for long content\n * - Consistent spacing and alignment\n * - Right-aligned button layout by default\n * - Flexible content area for custom layouts\n *\n * @example\n * <Dialog.Footer sticky>\n * <Dialog.CancelButton>Cancel</Dialog.CancelButton>\n * <Button appearance=\"primary\">Save</Button>\n * </Dialog.Footer>\n */\n Footer: DialogFooter,\n /**\n * DialogContent component for the main content area of a Dialog.\n *\n * Features:\n * - Main content container for dialog body\n * - Flexible height with overflow handling\n * - Consistent padding and spacing\n * - Responsive design\n * - Proper content scrolling for long content\n *\n * @example\n * <Dialog.Content>\n * <p>This is the main content of the dialog.</p>\n * </Dialog.Content>\n */\n Content: DialogContent,\n /**\n * DialogCancelButton component for cancel/close actions in a Dialog.\n *\n * Features:\n * - Button that automatically closes the dialog when clicked\n * - Extends all Button component props and functionality\n * - Proper accessibility with close dialog semantics\n * - Automatic focus management\n * - Consistent styling with other dialog elements\n * - Automatic tracking ID generation for analytics\n *\n * @example\n * <Dialog.CancelButton appearance=\"ghost\">Cancel</Dialog.CancelButton>\n */\n CancelButton: DialogCancelButton,\n});\n"],"names":["Close"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"Dialog-BHFLnFNQ.js","sources":["../src/components/Dialog/internal/useDialogContext.ts","../src/components/Dialog/DialogCancelButton.tsx","../src/components/Dialog/DialogHeader.tsx","../src/components/Dialog/DialogFooter.tsx","../src/components/Dialog/DialogContent.tsx","../src/components/Dialog/Dialog.tsx"],"sourcesContent":["import { useContext } from \"react\";\nimport { DialogContext } from \"./DialogContext\";\n\nexport function useDialogContext() {\n const context = useContext(DialogContext);\n if (!context) {\n throw new Error(\n \"useDialogContext must be used within a DialogContextProvider\",\n );\n }\n return context;\n}\n","import { MouseEvent, forwardRef } from \"react\";\nimport { Button, ButtonProps } from \"../Button\";\nimport { useDialogContext } from \"./internal/useDialogContext\";\nimport { DataTrackingId } from \"../../types\";\nimport { useTrackingId } from \"../../hooks\";\n\n/**\n * Props for the DialogCancelButton component\n * @extends ButtonProps\n */\nexport type DialogCancelButtonProps = ButtonProps & DataTrackingId;\n\n/**\n * DialogCancelButton component for cancel/close actions in a Dialog.\n *\n * Features:\n * - Button that automatically closes the dialog when clicked\n * - Extends all Button component props and functionality\n * - Proper accessibility with close dialog semantics\n * - Automatic focus management\n * - Consistent styling with other dialog elements\n *\n * @example\n * <Dialog.CancelButton appearance=\"ghost\">Cancel</Dialog.CancelButton>\n */\nexport const DialogCancelButton = forwardRef<\n HTMLButtonElement,\n DialogCancelButtonProps\n>((props, ref) => {\n const { onClick, ...rest } = props;\n const { close } = useDialogContext();\n const data = {\n title: props.title,\n appearance: props.appearance,\n size: props.size,\n type: props.type,\n };\n\n const trackingId = useTrackingId({\n name: \"DialogCancelButton\",\n data,\n hasOverride: !!props[\"data-tracking-id\"],\n });\n const onClickHandler = (e: MouseEvent<HTMLButtonElement>) => {\n onClick?.(e);\n close();\n };\n return (\n <Button\n aria-label=\"Close dialog\"\n data-anv=\"dialog-cancel-button\"\n data-tracking-id={trackingId}\n onClick={onClickHandler}\n ref={ref}\n {...rest}\n />\n );\n});\n\nDialogCancelButton.displayName = \"DialogCancelButton\";\n","import { ComponentPropsWithoutRef, forwardRef } from \"react\";\nimport Close from \"@servicetitan/hammer-icon/mdi/round/close.svg\";\nimport cx from \"classnames\";\n\nimport { Text } from \"../Text\";\nimport { DialogCancelButton } from \"./DialogCancelButton\";\n\nimport styles from \"./Dialog.module.scss\";\nimport { childrenToString } from \"../../internal/functions\";\nimport { useTrackingId } from \"../../hooks\";\nimport { DataTrackingId } from \"../../types\";\n\n/**\n * Props for the DialogHeader component\n * @extends ComponentPropsWithoutRef<\"header\">\n */\nexport type DialogHeaderProps = ComponentPropsWithoutRef<\"header\"> &\n DataTrackingId;\n\n/**\n * DialogHeader component for the header section of a Dialog.\n *\n * Features:\n * - Displays dialog title with headline typography\n * - Includes close button with proper accessibility\n * - Sticky positioning for long content\n * - Consistent spacing and styling\n * - Automatic focus management\n *\n * @example\n * <Dialog.Header>Confirm Delete</Dialog.Header>\n */\nexport const DialogHeader = forwardRef<HTMLDivElement, DialogHeaderProps>(\n (props: DialogHeaderProps, ref) => {\n const { children, className, ...rest } = props;\n const data = {\n children: childrenToString(props.children),\n };\n\n const trackingId = useTrackingId({\n name: \"Dialog\",\n data,\n hasOverride: !!props[\"data-tracking-id\"],\n });\n\n const headerClassNames = cx(className, styles[\"header\"]);\n\n return (\n <header\n className={headerClassNames}\n data-anv=\"dialog-header\"\n data-tracking-id={trackingId}\n ref={ref}\n {...rest}\n >\n <Text variant=\"headline\" el=\"h1\">\n {children}\n </Text>\n <span className={styles[\"close-container\"]}>\n <DialogCancelButton\n className={styles[\"close-button\"]}\n size=\"small\"\n appearance=\"ghost\"\n aria-label=\"Close dialog\"\n icon={Close}\n />\n </span>\n </header>\n );\n },\n);\n\nDialogHeader.displayName = \"DialogHeader\";\n","import { ComponentPropsWithoutRef, forwardRef } from \"react\";\nimport cx from \"classnames\";\n\nimport styles from \"./Dialog.module.scss\";\n\n/**\n * Props for the DialogFooter component\n * @extends ComponentPropsWithoutRef<\"footer\">\n */\nexport type DialogFooterProps = ComponentPropsWithoutRef<\"footer\"> & {\n /**\n * @default false\n */\n sticky?: boolean;\n};\n\n/**\n * DialogFooter component for the footer section of a Dialog.\n *\n * Features:\n * - Container for dialog action buttons\n * - Optional sticky positioning for long content\n * - Consistent spacing and alignment\n * - Right-aligned button layout by default\n * - Flexible content area for custom layouts\n *\n * @example\n * <Dialog.Footer sticky>\n * <Dialog.CancelButton>Cancel</Dialog.CancelButton>\n * <Button appearance=\"primary\">Save</Button>\n * </Dialog.Footer>\n */\nexport const DialogFooter = forwardRef<HTMLElement, DialogFooterProps>(\n (props, ref) => {\n const { children, className, sticky = false, ...rest } = props;\n\n const footerClassNames = cx(styles[\"footer\"], className, {\n [styles[\"sticky\"]]: sticky,\n });\n\n return (\n <footer\n className={footerClassNames}\n data-anv=\"dialog-footer\"\n ref={ref}\n {...rest}\n >\n {children}\n </footer>\n );\n },\n);\n\nDialogFooter.displayName = \"DialogFooter\";\n","import { ComponentPropsWithoutRef, forwardRef } from \"react\";\nimport cx from \"classnames\";\n\nimport styles from \"./Dialog.module.scss\";\n\n/**\n * Props for the DialogContent component\n * @extends ComponentPropsWithoutRef<\"div\">\n */\nexport type DialogContentProps = ComponentPropsWithoutRef<\"div\">;\n\n/**\n * DialogContent component for the main content area of a Dialog.\n *\n * Features:\n * - Main content container for dialog body\n * - Flexible height with overflow handling\n * - Consistent padding and spacing\n * - Responsive design\n * - Proper content scrolling for long content\n *\n * @example\n * <Dialog.Content>\n * <p>This is the main content of the dialog.</p>\n * </Dialog.Content>\n */\nexport const DialogContent = forwardRef<HTMLDivElement, DialogContentProps>(\n (props, ref) => {\n const { children, className, ...rest } = props;\n\n const contentClassNames = cx(styles[\"content\"], className);\n\n return (\n <div\n className={contentClassNames}\n data-anv=\"dialog-content\"\n ref={ref}\n {...rest}\n >\n {children}\n </div>\n );\n },\n);\n\nDialogContent.displayName = \"DialogContent\";\n","import {\n ComponentPropsWithoutRef,\n forwardRef,\n useCallback,\n useEffect,\n useId,\n useRef,\n useState,\n KeyboardEvent,\n} from \"react\";\nimport { DialogHeader } from \"./DialogHeader\";\nimport { DialogFooter } from \"./DialogFooter\";\nimport { DialogContent } from \"./DialogContent\";\nimport { DialogCancelButton } from \"./DialogCancelButton\";\nimport {\n OpenCloseTransitionStateEffects,\n useDialogScrollLock,\n useDialogTransitionStates,\n useKeyboardFocusables,\n useOnClickOutside,\n} from \"../../internal/hooks\";\nimport { DisableCloseOnEscapeOrClickProps, Size } from \"../../types\";\nimport { DialogContext, DialogContextProps } from \"./internal/DialogContext\";\nimport styles from \"./Dialog.module.scss\";\nimport { getActiveElement } from \"../../internal/functions\";\nimport { useMergeRefs } from \"../../hooks\";\nimport cx from \"classnames\";\n\nimport { ToastProvider } from \"../Toast/internal/ToastProvider\";\nimport { ToasterPopover } from \"../Toast/internal/ToasterPopover\";\nimport { ToasterContent } from \"../Toast/internal/Toaster\";\n\n/**\n * Props for the Dialog component\n * @extends ComponentPropsWithoutRef<\"dialog\">\n * @extends DialogTransitionStateEffects\n * @extends DisableCloseOnEscapeOrClickProps\n */\nexport type DialogProps = ComponentPropsWithoutRef<\"dialog\"> &\n OpenCloseTransitionStateEffects &\n DisableCloseOnEscapeOrClickProps & {\n /**\n * @default false\n */\n fullScreen?: boolean;\n /**\n * @default \"medium\"\n */\n size?: Extract<Size, \"medium\" | \"large\">;\n\n /**\n * @default false\n */\n open?: boolean;\n onClose?: () => void;\n /**\n * @deprecated - use onOpenAnimationStart or onOpenAnimationComplete instead\n */\n onOpen?: () => void;\n /**\n * @deprecated - use onOpenAnimationStart or onOpenAnimationComplete instead\n */\n onOpenChange?: (open: boolean) => void;\n /**\n * Callback when clicking outside the dialog\n */\n onClickOutside?: (e: globalThis.MouseEvent) => void;\n /**\n * Enables scroll chaining\n * @link https://developer.mozilla.org/en-US/docs/Glossary/Scroll_chaining\n */\n enableScrollChaining?: boolean;\n };\n\nexport const DialogElement = forwardRef<HTMLDialogElement, DialogProps>(\n (props, ref) => {\n const {\n className,\n open = false,\n children,\n onOpen,\n onOpenChange,\n onClose,\n onKeyDown,\n fullScreen = false,\n disableCloseOnEscape = false,\n onClickOutside,\n disableCloseOnClickOutside = false,\n size,\n enableScrollChaining,\n onOpenAnimationStart,\n onOpenAnimationComplete,\n onCloseAnimationStart,\n onCloseAnimationComplete,\n ...rest\n } = props;\n\n const elRef = useRef<HTMLDialogElement>(null);\n const contentRef = useRef<HTMLDivElement>(null);\n const toasterRef = useRef<HTMLDivElement>(null);\n const [hasOpenPopover, setHasOpenPopover] =\n useState<DialogContextProps[\"hasOpenPopover\"]>(false);\n const id = useId();\n\n const { state, isOpenOrOpening } = useDialogTransitionStates(elRef, open, {\n onOpenAnimationStart: useCallback(() => {\n onOpenAnimationStart?.();\n }, [onOpenAnimationStart]),\n onOpenAnimationComplete: useCallback(() => {\n onOpenAnimationComplete?.();\n onOpen?.(); // DEPRECATED\n }, [onOpen, onOpenAnimationComplete]),\n onCloseAnimationStart: useCallback(() => {\n onCloseAnimationStart?.();\n }, [onCloseAnimationStart]),\n onCloseAnimationComplete: useCallback(() => {\n onCloseAnimationComplete?.();\n }, [onCloseAnimationComplete]),\n });\n\n // DEPRECATED\n const initial = useRef(true);\n useEffect(() => {\n if (initial.current) {\n initial.current = false;\n } else {\n onOpenChange?.(isOpenOrOpening);\n }\n }, [id, onOpenChange, isOpenOrOpening]);\n\n const classNames = cx([styles[\"dialog\"]], className, {\n [styles[\"closing\"]]: state === \"closing\",\n [styles[\"fullscreen\"]]: fullScreen,\n [styles[\"large\"]]: size === \"large\",\n });\n\n const { focusables } = useKeyboardFocusables(contentRef, {\n observeChange: true,\n });\n\n useDialogScrollLock({\n open: isOpenOrOpening,\n id,\n enableScrollChaining,\n elementRef: elRef,\n });\n\n useOnClickOutside({\n onOutsidePress: (e) => {\n if (!open) return;\n onClickOutside?.(e);\n },\n targets: [\n contentRef.current as HTMLElement,\n toasterRef.current as HTMLElement,\n ],\n onClose: () => {\n if (disableCloseOnClickOutside || !open) return;\n onClose?.();\n },\n });\n\n useEffect(() => {\n if (!isOpenOrOpening) return;\n if (!focusables) return;\n\n const activeElement = getActiveElement(document);\n if (!activeElement) return;\n\n if (\n activeElement.dataset.anv !== \"drawer-header-close-button\" &&\n (focusables.includes(activeElement) ||\n activeElement.tagName === \"DIALOG\")\n ) {\n return;\n }\n\n if (\n focusables[0]?.dataset.anv === \"dialog-header-close-button\" &&\n focusables[1]\n ) {\n focusables[1].focus();\n } else {\n focusables[0]?.focus();\n }\n }, [isOpenOrOpening, focusables]);\n\n const onKeyDownHandler = (e: KeyboardEvent<HTMLDialogElement>) => {\n onKeyDown?.(e);\n if (e.code === \"Escape\") {\n e.preventDefault();\n if (disableCloseOnEscape) return;\n if (hasOpenPopover) return;\n onClose?.();\n return;\n }\n\n if (e.code === \"Tab\") {\n if (e.shiftKey && e.target === focusables?.[0]) {\n e.preventDefault();\n (focusables[focusables.length - 1] as HTMLElement)?.focus();\n return;\n }\n if (e.target === focusables?.[focusables.length - 1] && !e.shiftKey) {\n e.preventDefault();\n focusables[0].focus();\n return;\n }\n }\n };\n\n return (\n // dialog element does seem to be interactive on MDN guideline\n // eslint-disable-next-line jsx-a11y/no-noninteractive-element-interactions\n <dialog\n className={classNames}\n data-anv=\"dialog\"\n data-anv-scroll-chaining={enableScrollChaining}\n data-anv-transition-state={state}\n ref={useMergeRefs([ref, elRef])}\n onKeyDown={onKeyDownHandler}\n {...rest}\n >\n <ToastProvider isDialogToaster={open}>\n <ToasterPopover>\n <ToasterContent id=\"dialog-toaster\" ref={toasterRef} />\n </ToasterPopover>\n </ToastProvider>\n <DialogContext.Provider\n value={{\n close: () => onClose?.(),\n ref: elRef,\n hasOpenPopover,\n setHasOpenPopover,\n }}\n >\n <section\n ref={contentRef}\n className={styles[\"container\"]}\n data-open={open}\n >\n {children}\n </section>\n </DialogContext.Provider>\n </dialog>\n );\n },\n);\n\nDialogElement.displayName = \"Dialog\";\n\n/**\n * Dialog component for creating modal dialogs and overlays.\n *\n * Features:\n * - Modal dialog with backdrop overlay\n * - Controlled and uncontrolled open state\n * - Smooth open/close animations\n * - Keyboard navigation and focus management\n * - Escape key and click outside to close\n * - Multiple size variants (medium, large, fullscreen)\n * - Scroll chaining support\n * - Toast integration for notifications\n * - Compound component pattern with Header, Footer, Content, and CancelButton sub-components\n * - Automatic tracking ID generation for analytics\n *\n * @example\n * <Dialog open={isOpen} onClose={() => setIsOpen(false)}>\n * <Dialog.Header>Confirm Action</Dialog.Header>\n * <Dialog.Content>Are you sure you want to proceed?</Dialog.Content>\n * <Dialog.Footer>\n * <Dialog.CancelButton>Cancel</Dialog.CancelButton>\n * <Button appearance=\"primary\">Confirm</Button>\n * </Dialog.Footer>\n * </Dialog>\n */\nexport const Dialog = Object.assign(DialogElement, {\n /**\n * DialogHeader component for the header section of a Dialog.\n *\n * Features:\n * - Displays dialog title with headline typography\n * - Includes close button with proper accessibility\n * - Sticky positioning for long content\n * - Consistent spacing and styling\n * - Automatic focus management\n * - Automatic tracking ID generation for analytics\n *\n * @example\n * <Dialog.Header>Confirm Delete</Dialog.Header>\n */\n Header: DialogHeader,\n /**\n * DialogFooter component for the footer section of a Dialog.\n *\n * Features:\n * - Container for dialog action buttons\n * - Optional sticky positioning for long content\n * - Consistent spacing and alignment\n * - Right-aligned button layout by default\n * - Flexible content area for custom layouts\n *\n * @example\n * <Dialog.Footer sticky>\n * <Dialog.CancelButton>Cancel</Dialog.CancelButton>\n * <Button appearance=\"primary\">Save</Button>\n * </Dialog.Footer>\n */\n Footer: DialogFooter,\n /**\n * DialogContent component for the main content area of a Dialog.\n *\n * Features:\n * - Main content container for dialog body\n * - Flexible height with overflow handling\n * - Consistent padding and spacing\n * - Responsive design\n * - Proper content scrolling for long content\n *\n * @example\n * <Dialog.Content>\n * <p>This is the main content of the dialog.</p>\n * </Dialog.Content>\n */\n Content: DialogContent,\n /**\n * DialogCancelButton component for cancel/close actions in a Dialog.\n *\n * Features:\n * - Button that automatically closes the dialog when clicked\n * - Extends all Button component props and functionality\n * - Proper accessibility with close dialog semantics\n * - Automatic focus management\n * - Consistent styling with other dialog elements\n * - Automatic tracking ID generation for analytics\n *\n * @example\n * <Dialog.CancelButton appearance=\"ghost\">Cancel</Dialog.CancelButton>\n */\n CancelButton: DialogCancelButton,\n});\n"],"names":["Close"],"mappings":"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"}
|
package/dist/Dialog.js
CHANGED
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
export { D as Dialog, a as DialogCancelButton, b as DialogContent, c as DialogFooter, d as DialogHeader, D as default } from './Dialog-
|
|
1
|
+
export { D as Dialog, a as DialogCancelButton, b as DialogContent, c as DialogFooter, d as DialogHeader, D as default } from './Dialog-BHFLnFNQ.js';
|
|
2
2
|
//# sourceMappingURL=Dialog.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Divider-DJe8kLf2.js","sources":["../src/components/Divider/Divider.tsx"],"sourcesContent":["import { ComponentPropsWithoutRef, CSSProperties, forwardRef } from \"react\";\nimport classnames from \"classnames\";\nimport styles from \"./Divider.module.scss\";\nimport { LayoutUtilProps } from \"../../types\";\nimport { useLayoutPropsUtil } from \"../../internal/hooks\";\n\n/**\n * Props for the Divider component\n * @extends ComponentPropsWithoutRef<\"span\">\n * @extends LayoutUtilProps\n */\nexport type DividerProps = ComponentPropsWithoutRef<\"span\"> &\n LayoutUtilProps & {\n /**\n * Controls the alignment of content within the divider.\n * @default center\n */\n alignContent?: \"start\" | \"center\" | \"end\";\n /**\n * Controls the spacing around the divider.\n * @default \"0\"\n */\n spacing?:\n | \"0\"\n | \"half\"\n | \"1\"\n | \"2\"\n | \"3\"\n | \"4\"\n | \"5\"\n | \"6\"\n | \"8\"\n | \"12\"\n | 0\n | 0.5\n | 1\n | 2\n | 3\n | 4\n | 5\n | 6\n | 8\n | 12;\n /**\n * When true, renders the divider vertically instead of horizontally.\n * @default false\n */\n vertical?: boolean;\n };\n\n/**\n * Divider component for creating visual separators between content sections.\n *\n * Features:\n * - Horizontal and vertical divider orientations\n * - Optional content display within the divider\n * - Three content alignment options (start, center, end)\n * - Configurable spacing with predefined size tokens\n * - Supports layout utilities for positioning and spacing\n * - Flexible content placement with automatic line positioning\n * - Responsive design that adapts to container width\n *\n * @example\n * <Divider spacing=\"2\" alignContent=\"center\">\n * <b>Section Title</b>\n * </Divider>\n */\nexport const Divider = forwardRef<HTMLSpanElement, DividerProps>(\n (props, ref) => {\n const { layoutStyles, componentProps } = useLayoutPropsUtil(props);\n const { alignContent, ...restOfLayoutStyles } =\n layoutStyles as CSSProperties;\n const {\n children,\n className,\n spacing = \"0\",\n vertical = false,\n style,\n ...rest\n } = componentProps;\n const ContainerClasses = classnames(styles[\"container\"], className, {\n [styles[`spacing-${spacing === 0.5 ? \"half\" : spacing}`]]: spacing,\n [styles[\"vertical\"]]: vertical,\n [styles[\"align-start\"]]: alignContent === \"start\",\n [styles[\"align-end\"]]: alignContent === \"end\",\n });\n\n const contentOrdering = () => {\n if (children) {\n if (alignContent === \"start\") {\n return (\n <>\n <span className={styles[\"content\"]}>{children}</span>\n <hr className={styles[\"divider\"]} />\n </>\n );\n }\n if (alignContent === \"end\") {\n return (\n <>\n <hr className={styles[\"divider\"]} />\n <span className={styles[\"content\"]}>{children}</span>\n </>\n );\n }\n return (\n <>\n <hr className={styles[\"divider\"]} />\n <span className={styles[\"content\"]}>{children}</span>\n <hr className={styles[\"divider\"]} />\n </>\n );\n }\n return <hr className={styles[\"divider\"]} />;\n };\n\n const styleCombined = {\n ...style,\n ...restOfLayoutStyles,\n };\n\n return (\n <span\n data-anv=\"divider\"\n ref={ref}\n style={styleCombined}\n {...rest}\n className={ContainerClasses}\n >\n {contentOrdering()}\n </span>\n );\n },\n);\n\nDivider.displayName = \"Divider\";\n"],"names":["classnames"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;AAmEO,MAAM,
|
|
1
|
+
{"version":3,"file":"Divider-DJe8kLf2.js","sources":["../src/components/Divider/Divider.tsx"],"sourcesContent":["import { ComponentPropsWithoutRef, CSSProperties, forwardRef } from \"react\";\nimport classnames from \"classnames\";\nimport styles from \"./Divider.module.scss\";\nimport { LayoutUtilProps } from \"../../types\";\nimport { useLayoutPropsUtil } from \"../../internal/hooks\";\n\n/**\n * Props for the Divider component\n * @extends ComponentPropsWithoutRef<\"span\">\n * @extends LayoutUtilProps\n */\nexport type DividerProps = ComponentPropsWithoutRef<\"span\"> &\n LayoutUtilProps & {\n /**\n * Controls the alignment of content within the divider.\n * @default center\n */\n alignContent?: \"start\" | \"center\" | \"end\";\n /**\n * Controls the spacing around the divider.\n * @default \"0\"\n */\n spacing?:\n | \"0\"\n | \"half\"\n | \"1\"\n | \"2\"\n | \"3\"\n | \"4\"\n | \"5\"\n | \"6\"\n | \"8\"\n | \"12\"\n | 0\n | 0.5\n | 1\n | 2\n | 3\n | 4\n | 5\n | 6\n | 8\n | 12;\n /**\n * When true, renders the divider vertically instead of horizontally.\n * @default false\n */\n vertical?: boolean;\n };\n\n/**\n * Divider component for creating visual separators between content sections.\n *\n * Features:\n * - Horizontal and vertical divider orientations\n * - Optional content display within the divider\n * - Three content alignment options (start, center, end)\n * - Configurable spacing with predefined size tokens\n * - Supports layout utilities for positioning and spacing\n * - Flexible content placement with automatic line positioning\n * - Responsive design that adapts to container width\n *\n * @example\n * <Divider spacing=\"2\" alignContent=\"center\">\n * <b>Section Title</b>\n * </Divider>\n */\nexport const Divider = forwardRef<HTMLSpanElement, DividerProps>(\n (props, ref) => {\n const { layoutStyles, componentProps } = useLayoutPropsUtil(props);\n const { alignContent, ...restOfLayoutStyles } =\n layoutStyles as CSSProperties;\n const {\n children,\n className,\n spacing = \"0\",\n vertical = false,\n style,\n ...rest\n } = componentProps;\n const ContainerClasses = classnames(styles[\"container\"], className, {\n [styles[`spacing-${spacing === 0.5 ? \"half\" : spacing}`]]: spacing,\n [styles[\"vertical\"]]: vertical,\n [styles[\"align-start\"]]: alignContent === \"start\",\n [styles[\"align-end\"]]: alignContent === \"end\",\n });\n\n const contentOrdering = () => {\n if (children) {\n if (alignContent === \"start\") {\n return (\n <>\n <span className={styles[\"content\"]}>{children}</span>\n <hr className={styles[\"divider\"]} />\n </>\n );\n }\n if (alignContent === \"end\") {\n return (\n <>\n <hr className={styles[\"divider\"]} />\n <span className={styles[\"content\"]}>{children}</span>\n </>\n );\n }\n return (\n <>\n <hr className={styles[\"divider\"]} />\n <span className={styles[\"content\"]}>{children}</span>\n <hr className={styles[\"divider\"]} />\n </>\n );\n }\n return <hr className={styles[\"divider\"]} />;\n };\n\n const styleCombined = {\n ...style,\n ...restOfLayoutStyles,\n };\n\n return (\n <span\n data-anv=\"divider\"\n ref={ref}\n style={styleCombined}\n {...rest}\n className={ContainerClasses}\n >\n {contentOrdering()}\n </span>\n );\n },\n);\n\nDivider.displayName = \"Divider\";\n"],"names":["classnames"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;AAmEO,MAAM,OAAA,GAAU,UAAA;AAAA,EACrB,CAAC,OAAO,GAAA,KAAQ;AACd,IAAA,MAAM,EAAE,YAAA,EAAc,cAAA,EAAe,GAAI,mBAAmB,KAAK,CAAA;AACjE,IAAA,MAAM,EAAE,YAAA,EAAc,GAAG,kBAAA,EAAmB,GAC1C,YAAA;AACF,IAAA,MAAM;AAAA,MACJ,QAAA;AAAA,MACA,SAAA;AAAA,MACA,OAAA,GAAU,GAAA;AAAA,MACV,QAAA,GAAW,KAAA;AAAA,MACX,KAAA;AAAA,MACA,GAAG;AAAA,KACL,GAAI,cAAA;AACJ,IAAA,MAAM,gBAAA,GAAmBA,EAAA,CAAW,MAAA,CAAO,WAAW,GAAG,SAAA,EAAW;AAAA,MAClE,CAAC,OAAO,CAAA,QAAA,EAAW,OAAA,KAAY,MAAM,MAAA,GAAS,OAAO,CAAA,CAAE,CAAC,GAAG,OAAA;AAAA,MAC3D,CAAC,MAAA,CAAO,UAAU,CAAC,GAAG,QAAA;AAAA,MACtB,CAAC,MAAA,CAAO,aAAa,CAAC,GAAG,YAAA,KAAiB,OAAA;AAAA,MAC1C,CAAC,MAAA,CAAO,WAAW,CAAC,GAAG,YAAA,KAAiB;AAAA,KACzC,CAAA;AAED,IAAA,MAAM,kBAAkB,MAAM;AAC5B,MAAA,IAAI,QAAA,EAAU;AACZ,QAAA,IAAI,iBAAiB,OAAA,EAAS;AAC5B,UAAA,uBACE,IAAA,CAAA,QAAA,EAAA,EACE,QAAA,EAAA;AAAA,4BAAA,GAAA,CAAC,MAAA,EAAA,EAAK,SAAA,EAAW,MAAA,CAAO,SAAS,GAAI,QAAA,EAAS,CAAA;AAAA,4BAC9C,GAAA,CAAC,IAAA,EAAA,EAAG,SAAA,EAAW,MAAA,CAAO,SAAS,CAAA,EAAG;AAAA,WAAA,EACpC,CAAA;AAAA,QAEJ;AACA,QAAA,IAAI,iBAAiB,KAAA,EAAO;AAC1B,UAAA,uBACE,IAAA,CAAA,QAAA,EAAA,EACE,QAAA,EAAA;AAAA,4BAAA,GAAA,CAAC,IAAA,EAAA,EAAG,SAAA,EAAW,MAAA,CAAO,SAAS,CAAA,EAAG,CAAA;AAAA,gCACjC,MAAA,EAAA,EAAK,SAAA,EAAW,MAAA,CAAO,SAAS,GAAI,QAAA,EAAS;AAAA,WAAA,EAChD,CAAA;AAAA,QAEJ;AACA,QAAA,uBACE,IAAA,CAAA,QAAA,EAAA,EACE,QAAA,EAAA;AAAA,0BAAA,GAAA,CAAC,IAAA,EAAA,EAAG,SAAA,EAAW,MAAA,CAAO,SAAS,CAAA,EAAG,CAAA;AAAA,8BACjC,MAAA,EAAA,EAAK,SAAA,EAAW,MAAA,CAAO,SAAS,GAAI,QAAA,EAAS,CAAA;AAAA,0BAC9C,GAAA,CAAC,IAAA,EAAA,EAAG,SAAA,EAAW,MAAA,CAAO,SAAS,CAAA,EAAG;AAAA,SAAA,EACpC,CAAA;AAAA,MAEJ;AACA,MAAA,uBAAO,GAAA,CAAC,IAAA,EAAA,EAAG,SAAA,EAAW,MAAA,CAAO,SAAS,CAAA,EAAG,CAAA;AAAA,IAC3C,CAAA;AAEA,IAAA,MAAM,aAAA,GAAgB;AAAA,MACpB,GAAG,KAAA;AAAA,MACH,GAAG;AAAA,KACL;AAEA,IAAA,uBACE,GAAA;AAAA,MAAC,MAAA;AAAA,MAAA;AAAA,QACC,UAAA,EAAS,SAAA;AAAA,QACT,GAAA;AAAA,QACA,KAAA,EAAO,aAAA;AAAA,QACN,GAAG,IAAA;AAAA,QACJ,SAAA,EAAW,gBAAA;AAAA,QAEV,QAAA,EAAA,eAAA;AAAgB;AAAA,KACnB;AAAA,EAEJ;AACF;AAEA,OAAA,CAAQ,WAAA,GAAc,SAAA;;;;"}
|
package/dist/Dnd.js
CHANGED
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
export { D as Dnd } from './index-
|
|
1
|
+
export { D as Dnd } from './index-DrM3iid4.js';
|
|
2
2
|
//# sourceMappingURL=Dnd.js.map
|
package/dist/DndSort.js
CHANGED
|
@@ -1,9 +1,9 @@
|
|
|
1
1
|
import { jsx, jsxs, Fragment } from 'react/jsx-runtime';
|
|
2
2
|
import React__default, { useLayoutEffect, useEffect, useRef, useMemo, useCallback, useState, memo, useReducer, createContext, useContext, forwardRef, cloneElement } from 'react';
|
|
3
3
|
import { unstable_batchedUpdates, createPortal } from 'react-dom';
|
|
4
|
-
import { s as styles, a as DndSortLine, b as DndHandleButton, c as DndHandle, D as Dnd } from './index-
|
|
4
|
+
import { s as styles, a as DndSortLine, b as DndHandleButton, c as DndHandle, D as Dnd } from './index-DrM3iid4.js';
|
|
5
5
|
import { c as cx } from './index-tZvMCc77.js';
|
|
6
|
-
import { B as ButtonCompound } from './ButtonCompound-
|
|
6
|
+
import { B as ButtonCompound } from './ButtonCompound-BbPK-Xjj.js';
|
|
7
7
|
import { C as Card } from './Card-vTYeSkxt.js';
|
|
8
8
|
import { F as Flex } from './Flex-BdQMekvA.js';
|
|
9
9
|
import { s as sizeToToken } from './useLayoutPropsUtil-DjD5IMh0.js';
|