@mirohq/design-system-combobox 0.1.0-combobox.1 → 0.1.0-combobox.2

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/main.js CHANGED
@@ -4,21 +4,46 @@ Object.defineProperty(exports, '__esModule', { value: true });
4
4
 
5
5
  var jsxRuntime = require('react/jsx-runtime');
6
6
  var React = require('react');
7
+ var Ariakit = require('@ariakit/react');
7
8
  var designSystemBaseForm = require('@mirohq/design-system-base-form');
8
- var interactions = require('@react-aria/interactions');
9
+ var RadixPopover = require('@radix-ui/react-popover');
9
10
  var designSystemUtils = require('@mirohq/design-system-utils');
10
- var designSystemInput = require('@mirohq/design-system-input');
11
11
  var designSystemIcons = require('@mirohq/design-system-icons');
12
+ var designSystemInput = require('@mirohq/design-system-input');
12
13
  var designSystemStitches = require('@mirohq/design-system-stitches');
14
+ var designSystemUseAriaDisabled = require('@mirohq/design-system-use-aria-disabled');
15
+ var designSystemStyles = require('@mirohq/design-system-styles');
13
16
  var designSystemPrimitive = require('@mirohq/design-system-primitive');
14
- var reactPopover = require('@radix-ui/react-popover');
15
- var react = require('@ariakit/react');
16
17
 
17
18
  function _interopDefaultLegacy (e) { return e && typeof e === 'object' && 'default' in e ? e : { 'default': e }; }
18
19
 
20
+ function _interopNamespace(e) {
21
+ if (e && e.__esModule) return e;
22
+ var n = Object.create(null);
23
+ if (e) {
24
+ Object.keys(e).forEach(function (k) {
25
+ if (k !== 'default') {
26
+ var d = Object.getOwnPropertyDescriptor(e, k);
27
+ Object.defineProperty(n, k, d.get ? d : {
28
+ enumerable: true,
29
+ get: function () { return e[k]; }
30
+ });
31
+ }
32
+ });
33
+ }
34
+ n["default"] = e;
35
+ return Object.freeze(n);
36
+ }
37
+
19
38
  var React__default = /*#__PURE__*/_interopDefaultLegacy(React);
39
+ var Ariakit__namespace = /*#__PURE__*/_interopNamespace(Ariakit);
40
+ var RadixPopover__namespace = /*#__PURE__*/_interopNamespace(RadixPopover);
20
41
 
21
- const StyledTrigger = designSystemStitches.styled(designSystemInput.Input, {});
42
+ const StyledActionButton = designSystemStitches.styled(designSystemInput.Input.ActionButton, {
43
+ position: "absolute",
44
+ right: "$100",
45
+ top: "6px"
46
+ });
22
47
 
23
48
  const ComboboxContext = React.createContext({});
