@bigbinary/neeto-atoms 1.0.103 → 1.0.105
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/dist/{Avatar-ChF94Ken.js → Avatar-Dg5-X_dH.js} +8 -2
- package/dist/Avatar-Dg5-X_dH.js.map +1 -0
- package/dist/{Checkbox-DiAngQvO.js → Checkbox-BalUzegZ.js} +26 -7
- package/dist/Checkbox-BalUzegZ.js.map +1 -0
- package/dist/{Combobox-DriZMj4f.js → Combobox-NgubHftk.js} +2 -2
- package/dist/{Combobox-DriZMj4f.js.map → Combobox-NgubHftk.js.map} +1 -1
- package/dist/{DataTable-CwWARMEv.js → DataTable-mxDU-16D.js} +75 -55
- package/dist/DataTable-mxDU-16D.js.map +1 -0
- package/dist/{DatePicker-Uf_h3ohA.js → DatePicker-BoXx1Wve.js} +13 -4
- package/dist/DatePicker-BoXx1Wve.js.map +1 -0
- package/dist/{Dialog-D8C0-nEo.js → Dialog-Yw34WDqY.js} +2 -2
- package/dist/Dialog-Yw34WDqY.js.map +1 -0
- package/dist/{HelpIcon-CbnRiSjn.js → HelpIcon-xh488VXs.js} +11 -3
- package/dist/HelpIcon-xh488VXs.js.map +1 -0
- package/dist/{Input-CuIurquS.js → Input-W8foyOcS.js} +35 -7
- package/dist/Input-W8foyOcS.js.map +1 -0
- package/dist/{Label-DjOaTM4Q.js → Label-B-R4PNNq.js} +2 -2
- package/dist/{Label-DjOaTM4Q.js.map → Label-B-R4PNNq.js.map} +1 -1
- package/dist/{MultiEmailInput-BB334s4C.js → MultiEmailInput-Bzd2dPFC.js} +68 -25
- package/dist/MultiEmailInput-Bzd2dPFC.js.map +1 -0
- package/dist/{RadioGroup-CpgVdPzz.js → RadioGroup-CBXByAMW.js} +63 -34
- package/dist/RadioGroup-CBXByAMW.js.map +1 -0
- package/dist/{Select-YWCfd2p1.js → Select-ZWR0HFCa.js} +255 -94
- package/dist/Select-ZWR0HFCa.js.map +1 -0
- package/dist/{SelectFieldWrapper-D98IWsW5.js → SelectFieldWrapper-D370CD4o.js} +8 -1
- package/dist/SelectFieldWrapper-D370CD4o.js.map +1 -0
- package/dist/{Slider-Bokg8-oi.js → Slider-CxQdlyHZ.js} +32 -7
- package/dist/Slider-CxQdlyHZ.js.map +1 -0
- package/dist/{Stepper-DO7EBWYL.js → Stepper-GK8gDn-s.js} +2 -1
- package/dist/Stepper-GK8gDn-s.js.map +1 -0
- package/dist/{Switch-Am2l2UdV.js → Switch-C9fqpoNR.js} +16 -2
- package/dist/Switch-C9fqpoNR.js.map +1 -0
- package/dist/{Tabs-ModAabFc.js → Tabs-DaXiF_67.js} +3 -3
- package/dist/Tabs-DaXiF_67.js.map +1 -0
- package/dist/{Textarea-CMGZZ4rL.js → Textarea-CUe09-sr.js} +34 -7
- package/dist/Textarea-CUe09-sr.js.map +1 -0
- package/dist/{TimePicker-Ca7iF-a_.js → TimePicker-BixF9wdU.js} +21 -4
- package/dist/TimePicker-BixF9wdU.js.map +1 -0
- package/dist/{Toastr-Cka6pudu.js → Toastr-CXqmoXjn.js} +9 -2
- package/dist/Toastr-CXqmoXjn.js.map +1 -0
- package/dist/{TreeSelect-wYDOZ5yD.js → TreeSelect-rrTHwY42.js} +3 -2
- package/dist/TreeSelect-rrTHwY42.js.map +1 -0
- package/dist/cjs/{Avatar-DGuMcBnh.js → Avatar-D2k6WnzD.js} +8 -2
- package/dist/cjs/Avatar-D2k6WnzD.js.map +1 -0
- package/dist/cjs/{Checkbox-7lX2aMKA.js → Checkbox-83g1FDsc.js} +26 -7
- package/dist/cjs/Checkbox-83g1FDsc.js.map +1 -0
- package/dist/cjs/{Combobox-BE8LT4yq.js → Combobox-PAGcNUr6.js} +2 -2
- package/dist/cjs/{Combobox-BE8LT4yq.js.map → Combobox-PAGcNUr6.js.map} +1 -1
- package/dist/cjs/{DataTable-ChgPVrRB.js → DataTable-OtA15NKE.js} +75 -55
- package/dist/cjs/DataTable-OtA15NKE.js.map +1 -0
- package/dist/cjs/{DatePicker-Czp9QLy0.js → DatePicker-DtmJ-VkV.js} +13 -4
- package/dist/cjs/DatePicker-DtmJ-VkV.js.map +1 -0
- package/dist/cjs/{Dialog-DNv7j7ts.js → Dialog-ZUHGaoAE.js} +2 -2
- package/dist/cjs/Dialog-ZUHGaoAE.js.map +1 -0
- package/dist/cjs/{HelpIcon-QpZY6Zmc.js → HelpIcon-BF1ePUQf.js} +11 -3
- package/dist/cjs/HelpIcon-BF1ePUQf.js.map +1 -0
- package/dist/cjs/{Input-lWo0YoZ9.js → Input-DIq7T9D0.js} +35 -7
- package/dist/cjs/Input-DIq7T9D0.js.map +1 -0
- package/dist/cjs/{Label-D8RFE9hd.js → Label-CpsdGBV8.js} +2 -2
- package/dist/cjs/{Label-D8RFE9hd.js.map → Label-CpsdGBV8.js.map} +1 -1
- package/dist/cjs/{MultiEmailInput-BlIqzq-o.js → MultiEmailInput-FNRR9b74.js} +68 -25
- package/dist/cjs/MultiEmailInput-FNRR9b74.js.map +1 -0
- package/dist/cjs/{RadioGroup-DCEw94Dk.js → RadioGroup-B-u8rdbf.js} +63 -34
- package/dist/cjs/RadioGroup-B-u8rdbf.js.map +1 -0
- package/dist/cjs/{Select-Bs5Fp3wj.js → Select-VQCROyX1.js} +258 -97
- package/dist/cjs/Select-VQCROyX1.js.map +1 -0
- package/dist/cjs/{SelectFieldWrapper-BLVvwUcK.js → SelectFieldWrapper-CIh_atln.js} +8 -1
- package/dist/cjs/SelectFieldWrapper-CIh_atln.js.map +1 -0
- package/dist/cjs/{Slider-CRmd_VMs.js → Slider-DIUSlx_m.js} +32 -7
- package/dist/cjs/Slider-DIUSlx_m.js.map +1 -0
- package/dist/cjs/{Stepper-BtZG_XmC.js → Stepper-BZBdL6JW.js} +2 -1
- package/dist/cjs/Stepper-BZBdL6JW.js.map +1 -0
- package/dist/cjs/{Switch-DY7bdiEz.js → Switch-BbRK3HUZ.js} +16 -2
- package/dist/cjs/Switch-BbRK3HUZ.js.map +1 -0
- package/dist/cjs/{Tabs-CA0QAWp0.js → Tabs-BQl63Ewe.js} +3 -3
- package/dist/cjs/Tabs-BQl63Ewe.js.map +1 -0
- package/dist/cjs/{Textarea-Cw7Uea82.js → Textarea-bxleSw86.js} +34 -7
- package/dist/cjs/Textarea-bxleSw86.js.map +1 -0
- package/dist/cjs/{TimePicker-DW7OM3IE.js → TimePicker-lJ2985nh.js} +21 -4
- package/dist/cjs/TimePicker-lJ2985nh.js.map +1 -0
- package/dist/cjs/{Toastr-E0yLh_MW.js → Toastr-9DXjD-Mq.js} +9 -2
- package/dist/cjs/Toastr-9DXjD-Mq.js.map +1 -0
- package/dist/cjs/{TreeSelect-C9BSJt1d.js → TreeSelect-DDQx8FPS.js} +3 -2
- package/dist/cjs/TreeSelect-DDQx8FPS.js.map +1 -0
- package/dist/cjs/components/Avatar.js +1 -1
- package/dist/cjs/components/Checkbox.js +4 -2
- package/dist/cjs/components/Checkbox.js.map +1 -1
- package/dist/cjs/components/DataTable.js +2 -1
- package/dist/cjs/components/DataTable.js.map +1 -1
- package/dist/cjs/components/DatePicker.js +4 -2
- package/dist/cjs/components/DatePicker.js.map +1 -1
- package/dist/cjs/components/Dialog.js +1 -1
- package/dist/cjs/components/DropdownMenu.js +3 -1
- package/dist/cjs/components/DropdownMenu.js.map +1 -1
- package/dist/cjs/components/Input.js +4 -2
- package/dist/cjs/components/Input.js.map +1 -1
- package/dist/cjs/components/Label.js +2 -2
- package/dist/cjs/components/MultiEmailInput.js +4 -2
- package/dist/cjs/components/MultiEmailInput.js.map +1 -1
- package/dist/cjs/components/RadioGroup.js +4 -2
- package/dist/cjs/components/RadioGroup.js.map +1 -1
- package/dist/cjs/components/Select.js +7 -6
- package/dist/cjs/components/Select.js.map +1 -1
- package/dist/cjs/components/Slider.js +4 -2
- package/dist/cjs/components/Slider.js.map +1 -1
- package/dist/cjs/components/Stepper.js +1 -1
- package/dist/cjs/components/Switch.js +4 -2
- package/dist/cjs/components/Switch.js.map +1 -1
- package/dist/cjs/components/Tabs.js +2 -2
- package/dist/cjs/components/Textarea.js +4 -2
- package/dist/cjs/components/Textarea.js.map +1 -1
- package/dist/cjs/components/TimePicker.js +4 -2
- package/dist/cjs/components/TimePicker.js.map +1 -1
- package/dist/cjs/components/Toastr.js +1 -1
- package/dist/cjs/components/TreeSelect.js +3 -3
- package/dist/cjs/components/index.js +23 -22
- package/dist/cjs/components/index.js.map +1 -1
- package/dist/cjs/fieldIds-DiVU6GVS.js +14 -0
- package/dist/cjs/fieldIds-DiVU6GVS.js.map +1 -0
- package/dist/cjs/formik/BlockNavigation.js +1 -1
- package/dist/cjs/formik/Checkbox.js +4 -2
- package/dist/cjs/formik/Checkbox.js.map +1 -1
- package/dist/cjs/formik/Input.js +4 -2
- package/dist/cjs/formik/Input.js.map +1 -1
- package/dist/cjs/formik/MultiEmailInput.js +4 -2
- package/dist/cjs/formik/MultiEmailInput.js.map +1 -1
- package/dist/cjs/formik/RadioGroup.js +4 -2
- package/dist/cjs/formik/RadioGroup.js.map +1 -1
- package/dist/cjs/formik/Select.js +7 -6
- package/dist/cjs/formik/Select.js.map +1 -1
- package/dist/cjs/formik/Slider.js +4 -2
- package/dist/cjs/formik/Slider.js.map +1 -1
- package/dist/cjs/formik/Switch.js +4 -2
- package/dist/cjs/formik/Switch.js.map +1 -1
- package/dist/cjs/formik/Textarea.js +4 -2
- package/dist/cjs/formik/Textarea.js.map +1 -1
- package/dist/cjs/formik/TreeSelect.js +3 -3
- package/dist/cjs/formik/index.js +16 -15
- package/dist/cjs/formik/index.js.map +1 -1
- package/dist/cjs/hyphenize-BTrVNVv3.js +13 -0
- package/dist/cjs/hyphenize-BTrVNVv3.js.map +1 -0
- package/dist/cjs/index.js +23 -22
- package/dist/cjs/index.js.map +1 -1
- package/dist/cjs/primitives/AlertDialog.js +6 -38
- package/dist/cjs/primitives/AlertDialog.js.map +1 -1
- package/dist/cjs/primitives/Combobox.js +2 -2
- package/dist/cjs/primitives/Field.js +1 -1
- package/dist/cjs/primitives/index.js +2 -2
- package/dist/components/Avatar.js +1 -1
- package/dist/components/Checkbox/Checkbox.d.ts +2 -0
- package/dist/components/Checkbox.js +4 -2
- package/dist/components/Checkbox.js.map +1 -1
- package/dist/components/DataTable.js +2 -1
- package/dist/components/DataTable.js.map +1 -1
- package/dist/components/DatePicker/DatePickerField.d.ts +1 -0
- package/dist/components/DatePicker/DatePickerTrigger.d.ts +1 -0
- package/dist/components/DatePicker/types.d.ts +2 -0
- package/dist/components/DatePicker.js +4 -2
- package/dist/components/DatePicker.js.map +1 -1
- package/dist/components/Dialog.js +1 -1
- package/dist/components/DropdownMenu.js +3 -1
- package/dist/components/DropdownMenu.js.map +1 -1
- package/dist/components/Input/Input.d.ts +2 -0
- package/dist/components/Input.js +4 -2
- package/dist/components/Input.js.map +1 -1
- package/dist/components/Label.js +2 -2
- package/dist/components/MultiEmailInput/types.d.ts +2 -0
- package/dist/components/MultiEmailInput.js +4 -2
- package/dist/components/MultiEmailInput.js.map +1 -1
- package/dist/components/RadioGroup/RadioGroup.d.ts +4 -0
- package/dist/components/RadioGroup.js +4 -2
- package/dist/components/RadioGroup.js.map +1 -1
- package/dist/components/Select/MultiSelectCombobox.types.d.ts +6 -0
- package/dist/components/Select/SelectAnchor.d.ts +19 -1
- package/dist/components/Select/SelectCombobox.types.d.ts +12 -2
- package/dist/components/Select/SelectFieldWrapper.d.ts +7 -1
- package/dist/components/Select/constants.d.ts +1 -0
- package/dist/components/Select/hooks/useCreatableItems.d.ts +3 -1
- package/dist/components/Select/hooks/useMultiSelectState.d.ts +8 -2
- package/dist/components/Select/hooks/useSelectState.d.ts +8 -2
- package/dist/components/Select/types.d.ts +23 -0
- package/dist/components/Select/utils.d.ts +13 -0
- package/dist/components/Select.js +7 -6
- package/dist/components/Select.js.map +1 -1
- package/dist/components/Slider/Slider.d.ts +2 -0
- package/dist/components/Slider.js +4 -2
- package/dist/components/Slider.js.map +1 -1
- package/dist/components/Stepper.js +1 -1
- package/dist/components/Switch/Switch.d.ts +2 -0
- package/dist/components/Switch.js +4 -2
- package/dist/components/Switch.js.map +1 -1
- package/dist/components/Tabs.js +2 -2
- package/dist/components/Textarea/Textarea.d.ts +2 -0
- package/dist/components/Textarea.js +4 -2
- package/dist/components/Textarea.js.map +1 -1
- package/dist/components/TimePicker/types.d.ts +2 -0
- package/dist/components/TimePicker.js +4 -2
- package/dist/components/TimePicker.js.map +1 -1
- package/dist/components/Toastr.js +1 -1
- package/dist/components/TreeSelect.js +3 -3
- package/dist/components/index.js +23 -22
- package/dist/components/index.js.map +1 -1
- package/dist/fieldIds-VpluAAMl.js +11 -0
- package/dist/fieldIds-VpluAAMl.js.map +1 -0
- package/dist/formik/BlockNavigation.js +1 -1
- package/dist/formik/Checkbox.js +4 -2
- package/dist/formik/Checkbox.js.map +1 -1
- package/dist/formik/Input.js +4 -2
- package/dist/formik/Input.js.map +1 -1
- package/dist/formik/MultiEmailInput.js +4 -2
- package/dist/formik/MultiEmailInput.js.map +1 -1
- package/dist/formik/RadioGroup.js +4 -2
- package/dist/formik/RadioGroup.js.map +1 -1
- package/dist/formik/Select.js +7 -6
- package/dist/formik/Select.js.map +1 -1
- package/dist/formik/Slider.js +4 -2
- package/dist/formik/Slider.js.map +1 -1
- package/dist/formik/Switch.js +4 -2
- package/dist/formik/Switch.js.map +1 -1
- package/dist/formik/Textarea.js +4 -2
- package/dist/formik/Textarea.js.map +1 -1
- package/dist/formik/TreeSelect.js +3 -3
- package/dist/formik/index.js +16 -15
- package/dist/formik/index.js.map +1 -1
- package/dist/hyphenize-TRhMI0tl.js +11 -0
- package/dist/hyphenize-TRhMI0tl.js.map +1 -0
- package/dist/index.js +23 -22
- package/dist/index.js.map +1 -1
- package/dist/primitives/AlertDialog.js +6 -38
- package/dist/primitives/AlertDialog.js.map +1 -1
- package/dist/primitives/Combobox.js +2 -2
- package/dist/primitives/Field.js +1 -1
- package/dist/primitives/index.js +2 -2
- package/dist/utils/fieldIds.d.ts +1 -1
- package/dist/utils/hyphenize.d.ts +1 -1
- package/package.json +1 -1
- package/dist/Avatar-ChF94Ken.js.map +0 -1
- package/dist/Checkbox-DiAngQvO.js.map +0 -1
- package/dist/DataTable-CwWARMEv.js.map +0 -1
- package/dist/DatePicker-Uf_h3ohA.js.map +0 -1
- package/dist/Dialog-D8C0-nEo.js.map +0 -1
- package/dist/HelpIcon-CbnRiSjn.js.map +0 -1
- package/dist/Input-CuIurquS.js.map +0 -1
- package/dist/MultiEmailInput-BB334s4C.js.map +0 -1
- package/dist/RadioGroup-CpgVdPzz.js.map +0 -1
- package/dist/Select-YWCfd2p1.js.map +0 -1
- package/dist/SelectFieldWrapper-D98IWsW5.js.map +0 -1
- package/dist/Slider-Bokg8-oi.js.map +0 -1
- package/dist/Stepper-DO7EBWYL.js.map +0 -1
- package/dist/Switch-Am2l2UdV.js.map +0 -1
- package/dist/Tabs-ModAabFc.js.map +0 -1
- package/dist/Textarea-CMGZZ4rL.js.map +0 -1
- package/dist/TimePicker-Ca7iF-a_.js.map +0 -1
- package/dist/Toastr-Cka6pudu.js.map +0 -1
- package/dist/TreeSelect-wYDOZ5yD.js.map +0 -1
- package/dist/cjs/Avatar-DGuMcBnh.js.map +0 -1
- package/dist/cjs/Checkbox-7lX2aMKA.js.map +0 -1
- package/dist/cjs/DataTable-ChgPVrRB.js.map +0 -1
- package/dist/cjs/DatePicker-Czp9QLy0.js.map +0 -1
- package/dist/cjs/Dialog-DNv7j7ts.js.map +0 -1
- package/dist/cjs/HelpIcon-QpZY6Zmc.js.map +0 -1
- package/dist/cjs/Input-lWo0YoZ9.js.map +0 -1
- package/dist/cjs/MultiEmailInput-BlIqzq-o.js.map +0 -1
- package/dist/cjs/RadioGroup-DCEw94Dk.js.map +0 -1
- package/dist/cjs/Select-Bs5Fp3wj.js.map +0 -1
- package/dist/cjs/SelectFieldWrapper-BLVvwUcK.js.map +0 -1
- package/dist/cjs/Slider-CRmd_VMs.js.map +0 -1
- package/dist/cjs/Stepper-BtZG_XmC.js.map +0 -1
- package/dist/cjs/Switch-DY7bdiEz.js.map +0 -1
- package/dist/cjs/Tabs-CA0QAWp0.js.map +0 -1
- package/dist/cjs/Textarea-Cw7Uea82.js.map +0 -1
- package/dist/cjs/TimePicker-DW7OM3IE.js.map +0 -1
- package/dist/cjs/Toastr-E0yLh_MW.js.map +0 -1
- package/dist/cjs/TreeSelect-C9BSJt1d.js.map +0 -1
- package/dist/cjs/hyphenize-B8IGPzjp.js +0 -8
- package/dist/cjs/hyphenize-B8IGPzjp.js.map +0 -1
- package/dist/hyphenize-BU4K8zjb.js +0 -6
- package/dist/hyphenize-BU4K8zjb.js.map +0 -1
|
@@ -1,20 +1,13 @@
|
|
|
1
|
-
import { jsx, jsxs } from 'react/jsx-runtime';
|
|
1
|
+
import { jsx, jsxs, Fragment } from 'react/jsx-runtime';
|
|
2
2
|
import React__default, { useState, useRef, useEffect, useCallback, useMemo, useId, forwardRef } from 'react';
|
|
3
|
-
import {
|
|
4
|
-
import { S as SelectFieldWrapper } from './SelectFieldWrapper-
|
|
3
|
+
import { b as buildTestIdPrefix, a as buildAriaDescribedBy } from './fieldIds-VpluAAMl.js';
|
|
4
|
+
import { S as SelectFieldWrapper } from './SelectFieldWrapper-D370CD4o.js';
|
|
5
5
|
import { c as cn } from './utils-BJnb9o5c.js';
|
|
6
|
-
import { i as ComboboxItem, k as ComboboxList, f as ComboboxEmpty, d as ComboboxCollection, g as ComboboxGroup, j as ComboboxLabel, o as ComboboxTrigger, C as Combobox, b as ComboboxChips, c as ComboboxChipsInput, m as ComboboxTrigger$1, e as ComboboxContent, a as ComboboxChip } from './Combobox-
|
|
6
|
+
import { i as ComboboxItem, k as ComboboxList, f as ComboboxEmpty, d as ComboboxCollection, g as ComboboxGroup, j as ComboboxLabel, o as ComboboxTrigger, C as Combobox, b as ComboboxChips, c as ComboboxChipsInput, m as ComboboxTrigger$1, e as ComboboxContent, h as ComboboxInput, a as ComboboxChip } from './Combobox-NgubHftk.js';
|
|
7
7
|
import { Spinner } from './primitives/Spinner.js';
|
|
8
8
|
import { X } from './x-_o2T3n6D.js';
|
|
9
9
|
import { C as ChevronDown } from './chevron-down-BNi0ntys.js';
|
|
10
10
|
|
|
11
|
-
function buildAriaDescribedBy(error, errorId, helpText, helpTextId) {
|
|
12
|
-
return [error ? errorId : null, helpText ? helpTextId : null].filter(Boolean).join(" ") || void 0;
|
|
13
|
-
}
|
|
14
|
-
function buildTestIdPrefix(dataTestId, label) {
|
|
15
|
-
return dataTestId ?? (label ? hyphenize(label) : void 0);
|
|
16
|
-
}
|
|
17
|
-
|
|
18
11
|
function useAsyncOptions({
|
|
19
12
|
loadOptions,
|
|
20
13
|
defaultOptions = false,
|
|
@@ -111,6 +104,28 @@ function useLazyLoadSentinel({
|
|
|
111
104
|
return sentinelRef;
|
|
112
105
|
}
|
|
113
106
|
|
|
107
|
+
const INPUT_CHANGE_REASON = "input-change";
|
|
108
|
+
const SIZE_CONFIG = {
|
|
109
|
+
small: {
|
|
110
|
+
chips: "min-h-8 md:min-h-7 text-base md:text-xs gap-0.5 px-1 py-0.5",
|
|
111
|
+
input: "text-base md:text-xs",
|
|
112
|
+
chip: "h-4.5 text-[0.6875rem] px-1",
|
|
113
|
+
icon: "size-3.5"
|
|
114
|
+
},
|
|
115
|
+
medium: {
|
|
116
|
+
chips: "min-h-8 text-base md:text-sm gap-1 px-2.5 py-1",
|
|
117
|
+
input: "text-base md:text-sm",
|
|
118
|
+
chip: "h-5.25 text-xs px-1.5",
|
|
119
|
+
icon: "size-4"
|
|
120
|
+
},
|
|
121
|
+
large: {
|
|
122
|
+
chips: "min-h-10 text-base md:text-sm gap-1 px-2.5 py-1.5",
|
|
123
|
+
input: "text-base md:text-sm",
|
|
124
|
+
chip: "h-6 text-xs px-2",
|
|
125
|
+
icon: "size-5"
|
|
126
|
+
}
|
|
127
|
+
};
|
|
128
|
+
|
|
114
129
|
const CREATE_PREFIX = "__create__:";
|
|
115
130
|
const isCreateValue = (val) => typeof val === "string" && val.startsWith(CREATE_PREFIX);
|
|
116
131
|
function useCreatableItems({
|
|
@@ -126,9 +141,11 @@ function useCreatableItems({
|
|
|
126
141
|
}) {
|
|
127
142
|
const [inputValue, setInputValue] = useState("");
|
|
128
143
|
const handleInputValueChange = useCallback(
|
|
129
|
-
(value) => {
|
|
130
|
-
|
|
131
|
-
|
|
144
|
+
(value, details) => {
|
|
145
|
+
const isTyping = details?.reason === INPUT_CHANGE_REASON;
|
|
146
|
+
const nextValue = isTyping ? value : "";
|
|
147
|
+
setInputValue(nextValue);
|
|
148
|
+
if (isTyping) onAsyncInputChange?.(nextValue);
|
|
132
149
|
},
|
|
133
150
|
[onAsyncInputChange]
|
|
134
151
|
);
|
|
@@ -187,6 +204,13 @@ function isOptionGroup(opt) {
|
|
|
187
204
|
return "options" in opt && Array.isArray(opt.options);
|
|
188
205
|
}
|
|
189
206
|
|
|
207
|
+
function assignRef(ref, element) {
|
|
208
|
+
if (typeof ref === "function") {
|
|
209
|
+
ref(element);
|
|
210
|
+
} else if (ref) {
|
|
211
|
+
ref.current = element;
|
|
212
|
+
}
|
|
213
|
+
}
|
|
190
214
|
function normalizeOption(option, getValue, getLabel) {
|
|
191
215
|
if (!getValue && !getLabel) return option;
|
|
192
216
|
return {
|
|
@@ -222,6 +246,16 @@ function toBaseUiItems(options) {
|
|
|
222
246
|
}
|
|
223
247
|
return options.map((o) => o.value);
|
|
224
248
|
}
|
|
249
|
+
function resolveIsSearchable({
|
|
250
|
+
isSearchable,
|
|
251
|
+
searchThreshold,
|
|
252
|
+
optionCount,
|
|
253
|
+
isCountKnown
|
|
254
|
+
}) {
|
|
255
|
+
if (!isSearchable) return false;
|
|
256
|
+
if (searchThreshold === void 0 || !isCountKnown) return true;
|
|
257
|
+
return optionCount >= searchThreshold;
|
|
258
|
+
}
|
|
225
259
|
function computeEffectiveItems(children, baseUiItems, showCreateOption, isGrouped, trimmedInput) {
|
|
226
260
|
if (children) return void 0;
|
|
227
261
|
const createValue = showCreateOption ? `${CREATE_PREFIX}${trimmedInput}` : null;
|
|
@@ -269,27 +303,6 @@ function useMultiSelectOptions(props) {
|
|
|
269
303
|
};
|
|
270
304
|
}
|
|
271
305
|
|
|
272
|
-
const SIZE_CONFIG = {
|
|
273
|
-
small: {
|
|
274
|
-
chips: "min-h-8 md:min-h-7 text-base md:text-xs gap-0.5 px-1 py-0.5",
|
|
275
|
-
input: "text-base md:text-xs",
|
|
276
|
-
chip: "h-4.5 text-[0.6875rem] px-1",
|
|
277
|
-
icon: "size-3.5"
|
|
278
|
-
},
|
|
279
|
-
medium: {
|
|
280
|
-
chips: "min-h-8 text-base md:text-sm gap-1 px-2.5 py-1",
|
|
281
|
-
input: "text-base md:text-sm",
|
|
282
|
-
chip: "h-5.25 text-xs px-1.5",
|
|
283
|
-
icon: "size-4"
|
|
284
|
-
},
|
|
285
|
-
large: {
|
|
286
|
-
chips: "min-h-10 text-base md:text-sm gap-1 px-2.5 py-1.5",
|
|
287
|
-
input: "text-base md:text-sm",
|
|
288
|
-
chip: "h-6 text-xs px-2",
|
|
289
|
-
icon: "size-5"
|
|
290
|
-
}
|
|
291
|
-
};
|
|
292
|
-
|
|
293
306
|
const defaultFormatCreateLabel$1 = (v) => `Create "${v}"`;
|
|
294
307
|
function useSelectState(props) {
|
|
295
308
|
const {
|
|
@@ -310,7 +323,11 @@ function useSelectState(props) {
|
|
|
310
323
|
isClearable = false,
|
|
311
324
|
isDisabled = false,
|
|
312
325
|
required = false,
|
|
313
|
-
isSearchable = true,
|
|
326
|
+
isSearchable: isSearchableProp = true,
|
|
327
|
+
searchPosition = "trigger",
|
|
328
|
+
searchPlaceholder = "Search...",
|
|
329
|
+
searchThreshold,
|
|
330
|
+
isAsyncLoadOptionEnabled = false,
|
|
314
331
|
autoHighlight = true,
|
|
315
332
|
onOpenChange,
|
|
316
333
|
children
|
|
@@ -320,6 +337,7 @@ function useSelectState(props) {
|
|
|
320
337
|
const id = idProp ?? generatedId;
|
|
321
338
|
const errorId = `error_${id}`;
|
|
322
339
|
const helpTextId = `helpText_${id}`;
|
|
340
|
+
const labelId = `label_${id}`;
|
|
323
341
|
const sizeConfig = SIZE_CONFIG[size];
|
|
324
342
|
const isControlled = valueProp !== void 0;
|
|
325
343
|
const [internalValue, setInternalValue] = useState(
|
|
@@ -349,9 +367,11 @@ function useSelectState(props) {
|
|
|
349
367
|
const [inputValue, setInputValueState] = useState("");
|
|
350
368
|
const trimmedInput = inputValue.trim();
|
|
351
369
|
const combinedHandleInputValueChange = useCallback(
|
|
352
|
-
(value) => {
|
|
353
|
-
|
|
354
|
-
|
|
370
|
+
(value, details) => {
|
|
371
|
+
const isTyping = details?.reason === INPUT_CHANGE_REASON;
|
|
372
|
+
const nextValue = isTyping ? value : "";
|
|
373
|
+
setInputValueState(nextValue);
|
|
374
|
+
if (isTyping && opt.isAsync) opt.handleAsyncInputChange(nextValue);
|
|
355
375
|
},
|
|
356
376
|
[opt.isAsync, opt.handleAsyncInputChange]
|
|
357
377
|
);
|
|
@@ -401,6 +421,12 @@ function useSelectState(props) {
|
|
|
401
421
|
);
|
|
402
422
|
const testIdPrefix = buildTestIdPrefix(dataTestId, label);
|
|
403
423
|
const showClearButton = isClearable && !!currentValue && !isDisabled;
|
|
424
|
+
const isSearchable = resolveIsSearchable({
|
|
425
|
+
isSearchable: isSearchableProp,
|
|
426
|
+
searchThreshold,
|
|
427
|
+
optionCount: opt.flatOptions.length,
|
|
428
|
+
isCountKnown: !opt.isAsync && !isCreatable && !isAsyncLoadOptionEnabled
|
|
429
|
+
});
|
|
404
430
|
const flatOptionsMap = useMemo(
|
|
405
431
|
() => new Map(opt.flatOptions.map((o) => [o.value, o])),
|
|
406
432
|
[opt.flatOptions]
|
|
@@ -439,6 +465,7 @@ function useSelectState(props) {
|
|
|
439
465
|
id,
|
|
440
466
|
errorId,
|
|
441
467
|
helpTextId,
|
|
468
|
+
labelId,
|
|
442
469
|
sizeConfig,
|
|
443
470
|
isControlled,
|
|
444
471
|
currentValue,
|
|
@@ -461,6 +488,9 @@ function useSelectState(props) {
|
|
|
461
488
|
isDisabled,
|
|
462
489
|
required,
|
|
463
490
|
isSearchable,
|
|
491
|
+
searchPosition,
|
|
492
|
+
searchPlaceholder,
|
|
493
|
+
inputValue,
|
|
464
494
|
autoHighlight,
|
|
465
495
|
onOpenChange,
|
|
466
496
|
isClearable
|
|
@@ -483,6 +513,11 @@ function useMultiSelectState(props) {
|
|
|
483
513
|
onCreateOption,
|
|
484
514
|
formatCreateLabel = defaultFormatCreateLabel,
|
|
485
515
|
formatOptionLabel,
|
|
516
|
+
isSearchable: isSearchableProp = true,
|
|
517
|
+
searchPosition = "trigger",
|
|
518
|
+
searchPlaceholder = "Search...",
|
|
519
|
+
searchThreshold,
|
|
520
|
+
isAsyncLoadOptionEnabled = false,
|
|
486
521
|
children
|
|
487
522
|
} = props;
|
|
488
523
|
const opt = useMultiSelectOptions(props);
|
|
@@ -490,7 +525,14 @@ function useMultiSelectState(props) {
|
|
|
490
525
|
const id = idProp ?? generatedId;
|
|
491
526
|
const errorId = `error_${id}`;
|
|
492
527
|
const helpTextId = `helpText_${id}`;
|
|
528
|
+
const labelId = `label_${id}`;
|
|
493
529
|
const sizeConfig = SIZE_CONFIG[size];
|
|
530
|
+
const isSearchable = resolveIsSearchable({
|
|
531
|
+
isSearchable: isSearchableProp,
|
|
532
|
+
searchThreshold,
|
|
533
|
+
optionCount: opt.flatOptions.length,
|
|
534
|
+
isCountKnown: !opt.isAsync && !isCreatable && !isAsyncLoadOptionEnabled
|
|
535
|
+
});
|
|
494
536
|
const isControlled = valueProp !== void 0;
|
|
495
537
|
const [internalValue, setInternalValue] = useState(
|
|
496
538
|
defaultValue ?? []
|
|
@@ -555,9 +597,13 @@ function useMultiSelectState(props) {
|
|
|
555
597
|
id,
|
|
556
598
|
errorId,
|
|
557
599
|
helpTextId,
|
|
600
|
+
labelId,
|
|
558
601
|
sizeConfig,
|
|
559
602
|
isControlled,
|
|
560
603
|
selectedValues,
|
|
604
|
+
isSearchable,
|
|
605
|
+
searchPosition,
|
|
606
|
+
searchPlaceholder,
|
|
561
607
|
effectiveItems,
|
|
562
608
|
creatableFilter,
|
|
563
609
|
handleInputValueChange,
|
|
@@ -649,7 +695,7 @@ function MultiSelectDropdown({
|
|
|
649
695
|
{
|
|
650
696
|
ref: loaderCallbackRef,
|
|
651
697
|
className: "flex w-full items-center justify-center py-3",
|
|
652
|
-
"data-testid":
|
|
698
|
+
"data-testid": `${testIdPrefix}-lazy-loader`,
|
|
653
699
|
children: /* @__PURE__ */ jsx(Spinner, {})
|
|
654
700
|
}
|
|
655
701
|
)
|
|
@@ -658,9 +704,12 @@ function MultiSelectDropdown({
|
|
|
658
704
|
);
|
|
659
705
|
}
|
|
660
706
|
|
|
707
|
+
const omitUndefined = (props) => Object.fromEntries(
|
|
708
|
+
Object.entries(props).filter(([, value]) => value !== void 0)
|
|
709
|
+
);
|
|
661
710
|
const SelectAnchor = forwardRef(
|
|
662
|
-
({
|
|
663
|
-
if (
|
|
711
|
+
({ renderAsTrigger, className, dataTestId, triggerFieldProps, children }, ref) => {
|
|
712
|
+
if (!renderAsTrigger) {
|
|
664
713
|
return /* @__PURE__ */ jsx(
|
|
665
714
|
"div",
|
|
666
715
|
{
|
|
@@ -671,15 +720,21 @@ const SelectAnchor = forwardRef(
|
|
|
671
720
|
}
|
|
672
721
|
);
|
|
673
722
|
}
|
|
723
|
+
const { id, ...ariaProps } = triggerFieldProps ?? {};
|
|
674
724
|
return /* @__PURE__ */ jsx(
|
|
675
725
|
ComboboxTrigger,
|
|
676
726
|
{
|
|
677
727
|
nativeButton: false,
|
|
678
|
-
|
|
728
|
+
...id ? { id } : {},
|
|
729
|
+
render: ({ ref: baseUiRef, ...props }) => /* @__PURE__ */ jsx(
|
|
679
730
|
"div",
|
|
680
731
|
{
|
|
681
732
|
...props,
|
|
682
|
-
|
|
733
|
+
...omitUndefined(ariaProps),
|
|
734
|
+
ref: (element) => {
|
|
735
|
+
assignRef(baseUiRef, element);
|
|
736
|
+
assignRef(ref, element);
|
|
737
|
+
},
|
|
683
738
|
className,
|
|
684
739
|
...dataTestId ? { "data-testid": dataTestId } : {}
|
|
685
740
|
}
|
|
@@ -695,11 +750,15 @@ const SelectCombobox = forwardRef(
|
|
|
695
750
|
({
|
|
696
751
|
name,
|
|
697
752
|
id,
|
|
753
|
+
labelId,
|
|
698
754
|
effectiveItems,
|
|
699
755
|
labelForValue,
|
|
700
756
|
renderOption,
|
|
701
757
|
renderTrigger,
|
|
702
758
|
isSearchable,
|
|
759
|
+
searchPosition,
|
|
760
|
+
searchPlaceholder,
|
|
761
|
+
inputValue,
|
|
703
762
|
isAsync,
|
|
704
763
|
isCreatable,
|
|
705
764
|
creatableFilter,
|
|
@@ -723,6 +782,20 @@ const SelectCombobox = forwardRef(
|
|
|
723
782
|
children
|
|
724
783
|
}, ref) => {
|
|
725
784
|
const [anchorEl, setAnchorEl] = useState(null);
|
|
785
|
+
const isContentSearch = isSearchable && searchPosition === "content";
|
|
786
|
+
const renderTriggerInput = searchPosition !== "content";
|
|
787
|
+
const isTriggerSearch = isSearchable && renderTriggerInput;
|
|
788
|
+
const useTriggerAnchor = !isTriggerSearch;
|
|
789
|
+
const showValue = !!currentValue && (!isTriggerSearch || inputValue === "");
|
|
790
|
+
const showPlaceholder = !currentValue && !isTriggerSearch;
|
|
791
|
+
const setTriggerEl = useCallback(
|
|
792
|
+
(element) => {
|
|
793
|
+
setAnchorEl(element);
|
|
794
|
+
if (renderTriggerInput) return;
|
|
795
|
+
assignRef(ref, element);
|
|
796
|
+
},
|
|
797
|
+
[ref, renderTriggerInput]
|
|
798
|
+
);
|
|
726
799
|
const handleClearClick = useCallback(
|
|
727
800
|
(event) => {
|
|
728
801
|
event.stopPropagation();
|
|
@@ -744,7 +817,8 @@ const SelectCombobox = forwardRef(
|
|
|
744
817
|
} : {},
|
|
745
818
|
value: currentValue,
|
|
746
819
|
onValueChange: handleValueChange,
|
|
747
|
-
|
|
820
|
+
inputValue,
|
|
821
|
+
onInputValueChange: handleInputValueChange,
|
|
748
822
|
onOpenChange,
|
|
749
823
|
disabled: isDisabled,
|
|
750
824
|
autoHighlight,
|
|
@@ -752,10 +826,17 @@ const SelectCombobox = forwardRef(
|
|
|
752
826
|
/* @__PURE__ */ jsx(
|
|
753
827
|
SelectAnchor,
|
|
754
828
|
{
|
|
755
|
-
ref:
|
|
756
|
-
isSearchable,
|
|
829
|
+
ref: setTriggerEl,
|
|
757
830
|
dataTestId: testIdPrefix,
|
|
758
|
-
|
|
831
|
+
renderAsTrigger: useTriggerAnchor,
|
|
832
|
+
className: useTriggerAnchor ? "cursor-pointer" : void 0,
|
|
833
|
+
triggerFieldProps: renderTriggerInput ? void 0 : {
|
|
834
|
+
id,
|
|
835
|
+
"aria-labelledby": labelId,
|
|
836
|
+
"aria-describedby": ariaDescribedBy,
|
|
837
|
+
"aria-required": required || void 0,
|
|
838
|
+
"aria-invalid": !!error || void 0
|
|
839
|
+
},
|
|
759
840
|
children: /* @__PURE__ */ jsxs(
|
|
760
841
|
ComboboxChips,
|
|
761
842
|
{
|
|
@@ -766,24 +847,28 @@ const SelectCombobox = forwardRef(
|
|
|
766
847
|
),
|
|
767
848
|
...testIdPrefix ? { "data-testid": `${testIdPrefix}-select-container` } : {},
|
|
768
849
|
children: [
|
|
769
|
-
|
|
770
|
-
|
|
771
|
-
|
|
772
|
-
|
|
773
|
-
|
|
774
|
-
|
|
775
|
-
|
|
776
|
-
|
|
777
|
-
|
|
778
|
-
|
|
779
|
-
|
|
780
|
-
|
|
781
|
-
|
|
782
|
-
|
|
783
|
-
|
|
784
|
-
|
|
785
|
-
|
|
786
|
-
|
|
850
|
+
/* @__PURE__ */ jsxs("div", { className: "grid min-w-0 flex-1 items-center [&>*]:col-start-1 [&>*]:row-start-1", children: [
|
|
851
|
+
showValue && /* @__PURE__ */ jsx("span", { className: "min-w-0 truncate", children: renderTrigger(currentValue) }),
|
|
852
|
+
showPlaceholder && /* @__PURE__ */ jsx("span", { className: "min-w-0 truncate text-muted-foreground", children: placeholder }),
|
|
853
|
+
renderTriggerInput && /* @__PURE__ */ jsx(
|
|
854
|
+
ComboboxChipsInput,
|
|
855
|
+
{
|
|
856
|
+
ref,
|
|
857
|
+
id,
|
|
858
|
+
placeholder: isTriggerSearch && !currentValue ? placeholder : void 0,
|
|
859
|
+
"aria-invalid": !!error || void 0,
|
|
860
|
+
"aria-describedby": ariaDescribedBy,
|
|
861
|
+
"aria-required": required || void 0,
|
|
862
|
+
className: cn(
|
|
863
|
+
sizeConfig.input,
|
|
864
|
+
"w-full min-w-0",
|
|
865
|
+
!isSearchable && "w-0 overflow-hidden p-0 opacity-0"
|
|
866
|
+
),
|
|
867
|
+
disabled: isDisabled,
|
|
868
|
+
...testIdPrefix ? { "data-testid": `${testIdPrefix}-select-input` } : {}
|
|
869
|
+
}
|
|
870
|
+
)
|
|
871
|
+
] }),
|
|
787
872
|
showClearButton && /* @__PURE__ */ jsx(
|
|
788
873
|
"button",
|
|
789
874
|
{
|
|
@@ -795,7 +880,7 @@ const SelectCombobox = forwardRef(
|
|
|
795
880
|
children: /* @__PURE__ */ jsx(X, { className: sizeConfig.icon })
|
|
796
881
|
}
|
|
797
882
|
),
|
|
798
|
-
|
|
883
|
+
isTriggerSearch ? /* @__PURE__ */ jsx(
|
|
799
884
|
ComboboxTrigger$1,
|
|
800
885
|
{
|
|
801
886
|
className: cn(
|
|
@@ -818,15 +903,26 @@ const SelectCombobox = forwardRef(
|
|
|
818
903
|
)
|
|
819
904
|
}
|
|
820
905
|
),
|
|
821
|
-
/* @__PURE__ */
|
|
822
|
-
|
|
823
|
-
|
|
824
|
-
|
|
825
|
-
|
|
826
|
-
|
|
827
|
-
|
|
828
|
-
|
|
829
|
-
|
|
906
|
+
/* @__PURE__ */ jsxs(ComboboxContent, { anchor: anchorEl, ...contentProps, children: [
|
|
907
|
+
isContentSearch && /* @__PURE__ */ jsx(
|
|
908
|
+
ComboboxInput,
|
|
909
|
+
{
|
|
910
|
+
showTrigger: false,
|
|
911
|
+
placeholder: searchPlaceholder,
|
|
912
|
+
...labelId ? { "aria-labelledby": labelId } : { "aria-label": searchPlaceholder },
|
|
913
|
+
...testIdPrefix ? { "data-testid": `${testIdPrefix}-select-input` } : {}
|
|
914
|
+
}
|
|
915
|
+
),
|
|
916
|
+
/* @__PURE__ */ jsx(
|
|
917
|
+
MultiSelectDropdown,
|
|
918
|
+
{
|
|
919
|
+
...dropdownProps,
|
|
920
|
+
renderOption,
|
|
921
|
+
testIdPrefix,
|
|
922
|
+
children
|
|
923
|
+
}
|
|
924
|
+
)
|
|
925
|
+
] })
|
|
830
926
|
]
|
|
831
927
|
}
|
|
832
928
|
)
|
|
@@ -839,10 +935,13 @@ const MultiSelectCombobox = forwardRef(
|
|
|
839
935
|
({
|
|
840
936
|
name,
|
|
841
937
|
id,
|
|
938
|
+
labelId,
|
|
842
939
|
effectiveItems,
|
|
843
940
|
labelForValue,
|
|
844
941
|
renderOption,
|
|
845
942
|
isSearchable,
|
|
943
|
+
searchPosition,
|
|
944
|
+
searchPlaceholder,
|
|
846
945
|
isAsync,
|
|
847
946
|
isCreatable,
|
|
848
947
|
creatableFilter,
|
|
@@ -869,6 +968,18 @@ const MultiSelectCombobox = forwardRef(
|
|
|
869
968
|
children
|
|
870
969
|
}, ref) => {
|
|
871
970
|
const [anchorEl, setAnchorEl] = useState(null);
|
|
971
|
+
const isContentSearch = isSearchable && searchPosition === "content";
|
|
972
|
+
const renderTriggerInput = searchPosition !== "content";
|
|
973
|
+
const isTriggerSearch = isSearchable && renderTriggerInput;
|
|
974
|
+
const useTriggerAnchor = !isTriggerSearch;
|
|
975
|
+
const setTriggerEl = useCallback(
|
|
976
|
+
(element) => {
|
|
977
|
+
setAnchorEl(element);
|
|
978
|
+
if (renderTriggerInput) return;
|
|
979
|
+
assignRef(ref, element);
|
|
980
|
+
},
|
|
981
|
+
[ref, renderTriggerInput]
|
|
982
|
+
);
|
|
872
983
|
return (
|
|
873
984
|
// @ts-expect-error — conditional spread creates a union that TS cannot narrow to the Combobox discriminated-union props
|
|
874
985
|
/* @__PURE__ */ jsxs(
|
|
@@ -891,9 +1002,16 @@ const MultiSelectCombobox = forwardRef(
|
|
|
891
1002
|
/* @__PURE__ */ jsx(
|
|
892
1003
|
SelectAnchor,
|
|
893
1004
|
{
|
|
894
|
-
ref:
|
|
895
|
-
|
|
896
|
-
className:
|
|
1005
|
+
ref: setTriggerEl,
|
|
1006
|
+
renderAsTrigger: useTriggerAnchor,
|
|
1007
|
+
className: useTriggerAnchor ? "cursor-pointer" : void 0,
|
|
1008
|
+
triggerFieldProps: renderTriggerInput ? void 0 : {
|
|
1009
|
+
id,
|
|
1010
|
+
"aria-labelledby": labelId,
|
|
1011
|
+
"aria-describedby": ariaDescribedBy,
|
|
1012
|
+
"aria-required": required || void 0,
|
|
1013
|
+
"aria-invalid": !!error || void 0
|
|
1014
|
+
},
|
|
897
1015
|
children: /* @__PURE__ */ jsxs(
|
|
898
1016
|
ComboboxChips,
|
|
899
1017
|
{
|
|
@@ -905,22 +1023,23 @@ const MultiSelectCombobox = forwardRef(
|
|
|
905
1023
|
),
|
|
906
1024
|
...testIdPrefix ? { "data-testid": `${testIdPrefix}-select-container` } : {},
|
|
907
1025
|
children: [
|
|
908
|
-
selectedValues.map((val) => /* @__PURE__ */ jsx(
|
|
1026
|
+
selectedValues.map((val, index) => /* @__PURE__ */ jsx(
|
|
909
1027
|
ComboboxChip,
|
|
910
1028
|
{
|
|
911
1029
|
className: sizeConfig.chip,
|
|
912
1030
|
showRemove: !hideChipRemove,
|
|
1031
|
+
...renderTriggerInput || isDisabled ? {} : { tabIndex: index === 0 ? 0 : -1 },
|
|
913
1032
|
...testIdPrefix ? { "data-testid": `${testIdPrefix}-chip` } : {},
|
|
914
1033
|
children: renderOption(val)
|
|
915
1034
|
},
|
|
916
1035
|
val
|
|
917
1036
|
)),
|
|
918
|
-
/* @__PURE__ */ jsx(
|
|
1037
|
+
renderTriggerInput ? /* @__PURE__ */ jsx(
|
|
919
1038
|
ComboboxChipsInput,
|
|
920
1039
|
{
|
|
921
1040
|
ref,
|
|
922
1041
|
id,
|
|
923
|
-
placeholder:
|
|
1042
|
+
placeholder: isTriggerSearch && selectedValues.length === 0 ? placeholder : void 0,
|
|
924
1043
|
"aria-invalid": !!error || void 0,
|
|
925
1044
|
"aria-describedby": ariaDescribedBy,
|
|
926
1045
|
"aria-required": required || void 0,
|
|
@@ -931,21 +1050,44 @@ const MultiSelectCombobox = forwardRef(
|
|
|
931
1050
|
disabled: isDisabled,
|
|
932
1051
|
...testIdPrefix ? { "data-testid": `${testIdPrefix}-select-input` } : {}
|
|
933
1052
|
}
|
|
934
|
-
)
|
|
1053
|
+
) : /* @__PURE__ */ jsxs(Fragment, { children: [
|
|
1054
|
+
selectedValues.length === 0 && /* @__PURE__ */ jsx("span", { className: "min-w-0 flex-1 truncate text-muted-foreground", children: placeholder }),
|
|
1055
|
+
/* @__PURE__ */ jsx(
|
|
1056
|
+
ChevronDown,
|
|
1057
|
+
{
|
|
1058
|
+
"aria-hidden": true,
|
|
1059
|
+
className: cn(
|
|
1060
|
+
"pointer-events-none ms-auto shrink-0 text-muted-foreground",
|
|
1061
|
+
sizeConfig.icon
|
|
1062
|
+
)
|
|
1063
|
+
}
|
|
1064
|
+
)
|
|
1065
|
+
] })
|
|
935
1066
|
]
|
|
936
1067
|
}
|
|
937
1068
|
)
|
|
938
1069
|
}
|
|
939
1070
|
),
|
|
940
|
-
/* @__PURE__ */
|
|
941
|
-
|
|
942
|
-
|
|
943
|
-
|
|
944
|
-
|
|
945
|
-
|
|
946
|
-
|
|
947
|
-
|
|
948
|
-
|
|
1071
|
+
/* @__PURE__ */ jsxs(ComboboxContent, { anchor: anchorEl, ...contentProps, children: [
|
|
1072
|
+
isContentSearch && /* @__PURE__ */ jsx(
|
|
1073
|
+
ComboboxInput,
|
|
1074
|
+
{
|
|
1075
|
+
showTrigger: false,
|
|
1076
|
+
placeholder: searchPlaceholder,
|
|
1077
|
+
...labelId ? { "aria-labelledby": labelId } : { "aria-label": searchPlaceholder },
|
|
1078
|
+
...testIdPrefix ? { "data-testid": `${testIdPrefix}-select-input` } : {}
|
|
1079
|
+
}
|
|
1080
|
+
),
|
|
1081
|
+
/* @__PURE__ */ jsx(
|
|
1082
|
+
MultiSelectDropdown,
|
|
1083
|
+
{
|
|
1084
|
+
...dropdownProps,
|
|
1085
|
+
renderOption,
|
|
1086
|
+
testIdPrefix,
|
|
1087
|
+
children
|
|
1088
|
+
}
|
|
1089
|
+
)
|
|
1090
|
+
] })
|
|
949
1091
|
]
|
|
950
1092
|
}
|
|
951
1093
|
)
|
|
@@ -963,6 +1105,7 @@ const SingleSelectInner = forwardRef(
|
|
|
963
1105
|
helpText,
|
|
964
1106
|
errorId,
|
|
965
1107
|
helpTextId,
|
|
1108
|
+
labelId,
|
|
966
1109
|
isDisabled,
|
|
967
1110
|
required,
|
|
968
1111
|
testIdPrefix,
|
|
@@ -971,6 +1114,9 @@ const SingleSelectInner = forwardRef(
|
|
|
971
1114
|
renderOption,
|
|
972
1115
|
renderTrigger,
|
|
973
1116
|
isSearchable,
|
|
1117
|
+
searchPosition,
|
|
1118
|
+
searchPlaceholder,
|
|
1119
|
+
inputValue,
|
|
974
1120
|
isAsync,
|
|
975
1121
|
creatableFilter,
|
|
976
1122
|
isControlled,
|
|
@@ -1004,17 +1150,23 @@ const SingleSelectInner = forwardRef(
|
|
|
1004
1150
|
testIdPrefix,
|
|
1005
1151
|
labelProps: props.labelProps,
|
|
1006
1152
|
className: props.className,
|
|
1153
|
+
labelId,
|
|
1154
|
+
focusTargetOnLabelClick: searchPosition === "content",
|
|
1007
1155
|
children: /* @__PURE__ */ jsx(
|
|
1008
1156
|
SelectCombobox,
|
|
1009
1157
|
{
|
|
1010
1158
|
ref,
|
|
1011
1159
|
name: props.name,
|
|
1012
1160
|
id,
|
|
1161
|
+
labelId: label ? labelId : void 0,
|
|
1013
1162
|
effectiveItems,
|
|
1014
1163
|
labelForValue,
|
|
1015
1164
|
renderOption,
|
|
1016
1165
|
renderTrigger,
|
|
1017
1166
|
isSearchable,
|
|
1167
|
+
searchPosition,
|
|
1168
|
+
searchPlaceholder,
|
|
1169
|
+
inputValue,
|
|
1018
1170
|
isAsync,
|
|
1019
1171
|
isCreatable: props.isCreatable ?? false,
|
|
1020
1172
|
creatableFilter,
|
|
@@ -1066,10 +1218,14 @@ const MultiSelectInner = forwardRef(
|
|
|
1066
1218
|
helpText,
|
|
1067
1219
|
errorId,
|
|
1068
1220
|
helpTextId,
|
|
1221
|
+
labelId,
|
|
1069
1222
|
testIdPrefix,
|
|
1070
1223
|
effectiveItems,
|
|
1071
1224
|
labelForValue,
|
|
1072
1225
|
renderOption,
|
|
1226
|
+
isSearchable,
|
|
1227
|
+
searchPosition,
|
|
1228
|
+
searchPlaceholder,
|
|
1073
1229
|
isAsync,
|
|
1074
1230
|
creatableFilter,
|
|
1075
1231
|
isControlled,
|
|
@@ -1101,16 +1257,21 @@ const MultiSelectInner = forwardRef(
|
|
|
1101
1257
|
testIdPrefix,
|
|
1102
1258
|
labelProps: props.labelProps,
|
|
1103
1259
|
className: props.className,
|
|
1260
|
+
labelId,
|
|
1261
|
+
focusTargetOnLabelClick: searchPosition === "content",
|
|
1104
1262
|
children: /* @__PURE__ */ jsx(
|
|
1105
1263
|
MultiSelectCombobox,
|
|
1106
1264
|
{
|
|
1107
1265
|
ref,
|
|
1108
1266
|
name: props.name,
|
|
1109
1267
|
id,
|
|
1268
|
+
labelId: label ? labelId : void 0,
|
|
1110
1269
|
effectiveItems,
|
|
1111
1270
|
labelForValue,
|
|
1112
1271
|
renderOption,
|
|
1113
|
-
isSearchable
|
|
1272
|
+
isSearchable,
|
|
1273
|
+
searchPosition,
|
|
1274
|
+
searchPlaceholder,
|
|
1114
1275
|
isAsync,
|
|
1115
1276
|
isCreatable: props.isCreatable ?? false,
|
|
1116
1277
|
creatableFilter,
|
|
@@ -1197,4 +1358,4 @@ const Select = forwardRef((props, ref) => {
|
|
|
1197
1358
|
Select.displayName = "Select";
|
|
1198
1359
|
|
|
1199
1360
|
export { Select as S };
|
|
1200
|
-
//# sourceMappingURL=Select-
|
|
1361
|
+
//# sourceMappingURL=Select-ZWR0HFCa.js.map
|