@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
|
@@ -2,10 +2,10 @@
|
|
|
2
2
|
|
|
3
3
|
var jsxRuntime = require('react/jsx-runtime');
|
|
4
4
|
var React = require('react');
|
|
5
|
-
var
|
|
6
|
-
var SelectFieldWrapper = require('./SelectFieldWrapper-
|
|
5
|
+
var fieldIds = require('./fieldIds-DiVU6GVS.js');
|
|
6
|
+
var SelectFieldWrapper = require('./SelectFieldWrapper-CIh_atln.js');
|
|
7
7
|
var utils = require('./utils-BhM0B89p.js');
|
|
8
|
-
var primitives_Combobox = require('./Combobox-
|
|
8
|
+
var primitives_Combobox = require('./Combobox-PAGcNUr6.js');
|
|
9
9
|
var primitives_Spinner = require('./primitives/Spinner.js');
|
|
10
10
|
var x = require('./x-Brw3FJst.js');
|
|
11
11
|
var chevronDown = require('./chevron-down-CPsWSS51.js');
|
|
@@ -14,13 +14,6 @@ function _interopDefault (e) { return e && e.__esModule ? e : { default: e }; }
|
|
|
14
14
|
|
|
15
15
|
var React__default = /*#__PURE__*/_interopDefault(React);
|
|
16
16
|
|
|
17
|
-
function buildAriaDescribedBy(error, errorId, helpText, helpTextId) {
|
|
18
|
-
return [error ? errorId : null, helpText ? helpTextId : null].filter(Boolean).join(" ") || void 0;
|
|
19
|
-
}
|
|
20
|
-
function buildTestIdPrefix(dataTestId, label) {
|
|
21
|
-
return dataTestId ?? (label ? hyphenize.hyphenize(label) : void 0);
|
|
22
|
-
}
|
|
23
|
-
|
|
24
17
|
function useAsyncOptions({
|
|
25
18
|
loadOptions,
|
|
26
19
|
defaultOptions = false,
|
|
@@ -117,6 +110,28 @@ function useLazyLoadSentinel({
|
|
|
117
110
|
return sentinelRef;
|
|
118
111
|
}
|
|
119
112
|
|
|
113
|
+
const INPUT_CHANGE_REASON = "input-change";
|
|
114
|
+
const SIZE_CONFIG = {
|
|
115
|
+
small: {
|
|
116
|
+
chips: "min-h-8 md:min-h-7 text-base md:text-xs gap-0.5 px-1 py-0.5",
|
|
117
|
+
input: "text-base md:text-xs",
|
|
118
|
+
chip: "h-4.5 text-[0.6875rem] px-1",
|
|
119
|
+
icon: "size-3.5"
|
|
120
|
+
},
|
|
121
|
+
medium: {
|
|
122
|
+
chips: "min-h-8 text-base md:text-sm gap-1 px-2.5 py-1",
|
|
123
|
+
input: "text-base md:text-sm",
|
|
124
|
+
chip: "h-5.25 text-xs px-1.5",
|
|
125
|
+
icon: "size-4"
|
|
126
|
+
},
|
|
127
|
+
large: {
|
|
128
|
+
chips: "min-h-10 text-base md:text-sm gap-1 px-2.5 py-1.5",
|
|
129
|
+
input: "text-base md:text-sm",
|
|
130
|
+
chip: "h-6 text-xs px-2",
|
|
131
|
+
icon: "size-5"
|
|
132
|
+
}
|
|
133
|
+
};
|
|
134
|
+
|
|
120
135
|
const CREATE_PREFIX = "__create__:";
|
|
121
136
|
const isCreateValue = (val) => typeof val === "string" && val.startsWith(CREATE_PREFIX);
|
|
122
137
|
function useCreatableItems({
|
|
@@ -132,9 +147,11 @@ function useCreatableItems({
|
|
|
132
147
|
}) {
|
|
133
148
|
const [inputValue, setInputValue] = React.useState("");
|
|
134
149
|
const handleInputValueChange = React.useCallback(
|
|
135
|
-
(value) => {
|
|
136
|
-
|
|
137
|
-
|
|
150
|
+
(value, details) => {
|
|
151
|
+
const isTyping = details?.reason === INPUT_CHANGE_REASON;
|
|
152
|
+
const nextValue = isTyping ? value : "";
|
|
153
|
+
setInputValue(nextValue);
|
|
154
|
+
if (isTyping) onAsyncInputChange?.(nextValue);
|
|
138
155
|
},
|
|
139
156
|
[onAsyncInputChange]
|
|
140
157
|
);
|
|
@@ -193,6 +210,13 @@ function isOptionGroup(opt) {
|
|
|
193
210
|
return "options" in opt && Array.isArray(opt.options);
|
|
194
211
|
}
|
|
195
212
|
|
|
213
|
+
function assignRef(ref, element) {
|
|
214
|
+
if (typeof ref === "function") {
|
|
215
|
+
ref(element);
|
|
216
|
+
} else if (ref) {
|
|
217
|
+
ref.current = element;
|
|
218
|
+
}
|
|
219
|
+
}
|
|
196
220
|
function normalizeOption(option, getValue, getLabel) {
|
|
197
221
|
if (!getValue && !getLabel) return option;
|
|
198
222
|
return {
|
|
@@ -228,6 +252,16 @@ function toBaseUiItems(options) {
|
|
|
228
252
|
}
|
|
229
253
|
return options.map((o) => o.value);
|
|
230
254
|
}
|
|
255
|
+
function resolveIsSearchable({
|
|
256
|
+
isSearchable,
|
|
257
|
+
searchThreshold,
|
|
258
|
+
optionCount,
|
|
259
|
+
isCountKnown
|
|
260
|
+
}) {
|
|
261
|
+
if (!isSearchable) return false;
|
|
262
|
+
if (searchThreshold === void 0 || !isCountKnown) return true;
|
|
263
|
+
return optionCount >= searchThreshold;
|
|
264
|
+
}
|
|
231
265
|
function computeEffectiveItems(children, baseUiItems, showCreateOption, isGrouped, trimmedInput) {
|
|
232
266
|
if (children) return void 0;
|
|
233
267
|
const createValue = showCreateOption ? `${CREATE_PREFIX}${trimmedInput}` : null;
|
|
@@ -275,27 +309,6 @@ function useMultiSelectOptions(props) {
|
|
|
275
309
|
};
|
|
276
310
|
}
|
|
277
311
|
|
|
278
|
-
const SIZE_CONFIG = {
|
|
279
|
-
small: {
|
|
280
|
-
chips: "min-h-8 md:min-h-7 text-base md:text-xs gap-0.5 px-1 py-0.5",
|
|
281
|
-
input: "text-base md:text-xs",
|
|
282
|
-
chip: "h-4.5 text-[0.6875rem] px-1",
|
|
283
|
-
icon: "size-3.5"
|
|
284
|
-
},
|
|
285
|
-
medium: {
|
|
286
|
-
chips: "min-h-8 text-base md:text-sm gap-1 px-2.5 py-1",
|
|
287
|
-
input: "text-base md:text-sm",
|
|
288
|
-
chip: "h-5.25 text-xs px-1.5",
|
|
289
|
-
icon: "size-4"
|
|
290
|
-
},
|
|
291
|
-
large: {
|
|
292
|
-
chips: "min-h-10 text-base md:text-sm gap-1 px-2.5 py-1.5",
|
|
293
|
-
input: "text-base md:text-sm",
|
|
294
|
-
chip: "h-6 text-xs px-2",
|
|
295
|
-
icon: "size-5"
|
|
296
|
-
}
|
|
297
|
-
};
|
|
298
|
-
|
|
299
312
|
const defaultFormatCreateLabel$1 = (v) => `Create "${v}"`;
|
|
300
313
|
function useSelectState(props) {
|
|
301
314
|
const {
|
|
@@ -316,7 +329,11 @@ function useSelectState(props) {
|
|
|
316
329
|
isClearable = false,
|
|
317
330
|
isDisabled = false,
|
|
318
331
|
required = false,
|
|
319
|
-
isSearchable = true,
|
|
332
|
+
isSearchable: isSearchableProp = true,
|
|
333
|
+
searchPosition = "trigger",
|
|
334
|
+
searchPlaceholder = "Search...",
|
|
335
|
+
searchThreshold,
|
|
336
|
+
isAsyncLoadOptionEnabled = false,
|
|
320
337
|
autoHighlight = true,
|
|
321
338
|
onOpenChange,
|
|
322
339
|
children
|
|
@@ -326,6 +343,7 @@ function useSelectState(props) {
|
|
|
326
343
|
const id = idProp ?? generatedId;
|
|
327
344
|
const errorId = `error_${id}`;
|
|
328
345
|
const helpTextId = `helpText_${id}`;
|
|
346
|
+
const labelId = `label_${id}`;
|
|
329
347
|
const sizeConfig = SIZE_CONFIG[size];
|
|
330
348
|
const isControlled = valueProp !== void 0;
|
|
331
349
|
const [internalValue, setInternalValue] = React.useState(
|
|
@@ -355,9 +373,11 @@ function useSelectState(props) {
|
|
|
355
373
|
const [inputValue, setInputValueState] = React.useState("");
|
|
356
374
|
const trimmedInput = inputValue.trim();
|
|
357
375
|
const combinedHandleInputValueChange = React.useCallback(
|
|
358
|
-
(value) => {
|
|
359
|
-
|
|
360
|
-
|
|
376
|
+
(value, details) => {
|
|
377
|
+
const isTyping = details?.reason === INPUT_CHANGE_REASON;
|
|
378
|
+
const nextValue = isTyping ? value : "";
|
|
379
|
+
setInputValueState(nextValue);
|
|
380
|
+
if (isTyping && opt.isAsync) opt.handleAsyncInputChange(nextValue);
|
|
361
381
|
},
|
|
362
382
|
[opt.isAsync, opt.handleAsyncInputChange]
|
|
363
383
|
);
|
|
@@ -399,14 +419,20 @@ function useSelectState(props) {
|
|
|
399
419
|
},
|
|
400
420
|
[]
|
|
401
421
|
);
|
|
402
|
-
const ariaDescribedBy = buildAriaDescribedBy(
|
|
422
|
+
const ariaDescribedBy = fieldIds.buildAriaDescribedBy(
|
|
403
423
|
error,
|
|
404
424
|
errorId,
|
|
405
425
|
helpText,
|
|
406
426
|
helpTextId
|
|
407
427
|
);
|
|
408
|
-
const testIdPrefix = buildTestIdPrefix(dataTestId, label);
|
|
428
|
+
const testIdPrefix = fieldIds.buildTestIdPrefix(dataTestId, label);
|
|
409
429
|
const showClearButton = isClearable && !!currentValue && !isDisabled;
|
|
430
|
+
const isSearchable = resolveIsSearchable({
|
|
431
|
+
isSearchable: isSearchableProp,
|
|
432
|
+
searchThreshold,
|
|
433
|
+
optionCount: opt.flatOptions.length,
|
|
434
|
+
isCountKnown: !opt.isAsync && !isCreatable && !isAsyncLoadOptionEnabled
|
|
435
|
+
});
|
|
410
436
|
const flatOptionsMap = React.useMemo(
|
|
411
437
|
() => new Map(opt.flatOptions.map((o) => [o.value, o])),
|
|
412
438
|
[opt.flatOptions]
|
|
@@ -445,6 +471,7 @@ function useSelectState(props) {
|
|
|
445
471
|
id,
|
|
446
472
|
errorId,
|
|
447
473
|
helpTextId,
|
|
474
|
+
labelId,
|
|
448
475
|
sizeConfig,
|
|
449
476
|
isControlled,
|
|
450
477
|
currentValue,
|
|
@@ -467,6 +494,9 @@ function useSelectState(props) {
|
|
|
467
494
|
isDisabled,
|
|
468
495
|
required,
|
|
469
496
|
isSearchable,
|
|
497
|
+
searchPosition,
|
|
498
|
+
searchPlaceholder,
|
|
499
|
+
inputValue,
|
|
470
500
|
autoHighlight,
|
|
471
501
|
onOpenChange,
|
|
472
502
|
isClearable
|
|
@@ -489,6 +519,11 @@ function useMultiSelectState(props) {
|
|
|
489
519
|
onCreateOption,
|
|
490
520
|
formatCreateLabel = defaultFormatCreateLabel,
|
|
491
521
|
formatOptionLabel,
|
|
522
|
+
isSearchable: isSearchableProp = true,
|
|
523
|
+
searchPosition = "trigger",
|
|
524
|
+
searchPlaceholder = "Search...",
|
|
525
|
+
searchThreshold,
|
|
526
|
+
isAsyncLoadOptionEnabled = false,
|
|
492
527
|
children
|
|
493
528
|
} = props;
|
|
494
529
|
const opt = useMultiSelectOptions(props);
|
|
@@ -496,7 +531,14 @@ function useMultiSelectState(props) {
|
|
|
496
531
|
const id = idProp ?? generatedId;
|
|
497
532
|
const errorId = `error_${id}`;
|
|
498
533
|
const helpTextId = `helpText_${id}`;
|
|
534
|
+
const labelId = `label_${id}`;
|
|
499
535
|
const sizeConfig = SIZE_CONFIG[size];
|
|
536
|
+
const isSearchable = resolveIsSearchable({
|
|
537
|
+
isSearchable: isSearchableProp,
|
|
538
|
+
searchThreshold,
|
|
539
|
+
optionCount: opt.flatOptions.length,
|
|
540
|
+
isCountKnown: !opt.isAsync && !isCreatable && !isAsyncLoadOptionEnabled
|
|
541
|
+
});
|
|
500
542
|
const isControlled = valueProp !== void 0;
|
|
501
543
|
const [internalValue, setInternalValue] = React.useState(
|
|
502
544
|
defaultValue ?? []
|
|
@@ -526,13 +568,13 @@ function useMultiSelectState(props) {
|
|
|
526
568
|
onAsyncInputChange: opt.isAsync ? opt.handleAsyncInputChange : void 0,
|
|
527
569
|
children
|
|
528
570
|
});
|
|
529
|
-
const ariaDescribedBy = buildAriaDescribedBy(
|
|
571
|
+
const ariaDescribedBy = fieldIds.buildAriaDescribedBy(
|
|
530
572
|
error,
|
|
531
573
|
errorId,
|
|
532
574
|
helpText,
|
|
533
575
|
helpTextId
|
|
534
576
|
);
|
|
535
|
-
const testIdPrefix = buildTestIdPrefix(dataTestId, label);
|
|
577
|
+
const testIdPrefix = fieldIds.buildTestIdPrefix(dataTestId, label);
|
|
536
578
|
const flatOptionsMap = React.useMemo(
|
|
537
579
|
() => new Map(opt.flatOptions.map((o) => [o.value, o])),
|
|
538
580
|
[opt.flatOptions]
|
|
@@ -561,9 +603,13 @@ function useMultiSelectState(props) {
|
|
|
561
603
|
id,
|
|
562
604
|
errorId,
|
|
563
605
|
helpTextId,
|
|
606
|
+
labelId,
|
|
564
607
|
sizeConfig,
|
|
565
608
|
isControlled,
|
|
566
609
|
selectedValues,
|
|
610
|
+
isSearchable,
|
|
611
|
+
searchPosition,
|
|
612
|
+
searchPlaceholder,
|
|
567
613
|
effectiveItems,
|
|
568
614
|
creatableFilter,
|
|
569
615
|
handleInputValueChange,
|
|
@@ -655,7 +701,7 @@ function MultiSelectDropdown({
|
|
|
655
701
|
{
|
|
656
702
|
ref: loaderCallbackRef,
|
|
657
703
|
className: "flex w-full items-center justify-center py-3",
|
|
658
|
-
"data-testid":
|
|
704
|
+
"data-testid": `${testIdPrefix}-lazy-loader`,
|
|
659
705
|
children: /* @__PURE__ */ jsxRuntime.jsx(primitives_Spinner.Spinner, {})
|
|
660
706
|
}
|
|
661
707
|
)
|
|
@@ -664,9 +710,12 @@ function MultiSelectDropdown({
|
|
|
664
710
|
);
|
|
665
711
|
}
|
|
666
712
|
|
|
713
|
+
const omitUndefined = (props) => Object.fromEntries(
|
|
714
|
+
Object.entries(props).filter(([, value]) => value !== void 0)
|
|
715
|
+
);
|
|
667
716
|
const SelectAnchor = React.forwardRef(
|
|
668
|
-
({
|
|
669
|
-
if (
|
|
717
|
+
({ renderAsTrigger, className, dataTestId, triggerFieldProps, children }, ref) => {
|
|
718
|
+
if (!renderAsTrigger) {
|
|
670
719
|
return /* @__PURE__ */ jsxRuntime.jsx(
|
|
671
720
|
"div",
|
|
672
721
|
{
|
|
@@ -677,15 +726,21 @@ const SelectAnchor = React.forwardRef(
|
|
|
677
726
|
}
|
|
678
727
|
);
|
|
679
728
|
}
|
|
729
|
+
const { id, ...ariaProps } = triggerFieldProps ?? {};
|
|
680
730
|
return /* @__PURE__ */ jsxRuntime.jsx(
|
|
681
731
|
primitives_Combobox.ComboboxTrigger$1,
|
|
682
732
|
{
|
|
683
733
|
nativeButton: false,
|
|
684
|
-
|
|
734
|
+
...id ? { id } : {},
|
|
735
|
+
render: ({ ref: baseUiRef, ...props }) => /* @__PURE__ */ jsxRuntime.jsx(
|
|
685
736
|
"div",
|
|
686
737
|
{
|
|
687
738
|
...props,
|
|
688
|
-
|
|
739
|
+
...omitUndefined(ariaProps),
|
|
740
|
+
ref: (element) => {
|
|
741
|
+
assignRef(baseUiRef, element);
|
|
742
|
+
assignRef(ref, element);
|
|
743
|
+
},
|
|
689
744
|
className,
|
|
690
745
|
...dataTestId ? { "data-testid": dataTestId } : {}
|
|
691
746
|
}
|
|
@@ -701,11 +756,15 @@ const SelectCombobox = React.forwardRef(
|
|
|
701
756
|
({
|
|
702
757
|
name,
|
|
703
758
|
id,
|
|
759
|
+
labelId,
|
|
704
760
|
effectiveItems,
|
|
705
761
|
labelForValue,
|
|
706
762
|
renderOption,
|
|
707
763
|
renderTrigger,
|
|
708
764
|
isSearchable,
|
|
765
|
+
searchPosition,
|
|
766
|
+
searchPlaceholder,
|
|
767
|
+
inputValue,
|
|
709
768
|
isAsync,
|
|
710
769
|
isCreatable,
|
|
711
770
|
creatableFilter,
|
|
@@ -729,6 +788,20 @@ const SelectCombobox = React.forwardRef(
|
|
|
729
788
|
children
|
|
730
789
|
}, ref) => {
|
|
731
790
|
const [anchorEl, setAnchorEl] = React.useState(null);
|
|
791
|
+
const isContentSearch = isSearchable && searchPosition === "content";
|
|
792
|
+
const renderTriggerInput = searchPosition !== "content";
|
|
793
|
+
const isTriggerSearch = isSearchable && renderTriggerInput;
|
|
794
|
+
const useTriggerAnchor = !isTriggerSearch;
|
|
795
|
+
const showValue = !!currentValue && (!isTriggerSearch || inputValue === "");
|
|
796
|
+
const showPlaceholder = !currentValue && !isTriggerSearch;
|
|
797
|
+
const setTriggerEl = React.useCallback(
|
|
798
|
+
(element) => {
|
|
799
|
+
setAnchorEl(element);
|
|
800
|
+
if (renderTriggerInput) return;
|
|
801
|
+
assignRef(ref, element);
|
|
802
|
+
},
|
|
803
|
+
[ref, renderTriggerInput]
|
|
804
|
+
);
|
|
732
805
|
const handleClearClick = React.useCallback(
|
|
733
806
|
(event) => {
|
|
734
807
|
event.stopPropagation();
|
|
@@ -750,7 +823,8 @@ const SelectCombobox = React.forwardRef(
|
|
|
750
823
|
} : {},
|
|
751
824
|
value: currentValue,
|
|
752
825
|
onValueChange: handleValueChange,
|
|
753
|
-
|
|
826
|
+
inputValue,
|
|
827
|
+
onInputValueChange: handleInputValueChange,
|
|
754
828
|
onOpenChange,
|
|
755
829
|
disabled: isDisabled,
|
|
756
830
|
autoHighlight,
|
|
@@ -758,10 +832,17 @@ const SelectCombobox = React.forwardRef(
|
|
|
758
832
|
/* @__PURE__ */ jsxRuntime.jsx(
|
|
759
833
|
SelectAnchor,
|
|
760
834
|
{
|
|
761
|
-
ref:
|
|
762
|
-
isSearchable,
|
|
835
|
+
ref: setTriggerEl,
|
|
763
836
|
dataTestId: testIdPrefix,
|
|
764
|
-
|
|
837
|
+
renderAsTrigger: useTriggerAnchor,
|
|
838
|
+
className: useTriggerAnchor ? "cursor-pointer" : void 0,
|
|
839
|
+
triggerFieldProps: renderTriggerInput ? void 0 : {
|
|
840
|
+
id,
|
|
841
|
+
"aria-labelledby": labelId,
|
|
842
|
+
"aria-describedby": ariaDescribedBy,
|
|
843
|
+
"aria-required": required || void 0,
|
|
844
|
+
"aria-invalid": !!error || void 0
|
|
845
|
+
},
|
|
765
846
|
children: /* @__PURE__ */ jsxRuntime.jsxs(
|
|
766
847
|
primitives_Combobox.ComboboxChips,
|
|
767
848
|
{
|
|
@@ -772,24 +853,28 @@ const SelectCombobox = React.forwardRef(
|
|
|
772
853
|
),
|
|
773
854
|
...testIdPrefix ? { "data-testid": `${testIdPrefix}-select-container` } : {},
|
|
774
855
|
children: [
|
|
775
|
-
|
|
776
|
-
|
|
777
|
-
|
|
778
|
-
|
|
779
|
-
|
|
780
|
-
|
|
781
|
-
|
|
782
|
-
|
|
783
|
-
|
|
784
|
-
|
|
785
|
-
|
|
786
|
-
|
|
787
|
-
|
|
788
|
-
|
|
789
|
-
|
|
790
|
-
|
|
791
|
-
|
|
792
|
-
|
|
856
|
+
/* @__PURE__ */ jsxRuntime.jsxs("div", { className: "grid min-w-0 flex-1 items-center [&>*]:col-start-1 [&>*]:row-start-1", children: [
|
|
857
|
+
showValue && /* @__PURE__ */ jsxRuntime.jsx("span", { className: "min-w-0 truncate", children: renderTrigger(currentValue) }),
|
|
858
|
+
showPlaceholder && /* @__PURE__ */ jsxRuntime.jsx("span", { className: "min-w-0 truncate text-muted-foreground", children: placeholder }),
|
|
859
|
+
renderTriggerInput && /* @__PURE__ */ jsxRuntime.jsx(
|
|
860
|
+
primitives_Combobox.ComboboxChipsInput,
|
|
861
|
+
{
|
|
862
|
+
ref,
|
|
863
|
+
id,
|
|
864
|
+
placeholder: isTriggerSearch && !currentValue ? placeholder : void 0,
|
|
865
|
+
"aria-invalid": !!error || void 0,
|
|
866
|
+
"aria-describedby": ariaDescribedBy,
|
|
867
|
+
"aria-required": required || void 0,
|
|
868
|
+
className: utils.cn(
|
|
869
|
+
sizeConfig.input,
|
|
870
|
+
"w-full min-w-0",
|
|
871
|
+
!isSearchable && "w-0 overflow-hidden p-0 opacity-0"
|
|
872
|
+
),
|
|
873
|
+
disabled: isDisabled,
|
|
874
|
+
...testIdPrefix ? { "data-testid": `${testIdPrefix}-select-input` } : {}
|
|
875
|
+
}
|
|
876
|
+
)
|
|
877
|
+
] }),
|
|
793
878
|
showClearButton && /* @__PURE__ */ jsxRuntime.jsx(
|
|
794
879
|
"button",
|
|
795
880
|
{
|
|
@@ -801,7 +886,7 @@ const SelectCombobox = React.forwardRef(
|
|
|
801
886
|
children: /* @__PURE__ */ jsxRuntime.jsx(x.X, { className: sizeConfig.icon })
|
|
802
887
|
}
|
|
803
888
|
),
|
|
804
|
-
|
|
889
|
+
isTriggerSearch ? /* @__PURE__ */ jsxRuntime.jsx(
|
|
805
890
|
primitives_Combobox.ComboboxTrigger,
|
|
806
891
|
{
|
|
807
892
|
className: utils.cn(
|
|
@@ -824,15 +909,26 @@ const SelectCombobox = React.forwardRef(
|
|
|
824
909
|
)
|
|
825
910
|
}
|
|
826
911
|
),
|
|
827
|
-
/* @__PURE__ */ jsxRuntime.
|
|
828
|
-
|
|
829
|
-
|
|
830
|
-
|
|
831
|
-
|
|
832
|
-
|
|
833
|
-
|
|
834
|
-
|
|
835
|
-
|
|
912
|
+
/* @__PURE__ */ jsxRuntime.jsxs(primitives_Combobox.ComboboxContent, { anchor: anchorEl, ...contentProps, children: [
|
|
913
|
+
isContentSearch && /* @__PURE__ */ jsxRuntime.jsx(
|
|
914
|
+
primitives_Combobox.ComboboxInput,
|
|
915
|
+
{
|
|
916
|
+
showTrigger: false,
|
|
917
|
+
placeholder: searchPlaceholder,
|
|
918
|
+
...labelId ? { "aria-labelledby": labelId } : { "aria-label": searchPlaceholder },
|
|
919
|
+
...testIdPrefix ? { "data-testid": `${testIdPrefix}-select-input` } : {}
|
|
920
|
+
}
|
|
921
|
+
),
|
|
922
|
+
/* @__PURE__ */ jsxRuntime.jsx(
|
|
923
|
+
MultiSelectDropdown,
|
|
924
|
+
{
|
|
925
|
+
...dropdownProps,
|
|
926
|
+
renderOption,
|
|
927
|
+
testIdPrefix,
|
|
928
|
+
children
|
|
929
|
+
}
|
|
930
|
+
)
|
|
931
|
+
] })
|
|
836
932
|
]
|
|
837
933
|
}
|
|
838
934
|
)
|
|
@@ -845,10 +941,13 @@ const MultiSelectCombobox = React.forwardRef(
|
|
|
845
941
|
({
|
|
846
942
|
name,
|
|
847
943
|
id,
|
|
944
|
+
labelId,
|
|
848
945
|
effectiveItems,
|
|
849
946
|
labelForValue,
|
|
850
947
|
renderOption,
|
|
851
948
|
isSearchable,
|
|
949
|
+
searchPosition,
|
|
950
|
+
searchPlaceholder,
|
|
852
951
|
isAsync,
|
|
853
952
|
isCreatable,
|
|
854
953
|
creatableFilter,
|
|
@@ -875,6 +974,18 @@ const MultiSelectCombobox = React.forwardRef(
|
|
|
875
974
|
children
|
|
876
975
|
}, ref) => {
|
|
877
976
|
const [anchorEl, setAnchorEl] = React.useState(null);
|
|
977
|
+
const isContentSearch = isSearchable && searchPosition === "content";
|
|
978
|
+
const renderTriggerInput = searchPosition !== "content";
|
|
979
|
+
const isTriggerSearch = isSearchable && renderTriggerInput;
|
|
980
|
+
const useTriggerAnchor = !isTriggerSearch;
|
|
981
|
+
const setTriggerEl = React.useCallback(
|
|
982
|
+
(element) => {
|
|
983
|
+
setAnchorEl(element);
|
|
984
|
+
if (renderTriggerInput) return;
|
|
985
|
+
assignRef(ref, element);
|
|
986
|
+
},
|
|
987
|
+
[ref, renderTriggerInput]
|
|
988
|
+
);
|
|
878
989
|
return (
|
|
879
990
|
// @ts-expect-error — conditional spread creates a union that TS cannot narrow to the Combobox discriminated-union props
|
|
880
991
|
/* @__PURE__ */ jsxRuntime.jsxs(
|
|
@@ -897,9 +1008,16 @@ const MultiSelectCombobox = React.forwardRef(
|
|
|
897
1008
|
/* @__PURE__ */ jsxRuntime.jsx(
|
|
898
1009
|
SelectAnchor,
|
|
899
1010
|
{
|
|
900
|
-
ref:
|
|
901
|
-
|
|
902
|
-
className:
|
|
1011
|
+
ref: setTriggerEl,
|
|
1012
|
+
renderAsTrigger: useTriggerAnchor,
|
|
1013
|
+
className: useTriggerAnchor ? "cursor-pointer" : void 0,
|
|
1014
|
+
triggerFieldProps: renderTriggerInput ? void 0 : {
|
|
1015
|
+
id,
|
|
1016
|
+
"aria-labelledby": labelId,
|
|
1017
|
+
"aria-describedby": ariaDescribedBy,
|
|
1018
|
+
"aria-required": required || void 0,
|
|
1019
|
+
"aria-invalid": !!error || void 0
|
|
1020
|
+
},
|
|
903
1021
|
children: /* @__PURE__ */ jsxRuntime.jsxs(
|
|
904
1022
|
primitives_Combobox.ComboboxChips,
|
|
905
1023
|
{
|
|
@@ -911,22 +1029,23 @@ const MultiSelectCombobox = React.forwardRef(
|
|
|
911
1029
|
),
|
|
912
1030
|
...testIdPrefix ? { "data-testid": `${testIdPrefix}-select-container` } : {},
|
|
913
1031
|
children: [
|
|
914
|
-
selectedValues.map((val) => /* @__PURE__ */ jsxRuntime.jsx(
|
|
1032
|
+
selectedValues.map((val, index) => /* @__PURE__ */ jsxRuntime.jsx(
|
|
915
1033
|
primitives_Combobox.ComboboxChip,
|
|
916
1034
|
{
|
|
917
1035
|
className: sizeConfig.chip,
|
|
918
1036
|
showRemove: !hideChipRemove,
|
|
1037
|
+
...renderTriggerInput || isDisabled ? {} : { tabIndex: index === 0 ? 0 : -1 },
|
|
919
1038
|
...testIdPrefix ? { "data-testid": `${testIdPrefix}-chip` } : {},
|
|
920
1039
|
children: renderOption(val)
|
|
921
1040
|
},
|
|
922
1041
|
val
|
|
923
1042
|
)),
|
|
924
|
-
/* @__PURE__ */ jsxRuntime.jsx(
|
|
1043
|
+
renderTriggerInput ? /* @__PURE__ */ jsxRuntime.jsx(
|
|
925
1044
|
primitives_Combobox.ComboboxChipsInput,
|
|
926
1045
|
{
|
|
927
1046
|
ref,
|
|
928
1047
|
id,
|
|
929
|
-
placeholder:
|
|
1048
|
+
placeholder: isTriggerSearch && selectedValues.length === 0 ? placeholder : void 0,
|
|
930
1049
|
"aria-invalid": !!error || void 0,
|
|
931
1050
|
"aria-describedby": ariaDescribedBy,
|
|
932
1051
|
"aria-required": required || void 0,
|
|
@@ -937,21 +1056,44 @@ const MultiSelectCombobox = React.forwardRef(
|
|
|
937
1056
|
disabled: isDisabled,
|
|
938
1057
|
...testIdPrefix ? { "data-testid": `${testIdPrefix}-select-input` } : {}
|
|
939
1058
|
}
|
|
940
|
-
)
|
|
1059
|
+
) : /* @__PURE__ */ jsxRuntime.jsxs(jsxRuntime.Fragment, { children: [
|
|
1060
|
+
selectedValues.length === 0 && /* @__PURE__ */ jsxRuntime.jsx("span", { className: "min-w-0 flex-1 truncate text-muted-foreground", children: placeholder }),
|
|
1061
|
+
/* @__PURE__ */ jsxRuntime.jsx(
|
|
1062
|
+
chevronDown.ChevronDown,
|
|
1063
|
+
{
|
|
1064
|
+
"aria-hidden": true,
|
|
1065
|
+
className: utils.cn(
|
|
1066
|
+
"pointer-events-none ms-auto shrink-0 text-muted-foreground",
|
|
1067
|
+
sizeConfig.icon
|
|
1068
|
+
)
|
|
1069
|
+
}
|
|
1070
|
+
)
|
|
1071
|
+
] })
|
|
941
1072
|
]
|
|
942
1073
|
}
|
|
943
1074
|
)
|
|
944
1075
|
}
|
|
945
1076
|
),
|
|
946
|
-
/* @__PURE__ */ jsxRuntime.
|
|
947
|
-
|
|
948
|
-
|
|
949
|
-
|
|
950
|
-
|
|
951
|
-
|
|
952
|
-
|
|
953
|
-
|
|
954
|
-
|
|
1077
|
+
/* @__PURE__ */ jsxRuntime.jsxs(primitives_Combobox.ComboboxContent, { anchor: anchorEl, ...contentProps, children: [
|
|
1078
|
+
isContentSearch && /* @__PURE__ */ jsxRuntime.jsx(
|
|
1079
|
+
primitives_Combobox.ComboboxInput,
|
|
1080
|
+
{
|
|
1081
|
+
showTrigger: false,
|
|
1082
|
+
placeholder: searchPlaceholder,
|
|
1083
|
+
...labelId ? { "aria-labelledby": labelId } : { "aria-label": searchPlaceholder },
|
|
1084
|
+
...testIdPrefix ? { "data-testid": `${testIdPrefix}-select-input` } : {}
|
|
1085
|
+
}
|
|
1086
|
+
),
|
|
1087
|
+
/* @__PURE__ */ jsxRuntime.jsx(
|
|
1088
|
+
MultiSelectDropdown,
|
|
1089
|
+
{
|
|
1090
|
+
...dropdownProps,
|
|
1091
|
+
renderOption,
|
|
1092
|
+
testIdPrefix,
|
|
1093
|
+
children
|
|
1094
|
+
}
|
|
1095
|
+
)
|
|
1096
|
+
] })
|
|
955
1097
|
]
|
|
956
1098
|
}
|
|
957
1099
|
)
|
|
@@ -969,6 +1111,7 @@ const SingleSelectInner = React.forwardRef(
|
|
|
969
1111
|
helpText,
|
|
970
1112
|
errorId,
|
|
971
1113
|
helpTextId,
|
|
1114
|
+
labelId,
|
|
972
1115
|
isDisabled,
|
|
973
1116
|
required,
|
|
974
1117
|
testIdPrefix,
|
|
@@ -977,6 +1120,9 @@ const SingleSelectInner = React.forwardRef(
|
|
|
977
1120
|
renderOption,
|
|
978
1121
|
renderTrigger,
|
|
979
1122
|
isSearchable,
|
|
1123
|
+
searchPosition,
|
|
1124
|
+
searchPlaceholder,
|
|
1125
|
+
inputValue,
|
|
980
1126
|
isAsync,
|
|
981
1127
|
creatableFilter,
|
|
982
1128
|
isControlled,
|
|
@@ -1010,17 +1156,23 @@ const SingleSelectInner = React.forwardRef(
|
|
|
1010
1156
|
testIdPrefix,
|
|
1011
1157
|
labelProps: props.labelProps,
|
|
1012
1158
|
className: props.className,
|
|
1159
|
+
labelId,
|
|
1160
|
+
focusTargetOnLabelClick: searchPosition === "content",
|
|
1013
1161
|
children: /* @__PURE__ */ jsxRuntime.jsx(
|
|
1014
1162
|
SelectCombobox,
|
|
1015
1163
|
{
|
|
1016
1164
|
ref,
|
|
1017
1165
|
name: props.name,
|
|
1018
1166
|
id,
|
|
1167
|
+
labelId: label ? labelId : void 0,
|
|
1019
1168
|
effectiveItems,
|
|
1020
1169
|
labelForValue,
|
|
1021
1170
|
renderOption,
|
|
1022
1171
|
renderTrigger,
|
|
1023
1172
|
isSearchable,
|
|
1173
|
+
searchPosition,
|
|
1174
|
+
searchPlaceholder,
|
|
1175
|
+
inputValue,
|
|
1024
1176
|
isAsync,
|
|
1025
1177
|
isCreatable: props.isCreatable ?? false,
|
|
1026
1178
|
creatableFilter,
|
|
@@ -1072,10 +1224,14 @@ const MultiSelectInner = React.forwardRef(
|
|
|
1072
1224
|
helpText,
|
|
1073
1225
|
errorId,
|
|
1074
1226
|
helpTextId,
|
|
1227
|
+
labelId,
|
|
1075
1228
|
testIdPrefix,
|
|
1076
1229
|
effectiveItems,
|
|
1077
1230
|
labelForValue,
|
|
1078
1231
|
renderOption,
|
|
1232
|
+
isSearchable,
|
|
1233
|
+
searchPosition,
|
|
1234
|
+
searchPlaceholder,
|
|
1079
1235
|
isAsync,
|
|
1080
1236
|
creatableFilter,
|
|
1081
1237
|
isControlled,
|
|
@@ -1107,16 +1263,21 @@ const MultiSelectInner = React.forwardRef(
|
|
|
1107
1263
|
testIdPrefix,
|
|
1108
1264
|
labelProps: props.labelProps,
|
|
1109
1265
|
className: props.className,
|
|
1266
|
+
labelId,
|
|
1267
|
+
focusTargetOnLabelClick: searchPosition === "content",
|
|
1110
1268
|
children: /* @__PURE__ */ jsxRuntime.jsx(
|
|
1111
1269
|
MultiSelectCombobox,
|
|
1112
1270
|
{
|
|
1113
1271
|
ref,
|
|
1114
1272
|
name: props.name,
|
|
1115
1273
|
id,
|
|
1274
|
+
labelId: label ? labelId : void 0,
|
|
1116
1275
|
effectiveItems,
|
|
1117
1276
|
labelForValue,
|
|
1118
1277
|
renderOption,
|
|
1119
|
-
isSearchable
|
|
1278
|
+
isSearchable,
|
|
1279
|
+
searchPosition,
|
|
1280
|
+
searchPlaceholder,
|
|
1120
1281
|
isAsync,
|
|
1121
1282
|
isCreatable: props.isCreatable ?? false,
|
|
1122
1283
|
creatableFilter,
|
|
@@ -1203,4 +1364,4 @@ const Select = React.forwardRef((props, ref) => {
|
|
|
1203
1364
|
Select.displayName = "Select";
|
|
1204
1365
|
|
|
1205
1366
|
exports.Select = Select;
|
|
1206
|
-
//# sourceMappingURL=Select-
|
|
1367
|
+
//# sourceMappingURL=Select-VQCROyX1.js.map
|