@servicetitan/anvil2 2.9.2 → 3.0.1
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 +79 -2
- package/dist/{AiMark-DhgDh95y.js → AiMark-B1-M3ZgP.js} +27 -26
- package/dist/{AiMark-DhgDh95y.js.map → AiMark-B1-M3ZgP.js.map} +1 -1
- package/dist/AiMark.css +246 -256
- package/dist/AiMark.js +1 -1
- package/dist/{Alert-DffLPz0l.js → Alert-C04WIw7A.js} +20 -31
- package/dist/Alert-C04WIw7A.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.css +1 -2
- package/dist/AnvilProvider.js +1 -1
- package/dist/{Avatar-ChybzixS.js → Avatar-BmNcLUg-.js} +2 -2
- package/dist/{Avatar-ChybzixS.js.map → Avatar-BmNcLUg-.js.map} +1 -1
- package/dist/{Avatar-BckUfs1N.js → Avatar-Cw8B8xZV.js} +24 -24
- package/dist/Avatar-Cw8B8xZV.js.map +1 -0
- 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-CkPZHJGM.js → Breadcrumbs-CAJMeA1D.js} +7 -7
- package/dist/{Breadcrumbs-CkPZHJGM.js.map → Breadcrumbs-CAJMeA1D.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-CaWPwtb3.js → Calendar-BAbAagIx.js} +2 -2
- package/dist/{Calendar-CaWPwtb3.js.map → Calendar-BAbAagIx.js.map} +1 -1
- package/dist/{Calendar-0DG2so95.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-B1I1OfZU.js → Checkbox-BSAS8-DM.js} +28 -39
- package/dist/Checkbox-BSAS8-DM.js.map +1 -0
- package/dist/{Checkbox-CTR7JfWk.js → Checkbox-Ckl8EFpF.js} +2 -2
- package/dist/{Checkbox-CTR7JfWk.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-lIWu8uXb.js → Chip-Da8c7tKP.js} +31 -23
- package/dist/Chip-Da8c7tKP.js.map +1 -0
- package/dist/Chip.css +191 -206
- package/dist/Chip.js +1 -1
- package/dist/{Combobox-Dt3AnO9Z.js → Combobox-CBLaT1lU.js} +59 -72
- package/dist/Combobox-CBLaT1lU.js.map +1 -0
- package/dist/Combobox.css +158 -176
- package/dist/Combobox.js +1 -1
- package/dist/{DataTable-bMoIuYBK.js → DataTable-BDXdCF7J.js} +73 -72
- package/dist/{DataTable-bMoIuYBK.js.map → DataTable-BDXdCF7J.js.map} +1 -1
- package/dist/DataTable.css +593 -780
- package/dist/{DateFieldRange-B_D6v-F7.js → DateFieldRange-DPTC3EZz.js} +6 -6
- package/dist/{DateFieldRange-B_D6v-F7.js.map → DateFieldRange-DPTC3EZz.js.map} +1 -1
- package/dist/DateFieldRange.js +1 -1
- package/dist/{DateFieldSingle-D_Ve0E6q.js → DateFieldSingle-w1G-zd9G.js} +6 -6
- package/dist/{DateFieldSingle-D_Ve0E6q.js.map → DateFieldSingle-w1G-zd9G.js.map} +1 -1
- package/dist/DateFieldSingle.js +1 -1
- package/dist/{DateFieldYearless-Bg7OLIsT.js → DateFieldYearless-DHNVc7Sd.js} +7 -7
- package/dist/{DateFieldYearless-Bg7OLIsT.js.map → DateFieldYearless-DHNVc7Sd.js.map} +1 -1
- package/dist/DateFieldYearless.js +1 -1
- package/dist/{DateFieldYearlessRange-C40uUmLK.js → DateFieldYearlessRange-C5ktVUgG.js} +10 -10
- package/dist/{DateFieldYearlessRange-C40uUmLK.js.map → DateFieldYearlessRange-C5ktVUgG.js.map} +1 -1
- package/dist/DateFieldYearlessRange.css +11 -19
- package/dist/DateFieldYearlessRange.js +1 -1
- package/dist/{DaysOfTheWeek-2a8Ukq59.js → DaysOfTheWeek-BubWkBZ0.js} +10 -10
- package/dist/{DaysOfTheWeek-2a8Ukq59.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-zxpNOCDS.js → Dialog-ByTyuybu.js} +29 -28
- package/dist/Dialog-ByTyuybu.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-DkCcE434.js → Drawer-CwyfBcwt.js} +27 -28
- package/dist/{Drawer-DkCcE434.js.map → Drawer-CwyfBcwt.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-BKHmnbKP.js → EditCard-DqLSnkih.js} +21 -20
- package/dist/{EditCard-BKHmnbKP.js.map → EditCard-DqLSnkih.js.map} +1 -1
- package/dist/EditCard.css +71 -65
- package/dist/EditCard.js +1 -1
- package/dist/{FieldLabel-M5v4-PAV.js → FieldLabel-DZWu5dMp.js} +17 -17
- package/dist/{FieldLabel-M5v4-PAV.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/{Toolbar-Dsaufi65.js → FilterBar-BU8StPPd.js} +129 -941
- package/dist/FilterBar-BU8StPPd.js.map +1 -0
- package/dist/FilterBar.css +59 -0
- package/dist/FilterBar.d.ts +6 -0
- package/dist/FilterBar.js +2 -0
- package/dist/FilterBar.js.map +1 -0
- 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-PVCfJodz.js → InputMask-EwEJlW-t.js} +3 -3
- package/dist/{InputMask-PVCfJodz.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-DT32FdKH.js → ListView-DBO9Bl1H.js} +4 -4
- package/dist/{ListView-DT32FdKH.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-BR0HTJaM.js → Listbox-C0tjQFDF.js} +7 -7
- package/dist/{Listbox-BR0HTJaM.js.map → Listbox-C0tjQFDF.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-fV2O5J0N.js → MultiSelectFieldSync-ueey5UBM.js} +34 -33
- package/dist/MultiSelectFieldSync-ueey5UBM.js.map +1 -0
- package/dist/MultiSelectFieldSync.css +263 -257
- package/dist/MultiSelectMenu.js +1 -1
- package/dist/{MultiSelectMenuSync-BViWKlX1.js → MultiSelectMenuSync-D7hqugcQ.js} +4 -4
- package/dist/{MultiSelectMenuSync-BViWKlX1.js.map → MultiSelectMenuSync-D7hqugcQ.js.map} +1 -1
- package/dist/{NumberField-BxWTjbmF.js → NumberField-DJbdyatF.js} +15 -12
- package/dist/{NumberField-BxWTjbmF.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-DFjOwTzH.js → Page-DbK-JKyB.js} +66 -66
- package/dist/Page-DbK-JKyB.js.map +1 -0
- package/dist/Page.css +384 -404
- package/dist/Page.js +1 -1
- package/dist/{Pagination-B9pdkp_V.js → Pagination-Bg5Nsdik.js} +29 -34
- package/dist/{Pagination-B9pdkp_V.js.map → Pagination-Bg5Nsdik.js.map} +1 -1
- package/dist/Pagination.css +63 -117
- package/dist/Pagination.js +1 -1
- package/dist/{Popover-CfG1IJP6.js → Popover-CyB7yzSf.js} +8 -8
- package/dist/{Popover-CfG1IJP6.js.map → Popover-CyB7yzSf.js.map} +1 -1
- package/dist/Popover.css +84 -97
- package/dist/Popover.js +1 -1
- package/dist/{ProgressBar-CFKKuXeN.js → ProgressBar-DSrjgLTx.js} +15 -15
- package/dist/{ProgressBar-CFKKuXeN.js.map → ProgressBar-DSrjgLTx.js.map} +1 -1
- package/dist/ProgressBar.css +59 -81
- package/dist/ProgressBar.js +1 -1
- package/dist/{Radio-CeVjHOXe.js → Radio-CQaXJ72d.js} +2 -2
- package/dist/{Radio-CeVjHOXe.js.map → Radio-CQaXJ72d.js.map} +1 -1
- package/dist/{Radio-Dda5sh2r.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-BKJOW-vI.js} +11 -20
- package/dist/SearchField-BKJOW-vI.js.map +1 -0
- package/dist/SearchField-BplvDpBG.js +13 -0
- package/dist/SearchField-BplvDpBG.js.map +1 -0
- 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-ChEvk0uS.js → SelectFieldLabel-DLT5dKbx.js} +3 -3
- package/dist/{SelectFieldLabel-ChEvk0uS.js.map → SelectFieldLabel-DLT5dKbx.js.map} +1 -1
- package/dist/{SelectFieldSync-CDIRIYv2.js → SelectFieldSync-W_-jTf7z.js} +9 -8
- package/dist/SelectFieldSync-W_-jTf7z.js.map +1 -0
- package/dist/SelectMenu.js +1 -1
- package/dist/{SelectMenuSync-DkQrikHz.js → SelectMenuSync-QcjbQtCO.js} +4 -4
- package/dist/{SelectMenuSync-DkQrikHz.js.map → SelectMenuSync-QcjbQtCO.js.map} +1 -1
- package/dist/{SelectOptions-BN1tCi7P.js → SelectOptions-BsX0f22q.js} +2 -2
- package/dist/{SelectOptions-BN1tCi7P.js.map → SelectOptions-BsX0f22q.js.map} +1 -1
- package/dist/{SelectTrigger-LZUtpAFW.js → SelectTrigger-BaDvF9JD.js} +5 -5
- package/dist/{SelectTrigger-LZUtpAFW.js.map → SelectTrigger-BaDvF9JD.js.map} +1 -1
- package/dist/SelectTrigger.js +1 -1
- package/dist/{SelectTriggerBase-qeFownmF.js → SelectTriggerBase-kMRqbXwu.js} +8 -7
- package/dist/{SelectTriggerBase-qeFownmF.js.map → SelectTriggerBase-kMRqbXwu.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-3u7oAQQV.js → Switch-DeBu4Ucg.js} +17 -13
- package/dist/{Switch-3u7oAQQV.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-DQ78JchQ.js → Text-BH8gglCL.js} +15 -38
- package/dist/Text-BH8gglCL.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-DHk1k3cf.js → TextField-CRDTnuUN.js} +7 -7
- package/dist/{TextField-DHk1k3cf.js.map → TextField-CRDTnuUN.js.map} +1 -1
- package/dist/{TextField-Bu5kAe9_.js → TextField-YlMkDHp-.js} +2 -2
- package/dist/{TextField-Bu5kAe9_.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-CYv02rxW.js → Textarea-CxXmr_Gx.js} +16 -13
- package/dist/{Textarea-CYv02rxW.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 -517
- package/dist/ThemeProvider.js +1 -1
- package/dist/{TimeField-BYtP64Qx.js → TimeField-Cz4tMYb3.js} +7 -7
- package/dist/{TimeField-BYtP64Qx.js.map → TimeField-Cz4tMYb3.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-BRjGoIQu.js → Toaster-BV8RjmIN.js} +35 -34
- package/dist/Toaster-BV8RjmIN.js.map +1 -0
- package/dist/{Toaster-DO83u5o3.js → Toaster-DYGDohJT.js} +2 -2
- package/dist/{Toaster-DO83u5o3.js.map → Toaster-DYGDohJT.js.map} +1 -1
- package/dist/Toaster.css +210 -242
- package/dist/Toolbar-Dzj2KMEy.js +588 -0
- package/dist/Toolbar-Dzj2KMEy.js.map +1 -0
- package/dist/Toolbar.css +29 -204
- package/dist/Toolbar.js +2 -1
- package/dist/Toolbar.js.map +1 -1
- package/dist/ToolbarButtonToggle--2Ka05N8.js +284 -0
- package/dist/ToolbarButtonToggle--2Ka05N8.js.map +1 -0
- package/dist/ToolbarButtonToggle.css +41 -0
- 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-CChqr1gR.js → YearlessDateInputWithPicker-DyytWt0x.js} +14 -16
- package/dist/{YearlessDateInputWithPicker-CChqr1gR.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/assets/icons/st/unsorted.svg +1 -1
- package/dist/beta/components/FilterBar/FilterBar.d.ts +87 -0
- package/dist/beta/components/{Toolbar/Filters → FilterBar}/FilterToggleButton.d.ts +1 -1
- package/dist/beta/components/FilterBar/index.d.ts +3 -0
- package/dist/beta/components/{Toolbar/Filters → FilterBar}/internal/FilterGroupContext.d.ts +5 -5
- package/dist/beta/components/{Toolbar/Filters → FilterBar}/internal/types.d.ts +2 -2
- package/dist/beta/components/{Toolbar/Filters → FilterBar}/internal/utils/test.d.ts +1 -0
- package/dist/beta/components/Toolbar/Toolbar.d.ts +0 -54
- package/dist/beta/components/Toolbar/index.d.ts +0 -1
- package/dist/beta/components/index.d.ts +1 -0
- package/dist/beta.js +12 -10
- package/dist/beta.js.map +1 -1
- 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-V3M_UxQ8.js → stripInlineMarkdown-BWbMy7r_.js} +2 -2
- package/dist/{stripInlineMarkdown-V3M_UxQ8.js.map → stripInlineMarkdown-BWbMy7r_.js.map} +1 -1
- package/dist/{syncFilterUtils-DtOBvzdr.js → syncFilterUtils-nJS_tCsu.js} +50 -50
- package/dist/syncFilterUtils-nJS_tCsu.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 +9075 -828
- 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-CK9KzXvI.js → useDrilldown-DwzT0Fse.js} +8 -8
- package/dist/{useDrilldown-CK9KzXvI.js.map → useDrilldown-DwzT0Fse.js.map} +1 -1
- package/dist/{useInitialFocus-BIvXK1Rp.js → useInitialFocus-BUxEDMEG.js} +2 -2
- package/dist/{useInitialFocus-BIvXK1Rp.js.map → useInitialFocus-BUxEDMEG.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/{usePopoverTransitionStates-B1opfxxn.js → usePopoverTransitionStates-CDXCdyKa.js} +2 -1
- package/dist/{usePopoverTransitionStates-B1opfxxn.js.map → usePopoverTransitionStates-CDXCdyKa.js.map} +1 -1
- package/dist/{useToggleSelection-BMXohj4f.js → useToggleSelection-CAwGOeXk.js} +2 -2
- package/dist/{useToggleSelection-BMXohj4f.js.map → useToggleSelection-CAwGOeXk.js.map} +1 -1
- package/package.json +11 -11
- package/dist/Alert-DffLPz0l.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-0DG2so95.js.map +0 -1
- package/dist/Checkbox-B1I1OfZU.js.map +0 -1
- package/dist/Checkbox.module-EkRZO48Y.js +0 -28
- package/dist/Checkbox.module-EkRZO48Y.js.map +0 -1
- package/dist/Chip-lIWu8uXb.js.map +0 -1
- package/dist/Combobox-Dt3AnO9Z.js.map +0 -1
- package/dist/Dialog-zxpNOCDS.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-fV2O5J0N.js.map +0 -1
- package/dist/Page-DFjOwTzH.js.map +0 -1
- package/dist/Radio-Dda5sh2r.js.map +0 -1
- package/dist/SearchField-im7AHGYo.js.map +0 -1
- package/dist/SegmentedControl-B9NWUF7s.js.map +0 -1
- package/dist/SelectCard-COJn0wT6.js +0 -352
- package/dist/SelectCard-COJn0wT6.js.map +0 -1
- package/dist/SelectFieldSync-CDIRIYv2.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-DQ78JchQ.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-BRjGoIQu.js.map +0 -1
- package/dist/Toolbar-Dsaufi65.js.map +0 -1
- package/dist/beta/components/Toolbar/Filters/FilterGroup.d.ts +0 -25
- 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-DtOBvzdr.js.map +0 -1
- package/dist/token/core/raw.js +0 -234
- /package/dist/beta/components/{Toolbar/Filters → FilterBar}/FilterButton.d.ts +0 -0
- /package/dist/beta/components/{Toolbar/Filters → FilterBar}/FilterDateRange.d.ts +0 -0
- /package/dist/beta/components/{Toolbar/Filters → FilterBar}/FilterDateSingle.d.ts +0 -0
- /package/dist/beta/components/{Toolbar/Filters → FilterBar}/FilterDrawer.d.ts +0 -0
- /package/dist/beta/components/{Toolbar/Filters → FilterBar}/FilterItemWrapper.d.ts +0 -0
- /package/dist/beta/components/{Toolbar/Filters → FilterBar}/FilterSelect.d.ts +0 -0
- /package/dist/beta/components/{Toolbar/Filters → FilterBar}/internal/utils/filter-state.d.ts +0 -0
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"Toolbar-Dzj2KMEy.js","sources":["../src/beta/components/Toolbar/ToolbarButton.tsx","../src/beta/components/Toolbar/ToolbarButtonLink.tsx","../src/beta/components/Toolbar/ToolbarSelect.tsx","../src/beta/components/Toolbar/internal/ToolbarOverflowMenu.tsx","../src/beta/components/Toolbar/ToolbarControlGroup.tsx","../src/beta/components/Toolbar/ToolbarSearchField.tsx","../src/beta/components/Toolbar/Toolbar.tsx"],"sourcesContent":["import { forwardRef } from \"react\";\nimport Button, { ButtonProps } from \"../../../components/Button\";\nimport { ToolbarItemAppearance, WithAriaLabelEnforcement } from \"./types\";\nimport { DataTrackingId } from \"../../../types\";\nimport { useOverFlowItemContext } from \"./internal/ToolbarItemOverflowContext\";\nimport Tooltip from \"../../../components/Tooltip\";\nimport { ToolbarItemWrapper } from \"./internal/ToolbarItemWrapper\";\nimport { useTrackingId } from \"../../../hooks\";\nimport { useToolbarSize } from \"./internal/ToolbarContext\";\n\nimport cx from \"classnames\";\nimport styles from \"./Toolbar.module.scss\";\n\n/**\n * Base props for the ToolbarButton component\n * @extends Omit<ButtonProps, \"appearance\" | \"aria-label\" | \"children\">\n */\ntype ToolbarButtonBaseProps = Omit<\n ButtonProps,\n \"appearance\" | \"aria-label\" | \"children\"\n> & {\n /**\n * Visual appearance of the button\n * @default ghost\n */\n appearance?: ToolbarItemAppearance;\n};\n\n/**\n * Props for the ToolbarButton component\n * @extends WithAriaLabelEnforcement<ToolbarButtonBaseProps>\n */\nexport type ToolbarButtonProps =\n WithAriaLabelEnforcement<ToolbarButtonBaseProps> & DataTrackingId;\n\n/**\n * ToolbarButton component for standard clickable actions within a toolbar.\n *\n * Features:\n * - Designed specifically for toolbar integration\n * - Consistent styling with other toolbar items\n * - Automatic tooltip for icon-only buttons\n * - Overflow menu support\n * - Accessibility enforcement for aria-labels\n * - Ghost and primary appearance options\n *\n * @example\n * <ToolbarButton icon={BoldIcon} aria-label=\"Bold text\" />\n *\n * @example\n * <ToolbarButton appearance=\"primary\">\n * Save\n * </ToolbarButton>\n */\nexport const ToolbarButton = forwardRef<HTMLButtonElement, ToolbarButtonProps>(\n (props, _ref) => {\n const { appearance = \"ghost\", className, children, ...rest } = props;\n\n // Checks if this component is rendered inside the overflow menu and fallbacks when the context is unavailable\n const { isInOverflowMenu = false } = useOverFlowItemContext?.() || {};\n const size = useToolbarSize();\n\n const trackingId = useTrackingId({\n name: \"ToolbarButton\",\n data: {\n disabled: props.disabled,\n \"aria-label\": props[\"aria-label\"],\n children: props.children,\n },\n hasOverride: !!props[\"data-tracking-id\"],\n });\n\n const buttonClassNames = cx(className, styles[\"toolbar-button-item\"]);\n\n const item = children ? (\n <Button\n data-tracking-id={trackingId}\n appearance={appearance}\n size={size}\n data-anv=\"toolbar-button\"\n className={buttonClassNames}\n {...rest}\n >\n {children}\n </Button>\n ) : (\n <Tooltip>\n <Tooltip.Trigger>\n <Button\n data-tracking-id={trackingId}\n appearance={appearance}\n size={size}\n data-anv=\"toolbar-button\"\n className={buttonClassNames}\n {...rest}\n />\n </Tooltip.Trigger>\n <Tooltip.Content>{rest[\"aria-label\"]}</Tooltip.Content>\n </Tooltip>\n );\n\n if (isInOverflowMenu) {\n return item;\n }\n\n return (\n <ToolbarItemWrapper item={{ itemProps: props, itemType: \"button\" }}>\n {item}\n </ToolbarItemWrapper>\n );\n },\n);\n\nToolbarButton.displayName = \"ToolbarButton\";\n","import { forwardRef } from \"react\";\nimport ButtonLink, { ButtonLinkProps } from \"../../../components/ButtonLink\";\nimport { ToolbarItemAppearance, WithAriaLabelEnforcement } from \"./types\";\nimport { DataTrackingId } from \"../../../types\";\nimport { useOverFlowItemContext } from \"./internal/ToolbarItemOverflowContext\";\nimport Tooltip from \"../../../components/Tooltip\";\nimport { ToolbarItemWrapper } from \"./internal/ToolbarItemWrapper\";\nimport { useTrackingId } from \"../../../hooks\";\nimport { useToolbarSize } from \"./internal/ToolbarContext\";\n\nimport cx from \"classnames\";\nimport styles from \"./Toolbar.module.scss\";\n\n/**\n * Base props for the ToolbarButtonLink component\n * @extends Omit<ButtonLinkProps, \"appearance\" | \"aria-label\" | \"children\">\n */\ntype ToolbarButtonLinkBaseProps = Omit<\n ButtonLinkProps,\n \"appearance\" | \"aria-label\" | \"children\"\n> & {\n /**\n * Visual appearance of the button link\n * @default ghost\n */\n appearance?: ToolbarItemAppearance;\n};\n\n/**\n * Props for the ToolbarButtonLink component\n * @extends WithAriaLabelEnforcement<ToolbarButtonLinkBaseProps>\n */\nexport type ToolbarButtonLinkProps =\n WithAriaLabelEnforcement<ToolbarButtonLinkBaseProps> & DataTrackingId;\n\n/**\n * ToolbarButtonLink component for link actions within a toolbar.\n *\n * Features:\n * - Link functionality with href support\n * - Designed specifically for toolbar integration\n * - Consistent styling with other toolbar items\n * - Automatic tooltip for icon-only links\n * - Overflow menu support\n * - Accessibility enforcement for aria-labels\n * - Ghost and primary appearance options\n * - Proper anchor element semantics\n *\n * @example\n * <ToolbarButtonLink href=\"/help\">\n * Help\n * </ToolbarButtonLink>\n *\n * @example\n * <ToolbarButtonLink icon={ExternalLinkIcon} href=\"/docs\" aria-label=\"Documentation\" />\n */\nexport const ToolbarButtonLink = forwardRef<\n HTMLAnchorElement,\n ToolbarButtonLinkProps\n>((props, _ref) => {\n const { appearance = \"ghost\", className, children, ...rest } = props;\n\n // Checks if this component is rendered inside the overflow menu and fallbacks when the context is unavailable\n const { isInOverflowMenu = false } = useOverFlowItemContext?.() || {};\n const size = useToolbarSize();\n\n const trackingId = useTrackingId({\n name: \"ToolbarButtonLink\",\n data: {\n href: props.href,\n disabled: props.disabled,\n \"aria-label\": props[\"aria-label\"],\n children: props.children,\n target: props.target,\n },\n hasOverride: !!props[\"data-tracking-id\"],\n });\n\n const buttonLinkClassNames = cx(className, styles[\"toolbar-button-item\"]);\n\n const item = children ? (\n <ButtonLink\n data-tracking-id={trackingId}\n appearance={appearance}\n size={size}\n data-anv=\"toolbar-button-link\"\n className={buttonLinkClassNames}\n {...rest}\n >\n {children}\n </ButtonLink>\n ) : (\n <Tooltip>\n <Tooltip.Trigger>\n <ButtonLink\n data-tracking-id={trackingId}\n appearance={appearance}\n size={size}\n data-anv=\"toolbar-button-link\"\n className={buttonLinkClassNames}\n {...rest}\n />\n </Tooltip.Trigger>\n <Tooltip.Content>{rest[\"aria-label\"]}</Tooltip.Content>\n </Tooltip>\n );\n\n if (isInOverflowMenu) {\n return item;\n }\n\n return (\n <ToolbarItemWrapper item={{ itemProps: props, itemType: \"buttonLink\" }}>\n {item}\n </ToolbarItemWrapper>\n );\n});\n\nToolbarButtonLink.displayName = \"ToolbarButtonLink\";\n","import { forwardRef, useEffect, useId, useState } from \"react\";\nimport ArrowDropDown from \"@servicetitan/hammer-icon/mdi/round/arrow_drop_down.svg\";\nimport Listbox, { ListboxItemType } from \"../../../components/Listbox\";\nimport Popover from \"../../../internal/components/Popover\";\nimport { ToolbarItemAppearance } from \"./types\";\nimport { DataTrackingId } from \"../../../types\";\nimport { useOverFlowItemContext } from \"./internal/ToolbarItemOverflowContext\";\nimport { ToolbarItemWrapper } from \"./internal/ToolbarItemWrapper\";\nimport { useTrackingId } from \"../../../hooks\";\nimport { useToolbarSize } from \"./internal/ToolbarContext\";\n\nimport cx from \"classnames\";\nimport styles from \"./Toolbar.module.scss\";\n\n/**\n * Type for items in the ToolbarSelect dropdown\n * @extends ItemType<T & { id: string }>\n */\ntype ToolbarSelectItem<T = Record<string, unknown>> = ListboxItemType<\n T & {\n id: string;\n }\n>;\n\n/**\n * Props for the ToolbarSelect component\n * @extends Omit<React.ComponentPropsWithoutRef<typeof Popover.Button>, \"appearance\" | \"onChange\">\n */\nexport type ToolbarSelectProps<T = Record<string, unknown>> = Omit<\n React.ComponentPropsWithoutRef<typeof Popover.Button>,\n \"appearance\" | \"onChange\"\n> & {\n /**\n * Visual appearance of the select button\n * @default ghost\n */\n appearance?: ToolbarItemAppearance;\n /**\n * Callback function when selection changes\n */\n onChange?: (optionId: string) => void;\n /**\n * Currently selected item ID (controlled mode)\n */\n selected?: string;\n /**\n * Array of selectable items\n */\n items: ToolbarSelectItem<T>[];\n /**\n * Accessible label for the select dropdown dialog (e.g. \"Status options\").\n */\n accessibleLabel: string;\n} & DataTrackingId;\n\n/**\n * ToolbarSelect component provides a dropdown selector within a toolbar.\n *\n * Features:\n * - Dropdown menu with selectable options\n * - Controlled and uncontrolled usage patterns\n * - Automatic overflow menu integration\n * - Accessibility support with proper ARIA labels\n * - Ghost and primary appearance options\n * - Dropdown arrow icon indicator\n * - Listbox integration for keyboard navigation\n *\n * @example\n * <ToolbarSelect\n * items={fontOptions}\n * selected=\"arial\"\n * accessibleLabel=\"Font family\"\n * onChange={(id) => setFont(id)}\n * />\n *\n * @example\n * <ToolbarSelect\n * appearance=\"primary\"\n * items={colorOptions}\n * accessibleLabel=\"Text color\"\n * />\n */\nexport const ToolbarSelect = forwardRef<HTMLButtonElement, ToolbarSelectProps>(\n (props, _ref) => {\n const {\n appearance = \"ghost\",\n onChange,\n selected: selectedItemId,\n accessibleLabel,\n className,\n items,\n ...rest\n } = props;\n const selectId = useId();\n\n // Popover open/close state - like TimeField does\n const [isPopoverOpen, setIsPopoverOpen] = useState(false);\n\n // Internal state for uncontrolled mode\n const defaultId = items.length > 0 ? items[0].id : \"\";\n const [internalSelectedId, setInternalSelectedId] = useState(defaultId);\n\n // Use controlled value if provided, otherwise use internal state\n const selectedId = selectedItemId ?? internalSelectedId;\n\n // Find the selected item by ID (or default to first item using defaultId)\n const selectedItem =\n items.find((item) => item.id === selectedId) ||\n items.find((item) => item.id === defaultId);\n\n // Update internal selection when items change and current selection is no longer valid\n useEffect(() => {\n if (\n !selectedItemId &&\n items.length > 0 &&\n !items.some((item) => item.id === internalSelectedId)\n ) {\n setInternalSelectedId(items[0].id);\n }\n }, [items, selectedItemId, internalSelectedId]);\n\n // Handle selection change\n const handleSelectionChange = (\n selected: ToolbarSelectItem<Record<string, unknown>> | undefined,\n ) => {\n if (selected?.id) {\n if (selectedItemId === undefined) {\n setInternalSelectedId(selected.id);\n }\n\n onChange?.(selected.id);\n\n // Close the popover after selection\n setIsPopoverOpen(false);\n }\n };\n\n // Checks if this component is rendered inside the overflow menu and fallbacks when the context is unavailable\n const { isInOverflowMenu = false } = useOverFlowItemContext?.() || {};\n const toolbarSize = useToolbarSize();\n\n const trackingId = useTrackingId({\n name: \"ToolbarSelect\",\n data: {\n selected: props.selected,\n disabled: props.disabled,\n \"aria-label\": props[\"aria-label\"],\n items: props.items,\n },\n hasOverride: !!props[\"data-tracking-id\"],\n });\n\n const buttonClassNames = cx(className, styles[\"toolbar-button-item\"]);\n\n const item = (\n <Popover\n noPadding\n open={isPopoverOpen}\n onClickOutside={() => {\n setIsPopoverOpen(false);\n }}\n onClose={() => {\n setIsPopoverOpen(false);\n }}\n >\n <Popover.Button\n data-tracking-id={trackingId}\n appearance={appearance}\n size={toolbarSize}\n icon={{ after: ArrowDropDown }}\n className={buttonClassNames}\n id={selectId}\n data-anv=\"toolbar-select\"\n onClick={() => {\n setIsPopoverOpen(!isPopoverOpen);\n }}\n {...rest}\n >\n {selectedItem?.label}\n </Popover.Button>\n <Popover.Content\n className={styles[\"toolbar-select-content\"]}\n aria-label={accessibleLabel}\n >\n <Listbox\n selected={selectedItem}\n onSelectionChange={handleSelectionChange}\n items={items}\n aria-labelledby={selectId}\n disableAutoSelectOnFocus={true}\n >\n {({ items }) =>\n items.map((item) => (\n <Listbox.Option key={item.label} item={item}>\n {item.label}\n </Listbox.Option>\n ))\n }\n </Listbox>\n </Popover.Content>\n </Popover>\n );\n\n if (isInOverflowMenu) {\n return item;\n }\n\n return (\n <ToolbarItemWrapper item={{ itemProps: props, itemType: \"select\" }}>\n {item}\n </ToolbarItemWrapper>\n );\n },\n);\n\nToolbarSelect.displayName = \"ToolbarSelect\";\n","import { ReactElement, useContext, useId, useMemo } from \"react\";\nimport MoreHoriz from \"@servicetitan/hammer-icon/mdi/round/more_horiz.svg\";\nimport MoreVert from \"@servicetitan/hammer-icon/mdi/round//more_vert.svg\";\nimport { ToolbarItemProps } from \"../types\";\nimport { ToolbarButton, ToolbarButtonProps } from \"../ToolbarButton\";\nimport {\n ToolbarButtonToggle,\n ToolbarButtonToggleProps,\n} from \"../ToolbarButtonToggle\";\nimport {\n ToolbarButtonLink,\n ToolbarButtonLinkProps,\n} from \"../ToolbarButtonLink\";\nimport { ToolbarSelect, ToolbarSelectProps } from \"../ToolbarSelect\";\nimport { ToolbarContext, useToolbarSize } from \"./ToolbarContext\";\nimport Popover from \"../../../../internal/components/Popover\";\nimport Icon from \"../../../../components/Icon\";\nimport { OverflowItemContext } from \"./ToolbarItemOverflowContext\";\nimport { handleMenuKeyboardNavigation } from \"./utils/accessibility\";\n\nimport cx from \"classnames\";\nimport styles from \"../Toolbar.module.scss\";\n\n/**\n * Component to render appropriate toolbar items in the overflow menu\n * @param itemType - Type of toolbar item to render\n * @param itemProps - Props for the toolbar item\n * @returns ReactElement - The rendered toolbar item\n */\nconst OverflowItem = ({ itemType, itemProps }: ToolbarItemProps) => {\n // Based on the item type, use the corresponding toolbar component\n switch (itemType) {\n case \"button\":\n return <ToolbarButton {...(itemProps as ToolbarButtonProps)} />;\n\n case \"buttonToggle\":\n return (\n <ToolbarButtonToggle {...(itemProps as ToolbarButtonToggleProps)} />\n );\n\n case \"buttonLink\":\n return <ToolbarButtonLink {...(itemProps as ToolbarButtonLinkProps)} />;\n\n case \"select\":\n return <ToolbarSelect {...(itemProps as ToolbarSelectProps)} />;\n\n default:\n return null;\n }\n};\n\n/**\n * Props for the ToolbarOverflowMenu component\n */\nexport type ToolbarOverflowMenuProps = {\n /**\n * Additional items to display in the overflow menu\n */\n additionalItems?: ReactElement[];\n /**\n * Direction of the parent toolbar\n * @default horizontal\n */\n direction?: \"vertical\" | \"horizontal\";\n};\n\n/**\n * ToolbarOverflowMenu component displays toolbar items that don't fit in the main toolbar.\n *\n * Features:\n * - Automatic rendering when items overflow in collapse mode\n * - Maintains consistent item ordering with the main toolbar\n * - Preserves item state between toolbar and overflow menu\n * - Provides accessible navigation with keyboard and screen readers\n * - Adapts to both horizontal and vertical toolbar layouts\n * - Context-aware rendering for child components\n * - Proper ARIA menu semantics\n * - Keyboard navigation support\n */\nexport const ToolbarOverflowMenu = ({\n additionalItems,\n direction,\n}: ToolbarOverflowMenuProps) => {\n // Gives us the array of items that need to appear\n const { overflowItems, orderedIds } = useContext(ToolbarContext);\n const menuTriggerId = useId();\n const size = useToolbarSize();\n\n // Sort overflow items to match their original order in the toolbar\n const orderedItems = useMemo(() => {\n const allElements = orderedIds?.map((id) => {\n return overflowItems.find((item) => item.id === id);\n });\n\n return allElements?.filter((item) => item !== undefined) || [];\n }, [orderedIds, overflowItems]);\n\n const popoverButtonClassNames = cx(\n styles[\"toolbar-button-item\"],\n styles[\"toolbar-overflow-trigger\"],\n );\n\n const overflowIcon = direction === \"horizontal\" ? MoreHoriz : MoreVert;\n\n return (\n <Popover noPadding>\n <Popover.Button\n size={size}\n appearance=\"ghost\"\n id={menuTriggerId}\n className={popoverButtonClassNames}\n data-anv=\"toolbar-overflow-trigger\"\n aria-label=\"Additional toolbar options\"\n >\n <Icon svg={overflowIcon} size={size === \"xsmall\" ? \"small\" : size} />\n </Popover.Button>\n <Popover.Content>\n <OverflowItemContext.Provider value={{ isInOverflowMenu: true }}>\n <ul\n role=\"menu\"\n className={styles[\"toolbar-overflow-content\"]}\n data-anv=\"toolbar-overflow-menu\"\n aria-labelledby={menuTriggerId}\n onKeyDown={handleMenuKeyboardNavigation}\n >\n {orderedItems.map((item) => {\n const { itemType, itemProps, id } = item;\n return (\n <li\n key={`${itemType}-${id}`}\n role=\"menuitem\"\n data-anv=\"toolbar-overflow-item\"\n >\n <OverflowItem\n itemType={itemType}\n itemProps={itemProps}\n id={id}\n />\n </li>\n );\n })}\n\n {additionalItems?.map((item, index) => (\n <li\n key={`additional-item-${index}`}\n role=\"menuitem\"\n data-anv=\"toolbar-overflow-item\"\n >\n {item}\n </li>\n ))}\n </ul>\n </OverflowItemContext.Provider>\n </Popover.Content>\n </Popover>\n );\n};\n","import { ComponentPropsWithoutRef, forwardRef, useContext } from \"react\";\nimport { LayoutUtilProps } from \"../../../types\";\nimport { Flex } from \"../../../components/Flex\";\nimport { ToolbarContext } from \"./internal/ToolbarContext\";\n\nimport styles from \"./ToolbarControlGroup.module.scss\";\n\n/**\n * Props for the ToolbarControlGroup component\n *\n * @extends ComponentPropsWithoutRef<'div'>\n * @extends LayoutUtilProps\n */\nexport type ToolbarControlGroupProps = ComponentPropsWithoutRef<\"div\"> &\n LayoutUtilProps & {\n /**\n * Accessible label for the control group\n */\n \"aria-label\"?: string;\n };\n\n/**\n * ToolbarControlGroup component provides a flex container for grouping related toolbar controls.\n * Can be used for filters, buttons, or other toolbar items.\n *\n * Features:\n * - Groups related toolbar controls in a flex container\n * - Supports accessibility with aria-label\n * - Handles overflow and wrapping based on toolbar context\n * - Integrates with layout utilities for spacing and alignment\n *\n * @example\n * <ToolbarControlGroup aria-label=\"Formatting controls\">\n * <Toolbar.Button icon={BoldIcon} aria-label=\"Bold\" />\n * <Toolbar.Button icon={ItalicIcon} aria-label=\"Italic\" />\n * </ToolbarControlGroup>\n */\nconst ToolbarControlGroupElement = forwardRef<\n HTMLDivElement,\n ToolbarControlGroupProps\n>((props, ref) => {\n const { children, \"aria-label\": ariaLabel, ...rest } = props;\n const { overflow } = useContext(ToolbarContext);\n\n return (\n <Flex\n ref={ref}\n alignItems=\"center\"\n gap={1}\n wrap={overflow === \"collapse\" ? \"nowrap\" : \"wrap\"}\n data-anv=\"toolbar-control-group\"\n role=\"group\"\n aria-label={ariaLabel ? ariaLabel : \"Toolbar controls\"}\n className={styles[\"toolbar-control-group\"]}\n {...rest}\n >\n {children}\n </Flex>\n );\n});\n\nToolbarControlGroupElement.displayName = \"ToolbarControlGroup\";\n\nexport const ToolbarControlGroup = ToolbarControlGroupElement;\n","import { forwardRef, Ref } from \"react\";\nimport {\n SearchFieldProps,\n SearchField,\n} from \"../../../components/SearchField/internal/SearchField\";\n\nimport { useToolbarSize } from \"./internal/ToolbarContext\";\n\nimport cx from \"classnames\";\nimport styles from \"./ToolbarSearchField.module.scss\";\n\n/**\n * Props for the ToolbarSearchField component\n *\n * @extends Omit<SearchFieldProps, \"size\">\n */\nexport type ToolbarSearchFieldProps = Omit<SearchFieldProps, \"size\">;\n\n/**\n * ToolbarSearchField component renders a search field for use in toolbars.\n *\n * Features:\n * - Renders a search field styled for toolbar usage\n * - Supports all SearchField props except size\n * - Integrates with toolbar layouts and accessibility\n *\n * @example\n * <ToolbarSearchField placeholder=\"Search...\" />\n */\nexport const ToolbarSearchField = forwardRef(\n (props: ToolbarSearchFieldProps, ref: Ref<HTMLInputElement>) => {\n const { className, ...rest } = props;\n const size = useToolbarSize();\n\n const searchFieldStyles = cx(styles[\"toolbar-search-field\"], className);\n\n return (\n <div className={styles[\"toolbar-search-field-container\"]}>\n <SearchField\n ref={ref}\n className={searchFieldStyles}\n size={size}\n data-anv=\"toolbar-search-field\"\n {...rest}\n />\n </div>\n );\n },\n);\n\nToolbarSearchField.displayName = \"ToolbarSearchField\";\n","import { ToolbarButton } from \"./ToolbarButton\";\nimport { ToolbarButtonToggle } from \"./ToolbarButtonToggle\";\nimport { ToolbarButtonLink } from \"./ToolbarButtonLink\";\nimport { ToolbarSelect } from \"./ToolbarSelect\";\nimport { ToolbarItemProps, ToolbarOverflowTypes, ToolbarSize } from \"./types\";\nimport {\n ComponentPropsWithoutRef,\n forwardRef,\n ReactElement,\n useCallback,\n useEffect,\n useMemo,\n useRef,\n useState,\n} from \"react\";\nimport { LayoutUtilProps } from \"../../../types\";\nimport { useLayoutPropsUtil } from \"../../../internal/hooks\";\nimport {\n handleToolbarKeyDown,\n updateToolbarItemsTabIndex,\n} from \"./internal/utils/accessibility\";\nimport { ToolbarContext } from \"./internal/ToolbarContext\";\nimport Flex from \"../../../components/Flex\";\nimport { useMergeRefs } from \"../../../hooks\";\nimport { ToolbarOverflowMenu } from \"./internal/ToolbarOverflowMenu\";\nimport { ToolbarControlGroup } from \"./ToolbarControlGroup\";\nimport { ToolbarSearchField } from \"./ToolbarSearchField\";\n\nimport cx from \"classnames\";\nimport styles from \"./Toolbar.module.scss\";\n\n/**\n * Props for the Toolbar component\n * @extends ComponentPropsWithoutRef<\"div\">\n * @extends LayoutUtilProps\n */\nexport type ToolbarProps = ComponentPropsWithoutRef<\"div\"> &\n LayoutUtilProps & {\n /**\n * Description of the content this toolbar is associated with, used for accessibility\n */\n associatedContent: string;\n /**\n * Orientation of the toolbar\n * @default horizontal\n */\n direction?: \"vertical\" | \"horizontal\";\n /**\n * How to handle overflow when items don't fit\n * @default wrap\n */\n overflow?: ToolbarOverflowTypes;\n /**\n * Additional items to display in the overflow menu\n */\n additionalItems?: ReactElement[];\n /**\n * Size of toolbar items\n * @default xsmall\n */\n size?: ToolbarSize;\n };\n\n/**\n * Toolbar component for grouping related interactive elements with anvil2 tracking.\n *\n * Features:\n * - Horizontal or vertical orientation\n * - Overflow handling with wrap or collapse behavior\n * - Keyboard navigation following ARIA best practices\n * - Screen reader announcements and accessibility\n * - Automatic overflow menu for collapsed items\n * - Support for buttons, toggles, selects, and links\n * - Layout utilities for positioning and spacing\n * - Context-based state management for child components\n * - Automatic tracking ID generation for analytics\n * - Integration with anvil2 tracking system\n *\n * @example\n * <Toolbar associatedContent=\"document editor\" overflow=\"collapse\">\n * <Toolbar.Button icon={BoldIcon} aria-label=\"Bold\" />\n * <Toolbar.ButtonToggle icon={ItalicIcon} aria-label=\"Italic\" />\n * <Toolbar.Select\n * items={fontOptions}\n * selected=\"arial\"\n * accessibleLabel=\"Font family\"\n * />\n * </Toolbar>\n */\nexport const Toolbar = Object.assign(\n forwardRef<HTMLDivElement, ToolbarProps>(function ToolbarInner(props, ref) {\n const { layoutStyles, componentProps } = useLayoutPropsUtil(props);\n const {\n associatedContent,\n className,\n children,\n style,\n direction = \"horizontal\",\n overflow = \"wrap\",\n onKeyDown,\n additionalItems,\n size = \"xsmall\",\n ...rest\n } = componentProps;\n\n // State for tracking items that should appear in the overflow menu\n const [overflowItems, setOverflowItems] = useState<ToolbarItemProps[]>([]);\n const toolbarItemsRef = useRef<HTMLDivElement>(null);\n const toolbarRef = useRef<HTMLDivElement>(null);\n\n // Track original order of items to maintain consistent ordering in the overflow menu\n const [orderedIds, setOrderedIds] = useState<string[]>([]);\n\n // Update ordered IDs when children change to maintain correct overflow order\n useEffect(() => {\n const newOrderedIds = Array.from(\n toolbarItemsRef.current?.querySelectorAll(\"[data-id]\") || [],\n ).map((el) => {\n return el.getAttribute(\"data-id\") as string;\n });\n\n setOrderedIds(newOrderedIds);\n }, [children]);\n\n // Add item to overflow menu\n const addItem = useCallback((item: ToolbarItemProps) => {\n setOverflowItems((prev) => [...prev, item]);\n }, []);\n\n // Remove item from overflow menu\n const removeItem = useCallback((item: ToolbarItemProps) => {\n setOverflowItems((prev) =>\n prev.filter((component) => component.id !== item.id),\n );\n }, []);\n\n // Initialize tabindex values\n useEffect(() => {\n if (toolbarRef.current) {\n // Initialize toolbar with the first item active\n updateToolbarItemsTabIndex(toolbarRef.current);\n }\n }, [children]);\n\n // Handle keyboard navigation events within the toolbar\n const handleKeyDown = useCallback(\n (event: React.KeyboardEvent<HTMLDivElement>) => {\n if (toolbarRef.current) {\n handleToolbarKeyDown(event, toolbarRef.current);\n }\n\n onKeyDown?.(event);\n },\n [onKeyDown],\n );\n\n // Determine if overflow menu should be shown\n const showOverflowMenu =\n (overflow === \"collapse\" && overflowItems.length > 0) ||\n !!additionalItems;\n\n // Context value provided to all toolbar children\n const value = useMemo(\n () => ({\n overflowItems,\n addItem,\n removeItem,\n toolbarRef,\n orderedIds,\n overflow,\n size,\n }),\n [\n overflowItems,\n addItem,\n removeItem,\n toolbarRef,\n orderedIds,\n overflow,\n size,\n ],\n );\n\n const styleCombined = {\n ...style,\n ...layoutStyles,\n };\n\n const toolbarClassNames = cx(styles[\"toolbar\"], className);\n\n const toolbarContentClassNames = cx(styles[\"toolbar-content\"], {\n [styles[`overflow-${overflow}`]]: overflow,\n });\n\n return (\n <ToolbarContext.Provider value={value}>\n <Flex\n direction={direction === \"horizontal\" ? \"row\" : \"column\"}\n wrap={overflow === \"wrap\" ? \"wrap\" : \"nowrap\"}\n alignItems=\"center\"\n className={toolbarClassNames}\n style={styleCombined}\n ref={useMergeRefs([toolbarRef, ref])}\n role=\"toolbar\"\n data-anv=\"toolbar\"\n aria-orientation={direction}\n aria-label={`Toolbar for ${associatedContent}. Use arrow keys to navigate through toolbar controls.`}\n onKeyDown={handleKeyDown}\n {...rest}\n >\n <Flex\n ref={useMergeRefs([toolbarItemsRef, ref])}\n className={toolbarContentClassNames}\n direction={direction === \"horizontal\" ? \"row\" : \"column\"}\n wrap={overflow === \"wrap\" ? \"wrap\" : \"nowrap\"}\n alignItems=\"center\"\n grow={1}\n data-anv=\"toolbar-content\"\n data-overflow={overflow}\n >\n {children}\n </Flex>\n\n {showOverflowMenu && (\n <ToolbarOverflowMenu\n direction={direction}\n additionalItems={additionalItems}\n />\n )}\n </Flex>\n </ToolbarContext.Provider>\n );\n }),\n {\n /**\n * ToolbarButton component for standard clickable actions within a toolbar with anvil2 tracking.\n *\n * Features:\n * - Designed specifically for toolbar integration\n * - Consistent styling with other toolbar items\n * - Automatic tooltip for icon-only buttons\n * - Overflow menu support\n * - Accessibility enforcement for aria-labels\n * - Ghost and primary appearance options\n * - Automatic tracking ID generation for analytics\n *\n * @example\n * <Toolbar.Button icon={BoldIcon} aria-label=\"Bold text\" />\n *\n * @example\n * <Toolbar.Button appearance=\"primary\">\n * Save\n * </Toolbar.Button>\n */\n Button: ToolbarButton,\n /**\n * ToolbarButtonToggle component for toggleable actions within a toolbar with anvil2 tracking.\n *\n * Features:\n * - Toggle state management\n * - Designed specifically for toolbar integration\n * - Consistent styling with other toolbar items\n * - Overflow menu support\n * - Accessibility enforcement for aria-labels\n * - Ghost and primary appearance options\n * - Automatic tracking ID generation for analytics\n *\n * @example\n * <Toolbar.ButtonToggle icon={BoldIcon} aria-label=\"Bold\" checked={isBold} />\n */\n ButtonToggle: ToolbarButtonToggle,\n /**\n * ToolbarButtonLink component for link actions within a toolbar with anvil2 tracking.\n *\n * Features:\n * - Link functionality with href support\n * - Designed specifically for toolbar integration\n * - Consistent styling with other toolbar items\n * - Overflow menu support\n * - Accessibility enforcement for aria-labels\n * - Ghost and primary appearance options\n * - Automatic tracking ID generation for analytics\n *\n * @example\n * <Toolbar.ButtonLink href=\"/help\">\n * Help\n * </Toolbar.ButtonLink>\n */\n ButtonLink: ToolbarButtonLink,\n /**\n * ToolbarSelect component provides a dropdown selector within a toolbar with anvil2 tracking.\n *\n * Features:\n * - Dropdown menu with selectable options\n * - Controlled and uncontrolled usage patterns\n * - Automatic overflow menu integration\n * - Accessibility support with proper ARIA labels\n * - Ghost and primary appearance options\n * - Dropdown arrow icon indicator\n * - Listbox integration for keyboard navigation\n * - Automatic tracking ID generation for analytics\n *\n * @example\n * <Toolbar.Select\n * items={fontOptions}\n * selected=\"arial\"\n * accessibleLabel=\"Font family\"\n * onChange={(id) => setFont(id)}\n * />\n */\n Select: ToolbarSelect,\n /**\n * ToolbarControlGroup component provides a flex container for grouping related toolbar controls.\n * Can be used for filters, buttons, or other toolbar items.\n *\n * Features:\n * - Groups related toolbar controls in a flex container\n * - Supports accessibility with aria-label\n * - Handles overflow and wrapping based on toolbar context\n * - Integrates with layout utilities for spacing and alignment\n *\n * @example\n * <Toolbar.ControlGroup aria-label=\"Formatting controls\">\n * <Toolbar.Button icon={BoldIcon} aria-label=\"Bold\" />\n * <Toolbar.Button icon={ItalicIcon} aria-label=\"Italic\" />\n * </Toolbar.ControlGroup>\n */\n ControlGroup: ToolbarControlGroup,\n /**\n * ToolbarSearchField component renders a search field for use in toolbars.\n *\n * Features:\n * - Renders a search field styled for toolbar usage\n * - Supports all SearchField props except size\n * - Integrates with toolbar layouts and accessibility\n *\n * @example\n * <Toolbar.Search placeholder=\"Search...\" />\n */\n Search: ToolbarSearchField,\n },\n);\nToolbar.displayName = \"Toolbar\";\nexport const ToolbarElement = Toolbar;\n"],"names":["styles","item","ArrowDropDown","items","MoreHoriz","MoreVert"],"mappings":"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"}
|
package/dist/Toolbar.css
CHANGED
|
@@ -1,207 +1,32 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
1
|
+
.anvil2 {._toolbar-control-group_th00x_1 {
|
|
2
|
+
flex: var(--toolbar-group-flex);
|
|
3
|
+
flex-wrap: var(--toolbar-group-wrap, wrap);
|
|
4
|
+
overflow: hidden;
|
|
5
|
+
padding-block: var(--a2-size-2, 0.5rem);
|
|
6
|
+
padding-inline: var(--a2-size-1, 0.25rem);
|
|
7
|
+
}._toolbar-control-group_th00x_1[data-anv=toolbar-filter-group] {
|
|
8
|
+
min-width: 5.625rem;
|
|
9
|
+
}._toolbar-control-group_th00x_1[data-anv=toolbar-control-group] {
|
|
10
|
+
justify-content: flex-end;
|
|
11
|
+
}[data-anv=toolbar-content]:has(._toolbar-control-group_th00x_1) {
|
|
12
|
+
flex-wrap: nowrap;
|
|
13
|
+
}[data-anv=toolbar-content]:has(._toolbar-control-group_th00x_1)[data-overflow=collapse] > [data-anv=toolbar-filter-group] {
|
|
14
|
+
--toolbar-group-flex: 1 0 0;
|
|
15
|
+
--toolbar-group-wrap: nowrap;
|
|
16
|
+
}[data-anv=toolbar-content]:has(._toolbar-control-group_th00x_1)[data-overflow=collapse] > [data-anv=toolbar-control-group] {
|
|
17
|
+
--toolbar-group-flex: 0 1 auto;
|
|
18
|
+
--toolbar-group-wrap: nowrap;
|
|
19
|
+
}[data-anv=toolbar-content]:has(._toolbar-control-group_th00x_1)[data-overflow=wrap] > [data-anv=toolbar-filter-group] {
|
|
20
|
+
--toolbar-group-flex: 1 0 0;
|
|
21
|
+
}[data-anv=toolbar-content]:has(._toolbar-control-group_th00x_1)[data-overflow=wrap] > [data-anv=toolbar-control-group] {
|
|
22
|
+
--toolbar-group-flex: 0 1 auto;
|
|
8
23
|
}
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
._toolbar_15bpr_12[aria-orientation=vertical] {
|
|
17
|
-
height: 100%;
|
|
18
|
-
max-height: inherit;
|
|
19
|
-
}
|
|
20
|
-
._toolbar-content_15bpr_19 {
|
|
21
|
-
align-items: flex-start;
|
|
22
|
-
gap: 0.25rem;
|
|
23
|
-
width: 100%;
|
|
24
|
-
}
|
|
25
|
-
._overflow-wrap_15bpr_24 {
|
|
26
|
-
flex-wrap: wrap;
|
|
27
|
-
}
|
|
28
|
-
._overflow-collapse_15bpr_27 {
|
|
29
|
-
flex-wrap: nowrap;
|
|
30
|
-
}
|
|
31
|
-
._toolbar-overflow-content_15bpr_30 {
|
|
32
|
-
display: flex;
|
|
33
|
-
flex-direction: column;
|
|
34
|
-
gap: 0.75rem;
|
|
35
|
-
list-style: none;
|
|
36
|
-
padding: 0.5rem !important;
|
|
37
|
-
margin: 0 !important;
|
|
38
|
-
}
|
|
39
|
-
._toolbar-overflow-content_15bpr_30 ._toolbar-button-item_15bpr_38 {
|
|
40
|
-
width: 100%;
|
|
41
|
-
}
|
|
24
|
+
}.anvil2 {._toolbar-search-field-container_1kk8y_1 {
|
|
25
|
+
padding-block: var(--a2-size-2, 0.5rem);
|
|
26
|
+
}._toolbar-search-field_1kk8y_1 {
|
|
27
|
+
max-width: 12.5rem;
|
|
28
|
+
padding-inline-start: var(--a2-size-1, 0.25rem);
|
|
29
|
+
}._toolbar-search-field_1kk8y_1 input[type=search] {
|
|
30
|
+
padding-block: 0;
|
|
42
31
|
}
|
|
43
|
-
/* -- Toolbar Overflow and Orientation States */
|
|
44
|
-
@layer state {
|
|
45
|
-
[aria-orientation=vertical] ._toolbar-item_15bpr_44,
|
|
46
|
-
[aria-orientation=vertical] ._toolbar-button-item_15bpr_38 {
|
|
47
|
-
width: 100%;
|
|
48
|
-
}
|
|
49
|
-
._overflow-collapse_15bpr_27 {
|
|
50
|
-
overflow: hidden;
|
|
51
|
-
}
|
|
52
|
-
[aria-orientation=vertical] ._overflow-collapse_15bpr_27 {
|
|
53
|
-
height: 100%;
|
|
54
|
-
}
|
|
55
|
-
}
|
|
56
|
-
/* -- Toolbar Items Component Overrides */
|
|
57
|
-
@layer application {
|
|
58
|
-
._toolbar-button-item_15bpr_38 {
|
|
59
|
-
white-space: nowrap;
|
|
60
|
-
min-width: -moz-min-content;
|
|
61
|
-
min-width: min-content;
|
|
62
|
-
}
|
|
63
|
-
._toolbar-button-toggle-item_15bpr_61[aria-pressed=false] {
|
|
64
|
-
border-color: var(--button-primary-foreground-color, #ffffff);
|
|
65
|
-
}
|
|
66
|
-
._toolbar-button-toggle-item_15bpr_61[aria-pressed=true] {
|
|
67
|
-
border-color: var(--background-color-primary-subdued, #E0F2FF);
|
|
68
|
-
}
|
|
69
|
-
._toolbar-overflow-trigger_15bpr_67[aria-expanded=true] {
|
|
70
|
-
--button-background-color: var(--button-ghost-background-color-hover, rgba(20, 20, 20, 0.0784313725));
|
|
71
|
-
}
|
|
72
|
-
}@layer starter, reset, base, state, application;
|
|
73
|
-
|
|
74
|
-
button[data-anv=toolbar-button],
|
|
75
|
-
a[data-anv=toolbar-button-link],
|
|
76
|
-
button[data-anv=toolbar-button-toggle],
|
|
77
|
-
button[data-anv=filter-group-drawer-trigger],
|
|
78
|
-
button[data-anv=toolbar-boolean-filter],
|
|
79
|
-
button[data-anv=toolbar-select] {
|
|
80
|
-
all: revert-layer;
|
|
81
|
-
}
|
|
82
|
-
|
|
83
|
-
[data-anv=filter-group-drawer] > section,
|
|
84
|
-
[data-anv=filter-button-apply],
|
|
85
|
-
[data-anv=filter-button-content] {
|
|
86
|
-
all: revert-layer;
|
|
87
|
-
}
|
|
88
|
-
|
|
89
|
-
@layer base {
|
|
90
|
-
._filter-button-trigger_10yfo_17 {
|
|
91
|
-
white-space: nowrap;
|
|
92
|
-
}
|
|
93
|
-
._filter-button-content_10yfo_20 {
|
|
94
|
-
min-width: 12.5rem;
|
|
95
|
-
max-width: 22.5rem;
|
|
96
|
-
}
|
|
97
|
-
._filter-select-content_10yfo_24:has(input[type=search]) {
|
|
98
|
-
max-height: 18.75rem;
|
|
99
|
-
}
|
|
100
|
-
._filter-select-content_10yfo_24:not(:has(input[type=search])) {
|
|
101
|
-
max-height: 18.5rem;
|
|
102
|
-
}
|
|
103
|
-
._filter-select-content_10yfo_24:not(:has(._filter-button-buttons_10yfo_30)) {
|
|
104
|
-
padding-block-end: 0.75rem;
|
|
105
|
-
}
|
|
106
|
-
._filter-select-content_10yfo_24 ._filter-button-buttons_10yfo_30 {
|
|
107
|
-
padding-block-end: 1rem;
|
|
108
|
-
}
|
|
109
|
-
._filter-drawer-trigger_10yfo_36 {
|
|
110
|
-
position: sticky;
|
|
111
|
-
right: 0;
|
|
112
|
-
border: none;
|
|
113
|
-
}
|
|
114
|
-
._filter-button-buttons_10yfo_30 {
|
|
115
|
-
background: var(--background-color-strong, #f7f7f7);
|
|
116
|
-
padding-inline: 1rem;
|
|
117
|
-
padding-block-start: 0.5rem;
|
|
118
|
-
position: sticky;
|
|
119
|
-
bottom: 0;
|
|
120
|
-
}
|
|
121
|
-
[data-anv=toolbar-filter-group] {
|
|
122
|
-
container-type: inline-size;
|
|
123
|
-
}
|
|
124
|
-
@container (max-width: primitive.$breakpoint-md) {
|
|
125
|
-
._filter-item_10yfo_52 {
|
|
126
|
-
display: none;
|
|
127
|
-
}
|
|
128
|
-
}
|
|
129
|
-
._filter-select-search_10yfo_56 {
|
|
130
|
-
background: var(--background-color-strong, #f7f7f7);
|
|
131
|
-
padding-block-start: 1rem;
|
|
132
|
-
padding-inline: 1rem;
|
|
133
|
-
position: sticky;
|
|
134
|
-
top: 0;
|
|
135
|
-
z-index: 1;
|
|
136
|
-
}
|
|
137
|
-
._filter-select-search_10yfo_56 input[type=search] {
|
|
138
|
-
padding-inline-end: 0.5rem;
|
|
139
|
-
}
|
|
140
|
-
}
|
|
141
|
-
@layer application {
|
|
142
|
-
._filter-button-trigger_10yfo_17[aria-expanded=true]:not(._filter-button-trigger--selected_10yfo_69) {
|
|
143
|
-
--button-background-color: var(--button-ghost-background-color-hover, rgba(20, 20, 20, 0.0784313725));
|
|
144
|
-
}
|
|
145
|
-
._filter-button-trigger--selected_10yfo_69 {
|
|
146
|
-
--button-background-color: var(--background-color-primary-subdued, #E0F2FF);
|
|
147
|
-
color: var(--foreground-color-primary, #0265DC);
|
|
148
|
-
}
|
|
149
|
-
._filter-button-trigger_10yfo_17 [data-anv=chip],
|
|
150
|
-
._filter-drawer-trigger_10yfo_36 [data-anv=chip] {
|
|
151
|
-
margin-block: -0.25rem;
|
|
152
|
-
}
|
|
153
|
-
._filter-drawer-trigger--chipped_10yfo_80 {
|
|
154
|
-
background-color: var(--background-color-primary-subdued, #E0F2FF);
|
|
155
|
-
color: var(--foreground-color-primary, #0265DC);
|
|
156
|
-
min-width: -moz-max-content;
|
|
157
|
-
min-width: max-content;
|
|
158
|
-
}
|
|
159
|
-
._filter-select-search_10yfo_56 > div[role=presentation],
|
|
160
|
-
._filter-select-search_10yfo_56 input[type=search] {
|
|
161
|
-
padding-inline-end: 1rem;
|
|
162
|
-
}
|
|
163
|
-
}@layer starter, reset, base, state, application;
|
|
164
|
-
@layer base {
|
|
165
|
-
._toolbar-control-group_13h8p_2 {
|
|
166
|
-
overflow: hidden;
|
|
167
|
-
flex: var(--toolbar-group-flex);
|
|
168
|
-
flex-wrap: var(--toolbar-group-wrap, wrap);
|
|
169
|
-
padding-block: 0.5rem;
|
|
170
|
-
padding-inline: 0.25rem;
|
|
171
|
-
}
|
|
172
|
-
._toolbar-control-group_13h8p_2[data-anv=toolbar-filter-group] {
|
|
173
|
-
min-width: 5.625rem;
|
|
174
|
-
}
|
|
175
|
-
._toolbar-control-group_13h8p_2[data-anv=toolbar-control-group] {
|
|
176
|
-
justify-content: flex-end;
|
|
177
|
-
}
|
|
178
|
-
[data-anv=toolbar-content]:has(._toolbar-control-group_13h8p_2) {
|
|
179
|
-
flex-wrap: nowrap;
|
|
180
|
-
}
|
|
181
|
-
[data-anv=toolbar-content]:has(._toolbar-control-group_13h8p_2)[data-overflow=collapse] > [data-anv=toolbar-filter-group] {
|
|
182
|
-
--toolbar-group-flex: 1 0 0;
|
|
183
|
-
--toolbar-group-wrap: nowrap;
|
|
184
|
-
}
|
|
185
|
-
[data-anv=toolbar-content]:has(._toolbar-control-group_13h8p_2)[data-overflow=collapse] > [data-anv=toolbar-control-group] {
|
|
186
|
-
--toolbar-group-flex: 0 1 auto;
|
|
187
|
-
--toolbar-group-wrap: nowrap;
|
|
188
|
-
}
|
|
189
|
-
[data-anv=toolbar-content]:has(._toolbar-control-group_13h8p_2)[data-overflow=wrap] > [data-anv=toolbar-filter-group] {
|
|
190
|
-
--toolbar-group-flex: 1 0 0;
|
|
191
|
-
}
|
|
192
|
-
[data-anv=toolbar-content]:has(._toolbar-control-group_13h8p_2)[data-overflow=wrap] > [data-anv=toolbar-control-group] {
|
|
193
|
-
--toolbar-group-flex: 0 1 auto;
|
|
194
|
-
}
|
|
195
|
-
}@layer starter, reset, base, state, application;
|
|
196
|
-
@layer application {
|
|
197
|
-
._toolbar-search-field-container_5vts9_2 {
|
|
198
|
-
padding-block: 0.5rem;
|
|
199
|
-
}
|
|
200
|
-
._toolbar-search-field_5vts9_2 {
|
|
201
|
-
max-width: 12.5rem;
|
|
202
|
-
padding-inline-start: 0.25rem;
|
|
203
|
-
}
|
|
204
|
-
._toolbar-search-field_5vts9_2 input {
|
|
205
|
-
padding-block: 0;
|
|
206
|
-
}
|
|
207
32
|
}
|
package/dist/Toolbar.js
CHANGED
|
@@ -1,2 +1,3 @@
|
|
|
1
|
-
export { T as Toolbar, a as ToolbarButton,
|
|
1
|
+
export { T as Toolbar, a as ToolbarButton, b as ToolbarButtonLink, d as ToolbarControlGroup, f as ToolbarElement, e as ToolbarSearchField, c as ToolbarSelect, T as default } from './Toolbar-Dzj2KMEy.js';
|
|
2
|
+
export { T as ToolbarButtonToggle } from './ToolbarButtonToggle--2Ka05N8.js';
|
|
2
3
|
//# sourceMappingURL=Toolbar.js.map
|
package/dist/Toolbar.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Toolbar.js","sources":[],"sourcesContent":[],"names":[],"mappings":""}
|
|
1
|
+
{"version":3,"file":"Toolbar.js","sources":[],"sourcesContent":[],"names":[],"mappings":";"}
|
|
@@ -0,0 +1,284 @@
|
|
|
1
|
+
import { jsx, jsxs } from 'react/jsx-runtime';
|
|
2
|
+
import { createContext, useContext, useId, useRef, useCallback, useEffect, forwardRef } from 'react';
|
|
3
|
+
import { B as ButtonToggle } from './ButtonToggle-Ct9_5bhC.js';
|
|
4
|
+
import { T as Tooltip } from './Tooltip-BlStOXN3.js';
|
|
5
|
+
import { g as getKeyboardFocusableElements } from './getKeyboardFocusableElements-QqcABz0D.js';
|
|
6
|
+
import { c as cx } from './index-De1g9FRV.js';
|
|
7
|
+
import { u as useIntersectionObserver } from './useIntersectionObserver-BEmMDO3P.js';
|
|
8
|
+
import { useTrackingId } from './useTrackingId.js';
|
|
9
|
+
|
|
10
|
+
import './ToolbarButtonToggle.css';const ToolbarContext = createContext({
|
|
11
|
+
overflowItems: [],
|
|
12
|
+
addItem: () => {
|
|
13
|
+
return;
|
|
14
|
+
},
|
|
15
|
+
removeItem: () => {
|
|
16
|
+
return;
|
|
17
|
+
},
|
|
18
|
+
toolbarRef: { current: null },
|
|
19
|
+
orderedIds: [],
|
|
20
|
+
overflow: "wrap",
|
|
21
|
+
size: "xsmall"
|
|
22
|
+
});
|
|
23
|
+
const useToolbarSize = () => useContext(ToolbarContext).size;
|
|
24
|
+
|
|
25
|
+
function getToolbarElements(toolbarElement) {
|
|
26
|
+
const toolbarContent = toolbarElement.querySelector(
|
|
27
|
+
'[data-anv="toolbar-content"]'
|
|
28
|
+
);
|
|
29
|
+
const mainItems = getKeyboardFocusableElements(toolbarContent).filter(
|
|
30
|
+
(item) => {
|
|
31
|
+
const isHidden = !item.closest('[aria-hidden="true"]');
|
|
32
|
+
const isInDrawer = !item.closest('[data-anv="filter-group-drawer"]');
|
|
33
|
+
const isInPopover = !item.closest('[data-anv="popover-content"]');
|
|
34
|
+
return isHidden && isInDrawer && isInPopover;
|
|
35
|
+
}
|
|
36
|
+
);
|
|
37
|
+
const overflowTrigger = toolbarElement.querySelector(
|
|
38
|
+
'[data-anv="toolbar-overflow-trigger"]'
|
|
39
|
+
);
|
|
40
|
+
return overflowTrigger ? [...mainItems, overflowTrigger] : mainItems;
|
|
41
|
+
}
|
|
42
|
+
function updateToolbarItemsTabIndex(toolbarElement, activeItem) {
|
|
43
|
+
if (!toolbarElement) return;
|
|
44
|
+
const items = getToolbarElements(toolbarElement);
|
|
45
|
+
if (!items.length) return;
|
|
46
|
+
let activeIndex = 0;
|
|
47
|
+
if (typeof activeItem === "number") {
|
|
48
|
+
activeIndex = Math.max(0, Math.min(activeItem, items.length - 1));
|
|
49
|
+
} else if (activeItem instanceof Element) {
|
|
50
|
+
const foundIndex = items.indexOf(activeItem);
|
|
51
|
+
if (foundIndex !== -1) {
|
|
52
|
+
activeIndex = foundIndex;
|
|
53
|
+
}
|
|
54
|
+
}
|
|
55
|
+
items.forEach((item, index) => {
|
|
56
|
+
item.setAttribute("tabindex", index === activeIndex ? "0" : "-1");
|
|
57
|
+
});
|
|
58
|
+
return items[activeIndex];
|
|
59
|
+
}
|
|
60
|
+
function handleToolbarKeyDown(event, toolbarElement) {
|
|
61
|
+
if (!toolbarElement || event.altKey || event.ctrlKey || event.metaKey) return;
|
|
62
|
+
const items = getToolbarElements(toolbarElement);
|
|
63
|
+
if (!items.length) return;
|
|
64
|
+
const activeElement = event.target;
|
|
65
|
+
if (!toolbarElement.contains(activeElement)) return;
|
|
66
|
+
const activeItem = items.find(
|
|
67
|
+
(item) => item === activeElement || Array.from(item.children).some((child) => child === activeElement)
|
|
68
|
+
);
|
|
69
|
+
const activeIndex = activeItem ? items.indexOf(activeItem) : -1;
|
|
70
|
+
if (activeIndex === -1) return;
|
|
71
|
+
let nextIndex = activeIndex;
|
|
72
|
+
const isVertical = toolbarElement.getAttribute("aria-orientation") === "vertical";
|
|
73
|
+
switch (event.key) {
|
|
74
|
+
case "ArrowLeft":
|
|
75
|
+
case "ArrowUp":
|
|
76
|
+
event.preventDefault();
|
|
77
|
+
if (isVertical && event.key === "ArrowUp" || !isVertical && event.key === "ArrowLeft") {
|
|
78
|
+
nextIndex = activeIndex <= 0 ? items.length - 1 : activeIndex - 1;
|
|
79
|
+
}
|
|
80
|
+
break;
|
|
81
|
+
case "ArrowRight":
|
|
82
|
+
case "ArrowDown":
|
|
83
|
+
event.preventDefault();
|
|
84
|
+
if (isVertical && event.key === "ArrowDown" || !isVertical && event.key === "ArrowRight") {
|
|
85
|
+
nextIndex = activeIndex >= items.length - 1 ? 0 : activeIndex + 1;
|
|
86
|
+
}
|
|
87
|
+
break;
|
|
88
|
+
case "Home":
|
|
89
|
+
event.preventDefault();
|
|
90
|
+
nextIndex = 0;
|
|
91
|
+
break;
|
|
92
|
+
case "End":
|
|
93
|
+
event.preventDefault();
|
|
94
|
+
nextIndex = items.length - 1;
|
|
95
|
+
break;
|
|
96
|
+
default:
|
|
97
|
+
return;
|
|
98
|
+
}
|
|
99
|
+
updateToolbarItemsTabIndex(toolbarElement, nextIndex);
|
|
100
|
+
items[nextIndex]?.focus();
|
|
101
|
+
}
|
|
102
|
+
const handleMenuKeyboardNavigation = (event) => {
|
|
103
|
+
const menuItems = Array.from(
|
|
104
|
+
event.currentTarget.querySelectorAll('[role="menuitem"]')
|
|
105
|
+
).map((menuItem) => {
|
|
106
|
+
return getKeyboardFocusableElements(menuItem)[0] || menuItem;
|
|
107
|
+
});
|
|
108
|
+
if (!menuItems.length) return;
|
|
109
|
+
const currentIndex = menuItems.indexOf(document.activeElement);
|
|
110
|
+
if (currentIndex === -1) return;
|
|
111
|
+
let nextIndex = currentIndex;
|
|
112
|
+
const isModifierKey = event.altKey || event.ctrlKey || event.metaKey;
|
|
113
|
+
if (isModifierKey) return;
|
|
114
|
+
switch (event.key) {
|
|
115
|
+
case "ArrowDown":
|
|
116
|
+
case "ArrowUp": {
|
|
117
|
+
event.preventDefault();
|
|
118
|
+
const direction = event.key === "ArrowDown" ? 1 : -1;
|
|
119
|
+
nextIndex = (currentIndex + direction + menuItems.length) % menuItems.length;
|
|
120
|
+
break;
|
|
121
|
+
}
|
|
122
|
+
case "Home":
|
|
123
|
+
event.preventDefault();
|
|
124
|
+
nextIndex = 0;
|
|
125
|
+
break;
|
|
126
|
+
case "End":
|
|
127
|
+
event.preventDefault();
|
|
128
|
+
nextIndex = menuItems.length - 1;
|
|
129
|
+
break;
|
|
130
|
+
default:
|
|
131
|
+
return;
|
|
132
|
+
}
|
|
133
|
+
menuItems[nextIndex]?.focus();
|
|
134
|
+
};
|
|
135
|
+
|
|
136
|
+
const toolbar = "_toolbar_t4zws_1";
|
|
137
|
+
const styles = {
|
|
138
|
+
toolbar: toolbar,
|
|
139
|
+
"toolbar-item": "_toolbar-item_t4zws_8",
|
|
140
|
+
"toolbar-button-item": "_toolbar-button-item_t4zws_9",
|
|
141
|
+
"toolbar-overflow-trigger": "_toolbar-overflow-trigger_t4zws_10",
|
|
142
|
+
"toolbar-content": "_toolbar-content_t4zws_14",
|
|
143
|
+
"overflow-wrap": "_overflow-wrap_t4zws_20",
|
|
144
|
+
"overflow-collapse": "_overflow-collapse_t4zws_24",
|
|
145
|
+
"toolbar-overflow-content": "_toolbar-overflow-content_t4zws_32",
|
|
146
|
+
"toolbar-button-toggle-item": "_toolbar-button-toggle-item_t4zws_49"
|
|
147
|
+
};
|
|
148
|
+
|
|
149
|
+
const ToolbarItemWrapper = ({
|
|
150
|
+
item,
|
|
151
|
+
children,
|
|
152
|
+
observerRoot,
|
|
153
|
+
onVisibilityChange,
|
|
154
|
+
rootMargin,
|
|
155
|
+
className
|
|
156
|
+
}) => {
|
|
157
|
+
const { addItem, removeItem, toolbarRef, overflow } = useContext(ToolbarContext);
|
|
158
|
+
const itemId = useId();
|
|
159
|
+
const elementRef = useRef(null);
|
|
160
|
+
const isCollapseMode = overflow === "collapse";
|
|
161
|
+
const prevIntersectingRef = useRef(true);
|
|
162
|
+
const handleVisibilityChange = useCallback(
|
|
163
|
+
(isVisible) => {
|
|
164
|
+
if (!isCollapseMode || prevIntersectingRef.current === isVisible) return;
|
|
165
|
+
if (onVisibilityChange) {
|
|
166
|
+
onVisibilityChange(isVisible);
|
|
167
|
+
} else if (item) {
|
|
168
|
+
const itemWithId = { ...item, id: itemId };
|
|
169
|
+
if (isVisible) {
|
|
170
|
+
removeItem(itemWithId);
|
|
171
|
+
} else {
|
|
172
|
+
addItem(itemWithId);
|
|
173
|
+
}
|
|
174
|
+
}
|
|
175
|
+
prevIntersectingRef.current = isVisible;
|
|
176
|
+
},
|
|
177
|
+
[isCollapseMode, onVisibilityChange, item, itemId, addItem, removeItem]
|
|
178
|
+
);
|
|
179
|
+
const { isIntersecting, ref } = useIntersectionObserver({
|
|
180
|
+
root: isCollapseMode ? observerRoot ?? toolbarRef.current : null,
|
|
181
|
+
threshold: 1,
|
|
182
|
+
initialIsIntersecting: true,
|
|
183
|
+
// Start as visible
|
|
184
|
+
onChange: handleVisibilityChange,
|
|
185
|
+
rootMargin
|
|
186
|
+
});
|
|
187
|
+
const setRefCallback = useCallback(
|
|
188
|
+
(node) => {
|
|
189
|
+
elementRef.current = node;
|
|
190
|
+
if (isCollapseMode) {
|
|
191
|
+
ref(node);
|
|
192
|
+
}
|
|
193
|
+
},
|
|
194
|
+
[ref, isCollapseMode]
|
|
195
|
+
);
|
|
196
|
+
const handleFocusOrClick = useCallback(() => {
|
|
197
|
+
if (!toolbarRef.current || !elementRef.current) return;
|
|
198
|
+
const currentElement = elementRef.current.querySelector("button, a, input");
|
|
199
|
+
if (!currentElement) return;
|
|
200
|
+
updateToolbarItemsTabIndex(toolbarRef.current, currentElement);
|
|
201
|
+
}, [toolbarRef]);
|
|
202
|
+
useEffect(() => {
|
|
203
|
+
const interactiveEl = elementRef.current?.querySelector("button, a, input");
|
|
204
|
+
if (!interactiveEl) return;
|
|
205
|
+
interactiveEl.addEventListener("focus", handleFocusOrClick);
|
|
206
|
+
interactiveEl.addEventListener("click", handleFocusOrClick);
|
|
207
|
+
return () => {
|
|
208
|
+
interactiveEl.removeEventListener("focus", handleFocusOrClick);
|
|
209
|
+
interactiveEl.removeEventListener("click", handleFocusOrClick);
|
|
210
|
+
};
|
|
211
|
+
}, [handleFocusOrClick]);
|
|
212
|
+
const toolbarItemClassName = cx(styles["toolbar-item"], className);
|
|
213
|
+
const isHidden = isCollapseMode && !isIntersecting;
|
|
214
|
+
return /* @__PURE__ */ jsx(
|
|
215
|
+
"div",
|
|
216
|
+
{
|
|
217
|
+
ref: setRefCallback,
|
|
218
|
+
className: toolbarItemClassName,
|
|
219
|
+
style: { visibility: isHidden ? "hidden" : "visible" },
|
|
220
|
+
"aria-hidden": isHidden,
|
|
221
|
+
...{ inert: isHidden ? "" : void 0 },
|
|
222
|
+
"data-id": itemId,
|
|
223
|
+
"data-anv": "toolbar-item",
|
|
224
|
+
children
|
|
225
|
+
}
|
|
226
|
+
);
|
|
227
|
+
};
|
|
228
|
+
|
|
229
|
+
const OverflowItemContext = createContext({
|
|
230
|
+
isInOverflowMenu: false
|
|
231
|
+
});
|
|
232
|
+
const useOverFlowItemContext = () => useContext(OverflowItemContext);
|
|
233
|
+
|
|
234
|
+
const ToolbarButtonToggle = forwardRef((props, _ref) => {
|
|
235
|
+
const { className, children, isFilter, ...rest } = props;
|
|
236
|
+
const { isInOverflowMenu = false } = useOverFlowItemContext?.() || {};
|
|
237
|
+
const size = useToolbarSize();
|
|
238
|
+
const trackingId = useTrackingId({
|
|
239
|
+
name: "ToolbarButtonToggle",
|
|
240
|
+
data: {
|
|
241
|
+
checked: props.checked,
|
|
242
|
+
disabled: props.disabled,
|
|
243
|
+
"aria-label": props["aria-label"],
|
|
244
|
+
children: props.children
|
|
245
|
+
},
|
|
246
|
+
hasOverride: !!props["data-tracking-id"]
|
|
247
|
+
});
|
|
248
|
+
const buttonToggleClassNames = cx(
|
|
249
|
+
className,
|
|
250
|
+
styles["toolbar-button-item"],
|
|
251
|
+
styles["toolbar-button-toggle-item"]
|
|
252
|
+
);
|
|
253
|
+
const item = children ? /* @__PURE__ */ jsx(
|
|
254
|
+
ButtonToggle,
|
|
255
|
+
{
|
|
256
|
+
"data-tracking-id": trackingId,
|
|
257
|
+
size,
|
|
258
|
+
"data-anv": "toolbar-button-toggle",
|
|
259
|
+
className: buttonToggleClassNames,
|
|
260
|
+
...rest,
|
|
261
|
+
children
|
|
262
|
+
}
|
|
263
|
+
) : /* @__PURE__ */ jsxs(Tooltip, { children: [
|
|
264
|
+
/* @__PURE__ */ jsx(Tooltip.Trigger, { children: /* @__PURE__ */ jsx(
|
|
265
|
+
ButtonToggle,
|
|
266
|
+
{
|
|
267
|
+
"data-tracking-id": trackingId,
|
|
268
|
+
size,
|
|
269
|
+
"data-anv": "toolbar-button-toggle",
|
|
270
|
+
className: buttonToggleClassNames,
|
|
271
|
+
...rest
|
|
272
|
+
}
|
|
273
|
+
) }),
|
|
274
|
+
/* @__PURE__ */ jsx(Tooltip.Content, { children: rest["aria-label"] })
|
|
275
|
+
] });
|
|
276
|
+
if (isInOverflowMenu || isFilter) {
|
|
277
|
+
return item;
|
|
278
|
+
}
|
|
279
|
+
return /* @__PURE__ */ jsx(ToolbarItemWrapper, { item: { itemProps: props, itemType: "buttonToggle" }, children: item });
|
|
280
|
+
});
|
|
281
|
+
ToolbarButtonToggle.displayName = "ToolbarButtonToggle";
|
|
282
|
+
|
|
283
|
+
export { OverflowItemContext as O, ToolbarButtonToggle as T, useToolbarSize as a, ToolbarItemWrapper as b, ToolbarContext as c, updateToolbarItemsTabIndex as d, handleToolbarKeyDown as e, handleMenuKeyboardNavigation as h, styles as s, useOverFlowItemContext as u };
|
|
284
|
+
//# sourceMappingURL=ToolbarButtonToggle--2Ka05N8.js.map
|