@baseplate-dev/ui-components 0.6.2 → 0.6.4

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.
Files changed (207) hide show
  1. package/CHANGELOG.md +18 -0
  2. package/LICENSE +114 -123
  3. package/dist/base-styles.css +5 -4
  4. package/dist/components/ui/async-combobox-field/async-combobox-field.d.ts +7 -5
  5. package/dist/components/ui/async-combobox-field/async-combobox-field.d.ts.map +1 -1
  6. package/dist/components/ui/async-combobox-field/async-combobox-field.js +142 -135
  7. package/dist/components/ui/async-combobox-field/async-combobox-field.js.map +1 -1
  8. package/dist/components/ui/async-combobox-field/async-combobox-field.unit.test.d.ts +2 -0
  9. package/dist/components/ui/async-combobox-field/async-combobox-field.unit.test.d.ts.map +1 -0
  10. package/dist/components/ui/async-combobox-field/async-combobox-field.unit.test.js +147 -0
  11. package/dist/components/ui/async-combobox-field/async-combobox-field.unit.test.js.map +1 -0
  12. package/dist/components/ui/autocomplete/autocomplete.d.ts +32 -0
  13. package/dist/components/ui/autocomplete/autocomplete.d.ts.map +1 -0
  14. package/dist/components/ui/autocomplete/autocomplete.js +59 -0
  15. package/dist/components/ui/autocomplete/autocomplete.js.map +1 -0
  16. package/dist/components/ui/badge/badge.d.ts +4 -11
  17. package/dist/components/ui/badge/badge.d.ts.map +1 -1
  18. package/dist/components/ui/badge/badge.js +22 -16
  19. package/dist/components/ui/badge/badge.js.map +1 -1
  20. package/dist/components/ui/breadcrumb/breadcrumb.d.ts +8 -4
  21. package/dist/components/ui/breadcrumb/breadcrumb.d.ts.map +1 -1
  22. package/dist/components/ui/breadcrumb/breadcrumb.js +24 -9
  23. package/dist/components/ui/breadcrumb/breadcrumb.js.map +1 -1
  24. package/dist/components/ui/button/button.d.ts +5 -5
  25. package/dist/components/ui/button/button.d.ts.map +1 -1
  26. package/dist/components/ui/button/button.js +4 -5
  27. package/dist/components/ui/button/button.js.map +1 -1
  28. package/dist/components/ui/checkbox/checkbox.d.ts +2 -3
  29. package/dist/components/ui/checkbox/checkbox.d.ts.map +1 -1
  30. package/dist/components/ui/checkbox/checkbox.js +2 -2
  31. package/dist/components/ui/checkbox/checkbox.js.map +1 -1
  32. package/dist/components/ui/checkbox-field/checkbox-field.d.ts +2 -2
  33. package/dist/components/ui/checkbox-field/checkbox-field.d.ts.map +1 -1
  34. package/dist/components/ui/checkbox-field/checkbox-field.js +8 -5
  35. package/dist/components/ui/checkbox-field/checkbox-field.js.map +1 -1
  36. package/dist/components/ui/code-editor-field/code-editor-field.d.ts.map +1 -1
  37. package/dist/components/ui/code-editor-field/code-editor-field.js +7 -7
  38. package/dist/components/ui/code-editor-field/code-editor-field.js.map +1 -1
  39. package/dist/components/ui/collapsible/collapsible.d.ts +4 -5
  40. package/dist/components/ui/collapsible/collapsible.d.ts.map +1 -1
  41. package/dist/components/ui/collapsible/collapsible.js +3 -4
  42. package/dist/components/ui/collapsible/collapsible.js.map +1 -1
  43. package/dist/components/ui/color-picker-field/color-picker-field.d.ts.map +1 -1
  44. package/dist/components/ui/color-picker-field/color-picker-field.js +9 -9
  45. package/dist/components/ui/color-picker-field/color-picker-field.js.map +1 -1
  46. package/dist/components/ui/combobox/combobox.d.ts +31 -69
  47. package/dist/components/ui/combobox/combobox.d.ts.map +1 -1
  48. package/dist/components/ui/combobox/combobox.js +62 -167
  49. package/dist/components/ui/combobox/combobox.js.map +1 -1
  50. package/dist/components/ui/combobox-field/combobox-field.d.ts +8 -3
  51. package/dist/components/ui/combobox-field/combobox-field.d.ts.map +1 -1
  52. package/dist/components/ui/combobox-field/combobox-field.js +15 -23
  53. package/dist/components/ui/combobox-field/combobox-field.js.map +1 -1
  54. package/dist/components/ui/date-picker-field/date-picker-field.d.ts.map +1 -1
  55. package/dist/components/ui/date-picker-field/date-picker-field.js +3 -3
  56. package/dist/components/ui/date-picker-field/date-picker-field.js.map +1 -1
  57. package/dist/components/ui/date-time-picker-field/date-time-picker-field.d.ts.map +1 -1
  58. package/dist/components/ui/date-time-picker-field/date-time-picker-field.js +3 -3
  59. package/dist/components/ui/date-time-picker-field/date-time-picker-field.js.map +1 -1
  60. package/dist/components/ui/dialog/dialog.d.ts +15 -13
  61. package/dist/components/ui/dialog/dialog.d.ts.map +1 -1
  62. package/dist/components/ui/dialog/dialog.js +12 -13
  63. package/dist/components/ui/dialog/dialog.js.map +1 -1
  64. package/dist/components/ui/dropdown/dropdown.d.ts +24 -16
  65. package/dist/components/ui/dropdown/dropdown.d.ts.map +1 -1
  66. package/dist/components/ui/dropdown/dropdown.js +31 -27
  67. package/dist/components/ui/dropdown/dropdown.js.map +1 -1
  68. package/dist/components/ui/field/field.d.ts +34 -0
  69. package/dist/components/ui/field/field.d.ts.map +1 -0
  70. package/dist/components/ui/field/field.js +77 -0
  71. package/dist/components/ui/field/field.js.map +1 -0
  72. package/dist/components/ui/form-action-bar/form-action-bar.d.ts.map +1 -1
  73. package/dist/components/ui/form-action-bar/form-action-bar.js +1 -1
  74. package/dist/components/ui/form-action-bar/form-action-bar.js.map +1 -1
  75. package/dist/components/ui/form-item/form-item.d.ts +6 -4
  76. package/dist/components/ui/form-item/form-item.d.ts.map +1 -1
  77. package/dist/components/ui/form-item/form-item.js +17 -3
  78. package/dist/components/ui/form-item/form-item.js.map +1 -1
  79. package/dist/components/ui/index.d.ts +5 -3
  80. package/dist/components/ui/index.d.ts.map +1 -1
  81. package/dist/components/ui/index.js +5 -3
  82. package/dist/components/ui/index.js.map +1 -1
  83. package/dist/components/ui/input-field/input-field.d.ts.map +1 -1
  84. package/dist/components/ui/input-field/input-field.js +7 -5
  85. package/dist/components/ui/input-field/input-field.js.map +1 -1
  86. package/dist/components/ui/input-group/input-group.d.ts +26 -0
  87. package/dist/components/ui/input-group/input-group.d.ts.map +1 -0
  88. package/dist/components/ui/input-group/input-group.js +65 -0
  89. package/dist/components/ui/input-group/input-group.js.map +1 -0
  90. package/dist/components/ui/label/label.d.ts +1 -2
  91. package/dist/components/ui/label/label.d.ts.map +1 -1
  92. package/dist/components/ui/label/label.js +3 -2
  93. package/dist/components/ui/label/label.js.map +1 -1
  94. package/dist/components/ui/multi-combobox-field/multi-combobox-field.d.ts +2 -2
  95. package/dist/components/ui/multi-combobox-field/multi-combobox-field.d.ts.map +1 -1
  96. package/dist/components/ui/multi-combobox-field/multi-combobox-field.js +23 -24
  97. package/dist/components/ui/multi-combobox-field/multi-combobox-field.js.map +1 -1
  98. package/dist/components/ui/multi-switch-field/multi-switch-field.js +3 -3
  99. package/dist/components/ui/multi-switch-field/multi-switch-field.js.map +1 -1
  100. package/dist/components/ui/navigation-menu/navigation-menu.d.ts +16 -15
  101. package/dist/components/ui/navigation-menu/navigation-menu.d.ts.map +1 -1
  102. package/dist/components/ui/navigation-menu/navigation-menu.js +17 -16
  103. package/dist/components/ui/navigation-menu/navigation-menu.js.map +1 -1
  104. package/dist/components/ui/navigation-tabs/navigation-tabs.d.ts +6 -3
  105. package/dist/components/ui/navigation-tabs/navigation-tabs.d.ts.map +1 -1
  106. package/dist/components/ui/navigation-tabs/navigation-tabs.js +16 -4
  107. package/dist/components/ui/navigation-tabs/navigation-tabs.js.map +1 -1
  108. package/dist/components/ui/popover/popover.d.ts +8 -10
  109. package/dist/components/ui/popover/popover.d.ts.map +1 -1
  110. package/dist/components/ui/popover/popover.js +12 -6
  111. package/dist/components/ui/popover/popover.js.map +1 -1
  112. package/dist/components/ui/scroll-area/scroll-area.d.ts +3 -4
  113. package/dist/components/ui/scroll-area/scroll-area.d.ts.map +1 -1
  114. package/dist/components/ui/scroll-area/scroll-area.js +2 -4
  115. package/dist/components/ui/scroll-area/scroll-area.js.map +1 -1
  116. package/dist/components/ui/select/select.d.ts +12 -17
  117. package/dist/components/ui/select/select.d.ts.map +1 -1
  118. package/dist/components/ui/select/select.js +20 -30
  119. package/dist/components/ui/select/select.js.map +1 -1
  120. package/dist/components/ui/select-field/select-field.d.ts +1 -0
  121. package/dist/components/ui/select-field/select-field.d.ts.map +1 -1
  122. package/dist/components/ui/select-field/select-field.js +6 -12
  123. package/dist/components/ui/select-field/select-field.js.map +1 -1
  124. package/dist/components/ui/separator/separator.d.ts +2 -3
  125. package/dist/components/ui/separator/separator.d.ts.map +1 -1
  126. package/dist/components/ui/separator/separator.js +3 -3
  127. package/dist/components/ui/separator/separator.js.map +1 -1
  128. package/dist/components/ui/sheet/sheet.d.ts +11 -11
  129. package/dist/components/ui/sheet/sheet.d.ts.map +1 -1
  130. package/dist/components/ui/sheet/sheet.js +7 -10
  131. package/dist/components/ui/sheet/sheet.js.map +1 -1
  132. package/dist/components/ui/sidebar/sidebar.d.ts +6 -12
  133. package/dist/components/ui/sidebar/sidebar.d.ts.map +1 -1
  134. package/dist/components/ui/sidebar/sidebar.js +79 -28
  135. package/dist/components/ui/sidebar/sidebar.js.map +1 -1
  136. package/dist/components/ui/skeleton/skeleton.js +1 -1
  137. package/dist/components/ui/skeleton/skeleton.js.map +1 -1
  138. package/dist/components/ui/slider/slider.d.ts +13 -0
  139. package/dist/components/ui/slider/slider.d.ts.map +1 -0
  140. package/dist/components/ui/slider/slider.js +22 -0
  141. package/dist/components/ui/slider/slider.js.map +1 -0
  142. package/dist/components/ui/spinner/spinner.d.ts +10 -0
  143. package/dist/components/ui/spinner/spinner.d.ts.map +1 -0
  144. package/dist/components/ui/spinner/spinner.js +13 -0
  145. package/dist/components/ui/spinner/spinner.js.map +1 -0
  146. package/dist/components/ui/switch/switch.d.ts +7 -3
  147. package/dist/components/ui/switch/switch.d.ts.map +1 -1
  148. package/dist/components/ui/switch/switch.js +6 -3
  149. package/dist/components/ui/switch/switch.js.map +1 -1
  150. package/dist/components/ui/switch-field/switch-field.d.ts +5 -3
  151. package/dist/components/ui/switch-field/switch-field.d.ts.map +1 -1
  152. package/dist/components/ui/switch-field/switch-field.js +7 -4
  153. package/dist/components/ui/switch-field/switch-field.js.map +1 -1
  154. package/dist/components/ui/tabs/tabs.d.ts +13 -7
  155. package/dist/components/ui/tabs/tabs.d.ts.map +1 -1
  156. package/dist/components/ui/tabs/tabs.js +23 -8
  157. package/dist/components/ui/tabs/tabs.js.map +1 -1
  158. package/dist/components/ui/textarea/textarea.js +1 -1
  159. package/dist/components/ui/textarea/textarea.js.map +1 -1
  160. package/dist/components/ui/textarea-field/textarea-field.d.ts.map +1 -1
  161. package/dist/components/ui/textarea-field/textarea-field.js +7 -5
  162. package/dist/components/ui/textarea-field/textarea-field.js.map +1 -1
  163. package/dist/components/ui/tooltip/tooltip.d.ts +10 -6
  164. package/dist/components/ui/tooltip/tooltip.d.ts.map +1 -1
  165. package/dist/components/ui/tooltip/tooltip.js +11 -6
  166. package/dist/components/ui/tooltip/tooltip.js.map +1 -1
  167. package/dist/constants/strings.d.ts +1 -0
  168. package/dist/constants/strings.d.ts.map +1 -1
  169. package/dist/constants/strings.js +1 -0
  170. package/dist/constants/strings.js.map +1 -1
  171. package/dist/contexts/component-strings.d.ts +1 -0
  172. package/dist/contexts/component-strings.d.ts.map +1 -1
  173. package/dist/hooks/use-event-callback.d.ts +2 -2
  174. package/dist/hooks/use-event-callback.d.ts.map +1 -1
  175. package/dist/hooks/use-event-callback.js +2 -1
  176. package/dist/hooks/use-event-callback.js.map +1 -1
  177. package/dist/styles/button.d.ts +1 -1
  178. package/dist/styles/button.d.ts.map +1 -1
  179. package/dist/styles/button.js +15 -11
  180. package/dist/styles/button.js.map +1 -1
  181. package/dist/styles/index.d.ts +0 -1
  182. package/dist/styles/index.d.ts.map +1 -1
  183. package/dist/styles/index.js +0 -1
  184. package/dist/styles/index.js.map +1 -1
  185. package/dist/theme.css +8 -0
  186. package/dist/utilities.css +100 -0
  187. package/package.json +10 -10
  188. package/dist/components/ui/color-picker/color-picker.d.ts +0 -16
  189. package/dist/components/ui/color-picker/color-picker.d.ts.map +0 -1
  190. package/dist/components/ui/color-picker/color-picker.js +0 -19
  191. package/dist/components/ui/color-picker/color-picker.js.map +0 -1
  192. package/dist/components/ui/combobox/combobox.test.d.ts +0 -2
  193. package/dist/components/ui/combobox/combobox.test.d.ts.map +0 -1
  194. package/dist/components/ui/combobox/combobox.test.js +0 -148
  195. package/dist/components/ui/combobox/combobox.test.js.map +0 -1
  196. package/dist/components/ui/command/command.d.ts +0 -22
  197. package/dist/components/ui/command/command.d.ts.map +0 -1
  198. package/dist/components/ui/command/command.js +0 -40
  199. package/dist/components/ui/command/command.js.map +0 -1
  200. package/dist/components/ui/multi-combobox/multi-combobox.d.ts +0 -47
  201. package/dist/components/ui/multi-combobox/multi-combobox.d.ts.map +0 -1
  202. package/dist/components/ui/multi-combobox/multi-combobox.js +0 -114
  203. package/dist/components/ui/multi-combobox/multi-combobox.js.map +0 -1
  204. package/dist/styles/select.d.ts +0 -9
  205. package/dist/styles/select.d.ts.map +0 -1
  206. package/dist/styles/select.js +0 -22
  207. package/dist/styles/select.js.map +0 -1
