@servicetitan/anvil2 3.17.0 → 3.18.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/CHANGELOG.md +51 -0
- package/dist/{AiMark-CYXbKuCA.js → AiMark-Ca7WmL-9.js} +113 -32
- package/dist/AiMark-Ca7WmL-9.js.map +1 -0
- package/dist/AiMark.js +1 -1
- package/dist/{Alert-CYpl0czJ.js → Alert-BOqBFMUV.js} +2 -2
- package/dist/{Alert-CYpl0czJ.js.map → Alert-BOqBFMUV.js.map} +1 -1
- package/dist/Alert.js +1 -1
- package/dist/{AnvilProvider-DagOuc9c.js → AnvilProvider-BVTxXzoS.js} +3 -3
- package/dist/{AnvilProvider-DagOuc9c.js.map → AnvilProvider-BVTxXzoS.js.map} +1 -1
- package/dist/AnvilProvider.js +1 -1
- package/dist/{Breadcrumbs-C0CXs9Ma.js → Breadcrumbs-1MCqy-gU.js} +2 -2
- package/dist/{Breadcrumbs-C0CXs9Ma.js.map → Breadcrumbs-1MCqy-gU.js.map} +1 -1
- package/dist/Breadcrumbs.js +1 -1
- package/dist/{Calendar-BAIyDHX9.js → Calendar-BcsuV4Xv.js} +2 -2
- package/dist/{Calendar-BAIyDHX9.js.map → Calendar-BcsuV4Xv.js.map} +1 -1
- package/dist/{Calendar-C_NPqjx3.js → Calendar-oBRbQqnG.js} +2 -2
- package/dist/{Calendar-C_NPqjx3.js.map → Calendar-oBRbQqnG.js.map} +1 -1
- package/dist/Calendar.js +2 -2
- package/dist/{Checkbox-4Ow8rCbD.js → Checkbox-BCaUzwF_.js} +2 -2
- package/dist/{Checkbox-4Ow8rCbD.js.map → Checkbox-BCaUzwF_.js.map} +1 -1
- package/dist/{Checkbox-f1vutjn0.js → Checkbox-BocPrjKC.js} +4 -4
- package/dist/{Checkbox-f1vutjn0.js.map → Checkbox-BocPrjKC.js.map} +1 -1
- package/dist/Checkbox.js +1 -1
- package/dist/{Chip-AIF0WiNS.js → Chip-BWqgUX71.js} +11 -24
- package/dist/Chip-BWqgUX71.js.map +1 -0
- package/dist/Chip.js +1 -1
- package/dist/Combobox.js +1 -1
- package/dist/{DataTableEditColumnsDrawer-DRgJgso9.js → DataTableEditColumnsDrawer-C7OHRsJU.js} +101 -42
- package/dist/DataTableEditColumnsDrawer-C7OHRsJU.js.map +1 -0
- package/dist/DataTableEditColumnsDrawer.css +49 -33
- package/dist/{DateFieldRange-D9PA985Z.js → DateFieldRange-BPcsS6TW.js} +5 -5
- package/dist/{DateFieldRange-D9PA985Z.js.map → DateFieldRange-BPcsS6TW.js.map} +1 -1
- package/dist/DateFieldRange.js +1 -1
- package/dist/{DateFieldSingle-CMLojOb3.js → DateFieldSingle-BRMhe0OM.js} +5 -5
- package/dist/{DateFieldSingle-CMLojOb3.js.map → DateFieldSingle-BRMhe0OM.js.map} +1 -1
- package/dist/DateFieldSingle.js +1 -1
- package/dist/{DateFieldYearless-B5IyR75v.js → DateFieldYearless-NOgDKzrJ.js} +6 -6
- package/dist/{DateFieldYearless-B5IyR75v.js.map → DateFieldYearless-NOgDKzrJ.js.map} +1 -1
- package/dist/DateFieldYearless.js +1 -1
- package/dist/{DateFieldYearlessRange-8yXILjx7.js → DateFieldYearlessRange-ChvypgXC.js} +5 -5
- package/dist/{DateFieldYearlessRange-8yXILjx7.js.map → DateFieldYearlessRange-ChvypgXC.js.map} +1 -1
- package/dist/DateFieldYearlessRange.js +1 -1
- package/dist/{DaysOfTheWeek-Cxp5VdYK.js → DaysOfTheWeek-nYitIKnQ.js} +3 -3
- package/dist/{DaysOfTheWeek-Cxp5VdYK.js.map → DaysOfTheWeek-nYitIKnQ.js.map} +1 -1
- package/dist/DaysOfTheWeek.js +1 -1
- package/dist/Details-B2F3auTX.js +216 -0
- package/dist/Details-B2F3auTX.js.map +1 -0
- package/dist/{Details-BxqP-5vp.js → Details-DQ-_Mg4o.js} +3 -3
- package/dist/{Details-BxqP-5vp.js.map → Details-DQ-_Mg4o.js.map} +1 -1
- package/dist/Details.css +92 -68
- package/dist/Details.js +1 -1
- package/dist/Details2.css +137 -0
- package/dist/{Dialog-KDAJphrA.js → Dialog-BgWoV2on.js} +6 -4
- package/dist/Dialog-BgWoV2on.js.map +1 -0
- package/dist/Dialog.js +1 -1
- package/dist/{Drawer-C7E2NNnH.js → Drawer-BVBLtGn_.js} +7 -5
- package/dist/Drawer-BVBLtGn_.js.map +1 -0
- package/dist/Drawer.js +1 -1
- package/dist/DrillDown.js +1 -1
- package/dist/{EditCard-CutlsXfK.js → EditCard-hivZDPZh.js} +2 -2
- package/dist/{EditCard-CutlsXfK.js.map → EditCard-hivZDPZh.js.map} +1 -1
- package/dist/EditCard.js +1 -1
- package/dist/{FieldLabel-DYcUS3A4.js → FieldLabel-Cn559Brf.js} +8 -58
- package/dist/FieldLabel-Cn559Brf.js.map +1 -0
- package/dist/FieldLabel.css +1 -12
- package/dist/FieldLabel.js +1 -1
- package/dist/FieldMessage.js +1 -1
- package/dist/{FilterBar-DbDfZph-.js → FilterBar-COd38Ent.js} +5 -5
- package/dist/{FilterBar-DbDfZph-.js.map → FilterBar-COd38Ent.js.map} +1 -1
- package/dist/FilterBar.js +1 -1
- package/dist/InlineMarkdown-CL1tKR01.js +87 -0
- package/dist/InlineMarkdown-CL1tKR01.js.map +1 -0
- package/dist/InlineMarkdown.css +12 -0
- package/dist/{InputMask-BxdQc1ld.js → InputMask-DICWdeiF.js} +3 -3
- package/dist/{InputMask-BxdQc1ld.js.map → InputMask-DICWdeiF.js.map} +1 -1
- package/dist/InputMask.js +1 -1
- package/dist/{ListView-BVanVvBk.js → ListView-BeGBn5Vk.js} +2 -2
- package/dist/{ListView-BVanVvBk.js.map → ListView-BeGBn5Vk.js.map} +1 -1
- package/dist/ListView.js +1 -1
- package/dist/{Listbox-BR0YQIee.js → Listbox-n1CmJ2gh.js} +2 -2
- package/dist/{Listbox-BR0YQIee.js.map → Listbox-n1CmJ2gh.js.map} +1 -1
- package/dist/Listbox.js +1 -1
- package/dist/MultiSelectField.js +1 -1
- package/dist/{MultiSelectFieldSync-9253tott.js → MultiSelectFieldSync-CWsOdu-o.js} +44 -62
- package/dist/MultiSelectFieldSync-CWsOdu-o.js.map +1 -0
- package/dist/MultiSelectFieldSync.css +107 -69
- package/dist/MultiSelectMenu.js +1 -1
- package/dist/{MultiSelectMenuSync-BUJbWN2I.js → MultiSelectMenuSync-AVcf8ZUZ.js} +16 -29
- package/dist/MultiSelectMenuSync-AVcf8ZUZ.js.map +1 -0
- package/dist/{NumberField-DhxywJVp.js → NumberField-DjOvcCa1.js} +5 -5
- package/dist/{NumberField-DhxywJVp.js.map → NumberField-DjOvcCa1.js.map} +1 -1
- package/dist/NumberField.js +1 -1
- package/dist/{Page-D_KL2tdK.js → Page-_dh-JesM.js} +128 -80
- package/dist/Page-_dh-JesM.js.map +1 -0
- package/dist/Page.css +85 -80
- package/dist/Page.js +1 -1
- package/dist/{Pagination-DYpUtMha.js → Pagination-CsSpaTCs.js} +2 -2
- package/dist/{Pagination-DYpUtMha.js.map → Pagination-CsSpaTCs.js.map} +1 -1
- package/dist/Pagination.js +1 -1
- package/dist/{Popover-B2ix8Ji4.js → Popover-CEKl0WY3.js} +3 -3
- package/dist/{Popover-B2ix8Ji4.js.map → Popover-CEKl0WY3.js.map} +1 -1
- package/dist/Popover.js +1 -1
- package/dist/{ProgressBar-CjoOuJCi.js → ProgressBar-ubCKKewC.js} +3 -3
- package/dist/{ProgressBar-CjoOuJCi.js.map → ProgressBar-ubCKKewC.js.map} +1 -1
- package/dist/ProgressBar.js +1 -1
- package/dist/{Radio-Bz36_d0V.js → Radio-DkB6zFsS.js} +2 -2
- package/dist/{Radio-Bz36_d0V.js.map → Radio-DkB6zFsS.js.map} +1 -1
- package/dist/{Radio-DOD1d9Vw.js → Radio-q1Vp_ZQG.js} +4 -4
- package/dist/{Radio-DOD1d9Vw.js.map → Radio-q1Vp_ZQG.js.map} +1 -1
- package/dist/Radio.js +1 -1
- package/dist/{RichTextEditor-BORVXVDw.js → RichTextEditor-BHt6sWMA.js} +8 -8
- package/dist/{RichTextEditor-BORVXVDw.js.map → RichTextEditor-BHt6sWMA.js.map} +1 -1
- package/dist/RichTextEditor.js +1 -1
- package/dist/{SavedFiltersButton-vq_Kt4Qc.js → SavedFiltersButton-Cl58iHZe.js} +9 -9
- package/dist/{SavedFiltersButton-vq_Kt4Qc.js.map → SavedFiltersButton-Cl58iHZe.js.map} +1 -1
- package/dist/SavedFiltersButton.js +1 -1
- package/dist/{SearchField-ChoNtw8w.js → SearchField-Bk-Ltu4v.js} +2 -2
- package/dist/{SearchField-ChoNtw8w.js.map → SearchField-Bk-Ltu4v.js.map} +1 -1
- package/dist/{SearchField-DX8hZyo2.js → SearchField-INVftpNM.js} +2 -2
- package/dist/{SearchField-DX8hZyo2.js.map → SearchField-INVftpNM.js.map} +1 -1
- package/dist/SearchField.js +1 -1
- package/dist/{SelectCard-CJwetC1k.js → SelectCard-DeAUW1bL.js} +3 -3
- package/dist/{SelectCard-CJwetC1k.js.map → SelectCard-DeAUW1bL.js.map} +1 -1
- package/dist/SelectCard.js +1 -1
- package/dist/SelectField.js +1 -1
- package/dist/{SelectFieldLabel-BTKqybZm.js → SelectFieldLabel-DaXwIFZj.js} +2 -2
- package/dist/{SelectFieldLabel-BTKqybZm.js.map → SelectFieldLabel-DaXwIFZj.js.map} +1 -1
- package/dist/{SelectFieldSync-CoUi-BYw.js → SelectFieldSync-DpZL4wDo.js} +47 -68
- package/dist/SelectFieldSync-DpZL4wDo.js.map +1 -0
- package/dist/SelectMenu.js +1 -1
- package/dist/{SelectMenuSync-CvXx-6uU.js → SelectMenuSync-Klna2oqs.js} +16 -35
- package/dist/SelectMenuSync-Klna2oqs.js.map +1 -0
- package/dist/{SelectOptions-CGRUCyf4.js → SelectOptions-DGYYFU8i.js} +2 -2
- package/dist/{SelectOptions-CGRUCyf4.js.map → SelectOptions-DGYYFU8i.js.map} +1 -1
- package/dist/{SelectTrigger-CRbl804u.js → SelectTrigger-DKY7rpZn.js} +2 -2
- package/dist/{SelectTrigger-CRbl804u.js.map → SelectTrigger-DKY7rpZn.js.map} +1 -1
- package/dist/SelectTrigger.js +1 -1
- package/dist/{SelectTriggerBase-BRUW_Zgc.js → SelectTriggerBase-DUYq_L-6.js} +5 -5
- package/dist/{SelectTriggerBase-BRUW_Zgc.js.map → SelectTriggerBase-DUYq_L-6.js.map} +1 -1
- package/dist/SelectTriggerBase.css +94 -56
- package/dist/SelectTriggerBase.module-C-NmZbg4.js +41 -0
- package/dist/SelectTriggerBase.module-C-NmZbg4.js.map +1 -0
- package/dist/{Switch-rPPL4yEa.js → Switch-C9yQgF4w.js} +2 -2
- package/dist/{Switch-rPPL4yEa.js.map → Switch-C9yQgF4w.js.map} +1 -1
- package/dist/Switch.js +1 -1
- package/dist/Table.js +1 -1
- package/dist/{Text-BRbkPr5s.js → Text-D4SWT4u-.js} +2 -2
- package/dist/{Text-BRbkPr5s.js.map → Text-D4SWT4u-.js.map} +1 -1
- package/dist/Text.js +1 -1
- package/dist/{TextField-B9hivHsD.js → TextField-CKXSxube.js} +5 -5
- package/dist/{TextField-B9hivHsD.js.map → TextField-CKXSxube.js.map} +1 -1
- package/dist/{TextField-DGRVg_Cw.js → TextField-DmdT2k0w.js} +2 -2
- package/dist/{TextField-DGRVg_Cw.js.map → TextField-DmdT2k0w.js.map} +1 -1
- package/dist/TextField.css +38 -23
- package/dist/TextField.js +1 -1
- package/dist/TextField.module-B3y6caP9.js +25 -0
- package/dist/TextField.module-B3y6caP9.js.map +1 -0
- package/dist/{Textarea-DNqfV8rJ.js → Textarea-Dv__veBJ.js} +11 -11
- package/dist/{Textarea-DNqfV8rJ.js.map → Textarea-Dv__veBJ.js.map} +1 -1
- package/dist/Textarea.css +26 -11
- package/dist/Textarea.js +1 -1
- package/dist/{ThemeProvider-DW-Mflv6.js → ThemeProvider-DS2aL89d.js} +2 -2
- package/dist/{ThemeProvider-DW-Mflv6.js.map → ThemeProvider-DS2aL89d.js.map} +1 -1
- package/dist/ThemeProvider.css +6 -4
- package/dist/ThemeProvider.js +1 -1
- package/dist/ThemeProvider.module-BkKwAw2f.js +8 -0
- package/dist/ThemeProvider.module-BkKwAw2f.js.map +1 -0
- package/dist/{TimeField-DldMBNAj.js → TimeField-De9qBimk.js} +48 -10
- package/dist/TimeField-De9qBimk.js.map +1 -0
- package/dist/TimeField.js +1 -1
- package/dist/{TimezoneMessage-CgVNxYpM.js → TimezoneMessage-DEJX87S3.js} +2 -2
- package/dist/{TimezoneMessage-CgVNxYpM.js.map → TimezoneMessage-DEJX87S3.js.map} +1 -1
- package/dist/Toast.js +2 -2
- package/dist/{Toaster-Bcy9XN3c.js → Toaster-BlwTxTLf.js} +2 -2
- package/dist/{Toaster-Bcy9XN3c.js.map → Toaster-BlwTxTLf.js.map} +1 -1
- package/dist/{Toaster-C66ra4BK.js → Toaster-sO16N9b5.js} +23 -9
- package/dist/Toaster-sO16N9b5.js.map +1 -0
- package/dist/{Toolbar-DgPah7M3.js → Toolbar-BhrHuIN7.js} +6 -6
- package/dist/{Toolbar-DgPah7M3.js.map → Toolbar-BhrHuIN7.js.map} +1 -1
- package/dist/{Toolbar-Br-5yBxq.js → Toolbar-Buq2zze0.js} +4 -4
- package/dist/{Toolbar-Br-5yBxq.js.map → Toolbar-Buq2zze0.js.map} +1 -1
- package/dist/Toolbar.js +2 -2
- package/dist/{ToolbarButtonToggle-BDfoHeie.js → ToolbarButtonToggle-CNIaqVWl.js} +2 -2
- package/dist/{ToolbarButtonToggle-BDfoHeie.js.map → ToolbarButtonToggle-CNIaqVWl.js.map} +1 -1
- package/dist/{Tooltip-C_VcYS9P.js → Tooltip-CsTkZqMg.js} +3 -3
- package/dist/{Tooltip-C_VcYS9P.js.map → Tooltip-CsTkZqMg.js.map} +1 -1
- package/dist/Tooltip.js +1 -1
- package/dist/TreeSelectField.js +1 -1
- package/dist/{TreeSelectFieldSync-1psUeqtG.js → TreeSelectFieldSync-B7w31kbz.js} +22 -22
- package/dist/{TreeSelectFieldSync-1psUeqtG.js.map → TreeSelectFieldSync-B7w31kbz.js.map} +1 -1
- package/dist/TreeSelectFieldSync.css +57 -34
- package/dist/TreeSelectMenu.js +1 -1
- package/dist/{TreeSelectMenuSync-DIPSYUnE.js → TreeSelectMenuSync-EjxlvDZp.js} +4 -4
- package/dist/{TreeSelectMenuSync-DIPSYUnE.js.map → TreeSelectMenuSync-EjxlvDZp.js.map} +1 -1
- package/dist/{TypeaheadTextField-Di9ulOBl.js → TypeaheadTextField-DTOkaJda.js} +3 -3
- package/dist/{TypeaheadTextField-Di9ulOBl.js.map → TypeaheadTextField-DTOkaJda.js.map} +1 -1
- package/dist/TypeaheadTextField.js +1 -1
- package/dist/{YearlessDateInputWithPicker-CQ2-6Uj4.js → YearlessDateInputWithPicker-DJUQypnF.js} +3 -3
- package/dist/{YearlessDateInputWithPicker-CQ2-6Uj4.js.map → YearlessDateInputWithPicker-DJUQypnF.js.map} +1 -1
- package/dist/beta.js +19 -18
- package/dist/beta.js.map +1 -1
- package/dist/{bulkActionTypes-B71ZHjVu.js → bulkActionTypes-bznuvizE.js} +2 -2
- package/dist/{bulkActionTypes-B71ZHjVu.js.map → bulkActionTypes-bznuvizE.js.map} +1 -1
- package/dist/{filter-state-Lw9qL0zP.js → filter-state-DxwL15y1.js} +23 -23
- package/dist/{filter-state-Lw9qL0zP.js.map → filter-state-DxwL15y1.js.map} +1 -1
- package/dist/{index-B3WhDZeI.js → index-Bn56UnMm.js} +2 -2
- package/dist/{index-B3WhDZeI.js.map → index-Bn56UnMm.js.map} +1 -1
- package/dist/index.js +157 -115
- package/dist/index.js.map +1 -1
- package/dist/index2.css +78 -73
- package/dist/{portalScopeClassNames-DA28LrXe.js → portalScopeClassNames-CMdDYHE0.js} +2 -2
- package/dist/{portalScopeClassNames-DA28LrXe.js.map → portalScopeClassNames-CMdDYHE0.js.map} +1 -1
- package/dist/src/beta/components/Details/Details.d.ts +25 -0
- package/dist/src/beta/components/Details/DetailsSummary.d.ts +121 -0
- package/dist/src/beta/components/Details/index.d.ts +4 -0
- package/dist/src/beta/components/Details/internal/DetailsArrow.d.ts +11 -0
- package/dist/src/beta/components/Details/internal/DetailsSummaryCells.d.ts +5 -0
- package/dist/src/beta/components/Page/Page.d.ts +1 -0
- package/dist/src/beta/components/Page/PageSidebar.d.ts +12 -0
- package/dist/src/beta/components/Table/DataTable/internal/DataTablePagination.d.ts +3 -3
- package/dist/src/beta/components/Table/DataTable/internal/context/tabbables/CellTabbablesQueue.d.ts +23 -0
- package/dist/src/beta/components/Table/DataTable/types.d.ts +11 -0
- package/dist/src/beta/components/deprecatedReexports/MultiSelectField.d.ts +4 -4
- package/dist/src/beta/components/deprecatedReexports/MultiSelectMenu.d.ts +4 -4
- package/dist/src/beta/components/deprecatedReexports/SelectField.d.ts +4 -4
- package/dist/src/beta/components/deprecatedReexports/SelectMenu.d.ts +4 -4
- package/dist/src/beta/components/index.d.ts +1 -0
- package/dist/src/components/MultiSelectField/internal/MultiSelectFieldComboboxMode.d.ts +1 -1
- package/dist/src/components/MultiSelectField/internal/MultiSelectFieldSelectMode.d.ts +1 -1
- package/dist/src/components/MultiSelectField/internal/types.d.ts +0 -1
- package/dist/src/components/Page/Page.d.ts +1 -0
- package/dist/src/components/Page/PageSidebar.d.ts +12 -0
- package/dist/src/components/SelectField/internal/SelectFieldComboboxMode.d.ts +1 -1
- package/dist/src/components/SelectField/internal/SelectFieldSelectMode.d.ts +1 -1
- package/dist/src/internal/components/InlineMarkdown/InlineMarkdown.d.ts +8 -1
- package/dist/src/internal/components/InlineMarkdown/index.d.ts +1 -1
- package/dist/src/internal/components/Popover/Popover.d.ts +10 -5
- package/dist/src/internal/components/Popover/internal/verticalPlacement.d.ts +9 -0
- package/dist/src/internal/contexts/DisableConditionalUnmountWarningContext.d.ts +6 -0
- package/dist/src/internal/contexts/SuppressPanelSwapWarningContext.d.ts +13 -0
- package/dist/src/internal/functions/inlineMarkdown.d.ts +5 -2
- package/dist/src/internal/functions/stripInlineMarkdown.d.ts +4 -2
- package/dist/src/internal/hooks/index.d.ts +1 -0
- package/dist/src/internal/hooks/useSelectFieldLoading/useSelectFieldLoading.d.ts +9 -1
- package/dist/src/internal/hooks/useSelectOrchestration.d.ts +0 -1
- package/dist/src/internal/hooks/useWarnOnConditionalUnmount/index.d.ts +1 -0
- package/dist/src/internal/hooks/useWarnOnConditionalUnmount/useWarnOnConditionalUnmount.d.ts +1 -0
- package/dist/src/internal/testing/keepMutationObserversAlive.d.ts +9 -0
- package/dist/src/internal/types/selectFieldInternalTypes.d.ts +0 -1
- package/dist/src/internal/utils/inlineMarkdownRegex.d.ts +5 -0
- package/dist/stripInlineMarkdown-BV12XXzl.js +35 -0
- package/dist/stripInlineMarkdown-BV12XXzl.js.map +1 -0
- package/dist/{syncFilterUtils-DnhuqY1S.js → syncFilterUtils-BNbAB0jz.js} +109 -38
- package/dist/syncFilterUtils-BNbAB0jz.js.map +1 -0
- package/dist/token/core/component-variables.scss +3 -0
- package/dist/token/core/component.d.ts +2 -0
- package/dist/token/core/component.js +17 -0
- package/dist/token/core/component.scss +2 -0
- package/dist/token/core/semantic-variables.scss +2 -0
- package/dist/token/core/semantic.d.ts +1 -0
- package/dist/token/core/semantic.js +13 -0
- package/dist/token/core/semantic.scss +1 -0
- package/dist/token.js +33 -0
- package/dist/token.js.map +1 -1
- package/dist/{treeSync-BDwht_1r.js → treeSync-BELsX1gY.js} +3 -3
- package/dist/{treeSync-BDwht_1r.js.map → treeSync-BELsX1gY.js.map} +1 -1
- package/dist/{useDrilldown-CGdhHs8L.js → useDrilldown-B8pIhfWa.js} +3 -3
- package/dist/{useDrilldown-CGdhHs8L.js.map → useDrilldown-B8pIhfWa.js.map} +1 -1
- package/dist/{useInfiniteCombobox-Db0kaxCj.js → useInfiniteCombobox-ZZalag0-.js} +4 -4
- package/dist/{useInfiniteCombobox-Db0kaxCj.js.map → useInfiniteCombobox-ZZalag0-.js.map} +1 -1
- package/dist/{useInitialFocus-fBiTU9l8.js → useInitialFocus-KdirjHEb.js} +45 -13
- package/dist/useInitialFocus-KdirjHEb.js.map +1 -0
- package/dist/{useInvalidateOnOptionsChange-PweyDORd.js → useInvalidateOnOptionsChange-ChrPmbtS.js} +5 -5
- package/dist/{useInvalidateOnOptionsChange-PweyDORd.js.map → useInvalidateOnOptionsChange-ChrPmbtS.js.map} +1 -1
- package/dist/{usePopoverTransitionStates-CDXCdyKa.js → usePopoverTransitionStates-B1opfxxn.js} +1 -2
- package/dist/{usePopoverTransitionStates-CDXCdyKa.js.map → usePopoverTransitionStates-B1opfxxn.js.map} +1 -1
- package/dist/{utils-CM48ODEJ.js → utils-DwLrXpmt.js} +2 -2
- package/dist/{utils-CM48ODEJ.js.map → utils-DwLrXpmt.js.map} +1 -1
- package/package.json +3 -3
- package/dist/AiMark-CYXbKuCA.js.map +0 -1
- package/dist/Chip-AIF0WiNS.js.map +0 -1
- package/dist/DataTableEditColumnsDrawer-DRgJgso9.js.map +0 -1
- package/dist/Dialog-KDAJphrA.js.map +0 -1
- package/dist/Drawer-C7E2NNnH.js.map +0 -1
- package/dist/FieldLabel-DYcUS3A4.js.map +0 -1
- package/dist/MultiSelectFieldSync-9253tott.js.map +0 -1
- package/dist/MultiSelectMenuSync-BUJbWN2I.js.map +0 -1
- package/dist/Page-D_KL2tdK.js.map +0 -1
- package/dist/SelectFieldSync-CoUi-BYw.js.map +0 -1
- package/dist/SelectMenuSync-CvXx-6uU.js.map +0 -1
- package/dist/SelectTriggerBase.module-Dt4-6YvC.js +0 -40
- package/dist/SelectTriggerBase.module-Dt4-6YvC.js.map +0 -1
- package/dist/TextField.module-DklyLNKz.js +0 -25
- package/dist/TextField.module-DklyLNKz.js.map +0 -1
- package/dist/ThemeProvider.module-B9qgsQ8S.js +0 -8
- package/dist/ThemeProvider.module-B9qgsQ8S.js.map +0 -1
- package/dist/TimeField-DldMBNAj.js.map +0 -1
- package/dist/Toaster-C66ra4BK.js.map +0 -1
- package/dist/stripInlineMarkdown-B6lAJb4-.js +0 -25
- package/dist/stripInlineMarkdown-B6lAJb4-.js.map +0 -1
- package/dist/syncFilterUtils-DnhuqY1S.js.map +0 -1
- package/dist/useInitialFocus-fBiTU9l8.js.map +0 -1
|
@@ -143,9 +143,9 @@
|
|
|
143
143
|
}
|
|
144
144
|
}.anvil2 {/* ============================================
|
|
145
145
|
Table Cells Base
|
|
146
|
-
============================================ */._table-header-
|
|
147
|
-
._table-body-
|
|
148
|
-
._table-footer-
|
|
146
|
+
============================================ */._table-header-cell_inf26_4,
|
|
147
|
+
._table-body-cell_inf26_5,
|
|
148
|
+
._table-footer-cell_inf26_6 {
|
|
149
149
|
font-family: var(--a2-font-family-base, "Nunito Sans", sans-serif);
|
|
150
150
|
font-size: 100%;
|
|
151
151
|
color: inherit;
|
|
@@ -168,38 +168,39 @@
|
|
|
168
168
|
padding-inline-start: var(--a2-table-cell-padding-inline-start);
|
|
169
169
|
text-wrap: balance;
|
|
170
170
|
vertical-align: var(--a2-table-cell-vertical-align);
|
|
171
|
-
}._table-header-
|
|
172
|
-
._table-body-
|
|
173
|
-
._table-body-
|
|
174
|
-
._table-footer-
|
|
175
|
-
._table-footer-
|
|
171
|
+
}._table-header-cell_inf26_4._last-pinned-left-column_inf26_30:before, ._table-header-cell_inf26_4._first-pinned-right-column_inf26_30:before,
|
|
172
|
+
._table-body-cell_inf26_5._last-pinned-left-column_inf26_30:before,
|
|
173
|
+
._table-body-cell_inf26_5._first-pinned-right-column_inf26_30:before,
|
|
174
|
+
._table-footer-cell_inf26_6._last-pinned-left-column_inf26_30:before,
|
|
175
|
+
._table-footer-cell_inf26_6._first-pinned-right-column_inf26_30:before {
|
|
176
176
|
--a2-table-cell-overflow-gradient-degree: 90deg;
|
|
177
|
-
background: linear-gradient(var(--a2-table-cell-overflow-gradient-degree), var(--a2-
|
|
177
|
+
background: linear-gradient(var(--a2-table-cell-overflow-gradient-degree), var(--a2-data-table-pinned-column-shadow-color, var(--a2-shadow-color-stronger, light-dark(rgba(4, 4, 4, 0.5019607843), rgba(255, 255, 255, 0.5019607843)))), transparent 50%);
|
|
178
178
|
content: "";
|
|
179
179
|
inset-block: 0;
|
|
180
|
-
inset-inline-end: -
|
|
181
|
-
opacity: 0.
|
|
180
|
+
inset-inline-end: -9px;
|
|
181
|
+
opacity: var(--a2-data-table-pinned-column-shadow-opacity, 0.2);
|
|
182
|
+
pointer-events: none;
|
|
182
183
|
position: absolute;
|
|
183
|
-
width:
|
|
184
|
+
width: 9px;
|
|
184
185
|
z-index: 1;
|
|
185
|
-
}._table-header-
|
|
186
|
-
._table-body-
|
|
187
|
-
._table-footer-
|
|
186
|
+
}._table-header-cell_inf26_4._first-pinned-right-column_inf26_30:before,
|
|
187
|
+
._table-body-cell_inf26_5._first-pinned-right-column_inf26_30:before,
|
|
188
|
+
._table-footer-cell_inf26_6._first-pinned-right-column_inf26_30:before {
|
|
188
189
|
--a2-table-cell-overflow-gradient-degree: 270deg;
|
|
189
|
-
inset-inline-start: -
|
|
190
|
+
inset-inline-start: -9px;
|
|
190
191
|
}/* ============================================
|
|
191
192
|
Body Cell
|
|
192
|
-
============================================ */._table-body-
|
|
193
|
+
============================================ */._table-body-cell_inf26_5 {
|
|
193
194
|
transition: background-color var(--a2-duration-default) var(--a2-transition-ease-in-out);
|
|
194
195
|
}@media (prefers-reduced-motion: reduce) {
|
|
195
|
-
._table-body-
|
|
196
|
+
._table-body-cell_inf26_5 {
|
|
196
197
|
transition-duration: 0.01ms !important;
|
|
197
198
|
}
|
|
198
|
-
}._table-body-
|
|
199
|
+
}._table-body-cell_inf26_5 ._empty-cell_inf26_64 {
|
|
199
200
|
color: var(--a2-table-cell-empty-font-color);
|
|
200
201
|
}/* ============================================
|
|
201
202
|
Header Cell
|
|
202
|
-
============================================ */._table-header-
|
|
203
|
+
============================================ */._table-header-cell_inf26_4 {
|
|
203
204
|
--a2-table-cell-background-color: var(--a2-table-header-background-color);
|
|
204
205
|
--a2-table-cell-font-color: var(--a2-foreground-color);
|
|
205
206
|
--a2-table-cell-font-weight: var(--a2-font-weight-bold);
|
|
@@ -208,16 +209,16 @@
|
|
|
208
209
|
--a2-table-cell-vertical-align: baseline;
|
|
209
210
|
text-align: start;
|
|
210
211
|
white-space: nowrap;
|
|
211
|
-
}._table-header-
|
|
212
|
+
}._table-header-cell_inf26_4._table-cell-internal-select_inf26_81 {
|
|
212
213
|
--a2-table-cell-padding-block-end: 0;
|
|
213
214
|
--a2-table-cell-padding-block-start: var(--a2-size-2);
|
|
214
|
-
}._table-header-
|
|
215
|
+
}._table-header-cell_inf26_4._table-cell-internal-expand_inf26_85 {
|
|
215
216
|
--a2-table-cell-padding-block-end: 0;
|
|
216
217
|
--a2-table-cell-padding-block-start: var(--a2-size-1);
|
|
217
|
-
}._table-header-cell-
|
|
218
|
-
._table-header-cell-
|
|
218
|
+
}._table-header-cell-sortable_inf26_90,
|
|
219
|
+
._table-header-cell-interactive_inf26_91 {
|
|
219
220
|
cursor: pointer;
|
|
220
|
-
}._table-header-cell-
|
|
221
|
+
}._table-header-cell-group_inf26_95:not(:last-of-type):after {
|
|
221
222
|
border-inline-end: 2px solid var(--a2-table-column-group-divider-color);
|
|
222
223
|
content: "";
|
|
223
224
|
inset-block: 0;
|
|
@@ -227,18 +228,18 @@
|
|
|
227
228
|
width: 2px;
|
|
228
229
|
}/* ============================================
|
|
229
230
|
Footer Cell
|
|
230
|
-
============================================ */._table-footer-
|
|
231
|
+
============================================ */._table-footer-cell_inf26_6 {
|
|
231
232
|
--a2-table-cell-background-color: var(--a2-table-footer-background-color);
|
|
232
233
|
--a2-table-cell-font-weight: var(--a2-font-weight-bold);
|
|
233
234
|
}/* ============================================
|
|
234
235
|
Internal Cells (Select/Expand)
|
|
235
|
-
============================================ */._table-cell-internal-
|
|
236
|
-
._table-cell-internal-
|
|
236
|
+
============================================ */._table-cell-internal-select_inf26_81,
|
|
237
|
+
._table-cell-internal-expand_inf26_85 {
|
|
237
238
|
--a2-table-cell-padding-inline-end: 0;
|
|
238
239
|
--a2-table-cell-padding-inline-start: 0;
|
|
239
240
|
justify-content: center;
|
|
240
|
-
}._table-cell-internal-
|
|
241
|
-
._table-cell-internal-
|
|
241
|
+
}._table-cell-internal-select_inf26_81 div[data-anv=checkbox],
|
|
242
|
+
._table-cell-internal-expand_inf26_85 div[data-anv=checkbox] {
|
|
242
243
|
width: 24px;
|
|
243
244
|
}
|
|
244
245
|
}.anvil2 {/* ============================================
|
|
@@ -379,8 +380,8 @@
|
|
|
379
380
|
}
|
|
380
381
|
}.anvil2 {/* ============================================
|
|
381
382
|
DataTable Editable Cell Base
|
|
382
|
-
============================================ */input._data-table-body-cell-
|
|
383
|
-
._data-table-body-cell-select-
|
|
383
|
+
============================================ */input._data-table-body-cell-input_101bf_4,
|
|
384
|
+
._data-table-body-cell-select-trigger_101bf_5 {
|
|
384
385
|
font-family: var(--a2-font-family-base, "Nunito Sans", sans-serif);
|
|
385
386
|
font-size: 100%;
|
|
386
387
|
color: inherit;
|
|
@@ -391,7 +392,7 @@
|
|
|
391
392
|
border-color: transparent;
|
|
392
393
|
box-sizing: border-box;
|
|
393
394
|
display: revert-layer;
|
|
394
|
-
}input._data-table-body-cell-
|
|
395
|
+
}input._data-table-body-cell-input_101bf_4 {
|
|
395
396
|
border: none;
|
|
396
397
|
bottom: 0;
|
|
397
398
|
color: var(--a2-table-cell-font-color);
|
|
@@ -406,6 +407,21 @@
|
|
|
406
407
|
right: 0;
|
|
407
408
|
top: 0;
|
|
408
409
|
width: 100%;
|
|
410
|
+
}input._data-table-body-cell-input_101bf_4:-webkit-autofill, input._data-table-body-cell-input_101bf_4:-webkit-autofill:hover, input._data-table-body-cell-input_101bf_4:-webkit-autofill:focus, input._data-table-body-cell-input_101bf_4:-webkit-autofill:active {
|
|
411
|
+
-webkit-text-fill-color: var(--a2-table-cell-font-color);
|
|
412
|
+
border-radius: 0;
|
|
413
|
+
box-shadow: inset 0 0 0 1000px var(--a2-table-cell-background-color);
|
|
414
|
+
caret-color: var(--a2-table-cell-font-color);
|
|
415
|
+
}input._data-table-body-cell-input_101bf_4:autofill, input._data-table-body-cell-input_101bf_4:autofill:hover, input._data-table-body-cell-input_101bf_4:autofill:focus, input._data-table-body-cell-input_101bf_4:autofill:active {
|
|
416
|
+
-webkit-text-fill-color: var(--a2-table-cell-font-color);
|
|
417
|
+
border-radius: 0;
|
|
418
|
+
box-shadow: inset 0 0 0 1000px var(--a2-table-cell-background-color);
|
|
419
|
+
caret-color: var(--a2-table-cell-font-color);
|
|
420
|
+
}input._data-table-body-cell-input_101bf_4:-webkit-autofill, input._data-table-body-cell-input_101bf_4:-webkit-autofill:hover, input._data-table-body-cell-input_101bf_4:-webkit-autofill:focus, input._data-table-body-cell-input_101bf_4:-webkit-autofill:active {
|
|
421
|
+
-webkit-text-fill-color: var(--a2-table-cell-font-color);
|
|
422
|
+
border-radius: 0;
|
|
423
|
+
box-shadow: inset 0 0 0 1000px var(--a2-table-cell-background-color);
|
|
424
|
+
caret-color: var(--a2-table-cell-font-color);
|
|
409
425
|
}
|
|
410
426
|
}.anvil2 {/* ============================================
|
|
411
427
|
DataTable Cell Base
|
|
@@ -1,14 +1,14 @@
|
|
|
1
1
|
import { jsx, jsxs, Fragment } from 'react/jsx-runtime';
|
|
2
2
|
import { C as COMMON_PART, A as ANV_PART_ATTR } from './anvParts-DFVq7-Cm.js';
|
|
3
3
|
import { c as maskitoDateRangeOptionsGenerator, a as maskitoWithPlaceholder, u as useMaskito, b as maskitoParseDate } from './index.esm-CQXMoq5w.js';
|
|
4
|
-
import { T as TextField } from './TextField-
|
|
4
|
+
import { T as TextField } from './TextField-CKXSxube.js';
|
|
5
5
|
import { forwardRef, useState, useRef, useEffect, useMemo, useImperativeHandle, useCallback } from 'react';
|
|
6
|
-
import { u as useMergeRefs, P as Popover } from './AiMark-
|
|
6
|
+
import { u as useMergeRefs, P as Popover } from './AiMark-Ca7WmL-9.js';
|
|
7
7
|
import { I as Icon } from './Icon-B5zwN7GD.js';
|
|
8
|
-
import { D as DateModeToPlaceholderMap, a as DateModeToFormatMap, S as SvgEvent, j as jsDateToUtcDateTime, c as convertStringToDate, T as TimezoneMessage, i as isoToUtcDate, v as validateDate } from './TimezoneMessage-
|
|
8
|
+
import { D as DateModeToPlaceholderMap, a as DateModeToFormatMap, S as SvgEvent, j as jsDateToUtcDateTime, c as convertStringToDate, T as TimezoneMessage, i as isoToUtcDate, v as validateDate } from './TimezoneMessage-DEJX87S3.js';
|
|
9
9
|
import { m as makeZeroShortcutPreprocessor } from './makeZeroShortcutPreprocessor-D5KWcgUA.js';
|
|
10
10
|
import { u as usePrevious } from './usePrevious-Bvq-5auG.js';
|
|
11
|
-
import { D as DateTime, a as Calendar } from './Calendar-
|
|
11
|
+
import { D as DateTime, a as Calendar } from './Calendar-BcsuV4Xv.js';
|
|
12
12
|
import { u as useOptionallyControlledState } from './useOptionallyControlledState-DbDuos5L.js';
|
|
13
13
|
import { m as mergeRefs } from './useMergeRefs-Dfmtq9cI.js';
|
|
14
14
|
import { c as childrenToString } from './childrenToString-Bz9MqbHb.js';
|
|
@@ -605,4 +605,4 @@ const DateFieldRange = (props) => {
|
|
|
605
605
|
DateFieldRange.displayName = "DateFieldRange";
|
|
606
606
|
|
|
607
607
|
export { DateFieldRange as D, MaskedDateRangeInput as M, useDateFieldRangeState as a, DateFieldRangeCalendar as b, useDateFieldRangeConversion as u };
|
|
608
|
-
//# sourceMappingURL=DateFieldRange-
|
|
608
|
+
//# sourceMappingURL=DateFieldRange-BPcsS6TW.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"DateFieldRange-D9PA985Z.js","sources":["../src/components/DateFieldRange/internal/maskito/dateRangePlaceholderMask.ts","../src/components/DateFieldRange/internal/MaskedDateRangeInput.tsx","../src/components/DateFieldRange/internal/useDateFieldRangeConversion.ts","../src/components/DateFieldRange/internal/useDateFieldRangeState.ts","../src/components/DateFieldRange/internal/DateFieldRangeCalendar.tsx","../src/components/DateFieldRange/parts.ts","../src/components/DateFieldRange/internal/utils.ts","../src/components/DateFieldRange/DateFieldRange.tsx"],"sourcesContent":["import type { MaskitoOptions } from \"@maskito/core\";\nimport {\n type MaskitoDateMode,\n maskitoDateRangeOptionsGenerator,\n maskitoWithPlaceholder,\n} from \"@maskito/kit\";\nimport { makeZeroShortcutPreprocessor } from \"../../../DateFieldSingle/internal/maskito/makeZeroShortcutPreprocessor\";\n\n/** Date-segment orders supported by the range mask. */\nexport type DateMode = Extract<\n MaskitoDateMode,\n \"dd/mm/yyyy\" | \"mm/dd/yyyy\" | \"yyyy/mm/dd\"\n>;\n\n/** Builds Maskito range options with a persistent placeholder and zero shortcut. */\nconst datePlaceholderMask = ({\n mode,\n dateSeparator = \"/\",\n rangeSeparator = \" - \",\n placeholder,\n}: {\n mode: DateMode;\n dateSeparator?: string;\n rangeSeparator?: string;\n placeholder: string;\n}) => {\n const dateRangeOptions = maskitoDateRangeOptionsGenerator({\n mode,\n dateSeparator,\n rangeSeparator,\n });\n\n const { plugins, removePlaceholder, ...placeholderOptions } =\n maskitoWithPlaceholder(placeholder);\n\n const datePlaceholderMask = {\n ...dateRangeOptions,\n plugins: plugins.concat(dateRangeOptions.plugins || []),\n preprocessors: [\n ...placeholderOptions.preprocessors,\n ...dateRangeOptions.preprocessors,\n makeZeroShortcutPreprocessor(placeholder, dateSeparator),\n ],\n postprocessors: [\n // NOTE this is super fragile. If Maskito maintainers change the order of the post-processors, this will break.\n // The last postprocessor is the date swap postprocessor, which we don't want to run.\n // A unit test is added to ensure this doesn't break on a dependency update.\n ...dateRangeOptions.postprocessors.slice(0, -1),\n ...placeholderOptions.postprocessors,\n ],\n } satisfies Required<MaskitoOptions>;\n\n return { options: datePlaceholderMask, removePlaceholder };\n};\n\nexport default datePlaceholderMask;\n","import { maskitoParseDate } from \"@maskito/kit\";\nimport { useMaskito } from \"@maskito/react\";\nimport {\n TextField,\n type TextFieldProps,\n} from \"../../TextField/internal/TextField\";\nimport {\n forwardRef,\n useEffect,\n useImperativeHandle,\n useMemo,\n useRef,\n useState,\n} from \"react\";\nimport { useMergeRefs } from \"@floating-ui/react\";\nimport type { DateTime } from \"luxon\";\nimport { Icon } from \"../../Icon\";\nimport Event from \"@servicetitan/hammer-icon/mdi/round/event.svg\";\nimport dateRangePlaceholderMask from \"./maskito/dateRangePlaceholderMask\";\nimport {\n DateModeToFormatMap,\n DateModeToPlaceholderMap,\n} from \"../../DateFieldSingle/internal/constants\";\nimport type { DateMode } from \"../../DateFieldSingle/types\";\nimport { usePrevious } from \"../../../internal/hooks\";\nimport { jsDateToUtcDateTime } from \"../../DateFieldSingle/internal/utils\";\n\nconst RANGE_SEPARATOR = \" - \";\n\nexport type MaskedDateRangeInputChange = {\n /** Parsed start, or the last committed start while that half does not parse. */\n startDate: DateTime | null;\n /** Parsed end, or the last committed end while that half does not parse. */\n endDate: DateTime | null;\n /** Whether both ends form complete dates. */\n isInputValid: boolean;\n /** Whether no date digits remain after removing the placeholder. */\n isInputEmpty: boolean;\n};\n\n/** Receives substantive changes to the parsed range or input state. */\nexport type MaskedDateRangeInputChangeHandler = (\n change: MaskedDateRangeInputChange,\n) => void;\n\nexport type MaskedDateRangeInputProps = Omit<\n TextFieldProps,\n \"onChange\" | \"value\" | \"ref\" | \"showCounter\" | \"hint\" | \"prefix\"\n> & {\n /** Called when either parsed end, completeness, or emptiness changes. */\n onChange: MaskedDateRangeInputChangeHandler;\n /** Order of the date segments. Defaults to `mm/dd/yyyy`. */\n mode?: DateMode;\n /** Start displayed after an external update and retained during partial edits. */\n startDate: DateTime | null;\n /** End displayed after an external update and retained during partial edits. */\n endDate: DateTime | null;\n /** Hides the expected-format hint. Defaults to `false`. */\n disableHint?: boolean;\n};\n\nexport type MaskedDateRangeInputRef = HTMLInputElement & {\n /** Updates the displayed range without firing `onChange`. */\n setDateRange: (startDate: DateTime | null, endDate: DateTime | null) => void;\n};\n\n/**\n * Masked start/end date input shared by range fields.\n *\n * @internal\n */\nexport const MaskedDateRangeInput = forwardRef<\n MaskedDateRangeInputRef,\n MaskedDateRangeInputProps\n>(\n (\n {\n onChange,\n mode = \"mm/dd/yyyy\",\n startDate,\n endDate,\n disableHint = false,\n ...props\n },\n ref,\n ) => {\n const halfPlaceholder = DateModeToPlaceholderMap[mode];\n const fullPlaceholder = `${halfPlaceholder}${RANGE_SEPARATOR}${halfPlaceholder}`;\n\n const [inputValue, setInputValue] = useState(fullPlaceholder);\n\n const { options, removePlaceholder } = dateRangePlaceholderMask({\n mode,\n placeholder: fullPlaceholder,\n dateSeparator: \"/\",\n rangeSeparator: RANGE_SEPARATOR,\n });\n const maskedInputRef = useMaskito({ options });\n const inputRef = useRef<HTMLInputElement>(null);\n const combinedRef = useMergeRefs([maskedInputRef, inputRef, ref]);\n const previousStartDate = usePrevious(startDate);\n const previousEndDate = usePrevious(endDate);\n const previousMode = usePrevious(mode);\n\n useEffect(() => {\n if (mode !== previousMode) {\n setInputValue((previousInputValue) =>\n swapMode(previousInputValue, previousMode ?? mode, mode),\n );\n }\n }, [mode, fullPlaceholder, previousMode]);\n\n useEffect(() => {\n // Only an external range change should replace the user's partial text.\n if (startDate === undefined || endDate === undefined) return;\n if (startDate === previousStartDate && endDate === previousEndDate)\n return;\n if (\n // `plus({ days: 1 })` is a stand-in when there is no previous date.\n startDate?.equals(previousStartDate ?? startDate?.plus({ days: 1 })) &&\n (endDate?.equals(previousEndDate ?? endDate?.plus({ days: 1 })) ||\n endDate === previousEndDate)\n )\n return;\n const startDateString =\n startDate?.toFormat(DateModeToFormatMap[mode]) ?? halfPlaceholder;\n const endDateString =\n endDate?.toFormat(DateModeToFormatMap[mode]) ?? halfPlaceholder;\n const newInputValue = `${startDateString}${RANGE_SEPARATOR}${endDateString}`;\n setInputValue(newInputValue);\n }, [\n startDate,\n endDate,\n mode,\n halfPlaceholder,\n previousStartDate,\n previousEndDate,\n ]);\n\n const currentParsedData = useMemo(() => {\n return parseRangeInputValue(inputValue, mode, removePlaceholder);\n }, [inputValue, mode, removePlaceholder]);\n\n const handleChange = (event: React.ChangeEvent<HTMLInputElement>) => {\n setInputValue(event.target.value);\n const {\n startDate: newlyParsedStartDate,\n endDate: newlyParsedEndDate,\n isInputValid,\n isInputEmpty,\n isHalfEmpty,\n } = parseRangeInputValue(event.target.value, mode, removePlaceholder);\n\n const isValueDifferent =\n isInputValid !== currentParsedData.isInputValid ||\n isInputEmpty !== currentParsedData.isInputEmpty ||\n (newlyParsedStartDate === null) !==\n (currentParsedData.startDate === null) ||\n (newlyParsedEndDate === null) !==\n (currentParsedData.endDate === null) ||\n isHalfEmpty !== currentParsedData.isHalfEmpty ||\n (newlyParsedStartDate !== null &&\n currentParsedData.startDate !== null &&\n !newlyParsedStartDate.equals(currentParsedData.startDate)) ||\n (newlyParsedEndDate !== null &&\n currentParsedData.endDate !== null &&\n !newlyParsedEndDate.equals(currentParsedData.endDate));\n\n if (!isValueDifferent) return;\n onChange?.({\n startDate: isInputEmpty\n ? null\n : (newlyParsedStartDate ?? startDate ?? null),\n endDate:\n isInputEmpty || isHalfEmpty\n ? null\n : (newlyParsedEndDate ?? endDate ?? null),\n isInputValid,\n isInputEmpty,\n });\n };\n\n useImperativeHandle(ref, () => {\n const input = inputRef.current;\n if (!input) return null as unknown as MaskedDateRangeInputRef;\n return Object.assign(input, {\n setDateRange: (\n startDate: DateTime | null,\n endDate: DateTime | null,\n ) => {\n const startDateString = startDate?.toFormat(\n DateModeToFormatMap[mode],\n );\n const endDateString = endDate?.toFormat(DateModeToFormatMap[mode]);\n const newInputValue = `${startDateString ?? halfPlaceholder}${RANGE_SEPARATOR}${endDateString ?? halfPlaceholder}`;\n setInputValue(newInputValue);\n },\n });\n }, [mode, halfPlaceholder]);\n\n return (\n // anv-parts-allow-interactive -- PARTS.input forwarded via {...props} from DateFieldRange\n <TextField\n ref={combinedRef}\n data-start-date={startDate?.toISODate() ?? \"\"}\n data-end-date={endDate?.toISODate() ?? \"\"}\n data-input-valid={currentParsedData.isInputValid}\n data-input-empty={currentParsedData.isInputEmpty}\n {...props}\n showCounter={false}\n value={inputValue}\n onChange={handleChange}\n prefix={<Icon svg={Event} />}\n hint={disableHint ? undefined : `Format: ${mode}`}\n />\n );\n },\n);\n\nMaskedDateRangeInput.displayName = \"MaskedDateRangeInput\";\n\nfunction parseRangeInputValue(\n value: string,\n mode: DateMode,\n removePlaceholder: (value: string) => string,\n) {\n const valueMinusPlaceholder = removePlaceholder(value);\n const [startDate, endDate] = valueMinusPlaceholder.split(RANGE_SEPARATOR);\n const startJsDate = maskitoParseDate(startDate, { mode });\n const endJsDate = endDate ? maskitoParseDate(endDate, { mode }) : null;\n const startLuxonDate = startJsDate ? jsDateToUtcDateTime(startJsDate) : null;\n const endLuxonDate = endJsDate ? jsDateToUtcDateTime(endJsDate) : null;\n return {\n startDate: startLuxonDate,\n endDate: endLuxonDate,\n isInputValid: !!(startLuxonDate && endLuxonDate),\n isInputEmpty: valueMinusPlaceholder === \"\",\n isHalfEmpty: endDate === undefined,\n };\n}\n\nfunction swapMode(inputString: string, previousMode: DateMode, mode: DateMode) {\n const halves = inputString.split(RANGE_SEPARATOR);\n const segments = halves.map((half) => half.split(\"/\"));\n\n let startDay, startMonth, startYear, endDay, endMonth, endYear;\n if (previousMode === \"mm/dd/yyyy\") {\n startDay = segments[0][1];\n startMonth = segments[0][0];\n startYear = segments[0][2];\n endDay = segments[1][1];\n endMonth = segments[1][0];\n endYear = segments[1][2];\n }\n if (previousMode === \"dd/mm/yyyy\") {\n startDay = segments[0][0];\n startMonth = segments[0][1];\n startYear = segments[0][2];\n endDay = segments[1][0];\n endMonth = segments[1][1];\n endYear = segments[1][2];\n }\n if (previousMode === \"yyyy/mm/dd\") {\n startDay = segments[0][2];\n startMonth = segments[0][1];\n startYear = segments[0][0];\n endDay = segments[1][2];\n endMonth = segments[1][1];\n endYear = segments[1][0];\n }\n\n if (mode === \"mm/dd/yyyy\") {\n return `${startMonth}/${startDay}/${startYear}${RANGE_SEPARATOR}${endMonth}/${endDay}/${endYear}`;\n }\n if (mode === \"dd/mm/yyyy\") {\n return `${startDay}/${startMonth}/${startYear}${RANGE_SEPARATOR}${endDay}/${endMonth}/${endYear}`;\n }\n if (mode === \"yyyy/mm/dd\") {\n return `${startYear}/${startMonth}/${startDay}${RANGE_SEPARATOR}${endYear}/${endMonth}/${endDay}`;\n }\n\n return inputString;\n}\n","import { useCallback, useMemo } from \"react\";\nimport type {\n DateFieldRangeChange,\n DateFieldRangeProps,\n} from \"../DateFieldRange\";\nimport { convertStringToDate } from \"../../DateFieldSingle/internal/utils\";\nimport type { DateTime } from \"luxon\";\n\n/** Normalizes DateFieldRange's ISO props and callback to UTC Luxon values. */\nexport const useDateFieldRangeConversion = (props: DateFieldRangeProps) => {\n const { value, defaultValue, minDate, maxDate, unavailable, onChange } =\n props;\n\n const normalizedValue = useMemo(() => {\n if (value === null || value === undefined) return value;\n return {\n startDate: convertStringToDate(value.startDate) ?? null,\n endDate: convertStringToDate(value.endDate) ?? null,\n };\n }, [value]);\n\n const normalizedDefaultValue = useMemo(() => {\n if (defaultValue === null || defaultValue === undefined)\n return defaultValue;\n return {\n startDate: convertStringToDate(defaultValue.startDate) ?? null,\n endDate: convertStringToDate(defaultValue.endDate) ?? null,\n };\n }, [defaultValue]);\n\n const normalizedMinDate = useMemo(\n () => convertStringToDate(minDate),\n [minDate],\n );\n const normalizedMaxDate = useMemo(\n () => convertStringToDate(maxDate),\n [maxDate],\n );\n\n const normalizedUnavailableDates = useMemo(() => {\n return unavailable?.dates\n ?.map((date) => convertStringToDate(date))\n .filter((date) => date !== null && date !== undefined);\n }, [unavailable?.dates]);\n\n const handleChange = useCallback(\n (\n change: Omit<DateFieldRangeChange, \"startDate\" | \"endDate\"> & {\n startDate: DateTime | null;\n endDate: DateTime | null;\n },\n ) => {\n onChange?.({\n ...change,\n startDate: change.startDate?.toISODate() ?? null,\n endDate: change.endDate?.toISODate() ?? null,\n });\n },\n [onChange],\n );\n\n return {\n value: normalizedValue,\n defaultValue: normalizedDefaultValue,\n minDate: normalizedMinDate,\n maxDate: normalizedMaxDate,\n unavailable: {\n dates: normalizedUnavailableDates,\n daysOfWeek: unavailable?.daysOfWeek,\n },\n onChange: handleChange,\n };\n};\n","import type { DateTime } from \"luxon\";\nimport { useOptionallyControlledState } from \"../../../internal/hooks\";\nimport type { MaskedDateRangeInputChange } from \"./MaskedDateRangeInput\";\n\nexport type DateFieldRangeStateChange = {\n /** Last committed start, or `null` when that end is empty. */\n startDate: DateTime | null;\n /** Last committed end, or `null` when that end is empty. */\n endDate: DateTime | null;\n /** Whether both ends form complete dates. */\n isInputValid: boolean;\n /** Whether the input contains no date digits. */\n isInputEmpty: boolean;\n};\n\n/** Receives synchronized input or calendar changes. */\nexport type DateFieldRangeStateChangeHandler = (\n change: DateFieldRangeStateChange,\n) => void;\n\nexport type DateFieldRangeStateParam = {\n /** Controlled range selection. */\n valueProp?: {\n startDate: DateTime | null;\n endDate: DateTime | null;\n } | null;\n /** Initial uncontrolled range selection. */\n defaultValueProp?: {\n startDate: DateTime | null;\n endDate: DateTime | null;\n } | null;\n /** Called for changes from either the input or calendar. */\n onChange: DateFieldRangeStateChangeHandler;\n};\n\nexport type DateFieldRangeState = {\n startDate: DateTime | null;\n endDate: DateTime | null;\n setStartDate: (date: DateTime | null) => void;\n setEndDate: (date: DateTime | null) => void;\n /** Applies parsed input ends, including a partial range, or clears when empty. */\n handleInputChange: (change: MaskedDateRangeInputChange) => void;\n /** Applies a calendar selection, including an incomplete range with no end. */\n handleCalendarSelection: ({\n startDate,\n endDate,\n }: {\n startDate: DateTime | null;\n endDate: DateTime | null;\n }) => void;\n};\n\n/** Synchronizes controlled or uncontrolled start and end between the input and calendar. */\nexport function useDateFieldRangeState({\n valueProp,\n defaultValueProp,\n onChange,\n}: DateFieldRangeStateParam): DateFieldRangeState {\n const [startDate, setStartDate] =\n useOptionallyControlledState<DateTime | null>({\n controlledValue:\n valueProp !== undefined ? valueProp?.startDate : undefined,\n defaultValue:\n defaultValueProp !== undefined\n ? defaultValueProp?.startDate\n : undefined,\n });\n const [endDate, setEndDate] = useOptionallyControlledState<DateTime | null>({\n controlledValue: valueProp !== undefined ? valueProp?.endDate : undefined,\n defaultValue:\n defaultValueProp !== undefined ? defaultValueProp?.endDate : undefined,\n });\n\n const setSharedValue = (value: {\n startDate: DateTime | null;\n endDate: DateTime | null;\n }) => {\n setStartDate(value.startDate);\n setEndDate(value.endDate);\n };\n\n const handleInputChange = (change: MaskedDateRangeInputChange) => {\n const range = change.isInputEmpty\n ? null\n : {\n startDate: change.startDate?.startOf(\"day\") ?? null,\n endDate: change.endDate?.startOf(\"day\") ?? null,\n };\n\n onChange?.({\n startDate: range?.startDate ?? null,\n endDate: range?.endDate ?? null,\n isInputValid: change.isInputValid,\n isInputEmpty: change.isInputEmpty,\n });\n\n setStartDate(range?.startDate ?? null);\n setEndDate(range?.endDate ?? null);\n };\n\n const handleCalendarSelection = ({\n startDate,\n endDate,\n }: {\n startDate: DateTime | null;\n endDate: DateTime | null;\n }) => {\n setSharedValue({ startDate, endDate });\n onChange?.({\n startDate,\n endDate,\n isInputValid: true,\n isInputEmpty: false,\n });\n };\n\n return {\n startDate,\n endDate,\n setStartDate,\n setEndDate,\n handleInputChange,\n handleCalendarSelection,\n };\n}\n","import { DateTime, type WeekdayNumbers } from \"luxon\";\nimport { Calendar, type CalendarRangeValue } from \"../../Calendar/Calendar\";\nimport { useEffect, useMemo, useRef } from \"react\";\nimport { usePrevious } from \"../../../internal/hooks\";\nimport type { IanaZone } from \"../../../types\";\nimport { TimezoneMessage } from \"../../DateFieldSingle/internal/TimezoneMessage\";\nimport { isoToUtcDate } from \"../../DateFieldSingle/internal/utils\";\n\nexport type DateFieldRangeCalendarProps = {\n /** Current start, or `null` while unset. */\n startDate: DateTime | null;\n /** Current end, or `null` while the range is incomplete. */\n endDate: DateTime | null;\n onKeyDown?: (event: React.KeyboardEvent<HTMLDivElement>) => void;\n /** Called after either endpoint changes; `endDate` is `null` while incomplete. */\n onSelection: ({\n startDate,\n endDate,\n }: {\n startDate: DateTime | null;\n endDate: DateTime | null;\n }) => void;\n minDate?: DateTime | null;\n maxDate?: DateTime | null;\n unavailable?: {\n dates?: DateTime[];\n daysOfWeek?: WeekdayNumbers[];\n };\n timezone?: IanaZone;\n};\n\n/**\n * Adapts the field's UTC range to Calendar's zoned ISO contract. Remounts on\n * value change and parks focus so host popovers do not close on end-pick.\n */\nexport const DateFieldRangeCalendar = ({\n startDate,\n endDate,\n onKeyDown,\n onSelection,\n minDate,\n maxDate,\n unavailable,\n timezone: timezoneProp,\n}: DateFieldRangeCalendarProps) => {\n const previousStartDate = usePrevious(startDate);\n const previousEndDate = usePrevious(endDate);\n\n const calendarRef = useRef<HTMLDivElement>(null);\n const focusSentinelRef = useRef<HTMLDivElement>(null);\n\n const timezone: IanaZone = useMemo(() => {\n return (\n timezoneProp ??\n (Intl.DateTimeFormat().resolvedOptions().timeZone as IanaZone)\n );\n }, [timezoneProp]);\n\n // After the user selects a date, the Calendar remounts (due to the remount\n // `key` below) and focus falls to body. Restore focus to the just-picked date\n // button so consumers that keep the calendar mounted (e.g. FilterDateRange's\n // popover) don't get their focus-out handlers triggered, and keyboard users\n // don't lose their place. Two cases:\n // - start picked, no end yet → focus the start button so the user can\n // continue navigating to pick an end.\n // - end just picked → focus the end button. A host that closes the popover\n // synchronously on end-pick has already moved focus to its input by rAF\n // time, and the INPUT guard skips us out.\n // Guard: if focus is already on an INPUT (typing) or no longer inside the\n // calendar (consumer moved it elsewhere), skip — the user owns focus.\n useEffect(() => {\n const targetDateId =\n startDate && startDate !== previousStartDate && endDate === null\n ? startDate.toISODate()\n : endDate && endDate !== previousEndDate\n ? endDate.toISODate()\n : null;\n if (!targetDateId) return;\n\n // When typing, the input retains focus. When selecting via calendar keyboard\n // or mouse, the Calendar remounts and focus falls to body. Only restore in\n // the latter case. In Shadow DOM, document.activeElement is the host —\n // traverse into the shadow root to find the actual focused element.\n const root = (calendarRef.current?.getRootNode() ?? document) as\n | Document\n | ShadowRoot;\n const deepActiveEl =\n root.activeElement?.shadowRoot?.activeElement ?? root.activeElement;\n if (deepActiveEl?.tagName === \"INPUT\") return;\n requestAnimationFrame(() => {\n // Re-check the input guard inside rAF: a host that closes the popover\n // synchronously on end-pick will have moved focus to its input by now.\n const rootNow = (calendarRef.current?.getRootNode() ?? document) as\n | Document\n | ShadowRoot;\n const activeNow =\n rootNow.activeElement?.shadowRoot?.activeElement ??\n rootNow.activeElement;\n if (activeNow?.tagName === \"INPUT\") return;\n calendarRef.current\n ?.querySelector<HTMLButtonElement>(`button[id$=\"${targetDateId}\"]`)\n ?.focus();\n });\n }, [startDate, endDate, previousStartDate, previousEndDate]);\n\n const handleCalendarSelection = (data: { value: CalendarRangeValue }) => {\n if (!data.value) return;\n const calStartDate = data.value.start\n ? isoToUtcDate(data.value.start)\n : null;\n const calEndDate = data.value.end ? isoToUtcDate(data.value.end) : null;\n // Park focus on a stable sentinel inside this component *before* the state\n // update so the Calendar's key-remount doesn't drop focus to body. Without\n // this, host containers that listen for focus-out (e.g. OptionsPopover)\n // close prematurely on end-date pick. The post-remount effect below then\n // restores focus to the just-picked date button via rAF.\n focusSentinelRef.current?.focus();\n onSelection({\n startDate: calStartDate,\n endDate: calEndDate,\n });\n };\n\n const defaultFocusedDate = useMemo(() => {\n const todayISODate = DateTime.now().setZone(timezone).toISODate();\n if (!startDate && !endDate) return todayISODate;\n if (!startDate) return endDate?.toISODate();\n if (!endDate) return startDate?.toISODate();\n if (endDate && !previousEndDate?.equals(endDate)) {\n return endDate.toISODate();\n } else if (startDate && !previousStartDate?.equals(startDate)) {\n return startDate.toISODate();\n }\n\n if (endDate) return endDate.toISODate();\n if (startDate) return startDate.toISODate();\n return todayISODate;\n }, [previousStartDate, previousEndDate, startDate, endDate, timezone]);\n\n return (\n <>\n <div\n ref={focusSentinelRef}\n tabIndex={-1}\n aria-hidden=\"true\"\n style={{ outline: \"none\", position: \"absolute\", width: 0, height: 0 }}\n />\n <Calendar\n ref={calendarRef}\n // Remount when the range changes; Calendar does not otherwise pick up a new value.\n key={`${startDate?.toISODate()}-${endDate?.toISODate()}`}\n range={true}\n onKeyDown={onKeyDown}\n defaultFocusedDate={defaultFocusedDate}\n value={{\n start: startDate?.toISODate() || undefined,\n end: endDate?.toISODate() || undefined,\n }}\n onSelection={handleCalendarSelection}\n defaultTimeZone={timezone ?? \"UTC\"}\n minDate={minDate?.toISODate() ?? undefined}\n maxDate={maxDate?.toISODate() ?? undefined}\n unavailable={\n unavailable\n ? {\n dates: unavailable.dates?.map((d) => d.toISODate() ?? \"\"),\n daysOfWeek: unavailable.daysOfWeek,\n }\n : undefined\n }\n _disableAutofocus\n _disableFocus\n />\n <TimezoneMessage timezone={timezone} />\n </>\n );\n};\n","import { COMMON_PART } from \"../../internal/constants/anvParts\";\n\n/**\n * `data-anv-part` names for DateFieldRange's interactive sub-elements.\n *\n * The calendar and popover render in the top layer outside the input subtree,\n * so consumers must target their part attributes directly.\n */\nexport const PARTS = {\n input: COMMON_PART.dateInput,\n popover: COMMON_PART.popover,\n calendar: COMMON_PART.dateCalendar,\n} as const;\n","import type { DateTime } from \"luxon\";\nimport { validateDate } from \"../../DateFieldSingle/internal/utils\";\n\ntype DateConstraints = {\n unavailable?: {\n dates?: DateTime[];\n daysOfWeek?: number[];\n };\n minDate?: DateTime;\n maxDate?: DateTime;\n};\n\n/**\n * Empty ranges pass unless `required`. Otherwise both ends must exist, satisfy\n * availability and min/max, and start must not be after end.\n */\nexport function validateDateRange({\n required,\n startDate,\n endDate,\n startDateConstraints,\n endDateConstraints,\n}: {\n required?: boolean;\n startDate: DateTime | null;\n endDate: DateTime | null;\n startDateConstraints: DateConstraints;\n endDateConstraints: DateConstraints;\n}) {\n if (!required && !startDate && !endDate) return true;\n return (\n validateDate({\n date: startDate,\n constraints: { ...startDateConstraints, required: true },\n }) &&\n validateDate({\n date: endDate,\n constraints: { ...endDateConstraints, required: true },\n }) &&\n (!startDate || !endDate || startDate <= endDate)\n );\n}\n","import { childrenToString } from \"../../internal/functions\";\nimport { useTrackingId } from \"../../hooks\";\nimport type { DataAttributes, DataTrackingId, IanaZone } from \"../../types\";\nimport { ANV_PART_ATTR } from \"../../internal/constants/anvParts\";\nimport { PARTS } from \"./parts\";\nimport {\n MaskedDateRangeInput,\n type MaskedDateRangeInputProps,\n type MaskedDateRangeInputRef,\n} from \"./internal/MaskedDateRangeInput\";\nimport type { DateMode } from \"../DateFieldSingle/types\";\nimport { DateFieldRangeCalendar } from \"./internal/DateFieldRangeCalendar\";\nimport { type Ref, useEffect, useMemo, useRef } from \"react\";\nimport { useDateFieldRangeConversion } from \"./internal/useDateFieldRangeConversion\";\nimport {\n type DateFieldRangeStateChange,\n useDateFieldRangeState,\n} from \"./internal/useDateFieldRangeState\";\nimport { useFocusWithin } from \"../../internal/hooks\";\nimport { validateDateRange } from \"./internal/utils\";\nimport Popover from \"../../internal/components/Popover\";\nimport { mergeRefs } from \"../../hooks/useMergeRefs/useMergeRefs\";\n\nexport type DateFieldRangeChange = {\n /**\n * Last committed start as an ISO calendar date, or `null` when that end is\n * empty or has never completed a date.\n */\n startDate: string | null;\n /** Last committed end as an ISO calendar date, or `null` when that half is empty. */\n endDate: string | null;\n /** Whether both ends form complete dates; independent of date constraints. */\n isInputValid: boolean;\n /** Whether no date digits remain after removing the mask placeholder. */\n isInputEmpty: boolean;\n /**\n * Whether both ends satisfy required, availability, and min/max constraints\n * and start is not after end. Independent of input completeness. An empty\n * range is valid unless `required`.\n */\n isDateRangeValid: boolean;\n};\n\n/** Receives the current range and both layers of validity. */\nexport type DateFieldRangeChangeHandler = (\n change: DateFieldRangeChange,\n) => void;\n\n/** Start and end ISO calendar dates, or `null` to clear both ends. */\nexport type DateFieldRangeValue = {\n startDate: string | null;\n endDate: string | null;\n} | null;\n\nexport type DateFieldRangeProps = Omit<\n MaskedDateRangeInputProps,\n | \"onChange\"\n | \"value\"\n | \"autoComplete\"\n | \"onClick\"\n | \"onKeyDown\"\n | \"ref\"\n | \"required\"\n | \"startDate\"\n | \"endDate\"\n | \"defaultValue\"\n | \"onFocus\"\n | \"onBlur\"\n> & {\n /** Controlled ISO 8601 date range. Pass `null` to clear both ends. */\n value?: DateFieldRangeValue;\n /** Initial ISO 8601 date range for uncontrolled use. */\n defaultValue?: DateFieldRangeValue;\n /** Reports the range plus separate input-format and constraint validity. */\n onChange?: DateFieldRangeChangeHandler;\n /** Order of the date segments. Defaults to `mm/dd/yyyy`. */\n mode?: Extract<DateMode, \"mm/dd/yyyy\" | \"dd/mm/yyyy\">;\n /** Hides the expected-format hint below the input. */\n disableHint?: boolean;\n /** Renders only the masked input without its popover calendar. */\n disableCalendar?: boolean;\n /** Dates and recurring weekdays excluded from selection and validation. */\n unavailable?: {\n /** ISO 8601 dates excluded from selection. */\n dates?: string[];\n /** Luxon weekday numbers excluded every week; Monday is 1 and Sunday is 7. */\n daysOfWeek?: (1 | 2 | 3 | 4 | 5 | 6 | 7)[];\n };\n /** Earliest valid ISO 8601 date for either end. */\n minDate?: string;\n /** Latest valid ISO 8601 date for either end. */\n maxDate?: string;\n /** Makes an empty range fail constraint validation. */\n required?: boolean;\n onFocus?: (event: React.FocusEvent) => void;\n onBlur?: (event: React.FocusEvent) => void;\n /**\n * IANA zone for the calendar's Today action and, when the field has no value,\n * its initially visible month. A message identifies a zone that differs from\n * the browser's.\n */\n timezone?: IanaZone;\n} & DataTrackingId &\n DataAttributes;\n\n/**\n * Masked start/end date field with an optional popover calendar. Reports input\n * completeness separately from range-constraint validity.\n */\nexport const DateFieldRange = (props: DateFieldRangeProps) => {\n const { aiMark, ...labelPropsWithoutAiMark } = props.labelProps || {};\n\n const data = {\n label: childrenToString(props.label),\n labelProps: labelPropsWithoutAiMark,\n description: childrenToString(props.description),\n };\n\n const trackingId = useTrackingId({\n name: \"DateFieldRange\",\n data,\n hasOverride: !!props[\"data-tracking-id\"],\n });\n\n const {\n onFocus,\n onBlur,\n disableCalendar,\n required,\n mode,\n label,\n value: valueProp,\n defaultValue: defaultValueProp,\n minDate: minDateProp,\n maxDate: maxDateProp,\n unavailable: unavailableProp,\n onChange: onChangeProp,\n timezone,\n disabled,\n ...rest\n } = props;\n\n const popoverRef = useRef<{\n openPopover: () => void;\n closePopover: () => void;\n }>(null);\n\n useEffect(() => {\n if (disabled) {\n popoverRef.current?.closePopover();\n }\n }, [disabled]);\n\n const handleInputKeyDown = (ev: React.KeyboardEvent<HTMLInputElement>) => {\n if (ev.key === \"ArrowDown\") {\n ev.preventDefault();\n popoverRef.current?.openPopover();\n requestAnimationFrame(() => {\n popoverContentRef.current?.querySelector(\"button\")?.focus();\n });\n }\n };\n\n const { props: wrapperProps } = useFocusWithin({\n onBlur: (e) => {\n onBlur?.(e);\n popoverRef.current?.closePopover();\n },\n onFocus: onFocus,\n });\n\n const { value, defaultValue, minDate, maxDate, unavailable, onChange } =\n useDateFieldRangeConversion({\n value: valueProp,\n defaultValue: defaultValueProp,\n minDate: minDateProp,\n maxDate: maxDateProp,\n unavailable: unavailableProp,\n onChange: onChangeProp,\n });\n\n const inputRef = useRef<MaskedDateRangeInputRef>(null);\n const popoverContentRef = useRef<HTMLDivElement>(null);\n\n const handleChange = (change: DateFieldRangeStateChange) => {\n const sharedConstraints = {\n unavailable,\n minDate: minDate ?? undefined,\n maxDate: maxDate ?? undefined,\n };\n\n onChange?.({\n startDate: change.startDate?.startOf(\"day\") ?? null,\n endDate: change.endDate?.startOf(\"day\") ?? null,\n isInputValid: change.isInputValid,\n isInputEmpty: change.isInputEmpty,\n isDateRangeValid: validateDateRange({\n required: required,\n startDate: change.startDate?.startOf(\"day\") ?? null,\n endDate: change.endDate?.startOf(\"day\") ?? null,\n startDateConstraints: sharedConstraints,\n endDateConstraints: sharedConstraints,\n }),\n });\n };\n\n const { startDate, endDate, handleInputChange, handleCalendarSelection } =\n useDateFieldRangeState({\n valueProp: value,\n defaultValueProp: defaultValue,\n onChange: handleChange,\n });\n\n const currentValidity = useMemo(() => {\n return validateDateRange({\n required,\n startDate,\n endDate,\n startDateConstraints: {\n unavailable,\n minDate: minDate ?? undefined,\n maxDate: maxDate ?? undefined,\n },\n endDateConstraints: {\n unavailable,\n minDate: minDate ?? undefined,\n maxDate: maxDate ?? undefined,\n },\n });\n }, [required, startDate, endDate, minDate, maxDate, unavailable]);\n\n const commonFieldProps = {\n ...rest,\n disabled,\n mode,\n label,\n onChange: handleInputChange,\n startDate: startDate ?? null,\n endDate: endDate ?? null,\n required,\n autoComplete: \"off\",\n \"data-anv\": \"date-field-range\",\n \"data-date-range-valid\": currentValidity,\n \"data-tracking-id\": trackingId,\n [ANV_PART_ATTR]: PARTS.input,\n \"aria-label\": label ? undefined : \"Select a date range\",\n };\n\n const justTheField = (\n <MaskedDateRangeInput {...commonFieldProps} ref={inputRef} />\n );\n\n if (disableCalendar) {\n return justTheField;\n }\n\n return (\n <div {...wrapperProps}>\n <Popover ref={popoverRef} placement=\"bottom-start\" role=\"grid\">\n <Popover.Trigger>\n {({ ref: iRef, onKeyDown }) => {\n const mergedRef = mergeRefs([\n inputRef,\n iRef as Ref<HTMLInputElement>,\n ]);\n return (\n <MaskedDateRangeInput\n {...commonFieldProps}\n ref={mergedRef}\n onKeyDown={(ev) => {\n onKeyDown?.(ev);\n handleInputKeyDown(ev);\n }}\n onClick={() => popoverRef.current?.openPopover()}\n onFocus={onFocus}\n onBlur={onBlur}\n />\n );\n }}\n </Popover.Trigger>\n <Popover.Content\n ref={popoverContentRef}\n data-testid=\"calendar-popover\"\n {...{ [ANV_PART_ATTR]: PARTS.popover }}\n >\n {/* DateFieldRangeCalendar does not forward arbitrary props, so the\n part attribute goes on a wrapping element. */}\n <div {...{ [ANV_PART_ATTR]: PARTS.calendar }}>\n <DateFieldRangeCalendar\n startDate={startDate}\n endDate={endDate}\n onSelection={(v) => {\n if (v.endDate) {\n inputRef.current?.focus();\n popoverRef.current?.closePopover();\n }\n handleCalendarSelection(v);\n }}\n minDate={minDate}\n maxDate={maxDate}\n unavailable={unavailable}\n timezone={timezone}\n />\n </div>\n </Popover.Content>\n </Popover>\n </div>\n );\n};\n\nDateFieldRange.displayName = \"DateFieldRange\";\n"],"names":["datePlaceholderMask","dateRangePlaceholderMask","startDate","endDate","Event"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"DateFieldRange-BPcsS6TW.js","sources":["../src/components/DateFieldRange/internal/maskito/dateRangePlaceholderMask.ts","../src/components/DateFieldRange/internal/MaskedDateRangeInput.tsx","../src/components/DateFieldRange/internal/useDateFieldRangeConversion.ts","../src/components/DateFieldRange/internal/useDateFieldRangeState.ts","../src/components/DateFieldRange/internal/DateFieldRangeCalendar.tsx","../src/components/DateFieldRange/parts.ts","../src/components/DateFieldRange/internal/utils.ts","../src/components/DateFieldRange/DateFieldRange.tsx"],"sourcesContent":["import type { MaskitoOptions } from \"@maskito/core\";\nimport {\n type MaskitoDateMode,\n maskitoDateRangeOptionsGenerator,\n maskitoWithPlaceholder,\n} from \"@maskito/kit\";\nimport { makeZeroShortcutPreprocessor } from \"../../../DateFieldSingle/internal/maskito/makeZeroShortcutPreprocessor\";\n\n/** Date-segment orders supported by the range mask. */\nexport type DateMode = Extract<\n MaskitoDateMode,\n \"dd/mm/yyyy\" | \"mm/dd/yyyy\" | \"yyyy/mm/dd\"\n>;\n\n/** Builds Maskito range options with a persistent placeholder and zero shortcut. */\nconst datePlaceholderMask = ({\n mode,\n dateSeparator = \"/\",\n rangeSeparator = \" - \",\n placeholder,\n}: {\n mode: DateMode;\n dateSeparator?: string;\n rangeSeparator?: string;\n placeholder: string;\n}) => {\n const dateRangeOptions = maskitoDateRangeOptionsGenerator({\n mode,\n dateSeparator,\n rangeSeparator,\n });\n\n const { plugins, removePlaceholder, ...placeholderOptions } =\n maskitoWithPlaceholder(placeholder);\n\n const datePlaceholderMask = {\n ...dateRangeOptions,\n plugins: plugins.concat(dateRangeOptions.plugins || []),\n preprocessors: [\n ...placeholderOptions.preprocessors,\n ...dateRangeOptions.preprocessors,\n makeZeroShortcutPreprocessor(placeholder, dateSeparator),\n ],\n postprocessors: [\n // NOTE this is super fragile. If Maskito maintainers change the order of the post-processors, this will break.\n // The last postprocessor is the date swap postprocessor, which we don't want to run.\n // A unit test is added to ensure this doesn't break on a dependency update.\n ...dateRangeOptions.postprocessors.slice(0, -1),\n ...placeholderOptions.postprocessors,\n ],\n } satisfies Required<MaskitoOptions>;\n\n return { options: datePlaceholderMask, removePlaceholder };\n};\n\nexport default datePlaceholderMask;\n","import { maskitoParseDate } from \"@maskito/kit\";\nimport { useMaskito } from \"@maskito/react\";\nimport {\n TextField,\n type TextFieldProps,\n} from \"../../TextField/internal/TextField\";\nimport {\n forwardRef,\n useEffect,\n useImperativeHandle,\n useMemo,\n useRef,\n useState,\n} from \"react\";\nimport { useMergeRefs } from \"@floating-ui/react\";\nimport type { DateTime } from \"luxon\";\nimport { Icon } from \"../../Icon\";\nimport Event from \"@servicetitan/hammer-icon/mdi/round/event.svg\";\nimport dateRangePlaceholderMask from \"./maskito/dateRangePlaceholderMask\";\nimport {\n DateModeToFormatMap,\n DateModeToPlaceholderMap,\n} from \"../../DateFieldSingle/internal/constants\";\nimport type { DateMode } from \"../../DateFieldSingle/types\";\nimport { usePrevious } from \"../../../internal/hooks\";\nimport { jsDateToUtcDateTime } from \"../../DateFieldSingle/internal/utils\";\n\nconst RANGE_SEPARATOR = \" - \";\n\nexport type MaskedDateRangeInputChange = {\n /** Parsed start, or the last committed start while that half does not parse. */\n startDate: DateTime | null;\n /** Parsed end, or the last committed end while that half does not parse. */\n endDate: DateTime | null;\n /** Whether both ends form complete dates. */\n isInputValid: boolean;\n /** Whether no date digits remain after removing the placeholder. */\n isInputEmpty: boolean;\n};\n\n/** Receives substantive changes to the parsed range or input state. */\nexport type MaskedDateRangeInputChangeHandler = (\n change: MaskedDateRangeInputChange,\n) => void;\n\nexport type MaskedDateRangeInputProps = Omit<\n TextFieldProps,\n \"onChange\" | \"value\" | \"ref\" | \"showCounter\" | \"hint\" | \"prefix\"\n> & {\n /** Called when either parsed end, completeness, or emptiness changes. */\n onChange: MaskedDateRangeInputChangeHandler;\n /** Order of the date segments. Defaults to `mm/dd/yyyy`. */\n mode?: DateMode;\n /** Start displayed after an external update and retained during partial edits. */\n startDate: DateTime | null;\n /** End displayed after an external update and retained during partial edits. */\n endDate: DateTime | null;\n /** Hides the expected-format hint. Defaults to `false`. */\n disableHint?: boolean;\n};\n\nexport type MaskedDateRangeInputRef = HTMLInputElement & {\n /** Updates the displayed range without firing `onChange`. */\n setDateRange: (startDate: DateTime | null, endDate: DateTime | null) => void;\n};\n\n/**\n * Masked start/end date input shared by range fields.\n *\n * @internal\n */\nexport const MaskedDateRangeInput = forwardRef<\n MaskedDateRangeInputRef,\n MaskedDateRangeInputProps\n>(\n (\n {\n onChange,\n mode = \"mm/dd/yyyy\",\n startDate,\n endDate,\n disableHint = false,\n ...props\n },\n ref,\n ) => {\n const halfPlaceholder = DateModeToPlaceholderMap[mode];\n const fullPlaceholder = `${halfPlaceholder}${RANGE_SEPARATOR}${halfPlaceholder}`;\n\n const [inputValue, setInputValue] = useState(fullPlaceholder);\n\n const { options, removePlaceholder } = dateRangePlaceholderMask({\n mode,\n placeholder: fullPlaceholder,\n dateSeparator: \"/\",\n rangeSeparator: RANGE_SEPARATOR,\n });\n const maskedInputRef = useMaskito({ options });\n const inputRef = useRef<HTMLInputElement>(null);\n const combinedRef = useMergeRefs([maskedInputRef, inputRef, ref]);\n const previousStartDate = usePrevious(startDate);\n const previousEndDate = usePrevious(endDate);\n const previousMode = usePrevious(mode);\n\n useEffect(() => {\n if (mode !== previousMode) {\n setInputValue((previousInputValue) =>\n swapMode(previousInputValue, previousMode ?? mode, mode),\n );\n }\n }, [mode, fullPlaceholder, previousMode]);\n\n useEffect(() => {\n // Only an external range change should replace the user's partial text.\n if (startDate === undefined || endDate === undefined) return;\n if (startDate === previousStartDate && endDate === previousEndDate)\n return;\n if (\n // `plus({ days: 1 })` is a stand-in when there is no previous date.\n startDate?.equals(previousStartDate ?? startDate?.plus({ days: 1 })) &&\n (endDate?.equals(previousEndDate ?? endDate?.plus({ days: 1 })) ||\n endDate === previousEndDate)\n )\n return;\n const startDateString =\n startDate?.toFormat(DateModeToFormatMap[mode]) ?? halfPlaceholder;\n const endDateString =\n endDate?.toFormat(DateModeToFormatMap[mode]) ?? halfPlaceholder;\n const newInputValue = `${startDateString}${RANGE_SEPARATOR}${endDateString}`;\n setInputValue(newInputValue);\n }, [\n startDate,\n endDate,\n mode,\n halfPlaceholder,\n previousStartDate,\n previousEndDate,\n ]);\n\n const currentParsedData = useMemo(() => {\n return parseRangeInputValue(inputValue, mode, removePlaceholder);\n }, [inputValue, mode, removePlaceholder]);\n\n const handleChange = (event: React.ChangeEvent<HTMLInputElement>) => {\n setInputValue(event.target.value);\n const {\n startDate: newlyParsedStartDate,\n endDate: newlyParsedEndDate,\n isInputValid,\n isInputEmpty,\n isHalfEmpty,\n } = parseRangeInputValue(event.target.value, mode, removePlaceholder);\n\n const isValueDifferent =\n isInputValid !== currentParsedData.isInputValid ||\n isInputEmpty !== currentParsedData.isInputEmpty ||\n (newlyParsedStartDate === null) !==\n (currentParsedData.startDate === null) ||\n (newlyParsedEndDate === null) !==\n (currentParsedData.endDate === null) ||\n isHalfEmpty !== currentParsedData.isHalfEmpty ||\n (newlyParsedStartDate !== null &&\n currentParsedData.startDate !== null &&\n !newlyParsedStartDate.equals(currentParsedData.startDate)) ||\n (newlyParsedEndDate !== null &&\n currentParsedData.endDate !== null &&\n !newlyParsedEndDate.equals(currentParsedData.endDate));\n\n if (!isValueDifferent) return;\n onChange?.({\n startDate: isInputEmpty\n ? null\n : (newlyParsedStartDate ?? startDate ?? null),\n endDate:\n isInputEmpty || isHalfEmpty\n ? null\n : (newlyParsedEndDate ?? endDate ?? null),\n isInputValid,\n isInputEmpty,\n });\n };\n\n useImperativeHandle(ref, () => {\n const input = inputRef.current;\n if (!input) return null as unknown as MaskedDateRangeInputRef;\n return Object.assign(input, {\n setDateRange: (\n startDate: DateTime | null,\n endDate: DateTime | null,\n ) => {\n const startDateString = startDate?.toFormat(\n DateModeToFormatMap[mode],\n );\n const endDateString = endDate?.toFormat(DateModeToFormatMap[mode]);\n const newInputValue = `${startDateString ?? halfPlaceholder}${RANGE_SEPARATOR}${endDateString ?? halfPlaceholder}`;\n setInputValue(newInputValue);\n },\n });\n }, [mode, halfPlaceholder]);\n\n return (\n // anv-parts-allow-interactive -- PARTS.input forwarded via {...props} from DateFieldRange\n <TextField\n ref={combinedRef}\n data-start-date={startDate?.toISODate() ?? \"\"}\n data-end-date={endDate?.toISODate() ?? \"\"}\n data-input-valid={currentParsedData.isInputValid}\n data-input-empty={currentParsedData.isInputEmpty}\n {...props}\n showCounter={false}\n value={inputValue}\n onChange={handleChange}\n prefix={<Icon svg={Event} />}\n hint={disableHint ? undefined : `Format: ${mode}`}\n />\n );\n },\n);\n\nMaskedDateRangeInput.displayName = \"MaskedDateRangeInput\";\n\nfunction parseRangeInputValue(\n value: string,\n mode: DateMode,\n removePlaceholder: (value: string) => string,\n) {\n const valueMinusPlaceholder = removePlaceholder(value);\n const [startDate, endDate] = valueMinusPlaceholder.split(RANGE_SEPARATOR);\n const startJsDate = maskitoParseDate(startDate, { mode });\n const endJsDate = endDate ? maskitoParseDate(endDate, { mode }) : null;\n const startLuxonDate = startJsDate ? jsDateToUtcDateTime(startJsDate) : null;\n const endLuxonDate = endJsDate ? jsDateToUtcDateTime(endJsDate) : null;\n return {\n startDate: startLuxonDate,\n endDate: endLuxonDate,\n isInputValid: !!(startLuxonDate && endLuxonDate),\n isInputEmpty: valueMinusPlaceholder === \"\",\n isHalfEmpty: endDate === undefined,\n };\n}\n\nfunction swapMode(inputString: string, previousMode: DateMode, mode: DateMode) {\n const halves = inputString.split(RANGE_SEPARATOR);\n const segments = halves.map((half) => half.split(\"/\"));\n\n let startDay, startMonth, startYear, endDay, endMonth, endYear;\n if (previousMode === \"mm/dd/yyyy\") {\n startDay = segments[0][1];\n startMonth = segments[0][0];\n startYear = segments[0][2];\n endDay = segments[1][1];\n endMonth = segments[1][0];\n endYear = segments[1][2];\n }\n if (previousMode === \"dd/mm/yyyy\") {\n startDay = segments[0][0];\n startMonth = segments[0][1];\n startYear = segments[0][2];\n endDay = segments[1][0];\n endMonth = segments[1][1];\n endYear = segments[1][2];\n }\n if (previousMode === \"yyyy/mm/dd\") {\n startDay = segments[0][2];\n startMonth = segments[0][1];\n startYear = segments[0][0];\n endDay = segments[1][2];\n endMonth = segments[1][1];\n endYear = segments[1][0];\n }\n\n if (mode === \"mm/dd/yyyy\") {\n return `${startMonth}/${startDay}/${startYear}${RANGE_SEPARATOR}${endMonth}/${endDay}/${endYear}`;\n }\n if (mode === \"dd/mm/yyyy\") {\n return `${startDay}/${startMonth}/${startYear}${RANGE_SEPARATOR}${endDay}/${endMonth}/${endYear}`;\n }\n if (mode === \"yyyy/mm/dd\") {\n return `${startYear}/${startMonth}/${startDay}${RANGE_SEPARATOR}${endYear}/${endMonth}/${endDay}`;\n }\n\n return inputString;\n}\n","import { useCallback, useMemo } from \"react\";\nimport type {\n DateFieldRangeChange,\n DateFieldRangeProps,\n} from \"../DateFieldRange\";\nimport { convertStringToDate } from \"../../DateFieldSingle/internal/utils\";\nimport type { DateTime } from \"luxon\";\n\n/** Normalizes DateFieldRange's ISO props and callback to UTC Luxon values. */\nexport const useDateFieldRangeConversion = (props: DateFieldRangeProps) => {\n const { value, defaultValue, minDate, maxDate, unavailable, onChange } =\n props;\n\n const normalizedValue = useMemo(() => {\n if (value === null || value === undefined) return value;\n return {\n startDate: convertStringToDate(value.startDate) ?? null,\n endDate: convertStringToDate(value.endDate) ?? null,\n };\n }, [value]);\n\n const normalizedDefaultValue = useMemo(() => {\n if (defaultValue === null || defaultValue === undefined)\n return defaultValue;\n return {\n startDate: convertStringToDate(defaultValue.startDate) ?? null,\n endDate: convertStringToDate(defaultValue.endDate) ?? null,\n };\n }, [defaultValue]);\n\n const normalizedMinDate = useMemo(\n () => convertStringToDate(minDate),\n [minDate],\n );\n const normalizedMaxDate = useMemo(\n () => convertStringToDate(maxDate),\n [maxDate],\n );\n\n const normalizedUnavailableDates = useMemo(() => {\n return unavailable?.dates\n ?.map((date) => convertStringToDate(date))\n .filter((date) => date !== null && date !== undefined);\n }, [unavailable?.dates]);\n\n const handleChange = useCallback(\n (\n change: Omit<DateFieldRangeChange, \"startDate\" | \"endDate\"> & {\n startDate: DateTime | null;\n endDate: DateTime | null;\n },\n ) => {\n onChange?.({\n ...change,\n startDate: change.startDate?.toISODate() ?? null,\n endDate: change.endDate?.toISODate() ?? null,\n });\n },\n [onChange],\n );\n\n return {\n value: normalizedValue,\n defaultValue: normalizedDefaultValue,\n minDate: normalizedMinDate,\n maxDate: normalizedMaxDate,\n unavailable: {\n dates: normalizedUnavailableDates,\n daysOfWeek: unavailable?.daysOfWeek,\n },\n onChange: handleChange,\n };\n};\n","import type { DateTime } from \"luxon\";\nimport { useOptionallyControlledState } from \"../../../internal/hooks\";\nimport type { MaskedDateRangeInputChange } from \"./MaskedDateRangeInput\";\n\nexport type DateFieldRangeStateChange = {\n /** Last committed start, or `null` when that end is empty. */\n startDate: DateTime | null;\n /** Last committed end, or `null` when that end is empty. */\n endDate: DateTime | null;\n /** Whether both ends form complete dates. */\n isInputValid: boolean;\n /** Whether the input contains no date digits. */\n isInputEmpty: boolean;\n};\n\n/** Receives synchronized input or calendar changes. */\nexport type DateFieldRangeStateChangeHandler = (\n change: DateFieldRangeStateChange,\n) => void;\n\nexport type DateFieldRangeStateParam = {\n /** Controlled range selection. */\n valueProp?: {\n startDate: DateTime | null;\n endDate: DateTime | null;\n } | null;\n /** Initial uncontrolled range selection. */\n defaultValueProp?: {\n startDate: DateTime | null;\n endDate: DateTime | null;\n } | null;\n /** Called for changes from either the input or calendar. */\n onChange: DateFieldRangeStateChangeHandler;\n};\n\nexport type DateFieldRangeState = {\n startDate: DateTime | null;\n endDate: DateTime | null;\n setStartDate: (date: DateTime | null) => void;\n setEndDate: (date: DateTime | null) => void;\n /** Applies parsed input ends, including a partial range, or clears when empty. */\n handleInputChange: (change: MaskedDateRangeInputChange) => void;\n /** Applies a calendar selection, including an incomplete range with no end. */\n handleCalendarSelection: ({\n startDate,\n endDate,\n }: {\n startDate: DateTime | null;\n endDate: DateTime | null;\n }) => void;\n};\n\n/** Synchronizes controlled or uncontrolled start and end between the input and calendar. */\nexport function useDateFieldRangeState({\n valueProp,\n defaultValueProp,\n onChange,\n}: DateFieldRangeStateParam): DateFieldRangeState {\n const [startDate, setStartDate] =\n useOptionallyControlledState<DateTime | null>({\n controlledValue:\n valueProp !== undefined ? valueProp?.startDate : undefined,\n defaultValue:\n defaultValueProp !== undefined\n ? defaultValueProp?.startDate\n : undefined,\n });\n const [endDate, setEndDate] = useOptionallyControlledState<DateTime | null>({\n controlledValue: valueProp !== undefined ? valueProp?.endDate : undefined,\n defaultValue:\n defaultValueProp !== undefined ? defaultValueProp?.endDate : undefined,\n });\n\n const setSharedValue = (value: {\n startDate: DateTime | null;\n endDate: DateTime | null;\n }) => {\n setStartDate(value.startDate);\n setEndDate(value.endDate);\n };\n\n const handleInputChange = (change: MaskedDateRangeInputChange) => {\n const range = change.isInputEmpty\n ? null\n : {\n startDate: change.startDate?.startOf(\"day\") ?? null,\n endDate: change.endDate?.startOf(\"day\") ?? null,\n };\n\n onChange?.({\n startDate: range?.startDate ?? null,\n endDate: range?.endDate ?? null,\n isInputValid: change.isInputValid,\n isInputEmpty: change.isInputEmpty,\n });\n\n setStartDate(range?.startDate ?? null);\n setEndDate(range?.endDate ?? null);\n };\n\n const handleCalendarSelection = ({\n startDate,\n endDate,\n }: {\n startDate: DateTime | null;\n endDate: DateTime | null;\n }) => {\n setSharedValue({ startDate, endDate });\n onChange?.({\n startDate,\n endDate,\n isInputValid: true,\n isInputEmpty: false,\n });\n };\n\n return {\n startDate,\n endDate,\n setStartDate,\n setEndDate,\n handleInputChange,\n handleCalendarSelection,\n };\n}\n","import { DateTime, type WeekdayNumbers } from \"luxon\";\nimport { Calendar, type CalendarRangeValue } from \"../../Calendar/Calendar\";\nimport { useEffect, useMemo, useRef } from \"react\";\nimport { usePrevious } from \"../../../internal/hooks\";\nimport type { IanaZone } from \"../../../types\";\nimport { TimezoneMessage } from \"../../DateFieldSingle/internal/TimezoneMessage\";\nimport { isoToUtcDate } from \"../../DateFieldSingle/internal/utils\";\n\nexport type DateFieldRangeCalendarProps = {\n /** Current start, or `null` while unset. */\n startDate: DateTime | null;\n /** Current end, or `null` while the range is incomplete. */\n endDate: DateTime | null;\n onKeyDown?: (event: React.KeyboardEvent<HTMLDivElement>) => void;\n /** Called after either endpoint changes; `endDate` is `null` while incomplete. */\n onSelection: ({\n startDate,\n endDate,\n }: {\n startDate: DateTime | null;\n endDate: DateTime | null;\n }) => void;\n minDate?: DateTime | null;\n maxDate?: DateTime | null;\n unavailable?: {\n dates?: DateTime[];\n daysOfWeek?: WeekdayNumbers[];\n };\n timezone?: IanaZone;\n};\n\n/**\n * Adapts the field's UTC range to Calendar's zoned ISO contract. Remounts on\n * value change and parks focus so host popovers do not close on end-pick.\n */\nexport const DateFieldRangeCalendar = ({\n startDate,\n endDate,\n onKeyDown,\n onSelection,\n minDate,\n maxDate,\n unavailable,\n timezone: timezoneProp,\n}: DateFieldRangeCalendarProps) => {\n const previousStartDate = usePrevious(startDate);\n const previousEndDate = usePrevious(endDate);\n\n const calendarRef = useRef<HTMLDivElement>(null);\n const focusSentinelRef = useRef<HTMLDivElement>(null);\n\n const timezone: IanaZone = useMemo(() => {\n return (\n timezoneProp ??\n (Intl.DateTimeFormat().resolvedOptions().timeZone as IanaZone)\n );\n }, [timezoneProp]);\n\n // After the user selects a date, the Calendar remounts (due to the remount\n // `key` below) and focus falls to body. Restore focus to the just-picked date\n // button so consumers that keep the calendar mounted (e.g. FilterDateRange's\n // popover) don't get their focus-out handlers triggered, and keyboard users\n // don't lose their place. Two cases:\n // - start picked, no end yet → focus the start button so the user can\n // continue navigating to pick an end.\n // - end just picked → focus the end button. A host that closes the popover\n // synchronously on end-pick has already moved focus to its input by rAF\n // time, and the INPUT guard skips us out.\n // Guard: if focus is already on an INPUT (typing) or no longer inside the\n // calendar (consumer moved it elsewhere), skip — the user owns focus.\n useEffect(() => {\n const targetDateId =\n startDate && startDate !== previousStartDate && endDate === null\n ? startDate.toISODate()\n : endDate && endDate !== previousEndDate\n ? endDate.toISODate()\n : null;\n if (!targetDateId) return;\n\n // When typing, the input retains focus. When selecting via calendar keyboard\n // or mouse, the Calendar remounts and focus falls to body. Only restore in\n // the latter case. In Shadow DOM, document.activeElement is the host —\n // traverse into the shadow root to find the actual focused element.\n const root = (calendarRef.current?.getRootNode() ?? document) as\n | Document\n | ShadowRoot;\n const deepActiveEl =\n root.activeElement?.shadowRoot?.activeElement ?? root.activeElement;\n if (deepActiveEl?.tagName === \"INPUT\") return;\n requestAnimationFrame(() => {\n // Re-check the input guard inside rAF: a host that closes the popover\n // synchronously on end-pick will have moved focus to its input by now.\n const rootNow = (calendarRef.current?.getRootNode() ?? document) as\n | Document\n | ShadowRoot;\n const activeNow =\n rootNow.activeElement?.shadowRoot?.activeElement ??\n rootNow.activeElement;\n if (activeNow?.tagName === \"INPUT\") return;\n calendarRef.current\n ?.querySelector<HTMLButtonElement>(`button[id$=\"${targetDateId}\"]`)\n ?.focus();\n });\n }, [startDate, endDate, previousStartDate, previousEndDate]);\n\n const handleCalendarSelection = (data: { value: CalendarRangeValue }) => {\n if (!data.value) return;\n const calStartDate = data.value.start\n ? isoToUtcDate(data.value.start)\n : null;\n const calEndDate = data.value.end ? isoToUtcDate(data.value.end) : null;\n // Park focus on a stable sentinel inside this component *before* the state\n // update so the Calendar's key-remount doesn't drop focus to body. Without\n // this, host containers that listen for focus-out (e.g. OptionsPopover)\n // close prematurely on end-date pick. The post-remount effect below then\n // restores focus to the just-picked date button via rAF.\n focusSentinelRef.current?.focus();\n onSelection({\n startDate: calStartDate,\n endDate: calEndDate,\n });\n };\n\n const defaultFocusedDate = useMemo(() => {\n const todayISODate = DateTime.now().setZone(timezone).toISODate();\n if (!startDate && !endDate) return todayISODate;\n if (!startDate) return endDate?.toISODate();\n if (!endDate) return startDate?.toISODate();\n if (endDate && !previousEndDate?.equals(endDate)) {\n return endDate.toISODate();\n } else if (startDate && !previousStartDate?.equals(startDate)) {\n return startDate.toISODate();\n }\n\n if (endDate) return endDate.toISODate();\n if (startDate) return startDate.toISODate();\n return todayISODate;\n }, [previousStartDate, previousEndDate, startDate, endDate, timezone]);\n\n return (\n <>\n <div\n ref={focusSentinelRef}\n tabIndex={-1}\n aria-hidden=\"true\"\n style={{ outline: \"none\", position: \"absolute\", width: 0, height: 0 }}\n />\n <Calendar\n ref={calendarRef}\n // Remount when the range changes; Calendar does not otherwise pick up a new value.\n key={`${startDate?.toISODate()}-${endDate?.toISODate()}`}\n range={true}\n onKeyDown={onKeyDown}\n defaultFocusedDate={defaultFocusedDate}\n value={{\n start: startDate?.toISODate() || undefined,\n end: endDate?.toISODate() || undefined,\n }}\n onSelection={handleCalendarSelection}\n defaultTimeZone={timezone ?? \"UTC\"}\n minDate={minDate?.toISODate() ?? undefined}\n maxDate={maxDate?.toISODate() ?? undefined}\n unavailable={\n unavailable\n ? {\n dates: unavailable.dates?.map((d) => d.toISODate() ?? \"\"),\n daysOfWeek: unavailable.daysOfWeek,\n }\n : undefined\n }\n _disableAutofocus\n _disableFocus\n />\n <TimezoneMessage timezone={timezone} />\n </>\n );\n};\n","import { COMMON_PART } from \"../../internal/constants/anvParts\";\n\n/**\n * `data-anv-part` names for DateFieldRange's interactive sub-elements.\n *\n * The calendar and popover render in the top layer outside the input subtree,\n * so consumers must target their part attributes directly.\n */\nexport const PARTS = {\n input: COMMON_PART.dateInput,\n popover: COMMON_PART.popover,\n calendar: COMMON_PART.dateCalendar,\n} as const;\n","import type { DateTime } from \"luxon\";\nimport { validateDate } from \"../../DateFieldSingle/internal/utils\";\n\ntype DateConstraints = {\n unavailable?: {\n dates?: DateTime[];\n daysOfWeek?: number[];\n };\n minDate?: DateTime;\n maxDate?: DateTime;\n};\n\n/**\n * Empty ranges pass unless `required`. Otherwise both ends must exist, satisfy\n * availability and min/max, and start must not be after end.\n */\nexport function validateDateRange({\n required,\n startDate,\n endDate,\n startDateConstraints,\n endDateConstraints,\n}: {\n required?: boolean;\n startDate: DateTime | null;\n endDate: DateTime | null;\n startDateConstraints: DateConstraints;\n endDateConstraints: DateConstraints;\n}) {\n if (!required && !startDate && !endDate) return true;\n return (\n validateDate({\n date: startDate,\n constraints: { ...startDateConstraints, required: true },\n }) &&\n validateDate({\n date: endDate,\n constraints: { ...endDateConstraints, required: true },\n }) &&\n (!startDate || !endDate || startDate <= endDate)\n );\n}\n","import { childrenToString } from \"../../internal/functions\";\nimport { useTrackingId } from \"../../hooks\";\nimport type { DataAttributes, DataTrackingId, IanaZone } from \"../../types\";\nimport { ANV_PART_ATTR } from \"../../internal/constants/anvParts\";\nimport { PARTS } from \"./parts\";\nimport {\n MaskedDateRangeInput,\n type MaskedDateRangeInputProps,\n type MaskedDateRangeInputRef,\n} from \"./internal/MaskedDateRangeInput\";\nimport type { DateMode } from \"../DateFieldSingle/types\";\nimport { DateFieldRangeCalendar } from \"./internal/DateFieldRangeCalendar\";\nimport { type Ref, useEffect, useMemo, useRef } from \"react\";\nimport { useDateFieldRangeConversion } from \"./internal/useDateFieldRangeConversion\";\nimport {\n type DateFieldRangeStateChange,\n useDateFieldRangeState,\n} from \"./internal/useDateFieldRangeState\";\nimport { useFocusWithin } from \"../../internal/hooks\";\nimport { validateDateRange } from \"./internal/utils\";\nimport Popover from \"../../internal/components/Popover\";\nimport { mergeRefs } from \"../../hooks/useMergeRefs/useMergeRefs\";\n\nexport type DateFieldRangeChange = {\n /**\n * Last committed start as an ISO calendar date, or `null` when that end is\n * empty or has never completed a date.\n */\n startDate: string | null;\n /** Last committed end as an ISO calendar date, or `null` when that half is empty. */\n endDate: string | null;\n /** Whether both ends form complete dates; independent of date constraints. */\n isInputValid: boolean;\n /** Whether no date digits remain after removing the mask placeholder. */\n isInputEmpty: boolean;\n /**\n * Whether both ends satisfy required, availability, and min/max constraints\n * and start is not after end. Independent of input completeness. An empty\n * range is valid unless `required`.\n */\n isDateRangeValid: boolean;\n};\n\n/** Receives the current range and both layers of validity. */\nexport type DateFieldRangeChangeHandler = (\n change: DateFieldRangeChange,\n) => void;\n\n/** Start and end ISO calendar dates, or `null` to clear both ends. */\nexport type DateFieldRangeValue = {\n startDate: string | null;\n endDate: string | null;\n} | null;\n\nexport type DateFieldRangeProps = Omit<\n MaskedDateRangeInputProps,\n | \"onChange\"\n | \"value\"\n | \"autoComplete\"\n | \"onClick\"\n | \"onKeyDown\"\n | \"ref\"\n | \"required\"\n | \"startDate\"\n | \"endDate\"\n | \"defaultValue\"\n | \"onFocus\"\n | \"onBlur\"\n> & {\n /** Controlled ISO 8601 date range. Pass `null` to clear both ends. */\n value?: DateFieldRangeValue;\n /** Initial ISO 8601 date range for uncontrolled use. */\n defaultValue?: DateFieldRangeValue;\n /** Reports the range plus separate input-format and constraint validity. */\n onChange?: DateFieldRangeChangeHandler;\n /** Order of the date segments. Defaults to `mm/dd/yyyy`. */\n mode?: Extract<DateMode, \"mm/dd/yyyy\" | \"dd/mm/yyyy\">;\n /** Hides the expected-format hint below the input. */\n disableHint?: boolean;\n /** Renders only the masked input without its popover calendar. */\n disableCalendar?: boolean;\n /** Dates and recurring weekdays excluded from selection and validation. */\n unavailable?: {\n /** ISO 8601 dates excluded from selection. */\n dates?: string[];\n /** Luxon weekday numbers excluded every week; Monday is 1 and Sunday is 7. */\n daysOfWeek?: (1 | 2 | 3 | 4 | 5 | 6 | 7)[];\n };\n /** Earliest valid ISO 8601 date for either end. */\n minDate?: string;\n /** Latest valid ISO 8601 date for either end. */\n maxDate?: string;\n /** Makes an empty range fail constraint validation. */\n required?: boolean;\n onFocus?: (event: React.FocusEvent) => void;\n onBlur?: (event: React.FocusEvent) => void;\n /**\n * IANA zone for the calendar's Today action and, when the field has no value,\n * its initially visible month. A message identifies a zone that differs from\n * the browser's.\n */\n timezone?: IanaZone;\n} & DataTrackingId &\n DataAttributes;\n\n/**\n * Masked start/end date field with an optional popover calendar. Reports input\n * completeness separately from range-constraint validity.\n */\nexport const DateFieldRange = (props: DateFieldRangeProps) => {\n const { aiMark, ...labelPropsWithoutAiMark } = props.labelProps || {};\n\n const data = {\n label: childrenToString(props.label),\n labelProps: labelPropsWithoutAiMark,\n description: childrenToString(props.description),\n };\n\n const trackingId = useTrackingId({\n name: \"DateFieldRange\",\n data,\n hasOverride: !!props[\"data-tracking-id\"],\n });\n\n const {\n onFocus,\n onBlur,\n disableCalendar,\n required,\n mode,\n label,\n value: valueProp,\n defaultValue: defaultValueProp,\n minDate: minDateProp,\n maxDate: maxDateProp,\n unavailable: unavailableProp,\n onChange: onChangeProp,\n timezone,\n disabled,\n ...rest\n } = props;\n\n const popoverRef = useRef<{\n openPopover: () => void;\n closePopover: () => void;\n }>(null);\n\n useEffect(() => {\n if (disabled) {\n popoverRef.current?.closePopover();\n }\n }, [disabled]);\n\n const handleInputKeyDown = (ev: React.KeyboardEvent<HTMLInputElement>) => {\n if (ev.key === \"ArrowDown\") {\n ev.preventDefault();\n popoverRef.current?.openPopover();\n requestAnimationFrame(() => {\n popoverContentRef.current?.querySelector(\"button\")?.focus();\n });\n }\n };\n\n const { props: wrapperProps } = useFocusWithin({\n onBlur: (e) => {\n onBlur?.(e);\n popoverRef.current?.closePopover();\n },\n onFocus: onFocus,\n });\n\n const { value, defaultValue, minDate, maxDate, unavailable, onChange } =\n useDateFieldRangeConversion({\n value: valueProp,\n defaultValue: defaultValueProp,\n minDate: minDateProp,\n maxDate: maxDateProp,\n unavailable: unavailableProp,\n onChange: onChangeProp,\n });\n\n const inputRef = useRef<MaskedDateRangeInputRef>(null);\n const popoverContentRef = useRef<HTMLDivElement>(null);\n\n const handleChange = (change: DateFieldRangeStateChange) => {\n const sharedConstraints = {\n unavailable,\n minDate: minDate ?? undefined,\n maxDate: maxDate ?? undefined,\n };\n\n onChange?.({\n startDate: change.startDate?.startOf(\"day\") ?? null,\n endDate: change.endDate?.startOf(\"day\") ?? null,\n isInputValid: change.isInputValid,\n isInputEmpty: change.isInputEmpty,\n isDateRangeValid: validateDateRange({\n required: required,\n startDate: change.startDate?.startOf(\"day\") ?? null,\n endDate: change.endDate?.startOf(\"day\") ?? null,\n startDateConstraints: sharedConstraints,\n endDateConstraints: sharedConstraints,\n }),\n });\n };\n\n const { startDate, endDate, handleInputChange, handleCalendarSelection } =\n useDateFieldRangeState({\n valueProp: value,\n defaultValueProp: defaultValue,\n onChange: handleChange,\n });\n\n const currentValidity = useMemo(() => {\n return validateDateRange({\n required,\n startDate,\n endDate,\n startDateConstraints: {\n unavailable,\n minDate: minDate ?? undefined,\n maxDate: maxDate ?? undefined,\n },\n endDateConstraints: {\n unavailable,\n minDate: minDate ?? undefined,\n maxDate: maxDate ?? undefined,\n },\n });\n }, [required, startDate, endDate, minDate, maxDate, unavailable]);\n\n const commonFieldProps = {\n ...rest,\n disabled,\n mode,\n label,\n onChange: handleInputChange,\n startDate: startDate ?? null,\n endDate: endDate ?? null,\n required,\n autoComplete: \"off\",\n \"data-anv\": \"date-field-range\",\n \"data-date-range-valid\": currentValidity,\n \"data-tracking-id\": trackingId,\n [ANV_PART_ATTR]: PARTS.input,\n \"aria-label\": label ? undefined : \"Select a date range\",\n };\n\n const justTheField = (\n <MaskedDateRangeInput {...commonFieldProps} ref={inputRef} />\n );\n\n if (disableCalendar) {\n return justTheField;\n }\n\n return (\n <div {...wrapperProps}>\n <Popover ref={popoverRef} placement=\"bottom-start\" role=\"grid\">\n <Popover.Trigger>\n {({ ref: iRef, onKeyDown }) => {\n const mergedRef = mergeRefs([\n inputRef,\n iRef as Ref<HTMLInputElement>,\n ]);\n return (\n <MaskedDateRangeInput\n {...commonFieldProps}\n ref={mergedRef}\n onKeyDown={(ev) => {\n onKeyDown?.(ev);\n handleInputKeyDown(ev);\n }}\n onClick={() => popoverRef.current?.openPopover()}\n onFocus={onFocus}\n onBlur={onBlur}\n />\n );\n }}\n </Popover.Trigger>\n <Popover.Content\n ref={popoverContentRef}\n data-testid=\"calendar-popover\"\n {...{ [ANV_PART_ATTR]: PARTS.popover }}\n >\n {/* DateFieldRangeCalendar does not forward arbitrary props, so the\n part attribute goes on a wrapping element. */}\n <div {...{ [ANV_PART_ATTR]: PARTS.calendar }}>\n <DateFieldRangeCalendar\n startDate={startDate}\n endDate={endDate}\n onSelection={(v) => {\n if (v.endDate) {\n inputRef.current?.focus();\n popoverRef.current?.closePopover();\n }\n handleCalendarSelection(v);\n }}\n minDate={minDate}\n maxDate={maxDate}\n unavailable={unavailable}\n timezone={timezone}\n />\n </div>\n </Popover.Content>\n </Popover>\n </div>\n );\n};\n\nDateFieldRange.displayName = \"DateFieldRange\";\n"],"names":["datePlaceholderMask","dateRangePlaceholderMask","startDate","endDate","Event"],"mappings":";;;;;;;;;;;;;;;;;AAeA,MAAM,sBAAsB,CAAC;AAAA,EAC3B,IAAA;AAAA,EACA,aAAA,GAAgB,GAAA;AAAA,EAChB,cAAA,GAAiB,KAAA;AAAA,EACjB;AACF,CAAA,KAKM;AACJ,EAAA,MAAM,mBAAmB,gCAAA,CAAiC;AAAA,IACxD,IAAA;AAAA,IACA,aAAA;AAAA,IACA;AAAA,GACD,CAAA;AAED,EAAA,MAAM,EAAE,OAAA,EAAS,iBAAA,EAAmB,GAAG,kBAAA,EAAmB,GACxD,uBAAuB,WAAW,CAAA;AAEpC,EAAA,MAAMA,oBAAAA,GAAsB;AAAA,IAC1B,GAAG,gBAAA;AAAA,IACH,SAAS,OAAA,CAAQ,MAAA,CAAO,gBAAA,CAAiB,OAAA,IAAW,EAAE,CAAA;AAAA,IACtD,aAAA,EAAe;AAAA,MACb,GAAG,kBAAA,CAAmB,aAAA;AAAA,MACtB,GAAG,gBAAA,CAAiB,aAAA;AAAA,MACpB,4BAAA,CAA6B,aAAa,aAAa;AAAA,KACzD;AAAA,IACA,cAAA,EAAgB;AAAA;AAAA;AAAA;AAAA,MAId,GAAG,gBAAA,CAAiB,cAAA,CAAe,KAAA,CAAM,GAAG,EAAE,CAAA;AAAA,MAC9C,GAAG,kBAAA,CAAmB;AAAA;AACxB,GACF;AAEA,EAAA,OAAO,EAAE,OAAA,EAASA,oBAAAA,EAAqB,iBAAA,EAAkB;AAC3D,CAAA;;AC1BA,MAAM,eAAA,GAAkB,KAAA;AA4CjB,MAAM,oBAAA,GAAuB,UAAA;AAAA,EAIlC,CACE;AAAA,IACE,QAAA;AAAA,IACA,IAAA,GAAO,YAAA;AAAA,IACP,SAAA;AAAA,IACA,OAAA;AAAA,IACA,WAAA,GAAc,KAAA;AAAA,IACd,GAAG;AAAA,KAEL,GAAA,KACG;AACH,IAAA,MAAM,eAAA,GAAkB,yBAAyB,IAAI,CAAA;AACrD,IAAA,MAAM,kBAAkB,CAAA,EAAG,eAAe,CAAA,EAAG,eAAe,GAAG,eAAe,CAAA,CAAA;AAE9E,IAAA,MAAM,CAAC,UAAA,EAAY,aAAa,CAAA,GAAI,SAAS,eAAe,CAAA;AAE5D,IAAA,MAAM,EAAE,OAAA,EAAS,iBAAA,EAAkB,GAAIC,mBAAA,CAAyB;AAAA,MAC9D,IAAA;AAAA,MACA,WAAA,EAAa,eAAA;AAAA,MACb,aAAA,EAAe,GAAA;AAAA,MACf,cAAA,EAAgB;AAAA,KACjB,CAAA;AACD,IAAA,MAAM,cAAA,GAAiB,UAAA,CAAW,EAAE,OAAA,EAAS,CAAA;AAC7C,IAAA,MAAM,QAAA,GAAW,OAAyB,IAAI,CAAA;AAC9C,IAAA,MAAM,cAAc,YAAA,CAAa,CAAC,cAAA,EAAgB,QAAA,EAAU,GAAG,CAAC,CAAA;AAChE,IAAA,MAAM,iBAAA,GAAoB,YAAY,SAAS,CAAA;AAC/C,IAAA,MAAM,eAAA,GAAkB,YAAY,OAAO,CAAA;AAC3C,IAAA,MAAM,YAAA,GAAe,YAAY,IAAI,CAAA;AAErC,IAAA,SAAA,CAAU,MAAM;AACd,MAAA,IAAI,SAAS,YAAA,EAAc;AACzB,QAAA,aAAA;AAAA,UAAc,CAAC,kBAAA,KACb,QAAA,CAAS,kBAAA,EAAoB,YAAA,IAAgB,MAAM,IAAI;AAAA,SACzD;AAAA,MACF;AAAA,IACF,CAAA,EAAG,CAAC,IAAA,EAAM,eAAA,EAAiB,YAAY,CAAC,CAAA;AAExC,IAAA,SAAA,CAAU,MAAM;AAEd,MAAA,IAAI,SAAA,KAAc,MAAA,IAAa,OAAA,KAAY,MAAA,EAAW;AACtD,MAAA,IAAI,SAAA,KAAc,qBAAqB,OAAA,KAAY,eAAA;AACjD,QAAA;AACF,MAAA;AAAA;AAAA,QAEE,SAAA,EAAW,OAAO,iBAAA,IAAqB,SAAA,EAAW,KAAK,EAAE,IAAA,EAAM,CAAA,EAAG,CAAC,CAAA,KAClE,SAAS,MAAA,CAAO,eAAA,IAAmB,SAAS,IAAA,CAAK,EAAE,MAAM,CAAA,EAAG,CAAC,CAAA,IAC5D,OAAA,KAAY,eAAA;AAAA;AAEd,QAAA;AACF,MAAA,MAAM,kBACJ,SAAA,EAAW,QAAA,CAAS,mBAAA,CAAoB,IAAI,CAAC,CAAA,IAAK,eAAA;AACpD,MAAA,MAAM,gBACJ,OAAA,EAAS,QAAA,CAAS,mBAAA,CAAoB,IAAI,CAAC,CAAA,IAAK,eAAA;AAClD,MAAA,MAAM,gBAAgB,CAAA,EAAG,eAAe,CAAA,EAAG,eAAe,GAAG,aAAa,CAAA,CAAA;AAC1E,MAAA,aAAA,CAAc,aAAa,CAAA;AAAA,IAC7B,CAAA,EAAG;AAAA,MACD,SAAA;AAAA,MACA,OAAA;AAAA,MACA,IAAA;AAAA,MACA,eAAA;AAAA,MACA,iBAAA;AAAA,MACA;AAAA,KACD,CAAA;AAED,IAAA,MAAM,iBAAA,GAAoB,QAAQ,MAAM;AACtC,MAAA,OAAO,oBAAA,CAAqB,UAAA,EAAY,IAAA,EAAM,iBAAiB,CAAA;AAAA,IACjE,CAAA,EAAG,CAAC,UAAA,EAAY,IAAA,EAAM,iBAAiB,CAAC,CAAA;AAExC,IAAA,MAAM,YAAA,GAAe,CAAC,KAAA,KAA+C;AACnE,MAAA,aAAA,CAAc,KAAA,CAAM,OAAO,KAAK,CAAA;AAChC,MAAA,MAAM;AAAA,QACJ,SAAA,EAAW,oBAAA;AAAA,QACX,OAAA,EAAS,kBAAA;AAAA,QACT,YAAA;AAAA,QACA,YAAA;AAAA,QACA;AAAA,UACE,oBAAA,CAAqB,KAAA,CAAM,MAAA,CAAO,KAAA,EAAO,MAAM,iBAAiB,CAAA;AAEpE,MAAA,MAAM,mBACJ,YAAA,KAAiB,iBAAA,CAAkB,gBACnC,YAAA,KAAiB,iBAAA,CAAkB,gBAClC,oBAAA,KAAyB,IAAA,MACvB,iBAAA,CAAkB,SAAA,KAAc,SAClC,kBAAA,KAAuB,IAAA,MACrB,kBAAkB,OAAA,KAAY,IAAA,CAAA,IACjC,gBAAgB,iBAAA,CAAkB,WAAA,IACjC,oBAAA,KAAyB,IAAA,IACxB,kBAAkB,SAAA,KAAc,IAAA,IAChC,CAAC,oBAAA,CAAqB,MAAA,CAAO,kBAAkB,SAAS,CAAA,IACzD,kBAAA,KAAuB,IAAA,IACtB,kBAAkB,OAAA,KAAY,IAAA,IAC9B,CAAC,kBAAA,CAAmB,MAAA,CAAO,kBAAkB,OAAO,CAAA;AAExD,MAAA,IAAI,CAAC,gBAAA,EAAkB;AACvB,MAAA,QAAA,GAAW;AAAA,QACT,SAAA,EAAW,YAAA,GACP,IAAA,GACC,oBAAA,IAAwB,SAAA,IAAa,IAAA;AAAA,QAC1C,OAAA,EACE,YAAA,IAAgB,WAAA,GACZ,IAAA,GACC,sBAAsB,OAAA,IAAW,IAAA;AAAA,QACxC,YAAA;AAAA,QACA;AAAA,OACD,CAAA;AAAA,IACH,CAAA;AAEA,IAAA,mBAAA,CAAoB,KAAK,MAAM;AAC7B,MAAA,MAAM,QAAQ,QAAA,CAAS,OAAA;AACvB,MAAA,IAAI,CAAC,OAAO,OAAO,IAAA;AACnB,MAAA,OAAO,MAAA,CAAO,OAAO,KAAA,EAAO;AAAA,QAC1B,YAAA,EAAc,CACZC,UAAAA,EACAC,QAAAA,KACG;AACH,UAAA,MAAM,kBAAkBD,UAAAA,EAAW,QAAA;AAAA,YACjC,oBAAoB,IAAI;AAAA,WAC1B;AACA,UAAA,MAAM,aAAA,GAAgBC,QAAAA,EAAS,QAAA,CAAS,mBAAA,CAAoB,IAAI,CAAC,CAAA;AACjE,UAAA,MAAM,aAAA,GAAgB,GAAG,eAAA,IAAmB,eAAe,GAAG,eAAe,CAAA,EAAG,iBAAiB,eAAe,CAAA,CAAA;AAChH,UAAA,aAAA,CAAc,aAAa,CAAA;AAAA,QAC7B;AAAA,OACD,CAAA;AAAA,IACH,CAAA,EAAG,CAAC,IAAA,EAAM,eAAe,CAAC,CAAA;AAE1B,IAAA;AAAA;AAAA,sBAEE,GAAA;AAAA,QAAC,SAAA;AAAA,QAAA;AAAA,UACC,GAAA,EAAK,WAAA;AAAA,UACL,iBAAA,EAAiB,SAAA,EAAW,SAAA,EAAU,IAAK,EAAA;AAAA,UAC3C,eAAA,EAAe,OAAA,EAAS,SAAA,EAAU,IAAK,EAAA;AAAA,UACvC,oBAAkB,iBAAA,CAAkB,YAAA;AAAA,UACpC,oBAAkB,iBAAA,CAAkB,YAAA;AAAA,UACnC,GAAG,KAAA;AAAA,UACJ,WAAA,EAAa,KAAA;AAAA,UACb,KAAA,EAAO,UAAA;AAAA,UACP,QAAA,EAAU,YAAA;AAAA,UACV,MAAA,kBAAQ,GAAA,CAAC,IAAA,EAAA,EAAK,GAAA,EAAKC,QAAA,EAAO,CAAA;AAAA,UAC1B,IAAA,EAAM,WAAA,GAAc,MAAA,GAAY,CAAA,QAAA,EAAW,IAAI,CAAA;AAAA;AAAA;AACjD;AAAA,EAEJ;AACF;AAEA,oBAAA,CAAqB,WAAA,GAAc,sBAAA;AAEnC,SAAS,oBAAA,CACP,KAAA,EACA,IAAA,EACA,iBAAA,EACA;AACA,EAAA,MAAM,qBAAA,GAAwB,kBAAkB,KAAK,CAAA;AACrD,EAAA,MAAM,CAAC,SAAA,EAAW,OAAO,CAAA,GAAI,qBAAA,CAAsB,MAAM,eAAe,CAAA;AACxE,EAAA,MAAM,WAAA,GAAc,gBAAA,CAAiB,SAAA,EAAW,EAAE,MAAM,CAAA;AACxD,EAAA,MAAM,YAAY,OAAA,GAAU,gBAAA,CAAiB,SAAS,EAAE,IAAA,EAAM,CAAA,GAAI,IAAA;AAClE,EAAA,MAAM,cAAA,GAAiB,WAAA,GAAc,mBAAA,CAAoB,WAAW,CAAA,GAAI,IAAA;AACxE,EAAA,MAAM,YAAA,GAAe,SAAA,GAAY,mBAAA,CAAoB,SAAS,CAAA,GAAI,IAAA;AAClE,EAAA,OAAO;AAAA,IACL,SAAA,EAAW,cAAA;AAAA,IACX,OAAA,EAAS,YAAA;AAAA,IACT,YAAA,EAAc,CAAC,EAAE,cAAA,IAAkB,YAAA,CAAA;AAAA,IACnC,cAAc,qBAAA,KAA0B,EAAA;AAAA,IACxC,aAAa,OAAA,KAAY;AAAA,GAC3B;AACF;AAEA,SAAS,QAAA,CAAS,WAAA,EAAqB,YAAA,EAAwB,IAAA,EAAgB;AAC7E,EAAA,MAAM,MAAA,GAAS,WAAA,CAAY,KAAA,CAAM,eAAe,CAAA;AAChD,EAAA,MAAM,QAAA,GAAW,OAAO,GAAA,CAAI,CAAC,SAAS,IAAA,CAAK,KAAA,CAAM,GAAG,CAAC,CAAA;AAErD,EAAA,IAAI,QAAA,EAAU,UAAA,EAAY,SAAA,EAAW,MAAA,EAAQ,QAAA,EAAU,OAAA;AACvD,EAAA,IAAI,iBAAiB,YAAA,EAAc;AACjC,IAAA,QAAA,GAAW,QAAA,CAAS,CAAC,CAAA,CAAE,CAAC,CAAA;AACxB,IAAA,UAAA,GAAa,QAAA,CAAS,CAAC,CAAA,CAAE,CAAC,CAAA;AAC1B,IAAA,SAAA,GAAY,QAAA,CAAS,CAAC,CAAA,CAAE,CAAC,CAAA;AACzB,IAAA,MAAA,GAAS,QAAA,CAAS,CAAC,CAAA,CAAE,CAAC,CAAA;AACtB,IAAA,QAAA,GAAW,QAAA,CAAS,CAAC,CAAA,CAAE,CAAC,CAAA;AACxB,IAAA,OAAA,GAAU,QAAA,CAAS,CAAC,CAAA,CAAE,CAAC,CAAA;AAAA,EACzB;AACA,EAAA,IAAI,iBAAiB,YAAA,EAAc;AACjC,IAAA,QAAA,GAAW,QAAA,CAAS,CAAC,CAAA,CAAE,CAAC,CAAA;AACxB,IAAA,UAAA,GAAa,QAAA,CAAS,CAAC,CAAA,CAAE,CAAC,CAAA;AAC1B,IAAA,SAAA,GAAY,QAAA,CAAS,CAAC,CAAA,CAAE,CAAC,CAAA;AACzB,IAAA,MAAA,GAAS,QAAA,CAAS,CAAC,CAAA,CAAE,CAAC,CAAA;AACtB,IAAA,QAAA,GAAW,QAAA,CAAS,CAAC,CAAA,CAAE,CAAC,CAAA;AACxB,IAAA,OAAA,GAAU,QAAA,CAAS,CAAC,CAAA,CAAE,CAAC,CAAA;AAAA,EACzB;AACA,EAAA,IAAI,iBAAiB,YAAA,EAAc;AACjC,IAAA,QAAA,GAAW,QAAA,CAAS,CAAC,CAAA,CAAE,CAAC,CAAA;AACxB,IAAA,UAAA,GAAa,QAAA,CAAS,CAAC,CAAA,CAAE,CAAC,CAAA;AAC1B,IAAA,SAAA,GAAY,QAAA,CAAS,CAAC,CAAA,CAAE,CAAC,CAAA;AACzB,IAAA,MAAA,GAAS,QAAA,CAAS,CAAC,CAAA,CAAE,CAAC,CAAA;AACtB,IAAA,QAAA,GAAW,QAAA,CAAS,CAAC,CAAA,CAAE,CAAC,CAAA;AACxB,IAAA,OAAA,GAAU,QAAA,CAAS,CAAC,CAAA,CAAE,CAAC,CAAA;AAAA,EACzB;AAEA,EAAA,IAAI,SAAS,YAAA,EAAc;AACzB,IAAA,OAAO,CAAA,EAAG,UAAU,CAAA,CAAA,EAAI,QAAQ,CAAA,CAAA,EAAI,SAAS,CAAA,EAAG,eAAe,CAAA,EAAG,QAAQ,CAAA,CAAA,EAAI,MAAM,IAAI,OAAO,CAAA,CAAA;AAAA,EACjG;AACA,EAAA,IAAI,SAAS,YAAA,EAAc;AACzB,IAAA,OAAO,CAAA,EAAG,QAAQ,CAAA,CAAA,EAAI,UAAU,CAAA,CAAA,EAAI,SAAS,CAAA,EAAG,eAAe,CAAA,EAAG,MAAM,CAAA,CAAA,EAAI,QAAQ,IAAI,OAAO,CAAA,CAAA;AAAA,EACjG;AACA,EAAA,IAAI,SAAS,YAAA,EAAc;AACzB,IAAA,OAAO,CAAA,EAAG,SAAS,CAAA,CAAA,EAAI,UAAU,CAAA,CAAA,EAAI,QAAQ,CAAA,EAAG,eAAe,CAAA,EAAG,OAAO,CAAA,CAAA,EAAI,QAAQ,IAAI,MAAM,CAAA,CAAA;AAAA,EACjG;AAEA,EAAA,OAAO,WAAA;AACT;;ACjRO,MAAM,2BAAA,GAA8B,CAAC,KAAA,KAA+B;AACzE,EAAA,MAAM,EAAE,KAAA,EAAO,YAAA,EAAc,SAAS,OAAA,EAAS,WAAA,EAAa,UAAS,GACnE,KAAA;AAEF,EAAA,MAAM,eAAA,GAAkB,QAAQ,MAAM;AACpC,IAAA,IAAI,KAAA,KAAU,IAAA,IAAQ,KAAA,KAAU,MAAA,EAAW,OAAO,KAAA;AAClD,IAAA,OAAO;AAAA,MACL,SAAA,EAAW,mBAAA,CAAoB,KAAA,CAAM,SAAS,CAAA,IAAK,IAAA;AAAA,MACnD,OAAA,EAAS,mBAAA,CAAoB,KAAA,CAAM,OAAO,CAAA,IAAK;AAAA,KACjD;AAAA,EACF,CAAA,EAAG,CAAC,KAAK,CAAC,CAAA;AAEV,EAAA,MAAM,sBAAA,GAAyB,QAAQ,MAAM;AAC3C,IAAA,IAAI,YAAA,KAAiB,QAAQ,YAAA,KAAiB,MAAA;AAC5C,MAAA,OAAO,YAAA;AACT,IAAA,OAAO;AAAA,MACL,SAAA,EAAW,mBAAA,CAAoB,YAAA,CAAa,SAAS,CAAA,IAAK,IAAA;AAAA,MAC1D,OAAA,EAAS,mBAAA,CAAoB,YAAA,CAAa,OAAO,CAAA,IAAK;AAAA,KACxD;AAAA,EACF,CAAA,EAAG,CAAC,YAAY,CAAC,CAAA;AAEjB,EAAA,MAAM,iBAAA,GAAoB,OAAA;AAAA,IACxB,MAAM,oBAAoB,OAAO,CAAA;AAAA,IACjC,CAAC,OAAO;AAAA,GACV;AACA,EAAA,MAAM,iBAAA,GAAoB,OAAA;AAAA,IACxB,MAAM,oBAAoB,OAAO,CAAA;AAAA,IACjC,CAAC,OAAO;AAAA,GACV;AAEA,EAAA,MAAM,0BAAA,GAA6B,QAAQ,MAAM;AAC/C,IAAA,OAAO,WAAA,EAAa,KAAA,EAChB,GAAA,CAAI,CAAC,SAAS,mBAAA,CAAoB,IAAI,CAAC,CAAA,CACxC,OAAO,CAAC,IAAA,KAAS,IAAA,KAAS,IAAA,IAAQ,SAAS,MAAS,CAAA;AAAA,EACzD,CAAA,EAAG,CAAC,WAAA,EAAa,KAAK,CAAC,CAAA;AAEvB,EAAA,MAAM,YAAA,GAAe,WAAA;AAAA,IACnB,CACE,MAAA,KAIG;AACH,MAAA,QAAA,GAAW;AAAA,QACT,GAAG,MAAA;AAAA,QACH,SAAA,EAAW,MAAA,CAAO,SAAA,EAAW,SAAA,EAAU,IAAK,IAAA;AAAA,QAC5C,OAAA,EAAS,MAAA,CAAO,OAAA,EAAS,SAAA,EAAU,IAAK;AAAA,OACzC,CAAA;AAAA,IACH,CAAA;AAAA,IACA,CAAC,QAAQ;AAAA,GACX;AAEA,EAAA,OAAO;AAAA,IACL,KAAA,EAAO,eAAA;AAAA,IACP,YAAA,EAAc,sBAAA;AAAA,IACd,OAAA,EAAS,iBAAA;AAAA,IACT,OAAA,EAAS,iBAAA;AAAA,IACT,WAAA,EAAa;AAAA,MACX,KAAA,EAAO,0BAAA;AAAA,MACP,YAAY,WAAA,EAAa;AAAA,KAC3B;AAAA,IACA,QAAA,EAAU;AAAA,GACZ;AACF;;ACnBO,SAAS,sBAAA,CAAuB;AAAA,EACrC,SAAA;AAAA,EACA,gBAAA;AAAA,EACA;AACF,CAAA,EAAkD;AAChD,EAAA,MAAM,CAAC,SAAA,EAAW,YAAY,CAAA,GAC5B,4BAAA,CAA8C;AAAA,IAC5C,eAAA,EACE,SAAA,KAAc,MAAA,GAAY,SAAA,EAAW,SAAA,GAAY,MAAA;AAAA,IACnD,YAAA,EACE,gBAAA,KAAqB,MAAA,GACjB,gBAAA,EAAkB,SAAA,GAClB;AAAA,GACP,CAAA;AACH,EAAA,MAAM,CAAC,OAAA,EAAS,UAAU,CAAA,GAAI,4BAAA,CAA8C;AAAA,IAC1E,eAAA,EAAiB,SAAA,KAAc,MAAA,GAAY,SAAA,EAAW,OAAA,GAAU,MAAA;AAAA,IAChE,YAAA,EACE,gBAAA,KAAqB,MAAA,GAAY,gBAAA,EAAkB,OAAA,GAAU;AAAA,GAChE,CAAA;AAED,EAAA,MAAM,cAAA,GAAiB,CAAC,KAAA,KAGlB;AACJ,IAAA,YAAA,CAAa,MAAM,SAAS,CAAA;AAC5B,IAAA,UAAA,CAAW,MAAM,OAAO,CAAA;AAAA,EAC1B,CAAA;AAEA,EAAA,MAAM,iBAAA,GAAoB,CAAC,MAAA,KAAuC;AAChE,IAAA,MAAM,KAAA,GAAQ,MAAA,CAAO,YAAA,GACjB,IAAA,GACA;AAAA,MACE,SAAA,EAAW,MAAA,CAAO,SAAA,EAAW,OAAA,CAAQ,KAAK,CAAA,IAAK,IAAA;AAAA,MAC/C,OAAA,EAAS,MAAA,CAAO,OAAA,EAAS,OAAA,CAAQ,KAAK,CAAA,IAAK;AAAA,KAC7C;AAEJ,IAAA,QAAA,GAAW;AAAA,MACT,SAAA,EAAW,OAAO,SAAA,IAAa,IAAA;AAAA,MAC/B,OAAA,EAAS,OAAO,OAAA,IAAW,IAAA;AAAA,MAC3B,cAAc,MAAA,CAAO,YAAA;AAAA,MACrB,cAAc,MAAA,CAAO;AAAA,KACtB,CAAA;AAED,IAAA,YAAA,CAAa,KAAA,EAAO,aAAa,IAAI,CAAA;AACrC,IAAA,UAAA,CAAW,KAAA,EAAO,WAAW,IAAI,CAAA;AAAA,EACnC,CAAA;AAEA,EAAA,MAAM,0BAA0B,CAAC;AAAA,IAC/B,SAAA,EAAAF,UAAAA;AAAA,IACA,OAAA,EAAAC;AAAA,GACF,KAGM;AACJ,IAAA,cAAA,CAAe,EAAE,SAAA,EAAAD,UAAAA,EAAW,OAAA,EAAAC,UAAS,CAAA;AACrC,IAAA,QAAA,GAAW;AAAA,MACT,SAAA,EAAAD,UAAAA;AAAA,MACA,OAAA,EAAAC,QAAAA;AAAA,MACA,YAAA,EAAc,IAAA;AAAA,MACd,YAAA,EAAc;AAAA,KACf,CAAA;AAAA,EACH,CAAA;AAEA,EAAA,OAAO;AAAA,IACL,SAAA;AAAA,IACA,OAAA;AAAA,IACA,YAAA;AAAA,IACA,UAAA;AAAA,IACA,iBAAA;AAAA,IACA;AAAA,GACF;AACF;;ACzFO,MAAM,yBAAyB,CAAC;AAAA,EACrC,SAAA;AAAA,EACA,OAAA;AAAA,EACA,SAAA;AAAA,EACA,WAAA;AAAA,EACA,OAAA;AAAA,EACA,OAAA;AAAA,EACA,WAAA;AAAA,EACA,QAAA,EAAU;AACZ,CAAA,KAAmC;AACjC,EAAA,MAAM,iBAAA,GAAoB,YAAY,SAAS,CAAA;AAC/C,EAAA,MAAM,eAAA,GAAkB,YAAY,OAAO,CAAA;AAE3C,EAAA,MAAM,WAAA,GAAc,OAAuB,IAAI,CAAA;AAC/C,EAAA,MAAM,gBAAA,GAAmB,OAAuB,IAAI,CAAA;AAEpD,EAAA,MAAM,QAAA,GAAqB,QAAQ,MAAM;AACvC,IAAA,OACE,YAAA,IACC,IAAA,CAAK,cAAA,EAAe,CAAE,iBAAgB,CAAE,QAAA;AAAA,EAE7C,CAAA,EAAG,CAAC,YAAY,CAAC,CAAA;AAcjB,EAAA,SAAA,CAAU,MAAM;AACd,IAAA,MAAM,YAAA,GACJ,SAAA,IAAa,SAAA,KAAc,iBAAA,IAAqB,YAAY,IAAA,GACxD,SAAA,CAAU,SAAA,EAAU,GACpB,OAAA,IAAW,OAAA,KAAY,eAAA,GACrB,OAAA,CAAQ,WAAU,GAClB,IAAA;AACR,IAAA,IAAI,CAAC,YAAA,EAAc;AAMnB,IAAA,MAAM,IAAA,GAAQ,WAAA,CAAY,OAAA,EAAS,WAAA,EAAY,IAAK,QAAA;AAGpD,IAAA,MAAM,YAAA,GACJ,IAAA,CAAK,aAAA,EAAe,UAAA,EAAY,iBAAiB,IAAA,CAAK,aAAA;AACxD,IAAA,IAAI,YAAA,EAAc,YAAY,OAAA,EAAS;AACvC,IAAA,qBAAA,CAAsB,MAAM;AAG1B,MAAA,MAAM,OAAA,GAAW,WAAA,CAAY,OAAA,EAAS,WAAA,EAAY,IAAK,QAAA;AAGvD,MAAA,MAAM,SAAA,GACJ,OAAA,CAAQ,aAAA,EAAe,UAAA,EAAY,iBACnC,OAAA,CAAQ,aAAA;AACV,MAAA,IAAI,SAAA,EAAW,YAAY,OAAA,EAAS;AACpC,MAAA,WAAA,CAAY,SACR,aAAA,CAAiC,CAAA,YAAA,EAAe,YAAY,CAAA,EAAA,CAAI,GAChE,KAAA,EAAM;AAAA,IACZ,CAAC,CAAA;AAAA,EACH,GAAG,CAAC,SAAA,EAAW,OAAA,EAAS,iBAAA,EAAmB,eAAe,CAAC,CAAA;AAE3D,EAAA,MAAM,uBAAA,GAA0B,CAAC,IAAA,KAAwC;AACvE,IAAA,IAAI,CAAC,KAAK,KAAA,EAAO;AACjB,IAAA,MAAM,YAAA,GAAe,KAAK,KAAA,CAAM,KAAA,GAC5B,aAAa,IAAA,CAAK,KAAA,CAAM,KAAK,CAAA,GAC7B,IAAA;AACJ,IAAA,MAAM,UAAA,GAAa,KAAK,KAAA,CAAM,GAAA,GAAM,aAAa,IAAA,CAAK,KAAA,CAAM,GAAG,CAAA,GAAI,IAAA;AAMnE,IAAA,gBAAA,CAAiB,SAAS,KAAA,EAAM;AAChC,IAAA,WAAA,CAAY;AAAA,MACV,SAAA,EAAW,YAAA;AAAA,MACX,OAAA,EAAS;AAAA,KACV,CAAA;AAAA,EACH,CAAA;AAEA,EAAA,MAAM,kBAAA,GAAqB,QAAQ,MAAM;AACvC,IAAA,MAAM,eAAe,QAAA,CAAS,GAAA,GAAM,OAAA,CAAQ,QAAQ,EAAE,SAAA,EAAU;AAChE,IAAA,IAAI,CAAC,SAAA,IAAa,CAAC,OAAA,EAAS,OAAO,YAAA;AACnC,IAAA,IAAI,CAAC,SAAA,EAAW,OAAO,OAAA,EAAS,SAAA,EAAU;AAC1C,IAAA,IAAI,CAAC,OAAA,EAAS,OAAO,SAAA,EAAW,SAAA,EAAU;AAC1C,IAAA,IAAI,OAAA,IAAW,CAAC,eAAA,EAAiB,MAAA,CAAO,OAAO,CAAA,EAAG;AAChD,MAAA,OAAO,QAAQ,SAAA,EAAU;AAAA,IAC3B,WAAW,SAAA,IAAa,CAAC,iBAAA,EAAmB,MAAA,CAAO,SAAS,CAAA,EAAG;AAC7D,MAAA,OAAO,UAAU,SAAA,EAAU;AAAA,IAC7B;AAEA,IAAA,IAAI,OAAA,EAAS,OAAO,OAAA,CAAQ,SAAA,EAAU;AACtC,IAAA,IAAI,SAAA,EAAW,OAAO,SAAA,CAAU,SAAA,EAAU;AAC1C,IAAA,OAAO,YAAA;AAAA,EACT,GAAG,CAAC,iBAAA,EAAmB,iBAAiB,SAAA,EAAW,OAAA,EAAS,QAAQ,CAAC,CAAA;AAErE,EAAA,uBACE,IAAA,CAAA,QAAA,EAAA,EACE,QAAA,EAAA;AAAA,oBAAA,GAAA;AAAA,MAAC,KAAA;AAAA,MAAA;AAAA,QACC,GAAA,EAAK,gBAAA;AAAA,QACL,QAAA,EAAU,EAAA;AAAA,QACV,aAAA,EAAY,MAAA;AAAA,QACZ,KAAA,EAAO,EAAE,OAAA,EAAS,MAAA,EAAQ,UAAU,UAAA,EAAY,KAAA,EAAO,CAAA,EAAG,MAAA,EAAQ,CAAA;AAAE;AAAA,KACtE;AAAA,oBACA,GAAA;AAAA,MAAC,QAAA;AAAA,MAAA;AAAA,QACC,GAAA,EAAK,WAAA;AAAA,QAGL,KAAA,EAAO,IAAA;AAAA,QACP,SAAA;AAAA,QACA,kBAAA;AAAA,QACA,KAAA,EAAO;AAAA,UACL,KAAA,EAAO,SAAA,EAAW,SAAA,EAAU,IAAK,MAAA;AAAA,UACjC,GAAA,EAAK,OAAA,EAAS,SAAA,EAAU,IAAK;AAAA,SAC/B;AAAA,QACA,WAAA,EAAa,uBAAA;AAAA,QACb,iBAAiB,QAAA,IAAY,KAAA;AAAA,QAC7B,OAAA,EAAS,OAAA,EAAS,SAAA,EAAU,IAAK,MAAA;AAAA,QACjC,OAAA,EAAS,OAAA,EAAS,SAAA,EAAU,IAAK,MAAA;AAAA,QACjC,aACE,WAAA,GACI;AAAA,UACE,KAAA,EAAO,YAAY,KAAA,EAAO,GAAA,CAAI,CAAC,CAAA,KAAM,CAAA,CAAE,SAAA,EAAU,IAAK,EAAE,CAAA;AAAA,UACxD,YAAY,WAAA,CAAY;AAAA,SAC1B,GACA,MAAA;AAAA,QAEN,iBAAA,EAAiB,IAAA;AAAA,QACjB,aAAA,EAAa;AAAA,OAAA;AAAA,MArBR,GAAG,SAAA,EAAW,SAAA,EAAW,CAAA,CAAA,EAAI,OAAA,EAAS,WAAW,CAAA;AAAA,KAsBxD;AAAA,oBACA,GAAA,CAAC,mBAAgB,QAAA,EAAoB;AAAA,GAAA,EACvC,CAAA;AAEJ;;ACxKO,MAAM,KAAA,GAAQ;AAAA,EACnB,OAAO,WAAA,CAAY,SAAA;AAAA,EACnB,SAAS,WAAA,CAAY,OAAA;AAAA,EACrB,UAAU,WAAA,CAAY;AACxB,CAAA;;ACIO,SAAS,iBAAA,CAAkB;AAAA,EAChC,QAAA;AAAA,EACA,SAAA;AAAA,EACA,OAAA;AAAA,EACA,oBAAA;AAAA,EACA;AACF,CAAA,EAMG;AACD,EAAA,IAAI,CAAC,QAAA,IAAY,CAAC,SAAA,IAAa,CAAC,SAAS,OAAO,IAAA;AAChD,EAAA,OACE,YAAA,CAAa;AAAA,IACX,IAAA,EAAM,SAAA;AAAA,IACN,WAAA,EAAa,EAAE,GAAG,oBAAA,EAAsB,UAAU,IAAA;AAAK,GACxD,KACD,YAAA,CAAa;AAAA,IACX,IAAA,EAAM,OAAA;AAAA,IACN,WAAA,EAAa,EAAE,GAAG,kBAAA,EAAoB,UAAU,IAAA;AAAK,GACtD,CAAA,KACA,CAAC,SAAA,IAAa,CAAC,WAAW,SAAA,IAAa,OAAA,CAAA;AAE5C;;ACoEO,MAAM,cAAA,GAAiB,CAAC,KAAA,KAA+B;AAC5D,EAAA,MAAM,EAAE,MAAA,EAAQ,GAAG,yBAAwB,GAAI,KAAA,CAAM,cAAc,EAAC;AAEpE,EAAA,MAAM,IAAA,GAAO;AAAA,IACX,KAAA,EAAO,gBAAA,CAAiB,KAAA,CAAM,KAAK,CAAA;AAAA,IACnC,UAAA,EAAY,uBAAA;AAAA,IACZ,WAAA,EAAa,gBAAA,CAAiB,KAAA,CAAM,WAAW;AAAA,GACjD;AAEA,EAAA,MAAM,aAAa,aAAA,CAAc;AAAA,IAC/B,IAAA,EAAM,gBAAA;AAAA,IACN,IAAA;AAAA,IACA,WAAA,EAAa,CAAC,CAAC,KAAA,CAAM,kBAAkB;AAAA,GACxC,CAAA;AAED,EAAA,MAAM;AAAA,IACJ,OAAA;AAAA,IACA,MAAA;AAAA,IACA,eAAA;AAAA,IACA,QAAA;AAAA,IACA,IAAA;AAAA,IACA,KAAA;AAAA,IACA,KAAA,EAAO,SAAA;AAAA,IACP,YAAA,EAAc,gBAAA;AAAA,IACd,OAAA,EAAS,WAAA;AAAA,IACT,OAAA,EAAS,WAAA;AAAA,IACT,WAAA,EAAa,eAAA;AAAA,IACb,QAAA,EAAU,YAAA;AAAA,IACV,QAAA;AAAA,IACA,QAAA;AAAA,IACA,GAAG;AAAA,GACL,GAAI,KAAA;AAEJ,EAAA,MAAM,UAAA,GAAa,OAGhB,IAAI,CAAA;AAEP,EAAA,SAAA,CAAU,MAAM;AACd,IAAA,IAAI,QAAA,EAAU;AACZ,MAAA,UAAA,CAAW,SAAS,YAAA,EAAa;AAAA,IACnC;AAAA,EACF,CAAA,EAAG,CAAC,QAAQ,CAAC,CAAA;AAEb,EAAA,MAAM,kBAAA,GAAqB,CAAC,EAAA,KAA8C;AACxE,IAAA,IAAI,EAAA,CAAG,QAAQ,WAAA,EAAa;AAC1B,MAAA,EAAA,CAAG,cAAA,EAAe;AAClB,MAAA,UAAA,CAAW,SAAS,WAAA,EAAY;AAChC,MAAA,qBAAA,CAAsB,MAAM;AAC1B,QAAA,iBAAA,CAAkB,OAAA,EAAS,aAAA,CAAc,QAAQ,CAAA,EAAG,KAAA,EAAM;AAAA,MAC5D,CAAC,CAAA;AAAA,IACH;AAAA,EACF,CAAA;AAEA,EAAA,MAAM,EAAE,KAAA,EAAO,YAAA,EAAa,GAAI,cAAA,CAAe;AAAA,IAC7C,MAAA,EAAQ,CAAC,CAAA,KAAM;AACb,MAAA,MAAA,GAAS,CAAC,CAAA;AACV,MAAA,UAAA,CAAW,SAAS,YAAA,EAAa;AAAA,IACnC,CAAA;AAAA,IACA;AAAA,GACD,CAAA;AAED,EAAA,MAAM,EAAE,OAAO,YAAA,EAAc,OAAA,EAAS,SAAS,WAAA,EAAa,QAAA,KAC1D,2BAAA,CAA4B;AAAA,IAC1B,KAAA,EAAO,SAAA;AAAA,IACP,YAAA,EAAc,gBAAA;AAAA,IACd,OAAA,EAAS,WAAA;AAAA,IACT,OAAA,EAAS,WAAA;AAAA,IACT,WAAA,EAAa,eAAA;AAAA,IACb,QAAA,EAAU;AAAA,GACX,CAAA;AAEH,EAAA,MAAM,QAAA,GAAW,OAAgC,IAAI,CAAA;AACrD,EAAA,MAAM,iBAAA,GAAoB,OAAuB,IAAI,CAAA;AAErD,EAAA,MAAM,YAAA,GAAe,CAAC,MAAA,KAAsC;AAC1D,IAAA,MAAM,iBAAA,GAAoB;AAAA,MACxB,WAAA;AAAA,MACA,SAAS,OAAA,IAAW,MAAA;AAAA,MACpB,SAAS,OAAA,IAAW;AAAA,KACtB;AAEA,IAAA,QAAA,GAAW;AAAA,MACT,SAAA,EAAW,MAAA,CAAO,SAAA,EAAW,OAAA,CAAQ,KAAK,CAAA,IAAK,IAAA;AAAA,MAC/C,OAAA,EAAS,MAAA,CAAO,OAAA,EAAS,OAAA,CAAQ,KAAK,CAAA,IAAK,IAAA;AAAA,MAC3C,cAAc,MAAA,CAAO,YAAA;AAAA,MACrB,cAAc,MAAA,CAAO,YAAA;AAAA,MACrB,kBAAkB,iBAAA,CAAkB;AAAA,QAClC,QAAA;AAAA,QACA,SAAA,EAAW,MAAA,CAAO,SAAA,EAAW,OAAA,CAAQ,KAAK,CAAA,IAAK,IAAA;AAAA,QAC/C,OAAA,EAAS,MAAA,CAAO,OAAA,EAAS,OAAA,CAAQ,KAAK,CAAA,IAAK,IAAA;AAAA,QAC3C,oBAAA,EAAsB,iBAAA;AAAA,QACtB,kBAAA,EAAoB;AAAA,OACrB;AAAA,KACF,CAAA;AAAA,EACH,CAAA;AAEA,EAAA,MAAM,EAAE,SAAA,EAAW,OAAA,EAAS,iBAAA,EAAmB,uBAAA,KAC7C,sBAAA,CAAuB;AAAA,IACrB,SAAA,EAAW,KAAA;AAAA,IACX,gBAAA,EAAkB,YAAA;AAAA,IAClB,QAAA,EAAU;AAAA,GACX,CAAA;AAEH,EAAA,MAAM,eAAA,GAAkB,QAAQ,MAAM;AACpC,IAAA,OAAO,iBAAA,CAAkB;AAAA,MACvB,QAAA;AAAA,MACA,SAAA;AAAA,MACA,OAAA;AAAA,MACA,oBAAA,EAAsB;AAAA,QACpB,WAAA;AAAA,QACA,SAAS,OAAA,IAAW,MAAA;AAAA,QACpB,SAAS,OAAA,IAAW;AAAA,OACtB;AAAA,MACA,kBAAA,EAAoB;AAAA,QAClB,WAAA;AAAA,QACA,SAAS,OAAA,IAAW,MAAA;AAAA,QACpB,SAAS,OAAA,IAAW;AAAA;AACtB,KACD,CAAA;AAAA,EACH,CAAA,EAAG,CAAC,QAAA,EAAU,SAAA,EAAW,SAAS,OAAA,EAAS,OAAA,EAAS,WAAW,CAAC,CAAA;AAEhE,EAAA,MAAM,gBAAA,GAAmB;AAAA,IACvB,GAAG,IAAA;AAAA,IACH,QAAA;AAAA,IACA,IAAA;AAAA,IACA,KAAA;AAAA,IACA,QAAA,EAAU,iBAAA;AAAA,IACV,WAAW,SAAA,IAAa,IAAA;AAAA,IACxB,SAAS,OAAA,IAAW,IAAA;AAAA,IACpB,QAAA;AAAA,IACA,YAAA,EAAc,KAAA;AAAA,IACd,UAAA,EAAY,kBAAA;AAAA,IACZ,uBAAA,EAAyB,eAAA;AAAA,IACzB,kBAAA,EAAoB,UAAA;AAAA,IACpB,CAAC,aAAa,GAAG,KAAA,CAAM,KAAA;AAAA,IACvB,YAAA,EAAc,QAAQ,MAAA,GAAY;AAAA,GACpC;AAEA,EAAA,MAAM,+BACJ,GAAA,CAAC,oBAAA,EAAA,EAAsB,GAAG,gBAAA,EAAkB,KAAK,QAAA,EAAU,CAAA;AAG7D,EAAA,IAAI,eAAA,EAAiB;AACnB,IAAA,OAAO,YAAA;AAAA,EACT;AAEA,EAAA,uBACE,GAAA,CAAC,KAAA,EAAA,EAAK,GAAG,YAAA,EACP,QAAA,kBAAA,IAAA,CAAC,OAAA,EAAA,EAAQ,GAAA,EAAK,UAAA,EAAY,SAAA,EAAU,cAAA,EAAe,IAAA,EAAK,MAAA,EACtD,QAAA,EAAA;AAAA,oBAAA,GAAA,CAAC,OAAA,CAAQ,SAAR,EACE,QAAA,EAAA,CAAC,EAAE,GAAA,EAAK,IAAA,EAAM,WAAU,KAAM;AAC7B,MAAA,MAAM,YAAY,SAAA,CAAU;AAAA,QAC1B,QAAA;AAAA,QACA;AAAA,OACD,CAAA;AACD,MAAA,uBACE,GAAA;AAAA,QAAC,oBAAA;AAAA,QAAA;AAAA,UACE,GAAG,gBAAA;AAAA,UACJ,GAAA,EAAK,SAAA;AAAA,UACL,SAAA,EAAW,CAAC,EAAA,KAAO;AACjB,YAAA,SAAA,GAAY,EAAE,CAAA;AACd,YAAA,kBAAA,CAAmB,EAAE,CAAA;AAAA,UACvB,CAAA;AAAA,UACA,OAAA,EAAS,MAAM,UAAA,CAAW,OAAA,EAAS,WAAA,EAAY;AAAA,UAC/C,OAAA;AAAA,UACA;AAAA;AAAA,OACF;AAAA,IAEJ,CAAA,EACF,CAAA;AAAA,oBACA,GAAA;AAAA,MAAC,OAAA,CAAQ,OAAA;AAAA,MAAR;AAAA,QACC,GAAA,EAAK,iBAAA;AAAA,QACL,aAAA,EAAY,kBAAA;AAAA,QACX,GAAG,EAAE,CAAC,aAAa,GAAG,MAAM,OAAA,EAAQ;AAAA,QAIrC,QAAA,kBAAA,GAAA,CAAC,SAAK,GAAG,EAAE,CAAC,aAAa,GAAG,KAAA,CAAM,QAAA,EAAS,EACzC,QAAA,kBAAA,GAAA;AAAA,UAAC,sBAAA;AAAA,UAAA;AAAA,YACC,SAAA;AAAA,YACA,OAAA;AAAA,YACA,WAAA,EAAa,CAAC,CAAA,KAAM;AAClB,cAAA,IAAI,EAAE,OAAA,EAAS;AACb,gBAAA,QAAA,CAAS,SAAS,KAAA,EAAM;AACxB,gBAAA,UAAA,CAAW,SAAS,YAAA,EAAa;AAAA,cACnC;AACA,cAAA,uBAAA,CAAwB,CAAC,CAAA;AAAA,YAC3B,CAAA;AAAA,YACA,OAAA;AAAA,YACA,OAAA;AAAA,YACA,WAAA;AAAA,YACA;AAAA;AAAA,SACF,EACF;AAAA;AAAA;AACF,GAAA,EACF,CAAA,EACF,CAAA;AAEJ;AAEA,cAAA,CAAe,WAAA,GAAc,gBAAA;;;;"}
|
package/dist/DateFieldRange.js
CHANGED
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
export { D as DateFieldRange } from './DateFieldRange-
|
|
1
|
+
export { D as DateFieldRange } from './DateFieldRange-BPcsS6TW.js';
|
|
2
2
|
//# sourceMappingURL=DateFieldRange.js.map
|
|
@@ -2,12 +2,12 @@ import { jsx, jsxs, Fragment } from 'react/jsx-runtime';
|
|
|
2
2
|
import { C as COMMON_PART, A as ANV_PART_ATTR } from './anvParts-DFVq7-Cm.js';
|
|
3
3
|
import { forwardRef, useState, useRef, useEffect, useMemo, useImperativeHandle, useCallback } from 'react';
|
|
4
4
|
import { m as maskitoDateOptionsGenerator, a as maskitoWithPlaceholder, u as useMaskito, b as maskitoParseDate } from './index.esm-CQXMoq5w.js';
|
|
5
|
-
import { T as TextField } from './TextField-
|
|
6
|
-
import { u as useMergeRefs, P as Popover } from './AiMark-
|
|
7
|
-
import { D as DateTime, a as Calendar } from './Calendar-
|
|
5
|
+
import { T as TextField } from './TextField-CKXSxube.js';
|
|
6
|
+
import { u as useMergeRefs, P as Popover } from './AiMark-Ca7WmL-9.js';
|
|
7
|
+
import { D as DateTime, a as Calendar } from './Calendar-BcsuV4Xv.js';
|
|
8
8
|
import { m as makeZeroShortcutPreprocessor } from './makeZeroShortcutPreprocessor-D5KWcgUA.js';
|
|
9
9
|
import { I as Icon } from './Icon-B5zwN7GD.js';
|
|
10
|
-
import { D as DateModeToPlaceholderMap, a as DateModeToFormatMap, S as SvgEvent, j as jsDateToUtcDateTime, c as convertStringToDate, T as TimezoneMessage, i as isoToUtcDate, v as validateDate } from './TimezoneMessage-
|
|
10
|
+
import { D as DateModeToPlaceholderMap, a as DateModeToFormatMap, S as SvgEvent, j as jsDateToUtcDateTime, c as convertStringToDate, T as TimezoneMessage, i as isoToUtcDate, v as validateDate } from './TimezoneMessage-DEJX87S3.js';
|
|
11
11
|
import { u as usePrevious } from './usePrevious-Bvq-5auG.js';
|
|
12
12
|
import { u as useOptionallyControlledState } from './useOptionallyControlledState-DbDuos5L.js';
|
|
13
13
|
import { m as mergeRefs } from './useMergeRefs-Dfmtq9cI.js';
|
|
@@ -470,4 +470,4 @@ const DateFieldSingle = (props) => {
|
|
|
470
470
|
DateFieldSingle.displayName = "DateFieldSingle";
|
|
471
471
|
|
|
472
472
|
export { DateFieldSingle as D, MaskedDateInput as M, useDateFieldSingleState as a, DateFieldSingleCalendar as b, useDateFieldSingleConversion as u };
|
|
473
|
-
//# sourceMappingURL=DateFieldSingle-
|
|
473
|
+
//# sourceMappingURL=DateFieldSingle-BRMhe0OM.js.map
|