@mirohq/design-system-select 0.1.14 → 0.2.0

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
@@ -9,6 +9,7 @@ var reactSelect = require('@radix-ui/react-select');
9
9
  var designSystemIcons = require('@mirohq/design-system-icons');
10
10
  var designSystemUtils = require('@mirohq/design-system-utils');
11
11
  var designSystemStyles = require('@mirohq/design-system-styles');
12
+ var interactions = require('@react-aria/interactions');
12
13
  var designSystemScrollArea = require('@mirohq/design-system-scroll-area');
13
14
  var designSystemPrimitive = require('@mirohq/design-system-primitive');
14
15
 
@@ -136,7 +137,21 @@ const StyledPortal = designSystemStitches.styled(reactSelect.Portal, {});
136
137
 
137
138
  const Portal = React__default["default"].forwardRef((props, forwardRef) => /* @__PURE__ */ jsxRuntime.jsx(StyledPortal, { ...props, ref: forwardRef }));
138
139
 
139
- const StyledSelectIcon = designSystemStitches.styled(reactSelect.SelectIcon, { flexShrink: 0 });
140
+ const StyledSelectIcon = designSystemStitches.styled(reactSelect.SelectIcon, {
141
+ flexShrink: 0
142
+ });
143
+ const StyledIconExclamationPointCircle = designSystemStitches.styled(
144
+ designSystemIcons.IconExclamationPointCircle,
145
+ {
146
+ color: "$icon-danger"
147
+ }
148
+ );
149
+ const StyledIconCheckMark = designSystemStitches.styled(designSystemIcons.IconCheckMark, {
150
+ color: "$icon-success"
151
+ });
152
+ const StyledIconChevronDown = designSystemStitches.styled(designSystemIcons.IconChevronDown, {
153
+ color: "$icon-neutrals-text"
154
+ });
140
155
 