@@ -5,7 +5,7 @@ import { HexColorInput, HexColorPicker } from 'react-colorful';
5
5
  import { useControllerMerged } from '#src/hooks/use-controller-merged.js';
6
6
  import { buttonVariants, inputVariants } from '#src/styles/index.js';
7
7
  import { cn } from '#src/utils/index.js';
8
- import { FormControl, FormDescription, FormItem, FormLabel, FormMessage, } from '../form-item/form-item.js';
8
+ import { Field, FieldDescription, FieldError, FieldLabel, } from '../field/field.js';
9
9
  import { Popover, PopoverContent, PopoverTrigger } from '../popover/popover.js';
10
10
  /**
11
11
  * Field with label and error states that wraps a ColorPicker component.
@@ -20,15 +20,15 @@ function ColorPickerField({ className, wrapperClassName, disabled, placeholder,
20
20
  const newColorValue = serializeColor?.(newHexValue) ?? newHexValue;
21
21
  onChange?.(newColorValue);
22
22
  };
23
- const inputComponent = (_jsxs(Popover, { children: [_jsx(PopoverTrigger, { asChild: true, children: _jsxs("button", { className: cn(buttonVariants({
24
- variant: 'outline',
25
- size: 'none',
26
- justify: 'start',
27
- }), className, 'flex h-8 items-center gap-2 px-2', hideText ? 'justify-center' : undefined, disabled ? 'opacity-75' : undefined), id: id, ref: ref, disabled: disabled, children: [hexValue && (_jsx("div", { className: "h-4 w-6 rounded-sm border border-border", style: {
28
- backgroundColor: hexValue,
29
- } })), hideText ? null : hexValue ? (_jsx("div", { children: formatColorName && value ? formatColorName(value) : hexValue })) : (_jsx("div", { className: "opacity-75", children: placeholder }))] }) }), _jsxs(PopoverContent, { sideOffset: 5, align: "start", collisionPadding: { bottom: 50 }, className: "space-y-2 rounded-md border border-border bg-white p-4", width: "none", children: [_jsx(HexColorInput, { className: cn(inputVariants(), 'p-2'), prefixed: true, color: hexValue ?? '', onChange: handleChange }), _jsx(HexColorPicker, { color: hexValue ?? '', onChange: handleChange })] })] }));
23
+ const inputComponent = (_jsxs(Popover, { children: [_jsxs(PopoverTrigger, { className: cn(buttonVariants({
24
+ variant: 'outline',
25
+ size: 'none',
26
+ justify: 'start',
27
+ }), className, 'flex h-8 items-center gap-2 px-2', hideText ? 'justify-center' : undefined, disabled ? 'opacity-75' : undefined), id: id, ref: ref, disabled: disabled, children: [hexValue && (_jsx("div", { className: "h-4 w-6 rounded-sm border border-border", style: {
28
+ backgroundColor: hexValue,
29
+ } })), hideText ? null : hexValue ? (_jsx("div", { children: formatColorName && value ? formatColorName(value) : hexValue })) : (_jsx("div", { className: "opacity-75", children: placeholder }))] }), _jsxs(PopoverContent, { sideOffset: 5, align: "start", className: "w-auto space-y-2 rounded-md border border-border bg-white p-4", children: [_jsx(HexColorInput, { className: cn(inputVariants(), 'p-2'), prefixed: true, color: hexValue ?? '', onChange: handleChange }), _jsx(HexColorPicker, { color: hexValue ?? '', onChange: handleChange })] })] }));
30
30
  if (addWrapper) {
31
- return (_jsxs(FormItem, { error: error, className: cn('flex gap-2', wrapperClassName), children: [_jsx(FormLabel, { children: label }), _jsx(FormControl, { children: inputComponent }), _jsx(FormDescription, { children: description }), _jsx(FormMessage, {})] }));
31
+ return (_jsxs(Field, { "data-invalid": !!error, className: cn('gap-2', wrapperClassName), children: [_jsx(FieldLabel, { htmlFor: id, children: label }), inputComponent, _jsx(FieldDescription, { children: description }), _jsx(FieldError, { children: error })] }));
32
32
  }
33
33
  return inputComponent;
34
34
  }
@@ -1 +1 @@
1
- {"version":3,"file":"color-picker-field.js","sourceRoot":"","sources":["../../../../src/components/ui/color-picker-field/color-picker-field.tsx"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"color-picker-field.js","sourceRoot":"","sources":["../../../../src/components/ui/color-picker-field/color-picker-field.tsx"],"names":[],"mappings":"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"}
@@ -1,73 +1,35 @@
1
+ import { Combobox as ComboboxPrimitive } from '@base-ui/react/combobox';
1
2
  import * as React from 'react';
2
- interface ComboboxContextValue {
3
- selectedValue: string | undefined | null;
4
- selectedLabel: string | undefined | null;
5
- onSelect: (value: string | null, label: string | undefined) => void;
6
- searchQuery: string;
7
- setSearchQuery: (query: string) => void;
8
- setIsOpen: (open: boolean) => void;
9
- isOpen: boolean;
10
- inputId: string;
11
- listRef: React.RefObject<HTMLDivElement | null>;
12
- shouldShowItem: (label: string | null) => boolean;
13
- disabled: boolean;
14
- }
15
- interface ComboboxOption {
16
- label?: string;
17
- value: string | null;
18
- }
19
- export interface ComboboxProps {
20
- children: React.ReactNode;
21
- value?: ComboboxOption | null;
22
- onChange?: (value: ComboboxOption) => void;
23
- searchQuery?: string;
24
- onSearchQueryChange?: (query: string) => void;
25
- label?: string;
26
- disabled?: boolean;
27
- }
28
3
  /**
29
- * A control that allows users to select an option from a list of options and type to search.
4
+ * An autocomplete input that allows users to filter and select from a list of options.
5
+ *
6
+ * ShadCN changes:
7
+ * - ComboboxList shows native scrollbar instead of no-scrollbar for better discoverability
8
+ *
9
+ * https://ui.shadcn.com/docs/components/combobox
30
10
  */
