@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
package/dist/ProgressBar.js
CHANGED
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
export { P as ProgressBar, P as default } from './ProgressBar-
|
|
1
|
+
export { P as ProgressBar, P as default } from './ProgressBar-BotOFymw.js';
|
|
2
2
|
//# sourceMappingURL=ProgressBar.js.map
|
|
@@ -2,12 +2,13 @@ import { jsxs, jsx } from 'react/jsx-runtime';
|
|
|
2
2
|
import * as React from 'react';
|
|
3
3
|
import { forwardRef, useState, useId } from 'react';
|
|
4
4
|
import { c as cx } from './index-tZvMCc77.js';
|
|
5
|
-
import { I as Icon } from './Icon-
|
|
5
|
+
import { I as Icon } from './Icon-B6HmlQiR-BxQkO3X5.js';
|
|
6
6
|
import { S as SrOnly } from './SrOnly-BsKDHetF-B93X65F1.js';
|
|
7
|
-
import { L as Label
|
|
8
|
-
import { u as useLayoutPropsUtil } from './useLayoutPropsUtil-
|
|
7
|
+
import { L as Label } from './ProgressBar-Cfi5zZRy-BpESsdh_.js';
|
|
8
|
+
import { u as useLayoutPropsUtil } from './useLayoutPropsUtil-DWACCL8v-CZNrcQT-.js';
|
|
9
|
+
import { H as Helper } from './Helper-C9sHaTrI-C5fAsK6i.js';
|
|
9
10
|
|
|
10
|
-
import './Radio-
|
|
11
|
+
import './Radio-7U7IBI58.css';const SvgRadioButtonUnchecked = (props) => /* @__PURE__ */ React.createElement("svg", { xmlns: "http://www.w3.org/2000/svg", width: "1em", height: "1em", viewBox: "0 0 24 24", ...props }, /* @__PURE__ */ React.createElement("path", { d: "M12 2C6.48 2 2 6.48 2 12s4.48 10 10 10 10-4.48 10-10S17.52 2 12 2zm0 18c-4.42 0-8-3.58-8-8s3.58-8 8-8 8 3.58 8 8-3.58 8-8 8z" }));
|
|
11
12
|
|
|
12
13
|
const SvgRadioButtonChecked = (props) => /* @__PURE__ */ React.createElement("svg", { xmlns: "http://www.w3.org/2000/svg", width: "1em", height: "1em", viewBox: "0 0 24 24", ...props }, /* @__PURE__ */ React.createElement("path", { d: "M12 2C6.48 2 2 6.48 2 12s4.48 10 10 10 10-4.48 10-10S17.52 2 12 2zm0 18c-4.42 0-8-3.58-8-8s3.58-8 8-8 8 3.58 8 8-3.58 8-8 8z" }), /* @__PURE__ */ React.createElement("circle", { cx: 12, cy: 12, r: 5 }));
|
|
13
14
|
|
|
@@ -190,9 +191,28 @@ const RadioElement = forwardRef((props, ref) => {
|
|
|
190
191
|
] });
|
|
191
192
|
});
|
|
192
193
|
const Radio = Object.assign(RadioElement, {
|
|
194
|
+
/**
|
|
195
|
+
* RadioGroup component for grouping related radio options.
|
|
196
|
+
*
|
|
197
|
+
* Features:
|
|
198
|
+
* - Groups multiple radio options together
|
|
199
|
+
* - Legend support for group labeling
|
|
200
|
+
* - Required field indication
|
|
201
|
+
* - Accessibility support with proper fieldset semantics
|
|
202
|
+
* - Layout utility props for positioning and spacing
|
|
203
|
+
* - Focus and blur event handling
|
|
204
|
+
* - More info support for additional context
|
|
205
|
+
*
|
|
206
|
+
* @example
|
|
207
|
+
* <Radio.Group legend="Choose your preference" required>
|
|
208
|
+
* <Radio label="Option A" value="a" />
|
|
209
|
+
* <Radio label="Option B" value="b" />
|
|
210
|
+
* <Radio label="Option C" value="c" />
|
|
211
|
+
* </Radio.Group>
|
|
212
|
+
*/
|
|
193
213
|
Group: RadioGroup
|
|
194
214
|
});
|
|
195
215
|
RadioElement.displayName = "RadioElement";
|
|
196
216
|
|
|
197
217
|
export { RadioGroup as R, Radio as a };
|
|
198
|
-
//# sourceMappingURL=Radio-
|
|
218
|
+
//# sourceMappingURL=Radio-7U7IBI58-BDhdZJoC.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"Radio-7U7IBI58-BDhdZJoC.js","sources":["../../hammer-icon/mdi/two-tone/radio_button_unchecked.svg","../../hammer-icon/mdi/two-tone/radio_button_checked.svg","../../hammer-react/dist/Radio-7U7IBI58.js"],"sourcesContent":["import * as React from \"react\";\nconst SvgRadioButtonUnchecked = (props) => /* @__PURE__ */ React.createElement(\"svg\", { xmlns: \"http://www.w3.org/2000/svg\", width: \"1em\", height: \"1em\", viewBox: \"0 0 24 24\", ...props }, /* @__PURE__ */ React.createElement(\"path\", { d: \"M12 2C6.48 2 2 6.48 2 12s4.48 10 10 10 10-4.48 10-10S17.52 2 12 2zm0 18c-4.42 0-8-3.58-8-8s3.58-8 8-8 8 3.58 8 8-3.58 8-8 8z\" }));\nexport default SvgRadioButtonUnchecked;\n","import * as React from \"react\";\nconst SvgRadioButtonChecked = (props) => /* @__PURE__ */ React.createElement(\"svg\", { xmlns: \"http://www.w3.org/2000/svg\", width: \"1em\", height: \"1em\", viewBox: \"0 0 24 24\", ...props }, /* @__PURE__ */ React.createElement(\"path\", { d: \"M12 2C6.48 2 2 6.48 2 12s4.48 10 10 10 10-4.48 10-10S17.52 2 12 2zm0 18c-4.42 0-8-3.58-8-8s3.58-8 8-8 8 3.58 8 8-3.58 8-8 8z\" }), /* @__PURE__ */ React.createElement(\"circle\", { cx: 12, cy: 12, r: 5 }));\nexport default SvgRadioButtonChecked;\n","import { jsxs, jsx } from 'react/jsx-runtime';\nimport { forwardRef, useState, useId } from 'react';\nimport cx from 'classnames';\nimport { I as Icon } from './Icon-B6HmlQiR.js';\nimport Radio_outline from '@servicetitan/hammer-icon/mdi/two-tone/radio_button_unchecked.svg';\nimport Radio_checked from '@servicetitan/hammer-icon/mdi/two-tone/radio_button_checked.svg';\nimport { S as SrOnly } from './SrOnly-BsKDHetF.js';\nimport { L as Label } from './ProgressBar-Cfi5zZRy.js';\nimport { u as useLayoutPropsUtil } from './useLayoutPropsUtil-DWACCL8v.js';\nimport { H as Helper } from './Helper-C9sHaTrI.js';\n\nimport './Radio.css';const radio = \"_radio_1r8vp_2\";\nconst wrapper = \"_wrapper_1r8vp_30\";\nconst legend = \"_legend_1r8vp_86\";\nconst children = \"_children_1r8vp_98\";\nconst error = \"_error_1r8vp_109\";\nconst styles = {\n\tradio: radio,\n\t\"radio-group\": \"_radio-group_1r8vp_15\",\n\twrapper: wrapper,\n\t\"focus-label\": \"_focus-label_1r8vp_44\",\n\t\"icon-wrapper\": \"_icon-wrapper_1r8vp_50\",\n\tlegend: legend,\n\tchildren: children,\n\t\"helper-wrapper\": \"_helper-wrapper_1r8vp_104\",\n\terror: error,\n\t\"icon-unchecked\": \"_icon-unchecked_1r8vp_152\",\n\t\"icon-checked\": \"_icon-checked_1r8vp_153\",\n\t\"sr-only\": \"_sr-only_1r8vp_200\"\n};\n\nconst RadioGroup = forwardRef(\n (props, ref) => {\n const { layoutStyles, componentProps } = useLayoutPropsUtil(props);\n const {\n className,\n children,\n legend,\n moreInfo,\n onBlur,\n onFocus,\n required,\n style,\n ...rest\n } = componentProps;\n const RadioGroupClassNames = cx(styles[\"radio-group\"], className);\n const [openInfo, setOpenInfo] = useState(false);\n const styleCombined = {\n ...style,\n ...layoutStyles,\n alignItems: layoutStyles?.alignItems ?? (layoutStyles?.flexDirection === \"row\" ? \"center\" : void 0)\n };\n const focusHandler = (e) => {\n onFocus?.(e);\n setOpenInfo(true);\n };\n const blurHandler = (e) => {\n onBlur?.(e);\n setOpenInfo(false);\n };\n return /* @__PURE__ */ jsxs(\n \"fieldset\",\n {\n role: \"radiogroup\",\n \"data-anv\": \"radio-group\",\n className: RadioGroupClassNames,\n \"aria-required\": required,\n style: styleCombined,\n ref,\n onFocus: focusHandler,\n onBlur: blurHandler,\n ...rest,\n children: [\n /* @__PURE__ */ jsxs(\"legend\", { className: styles[\"legend\"], children: [\n legend,\n required && \", required\",\n moreInfo && /* @__PURE__ */ jsx(SrOnly, { children: moreInfo })\n ] }),\n /* @__PURE__ */ jsx(\n Label,\n {\n \"aria-hidden\": true,\n moreInfo,\n required,\n openMoreInfo: openInfo,\n children: legend\n }\n ),\n /* @__PURE__ */ jsx(\n \"div\",\n {\n className: styles[\"children\"],\n style: {\n flexDirection: layoutStyles?.flexDirection,\n gap: layoutStyles?.gap\n },\n children\n }\n )\n ]\n }\n );\n }\n);\nRadioGroup.displayName = \"RadioGroup\";\n\nconst RadioElement = forwardRef((props, ref) => {\n const { layoutStyles, componentProps } = useLayoutPropsUtil(props);\n const {\n className,\n checked,\n defaultChecked,\n value,\n icons,\n error,\n label,\n onChange,\n style,\n description,\n hideRadio = false,\n ...rest\n } = componentProps;\n const {\n checked: checkedIcon = Radio_checked,\n unchecked: uncheckedIcon = Radio_outline\n } = { ...icons };\n const onChangeHandler = (e) => {\n onChange?.(e, { value, checked: e.target.checked });\n };\n const helperUid = useId();\n const wrapperClassNames = cx(\n styles[\"wrapper\"],\n { [styles[\"focus\"]]: hideRadio },\n className\n );\n const radioClassNames = cx(styles[\"radio\"], {\n [styles[\"error\"]]: error\n });\n const styleCombined = {\n ...style,\n ...layoutStyles\n };\n return /* @__PURE__ */ jsxs(\"div\", { className: wrapperClassNames, style: styleCombined, \"data-anv\": \"radio\", children: [\n /* @__PURE__ */ jsxs(\"label\", { className: radioClassNames, children: [\n /* @__PURE__ */ jsx(\n \"input\",\n {\n type: \"radio\",\n \"aria-checked\": checked ?? defaultChecked,\n checked,\n defaultChecked,\n value,\n onChange: onChangeHandler,\n \"aria-describedby\": helperUid,\n ref,\n ...rest\n }\n ),\n /* @__PURE__ */ jsxs(\n \"span\",\n {\n className: cx(styles[\"icon-wrapper\"], {\n [styles[\"sr-only\"]]: hideRadio\n }),\n children: [\n /* @__PURE__ */ jsx(\n Icon,\n {\n size: \"large\",\n svg: uncheckedIcon,\n className: cx([styles[\"icon-unchecked\"]])\n }\n ),\n /* @__PURE__ */ jsx(\n Icon,\n {\n size: \"large\",\n svg: checkedIcon,\n className: cx([styles[\"icon-checked\"]])\n }\n )\n ]\n }\n ),\n /* @__PURE__ */ jsx(\"span\", { className: cx({ [styles[\"focus-label\"]]: hideRadio }), children: label })\n ] }),\n description ? /* @__PURE__ */ jsx(\"div\", { className: styles[\"helper-wrapper\"], children: /* @__PURE__ */ jsx(Helper, { id: helperUid, description }) }) : null\n ] });\n});\nconst Radio = Object.assign(RadioElement, {\n /**\n * RadioGroup component for grouping related radio options.\n *\n * Features:\n * - Groups multiple radio options together\n * - Legend support for group labeling\n * - Required field indication\n * - Accessibility support with proper fieldset semantics\n * - Layout utility props for positioning and spacing\n * - Focus and blur event handling\n * - More info support for additional context\n *\n * @example\n * <Radio.Group legend=\"Choose your preference\" required>\n * <Radio label=\"Option A\" value=\"a\" />\n * <Radio label=\"Option B\" value=\"b\" />\n * <Radio label=\"Option C\" value=\"c\" />\n * </Radio.Group>\n */\n Group: RadioGroup\n});\nRadioElement.displayName = \"RadioElement\";\n\nexport { Radio as R, RadioGroup as a };\n//# sourceMappingURL=Radio-7U7IBI58.js.map\n"],"names":["Radio_checked","Radio_outline"],"mappings":"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"}
|
|
@@ -0,0 +1,66 @@
|
|
|
1
|
+
import { jsx } from 'react/jsx-runtime';
|
|
2
|
+
import { forwardRef } from 'react';
|
|
3
|
+
import { useTrackingId } from './useTrackingId.js';
|
|
4
|
+
import { R as RadioGroup$1, a as Radio$1 } from './Radio-7U7IBI58-BDhdZJoC.js';
|
|
5
|
+
import { c as childrenToString } from './childrenToString-Bz9MqbHb-Bz9MqbHb.js';
|
|
6
|
+
|
|
7
|
+
const RadioElement = forwardRef(
|
|
8
|
+
(props, ref) => {
|
|
9
|
+
const data = {
|
|
10
|
+
label: childrenToString(props.label),
|
|
11
|
+
ariaLabel: props["aria-label"],
|
|
12
|
+
ariaLabelledBy: props["aria-labelledby"],
|
|
13
|
+
name: props.name,
|
|
14
|
+
value: props.value
|
|
15
|
+
};
|
|
16
|
+
const trackingId = useTrackingId({
|
|
17
|
+
name: "Radio",
|
|
18
|
+
data,
|
|
19
|
+
hasOverride: !!props["data-tracking-id"]
|
|
20
|
+
});
|
|
21
|
+
return /* @__PURE__ */ jsx(Radio$1, { ref, "data-tracking-id": trackingId, ...props });
|
|
22
|
+
}
|
|
23
|
+
);
|
|
24
|
+
RadioElement.displayName = Radio$1.displayName;
|
|
25
|
+
const RadioGroup = forwardRef(
|
|
26
|
+
(props, ref) => {
|
|
27
|
+
return /* @__PURE__ */ jsx(RadioGroup$1, { ref, ...props });
|
|
28
|
+
}
|
|
29
|
+
);
|
|
30
|
+
RadioGroup.displayName = RadioGroup$1.displayName;
|
|
31
|
+
const Radio = Object.assign(RadioElement, {
|
|
32
|
+
/**
|
|
33
|
+
* RadioGroup component for grouping related radio options.
|
|
34
|
+
*
|
|
35
|
+
* Features:
|
|
36
|
+
* - Groups multiple radio options together
|
|
37
|
+
* - Legend support for group labeling
|
|
38
|
+
* - Required field indication
|
|
39
|
+
* - Accessibility support with proper fieldset semantics
|
|
40
|
+
* - Layout utility props for positioning and spacing
|
|
41
|
+
* - Focus and blur event handling
|
|
42
|
+
* - More info support for additional context
|
|
43
|
+
* - Automatic alignment based on flex direction
|
|
44
|
+
*
|
|
45
|
+
* @example
|
|
46
|
+
* <RadioGroup legend="Choose your preference" required>
|
|
47
|
+
* <Radio label="Option A" value="a" />
|
|
48
|
+
* <Radio label="Option B" value="b" />
|
|
49
|
+
* <Radio label="Option C" value="c" />
|
|
50
|
+
* </RadioGroup>
|
|
51
|
+
*
|
|
52
|
+
* @example
|
|
53
|
+
* <RadioGroup
|
|
54
|
+
* legend="Horizontal layout"
|
|
55
|
+
* flexDirection="row"
|
|
56
|
+
* gap="4"
|
|
57
|
+
* >
|
|
58
|
+
* <Radio label="Yes" value="yes" />
|
|
59
|
+
* <Radio label="No" value="no" />
|
|
60
|
+
* </RadioGroup>
|
|
61
|
+
*/
|
|
62
|
+
Group: RadioGroup
|
|
63
|
+
});
|
|
64
|
+
|
|
65
|
+
export { Radio as R, RadioGroup as a };
|
|
66
|
+
//# sourceMappingURL=Radio-D4rRt1a6.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"Radio-D4rRt1a6.js","sources":["../src/components/Radio/Radio.tsx"],"sourcesContent":["import {\n RadioProps as CoreRadioProps,\n Radio as CoreRadio,\n RadioGroup as CoreRadioGroup,\n RadioGroupProps as CoreRadioGroupProps,\n childrenToString,\n} from \"@servicetitan/hammer-react\";\nimport { Ref, forwardRef } from \"react\";\nimport { useTrackingId } from \"../../hooks/useTrackingId\";\nimport { DataTrackingId } from \"../../types/DataTrackingId\";\n\n/**\n * Props for the Radio component\n * @property {boolean} [checked] - Controlled state\n * @property {boolean} [defaultChecked] - Uncontrolled state\n * @property {Function} [onChange] - Callback when radio is changed\n * @property {ReactElement | string} [label] - Label for Radio\n * @property {boolean} [error] - Error state for the radio\n * @property {object} [icons] - Icon overrides for checked and unchecked states\n * @property {string} [description] - Description text to display below the radio\n * @property {string} [aria-label] - Accessible label for the radio\n * @property {string} [aria-labelledby] - ID of element that labels the radio\n * @property {string} [name] - Name attribute for the radio\n * @property {string} [data-tracking-id] - Custom tracking ID for analytics\n * @extends DataTrackingId\n */\nexport type RadioProps = Omit<CoreRadioProps, \"hideRadio\"> & DataTrackingId;\n\n/**\n * Props for the RadioGroup component\n * @property {string | ReactElement} [legend] - Legend for the fieldset\n * @property {boolean} [required] - Required flag for label\n * @property {string} [moreInfo] - Additional information for the group\n */\nexport type RadioGroupProps = CoreRadioGroupProps;\n\nconst RadioElement = forwardRef(\n (props: RadioProps, ref: Ref<HTMLInputElement>) => {\n const data = {\n label: childrenToString(props.label),\n ariaLabel: props[\"aria-label\"],\n ariaLabelledBy: props[\"aria-labelledby\"],\n name: props.name,\n value: props.value,\n };\n\n const trackingId = useTrackingId({\n name: \"Radio\",\n data,\n hasOverride: !!props[\"data-tracking-id\"],\n });\n return <CoreRadio ref={ref} data-tracking-id={trackingId} {...props} />;\n },\n);\n\nRadioElement.displayName = CoreRadio.displayName;\n\n/**\n * RadioGroup component for grouping related radio options.\n *\n * Features:\n * - Groups multiple radio options together\n * - Legend support for group labeling\n * - Required field indication\n * - Accessibility support with proper fieldset semantics\n * - Layout utility props for positioning and spacing\n * - Focus and blur event handling\n * - More info support for additional context\n * - Automatic alignment based on flex direction\n *\n * @example\n * <RadioGroup legend=\"Choose your preference\" required>\n * <Radio label=\"Option A\" value=\"a\" />\n * <Radio label=\"Option B\" value=\"b\" />\n * <Radio label=\"Option C\" value=\"c\" />\n * </RadioGroup>\n *\n * @example\n * <RadioGroup\n * legend=\"Horizontal layout\"\n * flexDirection=\"row\"\n * gap=\"4\"\n * >\n * <Radio label=\"Yes\" value=\"yes\" />\n * <Radio label=\"No\" value=\"no\" />\n * </RadioGroup>\n */\nexport const RadioGroup = forwardRef(\n (props: CoreRadioGroupProps, ref: Ref<HTMLFieldSetElement>) => {\n return <CoreRadioGroup ref={ref} {...props} />;\n },\n);\nRadioGroup.displayName = CoreRadioGroup.displayName;\n\n/**\n * Radio component for single selection from a group of options.\n *\n * Features:\n * - Supports both controlled and uncontrolled modes\n * - Customizable icons for checked and unchecked states\n * - Error state with visual indicators\n * - Description text support\n * - Accessibility support with proper ARIA attributes\n * - Layout utility props for positioning and spacing\n * - Flexible labeling options\n * - Group support via Radio.Group\n * - Automatic tracking ID generation for analytics\n *\n * @example\n * <Radio\n * label=\"Option 1\"\n * value=\"option1\"\n * checked={selectedValue === \"option1\"}\n * onChange={(e, state) => setSelectedValue(state?.value)}\n * />\n *\n * @example\n * <Radio\n * label=\"Custom styled option\"\n * value=\"custom\"\n * icons={{\n * checked: CustomCheckedIcon,\n * unchecked: CustomUncheckedIcon\n * }}\n * description=\"This option has custom styling\"\n * />\n *\n * @example\n * <Radio.Group legend=\"Choose your preference\" required>\n * <Radio label=\"Option A\" value=\"a\" />\n * <Radio label=\"Option B\" value=\"b\" />\n * <Radio label=\"Option C\" value=\"c\" />\n * </Radio.Group>\n */\nexport const Radio = Object.assign(RadioElement, {\n /**\n * RadioGroup component for grouping related radio options.\n *\n * Features:\n * - Groups multiple radio options together\n * - Legend support for group labeling\n * - Required field indication\n * - Accessibility support with proper fieldset semantics\n * - Layout utility props for positioning and spacing\n * - Focus and blur event handling\n * - More info support for additional context\n * - Automatic alignment based on flex direction\n *\n * @example\n * <RadioGroup legend=\"Choose your preference\" required>\n * <Radio label=\"Option A\" value=\"a\" />\n * <Radio label=\"Option B\" value=\"b\" />\n * <Radio label=\"Option C\" value=\"c\" />\n * </RadioGroup>\n *\n * @example\n * <RadioGroup\n * legend=\"Horizontal layout\"\n * flexDirection=\"row\"\n * gap=\"4\"\n * >\n * <Radio label=\"Yes\" value=\"yes\" />\n * <Radio label=\"No\" value=\"no\" />\n * </RadioGroup>\n */\n Group: RadioGroup,\n});\n"],"names":["CoreRadio","CoreRadioGroup"],"mappings":";;;;;;AAoCA,MAAM,YAAe,GAAA,UAAA;AAAA,EACnB,CAAC,OAAmB,GAA+B,KAAA;AACjD,IAAA,MAAM,IAAO,GAAA;AAAA,MACX,KAAA,EAAO,gBAAiB,CAAA,KAAA,CAAM,KAAK,CAAA;AAAA,MACnC,SAAA,EAAW,MAAM,YAAY,CAAA;AAAA,MAC7B,cAAA,EAAgB,MAAM,iBAAiB,CAAA;AAAA,MACvC,MAAM,KAAM,CAAA,IAAA;AAAA,MACZ,OAAO,KAAM,CAAA;AAAA,KACf;AAEA,IAAA,MAAM,aAAa,aAAc,CAAA;AAAA,MAC/B,IAAM,EAAA,OAAA;AAAA,MACN,IAAA;AAAA,MACA,WAAa,EAAA,CAAC,CAAC,KAAA,CAAM,kBAAkB;AAAA,KACxC,CAAA;AACD,IAAA,2BAAQA,OAAU,EAAA,EAAA,GAAA,EAAU,kBAAkB,EAAA,UAAA,EAAa,GAAG,KAAO,EAAA,CAAA;AAAA;AAEzE,CAAA;AAEA,YAAA,CAAa,cAAcA,OAAU,CAAA,WAAA;AAgC9B,MAAM,UAAa,GAAA,UAAA;AAAA,EACxB,CAAC,OAA4B,GAAkC,KAAA;AAC7D,IAAA,uBAAQ,GAAA,CAAAC,YAAA,EAAA,EAAe,GAAW,EAAA,GAAG,KAAO,EAAA,CAAA;AAAA;AAEhD;AACA,UAAA,CAAW,cAAcA,YAAe,CAAA,WAAA;AA0C3B,MAAA,KAAA,GAAQ,MAAO,CAAA,MAAA,CAAO,YAAc,EAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EA+B/C,KAAO,EAAA;AACT,CAAC;;;;"}
|
package/dist/Radio.js
CHANGED
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
export { R as Radio, a as RadioGroup, R as default } from './Radio-
|
|
1
|
+
export { R as Radio, a as RadioGroup, R as default } from './Radio-D4rRt1a6.js';
|
|
2
2
|
//# sourceMappingURL=Radio.js.map
|
|
@@ -3,12 +3,12 @@ import { useTrackingId } from './useTrackingId.js';
|
|
|
3
3
|
import * as React from 'react';
|
|
4
4
|
import { forwardRef, useState, useId, useRef, useEffect } from 'react';
|
|
5
5
|
import { c as cx } from './index-tZvMCc77.js';
|
|
6
|
-
import { u as useMergeRefs } from './floating-ui.react-
|
|
6
|
+
import { u as useMergeRefs } from './floating-ui.react-BFNinq1w.js';
|
|
7
7
|
import { t as textfieldStyles } from './TextField.module-ChLlwuT--ChLlwuT-.js';
|
|
8
8
|
import { S as SvgClose } from './close-DZj38AEh.js';
|
|
9
9
|
import { S as SrOnly } from './SrOnly-BsKDHetF-B93X65F1.js';
|
|
10
|
-
import { I as Icon } from './Icon-
|
|
11
|
-
import { u as useLayoutPropsUtil } from './useLayoutPropsUtil-
|
|
10
|
+
import { I as Icon } from './Icon-B6HmlQiR-BxQkO3X5.js';
|
|
11
|
+
import { u as useLayoutPropsUtil } from './useLayoutPropsUtil-DWACCL8v-CZNrcQT-.js';
|
|
12
12
|
|
|
13
13
|
import './SearchField.css';const SvgSearch = (props) => /* @__PURE__ */ React.createElement("svg", { xmlns: "http://www.w3.org/2000/svg", width: "1em", height: "1em", viewBox: "0 0 24 24", ...props }, /* @__PURE__ */ React.createElement("path", { d: "M15.5 14h-.79l-.28-.27a6.5 6.5 0 0 0 1.48-5.34c-.47-2.78-2.79-5-5.59-5.34a6.505 6.505 0 0 0-7.27 7.27c.34 2.8 2.56 5.12 5.34 5.59a6.5 6.5 0 0 0 5.34-1.48l.27.28v.79l4.25 4.25c.41.41 1.08.41 1.49 0 .41-.41.41-1.08 0-1.49L15.5 14zm-6 0C7.01 14 5 11.99 5 9.5S7.01 5 9.5 5 14 7.01 14 9.5 11.99 14 9.5 14z" }));
|
|
14
14
|
|
|
@@ -154,6 +154,7 @@ const SearchField = forwardRef(
|
|
|
154
154
|
return /* @__PURE__ */ jsx(SearchField$1, { ref, "data-tracking-id": trackingId, ...props });
|
|
155
155
|
}
|
|
156
156
|
);
|
|
157
|
+
SearchField.displayName = SearchField$1.displayName;
|
|
157
158
|
|
|
158
159
|
export { SearchField as S };
|
|
159
|
-
//# sourceMappingURL=SearchField-
|
|
160
|
+
//# sourceMappingURL=SearchField-Bz4HPxCQ.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"SearchField-Bz4HPxCQ.js","sources":["../../hammer-icon/mdi/round/search.svg","../../hammer-react/dist/SearchField-Cji-FsDz.js","../src/components/SearchField/SearchField.tsx"],"sourcesContent":["import * as React from \"react\";\nconst SvgSearch = (props) => /* @__PURE__ */ React.createElement(\"svg\", { xmlns: \"http://www.w3.org/2000/svg\", width: \"1em\", height: \"1em\", viewBox: \"0 0 24 24\", ...props }, /* @__PURE__ */ React.createElement(\"path\", { d: \"M15.5 14h-.79l-.28-.27a6.5 6.5 0 0 0 1.48-5.34c-.47-2.78-2.79-5-5.59-5.34a6.505 6.505 0 0 0-7.27 7.27c.34 2.8 2.56 5.12 5.34 5.59a6.5 6.5 0 0 0 5.34-1.48l.27.28v.79l4.25 4.25c.41.41 1.08.41 1.49 0 .41-.41.41-1.08 0-1.49L15.5 14zm-6 0C7.01 14 5 11.99 5 9.5S7.01 5 9.5 5 14 7.01 14 9.5 11.99 14 9.5 14z\" }));\nexport default SvgSearch;\n","import { jsxs, jsx } from 'react/jsx-runtime';\nimport { forwardRef, useState, useId, useRef, useEffect } from 'react';\nimport cx from 'classnames';\nimport { useMergeRefs } from '@floating-ui/react';\nimport { t as textfieldStyles } from './TextField.module-ChLlwuT-.js';\nimport Close from '@servicetitan/hammer-icon/mdi/round/close.svg';\nimport Search from '@servicetitan/hammer-icon/mdi/round/search.svg';\nimport { S as SrOnly } from './SrOnly-BsKDHetF.js';\nimport { I as Icon } from './Icon-B6HmlQiR.js';\nimport { u as useLayoutPropsUtil } from './useLayoutPropsUtil-DWACCL8v.js';\n\nimport './SearchField.css';const searchfield = \"_searchfield_1s8tg_2\";\nconst clear = \"_clear_1s8tg_10\";\nconst styles = {\n\tsearchfield: searchfield,\n\t\"input-wrapper\": \"_input-wrapper_1s8tg_7\",\n\tclear: clear};\n\nconst SearchField = forwardRef(\n function SearchField2(props, ref) {\n const { layoutStyles, componentProps } = useLayoutPropsUtil(props);\n const {\n className,\n size,\n onChange,\n onClear,\n id: idProp,\n disabled,\n style,\n value,\n placeholder = \"Search...\",\n autoComplete = \"off\",\n ...rest\n } = componentProps;\n const [hasValue, setHasValue] = useState(\n rest.defaultValue || value ? true : false\n );\n const placeholderUid = useId();\n const inputRef = useRef(null);\n const styleCombined = { ...style, ...layoutStyles };\n const handleOnChange = (e) => {\n if (e.target.value) {\n setHasValue(true);\n } else {\n setHasValue(false);\n }\n onChange?.(e);\n };\n useEffect(() => {\n if (typeof value === \"undefined\") return;\n if (value === \"\" || !value) {\n setHasValue(false);\n } else {\n setHasValue(true);\n }\n }, [value]);\n const handleClear = () => {\n if (!inputRef.current) return;\n if (disabled || rest.readOnly) return;\n onClear?.();\n if (value) {\n return;\n }\n const nativeInputValueSetter = Object.getOwnPropertyDescriptor(\n window.HTMLInputElement.prototype,\n \"value\"\n )?.set;\n nativeInputValueSetter?.call(inputRef.current, \"\");\n inputRef.current.dispatchEvent(new Event(\"input\", { bubbles: true }));\n setHasValue(false);\n };\n return /* @__PURE__ */ jsxs(\n \"div\",\n {\n className: cx(\n textfieldStyles[\"textfield\"],\n styles[\"searchfield\"],\n className\n ),\n \"data-anv\": \"SearchField\",\n style: styleCombined,\n children: [\n /* @__PURE__ */ jsxs(\n \"div\",\n {\n className: cx(\n textfieldStyles[\"input-wrapper\"],\n styles[\"input-wrapper\"],\n {\n [textfieldStyles[\"small\"]]: size === \"small\",\n [textfieldStyles[\"large\"]]: size === \"large\"\n }\n ),\n role: \"presentation\",\n onClick: () => inputRef.current?.focus(),\n children: [\n /* @__PURE__ */ jsx(\"div\", { \"aria-hidden\": true, className: textfieldStyles[\"prefix\"], children: /* @__PURE__ */ jsx(Icon, { \"aria-label\": \"search\", svg: Search }) }),\n /* @__PURE__ */ jsx(\n \"input\",\n {\n className: cx(textfieldStyles[\"input\"]),\n ref: useMergeRefs([ref, inputRef]),\n onChange: handleOnChange,\n placeholder,\n value,\n type: \"search\",\n autoComplete,\n disabled,\n \"aria-describedby\": placeholderUid,\n ...rest\n }\n ),\n /* @__PURE__ */ jsx(\n Icon,\n {\n \"aria-label\": \"cancel\",\n svg: Close,\n role: \"button\",\n onClick: handleClear,\n className: styles[\"clear\"],\n \"aria-disabled\": disabled,\n style: {\n visibility: hasValue ? \"visible\" : \"hidden\"\n }\n }\n )\n ]\n }\n ),\n /* @__PURE__ */ jsx(SrOnly, { \"aria-hidden\": true, id: placeholderUid, children: placeholder })\n ]\n }\n );\n }\n);\n\nexport { SearchField as S };\n//# sourceMappingURL=SearchField-Cji-FsDz.js.map\n","import {\n SearchField as CoreSearchField,\n type SearchFieldProps as CoreSearchFieldProps,\n} from \"@servicetitan/hammer-react\";\nimport { useTrackingId } from \"../../hooks/useTrackingId\";\nimport { DataTrackingId } from \"../../types/DataTrackingId\";\nimport { forwardRef, Ref } from \"react\";\n\n/**\n * Props for the SearchField component\n * @property {string} [size] - Size of the search field (small, medium, large)\n * @property {Function} [onClear] - Callback when the clear button is clicked\n * @extends DataTrackingId\n */\nexport type SearchFieldProps = CoreSearchFieldProps & DataTrackingId;\n\n/**\n * SearchField component for text input with search functionality.\n *\n * Features:\n * - Search icon prefix for visual clarity\n * - Clear button that appears when input has value\n * - Multiple size variants (small, medium, large)\n * - Controlled and uncontrolled modes\n * - Disabled and read-only states\n * - Accessibility support with proper ARIA attributes\n * - Layout utility props for positioning and spacing\n * - Automatic value detection for clear button visibility\n * - Search-specific input type and autocomplete settings\n * - Screen reader support with placeholder announcements\n * - Automatic tracking ID generation for analytics\n *\n * @example\n * <SearchField\n * placeholder=\"Search users...\"\n * onChange={(e) => setSearchTerm(e.target.value)}\n * onClear={() => setSearchTerm(\"\")}\n * />\n *\n * @example\n * <SearchField\n * size=\"large\"\n * value={searchValue}\n * onChange={(e) => setSearchValue(e.target.value)}\n * disabled={isLoading}\n * />\n */\nexport const SearchField = forwardRef(\n (props: SearchFieldProps, ref: Ref<HTMLInputElement>) => {\n const data = {\n value: props.value,\n defaultValue: props.defaultValue,\n disabled: props.disabled,\n readOnly: props.readOnly,\n size: props.size,\n };\n\n const trackingId = useTrackingId({\n name: \"SearchField\",\n data,\n hasOverride: !!props[\"data-tracking-id\"],\n });\n return (\n <CoreSearchField ref={ref} data-tracking-id={trackingId} {...props} />\n );\n },\n);\nSearchField.displayName = CoreSearchField.displayName;\n"],"names":["SearchField","Search","Close","CoreSearchField"],"mappings":"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"}
|
package/dist/SearchField.js
CHANGED
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
export { S as SearchField } from './SearchField-
|
|
1
|
+
export { S as SearchField } from './SearchField-Bz4HPxCQ.js';
|
|
2
2
|
//# sourceMappingURL=SearchField.js.map
|
|
@@ -5,7 +5,7 @@ import { m as motion } from './proxy-CreWmH-e.js';
|
|
|
5
5
|
import { u as useReducedMotion } from './use-reduced-motion-znCm41qB.js';
|
|
6
6
|
import { u as useOptionallyControlledState } from './useOptionallyControlledState-DAv5LXXh-DAv5LXXh.js';
|
|
7
7
|
import { u as useMergeRefs } from './useMergeRefs-Bde85AWI-Bde85AWI.js';
|
|
8
|
-
import { I as Icon } from './Icon-
|
|
8
|
+
import { I as Icon } from './Icon-B6HmlQiR-BxQkO3X5.js';
|
|
9
9
|
import { D as Duration } from './primitive-BoyEHaOo.js';
|
|
10
10
|
import { useTrackingId } from './useTrackingId.js';
|
|
11
11
|
|
|
@@ -123,6 +123,22 @@ const SegmentedControlElement$1 = forwardRef((props, ref) => {
|
|
|
123
123
|
});
|
|
124
124
|
SegmentedControlElement$1.displayName = "SegmentedControl";
|
|
125
125
|
const SegmentedControl$1 = Object.assign(SegmentedControlElement$1, {
|
|
126
|
+
/**
|
|
127
|
+
* SegmentedControlSegment component for individual segments within a segmented control.
|
|
128
|
+
*
|
|
129
|
+
* Features:
|
|
130
|
+
* - Individual segment with radio input
|
|
131
|
+
* - Optional icon support
|
|
132
|
+
* - Animated selection indicator
|
|
133
|
+
* - Accessibility support with proper ARIA attributes
|
|
134
|
+
* - Context integration with parent SegmentedControl
|
|
135
|
+
* - Motion animations with reduced motion support
|
|
136
|
+
*
|
|
137
|
+
* @example
|
|
138
|
+
* <SegmentedControl.Segment value="option1" icon={Icon1}>
|
|
139
|
+
* Option 1
|
|
140
|
+
* </SegmentedControl.Segment>
|
|
141
|
+
*/
|
|
126
142
|
Segment: SegmentedControlSegment$1
|
|
127
143
|
});
|
|
128
144
|
|
|
@@ -146,6 +162,7 @@ const SegmentedControlElement = forwardRef(
|
|
|
146
162
|
);
|
|
147
163
|
}
|
|
148
164
|
);
|
|
165
|
+
SegmentedControlElement.displayName = SegmentedControl$1.displayName;
|
|
149
166
|
const SegmentedControlSegment = forwardRef(
|
|
150
167
|
(props, ref) => {
|
|
151
168
|
const data = {
|
|
@@ -166,9 +183,31 @@ const SegmentedControlSegment = forwardRef(
|
|
|
166
183
|
);
|
|
167
184
|
}
|
|
168
185
|
);
|
|
186
|
+
SegmentedControlSegment.displayName = SegmentedControlSegment$1.displayName;
|
|
169
187
|
const SegmentedControl = Object.assign(SegmentedControlElement, {
|
|
188
|
+
/**
|
|
189
|
+
* SegmentedControlSegment component for individual segments within a segmented control.
|
|
190
|
+
*
|
|
191
|
+
* Features:
|
|
192
|
+
* - Individual segment with radio input
|
|
193
|
+
* - Optional icon support
|
|
194
|
+
* - Animated selection indicator
|
|
195
|
+
* - Accessibility support with proper ARIA attributes
|
|
196
|
+
* - Context integration with parent SegmentedControl
|
|
197
|
+
* - Motion animations with reduced motion support
|
|
198
|
+
* - Icon-only mode when no children provided
|
|
199
|
+
* - Automatic tracking ID generation for analytics
|
|
200
|
+
*
|
|
201
|
+
* @example
|
|
202
|
+
* <SegmentedControl.Segment value="option1" icon={Icon1}>
|
|
203
|
+
* Option 1
|
|
204
|
+
* </SegmentedControl.Segment>
|
|
205
|
+
*
|
|
206
|
+
* @example
|
|
207
|
+
* <SegmentedControl.Segment value="icon-only" icon={IconOnly} />
|
|
208
|
+
*/
|
|
170
209
|
Segment: SegmentedControlSegment
|
|
171
210
|
});
|
|
172
211
|
|
|
173
212
|
export { SegmentedControl as S, SegmentedControlSegment as a };
|
|
174
|
-
//# sourceMappingURL=SegmentedControl-
|
|
213
|
+
//# sourceMappingURL=SegmentedControl-DKMQuf7s.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"SegmentedControl-DKMQuf7s.js","sources":["../../hammer-react/dist/SegmentedControl-CaAD848n.js","../src/components/SegmentedControl/SegmentedControl.tsx"],"sourcesContent":["import { jsx, Fragment, jsxs } from 'react/jsx-runtime';\nimport { forwardRef, useContext, useRef, createContext, useId } from 'react';\nimport cx from 'classnames';\nimport { useReducedMotion, motion } from '/home/runner/work/hammer/hammer/node_modules/.pnpm/motion@12.4.10_@emotion+is-prop-valid@1.3.1_react-dom@18.2.0_react@18.2.0__react@18.2.0/node_modules/motion/dist/es/motion/lib/react.mjs';\nimport { u as useOptionallyControlledState } from './useOptionallyControlledState-DAv5LXXh.js';\nimport { u as useMergeRefs } from './useMergeRefs-Bde85AWI.js';\nimport { I as Icon } from './Icon-B6HmlQiR.js';\nimport { core } from '@servicetitan/hammer-token';\n\nimport './SegmentedControl.css';const legend = \"_legend_1jy4v_3\";\nconst children = \"_children_1jy4v_4\";\nconst segment = \"_segment_1jy4v_2\";\nconst fill = \"_fill_1jy4v_80\";\nconst small = \"_small_1jy4v_83\";\nconst medium = \"_medium_1jy4v_92\";\nconst styles = {\n\t\"segmented-control\": \"_segmented-control_1jy4v_2\",\n\tlegend: legend,\n\tchildren: children,\n\t\"select-indicator\": \"_select-indicator_1jy4v_5\",\n\tsegment: segment,\n\tfill: fill,\n\tsmall: small,\n\t\"icon-only\": \"_icon-only_1jy4v_89\",\n\tmedium: medium\n};\n\nconst SegmentedControlSegment = forwardRef((props, ref) => {\n const { icon, value, children, className, ...rest } = props;\n const shouldReduceMotion = useReducedMotion();\n const { current, setCurrent, name } = useContext(SegmentedControlContext);\n const labelRef = useRef(null);\n const classNames = cx(styles.segment, className, {\n [styles[\"icon-only\"]]: icon && !children\n });\n return /* @__PURE__ */ jsx(Fragment, { children: /* @__PURE__ */ jsxs(\n \"label\",\n {\n className: classNames,\n ref: useMergeRefs([labelRef, ref]),\n \"data-anv\": \"segmented-control-segment\",\n ...rest,\n children: [\n /* @__PURE__ */ jsx(\n \"input\",\n {\n type: \"radio\",\n name,\n value,\n onChange: () => setCurrent?.(value),\n checked: current === value,\n \"aria-checked\": current === value\n }\n ),\n icon ? /* @__PURE__ */ jsx(Icon, { svg: icon, \"aria-hidden\": true }) : null,\n children,\n current === value && /* @__PURE__ */ jsx(\n motion.span,\n {\n layoutId: name,\n className: styles[\"select-indicator\"],\n transition: {\n duration: shouldReduceMotion ? 0 : +core.primitive.Duration.value.replace(\"ms\", \"\") / 1e3\n }\n }\n )\n ]\n }\n ) });\n});\nSegmentedControlSegment.displayName = \"SegmentedControlSegment\";\n\nconst SegmentedControlContext = createContext({});\nconst SegmentedControlElement = forwardRef((props, ref) => {\n const {\n className,\n onClick,\n onChange,\n children,\n size = \"medium\",\n defaultSelected,\n selected,\n name,\n fill,\n ...rest\n } = props;\n const [current, setCurrent] = useOptionallyControlledState({\n controlledValue: selected,\n defaultValue: defaultSelected,\n onChange\n });\n const segmentedControlRef = useRef(null);\n const SegmentedControlClassNames = cx(\n styles[\"segmented-control\"],\n styles[size],\n className,\n {\n [styles.fill]: fill\n }\n );\n const uid = useId();\n return /* @__PURE__ */ jsx(\n motion.div,\n {\n transition: { duration: 0 },\n layout: true,\n role: \"radiogroup\",\n className: SegmentedControlClassNames,\n \"data-anv\": \"segmented-control\",\n ref: useMergeRefs([segmentedControlRef, ref]),\n ...rest,\n children: /* @__PURE__ */ jsx(\n SegmentedControlContext.Provider,\n {\n value: { current, setCurrent, name: name ?? uid },\n children\n }\n )\n }\n );\n});\nSegmentedControlElement.displayName = \"SegmentedControl\";\nconst SegmentedControl = Object.assign(SegmentedControlElement, {\n /**\n * SegmentedControlSegment component for individual segments within a segmented control.\n *\n * Features:\n * - Individual segment with radio input\n * - Optional icon support\n * - Animated selection indicator\n * - Accessibility support with proper ARIA attributes\n * - Context integration with parent SegmentedControl\n * - Motion animations with reduced motion support\n *\n * @example\n * <SegmentedControl.Segment value=\"option1\" icon={Icon1}>\n * Option 1\n * </SegmentedControl.Segment>\n */\n Segment: SegmentedControlSegment\n});\n\nexport { SegmentedControl as S, SegmentedControlSegment as a };\n//# sourceMappingURL=SegmentedControl-CaAD848n.js.map\n","import {\n SegmentedControlProps as CoreSegmentedControlProps,\n SegmentedControl as CoreSegmentedControl,\n SegmentedControlSegmentProps as CoreSegmentedControlSegmentProps,\n SegmentedControlSegment as CoreSegmentedControlSegment,\n} from \"@servicetitan/hammer-react\";\nimport { Ref, forwardRef } from \"react\";\nimport { useTrackingId } from \"../../hooks\";\nimport { DataTrackingId } from \"../../types/DataTrackingId\";\n\n/**\n * Props for the SegmentedControl component\n * @property {string} [size] - Size of the segment (small, medium)\n * @property {boolean} [fill] - Whether to fill available width\n * @property {string} [name] - Name attribute for radio inputs\n * @property {Function} [onChange] - Callback when segment is changed\n * @property {string} [selected] - Selected segment (controlled mode)\n * @property {string} [defaultSelected] - Initial selection (uncontrolled mode)\n * @property {string} [data-tracking-id] - Custom tracking ID for analytics\n * @extends DataTrackingId\n */\nexport type SegmentedControlProps = CoreSegmentedControlProps & DataTrackingId;\n\n/**\n * Props for the SegmentedControlSegment component\n * @property {string} value - Value of the segment\n * @property {object} [icon] - Optional icon to display in the segment\n * @property {string} [data-tracking-id] - Custom tracking ID for analytics\n * @extends DataTrackingId\n */\nexport type SegmentedControlSegmentProps = CoreSegmentedControlSegmentProps &\n DataTrackingId;\n\nconst SegmentedControlElement = forwardRef(\n (props: SegmentedControlProps, ref: Ref<HTMLDivElement>) => {\n const data = {\n name: props.name,\n };\n\n const trackingId = useTrackingId({\n name: \"SegmentedControl\",\n data,\n hasOverride: !!props[\"data-tracking-id\"],\n });\n\n return (\n <CoreSegmentedControl\n ref={ref}\n data-tracking-id={trackingId}\n {...props}\n />\n );\n },\n);\nSegmentedControlElement.displayName = CoreSegmentedControl.displayName;\n\n/**\n * SegmentedControlSegment component for individual segments within a segmented control.\n *\n * Features:\n * - Individual segment with radio input\n * - Optional icon support\n * - Animated selection indicator\n * - Accessibility support with proper ARIA attributes\n * - Context integration with parent SegmentedControl\n * - Motion animations with reduced motion support\n * - Icon-only mode when no children provided\n * - Automatic tracking ID generation for analytics\n *\n * @example\n * <SegmentedControl.Segment value=\"option1\" icon={Icon1}>\n * Option 1\n * </SegmentedControl.Segment>\n *\n * @example\n * <SegmentedControl.Segment value=\"icon-only\" icon={IconOnly} />\n */\nexport const SegmentedControlSegment = forwardRef(\n (props: SegmentedControlSegmentProps, ref: Ref<HTMLLabelElement>) => {\n const data = {\n value: props.value,\n };\n\n const trackingId = useTrackingId({\n name: \"SegmentedControlSegment\",\n data,\n hasOverride: !!props[\"data-tracking-id\"],\n });\n return (\n <CoreSegmentedControlSegment\n ref={ref}\n data-tracking-id={trackingId}\n {...props}\n />\n );\n },\n);\nSegmentedControlSegment.displayName = CoreSegmentedControlSegment.displayName;\n\n/**\n * SegmentedControl component for selecting one option from a group of related choices.\n *\n * Features:\n * - Supports both controlled and uncontrolled modes\n * - Multiple size variants (small, medium)\n * - Optional fill width mode\n * - Smooth animations with motion\n * - Accessibility support with proper radio group semantics\n * - Layout utility props for positioning and spacing\n * - Context-based state management\n * - Auto-generated or custom name attributes\n * - Segment support via SegmentedControl.Segment\n * - Automatic tracking ID generation for analytics\n *\n * @example\n * <SegmentedControl\n * selected={selectedValue}\n * onChange={setSelectedValue}\n * size=\"medium\"\n * >\n * <SegmentedControl.Segment value=\"option1\">Option 1</SegmentedControl.Segment>\n * <SegmentedControl.Segment value=\"option2\">Option 2</SegmentedControl.Segment>\n * <SegmentedControl.Segment value=\"option3\">Option 3</SegmentedControl.Segment>\n * </SegmentedControl>\n *\n * @example\n * <SegmentedControl\n * defaultSelected=\"small\"\n * size=\"small\"\n * fill\n * >\n * <SegmentedControl.Segment value=\"small\" icon={SmallIcon}>Small</SegmentedControl.Segment>\n * <SegmentedControl.Segment value=\"large\" icon={LargeIcon}>Large</SegmentedControl.Segment>\n * </SegmentedControl>\n */\nexport const SegmentedControl = Object.assign(SegmentedControlElement, {\n /**\n * SegmentedControlSegment component for individual segments within a segmented control.\n *\n * Features:\n * - Individual segment with radio input\n * - Optional icon support\n * - Animated selection indicator\n * - Accessibility support with proper ARIA attributes\n * - Context integration with parent SegmentedControl\n * - Motion animations with reduced motion support\n * - Icon-only mode when no children provided\n * - Automatic tracking ID generation for analytics\n *\n * @example\n * <SegmentedControl.Segment value=\"option1\" icon={Icon1}>\n * Option 1\n * </SegmentedControl.Segment>\n *\n * @example\n * <SegmentedControl.Segment value=\"icon-only\" icon={IconOnly} />\n */\n Segment: SegmentedControlSegment,\n});\n"],"names":["SegmentedControlSegment","core.primitive.Duration","SegmentedControlElement","SegmentedControl","CoreSegmentedControl","CoreSegmentedControlSegment"],"mappings":"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"}
|
package/dist/SegmentedControl.js
CHANGED
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
export { S as SegmentedControl, a as SegmentedControlSegment, S as default } from './SegmentedControl-
|
|
1
|
+
export { S as SegmentedControl, a as SegmentedControlSegment, S as default } from './SegmentedControl-DKMQuf7s.js';
|
|
2
2
|
//# sourceMappingURL=SegmentedControl.js.map
|
|
@@ -1,11 +1,12 @@
|
|
|
1
1
|
import { jsxs, jsx, Fragment } from 'react/jsx-runtime';
|
|
2
|
-
import { C as Card } from './Card-
|
|
3
|
-
import { R as RadioGroup, a as Radio } from './Radio-
|
|
2
|
+
import { C as Card } from './Card-ZknG-yim-7W6rYSFV.js';
|
|
3
|
+
import { R as RadioGroup, a as Radio } from './Radio-7U7IBI58-BDhdZJoC.js';
|
|
4
4
|
import { c as cx } from './index-tZvMCc77.js';
|
|
5
|
-
import { C as CheckboxGroup, a as Checkbox } from './Checkbox-
|
|
5
|
+
import { C as CheckboxGroup, a as Checkbox } from './Checkbox-TIcImbEx-EgjesTNn.js';
|
|
6
6
|
import { forwardRef, useState, useId, createContext, useContext } from 'react';
|
|
7
|
+
import { u as useOptionallyControlledState } from './useOptionallyControlledState-DAv5LXXh-DAv5LXXh.js';
|
|
7
8
|
|
|
8
|
-
import './SelectCard-
|
|
9
|
+
import './SelectCard-B5EqtxOK.css';const styles = {
|
|
9
10
|
"select-card": "_select-card_17kzl_1",
|
|
10
11
|
"select-card--disabled": "_select-card--disabled_17kzl_22",
|
|
11
12
|
"select-card--errored": "_select-card--errored_17kzl_26",
|
|
@@ -26,7 +27,11 @@ const SelectCardProvider = ({
|
|
|
26
27
|
return;
|
|
27
28
|
}
|
|
28
29
|
if (selectionMode === "single") {
|
|
29
|
-
|
|
30
|
+
if (state.checked) {
|
|
31
|
+
setSelection(/* @__PURE__ */ new Set([state.id]));
|
|
32
|
+
} else {
|
|
33
|
+
setSelection(/* @__PURE__ */ new Set());
|
|
34
|
+
}
|
|
30
35
|
} else {
|
|
31
36
|
if (state.checked) {
|
|
32
37
|
setSelection(selection.add(state.id));
|
|
@@ -47,7 +52,7 @@ const SelectCardProvider = ({
|
|
|
47
52
|
};
|
|
48
53
|
const useSelectCardContext = () => useContext(SelectCardContext);
|
|
49
54
|
|
|
50
|
-
const SelectCardGroup = forwardRef((props,
|
|
55
|
+
const SelectCardGroup = forwardRef((props, _ref) => {
|
|
51
56
|
const {
|
|
52
57
|
ariaLabelledBy,
|
|
53
58
|
children,
|
|
@@ -87,9 +92,9 @@ const SelectCardElement = forwardRef(
|
|
|
87
92
|
const {
|
|
88
93
|
checkboxProps,
|
|
89
94
|
children,
|
|
90
|
-
checked,
|
|
95
|
+
checked: checkedProp,
|
|
91
96
|
className,
|
|
92
|
-
defaultChecked,
|
|
97
|
+
defaultChecked: defaultCheckedProp,
|
|
93
98
|
disabled,
|
|
94
99
|
errored,
|
|
95
100
|
radioProps,
|
|
@@ -97,22 +102,21 @@ const SelectCardElement = forwardRef(
|
|
|
97
102
|
id,
|
|
98
103
|
...rest
|
|
99
104
|
} = props;
|
|
100
|
-
const [
|
|
101
|
-
|
|
102
|
-
|
|
105
|
+
const [checked, setChecked] = useOptionallyControlledState({
|
|
106
|
+
controlledValue: checkedProp,
|
|
107
|
+
defaultValue: defaultCheckedProp || false,
|
|
108
|
+
onChange
|
|
109
|
+
});
|
|
103
110
|
const context = useSelectCardContext();
|
|
104
111
|
const handleChange = (event) => {
|
|
105
112
|
const newChecked = event ? event.target.checked : false;
|
|
106
|
-
|
|
113
|
+
setChecked(newChecked);
|
|
107
114
|
context?.onChange(event, {
|
|
108
115
|
id,
|
|
109
116
|
checked: newChecked
|
|
110
117
|
});
|
|
111
|
-
if (checked === void 0) {
|
|
112
|
-
setContextFreeIsChecked(newChecked);
|
|
113
|
-
}
|
|
114
118
|
};
|
|
115
|
-
const isChecked = context ? context.selection.has(id) : checked
|
|
119
|
+
const isChecked = context ? context.selection.has(id) : checked;
|
|
116
120
|
return /* @__PURE__ */ jsxs(Fragment, { children: [
|
|
117
121
|
(!context || context?.selectionMode === "multiple") && /* @__PURE__ */ jsx(
|
|
118
122
|
Checkbox,
|
|
@@ -168,8 +172,33 @@ const SelectCardElement = forwardRef(
|
|
|
168
172
|
);
|
|
169
173
|
SelectCardElement.displayName = "SelectCard";
|
|
170
174
|
const SelectCard = Object.assign(SelectCardElement, {
|
|
175
|
+
/**
|
|
176
|
+
* SelectCardGroup component for managing groups of selectable cards.
|
|
177
|
+
*
|
|
178
|
+
* Features:
|
|
179
|
+
* - Manages selection state for multiple SelectCard components
|
|
180
|
+
* - Supports both single and multiple selection modes
|
|
181
|
+
* - Provides proper accessibility with legends and ARIA labels
|
|
182
|
+
* - Handles required field validation
|
|
183
|
+
* - Automatic radio button grouping for single selection
|
|
184
|
+
* - Context provider for child SelectCard components
|
|
185
|
+
*
|
|
186
|
+
* @example
|
|
187
|
+
* <SelectCard.Group
|
|
188
|
+
* legend="Choose your plan"
|
|
189
|
+
* selectionMode="single"
|
|
190
|
+
* onChange={(e, state) => console.log('Selection changed:', state)}
|
|
191
|
+
* >
|
|
192
|
+
* <SelectCard id="basic" onChange={() => {}}>
|
|
193
|
+
* <Text variant="headline" size="small">Basic Plan</Text>
|
|
194
|
+
* </SelectCard>
|
|
195
|
+
* <SelectCard id="premium" onChange={() => {}}>
|
|
196
|
+
* <Text variant="headline" size="small">Premium Plan</Text>
|
|
197
|
+
* </SelectCard>
|
|
198
|
+
* </SelectCard.Group>
|
|
199
|
+
*/
|
|
171
200
|
Group: SelectCardGroup
|
|
172
201
|
});
|
|
173
202
|
|
|
174
203
|
export { SelectCardGroup as S, SelectCard as a };
|
|
175
|
-
//# sourceMappingURL=SelectCard-
|
|
204
|
+
//# sourceMappingURL=SelectCard-B5EqtxOK-CpCgVjV8.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"SelectCard-B5EqtxOK-CpCgVjV8.js","sources":["../../hammer-react/dist/SelectCard-B5EqtxOK.js"],"sourcesContent":["import { jsx, jsxs, Fragment } from 'react/jsx-runtime';\nimport { C as Card } from './Card-ZknG-yim.js';\nimport { a as RadioGroup, R as Radio } from './Radio-7U7IBI58.js';\nimport cx from 'classnames';\nimport { a as CheckboxGroup, C as Checkbox } from './Checkbox-TIcImbEx.js';\nimport { useContext, useState, useId, createContext, forwardRef } from 'react';\nimport { u as useOptionallyControlledState } from './useOptionallyControlledState-DAv5LXXh.js';\n\nimport './SelectCard.css';const styles = {\n\t\"select-card\": \"_select-card_17kzl_1\",\n\t\"select-card--disabled\": \"_select-card--disabled_17kzl_22\",\n\t\"select-card--errored\": \"_select-card--errored_17kzl_26\",\n\t\"select-card--selected\": \"_select-card--selected_17kzl_29\"\n};\n\nconst SelectCardContext = createContext(null);\nconst SelectCardProvider = ({\n children,\n onChange,\n selectionMode\n}) => {\n const [selection, setSelection] = useState(/* @__PURE__ */ new Set());\n const radioName = useId();\n const handleChange = (e, state) => {\n if (!state || !state.id) {\n onChange(e, state);\n return;\n }\n if (selectionMode === \"single\") {\n if (state.checked) {\n setSelection(/* @__PURE__ */ new Set([state.id]));\n } else {\n setSelection(/* @__PURE__ */ new Set());\n }\n } else {\n if (state.checked) {\n setSelection(selection.add(state.id));\n } else {\n selection.delete(state.id);\n setSelection(selection);\n }\n }\n onChange(e, state);\n };\n const context = {\n selectionMode,\n onChange: handleChange,\n radioName,\n selection\n };\n return /* @__PURE__ */ jsx(SelectCardContext.Provider, { value: context, children });\n};\nconst useSelectCardContext = () => useContext(SelectCardContext);\n\nconst SelectCardGroup = forwardRef((props, _ref) => {\n const {\n ariaLabelledBy,\n children,\n legend,\n onChange,\n required = false,\n selectionMode,\n ...rest\n } = props;\n return /* @__PURE__ */ jsxs(SelectCardProvider, { onChange, selectionMode, children: [\n selectionMode === \"multiple\" && /* @__PURE__ */ jsx(\n CheckboxGroup,\n {\n \"aria-labelledby\": ariaLabelledBy,\n legend,\n required,\n ...rest,\n children\n }\n ),\n selectionMode === \"single\" && /* @__PURE__ */ jsx(\n RadioGroup,\n {\n \"aria-labelledby\": ariaLabelledBy,\n legend,\n required,\n ...rest,\n children\n }\n )\n ] });\n});\nSelectCardGroup.displayName = \"SelectCardGroup\";\n\nconst SelectCardElement = forwardRef(\n (props, ref) => {\n const {\n checkboxProps,\n children,\n checked: checkedProp,\n className,\n defaultChecked: defaultCheckedProp,\n disabled,\n errored,\n radioProps,\n onChange,\n id,\n ...rest\n } = props;\n const [checked, setChecked] = useOptionallyControlledState({\n controlledValue: checkedProp,\n defaultValue: defaultCheckedProp || false,\n onChange\n });\n const context = useSelectCardContext();\n const handleChange = (event) => {\n const newChecked = event ? event.target.checked : false;\n setChecked(newChecked);\n context?.onChange(event, {\n id,\n checked: newChecked\n });\n };\n const isChecked = context ? context.selection.has(id) : checked;\n return /* @__PURE__ */ jsxs(Fragment, { children: [\n (!context || context?.selectionMode === \"multiple\") && /* @__PURE__ */ jsx(\n Checkbox,\n {\n ...checkboxProps,\n onChange: handleChange,\n disabled,\n ref,\n label: /* @__PURE__ */ jsx(\n Card,\n {\n ...rest,\n className: cx(\n styles[\"select-card\"],\n isChecked && !errored && styles[\"select-card--selected\"],\n errored && styles[\"select-card--errored\"],\n disabled && styles[\"select-card--disabled\"],\n className ?? \"\"\n ),\n children\n }\n ),\n hideCheckbox: true\n }\n ),\n context?.selectionMode === \"single\" && /* @__PURE__ */ jsx(\n Radio,\n {\n ...radioProps,\n onChange: handleChange,\n disabled,\n ref,\n name: context.radioName,\n label: /* @__PURE__ */ jsx(\n Card,\n {\n ...rest,\n className: cx(\n styles[\"select-card\"],\n isChecked && !errored && styles[\"select-card--selected\"],\n errored && styles[\"select-card--errored\"],\n disabled && styles[\"select-card--disabled\"],\n className ?? \"\"\n ),\n children\n }\n ),\n hideRadio: true\n }\n )\n ] });\n }\n);\nSelectCardElement.displayName = \"SelectCard\";\nconst SelectCard = Object.assign(SelectCardElement, {\n /**\n * SelectCardGroup component for managing groups of selectable cards.\n *\n * Features:\n * - Manages selection state for multiple SelectCard components\n * - Supports both single and multiple selection modes\n * - Provides proper accessibility with legends and ARIA labels\n * - Handles required field validation\n * - Automatic radio button grouping for single selection\n * - Context provider for child SelectCard components\n *\n * @example\n * <SelectCard.Group\n * legend=\"Choose your plan\"\n * selectionMode=\"single\"\n * onChange={(e, state) => console.log('Selection changed:', state)}\n * >\n * <SelectCard id=\"basic\" onChange={() => {}}>\n * <Text variant=\"headline\" size=\"small\">Basic Plan</Text>\n * </SelectCard>\n * <SelectCard id=\"premium\" onChange={() => {}}>\n * <Text variant=\"headline\" size=\"small\">Premium Plan</Text>\n * </SelectCard>\n * </SelectCard.Group>\n */\n Group: SelectCardGroup\n});\n\nexport { SelectCard as S, SelectCardGroup as a };\n//# sourceMappingURL=SelectCard-B5EqtxOK.js.map\n"],"names":[],"mappings":"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"}
|
package/dist/SelectCard.js
CHANGED
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
export { S as SelectCard, b as SelectCardElement, a as SelectCardGroup, S as default } from './SelectCardGroup-
|
|
1
|
+
export { S as SelectCard, b as SelectCardElement, a as SelectCardGroup, S as default } from './SelectCardGroup-DsHZgCqA.js';
|
|
2
2
|
//# sourceMappingURL=SelectCard.js.map
|
|
@@ -0,0 +1,49 @@
|
|
|
1
|
+
import { jsx } from 'react/jsx-runtime';
|
|
2
|
+
import { forwardRef } from 'react';
|
|
3
|
+
import { S as SelectCardGroup$1, a as SelectCard$1 } from './SelectCard-B5EqtxOK-CpCgVjV8.js';
|
|
4
|
+
|
|
5
|
+
const SelectCardElement = forwardRef(
|
|
6
|
+
(props, ref) => {
|
|
7
|
+
return /* @__PURE__ */ jsx(SelectCard$1, { ref, ...props });
|
|
8
|
+
}
|
|
9
|
+
);
|
|
10
|
+
SelectCardElement.displayName = SelectCard$1.displayName;
|
|
11
|
+
const SelectCard = Object.assign(SelectCardElement, {
|
|
12
|
+
/**
|
|
13
|
+
* SelectCardGroup component for managing groups of selectable cards.
|
|
14
|
+
*
|
|
15
|
+
* Features:
|
|
16
|
+
* - Manages selection state for multiple SelectCard components
|
|
17
|
+
* - Supports both single and multiple selection modes
|
|
18
|
+
* - Provides proper accessibility with legends and ARIA labels
|
|
19
|
+
* - Handles required field validation
|
|
20
|
+
* - Automatic radio button grouping for single selection
|
|
21
|
+
* - Context provider for child SelectCard components
|
|
22
|
+
* - Automatic tracking ID generation for analytics
|
|
23
|
+
*
|
|
24
|
+
* @example
|
|
25
|
+
* <SelectCard.Group
|
|
26
|
+
* legend="Choose your plan"
|
|
27
|
+
* selectionMode="single"
|
|
28
|
+
* onChange={(e, state) => console.log('Selection changed:', state)}
|
|
29
|
+
* >
|
|
30
|
+
* <SelectCard id="basic" onChange={() => {}}>
|
|
31
|
+
* <Text variant="headline" size="small">Basic Plan</Text>
|
|
32
|
+
* </SelectCard>
|
|
33
|
+
* <SelectCard id="premium" onChange={() => {}}>
|
|
34
|
+
* <Text variant="headline" size="small">Premium Plan</Text>
|
|
35
|
+
* </SelectCard>
|
|
36
|
+
* </SelectCard.Group>
|
|
37
|
+
*/
|
|
38
|
+
Group: SelectCardGroup$1
|
|
39
|
+
});
|
|
40
|
+
|
|
41
|
+
const SelectCardGroup = forwardRef(
|
|
42
|
+
(props, ref) => {
|
|
43
|
+
return /* @__PURE__ */ jsx(SelectCardGroup$1, { ref, ...props });
|
|
44
|
+
}
|
|
45
|
+
);
|
|
46
|
+
SelectCardGroup.displayName = SelectCardGroup$1.displayName;
|
|
47
|
+
|
|
48
|
+
export { SelectCard as S, SelectCardGroup as a, SelectCardElement as b };
|
|
49
|
+
//# sourceMappingURL=SelectCardGroup-DsHZgCqA.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"SelectCardGroup-DsHZgCqA.js","sources":["../src/components/SelectCard/SelectCard.tsx","../src/components/SelectCard/SelectCardGroup.tsx"],"sourcesContent":["import {\n SelectCardProps as CoreSelectCardProps,\n SelectCard as CoreSelectCard,\n SelectCardGroup as CoreSelectCardGroup,\n} from \"@servicetitan/hammer-react\";\nimport { Ref, forwardRef } from \"react\";\n\n/**\n * Props for the SelectCard component\n * @property {Omit<CheckboxProps, \"label\">} [checkboxProps] - Passes props to the underlying Checkbox component\n * @property {boolean} [checked] - Controlled state. When provided, the component becomes controlled\n * @property {boolean} [defaultChecked] - Uncontrolled state\n * @property {boolean} [disabled] - When true, disables the card\n * @property {boolean} [errored] - When true, sets error styling on the card\n * @property {string | number} id - A unique identifier for the card, used to track the selection state\n * @property {(value: boolean) => void} onChange - Function called on selection state change\n * @property {Omit<RadioProps, \"label\">} [radioProps] - Passes props to the underlying Radio component\n * @extends CoreSelectCardProps\n */\nexport type SelectCardProps = CoreSelectCardProps;\n\nexport const SelectCardElement = forwardRef(\n (props: SelectCardProps, ref: Ref<HTMLInputElement>) => {\n return <CoreSelectCard ref={ref} {...props} />;\n },\n);\nSelectCardElement.displayName = CoreSelectCard.displayName;\n\n/**\n * SelectCard component for creating interactive card-based selection interfaces.\n *\n * Features:\n * - Supports both single selection (radio) and multiple selection (checkbox) modes\n * - Automatic context detection for selection behavior\n * - Visual feedback for selected, disabled, and error states\n * - Accessible with proper ARIA roles and keyboard navigation\n * - Customizable styling through Card component props\n * - Hover and focus states with smooth transitions\n * - Integration with SelectCardGroup for grouped selection\n * - Automatic tracking ID generation for analytics\n *\n * @example\n * <SelectCard\n * id=\"option-1\"\n * onChange={(checked) => console.log('Selected:', checked)}\n * >\n * <Text variant=\"headline\" size=\"small\">Option 1</Text>\n * <Text>Description of option 1</Text>\n * </SelectCard>\n */\nexport const SelectCard = Object.assign(SelectCardElement, {\n /**\n * SelectCardGroup component for managing groups of selectable cards.\n *\n * Features:\n * - Manages selection state for multiple SelectCard components\n * - Supports both single and multiple selection modes\n * - Provides proper accessibility with legends and ARIA labels\n * - Handles required field validation\n * - Automatic radio button grouping for single selection\n * - Context provider for child SelectCard components\n * - Automatic tracking ID generation for analytics\n *\n * @example\n * <SelectCard.Group\n * legend=\"Choose your plan\"\n * selectionMode=\"single\"\n * onChange={(e, state) => console.log('Selection changed:', state)}\n * >\n * <SelectCard id=\"basic\" onChange={() => {}}>\n * <Text variant=\"headline\" size=\"small\">Basic Plan</Text>\n * </SelectCard>\n * <SelectCard id=\"premium\" onChange={() => {}}>\n * <Text variant=\"headline\" size=\"small\">Premium Plan</Text>\n * </SelectCard>\n * </SelectCard.Group>\n */\n Group: CoreSelectCardGroup,\n});\n","import {\n SelectCardGroupProps as CoreSelectCardGroupProps,\n SelectCardGroup as CoreSelectCardGroup,\n} from \"@servicetitan/hammer-react\";\nimport { Ref, forwardRef } from \"react\";\n\n/**\n * Props for the SelectCardGroup component\n * @property {string} [ariaLabelledBy] - Associates the legend with content below\n * @property {ReactNode} [children] - Child SelectCard components\n * @property {CheckboxGroupProps[\"legend\"]} legend - Sets the legend on the group\n * @property {boolean} [required] - When true, sets \"required\" text in label. This does not enforce error when nothing is selected\n * @property {(e?: ChangeEvent<HTMLInputElement>, state?: ISelectCardState) => void} onChange - Callback function that is triggered when the selection state changes\n * @property {\"single\" | \"multiple\"} selectionMode - Sets how many cards the user can select, either 'single' (radio buttons) or 'multiple' (checkboxes)\n * @extends CoreSelectCardGroupProps\n */\nexport type SelectCardGroupProps = CoreSelectCardGroupProps;\n\n/**\n * SelectCardGroup component for managing groups of selectable cards.\n *\n * Features:\n * - Manages selection state for multiple SelectCard components\n * - Supports both single and multiple selection modes\n * - Provides proper accessibility with legends and ARIA labels\n * - Handles required field validation\n * - Automatic radio button grouping for single selection\n * - Context provider for child SelectCard components\n * - Integrates with CheckboxGroup and RadioGroup for proper form semantics\n * - Automatic tracking ID generation for analytics\n *\n * @example\n * <SelectCardGroup\n * legend=\"Choose your plan\"\n * selectionMode=\"single\"\n * onChange={(e, state) => console.log('Selection changed:', state)}\n * >\n * <SelectCard id=\"basic\" onChange={() => {}}>\n * <Text variant=\"headline\" size=\"small\">Basic Plan</Text>\n * </SelectCard>\n * <SelectCard id=\"premium\" onChange={() => {}}>\n * <Text variant=\"headline\" size=\"small\">Premium Plan</Text>\n * </SelectCard>\n * </SelectCardGroup>\n */\nexport const SelectCardGroup = forwardRef(\n (props: SelectCardGroupProps, ref: Ref<HTMLInputElement>) => {\n return <CoreSelectCardGroup ref={ref} {...props} />;\n },\n);\nSelectCardGroup.displayName = CoreSelectCardGroup.displayName;\n"],"names":["CoreSelectCard","CoreSelectCardGroup"],"mappings":";;;;AAqBO,MAAM,iBAAoB,GAAA,UAAA;AAAA,EAC/B,CAAC,OAAwB,GAA+B,KAAA;AACtD,IAAA,uBAAQ,GAAA,CAAAA,YAAA,EAAA,EAAe,GAAW,EAAA,GAAG,KAAO,EAAA,CAAA;AAAA;AAEhD;AACA,iBAAA,CAAkB,cAAcA,YAAe,CAAA,WAAA;AAwBlC,MAAA,UAAA,GAAa,MAAO,CAAA,MAAA,CAAO,iBAAmB,EAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EA2BzD,KAAO,EAAAC;AACT,CAAC;;ACjCM,MAAM,eAAkB,GAAA,UAAA;AAAA,EAC7B,CAAC,OAA6B,GAA+B,KAAA;AAC3D,IAAA,uBAAQ,GAAA,CAAAA,iBAAA,EAAA,EAAoB,GAAW,EAAA,GAAG,KAAO,EAAA,CAAA;AAAA;AAErD;AACA,eAAA,CAAgB,cAAcA,iBAAoB,CAAA,WAAA;;;;"}
|