@servicetitan/anvil2 3.5.0 → 3.6.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/CHANGELOG.md +20 -0
- package/dist/{AiMark-D3nw58ho.js → AiMark-voHPSerQ.js} +26 -11
- package/dist/{AiMark-D3nw58ho.js.map → AiMark-voHPSerQ.js.map} +1 -1
- package/dist/AiMark.js +1 -1
- package/dist/{Alert-CSV4hRBD.js → Alert-CPe0yh6A.js} +3 -3
- package/dist/{Alert-CSV4hRBD.js.map → Alert-CPe0yh6A.js.map} +1 -1
- package/dist/Alert.js +1 -1
- package/dist/{Announcement-4w6XjLcB.js → Announcement-DU0J4111.js} +3 -3
- package/dist/{Announcement-4w6XjLcB.js.map → Announcement-DU0J4111.js.map} +1 -1
- package/dist/Announcement.js +1 -1
- package/dist/{Breadcrumbs-BkZVA_ux.js → Breadcrumbs-VzOM2nBU.js} +4 -4
- package/dist/{Breadcrumbs-BkZVA_ux.js.map → Breadcrumbs-VzOM2nBU.js.map} +1 -1
- package/dist/Breadcrumbs.js +1 -1
- package/dist/{Button-CjeF1Agb.js → Button-BNzCI47m.js} +2 -2
- package/dist/{Button-CjeF1Agb.js.map → Button-BNzCI47m.js.map} +1 -1
- package/dist/Button.js +1 -1
- package/dist/{ButtonLink-BSReBbc3.js → ButtonLink-PlW08u41.js} +2 -2
- package/dist/{ButtonLink-BSReBbc3.js.map → ButtonLink-PlW08u41.js.map} +1 -1
- package/dist/ButtonLink.js +1 -1
- package/dist/{ButtonToggle-CnOsM7-u.js → ButtonToggle-DBGc7dIn.js} +2 -2
- package/dist/{ButtonToggle-CnOsM7-u.js.map → ButtonToggle-DBGc7dIn.js.map} +1 -1
- package/dist/ButtonToggle.js +1 -1
- package/dist/{Calendar-Cw2UKiof.js → Calendar-CekTYzdT.js} +3 -3
- package/dist/{Calendar-Cw2UKiof.js.map → Calendar-CekTYzdT.js.map} +1 -1
- package/dist/{Calendar-CJaZFWmO.js → Calendar-MRUB0XU7.js} +2 -2
- package/dist/Calendar-MRUB0XU7.js.map +1 -0
- package/dist/Calendar.js +2 -2
- package/dist/{Checkbox-7KubQWJc.js → Checkbox-C3rtd-Xe.js} +4 -4
- package/dist/{Checkbox-7KubQWJc.js.map → Checkbox-C3rtd-Xe.js.map} +1 -1
- package/dist/{Checkbox-Bq2EfltF.js → Checkbox-zz9TyZWn.js} +2 -2
- package/dist/{Checkbox-Bq2EfltF.js.map → Checkbox-zz9TyZWn.js.map} +1 -1
- package/dist/Checkbox.js +1 -1
- package/dist/{Chip-yyEbwLdG.js → Chip-CxgryK86.js} +3 -3
- package/dist/{Chip-yyEbwLdG.js.map → Chip-CxgryK86.js.map} +1 -1
- package/dist/Chip.js +1 -1
- package/dist/Combobox.js +1 -1
- package/dist/{DataTable-BgD9Sh-7.js → DataTable-BpqLvU92.js} +11 -9
- package/dist/{DataTable-BgD9Sh-7.js.map → DataTable-BpqLvU92.js.map} +1 -1
- package/dist/{DateFieldRange-OlkU5oeu.js → DateFieldRange-CP7QgS6P.js} +5 -5
- package/dist/{DateFieldRange-OlkU5oeu.js.map → DateFieldRange-CP7QgS6P.js.map} +1 -1
- package/dist/DateFieldRange.js +1 -1
- package/dist/{DateFieldSingle-BGGlLAID.js → DateFieldSingle-CgMPTi1v.js} +5 -5
- package/dist/{DateFieldSingle-BGGlLAID.js.map → DateFieldSingle-CgMPTi1v.js.map} +1 -1
- package/dist/DateFieldSingle.js +1 -1
- package/dist/{DateFieldYearless-X9_F3VFM.js → DateFieldYearless-DYjvqxRb.js} +4 -4
- package/dist/{DateFieldYearless-X9_F3VFM.js.map → DateFieldYearless-DYjvqxRb.js.map} +1 -1
- package/dist/DateFieldYearless.js +1 -1
- package/dist/{DateFieldYearlessRange-CWdTbFDF.js → DateFieldYearlessRange-lQdJGOaS.js} +4 -4
- package/dist/DateFieldYearlessRange-lQdJGOaS.js.map +1 -0
- package/dist/DateFieldYearlessRange.js +1 -1
- package/dist/{DaysOfTheWeek-DfNYEwbg.js → DaysOfTheWeek-Ci-SKebP.js} +3 -3
- package/dist/{DaysOfTheWeek-DfNYEwbg.js.map → DaysOfTheWeek-Ci-SKebP.js.map} +1 -1
- package/dist/DaysOfTheWeek.js +1 -1
- package/dist/{Details-Xb49PJ-r.js → Details-DkteVZbk.js} +2 -2
- package/dist/{Details-Xb49PJ-r.js.map → Details-DkteVZbk.js.map} +1 -1
- package/dist/Details.js +1 -1
- package/dist/{Dialog-BpS3KScw.js → Dialog-BxulNN8n.js} +21 -21
- package/dist/{Dialog-BpS3KScw.js.map → Dialog-BxulNN8n.js.map} +1 -1
- package/dist/Dialog.css +32 -31
- package/dist/Dialog.js +1 -1
- package/dist/{DialogCancelButton-CIGGMaOE.js → DialogCancelButton-DmSUPuCR.js} +2 -2
- package/dist/{DialogCancelButton-CIGGMaOE.js.map → DialogCancelButton-DmSUPuCR.js.map} +1 -1
- package/dist/Dnd.js +2 -2
- package/dist/{DndHandleButton-B_Geiaeb.js → DndHandleButton-Ck5nc8w2.js} +2 -2
- package/dist/{DndHandleButton-B_Geiaeb.js.map → DndHandleButton-Ck5nc8w2.js.map} +1 -1
- package/dist/DndSort.js +2 -2
- package/dist/{Drawer-CxVIDCIB.js → Drawer-_spmOgwH.js} +4 -4
- package/dist/{Drawer-CxVIDCIB.js.map → Drawer-_spmOgwH.js.map} +1 -1
- package/dist/Drawer.js +1 -1
- package/dist/DrillDown.js +1 -1
- package/dist/{EditCard-T5mbl573.js → EditCard-ZpF032WP.js} +4 -4
- package/dist/{EditCard-T5mbl573.js.map → EditCard-ZpF032WP.js.map} +1 -1
- package/dist/EditCard.js +1 -1
- package/dist/{FieldLabel-Dfg4wEra.js → FieldLabel-Cm5A1Jcx.js} +3 -3
- package/dist/{FieldLabel-Dfg4wEra.js.map → FieldLabel-Cm5A1Jcx.js.map} +1 -1
- package/dist/FieldLabel.js +1 -1
- package/dist/{FilterBar-CA4MDEF-.js → FilterBar-CvyMubuw.js} +7 -7
- package/dist/{FilterBar-CA4MDEF-.js.map → FilterBar-CvyMubuw.js.map} +1 -1
- package/dist/FilterBar.js +1 -1
- package/dist/Icon-B4uCvMU9.js +107 -0
- package/dist/Icon-B4uCvMU9.js.map +1 -0
- package/dist/Icon.js +1 -1
- package/dist/{InputMask-C8ZAwqFi.js → InputMask-CX6XiOOm.js} +3 -3
- package/dist/{InputMask-C8ZAwqFi.js.map → InputMask-CX6XiOOm.js.map} +1 -1
- package/dist/InputMask.js +1 -1
- package/dist/{Link-DI4eVVdI.js → Link-C7dtI5K6.js} +2 -2
- package/dist/{Link-DI4eVVdI.js.map → Link-C7dtI5K6.js.map} +1 -1
- package/dist/Link.js +1 -1
- package/dist/LinkButton-C0wps8r1.js.map +1 -1
- package/dist/{ListView-BMo04Epa.js → ListView-DpveXOsN.js} +2 -2
- package/dist/{ListView-BMo04Epa.js.map → ListView-DpveXOsN.js.map} +1 -1
- package/dist/ListView.js +1 -1
- package/dist/{Listbox-BQRMsA0L.js → Listbox-Cdwaofd2.js} +21 -21
- package/dist/Listbox-Cdwaofd2.js.map +1 -0
- package/dist/Listbox.js +1 -1
- package/dist/{Menu-BAya9Qnd.js → Menu-DmEXQLXt.js} +3 -3
- package/dist/{Menu-BAya9Qnd.js.map → Menu-DmEXQLXt.js.map} +1 -1
- package/dist/Menu.js +1 -1
- package/dist/{MenuFooter-BZTsAaOz.js → MenuFooter-Ck9L599M.js} +2 -2
- package/dist/{MenuFooter-BZTsAaOz.js.map → MenuFooter-Ck9L599M.js.map} +1 -1
- package/dist/MultiSelectField.js +1 -1
- package/dist/{MultiSelectFieldSync-Cn3tNZcf.js → MultiSelectFieldSync-BHST0FEe.js} +7 -7
- package/dist/{MultiSelectFieldSync-Cn3tNZcf.js.map → MultiSelectFieldSync-BHST0FEe.js.map} +1 -1
- package/dist/MultiSelectMenu.js +1 -1
- package/dist/{MultiSelectMenuSync-FH_hXlIa.js → MultiSelectMenuSync-BaKxbMLu.js} +6 -6
- package/dist/{MultiSelectMenuSync-FH_hXlIa.js.map → MultiSelectMenuSync-BaKxbMLu.js.map} +1 -1
- package/dist/{NumberField-DdaBRyCJ.js → NumberField-CjC6KHKl.js} +5 -5
- package/dist/NumberField-CjC6KHKl.js.map +1 -0
- package/dist/NumberField.js +1 -1
- package/dist/Overflow.js.map +1 -1
- package/dist/{Page-DpUv1L7T.js → Page-BreBQ3pG.js} +11 -11
- package/dist/{Page-DpUv1L7T.js.map → Page-BreBQ3pG.js.map} +1 -1
- package/dist/Page.js +1 -1
- package/dist/{Pagination-Dm10ZvKj.js → Pagination-CmqAut6y.js} +5 -5
- package/dist/{Pagination-Dm10ZvKj.js.map → Pagination-CmqAut6y.js.map} +1 -1
- package/dist/Pagination.js +1 -1
- package/dist/{Popover-C-pv_ah6.js → Popover-CdRuNv3C.js} +2 -2
- package/dist/{Popover-C-pv_ah6.js.map → Popover-CdRuNv3C.js.map} +1 -1
- package/dist/Popover.js +1 -1
- package/dist/{ProgressBar-fwE4FkQt.js → ProgressBar-065vjsQ0.js} +3 -3
- package/dist/{ProgressBar-fwE4FkQt.js.map → ProgressBar-065vjsQ0.js.map} +1 -1
- package/dist/ProgressBar.js +1 -1
- package/dist/{Radio-DUKkDky9.js → Radio-D9w_-JYw.js} +2 -2
- package/dist/{Radio-DUKkDky9.js.map → Radio-D9w_-JYw.js.map} +1 -1
- package/dist/{Radio-BuzABI6-.js → Radio-dyLcVmUw.js} +4 -4
- package/dist/{Radio-BuzABI6-.js.map → Radio-dyLcVmUw.js.map} +1 -1
- package/dist/Radio.js +1 -1
- package/dist/{RichTextEditor-x0anoUnS.js → RichTextEditor-byoMZaJy.js} +14172 -7454
- package/dist/RichTextEditor-byoMZaJy.js.map +1 -0
- package/dist/RichTextEditor.css +42 -40
- package/dist/RichTextEditor.js +1 -1
- package/dist/{SavedFiltersButton-DgP-7upC.js → SavedFiltersButton-DlzfvW03.js} +10 -10
- package/dist/{SavedFiltersButton-DgP-7upC.js.map → SavedFiltersButton-DlzfvW03.js.map} +1 -1
- package/dist/SavedFiltersButton.js +1 -1
- package/dist/{SearchField-GMJ6vfV9.js → SearchField-B7fIOJf-.js} +2 -2
- package/dist/{SearchField-GMJ6vfV9.js.map → SearchField-B7fIOJf-.js.map} +1 -1
- package/dist/{SearchField-hjWzcHZF.js → SearchField-X4B7f23E.js} +2 -2
- package/dist/{SearchField-hjWzcHZF.js.map → SearchField-X4B7f23E.js.map} +1 -1
- package/dist/SearchField.js +1 -1
- package/dist/{SegmentedControl-fBjqazBR.js → SegmentedControl-Be6jCglV.js} +2 -2
- package/dist/{SegmentedControl-fBjqazBR.js.map → SegmentedControl-Be6jCglV.js.map} +1 -1
- package/dist/SegmentedControl.js +1 -1
- package/dist/{SelectCard-CKlBGGSW.js → SelectCard-CMSG_ba1.js} +4 -4
- package/dist/{SelectCard-CKlBGGSW.js.map → SelectCard-CMSG_ba1.js.map} +1 -1
- package/dist/SelectCard.js +1 -1
- package/dist/SelectField.js +1 -1
- package/dist/{SelectFieldLabel-_LjbBRaT.js → SelectFieldLabel-dKVBaki2.js} +2 -2
- package/dist/{SelectFieldLabel-_LjbBRaT.js.map → SelectFieldLabel-dKVBaki2.js.map} +1 -1
- package/dist/{SelectFieldSync-DUwFm6OH.js → SelectFieldSync-BqL3zlbZ.js} +6 -6
- package/dist/{SelectFieldSync-DUwFm6OH.js.map → SelectFieldSync-BqL3zlbZ.js.map} +1 -1
- package/dist/SelectMenu.js +1 -1
- package/dist/{SelectMenuSync-BZ3iXj3n.js → SelectMenuSync-BRvi9YTw.js} +6 -6
- package/dist/{SelectMenuSync-BZ3iXj3n.js.map → SelectMenuSync-BRvi9YTw.js.map} +1 -1
- package/dist/{SelectOptions-DDindDgw.js → SelectOptions-LUHWLYgJ.js} +2 -2
- package/dist/{SelectOptions-DDindDgw.js.map → SelectOptions-LUHWLYgJ.js.map} +1 -1
- package/dist/{SelectTrigger-DZ33_p3P.js → SelectTrigger-APxYfL3V.js} +3 -3
- package/dist/SelectTrigger-APxYfL3V.js.map +1 -0
- package/dist/SelectTrigger.js +1 -1
- package/dist/{SelectTriggerBase-DcP0Fsia.js → SelectTriggerBase-lYieONTb.js} +4 -4
- package/dist/{SelectTriggerBase-DcP0Fsia.js.map → SelectTriggerBase-lYieONTb.js.map} +1 -1
- package/dist/{SideNav-BNMwTm1u.js → SideNav-DoxX8Vi-.js} +2 -2
- package/dist/{SideNav-BNMwTm1u.js.map → SideNav-DoxX8Vi-.js.map} +1 -1
- package/dist/SideNav.js +1 -1
- package/dist/{Stepper-Bp5XkY2q.js → Stepper-CvaR7OoT.js} +3 -3
- package/dist/{Stepper-Bp5XkY2q.js.map → Stepper-CvaR7OoT.js.map} +1 -1
- package/dist/Stepper.js +1 -1
- package/dist/{Switch-DEDfnLGU.js → Switch-Bm3qqjd6.js} +3 -3
- package/dist/{Switch-DEDfnLGU.js.map → Switch-Bm3qqjd6.js.map} +1 -1
- package/dist/Switch.js +1 -1
- package/dist/{Tab-FOIali7o.js → Tab-Cy4G562A.js} +2 -2
- package/dist/{Tab-FOIali7o.js.map → Tab-Cy4G562A.js.map} +1 -1
- package/dist/Tab.js +1 -1
- package/dist/Table.js +1 -1
- package/dist/{Text-Dp-1foEc.js → Text-mDcQHC2U.js} +2 -2
- package/dist/{Text-Dp-1foEc.js.map → Text-mDcQHC2U.js.map} +1 -1
- package/dist/Text.js +1 -1
- package/dist/{TextField-B0iTBGho.js → TextField-CUVsDfWo.js} +3 -3
- package/dist/{TextField-B0iTBGho.js.map → TextField-CUVsDfWo.js.map} +1 -1
- package/dist/{TextField-CwJliCi7.js → TextField-WQTlqKso.js} +2 -2
- package/dist/TextField-WQTlqKso.js.map +1 -0
- package/dist/TextField.js +1 -1
- package/dist/{Textarea-CU3j_Yo0.js → Textarea-CW3KGuB9.js} +3 -3
- package/dist/{Textarea-CU3j_Yo0.js.map → Textarea-CW3KGuB9.js.map} +1 -1
- package/dist/Textarea.js +1 -1
- package/dist/{TimeField-CpMwgKDi.js → TimeField-JA3gXyS7.js} +5 -5
- package/dist/{TimeField-CpMwgKDi.js.map → TimeField-JA3gXyS7.js.map} +1 -1
- package/dist/TimeField.js +1 -1
- package/dist/Toast.js +2 -2
- package/dist/{Toaster-Djn0LfKr.js → Toaster-DMZng3Im.js} +4 -4
- package/dist/{Toaster-Djn0LfKr.js.map → Toaster-DMZng3Im.js.map} +1 -1
- package/dist/{Toaster-D75ZXkU1.js → Toaster-fPcgIF7Q.js} +2 -2
- package/dist/{Toaster-D75ZXkU1.js.map → Toaster-fPcgIF7Q.js.map} +1 -1
- package/dist/{Toolbar-DjkQ2_cV.js → Toolbar-BfGcDXgC.js} +8 -8
- package/dist/{Toolbar-DjkQ2_cV.js.map → Toolbar-BfGcDXgC.js.map} +1 -1
- package/dist/{Toolbar--psHvtjP.js → Toolbar-Dlu39v69.js} +6 -6
- package/dist/{Toolbar--psHvtjP.js.map → Toolbar-Dlu39v69.js.map} +1 -1
- package/dist/Toolbar.js +2 -2
- package/dist/{ToolbarButtonToggle-D62XxVp0.js → ToolbarButtonToggle-3xbnm1Qr.js} +2 -2
- package/dist/{ToolbarButtonToggle-D62XxVp0.js.map → ToolbarButtonToggle-3xbnm1Qr.js.map} +1 -1
- package/dist/TreeSelectField.js +1 -1
- package/dist/{TreeSelectFieldSync-DR0Tzn2b.js → TreeSelectFieldSync-CdtC8d3Q.js} +6 -6
- package/dist/{TreeSelectFieldSync-DR0Tzn2b.js.map → TreeSelectFieldSync-CdtC8d3Q.js.map} +1 -1
- package/dist/TreeSelectMenu.js +1 -1
- package/dist/{TreeSelectMenuSync-B8GmAstR.js → TreeSelectMenuSync-CPuQWUNU.js} +5 -5
- package/dist/{TreeSelectMenuSync-B8GmAstR.js.map → TreeSelectMenuSync-CPuQWUNU.js.map} +1 -1
- package/dist/{TypeaheadTextField-N_6q6ojK.js → TypeaheadTextField-BkLECKZY.js} +3 -3
- package/dist/TypeaheadTextField-BkLECKZY.js.map +1 -0
- package/dist/TypeaheadTextField.js +1 -1
- package/dist/{YearlessDateInputWithPicker-w3VGYELR.js → YearlessDateInputWithPicker-Bd8JnTaZ.js} +3 -3
- package/dist/{YearlessDateInputWithPicker-w3VGYELR.js.map → YearlessDateInputWithPicker-Bd8JnTaZ.js.map} +1 -1
- package/dist/beta.js +16 -16
- package/dist/{bulkActionTypes-wU7Cby5y.js → bulkActionTypes-DPC382hi.js} +2 -2
- package/dist/{bulkActionTypes-wU7Cby5y.js.map → bulkActionTypes-DPC382hi.js.map} +1 -1
- package/dist/{filter-state-CSA3wjAR.js → filter-state-BdfBSXYO.js} +23 -23
- package/dist/{filter-state-CSA3wjAR.js.map → filter-state-BdfBSXYO.js.map} +1 -1
- package/dist/{index-BN9SK9L3.js → index-B7BIlotN.js} +289 -1074
- package/dist/index-B7BIlotN.js.map +1 -0
- package/dist/{index-Bg9IAYMO.js → index-SZMmvI3D.js} +2 -2
- package/dist/{index-Bg9IAYMO.js.map → index-SZMmvI3D.js.map} +1 -1
- package/dist/index.js +54 -54
- package/dist/src/beta/components/Calendar/Calendar.d.ts +19 -0
- package/dist/src/beta/components/RichTextEditor/RichTextEditor.d.ts +4 -2
- package/dist/src/beta/components/RichTextEditor/internal/RichTextEditorProvider.d.ts +1 -1
- package/dist/src/beta/components/RichTextEditor/internal/extensions/SafeImageExtension.d.ts +13 -0
- package/dist/src/beta/components/RichTextEditor/internal/useRichTextEditor.d.ts +2 -2
- package/dist/src/beta/components/RichTextEditor/types.d.ts +42 -1
- package/dist/src/beta/components/TypeaheadTextField/TypeaheadTextField.d.ts +19 -0
- package/dist/src/components/DateFieldRange/DateFieldRange.d.ts +21 -0
- package/dist/src/components/DateFieldSingle/DateFieldSingle.d.ts +20 -0
- package/dist/src/components/DateFieldYearlessRange/DateFieldYearlessRange.d.ts +19 -0
- package/dist/src/components/FieldLabel/FieldLabel.d.ts +36 -0
- package/dist/src/components/LinkButton/LinkButton.d.ts +13 -0
- package/dist/src/components/Listbox/Listbox.d.ts +3 -3
- package/dist/src/components/NumberField/NumberField.d.ts +21 -0
- package/dist/src/components/Overflow/Overflow.d.ts +22 -0
- package/dist/src/components/SelectTrigger/SelectTrigger.d.ts +19 -0
- package/dist/src/components/TextField/TextField.d.ts +14 -0
- package/dist/src/internal/components/Popover/internal/PopoverContext.d.ts +4 -0
- package/dist/src/internal/utils/index.d.ts +1 -0
- package/dist/src/internal/utils/uniquifySvgDomIds.d.ts +12 -0
- package/dist/{stripInlineMarkdown-_rZx_gXG.js → stripInlineMarkdown-BZzgG-Zm.js} +2 -2
- package/dist/{stripInlineMarkdown-_rZx_gXG.js.map → stripInlineMarkdown-BZzgG-Zm.js.map} +1 -1
- package/dist/{syncFilterUtils-CpDXQtFA.js → syncFilterUtils-Cec5y3hY.js} +5 -5
- package/dist/{syncFilterUtils-CpDXQtFA.js.map → syncFilterUtils-Cec5y3hY.js.map} +1 -1
- package/dist/{treeSync-Dcq1ntVm.js → treeSync-oC-VZpP0.js} +4 -4
- package/dist/{treeSync-Dcq1ntVm.js.map → treeSync-oC-VZpP0.js.map} +1 -1
- package/dist/{useAdaptiveView-B8-BkcBX.js → useAdaptiveView-AvsDkChF.js} +5 -5
- package/dist/{useAdaptiveView-B8-BkcBX.js.map → useAdaptiveView-AvsDkChF.js.map} +1 -1
- package/dist/{useDrilldown-DmILG6sb.js → useDrilldown-PmrZ4BXn.js} +3 -3
- package/dist/{useDrilldown-DmILG6sb.js.map → useDrilldown-PmrZ4BXn.js.map} +1 -1
- package/dist/{useInfiniteCombobox-BfM3muPW.js → useInfiniteCombobox-C78WQZx4.js} +5 -5
- package/dist/{useInfiniteCombobox-BfM3muPW.js.map → useInfiniteCombobox-C78WQZx4.js.map} +1 -1
- package/package.json +17 -16
- package/dist/Calendar-CJaZFWmO.js.map +0 -1
- package/dist/DateFieldYearlessRange-CWdTbFDF.js.map +0 -1
- package/dist/Icon-BEwHECSM.js +0 -56
- package/dist/Icon-BEwHECSM.js.map +0 -1
- package/dist/Listbox-BQRMsA0L.js.map +0 -1
- package/dist/NumberField-DdaBRyCJ.js.map +0 -1
- package/dist/RichTextEditor-x0anoUnS.js.map +0 -1
- package/dist/SelectTrigger-DZ33_p3P.js.map +0 -1
- package/dist/TextField-CwJliCi7.js.map +0 -1
- package/dist/TypeaheadTextField-N_6q6ojK.js.map +0 -1
- package/dist/index-BN9SK9L3.js.map +0 -1
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@servicetitan/anvil2",
|
|
3
|
-
"version": "3.
|
|
3
|
+
"version": "3.6.0",
|
|
4
4
|
"type": "module",
|
|
5
5
|
"types": "./dist/src/index.d.ts",
|
|
6
6
|
"main": "./dist/index.js",
|
|
@@ -46,20 +46,21 @@
|
|
|
46
46
|
"@servicetitan/anvil-fonts": ">=14",
|
|
47
47
|
"@tanstack/react-table": "^8.21.3",
|
|
48
48
|
"@tanstack/react-virtual": "^3.13.12",
|
|
49
|
-
"@tiptap/core": "^3.
|
|
50
|
-
"@tiptap/extension-drag-handle-react": "^3.
|
|
51
|
-
"@tiptap/extension-file-handler": "^3.
|
|
52
|
-
"@tiptap/extension-image": "^3.
|
|
53
|
-
"@tiptap/extension-mention": "^3.
|
|
54
|
-
"@tiptap/extension-placeholder": "^3.
|
|
55
|
-
"@tiptap/extension-task-item": "^3.
|
|
56
|
-
"@tiptap/extension-task-list": "^3.
|
|
57
|
-
"@tiptap/extension-text-align": "^3.
|
|
58
|
-
"@tiptap/extension-text-style": "^3.
|
|
59
|
-
"@tiptap/extension-youtube": "^3.
|
|
60
|
-
"@tiptap/
|
|
61
|
-
"@tiptap/
|
|
62
|
-
"@tiptap/
|
|
49
|
+
"@tiptap/core": "^3.27.3",
|
|
50
|
+
"@tiptap/extension-drag-handle-react": "^3.27.3",
|
|
51
|
+
"@tiptap/extension-file-handler": "^3.27.3",
|
|
52
|
+
"@tiptap/extension-image": "^3.27.3",
|
|
53
|
+
"@tiptap/extension-mention": "^3.27.3",
|
|
54
|
+
"@tiptap/extension-placeholder": "^3.27.3",
|
|
55
|
+
"@tiptap/extension-task-item": "^3.27.3",
|
|
56
|
+
"@tiptap/extension-task-list": "^3.27.3",
|
|
57
|
+
"@tiptap/extension-text-align": "^3.27.3",
|
|
58
|
+
"@tiptap/extension-text-style": "^3.27.3",
|
|
59
|
+
"@tiptap/extension-youtube": "^3.27.3",
|
|
60
|
+
"@tiptap/markdown": "3.27.3",
|
|
61
|
+
"@tiptap/pm": "^3.27.3",
|
|
62
|
+
"@tiptap/react": "^3.27.3",
|
|
63
|
+
"@tiptap/starter-kit": "^3.27.3",
|
|
63
64
|
"@types/big.js": "^6.2.2",
|
|
64
65
|
"big.js": "^7.0.1",
|
|
65
66
|
"classnames": "^2.5.1",
|
|
@@ -107,8 +108,8 @@
|
|
|
107
108
|
"commander": "^12.1.0",
|
|
108
109
|
"happy-dom": "^20.0.2",
|
|
109
110
|
"mdast-util-to-string": "^4.0.0",
|
|
110
|
-
"postcss": "^8.5.6",
|
|
111
111
|
"playwright": "^1.52.0",
|
|
112
|
+
"postcss": "^8.5.6",
|
|
112
113
|
"react": "18.2.0",
|
|
113
114
|
"react-dom": "18.2.0",
|
|
114
115
|
"remark-gfm": "^4.0.0",
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"Calendar-CJaZFWmO.js","sources":["../src/beta/components/Calendar/Calendar.tsx"],"sourcesContent":["import {\n Calendar as StableCalendar,\n CalendarProps as StableCalendarProps,\n} from \"../../../components\";\nimport { CalendarBetaPropsContext } from \"./CalendarBetaPropsContext\";\n\nexport interface CalendarBetaProps {\n dateMetadata?: {\n date: string;\n context: string;\n }[];\n onMonthView?: ({ month, year }: { month: number; year: number }) => void;\n}\n\nexport const Calendar = (props: CalendarBetaProps & StableCalendarProps) => {\n const { dateMetadata, onMonthView, ...stableProps } = props;\n return (\n <CalendarBetaPropsContext.Provider value={{ dateMetadata, onMonthView }}>\n <StableCalendar {...stableProps} />\n </CalendarBetaPropsContext.Provider>\n );\n};\n"],"names":["StableCalendar"],"mappings":";;;AAcO,MAAM,QAAA,GAAW,CAAC,KAAA,KAAmD;AAC1E,EAAA,MAAM,EAAE,YAAA,EAAc,WAAA,EAAa,GAAG,aAAY,GAAI,KAAA;AACtD,EAAA,uBACE,GAAA,CAAC,wBAAA,CAAyB,QAAA,EAAzB,EAAkC,KAAA,EAAO,EAAE,YAAA,EAAc,WAAA,EAAY,EACpE,QAAA,kBAAA,GAAA,CAACA,UAAA,EAAA,EAAgB,GAAG,aAAa,CAAA,EACnC,CAAA;AAEJ;;;;"}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"DateFieldYearlessRange-CWdTbFDF.js","sources":["../../hammer-icon/mdi/filled/arrow_forward.svg","../src/components/DateFieldYearlessRange/DateFieldYearlessRange.tsx"],"sourcesContent":["import * as React from \"react\";\nconst SvgArrowForward = (props) => /* @__PURE__ */ React.createElement(\"svg\", { xmlns: \"http://www.w3.org/2000/svg\", width: \"1em\", height: \"1em\", viewBox: \"0 0 24 24\", ...props }, /* @__PURE__ */ React.createElement(\"path\", { d: \"m12 4-1.41 1.41L16.17 11H4v2h12.17l-5.58 5.59L12 20l8-8z\" }));\nexport default SvgArrowForward;\n","import { ReactElement, isValidElement, useId } from \"react\";\nimport cx from \"classnames\";\nimport textFieldStyles from \"../TextField/TextField.module.scss\";\nimport dateFieldYearlessRangeStyles from \"./DateFieldYearlessRange.module.scss\";\nimport { Helper, HelperProps } from \"../../internal/components\";\nimport { warnDeprecatedErrorUsage } from \"../FieldMessage\";\nimport { LayoutUtilProps, Size } from \"../../types\";\nimport {\n useLayoutPropsUtil,\n useOptionallyControlledState,\n} from \"../../internal/hooks\";\nimport FieldLabel, { FieldLabelProps } from \"../FieldLabel\";\nimport { YearlessDate, YearlessDateMode } from \"../DateFieldYearless/types\";\nimport Icon from \"../Icon\";\nimport ArrowForward from \"@servicetitan/hammer-icon/mdi/filled/arrow_forward.svg\";\nimport { YearlessDateInputWithPicker } from \"../DateFieldYearless/internal/YearlessDateInputWithPicker\";\n\nexport type DateFieldYearlessRangeValue = {\n startDate: YearlessDate | null;\n endDate: YearlessDate | null;\n};\n\nexport type DateFieldYearlessRangeChange = {\n startDate: YearlessDate | null;\n endDate: YearlessDate | null;\n};\n\nexport type DateFieldYearlessRangeChangeHandler = (\n change: DateFieldYearlessRangeChange,\n) => void;\n\nexport type DateFieldYearlessRangeProps = {\n /**\n * The controlled value of the date field\n */\n value?: DateFieldYearlessRangeValue;\n /**\n * The default value for uncontrolled usage\n */\n defaultValue?: DateFieldYearlessRangeValue;\n /**\n * The function to call when the date value changes\n */\n onChange?: DateFieldYearlessRangeChangeHandler;\n /**\n * The date format mode (mm/dd or dd/mm)\n */\n mode?: YearlessDateMode;\n /**\n * Whether the field is required\n */\n required?: boolean;\n /**\n * Whether the picker is disabled\n */\n disablePicker?: boolean;\n /**\n * Whether to disable the hint\n */\n disableHint?: boolean;\n /**\n * Error state for the field. Pass `true` to indicate error styling without a message.\n * Pass a string, string[], or ReactElement (deprecated) for error messages.\n */\n error?: boolean | string | ReactElement | string[];\n /**\n * Label for the field group. Always required for accessibility.\n */\n label: string;\n /**\n * When `true`, hides the visible legend while keeping it accessible to screen readers.\n * @default false\n */\n hideLabel?: boolean;\n size?: Extract<Size, \"small\" | \"medium\" | \"large\">;\n description?: HelperProps[\"description\"];\n /**\n * @deprecated No longer used. Error messages always use `aria-live=\"assertive\"`.\n */\n errorAriaLive?: HelperProps[\"errorAriaLive\"];\n /**\n * Warning message(s) to display. Supports a single string or an array of strings.\n */\n warning?: string | string[];\n disabled?: boolean;\n onFocus?: (event: React.FocusEvent) => void;\n onBlur?: (event: React.FocusEvent) => void;\n id?: string;\n startLabel?: string;\n endLabel?: string;\n legendProps?: Omit<FieldLabelProps, \"el\">;\n moreInfo?: FieldLabelProps[\"moreInfo\"];\n} & LayoutUtilProps;\n\nexport const DateFieldYearlessRange = (props: DateFieldYearlessRangeProps) => {\n const { layoutStyles, componentProps } = useLayoutPropsUtil(props);\n const {\n label,\n moreInfo,\n size,\n hideLabel = false,\n required,\n id: idProp,\n legendProps,\n errorAriaLive: _errorAriaLive,\n onFocus: onFocusProp,\n onBlur: onBlurProp,\n error,\n warning,\n disabled,\n disableHint,\n description,\n mode = \"mm/dd\",\n startLabel = \"Start date\",\n endLabel = \"End date\",\n disablePicker,\n } = componentProps;\n\n const [value, setValue] =\n useOptionallyControlledState<DateFieldYearlessRangeValue>({\n controlledValue: props.value,\n defaultValue: props.defaultValue,\n onChange: props.onChange,\n });\n\n const labelUid = useId();\n const id = idProp ?? labelUid;\n const helperUid = useId();\n const moreInfoUid = useId();\n\n warnDeprecatedErrorUsage(\"DateFieldYearlessRange\", error);\n\n const errorMessages =\n typeof error === \"boolean\" || error === undefined ? undefined : error;\n\n const handleStartDateChange = (startDate: YearlessDate | null) => {\n setValue({\n ...value,\n startDate,\n });\n };\n\n const handleEndDateChange = (endDate: YearlessDate | null) => {\n setValue({\n ...value,\n endDate,\n });\n };\n\n const ariaDescribedBy = [helperUid, moreInfo && moreInfoUid]\n .filter(Boolean)\n .join(\" \");\n\n return (\n <fieldset\n className={cx(\n textFieldStyles[\"textfield\"],\n dateFieldYearlessRangeStyles[\"range-root\"],\n )}\n data-anv=\"date-field-yearless-range\"\n style={layoutStyles}\n >\n <FieldLabel\n el=\"legend\"\n moreInfo={moreInfo}\n moreInfoId={moreInfo ? moreInfoUid : undefined}\n required={required}\n {...legendProps}\n className={cx(\n legendProps?.className,\n hideLabel ? dateFieldYearlessRangeStyles[\"sr-only\"] : undefined,\n )}\n >\n {label}\n </FieldLabel>\n <div className={dateFieldYearlessRangeStyles[\"range-row\"]}>\n <FieldLabel\n htmlFor={id + \"-\" + \"start\"}\n className={dateFieldYearlessRangeStyles[\"sr-only\"]}\n >\n {startLabel}\n </FieldLabel>\n <YearlessDateInputWithPicker\n id={id + \"-\" + \"start\"}\n size={size}\n error={!!error}\n required={required}\n disabled={disabled}\n mode={mode}\n value={value?.startDate}\n onChange={(change) => handleStartDateChange(change.value)}\n aria-describedby={ariaDescribedBy}\n disablePicker={disablePicker}\n onFocus={onFocusProp}\n onBlur={onBlurProp}\n />\n <Icon\n svg={ArrowForward}\n className={dateFieldYearlessRangeStyles[\"range-arrow\"]}\n />\n <FieldLabel\n htmlFor={id + \"-\" + \"end\"}\n className={dateFieldYearlessRangeStyles[\"sr-only\"]}\n >\n {endLabel}\n </FieldLabel>\n <YearlessDateInputWithPicker\n id={id + \"-\" + \"end\"}\n size={size}\n error={!!error}\n required={required}\n disabled={disabled}\n mode={mode}\n value={value?.endDate}\n onChange={(change) => handleEndDateChange(change.value)}\n aria-labelledby={labelUid}\n aria-describedby={ariaDescribedBy}\n disablePicker={disablePicker}\n onFocus={onFocusProp}\n onBlur={onBlurProp}\n />\n </div>\n {!disableHint || errorMessages || warning || description ? (\n <Helper\n id={helperUid}\n hint={disableHint ? undefined : `Format: ${mode}`}\n showCounter={false}\n error={\n typeof errorMessages === \"string\" || Array.isArray(errorMessages)\n ? errorMessages\n : undefined\n }\n warning={warning}\n errorMessage={\n isValidElement(errorMessages) ? errorMessages : undefined\n }\n description={description}\n />\n ) : null}\n </fieldset>\n );\n};\n"],"names":["ArrowForward"],"mappings":"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"}
|
package/dist/Icon-BEwHECSM.js
DELETED
|
@@ -1,56 +0,0 @@
|
|
|
1
|
-
import { jsx } from 'react/jsx-runtime';
|
|
2
|
-
import { forwardRef } from 'react';
|
|
3
|
-
import { c as cx } from './index-De1g9FRV.js';
|
|
4
|
-
import { u as useLayoutPropsUtil } from './useLayoutPropsUtil-DjqeAJZ9.js';
|
|
5
|
-
|
|
6
|
-
import './Icon.css';const icon = "_icon_1901s_1";
|
|
7
|
-
const small = "_small_1901s_37";
|
|
8
|
-
const medium = "_medium_1901s_41";
|
|
9
|
-
const large = "_large_1901s_45";
|
|
10
|
-
const xlarge = "_xlarge_1901s_49";
|
|
11
|
-
const styles = {
|
|
12
|
-
icon: icon,
|
|
13
|
-
small: small,
|
|
14
|
-
medium: medium,
|
|
15
|
-
large: large,
|
|
16
|
-
xlarge: xlarge
|
|
17
|
-
};
|
|
18
|
-
|
|
19
|
-
const Icon = forwardRef((props, ref) => {
|
|
20
|
-
const { layoutStyles, componentProps } = useLayoutPropsUtil(props);
|
|
21
|
-
const {
|
|
22
|
-
size = "medium",
|
|
23
|
-
className,
|
|
24
|
-
svg: Svg2,
|
|
25
|
-
inherit,
|
|
26
|
-
style,
|
|
27
|
-
color,
|
|
28
|
-
...rest
|
|
29
|
-
} = componentProps;
|
|
30
|
-
const iconClassNames = cx([styles["icon"]], className, {
|
|
31
|
-
[styles["small"]]: size === "small",
|
|
32
|
-
[styles["medium"]]: size === "medium",
|
|
33
|
-
[styles["large"]]: size === "large",
|
|
34
|
-
[styles["xlarge"]]: size === "xlarge"
|
|
35
|
-
});
|
|
36
|
-
const styleCombined = {
|
|
37
|
-
color: color ? color : inherit ? "inherit" : void 0,
|
|
38
|
-
...style,
|
|
39
|
-
...layoutStyles
|
|
40
|
-
};
|
|
41
|
-
return /* @__PURE__ */ jsx(
|
|
42
|
-
"span",
|
|
43
|
-
{
|
|
44
|
-
className: iconClassNames,
|
|
45
|
-
"data-anv": "icon",
|
|
46
|
-
style: styleCombined,
|
|
47
|
-
ref,
|
|
48
|
-
...rest,
|
|
49
|
-
children: /* @__PURE__ */ jsx(Svg2, {})
|
|
50
|
-
}
|
|
51
|
-
);
|
|
52
|
-
});
|
|
53
|
-
Icon.displayName = "Icon";
|
|
54
|
-
|
|
55
|
-
export { Icon as I };
|
|
56
|
-
//# sourceMappingURL=Icon-BEwHECSM.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"Icon-BEwHECSM.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;;;;"}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"Listbox-BQRMsA0L.js","sources":["../src/internal/hooks/useTypeAhead/useTypeAhead.tsx","../src/components/Listbox/internal/ListboxContext.tsx","../src/components/Listbox/internal/ListboxOptionGroupContext.tsx","../src/components/Listbox/ListboxOption.tsx","../src/components/Listbox/internal/utils.ts","../src/components/Listbox/ListboxOptionGroup.tsx","../src/components/Listbox/Listbox.tsx"],"sourcesContent":["import { useState, useEffect } from \"react\";\n\n/**\n * Custom hook for implementing type-ahead functionality.\n *\n * Features:\n * - Accumulates typed characters with automatic timeout clearing\n * - Provides type-ahead string for keyboard navigation\n * - Automatically resets after specified timeout period\n * - Supports customizable timeout duration\n * - Uses useEffect for automatic cleanup\n * - Optimized for keyboard navigation in lists and menus\n *\n * @param timeout - Timeout duration in milliseconds before clearing the type-ahead string\n * @returns Tuple containing current type-ahead string and function to update it\n */\nexport const useTypeAhead = (\n timeout = 750,\n): [string, (char: string) => void] => {\n const [typeAhead, setTypeAhead] = useState(\"\");\n\n useEffect(() => {\n const timer = setTimeout(() => setTypeAhead(\"\"), timeout);\n return () => clearTimeout(timer);\n }, [typeAhead, timeout]);\n\n const updateTypeAhead = (char: string) => setTypeAhead((prev) => prev + char);\n\n return [typeAhead, updateTypeAhead];\n};\n","import { createContext, Dispatch, SetStateAction, useContext } from \"react\";\nimport { ListboxProps } from \"../Listbox\";\n\n/**\n * Context properties for the Listbox component\n * @template T - The type of additional properties for items\n */\nexport type ListboxContextProps<T> = {\n /** ID of the currently focused option */\n currentFocus?: string;\n /** Function to set the currently focused option */\n setCurrentFocus: Dispatch<\n SetStateAction<ListboxContextProps<T>[\"currentFocus\"]>\n >;\n /** Currently selected option(s) */\n selected: ListboxProps<T>[\"defaultSelected\"];\n /** Function to set the selected option(s) */\n setSelected: Dispatch<SetStateAction<ListboxContextProps<T>[\"selected\"]>>;\n /** List of available option elements */\n options: NodeListOf<HTMLElement> | undefined;\n /** Current selection mode */\n selectionMode: Exclude<ListboxProps<T>[\"selectionMode\"], undefined>;\n /** Callback when selection changes */\n onSelectionChange: ListboxProps<T>[\"onSelectionChange\"];\n /** Whether auto-select on focus is disabled */\n disableAutoSelectOnFocus: boolean;\n /** Array of items if using items prop */\n items?: unknown[];\n /** Whether the component is controlled */\n controlled?: boolean;\n};\n\n/**\n * Context for sharing listbox state between components\n */\n\n// eslint-disable-next-line @typescript-eslint/no-explicit-any\nexport const ListboxContext = createContext<ListboxContextProps<any> | null>(\n null,\n);\n\n/**\n * Hook to access the listbox context\n * @returns The listbox context\n * @throws Error if used outside of a Listbox component\n */\nexport const useListbox = () => {\n const context = useContext(ListboxContext);\n\n if (context == null) {\n throw new Error(\"useListbox must be wrapped in <Listbox />\");\n }\n\n return context;\n};\n","import { createContext } from \"react\";\n\ntype ListboxOptionGroupContextProps = {\n disabled?: boolean;\n};\n\nexport const ListboxOptionGroupContext =\n createContext<ListboxOptionGroupContextProps>({});\n","import {\n ComponentPropsWithoutRef,\n forwardRef,\n useContext,\n MouseEvent,\n} from \"react\";\nimport { Icon } from \"../Icon\";\nimport { Flex, FlexProps } from \"../Flex\";\nimport Check from \"@servicetitan/hammer-icon/mdi/round/check.svg\";\nimport { DataTrackingId } from \"../../types\";\nimport { useListbox } from \"./internal/ListboxContext\";\nimport { useTrackingId } from \"../../hooks\";\nimport { ListboxOptionGroupContext } from \"./internal/ListboxOptionGroupContext\";\n\nimport cx from \"classnames\";\nimport styles from \"./Listbox.module.scss\";\n\ntype ItemType = {\n label: string;\n [key: string]: unknown;\n};\n\n/**\n * Props for the ListboxOption component\n * @extends ComponentPropsWithoutRef<\"li\">\n */\nexport type ListboxOptionProps = ComponentPropsWithoutRef<\"li\"> & {\n /** The value of the option */\n value?: string;\n /** Whether the option is disabled */\n disabled?: boolean;\n /** Flex alignment for items */\n alignItems?: FlexProps[\"alignItems\"];\n /** Flex justification for items */\n justifyItems?: FlexProps[\"justifyItems\"];\n /** Flex alignment for content */\n alignContent?: FlexProps[\"alignContent\"];\n /** Flex justification for content */\n justifyContent?: FlexProps[\"justifyContent\"];\n /** Flex place-items property */\n placeItems?: FlexProps[\"placeItems\"];\n /** Flex place-content property */\n placeContent?: FlexProps[\"placeContent\"];\n} & (\n | {\n /** The item object when using items prop */\n item: ItemType;\n /** The display label for the option (optional if item is provided) */\n label?: string;\n }\n | {\n /** The display label for the option */\n label: string;\n /** No item object when using label directly */\n item?: never;\n }\n ) &\n DataTrackingId;\n\n/**\n * ListboxOption component for individual selectable items within a listbox.\n *\n * Features:\n * - Displays selectable options with proper ARIA attributes\n * - Supports disabled state for non-selectable options\n * - Keyboard navigation support\n * - Accessible with screen reader support\n *\n * @example\n * <ListboxOption value=\"option1\" label=\"Option 1\" />\n */\nexport const ListboxOption = forwardRef<HTMLLIElement, ListboxOptionProps>(\n (props, ref) => {\n const {\n className,\n children,\n disabled: disabledProp,\n onClick,\n label: labelProp,\n item,\n value,\n alignItems,\n justifyItems,\n alignContent,\n justifyContent,\n placeItems,\n placeContent,\n ...rest\n } = props;\n\n const {\n setCurrentFocus,\n currentFocus,\n selected,\n setSelected,\n selectionMode,\n onSelectionChange,\n controlled,\n } = useListbox();\n\n const label = labelProp || item?.label || \"\";\n\n const { disabled: groupDisabled } = useContext(ListboxOptionGroupContext);\n const disabled =\n groupDisabled || disabledProp || (item?.disabled as boolean) || false;\n\n const isSelected = () => {\n if (selectionMode === \"single\") {\n if (item) {\n return selected?.label === label;\n }\n return selected === label;\n }\n if (selectionMode === \"multiple\") {\n const selectedItems = Array.isArray(selected)\n ? selected\n : selected\n ? [selected]\n : [];\n if (item) {\n return selectedItems.some(\n (selectedItem) => selectedItem.label === label,\n );\n }\n return selectedItems.includes(label);\n }\n return false;\n };\n\n const onClickHandler = (e: MouseEvent<HTMLLIElement>) => {\n if (disabled) return;\n\n onClick?.(e);\n setCurrentFocus?.(label);\n\n if (selectionMode === \"single\") {\n if (\n (!item && selected === label) ||\n (item && selected?.label === label)\n ) {\n if (!controlled) {\n setSelected?.(undefined);\n }\n onSelectionChange?.(undefined);\n return;\n }\n\n if (item) {\n if (!controlled) {\n setSelected?.(item);\n }\n onSelectionChange?.(item);\n return;\n }\n\n if (!item) {\n if (!controlled) {\n setSelected?.(label);\n }\n onSelectionChange?.(label);\n return;\n }\n }\n\n if (selectionMode === \"multiple\") {\n const selectedItems = Array.isArray(selected)\n ? selected\n : selected\n ? [selected]\n : [];\n if (\n item &&\n selectedItems.some((selectedItem) => selectedItem.label === label)\n ) {\n const selectedItemsWithItemRemoved = selectedItems.filter(\n (selectedItem) => selectedItem.label !== label,\n );\n setSelected?.(selectedItemsWithItemRemoved);\n onSelectionChange?.(selectedItemsWithItemRemoved);\n return;\n }\n\n if (!item && selectedItems.includes(label)) {\n const selectedItemsWithItemRemoved = selectedItems.filter(\n (selectedItem) => selectedItem !== label,\n );\n setSelected?.(selectedItemsWithItemRemoved);\n onSelectionChange?.(selectedItemsWithItemRemoved);\n return;\n }\n\n if (item) {\n const selectedItemsWithItemAdded = [...selectedItems, item];\n setSelected?.(selectedItemsWithItemAdded);\n onSelectionChange?.(selectedItemsWithItemAdded);\n return;\n }\n\n if (!item) {\n const selectedItemsWithItemAdded = [...selectedItems, label];\n setSelected?.(selectedItemsWithItemAdded);\n onSelectionChange?.(selectedItemsWithItemAdded);\n return;\n }\n }\n };\n\n const data = {\n value: props.value,\n label: \"item\" in props ? props.item?.label : props.label,\n };\n\n const trackingId = useTrackingId({\n name: \"ListboxOption\",\n data,\n hasOverride: !!props[\"data-tracking-id\"],\n });\n\n const ListboxOptionClassNames = cx(styles[\"option\"], className, {});\n\n return (\n <li // eslint-disable-line jsx-a11y/click-events-have-key-events\n data-tracking-id={trackingId}\n className={ListboxOptionClassNames}\n data-anv=\"listbox-option\"\n role=\"option\"\n aria-disabled={disabled}\n data-focused={currentFocus === label}\n aria-selected={isSelected()}\n id={label}\n onClick={onClickHandler}\n ref={ref}\n value={value ?? label}\n {...rest}\n >\n <Flex\n className={styles[\"children\"]}\n grow={1}\n shrink={1}\n alignItems={alignItems}\n justifyItems={justifyItems}\n alignContent={alignContent}\n justifyContent={justifyContent}\n placeItems={placeItems}\n placeContent={placeContent}\n >\n {children}\n </Flex>\n <Icon\n aria-hidden\n svg={Check}\n inherit\n className={styles[\"icon\"]}\n style={{ opacity: isSelected() ? 1 : 0 }}\n />\n </li>\n );\n },\n);\n\nListboxOption.displayName = \"ListboxOption\";\n","import { KeyboardEvent } from \"react\";\nimport { ListboxContextProps } from \"./ListboxContext\";\n\nexport const scrollToOption = (node: HTMLElement | undefined) => {\n node?.scrollIntoView({\n block: \"nearest\",\n inline: \"center\",\n });\n};\n\nexport const onListboxKeyDown = (\n e: KeyboardEvent<HTMLUListElement>,\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n context: ListboxContextProps<any>,\n) => {\n const {\n options,\n currentFocus,\n selectionMode,\n onSelectionChange,\n selected,\n setSelected,\n items,\n controlled,\n } = context;\n\n if (!options) return;\n\n const currentNode = Array.from(options).find(\n (node) => node.id === currentFocus,\n ) as HTMLElement;\n\n const currentIndex = Array.from(options).indexOf(currentNode);\n\n switch (e.code) {\n case \"ArrowDown\":\n e.preventDefault();\n if (currentIndex === options.length - 1) {\n goTo(options[0], 0, context);\n } else {\n goTo(options[currentIndex + 1], currentIndex + 1, context);\n }\n break;\n case \"ArrowUp\":\n e.preventDefault();\n if (currentIndex === 0) {\n goTo(options[options.length - 1], options.length - 1, context);\n } else {\n goTo(options[currentIndex - 1], currentIndex - 1, context);\n }\n break;\n case \"Home\":\n e.preventDefault();\n goTo(options[0], 0, context);\n break;\n case \"End\":\n e.preventDefault();\n goTo(options[options.length - 1], options.length - 1, context);\n break;\n\n case \"Enter\":\n case \"Space\":\n e.preventDefault();\n\n if (!currentFocus) return;\n if (controlled) return;\n\n if (selectionMode === \"single\") {\n if (\n typeof selected === \"object\"\n ? selected.label === currentFocus\n : selected === currentFocus\n ) {\n setSelected?.(undefined);\n onSelectionChange?.(undefined);\n return;\n }\n\n if (items) {\n const enabledItems = items.filter(\n (item) => !(item as { disabled?: boolean })?.disabled,\n );\n setSelected?.(enabledItems[currentIndex]);\n onSelectionChange?.(enabledItems[currentIndex]);\n return;\n }\n\n if (!items) {\n setSelected?.(currentFocus);\n onSelectionChange?.(currentFocus);\n return;\n }\n }\n\n if (selectionMode === \"multiple\") {\n const selectedItems = Array.isArray(selected) ? selected : [selected];\n\n if (items) {\n const focusedItem = items.find(\n (item) => (item as { label: string }).label === currentFocus,\n );\n\n if (selectedItems.includes(focusedItem)) {\n const selectedItemsWithItemRemoved = selectedItems.filter(\n (selectedItem) => selectedItem !== focusedItem,\n );\n setSelected?.(selectedItemsWithItemRemoved);\n onSelectionChange?.(selectedItemsWithItemRemoved);\n return;\n } else {\n const selectedItemsWithItemAdded = [...selectedItems, focusedItem];\n\n setSelected?.(selectedItemsWithItemAdded);\n onSelectionChange?.(selectedItemsWithItemAdded);\n return;\n }\n }\n\n if (!items) {\n if (selectedItems.includes(currentFocus)) {\n setSelected?.(\n selectedItems.filter((item) => item !== currentFocus),\n );\n onSelectionChange?.(\n selectedItems.filter((item) => item !== currentFocus),\n );\n return;\n }\n setSelected?.([...selectedItems, currentFocus]);\n onSelectionChange?.([...selectedItems, currentFocus]);\n }\n }\n break;\n\n default:\n break;\n }\n};\n\nconst goTo = (\n option: HTMLElement,\n index: number,\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n context: ListboxContextProps<any>,\n) => {\n const {\n setCurrentFocus,\n setSelected,\n selectionMode,\n disableAutoSelectOnFocus,\n onSelectionChange,\n items,\n controlled,\n } = context;\n\n scrollToOption(option);\n if (disableAutoSelectOnFocus || selectionMode === \"multiple\") {\n setCurrentFocus(option?.id);\n return;\n }\n\n setCurrentFocus(option?.id);\n\n if (controlled) return;\n\n if (items) {\n const enabledItems = items.filter(\n (item) => !(item as { disabled?: boolean })?.disabled,\n );\n setSelected(enabledItems[index]);\n onSelectionChange?.(enabledItems[index]);\n } else {\n setSelected(option?.id);\n onSelectionChange?.(option?.id);\n }\n};\n","import { ComponentPropsWithoutRef, forwardRef } from \"react\";\nimport { Text } from \"../Text\";\nimport { ListboxOptionGroupContext } from \"./internal/ListboxOptionGroupContext\";\n\nimport cx from \"classnames\";\nimport styles from \"./Listbox.module.scss\";\n\n/**\n * Props for the ListboxOptionGroup component\n * @extends ComponentPropsWithoutRef<\"div\">\n */\nexport type ListboxOptionGroupProps = ComponentPropsWithoutRef<\"div\"> & {\n /** Whether the group is disabled */\n disabled?: boolean;\n /** The label for the option group */\n label: string;\n};\n\n/**\n * ListboxOptionGroup component for grouping related options within a listbox.\n *\n * Features:\n * - Groups related options with a descriptive label\n * - Maintains proper ARIA structure for accessibility\n * - Supports keyboard navigation within groups\n * - Visual separation of option categories\n *\n * @example\n * <ListboxOptionGroup label=\"Fruits\">\n * <ListboxOption value=\"apple\">Apple</ListboxOption>\n * <ListboxOption value=\"banana\">Banana</ListboxOption>\n * </ListboxOptionGroup>\n */\nexport const ListboxOptionGroup = forwardRef<\n HTMLDivElement,\n ListboxOptionGroupProps\n>((props, ref) => {\n const { className, children, disabled, label, ...rest } = props;\n\n const optionGroupCx = cx(styles[\"option-group\"], className);\n\n const labelCx = cx(styles[\"label\"], {\n [styles[\"disabled\"]]: disabled,\n });\n\n return (\n <ListboxOptionGroupContext.Provider value={{ disabled }}>\n <div\n data-anv=\"listbox-option-group\"\n className={optionGroupCx}\n ref={ref}\n {...rest}\n >\n <Text variant=\"eyebrow\" className={labelCx}>\n {label}\n </Text>\n\n {children}\n </div>\n </ListboxOptionGroupContext.Provider>\n );\n});\n\nListboxOptionGroup.displayName = \"ListboxOptionGroup\";\n","import {\n Ref,\n forwardRef,\n ReactNode,\n ComponentPropsWithoutRef,\n useRef,\n useState,\n useEffect,\n KeyboardEvent,\n FocusEvent,\n useMemo,\n} from \"react\";\nimport { LayoutUtilProps } from \"../../types\";\nimport { ListboxOption } from \"./ListboxOption\";\nimport { ListboxContext, ListboxContextProps } from \"./internal/ListboxContext\";\nimport { onListboxKeyDown, scrollToOption } from \"./internal/utils\";\nimport { useMergeRefs } from \"../../hooks\";\nimport { ListboxOptionGroup } from \"./ListboxOptionGroup\";\n\nimport cx from \"classnames\";\nimport styles from \"./Listbox.module.scss\";\nimport { useLayoutPropsUtil, useTypeAhead } from \"../../internal/hooks\";\n\n/**\n * Represents an item in the listbox with a label and optional disabled state.\n * @template T - The type of additional properties for the item\n */\nexport type ListboxItemType<T> = T & {\n /** The display label for the item */\n label: string;\n /** Whether the item is disabled and cannot be selected */\n disabled?: boolean;\n};\n\n/**\n * Props for single selection mode without items array\n */\ntype SingleWithoutItems = {\n /** Selection mode for single item selection */\n selectionMode?: \"single\";\n /** Whether to disable automatic selection when focusing on an option */\n disableAutoSelectOnFocus?: boolean;\n /** Currently selected item (controlled) */\n selected?: string;\n /** Default selected item (uncontrolled) */\n defaultSelected?: string;\n /** Callback when selection changes */\n onSelectionChange?: (selected: string | undefined) => void;\n /** Items array - not allowed in this mode */\n items?: never;\n /** Child elements to render */\n children: ReactNode;\n};\n\n/**\n * Props for multiple selection mode without items array\n */\ntype MultipleWithoutItems = {\n /** Selection mode for multiple item selection */\n selectionMode: \"multiple\";\n /** Auto-select on focus is not available in multiple mode */\n disableAutoSelectOnFocus?: never;\n /** Currently selected items (controlled) */\n selected?: string[];\n /** Default selected items (uncontrolled) */\n defaultSelected?: string[];\n /** Callback when selection changes */\n onSelectionChange?: (selected: string[] | undefined) => void;\n /** Items array - not allowed in this mode */\n items?: never;\n /** Child elements to render */\n children: ReactNode;\n};\n\n/**\n * Props for single selection mode with items array\n * @template T - The type of additional properties for items\n */\ntype SingleWithItems<T> = {\n /** Selection mode for single item selection */\n selectionMode?: \"single\";\n /** Whether to disable automatic selection when focusing on an option */\n disableAutoSelectOnFocus?: boolean;\n /** Currently selected item (controlled) */\n selected?: ListboxItemType<T>;\n /** Default selected item (uncontrolled) */\n defaultSelected?: ListboxItemType<T>;\n /** Callback when selection changes */\n onSelectionChange?: (selected: ListboxItemType<T> | undefined) => void;\n /** Array of items to render */\n items: ListboxItemType<T>[];\n /** Optional render function for items */\n children?: ({ items }: { items: ListboxItemType<T>[] }) => ReactNode;\n};\n\n/**\n * Props for multiple selection mode with items array\n * @template T - The type of additional properties for items\n */\ntype MultipleWithItems<T> = {\n /** Selection mode for multiple item selection */\n selectionMode?: \"multiple\";\n /** Auto-select on focus is not available in multiple mode */\n disableAutoSelectOnFocus?: never;\n /** Currently selected items (controlled) */\n selected?: ListboxItemType<T>[];\n /** Default selected items (uncontrolled) */\n defaultSelected?: ListboxItemType<T>[];\n /** Callback when selection changes */\n onSelectionChange?: (selected: ListboxItemType<T>[] | undefined) => void;\n /** Array of items to render */\n items: ListboxItemType<T>[];\n /** Optional render function for items */\n children?: ({ items }: { items: ListboxItemType<T>[] }) => ReactNode;\n};\n\n/**\n * Props for the Listbox component\n * @template T - The type of additional properties for items\n * @extends ComponentPropsWithoutRef<\"ul\">\n * @extends LayoutUtilProps\n */\nexport type ListboxProps<T> = Omit<ComponentPropsWithoutRef<\"ul\">, \"children\"> &\n LayoutUtilProps &\n (\n | SingleWithoutItems\n | MultipleWithoutItems\n | SingleWithItems<T>\n | MultipleWithItems<T>\n );\n\nfunction ListboxInner<T>(props: ListboxProps<T>, ref: Ref<HTMLUListElement>) {\n const { layoutStyles, componentProps } = useLayoutPropsUtil(props);\n const {\n className,\n selectionMode = \"single\",\n items,\n children,\n onKeyDown,\n onFocus,\n onSelectionChange,\n selected: selectedProp,\n defaultSelected,\n disableAutoSelectOnFocus,\n style,\n ...rest\n } = componentProps;\n\n const listboxRef = useRef<HTMLUListElement>(null);\n const [selected, setSelected] = useState<ListboxProps<T>[\"defaultSelected\"]>(\n selectedProp || defaultSelected,\n );\n const [options, setOptions] = useState<NodeListOf<HTMLElement>>();\n const [typeAhead, updateTypeAhead] = useTypeAhead();\n const [currentFocus, setCurrentFocus] = useState<\n ListboxContextProps<T>[\"currentFocus\"]\n >(\n Array.isArray(selected)\n ? typeof selected[0] === \"object\"\n ? (selected as ListboxItemType<T>[])[0].label\n : (selected as string[])[0]\n : typeof selected === \"object\"\n ? (selected as ListboxItemType<T>)?.label\n : (selected as string),\n );\n\n const ListboxClassNames = cx(styles[\"listbox\"], className, {});\n\n const controlled = selectedProp !== undefined;\n\n useEffect(() => {\n if (listboxRef.current) {\n setOptions(\n listboxRef.current.querySelectorAll(\n \"[role=option]:not([aria-disabled='true'])\",\n ),\n );\n }\n }, [items, listboxRef, selectionMode]);\n\n useEffect(\n () => {\n if (\"selected\" in componentProps) {\n setSelected(selectedProp);\n }\n },\n // eslint-disable-next-line react-hooks/exhaustive-deps\n [selectedProp],\n );\n\n useEffect(() => {\n if (!typeAhead.length) {\n return;\n }\n const lowerTypeAhead = typeAhead.toLowerCase();\n const nodes =\n options &&\n Array.from(options).filter((node) =>\n node.innerText.toLowerCase().startsWith(lowerTypeAhead),\n );\n\n if (!nodes?.length) {\n return;\n }\n\n let node = nodes[0];\n\n if (lowerTypeAhead.length === 1 && nodes.length > 1) {\n // Select next matching item on first key press if the list of matches contains our current selection WITH looping\n const focusIndex = currentFocus\n ? nodes.map((node) => node.id).indexOf(currentFocus)\n : -1;\n if (focusIndex > -1) {\n let nextFocusIndex = focusIndex + 1;\n if (nextFocusIndex === nodes.length) {\n nextFocusIndex = 0;\n }\n node = nodes[nextFocusIndex];\n }\n }\n\n setCurrentFocus(node.id);\n scrollToOption(node);\n\n if (controlled) return;\n\n if (selectionMode === \"single\") {\n if (items) {\n if (disableAutoSelectOnFocus) {\n const focusedItem = items.find(\n (item) => (item as ListboxItemType<T>).label === currentFocus,\n );\n setSelected?.(focusedItem);\n onSelectionChange?.(focusedItem);\n }\n return;\n }\n\n if (!items) {\n if (disableAutoSelectOnFocus) {\n setSelected(node.id);\n onSelectionChange?.(node.id);\n }\n return;\n }\n }\n\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, [typeAhead]);\n\n const onKeyDownHandler = (e: KeyboardEvent<HTMLUListElement>) => {\n onKeyDown?.(e);\n\n if (new RegExp(/^[a-zA-Z0-9]$/i).test(e.key)) {\n e.preventDefault();\n e.stopPropagation();\n updateTypeAhead(e.key);\n return;\n }\n\n onListboxKeyDown(e, {\n setCurrentFocus,\n currentFocus,\n setSelected,\n selected,\n selectionMode,\n options,\n onSelectionChange,\n disableAutoSelectOnFocus: !!disableAutoSelectOnFocus,\n items,\n });\n };\n\n const onFocusHandler = (e: FocusEvent<HTMLUListElement>) => {\n onFocus?.(e);\n\n if (!options) return;\n\n if (selectionMode === \"single\") {\n const currentFocusExists = Array.from(options).some(\n (item) => item.id === currentFocus,\n );\n\n if (currentFocus && currentFocusExists) return;\n if (!items) {\n if (currentFocusExists) {\n setCurrentFocus(selected as string);\n return;\n }\n setCurrentFocus(options[0].id);\n return;\n }\n if (currentFocusExists) {\n setCurrentFocus((selected as ListboxItemType<T>)?.label);\n return;\n }\n setCurrentFocus(items?.[0].label);\n return;\n }\n\n if (selectionMode === \"multiple\") {\n const selectedArr = Array.isArray(selected) ? selected : [selected];\n const currentFocusExists = Array.from(options).some(\n (item) => item.id === currentFocus,\n );\n\n if (currentFocus && currentFocusExists) return;\n if (!items) {\n console.log({ currentFocus, currentFocusExists });\n if (currentFocusExists) {\n setCurrentFocus((selectedArr as ListboxItemType<T>[])[0].label);\n return;\n }\n setCurrentFocus(options[0].id);\n return;\n }\n if (currentFocusExists) {\n setCurrentFocus((selectedArr as ListboxItemType<T>[])[0]?.label);\n return;\n }\n setCurrentFocus(items?.[0].label);\n return;\n }\n\n setCurrentFocus(options[0].id);\n };\n\n const mergeRef = useMergeRefs([ref, listboxRef]);\n\n const styleCombined = {\n ...style,\n ...layoutStyles,\n };\n\n const value = useMemo(\n () => ({\n setCurrentFocus,\n currentFocus,\n setSelected,\n selected,\n selectionMode,\n items,\n options,\n onSelectionChange,\n disableAutoSelectOnFocus: !!disableAutoSelectOnFocus,\n controlled,\n }),\n [\n currentFocus,\n disableAutoSelectOnFocus,\n onSelectionChange,\n options,\n selected,\n selectionMode,\n items,\n controlled,\n ],\n );\n\n return (\n <ListboxContext.Provider value={value}>\n <ul\n tabIndex={0}\n role=\"listbox\"\n style={styleCombined}\n aria-multiselectable={selectionMode === \"multiple\" ? \"true\" : \"false\"}\n aria-activedescendant={currentFocus}\n className={ListboxClassNames}\n data-anv=\"listbox\"\n onKeyDown={onKeyDownHandler}\n onFocus={onFocusHandler}\n {...rest}\n ref={mergeRef}\n >\n {items ? children?.({ items }) : children}\n </ul>\n </ListboxContext.Provider>\n );\n}\n\nListboxInner.displayName = \"Listbox\";\n\n/**\n * Listbox component for selecting one or more items from a list\n *\n * Features:\n * - Supports single and multiple selection modes\n * - Keyboard navigation with arrow keys and type-ahead\n * - Optional auto-selection on focus\n * - Controlled and uncontrolled modes\n * - Accessible with proper ARIA attributes\n * - Supports custom item rendering\n * - Option grouping for organization\n * - Layout utilities for positioning and spacing\n * - Automatic tracking ID generation for analytics\n *\n * @template T - The type of additional properties for items\n * @example\n * <Listbox selectionMode=\"single\" onSelectionChange={handleSelection}>\n * <Listbox.Option value=\"option1\">Option 1</Listbox.Option>\n * <Listbox.Option value=\"option2\">Option 2</Listbox.Option>\n * </Listbox>\n */\nexport const Listbox = Object.assign(\n forwardRef(ListboxInner) as <T>(\n props: ListboxProps<T> & { ref?: React.ForwardedRef<HTMLUListElement> },\n ) => ReturnType<typeof ListboxInner>,\n {\n /**\n * ListboxOption component for individual selectable items within a listbox\n *\n * Features:\n * - Displays selectable options with proper ARIA attributes\n * - Supports disabled state for non-selectable options\n * - Keyboard navigation support\n * - Automatic tracking ID generation for analytics\n * - Accessible with screen reader support\n *\n * @example\n * <Listbox.Option value=\"option1\" label=\"Option 1\" />\n */\n Option: ListboxOption,\n /**\n * ListboxOptionGroup component for grouping related options within a listbox\n *\n * Features:\n * - Groups related options with a descriptive label\n * - Maintains proper ARIA structure for accessibility\n * - Supports keyboard navigation within groups\n * - Visual separation of option categories\n *\n * @example\n * <Listbox.OptionGroup label=\"Fruits\">\n * <Listbox.Option value=\"apple\">Apple</Listbox.Option>\n * <Listbox.Option value=\"banana\">Banana</Listbox.Option>\n * </Listbox.OptionGroup>\n */\n OptionGroup: ListboxOptionGroup,\n },\n);\n"],"names":["styles","Check","node"],"mappings":"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"}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"NumberField-DdaBRyCJ.js","sources":["../../hammer-icon/mdi/round/remove.svg","../src/components/NumberField/NumberField.tsx"],"sourcesContent":["import * as React from \"react\";\nconst SvgRemove = (props) => /* @__PURE__ */ React.createElement(\"svg\", { xmlns: \"http://www.w3.org/2000/svg\", width: \"1em\", height: \"1em\", viewBox: \"0 0 24 24\", ...props }, /* @__PURE__ */ React.createElement(\"path\", { d: \"M18 13H6c-.55 0-1-.45-1-1s.45-1 1-1h12c.55 0 1 .45 1 1s-.45 1-1 1z\" }));\nexport default SvgRemove;\n","import {\n ReactElement,\n forwardRef,\n isValidElement,\n ComponentPropsWithoutRef,\n useId,\n useRef,\n} from \"react\";\nimport cx from \"classnames\";\nimport { Spinner } from \"../Spinner\";\nimport textFieldStyles from \"../TextField/TextField.module.scss\";\nimport numberFieldStyles from \"./NumberField.module.scss\";\nimport { Helper, HelperProps } from \"../../internal/components\";\nimport { warnDeprecatedErrorUsage } from \"../FieldMessage\";\nimport { LayoutUtilProps, Size, DataTrackingId } from \"../../types\";\nimport { useMergeRefs, useTrackingId } from \"../../hooks\";\nimport { Button } from \"../Button\";\nimport { Icon } from \"../Icon\";\nimport IconAdd from \"@servicetitan/hammer-icon/mdi/round/add.svg\";\nimport IconRemove from \"@servicetitan/hammer-icon/mdi/round/remove.svg\";\nimport {\n useFocusWithin,\n useLayoutPropsUtil,\n useNumberField,\n} from \"../../internal/hooks\";\nimport {\n childrenToString,\n stripInlineMarkdown,\n warnOnce,\n} from \"../../internal/functions\";\nimport { FieldLabel } from \"../FieldLabel\";\nimport { FieldLabelProps } from \"../../internal/types\";\n\n/**\n * Props for the NumberField component.\n * @extends Omit<ComponentPropsWithoutRef<\"input\">, \"size\" | \"prefix\" | \"type\" | \"inputMode\" | \"value\" | \"defaultValue\" | \"onFocus\" | \"onBlur\" | \"onChange\">\n * @extends LayoutUtilProps\n * @extends FieldLabelProps\n * @extends DataTrackingId\n */\nexport type NumberFieldProps = Omit<\n ComponentPropsWithoutRef<\"input\">,\n | \"size\"\n | \"prefix\"\n | \"type\"\n | \"inputMode\"\n | \"value\"\n | \"defaultValue\"\n | \"onFocus\"\n | \"onBlur\"\n | \"onChange\"\n> &\n LayoutUtilProps &\n FieldLabelProps & {\n /**\n * Error state for the field. Pass `true` to indicate error styling without a message.\n * Pass a string, string[], or ReactElement (deprecated) for error messages.\n */\n error?: boolean | string | ReactElement | string[];\n // TODO(v4.0.0): make label required\n /**\n * Label for the field.\n * Omitting `label` is deprecated — it will be required in v4.0.0. Use `hideLabel` to visually hide it.\n */\n label?: string;\n /**\n * When `true`, hides the visible label and moves it to `aria-label` on the input.\n * Requires `label` to be set — the label is always needed for accessibility.\n * @default false\n */\n hideLabel?: boolean;\n prefix?: string;\n suffix?: string;\n size?: Extract<Size, \"small\" | \"medium\" | \"large\">;\n description?: HelperProps[\"description\"];\n /**\n * @deprecated No longer used. Error messages always use `aria-live=\"assertive\"`.\n */\n errorAriaLive?: HelperProps[\"errorAriaLive\"];\n hint?: HelperProps[\"hint\"];\n /**\n * Warning message(s) to display. Supports a single string or an array of strings.\n */\n warning?: string | string[];\n loading?: boolean;\n disabled?: boolean;\n minValue?: number;\n maxValue?: number;\n maximumFractionDigits?: number;\n minimumFractionDigits?: number;\n step?: number;\n value?: number | null;\n defaultValue?: number | null;\n onChange?: (value: number | null) => void;\n onFocus?: (event: React.FocusEvent) => void;\n onBlur?: (event: React.FocusEvent) => void;\n hideControls?: boolean;\n /**\n * When `true`, applies a subdued primary background to the field to draw attention to it.\n * @default false\n */\n isHighlighted?: boolean;\n } & DataTrackingId;\n\nexport const NumberField = forwardRef<HTMLInputElement, NumberFieldProps>(\n (props, ref) => {\n const { layoutStyles, componentProps } = useLayoutPropsUtil(props);\n const {\n className,\n error,\n errorAriaLive: _errorAriaLive,\n defaultValue: defaultValueProp,\n value: valueProp,\n label,\n moreInfo,\n prefix,\n suffix,\n size,\n required,\n onChange: onChangeProp,\n onFocus: onFocusProp,\n onBlur: onBlurProp,\n id: idProp,\n description,\n hint,\n warning,\n loading,\n disabled,\n readOnly,\n labelProps,\n style,\n placeholder,\n minValue,\n maxValue,\n maximumFractionDigits = 0,\n minimumFractionDigits = 0,\n step = 1,\n hideControls = false,\n hideLabel = false,\n isHighlighted = false,\n ...rest\n } = componentProps;\n const numberFieldRef = useRef<HTMLDivElement>(null);\n\n const { props: wrapperProps } = useFocusWithin({\n onFocus: (e) => {\n onFocusProp?.(e);\n },\n onBlur: (e) => {\n onBlurProp?.(e);\n },\n });\n\n const { inputProps, inputRef, incrementButtonProps, decrementButtonProps } =\n useNumberField({\n minValue,\n maxValue,\n maximumFractionDigits,\n minimumFractionDigits,\n step,\n value: valueProp,\n defaultValue: defaultValueProp,\n onChange: onChangeProp,\n label,\n readOnly,\n });\n\n const combinedInputRef = useMergeRefs([numberFieldRef, inputRef, ref]);\n\n const labelUid = useId();\n const id = idProp ?? labelUid;\n const prefixUid = useId();\n const suffixUid = useId();\n const helperUid = useId();\n const moreInfoUid = useId();\n\n warnDeprecatedErrorUsage(\"NumberField\", error);\n\n // TODO(v4.0.0): remove once label is required\n if (label === undefined) {\n warnOnce(\n \"NumberField: label will be required in v4.0.0. Use hideLabel to visually hide the label.\",\n );\n }\n\n const errorMessages =\n typeof error === \"boolean\" || error === undefined ? undefined : error;\n\n const hasHelperText = hint || errorMessages || warning || description;\n\n const ariaDescribedBy =\n [hasHelperText && helperUid, moreInfo && moreInfoUid]\n .filter(Boolean)\n .join(\" \") || undefined;\n\n const styleCombined = { ...style, ...layoutStyles };\n\n const data = {\n label: childrenToString(props.label),\n prefix: childrenToString(props.prefix),\n suffix: childrenToString(props.suffix),\n description: childrenToString(props.description),\n size: props.size,\n minValue: props.minValue,\n maxValue: props.maxValue,\n step: props.step,\n maximumFractionDigits: props.maximumFractionDigits,\n minimumFractionDigits: props.minimumFractionDigits,\n };\n\n const trackingId = useTrackingId({\n name: \"NumberField\",\n data,\n hasOverride: !!props[\"data-tracking-id\"],\n });\n\n return (\n <div\n className={cx(textFieldStyles[\"textfield\"], className)}\n data-anv=\"number-field\"\n style={styleCombined}\n {...wrapperProps}\n >\n {/* TODO(v4.0.0): simplify to !hideLabel once label is required */}\n {label && !hideLabel && (\n <FieldLabel\n moreInfo={moreInfo}\n moreInfoId={moreInfo ? moreInfoUid : undefined}\n required={required}\n htmlFor={id}\n {...labelProps}\n >\n {label}\n </FieldLabel>\n )}\n <div\n className={cx(textFieldStyles[\"input-wrapper\"], {\n [textFieldStyles[\"small\"]]: size === \"small\",\n [textFieldStyles[\"large\"]]: size === \"large\",\n [textFieldStyles[\"highlight\"]]: isHighlighted,\n [numberFieldStyles[\"small\"]]: size === \"small\",\n [numberFieldStyles[\"large\"]]: size === \"large\",\n })}\n role=\"presentation\"\n onClick={() => numberFieldRef.current?.focus()}\n >\n {prefix ? (\n <div\n aria-hidden\n className={textFieldStyles[\"prefix\"]}\n id={`prefix${prefixUid}`}\n >\n {prefix}\n </div>\n ) : null}\n <input\n id={id}\n className={cx(textFieldStyles[\"input\"], {\n [textFieldStyles[\"error\"]]: error,\n })}\n data-tracking-id={trackingId}\n {...rest}\n {...inputProps}\n required={required}\n placeholder={placeholder}\n readOnly={readOnly}\n disabled={disabled}\n ref={combinedInputRef}\n aria-label={\n // TODO(v4.0.0): remove typeof check — label will always be string\n hideLabel && typeof label === \"string\"\n ? stripInlineMarkdown(label)\n : label\n ? undefined\n : placeholder\n }\n aria-describedby={ariaDescribedBy}\n aria-invalid={error ? !!error : undefined}\n />\n {loading ? (\n <div\n className={textFieldStyles[\"loading-spinner-wrapper\"]}\n data-testid=\"spinner\"\n >\n <Spinner size=\"small\" />\n </div>\n ) : null}\n {suffix ? (\n <div\n className={textFieldStyles[\"suffix\"]}\n aria-hidden\n id={`suffix${suffixUid}`}\n >\n {suffix}\n </div>\n ) : null}\n {!hideControls && !disabled && !readOnly && (\n <div className={numberFieldStyles[\"stepper-buttons\"]}>\n <Button\n appearance=\"secondary\"\n size=\"small\"\n className={numberFieldStyles[\"stepper-button\"]}\n {...decrementButtonProps}\n >\n <Icon svg={IconRemove} />\n </Button>\n <Button\n appearance=\"secondary\"\n size=\"small\"\n className={numberFieldStyles[\"stepper-button\"]}\n {...incrementButtonProps}\n >\n <Icon svg={IconAdd} />\n </Button>\n </div>\n )}\n </div>\n {hasHelperText ? (\n <Helper\n id={helperUid}\n hint={hint}\n showCounter={false}\n error={\n typeof errorMessages === \"string\" || Array.isArray(errorMessages)\n ? errorMessages\n : undefined\n }\n warning={warning}\n errorMessage={\n isValidElement(errorMessages) ? errorMessages : undefined\n }\n description={description}\n />\n ) : null}\n </div>\n );\n },\n);\n\nNumberField.displayName = \"NumberField\";\n"],"names":["IconRemove","IconAdd"],"mappings":"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"}
|