31
- declare function Combobox({ children, value: controlledValue, onChange, searchQuery: defaultSearchQuery, onSearchQueryChange, label, disabled, }: ComboboxProps): React.JSX.Element;
32
- export declare function useComboboxContext(): ComboboxContextValue;
33
- interface ComboboxInputProps extends Omit<React.ComponentPropsWithRef<'input'>, 'value'> {
34
- selectedLabel?: string;
35
- }
36
- declare function ComboboxInput({ className, placeholder, ref, ...rest }: ComboboxInputProps): React.ReactElement;
37
- interface ComboboxContentProps extends React.RefAttributes<HTMLDivElement> {
38
- children?: React.ReactNode;
39
- className?: string;
40
- maxHeight?: string;
41
- style?: React.CSSProperties;
42
- }
43
- declare function ComboboxContent({ children, className, maxHeight, style, ...rest }: ComboboxContentProps): React.JSX.Element;
44
- type ComboboxEmptyProps = React.HTMLAttributes<HTMLDivElement>;
45
- declare function ComboboxEmpty({ className, ...props }: ComboboxEmptyProps): React.ReactElement;
46
- type ComboboxLoadingProps = React.HTMLAttributes<HTMLDivElement>;
47
- declare function ComboboxLoading({ className, ...props }: ComboboxLoadingProps): React.ReactElement;
48
- declare const ComboboxGroup: React.ForwardRefExoticComponent<{
49
- children?: React.ReactNode;
50
- } & Omit<Pick<Pick<React.DetailedHTMLProps<React.HTMLAttributes<HTMLDivElement>, HTMLDivElement>, "key" | keyof React.HTMLAttributes<HTMLDivElement>> & {
51
- ref?: React.Ref<HTMLDivElement>;
52
- } & {
53
- asChild?: boolean;
54
- }, "key" | "asChild" | keyof React.HTMLAttributes<HTMLDivElement>>, "heading" | "value"> & {
55
- heading?: React.ReactNode;
56
- value?: string;
57
- forceMount?: boolean;
58
- } & React.RefAttributes<HTMLDivElement>>;
59
- interface ComboboxItemProps extends Omit<React.ComponentPropsWithRef<'div'>, 'onSelect'> {
60
- disabled?: boolean;
61
- value: string | null;
62
- label?: string;
63
- }
64
- declare function ComboboxItem({ value, className, label, children, ref, ...rest }: ComboboxItemProps): React.ReactElement;
65
- interface ComboboxActionProps extends Omit<React.ComponentPropsWithRef<'div'>, 'onSelect' | 'onClick'> {
66
- disabled?: boolean;
67
- value: string;
68
- label?: string;
69
- onClick?: () => void;
70
- }
71
- declare function ComboboxAction({ value, className, children, onClick, ref, ...rest }: ComboboxActionProps): React.ReactElement;
72
- export { Combobox, ComboboxAction, ComboboxContent, ComboboxEmpty, ComboboxGroup, ComboboxInput, ComboboxItem, ComboboxLoading, };
11
+ declare const Combobox: typeof ComboboxPrimitive.Root;
12
+ declare function ComboboxValue({ ...props }: ComboboxPrimitive.Value.Props): React.ReactElement;
13
+ declare function ComboboxTrigger({ className, children, ...props }: ComboboxPrimitive.Trigger.Props): React.ReactElement;
14
+ declare function ComboboxClear({ className, ...props }: ComboboxPrimitive.Clear.Props): React.ReactElement;
15
+ declare function ComboboxInput({ className, children, disabled, showTrigger, showClear, ...props }: ComboboxPrimitive.Input.Props & {
16
+ showTrigger?: boolean;
17
+ showClear?: boolean;
18
+ }): React.ReactElement;
19
+ declare function ComboboxContent({ className, side, sideOffset, align, alignOffset, anchor, ...props }: ComboboxPrimitive.Popup.Props & Pick<ComboboxPrimitive.Positioner.Props, 'side' | 'align' | 'sideOffset' | 'alignOffset' | 'anchor'>): React.ReactElement;
20
+ declare function ComboboxList({ className, ...props }: ComboboxPrimitive.List.Props): React.ReactElement;
21
+ declare function ComboboxItem({ className, children, ...props }: ComboboxPrimitive.Item.Props): React.ReactElement;
22
+ declare function ComboboxGroup({ className, ...props }: ComboboxPrimitive.Group.Props): React.ReactElement;
23
+ declare function ComboboxLabel({ className, ...props }: ComboboxPrimitive.GroupLabel.Props): React.ReactElement;
24
+ declare function ComboboxCollection({ ...props }: ComboboxPrimitive.Collection.Props): React.ReactElement;
25
+ declare function ComboboxEmpty({ className, ...props }: ComboboxPrimitive.Empty.Props): React.ReactElement;
26
+ declare function ComboboxStatus({ className, ...props }: ComboboxPrimitive.Status.Props): React.ReactElement;
27
+ declare function ComboboxSeparator({ className, ...props }: ComboboxPrimitive.Separator.Props): React.ReactElement;
28
+ declare function ComboboxChips({ className, ...props }: React.ComponentPropsWithRef<typeof ComboboxPrimitive.Chips> & ComboboxPrimitive.Chips.Props): React.ReactElement;
29
+ declare function ComboboxChip({ className, children, showRemove, ...props }: ComboboxPrimitive.Chip.Props & {
30
+ showRemove?: boolean;
31
+ }): React.ReactElement;
32
+ declare function ComboboxChipsInput({ className, ...props }: ComboboxPrimitive.Input.Props): React.ReactElement;
33
+ declare function useComboboxAnchor(): React.RefObject<HTMLDivElement | null>;
34
+ export { Combobox, ComboboxChip, ComboboxChips, ComboboxChipsInput, ComboboxClear, ComboboxCollection, ComboboxContent, ComboboxEmpty, ComboboxGroup, ComboboxInput, ComboboxItem, ComboboxLabel, ComboboxList, ComboboxSeparator, ComboboxStatus, ComboboxTrigger, ComboboxValue, useComboboxAnchor, };
73
35
  //# sourceMappingURL=combobox.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"combobox.d.ts","sourceRoot":"","sources":["../../../../src/components/ui/combobox/combobox.tsx"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"combobox.d.ts","sourceRoot":"","sources":["../../../../src/components/ui/combobox/combobox.tsx"],"names":[],"mappings":"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"}