141
156
  const StyledTrigger = designSystemStitches.styled(reactSelect.Trigger, {
142
157
  all: "unset",
@@ -154,24 +169,52 @@ const StyledTrigger = designSystemStitches.styled(reactSelect.Trigger, {
154
169
  width: "100%",
155
170
  justifyContent: "space-between",
156
171
  alignItems: "center",
157
- svg: {
158
- color: "$icon-neutrals-text"
159
- },
160
172
  "&[data-placeholder]": {
161
173
  color: "$text-neutrals-subtle"
162
174
  },
163
175
  "&[data-invalid]": {
176
+ borderColor: "$border-danger"
177
+ },
178
+ "&[data-valid]": {
179
+ borderColor: "$border-success"
180
+ },
181
+ "&[data-focused], &[data-hovered]": {
182
+ borderColor: "$border-neutrals",
183
+ ...designSystemStyles.focus.css({
184
+ boxShadow: "$focus-controls",
185
+ outline: "1px solid transparent"
186
+ })
187
+ },
188
+ "&[data-invalid][data-focused]": {
164
189
  borderColor: "$border-danger",
165
190
  ...designSystemStyles.focus.css({
166
191
  boxShadow: "$focus-controls-error"
167
192
  })
168
193
  },
169
- "&:hover": {
194
+ "&[data-valid][data-focused]": {
195
+ borderColor: "$border-success",
196
+ ...designSystemStyles.focus.css({
197
+ boxShadow: "$focus-controls-success"
198
+ })
199
+ },
200
+ "&[data-hovered]": {
170
201
  borderColor: "$border-primary-hover"
171
202
  },
203
+ "&[data-invalid][data-hovered]": {
204
+ borderColor: "$border-danger-hover"
205
+ },
206
+ "&[data-valid][data-hovered]": {
207
+ borderColor: "$border-success-hover"
208
+ },
172
209
  '&:active, &[data-state="open"]': {
173
210
  borderColor: "$border-primary-active"
174
211
  },
212
+ '&:active[data-valid], &[data-state="open"][data-valid]': {
213
+ borderColor: "$border-success-active"
214
+ },
215
+ '&:active[data-invalid], &[data-state="open"][data-invalid]': {
216
+ borderColor: "$border-danger-active"
217
+ },
175
218
  ...designSystemStyles.focus.css({
176
219
  boxShadow: "$focus-controls",
177
220
  outline: "1px solid transparent"
@@ -191,12 +234,12 @@ const StyledTrigger = designSystemStitches.styled(reactSelect.Trigger, {
191
234
  },
192
235
  variants: {
193
236
  size: {
194
- medium: {
237
+ large: {
195
238
  height: "$10",
196
239
  paddingX: "$100",
197
240
  gap: "$50"
198
241
  },
199
- large: {
242
+ "x-large": {
200
243
  height: "$12",
201
244
  paddingX: "$150",
202
245
  gap: "$100"
@@ -208,32 +251,54 @@ const StyledTrigger = designSystemStitches.styled(reactSelect.Trigger, {
208
251
  const SelectContext = React.createContext({});
209
252
  const SelectProvider = ({
210
253
  children,
211
- invalid,
212
- ariaDisabled,
213
- direction
214
- }) => /* @__PURE__ */ jsxRuntime.jsx(
215
- SelectContext.Provider,
216
- {
217
- value: {
218
- invalid,
219
- ariaDisabled,
220
- direction
221
- },
222
- children
223
- }
224
- );
254
+ defaultOpen,
255
+ ...restProps
256
+ }) => {
257
+ const [openState, setOpenState] = React.useState(defaultOpen);
258
+ return /* @__PURE__ */ jsxRuntime.jsx(
259
+ SelectContext.Provider,
260
+ {
261
+ value: {
262
+ ...restProps,
263
+ openState,
264
+ setOpenState
265
+ },
266
+ children
267
+ }
268
+ );
269
+ };
225
270
  const useSelectContext = () => React.useContext(SelectContext);
226
271
 
272
+ const SELECT_ICONS = {
273
+ valid: StyledIconCheckMark,
274
+ invalid: StyledIconExclamationPointCircle,
275
+ default: StyledIconChevronDown
276
+ };
227
277
  const Trigger = React__default["default"].forwardRef(
228
278
  ({
229
279
  onKeyDown,
230
280
  onPointerDown,
281
+ onFocus,
282
+ onBlur,
231
283
  children,
232
- size = "medium",
284
+ size = "large",
233
285
  asChild = false,
286
+ onHoverChange,
287
+ onHoverStart,
288
+ onHoverEnd,
234
289
  ...restProps
235
290
  }, forwardRef) => {
236
- const { invalid, ariaDisabled } = useSelectContext();
291
+ const { valid, ariaDisabled, open, openState } = useSelectContext();
292
+ const isValid = valid === void 0 ? void 0 : valid;
293
+ const [focused, setFocused] = React.useState(false);
294
+ const isOpen = open != null ? open : openState;
295
+ const { hoverProps, isHovered: hovered } = interactions.useHover({
296
+ onHoverStart,
297
+ onHoverEnd,
298
+ onHoverChange: (isHovering) => {
299
+ onHoverChange == null ? void 0 : onHoverChange(isHovering);
300
+ }
301
+ });
237
302
  const commonProps = {
238
303
  ...restProps,
239
304
  ref: forwardRef,
@@ -252,14 +317,28 @@ const Trigger = React__default["default"].forwardRef(
252
317
  onKeyDown == null ? void 0 : onKeyDown(e);
253
318
  }
254
319
  },
255
- "data-invalid": invalid ? "" : void 0
320
+ onFocus: (e) => {
321
+ onFocus == null ? void 0 : onFocus(e);
322
+ setFocused(true);
323
+ },
324
+ onBlur: (e) => {
325
+ onBlur == null ? void 0 : onBlur(e);
326
+ if (!isOpen) {
327
+ setFocused(false);
328
+ }
329
+ },
330
+ "data-invalid": isValid === false ? "" : void 0,
331
+ "data-valid": isValid === true ? "" : void 0,
332
+ "data-focused": focused ? "" : void 0,
333
+ "data-hovered": hovered ? "" : void 0
256
334
  };
257
335
  if (asChild) {
258
336
  return /* @__PURE__ */ jsxRuntime.jsx(reactSelect.Trigger, { ...commonProps, asChild: true, children });
259
337
  }
260
- return /* @__PURE__ */ jsxRuntime.jsxs(StyledTrigger, { ...commonProps, size, children: [
338
+ const SelectIcon = SELECT_ICONS[(open != null ? open : openState) || isValid === void 0 || hovered || focused ? "default" : isValid ? "valid" : "invalid"];
339
+ return /* @__PURE__ */ jsxRuntime.jsxs(StyledTrigger, { ...hoverProps, ...commonProps, size, children: [
261
340
  children,
262
- /* @__PURE__ */ jsxRuntime.jsx(StyledSelectIcon, { asChild: true, children: /* @__PURE__ */ jsxRuntime.jsx(designSystemIcons.IconChevronDown, { size: "small", weight: "thin" }) })
341
+ /* @__PURE__ */ jsxRuntime.jsx(StyledSelectIcon, { asChild: true, children: /* @__PURE__ */ jsxRuntime.jsx(SelectIcon, { size: "small", weight: "thin" }) })
263
342
  ] });
264
343
  }
265
344
  );
@@ -363,46 +442,48 @@ const StyledSeparator = designSystemStitches.styled(reactSelect.Separator, {
363
442
 
364
443
  const Separator = React__default["default"].forwardRef((props, forwardRef) => /* @__PURE__ */ jsxRuntime.jsx(StyledSeparator, { ...props, ref: forwardRef }));
365
444
 
366
- const Select = React__default["default"].forwardRef(
367
- ({
368
- defaultOpen = false,
369
- direction = "ltr",
370
- open,
371
- onOpen,
372
- onClose,
373
- invalid = false,
374
- "aria-disabled": ariaDisabled,
375
- disabled,
376
- ...restProps
377
- }, forwardRef) => {
378
- const [openState, setOpenState] = React.useState(defaultOpen);
445
+ const Root = React__default["default"].forwardRef(
446
+ ({ disabled, onOpen, onClose, ...restProps }, forwardRef) => {
447
+ const { ariaDisabled, direction, open, setOpenState, openState } = useSelectContext();
379
448
  return /* @__PURE__ */ jsxRuntime.jsx(
380
- SelectProvider,
449
+ StyledSelect,
381
450
  {
382
- direction,
383
- invalid,
384
- ariaDisabled,
385
- children: /* @__PURE__ */ jsxRuntime.jsx(
386
- StyledSelect,
387
- {
388
- ...restProps,
389
- "aria-disabled": ariaDisabled,
390
- disabled,
391
- dir: direction,
392
- open: open != null ? open : openState,
393
- onOpenChange: (newOpen) => {
394
- if (open == null) {
395
- setOpenState(newOpen);
396
- }
397
- newOpen ? onOpen == null ? void 0 : onOpen() : onClose == null ? void 0 : onClose();
398
- },
399
- ref: forwardRef
451
+ ...restProps,
452
+ "aria-disabled": ariaDisabled,
453
+ dir: direction,
454
+ disabled,
455
+ open: open != null ? open : openState,
456
+ onOpenChange: (newOpen) => {
457
+ if (open == null) {
458
+ setOpenState(newOpen);
400
459
  }
401
- )
460
+ newOpen ? onOpen == null ? void 0 : onOpen() : onClose == null ? void 0 : onClose();
461
+ },
462
+ ref: forwardRef
402
463
  }
403
464
  );
404
465
  }
405
466
  );
467
+ const Select = React__default["default"].forwardRef(
468
+ ({
469
+ "aria-disabled": ariaDisabled,
470
+ defaultOpen = false,
471
+ direction = "ltr",
472
+ open,
473
+ valid,
474
+ ...restProps
475
+ }, forwardRef) => /* @__PURE__ */ jsxRuntime.jsx(
476
+ SelectProvider,
477
+ {
478
+ ariaDisabled,
479
+ defaultOpen,
480
+ direction,
481
+ open,
482
+ valid,
483
+ children: /* @__PURE__ */ jsxRuntime.jsx(Root, { open, ...restProps, ref: forwardRef })
484
+ }
485
+ )
486
+ );
406
487
  Select.Group = Group;
407
488
  Select.Separator = Separator;
408
489
  Select.Content = Content;
package/dist/main.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"main.js","sources":["../src/select.styled.tsx","../src/partials/group.styled.tsx","../src/partials/group.tsx","../src/partials/item.styled.tsx","../src/partials/item-text.styled.tsx","../src/partials/item-indicator.styled.tsx","../src/partials/item.tsx","../src/partials/portal.styled.tsx","../src/partials/portal.tsx","../src/partials/select-icon.styled.tsx","../src/partials/trigger.styled.tsx","../src/hooks/use-select-context.tsx","../src/partials/trigger.tsx","../src/partials/value.styled.tsx","../src/partials/value.tsx","../src/partials/content.styled.tsx","../src/partials/content.tsx","../src/partials/label.styled.tsx","../src/partials/label.tsx","../src/partials/separator.styled.tsx","../src/partials/separator.tsx","../src/select.tsx"],"sourcesContent":["import type { ComponentPropsWithRef } from 'react'\nimport { styled } from '@mirohq/design-system-stitches'\nimport { Root as RadixSelect } from '@radix-ui/react-select'\n\nexport const StyledSelect = styled(RadixSelect)\n\nexport type StyledSelectProps = ComponentPropsWithRef<typeof StyledSelect>\n","import { Group as RadixGroup } from '@radix-ui/react-select'\nimport { styled } from '@mirohq/design-system-stitches'\nimport type { StrictComponentProps } from '@mirohq/design-system-stitches'\n\nexport const StyledGroup = styled(RadixGroup, {})\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 { Item as RadixItem } from '@radix-ui/react-select'\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(RadixItem, {\n all: 'unset',\n borderRadius: '$50',\n boxSizing: 'border-box',\n color: '$text-neutrals',\n cursor: 'pointer',\n display: 'grid',\n fontSize: '$175',\n gridTemplateAreas: 'leftSlot textItem',\n gridTemplateColumns: '20px 1fr',\n lineHeight: '20px',\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 '&[aria-selected=true]': {\n color: '$text-primary-selected',\n },\n\n '&:active:not([aria-disabled=true])': {\n background: '$background-primary-subtle-active',\n boxShadow: 'none',\n color: '$text-primary-active',\n },\n\n '&:disabled, &[aria-disabled=true], &[data-disabled]': {\n cursor: 'default',\n color: '$text-neutrals-disabled',\n },\n\n '&:disabled, &[data-disabled]': {\n pointerEvents: 'none',\n },\n\n '&:hover:not([aria-disabled=true])': {\n background: '$background-primary-subtle-hover',\n color: '$text-primary-hover',\n '&:not([aria-disabled=true])': {\n boxShadow: 'none',\n },\n },\n\n '&[data-state=\"checked\"]': {\n color: '$text-primary-selected',\n },\n})\n\nexport type StyledItemProps = StrictComponentProps<typeof StyledItem>\n","import { styled } from '@mirohq/design-system-stitches'\nimport type { StrictComponentProps } from '@mirohq/design-system-stitches'\n\nexport const StyledItemText = styled('span', {\n display: 'flex',\n gridColumn: 2,\n width: '100%',\n})\n\nexport type StyledItemProps = StrictComponentProps<typeof StyledItemText>\n","import { ItemIndicator as RadixItemIndicator } from '@radix-ui/react-select'\nimport { styled } from '@mirohq/design-system-stitches'\nimport type { StrictComponentProps } from '@mirohq/design-system-stitches'\n\nexport const StyledItemIndicator = styled(RadixItemIndicator, {})\n\nexport type StyledItemIndicatorProps = StrictComponentProps<\n typeof StyledItemIndicator\n>\n","import React from 'react'\nimport type { ElementRef } from 'react'\nimport { IconCheckMark } from '@mirohq/design-system-icons'\nimport { ItemText as RadixItemText } from '@radix-ui/react-select'\nimport { booleanify } from '@mirohq/design-system-utils'\n\nimport { StyledItem } from './item.styled'\nimport type { StyledItemProps } from './item.styled'\nimport { StyledItemText } from './item-text.styled'\nimport { StyledItemIndicator } from './item-indicator.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 */\n disabled?: boolean\n\n /**\n * Optional text used for typeahead purposes. By default the typeahead\n * behavior will use the Select'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 (\n {\n disabled = false,\n textValue,\n 'aria-disabled': ariaDisabled,\n onKeyDown,\n onPointerUp,\n onPointerMove,\n onPointerLeave,\n children,\n ...restProps\n },\n forwardRef\n ) => (\n <StyledItem\n {...restProps}\n aria-disabled={booleanify(ariaDisabled) ? ariaDisabled : undefined}\n onKeyDown={e => {\n if (\n booleanify(ariaDisabled) &&\n e.code !== 'ArrowUp' &&\n e.code !== 'ArrowDown' &&\n e.code !== 'Escape'\n ) {\n e.preventDefault()\n e.stopPropagation()\n return\n }\n\n onKeyDown?.(e)\n }}\n onPointerUp={e => {\n if (booleanify(ariaDisabled)) {\n e.preventDefault()\n return\n }\n\n onPointerUp?.(e)\n }}\n onPointerMove={e => {\n if (booleanify(ariaDisabled)) {\n e.preventDefault()\n return\n }\n\n onPointerMove?.(e)\n }}\n onPointerLeave={e => {\n if (booleanify(ariaDisabled)) {\n e.preventDefault()\n return\n }\n\n onPointerLeave?.(e)\n }}\n textValue={textValue}\n disabled={disabled}\n ref={forwardRef}\n >\n <StyledItemIndicator>\n <IconCheckMark size='small' />\n </StyledItemIndicator>\n <RadixItemText asChild>\n <StyledItemText>{children}</StyledItemText>\n </RadixItemText>\n </StyledItem>\n )\n)\n","import { Portal as RadixPortal } from '@radix-ui/react-select'\nimport { styled } from '@mirohq/design-system-stitches'\nimport type { StrictComponentProps } from '@mirohq/design-system-stitches'\n\nexport const StyledPortal = styled(RadixPortal, {})\n\nexport type StyledPortalProps = StrictComponentProps<typeof StyledPortal>\n","import React from 'react'\nimport type { ElementRef } from 'react'\n\nimport { StyledPortal } from './portal.styled'\nimport type { StyledPortalProps } from './portal.styled'\n\nexport interface PortalProps extends StyledPortalProps {\n /**\n * Specify a container element to portal the content into.\n */\n container?: HTMLElement | null\n}\n\nexport const Portal = React.forwardRef<\n ElementRef<typeof StyledPortal>,\n PortalProps\n>((props, forwardRef) => <StyledPortal {...props} ref={forwardRef} />)\n","import type { StrictComponentProps } from '@mirohq/design-system-stitches'\nimport { styled } from '@mirohq/design-system-stitches'\nimport { SelectIcon as RadixSelectIcon } from '@radix-ui/react-select'\n\nexport const StyledSelectIcon = styled(RadixSelectIcon, { flexShrink: 0 })\n\nexport type StyledSelectIconProps = StrictComponentProps<\n typeof StyledSelectIcon\n>\n","import type { StrictComponentProps } from '@mirohq/design-system-stitches'\nimport { styled } from '@mirohq/design-system-stitches'\nimport { Trigger as RadixTrigger } from '@radix-ui/react-select'\nimport { focus } from '@mirohq/design-system-styles'\n\nimport { StyledSelectIcon } from './select-icon.styled'\n\nexport const StyledTrigger = styled(RadixTrigger, {\n all: 'unset',\n backgroundColor: '$background-neutrals-container',\n border: '1px solid $border-neutrals',\n borderRadius: '$50',\n boxSizing: 'border-box',\n color: '$text-neutrals',\n display: 'flex',\n minWidth: 0,\n fontSize: '$200',\n lineHeight: 1.5,\n position: 'relative',\n userSelect: 'none',\n width: '100%',\n justifyContent: 'space-between',\n alignItems: 'center',\n\n svg: {\n color: '$icon-neutrals-text',\n },\n\n '&[data-placeholder]': {\n color: '$text-neutrals-subtle',\n },\n\n '&[data-invalid]': {\n borderColor: '$border-danger',\n\n ...focus.css({\n boxShadow: '$focus-controls-error',\n }),\n },\n\n '&:hover': {\n borderColor: '$border-primary-hover',\n },\n\n '&:active, &[data-state=\"open\"]': {\n borderColor: '$border-primary-active',\n },\n\n ...focus.css({\n boxShadow: '$focus-controls',\n outline: '1px solid transparent',\n }),\n\n '&[disabled], &[aria-disabled=\"true\"]': {\n backgroundColor: '$background-neutrals-disabled',\n borderColor: '$border-neutrals-disabled',\n color: '$text-neutrals-disabled',\n\n svg: {\n color: '$icon-neutrals-disabled',\n },\n },\n\n '&[data-state=\"open\"]': {\n [`& ${StyledSelectIcon}`]: {\n transform: 'rotate(180deg)',\n },\n },\n\n variants: {\n size: {\n medium: {\n height: '$10',\n paddingX: '$100',\n gap: '$50',\n },\n large: {\n height: '$12',\n paddingX: '$150',\n gap: '$100',\n },\n },\n },\n})\n\nexport type StyledTriggerProps = StrictComponentProps<typeof StyledTrigger>\n","import { createContext, useContext } from 'react'\nimport type { PropsWithChildren } from 'react'\nimport type { Booleanish } from '@mirohq/design-system-types'\n\nimport type { Direction } from '../types'\n\ninterface SelectValues {\n invalid: boolean\n ariaDisabled?: Booleanish\n direction?: Direction\n}\n\ninterface SelectContextProps {\n invalid: boolean\n ariaDisabled?: Booleanish\n direction?: Direction\n}\n\nconst SelectContext = createContext<SelectContextProps>({} as any)\n\nexport const SelectProvider = ({\n children,\n invalid,\n ariaDisabled,\n direction,\n}: PropsWithChildren<SelectValues>): any => (\n <SelectContext.Provider\n value={{\n invalid,\n ariaDisabled,\n direction,\n }}\n >\n {children}\n </SelectContext.Provider>\n)\n\nexport const useSelectContext = (): SelectContextProps =>\n useContext(SelectContext)\n","import React from 'react'\nimport type { ElementRef, PointerEvent } from 'react'\nimport { IconChevronDown } from '@mirohq/design-system-icons'\nimport { booleanify } from '@mirohq/design-system-utils'\nimport { Trigger as RadixTrigger } from '@radix-ui/react-select'\n\nimport { StyledTrigger } from './trigger.styled'\nimport type { StyledTriggerProps } from './trigger.styled'\nimport { useSelectContext } from '../hooks/use-select-context'\nimport { StyledSelectIcon } from './select-icon.styled'\n\nexport interface TriggerProps extends StyledTriggerProps {\n /**\n * The content.\n */\n children: React.ReactNode\n}\n\nexport const Trigger = React.forwardRef<\n ElementRef<typeof StyledTrigger>,\n TriggerProps\n>(\n (\n {\n onKeyDown,\n onPointerDown,\n children,\n size = 'medium',\n asChild = false,\n ...restProps\n },\n forwardRef\n ) => {\n const { invalid, ariaDisabled } = useSelectContext()\n\n const commonProps = {\n ...restProps,\n ref: forwardRef,\n 'aria-disabled': ariaDisabled,\n onPointerDown: (e: PointerEvent<HTMLButtonElement>) => {\n if (booleanify(ariaDisabled)) {\n e.preventDefault()\n } else {\n onPointerDown?.(e)\n }\n },\n onKeyDown: (e: React.KeyboardEvent<HTMLButtonElement>) => {\n if (\n booleanify(ariaDisabled) &&\n e.code !== 'Tab' &&\n e.code !== 'ArrowUp' &&\n e.code !== 'ArrowDown'\n ) {\n e.preventDefault()\n } else {\n onKeyDown?.(e)\n }\n },\n 'data-invalid': invalid ? '' : undefined,\n }\n\n if (asChild) {\n return (\n <RadixTrigger {...commonProps} asChild>\n {children}\n </RadixTrigger>\n )\n }\n\n return (\n <StyledTrigger {...commonProps} size={size}>\n {children}\n <StyledSelectIcon asChild>\n <IconChevronDown size='small' weight='thin' />\n </StyledSelectIcon>\n </StyledTrigger>\n )\n }\n)\n","import { styled } from '@mirohq/design-system-stitches'\n\nexport const StyledValue = styled('span', {\n overflow: 'hidden',\n paddingX: '$50',\n\n '& span:first-child': {\n display: 'block',\n overflow: 'hidden',\n textOverflow: 'ellipsis',\n whiteSpace: 'nowrap',\n },\n})\n","import React from 'react'\nimport type { ElementRef } from 'react'\nimport { Value as RadixValue } from '@radix-ui/react-select'\nimport type { StrictComponentProps } from '@mirohq/design-system-stitches'\n\nimport { StyledValue } from './value.styled'\n\nexport type StyledValueProps = StrictComponentProps<typeof RadixValue>\n\nexport interface ValueProps extends StyledValueProps {\n /**\n * The content that will be rendered inside the Select.Value when no value or\n * defaultValue is set.\n */\n placeholder?: React.ReactNode\n\n /**\n * The controlled content that will be rendered inside the Select.Value.\n */\n children?: React.ReactNode\n}\n\nexport const Value = React.forwardRef<\n ElementRef<typeof StyledValue>,\n ValueProps\n>((props, forwardRef) => (\n <StyledValue>\n <RadixValue {...props} ref={forwardRef} />\n </StyledValue>\n))\n","import { Content as RadixContent } from '@radix-ui/react-select'\nimport { styled } from '@mirohq/design-system-stitches'\nimport type { StrictComponentProps } from '@mirohq/design-system-stitches'\nimport { Primitive } from '@mirohq/design-system-primitive'\n\nexport const StyledScrollContainer = styled(Primitive.div, {\n boxSizing: 'border-box',\n paddingInline: '0 6px',\n margin: '-2px 0 0',\n marginInline: '-2px 2px',\n})\n\nexport const StyledContent = styled(RadixContent, {\n backgroundColor: '$background-neutrals-container',\n borderRadius: '$50',\n boxShadow: '$50',\n fontSize: '$175',\n fontWeight: 'normal',\n lineHeight: '20px',\n minWidth: 'var(--radix-select-trigger-width)',\n padding: '$50',\n zIndex: '$select',\n\n '& [data-radix-select-viewport]': {\n padding: `$100`,\n boxSizing: 'border-box',\n margin: '-6px',\n },\n})\n\nexport type StyledContentProps = StrictComponentProps<typeof StyledContent>\n","import React, { useCallback } from 'react'\nimport type { ElementRef, ReactNode } from 'react'\nimport { ScrollArea } from '@mirohq/design-system-scroll-area'\nimport type { CSS, CSSProperties } from '@stitches/react'\nimport { Viewport as RadixViewport } from '@radix-ui/react-select'\nimport { theme } from '@mirohq/design-system-stitches'\n\nimport { StyledContent, StyledScrollContainer } from './content.styled'\nimport type { StyledContentProps } from './content.styled'\nimport type {\n Boundary,\n PointerDownOutsideEvent,\n Side,\n Align,\n Overflow,\n Sticky,\n} from '../types'\nimport { useSelectContext } from '../hooks/use-select-context'\n\nexport const CONTENT_OFFSET = parseInt(theme.space[50])\n\nexport interface ContentProps extends StyledContentProps {\n /**\n * Event handler called when focus moves to the trigger after closing. It can\n * be prevented by calling event.preventDefault.\n */\n onCloseAutoFocus?: (event: Event) => void\n\n /**\n * Event handler called when focus moves to the trigger after closing. It can\n * be prevented by calling event.preventDefault.\n */\n onEscapeKeyDown?: (event: KeyboardEvent) => void\n\n /**\n * Event handler called when a pointer event occurs outside the bounds of the\n * component. It can be prevented by calling event.preventDefault.\n */\n onPointerDownOutside?: (event: PointerDownOutsideEvent) => void\n\n /**\n * The preferred side of the anchor to render against when open. Will be\n * reversed when collisions occur and avoidCollisions is enabled. Only\n * available when position is set to popper.\n */\n side?: Side\n\n /**\n * The distance in pixels from the anchor. Only available when position is set\n * to popper.\n */\n sideOffset?: number\n\n /**\n * The preferred alignment against the anchor. May change when collisions\n * occur. Only available when position is set to popper.\n */\n align?: Align\n\n /**\n * An offset in pixels from the \"start\" or \"end\" alignment options. Only\n * available when position is set to popper.\n */\n alignOffset?: number\n\n /**\n * When true, overrides the side andalign preferences to prevent collisions\n * with boundary edges. Only available when position is set to popper.\n */\n avoidCollisions?: boolean\n\n /**\n * The element used as the collision boundary. By default this is the\n * viewport, though you can provide additional element(s) to be included in\n * this check. Only available when position is set to popper.\n */\n collisionBoundary?: Boundary\n\n /**\n * The distance in pixels from the boundary edges where collision detection\n * should occur. Accepts a number (same for all sides), or a partial padding\n * object, for example: { top: 20, left: 20 }. Only available when position is\n * set to popper.\n */\n collisionPadding?: number | Partial<Record<Side, number>>\n\n /**\n * The sticky behavior on the align axis. \"partial\" will keep the content in the\n * boundary as long as the trigger is at least partially in the boundary whilst\n * \"always\" will keep the content in the boundary regardless. Only available\n * when position is set to popper.\n */\n sticky?: Sticky\n\n /**\n * Whether to hide the content when the trigger becomes fully occluded. Only\n * available when position is set to popper.\n */\n hideWhenDetached?: boolean\n\n /**\n * The max height for the content.\n */\n maxHeight?: CSSProperties['maxHeight']\n\n /**\n * Setting overflow as \"visible\" means that the content can extend beyond the\n * its collision boundary without any clipping or scrolling being\n * applied.\n * When set to \"auto,\" a scrollbar is added if the content exceeds its\n * boundaries. If no maxHeight is defined, it will be automatically adjusted\n * to fit the remaining space between the trigger and the boundary edge.\n */\n overflow?: Overflow\n\n /**\n * Select's content.\n */\n children?: ReactNode\n}\n\nexport const Content = React.forwardRef<\n ElementRef<typeof StyledContent>,\n ContentProps\n>(\n (\n {\n side = 'bottom',\n sideOffset = CONTENT_OFFSET,\n align = 'center',\n alignOffset = 0,\n collisionPadding = 0,\n avoidCollisions = true,\n sticky = 'partial',\n hideWhenDetached = true,\n overflow = 'visible',\n maxHeight,\n children,\n ...restProps\n },\n forwardRef\n ) => {\n const { direction } = useSelectContext()\n const getOverflowMaxHeight = useCallback((): CSS => {\n const overflowMaxHeigh = `calc(var(--radix-select-content-available-height))`\n\n return {\n maxHeight: maxHeight ?? overflowMaxHeigh,\n }\n }, [maxHeight])\n return (\n <StyledContent\n {...restProps}\n ref={forwardRef}\n position='popper'\n side={side}\n sideOffset={sideOffset}\n align={align}\n alignOffset={alignOffset}\n avoidCollisions={avoidCollisions}\n collisionPadding={collisionPadding}\n sticky={sticky}\n hideWhenDetached={hideWhenDetached}\n >\n <RadixViewport>\n {overflow === 'auto' ? (\n <ScrollArea dir={direction} type='always'>\n <ScrollArea.Viewport css={getOverflowMaxHeight()}>\n <StyledScrollContainer>{children}</StyledScrollContainer>\n </ScrollArea.Viewport>\n <ScrollArea.Scrollbar orientation='vertical'>\n <ScrollArea.Thumb />\n </ScrollArea.Scrollbar>\n </ScrollArea>\n ) : (\n <>{children}</>\n )}\n </RadixViewport>\n </StyledContent>\n )\n }\n)\n","import { Label as RadixLabel } from '@radix-ui/react-select'\nimport { styled } from '@mirohq/design-system-stitches'\nimport type { StrictComponentProps } from '@mirohq/design-system-stitches'\n\nexport const StyledLabel = styled(RadixLabel, {\n color: '$text-neutrals-subtle',\n margin: '0 $400',\n padding: '6px 0',\n})\n\nexport type StyledLabelProps = StrictComponentProps<typeof StyledLabel>\n","import React from 'react'\nimport type { ElementRef } from 'react'\n\nimport { StyledLabel } from './label.styled'\nimport type { StyledLabelProps } from './label.styled'\n\nexport interface LabelProps extends StyledLabelProps {}\n\nexport const Label = React.forwardRef<\n ElementRef<typeof StyledLabel>,\n LabelProps\n>((props, forwardRef) => <StyledLabel {...props} ref={forwardRef} />)\n","import { Separator as RadixSeparator } from '@radix-ui/react-select'\nimport { styled } from '@mirohq/design-system-stitches'\nimport type { StrictComponentProps } from '@mirohq/design-system-stitches'\n\nexport const StyledSeparator = styled(RadixSeparator, {\n backgroundColor: '$border-neutrals-subtle',\n height: '1px',\n width: '100%',\n margin: '5.5px 0',\n})\n\nexport type StyledSeparatorProps = StrictComponentProps<typeof StyledSeparator>\n","import React from 'react'\nimport type { ElementRef } from 'react'\n\nimport { StyledSeparator } from './separator.styled'\nimport type { StyledSeparatorProps } from './separator.styled'\n\nexport interface SeparatorProps extends StyledSeparatorProps {}\n\nexport const Separator = React.forwardRef<\n ElementRef<typeof StyledSeparator>,\n SeparatorProps\n>((props, forwardRef) => <StyledSeparator {...props} ref={forwardRef} />)\n","import React, { useState } from 'react'\nimport type { ElementRef, ForwardRefExoticComponent } from 'react'\nimport type { Booleanish } from '@mirohq/design-system-types'\n\nimport { StyledSelect } from './select.styled'\nimport { Group } from './partials/group'\nimport { Item } from './partials/item'\nimport { Portal } from './partials/portal'\nimport { Trigger } from './partials/trigger'\nimport { Value } from './partials/value'\nimport { Content } from './partials/content'\nimport { Label } from './partials/label'\nimport { Separator } from './partials/separator'\nimport { SelectProvider } from './hooks/use-select-context'\nimport type { Direction } from './types'\nimport type { StyledSelectProps } from './select.styled'\n\nexport interface SelectProps\n extends Omit<StyledSelectProps, 'onOpenChange' | 'dir'> {\n /**\n * The value of the select when initially rendered. Use when you do not need\n * to control the state of the select.\n */\n defaultValue?: string\n\n /**\n * The controlled value of the select. 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 select when it is initially rendered. Use when you do\n * not need to control its open state.\n */\n defaultOpen?: boolean\n\n /**\n * The controlled open state of the select. Must be used in conjunction with\n * onOpen and onClose.\n */\n open?: boolean\n\n /**\n * Event handler called when the select opens.\n */\n onOpen?: () => void\n\n /**\n * Event handler called when the select closes.\n */\n onClose?: () => void\n\n /**\n * The reading direction of the select when applicable. If omitted, inherits\n * globally from DirectionProvider or assumes LTR (left-to-right) reading\n * mode.\n */\n direction?: Direction\n\n /**\n * The name of the select. Submitted with its owning form as part of a\n * name/value pair.\n */\n name?: string\n\n /**\n * When true, prevents the user from interacting with select.\n */\n disabled?: boolean\n\n /**\n * When true, prevents the user from opening with select, while allowing focus and hover.\n */\n 'aria-disabled'?: Booleanish\n\n /**\n * When true, indicates that the user must select a value before the owning\n * form can be submitted.\n */\n required?: boolean\n\n /**\n * When true, indicates that the select value contains an error which have to be fixed before the owning\n * form can be submitted.\n */\n invalid?: boolean\n}\n\nexport const Select = React.forwardRef<\n ElementRef<typeof StyledSelect>,\n SelectProps\n>(\n (\n {\n defaultOpen = false,\n direction = 'ltr',\n open,\n onOpen,\n onClose,\n invalid = false,\n 'aria-disabled': ariaDisabled,\n disabled,\n ...restProps\n },\n forwardRef\n ) => {\n const [openState, setOpenState] = useState(defaultOpen)\n return (\n <SelectProvider\n direction={direction}\n invalid={invalid}\n ariaDisabled={ariaDisabled}\n >\n <StyledSelect\n {...restProps}\n aria-disabled={ariaDisabled}\n disabled={disabled}\n dir={direction}\n open={open ?? openState}\n onOpenChange={newOpen => {\n if (open == null) {\n setOpenState(newOpen)\n }\n\n newOpen ? onOpen?.() : onClose?.()\n }}\n ref={forwardRef}\n />\n </SelectProvider>\n )\n }\n) as ForwardRefExoticComponent<SelectProps> & Partials\n\nexport interface Partials {\n Content: typeof Content\n Separator: typeof Separator\n Label: typeof Label\n Group: typeof Group\n Item: typeof Item\n Portal: typeof Portal\n Trigger: typeof Trigger\n Value: typeof Value\n}\n\nSelect.Group = Group\nSelect.Separator = Separator\nSelect.Content = Content\nSelect.Item = Item\nSelect.Portal = Portal\nSelect.Trigger = Trigger\nSelect.Value = Value\nSelect.Label = Label\n"],"names":["styled","RadixSelect","RadixGroup","React","jsx","RadixItem","focus","RadixItemIndicator","jsxs","booleanify","IconCheckMark","RadixItemText","RadixPortal","RadixSelectIcon","RadixTrigger","createContext","useContext","IconChevronDown","RadixValue","Primitive","RadixContent","theme","useCallback","RadixViewport","ScrollArea","Fragment","RadixLabel","RadixSeparator","useState"],"mappings":"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"}
1
+ {"version":3,"file":"main.js","sources":["../src/select.styled.tsx","../src/partials/group.styled.tsx","../src/partials/group.tsx","../src/partials/item.styled.tsx","../src/partials/item-text.styled.tsx","../src/partials/item-indicator.styled.tsx","../src/partials/item.tsx","../src/partials/portal.styled.tsx","../src/partials/portal.tsx","../src/partials/select-icon.styled.tsx","../src/partials/trigger.styled.tsx","../src/hooks/use-select-context.tsx","../src/partials/trigger.tsx","../src/partials/value.styled.tsx","../src/partials/value.tsx","../src/partials/content.styled.tsx","../src/partials/content.tsx","../src/partials/label.styled.tsx","../src/partials/label.tsx","../src/partials/separator.styled.tsx","../src/partials/separator.tsx","../src/select.tsx"],"sourcesContent":["import type { ComponentPropsWithRef } from 'react'\nimport { styled } from '@mirohq/design-system-stitches'\nimport { Root as RadixSelect } from '@radix-ui/react-select'\n\nexport const StyledSelect = styled(RadixSelect)\n\nexport type StyledSelectProps = ComponentPropsWithRef<typeof StyledSelect>\n","import { Group as RadixGroup } from '@radix-ui/react-select'\nimport { styled } from '@mirohq/design-system-stitches'\nimport type { StrictComponentProps } from '@mirohq/design-system-stitches'\n\nexport const StyledGroup = styled(RadixGroup, {})\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 { Item as RadixItem } from '@radix-ui/react-select'\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(RadixItem, {\n all: 'unset',\n borderRadius: '$50',\n boxSizing: 'border-box',\n color: '$text-neutrals',\n cursor: 'pointer',\n display: 'grid',\n fontSize: '$175',\n gridTemplateAreas: 'leftSlot textItem',\n gridTemplateColumns: '20px 1fr',\n lineHeight: '20px',\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 '&[aria-selected=true]': {\n color: '$text-primary-selected',\n },\n\n '&:active:not([aria-disabled=true])': {\n background: '$background-primary-subtle-active',\n boxShadow: 'none',\n color: '$text-primary-active',\n },\n\n '&:disabled, &[aria-disabled=true], &[data-disabled]': {\n cursor: 'default',\n color: '$text-neutrals-disabled',\n },\n\n '&:disabled, &[data-disabled]': {\n pointerEvents: 'none',\n },\n\n '&:hover:not([aria-disabled=true])': {\n background: '$background-primary-subtle-hover',\n color: '$text-primary-hover',\n '&:not([aria-disabled=true])': {\n boxShadow: 'none',\n },\n },\n\n '&[data-state=\"checked\"]': {\n color: '$text-primary-selected',\n },\n})\n\nexport type StyledItemProps = StrictComponentProps<typeof StyledItem>\n","import { styled } from '@mirohq/design-system-stitches'\nimport type { StrictComponentProps } from '@mirohq/design-system-stitches'\n\nexport const StyledItemText = styled('span', {\n display: 'flex',\n gridColumn: 2,\n width: '100%',\n})\n\nexport type StyledItemProps = StrictComponentProps<typeof StyledItemText>\n","import { ItemIndicator as RadixItemIndicator } from '@radix-ui/react-select'\nimport { styled } from '@mirohq/design-system-stitches'\nimport type { StrictComponentProps } from '@mirohq/design-system-stitches'\n\nexport const StyledItemIndicator = styled(RadixItemIndicator, {})\n\nexport type StyledItemIndicatorProps = StrictComponentProps<\n typeof StyledItemIndicator\n>\n","import React from 'react'\nimport type { ElementRef } from 'react'\nimport { IconCheckMark } from '@mirohq/design-system-icons'\nimport { ItemText as RadixItemText } from '@radix-ui/react-select'\nimport { booleanify } from '@mirohq/design-system-utils'\n\nimport { StyledItem } from './item.styled'\nimport type { StyledItemProps } from './item.styled'\nimport { StyledItemText } from './item-text.styled'\nimport { StyledItemIndicator } from './item-indicator.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 */\n disabled?: boolean\n\n /**\n * Optional text used for typeahead purposes. By default the typeahead\n * behavior will use the Select'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 (\n {\n disabled = false,\n textValue,\n 'aria-disabled': ariaDisabled,\n onKeyDown,\n onPointerUp,\n onPointerMove,\n onPointerLeave,\n children,\n ...restProps\n },\n forwardRef\n ) => (\n <StyledItem\n {...restProps}\n aria-disabled={booleanify(ariaDisabled) ? ariaDisabled : undefined}\n onKeyDown={e => {\n if (\n booleanify(ariaDisabled) &&\n e.code !== 'ArrowUp' &&\n e.code !== 'ArrowDown' &&\n e.code !== 'Escape'\n ) {\n e.preventDefault()\n e.stopPropagation()\n return\n }\n\n onKeyDown?.(e)\n }}\n onPointerUp={e => {\n if (booleanify(ariaDisabled)) {\n e.preventDefault()\n return\n }\n\n onPointerUp?.(e)\n }}\n onPointerMove={e => {\n if (booleanify(ariaDisabled)) {\n e.preventDefault()\n return\n }\n\n onPointerMove?.(e)\n }}\n onPointerLeave={e => {\n if (booleanify(ariaDisabled)) {\n e.preventDefault()\n return\n }\n\n onPointerLeave?.(e)\n }}\n textValue={textValue}\n disabled={disabled}\n ref={forwardRef}\n >\n <StyledItemIndicator>\n <IconCheckMark size='small' />\n </StyledItemIndicator>\n <RadixItemText asChild>\n <StyledItemText>{children}</StyledItemText>\n </RadixItemText>\n </StyledItem>\n )\n)\n","import { Portal as RadixPortal } from '@radix-ui/react-select'\nimport { styled } from '@mirohq/design-system-stitches'\nimport type { StrictComponentProps } from '@mirohq/design-system-stitches'\n\nexport const StyledPortal = styled(RadixPortal, {})\n\nexport type StyledPortalProps = StrictComponentProps<typeof StyledPortal>\n","import React from 'react'\nimport type { ElementRef } from 'react'\n\nimport { StyledPortal } from './portal.styled'\nimport type { StyledPortalProps } from './portal.styled'\n\nexport interface PortalProps extends StyledPortalProps {\n /**\n * Specify a container element to portal the content into.\n */\n container?: HTMLElement | null\n}\n\nexport const Portal = React.forwardRef<\n ElementRef<typeof StyledPortal>,\n PortalProps\n>((props, forwardRef) => <StyledPortal {...props} ref={forwardRef} />)\n","import type { StrictComponentProps } from '@mirohq/design-system-stitches'\nimport { styled } from '@mirohq/design-system-stitches'\nimport { SelectIcon as RadixSelectIcon } from '@radix-ui/react-select'\nimport {\n IconExclamationPointCircle,\n IconChevronDown,\n IconCheckMark,\n} from '@mirohq/design-system-icons'\n\nexport const StyledSelectIcon = styled(RadixSelectIcon, {\n flexShrink: 0,\n})\n\nexport const StyledIconExclamationPointCircle = styled(\n IconExclamationPointCircle,\n {\n color: '$icon-danger',\n }\n)\n\nexport const StyledIconCheckMark = styled(IconCheckMark, {\n color: '$icon-success',\n})\n\nexport const StyledIconChevronDown = styled(IconChevronDown, {\n color: '$icon-neutrals-text',\n})\n\nexport type StyledSelectIconProps = StrictComponentProps<\n typeof StyledSelectIcon\n>\n","import type { StrictComponentProps } from '@mirohq/design-system-stitches'\nimport { styled } from '@mirohq/design-system-stitches'\nimport { Trigger as RadixTrigger } from '@radix-ui/react-select'\nimport { focus } from '@mirohq/design-system-styles'\n\nimport { StyledSelectIcon } from './select-icon.styled'\n\nexport const StyledTrigger = styled(RadixTrigger, {\n all: 'unset',\n backgroundColor: '$background-neutrals-container',\n border: '1px solid $border-neutrals',\n borderRadius: '$50',\n boxSizing: 'border-box',\n color: '$text-neutrals',\n display: 'flex',\n minWidth: 0,\n fontSize: '$200',\n lineHeight: 1.5,\n position: 'relative',\n userSelect: 'none',\n width: '100%',\n justifyContent: 'space-between',\n alignItems: 'center',\n\n '&[data-placeholder]': {\n color: '$text-neutrals-subtle',\n },\n\n '&[data-invalid]': {\n borderColor: '$border-danger',\n },\n\n '&[data-valid]': {\n borderColor: '$border-success',\n },\n\n '&[data-focused], &[data-hovered]': {\n borderColor: '$border-neutrals',\n\n ...focus.css({\n boxShadow: '$focus-controls',\n outline: '1px solid transparent',\n }),\n },\n\n '&[data-invalid][data-focused]': {\n borderColor: '$border-danger',\n\n ...focus.css({\n boxShadow: '$focus-controls-error',\n }),\n },\n\n '&[data-valid][data-focused]': {\n borderColor: '$border-success',\n\n ...focus.css({\n boxShadow: '$focus-controls-success',\n }),\n },\n\n '&[data-hovered]': {\n borderColor: '$border-primary-hover',\n },\n\n '&[data-invalid][data-hovered]': {\n borderColor: '$border-danger-hover',\n },\n\n '&[data-valid][data-hovered]': {\n borderColor: '$border-success-hover',\n },\n\n '&:active, &[data-state=\"open\"]': {\n borderColor: '$border-primary-active',\n },\n\n '&:active[data-valid], &[data-state=\"open\"][data-valid]': {\n borderColor: '$border-success-active',\n },\n\n '&:active[data-invalid], &[data-state=\"open\"][data-invalid]': {\n borderColor: '$border-danger-active',\n },\n\n ...focus.css({\n boxShadow: '$focus-controls',\n outline: '1px solid transparent',\n }),\n\n '&[disabled], &[aria-disabled=\"true\"]': {\n backgroundColor: '$background-neutrals-disabled',\n borderColor: '$border-neutrals-disabled',\n color: '$text-neutrals-disabled',\n\n svg: {\n color: '$icon-neutrals-disabled',\n },\n },\n\n '&[data-state=\"open\"]': {\n [`& ${StyledSelectIcon}`]: {\n transform: 'rotate(180deg)',\n },\n },\n\n variants: {\n size: {\n large: {\n height: '$10',\n paddingX: '$100',\n gap: '$50',\n },\n 'x-large': {\n height: '$12',\n paddingX: '$150',\n gap: '$100',\n },\n },\n },\n})\n\nexport type StyledTriggerProps = StrictComponentProps<typeof StyledTrigger>\n","import { createContext, useContext, useState } from 'react'\nimport type { PropsWithChildren } from 'react'\nimport type { Booleanish } from '@mirohq/design-system-types'\n\nimport type { Direction } from '../types'\n\ninterface SelectValues {\n valid?: boolean\n ariaDisabled?: Booleanish\n direction?: Direction\n open?: boolean\n defaultOpen: boolean\n}\n\ninterface SelectContextProps {\n valid?: boolean\n ariaDisabled?: Booleanish\n direction?: Direction\n open?: boolean\n setOpenState: React.Dispatch<React.SetStateAction<boolean>>\n openState: boolean\n}\n\nconst SelectContext = createContext<SelectContextProps>({} as any)\n\nexport const SelectProvider = ({\n children,\n defaultOpen,\n ...restProps\n}: PropsWithChildren<SelectValues>): any => {\n const [openState, setOpenState] = useState(defaultOpen)\n return (\n <SelectContext.Provider\n value={{\n ...restProps,\n openState,\n setOpenState,\n }}\n >\n {children}\n </SelectContext.Provider>\n )\n}\n\nexport const useSelectContext = (): SelectContextProps =>\n useContext(SelectContext)\n","import React, { useState } from 'react'\nimport { booleanify } from '@mirohq/design-system-utils'\nimport { Trigger as RadixTrigger } from '@radix-ui/react-select'\nimport { useHover } from '@react-aria/interactions'\nimport type { HoverEvents } from '@react-types/shared'\nimport type { ElementRef, PointerEvent } from 'react'\n\nimport { StyledTrigger } from './trigger.styled'\nimport { useSelectContext } from '../hooks/use-select-context'\nimport {\n StyledSelectIcon,\n StyledIconExclamationPointCircle,\n StyledIconCheckMark,\n StyledIconChevronDown,\n} from './select-icon.styled'\nimport type { StyledTriggerProps } from './trigger.styled'\n\nexport interface TriggerProps extends StyledTriggerProps, HoverEvents {\n /**\n * The content.\n */\n children: React.ReactNode\n}\n\nconst SELECT_ICONS = {\n valid: StyledIconCheckMark,\n invalid: StyledIconExclamationPointCircle,\n default: StyledIconChevronDown,\n}\n\nexport const Trigger = React.forwardRef<\n ElementRef<typeof StyledTrigger>,\n TriggerProps\n>(\n (\n {\n onKeyDown,\n onPointerDown,\n onFocus,\n onBlur,\n children,\n size = 'large',\n asChild = false,\n onHoverChange,\n onHoverStart,\n onHoverEnd,\n ...restProps\n },\n forwardRef\n ) => {\n const { valid, ariaDisabled, open, openState } = useSelectContext()\n const isValid = valid === undefined ? undefined : valid\n const [focused, setFocused] = useState(false)\n const isOpen = open ?? openState\n\n const { hoverProps, isHovered: hovered } = 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 onPointerDown: (e: PointerEvent<HTMLButtonElement>) => {\n if (booleanify(ariaDisabled)) {\n e.preventDefault()\n } else {\n onPointerDown?.(e)\n }\n },\n onKeyDown: (e: React.KeyboardEvent<HTMLButtonElement>) => {\n if (\n booleanify(ariaDisabled) &&\n e.code !== 'Tab' &&\n e.code !== 'ArrowUp' &&\n e.code !== 'ArrowDown'\n ) {\n e.preventDefault()\n } else {\n onKeyDown?.(e)\n }\n },\n onFocus: (e: React.FocusEvent<HTMLButtonElement>) => {\n onFocus?.(e)\n setFocused(true)\n },\n onBlur: (e: React.FocusEvent<HTMLButtonElement>) => {\n onBlur?.(e)\n if (!isOpen) {\n setFocused(false)\n }\n },\n 'data-invalid': isValid === false ? '' : undefined,\n 'data-valid': isValid === true ? '' : undefined,\n 'data-focused': focused ? '' : undefined,\n 'data-hovered': hovered ? '' : undefined,\n }\n\n if (asChild) {\n return (\n <RadixTrigger {...commonProps} asChild>\n {children}\n </RadixTrigger>\n )\n }\n\n const SelectIcon =\n SELECT_ICONS[\n (open ?? openState) || isValid === undefined || hovered || focused\n ? 'default'\n : isValid\n ? 'valid'\n : 'invalid'\n ]\n\n return (\n <StyledTrigger {...hoverProps} {...commonProps} size={size}>\n {children}\n <StyledSelectIcon asChild>\n <SelectIcon size='small' weight='thin' />\n </StyledSelectIcon>\n </StyledTrigger>\n )\n }\n)\n","import { styled } from '@mirohq/design-system-stitches'\n\nexport const StyledValue = styled('span', {\n overflow: 'hidden',\n paddingX: '$50',\n\n '& span:first-child': {\n display: 'block',\n overflow: 'hidden',\n textOverflow: 'ellipsis',\n whiteSpace: 'nowrap',\n },\n})\n","import React from 'react'\nimport type { ElementRef } from 'react'\nimport { Value as RadixValue } from '@radix-ui/react-select'\nimport type { StrictComponentProps } from '@mirohq/design-system-stitches'\n\nimport { StyledValue } from './value.styled'\n\nexport type StyledValueProps = StrictComponentProps<typeof RadixValue>\n\nexport interface ValueProps extends StyledValueProps {\n /**\n * The content that will be rendered inside the Select.Value when no value or\n * defaultValue is set.\n */\n placeholder?: React.ReactNode\n\n /**\n * The controlled content that will be rendered inside the Select.Value.\n */\n children?: React.ReactNode\n}\n\nexport const Value = React.forwardRef<\n ElementRef<typeof StyledValue>,\n ValueProps\n>((props, forwardRef) => (\n <StyledValue>\n <RadixValue {...props} ref={forwardRef} />\n </StyledValue>\n))\n","import { Content as RadixContent } from '@radix-ui/react-select'\nimport { styled } from '@mirohq/design-system-stitches'\nimport type { StrictComponentProps } from '@mirohq/design-system-stitches'\nimport { Primitive } from '@mirohq/design-system-primitive'\n\nexport const StyledScrollContainer = styled(Primitive.div, {\n boxSizing: 'border-box',\n paddingInline: '0 6px',\n margin: '-2px 0 0',\n marginInline: '-2px 2px',\n})\n\nexport const StyledContent = styled(RadixContent, {\n backgroundColor: '$background-neutrals-container',\n borderRadius: '$50',\n boxShadow: '$50',\n fontSize: '$175',\n fontWeight: 'normal',\n lineHeight: '20px',\n minWidth: 'var(--radix-select-trigger-width)',\n padding: '$50',\n zIndex: '$select',\n\n '& [data-radix-select-viewport]': {\n padding: `$100`,\n boxSizing: 'border-box',\n margin: '-6px',\n },\n})\n\nexport type StyledContentProps = StrictComponentProps<typeof StyledContent>\n","import React, { useCallback } from 'react'\nimport type { ElementRef, ReactNode } from 'react'\nimport { ScrollArea } from '@mirohq/design-system-scroll-area'\nimport type { CSS, CSSProperties } from '@stitches/react'\nimport { Viewport as RadixViewport } from '@radix-ui/react-select'\nimport { theme } from '@mirohq/design-system-stitches'\n\nimport { StyledContent, StyledScrollContainer } from './content.styled'\nimport type { StyledContentProps } from './content.styled'\nimport type {\n Boundary,\n PointerDownOutsideEvent,\n Side,\n Align,\n Overflow,\n Sticky,\n} from '../types'\nimport { useSelectContext } from '../hooks/use-select-context'\n\nexport const CONTENT_OFFSET = parseInt(theme.space[50])\n\nexport interface ContentProps extends StyledContentProps {\n /**\n * Event handler called when focus moves to the trigger after closing. It can\n * be prevented by calling event.preventDefault.\n */\n onCloseAutoFocus?: (event: Event) => void\n\n /**\n * Event handler called when focus moves to the trigger after closing. It can\n * be prevented by calling event.preventDefault.\n */\n onEscapeKeyDown?: (event: KeyboardEvent) => void\n\n /**\n * Event handler called when a pointer event occurs outside the bounds of the\n * component. It can be prevented by calling event.preventDefault.\n */\n onPointerDownOutside?: (event: PointerDownOutsideEvent) => void\n\n /**\n * The preferred side of the anchor to render against when open. Will be\n * reversed when collisions occur and avoidCollisions is enabled. Only\n * available when position is set to popper.\n */\n side?: Side\n\n /**\n * The distance in pixels from the anchor. Only available when position is set\n * to popper.\n */\n sideOffset?: number\n\n /**\n * The preferred alignment against the anchor. May change when collisions\n * occur. Only available when position is set to popper.\n */\n align?: Align\n\n /**\n * An offset in pixels from the \"start\" or \"end\" alignment options. Only\n * available when position is set to popper.\n */\n alignOffset?: number\n\n /**\n * When true, overrides the side andalign preferences to prevent collisions\n * with boundary edges. Only available when position is set to popper.\n */\n avoidCollisions?: boolean\n\n /**\n * The element used as the collision boundary. By default this is the\n * viewport, though you can provide additional element(s) to be included in\n * this check. Only available when position is set to popper.\n */\n collisionBoundary?: Boundary\n\n /**\n * The distance in pixels from the boundary edges where collision detection\n * should occur. Accepts a number (same for all sides), or a partial padding\n * object, for example: { top: 20, left: 20 }. Only available when position is\n * set to popper.\n */\n collisionPadding?: number | Partial<Record<Side, number>>\n\n /**\n * The sticky behavior on the align axis. \"partial\" will keep the content in the\n * boundary as long as the trigger is at least partially in the boundary whilst\n * \"always\" will keep the content in the boundary regardless. Only available\n * when position is set to popper.\n */\n sticky?: Sticky\n\n /**\n * Whether to hide the content when the trigger becomes fully occluded. Only\n * available when position is set to popper.\n */\n hideWhenDetached?: boolean\n\n /**\n * The max height for the content.\n */\n maxHeight?: CSSProperties['maxHeight']\n\n /**\n * Setting overflow as \"visible\" means that the content can extend beyond the\n * its collision boundary without any clipping or scrolling being\n * applied.\n * When set to \"auto,\" a scrollbar is added if the content exceeds its\n * boundaries. If no maxHeight is defined, it will be automatically adjusted\n * to fit the remaining space between the trigger and the boundary edge.\n */\n overflow?: Overflow\n\n /**\n * Select's content.\n */\n children?: ReactNode\n}\n\nexport const Content = React.forwardRef<\n ElementRef<typeof StyledContent>,\n ContentProps\n>(\n (\n {\n side = 'bottom',\n sideOffset = CONTENT_OFFSET,\n align = 'center',\n alignOffset = 0,\n collisionPadding = 0,\n avoidCollisions = true,\n sticky = 'partial',\n hideWhenDetached = true,\n overflow = 'visible',\n maxHeight,\n children,\n ...restProps\n },\n forwardRef\n ) => {\n const { direction } = useSelectContext()\n const getOverflowMaxHeight = useCallback((): CSS => {\n const overflowMaxHeigh = `calc(var(--radix-select-content-available-height))`\n\n return {\n maxHeight: maxHeight ?? overflowMaxHeigh,\n }\n }, [maxHeight])\n return (\n <StyledContent\n {...restProps}\n ref={forwardRef}\n position='popper'\n side={side}\n sideOffset={sideOffset}\n align={align}\n alignOffset={alignOffset}\n avoidCollisions={avoidCollisions}\n collisionPadding={collisionPadding}\n sticky={sticky}\n hideWhenDetached={hideWhenDetached}\n >\n <RadixViewport>\n {overflow === 'auto' ? (\n <ScrollArea dir={direction} type='always'>\n <ScrollArea.Viewport css={getOverflowMaxHeight()}>\n <StyledScrollContainer>{children}</StyledScrollContainer>\n </ScrollArea.Viewport>\n <ScrollArea.Scrollbar orientation='vertical'>\n <ScrollArea.Thumb />\n </ScrollArea.Scrollbar>\n </ScrollArea>\n ) : (\n <>{children}</>\n )}\n </RadixViewport>\n </StyledContent>\n )\n }\n)\n","import { Label as RadixLabel } from '@radix-ui/react-select'\nimport { styled } from '@mirohq/design-system-stitches'\nimport type { StrictComponentProps } from '@mirohq/design-system-stitches'\n\nexport const StyledLabel = styled(RadixLabel, {\n color: '$text-neutrals-subtle',\n margin: '0 $400',\n padding: '6px 0',\n})\n\nexport type StyledLabelProps = StrictComponentProps<typeof StyledLabel>\n","import React from 'react'\nimport type { ElementRef } from 'react'\n\nimport { StyledLabel } from './label.styled'\nimport type { StyledLabelProps } from './label.styled'\n\nexport interface LabelProps extends StyledLabelProps {}\n\nexport const Label = React.forwardRef<\n ElementRef<typeof StyledLabel>,\n LabelProps\n>((props, forwardRef) => <StyledLabel {...props} ref={forwardRef} />)\n","import { Separator as RadixSeparator } from '@radix-ui/react-select'\nimport { styled } from '@mirohq/design-system-stitches'\nimport type { StrictComponentProps } from '@mirohq/design-system-stitches'\n\nexport const StyledSeparator = styled(RadixSeparator, {\n backgroundColor: '$border-neutrals-subtle',\n height: '1px',\n width: '100%',\n margin: '5.5px 0',\n})\n\nexport type StyledSeparatorProps = StrictComponentProps<typeof StyledSeparator>\n","import React from 'react'\nimport type { ElementRef } from 'react'\n\nimport { StyledSeparator } from './separator.styled'\nimport type { StyledSeparatorProps } from './separator.styled'\n\nexport interface SeparatorProps extends StyledSeparatorProps {}\n\nexport const Separator = React.forwardRef<\n ElementRef<typeof StyledSeparator>,\n SeparatorProps\n>((props, forwardRef) => <StyledSeparator {...props} ref={forwardRef} />)\n","import React from 'react'\nimport type { ElementRef, ForwardRefExoticComponent } from 'react'\nimport type { Booleanish } from '@mirohq/design-system-types'\n\nimport { StyledSelect } from './select.styled'\nimport { Group } from './partials/group'\nimport { Item } from './partials/item'\nimport { Portal } from './partials/portal'\nimport { Trigger } from './partials/trigger'\nimport { Value } from './partials/value'\nimport { Content } from './partials/content'\nimport { Label } from './partials/label'\nimport { Separator } from './partials/separator'\nimport { SelectProvider, useSelectContext } from './hooks/use-select-context'\nimport type { Direction } from './types'\nimport type { StyledSelectProps } from './select.styled'\n\nexport interface SelectProps\n extends Omit<StyledSelectProps, 'onOpenChange' | 'dir'> {\n /**\n * The value of the select when initially rendered. Use when you do not need\n * to control the state of the select.\n */\n defaultValue?: string\n\n /**\n * The controlled value of the select. 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 select when it is initially rendered. Use when you do\n * not need to control its open state.\n */\n defaultOpen?: boolean\n\n /**\n * The controlled open state of the select. Must be used in conjunction with\n * onOpen and onClose.\n */\n open?: boolean\n\n /**\n * Event handler called when the select opens.\n */\n onOpen?: () => void\n\n /**\n * Event handler called when the select closes.\n */\n onClose?: () => void\n\n /**\n * The reading direction of the select when applicable. If omitted, inherits\n * globally from DirectionProvider or assumes LTR (left-to-right) reading\n * mode.\n */\n direction?: Direction\n\n /**\n * The name of the select. Submitted with its owning form as part of a\n * name/value pair.\n */\n name?: string\n\n /**\n * When \"true\", prevents the user from interacting with select.\n */\n disabled?: boolean\n\n /**\n * When \"true\", prevents the user from opening with select, while allowing\n * focus and hover.\n */\n 'aria-disabled'?: Booleanish\n\n /**\n * When \"true\", indicates that the user must select a value before the owning\n * form can be submitted.\n */\n required?: boolean\n\n /**\n * When \"true\", this indicates that the input component is valid, and a\n * green state is displayed, allowing the form to be submitted.\n */\n valid?: boolean\n}\n\nconst Root = React.forwardRef<ElementRef<typeof StyledSelect>, SelectProps>(\n ({ disabled, onOpen, onClose, ...restProps }, forwardRef) => {\n const { ariaDisabled, direction, open, setOpenState, openState } =\n useSelectContext()\n\n return (\n <StyledSelect\n {...restProps}\n aria-disabled={ariaDisabled}\n dir={direction}\n disabled={disabled}\n open={open ?? openState}\n onOpenChange={newOpen => {\n if (open == null) {\n setOpenState(newOpen)\n }\n\n newOpen ? onOpen?.() : onClose?.()\n }}\n ref={forwardRef}\n />\n )\n }\n)\n\nexport const Select = React.forwardRef<\n ElementRef<typeof StyledSelect>,\n SelectProps\n>(\n (\n {\n 'aria-disabled': ariaDisabled,\n defaultOpen = false,\n direction = 'ltr',\n open,\n valid,\n ...restProps\n },\n forwardRef\n ) => (\n <SelectProvider\n ariaDisabled={ariaDisabled}\n defaultOpen={defaultOpen}\n direction={direction}\n open={open}\n valid={valid}\n >\n <Root open={open} {...restProps} ref={forwardRef} />\n </SelectProvider>\n )\n) as ForwardRefExoticComponent<SelectProps> & Partials\n\nexport interface Partials {\n Content: typeof Content\n Separator: typeof Separator\n Label: typeof Label\n Group: typeof Group\n Item: typeof Item\n Portal: typeof Portal\n Trigger: typeof Trigger\n Value: typeof Value\n}\n\nSelect.Group = Group\nSelect.Separator = Separator\nSelect.Content = Content\nSelect.Item = Item\nSelect.Portal = Portal\nSelect.Trigger = Trigger\nSelect.Value = Value\nSelect.Label = Label\n"],"names":["styled","RadixSelect","RadixGroup","React","jsx","RadixItem","focus","RadixItemIndicator","jsxs","booleanify","IconCheckMark","RadixItemText","RadixPortal","RadixSelectIcon","IconExclamationPointCircle","IconChevronDown","RadixTrigger","createContext","useState","useContext","useHover","RadixValue","Primitive","RadixContent","theme","useCallback","RadixViewport","ScrollArea","Fragment","RadixLabel","RadixSeparator"],"mappings":"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"}
package/dist/module.js CHANGED
@@ -1,14 +1,15 @@
1
1
  import { jsx, jsxs, Fragment } from 'react/jsx-runtime';
2
- import React, { createContext, useContext, useCallback, useState } from 'react';
2
+ import React, { createContext, useState, useContext, useCallback } from 'react';
3
3
  import { styled, theme } from '@mirohq/design-system-stitches';
4
- import { Root, Group as Group$1, Item as Item$1, ItemIndicator, ItemText, Portal as Portal$1, SelectIcon, Trigger as Trigger$1, Value as Value$1, Content as Content$1, Viewport, Label as Label$1, Separator as Separator$1 } from '@radix-ui/react-select';
5
- import { IconCheckMark, IconChevronDown } from '@mirohq/design-system-icons';
4
+ import { Root as Root$1, Group as Group$1, Item as Item$1, ItemIndicator, ItemText, Portal as Portal$1, SelectIcon, Trigger as Trigger$1, Value as Value$1, Content as Content$1, Viewport, Label as Label$1, Separator as Separator$1 } from '@radix-ui/react-select';
5
+ import { IconCheckMark, IconExclamationPointCircle, IconChevronDown } from '@mirohq/design-system-icons';
6
6
  import { booleanify } from '@mirohq/design-system-utils';
7
7
  import { focus } from '@mirohq/design-system-styles';
8
+ import { useHover } from '@react-aria/interactions';
8
9
  import { ScrollArea } from '@mirohq/design-system-scroll-area';
9
10
  import { Primitive } from '@mirohq/design-system-primitive';
10
11
 
11
- const StyledSelect = styled(Root);
12
+ const StyledSelect = styled(Root$1);
12
13
 
13
14
  const StyledGroup = styled(Group$1, {});
14
15
 
@@ -128,7 +129,21 @@ const StyledPortal = styled(Portal$1, {});
128
129
 
129
130
  const Portal = React.forwardRef((props, forwardRef) => /* @__PURE__ */ jsx(StyledPortal, { ...props, ref: forwardRef }));
130
131
 
131
- const StyledSelectIcon = styled(SelectIcon, { flexShrink: 0 });
132
+ const StyledSelectIcon = styled(SelectIcon, {
133
+ flexShrink: 0
134
+ });
135
+ const StyledIconExclamationPointCircle = styled(
136
+ IconExclamationPointCircle,
137
+ {
138
+ color: "$icon-danger"
139
+ }
140
+ );
141
+ const StyledIconCheckMark = styled(IconCheckMark, {
142
+ color: "$icon-success"
143
+ });
144
+ const StyledIconChevronDown = styled(IconChevronDown, {
145
+ color: "$icon-neutrals-text"
146
+ });
132
147
 
133
148
  const StyledTrigger = styled(Trigger$1, {
134
149
  all: "unset",
@@ -146,24 +161,52 @@ const StyledTrigger = styled(Trigger$1, {
146
161
  width: "100%",
147
162
  justifyContent: "space-between",
148
163
  alignItems: "center",
149
- svg: {
150
- color: "$icon-neutrals-text"
151
- },
152
164
  "&[data-placeholder]": {
153
165
  color: "$text-neutrals-subtle"
154
166
  },
155
167
  "&[data-invalid]": {
168
+ borderColor: "$border-danger"
169
+ },
170
+ "&[data-valid]": {
171
+ borderColor: "$border-success"
172
+ },
173
+ "&[data-focused], &[data-hovered]": {
174
+ borderColor: "$border-neutrals",
175
+ ...focus.css({
176
+ boxShadow: "$focus-controls",
177
+ outline: "1px solid transparent"
178
+ })
179
+ },
180
+ "&[data-invalid][data-focused]": {
156
181
  borderColor: "$border-danger",
157
182
  ...focus.css({
158
183
  boxShadow: "$focus-controls-error"
159
184
  })
160
185
  },
161
- "&:hover": {
186
+ "&[data-valid][data-focused]": {
187
+ borderColor: "$border-success",
188
+ ...focus.css({
189
+ boxShadow: "$focus-controls-success"
190
+ })
191
+ },
192
+ "&[data-hovered]": {
162
193
  borderColor: "$border-primary-hover"
163
194
  },
195
+ "&[data-invalid][data-hovered]": {
196
+ borderColor: "$border-danger-hover"
197
+ },
198
+ "&[data-valid][data-hovered]": {
199
+ borderColor: "$border-success-hover"
200
+ },
164
201
  '&:active, &[data-state="open"]': {
165
202
  borderColor: "$border-primary-active"
166
203
  },
204
+ '&:active[data-valid], &[data-state="open"][data-valid]': {
205
+ borderColor: "$border-success-active"
206
+ },
207
+ '&:active[data-invalid], &[data-state="open"][data-invalid]': {
208
+ borderColor: "$border-danger-active"
209
+ },
167
210
  ...focus.css({
168
211
  boxShadow: "$focus-controls",
169
212
  outline: "1px solid transparent"
@@ -183,12 +226,12 @@ const StyledTrigger = styled(Trigger$1, {
183
226
  },
184
227
  variants: {
185
228
  size: {
186
- medium: {
229
+ large: {
187
230
  height: "$10",
188
231
  paddingX: "$100",
189
232
  gap: "$50"
190
233
  },
191
- large: {
234
+ "x-large": {
192
235
  height: "$12",
193
236
  paddingX: "$150",
194
237
  gap: "$100"
@@ -200,32 +243,54 @@ const StyledTrigger = styled(Trigger$1, {
200
243
  const SelectContext = createContext({});
201
244
  const SelectProvider = ({
202
245
  children,
203
- invalid,
204
- ariaDisabled,
205
- direction
206
- }) => /* @__PURE__ */ jsx(
207
- SelectContext.Provider,
208
- {
209
- value: {
210
- invalid,
211
- ariaDisabled,
212
- direction
213
- },
214
- children
215
- }
216
- );
246
+ defaultOpen,
247
+ ...restProps
248
+ }) => {
249
+ const [openState, setOpenState] = useState(defaultOpen);
250
+ return /* @__PURE__ */ jsx(
251
+ SelectContext.Provider,
252
+ {
253
+ value: {
254
+ ...restProps,
255
+ openState,
256
+ setOpenState
257
+ },
258
+ children
259
+ }
260
+ );
261
+ };
217
262
  const useSelectContext = () => useContext(SelectContext);
218
263
 
264
+ const SELECT_ICONS = {
265
+ valid: StyledIconCheckMark,
266
+ invalid: StyledIconExclamationPointCircle,
267
+ default: StyledIconChevronDown
268
+ };
219
269
  const Trigger = React.forwardRef(
220
270
  ({
221
271
  onKeyDown,
222
272
  onPointerDown,
273
+ onFocus,
274
+ onBlur,
223
275
  children,
224
- size = "medium",
276
+ size = "large",
225
277
  asChild = false,
278
+ onHoverChange,
279
+ onHoverStart,
280
+ onHoverEnd,
226
281
  ...restProps
227
282
  }, forwardRef) => {
228
- const { invalid, ariaDisabled } = useSelectContext();
283
+ const { valid, ariaDisabled, open, openState } = useSelectContext();
284
+ const isValid = valid === void 0 ? void 0 : valid;
285
+ const [focused, setFocused] = useState(false);
286
+ const isOpen = open != null ? open : openState;
287
+ const { hoverProps, isHovered: hovered } = useHover({
288
+ onHoverStart,
289
+ onHoverEnd,
290
+ onHoverChange: (isHovering) => {
291
+ onHoverChange == null ? void 0 : onHoverChange(isHovering);
292
+ }
293
+ });
229
294
  const commonProps = {
230
295
  ...restProps,
231
296
  ref: forwardRef,
@@ -244,14 +309,28 @@ const Trigger = React.forwardRef(
244
309
  onKeyDown == null ? void 0 : onKeyDown(e);
245
310
  }
246
311
  },
247
- "data-invalid": invalid ? "" : void 0
312
+ onFocus: (e) => {
313
+ onFocus == null ? void 0 : onFocus(e);
314
+ setFocused(true);
315
+ },
316
+ onBlur: (e) => {
317
+ onBlur == null ? void 0 : onBlur(e);
318
+ if (!isOpen) {
319
+ setFocused(false);
320
+ }
321
+ },
322
+ "data-invalid": isValid === false ? "" : void 0,
323
+ "data-valid": isValid === true ? "" : void 0,
324
+ "data-focused": focused ? "" : void 0,
325
+ "data-hovered": hovered ? "" : void 0
248
326
  };
249
327
  if (asChild) {
250
328
  return /* @__PURE__ */ jsx(Trigger$1, { ...commonProps, asChild: true, children });
251
329
  }
252
- return /* @__PURE__ */ jsxs(StyledTrigger, { ...commonProps, size, children: [
330
+ const SelectIcon = SELECT_ICONS[(open != null ? open : openState) || isValid === void 0 || hovered || focused ? "default" : isValid ? "valid" : "invalid"];
331
+ return /* @__PURE__ */ jsxs(StyledTrigger, { ...hoverProps, ...commonProps, size, children: [
253
332
  children,
254
- /* @__PURE__ */ jsx(StyledSelectIcon, { asChild: true, children: /* @__PURE__ */ jsx(IconChevronDown, { size: "small", weight: "thin" }) })
333
+ /* @__PURE__ */ jsx(StyledSelectIcon, { asChild: true, children: /* @__PURE__ */ jsx(SelectIcon, { size: "small", weight: "thin" }) })
255
334
  ] });
256
335
  }
257
336
  );
@@ -355,46 +434,48 @@ const StyledSeparator = styled(Separator$1, {
355
434
 
356
435
  const Separator = React.forwardRef((props, forwardRef) => /* @__PURE__ */ jsx(StyledSeparator, { ...props, ref: forwardRef }));
357
436
 
358
- const Select = React.forwardRef(
359
- ({
360
- defaultOpen = false,
361
- direction = "ltr",
362
- open,
363
- onOpen,
364
- onClose,
365
- invalid = false,
366
- "aria-disabled": ariaDisabled,
367
- disabled,
368
- ...restProps
369
- }, forwardRef) => {
370
- const [openState, setOpenState] = useState(defaultOpen);
437
+ const Root = React.forwardRef(
438
+ ({ disabled, onOpen, onClose, ...restProps }, forwardRef) => {
439
+ const { ariaDisabled, direction, open, setOpenState, openState } = useSelectContext();
371
440
  return /* @__PURE__ */ jsx(
372
- SelectProvider,
441
+ StyledSelect,
373
442
  {
374
- direction,
375
- invalid,
376
- ariaDisabled,
377
- children: /* @__PURE__ */ jsx(
378
- StyledSelect,
379
- {
380
- ...restProps,
381
- "aria-disabled": ariaDisabled,
382
- disabled,
383
- dir: direction,
384
- open: open != null ? open : openState,
385
- onOpenChange: (newOpen) => {
386
- if (open == null) {
387
- setOpenState(newOpen);
388
- }
389
- newOpen ? onOpen == null ? void 0 : onOpen() : onClose == null ? void 0 : onClose();
390
- },
391
- ref: forwardRef
443
+ ...restProps,
444
+ "aria-disabled": ariaDisabled,
445
+ dir: direction,
446
+ disabled,
447
+ open: open != null ? open : openState,
448
+ onOpenChange: (newOpen) => {
449
+ if (open == null) {
450
+ setOpenState(newOpen);
392
451
  }
393
- )
452
+ newOpen ? onOpen == null ? void 0 : onOpen() : onClose == null ? void 0 : onClose();
453
+ },
454
+ ref: forwardRef
394
455
  }
395
456
  );
396
457
  }
397
458
  );
459
+ const Select = React.forwardRef(
460
+ ({
461
+ "aria-disabled": ariaDisabled,
462
+ defaultOpen = false,
463
+ direction = "ltr",
464
+ open,
465
+ valid,
466
+ ...restProps
467
+ }, forwardRef) => /* @__PURE__ */ jsx(
468
+ SelectProvider,
469
+ {
470
+ ariaDisabled,
471
+ defaultOpen,
472
+ direction,
473
+ open,
474
+ valid,
475
+ children: /* @__PURE__ */ jsx(Root, { open, ...restProps, ref: forwardRef })
476
+ }
477
+ )
478
+ );
398
479
  Select.Group = Group;
399
480
  Select.Separator = Separator;
400
481
  Select.Content = Content;
@@ -1 +1 @@
1
- {"version":3,"file":"module.js","sources":["../src/select.styled.tsx","../src/partials/group.styled.tsx","../src/partials/group.tsx","../src/partials/item.styled.tsx","../src/partials/item-text.styled.tsx","../src/partials/item-indicator.styled.tsx","../src/partials/item.tsx","../src/partials/portal.styled.tsx","../src/partials/portal.tsx","../src/partials/select-icon.styled.tsx","../src/partials/trigger.styled.tsx","../src/hooks/use-select-context.tsx","../src/partials/trigger.tsx","../src/partials/value.styled.tsx","../src/partials/value.tsx","../src/partials/content.styled.tsx","../src/partials/content.tsx","../src/partials/label.styled.tsx","../src/partials/label.tsx","../src/partials/separator.styled.tsx","../src/partials/separator.tsx","../src/select.tsx"],"sourcesContent":["import type { ComponentPropsWithRef } from 'react'\nimport { styled } from '@mirohq/design-system-stitches'\nimport { Root as RadixSelect } from '@radix-ui/react-select'\n\nexport const StyledSelect = styled(RadixSelect)\n\nexport type StyledSelectProps = ComponentPropsWithRef<typeof StyledSelect>\n","import { Group as RadixGroup } from '@radix-ui/react-select'\nimport { styled } from '@mirohq/design-system-stitches'\nimport type { StrictComponentProps } from '@mirohq/design-system-stitches'\n\nexport const StyledGroup = styled(RadixGroup, {})\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 { Item as RadixItem } from '@radix-ui/react-select'\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(RadixItem, {\n all: 'unset',\n borderRadius: '$50',\n boxSizing: 'border-box',\n color: '$text-neutrals',\n cursor: 'pointer',\n display: 'grid',\n fontSize: '$175',\n gridTemplateAreas: 'leftSlot textItem',\n gridTemplateColumns: '20px 1fr',\n lineHeight: '20px',\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 '&[aria-selected=true]': {\n color: '$text-primary-selected',\n },\n\n '&:active:not([aria-disabled=true])': {\n background: '$background-primary-subtle-active',\n boxShadow: 'none',\n color: '$text-primary-active',\n },\n\n '&:disabled, &[aria-disabled=true], &[data-disabled]': {\n cursor: 'default',\n color: '$text-neutrals-disabled',\n },\n\n '&:disabled, &[data-disabled]': {\n pointerEvents: 'none',\n },\n\n '&:hover:not([aria-disabled=true])': {\n background: '$background-primary-subtle-hover',\n color: '$text-primary-hover',\n '&:not([aria-disabled=true])': {\n boxShadow: 'none',\n },\n },\n\n '&[data-state=\"checked\"]': {\n color: '$text-primary-selected',\n },\n})\n\nexport type StyledItemProps = StrictComponentProps<typeof StyledItem>\n","import { styled } from '@mirohq/design-system-stitches'\nimport type { StrictComponentProps } from '@mirohq/design-system-stitches'\n\nexport const StyledItemText = styled('span', {\n display: 'flex',\n gridColumn: 2,\n width: '100%',\n})\n\nexport type StyledItemProps = StrictComponentProps<typeof StyledItemText>\n","import { ItemIndicator as RadixItemIndicator } from '@radix-ui/react-select'\nimport { styled } from '@mirohq/design-system-stitches'\nimport type { StrictComponentProps } from '@mirohq/design-system-stitches'\n\nexport const StyledItemIndicator = styled(RadixItemIndicator, {})\n\nexport type StyledItemIndicatorProps = StrictComponentProps<\n typeof StyledItemIndicator\n>\n","import React from 'react'\nimport type { ElementRef } from 'react'\nimport { IconCheckMark } from '@mirohq/design-system-icons'\nimport { ItemText as RadixItemText } from '@radix-ui/react-select'\nimport { booleanify } from '@mirohq/design-system-utils'\n\nimport { StyledItem } from './item.styled'\nimport type { StyledItemProps } from './item.styled'\nimport { StyledItemText } from './item-text.styled'\nimport { StyledItemIndicator } from './item-indicator.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 */\n disabled?: boolean\n\n /**\n * Optional text used for typeahead purposes. By default the typeahead\n * behavior will use the Select'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 (\n {\n disabled = false,\n textValue,\n 'aria-disabled': ariaDisabled,\n onKeyDown,\n onPointerUp,\n onPointerMove,\n onPointerLeave,\n children,\n ...restProps\n },\n forwardRef\n ) => (\n <StyledItem\n {...restProps}\n aria-disabled={booleanify(ariaDisabled) ? ariaDisabled : undefined}\n onKeyDown={e => {\n if (\n booleanify(ariaDisabled) &&\n e.code !== 'ArrowUp' &&\n e.code !== 'ArrowDown' &&\n e.code !== 'Escape'\n ) {\n e.preventDefault()\n e.stopPropagation()\n return\n }\n\n onKeyDown?.(e)\n }}\n onPointerUp={e => {\n if (booleanify(ariaDisabled)) {\n e.preventDefault()\n return\n }\n\n onPointerUp?.(e)\n }}\n onPointerMove={e => {\n if (booleanify(ariaDisabled)) {\n e.preventDefault()\n return\n }\n\n onPointerMove?.(e)\n }}\n onPointerLeave={e => {\n if (booleanify(ariaDisabled)) {\n e.preventDefault()\n return\n }\n\n onPointerLeave?.(e)\n }}\n textValue={textValue}\n disabled={disabled}\n ref={forwardRef}\n >\n <StyledItemIndicator>\n <IconCheckMark size='small' />\n </StyledItemIndicator>\n <RadixItemText asChild>\n <StyledItemText>{children}</StyledItemText>\n </RadixItemText>\n </StyledItem>\n )\n)\n","import { Portal as RadixPortal } from '@radix-ui/react-select'\nimport { styled } from '@mirohq/design-system-stitches'\nimport type { StrictComponentProps } from '@mirohq/design-system-stitches'\n\nexport const StyledPortal = styled(RadixPortal, {})\n\nexport type StyledPortalProps = StrictComponentProps<typeof StyledPortal>\n","import React from 'react'\nimport type { ElementRef } from 'react'\n\nimport { StyledPortal } from './portal.styled'\nimport type { StyledPortalProps } from './portal.styled'\n\nexport interface PortalProps extends StyledPortalProps {\n /**\n * Specify a container element to portal the content into.\n */\n container?: HTMLElement | null\n}\n\nexport const Portal = React.forwardRef<\n ElementRef<typeof StyledPortal>,\n PortalProps\n>((props, forwardRef) => <StyledPortal {...props} ref={forwardRef} />)\n","import type { StrictComponentProps } from '@mirohq/design-system-stitches'\nimport { styled } from '@mirohq/design-system-stitches'\nimport { SelectIcon as RadixSelectIcon } from '@radix-ui/react-select'\n\nexport const StyledSelectIcon = styled(RadixSelectIcon, { flexShrink: 0 })\n\nexport type StyledSelectIconProps = StrictComponentProps<\n typeof StyledSelectIcon\n>\n","import type { StrictComponentProps } from '@mirohq/design-system-stitches'\nimport { styled } from '@mirohq/design-system-stitches'\nimport { Trigger as RadixTrigger } from '@radix-ui/react-select'\nimport { focus } from '@mirohq/design-system-styles'\n\nimport { StyledSelectIcon } from './select-icon.styled'\n\nexport const StyledTrigger = styled(RadixTrigger, {\n all: 'unset',\n backgroundColor: '$background-neutrals-container',\n border: '1px solid $border-neutrals',\n borderRadius: '$50',\n boxSizing: 'border-box',\n color: '$text-neutrals',\n display: 'flex',\n minWidth: 0,\n fontSize: '$200',\n lineHeight: 1.5,\n position: 'relative',\n userSelect: 'none',\n width: '100%',\n justifyContent: 'space-between',\n alignItems: 'center',\n\n svg: {\n color: '$icon-neutrals-text',\n },\n\n '&[data-placeholder]': {\n color: '$text-neutrals-subtle',\n },\n\n '&[data-invalid]': {\n borderColor: '$border-danger',\n\n ...focus.css({\n boxShadow: '$focus-controls-error',\n }),\n },\n\n '&:hover': {\n borderColor: '$border-primary-hover',\n },\n\n '&:active, &[data-state=\"open\"]': {\n borderColor: '$border-primary-active',\n },\n\n ...focus.css({\n boxShadow: '$focus-controls',\n outline: '1px solid transparent',\n }),\n\n '&[disabled], &[aria-disabled=\"true\"]': {\n backgroundColor: '$background-neutrals-disabled',\n borderColor: '$border-neutrals-disabled',\n color: '$text-neutrals-disabled',\n\n svg: {\n color: '$icon-neutrals-disabled',\n },\n },\n\n '&[data-state=\"open\"]': {\n [`& ${StyledSelectIcon}`]: {\n transform: 'rotate(180deg)',\n },\n },\n\n variants: {\n size: {\n medium: {\n height: '$10',\n paddingX: '$100',\n gap: '$50',\n },\n large: {\n height: '$12',\n paddingX: '$150',\n gap: '$100',\n },\n },\n },\n})\n\nexport type StyledTriggerProps = StrictComponentProps<typeof StyledTrigger>\n","import { createContext, useContext } from 'react'\nimport type { PropsWithChildren } from 'react'\nimport type { Booleanish } from '@mirohq/design-system-types'\n\nimport type { Direction } from '../types'\n\ninterface SelectValues {\n invalid: boolean\n ariaDisabled?: Booleanish\n direction?: Direction\n}\n\ninterface SelectContextProps {\n invalid: boolean\n ariaDisabled?: Booleanish\n direction?: Direction\n}\n\nconst SelectContext = createContext<SelectContextProps>({} as any)\n\nexport const SelectProvider = ({\n children,\n invalid,\n ariaDisabled,\n direction,\n}: PropsWithChildren<SelectValues>): any => (\n <SelectContext.Provider\n value={{\n invalid,\n ariaDisabled,\n direction,\n }}\n >\n {children}\n </SelectContext.Provider>\n)\n\nexport const useSelectContext = (): SelectContextProps =>\n useContext(SelectContext)\n","import React from 'react'\nimport type { ElementRef, PointerEvent } from 'react'\nimport { IconChevronDown } from '@mirohq/design-system-icons'\nimport { booleanify } from '@mirohq/design-system-utils'\nimport { Trigger as RadixTrigger } from '@radix-ui/react-select'\n\nimport { StyledTrigger } from './trigger.styled'\nimport type { StyledTriggerProps } from './trigger.styled'\nimport { useSelectContext } from '../hooks/use-select-context'\nimport { StyledSelectIcon } from './select-icon.styled'\n\nexport interface TriggerProps extends StyledTriggerProps {\n /**\n * The content.\n */\n children: React.ReactNode\n}\n\nexport const Trigger = React.forwardRef<\n ElementRef<typeof StyledTrigger>,\n TriggerProps\n>(\n (\n {\n onKeyDown,\n onPointerDown,\n children,\n size = 'medium',\n asChild = false,\n ...restProps\n },\n forwardRef\n ) => {\n const { invalid, ariaDisabled } = useSelectContext()\n\n const commonProps = {\n ...restProps,\n ref: forwardRef,\n 'aria-disabled': ariaDisabled,\n onPointerDown: (e: PointerEvent<HTMLButtonElement>) => {\n if (booleanify(ariaDisabled)) {\n e.preventDefault()\n } else {\n onPointerDown?.(e)\n }\n },\n onKeyDown: (e: React.KeyboardEvent<HTMLButtonElement>) => {\n if (\n booleanify(ariaDisabled) &&\n e.code !== 'Tab' &&\n e.code !== 'ArrowUp' &&\n e.code !== 'ArrowDown'\n ) {\n e.preventDefault()\n } else {\n onKeyDown?.(e)\n }\n },\n 'data-invalid': invalid ? '' : undefined,\n }\n\n if (asChild) {\n return (\n <RadixTrigger {...commonProps} asChild>\n {children}\n </RadixTrigger>\n )\n }\n\n return (\n <StyledTrigger {...commonProps} size={size}>\n {children}\n <StyledSelectIcon asChild>\n <IconChevronDown size='small' weight='thin' />\n </StyledSelectIcon>\n </StyledTrigger>\n )\n }\n)\n","import { styled } from '@mirohq/design-system-stitches'\n\nexport const StyledValue = styled('span', {\n overflow: 'hidden',\n paddingX: '$50',\n\n '& span:first-child': {\n display: 'block',\n overflow: 'hidden',\n textOverflow: 'ellipsis',\n whiteSpace: 'nowrap',\n },\n})\n","import React from 'react'\nimport type { ElementRef } from 'react'\nimport { Value as RadixValue } from '@radix-ui/react-select'\nimport type { StrictComponentProps } from '@mirohq/design-system-stitches'\n\nimport { StyledValue } from './value.styled'\n\nexport type StyledValueProps = StrictComponentProps<typeof RadixValue>\n\nexport interface ValueProps extends StyledValueProps {\n /**\n * The content that will be rendered inside the Select.Value when no value or\n * defaultValue is set.\n */\n placeholder?: React.ReactNode\n\n /**\n * The controlled content that will be rendered inside the Select.Value.\n */\n children?: React.ReactNode\n}\n\nexport const Value = React.forwardRef<\n ElementRef<typeof StyledValue>,\n ValueProps\n>((props, forwardRef) => (\n <StyledValue>\n <RadixValue {...props} ref={forwardRef} />\n </StyledValue>\n))\n","import { Content as RadixContent } from '@radix-ui/react-select'\nimport { styled } from '@mirohq/design-system-stitches'\nimport type { StrictComponentProps } from '@mirohq/design-system-stitches'\nimport { Primitive } from '@mirohq/design-system-primitive'\n\nexport const StyledScrollContainer = styled(Primitive.div, {\n boxSizing: 'border-box',\n paddingInline: '0 6px',\n margin: '-2px 0 0',\n marginInline: '-2px 2px',\n})\n\nexport const StyledContent = styled(RadixContent, {\n backgroundColor: '$background-neutrals-container',\n borderRadius: '$50',\n boxShadow: '$50',\n fontSize: '$175',\n fontWeight: 'normal',\n lineHeight: '20px',\n minWidth: 'var(--radix-select-trigger-width)',\n padding: '$50',\n zIndex: '$select',\n\n '& [data-radix-select-viewport]': {\n padding: `$100`,\n boxSizing: 'border-box',\n margin: '-6px',\n },\n})\n\nexport type StyledContentProps = StrictComponentProps<typeof StyledContent>\n","import React, { useCallback } from 'react'\nimport type { ElementRef, ReactNode } from 'react'\nimport { ScrollArea } from '@mirohq/design-system-scroll-area'\nimport type { CSS, CSSProperties } from '@stitches/react'\nimport { Viewport as RadixViewport } from '@radix-ui/react-select'\nimport { theme } from '@mirohq/design-system-stitches'\n\nimport { StyledContent, StyledScrollContainer } from './content.styled'\nimport type { StyledContentProps } from './content.styled'\nimport type {\n Boundary,\n PointerDownOutsideEvent,\n Side,\n Align,\n Overflow,\n Sticky,\n} from '../types'\nimport { useSelectContext } from '../hooks/use-select-context'\n\nexport const CONTENT_OFFSET = parseInt(theme.space[50])\n\nexport interface ContentProps extends StyledContentProps {\n /**\n * Event handler called when focus moves to the trigger after closing. It can\n * be prevented by calling event.preventDefault.\n */\n onCloseAutoFocus?: (event: Event) => void\n\n /**\n * Event handler called when focus moves to the trigger after closing. It can\n * be prevented by calling event.preventDefault.\n */\n onEscapeKeyDown?: (event: KeyboardEvent) => void\n\n /**\n * Event handler called when a pointer event occurs outside the bounds of the\n * component. It can be prevented by calling event.preventDefault.\n */\n onPointerDownOutside?: (event: PointerDownOutsideEvent) => void\n\n /**\n * The preferred side of the anchor to render against when open. Will be\n * reversed when collisions occur and avoidCollisions is enabled. Only\n * available when position is set to popper.\n */\n side?: Side\n\n /**\n * The distance in pixels from the anchor. Only available when position is set\n * to popper.\n */\n sideOffset?: number\n\n /**\n * The preferred alignment against the anchor. May change when collisions\n * occur. Only available when position is set to popper.\n */\n align?: Align\n\n /**\n * An offset in pixels from the \"start\" or \"end\" alignment options. Only\n * available when position is set to popper.\n */\n alignOffset?: number\n\n /**\n * When true, overrides the side andalign preferences to prevent collisions\n * with boundary edges. Only available when position is set to popper.\n */\n avoidCollisions?: boolean\n\n /**\n * The element used as the collision boundary. By default this is the\n * viewport, though you can provide additional element(s) to be included in\n * this check. Only available when position is set to popper.\n */\n collisionBoundary?: Boundary\n\n /**\n * The distance in pixels from the boundary edges where collision detection\n * should occur. Accepts a number (same for all sides), or a partial padding\n * object, for example: { top: 20, left: 20 }. Only available when position is\n * set to popper.\n */\n collisionPadding?: number | Partial<Record<Side, number>>\n\n /**\n * The sticky behavior on the align axis. \"partial\" will keep the content in the\n * boundary as long as the trigger is at least partially in the boundary whilst\n * \"always\" will keep the content in the boundary regardless. Only available\n * when position is set to popper.\n */\n sticky?: Sticky\n\n /**\n * Whether to hide the content when the trigger becomes fully occluded. Only\n * available when position is set to popper.\n */\n hideWhenDetached?: boolean\n\n /**\n * The max height for the content.\n */\n maxHeight?: CSSProperties['maxHeight']\n\n /**\n * Setting overflow as \"visible\" means that the content can extend beyond the\n * its collision boundary without any clipping or scrolling being\n * applied.\n * When set to \"auto,\" a scrollbar is added if the content exceeds its\n * boundaries. If no maxHeight is defined, it will be automatically adjusted\n * to fit the remaining space between the trigger and the boundary edge.\n */\n overflow?: Overflow\n\n /**\n * Select's content.\n */\n children?: ReactNode\n}\n\nexport const Content = React.forwardRef<\n ElementRef<typeof StyledContent>,\n ContentProps\n>(\n (\n {\n side = 'bottom',\n sideOffset = CONTENT_OFFSET,\n align = 'center',\n alignOffset = 0,\n collisionPadding = 0,\n avoidCollisions = true,\n sticky = 'partial',\n hideWhenDetached = true,\n overflow = 'visible',\n maxHeight,\n children,\n ...restProps\n },\n forwardRef\n ) => {\n const { direction } = useSelectContext()\n const getOverflowMaxHeight = useCallback((): CSS => {\n const overflowMaxHeigh = `calc(var(--radix-select-content-available-height))`\n\n return {\n maxHeight: maxHeight ?? overflowMaxHeigh,\n }\n }, [maxHeight])\n return (\n <StyledContent\n {...restProps}\n ref={forwardRef}\n position='popper'\n side={side}\n sideOffset={sideOffset}\n align={align}\n alignOffset={alignOffset}\n avoidCollisions={avoidCollisions}\n collisionPadding={collisionPadding}\n sticky={sticky}\n hideWhenDetached={hideWhenDetached}\n >\n <RadixViewport>\n {overflow === 'auto' ? (\n <ScrollArea dir={direction} type='always'>\n <ScrollArea.Viewport css={getOverflowMaxHeight()}>\n <StyledScrollContainer>{children}</StyledScrollContainer>\n </ScrollArea.Viewport>\n <ScrollArea.Scrollbar orientation='vertical'>\n <ScrollArea.Thumb />\n </ScrollArea.Scrollbar>\n </ScrollArea>\n ) : (\n <>{children}</>\n )}\n </RadixViewport>\n </StyledContent>\n )\n }\n)\n","import { Label as RadixLabel } from '@radix-ui/react-select'\nimport { styled } from '@mirohq/design-system-stitches'\nimport type { StrictComponentProps } from '@mirohq/design-system-stitches'\n\nexport const StyledLabel = styled(RadixLabel, {\n color: '$text-neutrals-subtle',\n margin: '0 $400',\n padding: '6px 0',\n})\n\nexport type StyledLabelProps = StrictComponentProps<typeof StyledLabel>\n","import React from 'react'\nimport type { ElementRef } from 'react'\n\nimport { StyledLabel } from './label.styled'\nimport type { StyledLabelProps } from './label.styled'\n\nexport interface LabelProps extends StyledLabelProps {}\n\nexport const Label = React.forwardRef<\n ElementRef<typeof StyledLabel>,\n LabelProps\n>((props, forwardRef) => <StyledLabel {...props} ref={forwardRef} />)\n","import { Separator as RadixSeparator } from '@radix-ui/react-select'\nimport { styled } from '@mirohq/design-system-stitches'\nimport type { StrictComponentProps } from '@mirohq/design-system-stitches'\n\nexport const StyledSeparator = styled(RadixSeparator, {\n backgroundColor: '$border-neutrals-subtle',\n height: '1px',\n width: '100%',\n margin: '5.5px 0',\n})\n\nexport type StyledSeparatorProps = StrictComponentProps<typeof StyledSeparator>\n","import React from 'react'\nimport type { ElementRef } from 'react'\n\nimport { StyledSeparator } from './separator.styled'\nimport type { StyledSeparatorProps } from './separator.styled'\n\nexport interface SeparatorProps extends StyledSeparatorProps {}\n\nexport const Separator = React.forwardRef<\n ElementRef<typeof StyledSeparator>,\n SeparatorProps\n>((props, forwardRef) => <StyledSeparator {...props} ref={forwardRef} />)\n","import React, { useState } from 'react'\nimport type { ElementRef, ForwardRefExoticComponent } from 'react'\nimport type { Booleanish } from '@mirohq/design-system-types'\n\nimport { StyledSelect } from './select.styled'\nimport { Group } from './partials/group'\nimport { Item } from './partials/item'\nimport { Portal } from './partials/portal'\nimport { Trigger } from './partials/trigger'\nimport { Value } from './partials/value'\nimport { Content } from './partials/content'\nimport { Label } from './partials/label'\nimport { Separator } from './partials/separator'\nimport { SelectProvider } from './hooks/use-select-context'\nimport type { Direction } from './types'\nimport type { StyledSelectProps } from './select.styled'\n\nexport interface SelectProps\n extends Omit<StyledSelectProps, 'onOpenChange' | 'dir'> {\n /**\n * The value of the select when initially rendered. Use when you do not need\n * to control the state of the select.\n */\n defaultValue?: string\n\n /**\n * The controlled value of the select. 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 select when it is initially rendered. Use when you do\n * not need to control its open state.\n */\n defaultOpen?: boolean\n\n /**\n * The controlled open state of the select. Must be used in conjunction with\n * onOpen and onClose.\n */\n open?: boolean\n\n /**\n * Event handler called when the select opens.\n */\n onOpen?: () => void\n\n /**\n * Event handler called when the select closes.\n */\n onClose?: () => void\n\n /**\n * The reading direction of the select when applicable. If omitted, inherits\n * globally from DirectionProvider or assumes LTR (left-to-right) reading\n * mode.\n */\n direction?: Direction\n\n /**\n * The name of the select. Submitted with its owning form as part of a\n * name/value pair.\n */\n name?: string\n\n /**\n * When true, prevents the user from interacting with select.\n */\n disabled?: boolean\n\n /**\n * When true, prevents the user from opening with select, while allowing focus and hover.\n */\n 'aria-disabled'?: Booleanish\n\n /**\n * When true, indicates that the user must select a value before the owning\n * form can be submitted.\n */\n required?: boolean\n\n /**\n * When true, indicates that the select value contains an error which have to be fixed before the owning\n * form can be submitted.\n */\n invalid?: boolean\n}\n\nexport const Select = React.forwardRef<\n ElementRef<typeof StyledSelect>,\n SelectProps\n>(\n (\n {\n defaultOpen = false,\n direction = 'ltr',\n open,\n onOpen,\n onClose,\n invalid = false,\n 'aria-disabled': ariaDisabled,\n disabled,\n ...restProps\n },\n forwardRef\n ) => {\n const [openState, setOpenState] = useState(defaultOpen)\n return (\n <SelectProvider\n direction={direction}\n invalid={invalid}\n ariaDisabled={ariaDisabled}\n >\n <StyledSelect\n {...restProps}\n aria-disabled={ariaDisabled}\n disabled={disabled}\n dir={direction}\n open={open ?? openState}\n onOpenChange={newOpen => {\n if (open == null) {\n setOpenState(newOpen)\n }\n\n newOpen ? onOpen?.() : onClose?.()\n }}\n ref={forwardRef}\n />\n </SelectProvider>\n )\n }\n) as ForwardRefExoticComponent<SelectProps> & Partials\n\nexport interface Partials {\n Content: typeof Content\n Separator: typeof Separator\n Label: typeof Label\n Group: typeof Group\n Item: typeof Item\n Portal: typeof Portal\n Trigger: typeof Trigger\n Value: typeof Value\n}\n\nSelect.Group = Group\nSelect.Separator = Separator\nSelect.Content = Content\nSelect.Item = Item\nSelect.Portal = Portal\nSelect.Trigger = Trigger\nSelect.Value = Value\nSelect.Label = Label\n"],"names":["RadixSelect","RadixGroup","RadixItem","RadixItemIndicator","RadixItemText","RadixPortal","RadixSelectIcon","RadixTrigger","RadixValue","RadixContent","RadixViewport","RadixLabel","RadixSeparator"],"mappings":"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"}
1
+ {"version":3,"file":"module.js","sources":["../src/select.styled.tsx","../src/partials/group.styled.tsx","../src/partials/group.tsx","../src/partials/item.styled.tsx","../src/partials/item-text.styled.tsx","../src/partials/item-indicator.styled.tsx","../src/partials/item.tsx","../src/partials/portal.styled.tsx","../src/partials/portal.tsx","../src/partials/select-icon.styled.tsx","../src/partials/trigger.styled.tsx","../src/hooks/use-select-context.tsx","../src/partials/trigger.tsx","../src/partials/value.styled.tsx","../src/partials/value.tsx","../src/partials/content.styled.tsx","../src/partials/content.tsx","../src/partials/label.styled.tsx","../src/partials/label.tsx","../src/partials/separator.styled.tsx","../src/partials/separator.tsx","../src/select.tsx"],"sourcesContent":["import type { ComponentPropsWithRef } from 'react'\nimport { styled } from '@mirohq/design-system-stitches'\nimport { Root as RadixSelect } from '@radix-ui/react-select'\n\nexport const StyledSelect = styled(RadixSelect)\n\nexport type StyledSelectProps = ComponentPropsWithRef<typeof StyledSelect>\n","import { Group as RadixGroup } from '@radix-ui/react-select'\nimport { styled } from '@mirohq/design-system-stitches'\nimport type { StrictComponentProps } from '@mirohq/design-system-stitches'\n\nexport const StyledGroup = styled(RadixGroup, {})\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 { Item as RadixItem } from '@radix-ui/react-select'\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(RadixItem, {\n all: 'unset',\n borderRadius: '$50',\n boxSizing: 'border-box',\n color: '$text-neutrals',\n cursor: 'pointer',\n display: 'grid',\n fontSize: '$175',\n gridTemplateAreas: 'leftSlot textItem',\n gridTemplateColumns: '20px 1fr',\n lineHeight: '20px',\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 '&[aria-selected=true]': {\n color: '$text-primary-selected',\n },\n\n '&:active:not([aria-disabled=true])': {\n background: '$background-primary-subtle-active',\n boxShadow: 'none',\n color: '$text-primary-active',\n },\n\n '&:disabled, &[aria-disabled=true], &[data-disabled]': {\n cursor: 'default',\n color: '$text-neutrals-disabled',\n },\n\n '&:disabled, &[data-disabled]': {\n pointerEvents: 'none',\n },\n\n '&:hover:not([aria-disabled=true])': {\n background: '$background-primary-subtle-hover',\n color: '$text-primary-hover',\n '&:not([aria-disabled=true])': {\n boxShadow: 'none',\n },\n },\n\n '&[data-state=\"checked\"]': {\n color: '$text-primary-selected',\n },\n})\n\nexport type StyledItemProps = StrictComponentProps<typeof StyledItem>\n","import { styled } from '@mirohq/design-system-stitches'\nimport type { StrictComponentProps } from '@mirohq/design-system-stitches'\n\nexport const StyledItemText = styled('span', {\n display: 'flex',\n gridColumn: 2,\n width: '100%',\n})\n\nexport type StyledItemProps = StrictComponentProps<typeof StyledItemText>\n","import { ItemIndicator as RadixItemIndicator } from '@radix-ui/react-select'\nimport { styled } from '@mirohq/design-system-stitches'\nimport type { StrictComponentProps } from '@mirohq/design-system-stitches'\n\nexport const StyledItemIndicator = styled(RadixItemIndicator, {})\n\nexport type StyledItemIndicatorProps = StrictComponentProps<\n typeof StyledItemIndicator\n>\n","import React from 'react'\nimport type { ElementRef } from 'react'\nimport { IconCheckMark } from '@mirohq/design-system-icons'\nimport { ItemText as RadixItemText } from '@radix-ui/react-select'\nimport { booleanify } from '@mirohq/design-system-utils'\n\nimport { StyledItem } from './item.styled'\nimport type { StyledItemProps } from './item.styled'\nimport { StyledItemText } from './item-text.styled'\nimport { StyledItemIndicator } from './item-indicator.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 */\n disabled?: boolean\n\n /**\n * Optional text used for typeahead purposes. By default the typeahead\n * behavior will use the Select'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 (\n {\n disabled = false,\n textValue,\n 'aria-disabled': ariaDisabled,\n onKeyDown,\n onPointerUp,\n onPointerMove,\n onPointerLeave,\n children,\n ...restProps\n },\n forwardRef\n ) => (\n <StyledItem\n {...restProps}\n aria-disabled={booleanify(ariaDisabled) ? ariaDisabled : undefined}\n onKeyDown={e => {\n if (\n booleanify(ariaDisabled) &&\n e.code !== 'ArrowUp' &&\n e.code !== 'ArrowDown' &&\n e.code !== 'Escape'\n ) {\n e.preventDefault()\n e.stopPropagation()\n return\n }\n\n onKeyDown?.(e)\n }}\n onPointerUp={e => {\n if (booleanify(ariaDisabled)) {\n e.preventDefault()\n return\n }\n\n onPointerUp?.(e)\n }}\n onPointerMove={e => {\n if (booleanify(ariaDisabled)) {\n e.preventDefault()\n return\n }\n\n onPointerMove?.(e)\n }}\n onPointerLeave={e => {\n if (booleanify(ariaDisabled)) {\n e.preventDefault()\n return\n }\n\n onPointerLeave?.(e)\n }}\n textValue={textValue}\n disabled={disabled}\n ref={forwardRef}\n >\n <StyledItemIndicator>\n <IconCheckMark size='small' />\n </StyledItemIndicator>\n <RadixItemText asChild>\n <StyledItemText>{children}</StyledItemText>\n </RadixItemText>\n </StyledItem>\n )\n)\n","import { Portal as RadixPortal } from '@radix-ui/react-select'\nimport { styled } from '@mirohq/design-system-stitches'\nimport type { StrictComponentProps } from '@mirohq/design-system-stitches'\n\nexport const StyledPortal = styled(RadixPortal, {})\n\nexport type StyledPortalProps = StrictComponentProps<typeof StyledPortal>\n","import React from 'react'\nimport type { ElementRef } from 'react'\n\nimport { StyledPortal } from './portal.styled'\nimport type { StyledPortalProps } from './portal.styled'\n\nexport interface PortalProps extends StyledPortalProps {\n /**\n * Specify a container element to portal the content into.\n */\n container?: HTMLElement | null\n}\n\nexport const Portal = React.forwardRef<\n ElementRef<typeof StyledPortal>,\n PortalProps\n>((props, forwardRef) => <StyledPortal {...props} ref={forwardRef} />)\n","import type { StrictComponentProps } from '@mirohq/design-system-stitches'\nimport { styled } from '@mirohq/design-system-stitches'\nimport { SelectIcon as RadixSelectIcon } from '@radix-ui/react-select'\nimport {\n IconExclamationPointCircle,\n IconChevronDown,\n IconCheckMark,\n} from '@mirohq/design-system-icons'\n\nexport const StyledSelectIcon = styled(RadixSelectIcon, {\n flexShrink: 0,\n})\n\nexport const StyledIconExclamationPointCircle = styled(\n IconExclamationPointCircle,\n {\n color: '$icon-danger',\n }\n)\n\nexport const StyledIconCheckMark = styled(IconCheckMark, {\n color: '$icon-success',\n})\n\nexport const StyledIconChevronDown = styled(IconChevronDown, {\n color: '$icon-neutrals-text',\n})\n\nexport type StyledSelectIconProps = StrictComponentProps<\n typeof StyledSelectIcon\n>\n","import type { StrictComponentProps } from '@mirohq/design-system-stitches'\nimport { styled } from '@mirohq/design-system-stitches'\nimport { Trigger as RadixTrigger } from '@radix-ui/react-select'\nimport { focus } from '@mirohq/design-system-styles'\n\nimport { StyledSelectIcon } from './select-icon.styled'\n\nexport const StyledTrigger = styled(RadixTrigger, {\n all: 'unset',\n backgroundColor: '$background-neutrals-container',\n border: '1px solid $border-neutrals',\n borderRadius: '$50',\n boxSizing: 'border-box',\n color: '$text-neutrals',\n display: 'flex',\n minWidth: 0,\n fontSize: '$200',\n lineHeight: 1.5,\n position: 'relative',\n userSelect: 'none',\n width: '100%',\n justifyContent: 'space-between',\n alignItems: 'center',\n\n '&[data-placeholder]': {\n color: '$text-neutrals-subtle',\n },\n\n '&[data-invalid]': {\n borderColor: '$border-danger',\n },\n\n '&[data-valid]': {\n borderColor: '$border-success',\n },\n\n '&[data-focused], &[data-hovered]': {\n borderColor: '$border-neutrals',\n\n ...focus.css({\n boxShadow: '$focus-controls',\n outline: '1px solid transparent',\n }),\n },\n\n '&[data-invalid][data-focused]': {\n borderColor: '$border-danger',\n\n ...focus.css({\n boxShadow: '$focus-controls-error',\n }),\n },\n\n '&[data-valid][data-focused]': {\n borderColor: '$border-success',\n\n ...focus.css({\n boxShadow: '$focus-controls-success',\n }),\n },\n\n '&[data-hovered]': {\n borderColor: '$border-primary-hover',\n },\n\n '&[data-invalid][data-hovered]': {\n borderColor: '$border-danger-hover',\n },\n\n '&[data-valid][data-hovered]': {\n borderColor: '$border-success-hover',\n },\n\n '&:active, &[data-state=\"open\"]': {\n borderColor: '$border-primary-active',\n },\n\n '&:active[data-valid], &[data-state=\"open\"][data-valid]': {\n borderColor: '$border-success-active',\n },\n\n '&:active[data-invalid], &[data-state=\"open\"][data-invalid]': {\n borderColor: '$border-danger-active',\n },\n\n ...focus.css({\n boxShadow: '$focus-controls',\n outline: '1px solid transparent',\n }),\n\n '&[disabled], &[aria-disabled=\"true\"]': {\n backgroundColor: '$background-neutrals-disabled',\n borderColor: '$border-neutrals-disabled',\n color: '$text-neutrals-disabled',\n\n svg: {\n color: '$icon-neutrals-disabled',\n },\n },\n\n '&[data-state=\"open\"]': {\n [`& ${StyledSelectIcon}`]: {\n transform: 'rotate(180deg)',\n },\n },\n\n variants: {\n size: {\n large: {\n height: '$10',\n paddingX: '$100',\n gap: '$50',\n },\n 'x-large': {\n height: '$12',\n paddingX: '$150',\n gap: '$100',\n },\n },\n },\n})\n\nexport type StyledTriggerProps = StrictComponentProps<typeof StyledTrigger>\n","import { createContext, useContext, useState } from 'react'\nimport type { PropsWithChildren } from 'react'\nimport type { Booleanish } from '@mirohq/design-system-types'\n\nimport type { Direction } from '../types'\n\ninterface SelectValues {\n valid?: boolean\n ariaDisabled?: Booleanish\n direction?: Direction\n open?: boolean\n defaultOpen: boolean\n}\n\ninterface SelectContextProps {\n valid?: boolean\n ariaDisabled?: Booleanish\n direction?: Direction\n open?: boolean\n setOpenState: React.Dispatch<React.SetStateAction<boolean>>\n openState: boolean\n}\n\nconst SelectContext = createContext<SelectContextProps>({} as any)\n\nexport const SelectProvider = ({\n children,\n defaultOpen,\n ...restProps\n}: PropsWithChildren<SelectValues>): any => {\n const [openState, setOpenState] = useState(defaultOpen)\n return (\n <SelectContext.Provider\n value={{\n ...restProps,\n openState,\n setOpenState,\n }}\n >\n {children}\n </SelectContext.Provider>\n )\n}\n\nexport const useSelectContext = (): SelectContextProps =>\n useContext(SelectContext)\n","import React, { useState } from 'react'\nimport { booleanify } from '@mirohq/design-system-utils'\nimport { Trigger as RadixTrigger } from '@radix-ui/react-select'\nimport { useHover } from '@react-aria/interactions'\nimport type { HoverEvents } from '@react-types/shared'\nimport type { ElementRef, PointerEvent } from 'react'\n\nimport { StyledTrigger } from './trigger.styled'\nimport { useSelectContext } from '../hooks/use-select-context'\nimport {\n StyledSelectIcon,\n StyledIconExclamationPointCircle,\n StyledIconCheckMark,\n StyledIconChevronDown,\n} from './select-icon.styled'\nimport type { StyledTriggerProps } from './trigger.styled'\n\nexport interface TriggerProps extends StyledTriggerProps, HoverEvents {\n /**\n * The content.\n */\n children: React.ReactNode\n}\n\nconst SELECT_ICONS = {\n valid: StyledIconCheckMark,\n invalid: StyledIconExclamationPointCircle,\n default: StyledIconChevronDown,\n}\n\nexport const Trigger = React.forwardRef<\n ElementRef<typeof StyledTrigger>,\n TriggerProps\n>(\n (\n {\n onKeyDown,\n onPointerDown,\n onFocus,\n onBlur,\n children,\n size = 'large',\n asChild = false,\n onHoverChange,\n onHoverStart,\n onHoverEnd,\n ...restProps\n },\n forwardRef\n ) => {\n const { valid, ariaDisabled, open, openState } = useSelectContext()\n const isValid = valid === undefined ? undefined : valid\n const [focused, setFocused] = useState(false)\n const isOpen = open ?? openState\n\n const { hoverProps, isHovered: hovered } = 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 onPointerDown: (e: PointerEvent<HTMLButtonElement>) => {\n if (booleanify(ariaDisabled)) {\n e.preventDefault()\n } else {\n onPointerDown?.(e)\n }\n },\n onKeyDown: (e: React.KeyboardEvent<HTMLButtonElement>) => {\n if (\n booleanify(ariaDisabled) &&\n e.code !== 'Tab' &&\n e.code !== 'ArrowUp' &&\n e.code !== 'ArrowDown'\n ) {\n e.preventDefault()\n } else {\n onKeyDown?.(e)\n }\n },\n onFocus: (e: React.FocusEvent<HTMLButtonElement>) => {\n onFocus?.(e)\n setFocused(true)\n },\n onBlur: (e: React.FocusEvent<HTMLButtonElement>) => {\n onBlur?.(e)\n if (!isOpen) {\n setFocused(false)\n }\n },\n 'data-invalid': isValid === false ? '' : undefined,\n 'data-valid': isValid === true ? '' : undefined,\n 'data-focused': focused ? '' : undefined,\n 'data-hovered': hovered ? '' : undefined,\n }\n\n if (asChild) {\n return (\n <RadixTrigger {...commonProps} asChild>\n {children}\n </RadixTrigger>\n )\n }\n\n const SelectIcon =\n SELECT_ICONS[\n (open ?? openState) || isValid === undefined || hovered || focused\n ? 'default'\n : isValid\n ? 'valid'\n : 'invalid'\n ]\n\n return (\n <StyledTrigger {...hoverProps} {...commonProps} size={size}>\n {children}\n <StyledSelectIcon asChild>\n <SelectIcon size='small' weight='thin' />\n </StyledSelectIcon>\n </StyledTrigger>\n )\n }\n)\n","import { styled } from '@mirohq/design-system-stitches'\n\nexport const StyledValue = styled('span', {\n overflow: 'hidden',\n paddingX: '$50',\n\n '& span:first-child': {\n display: 'block',\n overflow: 'hidden',\n textOverflow: 'ellipsis',\n whiteSpace: 'nowrap',\n },\n})\n","import React from 'react'\nimport type { ElementRef } from 'react'\nimport { Value as RadixValue } from '@radix-ui/react-select'\nimport type { StrictComponentProps } from '@mirohq/design-system-stitches'\n\nimport { StyledValue } from './value.styled'\n\nexport type StyledValueProps = StrictComponentProps<typeof RadixValue>\n\nexport interface ValueProps extends StyledValueProps {\n /**\n * The content that will be rendered inside the Select.Value when no value or\n * defaultValue is set.\n */\n placeholder?: React.ReactNode\n\n /**\n * The controlled content that will be rendered inside the Select.Value.\n */\n children?: React.ReactNode\n}\n\nexport const Value = React.forwardRef<\n ElementRef<typeof StyledValue>,\n ValueProps\n>((props, forwardRef) => (\n <StyledValue>\n <RadixValue {...props} ref={forwardRef} />\n </StyledValue>\n))\n","import { Content as RadixContent } from '@radix-ui/react-select'\nimport { styled } from '@mirohq/design-system-stitches'\nimport type { StrictComponentProps } from '@mirohq/design-system-stitches'\nimport { Primitive } from '@mirohq/design-system-primitive'\n\nexport const StyledScrollContainer = styled(Primitive.div, {\n boxSizing: 'border-box',\n paddingInline: '0 6px',\n margin: '-2px 0 0',\n marginInline: '-2px 2px',\n})\n\nexport const StyledContent = styled(RadixContent, {\n backgroundColor: '$background-neutrals-container',\n borderRadius: '$50',\n boxShadow: '$50',\n fontSize: '$175',\n fontWeight: 'normal',\n lineHeight: '20px',\n minWidth: 'var(--radix-select-trigger-width)',\n padding: '$50',\n zIndex: '$select',\n\n '& [data-radix-select-viewport]': {\n padding: `$100`,\n boxSizing: 'border-box',\n margin: '-6px',\n },\n})\n\nexport type StyledContentProps = StrictComponentProps<typeof StyledContent>\n","import React, { useCallback } from 'react'\nimport type { ElementRef, ReactNode } from 'react'\nimport { ScrollArea } from '@mirohq/design-system-scroll-area'\nimport type { CSS, CSSProperties } from '@stitches/react'\nimport { Viewport as RadixViewport } from '@radix-ui/react-select'\nimport { theme } from '@mirohq/design-system-stitches'\n\nimport { StyledContent, StyledScrollContainer } from './content.styled'\nimport type { StyledContentProps } from './content.styled'\nimport type {\n Boundary,\n PointerDownOutsideEvent,\n Side,\n Align,\n Overflow,\n Sticky,\n} from '../types'\nimport { useSelectContext } from '../hooks/use-select-context'\n\nexport const CONTENT_OFFSET = parseInt(theme.space[50])\n\nexport interface ContentProps extends StyledContentProps {\n /**\n * Event handler called when focus moves to the trigger after closing. It can\n * be prevented by calling event.preventDefault.\n */\n onCloseAutoFocus?: (event: Event) => void\n\n /**\n * Event handler called when focus moves to the trigger after closing. It can\n * be prevented by calling event.preventDefault.\n */\n onEscapeKeyDown?: (event: KeyboardEvent) => void\n\n /**\n * Event handler called when a pointer event occurs outside the bounds of the\n * component. It can be prevented by calling event.preventDefault.\n */\n onPointerDownOutside?: (event: PointerDownOutsideEvent) => void\n\n /**\n * The preferred side of the anchor to render against when open. Will be\n * reversed when collisions occur and avoidCollisions is enabled. Only\n * available when position is set to popper.\n */\n side?: Side\n\n /**\n * The distance in pixels from the anchor. Only available when position is set\n * to popper.\n */\n sideOffset?: number\n\n /**\n * The preferred alignment against the anchor. May change when collisions\n * occur. Only available when position is set to popper.\n */\n align?: Align\n\n /**\n * An offset in pixels from the \"start\" or \"end\" alignment options. Only\n * available when position is set to popper.\n */\n alignOffset?: number\n\n /**\n * When true, overrides the side andalign preferences to prevent collisions\n * with boundary edges. Only available when position is set to popper.\n */\n avoidCollisions?: boolean\n\n /**\n * The element used as the collision boundary. By default this is the\n * viewport, though you can provide additional element(s) to be included in\n * this check. Only available when position is set to popper.\n */\n collisionBoundary?: Boundary\n\n /**\n * The distance in pixels from the boundary edges where collision detection\n * should occur. Accepts a number (same for all sides), or a partial padding\n * object, for example: { top: 20, left: 20 }. Only available when position is\n * set to popper.\n */\n collisionPadding?: number | Partial<Record<Side, number>>\n\n /**\n * The sticky behavior on the align axis. \"partial\" will keep the content in the\n * boundary as long as the trigger is at least partially in the boundary whilst\n * \"always\" will keep the content in the boundary regardless. Only available\n * when position is set to popper.\n */\n sticky?: Sticky\n\n /**\n * Whether to hide the content when the trigger becomes fully occluded. Only\n * available when position is set to popper.\n */\n hideWhenDetached?: boolean\n\n /**\n * The max height for the content.\n */\n maxHeight?: CSSProperties['maxHeight']\n\n /**\n * Setting overflow as \"visible\" means that the content can extend beyond the\n * its collision boundary without any clipping or scrolling being\n * applied.\n * When set to \"auto,\" a scrollbar is added if the content exceeds its\n * boundaries. If no maxHeight is defined, it will be automatically adjusted\n * to fit the remaining space between the trigger and the boundary edge.\n */\n overflow?: Overflow\n\n /**\n * Select's content.\n */\n children?: ReactNode\n}\n\nexport const Content = React.forwardRef<\n ElementRef<typeof StyledContent>,\n ContentProps\n>(\n (\n {\n side = 'bottom',\n sideOffset = CONTENT_OFFSET,\n align = 'center',\n alignOffset = 0,\n collisionPadding = 0,\n avoidCollisions = true,\n sticky = 'partial',\n hideWhenDetached = true,\n overflow = 'visible',\n maxHeight,\n children,\n ...restProps\n },\n forwardRef\n ) => {\n const { direction } = useSelectContext()\n const getOverflowMaxHeight = useCallback((): CSS => {\n const overflowMaxHeigh = `calc(var(--radix-select-content-available-height))`\n\n return {\n maxHeight: maxHeight ?? overflowMaxHeigh,\n }\n }, [maxHeight])\n return (\n <StyledContent\n {...restProps}\n ref={forwardRef}\n position='popper'\n side={side}\n sideOffset={sideOffset}\n align={align}\n alignOffset={alignOffset}\n avoidCollisions={avoidCollisions}\n collisionPadding={collisionPadding}\n sticky={sticky}\n hideWhenDetached={hideWhenDetached}\n >\n <RadixViewport>\n {overflow === 'auto' ? (\n <ScrollArea dir={direction} type='always'>\n <ScrollArea.Viewport css={getOverflowMaxHeight()}>\n <StyledScrollContainer>{children}</StyledScrollContainer>\n </ScrollArea.Viewport>\n <ScrollArea.Scrollbar orientation='vertical'>\n <ScrollArea.Thumb />\n </ScrollArea.Scrollbar>\n </ScrollArea>\n ) : (\n <>{children}</>\n )}\n </RadixViewport>\n </StyledContent>\n )\n }\n)\n","import { Label as RadixLabel } from '@radix-ui/react-select'\nimport { styled } from '@mirohq/design-system-stitches'\nimport type { StrictComponentProps } from '@mirohq/design-system-stitches'\n\nexport const StyledLabel = styled(RadixLabel, {\n color: '$text-neutrals-subtle',\n margin: '0 $400',\n padding: '6px 0',\n})\n\nexport type StyledLabelProps = StrictComponentProps<typeof StyledLabel>\n","import React from 'react'\nimport type { ElementRef } from 'react'\n\nimport { StyledLabel } from './label.styled'\nimport type { StyledLabelProps } from './label.styled'\n\nexport interface LabelProps extends StyledLabelProps {}\n\nexport const Label = React.forwardRef<\n ElementRef<typeof StyledLabel>,\n LabelProps\n>((props, forwardRef) => <StyledLabel {...props} ref={forwardRef} />)\n","import { Separator as RadixSeparator } from '@radix-ui/react-select'\nimport { styled } from '@mirohq/design-system-stitches'\nimport type { StrictComponentProps } from '@mirohq/design-system-stitches'\n\nexport const StyledSeparator = styled(RadixSeparator, {\n backgroundColor: '$border-neutrals-subtle',\n height: '1px',\n width: '100%',\n margin: '5.5px 0',\n})\n\nexport type StyledSeparatorProps = StrictComponentProps<typeof StyledSeparator>\n","import React from 'react'\nimport type { ElementRef } from 'react'\n\nimport { StyledSeparator } from './separator.styled'\nimport type { StyledSeparatorProps } from './separator.styled'\n\nexport interface SeparatorProps extends StyledSeparatorProps {}\n\nexport const Separator = React.forwardRef<\n ElementRef<typeof StyledSeparator>,\n SeparatorProps\n>((props, forwardRef) => <StyledSeparator {...props} ref={forwardRef} />)\n","import React from 'react'\nimport type { ElementRef, ForwardRefExoticComponent } from 'react'\nimport type { Booleanish } from '@mirohq/design-system-types'\n\nimport { StyledSelect } from './select.styled'\nimport { Group } from './partials/group'\nimport { Item } from './partials/item'\nimport { Portal } from './partials/portal'\nimport { Trigger } from './partials/trigger'\nimport { Value } from './partials/value'\nimport { Content } from './partials/content'\nimport { Label } from './partials/label'\nimport { Separator } from './partials/separator'\nimport { SelectProvider, useSelectContext } from './hooks/use-select-context'\nimport type { Direction } from './types'\nimport type { StyledSelectProps } from './select.styled'\n\nexport interface SelectProps\n extends Omit<StyledSelectProps, 'onOpenChange' | 'dir'> {\n /**\n * The value of the select when initially rendered. Use when you do not need\n * to control the state of the select.\n */\n defaultValue?: string\n\n /**\n * The controlled value of the select. 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 select when it is initially rendered. Use when you do\n * not need to control its open state.\n */\n defaultOpen?: boolean\n\n /**\n * The controlled open state of the select. Must be used in conjunction with\n * onOpen and onClose.\n */\n open?: boolean\n\n /**\n * Event handler called when the select opens.\n */\n onOpen?: () => void\n\n /**\n * Event handler called when the select closes.\n */\n onClose?: () => void\n\n /**\n * The reading direction of the select when applicable. If omitted, inherits\n * globally from DirectionProvider or assumes LTR (left-to-right) reading\n * mode.\n */\n direction?: Direction\n\n /**\n * The name of the select. Submitted with its owning form as part of a\n * name/value pair.\n */\n name?: string\n\n /**\n * When \"true\", prevents the user from interacting with select.\n */\n disabled?: boolean\n\n /**\n * When \"true\", prevents the user from opening with select, while allowing\n * focus and hover.\n */\n 'aria-disabled'?: Booleanish\n\n /**\n * When \"true\", indicates that the user must select a value before the owning\n * form can be submitted.\n */\n required?: boolean\n\n /**\n * When \"true\", this indicates that the input component is valid, and a\n * green state is displayed, allowing the form to be submitted.\n */\n valid?: boolean\n}\n\nconst Root = React.forwardRef<ElementRef<typeof StyledSelect>, SelectProps>(\n ({ disabled, onOpen, onClose, ...restProps }, forwardRef) => {\n const { ariaDisabled, direction, open, setOpenState, openState } =\n useSelectContext()\n\n return (\n <StyledSelect\n {...restProps}\n aria-disabled={ariaDisabled}\n dir={direction}\n disabled={disabled}\n open={open ?? openState}\n onOpenChange={newOpen => {\n if (open == null) {\n setOpenState(newOpen)\n }\n\n newOpen ? onOpen?.() : onClose?.()\n }}\n ref={forwardRef}\n />\n )\n }\n)\n\nexport const Select = React.forwardRef<\n ElementRef<typeof StyledSelect>,\n SelectProps\n>(\n (\n {\n 'aria-disabled': ariaDisabled,\n defaultOpen = false,\n direction = 'ltr',\n open,\n valid,\n ...restProps\n },\n forwardRef\n ) => (\n <SelectProvider\n ariaDisabled={ariaDisabled}\n defaultOpen={defaultOpen}\n direction={direction}\n open={open}\n valid={valid}\n >\n <Root open={open} {...restProps} ref={forwardRef} />\n </SelectProvider>\n )\n) as ForwardRefExoticComponent<SelectProps> & Partials\n\nexport interface Partials {\n Content: typeof Content\n Separator: typeof Separator\n Label: typeof Label\n Group: typeof Group\n Item: typeof Item\n Portal: typeof Portal\n Trigger: typeof Trigger\n Value: typeof Value\n}\n\nSelect.Group = Group\nSelect.Separator = Separator\nSelect.Content = Content\nSelect.Item = Item\nSelect.Portal = Portal\nSelect.Trigger = Trigger\nSelect.Value = Value\nSelect.Label = Label\n"],"names":["RadixSelect","RadixGroup","RadixItem","RadixItemIndicator","RadixItemText","RadixPortal","RadixSelectIcon","RadixTrigger","RadixValue","RadixContent","RadixViewport","RadixLabel","RadixSeparator"],"mappings":"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"}
package/dist/types.d.ts CHANGED
@@ -7,6 +7,7 @@ import * as _stitches_react_types_css_util from '@stitches/react/types/css-util'
7
7
  import * as _radix_ui_react_select from '@radix-ui/react-select';
8
8
  import { Value as Value$1 } from '@radix-ui/react-select';
9
9
  import * as _stitches_react_types_styled_component from '@stitches/react/types/styled-component';
10
+ import { HoverEvents } from '@react-types/shared';
10
11
  import { CSSProperties } from '@stitches/react';
11
12
 
12
13
  declare const StyledGroup: react.ForwardRefExoticComponent<Omit<Omit<{}, never> & _stitches_react_types_styled_component.TransformProps<{}, {}> & _mirohq_design_system_stitches.SafeProps<Omit<_radix_ui_react_select.SelectGroupProps & react.RefAttributes<HTMLDivElement>, "css"> & _stitches_react_types_styled_component.TransformProps<{}, {}> & {
@@ -236,6 +237,7 @@ declare const StyledGroup: react.ForwardRefExoticComponent<Omit<Omit<{}, never>
236
237
  readonly 'focus-large': "0 0 0 4px $colors$border-focus-inner, inset 0 0 0 2px $colors$border-focus-middle, inset 0 0 0 3px $colors$border-focus-outer";
237
238
  readonly 'focus-controls': "0 0 0 1px $colors$border-focus-inner, 0 0 0 3px $colors$border-focus-middle, 0 0 0 5px $colors$border-focus-outer";
238
239
  readonly 'focus-controls-error': "0 0 0 1px $colors$border-focus-inner, 0 0 0 3px $colors$border-danger, 0 0 0 5px $colors$background-danger-subtle-hover";
240
+ readonly 'focus-controls-success': "0 0 0 1px $colors$border-focus-inner, 0 0 0 3px $colors$background-success-prominent, 0 0 0 5px $colors$background-success";
239
241
  };
240
242
  sizes: {
241
243
  readonly number: string;
@@ -729,6 +731,7 @@ declare const StyledItem: react.ForwardRefExoticComponent<Omit<Omit<{}, never> &
729
731
  readonly 'focus-large': "0 0 0 4px $colors$border-focus-inner, inset 0 0 0 2px $colors$border-focus-middle, inset 0 0 0 3px $colors$border-focus-outer";
730
732
  readonly 'focus-controls': "0 0 0 1px $colors$border-focus-inner, 0 0 0 3px $colors$border-focus-middle, 0 0 0 5px $colors$border-focus-outer";
731
733
  readonly 'focus-controls-error': "0 0 0 1px $colors$border-focus-inner, 0 0 0 3px $colors$border-danger, 0 0 0 5px $colors$background-danger-subtle-hover";
734
+ readonly 'focus-controls-success': "0 0 0 1px $colors$border-focus-inner, 0 0 0 3px $colors$background-success-prominent, 0 0 0 5px $colors$background-success";
732
735
  };
733
736
  sizes: {
734
737
  readonly number: string;
@@ -1236,6 +1239,7 @@ declare const StyledPortal: react.ForwardRefExoticComponent<Omit<{}, never> & _s
1236
1239
  readonly 'focus-large': "0 0 0 4px $colors$border-focus-inner, inset 0 0 0 2px $colors$border-focus-middle, inset 0 0 0 3px $colors$border-focus-outer";
1237
1240
  readonly 'focus-controls': "0 0 0 1px $colors$border-focus-inner, 0 0 0 3px $colors$border-focus-middle, 0 0 0 5px $colors$border-focus-outer";
1238
1241
  readonly 'focus-controls-error': "0 0 0 1px $colors$border-focus-inner, 0 0 0 3px $colors$border-danger, 0 0 0 5px $colors$background-danger-subtle-hover";
1242
+ readonly 'focus-controls-success': "0 0 0 1px $colors$border-focus-inner, 0 0 0 3px $colors$background-success-prominent, 0 0 0 5px $colors$background-success";
1239
1243
  };
1240
1244
  sizes: {
1241
1245
  readonly number: string;
@@ -1507,9 +1511,9 @@ interface PortalProps extends StyledPortalProps {
1507
1511
  declare const Portal: react__default.ForwardRefExoticComponent<Omit<PortalProps, "ref"> & react__default.RefAttributes<never>>;
1508
1512
 
1509
1513
  declare const StyledTrigger: react.ForwardRefExoticComponent<Omit<Omit<{
1510
- size?: "medium" | "large" | undefined;
1514
+ size?: "large" | "x-large" | undefined;
1511
1515
  }, "size"> & _stitches_react_types_styled_component.TransformProps<{
1512
- size?: "medium" | "large" | undefined;
1516
+ size?: "large" | "x-large" | undefined;
1513
1517
  }, {}> & _mirohq_design_system_stitches.SafeProps<Omit<_radix_ui_react_select.SelectTriggerProps & react.RefAttributes<HTMLButtonElement>, "css"> & _stitches_react_types_styled_component.TransformProps<{}, {}> & {
1514
1518
  css?: _stitches_react_types_css_util.CSS<{}, {
1515
1519
  'border-widths': {
@@ -1737,6 +1741,7 @@ declare const StyledTrigger: react.ForwardRefExoticComponent<Omit<Omit<{
1737
1741
  readonly 'focus-large': "0 0 0 4px $colors$border-focus-inner, inset 0 0 0 2px $colors$border-focus-middle, inset 0 0 0 3px $colors$border-focus-outer";
1738
1742
  readonly 'focus-controls': "0 0 0 1px $colors$border-focus-inner, 0 0 0 3px $colors$border-focus-middle, 0 0 0 5px $colors$border-focus-outer";
1739
1743
  readonly 'focus-controls-error': "0 0 0 1px $colors$border-focus-inner, 0 0 0 3px $colors$border-danger, 0 0 0 5px $colors$background-danger-subtle-hover";
1744
+ readonly 'focus-controls-success': "0 0 0 1px $colors$border-focus-inner, 0 0 0 3px $colors$background-success-prominent, 0 0 0 5px $colors$background-success";
1740
1745
  };
1741
1746
  sizes: {
1742
1747
  readonly number: string;
@@ -1997,11 +2002,11 @@ declare const StyledTrigger: react.ForwardRefExoticComponent<Omit<Omit<{
1997
2002
  }> & {
1998
2003
  children?: react.ReactNode;
1999
2004
  } & _mirohq_design_system_stitches.CustomStylesProps, "ref"> & react.RefAttributes<HTMLButtonElement>> & _mirohq_design_system_stitches.StitchesInternals<react.ForwardRefExoticComponent<_radix_ui_react_select.SelectTriggerProps & react.RefAttributes<HTMLButtonElement>>, {
2000
- size?: "medium" | "large" | undefined;
2005
+ size?: "large" | "x-large" | undefined;
2001
2006
  }, {}>;
2002
2007
  declare type StyledTriggerProps = StrictComponentProps<typeof StyledTrigger>;
2003
2008
 
2004
- interface TriggerProps extends StyledTriggerProps {
2009
+ interface TriggerProps extends StyledTriggerProps, HoverEvents {
2005
2010
  /**
2006
2011
  * The content.
2007
2012
  */
@@ -2250,6 +2255,7 @@ declare const StyledContent: react.ForwardRefExoticComponent<Omit<Omit<{}, never
2250
2255
  readonly 'focus-large': "0 0 0 4px $colors$border-focus-inner, inset 0 0 0 2px $colors$border-focus-middle, inset 0 0 0 3px $colors$border-focus-outer";
2251
2256
  readonly 'focus-controls': "0 0 0 1px $colors$border-focus-inner, 0 0 0 3px $colors$border-focus-middle, 0 0 0 5px $colors$border-focus-outer";
2252
2257
  readonly 'focus-controls-error': "0 0 0 1px $colors$border-focus-inner, 0 0 0 3px $colors$border-danger, 0 0 0 5px $colors$background-danger-subtle-hover";
2258
+ readonly 'focus-controls-success': "0 0 0 1px $colors$border-focus-inner, 0 0 0 3px $colors$background-success-prominent, 0 0 0 5px $colors$background-success";
2253
2259
  };
2254
2260
  sizes: {
2255
2261
  readonly number: string;
@@ -2861,6 +2867,7 @@ declare const StyledLabel: react.ForwardRefExoticComponent<Omit<Omit<{}, never>
2861
2867
  readonly 'focus-large': "0 0 0 4px $colors$border-focus-inner, inset 0 0 0 2px $colors$border-focus-middle, inset 0 0 0 3px $colors$border-focus-outer";
2862
2868
  readonly 'focus-controls': "0 0 0 1px $colors$border-focus-inner, 0 0 0 3px $colors$border-focus-middle, 0 0 0 5px $colors$border-focus-outer";
2863
2869
  readonly 'focus-controls-error': "0 0 0 1px $colors$border-focus-inner, 0 0 0 3px $colors$border-danger, 0 0 0 5px $colors$background-danger-subtle-hover";
2870
+ readonly 'focus-controls-success': "0 0 0 1px $colors$border-focus-inner, 0 0 0 3px $colors$background-success-prominent, 0 0 0 5px $colors$background-success";
2864
2871
  };
2865
2872
  sizes: {
2866
2873
  readonly number: string;
@@ -3354,6 +3361,7 @@ declare const StyledSeparator: react.ForwardRefExoticComponent<Omit<Omit<{}, nev
3354
3361
  readonly 'focus-large': "0 0 0 4px $colors$border-focus-inner, inset 0 0 0 2px $colors$border-focus-middle, inset 0 0 0 3px $colors$border-focus-outer";
3355
3362
  readonly 'focus-controls': "0 0 0 1px $colors$border-focus-inner, 0 0 0 3px $colors$border-focus-middle, 0 0 0 5px $colors$border-focus-outer";
3356
3363
  readonly 'focus-controls-error': "0 0 0 1px $colors$border-focus-inner, 0 0 0 3px $colors$border-danger, 0 0 0 5px $colors$background-danger-subtle-hover";
3364
+ readonly 'focus-controls-success': "0 0 0 1px $colors$border-focus-inner, 0 0 0 3px $colors$background-success-prominent, 0 0 0 5px $colors$background-success";
3357
3365
  };
3358
3366
  sizes: {
3359
3367
  readonly number: string;
@@ -3847,6 +3855,7 @@ declare const StyledSelect: react.ForwardRefExoticComponent<Omit<{}, never> & _s
3847
3855
  readonly 'focus-large': "0 0 0 4px $colors$border-focus-inner, inset 0 0 0 2px $colors$border-focus-middle, inset 0 0 0 3px $colors$border-focus-outer";
3848
3856
  readonly 'focus-controls': "0 0 0 1px $colors$border-focus-inner, 0 0 0 3px $colors$border-focus-middle, 0 0 0 5px $colors$border-focus-outer";
3849
3857
  readonly 'focus-controls-error': "0 0 0 1px $colors$border-focus-inner, 0 0 0 3px $colors$border-danger, 0 0 0 5px $colors$background-danger-subtle-hover";
3858
+ readonly 'focus-controls-success': "0 0 0 1px $colors$border-focus-inner, 0 0 0 3px $colors$background-success-prominent, 0 0 0 5px $colors$background-success";
3850
3859
  };
3851
3860
  sizes: {
3852
3861
  readonly number: string;
@@ -4154,23 +4163,24 @@ interface SelectProps extends Omit<StyledSelectProps, 'onOpenChange' | 'dir'> {
4154
4163
  */
4155
4164
  name?: string;
4156
4165
  /**
4157
- * When true, prevents the user from interacting with select.
4166
+ * When "true", prevents the user from interacting with select.
4158
4167
  */
4159
4168
  disabled?: boolean;
4160
4169
  /**
4161
- * When true, prevents the user from opening with select, while allowing focus and hover.
4170
+ * When "true", prevents the user from opening with select, while allowing
4171
+ * focus and hover.
4162
4172
  */
4163
4173
  'aria-disabled'?: Booleanish;
4164
4174
  /**
4165
- * When true, indicates that the user must select a value before the owning
4175
+ * When "true", indicates that the user must select a value before the owning
4166
4176
  * form can be submitted.
4167
4177
  */
4168
4178
  required?: boolean;
4169
4179
  /**
4170
- * When true, indicates that the select value contains an error which have to be fixed before the owning
4171
- * form can be submitted.
4180
+ * When "true", this indicates that the input component is valid, and a
4181
+ * green state is displayed, allowing the form to be submitted.
4172
4182
  */
4173
- invalid?: boolean;
4183
+ valid?: boolean;
4174
4184
  }
4175
4185
  declare const Select: react__default.ForwardRefExoticComponent<SelectProps> & Partials;
4176
4186
  interface Partials {
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@mirohq/design-system-select",
3
- "version": "0.1.14",
3
+ "version": "0.2.0",
4
4
  "description": "",
5
5
  "author": "Miro",
6
6
  "source": "src/index.ts",
@@ -27,11 +27,13 @@
27
27
  },
28
28
  "dependencies": {
29
29
  "@radix-ui/react-select": "^2.0.0",
30
- "@mirohq/design-system-icons": "^0.31.1",
30
+ "@react-aria/interactions": "^3.13.0",
31
+ "@react-types/shared": "^3.16.0",
31
32
  "@mirohq/design-system-primitive": "^1.1.1",
32
- "@mirohq/design-system-scroll-area": "^0.1.15",
33
- "@mirohq/design-system-stitches": "^2.3.15",
33
+ "@mirohq/design-system-scroll-area": "^0.1.16",
34
34
  "@mirohq/design-system-types": "^0.6.2",
35
+ "@mirohq/design-system-icons": "^0.32.1",
36
+ "@mirohq/design-system-stitches": "^2.3.16",
35
37
  "@mirohq/design-system-utils": "^0.14.3"
36
38
  },
37
39
  "scripts": {