@servicetitan/anvil2 1.37.2 → 1.38.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/CHANGELOG.md +21 -0
- package/dist/{Alert-DMk5bG5T-kR7Uzp64.js → Alert-C3WoRkeN-D_6Yf63F.js} +5 -5
- package/dist/{Alert-DMk5bG5T-kR7Uzp64.js.map → Alert-C3WoRkeN-D_6Yf63F.js.map} +1 -1
- package/dist/{Alert-BsFFiu7g.js → Alert-DipY5OlC.js} +3 -2
- package/dist/Alert-DipY5OlC.js.map +1 -0
- package/dist/Alert.js +1 -1
- package/dist/{Announcement-BawOyXV3.js → Announcement-ButSjdLn.js} +5 -4
- package/dist/Announcement-ButSjdLn.js.map +1 -0
- package/dist/Announcement.js +1 -1
- package/dist/{AnvilProvider-DJ4lYJVW.js → AnvilProvider-Lh8YtV03.js} +2 -2
- package/dist/{AnvilProvider-DJ4lYJVW.js.map → AnvilProvider-Lh8YtV03.js.map} +1 -1
- package/dist/AnvilProvider.js +1 -1
- package/dist/{Avatar-C2IfIAxL-BUio7c00.js → Avatar-B20IdOEO-Di14brYV.js} +23 -4
- package/dist/Avatar-B20IdOEO-Di14brYV.js.map +1 -0
- package/dist/Avatar-hNOToS9S.js +42 -0
- package/dist/Avatar-hNOToS9S.js.map +1 -0
- package/dist/Avatar.js +1 -1
- package/dist/{Badge-Bko3Cw3L.js → Badge-7aZfE-LH.js} +3 -2
- package/dist/{Badge-Bko3Cw3L.js.map → Badge-7aZfE-LH.js.map} +1 -1
- package/dist/Badge.js +1 -1
- package/dist/{Breadcrumbs-BP5QXVje.js → Breadcrumbs-DJbCkSeD.js} +35 -5
- package/dist/Breadcrumbs-DJbCkSeD.js.map +1 -0
- package/dist/Breadcrumbs.js +1 -1
- package/dist/{Button-C-QpfgfF-CRBE7KiD.js → Button-BaHFf1AT-BQy-PFB5.js} +3 -3
- package/dist/{Button-C-QpfgfF-CRBE7KiD.js.map → Button-BaHFf1AT-BQy-PFB5.js.map} +1 -1
- package/dist/{Button-NTFmgcbr.js → Button-DMQKV2sV.js} +4 -3
- package/dist/Button-DMQKV2sV.js.map +1 -0
- package/dist/Button.js +1 -1
- package/dist/{ButtonCompound-Dp5J4W81-BkZ68L4-.js → ButtonCompound-Cs2A5X-Z-Dl3InVab.js} +2 -2
- package/dist/{ButtonCompound-Dp5J4W81-BkZ68L4-.js.map → ButtonCompound-Cs2A5X-Z-Dl3InVab.js.map} +1 -1
- package/dist/{ButtonCompound-DlgIyoB9.js → ButtonCompound-DGuF0zzT.js} +3 -2
- package/dist/ButtonCompound-DGuF0zzT.js.map +1 -0
- package/dist/ButtonCompound.js +1 -1
- package/dist/{ButtonLink-CSaxjhI2-KLVGwWjE.js → ButtonLink-5qlX0uZx-b9H7MGhk.js} +6 -4
- package/dist/ButtonLink-5qlX0uZx-b9H7MGhk.js.map +1 -0
- package/dist/{ButtonLink-B_uUWBLY.js → ButtonLink-B0NJuVk5.js} +4 -3
- package/dist/ButtonLink-B0NJuVk5.js.map +1 -0
- package/dist/ButtonLink.js +1 -1
- package/dist/{ButtonToggle-CvXIngRd-BiWpOOWr.js → ButtonToggle-Bm4KRl3o-B1-LbfjY.js} +3 -3
- package/dist/{ButtonToggle-CvXIngRd-BiWpOOWr.js.map → ButtonToggle-Bm4KRl3o-B1-LbfjY.js.map} +1 -1
- package/dist/{ButtonToggle-D3tcTRq9.js → ButtonToggle-CKVyEODc.js} +3 -2
- package/dist/ButtonToggle-CKVyEODc.js.map +1 -0
- package/dist/ButtonToggle.js +1 -1
- package/dist/{Calendar-Bn00Dnc--DcCNi1xz.js → Calendar-CohGSWFp-DFYJkf7Y.js} +9 -9
- package/dist/{Calendar-Bn00Dnc--DcCNi1xz.js.map → Calendar-CohGSWFp-DFYJkf7Y.js.map} +1 -1
- package/dist/Calendar-jl0s6W7p.js +130 -0
- package/dist/Calendar-jl0s6W7p.js.map +1 -0
- package/dist/Calendar.js +1 -1
- package/dist/{Card-DgxiRqS_.js → Card-U2IJPk8B.js} +3 -2
- package/dist/Card-U2IJPk8B.js.map +1 -0
- package/dist/{Card-BNT0qpxt-OPUNKZW6.js → Card-ZknG-yim-7W6rYSFV.js} +3 -3
- package/dist/{Card-BNT0qpxt-OPUNKZW6.js.map → Card-ZknG-yim-7W6rYSFV.js.map} +1 -1
- package/dist/Card.js +1 -1
- package/dist/{Checkbox-BIlp8xmW.js → Checkbox-DbDwtefR.js} +25 -2
- package/dist/Checkbox-DbDwtefR.js.map +1 -0
- package/dist/{Checkbox-CRurfeRE-BR_NXfh6.js → Checkbox-TIcImbEx-EgjesTNn.js} +6 -5
- package/dist/Checkbox-TIcImbEx-EgjesTNn.js.map +1 -0
- package/dist/Checkbox.js +1 -1
- package/dist/{Chip-BQ58RQ3v.js → Chip-BlLavyIK.js} +2 -2
- package/dist/Chip-BlLavyIK.js.map +1 -0
- package/dist/{Chip-DwiMFYBm-CIDM1d8e.js → Chip-_daV8CmM-CTke7zH4.js} +5 -5
- package/dist/{Chip-DwiMFYBm-CIDM1d8e.js.map → Chip-_daV8CmM-CTke7zH4.js.map} +1 -1
- package/dist/Chip.js +1 -1
- package/dist/{Combobox-Dde7-7tv.js → Combobox-7ADxZKDE.js} +187 -24
- package/dist/Combobox-7ADxZKDE.js.map +1 -0
- package/dist/Combobox.js +1 -1
- package/dist/{DateField-D-eVP6xh.js → DateField-CUO_26rh.js} +18 -13
- package/dist/DateField-CUO_26rh.js.map +1 -0
- package/dist/DateField.js +1 -1
- package/dist/{DaysOfTheWeek-Dz-aZ-LW.js → DaysOfTheWeek-CEKoAJSv.js} +7 -7
- package/dist/DaysOfTheWeek-CEKoAJSv.js.map +1 -0
- package/dist/DaysOfTheWeek.js +1 -1
- package/dist/{Details-ChZdA5Yo.js → Details-DVg0EOkv.js} +51 -3
- package/dist/Details-DVg0EOkv.js.map +1 -0
- package/dist/Details.js +1 -1
- package/dist/{Dialog-DJhN8QWP.js → Dialog-D6zpW-GE.js} +125 -4
- package/dist/Dialog-D6zpW-GE.js.map +1 -0
- package/dist/Dialog.js +1 -1
- package/dist/{Divider-Crum3dyV.js → Divider-CN36wX4s.js} +3 -2
- package/dist/Divider-CN36wX4s.js.map +1 -0
- package/dist/Divider.js +1 -1
- package/dist/Dnd.js +1 -1
- package/dist/{DndSort-Dy_D1EnT.js → DndSort-Cl0FCNQm.js} +6 -6
- package/dist/{DndSort-Dy_D1EnT.js.map → DndSort-Cl0FCNQm.js.map} +1 -1
- package/dist/DndSort.js +1 -1
- package/dist/Drawer-qb7Q0BAm.js +142 -0
- package/dist/Drawer-qb7Q0BAm.js.map +1 -0
- package/dist/Drawer.js +1 -1
- package/dist/{EditCard-BNwoKJ_6.js → EditCard-C0hD1VPA.js} +7 -6
- package/dist/EditCard-C0hD1VPA.js.map +1 -0
- package/dist/EditCard.js +1 -1
- package/dist/{FieldMessage-CERWyhwG.js → FieldMessage-Cg3zcgk5.js} +2 -2
- package/dist/FieldMessage-Cg3zcgk5.js.map +1 -0
- package/dist/{FieldMessage-Js4e1ezw-DZ6YDx24.js → FieldMessage-ChFXWVDb-loVSCnCM.js} +3 -3
- package/dist/{FieldMessage-Js4e1ezw-DZ6YDx24.js.map → FieldMessage-ChFXWVDb-loVSCnCM.js.map} +1 -1
- package/dist/FieldMessage.js +1 -1
- package/dist/{Flex-EX9xObMl-BPBQ7nb5.js → Flex-CiK7uNUu-BfxHG4L0.js} +3 -3
- package/dist/{Flex-EX9xObMl-BPBQ7nb5.js.map → Flex-CiK7uNUu-BfxHG4L0.js.map} +1 -1
- package/dist/{Flex-DT1l-wJc.js → Flex-Ln6PmaDl.js} +3 -2
- package/dist/Flex-Ln6PmaDl.js.map +1 -0
- package/dist/Flex.js +1 -1
- package/dist/Grid-CMcDeSYT.js +33 -0
- package/dist/Grid-CMcDeSYT.js.map +1 -0
- package/dist/{Grid-BmNHm7Fa.js → Grid-DFAd8mTe.js} +2 -2
- package/dist/{Grid-BmNHm7Fa.js.map → Grid-DFAd8mTe.js.map} +1 -1
- package/dist/Grid.js +1 -1
- package/dist/{HammerProvider-BEJW4XcH-BBKdl0zs.js → HammerProvider-CYP98rq3-Dd9GVIyP.js} +3 -3
- package/dist/{HammerProvider-BEJW4XcH-BBKdl0zs.js.map → HammerProvider-CYP98rq3-Dd9GVIyP.js.map} +1 -1
- package/dist/Helper-C9sHaTrI-C5fAsK6i.js +46 -0
- package/dist/Helper-C9sHaTrI-C5fAsK6i.js.map +1 -0
- package/dist/Helper-C9sHaTrI.css +21 -0
- package/dist/{Icon-BrdmZw1i-CG-LzgEz.js → Icon-B6HmlQiR-BxQkO3X5.js} +3 -3
- package/dist/{Icon-BrdmZw1i-CG-LzgEz.js.map → Icon-B6HmlQiR-BxQkO3X5.js.map} +1 -1
- package/dist/{Icon-CcUV8glf.js → Icon-BgKqBmlj.js} +3 -2
- package/dist/Icon-BgKqBmlj.js.map +1 -0
- package/dist/Icon.js +1 -1
- package/dist/{InputMask-CeqX68uX.js → InputMask-DKPqOpHs.js} +3 -2
- package/dist/InputMask-DKPqOpHs.js.map +1 -0
- package/dist/InputMask-kJ-hlK0O-Ctwa0U7r.js +231 -0
- package/dist/InputMask-kJ-hlK0O-Ctwa0U7r.js.map +1 -0
- package/dist/InputMask.js +1 -1
- package/dist/Layout-CUUb2PVr.js.map +1 -1
- package/dist/{Link-K3nk4QAp.js → Link-DZa0wmkA.js} +3 -3
- package/dist/Link-DZa0wmkA.js.map +1 -0
- package/dist/{Link-CVN5Mwtx-B08PO1ef.js → Link-Dqp_XXl_-Bv20l_tY.js} +4 -4
- package/dist/{Link-CVN5Mwtx-B08PO1ef.js.map → Link-Dqp_XXl_-Bv20l_tY.js.map} +1 -1
- package/dist/Link.js +1 -1
- package/dist/{ListView-zlg5FlKW.js → ListView-0xHc5wT6.js} +87 -47
- package/dist/ListView-0xHc5wT6.js.map +1 -0
- package/dist/ListView.js +1 -1
- package/dist/{Listbox-DLlT8qbJ-BvhkfmIf.js → Listbox-BvJLSAVO-Br5k6fmq.js} +51 -10
- package/dist/Listbox-BvJLSAVO-Br5k6fmq.js.map +1 -0
- package/dist/Listbox-dVARiucB.js +67 -0
- package/dist/Listbox-dVARiucB.js.map +1 -0
- package/dist/Listbox.js +1 -1
- package/dist/{LocalizationProvider-FkvhW-le-DPTpcI0N.js → LocalizationProvider-VtRAfGBT-Bo8XuFoE.js} +2 -2
- package/dist/{LocalizationProvider-FkvhW-le-DPTpcI0N.js.map → LocalizationProvider-VtRAfGBT-Bo8XuFoE.js.map} +1 -1
- package/dist/LocalizationProvider.js +1 -1
- package/dist/{Menu-BjzTwENs.js → Menu-BAuADOyt.js} +60 -10
- package/dist/Menu-BAuADOyt.js.map +1 -0
- package/dist/Menu.js +1 -1
- package/dist/{Overflow-vc1mxjUD.js → Overflow-B6rIOkAI.js} +27 -2
- package/dist/Overflow-B6rIOkAI.js.map +1 -0
- package/dist/{Overflow-ENfRRD_5-DLHLZ02e.js → Overflow-BrXwlYpn-CtqaiNgb.js} +25 -4
- package/dist/Overflow-BrXwlYpn-CtqaiNgb.js.map +1 -0
- package/dist/Overflow.js +1 -1
- package/dist/{Page-CSM-a2UE.js → Page-CtwsyE3i.js} +131 -15
- package/dist/Page-CtwsyE3i.js.map +1 -0
- package/dist/Page.js +1 -1
- package/dist/Popover-Bnkwq99S.js +135 -0
- package/dist/Popover-Bnkwq99S.js.map +1 -0
- package/dist/{Popover-CpyYXmal-I-E-B4u8.js → Popover-VztF0YHt-ci3tYiye.js} +80 -8
- package/dist/Popover-VztF0YHt-ci3tYiye.js.map +1 -0
- package/dist/Popover.js +1 -1
- package/dist/{ProgressBar-B25Wxpaf.js → ProgressBar-BotOFymw.js} +3 -2
- package/dist/ProgressBar-BotOFymw.js.map +1 -0
- package/dist/{ProgressBar-CeClhdcf-Dcft7ZjO.js → ProgressBar-Cfi5zZRy-BpESsdh_.js} +164 -99
- package/dist/ProgressBar-Cfi5zZRy-BpESsdh_.js.map +1 -0
- package/dist/ProgressBar-Cfi5zZRy.css +671 -0
- package/dist/ProgressBar.js +1 -1
- package/dist/{Radio-BlMDLvPw-DUeywcYR.js → Radio-7U7IBI58-BDhdZJoC.js} +25 -5
- package/dist/Radio-7U7IBI58-BDhdZJoC.js.map +1 -0
- package/dist/Radio-D4rRt1a6.js +66 -0
- package/dist/Radio-D4rRt1a6.js.map +1 -0
- package/dist/Radio.js +1 -1
- package/dist/{SearchField-D3z4LjJg.js → SearchField-Bz4HPxCQ.js} +5 -4
- package/dist/SearchField-Bz4HPxCQ.js.map +1 -0
- package/dist/SearchField.js +1 -1
- package/dist/{SegmentedControl-D_ADGpVy.js → SegmentedControl-DKMQuf7s.js} +41 -2
- package/dist/SegmentedControl-DKMQuf7s.js.map +1 -0
- package/dist/SegmentedControl.js +1 -1
- package/dist/{SelectCard-D26y01WZ-BWN9G09J.js → SelectCard-B5EqtxOK-CpCgVjV8.js} +46 -17
- package/dist/SelectCard-B5EqtxOK-CpCgVjV8.js.map +1 -0
- package/dist/SelectCard.js +1 -1
- package/dist/SelectCardGroup-DsHZgCqA.js +49 -0
- package/dist/SelectCardGroup-DsHZgCqA.js.map +1 -0
- package/dist/{SideNav-C7wc1_JK.js → SideNav-DEoGpeqJ.js} +130 -10
- package/dist/SideNav-DEoGpeqJ.js.map +1 -0
- package/dist/SideNav.js +1 -1
- package/dist/Skeleton-COxTdwjO.js +398 -0
- package/dist/Skeleton-COxTdwjO.js.map +1 -0
- package/dist/Skeleton.js +1 -1
- package/dist/{Spinner-Bc5-_6pK.js → Spinner-C1r3COiQ.js} +2 -1
- package/dist/Spinner-C1r3COiQ.js.map +1 -0
- package/dist/Spinner.js +1 -1
- package/dist/SrOnly-C_I8eH4C.js.map +1 -1
- package/dist/{Stepper-Bp0w8eRW.js → Stepper-CwIV7ZiT.js} +281 -6
- package/dist/Stepper-CwIV7ZiT.js.map +1 -0
- package/dist/Stepper.js +1 -1
- package/dist/{Switch-BbHIwrGc.js → Switch-Dd9tJFmG.js} +20 -10
- package/dist/Switch-Dd9tJFmG.js.map +1 -0
- package/dist/Switch.css +23 -24
- package/dist/Switch.js +1 -1
- package/dist/{Tab-DcOQTX5Z.js → Tab-BSC7e4rM.js} +127 -10
- package/dist/Tab-BSC7e4rM.js.map +1 -0
- package/dist/Tab.js +1 -1
- package/dist/{Text-BDYfD8j4.js → Text-B91g6xKn.js} +3 -2
- package/dist/Text-B91g6xKn.js.map +1 -0
- package/dist/{Text-CN_-FF7J-Dzoy8A70.js → Text-DCvcLCvf-DlmnnjTR.js} +3 -3
- package/dist/{Text-CN_-FF7J-Dzoy8A70.js.map → Text-DCvcLCvf-DlmnnjTR.js.map} +1 -1
- package/dist/Text.js +1 -1
- package/dist/{TextField-Ds9EKvSs.js → TextField-BYyyw3m2.js} +3 -2
- package/dist/{TextField-Ds9EKvSs.js.map → TextField-BYyyw3m2.js.map} +1 -1
- package/dist/{TextField-Bp1q4hMI-2jGZG2k2.js → TextField-CGJtMoil-CJqYM83o.js} +4 -3
- package/dist/TextField-CGJtMoil-CJqYM83o.js.map +1 -0
- package/dist/TextField.js +1 -1
- package/dist/{Textarea-CMELRfU8.js → Textarea-AczEXhHB.js} +5 -3
- package/dist/Textarea-AczEXhHB.js.map +1 -0
- package/dist/Textarea.js +1 -1
- package/dist/{ThemeProvider-D2x18Y1l.js → ThemeProvider-BKave7Ha.js} +2 -2
- package/dist/{ThemeProvider-D2x18Y1l.js.map → ThemeProvider-BKave7Ha.js.map} +1 -1
- package/dist/{ThemeProvider-BIeaAmWx-DVYOQ6bw.js → ThemeProvider-CR67FJg0-DYVRlJRA.js} +3 -3
- package/dist/{ThemeProvider-BIeaAmWx-DVYOQ6bw.js.map → ThemeProvider-CR67FJg0-DYVRlJRA.js.map} +1 -1
- package/dist/ThemeProvider.js +1 -1
- package/dist/Toast.js +1 -1
- package/dist/{Toolbar-CYwR6GQG.js → Toolbar-Cu3u0TRX.js} +183 -14
- package/dist/Toolbar-Cu3u0TRX.js.map +1 -0
- package/dist/Toolbar.css +1 -11
- package/dist/Toolbar.js +1 -1
- package/dist/Tooltip-BL_bgvwA.js +73 -0
- package/dist/Tooltip-BL_bgvwA.js.map +1 -0
- package/dist/Tooltip.js +1 -1
- package/dist/assets/icons/st/insurance_work_queue.svg +1 -0
- package/dist/assets/icons/st/production_work_queue.svg +1 -0
- package/dist/assets/icons/st.ts +2 -0
- package/dist/components/Alert/Alert.d.ts +37 -0
- package/dist/components/Announcement/Announcement.d.ts +37 -0
- package/dist/components/Avatar/Avatar.d.ts +73 -0
- package/dist/components/Badge/Badge.d.ts +27 -0
- package/dist/components/Breadcrumbs/Breadcrumbs.d.ts +39 -0
- package/dist/components/Button/Button.d.ts +28 -0
- package/dist/components/ButtonCompound/ButtonCompound.d.ts +24 -0
- package/dist/components/ButtonLink/ButtonLink.d.ts +30 -0
- package/dist/components/ButtonToggle/ButtonToggle.d.ts +32 -0
- package/dist/components/Calendar/Calendar.d.ts +114 -0
- package/dist/components/Card/Card.d.ts +24 -0
- package/dist/components/Checkbox/Checkbox.d.ts +77 -0
- package/dist/components/Chip/Chip.d.ts +34 -0
- package/dist/components/Combobox/Combobox.d.ts +442 -2
- package/dist/components/DateField/DateField.d.ts +65 -0
- package/dist/components/DaysOfTheWeek/DaysOfTheWeek.d.ts +44 -6
- package/dist/components/Details/Details.d.ts +68 -0
- package/dist/components/Dialog/Dialog.d.ts +178 -0
- package/dist/components/Divider/Divider.d.ts +24 -0
- package/dist/components/Drawer/Drawer.d.ts +200 -0
- package/dist/components/EditCard/EditCard.d.ts +50 -0
- package/dist/components/FieldMessage/FieldMessage.d.ts +31 -0
- package/dist/components/Flex/Flex.d.ts +48 -0
- package/dist/components/Grid/Grid.d.ts +74 -0
- package/dist/components/Icon/Icon.d.ts +39 -0
- package/dist/components/InputMask/InputMask.d.ts +57 -0
- package/dist/components/Layout/Layout.d.ts +131 -0
- package/dist/components/Link/Link.d.ts +47 -0
- package/dist/components/ListView/ListView.d.ts +85 -0
- package/dist/components/Listbox/Listbox.d.ts +124 -0
- package/dist/components/Menu/Menu.d.ts +85 -1
- package/dist/components/Overflow/Overflow.d.ts +84 -0
- package/dist/components/Page/Page.d.ts +443 -0
- package/dist/components/Popover/Popover.d.ts +268 -0
- package/dist/components/ProgressBar/ProgressBar.d.ts +52 -0
- package/dist/components/Radio/Radio.d.ts +121 -0
- package/dist/components/SearchField/SearchField.d.ts +37 -0
- package/dist/components/SegmentedControl/SegmentedControl.d.ts +98 -0
- package/dist/components/SelectCard/SelectCard.d.ts +60 -0
- package/dist/components/SelectCard/SelectCardGroup.d.ts +37 -0
- package/dist/components/SideNav/SideNav.d.ts +192 -2
- package/dist/components/SideNav/SideNavProvider.d.ts +30 -0
- package/dist/components/Skeleton/Skeleton.d.ts +130 -0
- package/dist/components/Spinner/Spinner.d.ts +25 -0
- package/dist/components/SrOnly/SrOnly.d.ts +19 -0
- package/dist/components/Stepper/Stepper.d.ts +335 -0
- package/dist/components/Switch/Switch.d.ts +33 -0
- package/dist/components/Tab/Tab.d.ts +152 -0
- package/dist/components/Text/Text.d.ts +37 -0
- package/dist/components/Textarea/Textarea.d.ts +50 -0
- package/dist/components/Toast/Toaster.d.ts +43 -0
- package/dist/components/Toast/toast.d.ts +31 -0
- package/dist/components/Toolbar/Toolbar.d.ts +251 -0
- package/dist/components/Tooltip/Tooltip.d.ts +123 -0
- package/dist/{floating-ui.react-Domgunz0.js → floating-ui.react-BFNinq1w.js} +2 -2
- package/dist/{floating-ui.react-Domgunz0.js.map → floating-ui.react-BFNinq1w.js.map} +1 -1
- package/dist/hooks/useSize/index.d.ts +15 -0
- package/dist/hooks/useTrackingId/index.d.ts +19 -0
- package/dist/{index-CdSSO4ct-elKOdXPf.js → index-CKfiQx8n-4nziUo7G.js} +4 -4
- package/dist/{index-CdSSO4ct-elKOdXPf.js.map → index-CKfiQx8n-4nziUo7G.js.map} +1 -1
- package/dist/index.js +57 -57
- package/dist/{toast-C-6NdR43.js → toast-B39L6vJ0.js} +3 -3
- package/dist/toast-B39L6vJ0.js.map +1 -0
- package/dist/{useLayoutPropsUtil-GT5myWCm-Clw_nEze.js → useLayoutPropsUtil-DWACCL8v-CZNrcQT-.js} +6 -4
- package/dist/useLayoutPropsUtil-DWACCL8v-CZNrcQT-.js.map +1 -0
- package/dist/useLinkStyles.js +1 -1
- package/dist/useSize.js.map +1 -1
- package/dist/{useSwipe-DIUHs7T5-DIUHs7T5.js → useSwipe-CULmVQEk-CULmVQEk.js} +2 -2
- package/dist/useSwipe-CULmVQEk-CULmVQEk.js.map +1 -0
- package/dist/useSwipe.js +1 -1
- package/dist/useTrackingId.js.map +1 -1
- package/package.json +3 -2
- package/dist/Alert-BsFFiu7g.js.map +0 -1
- package/dist/Announcement-BawOyXV3.js.map +0 -1
- package/dist/Avatar-C2IfIAxL-BUio7c00.js.map +0 -1
- package/dist/Avatar-DYCN2A_l.js +0 -20
- package/dist/Avatar-DYCN2A_l.js.map +0 -1
- package/dist/Breadcrumbs-BP5QXVje.js.map +0 -1
- package/dist/Button-NTFmgcbr.js.map +0 -1
- package/dist/Button2.css +0 -8
- package/dist/ButtonCompound-DlgIyoB9.js.map +0 -1
- package/dist/ButtonLink-B_uUWBLY.js.map +0 -1
- package/dist/ButtonLink-CSaxjhI2-KLVGwWjE.js.map +0 -1
- package/dist/ButtonLink.css +0 -10
- package/dist/ButtonToggle-D3tcTRq9.js.map +0 -1
- package/dist/Calendar-B4MO-Uhv.js +0 -57
- package/dist/Calendar-B4MO-Uhv.js.map +0 -1
- package/dist/Card-DgxiRqS_.js.map +0 -1
- package/dist/Checkbox-BIlp8xmW.js.map +0 -1
- package/dist/Checkbox-CRurfeRE-BR_NXfh6.js.map +0 -1
- package/dist/Chip-BQ58RQ3v.js.map +0 -1
- package/dist/Combobox-Dde7-7tv.js.map +0 -1
- package/dist/DateField-D-eVP6xh.js.map +0 -1
- package/dist/DaysOfTheWeek-Dz-aZ-LW.js.map +0 -1
- package/dist/Details-ChZdA5Yo.js.map +0 -1
- package/dist/Dialog-DJhN8QWP.js.map +0 -1
- package/dist/Divider-Crum3dyV.js.map +0 -1
- package/dist/Drawer-BFfakO8h.js +0 -66
- package/dist/Drawer-BFfakO8h.js.map +0 -1
- package/dist/EditCard-BNwoKJ_6.js.map +0 -1
- package/dist/FieldMessage-CERWyhwG.js.map +0 -1
- package/dist/Flex-DT1l-wJc.js.map +0 -1
- package/dist/Grid-h9VbEjJe.js +0 -14
- package/dist/Grid-h9VbEjJe.js.map +0 -1
- package/dist/Icon-CcUV8glf.js.map +0 -1
- package/dist/InputMask-CeqX68uX.js.map +0 -1
- package/dist/InputMask-DfpkWGmY-D8QEut94.js +0 -323
- package/dist/InputMask-DfpkWGmY-D8QEut94.js.map +0 -1
- package/dist/Link-K3nk4QAp.js.map +0 -1
- package/dist/ListView-zlg5FlKW.js.map +0 -1
- package/dist/Listbox-36Mda5DS.js +0 -37
- package/dist/Listbox-36Mda5DS.js.map +0 -1
- package/dist/Listbox-DLlT8qbJ-BvhkfmIf.js.map +0 -1
- package/dist/Menu-BjzTwENs.js.map +0 -1
- package/dist/Overflow-ENfRRD_5-DLHLZ02e.js.map +0 -1
- package/dist/Overflow-vc1mxjUD.js.map +0 -1
- package/dist/Page-CSM-a2UE.js.map +0 -1
- package/dist/Popover-CpyYXmal-I-E-B4u8.js.map +0 -1
- package/dist/Popover-a81z9wSj.js +0 -56
- package/dist/Popover-a81z9wSj.js.map +0 -1
- package/dist/ProgressBar-B25Wxpaf.js.map +0 -1
- package/dist/ProgressBar-CeClhdcf-Dcft7ZjO.js.map +0 -1
- package/dist/ProgressBar-CeClhdcf.css +0 -666
- package/dist/Radio-BlMDLvPw-DUeywcYR.js.map +0 -1
- package/dist/Radio-D3CqAXiM.js +0 -34
- package/dist/Radio-D3CqAXiM.js.map +0 -1
- package/dist/SearchField-D3z4LjJg.js.map +0 -1
- package/dist/SegmentedControl-D_ADGpVy.js.map +0 -1
- package/dist/SelectCard-D26y01WZ-BWN9G09J.js.map +0 -1
- package/dist/SelectCardGroup-DxA6P-Q7.js +0 -21
- package/dist/SelectCardGroup-DxA6P-Q7.js.map +0 -1
- package/dist/SideNav-C7wc1_JK.js.map +0 -1
- package/dist/Skeleton-CdzDKQi4.js +0 -215
- package/dist/Skeleton-CdzDKQi4.js.map +0 -1
- package/dist/Spinner-Bc5-_6pK.js.map +0 -1
- package/dist/Stepper-Bp0w8eRW.js.map +0 -1
- package/dist/Switch-BbHIwrGc.js.map +0 -1
- package/dist/Tab-DcOQTX5Z.js.map +0 -1
- package/dist/Text-BDYfD8j4.js.map +0 -1
- package/dist/TextField-Bp1q4hMI-2jGZG2k2.js.map +0 -1
- package/dist/Textarea-CMELRfU8.js.map +0 -1
- package/dist/Toolbar-CYwR6GQG.js.map +0 -1
- package/dist/Tooltip-C-UNrFz3.js +0 -34
- package/dist/Tooltip-C-UNrFz3.js.map +0 -1
- package/dist/toast-C-6NdR43.js.map +0 -1
- package/dist/useLayoutPropsUtil-GT5myWCm-Clw_nEze.js.map +0 -1
- package/dist/useSwipe-DIUHs7T5-DIUHs7T5.js.map +0 -1
- /package/dist/{Alert-DMk5bG5T.css → Alert-C3WoRkeN.css} +0 -0
- /package/dist/{Avatar-C2IfIAxL.css → Avatar-B20IdOEO.css} +0 -0
- /package/dist/{Calendar-Bn00Dnc-.css → Calendar-CohGSWFp.css} +0 -0
- /package/dist/{Card-BNT0qpxt.css → Card-ZknG-yim.css} +0 -0
- /package/dist/{Chip-DwiMFYBm.css → Chip-_daV8CmM.css} +0 -0
- /package/dist/{FieldMessage-Js4e1ezw.css → FieldMessage-ChFXWVDb.css} +0 -0
- /package/dist/{Flex-EX9xObMl.css → Flex-CiK7uNUu.css} +0 -0
- /package/dist/{Icon-BrdmZw1i.css → Icon-B6HmlQiR.css} +0 -0
- /package/dist/{Link-CVN5Mwtx.css → Link-Dqp_XXl_.css} +0 -0
- /package/dist/{Overflow-ENfRRD_5.css → Overflow-BrXwlYpn.css} +0 -0
- /package/dist/{Popover-CpyYXmal.css → Popover-VztF0YHt.css} +0 -0
- /package/dist/{Radio-BlMDLvPw.css → Radio-7U7IBI58.css} +0 -0
- /package/dist/{SelectCard-D26y01WZ.css → SelectCard-B5EqtxOK.css} +0 -0
- /package/dist/{Text-CN_-FF7J.css → Text-DCvcLCvf.css} +0 -0
- /package/dist/{ThemeProvider-BIeaAmWx.css → ThemeProvider-CR67FJg0.css} +0 -0
- /package/dist/{index-CdSSO4ct.css → index-CKfiQx8n.css} +0 -0
|
@@ -3,10 +3,10 @@ import { forwardRef, useRef, useId, useState, useEffect, useContext, createConte
|
|
|
3
3
|
import { useTrackingId } from './useTrackingId.js';
|
|
4
4
|
import { c as cx } from './index-tZvMCc77.js';
|
|
5
5
|
import { s as styles } from './ListView.module-MVsNF0X0-MVsNF0X0.js';
|
|
6
|
-
import { g as getActiveElement } from './ProgressBar-
|
|
7
|
-
import {
|
|
6
|
+
import { g as getActiveElement } from './ProgressBar-Cfi5zZRy-BpESsdh_.js';
|
|
7
|
+
import { a as Checkbox } from './Checkbox-TIcImbEx-EgjesTNn.js';
|
|
8
8
|
import { u as useMergeRefs } from './useMergeRefs-Bde85AWI-Bde85AWI.js';
|
|
9
|
-
import {
|
|
9
|
+
import { u as useLayoutPropsUtil } from './useLayoutPropsUtil-DWACCL8v-CZNrcQT-.js';
|
|
10
10
|
|
|
11
11
|
function mapOrder(array, order, key) {
|
|
12
12
|
array.sort(function(a, b) {
|
|
@@ -150,19 +150,24 @@ const listViewKeyboardNavigation = (e, options, focusedItem, setFocusedItem, par
|
|
|
150
150
|
}
|
|
151
151
|
};
|
|
152
152
|
|
|
153
|
+
const ListViewContext = createContext(null);
|
|
154
|
+
|
|
155
|
+
function useListView() {
|
|
156
|
+
const context = useContext(ListViewContext);
|
|
157
|
+
if (context == null) {
|
|
158
|
+
throw new Error("useListView must be wrapped in <ListView />");
|
|
159
|
+
}
|
|
160
|
+
return context;
|
|
161
|
+
}
|
|
162
|
+
|
|
153
163
|
const ListViewOption$1 = forwardRef(
|
|
154
164
|
(props, ref) => {
|
|
155
165
|
const {
|
|
156
166
|
className,
|
|
157
167
|
children,
|
|
158
|
-
onClick,
|
|
159
|
-
onKeyDown,
|
|
160
|
-
onKeyUp,
|
|
161
|
-
onBlur,
|
|
162
168
|
onChange,
|
|
163
169
|
style,
|
|
164
170
|
disabled: disabledProp,
|
|
165
|
-
id,
|
|
166
171
|
...remainingProps
|
|
167
172
|
} = props;
|
|
168
173
|
const optionRef = useRef(null);
|
|
@@ -171,7 +176,7 @@ const ListViewOption$1 = forwardRef(
|
|
|
171
176
|
const cellRef = useRef(null);
|
|
172
177
|
const rowId = useId();
|
|
173
178
|
const [isSelected, setIsSelected] = useState(false);
|
|
174
|
-
const { selectedItems, setSelectedItems, controlled } = useListView();
|
|
179
|
+
const { selectedItems, setSelectedItems, controlled, onSelectionChange } = useListView();
|
|
175
180
|
const disabled = "item" in remainingProps ? disabledProp || remainingProps.item.disabled : disabledProp;
|
|
176
181
|
useEffect(() => {
|
|
177
182
|
const focusables = optionRef.current?.querySelectorAll(
|
|
@@ -200,38 +205,33 @@ const ListViewOption$1 = forwardRef(
|
|
|
200
205
|
onChange?.(e, { checked: isSelected });
|
|
201
206
|
};
|
|
202
207
|
const onClickHandler = () => {
|
|
203
|
-
if (controlled) return;
|
|
204
208
|
updateSelectedItems();
|
|
205
209
|
};
|
|
210
|
+
const removeItemFromSelectedItems = (itemToRemove) => {
|
|
211
|
+
return selectedItems.filter((item) => {
|
|
212
|
+
if (typeof itemToRemove === "string") {
|
|
213
|
+
return item !== itemToRemove;
|
|
214
|
+
}
|
|
215
|
+
return item?.label !== itemToRemove.label;
|
|
216
|
+
});
|
|
217
|
+
};
|
|
218
|
+
const addItemFromSelectedItems = (itemToAdd) => {
|
|
219
|
+
return [...selectedItems, itemToAdd];
|
|
220
|
+
};
|
|
206
221
|
function updateSelectedItems() {
|
|
207
|
-
|
|
208
|
-
|
|
209
|
-
|
|
210
|
-
|
|
211
|
-
if (isPartOfSelectedItems) {
|
|
212
|
-
setSelectedItems(
|
|
213
|
-
(prev) => prev.filter(
|
|
214
|
-
(item) => item?.label !== remainingProps.item.label
|
|
215
|
-
)
|
|
216
|
-
);
|
|
217
|
-
setIsSelected(false);
|
|
218
|
-
} else {
|
|
219
|
-
setSelectedItems((prev) => [...prev, remainingProps.item]);
|
|
220
|
-
setIsSelected(true);
|
|
222
|
+
const currentItem = "item" in remainingProps ? remainingProps.item : remainingProps.label;
|
|
223
|
+
const isPartOfSelectedItems = selectedItems.some((item) => {
|
|
224
|
+
if (typeof currentItem === "string") {
|
|
225
|
+
return item === currentItem;
|
|
221
226
|
}
|
|
227
|
+
return item?.label === currentItem.label;
|
|
228
|
+
});
|
|
229
|
+
const newSelectedItems = isPartOfSelectedItems ? removeItemFromSelectedItems(currentItem) : addItemFromSelectedItems(currentItem);
|
|
230
|
+
if (controlled) {
|
|
231
|
+
onSelectionChange?.(newSelectedItems);
|
|
222
232
|
} else {
|
|
223
|
-
|
|
224
|
-
|
|
225
|
-
});
|
|
226
|
-
if (isPartOfSelectedItems) {
|
|
227
|
-
setSelectedItems(
|
|
228
|
-
(prev) => prev.filter((item) => item !== remainingProps.label)
|
|
229
|
-
);
|
|
230
|
-
setIsSelected(false);
|
|
231
|
-
} else {
|
|
232
|
-
setSelectedItems((prev) => [...prev, remainingProps.label]);
|
|
233
|
-
setIsSelected(true);
|
|
234
|
-
}
|
|
233
|
+
setSelectedItems(newSelectedItems);
|
|
234
|
+
setIsSelected(!isPartOfSelectedItems);
|
|
235
235
|
}
|
|
236
236
|
}
|
|
237
237
|
if ("item" in remainingProps) {
|
|
@@ -302,7 +302,6 @@ const ListViewOptionCell$1 = forwardRef((props, ref) => {
|
|
|
302
302
|
});
|
|
303
303
|
ListViewOptionCell$1.displayName = "ListViewOptionCell";
|
|
304
304
|
|
|
305
|
-
const ListViewContext = createContext(null);
|
|
306
305
|
const getFocusables = (el) => {
|
|
307
306
|
return el.querySelectorAll(
|
|
308
307
|
"button:not(:disabled):not([aria-disabled='true']), input:not(:disabled):not([aria-disabled='true']), [tabindex='0']:not(:disabled):not([aria-disabled='true'])"
|
|
@@ -335,7 +334,7 @@ const ListViewElement$1 = function(props, ref) {
|
|
|
335
334
|
...style,
|
|
336
335
|
...layoutStyles
|
|
337
336
|
};
|
|
338
|
-
const onFocusHandler = (
|
|
337
|
+
const onFocusHandler = () => {
|
|
339
338
|
if (!isFocusVisible.current) return;
|
|
340
339
|
if (!options) return;
|
|
341
340
|
options[focusedItem.row].focusables[focusedItem.col].setAttribute(
|
|
@@ -431,7 +430,6 @@ const ListViewElement$1 = function(props, ref) {
|
|
|
431
430
|
const orderedSelected = mapOrder(filterDuplicates, compareArr, "label");
|
|
432
431
|
if (JSON.stringify(prevSelectedItems.current) === JSON.stringify(orderedSelected))
|
|
433
432
|
return;
|
|
434
|
-
onSelectionChange?.(orderedSelected);
|
|
435
433
|
setSelectedItems(orderedSelected);
|
|
436
434
|
prevSelectedItems.current = orderedSelected;
|
|
437
435
|
}, [onSelectionChange, options, selected]);
|
|
@@ -507,18 +505,34 @@ const ListViewElement$1 = function(props, ref) {
|
|
|
507
505
|
}
|
|
508
506
|
);
|
|
509
507
|
};
|
|
510
|
-
function useListView() {
|
|
511
|
-
const context = useContext(ListViewContext);
|
|
512
|
-
if (context == null) {
|
|
513
|
-
throw new Error("useListView must be wrapped in <ListView />");
|
|
514
|
-
}
|
|
515
|
-
return context;
|
|
516
|
-
}
|
|
517
508
|
ListViewElement$1.displayName = "ListView";
|
|
518
509
|
const ListView$1 = Object.assign(
|
|
519
510
|
forwardRef(ListViewElement$1),
|
|
520
511
|
{
|
|
512
|
+
/**
|
|
513
|
+
* ListViewOption component for individual selectable items within a listview.
|
|
514
|
+
*
|
|
515
|
+
* Features:
|
|
516
|
+
* - Displays selectable options with proper ARIA attributes
|
|
517
|
+
* - Supports disabled state for non-selectable options
|
|
518
|
+
* - Keyboard navigation support
|
|
519
|
+
* - Accessible with screen reader support
|
|
520
|
+
*
|
|
521
|
+
* @example
|
|
522
|
+
* <ListView.Option item={{ label: "Option 1" }} />
|
|
523
|
+
*/
|
|
521
524
|
Option: ListViewOption$1,
|
|
525
|
+
/**
|
|
526
|
+
* ListViewOptionCell component for rendering a cell within a listview option.
|
|
527
|
+
*
|
|
528
|
+
* Features:
|
|
529
|
+
* - Renders a grid cell for option content
|
|
530
|
+
* - Supports custom content and layout
|
|
531
|
+
* - Accessible with proper ARIA attributes
|
|
532
|
+
*
|
|
533
|
+
* @example
|
|
534
|
+
* <ListView.OptionCell>Custom cell content</ListView.OptionCell>
|
|
535
|
+
*/
|
|
522
536
|
OptionCell: ListViewOptionCell$1
|
|
523
537
|
}
|
|
524
538
|
);
|
|
@@ -539,18 +553,44 @@ const ListViewOption = forwardRef(
|
|
|
539
553
|
return /* @__PURE__ */ jsx(ListViewOption$1, { ref, "data-tracking-id": trackingId, ...props });
|
|
540
554
|
}
|
|
541
555
|
);
|
|
556
|
+
ListViewOption.displayName = ListViewOption$1.displayName;
|
|
542
557
|
const ListViewOptionCell = forwardRef(
|
|
543
558
|
(props, ref) => {
|
|
544
559
|
return /* @__PURE__ */ jsx(ListViewOptionCell$1, { ref, ...props });
|
|
545
560
|
}
|
|
546
561
|
);
|
|
562
|
+
ListViewOptionCell.displayName = ListViewOptionCell$1.displayName;
|
|
547
563
|
const ListView = Object.assign(
|
|
548
564
|
forwardRef(ListViewElement),
|
|
549
565
|
{
|
|
566
|
+
/**
|
|
567
|
+
* ListViewOption component for individual selectable items within a listview.
|
|
568
|
+
*
|
|
569
|
+
* Features:
|
|
570
|
+
* - Displays selectable options with proper ARIA attributes
|
|
571
|
+
* - Supports disabled state for non-selectable options
|
|
572
|
+
* - Keyboard navigation support
|
|
573
|
+
* - Accessible with screen reader support
|
|
574
|
+
* - Automatic tracking ID generation for analytics
|
|
575
|
+
*
|
|
576
|
+
* @example
|
|
577
|
+
* <ListView.Option item={{ label: "Option 1" }} />
|
|
578
|
+
*/
|
|
550
579
|
Option: ListViewOption,
|
|
580
|
+
/**
|
|
581
|
+
* ListViewOptionCell component for rendering a cell within a listview option.
|
|
582
|
+
*
|
|
583
|
+
* Features:
|
|
584
|
+
* - Renders a grid cell for option content
|
|
585
|
+
* - Supports custom content and layout
|
|
586
|
+
* - Accessible with proper ARIA attributes
|
|
587
|
+
*
|
|
588
|
+
* @example
|
|
589
|
+
* <ListView.OptionCell>Custom cell content</ListView.OptionCell>
|
|
590
|
+
*/
|
|
551
591
|
OptionCell: ListViewOptionCell
|
|
552
592
|
}
|
|
553
593
|
);
|
|
554
594
|
|
|
555
595
|
export { ListView as L, ListViewOption as a, ListViewOptionCell as b };
|
|
556
|
-
//# sourceMappingURL=ListView-
|
|
596
|
+
//# sourceMappingURL=ListView-0xHc5wT6.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"ListView-0xHc5wT6.js","sources":["../../hammer-react/dist/ListView-wQ7ruaGX.js","../src/components/ListView/ListView.tsx"],"sourcesContent":["import { jsxs, jsx } from 'react/jsx-runtime';\nimport { createContext, useContext, forwardRef, useRef, useId, useState, useEffect } from 'react';\nimport cx from 'classnames';\nimport { s as styles } from './ListView.module-MVsNF0X0.js';\nimport { q as getActiveElement } from './ProgressBar-Cfi5zZRy.js';\nimport { C as Checkbox } from './Checkbox-TIcImbEx.js';\nimport { u as useMergeRefs } from './useMergeRefs-Bde85AWI.js';\nimport { u as useLayoutPropsUtil } from './useLayoutPropsUtil-DWACCL8v.js';\n\nfunction mapOrder(array, order, key) {\n array.sort(function(a, b) {\n const A = a[key], B = b[key];\n if (order.indexOf(A) > order.indexOf(B)) {\n return 1;\n } else {\n return -1;\n }\n });\n return array;\n}\n\nconst listViewKeyboardNavigation = (e, options, focusedItem, setFocusedItem, parent, currentFocusId) => {\n if (!options) return;\n let activeElement;\n switch (e.code) {\n case \"Enter\":\n case \"Space\":\n options[focusedItem.row].focusables[focusedItem.col].click();\n activeElement = getActiveElement(document);\n if (!activeElement) break;\n activeElement.click();\n e.preventDefault();\n break;\n case \"ArrowDown\":\n parent?.focus();\n options[focusedItem.row].focusables[focusedItem.col].removeAttribute(\n \"data-interactive\"\n );\n if (focusedItem.row === options.length - 1) {\n options[0].focusables[focusedItem.col].setAttribute(\n \"data-interactive\",\n \"focus-visible\"\n );\n currentFocusId(options[0].focusables[focusedItem.col].id);\n setFocusedItem((prev) => {\n return { ...prev, row: 0 };\n });\n break;\n }\n options[focusedItem.row + 1].focusables[focusedItem.col].setAttribute(\n \"data-interactive\",\n \"focus-visible\"\n );\n currentFocusId(\n options[focusedItem.row + 1].focusables[focusedItem.col].id\n );\n setFocusedItem((prev) => {\n return { ...prev, row: focusedItem.row + 1 };\n });\n break;\n case \"ArrowUp\":\n parent?.focus();\n options[focusedItem.row].focusables[focusedItem.col].removeAttribute(\n \"data-interactive\"\n );\n if (focusedItem.row === 0) {\n options[options.length - 1].focusables[focusedItem.col].setAttribute(\n \"data-interactive\",\n \"focus-visible\"\n );\n currentFocusId(\n options[options.length - 1].focusables[focusedItem.col].id\n );\n setFocusedItem((prev) => {\n return { ...prev, row: options.length - 1 };\n });\n break;\n }\n options[focusedItem.row - 1].focusables[focusedItem.col].setAttribute(\n \"data-interactive\",\n \"focus-visible\"\n );\n currentFocusId(\n options[focusedItem.row - 1].focusables[focusedItem.col].id\n );\n setFocusedItem((prev) => {\n return { ...prev, row: focusedItem.row - 1 };\n });\n break;\n case \"ArrowRight\":\n parent?.focus();\n options[focusedItem.row].focusables[focusedItem.col].removeAttribute(\n \"data-interactive\"\n );\n if (focusedItem.col === options[focusedItem.row].focusables.length - 1) {\n options[focusedItem.row].focusables[0].setAttribute(\n \"data-interactive\",\n \"focus-visible\"\n );\n currentFocusId(options[focusedItem.row].focusables[0].id);\n setFocusedItem((prev) => {\n return {\n ...prev,\n col: 0\n };\n });\n break;\n }\n options[focusedItem.row].focusables[focusedItem.col + 1].setAttribute(\n \"data-interactive\",\n \"focus-visible\"\n );\n currentFocusId(\n options[focusedItem.row].focusables[focusedItem.col + 1].id\n );\n setFocusedItem((prev) => {\n return { ...prev, col: focusedItem.col + 1 };\n });\n break;\n case \"ArrowLeft\":\n parent?.focus();\n options[focusedItem.row].focusables[focusedItem.col].removeAttribute(\n \"data-interactive\"\n );\n if (focusedItem.col === 0) {\n options[focusedItem.row].focusables[options[focusedItem.row].focusables.length - 1].setAttribute(\"data-interactive\", \"focus-visible\");\n currentFocusId(\n options[focusedItem.row].focusables[options[focusedItem.row].focusables.length - 1].id\n );\n setFocusedItem((prev) => {\n return {\n ...prev,\n col: options[focusedItem.row].focusables.length - 1\n };\n });\n break;\n }\n options[focusedItem.row].focusables[focusedItem.col - 1].setAttribute(\n \"data-interactive\",\n \"focus-visible\"\n );\n currentFocusId(\n options[focusedItem.row].focusables[focusedItem.col - 1].id\n );\n setFocusedItem((prev) => {\n return { ...prev, col: focusedItem.col - 1 };\n });\n break;\n }\n};\n\nconst ListViewContext = createContext(null);\n\nfunction useListView() {\n const context = useContext(ListViewContext);\n if (context == null) {\n throw new Error(\"useListView must be wrapped in <ListView />\");\n }\n return context;\n}\n\nconst ListViewOption = forwardRef(\n (props, ref) => {\n const {\n className,\n children,\n onChange,\n style,\n disabled: disabledProp,\n ...remainingProps\n } = props;\n const optionRef = useRef(null);\n const mergedRef = useMergeRefs([ref, optionRef]);\n const itemRef = useRef();\n const cellRef = useRef(null);\n const rowId = useId();\n const [isSelected, setIsSelected] = useState(false);\n const { selectedItems, setSelectedItems, controlled, onSelectionChange } = useListView();\n const disabled = \"item\" in remainingProps ? disabledProp || remainingProps.item.disabled : disabledProp;\n useEffect(() => {\n const focusables = optionRef.current?.querySelectorAll(\n \"button:not(:disabled):not([aria-disabled='true']), input:not(:disabled):not([aria-disabled='true']), [tabindex='0']:not(:disabled):not([aria-disabled='true'])\"\n );\n focusables?.forEach((item, i) => {\n item.setAttribute(\"tabindex\", \"-1\");\n if (item.hasAttribute(\"id\")) return;\n item.setAttribute(\"id\", `${rowId}-${i}`);\n });\n }, [rowId]);\n useEffect(() => {\n if (\"item\" in remainingProps) {\n const isPartOfSelectedItems = selectedItems.some((item) => {\n return item.label === remainingProps.item.label;\n });\n setIsSelected(isPartOfSelectedItems);\n } else {\n const isPartOfSelectedItems = selectedItems.includes(\n remainingProps.label\n );\n setIsSelected(isPartOfSelectedItems);\n }\n }, [controlled, remainingProps, selectedItems]);\n const onChangeHandler = (e) => {\n onChange?.(e, { checked: isSelected });\n };\n const onClickHandler = () => {\n updateSelectedItems();\n };\n const removeItemFromSelectedItems = (itemToRemove) => {\n return selectedItems.filter((item) => {\n if (typeof itemToRemove === \"string\") {\n return item !== itemToRemove;\n }\n return item?.label !== itemToRemove.label;\n });\n };\n const addItemFromSelectedItems = (itemToAdd) => {\n return [...selectedItems, itemToAdd];\n };\n function updateSelectedItems() {\n const currentItem = \"item\" in remainingProps ? remainingProps.item : remainingProps.label;\n const isPartOfSelectedItems = selectedItems.some((item) => {\n if (typeof currentItem === \"string\") {\n return item === currentItem;\n }\n return item?.label === currentItem.label;\n });\n const newSelectedItems = isPartOfSelectedItems ? removeItemFromSelectedItems(currentItem) : addItemFromSelectedItems(currentItem);\n if (controlled) {\n onSelectionChange?.(newSelectedItems);\n } else {\n setSelectedItems(newSelectedItems);\n setIsSelected(!isPartOfSelectedItems);\n }\n }\n if (\"item\" in remainingProps) {\n itemRef.current = remainingProps.item;\n const { item, ...rest } = remainingProps;\n return /* @__PURE__ */ jsxs(\n \"div\",\n {\n className: cx([styles[\"listview-option\"]], className),\n \"data-anv\": \"listview-option\",\n style,\n ref: mergedRef,\n \"aria-disabled\": disabled,\n \"aria-selected\": isSelected,\n \"aria-label\": item.label,\n role: \"row\",\n ...rest,\n children: [\n /* @__PURE__ */ jsx(\"div\", { className: styles[\"cell\"], ref: cellRef, role: \"gridcell\", children: /* @__PURE__ */ jsx(\n Checkbox,\n {\n disabled,\n checked: isSelected,\n \"aria-label\": item.label,\n onChange: onChangeHandler,\n onClick: onClickHandler\n }\n ) }),\n children\n ]\n }\n );\n }\n return /* @__PURE__ */ jsxs(\n \"div\",\n {\n className: cx([styles[\"listview-option\"]], className),\n \"data-anv\": \"listview-option\",\n style,\n ref: mergedRef,\n \"aria-disabled\": disabled,\n \"aria-selected\": isSelected,\n \"aria-label\": \"label\" in props ? props.label : \"Select\",\n role: \"row\",\n ...remainingProps,\n children: [\n /* @__PURE__ */ jsx(\"div\", { className: styles[\"cell\"], ref: cellRef, role: \"gridcell\", children: /* @__PURE__ */ jsx(\n Checkbox,\n {\n disabled,\n checked: isSelected,\n \"aria-label\": \"label\" in props ? props.label : \"Select\",\n onChange: onChangeHandler,\n onClick: onClickHandler\n }\n ) }),\n children\n ]\n }\n );\n }\n);\nListViewOption.displayName = \"ListViewOption\";\n\nconst ListViewOptionCell = forwardRef((props, ref) => {\n const { ...rest } = props;\n return /* @__PURE__ */ jsx(\"div\", { role: \"gridcell\", \"data-anv\": \"listview-option-cell\", ...rest, ref });\n});\nListViewOptionCell.displayName = \"ListViewOptionCell\";\n\nconst getFocusables = (el) => {\n return el.querySelectorAll(\n \"button:not(:disabled):not([aria-disabled='true']), input:not(:disabled):not([aria-disabled='true']), [tabindex='0']:not(:disabled):not([aria-disabled='true'])\"\n );\n};\nconst ListViewElement = function(props, ref) {\n const { layoutStyles, componentProps } = useLayoutPropsUtil(props);\n const {\n onSelectionChange,\n className,\n selected,\n defaultSelected,\n style,\n onKeyDown,\n ...remainingProps\n } = componentProps;\n const ListViewRef = useRef(null);\n const isFocusVisible = useRef(true);\n const combinedRef = useMergeRefs([ref, ListViewRef]);\n const [options, setOptions] = useState();\n const [currentActive, setCurrentActive] = useState();\n const [selectedItems, setSelectedItems] = useState(\n selected ?? defaultSelected ?? []\n );\n const [focusedItem, setFocusedItem] = useState({\n row: 0,\n col: 0\n });\n const styleCombined = {\n ...style,\n ...layoutStyles\n };\n const onFocusHandler = () => {\n if (!isFocusVisible.current) return;\n if (!options) return;\n options[focusedItem.row].focusables[focusedItem.col].setAttribute(\n \"data-interactive\",\n \"focus-visible\"\n );\n return;\n };\n const onBlurHandler = () => {\n if (!options) return;\n options[focusedItem.row].focusables[focusedItem.col]?.removeAttribute(\n \"data-interactive\"\n );\n return;\n };\n const onKeyDownHandler = (e) => {\n onKeyDown?.(e);\n if (!options) return;\n isFocusVisible.current = true;\n listViewKeyboardNavigation(\n e,\n options,\n focusedItem,\n setFocusedItem,\n ListViewRef.current,\n (id) => setCurrentActive(id)\n );\n };\n const onMouseDownHandler = (e) => {\n isFocusVisible.current = false;\n if (options && ListViewRef.current) {\n options[focusedItem.row].focusables[focusedItem.col]?.removeAttribute(\n \"data-interactive\"\n );\n const closestFocusable = e.target.closest(\n \"button:not(:disabled):not([aria-disabled='true']), input:not(:disabled):not([aria-disabled='true']), [data-anv='checkbox']\"\n );\n const optionRow = e.target.closest(\n '[data-anv=\"listview-option\"]'\n );\n if (!optionRow || optionRow.ariaDisabled) return;\n const row = options.findIndex((option) => option.node === optionRow);\n if (!closestFocusable) {\n options[row].focusables[0].click();\n return;\n }\n const col = Array.prototype.indexOf.call(\n options[row].focusables,\n closestFocusable?.getAttribute(\"data-anv\") === \"checkbox\" ? closestFocusable.children[0] : closestFocusable\n );\n setFocusedItem({ row, col });\n }\n };\n useEffect(() => {\n if (!ListViewRef.current) return;\n const optionArr = ListViewRef.current.querySelectorAll(\n \"div[data-anv='listview-option']:not([aria-disabled='true'])\"\n );\n const makeTree = Array.from(optionArr).map((option) => {\n const childFocusables = getFocusables(option);\n return {\n node: option,\n focusables: childFocusables\n };\n });\n setOptions(makeTree);\n }, [props.children]);\n const prevSelectedItems = useRef();\n useEffect(() => {\n if (!options) return;\n const compareArr = options.map((option) => option.node.ariaLabel);\n const orderedSelectedItems = mapOrder(selectedItems, compareArr, \"label\");\n if (JSON.stringify(prevSelectedItems.current) === JSON.stringify(orderedSelectedItems))\n return;\n onSelectionChange?.(orderedSelectedItems);\n prevSelectedItems.current = orderedSelectedItems;\n }, [onSelectionChange, options, selectedItems]);\n useEffect(() => {\n if (!selected) return;\n const filterDuplicates = selected.reduce(\n (acc, current) => {\n const isDup = acc.find((item) => item.label === current.label);\n if (!isDup) {\n return acc.concat([current]);\n } else {\n return acc;\n }\n },\n []\n );\n if (!options) return;\n const compareArr = options.map((option) => option.node.ariaLabel);\n const orderedSelected = mapOrder(filterDuplicates, compareArr, \"label\");\n if (JSON.stringify(prevSelectedItems.current) === JSON.stringify(orderedSelected))\n return;\n setSelectedItems(orderedSelected);\n prevSelectedItems.current = orderedSelected;\n }, [onSelectionChange, options, selected]);\n const ListViewClassNames = cx([styles[\"listview\"]], className);\n if (\"items\" in remainingProps) {\n const { children: children2, items, ...rest2 } = remainingProps;\n return /* @__PURE__ */ jsx(\n ListViewContext.Provider,\n {\n value: {\n options,\n onSelectionChange,\n selectedItems,\n setSelectedItems,\n items,\n controlled: !!selected\n },\n children: /* @__PURE__ */ jsx(\n \"div\",\n {\n ref: combinedRef,\n className: ListViewClassNames,\n style: styleCombined,\n \"data-anv\": \"listview\",\n role: \"grid\",\n \"aria-multiselectable\": \"true\",\n onFocus: onFocusHandler,\n onBlur: onBlurHandler,\n onKeyDown: onKeyDownHandler,\n onMouseDown: onMouseDownHandler,\n \"aria-activedescendant\": currentActive,\n tabIndex: 0,\n ...rest2,\n children: children2?.({\n items: items.map((item) => {\n return item;\n })\n })\n }\n )\n }\n );\n }\n const { children, ...rest } = remainingProps;\n return /* @__PURE__ */ jsx(\n ListViewContext.Provider,\n {\n value: {\n options,\n onSelectionChange,\n selectedItems,\n setSelectedItems,\n controlled: !!selected\n },\n children: /* @__PURE__ */ jsx(\n \"div\",\n {\n ref: combinedRef,\n className: ListViewClassNames,\n style: styleCombined,\n \"data-anv\": \"listview\",\n role: \"grid\",\n onFocus: onFocusHandler,\n onBlur: onBlurHandler,\n onKeyDown: onKeyDownHandler,\n onMouseDown: onMouseDownHandler,\n \"aria-activedescendant\": currentActive,\n tabIndex: 0,\n ...rest,\n children\n }\n )\n }\n );\n};\nListViewElement.displayName = \"ListView\";\nconst ListView = Object.assign(\n forwardRef(ListViewElement),\n {\n /**\n * ListViewOption component for individual selectable items within a listview.\n *\n * Features:\n * - Displays selectable options with proper ARIA attributes\n * - Supports disabled state for non-selectable options\n * - Keyboard navigation support\n * - Accessible with screen reader support\n *\n * @example\n * <ListView.Option item={{ label: \"Option 1\" }} />\n */\n Option: ListViewOption,\n /**\n * ListViewOptionCell component for rendering a cell within a listview option.\n *\n * Features:\n * - Renders a grid cell for option content\n * - Supports custom content and layout\n * - Accessible with proper ARIA attributes\n *\n * @example\n * <ListView.OptionCell>Custom cell content</ListView.OptionCell>\n */\n OptionCell: ListViewOptionCell\n }\n);\n\nexport { ListView as L, ListViewOption as a, ListViewOptionCell as b };\n//# sourceMappingURL=ListView-wQ7ruaGX.js.map\n","import {\n ListViewProps as CoreListViewProps,\n ListView as CoreListView,\n ListViewOption as CoreListViewOption,\n ListViewOptionCell as CoreListViewOptionCell,\n ListViewOptionProps as CoreListViewOptionProps,\n} from \"@servicetitan/hammer-react\";\nimport { ComponentPropsWithoutRef, ForwardedRef, Ref, forwardRef } from \"react\";\nimport { useTrackingId } from \"../../hooks/useTrackingId\";\nimport { DataTrackingId } from \"../../types/DataTrackingId\";\n\n/**\n * Props for the ListView component\n * @property {function} [onSelectionChange] - Callback when selection changes\n * @property {Array} [selected] - Currently selected items (controlled)\n * @property {Array} [items] - Array of items to render\n * @property {Array} [defaultSelected] - Default selected items (uncontrolled)\n * @property {function} [children] - Optional render function for items\n * @extends LayoutUtilProps\n */\nexport type ListViewProps<T> = CoreListViewProps<T>;\n\n/**\n * Props for the ListViewOption component\n * @property {boolean} [disabled] - Whether the option is disabled\n * @property {function} [onChange] - Callback when the option changes\n * @property {object} [item] - The item object when using items prop\n * @property {string} [label] - The display label for the option\n * @extends ComponentPropsWithoutRef<\"div\">\n */\nexport type ListViewOptionProps = CoreListViewOptionProps & DataTrackingId;\n\nconst ListViewElement = function <T>(\n props: ListViewProps<T>,\n ref: ForwardedRef<HTMLUListElement>,\n) {\n return <CoreListView ref={ref} {...props} />;\n};\n\n/**\n * ListViewOption component for individual selectable items within a listview.\n *\n * Features:\n * - Displays selectable options with proper ARIA attributes\n * - Supports disabled state for non-selectable options\n * - Keyboard navigation support\n * - Accessible with screen reader support\n * - Automatic tracking ID generation for analytics\n *\n * @example\n * <ListView.Option item={{ label: \"Option 1\" }} />\n */\nexport const ListViewOption = forwardRef(\n (props: ListViewOptionProps, ref: Ref<HTMLDivElement>) => {\n const data = {\n label: \"item\" in props ? props.item?.label : props.label,\n };\n\n const trackingId = useTrackingId({\n name: \"ListViewOption\",\n data,\n hasOverride: !!props[\"data-tracking-id\"],\n });\n\n return (\n <CoreListViewOption ref={ref} data-tracking-id={trackingId} {...props} />\n );\n },\n);\nListViewOption.displayName = CoreListViewOption.displayName;\n\n/**\n * ListViewOptionCell component for rendering a cell within a listview option.\n *\n * Features:\n * - Renders a grid cell for option content\n * - Supports custom content and layout\n * - Accessible with proper ARIA attributes\n *\n * @example\n * <ListView.OptionCell>Custom cell content</ListView.OptionCell>\n */\nexport const ListViewOptionCell = forwardRef(\n (props: ComponentPropsWithoutRef<\"div\">, ref: Ref<HTMLDivElement>) => {\n return <CoreListViewOptionCell ref={ref} {...props} />;\n },\n);\nListViewOptionCell.displayName = CoreListViewOptionCell.displayName;\n\n/**\n * ListView component for displaying a list of selectable items in a grid layout.\n *\n * Features:\n * - Supports single and multiple selection modes\n * - Keyboard navigation with arrow keys\n * - Customizable item rendering\n * - Controlled and uncontrolled modes\n * - Accessible with proper ARIA attributes\n * - Focus management for interactive elements\n * - Layout utilities for positioning and spacing\n * - Automatic tracking ID generation for analytics\n *\n * @example\n * <ListView items={[{ label: \"Item 1\" }, { label: \"Item 2\" }]} onSelectionChange={handleSelection}>\n * {({ items }) => items.map(item => (\n * <ListView.Option key={item.label} item={item} />\n * ))}\n * </ListView>\n */\nexport const ListView = Object.assign(\n forwardRef(ListViewElement) as <T>(\n props: ListViewProps<T> & { ref?: React.ForwardedRef<HTMLUListElement> },\n ) => ReturnType<typeof ListViewElement>,\n {\n /**\n * ListViewOption component for individual selectable items within a listview.\n *\n * Features:\n * - Displays selectable options with proper ARIA attributes\n * - Supports disabled state for non-selectable options\n * - Keyboard navigation support\n * - Accessible with screen reader support\n * - Automatic tracking ID generation for analytics\n *\n * @example\n * <ListView.Option item={{ label: \"Option 1\" }} />\n */\n Option: ListViewOption,\n /**\n * ListViewOptionCell component for rendering a cell within a listview option.\n *\n * Features:\n * - Renders a grid cell for option content\n * - Supports custom content and layout\n * - Accessible with proper ARIA attributes\n *\n * @example\n * <ListView.OptionCell>Custom cell content</ListView.OptionCell>\n */\n OptionCell: ListViewOptionCell,\n },\n);\n"],"names":["ListViewOption","ListViewOptionCell","ListViewElement","ListView","CoreListView","CoreListViewOption","CoreListViewOptionCell"],"mappings":"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"}
|
package/dist/ListView.js
CHANGED
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
export { L as ListView, a as ListViewOption, b as ListViewOptionCell, L as default } from './ListView-
|
|
1
|
+
export { L as ListView, a as ListViewOption, b as ListViewOptionCell, L as default } from './ListView-0xHc5wT6.js';
|
|
2
2
|
//# sourceMappingURL=ListView.js.map
|
|
@@ -2,11 +2,11 @@ import { jsxs, jsx } from 'react/jsx-runtime';
|
|
|
2
2
|
import { useState, useEffect, forwardRef, useContext, createContext, useRef, useMemo } from 'react';
|
|
3
3
|
import { c as cx } from './index-tZvMCc77.js';
|
|
4
4
|
import { s as styles } from './Listbox.module-DcBE8Zmo-DcBE8Zmo.js';
|
|
5
|
-
import { T as Text } from './Text-
|
|
6
|
-
import { u as useLayoutPropsUtil } from './useLayoutPropsUtil-
|
|
5
|
+
import { T as Text } from './Text-DCvcLCvf-DlmnnjTR.js';
|
|
6
|
+
import { u as useLayoutPropsUtil } from './useLayoutPropsUtil-DWACCL8v-CZNrcQT-.js';
|
|
7
7
|
import { u as useMergeRefs } from './useMergeRefs-Bde85AWI-Bde85AWI.js';
|
|
8
|
-
import { I as Icon } from './Icon-
|
|
9
|
-
import { F as Flex } from './Flex-
|
|
8
|
+
import { I as Icon } from './Icon-B6HmlQiR-BxQkO3X5.js';
|
|
9
|
+
import { F as Flex } from './Flex-CiK7uNUu-BfxHG4L0.js';
|
|
10
10
|
import { S as SvgCheck } from './check-Cf67OWrZ.js';
|
|
11
11
|
|
|
12
12
|
const useTypeAhead = (timeout = 750) => {
|
|
@@ -97,17 +97,23 @@ const ListboxOption = forwardRef(
|
|
|
97
97
|
setCurrentFocus?.(label);
|
|
98
98
|
if (selectionMode === "single") {
|
|
99
99
|
if (!item && selected === label || item && selected?.label === label) {
|
|
100
|
-
!controlled
|
|
100
|
+
if (!controlled) {
|
|
101
|
+
setSelected?.(void 0);
|
|
102
|
+
}
|
|
101
103
|
onSelectionChange?.(void 0);
|
|
102
104
|
return;
|
|
103
105
|
}
|
|
104
106
|
if (item) {
|
|
105
|
-
!controlled
|
|
107
|
+
if (!controlled) {
|
|
108
|
+
setSelected?.(item);
|
|
109
|
+
}
|
|
106
110
|
onSelectionChange?.(item);
|
|
107
111
|
return;
|
|
108
112
|
}
|
|
109
113
|
if (!item) {
|
|
110
|
-
!controlled
|
|
114
|
+
if (!controlled) {
|
|
115
|
+
setSelected?.(label);
|
|
116
|
+
}
|
|
111
117
|
onSelectionChange?.(label);
|
|
112
118
|
return;
|
|
113
119
|
}
|
|
@@ -216,11 +222,19 @@ const onListboxKeyDown = (e, context) => {
|
|
|
216
222
|
switch (e.code) {
|
|
217
223
|
case "ArrowDown":
|
|
218
224
|
e.preventDefault();
|
|
219
|
-
currentIndex === options.length - 1
|
|
225
|
+
if (currentIndex === options.length - 1) {
|
|
226
|
+
goTo(options[0], 0, context);
|
|
227
|
+
} else {
|
|
228
|
+
goTo(options[currentIndex + 1], currentIndex + 1, context);
|
|
229
|
+
}
|
|
220
230
|
break;
|
|
221
231
|
case "ArrowUp":
|
|
222
232
|
e.preventDefault();
|
|
223
|
-
currentIndex === 0
|
|
233
|
+
if (currentIndex === 0) {
|
|
234
|
+
goTo(options[options.length - 1], options.length - 1, context);
|
|
235
|
+
} else {
|
|
236
|
+
goTo(options[currentIndex - 1], currentIndex - 1, context);
|
|
237
|
+
}
|
|
224
238
|
break;
|
|
225
239
|
case "Home":
|
|
226
240
|
e.preventDefault();
|
|
@@ -531,10 +545,37 @@ ListboxElement.displayName = "Listbox";
|
|
|
531
545
|
const Listbox = Object.assign(
|
|
532
546
|
forwardRef(ListboxElement),
|
|
533
547
|
{
|
|
548
|
+
/**
|
|
549
|
+
* ListboxOption component for individual selectable items within a listbox.
|
|
550
|
+
*
|
|
551
|
+
* Features:
|
|
552
|
+
* - Displays selectable options with proper ARIA attributes
|
|
553
|
+
* - Supports disabled state for non-selectable options
|
|
554
|
+
* - Keyboard navigation support
|
|
555
|
+
* - Accessible with screen reader support
|
|
556
|
+
*
|
|
557
|
+
* @example
|
|
558
|
+
* <Listbox.Option value="option1" label="Option 1" />
|
|
559
|
+
*/
|
|
534
560
|
Option: ListboxOption,
|
|
561
|
+
/**
|
|
562
|
+
* ListboxOptionGroup component for grouping related options within a listbox.
|
|
563
|
+
*
|
|
564
|
+
* Features:
|
|
565
|
+
* - Groups related options with a descriptive label
|
|
566
|
+
* - Maintains proper ARIA structure for accessibility
|
|
567
|
+
* - Supports keyboard navigation within groups
|
|
568
|
+
* - Visual separation of option categories
|
|
569
|
+
*
|
|
570
|
+
* @example
|
|
571
|
+
* <Listbox.OptionGroup label="Fruits">
|
|
572
|
+
* <Listbox.Option value="apple">Apple</Listbox.Option>
|
|
573
|
+
* <Listbox.Option value="banana">Banana</Listbox.Option>
|
|
574
|
+
* </Listbox.OptionGroup>
|
|
575
|
+
*/
|
|
535
576
|
OptionGroup: ListboxOptionGroup
|
|
536
577
|
}
|
|
537
578
|
);
|
|
538
579
|
|
|
539
580
|
export { ListboxOption as L, ListboxOptionGroup as a, Listbox as b };
|
|
540
|
-
//# sourceMappingURL=Listbox-
|
|
581
|
+
//# sourceMappingURL=Listbox-BvJLSAVO-Br5k6fmq.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"Listbox-BvJLSAVO-Br5k6fmq.js","sources":["../../hammer-react/dist/useTypeAhead-D_x_x3nw.js","../../hammer-react/dist/Listbox-BvJLSAVO.js"],"sourcesContent":["import { useState, useEffect } from 'react';\n\nconst useTypeAhead = (timeout = 750) => {\n const [typeAhead, setTypeAhead] = useState(\"\");\n useEffect(() => {\n const timer = setTimeout(() => setTypeAhead(\"\"), timeout);\n return () => clearTimeout(timer);\n }, [typeAhead, timeout]);\n const updateTypeAhead = (char) => setTypeAhead((prev) => prev + char);\n return [typeAhead, updateTypeAhead];\n};\n\nexport { useTypeAhead as u };\n//# sourceMappingURL=useTypeAhead-D_x_x3nw.js.map\n","import { jsx, jsxs } from 'react/jsx-runtime';\nimport { forwardRef, createContext, useContext, useRef, useState, useEffect, useMemo } from 'react';\nimport cx from 'classnames';\nimport { s as styles } from './Listbox.module-DcBE8Zmo.js';\nimport { u as useTypeAhead } from './useTypeAhead-D_x_x3nw.js';\nimport { T as Text } from './Text-DCvcLCvf.js';\nimport { u as useLayoutPropsUtil } from './useLayoutPropsUtil-DWACCL8v.js';\nimport { u as useMergeRefs } from './useMergeRefs-Bde85AWI.js';\nimport { I as Icon } from './Icon-B6HmlQiR.js';\nimport { F as Flex } from './Flex-CiK7uNUu.js';\nimport Check from '@servicetitan/hammer-icon/mdi/round/check.svg';\n\nconst ListboxOptionGroupContext = createContext({});\nconst ListboxOptionGroup = forwardRef((props, ref) => {\n const { className, children, disabled, label, ...rest } = props;\n const optionGroupCx = cx(styles[\"option-group\"], className);\n const labelCx = cx(styles[\"label\"], {\n [styles[\"disabled\"]]: disabled\n });\n return /* @__PURE__ */ jsx(ListboxOptionGroupContext.Provider, { value: { disabled }, children: /* @__PURE__ */ jsxs(\n \"div\",\n {\n \"data-anv\": \"listbox-option-group\",\n className: optionGroupCx,\n ref,\n ...rest,\n children: [\n /* @__PURE__ */ jsx(Text, { variant: \"eyebrow\", className: labelCx, children: label }),\n children\n ]\n }\n ) });\n});\nListboxOptionGroup.displayName = \"ListboxOptionGroup\";\n\nconst ListboxOption = forwardRef(\n (props, ref) => {\n const {\n className,\n children,\n disabled: disabledProp,\n onClick,\n label: labelProp,\n item,\n value,\n alignItems,\n justifyItems,\n alignContent,\n justifyContent,\n placeItems,\n placeContent,\n ...rest\n } = props;\n const {\n setCurrentFocus,\n currentFocus,\n selected,\n setSelected,\n selectionMode,\n onSelectionChange,\n controlled\n } = useListbox();\n const ListboxOptionClassNames = cx(styles[\"option\"], className, {});\n const label = labelProp || item?.label || \"\";\n const { disabled: groupDisabled } = useContext(ListboxOptionGroupContext);\n const disabled = groupDisabled || disabledProp || item?.disabled || false;\n const isSelected = () => {\n if (selectionMode === \"single\") {\n if (item) {\n return selected?.label === label;\n }\n return selected === label;\n }\n if (selectionMode === \"multiple\") {\n const selectedItems = Array.isArray(selected) ? selected : selected ? [selected] : [];\n if (item) {\n return selectedItems.some(\n (selectedItem) => selectedItem.label === label\n );\n }\n return selectedItems.includes(label);\n }\n return false;\n };\n const onClickHandler = (e) => {\n if (disabled) return;\n onClick?.(e);\n setCurrentFocus?.(label);\n if (selectionMode === \"single\") {\n if (!item && selected === label || item && selected?.label === label) {\n if (!controlled) {\n setSelected?.(void 0);\n }\n onSelectionChange?.(void 0);\n return;\n }\n if (item) {\n if (!controlled) {\n setSelected?.(item);\n }\n onSelectionChange?.(item);\n return;\n }\n if (!item) {\n if (!controlled) {\n setSelected?.(label);\n }\n onSelectionChange?.(label);\n return;\n }\n }\n if (selectionMode === \"multiple\") {\n const selectedItems = Array.isArray(selected) ? selected : selected ? [selected] : [];\n if (item && selectedItems.some((selectedItem) => selectedItem.label === label)) {\n const selectedItemsWithItemRemoved = selectedItems.filter(\n (selectedItem) => selectedItem.label !== label\n );\n setSelected?.(selectedItemsWithItemRemoved);\n onSelectionChange?.(selectedItemsWithItemRemoved);\n return;\n }\n if (!item && selectedItems.includes(label)) {\n const selectedItemsWithItemRemoved = selectedItems.filter(\n (selectedItem) => selectedItem !== label\n );\n setSelected?.(selectedItemsWithItemRemoved);\n onSelectionChange?.(selectedItemsWithItemRemoved);\n return;\n }\n if (item) {\n const selectedItemsWithItemAdded = [...selectedItems, item];\n setSelected?.(selectedItemsWithItemAdded);\n onSelectionChange?.(selectedItemsWithItemAdded);\n return;\n }\n if (!item) {\n const selectedItemsWithItemAdded = [...selectedItems, label];\n setSelected?.(selectedItemsWithItemAdded);\n onSelectionChange?.(selectedItemsWithItemAdded);\n return;\n }\n }\n };\n return /* @__PURE__ */ jsxs(\n \"li\",\n {\n className: ListboxOptionClassNames,\n \"data-anv\": \"listbox-option\",\n role: \"option\",\n \"aria-disabled\": disabled,\n \"data-focused\": currentFocus === label,\n \"aria-selected\": isSelected(),\n id: label,\n onClick: onClickHandler,\n ref,\n value: value ?? label,\n ...rest,\n children: [\n /* @__PURE__ */ jsx(\n Flex,\n {\n className: styles[\"children\"],\n grow: 1,\n shrink: 1,\n alignItems,\n justifyItems,\n alignContent,\n justifyContent,\n placeItems,\n placeContent,\n children\n }\n ),\n /* @__PURE__ */ jsx(\n Icon,\n {\n \"aria-hidden\": true,\n svg: Check,\n inherit: true,\n className: styles[\"Icon\"],\n style: { opacity: isSelected() ? 1 : 0 }\n }\n )\n ]\n }\n );\n }\n);\nListboxOption.displayName = \"ListboxOption\";\n\nconst scrollToOption = (node) => {\n node?.scrollIntoView({\n block: \"nearest\",\n inline: \"center\"\n });\n};\nconst onListboxKeyDown = (e, context) => {\n const {\n options,\n currentFocus,\n selectionMode,\n onSelectionChange,\n selected,\n setSelected,\n items,\n controlled\n } = context;\n if (!options) return;\n const currentNode = Array.from(options).find(\n (node) => node.id === currentFocus\n );\n const currentIndex = Array.from(options).indexOf(currentNode);\n switch (e.code) {\n case \"ArrowDown\":\n e.preventDefault();\n if (currentIndex === options.length - 1) {\n goTo(options[0], 0, context);\n } else {\n goTo(options[currentIndex + 1], currentIndex + 1, context);\n }\n break;\n case \"ArrowUp\":\n e.preventDefault();\n if (currentIndex === 0) {\n goTo(options[options.length - 1], options.length - 1, context);\n } else {\n goTo(options[currentIndex - 1], currentIndex - 1, context);\n }\n break;\n case \"Home\":\n e.preventDefault();\n goTo(options[0], 0, context);\n break;\n case \"End\":\n e.preventDefault();\n goTo(options[options.length - 1], options.length - 1, context);\n break;\n case \"Enter\":\n case \"Space\":\n e.preventDefault();\n if (!currentFocus) return;\n if (controlled) return;\n if (selectionMode === \"single\") {\n if (typeof selected === \"object\" ? selected.label === currentFocus : selected === currentFocus) {\n setSelected?.(void 0);\n onSelectionChange?.(void 0);\n return;\n }\n if (items) {\n const enabledItems = items.filter((item) => !item?.disabled);\n setSelected?.(enabledItems[currentIndex]);\n onSelectionChange?.(enabledItems[currentIndex]);\n return;\n }\n if (!items) {\n setSelected?.(currentFocus);\n onSelectionChange?.(currentFocus);\n return;\n }\n }\n if (selectionMode === \"multiple\") {\n const selectedItems = Array.isArray(selected) ? selected : [selected];\n if (items) {\n const focusedItem = items.find(\n (item) => item.label === currentFocus\n );\n if (selectedItems.includes(focusedItem)) {\n const selectedItemsWithItemRemoved = selectedItems.filter(\n (selectedItem) => selectedItem !== focusedItem\n );\n setSelected?.(selectedItemsWithItemRemoved);\n onSelectionChange?.(selectedItemsWithItemRemoved);\n return;\n } else {\n const selectedItemsWithItemAdded = [...selectedItems, focusedItem];\n setSelected?.(selectedItemsWithItemAdded);\n onSelectionChange?.(selectedItemsWithItemAdded);\n return;\n }\n }\n if (!items) {\n if (selectedItems.includes(currentFocus)) {\n setSelected?.(\n selectedItems.filter((item) => item !== currentFocus)\n );\n onSelectionChange?.(\n selectedItems.filter((item) => item !== currentFocus)\n );\n return;\n }\n setSelected?.([...selectedItems, currentFocus]);\n onSelectionChange?.([...selectedItems, currentFocus]);\n }\n }\n break;\n }\n};\nconst goTo = (option, index, context) => {\n const {\n setCurrentFocus,\n setSelected,\n selectionMode,\n disableAutoSelectOnFocus,\n onSelectionChange,\n items,\n controlled\n } = context;\n scrollToOption(option);\n if (disableAutoSelectOnFocus || selectionMode === \"multiple\") {\n setCurrentFocus(option?.id);\n return;\n }\n setCurrentFocus(option?.id);\n if (controlled) return;\n if (items) {\n const enabledItems = items.filter((item) => !item?.disabled);\n setSelected(enabledItems[index]);\n onSelectionChange?.(enabledItems[index]);\n } else {\n setSelected(option?.id);\n onSelectionChange?.(option?.id);\n }\n};\n\nconst ListboxContext = createContext(\n null\n);\nconst ListboxElement = function(props, ref) {\n const { layoutStyles, componentProps } = useLayoutPropsUtil(props);\n const {\n className,\n selectionMode = \"single\",\n items,\n children,\n onKeyDown,\n onFocus,\n onSelectionChange,\n selected: selectedProp,\n defaultSelected,\n disableAutoSelectOnFocus,\n style,\n ...rest\n } = componentProps;\n const listboxRef = useRef(null);\n const [selected, setSelected] = useState(\n selectedProp || defaultSelected\n );\n const [options, setOptions] = useState();\n const [typeAhead, updateTypeAhead] = useTypeAhead();\n const [currentFocus, setCurrentFocus] = useState(\n Array.isArray(selected) ? typeof selected[0] === \"object\" ? selected[0].label : selected[0] : typeof selected === \"object\" ? selected?.label : selected\n );\n const ListboxClassNames = cx(styles[\"listbox\"], className, {});\n const controlled = selectedProp !== void 0;\n useEffect(() => {\n if (listboxRef.current) {\n setOptions(\n listboxRef.current.querySelectorAll(\n \"[role=option]:not([aria-disabled='true'])\"\n )\n );\n }\n }, [items, listboxRef, selectionMode]);\n useEffect(() => {\n if (\"selected\" in componentProps) {\n setSelected(selectedProp);\n }\n }, [selectedProp]);\n useEffect(() => {\n if (!typeAhead.length) {\n return;\n }\n const lowerTypeAhead = typeAhead.toLowerCase();\n const nodes = options && Array.from(options).filter(\n (node2) => node2.innerText.toLowerCase().startsWith(lowerTypeAhead)\n );\n if (!nodes?.length) {\n return;\n }\n let node = nodes[0];\n if (lowerTypeAhead.length === 1 && nodes.length > 1) {\n const focusIndex = currentFocus ? nodes.map((node2) => node2.id).indexOf(currentFocus) : -1;\n if (focusIndex > -1) {\n let nextFocusIndex = focusIndex + 1;\n if (nextFocusIndex === nodes.length) {\n nextFocusIndex = 0;\n }\n node = nodes[nextFocusIndex];\n }\n }\n setCurrentFocus(node.id);\n scrollToOption(node);\n if (controlled) return;\n if (selectionMode === \"single\") {\n if (items) {\n if (disableAutoSelectOnFocus) {\n const focusedItem = items.find(\n (item) => item.label === currentFocus\n );\n setSelected?.(focusedItem);\n onSelectionChange?.(focusedItem);\n }\n return;\n }\n if (!items) {\n if (disableAutoSelectOnFocus) {\n setSelected(node.id);\n onSelectionChange?.(node.id);\n }\n return;\n }\n }\n }, [typeAhead]);\n const onKeyDownHandler = (e) => {\n onKeyDown?.(e);\n if (new RegExp(/^[a-zA-Z0-9]$/i).test(e.key)) {\n e.preventDefault();\n e.stopPropagation();\n updateTypeAhead(e.key);\n return;\n }\n onListboxKeyDown(e, {\n setCurrentFocus,\n currentFocus,\n setSelected,\n selected,\n selectionMode,\n options,\n onSelectionChange,\n disableAutoSelectOnFocus: !!disableAutoSelectOnFocus,\n items\n });\n };\n const onFocusHandler = (e) => {\n onFocus?.(e);\n if (!options) return;\n if (selectionMode === \"single\") {\n const currentFocusExists = Array.from(options).some(\n (item) => item.id === currentFocus\n );\n if (currentFocus && currentFocusExists) return;\n if (!items) {\n if (currentFocusExists) {\n setCurrentFocus(selected);\n return;\n }\n setCurrentFocus(options[0].id);\n return;\n }\n if (currentFocusExists) {\n setCurrentFocus(selected?.label);\n return;\n }\n setCurrentFocus(items?.[0].label);\n return;\n }\n if (selectionMode === \"multiple\") {\n const selectedArr = Array.isArray(selected) ? selected : [selected];\n const currentFocusExists = Array.from(options).some(\n (item) => item.id === currentFocus\n );\n if (currentFocus && currentFocusExists) return;\n if (!items) {\n console.log({ currentFocus, currentFocusExists });\n if (currentFocusExists) {\n setCurrentFocus(selectedArr[0].label);\n return;\n }\n setCurrentFocus(options[0].id);\n return;\n }\n if (currentFocusExists) {\n setCurrentFocus(selectedArr[0]?.label);\n return;\n }\n setCurrentFocus(items?.[0].label);\n return;\n }\n setCurrentFocus(options[0].id);\n };\n const mergeRef = useMergeRefs([ref, listboxRef]);\n const styleCombined = {\n ...style,\n ...layoutStyles\n };\n const value = useMemo(\n () => ({\n setCurrentFocus,\n currentFocus,\n setSelected,\n selected,\n selectionMode,\n items,\n options,\n onSelectionChange,\n disableAutoSelectOnFocus: !!disableAutoSelectOnFocus,\n controlled\n }),\n [\n currentFocus,\n disableAutoSelectOnFocus,\n onSelectionChange,\n options,\n selected,\n selectionMode,\n items,\n controlled\n ]\n );\n return /* @__PURE__ */ jsx(ListboxContext.Provider, { value, children: /* @__PURE__ */ jsx(\n \"ul\",\n {\n tabIndex: 0,\n role: \"listbox\",\n style: styleCombined,\n \"aria-multiselectable\": selectionMode === \"multiple\" ? \"true\" : \"false\",\n \"aria-activedescendant\": currentFocus,\n className: ListboxClassNames,\n \"data-anv\": \"listbox\",\n onKeyDown: onKeyDownHandler,\n onFocus: onFocusHandler,\n ...rest,\n ref: mergeRef,\n children: items ? children?.({ items }) : children\n }\n ) });\n};\nconst useListbox = () => {\n const context = useContext(ListboxContext);\n if (context == null) {\n throw new Error(\"useListbox must be wrapped in <Listbox />\");\n }\n return context;\n};\nListboxElement.displayName = \"Listbox\";\nconst Listbox = Object.assign(\n forwardRef(ListboxElement),\n {\n /**\n * ListboxOption component for individual selectable items within a listbox.\n *\n * Features:\n * - Displays selectable options with proper ARIA attributes\n * - Supports disabled state for non-selectable options\n * - Keyboard navigation support\n * - Accessible with screen reader support\n *\n * @example\n * <Listbox.Option value=\"option1\" label=\"Option 1\" />\n */\n Option: ListboxOption,\n /**\n * ListboxOptionGroup component for grouping related options within a listbox.\n *\n * Features:\n * - Groups related options with a descriptive label\n * - Maintains proper ARIA structure for accessibility\n * - Supports keyboard navigation within groups\n * - Visual separation of option categories\n *\n * @example\n * <Listbox.OptionGroup label=\"Fruits\">\n * <Listbox.Option value=\"apple\">Apple</Listbox.Option>\n * <Listbox.Option value=\"banana\">Banana</Listbox.Option>\n * </Listbox.OptionGroup>\n */\n OptionGroup: ListboxOptionGroup\n }\n);\n\nexport { Listbox as L, ListboxOption as a, ListboxOptionGroup as b };\n//# sourceMappingURL=Listbox-BvJLSAVO.js.map\n"],"names":["Check"],"mappings":"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"}
|
|
@@ -0,0 +1,67 @@
|
|
|
1
|
+
import { jsx } from 'react/jsx-runtime';
|
|
2
|
+
import { forwardRef } from 'react';
|
|
3
|
+
import { useTrackingId } from './useTrackingId.js';
|
|
4
|
+
import { L as ListboxOption$1, a as ListboxOptionGroup$1, b as Listbox$1 } from './Listbox-BvJLSAVO-Br5k6fmq.js';
|
|
5
|
+
|
|
6
|
+
const ListboxElement = function(props, ref) {
|
|
7
|
+
return /* @__PURE__ */ jsx(Listbox$1, { ref, ...props });
|
|
8
|
+
};
|
|
9
|
+
const ListboxOption = forwardRef(
|
|
10
|
+
(props, ref) => {
|
|
11
|
+
const data = {
|
|
12
|
+
value: props.value,
|
|
13
|
+
label: "item" in props ? props.item?.label : props.label
|
|
14
|
+
};
|
|
15
|
+
const trackingId = useTrackingId({
|
|
16
|
+
name: "ListboxOption",
|
|
17
|
+
data,
|
|
18
|
+
hasOverride: !!props["data-tracking-id"]
|
|
19
|
+
});
|
|
20
|
+
return /* @__PURE__ */ jsx(ListboxOption$1, { ref, "data-tracking-id": trackingId, ...props });
|
|
21
|
+
}
|
|
22
|
+
);
|
|
23
|
+
ListboxOption.displayName = ListboxOption$1.displayName;
|
|
24
|
+
const ListboxOptionGroup = forwardRef(
|
|
25
|
+
(props, ref) => {
|
|
26
|
+
return /* @__PURE__ */ jsx(ListboxOptionGroup$1, { ref, ...props });
|
|
27
|
+
}
|
|
28
|
+
);
|
|
29
|
+
ListboxOptionGroup.displayName = ListboxOptionGroup$1.displayName;
|
|
30
|
+
const Listbox = Object.assign(
|
|
31
|
+
forwardRef(ListboxElement),
|
|
32
|
+
{
|
|
33
|
+
/**
|
|
34
|
+
* ListboxOption component for individual selectable items within a listbox
|
|
35
|
+
*
|
|
36
|
+
* Features:
|
|
37
|
+
* - Displays selectable options with proper ARIA attributes
|
|
38
|
+
* - Supports disabled state for non-selectable options
|
|
39
|
+
* - Keyboard navigation support
|
|
40
|
+
* - Automatic tracking ID generation for analytics
|
|
41
|
+
* - Accessible with screen reader support
|
|
42
|
+
*
|
|
43
|
+
* @example
|
|
44
|
+
* <Listbox.Option value="option1" label="Option 1" />
|
|
45
|
+
*/
|
|
46
|
+
Option: ListboxOption,
|
|
47
|
+
/**
|
|
48
|
+
* ListboxOptionGroup component for grouping related options within a listbox
|
|
49
|
+
*
|
|
50
|
+
* Features:
|
|
51
|
+
* - Groups related options with a descriptive label
|
|
52
|
+
* - Maintains proper ARIA structure for accessibility
|
|
53
|
+
* - Supports keyboard navigation within groups
|
|
54
|
+
* - Visual separation of option categories
|
|
55
|
+
*
|
|
56
|
+
* @example
|
|
57
|
+
* <Listbox.OptionGroup label="Fruits">
|
|
58
|
+
* <Listbox.Option value="apple">Apple</Listbox.Option>
|
|
59
|
+
* <Listbox.Option value="banana">Banana</Listbox.Option>
|
|
60
|
+
* </Listbox.OptionGroup>
|
|
61
|
+
*/
|
|
62
|
+
OptionGroup: ListboxOptionGroup
|
|
63
|
+
}
|
|
64
|
+
);
|
|
65
|
+
|
|
66
|
+
export { Listbox as L, ListboxOption as a, ListboxOptionGroup as b };
|
|
67
|
+
//# sourceMappingURL=Listbox-dVARiucB.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"Listbox-dVARiucB.js","sources":["../src/components/Listbox/Listbox.tsx"],"sourcesContent":["import {\n ListboxProps as CoreListboxProps,\n Listbox as CoreListbox,\n ListboxOption as CoreListboxOption,\n ListboxOptionProps as CoreListboxOptionProps,\n ListboxOptionGroup as CoreListboxOptionGroup,\n ListboxOptionGroupProps as CoreListboxOptionGroupProps,\n} from \"@servicetitan/hammer-react\";\nimport { Ref, forwardRef, ForwardedRef } from \"react\";\nimport { useTrackingId } from \"../../hooks/useTrackingId\";\nimport { DataTrackingId } from \"../../types/DataTrackingId\";\n\n/**\n * Props for the Listbox component\n * @property {\"single\" | \"multiple\"} [selectionMode] - Selection mode for the listbox\n * @property {boolean} [disableAutoSelectOnFocus] - Whether to disable automatic selection when focusing on an option\n * @property {string | string[] | ItemType<T> | ItemType<T>[]} [selected] - Currently selected item(s) (controlled)\n * @property {string | string[] | ItemType<T> | ItemType<T>[]} [defaultSelected] - Default selected item(s) (uncontrolled)\n * @property {function} [onSelectionChange] - Callback when selection changes\n * @property {ItemType<T>[]} [items] - Array of items to render (when using items prop)\n * @property {ReactNode | function} [children] - Child elements or render function for items\n * @extends ComponentPropsWithoutRef<\"ul\">\n * @extends LayoutUtilProps\n */\nexport type ListboxProps<T> = CoreListboxProps<T>;\n\n/**\n * Props for the ListboxOption component\n * @property {string} value - The value of the option\n * @property {string} [label] - The display label for the option\n * @property {boolean} [disabled] - Whether the option is disabled\n * @property {ItemType<T>} [item] - The item object when using items prop\n * @extends ComponentPropsWithoutRef<\"li\">\n */\nexport type ListboxOptionProps = CoreListboxOptionProps & DataTrackingId;\n\n/**\n * Props for the ListboxOptionGroup component\n * @property {string} label - The label for the option group\n * @property {ReactNode} children - The options within this group\n * @extends ComponentPropsWithoutRef<\"div\">\n */\nexport type ListboxOptionGroupProps = CoreListboxOptionGroupProps;\n\n/**\n * Listbox component for selecting one or more items from a list\n *\n * Features:\n * - Supports single and multiple selection modes\n * - Keyboard navigation with arrow keys and type-ahead\n * - Optional auto-selection on focus\n * - Controlled and uncontrolled modes\n * - Accessible with proper ARIA attributes\n * - Supports custom item rendering\n * - Option grouping for organization\n * - Layout utilities for positioning and spacing\n * - Automatic tracking ID generation for analytics\n *\n * @template T - The type of additional properties for items\n * @example\n * <Listbox selectionMode=\"single\" onSelectionChange={handleSelection}>\n * <Listbox.Option value=\"option1\">Option 1</Listbox.Option>\n * <Listbox.Option value=\"option2\">Option 2</Listbox.Option>\n * </Listbox>\n */\nconst ListboxElement = function <T>(\n props: ListboxProps<T>,\n ref: ForwardedRef<HTMLUListElement>,\n) {\n return <CoreListbox ref={ref} {...props} />;\n};\n\n/**\n * ListboxOption component for individual selectable items within a listbox\n *\n * Features:\n * - Displays selectable options with proper ARIA attributes\n * - Supports disabled state for non-selectable options\n * - Keyboard navigation support\n * - Automatic tracking ID generation for analytics\n * - Accessible with screen reader support\n *\n * @example\n * <ListboxOption value=\"option1\" label=\"Option 1\" />\n */\nexport const ListboxOption = forwardRef(\n (props: ListboxOptionProps, ref: Ref<HTMLLIElement>) => {\n const data = {\n value: props.value,\n label: \"item\" in props ? props.item?.label : props.label,\n };\n\n const trackingId = useTrackingId({\n name: \"ListboxOption\",\n data,\n hasOverride: !!props[\"data-tracking-id\"],\n });\n\n return (\n <CoreListboxOption ref={ref} data-tracking-id={trackingId} {...props} />\n );\n },\n);\n\nListboxOption.displayName = CoreListboxOption.displayName;\n\n/**\n * ListboxOptionGroup component for grouping related options within a listbox\n *\n * Features:\n * - Groups related options with a descriptive label\n * - Maintains proper ARIA structure for accessibility\n * - Supports keyboard navigation within groups\n * - Visual separation of option categories\n *\n * @example\n * <ListboxOptionGroup label=\"Fruits\">\n * <ListboxOption value=\"apple\">Apple</ListboxOption>\n * <ListboxOption value=\"banana\">Banana</ListboxOption>\n * </ListboxOptionGroup>\n */\nexport const ListboxOptionGroup = forwardRef(\n (props: ListboxOptionGroupProps, ref: Ref<HTMLDivElement>) => {\n return <CoreListboxOptionGroup ref={ref} {...props} />;\n },\n);\nListboxOptionGroup.displayName = CoreListboxOptionGroup.displayName;\n\n/**\n * Listbox component for selecting one or more items from a list\n *\n * Features:\n * - Supports single and multiple selection modes\n * - Keyboard navigation with arrow keys and type-ahead\n * - Optional auto-selection on focus\n * - Controlled and uncontrolled modes\n * - Accessible with proper ARIA attributes\n * - Supports custom item rendering\n * - Option grouping for organization\n * - Layout utilities for positioning and spacing\n * - Automatic tracking ID generation for analytics\n *\n * @template T - The type of additional properties for items\n * @example\n * <Listbox selectionMode=\"single\" onSelectionChange={handleSelection}>\n * <Listbox.Option value=\"option1\">Option 1</Listbox.Option>\n * <Listbox.Option value=\"option2\">Option 2</Listbox.Option>\n * </Listbox>\n */\nexport const Listbox = Object.assign(\n forwardRef(ListboxElement) as <T>(\n props: ListboxProps<T> & { ref?: React.ForwardedRef<HTMLUListElement> },\n ) => ReturnType<typeof ListboxElement>,\n {\n /**\n * ListboxOption component for individual selectable items within a listbox\n *\n * Features:\n * - Displays selectable options with proper ARIA attributes\n * - Supports disabled state for non-selectable options\n * - Keyboard navigation support\n * - Automatic tracking ID generation for analytics\n * - Accessible with screen reader support\n *\n * @example\n * <Listbox.Option value=\"option1\" label=\"Option 1\" />\n */\n Option: ListboxOption,\n /**\n * ListboxOptionGroup component for grouping related options within a listbox\n *\n * Features:\n * - Groups related options with a descriptive label\n * - Maintains proper ARIA structure for accessibility\n * - Supports keyboard navigation within groups\n * - Visual separation of option categories\n *\n * @example\n * <Listbox.OptionGroup label=\"Fruits\">\n * <Listbox.Option value=\"apple\">Apple</Listbox.Option>\n * <Listbox.Option value=\"banana\">Banana</Listbox.Option>\n * </Listbox.OptionGroup>\n */\n OptionGroup: ListboxOptionGroup,\n },\n);\n"],"names":["CoreListbox","CoreListboxOption","CoreListboxOptionGroup"],"mappings":";;;;;AAiEA,MAAM,cAAA,GAAiB,SACrB,KAAA,EACA,GACA,EAAA;AACA,EAAA,uBAAQ,GAAA,CAAAA,SAAA,EAAA,EAAY,GAAW,EAAA,GAAG,KAAO,EAAA,CAAA;AAC3C,CAAA;AAeO,MAAM,aAAgB,GAAA,UAAA;AAAA,EAC3B,CAAC,OAA2B,GAA4B,KAAA;AACtD,IAAA,MAAM,IAAO,GAAA;AAAA,MACX,OAAO,KAAM,CAAA,KAAA;AAAA,MACb,OAAO,MAAU,IAAA,KAAA,GAAQ,KAAM,CAAA,IAAA,EAAM,QAAQ,KAAM,CAAA;AAAA,KACrD;AAEA,IAAA,MAAM,aAAa,aAAc,CAAA;AAAA,MAC/B,IAAM,EAAA,eAAA;AAAA,MACN,IAAA;AAAA,MACA,WAAa,EAAA,CAAC,CAAC,KAAA,CAAM,kBAAkB;AAAA,KACxC,CAAA;AAED,IAAA,2BACGC,eAAkB,EAAA,EAAA,GAAA,EAAU,kBAAkB,EAAA,UAAA,EAAa,GAAG,KAAO,EAAA,CAAA;AAAA;AAG5E;AAEA,aAAA,CAAc,cAAcA,eAAkB,CAAA,WAAA;AAiBvC,MAAM,kBAAqB,GAAA,UAAA;AAAA,EAChC,CAAC,OAAgC,GAA6B,KAAA;AAC5D,IAAA,uBAAQ,GAAA,CAAAC,oBAAA,EAAA,EAAuB,GAAW,EAAA,GAAG,KAAO,EAAA,CAAA;AAAA;AAExD;AACA,kBAAA,CAAmB,cAAcA,oBAAuB,CAAA,WAAA;AAuBjD,MAAM,UAAU,MAAO,CAAA,MAAA;AAAA,EAC5B,WAAW,cAAc,CAAA;AAAA,EAGzB;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,IAcE,MAAQ,EAAA,aAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,IAgBR,WAAa,EAAA;AAAA;AAEjB;;;;"}
|
package/dist/Listbox.js
CHANGED
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
export { L as Listbox, a as ListboxOption, b as ListboxOptionGroup, L as default } from './Listbox-
|
|
1
|
+
export { L as Listbox, a as ListboxOption, b as ListboxOptionGroup, L as default } from './Listbox-dVARiucB.js';
|
|
2
2
|
//# sourceMappingURL=Listbox.js.map
|
package/dist/{LocalizationProvider-FkvhW-le-DPTpcI0N.js → LocalizationProvider-VtRAfGBT-Bo8XuFoE.js}
RENAMED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import { jsx } from 'react/jsx-runtime';
|
|
2
2
|
import { useMemo } from 'react';
|
|
3
3
|
import { a as useTranslations, L as LocalizationContext } from './LocalizationContext-UsmB5mnR-BUIYgNp2.js';
|
|
4
|
-
import { u as useLayoutPropsUtil } from './useLayoutPropsUtil-
|
|
4
|
+
import { u as useLayoutPropsUtil } from './useLayoutPropsUtil-DWACCL8v-CZNrcQT-.js';
|
|
5
5
|
|
|
6
6
|
const LocalizationProvider = (props) => {
|
|
7
7
|
const { layoutStyles, componentProps } = useLayoutPropsUtil(props);
|
|
@@ -14,4 +14,4 @@ const LocalizationProvider = (props) => {
|
|
|
14
14
|
};
|
|
15
15
|
|
|
16
16
|
export { LocalizationProvider as L };
|
|
17
|
-
//# sourceMappingURL=LocalizationProvider-
|
|
17
|
+
//# sourceMappingURL=LocalizationProvider-VtRAfGBT-Bo8XuFoE.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"LocalizationProvider-
|
|
1
|
+
{"version":3,"file":"LocalizationProvider-VtRAfGBT-Bo8XuFoE.js","sources":["../../hammer-react/dist/LocalizationProvider-VtRAfGBT.js"],"sourcesContent":["import { jsx } from 'react/jsx-runtime';\nimport { useMemo } from 'react';\nimport { a as useTranslations, L as LocalizationContext } from './LocalizationContext-UsmB5mnR.js';\nimport { u as useLayoutPropsUtil } from './useLayoutPropsUtil-DWACCL8v.js';\n\nconst LocalizationProvider = (props) => {\n const { layoutStyles, componentProps } = useLayoutPropsUtil(props);\n const { children, translationData, style, ...rest } = componentProps;\n const { locale = \"en\", dir, translations } = translationData;\n const styleCombined = { ...style, ...layoutStyles };\n const { translations: t } = useTranslations(translations);\n const value = useMemo(() => ({ t, locale }), [locale, t]);\n return /* @__PURE__ */ jsx(LocalizationContext.Provider, { value, children: /* @__PURE__ */ jsx(\"div\", { style: styleCombined, ...rest, dir, children }) });\n};\n\nexport { LocalizationProvider as L };\n//# sourceMappingURL=LocalizationProvider-VtRAfGBT.js.map\n"],"names":[],"mappings":";;;;;AAKK,MAAC,oBAAoB,GAAG,CAAC,KAAK,KAAK;AACxC,EAAE,MAAM,EAAE,YAAY,EAAE,cAAc,EAAE,GAAG,kBAAkB,CAAC,KAAK,CAAC;AACpE,EAAE,MAAM,EAAE,QAAQ,EAAE,eAAe,EAAE,KAAK,EAAE,GAAG,IAAI,EAAE,GAAG,cAAc;AACtE,EAAE,MAAM,EAAE,MAAM,GAAG,IAAI,EAAE,GAAG,EAAE,YAAY,EAAE,GAAG,eAAe;AAC9D,EAAE,MAAM,aAAa,GAAG,EAAE,GAAG,KAAK,EAAE,GAAG,YAAY,EAAE;AACrD,EAAE,MAAM,EAAE,YAAY,EAAE,CAAC,EAAE,GAAG,eAAe,CAAC,YAAY,CAAC;AAC3D,EAAE,MAAM,KAAK,GAAG,OAAO,CAAC,OAAO,EAAE,CAAC,EAAE,MAAM,EAAE,CAAC,EAAE,CAAC,MAAM,EAAE,CAAC,CAAC,CAAC;AAC3D,EAAE,uBAAuB,GAAG,CAAC,mBAAmB,CAAC,QAAQ,EAAE,EAAE,KAAK,EAAE,QAAQ,kBAAkB,GAAG,CAAC,KAAK,EAAE,EAAE,KAAK,EAAE,aAAa,EAAE,GAAG,IAAI,EAAE,GAAG,EAAE,QAAQ,EAAE,CAAC,EAAE,CAAC;AAC7J;;;;"}
|
|
@@ -1,3 +1,3 @@
|
|
|
1
|
-
export { L as LocalizationProvider, L as default } from './LocalizationProvider-
|
|
1
|
+
export { L as LocalizationProvider, L as default } from './LocalizationProvider-VtRAfGBT-Bo8XuFoE.js';
|
|
2
2
|
export { L as LocalizationContext, u as useLocalizationContext } from './LocalizationContext-UsmB5mnR-BUIYgNp2.js';
|
|
3
3
|
//# sourceMappingURL=LocalizationProvider.js.map
|