@@ -1,175 +1,70 @@
1
1
  'use client';
2
- import { jsx as _jsx, jsxs as _jsxs, Fragment as _Fragment } from "react/jsx-runtime";
3
- import { Command } from 'cmdk';
4
- import { Popover, ScrollArea as ScrollAreaPrimitive } from 'radix-ui';
2
+ import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
3
+ import { Combobox as ComboboxPrimitive } from '@base-ui/react/combobox';
5
4
  import * as React from 'react';
6
- import { MdCheck, MdUnfoldMore } from 'react-icons/md';
7
- import { useControlledState } from '#src/hooks/use-controlled-state.js';
8
- import { inputVariants, selectCheckVariants, selectContentVariants, selectItemVariants, } from '#src/styles/index.js';
9
- import { cn, mergeRefs } from '#src/utils/index.js';
5
+ import { MdCheck, MdClose, MdUnfoldMore } from 'react-icons/md';
6
+ import { cn } from '#src/utils/index.js';
10
7
  import { Button } from '../button/button.js';
11
- import { ScrollBar } from '../scroll-area/scroll-area.js';
12
- const ComboboxContext = React.createContext(null);
13
- const DEFAULT_OPTION = { value: null, label: '' };
8
+ import { InputGroup, InputGroupAddon, InputGroupButton, InputGroupInput, } from '../input-group/input-group.js';
14
9
  /**
15
- * A control that allows users to select an option from a list of options and type to search.
10
+ * An autocomplete input that allows users to filter and select from a list of options.
11
+ *
12
+ * ShadCN changes:
13
+ * - ComboboxList shows native scrollbar instead of no-scrollbar for better discoverability
14
+ *
15
+ * https://ui.shadcn.com/docs/components/combobox
16
16
  */