24
49
  const ComboboxProvider = ({
@@ -29,8 +54,10 @@ const ComboboxProvider = ({
29
54
  defaultValue: defaultValueProp,
30
55
  ...restProps
31
56
  }) => {
57
+ const triggerRef = React.useRef(null);
58
+ const contentRef = React.useRef(null);
32
59
  const [openState, setOpenState] = React.useState(defaultOpen);
33
- const [value, setValue] = React.useState(valueProp);
60
+ const [value, setValue] = React.useState(valueProp != null ? valueProp : []);
34
61
  const [defaultValue, setDefaultValue] = React.useState(defaultValueProp);
35
62
  const [searchValue, setSearchValue] = React.useState();
36
63
  const { valid: formFieldValid } = designSystemBaseForm.useFormFieldContext();
@@ -47,7 +74,9 @@ const ComboboxProvider = ({
47
74
  setDefaultValue,
48
75
  defaultValue,
49
76
  searchValue,
50
- setSearchValue
77
+ setSearchValue,
78
+ triggerRef,
79
+ contentRef
51
80
  },
52
81
  children
53
82
  }
@@ -63,16 +92,14 @@ const Trigger = React__default["default"].forwardRef(
63
92
  "aria-describedby": ariaDescribedBy,
64
93
  "aria-invalid": ariaInvalid,
65
94
  placeholder,
66
- onHoverChange,
67
- onHoverStart,
68
- onHoverEnd,
69
95
  ...restProps
70
96
  }, forwardRef) => {
71
97
  const {
72
98
  "aria-disabled": ariaDisabled,
73
99
  valid: comboboxValid,
74
100
  disabled,
75
- value
101
+ value,
102
+ triggerRef
76
103
  } = useComboboxContext();
77
104
  const {
78
105
  formElementId,
@@ -81,16 +108,8 @@ const Trigger = React__default["default"].forwardRef(
81
108
  valid: formFieldValid
82
109
  } = designSystemBaseForm.useFormFieldContext();
83
110
  const valid = formFieldValid != null ? formFieldValid : comboboxValid;
84
- const { hoverProps } = interactions.useHover({
85
- onHoverStart,
86
- onHoverEnd,
87
- onHoverChange: (isHovering) => {
88
- onHoverChange == null ? void 0 : onHoverChange(isHovering);
89
- }
90
- });
91
- const commonProps = {
111
+ const inputProps = {
92
112
  ...restProps,
93
- ref: forwardRef,
94
113
  "aria-disabled": ariaDisabled,
95
114
  "aria-invalid": ariaInvalid != null ? ariaInvalid : formFieldAriaInvalid,
96
115
  "aria-describedby": designSystemUtils.stringAttrValue(
@@ -101,35 +120,61 @@ const Trigger = React__default["default"].forwardRef(
101
120
  disabled,
102
121
  invalid: designSystemUtils.booleanishAttrValue(valid),
103
122
  id: id != null ? id : formElementId,
104
- placeholder: value === void 0 ? placeholder : void 0
123
+ placeholder: (value == null ? void 0 : value.length) === 0 ? placeholder : void 0
105
124
  };
106
125
  const variants = {
107
126
  size
108
127
  };
109
- return /* @__PURE__ */ jsxRuntime.jsxs(StyledTrigger, { ...hoverProps, ...commonProps, ...variants, children: [
110
- children,
111
- /* @__PURE__ */ jsxRuntime.jsx(designSystemInput.Input.ActionButton, { label: "custom label", children: /* @__PURE__ */ jsxRuntime.jsx(designSystemIcons.IconChevronDown, { size: "small", weight: "thin" }) })
112
- ] });
128
+ return /* @__PURE__ */ jsxRuntime.jsx(RadixPopover__namespace.Anchor, { ref: designSystemUtils.mergeRefs([triggerRef, forwardRef]), children: /* @__PURE__ */ jsxRuntime.jsx(
129
+ Ariakit.Combobox,
130
+ {
131
+ render: /* @__PURE__ */ jsxRuntime.jsxs(designSystemInput.Input, { ...inputProps, ...variants, children: [
132
+ children,
133
+ /* @__PURE__ */ jsxRuntime.jsx(StyledActionButton, { label: "custom label", children: /* @__PURE__ */ jsxRuntime.jsx(designSystemIcons.IconChevronDown, { size: "small", weight: "thin" }) })
134
+ ] })
135
+ }
136
+ ) });
113
137
  }
114
138
  );
115
139
 
116
- const StyledContent = designSystemStitches.styled(designSystemPrimitive.Primitive.div, {
140
+ const StyledContent = designSystemStitches.styled(RadixPopover__namespace.Content, {
117
141
  backgroundColor: "$background-neutrals-container",
118
142
  borderRadius: "$50",
119
143
  boxShadow: "$50",
120
- minWidth: "var(--radix-select-trigger-width)",
121
- padding: "$50",
122
- zIndex: "$select"
144
+ fontSize: "$175",
145
+ fontWeight: "normal",
146
+ lineHeight: "1.5",
147
+ minWidth: "var(--radix-popover-trigger-width)",
148
+ zIndex: "$select",
149
+ overflowY: "auto",
150
+ marginTop: "$200"
123
151
  });
124
152
 
125
153
  const Content = React__default["default"].forwardRef(({ children, ...restProps }, forwardRef) => {
126
- const { open, openState } = useComboboxContext();
127
- if (!designSystemUtils.booleanify(open != null ? open : openState))
128
- return null;
129
- return /* @__PURE__ */ jsxRuntime.jsx(StyledContent, { ...restProps, ref: forwardRef, children });
154
+ const { triggerRef, contentRef } = useComboboxContext();
155
+ return /* @__PURE__ */ jsxRuntime.jsx(
156
+ StyledContent,
157
+ {
158
+ ...restProps,
159
+ ref: designSystemUtils.mergeRefs([forwardRef, contentRef]),
160
+ onOpenAutoFocus: (event) => event.preventDefault(),
161
+ onInteractOutside: (event) => {
162
+ var _a, _b;
163
+ const target = event.target;
164
+ const isTrigger = target === triggerRef.current;
165
+ const isContent = (_b = target != null && ((_a = contentRef.current) == null ? void 0 : _a.contains(target))) != null ? _b : false;
166
+ if (isTrigger || isContent) {
167
+ event.preventDefault();
168
+ }
169
+ },
170
+ children
171
+ }
172
+ );
130
173
  });
131
174
 
132
- const StyledItem = designSystemStitches.styled(designSystemPrimitive.Primitive.div, {
175
+ const StyledItem = designSystemStitches.styled(Ariakit.ComboboxItem, {
176
+ display: "flex",
177
+ alignItems: "center",
133
178
  borderRadius: "$50",
134
179
  boxSizing: "border-box",
135
180
  color: "$text-neutrals",
@@ -140,30 +185,49 @@ const StyledItem = designSystemStitches.styled(designSystemPrimitive.Primitive.d
140
185
  userSelect: "none",
141
186
  padding: "6px 0",
142
187
  paddingInline: "$150 $100",
188
+ ...designSystemStyles.focus.css({
189
+ boxShadow: "$focus-small",
190
+ outline: "1px solid transparent"
191
+ }),
143
192
  '&:hover:not([aria-disabled="true"])': {
144
193
  background: "$background-primary-subtle-hover",
145
194
  color: "$text-primary-hover"
195
+ },
196
+ "&:disabled, &[aria-disabled=true], &[data-disabled]": {
197
+ cursor: "default",
198
+ color: "$text-neutrals-disabled"
146
199
  }
147
200
  });
148
201
 
149
202
  const Item = React__default["default"].forwardRef(
150
- ({ value, textValue, children, ...restProps }, forwardRef) => {
151
- const { value: comboboxValue } = useComboboxContext();
152
- const isSelected = comboboxValue === value;
153
- return /* @__PURE__ */ jsxRuntime.jsxs(StyledItem, { ref: forwardRef, ...restProps, children: [
154
- isSelected && /* @__PURE__ */ jsxRuntime.jsx(designSystemIcons.IconCheckMark, { size: "small", weight: "thin" }),
155
- children
156
- ] });
203
+ ({ disabled = false, value, textValue, children, ...restProps }, forwardRef) => {
204
+ const { "aria-disabled": ariaDisabled, ...restAriaDisabledProps } = designSystemUseAriaDisabled.useAriaDisabled(restProps, { allowArrows: true });
205
+ return /* @__PURE__ */ jsxRuntime.jsxs(
206
+ StyledItem,
207
+ {
208
+ ...restProps,
209
+ ...restAriaDisabledProps,
210
+ focusable: true,
211
+ accessibleWhenDisabled: ariaDisabled === true,
212
+ disabled: ariaDisabled === true || disabled,
213
+ ref: forwardRef,
214
+ value,
215
+ children: [
216
+ /* @__PURE__ */ jsxRuntime.jsx(Ariakit__namespace.ComboboxItemCheck, {}),
217
+ children
218
+ ]
219
+ }
220
+ );
157
221
  }
158
222
  );
159
223
 
160
- const Portal = (props) => /* @__PURE__ */ jsxRuntime.jsx(reactPopover.Portal, { ...props });
224
+ const Portal = (props) => /* @__PURE__ */ jsxRuntime.jsx(RadixPopover.Portal, { ...props });
161
225
 
162
- const StyledGroup = designSystemStitches.styled(react.Group, {});
226
+ const StyledGroup = designSystemStitches.styled(Ariakit.Group, {});
163
227
 
164
228
  const Group = React__default["default"].forwardRef((props, forwardRef) => /* @__PURE__ */ jsxRuntime.jsx(StyledGroup, { ...props, ref: forwardRef }));
165
229
 
166
- const StyledGroupLabel = designSystemStitches.styled(react.GroupLabel, {});
230
+ const StyledGroupLabel = designSystemStitches.styled(Ariakit.GroupLabel, {});
167
231
 
168
232
  const GroupLabel = React__default["default"].forwardRef((props, forwardRef) => /* @__PURE__ */ jsxRuntime.jsx(StyledGroupLabel, { ...props, ref: forwardRef }));
169
233
 
@@ -172,7 +236,7 @@ const StyledValue = designSystemStitches.styled(designSystemPrimitive.Primitive.
172
236
  const Value = React__default["default"].forwardRef(
173
237
  (props, forwardRef) => {
174
238
  const { value } = useComboboxContext();
175
- const isEmpty = value === void 0;
239
+ const isEmpty = (value == null ? void 0 : value.length) === 0;
176
240
  if (isEmpty) {
177
241
  return null;
178
242
  }
@@ -182,41 +246,51 @@ const Value = React__default["default"].forwardRef(
182
246
 
183
247
  const StyledComboboxContent = designSystemStitches.styled(designSystemPrimitive.Primitive.div, {});
184
248
 
185
- const Root = React__default["default"].forwardRef(
186
- ({
187
- onOpen,
188
- onClose,
189
- onValueChange,
190
- value: valueProp,
191
- children,
192
- ...restProps
193
- }, forwardRef) => {
194
- const {
195
- required,
196
- readOnly,
197
- "aria-disabled": ariaDisabled,
198
- disabled,
199
- direction
200
- } = useComboboxContext();
201
- const { setRequired, setDisabled, setAriaDisabled, setReadOnly } = designSystemBaseForm.useFormFieldContext();
202
- React.useEffect(() => {
203
- setRequired == null ? void 0 : setRequired(required);
204
- setDisabled == null ? void 0 : setDisabled(disabled);
205
- setAriaDisabled == null ? void 0 : setAriaDisabled(ariaDisabled);
206
- setReadOnly == null ? void 0 : setReadOnly(readOnly);
207
- }, [
208
- readOnly,
209
- disabled,
210
- ariaDisabled,
211
- required,
212
- setRequired,
213
- setDisabled,
214
- setAriaDisabled,
215
- setReadOnly
216
- ]);
217
- return /* @__PURE__ */ jsxRuntime.jsx(StyledComboboxContent, { ...restProps, ref: forwardRef, dir: direction, children });
218
- }
219
- );
249
+ const Root = React__default["default"].forwardRef(({ value: valueProp, onValueChange, children, ...restProps }, forwardRef) => {
250
+ const {
251
+ openState,
252
+ setOpenState,
253
+ defaultValue,
254
+ value,
255
+ setValue,
256
+ required,
257
+ readOnly,
258
+ "aria-disabled": ariaDisabled,
259
+ disabled,
260
+ direction
261
+ } = useComboboxContext();
262
+ const { setRequired, setDisabled, setAriaDisabled, setReadOnly } = designSystemBaseForm.useFormFieldContext();
263
+ React.useEffect(() => {
264
+ setRequired == null ? void 0 : setRequired(required);
265
+ setDisabled == null ? void 0 : setDisabled(disabled);
266
+ setAriaDisabled == null ? void 0 : setAriaDisabled(ariaDisabled);
267
+ setReadOnly == null ? void 0 : setReadOnly(readOnly);
268
+ }, [
269
+ readOnly,
270
+ disabled,
271
+ ariaDisabled,
272
+ required,
273
+ setRequired,
274
+ setDisabled,
275
+ setAriaDisabled,
276
+ setReadOnly
277
+ ]);
278
+ const onSetSelectedValue = (newValue) => {
279
+ onValueChange == null ? void 0 : onValueChange(newValue);
280
+ setValue(newValue);
281
+ };
282
+ return /* @__PURE__ */ jsxRuntime.jsx(RadixPopover__namespace.Root, { open: openState, onOpenChange: setOpenState, children: /* @__PURE__ */ jsxRuntime.jsx(
283
+ Ariakit__namespace.ComboboxProvider,
284
+ {
285
+ open: openState,
286
+ setOpen: setOpenState,
287
+ defaultSelectedValue: defaultValue,
288
+ selectedValue: value,
289
+ setSelectedValue: onSetSelectedValue,
290
+ children: /* @__PURE__ */ jsxRuntime.jsx(StyledComboboxContent, { ...restProps, ref: forwardRef, dir: direction, children })
291
+ }
292
+ ) });
293
+ });
220
294
  const Combobox = React__default["default"].forwardRef(
221
295
  ({
222
296
  "aria-disabled": ariaDisabled,
@@ -228,6 +302,8 @@ const Combobox = React__default["default"].forwardRef(
228
302
  required,
229
303
  value,
230
304
  defaultValue,
305
+ onOpen,
306
+ onValueChange,
231
307
  direction = "ltr",
232
308
  ...restProps
233
309
  }, forwardRef) => /* @__PURE__ */ jsxRuntime.jsx(
package/dist/main.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"main.js","sources":["../src/partials/trigger.styled.tsx","../src/hooks/use-combobox-context.tsx","../src/partials/trigger.tsx","../src/partials/content.styled.tsx","../src/partials/content.tsx","../src/partials/item.styled.tsx","../src/partials/item.tsx","../src/partials/portal.tsx","../src/partials/group.styled.tsx","../src/partials/group.tsx","../src/partials/group-label.styled.tsx","../src/partials/group-label.tsx","../src/partials/value.styled.tsx","../src/partials/value.tsx","../src/combobox.styled.tsx","../src/combobox.tsx"],"sourcesContent":["import type { StrictComponentProps } from '@mirohq/design-system-stitches'\nimport { styled } from '@mirohq/design-system-stitches'\nimport { Input } from '@mirohq/design-system-input'\n\nexport const StyledTrigger = styled(Input, {})\n\nexport type StyledTriggerProps = StrictComponentProps<typeof StyledTrigger>\n","import { createContext, useContext, useState } from 'react'\nimport type { PropsWithChildren } from 'react'\nimport { useFormFieldContext } from '@mirohq/design-system-base-form'\nimport type { FormElementProps } from '@mirohq/design-system-base-form'\n\nimport type { Direction } from '../types'\n\ninterface ComboboxProps extends FormElementProps {\n open?: boolean\n defaultOpen?: boolean\n value?: string\n defaultValue?: string\n searchValue?: string\n direction?: Direction\n}\n\ninterface ComboboxContextProps extends ComboboxProps {\n setOpenState: React.Dispatch<React.SetStateAction<boolean | undefined>>\n openState?: boolean | undefined\n setValue: React.Dispatch<React.SetStateAction<string | undefined>>\n setDefaultValue: React.Dispatch<React.SetStateAction<string | undefined>>\n setSearchValue: React.Dispatch<React.SetStateAction<string | undefined>>\n}\n\nexport type ComboboxProviderProps = ComboboxProps\n\nconst ComboboxContext = createContext<ComboboxContextProps>({} as any)\n\nexport const ComboboxProvider = ({\n children,\n defaultOpen,\n valid,\n value: valueProp,\n defaultValue: defaultValueProp,\n ...restProps\n}: PropsWithChildren<ComboboxProviderProps>): JSX.Element => {\n const [openState, setOpenState] = useState(defaultOpen)\n const [value, setValue] = useState(valueProp)\n const [defaultValue, setDefaultValue] = useState(defaultValueProp)\n const [searchValue, setSearchValue] = useState<string | undefined>()\n\n const { valid: formFieldValid } = useFormFieldContext()\n\n return (\n <ComboboxContext.Provider\n value={{\n ...restProps,\n valid: valid ?? formFieldValid,\n openState,\n setOpenState,\n value,\n setValue,\n setDefaultValue,\n defaultValue,\n searchValue,\n setSearchValue,\n }}\n >\n {children}\n </ComboboxContext.Provider>\n )\n}\n\nexport const useComboboxContext = (): ComboboxContextProps =>\n useContext(ComboboxContext)\n","import React from 'react'\nimport type { ElementRef } from 'react'\nimport { useHover } from '@react-aria/interactions'\nimport type { HoverEvents } from '@react-types/shared'\nimport {\n booleanishAttrValue,\n stringAttrValue,\n} from '@mirohq/design-system-utils'\nimport { useFormFieldContext } from '@mirohq/design-system-base-form'\nimport { Input } from '@mirohq/design-system-input'\nimport { IconChevronDown } from '@mirohq/design-system-icons'\n\nimport { StyledTrigger } from './trigger.styled'\nimport type { StyledTriggerProps } from './trigger.styled'\nimport { useComboboxContext } from '../hooks/use-combobox-context'\n\nexport interface TriggerProps extends StyledTriggerProps, HoverEvents {\n /**\n * The content.\n */\n children?: React.ReactNode\n\n /**\n * The size of the trigger.\n * @default 'large'\n */\n size?: StyledTriggerProps['size']\n\n /**\n * The content that will be rendered inside the Combobox.Trigger when no value or\n * defaultValue is set.\n */\n placeholder?: string\n}\n\nexport const Trigger = React.forwardRef<\n ElementRef<typeof StyledTrigger>,\n TriggerProps\n>(\n (\n {\n id,\n children,\n size = 'large',\n 'aria-describedby': ariaDescribedBy,\n 'aria-invalid': ariaInvalid,\n placeholder,\n onHoverChange,\n onHoverStart,\n onHoverEnd,\n ...restProps\n },\n forwardRef\n ) => {\n const {\n 'aria-disabled': ariaDisabled,\n valid: comboboxValid,\n disabled,\n value,\n } = useComboboxContext()\n\n const {\n formElementId,\n ariaDescribedBy: formFieldContextDescribedBy,\n ariaInvalid: formFieldAriaInvalid,\n valid: formFieldValid,\n } = useFormFieldContext()\n\n const valid = formFieldValid ?? comboboxValid\n\n const { hoverProps } = useHover({\n onHoverStart,\n onHoverEnd,\n onHoverChange: isHovering => {\n onHoverChange?.(isHovering)\n },\n })\n\n const commonProps = {\n ...restProps,\n ref: forwardRef,\n 'aria-disabled': ariaDisabled,\n 'aria-invalid': ariaInvalid ?? formFieldAriaInvalid,\n 'aria-describedby': stringAttrValue(\n ariaDescribedBy,\n formFieldContextDescribedBy\n ),\n valid,\n disabled,\n invalid: booleanishAttrValue(valid),\n id: id ?? formElementId,\n placeholder: value === undefined ? placeholder : undefined,\n }\n\n const variants = {\n size,\n }\n\n return (\n <StyledTrigger {...hoverProps} {...commonProps} {...variants}>\n {children}\n <Input.ActionButton label='custom label'>\n <IconChevronDown size='small' weight='thin' />\n </Input.ActionButton>\n </StyledTrigger>\n )\n }\n)\n","import { styled } from '@mirohq/design-system-stitches'\nimport type { StrictComponentProps } from '@mirohq/design-system-stitches'\nimport { Primitive } from '@mirohq/design-system-primitive'\n\nexport const StyledContent = styled(Primitive.div, {\n backgroundColor: '$background-neutrals-container',\n borderRadius: '$50',\n boxShadow: '$50',\n minWidth: 'var(--radix-select-trigger-width)',\n padding: '$50',\n zIndex: '$select',\n})\n\nexport type StyledContentProps = StrictComponentProps<typeof StyledContent>\n","import React from 'react'\nimport type { ElementRef, ReactNode } from 'react'\nimport { booleanify } from '@mirohq/design-system-utils'\n\nimport { StyledContent } from './content.styled'\nimport type { StyledContentProps } from './content.styled'\nimport { useComboboxContext } from '../hooks/use-combobox-context'\n\nexport interface ContentProps extends StyledContentProps {\n /**\n * Combobox's content.\n */\n children?: ReactNode\n}\n\nexport const Content = React.forwardRef<\n ElementRef<typeof StyledContent>,\n ContentProps\n>(({ children, ...restProps }, forwardRef) => {\n const { open, openState } = useComboboxContext()\n\n if (!booleanify(open ?? openState)) return null\n\n return (\n <StyledContent {...restProps} ref={forwardRef}>\n {children}\n </StyledContent>\n )\n})\n","import { styled } from '@mirohq/design-system-stitches'\nimport type { StrictComponentProps } from '@mirohq/design-system-stitches'\nimport { Primitive } from '@mirohq/design-system-primitive'\n\nexport const StyledItem = styled(Primitive.div, {\n borderRadius: '$50',\n boxSizing: 'border-box',\n color: '$text-neutrals',\n cursor: 'pointer',\n fontSize: '$175',\n lineHeight: 1.5,\n position: 'relative',\n userSelect: 'none',\n padding: '6px 0',\n paddingInline: '$150 $100',\n\n '&:hover:not([aria-disabled=\"true\"])': {\n background: '$background-primary-subtle-hover',\n color: '$text-primary-hover',\n },\n})\n\nexport type StyledItemProps = StrictComponentProps<typeof StyledItem>\n","import React from 'react'\nimport type { ElementRef } from 'react'\nimport { IconCheckMark } from '@mirohq/design-system-icons'\n\nimport { StyledItem } from './item.styled'\nimport type { StyledItemProps } from './item.styled'\nimport { useComboboxContext } from '../hooks/use-combobox-context'\n\nexport interface ItemProps extends StyledItemProps {\n /**\n * The value given as data when submitted with a name.\n */\n value: string\n\n /**\n * When true, prevents the user from interacting with the item.\n * @default false\n */\n disabled?: boolean\n\n /**\n * Optional text used for typeahead purposes. By default the typeahead\n * behavior will use the Combobox's item text. Use this when the content is\n * complex, or you have non-textual content inside.\n */\n textValue?: string\n}\n\nexport const Item = React.forwardRef<ElementRef<typeof StyledItem>, ItemProps>(\n ({ value, textValue, children, ...restProps }, forwardRef) => {\n const { value: comboboxValue } = useComboboxContext()\n const isSelected = comboboxValue === value\n\n return (\n <StyledItem ref={forwardRef} {...restProps}>\n {isSelected && <IconCheckMark size='small' weight='thin' />}\n {children}\n </StyledItem>\n )\n }\n)\n","import React from 'react'\nimport type { PopoverPortalProps } from '@radix-ui/react-popover'\nimport { Portal as RadixPortal } from '@radix-ui/react-popover'\n\nexport interface PortalProps extends PopoverPortalProps {\n /**\n * Specify a container element to portal the content into.\n */\n container?: HTMLElement | null\n}\n\nexport const Portal: React.FC<PortalProps> = props => <RadixPortal {...props} />\n","import { Group } from '@ariakit/react'\nimport { styled } from '@mirohq/design-system-stitches'\nimport type { StrictComponentProps } from '@mirohq/design-system-stitches'\n\nexport const StyledGroup = styled(Group, {})\n\nexport type StyledGroupProps = StrictComponentProps<typeof StyledGroup>\n","import React from 'react'\nimport type { ElementRef } from 'react'\n\nimport { StyledGroup } from './group.styled'\nimport type { StyledGroupProps } from './group.styled'\n\nexport interface GroupProps extends StyledGroupProps {}\n\nexport const Group = React.forwardRef<\n ElementRef<typeof StyledGroup>,\n GroupProps\n>((props, forwardRef) => <StyledGroup {...props} ref={forwardRef} />)\n","import { GroupLabel } from '@ariakit/react'\nimport { styled } from '@mirohq/design-system-stitches'\nimport type { StrictComponentProps } from '@mirohq/design-system-stitches'\n\nexport const StyledGroupLabel = styled(GroupLabel, {})\n\nexport type StyledGroupLabelProps = StrictComponentProps<\n typeof StyledGroupLabel\n>\n","import React from 'react'\nimport type { ElementRef } from 'react'\n\nimport { StyledGroupLabel } from './group-label.styled'\nimport type { StyledGroupLabelProps } from './group-label.styled'\n\nexport interface GroupLabelProps extends StyledGroupLabelProps {}\n\nexport const GroupLabel = React.forwardRef<\n ElementRef<typeof StyledGroupLabel>,\n GroupLabelProps\n>((props, forwardRef) => <StyledGroupLabel {...props} ref={forwardRef} />)\n","import { styled } from '@mirohq/design-system-stitches'\nimport { Primitive } from '@mirohq/design-system-primitive'\n\nexport const StyledValue = styled(Primitive.span, {})\n","import React from 'react'\nimport type { ElementRef } from 'react'\n\nimport { useComboboxContext } from '../hooks/use-combobox-context'\nimport { StyledValue } from './value.styled'\n\nexport const Value = React.forwardRef<ElementRef<typeof StyledValue>>(\n (props, forwardRef) => {\n const { value } = useComboboxContext()\n const isEmpty = value === undefined\n\n if (isEmpty) {\n return null\n }\n\n return (\n <StyledValue ref={forwardRef} {...props}>\n {value}\n </StyledValue>\n )\n }\n)\n","import type { ComponentPropsWithRef } from 'react'\nimport { Primitive } from '@mirohq/design-system-primitive'\nimport { styled } from '@mirohq/design-system-stitches'\n\nexport const StyledComboboxContent = styled(Primitive.div, {})\n\nexport type StyledComboboxProps = ComponentPropsWithRef<\n typeof StyledComboboxContent\n>\n","import React, { useEffect } from 'react'\nimport type { ElementRef, ForwardRefExoticComponent } from 'react'\nimport { useFormFieldContext } from '@mirohq/design-system-base-form'\n\nimport { Trigger } from './partials/trigger'\nimport { Content } from './partials/content'\nimport { Item } from './partials/item'\nimport { Portal } from './partials/portal'\nimport { Group } from './partials/group'\nimport { GroupLabel } from './partials/group-label'\nimport { Value } from './partials/value'\nimport { StyledComboboxContent } from './combobox.styled'\nimport {\n ComboboxProvider,\n useComboboxContext,\n} from './hooks/use-combobox-context'\nimport type { ComboboxProviderProps } from './hooks/use-combobox-context'\nimport type { Direction } from './types'\n\nexport interface ComboboxProps extends ComboboxProviderProps {\n /**\n * The value of the combobox when initially rendered. Use when you do not need\n * to control the state of the combobox.\n */\n defaultValue?: string\n\n /**\n * The controlled value of the combobox. Should be used in conjunction with\n * onValueChange.\n */\n value?: string\n\n /**\n * Event handler called when the value changes.\n */\n onValueChange?: (value: string) => void\n\n /**\n * The open state of the combobox when it is initially rendered. Use when you do\n * not need to control its open state.\n * @default false\n */\n defaultOpen?: boolean\n\n /**\n * The controlled open state of the combobox. Must be used in conjunction with\n * onOpen and onClose.\n */\n open?: boolean\n\n /**\n * Event handler called when the combobox opens.\n */\n onOpen?: () => void\n\n /**\n * Event handler called when the combobox closes.\n */\n onClose?: () => void\n\n /**\n * The reading direction of the combobox when applicable. If omitted, inherits\n * globally from DirectionProvider or assumes LTR (left-to-right) reading\n * mode.\n * @default 'ltr'\n */\n direction?: Direction\n\n /**\n * The content of the combobox\n */\n children?: React.ReactNode\n}\n\nconst Root = React.forwardRef<\n ElementRef<typeof StyledComboboxContent>,\n ComboboxProps\n>(\n (\n {\n onOpen,\n onClose,\n onValueChange,\n value: valueProp,\n children,\n ...restProps\n },\n forwardRef\n ) => {\n const {\n required,\n readOnly,\n 'aria-disabled': ariaDisabled,\n disabled,\n direction,\n } = useComboboxContext()\n\n const { setRequired, setDisabled, setAriaDisabled, setReadOnly } =\n useFormFieldContext()\n\n useEffect(() => {\n setRequired?.(required)\n setDisabled?.(disabled)\n setAriaDisabled?.(ariaDisabled)\n setReadOnly?.(readOnly)\n }, [\n readOnly,\n disabled,\n ariaDisabled,\n required,\n setRequired,\n setDisabled,\n setAriaDisabled,\n setReadOnly,\n ])\n\n return (\n <StyledComboboxContent {...restProps} ref={forwardRef} dir={direction}>\n {children}\n </StyledComboboxContent>\n )\n }\n)\n\nexport const Combobox = React.forwardRef<\n ElementRef<typeof StyledComboboxContent>,\n ComboboxProps\n>(\n (\n {\n 'aria-disabled': ariaDisabled,\n defaultOpen = false,\n open,\n valid,\n disabled,\n readOnly,\n required,\n value,\n defaultValue,\n direction = 'ltr',\n ...restProps\n },\n forwardRef\n ) => (\n <ComboboxProvider\n defaultValue={defaultValue}\n value={value}\n defaultOpen={defaultOpen}\n open={open}\n valid={valid}\n required={required}\n disabled={disabled}\n readOnly={readOnly}\n aria-disabled={ariaDisabled}\n direction={direction}\n >\n <Root {...restProps} value={value} ref={forwardRef} />\n </ComboboxProvider>\n )\n) as ForwardRefExoticComponent<ComboboxProps> & Partials\n\nexport interface Partials {\n Portal: typeof Portal\n Trigger: typeof Trigger\n Content: typeof Content\n Item: typeof Item\n Group: typeof Group\n GroupLabel: typeof GroupLabel\n Value: typeof Value\n}\n\nCombobox.Portal = Portal\nCombobox.Trigger = Trigger\nCombobox.Content = Content\nCombobox.Item = Item\nCombobox.Group = Group\nCombobox.GroupLabel = GroupLabel\nCombobox.Value = Value\n"],"names":["styled","Input","createContext","useState","useFormFieldContext","jsx","useContext","React","useHover","stringAttrValue","booleanishAttrValue","IconChevronDown","Primitive","booleanify","jsxs","IconCheckMark","RadixPortal","Group","GroupLabel","useEffect"],"mappings":"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"}
1
+ {"version":3,"file":"main.js","sources":["../src/partials/trigger.styled.tsx","../src/hooks/use-combobox-context.tsx","../src/partials/trigger.tsx","../src/partials/content.styled.tsx","../src/partials/content.tsx","../src/partials/item.styled.tsx","../src/partials/item.tsx","../src/partials/portal.tsx","../src/partials/group.styled.tsx","../src/partials/group.tsx","../src/partials/group-label.styled.tsx","../src/partials/group-label.tsx","../src/partials/value.styled.tsx","../src/partials/value.tsx","../src/combobox.styled.tsx","../src/combobox.tsx"],"sourcesContent":["import { styled } from '@mirohq/design-system-stitches'\nimport { Input } from '@mirohq/design-system-input'\n\nexport const StyledActionButton = styled(Input.ActionButton, {\n position: 'absolute',\n right: '$100',\n top: '6px',\n})\n","import React, { createContext, useContext, useRef, useState } from 'react'\nimport type { PropsWithChildren } from 'react'\nimport { useFormFieldContext } from '@mirohq/design-system-base-form'\nimport type { FormElementProps } from '@mirohq/design-system-base-form'\n\nimport type { Direction } from '../types'\n\ninterface ComboboxProps extends FormElementProps {\n open?: boolean\n defaultOpen?: boolean\n value?: string[]\n defaultValue?: string[]\n searchValue?: string\n direction?: Direction\n}\n\ninterface ComboboxContextProps extends ComboboxProps {\n setOpenState: React.Dispatch<React.SetStateAction<boolean | undefined>>\n openState?: boolean | undefined\n setValue: React.Dispatch<React.SetStateAction<string[]>>\n setDefaultValue: React.Dispatch<React.SetStateAction<string[] | undefined>>\n setSearchValue: React.Dispatch<React.SetStateAction<string | undefined>>\n triggerRef: React.RefObject<HTMLInputElement>\n contentRef: React.RefObject<HTMLDivElement>\n}\n\nexport type ComboboxProviderProps = ComboboxProps\n\nconst ComboboxContext = createContext<ComboboxContextProps>({} as any)\n\nexport const ComboboxProvider = ({\n children,\n defaultOpen,\n valid,\n value: valueProp,\n defaultValue: defaultValueProp,\n ...restProps\n}: PropsWithChildren<ComboboxProviderProps>): JSX.Element => {\n const triggerRef = useRef<HTMLInputElement>(null)\n const contentRef = useRef<HTMLDivElement>(null)\n\n const [openState, setOpenState] = useState(defaultOpen)\n const [value, setValue] = useState(valueProp ?? [])\n const [defaultValue, setDefaultValue] = useState(defaultValueProp)\n const [searchValue, setSearchValue] = useState<string | undefined>()\n\n const { valid: formFieldValid } = useFormFieldContext()\n\n return (\n <ComboboxContext.Provider\n value={{\n ...restProps,\n valid: valid ?? formFieldValid,\n openState,\n setOpenState,\n value,\n setValue,\n setDefaultValue,\n defaultValue,\n searchValue,\n setSearchValue,\n triggerRef,\n contentRef,\n }}\n >\n {children}\n </ComboboxContext.Provider>\n )\n}\n\nexport const useComboboxContext = (): ComboboxContextProps =>\n useContext(ComboboxContext)\n","import React from 'react'\nimport type { ElementRef } from 'react'\nimport { Combobox } from '@ariakit/react'\nimport {\n booleanishAttrValue,\n mergeRefs,\n stringAttrValue,\n} from '@mirohq/design-system-utils'\nimport { useFormFieldContext } from '@mirohq/design-system-base-form'\nimport { IconChevronDown } from '@mirohq/design-system-icons'\nimport { Input } from '@mirohq/design-system-input'\nimport type { InputProps } from '@mirohq/design-system-input'\nimport * as RadixPopover from '@radix-ui/react-popover'\n\nimport { StyledActionButton } from './trigger.styled'\nimport { useComboboxContext } from '../hooks/use-combobox-context'\n\nexport type TriggerProps = InputProps & {\n /**\n * The content.\n */\n children?: React.ReactNode\n\n /**\n * The size of the trigger.\n * @default 'large'\n */\n size?: InputProps['size']\n\n /**\n * The content that will be rendered inside the Combobox.Trigger when no value or\n * defaultValue is set.\n */\n placeholder?: string\n}\n\nexport const Trigger = React.forwardRef<ElementRef<typeof Input>, TriggerProps>(\n (\n {\n id,\n children,\n size = 'large',\n 'aria-describedby': ariaDescribedBy,\n 'aria-invalid': ariaInvalid,\n placeholder,\n ...restProps\n },\n forwardRef\n ) => {\n const {\n 'aria-disabled': ariaDisabled,\n valid: comboboxValid,\n disabled,\n value,\n triggerRef,\n } = useComboboxContext()\n\n const {\n formElementId,\n ariaDescribedBy: formFieldContextDescribedBy,\n ariaInvalid: formFieldAriaInvalid,\n valid: formFieldValid,\n } = useFormFieldContext()\n\n const valid = formFieldValid ?? comboboxValid\n\n const inputProps = {\n ...restProps,\n 'aria-disabled': ariaDisabled,\n 'aria-invalid': ariaInvalid ?? formFieldAriaInvalid,\n 'aria-describedby': stringAttrValue(\n ariaDescribedBy,\n formFieldContextDescribedBy\n ),\n valid,\n disabled,\n invalid: booleanishAttrValue(valid),\n id: id ?? formElementId,\n placeholder: value?.length === 0 ? placeholder : undefined,\n }\n\n const variants = {\n size,\n }\n\n return (\n <RadixPopover.Anchor ref={mergeRefs([triggerRef, forwardRef])}>\n <Combobox\n render={\n <Input {...inputProps} {...variants}>\n {children}\n {/* @todo https://miro.atlassian.net/browse/CLC-335 */}\n <StyledActionButton label='custom label'>\n <IconChevronDown size='small' weight='thin' />\n </StyledActionButton>\n </Input>\n }\n />\n </RadixPopover.Anchor>\n )\n }\n)\n","import { styled } from '@mirohq/design-system-stitches'\nimport type { StrictComponentProps } from '@mirohq/design-system-stitches'\nimport * as RadixPopover from '@radix-ui/react-popover'\n\nexport const StyledContent = styled(RadixPopover.Content, {\n backgroundColor: '$background-neutrals-container',\n borderRadius: '$50',\n boxShadow: '$50',\n fontSize: '$175',\n fontWeight: 'normal',\n lineHeight: '1.5',\n minWidth: 'var(--radix-popover-trigger-width)',\n zIndex: '$select',\n overflowY: 'auto',\n marginTop: '$200',\n})\n\nexport type StyledContentProps = StrictComponentProps<typeof StyledContent>\n","import React from 'react'\nimport type { ElementRef, ReactNode } from 'react'\nimport { mergeRefs } from '@mirohq/design-system-utils'\n\nimport { StyledContent } from './content.styled'\nimport type { StyledContentProps } from './content.styled'\nimport { useComboboxContext } from '../hooks/use-combobox-context'\n\nexport interface ContentProps extends StyledContentProps {\n /**\n * Combobox's content.\n */\n children?: ReactNode\n}\n\nexport const Content = React.forwardRef<\n ElementRef<typeof StyledContent>,\n ContentProps\n>(({ children, ...restProps }, forwardRef) => {\n const { triggerRef, contentRef } = useComboboxContext()\n\n return (\n <StyledContent\n {...restProps}\n ref={mergeRefs([forwardRef, contentRef])}\n onOpenAutoFocus={event => event.preventDefault()}\n onInteractOutside={event => {\n const target = event.target as Element | null\n const isTrigger = target === triggerRef.current\n const isContent =\n (target != null && contentRef.current?.contains(target)) ?? false\n if (isTrigger || isContent) {\n event.preventDefault()\n }\n }}\n >\n {children}\n </StyledContent>\n )\n})\n","import { ComboboxItem } from '@ariakit/react'\nimport { focus } from '@mirohq/design-system-styles'\nimport { styled } from '@mirohq/design-system-stitches'\nimport type { StrictComponentProps } from '@mirohq/design-system-stitches'\n\nexport const StyledItem = styled(ComboboxItem, {\n display: 'flex',\n alignItems: 'center',\n borderRadius: '$50',\n boxSizing: 'border-box',\n color: '$text-neutrals',\n cursor: 'pointer',\n fontSize: '$175',\n lineHeight: 1.5,\n position: 'relative',\n userSelect: 'none',\n padding: '6px 0',\n paddingInline: '$150 $100',\n\n ...focus.css({\n boxShadow: '$focus-small',\n outline: '1px solid transparent',\n }),\n\n '&:hover:not([aria-disabled=\"true\"])': {\n background: '$background-primary-subtle-hover',\n color: '$text-primary-hover',\n },\n\n '&:disabled, &[aria-disabled=true], &[data-disabled]': {\n cursor: 'default',\n color: '$text-neutrals-disabled',\n },\n})\n\nexport type StyledItemProps = StrictComponentProps<typeof StyledItem>\n","import React from 'react'\nimport type { ElementRef, ReactNode } from 'react'\nimport * as Ariakit from '@ariakit/react'\nimport { useAriaDisabled } from '@mirohq/design-system-use-aria-disabled'\n\nimport { StyledItem } from './item.styled'\nimport type { StyledItemProps } from './item.styled'\n\nexport interface ItemProps extends StyledItemProps {\n /**\n * The value given as data when submitted with a name.\n */\n value: string\n\n /**\n * When true, prevents the user from interacting with the item.\n * @default false\n */\n disabled?: boolean\n\n /**\n * Optional text used for typeahead purposes. By default the typeahead\n * behavior will use the Combobox's item text. Use this when the content is\n * complex, or you have non-textual content inside.\n */\n textValue?: string\n\n /**\n * Item's content.\n */\n children?: ReactNode\n}\n\nexport const Item = React.forwardRef<ElementRef<typeof StyledItem>, ItemProps>(\n (\n { disabled = false, value, textValue, children, ...restProps },\n forwardRef\n ) => {\n const { 'aria-disabled': ariaDisabled, ...restAriaDisabledProps } =\n useAriaDisabled(restProps, { allowArrows: true })\n\n return (\n <StyledItem\n {...restProps}\n {...restAriaDisabledProps}\n focusable\n accessibleWhenDisabled={ariaDisabled === true}\n disabled={ariaDisabled === true || disabled}\n ref={forwardRef}\n value={value}\n >\n <Ariakit.ComboboxItemCheck />\n {children}\n </StyledItem>\n )\n }\n)\n","import React from 'react'\nimport type { PopoverPortalProps } from '@radix-ui/react-popover'\nimport { Portal as RadixPortal } from '@radix-ui/react-popover'\n\nexport interface PortalProps extends PopoverPortalProps {\n /**\n * Specify a container element to portal the content into.\n */\n container?: HTMLElement | null\n}\n\nexport const Portal: React.FC<PortalProps> = props => <RadixPortal {...props} />\n","import { Group } from '@ariakit/react'\nimport { styled } from '@mirohq/design-system-stitches'\nimport type { StrictComponentProps } from '@mirohq/design-system-stitches'\n\nexport const StyledGroup = styled(Group, {})\n\nexport type StyledGroupProps = StrictComponentProps<typeof StyledGroup>\n","import React from 'react'\nimport type { ElementRef } from 'react'\n\nimport { StyledGroup } from './group.styled'\nimport type { StyledGroupProps } from './group.styled'\n\nexport interface GroupProps extends StyledGroupProps {}\n\nexport const Group = React.forwardRef<\n ElementRef<typeof StyledGroup>,\n GroupProps\n>((props, forwardRef) => <StyledGroup {...props} ref={forwardRef} />)\n","import { GroupLabel } from '@ariakit/react'\nimport { styled } from '@mirohq/design-system-stitches'\nimport type { StrictComponentProps } from '@mirohq/design-system-stitches'\n\nexport const StyledGroupLabel = styled(GroupLabel, {})\n\nexport type StyledGroupLabelProps = StrictComponentProps<\n typeof StyledGroupLabel\n>\n","import React from 'react'\nimport type { ElementRef } from 'react'\n\nimport { StyledGroupLabel } from './group-label.styled'\nimport type { StyledGroupLabelProps } from './group-label.styled'\n\nexport interface GroupLabelProps extends StyledGroupLabelProps {}\n\nexport const GroupLabel = React.forwardRef<\n ElementRef<typeof StyledGroupLabel>,\n GroupLabelProps\n>((props, forwardRef) => <StyledGroupLabel {...props} ref={forwardRef} />)\n","import { styled } from '@mirohq/design-system-stitches'\nimport { Primitive } from '@mirohq/design-system-primitive'\n\nexport const StyledValue = styled(Primitive.span, {})\n","import React from 'react'\nimport type { ElementRef } from 'react'\n\nimport { useComboboxContext } from '../hooks/use-combobox-context'\nimport { StyledValue } from './value.styled'\n\nexport const Value = React.forwardRef<ElementRef<typeof StyledValue>>(\n (props, forwardRef) => {\n const { value } = useComboboxContext()\n const isEmpty = value?.length === 0\n\n if (isEmpty) {\n return null\n }\n\n return (\n <StyledValue ref={forwardRef} {...props}>\n {value}\n </StyledValue>\n )\n }\n)\n","import type { ComponentPropsWithRef } from 'react'\nimport { Primitive } from '@mirohq/design-system-primitive'\nimport { styled } from '@mirohq/design-system-stitches'\n\nexport const StyledComboboxContent = styled(Primitive.div, {})\n\nexport type StyledComboboxProps = ComponentPropsWithRef<\n typeof StyledComboboxContent\n>\n","import React, { useEffect } from 'react'\nimport type { ElementRef, ForwardRefExoticComponent } from 'react'\nimport * as Ariakit from '@ariakit/react'\nimport { useFormFieldContext } from '@mirohq/design-system-base-form'\nimport * as RadixPopover from '@radix-ui/react-popover'\n\nimport { Trigger } from './partials/trigger'\nimport { Content } from './partials/content'\nimport { Item } from './partials/item'\nimport { Portal } from './partials/portal'\nimport { Group } from './partials/group'\nimport { GroupLabel } from './partials/group-label'\nimport { Value } from './partials/value'\nimport { StyledComboboxContent } from './combobox.styled'\nimport {\n ComboboxProvider,\n useComboboxContext,\n} from './hooks/use-combobox-context'\nimport type { ComboboxProviderProps } from './hooks/use-combobox-context'\nimport type { Direction } from './types'\n\nexport interface ComboboxProps extends ComboboxProviderProps {\n /**\n * The value of the combobox when initially rendered. Use when you do not need\n * to control the state of the combobox.\n */\n defaultValue?: string[]\n\n /**\n * The controlled value of the combobox. Should be used in conjunction with\n * onValueChange.\n */\n value?: string[]\n\n /**\n * Event handler called when the value changes.\n */\n onValueChange?: (value: string[]) => void\n\n /**\n * The open state of the combobox when it is initially rendered. Use when you do\n * not need to control its open state.\n * @default false\n */\n defaultOpen?: boolean\n\n /**\n * The controlled open state of the combobox. Must be used in conjunction with\n * onOpen and onClose.\n */\n open?: boolean\n\n /**\n * Event handler called when the combobox opens.\n */\n onOpen?: () => void\n\n /**\n * Event handler called when the combobox closes.\n */\n onClose?: () => void\n\n /**\n * The reading direction of the combobox when applicable. If omitted, inherits\n * globally from DirectionProvider or assumes LTR (left-to-right) reading\n * mode.\n * @default 'ltr'\n */\n direction?: Direction\n\n /**\n * The content of the combobox\n */\n children?: React.ReactNode\n}\n\nconst Root = React.forwardRef<\n ElementRef<typeof StyledComboboxContent>,\n ComboboxProps\n>(({ value: valueProp, onValueChange, children, ...restProps }, forwardRef) => {\n const {\n openState,\n setOpenState,\n defaultValue,\n value,\n setValue,\n required,\n readOnly,\n 'aria-disabled': ariaDisabled,\n disabled,\n direction,\n } = useComboboxContext()\n\n const { setRequired, setDisabled, setAriaDisabled, setReadOnly } =\n useFormFieldContext()\n\n useEffect(() => {\n setRequired?.(required)\n setDisabled?.(disabled)\n setAriaDisabled?.(ariaDisabled)\n setReadOnly?.(readOnly)\n }, [\n readOnly,\n disabled,\n ariaDisabled,\n required,\n setRequired,\n setDisabled,\n setAriaDisabled,\n setReadOnly,\n ])\n\n const onSetSelectedValue = (newValue: string | string[]): void => {\n // setSelectedValue from Ariakit.ComboboxProvider expects to accept a union string | string[], type cast is required to specify that it's a multi value\n onValueChange?.(newValue as string[])\n setValue(newValue as string[])\n }\n\n return (\n <RadixPopover.Root open={openState} onOpenChange={setOpenState}>\n <Ariakit.ComboboxProvider\n open={openState}\n setOpen={setOpenState}\n defaultSelectedValue={defaultValue}\n selectedValue={value}\n setSelectedValue={onSetSelectedValue}\n >\n <StyledComboboxContent {...restProps} ref={forwardRef} dir={direction}>\n {children}\n </StyledComboboxContent>\n </Ariakit.ComboboxProvider>\n </RadixPopover.Root>\n )\n})\n\nexport const Combobox = React.forwardRef<\n ElementRef<typeof StyledComboboxContent>,\n ComboboxProps\n>(\n (\n {\n 'aria-disabled': ariaDisabled,\n defaultOpen = false,\n open,\n valid,\n disabled,\n readOnly,\n required,\n value,\n defaultValue,\n onOpen,\n onValueChange,\n direction = 'ltr',\n ...restProps\n },\n forwardRef\n ) => (\n <ComboboxProvider\n defaultValue={defaultValue}\n value={value}\n defaultOpen={defaultOpen}\n open={open}\n valid={valid}\n required={required}\n disabled={disabled}\n readOnly={readOnly}\n aria-disabled={ariaDisabled}\n direction={direction}\n >\n <Root {...restProps} value={value} ref={forwardRef} />\n </ComboboxProvider>\n )\n) as ForwardRefExoticComponent<ComboboxProps> & Partials\n\nexport interface Partials {\n Portal: typeof Portal\n Trigger: typeof Trigger\n Content: typeof Content\n Item: typeof Item\n Group: typeof Group\n GroupLabel: typeof GroupLabel\n Value: typeof Value\n}\n\nCombobox.Portal = Portal\nCombobox.Trigger = Trigger\nCombobox.Content = Content\nCombobox.Item = Item\nCombobox.Group = Group\nCombobox.GroupLabel = GroupLabel\nCombobox.Value = Value\n"],"names":["styled","Input","createContext","useRef","useState","useFormFieldContext","jsx","useContext","React","stringAttrValue","booleanishAttrValue","RadixPopover","mergeRefs","Combobox","jsxs","IconChevronDown","ComboboxItem","focus","useAriaDisabled","Ariakit","RadixPortal","Group","GroupLabel","Primitive","useEffect"],"mappings":"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"}