@servicetitan/anvil2 3.14.1 → 3.15.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 +18 -0
- package/dist/{AiMark-CWufA6pV.js → AiMark-BfmK30vL.js} +3 -3
- package/dist/AiMark-BfmK30vL.js.map +1 -0
- package/dist/AiMark.js +1 -1
- package/dist/{Alert-RkvFtmRP.js → Alert-lLo1N7Tj.js} +3 -3
- package/dist/Alert-lLo1N7Tj.js.map +1 -0
- package/dist/Alert.js +1 -1
- package/dist/{Announcement-CGTv6M31.js → Announcement-Cnz80WGx.js} +2 -2
- package/dist/Announcement-Cnz80WGx.js.map +1 -0
- package/dist/Announcement.js +1 -1
- package/dist/Avatar-Ba662b3z.js +17 -0
- package/dist/Avatar-Ba662b3z.js.map +1 -0
- package/dist/{Avatar-DZxHhMTP.js → Avatar-CwnLhw9m.js} +1 -20
- package/dist/Avatar-CwnLhw9m.js.map +1 -0
- package/dist/Avatar.js +2 -2
- package/dist/Badge-BNrYBFiU.js.map +1 -1
- package/dist/{Breadcrumbs-DbOrdao2.js → Breadcrumbs-RdL4Fvmu.js} +3 -16
- package/dist/Breadcrumbs-RdL4Fvmu.js.map +1 -0
- package/dist/Breadcrumbs.js +1 -1
- package/dist/{Button-Dwh_Nd4l.js → Button-Dn6-01xl.js} +230 -67
- package/dist/Button-Dn6-01xl.js.map +1 -0
- package/dist/Button.js +1 -1
- package/dist/ButtonCompound-D7kA0qXr.js.map +1 -1
- package/dist/ButtonLink-DOFAxNvC.js.map +1 -1
- package/dist/{ButtonToggle-DKDBD1g3.js → ButtonToggle-BSU8GBxr.js} +2 -2
- package/dist/ButtonToggle-BSU8GBxr.js.map +1 -0
- package/dist/ButtonToggle.js +1 -1
- package/dist/{Calendar-DLnn6dJE.js → Calendar-DoLRAWLp.js} +2 -2
- package/dist/Calendar-DoLRAWLp.js.map +1 -0
- package/dist/{Calendar-CK-AAaSG.js → Calendar-IzXG1aJw.js} +12 -80
- package/dist/Calendar-IzXG1aJw.js.map +1 -0
- package/dist/Calendar.js +2 -2
- package/dist/Card-Bt0F6RTq.js.map +1 -1
- package/dist/{Checkbox-CboZhOtU.js → Checkbox-CVxbe-iN.js} +3 -3
- package/dist/Checkbox-CVxbe-iN.js.map +1 -0
- package/dist/{Checkbox-Cn4iNLW_.js → Checkbox-U-kuWhgc.js} +3 -23
- package/dist/Checkbox-U-kuWhgc.js.map +1 -0
- package/dist/Checkbox.js +1 -1
- package/dist/{Chip-UbrxYEqs.js → Chip-2OydLs66.js} +3 -3
- package/dist/Chip-2OydLs66.js.map +1 -0
- package/dist/Chip.js +1 -1
- package/dist/Combobox.js +1 -1
- package/dist/{DataTable-COExZbOC.js → DataTable-DkEpJ_Op.js} +17 -42
- package/dist/DataTable-DkEpJ_Op.js.map +1 -0
- package/dist/{DateFieldRange-CpTxlASD.js → DateFieldRange-X2jdOTYY.js} +7 -15
- package/dist/DateFieldRange-X2jdOTYY.js.map +1 -0
- package/dist/DateFieldRange.js +1 -1
- package/dist/{DateFieldSingle-DR2kfrzh.js → DateFieldSingle-BJ16tpOz.js} +6 -9
- package/dist/DateFieldSingle-BJ16tpOz.js.map +1 -0
- package/dist/DateFieldSingle.js +1 -1
- package/dist/{DateFieldYearless-4mS_2Mgw.js → DateFieldYearless-CMm8vtz_.js} +4 -4
- package/dist/DateFieldYearless-CMm8vtz_.js.map +1 -0
- package/dist/DateFieldYearless.js +1 -1
- package/dist/{DateFieldYearlessRange-C-yvKBkJ.js → DateFieldYearlessRange-BHHs-Z1Q.js} +3 -3
- package/dist/DateFieldYearlessRange-BHHs-Z1Q.js.map +1 -0
- package/dist/DateFieldYearlessRange.js +1 -1
- package/dist/{DaysOfTheWeek-Bo4w8SsT.js → DaysOfTheWeek-BHXxs0Bo.js} +4 -4
- package/dist/DaysOfTheWeek-BHXxs0Bo.js.map +1 -0
- package/dist/DaysOfTheWeek.js +1 -1
- package/dist/{Details-CVA5zbrR.js → Details-BxqP-5vp.js} +13 -9
- package/dist/Details-BxqP-5vp.js.map +1 -0
- package/dist/Details.css +18 -14
- package/dist/Details.js +1 -1
- package/dist/{Dialog-Ds25dKQp.js → Dialog-B9llUKJz.js} +44 -102
- package/dist/Dialog-B9llUKJz.js.map +1 -0
- package/dist/Dialog.js +1 -1
- package/dist/{DialogCancelButton-DBL0aKTK.js → DialogCancelButton-C0r8hJ8Z.js} +2 -2
- package/dist/DialogCancelButton-C0r8hJ8Z.js.map +1 -0
- package/dist/DialogContext-DBgtApl9.js.map +1 -1
- package/dist/Divider-C7fp5Xb6.js.map +1 -1
- package/dist/Dnd.js +1 -1
- package/dist/DndHandleButton-BRlodkDO.js.map +1 -1
- package/dist/DndSort.js +4 -6
- package/dist/DndSort.js.map +1 -1
- package/dist/{Drawer-Da-bj_6o.js → Drawer-Bjd2XLUX.js} +33 -103
- package/dist/Drawer-Bjd2XLUX.js.map +1 -0
- package/dist/Drawer.js +1 -1
- package/dist/DrawerContext-BSpnzXVZ.js.map +1 -1
- package/dist/DrillDown.js +1 -1
- package/dist/DrillDown.module-1VBKDZRA.js.map +1 -1
- package/dist/{EditCard-CocV93gS.js → EditCard-B6l2vhBS.js} +3 -3
- package/dist/EditCard-B6l2vhBS.js.map +1 -0
- package/dist/EditCard.js +1 -1
- package/dist/{FieldLabel-6aFKQfyD.js → FieldLabel-ThEmUiAq.js} +3 -4
- package/dist/FieldLabel-ThEmUiAq.js.map +1 -0
- package/dist/FieldLabel.js +1 -1
- package/dist/FieldMessage-8c9yA_kw.js.map +1 -1
- package/dist/{FilterBar-CZT1ryz_.js → FilterBar-ecqJDraA.js} +7 -7
- package/dist/FilterBar-ecqJDraA.js.map +1 -0
- package/dist/FilterBar.js +1 -1
- package/dist/Flex-CRF7gj0_.js.map +1 -1
- package/dist/{Grid-CvGQrIhE.js → Grid-BPCDtqoT.js} +2 -20
- package/dist/Grid-BPCDtqoT.js.map +1 -0
- package/dist/Grid.js +1 -1
- package/dist/Icon-B5zwN7GD.js.map +1 -1
- package/dist/{InputMask-CNV0Ucli.js → InputMask-BQigi5oW.js} +3 -3
- package/dist/{InputMask-CNV0Ucli.js.map → InputMask-BQigi5oW.js.map} +1 -1
- package/dist/InputMask.js +1 -1
- package/dist/{InteractiveCard-C0g5PxB6.js → InteractiveCard-C2CYRtgQ.js} +3 -3
- package/dist/InteractiveCard-C2CYRtgQ.js.map +1 -0
- package/dist/InteractiveCard.js +1 -1
- package/dist/{Layout-C2Q2hyLG.js → Layout-C8fKY7Eh.js} +2 -1
- package/dist/Layout-C8fKY7Eh.js.map +1 -0
- package/dist/Layout.js +1 -1
- package/dist/Link-D7ycmfQ_.js.map +1 -1
- package/dist/LinkButton-C0wps8r1.js.map +1 -1
- package/dist/{List-BvzfZ9TW.js → List-CTr2fk7l.js} +2 -11
- package/dist/List-CTr2fk7l.js.map +1 -0
- package/dist/List.js +1 -1
- package/dist/{ListView-DFAWrwzi.js → ListView-YJscfG4x.js} +4 -26
- package/dist/ListView-YJscfG4x.js.map +1 -0
- package/dist/ListView.js +1 -1
- package/dist/{Listbox-BErqErNN.js → Listbox-CD9ZptSZ.js} +4 -30
- package/dist/Listbox-CD9ZptSZ.js.map +1 -0
- package/dist/Listbox.js +1 -1
- package/dist/{Menu-BjPE_ODh.js → Menu-Da2OEN0o.js} +3 -23
- package/dist/Menu-Da2OEN0o.js.map +1 -0
- package/dist/Menu.js +1 -1
- package/dist/{MenuFooter-fGSZYh8e.js → MenuFooter-D__gg92C.js} +2 -2
- package/dist/{MenuFooter-fGSZYh8e.js.map → MenuFooter-D__gg92C.js.map} +1 -1
- package/dist/MultiSelectField.js +1 -1
- package/dist/{MultiSelectFieldSync-CqWUidCm.js → MultiSelectFieldSync-DpPO0cya.js} +7 -14
- package/dist/MultiSelectFieldSync-DpPO0cya.js.map +1 -0
- package/dist/MultiSelectMenu.js +1 -1
- package/dist/{MultiSelectMenuSync-DG3rKyQc.js → MultiSelectMenuSync-BN_3moW_.js} +5 -5
- package/dist/MultiSelectMenuSync-BN_3moW_.js.map +1 -0
- package/dist/{NumberField-DRYYJHec.js → NumberField-CxmJx4gs.js} +4 -4
- package/dist/NumberField-CxmJx4gs.js.map +1 -0
- package/dist/NumberField.js +1 -1
- package/dist/Overflow.js +1 -1
- package/dist/Overflow.js.map +1 -1
- package/dist/{Page-pfK5iSmv.js → Page-IZ4p51iJ.js} +20 -189
- package/dist/Page-IZ4p51iJ.js.map +1 -0
- package/dist/Page.js +1 -1
- package/dist/{Pagination-Bc4fhdNm.js → Pagination-Su4VBAhT.js} +15 -11
- package/dist/Pagination-Su4VBAhT.js.map +1 -0
- package/dist/Pagination.js +1 -1
- package/dist/{Popover-BgVOsP4J.js → Popover-CIh1CsoJ.js} +6 -74
- package/dist/Popover-CIh1CsoJ.js.map +1 -0
- package/dist/Popover.js +1 -1
- package/dist/{ProgressBar-Chb0uKfL.js → ProgressBar-TQ0fPmn9.js} +2 -2
- package/dist/ProgressBar-TQ0fPmn9.js.map +1 -0
- package/dist/ProgressBar.js +1 -1
- package/dist/{Radio-DcNlFfSu.js → Radio-BYowelK2.js} +3 -3
- package/dist/Radio-BYowelK2.js.map +1 -0
- package/dist/Radio-C1VnatcL.js +31 -0
- package/dist/Radio-C1VnatcL.js.map +1 -0
- package/dist/Radio.js +1 -1
- package/dist/{RichTextEditor-DeO4p-S-.js → RichTextEditor-BpzUo8dB.js} +12 -17
- package/dist/RichTextEditor-BpzUo8dB.js.map +1 -0
- package/dist/RichTextEditor.js +1 -1
- package/dist/{SavedFiltersButton-Cvf1mJk8.js → SavedFiltersButton-D9GJbJQu.js} +10 -24
- package/dist/SavedFiltersButton-D9GJbJQu.js.map +1 -0
- package/dist/SavedFiltersButton.js +1 -1
- package/dist/SearchField-ChoNtw8w.js.map +1 -1
- package/dist/SearchField-DX8hZyo2.js.map +1 -1
- package/dist/{SegmentedControl-CQ6DrbDc.js → SegmentedControl-BHVJmmTH.js} +4 -19
- package/dist/SegmentedControl-BHVJmmTH.js.map +1 -0
- package/dist/SegmentedControl.js +1 -1
- package/dist/{SelectCard-bp5hRyHK.js → SelectCard-DrmMU_GD.js} +4 -28
- package/dist/SelectCard-DrmMU_GD.js.map +1 -0
- package/dist/SelectCard.js +1 -1
- package/dist/SelectField.js +1 -1
- package/dist/{SelectFieldLabel-DZqxaZsp.js → SelectFieldLabel-BxsKvfqo.js} +2 -2
- package/dist/SelectFieldLabel-BxsKvfqo.js.map +1 -0
- package/dist/{SelectFieldSync-Wkx6DGpg.js → SelectFieldSync-BN2ebLWT.js} +8 -7
- package/dist/SelectFieldSync-BN2ebLWT.js.map +1 -0
- package/dist/SelectMenu.js +1 -1
- package/dist/{SelectMenuSync-O55TODxn.js → SelectMenuSync-DuPf8KCc.js} +5 -5
- package/dist/SelectMenuSync-DuPf8KCc.js.map +1 -0
- package/dist/{SelectOptions-0A8BYx1q.js → SelectOptions-BK7kNjYM.js} +2 -2
- package/dist/{SelectOptions-0A8BYx1q.js.map → SelectOptions-BK7kNjYM.js.map} +1 -1
- package/dist/{SelectTrigger-BfJ7DWYq.js → SelectTrigger-B5h-aqhl.js} +3 -3
- package/dist/SelectTrigger-B5h-aqhl.js.map +1 -0
- package/dist/SelectTrigger.js +1 -1
- package/dist/{SelectTriggerBase-DvsI-kSG.js → SelectTriggerBase-SML2Mlt-.js} +4 -6
- package/dist/SelectTriggerBase-SML2Mlt-.js.map +1 -0
- package/dist/{SideNav-BLXgM918.js → SideNav-CHG7i8Dy.js} +4 -57
- package/dist/SideNav-CHG7i8Dy.js.map +1 -0
- package/dist/SideNav.js +1 -1
- package/dist/Skeleton.js.map +1 -1
- package/dist/Spinner-B7tTWcP6.js.map +1 -1
- package/dist/SrOnly-pnf8ajnh.js.map +1 -1
- package/dist/{Stepper-CCKHWlUr.js → Stepper-l_P6VPOv.js} +12 -180
- package/dist/Stepper-l_P6VPOv.js.map +1 -0
- package/dist/Stepper.js +1 -1
- package/dist/{Switch-CrDmBj4D.js → Switch-1iNdXTik.js} +2 -2
- package/dist/Switch-1iNdXTik.js.map +1 -0
- package/dist/Switch.js +1 -1
- package/dist/{Tab-Bqfvg8Ce.js → Tab-DR5YYXkq.js} +127 -76
- package/dist/Tab-DR5YYXkq.js.map +1 -0
- package/dist/Tab.js +1 -1
- package/dist/Table.js +1 -1
- package/dist/{Text-CZccJAnm.js → Text-rihxXHSe.js} +2 -2
- package/dist/Text-rihxXHSe.js.map +1 -0
- package/dist/Text.js +1 -1
- package/dist/{TextField-DX5qyWPo.js → TextField-Bxd-Qzoi.js} +2 -2
- package/dist/TextField-Bxd-Qzoi.js.map +1 -0
- package/dist/{TextField-D0f9LwgQ.js → TextField-vuS7xeo-.js} +3 -3
- package/dist/TextField-vuS7xeo-.js.map +1 -0
- package/dist/TextField.js +1 -1
- package/dist/{Textarea-CdTcekFd.js → Textarea-ppapJUwh.js} +3 -3
- package/dist/Textarea-ppapJUwh.js.map +1 -0
- package/dist/Textarea.js +1 -1
- package/dist/{TimeField-BxNglWQt.js → TimeField-Hwt_oRbg.js} +5 -9
- package/dist/TimeField-Hwt_oRbg.js.map +1 -0
- package/dist/TimeField.js +1 -1
- package/dist/TimezoneMessage-BrKB_psP.js.map +1 -1
- package/dist/Toast.js +2 -2
- package/dist/{Toaster-C-Z_FMbW.js → Toaster-BryQmKe1.js} +7 -19
- package/dist/Toaster-BryQmKe1.js.map +1 -0
- package/dist/{Toaster-nyQgF9Ki.js → Toaster-BtP_HezK.js} +3 -6
- package/dist/Toaster-BtP_HezK.js.map +1 -0
- package/dist/{Toolbar-BUbMtBVz.js → Toolbar-CMulzswf.js} +10 -79
- package/dist/Toolbar-CMulzswf.js.map +1 -0
- package/dist/{Toolbar-BxAFPvbn.js → Toolbar-DGHZpFi9.js} +12 -106
- package/dist/Toolbar-DGHZpFi9.js.map +1 -0
- package/dist/Toolbar.js +2 -2
- package/dist/{ToolbarButtonToggle-NSJ2XfXT.js → ToolbarButtonToggle-T8YnSJ5x.js} +3 -4
- package/dist/ToolbarButtonToggle-T8YnSJ5x.js.map +1 -0
- package/dist/{Tooltip-B4MSqIpg.js → Tooltip-C_VcYS9P.js} +3 -37
- package/dist/Tooltip-C_VcYS9P.js.map +1 -0
- package/dist/Tooltip.js +1 -1
- package/dist/TreeSelectField.js +1 -1
- package/dist/{TreeSelectFieldSync-DpvwlM7B.js → TreeSelectFieldSync-C0mXwYZL.js} +7 -7
- package/dist/TreeSelectFieldSync-C0mXwYZL.js.map +1 -0
- package/dist/TreeSelectMenu.js +1 -1
- package/dist/{TreeSelectMenuSync-BDitYX_k.js → TreeSelectMenuSync-D2TvKxP-.js} +4 -4
- package/dist/TreeSelectMenuSync-D2TvKxP-.js.map +1 -0
- package/dist/{TypeaheadTextField-Cj09sEji.js → TypeaheadTextField-DgazozK7.js} +10 -19
- package/dist/TypeaheadTextField-DgazozK7.js.map +1 -0
- package/dist/TypeaheadTextField.js +1 -1
- package/dist/{YearlessDateInputWithPicker-CoomgSEK.js → YearlessDateInputWithPicker-Bc8a33D5.js} +5 -7
- package/dist/YearlessDateInputWithPicker-Bc8a33D5.js.map +1 -0
- package/dist/assets/icons/st/gnav_analytics_active.svg +1 -0
- package/dist/assets/icons/st/gnav_analytics_inactive.svg +1 -0
- package/dist/assets/icons/st.ts +3 -1
- package/dist/beta.js +18 -18
- package/dist/{bulkActionTypes-DAo3_ECS.js → bulkActionTypes-D5y3Acn1.js} +2 -2
- package/dist/{bulkActionTypes-DAo3_ECS.js.map → bulkActionTypes-D5y3Acn1.js.map} +1 -1
- package/dist/{filter-state-CZcczj37.js → filter-state-Do862BNr.js} +56 -38
- package/dist/filter-state-Do862BNr.js.map +1 -0
- package/dist/{index-BwV_Pz7v.js → index-Bldaza5t.js} +5 -1
- package/dist/index-Bldaza5t.js.map +1 -0
- package/dist/{index-BFxzUzoz.js → index-Dt0zG4YB.js} +2 -2
- package/dist/{index-BFxzUzoz.js.map → index-Dt0zG4YB.js.map} +1 -1
- package/dist/index.js +63 -173
- package/dist/index.js.map +1 -1
- package/dist/{makeZeroShortcutPreprocessor-CxsiGTRW.js → makeZeroShortcutPreprocessor-D5KWcgUA.js} +2 -4
- package/dist/makeZeroShortcutPreprocessor-D5KWcgUA.js.map +1 -0
- package/dist/{proxy-DEehATlA.js → react-ORV84FjM.js} +6862 -5814
- package/dist/react-ORV84FjM.js.map +1 -0
- package/dist/src/beta/components/Calendar/Calendar.d.ts +8 -17
- package/dist/src/beta/components/Calendar/CalendarBetaPropsContext.d.ts +1 -0
- package/dist/src/beta/components/Calendar/useCalendarBetaProps.d.ts +1 -0
- package/dist/src/beta/components/FilterBar/FilterBar.d.ts +12 -53
- package/dist/src/beta/components/FilterBar/FilterDateList.d.ts +8 -0
- package/dist/src/beta/components/FilterBar/FilterDateRange.d.ts +15 -9
- package/dist/src/beta/components/FilterBar/FilterDateSingle.d.ts +15 -9
- package/dist/src/beta/components/FilterBar/FilterDrawer.d.ts +1 -14
- package/dist/src/beta/components/FilterBar/FilterItemWrapper.d.ts +0 -7
- package/dist/src/beta/components/FilterBar/FilterNumericRange.d.ts +4 -13
- package/dist/src/beta/components/FilterBar/FilterPopoverButton.d.ts +6 -8
- package/dist/src/beta/components/FilterBar/FilterSearchField.d.ts +3 -6
- package/dist/src/beta/components/FilterBar/FilterTextInput.d.ts +4 -13
- package/dist/src/beta/components/FilterBar/FilterToggleButton.d.ts +3 -14
- package/dist/src/beta/components/FilterBar/FilterTriggerButton.d.ts +3 -3
- package/dist/src/beta/components/FilterBar/internal/FilterGroupContext.d.ts +6 -20
- package/dist/src/beta/components/FilterBar/internal/adapters/index.d.ts +3 -8
- package/dist/src/beta/components/FilterBar/internal/adapters/types.d.ts +7 -19
- package/dist/src/beta/components/FilterBar/internal/types.d.ts +48 -57
- package/dist/src/beta/components/FilterBar/internal/utils/dateConstraints.d.ts +3 -3
- package/dist/src/beta/components/FilterBar/internal/utils/dateListLibraryOptions.d.ts +4 -7
- package/dist/src/beta/components/FilterBar/internal/utils/filter-state.d.ts +3 -24
- package/dist/src/beta/components/InteractiveCard/InteractiveCard.d.ts +2 -47
- package/dist/src/beta/components/InteractiveCard/types.d.ts +13 -71
- package/dist/src/beta/components/Page/Page.d.ts +8 -166
- package/dist/src/beta/components/Page/PageContent.d.ts +3 -17
- package/dist/src/beta/components/Page/PageContext.d.ts +9 -0
- package/dist/src/beta/components/Page/PageFooter.d.ts +2 -15
- package/dist/src/beta/components/Page/PageHeader.d.ts +38 -91
- package/dist/src/beta/components/Page/PagePanel.d.ts +17 -115
- package/dist/src/beta/components/Page/PagePanelContent.d.ts +5 -37
- package/dist/src/beta/components/Page/PagePanelFooter.d.ts +4 -27
- package/dist/src/beta/components/Page/PagePanelHeader.d.ts +3 -16
- package/dist/src/beta/components/Page/PageSidebar.d.ts +8 -41
- package/dist/src/beta/components/Page/PageSidebarHeader.d.ts +2 -20
- package/dist/src/beta/components/Page/internal/PagePanelContext.d.ts +1 -6
- package/dist/src/beta/components/Page/pageBreakpoint.d.ts +5 -18
- package/dist/src/beta/components/RichTextEditor/RichTextEditor.d.ts +2 -25
- package/dist/src/beta/components/RichTextEditor/internal/LinkPopover.d.ts +1 -0
- package/dist/src/beta/components/RichTextEditor/internal/MentionList.d.ts +1 -0
- package/dist/src/beta/components/RichTextEditor/internal/MentionPopover.d.ts +1 -0
- package/dist/src/beta/components/RichTextEditor/internal/RichTextEditorToolbar.d.ts +1 -0
- package/dist/src/beta/components/RichTextEditor/internal/YouTubeEmbedPrompt.d.ts +1 -0
- package/dist/src/beta/components/RichTextEditor/internal/YouTubePopover.d.ts +1 -0
- package/dist/src/beta/components/RichTextEditor/internal/extensions/ImageUploadExtension.d.ts +1 -0
- package/dist/src/beta/components/RichTextEditor/internal/extensions/LinkKeyboardShortcutExtension.d.ts +1 -0
- package/dist/src/beta/components/RichTextEditor/internal/extensions/MentionExtension.d.ts +5 -0
- package/dist/src/beta/components/RichTextEditor/internal/extensions/SafeImageExtension.d.ts +3 -10
- package/dist/src/beta/components/RichTextEditor/internal/extensions/YoutubeExtension.d.ts +4 -0
- package/dist/src/beta/components/RichTextEditor/internal/useRichTextEditor.d.ts +3 -17
- package/dist/src/beta/components/RichTextEditor/types.d.ts +46 -71
- package/dist/src/beta/components/SavedFiltersButton/SavedFiltersButton.d.ts +2 -33
- package/dist/src/beta/components/SavedFiltersButton/internal/AddSavedFilterDrawer.d.ts +2 -12
- package/dist/src/beta/components/SavedFiltersButton/internal/EditSavedFiltersDrawer.d.ts +2 -20
- package/dist/src/beta/components/SavedFiltersButton/parts.d.ts +0 -23
- package/dist/src/beta/components/SavedFiltersButton/types.d.ts +36 -85
- package/dist/src/beta/components/Table/DataTable/DataTable.d.ts +34 -84
- package/dist/src/beta/components/Table/DataTable/internal/DataTableBody.d.ts +15 -22
- package/dist/src/beta/components/Table/DataTable/internal/DataTableBodyRow.d.ts +47 -18
- package/dist/src/beta/components/Table/DataTable/internal/DataTableCellAffordance.d.ts +8 -0
- package/dist/src/beta/components/Table/DataTable/internal/DataTableFooter.d.ts +17 -23
- package/dist/src/beta/components/Table/DataTable/internal/DataTableHeader.d.ts +6 -9
- package/dist/src/beta/components/Table/DataTable/internal/DataTablePagination.d.ts +16 -0
- package/dist/src/beta/components/Table/DataTable/internal/cells/CellFocusContext.d.ts +2 -11
- package/dist/src/beta/components/Table/DataTable/internal/cells/CellStatus.d.ts +7 -5
- package/dist/src/beta/components/Table/DataTable/internal/cells/DataTableBodyCell.d.ts +4 -8
- package/dist/src/beta/components/Table/DataTable/internal/cells/DataTableBodyImmutableCell.d.ts +4 -17
- package/dist/src/beta/components/Table/DataTable/internal/cells/DataTableBodyMutableCell.d.ts +4 -18
- package/dist/src/beta/components/Table/DataTable/internal/cells/DataTableFooterCell.d.ts +3 -10
- package/dist/src/beta/components/Table/DataTable/internal/cells/DataTableHeaderCell.d.ts +3 -15
- package/dist/src/beta/components/Table/DataTable/internal/cells/DataTableOverflowCell.d.ts +4 -0
- package/dist/src/beta/components/Table/DataTable/internal/cells/useCellFocusListener.d.ts +2 -6
- package/dist/src/beta/components/Table/DataTable/internal/constants.d.ts +13 -30
- package/dist/src/beta/components/Table/DataTable/internal/context/focus/DTFocusContext.d.ts +1 -6
- package/dist/src/beta/components/Table/DataTable/internal/context/focus/DTFocusProvider.d.ts +3 -0
- package/dist/src/beta/components/Table/DataTable/internal/context/focus/useDTFocusDispatchContext.d.ts +1 -0
- package/dist/src/beta/components/Table/DataTable/internal/context/focus/useDTFocusStateContext.d.ts +1 -0
- package/dist/src/beta/components/Table/DataTable/internal/context/rowClick/DataTableRowClickContext.d.ts +2 -5
- package/dist/src/beta/components/Table/DataTable/internal/context/rowClick/DataTableRowClickProvider.d.ts +2 -5
- package/dist/src/beta/components/Table/DataTable/internal/context/rowClick/useDataTableRowClick.d.ts +1 -0
- package/dist/src/beta/components/Table/DataTable/internal/context/surface/DataTableSurfaceCoordinatorContext.d.ts +4 -0
- package/dist/src/beta/components/Table/DataTable/internal/context/surface/DataTableSurfaceCoordinatorProvider.d.ts +1 -0
- package/dist/src/beta/components/Table/DataTable/internal/context/surface/useDataTableSurfaceCoordinator.d.ts +1 -0
- package/dist/src/beta/components/Table/DataTable/internal/dataTableCellAffordanceHostClassName.d.ts +1 -0
- package/dist/src/beta/components/Table/DataTable/internal/editable-cells/DataTableEditableBooleanCell.d.ts +6 -0
- package/dist/src/beta/components/Table/DataTable/internal/editable-cells/DataTableEditableCellEditIcon.d.ts +1 -4
- package/dist/src/beta/components/Table/DataTable/internal/editable-cells/DataTableEditableCustomCell.d.ts +4 -0
- package/dist/src/beta/components/Table/DataTable/internal/editable-cells/DataTableEditableMultiselectAsyncCell.d.ts +5 -25
- package/dist/src/beta/components/Table/DataTable/internal/editable-cells/DataTableEditableMultiselectCell.d.ts +3 -13
- package/dist/src/beta/components/Table/DataTable/internal/editable-cells/DataTableEditableNumberCell.d.ts +4 -0
- package/dist/src/beta/components/Table/DataTable/internal/editable-cells/DataTableEditableSelectAsyncCell.d.ts +5 -0
- package/dist/src/beta/components/Table/DataTable/internal/editable-cells/DataTableEditableSelectCell.d.ts +4 -0
- package/dist/src/beta/components/Table/DataTable/internal/editable-cells/DataTableEditableTextCell.d.ts +4 -0
- package/dist/src/beta/components/Table/DataTable/internal/editable-cells/types.d.ts +7 -20
- package/dist/src/beta/components/Table/DataTable/internal/editable-cells/useCustomEditHelpers.d.ts +13 -26
- package/dist/src/beta/components/Table/DataTable/internal/editable-cells/useEditableMenuCell.d.ts +2 -10
- package/dist/src/beta/components/Table/DataTable/internal/useAsyncData.d.ts +8 -0
- package/dist/src/beta/components/Table/DataTable/internal/useColumnOrder.d.ts +2 -2
- package/dist/src/beta/components/Table/DataTable/internal/useDataTableVirtualizer.d.ts +7 -18
- package/dist/src/beta/components/Table/DataTable/internal/usePageDataCache.d.ts +6 -10
- package/dist/src/beta/components/Table/DataTable/internal/util/cellPositionHelpers.d.ts +0 -3
- package/dist/src/beta/components/Table/DataTable/internal/util/cellTypeHelpers.d.ts +7 -24
- package/dist/src/beta/components/Table/DataTable/internal/util/getCellInteractives.d.ts +4 -17
- package/dist/src/beta/components/Table/DataTable/internal/util/getTanStackColumnDef.d.ts +5 -29
- package/dist/src/beta/components/Table/DataTable/internal/util/shallowSortingEqual.d.ts +1 -0
- package/dist/src/beta/components/Table/DataTable/parts.d.ts +3 -17
- package/dist/src/beta/components/Table/DataTable/types.d.ts +41 -64
- package/dist/src/beta/components/Table/base/TableBase.d.ts +8 -26
- package/dist/src/beta/components/Table/base/TableBody.d.ts +5 -14
- package/dist/src/beta/components/Table/base/TableContainer.d.ts +1 -11
- package/dist/src/beta/components/Table/base/TableFooter.d.ts +5 -14
- package/dist/src/beta/components/Table/base/TableHeader.d.ts +5 -14
- package/dist/src/beta/components/Table/base/cells/TableBodyCell.d.ts +4 -13
- package/dist/src/beta/components/Table/base/cells/TableEmptyCellContent.d.ts +1 -1
- package/dist/src/beta/components/Table/base/cells/TableFooterCell.d.ts +5 -13
- package/dist/src/beta/components/Table/base/cells/TableHeaderCell.d.ts +8 -25
- package/dist/src/beta/components/Table/base/cells/types.d.ts +2 -6
- package/dist/src/beta/components/Table/columnTypeDefaults.d.ts +7 -36
- package/dist/src/beta/components/Table/createColumnHelper.d.ts +38 -153
- package/dist/src/beta/components/Table/formatters/booleanFormatter.d.ts +4 -15
- package/dist/src/beta/components/Table/formatters/chipsFormatter.d.ts +7 -9
- package/dist/src/beta/components/Table/formatters/currencyFormatter.d.ts +3 -15
- package/dist/src/beta/components/Table/formatters/dateFormatter.d.ts +10 -23
- package/dist/src/beta/components/Table/formatters/dateTimeFormatter.d.ts +23 -46
- package/dist/src/beta/components/Table/formatters/htmlFormatter.d.ts +2 -11
- package/dist/src/beta/components/Table/formatters/htmlToMarkdown.d.ts +5 -10
- package/dist/src/beta/components/Table/formatters/markdownFormatter.d.ts +3 -8
- package/dist/src/beta/components/Table/formatters/numberFormatter.d.ts +8 -27
- package/dist/src/beta/components/Table/formatters/percentFormatter.d.ts +4 -15
- package/dist/src/beta/components/Table/formatters/presets.d.ts +4 -12
- package/dist/src/beta/components/Table/formatters/timeFormatter.d.ts +7 -17
- package/dist/src/beta/components/Table/formatters/yearlessDateFormatter.d.ts +9 -21
- package/dist/src/beta/components/Table/internal/ResizeHandle.d.ts +5 -9
- package/dist/src/beta/components/Table/internal/TruncateChips.d.ts +2 -11
- package/dist/src/beta/components/Table/internal/getCommonPinningClasses.d.ts +2 -1
- package/dist/src/beta/components/Table/internal/getCommonPinningStyles.d.ts +6 -2
- package/dist/src/beta/components/Table/internal/scrollCellIntoView.d.ts +3 -7
- package/dist/src/beta/components/Table/internal/types.d.ts +2 -7
- package/dist/src/beta/components/Table/types.d.ts +183 -462
- package/dist/src/beta/components/Toolbar/Toolbar.d.ts +35 -267
- package/dist/src/beta/components/Toolbar/ToolbarButton.d.ts +5 -26
- package/dist/src/beta/components/Toolbar/ToolbarButtonLink.d.ts +5 -28
- package/dist/src/beta/components/Toolbar/ToolbarButtonToggle.d.ts +5 -27
- package/dist/src/beta/components/Toolbar/ToolbarControlGroup.d.ts +6 -8
- package/dist/src/beta/components/Toolbar/ToolbarSearchField.d.ts +3 -14
- package/dist/src/beta/components/Toolbar/ToolbarSelect.d.ts +13 -65
- package/dist/src/beta/components/Toolbar/internal/ToolbarContext.d.ts +0 -32
- package/dist/src/beta/components/Toolbar/internal/ToolbarItemOverflowContext.d.ts +0 -13
- package/dist/src/beta/components/Toolbar/internal/ToolbarItemWrapper.d.ts +2 -28
- package/dist/src/beta/components/Toolbar/internal/ToolbarOverflowMenu.d.ts +4 -21
- package/dist/src/beta/components/Toolbar/internal/utils/accessibility.d.ts +7 -15
- package/dist/src/beta/components/Toolbar/types.d.ts +7 -26
- package/dist/src/beta/components/TreeSelectField/TreeSelectField.d.ts +2 -23
- package/dist/src/beta/components/TreeSelectField/TreeSelectFieldSync.d.ts +10 -46
- package/dist/src/beta/components/TreeSelectField/internal/TreeContent.d.ts +5 -21
- package/dist/src/beta/components/TreeSelectField/internal/TreePanel.d.ts +1 -38
- package/dist/src/beta/components/TreeSelectField/internal/TreeRow.d.ts +6 -38
- package/dist/src/beta/components/TreeSelectField/internal/TreeSelectFieldInput.d.ts +2 -50
- package/dist/src/beta/components/TreeSelectField/internal/VirtualizedTreePanel.d.ts +2 -39
- package/dist/src/beta/components/TreeSelectField/internal/treeSync.d.ts +6 -21
- package/dist/src/beta/components/TreeSelectField/internal/treeUtils.d.ts +3 -19
- package/dist/src/beta/components/TreeSelectField/internal/useTree.d.ts +9 -50
- package/dist/src/beta/components/TreeSelectField/internal/useTreeCascade.d.ts +8 -79
- package/dist/src/beta/components/TreeSelectField/internal/useTreeKeyboard.d.ts +3 -29
- package/dist/src/beta/components/TreeSelectField/internal/useTreeLazyCascade.d.ts +8 -36
- package/dist/src/beta/components/TreeSelectField/internal/useTreeLoader.d.ts +10 -34
- package/dist/src/beta/components/TreeSelectField/parts.d.ts +3 -9
- package/dist/src/beta/components/TreeSelectField/types.d.ts +82 -68
- package/dist/src/beta/components/TreeSelectMenu/TreeSelectMenu.d.ts +4 -18
- package/dist/src/beta/components/TreeSelectMenu/TreeSelectMenuSync.d.ts +9 -47
- package/dist/src/beta/components/TreeSelectMenu/parts.d.ts +4 -4
- package/dist/src/beta/components/TreeSelectMenu/types.d.ts +44 -54
- package/dist/src/beta/components/TypeaheadTextField/TypeaheadTextField.d.ts +15 -43
- package/dist/src/beta/components/TypeaheadTextField/internal/SuggestionItem.d.ts +1 -18
- package/dist/src/beta/hooks/useAdaptiveView/useAdaptiveView.d.ts +6 -41
- package/dist/src/components/AiMark/AiMark.d.ts +9 -69
- package/dist/src/components/AiMark/internal/AiMarkIconAnimated.d.ts +2 -20
- package/dist/src/components/AiMark/internal/AiMarkInteractive.d.ts +4 -0
- package/dist/src/components/Alert/Alert.d.ts +10 -54
- package/dist/src/components/Announcement/Announcement.d.ts +7 -49
- package/dist/src/components/Avatar/Avatar.d.ts +5 -41
- package/dist/src/components/Avatar/AvatarGroup.d.ts +4 -25
- package/dist/src/components/Avatar/internal/Avatar.d.ts +1 -44
- package/dist/src/components/Avatar/internal/AvatarBase.d.ts +13 -53
- package/dist/src/components/Badge/Badge.d.ts +9 -42
- package/dist/src/components/Breadcrumbs/Breadcrumbs.d.ts +6 -33
- package/dist/src/components/Breadcrumbs/BreadcrumbsLink.d.ts +1 -15
- package/dist/src/components/Button/Button.d.ts +19 -41
- package/dist/src/components/Button/internal/buttonAiMarkUtils.d.ts +2 -5
- package/dist/src/components/ButtonCompound/ButtonCompound.d.ts +5 -28
- package/dist/src/components/ButtonLink/ButtonLink.d.ts +23 -59
- package/dist/src/components/ButtonToggle/ButtonToggle.d.ts +14 -51
- package/dist/src/components/Calendar/Calendar.d.ts +43 -239
- package/dist/src/components/Calendar/CalendarContext.d.ts +32 -102
- package/dist/src/components/Calendar/CalendarMonth.d.ts +1 -6
- package/dist/src/components/Calendar/CalendarMonthButton.d.ts +2 -11
- package/dist/src/components/Calendar/CalendarNextButton.d.ts +1 -8
- package/dist/src/components/Calendar/CalendarNowButton.d.ts +5 -12
- package/dist/src/components/Calendar/CalendarPrevButton.d.ts +1 -8
- package/dist/src/components/Calendar/CalendarYearButton.d.ts +2 -10
- package/dist/src/components/Calendar/internal/CalendarDay.d.ts +3 -13
- package/dist/src/components/Calendar/internal/CalendarMonthSelection.d.ts +3 -17
- package/dist/src/components/Calendar/internal/CalendarWeek.d.ts +5 -18
- package/dist/src/components/Calendar/internal/utils.d.ts +1 -0
- package/dist/src/components/Card/Card.d.ts +4 -21
- package/dist/src/components/Checkbox/Checkbox.d.ts +3 -50
- package/dist/src/components/Checkbox/CheckboxGroup.d.ts +21 -65
- package/dist/src/components/Checkbox/internal/Checkbox.d.ts +32 -90
- package/dist/src/components/Checkbox/internal/CheckboxGroupContext.d.ts +2 -14
- package/dist/src/components/Checkbox/types.d.ts +2 -0
- package/dist/src/components/Chip/Chip.d.ts +5 -41
- package/dist/src/components/Chip/internal/Chip.d.ts +13 -84
- package/dist/src/components/DateFieldRange/DateFieldRange.d.ts +27 -44
- package/dist/src/components/DateFieldRange/internal/DateFieldRangeCalendar.d.ts +7 -0
- package/dist/src/components/DateFieldRange/internal/MaskedDateRangeInput.d.ts +18 -11
- package/dist/src/components/DateFieldRange/internal/maskito/dateRangePlaceholderMask.d.ts +2 -0
- package/dist/src/components/DateFieldRange/internal/useDateFieldRangeConversion.d.ts +1 -7
- package/dist/src/components/DateFieldRange/internal/useDateFieldRangeState.d.ts +11 -33
- package/dist/src/components/DateFieldRange/internal/utils.d.ts +4 -0
- package/dist/src/components/DateFieldRange/parts.d.ts +2 -7
- package/dist/src/components/DateFieldSingle/DateFieldSingle.d.ts +24 -46
- package/dist/src/components/DateFieldSingle/internal/DateFieldSingleCalendar.d.ts +4 -0
- package/dist/src/components/DateFieldSingle/internal/MaskedDateInput.d.ts +15 -8
- package/dist/src/components/DateFieldSingle/internal/TimezoneMessage.d.ts +2 -0
- package/dist/src/components/DateFieldSingle/internal/maskito/datePlaceholderMask.d.ts +1 -0
- package/dist/src/components/DateFieldSingle/internal/maskito/makeZeroShortcutPreprocessor.d.ts +3 -5
- package/dist/src/components/DateFieldSingle/internal/useDateFieldSingleConversion.d.ts +3 -29
- package/dist/src/components/DateFieldSingle/internal/useDateFieldSingleState.d.ts +13 -22
- package/dist/src/components/DateFieldSingle/internal/utils.d.ts +6 -16
- package/dist/src/components/DateFieldSingle/parts.d.ts +2 -7
- package/dist/src/components/DateFieldSingle/types.d.ts +1 -0
- package/dist/src/components/DateFieldYearless/DateFieldYearless.d.ts +31 -96
- package/dist/src/components/DateFieldYearless/internal/PickerList.d.ts +12 -40
- package/dist/src/components/DateFieldYearless/internal/PickerListOption.d.ts +5 -22
- package/dist/src/components/DateFieldYearless/internal/YearlessDateInput.d.ts +23 -8
- package/dist/src/components/DateFieldYearless/internal/YearlessDateInputWithPicker.d.ts +31 -90
- package/dist/src/components/DateFieldYearless/internal/YearlessDateSelectionPopover.d.ts +6 -8
- package/dist/src/components/DateFieldYearless/internal/maskito/yearlessDatePlaceholderMask.d.ts +1 -0
- package/dist/src/components/DateFieldYearless/internal/maskito/yearlessDateSegmentsStepping.d.ts +3 -5
- package/dist/src/components/DateFieldYearless/internal/utils.d.ts +7 -36
- package/dist/src/components/DateFieldYearless/parts.d.ts +2 -4
- package/dist/src/components/DateFieldYearless/types.d.ts +3 -0
- package/dist/src/components/DateFieldYearlessRange/DateFieldYearlessRange.d.ts +32 -48
- package/dist/src/components/DateFieldYearlessRange/parts.d.ts +2 -4
- package/dist/src/components/DaysOfTheWeek/DaysOfTheWeek.d.ts +32 -93
- package/dist/src/components/Details/Details.d.ts +10 -38
- package/dist/src/components/Details/DetailsContent.d.ts +6 -30
- package/dist/src/components/Details/DetailsSummary.d.ts +2 -18
- package/dist/src/components/Details/internal/DetailsArrow.d.ts +1 -17
- package/dist/src/components/Dialog/Dialog.d.ts +41 -218
- package/dist/src/components/Dialog/DialogCancelButton.d.ts +2 -17
- package/dist/src/components/Dialog/DialogContent.d.ts +4 -35
- package/dist/src/components/Dialog/DialogFooter.d.ts +4 -26
- package/dist/src/components/Dialog/DialogHeader.d.ts +2 -17
- package/dist/src/components/Dialog/internal/DialogContext.d.ts +0 -3
- package/dist/src/components/Dialog/internal/useInitialFocus.d.ts +3 -14
- package/dist/src/components/Divider/Divider.d.ts +8 -44
- package/dist/src/components/Dnd/DndHandle.d.ts +1 -18
- package/dist/src/components/Dnd/DndHandleButton.d.ts +2 -26
- package/dist/src/components/Dnd/DndSortLine.d.ts +4 -31
- package/dist/src/components/Dnd/DndZone.d.ts +6 -43
- package/dist/src/components/Dnd/index.d.ts +8 -0
- package/dist/src/components/DndSort/DndSort.d.ts +2 -34
- package/dist/src/components/DndSort/DndSortCard.d.ts +7 -51
- package/dist/src/components/DndSort/DndSortZone.d.ts +17 -99
- package/dist/src/components/DndSort/index.d.ts +6 -0
- package/dist/src/components/DndSort/internal/DndSortContextProvider.d.ts +1 -3
- package/dist/src/components/DndSort/internal/DndSortItem.d.ts +0 -11
- package/dist/src/components/DndSort/internal/DndSortOverlay.d.ts +0 -4
- package/dist/src/components/DndSort/internal/DndSortZoneContextProvider.d.ts +1 -9
- package/dist/src/components/DndSort/internal/test-utils.d.ts +2 -9
- package/dist/src/components/DndSort/internal/utils.d.ts +6 -32
- package/dist/src/components/DndSort/types.d.ts +14 -35
- package/dist/src/components/Drawer/Drawer.d.ts +25 -151
- package/dist/src/components/Drawer/DrawerCancelButton.d.ts +2 -21
- package/dist/src/components/Drawer/DrawerContent.d.ts +4 -38
- package/dist/src/components/Drawer/DrawerFooter.d.ts +4 -30
- package/dist/src/components/Drawer/DrawerHeader.d.ts +9 -41
- package/dist/src/components/Drawer/index.d.ts +1 -1
- package/dist/src/components/Drawer/internal/DrawerContext.d.ts +0 -15
- package/dist/src/components/Drawer/internal/useDrawerContext.d.ts +1 -6
- package/dist/src/components/DrillDown/DrillDown.d.ts +20 -48
- package/dist/src/components/DrillDown/DrillDownContent.d.ts +1 -21
- package/dist/src/components/DrillDown/DrillDownFooter.d.ts +1 -25
- package/dist/src/components/DrillDown/DrillDownHeader.d.ts +3 -25
- package/dist/src/components/DrillDown/DrillDownNextButton.d.ts +2 -22
- package/dist/src/components/DrillDown/DrillDownPrevButton.d.ts +2 -22
- package/dist/src/components/DrillDown/internal/DrillDownContext.d.ts +3 -0
- package/dist/src/components/DrillDown/internal/useDrillDownContext.d.ts +1 -0
- package/dist/src/components/DrillDown/internal/useDrillDownContextState.d.ts +4 -0
- package/dist/src/components/DrillDown/useDrilldown.d.ts +4 -23
- package/dist/src/components/EditCard/EditCard.d.ts +21 -77
- package/dist/src/components/FieldLabel/FieldLabel.d.ts +13 -46
- package/dist/src/components/FieldLabel/internal/FieldLabelButton.d.ts +1 -20
- package/dist/src/components/FieldLabel/internal/FieldLabelMoreInfoIcon.d.ts +2 -5
- package/dist/src/components/FieldMessage/FieldMessage.d.ts +18 -56
- package/dist/src/components/FieldMessage/utils.d.ts +2 -3
- package/dist/src/components/Flex/Flex.d.ts +12 -63
- package/dist/src/components/Flex/internal/FlexSpecificProps.d.ts +6 -22
- package/dist/src/components/Grid/Grid.d.ts +15 -92
- package/dist/src/components/Grid/internal/GridItem.d.ts +0 -23
- package/dist/src/components/Grid/internal/GridSpecificProps.d.ts +5 -19
- package/dist/src/components/Icon/Icon.d.ts +10 -58
- package/dist/src/components/Layout/Layout.d.ts +60 -124
- package/dist/src/components/Link/Link.d.ts +12 -38
- package/dist/src/components/Link/internal/Link.d.ts +7 -52
- package/dist/src/components/Link/internal/LinkHeadless.d.ts +3 -19
- package/dist/src/components/Link/useLinkStyles.d.ts +3 -8
- package/dist/src/components/LinkButton/LinkButton.d.ts +9 -28
- package/dist/src/components/List/List.d.ts +10 -48
- package/dist/src/components/List/ListItem.d.ts +1 -4
- package/dist/src/components/ListView/ListView.d.ts +4 -46
- package/dist/src/components/ListView/ListViewOption.d.ts +9 -20
- package/dist/src/components/ListView/ListViewOptionCell.d.ts +1 -11
- package/dist/src/components/ListView/internal/ListViewContext.d.ts +2 -13
- package/dist/src/components/ListView/internal/types.d.ts +17 -35
- package/dist/src/components/Listbox/Listbox.d.ts +32 -99
- package/dist/src/components/Listbox/ListboxOption.d.ts +7 -28
- package/dist/src/components/Listbox/ListboxOptionGroup.d.ts +6 -23
- package/dist/src/components/Listbox/internal/ListboxContext.d.ts +2 -20
- package/dist/src/components/Menu/Menu.d.ts +8 -48
- package/dist/src/components/Menu/MenuItem.d.ts +8 -41
- package/dist/src/components/Menu/internal/MenuContext.d.ts +0 -9
- package/dist/src/components/Menu/internal/MenuNested.d.ts +2 -35
- package/dist/src/components/Menu/internal/menuSelectors.d.ts +0 -3
- package/dist/src/components/Menu/types.d.ts +32 -40
- package/dist/src/components/MultiSelectField/MultiSelectField.d.ts +1 -19
- package/dist/src/components/MultiSelectField/MultiSelectFieldSync.d.ts +10 -65
- package/dist/src/components/MultiSelectField/internal/MultiSelectFieldComboboxMode.d.ts +1 -3
- package/dist/src/components/MultiSelectField/internal/MultiSelectFieldInput.d.ts +1 -49
- package/dist/src/components/MultiSelectField/internal/MultiSelectFieldSelectMode.d.ts +1 -4
- package/dist/src/components/MultiSelectField/internal/MultiSelectFieldTrigger.d.ts +1 -4
- package/dist/src/components/MultiSelectField/internal/types.d.ts +0 -2
- package/dist/src/components/MultiSelectField/internal/useChipLayout.d.ts +1 -7
- package/dist/src/components/MultiSelectField/internal/useComboMultiple.d.ts +3 -20
- package/dist/src/components/MultiSelectField/internal/useSelectModeMultiple.d.ts +1 -6
- package/dist/src/components/MultiSelectField/parts.d.ts +0 -12
- package/dist/src/components/MultiSelectField/types.d.ts +97 -215
- package/dist/src/components/MultiSelectMenu/MultiSelectMenu.d.ts +1 -30
- package/dist/src/components/MultiSelectMenu/MultiSelectMenuSync.d.ts +10 -34
- package/dist/src/components/MultiSelectMenu/types.d.ts +75 -98
- package/dist/src/components/NumberField/NumberField.d.ts +76 -40
- package/dist/src/components/Overflow/Overflow.d.ts +17 -61
- package/dist/src/components/Overflow/OverflowText.d.ts +10 -60
- package/dist/src/components/Overflow/index.d.ts +4 -21
- package/dist/src/components/Page/Page.d.ts +8 -156
- package/dist/src/components/Page/PageContent.d.ts +4 -19
- package/dist/src/components/Page/PageContext.d.ts +9 -0
- package/dist/src/components/Page/PageFooter.d.ts +2 -15
- package/dist/src/components/Page/PageHeader.d.ts +34 -85
- package/dist/src/components/Page/PagePanel.d.ts +13 -52
- package/dist/src/components/Page/PageSidebar.d.ts +8 -41
- package/dist/src/components/Page/PageSidebarHeader.d.ts +2 -20
- package/dist/src/components/Page/pageBreakpoint.d.ts +6 -19
- package/dist/src/components/Pagination/Pagination.d.ts +44 -31
- package/dist/src/components/Pagination/internal/Pagination.d.ts +6 -23
- package/dist/src/components/Pagination/internal/PaginationItem.d.ts +5 -38
- package/dist/src/components/Pagination/internal/PaginationItemsPerPageMenu.d.ts +5 -35
- package/dist/src/components/Pagination/internal/PaginationOverflowMenu.d.ts +12 -52
- package/dist/src/components/Pagination/internal/usePaginationArray.d.ts +4 -19
- package/dist/src/components/Pagination/parts.d.ts +3 -14
- package/dist/src/components/Popover/Popover.d.ts +55 -296
- package/dist/src/components/Popover/PopoverButton.d.ts +2 -29
- package/dist/src/components/Popover/PopoverClose.d.ts +2 -28
- package/dist/src/components/Popover/PopoverContent.d.ts +8 -38
- package/dist/src/components/Popover/PopoverTrigger.d.ts +6 -32
- package/dist/src/components/Popover/internal/compareElements.d.ts +1 -0
- package/dist/src/components/Popover/internal/usePopoverContext.d.ts +1 -0
- package/dist/src/components/ProgressBar/ProgressBar.d.ts +17 -69
- package/dist/src/components/Radio/Radio.d.ts +3 -82
- package/dist/src/components/Radio/RadioGroup.d.ts +21 -73
- package/dist/src/components/Radio/internal/Radio.d.ts +22 -117
- package/dist/src/components/Radio/internal/RadioGroupContext.d.ts +2 -14
- package/dist/src/components/Radio/types.d.ts +2 -9
- package/dist/src/components/SearchField/SearchField.d.ts +5 -43
- package/dist/src/components/SearchField/internal/SearchField.d.ts +6 -53
- package/dist/src/components/SegmentedControl/SegmentedControl.d.ts +12 -82
- package/dist/src/components/SegmentedControl/SegmentedControlSegment.d.ts +12 -43
- package/dist/src/components/SegmentedControl/internal/SegmentedControlContext.d.ts +0 -15
- package/dist/src/components/SelectCard/SelectCard.d.ts +13 -78
- package/dist/src/components/SelectCard/SelectCardGroup.d.ts +13 -47
- package/dist/src/components/SelectCard/internal/SelectCardContext.d.ts +14 -51
- package/dist/src/components/SelectCard/internal/SelectCardProvider.d.ts +3 -29
- package/dist/src/components/SelectField/SelectField.d.ts +1 -21
- package/dist/src/components/SelectField/SelectFieldSync.d.ts +6 -44
- package/dist/src/components/SelectField/internal/SelectFieldComboboxMode.d.ts +1 -4
- package/dist/src/components/SelectField/internal/SelectFieldInput.d.ts +1 -41
- package/dist/src/components/SelectField/internal/SelectFieldLabel.d.ts +3 -30
- package/dist/src/components/SelectField/internal/SelectFieldSelectMode.d.ts +1 -4
- package/dist/src/components/SelectField/internal/SelectFieldTrigger.d.ts +2 -5
- package/dist/src/components/SelectField/internal/useCombo.d.ts +1 -3
- package/dist/src/components/SelectField/internal/useSelectMode.d.ts +1 -4
- package/dist/src/components/SelectField/types.d.ts +95 -171
- package/dist/src/components/SelectMenu/SelectMenu.d.ts +1 -26
- package/dist/src/components/SelectMenu/SelectMenuSync.d.ts +6 -30
- package/dist/src/components/SelectMenu/internal/useMenuInteraction.d.ts +2 -0
- package/dist/src/components/SelectMenu/types.d.ts +65 -64
- package/dist/src/components/SelectTrigger/SelectTrigger.d.ts +19 -11
- package/dist/src/components/SelectTrigger/internal/SelectTriggerBase.d.ts +18 -2
- package/dist/src/components/SideNav/SideNav.d.ts +10 -77
- package/dist/src/components/SideNav/SideNavCollapsible.d.ts +14 -49
- package/dist/src/components/SideNav/SideNavContext.d.ts +0 -18
- package/dist/src/components/SideNav/SideNavGroup.d.ts +2 -27
- package/dist/src/components/SideNav/SideNavLink.d.ts +8 -35
- package/dist/src/components/SideNav/internal/SideNavContext.d.ts +1 -13
- package/dist/src/components/SideNav/internal/SideNavLink.d.ts +14 -50
- package/dist/src/components/SideNav/internal/SideNavProvider.d.ts +1 -17
- package/dist/src/components/SideNav/internal/utils.d.ts +1 -13
- package/dist/src/components/SideNav/useSideNav.d.ts +2 -3
- package/dist/src/components/Skeleton/SkeletonCircle.d.ts +5 -39
- package/dist/src/components/Skeleton/SkeletonPill.d.ts +5 -39
- package/dist/src/components/Skeleton/SkeletonRectangle.d.ts +5 -40
- package/dist/src/components/Skeleton/SkeletonText.d.ts +6 -43
- package/dist/src/components/Skeleton/index.d.ts +5 -0
- package/dist/src/components/Spinner/Spinner.d.ts +5 -34
- package/dist/src/components/SrOnly/SrOnly.d.ts +2 -13
- package/dist/src/components/Stepper/Stepper.d.ts +34 -210
- package/dist/src/components/Stepper/StepperFinalPanel.d.ts +2 -23
- package/dist/src/components/Stepper/StepperList.d.ts +1 -22
- package/dist/src/components/Stepper/StepperNextButton.d.ts +12 -52
- package/dist/src/components/Stepper/StepperPanel.d.ts +6 -37
- package/dist/src/components/Stepper/StepperPrevButton.d.ts +6 -32
- package/dist/src/components/Stepper/StepperStep.d.ts +8 -43
- package/dist/src/components/Stepper/base/StepperBase.d.ts +18 -67
- package/dist/src/components/Stepper/base/StepperBaseList.d.ts +1 -15
- package/dist/src/components/Stepper/base/StepperBasePanel.d.ts +6 -23
- package/dist/src/components/Stepper/base/StepperBaseStep.d.ts +14 -37
- package/dist/src/components/Stepper/internal/StepperWizardBootstrap.d.ts +4 -0
- package/dist/src/components/Stepper/internal/countRegisteredSteps.d.ts +1 -0
- package/dist/src/components/Switch/Switch.d.ts +14 -61
- package/dist/src/components/Tab/Tab.d.ts +14 -115
- package/dist/src/components/Tab/TabButton.d.ts +7 -39
- package/dist/src/components/Tab/TabList.d.ts +1 -20
- package/dist/src/components/Tab/TabPanel.d.ts +3 -24
- package/dist/src/components/Text/Text.d.ts +3 -32
- package/dist/src/components/Text/types.d.ts +13 -69
- package/dist/src/components/TextField/TextField.d.ts +6 -14
- package/dist/src/components/TextField/internal/TextField.d.ts +21 -11
- package/dist/src/components/Textarea/Textarea.d.ts +18 -57
- package/dist/src/components/Textarea/types.d.ts +7 -20
- package/dist/src/components/TimeField/TimeField.d.ts +14 -65
- package/dist/src/components/TimeField/internal/MaskedTimeInput.d.ts +10 -64
- package/dist/src/components/TimeField/internal/constants.d.ts +2 -12
- package/dist/src/components/TimeField/internal/maskito/timePlaceholderMask.d.ts +1 -13
- package/dist/src/components/TimeField/internal/types.d.ts +9 -14
- package/dist/src/components/TimeField/internal/utils/timeFormatting.d.ts +1 -8
- package/dist/src/components/TimeField/internal/utils/timeOptions.d.ts +2 -16
- package/dist/src/components/TimeField/internal/utils/timeParsing.d.ts +3 -29
- package/dist/src/components/TimeField/internal/utils/timeRounding.d.ts +5 -47
- package/dist/src/components/TimeField/internal/utils/timeValidation.d.ts +4 -22
- package/dist/src/components/Toast/Toaster.d.ts +2 -40
- package/dist/src/components/Toast/internal/Toast.d.ts +14 -75
- package/dist/src/components/Toast/internal/ToastProvider.d.ts +2 -64
- package/dist/src/components/Toast/internal/ToastStack.d.ts +13 -59
- package/dist/src/components/Toast/internal/Toaster.d.ts +18 -61
- package/dist/src/components/Toast/internal/ToasterPopover.d.ts +1 -16
- package/dist/src/components/Toast/internal/addOrUpdateToastHeight.d.ts +1 -6
- package/dist/src/components/Toast/internal/constants.d.ts +0 -15
- package/dist/src/components/Toast/internal/types.d.ts +1 -0
- package/dist/src/components/Toast/internal/useCloseToast.d.ts +1 -5
- package/dist/src/components/Toast/internal/useHotkeyFocus.d.ts +2 -10
- package/dist/src/components/Toast/internal/useShowMoreButtonPositionStyles.d.ts +1 -4
- package/dist/src/components/Toast/internal/useToastPositionStyles.d.ts +1 -5
- package/dist/src/components/Toast/internal/useToasts.d.ts +1 -5
- package/dist/src/components/Toast/toast.d.ts +14 -63
- package/dist/src/components/Toolbar/Toolbar.d.ts +16 -138
- package/dist/src/components/Toolbar/ToolbarButton.d.ts +4 -29
- package/dist/src/components/Toolbar/ToolbarButtonLink.d.ts +3 -28
- package/dist/src/components/Toolbar/ToolbarButtonToggle.d.ts +2 -24
- package/dist/src/components/Toolbar/ToolbarSelect.d.ts +12 -65
- package/dist/src/components/Toolbar/internal/ToolbarContext.d.ts +0 -31
- package/dist/src/components/Toolbar/internal/ToolbarItemOverflowContext.d.ts +0 -13
- package/dist/src/components/Toolbar/internal/ToolbarItemWrapper.d.ts +1 -24
- package/dist/src/components/Toolbar/internal/ToolbarOverflowMenu.d.ts +1 -23
- package/dist/src/components/Toolbar/internal/utils/accessibility.d.ts +4 -15
- package/dist/src/components/Toolbar/types.d.ts +7 -21
- package/dist/src/components/Tooltip/Tooltip.d.ts +17 -96
- package/dist/src/components/Tooltip/TooltipContent.d.ts +1 -23
- package/dist/src/components/Tooltip/TooltipTrigger.d.ts +3 -22
- package/dist/src/components/Tooltip/internal/TooltipContext.d.ts +0 -66
- package/dist/src/components/Tooltip/internal/useTooltipContext.d.ts +1 -14
- package/dist/src/integration-testing/stepper-panel-flicker.spec.d.ts +1 -0
- package/dist/{stripInlineMarkdown-CosQSmBr.js → stripInlineMarkdown-BhYLEiXu.js} +2 -2
- package/dist/{stripInlineMarkdown-CosQSmBr.js.map → stripInlineMarkdown-BhYLEiXu.js.map} +1 -1
- package/dist/{syncFilterUtils-_uwyt6FD.js → syncFilterUtils-ClEj4Oeg.js} +4 -4
- package/dist/{syncFilterUtils-_uwyt6FD.js.map → syncFilterUtils-ClEj4Oeg.js.map} +1 -1
- package/dist/{treeSync-Bp80Xduj.js → treeSync-B38r1dRQ.js} +5 -11
- package/dist/treeSync-B38r1dRQ.js.map +1 -0
- package/dist/{use-reduced-motion-CqjZZ5QB.js → use-reduced-motion-yYB9Tb0D.js} +2 -2
- package/dist/use-reduced-motion-yYB9Tb0D.js.map +1 -0
- package/dist/useChipLayout-BBe6Tzyl.js.map +1 -1
- package/dist/useDrillDownContext-D5_NjqY4.js.map +1 -1
- package/dist/{useDrilldown-D5XGfAUT.js → useDrilldown-BOeeNUsy.js} +8 -3
- package/dist/{useDrilldown-D5XGfAUT.js.map → useDrilldown-BOeeNUsy.js.map} +1 -1
- package/dist/{useInfiniteCombobox-ORhH44Rp.js → useInfiniteCombobox-7oIT2Mzn.js} +5 -5
- package/dist/{useInfiniteCombobox-ORhH44Rp.js.map → useInfiniteCombobox-7oIT2Mzn.js.map} +1 -1
- package/dist/useInitialFocus-CGybEc6x.js.map +1 -1
- package/dist/{useInvalidateOnOptionsChange-ieSgbkwT.js → useInvalidateOnOptionsChange-BD2VBpbK.js} +5 -5
- package/dist/useInvalidateOnOptionsChange-BD2VBpbK.js.map +1 -0
- package/dist/useMenuInteraction-nNF1dsrp.js.map +1 -1
- package/dist/utils-CM48ODEJ.js.map +1 -1
- package/package.json +6 -4
- package/dist/AiMark-CWufA6pV.js.map +0 -1
- package/dist/Alert-RkvFtmRP.js.map +0 -1
- package/dist/Announcement-CGTv6M31.js.map +0 -1
- package/dist/Avatar-DZxHhMTP.js.map +0 -1
- package/dist/Avatar-DkWoRhJu.js +0 -35
- package/dist/Avatar-DkWoRhJu.js.map +0 -1
- package/dist/Breadcrumbs-DbOrdao2.js.map +0 -1
- package/dist/Button-Dwh_Nd4l.js.map +0 -1
- package/dist/ButtonToggle-DKDBD1g3.js.map +0 -1
- package/dist/Calendar-CK-AAaSG.js.map +0 -1
- package/dist/Calendar-DLnn6dJE.js.map +0 -1
- package/dist/Checkbox-CboZhOtU.js.map +0 -1
- package/dist/Checkbox-Cn4iNLW_.js.map +0 -1
- package/dist/Chip-UbrxYEqs.js.map +0 -1
- package/dist/DataTable-COExZbOC.js.map +0 -1
- package/dist/DateFieldRange-CpTxlASD.js.map +0 -1
- package/dist/DateFieldSingle-DR2kfrzh.js.map +0 -1
- package/dist/DateFieldYearless-4mS_2Mgw.js.map +0 -1
- package/dist/DateFieldYearlessRange-C-yvKBkJ.js.map +0 -1
- package/dist/DaysOfTheWeek-Bo4w8SsT.js.map +0 -1
- package/dist/Details-CVA5zbrR.js.map +0 -1
- package/dist/Dialog-Ds25dKQp.js.map +0 -1
- package/dist/DialogCancelButton-DBL0aKTK.js.map +0 -1
- package/dist/Drawer-Da-bj_6o.js.map +0 -1
- package/dist/EditCard-CocV93gS.js.map +0 -1
- package/dist/FieldLabel-6aFKQfyD.js.map +0 -1
- package/dist/FilterBar-CZT1ryz_.js.map +0 -1
- package/dist/Grid-CvGQrIhE.js.map +0 -1
- package/dist/InteractiveCard-C0g5PxB6.js.map +0 -1
- package/dist/Layout-C2Q2hyLG.js.map +0 -1
- package/dist/List-BvzfZ9TW.js.map +0 -1
- package/dist/ListView-DFAWrwzi.js.map +0 -1
- package/dist/Listbox-BErqErNN.js.map +0 -1
- package/dist/Menu-BjPE_ODh.js.map +0 -1
- package/dist/MultiSelectFieldSync-CqWUidCm.js.map +0 -1
- package/dist/MultiSelectMenuSync-DG3rKyQc.js.map +0 -1
- package/dist/NumberField-DRYYJHec.js.map +0 -1
- package/dist/Page-pfK5iSmv.js.map +0 -1
- package/dist/Pagination-Bc4fhdNm.js.map +0 -1
- package/dist/Popover-BgVOsP4J.js.map +0 -1
- package/dist/ProgressBar-Chb0uKfL.js.map +0 -1
- package/dist/Radio-DcNlFfSu.js.map +0 -1
- package/dist/Radio-gpMEsFss.js +0 -60
- package/dist/Radio-gpMEsFss.js.map +0 -1
- package/dist/RichTextEditor-DeO4p-S-.js.map +0 -1
- package/dist/SavedFiltersButton-Cvf1mJk8.js.map +0 -1
- package/dist/SegmentedControl-CQ6DrbDc.js.map +0 -1
- package/dist/SelectCard-bp5hRyHK.js.map +0 -1
- package/dist/SelectFieldLabel-DZqxaZsp.js.map +0 -1
- package/dist/SelectFieldSync-Wkx6DGpg.js.map +0 -1
- package/dist/SelectMenuSync-O55TODxn.js.map +0 -1
- package/dist/SelectTrigger-BfJ7DWYq.js.map +0 -1
- package/dist/SelectTriggerBase-DvsI-kSG.js.map +0 -1
- package/dist/SideNav-BLXgM918.js.map +0 -1
- package/dist/Stepper-CCKHWlUr.js.map +0 -1
- package/dist/Switch-CrDmBj4D.js.map +0 -1
- package/dist/Tab-Bqfvg8Ce.js.map +0 -1
- package/dist/Text-CZccJAnm.js.map +0 -1
- package/dist/TextField-D0f9LwgQ.js.map +0 -1
- package/dist/TextField-DX5qyWPo.js.map +0 -1
- package/dist/Textarea-CdTcekFd.js.map +0 -1
- package/dist/TimeField-BxNglWQt.js.map +0 -1
- package/dist/Toaster-C-Z_FMbW.js.map +0 -1
- package/dist/Toaster-nyQgF9Ki.js.map +0 -1
- package/dist/Toolbar-BUbMtBVz.js.map +0 -1
- package/dist/Toolbar-BxAFPvbn.js.map +0 -1
- package/dist/ToolbarButtonToggle-NSJ2XfXT.js.map +0 -1
- package/dist/Tooltip-B4MSqIpg.js.map +0 -1
- package/dist/TreeSelectFieldSync-DpvwlM7B.js.map +0 -1
- package/dist/TreeSelectMenuSync-BDitYX_k.js.map +0 -1
- package/dist/TypeaheadTextField-Cj09sEji.js.map +0 -1
- package/dist/YearlessDateInputWithPicker-CoomgSEK.js.map +0 -1
- package/dist/filter-state-CZcczj37.js.map +0 -1
- package/dist/index-BwV_Pz7v.js.map +0 -1
- package/dist/makeZeroShortcutPreprocessor-CxsiGTRW.js.map +0 -1
- package/dist/proxy-DEehATlA.js.map +0 -1
- package/dist/treeSync-Bp80Xduj.js.map +0 -1
- package/dist/use-reduced-motion-CqjZZ5QB.js.map +0 -1
- package/dist/useInvalidateOnOptionsChange-ieSgbkwT.js.map +0 -1
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"TreeSelectFieldSync-C0mXwYZL.js","sources":["../src/beta/components/TreeSelectField/internal/TreeSelectFieldInput.tsx","../src/beta/components/TreeSelectField/TreeSelectField.tsx","../src/beta/components/TreeSelectField/TreeSelectFieldSync.tsx"],"sourcesContent":["import styles from \"./TreeSelectFieldInput.module.scss\";\nimport cx from \"classnames\";\nimport { Button } from \"../../../../components/Button\";\nimport { Chip } from \"../../../../components/Chip\";\nimport { Flex } from \"../../../../components/Flex\";\nimport Chevron_Right from \"@servicetitan/hammer-icon/mdi/round/chevron_right.svg\";\nimport type { ReactElement, RefObject, KeyboardEvent, MouseEvent } from \"react\";\nimport { ANV_PART_ATTR } from \"../../../../internal/constants/anvParts\";\nimport type { TreeSelectFieldValue } from \"../types\";\nimport { PARTS } from \"../parts\";\nimport type { MultiSelectFieldChipProps } from \"../../../../components/MultiSelectField/types\";\nimport { useChipLayout } from \"../../../../components/MultiSelectField/internal/useChipLayout\";\n\nexport type TreeSelectFieldInputProps = {\n id?: string;\n placeholder?: string;\n size?: \"small\" | \"medium\" | \"large\";\n disabled?: boolean;\n readOnly?: boolean;\n error?: boolean;\n single?: boolean;\n singleRow?: boolean;\n maxChips?: number;\n prefix?: string | ReactElement;\n suffix?: string | ReactElement;\n selectedOptions: TreeSelectFieldValue[];\n onRemoveOption: (option: TreeSelectFieldValue) => void;\n getChipProps?: (value: TreeSelectFieldValue) => MultiSelectFieldChipProps;\n inputRef?: RefObject<HTMLInputElement>;\n inputWrapperRef?: RefObject<HTMLDivElement>;\n searchValue?: string;\n onSearchChange?: (e: React.ChangeEvent<HTMLInputElement>) => void;\n onInputKeyDown?: (e: React.KeyboardEvent) => void;\n onWrapperClick?: () => void;\n isOpen?: boolean;\n ariaControls?: string;\n disableSearch?: boolean;\n comboboxProps?: Record<string, unknown>;\n};\n\n/**\n * Renders the field trigger and toggle button. Multi-select search uses an\n * editable combobox; single-select or disabled search uses a read-only one.\n */\nexport const TreeSelectFieldInput = ({\n id,\n placeholder,\n size,\n disabled,\n readOnly,\n error,\n single,\n singleRow,\n maxChips,\n prefix,\n suffix,\n selectedOptions,\n onRemoveOption,\n getChipProps,\n inputRef,\n inputWrapperRef,\n searchValue,\n onSearchChange,\n onInputKeyDown,\n onWrapperClick,\n isOpen,\n ariaControls,\n disableSearch,\n comboboxProps,\n}: TreeSelectFieldInputProps) => {\n const { rowsRef, displayCount, hiddenCount } = useChipLayout({\n selectedOptionsLength: selectedOptions.length,\n singleRow,\n maxChips,\n });\n\n const inputWrapperClassNames = cx(styles[\"input-wrapper\"], {\n [styles[\"small\"]]: size === \"small\",\n [styles[\"large\"]]: size === \"large\",\n [styles[\"disabled\"]]: disabled || readOnly,\n });\n\n const handleWrapperClick = (e: MouseEvent<HTMLDivElement>) => {\n const target = e.target as HTMLElement;\n if (target.closest(\"button\") || target.tagName === \"INPUT\") {\n return;\n }\n onWrapperClick?.();\n inputRef?.current?.focus();\n };\n\n return (\n // eslint-disable-next-line jsx-a11y/no-static-element-interactions, jsx-a11y/click-events-have-key-events -- Click-to-focus wrapper; nested controls own keyboard interaction.\n <div\n ref={inputWrapperRef}\n className={inputWrapperClassNames}\n onClick={handleWrapperClick}\n >\n {prefix ? <div className={styles[\"prefix\"]}>{prefix}</div> : null}\n\n <div\n className={styles[\"rows-wrapper\"]}\n ref={rowsRef}\n data-single-row={singleRow || undefined}\n >\n {!single && selectedOptions.length > 0\n ? selectedOptions.slice(0, displayCount).map((option, index) => (\n <div\n key={`selected-item-${option.id}-${index}`}\n className={styles[\"chip-wrapper\"]}\n >\n <Chip\n {...getChipProps?.(option)}\n {...{ [ANV_PART_ATTR]: PARTS.chip }}\n label={option.label}\n onClose={\n disabled || readOnly || option.disabled\n ? undefined\n : () => onRemoveOption(option)\n }\n className={styles[\"chip\"]}\n title={option.label}\n />\n </div>\n ))\n : null}\n\n {hiddenCount > 0 ? (\n <div className={styles[\"chip-wrapper\"]}>\n <Chip\n label={`+${hiddenCount}`}\n className={styles[\"chip\"]}\n title={selectedOptions\n .slice(displayCount)\n .map((option) => option.label)\n .join(\", \")}\n {...{ [ANV_PART_ATTR]: PARTS.overflowChip }}\n />\n </div>\n ) : null}\n\n {!disableSearch && !single ? (\n <Flex className={styles[\"input-flex\"]} alignItems=\"center\">\n <input\n ref={inputRef}\n id={id}\n type=\"text\"\n className={cx(styles[\"input\"], { [styles[\"error\"]]: error })}\n role=\"combobox\"\n aria-controls={ariaControls}\n aria-expanded={isOpen}\n aria-haspopup=\"tree\"\n value={searchValue}\n onChange={onSearchChange}\n onKeyDown={(e: KeyboardEvent<HTMLInputElement>) =>\n onInputKeyDown?.(e)\n }\n disabled={disabled}\n readOnly={readOnly}\n placeholder={\n selectedOptions.length === 0 ? placeholder : undefined\n }\n {...comboboxProps}\n {...{ [ANV_PART_ATTR]: PARTS.input }}\n />\n </Flex>\n ) : null}\n\n {single || disableSearch ? (\n <Flex className={styles[\"input-flex\"]} alignItems=\"center\">\n <input\n ref={inputRef}\n id={id}\n type=\"text\"\n className={cx(styles[\"input\"], { [styles[\"error\"]]: error })}\n role=\"combobox\"\n aria-controls={ariaControls}\n aria-expanded={isOpen}\n aria-haspopup=\"tree\"\n readOnly\n value={\n single && selectedOptions.length > 0\n ? selectedOptions[0].label\n : \"\"\n }\n disabled={disabled}\n placeholder={\n selectedOptions.length === 0 ? placeholder : undefined\n }\n onKeyDown={(e: KeyboardEvent<HTMLInputElement>) =>\n onInputKeyDown?.(e)\n }\n {...comboboxProps}\n {...{ [ANV_PART_ATTR]: PARTS.input }}\n />\n </Flex>\n ) : null}\n </div>\n\n {suffix ? <div className={styles[\"suffix\"]}>{suffix}</div> : null}\n\n <div className={styles[\"buttons-wrapper\"]}>\n <div className={styles[\"toggle-button-wrapper\"]}>\n <Button\n icon={Chevron_Right}\n aria-label=\"toggle menu\"\n appearance=\"ghost\"\n size=\"small\"\n disabled={disabled}\n aria-expanded={isOpen}\n className={styles[\"toggle-button\"]}\n tabIndex={-1}\n {...{ [ANV_PART_ATTR]: PARTS.toggleButton }}\n onClick={() => {\n onWrapperClick?.();\n inputRef?.current?.focus();\n }}\n />\n </div>\n </div>\n </div>\n );\n};\n\nTreeSelectFieldInput.displayName = \"TreeSelectFieldInput\";\n","import {\n forwardRef,\n useId,\n useRef,\n useState,\n useEffect,\n useImperativeHandle,\n useCallback,\n} from \"react\";\nimport cx from \"classnames\";\nimport type {\n TreeSelectFieldHandle,\n TreeSelectFieldNode,\n TreeSelectFieldProps,\n TreeSelectFieldValue,\n} from \"./types\";\nimport type { DataAttributes } from \"../../../types\";\nimport { useLayoutPropsUtil } from \"../../../internal/hooks/useLayoutPropsUtil\";\nimport { warnDeprecatedErrorUsage } from \"../../../components/FieldMessage\";\nimport { FieldMessage } from \"../../../components/FieldMessage\";\nimport { FieldLabel } from \"../../../components/FieldLabel\";\nimport { SrOnly } from \"../../../components/SrOnly\";\nimport { OptionsPopover } from \"../../../internal/components/OptionsPopover/OptionsPopover\";\nimport { OptionsDialog } from \"../../../internal/components/OptionsDialog/OptionsDialog\";\nimport { useAdaptiveView } from \"../../hooks/useAdaptiveView\";\nimport { TreeSelectFieldInput } from \"./internal/TreeSelectFieldInput\";\nimport { useTreeLoader } from \"./internal/useTreeLoader\";\nimport { useTree } from \"./internal/useTree\";\nimport { TreeContent } from \"./internal/TreeContent\";\nimport { findNode } from \"./internal/treeUtils\";\nimport { useTreeLazyCascade } from \"./internal/useTreeLazyCascade\";\nimport triggerStyles from \"../../../components/SelectTrigger/internal/SelectTriggerBase.module.scss\";\n\n/**\n * Hierarchical select rendered in a popover or dialog.\n * Multi-select supports search; every mode uses a controlled value array.\n */\nexport const TreeSelectField = forwardRef<\n TreeSelectFieldHandle,\n TreeSelectFieldProps\n>((propsWithLayout, ref) => {\n const { layoutStyles, componentProps } = useLayoutPropsUtil(propsWithLayout);\n\n const dataAttributes = Object.fromEntries(\n Object.entries(componentProps).filter(([key]) => key.startsWith(\"data-\")),\n ) as DataAttributes;\n\n const {\n id: idProp,\n label,\n labelNode,\n hideLabel,\n placeholder,\n size,\n error,\n hint,\n moreInfo,\n labelAiMark,\n description,\n warning,\n required,\n disabled,\n readOnly,\n prefix,\n suffix,\n className,\n style,\n disableSearch,\n debounceMs = 200,\n searchValue: searchValueProp,\n onSearchChange,\n singleRow,\n maxChips,\n getChipProps,\n virtualize,\n value,\n onSelectedOptionsChange,\n selectionMode = \"linked\",\n valueConsistsOf = \"LEAF_PRIORITY\",\n defaultExpandLevel,\n expandedIds,\n onExpandedIdsChange,\n loadOptions,\n cache,\n initialLoad,\n displayMenuAs: displayMenuAsProp = \"auto\",\n } = componentProps;\n\n const autoId = useId();\n const id = idProp ?? autoId;\n const helperUid = useId();\n const moreInfoUid = useId();\n const inputRef = useRef<HTMLInputElement>(null);\n const inputWrapperRef = useRef<HTMLDivElement>(null);\n const treePanelRef = useRef<HTMLDivElement>(null);\n\n warnDeprecatedErrorUsage(\"TreeSelectField\", error);\n\n const errorMessages =\n typeof error === \"boolean\" || error === undefined ? undefined : error;\n const hasHelperText = !!(hint || errorMessages || warning || description);\n const isSingleSelect = selectionMode === \"single\";\n // Single mode uses LEAF_ONLY/BRANCH_ONLY as click filters. Multi-select\n // always permits nonempty branches; BRANCH_ONLY blocks leaves and LEAF_ONLY\n // blocks empty branches.\n const branchesSelectable = isSingleSelect\n ? valueConsistsOf !== \"LEAF_ONLY\"\n : true;\n const leavesSelectable = valueConsistsOf !== \"BRANCH_ONLY\";\n const emptyBranchesSelectable = valueConsistsOf !== \"LEAF_ONLY\";\n\n const { isMobile } = useAdaptiveView();\n const displayAs =\n displayMenuAsProp === \"auto\"\n ? isMobile\n ? \"dialog\"\n : \"popover\"\n : displayMenuAsProp;\n\n const isSearchControlled = searchValueProp !== undefined;\n const [internalSearchValue, setInternalSearchValue] = useState(\"\");\n const searchValue = isSearchControlled\n ? searchValueProp\n : internalSearchValue;\n\n const handleSearchChange = useCallback(\n (v: string) => {\n if (!isSearchControlled) {\n setInternalSearchValue(v);\n }\n onSearchChange?.(v);\n },\n [isSearchControlled, onSearchChange],\n );\n\n const loader = useTreeLoader({\n loadOptions,\n cache,\n initialLoad,\n debounceMs,\n });\n\n const [isOpen, setIsOpen] = useState(false);\n\n const openMenu = useCallback(() => {\n if (disabled) return;\n setIsOpen(true);\n loader.onOpen();\n }, [disabled, loader]);\n\n // The loader owns initial loading; this effect only handles later searches.\n const isFirstSearchEffect = useRef(true);\n useEffect(() => {\n if (isFirstSearchEffect.current) {\n isFirstSearchEffect.current = false;\n return;\n }\n loader.search(searchValue ?? \"\");\n // eslint-disable-next-line react-hooks/exhaustive-deps -- We only want to re-run when searchValue changes, not on loader reference changes\n }, [searchValue]);\n\n const tree = useTree({\n nodes: loader.nodes,\n value,\n onSelectedOptionsChange,\n selectionMode,\n valueConsistsOf,\n defaultExpandLevel,\n expandedIds,\n onExpandedIdsChange,\n searchValue,\n ancestry: loader.ancestry,\n loadingChildrenIds: loader.isLoadingChildren,\n });\n\n useImperativeHandle(\n ref,\n () => ({\n clearCache: loader.clearCache,\n invalidate: loader.invalidate,\n expandAll: tree.expandAll,\n collapseAll: tree.collapseAll,\n }),\n [loader.clearCache, loader.invalidate, tree.expandAll, tree.collapseAll],\n );\n\n // The lazy-cascade callback needs closeMenu before it is defined.\n const closeMenuRef = useRef<() => void>(() => undefined);\n\n const onCloseAfterSingleSelect = useCallback(() => {\n closeMenuRef.current();\n inputRef.current?.focus();\n }, []);\n\n const {\n handleToggleNode,\n pendingToggleNodeId,\n reset: resetLazyCascade,\n } = useTreeLazyCascade({\n tree,\n loader,\n isSingleSelect,\n branchesSelectable,\n leavesSelectable,\n emptyBranchesSelectable,\n readOnly,\n onCloseAfterSingleSelect,\n });\n\n const closeMenu = useCallback(() => {\n setIsOpen(false);\n handleSearchChange(\"\");\n resetLazyCascade();\n }, [handleSearchChange, resetLazyCascade]);\n\n useEffect(() => {\n closeMenuRef.current = closeMenu;\n }, [closeMenu]);\n\n useEffect(() => {\n if (disabled && isOpen) {\n closeMenu();\n }\n }, [disabled, isOpen, closeMenu]);\n\n const handleRemoveOption = useCallback(\n (option: TreeSelectFieldValue) => {\n const target = value.find((v) => v.id === option.id);\n // Disabled selected options are locked — chip close / keyboard removal\n // must not drop them from the value.\n if (target?.disabled) {\n return;\n }\n onSelectedOptionsChange(value.filter((v) => v.id !== option.id));\n },\n [value, onSelectedOptionsChange],\n );\n\n // Match string ids first so values such as \"003\" are not coerced to 3.\n const getActiveNode = useCallback((): TreeSelectFieldNode | undefined => {\n const descId = tree.activeDescendantId;\n if (!descId) return undefined;\n const nodeId = descId.replace(/^treeitem-/, \"\");\n const stringMatch = findNode(tree.nodes, nodeId);\n if (stringMatch) return stringMatch;\n const numId = Number(nodeId);\n return Number.isNaN(numId) ? undefined : findNode(tree.nodes, numId);\n }, [tree.activeDescendantId, tree.nodes]);\n\n const handleInputKeyDown = useCallback(\n (e: React.KeyboardEvent) => {\n if (e.key === \"Escape\") {\n if (isOpen) {\n e.stopPropagation();\n closeMenu();\n }\n return;\n }\n\n if (e.key === \"Tab\") {\n if (isOpen) closeMenu();\n return;\n }\n\n if (e.key === \"ArrowDown\") {\n e.preventDefault();\n if (!isOpen) {\n openMenu();\n }\n tree.onKeyDown(e);\n return;\n }\n\n if (\n e.key === \"Backspace\" &&\n !isSingleSelect &&\n !readOnly &&\n searchValue === \"\" &&\n value.length > 0\n ) {\n // Disabled selected options are locked and are skipped.\n const lastRemovable = [...value]\n .reverse()\n .find((option) => !option.disabled);\n if (lastRemovable) {\n handleRemoveOption(lastRemovable);\n }\n return;\n }\n\n if (isOpen) {\n // Route selection through lazy loading; preserve Space for search text.\n if (e.key === \"Enter\" || (e.key === \" \" && disableSearch)) {\n const activeNode = getActiveNode();\n if (activeNode) {\n e.preventDefault();\n handleToggleNode(activeNode.id);\n }\n return;\n }\n\n // useTree expands branches but does not load their lazy children.\n if (e.key === \"ArrowRight\") {\n const activeNode = getActiveNode();\n if (activeNode?.children === null) {\n e.preventDefault();\n tree.toggleExpand(activeNode.id);\n void loader.loadChildren(activeNode);\n return;\n }\n }\n\n tree.onKeyDown(e);\n }\n },\n [\n isOpen,\n openMenu,\n closeMenu,\n isSingleSelect,\n readOnly,\n searchValue,\n value,\n handleRemoveOption,\n tree,\n getActiveNode,\n handleToggleNode,\n loader,\n disableSearch,\n ],\n );\n\n const handleLoadChildren = useCallback(\n (node: Parameters<typeof loader.loadChildren>[0]) => {\n void loader.loadChildren(node);\n },\n [loader],\n );\n\n // A scrollbar drag can move focus to the panel; keep keyboard navigation\n // there without adding a second Tab stop when search owns focus.\n const panelProps = {\n visibleNodes: tree.visibleNodes,\n getCheckState: (id: string | number) =>\n id === pendingToggleNodeId ? \"loading\" : tree.getCheckState(id),\n toggleNode: handleToggleNode,\n toggleExpand: tree.toggleExpand,\n getTreeItemProps: tree.getTreeItemProps,\n treeProps: {\n ...tree.treeProps,\n id: `${id}-tree`,\n \"aria-label\": label,\n onKeyDown:\n handleInputKeyDown as React.KeyboardEventHandler<HTMLDivElement>,\n tabIndex: disableSearch ? 0 : -1,\n },\n activeDescendantId: tree.activeDescendantId,\n branchesSelectable,\n leavesSelectable,\n emptyBranchesSelectable,\n readOnly,\n onHover: tree.setActiveNodeId,\n onLoadChildren: handleLoadChildren,\n };\n\n const labelContent = (\n <FieldLabel\n el=\"label\"\n htmlFor={`${id}-input`}\n required={required}\n moreInfo={moreInfo}\n moreInfoId={moreInfo ? moreInfoUid : undefined}\n aiMark={labelAiMark}\n >\n {labelNode ?? label}\n </FieldLabel>\n );\n\n return (\n <div\n {...dataAttributes}\n data-anv=\"tree-select-field\"\n className={cx(triggerStyles[\"search-field\"], className)}\n style={{ ...layoutStyles, ...style }}\n >\n {hideLabel ? <SrOnly>{labelContent}</SrOnly> : labelContent}\n\n <TreeSelectFieldInput\n id={`${id}-input`}\n placeholder={placeholder}\n size={size}\n disabled={disabled}\n readOnly={readOnly}\n error={!!error}\n single={isSingleSelect}\n singleRow={singleRow}\n maxChips={maxChips}\n getChipProps={getChipProps}\n prefix={prefix}\n suffix={suffix}\n selectedOptions={value}\n onRemoveOption={handleRemoveOption}\n inputRef={inputRef}\n inputWrapperRef={inputWrapperRef}\n searchValue={searchValue}\n onSearchChange={(e) => {\n handleSearchChange(e.target.value);\n if (!isOpen) openMenu();\n }}\n onInputKeyDown={handleInputKeyDown}\n onWrapperClick={() => {\n if (!disabled) {\n if (isOpen) {\n closeMenu();\n } else {\n openMenu();\n }\n inputRef.current?.focus();\n }\n }}\n isOpen={isOpen}\n ariaControls={`${id}-tree`}\n disableSearch={disableSearch}\n comboboxProps={{\n \"aria-describedby\":\n [hasHelperText && helperUid, moreInfo && moreInfoUid]\n .filter(Boolean)\n .join(\" \") || undefined,\n \"aria-invalid\": error ? (true as const) : undefined,\n \"aria-activedescendant\": isOpen ? tree.activeDescendantId : undefined,\n onClick: disabled\n ? undefined\n : () => {\n if (isOpen) {\n closeMenu();\n } else {\n openMenu();\n }\n },\n }}\n />\n\n {hasHelperText ? (\n <FieldMessage\n id={helperUid}\n hint={hint}\n error={errorMessages}\n warning={warning}\n description={description}\n />\n ) : null}\n\n {displayAs === \"dialog\" ? (\n <OptionsDialog\n id={`${id}-dialog`}\n isOpen={isOpen && !disabled}\n onClose={closeMenu}\n title={label}\n initialFocusResolver={(elements) =>\n elements.find((el) => el.tagName === \"INPUT\") || elements[0]\n }\n field={\n <TreeSelectFieldInput\n id={`${id}-dialog-input`}\n placeholder={placeholder}\n size=\"medium\"\n disabled={disabled}\n readOnly={readOnly}\n error={!!error}\n single={isSingleSelect}\n singleRow\n maxChips={20}\n getChipProps={getChipProps}\n prefix={prefix}\n suffix={suffix}\n selectedOptions={value}\n onRemoveOption={handleRemoveOption}\n searchValue={searchValue}\n onSearchChange={(e) => {\n handleSearchChange(e.target.value);\n if (!isOpen) openMenu();\n }}\n onInputKeyDown={handleInputKeyDown}\n isOpen={isOpen}\n ariaControls={`${id}-tree`}\n disableSearch={false}\n comboboxProps={{\n \"aria-activedescendant\": isOpen\n ? tree.activeDescendantId\n : undefined,\n }}\n />\n }\n >\n {isOpen && !disabled ? (\n <TreeContent\n ref={treePanelRef}\n loading={loader.isLoading}\n hasNoVisibleNodes={tree.visibleNodes.length === 0}\n virtualize={virtualize}\n panelProps={panelProps}\n />\n ) : null}\n </OptionsDialog>\n ) : (\n <OptionsPopover\n id={`${id}-popover`}\n referenceElement={inputWrapperRef}\n open={isOpen && !disabled}\n onClose={closeMenu}\n width=\"reference\"\n >\n {isOpen && !disabled ? (\n <TreeContent\n ref={treePanelRef}\n loading={loader.isLoading}\n hasNoVisibleNodes={tree.visibleNodes.length === 0}\n virtualize={virtualize}\n panelProps={panelProps}\n />\n ) : null}\n </OptionsPopover>\n )}\n </div>\n );\n});\n\nTreeSelectField.displayName = \"TreeSelectField\";\n","import { useCallback, useMemo, useRef } from \"react\";\nimport type { MatchSorterOptions } from \"match-sorter\";\nimport { TreeSelectField } from \"./TreeSelectField\";\nimport type {\n TreeSelectFieldHandle,\n TreeSelectFieldNode,\n TreeSelectFieldProps,\n} from \"./types\";\nimport {\n type TreeSyncFilterFn,\n applyChildCounts,\n defaultTreeSyncFilter,\n toTreeSyncFilterFn,\n} from \"./internal/treeSync\";\nimport { useInvalidateOnOptionsChange } from \"../../../internal/hooks/useInvalidateOnOptionsChange\";\n\nexport type { TreeSyncFilterFn };\n\nexport type TreeSelectFieldSyncProps = Omit<\n TreeSelectFieldProps,\n \"loadOptions\" | \"debounceMs\" | \"cache\" | \"initialLoad\"\n> & {\n /** Complete tree used for selection and client-side search. */\n options: TreeSelectFieldNode[];\n /**\n * Custom function or match-sorter options. The default matches `label` and\n * `searchText`. Default and option-object filters preserve ancestors of\n * matches. A function replaces that stage; the field still applies its\n * loaded-row substring filter.\n *\n * @example\n * filter={(nodes, searchValue) => customTreeFilter(nodes, searchValue)}\n * // or\n * filter={{ keys: [\"label\"] }}\n */\n filter?: TreeSyncFilterFn | MatchSorterOptions<TreeSelectFieldNode>;\n};\n\n/**\n * Static-data variant of {@link TreeSelectField}.\n * Filters `options` on the client and refreshes the field when they change.\n */\nexport const TreeSelectFieldSync = (props: TreeSelectFieldSyncProps) => {\n const {\n options,\n filter: filterProp = defaultTreeSyncFilter,\n ...rest\n } = props;\n\n const filter = useMemo(() => toTreeSyncFilterFn(filterProp), [filterProp]);\n\n const processedOptions = useMemo(() => applyChildCounts(options), [options]);\n\n const loadOptions = useCallback(\n (searchValue: string) => {\n return filter(processedOptions, searchValue);\n },\n [filter, processedOptions],\n );\n\n const fieldRef = useRef<TreeSelectFieldHandle>(null);\n useInvalidateOnOptionsChange(fieldRef, options);\n\n return (\n <TreeSelectField\n ref={fieldRef}\n loadOptions={loadOptions}\n debounceMs={0}\n {...rest}\n />\n );\n};\n\nTreeSelectFieldSync.displayName = \"TreeSelectFieldSync\";\n"],"names":["Chevron_Right","id","triggerStyles"],"mappings":"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"}
|
package/dist/TreeSelectMenu.js
CHANGED
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
export { a as TreeSelectMenu, T as TreeSelectMenuSync } from './TreeSelectMenuSync-
|
|
1
|
+
export { a as TreeSelectMenu, T as TreeSelectMenuSync } from './TreeSelectMenuSync-D2TvKxP-.js';
|
|
2
2
|
//# sourceMappingURL=TreeSelectMenu.js.map
|
|
@@ -1,11 +1,11 @@
|
|
|
1
1
|
import { jsx, jsxs, Fragment } from 'react/jsx-runtime';
|
|
2
2
|
import { forwardRef, useId, useRef, useState, useCallback, useEffect, useImperativeHandle, useMemo } from 'react';
|
|
3
3
|
import { C as COMMON_PART, A as ANV_PART_ATTR } from './anvParts-DFVq7-Cm.js';
|
|
4
|
-
import { b as useAdaptiveView, O as OptionsDialog, a as OptionsPopover, u as useInvalidateOnOptionsChange } from './useInvalidateOnOptionsChange-
|
|
5
|
-
import { M as MenuFooter } from './MenuFooter-
|
|
4
|
+
import { b as useAdaptiveView, O as OptionsDialog, a as OptionsPopover, u as useInvalidateOnOptionsChange } from './useInvalidateOnOptionsChange-BD2VBpbK.js';
|
|
5
|
+
import { M as MenuFooter } from './MenuFooter-D__gg92C.js';
|
|
6
6
|
import { r as resolveConfirmation, u as useConfirmationDraft } from './confirmationTypes-DeRtO_Cw.js';
|
|
7
7
|
import { a as arrayIdsEqual } from './arrayIdsEqual-DnevhwqN.js';
|
|
8
|
-
import { u as useTreeLoader, a as useTree, b as useTreeLazyCascade, f as findNode, T as TreeContent, d as defaultTreeSyncFilter, t as toTreeSyncFilterFn, c as applyChildCounts } from './treeSync-
|
|
8
|
+
import { u as useTreeLoader, a as useTree, b as useTreeLazyCascade, f as findNode, T as TreeContent, d as defaultTreeSyncFilter, t as toTreeSyncFilterFn, c as applyChildCounts } from './treeSync-B38r1dRQ.js';
|
|
9
9
|
import { S as SearchField } from './SearchField-ChoNtw8w.js';
|
|
10
10
|
|
|
11
11
|
const PARTS = {
|
|
@@ -417,4 +417,4 @@ const TreeSelectMenuSync = (props) => {
|
|
|
417
417
|
TreeSelectMenuSync.displayName = "TreeSelectMenuSync";
|
|
418
418
|
|
|
419
419
|
export { TreeSelectMenuSync as T, TreeSelectMenu as a };
|
|
420
|
-
//# sourceMappingURL=TreeSelectMenuSync-
|
|
420
|
+
//# sourceMappingURL=TreeSelectMenuSync-D2TvKxP-.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"TreeSelectMenuSync-D2TvKxP-.js","sources":["../src/beta/components/TreeSelectMenu/parts.ts","../src/beta/components/TreeSelectMenu/TreeSelectMenu.tsx","../src/beta/components/TreeSelectMenu/TreeSelectMenuSync.tsx"],"sourcesContent":["import { COMMON_PART } from \"../../../internal/constants/anvParts\";\n\n/**\n * `data-anv-part` names for TreeSelectMenu interactive sub-elements.\n *\n * Only the trigger and search input are owned here. Tree parts come from\n * TreeSelectField internals; shell and footer parts come from shared option\n * shells. Consumer `data-*` merges into the trigger bag because there is no\n * wrapper root.\n */\nexport const PARTS = {\n trigger: COMMON_PART.trigger,\n input: COMMON_PART.input,\n} as const;\n","import {\n forwardRef,\n useId,\n useRef,\n useState,\n useEffect,\n useImperativeHandle,\n useCallback,\n type ChangeEvent,\n type KeyboardEvent,\n} from \"react\";\nimport type { TreeSelectMenuHandle, TreeSelectMenuProps } from \"./types\";\nimport type {\n TreeSelectFieldNode,\n TreeSelectFieldValue,\n} from \"../TreeSelectField/types\";\nimport { SearchField } from \"../../../components\";\nimport type { DataAttributes } from \"../../../types\";\nimport { ANV_PART_ATTR } from \"../../../internal/constants/anvParts\";\nimport { OptionsPopover } from \"../../../internal/components/OptionsPopover/OptionsPopover\";\nimport { OptionsDialog } from \"../../../internal/components/OptionsDialog/OptionsDialog\";\nimport { MenuFooter } from \"../../../internal/components/MenuFooter/MenuFooter\";\nimport { useConfirmationDraft } from \"../../../internal/hooks/useConfirmationDraft\";\nimport { resolveConfirmation } from \"../../../internal/types/confirmationTypes\";\nimport { arrayIdsEqual } from \"../../../internal/utils/arrayIdsEqual\";\nimport { useAdaptiveView } from \"../../hooks/useAdaptiveView\";\nimport { useTreeLoader } from \"../TreeSelectField/internal/useTreeLoader\";\nimport { useTree } from \"../TreeSelectField/internal/useTree\";\nimport { TreeContent } from \"../TreeSelectField/internal/TreeContent\";\nimport { findNode } from \"../TreeSelectField/internal/treeUtils\";\nimport { useTreeLazyCascade } from \"../TreeSelectField/internal/useTreeLazyCascade\";\nimport { PARTS } from \"./parts\";\n\n/**\n * Searchable tree selection opened by a consumer-rendered trigger.\n * Supports async root/search loading and lazy branch loading in a popover or dialog.\n *\n * @example\n * <TreeSelectMenu\n * trigger={(triggerProps) => <Button {...triggerProps}>Select categories</Button>}\n * label=\"Categories\"\n * value={selected}\n * onSelectedOptionsChange={setSelected}\n * loadOptions={loadCategories}\n * />\n */\nexport const TreeSelectMenu = forwardRef<\n TreeSelectMenuHandle,\n TreeSelectMenuProps\n>((props, ref) => {\n const dataAttributes = Object.fromEntries(\n Object.entries(props).filter(([key]) => key.startsWith(\"data-\")),\n ) as DataAttributes;\n\n const {\n id: idProp,\n trigger,\n onMenuKeyDown,\n onImplicitClose,\n onExplicitClose,\n label,\n searchPlaceholder,\n displayMenuAs: displayMenuAsProp = \"auto\",\n virtualize,\n disableSearch,\n popoverWidth,\n debounceMs = 200,\n onSearchChange,\n value,\n onSelectedOptionsChange,\n selectionMode = \"linked\",\n valueConsistsOf = \"LEAF_PRIORITY\",\n defaultExpandLevel,\n expandedIds,\n onExpandedIdsChange,\n loadOptions,\n cache,\n initialLoad,\n confirmation: confirmationProp,\n clear,\n } = props;\n\n const confirmation = resolveConfirmation(confirmationProp);\n\n const autoId = useId();\n const id = idProp ?? autoId;\n const triggerRef = useRef<HTMLButtonElement>(null);\n const searchRef = useRef<HTMLInputElement>(null);\n const treePanelRef = useRef<HTMLDivElement>(null);\n\n const isSingleSelect = selectionMode === \"single\";\n const branchesSelectable = isSingleSelect\n ? valueConsistsOf !== \"LEAF_ONLY\"\n : true;\n const leavesSelectable = valueConsistsOf !== \"BRANCH_ONLY\";\n const emptyBranchesSelectable = valueConsistsOf !== \"LEAF_ONLY\";\n\n const { isMobile } = useAdaptiveView();\n const displayAs =\n displayMenuAsProp === \"auto\"\n ? isMobile\n ? \"dialog\"\n : \"popover\"\n : displayMenuAsProp;\n\n const [inputValue, setInputValue] = useState(\"\");\n const searchValue = disableSearch ? \"\" : inputValue;\n\n const handleSearchChange = useCallback(\n (v: string) => {\n setInputValue(v);\n onSearchChange?.(v);\n },\n [onSearchChange],\n );\n\n const loader = useTreeLoader({\n loadOptions,\n cache,\n initialLoad,\n debounceMs,\n });\n\n const [isOpen, setIsOpen] = useState(false);\n\n const pendingApplyRef = useRef(false);\n const {\n displayValue: draftValue,\n setDraft,\n apply,\n cancel,\n } = useConfirmationDraft<TreeSelectFieldValue[]>({\n value,\n onCommit: onSelectedOptionsChange,\n isOpen,\n enabled: confirmation.enabled,\n isEqual: arrayIdsEqual,\n });\n\n const openMenu = useCallback(() => {\n setIsOpen(true);\n loader.onOpen();\n }, [loader]);\n\n const isFirstSearchEffect = useRef(true);\n useEffect(() => {\n if (isFirstSearchEffect.current) {\n isFirstSearchEffect.current = false;\n return;\n }\n loader.search(searchValue ?? \"\");\n // eslint-disable-next-line react-hooks/exhaustive-deps -- Only re-run when searchValue changes\n }, [searchValue]);\n\n const tree = useTree({\n nodes: loader.nodes,\n value: draftValue,\n onSelectedOptionsChange: setDraft,\n selectionMode,\n valueConsistsOf,\n defaultExpandLevel,\n expandedIds,\n onExpandedIdsChange,\n searchValue,\n ancestry: loader.ancestry,\n loadingChildrenIds: loader.isLoadingChildren,\n });\n\n useImperativeHandle(\n ref,\n () => ({\n clearCache: loader.clearCache,\n invalidate: loader.invalidate,\n expandAll: tree.expandAll,\n collapseAll: tree.collapseAll,\n }),\n [loader.clearCache, loader.invalidate, tree.expandAll, tree.collapseAll],\n );\n\n // The lazy-cascade callback needs closeMenu before it is defined.\n const closeMenuRef = useRef<() => void>(() => undefined);\n\n const onCloseAfterSingleSelect = useCallback(() => {\n // Auto-closing would discard the confirmation draft before Apply.\n if (confirmation.enabled) return;\n closeMenuRef.current();\n }, [confirmation.enabled]);\n\n const {\n handleToggleNode,\n pendingToggleNodeId,\n reset: resetLazyCascade,\n } = useTreeLazyCascade({\n tree,\n loader,\n isSingleSelect,\n branchesSelectable,\n leavesSelectable,\n emptyBranchesSelectable,\n onCloseAfterSingleSelect,\n });\n\n const closeMenu = useCallback(\n (opts?: { restoreFocus?: boolean }) => {\n // Apply and Clear mark their closes as commits; every other close cancels.\n if (confirmation.enabled && !pendingApplyRef.current) cancel();\n pendingApplyRef.current = false;\n\n setIsOpen(false);\n handleSearchChange(\"\");\n resetLazyCascade();\n\n const shouldRestoreFocus = opts?.restoreFocus ?? true;\n if (shouldRestoreFocus) {\n onExplicitClose?.();\n requestAnimationFrame(() => {\n triggerRef.current?.focus();\n });\n } else {\n onImplicitClose?.();\n }\n },\n [\n confirmation.enabled,\n cancel,\n handleSearchChange,\n resetLazyCascade,\n onImplicitClose,\n onExplicitClose,\n ],\n );\n\n useEffect(() => {\n closeMenuRef.current = () => closeMenu();\n }, [closeMenu]);\n\n const handleApply = useCallback(() => {\n apply();\n pendingApplyRef.current = true;\n closeMenu();\n }, [apply, closeMenu]);\n\n const handleCancel = useCallback(() => {\n closeMenu();\n }, [closeMenu]);\n\n const getActiveNode = useCallback((): TreeSelectFieldNode | undefined => {\n const descId = tree.activeDescendantId;\n if (!descId) return undefined;\n const nodeId = descId.replace(/^treeitem-/, \"\");\n const numId = Number(nodeId);\n return findNode(tree.nodes, Number.isNaN(numId) ? nodeId : numId);\n }, [tree.activeDescendantId, tree.nodes]);\n\n const handleMenuKeyDown = useCallback(\n (e: KeyboardEvent) => {\n onMenuKeyDown?.(e);\n if (e.defaultPrevented) return;\n\n if (e.key === \"Escape\") {\n e.stopPropagation();\n closeMenu();\n return;\n }\n\n if (e.key === \"Tab\") {\n closeMenu({ restoreFocus: false });\n return;\n }\n\n if (e.key === \"ArrowDown\" || e.key === \"ArrowUp\") {\n e.preventDefault();\n tree.onKeyDown(e);\n return;\n }\n\n if (e.key === \"Enter\" || (disableSearch && e.key === \" \")) {\n const activeNode = getActiveNode();\n if (activeNode) {\n e.preventDefault();\n handleToggleNode(activeNode.id);\n }\n return;\n }\n\n if (e.key === \"ArrowRight\") {\n const activeNode = getActiveNode();\n if (activeNode?.children === null) {\n e.preventDefault();\n tree.toggleExpand(activeNode.id);\n void loader.loadChildren(activeNode);\n return;\n }\n }\n\n tree.onKeyDown(e);\n },\n [\n onMenuKeyDown,\n closeMenu,\n tree,\n getActiveNode,\n handleToggleNode,\n loader,\n disableSearch,\n ],\n );\n\n const handleTriggerKeyDown = useCallback(\n (e: KeyboardEvent<HTMLButtonElement>) => {\n if (e.key === \"ArrowDown\" || e.key === \"Enter\" || e.key === \" \") {\n e.preventDefault();\n if (!isOpen) {\n openMenu();\n }\n }\n },\n [isOpen, openMenu],\n );\n\n const handleTriggerClick = useCallback(() => {\n if (isOpen) {\n closeMenu();\n } else {\n openMenu();\n }\n }, [isOpen, openMenu, closeMenu]);\n\n useEffect(() => {\n if (!isOpen || displayAs !== \"popover\") return;\n\n const frameId = requestAnimationFrame(() => {\n if (!disableSearch) {\n searchRef.current?.focus();\n } else {\n treePanelRef.current?.focus();\n }\n });\n\n return () => cancelAnimationFrame(frameId);\n }, [isOpen, displayAs, disableSearch]);\n\n const handleLoadChildren = useCallback(\n (node: Parameters<typeof loader.loadChildren>[0]) => {\n void loader.loadChildren(node);\n },\n [loader],\n );\n\n // A scrollbar drag can move focus to the panel; keep keyboard navigation\n // there without adding a second Tab stop when search owns focus.\n const treePropsMerged = {\n ...tree.treeProps,\n id: `${id}-tree`,\n \"aria-label\": label,\n onKeyDown: handleMenuKeyDown as React.KeyboardEventHandler<HTMLDivElement>,\n tabIndex: disableSearch ? 0 : -1,\n };\n\n const panelProps = {\n visibleNodes: tree.visibleNodes,\n getCheckState: (nodeId: string | number) =>\n nodeId === pendingToggleNodeId ? \"loading\" : tree.getCheckState(nodeId),\n toggleNode: handleToggleNode,\n toggleExpand: tree.toggleExpand,\n getTreeItemProps: tree.getTreeItemProps,\n treeProps: treePropsMerged,\n activeDescendantId: tree.activeDescendantId,\n branchesSelectable,\n leavesSelectable,\n emptyBranchesSelectable,\n onHover: tree.setActiveNodeId,\n onLoadChildren: handleLoadChildren,\n } as const;\n\n const handleInputChange = useCallback(\n (e: ChangeEvent<HTMLInputElement>) => {\n handleSearchChange(e.target.value);\n },\n [handleSearchChange],\n );\n\n const handleSearchClear = useCallback(() => {\n handleSearchChange(\"\");\n }, [handleSearchChange]);\n\n const searchInput = !disableSearch ? (\n <SearchField\n ref={searchRef}\n value={inputValue}\n onChange={handleInputChange}\n onKeyDown={\n handleMenuKeyDown as React.KeyboardEventHandler<HTMLInputElement>\n }\n onClear={handleSearchClear}\n aria-activedescendant={tree.activeDescendantId}\n aria-controls={`${id}-tree`}\n placeholder={searchPlaceholder}\n type=\"search\"\n {...{ [ANV_PART_ATTR]: PARTS.input }}\n />\n ) : null;\n\n const handleClickOutside = useCallback(() => {\n closeMenu({ restoreFocus: false });\n }, [closeMenu]);\n\n const treeContent = (\n <TreeContent\n ref={treePanelRef}\n loading={loader.isLoading}\n hasNoVisibleNodes={tree.visibleNodes.length === 0}\n virtualize={virtualize}\n panelProps={panelProps}\n />\n );\n\n const triggerProps = {\n ref: triggerRef,\n onClick: handleTriggerClick,\n onKeyDown: handleTriggerKeyDown,\n \"aria-haspopup\": \"tree\" as const,\n \"aria-controls\": `${id}-tree`,\n \"aria-expanded\": isOpen,\n \"data-state\": (isOpen ? \"open\" : \"close\") as \"open\" | \"close\",\n ...dataAttributes,\n [ANV_PART_ATTR]: PARTS.trigger,\n };\n\n const confirmationConfig = confirmation.enabled\n ? {\n applyLabel: confirmation.applyLabel,\n cancelLabel: confirmation.cancelLabel,\n onApply: handleApply,\n onCancel: handleCancel,\n }\n : undefined;\n const wrappedClear = clear\n ? {\n ...clear,\n onClick: () => {\n clear.onClick();\n if (confirmation.enabled) pendingApplyRef.current = true;\n closeMenu();\n },\n }\n : undefined;\n // An empty MenuFooter still draws the shell's footer divider.\n const hasFooter = !!wrappedClear || !!confirmationConfig;\n const footer = hasFooter ? (\n <MenuFooter clear={wrappedClear} confirmation={confirmationConfig} />\n ) : undefined;\n\n if (displayAs === \"dialog\") {\n return (\n <>\n {trigger(triggerProps)}\n <OptionsDialog\n id={`${id}-dialog`}\n isOpen={isOpen}\n onClose={() => closeMenu()}\n title={label}\n field={searchInput ?? undefined}\n footer={footer}\n initialFocusResolver={\n !disableSearch\n ? (elements) =>\n elements.find((el) => el.tagName === \"INPUT\") || elements[0]\n : undefined\n }\n >\n {isOpen ? treeContent : null}\n </OptionsDialog>\n </>\n );\n }\n\n return (\n <>\n {trigger(triggerProps)}\n <OptionsPopover\n id={`${id}-popover`}\n referenceElement={triggerRef}\n open={isOpen}\n onClose={handleClickOutside}\n width={popoverWidth ?? 320}\n footer={footer}\n >\n {searchInput}\n {isOpen ? treeContent : null}\n </OptionsPopover>\n </>\n );\n});\n\nTreeSelectMenu.displayName = \"TreeSelectMenu\";\n","import { useCallback, useMemo, useRef } from \"react\";\nimport type { MatchSorterOptions } from \"match-sorter\";\nimport { TreeSelectMenu } from \"./TreeSelectMenu\";\nimport type {\n TreeSelectMenuHandle,\n TreeSelectMenuNode,\n TreeSelectMenuProps,\n} from \"./types\";\nimport {\n type TreeSyncFilterFn,\n applyChildCounts,\n defaultTreeSyncFilter,\n toTreeSyncFilterFn,\n} from \"../TreeSelectField/internal/treeSync\";\nimport { useInvalidateOnOptionsChange } from \"../../../internal/hooks/useInvalidateOnOptionsChange\";\n\nexport type { TreeSyncFilterFn };\n\nexport type TreeSelectMenuSyncProps = Omit<\n TreeSelectMenuProps,\n \"loadOptions\" | \"debounceMs\" | \"cache\" | \"initialLoad\"\n> & {\n /** Complete tree used for selection and client-side search. */\n options: TreeSelectMenuNode[];\n /**\n * Custom function or match-sorter options. The default matches `label` and\n * `searchText`. Default and option-object filters preserve ancestors of\n * matches; a function replaces that behavior.\n *\n * @example\n * filter={(nodes, searchValue) => customTreeFilter(nodes, searchValue)}\n * // or\n * filter={{ keys: [\"label\"] }}\n */\n filter?: TreeSyncFilterFn | MatchSorterOptions<TreeSelectMenuNode>;\n};\n\n/**\n * Static-data variant of {@link TreeSelectMenu}.\n * Filters `options` on the client and refreshes the menu when they change.\n */\nexport const TreeSelectMenuSync = (props: TreeSelectMenuSyncProps) => {\n const {\n options,\n filter: filterProp = defaultTreeSyncFilter,\n ...rest\n } = props;\n\n const filter = useMemo(() => toTreeSyncFilterFn(filterProp), [filterProp]);\n\n // Full-tree counts keep filtered branches from appearing fully selected.\n const processedOptions = useMemo(() => applyChildCounts(options), [options]);\n\n const loadOptions = useCallback(\n (searchValue: string) => {\n return filter(processedOptions, searchValue);\n },\n [filter, processedOptions],\n );\n\n const menuRef = useRef<TreeSelectMenuHandle>(null);\n useInvalidateOnOptionsChange(menuRef, options);\n\n return (\n <TreeSelectMenu\n ref={menuRef}\n loadOptions={loadOptions}\n debounceMs={0}\n {...rest}\n />\n );\n};\n\nTreeSelectMenuSync.displayName = \"TreeSelectMenuSync\";\n"],"names":[],"mappings":"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"}
|
|
@@ -1,8 +1,8 @@
|
|
|
1
1
|
import { jsx, jsxs } from 'react/jsx-runtime';
|
|
2
2
|
import { forwardRef, useState, useRef, useId, useLayoutEffect, useCallback, useEffect } from 'react';
|
|
3
|
-
import { P as Popover } from './Popover-
|
|
3
|
+
import { P as Popover } from './Popover-CIh1CsoJ.js';
|
|
4
4
|
import { S as Spinner } from './Spinner-B7tTWcP6.js';
|
|
5
|
-
import { T as TextField } from './TextField-
|
|
5
|
+
import { T as TextField } from './TextField-Bxd-Qzoi.js';
|
|
6
6
|
import { m as mergeRefs } from './useMergeRefs-Dfmtq9cI.js';
|
|
7
7
|
import { c as cx } from './index-De1g9FRV.js';
|
|
8
8
|
import { m as menuStyles } from './Menu.module-CMDgSO9k.js';
|
|
@@ -205,16 +205,12 @@ function TypeaheadTextField({
|
|
|
205
205
|
height: SUFFIX_SLOT_WIDTH
|
|
206
206
|
},
|
|
207
207
|
"data-anv": "typeahead-suffix",
|
|
208
|
-
children: loading ? /* @__PURE__ */ jsx(Spinner, { size: "small", inherit: true }) : (
|
|
209
|
-
|
|
210
|
-
|
|
211
|
-
|
|
212
|
-
"
|
|
213
|
-
|
|
214
|
-
"aria-hidden": true,
|
|
215
|
-
style: { display: "inline-block", width: 1, height: 1 }
|
|
216
|
-
}
|
|
217
|
-
)
|
|
208
|
+
children: loading ? /* @__PURE__ */ jsx(Spinner, { size: "small", inherit: true }) : /* @__PURE__ */ jsx(
|
|
209
|
+
"span",
|
|
210
|
+
{
|
|
211
|
+
"aria-hidden": true,
|
|
212
|
+
style: { display: "inline-block", width: 1, height: 1 }
|
|
213
|
+
}
|
|
218
214
|
)
|
|
219
215
|
}
|
|
220
216
|
);
|
|
@@ -263,12 +259,7 @@ function TypeaheadTextField({
|
|
|
263
259
|
} = triggerProps;
|
|
264
260
|
const popoverRef = ref;
|
|
265
261
|
return (
|
|
266
|
-
//
|
|
267
|
-
// TextField box width (which includes the suffix slot) so the
|
|
268
|
-
// listbox can stretch to match. Popover positioning still anchors
|
|
269
|
-
// to the inner <input> via the merged ref to avoid the 8px gap
|
|
270
|
-
// that would appear if the popover measured this wrapper's
|
|
271
|
-
// bottom edge.
|
|
262
|
+
// Measure the wrapper, but anchor to the input to avoid its outer gap.
|
|
272
263
|
/* @__PURE__ */ jsx("div", { ref: wrapperRef, style: { width: "100%" }, children: /* @__PURE__ */ jsx(
|
|
273
264
|
TextField,
|
|
274
265
|
{
|
|
@@ -316,4 +307,4 @@ function TypeaheadTextField({
|
|
|
316
307
|
TypeaheadTextField.displayName = "TypeaheadTextField";
|
|
317
308
|
|
|
318
309
|
export { TypeaheadTextField as T };
|
|
319
|
-
//# sourceMappingURL=TypeaheadTextField-
|
|
310
|
+
//# sourceMappingURL=TypeaheadTextField-DgazozK7.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"TypeaheadTextField-DgazozK7.js","sources":["../src/beta/components/TypeaheadTextField/internal/SuggestionItem.tsx","../src/beta/components/TypeaheadTextField/TypeaheadTextField.tsx"],"sourcesContent":["import { type HTMLAttributes, type ReactNode, forwardRef } from \"react\";\nimport cx from \"classnames\";\nimport menuStyles from \"../../../../components/Menu/Menu.module.scss\";\nimport styles from \"./SuggestionItem.module.scss\";\n\nexport type SuggestionItemProps = HTMLAttributes<HTMLDivElement> & {\n label: ReactNode;\n selected?: boolean;\n disabled?: boolean;\n};\n\n/** Non-focusable option row; the input retains focus via active descendant. */\nexport const SuggestionItem = forwardRef<HTMLDivElement, SuggestionItemProps>(\n ({ label, selected, disabled, className, ...rest }, ref) => (\n <div\n {...rest}\n ref={ref}\n role=\"option\"\n aria-selected={selected ?? false}\n aria-disabled={disabled || undefined}\n data-anv=\"suggestion-option\"\n className={cx(menuStyles[\"item\"], styles[\"option\"], className)}\n >\n {label}\n </div>\n ),\n);\n\nSuggestionItem.displayName = \"SuggestionItem\";\n","import {\n type CSSProperties,\n type ChangeEvent,\n type FocusEvent,\n type KeyboardEvent,\n type MouseEvent,\n type ReactNode,\n type Ref,\n useCallback,\n useEffect,\n useId,\n useLayoutEffect,\n useRef,\n useState,\n} from \"react\";\nimport { Popover } from \"../../../components/Popover\";\nimport { Spinner } from \"../../../components/Spinner\";\nimport { TextField, type TextFieldProps } from \"../../../components/TextField\";\nimport { mergeRefs } from \"../../../hooks/useMergeRefs/useMergeRefs\";\nimport { useDebouncedCallback } from \"../../../internal/hooks/useDebouncedCallback\";\nimport { useOptionallyControlledState } from \"../../../internal/hooks/useOptionallyControlledState\";\nimport type { DistributiveOmit } from \"../../../types\";\nimport { SuggestionItem } from \"./internal/SuggestionItem\";\nimport styles from \"./TypeaheadTextField.module.scss\";\n\nexport type TypeaheadTextFieldOption<T = string> = {\n /** Text committed to the input when the option is selected. */\n label: string;\n /** Consumer value returned through `onSelectOption`. */\n value: T;\n};\n\ntype LoadOptionsResult<T> =\n | TypeaheadTextFieldOption<T>[]\n | Promise<TypeaheadTextFieldOption<T>[]>;\n\n// Preserve TextFieldProps union arms; plain Omit collapses their discriminants.\nexport type TypeaheadTextFieldProps<T = string> = DistributiveOmit<\n TextFieldProps,\n \"value\" | \"defaultValue\" | \"onChange\" | \"suffix\"\n> & {\n /** Current input text in controlled mode. */\n value?: string;\n /** Initial input text in uncontrolled mode. */\n defaultValue?: string;\n /** Runs when typing, selection, or clearing changes the input text. */\n onChange?: (value: string) => void;\n /** Resolves suggestions for the current input after the configured delay. */\n loadOptions: (search: string) => LoadOptionsResult<T>;\n /** Runs after the input adopts the selected option's label. */\n onSelectOption?: (option: TypeaheadTextFieldOption<T>) => void;\n /**\n * Delay in milliseconds before each `loadOptions` request.\n * @default 300\n */\n debounceMs?: number;\n /**\n * Status shown when no suggestions are available.\n * @default \"No suggestions found\"\n */\n noSuggestionsLabel?: string;\n /**\n * Status announced while loading with no options to display.\n * @default \"Loading...\"\n */\n loadingLabel?: string;\n /** Replaces row content; selection still commits the option's `label`. */\n renderOption?: (option: TypeaheadTextFieldOption<T>) => ReactNode;\n /**\n * Opens and reloads suggestions when a non-empty input receives focus.\n * @default true\n */\n openOnFocus?: boolean;\n /**\n * Allows focus or click to load suggestions for an empty input.\n * @default false\n */\n openOnEmptyFocus?: boolean;\n};\n\nconst SUFFIX_SLOT_WIDTH = 20;\n\n/**\n * Text field with a debounced suggestion list that accepts synchronous or\n * asynchronous option loading.\n */\nexport function TypeaheadTextField<T = string>({\n value: valueProp,\n defaultValue,\n onChange,\n loadOptions,\n onSelectOption,\n debounceMs = 300,\n noSuggestionsLabel = \"No suggestions found\",\n loadingLabel = \"Loading...\",\n renderOption,\n openOnFocus = true,\n openOnEmptyFocus = false,\n onFocus,\n onBlur,\n onKeyDown,\n onClick,\n disabled,\n readOnly,\n loading: loadingProp,\n ...textFieldProps\n}: TypeaheadTextFieldProps<T>) {\n const [value, setValue] = useOptionallyControlledState<string>({\n controlledValue: valueProp,\n defaultValue: defaultValue ?? \"\",\n onChange,\n });\n\n const [open, setOpen] = useState(false);\n const [options, setOptions] = useState<TypeaheadTextFieldOption<T>[]>([]);\n const [internalLoading, setInternalLoading] = useState(false);\n const loading = loadingProp ?? internalLoading;\n\n // DOM focus stays on the input; this index drives the active descendant.\n const [highlightedIndex, setHighlightedIndex] = useState(-1);\n\n const inputRef = useRef<HTMLInputElement | null>(null);\n const listRef = useRef<HTMLDivElement>(null);\n // Measure the visible field wrapper so the content-sized popover cannot\n // collapse below it.\n const wrapperRef = useRef<HTMLDivElement>(null);\n const listboxId = useId();\n const optionId = (index: number) => `${listboxId}-option-${index}`;\n const [wrapperWidth, setWrapperWidth] = useState(0);\n\n // Measure before paint so the first opened popover has the current width.\n useLayoutEffect(() => {\n const wrapper = wrapperRef.current;\n if (!wrapper) return;\n const measure = () => {\n const next = wrapper.offsetWidth;\n setWrapperWidth((prev) => (prev === next ? prev : next));\n };\n measure();\n const ro = new ResizeObserver(measure);\n ro.observe(wrapper);\n return () => ro.disconnect();\n }, []);\n\n // Only the newest request may update options or loading state.\n const requestIdRef = useRef(0);\n const loadOptionsRef = useRef(loadOptions);\n loadOptionsRef.current = loadOptions;\n\n const performLoad = useCallback(async (search: string) => {\n const reqId = ++requestIdRef.current;\n try {\n const result = await Promise.resolve(loadOptionsRef.current(search));\n if (requestIdRef.current === reqId) {\n setOptions(result);\n }\n } catch {\n if (requestIdRef.current === reqId) {\n setOptions([]);\n }\n } finally {\n if (requestIdRef.current === reqId) {\n setInternalLoading(false);\n }\n }\n }, []);\n\n const debouncedLoad = useDebouncedCallback(performLoad, debounceMs);\n\n const isInteractive = !disabled && !readOnly;\n\n const requestOpen = useCallback(\n (search: string) => {\n if (!isInteractive) return;\n setOpen(true);\n setInternalLoading(true);\n debouncedLoad(search);\n },\n [debouncedLoad, isInteractive],\n );\n\n useEffect(() => {\n setHighlightedIndex(-1);\n }, [options]);\n\n useEffect(() => {\n if (!open) setHighlightedIndex(-1);\n }, [open]);\n\n // Focus remains on the input, so keyboard navigation must scroll the row.\n useEffect(() => {\n if (!open || highlightedIndex < 0) return;\n const active = listRef.current?.querySelector<HTMLElement>(\n `#${CSS.escape(`${listboxId}-option-${highlightedIndex}`)}`,\n );\n active?.scrollIntoView({ block: \"nearest\" });\n }, [highlightedIndex, open, listboxId]);\n\n const handleChange = (event: ChangeEvent<HTMLInputElement>) => {\n const next = event.target.value;\n setValue(next);\n requestOpen(next);\n };\n\n const handleFocus = (event: FocusEvent<HTMLInputElement>) => {\n onFocus?.(event);\n if (!isInteractive || !openOnFocus) return;\n // Ignore focus returning from the menu so selection cannot reopen it.\n const relatedTarget = event.relatedTarget as HTMLElement | null;\n if (relatedTarget && listRef.current?.contains(relatedTarget)) return;\n if (!value && !openOnEmptyFocus) return;\n requestOpen(value);\n };\n\n const handleClick = (event: MouseEvent<HTMLInputElement>) => {\n onClick?.(event);\n if (!isInteractive || open) return;\n if (!value && !openOnEmptyFocus) return;\n requestOpen(value);\n };\n\n const handleBlur = (event: FocusEvent<HTMLInputElement>) => {\n onBlur?.(event);\n // Keep the menu open while focus moves into its content.\n const relatedTarget = event.relatedTarget as HTMLElement | null;\n if (relatedTarget && listRef.current?.contains(relatedTarget)) return;\n setOpen(false);\n };\n\n const handleSelect = (option: TypeaheadTextFieldOption<T>) => {\n setValue(option.label);\n setOpen(false);\n onSelectOption?.(option);\n };\n\n const handleKeyDown = (event: KeyboardEvent<HTMLInputElement>) => {\n onKeyDown?.(event);\n if (event.defaultPrevented) return;\n\n if (event.key === \"Escape\" && open) {\n event.stopPropagation();\n event.preventDefault();\n setOpen(false);\n return;\n }\n\n if (event.key === \"ArrowDown\") {\n event.preventDefault();\n // Opening starts a load; there is no rendered option to highlight yet.\n if (!open) {\n requestOpen(value);\n return;\n }\n if (options.length === 0) return;\n setHighlightedIndex((i) => (i >= options.length - 1 ? 0 : i + 1));\n return;\n }\n\n if (event.key === \"ArrowUp\") {\n if (!open) return;\n event.preventDefault();\n if (options.length === 0) return;\n setHighlightedIndex((i) => (i <= 0 ? options.length - 1 : i - 1));\n return;\n }\n\n if (event.key === \"Enter\" && open && highlightedIndex >= 0) {\n const option = options[highlightedIndex];\n if (option) {\n // Committing a suggestion must not submit an enclosing form.\n event.preventDefault();\n handleSelect(option);\n }\n }\n };\n\n // Reserve the suffix width so loading transitions do not reflow the field.\n const suffix = (\n <span\n style={{\n display: \"inline-flex\",\n alignItems: \"center\",\n justifyContent: \"center\",\n width: SUFFIX_SLOT_WIDTH,\n height: SUFFIX_SLOT_WIDTH,\n }}\n data-anv=\"typeahead-suffix\"\n >\n {loading ? (\n <Spinner size=\"small\" inherit />\n ) : (\n <span\n aria-hidden\n style={{ display: \"inline-block\", width: 1, height: 1 }}\n />\n )}\n </span>\n );\n\n const renderList = () => {\n // Status rows stay outside the option set so they are not announced as\n // selectable results.\n if (loading && options.length === 0) {\n return (\n <div role=\"presentation\" aria-live=\"polite\" data-typeahead-status>\n {loadingLabel}\n </div>\n );\n }\n if (options.length === 0) {\n return (\n <div role=\"presentation\" data-typeahead-status>\n {noSuggestionsLabel}\n </div>\n );\n }\n return options.map((option, i) => (\n <SuggestionItem\n key={`${option.label}-${i}`}\n id={optionId(i)}\n label={renderOption ? renderOption(option) : option.label}\n selected={i === highlightedIndex}\n onClick={() => handleSelect(option)}\n // Keep input focus until the click commits this option.\n onMouseDown={(e) => e.preventDefault()}\n // Pointer and keyboard interaction share one active descendant.\n onMouseEnter={() => setHighlightedIndex(i)}\n />\n ));\n };\n\n return (\n <Popover\n open={open}\n onClose={() => setOpen(false)}\n onClickOutside={() => setOpen(false)}\n disableCaret\n disableTriggerFocus\n // Keep suggestions above or below the field instead of flipping sideways.\n disableFlipFallback\n noPadding\n placement=\"bottom-start\"\n >\n <Popover.Trigger>\n {(triggerProps) => {\n // The field owns open state, so discard Popover's trigger handlers.\n const {\n onClick: _ignoreTriggerClick,\n onKeyDown: _ignoreTriggerKey,\n onFocus: _ignoreTriggerFocus,\n onBlur: _ignoreTriggerBlur,\n onMouseEnter: _ignoreTriggerEnter,\n onMouseLeave: _ignoreTriggerLeave,\n ref,\n ...rest\n } = triggerProps;\n const popoverRef = ref as unknown as Ref<HTMLInputElement>;\n return (\n // Measure the wrapper, but anchor to the input to avoid its outer gap.\n <div ref={wrapperRef} style={{ width: \"100%\" }}>\n <TextField\n {...textFieldProps}\n {...rest}\n ref={mergeRefs([popoverRef, inputRef])}\n value={value}\n disabled={disabled}\n readOnly={readOnly}\n suffix={suffix}\n style={{ width: \"100%\", ...textFieldProps.style }}\n role=\"combobox\"\n aria-haspopup=\"listbox\"\n aria-autocomplete=\"list\"\n aria-expanded={open}\n aria-controls={listboxId}\n aria-activedescendant={\n open && highlightedIndex >= 0\n ? optionId(highlightedIndex)\n : undefined\n }\n onChange={handleChange}\n onFocus={handleFocus}\n onBlur={handleBlur}\n onClick={handleClick}\n onKeyDown={handleKeyDown}\n />\n </div>\n );\n }}\n </Popover.Trigger>\n <Popover.Content>\n <div\n ref={listRef}\n role=\"listbox\"\n id={listboxId}\n className={styles[\"listbox\"]}\n style={\n {\n \"--typeahead-min-width\": `${wrapperWidth}px`,\n } as CSSProperties\n }\n data-typeahead-list\n >\n {renderList()}\n </div>\n </Popover.Content>\n </Popover>\n );\n}\n\nTypeaheadTextField.displayName = \"TypeaheadTextField\";\n"],"names":["styles"],"mappings":"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"}
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
export { T as TypeaheadTextField } from './TypeaheadTextField-
|
|
1
|
+
export { T as TypeaheadTextField } from './TypeaheadTextField-DgazozK7.js';
|
|
2
2
|
//# sourceMappingURL=TypeaheadTextField.js.map
|
package/dist/{YearlessDateInputWithPicker-CoomgSEK.js → YearlessDateInputWithPicker-Bc8a33D5.js}
RENAMED
|
@@ -6,9 +6,9 @@ import { F as Flex } from './Flex-CRF7gj0_.js';
|
|
|
6
6
|
import { S as SvgCheck } from './check-Cf67OWrZ.js';
|
|
7
7
|
import { c as cx } from './index-De1g9FRV.js';
|
|
8
8
|
import { u as useLayoutPropsUtil } from './useLayoutPropsUtil-DjqeAJZ9.js';
|
|
9
|
-
import { P as Popover, u as useMergeRefs } from './AiMark-
|
|
9
|
+
import { P as Popover, u as useMergeRefs } from './AiMark-BfmK30vL.js';
|
|
10
10
|
import { g as maskitoUpdateElement, m as maskitoDateOptionsGenerator, a as maskitoWithPlaceholder, h as maskitoTransform, u as useMaskito } from './index.esm-C2ZhC_8d.js';
|
|
11
|
-
import { m as makeZeroShortcutPreprocessor } from './makeZeroShortcutPreprocessor-
|
|
11
|
+
import { m as makeZeroShortcutPreprocessor } from './makeZeroShortcutPreprocessor-D5KWcgUA.js';
|
|
12
12
|
import { t as textFieldStyles } from './TextField.module-DklyLNKz.js';
|
|
13
13
|
import { S as Spinner } from './Spinner-B7tTWcP6.js';
|
|
14
14
|
import { u as usePrevious } from './usePrevious-Bvq-5auG.js';
|
|
@@ -213,12 +213,10 @@ function validateYearlessDate({
|
|
|
213
213
|
const minDateDay = minDate?.day ?? 1;
|
|
214
214
|
const maxDateMonth = maxDate?.month ?? 12;
|
|
215
215
|
const maxDateDay = maxDate?.day ?? 31;
|
|
216
|
-
if (value.month < minDateMonth ||
|
|
217
|
-
value.month === minDateMonth && value.day < minDateDay) {
|
|
216
|
+
if (value.month < minDateMonth || value.month === minDateMonth && value.day < minDateDay) {
|
|
218
217
|
return false;
|
|
219
218
|
}
|
|
220
|
-
if (value.month > maxDateMonth ||
|
|
221
|
-
value.month === maxDateMonth && value.day > maxDateDay) {
|
|
219
|
+
if (value.month > maxDateMonth || value.month === maxDateMonth && value.day > maxDateDay) {
|
|
222
220
|
return false;
|
|
223
221
|
}
|
|
224
222
|
return true;
|
|
@@ -965,4 +963,4 @@ const YearlessDateInputWithPicker = forwardRef((props, ref) => {
|
|
|
965
963
|
YearlessDateInputWithPicker.displayName = "YearlessDateInputWithPicker";
|
|
966
964
|
|
|
967
965
|
export { PARTS as P, YearlessDateInputWithPicker as Y };
|
|
968
|
-
//# sourceMappingURL=YearlessDateInputWithPicker-
|
|
966
|
+
//# sourceMappingURL=YearlessDateInputWithPicker-Bc8a33D5.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"YearlessDateInputWithPicker-Bc8a33D5.js","sources":["../src/components/DateFieldYearless/parts.ts","../src/components/DateFieldYearless/internal/PickerListOption.tsx","../src/components/DateFieldYearless/internal/PickerList.tsx","../src/components/DateFieldYearless/internal/utils.ts","../src/components/DateFieldYearless/internal/YearlessDateSelectionPopover.tsx","../src/components/DateFieldYearless/internal/maskito/yearlessDateSegmentsStepping.ts","../src/components/DateFieldYearless/internal/maskito/yearlessDatePlaceholderMask.ts","../src/components/DateFieldYearless/internal/YearlessDateInput.tsx","../src/components/DateFieldYearless/internal/YearlessDateInputWithPicker.tsx"],"sourcesContent":["import { COMMON_PART } from \"../../internal/constants/anvParts\";\n\n/**\n * `data-anv-part` names for DateFieldYearless interactive sub-elements.\n *\n * The picker popover and month/day lists render in the top layer outside the\n * input subtree, so consumers must target their part attributes directly.\n */\nexport const PARTS = {\n input: COMMON_PART.dateInput,\n popover: COMMON_PART.popover,\n monthList: \"month-list\",\n dayList: \"day-list\",\n option: COMMON_PART.option,\n} as const;\n","import {\n type ComponentPropsWithoutRef,\n forwardRef,\n type MouseEvent,\n} from \"react\";\nimport { Icon } from \"../../Icon\";\nimport { Flex, type FlexProps } from \"../../Flex\";\nimport Check from \"@servicetitan/hammer-icon/mdi/round/check.svg\";\nimport { ANV_PART_ATTR } from \"../../../internal/constants/anvParts\";\nimport type { DataTrackingId } from \"../../../types\";\nimport { PARTS } from \"../parts\";\n\nimport cx from \"classnames\";\nimport styles from \"./PickerList.module.scss\";\n\nexport type PickerListOptionProps = ComponentPropsWithoutRef<\"li\"> & {\n /** Option label, numeric value, and whether it cannot be chosen. */\n item: { label: string; value: number; disabled?: boolean };\n isSelected: boolean;\n /** Called with the item, or `undefined` when a selected option is clicked again. */\n onSelectionChange: (\n selected: { label: string; value: number } | undefined,\n ) => void;\n alignItems?: FlexProps[\"alignItems\"];\n justifyItems?: FlexProps[\"justifyItems\"];\n alignContent?: FlexProps[\"alignContent\"];\n justifyContent?: FlexProps[\"justifyContent\"];\n placeItems?: FlexProps[\"placeItems\"];\n placeContent?: FlexProps[\"placeContent\"];\n} & DataTrackingId;\n\n/** One month or day option in a {@link PickerList}. */\nexport const PickerListOption = forwardRef<\n HTMLLIElement,\n PickerListOptionProps\n>((props, ref) => {\n const {\n className,\n children,\n onClick,\n item,\n isSelected,\n onSelectionChange,\n alignItems,\n justifyItems,\n alignContent,\n justifyContent,\n placeItems,\n placeContent,\n ...rest\n } = props;\n\n const disabled = item.disabled || false;\n\n const handleSelection = () => {\n if (disabled) return;\n\n if (isSelected) {\n onSelectionChange(undefined);\n } else {\n onSelectionChange(item);\n }\n };\n\n const onClickHandler = (e: MouseEvent<HTMLLIElement>) => {\n onClick?.(e);\n handleSelection();\n };\n\n const onKeyDownHandler = (e: React.KeyboardEvent<HTMLLIElement>) => {\n if (e.key === \"Enter\" || e.key === \" \") {\n e.preventDefault();\n handleSelection();\n }\n };\n\n const PickerListOptionClassNames = cx(\n styles[\"picker-list-option\"],\n className,\n );\n\n return (\n <li\n className={PickerListOptionClassNames}\n data-anv=\"picker-list-option\"\n role=\"option\"\n aria-disabled={disabled}\n aria-selected={isSelected}\n data-item-label={item.label}\n data-id={item.value}\n onClick={onClickHandler}\n onKeyDown={onKeyDownHandler}\n tabIndex={-1}\n ref={ref}\n {...rest}\n {...{ [ANV_PART_ATTR]: PARTS.option }}\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 || item.label}\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\nPickerListOption.displayName = \"PickerListOption\";\n","import {\n forwardRef,\n type ComponentPropsWithoutRef,\n useRef,\n useImperativeHandle,\n} from \"react\";\nimport type { LayoutUtilProps } from \"../../../types\";\nimport { PickerListOption } from \"./PickerListOption\";\nimport { useLayoutPropsUtil } from \"../../../internal/hooks\";\n\nimport cx from \"classnames\";\nimport styles from \"./PickerList.module.scss\";\n\nexport type PickerListItem = {\n /** Visible option label. */\n label: string;\n /** Numeric value used for selection and scroll-to. */\n value: number;\n /** Prevents selecting this option. */\n disabled?: boolean;\n};\n\nexport type PickerListProps = Omit<ComponentPropsWithoutRef<\"ul\">, \"children\"> &\n LayoutUtilProps & {\n /** Options rendered as listbox items. */\n items: PickerListItem[];\n /** Controlled selected option. */\n selected?: PickerListItem;\n /** Called after click or keyboard selection; `undefined` when toggling off. */\n onSelectionChange?: (selected: PickerListItem | undefined) => void;\n };\n\nexport type PickerListRef = {\n /** Scrolls the matching label to the vertical center of the list. */\n scrollToItem: (label: string, behavior?: ScrollBehavior) => void;\n /** Scrolls the matching value to the vertical center of the list. */\n scrollToValue: (value: number, behavior?: ScrollBehavior) => void;\n};\n\n/** Single-select list used by the yearless month/day pickers. */\nexport const PickerList = forwardRef<PickerListRef, PickerListProps>(\n (props, ref) => {\n const { layoutStyles, componentProps } = useLayoutPropsUtil(props);\n const {\n className,\n items,\n onSelectionChange,\n selected: selectedProp,\n style,\n ...rest\n } = componentProps;\n\n const listRef = useRef<HTMLUListElement>(null);\n\n const scrollToItem = (\n label: string,\n behavior: ScrollBehavior = \"smooth\",\n ) => {\n const listElement = listRef.current;\n const itemElement = listElement?.querySelector(\n `li[data-item-label=\"${label}\"]`,\n ) as HTMLLIElement | null;\n\n if (listElement && itemElement) {\n const itemTop = itemElement.offsetTop;\n const itemHeight = itemElement.offsetHeight;\n const listHeight = listElement.clientHeight;\n\n const targetScrollTop = itemTop - listHeight / 2 + itemHeight / 2;\n\n const maxScrollTop = listElement.scrollHeight - listHeight;\n const clampedScrollTop = Math.max(\n 0,\n Math.min(targetScrollTop, maxScrollTop),\n );\n\n listElement.scrollTo({\n top: clampedScrollTop,\n behavior,\n });\n }\n };\n\n const scrollToValue = (\n value: number,\n behavior: ScrollBehavior = \"smooth\",\n ) => {\n const item = items.find((item) => item.value === value);\n if (item) {\n scrollToItem(item.label, behavior);\n }\n };\n\n useImperativeHandle(ref, () => ({\n scrollToItem,\n scrollToValue,\n }));\n\n const handleSelectionChange = (item: PickerListItem | undefined) => {\n onSelectionChange?.(item);\n };\n\n const PickerListClassNames = cx(styles[\"picker-list\"], className);\n\n const styleCombined = {\n ...style,\n ...layoutStyles,\n };\n\n return (\n <ul\n role=\"listbox\"\n style={styleCombined}\n className={PickerListClassNames}\n data-anv=\"picker-list\"\n ref={listRef}\n {...rest}\n tabIndex={-1}\n >\n {items.map((item) => (\n <PickerListOption\n key={item.label}\n item={item}\n isSelected={selectedProp?.value === item.value}\n onSelectionChange={handleSelectionChange}\n />\n ))}\n </ul>\n );\n },\n);\n\nPickerList.displayName = \"PickerList\";\n","import type { YearlessDate, YearlessDateMode } from \"../types\";\n\n/** Empty dates pass unless `required`. Incomplete, unavailable, or out-of-range dates fail. */\nexport function validateYearlessDate({\n value,\n constraints,\n}: {\n value: YearlessDate | null;\n constraints: {\n required?: boolean;\n unavailable?: {\n dates?: YearlessDate[];\n };\n minDate?: YearlessDate | null;\n maxDate?: YearlessDate | null;\n };\n}): boolean {\n const { required, unavailable, minDate, maxDate } = constraints;\n if (!value || (!value?.day && !value?.month)) {\n return required ? false : true;\n }\n if (value.day === null || value.month === null) {\n return false;\n }\n if (\n unavailable?.dates?.some(\n (d) => d.day === value.day && d.month === value.month,\n )\n ) {\n return false;\n }\n const minDateMonth = minDate?.month ?? 1;\n const minDateDay = minDate?.day ?? 1;\n const maxDateMonth = maxDate?.month ?? 12;\n const maxDateDay = maxDate?.day ?? 31;\n if (\n value.month < minDateMonth ||\n (value.month === minDateMonth && value.day < minDateDay)\n ) {\n return false;\n }\n if (\n value.month > maxDateMonth ||\n (value.month === maxDateMonth && value.day > maxDateDay)\n ) {\n return false;\n }\n return true;\n}\n\n/** Localized month names for the picker, using UTC so the calendar month does not shift. */\nexport function getMonthNames({\n locale,\n format,\n}: {\n locale: string;\n format: Intl.DateTimeFormatOptions[\"month\"];\n}): string[] {\n const formatFn = new Intl.DateTimeFormat(locale, {\n month: format,\n timeZone: \"UTC\",\n }).format;\n return [...Array(12).keys()].map((m) =>\n formatFn(new Date(Date.UTC(2021, m, 1))),\n );\n}\n\n/** Parses masked text into month/day; incomplete segments become `null`. */\nexport function parseInputValue(\n value: string,\n mode: YearlessDateMode,\n removePlaceholder: (value: string) => string,\n): {\n value: YearlessDate | null;\n isInputValid: boolean;\n isInputEmpty: boolean;\n} {\n const valueMinusPlaceholder = removePlaceholder(value);\n const [segment1, segment2] = valueMinusPlaceholder.split(\"/\");\n const incompleteFirstSegment = segment1?.length !== 2;\n const incompleteSecondSegment = segment2?.length !== 2;\n if (mode === \"dd/mm\") {\n return {\n value: {\n day: incompleteFirstSegment ? null : parseInt(segment1),\n month: incompleteSecondSegment ? null : parseInt(segment2),\n },\n isInputValid: !incompleteFirstSegment && !incompleteSecondSegment,\n isInputEmpty: valueMinusPlaceholder === \"\",\n };\n }\n return {\n value: {\n day: incompleteSecondSegment ? null : parseInt(segment2),\n month: incompleteFirstSegment ? null : parseInt(segment1),\n },\n isInputValid: !incompleteFirstSegment && !incompleteSecondSegment,\n isInputEmpty: valueMinusPlaceholder === \"\",\n };\n}\n\n/** Reorders existing month/day digits when `mode` changes. */\nexport function swapMode(\n inputString: string,\n previousMode: YearlessDateMode,\n mode: YearlessDateMode,\n) {\n const { day, month } = divideSegments(inputString, previousMode);\n return stringifyYearlessDate(day, month, mode);\n}\n\nfunction divideSegments(\n value: string,\n mode: YearlessDateMode,\n): {\n day: string;\n month: string;\n} {\n const [segment1, segment2] = value.split(\"/\");\n if (mode === \"dd/mm\") {\n return { day: segment1, month: segment2 };\n }\n return { day: segment2, month: segment1 };\n}\n\n/** Formats month/day into the masked string, using `__` for a missing segment. */\nexport function stringifyYearlessDate(\n day: number | string | null,\n month: number | string | null,\n mode: YearlessDateMode,\n) {\n const dd = (day ?? \"__\").toString().padStart(2, \"0\");\n const mm = (month ?? \"__\").toString().padStart(2, \"0\");\n if (mode === \"dd/mm\") {\n return `${dd}/${mm}`;\n }\n return `${mm}/${dd}`;\n}\n\n/** Days in `month` (1–12), using a leap year so February is 29. */\nexport function getDaysInMonth(month: number): number {\n return new Date(2024, month, 0).getDate();\n}\n\n/** Months that cannot contain `day` (for example 31 in April). */\nexport function getInvalidMonthsForDay(day: number): number[] {\n const invalidMonths: number[] = [];\n\n for (let month = 1; month <= 12; month++) {\n const daysInMonth = getDaysInMonth(month);\n if (day > daysInMonth) {\n invalidMonths.push(month);\n }\n }\n\n return invalidMonths;\n}\n","import { type Ref, type RefObject, useEffect, useMemo, useRef } from \"react\";\nimport Popover from \"../../../internal/components/Popover\";\nimport { ANV_PART_ATTR } from \"../../../internal/constants/anvParts\";\nimport { PickerList, type PickerListRef } from \"./PickerList\";\nimport { getMonthNames, getDaysInMonth, getInvalidMonthsForDay } from \"./utils\";\nimport { Flex } from \"../../Flex\";\nimport type { YearlessDateMode } from \"..\";\nimport dateFieldYearlessStyles from \"../DateFieldYearless.module.scss\";\nimport { PARTS } from \"../parts\";\nimport type { PopoverTriggerProps } from \"../../../internal/components/Popover/PopoverTrigger\";\n\nexport type YearlessDateSelectionPopoverProps = {\n popoverRef: RefObject<{\n openPopover: () => void;\n closePopover: () => void;\n }>;\n popoverContentRef: Ref<HTMLDivElement>;\n /** Currently selected month, or `null` while unset. */\n month: number | null;\n /** Currently selected day, or `null` while unset. */\n day: number | null;\n /** Called after a month is chosen; may clear an impossible day. */\n onMonthChange: (month: number | null) => void;\n /** Called after a day is chosen; may clear an impossible month. */\n onDayChange: (day: number | null) => void;\n onClose: () => void;\n /** Controls whether the day list or month list comes first. */\n mode: YearlessDateMode;\n onFocus?: (event: React.FocusEvent) => void;\n onBlur?: (event: React.FocusEvent) => void;\n} & PopoverTriggerProps;\n\n/** Month and day lists in a popover, ordered to match `mode`. */\nexport function YearlessDateSelectionPopover({\n children,\n popoverRef,\n popoverContentRef,\n month,\n day,\n onMonthChange,\n onDayChange,\n onClose,\n mode,\n onFocus,\n onBlur,\n}: YearlessDateSelectionPopoverProps) {\n const monthListboxRef = useRef<PickerListRef>(null);\n const dayListboxRef = useRef<PickerListRef>(null);\n\n const months = useMemo(() => {\n return getMonthNames({ locale: \"en-US\", format: \"short\" }).map(\n (name, index) => ({\n label: name,\n value: index + 1,\n }),\n );\n }, []);\n\n const days = useMemo(() => {\n return Array.from({ length: 31 }, (_, i) => ({\n label: `${i + 1}`,\n value: i + 1,\n }));\n }, []);\n\n const invalidDays = useMemo(() => {\n if (!month) {\n return [];\n }\n const daysInMonth = getDaysInMonth(month);\n return Array.from(\n { length: 31 - daysInMonth },\n (_, i) => daysInMonth + i + 1,\n );\n }, [month]);\n\n const invalidMonths = useMemo(() => {\n if (!day) {\n return [];\n }\n return getInvalidMonthsForDay(day);\n }, [day]);\n\n const scrollToSelectedOption = (\n value: number | null,\n ref: RefObject<PickerListRef>,\n behavior: ScrollBehavior = \"smooth\",\n ) => {\n if (value && ref.current) {\n ref.current.scrollToValue(value, behavior);\n }\n };\n\n useEffect(() => {\n scrollToSelectedOption(month, monthListboxRef, \"smooth\");\n }, [month]);\n\n useEffect(() => {\n scrollToSelectedOption(day, dayListboxRef, \"smooth\");\n }, [day]);\n\n const handleMonthChange = (\n selected: { label: string; value: number } | undefined,\n ) => {\n if (selected?.value) {\n onMonthChange?.(selected.value);\n\n if (day && invalidDays.includes(day)) {\n onDayChange?.(null);\n }\n }\n };\n\n const handleDayChange = (\n selected: { label: string; value: number } | undefined,\n ) => {\n if (selected?.value) {\n onDayChange?.(selected.value);\n\n if (month && invalidMonths.includes(month)) {\n onMonthChange?.(null);\n }\n }\n };\n\n const monthPicker = (\n <PickerList\n ref={monthListboxRef}\n items={months.map((item) => ({\n ...item,\n disabled: invalidMonths.includes(item.value),\n }))}\n selected={months.find((m) => m.value === month)}\n style={{ maxHeight: \"240px\", overflow: \"auto\" }}\n className={dateFieldYearlessStyles[\"scrolling-container\"]}\n onSelectionChange={handleMonthChange}\n {...{ [ANV_PART_ATTR]: PARTS.monthList }}\n />\n );\n\n const dayPicker = (\n <PickerList\n ref={dayListboxRef}\n items={days.map((item) => ({\n ...item,\n disabled: invalidDays.includes(item.value),\n }))}\n selected={days.find((d) => d.value === day)}\n className={dateFieldYearlessStyles[\"scrolling-container\"]}\n onSelectionChange={handleDayChange}\n {...{ [ANV_PART_ATTR]: PARTS.dayList }}\n />\n );\n\n return (\n <Popover\n ref={popoverRef}\n placement=\"bottom-start\"\n role=\"listbox\"\n onClose={onClose}\n onOpenAnimationStart={() => {\n scrollToSelectedOption(month, monthListboxRef, \"instant\");\n scrollToSelectedOption(day, dayListboxRef, \"instant\");\n }}\n >\n <Popover.Trigger>\n {(triggerProps) => <>{children(triggerProps)}</>}\n </Popover.Trigger>\n <Popover.Content\n ref={popoverContentRef}\n onFocus={onFocus}\n onBlur={onBlur}\n hideWhileClosed\n {...{ [ANV_PART_ATTR]: PARTS.popover }}\n >\n <Flex gap={2} style={{ maxHeight: \"240px\" }}>\n {mode === \"dd/mm\" ? (\n <>\n {dayPicker}\n {monthPicker}\n </>\n ) : (\n <>\n {monthPicker}\n {dayPicker}\n </>\n )}\n </Flex>\n </Popover.Content>\n </Popover>\n );\n}\n","import type { MaskitoPlugin, MaskitoElement } from \"@maskito/core\";\nimport { maskitoUpdateElement } from \"@maskito/core\";\n\nimport type { YearlessDateMode } from \"../../types\";\nimport { getDaysInMonth } from \"../utils\";\n\ntype YearlessDateSegments = {\n month: number;\n day: number;\n};\n\ntype SegmentRange = [number, number];\n\n// Constants\nconst MIN_MONTH = 1;\nconst MAX_MONTH = 12;\nconst MIN_DAY = 1;\nconst MAX_DAY = 31;\nconst SEGMENT_LENGTH = 2;\n\n/**\n * ArrowUp decreases and ArrowDown increases the focused month or day;\n * ArrowRight inserts `/` after the first segment when the placeholder is\n * still present. Changing the month clamps an impossible day.\n */\nexport function createYearlessDateSegmentsSteppingPlugin({\n mode,\n}: {\n mode: YearlessDateMode;\n}): MaskitoPlugin {\n const segmentsIndexes = createSegmentIndexes(mode);\n\n return (element) => {\n const listener = (event: KeyboardEvent): void => {\n if (event.key === \"ArrowRight\") {\n handleArrowRight(element, event);\n return;\n }\n\n if (event.key !== \"ArrowUp\" && event.key !== \"ArrowDown\") {\n return;\n }\n\n event.preventDefault();\n\n const selectionStart = element.selectionStart ?? 0;\n const activeSegment = getActiveSegment({\n segmentsIndexes,\n selectionStart,\n });\n\n if (!activeSegment) {\n return;\n }\n\n const segmentSelection = segmentsIndexes.get(activeSegment);\n if (!segmentSelection) {\n return;\n }\n\n const maxValue = getMaxValueForSegment(\n activeSegment,\n element.value,\n segmentsIndexes,\n );\n\n const updatedValue = updateSegmentValue({\n selection: segmentSelection,\n value: element.value,\n increment: event.key === \"ArrowUp\" ? -1 : 1,\n min: MIN_DAY,\n max: maxValue,\n });\n\n const finalValue =\n activeSegment === \"month\"\n ? adjustDayForNewMonth(updatedValue, segmentsIndexes)\n : updatedValue;\n\n maskitoUpdateElement(element, {\n value: finalValue,\n selection: [selectionStart, selectionStart],\n });\n };\n\n element.addEventListener(\"keydown\", listener);\n return () => element.removeEventListener(\"keydown\", listener);\n };\n}\n\nfunction createSegmentIndexes(\n mode: YearlessDateMode,\n): Map<keyof YearlessDateSegments, SegmentRange> {\n const map = new Map<keyof YearlessDateSegments, SegmentRange>();\n\n if (mode === \"mm/dd\") {\n map.set(\"month\", [0, SEGMENT_LENGTH]);\n map.set(\"day\", [SEGMENT_LENGTH + 1, SEGMENT_LENGTH * 2 + 1]);\n } else if (mode === \"dd/mm\") {\n map.set(\"day\", [0, SEGMENT_LENGTH]);\n map.set(\"month\", [SEGMENT_LENGTH + 1, SEGMENT_LENGTH * 2 + 1]);\n }\n\n return map;\n}\n\nfunction handleArrowRight(element: MaskitoElement, event: KeyboardEvent): void {\n const selectionStart = element.selectionStart ?? 0;\n const value = element.value;\n\n if (selectionStart === SEGMENT_LENGTH && value.includes(\"__\")) {\n event.preventDefault();\n maskitoUpdateElement(element, {\n value: value + \"/\",\n selection: [selectionStart + 1, selectionStart + 1],\n });\n }\n}\n\nfunction adjustDayForNewMonth(\n value: string,\n segmentsIndexes: Map<keyof YearlessDateSegments, SegmentRange>,\n): string {\n const monthSelection = segmentsIndexes.get(\"month\");\n const daySelection = segmentsIndexes.get(\"day\");\n\n if (!monthSelection || !daySelection) {\n return value;\n }\n\n const monthValue = parseSegmentValue(value, monthSelection);\n const dayValue = parseSegmentValue(value, daySelection);\n\n if (monthValue < MIN_MONTH || monthValue > MAX_MONTH || dayValue < MIN_DAY) {\n return value;\n }\n\n const maxDaysInMonth = getDaysInMonth(monthValue);\n\n if (dayValue <= maxDaysInMonth) {\n return value;\n }\n\n const [dayFrom, dayTo] = daySelection;\n const adjustedDay = String(maxDaysInMonth).padStart(dayTo - dayFrom, \"0\");\n\n return (\n value.slice(0, dayFrom) + adjustedDay + value.slice(dayTo, value.length)\n );\n}\n\nfunction parseSegmentValue(value: string, selection: SegmentRange): number {\n const [from, to] = selection;\n const segmentText = value.slice(from, to);\n if (segmentText.includes(\"_\")) return 0;\n return Number(segmentText.padEnd(to - from, \"0\"));\n}\n\nfunction getMaxValueForSegment(\n segment: keyof YearlessDateSegments,\n value: string,\n segmentsIndexes: Map<keyof YearlessDateSegments, SegmentRange>,\n): number {\n if (segment === \"month\") {\n return MAX_MONTH;\n }\n\n const monthSelection = segmentsIndexes.get(\"month\");\n if (!monthSelection) {\n return MAX_DAY;\n }\n\n const monthValue = parseSegmentValue(value, monthSelection);\n\n if (monthValue < MIN_MONTH || monthValue > MAX_MONTH) {\n return MAX_DAY;\n }\n\n return getDaysInMonth(monthValue);\n}\n\nfunction getActiveSegment({\n segmentsIndexes,\n selectionStart,\n}: {\n segmentsIndexes: Map<keyof YearlessDateSegments, SegmentRange>;\n selectionStart: number;\n}): keyof YearlessDateSegments | null {\n for (const [segmentName, segmentRange] of segmentsIndexes.entries()) {\n const [from, to] = segmentRange;\n if (from <= selectionStart && selectionStart <= to) {\n return segmentName;\n }\n }\n return null;\n}\n\nfunction updateSegmentValue({\n selection,\n value,\n increment,\n min,\n max,\n}: {\n selection: SegmentRange;\n value: string;\n increment: number;\n min: number;\n max: number;\n}): string {\n const [from, to] = selection;\n const segmentValue = parseSegmentValue(value, selection);\n // Prevent decrementing 0 losing negative and rolling up to 1.\n if (segmentValue === 0 && increment < 0) return value;\n const newSegmentValue = Math.max(\n min,\n Math.min(max, segmentValue + increment),\n );\n\n return (\n value.slice(0, from) +\n String(newSegmentValue).padStart(to - from, \"0\") +\n value.slice(to, value.length)\n );\n}\n","import { maskitoTransform, type MaskitoOptions } from \"@maskito/core\";\nimport {\n maskitoDateOptionsGenerator,\n maskitoWithPlaceholder,\n} from \"@maskito/kit\";\n\nimport type { YearlessDateMode } from \"../../types\";\nimport { makeZeroShortcutPreprocessor } from \"../../../DateFieldSingle/internal/maskito/makeZeroShortcutPreprocessor\";\nimport { createYearlessDateSegmentsSteppingPlugin } from \"./yearlessDateSegmentsStepping\";\n\n/** Builds Maskito month/day options with a persistent placeholder, zero shortcut, and optional stepping. */\nconst yearlessDatePlaceholderMask = ({\n mode,\n separator = \"/\",\n placeholder,\n enableStepping = false,\n}: {\n mode: YearlessDateMode;\n enableStepping: boolean;\n separator?: string;\n placeholder: string;\n}) => {\n const dateOptions = maskitoDateOptionsGenerator({\n mode,\n separator,\n });\n\n const { plugins, removePlaceholder, ...placeholderOptions } =\n maskitoWithPlaceholder(placeholder);\n\n const datePlaceholderMask = {\n ...dateOptions,\n plugins: plugins.concat([\n ...(dateOptions.plugins || []),\n ...(enableStepping\n ? [createYearlessDateSegmentsSteppingPlugin({ mode })]\n : []),\n ]),\n preprocessors: [\n ...placeholderOptions.preprocessors,\n ...dateOptions.preprocessors,\n makeZeroShortcutPreprocessor(mode, separator),\n ],\n postprocessors: [\n ...dateOptions.postprocessors,\n ...placeholderOptions.postprocessors,\n ],\n } satisfies Required<MaskitoOptions>;\n\n const transform = (value: string) => {\n return maskitoTransform(value, datePlaceholderMask);\n };\n\n return { options: datePlaceholderMask, removePlaceholder, transform };\n};\n\nexport default yearlessDatePlaceholderMask;\n","import { useMaskito } from \"@maskito/react\";\nimport {\n forwardRef,\n type InputHTMLAttributes,\n useCallback,\n useEffect,\n useImperativeHandle,\n useMemo,\n useRef,\n useState,\n} from \"react\";\nimport { useMergeRefs } from \"@floating-ui/react\";\nimport type { YearlessDateMode, YearlessDate } from \"../types\";\nimport { usePrevious } from \"../../../internal/hooks\";\nimport yearlessDatePlaceholderMask from \"./maskito/yearlessDatePlaceholderMask\";\nimport { swapMode, stringifyYearlessDate, parseInputValue } from \"./utils\";\nimport textFieldStyles from \"../../TextField/TextField.module.scss\";\nimport dateFieldYearlessStyles from \"../DateFieldYearless.module.scss\";\nimport cx from \"classnames\";\nimport type { PassThroughPropsWithRef, Size } from \"../../../types\";\nimport { Spinner } from \"../../Spinner\";\n\nexport type YearlessDateInputChange = {\n /** Native change event, or `null` when the value was set programmatically. */\n event: React.ChangeEvent<HTMLInputElement> | null;\n /** Parsed month/day, including `null` segments while incomplete. */\n value: YearlessDate | null;\n /** Whether both segments are two digits. */\n isInputValid: boolean;\n /** Whether no date digits remain after removing the placeholder. */\n isInputEmpty: boolean;\n};\n\n/** Receives parsed input changes, including incomplete segments. */\nexport type YearlessDateInputChangeHandler = (\n change: YearlessDateInputChange,\n) => void;\n\nexport type YearlessDateInputProps = Omit<\n InputHTMLAttributes<HTMLInputElement>,\n \"onChange\" | \"value\" | \"ref\" | \"size\"\n> & {\n /** Called when the parsed month/day changes. */\n onChange: YearlessDateInputChangeHandler;\n /** Order of the month and day segments. Defaults to `mm/dd`. */\n mode?: YearlessDateMode;\n /** Date displayed after an external update. */\n value?: YearlessDate | null;\n /** Applies error styling on the input. */\n error?: boolean;\n /** Field height. Defaults to `medium`. */\n size?: Extract<Size, \"small\" | \"medium\" | \"large\">;\n wrapperProps?: PassThroughPropsWithRef<\"div\">;\n rootProps?: PassThroughPropsWithRef<\"div\">;\n /** Shows a spinner after the input. Defaults to `false`. */\n loading?: boolean;\n /** Enables ArrowUp/ArrowDown stepping of the focused segment. Defaults to `false`. */\n enableStepping?: boolean;\n};\n\nexport type YearlessDateInputRef = HTMLInputElement & {\n /** Updates the displayed date without firing a native input event. */\n setValue: (value: YearlessDate | null) => {\n value: YearlessDate | null;\n isInputValid: boolean;\n isInputEmpty: boolean;\n };\n /** Strips the mask placeholder so remaining digits can be parsed. */\n removePlaceholder: (value: string) => string;\n};\n\n/**\n * Masked month/day input used by DateFieldYearless.\n *\n * @internal\n */\nexport const YearlessDateInput = forwardRef<\n YearlessDateInputRef,\n YearlessDateInputProps\n>(\n (\n {\n onChange,\n mode = \"mm/dd\",\n value,\n error,\n size,\n wrapperProps,\n rootProps,\n loading = false,\n enableStepping = false,\n className: classNameProp,\n ...restProps\n },\n ref,\n ) => {\n const placeholder = \"__/__\";\n const [inputValue, setInputValue] = useState(placeholder);\n const { options, removePlaceholder, transform } =\n yearlessDatePlaceholderMask({\n mode,\n placeholder,\n enableStepping,\n });\n const maskedInputRef = useMaskito({ options });\n const inputRef = useRef<HTMLInputElement>(null);\n const combinedRef = useMergeRefs([maskedInputRef, inputRef, ref]);\n const previousValue = usePrevious(value);\n const previousMode = usePrevious(mode);\n\n useEffect(() => {\n if (mode !== previousMode) {\n setInputValue((oldInputValue) =>\n swapMode(oldInputValue, previousMode ?? mode, mode),\n );\n }\n }, [mode, previousMode]);\n\n const triggerAutoChange = useCallback(\n (stringValue: string) => {\n const {\n value: v,\n isInputValid,\n isInputEmpty,\n } = parseInputValue(stringValue, mode, removePlaceholder);\n onChange?.({\n event: null,\n value: v,\n isInputValid,\n isInputEmpty,\n });\n },\n [mode, removePlaceholder, onChange],\n );\n\n useEffect(() => {\n if (\n previousValue?.day !== value?.day ||\n previousValue?.month !== value?.month\n ) {\n if (value?.day && value?.month) {\n const stringValue = stringifyYearlessDate(\n value.day,\n value.month,\n mode,\n );\n const transformedValue = transform(stringValue);\n setInputValue(transformedValue);\n if (transformedValue !== stringValue) {\n triggerAutoChange(transformedValue);\n }\n } else if (\n previousValue !== null &&\n previousValue !== undefined &&\n (value === null || (value?.day === null && value?.month === null))\n ) {\n setInputValue(placeholder);\n } else {\n return;\n }\n }\n }, [value, mode, previousValue, transform, triggerAutoChange]);\n\n const currentParsedData = useMemo(() => {\n return parseInputValue(inputValue, mode, removePlaceholder);\n }, [inputValue, mode, removePlaceholder]);\n\n const handleChange = (event: React.ChangeEvent<HTMLInputElement>) => {\n setInputValue(event.target.value);\n const {\n value: v,\n isInputValid,\n isInputEmpty,\n } = parseInputValue(event.target.value, mode, removePlaceholder);\n\n const isDateDifferent =\n (v === null) !== (currentParsedData.value === null) ||\n v?.day !== currentParsedData.value?.day ||\n v?.month !== currentParsedData.value?.month;\n if (!isDateDifferent) {\n return;\n }\n\n onChange?.({\n event,\n value: v ?? currentParsedData.value ?? null,\n isInputValid,\n isInputEmpty,\n });\n };\n\n useImperativeHandle(ref, () => {\n const input = inputRef.current;\n if (!input) return null as unknown as YearlessDateInputRef;\n return Object.assign(input, {\n setValue: (value: YearlessDate | null) => {\n if (!value) {\n setInputValue(placeholder);\n return parseInputValue(placeholder, mode, removePlaceholder);\n }\n const valueAsString = stringifyYearlessDate(\n value.day ?? null,\n value.month ?? null,\n mode,\n );\n const transformedValue = transform(valueAsString);\n setInputValue(transformedValue);\n return parseInputValue(transformedValue, mode, removePlaceholder);\n },\n removePlaceholder,\n });\n }, [mode, placeholder, removePlaceholder, transform]);\n\n return (\n <div\n className={cx(textFieldStyles[\"textfield\"])}\n data-anv=\"yearless-date-input\"\n {...rootProps}\n >\n <div\n {...wrapperProps}\n className={cx(\n textFieldStyles[\"input-wrapper\"],\n wrapperProps?.className,\n {\n [textFieldStyles[\"small\"]]: size === \"small\",\n [textFieldStyles[\"large\"]]: size === \"large\",\n [dateFieldYearlessStyles[\"small\"]]: size === \"small\",\n [dateFieldYearlessStyles[\"large\"]]: size === \"large\",\n },\n )}\n >\n {/* anv-parts-allow-interactive -- PARTS.input forwarded via restProps from DateFieldYearless */}\n <input\n {...restProps}\n ref={combinedRef}\n data-month-value={value?.month}\n data-day-value={value?.day}\n data-input-valid={currentParsedData.isInputValid}\n data-input-empty={currentParsedData.isInputEmpty}\n value={inputValue}\n onChange={handleChange}\n type=\"text\"\n className={cx(\n textFieldStyles[\"input\"],\n dateFieldYearlessStyles[\"input\"],\n {\n [textFieldStyles[\"error\"]]: error ?? false,\n },\n classNameProp,\n )}\n />\n {loading ? (\n <div className={textFieldStyles[\"loading-spinner-wrapper\"]}>\n <Spinner />\n </div>\n ) : null}\n </div>\n </div>\n );\n },\n);\n\nYearlessDateInput.displayName = \"YearlessDateInput\";\n","import {\n forwardRef,\n type InputHTMLAttributes,\n type Ref,\n useEffect,\n useImperativeHandle,\n useMemo,\n useRef,\n useState,\n} from \"react\";\nimport type { YearlessDateMode, YearlessDate } from \"../types\";\nimport { YearlessDateSelectionPopover } from \"./YearlessDateSelectionPopover\";\nimport type { DateFieldYearlessChangeHandler } from \"../DateFieldYearless\";\nimport {\n YearlessDateInput,\n type YearlessDateInputChange,\n type YearlessDateInputRef,\n} from \"./YearlessDateInput\";\nimport { validateYearlessDate } from \"./utils\";\nimport {\n useFocusWithin,\n useOptionallyControlledState,\n} from \"../../../internal\";\nimport type { Size } from \"../../../types\";\nimport { mergeRefs } from \"../../../hooks/useMergeRefs/useMergeRefs\";\n\nexport type YearlessDateInputWithPickerProps = Omit<\n InputHTMLAttributes<HTMLInputElement>,\n \"onChange\" | \"value\" | \"ref\" | \"size\" | \"defaultValue\" | \"onFocus\" | \"onBlur\"\n> & {\n /** Controlled month/day. Pass `null` to clear the field. */\n value?: YearlessDate | null;\n /** Initial month/day for uncontrolled use. */\n defaultValue?: YearlessDate | null;\n /** Reports the date plus separate input-format and constraint validity. */\n onChange?: DateFieldYearlessChangeHandler;\n /** Order of the month and day segments. Defaults to `mm/dd`. */\n mode?: YearlessDateMode;\n /** Makes an empty date fail constraint validation. */\n required?: boolean;\n /** Earliest valid month/day. */\n minDate?: YearlessDate | null;\n /** Latest valid month/day. */\n maxDate?: YearlessDate | null;\n /** Dates that fail constraint validation. */\n unavailable?: {\n /** 1-based month/day objects, not ISO strings. */\n dates?: YearlessDate[];\n };\n /** Renders only the masked input without its month/day picker. */\n disablePicker?: boolean;\n /** Field height. Defaults to `medium`. */\n size?: Extract<Size, \"small\" | \"medium\" | \"large\">;\n /** Applies error styling on the input. */\n error?: boolean;\n /** Shows a spinner after the input. Defaults to `false`. */\n loading?: boolean;\n onFocus?: (event: React.FocusEvent) => void;\n onBlur?: (event: React.FocusEvent) => void;\n};\n\nexport type YearlessDateInputWithPickerRef = {\n focus: () => void;\n /** Updates the displayed date without firing a native input event. */\n setValue: (value: YearlessDate | null) => void;\n};\n\n/**\n * Masked month/day input with an optional picker. Commits a picker change once\n * the first segment for the current `mode` is set.\n */\nexport const YearlessDateInputWithPicker = forwardRef<\n YearlessDateInputWithPickerRef,\n YearlessDateInputWithPickerProps\n>((props, ref) => {\n const {\n value: valueProp,\n defaultValue: defaultValueProp,\n onChange: onChangeProp,\n minDate,\n maxDate,\n unavailable,\n required,\n disablePicker = false,\n mode = \"mm/dd\",\n size = \"medium\",\n error = false,\n loading = false,\n onFocus: onFocusProp,\n onBlur: onBlurProp,\n disabled,\n ...restProps\n } = props;\n\n const inputRef = useRef<YearlessDateInputRef>(null);\n const popoverRef = useRef<{\n openPopover: () => void;\n closePopover: () => void;\n }>(null);\n // Tracked as state, not a ref: the focus-within guard below needs the element\n // during render, and a ref is still null on the render that attaches the blur\n // handler — leaving the guard empty for the first option click.\n const [popoverContent, setPopoverContent] = useState<HTMLDivElement | null>(\n null,\n );\n\n useEffect(() => {\n if (disabled) {\n popoverRef.current?.closePopover();\n }\n }, [disabled]);\n\n const [value, setValue] = useOptionallyControlledState<YearlessDate | null>({\n controlledValue: valueProp,\n defaultValue: defaultValueProp,\n });\n const [tempPickerValue, setTempPickerValue] = useState<YearlessDate | null>(\n value,\n );\n\n useImperativeHandle(\n ref,\n (): YearlessDateInputWithPickerRef => ({\n focus: () => {\n if (!inputRef.current) return;\n return inputRef.current.focus();\n },\n setValue: (value: YearlessDate | null) => {\n if (!inputRef.current) return;\n inputRef.current.setValue(value);\n },\n }),\n [inputRef],\n );\n\n const currentValidity = useMemo(\n () =>\n validateYearlessDate({\n value: value ?? null,\n constraints: {\n required: required,\n unavailable: unavailable,\n minDate: minDate,\n maxDate: maxDate,\n },\n }),\n [value, required, unavailable, minDate, maxDate],\n );\n\n const handleInputChange = (change: YearlessDateInputChange) => {\n const { event, value, ...restChange } = change;\n setValue(value);\n setTempPickerValue(value);\n onChangeProp?.({\n ...restChange,\n value,\n isValid: validateYearlessDate({\n value,\n constraints: {\n required: required,\n unavailable: unavailable,\n minDate: minDate,\n maxDate: maxDate,\n },\n }),\n });\n };\n\n const inputProps = {\n required,\n mode,\n autoComplete: \"off\",\n ...restProps,\n disabled,\n value: value,\n onChange: handleInputChange,\n \"data-valid\": currentValidity,\n size,\n error,\n loading,\n };\n\n const { props: focusWithinProps } = useFocusWithin({\n onFocus: (e) => {\n requestAnimationFrame(() => {\n onFocusProp?.(e);\n });\n },\n onBlur: (e) => {\n requestAnimationFrame(() => {\n onBlurProp?.(e);\n });\n popoverRef.current?.closePopover();\n },\n otherRelatedElements: popoverContent ? [popoverContent] : [],\n });\n\n if (disablePicker) {\n return <YearlessDateInput ref={inputRef} {...inputProps} />;\n }\n\n const handlePickerChange = (newValue: YearlessDate) => {\n setTempPickerValue(newValue);\n if (!inputRef.current) return;\n if (\n (mode === \"mm/dd\" && newValue.month) ||\n (mode === \"dd/mm\" && newValue.day)\n ) {\n const valueSet = inputRef.current.setValue(newValue);\n setValue(valueSet.value);\n onChangeProp?.({\n ...valueSet,\n isValid: validateYearlessDate({\n value: valueSet.value,\n constraints: {\n required: required,\n unavailable: unavailable,\n minDate: minDate,\n maxDate: maxDate,\n },\n }),\n });\n }\n };\n\n const handlePickerMonthChange = (month: number | null) => {\n handlePickerChange({\n day: value?.day ?? tempPickerValue?.day ?? null,\n month,\n });\n };\n\n const handlePickerDayChange = (day: number | null) => {\n handlePickerChange({\n day,\n month: value?.month ?? tempPickerValue?.month ?? null,\n });\n };\n\n const handlePickerClose = () => {\n setTempPickerValue(null);\n };\n\n const handleInputFocus = (event: React.FocusEvent) => {\n focusWithinProps.onFocus?.(event as React.FocusEvent<HTMLElement>);\n };\n const handleInputBlur = (event: React.FocusEvent) => {\n focusWithinProps.onBlur?.(event as React.FocusEvent<HTMLElement>);\n };\n\n const handlePopoverBlur = (event: React.FocusEvent) => {\n focusWithinProps.onBlur?.(event as React.FocusEvent<HTMLElement>);\n };\n\n return (\n <YearlessDateSelectionPopover\n popoverRef={popoverRef}\n popoverContentRef={setPopoverContent}\n month={value?.month ?? tempPickerValue?.month ?? null}\n day={value?.day ?? tempPickerValue?.day ?? null}\n onMonthChange={handlePickerMonthChange}\n onDayChange={handlePickerDayChange}\n onClose={handlePickerClose}\n mode={mode}\n onBlur={handlePopoverBlur}\n >\n {({ ref, onKeyDown }) => (\n <YearlessDateInput\n {...inputProps}\n ref={mergeRefs([\n inputRef,\n ref as unknown as Ref<YearlessDateInputRef>,\n ])}\n onKeyDown={(ev) => {\n onKeyDown?.(ev);\n inputProps.onKeyDown?.(ev);\n }}\n onClick={(ev) => {\n inputProps.onClick?.(ev);\n popoverRef.current?.openPopover();\n }}\n onFocus={handleInputFocus}\n onBlur={handleInputBlur}\n enableStepping\n />\n )}\n </YearlessDateSelectionPopover>\n );\n});\n\nYearlessDateInputWithPicker.displayName = \"YearlessDateInputWithPicker\";\n"],"names":["Check","item","value","ref"],"mappings":"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"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24"><path d="M3.288 20.713A.97.97 0 0 1 3 20v-1q0-.424.288-.712A.97.97 0 0 1 4 18q.424 0 .713.288Q5 18.575 5 19v1q0 .424-.287.712A.97.97 0 0 1 4 21a.97.97 0 0 1-.712-.288m4 0A.97.97 0 0 1 7 20v-5.5q0-.424.287-.713A.97.97 0 0 1 8 13.5q.424 0 .713.287.287.288.287.713V20q0 .424-.287.712A.97.97 0 0 1 8 21a.97.97 0 0 1-.713-.288m4 0A.97.97 0 0 1 11 20v-3.5q0-.424.287-.713A.97.97 0 0 1 12 15.5q.424 0 .713.287.287.288.287.713V20q0 .424-.287.712A.97.97 0 0 1 12 21a.97.97 0 0 1-.713-.288m4 0A.97.97 0 0 1 15 20v-5q0-.424.287-.713A.97.97 0 0 1 16 14q.424 0 .712.287.288.288.288.713v5q0 .424-.288.712A.97.97 0 0 1 16 21a.97.97 0 0 1-.713-.288m4 0A.97.97 0 0 1 19 20v-9q0-.424.288-.713A.97.97 0 0 1 20 10q.424 0 .712.287.288.288.288.713v9q0 .424-.288.712A.97.97 0 0 1 20 21a.97.97 0 0 1-.712-.288M14 11.974q-.4 0-.762-.15a2.3 2.3 0 0 1-.663-.425L10 8.825l-5.3 5.3a.93.93 0 0 1-.713.287 1.02 1.02 0 0 1-.712-.312.97.97 0 0 1-.262-.713.98.98 0 0 1 .287-.687l5.275-5.275q.3-.3.663-.437.361-.138.762-.138.4 0 .775.138.375.137.65.437L14 10l5.3-5.3a.93.93 0 0 1 .712-.288q.413.013.713.313.274.3.262.713a.98.98 0 0 1-.287.687L15.425 11.4q-.275.275-.65.425t-.775.15"/></svg>
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24"><path d="M3.288 20.713A.97.97 0 0 1 3 20v-1q0-.424.288-.712A.97.97 0 0 1 4 18q.424 0 .713.288Q5 18.575 5 19v1q0 .424-.287.712A.97.97 0 0 1 4 21a.97.97 0 0 1-.712-.288m4 0A.97.97 0 0 1 7 20v-5.5q0-.424.287-.713A.97.97 0 0 1 8 13.5q.424 0 .713.287.287.288.287.713V20q0 .424-.287.712A.97.97 0 0 1 8 21a.97.97 0 0 1-.713-.288m4 0A.97.97 0 0 1 11 20v-3.5q0-.424.287-.713A.97.97 0 0 1 12 15.5q.424 0 .713.287.287.288.287.713V20q0 .424-.287.712A.97.97 0 0 1 12 21a.97.97 0 0 1-.713-.288m4 0A.97.97 0 0 1 15 20v-5q0-.424.287-.713A.97.97 0 0 1 16 14q.424 0 .712.287.288.288.288.713v5q0 .424-.288.712A.97.97 0 0 1 16 21a.97.97 0 0 1-.713-.288m4 0A.97.97 0 0 1 19 20v-9q0-.424.288-.713A.97.97 0 0 1 20 10q.424 0 .712.287.288.288.288.713v9q0 .424-.288.712A.97.97 0 0 1 20 21a.97.97 0 0 1-.712-.288M14 11.974q-.4 0-.762-.15a2.3 2.3 0 0 1-.663-.425L10 8.825l-5.3 5.3a.93.93 0 0 1-.713.287 1.02 1.02 0 0 1-.712-.312.97.97 0 0 1-.262-.713.98.98 0 0 1 .287-.687l5.275-5.275q.3-.3.663-.437.361-.138.762-.138.4 0 .775.138.375.137.65.437L14 10l5.3-5.3a.93.93 0 0 1 .712-.288q.413.013.713.313.274.3.262.713a.98.98 0 0 1-.287.687L15.425 11.4q-.275.275-.65.425t-.775.15"/></svg>
|
package/dist/assets/icons/st.ts
CHANGED
|
@@ -51,6 +51,8 @@ export { default as icon_gnav_accounting_active } from "./st/gnav_accounting_act
|
|
|
51
51
|
export { default as icon_gnav_accounting_inactive } from "./st/gnav_accounting_inactive.svg";
|
|
52
52
|
export { default as icon_gnav_agreements_active } from "./st/gnav_agreements_active.svg";
|
|
53
53
|
export { default as icon_gnav_agreements_inactive } from "./st/gnav_agreements_inactive.svg";
|
|
54
|
+
export { default as icon_gnav_analytics_active } from "./st/gnav_analytics_active.svg";
|
|
55
|
+
export { default as icon_gnav_analytics_inactive } from "./st/gnav_analytics_inactive.svg";
|
|
54
56
|
export { default as icon_gnav_automations_active } from "./st/gnav_automations_active.svg";
|
|
55
57
|
export { default as icon_gnav_automations_inactive } from "./st/gnav_automations_inactive.svg";
|
|
56
58
|
export { default as icon_gnav_calls_active } from "./st/gnav_calls_active.svg";
|
|
@@ -167,4 +169,4 @@ export { default as icon_view_timesheet } from "./st/view_timesheet.svg";
|
|
|
167
169
|
export { default as icon_virtual_agent } from "./st/virtual_agent.svg";
|
|
168
170
|
export { default as icon_waiting_for_reply } from "./st/waiting_for_reply.svg";
|
|
169
171
|
export { default as icon_web_chat } from "./st/web_chat.svg";
|
|
170
|
-
export { default as icon_work_stage } from "./st/work_stage.svg";
|
|
172
|
+
export { default as icon_work_stage } from "./st/work_stage.svg";
|