17
- function Combobox({ children, value: controlledValue, onChange, searchQuery: defaultSearchQuery, onSearchQueryChange, label, disabled = false, }) {
18
- const [isOpen, setIsOpen] = React.useState(false);
19
- const [value, setValue] = useControlledState(controlledValue === null ? DEFAULT_OPTION : controlledValue, onChange, DEFAULT_OPTION);
20
- const [searchQuery, setSearchQuery] = useControlledState(defaultSearchQuery, onSearchQueryChange, '');
21
- // the value of the combobox that is currently active
22
- const [activeValue, setActiveValue] = React.useState(value.value ?? '');
23
- // Caches the filter query so we can maintain
24
- // the query when animating the combobox open/close
25
- const [filterQuery, setFilterQuery] = React.useState(searchQuery);
26
- const inputRef = React.useRef(null);
27
- const inputId = React.useId();
28
- const listRef = React.useRef(null);
29
- const contextValue = React.useMemo(() => ({
30
- selectedLabel: value.label ?? '',
31
- selectedValue: value.value,
32
- onSelect: (val, lab) => {
33
- setValue({ value: val, label: lab });
34
- setFilterQuery(searchQuery);
35
- setSearchQuery('');
36
- setIsOpen(false);
37
- },
38
- searchQuery,
39
- setSearchQuery: (query) => {
40
- setFilterQuery(query);
41
- setSearchQuery(query);
42
- setIsOpen(true);
43
- },
44
- setIsOpen: (open) => {
45
- setFilterQuery(searchQuery);
46
- if (!open) {
47
- setActiveValue(value.value ?? '');
48
- setSearchQuery('');
49
- }
50
- setIsOpen(open);
51
- },
52
- isOpen,
53
- inputId,
54
- inputRef,
55
- listRef,
56
- shouldShowItem: (label) => {
57
- if (!filterQuery) {
58
- return true;
59
- }
60
- if (!label) {
61
- return false;
62
- }
63
- return label.toLowerCase().includes(filterQuery.toLowerCase());
64
- },
65
- disabled,
66
- }), [
67
- value,
68
- inputId,
69
- searchQuery,
70
- setSearchQuery,
71
- setValue,
72
- isOpen,
73
- filterQuery,
74
- disabled,
75
- ]);
76
- return (_jsx(ComboboxContext.Provider, { value: contextValue, children: _jsx(Popover.Root, { open: isOpen, onOpenChange: contextValue.setIsOpen, children: _jsx(Command, { "aria-disabled": disabled, shouldFilter: false, value: activeValue, onValueChange: (val) => {
77
- setActiveValue(val);
78
- }, label: label, children: children }) }) }));
79
- }
80
- export function useComboboxContext() {
81
- const value = React.useContext(ComboboxContext);
82
- if (!value) {
83
- throw new Error(`useComboboxContext must be used inside a ComboboxContext provider`);
84
- }
85
- return value;
86
- }
87
- function ComboboxInput({ className, placeholder, ref, ...rest }) {
88
- const { setIsOpen, isOpen, inputId, searchQuery, setSearchQuery, selectedLabel, disabled, } = useComboboxContext();
89
- const selectedLabelId = React.useId();
90
- const inputRef = React.useRef(null);
91
- const handleKeydown = React.useCallback((e) => {
92
- const specialKeys = ['ArrowDown', 'ArrowUp', 'Home', 'End', 'Enter'];
93
- if (e.key === 'Escape') {
94
- setIsOpen(false);
95
- }
96
- else if (specialKeys.includes(e.key)) {
97
- setIsOpen(true);
98
- }
99
- }, [setIsOpen]);
100
- return (_jsx(Popover.Anchor, { children: _jsxs("div", { className: "relative", "data-cmdk-input-id": inputId, children: [_jsx(Command.Input, { asChild: true, onKeyDown: handleKeydown, disabled: disabled, onBlur: (e) => {
101
- if (e.relatedTarget &&
102
- e.relatedTarget instanceof Element &&
103
- e.relatedTarget.closest(`[data-combobox-content=""]`)) {
104
- e.target.focus();
105
- }
106
- }, value: searchQuery, onValueChange: setSearchQuery, className: cn(inputVariants(), 'pr-8', className), placeholder: selectedLabel ? undefined : placeholder, onClick: () => {
107
- if (disabled) {
108
- return;
109
- }
110
- if (!isOpen) {
111
- setIsOpen(true);
112
- }
113
- else if (inputRef.current) {
114
- // avoid closing the combobox if the user is selecting text
115
- const hasSelectedEnd = inputRef.current.selectionStart ===
116
- inputRef.current.selectionEnd &&
117
- inputRef.current.selectionEnd === inputRef.current.value.length;
118
- if (hasSelectedEnd) {
119
- setIsOpen(false);
120
- }
121
- }
122
- }, ...rest, "aria-describedby": `${rest['aria-describedby'] ?? ''} ${selectedLabelId}`, ref: mergeRefs(ref, inputRef), children: _jsx("input", { ...(rest['aria-labelledby']
123
- ? { 'aria-labelledby': rest['aria-labelledby'] }
124
- : undefined) }) }), _jsx("div", { className: "pointer-events-none absolute inset-0 flex items-center pr-8", children: _jsx("div", { id: selectedLabelId, className: cn(disabled ? 'opacity-50' : '', searchQuery ? 'hidden' : '', 'pointer-events-none truncate py-1 pl-3 text-base md:text-sm'), children: selectedLabel }) }), _jsx(Button, { className: "absolute top-1/2 right-2 -translate-y-1/2 opacity-50", type: "button", variant: "ghost", size: "icon", disabled: disabled, "aria-label": `${isOpen ? 'Close' : 'Open'} combobox`, onClick: () => {
125
- if (disabled) {
126
- return;
127
- }
128
- setIsOpen(!isOpen);
129
- }, onKeyDown: (e) => {
130
- if (!isOpen) {
131
- e.stopPropagation();
132
- }
133
- }, children: _jsx(MdUnfoldMore, { className: "size-4" }) })] }) }));
134
- }
135
- function ComboboxContent({ children, className, maxHeight = '320px', style, ...rest }) {
136
- const { inputId, listRef } = useComboboxContext();
137
- return (_jsx(Popover.Portal, { children: _jsx(Popover.Content, { onOpenAutoFocus: (e) => {
138
- e.preventDefault();
139
- }, onInteractOutside: (e) => {
140
- if (e.target &&
141
- e.target instanceof Element &&
142
- e.target.closest(`[data-cmdk-input-id="${inputId}"]`)) {
143
- e.preventDefault();
144
- }
145
- }, className: cn(selectContentVariants({ popper: 'active' }), className), style: {
146
- '--max-popover-height': maxHeight,
147
- ...style,
148
- }, "data-combobox-content": "", ...rest, children: _jsxs(ScrollAreaPrimitive.Root, { type: "auto", className: "relative overflow-hidden", children: [_jsx(ScrollAreaPrimitive.Viewport, { className: cn('h-full w-full rounded-[inherit] p-1', 'max-h-[min(var(--max-popover-height),var(--radix-popover-content-available-height))] w-full min-w-(--radix-popover-trigger-width)'), style: {
149
- '--max-popper-height': maxHeight,
150
- }, children: _jsx(Command.List, { ref: listRef, children: children }) }), _jsx(ScrollBar, {}), _jsx(ScrollAreaPrimitive.Corner, {})] }) }) }));
17
+ const Combobox = ComboboxPrimitive.Root;
18
+ function ComboboxValue({ ...props }) {
19
+ return _jsx(ComboboxPrimitive.Value, { "data-slot": "combobox-value", ...props });
20
+ }
21
+ function ComboboxTrigger({ className, children, ...props }) {
22
+ return (_jsxs(ComboboxPrimitive.Trigger, { "data-slot": "combobox-trigger", className: cn("[&_svg:not([class*='size-'])]:size-4", className), ...props, children: [children, _jsx(MdUnfoldMore, { className: "pointer-events-none size-4 text-muted-foreground" })] }));
23
+ }
24
+ function ComboboxClear({ className, ...props }) {
25
+ return (_jsx(ComboboxPrimitive.Clear, { "data-slot": "combobox-clear", render: _jsx(InputGroupButton, { variant: "ghost", size: "icon-xs" }), className: cn(className), ...props, children: _jsx(MdClose, { className: "pointer-events-none" }) }));
26
+ }
27
+ function ComboboxInput({ className, children, disabled = false, showTrigger = true, showClear = false, ...props }) {
28
+ return (_jsxs(InputGroup, { className: cn('w-auto', className), children: [_jsx(ComboboxPrimitive.Input, { render: _jsx(InputGroupInput, { disabled: disabled }), ...props }), _jsxs(InputGroupAddon, { align: "inline-end", children: [showTrigger && (_jsx(InputGroupButton, { size: "icon-xs", variant: "ghost", render: _jsx(ComboboxTrigger, {}), "data-slot": "input-group-button", className: "group-has-data-[slot=combobox-clear]/input-group:hidden data-pressed:bg-transparent", disabled: disabled })), showClear && _jsx(ComboboxClear, { disabled: disabled })] }), children] }));
29
+ }
30
+ function ComboboxContent({ className, side = 'bottom', sideOffset = 6, align = 'start', alignOffset = 0, anchor, ...props }) {
31
+ return (_jsx(ComboboxPrimitive.Portal, { children: _jsx(ComboboxPrimitive.Positioner, { side: side, sideOffset: sideOffset, align: align, alignOffset: alignOffset, anchor: anchor, className: "isolate z-50", children: _jsx(ComboboxPrimitive.Popup, { "data-slot": "combobox-content", "data-chips": !!anchor, className: cn('group/combobox-content relative max-h-(--available-height) w-(--anchor-width) max-w-(--available-width) min-w-[calc(var(--anchor-width)+--spacing(7))] origin-(--transform-origin) overflow-hidden rounded-lg bg-popover text-popover-foreground shadow-md ring-1 ring-foreground/10 duration-100 data-[chips=true]:min-w-(--anchor-width) data-[side=bottom]:slide-in-from-top-2 data-[side=inline-end]:slide-in-from-left-2 data-[side=inline-start]:slide-in-from-right-2 data-[side=left]:slide-in-from-right-2 data-[side=right]:slide-in-from-left-2 data-[side=top]:slide-in-from-bottom-2 *:data-[slot=input-group]:m-1 *:data-[slot=input-group]:mb-0 *:data-[slot=input-group]:h-8 *:data-[slot=input-group]:border-input/30 *:data-[slot=input-group]:bg-input/30 *:data-[slot=input-group]:shadow-none data-open:animate-in data-open:fade-in-0 data-open:zoom-in-95 data-closed:animate-out data-closed:fade-out-0 data-closed:zoom-out-95', className), ...props }) }) }));
32
+ }
33
+ function ComboboxList({ className, ...props }) {
34
+ return (_jsx(ComboboxPrimitive.List, { "data-slot": "combobox-list", className: cn('max-h-[min(calc(--spacing(72)---spacing(9)),calc(var(--available-height)---spacing(9)))] scroll-py-1 overflow-y-auto overscroll-contain p-1 data-empty:p-0', className), ...props }));
35
+ }
36
+ function ComboboxItem({ className, children, ...props }) {
37
+ return (_jsxs(ComboboxPrimitive.Item, { "data-slot": "combobox-item", className: cn("relative flex w-full cursor-default items-center gap-2 rounded-md py-1 pr-8 pl-1.5 text-sm outline-hidden select-none data-highlighted:bg-accent data-highlighted:text-accent-foreground not-data-[variant=destructive]:data-highlighted:**:text-accent-foreground data-disabled:pointer-events-none data-disabled:opacity-50 [&_svg]:pointer-events-none [&_svg]:shrink-0 [&_svg:not([class*='size-'])]:size-4", className), ...props, children: [children, _jsx(ComboboxPrimitive.ItemIndicator, { render: _jsx("span", { className: "pointer-events-none absolute right-2 flex size-4 items-center justify-center" }), children: _jsx(MdCheck, { className: "pointer-events-none" }) })] }));
38
+ }
39
+ function ComboboxGroup({ className, ...props }) {
40
+ return (_jsx(ComboboxPrimitive.Group, { "data-slot": "combobox-group", className: cn(className), ...props }));
41
+ }
42
+ function ComboboxLabel({ className, ...props }) {
43
+ return (_jsx(ComboboxPrimitive.GroupLabel, { "data-slot": "combobox-label", className: cn('px-2 py-1.5 text-xs text-muted-foreground', className), ...props }));
44
+ }
45
+ function ComboboxCollection({ ...props }) {
46
+ return (_jsx(ComboboxPrimitive.Collection, { "data-slot": "combobox-collection", ...props }));
151
47
  }
152
48
  function ComboboxEmpty({ className, ...props }) {
153
- return _jsx(Command.Empty, { className: cn('p-2 text-sm', className), ...props });
154
- }
155
- function ComboboxLoading({ className, ...props }) {
156
- return (_jsx(Command.Loading, { className: cn('flex items-center justify-center p-4 text-sm text-muted-foreground', className), ...props }));
157
- }
158
- const ComboboxGroup = Command.Group;
159
- function ComboboxItem({ value, className, label, children, ref, ...rest }) {
160
- const { selectedValue, onSelect, shouldShowItem } = useComboboxContext();
161
- const itemRef = React.useRef(null);
162
- const extractedLabel = label ?? (typeof children === 'string' ? children.trim() : undefined);
163
- if (!shouldShowItem(extractedLabel ?? value)) {
164
- return _jsx(_Fragment, {});
165
- }
166
- return (_jsxs(Command.Item, { value: value ?? '', onSelect: () => {
167
- onSelect(value, extractedLabel);
168
- }, className: cn(selectItemVariants(), className), ...rest, ref: mergeRefs(ref, itemRef), children: [children, _jsx(MdCheck, { className: cn(selectCheckVariants(), value === selectedValue ? 'opacity-100' : 'opacity-0') })] }));
169
- }
170
- function ComboboxAction({ value, className, children, onClick, ref, ...rest }) {
171
- const itemRef = React.useRef(null);
172
- return (_jsx(Command.Item, { value: value, onSelect: onClick, className: cn(selectItemVariants(), className), ...rest, ref: mergeRefs(ref, itemRef), children: children }));
173
- }
174
- export { Combobox, ComboboxAction, ComboboxContent, ComboboxEmpty, ComboboxGroup, ComboboxInput, ComboboxItem, ComboboxLoading, };
49
+ return (_jsx(ComboboxPrimitive.Empty, { "data-slot": "combobox-empty", className: cn('hidden w-full justify-center py-2 text-center text-sm text-muted-foreground group-data-empty/combobox-content:flex', className), ...props }));
50
+ }
51
+ function ComboboxStatus({ className, ...props }) {
52
+ return (_jsx(ComboboxPrimitive.Status, { "data-slot": "combobox-status", className: cn('flex items-center justify-center p-2 text-sm text-muted-foreground', className), ...props }));
53
+ }
54
+ function ComboboxSeparator({ className, ...props }) {
55
+ return (_jsx(ComboboxPrimitive.Separator, { "data-slot": "combobox-separator", className: cn('-mx-1 my-1 h-px bg-border', className), ...props }));
56
+ }
57
+ function ComboboxChips({ className, ...props }) {
58
+ return (_jsx(ComboboxPrimitive.Chips, { "data-slot": "combobox-chips", className: cn('flex min-h-8 flex-wrap items-center gap-1 rounded-lg border border-input bg-transparent bg-clip-padding px-2.5 py-1 text-sm transition-colors focus-within:border-ring focus-within:ring-3 focus-within:ring-ring/50 has-aria-invalid:border-destructive has-aria-invalid:ring-3 has-aria-invalid:ring-destructive/20 has-data-[slot=combobox-chip]:px-1 dark:bg-input/30 dark:has-aria-invalid:border-destructive/50 dark:has-aria-invalid:ring-destructive/40', className), ...props }));
59
+ }
60
+ function ComboboxChip({ className, children, showRemove = true, ...props }) {
61
+ return (_jsxs(ComboboxPrimitive.Chip, { "data-slot": "combobox-chip", className: cn('flex h-[calc(--spacing(5.25))] w-fit items-center justify-center gap-1 rounded-sm bg-muted px-1.5 text-xs font-medium whitespace-nowrap text-foreground has-disabled:pointer-events-none has-disabled:cursor-not-allowed has-disabled:opacity-50 has-data-[slot=combobox-chip-remove]:pr-0', className), ...props, children: [children, showRemove && (_jsx(ComboboxPrimitive.ChipRemove, { render: _jsx(Button, { variant: "ghost", size: "icon-xs" }), className: "-ml-1 opacity-50 hover:opacity-100", "data-slot": "combobox-chip-remove", children: _jsx(MdClose, { className: "pointer-events-none" }) }))] }));
62
+ }
63
+ function ComboboxChipsInput({ className, ...props }) {
64
+ return (_jsx(ComboboxPrimitive.Input, { "data-slot": "combobox-chip-input", className: cn('min-w-16 flex-1 outline-none', className), ...props }));
65
+ }
66
+ function useComboboxAnchor() {
67
+ return React.useRef(null);
68
+ }
69
+ export { Combobox, ComboboxChip, ComboboxChips, ComboboxChipsInput, ComboboxClear, ComboboxCollection, ComboboxContent, ComboboxEmpty, ComboboxGroup, ComboboxInput, ComboboxItem, ComboboxLabel, ComboboxList, ComboboxSeparator, ComboboxStatus, ComboboxTrigger, ComboboxValue, useComboboxAnchor, };
175
70
  //# sourceMappingURL=combobox.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"combobox.js","sourceRoot":"","sources":["../../../../src/components/ui/combobox/combobox.tsx"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"combobox.js","sourceRoot":"","sources":["../../../../src/components/ui/combobox/combobox.tsx"],"names":[],"mappings":"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"}
