@servicetitan/anvil2 2.2.0 → 2.3.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 +18 -0
- package/dist/{Alert-DXoEusod.js → Alert-D9mBPs6z.js} +2 -2
- package/dist/{Alert-DXoEusod.js.map → Alert-D9mBPs6z.js.map} +1 -1
- package/dist/Alert.js +1 -1
- package/dist/{Announcement-SAypScAu.js → Announcement-B34cD6BC.js} +2 -2
- package/dist/{Announcement-SAypScAu.js.map → Announcement-B34cD6BC.js.map} +1 -1
- package/dist/Announcement.js +1 -1
- package/dist/{Button-l7pTJdPc.js → Button-DrNDkO2f.js} +2 -2
- package/dist/{Button-l7pTJdPc.js.map → Button-DrNDkO2f.js.map} +1 -1
- package/dist/Button.css +50 -50
- package/dist/Button.js +1 -1
- package/dist/Button.module-DwCq9XU0.js +26 -0
- package/dist/Button.module-DwCq9XU0.js.map +1 -0
- package/dist/{ButtonCompound-CX2kHgWe.js → ButtonCompound-D9VTKcL4.js} +2 -2
- package/dist/{ButtonCompound-CX2kHgWe.js.map → ButtonCompound-D9VTKcL4.js.map} +1 -1
- package/dist/ButtonCompound.js +1 -1
- package/dist/{ButtonLink-CRlyK750.js → ButtonLink-DDtrmbVM.js} +3 -2
- package/dist/ButtonLink-DDtrmbVM.js.map +1 -0
- package/dist/ButtonLink.js +1 -1
- package/dist/{ButtonToggle-BOVP_jEN.js → ButtonToggle-DrFewgOG.js} +3 -3
- package/dist/{ButtonToggle-BOVP_jEN.js.map → ButtonToggle-DrFewgOG.js.map} +1 -1
- package/dist/ButtonToggle.js +1 -1
- package/dist/{Calendar-oNlBgZKB.js → Calendar-CkgpKD7Q.js} +2 -2
- package/dist/{Calendar-oNlBgZKB.js.map → Calendar-CkgpKD7Q.js.map} +1 -1
- package/dist/{Calendar-D0CczOpQ.js → Calendar-CtkL4zYU.js} +3 -3
- package/dist/{Calendar-D0CczOpQ.js.map → Calendar-CtkL4zYU.js.map} +1 -1
- package/dist/Calendar.js +2 -2
- package/dist/{Checkbox-DuzAqrE7.js → Checkbox-CFgjreAl.js} +2 -2
- package/dist/{Checkbox-DuzAqrE7.js.map → Checkbox-CFgjreAl.js.map} +1 -1
- package/dist/{Checkbox-DIY-6agd.js → Checkbox-CxjZpzPp.js} +3 -3
- package/dist/{Checkbox-DIY-6agd.js.map → Checkbox-CxjZpzPp.js.map} +1 -1
- package/dist/Checkbox.js +1 -1
- package/dist/{Combobox-CSGn20KQ.js → Combobox-B6saoDAP.js} +4 -4
- package/dist/{Combobox-CSGn20KQ.js.map → Combobox-B6saoDAP.js.map} +1 -1
- package/dist/Combobox.js +1 -1
- package/dist/{DataTable-D30sE1Xt.js → DataTable-NzX8SCYT.js} +42 -12
- package/dist/{DataTable-D30sE1Xt.js.map → DataTable-NzX8SCYT.js.map} +1 -1
- package/dist/DataTable.css +9 -5
- package/dist/{DateFieldRange-DBOiqaML.js → DateFieldRange-DgGgNSzN.js} +4 -4
- package/dist/{DateFieldRange-DBOiqaML.js.map → DateFieldRange-DgGgNSzN.js.map} +1 -1
- package/dist/DateFieldRange.js +1 -1
- package/dist/{DateFieldSingle-C4hU55MP.js → DateFieldSingle-BR4nJNVl.js} +4 -4
- package/dist/{DateFieldSingle-C4hU55MP.js.map → DateFieldSingle-BR4nJNVl.js.map} +1 -1
- package/dist/DateFieldSingle.js +1 -1
- package/dist/{DateFieldYearless-BXkUiHIR.js → DateFieldYearless-mqvM2uVP.js} +4 -4
- package/dist/{DateFieldYearless-BXkUiHIR.js.map → DateFieldYearless-mqvM2uVP.js.map} +1 -1
- package/dist/DateFieldYearless.js +1 -1
- package/dist/{DateFieldYearlessRange-CGffFnVT.js → DateFieldYearlessRange-CLuyUoGF.js} +4 -4
- package/dist/{DateFieldYearlessRange-CGffFnVT.js.map → DateFieldYearlessRange-CLuyUoGF.js.map} +1 -1
- package/dist/DateFieldYearlessRange.js +1 -1
- package/dist/{DaysOfTheWeek-DJEDopC9.js → DaysOfTheWeek-D-WPj18i.js} +3 -3
- package/dist/{DaysOfTheWeek-DJEDopC9.js.map → DaysOfTheWeek-D-WPj18i.js.map} +1 -1
- package/dist/DaysOfTheWeek.js +1 -1
- package/dist/{Dialog-BbsZMnCA.js → Dialog-yA2jYtgv.js} +4 -4
- package/dist/{Dialog-BbsZMnCA.js.map → Dialog-yA2jYtgv.js.map} +1 -1
- package/dist/Dialog.js +1 -1
- package/dist/{DialogCancelButton-GuN5lgR-.js → DialogCancelButton-BfI9K4a4.js} +2 -2
- package/dist/{DialogCancelButton-GuN5lgR-.js.map → DialogCancelButton-BfI9K4a4.js.map} +1 -1
- package/dist/Dnd.js +1 -1
- package/dist/DndSort.js +2 -2
- package/dist/{Drawer-Dhq76ot3.js → Drawer-Dt4dqAxQ.js} +4 -4
- package/dist/{Drawer-Dhq76ot3.js.map → Drawer-Dt4dqAxQ.js.map} +1 -1
- package/dist/Drawer.js +1 -1
- package/dist/DrillDown.js +1 -1
- package/dist/{EditCard-DAiE-Hsc.js → EditCard-CH-JE4ba.js} +2 -2
- package/dist/{EditCard-DAiE-Hsc.js.map → EditCard-CH-JE4ba.js.map} +1 -1
- package/dist/EditCard.js +1 -1
- package/dist/{FieldDialog-CAuhkCZY.js → FieldDialog-BghhsL2B.js} +121 -36
- package/dist/FieldDialog-BghhsL2B.js.map +1 -0
- package/dist/FieldMessage-OeP_xSUE.js +132 -0
- package/dist/FieldMessage-OeP_xSUE.js.map +1 -0
- package/dist/FieldMessage.js +1 -1
- package/dist/{Helper-PNGm_U2X.js → Helper-B2UrgJvr.js} +2 -2
- package/dist/{Helper-PNGm_U2X.js.map → Helper-B2UrgJvr.js.map} +1 -1
- package/dist/{InputMask-Ds0W2fKy.js → InputMask-B7ZnJoR5.js} +2 -2
- package/dist/{InputMask-Ds0W2fKy.js.map → InputMask-B7ZnJoR5.js.map} +1 -1
- package/dist/InputMask.js +1 -1
- package/dist/{ListView-MMmJDM--.js → ListView-CN8zu-cq.js} +2 -2
- package/dist/{ListView-MMmJDM--.js.map → ListView-CN8zu-cq.js.map} +1 -1
- package/dist/ListView.js +1 -1
- package/dist/{Menu-3LIfRdTk.js → Menu-CpRnsr0v.js} +2 -2
- package/dist/{Menu-3LIfRdTk.js.map → Menu-CpRnsr0v.js.map} +1 -1
- package/dist/Menu.js +1 -1
- package/dist/MultiSelectField.js +1 -1
- package/dist/{MultiSelectFieldSync-Bey99LzJ.js → MultiSelectFieldSync-ChDuxvhE.js} +876 -255
- package/dist/MultiSelectFieldSync-ChDuxvhE.js.map +1 -0
- package/dist/{NumberField-CDkEUfXW.js → NumberField-ecubQsaf.js} +4 -4
- package/dist/{NumberField-CDkEUfXW.js.map → NumberField-ecubQsaf.js.map} +1 -1
- package/dist/NumberField.js +1 -1
- package/dist/{Page-BVxybI-j.js → Page-CkcnGPPK.js} +8 -8
- package/dist/{Page-BVxybI-j.js.map → Page-CkcnGPPK.js.map} +1 -1
- package/dist/Page.js +1 -1
- package/dist/{Pagination-DIatYUXX.js → Pagination-DO9NORlw.js} +4 -4
- package/dist/{Pagination-DIatYUXX.js.map → Pagination-DO9NORlw.js.map} +1 -1
- package/dist/Pagination.js +1 -1
- package/dist/{Popover-4C5IVk8T.js → Popover-D_BmwIOW.js} +3 -3
- package/dist/{Popover-4C5IVk8T.js.map → Popover-D_BmwIOW.js.map} +1 -1
- package/dist/Popover.js +1 -1
- package/dist/{ProgressBar-BGwp-qnf.js → ProgressBar-CBhVZIzK.js} +2 -2
- package/dist/{ProgressBar-BGwp-qnf.js.map → ProgressBar-CBhVZIzK.js.map} +1 -1
- package/dist/ProgressBar.js +1 -1
- package/dist/{Radio-D7hNws2b.js → Radio-BMFwnzyz.js} +2 -2
- package/dist/{Radio-D7hNws2b.js.map → Radio-BMFwnzyz.js.map} +1 -1
- package/dist/{Radio-BRcpSu-d.js → Radio-DtYoRq3m.js} +3 -3
- package/dist/{Radio-BRcpSu-d.js.map → Radio-DtYoRq3m.js.map} +1 -1
- package/dist/Radio.js +1 -1
- package/dist/{SearchField-CoeaOip5.js → SearchField-CtdtcrVV.js} +12 -4
- package/dist/SearchField-CtdtcrVV.js.map +1 -0
- package/dist/SearchField.js +1 -1
- package/dist/{SelectCard-Bag44PmE.js → SelectCard-yWBNnm7t.js} +32 -8
- package/dist/SelectCard-yWBNnm7t.js.map +1 -0
- package/dist/SelectCard.js +1 -1
- package/dist/SelectField.js +1 -1
- package/dist/SelectFieldSync-DfP3eETZ.js +1248 -0
- package/dist/SelectFieldSync-DfP3eETZ.js.map +1 -0
- package/dist/{SelectTrigger-DgsvUfyl.js → SelectTrigger-Cs5CGc4D.js} +2 -2
- package/dist/{SelectTrigger-DgsvUfyl.js.map → SelectTrigger-Cs5CGc4D.js.map} +1 -1
- package/dist/SelectTrigger.js +1 -1
- package/dist/{SelectTriggerBase-OxfNqdIq.js → SelectTriggerBase-Cs827tDp.js} +3 -3
- package/dist/{SelectTriggerBase-OxfNqdIq.js.map → SelectTriggerBase-Cs827tDp.js.map} +1 -1
- package/dist/{Stepper-D8lkCP8Y.js → Stepper-CzVKDg-N.js} +2 -2
- package/dist/{Stepper-D8lkCP8Y.js.map → Stepper-CzVKDg-N.js.map} +1 -1
- package/dist/Stepper.js +1 -1
- package/dist/{Switch-D0zwZCg4.js → Switch-CEmjmSiL.js} +2 -2
- package/dist/{Switch-D0zwZCg4.js.map → Switch-CEmjmSiL.js.map} +1 -1
- package/dist/Switch.js +1 -1
- package/dist/Table.js +1 -1
- package/dist/{TextField-Dfzn2HeL.js → TextField-D9VWORek.js} +2 -2
- package/dist/{TextField-Dfzn2HeL.js.map → TextField-D9VWORek.js.map} +1 -1
- package/dist/{TextField-BycenT6H.js → TextField-atI4M79b.js} +3 -3
- package/dist/{TextField-BycenT6H.js.map → TextField-atI4M79b.js.map} +1 -1
- package/dist/TextField.css +29 -25
- package/dist/TextField.js +1 -1
- package/dist/TextField.module-BP-hDP5m.js +22 -0
- package/dist/TextField.module-BP-hDP5m.js.map +1 -0
- package/dist/{Textarea-BwbwJP6z.js → Textarea-D-kPIsIN.js} +2 -2
- package/dist/{Textarea-BwbwJP6z.js.map → Textarea-D-kPIsIN.js.map} +1 -1
- package/dist/Textarea.js +1 -1
- package/dist/{TimeField-B0WSzSfJ.js → TimeField-CbdxhawY.js} +3 -3
- package/dist/{TimeField-B0WSzSfJ.js.map → TimeField-CbdxhawY.js.map} +1 -1
- package/dist/TimeField.js +1 -1
- package/dist/Toast.js +2 -2
- package/dist/{Toaster-9Q_yaKGu.js → Toaster-B652KIzq.js} +4 -4
- package/dist/{Toaster-9Q_yaKGu.js.map → Toaster-B652KIzq.js.map} +1 -1
- package/dist/{Toaster-DHo8dnWH.js → Toaster-Bisc1mlh.js} +2 -2
- package/dist/{Toaster-DHo8dnWH.js.map → Toaster-Bisc1mlh.js.map} +1 -1
- package/dist/{Toolbar-CVOenuCF.js → Toolbar-4VdevLJd.js} +78 -64
- package/dist/Toolbar-4VdevLJd.js.map +1 -0
- package/dist/Toolbar.css +37 -55
- package/dist/Toolbar.js +1 -1
- package/dist/{YearlessDateInputWithPicker-ztozRk-X.js → YearlessDateInputWithPicker-BADNBDmy.js} +3 -3
- package/dist/{YearlessDateInputWithPicker-ztozRk-X.js.map → YearlessDateInputWithPicker-BADNBDmy.js.map} +1 -1
- package/dist/beta/components/MultiSelectField/MultiSelectField.d.ts +1 -10
- package/dist/beta/components/MultiSelectField/internal/MultiSelectFieldComboboxMode.d.ts +5 -0
- package/dist/beta/components/MultiSelectField/internal/MultiSelectFieldInput.d.ts +0 -2
- package/dist/beta/components/MultiSelectField/internal/MultiSelectFieldList.d.ts +3 -7
- package/dist/beta/components/MultiSelectField/internal/MultiSelectFieldSelectMode.d.ts +6 -0
- package/dist/beta/components/MultiSelectField/internal/MultiSelectFieldTrigger.d.ts +30 -0
- package/dist/beta/components/MultiSelectField/internal/types.d.ts +67 -0
- package/dist/beta/components/MultiSelectField/internal/useChipLayout.d.ts +19 -0
- package/dist/beta/components/MultiSelectField/internal/useComboMultiple.d.ts +1 -2
- package/dist/beta/components/MultiSelectField/internal/useSelectModeMultiple.d.ts +40 -0
- package/dist/beta/components/MultiSelectField/internal/useToggleSelection.d.ts +21 -0
- package/dist/beta/components/MultiSelectField/types.d.ts +7 -0
- package/dist/beta/components/SelectField/internal/FieldDialog/FieldDialog.d.ts +1 -1
- package/dist/beta/components/SelectField/internal/FieldListBase.d.ts +3 -4
- package/dist/beta/components/SelectField/internal/SelectFieldComboboxMode.d.ts +6 -0
- package/dist/beta/components/SelectField/internal/SelectFieldInput.d.ts +0 -2
- package/dist/beta/components/SelectField/internal/SelectFieldLabel.d.ts +4 -3
- package/dist/beta/components/SelectField/internal/SelectFieldList.d.ts +3 -7
- package/dist/beta/components/SelectField/internal/SelectFieldListItem.d.ts +2 -4
- package/dist/beta/components/SelectField/internal/SelectFieldSelectMode.d.ts +6 -0
- package/dist/beta/components/SelectField/internal/SelectFieldTrigger.d.ts +27 -0
- package/dist/beta/components/SelectField/internal/buildDownshiftItems.d.ts +22 -0
- package/dist/beta/components/SelectField/internal/types.d.ts +57 -0
- package/dist/beta/components/SelectField/internal/useCombo.d.ts +1 -5
- package/dist/beta/components/SelectField/internal/useProcessedOptions.d.ts +19 -0
- package/dist/beta/components/SelectField/internal/useSelectMode.d.ts +34 -0
- package/dist/beta/components/SelectField/types.d.ts +7 -0
- package/dist/beta/components/Table/DataTable/DataTable.d.ts +9 -2
- package/dist/beta/components/Table/DataTable/types.d.ts +20 -0
- package/dist/beta/components/Toolbar/Toolbar.d.ts +17 -7
- package/dist/beta/components/Toolbar/ToolbarButton.d.ts +0 -1
- package/dist/beta/components/Toolbar/ToolbarButtonLink.d.ts +0 -1
- package/dist/beta/components/Toolbar/ToolbarButtonToggle.d.ts +0 -1
- package/dist/beta/components/Toolbar/ToolbarSearchField.d.ts +2 -3
- package/dist/beta/components/Toolbar/ToolbarSelect.d.ts +0 -1
- package/dist/beta/components/Toolbar/internal/{ToolbarOverflowContext.d.ts → ToolbarContext.d.ts} +14 -5
- package/dist/beta/components/Toolbar/internal/utils/test.d.ts +5 -3
- package/dist/beta/components/Toolbar/types.d.ts +5 -1
- package/dist/beta.js +7 -7
- package/dist/components/ButtonLink/ButtonLink.d.ts +3 -3
- package/dist/components/SearchField/SearchField.d.ts +8 -26
- package/dist/components/SearchField/internal/SearchField.d.ts +73 -0
- package/dist/components/Toolbar/Toolbar.d.ts +11 -5
- package/dist/components/Toolbar/ToolbarButton.d.ts +0 -1
- package/dist/components/Toolbar/ToolbarButtonLink.d.ts +0 -1
- package/dist/components/Toolbar/ToolbarButtonToggle.d.ts +0 -1
- package/dist/components/Toolbar/ToolbarSelect.d.ts +0 -1
- package/dist/components/Toolbar/internal/{ToolbarOverflowContext.d.ts → ToolbarContext.d.ts} +14 -5
- package/dist/components/Toolbar/internal/utils/test.d.ts +5 -3
- package/dist/components/Toolbar/types.d.ts +5 -1
- package/dist/{index-DFvIVS57.js → index-ClUtwV8V.js} +2 -2
- package/dist/{index-DFvIVS57.js.map → index-ClUtwV8V.js.map} +1 -1
- package/dist/{index.esm-K9kxJhLx.js → index.esm-BZV0wNKZ.js} +1 -2
- package/dist/{index.esm-K9kxJhLx.js.map → index.esm-BZV0wNKZ.js.map} +1 -1
- package/dist/index.js +80 -69
- package/dist/index.js.map +1 -1
- package/dist/index2.css +17 -23
- package/dist/{match-sorter.esm-B3vwg1-X.js → match-sorter.esm-adzV1NDp.js} +2 -2
- package/dist/{match-sorter.esm-B3vwg1-X.js.map → match-sorter.esm-adzV1NDp.js.map} +1 -1
- package/dist/{useDrilldown-jbU4Cs5l.js → useDrilldown-C8TRwNE9.js} +3 -3
- package/dist/{useDrilldown-jbU4Cs5l.js.map → useDrilldown-C8TRwNE9.js.map} +1 -1
- package/dist/{useInitialFocus-BRRbylek.js → useInitialFocus-CdoVwSbr.js} +2 -2
- package/dist/{useInitialFocus-BRRbylek.js.map → useInitialFocus-CdoVwSbr.js.map} +1 -1
- package/package.json +3 -2
- package/dist/Button.module-Ck7VrMqw.js +0 -26
- package/dist/Button.module-Ck7VrMqw.js.map +0 -1
- package/dist/ButtonLink-CRlyK750.js.map +0 -1
- package/dist/FieldDialog-CAuhkCZY.js.map +0 -1
- package/dist/FieldMessage-DS0COrjp.js +0 -132
- package/dist/FieldMessage-DS0COrjp.js.map +0 -1
- package/dist/MultiSelectFieldSync-Bey99LzJ.js.map +0 -1
- package/dist/SearchField-CoeaOip5.js.map +0 -1
- package/dist/SelectCard-Bag44PmE.js.map +0 -1
- package/dist/SelectFieldSync-CigqXq3T.js +0 -763
- package/dist/SelectFieldSync-CigqXq3T.js.map +0 -1
- package/dist/TextField.module-pD1felN8.js +0 -20
- package/dist/TextField.module-pD1felN8.js.map +0 -1
- package/dist/Toolbar-CVOenuCF.js.map +0 -1
|
@@ -0,0 +1,5 @@
|
|
|
1
|
+
import { MultiSelectFieldComboboxInternalProps } from './types';
|
|
2
|
+
/**
|
|
3
|
+
* Combobox mode: searchable multi-select using useCombobox.
|
|
4
|
+
*/
|
|
5
|
+
export declare const MultiSelectFieldComboboxMode: ({ id, helperUid, selectedOptions, onSelectedOptionsChange, displayAs, isDisabledOrReadOnly, disabled, readOnly, required, placeholder, size, error, hasHelperText, disableClearButton, prefix, suffix, label, labelNode, hideLabel, hint, errorMessages, warning, description, className, style, layoutStyles, pinned, groupToString, groupSorter, virtualize, options, loading, loadingMore, hasMore, loadOptions, loadMore, initialLoad, initialLoadPerformed, setInitialLoadPerformed, inputWrapperRef, debounceMs, selectAll, selectFiltered, singleRow, maxChips, onSearchChange, handleRemoveOption, handleClear, }: MultiSelectFieldComboboxInternalProps) => import("react/jsx-runtime").JSX.Element;
|
|
@@ -12,7 +12,6 @@ import { MultiSelectFieldOption } from '../types';
|
|
|
12
12
|
* @property {boolean} [error] - Shows error styling on the input when true
|
|
13
13
|
* @property {() => void} [onClear] - Callback fired when the clear button is clicked
|
|
14
14
|
* @property {string} [id] - HTML id attribute for the input element
|
|
15
|
-
* @property {string} [popoverTarget] - Target identifier for popover association
|
|
16
15
|
* @property {RefObject<HTMLDivElement>} [inputWrapperRef] - Ref for the input wrapper div element
|
|
17
16
|
* @property {PassThroughProps<"div">} [htmlInputWrapperProps] - Additional props passed to the wrapper div
|
|
18
17
|
* @property {PassThroughProps<"input">} [inputProps] - Additional props passed to the input element
|
|
@@ -34,7 +33,6 @@ export type MultiSelectFieldInputProps = {
|
|
|
34
33
|
error?: boolean;
|
|
35
34
|
onClear?: () => void;
|
|
36
35
|
id?: string;
|
|
37
|
-
popoverTarget?: string;
|
|
38
36
|
inputWrapperRef?: RefObject<HTMLDivElement>;
|
|
39
37
|
htmlInputWrapperProps?: PassThroughProps<"div">;
|
|
40
38
|
inputProps?: PassThroughProps<"input">;
|
|
@@ -1,15 +1,12 @@
|
|
|
1
1
|
import { MultiSelectFieldDownshiftItem, MultiSelectFieldOption } from '../types';
|
|
2
|
-
import { UseComboboxPropGetters } from 'downshift';
|
|
3
2
|
import { CSSProperties, MutableRefObject } from 'react';
|
|
4
3
|
import { FieldListBaseHandle } from '../../SelectField/internal/FieldListBase';
|
|
5
|
-
import { SectionMeta } from '../../SelectField/internal/types';
|
|
6
|
-
type GetMenuProps = UseComboboxPropGetters<MultiSelectFieldDownshiftItem>["getMenuProps"];
|
|
7
|
-
type GetItemProps = UseComboboxPropGetters<MultiSelectFieldDownshiftItem>["getItemProps"];
|
|
4
|
+
import { GetItemPropsFn, GetMenuPropsFn, SectionMeta } from '../../SelectField/internal/types';
|
|
8
5
|
export type MultiSelectFieldListProps = {
|
|
9
6
|
isOpen: boolean;
|
|
10
7
|
items: MultiSelectFieldDownshiftItem[];
|
|
11
|
-
getMenuProps:
|
|
12
|
-
getItemProps:
|
|
8
|
+
getMenuProps: GetMenuPropsFn;
|
|
9
|
+
getItemProps: GetItemPropsFn;
|
|
13
10
|
highlightedIndex: number;
|
|
14
11
|
highlightChangeTypeRef?: MutableRefObject<string>;
|
|
15
12
|
selectedOptions: MultiSelectFieldOption[];
|
|
@@ -25,4 +22,3 @@ export type MultiSelectFieldListProps = {
|
|
|
25
22
|
virtualize?: boolean;
|
|
26
23
|
};
|
|
27
24
|
export declare const MultiSelectFieldList: import('react').ForwardRefExoticComponent<MultiSelectFieldListProps & import('react').RefAttributes<FieldListBaseHandle>>;
|
|
28
|
-
export {};
|
|
@@ -0,0 +1,6 @@
|
|
|
1
|
+
import { MultiSelectFieldBaseInternalProps } from './types';
|
|
2
|
+
/**
|
|
3
|
+
* Select mode: non-searchable multi-select using useSelect.
|
|
4
|
+
* Active when disableSearch is true.
|
|
5
|
+
*/
|
|
6
|
+
export declare const MultiSelectFieldSelectMode: ({ id, helperUid, selectedOptions, onSelectedOptionsChange, displayAs, isDisabledOrReadOnly, disabled, readOnly, required, placeholder, size, error, hasHelperText, disableClearButton, prefix, suffix, label, labelNode, hideLabel, hint, errorMessages, warning, description, className, style, layoutStyles, pinned, groupToString, groupSorter, virtualize, options, loading, loadingMore, hasMore, loadOptions, loadMore, initialLoad, initialLoadPerformed, setInitialLoadPerformed, inputWrapperRef, selectAll, singleRow, maxChips, handleRemoveOption, handleClear, }: MultiSelectFieldBaseInternalProps) => import("react/jsx-runtime").JSX.Element;
|
|
@@ -0,0 +1,30 @@
|
|
|
1
|
+
import { Size } from '../../../../types';
|
|
2
|
+
import { ReactElement, RefObject } from 'react';
|
|
3
|
+
import { MultiSelectFieldOption } from '../types';
|
|
4
|
+
export type MultiSelectFieldTriggerProps = {
|
|
5
|
+
placeholder?: string;
|
|
6
|
+
size?: Extract<Size, "small" | "medium" | "large">;
|
|
7
|
+
disableClearButton?: boolean;
|
|
8
|
+
disabled?: boolean;
|
|
9
|
+
readOnly?: boolean;
|
|
10
|
+
error?: boolean;
|
|
11
|
+
onClear?: () => void;
|
|
12
|
+
id?: string;
|
|
13
|
+
popoverTarget?: string;
|
|
14
|
+
inputWrapperRef?: RefObject<HTMLDivElement>;
|
|
15
|
+
toggleButtonProps?: Record<string, any>;
|
|
16
|
+
prefix?: string | ReactElement;
|
|
17
|
+
suffix?: string | ReactElement;
|
|
18
|
+
selectedOptions?: MultiSelectFieldOption[];
|
|
19
|
+
onRemoveOption?: (option: MultiSelectFieldOption) => void;
|
|
20
|
+
singleRow?: boolean;
|
|
21
|
+
maxChips?: number;
|
|
22
|
+
};
|
|
23
|
+
/**
|
|
24
|
+
* Non-searchable trigger for MultiSelectField when disableSearch is true.
|
|
25
|
+
* Renders chips for selected items in a div-based trigger (no input element).
|
|
26
|
+
*/
|
|
27
|
+
export declare const MultiSelectFieldTrigger: {
|
|
28
|
+
({ placeholder, size, disableClearButton, disabled, readOnly, error, onClear, id, inputWrapperRef, toggleButtonProps, prefix, suffix, selectedOptions, onRemoveOption, singleRow, maxChips, popoverTarget, }: MultiSelectFieldTriggerProps): import("react/jsx-runtime").JSX.Element;
|
|
29
|
+
displayName: string;
|
|
30
|
+
};
|
|
@@ -0,0 +1,67 @@
|
|
|
1
|
+
import { ReactElement, RefObject } from 'react';
|
|
2
|
+
import { CheckState } from '../../../../types';
|
|
3
|
+
import { MultiSelectFieldOption, MultiSelectFieldProps } from '../types';
|
|
4
|
+
export type MultiSelectFieldBaseInternalProps = {
|
|
5
|
+
id: string;
|
|
6
|
+
helperUid: string;
|
|
7
|
+
selectedOptions: MultiSelectFieldOption[];
|
|
8
|
+
onSelectedOptionsChange: (options: MultiSelectFieldOption[]) => void;
|
|
9
|
+
displayAs: "popover" | "dialog";
|
|
10
|
+
isDisabledOrReadOnly: boolean;
|
|
11
|
+
disabled?: boolean;
|
|
12
|
+
readOnly?: boolean;
|
|
13
|
+
required?: boolean;
|
|
14
|
+
placeholder?: string;
|
|
15
|
+
size?: "small" | "medium" | "large";
|
|
16
|
+
error?: boolean | string | ReactElement | string[];
|
|
17
|
+
hasHelperText: boolean;
|
|
18
|
+
disableClearButton: boolean;
|
|
19
|
+
prefix?: string | ReactElement;
|
|
20
|
+
suffix?: string | ReactElement;
|
|
21
|
+
label: string;
|
|
22
|
+
labelNode?: React.ReactNode;
|
|
23
|
+
hideLabel?: boolean;
|
|
24
|
+
hint?: ReactElement | string;
|
|
25
|
+
errorMessages?: string | ReactElement | string[];
|
|
26
|
+
warning?: string | string[];
|
|
27
|
+
description?: ReactElement | string;
|
|
28
|
+
className?: string;
|
|
29
|
+
style?: React.CSSProperties;
|
|
30
|
+
layoutStyles?: React.CSSProperties;
|
|
31
|
+
pinned?: MultiSelectFieldProps["pinned"];
|
|
32
|
+
groupToString?: (groupValue: string | number) => string;
|
|
33
|
+
groupSorter?: (a: string | number, b: string | number) => number;
|
|
34
|
+
virtualize?: boolean;
|
|
35
|
+
options: MultiSelectFieldOption[];
|
|
36
|
+
loading: boolean;
|
|
37
|
+
loadingMore: boolean;
|
|
38
|
+
hasMore: boolean;
|
|
39
|
+
loadOptions: (searchValue: string, opts?: {
|
|
40
|
+
initial?: boolean;
|
|
41
|
+
}) => Promise<void>;
|
|
42
|
+
loadMore: (searchValue: string) => Promise<void>;
|
|
43
|
+
initialLoad: "immediate" | "open";
|
|
44
|
+
initialLoadPerformed: boolean;
|
|
45
|
+
setInitialLoadPerformed: (val: boolean) => void;
|
|
46
|
+
inputWrapperRef: RefObject<HTMLDivElement>;
|
|
47
|
+
selectAll?: {
|
|
48
|
+
label: string;
|
|
49
|
+
onClick: () => void;
|
|
50
|
+
checkState: CheckState;
|
|
51
|
+
};
|
|
52
|
+
singleRow?: boolean;
|
|
53
|
+
maxChips?: number;
|
|
54
|
+
handleRemoveOption: (option: {
|
|
55
|
+
id: string | number;
|
|
56
|
+
}) => void;
|
|
57
|
+
handleClear: () => void;
|
|
58
|
+
};
|
|
59
|
+
export type MultiSelectFieldComboboxInternalProps = MultiSelectFieldBaseInternalProps & {
|
|
60
|
+
debounceMs: number;
|
|
61
|
+
selectFiltered?: (searchValue: string) => {
|
|
62
|
+
label?: string;
|
|
63
|
+
onClick: () => void;
|
|
64
|
+
checkState: CheckState;
|
|
65
|
+
};
|
|
66
|
+
onSearchChange?: (searchValue: string) => void;
|
|
67
|
+
};
|
|
@@ -0,0 +1,19 @@
|
|
|
1
|
+
import { RefObject } from 'react';
|
|
2
|
+
type UseChipLayoutOptions = {
|
|
3
|
+
selectedOptionsLength: number;
|
|
4
|
+
singleRow?: boolean;
|
|
5
|
+
maxChips?: number;
|
|
6
|
+
};
|
|
7
|
+
/**
|
|
8
|
+
* Manages chip layout calculations shared between MultiSelectFieldInput and
|
|
9
|
+
* MultiSelectFieldTrigger. Handles single-row overflow detection, visible chip
|
|
10
|
+
* count, and the "+N" hidden chip indicator.
|
|
11
|
+
* @param options - Configuration for chip layout behaviour
|
|
12
|
+
* @returns rowsRef to attach to the chip container, plus computed display/hidden counts
|
|
13
|
+
*/
|
|
14
|
+
export declare function useChipLayout({ selectedOptionsLength, singleRow, maxChips, }: UseChipLayoutOptions): {
|
|
15
|
+
rowsRef: RefObject<HTMLDivElement>;
|
|
16
|
+
displayCount: number;
|
|
17
|
+
hiddenCount: number;
|
|
18
|
+
};
|
|
19
|
+
export {};
|
|
@@ -1,7 +1,6 @@
|
|
|
1
1
|
import { UseComboboxProps } from 'downshift';
|
|
2
2
|
import { MultiSelectFieldDownshiftItem, MultiSelectFieldGroupByValue, MultiSelectFieldOption, MultiSelectFieldPinnedOptions } from '../types';
|
|
3
3
|
import { CheckState } from '../../../../types';
|
|
4
|
-
import { SectionMeta } from '../../SelectField/internal/types';
|
|
5
4
|
export type UseComboMultipleOptions = {
|
|
6
5
|
/** An array of currently loaded options */
|
|
7
6
|
options: MultiSelectFieldOption[];
|
|
@@ -54,7 +53,7 @@ export declare const useComboMultiple: ({ options, pinned, groupToString, groupS
|
|
|
54
53
|
highlightChangeTypeRef: import('react').MutableRefObject<string>;
|
|
55
54
|
isOpen: boolean;
|
|
56
55
|
downshiftItems: import('../..').SelectFieldDownshiftItem[];
|
|
57
|
-
sectionsMeta: SectionMeta[];
|
|
56
|
+
sectionsMeta: import('../../SelectField/internal/types').SectionMeta[];
|
|
58
57
|
closeMenu: () => void;
|
|
59
58
|
openMenu: () => void;
|
|
60
59
|
toggleMenu: () => void;
|
|
@@ -0,0 +1,40 @@
|
|
|
1
|
+
import { MultiSelectFieldGroupByValue, MultiSelectFieldOption, MultiSelectFieldPinnedOptions } from '../types';
|
|
2
|
+
import { CheckState } from '../../../../types';
|
|
3
|
+
export type UseSelectModeMultipleOptions = {
|
|
4
|
+
options: MultiSelectFieldOption[];
|
|
5
|
+
pinned?: MultiSelectFieldPinnedOptions;
|
|
6
|
+
groupToString?: (groupValue: MultiSelectFieldGroupByValue) => string;
|
|
7
|
+
groupSorter?: (a: MultiSelectFieldGroupByValue, b: MultiSelectFieldGroupByValue) => number;
|
|
8
|
+
selectAll?: {
|
|
9
|
+
label: string;
|
|
10
|
+
onClick: () => void;
|
|
11
|
+
checkState: CheckState;
|
|
12
|
+
};
|
|
13
|
+
selectedOptions: MultiSelectFieldOption[];
|
|
14
|
+
onSelectedOptionsChange: (options: MultiSelectFieldOption[]) => void;
|
|
15
|
+
onIsOpenChange?: (changes: {
|
|
16
|
+
isOpen?: boolean;
|
|
17
|
+
}) => void;
|
|
18
|
+
displayAs: "popover" | "dialog";
|
|
19
|
+
disabled: boolean;
|
|
20
|
+
virtualize?: boolean;
|
|
21
|
+
};
|
|
22
|
+
/**
|
|
23
|
+
* Wraps downshift's useSelect for non-searchable multi-select fields.
|
|
24
|
+
* Keeps menu open after selection and handles bulk actions.
|
|
25
|
+
*/
|
|
26
|
+
export declare const useSelectModeMultiple: ({ options, pinned, groupToString, groupSorter, selectAll, selectedOptions, onSelectedOptionsChange, onIsOpenChange, displayAs, disabled, virtualize, }: UseSelectModeMultipleOptions) => {
|
|
27
|
+
wrapperDivRef: import('react').RefObject<HTMLDivElement>;
|
|
28
|
+
getToggleButtonProps: <Options>(options?: import('downshift').UseSelectGetToggleButtonPropsOptions & Options, otherOptions?: import('downshift').GetPropsCommonOptions) => import('downshift').Overwrite<import('downshift').UseSelectGetToggleButtonReturnValue, Options>;
|
|
29
|
+
getLabelProps: <Options>(options?: import('downshift').UseSelectGetLabelPropsOptions & Options) => import('downshift').Overwrite<import('downshift').UseSelectGetLabelPropsReturnValue, Options>;
|
|
30
|
+
getMenuProps: <Options>(options?: import('downshift').UseSelectGetMenuPropsOptions & Options, otherOptions?: import('downshift').GetPropsCommonOptions) => import('downshift').Overwrite<import('downshift').UseSelectGetMenuReturnValue, Options>;
|
|
31
|
+
getItemProps: <Options>(options: import('downshift').UseSelectGetItemPropsOptions<import('../..').SelectFieldDownshiftItem> & Options) => Omit<import('downshift').Overwrite<import('downshift').UseSelectGetItemPropsReturnValue, Options>, "item" | "index">;
|
|
32
|
+
highlightedIndex: number;
|
|
33
|
+
isOpen: boolean;
|
|
34
|
+
downshiftItems: import('../..').SelectFieldDownshiftItem[];
|
|
35
|
+
sectionsMeta: import('../../SelectField/internal/types').SectionMeta[];
|
|
36
|
+
closeMenu: () => void;
|
|
37
|
+
openMenu: () => void;
|
|
38
|
+
toggleMenu: () => void;
|
|
39
|
+
selectedOptions: import('../..').SelectFieldOption[];
|
|
40
|
+
};
|
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
import { SelectFieldOption } from '../../SelectField/types';
|
|
2
|
+
import { NormalizedPinnedSection } from '../../SelectField/internal/usePinnedOptions';
|
|
3
|
+
type UseToggleSelectionParams = {
|
|
4
|
+
options: SelectFieldOption[];
|
|
5
|
+
pinnedSections: NormalizedPinnedSection[];
|
|
6
|
+
selectedOptions: SelectFieldOption[];
|
|
7
|
+
onSelectedOptionsChange: (options: SelectFieldOption[]) => void;
|
|
8
|
+
};
|
|
9
|
+
/**
|
|
10
|
+
* Shared multi-select toggle logic: computes allPinnedOptions and provides
|
|
11
|
+
* handleItemClick to add/remove an option from the selection.
|
|
12
|
+
* Used by both useComboMultiple and useSelectModeMultiple.
|
|
13
|
+
*/
|
|
14
|
+
export declare const useToggleSelection: ({ options, pinnedSections, selectedOptions, onSelectedOptionsChange, }: UseToggleSelectionParams) => {
|
|
15
|
+
handleItemClick: (option: {
|
|
16
|
+
id: string | number;
|
|
17
|
+
label: string;
|
|
18
|
+
}) => void;
|
|
19
|
+
allPinnedOptions: SelectFieldOption[];
|
|
20
|
+
};
|
|
21
|
+
export {};
|
|
@@ -268,6 +268,13 @@ type MultiSelectFieldCommonProps = {
|
|
|
268
268
|
* @default false
|
|
269
269
|
*/
|
|
270
270
|
virtualize?: boolean;
|
|
271
|
+
/**
|
|
272
|
+
* Whether to disable the search input.
|
|
273
|
+
* When true, the input is replaced with a non-editable select trigger and the ARIA pattern
|
|
274
|
+
* changes from combobox to listbox.
|
|
275
|
+
* @default false
|
|
276
|
+
*/
|
|
277
|
+
disableSearch?: boolean;
|
|
271
278
|
} & MultiSelectFieldSearchProps & LayoutUtilProps;
|
|
272
279
|
type MultiSelectFieldGroupingProps = {
|
|
273
280
|
/**
|
|
@@ -4,7 +4,7 @@ export declare const FieldDialog: ({ id, isOpen, onClose, field, children, title
|
|
|
4
4
|
isOpen: boolean;
|
|
5
5
|
onClose: () => void;
|
|
6
6
|
title: string;
|
|
7
|
-
field
|
|
7
|
+
field?: React.ReactNode;
|
|
8
8
|
children: React.ReactNode;
|
|
9
9
|
initialFocusResolver?: (focusables: FocusableElement[]) => FocusableElement;
|
|
10
10
|
}) => import("react/jsx-runtime").JSX.Element;
|
|
@@ -1,16 +1,15 @@
|
|
|
1
|
-
import { UseComboboxPropGetters } from 'downshift';
|
|
2
1
|
import { SelectFieldDownshiftItem } from '../types';
|
|
3
2
|
import { CSSProperties, MutableRefObject } from 'react';
|
|
4
3
|
import { CheckState } from '../../../../types';
|
|
5
|
-
import { SectionMeta } from './types';
|
|
4
|
+
import { GetItemPropsFn, GetMenuPropsFn, SectionMeta } from './types';
|
|
6
5
|
export type FieldListBaseHandle = {
|
|
7
6
|
scrollToTop: () => void;
|
|
8
7
|
};
|
|
9
8
|
export type FieldListBaseProps = {
|
|
10
9
|
isOpen: boolean;
|
|
11
10
|
items: SelectFieldDownshiftItem[];
|
|
12
|
-
getMenuProps:
|
|
13
|
-
getItemProps:
|
|
11
|
+
getMenuProps: GetMenuPropsFn;
|
|
12
|
+
getItemProps: GetItemPropsFn;
|
|
14
13
|
highlightedIndex: number;
|
|
15
14
|
highlightChangeTypeRef?: MutableRefObject<string>;
|
|
16
15
|
getCheckedState: (item: SelectFieldDownshiftItem) => CheckState;
|
|
@@ -0,0 +1,6 @@
|
|
|
1
|
+
import { SelectFieldComboboxInternalProps } from './types';
|
|
2
|
+
/**
|
|
3
|
+
* Combobox mode: searchable select using useCombobox.
|
|
4
|
+
* This is the default behavior when disableSearch is false.
|
|
5
|
+
*/
|
|
6
|
+
export declare const SelectFieldComboboxMode: ({ id, helperUid, selectedOption, onSelectedOptionChange, displayAs, isDisabledOrReadOnly, disabled, readOnly, required, placeholder, size, error, hasHelperText, disableClearButton, prefix, suffix, label, labelNode, hideLabel, hint, errorMessages, warning, description, className, style, layoutStyles, pinned, groupToString, groupSorter, virtualize, options, loading, loadingMore, hasMore, loadOptions, loadMore, initialLoad, initialLoadPerformed, setInitialLoadPerformed, inputWrapperRef, debounceMs, }: SelectFieldComboboxInternalProps) => import("react/jsx-runtime").JSX.Element;
|
|
@@ -12,7 +12,6 @@ import { ReactElement, RefObject } from 'react';
|
|
|
12
12
|
* @property {boolean} [error] - Shows error styling on the input when true
|
|
13
13
|
* @property {() => void} [onClear] - Callback fired when the clear button is clicked
|
|
14
14
|
* @property {string} [id] - HTML id attribute for the input element
|
|
15
|
-
* @property {string} [popoverTarget] - Target identifier for popover association
|
|
16
15
|
* @property {RefObject<HTMLDivElement>} [inputWrapperRef] - Ref for the input wrapper div element
|
|
17
16
|
* @property {PassThroughProps<"div">} [htmlInputWrapperProps] - Additional props passed to the wrapper div
|
|
18
17
|
* @property {PassThroughProps<"input">} [inputProps] - Additional props passed to the input element
|
|
@@ -31,7 +30,6 @@ export type SelectFieldInputProps = {
|
|
|
31
30
|
error?: boolean;
|
|
32
31
|
onClear?: () => void;
|
|
33
32
|
id?: string;
|
|
34
|
-
popoverTarget?: string;
|
|
35
33
|
inputWrapperRef?: RefObject<HTMLDivElement>;
|
|
36
34
|
htmlInputWrapperProps?: PassThroughProps<"div">;
|
|
37
35
|
inputProps?: PassThroughProps<"input">;
|
|
@@ -1,7 +1,8 @@
|
|
|
1
1
|
import { ReactNode } from 'react';
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
|
|
2
|
+
type GetLabelProps = (options?: object) => {
|
|
3
|
+
id: string;
|
|
4
|
+
htmlFor: string;
|
|
5
|
+
};
|
|
5
6
|
/**
|
|
6
7
|
* Props for the SelectFieldLabel component
|
|
7
8
|
* @property {string} label - The text content to display as the label
|
|
@@ -1,14 +1,11 @@
|
|
|
1
1
|
import { SelectFieldDownshiftItem, SelectFieldOption } from '../types';
|
|
2
|
-
import { UseComboboxPropGetters } from 'downshift';
|
|
3
2
|
import { CSSProperties, MutableRefObject } from 'react';
|
|
4
|
-
import { SectionMeta } from './types';
|
|
5
|
-
type GetMenuProps = UseComboboxPropGetters<SelectFieldDownshiftItem>["getMenuProps"];
|
|
6
|
-
type GetItemProps = UseComboboxPropGetters<SelectFieldDownshiftItem>["getItemProps"];
|
|
3
|
+
import { GetItemPropsFn, GetMenuPropsFn, SectionMeta } from './types';
|
|
7
4
|
export type SelectFieldListProps = {
|
|
8
5
|
isOpen: boolean;
|
|
9
6
|
items: SelectFieldDownshiftItem[];
|
|
10
|
-
getMenuProps:
|
|
11
|
-
getItemProps:
|
|
7
|
+
getMenuProps: GetMenuPropsFn;
|
|
8
|
+
getItemProps: GetItemPropsFn;
|
|
12
9
|
highlightedIndex: number;
|
|
13
10
|
highlightChangeTypeRef?: MutableRefObject<string>;
|
|
14
11
|
selectedOption: SelectFieldOption | null;
|
|
@@ -27,4 +24,3 @@ export declare const SelectFieldList: {
|
|
|
27
24
|
({ selectedOption, virtualize, ...rest }: SelectFieldListProps): import("react/jsx-runtime").JSX.Element;
|
|
28
25
|
displayName: string;
|
|
29
26
|
};
|
|
30
|
-
export {};
|
|
@@ -1,16 +1,14 @@
|
|
|
1
|
-
import { UseComboboxPropGetters } from 'downshift';
|
|
2
1
|
import { SelectFieldDownshiftItem } from '../types';
|
|
3
2
|
import { CheckState } from '../../../../types';
|
|
4
|
-
|
|
3
|
+
import { GetItemPropsFn } from './types';
|
|
5
4
|
export type SelectFieldListItemProps = {
|
|
6
5
|
item: SelectFieldDownshiftItem;
|
|
7
6
|
index: number;
|
|
8
7
|
highlighted: boolean;
|
|
9
8
|
disabled: boolean;
|
|
10
|
-
getItemProps:
|
|
9
|
+
getItemProps: GetItemPropsFn;
|
|
11
10
|
selectionType: "single" | "multiple";
|
|
12
11
|
checked: CheckState;
|
|
13
12
|
isListScrolled?: boolean;
|
|
14
13
|
};
|
|
15
14
|
export declare const SelectFieldListItem: ({ item, index, highlighted, disabled, getItemProps, selectionType, checked, isListScrolled, }: SelectFieldListItemProps) => import("react/jsx-runtime").JSX.Element;
|
|
16
|
-
export {};
|
|
@@ -0,0 +1,6 @@
|
|
|
1
|
+
import { SelectFieldBaseInternalProps } from './types';
|
|
2
|
+
/**
|
|
3
|
+
* Select mode: non-searchable select using useSelect.
|
|
4
|
+
* Active when disableSearch is true.
|
|
5
|
+
*/
|
|
6
|
+
export declare const SelectFieldSelectMode: ({ id, helperUid, selectedOption, onSelectedOptionChange, displayAs, isDisabledOrReadOnly, disabled, readOnly, placeholder, size, error, hasHelperText, disableClearButton, prefix, suffix, label, labelNode, hideLabel, hint, errorMessages, warning, description, className, style, layoutStyles, pinned, groupToString, groupSorter, virtualize, options, loading, loadingMore, hasMore, loadOptions, loadMore, initialLoad, initialLoadPerformed, setInitialLoadPerformed, inputWrapperRef, required, }: SelectFieldBaseInternalProps) => import("react/jsx-runtime").JSX.Element;
|
|
@@ -0,0 +1,27 @@
|
|
|
1
|
+
import { Size } from '../../../../types';
|
|
2
|
+
import { ReactElement, RefObject } from 'react';
|
|
3
|
+
export type SelectFieldTriggerProps = {
|
|
4
|
+
placeholder?: string;
|
|
5
|
+
size?: Extract<Size, "small" | "medium" | "large">;
|
|
6
|
+
disableClearButton?: boolean;
|
|
7
|
+
disabled?: boolean;
|
|
8
|
+
readOnly?: boolean;
|
|
9
|
+
error?: boolean;
|
|
10
|
+
onClear?: () => void;
|
|
11
|
+
id?: string;
|
|
12
|
+
popoverTarget?: string;
|
|
13
|
+
inputWrapperRef?: RefObject<HTMLDivElement>;
|
|
14
|
+
toggleButtonProps?: Record<string, any>;
|
|
15
|
+
/** The display text (selected option label or empty) */
|
|
16
|
+
displayValue?: string;
|
|
17
|
+
prefix?: string | ReactElement;
|
|
18
|
+
suffix?: string | ReactElement;
|
|
19
|
+
};
|
|
20
|
+
/**
|
|
21
|
+
* Non-searchable select trigger for SelectField when disableSearch is true.
|
|
22
|
+
* Renders a div-based trigger instead of an input, suitable for the listbox ARIA pattern.
|
|
23
|
+
*/
|
|
24
|
+
export declare const SelectFieldTrigger: {
|
|
25
|
+
({ placeholder, size, disableClearButton, disabled, readOnly, error, onClear, id, inputWrapperRef, toggleButtonProps, displayValue, prefix, suffix, popoverTarget, }: SelectFieldTriggerProps): import("react/jsx-runtime").JSX.Element;
|
|
26
|
+
displayName: string;
|
|
27
|
+
};
|
|
@@ -0,0 +1,22 @@
|
|
|
1
|
+
import { SelectFieldDownshiftItem, SelectFieldOption } from '../types';
|
|
2
|
+
import { SectionMeta } from './types';
|
|
3
|
+
import { NormalizedPinnedSection } from './usePinnedOptions';
|
|
4
|
+
import { NormalizedGroupSection } from './useGroupedOptions';
|
|
5
|
+
export declare function mapOptionToDownshiftItem(option: SelectFieldOption): SelectFieldDownshiftItem;
|
|
6
|
+
type BuildDownshiftItemsParams = {
|
|
7
|
+
prefixItems?: SelectFieldDownshiftItem[];
|
|
8
|
+
pinnedSections: NormalizedPinnedSection[];
|
|
9
|
+
groupSections: NormalizedGroupSection[];
|
|
10
|
+
ungroupedItems: SelectFieldDownshiftItem[];
|
|
11
|
+
};
|
|
12
|
+
/**
|
|
13
|
+
* Assembles the flat downshiftItems array and sectionsMeta.
|
|
14
|
+
* Order: prefixItems → pinned sections → group sections → ungrouped items.
|
|
15
|
+
* Multi-select hooks pass bulk action items (select-all / select-filtered) as prefixItems;
|
|
16
|
+
* single-select hooks omit it.
|
|
17
|
+
*/
|
|
18
|
+
export declare function buildDownshiftItems({ prefixItems, pinnedSections, groupSections, ungroupedItems, }: BuildDownshiftItemsParams): {
|
|
19
|
+
downshiftItems: SelectFieldDownshiftItem[];
|
|
20
|
+
sectionsMeta: SectionMeta[];
|
|
21
|
+
};
|
|
22
|
+
export {};
|
|
@@ -1,3 +1,5 @@
|
|
|
1
|
+
import { ReactElement, RefObject } from 'react';
|
|
2
|
+
import { SelectFieldOption, SelectFieldProps } from '../types';
|
|
1
3
|
/**
|
|
2
4
|
* Metadata about list sections for rendering purposes.
|
|
3
5
|
* Used by both SelectFieldList and MultiSelectFieldList to render section headers and dividers.
|
|
@@ -14,3 +16,58 @@ export type SectionMeta = {
|
|
|
14
16
|
endIndex: number;
|
|
15
17
|
loading?: boolean;
|
|
16
18
|
};
|
|
19
|
+
export type SelectFieldBaseInternalProps = {
|
|
20
|
+
id: string;
|
|
21
|
+
helperUid: string;
|
|
22
|
+
selectedOption: SelectFieldOption | null;
|
|
23
|
+
onSelectedOptionChange: (option: SelectFieldOption | null) => void;
|
|
24
|
+
displayAs: "popover" | "dialog";
|
|
25
|
+
isDisabledOrReadOnly: boolean;
|
|
26
|
+
disabled?: boolean;
|
|
27
|
+
readOnly?: boolean;
|
|
28
|
+
required?: boolean;
|
|
29
|
+
placeholder?: string;
|
|
30
|
+
size?: "small" | "medium" | "large";
|
|
31
|
+
error?: boolean | string | ReactElement | string[];
|
|
32
|
+
hasHelperText: boolean;
|
|
33
|
+
disableClearButton: boolean;
|
|
34
|
+
prefix?: string | ReactElement;
|
|
35
|
+
suffix?: string | ReactElement;
|
|
36
|
+
label: string;
|
|
37
|
+
labelNode?: React.ReactNode;
|
|
38
|
+
hideLabel?: boolean;
|
|
39
|
+
hint?: ReactElement | string;
|
|
40
|
+
errorMessages?: string | ReactElement | string[];
|
|
41
|
+
warning?: string | string[];
|
|
42
|
+
description?: ReactElement | string;
|
|
43
|
+
className?: string;
|
|
44
|
+
style?: React.CSSProperties;
|
|
45
|
+
layoutStyles?: React.CSSProperties;
|
|
46
|
+
pinned?: SelectFieldProps["pinned"];
|
|
47
|
+
groupToString?: (groupValue: string | number) => string;
|
|
48
|
+
groupSorter?: (a: string | number, b: string | number) => number;
|
|
49
|
+
virtualize?: boolean;
|
|
50
|
+
options: SelectFieldOption[];
|
|
51
|
+
loading: boolean;
|
|
52
|
+
loadingMore: boolean;
|
|
53
|
+
hasMore: boolean;
|
|
54
|
+
loadOptions: (searchValue: string, opts?: {
|
|
55
|
+
initial?: boolean;
|
|
56
|
+
}) => Promise<void>;
|
|
57
|
+
loadMore: (searchValue: string) => Promise<void>;
|
|
58
|
+
initialLoad: "immediate" | "open";
|
|
59
|
+
initialLoadPerformed: boolean;
|
|
60
|
+
setInitialLoadPerformed: (val: boolean) => void;
|
|
61
|
+
inputWrapperRef: RefObject<HTMLDivElement>;
|
|
62
|
+
};
|
|
63
|
+
export type SelectFieldComboboxInternalProps = SelectFieldBaseInternalProps & {
|
|
64
|
+
debounceMs: number;
|
|
65
|
+
};
|
|
66
|
+
/**
|
|
67
|
+
* Loose prop getter types compatible with both downshift's useCombobox and useSelect.
|
|
68
|
+
* Using `any` for the return types is intentional: the actual runtime shapes are identical
|
|
69
|
+
* between the two hooks, but their compile-time generic types diverge.
|
|
70
|
+
*/
|
|
71
|
+
export type GetMenuPropsFn = (...args: any[]) => any;
|
|
72
|
+
export type GetItemPropsFn = (...args: any[]) => any;
|
|
73
|
+
export type GetLabelPropsFn = (...args: any[]) => any;
|
|
@@ -7,10 +7,6 @@ export type UseComboOptions = {
|
|
|
7
7
|
pinned?: SelectFieldPinnedOptions;
|
|
8
8
|
groupToString?: (groupValue: SelectFieldGroupByValue) => string;
|
|
9
9
|
groupSorter?: (a: SelectFieldGroupByValue, b: SelectFieldGroupByValue) => number;
|
|
10
|
-
selectAll?: {
|
|
11
|
-
label: string;
|
|
12
|
-
onClick: () => void;
|
|
13
|
-
};
|
|
14
10
|
selectedOption: SelectFieldOption | null;
|
|
15
11
|
onSelectedOptionChange: (option: SelectFieldOption | null) => void;
|
|
16
12
|
displayAs: "popover" | "dialog";
|
|
@@ -21,7 +17,7 @@ export type UseComboOptions = {
|
|
|
21
17
|
/**
|
|
22
18
|
* The purpose of useCombo is to provide an abstraction over the downshift combobox hook.
|
|
23
19
|
*/
|
|
24
|
-
export declare const useCombo: ({ options, pinned, groupToString, groupSorter,
|
|
20
|
+
export declare const useCombo: ({ options, pinned, groupToString, groupSorter, selectedOption, onSelectedOptionChange, onInputValueChange, onIsOpenChange, displayAs, disableHighlightOnOpen, disabled, virtualize, }: UseComboOptions) => {
|
|
25
21
|
inputValue: string;
|
|
26
22
|
wrapperDivRef: import('react').RefObject<HTMLDivElement>;
|
|
27
23
|
getToggleButtonProps: <Options>(options?: import('downshift').UseComboboxGetToggleButtonPropsOptions & Options) => import('downshift').Overwrite<import('downshift').UseComboboxGetToggleButtonPropsReturnValue, Options>;
|
|
@@ -0,0 +1,19 @@
|
|
|
1
|
+
import { SelectFieldGroupByValue, SelectFieldOption, SelectFieldPinnedOptions } from '../types';
|
|
2
|
+
type UseProcessedOptionsParams = {
|
|
3
|
+
options: SelectFieldOption[];
|
|
4
|
+
pinned?: SelectFieldPinnedOptions;
|
|
5
|
+
searchValue: string;
|
|
6
|
+
groupToString?: (groupValue: SelectFieldGroupByValue) => string;
|
|
7
|
+
groupSorter?: (a: SelectFieldGroupByValue, b: SelectFieldGroupByValue) => number;
|
|
8
|
+
};
|
|
9
|
+
/**
|
|
10
|
+
* Shared pipeline for processing options: pinned → grouped → sorted.
|
|
11
|
+
* Used by all four downshift-wrapping hooks (useCombo, useSelectMode,
|
|
12
|
+
* useComboMultiple, useSelectModeMultiple).
|
|
13
|
+
*/
|
|
14
|
+
export declare const useProcessedOptions: ({ options, pinned, searchValue, groupToString, groupSorter, }: UseProcessedOptionsParams) => {
|
|
15
|
+
pinnedSections: import('./usePinnedOptions').NormalizedPinnedSection[];
|
|
16
|
+
ungroupedItems: import('..').SelectFieldDownshiftItem[];
|
|
17
|
+
groupSections: import('./useGroupedOptions').NormalizedGroupSection[];
|
|
18
|
+
};
|
|
19
|
+
export {};
|
|
@@ -0,0 +1,34 @@
|
|
|
1
|
+
import { SelectFieldDownshiftItem, SelectFieldGroupByValue, SelectFieldOption, SelectFieldPinnedOptions } from '../types';
|
|
2
|
+
export type UseSelectModeOptions = {
|
|
3
|
+
options: SelectFieldOption[];
|
|
4
|
+
pinned?: SelectFieldPinnedOptions;
|
|
5
|
+
groupToString?: (groupValue: SelectFieldGroupByValue) => string;
|
|
6
|
+
groupSorter?: (a: SelectFieldGroupByValue, b: SelectFieldGroupByValue) => number;
|
|
7
|
+
selectedOption: SelectFieldOption | null;
|
|
8
|
+
onSelectedOptionChange: (option: SelectFieldOption | null) => void;
|
|
9
|
+
onIsOpenChange?: (changes: {
|
|
10
|
+
isOpen?: boolean;
|
|
11
|
+
}) => void;
|
|
12
|
+
displayAs: "popover" | "dialog";
|
|
13
|
+
disableHighlightOnOpen?: boolean;
|
|
14
|
+
disabled: boolean;
|
|
15
|
+
virtualize?: boolean;
|
|
16
|
+
};
|
|
17
|
+
/**
|
|
18
|
+
* Wraps downshift's useSelect for non-searchable select fields.
|
|
19
|
+
* Returns a compatible interface to useCombo (minus getInputProps/inputValue).
|
|
20
|
+
*/
|
|
21
|
+
export declare const useSelectMode: ({ options, pinned, groupToString, groupSorter, selectedOption, onSelectedOptionChange, onIsOpenChange, displayAs, disableHighlightOnOpen, disabled, virtualize, }: UseSelectModeOptions) => {
|
|
22
|
+
wrapperDivRef: import('react').RefObject<HTMLDivElement>;
|
|
23
|
+
getToggleButtonProps: <Options>(options?: import('downshift').UseSelectGetToggleButtonPropsOptions & Options, otherOptions?: import('downshift').GetPropsCommonOptions) => import('downshift').Overwrite<import('downshift').UseSelectGetToggleButtonReturnValue, Options>;
|
|
24
|
+
getLabelProps: <Options>(options?: import('downshift').UseSelectGetLabelPropsOptions & Options) => import('downshift').Overwrite<import('downshift').UseSelectGetLabelPropsReturnValue, Options>;
|
|
25
|
+
getMenuProps: <Options>(options?: import('downshift').UseSelectGetMenuPropsOptions & Options, otherOptions?: import('downshift').GetPropsCommonOptions) => import('downshift').Overwrite<import('downshift').UseSelectGetMenuReturnValue, Options>;
|
|
26
|
+
getItemProps: <Options>(options: import('downshift').UseSelectGetItemPropsOptions<SelectFieldDownshiftItem> & Options) => Omit<import('downshift').Overwrite<import('downshift').UseSelectGetItemPropsReturnValue, Options>, "item" | "index">;
|
|
27
|
+
highlightedIndex: number;
|
|
28
|
+
highlightChangeTypeRef: import('react').MutableRefObject<string>;
|
|
29
|
+
isOpen: boolean;
|
|
30
|
+
downshiftItems: SelectFieldDownshiftItem[];
|
|
31
|
+
sectionsMeta: import('./types').SectionMeta[];
|
|
32
|
+
closeMenu: () => void;
|
|
33
|
+
openMenu: () => void;
|
|
34
|
+
};
|
|
@@ -239,6 +239,13 @@ type SelectFieldCommonSelectFieldProps = {
|
|
|
239
239
|
* @default false
|
|
240
240
|
*/
|
|
241
241
|
virtualize?: boolean;
|
|
242
|
+
/**
|
|
243
|
+
* Whether to disable the search input.
|
|
244
|
+
* When true, the input is replaced with a non-editable select trigger and the ARIA pattern
|
|
245
|
+
* changes from combobox to listbox.
|
|
246
|
+
* @default false
|
|
247
|
+
*/
|
|
248
|
+
disableSearch?: boolean;
|
|
242
249
|
} & SelectFieldSearchProps & SelectFieldAddNewOptionProps & LayoutUtilProps;
|
|
243
250
|
type SelectFieldGroupingProps = {
|
|
244
251
|
/**
|
|
@@ -1,8 +1,8 @@
|
|
|
1
1
|
import { ComponentPropsWithoutRef, Ref } from 'react';
|
|
2
2
|
import { LayoutUtilProps } from '../../../../types';
|
|
3
3
|
import { ColumnDef, CustomTableFooterCellProps, TableRow } from '../types';
|
|
4
|
-
import { DataTablePaginationConfig, DataTableRef } from './types';
|
|
5
|
-
export type { DataTableRef };
|
|
4
|
+
import { DataTableEmptyState, DataTablePaginationConfig, DataTableRef } from './types';
|
|
5
|
+
export type { DataTableRef, DataTableEmptyState };
|
|
6
6
|
/**
|
|
7
7
|
* Represents a sorted column configuration for DataTable
|
|
8
8
|
*/
|
|
@@ -81,6 +81,11 @@ export type DataTableProps<T> = LayoutUtilProps & ComponentPropsWithoutRef<"div"
|
|
|
81
81
|
* The sorted column.
|
|
82
82
|
*/
|
|
83
83
|
sortedColumn?: SortedColumn;
|
|
84
|
+
/**
|
|
85
|
+
* Configuration for the empty state displayed when the table has no data.
|
|
86
|
+
* Only shown when data is empty and the table is not loading.
|
|
87
|
+
*/
|
|
88
|
+
emptyState?: DataTableEmptyState;
|
|
84
89
|
};
|
|
85
90
|
declare function DataTableInner<T>(props: DataTableProps<T>, ref: Ref<DataTableRef>): import("react/jsx-runtime").JSX.Element;
|
|
86
91
|
/**
|
|
@@ -99,6 +104,7 @@ declare function DataTableInner<T>(props: DataTableProps<T>, ref: Ref<DataTableR
|
|
|
99
104
|
* - Default and Strong backgrounds
|
|
100
105
|
* - Pagination support with configurable items per page
|
|
101
106
|
* - Imperative refresh via ref
|
|
107
|
+
* - Customizable empty state with optional SVG illustration and content
|
|
102
108
|
*
|
|
103
109
|
* @param props - The props for the DataTable component
|
|
104
110
|
* @param props.data - The data for the table. Must be an array of objects with an `id` property.
|
|
@@ -115,6 +121,7 @@ declare function DataTableInner<T>(props: DataTableProps<T>, ref: Ref<DataTableR
|
|
|
115
121
|
* @param props.pagination - Pagination configuration. When provided, enables pagination and filters data to show only the current page. When undefined, all data is shown and no pagination controls are rendered.
|
|
116
122
|
* @param props.selectedRowIds - The selected row ids.
|
|
117
123
|
* @param props.sortedColumn - The sorted column.
|
|
124
|
+
* @param props.emptyState - Configuration for the empty state displayed when the table has no data.
|
|
118
125
|
* @param props.style - The style of the table container.
|
|
119
126
|
* @param props.rest - The rest of the props for the DataTable component, spread to the div surrounding the table.
|
|
120
127
|
*
|