@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
package/dist/Grid.css
CHANGED
|
@@ -1,55 +1,38 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
border-color: transparent;
|
|
39
|
-
box-sizing: border-box;
|
|
40
|
-
display: inline-grid;
|
|
41
|
-
}
|
|
42
|
-
._inline-grid_1yq7u_28 ._grid-item_1yq7u_15 {
|
|
43
|
-
all: unset;
|
|
44
|
-
font-family: var(--font-family-base, "Nunito Sans", sans-serif);
|
|
45
|
-
font-size: 100%;
|
|
46
|
-
color: var(--foreground-color, #141414);
|
|
47
|
-
margin: 0;
|
|
48
|
-
padding: 0;
|
|
49
|
-
border-style: none;
|
|
50
|
-
border-width: 0;
|
|
51
|
-
border-color: transparent;
|
|
52
|
-
box-sizing: border-box;
|
|
53
|
-
display: revert-layer;
|
|
54
|
-
}
|
|
1
|
+
.anvil2 {._grid_2dsla_1 {
|
|
2
|
+
all: unset;
|
|
3
|
+
font-family: var(--a2-font-family-base, "Nunito Sans", sans-serif);
|
|
4
|
+
font-size: 100%;
|
|
5
|
+
color: inherit;
|
|
6
|
+
margin: 0;
|
|
7
|
+
padding: 0;
|
|
8
|
+
border-style: none;
|
|
9
|
+
border-width: 0;
|
|
10
|
+
border-color: transparent;
|
|
11
|
+
box-sizing: border-box;
|
|
12
|
+
display: grid;
|
|
13
|
+
}._inline-grid_2dsla_15 {
|
|
14
|
+
all: unset;
|
|
15
|
+
font-family: var(--a2-font-family-base, "Nunito Sans", sans-serif);
|
|
16
|
+
font-size: 100%;
|
|
17
|
+
color: inherit;
|
|
18
|
+
margin: 0;
|
|
19
|
+
padding: 0;
|
|
20
|
+
border-style: none;
|
|
21
|
+
border-width: 0;
|
|
22
|
+
border-color: transparent;
|
|
23
|
+
box-sizing: border-box;
|
|
24
|
+
display: inline-grid;
|
|
25
|
+
}._grid-item_2dsla_29 {
|
|
26
|
+
all: unset;
|
|
27
|
+
font-family: var(--a2-font-family-base, "Nunito Sans", sans-serif);
|
|
28
|
+
font-size: 100%;
|
|
29
|
+
color: inherit;
|
|
30
|
+
margin: 0;
|
|
31
|
+
padding: 0;
|
|
32
|
+
border-style: none;
|
|
33
|
+
border-width: 0;
|
|
34
|
+
border-color: transparent;
|
|
35
|
+
box-sizing: border-box;
|
|
36
|
+
display: revert-layer;
|
|
37
|
+
}
|
|
55
38
|
}
|
package/dist/Grid.js
CHANGED
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
export { G as Grid, G as default } from './Grid-
|
|
1
|
+
export { G as Grid, G as default } from './Grid-B1VVssDD.js';
|
|
2
2
|
//# sourceMappingURL=Grid.js.map
|
|
@@ -1,13 +1,12 @@
|
|
|
1
1
|
import { jsxs, jsx } from 'react/jsx-runtime';
|
|
2
2
|
import { forwardRef } from 'react';
|
|
3
|
-
import { F as FieldMessage } from './FieldMessage-
|
|
4
|
-
import { S as SrOnly } from './SrOnly-
|
|
3
|
+
import { F as FieldMessage } from './FieldMessage-DzxfodaI.js';
|
|
4
|
+
import { S as SrOnly } from './SrOnly-pnf8ajnh.js';
|
|
5
5
|
|
|
6
|
-
import './Helper.css';const helper = "
|
|
7
|
-
const messages = "_messages_157uk_8";
|
|
6
|
+
import './Helper.css';const helper = "_helper_1iokr_1";
|
|
8
7
|
const styles = {
|
|
9
|
-
helper: helper
|
|
10
|
-
|
|
8
|
+
helper: helper
|
|
9
|
+
};
|
|
11
10
|
|
|
12
11
|
const Helper = forwardRef((props, ref) => {
|
|
13
12
|
const {
|
|
@@ -27,7 +26,6 @@ const Helper = forwardRef((props, ref) => {
|
|
|
27
26
|
/* @__PURE__ */ jsx(
|
|
28
27
|
FieldMessage,
|
|
29
28
|
{
|
|
30
|
-
className: styles["messages"],
|
|
31
29
|
hint,
|
|
32
30
|
description,
|
|
33
31
|
error,
|
|
@@ -35,15 +33,15 @@ const Helper = forwardRef((props, ref) => {
|
|
|
35
33
|
errorMessage
|
|
36
34
|
}
|
|
37
35
|
),
|
|
38
|
-
showCounter
|
|
36
|
+
showCounter && /* @__PURE__ */ jsxs("span", { "aria-hidden": "true", children: [
|
|
39
37
|
inputLength,
|
|
40
38
|
"/",
|
|
41
39
|
maxLength
|
|
42
|
-
] })
|
|
40
|
+
] }),
|
|
43
41
|
isTyping && !!maxLength ? maxLength - inputLength >= 1 ? /* @__PURE__ */ jsx(SrOnly, { children: /* @__PURE__ */ jsx("span", { "aria-live": "polite", "aria-atomic": "true", children: `${maxLength - inputLength} character${maxLength - inputLength !== 1 ? "s" : ""} left` }) }) : /* @__PURE__ */ jsx(SrOnly, { children: /* @__PURE__ */ jsx("span", { role: "alert", children: "Maximum characters count reached" }) }) : null
|
|
44
42
|
] });
|
|
45
43
|
});
|
|
46
44
|
Helper.displayName = "Helper";
|
|
47
45
|
|
|
48
46
|
export { Helper as H };
|
|
49
|
-
//# sourceMappingURL=Helper-
|
|
47
|
+
//# sourceMappingURL=Helper-DtDeaYTn.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"Helper-DtDeaYTn.js","sources":["../src/internal/components/Helper/Helper.tsx"],"sourcesContent":["import { forwardRef, AriaAttributes, ReactElement } from \"react\";\nimport styles from \"./Helper.module.scss\";\nimport { FieldMessage } from \"../../../components/FieldMessage\";\nimport { SrOnly } from \"../../../components/SrOnly\";\n\nexport type HelperProps = {\n id?: string;\n // required?: boolean;\n hint?: ReactElement | string;\n description?: ReactElement | string;\n /**\n * Error message(s) to display. Supports a single string or an array of strings.\n */\n error?: string | string[];\n /**\n * Warning message(s) to display. Supports a single string or an array of strings.\n */\n warning?: string | string[];\n /**\n * @deprecated Use the `error` prop instead.\n */\n errorMessage?: ReactElement | string;\n /**\n * @deprecated No longer used. Error messages always use `aria-live=\"assertive\"`.\n */\n errorAriaLive?: AriaAttributes[\"aria-live\"];\n maxLength?: number;\n inputLength?: number;\n isTyping?: boolean;\n showCounter?: boolean;\n};\n\nexport const Helper = forwardRef<HTMLDivElement, HelperProps>((props, ref) => {\n const {\n id,\n hint,\n description,\n error,\n warning,\n errorAriaLive: _errorAriaLive,\n errorMessage,\n maxLength,\n isTyping,\n inputLength = 0,\n showCounter,\n } = props;\n\n return (\n <div className={styles[\"helper\"]} ref={ref} id={id}>\n <FieldMessage\n hint={hint}\n description={description}\n error={error}\n warning={warning}\n errorMessage={errorMessage}\n />\n\n {showCounter && (\n <span aria-hidden=\"true\">\n {inputLength}/{maxLength}\n </span>\n )}\n\n {isTyping && !!maxLength ? (\n maxLength - inputLength >= 1 ? (\n <SrOnly>\n {/* TODO: potential localization */}\n <span aria-live=\"polite\" aria-atomic=\"true\">{`${\n maxLength - inputLength\n } character${maxLength - inputLength !== 1 ? \"s\" : \"\"} left`}</span>\n </SrOnly>\n ) : (\n <SrOnly>\n {/* TODO: potential localization */}\n <span role=\"alert\">Maximum characters count reached</span>\n </SrOnly>\n )\n ) : null}\n </div>\n );\n});\n\nHelper.displayName = \"Helper\";\n"],"names":[],"mappings":";;;;;;;;;;AAgCO,MAAM,MAAA,GAAS,UAAA,CAAwC,CAAC,KAAA,EAAO,GAAA,KAAQ;AAC5E,EAAA,MAAM;AAAA,IACJ,EAAA;AAAA,IACA,IAAA;AAAA,IACA,WAAA;AAAA,IACA,KAAA;AAAA,IACA,OAAA;AAAA,IACA,aAAA,EAAe,cAAA;AAAA,IACf,YAAA;AAAA,IACA,SAAA;AAAA,IACA,QAAA;AAAA,IACA,WAAA,GAAc,CAAA;AAAA,IACd;AAAA,GACF,GAAI,KAAA;AAEJ,EAAA,4BACG,KAAA,EAAA,EAAI,SAAA,EAAW,OAAO,QAAQ,CAAA,EAAG,KAAU,EAAA,EAC1C,QAAA,EAAA;AAAA,oBAAA,GAAA;AAAA,MAAC,YAAA;AAAA,MAAA;AAAA,QACC,IAAA;AAAA,QACA,WAAA;AAAA,QACA,KAAA;AAAA,QACA,OAAA;AAAA,QACA;AAAA;AAAA,KACF;AAAA,IAEC,WAAA,oBACC,IAAA,CAAC,MAAA,EAAA,EAAK,aAAA,EAAY,MAAA,EACf,QAAA,EAAA;AAAA,MAAA,WAAA;AAAA,MAAY,GAAA;AAAA,MAAE;AAAA,KAAA,EACjB,CAAA;AAAA,IAGD,QAAA,IAAY,CAAC,CAAC,SAAA,GACb,YAAY,WAAA,IAAe,CAAA,mBACzB,GAAA,CAAC,MAAA,EAAA,EAEC,8BAAC,MAAA,EAAA,EAAK,WAAA,EAAU,QAAA,EAAS,aAAA,EAAY,QAAQ,QAAA,EAAA,CAAA,EAC3C,SAAA,GAAY,WACd,CAAA,UAAA,EAAa,YAAY,WAAA,KAAgB,CAAA,GAAI,GAAA,GAAM,EAAE,SAAQ,CAAA,EAC/D,CAAA,mBAEA,GAAA,CAAC,MAAA,EAAA,EAEC,8BAAC,MAAA,EAAA,EAAK,IAAA,EAAK,OAAA,EAAQ,QAAA,EAAA,kCAAA,EAAgC,GACrD,CAAA,GAEA;AAAA,GAAA,EACN,CAAA;AAEJ,CAAC;AAED,MAAA,CAAO,WAAA,GAAc,QAAA;;;;"}
|
package/dist/Helper.css
CHANGED
|
@@ -1,20 +1,8 @@
|
|
|
1
|
-
|
|
2
|
-
._helper_157uk_1 {
|
|
1
|
+
.anvil2 {._helper_1iokr_1 {
|
|
3
2
|
display: flex;
|
|
4
3
|
flex-direction: row;
|
|
5
|
-
gap: 0.5rem;
|
|
6
|
-
color: var(--foreground-color-subdued, #
|
|
7
|
-
font-size: 0.875rem;
|
|
4
|
+
gap: var(--a2-size-2, 0.5rem);
|
|
5
|
+
color: var(--a2-foreground-color-subdued, light-dark(var(--a2-color-neutral-500, #707070), var(--a2-color-neutral-200, #c4c4c4)));
|
|
6
|
+
font-size: var(--a2-font-size-300, 0.875rem);
|
|
8
7
|
}
|
|
9
|
-
._helper_157uk_1 ._messages_157uk_8 {
|
|
10
|
-
flex: 1;
|
|
11
|
-
}
|
|
12
|
-
._helper_157uk_1 ._error-container_157uk_11 {
|
|
13
|
-
display: flex;
|
|
14
|
-
gap: 0.25rem;
|
|
15
|
-
align-items: flex-start;
|
|
16
|
-
color: var(--foreground-color-danger, #e13212);
|
|
17
|
-
}
|
|
18
|
-
._helper_157uk_1 ._error-icon_157uk_17 {
|
|
19
|
-
padding-top: 0.0625rem;
|
|
20
8
|
}
|
|
@@ -1,13 +1,13 @@
|
|
|
1
1
|
import { jsx } from 'react/jsx-runtime';
|
|
2
2
|
import { forwardRef } from 'react';
|
|
3
3
|
import { c as cx } from './index-De1g9FRV.js';
|
|
4
|
-
import { u as useLayoutPropsUtil } from './useLayoutPropsUtil-
|
|
4
|
+
import { u as useLayoutPropsUtil } from './useLayoutPropsUtil-CB_zHDbW.js';
|
|
5
5
|
|
|
6
|
-
import './Icon.css';const icon = "
|
|
7
|
-
const small = "
|
|
8
|
-
const medium = "
|
|
9
|
-
const large = "
|
|
10
|
-
const xlarge = "
|
|
6
|
+
import './Icon.css';const icon = "_icon_r7g29_1";
|
|
7
|
+
const small = "_small_r7g29_38";
|
|
8
|
+
const medium = "_medium_r7g29_42";
|
|
9
|
+
const large = "_large_r7g29_46";
|
|
10
|
+
const xlarge = "_xlarge_r7g29_50";
|
|
11
11
|
const styles = {
|
|
12
12
|
icon: icon,
|
|
13
13
|
small: small,
|
|
@@ -53,4 +53,4 @@ const Icon = forwardRef((props, ref) => {
|
|
|
53
53
|
Icon.displayName = "Icon";
|
|
54
54
|
|
|
55
55
|
export { Icon as I };
|
|
56
|
-
//# sourceMappingURL=Icon-
|
|
56
|
+
//# sourceMappingURL=Icon-BMMbp40n.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Icon-
|
|
1
|
+
{"version":3,"file":"Icon-BMMbp40n.js","sources":["../src/components/Icon/Icon.tsx"],"sourcesContent":["import { LayoutUtilProps, Size, Svg } from \"../../types\";\nimport { ComponentPropsWithoutRef, forwardRef } from \"react\";\nimport styles from \"./Icon.module.scss\";\nimport { useLayoutPropsUtil } from \"../../internal/hooks\";\nimport cx from \"classnames\";\n\n/**\n * Props for the Icon component\n * @extends Omit<ComponentPropsWithoutRef<\"span\">, \"children\">\n * @extends Omit<LayoutUtilProps, \"flex\" | \"flexBasis\" | \"flexGrow\" | \"flexShrink\">\n */\nexport type IconProps = Omit<ComponentPropsWithoutRef<\"span\">, \"children\"> &\n Omit<LayoutUtilProps, \"flex\" | \"flexBasis\" | \"flexGrow\" | \"flexShrink\"> & {\n /**\n * Apply a specific color to the icon.\n */\n color?: string;\n\n /**\n * The size of the icon.\n * @default medium\n */\n size?: Extract<Size, \"small\" | \"medium\" | \"large\" | \"xlarge\">;\n\n /**\n * Assets passed in using svgr.\n */\n svg: Svg;\n\n /**\n * Whether the icon should inherit the color from its parent element.\n * @default false\n */\n inherit?: boolean;\n };\n\n/**\n * Icon component for displaying SVG icons with consistent styling and sizing.\n *\n * Features:\n * - SVG icon rendering with consistent styling\n * - Four predefined sizes: small, medium, large, xlarge\n * - Custom color support with optional inheritance\n * - Layout utilities for positioning and spacing\n * - Support for all standard span element props\n * - Flexible color inheritance and custom color options\n * - Consistent sizing across different icon sets\n *\n * @example\n * import Close from \"@servicetitan/anvil2/assets/icons/material/round/close.svg\";\n *\n * <Icon svg={Close} size=\"medium\" />\n *\n * @example\n * import Info from \"@servicetitan/anvil2/assets/icons/material/round/info.svg\";\n *\n * <Icon\n * svg={Info}\n * size=\"large\"\n * color=\"#007bff\"\n * inherit={false}\n * />\n */\nexport const Icon = forwardRef<HTMLSpanElement, IconProps>((props, ref) => {\n const { layoutStyles, componentProps } = useLayoutPropsUtil(props);\n const {\n size = \"medium\",\n className,\n svg: Svg,\n inherit,\n style,\n color,\n ...rest\n } = componentProps;\n\n const iconClassNames = cx([styles[\"icon\"]], className, {\n [styles[\"small\"]]: size === \"small\",\n [styles[\"medium\"]]: size === \"medium\",\n [styles[\"large\"]]: size === \"large\",\n [styles[\"xlarge\"]]: size === \"xlarge\",\n });\n\n const styleCombined = {\n color: color ? color : inherit ? \"inherit\" : undefined,\n ...style,\n ...layoutStyles,\n };\n\n return (\n <span\n className={iconClassNames}\n data-anv=\"icon\"\n style={styleCombined}\n ref={ref}\n {...rest}\n >\n <Svg />\n </span>\n );\n});\n\nIcon.displayName = \"Icon\";\n"],"names":["Svg"],"mappings":";;;;;;;;;;;;;;;;;;AA+DO,MAAM,IAAA,GAAO,UAAA,CAAuC,CAAC,KAAA,EAAO,GAAA,KAAQ;AACzE,EAAA,MAAM,EAAE,YAAA,EAAc,cAAA,EAAe,GAAI,mBAAmB,KAAK,CAAA;AACjE,EAAA,MAAM;AAAA,IACJ,IAAA,GAAO,QAAA;AAAA,IACP,SAAA;AAAA,IACA,GAAA,EAAKA,IAAAA;AAAA,IACL,OAAA;AAAA,IACA,KAAA;AAAA,IACA,KAAA;AAAA,IACA,GAAG;AAAA,GACL,GAAI,cAAA;AAEJ,EAAA,MAAM,iBAAiB,EAAA,CAAG,CAAC,OAAO,MAAM,CAAC,GAAG,SAAA,EAAW;AAAA,IACrD,CAAC,MAAA,CAAO,OAAO,CAAC,GAAG,IAAA,KAAS,OAAA;AAAA,IAC5B,CAAC,MAAA,CAAO,QAAQ,CAAC,GAAG,IAAA,KAAS,QAAA;AAAA,IAC7B,CAAC,MAAA,CAAO,OAAO,CAAC,GAAG,IAAA,KAAS,OAAA;AAAA,IAC5B,CAAC,MAAA,CAAO,QAAQ,CAAC,GAAG,IAAA,KAAS;AAAA,GAC9B,CAAA;AAED,EAAA,MAAM,aAAA,GAAgB;AAAA,IACpB,KAAA,EAAO,KAAA,GAAQ,KAAA,GAAQ,OAAA,GAAU,SAAA,GAAY,MAAA;AAAA,IAC7C,GAAG,KAAA;AAAA,IACH,GAAG;AAAA,GACL;AAEA,EAAA,uBACE,GAAA;AAAA,IAAC,MAAA;AAAA,IAAA;AAAA,MACC,SAAA,EAAW,cAAA;AAAA,MACX,UAAA,EAAS,MAAA;AAAA,MACT,KAAA,EAAO,aAAA;AAAA,MACP,GAAA;AAAA,MACC,GAAG,IAAA;AAAA,MAEJ,QAAA,kBAAA,GAAA,CAACA,MAAA,EAAI;AAAA;AAAA,GACP;AAEJ,CAAC;AAED,IAAA,CAAK,WAAA,GAAc,MAAA;;;;"}
|
package/dist/Icon.css
CHANGED
|
@@ -1,50 +1,44 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
1
|
+
.anvil2 {._icon_r7g29_1 {
|
|
2
|
+
--a2-mod-icon-focus-ring-color: var(--a2-icon-focus-ring-color, var(--a2-focus-ring-color-default, var(--a2-status-color-info, light-dark(var(--a2-color-blue-600, #0265dc), var(--a2-color-blue-300, #70b1ff)))));
|
|
3
|
+
--a2-mod-icon-font-size: var(--a2-size-4, 1rem);
|
|
4
|
+
--a2-mod-icon-foreground-color: var(--a2-icon-foreground-color, var(--a2-foreground-color-default, light-dark(var(--a2-color-neutral-950, #040404), var(--a2-color-neutral-0, #ffffff))));
|
|
5
|
+
--a2-mod-icon-height: 1em;
|
|
6
|
+
--a2-mod-icon-padding-block-start: 0;
|
|
7
|
+
--a2-mod-icon-width: 1em;
|
|
8
|
+
all: unset;
|
|
9
|
+
font-family: var(--a2-font-family-base, "Nunito Sans", sans-serif);
|
|
10
|
+
font-size: 100%;
|
|
11
|
+
color: inherit;
|
|
12
|
+
margin: 0;
|
|
13
|
+
padding: 0;
|
|
14
|
+
border-style: none;
|
|
15
|
+
border-width: 0;
|
|
16
|
+
border-color: transparent;
|
|
17
|
+
box-sizing: border-box;
|
|
18
|
+
display: flex;
|
|
19
|
+
border-radius: var(--a2-border-radius-circular, 100%);
|
|
20
|
+
color: var(--a2-mod-icon-foreground-color);
|
|
21
|
+
display: inline-flex;
|
|
22
|
+
height: -moz-min-content;
|
|
23
|
+
height: min-content;
|
|
24
|
+
outline: 0 solid var(--a2-mod-icon-focus-ring-color);
|
|
25
|
+
outline-offset: var(--a2-size-half, 0.125rem);
|
|
26
|
+
padding-block-start: var(--a2-mod-icon-padding-block-start);
|
|
27
|
+
transition: outline var(--a2-duration-default, 200ms) var(--a2-transition-ease-out, cubic-bezier(0, 0, 0.4, 1));
|
|
28
|
+
}._icon_r7g29_1:focus-visible, ._icon_r7g29_1[data-interactive=focus-visible] {
|
|
29
|
+
outline-width: var(--a2-size-half, 0.125rem);
|
|
30
|
+
}._icon_r7g29_1 svg {
|
|
31
|
+
fill: currentColor;
|
|
32
|
+
font-size: var(--a2-mod-icon-font-size);
|
|
33
|
+
height: var(--a2-mod-icon-height);
|
|
34
|
+
width: var(--a2-mod-icon-width);
|
|
35
|
+
}._small_r7g29_38 {
|
|
36
|
+
--a2-mod-icon-font-size: var(--a2-size-3, 0.75rem);
|
|
37
|
+
}._medium_r7g29_42 {
|
|
38
|
+
--a2-mod-icon-font-size: var(--a2-size-4, 1rem);
|
|
39
|
+
}._large_r7g29_46 {
|
|
40
|
+
--a2-mod-icon-font-size: var(--a2-size-6, 1.5rem);
|
|
41
|
+
}._xlarge_r7g29_50 {
|
|
42
|
+
--a2-mod-icon-font-size: var(--a2-size-8, 2rem);
|
|
16
43
|
}
|
|
17
|
-
@layer base {
|
|
18
|
-
._icon_ju3rs_2 {
|
|
19
|
-
display: inline-flex;
|
|
20
|
-
border-radius: 100%;
|
|
21
|
-
outline-offset: 0.125rem;
|
|
22
|
-
outline: 0 solid var(--focus-ring-color, #0265DC);
|
|
23
|
-
height: -moz-min-content;
|
|
24
|
-
height: min-content;
|
|
25
|
-
transition: outline 200ms cubic-bezier(0, 0, 0.4, 1);
|
|
26
|
-
}
|
|
27
|
-
._icon_ju3rs_2 svg {
|
|
28
|
-
fill: currentColor;
|
|
29
|
-
font-size: 1rem;
|
|
30
|
-
width: 1em;
|
|
31
|
-
height: 1em;
|
|
32
|
-
}
|
|
33
|
-
}
|
|
34
|
-
@layer state {
|
|
35
|
-
._icon_ju3rs_2._small_ju3rs_33 svg {
|
|
36
|
-
font-size: 0.75rem;
|
|
37
|
-
}
|
|
38
|
-
._icon_ju3rs_2._medium_ju3rs_36 svg {
|
|
39
|
-
font-size: 1rem;
|
|
40
|
-
}
|
|
41
|
-
._icon_ju3rs_2._large_ju3rs_39 svg {
|
|
42
|
-
font-size: 1.5rem;
|
|
43
|
-
}
|
|
44
|
-
._icon_ju3rs_2._xlarge_ju3rs_42 svg {
|
|
45
|
-
font-size: 2rem;
|
|
46
|
-
}
|
|
47
|
-
._icon_ju3rs_2:focus-visible, ._icon_ju3rs_2[data-interactive=focus-visible] {
|
|
48
|
-
outline-width: 0.125rem;
|
|
49
|
-
}
|
|
50
44
|
}
|
package/dist/Icon.js
CHANGED
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
export { I as Icon, I as default } from './Icon-
|
|
1
|
+
export { I as Icon, I as default } from './Icon-BMMbp40n.js';
|
|
2
2
|
//# sourceMappingURL=Icon.js.map
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import { jsx } from 'react/jsx-runtime';
|
|
2
2
|
import { forwardRef, useRef, useMemo, isValidElement, cloneElement } from 'react';
|
|
3
|
-
import { u as useMergeRefs } from './AiMark-
|
|
4
|
-
import { T as TextField } from './TextField-
|
|
3
|
+
import { u as useMergeRefs } from './AiMark-B1-M3ZgP.js';
|
|
4
|
+
import { T as TextField } from './TextField-CRDTnuUN.js';
|
|
5
5
|
import { u as useOptionallyControlledState } from './useOptionallyControlledState-DbDuos5L.js';
|
|
6
6
|
import { c as childrenToString } from './childrenToString-Bz9MqbHb.js';
|
|
7
7
|
import { useTrackingId } from './useTrackingId.js';
|
|
@@ -261,4 +261,4 @@ const InputMask = forwardRef(
|
|
|
261
261
|
InputMask.displayName = "InputMask";
|
|
262
262
|
|
|
263
263
|
export { InputMask as I };
|
|
264
|
-
//# sourceMappingURL=InputMask-
|
|
264
|
+
//# sourceMappingURL=InputMask-EwEJlW-t.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"InputMask-PVCfJodz.js","sources":["../src/components/InputMask/internal/constants.ts","../src/components/InputMask/internal/utils.ts","../src/components/InputMask/InputMask.tsx"],"sourcesContent":["export const MASK_CHARS = [\"a\", \"9\", \"*\"];\n","import { MASK_CHARS } from \"./constants\";\n\n/**\n * This function applies the mask to the input value, returning a new string that matches the mask's format.\n * @param value - a string representing the raw input value (e.g., what the user typed)\n * @param mask - a string representing the desired input mask (e.g., \"99/99/9999\" for a date)\n * @param defaultMaskCharacter - a string representing the default mask character (e.g., \"_\")\n * @returns a string representing the masked value (e.g., \"12/31/2025\" for a date)\n *\n * @example\n * applyMask(\"1234567890\", \"99/99/9999\", \"_\") // \"12/31/2025\"\n * applyMask(\"1234567890\", \"999-999-9999\", \"-\") // \"123-456-7890\"\n * applyMask(\"123\", \"99/99\", \"_\") // \"12/3_\"\n */\nexport function applyMask(\n value: string,\n mask: string,\n defaultMaskCharacter: string,\n) {\n let maskedValue = \"\";\n let valueIndex = 0;\n for (let i = 0; i < mask.length; i++) {\n const maskChar = mask[i];\n if (MASK_CHARS.includes(maskChar)) {\n // Find next acceptable char in value\n while (\n valueIndex < value.length &&\n !isAcceptableChar(value[valueIndex], maskChar)\n ) {\n valueIndex++;\n }\n if (valueIndex < value.length) {\n maskedValue += value[valueIndex];\n valueIndex++;\n } else {\n maskedValue += defaultMaskCharacter;\n }\n } else {\n maskedValue += maskChar;\n }\n }\n return maskedValue;\n}\n/**\n * This function checks if a character is acceptable for a given mask character.\n * @param char - a string representing the character to check\n * @param maskChar - a string representing the mask character\n * @returns a boolean indicating if the character is acceptable\n */\nfunction isAcceptableChar(char: string, maskChar: string) {\n if (maskChar === \"9\") {\n return /\\d/.test(char);\n }\n if (maskChar === \"a\") {\n return /[a-zA-Z]/.test(char);\n }\n if (maskChar === \"*\") {\n return /[a-zA-Z0-9]/.test(char);\n }\n return false;\n}\n/**\n * This function finds the next open character in a given value.\n * @param value - a string representing the value to search\n * @param defaultMaskCharacter - a string representing the default mask character (e.g., \"_\")\n * @returns a number representing the index of the next open character\n */\nexport function getNextOpenCharacterIndex(\n value: string,\n defaultMaskCharacter: string,\n) {\n let idx = value.indexOf(defaultMaskCharacter);\n if (idx < 0) {\n idx = value.length;\n }\n return idx;\n}\n/**\n * This function finds the first non-fixed character in the value.\n * @param startingIndex - a number representing the index to start searching from\n * @param fixedCharacterIndices - an array of numbers representing the indices of the fixed characters\n * @returns a number representing the index of the first non-fixed character\n */\nexport function getFirstNonFixedCharacterIndex(\n startingIndex: number,\n fixedCharacterIndices: number[],\n) {\n let idx = startingIndex;\n while (fixedCharacterIndices.includes(idx)) {\n idx++;\n }\n return idx;\n}\n/**\n * This function finds the last filled character in a given value.\n * @param value - a string representing the value to search\n * @param mask - a string representing the mask\n * @returns a number representing the index of the last filled character\n */\nexport function getLastFilledCharacterIndex(value: string, mask: string) {\n let idx = value\n .split(\"\")\n .findLastIndex((char, i) => isAcceptableChar(char, mask[i]));\n if (idx < 0) {\n idx = 0;\n }\n return idx;\n}\n/**\n * This function finds the first filled character in a given value.\n * @param value - a string representing the value to search\n * @param mask - a string representing the mask\n * @returns a number representing the index of the first filled character\n */\nexport function getFirstFilledCharacterIndex(value: string, mask: string) {\n let idx = value\n .split(\"\")\n .findIndex((char, i) => isAcceptableChar(char, mask[i]));\n if (idx < 0) {\n idx = 0;\n }\n return idx;\n}\n","import {\n ChangeEvent,\n ChangeEventHandler,\n FocusEvent,\n KeyboardEvent,\n InputHTMLAttributes,\n ReactElement,\n cloneElement,\n forwardRef,\n isValidElement,\n useRef,\n useMemo,\n MouseEvent,\n} from \"react\";\nimport { useMergeRefs } from \"@floating-ui/react\";\nimport { useOptionallyControlledState } from \"../../internal/hooks\";\nimport { useTrackingId } from \"../../hooks\";\nimport { TextField, TextFieldProps } from \"../TextField/internal/TextField\";\nimport { childrenToString } from \"../../internal/functions\";\nimport {\n applyMask,\n getLastFilledCharacterIndex,\n getFirstFilledCharacterIndex,\n getFirstNonFixedCharacterIndex,\n getNextOpenCharacterIndex,\n} from \"./internal/utils\";\nimport { MASK_CHARS } from \"./internal/constants\";\nimport { DataTrackingId } from \"../../types\";\n\n/**\n * Props for InputMask when using with children\n */\ninterface InputMaskPropsWithChildren {\n /**\n * Custom input element to be wrapped with mask functionality.\n */\n children: ReactElement<InputHTMLAttributes<HTMLInputElement>>;\n /**\n * Additional props to pass to the input element.\n */\n inputProps?: InputHTMLAttributes<HTMLInputElement>;\n}\n\n/**\n * Props for InputMask when using without children\n */\ninterface InputMaskPropsWithoutChildren {\n /**\n * No children allowed when using default TextField.\n */\n children?: never;\n /**\n * Props to pass to the default TextField component.\n */\n inputProps?: TextFieldProps;\n}\n\n/**\n * Configuration for custom mask handler matching\n */\ninterface ICustomMaskHandlerMatch {\n /**\n * Regular expression pattern to match against input.\n */\n matchPattern: RegExp;\n /**\n * Starting position in the input string.\n */\n startPosition: number;\n /**\n * Ending position in the input string.\n */\n endPosition: number;\n}\n\n/**\n * Configuration for custom mask handler application\n */\ninterface ICustomMaskHandlerApply {\n /**\n * Pattern to apply when match is found.\n */\n applyPattern: string;\n /**\n * Offset to apply to cursor position after transformation.\n */\n caretOffset: number;\n}\n\n/**\n * Custom mask handler for advanced input transformations\n */\ninterface ICustomMaskHandler {\n /**\n * Matching configuration for the handler.\n */\n match: ICustomMaskHandlerMatch;\n /**\n * Application configuration for the handler.\n */\n apply: ICustomMaskHandlerApply;\n}\n\n/**\n * Shared props for InputMask component\n */\ninterface SharedInputMaskProps {\n /**\n * The mask pattern to apply to the input.\n * - \"9\" for digits only\n * - \"a\" for letters only\n * - \"*\" for alphanumeric\n * - Any other character is treated as a fixed character\n */\n mask: string;\n /**\n * Character to display for unfilled mask positions.\n * @default \"_\"\n */\n defaultMaskCharacter?: string;\n /**\n * Controlled value for the input.\n */\n value?: string;\n /**\n * Default value for uncontrolled input.\n */\n defaultValue?: string;\n /**\n * Callback function called when input value changes.\n */\n onChange?: ChangeEventHandler<HTMLInputElement>;\n /**\n * Array of custom mask handlers for advanced transformations.\n */\n customMaskHandler?: ICustomMaskHandler[];\n}\n\ntype SpecialChange = {\n reason: \"Backspace\" | \"Delete\" | \"Edit\";\n start: number;\n end: number;\n};\n\n/**\n * Props for the InputMask component\n * @property {string} mask - The mask pattern to apply to the input (9 for digits, a for letters, * for alphanumeric)\n * @property {string} [defaultMaskCharacter] - Character to display for unfilled mask positions\n * @property {array} [customMaskHandler] - Array of custom mask handlers for advanced transformations\n * @property {object} [inputProps] - Props to pass to the input component\n * @property {ReactElement} [children] - Custom input element to be wrapped with mask functionality\n * @property {string} [data-tracking-id] - Custom tracking ID for analytics\n */\nexport type InputMaskProps = SharedInputMaskProps &\n (InputMaskPropsWithChildren | InputMaskPropsWithoutChildren) &\n DataTrackingId;\n\n/**\n * InputMask component for applying input masks and formatting to text inputs.\n *\n * @deprecated Use the TextField component with custom masking instead. Over time, we intend to release additional components with built-in masking.\n */\nexport const InputMask = forwardRef<HTMLInputElement, InputMaskProps>(\n (\n {\n children,\n mask,\n defaultMaskCharacter = \"_\",\n value,\n defaultValue,\n onChange,\n inputProps,\n \"data-tracking-id\": dataTrackingId,\n },\n ref,\n ) => {\n const [v, setV] = useOptionallyControlledState({\n controlledValue:\n value !== undefined\n ? applyMask(value, mask, defaultMaskCharacter)\n : undefined,\n defaultValue: applyMask(defaultValue || \"\", mask, defaultMaskCharacter),\n // Omitting the onChange handler here because we want to handle it ourselves (i.e. send an event instead of just the value)\n });\n const specialChange = useRef<SpecialChange | null>(null);\n\n const inputRef = useRef<HTMLInputElement>(null);\n\n const passInRef = useMergeRefs([inputRef, ref]);\n\n const currentOpenCharacterCount = useMemo(() => {\n return v.split(\"\").filter((char) => char === defaultMaskCharacter).length;\n }, [v, defaultMaskCharacter]);\n\n const fixedCharacterIndices = useMemo(() => {\n const fixedIndices: number[] = [];\n mask.split(\"\").forEach((char, i) => {\n if (!MASK_CHARS.includes(char)) {\n fixedIndices.push(i);\n }\n });\n return fixedIndices;\n }, [mask]);\n\n const moveCursorTo = (start: number, end: number = start) => {\n requestAnimationFrame(() => {\n inputRef.current?.setSelectionRange(start, end);\n });\n };\n\n const handleChange = (e: ChangeEvent<HTMLInputElement>) => {\n let newVal = applyMask(e.target.value, mask, defaultMaskCharacter);\n if (\n // A single character was backspaced\n specialChange.current?.reason === \"Backspace\" &&\n specialChange.current.start === specialChange.current.end\n ) {\n // If the character before the backspace is a fixed character, we need to remove the filled character before the fixed character\n if (fixedCharacterIndices.includes(specialChange.current.start - 1)) {\n const removeIndex = getLastFilledCharacterIndex(\n newVal.slice(0, specialChange.current.start),\n mask,\n );\n newVal = applyMask(\n newVal.slice(0, removeIndex) + newVal.slice(removeIndex + 1),\n mask,\n defaultMaskCharacter,\n );\n moveCursorTo(removeIndex, removeIndex);\n } else {\n const idx = Math.min(\n getLastFilledCharacterIndex(newVal, mask) + 1,\n specialChange.current.start - 1,\n );\n moveCursorTo(idx, idx);\n }\n } else if (\n // A single character was deleted\n specialChange.current?.reason === \"Delete\" &&\n specialChange.current.start === specialChange.current.end\n ) {\n // If the character after the delete is a fixed character, we need to remove the filled character after the fixed character\n if (fixedCharacterIndices.includes(specialChange.current.start)) {\n const removeIndex = getFirstFilledCharacterIndex(\n newVal.slice(specialChange.current.start + 1),\n mask,\n );\n newVal = applyMask(\n newVal.slice(0, removeIndex) + newVal.slice(removeIndex + 1),\n mask,\n defaultMaskCharacter,\n );\n }\n const firstFilledIdx = getFirstFilledCharacterIndex(newVal, mask);\n const targetIdx = Math.max(firstFilledIdx, specialChange.current.start);\n moveCursorTo(targetIdx, targetIdx);\n } else if (\n specialChange.current?.reason === \"Edit\" &&\n specialChange.current.start === specialChange.current.end // A single character was edited\n ) {\n const firstNonFixedIdx = getFirstNonFixedCharacterIndex(\n specialChange.current.start + 1,\n fixedCharacterIndices,\n );\n moveCursorTo(firstNonFixedIdx, firstNonFixedIdx);\n } else {\n const newIndex = getNextOpenCharacterIndex(\n newVal,\n defaultMaskCharacter,\n );\n moveCursorTo(newIndex, newIndex);\n }\n\n setV(newVal);\n if (inputRef.current) {\n inputRef.current.value = newVal;\n }\n onChange?.({ ...e, target: { ...e.target, value: newVal } });\n };\n\n const handleFocus = (e: FocusEvent<HTMLInputElement>) => {\n requestAnimationFrame(() => {\n if (\n e.target.selectionStart === null ||\n e.target.selectionStart === undefined ||\n e.target.selectionStart >= v.length\n ) {\n const newIndex = getNextOpenCharacterIndex(v, defaultMaskCharacter);\n moveCursorTo(newIndex, newIndex);\n }\n });\n inputProps?.onFocus?.(e);\n };\n\n const handleKeyDown = (e: KeyboardEvent<HTMLInputElement>) => {\n const target = e.target as HTMLInputElement;\n if (target.selectionStart === null || target.selectionEnd === null) {\n return;\n }\n if (e.key === \"Backspace\") {\n specialChange.current = {\n reason: \"Backspace\",\n start: target.selectionStart,\n end: target.selectionEnd,\n };\n } else if (e.key === \"Delete\") {\n specialChange.current = {\n reason: \"Delete\",\n start: target.selectionStart,\n end: target.selectionEnd,\n };\n } else if (currentOpenCharacterCount === 0) {\n specialChange.current = {\n reason: \"Edit\",\n start: target.selectionStart,\n end: target.selectionEnd,\n };\n } else {\n specialChange.current = null;\n }\n inputProps?.onKeyDown?.(e);\n };\n\n const handleClick = (e: MouseEvent<HTMLInputElement>) => {\n // For future use.\n e.preventDefault();\n e.stopPropagation();\n inputProps?.onClick?.(e);\n };\n\n const handleBlur = (e: FocusEvent<HTMLInputElement>) => {\n // For future use.\n e.preventDefault();\n e.stopPropagation();\n inputProps?.onBlur?.(e);\n };\n\n const mergedInputProps = {\n ...inputProps,\n ...(children && isValidElement(children) ? children.props : {}),\n value: v,\n onChange: handleChange,\n onFocus: handleFocus,\n onKeyDown: handleKeyDown,\n onClick: handleClick,\n onBlur: handleBlur,\n ref: passInRef,\n };\n\n const isInputEmpty = useMemo(() => {\n if (v.length === 0) {\n return true;\n }\n return v === applyMask(\"\", mask, defaultMaskCharacter);\n }, [v, defaultMaskCharacter, mask]);\n\n const data = {\n label:\n \"label\" in mergedInputProps\n ? childrenToString(mergedInputProps.label)\n : null,\n labelProps:\n \"labelProps\" in mergedInputProps ? mergedInputProps.labelProps : null,\n prefix: childrenToString(mergedInputProps.prefix),\n hint:\n \"hint\" in mergedInputProps\n ? childrenToString(mergedInputProps.hint)\n : null,\n description:\n \"description\" in mergedInputProps\n ? childrenToString(mergedInputProps.description)\n : null,\n size: mergedInputProps.size,\n type: mergedInputProps.type,\n };\n\n const trackingId = useTrackingId({\n name: \"InputMask\",\n data,\n hasOverride: !!dataTrackingId,\n });\n\n return children && isValidElement(children) && children.type === \"input\" ? (\n cloneElement(children, {\n ...mergedInputProps,\n \"data-tracking-id\": trackingId,\n } as InputHTMLAttributes<HTMLInputElement> & {\n \"data-tracking-id\"?: string;\n })\n ) : (\n <TextField\n data-input-empty={isInputEmpty}\n data-tracking-id={trackingId}\n {...(mergedInputProps as TextFieldProps)}\n />\n );\n },\n);\n\nInputMask.displayName = \"InputMask\";\n"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"InputMask-EwEJlW-t.js","sources":["../src/components/InputMask/internal/constants.ts","../src/components/InputMask/internal/utils.ts","../src/components/InputMask/InputMask.tsx"],"sourcesContent":["export const MASK_CHARS = [\"a\", \"9\", \"*\"];\n","import { MASK_CHARS } from \"./constants\";\n\n/**\n * This function applies the mask to the input value, returning a new string that matches the mask's format.\n * @param value - a string representing the raw input value (e.g., what the user typed)\n * @param mask - a string representing the desired input mask (e.g., \"99/99/9999\" for a date)\n * @param defaultMaskCharacter - a string representing the default mask character (e.g., \"_\")\n * @returns a string representing the masked value (e.g., \"12/31/2025\" for a date)\n *\n * @example\n * applyMask(\"1234567890\", \"99/99/9999\", \"_\") // \"12/31/2025\"\n * applyMask(\"1234567890\", \"999-999-9999\", \"-\") // \"123-456-7890\"\n * applyMask(\"123\", \"99/99\", \"_\") // \"12/3_\"\n */\nexport function applyMask(\n value: string,\n mask: string,\n defaultMaskCharacter: string,\n) {\n let maskedValue = \"\";\n let valueIndex = 0;\n for (let i = 0; i < mask.length; i++) {\n const maskChar = mask[i];\n if (MASK_CHARS.includes(maskChar)) {\n // Find next acceptable char in value\n while (\n valueIndex < value.length &&\n !isAcceptableChar(value[valueIndex], maskChar)\n ) {\n valueIndex++;\n }\n if (valueIndex < value.length) {\n maskedValue += value[valueIndex];\n valueIndex++;\n } else {\n maskedValue += defaultMaskCharacter;\n }\n } else {\n maskedValue += maskChar;\n }\n }\n return maskedValue;\n}\n/**\n * This function checks if a character is acceptable for a given mask character.\n * @param char - a string representing the character to check\n * @param maskChar - a string representing the mask character\n * @returns a boolean indicating if the character is acceptable\n */\nfunction isAcceptableChar(char: string, maskChar: string) {\n if (maskChar === \"9\") {\n return /\\d/.test(char);\n }\n if (maskChar === \"a\") {\n return /[a-zA-Z]/.test(char);\n }\n if (maskChar === \"*\") {\n return /[a-zA-Z0-9]/.test(char);\n }\n return false;\n}\n/**\n * This function finds the next open character in a given value.\n * @param value - a string representing the value to search\n * @param defaultMaskCharacter - a string representing the default mask character (e.g., \"_\")\n * @returns a number representing the index of the next open character\n */\nexport function getNextOpenCharacterIndex(\n value: string,\n defaultMaskCharacter: string,\n) {\n let idx = value.indexOf(defaultMaskCharacter);\n if (idx < 0) {\n idx = value.length;\n }\n return idx;\n}\n/**\n * This function finds the first non-fixed character in the value.\n * @param startingIndex - a number representing the index to start searching from\n * @param fixedCharacterIndices - an array of numbers representing the indices of the fixed characters\n * @returns a number representing the index of the first non-fixed character\n */\nexport function getFirstNonFixedCharacterIndex(\n startingIndex: number,\n fixedCharacterIndices: number[],\n) {\n let idx = startingIndex;\n while (fixedCharacterIndices.includes(idx)) {\n idx++;\n }\n return idx;\n}\n/**\n * This function finds the last filled character in a given value.\n * @param value - a string representing the value to search\n * @param mask - a string representing the mask\n * @returns a number representing the index of the last filled character\n */\nexport function getLastFilledCharacterIndex(value: string, mask: string) {\n let idx = value\n .split(\"\")\n .findLastIndex((char, i) => isAcceptableChar(char, mask[i]));\n if (idx < 0) {\n idx = 0;\n }\n return idx;\n}\n/**\n * This function finds the first filled character in a given value.\n * @param value - a string representing the value to search\n * @param mask - a string representing the mask\n * @returns a number representing the index of the first filled character\n */\nexport function getFirstFilledCharacterIndex(value: string, mask: string) {\n let idx = value\n .split(\"\")\n .findIndex((char, i) => isAcceptableChar(char, mask[i]));\n if (idx < 0) {\n idx = 0;\n }\n return idx;\n}\n","import {\n ChangeEvent,\n ChangeEventHandler,\n FocusEvent,\n KeyboardEvent,\n InputHTMLAttributes,\n ReactElement,\n cloneElement,\n forwardRef,\n isValidElement,\n useRef,\n useMemo,\n MouseEvent,\n} from \"react\";\nimport { useMergeRefs } from \"@floating-ui/react\";\nimport { useOptionallyControlledState } from \"../../internal/hooks\";\nimport { useTrackingId } from \"../../hooks\";\nimport { TextField, TextFieldProps } from \"../TextField/internal/TextField\";\nimport { childrenToString } from \"../../internal/functions\";\nimport {\n applyMask,\n getLastFilledCharacterIndex,\n getFirstFilledCharacterIndex,\n getFirstNonFixedCharacterIndex,\n getNextOpenCharacterIndex,\n} from \"./internal/utils\";\nimport { MASK_CHARS } from \"./internal/constants\";\nimport { DataTrackingId } from \"../../types\";\n\n/**\n * Props for InputMask when using with children\n */\ninterface InputMaskPropsWithChildren {\n /**\n * Custom input element to be wrapped with mask functionality.\n */\n children: ReactElement<InputHTMLAttributes<HTMLInputElement>>;\n /**\n * Additional props to pass to the input element.\n */\n inputProps?: InputHTMLAttributes<HTMLInputElement>;\n}\n\n/**\n * Props for InputMask when using without children\n */\ninterface InputMaskPropsWithoutChildren {\n /**\n * No children allowed when using default TextField.\n */\n children?: never;\n /**\n * Props to pass to the default TextField component.\n */\n inputProps?: TextFieldProps;\n}\n\n/**\n * Configuration for custom mask handler matching\n */\ninterface ICustomMaskHandlerMatch {\n /**\n * Regular expression pattern to match against input.\n */\n matchPattern: RegExp;\n /**\n * Starting position in the input string.\n */\n startPosition: number;\n /**\n * Ending position in the input string.\n */\n endPosition: number;\n}\n\n/**\n * Configuration for custom mask handler application\n */\ninterface ICustomMaskHandlerApply {\n /**\n * Pattern to apply when match is found.\n */\n applyPattern: string;\n /**\n * Offset to apply to cursor position after transformation.\n */\n caretOffset: number;\n}\n\n/**\n * Custom mask handler for advanced input transformations\n */\ninterface ICustomMaskHandler {\n /**\n * Matching configuration for the handler.\n */\n match: ICustomMaskHandlerMatch;\n /**\n * Application configuration for the handler.\n */\n apply: ICustomMaskHandlerApply;\n}\n\n/**\n * Shared props for InputMask component\n */\ninterface SharedInputMaskProps {\n /**\n * The mask pattern to apply to the input.\n * - \"9\" for digits only\n * - \"a\" for letters only\n * - \"*\" for alphanumeric\n * - Any other character is treated as a fixed character\n */\n mask: string;\n /**\n * Character to display for unfilled mask positions.\n * @default \"_\"\n */\n defaultMaskCharacter?: string;\n /**\n * Controlled value for the input.\n */\n value?: string;\n /**\n * Default value for uncontrolled input.\n */\n defaultValue?: string;\n /**\n * Callback function called when input value changes.\n */\n onChange?: ChangeEventHandler<HTMLInputElement>;\n /**\n * Array of custom mask handlers for advanced transformations.\n */\n customMaskHandler?: ICustomMaskHandler[];\n}\n\ntype SpecialChange = {\n reason: \"Backspace\" | \"Delete\" | \"Edit\";\n start: number;\n end: number;\n};\n\n/**\n * Props for the InputMask component\n * @property {string} mask - The mask pattern to apply to the input (9 for digits, a for letters, * for alphanumeric)\n * @property {string} [defaultMaskCharacter] - Character to display for unfilled mask positions\n * @property {array} [customMaskHandler] - Array of custom mask handlers for advanced transformations\n * @property {object} [inputProps] - Props to pass to the input component\n * @property {ReactElement} [children] - Custom input element to be wrapped with mask functionality\n * @property {string} [data-tracking-id] - Custom tracking ID for analytics\n */\nexport type InputMaskProps = SharedInputMaskProps &\n (InputMaskPropsWithChildren | InputMaskPropsWithoutChildren) &\n DataTrackingId;\n\n/**\n * InputMask component for applying input masks and formatting to text inputs.\n *\n * @deprecated Use the TextField component with custom masking instead. Over time, we intend to release additional components with built-in masking.\n */\nexport const InputMask = forwardRef<HTMLInputElement, InputMaskProps>(\n (\n {\n children,\n mask,\n defaultMaskCharacter = \"_\",\n value,\n defaultValue,\n onChange,\n inputProps,\n \"data-tracking-id\": dataTrackingId,\n },\n ref,\n ) => {\n const [v, setV] = useOptionallyControlledState({\n controlledValue:\n value !== undefined\n ? applyMask(value, mask, defaultMaskCharacter)\n : undefined,\n defaultValue: applyMask(defaultValue || \"\", mask, defaultMaskCharacter),\n // Omitting the onChange handler here because we want to handle it ourselves (i.e. send an event instead of just the value)\n });\n const specialChange = useRef<SpecialChange | null>(null);\n\n const inputRef = useRef<HTMLInputElement>(null);\n\n const passInRef = useMergeRefs([inputRef, ref]);\n\n const currentOpenCharacterCount = useMemo(() => {\n return v.split(\"\").filter((char) => char === defaultMaskCharacter).length;\n }, [v, defaultMaskCharacter]);\n\n const fixedCharacterIndices = useMemo(() => {\n const fixedIndices: number[] = [];\n mask.split(\"\").forEach((char, i) => {\n if (!MASK_CHARS.includes(char)) {\n fixedIndices.push(i);\n }\n });\n return fixedIndices;\n }, [mask]);\n\n const moveCursorTo = (start: number, end: number = start) => {\n requestAnimationFrame(() => {\n inputRef.current?.setSelectionRange(start, end);\n });\n };\n\n const handleChange = (e: ChangeEvent<HTMLInputElement>) => {\n let newVal = applyMask(e.target.value, mask, defaultMaskCharacter);\n if (\n // A single character was backspaced\n specialChange.current?.reason === \"Backspace\" &&\n specialChange.current.start === specialChange.current.end\n ) {\n // If the character before the backspace is a fixed character, we need to remove the filled character before the fixed character\n if (fixedCharacterIndices.includes(specialChange.current.start - 1)) {\n const removeIndex = getLastFilledCharacterIndex(\n newVal.slice(0, specialChange.current.start),\n mask,\n );\n newVal = applyMask(\n newVal.slice(0, removeIndex) + newVal.slice(removeIndex + 1),\n mask,\n defaultMaskCharacter,\n );\n moveCursorTo(removeIndex, removeIndex);\n } else {\n const idx = Math.min(\n getLastFilledCharacterIndex(newVal, mask) + 1,\n specialChange.current.start - 1,\n );\n moveCursorTo(idx, idx);\n }\n } else if (\n // A single character was deleted\n specialChange.current?.reason === \"Delete\" &&\n specialChange.current.start === specialChange.current.end\n ) {\n // If the character after the delete is a fixed character, we need to remove the filled character after the fixed character\n if (fixedCharacterIndices.includes(specialChange.current.start)) {\n const removeIndex = getFirstFilledCharacterIndex(\n newVal.slice(specialChange.current.start + 1),\n mask,\n );\n newVal = applyMask(\n newVal.slice(0, removeIndex) + newVal.slice(removeIndex + 1),\n mask,\n defaultMaskCharacter,\n );\n }\n const firstFilledIdx = getFirstFilledCharacterIndex(newVal, mask);\n const targetIdx = Math.max(firstFilledIdx, specialChange.current.start);\n moveCursorTo(targetIdx, targetIdx);\n } else if (\n specialChange.current?.reason === \"Edit\" &&\n specialChange.current.start === specialChange.current.end // A single character was edited\n ) {\n const firstNonFixedIdx = getFirstNonFixedCharacterIndex(\n specialChange.current.start + 1,\n fixedCharacterIndices,\n );\n moveCursorTo(firstNonFixedIdx, firstNonFixedIdx);\n } else {\n const newIndex = getNextOpenCharacterIndex(\n newVal,\n defaultMaskCharacter,\n );\n moveCursorTo(newIndex, newIndex);\n }\n\n setV(newVal);\n if (inputRef.current) {\n inputRef.current.value = newVal;\n }\n onChange?.({ ...e, target: { ...e.target, value: newVal } });\n };\n\n const handleFocus = (e: FocusEvent<HTMLInputElement>) => {\n requestAnimationFrame(() => {\n if (\n e.target.selectionStart === null ||\n e.target.selectionStart === undefined ||\n e.target.selectionStart >= v.length\n ) {\n const newIndex = getNextOpenCharacterIndex(v, defaultMaskCharacter);\n moveCursorTo(newIndex, newIndex);\n }\n });\n inputProps?.onFocus?.(e);\n };\n\n const handleKeyDown = (e: KeyboardEvent<HTMLInputElement>) => {\n const target = e.target as HTMLInputElement;\n if (target.selectionStart === null || target.selectionEnd === null) {\n return;\n }\n if (e.key === \"Backspace\") {\n specialChange.current = {\n reason: \"Backspace\",\n start: target.selectionStart,\n end: target.selectionEnd,\n };\n } else if (e.key === \"Delete\") {\n specialChange.current = {\n reason: \"Delete\",\n start: target.selectionStart,\n end: target.selectionEnd,\n };\n } else if (currentOpenCharacterCount === 0) {\n specialChange.current = {\n reason: \"Edit\",\n start: target.selectionStart,\n end: target.selectionEnd,\n };\n } else {\n specialChange.current = null;\n }\n inputProps?.onKeyDown?.(e);\n };\n\n const handleClick = (e: MouseEvent<HTMLInputElement>) => {\n // For future use.\n e.preventDefault();\n e.stopPropagation();\n inputProps?.onClick?.(e);\n };\n\n const handleBlur = (e: FocusEvent<HTMLInputElement>) => {\n // For future use.\n e.preventDefault();\n e.stopPropagation();\n inputProps?.onBlur?.(e);\n };\n\n const mergedInputProps = {\n ...inputProps,\n ...(children && isValidElement(children) ? children.props : {}),\n value: v,\n onChange: handleChange,\n onFocus: handleFocus,\n onKeyDown: handleKeyDown,\n onClick: handleClick,\n onBlur: handleBlur,\n ref: passInRef,\n };\n\n const isInputEmpty = useMemo(() => {\n if (v.length === 0) {\n return true;\n }\n return v === applyMask(\"\", mask, defaultMaskCharacter);\n }, [v, defaultMaskCharacter, mask]);\n\n const data = {\n label:\n \"label\" in mergedInputProps\n ? childrenToString(mergedInputProps.label)\n : null,\n labelProps:\n \"labelProps\" in mergedInputProps ? mergedInputProps.labelProps : null,\n prefix: childrenToString(mergedInputProps.prefix),\n hint:\n \"hint\" in mergedInputProps\n ? childrenToString(mergedInputProps.hint)\n : null,\n description:\n \"description\" in mergedInputProps\n ? childrenToString(mergedInputProps.description)\n : null,\n size: mergedInputProps.size,\n type: mergedInputProps.type,\n };\n\n const trackingId = useTrackingId({\n name: \"InputMask\",\n data,\n hasOverride: !!dataTrackingId,\n });\n\n return children && isValidElement(children) && children.type === \"input\" ? (\n cloneElement(children, {\n ...mergedInputProps,\n \"data-tracking-id\": trackingId,\n } as InputHTMLAttributes<HTMLInputElement> & {\n \"data-tracking-id\"?: string;\n })\n ) : (\n <TextField\n data-input-empty={isInputEmpty}\n data-tracking-id={trackingId}\n {...(mergedInputProps as TextFieldProps)}\n />\n );\n },\n);\n\nInputMask.displayName = \"InputMask\";\n"],"names":[],"mappings":"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"}
|
package/dist/InputMask.js
CHANGED
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
export { I as InputMask, I as default } from './InputMask-
|
|
1
|
+
export { I as InputMask, I as default } from './InputMask-EwEJlW-t.js';
|
|
2
2
|
//# sourceMappingURL=InputMask.js.map
|
|
@@ -1,14 +1,14 @@
|
|
|
1
1
|
import { jsxs, jsx } from 'react/jsx-runtime';
|
|
2
2
|
import { forwardRef } from 'react';
|
|
3
|
-
import { C as Card } from './Card-
|
|
3
|
+
import { C as Card } from './Card-DSFuXUGk.js';
|
|
4
4
|
import { c as cx } from './index-De1g9FRV.js';
|
|
5
5
|
|
|
6
6
|
import './InteractiveCard.css';const styles = {
|
|
7
|
-
"card-wrapper": "_card-
|
|
8
|
-
"card-action": "_card-
|
|
9
|
-
"bg-stronger": "_bg-
|
|
10
|
-
"bg-strong": "_bg-
|
|
11
|
-
"card-content": "_card-
|
|
7
|
+
"card-wrapper": "_card-wrapper_1ygty_4",
|
|
8
|
+
"card-action": "_card-action_1ygty_16",
|
|
9
|
+
"bg-stronger": "_bg-stronger_1ygty_32",
|
|
10
|
+
"bg-strong": "_bg-strong_1ygty_32",
|
|
11
|
+
"card-content": "_card-content_1ygty_43"
|
|
12
12
|
};
|
|
13
13
|
|
|
14
14
|
const InteractiveCard = forwardRef(
|
|
@@ -84,4 +84,4 @@ const InteractiveCard = forwardRef(
|
|
|
84
84
|
InteractiveCard.displayName = "InteractiveCard";
|
|
85
85
|
|
|
86
86
|
export { InteractiveCard as I };
|
|
87
|
-
//# sourceMappingURL=InteractiveCard-
|
|
87
|
+
//# sourceMappingURL=InteractiveCard-CnW0m_F-.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"InteractiveCard-
|
|
1
|
+
{"version":3,"file":"InteractiveCard-CnW0m_F-.js","sources":["../src/beta/components/InteractiveCard/InteractiveCard.tsx"],"sourcesContent":["import { forwardRef } from \"react\";\nimport {\n InteractiveCardProps,\n ActionLinkProps,\n ActionButtonProps,\n} from \"./types\";\nimport { Card } from \"../../../components/Card\";\n\nimport cx from \"classnames\";\nimport styles from \"./InteractiveCard.module.scss\";\n\n/**\n * InteractiveCard component for creating clickable cards with nested interactive elements.\n *\n * Features:\n * - Clickable card area that can be a button or link\n * - Supports nested interactive elements without accessibility violations\n * - Uses sibling structure with pointer-events to avoid nested button issues\n * - Box-shadow feedback on hover and focus of any interactive element\n * - Full keyboard accessibility with proper focus management\n * - Touch-friendly with mobile support\n * - Customizable padding and background variants via contentProps\n * - WCAG AA 2.2 compliant\n * - Required ARIA labels for screen reader support\n * - Supports all Card props for styling and layout via contentProps\n *\n * @example\n * // Button card with nested actions\n * <InteractiveCard\n * wrapperProps={{ \"aria-label\": \"Kitchen Measurement 2 card\" }}\n * actionProps={{\n * \"aria-label\": \"Expand Kitchen Measurement 2\",\n * onClick: handleExpand,\n * }}\n * contentProps={{ padding: \"large\" }}\n * >\n * <Text variant=\"headline\">Kitchen Measurement 2</Text>\n * <Button>Exact Size</Button>\n * <Button>Block Size</Button>\n * </InteractiveCard>\n *\n * @example\n * // Link card with nested actions\n * <InteractiveCard\n * wrapperProps={{ \"aria-label\": \"Tommy Lee's Project card\" }}\n * actionProps={{\n * \"aria-label\": \"Navigate to Tommy Lee's Project\",\n * href: \"/project/123\",\n * }}\n * contentProps={{ padding: \"large\" }}\n * >\n * <Text variant=\"headline\">Tommy Lee's Project</Text>\n * <IconButton icon={Edit} onClick={(e) => {\n * e.preventDefault();\n * handleEdit();\n * }} />\n * </InteractiveCard>\n */\nexport const InteractiveCard = forwardRef<HTMLDivElement, InteractiveCardProps>(\n (props, ref) => {\n const {\n wrapperProps,\n actionProps,\n contentProps = {},\n children,\n \"data-interactive\": dataInteractive,\n } = props as InteractiveCardProps & {\n \"data-interactive\"?: string;\n };\n\n // Destructure className and style from wrapperProps to merge with internal values\n const {\n \"aria-label\": ariaLabel,\n className: wrapperClassName,\n style: wrapperStyle,\n ...restWrapperProps\n } = wrapperProps;\n\n // Destructure aria-label from actionProps\n const { \"aria-label\": actionAriaLabel, ...restActionProps } = actionProps;\n\n // Destructure contentProps\n const {\n padding = \"medium\",\n background,\n className: contentClassName,\n ...restContentProps\n } = contentProps;\n\n const actionClassNames = cx(styles[\"card-action\"], {\n [styles[`bg-${background}`]]: !!background,\n });\n\n const contentClassNames = cx(styles[\"card-content\"], contentClassName);\n\n const wrapperClassNames = cx(styles[\"card-wrapper\"], wrapperClassName);\n\n // Determine the interactive element type based on href presence\n const isLink = \"href\" in restActionProps;\n\n return (\n <div\n {...restWrapperProps}\n role=\"group\"\n aria-label={ariaLabel}\n className={wrapperClassNames}\n style={wrapperStyle}\n ref={ref}\n >\n {/* Interactive layer (button or link) - provides background and hover effects */}\n {isLink ? (\n <a\n {...(restActionProps as ActionLinkProps)}\n aria-label={actionAriaLabel}\n className={actionClassNames}\n data-interactive={dataInteractive}\n />\n ) : (\n <button\n {...(restActionProps as ActionButtonProps)}\n aria-label={actionAriaLabel}\n className={actionClassNames}\n data-interactive={dataInteractive}\n type=\"button\"\n />\n )}\n\n {/* Content layer - transparent card with padding */}\n <Card\n padding={padding}\n className={contentClassNames}\n {...restContentProps}\n >\n {children}\n </Card>\n </div>\n );\n },\n);\n\nInteractiveCard.displayName = \"InteractiveCard\";\n"],"names":[],"mappings":";;;;;;;;;;;;;AA0DO,MAAM,eAAA,GAAkB,UAAA;AAAA,EAC7B,CAAC,OAAO,GAAA,KAAQ;AACd,IAAA,MAAM;AAAA,MACJ,YAAA;AAAA,MACA,WAAA;AAAA,MACA,eAAe,EAAC;AAAA,MAChB,QAAA;AAAA,MACA,kBAAA,EAAoB;AAAA,KACtB,GAAI,KAAA;AAKJ,IAAA,MAAM;AAAA,MACJ,YAAA,EAAc,SAAA;AAAA,MACd,SAAA,EAAW,gBAAA;AAAA,MACX,KAAA,EAAO,YAAA;AAAA,MACP,GAAG;AAAA,KACL,GAAI,YAAA;AAGJ,IAAA,MAAM,EAAE,YAAA,EAAc,eAAA,EAAiB,GAAG,iBAAgB,GAAI,WAAA;AAG9D,IAAA,MAAM;AAAA,MACJ,OAAA,GAAU,QAAA;AAAA,MACV,UAAA;AAAA,MACA,SAAA,EAAW,gBAAA;AAAA,MACX,GAAG;AAAA,KACL,GAAI,YAAA;AAEJ,IAAA,MAAM,gBAAA,GAAmB,EAAA,CAAG,MAAA,CAAO,aAAa,CAAA,EAAG;AAAA,MACjD,CAAC,OAAO,CAAA,GAAA,EAAM,UAAU,EAAE,CAAC,GAAG,CAAC,CAAC;AAAA,KACjC,CAAA;AAED,IAAA,MAAM,iBAAA,GAAoB,EAAA,CAAG,MAAA,CAAO,cAAc,GAAG,gBAAgB,CAAA;AAErE,IAAA,MAAM,iBAAA,GAAoB,EAAA,CAAG,MAAA,CAAO,cAAc,GAAG,gBAAgB,CAAA;AAGrE,IAAA,MAAM,SAAS,MAAA,IAAU,eAAA;AAEzB,IAAA,uBACE,IAAA;AAAA,MAAC,KAAA;AAAA,MAAA;AAAA,QACE,GAAG,gBAAA;AAAA,QACJ,IAAA,EAAK,OAAA;AAAA,QACL,YAAA,EAAY,SAAA;AAAA,QACZ,SAAA,EAAW,iBAAA;AAAA,QACX,KAAA,EAAO,YAAA;AAAA,QACP,GAAA;AAAA,QAGC,QAAA,EAAA;AAAA,UAAA,MAAA,mBACC,GAAA;AAAA,YAAC,GAAA;AAAA,YAAA;AAAA,cACE,GAAI,eAAA;AAAA,cACL,YAAA,EAAY,eAAA;AAAA,cACZ,SAAA,EAAW,gBAAA;AAAA,cACX,kBAAA,EAAkB;AAAA;AAAA,WACpB,mBAEA,GAAA;AAAA,YAAC,QAAA;AAAA,YAAA;AAAA,cACE,GAAI,eAAA;AAAA,cACL,YAAA,EAAY,eAAA;AAAA,cACZ,SAAA,EAAW,gBAAA;AAAA,cACX,kBAAA,EAAkB,eAAA;AAAA,cAClB,IAAA,EAAK;AAAA;AAAA,WACP;AAAA,0BAIF,GAAA;AAAA,YAAC,IAAA;AAAA,YAAA;AAAA,cACC,OAAA;AAAA,cACA,SAAA,EAAW,iBAAA;AAAA,cACV,GAAG,gBAAA;AAAA,cAEH;AAAA;AAAA;AACH;AAAA;AAAA,KACF;AAAA,EAEJ;AACF;AAEA,eAAA,CAAgB,WAAA,GAAc,iBAAA;;;;"}
|