@@ -1,15 +1,20 @@
1
1
  import type React from 'react';
2
2
  import type { Control, FieldPath, FieldValues } from 'react-hook-form';
3
3
  import type { AddOptionRequiredFields, FormFieldProps, SelectOptionProps } from '#src/types/form.js';
4
- import type { ComboboxProps } from '../combobox/combobox.js';
5
- export interface ComboboxFieldProps<OptionType> extends Omit<ComboboxProps, 'value' | 'onChange' | 'label' | 'children'>, SelectOptionProps<OptionType>, FormFieldProps {
4
+ export interface ComboboxFieldProps<OptionType> extends SelectOptionProps<OptionType>, FormFieldProps {
6
5
  className?: string;
7
6
  noResultsText?: React.ReactNode;
7
+ placeholder?: string;
8
+ disabled?: boolean;
9
+ value?: string | null;
10
+ onChange?: (value: string | null) => void;
11
+ inputValue?: string;
12
+ onInputValueChange?: (value: string) => void;
8
13
  }
9
14
  /**
10
15
  * Field with label and error states that wraps a Combobox component.
11
16
  */
12
- declare function ComboboxField<OptionType>({ label, description, error, value, placeholder, options, renderItemLabel, onChange, getOptionLabel, getOptionValue, className, noResultsText, ...props }: ComboboxFieldProps<OptionType> & AddOptionRequiredFields<OptionType>): React.ReactElement;
17
+ declare function ComboboxField<OptionType>({ label, description, error, value, placeholder, options, renderItemLabel, onChange, inputValue, onInputValueChange, getOptionLabel, getOptionValue, className, noResultsText, disabled, }: ComboboxFieldProps<OptionType> & AddOptionRequiredFields<OptionType>): React.ReactElement;
13
18
  interface ComboboxFieldControllerPropsBase<OptionType, TFieldValues extends FieldValues = FieldValues, TFieldName extends FieldPath<TFieldValues> = FieldPath<TFieldValues>> extends Omit<ComboboxFieldProps<OptionType>, 'value'> {
14
19
  control: Control<TFieldValues>;
15
20
  name: TFieldName;
@@ -1 +1 @@
1
- {"version":3,"file":"combobox-field.d.ts","sourceRoot":"","sources":["../../../../src/components/ui/combobox-field/combobox-field.tsx"],"names":[],"mappings":"AAEA,OAAO,KAAK,KAAK,MAAM,OAAO,CAAC;AAC/B,OAAO,KAAK,EAAE,OAAO,EAAE,SAAS,EAAE,WAAW,EAAE,MAAM,iBAAiB,CAAC;AAEvE,OAAO,KAAK,EACV,uBAAuB,EACvB,cAAc,EACd,iBAAiB,EAClB,MAAM,oBAAoB,CAAC;AAK5B,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,yBAAyB,CAAC;AAiB7D,MAAM,WAAW,kBAAkB,CAAC,UAAU,CAC5C,SACE,IAAI,CAAC,aAAa,EAAE,OAAO,GAAG,UAAU,GAAG,OAAO,GAAG,UAAU,CAAC,EAChE,iBAAiB,CAAC,UAAU,CAAC,EAC7B,cAAc;IAChB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,aAAa,CAAC,EAAE,KAAK,CAAC,SAAS,CAAC;CACjC;AAED;;GAEG;AAEH,iBAAS,aAAa,CAAC,UAAU,EAAE,EACjC,KAAK,EACL,WAAW,EACX,KAAK,EACL,KAAK,EACL,WAAW,EACX,OAAO,EACP,eAAe,EACf,QAAQ,EACR,cAA0D,EAC1D,cAAiE,EACjE,SAAS,EACT,aAAa,EACb,GAAG,KAAK,EACT,EAAE,kBAAkB,CAAC,UAAU,CAAC,GAC/B,uBAAuB,CAAC,UAAU,CAAC,GAAG,KAAK,CAAC,YAAY,CA4CzD;AAED,UAAU,gCAAgC,CACxC,UAAU,EACV,YAAY,SAAS,WAAW,GAAG,WAAW,EAC9C,UAAU,SAAS,SAAS,CAAC,YAAY,CAAC,GAAG,SAAS,CAAC,YAAY,CAAC,CACpE,SAAQ,IAAI,CAAC,kBAAkB,CAAC,UAAU,CAAC,EAAE,OAAO,CAAC;IACrD,OAAO,EAAE,OAAO,CAAC,YAAY,CAAC,CAAC;IAC/B,IAAI,EAAE,UAAU,CAAC;CAClB;AAED,KAAK,4BAA4B,CAC/B,UAAU,EACV,YAAY,SAAS,WAAW,GAAG,WAAW,EAC9C,UAAU,SAAS,SAAS,CAAC,YAAY,CAAC,GAAG,SAAS,CAAC,YAAY,CAAC,IAClE,gCAAgC,CAAC,UAAU,EAAE,YAAY,EAAE,UAAU,CAAC,CAAC;AAE3E,iBAAS,uBAAuB,CAC9B,UAAU,EACV,YAAY,SAAS,WAAW,GAAG,WAAW,EAC9C,UAAU,SAAS,SAAS,CAAC,YAAY,CAAC,GAAG,SAAS,CAAC,YAAY,CAAC,EACpE,EACA,IAAI,EACJ,OAAO,EACP,GAAG,IAAI,EACR,EAAE,4BAA4B,CAAC,UAAU,EAAE,YAAY,EAAE,UAAU,CAAC,GACnE,uBAAuB,CAAC,UAAU,CAAC,GAAG,KAAK,CAAC,YAAY,CAiBzD;AAED,OAAO,EAAE,aAAa,EAAE,uBAAuB,EAAE,CAAC"}
1
+ {"version":3,"file":"combobox-field.d.ts","sourceRoot":"","sources":["../../../../src/components/ui/combobox-field/combobox-field.tsx"],"names":[],"mappings":"AAEA,OAAO,KAAK,KAAK,MAAM,OAAO,CAAC;AAC/B,OAAO,KAAK,EAAE,OAAO,EAAE,SAAS,EAAE,WAAW,EAAE,MAAM,iBAAiB,CAAC;AAIvE,OAAO,KAAK,EACV,uBAAuB,EACvB,cAAc,EACd,iBAAiB,EAClB,MAAM,oBAAoB,CAAC;AAoB5B,MAAM,WAAW,kBAAkB,CAAC,UAAU,CAC5C,SAAQ,iBAAiB,CAAC,UAAU,CAAC,EAAE,cAAc;IACrD,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,aAAa,CAAC,EAAE,KAAK,CAAC,SAAS,CAAC;IAChC,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,KAAK,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IACtB,QAAQ,CAAC,EAAE,CAAC,KAAK,EAAE,MAAM,GAAG,IAAI,KAAK,IAAI,CAAC;IAC1C,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,kBAAkB,CAAC,EAAE,CAAC,KAAK,EAAE,MAAM,KAAK,IAAI,CAAC;CAC9C;AAED;;GAEG;AACH,iBAAS,aAAa,CAAC,UAAU,EAAE,EACjC,KAAK,EACL,WAAW,EACX,KAAK,EACL,KAAK,EACL,WAAW,EACX,OAAO,EACP,eAAe,EACf,QAAQ,EACR,UAAU,EACV,kBAAkB,EAClB,cAA0D,EAC1D,cAAiE,EACjE,SAAS,EACT,aAAa,EACb,QAAQ,GACT,EAAE,kBAAkB,CAAC,UAAU,CAAC,GAC/B,uBAAuB,CAAC,UAAU,CAAC,GAAG,KAAK,CAAC,YAAY,CA6CzD;AAED,UAAU,gCAAgC,CACxC,UAAU,EACV,YAAY,SAAS,WAAW,GAAG,WAAW,EAC9C,UAAU,SAAS,SAAS,CAAC,YAAY,CAAC,GAAG,SAAS,CAAC,YAAY,CAAC,CACpE,SAAQ,IAAI,CAAC,kBAAkB,CAAC,UAAU,CAAC,EAAE,OAAO,CAAC;IACrD,OAAO,EAAE,OAAO,CAAC,YAAY,CAAC,CAAC;IAC/B,IAAI,EAAE,UAAU,CAAC;CAClB;AAED,KAAK,4BAA4B,CAC/B,UAAU,EACV,YAAY,SAAS,WAAW,GAAG,WAAW,EAC9C,UAAU,SAAS,SAAS,CAAC,YAAY,CAAC,GAAG,SAAS,CAAC,YAAY,CAAC,IAClE,gCAAgC,CAAC,UAAU,EAAE,YAAY,EAAE,UAAU,CAAC,CAAC;AAE3E,iBAAS,uBAAuB,CAC9B,UAAU,EACV,YAAY,SAAS,WAAW,GAAG,WAAW,EAC9C,UAAU,SAAS,SAAS,CAAC,YAAY,CAAC,GAAG,SAAS,CAAC,YAAY,CAAC,EACpE,EACA,IAAI,EACJ,OAAO,EACP,GAAG,IAAI,EACR,EAAE,4BAA4B,CAAC,UAAU,EAAE,YAAY,EAAE,UAAU,CAAC,GACnE,uBAAuB,CAAC,UAAU,CAAC,GAAG,KAAK,CAAC,YAAY,CAiBzD;AAED,OAAO,EAAE,aAAa,EAAE,uBAAuB,EAAE,CAAC"}
@@ -1,34 +1,26 @@
1
1
  'use client';
2
2
  import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
3
+ import { useId } from 'react';
3
4
  import { useComponentStrings } from '#src/contexts/component-strings.js';
4
5
  import { useControllerMerged } from '#src/hooks/use-controller-merged.js';
5
- import { Combobox, ComboboxContent, ComboboxEmpty, ComboboxInput, ComboboxItem, } from '../combobox/combobox.js';
6
- import { FormControl, FormDescription, FormItem, FormLabel, FormMessage, } from '../form-item/form-item.js';
6
+ import { Combobox, ComboboxContent, ComboboxEmpty, ComboboxInput, ComboboxItem, ComboboxList, } from '../combobox/combobox.js';
7
+ import { Field, FieldDescription, FieldError, FieldLabel, } from '../field/field.js';
7
8
  /**
8
9
  * Field with label and error states that wraps a Combobox component.
9
10
  */
10
- function ComboboxField({ label, description, error, value, placeholder, options, renderItemLabel, onChange, getOptionLabel = (val) => val.label, getOptionValue = (val) => val.value, className, noResultsText, ...props }) {
11
- const selectedOption = options.find((o) => getOptionValue(o) === value);
12
- const selectedComboboxOption = (() => {
13
- if (value === undefined)
14
- return;
15
- if (!selectedOption)
16
- return null;
17
- return {
18
- label: getOptionLabel(selectedOption),
19
- value: getOptionValue(selectedOption),
20
- };
21
- })();
11
+ function ComboboxField({ label, description, error, value, placeholder, options, renderItemLabel, onChange, inputValue, onInputValueChange, getOptionLabel = (val) => val.label, getOptionValue = (val) => val.value, className, noResultsText, disabled, }) {
22
12
  const { comboboxNoResults } = useComponentStrings();
23
- return (_jsxs(FormItem, { error: error, className: className, children: [_jsx(FormLabel, { children: label }), _jsxs(Combobox, { value: selectedComboboxOption, onChange: (value) => {
24
- onChange?.(value.value);
25
- }, ...props, children: [_jsx(FormControl, { children: _jsx(ComboboxInput, { placeholder: placeholder }) }), _jsxs(ComboboxContent, { children: [options.map((option) => {
26
- const val = getOptionValue(option);
27
- const label = getOptionLabel(option);
28
- return (_jsx(ComboboxItem, { value: val, label: label, children: renderItemLabel
29
- ? renderItemLabel(option, { selected: val === value })
30
- : label }, val));
31
- }), _jsx(ComboboxEmpty, { children: noResultsText ?? comboboxNoResults })] })] }), _jsx(FormDescription, { children: description }), _jsx(FormMessage, {})] }));
13
+ const id = useId();
14
+ const selectedOption = options.find((o) => getOptionValue(o) === value) ?? null;
15
+ return (_jsxs(Field, { "data-invalid": !!error, className: className, children: [_jsx(FieldLabel, { htmlFor: id, children: label }), _jsxs(Combobox, { value: selectedOption, onValueChange: (option) => {
16
+ onChange?.(option ? getOptionValue(option) : null);
17
+ }, inputValue: inputValue, onInputValueChange: onInputValueChange, disabled: disabled, items: options, itemToStringLabel: getOptionLabel, itemToStringValue: (option) => getOptionValue(option) ?? '', autoHighlight: true, children: [_jsx(ComboboxInput, { id: id, placeholder: placeholder }), _jsxs(ComboboxContent, { children: [_jsx(ComboboxEmpty, { children: noResultsText ?? comboboxNoResults }), _jsx(ComboboxList, { children: (option) => {
18
+ const val = getOptionValue(option);
19
+ const optionLabel = getOptionLabel(option);
20
+ return (_jsx(ComboboxItem, { value: option, children: renderItemLabel
21
+ ? renderItemLabel(option, { selected: val === value })
22
+ : optionLabel }, val));
23
+ } })] })] }), _jsx(FieldDescription, { children: description }), _jsx(FieldError, { children: error })] }));
32
24
  }
33
25
  function ComboboxFieldController({ name, control, ...rest }) {
34
26
  const { field, fieldState: { error }, } = useControllerMerged({ name, control }, rest);