@servicetitan/anvil2 1.50.1 → 1.50.2
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 +22 -0
- package/dist/{Calendar-CAYitkfM.js → Calendar-BeFARXwq.js} +2 -2
- package/dist/{Calendar-CAYitkfM.js.map → Calendar-BeFARXwq.js.map} +1 -1
- package/dist/{Calendar-C9oxHTGG.js → Calendar-M9v994mm.js} +2 -2
- package/dist/{Calendar-C9oxHTGG.js.map → Calendar-M9v994mm.js.map} +1 -1
- package/dist/Calendar.js +2 -2
- package/dist/{Checkbox-DbBeuNdW.js → Checkbox-BwFY38z1.js} +3 -2
- package/dist/Checkbox-BwFY38z1.js.map +1 -0
- package/dist/{Checkbox-zAKOGEBl.js → Checkbox-Chck2V5C.js} +2 -2
- package/dist/{Checkbox-zAKOGEBl.js.map → Checkbox-Chck2V5C.js.map} +1 -1
- package/dist/Checkbox.js +2 -2
- package/dist/{Combobox-DGAa9vgU.js → Combobox-BTTWNSW1.js} +285 -175
- package/dist/Combobox-BTTWNSW1.js.map +1 -0
- package/dist/Combobox.js +1 -1
- package/dist/{DataTable-DQ9FFuV8.js → DataTable-hXWouflx.js} +6 -6
- package/dist/{DataTable-DQ9FFuV8.js.map → DataTable-hXWouflx.js.map} +1 -1
- package/dist/{DateField-BT9jJRp5.js → DateField-B8JdMu94.js} +6 -6
- package/dist/{DateField-BT9jJRp5.js.map → DateField-B8JdMu94.js.map} +1 -1
- package/dist/DateField.js +1 -1
- package/dist/{DateFieldRange-ZAic_9mt.js → DateFieldRange-DWAgi_T9.js} +7 -7
- package/dist/{DateFieldRange-ZAic_9mt.js.map → DateFieldRange-DWAgi_T9.js.map} +1 -1
- package/dist/DateFieldRange.js +1 -1
- package/dist/{DateFieldSingle-DAtR8ImE.js → DateFieldSingle-CQ6X-bVX.js} +7 -7
- package/dist/{DateFieldSingle-DAtR8ImE.js.map → DateFieldSingle-CQ6X-bVX.js.map} +1 -1
- package/dist/DateFieldSingle.js +1 -1
- package/dist/{DateFieldYearless-DXO_MPwA.js → DateFieldYearless-D6-NfIHu.js} +4 -4
- package/dist/{DateFieldYearless-DXO_MPwA.js.map → DateFieldYearless-D6-NfIHu.js.map} +1 -1
- package/dist/DateFieldYearless.js +1 -1
- package/dist/{DateFieldYearlessRange-Cg6bbPIi.js → DateFieldYearlessRange-CQM0vibm.js} +4 -4
- package/dist/{DateFieldYearlessRange-Cg6bbPIi.js.map → DateFieldYearlessRange-CQM0vibm.js.map} +1 -1
- package/dist/DateFieldYearlessRange.js +1 -1
- package/dist/{DaysOfTheWeek-9B9d7-hF.js → DaysOfTheWeek-BR-mg77X.js} +3 -3
- package/dist/{DaysOfTheWeek-9B9d7-hF.js.map → DaysOfTheWeek-BR-mg77X.js.map} +1 -1
- package/dist/DaysOfTheWeek.js +1 -1
- package/dist/{Dialog-BwabBKoZ.js → Dialog-Ba2oIATn.js} +8 -8
- package/dist/Dialog-Ba2oIATn.js.map +1 -0
- package/dist/Dialog.js +2 -2
- package/dist/{DialogCancelButton-sTEfx5kf.js → DialogCancelButton-CBHyI0CI.js} +2 -2
- package/dist/{DialogCancelButton-sTEfx5kf.js.map → DialogCancelButton-CBHyI0CI.js.map} +1 -1
- package/dist/{Drawer-GXeoK-r9.js → Drawer-CWogbC68.js} +7 -7
- package/dist/{Drawer-GXeoK-r9.js.map → Drawer-CWogbC68.js.map} +1 -1
- package/dist/Drawer.js +1 -1
- package/dist/{DrawerContext-Cs3k160L.js → DrawerContext-rJvgnn3O.js} +2 -2
- package/dist/{DrawerContext-Cs3k160L.js.map → DrawerContext-rJvgnn3O.js.map} +1 -1
- package/dist/FieldDialog-BHgkQOhh.js +519 -0
- package/dist/FieldDialog-BHgkQOhh.js.map +1 -0
- package/dist/{FieldLabel-jqlQ1Ldh.js → FieldLabel-BWOIFXgt.js} +7 -4
- package/dist/FieldLabel-BWOIFXgt.js.map +1 -0
- package/dist/FieldLabel.js +1 -1
- package/dist/{InputMask-CJC9xZHG.js → InputMask-BzY1DJoV.js} +3 -3
- package/dist/{InputMask-CJC9xZHG.js.map → InputMask-BzY1DJoV.js.map} +1 -1
- package/dist/InputMask.js +1 -1
- package/dist/{ListView-D8mfK8Lu.js → ListView-C5OBwbHe.js} +6 -4
- package/dist/ListView-C5OBwbHe.js.map +1 -0
- package/dist/ListView.js +1 -1
- package/dist/{Menu-Cn2JJe1Y.js → Menu-69JwGxYh.js} +2 -2
- package/dist/{Menu-Cn2JJe1Y.js.map → Menu-69JwGxYh.js.map} +1 -1
- package/dist/Menu.js +1 -1
- package/dist/MultiSelectField.d.ts +2 -0
- package/dist/MultiSelectField.js +2 -0
- package/dist/MultiSelectField.js.map +1 -0
- package/dist/MultiSelectFieldSync-B3HNQf7R.js +873 -0
- package/dist/MultiSelectFieldSync-B3HNQf7R.js.map +1 -0
- package/dist/MultiSelectFieldSync.css +259 -0
- package/dist/{NumberField-CjWLnD9X.js → NumberField-CcH25bnO.js} +3 -3
- package/dist/{NumberField-CjWLnD9X.js.map → NumberField-CcH25bnO.js.map} +1 -1
- package/dist/NumberField.js +1 -1
- package/dist/{Page-DEbpjQw0.js → Page-B5HZSjSl.js} +5 -5
- package/dist/{Page-DEbpjQw0.js.map → Page-B5HZSjSl.js.map} +1 -1
- package/dist/Page.js +1 -1
- package/dist/{Pagination-BR8MiRaA.js → Pagination-CkdBaQx6.js} +2 -2
- package/dist/{Pagination-BR8MiRaA.js.map → Pagination-CkdBaQx6.js.map} +1 -1
- package/dist/Pagination.js +1 -1
- package/dist/{Popover-CCXrzBul.js → Popover-D9SmGQTh.js} +6 -5
- package/dist/{Popover-CCXrzBul.js.map → Popover-D9SmGQTh.js.map} +1 -1
- package/dist/Popover.js +1 -1
- package/dist/{ProgressBar-BpKEr6cO.js → ProgressBar-BABkqVmW.js} +2 -2
- package/dist/{ProgressBar-BpKEr6cO.js.map → ProgressBar-BABkqVmW.js.map} +1 -1
- package/dist/ProgressBar.js +1 -1
- package/dist/{Radio-jj0-1dOg.js → Radio-Cds2laHA.js} +2 -2
- package/dist/{Radio-jj0-1dOg.js.map → Radio-Cds2laHA.js.map} +1 -1
- package/dist/Radio.js +2 -2
- package/dist/{RadioGroup-Bxy415eu.js → RadioGroup-COVlUmwy.js} +3 -3
- package/dist/{RadioGroup-Bxy415eu.js.map → RadioGroup-COVlUmwy.js.map} +1 -1
- package/dist/{SelectCard-CjbsPKZ4.js → SelectCard-C-Kjk5eS.js} +3 -3
- package/dist/{SelectCard-CjbsPKZ4.js.map → SelectCard-C-Kjk5eS.js.map} +1 -1
- package/dist/SelectCard.js +1 -1
- package/dist/SelectField.js +1 -1
- package/dist/SelectFieldSync-0CL0RTpg.js +679 -0
- package/dist/SelectFieldSync-0CL0RTpg.js.map +1 -0
- package/dist/{SelectTrigger-D4AjiMKp.js → SelectTrigger-C1U-PlLz.js} +6 -3
- package/dist/SelectTrigger-C1U-PlLz.js.map +1 -0
- package/dist/SelectTrigger.js +1 -1
- package/dist/{SelectTriggerBase-D9GuxPxR.js → SelectTriggerBase-RHD4FTQE.js} +3 -3
- package/dist/{SelectTriggerBase-D9GuxPxR.js.map → SelectTriggerBase-RHD4FTQE.js.map} +1 -1
- package/dist/SelectTriggerBase.css +65 -59
- package/dist/SelectTriggerBase.module-B0NFRlQP.js +36 -0
- package/dist/SelectTriggerBase.module-B0NFRlQP.js.map +1 -0
- package/dist/Table.js +1 -1
- package/dist/{TextField-Qv6OqiKQ.js → TextField-BYGSTwkL.js} +2 -2
- package/dist/{TextField-Qv6OqiKQ.js.map → TextField-BYGSTwkL.js.map} +1 -1
- package/dist/{TextField-DNuEXKyN.js → TextField-BZ3h2mqU.js} +3 -3
- package/dist/{TextField-DNuEXKyN.js.map → TextField-BZ3h2mqU.js.map} +1 -1
- package/dist/TextField.js +1 -1
- package/dist/{Textarea-DdLD4imO.js → Textarea-Cb0Qs2FH.js} +8 -3
- package/dist/Textarea-Cb0Qs2FH.js.map +1 -0
- package/dist/Textarea.js +1 -1
- package/dist/{TimeField-C39hYluo.js → TimeField-DBtJYC7t.js} +4 -4
- package/dist/{TimeField-C39hYluo.js.map → TimeField-DBtJYC7t.js.map} +1 -1
- package/dist/TimeField.js +1 -1
- package/dist/Toast.js +2 -2
- package/dist/{Toaster-DJ4tNy-0.js → Toaster-Cerf91qp.js} +2 -2
- package/dist/{Toaster-DJ4tNy-0.js.map → Toaster-Cerf91qp.js.map} +1 -1
- package/dist/{Toaster-DyDVYq4x.js → Toaster-DDrGllhh.js} +3 -3
- package/dist/{Toaster-DyDVYq4x.js.map → Toaster-DDrGllhh.js.map} +1 -1
- package/dist/{Toolbar-Vw9V1RHr.js → Toolbar-K9UFfyvX.js} +127 -41
- package/dist/Toolbar-K9UFfyvX.js.map +1 -0
- package/dist/Toolbar.js +1 -1
- package/dist/{Tooltip-CBy7srE2.js → Tooltip-CkfkiQPz.js} +2 -2
- package/dist/{Tooltip-CBy7srE2.js.map → Tooltip-CkfkiQPz.js.map} +1 -1
- package/dist/Tooltip.js +1 -1
- package/dist/{YearlessDateInputWithPicker-DMGx3gE2.js → YearlessDateInputWithPicker-BIkxKxPi.js} +4 -4
- package/dist/{YearlessDateInputWithPicker-DMGx3gE2.js.map → YearlessDateInputWithPicker-BIkxKxPi.js.map} +1 -1
- package/dist/beta/components/MultiSelectField/MultiSelectField.d.ts +27 -0
- package/dist/beta/components/MultiSelectField/MultiSelectFieldSync.d.ts +63 -0
- package/dist/beta/components/MultiSelectField/index.d.ts +3 -0
- package/dist/beta/components/MultiSelectField/internal/MultiSelectFieldInput.d.ts +79 -0
- package/dist/beta/components/MultiSelectField/internal/MultiSelectFieldList.d.ts +26 -0
- package/dist/beta/components/MultiSelectField/internal/useComboMultiple.d.ts +44 -0
- package/dist/beta/components/MultiSelectField/stories/MultiSelectField.stories.data.d.ts +19 -0
- package/dist/beta/components/MultiSelectField/types.d.ts +311 -0
- package/dist/beta/components/SelectField/internal/FieldDialog/FieldDialog.d.ts +3 -1
- package/dist/beta/components/SelectField/internal/FieldPopover/FieldPopover.d.ts +1 -0
- package/dist/beta/components/SelectField/internal/SelectFieldInput.d.ts +3 -1
- package/dist/beta/components/SelectField/internal/SelectFieldLabel.d.ts +11 -3
- package/dist/beta/components/SelectField/internal/SelectFieldListItem.d.ts +2 -1
- package/dist/beta/components/SelectField/types.d.ts +19 -1
- package/dist/beta/components/index.d.ts +1 -0
- package/dist/beta.js +7 -5
- package/dist/beta.js.map +1 -1
- package/dist/components/Button/Button.figma.d.ts +1 -0
- package/dist/components/Combobox/ComboboxTypes.d.ts +1 -1
- package/dist/components/Combobox/internal/ComboboxLegacy/ComboboxLegacyTrigger.d.ts +2 -2
- package/dist/components/FieldLabel/FieldLabel.d.ts +5 -1
- package/dist/components/FieldLabel/internal/FieldLabelMoreInfoIcon.d.ts +3 -1
- package/dist/components/Icon/Icons.figma.d.ts +11 -0
- package/dist/components/ListView/ListView.d.ts +2 -9
- package/dist/components/ListView/internal/types.d.ts +12 -0
- package/dist/components/SelectTrigger/SelectTrigger.d.ts +1 -1
- package/dist/components/Switch/Switch.figma.d.ts +1 -0
- package/dist/components/Textarea/Textarea.d.ts +1 -1
- package/dist/index.js +34 -34
- package/dist/internal/components/Label/Label.d.ts +13 -3
- package/dist/internal/hooks/useOnClickOutside/useOnClickOutside.d.ts +8 -7
- package/dist/types/props.d.ts +5 -0
- package/dist/{useInitialFocus-BpmW7pDB.js → useInitialFocus-D_ESGka7.js} +3 -3
- package/dist/{useInitialFocus-BpmW7pDB.js.map → useInitialFocus-D_ESGka7.js.map} +1 -1
- package/dist/useOnClickOutside-Zw5vzxSq.js +71 -0
- package/dist/useOnClickOutside-Zw5vzxSq.js.map +1 -0
- package/dist/useOpenCloseTransitionStates-CiTYrLGi.js +68 -0
- package/dist/useOpenCloseTransitionStates-CiTYrLGi.js.map +1 -0
- package/dist/{usePopoverSupport-CCSCHnit.js → usePopoverSupport-CldZmxFl.js} +2 -2
- package/dist/{usePopoverSupport-CCSCHnit.js.map → usePopoverSupport-CldZmxFl.js.map} +1 -1
- package/dist/{utils-Bkbn9cyk.js → utils-u8cyv323.js} +2 -2
- package/dist/{utils-Bkbn9cyk.js.map → utils-u8cyv323.js.map} +1 -1
- package/package.json +4 -3
- package/dist/Checkbox-DbBeuNdW.js.map +0 -1
- package/dist/Combobox-DGAa9vgU.js.map +0 -1
- package/dist/Dialog-BwabBKoZ.js.map +0 -1
- package/dist/FieldLabel-jqlQ1Ldh.js.map +0 -1
- package/dist/ListView-D8mfK8Lu.js.map +0 -1
- package/dist/SelectFieldSync-D4VdOXoY.js +0 -1134
- package/dist/SelectFieldSync-D4VdOXoY.js.map +0 -1
- package/dist/SelectTrigger-D4AjiMKp.js.map +0 -1
- package/dist/SelectTriggerBase.module-Ce49lamD.js +0 -35
- package/dist/SelectTriggerBase.module-Ce49lamD.js.map +0 -1
- package/dist/Textarea-DdLD4imO.js.map +0 -1
- package/dist/Toolbar-Vw9V1RHr.js.map +0 -1
- package/dist/useOnClickOutside-BDzuUjmY.js +0 -147
- package/dist/useOnClickOutside-BDzuUjmY.js.map +0 -1
- /package/dist/{SelectFieldSync.css → FieldDialog.css} +0 -0
|
@@ -2,7 +2,7 @@ import { jsx, jsxs, Fragment } from 'react/jsx-runtime';
|
|
|
2
2
|
import * as React from 'react';
|
|
3
3
|
import { useState, useEffect, useContext, createContext, useId, useRef, useCallback, forwardRef, useMemo } from 'react';
|
|
4
4
|
import { B as Button } from './Button-92_FKAyV.js';
|
|
5
|
-
import { T as Tooltip } from './Tooltip-
|
|
5
|
+
import { T as Tooltip } from './Tooltip-CkfkiQPz.js';
|
|
6
6
|
import { g as getKeyboardFocusableElements } from './getKeyboardFocusableElements-QqcABz0D.js';
|
|
7
7
|
import { c as cx } from './index-tZvMCc77.js';
|
|
8
8
|
import { u as useIntersectionObserver } from './useIntersectionObserver-BEmMDO3P.js';
|
|
@@ -11,24 +11,25 @@ import { B as ButtonToggle } from './ButtonToggle--sKvhBoA.js';
|
|
|
11
11
|
import { B as ButtonLink } from './ButtonLink-C0zR7Wnb.js';
|
|
12
12
|
import { S as SvgArrowDropDown } from './arrow_drop_down-ChAdBDux.js';
|
|
13
13
|
import { L as Listbox } from './Listbox-C-n4IVVj.js';
|
|
14
|
-
import { P as Popover } from './Popover-
|
|
14
|
+
import { P as Popover } from './Popover-D9SmGQTh.js';
|
|
15
15
|
import { F as Flex } from './Flex-CjPHUTeq.js';
|
|
16
16
|
import { S as SvgMoreHoriz } from './more_horiz-DJgdQiy0.js';
|
|
17
17
|
import { S as SvgMoreVert } from './more_vert-C_lJSyxt.js';
|
|
18
18
|
import { I as Icon } from './Icon-BSuTVNaa.js';
|
|
19
19
|
import { S as SvgClose } from './close-DZj38AEh.js';
|
|
20
|
+
import { t as tabbable } from './DrawerContext-rJvgnn3O.js';
|
|
20
21
|
import { S as SvgKeyboardArrowDown } from './keyboard_arrow_down-C8WQ38p1.js';
|
|
21
22
|
import { S as SvgEvent } from './event-BEJFimi3.js';
|
|
22
|
-
import { D as DateTime } from './Calendar-
|
|
23
|
+
import { D as DateTime } from './Calendar-BeFARXwq.js';
|
|
23
24
|
import { C as Chip } from './Chip-UqdorCE2.js';
|
|
24
|
-
import { L as ListView } from './ListView-
|
|
25
|
+
import { L as ListView } from './ListView-C5OBwbHe.js';
|
|
25
26
|
import { S as SearchField, a as SvgSearch } from './SearchField-CJAo8dE0.js';
|
|
26
|
-
import { u as useDateFieldSingleConversion, a as useDateFieldSingleState, M as MaskedDateInput, b as DateFieldSingleCalendar, D as DateFieldSingle } from './DateFieldSingle-
|
|
27
|
-
import { u as useDateFieldRangeConversion, a as useDateFieldRangeState, M as MaskedDateRangeInput, b as DateFieldRangeCalendar, D as DateFieldRange } from './DateFieldRange-
|
|
28
|
-
import { C as Checkbox } from './Checkbox-
|
|
29
|
-
import { R as Radio } from './Radio-
|
|
30
|
-
import { C as Combobox } from './Combobox-
|
|
31
|
-
import { D as Drawer } from './Drawer-
|
|
27
|
+
import { u as useDateFieldSingleConversion, a as useDateFieldSingleState, M as MaskedDateInput, b as DateFieldSingleCalendar, D as DateFieldSingle } from './DateFieldSingle-CQ6X-bVX.js';
|
|
28
|
+
import { u as useDateFieldRangeConversion, a as useDateFieldRangeState, M as MaskedDateRangeInput, b as DateFieldRangeCalendar, D as DateFieldRange } from './DateFieldRange-DWAgi_T9.js';
|
|
29
|
+
import { C as Checkbox } from './Checkbox-Chck2V5C.js';
|
|
30
|
+
import { R as Radio } from './Radio-Cds2laHA.js';
|
|
31
|
+
import { C as Combobox } from './Combobox-BTTWNSW1.js';
|
|
32
|
+
import { D as Drawer } from './Drawer-CWogbC68.js';
|
|
32
33
|
import { d as BreakpointSm, c as BreakpointMd, b as BreakpointLg, a as BreakpointXl, B as BreakpointXxl } from './primitive-BByug0kD.js';
|
|
33
34
|
import { u as useMergeRefs } from './useMergeRefs-Dfmtq9cI.js';
|
|
34
35
|
import { u as useLayoutPropsUtil } from './useLayoutPropsUtil-BlIWftBb.js';
|
|
@@ -739,8 +740,9 @@ const getActiveFilters = (filters) => {
|
|
|
739
740
|
case "multiSelect":
|
|
740
741
|
return filter.selectedItems && filter.selectedItems.length > 0;
|
|
741
742
|
case "date":
|
|
742
|
-
case "dateRange":
|
|
743
743
|
return filter.value !== null && filter.value !== void 0;
|
|
744
|
+
case "dateRange":
|
|
745
|
+
return filter.value !== null && filter.value !== void 0 && filter.value.startDate !== null && filter.value.endDate !== null;
|
|
744
746
|
default:
|
|
745
747
|
return false;
|
|
746
748
|
}
|
|
@@ -912,11 +914,19 @@ const cloneFiltersWithItemRefs = (filters) => {
|
|
|
912
914
|
...filter,
|
|
913
915
|
value: filter.value
|
|
914
916
|
};
|
|
915
|
-
case "custom":
|
|
916
|
-
|
|
917
|
-
|
|
918
|
-
|
|
919
|
-
}
|
|
917
|
+
case "custom": {
|
|
918
|
+
const { value } = filter;
|
|
919
|
+
if (value === void 0) {
|
|
920
|
+
return { ...filter, value: void 0 };
|
|
921
|
+
}
|
|
922
|
+
if (Array.isArray(value)) {
|
|
923
|
+
return { ...filter, value: [...value] };
|
|
924
|
+
}
|
|
925
|
+
if (typeof value === "object" && value !== null) {
|
|
926
|
+
return { ...filter, value: { ...value } };
|
|
927
|
+
}
|
|
928
|
+
return { ...filter, value };
|
|
929
|
+
}
|
|
920
930
|
default:
|
|
921
931
|
return { ...filter };
|
|
922
932
|
}
|
|
@@ -954,6 +964,7 @@ const FilterSelect = ({
|
|
|
954
964
|
onDraftChange
|
|
955
965
|
}) => {
|
|
956
966
|
const isMultiSelect = filter.type === "multiSelect";
|
|
967
|
+
const listRef = useRef(null);
|
|
957
968
|
const handleSearch = useCallback(
|
|
958
969
|
(e) => {
|
|
959
970
|
filter.onSearch?.(e.target.value);
|
|
@@ -963,8 +974,20 @@ const FilterSelect = ({
|
|
|
963
974
|
const handleSearchClear = useCallback(() => {
|
|
964
975
|
filter.onSearchClear?.();
|
|
965
976
|
}, [filter]);
|
|
977
|
+
const handleSearchKeyDown = useCallback(
|
|
978
|
+
(e) => {
|
|
979
|
+
if (e.key === "ArrowDown" && listRef.current) {
|
|
980
|
+
e.preventDefault();
|
|
981
|
+
const focusableElements = tabbable(listRef.current);
|
|
982
|
+
if (focusableElements.length > 0) {
|
|
983
|
+
focusableElements[0].focus();
|
|
984
|
+
}
|
|
985
|
+
}
|
|
986
|
+
},
|
|
987
|
+
[]
|
|
988
|
+
);
|
|
966
989
|
const singleSelectList = useMemo(
|
|
967
|
-
() => /* @__PURE__ */ jsx(
|
|
990
|
+
() => /* @__PURE__ */ jsx("div", { ref: listRef, children: /* @__PURE__ */ jsx(
|
|
968
991
|
Listbox,
|
|
969
992
|
{
|
|
970
993
|
items: filter.items,
|
|
@@ -974,14 +997,22 @@ const FilterSelect = ({
|
|
|
974
997
|
},
|
|
975
998
|
disableAutoSelectOnFocus: true,
|
|
976
999
|
style: { paddingInline: "1rem", paddingBlockStart: "1rem" },
|
|
977
|
-
children: ({ items }) => items.map((item) => /* @__PURE__ */ jsx(
|
|
1000
|
+
children: ({ items }) => items.map((item) => /* @__PURE__ */ jsx(
|
|
1001
|
+
Listbox.Option,
|
|
1002
|
+
{
|
|
1003
|
+
item,
|
|
1004
|
+
disabled: item.disabled,
|
|
1005
|
+
children: item.label
|
|
1006
|
+
},
|
|
1007
|
+
item.id
|
|
1008
|
+
))
|
|
978
1009
|
},
|
|
979
1010
|
filter.id
|
|
980
|
-
),
|
|
1011
|
+
) }),
|
|
981
1012
|
[filter.id, filter.items, draftValue, onDraftChange]
|
|
982
1013
|
);
|
|
983
1014
|
const multiSelectList = useMemo(
|
|
984
|
-
() => /* @__PURE__ */ jsx(
|
|
1015
|
+
() => /* @__PURE__ */ jsx("div", { ref: listRef, children: /* @__PURE__ */ jsx(
|
|
985
1016
|
ListView,
|
|
986
1017
|
{
|
|
987
1018
|
items: filter.items,
|
|
@@ -994,7 +1025,7 @@ const FilterSelect = ({
|
|
|
994
1025
|
children: ({ items }) => items.map((item) => /* @__PURE__ */ jsx(ListView.Option, { item, children: item.label }, item.id))
|
|
995
1026
|
},
|
|
996
1027
|
filter.id
|
|
997
|
-
),
|
|
1028
|
+
) }),
|
|
998
1029
|
[filter.id, filter.items, draftValue, onDraftChange]
|
|
999
1030
|
);
|
|
1000
1031
|
return /* @__PURE__ */ jsxs(Fragment, { children: [
|
|
@@ -1005,6 +1036,7 @@ const FilterSelect = ({
|
|
|
1005
1036
|
className: styles$2["filter-select-search"],
|
|
1006
1037
|
onChange: handleSearch,
|
|
1007
1038
|
onClear: handleSearchClear,
|
|
1039
|
+
onKeyDown: handleSearchKeyDown,
|
|
1008
1040
|
"data-anv": "filter-select-search"
|
|
1009
1041
|
}
|
|
1010
1042
|
),
|
|
@@ -1076,7 +1108,7 @@ const FilterDateRange = ({
|
|
|
1076
1108
|
onChange: (change) => {
|
|
1077
1109
|
const hasCompleteRange = change.startDate && change.endDate;
|
|
1078
1110
|
const isClearingRange = change.isInputEmpty;
|
|
1079
|
-
if (change.isInputValid &&
|
|
1111
|
+
if (change.isInputValid && hasCompleteRange || isClearingRange) {
|
|
1080
1112
|
onChange({ ...change, isDateRangeValid: true });
|
|
1081
1113
|
}
|
|
1082
1114
|
}
|
|
@@ -1116,6 +1148,8 @@ const FilterButton = ({
|
|
|
1116
1148
|
filter.type === "multiSelect" ? [] : void 0
|
|
1117
1149
|
);
|
|
1118
1150
|
const draftValueRef = useRef(draftValue);
|
|
1151
|
+
const triggerRef = useRef(null);
|
|
1152
|
+
const contentRef = useRef(null);
|
|
1119
1153
|
useEffect(() => {
|
|
1120
1154
|
draftValueRef.current = draftValue;
|
|
1121
1155
|
}, [draftValue]);
|
|
@@ -1155,6 +1189,9 @@ const FilterButton = ({
|
|
|
1155
1189
|
if (!controlledFiltering && filter.type !== "multiSelect") {
|
|
1156
1190
|
updateFilter(filter.id, value, true);
|
|
1157
1191
|
setIsOpen(false);
|
|
1192
|
+
requestAnimationFrame(() => {
|
|
1193
|
+
triggerRef.current?.focus();
|
|
1194
|
+
});
|
|
1158
1195
|
}
|
|
1159
1196
|
}
|
|
1160
1197
|
},
|
|
@@ -1166,15 +1203,24 @@ const FilterButton = ({
|
|
|
1166
1203
|
updateFilter(filter.id, draftValue, true);
|
|
1167
1204
|
}
|
|
1168
1205
|
setIsOpen(false);
|
|
1206
|
+
requestAnimationFrame(() => {
|
|
1207
|
+
triggerRef.current?.focus();
|
|
1208
|
+
});
|
|
1169
1209
|
}, [draftValue, getCurrentFilterValue, filter.id, updateFilter]);
|
|
1170
1210
|
const handleCancel = useCallback(() => {
|
|
1171
1211
|
if (!controlledFiltering) {
|
|
1172
1212
|
setIsOpen(false);
|
|
1213
|
+
requestAnimationFrame(() => {
|
|
1214
|
+
triggerRef.current?.focus();
|
|
1215
|
+
});
|
|
1173
1216
|
return;
|
|
1174
1217
|
}
|
|
1175
1218
|
const originalValue = getCurrentFilterValue();
|
|
1176
1219
|
setDraftValue(originalValue);
|
|
1177
1220
|
setIsOpen(false);
|
|
1221
|
+
requestAnimationFrame(() => {
|
|
1222
|
+
triggerRef.current?.focus();
|
|
1223
|
+
});
|
|
1178
1224
|
}, [controlledFiltering, getCurrentFilterValue]);
|
|
1179
1225
|
const getButtonLabel = useMemo(() => {
|
|
1180
1226
|
switch (filter.type) {
|
|
@@ -1211,7 +1257,7 @@ const FilterButton = ({
|
|
|
1211
1257
|
}
|
|
1212
1258
|
return filter.label;
|
|
1213
1259
|
case "dateRange":
|
|
1214
|
-
if (filter.value) {
|
|
1260
|
+
if (filter.value?.startDate && filter.value?.endDate) {
|
|
1215
1261
|
const start = DateTime.fromISO(filter.value.startDate, {
|
|
1216
1262
|
zone: "local"
|
|
1217
1263
|
});
|
|
@@ -1306,9 +1352,37 @@ const FilterButton = ({
|
|
|
1306
1352
|
if (e.key === "Escape") {
|
|
1307
1353
|
handleOutsidePress();
|
|
1308
1354
|
}
|
|
1355
|
+
if (e.key === "Tab" && contentRef.current) {
|
|
1356
|
+
const focusableElements = tabbable(contentRef.current);
|
|
1357
|
+
if (focusableElements.length === 0) return;
|
|
1358
|
+
const firstElement = focusableElements[0];
|
|
1359
|
+
const lastElement = focusableElements[focusableElements.length - 1];
|
|
1360
|
+
const activeElement = document.activeElement;
|
|
1361
|
+
if (e.shiftKey && activeElement === firstElement) {
|
|
1362
|
+
e.preventDefault();
|
|
1363
|
+
lastElement.focus();
|
|
1364
|
+
} else if (!e.shiftKey && activeElement === lastElement) {
|
|
1365
|
+
e.preventDefault();
|
|
1366
|
+
firstElement.focus();
|
|
1367
|
+
}
|
|
1368
|
+
}
|
|
1369
|
+
};
|
|
1370
|
+
const handleTriggerKeyDown = (e) => {
|
|
1371
|
+
if (e.key === "ArrowDown") {
|
|
1372
|
+
if (isOpen && contentRef.current) {
|
|
1373
|
+
e.preventDefault();
|
|
1374
|
+
requestAnimationFrame(() => {
|
|
1375
|
+
if (!contentRef.current) return;
|
|
1376
|
+
const focusableElements = tabbable(contentRef.current);
|
|
1377
|
+
if (focusableElements.length > 0) {
|
|
1378
|
+
focusableElements[0].focus();
|
|
1379
|
+
}
|
|
1380
|
+
});
|
|
1381
|
+
}
|
|
1382
|
+
}
|
|
1309
1383
|
};
|
|
1310
1384
|
const triggerClasses = cx(styles$2["filter-button-trigger"], {
|
|
1311
|
-
[styles$2["filter-button-trigger--selected"]]: filter.type === "custom" && filter.value || filter.type === "singleSelect" && filter.selectedItem || filter.type === "multiSelect" && filter.selectedItems && filter.selectedItems.length > 0 || filter.type === "date" && filter.value || filter.type === "dateRange" && filter.value
|
|
1385
|
+
[styles$2["filter-button-trigger--selected"]]: filter.type === "custom" && filter.value || filter.type === "singleSelect" && filter.selectedItem || filter.type === "multiSelect" && filter.selectedItems && filter.selectedItems.length > 0 || filter.type === "date" && filter.value || filter.type === "dateRange" && filter.value?.startDate && filter.value?.endDate
|
|
1312
1386
|
});
|
|
1313
1387
|
const contentClasses = cx(styles$2["filter-button-content"], className);
|
|
1314
1388
|
const iconOptions = filter.type === "date" || filter.type === "dateRange" ? { before: SvgEvent } : { after: SvgKeyboardArrowDown };
|
|
@@ -1323,7 +1397,11 @@ const FilterButton = ({
|
|
|
1323
1397
|
/* @__PURE__ */ jsx(
|
|
1324
1398
|
Popover.Button,
|
|
1325
1399
|
{
|
|
1326
|
-
|
|
1400
|
+
ref: triggerRef,
|
|
1401
|
+
onKeyDown: (e) => {
|
|
1402
|
+
handleTriggerKeyDown(e);
|
|
1403
|
+
handleKeyDown(e);
|
|
1404
|
+
},
|
|
1327
1405
|
appearance: "ghost",
|
|
1328
1406
|
size: "small",
|
|
1329
1407
|
icon: iconOptions,
|
|
@@ -1336,21 +1414,29 @@ const FilterButton = ({
|
|
|
1336
1414
|
children: getButtonLabel
|
|
1337
1415
|
}
|
|
1338
1416
|
),
|
|
1339
|
-
/* @__PURE__ */ jsxs(
|
|
1340
|
-
|
|
1341
|
-
|
|
1342
|
-
|
|
1343
|
-
|
|
1344
|
-
|
|
1345
|
-
|
|
1346
|
-
|
|
1347
|
-
|
|
1348
|
-
|
|
1349
|
-
|
|
1350
|
-
|
|
1351
|
-
|
|
1352
|
-
|
|
1353
|
-
|
|
1417
|
+
/* @__PURE__ */ jsxs(
|
|
1418
|
+
Popover.Content,
|
|
1419
|
+
{
|
|
1420
|
+
ref: contentRef,
|
|
1421
|
+
onKeyDown: handleKeyDown,
|
|
1422
|
+
className: contentClasses,
|
|
1423
|
+
children: [
|
|
1424
|
+
getContent,
|
|
1425
|
+
controlledFiltering && /* @__PURE__ */ jsxs(
|
|
1426
|
+
Flex,
|
|
1427
|
+
{
|
|
1428
|
+
gap: 2,
|
|
1429
|
+
justifyContent: "flex-end",
|
|
1430
|
+
className: styles$2["filter-button-buttons"],
|
|
1431
|
+
children: [
|
|
1432
|
+
/* @__PURE__ */ jsx(Popover.Close, { size: "small", onClick: handleCancel, children: "Cancel" }),
|
|
1433
|
+
/* @__PURE__ */ jsx(Button, { appearance: "primary", size: "small", onClick: handleSubmit, children: "Apply" })
|
|
1434
|
+
]
|
|
1435
|
+
}
|
|
1436
|
+
)
|
|
1437
|
+
]
|
|
1438
|
+
}
|
|
1439
|
+
)
|
|
1354
1440
|
]
|
|
1355
1441
|
}
|
|
1356
1442
|
) });
|
|
@@ -2190,4 +2276,4 @@ const Toolbar = Object.assign(ToolbarElement, {
|
|
|
2190
2276
|
});
|
|
2191
2277
|
|
|
2192
2278
|
export { Toolbar as T, ToolbarButton as a, ToolbarButtonToggle as b, ToolbarButtonLink as c, ToolbarSelect as d, ToolbarControlGroup as e, ToolbarSearchField as f, ToolbarElement as g };
|
|
2193
|
-
//# sourceMappingURL=Toolbar-
|
|
2279
|
+
//# sourceMappingURL=Toolbar-K9UFfyvX.js.map
|