@bigbinary/neeto-atoms 1.0.7 → 1.0.8
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/ColorPicker-BPvxDGDM.js +276 -0
- package/dist/ColorPicker-BPvxDGDM.js.map +1 -0
- package/dist/{DataTable-Y4POx0WN.js → DataTable-BKe9K5XP.js} +136 -136
- package/dist/DataTable-BKe9K5XP.js.map +1 -0
- package/dist/cjs/ColorPicker-DN8aynGh.js +282 -0
- package/dist/cjs/ColorPicker-DN8aynGh.js.map +1 -0
- package/dist/cjs/{DataTable-DJw2SZ7b.js → DataTable-BQt_mXDX.js} +136 -136
- package/dist/cjs/DataTable-BQt_mXDX.js.map +1 -0
- package/dist/cjs/components/Accordion.js +49 -0
- package/dist/cjs/components/Accordion.js.map +1 -0
- package/dist/cjs/components/Alert.js +101 -0
- package/dist/cjs/components/Alert.js.map +1 -0
- package/dist/cjs/components/Badge.js +71 -0
- package/dist/cjs/components/Badge.js.map +1 -0
- package/dist/cjs/components/Button.js +121 -0
- package/dist/cjs/components/Button.js.map +1 -0
- package/dist/cjs/components/Checkbox.js +44 -0
- package/dist/cjs/components/Checkbox.js.map +1 -0
- package/dist/cjs/components/ColorPicker.js +34 -0
- package/dist/cjs/components/ColorPicker.js.map +1 -0
- package/dist/cjs/components/DataTable.js +3 -3
- package/dist/cjs/components/Dialog.js +88 -0
- package/dist/cjs/components/Dialog.js.map +1 -0
- package/dist/cjs/components/DropdownMenu.js +180 -0
- package/dist/cjs/components/DropdownMenu.js.map +1 -0
- package/dist/cjs/components/Input.js +167 -0
- package/dist/cjs/components/Input.js.map +1 -0
- package/dist/cjs/components/MultiSelect.js +13 -0
- package/dist/cjs/components/MultiSelect.js.map +1 -0
- package/dist/cjs/components/MultiSelectCombobox.js +3 -0
- package/dist/cjs/components/MultiSelectCombobox.js.map +1 -0
- package/dist/cjs/components/MultiSelectDropdown.js +37 -0
- package/dist/cjs/components/MultiSelectDropdown.js.map +1 -0
- package/dist/cjs/components/OptionItem.js +34 -0
- package/dist/cjs/components/OptionItem.js.map +1 -0
- package/dist/cjs/components/Popover.js +123 -0
- package/dist/cjs/components/Popover.js.map +1 -0
- package/dist/cjs/components/RadioGroup.js +63 -0
- package/dist/cjs/components/RadioGroup.js.map +1 -0
- package/dist/cjs/components/Select.js +3 -0
- package/dist/cjs/components/Select.js.map +1 -0
- package/dist/cjs/components/SelectFieldWrapper.js +33 -0
- package/dist/cjs/components/SelectFieldWrapper.js.map +1 -0
- package/dist/cjs/components/SelectOptions.js +43 -0
- package/dist/cjs/components/SelectOptions.js.map +1 -0
- package/dist/cjs/components/SelectTriggerContent.js +43 -0
- package/dist/cjs/components/SelectTriggerContent.js.map +1 -0
- package/dist/cjs/components/Sheet.js +90 -0
- package/dist/cjs/components/Sheet.js.map +1 -0
- package/dist/cjs/components/Switch.js +35 -0
- package/dist/cjs/components/Switch.js.map +1 -0
- package/dist/cjs/components/Tabs.js +74 -0
- package/dist/cjs/components/Tabs.js.map +1 -0
- package/dist/cjs/components/Textarea.js +89 -0
- package/dist/cjs/components/Textarea.js.map +1 -0
- package/dist/cjs/components/Toastr.js +133 -0
- package/dist/cjs/components/Toastr.js.map +1 -0
- package/dist/cjs/components/Tooltip.js +109 -0
- package/dist/cjs/components/Tooltip.js.map +1 -0
- package/dist/cjs/{primitives → components}/Typography.js +6 -6
- package/dist/cjs/components/Typography.js.map +1 -0
- package/dist/cjs/components/shared.js +8 -0
- package/dist/cjs/components/shared.js.map +1 -0
- package/dist/cjs/{dialog-DzNWLbJ6.js → dialog-CF2GBHOG.js} +2 -2
- package/dist/cjs/{dialog-DzNWLbJ6.js.map → dialog-CF2GBHOG.js.map} +1 -1
- package/dist/cjs/{index-DAds6mf_.js → index-BLGrl3PF.js} +31 -31
- package/dist/cjs/{index-DAds6mf_.js.map → index-BLGrl3PF.js.map} +1 -1
- package/dist/cjs/{index-BqCr1H3u.js → index-BiGm7NEA.js} +11 -11
- package/dist/cjs/{index-BqCr1H3u.js.map → index-BiGm7NEA.js.map} +1 -1
- package/dist/cjs/{index-CGet1HH4.js → index-PdtYHwPi.js} +66 -66
- package/dist/cjs/{index-CGet1HH4.js.map → index-PdtYHwPi.js.map} +1 -1
- package/dist/cjs/index-Vlwnyfvs.js +1145 -0
- package/dist/cjs/index-Vlwnyfvs.js.map +1 -0
- package/dist/cjs/{index-DR7GJU4J.js → index-hQmfI1O7.js} +17 -17
- package/dist/cjs/{index-DR7GJU4J.js.map → index-hQmfI1O7.js.map} +1 -1
- package/dist/cjs/index.js +463 -26
- package/dist/cjs/index.js.map +1 -1
- package/dist/cjs/primitives/Accordion.js +16 -16
- package/dist/cjs/primitives/Accordion.js.map +1 -1
- package/dist/cjs/primitives/AlertDialog.js +1 -1
- package/dist/cjs/primitives/Badge.js +58 -6
- package/dist/cjs/primitives/Badge.js.map +1 -1
- package/dist/cjs/primitives/Chart.js +137 -137
- package/dist/cjs/primitives/Chart.js.map +1 -1
- package/dist/cjs/primitives/Collapsible.js +1 -1
- package/dist/cjs/primitives/Combobox.js +4 -4
- package/dist/cjs/primitives/Combobox.js.map +1 -1
- package/dist/cjs/primitives/Command.js +2 -2
- package/dist/cjs/primitives/ContextMenu.js +2 -2
- package/dist/cjs/primitives/Dialog.js +10 -6
- package/dist/cjs/primitives/Dialog.js.map +1 -1
- package/dist/cjs/primitives/Drawer.js +1 -1
- package/dist/cjs/primitives/DropdownMenu.js +38 -38
- package/dist/cjs/primitives/DropdownMenu.js.map +1 -1
- package/dist/cjs/primitives/HoverCard.js +16 -16
- package/dist/cjs/primitives/Menubar.js +2 -2
- package/dist/cjs/primitives/Popover.js +13 -13
- package/dist/cjs/primitives/RadioGroup.js +27 -26
- package/dist/cjs/primitives/RadioGroup.js.map +1 -1
- package/dist/cjs/primitives/Select.js +77 -77
- package/dist/cjs/primitives/Sheet.js +10 -6
- package/dist/cjs/primitives/Sheet.js.map +1 -1
- package/dist/cjs/primitives/Sidebar.js +3 -3
- package/dist/cjs/primitives/Sonner.js +12 -1138
- package/dist/cjs/primitives/Sonner.js.map +1 -1
- package/dist/cjs/primitives/Switch.js +4 -8
- package/dist/cjs/primitives/Switch.js.map +1 -1
- package/dist/cjs/primitives/Tabs.js +11 -11
- package/dist/cjs/primitives/ToggleGroup.js +1 -1
- package/dist/cjs/primitives/Tooltip.js +1 -1
- package/dist/cjs/primitives/index.js +9 -11
- package/dist/cjs/primitives/index.js.map +1 -1
- package/dist/cjs/renderIcon-fLF3odqg.js +26 -0
- package/dist/cjs/renderIcon-fLF3odqg.js.map +1 -0
- package/dist/cjs/{sheet-nHSYZxAA.js → sheet-CkCrHmVA.js} +2 -2
- package/dist/cjs/{sheet-nHSYZxAA.js.map → sheet-CkCrHmVA.js.map} +1 -1
- package/dist/cjs/{tooltip-CRkOMh1b.js → tooltip-C-568jEL.js} +17 -17
- package/dist/cjs/{tooltip-CRkOMh1b.js.map → tooltip-C-568jEL.js.map} +1 -1
- package/dist/cjs/useCreatableItems-BTHtd7uo.js +100 -0
- package/dist/cjs/useCreatableItems-BTHtd7uo.js.map +1 -0
- package/dist/cjs/{reselect-CeyIIDM-.js → with-selector-u4xTSzCv.js} +111 -111
- package/dist/cjs/with-selector-u4xTSzCv.js.map +1 -0
- package/dist/components/Accordion.d.ts +18 -0
- package/dist/components/Accordion.js +43 -0
- package/dist/components/Accordion.js.map +1 -0
- package/dist/components/Alert.d.ts +51 -0
- package/dist/components/Alert.js +99 -0
- package/dist/components/Alert.js.map +1 -0
- package/dist/components/Badge.d.ts +29 -0
- package/dist/components/Badge.js +69 -0
- package/dist/components/Badge.js.map +1 -0
- package/dist/components/Button.d.ts +47 -0
- package/dist/components/Button.js +119 -0
- package/dist/components/Button.js.map +1 -0
- package/dist/components/Checkbox.d.ts +16 -0
- package/dist/components/Checkbox.js +42 -0
- package/dist/components/Checkbox.js.map +1 -0
- package/dist/components/ColorPicker/ColorPicker.d.ts +4 -0
- package/dist/components/ColorPicker/Palette.d.ts +12 -0
- package/dist/components/ColorPicker/Target.d.ts +15 -0
- package/dist/components/ColorPicker/constants.d.ts +10 -0
- package/dist/components/ColorPicker/hooks/useEyeDropper.d.ts +15 -0
- package/dist/components/ColorPicker/hooks/useRecentlyUsedColors.d.ts +11 -0
- package/dist/components/ColorPicker/index.d.ts +2 -0
- package/dist/components/ColorPicker/types.d.ts +42 -0
- package/dist/components/ColorPicker/utils.d.ts +31 -0
- package/dist/components/ColorPicker.js +28 -0
- package/dist/components/ColorPicker.js.map +1 -0
- package/dist/components/DataTable.js +2 -2
- package/dist/components/Dialog.d.ts +56 -0
- package/dist/components/Dialog.js +86 -0
- package/dist/components/Dialog.js.map +1 -0
- package/dist/components/DropdownMenu/Divider.d.ts +3 -0
- package/dist/components/DropdownMenu/DropdownBase.d.ts +3 -0
- package/dist/components/DropdownMenu/Label.d.ts +7 -0
- package/dist/components/DropdownMenu/Menu.d.ts +7 -0
- package/dist/components/DropdownMenu/MenuItem.d.ts +10 -0
- package/dist/components/DropdownMenu/MenuItemButton.d.ts +4 -0
- package/dist/components/DropdownMenu/SplitTrigger.d.ts +13 -0
- package/dist/components/DropdownMenu/SubMenu.d.ts +10 -0
- package/dist/components/DropdownMenu/TriggerButton.d.ts +10 -0
- package/dist/components/DropdownMenu/constants.d.ts +7 -0
- package/dist/components/DropdownMenu/index.d.ts +16 -0
- package/dist/components/DropdownMenu/types.d.ts +88 -0
- package/dist/components/DropdownMenu.js +178 -0
- package/dist/components/DropdownMenu.js.map +1 -0
- package/dist/components/Input.d.ts +39 -0
- package/dist/components/Input.js +165 -0
- package/dist/components/Input.js.map +1 -0
- package/dist/components/MultiSelect.constants.d.ts +5 -0
- package/dist/components/MultiSelect.d.ts +4 -0
- package/dist/components/MultiSelect.js +4 -0
- package/dist/components/MultiSelect.js.map +1 -0
- package/dist/components/MultiSelect.types.d.ts +121 -0
- package/dist/components/MultiSelect.utils.d.ts +18 -0
- package/dist/components/MultiSelectCombobox.d.ts +3 -0
- package/dist/components/MultiSelectCombobox.js +2 -0
- package/dist/components/MultiSelectCombobox.js.map +1 -0
- package/dist/components/MultiSelectCombobox.types.d.ts +52 -0
- package/dist/components/MultiSelectDropdown.d.ts +9 -0
- package/dist/components/MultiSelectDropdown.js +35 -0
- package/dist/components/MultiSelectDropdown.js.map +1 -0
- package/dist/components/OptionItem.d.ts +9 -0
- package/dist/components/OptionItem.js +32 -0
- package/dist/components/OptionItem.js.map +1 -0
- package/dist/components/Popover.d.ts +47 -0
- package/dist/components/Popover.js +117 -0
- package/dist/components/Popover.js.map +1 -0
- package/dist/components/RadioGroup.d.ts +32 -0
- package/dist/components/RadioGroup.js +61 -0
- package/dist/components/RadioGroup.js.map +1 -0
- package/dist/components/Select.constants.d.ts +5 -0
- package/dist/components/Select.d.ts +4 -0
- package/dist/components/Select.js +2 -0
- package/dist/components/Select.js.map +1 -0
- package/dist/components/Select.types.d.ts +58 -0
- package/dist/components/SelectFieldWrapper.d.ts +18 -0
- package/dist/components/SelectFieldWrapper.js +31 -0
- package/dist/components/SelectFieldWrapper.js.map +1 -0
- package/dist/components/SelectOptions.d.ts +2 -0
- package/dist/components/SelectOptions.js +41 -0
- package/dist/components/SelectOptions.js.map +1 -0
- package/dist/components/SelectTriggerContent.d.ts +18 -0
- package/dist/components/SelectTriggerContent.js +41 -0
- package/dist/components/SelectTriggerContent.js.map +1 -0
- package/dist/components/Sheet.d.ts +54 -0
- package/dist/components/Sheet.js +88 -0
- package/dist/components/Sheet.js.map +1 -0
- package/dist/components/Switch.d.ts +18 -0
- package/dist/components/Switch.js +33 -0
- package/dist/components/Switch.js.map +1 -0
- package/dist/components/Tabs.d.ts +20 -0
- package/dist/components/Tabs.js +72 -0
- package/dist/components/Tabs.js.map +1 -0
- package/dist/components/Textarea.d.ts +36 -0
- package/dist/components/Textarea.js +87 -0
- package/dist/components/Textarea.js.map +1 -0
- package/dist/components/Toastr.d.ts +30 -0
- package/dist/components/Toastr.js +131 -0
- package/dist/components/Toastr.js.map +1 -0
- package/dist/components/Tooltip.d.ts +29 -0
- package/dist/components/Tooltip.js +103 -0
- package/dist/components/Tooltip.js.map +1 -0
- package/dist/{primitives → components}/Typography.d.ts +2 -2
- package/dist/{primitives → components}/Typography.js +6 -6
- package/dist/components/Typography.js.map +1 -0
- package/dist/components/shared.js +6 -0
- package/dist/components/shared.js.map +1 -0
- package/dist/components/shared.types.d.ts +16 -0
- package/dist/{dialog-C97DOTvO.js → dialog-Civ9r6wD.js} +3 -3
- package/dist/{dialog-C97DOTvO.js.map → dialog-Civ9r6wD.js.map} +1 -1
- package/dist/hooks/useAsyncOptions.d.ts +13 -0
- package/dist/hooks/useCreatableItems.d.ts +30 -0
- package/dist/hooks/useLazyLoadSentinel.d.ts +6 -0
- package/dist/hooks/useMultiSelectOptions.d.ts +15 -0
- package/dist/hooks/useMultiSelectState.d.ts +37 -0
- package/dist/hooks/useSelectState.d.ts +27 -0
- package/dist/{index-PF0ms7Xn.js → index-9HvIbmnI.js} +3 -3
- package/dist/{index-PF0ms7Xn.js.map → index-9HvIbmnI.js.map} +1 -1
- package/dist/index-D_roZz8G.js +1137 -0
- package/dist/index-D_roZz8G.js.map +1 -0
- package/dist/{index-BwxI_qgh.js → index-KzJfsx-e.js} +3 -3
- package/dist/{index-BwxI_qgh.js.map → index-KzJfsx-e.js.map} +1 -1
- package/dist/index.css +25 -1
- package/dist/index.d.ts +40 -0
- package/dist/index.js +440 -24
- package/dist/index.js.map +1 -1
- package/dist/{input-group-CDBpz6Pb.js → input-group-ytECR3Hw.js} +2 -2
- package/dist/{input-group-CDBpz6Pb.js.map → input-group-ytECR3Hw.js.map} +1 -1
- package/dist/lib/renderIcon.d.ts +5 -0
- package/dist/primitives/Accordion.js +1 -1
- package/dist/primitives/AlertDialog.js +1 -1
- package/dist/primitives/Badge.d.ts +13 -3
- package/dist/primitives/Badge.js +54 -2
- package/dist/primitives/Badge.js.map +1 -1
- package/dist/primitives/Chart.js +1 -1
- package/dist/primitives/Combobox.js +3 -3
- package/dist/primitives/Command.js +3 -3
- package/dist/primitives/ContextMenu.js +1 -1
- package/dist/primitives/Dialog.d.ts +11 -3
- package/dist/primitives/Dialog.js +11 -7
- package/dist/primitives/Dialog.js.map +1 -1
- package/dist/primitives/Drawer.js +1 -1
- package/dist/primitives/DropdownMenu.js +2 -2
- package/dist/primitives/InputGroup.js +1 -1
- package/dist/primitives/Menubar.js +1 -1
- package/dist/primitives/RadioGroup.d.ts +8 -3
- package/dist/primitives/RadioGroup.js +9 -8
- package/dist/primitives/RadioGroup.js.map +1 -1
- package/dist/primitives/Select.js +3 -3
- package/dist/primitives/Sheet.d.ts +12 -3
- package/dist/primitives/Sheet.js +11 -7
- package/dist/primitives/Sheet.js.map +1 -1
- package/dist/primitives/Sidebar.js +3 -3
- package/dist/primitives/Sonner.js +11 -1135
- package/dist/primitives/Sonner.js.map +1 -1
- package/dist/primitives/Switch.d.ts +6 -3
- package/dist/primitives/Switch.js +4 -8
- package/dist/primitives/Switch.js.map +1 -1
- package/dist/primitives/Tooltip.js +1 -1
- package/dist/primitives/index.d.ts +0 -1
- package/dist/primitives/index.js +8 -8
- package/dist/renderIcon-tlvMyboj.js +20 -0
- package/dist/renderIcon-tlvMyboj.js.map +1 -0
- package/dist/shadcn/components/typography.d.ts +4 -4
- package/dist/{sheet-D1ngftfX.js → sheet-COcn22fC.js} +3 -3
- package/dist/{sheet-D1ngftfX.js.map → sheet-COcn22fC.js.map} +1 -1
- package/dist/{tooltip-D5soNrAP.js → tooltip-DzjIJacP.js} +3 -3
- package/dist/{tooltip-D5soNrAP.js.map → tooltip-DzjIJacP.js.map} +1 -1
- package/dist/useCreatableItems-B0seQA1_.js +89 -0
- package/dist/useCreatableItems-B0seQA1_.js.map +1 -0
- package/dist/utils/fieldIds.d.ts +2 -0
- package/dist/utils/hyphenize.d.ts +1 -0
- package/dist/{reselect-CABQm5hA.js → with-selector--fY1NrB9.js} +111 -111
- package/dist/with-selector--fY1NrB9.js.map +1 -0
- package/package.json +2 -1
- package/dist/DataTable-Y4POx0WN.js.map +0 -1
- package/dist/cjs/DataTable-DJw2SZ7b.js.map +0 -1
- package/dist/cjs/primitives/Typography.js.map +0 -1
- package/dist/cjs/reselect-CeyIIDM-.js.map +0 -1
- package/dist/primitives/Typography.js.map +0 -1
- package/dist/reselect-CABQm5hA.js.map +0 -1
package/dist/cjs/index.js
CHANGED
|
@@ -1,49 +1,485 @@
|
|
|
1
1
|
'use strict';
|
|
2
2
|
|
|
3
|
-
var
|
|
4
|
-
var
|
|
3
|
+
var components_Accordion = require('./components/Accordion.js');
|
|
4
|
+
var components_Alert = require('./components/Alert.js');
|
|
5
|
+
var components_Badge = require('./components/Badge.js');
|
|
6
|
+
var components_Button = require('./components/Button.js');
|
|
7
|
+
var components_Checkbox = require('./components/Checkbox.js');
|
|
8
|
+
var ColorPicker = require('./ColorPicker-DN8aynGh.js');
|
|
9
|
+
var components_Dialog = require('./components/Dialog.js');
|
|
10
|
+
var components_DropdownMenu = require('./components/DropdownMenu.js');
|
|
11
|
+
var components_Input = require('./components/Input.js');
|
|
12
|
+
var jsxRuntime = require('react/jsx-runtime');
|
|
13
|
+
var React = require('react');
|
|
14
|
+
var components_MultiSelect = require('./useCreatableItems-BTHtd7uo.js');
|
|
15
|
+
var components_SelectFieldWrapper = require('./components/SelectFieldWrapper.js');
|
|
5
16
|
var utils = require('./utils-CTr7wn5d.js');
|
|
6
|
-
require('
|
|
7
|
-
require('
|
|
8
|
-
require('./
|
|
9
|
-
require('./primitives/
|
|
10
|
-
require('./
|
|
17
|
+
var primitives_Combobox = require('./primitives/Combobox.js');
|
|
18
|
+
var components_MultiSelectDropdown = require('./components/MultiSelectDropdown.js');
|
|
19
|
+
var components_RadioGroup = require('./components/RadioGroup.js');
|
|
20
|
+
var primitives_Select = require('./primitives/Select.js');
|
|
21
|
+
var components_SelectTriggerContent = require('./components/SelectTriggerContent.js');
|
|
22
|
+
var components_SelectOptions = require('./components/SelectOptions.js');
|
|
23
|
+
var components_Sheet = require('./components/Sheet.js');
|
|
24
|
+
var components_Popover = require('./components/Popover.js');
|
|
25
|
+
var components_Toastr = require('./components/Toastr.js');
|
|
26
|
+
var components_Switch = require('./components/Switch.js');
|
|
27
|
+
var components_Tabs = require('./components/Tabs.js');
|
|
28
|
+
var components_Textarea = require('./components/Textarea.js');
|
|
29
|
+
var components_Tooltip = require('./components/Tooltip.js');
|
|
30
|
+
var components_Typography = require('./components/Typography.js');
|
|
31
|
+
var DataTable = require('./DataTable-BQt_mXDX.js');
|
|
32
|
+
var useMobile = require('./use-mobile-B-UYxtqX.js');
|
|
33
|
+
require('./primitives/Accordion.js');
|
|
34
|
+
require('./chevron-down-CPsWSS51.js');
|
|
11
35
|
require('./createLucideIcon-D0tRgV6l.js');
|
|
12
|
-
require('./
|
|
36
|
+
require('./chevron-up-BpwpBnZU.js');
|
|
13
37
|
require('./index-CGUGhyIp.js');
|
|
38
|
+
require('./index-Ch55j1or.js');
|
|
39
|
+
require('./index-D-iDn9RI.js');
|
|
14
40
|
require('./index-COPkC3I5.js');
|
|
15
41
|
require('./index-CyrAgb4H.js');
|
|
16
42
|
require('./index-CCdG4z4E.js');
|
|
17
|
-
require('./index-CF951Pw9.js');
|
|
18
|
-
require('./index-Bf0WsHta.js');
|
|
19
|
-
require('./index-DcCSSgb7.js');
|
|
20
43
|
require('./index-DMbj7vXd.js');
|
|
21
44
|
require('react-dom');
|
|
22
|
-
require('./
|
|
23
|
-
require('./
|
|
24
|
-
require('./
|
|
45
|
+
require('./index-BiGm7NEA.js');
|
|
46
|
+
require('./index-DcCSSgb7.js');
|
|
47
|
+
require('./index-BwAq9ba8.js');
|
|
48
|
+
require('./index-9jC1advf.js');
|
|
49
|
+
require('./primitives/Dialog.js');
|
|
25
50
|
require('./button-B8XGl69v.js');
|
|
26
51
|
require('./index-BZhTddX0.js');
|
|
27
52
|
require('./index-DuNgWCXZ.js');
|
|
28
|
-
require('./
|
|
29
|
-
require('./
|
|
30
|
-
require('./
|
|
31
|
-
require('./chevron-left-BldoOh5p.js');
|
|
32
|
-
require('./primitives/DropdownMenu.js');
|
|
33
|
-
require('./index-CGet1HH4.js');
|
|
34
|
-
require('./index-Ch55j1or.js');
|
|
35
|
-
require('./index-9jC1advf.js');
|
|
53
|
+
require('./dialog-CF2GBHOG.js');
|
|
54
|
+
require('./x-Brw3FJst.js');
|
|
55
|
+
require('./index-BLGrl3PF.js');
|
|
36
56
|
require('./index-Bvu9MiFi.js');
|
|
37
57
|
require('./index-lWVw05cs.js');
|
|
38
58
|
require('./index-ChSOMM8b.js');
|
|
39
|
-
require('./index-
|
|
59
|
+
require('./index-Df-Ffa3s.js');
|
|
60
|
+
require('./renderIcon-fLF3odqg.js');
|
|
61
|
+
require('./primitives/Button.js');
|
|
62
|
+
require('./primitives/Spinner.js');
|
|
63
|
+
require('./loader-circle-Bw7zP2Gn.js');
|
|
64
|
+
require('./primitives/Tooltip.js');
|
|
65
|
+
require('./tooltip-C-568jEL.js');
|
|
40
66
|
require('./index-C9ICrOhM.js');
|
|
41
67
|
require('./floating-ui.react-dom-B4Aw6O7R.js');
|
|
42
|
-
require('./index-
|
|
43
|
-
require('./index-
|
|
68
|
+
require('./index-Bf0WsHta.js');
|
|
69
|
+
require('./index-CB9xFokC.js');
|
|
70
|
+
require('./primitives/Badge.js');
|
|
71
|
+
require('./primitives/Checkbox.js');
|
|
72
|
+
require('./check-BQgcDXys.js');
|
|
73
|
+
require('./index-CF951Pw9.js');
|
|
74
|
+
require('./primitives/Field.js');
|
|
75
|
+
require('./label-Bdc9ytTI.js');
|
|
76
|
+
require('./separator-CPy2gyg1.js');
|
|
77
|
+
require('./primitives/Popover.js');
|
|
78
|
+
require('./primitives/DropdownMenu.js');
|
|
79
|
+
require('./chevron-right-0jNdwX2Q.js');
|
|
80
|
+
require('./index-PdtYHwPi.js');
|
|
81
|
+
require('./index-hQmfI1O7.js');
|
|
82
|
+
require('./primitives/ButtonGroup.js');
|
|
83
|
+
require('./primitives/InputGroup.js');
|
|
84
|
+
require('./input-group-DoK0-4fL.js');
|
|
85
|
+
require('./input-CgKPISj_.js');
|
|
86
|
+
require('./textarea-CZSSY75H.js');
|
|
87
|
+
require('./components/shared.js');
|
|
88
|
+
require('./with-selector-u4xTSzCv.js');
|
|
89
|
+
require('./index-BrpkRQoS.js');
|
|
90
|
+
require('./index-DnKJmaCq.js');
|
|
91
|
+
require('./components/OptionItem.js');
|
|
92
|
+
require('./primitives/RadioGroup.js');
|
|
93
|
+
require('./primitives/Label.js');
|
|
94
|
+
require('./index-EyWRfsCG.js');
|
|
95
|
+
require('./primitives/Sheet.js');
|
|
96
|
+
require('./sheet-CkCrHmVA.js');
|
|
97
|
+
require('./primitives/HoverCard.js');
|
|
98
|
+
require('./index-Vlwnyfvs.js');
|
|
99
|
+
require('./primitives/Switch.js');
|
|
100
|
+
require('./primitives/Tabs.js');
|
|
101
|
+
require('./primitives/Textarea.js');
|
|
102
|
+
require('./primitives/Table.js');
|
|
103
|
+
require('./primitives/Pagination.js');
|
|
104
|
+
require('./ellipsis-4aubOI2n.js');
|
|
105
|
+
require('./chevron-left-BldoOh5p.js');
|
|
106
|
+
|
|
107
|
+
function _interopDefault (e) { return e && e.__esModule ? e : { default: e }; }
|
|
44
108
|
|
|
109
|
+
var React__default = /*#__PURE__*/_interopDefault(React);
|
|
45
110
|
|
|
111
|
+
function hyphenize(str) {
|
|
112
|
+
return str
|
|
113
|
+
.replace(/([a-z])([A-Z])/g, "$1-$2")
|
|
114
|
+
.replace(/[\s_]+/g, "-")
|
|
115
|
+
.toLowerCase();
|
|
116
|
+
}
|
|
46
117
|
|
|
118
|
+
function buildAriaDescribedBy(error, errorId, helpText, helpTextId) {
|
|
119
|
+
return ([error ? errorId : null, helpText ? helpTextId : null]
|
|
120
|
+
.filter(Boolean)
|
|
121
|
+
.join(" ") || undefined);
|
|
122
|
+
}
|
|
123
|
+
function buildTestIdPrefix(dataTestId, label) {
|
|
124
|
+
return dataTestId ?? (label ? hyphenize(label) : undefined);
|
|
125
|
+
}
|
|
126
|
+
|
|
127
|
+
function useAsyncOptions({ loadOptions, defaultOptions = false, cacheOptions = false, }) {
|
|
128
|
+
const [asyncOptions, setAsyncOptions] = React.useState(() => (Array.isArray(defaultOptions) ? defaultOptions : []));
|
|
129
|
+
const [isLoading, setIsLoading] = React.useState(false);
|
|
130
|
+
const cacheRef = React.useRef({});
|
|
131
|
+
const debounceRef = React.useRef(null);
|
|
132
|
+
const latestRequestRef = React.useRef(0);
|
|
133
|
+
const mountedRef = React.useRef(true);
|
|
134
|
+
// Load default options on mount when `defaultOptions === true`
|
|
135
|
+
React.useEffect(() => {
|
|
136
|
+
if (!loadOptions || defaultOptions !== true)
|
|
137
|
+
return;
|
|
138
|
+
let cancelled = false;
|
|
139
|
+
setIsLoading(true);
|
|
140
|
+
loadOptions("")
|
|
141
|
+
.then(results => {
|
|
142
|
+
if (cancelled)
|
|
143
|
+
return;
|
|
144
|
+
setAsyncOptions(results);
|
|
145
|
+
if (cacheOptions)
|
|
146
|
+
cacheRef.current[""] = results;
|
|
147
|
+
setIsLoading(false);
|
|
148
|
+
})
|
|
149
|
+
.catch(() => {
|
|
150
|
+
if (!cancelled)
|
|
151
|
+
setIsLoading(false);
|
|
152
|
+
});
|
|
153
|
+
return () => {
|
|
154
|
+
cancelled = true;
|
|
155
|
+
};
|
|
156
|
+
// eslint-disable-next-line react-hooks/exhaustive-deps
|
|
157
|
+
}, []);
|
|
158
|
+
// Clean up debounce timer and mark unmounted
|
|
159
|
+
React.useEffect(() => {
|
|
160
|
+
return () => {
|
|
161
|
+
mountedRef.current = false;
|
|
162
|
+
if (debounceRef.current)
|
|
163
|
+
clearTimeout(debounceRef.current);
|
|
164
|
+
};
|
|
165
|
+
}, []);
|
|
166
|
+
const handleAsyncInputChange = React.useCallback((value) => {
|
|
167
|
+
if (!loadOptions)
|
|
168
|
+
return;
|
|
169
|
+
const query = value.trim();
|
|
170
|
+
// Check cache first
|
|
171
|
+
if (cacheOptions && query in cacheRef.current) {
|
|
172
|
+
setAsyncOptions(cacheRef.current[query]);
|
|
173
|
+
return;
|
|
174
|
+
}
|
|
175
|
+
// Debounce the fetch
|
|
176
|
+
if (debounceRef.current)
|
|
177
|
+
clearTimeout(debounceRef.current);
|
|
178
|
+
debounceRef.current = setTimeout(() => {
|
|
179
|
+
const requestId = ++latestRequestRef.current;
|
|
180
|
+
setIsLoading(true);
|
|
181
|
+
loadOptions(query)
|
|
182
|
+
.then(results => {
|
|
183
|
+
if (requestId !== latestRequestRef.current || !mountedRef.current)
|
|
184
|
+
return;
|
|
185
|
+
setAsyncOptions(results);
|
|
186
|
+
if (cacheOptions)
|
|
187
|
+
cacheRef.current[query] = results;
|
|
188
|
+
setIsLoading(false);
|
|
189
|
+
})
|
|
190
|
+
.catch(() => {
|
|
191
|
+
if (requestId === latestRequestRef.current &&
|
|
192
|
+
mountedRef.current) {
|
|
193
|
+
setIsLoading(false);
|
|
194
|
+
}
|
|
195
|
+
});
|
|
196
|
+
}, 300);
|
|
197
|
+
}, [loadOptions, cacheOptions]);
|
|
198
|
+
return { asyncOptions, isLoading, handleAsyncInputChange };
|
|
199
|
+
}
|
|
200
|
+
|
|
201
|
+
function useLazyLoadSentinel({ fetchMore, isEnabled, }) {
|
|
202
|
+
const observerRef = React.useRef(null);
|
|
203
|
+
const fetchMoreRef = React.useRef(fetchMore);
|
|
204
|
+
fetchMoreRef.current = fetchMore;
|
|
205
|
+
const sentinelRef = React.useCallback((node) => {
|
|
206
|
+
observerRef.current?.disconnect();
|
|
207
|
+
observerRef.current = null;
|
|
208
|
+
if (!node || !isEnabled)
|
|
209
|
+
return;
|
|
210
|
+
const observer = new IntersectionObserver(entries => {
|
|
211
|
+
if (entries[0]?.isIntersecting)
|
|
212
|
+
fetchMoreRef.current?.();
|
|
213
|
+
}, { root: null, rootMargin: "0px", threshold: 0.1 });
|
|
214
|
+
observer.observe(node);
|
|
215
|
+
observerRef.current = observer;
|
|
216
|
+
}, [isEnabled]);
|
|
217
|
+
// Clean up observer on unmount
|
|
218
|
+
React.useEffect(() => {
|
|
219
|
+
return () => {
|
|
220
|
+
observerRef.current?.disconnect();
|
|
221
|
+
};
|
|
222
|
+
}, []);
|
|
223
|
+
return sentinelRef;
|
|
224
|
+
}
|
|
225
|
+
|
|
226
|
+
function useMultiSelectOptions(props) {
|
|
227
|
+
const isAsync = !!props.loadOptions;
|
|
228
|
+
const { asyncOptions, isLoading, handleAsyncInputChange } = useAsyncOptions({
|
|
229
|
+
loadOptions: props.loadOptions,
|
|
230
|
+
defaultOptions: props.defaultOptions ?? false,
|
|
231
|
+
cacheOptions: props.cacheOptions ?? false,
|
|
232
|
+
});
|
|
233
|
+
const resolvedOptions = isAsync
|
|
234
|
+
? asyncOptions
|
|
235
|
+
: (props.options ?? []);
|
|
236
|
+
const flatOptions = components_MultiSelect.flattenOptions(resolvedOptions);
|
|
237
|
+
const isGrouped = components_MultiSelect.hasGroups(resolvedOptions);
|
|
238
|
+
const baseUiItems = React__default.default.useMemo(() => resolvedOptions.length > 0 ? components_MultiSelect.toBaseUiItems(resolvedOptions) : undefined, [resolvedOptions]);
|
|
239
|
+
const hasMoreLazy = (props.isAsyncLoadOptionEnabled ?? false) &&
|
|
240
|
+
typeof props.totalOptionsCount === "number" &&
|
|
241
|
+
flatOptions.length < props.totalOptionsCount;
|
|
242
|
+
const loaderCallbackRef = useLazyLoadSentinel({
|
|
243
|
+
fetchMore: props.fetchMore,
|
|
244
|
+
isEnabled: props.isAsyncLoadOptionEnabled ?? false,
|
|
245
|
+
});
|
|
246
|
+
return {
|
|
247
|
+
isAsync,
|
|
248
|
+
resolvedOptions,
|
|
249
|
+
flatOptions,
|
|
250
|
+
isGrouped,
|
|
251
|
+
isLoading,
|
|
252
|
+
handleAsyncInputChange,
|
|
253
|
+
baseUiItems,
|
|
254
|
+
hasMoreLazy,
|
|
255
|
+
loaderCallbackRef,
|
|
256
|
+
};
|
|
257
|
+
}
|
|
258
|
+
|
|
259
|
+
const SIZE_CONFIG$1 = {
|
|
260
|
+
small: {
|
|
261
|
+
chips: "min-h-7 text-xs gap-0.5 px-1 py-0.5",
|
|
262
|
+
input: "text-xs",
|
|
263
|
+
chip: "h-4.5 text-[0.6875rem] px-1",
|
|
264
|
+
},
|
|
265
|
+
medium: {
|
|
266
|
+
chips: "min-h-8 text-sm gap-1 px-2.5 py-1",
|
|
267
|
+
input: "text-sm",
|
|
268
|
+
chip: "h-5.25 text-xs px-1.5",
|
|
269
|
+
},
|
|
270
|
+
large: {
|
|
271
|
+
chips: "min-h-10 text-sm gap-1 px-2.5 py-1.5",
|
|
272
|
+
input: "text-sm",
|
|
273
|
+
chip: "h-6 text-xs px-2",
|
|
274
|
+
},
|
|
275
|
+
};
|
|
276
|
+
|
|
277
|
+
function useMultiSelectState(props) {
|
|
278
|
+
const { id: idProp, size = "medium", label = "", error = "", helpText = "", value: valueProp, defaultValue, onChange, dataTestId, isCreatable = false, onCreateOption, formatCreateLabel = (v) => `Create "${v}"`, children, } = props;
|
|
279
|
+
const opt = useMultiSelectOptions(props);
|
|
280
|
+
const generatedId = React.useId();
|
|
281
|
+
const id = idProp ?? generatedId;
|
|
282
|
+
const errorId = `error_${id}`;
|
|
283
|
+
const helpTextId = `helpText_${id}`;
|
|
284
|
+
const sizeConfig = SIZE_CONFIG$1[size];
|
|
285
|
+
const isControlled = valueProp !== undefined;
|
|
286
|
+
const [internalValue, setInternalValue] = React.useState(defaultValue ?? []);
|
|
287
|
+
const selectedValues = isControlled ? valueProp : internalValue;
|
|
288
|
+
const handleChange = React.useCallback((values) => {
|
|
289
|
+
setInternalValue(values);
|
|
290
|
+
onChange?.(values);
|
|
291
|
+
}, [onChange]);
|
|
292
|
+
const { showCreateOption, effectiveItems, creatableFilter, handleInputValueChange, handleValueChange, } = components_MultiSelect.useCreatableItems({
|
|
293
|
+
isCreatable,
|
|
294
|
+
isGrouped: opt.isGrouped,
|
|
295
|
+
flatOptions: opt.flatOptions,
|
|
296
|
+
selectedValues,
|
|
297
|
+
baseUiItems: opt.baseUiItems,
|
|
298
|
+
onCreateOption,
|
|
299
|
+
onChange: handleChange,
|
|
300
|
+
onAsyncInputChange: opt.isAsync ? opt.handleAsyncInputChange : undefined,
|
|
301
|
+
children,
|
|
302
|
+
});
|
|
303
|
+
const ariaDescribedBy = buildAriaDescribedBy(error, errorId, helpText, helpTextId);
|
|
304
|
+
const testIdPrefix = buildTestIdPrefix(dataTestId, label);
|
|
305
|
+
const flatOptionsMap = React.useMemo(() => new Map(opt.flatOptions.map(o => [o.value, o])), [opt.flatOptions]);
|
|
306
|
+
const labelForValue = React.useCallback((val) => {
|
|
307
|
+
if (val.startsWith(components_MultiSelect.CREATE_PREFIX)) {
|
|
308
|
+
return formatCreateLabel(val.slice(components_MultiSelect.CREATE_PREFIX.length));
|
|
309
|
+
}
|
|
310
|
+
return flatOptionsMap.get(val)?.label ?? val;
|
|
311
|
+
}, [flatOptionsMap, formatCreateLabel]);
|
|
312
|
+
return {
|
|
313
|
+
...opt,
|
|
314
|
+
id,
|
|
315
|
+
errorId,
|
|
316
|
+
helpTextId,
|
|
317
|
+
sizeConfig,
|
|
318
|
+
isControlled,
|
|
319
|
+
selectedValues,
|
|
320
|
+
effectiveItems,
|
|
321
|
+
creatableFilter,
|
|
322
|
+
handleInputValueChange,
|
|
323
|
+
handleValueChange,
|
|
324
|
+
showCreateOption,
|
|
325
|
+
ariaDescribedBy,
|
|
326
|
+
testIdPrefix,
|
|
327
|
+
labelForValue,
|
|
328
|
+
flatOptionsMap,
|
|
329
|
+
};
|
|
330
|
+
}
|
|
331
|
+
|
|
332
|
+
const MultiSelectCombobox = React.forwardRef((p, ref) => {
|
|
333
|
+
const [anchorEl, setAnchorEl] = React.useState(null);
|
|
334
|
+
const mergedRef = React.useCallback((node) => {
|
|
335
|
+
setAnchorEl(node);
|
|
336
|
+
if (typeof ref === "function")
|
|
337
|
+
ref(node);
|
|
338
|
+
else if (ref)
|
|
339
|
+
ref.current = node;
|
|
340
|
+
}, [ref]);
|
|
341
|
+
const handleClick = React.useCallback((e) => {
|
|
342
|
+
if (!p.isSearchable) {
|
|
343
|
+
e.currentTarget.querySelector("input")?.focus();
|
|
344
|
+
}
|
|
345
|
+
}, [p.isSearchable]);
|
|
346
|
+
return (jsxRuntime.jsxs(primitives_Combobox.Combobox, { multiple: true, name: p.name, ...(p.effectiveItems && !p.children
|
|
347
|
+
? {
|
|
348
|
+
items: p.effectiveItems,
|
|
349
|
+
itemToStringLabel: p.labelForValue,
|
|
350
|
+
...(!p.isSearchable || p.isAsync
|
|
351
|
+
? { filter: null }
|
|
352
|
+
: p.isCreatable
|
|
353
|
+
? { filter: p.creatableFilter }
|
|
354
|
+
: {}),
|
|
355
|
+
}
|
|
356
|
+
: {}), ...(p.isControlled
|
|
357
|
+
? { value: p.valueProp }
|
|
358
|
+
: { defaultValue: p.defaultValue }), onValueChange: p.handleValueChange, ...(p.isCreatable || p.isAsync
|
|
359
|
+
? { onInputValueChange: p.handleInputValueChange }
|
|
360
|
+
: {}), onOpenChange: p.onOpenChange, disabled: p.isDisabled, autoHighlight: p.autoHighlight, children: [jsxRuntime.jsx("div", { ref: mergedRef, onClick: handleClick, className: !p.isSearchable ? "cursor-pointer" : undefined, children: jsxRuntime.jsxs(primitives_Combobox.ComboboxChips, { className: utils.cn(p.sizeConfig.chips, !!p.error &&
|
|
361
|
+
"border-destructive ring-3 ring-destructive/20 dark:border-destructive/50 dark:ring-destructive/40", p.chipsClassName), ...(p.testIdPrefix
|
|
362
|
+
? { "data-testid": `${p.testIdPrefix}-select-container` }
|
|
363
|
+
: {}), children: [p.selectedValues.map(val => (jsxRuntime.jsx(primitives_Combobox.ComboboxChip, { className: p.sizeConfig.chip, showRemove: !p.hideChipRemove, ...(p.testIdPrefix
|
|
364
|
+
? { "data-testid": `${p.testIdPrefix}-chip` }
|
|
365
|
+
: {}), children: p.labelForValue(val) }, val))), jsxRuntime.jsx(primitives_Combobox.ComboboxChipsInput, { id: p.id, placeholder: p.isSearchable && p.selectedValues.length === 0
|
|
366
|
+
? p.placeholder
|
|
367
|
+
: undefined, "aria-invalid": !!p.error || undefined, "aria-describedby": p.ariaDescribedBy, "aria-required": p.required || undefined, className: utils.cn(p.sizeConfig.input, !p.isSearchable && "w-0 min-w-0 overflow-hidden p-0 opacity-0"), disabled: p.isDisabled, ...(p.testIdPrefix
|
|
368
|
+
? { "data-testid": `${p.testIdPrefix}-select-input` }
|
|
369
|
+
: {}) })] }) }), jsxRuntime.jsx(primitives_Combobox.ComboboxContent, { anchor: anchorEl, ...p.contentProps, children: jsxRuntime.jsx(components_MultiSelectDropdown.MultiSelectDropdown, { ...p.dropdownProps, labelForValue: p.labelForValue, testIdPrefix: p.testIdPrefix, children: p.children }) })] }));
|
|
370
|
+
});
|
|
371
|
+
MultiSelectCombobox.displayName = "MultiSelectCombobox";
|
|
372
|
+
|
|
373
|
+
const MultiSelect = React.forwardRef((props, ref) => {
|
|
374
|
+
const s = useMultiSelectState(props);
|
|
375
|
+
const label = props.label ?? "";
|
|
376
|
+
const error = props.error ?? "";
|
|
377
|
+
const helpText = props.helpText ?? "";
|
|
378
|
+
const isDisabled = props.isDisabled ?? false;
|
|
379
|
+
const required = props.required ?? false;
|
|
380
|
+
return (jsxRuntime.jsx(components_SelectFieldWrapper.SelectFieldWrapper, { id: s.id, label: label, error: error, helpText: helpText, errorId: s.errorId, helpTextId: s.helpTextId, isDisabled: isDisabled, required: required, testIdPrefix: s.testIdPrefix, labelProps: props.labelProps, className: props.className, children: jsxRuntime.jsx(MultiSelectCombobox, { ref: ref, name: props.name, id: s.id, effectiveItems: s.effectiveItems, labelForValue: s.labelForValue, isSearchable: props.isSearchable ?? true, isAsync: s.isAsync, isCreatable: props.isCreatable ?? false, creatableFilter: s.creatableFilter, isControlled: s.isControlled, valueProp: props.value, defaultValue: props.defaultValue, selectedValues: s.selectedValues, handleValueChange: s.handleValueChange, handleInputValueChange: s.handleInputValueChange, onOpenChange: props.onOpenChange, isDisabled: isDisabled, autoHighlight: props.autoHighlight ?? true, sizeConfig: s.sizeConfig, error: error, chipsClassName: props.chipsClassName, placeholder: props.placeholder ?? "", hideChipRemove: props.hideChipRemove ?? false, ariaDescribedBy: s.ariaDescribedBy, required: required, testIdPrefix: s.testIdPrefix, contentProps: props.contentProps, dropdownProps: {
|
|
381
|
+
resolvedOptions: s.resolvedOptions,
|
|
382
|
+
flatOptionsMap: s.flatOptionsMap,
|
|
383
|
+
isGrouped: s.isGrouped,
|
|
384
|
+
isLoading: s.isLoading,
|
|
385
|
+
loadingMessage: props.loadingMessage ?? "Loading\u2026",
|
|
386
|
+
emptyMessage: props.emptyMessage ?? "No results found.",
|
|
387
|
+
showCreateOption: s.showCreateOption,
|
|
388
|
+
hasMoreLazy: s.hasMoreLazy,
|
|
389
|
+
loaderCallbackRef: s.loaderCallbackRef,
|
|
390
|
+
}, children: props.children }) }));
|
|
391
|
+
});
|
|
392
|
+
MultiSelect.displayName = "MultiSelect";
|
|
393
|
+
|
|
394
|
+
const SIZE_CONFIG = {
|
|
395
|
+
small: { trigger: "h-7 text-xs", size: "sm", clearBtn: "size-3" },
|
|
396
|
+
medium: { trigger: "h-8 text-sm", size: "default", clearBtn: "size-3.5" },
|
|
397
|
+
large: { trigger: "h-10 text-sm", size: "default", clearBtn: "size-3.5" },
|
|
398
|
+
};
|
|
399
|
+
|
|
400
|
+
function useSelectState(props) {
|
|
401
|
+
const { id: idProp, size = "medium", label = "", error = "", helpText = "", placeholder = "", value: valueProp, defaultValue, onChange, isDisabled = false, isClearable = false, required = false, position = "item-aligned", onMenuOpen, onMenuClose, dataTestId, } = props;
|
|
402
|
+
const generatedId = React.useId();
|
|
403
|
+
const id = idProp ?? generatedId;
|
|
404
|
+
const errorId = `error_${id}`;
|
|
405
|
+
const helpTextId = `helpText_${id}`;
|
|
406
|
+
const sizeConfig = SIZE_CONFIG[size];
|
|
407
|
+
const isControlled = valueProp !== undefined;
|
|
408
|
+
const [internalValue, setInternalValue] = React.useState(defaultValue ?? "");
|
|
409
|
+
const currentValue = isControlled ? valueProp : internalValue;
|
|
410
|
+
const handleValueChange = React.useCallback((next) => {
|
|
411
|
+
if (!isControlled)
|
|
412
|
+
setInternalValue(next);
|
|
413
|
+
onChange?.(next);
|
|
414
|
+
}, [isControlled, onChange]);
|
|
415
|
+
const handleClear = React.useCallback((e) => {
|
|
416
|
+
e.stopPropagation();
|
|
417
|
+
e.preventDefault();
|
|
418
|
+
handleValueChange("");
|
|
419
|
+
}, [handleValueChange]);
|
|
420
|
+
const handleOpenChange = React.useCallback((open) => {
|
|
421
|
+
if (open)
|
|
422
|
+
onMenuOpen?.();
|
|
423
|
+
else
|
|
424
|
+
onMenuClose?.();
|
|
425
|
+
}, [onMenuOpen, onMenuClose]);
|
|
426
|
+
const ariaDescribedBy = buildAriaDescribedBy(error, errorId, helpText, helpTextId);
|
|
427
|
+
const testIdPrefix = buildTestIdPrefix(dataTestId, label);
|
|
428
|
+
const showClearButton = isClearable && !!currentValue && !isDisabled;
|
|
429
|
+
return {
|
|
430
|
+
id,
|
|
431
|
+
errorId,
|
|
432
|
+
helpTextId,
|
|
433
|
+
sizeConfig,
|
|
434
|
+
currentValue,
|
|
435
|
+
isControlled,
|
|
436
|
+
handleValueChange,
|
|
437
|
+
handleClear,
|
|
438
|
+
handleOpenChange,
|
|
439
|
+
ariaDescribedBy,
|
|
440
|
+
testIdPrefix,
|
|
441
|
+
showClearButton,
|
|
442
|
+
label,
|
|
443
|
+
error,
|
|
444
|
+
helpText,
|
|
445
|
+
placeholder,
|
|
446
|
+
isDisabled,
|
|
447
|
+
required,
|
|
448
|
+
position,
|
|
449
|
+
};
|
|
450
|
+
}
|
|
451
|
+
|
|
452
|
+
const Select = React.forwardRef((props, ref) => {
|
|
453
|
+
const s = useSelectState(props);
|
|
454
|
+
return (jsxRuntime.jsx(components_SelectFieldWrapper.SelectFieldWrapper, { id: s.id, label: s.label, error: s.error, helpText: s.helpText, errorId: s.errorId, helpTextId: s.helpTextId, isDisabled: s.isDisabled, required: s.required, testIdPrefix: s.testIdPrefix, labelProps: props.labelProps, className: props.className, children: jsxRuntime.jsxs(primitives_Select.Select, { name: props.name, value: s.currentValue, defaultValue: s.isControlled ? undefined : props.defaultValue, onValueChange: s.handleValueChange, onOpenChange: s.handleOpenChange, disabled: s.isDisabled, required: s.required, children: [jsxRuntime.jsx(components_SelectTriggerContent.SelectTriggerContent, { ref: ref, id: s.id, sizeConfig: s.sizeConfig, error: s.error, ariaDescribedBy: s.ariaDescribedBy, triggerClassName: props.triggerClassName, testIdPrefix: s.testIdPrefix, placeholder: s.placeholder, showClearButton: s.showClearButton, handleClear: s.handleClear }), jsxRuntime.jsx(primitives_Select.SelectContent, { position: s.position, ...props.contentProps, ...(s.testIdPrefix
|
|
455
|
+
? { "data-testid": `${s.testIdPrefix}-select-menu` }
|
|
456
|
+
: {}), children: props.children ??
|
|
457
|
+
(props.options
|
|
458
|
+
? components_SelectOptions.renderOptions(props.options, s.testIdPrefix)
|
|
459
|
+
: null) })] }) }));
|
|
460
|
+
});
|
|
461
|
+
Select.displayName = "Select";
|
|
462
|
+
|
|
463
|
+
exports.Accordion = components_Accordion.Accordion;
|
|
464
|
+
exports.Alert = components_Alert.Alert;
|
|
465
|
+
exports.Badge = components_Badge.Badge;
|
|
466
|
+
exports.Button = components_Button.Button;
|
|
467
|
+
exports.Checkbox = components_Checkbox.Checkbox;
|
|
468
|
+
exports.ColorPicker = ColorPicker.ColorPicker;
|
|
469
|
+
exports.Dialog = components_Dialog.Dialog;
|
|
470
|
+
exports.DropdownMenu = components_DropdownMenu.DropdownMenu;
|
|
471
|
+
exports.Input = components_Input.Input;
|
|
472
|
+
exports.cn = utils.cn;
|
|
473
|
+
exports.RadioGroup = components_RadioGroup.RadioGroup;
|
|
474
|
+
exports.Sheet = components_Sheet.Sheet;
|
|
475
|
+
exports.Popover = components_Popover.Popover;
|
|
476
|
+
exports.Toastr = components_Toastr.Toastr;
|
|
477
|
+
exports.Switch = components_Switch.Switch;
|
|
478
|
+
exports.Tabs = components_Tabs.Tabs;
|
|
479
|
+
exports.Textarea = components_Textarea.Textarea;
|
|
480
|
+
exports.Tooltip = components_Tooltip.Tooltip;
|
|
481
|
+
exports.Typography = components_Typography.Typography;
|
|
482
|
+
exports.typographyVariants = components_Typography.typographyVariants;
|
|
47
483
|
exports.DataTable = DataTable.DataTable;
|
|
48
484
|
exports.useColumnOrdering = DataTable.useColumnOrdering;
|
|
49
485
|
exports.useColumnPinning = DataTable.useColumnPinning;
|
|
@@ -52,5 +488,6 @@ exports.useTablePagination = DataTable.useTablePagination;
|
|
|
52
488
|
exports.useTableSelection = DataTable.useTableSelection;
|
|
53
489
|
exports.useTableSort = DataTable.useTableSort;
|
|
54
490
|
exports.useIsMobile = useMobile.useIsMobile;
|
|
55
|
-
exports.
|
|
491
|
+
exports.MultiSelect = MultiSelect;
|
|
492
|
+
exports.Select = Select;
|
|
56
493
|
//# sourceMappingURL=index.js.map
|
package/dist/cjs/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sources":[],"sourcesContent":[],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;"}
|
|
1
|
+
{"version":3,"file":"index.js","sources":["../../../src/utils/hyphenize.ts","../../../src/utils/fieldIds.ts","../../../src/hooks/useAsyncOptions.ts","../../../src/hooks/useLazyLoadSentinel.ts","../../../src/hooks/useMultiSelectOptions.ts","../../../src/components/MultiSelect.constants.ts","../../../src/hooks/useMultiSelectState.ts","../../../src/components/MultiSelectCombobox.tsx","../../../src/components/MultiSelect.tsx","../../../src/components/Select.constants.ts","../../../src/hooks/useSelectState.ts","../../../src/components/Select.tsx"],"sourcesContent":["export function hyphenize(str: string): string {\n return str\n .replace(/([a-z])([A-Z])/g, \"$1-$2\")\n .replace(/[\\s_]+/g, \"-\")\n .toLowerCase();\n}\n","import { hyphenize } from \"./hyphenize\";\n\nexport function buildAriaDescribedBy(\n error: string,\n errorId: string,\n helpText: React.ReactNode,\n helpTextId: string\n): string | undefined {\n return (\n [error ? errorId : null, helpText ? helpTextId : null]\n .filter(Boolean)\n .join(\" \") || undefined\n );\n}\n\nexport function buildTestIdPrefix(\n dataTestId: string | undefined,\n label: string\n): string | undefined {\n return dataTestId ?? (label ? hyphenize(label) : undefined);\n}\n","import { useCallback, useEffect, useRef, useState } from \"react\";\n\nimport type { MultiSelectOptionBase } from \"src/components/MultiSelect.types\";\n\ninterface UseAsyncOptionsConfig {\n loadOptions?: (inputValue: string) => Promise<MultiSelectOptionBase[]>;\n defaultOptions?: boolean | MultiSelectOptionBase[];\n cacheOptions?: boolean;\n}\n\ninterface UseAsyncOptionsReturn {\n asyncOptions: MultiSelectOptionBase[];\n isLoading: boolean;\n handleAsyncInputChange: (value: string) => void;\n}\n\nexport function useAsyncOptions({\n loadOptions,\n defaultOptions = false,\n cacheOptions = false,\n}: UseAsyncOptionsConfig): UseAsyncOptionsReturn {\n const [asyncOptions, setAsyncOptions] = useState<MultiSelectOptionBase[]>(\n () => (Array.isArray(defaultOptions) ? defaultOptions : [])\n );\n const [isLoading, setIsLoading] = useState(false);\n const cacheRef = useRef<Record<string, MultiSelectOptionBase[]>>({});\n const debounceRef = useRef<ReturnType<typeof setTimeout> | null>(null);\n const latestRequestRef = useRef(0);\n const mountedRef = useRef(true);\n\n // Load default options on mount when `defaultOptions === true`\n useEffect(() => {\n if (!loadOptions || defaultOptions !== true) return;\n let cancelled = false;\n setIsLoading(true);\n loadOptions(\"\")\n .then(results => {\n if (cancelled) return;\n setAsyncOptions(results);\n if (cacheOptions) cacheRef.current[\"\"] = results;\n setIsLoading(false);\n })\n .catch(() => {\n if (!cancelled) setIsLoading(false);\n });\n return () => {\n cancelled = true;\n };\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, []);\n\n // Clean up debounce timer and mark unmounted\n useEffect(() => {\n return () => {\n mountedRef.current = false;\n if (debounceRef.current) clearTimeout(debounceRef.current);\n };\n }, []);\n\n const handleAsyncInputChange = useCallback(\n (value: string) => {\n if (!loadOptions) return;\n\n const query = value.trim();\n\n // Check cache first\n if (cacheOptions && query in cacheRef.current) {\n setAsyncOptions(cacheRef.current[query]);\n return;\n }\n\n // Debounce the fetch\n if (debounceRef.current) clearTimeout(debounceRef.current);\n debounceRef.current = setTimeout(() => {\n const requestId = ++latestRequestRef.current;\n setIsLoading(true);\n loadOptions(query)\n .then(results => {\n if (requestId !== latestRequestRef.current || !mountedRef.current)\n return;\n setAsyncOptions(results);\n if (cacheOptions) cacheRef.current[query] = results;\n setIsLoading(false);\n })\n .catch(() => {\n if (\n requestId === latestRequestRef.current &&\n mountedRef.current\n ) {\n setIsLoading(false);\n }\n });\n }, 300);\n },\n [loadOptions, cacheOptions]\n );\n\n return { asyncOptions, isLoading, handleAsyncInputChange };\n}\n","import { useCallback, useEffect, useRef } from \"react\";\n\ninterface UseLazyLoadSentinelConfig {\n fetchMore?: () => void;\n isEnabled: boolean;\n}\n\nexport function useLazyLoadSentinel({\n fetchMore,\n isEnabled,\n}: UseLazyLoadSentinelConfig) {\n const observerRef = useRef<IntersectionObserver | null>(null);\n const fetchMoreRef = useRef(fetchMore);\n fetchMoreRef.current = fetchMore;\n\n const sentinelRef = useCallback(\n (node: HTMLDivElement | null) => {\n observerRef.current?.disconnect();\n observerRef.current = null;\n\n if (!node || !isEnabled) return;\n\n const observer = new IntersectionObserver(\n entries => {\n if (entries[0]?.isIntersecting) fetchMoreRef.current?.();\n },\n { root: null, rootMargin: \"0px\", threshold: 0.1 }\n );\n observer.observe(node);\n observerRef.current = observer;\n },\n [isEnabled]\n );\n\n // Clean up observer on unmount\n useEffect(() => {\n return () => {\n observerRef.current?.disconnect();\n };\n }, []);\n\n return sentinelRef;\n}\n","import React from \"react\";\n\nimport { useAsyncOptions } from \"./useAsyncOptions\";\nimport { useLazyLoadSentinel } from \"./useLazyLoadSentinel\";\nimport {\n flattenOptions,\n hasGroups,\n toBaseUiItems,\n} from \"src/components/MultiSelect.utils\";\nimport type {\n MultiSelectOption,\n MultiSelectProps,\n} from \"src/components/MultiSelect.types\";\n\nexport function useMultiSelectOptions(props: MultiSelectProps) {\n const isAsync = !!props.loadOptions;\n\n const { asyncOptions, isLoading, handleAsyncInputChange } = useAsyncOptions({\n loadOptions: props.loadOptions,\n defaultOptions: props.defaultOptions ?? false,\n cacheOptions: props.cacheOptions ?? false,\n });\n\n const resolvedOptions: MultiSelectOption[] = isAsync\n ? asyncOptions\n : (props.options ?? []);\n const flatOptions = flattenOptions(resolvedOptions);\n const isGrouped = hasGroups(resolvedOptions);\n\n const baseUiItems = React.useMemo(\n () =>\n resolvedOptions.length > 0 ? toBaseUiItems(resolvedOptions) : undefined,\n [resolvedOptions]\n );\n\n const hasMoreLazy =\n (props.isAsyncLoadOptionEnabled ?? false) &&\n typeof props.totalOptionsCount === \"number\" &&\n flatOptions.length < props.totalOptionsCount;\n\n const loaderCallbackRef = useLazyLoadSentinel({\n fetchMore: props.fetchMore,\n isEnabled: props.isAsyncLoadOptionEnabled ?? false,\n });\n\n return {\n isAsync,\n resolvedOptions,\n flatOptions,\n isGrouped,\n isLoading,\n handleAsyncInputChange,\n baseUiItems,\n hasMoreLazy,\n loaderCallbackRef,\n };\n}\n","export const SIZE_CONFIG: Record<\n \"small\" | \"medium\" | \"large\",\n { chips: string; input: string; chip: string }\n> = {\n small: {\n chips: \"min-h-7 text-xs gap-0.5 px-1 py-0.5\",\n input: \"text-xs\",\n chip: \"h-4.5 text-[0.6875rem] px-1\",\n },\n medium: {\n chips: \"min-h-8 text-sm gap-1 px-2.5 py-1\",\n input: \"text-sm\",\n chip: \"h-5.25 text-xs px-1.5\",\n },\n large: {\n chips: \"min-h-10 text-sm gap-1 px-2.5 py-1.5\",\n input: \"text-sm\",\n chip: \"h-6 text-xs px-2\",\n },\n};\n","import { useCallback, useId, useMemo, useState } from \"react\";\n\nimport { buildAriaDescribedBy, buildTestIdPrefix } from \"src/utils/fieldIds\";\nimport { useCreatableItems, CREATE_PREFIX } from \"./useCreatableItems\";\nimport { useMultiSelectOptions } from \"./useMultiSelectOptions\";\nimport { SIZE_CONFIG } from \"src/components/MultiSelect.constants\";\nimport type { MultiSelectProps } from \"src/components/MultiSelect.types\";\n\nexport function useMultiSelectState(props: MultiSelectProps) {\n const {\n id: idProp,\n size = \"medium\",\n label = \"\",\n error = \"\",\n helpText = \"\",\n value: valueProp,\n defaultValue,\n onChange,\n dataTestId,\n isCreatable = false,\n onCreateOption,\n formatCreateLabel = (v: string) => `Create \"${v}\"`,\n children,\n } = props;\n\n const opt = useMultiSelectOptions(props);\n\n const generatedId = useId();\n const id = idProp ?? generatedId;\n const errorId = `error_${id}`;\n const helpTextId = `helpText_${id}`;\n const sizeConfig = SIZE_CONFIG[size];\n\n const isControlled = valueProp !== undefined;\n const [internalValue, setInternalValue] = useState<string[]>(\n defaultValue ?? []\n );\n const selectedValues = isControlled ? valueProp : internalValue;\n\n const handleChange = useCallback(\n (values: string[]) => {\n setInternalValue(values);\n onChange?.(values);\n },\n [onChange]\n );\n\n const {\n showCreateOption,\n effectiveItems,\n creatableFilter,\n handleInputValueChange,\n handleValueChange,\n } = useCreatableItems({\n isCreatable,\n isGrouped: opt.isGrouped,\n flatOptions: opt.flatOptions,\n selectedValues,\n baseUiItems: opt.baseUiItems,\n onCreateOption,\n onChange: handleChange,\n onAsyncInputChange: opt.isAsync ? opt.handleAsyncInputChange : undefined,\n children,\n });\n\n const ariaDescribedBy = buildAriaDescribedBy(error, errorId, helpText, helpTextId);\n const testIdPrefix = buildTestIdPrefix(dataTestId, label);\n\n const flatOptionsMap = useMemo(\n () => new Map(opt.flatOptions.map(o => [o.value, o])),\n [opt.flatOptions]\n );\n\n const labelForValue = useCallback(\n (val: string) => {\n if (val.startsWith(CREATE_PREFIX)) {\n return formatCreateLabel(val.slice(CREATE_PREFIX.length));\n }\n return flatOptionsMap.get(val)?.label ?? val;\n },\n [flatOptionsMap, formatCreateLabel]\n );\n\n return {\n ...opt,\n id,\n errorId,\n helpTextId,\n sizeConfig,\n isControlled,\n selectedValues,\n effectiveItems,\n creatableFilter,\n handleInputValueChange,\n handleValueChange,\n showCreateOption,\n ariaDescribedBy,\n testIdPrefix,\n labelForValue,\n flatOptionsMap,\n };\n}\n","import React, { forwardRef, useCallback, useState } from \"react\";\nimport { cn } from \"src/shadcn/lib/utils\";\nimport {\n Combobox,\n ComboboxContent,\n ComboboxChips,\n ComboboxChip,\n ComboboxChipsInput,\n} from \"src/primitives/Combobox\";\nimport { MultiSelectDropdown } from \"./MultiSelectDropdown\";\nimport type { MultiSelectComboboxProps } from \"./MultiSelectCombobox.types\";\n\nexport const MultiSelectCombobox = forwardRef<\n HTMLDivElement,\n MultiSelectComboboxProps\n>((p, ref) => {\n const [anchorEl, setAnchorEl] = useState<HTMLDivElement | null>(null);\n\n const mergedRef = useCallback(\n (node: HTMLDivElement | null) => {\n setAnchorEl(node);\n if (typeof ref === \"function\") ref(node);\n else if (ref)\n (ref as React.MutableRefObject<HTMLDivElement | null>).current = node;\n },\n [ref]\n );\n\n const handleClick = useCallback(\n (e: React.MouseEvent<HTMLDivElement>) => {\n if (!p.isSearchable) {\n (e.currentTarget as HTMLElement).querySelector(\"input\")?.focus();\n }\n },\n [p.isSearchable]\n );\n\n return (\n <Combobox\n multiple\n name={p.name}\n {...(p.effectiveItems && !p.children\n ? {\n items: p.effectiveItems,\n itemToStringLabel: p.labelForValue,\n ...(!p.isSearchable || p.isAsync\n ? { filter: null }\n : p.isCreatable\n ? { filter: p.creatableFilter }\n : {}),\n }\n : {})}\n {...(p.isControlled\n ? { value: p.valueProp }\n : { defaultValue: p.defaultValue })}\n onValueChange={p.handleValueChange}\n {...(p.isCreatable || p.isAsync\n ? { onInputValueChange: p.handleInputValueChange }\n : {})}\n onOpenChange={p.onOpenChange}\n disabled={p.isDisabled}\n autoHighlight={p.autoHighlight}\n >\n <div\n ref={mergedRef}\n onClick={handleClick}\n className={!p.isSearchable ? \"cursor-pointer\" : undefined}\n >\n <ComboboxChips\n className={cn(\n p.sizeConfig.chips,\n !!p.error &&\n \"border-destructive ring-3 ring-destructive/20 dark:border-destructive/50 dark:ring-destructive/40\",\n p.chipsClassName\n )}\n {...(p.testIdPrefix\n ? { \"data-testid\": `${p.testIdPrefix}-select-container` }\n : {})}\n >\n {p.selectedValues.map(val => (\n <ComboboxChip\n key={val}\n className={p.sizeConfig.chip}\n showRemove={!p.hideChipRemove}\n {...(p.testIdPrefix\n ? { \"data-testid\": `${p.testIdPrefix}-chip` }\n : {})}\n >\n {p.labelForValue(val)}\n </ComboboxChip>\n ))}\n <ComboboxChipsInput\n id={p.id}\n placeholder={\n p.isSearchable && p.selectedValues.length === 0\n ? p.placeholder\n : undefined\n }\n aria-invalid={!!p.error || undefined}\n aria-describedby={p.ariaDescribedBy}\n aria-required={p.required || undefined}\n className={cn(\n p.sizeConfig.input,\n !p.isSearchable && \"w-0 min-w-0 overflow-hidden p-0 opacity-0\"\n )}\n disabled={p.isDisabled}\n {...(p.testIdPrefix\n ? { \"data-testid\": `${p.testIdPrefix}-select-input` }\n : {})}\n />\n </ComboboxChips>\n </div>\n <ComboboxContent anchor={anchorEl} {...p.contentProps}>\n <MultiSelectDropdown\n {...p.dropdownProps}\n labelForValue={p.labelForValue}\n testIdPrefix={p.testIdPrefix}\n >\n {p.children}\n </MultiSelectDropdown>\n </ComboboxContent>\n </Combobox>\n );\n});\nMultiSelectCombobox.displayName = \"MultiSelectCombobox\";\n","import { forwardRef } from \"react\";\n\nimport { useMultiSelectState } from \"src/hooks/useMultiSelectState\";\nimport { SelectFieldWrapper } from \"./SelectFieldWrapper\";\nimport { MultiSelectCombobox } from \"./MultiSelectCombobox\";\nimport type { MultiSelectProps } from \"./MultiSelect.types\";\n\n// Re-export types for barrel file consumers\nexport type {\n MultiSelectProps,\n MultiSelectOption,\n MultiSelectOptionBase,\n MultiSelectOptionGroup,\n} from \"./MultiSelect.types\";\n\nconst MultiSelect = forwardRef<HTMLDivElement, MultiSelectProps>(\n (props, ref) => {\n const s = useMultiSelectState(props);\n const label = props.label ?? \"\";\n const error = props.error ?? \"\";\n const helpText = props.helpText ?? \"\";\n const isDisabled = props.isDisabled ?? false;\n const required = props.required ?? false;\n\n return (\n <SelectFieldWrapper\n id={s.id}\n label={label}\n error={error}\n helpText={helpText}\n errorId={s.errorId}\n helpTextId={s.helpTextId}\n isDisabled={isDisabled}\n required={required}\n\n testIdPrefix={s.testIdPrefix}\n labelProps={props.labelProps}\n className={props.className}\n >\n <MultiSelectCombobox\n ref={ref}\n name={props.name}\n id={s.id}\n effectiveItems={s.effectiveItems}\n labelForValue={s.labelForValue}\n isSearchable={props.isSearchable ?? true}\n isAsync={s.isAsync}\n isCreatable={props.isCreatable ?? false}\n creatableFilter={s.creatableFilter}\n isControlled={s.isControlled}\n valueProp={props.value}\n defaultValue={props.defaultValue}\n selectedValues={s.selectedValues}\n handleValueChange={\n s.handleValueChange as (...args: unknown[]) => void\n }\n handleInputValueChange={\n s.handleInputValueChange as (...args: unknown[]) => void\n }\n onOpenChange={props.onOpenChange}\n isDisabled={isDisabled}\n autoHighlight={props.autoHighlight ?? true}\n sizeConfig={s.sizeConfig}\n error={error}\n chipsClassName={props.chipsClassName}\n placeholder={props.placeholder ?? \"\"}\n hideChipRemove={props.hideChipRemove ?? false}\n ariaDescribedBy={s.ariaDescribedBy}\n required={required}\n testIdPrefix={s.testIdPrefix}\n contentProps={props.contentProps}\n dropdownProps={{\n resolvedOptions: s.resolvedOptions,\n flatOptionsMap: s.flatOptionsMap,\n isGrouped: s.isGrouped,\n isLoading: s.isLoading,\n loadingMessage: props.loadingMessage ?? \"Loading\\u2026\",\n emptyMessage: props.emptyMessage ?? \"No results found.\",\n showCreateOption: s.showCreateOption,\n hasMoreLazy: s.hasMoreLazy,\n loaderCallbackRef: s.loaderCallbackRef,\n }}\n >\n {props.children}\n </MultiSelectCombobox>\n </SelectFieldWrapper>\n );\n }\n);\n\nMultiSelect.displayName = \"MultiSelect\";\n\nexport { MultiSelect };\n","export const SIZE_CONFIG: Record<\n \"small\" | \"medium\" | \"large\",\n { trigger: string; size: \"sm\" | \"default\"; clearBtn: string }\n> = {\n small: { trigger: \"h-7 text-xs\", size: \"sm\", clearBtn: \"size-3\" },\n medium: { trigger: \"h-8 text-sm\", size: \"default\", clearBtn: \"size-3.5\" },\n large: { trigger: \"h-10 text-sm\", size: \"default\", clearBtn: \"size-3.5\" },\n};\n","import React, { useCallback, useId, useState } from \"react\";\n\nimport { buildAriaDescribedBy, buildTestIdPrefix } from \"src/utils/fieldIds\";\nimport { SIZE_CONFIG } from \"src/components/Select.constants\";\nimport type { SelectProps } from \"src/components/Select.types\";\n\nexport function useSelectState(props: SelectProps) {\n const {\n id: idProp,\n size = \"medium\",\n label = \"\",\n error = \"\",\n helpText = \"\",\n placeholder = \"\",\n value: valueProp,\n defaultValue,\n onChange,\n isDisabled = false,\n isClearable = false,\n required = false,\n position = \"item-aligned\",\n onMenuOpen,\n onMenuClose,\n dataTestId,\n } = props;\n\n const generatedId = useId();\n const id = idProp ?? generatedId;\n const errorId = `error_${id}`;\n const helpTextId = `helpText_${id}`;\n const sizeConfig = SIZE_CONFIG[size];\n\n const isControlled = valueProp !== undefined;\n const [internalValue, setInternalValue] = useState(defaultValue ?? \"\");\n const currentValue = isControlled ? valueProp : internalValue;\n\n const handleValueChange = useCallback(\n (next: string) => {\n if (!isControlled) setInternalValue(next);\n onChange?.(next);\n },\n [isControlled, onChange]\n );\n\n const handleClear = useCallback(\n (e: React.MouseEvent) => {\n e.stopPropagation();\n e.preventDefault();\n handleValueChange(\"\");\n },\n [handleValueChange]\n );\n\n const handleOpenChange = useCallback(\n (open: boolean) => {\n if (open) onMenuOpen?.();\n else onMenuClose?.();\n },\n [onMenuOpen, onMenuClose]\n );\n\n const ariaDescribedBy = buildAriaDescribedBy(error, errorId, helpText, helpTextId);\n const testIdPrefix = buildTestIdPrefix(dataTestId, label);\n const showClearButton = isClearable && !!currentValue && !isDisabled;\n\n return {\n id,\n errorId,\n helpTextId,\n sizeConfig,\n currentValue,\n isControlled,\n handleValueChange,\n handleClear,\n handleOpenChange,\n ariaDescribedBy,\n testIdPrefix,\n showClearButton,\n label,\n error,\n helpText,\n placeholder,\n isDisabled,\n required,\n position,\n };\n}\n","import { forwardRef } from \"react\";\n\nimport {\n Select as PrimitiveSelect,\n SelectContent,\n} from \"src/primitives/Select\";\nimport { useSelectState } from \"src/hooks/useSelectState\";\nimport { SelectFieldWrapper } from \"./SelectFieldWrapper\";\nimport { SelectTriggerContent } from \"./SelectTriggerContent\";\nimport { renderOptions } from \"./SelectOptions\";\nimport type { SelectProps } from \"./Select.types\";\n\n// Re-export types for barrel file consumers\nexport type {\n SelectProps,\n SelectOption,\n SelectOptionBase,\n SelectOptionGroup,\n} from \"./Select.types\";\n\nconst Select = forwardRef<HTMLButtonElement, SelectProps>((props, ref) => {\n const s = useSelectState(props);\n\n return (\n <SelectFieldWrapper\n id={s.id}\n label={s.label}\n error={s.error}\n helpText={s.helpText}\n errorId={s.errorId}\n helpTextId={s.helpTextId}\n isDisabled={s.isDisabled}\n required={s.required}\n testIdPrefix={s.testIdPrefix}\n labelProps={props.labelProps}\n className={props.className}\n >\n <PrimitiveSelect\n name={props.name}\n value={s.currentValue}\n defaultValue={s.isControlled ? undefined : props.defaultValue}\n onValueChange={s.handleValueChange}\n onOpenChange={s.handleOpenChange}\n disabled={s.isDisabled}\n required={s.required}\n >\n <SelectTriggerContent\n ref={ref}\n id={s.id}\n sizeConfig={s.sizeConfig}\n error={s.error}\n ariaDescribedBy={s.ariaDescribedBy}\n triggerClassName={props.triggerClassName}\n testIdPrefix={s.testIdPrefix}\n placeholder={s.placeholder}\n showClearButton={s.showClearButton}\n handleClear={s.handleClear}\n />\n <SelectContent\n position={s.position}\n {...props.contentProps}\n {...(s.testIdPrefix\n ? { \"data-testid\": `${s.testIdPrefix}-select-menu` }\n : {})}\n >\n {props.children ??\n (props.options\n ? renderOptions(props.options, s.testIdPrefix)\n : null)}\n </SelectContent>\n </PrimitiveSelect>\n </SelectFieldWrapper>\n );\n});\n\nSelect.displayName = \"Select\";\n\nexport { Select };\n"],"names":["useState","useRef","useEffect","useCallback","flattenOptions","hasGroups","React","toBaseUiItems","SIZE_CONFIG","useId","useCreatableItems","useMemo","CREATE_PREFIX","forwardRef","_jsxs","Combobox","_jsx","ComboboxChips","cn","ComboboxChip","ComboboxChipsInput","ComboboxContent","MultiSelectDropdown","SelectFieldWrapper","PrimitiveSelect","SelectTriggerContent","SelectContent","renderOptions"],"mappings":"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"}
|