@servicetitan/anvil2 3.16.1 → 3.17.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 +37 -0
- package/dist/{AiMark-BfmK30vL.js → AiMark-CYXbKuCA.js} +2 -2
- package/dist/{AiMark-BfmK30vL.js.map → AiMark-CYXbKuCA.js.map} +1 -1
- package/dist/AiMark.js +1 -1
- package/dist/{Alert-lLo1N7Tj.js → Alert-CYpl0czJ.js} +3 -3
- package/dist/{Alert-lLo1N7Tj.js.map → Alert-CYpl0czJ.js.map} +1 -1
- package/dist/Alert.js +1 -1
- package/dist/{Announcement-PfnsVVz1.js → Announcement-AN9HnhZ-.js} +2 -2
- package/dist/{Announcement-PfnsVVz1.js.map → Announcement-AN9HnhZ-.js.map} +1 -1
- package/dist/Announcement.js +1 -1
- package/dist/{Breadcrumbs-RdL4Fvmu.js → Breadcrumbs-C0CXs9Ma.js} +2 -2
- package/dist/{Breadcrumbs-RdL4Fvmu.js.map → Breadcrumbs-C0CXs9Ma.js.map} +1 -1
- package/dist/Breadcrumbs.js +1 -1
- package/dist/{Button-Dn6-01xl.js → Button-B_E6ybA-.js} +3 -3
- package/dist/{Button-Dn6-01xl.js.map → Button-B_E6ybA-.js.map} +1 -1
- package/dist/Button.js +1 -1
- package/dist/{ButtonToggle-BSU8GBxr.js → ButtonToggle-D0eXySEM.js} +2 -2
- package/dist/{ButtonToggle-BSU8GBxr.js.map → ButtonToggle-D0eXySEM.js.map} +1 -1
- package/dist/ButtonToggle.js +1 -1
- package/dist/{luxon-wpz4A-OQ.js → Calendar-BAIyDHX9.js} +1761 -3
- package/dist/Calendar-BAIyDHX9.js.map +1 -0
- package/dist/{Calendar-DoLRAWLp.js → Calendar-C_NPqjx3.js} +2 -2
- package/dist/{Calendar-DoLRAWLp.js.map → Calendar-C_NPqjx3.js.map} +1 -1
- package/dist/Calendar.js +2 -2
- package/dist/{Checkbox-U-kuWhgc.js → Checkbox-4Ow8rCbD.js} +2 -2
- package/dist/{Checkbox-U-kuWhgc.js.map → Checkbox-4Ow8rCbD.js.map} +1 -1
- package/dist/{Checkbox-CVxbe-iN.js → Checkbox-f1vutjn0.js} +3 -3
- package/dist/{Checkbox-CVxbe-iN.js.map → Checkbox-f1vutjn0.js.map} +1 -1
- package/dist/Checkbox.js +1 -1
- package/dist/{Chip-2OydLs66.js → Chip-AIF0WiNS.js} +2 -2
- package/dist/{Chip-2OydLs66.js.map → Chip-AIF0WiNS.js.map} +1 -1
- package/dist/Chip.js +1 -1
- package/dist/Combobox.js +1 -1
- package/dist/{DataTable-DIXP9-Bx.js → DataTableEditColumnsDrawer-DRgJgso9.js} +1288 -263
- package/dist/DataTableEditColumnsDrawer-DRgJgso9.js.map +1 -0
- package/dist/{DataTable.css → DataTableEditColumnsDrawer.css} +41 -0
- package/dist/{DateFieldRange-X2jdOTYY.js → DateFieldRange-D9PA985Z.js} +6 -7
- package/dist/{DateFieldRange-X2jdOTYY.js.map → DateFieldRange-D9PA985Z.js.map} +1 -1
- package/dist/DateFieldRange.js +1 -1
- package/dist/{DateFieldSingle-BJ16tpOz.js → DateFieldSingle-CMLojOb3.js} +6 -7
- package/dist/{DateFieldSingle-BJ16tpOz.js.map → DateFieldSingle-CMLojOb3.js.map} +1 -1
- package/dist/DateFieldSingle.js +1 -1
- package/dist/{DateFieldYearless-CMm8vtz_.js → DateFieldYearless-B5IyR75v.js} +4 -4
- package/dist/{DateFieldYearless-CMm8vtz_.js.map → DateFieldYearless-B5IyR75v.js.map} +1 -1
- package/dist/DateFieldYearless.js +1 -1
- package/dist/{DateFieldYearlessRange-BHHs-Z1Q.js → DateFieldYearlessRange-8yXILjx7.js} +3 -3
- package/dist/{DateFieldYearlessRange-BHHs-Z1Q.js.map → DateFieldYearlessRange-8yXILjx7.js.map} +1 -1
- package/dist/DateFieldYearlessRange.js +1 -1
- package/dist/{DaysOfTheWeek-BHXxs0Bo.js → DaysOfTheWeek-Cxp5VdYK.js} +3 -3
- package/dist/{DaysOfTheWeek-BHXxs0Bo.js.map → DaysOfTheWeek-Cxp5VdYK.js.map} +1 -1
- package/dist/DaysOfTheWeek.js +1 -1
- package/dist/{Dialog-_tHqOsbr.js → Dialog-KDAJphrA.js} +8 -7
- package/dist/Dialog-KDAJphrA.js.map +1 -0
- package/dist/Dialog.js +1 -1
- package/dist/{DialogCancelButton-C0r8hJ8Z.js → DialogCancelButton-CplrFu69.js} +2 -2
- package/dist/{DialogCancelButton-C0r8hJ8Z.js.map → DialogCancelButton-CplrFu69.js.map} +1 -1
- package/dist/Dnd.js +2 -2
- package/dist/{DndHandleButton-BRlodkDO.js → DndHandleButton-BJqj2hc0.js} +6 -4
- package/dist/DndHandleButton-BJqj2hc0.js.map +1 -0
- package/dist/DndSort.js +2 -2
- package/dist/{Drawer-D-ThWNp0.js → Drawer-C7E2NNnH.js} +9 -8
- package/dist/Drawer-C7E2NNnH.js.map +1 -0
- package/dist/Drawer.js +1 -1
- package/dist/DrillDown.css +41 -34
- package/dist/DrillDown.js +1 -1
- package/dist/DrillDown.module-BFE5BcJB.js +28 -0
- package/dist/DrillDown.module-BFE5BcJB.js.map +1 -0
- package/dist/{EditCard-B6l2vhBS.js → EditCard-CutlsXfK.js} +3 -3
- package/dist/{EditCard-B6l2vhBS.js.map → EditCard-CutlsXfK.js.map} +1 -1
- package/dist/EditCard.js +1 -1
- package/dist/{FieldLabel-ThEmUiAq.js → FieldLabel-DYcUS3A4.js} +2 -2
- package/dist/{FieldLabel-ThEmUiAq.js.map → FieldLabel-DYcUS3A4.js.map} +1 -1
- package/dist/FieldLabel.js +1 -1
- package/dist/{FilterBar-CGsDg6Hy.js → FilterBar-DbDfZph-.js} +7 -7
- package/dist/{FilterBar-CGsDg6Hy.js.map → FilterBar-DbDfZph-.js.map} +1 -1
- package/dist/FilterBar.js +1 -1
- package/dist/{InputMask-BQigi5oW.js → InputMask-BxdQc1ld.js} +3 -3
- package/dist/{InputMask-BQigi5oW.js.map → InputMask-BxdQc1ld.js.map} +1 -1
- package/dist/InputMask.js +1 -1
- package/dist/{ListView-YJscfG4x.js → ListView-BVanVvBk.js} +87 -108
- package/dist/ListView-BVanVvBk.js.map +1 -0
- package/dist/ListView.js +1 -1
- package/dist/{Listbox-CD9ZptSZ.js → Listbox-BR0YQIee.js} +2 -2
- package/dist/{Listbox-CD9ZptSZ.js.map → Listbox-BR0YQIee.js.map} +1 -1
- package/dist/Listbox.js +1 -1
- package/dist/{Menu-Da2OEN0o.js → Menu-DqP7YQgE.js} +2 -2
- package/dist/{Menu-Da2OEN0o.js.map → Menu-DqP7YQgE.js.map} +1 -1
- package/dist/Menu.js +1 -1
- package/dist/{MenuFooter-D__gg92C.js → MenuFooter-Dzhv0EfD.js} +2 -2
- package/dist/{MenuFooter-D__gg92C.js.map → MenuFooter-Dzhv0EfD.js.map} +1 -1
- package/dist/MultiSelectField.js +1 -1
- package/dist/{MultiSelectFieldSync-Cq5sena6.js → MultiSelectFieldSync-9253tott.js} +7 -7
- package/dist/{MultiSelectFieldSync-Cq5sena6.js.map → MultiSelectFieldSync-9253tott.js.map} +1 -1
- package/dist/MultiSelectMenu.js +1 -1
- package/dist/{MultiSelectMenuSync-BhNXsgAN.js → MultiSelectMenuSync-BUJbWN2I.js} +5 -5
- package/dist/{MultiSelectMenuSync-BhNXsgAN.js.map → MultiSelectMenuSync-BUJbWN2I.js.map} +1 -1
- package/dist/{useNumberField-CXFYUZ_n.js → NumberField-DhxywJVp.js} +251 -5
- package/dist/NumberField-DhxywJVp.js.map +1 -0
- package/dist/NumberField.js +1 -1
- package/dist/{Page-ZSHNJs7z.js → Page-D_KL2tdK.js} +14 -13
- package/dist/{Page-ZSHNJs7z.js.map → Page-D_KL2tdK.js.map} +1 -1
- package/dist/Page.js +1 -1
- package/dist/{Pagination-Bsl99RRI.js → Pagination-DYpUtMha.js} +5 -5
- package/dist/{Pagination-Bsl99RRI.js.map → Pagination-DYpUtMha.js.map} +1 -1
- package/dist/Pagination.js +1 -1
- package/dist/{Popover-CIh1CsoJ.js → Popover-B2ix8Ji4.js} +2 -2
- package/dist/{Popover-CIh1CsoJ.js.map → Popover-B2ix8Ji4.js.map} +1 -1
- package/dist/Popover.js +1 -1
- package/dist/{ProgressBar-zPKYv4Il.js → ProgressBar-CjoOuJCi.js} +2 -2
- package/dist/{ProgressBar-zPKYv4Il.js.map → ProgressBar-CjoOuJCi.js.map} +1 -1
- package/dist/ProgressBar.js +1 -1
- package/dist/{Radio-C1VnatcL.js → Radio-Bz36_d0V.js} +2 -2
- package/dist/{Radio-C1VnatcL.js.map → Radio-Bz36_d0V.js.map} +1 -1
- package/dist/{Radio-BYowelK2.js → Radio-DOD1d9Vw.js} +3 -3
- package/dist/{Radio-BYowelK2.js.map → Radio-DOD1d9Vw.js.map} +1 -1
- package/dist/Radio.js +1 -1
- package/dist/{RichTextEditor-DcAVqd2d.js → RichTextEditor-BORVXVDw.js} +11 -11
- package/dist/{RichTextEditor-DcAVqd2d.js.map → RichTextEditor-BORVXVDw.js.map} +1 -1
- package/dist/RichTextEditor.js +1 -1
- package/dist/{SavedFiltersButton-BLvi8j1T.js → SavedFiltersButton-vq_Kt4Qc.js} +10 -10
- package/dist/{SavedFiltersButton-BLvi8j1T.js.map → SavedFiltersButton-vq_Kt4Qc.js.map} +1 -1
- package/dist/SavedFiltersButton.js +1 -1
- package/dist/{SegmentedControl-BHVJmmTH.js → SegmentedControl-BCqWq65N.js} +3 -3
- package/dist/{SegmentedControl-BHVJmmTH.js.map → SegmentedControl-BCqWq65N.js.map} +1 -1
- package/dist/SegmentedControl.js +1 -1
- package/dist/{SelectCard-DrmMU_GD.js → SelectCard-CJwetC1k.js} +3 -3
- package/dist/{SelectCard-DrmMU_GD.js.map → SelectCard-CJwetC1k.js.map} +1 -1
- package/dist/SelectCard.js +1 -1
- package/dist/SelectField.js +1 -1
- package/dist/{SelectFieldLabel-BxsKvfqo.js → SelectFieldLabel-BTKqybZm.js} +2 -2
- package/dist/{SelectFieldLabel-BxsKvfqo.js.map → SelectFieldLabel-BTKqybZm.js.map} +1 -1
- package/dist/{SelectFieldSync-CeazN-gI.js → SelectFieldSync-CoUi-BYw.js} +6 -6
- package/dist/{SelectFieldSync-CeazN-gI.js.map → SelectFieldSync-CoUi-BYw.js.map} +1 -1
- package/dist/SelectMenu.js +1 -1
- package/dist/{SelectMenuSync-CPpE6vUG.js → SelectMenuSync-CvXx-6uU.js} +5 -5
- package/dist/{SelectMenuSync-CPpE6vUG.js.map → SelectMenuSync-CvXx-6uU.js.map} +1 -1
- package/dist/{SelectOptions-BDAu_9dv.js → SelectOptions-CGRUCyf4.js} +2 -2
- package/dist/{SelectOptions-BDAu_9dv.js.map → SelectOptions-CGRUCyf4.js.map} +1 -1
- package/dist/{SelectTrigger-B4OUTO9S.js → SelectTrigger-CRbl804u.js} +2 -2
- package/dist/{SelectTrigger-B4OUTO9S.js.map → SelectTrigger-CRbl804u.js.map} +1 -1
- package/dist/SelectTrigger.js +1 -1
- package/dist/{SelectTriggerBase-BTWSaiQ-.js → SelectTriggerBase-BRUW_Zgc.js} +4 -4
- package/dist/{SelectTriggerBase-BTWSaiQ-.js.map → SelectTriggerBase-BRUW_Zgc.js.map} +1 -1
- package/dist/{Stepper-l_P6VPOv.js → Stepper-D3SHXfX1.js} +3 -3
- package/dist/{Stepper-l_P6VPOv.js.map → Stepper-D3SHXfX1.js.map} +1 -1
- package/dist/Stepper.js +1 -1
- package/dist/{Switch-1iNdXTik.js → Switch-rPPL4yEa.js} +2 -2
- package/dist/{Switch-1iNdXTik.js.map → Switch-rPPL4yEa.js.map} +1 -1
- package/dist/Switch.js +1 -1
- package/dist/{Tab-DR5YYXkq.js → Tab-CXwVQ5-G.js} +11 -7
- package/dist/Tab-CXwVQ5-G.js.map +1 -0
- package/dist/Tab.js +1 -1
- package/dist/Table.js +1 -1
- package/dist/{Text-rihxXHSe.js → Text-BRbkPr5s.js} +2 -2
- package/dist/{Text-rihxXHSe.js.map → Text-BRbkPr5s.js.map} +1 -1
- package/dist/Text.js +1 -1
- package/dist/{TextField-vuS7xeo-.js → TextField-B9hivHsD.js} +3 -3
- package/dist/{TextField-vuS7xeo-.js.map → TextField-B9hivHsD.js.map} +1 -1
- package/dist/{TextField-Bxd-Qzoi.js → TextField-DGRVg_Cw.js} +2 -2
- package/dist/{TextField-Bxd-Qzoi.js.map → TextField-DGRVg_Cw.js.map} +1 -1
- package/dist/TextField.js +1 -1
- package/dist/{Textarea-ppapJUwh.js → Textarea-DNqfV8rJ.js} +3 -3
- package/dist/{Textarea-ppapJUwh.js.map → Textarea-DNqfV8rJ.js.map} +1 -1
- package/dist/Textarea.js +1 -1
- package/dist/{TimeField-Hwt_oRbg.js → TimeField-DldMBNAj.js} +5 -5
- package/dist/{TimeField-Hwt_oRbg.js.map → TimeField-DldMBNAj.js.map} +1 -1
- package/dist/TimeField.js +1 -1
- package/dist/{TimezoneMessage-BrKB_psP.js → TimezoneMessage-CgVNxYpM.js} +2 -2
- package/dist/{TimezoneMessage-BrKB_psP.js.map → TimezoneMessage-CgVNxYpM.js.map} +1 -1
- package/dist/Toast.js +2 -2
- package/dist/{Toaster-dVGVVcat.js → Toaster-Bcy9XN3c.js} +2 -2
- package/dist/{Toaster-dVGVVcat.js.map → Toaster-Bcy9XN3c.js.map} +1 -1
- package/dist/{Toaster-SqkX0Kes.js → Toaster-C66ra4BK.js} +6 -8
- package/dist/Toaster-C66ra4BK.js.map +1 -0
- package/dist/{Toolbar-CMulzswf.js → Toolbar-Br-5yBxq.js} +5 -5
- package/dist/{Toolbar-CMulzswf.js.map → Toolbar-Br-5yBxq.js.map} +1 -1
- package/dist/{Toolbar-DGHZpFi9.js → Toolbar-DgPah7M3.js} +5 -5
- package/dist/{Toolbar-DGHZpFi9.js.map → Toolbar-DgPah7M3.js.map} +1 -1
- package/dist/Toolbar.js +2 -2
- package/dist/{ToolbarButtonToggle-T8YnSJ5x.js → ToolbarButtonToggle-BDfoHeie.js} +2 -2
- package/dist/{ToolbarButtonToggle-T8YnSJ5x.js.map → ToolbarButtonToggle-BDfoHeie.js.map} +1 -1
- package/dist/TreeSelectField.js +1 -1
- package/dist/{TreeSelectFieldSync-DT6uZ3Ca.js → TreeSelectFieldSync-1psUeqtG.js} +6 -6
- package/dist/{TreeSelectFieldSync-DT6uZ3Ca.js.map → TreeSelectFieldSync-1psUeqtG.js.map} +1 -1
- package/dist/TreeSelectMenu.js +1 -1
- package/dist/{TreeSelectMenuSync-D2TvKxP-.js → TreeSelectMenuSync-DIPSYUnE.js} +4 -4
- package/dist/{TreeSelectMenuSync-D2TvKxP-.js.map → TreeSelectMenuSync-DIPSYUnE.js.map} +1 -1
- package/dist/{TypeaheadTextField-DgazozK7.js → TypeaheadTextField-Di9ulOBl.js} +3 -3
- package/dist/{TypeaheadTextField-DgazozK7.js.map → TypeaheadTextField-Di9ulOBl.js.map} +1 -1
- package/dist/TypeaheadTextField.js +1 -1
- package/dist/{YearlessDateInputWithPicker-Bc8a33D5.js → YearlessDateInputWithPicker-CQ2-6Uj4.js} +3 -3
- package/dist/{YearlessDateInputWithPicker-Bc8a33D5.js.map → YearlessDateInputWithPicker-CQ2-6Uj4.js.map} +1 -1
- package/dist/assets/icons/st/gnav_messages_active.svg +1 -0
- package/dist/assets/icons/st/gnav_messages_inactive.svg +1 -0
- package/dist/assets/icons/st.ts +2 -0
- package/dist/beta.js +17 -17
- package/dist/{bulkActionTypes-SukoplGV.js → bulkActionTypes-B71ZHjVu.js} +2 -2
- package/dist/{bulkActionTypes-SukoplGV.js.map → bulkActionTypes-B71ZHjVu.js.map} +1 -1
- package/dist/{filter-state-D3-SYfuy.js → filter-state-Lw9qL0zP.js} +23 -23
- package/dist/{filter-state-D3-SYfuy.js.map → filter-state-Lw9qL0zP.js.map} +1 -1
- package/dist/{index-C2dOrf4N.js → index-B3WhDZeI.js} +2 -2
- package/dist/{index-C2dOrf4N.js.map → index-B3WhDZeI.js.map} +1 -1
- package/dist/{index-Bldaza5t.js → index-CyN5oapA.js} +2 -2
- package/dist/{index-Bldaza5t.js.map → index-CyN5oapA.js.map} +1 -1
- package/dist/index-DfZCfS0S.js +36 -0
- package/dist/index-DfZCfS0S.js.map +1 -0
- package/dist/{index.esm-C2ZhC_8d.js → index.esm-CQXMoq5w.js} +2 -2
- package/dist/{index.esm-C2ZhC_8d.js.map → index.esm-CQXMoq5w.js.map} +1 -1
- package/dist/index.js +55 -53
- package/dist/index.js.map +1 -1
- package/dist/{react-ORV84FjM.js → react-CG1BUt2y.js} +5 -38
- package/dist/react-CG1BUt2y.js.map +1 -0
- package/dist/src/beta/components/Table/DataTable/DataTable.d.ts +31 -4
- package/dist/src/beta/components/Table/DataTable/DataTableEditColumnsDrawer.d.ts +18 -0
- package/dist/src/beta/components/Table/DataTable/index.d.ts +1 -0
- package/dist/src/beta/components/Table/DataTable/internal/DataTableAddRow.d.ts +11 -0
- package/dist/src/beta/components/Table/DataTable/internal/DataTableBulkActionBar.d.ts +23 -0
- package/dist/src/beta/components/Table/DataTable/internal/DataTableFilterToolbar.d.ts +12 -0
- package/dist/src/beta/components/Table/DataTable/internal/columnEditing/EditColumnsDrawer.d.ts +29 -0
- package/dist/src/beta/components/Table/DataTable/internal/columnEditing/columnLayout.d.ts +43 -0
- package/dist/src/beta/components/Table/DataTable/internal/columnEditing/toEditColumnsSection.d.ts +7 -0
- package/dist/src/beta/components/Table/DataTable/parts.d.ts +17 -0
- package/dist/src/beta/components/Table/DataTable/types.d.ts +245 -2
- package/dist/src/beta/components/Table/types.d.ts +6 -0
- package/dist/src/components/DrillDown/DrillDownHeader.d.ts +11 -2
- package/dist/src/components/DrillDown/index.d.ts +1 -1
- package/dist/src/components/DrillDown/internal/DrillDownContext.d.ts +7 -2
- package/dist/src/components/DrillDown/internal/useDrillDownContextState.d.ts +6 -3
- package/dist/src/hooks/usePrefersReducedMotion/index.d.ts +2 -0
- package/dist/src/hooks/usePrefersReducedMotion/prefersReducedMotion.d.ts +6 -0
- package/dist/src/hooks/usePrefersReducedMotion/useReducedMotion.d.ts +5 -0
- package/dist/{stripInlineMarkdown-BhYLEiXu.js → stripInlineMarkdown-B6lAJb4-.js} +2 -2
- package/dist/{stripInlineMarkdown-BhYLEiXu.js.map → stripInlineMarkdown-B6lAJb4-.js.map} +1 -1
- package/dist/{syncFilterUtils-SMop8ckR.js → syncFilterUtils-DnhuqY1S.js} +4 -4
- package/dist/{syncFilterUtils-SMop8ckR.js.map → syncFilterUtils-DnhuqY1S.js.map} +1 -1
- package/dist/token/core/component-variables.scss +49 -49
- package/dist/token/core/component.js +49 -49
- package/dist/token/core/component.scss +40 -40
- package/dist/token.js +49 -49
- package/dist/token.js.map +1 -1
- package/dist/{treeSync-B38r1dRQ.js → treeSync-BDwht_1r.js} +3 -3
- package/dist/{treeSync-B38r1dRQ.js.map → treeSync-BDwht_1r.js.map} +1 -1
- package/dist/{use-reduced-motion-yYB9Tb0D.js → use-reduced-motion-CUshwaEW.js} +2 -2
- package/dist/{use-reduced-motion-yYB9Tb0D.js.map → use-reduced-motion-CUshwaEW.js.map} +1 -1
- package/dist/{useDrillDownContext-D5_NjqY4.js → useDrillDownContext-BLDjyNEt.js} +2 -2
- package/dist/{useDrillDownContext-D5_NjqY4.js.map → useDrillDownContext-BLDjyNEt.js.map} +1 -1
- package/dist/{useDrilldown-BOeeNUsy.js → useDrilldown-CGdhHs8L.js} +54 -21
- package/dist/{useDrilldown-BOeeNUsy.js.map → useDrilldown-CGdhHs8L.js.map} +1 -1
- package/dist/{useInfiniteCombobox-ynkeFngn.js → useInfiniteCombobox-Db0kaxCj.js} +4 -4
- package/dist/{useInfiniteCombobox-ynkeFngn.js.map → useInfiniteCombobox-Db0kaxCj.js.map} +1 -1
- package/dist/{useInitialFocus-CGybEc6x.js → useInitialFocus-fBiTU9l8.js} +7 -4
- package/dist/useInitialFocus-fBiTU9l8.js.map +1 -0
- package/dist/{useInvalidateOnOptionsChange-BD2VBpbK.js → useInvalidateOnOptionsChange-PweyDORd.js} +4 -4
- package/dist/{useInvalidateOnOptionsChange-BD2VBpbK.js.map → useInvalidateOnOptionsChange-PweyDORd.js.map} +1 -1
- package/dist/{usePrefersReducedMotion-DR9B_D6w.js → usePrefersReducedMotion-BLoVFiJL.js} +11 -3
- package/dist/usePrefersReducedMotion-BLoVFiJL.js.map +1 -0
- package/dist/usePrefersReducedMotion.js +2 -1
- package/dist/usePrefersReducedMotion.js.map +1 -1
- package/package.json +3 -3
- package/dist/Calendar-IzXG1aJw.js +0 -1761
- package/dist/Calendar-IzXG1aJw.js.map +0 -1
- package/dist/DataTable-DIXP9-Bx.js.map +0 -1
- package/dist/Dialog-_tHqOsbr.js.map +0 -1
- package/dist/DndHandleButton-BRlodkDO.js.map +0 -1
- package/dist/Drawer-D-ThWNp0.js.map +0 -1
- package/dist/DrillDown.module-1VBKDZRA.js +0 -27
- package/dist/DrillDown.module-1VBKDZRA.js.map +0 -1
- package/dist/Lato.css +0 -24
- package/dist/ListView-YJscfG4x.js.map +0 -1
- package/dist/NumberField-CxmJx4gs.js +0 -252
- package/dist/NumberField-CxmJx4gs.js.map +0 -1
- package/dist/Tab-DR5YYXkq.js.map +0 -1
- package/dist/Toaster-SqkX0Kes.js.map +0 -1
- package/dist/app-css.379821199ec8105f2efd.bundle.css +0 -57579
- package/dist/bugfix-71.1orion.css +0 -491
- package/dist/design-system.859a127fc3b66175f0f0.bundle.css +0 -34599
- package/dist/drag_indicator-BRHAPLSJ.js +0 -6
- package/dist/drag_indicator-BRHAPLSJ.js.map +0 -1
- package/dist/favicon.ico +0 -0
- package/dist/kendo-css.ed976099efbbcc8b0639.bundle.css +0 -20601
- package/dist/luxon-wpz4A-OQ.js.map +0 -1
- package/dist/main.e26f249642be9a4bd747.bundle.css +0 -50386
- package/dist/react-ORV84FjM.js.map +0 -1
- package/dist/sui.a9dc22e36a27b7ea1ee8.bundle.css +0 -41149
- package/dist/useInitialFocus-CGybEc6x.js.map +0 -1
- package/dist/useNumberField-CXFYUZ_n.js.map +0 -1
- package/dist/usePrefersReducedMotion-DR9B_D6w.js.map +0 -1
- package/dist/vite.svg +0 -1
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Pagination-Bsl99RRI.js","sources":["../src/components/Pagination/parts.ts","../src/components/Pagination/internal/PaginationItem.tsx","../src/components/Pagination/internal/PaginationOverflowMenu.tsx","../src/components/Pagination/internal/PaginationItemsPerPageMenu.tsx","../src/components/Pagination/internal/PaginationList.tsx","../src/components/Pagination/internal/PaginationTotalCount.tsx","../src/components/Pagination/internal/Pagination.tsx","../src/components/Pagination/internal/usePaginationArray.ts","../src/components/Pagination/Pagination.tsx"],"sourcesContent":["import { COMMON_PART } from \"../../internal/constants/anvParts\";\n\n/**\n * `data-anv-part` names for Pagination's interactive sub-elements.\n *\n * Repeated parts use `data-page` (page buttons / overflow options) or\n * `data-items-per-page`. Overflow and items-per-page menus render in the\n * top layer — target `option` by attribute, not as descendants of the root.\n */\nexport const PARTS = {\n /** Shared role for menu options (overflow pages + items-per-page). */\n option: COMMON_PART.option,\n\n prevPageButton: \"prev-page-button\",\n nextPageButton: \"next-page-button\",\n /** Numbered page control. Narrow with `data-page`. */\n pageButton: \"page-button\",\n overflowTrigger: \"overflow-trigger\",\n itemsPerPageTrigger: \"items-per-page-trigger\",\n} as const;\n","import { type ComponentPropsWithoutRef, forwardRef } from \"react\";\nimport cx from \"classnames\";\n\nimport { ButtonToggle } from \"../../ButtonToggle\";\nimport { ANV_PART_ATTR } from \"../../../internal/constants/anvParts\";\nimport { PARTS } from \"../parts\";\n\nimport styles from \"./PaginationItem.module.scss\";\n\n/**\n * @extends ComponentPropsWithoutRef<\"li\">\n */\nexport type PaginationItemProps = ComponentPropsWithoutRef<\"li\"> & {\n /** 1-based page this control represents. */\n page: number;\n /** Marks this control as the current page. Defaults to `false`. */\n isActive?: boolean;\n onClick?: () => void;\n};\n\n/** Numbered page control. */\nexport const PaginationItem = forwardRef<HTMLLIElement, PaginationItemProps>(\n (props, ref) => {\n const { page, isActive, onClick, className, ...rest } = props;\n\n const paginationClassName = cx(styles[\"pagination-item\"], className);\n const paginationButtonClassName = cx(styles[\"pagination-item-button\"], {\n [styles.active]: isActive,\n });\n return (\n <li ref={ref} {...rest} className={paginationClassName}>\n <ButtonToggle\n className={paginationButtonClassName}\n size=\"small\"\n onClick={onClick}\n aria-current={isActive ? \"page\" : undefined}\n aria-label={\n isActive ? `Current page, page ${page}` : `Go to page ${page}`\n }\n checked={isActive}\n data-page={page}\n {...{ [ANV_PART_ATTR]: PARTS.pageButton }}\n >\n {page}\n </ButtonToggle>\n </li>\n );\n },\n);\n\nPaginationItem.displayName = \"PaginationItem\";\n","import {\n type ComponentPropsWithoutRef,\n type KeyboardEvent,\n type UIEvent,\n forwardRef,\n useCallback,\n useLayoutEffect,\n useMemo,\n useRef,\n useState,\n} from \"react\";\nimport IconMoreHoriz from \"@servicetitan/hammer-icon/mdi/round/more_horiz.svg\";\n\nimport { Button } from \"../../Button\";\nimport { Menu } from \"../../Menu\";\nimport { ANV_PART_ATTR } from \"../../../internal/constants/anvParts\";\nimport { PARTS } from \"../parts\";\n\nimport styles from \"./PaginationOverflowMenu.module.scss\";\n\n// Fixed sizes so the windowed slice does not need layout measurement\n// (including jsdom). Padding matches Menu's scroller after this menu\n// resets the outer scroller padding.\nconst SCROLLER_MAX_HEIGHT = 200;\nconst ITEM_HEIGHT = 34;\nconst SCROLLER_PADDING_BLOCK = 8;\nconst SCROLLER_PADDING_INLINE = 8;\nconst OVERSCAN = 5;\n\n/**\n * @extends ComponentPropsWithoutRef<\"li\">\n */\nexport type PaginationOverflowMenuProps = ComponentPropsWithoutRef<\"li\"> & {\n /** First page in this collapsed range, inclusive. */\n startPage: number;\n /** Last page in this collapsed range, inclusive. */\n endPage: number;\n /** Inclusive page count; drives the virtualized scroller height. */\n length: number;\n /** Selected page on the parent; used as the menu's initial focus. */\n currentPage: number;\n /** Called with the chosen page from the overflow list. */\n onItemClick: (page: number) => void;\n};\n\n/**\n * Ellipsis menu for a collapsed page range. Only the visible scroller slice\n * is in the DOM, so long ranges stay cheap.\n */\nexport const PaginationOverflowMenu = forwardRef<\n HTMLLIElement,\n PaginationOverflowMenuProps\n>((props, ref) => {\n const { startPage, endPage, length, currentPage, onItemClick, ...rest } =\n props;\n\n const [scrollTop, setScrollTop] = useState(0);\n const [pendingFocusPage, setPendingFocusPage] = useState<number | null>(null);\n const scrollerRef = useRef<HTMLDivElement>(null);\n\n const getInitialFocusPage = useCallback(() => {\n return Math.min(endPage, Math.max(startPage, currentPage));\n }, [currentPage, endPage, startPage]);\n\n const getScrollTopForIndex = useCallback(\n (index: number, currentScrollTop: number) => {\n const itemTop = SCROLLER_PADDING_BLOCK + index * ITEM_HEIGHT;\n const itemBottom = itemTop + ITEM_HEIGHT;\n const viewportBottom = currentScrollTop + SCROLLER_MAX_HEIGHT;\n\n if (itemTop < currentScrollTop) {\n return itemTop;\n }\n\n if (itemBottom > viewportBottom) {\n return itemBottom - SCROLLER_MAX_HEIGHT;\n }\n\n return currentScrollTop;\n },\n [],\n );\n\n const syncScrollTop = useCallback((nextScrollTop: number) => {\n setScrollTop(nextScrollTop);\n\n if (\n scrollerRef.current &&\n scrollerRef.current.scrollTop !== nextScrollTop\n ) {\n scrollerRef.current.scrollTop = nextScrollTop;\n }\n }, []);\n\n const focusLogicalPage = useCallback(\n (pageNumber: number) => {\n const targetIndex = pageNumber - startPage;\n const nextScrollTop = getScrollTopForIndex(targetIndex, scrollTop);\n\n if (nextScrollTop !== scrollTop) {\n syncScrollTop(nextScrollTop);\n }\n\n setPendingFocusPage(pageNumber);\n },\n [getScrollTopForIndex, scrollTop, startPage, syncScrollTop],\n );\n\n const handleScroll = useCallback((event: UIEvent<HTMLDivElement>) => {\n setScrollTop(event.currentTarget.scrollTop);\n }, []);\n\n const containUnhandledScrollerKeyDown = useCallback(\n (event: KeyboardEvent<HTMLDivElement>) => {\n if (event.code !== \"ArrowDown\" && event.code !== \"ArrowUp\") {\n return;\n }\n\n event.preventDefault();\n event.stopPropagation();\n },\n [],\n );\n\n const handleItemKeyDown = useCallback(\n (event: KeyboardEvent<HTMLButtonElement>, pageNumber: number) => {\n if (event.code !== \"ArrowDown\" && event.code !== \"ArrowUp\") {\n return;\n }\n\n event.preventDefault();\n event.stopPropagation();\n\n const nextPage =\n event.code === \"ArrowDown\"\n ? pageNumber === endPage\n ? startPage\n : pageNumber + 1\n : pageNumber === startPage\n ? endPage\n : pageNumber - 1;\n\n focusLogicalPage(nextPage);\n },\n [endPage, focusLogicalPage, startPage],\n );\n\n const visibleCount = Math.ceil(SCROLLER_MAX_HEIGHT / ITEM_HEIGHT);\n const paddedScrollTop = Math.max(0, scrollTop - SCROLLER_PADDING_BLOCK);\n const startIndex = Math.max(\n 0,\n Math.floor(paddedScrollTop / ITEM_HEIGHT) - OVERSCAN,\n );\n const endIndex = Math.min(length, startIndex + visibleCount + OVERSCAN * 2);\n const totalSize = length * ITEM_HEIGHT + SCROLLER_PADDING_BLOCK * 2;\n\n const visibleIndices = useMemo(() => {\n const indices: number[] = [];\n for (let i = startIndex; i < endIndex; i++) {\n indices.push(i);\n }\n return indices;\n }, [endIndex, startIndex]);\n\n useLayoutEffect(() => {\n if (pendingFocusPage === null) {\n return;\n }\n\n const targetElement = scrollerRef.current?.querySelector<HTMLElement>(\n `[data-pagination-page=\"${pendingFocusPage}\"]`,\n );\n\n if (!targetElement) {\n return;\n }\n\n targetElement.focus();\n setPendingFocusPage(null);\n }, [pendingFocusPage, visibleIndices]);\n\n return (\n <li className={styles[\"pagination-item-overflow-menu\"]} ref={ref} {...rest}>\n <Menu\n trigger={(triggerProps) => {\n const isOpen = triggerProps[\"aria-expanded\"] === true;\n\n return (\n <Button\n ref={triggerProps.ref}\n onClick={() => {\n if (!isOpen) {\n focusLogicalPage(getInitialFocusPage());\n }\n triggerProps.onClick?.();\n }}\n onKeyDown={(event) => {\n if (event.code === \"ArrowDown\" || event.code === \"ArrowUp\") {\n event.preventDefault();\n event.stopPropagation();\n focusLogicalPage(getInitialFocusPage());\n\n if (!isOpen) {\n triggerProps.onClick?.();\n }\n\n return;\n }\n\n triggerProps.onKeyDown?.(event);\n }}\n aria-haspopup={triggerProps[\"aria-haspopup\"]}\n aria-controls={triggerProps[\"aria-controls\"]}\n aria-expanded={triggerProps[\"aria-expanded\"]}\n data-state={triggerProps[\"data-state\"]}\n icon={IconMoreHoriz}\n size=\"small\"\n appearance=\"ghost\"\n aria-label=\"More pages\"\n {...{ [ANV_PART_ATTR]: PARTS.overflowTrigger }}\n />\n );\n }}\n // Remount when the collapsed range changes so scroll/focus do not leak.\n key={`${startPage}-${endPage}`}\n // Bypass Menu's built-in scroller so the windowed list can size the popover.\n contentClassName={styles[\"pagination-item-overflow-menu-content\"]}\n aria-label=\"More pages\"\n >\n {/* Keyboard handler is fallback containment only; child menu items remain focus targets. */}\n {/* eslint-disable-next-line jsx-a11y/no-static-element-interactions */}\n <div\n ref={scrollerRef}\n data-pagination-overflow-scroller=\"true\"\n onKeyDown={containUnhandledScrollerKeyDown}\n onScroll={handleScroll}\n style={{\n maxHeight: SCROLLER_MAX_HEIGHT,\n overflowY: \"auto\",\n position: \"relative\",\n }}\n >\n <div\n style={{\n height: totalSize,\n position: \"relative\",\n width: \"100%\",\n }}\n >\n {visibleIndices.map((index) => {\n const pageNumber = startPage + index;\n return (\n <Menu.Item\n key={pageNumber}\n data-pagination-page={pageNumber}\n data-page={pageNumber}\n {...{ [ANV_PART_ATTR]: PARTS.option }}\n label={`${pageNumber}`}\n onKeyDown={(event) => handleItemKeyDown(event, pageNumber)}\n onClick={(event) => {\n const paginationNav = event.currentTarget.closest(\"nav\");\n onItemClick(pageNumber);\n // Scope lookup to this pagination so multiple mounted\n // paginations do not steal focus from one another.\n setTimeout(() => {\n paginationNav\n ?.querySelector<HTMLElement>('[aria-current=\"page\"]')\n ?.focus();\n }, 100);\n }}\n style={{\n position: \"absolute\",\n top: 0,\n left: SCROLLER_PADDING_INLINE,\n right: SCROLLER_PADDING_INLINE,\n transform: `translateY(${\n SCROLLER_PADDING_BLOCK + index * ITEM_HEIGHT\n }px)`,\n height: ITEM_HEIGHT,\n }}\n />\n );\n })}\n </div>\n </div>\n </Menu>\n </li>\n );\n});\n\nPaginationOverflowMenu.displayName = \"PaginationOverflowMenu\";\n","import { forwardRef, type KeyboardEvent } from \"react\";\nimport IconKeyboardArrowDown from \"@servicetitan/hammer-icon/mdi/round/keyboard_arrow_down.svg\";\n\nimport { Button } from \"../../Button\";\nimport { Flex } from \"../../Flex\";\nimport { Menu } from \"../../Menu\";\nimport { Text } from \"../../Text\";\nimport { ANV_PART_ATTR } from \"../../../internal/constants/anvParts\";\nimport { PARTS } from \"../parts\";\n\nimport styles from \"./PaginationItemsPerPageMenu.module.scss\";\n\nexport type PaginationItemsPerPageMenuProps = {\n /** Current page size shown on the trigger. */\n itemsPerPage: number;\n /** Menu options; selecting one calls `onItemsPerPageChange`. */\n itemsPerPageOptions: number[];\n /** Called with the newly selected page size. */\n onItemsPerPageChange: (itemsPerPage: number) => void;\n /** Label before the trigger. Defaults to `\"Rows per page\"`. */\n itemsPerPageLabel?: string;\n};\n\n/** Page-size selector used by the public Pagination wrapper. */\nexport const PaginationItemsPerPageMenu = forwardRef<\n HTMLDivElement,\n PaginationItemsPerPageMenuProps\n>((props, ref) => {\n const {\n itemsPerPage,\n itemsPerPageOptions,\n onItemsPerPageChange,\n itemsPerPageLabel = \"Rows per page\",\n } = props;\n\n // Custom trigger: Menu does not move focus on ArrowUp/ArrowDown.\n const handleKeyDown = (e: KeyboardEvent<HTMLButtonElement>) => {\n if (e.code === \"ArrowDown\" || e.code === \"ArrowUp\") {\n e.preventDefault();\n const menuId = e.currentTarget.getAttribute(\"aria-controls\");\n\n setTimeout(() => {\n const menu = menuId ? document.getElementById(menuId) : null;\n const menuItems =\n menu?.querySelectorAll('[data-anv=\"menu-item\"]') ||\n document.querySelectorAll('[data-anv=\"menu-item\"]');\n\n (menuItems[0] as HTMLElement)?.focus();\n }, 100);\n }\n };\n\n return (\n <Flex alignItems=\"center\" gap=\"2\" ref={ref}>\n <Text size=\"small\">{itemsPerPageLabel}</Text>\n <Menu\n trigger={({ ref, ...rest }) => {\n return (\n <Button\n ref={ref}\n {...rest}\n onKeyDown={handleKeyDown}\n className={styles[\"pagination-items-per-page-button\"]}\n appearance=\"ghost\"\n icon={{ after: IconKeyboardArrowDown }}\n size=\"small\"\n {...{ [ANV_PART_ATTR]: PARTS.itemsPerPageTrigger }}\n >\n {itemsPerPage}\n </Button>\n );\n }}\n >\n {itemsPerPageOptions.map((option) => (\n <Menu.Item\n key={option}\n label={option}\n data-items-per-page={option}\n {...{ [ANV_PART_ATTR]: PARTS.option }}\n onClick={() => {\n onItemsPerPageChange?.(option);\n }}\n />\n ))}\n </Menu>\n </Flex>\n );\n});\n\nPaginationItemsPerPageMenu.displayName = \"PaginationItemsPerPageMenu\";\n","import { forwardRef } from \"react\";\nimport IconKeyboardArrowLeft from \"@servicetitan/hammer-icon/mdi/round/keyboard_arrow_left.svg\";\nimport IconKeyboardArrowRight from \"@servicetitan/hammer-icon/mdi/round/keyboard_arrow_right.svg\";\n\nimport { Button } from \"../../Button\";\nimport { ANV_PART_ATTR } from \"../../../internal/constants/anvParts\";\nimport { PARTS } from \"../parts\";\n\nimport cx from \"classnames\";\nimport itemStyles from \"./PaginationItem.module.scss\";\nimport styles from \"./PaginationList.module.scss\";\n\ntype PaginationListProps = {\n page: number;\n totalPages: number;\n hasTotalItemCount?: boolean;\n onPageChange: (page: number) => void;\n children: React.ReactNode;\n className?: string;\n};\n\nexport const PaginationList = forwardRef<HTMLUListElement, PaginationListProps>(\n (props, ref) => {\n const {\n page,\n totalPages,\n hasTotalItemCount,\n children,\n onPageChange,\n className,\n } = props;\n\n const paginationListClassName = cx(styles[\"pagination-list\"], className);\n\n return (\n <ul ref={ref} className={paginationListClassName}>\n <li className={itemStyles[\"pagination-item\"]}>\n <Button\n appearance=\"ghost\"\n icon={IconKeyboardArrowLeft}\n size=\"small\"\n aria-label=\"Previous page\"\n disabled={page === 1}\n onClick={() => {\n if (page > 1) {\n onPageChange?.(page - 1);\n }\n }}\n {...{ [ANV_PART_ATTR]: PARTS.prevPageButton }}\n />\n </li>\n {children}\n <li className={itemStyles[\"pagination-item\"]}>\n <Button\n appearance=\"ghost\"\n icon={IconKeyboardArrowRight}\n size=\"small\"\n aria-label=\"Next page\"\n disabled={\n // Without a known total, Next stays enabled so page can grow.\n hasTotalItemCount !== false &&\n (totalPages === 0 || page === totalPages)\n }\n onClick={() => {\n if (totalPages === 0 || page < totalPages) {\n onPageChange?.(page + 1);\n }\n }}\n {...{ [ANV_PART_ATTR]: PARTS.nextPageButton }}\n />\n </li>\n </ul>\n );\n },\n);\n\nPaginationList.displayName = \"PaginationList\";\n","import cx from \"classnames\";\n\nimport { Text } from \"../../Text\";\n\nimport styles from \"./PaginationTotalCount.module.scss\";\n\nexport const PaginationTotalCount = ({\n itemRangeText,\n className,\n}: {\n itemRangeText: string;\n className?: string;\n}) => {\n const paginationTotalCountClassName = cx(\n styles[\"pagination-total-count\"],\n className,\n );\n return (\n <Text\n size=\"small\"\n className={paginationTotalCountClassName}\n // Duplicate of the wrapper live region; hide from AT here.\n aria-hidden=\"true\"\n >\n {itemRangeText}\n </Text>\n );\n};\n","import { type ComponentPropsWithoutRef, forwardRef } from \"react\";\nimport cx from \"classnames\";\n\nimport { PaginationItem } from \"./PaginationItem\";\nimport { PaginationOverflowMenu } from \"./PaginationOverflowMenu\";\nimport { PaginationItemsPerPageMenu } from \"./PaginationItemsPerPageMenu\";\nimport { PaginationList } from \"./PaginationList\";\nimport { PaginationTotalCount } from \"./PaginationTotalCount\";\n\nimport styles from \"./Pagination.module.scss\";\n\n/**\n * @extends ComponentPropsWithoutRef<\"nav\">\n */\nexport type PaginationProps = ComponentPropsWithoutRef<\"nav\">;\n\n/** Chrome host for the public Pagination wrapper's list and menus. */\nexport const Pagination = Object.assign(\n forwardRef<HTMLElement, PaginationProps>(\n function PaginationInner(props, ref) {\n const { className, children, ...rest } = props;\n\n const paginationClassName = cx(styles.pagination, className);\n\n return (\n <nav ref={ref} className={paginationClassName} {...rest}>\n {children}\n </nav>\n );\n },\n ),\n {\n /** Prev/next chrome around numbered page children. */\n List: PaginationList,\n /** Numbered page control. */\n Item: PaginationItem,\n /** Ellipsis menu for a contiguous hidden page range. */\n OverflowMenu: PaginationOverflowMenu,\n /** Page-size selector. */\n ItemsPerPageMenu: PaginationItemsPerPageMenu,\n /** Visible item-range text. Decorative; the live region is on the wrapper. */\n TotalCount: PaginationTotalCount,\n },\n);\nPagination.displayName = \"Pagination\";\n","import { useMemo, useRef } from \"react\";\n\nexport type PageArrayItem =\n | { type: \"page\"; page: number }\n | { type: \"overflow\"; startPage: number; endPage: number; length: number };\n\n/**\n * Visible page slots for the current page. Reuses the previous list when the\n * new page is already shown; regenerates when the page jumps across or into\n * an overflow range.\n *\n * `maxArrayLength` counts page buttons and overflow slots. Defaults to `7`.\n */\nexport const usePaginationArray = ({\n page,\n totalPages,\n maxArrayLength = 7,\n}: {\n page: number;\n totalPages: number;\n maxArrayLength?: number;\n}): PageArrayItem[] => {\n const prevRef = useRef<{\n array: PageArrayItem[];\n totalPages: number;\n maxArrayLength: number;\n prevPage: number;\n } | null>(null);\n\n return useMemo(() => {\n const maxPagesToShow = maxArrayLength - 2;\n let result: PageArrayItem[] = [];\n const addRange = (start: number, end: number) => {\n const count = end - start + 1;\n if (count === 1) {\n result.push({ type: \"page\", page: start });\n } else if (count >= 2) {\n result.push({\n type: \"overflow\",\n startPage: start,\n endPage: end,\n length: count,\n });\n }\n };\n\n if (totalPages <= maxArrayLength) {\n result = Array.from({ length: totalPages }, (_, i) => ({\n type: \"page\" as const,\n page: i + 1,\n }));\n } else if (page <= maxPagesToShow) {\n for (let i = 1; i <= maxPagesToShow; i++) {\n result.push({ type: \"page\", page: i });\n }\n addRange(maxArrayLength - 1, totalPages - 1);\n result.push({ type: \"page\", page: totalPages });\n } else if (page >= totalPages - maxPagesToShow + 1) {\n result.push({ type: \"page\", page: 1 });\n addRange(2, totalPages - maxPagesToShow);\n for (let i = totalPages - (maxPagesToShow - 1); i <= totalPages; i++) {\n result.push({ type: \"page\", page: i });\n }\n } else {\n result.push({ type: \"page\", page: 1 });\n addRange(2, page - 2);\n result.push({ type: \"page\", page: page - 1 });\n result.push({ type: \"page\", page: page });\n result.push({ type: \"page\", page: page + 1 });\n addRange(page + 2, totalPages - 1);\n result.push({ type: \"page\", page: totalPages });\n }\n\n const prev = prevRef.current;\n\n let shouldRemakeForJump = false;\n if (\n prev &&\n prev.totalPages === totalPages &&\n prev.maxArrayLength === maxArrayLength\n ) {\n const start = Math.min(prev.prevPage, page);\n const end = Math.max(prev.prevPage, page);\n const hasOverflowBetween = prev.array.some(\n (item) =>\n item.type === \"overflow\" &&\n // Intersects the jump range, including a one-sided overlap.\n !(item.endPage < start || item.startPage > end),\n );\n\n const newPageInOverflow = prev.array.some(\n (item) =>\n item.type === \"overflow\" &&\n item.startPage <= page &&\n item.endPage >= page,\n );\n\n shouldRemakeForJump = hasOverflowBetween || newPageInOverflow;\n }\n\n if (shouldRemakeForJump) {\n prevRef.current = {\n array: result,\n totalPages,\n maxArrayLength,\n prevPage: page,\n };\n return result;\n }\n\n if (\n prev &&\n prev.totalPages === totalPages &&\n prev.maxArrayLength === maxArrayLength &&\n prev.array.some((item) => item.type === \"page\" && item.page === page)\n ) {\n return prev.array;\n }\n\n prevRef.current = {\n array: result,\n totalPages,\n maxArrayLength,\n prevPage: page,\n };\n return result;\n }, [page, totalPages, maxArrayLength]);\n};\n","import { forwardRef, useLayoutEffect, useRef, useState } from \"react\";\nimport { core } from \"@servicetitan/hammer-token\";\n\nimport type { DataAttributes, DataTrackingId } from \"../../types\";\nimport { SrOnly } from \"../SrOnly\";\nimport { useTrackingId, useMergeRefs } from \"../../hooks\";\n\nimport {\n Pagination as BasePagination,\n type PaginationProps as BasePaginationProps,\n} from \"./internal/Pagination\";\nimport { usePaginationArray } from \"./internal/usePaginationArray\";\n\n/**\n * @extends Omit<BasePaginationProps, \"children\">\n * @extends DataTrackingId\n * @extends DataAttributes\n */\nexport type PaginationProps = Omit<BasePaginationProps, \"children\"> &\n DataTrackingId &\n DataAttributes & {\n /**\n * 1-based selected page. When it is not among the current page buttons\n * and there is at least one page, `onPageChange(1)` runs after paint.\n */\n page: number;\n /** Page size used for total pages and the item-range text. */\n itemsPerPage: number;\n /**\n * When set, shows the rows-per-page menu. Hidden below the small\n * breakpoint.\n */\n itemsPerPageOptions?: number[];\n /**\n * Item total across pages. Omit to leave Next unbounded. `0` is an\n * empty set.\n */\n totalItemCount?: number;\n /**\n * Shows the visible item-range text when `totalItemCount` is set.\n * Hidden below the small breakpoint. The live region still announces\n * page and range.\n */\n showCount?: boolean;\n /** Called with the new 1-based page. */\n onPageChange?: (page: number) => void;\n /** Called with the newly selected page size. */\n onItemsPerPageChange?: (itemsPerPage: number) => void;\n /** Label before the page-size menu. Defaults to `\"Rows per page\"`. */\n itemsPerPageLabel?: string;\n /**\n * Full item-range string, shown in the counter and after the live region's\n * `Page {page} of {totalPages}` prefix. Called with the first visible item\n * (1-based), the last visible item, and the total. When the total is `0`,\n * all three arguments are `0`. Not called when `totalItemCount` is omitted.\n * When this prop is omitted, the range reads `\"1 - 10 of 100 items\"`\n * (or `\"0 items\"`).\n *\n * @example\n * itemRangeFormatter={(first, last, total) =>\n * total === 0 ? \"0 files\" : `${first} - ${last} of ${total} files`\n * }\n */\n itemRangeFormatter?: (\n firstItem: number,\n lastItem: number,\n totalItemCount: number,\n ) => string;\n };\n\n/**\n * Paged navigation for a result set. Owns page-list generation, overflow,\n * and the live region; List/Item/menus are internal chrome.\n */\nexport const Pagination = forwardRef<HTMLDivElement, PaginationProps>(\n (props, ref) => {\n const {\n \"aria-label\": ariaLabel,\n page,\n itemsPerPage,\n itemsPerPageOptions,\n totalItemCount: totalItemCountProp,\n showCount,\n onPageChange,\n onItemsPerPageChange,\n itemsPerPageLabel,\n itemRangeFormatter,\n className,\n ...rest\n } = props;\n\n const data = {\n \"aria-label\": ariaLabel,\n };\n\n const trackingId = useTrackingId({\n name: \"Pagination\",\n data,\n hasOverride: !!rest[\"data-tracking-id\"],\n });\n const totalItemCount = totalItemCountProp ?? 0;\n const totalPages = Math.ceil(totalItemCount / itemsPerPage);\n const elRef = useRef<HTMLDivElement>(null);\n const combinedRef = useMergeRefs([elRef, ref]);\n const [isNarrow, setIsNarrow] = useState(false);\n\n const pageArray = usePaginationArray({\n page,\n totalPages,\n maxArrayLength: 7,\n });\n\n const isPageAvailable = pageArray.some(\n (item) => item.type === \"page\" && item.page === page,\n );\n\n if (!isPageAvailable && page !== 1 && totalPages > 0) {\n // After paint so `onPageChange` is not called during render.\n requestAnimationFrame(() => {\n onPageChange?.(1);\n });\n }\n\n const firstItem = totalItemCount > 0 ? 1 + (page - 1) * itemsPerPage : 0;\n const lastItem = Math.min(firstItem - 1 + itemsPerPage, totalItemCount);\n\n const defaultItemRangeText =\n totalItemCountProp === 0\n ? \"0 items\"\n : `${firstItem} - ${lastItem} of ${totalItemCount} items`;\n\n const itemRangeText =\n itemRangeFormatter && totalItemCountProp !== undefined\n ? itemRangeFormatter(firstItem, lastItem, totalItemCount)\n : defaultItemRangeText;\n\n useLayoutEffect(() => {\n const resizeObserver = new ResizeObserver((entries) => {\n const entry = entries[0];\n if (entry) {\n setIsNarrow(\n entry.contentRect.width <\n Number(core.primitive.BreakpointSm.value.replace(\"px\", \"\")),\n );\n }\n });\n if (elRef.current) {\n resizeObserver.observe(elRef.current);\n }\n return () => {\n resizeObserver.disconnect();\n };\n }, []);\n\n return (\n <BasePagination\n ref={combinedRef}\n data-tracking-id={trackingId}\n className={className}\n aria-label={ariaLabel || \"Pagination navigation\"}\n {...rest}\n >\n <BasePagination.List\n page={page}\n totalPages={totalPages}\n hasTotalItemCount={totalItemCountProp !== undefined}\n onPageChange={(page) => onPageChange?.(page)}\n >\n {pageArray.map((item) => {\n if (item.type === \"page\") {\n return (\n <BasePagination.Item\n key={item.page}\n page={item.page}\n isActive={item.page === page}\n onClick={() => onPageChange?.(item.page)}\n />\n );\n }\n return (\n <BasePagination.OverflowMenu\n key={item.startPage}\n startPage={item.startPage}\n endPage={item.endPage}\n length={item.length}\n currentPage={page}\n onItemClick={(item) => onPageChange?.(item)}\n />\n );\n })}\n </BasePagination.List>\n {isNarrow === false && (\n <>\n {itemsPerPageOptions && (\n <BasePagination.ItemsPerPageMenu\n itemsPerPage={itemsPerPage}\n itemsPerPageOptions={itemsPerPageOptions}\n onItemsPerPageChange={(itemsPerPage) =>\n onItemsPerPageChange?.(itemsPerPage)\n }\n itemsPerPageLabel={itemsPerPageLabel}\n />\n )}\n {showCount && totalItemCountProp !== undefined && (\n <BasePagination.TotalCount itemRangeText={itemRangeText} />\n )}\n </>\n )}\n <SrOnly aria-live=\"polite\" aria-atomic=\"true\">\n Page {page} of {totalPages}, {itemRangeText}\n </SrOnly>\n </BasePagination>\n );\n },\n);\n\nPagination.displayName = \"Pagination\";\n"],"names":["styles","IconMoreHoriz","ref","IconKeyboardArrowDown","IconKeyboardArrowLeft","IconKeyboardArrowRight","Pagination","core.primitive.BreakpointSm","BasePagination","page","item","itemsPerPage"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"Pagination-DYpUtMha.js","sources":["../src/components/Pagination/parts.ts","../src/components/Pagination/internal/PaginationItem.tsx","../src/components/Pagination/internal/PaginationOverflowMenu.tsx","../src/components/Pagination/internal/PaginationItemsPerPageMenu.tsx","../src/components/Pagination/internal/PaginationList.tsx","../src/components/Pagination/internal/PaginationTotalCount.tsx","../src/components/Pagination/internal/Pagination.tsx","../src/components/Pagination/internal/usePaginationArray.ts","../src/components/Pagination/Pagination.tsx"],"sourcesContent":["import { COMMON_PART } from \"../../internal/constants/anvParts\";\n\n/**\n * `data-anv-part` names for Pagination's interactive sub-elements.\n *\n * Repeated parts use `data-page` (page buttons / overflow options) or\n * `data-items-per-page`. Overflow and items-per-page menus render in the\n * top layer — target `option` by attribute, not as descendants of the root.\n */\nexport const PARTS = {\n /** Shared role for menu options (overflow pages + items-per-page). */\n option: COMMON_PART.option,\n\n prevPageButton: \"prev-page-button\",\n nextPageButton: \"next-page-button\",\n /** Numbered page control. Narrow with `data-page`. */\n pageButton: \"page-button\",\n overflowTrigger: \"overflow-trigger\",\n itemsPerPageTrigger: \"items-per-page-trigger\",\n} as const;\n","import { type ComponentPropsWithoutRef, forwardRef } from \"react\";\nimport cx from \"classnames\";\n\nimport { ButtonToggle } from \"../../ButtonToggle\";\nimport { ANV_PART_ATTR } from \"../../../internal/constants/anvParts\";\nimport { PARTS } from \"../parts\";\n\nimport styles from \"./PaginationItem.module.scss\";\n\n/**\n * @extends ComponentPropsWithoutRef<\"li\">\n */\nexport type PaginationItemProps = ComponentPropsWithoutRef<\"li\"> & {\n /** 1-based page this control represents. */\n page: number;\n /** Marks this control as the current page. Defaults to `false`. */\n isActive?: boolean;\n onClick?: () => void;\n};\n\n/** Numbered page control. */\nexport const PaginationItem = forwardRef<HTMLLIElement, PaginationItemProps>(\n (props, ref) => {\n const { page, isActive, onClick, className, ...rest } = props;\n\n const paginationClassName = cx(styles[\"pagination-item\"], className);\n const paginationButtonClassName = cx(styles[\"pagination-item-button\"], {\n [styles.active]: isActive,\n });\n return (\n <li ref={ref} {...rest} className={paginationClassName}>\n <ButtonToggle\n className={paginationButtonClassName}\n size=\"small\"\n onClick={onClick}\n aria-current={isActive ? \"page\" : undefined}\n aria-label={\n isActive ? `Current page, page ${page}` : `Go to page ${page}`\n }\n checked={isActive}\n data-page={page}\n {...{ [ANV_PART_ATTR]: PARTS.pageButton }}\n >\n {page}\n </ButtonToggle>\n </li>\n );\n },\n);\n\nPaginationItem.displayName = \"PaginationItem\";\n","import {\n type ComponentPropsWithoutRef,\n type KeyboardEvent,\n type UIEvent,\n forwardRef,\n useCallback,\n useLayoutEffect,\n useMemo,\n useRef,\n useState,\n} from \"react\";\nimport IconMoreHoriz from \"@servicetitan/hammer-icon/mdi/round/more_horiz.svg\";\n\nimport { Button } from \"../../Button\";\nimport { Menu } from \"../../Menu\";\nimport { ANV_PART_ATTR } from \"../../../internal/constants/anvParts\";\nimport { PARTS } from \"../parts\";\n\nimport styles from \"./PaginationOverflowMenu.module.scss\";\n\n// Fixed sizes so the windowed slice does not need layout measurement\n// (including jsdom). Padding matches Menu's scroller after this menu\n// resets the outer scroller padding.\nconst SCROLLER_MAX_HEIGHT = 200;\nconst ITEM_HEIGHT = 34;\nconst SCROLLER_PADDING_BLOCK = 8;\nconst SCROLLER_PADDING_INLINE = 8;\nconst OVERSCAN = 5;\n\n/**\n * @extends ComponentPropsWithoutRef<\"li\">\n */\nexport type PaginationOverflowMenuProps = ComponentPropsWithoutRef<\"li\"> & {\n /** First page in this collapsed range, inclusive. */\n startPage: number;\n /** Last page in this collapsed range, inclusive. */\n endPage: number;\n /** Inclusive page count; drives the virtualized scroller height. */\n length: number;\n /** Selected page on the parent; used as the menu's initial focus. */\n currentPage: number;\n /** Called with the chosen page from the overflow list. */\n onItemClick: (page: number) => void;\n};\n\n/**\n * Ellipsis menu for a collapsed page range. Only the visible scroller slice\n * is in the DOM, so long ranges stay cheap.\n */\nexport const PaginationOverflowMenu = forwardRef<\n HTMLLIElement,\n PaginationOverflowMenuProps\n>((props, ref) => {\n const { startPage, endPage, length, currentPage, onItemClick, ...rest } =\n props;\n\n const [scrollTop, setScrollTop] = useState(0);\n const [pendingFocusPage, setPendingFocusPage] = useState<number | null>(null);\n const scrollerRef = useRef<HTMLDivElement>(null);\n\n const getInitialFocusPage = useCallback(() => {\n return Math.min(endPage, Math.max(startPage, currentPage));\n }, [currentPage, endPage, startPage]);\n\n const getScrollTopForIndex = useCallback(\n (index: number, currentScrollTop: number) => {\n const itemTop = SCROLLER_PADDING_BLOCK + index * ITEM_HEIGHT;\n const itemBottom = itemTop + ITEM_HEIGHT;\n const viewportBottom = currentScrollTop + SCROLLER_MAX_HEIGHT;\n\n if (itemTop < currentScrollTop) {\n return itemTop;\n }\n\n if (itemBottom > viewportBottom) {\n return itemBottom - SCROLLER_MAX_HEIGHT;\n }\n\n return currentScrollTop;\n },\n [],\n );\n\n const syncScrollTop = useCallback((nextScrollTop: number) => {\n setScrollTop(nextScrollTop);\n\n if (\n scrollerRef.current &&\n scrollerRef.current.scrollTop !== nextScrollTop\n ) {\n scrollerRef.current.scrollTop = nextScrollTop;\n }\n }, []);\n\n const focusLogicalPage = useCallback(\n (pageNumber: number) => {\n const targetIndex = pageNumber - startPage;\n const nextScrollTop = getScrollTopForIndex(targetIndex, scrollTop);\n\n if (nextScrollTop !== scrollTop) {\n syncScrollTop(nextScrollTop);\n }\n\n setPendingFocusPage(pageNumber);\n },\n [getScrollTopForIndex, scrollTop, startPage, syncScrollTop],\n );\n\n const handleScroll = useCallback((event: UIEvent<HTMLDivElement>) => {\n setScrollTop(event.currentTarget.scrollTop);\n }, []);\n\n const containUnhandledScrollerKeyDown = useCallback(\n (event: KeyboardEvent<HTMLDivElement>) => {\n if (event.code !== \"ArrowDown\" && event.code !== \"ArrowUp\") {\n return;\n }\n\n event.preventDefault();\n event.stopPropagation();\n },\n [],\n );\n\n const handleItemKeyDown = useCallback(\n (event: KeyboardEvent<HTMLButtonElement>, pageNumber: number) => {\n if (event.code !== \"ArrowDown\" && event.code !== \"ArrowUp\") {\n return;\n }\n\n event.preventDefault();\n event.stopPropagation();\n\n const nextPage =\n event.code === \"ArrowDown\"\n ? pageNumber === endPage\n ? startPage\n : pageNumber + 1\n : pageNumber === startPage\n ? endPage\n : pageNumber - 1;\n\n focusLogicalPage(nextPage);\n },\n [endPage, focusLogicalPage, startPage],\n );\n\n const visibleCount = Math.ceil(SCROLLER_MAX_HEIGHT / ITEM_HEIGHT);\n const paddedScrollTop = Math.max(0, scrollTop - SCROLLER_PADDING_BLOCK);\n const startIndex = Math.max(\n 0,\n Math.floor(paddedScrollTop / ITEM_HEIGHT) - OVERSCAN,\n );\n const endIndex = Math.min(length, startIndex + visibleCount + OVERSCAN * 2);\n const totalSize = length * ITEM_HEIGHT + SCROLLER_PADDING_BLOCK * 2;\n\n const visibleIndices = useMemo(() => {\n const indices: number[] = [];\n for (let i = startIndex; i < endIndex; i++) {\n indices.push(i);\n }\n return indices;\n }, [endIndex, startIndex]);\n\n useLayoutEffect(() => {\n if (pendingFocusPage === null) {\n return;\n }\n\n const targetElement = scrollerRef.current?.querySelector<HTMLElement>(\n `[data-pagination-page=\"${pendingFocusPage}\"]`,\n );\n\n if (!targetElement) {\n return;\n }\n\n targetElement.focus();\n setPendingFocusPage(null);\n }, [pendingFocusPage, visibleIndices]);\n\n return (\n <li className={styles[\"pagination-item-overflow-menu\"]} ref={ref} {...rest}>\n <Menu\n trigger={(triggerProps) => {\n const isOpen = triggerProps[\"aria-expanded\"] === true;\n\n return (\n <Button\n ref={triggerProps.ref}\n onClick={() => {\n if (!isOpen) {\n focusLogicalPage(getInitialFocusPage());\n }\n triggerProps.onClick?.();\n }}\n onKeyDown={(event) => {\n if (event.code === \"ArrowDown\" || event.code === \"ArrowUp\") {\n event.preventDefault();\n event.stopPropagation();\n focusLogicalPage(getInitialFocusPage());\n\n if (!isOpen) {\n triggerProps.onClick?.();\n }\n\n return;\n }\n\n triggerProps.onKeyDown?.(event);\n }}\n aria-haspopup={triggerProps[\"aria-haspopup\"]}\n aria-controls={triggerProps[\"aria-controls\"]}\n aria-expanded={triggerProps[\"aria-expanded\"]}\n data-state={triggerProps[\"data-state\"]}\n icon={IconMoreHoriz}\n size=\"small\"\n appearance=\"ghost\"\n aria-label=\"More pages\"\n {...{ [ANV_PART_ATTR]: PARTS.overflowTrigger }}\n />\n );\n }}\n // Remount when the collapsed range changes so scroll/focus do not leak.\n key={`${startPage}-${endPage}`}\n // Bypass Menu's built-in scroller so the windowed list can size the popover.\n contentClassName={styles[\"pagination-item-overflow-menu-content\"]}\n aria-label=\"More pages\"\n >\n {/* Keyboard handler is fallback containment only; child menu items remain focus targets. */}\n {/* eslint-disable-next-line jsx-a11y/no-static-element-interactions */}\n <div\n ref={scrollerRef}\n data-pagination-overflow-scroller=\"true\"\n onKeyDown={containUnhandledScrollerKeyDown}\n onScroll={handleScroll}\n style={{\n maxHeight: SCROLLER_MAX_HEIGHT,\n overflowY: \"auto\",\n position: \"relative\",\n }}\n >\n <div\n style={{\n height: totalSize,\n position: \"relative\",\n width: \"100%\",\n }}\n >\n {visibleIndices.map((index) => {\n const pageNumber = startPage + index;\n return (\n <Menu.Item\n key={pageNumber}\n data-pagination-page={pageNumber}\n data-page={pageNumber}\n {...{ [ANV_PART_ATTR]: PARTS.option }}\n label={`${pageNumber}`}\n onKeyDown={(event) => handleItemKeyDown(event, pageNumber)}\n onClick={(event) => {\n const paginationNav = event.currentTarget.closest(\"nav\");\n onItemClick(pageNumber);\n // Scope lookup to this pagination so multiple mounted\n // paginations do not steal focus from one another.\n setTimeout(() => {\n paginationNav\n ?.querySelector<HTMLElement>('[aria-current=\"page\"]')\n ?.focus();\n }, 100);\n }}\n style={{\n position: \"absolute\",\n top: 0,\n left: SCROLLER_PADDING_INLINE,\n right: SCROLLER_PADDING_INLINE,\n transform: `translateY(${\n SCROLLER_PADDING_BLOCK + index * ITEM_HEIGHT\n }px)`,\n height: ITEM_HEIGHT,\n }}\n />\n );\n })}\n </div>\n </div>\n </Menu>\n </li>\n );\n});\n\nPaginationOverflowMenu.displayName = \"PaginationOverflowMenu\";\n","import { forwardRef, type KeyboardEvent } from \"react\";\nimport IconKeyboardArrowDown from \"@servicetitan/hammer-icon/mdi/round/keyboard_arrow_down.svg\";\n\nimport { Button } from \"../../Button\";\nimport { Flex } from \"../../Flex\";\nimport { Menu } from \"../../Menu\";\nimport { Text } from \"../../Text\";\nimport { ANV_PART_ATTR } from \"../../../internal/constants/anvParts\";\nimport { PARTS } from \"../parts\";\n\nimport styles from \"./PaginationItemsPerPageMenu.module.scss\";\n\nexport type PaginationItemsPerPageMenuProps = {\n /** Current page size shown on the trigger. */\n itemsPerPage: number;\n /** Menu options; selecting one calls `onItemsPerPageChange`. */\n itemsPerPageOptions: number[];\n /** Called with the newly selected page size. */\n onItemsPerPageChange: (itemsPerPage: number) => void;\n /** Label before the trigger. Defaults to `\"Rows per page\"`. */\n itemsPerPageLabel?: string;\n};\n\n/** Page-size selector used by the public Pagination wrapper. */\nexport const PaginationItemsPerPageMenu = forwardRef<\n HTMLDivElement,\n PaginationItemsPerPageMenuProps\n>((props, ref) => {\n const {\n itemsPerPage,\n itemsPerPageOptions,\n onItemsPerPageChange,\n itemsPerPageLabel = \"Rows per page\",\n } = props;\n\n // Custom trigger: Menu does not move focus on ArrowUp/ArrowDown.\n const handleKeyDown = (e: KeyboardEvent<HTMLButtonElement>) => {\n if (e.code === \"ArrowDown\" || e.code === \"ArrowUp\") {\n e.preventDefault();\n const menuId = e.currentTarget.getAttribute(\"aria-controls\");\n\n setTimeout(() => {\n const menu = menuId ? document.getElementById(menuId) : null;\n const menuItems =\n menu?.querySelectorAll('[data-anv=\"menu-item\"]') ||\n document.querySelectorAll('[data-anv=\"menu-item\"]');\n\n (menuItems[0] as HTMLElement)?.focus();\n }, 100);\n }\n };\n\n return (\n <Flex alignItems=\"center\" gap=\"2\" ref={ref}>\n <Text size=\"small\">{itemsPerPageLabel}</Text>\n <Menu\n trigger={({ ref, ...rest }) => {\n return (\n <Button\n ref={ref}\n {...rest}\n onKeyDown={handleKeyDown}\n className={styles[\"pagination-items-per-page-button\"]}\n appearance=\"ghost\"\n icon={{ after: IconKeyboardArrowDown }}\n size=\"small\"\n {...{ [ANV_PART_ATTR]: PARTS.itemsPerPageTrigger }}\n >\n {itemsPerPage}\n </Button>\n );\n }}\n >\n {itemsPerPageOptions.map((option) => (\n <Menu.Item\n key={option}\n label={option}\n data-items-per-page={option}\n {...{ [ANV_PART_ATTR]: PARTS.option }}\n onClick={() => {\n onItemsPerPageChange?.(option);\n }}\n />\n ))}\n </Menu>\n </Flex>\n );\n});\n\nPaginationItemsPerPageMenu.displayName = \"PaginationItemsPerPageMenu\";\n","import { forwardRef } from \"react\";\nimport IconKeyboardArrowLeft from \"@servicetitan/hammer-icon/mdi/round/keyboard_arrow_left.svg\";\nimport IconKeyboardArrowRight from \"@servicetitan/hammer-icon/mdi/round/keyboard_arrow_right.svg\";\n\nimport { Button } from \"../../Button\";\nimport { ANV_PART_ATTR } from \"../../../internal/constants/anvParts\";\nimport { PARTS } from \"../parts\";\n\nimport cx from \"classnames\";\nimport itemStyles from \"./PaginationItem.module.scss\";\nimport styles from \"./PaginationList.module.scss\";\n\ntype PaginationListProps = {\n page: number;\n totalPages: number;\n hasTotalItemCount?: boolean;\n onPageChange: (page: number) => void;\n children: React.ReactNode;\n className?: string;\n};\n\nexport const PaginationList = forwardRef<HTMLUListElement, PaginationListProps>(\n (props, ref) => {\n const {\n page,\n totalPages,\n hasTotalItemCount,\n children,\n onPageChange,\n className,\n } = props;\n\n const paginationListClassName = cx(styles[\"pagination-list\"], className);\n\n return (\n <ul ref={ref} className={paginationListClassName}>\n <li className={itemStyles[\"pagination-item\"]}>\n <Button\n appearance=\"ghost\"\n icon={IconKeyboardArrowLeft}\n size=\"small\"\n aria-label=\"Previous page\"\n disabled={page === 1}\n onClick={() => {\n if (page > 1) {\n onPageChange?.(page - 1);\n }\n }}\n {...{ [ANV_PART_ATTR]: PARTS.prevPageButton }}\n />\n </li>\n {children}\n <li className={itemStyles[\"pagination-item\"]}>\n <Button\n appearance=\"ghost\"\n icon={IconKeyboardArrowRight}\n size=\"small\"\n aria-label=\"Next page\"\n disabled={\n // Without a known total, Next stays enabled so page can grow.\n hasTotalItemCount !== false &&\n (totalPages === 0 || page === totalPages)\n }\n onClick={() => {\n if (totalPages === 0 || page < totalPages) {\n onPageChange?.(page + 1);\n }\n }}\n {...{ [ANV_PART_ATTR]: PARTS.nextPageButton }}\n />\n </li>\n </ul>\n );\n },\n);\n\nPaginationList.displayName = \"PaginationList\";\n","import cx from \"classnames\";\n\nimport { Text } from \"../../Text\";\n\nimport styles from \"./PaginationTotalCount.module.scss\";\n\nexport const PaginationTotalCount = ({\n itemRangeText,\n className,\n}: {\n itemRangeText: string;\n className?: string;\n}) => {\n const paginationTotalCountClassName = cx(\n styles[\"pagination-total-count\"],\n className,\n );\n return (\n <Text\n size=\"small\"\n className={paginationTotalCountClassName}\n // Duplicate of the wrapper live region; hide from AT here.\n aria-hidden=\"true\"\n >\n {itemRangeText}\n </Text>\n );\n};\n","import { type ComponentPropsWithoutRef, forwardRef } from \"react\";\nimport cx from \"classnames\";\n\nimport { PaginationItem } from \"./PaginationItem\";\nimport { PaginationOverflowMenu } from \"./PaginationOverflowMenu\";\nimport { PaginationItemsPerPageMenu } from \"./PaginationItemsPerPageMenu\";\nimport { PaginationList } from \"./PaginationList\";\nimport { PaginationTotalCount } from \"./PaginationTotalCount\";\n\nimport styles from \"./Pagination.module.scss\";\n\n/**\n * @extends ComponentPropsWithoutRef<\"nav\">\n */\nexport type PaginationProps = ComponentPropsWithoutRef<\"nav\">;\n\n/** Chrome host for the public Pagination wrapper's list and menus. */\nexport const Pagination = Object.assign(\n forwardRef<HTMLElement, PaginationProps>(\n function PaginationInner(props, ref) {\n const { className, children, ...rest } = props;\n\n const paginationClassName = cx(styles.pagination, className);\n\n return (\n <nav ref={ref} className={paginationClassName} {...rest}>\n {children}\n </nav>\n );\n },\n ),\n {\n /** Prev/next chrome around numbered page children. */\n List: PaginationList,\n /** Numbered page control. */\n Item: PaginationItem,\n /** Ellipsis menu for a contiguous hidden page range. */\n OverflowMenu: PaginationOverflowMenu,\n /** Page-size selector. */\n ItemsPerPageMenu: PaginationItemsPerPageMenu,\n /** Visible item-range text. Decorative; the live region is on the wrapper. */\n TotalCount: PaginationTotalCount,\n },\n);\nPagination.displayName = \"Pagination\";\n","import { useMemo, useRef } from \"react\";\n\nexport type PageArrayItem =\n | { type: \"page\"; page: number }\n | { type: \"overflow\"; startPage: number; endPage: number; length: number };\n\n/**\n * Visible page slots for the current page. Reuses the previous list when the\n * new page is already shown; regenerates when the page jumps across or into\n * an overflow range.\n *\n * `maxArrayLength` counts page buttons and overflow slots. Defaults to `7`.\n */\nexport const usePaginationArray = ({\n page,\n totalPages,\n maxArrayLength = 7,\n}: {\n page: number;\n totalPages: number;\n maxArrayLength?: number;\n}): PageArrayItem[] => {\n const prevRef = useRef<{\n array: PageArrayItem[];\n totalPages: number;\n maxArrayLength: number;\n prevPage: number;\n } | null>(null);\n\n return useMemo(() => {\n const maxPagesToShow = maxArrayLength - 2;\n let result: PageArrayItem[] = [];\n const addRange = (start: number, end: number) => {\n const count = end - start + 1;\n if (count === 1) {\n result.push({ type: \"page\", page: start });\n } else if (count >= 2) {\n result.push({\n type: \"overflow\",\n startPage: start,\n endPage: end,\n length: count,\n });\n }\n };\n\n if (totalPages <= maxArrayLength) {\n result = Array.from({ length: totalPages }, (_, i) => ({\n type: \"page\" as const,\n page: i + 1,\n }));\n } else if (page <= maxPagesToShow) {\n for (let i = 1; i <= maxPagesToShow; i++) {\n result.push({ type: \"page\", page: i });\n }\n addRange(maxArrayLength - 1, totalPages - 1);\n result.push({ type: \"page\", page: totalPages });\n } else if (page >= totalPages - maxPagesToShow + 1) {\n result.push({ type: \"page\", page: 1 });\n addRange(2, totalPages - maxPagesToShow);\n for (let i = totalPages - (maxPagesToShow - 1); i <= totalPages; i++) {\n result.push({ type: \"page\", page: i });\n }\n } else {\n result.push({ type: \"page\", page: 1 });\n addRange(2, page - 2);\n result.push({ type: \"page\", page: page - 1 });\n result.push({ type: \"page\", page: page });\n result.push({ type: \"page\", page: page + 1 });\n addRange(page + 2, totalPages - 1);\n result.push({ type: \"page\", page: totalPages });\n }\n\n const prev = prevRef.current;\n\n let shouldRemakeForJump = false;\n if (\n prev &&\n prev.totalPages === totalPages &&\n prev.maxArrayLength === maxArrayLength\n ) {\n const start = Math.min(prev.prevPage, page);\n const end = Math.max(prev.prevPage, page);\n const hasOverflowBetween = prev.array.some(\n (item) =>\n item.type === \"overflow\" &&\n // Intersects the jump range, including a one-sided overlap.\n !(item.endPage < start || item.startPage > end),\n );\n\n const newPageInOverflow = prev.array.some(\n (item) =>\n item.type === \"overflow\" &&\n item.startPage <= page &&\n item.endPage >= page,\n );\n\n shouldRemakeForJump = hasOverflowBetween || newPageInOverflow;\n }\n\n if (shouldRemakeForJump) {\n prevRef.current = {\n array: result,\n totalPages,\n maxArrayLength,\n prevPage: page,\n };\n return result;\n }\n\n if (\n prev &&\n prev.totalPages === totalPages &&\n prev.maxArrayLength === maxArrayLength &&\n prev.array.some((item) => item.type === \"page\" && item.page === page)\n ) {\n return prev.array;\n }\n\n prevRef.current = {\n array: result,\n totalPages,\n maxArrayLength,\n prevPage: page,\n };\n return result;\n }, [page, totalPages, maxArrayLength]);\n};\n","import { forwardRef, useLayoutEffect, useRef, useState } from \"react\";\nimport { core } from \"@servicetitan/hammer-token\";\n\nimport type { DataAttributes, DataTrackingId } from \"../../types\";\nimport { SrOnly } from \"../SrOnly\";\nimport { useTrackingId, useMergeRefs } from \"../../hooks\";\n\nimport {\n Pagination as BasePagination,\n type PaginationProps as BasePaginationProps,\n} from \"./internal/Pagination\";\nimport { usePaginationArray } from \"./internal/usePaginationArray\";\n\n/**\n * @extends Omit<BasePaginationProps, \"children\">\n * @extends DataTrackingId\n * @extends DataAttributes\n */\nexport type PaginationProps = Omit<BasePaginationProps, \"children\"> &\n DataTrackingId &\n DataAttributes & {\n /**\n * 1-based selected page. When it is not among the current page buttons\n * and there is at least one page, `onPageChange(1)` runs after paint.\n */\n page: number;\n /** Page size used for total pages and the item-range text. */\n itemsPerPage: number;\n /**\n * When set, shows the rows-per-page menu. Hidden below the small\n * breakpoint.\n */\n itemsPerPageOptions?: number[];\n /**\n * Item total across pages. Omit to leave Next unbounded. `0` is an\n * empty set.\n */\n totalItemCount?: number;\n /**\n * Shows the visible item-range text when `totalItemCount` is set.\n * Hidden below the small breakpoint. The live region still announces\n * page and range.\n */\n showCount?: boolean;\n /** Called with the new 1-based page. */\n onPageChange?: (page: number) => void;\n /** Called with the newly selected page size. */\n onItemsPerPageChange?: (itemsPerPage: number) => void;\n /** Label before the page-size menu. Defaults to `\"Rows per page\"`. */\n itemsPerPageLabel?: string;\n /**\n * Full item-range string, shown in the counter and after the live region's\n * `Page {page} of {totalPages}` prefix. Called with the first visible item\n * (1-based), the last visible item, and the total. When the total is `0`,\n * all three arguments are `0`. Not called when `totalItemCount` is omitted.\n * When this prop is omitted, the range reads `\"1 - 10 of 100 items\"`\n * (or `\"0 items\"`).\n *\n * @example\n * itemRangeFormatter={(first, last, total) =>\n * total === 0 ? \"0 files\" : `${first} - ${last} of ${total} files`\n * }\n */\n itemRangeFormatter?: (\n firstItem: number,\n lastItem: number,\n totalItemCount: number,\n ) => string;\n };\n\n/**\n * Paged navigation for a result set. Owns page-list generation, overflow,\n * and the live region; List/Item/menus are internal chrome.\n */\nexport const Pagination = forwardRef<HTMLDivElement, PaginationProps>(\n (props, ref) => {\n const {\n \"aria-label\": ariaLabel,\n page,\n itemsPerPage,\n itemsPerPageOptions,\n totalItemCount: totalItemCountProp,\n showCount,\n onPageChange,\n onItemsPerPageChange,\n itemsPerPageLabel,\n itemRangeFormatter,\n className,\n ...rest\n } = props;\n\n const data = {\n \"aria-label\": ariaLabel,\n };\n\n const trackingId = useTrackingId({\n name: \"Pagination\",\n data,\n hasOverride: !!rest[\"data-tracking-id\"],\n });\n const totalItemCount = totalItemCountProp ?? 0;\n const totalPages = Math.ceil(totalItemCount / itemsPerPage);\n const elRef = useRef<HTMLDivElement>(null);\n const combinedRef = useMergeRefs([elRef, ref]);\n const [isNarrow, setIsNarrow] = useState(false);\n\n const pageArray = usePaginationArray({\n page,\n totalPages,\n maxArrayLength: 7,\n });\n\n const isPageAvailable = pageArray.some(\n (item) => item.type === \"page\" && item.page === page,\n );\n\n if (!isPageAvailable && page !== 1 && totalPages > 0) {\n // After paint so `onPageChange` is not called during render.\n requestAnimationFrame(() => {\n onPageChange?.(1);\n });\n }\n\n const firstItem = totalItemCount > 0 ? 1 + (page - 1) * itemsPerPage : 0;\n const lastItem = Math.min(firstItem - 1 + itemsPerPage, totalItemCount);\n\n const defaultItemRangeText =\n totalItemCountProp === 0\n ? \"0 items\"\n : `${firstItem} - ${lastItem} of ${totalItemCount} items`;\n\n const itemRangeText =\n itemRangeFormatter && totalItemCountProp !== undefined\n ? itemRangeFormatter(firstItem, lastItem, totalItemCount)\n : defaultItemRangeText;\n\n useLayoutEffect(() => {\n const resizeObserver = new ResizeObserver((entries) => {\n const entry = entries[0];\n if (entry) {\n setIsNarrow(\n entry.contentRect.width <\n Number(core.primitive.BreakpointSm.value.replace(\"px\", \"\")),\n );\n }\n });\n if (elRef.current) {\n resizeObserver.observe(elRef.current);\n }\n return () => {\n resizeObserver.disconnect();\n };\n }, []);\n\n return (\n <BasePagination\n ref={combinedRef}\n data-tracking-id={trackingId}\n className={className}\n aria-label={ariaLabel || \"Pagination navigation\"}\n {...rest}\n >\n <BasePagination.List\n page={page}\n totalPages={totalPages}\n hasTotalItemCount={totalItemCountProp !== undefined}\n onPageChange={(page) => onPageChange?.(page)}\n >\n {pageArray.map((item) => {\n if (item.type === \"page\") {\n return (\n <BasePagination.Item\n key={item.page}\n page={item.page}\n isActive={item.page === page}\n onClick={() => onPageChange?.(item.page)}\n />\n );\n }\n return (\n <BasePagination.OverflowMenu\n key={item.startPage}\n startPage={item.startPage}\n endPage={item.endPage}\n length={item.length}\n currentPage={page}\n onItemClick={(item) => onPageChange?.(item)}\n />\n );\n })}\n </BasePagination.List>\n {isNarrow === false && (\n <>\n {itemsPerPageOptions && (\n <BasePagination.ItemsPerPageMenu\n itemsPerPage={itemsPerPage}\n itemsPerPageOptions={itemsPerPageOptions}\n onItemsPerPageChange={(itemsPerPage) =>\n onItemsPerPageChange?.(itemsPerPage)\n }\n itemsPerPageLabel={itemsPerPageLabel}\n />\n )}\n {showCount && totalItemCountProp !== undefined && (\n <BasePagination.TotalCount itemRangeText={itemRangeText} />\n )}\n </>\n )}\n <SrOnly aria-live=\"polite\" aria-atomic=\"true\">\n Page {page} of {totalPages}, {itemRangeText}\n </SrOnly>\n </BasePagination>\n );\n },\n);\n\nPagination.displayName = \"Pagination\";\n"],"names":["styles","IconMoreHoriz","ref","IconKeyboardArrowDown","IconKeyboardArrowLeft","IconKeyboardArrowRight","Pagination","core.primitive.BreakpointSm","BasePagination","page","item","itemsPerPage"],"mappings":";;;;;;;;;;;;;;;;;;AASO,MAAM,KAAA,GAAQ;AAAA;AAAA,EAEnB,QAAQ,WAAA,CAAY,MAAA;AAAA,EAEpB,cAAA,EAAgB,kBAAA;AAAA,EAChB,cAAA,EAAgB,kBAAA;AAAA;AAAA,EAEhB,UAAA,EAAY,aAAA;AAAA,EACZ,eAAA,EAAiB,kBAAA;AAAA,EACjB,mBAAA,EAAqB;AACvB;;;;;;;ACEO,MAAM,cAAA,GAAiB,UAAA;AAAA,EAC5B,CAAC,OAAO,GAAA,KAAQ;AACd,IAAA,MAAM,EAAE,IAAA,EAAM,QAAA,EAAU,SAAS,SAAA,EAAW,GAAG,MAAK,GAAI,KAAA;AAExD,IAAA,MAAM,mBAAA,GAAsB,EAAA,CAAGA,UAAA,CAAO,iBAAiB,GAAG,SAAS,CAAA;AACnE,IAAA,MAAM,yBAAA,GAA4B,EAAA,CAAGA,UAAA,CAAO,wBAAwB,CAAA,EAAG;AAAA,MACrE,CAACA,UAAA,CAAO,MAAM,GAAG;AAAA,KAClB,CAAA;AACD,IAAA,2BACG,IAAA,EAAA,EAAG,GAAA,EAAW,GAAG,IAAA,EAAM,WAAW,mBAAA,EACjC,QAAA,kBAAA,GAAA;AAAA,MAAC,YAAA;AAAA,MAAA;AAAA,QACC,SAAA,EAAW,yBAAA;AAAA,QACX,IAAA,EAAK,OAAA;AAAA,QACL,OAAA;AAAA,QACA,cAAA,EAAc,WAAW,MAAA,GAAS,MAAA;AAAA,QAClC,cACE,QAAA,GAAW,CAAA,mBAAA,EAAsB,IAAI,CAAA,CAAA,GAAK,cAAc,IAAI,CAAA,CAAA;AAAA,QAE9D,OAAA,EAAS,QAAA;AAAA,QACT,WAAA,EAAW,IAAA;AAAA,QACV,GAAG,EAAE,CAAC,aAAa,GAAG,MAAM,UAAA,EAAW;AAAA,QAEvC,QAAA,EAAA;AAAA;AAAA,KACH,EACF,CAAA;AAAA,EAEJ;AACF,CAAA;AAEA,cAAA,CAAe,WAAA,GAAc,gBAAA;;;;;;;AC3B7B,MAAM,mBAAA,GAAsB,GAAA;AAC5B,MAAM,WAAA,GAAc,EAAA;AACpB,MAAM,sBAAA,GAAyB,CAAA;AAC/B,MAAM,uBAAA,GAA0B,CAAA;AAChC,MAAM,QAAA,GAAW,CAAA;AAsBV,MAAM,sBAAA,GAAyB,UAAA,CAGpC,CAAC,KAAA,EAAO,GAAA,KAAQ;AAChB,EAAA,MAAM,EAAE,WAAW,OAAA,EAAS,MAAA,EAAQ,aAAa,WAAA,EAAa,GAAG,MAAK,GACpE,KAAA;AAEF,EAAA,MAAM,CAAC,SAAA,EAAW,YAAY,CAAA,GAAI,SAAS,CAAC,CAAA;AAC5C,EAAA,MAAM,CAAC,gBAAA,EAAkB,mBAAmB,CAAA,GAAI,SAAwB,IAAI,CAAA;AAC5E,EAAA,MAAM,WAAA,GAAc,OAAuB,IAAI,CAAA;AAE/C,EAAA,MAAM,mBAAA,GAAsB,YAAY,MAAM;AAC5C,IAAA,OAAO,KAAK,GAAA,CAAI,OAAA,EAAS,KAAK,GAAA,CAAI,SAAA,EAAW,WAAW,CAAC,CAAA;AAAA,EAC3D,CAAA,EAAG,CAAC,WAAA,EAAa,OAAA,EAAS,SAAS,CAAC,CAAA;AAEpC,EAAA,MAAM,oBAAA,GAAuB,WAAA;AAAA,IAC3B,CAAC,OAAe,gBAAA,KAA6B;AAC3C,MAAA,MAAM,OAAA,GAAU,yBAAyB,KAAA,GAAQ,WAAA;AACjD,MAAA,MAAM,aAAa,OAAA,GAAU,WAAA;AAC7B,MAAA,MAAM,iBAAiB,gBAAA,GAAmB,mBAAA;AAE1C,MAAA,IAAI,UAAU,gBAAA,EAAkB;AAC9B,QAAA,OAAO,OAAA;AAAA,MACT;AAEA,MAAA,IAAI,aAAa,cAAA,EAAgB;AAC/B,QAAA,OAAO,UAAA,GAAa,mBAAA;AAAA,MACtB;AAEA,MAAA,OAAO,gBAAA;AAAA,IACT,CAAA;AAAA,IACA;AAAC,GACH;AAEA,EAAA,MAAM,aAAA,GAAgB,WAAA,CAAY,CAAC,aAAA,KAA0B;AAC3D,IAAA,YAAA,CAAa,aAAa,CAAA;AAE1B,IAAA,IACE,WAAA,CAAY,OAAA,IACZ,WAAA,CAAY,OAAA,CAAQ,cAAc,aAAA,EAClC;AACA,MAAA,WAAA,CAAY,QAAQ,SAAA,GAAY,aAAA;AAAA,IAClC;AAAA,EACF,CAAA,EAAG,EAAE,CAAA;AAEL,EAAA,MAAM,gBAAA,GAAmB,WAAA;AAAA,IACvB,CAAC,UAAA,KAAuB;AACtB,MAAA,MAAM,cAAc,UAAA,GAAa,SAAA;AACjC,MAAA,MAAM,aAAA,GAAgB,oBAAA,CAAqB,WAAA,EAAa,SAAS,CAAA;AAEjE,MAAA,IAAI,kBAAkB,SAAA,EAAW;AAC/B,QAAA,aAAA,CAAc,aAAa,CAAA;AAAA,MAC7B;AAEA,MAAA,mBAAA,CAAoB,UAAU,CAAA;AAAA,IAChC,CAAA;AAAA,IACA,CAAC,oBAAA,EAAsB,SAAA,EAAW,SAAA,EAAW,aAAa;AAAA,GAC5D;AAEA,EAAA,MAAM,YAAA,GAAe,WAAA,CAAY,CAAC,KAAA,KAAmC;AACnE,IAAA,YAAA,CAAa,KAAA,CAAM,cAAc,SAAS,CAAA;AAAA,EAC5C,CAAA,EAAG,EAAE,CAAA;AAEL,EAAA,MAAM,+BAAA,GAAkC,WAAA;AAAA,IACtC,CAAC,KAAA,KAAyC;AACxC,MAAA,IAAI,KAAA,CAAM,IAAA,KAAS,WAAA,IAAe,KAAA,CAAM,SAAS,SAAA,EAAW;AAC1D,QAAA;AAAA,MACF;AAEA,MAAA,KAAA,CAAM,cAAA,EAAe;AACrB,MAAA,KAAA,CAAM,eAAA,EAAgB;AAAA,IACxB,CAAA;AAAA,IACA;AAAC,GACH;AAEA,EAAA,MAAM,iBAAA,GAAoB,WAAA;AAAA,IACxB,CAAC,OAAyC,UAAA,KAAuB;AAC/D,MAAA,IAAI,KAAA,CAAM,IAAA,KAAS,WAAA,IAAe,KAAA,CAAM,SAAS,SAAA,EAAW;AAC1D,QAAA;AAAA,MACF;AAEA,MAAA,KAAA,CAAM,cAAA,EAAe;AACrB,MAAA,KAAA,CAAM,eAAA,EAAgB;AAEtB,MAAA,MAAM,QAAA,GACJ,KAAA,CAAM,IAAA,KAAS,WAAA,GACX,UAAA,KAAe,OAAA,GACb,SAAA,GACA,UAAA,GAAa,CAAA,GACf,UAAA,KAAe,SAAA,GACb,OAAA,GACA,UAAA,GAAa,CAAA;AAErB,MAAA,gBAAA,CAAiB,QAAQ,CAAA;AAAA,IAC3B,CAAA;AAAA,IACA,CAAC,OAAA,EAAS,gBAAA,EAAkB,SAAS;AAAA,GACvC;AAEA,EAAA,MAAM,YAAA,GAAe,IAAA,CAAK,IAAA,CAAK,mBAAA,GAAsB,WAAW,CAAA;AAChE,EAAA,MAAM,eAAA,GAAkB,IAAA,CAAK,GAAA,CAAI,CAAA,EAAG,YAAY,sBAAsB,CAAA;AACtE,EAAA,MAAM,aAAa,IAAA,CAAK,GAAA;AAAA,IACtB,CAAA;AAAA,IACA,IAAA,CAAK,KAAA,CAAM,eAAA,GAAkB,WAAW,CAAA,GAAI;AAAA,GAC9C;AACA,EAAA,MAAM,WAAW,IAAA,CAAK,GAAA,CAAI,QAAQ,UAAA,GAAa,YAAA,GAAe,WAAW,CAAC,CAAA;AAC1E,EAAA,MAAM,SAAA,GAAY,MAAA,GAAS,WAAA,GAAc,sBAAA,GAAyB,CAAA;AAElE,EAAA,MAAM,cAAA,GAAiB,QAAQ,MAAM;AACnC,IAAA,MAAM,UAAoB,EAAC;AAC3B,IAAA,KAAA,IAAS,CAAA,GAAI,UAAA,EAAY,CAAA,GAAI,QAAA,EAAU,CAAA,EAAA,EAAK;AAC1C,MAAA,OAAA,CAAQ,KAAK,CAAC,CAAA;AAAA,IAChB;AACA,IAAA,OAAO,OAAA;AAAA,EACT,CAAA,EAAG,CAAC,QAAA,EAAU,UAAU,CAAC,CAAA;AAEzB,EAAA,eAAA,CAAgB,MAAM;AACpB,IAAA,IAAI,qBAAqB,IAAA,EAAM;AAC7B,MAAA;AAAA,IACF;AAEA,IAAA,MAAM,aAAA,GAAgB,YAAY,OAAA,EAAS,aAAA;AAAA,MACzC,0BAA0B,gBAAgB,CAAA,EAAA;AAAA,KAC5C;AAEA,IAAA,IAAI,CAAC,aAAA,EAAe;AAClB,MAAA;AAAA,IACF;AAEA,IAAA,aAAA,CAAc,KAAA,EAAM;AACpB,IAAA,mBAAA,CAAoB,IAAI,CAAA;AAAA,EAC1B,CAAA,EAAG,CAAC,gBAAA,EAAkB,cAAc,CAAC,CAAA;AAErC,EAAA,uBACE,GAAA,CAAC,QAAG,SAAA,EAAWA,QAAA,CAAO,+BAA+B,CAAA,EAAG,GAAA,EAAW,GAAG,IAAA,EACpE,QAAA,kBAAA,GAAA;AAAA,IAAC,IAAA;AAAA,IAAA;AAAA,MACC,OAAA,EAAS,CAAC,YAAA,KAAiB;AACzB,QAAA,MAAM,MAAA,GAAS,YAAA,CAAa,eAAe,CAAA,KAAM,IAAA;AAEjD,QAAA,uBACE,GAAA;AAAA,UAAC,MAAA;AAAA,UAAA;AAAA,YACC,KAAK,YAAA,CAAa,GAAA;AAAA,YAClB,SAAS,MAAM;AACb,cAAA,IAAI,CAAC,MAAA,EAAQ;AACX,gBAAA,gBAAA,CAAiB,qBAAqB,CAAA;AAAA,cACxC;AACA,cAAA,YAAA,CAAa,OAAA,IAAU;AAAA,YACzB,CAAA;AAAA,YACA,SAAA,EAAW,CAAC,KAAA,KAAU;AACpB,cAAA,IAAI,KAAA,CAAM,IAAA,KAAS,WAAA,IAAe,KAAA,CAAM,SAAS,SAAA,EAAW;AAC1D,gBAAA,KAAA,CAAM,cAAA,EAAe;AACrB,gBAAA,KAAA,CAAM,eAAA,EAAgB;AACtB,gBAAA,gBAAA,CAAiB,qBAAqB,CAAA;AAEtC,gBAAA,IAAI,CAAC,MAAA,EAAQ;AACX,kBAAA,YAAA,CAAa,OAAA,IAAU;AAAA,gBACzB;AAEA,gBAAA;AAAA,cACF;AAEA,cAAA,YAAA,CAAa,YAAY,KAAK,CAAA;AAAA,YAChC,CAAA;AAAA,YACA,eAAA,EAAe,aAAa,eAAe,CAAA;AAAA,YAC3C,eAAA,EAAe,aAAa,eAAe,CAAA;AAAA,YAC3C,eAAA,EAAe,aAAa,eAAe,CAAA;AAAA,YAC3C,YAAA,EAAY,aAAa,YAAY,CAAA;AAAA,YACrC,IAAA,EAAMC,YAAA;AAAA,YACN,IAAA,EAAK,OAAA;AAAA,YACL,UAAA,EAAW,OAAA;AAAA,YACX,YAAA,EAAW,YAAA;AAAA,YACV,GAAG,EAAE,CAAC,aAAa,GAAG,MAAM,eAAA;AAAgB;AAAA,SAC/C;AAAA,MAEJ,CAAA;AAAA,MAIA,gBAAA,EAAkBD,SAAO,uCAAuC,CAAA;AAAA,MAChE,YAAA,EAAW,YAAA;AAAA,MAIX,QAAA,kBAAA,GAAA;AAAA,QAAC,KAAA;AAAA,QAAA;AAAA,UACC,GAAA,EAAK,WAAA;AAAA,UACL,mCAAA,EAAkC,MAAA;AAAA,UAClC,SAAA,EAAW,+BAAA;AAAA,UACX,QAAA,EAAU,YAAA;AAAA,UACV,KAAA,EAAO;AAAA,YACL,SAAA,EAAW,mBAAA;AAAA,YACX,SAAA,EAAW,MAAA;AAAA,YACX,QAAA,EAAU;AAAA,WACZ;AAAA,UAEA,QAAA,kBAAA,GAAA;AAAA,YAAC,KAAA;AAAA,YAAA;AAAA,cACC,KAAA,EAAO;AAAA,gBACL,MAAA,EAAQ,SAAA;AAAA,gBACR,QAAA,EAAU,UAAA;AAAA,gBACV,KAAA,EAAO;AAAA,eACT;AAAA,cAEC,QAAA,EAAA,cAAA,CAAe,GAAA,CAAI,CAAC,KAAA,KAAU;AAC7B,gBAAA,MAAM,aAAa,SAAA,GAAY,KAAA;AAC/B,gBAAA,uBACE,GAAA;AAAA,kBAAC,IAAA,CAAK,IAAA;AAAA,kBAAL;AAAA,oBAEC,sBAAA,EAAsB,UAAA;AAAA,oBACtB,WAAA,EAAW,UAAA;AAAA,oBACV,GAAG,EAAE,CAAC,aAAa,GAAG,MAAM,MAAA,EAAO;AAAA,oBACpC,KAAA,EAAO,GAAG,UAAU,CAAA,CAAA;AAAA,oBACpB,SAAA,EAAW,CAAC,KAAA,KAAU,iBAAA,CAAkB,OAAO,UAAU,CAAA;AAAA,oBACzD,OAAA,EAAS,CAAC,KAAA,KAAU;AAClB,sBAAA,MAAM,aAAA,GAAgB,KAAA,CAAM,aAAA,CAAc,OAAA,CAAQ,KAAK,CAAA;AACvD,sBAAA,WAAA,CAAY,UAAU,CAAA;AAGtB,sBAAA,UAAA,CAAW,MAAM;AACf,wBAAA,aAAA,EACI,aAAA,CAA2B,uBAAuB,CAAA,EAClD,KAAA,EAAM;AAAA,sBACZ,GAAG,GAAG,CAAA;AAAA,oBACR,CAAA;AAAA,oBACA,KAAA,EAAO;AAAA,sBACL,QAAA,EAAU,UAAA;AAAA,sBACV,GAAA,EAAK,CAAA;AAAA,sBACL,IAAA,EAAM,uBAAA;AAAA,sBACN,KAAA,EAAO,uBAAA;AAAA,sBACP,SAAA,EAAW,CAAA,WAAA,EACT,sBAAA,GAAyB,KAAA,GAAQ,WACnC,CAAA,GAAA,CAAA;AAAA,sBACA,MAAA,EAAQ;AAAA;AACV,mBAAA;AAAA,kBA1BK;AAAA,iBA2BP;AAAA,cAEJ,CAAC;AAAA;AAAA;AACH;AAAA;AACF,KAAA;AAAA,IA5DK,CAAA,EAAG,SAAS,CAAA,CAAA,EAAI,OAAO,CAAA;AAAA,GA6D9B,EACF,CAAA;AAEJ,CAAC,CAAA;AAED,sBAAA,CAAuB,WAAA,GAAc,wBAAA;;;;;;AC1Q9B,MAAM,0BAAA,GAA6B,UAAA,CAGxC,CAAC,KAAA,EAAO,GAAA,KAAQ;AAChB,EAAA,MAAM;AAAA,IACJ,YAAA;AAAA,IACA,mBAAA;AAAA,IACA,oBAAA;AAAA,IACA,iBAAA,GAAoB;AAAA,GACtB,GAAI,KAAA;AAGJ,EAAA,MAAM,aAAA,GAAgB,CAAC,CAAA,KAAwC;AAC7D,IAAA,IAAI,CAAA,CAAE,IAAA,KAAS,WAAA,IAAe,CAAA,CAAE,SAAS,SAAA,EAAW;AAClD,MAAA,CAAA,CAAE,cAAA,EAAe;AACjB,MAAA,MAAM,MAAA,GAAS,CAAA,CAAE,aAAA,CAAc,YAAA,CAAa,eAAe,CAAA;AAE3D,MAAA,UAAA,CAAW,MAAM;AACf,QAAA,MAAM,IAAA,GAAO,MAAA,GAAS,QAAA,CAAS,cAAA,CAAe,MAAM,CAAA,GAAI,IAAA;AACxD,QAAA,MAAM,YACJ,IAAA,EAAM,gBAAA,CAAiB,wBAAwB,CAAA,IAC/C,QAAA,CAAS,iBAAiB,wBAAwB,CAAA;AAEpD,QAAC,SAAA,CAAU,CAAC,CAAA,EAAmB,KAAA,EAAM;AAAA,MACvC,GAAG,GAAG,CAAA;AAAA,IACR;AAAA,EACF,CAAA;AAEA,EAAA,4BACG,IAAA,EAAA,EAAK,UAAA,EAAW,QAAA,EAAS,GAAA,EAAI,KAAI,GAAA,EAChC,QAAA,EAAA;AAAA,oBAAA,GAAA,CAAC,IAAA,EAAA,EAAK,IAAA,EAAK,OAAA,EAAS,QAAA,EAAA,iBAAA,EAAkB,CAAA;AAAA,oBACtC,GAAA;AAAA,MAAC,IAAA;AAAA,MAAA;AAAA,QACC,SAAS,CAAC,EAAE,KAAAE,IAAAA,EAAK,GAAG,MAAK,KAAM;AAC7B,UAAA,uBACE,GAAA;AAAA,YAAC,MAAA;AAAA,YAAA;AAAA,cACC,GAAA,EAAKA,IAAAA;AAAA,cACJ,GAAG,IAAA;AAAA,cACJ,SAAA,EAAW,aAAA;AAAA,cACX,SAAA,EAAWF,SAAO,kCAAkC,CAAA;AAAA,cACpD,UAAA,EAAW,OAAA;AAAA,cACX,IAAA,EAAM,EAAE,KAAA,EAAOG,oBAAA,EAAsB;AAAA,cACrC,IAAA,EAAK,OAAA;AAAA,cACJ,GAAG,EAAE,CAAC,aAAa,GAAG,MAAM,mBAAA,EAAoB;AAAA,cAEhD,QAAA,EAAA;AAAA;AAAA,WACH;AAAA,QAEJ,CAAA;AAAA,QAEC,QAAA,EAAA,mBAAA,CAAoB,GAAA,CAAI,CAAC,MAAA,qBACxB,GAAA;AAAA,UAAC,IAAA,CAAK,IAAA;AAAA,UAAL;AAAA,YAEC,KAAA,EAAO,MAAA;AAAA,YACP,qBAAA,EAAqB,MAAA;AAAA,YACpB,GAAG,EAAE,CAAC,aAAa,GAAG,MAAM,MAAA,EAAO;AAAA,YACpC,SAAS,MAAM;AACb,cAAA,oBAAA,GAAuB,MAAM,CAAA;AAAA,YAC/B;AAAA,WAAA;AAAA,UANK;AAAA,SAQR;AAAA;AAAA;AACH,GAAA,EACF,CAAA;AAEJ,CAAC,CAAA;AAED,0BAAA,CAA2B,WAAA,GAAc,4BAAA;;;;;;ACpElC,MAAM,cAAA,GAAiB,UAAA;AAAA,EAC5B,CAAC,OAAO,GAAA,KAAQ;AACd,IAAA,MAAM;AAAA,MACJ,IAAA;AAAA,MACA,UAAA;AAAA,MACA,iBAAA;AAAA,MACA,QAAA;AAAA,MACA,YAAA;AAAA,MACA;AAAA,KACF,GAAI,KAAA;AAEJ,IAAA,MAAM,uBAAA,GAA0B,EAAA,CAAGH,QAAA,CAAO,iBAAiB,GAAG,SAAS,CAAA;AAEvE,IAAA,uBACE,IAAA,CAAC,IAAA,EAAA,EAAG,GAAA,EAAU,SAAA,EAAW,uBAAA,EACvB,QAAA,EAAA;AAAA,sBAAA,GAAA,CAAC,IAAA,EAAA,EAAG,SAAA,EAAW,UAAA,CAAW,iBAAiB,CAAA,EACzC,QAAA,kBAAA,GAAA;AAAA,QAAC,MAAA;AAAA,QAAA;AAAA,UACC,UAAA,EAAW,OAAA;AAAA,UACX,IAAA,EAAMI,oBAAA;AAAA,UACN,IAAA,EAAK,OAAA;AAAA,UACL,YAAA,EAAW,eAAA;AAAA,UACX,UAAU,IAAA,KAAS,CAAA;AAAA,UACnB,SAAS,MAAM;AACb,YAAA,IAAI,OAAO,CAAA,EAAG;AACZ,cAAA,YAAA,GAAe,OAAO,CAAC,CAAA;AAAA,YACzB;AAAA,UACF,CAAA;AAAA,UACC,GAAG,EAAE,CAAC,aAAa,GAAG,MAAM,cAAA;AAAe;AAAA,OAC9C,EACF,CAAA;AAAA,MACC,QAAA;AAAA,sBACD,GAAA,CAAC,IAAA,EAAA,EAAG,SAAA,EAAW,UAAA,CAAW,iBAAiB,CAAA,EACzC,QAAA,kBAAA,GAAA;AAAA,QAAC,MAAA;AAAA,QAAA;AAAA,UACC,UAAA,EAAW,OAAA;AAAA,UACX,IAAA,EAAMC,qBAAA;AAAA,UACN,IAAA,EAAK,OAAA;AAAA,UACL,YAAA,EAAW,WAAA;AAAA,UACX,QAAA;AAAA;AAAA,YAEE,iBAAA,KAAsB,KAAA,KACrB,UAAA,KAAe,CAAA,IAAK,IAAA,KAAS,UAAA;AAAA,WAAA;AAAA,UAEhC,SAAS,MAAM;AACb,YAAA,IAAI,UAAA,KAAe,CAAA,IAAK,IAAA,GAAO,UAAA,EAAY;AACzC,cAAA,YAAA,GAAe,OAAO,CAAC,CAAA;AAAA,YACzB;AAAA,UACF,CAAA;AAAA,UACC,GAAG,EAAE,CAAC,aAAa,GAAG,MAAM,cAAA;AAAe;AAAA,OAC9C,EACF;AAAA,KAAA,EACF,CAAA;AAAA,EAEJ;AACF,CAAA;AAEA,cAAA,CAAe,WAAA,GAAc,gBAAA;;;;;;ACtEtB,MAAM,uBAAuB,CAAC;AAAA,EACnC,aAAA;AAAA,EACA;AACF,CAAA,KAGM;AACJ,EAAA,MAAM,6BAAA,GAAgC,EAAA;AAAA,IACpCL,SAAO,wBAAwB,CAAA;AAAA,IAC/B;AAAA,GACF;AACA,EAAA,uBACE,GAAA;AAAA,IAAC,IAAA;AAAA,IAAA;AAAA,MACC,IAAA,EAAK,OAAA;AAAA,MACL,SAAA,EAAW,6BAAA;AAAA,MAEX,aAAA,EAAY,MAAA;AAAA,MAEX,QAAA,EAAA;AAAA;AAAA,GACH;AAEJ,CAAA;;;;;;;ACVO,MAAMM,eAAa,MAAA,CAAO,MAAA;AAAA,EAC/B,UAAA;AAAA,IACE,SAAS,eAAA,CAAgB,KAAA,EAAO,GAAA,EAAK;AACnC,MAAA,MAAM,EAAE,SAAA,EAAW,QAAA,EAAU,GAAG,MAAK,GAAI,KAAA;AAEzC,MAAA,MAAM,mBAAA,GAAsB,EAAA,CAAG,MAAA,CAAO,UAAA,EAAY,SAAS,CAAA;AAE3D,MAAA,2BACG,KAAA,EAAA,EAAI,GAAA,EAAU,WAAW,mBAAA,EAAsB,GAAG,MAChD,QAAA,EACH,CAAA;AAAA,IAEJ;AAAA,GACF;AAAA,EACA;AAAA;AAAA,IAEE,IAAA,EAAM,cAAA;AAAA;AAAA,IAEN,IAAA,EAAM,cAAA;AAAA;AAAA,IAEN,YAAA,EAAc,sBAAA;AAAA;AAAA,IAEd,gBAAA,EAAkB,0BAAA;AAAA;AAAA,IAElB,UAAA,EAAY;AAAA;AAEhB;AACAA,YAAA,CAAW,WAAA,GAAc,YAAA;;AC/BlB,MAAM,qBAAqB,CAAC;AAAA,EACjC,IAAA;AAAA,EACA,UAAA;AAAA,EACA,cAAA,GAAiB;AACnB,CAAA,KAIuB;AACrB,EAAA,MAAM,OAAA,GAAU,OAKN,IAAI,CAAA;AAEd,EAAA,OAAO,QAAQ,MAAM;AACnB,IAAA,MAAM,iBAAiB,cAAA,GAAiB,CAAA;AACxC,IAAA,IAAI,SAA0B,EAAC;AAC/B,IAAA,MAAM,QAAA,GAAW,CAAC,KAAA,EAAe,GAAA,KAAgB;AAC/C,MAAA,MAAM,KAAA,GAAQ,MAAM,KAAA,GAAQ,CAAA;AAC5B,MAAA,IAAI,UAAU,CAAA,EAAG;AACf,QAAA,MAAA,CAAO,KAAK,EAAE,IAAA,EAAM,MAAA,EAAQ,IAAA,EAAM,OAAO,CAAA;AAAA,MAC3C,CAAA,MAAA,IAAW,SAAS,CAAA,EAAG;AACrB,QAAA,MAAA,CAAO,IAAA,CAAK;AAAA,UACV,IAAA,EAAM,UAAA;AAAA,UACN,SAAA,EAAW,KAAA;AAAA,UACX,OAAA,EAAS,GAAA;AAAA,UACT,MAAA,EAAQ;AAAA,SACT,CAAA;AAAA,MACH;AAAA,IACF,CAAA;AAEA,IAAA,IAAI,cAAc,cAAA,EAAgB;AAChC,MAAA,MAAA,GAAS,KAAA,CAAM,KAAK,EAAE,MAAA,EAAQ,YAAW,EAAG,CAAC,GAAG,CAAA,MAAO;AAAA,QACrD,IAAA,EAAM,MAAA;AAAA,QACN,MAAM,CAAA,GAAI;AAAA,OACZ,CAAE,CAAA;AAAA,IACJ,CAAA,MAAA,IAAW,QAAQ,cAAA,EAAgB;AACjC,MAAA,KAAA,IAAS,CAAA,GAAI,CAAA,EAAG,CAAA,IAAK,cAAA,EAAgB,CAAA,EAAA,EAAK;AACxC,QAAA,MAAA,CAAO,KAAK,EAAE,IAAA,EAAM,MAAA,EAAQ,IAAA,EAAM,GAAG,CAAA;AAAA,MACvC;AACA,MAAA,QAAA,CAAS,cAAA,GAAiB,CAAA,EAAG,UAAA,GAAa,CAAC,CAAA;AAC3C,MAAA,MAAA,CAAO,KAAK,EAAE,IAAA,EAAM,MAAA,EAAQ,IAAA,EAAM,YAAY,CAAA;AAAA,IAChD,CAAA,MAAA,IAAW,IAAA,IAAQ,UAAA,GAAa,cAAA,GAAiB,CAAA,EAAG;AAClD,MAAA,MAAA,CAAO,KAAK,EAAE,IAAA,EAAM,MAAA,EAAQ,IAAA,EAAM,GAAG,CAAA;AACrC,MAAA,QAAA,CAAS,CAAA,EAAG,aAAa,cAAc,CAAA;AACvC,MAAA,KAAA,IAAS,IAAI,UAAA,IAAc,cAAA,GAAiB,CAAA,CAAA,EAAI,CAAA,IAAK,YAAY,CAAA,EAAA,EAAK;AACpE,QAAA,MAAA,CAAO,KAAK,EAAE,IAAA,EAAM,MAAA,EAAQ,IAAA,EAAM,GAAG,CAAA;AAAA,MACvC;AAAA,IACF,CAAA,MAAO;AACL,MAAA,MAAA,CAAO,KAAK,EAAE,IAAA,EAAM,MAAA,EAAQ,IAAA,EAAM,GAAG,CAAA;AACrC,MAAA,QAAA,CAAS,CAAA,EAAG,OAAO,CAAC,CAAA;AACpB,MAAA,MAAA,CAAO,KAAK,EAAE,IAAA,EAAM,QAAQ,IAAA,EAAM,IAAA,GAAO,GAAG,CAAA;AAC5C,MAAA,MAAA,CAAO,IAAA,CAAK,EAAE,IAAA,EAAM,MAAA,EAAQ,MAAY,CAAA;AACxC,MAAA,MAAA,CAAO,KAAK,EAAE,IAAA,EAAM,QAAQ,IAAA,EAAM,IAAA,GAAO,GAAG,CAAA;AAC5C,MAAA,QAAA,CAAS,IAAA,GAAO,CAAA,EAAG,UAAA,GAAa,CAAC,CAAA;AACjC,MAAA,MAAA,CAAO,KAAK,EAAE,IAAA,EAAM,MAAA,EAAQ,IAAA,EAAM,YAAY,CAAA;AAAA,IAChD;AAEA,IAAA,MAAM,OAAO,OAAA,CAAQ,OAAA;AAErB,IAAA,IAAI,mBAAA,GAAsB,KAAA;AAC1B,IAAA,IACE,QACA,IAAA,CAAK,UAAA,KAAe,UAAA,IACpB,IAAA,CAAK,mBAAmB,cAAA,EACxB;AACA,MAAA,MAAM,KAAA,GAAQ,IAAA,CAAK,GAAA,CAAI,IAAA,CAAK,UAAU,IAAI,CAAA;AAC1C,MAAA,MAAM,GAAA,GAAM,IAAA,CAAK,GAAA,CAAI,IAAA,CAAK,UAAU,IAAI,CAAA;AACxC,MAAA,MAAM,kBAAA,GAAqB,KAAK,KAAA,CAAM,IAAA;AAAA,QACpC,CAAC,IAAA,KACC,IAAA,CAAK,IAAA,KAAS,UAAA;AAAA,QAEd,EAAE,IAAA,CAAK,OAAA,GAAU,KAAA,IAAS,KAAK,SAAA,GAAY,GAAA;AAAA,OAC/C;AAEA,MAAA,MAAM,iBAAA,GAAoB,KAAK,KAAA,CAAM,IAAA;AAAA,QACnC,CAAC,SACC,IAAA,CAAK,IAAA,KAAS,cACd,IAAA,CAAK,SAAA,IAAa,IAAA,IAClB,IAAA,CAAK,OAAA,IAAW;AAAA,OACpB;AAEA,MAAA,mBAAA,GAAsB,kBAAA,IAAsB,iBAAA;AAAA,IAC9C;AAEA,IAAA,IAAI,mBAAA,EAAqB;AACvB,MAAA,OAAA,CAAQ,OAAA,GAAU;AAAA,QAChB,KAAA,EAAO,MAAA;AAAA,QACP,UAAA;AAAA,QACA,cAAA;AAAA,QACA,QAAA,EAAU;AAAA,OACZ;AACA,MAAA,OAAO,MAAA;AAAA,IACT;AAEA,IAAA,IACE,QACA,IAAA,CAAK,UAAA,KAAe,cACpB,IAAA,CAAK,cAAA,KAAmB,kBACxB,IAAA,CAAK,KAAA,CAAM,IAAA,CAAK,CAAC,SAAS,IAAA,CAAK,IAAA,KAAS,UAAU,IAAA,CAAK,IAAA,KAAS,IAAI,CAAA,EACpE;AACA,MAAA,OAAO,IAAA,CAAK,KAAA;AAAA,IACd;AAEA,IAAA,OAAA,CAAQ,OAAA,GAAU;AAAA,MAChB,KAAA,EAAO,MAAA;AAAA,MACP,UAAA;AAAA,MACA,cAAA;AAAA,MACA,QAAA,EAAU;AAAA,KACZ;AACA,IAAA,OAAO,MAAA;AAAA,EACT,CAAA,EAAG,CAAC,IAAA,EAAM,UAAA,EAAY,cAAc,CAAC,CAAA;AACvC,CAAA;;ACrDO,MAAM,UAAA,GAAa,UAAA;AAAA,EACxB,CAAC,OAAO,GAAA,KAAQ;AACd,IAAA,MAAM;AAAA,MACJ,YAAA,EAAc,SAAA;AAAA,MACd,IAAA;AAAA,MACA,YAAA;AAAA,MACA,mBAAA;AAAA,MACA,cAAA,EAAgB,kBAAA;AAAA,MAChB,SAAA;AAAA,MACA,YAAA;AAAA,MACA,oBAAA;AAAA,MACA,iBAAA;AAAA,MACA,kBAAA;AAAA,MACA,SAAA;AAAA,MACA,GAAG;AAAA,KACL,GAAI,KAAA;AAEJ,IAAA,MAAM,IAAA,GAAO;AAAA,MACX,YAAA,EAAc;AAAA,KAChB;AAEA,IAAA,MAAM,aAAa,aAAA,CAAc;AAAA,MAC/B,IAAA,EAAM,YAAA;AAAA,MACN,IAAA;AAAA,MACA,WAAA,EAAa,CAAC,CAAC,IAAA,CAAK,kBAAkB;AAAA,KACvC,CAAA;AACD,IAAA,MAAM,iBAAiB,kBAAA,IAAsB,CAAA;AAC7C,IAAA,MAAM,UAAA,GAAa,IAAA,CAAK,IAAA,CAAK,cAAA,GAAiB,YAAY,CAAA;AAC1D,IAAA,MAAM,KAAA,GAAQ,OAAuB,IAAI,CAAA;AACzC,IAAA,MAAM,WAAA,GAAc,YAAA,CAAa,CAAC,KAAA,EAAO,GAAG,CAAC,CAAA;AAC7C,IAAA,MAAM,CAAC,QAAA,EAAU,WAAW,CAAA,GAAI,SAAS,KAAK,CAAA;AAE9C,IAAA,MAAM,YAAY,kBAAA,CAAmB;AAAA,MACnC,IAAA;AAAA,MACA,UAAA;AAAA,MACA,cAAA,EAAgB;AAAA,KACjB,CAAA;AAED,IAAA,MAAM,kBAAkB,SAAA,CAAU,IAAA;AAAA,MAChC,CAAC,IAAA,KAAS,IAAA,CAAK,IAAA,KAAS,MAAA,IAAU,KAAK,IAAA,KAAS;AAAA,KAClD;AAEA,IAAA,IAAI,CAAC,eAAA,IAAmB,IAAA,KAAS,CAAA,IAAK,aAAa,CAAA,EAAG;AAEpD,MAAA,qBAAA,CAAsB,MAAM;AAC1B,QAAA,YAAA,GAAe,CAAC,CAAA;AAAA,MAClB,CAAC,CAAA;AAAA,IACH;AAEA,IAAA,MAAM,YAAY,cAAA,GAAiB,CAAA,GAAI,CAAA,GAAA,CAAK,IAAA,GAAO,KAAK,YAAA,GAAe,CAAA;AACvE,IAAA,MAAM,WAAW,IAAA,CAAK,GAAA,CAAI,SAAA,GAAY,CAAA,GAAI,cAAc,cAAc,CAAA;AAEtE,IAAA,MAAM,oBAAA,GACJ,uBAAuB,CAAA,GACnB,SAAA,GACA,GAAG,SAAS,CAAA,GAAA,EAAM,QAAQ,CAAA,IAAA,EAAO,cAAc,CAAA,MAAA,CAAA;AAErD,IAAA,MAAM,aAAA,GACJ,sBAAsB,kBAAA,KAAuB,MAAA,GACzC,mBAAmB,SAAA,EAAW,QAAA,EAAU,cAAc,CAAA,GACtD,oBAAA;AAEN,IAAA,eAAA,CAAgB,MAAM;AACpB,MAAA,MAAM,cAAA,GAAiB,IAAI,cAAA,CAAe,CAAC,OAAA,KAAY;AACrD,QAAA,MAAM,KAAA,GAAQ,QAAQ,CAAC,CAAA;AACvB,QAAA,IAAI,KAAA,EAAO;AACT,UAAA,WAAA;AAAA,YACE,KAAA,CAAM,WAAA,CAAY,KAAA,GAChB,MAAA,CAAOC,YAAe,CAAa,KAAA,CAAM,OAAA,CAAQ,IAAA,EAAM,EAAE,CAAC;AAAA,WAC9D;AAAA,QACF;AAAA,MACF,CAAC,CAAA;AACD,MAAA,IAAI,MAAM,OAAA,EAAS;AACjB,QAAA,cAAA,CAAe,OAAA,CAAQ,MAAM,OAAO,CAAA;AAAA,MACtC;AACA,MAAA,OAAO,MAAM;AACX,QAAA,cAAA,CAAe,UAAA,EAAW;AAAA,MAC5B,CAAA;AAAA,IACF,CAAA,EAAG,EAAE,CAAA;AAEL,IAAA,uBACE,IAAA;AAAA,MAACC,YAAA;AAAA,MAAA;AAAA,QACC,GAAA,EAAK,WAAA;AAAA,QACL,kBAAA,EAAkB,UAAA;AAAA,QAClB,SAAA;AAAA,QACA,cAAY,SAAA,IAAa,uBAAA;AAAA,QACxB,GAAG,IAAA;AAAA,QAEJ,QAAA,EAAA;AAAA,0BAAA,GAAA;AAAA,YAACA,YAAA,CAAe,IAAA;AAAA,YAAf;AAAA,cACC,IAAA;AAAA,cACA,UAAA;AAAA,cACA,mBAAmB,kBAAA,KAAuB,MAAA;AAAA,cAC1C,YAAA,EAAc,CAACC,KAAAA,KAAS,YAAA,GAAeA,KAAI,CAAA;AAAA,cAE1C,QAAA,EAAA,SAAA,CAAU,GAAA,CAAI,CAAC,IAAA,KAAS;AACvB,gBAAA,IAAI,IAAA,CAAK,SAAS,MAAA,EAAQ;AACxB,kBAAA,uBACE,GAAA;AAAA,oBAACD,YAAA,CAAe,IAAA;AAAA,oBAAf;AAAA,sBAEC,MAAM,IAAA,CAAK,IAAA;AAAA,sBACX,QAAA,EAAU,KAAK,IAAA,KAAS,IAAA;AAAA,sBACxB,OAAA,EAAS,MAAM,YAAA,GAAe,IAAA,CAAK,IAAI;AAAA,qBAAA;AAAA,oBAHlC,IAAA,CAAK;AAAA,mBAIZ;AAAA,gBAEJ;AACA,gBAAA,uBACE,GAAA;AAAA,kBAACA,YAAA,CAAe,YAAA;AAAA,kBAAf;AAAA,oBAEC,WAAW,IAAA,CAAK,SAAA;AAAA,oBAChB,SAAS,IAAA,CAAK,OAAA;AAAA,oBACd,QAAQ,IAAA,CAAK,MAAA;AAAA,oBACb,WAAA,EAAa,IAAA;AAAA,oBACb,WAAA,EAAa,CAACE,KAAAA,KAAS,YAAA,GAAeA,KAAI;AAAA,mBAAA;AAAA,kBALrC,IAAA,CAAK;AAAA,iBAMZ;AAAA,cAEJ,CAAC;AAAA;AAAA,WACH;AAAA,UACC,QAAA,KAAa,yBACZ,IAAA,CAAA,QAAA,EAAA,EACG,QAAA,EAAA;AAAA,YAAA,mBAAA,oBACC,GAAA;AAAA,cAACF,YAAA,CAAe,gBAAA;AAAA,cAAf;AAAA,gBACC,YAAA;AAAA,gBACA,mBAAA;AAAA,gBACA,oBAAA,EAAsB,CAACG,aAAAA,KACrB,oBAAA,GAAuBA,aAAY,CAAA;AAAA,gBAErC;AAAA;AAAA,aACF;AAAA,YAED,aAAa,kBAAA,KAAuB,MAAA,wBAClCH,YAAA,CAAe,UAAA,EAAf,EAA0B,aAAA,EAA8B;AAAA,WAAA,EAE7D,CAAA;AAAA,0BAEF,IAAA,CAAC,MAAA,EAAA,EAAO,WAAA,EAAU,QAAA,EAAS,eAAY,MAAA,EAAO,QAAA,EAAA;AAAA,YAAA,OAAA;AAAA,YACtC,IAAA;AAAA,YAAK,MAAA;AAAA,YAAK,UAAA;AAAA,YAAW,IAAA;AAAA,YAAG;AAAA,WAAA,EAChC;AAAA;AAAA;AAAA,KACF;AAAA,EAEJ;AACF;AAEA,UAAA,CAAW,WAAA,GAAc,YAAA;;;;"}
|
package/dist/Pagination.js
CHANGED
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
export { P as Pagination, P as default } from './Pagination-
|
|
1
|
+
export { P as Pagination, P as default } from './Pagination-DYpUtMha.js';
|
|
2
2
|
//# sourceMappingURL=Pagination.js.map
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import { jsx, jsxs } from 'react/jsx-runtime';
|
|
2
2
|
import { createContext, useContext, useRef, useLayoutEffect, useEffect, forwardRef, useId, useState, useCallback, useImperativeHandle, useMemo } from 'react';
|
|
3
|
-
import { B as Button } from './Button-
|
|
3
|
+
import { B as Button } from './Button-B_E6ybA-.js';
|
|
4
4
|
import { t as tabbable, a as usePopoverTransitionStates } from './usePopoverTransitionStates-CDXCdyKa.js';
|
|
5
5
|
import { c as childrenToString } from './childrenToString-Bz9MqbHb.js';
|
|
6
6
|
import { useTrackingId } from './useTrackingId.js';
|
|
@@ -730,4 +730,4 @@ const Popover = Object.assign(
|
|
|
730
730
|
Popover.displayName = "Popover";
|
|
731
731
|
|
|
732
732
|
export { Popover as P, usePopoverContext as u };
|
|
733
|
-
//# sourceMappingURL=Popover-
|
|
733
|
+
//# sourceMappingURL=Popover-B2ix8Ji4.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Popover-CIh1CsoJ.js","sources":["../src/components/Popover/internal/PopoverContext.ts","../src/components/Popover/internal/usePopoverContext.tsx","../src/components/Popover/PopoverClose.tsx","../src/components/Popover/PopoverButton.tsx","../src/components/Popover/PopoverContent.tsx","../src/components/Popover/PopoverTrigger.tsx","../src/components/Popover/Popover.tsx"],"sourcesContent":["import {\n createContext,\n type CSSProperties,\n type Dispatch,\n type RefObject,\n type SetStateAction,\n} from \"react\";\nimport type { PopoverProps } from \"../Popover\";\nimport type { Placement } from \"@floating-ui/react-dom\";\n\nexport type PopoverContextProps = {\n popoverId: string;\n invoker?: HTMLElement;\n setInvoker?: Dispatch<SetStateAction<HTMLElement | undefined>>;\n popover?: HTMLElement;\n setPopover?: Dispatch<SetStateAction<HTMLElement | undefined>>;\n rootNode?: Node;\n setRootNode?: Dispatch<SetStateAction<Node | undefined>>;\n arrowElement?: HTMLSpanElement;\n setArrowElement?: Dispatch<SetStateAction<HTMLSpanElement | undefined>>;\n openState: boolean;\n popoverStyle?: CSSProperties;\n placement?: Placement;\n actualPlacement?: Placement;\n openPopover: () => void;\n closePopover: (replacementFn?: () => void) => void;\n onClose?: PopoverProps[\"onClose\"];\n openOnHover: PopoverProps[\"openOnHover\"];\n controlled: boolean;\n disableCloseOnClickOutside?: PopoverProps[\"disableCloseOnClickOutside\"];\n disableCloseOnEscape?: PopoverProps[\"disableCloseOnEscape\"];\n modal?: PopoverProps[\"modal\"];\n noPadding?: PopoverProps[\"noPadding\"];\n fillAvailableHeight: PopoverProps[\"fillAvailableHeight\"];\n maxHeight: PopoverProps[\"maxHeight\"];\n matchReferenceWidth: PopoverProps[\"matchReferenceWidth\"];\n fixedWidth: PopoverProps[\"fixedWidth\"];\n disableCaret: PopoverProps[\"disableCaret\"];\n disableFlipFallback: PopoverProps[\"disableFlipFallback\"];\n disableTriggerFocus: PopoverProps[\"disableTriggerFocus\"];\n arrowRef: RefObject<HTMLSpanElement>;\n delay: PopoverProps[\"delay\"];\n triggerHovered: boolean;\n setTriggerHovered: Dispatch<SetStateAction<boolean>>;\n contentHovered: boolean;\n setContentHovered: Dispatch<SetStateAction<boolean>>;\n};\n\nexport const PopoverContext = createContext<PopoverContextProps | null>(null);\n","import {\n useRef,\n useContext,\n useLayoutEffect,\n type KeyboardEvent,\n useEffect,\n} from \"react\";\nimport { PopoverContext } from \"./PopoverContext\";\nimport { tabbable } from \"tabbable\";\n\nexport type dataStateType = \"open\" | \"closed\";\n\n/** Invoker and floating-element APIs for the enclosing popover. */\nexport function usePopoverContext() {\n const context = useContext(PopoverContext);\n const invokerRef = useRef<HTMLButtonElement>(null);\n const popoverRef = useRef<HTMLDivElement>(null);\n const arrowRef = useRef<HTMLSpanElement>(null);\n const { triggerHovered, setTriggerHovered, contentHovered } = context || {};\n\n useLayoutEffect(() => {\n if (!invokerRef.current) return;\n context?.setInvoker?.(invokerRef.current);\n }, [context, invokerRef]);\n\n useLayoutEffect(() => {\n if (!popoverRef.current) return;\n context?.setPopover?.(popoverRef.current);\n context?.setRootNode?.(popoverRef.current.getRootNode());\n if (!arrowRef.current) return;\n context?.setArrowElement?.(arrowRef.current);\n }, [context, popoverRef]);\n\n useEffect(() => {\n if (!context?.openOnHover) return;\n // Close uses a fixed 100ms grace so the pointer can cross the hover bridge;\n // `delay` only applies to open.\n if (!triggerHovered && !contentHovered) {\n const closeTimeout: NodeJS.Timeout = setTimeout(() => {\n context?.closePopover();\n }, 100);\n return () => {\n clearTimeout(closeTimeout);\n };\n }\n if (triggerHovered && !contentHovered) {\n if (context?.delay) {\n const openTimeout = setTimeout(() => {\n context?.openPopover();\n }, context.delay);\n return () => {\n clearTimeout(openTimeout);\n };\n } else {\n context?.openPopover();\n }\n }\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, [context?.delay, context?.openOnHover, triggerHovered, contentHovered]);\n\n const onMouseEnterHandler = () => {\n if (!context?.openOnHover) return;\n setTriggerHovered?.(true);\n };\n const onMouseLeaveHandler = () => {\n if (!context?.openOnHover) return;\n setTriggerHovered?.(false);\n };\n\n const onFocusHandler = (_e: React.FocusEvent) => {\n if (context?.openOnHover) {\n context?.openPopover();\n }\n };\n\n const onBlurHandler = (e: React.FocusEvent) => {\n if (context?.popover?.contains(e.relatedTarget as Node)) return;\n if (context?.modal && context.openState) {\n e.preventDefault();\n requestAnimationFrame(() => {\n context?.invoker?.focus();\n const focusables = tabbable(context?.popover as Element);\n if (focusables.length > 0) {\n focusables[focusables.length - 1].focus();\n }\n });\n return;\n }\n if (!context?.disableCloseOnClickOutside) {\n context?.closePopover();\n }\n };\n\n const onKeyDownHandler = (e: KeyboardEvent) => {\n if (!context?.openState) return;\n if (\n e.code === \"Escape\" &&\n !context?.disableCloseOnEscape &&\n !context?.controlled\n ) {\n context?.closePopover();\n // Escape is a keyboard action, so the trigger should show its focus-visible\n // ring. Focus is already on the trigger, so blur first — re-focusing an\n // already-focused element is a no-op and would ignore the focusVisible hint.\n // Skipped for hover popovers, where re-focusing would reopen via onFocus.\n // Deferred to the next frame so the close state flushes first; otherwise the\n // synchronous blur re-enters closePopover (openState still true) and double-fires onClose.\n if (!context?.openOnHover) {\n const invoker = context?.invoker;\n requestAnimationFrame(() => {\n invoker?.blur();\n invoker?.focus({ focusVisible: true });\n });\n }\n return;\n }\n };\n\n const onClickHandler = () => {\n context?.invoker?.focus();\n if (context?.openOnHover) return;\n if (context?.controlled === false) {\n if (context?.openState) {\n context?.closePopover();\n } else {\n context?.openPopover();\n }\n return;\n }\n };\n\n if (!context || !invokerRef || !popoverRef) return;\n return {\n invoker: {\n ref: invokerRef,\n element: context.invoker,\n onMouseEnter: onMouseEnterHandler,\n onMouseLeave: onMouseLeaveHandler,\n onKeyDown: onKeyDownHandler,\n onClick: onClickHandler,\n onFocus: onFocusHandler,\n onBlur: onBlurHandler,\n \"aria-haspopup\": true,\n \"aria-expanded\": context.openState,\n \"aria-details\": context.popoverId,\n \"data-state\": context.openState ? \"open\" : (\"closed\" as dataStateType),\n },\n popover: {\n ref: popoverRef,\n element: context.popover,\n id: context.popoverId,\n onClose: context.onClose,\n show: context.openPopover,\n close: context.closePopover,\n noPadding: context.noPadding,\n style: context.popoverStyle,\n arrowRef: arrowRef,\n },\n rootNode: context.rootNode,\n onClose: context.onClose,\n open: context.openState,\n openOnHover: context.openOnHover,\n controlled: context.controlled,\n disableCloseOnClickOutside: context.disableCloseOnClickOutside,\n disableCloseOnEscape: context.disableCloseOnEscape,\n modal: context.modal,\n placement: context.placement,\n actualPlacement: context.actualPlacement,\n disableCaret: context.disableCaret,\n noPadding: context.noPadding,\n fillAvailableHeight: context.fillAvailableHeight,\n maxHeight: context.maxHeight,\n matchReferenceWidth: context.matchReferenceWidth,\n fixedWidth: context.fixedWidth,\n disableFlipFallback: context.disableFlipFallback,\n disableTriggerFocus: context.disableTriggerFocus,\n triggerHovered: context.triggerHovered,\n setTriggerHovered: context.setTriggerHovered,\n contentHovered: context.contentHovered,\n setContentHovered: context.setContentHovered,\n };\n}\n","import { forwardRef } from \"react\";\n\nimport { Button, type ButtonProps } from \"../Button\";\nimport { usePopoverContext } from \"./internal/usePopoverContext\";\nimport { childrenToString } from \"../../internal/functions\";\nimport type { DataTrackingId } from \"../../types\";\nimport { useTrackingId } from \"../../hooks\";\n\n/** @extends ButtonProps */\nexport type PopoverCloseProps = ButtonProps & DataTrackingId;\n\n/** Button that closes the enclosing popover, then runs its own click handler. */\nexport const PopoverClose = forwardRef<HTMLButtonElement, PopoverCloseProps>(\n function PopoverClose(props, ref) {\n const { onClick, ...rest } = props;\n const context = usePopoverContext();\n\n const data = {\n children: childrenToString(props.children),\n };\n\n const trackingId = useTrackingId({\n name: \"PopoverClose\",\n data,\n hasOverride: !!props[\"data-tracking-id\"],\n });\n\n return (\n <Button\n ref={ref}\n data-tracking-id={trackingId}\n data-anv=\"popover-close\"\n {...rest}\n onClick={(event) => {\n context?.popover.close();\n context?.onClose?.();\n onClick?.(event);\n }}\n />\n );\n },\n);\n\nPopoverClose.displayName = \"PopoverClose\";\n","import {\n forwardRef,\n type MouseEvent,\n type FocusEvent,\n type KeyboardEvent,\n} from \"react\";\nimport { Button, type ButtonProps } from \"../Button\";\nimport { useMergeRefs, useTrackingId } from \"../../hooks\";\nimport { usePopoverContext } from \"./internal/usePopoverContext\";\nimport { childrenToString } from \"../../internal/functions\";\nimport type { DataTrackingId } from \"../../types\";\n\n/** @extends ButtonProps */\nexport type PopoverButtonProps = ButtonProps & DataTrackingId;\n\n/** Button trigger that toggles the enclosing popover. */\nexport const PopoverButton = forwardRef<HTMLButtonElement, PopoverButtonProps>(\n function PopoverButton(props, ref) {\n const {\n children,\n size,\n onMouseEnter,\n onMouseLeave,\n onClick,\n onKeyDown,\n onFocus,\n onBlur,\n ...rest\n } = props;\n const context = usePopoverContext();\n\n const data = {\n children: childrenToString(props.children),\n appearance: props.appearance,\n icon: props.icon,\n size: props.size,\n type: props.type,\n };\n\n const trackingId = useTrackingId({\n name: \"PopoverButton\",\n data,\n hasOverride: !!props[\"data-tracking-id\"],\n });\n\n const onMouseEnterHandler = (e: MouseEvent<HTMLButtonElement>) => {\n onMouseEnter?.(e);\n context?.invoker.onMouseEnter();\n };\n const onMouseLeaveHandler = (e: MouseEvent<HTMLButtonElement>) => {\n onMouseLeave?.(e);\n context?.invoker.onMouseLeave();\n };\n const onFocusHandler = (e: FocusEvent<HTMLButtonElement>) => {\n onFocus?.(e);\n context?.invoker.onFocus(e);\n };\n const onBlurHandler = (e: FocusEvent<HTMLButtonElement>) => {\n onBlur?.(e);\n context?.invoker.onBlur(e);\n };\n const onKeyDownHandler = (e: KeyboardEvent<HTMLButtonElement>) => {\n onKeyDown?.(e);\n context?.invoker.onKeyDown(e);\n };\n\n const onClickHandler = (e: MouseEvent<HTMLButtonElement>) => {\n onClick?.(e);\n context?.invoker.onClick();\n };\n\n const buttonRef = useMergeRefs([context?.invoker.ref, ref]);\n\n return (\n <Button\n ref={buttonRef}\n size={size}\n onClick={onClickHandler}\n onKeyDown={onKeyDownHandler}\n onMouseEnter={onMouseEnterHandler}\n onMouseLeave={onMouseLeaveHandler}\n onFocus={onFocusHandler}\n onBlur={onBlurHandler}\n data-anv=\"popover-button\"\n data-tracking-id={trackingId}\n aria-haspopup={context?.invoker[\"aria-haspopup\"]}\n aria-expanded={context?.invoker[\"aria-expanded\"]}\n aria-details={context?.invoker[\"aria-details\"]}\n data-state={context?.invoker[\"data-state\"]}\n {...rest}\n >\n {children}\n </Button>\n );\n },\n);\n\nPopoverButton.displayName = \"PopoverButton\";\n","import {\n type ComponentPropsWithoutRef,\n forwardRef,\n type MouseEvent,\n useRef,\n type FocusEvent,\n type RefObject,\n useLayoutEffect,\n} from \"react\";\nimport styles from \"./Popover.module.scss\";\nimport cx from \"classnames\";\nimport { useMergeRefs } from \"../../hooks\";\nimport { usePopoverContext } from \"./internal/usePopoverContext\";\nimport { useFocusWithin } from \"../../internal/hooks\";\nimport {\n portalScopeClassNames,\n usePortalScopeStyle,\n} from \"../../internal/functions/portalScopeClassNames\";\n\n/**\n * @extends Omit<ComponentPropsWithoutRef<\"div\">, \"popover\">\n */\nexport type PopoverContentProps = Omit<\n ComponentPropsWithoutRef<\"div\">,\n \"popover\"\n> & {\n /** Ref to the inner scroller, not the floating root. */\n scrollerRef?: RefObject<HTMLDivElement>;\n /**\n * Unmounts children while closed. Defaults to `false`, so content stays in\n * the DOM (native `popover`) and visibility is the open check.\n */\n hideWhileClosed?: boolean;\n};\n\n/** Floating content region of a `Popover`. */\nexport const PopoverContent = forwardRef<HTMLDivElement, PopoverContentProps>(\n function PopoverContent(props, ref) {\n const {\n children,\n className,\n style,\n onMouseEnter,\n onMouseLeave,\n onKeyDown,\n onFocus,\n onBlur,\n onScroll,\n onScrollCapture,\n scrollerRef,\n hideWhileClosed = false,\n ...rest\n } = props;\n const context = usePopoverContext();\n const popoverClassNames = cx(\n className,\n styles[\"content\"],\n portalScopeClassNames,\n {\n [styles[\"no-padding\"]]: context?.noPadding,\n },\n );\n const childrenRef = useRef<HTMLDivElement>(null);\n const combinedStyles = usePortalScopeStyle({\n ...style,\n ...context?.popover.style,\n });\n\n const { props: wrapperProps } = useFocusWithin({\n otherRelatedElements: context?.invoker.element\n ? [context?.invoker.element]\n : [],\n onBlur: (e) => {\n if (context?.modal) {\n e.preventDefault();\n requestAnimationFrame(() => {\n context?.invoker.element?.focus();\n });\n return;\n }\n onBlur?.(e as FocusEvent<HTMLDivElement>);\n context?.popover.close();\n },\n onFocus: (e) => {\n onFocus?.(e as FocusEvent<HTMLDivElement>);\n context?.popover.show();\n },\n });\n\n const onMouseEnterHandler = (e: MouseEvent<HTMLDivElement>) => {\n onMouseEnter?.(e);\n if (!context?.openOnHover) return;\n if (!context?.open) return;\n context.setContentHovered(true);\n };\n const onMouseLeaveHandler = (e: MouseEvent<HTMLDivElement>) => {\n onMouseLeave?.(e);\n if (!context?.openOnHover) return;\n context.setContentHovered(false);\n };\n\n const onKeyDownHandler = (e: React.KeyboardEvent<HTMLDivElement>) => {\n onKeyDown?.(e);\n if (e.code === \"Escape\" && !context?.disableCloseOnEscape) {\n context?.popover.close();\n // Return focus to the trigger with a visible ring — Escape is a keyboard\n // action, and focus is leaving the (closing) content, so this is a real\n // focus move where the focusVisible hint applies. Skipped for hover popovers,\n // where re-focusing the trigger would reopen it via onFocus. Deferred to the\n // next frame so the close state flushes first; otherwise focusing the trigger\n // re-enters close via the content's focus-within onBlur and double-fires onClose.\n if (!context?.openOnHover) {\n const invoker = context?.invoker.element;\n requestAnimationFrame(() => {\n invoker?.focus({ focusVisible: true });\n });\n }\n }\n };\n\n const popoverContentRef = useMergeRefs([context?.popover.ref, ref]);\n const popoverScrollerRef = useMergeRefs([childrenRef, scrollerRef]);\n\n useLayoutEffect(() => {\n if (context?.open && childrenRef.current) {\n childrenRef.current.scrollTop = 0;\n childrenRef.current.scrollLeft = 0;\n }\n }, [context?.open]);\n\n // `data-position` drives the CSS hover-bridge on the resolved side.\n const bridgeSide =\n context?.openOnHover && context?.actualPlacement\n ? (context.actualPlacement.split(\"-\")[0] as\n | \"top\"\n | \"bottom\"\n | \"left\"\n | \"right\")\n : undefined;\n\n return (\n <div\n popover={\"manual\"}\n id={context?.popover.id}\n data-anv=\"popover-content\"\n data-position={bridgeSide}\n className={popoverClassNames}\n ref={popoverContentRef}\n style={combinedStyles}\n onMouseEnter={onMouseEnterHandler}\n onMouseLeave={onMouseLeaveHandler}\n role=\"region\"\n {...rest}\n onFocus={wrapperProps.onFocus}\n onBlur={wrapperProps.onBlur}\n >\n <div\n className={styles.scroller}\n role=\"presentation\"\n tabIndex={-1}\n ref={popoverScrollerRef}\n onKeyDown={onKeyDownHandler}\n onScroll={onScroll}\n onScrollCapture={onScrollCapture}\n >\n {hideWhileClosed ? (context?.open ? children : null) : children}\n </div>\n {!context?.disableCaret && (\n <span className={styles[\"arrow\"]} ref={context?.popover.arrowRef}>\n <svg aria-hidden=\"true\" width=\"14\" height=\"14\" viewBox=\"0 0 14 14\">\n <path stroke=\"none\" d=\"M0,0 H14 L7,7 Q7,7 7,7 Z\"></path>\n <clipPath id=\":r9:\">\n <rect x=\"0\" y=\"0\" width=\"14\" height=\"14\"></rect>\n </clipPath>\n </svg>\n </span>\n )}\n </div>\n );\n },\n);\n\nPopoverContent.displayName = \"PopoverContent\";\n","import type {\n ReactElement,\n MouseEvent,\n KeyboardEvent,\n FocusEvent,\n RefObject,\n} from \"react\";\nimport { usePopoverContext } from \"./internal/usePopoverContext\";\n\ntype PopoverTriggerChildrenReturnType = {\n ref: RefObject<HTMLButtonElement>;\n onMouseEnter: (e: MouseEvent) => void;\n onMouseLeave: (e: MouseEvent) => void;\n onClick: (e: MouseEvent) => void;\n onKeyDown: (e: KeyboardEvent) => void;\n onBlur: (e: FocusEvent) => void;\n onFocus: (e: FocusEvent) => void;\n \"aria-haspopup\": boolean;\n \"aria-expanded\": boolean;\n \"aria-details\": HTMLElement[\"id\"];\n};\n\nexport type PopoverTriggerProps = {\n /**\n * Render prop that must spread the given invoker handlers onto a focusable\n * element.\n *\n * @example\n * {(props) => <button {...props}>Open</button>}\n */\n children: (data: PopoverTriggerChildrenReturnType) => ReactElement;\n};\n\n/** Custom trigger via a render prop; full props live on {@link PopoverTriggerProps}. */\nexport function PopoverTrigger(props: PopoverTriggerProps) {\n const { children } = props;\n const context = usePopoverContext();\n\n if (!context) return;\n const { element, ...rest } = context.invoker;\n\n return children(rest);\n}\n\nPopoverTrigger.displayName = \"PopoverTrigger\";\n","import { PopoverClose } from \"./PopoverClose\";\nimport { PopoverButton } from \"./PopoverButton\";\nimport { PopoverContent } from \"./PopoverContent\";\nimport { PopoverTrigger } from \"./PopoverTrigger\";\nimport {\n type ComponentPropsWithoutRef,\n forwardRef,\n useCallback,\n useContext,\n useEffect,\n useId,\n useImperativeHandle,\n useLayoutEffect,\n useMemo,\n useRef,\n useState,\n} from \"react\";\nimport {\n PopoverContext,\n type PopoverContextProps,\n} from \"./internal/PopoverContext\";\nimport {\n arrow,\n autoUpdate,\n computePosition,\n flip,\n limitShift,\n offset,\n type Placement,\n shift,\n size,\n} from \"@floating-ui/react\";\nimport { safeHidePopover, safeShowPopover } from \"../../internal/functions\";\nimport type { DisableCloseOnEscapeOrClickProps } from \"../../types\";\nimport {\n type OpenCloseTransitionStateEffects,\n useOnClickOutside,\n useOptionallyControlledState,\n usePopoverTransitionStates,\n} from \"../../internal/hooks\";\nimport { DialogContext } from \"../Dialog/internal/DialogContext\";\n\n/**\n * @extends DisableCloseOnEscapeOrClickProps\n * @extends OpenCloseTransitionStateEffects\n */\nexport type PopoverProps = {\n /** Compound trigger and content under shared popover state. */\n children?: ComponentPropsWithoutRef<\"div\">[\"children\"];\n /** Becomes the popover content element id; generated when omitted. */\n id?: ComponentPropsWithoutRef<\"div\">[\"id\"];\n /** Traps focus when the content blurs; Tab-out returns to the trigger. Defaults to `false`. */\n modal?: boolean;\n /**\n * Disables Floating UI shift along the main axis.\n * @internal\n */\n disableShift?: boolean;\n /**\n * Disables Floating UI flip along the main axis.\n * @internal\n */\n disableFlip?: boolean;\n /**\n * Disables the cross-axis flip fallback (left/right when vertical space is tight).\n * @internal\n */\n disableFlipFallback?: boolean;\n /** Opens on hover and focus instead of click. Defaults to `false`. */\n openOnHover?: boolean;\n /** Fills the remaining viewport height on the resolved side. Defaults to `false`. */\n fillAvailableHeight?: boolean;\n /** With `fitScreen`, becomes the content height while available space becomes its cap. */\n maxHeight?: number | string;\n /** Constrains content to the available viewport height. Defaults to `false`. */\n fitScreen?: boolean;\n /** Minimum used when a constrained-height mode is active. Defaults to the component minimum. */\n minHeight?: number | string;\n /** Sets the content width to the measured trigger width. Defaults to `false`. */\n matchReferenceWidth?: boolean;\n /** Uses a viewport-relative width unless `matchReferenceWidth` is set. Defaults to `false`. */\n fixedWidth?: boolean;\n /** Preferred trigger-relative placement, with opposite-side fallback. Defaults to `bottom`. */\n placement?: Placement;\n /** Controls visibility when supplied. */\n open?: boolean;\n /** Initial visibility in uncontrolled mode. Defaults to `false`. */\n defaultOpen?: boolean;\n /** Called on an outside press while open, unless `disableCloseOnClickOutside`. */\n onClickOutside?: (e: globalThis.MouseEvent) => void;\n /**\n * Called when a non-hover close is requested (outside click, Escape, or\n * `Popover.Close`). Not called on hover-leave or when `open` changes externally.\n */\n onClose?: () => void;\n /** Hides the caret. Defaults to `false`. */\n disableCaret?: boolean;\n /** Removes the content area's default padding. Defaults to `false`. */\n noPadding?: boolean;\n /** Ignored; position still tracks while open. Defaults to `false`. */\n disableAutoUpdate?: boolean;\n /** Exposed on popover context. Defaults to `false`. */\n disableTriggerFocus?: boolean;\n /** Milliseconds before hover opens the popover. Defaults to `100`. */\n delay?: number;\n} & DisableCloseOnEscapeOrClickProps &\n OpenCloseTransitionStateEffects;\n\n/**\n * Positions top-layer content relative to a trigger. Compound Button, Trigger,\n * Content, and Close share open state; hover and modal change how it closes.\n */\nexport const Popover = Object.assign(\n forwardRef(function PopoverInner(props: PopoverProps, ref) {\n const {\n children,\n openOnHover = false,\n delay = 100,\n placement = \"bottom\",\n minHeight = \"2.875rem\",\n open,\n defaultOpen = false,\n disableShift,\n disableFlip,\n disableFlipFallback,\n matchReferenceWidth,\n id,\n disableCaret,\n fixedWidth,\n fillAvailableHeight,\n maxHeight,\n disableCloseOnClickOutside,\n disableCloseOnEscape,\n fitScreen,\n disableTriggerFocus,\n modal,\n noPadding,\n onClickOutside,\n onClose,\n onOpenAnimationStart,\n onOpenAnimationComplete,\n onCloseAnimationStart,\n onCloseAnimationComplete,\n } = props;\n const uid = useId();\n const [invoker, setInvoker] =\n useState<PopoverContextProps[\"invoker\"]>(undefined);\n const [popover, setPopover] =\n useState<PopoverContextProps[\"popover\"]>(undefined);\n const [rootNode, setRootNode] = useState<PopoverContextProps[\"rootNode\"]>();\n const [arrowElement, setArrowElement] =\n useState<PopoverContextProps[\"arrowElement\"]>(undefined);\n const [openState, setOpenState] = useOptionallyControlledState<\n PopoverContextProps[\"openState\"]\n >({\n controlledValue: open,\n defaultValue: defaultOpen,\n });\n const arrowRef = useRef<HTMLSpanElement>(null);\n const dialogContext = useContext(DialogContext);\n const [triggerHovered, setTriggerHovered] = useState(false);\n const [contentHovered, setContentHovered] = useState(false);\n // Resolved placement after flip/shift; CSS hover-bridge uses this, not the prop.\n const [actualPlacement, setActualPlacement] = useState<\n Placement | undefined\n >(placement);\n\n // Stryker disable all : Currently relying on Chromatic test for all visuals\n const processMinHeight =\n typeof minHeight === \"string\" ? minHeight : `${minHeight}px`;\n\n usePopoverTransitionStates(popover, openState, {\n onOpenAnimationStart: useCallback(() => {\n onOpenAnimationStart?.();\n }, [onOpenAnimationStart]),\n onOpenAnimationComplete: useCallback(() => {\n onOpenAnimationComplete?.();\n }, [onOpenAnimationComplete]),\n onCloseAnimationStart: useCallback(() => {\n onCloseAnimationStart?.();\n }, [onCloseAnimationStart]),\n onCloseAnimationComplete: useCallback(() => {\n onCloseAnimationComplete?.();\n }, [onCloseAnimationComplete]),\n });\n\n /* istanbul ignore next */\n const updatePosition = useCallback(() => {\n if (!invoker || !popover) return;\n if (!openState) return;\n computePosition(invoker, popover, {\n placement: placement,\n middleware: [\n offset(8),\n size({\n padding: 5,\n apply({ rects, availableHeight, elements }) {\n Object.assign(elements.floating.style, {\n ...(matchReferenceWidth\n ? { width: `${rects.reference.width}px` }\n : fixedWidth\n ? { width: \"40dvw\" }\n : {}),\n ...(fillAvailableHeight\n ? {\n height: `${availableHeight - 20}px`,\n minHeight: processMinHeight,\n }\n : {}),\n ...(maxHeight\n ? {\n minHeight: processMinHeight,\n height: fitScreen\n ? typeof maxHeight === \"string\"\n ? maxHeight\n : `${maxHeight}px`\n : undefined,\n maxHeight: fitScreen\n ? `${availableHeight - 20}px`\n : typeof maxHeight === \"string\"\n ? maxHeight\n : `${maxHeight}px`,\n }\n : {}),\n ...(fitScreen && !maxHeight\n ? {\n minHeight: processMinHeight,\n maxHeight: `${availableHeight - 20}px`,\n }\n : {}),\n zIndex: 1,\n });\n },\n }),\n flip({\n mainAxis: !disableFlip,\n crossAxis: false,\n fallbackAxisSideDirection: disableFlipFallback ? \"none\" : \"end\",\n padding: 5,\n }),\n shift({\n padding: 5,\n mainAxis: !disableShift,\n crossAxis: false,\n limiter: limitShift({\n mainAxis: !disableShift,\n }),\n }),\n arrow({\n element: !disableCaret && arrowElement ? arrowElement : null,\n padding: 5,\n }),\n ],\n }).then(({ x, y, placement, middlewareData }) => {\n setActualPlacement(placement);\n const side = placement.split(\"-\")[0];\n\n const staticSide = {\n top: \"bottom\",\n right: \"left\",\n bottom: \"top\",\n left: \"right\",\n }[side as \"top\" | \"right\" | \"bottom\" | \"left\"];\n\n const arrowDeg = () => {\n if (staticSide === \"top\") return 180;\n if (staticSide === \"bottom\") return 0;\n if (staticSide === \"left\") return 90;\n return 270;\n };\n\n Object.assign(popover.style, {\n left: `${x}px`,\n top: `${y}px`,\n });\n if (middlewareData.arrow && arrowElement) {\n const { x, y } = middlewareData.arrow;\n Object.assign(arrowElement.style, {\n left: x != null ? `${x}px` : \"\",\n top: y != null ? `${y}px` : \"\",\n right: \"\",\n bottom: \"\",\n [staticSide as string]: `${-arrowElement.offsetWidth + 2}px`,\n transform: `rotate(${arrowDeg()}deg)`,\n });\n }\n });\n }, [\n arrowElement,\n disableCaret,\n disableFlip,\n disableFlipFallback,\n disableShift,\n fillAvailableHeight,\n fitScreen,\n fixedWidth,\n invoker,\n matchReferenceWidth,\n maxHeight,\n openState,\n placement,\n popover,\n processMinHeight,\n ]);\n\n useLayoutEffect(() => {\n if (!popover || !invoker) return;\n if (!openState) {\n return;\n }\n\n let requestID: number | null = null;\n const cleanup = autoUpdate(invoker, popover, () => {\n requestID = requestAnimationFrame(updatePosition);\n });\n\n return () => {\n if (requestID) cancelAnimationFrame(requestID);\n cleanup();\n };\n }, [invoker, popover, updatePosition, openState]);\n // Stryker restore all\n\n popover?.getRootNode();\n\n const popoverId = id ?? `popover-${uid.replace(/:/g, \"\")}`;\n const isControlled = typeof open !== \"undefined\";\n\n const openPopover = useCallback(() => {\n if (\n !popover ||\n !(rootNode as ShadowRoot | Document)?.querySelector(`#${popoverId}`)\n )\n return;\n setOpenState(true);\n }, [popover, rootNode, popoverId, setOpenState]);\n\n const closePopover = useCallback(\n (fn?: () => void) => {\n if (!popover || !openState) return;\n if (!openOnHover) onClose?.();\n setOpenState(false);\n\n // Programmatic close can leave the pointer inside; lingering hover\n // would reopen on the next delay tick.\n setTriggerHovered(false);\n setContentHovered(false);\n\n fn?.();\n },\n [\n popover,\n openState,\n openOnHover,\n onClose,\n setOpenState,\n setTriggerHovered,\n setContentHovered,\n ],\n );\n\n useImperativeHandle(\n ref,\n () => ({\n openPopover,\n closePopover,\n }),\n [openPopover, closePopover],\n );\n\n useEffect(() => {\n if (typeof openState === \"undefined\") return;\n if (openState) {\n if (dialogContext) {\n // Nested show waits for the dialog's native `open`; `hasOpenPopover`\n // lets the dialog skip Escape-to-close while this layer is up.\n if (dialogContext?.ref?.current?.open) {\n safeShowPopover(popover);\n dialogContext?.setHasOpenPopover?.(true);\n }\n return;\n }\n safeShowPopover(popover);\n } else {\n safeHidePopover(popover);\n dialogContext?.setHasOpenPopover?.(false);\n }\n }, [openState, openPopover, closePopover, dialogContext, popover]);\n\n useOnClickOutside({\n disable: disableCloseOnClickOutside || !openState,\n onClickOutsideBegin: (e) => {\n if (!openState) return;\n onClickOutside?.(e);\n },\n targets: [invoker, popover],\n onClickOutside: () => {\n if (openOnHover || isControlled) return;\n closePopover();\n },\n });\n\n const value = useMemo(() => {\n return {\n popoverId,\n invoker,\n setInvoker,\n popover,\n setPopover,\n arrowElement,\n setArrowElement,\n openPopover,\n closePopover,\n placement,\n actualPlacement,\n onClose,\n openOnHover,\n openState,\n setOpenState,\n disableCloseOnClickOutside,\n fillAvailableHeight,\n maxHeight,\n matchReferenceWidth,\n fixedWidth,\n disableCaret,\n disableFlipFallback,\n disableTriggerFocus,\n disableCloseOnEscape,\n noPadding,\n controlled: isControlled,\n modal: modal,\n arrowRef,\n rootNode,\n setRootNode,\n delay,\n triggerHovered,\n setTriggerHovered,\n contentHovered,\n setContentHovered,\n };\n }, [\n popoverId,\n invoker,\n popover,\n arrowElement,\n openPopover,\n closePopover,\n placement,\n actualPlacement,\n onClose,\n openOnHover,\n openState,\n setOpenState,\n disableCloseOnClickOutside,\n fillAvailableHeight,\n maxHeight,\n matchReferenceWidth,\n fixedWidth,\n disableCaret,\n disableFlipFallback,\n disableTriggerFocus,\n disableCloseOnEscape,\n noPadding,\n isControlled,\n modal,\n rootNode,\n delay,\n triggerHovered,\n setTriggerHovered,\n contentHovered,\n setContentHovered,\n ]);\n\n return (\n <PopoverContext.Provider value={value}>\n {children}\n </PopoverContext.Provider>\n );\n }),\n {\n /** Render-prop trigger for a custom invoker. */\n Trigger: PopoverTrigger,\n /** Floating region positioned against the trigger. */\n Content: PopoverContent,\n /** Closes the popover, then runs its own click handler. */\n Close: PopoverClose,\n /** Button-styled trigger that toggles the popover. */\n Button: PopoverButton,\n },\n);\nPopover.displayName = \"Popover\";\n"],"names":["PopoverClose","PopoverButton","PopoverContent","arrow","placement","x","y"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"Popover-B2ix8Ji4.js","sources":["../src/components/Popover/internal/PopoverContext.ts","../src/components/Popover/internal/usePopoverContext.tsx","../src/components/Popover/PopoverClose.tsx","../src/components/Popover/PopoverButton.tsx","../src/components/Popover/PopoverContent.tsx","../src/components/Popover/PopoverTrigger.tsx","../src/components/Popover/Popover.tsx"],"sourcesContent":["import {\n createContext,\n type CSSProperties,\n type Dispatch,\n type RefObject,\n type SetStateAction,\n} from \"react\";\nimport type { PopoverProps } from \"../Popover\";\nimport type { Placement } from \"@floating-ui/react-dom\";\n\nexport type PopoverContextProps = {\n popoverId: string;\n invoker?: HTMLElement;\n setInvoker?: Dispatch<SetStateAction<HTMLElement | undefined>>;\n popover?: HTMLElement;\n setPopover?: Dispatch<SetStateAction<HTMLElement | undefined>>;\n rootNode?: Node;\n setRootNode?: Dispatch<SetStateAction<Node | undefined>>;\n arrowElement?: HTMLSpanElement;\n setArrowElement?: Dispatch<SetStateAction<HTMLSpanElement | undefined>>;\n openState: boolean;\n popoverStyle?: CSSProperties;\n placement?: Placement;\n actualPlacement?: Placement;\n openPopover: () => void;\n closePopover: (replacementFn?: () => void) => void;\n onClose?: PopoverProps[\"onClose\"];\n openOnHover: PopoverProps[\"openOnHover\"];\n controlled: boolean;\n disableCloseOnClickOutside?: PopoverProps[\"disableCloseOnClickOutside\"];\n disableCloseOnEscape?: PopoverProps[\"disableCloseOnEscape\"];\n modal?: PopoverProps[\"modal\"];\n noPadding?: PopoverProps[\"noPadding\"];\n fillAvailableHeight: PopoverProps[\"fillAvailableHeight\"];\n maxHeight: PopoverProps[\"maxHeight\"];\n matchReferenceWidth: PopoverProps[\"matchReferenceWidth\"];\n fixedWidth: PopoverProps[\"fixedWidth\"];\n disableCaret: PopoverProps[\"disableCaret\"];\n disableFlipFallback: PopoverProps[\"disableFlipFallback\"];\n disableTriggerFocus: PopoverProps[\"disableTriggerFocus\"];\n arrowRef: RefObject<HTMLSpanElement>;\n delay: PopoverProps[\"delay\"];\n triggerHovered: boolean;\n setTriggerHovered: Dispatch<SetStateAction<boolean>>;\n contentHovered: boolean;\n setContentHovered: Dispatch<SetStateAction<boolean>>;\n};\n\nexport const PopoverContext = createContext<PopoverContextProps | null>(null);\n","import {\n useRef,\n useContext,\n useLayoutEffect,\n type KeyboardEvent,\n useEffect,\n} from \"react\";\nimport { PopoverContext } from \"./PopoverContext\";\nimport { tabbable } from \"tabbable\";\n\nexport type dataStateType = \"open\" | \"closed\";\n\n/** Invoker and floating-element APIs for the enclosing popover. */\nexport function usePopoverContext() {\n const context = useContext(PopoverContext);\n const invokerRef = useRef<HTMLButtonElement>(null);\n const popoverRef = useRef<HTMLDivElement>(null);\n const arrowRef = useRef<HTMLSpanElement>(null);\n const { triggerHovered, setTriggerHovered, contentHovered } = context || {};\n\n useLayoutEffect(() => {\n if (!invokerRef.current) return;\n context?.setInvoker?.(invokerRef.current);\n }, [context, invokerRef]);\n\n useLayoutEffect(() => {\n if (!popoverRef.current) return;\n context?.setPopover?.(popoverRef.current);\n context?.setRootNode?.(popoverRef.current.getRootNode());\n if (!arrowRef.current) return;\n context?.setArrowElement?.(arrowRef.current);\n }, [context, popoverRef]);\n\n useEffect(() => {\n if (!context?.openOnHover) return;\n // Close uses a fixed 100ms grace so the pointer can cross the hover bridge;\n // `delay` only applies to open.\n if (!triggerHovered && !contentHovered) {\n const closeTimeout: NodeJS.Timeout = setTimeout(() => {\n context?.closePopover();\n }, 100);\n return () => {\n clearTimeout(closeTimeout);\n };\n }\n if (triggerHovered && !contentHovered) {\n if (context?.delay) {\n const openTimeout = setTimeout(() => {\n context?.openPopover();\n }, context.delay);\n return () => {\n clearTimeout(openTimeout);\n };\n } else {\n context?.openPopover();\n }\n }\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, [context?.delay, context?.openOnHover, triggerHovered, contentHovered]);\n\n const onMouseEnterHandler = () => {\n if (!context?.openOnHover) return;\n setTriggerHovered?.(true);\n };\n const onMouseLeaveHandler = () => {\n if (!context?.openOnHover) return;\n setTriggerHovered?.(false);\n };\n\n const onFocusHandler = (_e: React.FocusEvent) => {\n if (context?.openOnHover) {\n context?.openPopover();\n }\n };\n\n const onBlurHandler = (e: React.FocusEvent) => {\n if (context?.popover?.contains(e.relatedTarget as Node)) return;\n if (context?.modal && context.openState) {\n e.preventDefault();\n requestAnimationFrame(() => {\n context?.invoker?.focus();\n const focusables = tabbable(context?.popover as Element);\n if (focusables.length > 0) {\n focusables[focusables.length - 1].focus();\n }\n });\n return;\n }\n if (!context?.disableCloseOnClickOutside) {\n context?.closePopover();\n }\n };\n\n const onKeyDownHandler = (e: KeyboardEvent) => {\n if (!context?.openState) return;\n if (\n e.code === \"Escape\" &&\n !context?.disableCloseOnEscape &&\n !context?.controlled\n ) {\n context?.closePopover();\n // Escape is a keyboard action, so the trigger should show its focus-visible\n // ring. Focus is already on the trigger, so blur first — re-focusing an\n // already-focused element is a no-op and would ignore the focusVisible hint.\n // Skipped for hover popovers, where re-focusing would reopen via onFocus.\n // Deferred to the next frame so the close state flushes first; otherwise the\n // synchronous blur re-enters closePopover (openState still true) and double-fires onClose.\n if (!context?.openOnHover) {\n const invoker = context?.invoker;\n requestAnimationFrame(() => {\n invoker?.blur();\n invoker?.focus({ focusVisible: true });\n });\n }\n return;\n }\n };\n\n const onClickHandler = () => {\n context?.invoker?.focus();\n if (context?.openOnHover) return;\n if (context?.controlled === false) {\n if (context?.openState) {\n context?.closePopover();\n } else {\n context?.openPopover();\n }\n return;\n }\n };\n\n if (!context || !invokerRef || !popoverRef) return;\n return {\n invoker: {\n ref: invokerRef,\n element: context.invoker,\n onMouseEnter: onMouseEnterHandler,\n onMouseLeave: onMouseLeaveHandler,\n onKeyDown: onKeyDownHandler,\n onClick: onClickHandler,\n onFocus: onFocusHandler,\n onBlur: onBlurHandler,\n \"aria-haspopup\": true,\n \"aria-expanded\": context.openState,\n \"aria-details\": context.popoverId,\n \"data-state\": context.openState ? \"open\" : (\"closed\" as dataStateType),\n },\n popover: {\n ref: popoverRef,\n element: context.popover,\n id: context.popoverId,\n onClose: context.onClose,\n show: context.openPopover,\n close: context.closePopover,\n noPadding: context.noPadding,\n style: context.popoverStyle,\n arrowRef: arrowRef,\n },\n rootNode: context.rootNode,\n onClose: context.onClose,\n open: context.openState,\n openOnHover: context.openOnHover,\n controlled: context.controlled,\n disableCloseOnClickOutside: context.disableCloseOnClickOutside,\n disableCloseOnEscape: context.disableCloseOnEscape,\n modal: context.modal,\n placement: context.placement,\n actualPlacement: context.actualPlacement,\n disableCaret: context.disableCaret,\n noPadding: context.noPadding,\n fillAvailableHeight: context.fillAvailableHeight,\n maxHeight: context.maxHeight,\n matchReferenceWidth: context.matchReferenceWidth,\n fixedWidth: context.fixedWidth,\n disableFlipFallback: context.disableFlipFallback,\n disableTriggerFocus: context.disableTriggerFocus,\n triggerHovered: context.triggerHovered,\n setTriggerHovered: context.setTriggerHovered,\n contentHovered: context.contentHovered,\n setContentHovered: context.setContentHovered,\n };\n}\n","import { forwardRef } from \"react\";\n\nimport { Button, type ButtonProps } from \"../Button\";\nimport { usePopoverContext } from \"./internal/usePopoverContext\";\nimport { childrenToString } from \"../../internal/functions\";\nimport type { DataTrackingId } from \"../../types\";\nimport { useTrackingId } from \"../../hooks\";\n\n/** @extends ButtonProps */\nexport type PopoverCloseProps = ButtonProps & DataTrackingId;\n\n/** Button that closes the enclosing popover, then runs its own click handler. */\nexport const PopoverClose = forwardRef<HTMLButtonElement, PopoverCloseProps>(\n function PopoverClose(props, ref) {\n const { onClick, ...rest } = props;\n const context = usePopoverContext();\n\n const data = {\n children: childrenToString(props.children),\n };\n\n const trackingId = useTrackingId({\n name: \"PopoverClose\",\n data,\n hasOverride: !!props[\"data-tracking-id\"],\n });\n\n return (\n <Button\n ref={ref}\n data-tracking-id={trackingId}\n data-anv=\"popover-close\"\n {...rest}\n onClick={(event) => {\n context?.popover.close();\n context?.onClose?.();\n onClick?.(event);\n }}\n />\n );\n },\n);\n\nPopoverClose.displayName = \"PopoverClose\";\n","import {\n forwardRef,\n type MouseEvent,\n type FocusEvent,\n type KeyboardEvent,\n} from \"react\";\nimport { Button, type ButtonProps } from \"../Button\";\nimport { useMergeRefs, useTrackingId } from \"../../hooks\";\nimport { usePopoverContext } from \"./internal/usePopoverContext\";\nimport { childrenToString } from \"../../internal/functions\";\nimport type { DataTrackingId } from \"../../types\";\n\n/** @extends ButtonProps */\nexport type PopoverButtonProps = ButtonProps & DataTrackingId;\n\n/** Button trigger that toggles the enclosing popover. */\nexport const PopoverButton = forwardRef<HTMLButtonElement, PopoverButtonProps>(\n function PopoverButton(props, ref) {\n const {\n children,\n size,\n onMouseEnter,\n onMouseLeave,\n onClick,\n onKeyDown,\n onFocus,\n onBlur,\n ...rest\n } = props;\n const context = usePopoverContext();\n\n const data = {\n children: childrenToString(props.children),\n appearance: props.appearance,\n icon: props.icon,\n size: props.size,\n type: props.type,\n };\n\n const trackingId = useTrackingId({\n name: \"PopoverButton\",\n data,\n hasOverride: !!props[\"data-tracking-id\"],\n });\n\n const onMouseEnterHandler = (e: MouseEvent<HTMLButtonElement>) => {\n onMouseEnter?.(e);\n context?.invoker.onMouseEnter();\n };\n const onMouseLeaveHandler = (e: MouseEvent<HTMLButtonElement>) => {\n onMouseLeave?.(e);\n context?.invoker.onMouseLeave();\n };\n const onFocusHandler = (e: FocusEvent<HTMLButtonElement>) => {\n onFocus?.(e);\n context?.invoker.onFocus(e);\n };\n const onBlurHandler = (e: FocusEvent<HTMLButtonElement>) => {\n onBlur?.(e);\n context?.invoker.onBlur(e);\n };\n const onKeyDownHandler = (e: KeyboardEvent<HTMLButtonElement>) => {\n onKeyDown?.(e);\n context?.invoker.onKeyDown(e);\n };\n\n const onClickHandler = (e: MouseEvent<HTMLButtonElement>) => {\n onClick?.(e);\n context?.invoker.onClick();\n };\n\n const buttonRef = useMergeRefs([context?.invoker.ref, ref]);\n\n return (\n <Button\n ref={buttonRef}\n size={size}\n onClick={onClickHandler}\n onKeyDown={onKeyDownHandler}\n onMouseEnter={onMouseEnterHandler}\n onMouseLeave={onMouseLeaveHandler}\n onFocus={onFocusHandler}\n onBlur={onBlurHandler}\n data-anv=\"popover-button\"\n data-tracking-id={trackingId}\n aria-haspopup={context?.invoker[\"aria-haspopup\"]}\n aria-expanded={context?.invoker[\"aria-expanded\"]}\n aria-details={context?.invoker[\"aria-details\"]}\n data-state={context?.invoker[\"data-state\"]}\n {...rest}\n >\n {children}\n </Button>\n );\n },\n);\n\nPopoverButton.displayName = \"PopoverButton\";\n","import {\n type ComponentPropsWithoutRef,\n forwardRef,\n type MouseEvent,\n useRef,\n type FocusEvent,\n type RefObject,\n useLayoutEffect,\n} from \"react\";\nimport styles from \"./Popover.module.scss\";\nimport cx from \"classnames\";\nimport { useMergeRefs } from \"../../hooks\";\nimport { usePopoverContext } from \"./internal/usePopoverContext\";\nimport { useFocusWithin } from \"../../internal/hooks\";\nimport {\n portalScopeClassNames,\n usePortalScopeStyle,\n} from \"../../internal/functions/portalScopeClassNames\";\n\n/**\n * @extends Omit<ComponentPropsWithoutRef<\"div\">, \"popover\">\n */\nexport type PopoverContentProps = Omit<\n ComponentPropsWithoutRef<\"div\">,\n \"popover\"\n> & {\n /** Ref to the inner scroller, not the floating root. */\n scrollerRef?: RefObject<HTMLDivElement>;\n /**\n * Unmounts children while closed. Defaults to `false`, so content stays in\n * the DOM (native `popover`) and visibility is the open check.\n */\n hideWhileClosed?: boolean;\n};\n\n/** Floating content region of a `Popover`. */\nexport const PopoverContent = forwardRef<HTMLDivElement, PopoverContentProps>(\n function PopoverContent(props, ref) {\n const {\n children,\n className,\n style,\n onMouseEnter,\n onMouseLeave,\n onKeyDown,\n onFocus,\n onBlur,\n onScroll,\n onScrollCapture,\n scrollerRef,\n hideWhileClosed = false,\n ...rest\n } = props;\n const context = usePopoverContext();\n const popoverClassNames = cx(\n className,\n styles[\"content\"],\n portalScopeClassNames,\n {\n [styles[\"no-padding\"]]: context?.noPadding,\n },\n );\n const childrenRef = useRef<HTMLDivElement>(null);\n const combinedStyles = usePortalScopeStyle({\n ...style,\n ...context?.popover.style,\n });\n\n const { props: wrapperProps } = useFocusWithin({\n otherRelatedElements: context?.invoker.element\n ? [context?.invoker.element]\n : [],\n onBlur: (e) => {\n if (context?.modal) {\n e.preventDefault();\n requestAnimationFrame(() => {\n context?.invoker.element?.focus();\n });\n return;\n }\n onBlur?.(e as FocusEvent<HTMLDivElement>);\n context?.popover.close();\n },\n onFocus: (e) => {\n onFocus?.(e as FocusEvent<HTMLDivElement>);\n context?.popover.show();\n },\n });\n\n const onMouseEnterHandler = (e: MouseEvent<HTMLDivElement>) => {\n onMouseEnter?.(e);\n if (!context?.openOnHover) return;\n if (!context?.open) return;\n context.setContentHovered(true);\n };\n const onMouseLeaveHandler = (e: MouseEvent<HTMLDivElement>) => {\n onMouseLeave?.(e);\n if (!context?.openOnHover) return;\n context.setContentHovered(false);\n };\n\n const onKeyDownHandler = (e: React.KeyboardEvent<HTMLDivElement>) => {\n onKeyDown?.(e);\n if (e.code === \"Escape\" && !context?.disableCloseOnEscape) {\n context?.popover.close();\n // Return focus to the trigger with a visible ring — Escape is a keyboard\n // action, and focus is leaving the (closing) content, so this is a real\n // focus move where the focusVisible hint applies. Skipped for hover popovers,\n // where re-focusing the trigger would reopen it via onFocus. Deferred to the\n // next frame so the close state flushes first; otherwise focusing the trigger\n // re-enters close via the content's focus-within onBlur and double-fires onClose.\n if (!context?.openOnHover) {\n const invoker = context?.invoker.element;\n requestAnimationFrame(() => {\n invoker?.focus({ focusVisible: true });\n });\n }\n }\n };\n\n const popoverContentRef = useMergeRefs([context?.popover.ref, ref]);\n const popoverScrollerRef = useMergeRefs([childrenRef, scrollerRef]);\n\n useLayoutEffect(() => {\n if (context?.open && childrenRef.current) {\n childrenRef.current.scrollTop = 0;\n childrenRef.current.scrollLeft = 0;\n }\n }, [context?.open]);\n\n // `data-position` drives the CSS hover-bridge on the resolved side.\n const bridgeSide =\n context?.openOnHover && context?.actualPlacement\n ? (context.actualPlacement.split(\"-\")[0] as\n | \"top\"\n | \"bottom\"\n | \"left\"\n | \"right\")\n : undefined;\n\n return (\n <div\n popover={\"manual\"}\n id={context?.popover.id}\n data-anv=\"popover-content\"\n data-position={bridgeSide}\n className={popoverClassNames}\n ref={popoverContentRef}\n style={combinedStyles}\n onMouseEnter={onMouseEnterHandler}\n onMouseLeave={onMouseLeaveHandler}\n role=\"region\"\n {...rest}\n onFocus={wrapperProps.onFocus}\n onBlur={wrapperProps.onBlur}\n >\n <div\n className={styles.scroller}\n role=\"presentation\"\n tabIndex={-1}\n ref={popoverScrollerRef}\n onKeyDown={onKeyDownHandler}\n onScroll={onScroll}\n onScrollCapture={onScrollCapture}\n >\n {hideWhileClosed ? (context?.open ? children : null) : children}\n </div>\n {!context?.disableCaret && (\n <span className={styles[\"arrow\"]} ref={context?.popover.arrowRef}>\n <svg aria-hidden=\"true\" width=\"14\" height=\"14\" viewBox=\"0 0 14 14\">\n <path stroke=\"none\" d=\"M0,0 H14 L7,7 Q7,7 7,7 Z\"></path>\n <clipPath id=\":r9:\">\n <rect x=\"0\" y=\"0\" width=\"14\" height=\"14\"></rect>\n </clipPath>\n </svg>\n </span>\n )}\n </div>\n );\n },\n);\n\nPopoverContent.displayName = \"PopoverContent\";\n","import type {\n ReactElement,\n MouseEvent,\n KeyboardEvent,\n FocusEvent,\n RefObject,\n} from \"react\";\nimport { usePopoverContext } from \"./internal/usePopoverContext\";\n\ntype PopoverTriggerChildrenReturnType = {\n ref: RefObject<HTMLButtonElement>;\n onMouseEnter: (e: MouseEvent) => void;\n onMouseLeave: (e: MouseEvent) => void;\n onClick: (e: MouseEvent) => void;\n onKeyDown: (e: KeyboardEvent) => void;\n onBlur: (e: FocusEvent) => void;\n onFocus: (e: FocusEvent) => void;\n \"aria-haspopup\": boolean;\n \"aria-expanded\": boolean;\n \"aria-details\": HTMLElement[\"id\"];\n};\n\nexport type PopoverTriggerProps = {\n /**\n * Render prop that must spread the given invoker handlers onto a focusable\n * element.\n *\n * @example\n * {(props) => <button {...props}>Open</button>}\n */\n children: (data: PopoverTriggerChildrenReturnType) => ReactElement;\n};\n\n/** Custom trigger via a render prop; full props live on {@link PopoverTriggerProps}. */\nexport function PopoverTrigger(props: PopoverTriggerProps) {\n const { children } = props;\n const context = usePopoverContext();\n\n if (!context) return;\n const { element, ...rest } = context.invoker;\n\n return children(rest);\n}\n\nPopoverTrigger.displayName = \"PopoverTrigger\";\n","import { PopoverClose } from \"./PopoverClose\";\nimport { PopoverButton } from \"./PopoverButton\";\nimport { PopoverContent } from \"./PopoverContent\";\nimport { PopoverTrigger } from \"./PopoverTrigger\";\nimport {\n type ComponentPropsWithoutRef,\n forwardRef,\n useCallback,\n useContext,\n useEffect,\n useId,\n useImperativeHandle,\n useLayoutEffect,\n useMemo,\n useRef,\n useState,\n} from \"react\";\nimport {\n PopoverContext,\n type PopoverContextProps,\n} from \"./internal/PopoverContext\";\nimport {\n arrow,\n autoUpdate,\n computePosition,\n flip,\n limitShift,\n offset,\n type Placement,\n shift,\n size,\n} from \"@floating-ui/react\";\nimport { safeHidePopover, safeShowPopover } from \"../../internal/functions\";\nimport type { DisableCloseOnEscapeOrClickProps } from \"../../types\";\nimport {\n type OpenCloseTransitionStateEffects,\n useOnClickOutside,\n useOptionallyControlledState,\n usePopoverTransitionStates,\n} from \"../../internal/hooks\";\nimport { DialogContext } from \"../Dialog/internal/DialogContext\";\n\n/**\n * @extends DisableCloseOnEscapeOrClickProps\n * @extends OpenCloseTransitionStateEffects\n */\nexport type PopoverProps = {\n /** Compound trigger and content under shared popover state. */\n children?: ComponentPropsWithoutRef<\"div\">[\"children\"];\n /** Becomes the popover content element id; generated when omitted. */\n id?: ComponentPropsWithoutRef<\"div\">[\"id\"];\n /** Traps focus when the content blurs; Tab-out returns to the trigger. Defaults to `false`. */\n modal?: boolean;\n /**\n * Disables Floating UI shift along the main axis.\n * @internal\n */\n disableShift?: boolean;\n /**\n * Disables Floating UI flip along the main axis.\n * @internal\n */\n disableFlip?: boolean;\n /**\n * Disables the cross-axis flip fallback (left/right when vertical space is tight).\n * @internal\n */\n disableFlipFallback?: boolean;\n /** Opens on hover and focus instead of click. Defaults to `false`. */\n openOnHover?: boolean;\n /** Fills the remaining viewport height on the resolved side. Defaults to `false`. */\n fillAvailableHeight?: boolean;\n /** With `fitScreen`, becomes the content height while available space becomes its cap. */\n maxHeight?: number | string;\n /** Constrains content to the available viewport height. Defaults to `false`. */\n fitScreen?: boolean;\n /** Minimum used when a constrained-height mode is active. Defaults to the component minimum. */\n minHeight?: number | string;\n /** Sets the content width to the measured trigger width. Defaults to `false`. */\n matchReferenceWidth?: boolean;\n /** Uses a viewport-relative width unless `matchReferenceWidth` is set. Defaults to `false`. */\n fixedWidth?: boolean;\n /** Preferred trigger-relative placement, with opposite-side fallback. Defaults to `bottom`. */\n placement?: Placement;\n /** Controls visibility when supplied. */\n open?: boolean;\n /** Initial visibility in uncontrolled mode. Defaults to `false`. */\n defaultOpen?: boolean;\n /** Called on an outside press while open, unless `disableCloseOnClickOutside`. */\n onClickOutside?: (e: globalThis.MouseEvent) => void;\n /**\n * Called when a non-hover close is requested (outside click, Escape, or\n * `Popover.Close`). Not called on hover-leave or when `open` changes externally.\n */\n onClose?: () => void;\n /** Hides the caret. Defaults to `false`. */\n disableCaret?: boolean;\n /** Removes the content area's default padding. Defaults to `false`. */\n noPadding?: boolean;\n /** Ignored; position still tracks while open. Defaults to `false`. */\n disableAutoUpdate?: boolean;\n /** Exposed on popover context. Defaults to `false`. */\n disableTriggerFocus?: boolean;\n /** Milliseconds before hover opens the popover. Defaults to `100`. */\n delay?: number;\n} & DisableCloseOnEscapeOrClickProps &\n OpenCloseTransitionStateEffects;\n\n/**\n * Positions top-layer content relative to a trigger. Compound Button, Trigger,\n * Content, and Close share open state; hover and modal change how it closes.\n */\nexport const Popover = Object.assign(\n forwardRef(function PopoverInner(props: PopoverProps, ref) {\n const {\n children,\n openOnHover = false,\n delay = 100,\n placement = \"bottom\",\n minHeight = \"2.875rem\",\n open,\n defaultOpen = false,\n disableShift,\n disableFlip,\n disableFlipFallback,\n matchReferenceWidth,\n id,\n disableCaret,\n fixedWidth,\n fillAvailableHeight,\n maxHeight,\n disableCloseOnClickOutside,\n disableCloseOnEscape,\n fitScreen,\n disableTriggerFocus,\n modal,\n noPadding,\n onClickOutside,\n onClose,\n onOpenAnimationStart,\n onOpenAnimationComplete,\n onCloseAnimationStart,\n onCloseAnimationComplete,\n } = props;\n const uid = useId();\n const [invoker, setInvoker] =\n useState<PopoverContextProps[\"invoker\"]>(undefined);\n const [popover, setPopover] =\n useState<PopoverContextProps[\"popover\"]>(undefined);\n const [rootNode, setRootNode] = useState<PopoverContextProps[\"rootNode\"]>();\n const [arrowElement, setArrowElement] =\n useState<PopoverContextProps[\"arrowElement\"]>(undefined);\n const [openState, setOpenState] = useOptionallyControlledState<\n PopoverContextProps[\"openState\"]\n >({\n controlledValue: open,\n defaultValue: defaultOpen,\n });\n const arrowRef = useRef<HTMLSpanElement>(null);\n const dialogContext = useContext(DialogContext);\n const [triggerHovered, setTriggerHovered] = useState(false);\n const [contentHovered, setContentHovered] = useState(false);\n // Resolved placement after flip/shift; CSS hover-bridge uses this, not the prop.\n const [actualPlacement, setActualPlacement] = useState<\n Placement | undefined\n >(placement);\n\n // Stryker disable all : Currently relying on Chromatic test for all visuals\n const processMinHeight =\n typeof minHeight === \"string\" ? minHeight : `${minHeight}px`;\n\n usePopoverTransitionStates(popover, openState, {\n onOpenAnimationStart: useCallback(() => {\n onOpenAnimationStart?.();\n }, [onOpenAnimationStart]),\n onOpenAnimationComplete: useCallback(() => {\n onOpenAnimationComplete?.();\n }, [onOpenAnimationComplete]),\n onCloseAnimationStart: useCallback(() => {\n onCloseAnimationStart?.();\n }, [onCloseAnimationStart]),\n onCloseAnimationComplete: useCallback(() => {\n onCloseAnimationComplete?.();\n }, [onCloseAnimationComplete]),\n });\n\n /* istanbul ignore next */\n const updatePosition = useCallback(() => {\n if (!invoker || !popover) return;\n if (!openState) return;\n computePosition(invoker, popover, {\n placement: placement,\n middleware: [\n offset(8),\n size({\n padding: 5,\n apply({ rects, availableHeight, elements }) {\n Object.assign(elements.floating.style, {\n ...(matchReferenceWidth\n ? { width: `${rects.reference.width}px` }\n : fixedWidth\n ? { width: \"40dvw\" }\n : {}),\n ...(fillAvailableHeight\n ? {\n height: `${availableHeight - 20}px`,\n minHeight: processMinHeight,\n }\n : {}),\n ...(maxHeight\n ? {\n minHeight: processMinHeight,\n height: fitScreen\n ? typeof maxHeight === \"string\"\n ? maxHeight\n : `${maxHeight}px`\n : undefined,\n maxHeight: fitScreen\n ? `${availableHeight - 20}px`\n : typeof maxHeight === \"string\"\n ? maxHeight\n : `${maxHeight}px`,\n }\n : {}),\n ...(fitScreen && !maxHeight\n ? {\n minHeight: processMinHeight,\n maxHeight: `${availableHeight - 20}px`,\n }\n : {}),\n zIndex: 1,\n });\n },\n }),\n flip({\n mainAxis: !disableFlip,\n crossAxis: false,\n fallbackAxisSideDirection: disableFlipFallback ? \"none\" : \"end\",\n padding: 5,\n }),\n shift({\n padding: 5,\n mainAxis: !disableShift,\n crossAxis: false,\n limiter: limitShift({\n mainAxis: !disableShift,\n }),\n }),\n arrow({\n element: !disableCaret && arrowElement ? arrowElement : null,\n padding: 5,\n }),\n ],\n }).then(({ x, y, placement, middlewareData }) => {\n setActualPlacement(placement);\n const side = placement.split(\"-\")[0];\n\n const staticSide = {\n top: \"bottom\",\n right: \"left\",\n bottom: \"top\",\n left: \"right\",\n }[side as \"top\" | \"right\" | \"bottom\" | \"left\"];\n\n const arrowDeg = () => {\n if (staticSide === \"top\") return 180;\n if (staticSide === \"bottom\") return 0;\n if (staticSide === \"left\") return 90;\n return 270;\n };\n\n Object.assign(popover.style, {\n left: `${x}px`,\n top: `${y}px`,\n });\n if (middlewareData.arrow && arrowElement) {\n const { x, y } = middlewareData.arrow;\n Object.assign(arrowElement.style, {\n left: x != null ? `${x}px` : \"\",\n top: y != null ? `${y}px` : \"\",\n right: \"\",\n bottom: \"\",\n [staticSide as string]: `${-arrowElement.offsetWidth + 2}px`,\n transform: `rotate(${arrowDeg()}deg)`,\n });\n }\n });\n }, [\n arrowElement,\n disableCaret,\n disableFlip,\n disableFlipFallback,\n disableShift,\n fillAvailableHeight,\n fitScreen,\n fixedWidth,\n invoker,\n matchReferenceWidth,\n maxHeight,\n openState,\n placement,\n popover,\n processMinHeight,\n ]);\n\n useLayoutEffect(() => {\n if (!popover || !invoker) return;\n if (!openState) {\n return;\n }\n\n let requestID: number | null = null;\n const cleanup = autoUpdate(invoker, popover, () => {\n requestID = requestAnimationFrame(updatePosition);\n });\n\n return () => {\n if (requestID) cancelAnimationFrame(requestID);\n cleanup();\n };\n }, [invoker, popover, updatePosition, openState]);\n // Stryker restore all\n\n popover?.getRootNode();\n\n const popoverId = id ?? `popover-${uid.replace(/:/g, \"\")}`;\n const isControlled = typeof open !== \"undefined\";\n\n const openPopover = useCallback(() => {\n if (\n !popover ||\n !(rootNode as ShadowRoot | Document)?.querySelector(`#${popoverId}`)\n )\n return;\n setOpenState(true);\n }, [popover, rootNode, popoverId, setOpenState]);\n\n const closePopover = useCallback(\n (fn?: () => void) => {\n if (!popover || !openState) return;\n if (!openOnHover) onClose?.();\n setOpenState(false);\n\n // Programmatic close can leave the pointer inside; lingering hover\n // would reopen on the next delay tick.\n setTriggerHovered(false);\n setContentHovered(false);\n\n fn?.();\n },\n [\n popover,\n openState,\n openOnHover,\n onClose,\n setOpenState,\n setTriggerHovered,\n setContentHovered,\n ],\n );\n\n useImperativeHandle(\n ref,\n () => ({\n openPopover,\n closePopover,\n }),\n [openPopover, closePopover],\n );\n\n useEffect(() => {\n if (typeof openState === \"undefined\") return;\n if (openState) {\n if (dialogContext) {\n // Nested show waits for the dialog's native `open`; `hasOpenPopover`\n // lets the dialog skip Escape-to-close while this layer is up.\n if (dialogContext?.ref?.current?.open) {\n safeShowPopover(popover);\n dialogContext?.setHasOpenPopover?.(true);\n }\n return;\n }\n safeShowPopover(popover);\n } else {\n safeHidePopover(popover);\n dialogContext?.setHasOpenPopover?.(false);\n }\n }, [openState, openPopover, closePopover, dialogContext, popover]);\n\n useOnClickOutside({\n disable: disableCloseOnClickOutside || !openState,\n onClickOutsideBegin: (e) => {\n if (!openState) return;\n onClickOutside?.(e);\n },\n targets: [invoker, popover],\n onClickOutside: () => {\n if (openOnHover || isControlled) return;\n closePopover();\n },\n });\n\n const value = useMemo(() => {\n return {\n popoverId,\n invoker,\n setInvoker,\n popover,\n setPopover,\n arrowElement,\n setArrowElement,\n openPopover,\n closePopover,\n placement,\n actualPlacement,\n onClose,\n openOnHover,\n openState,\n setOpenState,\n disableCloseOnClickOutside,\n fillAvailableHeight,\n maxHeight,\n matchReferenceWidth,\n fixedWidth,\n disableCaret,\n disableFlipFallback,\n disableTriggerFocus,\n disableCloseOnEscape,\n noPadding,\n controlled: isControlled,\n modal: modal,\n arrowRef,\n rootNode,\n setRootNode,\n delay,\n triggerHovered,\n setTriggerHovered,\n contentHovered,\n setContentHovered,\n };\n }, [\n popoverId,\n invoker,\n popover,\n arrowElement,\n openPopover,\n closePopover,\n placement,\n actualPlacement,\n onClose,\n openOnHover,\n openState,\n setOpenState,\n disableCloseOnClickOutside,\n fillAvailableHeight,\n maxHeight,\n matchReferenceWidth,\n fixedWidth,\n disableCaret,\n disableFlipFallback,\n disableTriggerFocus,\n disableCloseOnEscape,\n noPadding,\n isControlled,\n modal,\n rootNode,\n delay,\n triggerHovered,\n setTriggerHovered,\n contentHovered,\n setContentHovered,\n ]);\n\n return (\n <PopoverContext.Provider value={value}>\n {children}\n </PopoverContext.Provider>\n );\n }),\n {\n /** Render-prop trigger for a custom invoker. */\n Trigger: PopoverTrigger,\n /** Floating region positioned against the trigger. */\n Content: PopoverContent,\n /** Closes the popover, then runs its own click handler. */\n Close: PopoverClose,\n /** Button-styled trigger that toggles the popover. */\n Button: PopoverButton,\n },\n);\nPopover.displayName = \"Popover\";\n"],"names":["PopoverClose","PopoverButton","PopoverContent","arrow","placement","x","y"],"mappings":"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"}
|
package/dist/Popover.js
CHANGED
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
export { P as Popover, P as default } from './Popover-
|
|
1
|
+
export { P as Popover, P as default } from './Popover-B2ix8Ji4.js';
|
|
2
2
|
//# sourceMappingURL=Popover.js.map
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import { jsxs, jsx } from 'react/jsx-runtime';
|
|
2
2
|
import { forwardRef, useId, isValidElement } from 'react';
|
|
3
3
|
import { c as cx } from './index-De1g9FRV.js';
|
|
4
|
-
import { F as FieldLabel } from './FieldLabel-
|
|
4
|
+
import { F as FieldLabel } from './FieldLabel-DYcUS3A4.js';
|
|
5
5
|
import { F as Flex } from './Flex-CRF7gj0_.js';
|
|
6
6
|
import { w as warnDeprecatedErrorUsage } from './utils-CM48ODEJ.js';
|
|
7
7
|
import { u as useLayoutPropsUtil } from './useLayoutPropsUtil-DjqeAJZ9.js';
|
|
@@ -129,4 +129,4 @@ const ProgressBar = forwardRef(
|
|
|
129
129
|
ProgressBar.displayName = "ProgressBar";
|
|
130
130
|
|
|
131
131
|
export { ProgressBar as P };
|
|
132
|
-
//# sourceMappingURL=ProgressBar-
|
|
132
|
+
//# sourceMappingURL=ProgressBar-CjoOuJCi.js.map
|