@servicetitan/anvil2 2.9.1 → 3.0.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 +71 -0
- package/dist/{AiMark-DR-w6Nbm.js → AiMark-B1-M3ZgP.js} +26 -25
- package/dist/{AiMark-DR-w6Nbm.js.map → AiMark-B1-M3ZgP.js.map} +1 -1
- package/dist/AiMark.css +246 -256
- package/dist/AiMark.js +1 -1
- package/dist/{Alert-Dj61Bq8h.js → Alert-DmbqtMg_.js} +20 -31
- package/dist/Alert-DmbqtMg_.js.map +1 -0
- package/dist/Alert.css +72 -90
- package/dist/Alert.js +1 -1
- package/dist/{Announcement-B9zm-_1S.js → Announcement-_C5g2Lzm.js} +14 -14
- package/dist/{Announcement-B9zm-_1S.js.map → Announcement-_C5g2Lzm.js.map} +1 -1
- package/dist/Announcement.css +108 -97
- package/dist/Announcement.js +1 -1
- package/dist/{AnvilProvider-DUPYyMc7.js → AnvilProvider-JXEbeQjR.js} +13 -8
- package/dist/AnvilProvider-JXEbeQjR.js.map +1 -0
- package/dist/AnvilProvider.js +1 -1
- package/dist/{Avatar-BckUfs1N.js → Avatar-B4hRHku9.js} +23 -23
- package/dist/Avatar-B4hRHku9.js.map +1 -0
- package/dist/{Avatar-ChybzixS.js → Avatar-NbFc4Ovc.js} +2 -2
- package/dist/{Avatar-ChybzixS.js.map → Avatar-NbFc4Ovc.js.map} +1 -1
- package/dist/Avatar.css +116 -177
- package/dist/Avatar.js +2 -2
- package/dist/{Badge-C2W7Dls9.js → Badge-C_wTvtnB.js} +7 -7
- package/dist/{Badge-C2W7Dls9.js.map → Badge-C_wTvtnB.js.map} +1 -1
- package/dist/Badge.css +42 -50
- package/dist/Badge.js +1 -1
- package/dist/{Breadcrumbs-ojgYVZwe.js → Breadcrumbs-CYmciJ1D.js} +7 -7
- package/dist/{Breadcrumbs-ojgYVZwe.js.map → Breadcrumbs-CYmciJ1D.js.map} +1 -1
- package/dist/Breadcrumbs.css +37 -45
- package/dist/Breadcrumbs.js +1 -1
- package/dist/{Button-BdrrhBTI.js → Button-Bnt8XUI7.js} +13 -10
- package/dist/{Button-BdrrhBTI.js.map → Button-Bnt8XUI7.js.map} +1 -1
- package/dist/Button.css +274 -335
- package/dist/Button.js +1 -1
- package/dist/Button.module-DsGhJYRw.js +23 -0
- package/dist/Button.module-DsGhJYRw.js.map +1 -0
- package/dist/{ButtonCompound-Cmw3cgMY.js → ButtonCompound-DsrK7G3q.js} +11 -4
- package/dist/ButtonCompound-DsrK7G3q.js.map +1 -0
- package/dist/ButtonCompound.css +25 -0
- package/dist/ButtonCompound.js +1 -1
- package/dist/{ButtonLink-BJKTJER8.js → ButtonLink-j3h_wRNi.js} +9 -6
- package/dist/ButtonLink-j3h_wRNi.js.map +1 -0
- package/dist/ButtonLink.js +1 -1
- package/dist/{ButtonToggle-DaFQ3DBG.js → ButtonToggle-Ct9_5bhC.js} +7 -4
- package/dist/ButtonToggle-Ct9_5bhC.js.map +1 -0
- package/dist/ButtonToggle.css +109 -0
- package/dist/ButtonToggle.js +1 -1
- package/dist/{Calendar-Cka4unyi.js → Calendar-BAbAagIx.js} +2 -2
- package/dist/{Calendar-Cka4unyi.js.map → Calendar-BAbAagIx.js.map} +1 -1
- package/dist/{Calendar-Dxl9QnfP.js → Calendar-CaCMa_jq.js} +38 -35
- package/dist/Calendar-CaCMa_jq.js.map +1 -0
- package/dist/Calendar.css +250 -301
- package/dist/Calendar.js +2 -2
- package/dist/{Card-wz71dEVA.js → Card-DSFuXUGk.js} +11 -11
- package/dist/{Card-wz71dEVA.js.map → Card-DSFuXUGk.js.map} +1 -1
- package/dist/Card.css +51 -65
- package/dist/Card.js +1 -1
- package/dist/{Checkbox-B-XTVPbX.js → Checkbox-BSAS8-DM.js} +28 -39
- package/dist/Checkbox-BSAS8-DM.js.map +1 -0
- package/dist/{Checkbox-Cw1-KFvq.js → Checkbox-Ckl8EFpF.js} +2 -2
- package/dist/{Checkbox-Cw1-KFvq.js.map → Checkbox-Ckl8EFpF.js.map} +1 -1
- package/dist/Checkbox.css +237 -271
- package/dist/Checkbox.js +1 -1
- package/dist/Checkbox.module-TYMeYIxw.js +28 -0
- package/dist/Checkbox.module-TYMeYIxw.js.map +1 -0
- package/dist/{Chip-Ce0WGKAc.js → Chip-CR5i8mQW.js} +31 -23
- package/dist/Chip-CR5i8mQW.js.map +1 -0
- package/dist/Chip.css +191 -206
- package/dist/Chip.js +1 -1
- package/dist/{Combobox-CNQUROyr.js → Combobox-BffGTugd.js} +59 -72
- package/dist/Combobox-BffGTugd.js.map +1 -0
- package/dist/Combobox.css +158 -176
- package/dist/Combobox.js +1 -1
- package/dist/{DataTable-JRxu2yTP.js → DataTable-D9Xj1nq5.js} +73 -72
- package/dist/{DataTable-JRxu2yTP.js.map → DataTable-D9Xj1nq5.js.map} +1 -1
- package/dist/DataTable.css +593 -780
- package/dist/{DateFieldRange-D2hnF50O.js → DateFieldRange-DPTC3EZz.js} +6 -6
- package/dist/{DateFieldRange-D2hnF50O.js.map → DateFieldRange-DPTC3EZz.js.map} +1 -1
- package/dist/DateFieldRange.js +1 -1
- package/dist/{DateFieldSingle-BuaB7RDr.js → DateFieldSingle-w1G-zd9G.js} +6 -6
- package/dist/{DateFieldSingle-BuaB7RDr.js.map → DateFieldSingle-w1G-zd9G.js.map} +1 -1
- package/dist/DateFieldSingle.js +1 -1
- package/dist/{DateFieldYearless-DLeMEutt.js → DateFieldYearless-DHNVc7Sd.js} +7 -7
- package/dist/{DateFieldYearless-DLeMEutt.js.map → DateFieldYearless-DHNVc7Sd.js.map} +1 -1
- package/dist/DateFieldYearless.js +1 -1
- package/dist/{DateFieldYearlessRange-BfPuYKKC.js → DateFieldYearlessRange-C5ktVUgG.js} +10 -10
- package/dist/{DateFieldYearlessRange-BfPuYKKC.js.map → DateFieldYearlessRange-C5ktVUgG.js.map} +1 -1
- package/dist/DateFieldYearlessRange.css +11 -19
- package/dist/DateFieldYearlessRange.js +1 -1
- package/dist/{DaysOfTheWeek-BW1T8sTU.js → DaysOfTheWeek-BubWkBZ0.js} +10 -10
- package/dist/{DaysOfTheWeek-BW1T8sTU.js.map → DaysOfTheWeek-BubWkBZ0.js.map} +1 -1
- package/dist/DaysOfTheWeek.css +19 -27
- package/dist/DaysOfTheWeek.js +1 -1
- package/dist/{Details-CZOIpNP_.js → Details-DYRJcLWL.js} +10 -10
- package/dist/{Details-CZOIpNP_.js.map → Details-DYRJcLWL.js.map} +1 -1
- package/dist/Details.css +134 -138
- package/dist/Details.js +1 -1
- package/dist/{Dialog-Cewu2pd_.js → Dialog-DGmF6qx3.js} +27 -26
- package/dist/Dialog-DGmF6qx3.js.map +1 -0
- package/dist/Dialog.css +108 -143
- package/dist/Dialog.js +1 -1
- package/dist/{DialogCancelButton-Czz4Wpse.js → DialogCancelButton-CbtQcf2J.js} +2 -2
- package/dist/{DialogCancelButton-Czz4Wpse.js.map → DialogCancelButton-CbtQcf2J.js.map} +1 -1
- package/dist/{Divider-B1UoK8ho.js → Divider-Ds3WKsKa.js} +19 -19
- package/dist/{Divider-B1UoK8ho.js.map → Divider-Ds3WKsKa.js.map} +1 -1
- package/dist/Divider.css +93 -169
- package/dist/Divider.js +1 -1
- package/dist/Dnd.js +1 -1
- package/dist/DndSort.css +18 -34
- package/dist/DndSort.js +10 -10
- package/dist/{Drawer-Cb5asXWf.js → Drawer-iewBy1DW.js} +24 -25
- package/dist/{Drawer-Cb5asXWf.js.map → Drawer-iewBy1DW.js.map} +1 -1
- package/dist/Drawer.css +109 -144
- package/dist/Drawer.js +1 -1
- package/dist/DrillDown.css +117 -131
- package/dist/DrillDown.js +1 -1
- package/dist/DrillDown.module-D1Bf9_yP.js +27 -0
- package/dist/{DrillDown.module-C8VOhzaF.js.map → DrillDown.module-D1Bf9_yP.js.map} +1 -1
- package/dist/{EditCard-DlJE3LXN.js → EditCard-D7-Ye7R0.js} +21 -20
- package/dist/{EditCard-DlJE3LXN.js.map → EditCard-D7-Ye7R0.js.map} +1 -1
- package/dist/EditCard.css +71 -65
- package/dist/EditCard.js +1 -1
- package/dist/{FieldLabel-HO2VP-4B.js → FieldLabel-DZWu5dMp.js} +17 -17
- package/dist/{FieldLabel-HO2VP-4B.js.map → FieldLabel-DZWu5dMp.js.map} +1 -1
- package/dist/FieldLabel.css +66 -102
- package/dist/FieldLabel.js +1 -1
- package/dist/FieldMessage-DzxfodaI.js +81 -0
- package/dist/FieldMessage-DzxfodaI.js.map +1 -0
- package/dist/FieldMessage.css +20 -29
- package/dist/FieldMessage.js +1 -1
- package/dist/{Flex-WyyZm1bf.js → Flex-DOUtHiPi.js} +4 -4
- package/dist/{Flex-WyyZm1bf.js.map → Flex-DOUtHiPi.js.map} +1 -1
- package/dist/Flex.css +25 -28
- package/dist/Flex.js +1 -1
- package/dist/{Grid-DeYIx5k4.js → Grid-B1VVssDD.js} +5 -5
- package/dist/{Grid-DeYIx5k4.js.map → Grid-B1VVssDD.js.map} +1 -1
- package/dist/Grid.css +37 -54
- package/dist/Grid.js +1 -1
- package/dist/{Helper-B_FIOlhy.js → Helper-DtDeaYTn.js} +8 -10
- package/dist/Helper-DtDeaYTn.js.map +1 -0
- package/dist/Helper.css +4 -16
- package/dist/{Icon-DuIlne4x.js → Icon-BMMbp40n.js} +7 -7
- package/dist/{Icon-DuIlne4x.js.map → Icon-BMMbp40n.js.map} +1 -1
- package/dist/Icon.css +42 -48
- package/dist/Icon.js +1 -1
- package/dist/{InputMask-CLLTehFI.js → InputMask-EwEJlW-t.js} +3 -3
- package/dist/{InputMask-CLLTehFI.js.map → InputMask-EwEJlW-t.js.map} +1 -1
- package/dist/InputMask.js +1 -1
- package/dist/{InteractiveCard-GTYbR6Xy.js → InteractiveCard-CnW0m_F-.js} +7 -7
- package/dist/{InteractiveCard-GTYbR6Xy.js.map → InteractiveCard-CnW0m_F-.js.map} +1 -1
- package/dist/InteractiveCard.css +56 -57
- package/dist/InteractiveCard.js +1 -1
- package/dist/{Layout-CISAxILX.js → Layout-C2Q2hyLG.js} +80 -80
- package/dist/{Layout-CISAxILX.js.map → Layout-C2Q2hyLG.js.map} +1 -1
- package/dist/Layout.css +260 -324
- package/dist/Layout.js +1 -1
- package/dist/{Link-jTvzyXca.js → Link-BUgivkGS.js} +8 -8
- package/dist/{Link-jTvzyXca.js.map → Link-BUgivkGS.js.map} +1 -1
- package/dist/Link.css +48 -65
- package/dist/Link.js +1 -1
- package/dist/Link.module-DJc0cOlg.js +12 -0
- package/dist/Link.module-DJc0cOlg.js.map +1 -0
- package/dist/{LinkButton-DGyHR1E7.js → LinkButton-CuHSdGdj.js} +7 -16
- package/dist/LinkButton-CuHSdGdj.js.map +1 -0
- package/dist/LinkButton.js +1 -1
- package/dist/{List--KhCpjZn.js → List-BXyHWQ9e.js} +8 -8
- package/dist/{List--KhCpjZn.js.map → List-BXyHWQ9e.js.map} +1 -1
- package/dist/List.css +39 -58
- package/dist/List.js +1 -1
- package/dist/{ListView-CPi-qG2w.js → ListView-DBO9Bl1H.js} +4 -4
- package/dist/{ListView-CPi-qG2w.js.map → ListView-DBO9Bl1H.js.map} +1 -1
- package/dist/ListView.css +108 -120
- package/dist/ListView.js +1 -1
- package/dist/ListView.module-CRk9NfLG.js +9 -0
- package/dist/ListView.module-CRk9NfLG.js.map +1 -0
- package/dist/{Listbox-Bp4hqIpH.js → Listbox-DDlxpVu9.js} +7 -7
- package/dist/{Listbox-Bp4hqIpH.js.map → Listbox-DDlxpVu9.js.map} +1 -1
- package/dist/Listbox.css +102 -143
- package/dist/Listbox.js +1 -1
- package/dist/Listbox.module-CfpLm9pS.js +18 -0
- package/dist/Listbox.module-CfpLm9pS.js.map +1 -0
- package/dist/{LocalizationProvider-DWCyga_d.js → LocalizationProvider-CO8fQGqs.js} +2 -2
- package/dist/{LocalizationProvider-DWCyga_d.js.map → LocalizationProvider-CO8fQGqs.js.map} +1 -1
- package/dist/LocalizationProvider.js +1 -1
- package/dist/{Menu-CCavGohP.js → Menu-wpTyUDac.js} +10 -10
- package/dist/{Menu-CCavGohP.js.map → Menu-wpTyUDac.js.map} +1 -1
- package/dist/Menu.css +135 -137
- package/dist/Menu.js +1 -1
- package/dist/MultiSelectField.js +1 -1
- package/dist/{MultiSelectFieldSync-ChZCW4M9.js → MultiSelectFieldSync-DZ3tm7zt.js} +34 -33
- package/dist/MultiSelectFieldSync-DZ3tm7zt.js.map +1 -0
- package/dist/MultiSelectFieldSync.css +263 -257
- package/dist/MultiSelectMenu.js +1 -1
- package/dist/{MultiSelectMenuSync-7C1wW4oO.js → MultiSelectMenuSync-dgO9SmHi.js} +4 -4
- package/dist/{MultiSelectMenuSync-7C1wW4oO.js.map → MultiSelectMenuSync-dgO9SmHi.js.map} +1 -1
- package/dist/{NumberField-CZSTHBeO.js → NumberField-DJbdyatF.js} +15 -12
- package/dist/{NumberField-CZSTHBeO.js.map → NumberField-DJbdyatF.js.map} +1 -1
- package/dist/NumberField.css +34 -49
- package/dist/NumberField.js +1 -1
- package/dist/Overflow.css +143 -164
- package/dist/Overflow.js +44 -42
- package/dist/Overflow.js.map +1 -1
- package/dist/{Page-BHdvTlfE.js → Page-Be1Blwme.js} +65 -65
- package/dist/Page-Be1Blwme.js.map +1 -0
- package/dist/Page.css +384 -404
- package/dist/Page.js +1 -1
- package/dist/{Pagination-B5jqHYG3.js → Pagination-USDJM5vi.js} +29 -34
- package/dist/{Pagination-B5jqHYG3.js.map → Pagination-USDJM5vi.js.map} +1 -1
- package/dist/Pagination.css +63 -117
- package/dist/Pagination.js +1 -1
- package/dist/{Popover-BbqTZw-1.js → Popover-CyB7yzSf.js} +7 -7
- package/dist/{Popover-BbqTZw-1.js.map → Popover-CyB7yzSf.js.map} +1 -1
- package/dist/Popover.css +84 -97
- package/dist/Popover.js +1 -1
- package/dist/{ProgressBar-CZcxkdX6.js → ProgressBar-DSrjgLTx.js} +15 -15
- package/dist/{ProgressBar-CZcxkdX6.js.map → ProgressBar-DSrjgLTx.js.map} +1 -1
- package/dist/ProgressBar.css +59 -81
- package/dist/ProgressBar.js +1 -1
- package/dist/{Radio-BFr8AdHc.js → Radio-CQaXJ72d.js} +2 -2
- package/dist/{Radio-BFr8AdHc.js.map → Radio-CQaXJ72d.js.map} +1 -1
- package/dist/{Radio-DJZVMCv0.js → Radio-DO4UhbBE.js} +45 -48
- package/dist/Radio-DO4UhbBE.js.map +1 -0
- package/dist/Radio.css +233 -229
- package/dist/Radio.js +1 -1
- package/dist/{SearchField-im7AHGYo.js → SearchField-CsRGYZx3.js} +9 -11
- package/dist/{SearchField-im7AHGYo.js.map → SearchField-CsRGYZx3.js.map} +1 -1
- package/dist/SearchField.css +22 -39
- package/dist/SearchField.js +1 -1
- package/dist/{SegmentedControl-B9NWUF7s.js → SegmentedControl-Chhqyyra.js} +15 -16
- package/dist/SegmentedControl-Chhqyyra.js.map +1 -0
- package/dist/SegmentedControl.css +103 -122
- package/dist/SegmentedControl.js +1 -1
- package/dist/SelectCard-CtXwY8FZ.js +351 -0
- package/dist/SelectCard-CtXwY8FZ.js.map +1 -0
- package/dist/SelectCard.css +135 -82
- package/dist/SelectCard.js +1 -1
- package/dist/SelectField.js +1 -1
- package/dist/{SelectFieldLabel-kEBS8L4l.js → SelectFieldLabel-DLT5dKbx.js} +3 -3
- package/dist/{SelectFieldLabel-kEBS8L4l.js.map → SelectFieldLabel-DLT5dKbx.js.map} +1 -1
- package/dist/{SelectFieldSync-o1Cp9UYC.js → SelectFieldSync-C44hPeeS.js} +9 -8
- package/dist/SelectFieldSync-C44hPeeS.js.map +1 -0
- package/dist/SelectMenu.js +1 -1
- package/dist/{SelectMenuSync-DXrwecFt.js → SelectMenuSync-V97oN85V.js} +4 -4
- package/dist/{SelectMenuSync-DXrwecFt.js.map → SelectMenuSync-V97oN85V.js.map} +1 -1
- package/dist/{SelectOptions-Dy2OWqxn.js → SelectOptions-CDoo4AUu.js} +2 -2
- package/dist/{SelectOptions-Dy2OWqxn.js.map → SelectOptions-CDoo4AUu.js.map} +1 -1
- package/dist/{SelectTrigger-DhKYzEAr.js → SelectTrigger-BWN3Tx43.js} +5 -5
- package/dist/{SelectTrigger-DhKYzEAr.js.map → SelectTrigger-BWN3Tx43.js.map} +1 -1
- package/dist/SelectTrigger.js +1 -1
- package/dist/{SelectTriggerBase-Ni8WqeUx.js → SelectTriggerBase-Do7lQ5rw.js} +8 -7
- package/dist/{SelectTriggerBase-Ni8WqeUx.js.map → SelectTriggerBase-Do7lQ5rw.js.map} +1 -1
- package/dist/SelectTriggerBase.css +231 -305
- package/dist/SelectTriggerBase.module-DKF1FQnc.js +37 -0
- package/dist/SelectTriggerBase.module-DKF1FQnc.js.map +1 -0
- package/dist/{SideNav-CrxYExjh.js → SideNav-CZRVOSbt.js} +19 -14
- package/dist/SideNav-CZRVOSbt.js.map +1 -0
- package/dist/SideNav.css +126 -294
- package/dist/SideNav.js +1 -1
- package/dist/Skeleton.css +57 -65
- package/dist/Skeleton.js +16 -16
- package/dist/Skeleton.js.map +1 -1
- package/dist/{Spinner-BqmcE2pb.js → Spinner-lPMo68yW.js} +16 -17
- package/dist/Spinner-lPMo68yW.js.map +1 -0
- package/dist/Spinner.css +33 -43
- package/dist/Spinner.js +1 -1
- package/dist/{SrOnly-eUpYGpAT.js → SrOnly-pnf8ajnh.js} +2 -2
- package/dist/{SrOnly-eUpYGpAT.js.map → SrOnly-pnf8ajnh.js.map} +1 -1
- package/dist/SrOnly.css +12 -14
- package/dist/SrOnly.js +1 -1
- package/dist/StatusIcon-BwULopyH.js +57 -0
- package/dist/StatusIcon-BwULopyH.js.map +1 -0
- package/dist/StatusIcon.css +32 -0
- package/dist/{Stepper-Dt2xAXth.js → Stepper-CYY64NU1.js} +16 -16
- package/dist/{Stepper-Dt2xAXth.js.map → Stepper-CYY64NU1.js.map} +1 -1
- package/dist/Stepper.css +180 -239
- package/dist/Stepper.js +1 -1
- package/dist/{Switch-C84MBChG.js → Switch-DeBu4Ucg.js} +17 -13
- package/dist/{Switch-C84MBChG.js.map → Switch-DeBu4Ucg.js.map} +1 -1
- package/dist/Switch.css +109 -125
- package/dist/Switch.js +1 -1
- package/dist/{Tab-BZpTCG0i.js → Tab-CewPzmuK.js} +20 -34
- package/dist/Tab-CewPzmuK.js.map +1 -0
- package/dist/Tab.css +232 -194
- package/dist/Tab.js +1 -1
- package/dist/Table.js +1 -1
- package/dist/{Text-WiS8UZkY.js → Text-J5YtSSXY.js} +15 -38
- package/dist/Text-J5YtSSXY.js.map +1 -0
- package/dist/Text.css +101 -142
- package/dist/Text.js +1 -1
- package/dist/Text.module-BXrY87ui.js +23 -0
- package/dist/Text.module-BXrY87ui.js.map +1 -0
- package/dist/{TextField-Bul_uln5.js → TextField-CRDTnuUN.js} +7 -7
- package/dist/{TextField-Bul_uln5.js.map → TextField-CRDTnuUN.js.map} +1 -1
- package/dist/{TextField-OznkTx4e.js → TextField-YlMkDHp-.js} +2 -2
- package/dist/{TextField-OznkTx4e.js.map → TextField-YlMkDHp-.js.map} +1 -1
- package/dist/TextField.css +156 -148
- package/dist/TextField.js +1 -1
- package/dist/TextField.module-MRVo1X9H.js +23 -0
- package/dist/TextField.module-MRVo1X9H.js.map +1 -0
- package/dist/{Textarea-CCYLsJ1x.js → Textarea-CxXmr_Gx.js} +16 -13
- package/dist/{Textarea-CCYLsJ1x.js.map → Textarea-CxXmr_Gx.js.map} +1 -1
- package/dist/Textarea.css +71 -81
- package/dist/Textarea.js +1 -1
- package/dist/{ThemeProvider-CaYW3RuA.js → ThemeProvider-D4KdGCaP.js} +11 -9
- package/dist/ThemeProvider-D4KdGCaP.js.map +1 -0
- package/dist/ThemeProvider.css +586 -516
- package/dist/ThemeProvider.js +1 -1
- package/dist/{TimeField-BPvPbD8H.js → TimeField-DTg0CE5L.js} +7 -7
- package/dist/{TimeField-BPvPbD8H.js.map → TimeField-DTg0CE5L.js.map} +1 -1
- package/dist/TimeField.css +5 -8
- package/dist/TimeField.js +1 -1
- package/dist/{TimezoneMessage-Cnsl4cHT.js → TimezoneMessage-BrKB_psP.js} +2 -2
- package/dist/{TimezoneMessage-Cnsl4cHT.js.map → TimezoneMessage-BrKB_psP.js.map} +1 -1
- package/dist/TimezoneMessage.css +5 -5
- package/dist/Toast.js +2 -2
- package/dist/{Toaster-DYJm06Vb.js → Toaster-Bq42x6Gx.js} +35 -34
- package/dist/Toaster-Bq42x6Gx.js.map +1 -0
- package/dist/{Toaster-CIaIvwH6.js → Toaster-Dly3rfva.js} +2 -2
- package/dist/{Toaster-CIaIvwH6.js.map → Toaster-Dly3rfva.js.map} +1 -1
- package/dist/Toaster.css +210 -242
- package/dist/{Toolbar-ByyI7SqG.js → Toolbar-C1_etxss.js} +42 -42
- package/dist/{Toolbar-ByyI7SqG.js.map → Toolbar-C1_etxss.js.map} +1 -1
- package/dist/Toolbar.css +121 -202
- package/dist/Toolbar.js +1 -1
- package/dist/{Tooltip-C1PBRnJv.js → Tooltip-BlStOXN3.js} +8 -8
- package/dist/{Tooltip-C1PBRnJv.js.map → Tooltip-BlStOXN3.js.map} +1 -1
- package/dist/Tooltip.css +46 -58
- package/dist/Tooltip.js +1 -1
- package/dist/{YearlessDateInputWithPicker-C_twiQW5.js → YearlessDateInputWithPicker-DyytWt0x.js} +14 -16
- package/dist/{YearlessDateInputWithPicker-C_twiQW5.js.map → YearlessDateInputWithPicker-DyytWt0x.js.map} +1 -1
- package/dist/YearlessDateInputWithPicker.css +110 -196
- package/dist/assets/css-utils/a2-border.css +47 -45
- package/dist/assets/css-utils/a2-color.css +443 -227
- package/dist/assets/css-utils/a2-font.css +0 -2
- package/dist/assets/css-utils/a2-spacing.css +476 -478
- package/dist/assets/css-utils/a2-utils.css +992 -772
- package/dist/assets/css-utils/border.css +47 -45
- package/dist/assets/css-utils/color.css +443 -227
- package/dist/assets/css-utils/font.css +0 -2
- package/dist/assets/css-utils/spacing.css +476 -478
- package/dist/assets/css-utils/utils.css +992 -772
- package/dist/beta.js +10 -10
- package/dist/{indeterminate_check_box-B4zobNlt.js → check_box-0U1tbEAd.js} +2 -4
- package/dist/check_box-0U1tbEAd.js.map +1 -0
- package/dist/components/DateFieldRange/internal/MaskedDateRangeInput.d.ts +1 -1
- package/dist/components/DateFieldRange/internal/useDateFieldRangeConversion.d.ts +1 -1
- package/dist/components/DateFieldSingle/internal/MaskedDateInput.d.ts +1 -1
- package/dist/components/DateFieldYearless/internal/YearlessDateInput.d.ts +1 -1
- package/dist/components/DateFieldYearless/internal/YearlessDateInputWithPicker.d.ts +1 -1
- package/dist/components/NumberField/NumberField.d.ts +1 -1
- package/dist/components/Page/Page.d.ts +2 -2
- package/dist/components/SearchField/internal/SearchField.d.ts +1 -1
- package/dist/components/Stepper/Stepper.d.ts +1 -1
- package/dist/components/Stepper/StepperStep.d.ts +1 -1
- package/dist/components/Tab/Tab.d.ts +1 -1
- package/dist/components/Tab/TabButton.d.ts +1 -1
- package/dist/indeterminate_check_box-jjLG4UY6.js +6 -0
- package/dist/indeterminate_check_box-jjLG4UY6.js.map +1 -0
- package/dist/{index-D6ag_WQW.js → index-ByMdotWU.js} +18 -18
- package/dist/{index-D6ag_WQW.js.map → index-ByMdotWU.js.map} +1 -1
- package/dist/index.css +98 -126
- package/dist/index.js +85 -82
- package/dist/index.js.map +1 -1
- package/dist/index2.css +57 -74
- package/dist/internal/components/StatusIcon/StatusIcon.d.ts +5 -5
- package/dist/internal/hooks/useSelectOrchestration.d.ts +1 -1
- package/dist/primitive-DXlHdTFb.js +1056 -0
- package/dist/primitive-DXlHdTFb.js.map +1 -0
- package/dist/providers/ThemeProvider/ThemeProvider.d.ts +1 -0
- package/dist/{stripInlineMarkdown-Cg1qlNwL.js → stripInlineMarkdown-BWbMy7r_.js} +2 -2
- package/dist/{stripInlineMarkdown-Cg1qlNwL.js.map → stripInlineMarkdown-BWbMy7r_.js.map} +1 -1
- package/dist/{syncFilterUtils-UR5Vgqkh.js → syncFilterUtils-BLcRXQfd.js} +49 -49
- package/dist/syncFilterUtils-BLcRXQfd.js.map +1 -0
- package/dist/syncFilterUtils.css +189 -217
- package/dist/token/core/component-variables.scss +1088 -131
- package/dist/token/core/component.d.ts +558 -0
- package/dist/token/core/component.js +6685 -249
- package/dist/token/core/component.scss +557 -69
- package/dist/token/core/css-utils/a2-border.css +47 -45
- package/dist/token/core/css-utils/a2-color.css +443 -227
- package/dist/token/core/css-utils/a2-font.css +0 -2
- package/dist/token/core/css-utils/a2-spacing.css +476 -478
- package/dist/token/core/css-utils/a2-utils.css +992 -772
- package/dist/token/core/css-utils/border.css +47 -45
- package/dist/token/core/css-utils/color.css +443 -227
- package/dist/token/core/css-utils/font.css +0 -2
- package/dist/token/core/css-utils/spacing.css +476 -478
- package/dist/token/core/css-utils/utils.css +992 -772
- package/dist/token/core/index.d.ts +6 -0
- package/dist/token/core/index.js +1 -1
- package/dist/token/core/primitive-variables.scss +148 -65
- package/dist/token/core/primitive.d.ts +209 -0
- package/dist/token/core/primitive.js +779 -61
- package/dist/token/core/primitive.scss +207 -124
- package/dist/token/core/semantic-variables.scss +363 -245
- package/dist/token/core/semantic.d.ts +221 -0
- package/dist/token/core/semantic.js +1592 -347
- package/dist/token/core/semantic.scss +219 -140
- package/dist/token.js +9076 -833
- package/dist/token.js.map +1 -1
- package/dist/{useBreakpoint-okJ64T1D.js → useBreakpoint-CeaUyHxh.js} +2 -2
- package/dist/{useBreakpoint-okJ64T1D.js.map → useBreakpoint-CeaUyHxh.js.map} +1 -1
- package/dist/useBreakpoint.js +1 -1
- package/dist/{useDrillDownContext-BssSasVB.js → useDrillDownContext-iUvoTget.js} +2 -2
- package/dist/{useDrillDownContext-BssSasVB.js.map → useDrillDownContext-iUvoTget.js.map} +1 -1
- package/dist/{useDrilldown-D6VZNSCX.js → useDrilldown-D5WWJRU2.js} +7 -7
- package/dist/{useDrilldown-D6VZNSCX.js.map → useDrilldown-D5WWJRU2.js.map} +1 -1
- package/dist/{useLayoutPropsUtil-DMDdfIah.js → useLayoutPropsUtil-CB_zHDbW.js} +3 -3
- package/dist/{useLayoutPropsUtil-DMDdfIah.js.map → useLayoutPropsUtil-CB_zHDbW.js.map} +1 -1
- package/dist/{useToggleSelection-BBdrIVWs.js → useToggleSelection-D_2qS0P1.js} +2 -2
- package/dist/{useToggleSelection-BBdrIVWs.js.map → useToggleSelection-D_2qS0P1.js.map} +1 -1
- package/package.json +2 -2
- package/dist/Alert-Dj61Bq8h.js.map +0 -1
- package/dist/AnvilProvider-DUPYyMc7.js.map +0 -1
- package/dist/Avatar-BckUfs1N.js.map +0 -1
- package/dist/Button.module-wCtFYGVD.js +0 -26
- package/dist/Button.module-wCtFYGVD.js.map +0 -1
- package/dist/ButtonCompound-Cmw3cgMY.js.map +0 -1
- package/dist/ButtonLink-BJKTJER8.js.map +0 -1
- package/dist/ButtonToggle-DaFQ3DBG.js.map +0 -1
- package/dist/Calendar-Dxl9QnfP.js.map +0 -1
- package/dist/Checkbox-B-XTVPbX.js.map +0 -1
- package/dist/Checkbox.module-EkRZO48Y.js +0 -28
- package/dist/Checkbox.module-EkRZO48Y.js.map +0 -1
- package/dist/Chip-Ce0WGKAc.js.map +0 -1
- package/dist/Combobox-CNQUROyr.js.map +0 -1
- package/dist/Dialog-Cewu2pd_.js.map +0 -1
- package/dist/DrillDown.module-C8VOhzaF.js +0 -27
- package/dist/FieldMessage-COHqUdj5.js +0 -132
- package/dist/FieldMessage-COHqUdj5.js.map +0 -1
- package/dist/Helper-B_FIOlhy.js.map +0 -1
- package/dist/Link.module-CZt9wvuD.js +0 -12
- package/dist/Link.module-CZt9wvuD.js.map +0 -1
- package/dist/LinkButton-DGyHR1E7.js.map +0 -1
- package/dist/LinkButton.css +0 -5
- package/dist/ListView.module-BilDg12y.js +0 -9
- package/dist/ListView.module-BilDg12y.js.map +0 -1
- package/dist/Listbox.module-HAXMOKvC.js +0 -18
- package/dist/Listbox.module-HAXMOKvC.js.map +0 -1
- package/dist/MultiSelectFieldSync-ChZCW4M9.js.map +0 -1
- package/dist/Page-BHdvTlfE.js.map +0 -1
- package/dist/Radio-DJZVMCv0.js.map +0 -1
- package/dist/SegmentedControl-B9NWUF7s.js.map +0 -1
- package/dist/SelectCard-DVcWJRbX.js +0 -352
- package/dist/SelectCard-DVcWJRbX.js.map +0 -1
- package/dist/SelectFieldSync-o1Cp9UYC.js.map +0 -1
- package/dist/SelectTriggerBase.module-CKoq6qzX.js +0 -38
- package/dist/SelectTriggerBase.module-CKoq6qzX.js.map +0 -1
- package/dist/SideNav-CrxYExjh.js.map +0 -1
- package/dist/Spinner-BqmcE2pb.js.map +0 -1
- package/dist/Tab-BZpTCG0i.js.map +0 -1
- package/dist/Text-WiS8UZkY.js.map +0 -1
- package/dist/TextField.module-BP-hDP5m.js +0 -22
- package/dist/TextField.module-BP-hDP5m.js.map +0 -1
- package/dist/ThemeProvider-CaYW3RuA.js.map +0 -1
- package/dist/Toaster-DYJm06Vb.js.map +0 -1
- package/dist/indeterminate_check_box-B4zobNlt.js.map +0 -1
- package/dist/primitive-C3RFDRA8.js +0 -255
- package/dist/primitive-C3RFDRA8.js.map +0 -1
- package/dist/syncFilterUtils-UR5Vgqkh.js.map +0 -1
- package/dist/token/core/raw.js +0 -234
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import { useMemo } from 'react';
|
|
2
|
-
import { u as useBreakpoint } from './useBreakpoint-
|
|
3
|
-
import { p as primitive } from './primitive-
|
|
2
|
+
import { u as useBreakpoint } from './useBreakpoint-CeaUyHxh.js';
|
|
3
|
+
import { p as primitive } from './primitive-DXlHdTFb.js';
|
|
4
4
|
|
|
5
5
|
const sizeToToken = (value) => {
|
|
6
6
|
if (typeof value === "undefined") return void 0;
|
|
@@ -90,4 +90,4 @@ function useLayoutPropsUtil(props) {
|
|
|
90
90
|
}
|
|
91
91
|
|
|
92
92
|
export { sizeToToken as s, useLayoutPropsUtil as u };
|
|
93
|
-
//# sourceMappingURL=useLayoutPropsUtil-
|
|
93
|
+
//# sourceMappingURL=useLayoutPropsUtil-CB_zHDbW.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"useLayoutPropsUtil-
|
|
1
|
+
{"version":3,"file":"useLayoutPropsUtil-CB_zHDbW.js","sources":["../src/internal/functions/sizeToToken.ts","../src/internal/hooks/useLayoutPropsUtil/useLayoutPropsUtil.ts"],"sourcesContent":["import { core } from \"@servicetitan/hammer-token\";\nimport { GapSize } from \"../../types\";\n\ntype PrimitiveSizes =\n | \"Size0\"\n | \"SizeHalf\"\n | \"Size1\"\n | \"Size2\"\n | \"Size3\"\n | \"Size4\"\n | \"Size5\"\n | \"Size6\"\n | \"Size7\"\n | \"Size8\"\n | \"Size9\"\n | \"Size10\"\n | \"Size11\"\n | \"Size12\"\n | \"Size13\"\n | \"Size14\";\n\nexport const sizeToToken = (value?: GapSize) => {\n if (typeof value === \"undefined\") return undefined;\n let gap = value;\n const stringifiedValue = String(value);\n if (stringifiedValue === \"half\") {\n gap =\n `${stringifiedValue[0].toUpperCase()}${stringifiedValue.slice(1)}` as GapSize;\n }\n\n return core.primitive?.[`Size${gap}` as PrimitiveSizes]?.value;\n};\n","import { CSSProperties, useMemo } from \"react\";\nimport { GapSize, LayoutUtilProps } from \"../../../types\";\nimport { useBreakpoint } from \"../../../hooks/useBreakpoint\";\nimport { sizeToToken } from \"../../functions/sizeToToken\";\n\nconst LAYOUT_PROP_ARR = [\n \"gridTemplateColumns\",\n \"gridTemplateRows\",\n \"gridTemplateAreas\",\n \"gridAutoColumns\",\n \"gridAutoRows\",\n \"gridArea\",\n \"gridColumn\",\n \"gridRow\",\n \"gridColumnStart\",\n \"gridColumnEnd\",\n \"gridRowStart\",\n \"gridRowEnd\",\n \"flex\",\n \"flexDirection\",\n \"flexGrow\",\n \"flexShrink\",\n \"flexBasis\",\n \"flexWrap\",\n \"order\",\n \"justifySelf\",\n \"justifyItems\",\n \"justifyContent\",\n \"alignSelf\",\n \"alignItems\",\n \"alignContent\",\n \"placeItems\",\n \"placeContent\",\n \"placeSelf\",\n \"wrap\",\n \"gap\",\n \"rowGap\",\n \"columnGap\",\n];\n\nconst RESPONSIVE_SIZES_ARR = [\"xs\", \"sm\", \"md\", \"lg\", \"xl\", \"xxl\"];\n\n/**\n * Layout CSS variables type excluding responsive properties\n */\ntype LayoutCSSVariables = Omit<LayoutUtilProps, keyof ResponsiveLayout>;\n\n/**\n * Responsive layout configuration type\n */\ntype ResponsiveLayout = {\n /**\n * Base layout properties\n */\n base?: LayoutUtilProps;\n /**\n * Extra small breakpoint layout properties\n */\n xs?: LayoutUtilProps;\n /**\n * Small breakpoint layout properties\n */\n sm?: LayoutUtilProps;\n /**\n * Medium breakpoint layout properties\n */\n md?: LayoutUtilProps;\n /**\n * Large breakpoint layout properties\n */\n lg?: LayoutUtilProps;\n /**\n * Extra large breakpoint layout properties\n */\n xl?: LayoutUtilProps;\n /**\n * Extra extra large breakpoint layout properties\n */\n xxl?: LayoutUtilProps;\n};\n\n/**\n * Custom hook for managing responsive layout properties and CSS styles.\n *\n * Features:\n * - Separates layout properties from component properties\n * - Provides responsive breakpoint support for all layout properties\n * - Automatically converts gap sizes to CSS tokens\n * - Uses breakpoint cascade for responsive values\n * - Optimized with useMemo for performance\n * - Supports all CSS Grid and Flexbox properties\n * - Handles responsive size inheritance (larger breakpoints inherit from smaller ones)\n * - Returns both layout styles and filtered component props\n *\n * @param props - Object containing layout and component properties\n * @returns Object containing layout styles and filtered component props\n */\nexport function useLayoutPropsUtil<T extends ResponsiveLayout>(\n props: T,\n): { layoutStyles?: CSSProperties; componentProps: T } {\n const baseSizeProps = Object.fromEntries(\n Object.entries(props).filter(([key, _val]) =>\n LAYOUT_PROP_ARR.includes(key),\n ),\n );\n\n const responsiveSizeProps = Object.fromEntries(\n Object.entries(props).filter(([key, _val]) =>\n RESPONSIVE_SIZES_ARR.includes(key),\n ),\n );\n\n const sizeProps: ResponsiveLayout = useMemo(\n () => ({\n ...responsiveSizeProps,\n base: baseSizeProps,\n }),\n [baseSizeProps, responsiveSizeProps],\n );\n\n const componentProps = Object.fromEntries(\n Object.entries(props).filter(\n ([key, _val]) =>\n !RESPONSIVE_SIZES_ARR.includes(key) && !LAYOUT_PROP_ARR.includes(key),\n ),\n );\n\n const breakpoint = useBreakpoint();\n\n const getValue = (style: keyof LayoutCSSVariables) => {\n const value =\n (breakpoint?.xxl ? sizeProps.xxl?.[style] : undefined) ??\n (breakpoint?.xl ? sizeProps.xl?.[style] : undefined) ??\n (breakpoint?.lg ? sizeProps.lg?.[style] : undefined) ??\n (breakpoint?.md ? sizeProps.md?.[style] : undefined) ??\n (breakpoint?.sm ? sizeProps.sm?.[style] : undefined) ??\n (breakpoint?.xs ? sizeProps.xs?.[style] : undefined) ??\n sizeProps.base?.[style];\n\n // Convert gap sizes to design tokens\n if (style.toLowerCase().endsWith(\"gap\")) {\n return sizeToToken(value as GapSize);\n }\n\n return value;\n };\n\n const layoutStyleObject = LAYOUT_PROP_ARR.reduce((o, key) => {\n const value = getValue(key as keyof LayoutCSSVariables);\n\n if (typeof value === \"undefined\") return o;\n return { ...o, [key]: value };\n }, {});\n\n return {\n layoutStyles: layoutStyleObject,\n componentProps: componentProps as T,\n };\n}\n"],"names":["core.primitive"],"mappings":"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"}
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import { jsx } from 'react/jsx-runtime';
|
|
2
2
|
import { forwardRef, useMemo, useCallback } from 'react';
|
|
3
|
-
import { V as VirtualizedOptionsPanel, O as OptionsPanel } from './syncFilterUtils-
|
|
3
|
+
import { V as VirtualizedOptionsPanel, O as OptionsPanel } from './syncFilterUtils-BLcRXQfd.js';
|
|
4
4
|
|
|
5
5
|
const MultiSelectOptions = forwardRef(({ selectedOptions, items, virtualize, ...rest }, ref) => {
|
|
6
6
|
const selectedIds = useMemo(
|
|
@@ -60,4 +60,4 @@ const useToggleSelection = ({
|
|
|
60
60
|
};
|
|
61
61
|
|
|
62
62
|
export { MultiSelectOptions as M, useToggleSelection as u };
|
|
63
|
-
//# sourceMappingURL=useToggleSelection-
|
|
63
|
+
//# sourceMappingURL=useToggleSelection-D_2qS0P1.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"useToggleSelection-
|
|
1
|
+
{"version":3,"file":"useToggleSelection-D_2qS0P1.js","sources":["../src/internal/components/MultiSelectOptions.tsx","../src/internal/hooks/useToggleSelection.ts"],"sourcesContent":["import { MultiSelectFieldOption } from \"../../beta/components/MultiSelectField/types\";\nimport { CheckState } from \"../../types\";\nimport { CSSProperties, forwardRef, useCallback, useMemo } from \"react\";\nimport { OptionsPanel, OptionsPanelHandle } from \"./OptionsPanel\";\nimport { VirtualizedOptionsPanel } from \"./VirtualizedOptionsPanel\";\nimport {\n GetItemPropsFn,\n GetMenuPropsFn,\n SectionMeta,\n SelectItem,\n} from \"../types/selectFieldInternalTypes\";\n\nexport type MultiSelectOptionsProps = {\n isOpen: boolean;\n items: SelectItem[];\n getMenuProps: GetMenuPropsFn;\n getItemProps: GetItemPropsFn;\n highlightedIndex: number;\n selectedOptions: MultiSelectFieldOption[];\n hasMore: boolean;\n onLoadMore: () => void;\n loading: boolean;\n loadingMore: boolean;\n disableAutoLoadMore?: boolean;\n disabled?: boolean;\n className?: string;\n style?: CSSProperties;\n sectionsMeta?: SectionMeta[];\n virtualize?: boolean;\n};\n\nexport const MultiSelectOptions = forwardRef<\n OptionsPanelHandle,\n MultiSelectOptionsProps\n>(({ selectedOptions, items, virtualize, ...rest }, ref) => {\n const selectedIds = useMemo(\n () => new Set(selectedOptions.map((opt) => opt.id)),\n [selectedOptions],\n );\n\n const getCheckedState = useCallback(\n (item: SelectItem): CheckState => {\n if (item.type === \"select-all\" || item.type === \"select-filtered\") {\n return item.checkState ?? \"indeterminate\";\n }\n const checkId =\n item.type === \"pinned-option\" ? item.original.id : item.id;\n return selectedIds.has(checkId) ? \"checked\" : \"unchecked\";\n },\n [selectedIds],\n );\n\n const ListComponent = virtualize ? VirtualizedOptionsPanel : OptionsPanel;\n\n return (\n <ListComponent\n {...rest}\n ref={ref}\n items={items}\n selectionType=\"multiple\"\n getCheckedState={getCheckedState}\n />\n );\n});\n\nMultiSelectOptions.displayName = \"MultiSelectOptions\";\n","import { useCallback, useMemo } from \"react\";\nimport { SelectFieldOption } from \"../../beta/components/SelectField/types\";\nimport { NormalizedPinnedSection } from \"./usePinnedOptions\";\n\ntype UseToggleSelectionParams = {\n options: SelectFieldOption[];\n pinnedSections: NormalizedPinnedSection[];\n selectedOptions: SelectFieldOption[];\n onSelectedOptionsChange: (options: SelectFieldOption[]) => void;\n};\n\n/**\n * Shared multi-select toggle logic: computes allPinnedOptions and provides\n * handleItemClick to add/remove an option from the selection.\n * Used by both useComboMultiple and useSelectModeMultiple.\n */\nexport const useToggleSelection = ({\n options,\n pinnedSections,\n selectedOptions,\n onSelectedOptionsChange,\n}: UseToggleSelectionParams) => {\n const allPinnedOptions = useMemo(() => {\n return pinnedSections.flatMap((section) => section.options);\n }, [pinnedSections]);\n\n const handleItemClick = useCallback(\n (option: { id: string | number; label: string }) => {\n const isSelected = selectedOptions.some((opt) => opt.id === option.id);\n if (isSelected) {\n onSelectedOptionsChange(\n selectedOptions.filter((opt) => opt.id !== option.id),\n );\n } else {\n const fullOption =\n options.find((opt) => opt.id === option.id) ||\n allPinnedOptions.find((opt) => opt.id === option.id);\n if (fullOption) {\n onSelectedOptionsChange([...selectedOptions, fullOption]);\n }\n }\n },\n [selectedOptions, onSelectedOptionsChange, options, allPinnedOptions],\n );\n\n return { handleItemClick, allPinnedOptions };\n};\n"],"names":[],"mappings":";;;;AA+BO,MAAM,kBAAA,GAAqB,UAAA,CAGhC,CAAC,EAAE,eAAA,EAAiB,OAAO,UAAA,EAAY,GAAG,IAAA,EAAK,EAAG,GAAA,KAAQ;AAC1D,EAAA,MAAM,WAAA,GAAc,OAAA;AAAA,IAClB,MAAM,IAAI,GAAA,CAAI,eAAA,CAAgB,IAAI,CAAC,GAAA,KAAQ,GAAA,CAAI,EAAE,CAAC,CAAA;AAAA,IAClD,CAAC,eAAe;AAAA,GAClB;AAEA,EAAA,MAAM,eAAA,GAAkB,WAAA;AAAA,IACtB,CAAC,IAAA,KAAiC;AAChC,MAAA,IAAI,IAAA,CAAK,IAAA,KAAS,YAAA,IAAgB,IAAA,CAAK,SAAS,iBAAA,EAAmB;AACjE,QAAA,OAAO,KAAK,UAAA,IAAc,eAAA;AAAA,MAC5B;AACA,MAAA,MAAM,UACJ,IAAA,CAAK,IAAA,KAAS,kBAAkB,IAAA,CAAK,QAAA,CAAS,KAAK,IAAA,CAAK,EAAA;AAC1D,MAAA,OAAO,WAAA,CAAY,GAAA,CAAI,OAAO,CAAA,GAAI,SAAA,GAAY,WAAA;AAAA,IAChD,CAAA;AAAA,IACA,CAAC,WAAW;AAAA,GACd;AAEA,EAAA,MAAM,aAAA,GAAgB,aAAa,uBAAA,GAA0B,YAAA;AAE7D,EAAA,uBACE,GAAA;AAAA,IAAC,aAAA;AAAA,IAAA;AAAA,MACE,GAAG,IAAA;AAAA,MACJ,GAAA;AAAA,MACA,KAAA;AAAA,MACA,aAAA,EAAc,UAAA;AAAA,MACd;AAAA;AAAA,GACF;AAEJ,CAAC;AAED,kBAAA,CAAmB,WAAA,GAAc,oBAAA;;ACjD1B,MAAM,qBAAqB,CAAC;AAAA,EACjC,OAAA;AAAA,EACA,cAAA;AAAA,EACA,eAAA;AAAA,EACA;AACF,CAAA,KAAgC;AAC9B,EAAA,MAAM,gBAAA,GAAmB,QAAQ,MAAM;AACrC,IAAA,OAAO,cAAA,CAAe,OAAA,CAAQ,CAAC,OAAA,KAAY,QAAQ,OAAO,CAAA;AAAA,EAC5D,CAAA,EAAG,CAAC,cAAc,CAAC,CAAA;AAEnB,EAAA,MAAM,eAAA,GAAkB,WAAA;AAAA,IACtB,CAAC,MAAA,KAAmD;AAClD,MAAA,MAAM,UAAA,GAAa,gBAAgB,IAAA,CAAK,CAAC,QAAQ,GAAA,CAAI,EAAA,KAAO,OAAO,EAAE,CAAA;AACrE,MAAA,IAAI,UAAA,EAAY;AACd,QAAA,uBAAA;AAAA,UACE,gBAAgB,MAAA,CAAO,CAAC,QAAQ,GAAA,CAAI,EAAA,KAAO,OAAO,EAAE;AAAA,SACtD;AAAA,MACF,CAAA,MAAO;AACL,QAAA,MAAM,aACJ,OAAA,CAAQ,IAAA,CAAK,CAAC,GAAA,KAAQ,IAAI,EAAA,KAAO,MAAA,CAAO,EAAE,CAAA,IAC1C,iBAAiB,IAAA,CAAK,CAAC,QAAQ,GAAA,CAAI,EAAA,KAAO,OAAO,EAAE,CAAA;AACrD,QAAA,IAAI,UAAA,EAAY;AACd,UAAA,uBAAA,CAAwB,CAAC,GAAG,eAAA,EAAiB,UAAU,CAAC,CAAA;AAAA,QAC1D;AAAA,MACF;AAAA,IACF,CAAA;AAAA,IACA,CAAC,eAAA,EAAiB,uBAAA,EAAyB,OAAA,EAAS,gBAAgB;AAAA,GACtE;AAEA,EAAA,OAAO,EAAE,iBAAiB,gBAAA,EAAiB;AAC7C;;;;"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@servicetitan/anvil2",
|
|
3
|
-
"version": "
|
|
3
|
+
"version": "3.0.0",
|
|
4
4
|
"type": "module",
|
|
5
5
|
"types": "./dist/index.d.ts",
|
|
6
6
|
"main": "./dist/index.js",
|
|
@@ -60,7 +60,7 @@
|
|
|
60
60
|
"tinycolor2": "^1.6.0",
|
|
61
61
|
"uuid": "^10.0.0",
|
|
62
62
|
"@servicetitan/hammer-icon": "1.2.0",
|
|
63
|
-
"@servicetitan/hammer-token": "
|
|
63
|
+
"@servicetitan/hammer-token": "3.0.0"
|
|
64
64
|
},
|
|
65
65
|
"peerDependencies": {
|
|
66
66
|
"@types/react": "^18 || ^19",
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"Alert-Dj61Bq8h.js","sources":["../src/components/Alert/Alert.tsx"],"sourcesContent":["import { ComponentPropsWithoutRef, MouseEvent, Ref, forwardRef } from \"react\";\nimport { useTrackingId } from \"../../hooks\";\nimport {\n DataTrackingId,\n LayoutUtilProps,\n OnCloseProps,\n Status,\n Svg,\n} from \"../../types\";\nimport Close from \"@servicetitan/hammer-icon/mdi/round/close.svg\";\nimport Info from \"@servicetitan/hammer-icon/mdi/round/info.svg\";\nimport Warning from \"@servicetitan/hammer-icon/mdi/round/warning.svg\";\nimport Danger from \"@servicetitan/hammer-icon/mdi/round/error.svg\";\nimport Success from \"@servicetitan/hammer-icon/mdi/round/check_circle.svg\";\nimport Icon from \"../Icon\";\nimport Button from \"../Button\";\nimport { Text } from \"../Text\";\nimport { AiMarkWithTooltipOrPopoverConfig } from \"../../types/ai-marks\";\n\nimport { useLayoutPropsUtil } from \"../../internal/hooks\";\n\nimport cx from \"classnames\";\nimport styles from \"./Alert.module.scss\";\n\n/**\n * Props for the Alert component\n * @extends ComponentPropsWithoutRef<\"div\">\n * @extends LayoutUtilProps\n * @extends OnCloseProps\n */\nexport type AlertProps = ComponentPropsWithoutRef<\"div\"> &\n LayoutUtilProps &\n OnCloseProps & {\n /**\n * The visual style of an alert.\n * @default info\n */\n status?: Status;\n /**\n * The title text displayed in the alert.\n */\n title: string;\n /**\n * When set, displays the AI mark inline after the title.\n * Use `true` for the sparkle only, or pass tooltip/popover configuration.\n */\n aiMark?: boolean | AiMarkWithTooltipOrPopoverConfig;\n } &\n /**\n * Data tracking id\n */\n DataTrackingId;\n\nconst statusIconMap: Record<NonNullable<AlertProps[\"status\"]>, Svg> = {\n info: Info,\n success: Success,\n warning: Warning,\n danger: Danger,\n};\n\n/**\n * Alert component for displaying important messages to users.\n *\n * Features:\n * - Supports different visual styles (info, success, warning, danger)\n * - Optional close button for dismissible alerts\n * - Optional AI mark inline after the title\n * - Customizable title and content\n * - Accessible with proper ARIA roles\n * - Includes status-specific icons\n * - Supports layout utilities for positioning and spacing\n * - Automatic tracking ID generation for analytics\n *\n * @example\n * <Alert\n * title=\"System Update\"\n * onClose={() => console.log('Alert closed')}\n * >\n * The system will be updated tonight.\n * </Alert>\n *\n * @example\n * <Alert\n * status=\"success\"\n * title=\"Operation Complete\"\n * >\n * Your changes have been saved successfully.\n * </Alert>\n */\nexport const Alert = forwardRef(\n (props: AlertProps, ref: Ref<HTMLDivElement>) => {\n const { layoutStyles, componentProps } = useLayoutPropsUtil(props);\n const {\n children,\n className,\n title,\n status = \"info\",\n style,\n onClose,\n aiMark,\n ...rest\n } = componentProps;\n\n const data = {\n title,\n status,\n };\n\n const trackingId = useTrackingId({\n name: \"Alert\",\n data,\n hasOverride: !!props[\"data-tracking-id\"],\n });\n\n const alertCx = cx(styles[\"alert\"], className, {\n [styles[\"success\"]]: status === \"success\",\n [styles[\"warning\"]]: status === \"warning\",\n [styles[\"danger\"]]: status === \"danger\",\n });\n\n const styleCombined = {\n ...style,\n ...layoutStyles,\n };\n\n return (\n <div\n data-tracking-id={trackingId}\n data-anv=\"alert\"\n role=\"status\"\n className={alertCx}\n style={styleCombined}\n {...rest}\n ref={ref}\n >\n <div className={styles[\"top\"]}>\n <span className={styles[\"title-container\"]}>\n <Icon\n size=\"large\"\n className={styles[\"status-icon\"]}\n svg={statusIconMap[status ?? \"info\"]}\n />\n <Text\n variant=\"headline\"\n el=\"h6\"\n size=\"small\"\n className={styles[\"title\"]}\n aiMark={aiMark || undefined}\n >\n {title}\n </Text>\n </span>\n {!!onClose && (\n <span className={styles[\"close-container\"]}>\n <Button\n icon={Close}\n size=\"small\"\n appearance=\"ghost\"\n className={styles[\"close-button\"]}\n onClick={(e: MouseEvent<HTMLButtonElement>) => onClose(e)}\n aria-label={`Dismiss ${status} alert`}\n />\n </span>\n )}\n </div>\n {children && <div className={styles[\"content\"]}>{children}</div>}\n </div>\n );\n },\n);\n\nAlert.displayName = \"Alert\";\n"],"names":["Info","Success","Warning","Danger","Close"],"mappings":"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"}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"AnvilProvider-DUPYyMc7.js","sources":["../src/providers/AnvilProvider/AnvilProviderContext.tsx","../src/providers/AnvilProvider/AnvilProvider.tsx"],"sourcesContent":["import { ThemeProviderProps } from \"../ThemeProvider\";\nimport {\n ComponentPropsWithoutRef,\n Dispatch,\n ReactNode,\n SetStateAction,\n createContext,\n useContext,\n} from \"react\";\nimport { LayoutUtilProps } from \"../../types\";\nimport { ITranslations } from \"../LocalizationProvider/LocalizationProvider\";\nimport { type BreakpointReturnProps } from \"../../hooks/useBreakpoint\";\n\nexport type AnvilProviderProps = ComponentPropsWithoutRef<\"div\"> &\n LayoutUtilProps & {\n children?: ReactNode;\n\n themeData?: {\n theme?: ThemeProviderProps[\"theme\"];\n mode?: ThemeProviderProps[\"mode\"];\n };\n\n localizationData?: {\n locale?: ITranslations[\"locale\"];\n dir?: ITranslations[\"dir\"];\n translations?: ITranslations[\"translations\"];\n };\n } & {\n trackingIdData?: {\n scope?: string;\n optOut?: boolean;\n };\n };\n\nexport type AnvilProviderContextProps = {\n breakpoint?: BreakpointReturnProps;\n};\n\nexport const AnvilProviderContext = createContext<AnvilProviderContextProps>(\n {},\n);\n\nexport const TooltipLegacyGroupContext = createContext<{\n disableDelayGroup: Dispatch<SetStateAction<boolean>>;\n} | null>(null);\n\nexport const useTooltipLegacyGroup = () => {\n const context = useContext(TooltipLegacyGroupContext);\n\n if (context == null) {\n throw new Error(\n \"Tooltip components must be wrapped in <AnvilProvider /> or <TooltipGroupContext.Provider />\",\n );\n }\n\n return context;\n};\n","import \"@servicetitan/anvil-fonts/dist/css/anvil-fonts.css\";\nimport { ThemeProvider } from \"../ThemeProvider\";\nimport themeStyles from \"../ThemeProvider/ThemeProvider.module.scss\";\nimport { useMemo, useState } from \"react\";\nimport cx from \"classnames\";\nimport { useLayoutPropsUtil } from \"../../internal/hooks\";\nimport { useBreakpoint } from \"../../hooks/useBreakpoint\";\nimport { useTranslations } from \"../LocalizationProvider/useTranslations\";\nimport { LocalizationContext } from \"../LocalizationProvider\";\nimport TrackingProvider from \"../TrackingProvider\";\nimport {\n AnvilProviderContext,\n AnvilProviderProps,\n TooltipLegacyGroupContext,\n} from \"./AnvilProviderContext\";\n\nexport const AnvilProvider = (props: AnvilProviderProps) => {\n const { layoutStyles, componentProps } = useLayoutPropsUtil(props);\n\n const {\n themeData,\n localizationData,\n trackingIdData,\n children,\n className,\n style,\n ...rest\n } = componentProps;\n\n const {\n locale = \"en\",\n dir = \"ltr\",\n translations = {},\n } = localizationData ?? {};\n\n const { scope = \"ST\", optOut } = trackingIdData ?? {};\n\n const classNameCombined = cx(className, [themeStyles[\"theme-core\"]], {\n [themeStyles[\"mode-dark\"]]: themeData?.mode === \"dark\",\n [themeStyles[\"mode-light\"]]: themeData?.mode === \"light\",\n });\n const styleCombined = {\n ...style,\n ...layoutStyles,\n };\n\n const breakpoint = useBreakpoint();\n\n const [disableDelayGroup, setDisableDelayGroup] = useState(false);\n\n const { translations: t } = useTranslations(translations);\n\n const localizationContextValue = useMemo(() => ({ locale, t }), [locale, t]);\n const tooltipLegacyGroupContextValue = useMemo(\n () => ({ disableDelayGroup: setDisableDelayGroup }),\n // eslint-disable-next-line react-hooks/exhaustive-deps\n [disableDelayGroup],\n );\n\n return (\n <AnvilProviderContext.Provider value={{ breakpoint }}>\n <ThemeProvider\n className={classNameCombined}\n style={styleCombined}\n theme={themeData?.theme}\n mode={themeData?.mode}\n dir={dir}\n {...rest}\n >\n <TooltipLegacyGroupContext.Provider\n value={tooltipLegacyGroupContextValue}\n >\n <LocalizationContext.Provider value={localizationContextValue}>\n <TrackingProvider scope={scope} optOut={optOut}>\n {children}\n </TrackingProvider>\n </LocalizationContext.Provider>\n </TooltipLegacyGroupContext.Provider>\n </ThemeProvider>\n </AnvilProviderContext.Provider>\n );\n};\n"],"names":[],"mappings":";;;;;;;;;AAsCO,MAAM,oBAAA,GAAuB,aAAA;AAAA,EAClC;AACF;AAEO,MAAM,yBAAA,GAA4B,cAE/B,IAAI,CAAA;;AC5BP,MAAM,aAAA,GAAgB,CAAC,KAAA,KAA8B;AAC1D,EAAA,MAAM,EAAE,YAAA,EAAc,cAAA,EAAe,GAAI,mBAAmB,KAAK,CAAA;AAEjE,EAAA,MAAM;AAAA,IACJ,SAAA;AAAA,IACA,gBAAA;AAAA,IACA,cAAA;AAAA,IACA,QAAA;AAAA,IACA,SAAA;AAAA,IACA,KAAA;AAAA,IACA,GAAG;AAAA,GACL,GAAI,cAAA;AAEJ,EAAA,MAAM;AAAA,IACJ,MAAA,GAAS,IAAA;AAAA,IACT,GAAA,GAAM,KAAA;AAAA,IACN,eAAe;AAAC,GAClB,GAAI,oBAAoB,EAAC;AAEzB,EAAA,MAAM,EAAE,KAAA,GAAQ,IAAA,EAAM,MAAA,EAAO,GAAI,kBAAkB,EAAC;AAEpD,EAAA,MAAM,oBAAoB,EAAA,CAAG,SAAA,EAAW,CAAC,WAAA,CAAY,YAAY,CAAC,CAAA,EAAG;AAAA,IACnE,CAAC,WAAA,CAAY,WAAW,CAAC,GAAG,WAAW,IAAA,KAAS,MAAA;AAAA,IAChD,CAAC,WAAA,CAAY,YAAY,CAAC,GAAG,WAAW,IAAA,KAAS;AAAA,GAClD,CAAA;AACD,EAAA,MAAM,aAAA,GAAgB;AAAA,IACpB,GAAG,KAAA;AAAA,IACH,GAAG;AAAA,GACL;AAEA,EAAA,MAAM,aAAa,aAAA,EAAc;AAEjC,EAAA,MAAM,CAAC,iBAAA,EAAmB,oBAAoB,CAAA,GAAI,SAAS,KAAK,CAAA;AAEhE,EAAA,MAAM,EAAE,YAAA,EAAc,CAAA,EAAE,GAAI,gBAAgB,YAAY,CAAA;AAExD,EAAA,MAAM,wBAAA,GAA2B,OAAA,CAAQ,OAAO,EAAE,MAAA,EAAQ,GAAE,CAAA,EAAI,CAAC,MAAA,EAAQ,CAAC,CAAC,CAAA;AAC3E,EAAA,MAAM,8BAAA,GAAiC,OAAA;AAAA,IACrC,OAAO,EAAE,iBAAA,EAAmB,oBAAA,EAAqB,CAAA;AAAA;AAAA,IAEjD,CAAC,iBAAiB;AAAA,GACpB;AAEA,EAAA,2BACG,oBAAA,CAAqB,QAAA,EAArB,EAA8B,KAAA,EAAO,EAAE,YAAW,EACjD,QAAA,kBAAA,GAAA;AAAA,IAAC,aAAA;AAAA,IAAA;AAAA,MACC,SAAA,EAAW,iBAAA;AAAA,MACX,KAAA,EAAO,aAAA;AAAA,MACP,OAAO,SAAA,EAAW,KAAA;AAAA,MAClB,MAAM,SAAA,EAAW,IAAA;AAAA,MACjB,GAAA;AAAA,MACC,GAAG,IAAA;AAAA,MAEJ,QAAA,kBAAA,GAAA;AAAA,QAAC,yBAAA,CAA0B,QAAA;AAAA,QAA1B;AAAA,UACC,KAAA,EAAO,8BAAA;AAAA,UAEP,QAAA,kBAAA,GAAA,CAAC,mBAAA,CAAoB,QAAA,EAApB,EAA6B,KAAA,EAAO,wBAAA,EACnC,QAAA,kBAAA,GAAA,CAAC,gBAAA,EAAA,EAAiB,KAAA,EAAc,MAAA,EAC7B,QAAA,EACH,CAAA,EACF;AAAA;AAAA;AACF;AAAA,GACF,EACF,CAAA;AAEJ;;;;"}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"Avatar-BckUfs1N.js","sources":["../src/internal/functions/getInitial.ts","../src/components/Avatar/internal/AvatarBase.tsx","../src/components/Avatar/AvatarGroup.tsx","../src/components/Avatar/internal/Avatar.tsx"],"sourcesContent":["/**\n * Extracts initials from a full name string.\n *\n * Features:\n * - Handles single names (returns first two characters)\n * - Handles multiple names (returns first and last name initials)\n * - Automatically capitalizes all initials\n * - Filters out empty strings and whitespace\n * - Handles edge cases like empty names and single characters\n * - Preserves proper capitalization rules\n * - Returns undefined for empty or falsy input\n *\n * @param name - The full name string to extract initials from\n * @returns The initials as a string, or undefined if name is empty\n */\nexport function getInitial(name: string) {\n if (!name) return undefined;\n\n const nameArray = name.split(\" \").filter(Boolean);\n\n if (nameArray.length > 1)\n return `${nameArray[0][0]?.toUpperCase()}${nameArray[\n nameArray.length - 1\n ][0].toUpperCase()}`;\n\n if (nameArray[0][1]) {\n return `${nameArray[0][0].toUpperCase()}${nameArray[0][1].toLowerCase()}`;\n }\n return `${nameArray[0][0].toUpperCase()}`;\n}\n","import {\n ComponentPropsWithoutRef,\n forwardRef,\n useContext,\n useRef,\n useState,\n useEffect,\n useMemo,\n} from \"react\";\nimport cx from \"classnames\";\nimport tinycolor from \"tinycolor2\";\n\nimport { LayoutUtilProps, Size } from \"../../../types\";\nimport { SrOnly } from \"../../SrOnly\";\nimport {\n useAccessibleColor,\n useMergeRefs,\n usePrefersColorScheme,\n} from \"../../../hooks\";\n\nimport styles from \"./AvatarBase.module.scss\";\nimport { ThemeProviderContext } from \"../../../providers/ThemeProvider/internal/ThemeProviderContext\";\n\n/**\n * Props for the AvatarBase component\n * @extends ComponentPropsWithoutRef<\"span\">\n * @extends Omit<LayoutUtilProps, \"flex\" | \"flexBasis\" | \"flexGrow\" | \"flexShrink\">\n */\nexport type AvatarBaseProps = ComponentPropsWithoutRef<\"span\"> &\n Omit<LayoutUtilProps, \"flex\" | \"flexBasis\" | \"flexGrow\" | \"flexShrink\"> & {\n /**\n * Full name\n * @accessibility This is used for alt text and Screenreader\n */\n name: string;\n /**\n * Custom color of the AvatarBase\n */\n color?: string;\n /**\n * Image source to be used for AvatarBase\n */\n image?: string;\n /**\n * Initials to display if no image is provided\n */\n initials?: string;\n /**\n * @default medium\n */\n size?: Extract<Size, \"xsmall\" | \"small\" | \"medium\" | \"large\">;\n /**\n * Online status of the AvatarBase\n */\n status?: \"online\" | \"offline\";\n };\n\n/**\n * Base Avatar component that handles the core avatar functionality.\n *\n * Features:\n * - Renders user avatars with images or initials\n * - Supports custom colors with accessible contrast\n * - Shows online/offline status indicator\n * - Handles image loading errors gracefully\n * - Supports light and dark themes\n * - Fully accessible with screen reader support\n *\n * @example\n * <AvatarBase name=\"John Doe\" size=\"medium\" status=\"online\" />\n */\nexport const AvatarBase = forwardRef<HTMLSpanElement, AvatarBaseProps>(\n (props, ref) => {\n const {\n className,\n color,\n status,\n name,\n image,\n initials,\n style,\n size,\n ...rest\n } = props;\n\n const elRef = useRef<HTMLSpanElement>(null);\n const imgRef = useRef<HTMLImageElement>(null);\n const [hasImageErrored, setHasImageErrored] = useState(false);\n const avatarBaseClassNames = cx(styles[\"avatar-base\"], className, {\n [styles[`${size}`]]: size,\n });\n const onlineIndicatorClassNames = cx(styles[\"indicator\"], {\n [styles[\"offline\"]]: !status || status === \"offline\",\n [styles[\"online\"]]: status && status === \"online\",\n });\n\n const { mode: themeMode } = useContext(ThemeProviderContext);\n const { mode: sysMode } = usePrefersColorScheme();\n const mode = themeMode ?? sysMode;\n\n const { foreground, background, border } = useAccessibleColor(color, mode);\n\n const styleWithColor = {\n \"--int-bg-color\": color && background,\n \"--int-font-color\": color && foreground,\n \"--int-border-color\": color && border,\n ...style,\n };\n\n const onlineIndicatorBorderColor = useMemo(() => {\n if (mode === \"dark\") {\n if (color) {\n return tinycolor(background).brighten(20).toHexString();\n }\n }\n return \"var(--background-color)\";\n }, [color, mode, background]);\n\n const onlineIndicatorStyles = {\n \"--int-border-color\": onlineIndicatorBorderColor,\n } as React.CSSProperties;\n\n const onlineString = status;\n const srOnly = [name, onlineString].filter(Boolean).join(\" \");\n\n // if the image prop updates, also reset the error state for the new image\n useEffect(() => {\n if (image) {\n setHasImageErrored(false);\n }\n }, [image]);\n\n // if the image is already complete on our first render (likely due to SSR),\n // check the error state of the already complete image\n useEffect(() => {\n if (image && imgRef.current && imgRef.current.complete) {\n const img = new Image();\n img.onerror = () => setHasImageErrored(true);\n img.src = image;\n }\n }, []); // eslint-disable-line react-hooks/exhaustive-deps\n\n return (\n <span\n className={avatarBaseClassNames}\n style={styleWithColor}\n data-anv=\"avatarBase\"\n {...rest}\n ref={useMergeRefs([elRef, ref])}\n >\n {image && !hasImageErrored ? (\n <img\n className={styles[\"img\"]}\n aria-hidden\n src={image}\n alt={name}\n onError={() => setHasImageErrored(true)}\n ref={imgRef}\n />\n ) : initials ? (\n <span className={styles[\"initial\"]} aria-hidden>\n {initials}\n </span>\n ) : (\n <span aria-hidden>?</span>\n )}\n\n {status && (\n <span\n aria-hidden\n className={onlineIndicatorClassNames}\n style={onlineIndicatorStyles}\n />\n )}\n\n <SrOnly>{srOnly}</SrOnly>\n </span>\n );\n },\n);\n\nAvatarBase.displayName = \"AvatarBase\";\n","import {\n ComponentPropsWithoutRef,\n forwardRef,\n Children,\n isValidElement,\n cloneElement,\n CSSProperties,\n ReactElement,\n} from \"react\";\nimport cx from \"classnames\";\nimport styles from \"./AvatarGroup.module.scss\";\nimport avatarBaseStyles from \"./internal/AvatarBase.module.scss\";\nimport type { LayoutUtilProps } from \"../../types\";\nimport { useLayoutPropsUtil } from \"../../internal/hooks\";\nimport { AvatarBase } from \"./internal/AvatarBase\";\n\n/**\n * Props for the AvatarGroup component\n * @property {number} [max] - Maximum number of avatars to display before truncating\n * @extends LayoutUtilProps\n * @extends ComponentPropsWithoutRef<\"span\">\n */\nexport type AvatarGroupProps = LayoutUtilProps &\n ComponentPropsWithoutRef<\"span\"> & {\n /**\n * Max child to show before truncating\n */\n max?: number;\n };\n\n/**\n * AvatarGroup component for displaying multiple avatars in a group.\n *\n * Features:\n * - Displays multiple avatars in a stacked layout\n * - Handles overflow with a count indicator\n * - Maintains consistent sizing across all avatars\n * - Supports custom styling and layout\n * - Automatically adjusts z-index for proper stacking\n * - Fully accessible with screen reader support\n *\n * @example\n * <Avatar.Group max={3}>\n * <Avatar name=\"John Doe\" />\n * <Avatar name=\"Jane Smith\" />\n * <Avatar name=\"Bob Johnson\" />\n * <Avatar name=\"Alice Brown\" />\n * </Avatar.Group>\n */\nexport const AvatarGroup = forwardRef<HTMLSpanElement, AvatarGroupProps>(\n (props, ref) => {\n const { layoutStyles, componentProps } = useLayoutPropsUtil(props);\n const { className, max, style, children, ...rest } = componentProps;\n const childrenArr = Children.toArray(children);\n const inferredSize =\n (isValidElement(childrenArr[0]) && childrenArr[0].props.size) ?? \"medium\";\n const isOverflowing = max ? max < childrenArr.length : false;\n\n const overflowCount = max && childrenArr.length - max;\n\n const avatarGroupClassNames = cx(styles[\"avatar-group\"], className, {\n [styles[`${inferredSize}`]]: inferredSize,\n });\n\n const avatarBaseOverflowClassNames = cx(\n avatarBaseStyles[\"avatar-base-overflow\"],\n {\n [avatarBaseStyles[\"overflow-ten-plus\"]]:\n overflowCount && overflowCount > 9,\n },\n );\n\n const styleCombined = {\n ...style,\n ...layoutStyles,\n };\n return (\n <span\n ref={ref}\n className={avatarGroupClassNames}\n style={styleCombined}\n data-anv=\"avatar-group\"\n {...rest}\n >\n {childrenArr.map((child, i) => {\n let childEl = child;\n if (isValidElement(child)) {\n const nIndex = childrenArr.length - i;\n const nStyle: CSSProperties = {\n ...child.props.style,\n zIndex: nIndex,\n };\n childEl = cloneElement(child as ReactElement, {\n style: nStyle,\n });\n }\n\n if (!max) return childEl;\n if (i < max) return childEl;\n return null;\n })}\n {isOverflowing && max && (\n <AvatarBase\n className={avatarBaseOverflowClassNames}\n name={`+${overflowCount}`}\n initials={`+${overflowCount}`}\n size={inferredSize}\n />\n )}\n </span>\n );\n },\n);\n\nAvatarGroup.displayName = \"AvatarGroup\";\n","import { ComponentPropsWithoutRef, forwardRef, useMemo } from \"react\";\nimport { AvatarGroup } from \"../AvatarGroup\";\nimport { LayoutUtilProps } from \"../../../types\";\nimport { getInitial } from \"../../../internal/functions\";\n\nimport { useLayoutPropsUtil } from \"../../../internal/hooks\";\nimport { AvatarBase, AvatarBaseProps } from \"./AvatarBase\";\n\n/**\n * Props for the Avatar component\n * @property {string} name - Full name of the user. Used for alt text and screen reader announcements\n * @property {string} [color] - Custom color of the avatar. Should maintain sufficient contrast ratio for accessibility\n * @property {string} [image] - Image source to be used for avatar. Falls back to initials if image fails to load\n * @property {Extract<Size, \"small\" | \"medium\" | \"large\">} [size] - Size of the Avatar\n * @property {\"online\" | \"offline\"} [status] - Online status of the Avatar\n * @extends ComponentPropsWithoutRef<\"span\">\n * @extends Omit<AvatarBaseProps, \"initials\">\n * @extends Omit<LayoutUtilProps, \"flex\" | \"flexBasis\" | \"flexGrow\" | \"flexShrink\">\n */\nexport type AvatarProps = ComponentPropsWithoutRef<\"span\"> &\n Omit<AvatarBaseProps, \"initials\"> &\n Omit<LayoutUtilProps, \"flex\" | \"flexBasis\" | \"flexGrow\" | \"flexShrink\">;\n\n/**\n * Avatar component for displaying user avatars with initials or images.\n *\n * Features:\n * - Displays user initials when no image is provided\n * - Supports custom colors and sizes\n * - Shows online/offline status\n * - Fully accessible with screen reader support\n * - Automatic image fallback handling\n * - Supports layout utilities for positioning and spacing\n *\n * @example\n * <Avatar\n * name=\"John Doe\"\n * image=\"https://example.com/avatar.jpg\"\n * size=\"medium\"\n * status=\"online\"\n * />\n */\nexport const Avatar = Object.assign(\n forwardRef<HTMLSpanElement, AvatarProps>(function AvatarInner(props, ref) {\n const { layoutStyles, componentProps } = useLayoutPropsUtil(props);\n const { name, style, ...rest } = componentProps;\n\n const styleWithLayout = useMemo(() => {\n return {\n ...layoutStyles,\n ...style,\n };\n }, [layoutStyles, style]);\n\n const initials = getInitial(name);\n\n return (\n <AvatarBase\n style={styleWithLayout}\n data-anv=\"avatar\"\n name={name}\n ref={ref}\n initials={rest.size === \"small\" ? initials?.[0] : initials}\n {...rest}\n />\n );\n }),\n {\n /**\n * AvatarGroup component for displaying multiple avatars in a group.\n *\n * Features:\n * - Displays multiple avatars in a stacked layout\n * - Handles overflow with a count indicator\n * - Maintains consistent sizing across all avatars\n * - Supports custom styling and layout\n * - Automatically adjusts z-index for proper stacking\n * - Fully accessible with screen reader support\n *\n * @example\n * <Avatar.Group max={3}>\n * <Avatar name=\"John Doe\" />\n * <Avatar name=\"Jane Smith\" />\n * <Avatar name=\"Bob Johnson\" />\n * <Avatar name=\"Alice Brown\" />\n * </Avatar.Group>\n */\n Group: AvatarGroup,\n },\n);\nAvatar.displayName = \"Avatar\";\n"],"names":["styles"],"mappings":"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"}
|
|
@@ -1,26 +0,0 @@
|
|
|
1
|
-
import './Button.css';const button = "_button_1988s_2";
|
|
2
|
-
const icon = "_icon_1988s_62";
|
|
3
|
-
const loading = "_loading_1988s_70";
|
|
4
|
-
const styles = {
|
|
5
|
-
button: button,
|
|
6
|
-
"type-icon": "_type-icon_1988s_16",
|
|
7
|
-
icon: icon,
|
|
8
|
-
loading: loading,
|
|
9
|
-
"loading-spinner": "_loading-spinner_1988s_73",
|
|
10
|
-
"size-xsmall": "_size-xsmall_1988s_76",
|
|
11
|
-
"size-small": "_size-small_1988s_85",
|
|
12
|
-
"size-medium": "_size-medium_1988s_94",
|
|
13
|
-
"size-large": "_size-large_1988s_102",
|
|
14
|
-
"appearance-primary": "_appearance-primary_1988s_110",
|
|
15
|
-
"appearance-secondary": "_appearance-secondary_1988s_125",
|
|
16
|
-
"appearance-ghost": "_appearance-ghost_1988s_140",
|
|
17
|
-
"danger-primary": "_danger-primary_1988s_155",
|
|
18
|
-
"danger-secondary": "_danger-secondary_1988s_170",
|
|
19
|
-
"button-compound": "_button-compound_1988s_241",
|
|
20
|
-
"shape-rounded": "_shape-rounded_1988s_262",
|
|
21
|
-
"shape-pill": "_shape-pill_1988s_265",
|
|
22
|
-
"shape-circular": "_shape-circular_1988s_268",
|
|
23
|
-
"button-toggle": "_button-toggle_1988s_273"};
|
|
24
|
-
|
|
25
|
-
export { styles as s };
|
|
26
|
-
//# sourceMappingURL=Button.module-wCtFYGVD.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"Button.module-wCtFYGVD.js","sources":[],"sourcesContent":[],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;"}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"ButtonCompound-Cmw3cgMY.js","sources":["../src/components/ButtonCompound/ButtonCompound.tsx"],"sourcesContent":["import { ComponentPropsWithoutRef, Ref, forwardRef } from \"react\";\nimport { useTrackingId } from \"../../hooks\";\nimport { DataTrackingId, LayoutUtilProps } from \"../../types\";\nimport { childrenToString } from \"../../internal/functions\";\nimport { useLayoutPropsUtil } from \"../../internal/hooks\";\n\nimport cx from \"classnames\";\nimport styles from \"../Button/Button.module.scss\";\n\n/**\n * Props for the ButtonCompound component\n * @extends LayoutUtilProps\n * @extends ComponentPropsWithoutRef<\"button\">\n */\nexport type ButtonCompoundProps = LayoutUtilProps &\n ComponentPropsWithoutRef<\"button\"> & {\n /**\n * The shape of the compound button.\n * @default rounded\n */\n shape?: \"pill\" | \"circular\" | \"rounded\";\n } &\n /**\n * Data tracking id\n */\n DataTrackingId;\n\n/**\n * ButtonCompound component for creating compound button layouts.\n *\n * Features:\n * - Three shape options (pill, circular, rounded)\n * - Transparent background for compound layouts\n * - Supports layout utilities for positioning and spacing\n * - Full accessibility support with proper ARIA attributes\n * - Flexible content support\n * - Consistent styling with other button components\n * - Hover and active state management\n * - Automatic tracking ID generation for analytics\n *\n * @example\n * <ButtonCompound shape=\"circular\">\n * <Avatar name=\"John Doe\" />\n * </ButtonCompound>\n */\nexport const ButtonCompound = forwardRef(\n (props: ButtonCompoundProps, ref: Ref<HTMLButtonElement>) => {\n const { layoutStyles, componentProps } = useLayoutPropsUtil(props);\n const {\n className,\n shape = \"rounded\",\n type,\n disabled,\n children,\n style,\n ...rest\n } = componentProps;\n\n const data = {\n children: childrenToString(props.children),\n shape,\n type,\n };\n\n const trackingId = useTrackingId({\n name: \"ButtonCompound\",\n data,\n hasOverride: !!props[\"data-tracking-id\"],\n });\n\n const buttonClassNames = cx(\n className,\n styles[\"button\"],\n styles[\"button-compound\"],\n {\n [styles[\"shape-pill\"]]: shape === \"pill\",\n [styles[\"shape-circular\"]]: shape === \"circular\",\n [styles[\"shape-rounded\"]]: shape === \"rounded\",\n },\n );\n\n const styleCombined = {\n ...style,\n ...layoutStyles,\n };\n\n return (\n <button\n data-tracking-id={trackingId}\n className={buttonClassNames}\n type={type}\n disabled={disabled}\n data-anv=\"button-compound\"\n ref={ref}\n style={styleCombined}\n {...rest}\n >\n {children}\n </button>\n );\n },\n);\n\nButtonCompound.displayName = \"ButtonCompound\";\n"],"names":[],"mappings":";;;;;;;;AA6CO,MAAM,cAAA,GAAiB,UAAA;AAAA,EAC5B,CAAC,OAA4B,GAAA,KAAgC;AAC3D,IAAA,MAAM,EAAE,YAAA,EAAc,cAAA,EAAe,GAAI,mBAAmB,KAAK,CAAA;AACjE,IAAA,MAAM;AAAA,MACJ,SAAA;AAAA,MACA,KAAA,GAAQ,SAAA;AAAA,MACR,IAAA;AAAA,MACA,QAAA;AAAA,MACA,QAAA;AAAA,MACA,KAAA;AAAA,MACA,GAAG;AAAA,KACL,GAAI,cAAA;AAEJ,IAAA,MAAM,IAAA,GAAO;AAAA,MACX,QAAA,EAAU,gBAAA,CAAiB,KAAA,CAAM,QAAQ,CAAA;AAAA,MACzC,KAAA;AAAA,MACA;AAAA,KACF;AAEA,IAAA,MAAM,aAAa,aAAA,CAAc;AAAA,MAC/B,IAAA,EAAM,gBAAA;AAAA,MACN,IAAA;AAAA,MACA,WAAA,EAAa,CAAC,CAAC,KAAA,CAAM,kBAAkB;AAAA,KACxC,CAAA;AAED,IAAA,MAAM,gBAAA,GAAmB,EAAA;AAAA,MACvB,SAAA;AAAA,MACA,OAAO,QAAQ,CAAA;AAAA,MACf,OAAO,iBAAiB,CAAA;AAAA,MACxB;AAAA,QACE,CAAC,MAAA,CAAO,YAAY,CAAC,GAAG,KAAA,KAAU,MAAA;AAAA,QAClC,CAAC,MAAA,CAAO,gBAAgB,CAAC,GAAG,KAAA,KAAU,UAAA;AAAA,QACtC,CAAC,MAAA,CAAO,eAAe,CAAC,GAAG,KAAA,KAAU;AAAA;AACvC,KACF;AAEA,IAAA,MAAM,aAAA,GAAgB;AAAA,MACpB,GAAG,KAAA;AAAA,MACH,GAAG;AAAA,KACL;AAEA,IAAA,uBACE,GAAA;AAAA,MAAC,QAAA;AAAA,MAAA;AAAA,QACC,kBAAA,EAAkB,UAAA;AAAA,QAClB,SAAA,EAAW,gBAAA;AAAA,QACX,IAAA;AAAA,QACA,QAAA;AAAA,QACA,UAAA,EAAS,iBAAA;AAAA,QACT,GAAA;AAAA,QACA,KAAA,EAAO,aAAA;AAAA,QACN,GAAG,IAAA;AAAA,QAEH;AAAA;AAAA,KACH;AAAA,EAEJ;AACF;AAEA,cAAA,CAAe,WAAA,GAAc,gBAAA;;;;"}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"ButtonLink-BJKTJER8.js","sources":["../src/components/ButtonLink/ButtonLink.tsx"],"sourcesContent":["import {\n ComponentPropsWithoutRef,\n KeyboardEvent,\n MouseEvent,\n Ref,\n forwardRef,\n} from \"react\";\nimport { useTrackingId } from \"../../hooks\";\nimport {\n DataTrackingId,\n ButtonAppearance,\n LayoutUtilProps,\n Size,\n} from \"../../types\";\nimport Icon, { IconProps } from \"../Icon\";\nimport { childrenToString } from \"../../internal/functions\";\nimport { useLayoutPropsUtil } from \"../../internal/hooks\";\nimport Spinner from \"../Spinner\";\n\nimport cx from \"classnames\";\nimport styles from \"../Button/Button.module.scss\";\n\n/**\n * Props for the ButtonLink component\n * @extends LayoutUtilProps\n * @extends ComponentPropsWithoutRef<\"a\">\n */\nexport type ButtonLinkProps = LayoutUtilProps &\n ComponentPropsWithoutRef<\"a\"> & {\n /**\n * The disabled state of the button link.\n * @default false\n */\n disabled?: boolean;\n\n /**\n * The visual variant of the button link.\n * @default secondary\n */\n appearance?: ButtonAppearance;\n\n /**\n * The size of the button link.\n * @default medium\n */\n size?: Extract<Size, \"xsmall\" | \"small\" | \"medium\" | \"large\">;\n\n /**\n * The icons of the button link.\n */\n icon?:\n | IconProps[\"svg\"]\n | {\n after: IconProps[\"svg\"];\n }\n | {\n before: IconProps[\"svg\"];\n };\n\n /**\n * The loading state of the button link.\n * If true, it will show infinite state of the loading.\n * @default false\n */\n loading?: boolean;\n } &\n /**\n * Data tracking id\n */\n DataTrackingId;\n\n/**\n * ButtonLink component for creating clickable links that look like buttons.\n *\n * Features:\n * - Multiple visual appearances (primary, secondary, ghost, danger variants)\n * - Four size options (xsmall, small, medium, large)\n * - Loading state with spinner animation\n * - Icon support (before, after, or icon-only)\n * - Full accessibility support with proper ARIA attributes\n * - Supports layout utilities for positioning and spacing\n * - Keyboard navigation support (Space and Enter keys)\n * - Automatic disabled state when loading\n * - Prevents navigation when disabled or loading\n * - Flexible content with text and/or icons\n * - Automatic tracking ID generation for analytics\n *\n * @example\n * <ButtonLink href=\"/dashboard\" appearance=\"primary\" size=\"medium\">\n * Go to Dashboard\n * </ButtonLink>\n */\nexport const ButtonLink = forwardRef(\n (props: ButtonLinkProps, ref: Ref<HTMLAnchorElement>) => {\n const { layoutStyles, componentProps } = useLayoutPropsUtil(props);\n\n const {\n children,\n className,\n appearance = \"secondary\",\n size = \"medium\",\n icon,\n loading = false,\n disabled,\n onClick,\n onKeyUp,\n onKeyDown,\n style,\n href,\n type,\n ...rest\n } = componentProps;\n\n const data = {\n children: childrenToString(props.children),\n appearance,\n href,\n icon,\n size,\n type,\n };\n\n const iconBefore = (icon: ButtonLinkProps[\"icon\"]) => {\n if (icon && typeof icon === \"object\" && \"before\" in icon) {\n return (\n <Icon\n aria-hidden\n className={styles[\"icon\"]}\n inherit\n svg={icon.before}\n />\n );\n }\n if (icon && typeof icon !== \"object\") {\n return (\n <Icon aria-hidden className={styles[\"icon\"]} inherit svg={icon} />\n );\n }\n return;\n };\n\n const handleOnClick = (e: MouseEvent<HTMLAnchorElement>) => {\n if (disabled || loading) {\n e.preventDefault();\n return;\n }\n onClick?.(e);\n };\n\n const onKeyDownHandler = (e: KeyboardEvent<HTMLAnchorElement>) => {\n if (e.code === \"Space\") {\n e.preventDefault();\n onKeyDown?.(e);\n return;\n }\n\n onKeyDown?.(e);\n };\n\n const onKeyUpHandler = (e: KeyboardEvent<HTMLAnchorElement>) => {\n if (e.code === \"Space\" || e.code === \"Enter\") {\n e.preventDefault();\n if (onClick) {\n e.currentTarget.click();\n }\n }\n\n onKeyUp?.(e);\n };\n\n const trackingId = useTrackingId({\n name: \"ButtonLink\",\n data,\n hasOverride: !!props[\"data-tracking-id\"],\n });\n\n const buttonClassNames = cx(className, styles[\"button\"], {\n [styles[\"appearance-primary\"]]: appearance === \"primary\",\n [styles[\"appearance-secondary\"]]: appearance === \"secondary\",\n [styles[\"appearance-ghost\"]]: appearance === \"ghost\",\n [styles[\"danger-secondary\"]]: appearance === \"danger-secondary\",\n [styles[\"danger-primary\"]]: appearance === \"danger\",\n [styles[\"size-xsmall\"]]: size === \"xsmall\",\n [styles[\"size-small\"]]: size === \"small\",\n [styles[\"size-medium\"]]: size === \"medium\",\n [styles[\"size-large\"]]: size === \"large\",\n [styles[\"type-icon\"]]: !children,\n [styles[\"loading\"]]: loading,\n });\n\n const styleCombined = {\n ...style,\n ...layoutStyles,\n };\n\n return (\n <a\n data-tracking-id={trackingId}\n className={buttonClassNames}\n aria-disabled={disabled || loading}\n aria-busy={loading}\n data-anv=\"button-link\"\n tabIndex={disabled || loading ? -1 : 0}\n onClick={handleOnClick}\n onKeyDown={onKeyDownHandler}\n onKeyUp={onKeyUpHandler}\n style={styleCombined}\n ref={ref}\n href={href}\n {...rest}\n >\n {loading ? (\n <Spinner inherit size=\"small\" className={styles[\"loading-spinner\"]} />\n ) : icon ? (\n iconBefore(icon)\n ) : null}\n {children}\n {typeof icon === \"object\" && \"after\" in icon ? (\n <Icon\n className={styles[\"icon\"]}\n inherit\n aria-hidden\n svg={icon.after}\n />\n ) : null}\n </a>\n );\n },\n);\n\nButtonLink.displayName = \"ButtonLink\";\n"],"names":["icon"],"mappings":"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"}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"ButtonToggle-DaFQ3DBG.js","sources":["../src/components/ButtonToggle/ButtonToggle.tsx"],"sourcesContent":["import {\n forwardRef,\n KeyboardEvent,\n MouseEvent,\n Ref,\n useEffect,\n useState,\n} from \"react\";\nimport { useTrackingId } from \"../../hooks\";\nimport { DataTrackingId } from \"../../types\";\nimport { Button, ButtonProps } from \"../Button/Button\";\nimport { childrenToString } from \"../../internal/functions\";\nimport { useLayoutPropsUtil } from \"../../internal/hooks\";\n\nimport cx from \"classnames\";\nimport styles from \"../Button/Button.module.scss\";\n\nexport type ButtonToggleState = {\n pressed: boolean;\n value?: string;\n};\n\n/**\n * Props for the ButtonToggle component\n * @extends Omit<ButtonProps, \"appearance\" | \"loading\">\n */\nexport type ButtonToggleProps = Omit<ButtonProps, \"appearance\" | \"loading\"> & {\n /**\n * The default pressed(selected) state of the toggle button.\n * @default false\n */\n defaultChecked?: boolean;\n\n /**\n * The controlled pressed(selected) state of the toggle button.\n */\n checked?: boolean;\n\n /**\n * The value of the toggle button.\n */\n value?: string;\n\n /**\n * Callback for when pressed(selected) changes.\n */\n onChange?: (\n e: MouseEvent<HTMLButtonElement> | KeyboardEvent<HTMLButtonElement>,\n state: ButtonToggleState,\n ) => void;\n} &\n /**\n * Data tracking id\n */\n DataTrackingId;\n\n/**\n * ButtonToggle component for creating toggleable button states.\n *\n * Features:\n * - Supports both controlled and uncontrolled state management\n * - Toggle state with pressed/selected visual feedback\n * - Full accessibility support with aria-pressed attribute\n * - Callback support for state changes\n * - Supports layout utilities for positioning and spacing\n * - Inherits all button features except appearance and loading\n * - Flexible content with text and/or icons\n * - Keyboard interaction support\n * - Value association for form-like behavior\n * - Automatic tracking ID generation for analytics\n *\n * @example\n * <ButtonToggle\n * defaultChecked={false}\n * onChange={(e, state) => console.log('Toggle state:', state.pressed)}\n * >\n * Toggle Me\n * </ButtonToggle>\n */\nexport const ButtonToggle = forwardRef(\n (props: ButtonToggleProps, ref: Ref<HTMLButtonElement>) => {\n const { layoutStyles, componentProps } = useLayoutPropsUtil(props);\n const {\n value,\n defaultChecked = false,\n checked,\n className,\n onClick,\n onChange,\n onKeyDown,\n style,\n icon,\n size,\n type,\n ...rest\n } = componentProps;\n\n const [isPressed, setIsPressed] = useState(checked ?? defaultChecked);\n\n const onClickHandler = (e: MouseEvent<HTMLButtonElement>) => {\n if (typeof checked === \"undefined\") {\n setIsPressed(!isPressed);\n onChange?.(e, { pressed: !isPressed, value });\n }\n onClick?.(e);\n };\n\n useEffect(() => {\n if (typeof checked === \"undefined\") return;\n setIsPressed(checked);\n }, [checked]);\n\n const data = {\n children: childrenToString(props.children),\n icon,\n size,\n value,\n type,\n };\n\n const trackingId = useTrackingId({\n name: \"ButtonToggle\",\n data,\n hasOverride: !!props[\"data-tracking-id\"],\n });\n\n const ButtonToggleClassNames = cx(className, styles[\"button-toggle\"]);\n\n const styleCombined = {\n ...style,\n ...layoutStyles,\n };\n return (\n <Button\n data-tracking-id={trackingId}\n data-anv=\"button-toggle\"\n aria-pressed={isPressed}\n onClick={onClickHandler}\n className={ButtonToggleClassNames}\n value={value}\n style={styleCombined}\n icon={icon}\n size={size}\n type={type}\n ref={ref}\n {...rest}\n />\n );\n },\n);\n\nButtonToggle.displayName = \"ButtonToggle\";\n"],"names":[],"mappings":";;;;;;;;;AA+EO,MAAM,YAAA,GAAe,UAAA;AAAA,EAC1B,CAAC,OAA0B,GAAA,KAAgC;AACzD,IAAA,MAAM,EAAE,YAAA,EAAc,cAAA,EAAe,GAAI,mBAAmB,KAAK,CAAA;AACjE,IAAA,MAAM;AAAA,MACJ,KAAA;AAAA,MACA,cAAA,GAAiB,KAAA;AAAA,MACjB,OAAA;AAAA,MACA,SAAA;AAAA,MACA,OAAA;AAAA,MACA,QAAA;AAAA,MACA,SAAA;AAAA,MACA,KAAA;AAAA,MACA,IAAA;AAAA,MACA,IAAA;AAAA,MACA,IAAA;AAAA,MACA,GAAG;AAAA,KACL,GAAI,cAAA;AAEJ,IAAA,MAAM,CAAC,SAAA,EAAW,YAAY,CAAA,GAAI,QAAA,CAAS,WAAW,cAAc,CAAA;AAEpE,IAAA,MAAM,cAAA,GAAiB,CAAC,CAAA,KAAqC;AAC3D,MAAA,IAAI,OAAO,YAAY,WAAA,EAAa;AAClC,QAAA,YAAA,CAAa,CAAC,SAAS,CAAA;AACvB,QAAA,QAAA,GAAW,GAAG,EAAE,OAAA,EAAS,CAAC,SAAA,EAAW,OAAO,CAAA;AAAA,MAC9C;AACA,MAAA,OAAA,GAAU,CAAC,CAAA;AAAA,IACb,CAAA;AAEA,IAAA,SAAA,CAAU,MAAM;AACd,MAAA,IAAI,OAAO,YAAY,WAAA,EAAa;AACpC,MAAA,YAAA,CAAa,OAAO,CAAA;AAAA,IACtB,CAAA,EAAG,CAAC,OAAO,CAAC,CAAA;AAEZ,IAAA,MAAM,IAAA,GAAO;AAAA,MACX,QAAA,EAAU,gBAAA,CAAiB,KAAA,CAAM,QAAQ,CAAA;AAAA,MACzC,IAAA;AAAA,MACA,IAAA;AAAA,MACA,KAAA;AAAA,MACA;AAAA,KACF;AAEA,IAAA,MAAM,aAAa,aAAA,CAAc;AAAA,MAC/B,IAAA,EAAM,cAAA;AAAA,MACN,IAAA;AAAA,MACA,WAAA,EAAa,CAAC,CAAC,KAAA,CAAM,kBAAkB;AAAA,KACxC,CAAA;AAED,IAAA,MAAM,sBAAA,GAAyB,EAAA,CAAG,SAAA,EAAW,MAAA,CAAO,eAAe,CAAC,CAAA;AAEpE,IAAA,MAAM,aAAA,GAAgB;AAAA,MACpB,GAAG,KAAA;AAAA,MACH,GAAG;AAAA,KACL;AACA,IAAA,uBACE,GAAA;AAAA,MAAC,MAAA;AAAA,MAAA;AAAA,QACC,kBAAA,EAAkB,UAAA;AAAA,QAClB,UAAA,EAAS,eAAA;AAAA,QACT,cAAA,EAAc,SAAA;AAAA,QACd,OAAA,EAAS,cAAA;AAAA,QACT,SAAA,EAAW,sBAAA;AAAA,QACX,KAAA;AAAA,QACA,KAAA,EAAO,aAAA;AAAA,QACP,IAAA;AAAA,QACA,IAAA;AAAA,QACA,IAAA;AAAA,QACA,GAAA;AAAA,QACC,GAAG;AAAA;AAAA,KACN;AAAA,EAEJ;AACF;AAEA,YAAA,CAAa,WAAA,GAAc,cAAA;;;;"}
|