@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
|
@@ -0,0 +1,37 @@
|
|
|
1
|
+
'use strict';
|
|
2
|
+
|
|
3
|
+
var jsxRuntime = require('react/jsx-runtime');
|
|
4
|
+
var primitives_Combobox = require('../primitives/Combobox.js');
|
|
5
|
+
var primitives_Spinner = require('../primitives/Spinner.js');
|
|
6
|
+
var components_OptionItem = require('./OptionItem.js');
|
|
7
|
+
require('react');
|
|
8
|
+
require('../utils-CTr7wn5d.js');
|
|
9
|
+
require('../button-B8XGl69v.js');
|
|
10
|
+
require('../index-BZhTddX0.js');
|
|
11
|
+
require('../index-DuNgWCXZ.js');
|
|
12
|
+
require('../index-D-iDn9RI.js');
|
|
13
|
+
require('../input-group-DoK0-4fL.js');
|
|
14
|
+
require('../input-CgKPISj_.js');
|
|
15
|
+
require('../textarea-CZSSY75H.js');
|
|
16
|
+
require('../x-Brw3FJst.js');
|
|
17
|
+
require('../createLucideIcon-D0tRgV6l.js');
|
|
18
|
+
require('../check-BQgcDXys.js');
|
|
19
|
+
require('../chevron-down-CPsWSS51.js');
|
|
20
|
+
require('../with-selector-u4xTSzCv.js');
|
|
21
|
+
require('../index-BrpkRQoS.js');
|
|
22
|
+
require('react-dom');
|
|
23
|
+
require('../floating-ui.react-dom-B4Aw6O7R.js');
|
|
24
|
+
require('../index-DnKJmaCq.js');
|
|
25
|
+
require('../loader-circle-Bw7zP2Gn.js');
|
|
26
|
+
require('../useCreatableItems-BTHtd7uo.js');
|
|
27
|
+
require('./shared.js');
|
|
28
|
+
|
|
29
|
+
function MultiSelectDropdown({ resolvedOptions, flatOptionsMap, isGrouped, isLoading, loadingMessage, emptyMessage, showCreateOption, labelForValue, testIdPrefix, hasMoreLazy, loaderCallbackRef, children, }) {
|
|
30
|
+
return (jsxRuntime.jsxs(primitives_Combobox.ComboboxList, { ...(testIdPrefix
|
|
31
|
+
? { "data-testid": `${testIdPrefix}-select-menu` }
|
|
32
|
+
: {}), children: [isLoading && (jsxRuntime.jsx("div", { className: "flex w-full justify-center py-2 text-center text-sm text-muted-foreground", children: loadingMessage })), !isLoading && !showCreateOption && (jsxRuntime.jsx(primitives_Combobox.ComboboxEmpty, { children: emptyMessage })), children ??
|
|
33
|
+
(resolvedOptions.length > 0 || showCreateOption ? (isGrouped ? (jsxRuntime.jsx(primitives_Combobox.ComboboxCollection, { children: (group) => (jsxRuntime.jsxs(primitives_Combobox.ComboboxGroup, { items: group.items, children: [group.label && jsxRuntime.jsx(primitives_Combobox.ComboboxLabel, { children: group.label }), jsxRuntime.jsx(primitives_Combobox.ComboboxCollection, { children: (val) => (jsxRuntime.jsx(components_OptionItem.OptionItem, { val: val, flatOptionsMap: flatOptionsMap, labelForValue: labelForValue, testIdPrefix: testIdPrefix }, val)) })] }, group.label || "__create__")) })) : (jsxRuntime.jsx(primitives_Combobox.ComboboxCollection, { children: (val) => (jsxRuntime.jsx(components_OptionItem.OptionItem, { val: val, flatOptionsMap: flatOptionsMap, labelForValue: labelForValue, testIdPrefix: testIdPrefix }, val)) }))) : null), hasMoreLazy && (jsxRuntime.jsx("div", { ref: loaderCallbackRef, className: "flex w-full items-center justify-center py-3", "data-testid": testIdPrefix ? `${testIdPrefix}-lazy-loader` : "lazy-loader", children: jsxRuntime.jsx(primitives_Spinner.Spinner, {}) }))] }));
|
|
34
|
+
}
|
|
35
|
+
|
|
36
|
+
exports.MultiSelectDropdown = MultiSelectDropdown;
|
|
37
|
+
//# sourceMappingURL=MultiSelectDropdown.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"MultiSelectDropdown.js","sources":["../../../../src/components/MultiSelectDropdown.tsx"],"sourcesContent":["import type React from \"react\";\n\nimport {\n ComboboxList,\n ComboboxGroup,\n ComboboxLabel,\n ComboboxCollection,\n ComboboxEmpty,\n} from \"src/primitives/Combobox\";\nimport { Spinner } from \"src/primitives/Spinner\";\nimport { OptionItem } from \"./OptionItem\";\nimport type { DropdownPassthroughProps } from \"./MultiSelectCombobox.types\";\n\ninterface MultiSelectDropdownProps extends DropdownPassthroughProps {\n labelForValue: (val: string) => string;\n testIdPrefix?: string;\n children?: React.ReactNode;\n}\n\nexport function MultiSelectDropdown({\n resolvedOptions,\n flatOptionsMap,\n isGrouped,\n isLoading,\n loadingMessage,\n emptyMessage,\n showCreateOption,\n labelForValue,\n testIdPrefix,\n hasMoreLazy,\n loaderCallbackRef,\n children,\n}: MultiSelectDropdownProps) {\n return (\n <ComboboxList\n {...(testIdPrefix\n ? { \"data-testid\": `${testIdPrefix}-select-menu` }\n : {})}\n >\n {isLoading && (\n <div className=\"flex w-full justify-center py-2 text-center text-sm text-muted-foreground\">\n {loadingMessage}\n </div>\n )}\n {!isLoading && !showCreateOption && (\n <ComboboxEmpty>{emptyMessage}</ComboboxEmpty>\n )}\n {children ??\n (resolvedOptions.length > 0 || showCreateOption ? (\n isGrouped ? (\n <ComboboxCollection>\n {(group: { label: string; items: string[] }) => (\n <ComboboxGroup\n key={group.label || \"__create__\"}\n items={group.items}\n >\n {group.label && <ComboboxLabel>{group.label}</ComboboxLabel>}\n <ComboboxCollection>\n {(val: string) => (\n <OptionItem\n key={val}\n val={val}\n flatOptionsMap={flatOptionsMap}\n labelForValue={labelForValue}\n testIdPrefix={testIdPrefix}\n />\n )}\n </ComboboxCollection>\n </ComboboxGroup>\n )}\n </ComboboxCollection>\n ) : (\n <ComboboxCollection>\n {(val: string) => (\n <OptionItem\n key={val}\n val={val}\n flatOptionsMap={flatOptionsMap}\n labelForValue={labelForValue}\n testIdPrefix={testIdPrefix}\n />\n )}\n </ComboboxCollection>\n )\n ) : null)}\n {hasMoreLazy && (\n <div\n ref={loaderCallbackRef}\n className=\"flex w-full items-center justify-center py-3\"\n data-testid={\n testIdPrefix ? `${testIdPrefix}-lazy-loader` : \"lazy-loader\"\n }\n >\n <Spinner />\n </div>\n )}\n </ComboboxList>\n );\n}\n"],"names":["_jsxs","ComboboxList","_jsx","ComboboxEmpty","ComboboxCollection","ComboboxGroup","ComboboxLabel","OptionItem","Spinner"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;AAmBM,SAAU,mBAAmB,CAAC,EAClC,eAAe,EACf,cAAc,EACd,SAAS,EACT,SAAS,EACT,cAAc,EACd,YAAY,EACZ,gBAAgB,EAChB,aAAa,EACb,YAAY,EACZ,WAAW,EACX,iBAAiB,EACjB,QAAQ,GACiB,EAAA;AACzB,IAAA,QACEA,eAAA,CAACC,gCAAY,EAAA,EAAA,IACN;AACH,cAAE,EAAE,aAAa,EAAE,CAAA,EAAG,YAAY,cAAc;AAChD,cAAE,EAAE,CAAC,EAAA,QAAA,EAAA,CAEN,SAAS,KACRC,cAAA,CAAA,KAAA,EAAA,EAAK,SAAS,EAAC,2EAA2E,EAAA,QAAA,EACvF,cAAc,EAAA,CACX,CACP,EACA,CAAC,SAAS,IAAI,CAAC,gBAAgB,KAC9BA,cAAA,CAACC,iCAAa,EAAA,EAAA,QAAA,EAAE,YAAY,EAAA,CAAiB,CAC9C,EACA,QAAQ;AACP,iBAAC,eAAe,CAAC,MAAM,GAAG,CAAC,IAAI,gBAAgB,IAC7C,SAAS,IACPD,cAAA,CAACE,sCAAkB,EAAA,EAAA,QAAA,EAChB,CAAC,KAAyC,MACzCJ,gBAACK,iCAAa,EAAA,EAEZ,KAAK,EAAE,KAAK,CAAC,KAAK,aAEjB,KAAK,CAAC,KAAK,IAAIH,cAAA,CAACI,iCAAa,EAAA,EAAA,QAAA,EAAE,KAAK,CAAC,KAAK,EAAA,CAAiB,EAC5DJ,eAACE,sCAAkB,EAAA,EAAA,QAAA,EAChB,CAAC,GAAW,MACXF,cAAA,CAACK,gCAAU,IAET,GAAG,EAAE,GAAG,EACR,cAAc,EAAE,cAAc,EAC9B,aAAa,EAAE,aAAa,EAC5B,YAAY,EAAE,YAAY,EAAA,EAJrB,GAAG,CAKR,CACH,EAAA,CACkB,KAdhB,KAAK,CAAC,KAAK,IAAI,YAAY,CAelB,CACjB,EAAA,CACkB,KAErBL,cAAA,CAACE,sCAAkB,EAAA,EAAA,QAAA,EAChB,CAAC,GAAW,MACXF,cAAA,CAACK,gCAAU,EAAA,EAET,GAAG,EAAE,GAAG,EACR,cAAc,EAAE,cAAc,EAC9B,aAAa,EAAE,aAAa,EAC5B,YAAY,EAAE,YAAY,EAAA,EAJrB,GAAG,CAKR,CACH,EAAA,CACkB,CACtB,IACC,IAAI,CAAC,EACV,WAAW,KACVL,wBACE,GAAG,EAAE,iBAAiB,EACtB,SAAS,EAAC,8CAA8C,EAAA,aAAA,EAEtD,YAAY,GAAG,CAAA,EAAG,YAAY,CAAA,YAAA,CAAc,GAAG,aAAa,EAAA,QAAA,EAG9DA,eAACM,0BAAO,EAAA,EAAA,CAAG,GACP,CACP,CAAA,EAAA,CACY;AAEnB;;;;"}
|
|
@@ -0,0 +1,34 @@
|
|
|
1
|
+
'use strict';
|
|
2
|
+
|
|
3
|
+
var jsxRuntime = require('react/jsx-runtime');
|
|
4
|
+
var primitives_Combobox = require('../primitives/Combobox.js');
|
|
5
|
+
var components_MultiSelect = require('../useCreatableItems-BTHtd7uo.js');
|
|
6
|
+
require('react');
|
|
7
|
+
require('../utils-CTr7wn5d.js');
|
|
8
|
+
require('../button-B8XGl69v.js');
|
|
9
|
+
require('../index-BZhTddX0.js');
|
|
10
|
+
require('../index-DuNgWCXZ.js');
|
|
11
|
+
require('../index-D-iDn9RI.js');
|
|
12
|
+
require('../input-group-DoK0-4fL.js');
|
|
13
|
+
require('../input-CgKPISj_.js');
|
|
14
|
+
require('../textarea-CZSSY75H.js');
|
|
15
|
+
require('../x-Brw3FJst.js');
|
|
16
|
+
require('../createLucideIcon-D0tRgV6l.js');
|
|
17
|
+
require('../check-BQgcDXys.js');
|
|
18
|
+
require('../chevron-down-CPsWSS51.js');
|
|
19
|
+
require('../with-selector-u4xTSzCv.js');
|
|
20
|
+
require('../index-BrpkRQoS.js');
|
|
21
|
+
require('react-dom');
|
|
22
|
+
require('../floating-ui.react-dom-B4Aw6O7R.js');
|
|
23
|
+
require('../index-DnKJmaCq.js');
|
|
24
|
+
require('./shared.js');
|
|
25
|
+
|
|
26
|
+
function OptionItem({ val, flatOptionsMap, labelForValue, testIdPrefix, }) {
|
|
27
|
+
return (jsxRuntime.jsx(primitives_Combobox.ComboboxItem, { value: val, disabled: !val.startsWith(components_MultiSelect.CREATE_PREFIX) &&
|
|
28
|
+
flatOptionsMap.get(val)?.disabled, className: val.startsWith(components_MultiSelect.CREATE_PREFIX) ? "text-primary" : undefined, ...(testIdPrefix
|
|
29
|
+
? { "data-testid": `${testIdPrefix}-select-option` }
|
|
30
|
+
: {}), children: labelForValue(val) }, val));
|
|
31
|
+
}
|
|
32
|
+
|
|
33
|
+
exports.OptionItem = OptionItem;
|
|
34
|
+
//# sourceMappingURL=OptionItem.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"OptionItem.js","sources":["../../../../src/components/OptionItem.tsx"],"sourcesContent":["import { ComboboxItem } from \"src/primitives/Combobox\";\nimport { CREATE_PREFIX } from \"src/hooks/useCreatableItems\";\nimport type { OptionBase } from \"./shared.types\";\n\ninterface OptionItemProps {\n val: string;\n flatOptionsMap: Map<string, OptionBase>;\n labelForValue: (val: string) => string;\n testIdPrefix?: string;\n}\n\nexport function OptionItem({\n val,\n flatOptionsMap,\n labelForValue,\n testIdPrefix,\n}: OptionItemProps) {\n return (\n <ComboboxItem\n key={val}\n value={val}\n disabled={\n !val.startsWith(CREATE_PREFIX) &&\n flatOptionsMap.get(val)?.disabled\n }\n className={val.startsWith(CREATE_PREFIX) ? \"text-primary\" : undefined}\n {...(testIdPrefix\n ? { \"data-testid\": `${testIdPrefix}-select-option` }\n : {})}\n >\n {labelForValue(val)}\n </ComboboxItem>\n );\n}\n"],"names":["_jsx","ComboboxItem","CREATE_PREFIX"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;AAWM,SAAU,UAAU,CAAC,EACzB,GAAG,EACH,cAAc,EACd,aAAa,EACb,YAAY,GACI,EAAA;AAChB,IAAA,QACEA,cAAA,CAACC,gCAAY,EAAA,EAEX,KAAK,EAAE,GAAG,EACV,QAAQ,EACN,CAAC,GAAG,CAAC,UAAU,CAACC,oCAAa,CAAC;YAC9B,cAAc,CAAC,GAAG,CAAC,GAAG,CAAC,EAAE,QAAQ,EAEnC,SAAS,EAAE,GAAG,CAAC,UAAU,CAACA,oCAAa,CAAC,GAAG,cAAc,GAAG,SAAS,EAAA,IAChE;AACH,cAAE,EAAE,aAAa,EAAE,CAAA,EAAG,YAAY,gBAAgB;AAClD,cAAE,EAAE,CAAC,EAAA,QAAA,EAEN,aAAa,CAAC,GAAG,CAAC,EAAA,EAXd,GAAG,CAYK;AAEnB;;;;"}
|
|
@@ -0,0 +1,123 @@
|
|
|
1
|
+
'use strict';
|
|
2
|
+
|
|
3
|
+
var jsxRuntime = require('react/jsx-runtime');
|
|
4
|
+
var React = require('react');
|
|
5
|
+
var index = require('../index-BZhTddX0.js');
|
|
6
|
+
var utils = require('../utils-CTr7wn5d.js');
|
|
7
|
+
var primitives_HoverCard = require('../primitives/HoverCard.js');
|
|
8
|
+
require('../index-COPkC3I5.js');
|
|
9
|
+
require('../index-CGUGhyIp.js');
|
|
10
|
+
require('../index-CyrAgb4H.js');
|
|
11
|
+
require('../index-CCdG4z4E.js');
|
|
12
|
+
require('../index-D-iDn9RI.js');
|
|
13
|
+
require('../index-C9ICrOhM.js');
|
|
14
|
+
require('../floating-ui.react-dom-B4Aw6O7R.js');
|
|
15
|
+
require('react-dom');
|
|
16
|
+
require('../index-DMbj7vXd.js');
|
|
17
|
+
require('../index-lWVw05cs.js');
|
|
18
|
+
require('../index-Bf0WsHta.js');
|
|
19
|
+
require('../index-Df-Ffa3s.js');
|
|
20
|
+
require('../index-DcCSSgb7.js');
|
|
21
|
+
require('../index-Bvu9MiFi.js');
|
|
22
|
+
|
|
23
|
+
function _interopDefault (e) { return e && e.__esModule ? e : { default: e }; }
|
|
24
|
+
|
|
25
|
+
var React__default = /*#__PURE__*/_interopDefault(React);
|
|
26
|
+
|
|
27
|
+
// ---------------------------------------------------------------------------
|
|
28
|
+
// Variants
|
|
29
|
+
// ---------------------------------------------------------------------------
|
|
30
|
+
const popoverVariants = index.cva("flex flex-col gap-2.5", {
|
|
31
|
+
variants: {
|
|
32
|
+
variant: {
|
|
33
|
+
default: "",
|
|
34
|
+
primary: "bg-primary text-primary-foreground ring-0 shadow-lg",
|
|
35
|
+
},
|
|
36
|
+
},
|
|
37
|
+
defaultVariants: {
|
|
38
|
+
variant: "default",
|
|
39
|
+
},
|
|
40
|
+
});
|
|
41
|
+
// ---------------------------------------------------------------------------
|
|
42
|
+
// Position mapping
|
|
43
|
+
// ---------------------------------------------------------------------------
|
|
44
|
+
const SIDE_MAP = {
|
|
45
|
+
top: "top",
|
|
46
|
+
bottom: "bottom",
|
|
47
|
+
left: "left",
|
|
48
|
+
right: "right",
|
|
49
|
+
"top-start": "top",
|
|
50
|
+
"top-end": "top",
|
|
51
|
+
"bottom-start": "bottom",
|
|
52
|
+
"bottom-end": "bottom",
|
|
53
|
+
"left-start": "left",
|
|
54
|
+
"left-end": "left",
|
|
55
|
+
"right-start": "right",
|
|
56
|
+
"right-end": "right",
|
|
57
|
+
auto: "bottom",
|
|
58
|
+
};
|
|
59
|
+
const ALIGN_MAP = {
|
|
60
|
+
top: "center",
|
|
61
|
+
bottom: "center",
|
|
62
|
+
left: "center",
|
|
63
|
+
right: "center",
|
|
64
|
+
"top-start": "start",
|
|
65
|
+
"top-end": "end",
|
|
66
|
+
"bottom-start": "start",
|
|
67
|
+
"bottom-end": "end",
|
|
68
|
+
"left-start": "start",
|
|
69
|
+
"left-end": "end",
|
|
70
|
+
"right-start": "start",
|
|
71
|
+
"right-end": "end",
|
|
72
|
+
auto: "center",
|
|
73
|
+
};
|
|
74
|
+
const Title = React.forwardRef(({ children, className, ...otherProps }, ref) => (jsxRuntime.jsx("div", { ref: ref, "data-slot": "popover-title", className: utils.cn("text-sm font-semibold", className), ...otherProps, children: children })));
|
|
75
|
+
Title.displayName = "Popover.Title";
|
|
76
|
+
// ---------------------------------------------------------------------------
|
|
77
|
+
// Component
|
|
78
|
+
// ---------------------------------------------------------------------------
|
|
79
|
+
const Popover = React.forwardRef(({ children, trigger, variant = "default", disabled = false, position = "auto", className, open: openProp, onOpenChange: onOpenChangeProp, hideAfter = -1, hideOnTargetExit = false, defaultOpen, openDelay = 200, closeDelay = 200,
|
|
80
|
+
// Radix HoverCardContent props forwarded
|
|
81
|
+
...contentProps }, ref) => {
|
|
82
|
+
// Internal state for uncontrolled mode + hideAfter / hideOnTargetExit
|
|
83
|
+
const [internalOpen, setInternalOpen] = React.useState(false);
|
|
84
|
+
const isControlled = openProp !== undefined;
|
|
85
|
+
const open = isControlled ? openProp : internalOpen;
|
|
86
|
+
const handleOpenChange = React.useCallback((next) => {
|
|
87
|
+
if (!isControlled)
|
|
88
|
+
setInternalOpen(next);
|
|
89
|
+
onOpenChangeProp?.(next);
|
|
90
|
+
}, [isControlled, onOpenChangeProp]);
|
|
91
|
+
const triggerRef = React.useRef(null);
|
|
92
|
+
// Auto-hide after hideAfter ms
|
|
93
|
+
React.useEffect(() => {
|
|
94
|
+
if (!open || hideAfter <= 0)
|
|
95
|
+
return;
|
|
96
|
+
const timer = setTimeout(() => handleOpenChange(false), hideAfter);
|
|
97
|
+
return () => clearTimeout(timer);
|
|
98
|
+
}, [open, hideAfter, handleOpenChange]);
|
|
99
|
+
// Hide popover when trigger exits viewport
|
|
100
|
+
React.useEffect(() => {
|
|
101
|
+
if (!hideOnTargetExit || !open || !triggerRef.current)
|
|
102
|
+
return;
|
|
103
|
+
const observer = new IntersectionObserver(([entry]) => {
|
|
104
|
+
if (!entry.isIntersecting)
|
|
105
|
+
handleOpenChange(false);
|
|
106
|
+
});
|
|
107
|
+
observer.observe(triggerRef.current);
|
|
108
|
+
return () => observer.disconnect();
|
|
109
|
+
}, [hideOnTargetExit, open, handleOpenChange]);
|
|
110
|
+
if (disabled) {
|
|
111
|
+
return jsxRuntime.jsx(jsxRuntime.Fragment, { children: trigger });
|
|
112
|
+
}
|
|
113
|
+
const side = SIDE_MAP[position] ?? "bottom";
|
|
114
|
+
const align = ALIGN_MAP[position] ?? "center";
|
|
115
|
+
// Wrap non-element trigger in a span
|
|
116
|
+
const triggerElement = React__default.default.isValidElement(trigger) ? (trigger) : (jsxRuntime.jsx("span", { children: trigger }));
|
|
117
|
+
return (jsxRuntime.jsxs(primitives_HoverCard.HoverCard, { open: open, onOpenChange: handleOpenChange, defaultOpen: defaultOpen, openDelay: openDelay, closeDelay: closeDelay, children: [jsxRuntime.jsx(primitives_HoverCard.HoverCardTrigger, { ref: triggerRef, asChild: true, children: triggerElement }), jsxRuntime.jsx(primitives_HoverCard.HoverCardContent, { ref: ref, side: side, align: align, className: utils.cn(popoverVariants({ variant }), className), ...contentProps, children: children })] }));
|
|
118
|
+
});
|
|
119
|
+
Popover.displayName = "Popover";
|
|
120
|
+
Popover.Title = Title;
|
|
121
|
+
|
|
122
|
+
exports.Popover = Popover;
|
|
123
|
+
//# sourceMappingURL=Popover.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"Popover.js","sources":["../../../../src/components/Popover.tsx"],"sourcesContent":["import React, {\n forwardRef,\n useCallback,\n useEffect,\n useRef,\n useState,\n type ReactNode,\n} from \"react\";\n\nimport { cva, type VariantProps } from \"class-variance-authority\";\nimport { cn } from \"src/shadcn/lib/utils\";\nimport {\n HoverCard,\n HoverCardContent,\n HoverCardTrigger,\n} from \"src/primitives/HoverCard\";\n\n// ---------------------------------------------------------------------------\n// Types\n// ---------------------------------------------------------------------------\n\ntype PopoverPosition =\n | \"top\"\n | \"bottom\"\n | \"left\"\n | \"right\"\n | \"top-start\"\n | \"top-end\"\n | \"bottom-start\"\n | \"bottom-end\"\n | \"left-start\"\n | \"left-end\"\n | \"right-start\"\n | \"right-end\"\n | \"auto\";\n\n// ---------------------------------------------------------------------------\n// Variants\n// ---------------------------------------------------------------------------\n\nconst popoverVariants = cva(\"flex flex-col gap-2.5\", {\n variants: {\n variant: {\n default: \"\",\n primary: \"bg-primary text-primary-foreground ring-0 shadow-lg\",\n },\n },\n defaultVariants: {\n variant: \"default\",\n },\n});\n\ntype PopoverVariant = NonNullable<\n VariantProps<typeof popoverVariants>[\"variant\"]\n>;\n\n/** Radix HoverCard.Content props we forward via ...otherProps. */\ntype HoverCardContentProps = React.ComponentProps<typeof HoverCardContent>;\n\nexport interface PopoverProps extends Omit<\n HoverCardContentProps,\n \"children\" | \"className\" | \"side\" | \"align\"\n> {\n /** Content rendered inside the popover. */\n children?: ReactNode;\n /** The trigger element that opens the popover on hover. */\n trigger?: ReactNode;\n /** Color variant of the popover. */\n variant?: PopoverVariant;\n /** Disable the popover. */\n disabled?: boolean;\n /** Placement of the popover relative to the trigger. */\n position?: PopoverPosition;\n /** Additional CSS class names for the popover content. */\n className?: string;\n /** Whether the popover is open (controlled). */\n open?: boolean;\n /** Callback when open state changes. */\n onOpenChange?: (open: boolean) => void;\n /** Auto-hide after N milliseconds. Use -1 to disable. */\n hideAfter?: number;\n /** Auto-hide the popover when the trigger scrolls out of the viewport. */\n hideOnTargetExit?: boolean;\n /** Radix HoverCard `defaultOpen` prop. */\n defaultOpen?: boolean;\n /** Delay in ms before the popover opens on hover. */\n openDelay?: number;\n /** Delay in ms before the popover closes after hover leaves. */\n closeDelay?: number;\n}\n\n// ---------------------------------------------------------------------------\n// Position mapping\n// ---------------------------------------------------------------------------\n\nconst SIDE_MAP: Record<string, \"top\" | \"right\" | \"bottom\" | \"left\"> = {\n top: \"top\",\n bottom: \"bottom\",\n left: \"left\",\n right: \"right\",\n \"top-start\": \"top\",\n \"top-end\": \"top\",\n \"bottom-start\": \"bottom\",\n \"bottom-end\": \"bottom\",\n \"left-start\": \"left\",\n \"left-end\": \"left\",\n \"right-start\": \"right\",\n \"right-end\": \"right\",\n auto: \"bottom\",\n};\n\nconst ALIGN_MAP: Record<string, \"start\" | \"center\" | \"end\"> = {\n top: \"center\",\n bottom: \"center\",\n left: \"center\",\n right: \"center\",\n \"top-start\": \"start\",\n \"top-end\": \"end\",\n \"bottom-start\": \"start\",\n \"bottom-end\": \"end\",\n \"left-start\": \"start\",\n \"left-end\": \"end\",\n \"right-start\": \"start\",\n \"right-end\": \"end\",\n auto: \"center\",\n};\n\n// ---------------------------------------------------------------------------\n// Subcomponents\n// ---------------------------------------------------------------------------\n\ninterface PopoverTitleProps extends React.ComponentProps<\"div\"> {\n children?: ReactNode;\n className?: string;\n}\n\nconst Title = forwardRef<HTMLDivElement, PopoverTitleProps>(\n ({ children, className, ...otherProps }, ref) => (\n <div\n ref={ref}\n data-slot=\"popover-title\"\n className={cn(\"text-sm font-semibold\", className)}\n {...otherProps}\n >\n {children}\n </div>\n )\n);\nTitle.displayName = \"Popover.Title\";\n\n// ---------------------------------------------------------------------------\n// Component\n// ---------------------------------------------------------------------------\n\nconst Popover = forwardRef<HTMLDivElement, PopoverProps>(\n (\n {\n children,\n trigger,\n variant = \"default\",\n disabled = false,\n position = \"auto\",\n className,\n open: openProp,\n onOpenChange: onOpenChangeProp,\n hideAfter = -1,\n hideOnTargetExit = false,\n defaultOpen,\n openDelay = 200,\n closeDelay = 200,\n // Radix HoverCardContent props forwarded\n ...contentProps\n },\n ref\n ) => {\n // Internal state for uncontrolled mode + hideAfter / hideOnTargetExit\n const [internalOpen, setInternalOpen] = useState(false);\n const isControlled = openProp !== undefined;\n const open = isControlled ? openProp : internalOpen;\n\n const handleOpenChange = useCallback(\n (next: boolean) => {\n if (!isControlled) setInternalOpen(next);\n onOpenChangeProp?.(next);\n },\n [isControlled, onOpenChangeProp]\n );\n\n const triggerRef = useRef<HTMLElement | null>(null);\n\n // Auto-hide after hideAfter ms\n useEffect(() => {\n if (!open || hideAfter <= 0) return;\n const timer = setTimeout(() => handleOpenChange(false), hideAfter);\n return () => clearTimeout(timer);\n }, [open, hideAfter, handleOpenChange]);\n\n // Hide popover when trigger exits viewport\n useEffect(() => {\n if (!hideOnTargetExit || !open || !triggerRef.current) return;\n const observer = new IntersectionObserver(([entry]) => {\n if (!entry.isIntersecting) handleOpenChange(false);\n });\n observer.observe(triggerRef.current);\n return () => observer.disconnect();\n }, [hideOnTargetExit, open, handleOpenChange]);\n\n if (disabled) {\n return <>{trigger}</>;\n }\n\n const side = SIDE_MAP[position] ?? \"bottom\";\n const align = ALIGN_MAP[position] ?? \"center\";\n\n // Wrap non-element trigger in a span\n const triggerElement = React.isValidElement(trigger) ? (\n trigger\n ) : (\n <span>{trigger}</span>\n );\n\n return (\n <HoverCard\n open={open}\n onOpenChange={handleOpenChange}\n defaultOpen={defaultOpen}\n openDelay={openDelay}\n closeDelay={closeDelay}\n >\n <HoverCardTrigger\n ref={triggerRef as React.Ref<HTMLAnchorElement>}\n asChild\n >\n {triggerElement}\n </HoverCardTrigger>\n <HoverCardContent\n ref={ref}\n side={side}\n align={align}\n className={cn(popoverVariants({ variant }), className)}\n {...contentProps}\n >\n {children}\n </HoverCardContent>\n </HoverCard>\n );\n }\n) as React.ForwardRefExoticComponent<\n PopoverProps & React.RefAttributes<HTMLDivElement>\n> & {\n Title: typeof Title;\n};\n\nPopover.displayName = \"Popover\";\nPopover.Title = Title;\n\nexport { Popover };\n"],"names":["cva","forwardRef","_jsx","cn","useState","useCallback","useRef","useEffect","_Fragment","React","_jsxs","HoverCard","HoverCardTrigger","HoverCardContent"],"mappings":"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"}
|
|
@@ -0,0 +1,63 @@
|
|
|
1
|
+
'use strict';
|
|
2
|
+
|
|
3
|
+
var jsxRuntime = require('react/jsx-runtime');
|
|
4
|
+
var React = require('react');
|
|
5
|
+
var utils = require('../utils-CTr7wn5d.js');
|
|
6
|
+
var primitives_RadioGroup = require('../primitives/RadioGroup.js');
|
|
7
|
+
var primitives_Label = require('../primitives/Label.js');
|
|
8
|
+
var primitives_Field = require('../primitives/Field.js');
|
|
9
|
+
require('../index-COPkC3I5.js');
|
|
10
|
+
require('../index-D-iDn9RI.js');
|
|
11
|
+
require('../index-CGUGhyIp.js');
|
|
12
|
+
require('../index-DMbj7vXd.js');
|
|
13
|
+
require('react-dom');
|
|
14
|
+
require('../index-hQmfI1O7.js');
|
|
15
|
+
require('../index-Ch55j1or.js');
|
|
16
|
+
require('../index-BwAq9ba8.js');
|
|
17
|
+
require('../index-CCdG4z4E.js');
|
|
18
|
+
require('../index-lWVw05cs.js');
|
|
19
|
+
require('../index-CyrAgb4H.js');
|
|
20
|
+
require('../index-9jC1advf.js');
|
|
21
|
+
require('../index-Bf0WsHta.js');
|
|
22
|
+
require('../index-CF951Pw9.js');
|
|
23
|
+
require('../index-DcCSSgb7.js');
|
|
24
|
+
require('../label-Bdc9ytTI.js');
|
|
25
|
+
require('../index-BZhTddX0.js');
|
|
26
|
+
require('../separator-CPy2gyg1.js');
|
|
27
|
+
|
|
28
|
+
// ---------------------------------------------------------------------------
|
|
29
|
+
// RadioGroup.Item
|
|
30
|
+
// ---------------------------------------------------------------------------
|
|
31
|
+
const RadioGroupItem = React.forwardRef(({ label, helpText, value, className, id: idProp, ...props }, ref) => {
|
|
32
|
+
const generatedId = React.useId();
|
|
33
|
+
const id = idProp ?? generatedId;
|
|
34
|
+
const helpTextId = `helpText_${id}`;
|
|
35
|
+
return (jsxRuntime.jsxs("div", { className: utils.cn("flex gap-2", helpText ? "items-start" : "items-center", className), children: [jsxRuntime.jsx(primitives_RadioGroup.RadioGroupItem, { ref: ref, id: id, value: value, "aria-describedby": helpText ? helpTextId : undefined, className: helpText ? "mt-0.5" : undefined, ...props }), (label || helpText) && (jsxRuntime.jsxs("div", { className: "flex flex-col gap-0.5", children: [label && (jsxRuntime.jsx(primitives_Label.Label, { htmlFor: id, className: "cursor-pointer font-normal", children: label })), helpText && (jsxRuntime.jsx(primitives_Field.FieldDescription, { id: helpTextId, children: helpText }))] }))] }));
|
|
36
|
+
});
|
|
37
|
+
RadioGroupItem.displayName = "RadioGroup.Item";
|
|
38
|
+
// ---------------------------------------------------------------------------
|
|
39
|
+
// RadioGroup (root)
|
|
40
|
+
// ---------------------------------------------------------------------------
|
|
41
|
+
const RadioGroupRoot = React.forwardRef(({ label, error, helpText, orientation = "horizontal", className, disabled, required, children, ...props }, ref) => {
|
|
42
|
+
const generatedId = React.useId();
|
|
43
|
+
const errorId = `error_${generatedId}`;
|
|
44
|
+
const helpTextId = `helpText_${generatedId}`;
|
|
45
|
+
const hasField = !!(label || error || helpText);
|
|
46
|
+
const radioGroup = (jsxRuntime.jsx(primitives_RadioGroup.RadioGroup, { ref: ref, disabled: disabled, required: required, "aria-invalid": !!error || undefined, "aria-describedby": [error ? errorId : null, helpText ? helpTextId : null]
|
|
47
|
+
.filter(Boolean)
|
|
48
|
+
.join(" ") || undefined, orientation: orientation, className: utils.cn("data-[orientation=vertical]:grid data-[orientation=vertical]:gap-2 data-[orientation=horizontal]:flex data-[orientation=horizontal]:flex-row data-[orientation=horizontal]:flex-wrap data-[orientation=horizontal]:items-center data-[orientation=horizontal]:gap-4", !hasField && className), ...props, children: children }));
|
|
49
|
+
if (!hasField) {
|
|
50
|
+
return radioGroup;
|
|
51
|
+
}
|
|
52
|
+
return (jsxRuntime.jsxs(primitives_Field.Field, { "data-disabled": disabled || undefined, "data-invalid": !!error || undefined, className: className, children: [(label || helpText) && (jsxRuntime.jsxs("div", { children: [label && (jsxRuntime.jsxs(primitives_Field.FieldLabel, { children: [label, required && (jsxRuntime.jsx("span", { "aria-hidden": "true", className: "text-destructive", children: "*" }))] })), helpText && (jsxRuntime.jsx(primitives_Field.FieldDescription, { id: helpTextId, children: helpText }))] })), jsxRuntime.jsxs(primitives_Field.FieldContent, { children: [radioGroup, !!error && jsxRuntime.jsx(primitives_Field.FieldError, { id: errorId, children: error })] })] }));
|
|
53
|
+
});
|
|
54
|
+
RadioGroupRoot.displayName = "RadioGroup";
|
|
55
|
+
// ---------------------------------------------------------------------------
|
|
56
|
+
// Compound component
|
|
57
|
+
// ---------------------------------------------------------------------------
|
|
58
|
+
const RadioGroup = Object.assign(RadioGroupRoot, {
|
|
59
|
+
Item: RadioGroupItem,
|
|
60
|
+
});
|
|
61
|
+
|
|
62
|
+
exports.RadioGroup = RadioGroup;
|
|
63
|
+
//# sourceMappingURL=RadioGroup.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"RadioGroup.js","sources":["../../../../src/components/RadioGroup.tsx"],"sourcesContent":["import React, { forwardRef, useId } from \"react\";\n\nimport { cn } from \"src/shadcn/lib/utils\";\nimport {\n RadioGroup as PrimitiveRadioGroup,\n RadioGroupItem as PrimitiveRadioGroupItem,\n} from \"src/primitives/RadioGroup\";\nimport { Label } from \"src/primitives/Label\";\nimport {\n Field,\n FieldLabel,\n FieldContent,\n FieldDescription,\n FieldError,\n} from \"src/primitives/Field\";\n\n// ---------------------------------------------------------------------------\n// Types\n// ---------------------------------------------------------------------------\n\nexport interface RadioGroupProps extends Omit<\n React.ComponentProps<typeof PrimitiveRadioGroup>,\n \"children\"\n> {\n /** Group label displayed above the radio items. */\n label?: string;\n /** Error message displayed below the group. */\n error?: string;\n /** Helper text displayed below the group label. Accepts string or ReactNode. */\n helpText?: React.ReactNode;\n /** Layout orientation. Defaults to \"horizontal\". */\n orientation?: \"horizontal\" | \"vertical\";\n /** Additional class name for the outermost wrapper. */\n className?: string;\n /** RadioGroup.Item children. */\n children?: React.ReactNode;\n}\n\ninterface RadioGroupItemProps extends React.ComponentProps<\n typeof PrimitiveRadioGroupItem\n> {\n /** Label displayed next to the radio. */\n label?: string;\n /** Helper text displayed below the item label. Accepts string or ReactNode. */\n helpText?: React.ReactNode;\n /** Radio value (required). */\n value: string;\n /** Additional class name for the item wrapper. */\n className?: string;\n /** Optional id override; auto-generated if omitted. */\n id?: string;\n}\n\n// ---------------------------------------------------------------------------\n// RadioGroup.Item\n// ---------------------------------------------------------------------------\n\nconst RadioGroupItem = forwardRef<\n React.ComponentRef<typeof PrimitiveRadioGroupItem>,\n RadioGroupItemProps\n>(({ label, helpText, value, className, id: idProp, ...props }, ref) => {\n const generatedId = useId();\n const id = idProp ?? generatedId;\n const helpTextId = `helpText_${id}`;\n\n return (\n <div\n className={cn(\n \"flex gap-2\",\n helpText ? \"items-start\" : \"items-center\",\n className\n )}\n >\n <PrimitiveRadioGroupItem\n ref={ref}\n id={id}\n value={value}\n aria-describedby={helpText ? helpTextId : undefined}\n className={helpText ? \"mt-0.5\" : undefined}\n {...props}\n />\n {(label || helpText) && (\n <div className=\"flex flex-col gap-0.5\">\n {label && (\n <Label htmlFor={id} className=\"cursor-pointer font-normal\">\n {label}\n </Label>\n )}\n {helpText && (\n <FieldDescription id={helpTextId}>{helpText}</FieldDescription>\n )}\n </div>\n )}\n </div>\n );\n});\n\nRadioGroupItem.displayName = \"RadioGroup.Item\";\n\n// ---------------------------------------------------------------------------\n// RadioGroup (root)\n// ---------------------------------------------------------------------------\n\nconst RadioGroupRoot = forwardRef<\n React.ComponentRef<typeof PrimitiveRadioGroup>,\n RadioGroupProps\n>(\n (\n {\n label,\n error,\n helpText,\n orientation = \"horizontal\",\n className,\n disabled,\n required,\n children,\n ...props\n },\n ref\n ) => {\n const generatedId = useId();\n const errorId = `error_${generatedId}`;\n const helpTextId = `helpText_${generatedId}`;\n\n const hasField = !!(label || error || helpText);\n\n const radioGroup = (\n <PrimitiveRadioGroup\n ref={ref}\n disabled={disabled}\n required={required}\n aria-invalid={!!error || undefined}\n aria-describedby={\n [error ? errorId : null, helpText ? helpTextId : null]\n .filter(Boolean)\n .join(\" \") || undefined\n }\n orientation={orientation}\n className={cn(\n \"data-[orientation=vertical]:grid data-[orientation=vertical]:gap-2 data-[orientation=horizontal]:flex data-[orientation=horizontal]:flex-row data-[orientation=horizontal]:flex-wrap data-[orientation=horizontal]:items-center data-[orientation=horizontal]:gap-4\",\n !hasField && className\n )}\n {...props}\n >\n {children}\n </PrimitiveRadioGroup>\n );\n\n if (!hasField) {\n return radioGroup;\n }\n\n return (\n <Field\n data-disabled={disabled || undefined}\n data-invalid={!!error || undefined}\n className={className}\n >\n {(label || helpText) && (\n <div>\n {label && (\n <FieldLabel>\n {label}\n {required && (\n <span aria-hidden=\"true\" className=\"text-destructive\">\n *\n </span>\n )}\n </FieldLabel>\n )}\n {helpText && (\n <FieldDescription id={helpTextId}>{helpText}</FieldDescription>\n )}\n </div>\n )}\n <FieldContent>\n {radioGroup}\n {!!error && <FieldError id={errorId}>{error}</FieldError>}\n </FieldContent>\n </Field>\n );\n }\n);\n\nRadioGroupRoot.displayName = \"RadioGroup\";\n\n// ---------------------------------------------------------------------------\n// Compound component\n// ---------------------------------------------------------------------------\n\nconst RadioGroup = Object.assign(RadioGroupRoot, {\n Item: RadioGroupItem,\n});\n\nexport { RadioGroup };\n"],"names":["forwardRef","useId","_jsxs","cn","_jsx","PrimitiveRadioGroupItem","Label","FieldDescription","PrimitiveRadioGroup","Field","FieldLabel","FieldContent","FieldError"],"mappings":"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"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"Select.js","sources":[],"sourcesContent":[],"names":[],"mappings":";;"}
|
|
@@ -0,0 +1,33 @@
|
|
|
1
|
+
'use strict';
|
|
2
|
+
|
|
3
|
+
var jsxRuntime = require('react/jsx-runtime');
|
|
4
|
+
var primitives_Field = require('../primitives/Field.js');
|
|
5
|
+
require('react');
|
|
6
|
+
require('../index-BZhTddX0.js');
|
|
7
|
+
require('../utils-CTr7wn5d.js');
|
|
8
|
+
require('../label-Bdc9ytTI.js');
|
|
9
|
+
require('../index-DMbj7vXd.js');
|
|
10
|
+
require('react-dom');
|
|
11
|
+
require('../index-D-iDn9RI.js');
|
|
12
|
+
require('../separator-CPy2gyg1.js');
|
|
13
|
+
|
|
14
|
+
function SelectFieldWrapper({ id, label, error, helpText, errorId, helpTextId, isDisabled, required, testIdPrefix, labelProps, className, children, }) {
|
|
15
|
+
const hasField = !!(label || error || helpText);
|
|
16
|
+
if (!hasField) {
|
|
17
|
+
return (jsxRuntime.jsx("div", { className: className, ...(testIdPrefix
|
|
18
|
+
? { "data-testid": `${testIdPrefix}-select-container-wrapper` }
|
|
19
|
+
: {}), children: children }));
|
|
20
|
+
}
|
|
21
|
+
return (jsxRuntime.jsxs(primitives_Field.Field, { "data-disabled": isDisabled || undefined, "data-invalid": !!error || undefined, className: className, ...(testIdPrefix
|
|
22
|
+
? { "data-testid": `${testIdPrefix}-select-container-wrapper` }
|
|
23
|
+
: {}), children: [label && (jsxRuntime.jsxs(primitives_Field.FieldLabel, { htmlFor: id, ...labelProps, ...(testIdPrefix
|
|
24
|
+
? { "data-testid": `${testIdPrefix}-input-label` }
|
|
25
|
+
: {}), children: [label, required && (jsxRuntime.jsx("span", { "aria-hidden": "true", className: "text-destructive", children: "*" }))] })), jsxRuntime.jsxs(primitives_Field.FieldContent, { children: [children, !!error && (jsxRuntime.jsx(primitives_Field.FieldError, { id: errorId, ...(testIdPrefix
|
|
26
|
+
? { "data-testid": `${testIdPrefix}-select-error` }
|
|
27
|
+
: {}), children: error })), helpText && (jsxRuntime.jsx(primitives_Field.FieldDescription, { id: helpTextId, ...(testIdPrefix
|
|
28
|
+
? { "data-testid": `${testIdPrefix}-select-help-text` }
|
|
29
|
+
: {}), children: helpText }))] })] }));
|
|
30
|
+
}
|
|
31
|
+
|
|
32
|
+
exports.SelectFieldWrapper = SelectFieldWrapper;
|
|
33
|
+
//# sourceMappingURL=SelectFieldWrapper.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"SelectFieldWrapper.js","sources":["../../../../src/components/SelectFieldWrapper.tsx"],"sourcesContent":["import type React from \"react\";\n\nimport {\n Field,\n FieldLabel,\n FieldContent,\n FieldDescription,\n FieldError,\n} from \"src/primitives/Field\";\n\ninterface SelectFieldWrapperProps {\n id: string;\n label: string;\n error: string;\n helpText: React.ReactNode;\n errorId: string;\n helpTextId: string;\n isDisabled: boolean;\n required: boolean;\n testIdPrefix?: string;\n labelProps?: Omit<\n React.ComponentProps<typeof FieldLabel>,\n \"htmlFor\" | \"children\"\n >;\n className?: string;\n children: React.ReactNode;\n}\n\nexport function SelectFieldWrapper({\n id,\n label,\n error,\n helpText,\n errorId,\n helpTextId,\n isDisabled,\n required,\n testIdPrefix,\n labelProps,\n className,\n children,\n}: SelectFieldWrapperProps) {\n const hasField = !!(label || error || helpText);\n\n if (!hasField) {\n return (\n <div\n className={className}\n {...(testIdPrefix\n ? { \"data-testid\": `${testIdPrefix}-select-container-wrapper` }\n : {})}\n >\n {children}\n </div>\n );\n }\n\n return (\n <Field\n data-disabled={isDisabled || undefined}\n data-invalid={!!error || undefined}\n className={className}\n {...(testIdPrefix\n ? { \"data-testid\": `${testIdPrefix}-select-container-wrapper` }\n : {})}\n >\n {label && (\n <FieldLabel\n htmlFor={id}\n {...labelProps}\n {...(testIdPrefix\n ? { \"data-testid\": `${testIdPrefix}-input-label` }\n : {})}\n >\n {label}\n {required && (\n <span aria-hidden=\"true\" className=\"text-destructive\">\n *\n </span>\n )}\n </FieldLabel>\n )}\n <FieldContent>\n {children}\n {!!error && (\n <FieldError\n id={errorId}\n {...(testIdPrefix\n ? { \"data-testid\": `${testIdPrefix}-select-error` }\n : {})}\n >\n {error}\n </FieldError>\n )}\n {helpText && (\n <FieldDescription\n id={helpTextId}\n {...(testIdPrefix\n ? { \"data-testid\": `${testIdPrefix}-select-help-text` }\n : {})}\n >\n {helpText}\n </FieldDescription>\n )}\n </FieldContent>\n </Field>\n );\n}\n"],"names":["_jsx","_jsxs","Field","FieldLabel","FieldContent","FieldError","FieldDescription"],"mappings":";;;;;;;;;;;;;AA4BM,SAAU,kBAAkB,CAAC,EACjC,EAAE,EACF,KAAK,EACL,KAAK,EACL,QAAQ,EACR,OAAO,EACP,UAAU,EACV,UAAU,EACV,QAAQ,EACR,YAAY,EACZ,UAAU,EACV,SAAS,EACT,QAAQ,GACgB,EAAA;IACxB,MAAM,QAAQ,GAAG,CAAC,EAAE,KAAK,IAAI,KAAK,IAAI,QAAQ,CAAC;IAE/C,IAAI,CAAC,QAAQ,EAAE;AACb,QAAA,QACEA,cAAA,CAAA,KAAA,EAAA,EACE,SAAS,EAAE,SAAS,EAAA,IACf;AACH,kBAAE,EAAE,aAAa,EAAE,CAAA,EAAG,YAAY,2BAA2B;AAC7D,kBAAE,EAAE,CAAC,YAEN,QAAQ,EAAA,CACL;IAEV;AAEA,IAAA,QACEC,eAAA,CAACC,sBAAK,qBACW,UAAU,IAAI,SAAS,EAAA,cAAA,EACxB,CAAC,CAAC,KAAK,IAAI,SAAS,EAClC,SAAS,EAAE,SAAS,EAAA,IACf;AACH,cAAE,EAAE,aAAa,EAAE,CAAA,EAAG,YAAY,2BAA2B;AAC7D,cAAE,EAAE,CAAC,EAAA,QAAA,EAAA,CAEN,KAAK,KACJD,eAAA,CAACE,2BAAU,EAAA,EACT,OAAO,EAAE,EAAE,KACP,UAAU,EAAA,IACT;AACH,sBAAE,EAAE,aAAa,EAAE,CAAA,EAAG,YAAY,cAAc;AAChD,sBAAE,EAAE,CAAC,EAAA,QAAA,EAAA,CAEN,KAAK,EACL,QAAQ,KACPH,cAAA,CAAA,MAAA,EAAA,EAAA,aAAA,EAAkB,MAAM,EAAC,SAAS,EAAC,kBAAkB,EAAA,QAAA,EAAA,GAAA,EAAA,CAE9C,CACR,CAAA,EAAA,CACU,CACd,EACDC,eAAA,CAACG,6BAAY,EAAA,EAAA,QAAA,EAAA,CACV,QAAQ,EACR,CAAC,CAAC,KAAK,KACNJ,cAAA,CAACK,2BAAU,EAAA,EACT,EAAE,EAAE,OAAO,EAAA,IACN;AACH,8BAAE,EAAE,aAAa,EAAE,CAAA,EAAG,YAAY,eAAe;AACjD,8BAAE,EAAE,CAAC,YAEN,KAAK,EAAA,CACK,CACd,EACA,QAAQ,KACPL,cAAA,CAACM,iCAAgB,EAAA,EACf,EAAE,EAAE,UAAU,EAAA,IACT;AACH,8BAAE,EAAE,aAAa,EAAE,CAAA,EAAG,YAAY,mBAAmB;8BACnD,EAAE,CAAC,EAAA,QAAA,EAEN,QAAQ,GACQ,CACpB,CAAA,EAAA,CACY,CAAA,EAAA,CACT;AAEZ;;;;"}
|
|
@@ -0,0 +1,43 @@
|
|
|
1
|
+
'use strict';
|
|
2
|
+
|
|
3
|
+
var jsxRuntime = require('react/jsx-runtime');
|
|
4
|
+
var primitives_Select = require('../primitives/Select.js');
|
|
5
|
+
var components_shared = require('./shared.js');
|
|
6
|
+
require('../utils-CTr7wn5d.js');
|
|
7
|
+
require('../chevron-down-CPsWSS51.js');
|
|
8
|
+
require('../createLucideIcon-D0tRgV6l.js');
|
|
9
|
+
require('react');
|
|
10
|
+
require('../chevron-up-BpwpBnZU.js');
|
|
11
|
+
require('../check-BQgcDXys.js');
|
|
12
|
+
require('react-dom');
|
|
13
|
+
require('../index-EyWRfsCG.js');
|
|
14
|
+
require('../index-COPkC3I5.js');
|
|
15
|
+
require('../index-Ch55j1or.js');
|
|
16
|
+
require('../index-CGUGhyIp.js');
|
|
17
|
+
require('../index-D-iDn9RI.js');
|
|
18
|
+
require('../index-9jC1advf.js');
|
|
19
|
+
require('../index-Bvu9MiFi.js');
|
|
20
|
+
require('../index-DMbj7vXd.js');
|
|
21
|
+
require('../index-lWVw05cs.js');
|
|
22
|
+
require('../index-ChSOMM8b.js');
|
|
23
|
+
require('../index-BwAq9ba8.js');
|
|
24
|
+
require('../index-CCdG4z4E.js');
|
|
25
|
+
require('../index-C9ICrOhM.js');
|
|
26
|
+
require('../floating-ui.react-dom-B4Aw6O7R.js');
|
|
27
|
+
require('../index-Bf0WsHta.js');
|
|
28
|
+
require('../index-Df-Ffa3s.js');
|
|
29
|
+
require('../index-CyrAgb4H.js');
|
|
30
|
+
require('../index-CF951Pw9.js');
|
|
31
|
+
require('../index-CB9xFokC.js');
|
|
32
|
+
|
|
33
|
+
function renderOptions(options, testId) {
|
|
34
|
+
return options.map(opt => {
|
|
35
|
+
if (components_shared.isOptionGroup(opt)) {
|
|
36
|
+
return (jsxRuntime.jsxs(primitives_Select.SelectGroup, { children: [jsxRuntime.jsx(primitives_Select.SelectLabel, { children: opt.label }), opt.options.map(item => (jsxRuntime.jsx(primitives_Select.SelectItem, { value: item.value, disabled: item.disabled, ...(testId ? { "data-testid": `${testId}-select-option` } : {}), children: item.label }, item.value)))] }, opt.label));
|
|
37
|
+
}
|
|
38
|
+
return (jsxRuntime.jsx(primitives_Select.SelectItem, { value: opt.value, disabled: opt.disabled, ...(testId ? { "data-testid": `${testId}-select-option` } : {}), children: opt.label }, opt.value));
|
|
39
|
+
});
|
|
40
|
+
}
|
|
41
|
+
|
|
42
|
+
exports.renderOptions = renderOptions;
|
|
43
|
+
//# sourceMappingURL=SelectOptions.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"SelectOptions.js","sources":["../../../../src/components/SelectOptions.tsx"],"sourcesContent":["import { SelectGroup, SelectItem, SelectLabel } from \"src/primitives/Select\";\nimport { isOptionGroup } from \"./shared.types\";\nimport type { SelectOption } from \"./Select.types\";\n\nexport function renderOptions(options: SelectOption[], testId?: string) {\n return options.map(opt => {\n if (isOptionGroup(opt)) {\n return (\n <SelectGroup key={opt.label}>\n <SelectLabel>{opt.label}</SelectLabel>\n {opt.options.map(item => (\n <SelectItem\n key={item.value}\n value={item.value}\n disabled={item.disabled}\n {...(testId ? { \"data-testid\": `${testId}-select-option` } : {})}\n >\n {item.label}\n </SelectItem>\n ))}\n </SelectGroup>\n );\n }\n\n return (\n <SelectItem\n key={opt.value}\n value={opt.value}\n disabled={opt.disabled}\n {...(testId ? { \"data-testid\": `${testId}-select-option` } : {})}\n >\n {opt.label}\n </SelectItem>\n );\n });\n}\n"],"names":["isOptionGroup","_jsxs","SelectGroup","_jsx","SelectLabel","SelectItem"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAIM,SAAU,aAAa,CAAC,OAAuB,EAAE,MAAe,EAAA;AACpE,IAAA,OAAO,OAAO,CAAC,GAAG,CAAC,GAAG,IAAG;AACvB,QAAA,IAAIA,+BAAa,CAAC,GAAG,CAAC,EAAE;AACtB,YAAA,QACEC,eAAA,CAACC,6BAAW,EAAA,EAAA,QAAA,EAAA,CACVC,eAACC,6BAAW,EAAA,EAAA,QAAA,EAAE,GAAG,CAAC,KAAK,EAAA,CAAe,EACrC,GAAG,CAAC,OAAO,CAAC,GAAG,CAAC,IAAI,KACnBD,eAACE,4BAAU,EAAA,EAET,KAAK,EAAE,IAAI,CAAC,KAAK,EACjB,QAAQ,EAAE,IAAI,CAAC,QAAQ,EAAA,IAClB,MAAM,GAAG,EAAE,aAAa,EAAE,CAAA,EAAG,MAAM,CAAA,cAAA,CAAgB,EAAE,GAAG,EAAE,CAAC,EAAA,QAAA,EAE/D,IAAI,CAAC,KAAK,EAAA,EALN,IAAI,CAAC,KAAK,CAMJ,CACd,CAAC,KAXc,GAAG,CAAC,KAAK,CAYb;QAElB;AAEA,QAAA,QACEF,cAAA,CAACE,4BAAU,IAET,KAAK,EAAE,GAAG,CAAC,KAAK,EAChB,QAAQ,EAAE,GAAG,CAAC,QAAQ,MACjB,MAAM,GAAG,EAAE,aAAa,EAAE,GAAG,MAAM,CAAA,cAAA,CAAgB,EAAE,GAAG,EAAE,CAAC,YAE/D,GAAG,CAAC,KAAK,EAAA,EALL,GAAG,CAAC,KAAK,CAMH;AAEjB,IAAA,CAAC,CAAC;AACJ;;;;"}
|
|
@@ -0,0 +1,43 @@
|
|
|
1
|
+
'use strict';
|
|
2
|
+
|
|
3
|
+
var jsxRuntime = require('react/jsx-runtime');
|
|
4
|
+
var React = require('react');
|
|
5
|
+
var utils = require('../utils-CTr7wn5d.js');
|
|
6
|
+
var primitives_Select = require('../primitives/Select.js');
|
|
7
|
+
var x = require('../x-Brw3FJst.js');
|
|
8
|
+
require('../chevron-down-CPsWSS51.js');
|
|
9
|
+
require('../createLucideIcon-D0tRgV6l.js');
|
|
10
|
+
require('../chevron-up-BpwpBnZU.js');
|
|
11
|
+
require('../check-BQgcDXys.js');
|
|
12
|
+
require('react-dom');
|
|
13
|
+
require('../index-EyWRfsCG.js');
|
|
14
|
+
require('../index-COPkC3I5.js');
|
|
15
|
+
require('../index-Ch55j1or.js');
|
|
16
|
+
require('../index-CGUGhyIp.js');
|
|
17
|
+
require('../index-D-iDn9RI.js');
|
|
18
|
+
require('../index-9jC1advf.js');
|
|
19
|
+
require('../index-Bvu9MiFi.js');
|
|
20
|
+
require('../index-DMbj7vXd.js');
|
|
21
|
+
require('../index-lWVw05cs.js');
|
|
22
|
+
require('../index-ChSOMM8b.js');
|
|
23
|
+
require('../index-BwAq9ba8.js');
|
|
24
|
+
require('../index-CCdG4z4E.js');
|
|
25
|
+
require('../index-C9ICrOhM.js');
|
|
26
|
+
require('../floating-ui.react-dom-B4Aw6O7R.js');
|
|
27
|
+
require('../index-Bf0WsHta.js');
|
|
28
|
+
require('../index-Df-Ffa3s.js');
|
|
29
|
+
require('../index-CyrAgb4H.js');
|
|
30
|
+
require('../index-CF951Pw9.js');
|
|
31
|
+
require('../index-CB9xFokC.js');
|
|
32
|
+
|
|
33
|
+
const SelectTriggerContent = React.forwardRef(({ id, sizeConfig, error, ariaDescribedBy, triggerClassName, testIdPrefix, placeholder, showClearButton, handleClear, }, ref) => (jsxRuntime.jsxs(primitives_Select.SelectTrigger, { ref: ref, id: id, size: sizeConfig.size, "aria-invalid": !!error || undefined, "aria-describedby": ariaDescribedBy, className: utils.cn("w-full", sizeConfig.trigger, triggerClassName), ...(testIdPrefix
|
|
34
|
+
? { "data-testid": `${testIdPrefix}-select-container` }
|
|
35
|
+
: {}), children: [jsxRuntime.jsx(primitives_Select.SelectValue, { placeholder: placeholder, ...(testIdPrefix
|
|
36
|
+
? { "data-testid": `${testIdPrefix}-select-value` }
|
|
37
|
+
: {}) }), showClearButton && (jsxRuntime.jsx("button", { type: "button", "aria-label": "Clear selection", tabIndex: -1, className: utils.cn("ms-auto shrink-0 rounded-sm opacity-50", "hover:opacity-100 focus-visible:outline-none"), onClick: handleClear, onPointerDown: e => e.preventDefault(), ...(testIdPrefix
|
|
38
|
+
? { "data-testid": `${testIdPrefix}-clear-indicator` }
|
|
39
|
+
: {}), children: jsxRuntime.jsx(x.X, { "aria-hidden": "true", className: sizeConfig.clearBtn }) }))] })));
|
|
40
|
+
SelectTriggerContent.displayName = "SelectTriggerContent";
|
|
41
|
+
|
|
42
|
+
exports.SelectTriggerContent = SelectTriggerContent;
|
|
43
|
+
//# sourceMappingURL=SelectTriggerContent.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"SelectTriggerContent.js","sources":["../../../../src/components/SelectTriggerContent.tsx"],"sourcesContent":["import React, { forwardRef } from \"react\";\n\nimport { X } from \"lucide-react\";\nimport { cn } from \"src/shadcn/lib/utils\";\nimport { SelectTrigger, SelectValue } from \"src/primitives/Select\";\n\ninterface SelectTriggerContentProps {\n id: string;\n sizeConfig: { trigger: string; size: \"sm\" | \"default\"; clearBtn: string };\n error: string;\n ariaDescribedBy?: string;\n triggerClassName?: string;\n testIdPrefix?: string;\n placeholder: string;\n showClearButton: boolean;\n handleClear: (e: React.MouseEvent) => void;\n}\n\nexport const SelectTriggerContent = forwardRef<\n HTMLButtonElement,\n SelectTriggerContentProps\n>(\n (\n {\n id,\n sizeConfig,\n error,\n ariaDescribedBy,\n triggerClassName,\n testIdPrefix,\n placeholder,\n showClearButton,\n handleClear,\n },\n ref\n ) => (\n <SelectTrigger\n ref={ref}\n id={id}\n size={sizeConfig.size}\n aria-invalid={!!error || undefined}\n aria-describedby={ariaDescribedBy}\n className={cn(\"w-full\", sizeConfig.trigger, triggerClassName)}\n {...(testIdPrefix\n ? { \"data-testid\": `${testIdPrefix}-select-container` }\n : {})}\n >\n <SelectValue\n placeholder={placeholder}\n {...(testIdPrefix\n ? { \"data-testid\": `${testIdPrefix}-select-value` }\n : {})}\n />\n {showClearButton && (\n <button\n type=\"button\"\n aria-label=\"Clear selection\"\n tabIndex={-1}\n className={cn(\n \"ms-auto shrink-0 rounded-sm opacity-50\",\n \"hover:opacity-100 focus-visible:outline-none\"\n )}\n onClick={handleClear}\n onPointerDown={e => e.preventDefault()}\n {...(testIdPrefix\n ? { \"data-testid\": `${testIdPrefix}-clear-indicator` }\n : {})}\n >\n <X aria-hidden=\"true\" className={sizeConfig.clearBtn} />\n </button>\n )}\n </SelectTrigger>\n )\n);\n\nSelectTriggerContent.displayName = \"SelectTriggerContent\";\n"],"names":["forwardRef","_jsxs","SelectTrigger","cn","_jsx","SelectValue","X"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAkBO,MAAM,oBAAoB,GAAGA,gBAAU,CAI5C,CACE,EACE,EAAE,EACF,UAAU,EACV,KAAK,EACL,eAAe,EACf,gBAAgB,EAChB,YAAY,EACZ,WAAW,EACX,eAAe,EACf,WAAW,GACZ,EACD,GAAG,MAEHC,gBAACC,+BAAa,EAAA,EACZ,GAAG,EAAE,GAAG,EACR,EAAE,EAAE,EAAE,EACN,IAAI,EAAE,UAAU,CAAC,IAAI,EAAA,cAAA,EACP,CAAC,CAAC,KAAK,IAAI,SAAS,EAAA,kBAAA,EAChB,eAAe,EACjC,SAAS,EAAEC,QAAE,CAAC,QAAQ,EAAE,UAAU,CAAC,OAAO,EAAE,gBAAgB,CAAC,EAAA,IACxD;AACH,UAAE,EAAE,aAAa,EAAE,CAAA,EAAG,YAAY,mBAAmB;AACrD,UAAE,EAAE,CAAC,EAAA,QAAA,EAAA,CAEPC,cAAA,CAACC,6BAAW,EAAA,EACV,WAAW,EAAE,WAAW,EAAA,IACnB;AACH,kBAAE,EAAE,aAAa,EAAE,CAAA,EAAG,YAAY,eAAe;kBAC/C,EAAE,CAAC,EAAA,CACP,EACD,eAAe,KACdD,cAAA,CAAA,QAAA,EAAA,EACE,IAAI,EAAC,QAAQ,EAAA,YAAA,EACF,iBAAiB,EAC5B,QAAQ,EAAE,EAAE,EACZ,SAAS,EAAED,QAAE,CACX,wCAAwC,EACxC,8CAA8C,CAC/C,EACD,OAAO,EAAE,WAAW,EACpB,aAAa,EAAE,CAAC,IAAI,CAAC,CAAC,cAAc,EAAE,EAAA,IACjC;AACH,kBAAE,EAAE,aAAa,EAAE,CAAA,EAAG,YAAY,kBAAkB;kBAClD,EAAE,CAAC,EAAA,QAAA,EAEPC,eAACE,GAAC,EAAA,EAAA,aAAA,EAAa,MAAM,EAAC,SAAS,EAAE,UAAU,CAAC,QAAQ,EAAA,CAAI,EAAA,CACjD,CACV,CAAA,EAAA,CACa,CACjB;AAGH,oBAAoB,CAAC,WAAW,GAAG,sBAAsB;;;;"}
|
|
@@ -0,0 +1,90 @@
|
|
|
1
|
+
'use strict';
|
|
2
|
+
|
|
3
|
+
var jsxRuntime = require('react/jsx-runtime');
|
|
4
|
+
var React = require('react');
|
|
5
|
+
var utils = require('../utils-CTr7wn5d.js');
|
|
6
|
+
var primitives_Sheet = require('../primitives/Sheet.js');
|
|
7
|
+
require('../button-B8XGl69v.js');
|
|
8
|
+
require('../index-BZhTddX0.js');
|
|
9
|
+
require('../index-DuNgWCXZ.js');
|
|
10
|
+
require('../index-D-iDn9RI.js');
|
|
11
|
+
require('../sheet-CkCrHmVA.js');
|
|
12
|
+
require('../x-Brw3FJst.js');
|
|
13
|
+
require('../createLucideIcon-D0tRgV6l.js');
|
|
14
|
+
require('../index-BLGrl3PF.js');
|
|
15
|
+
require('../index-COPkC3I5.js');
|
|
16
|
+
require('../index-CGUGhyIp.js');
|
|
17
|
+
require('../index-BwAq9ba8.js');
|
|
18
|
+
require('../index-CCdG4z4E.js');
|
|
19
|
+
require('../index-CyrAgb4H.js');
|
|
20
|
+
require('../index-Bvu9MiFi.js');
|
|
21
|
+
require('../index-DMbj7vXd.js');
|
|
22
|
+
require('react-dom');
|
|
23
|
+
require('../index-lWVw05cs.js');
|
|
24
|
+
require('../index-ChSOMM8b.js');
|
|
25
|
+
require('../index-Df-Ffa3s.js');
|
|
26
|
+
require('../index-DcCSSgb7.js');
|
|
27
|
+
|
|
28
|
+
// ---------------------------------------------------------------------------
|
|
29
|
+
// Size mapping
|
|
30
|
+
// ---------------------------------------------------------------------------
|
|
31
|
+
// Uses data-[side] selector to match primitive specificity so tailwind-merge
|
|
32
|
+
// can override the default sm:max-w-sm from the primitive.
|
|
33
|
+
const SIZE_CLASS_MAP = {
|
|
34
|
+
small: "data-[side=left]:sm:max-w-sm data-[side=right]:sm:max-w-sm",
|
|
35
|
+
large: "data-[side=left]:sm:max-w-lg data-[side=right]:sm:max-w-lg",
|
|
36
|
+
extraLarge: "data-[side=left]:sm:max-w-2xl data-[side=right]:sm:max-w-2xl",
|
|
37
|
+
};
|
|
38
|
+
const SheetHeader = React.forwardRef(({ children, className, ...otherProps }, ref) => (jsxRuntime.jsx(primitives_Sheet.SheetHeader, { ref: ref, className: utils.cn(className), "data-testid": "sheet-header", ...otherProps, children: children })));
|
|
39
|
+
SheetHeader.displayName = "Sheet.Header";
|
|
40
|
+
const SheetBody = React.forwardRef(({ children, className, hasFooter = true, ...otherProps }, ref) => (jsxRuntime.jsx("div", { ref: ref, "data-slot": "sheet-body", "data-testid": "sheet-body", className: utils.cn("flex flex-1 flex-col items-start justify-start overflow-y-auto px-4", hasFooter && "pb-0", className), ...otherProps, children: children })));
|
|
41
|
+
SheetBody.displayName = "Sheet.Body";
|
|
42
|
+
const SheetFooter = React.forwardRef(({ children, className, ...otherProps }, ref) => (jsxRuntime.jsx(primitives_Sheet.SheetFooter, { ref: ref, className: utils.cn("flex flex-row items-center justify-start gap-2 border-t", className), "data-testid": "sheet-footer", ...otherProps, children: children })));
|
|
43
|
+
SheetFooter.displayName = "Sheet.Footer";
|
|
44
|
+
const SheetTitle = React.forwardRef(({ children, className, ...otherProps }, ref) => (jsxRuntime.jsx(primitives_Sheet.SheetTitle, { ref: ref, className: utils.cn("text-xl", className), ...otherProps, children: children })));
|
|
45
|
+
SheetTitle.displayName = "Sheet.Title";
|
|
46
|
+
const SheetDescription = React.forwardRef(({ children, className, ...otherProps }, ref) => (jsxRuntime.jsx(primitives_Sheet.SheetDescription, { ref: ref, className: utils.cn(className), ...otherProps, children: children })));
|
|
47
|
+
SheetDescription.displayName = "Sheet.Description";
|
|
48
|
+
// ---------------------------------------------------------------------------
|
|
49
|
+
// Component
|
|
50
|
+
// ---------------------------------------------------------------------------
|
|
51
|
+
const Sheet = React.forwardRef(({ size = "small", isOpen = false, onClose = () => { }, children, className, closeOnEsc = true, closeButton = true, backdropClassName, closeOnOutsideClick = true, initialFocusRef, finalFocusRef, side = "right", modal, defaultOpen,
|
|
52
|
+
// Radix content handlers — intercept and merge
|
|
53
|
+
onOpenAutoFocus: onOpenAutoFocusProp, onCloseAutoFocus: onCloseAutoFocusProp, ...otherProps }, ref) => {
|
|
54
|
+
const handleOpenChange = (open) => {
|
|
55
|
+
if (!open)
|
|
56
|
+
onClose();
|
|
57
|
+
};
|
|
58
|
+
const handleInteractOutside = (e) => {
|
|
59
|
+
if (!closeOnOutsideClick)
|
|
60
|
+
e.preventDefault();
|
|
61
|
+
};
|
|
62
|
+
const handleEscapeKeyDown = (e) => {
|
|
63
|
+
if (!closeOnEsc)
|
|
64
|
+
e.preventDefault();
|
|
65
|
+
};
|
|
66
|
+
const handleOpenAutoFocus = (e) => {
|
|
67
|
+
if (initialFocusRef?.current) {
|
|
68
|
+
e.preventDefault();
|
|
69
|
+
initialFocusRef.current.focus();
|
|
70
|
+
}
|
|
71
|
+
onOpenAutoFocusProp?.(e);
|
|
72
|
+
};
|
|
73
|
+
const handleCloseAutoFocus = (e) => {
|
|
74
|
+
if (finalFocusRef?.current) {
|
|
75
|
+
e.preventDefault();
|
|
76
|
+
finalFocusRef.current.focus();
|
|
77
|
+
}
|
|
78
|
+
onCloseAutoFocusProp?.(e);
|
|
79
|
+
};
|
|
80
|
+
return (jsxRuntime.jsx(primitives_Sheet.Sheet, { open: isOpen, onOpenChange: handleOpenChange, modal: modal, defaultOpen: defaultOpen, children: jsxRuntime.jsx(primitives_Sheet.SheetContent, { ref: ref, side: side, showCloseButton: closeButton, overlayClassName: backdropClassName, onInteractOutside: handleInteractOutside, onEscapeKeyDown: handleEscapeKeyDown, onOpenAutoFocus: handleOpenAutoFocus, onCloseAutoFocus: handleCloseAutoFocus, className: utils.cn(SIZE_CLASS_MAP[size], className), "data-testid": "sheet-wrapper", ...otherProps, children: children }) }));
|
|
81
|
+
});
|
|
82
|
+
Sheet.displayName = "Sheet";
|
|
83
|
+
Sheet.Header = SheetHeader;
|
|
84
|
+
Sheet.Body = SheetBody;
|
|
85
|
+
Sheet.Footer = SheetFooter;
|
|
86
|
+
Sheet.Title = SheetTitle;
|
|
87
|
+
Sheet.Description = SheetDescription;
|
|
88
|
+
|
|
89
|
+
exports.Sheet = Sheet;
|
|
90
|
+
//# sourceMappingURL=Sheet.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"Sheet.js","sources":["../../../../src/components/Sheet.tsx"],"sourcesContent":["import React, { forwardRef, type ReactNode, type RefObject } from \"react\";\n\nimport { cn } from \"src/shadcn/lib/utils\";\nimport {\n Sheet as PrimitiveSheet,\n SheetContent as PrimitiveSheetContent,\n SheetDescription as PrimitiveSheetDescription,\n SheetFooter as PrimitiveSheetFooter,\n SheetHeader as PrimitiveSheetHeader,\n SheetTitle as PrimitiveSheetTitle,\n} from \"src/primitives/Sheet\";\n\n// ---------------------------------------------------------------------------\n// Types\n// ---------------------------------------------------------------------------\n\ntype SheetSize = \"small\" | \"large\" | \"extraLarge\";\n\n/** Radix Sheet.Content props we forward via ...otherProps. */\ntype SheetContentProps = React.ComponentProps<typeof PrimitiveSheetContent>;\n\nexport interface SheetProps extends Omit<\n SheetContentProps,\n | \"children\"\n | \"className\"\n | \"side\"\n | \"showCloseButton\"\n | \"onEscapeKeyDown\"\n | \"onInteractOutside\"\n> {\n /** Size of the sheet. */\n size?: SheetSize;\n /** Whether the sheet is open. */\n isOpen?: boolean;\n /** Callback invoked when the sheet is closed. */\n onClose?: () => void;\n /** Content rendered inside the sheet. */\n children?: ReactNode;\n /** Additional CSS class names applied to the sheet content. */\n className?: string;\n /** Close on pressing the Esc key. */\n closeOnEsc?: boolean;\n /** Show the close button. */\n closeButton?: boolean;\n /** Additional CSS class names applied to the backdrop/overlay. */\n backdropClassName?: string;\n /** Close on clicking outside the sheet. */\n closeOnOutsideClick?: boolean;\n /** Ref of the element to receive focus when the sheet opens. */\n initialFocusRef?: RefObject<HTMLElement | null>;\n /** Ref of the element to receive focus when the sheet closes. */\n finalFocusRef?: RefObject<HTMLElement | null>;\n /** Which side the sheet slides in from. */\n side?: \"top\" | \"right\" | \"bottom\" | \"left\";\n /** Radix Dialog `modal` prop — controls modal vs non-modal behaviour. */\n modal?: boolean;\n /** Radix Dialog `defaultOpen` prop. */\n defaultOpen?: boolean;\n}\n\n// ---------------------------------------------------------------------------\n// Size mapping\n// ---------------------------------------------------------------------------\n\n// Uses data-[side] selector to match primitive specificity so tailwind-merge\n// can override the default sm:max-w-sm from the primitive.\nconst SIZE_CLASS_MAP: Record<SheetSize, string> = {\n small: \"data-[side=left]:sm:max-w-sm data-[side=right]:sm:max-w-sm\",\n large: \"data-[side=left]:sm:max-w-lg data-[side=right]:sm:max-w-lg\",\n extraLarge: \"data-[side=left]:sm:max-w-2xl data-[side=right]:sm:max-w-2xl\",\n};\n\n// ---------------------------------------------------------------------------\n// Subcomponents\n// ---------------------------------------------------------------------------\n\ninterface SheetSubcomponentProps extends React.ComponentProps<\"div\"> {\n children?: ReactNode;\n className?: string;\n}\n\nconst SheetHeader = forwardRef<HTMLDivElement, SheetSubcomponentProps>(\n ({ children, className, ...otherProps }, ref) => (\n <PrimitiveSheetHeader\n ref={ref}\n className={cn(className)}\n data-testid=\"sheet-header\"\n {...otherProps}\n >\n {children}\n </PrimitiveSheetHeader>\n )\n);\nSheetHeader.displayName = \"Sheet.Header\";\n\nconst SheetBody = forwardRef<\n HTMLDivElement,\n SheetSubcomponentProps & { hasFooter?: boolean }\n>(({ children, className, hasFooter = true, ...otherProps }, ref) => (\n <div\n ref={ref}\n data-slot=\"sheet-body\"\n data-testid=\"sheet-body\"\n className={cn(\n \"flex flex-1 flex-col items-start justify-start overflow-y-auto px-4\",\n hasFooter && \"pb-0\",\n className\n )}\n {...otherProps}\n >\n {children}\n </div>\n));\nSheetBody.displayName = \"Sheet.Body\";\n\nconst SheetFooter = forwardRef<HTMLDivElement, SheetSubcomponentProps>(\n ({ children, className, ...otherProps }, ref) => (\n <PrimitiveSheetFooter\n ref={ref}\n className={cn(\n \"flex flex-row items-center justify-start gap-2 border-t\",\n className\n )}\n data-testid=\"sheet-footer\"\n {...otherProps}\n >\n {children}\n </PrimitiveSheetFooter>\n )\n);\nSheetFooter.displayName = \"Sheet.Footer\";\n\nconst SheetTitle = forwardRef<\n HTMLHeadingElement,\n React.ComponentProps<typeof PrimitiveSheetTitle>\n>(({ children, className, ...otherProps }, ref) => (\n <PrimitiveSheetTitle\n ref={ref}\n className={cn(\"text-xl\", className)}\n {...otherProps}\n >\n {children}\n </PrimitiveSheetTitle>\n));\nSheetTitle.displayName = \"Sheet.Title\";\n\nconst SheetDescription = forwardRef<\n HTMLParagraphElement,\n React.ComponentProps<typeof PrimitiveSheetDescription>\n>(({ children, className, ...otherProps }, ref) => (\n <PrimitiveSheetDescription\n ref={ref}\n className={cn(className)}\n {...otherProps}\n >\n {children}\n </PrimitiveSheetDescription>\n));\nSheetDescription.displayName = \"Sheet.Description\";\n\n// ---------------------------------------------------------------------------\n// Component\n// ---------------------------------------------------------------------------\n\nconst Sheet = forwardRef<HTMLDivElement, SheetProps>(\n (\n {\n size = \"small\",\n isOpen = false,\n onClose = () => {},\n children,\n className,\n closeOnEsc = true,\n closeButton = true,\n backdropClassName,\n closeOnOutsideClick = true,\n initialFocusRef,\n finalFocusRef,\n side = \"right\",\n modal,\n defaultOpen,\n // Radix content handlers — intercept and merge\n onOpenAutoFocus: onOpenAutoFocusProp,\n onCloseAutoFocus: onCloseAutoFocusProp,\n ...otherProps\n },\n ref\n ) => {\n const handleOpenChange = (open: boolean) => {\n if (!open) onClose();\n };\n\n const handleInteractOutside = (e: Event) => {\n if (!closeOnOutsideClick) e.preventDefault();\n };\n\n const handleEscapeKeyDown = (e: KeyboardEvent) => {\n if (!closeOnEsc) e.preventDefault();\n };\n\n const handleOpenAutoFocus = (e: Event) => {\n if (initialFocusRef?.current) {\n e.preventDefault();\n initialFocusRef.current.focus();\n }\n onOpenAutoFocusProp?.(e);\n };\n\n const handleCloseAutoFocus = (e: Event) => {\n if (finalFocusRef?.current) {\n e.preventDefault();\n finalFocusRef.current.focus();\n }\n onCloseAutoFocusProp?.(e);\n };\n\n return (\n <PrimitiveSheet\n open={isOpen}\n onOpenChange={handleOpenChange}\n modal={modal}\n defaultOpen={defaultOpen}\n >\n <PrimitiveSheetContent\n ref={ref}\n side={side}\n showCloseButton={closeButton}\n overlayClassName={backdropClassName}\n onInteractOutside={handleInteractOutside}\n onEscapeKeyDown={handleEscapeKeyDown}\n onOpenAutoFocus={handleOpenAutoFocus}\n onCloseAutoFocus={handleCloseAutoFocus}\n className={cn(SIZE_CLASS_MAP[size], className)}\n data-testid=\"sheet-wrapper\"\n {...otherProps}\n >\n {children}\n </PrimitiveSheetContent>\n </PrimitiveSheet>\n );\n }\n) as React.ForwardRefExoticComponent<\n SheetProps & React.RefAttributes<HTMLDivElement>\n> & {\n Header: typeof SheetHeader;\n Body: typeof SheetBody;\n Footer: typeof SheetFooter;\n Title: typeof SheetTitle;\n Description: typeof SheetDescription;\n};\n\nSheet.displayName = \"Sheet\";\nSheet.Header = SheetHeader;\nSheet.Body = SheetBody;\nSheet.Footer = SheetFooter;\nSheet.Title = SheetTitle;\nSheet.Description = SheetDescription;\n\nexport { Sheet };\n"],"names":["forwardRef","_jsx","PrimitiveSheetHeader","cn","PrimitiveSheetFooter","PrimitiveSheetTitle","PrimitiveSheetDescription","PrimitiveSheet","PrimitiveSheetContent"],"mappings":"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"}
|