@mirohq/design-system-select 1.1.16 → 1.2.0-fix-stitches-types.1

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
@@ -1,7 +1,5 @@
1
1
  'use strict';
2
2
 
3
- Object.defineProperty(exports, '__esModule', { value: true });
4
-
5
3
  var jsxRuntime = require('react/jsx-runtime');
6
4
  var React = require('react');
7
5
  var designSystemBaseForm = require('@mirohq/design-system-base-form');
@@ -20,10 +18,6 @@ var designSystemStyles = require('@mirohq/design-system-styles');
20
18
  var designSystemBaseTextField = require('@mirohq/design-system-base-text-field');
21
19
  var designSystemScrollArea = require('@mirohq/design-system-scroll-area');
22
20
 
23
- function _interopDefaultLegacy (e) { return e && typeof e === 'object' && 'default' in e ? e : { 'default': e }; }
24
-
25
- var React__default = /*#__PURE__*/_interopDefaultLegacy(React);
26
-
27
21
  const StyledSelectContent = designSystemStitches.styled(designSystemPrimitive.Primitive.div, {
28
22
  position: "relative",
29
23
  width: "100%",
@@ -32,7 +26,7 @@ const StyledSelectContent = designSystemStitches.styled(designSystemPrimitive.Pr
32
26
 
33
27
  const StyledGroup = designSystemStitches.styled(reactSelect.Group, {});
34
28
 
35
- const Group = React__default["default"].forwardRef((props, forwardRef) => /* @__PURE__ */ jsxRuntime.jsx(StyledGroup, { ...props, ref: forwardRef }));
29
+ const Group = React.forwardRef((props, forwardRef) => /* @__PURE__ */ jsxRuntime.jsx(StyledGroup, { ...props, ref: forwardRef }));
36
30
 
37
31
  const StyledItem = designSystemStitches.styled(reactSelect.Item, designSystemBaseSelect.itemStyles);
38
32
  const StyledItemText = designSystemStitches.styled(designSystemPrimitive.Primitive.span, {
@@ -41,7 +35,7 @@ const StyledItemText = designSystemStitches.styled(designSystemPrimitive.Primiti
41
35
  width: "100%"
42
36
  });
43
37
 
44
- const Item = React__default["default"].forwardRef(
38
+ const Item = React.forwardRef(
45
39
  ({
46
40
  disabled = false,
47
41
  textValue,
@@ -207,7 +201,7 @@ const SelectProvider = ({
207
201
  };
208
202
  const useSelectContext = () => React.useContext(SelectContext);
209
203
 
210
- const Trigger = React__default["default"].forwardRef(
204
+ const Trigger = React.forwardRef(
211
205
  ({
212
206
  id,
213
207
  onKeyDown,
@@ -330,7 +324,7 @@ const StyledValue = designSystemStitches.styled("span", {
330
324
  }
331
325
  });
332
326
 
333
- const Value = React__default["default"].forwardRef(({ placeholder, ...restProps }, forwardRef) => {
327
+ const Value = React.forwardRef(({ placeholder, ...restProps }, forwardRef) => {
334
328
  const { setPlaceholder } = useSelectContext();
335
329
  React.useEffect(() => {
336
330
  setPlaceholder(placeholder);
@@ -346,7 +340,7 @@ const StyledContent = designSystemStitches.styled(reactSelect.Content, {
346
340
 
347
341
  const CONTENT_OFFSET = parseInt(designSystemStitches.theme.space[50]);
348
342
  const RADIX_CONTENT_AVAILABLE_HEIGHT = "var(--radix-select-content-available-height)";
349
- const Content = React__default["default"].forwardRef(
343
+ const Content = React.forwardRef(
350
344
  ({
351
345
  side = "bottom",
352
346
  sideOffset = CONTENT_OFFSET,
@@ -396,13 +390,13 @@ const Content = React__default["default"].forwardRef(
396
390
 
397
391
  const StyledGroupLabel = designSystemStitches.styled(reactSelect.Label, designSystemBaseSelect.groupLabelStyles);
398
392
 
399
- const GroupLabel = React__default["default"].forwardRef((props, forwardRef) => /* @__PURE__ */ jsxRuntime.jsx(StyledGroupLabel, { ...props, ref: forwardRef }));
393
+ const GroupLabel = React.forwardRef((props, forwardRef) => /* @__PURE__ */ jsxRuntime.jsx(StyledGroupLabel, { ...props, ref: forwardRef }));
400
394
 
401
395
  const StyledSeparator = designSystemStitches.styled(reactSelect.Separator, designSystemBaseSelect.separatorStyles);
402
396
 
403
- const Separator = React__default["default"].forwardRef((props, forwardRef) => /* @__PURE__ */ jsxRuntime.jsx(StyledSeparator, { ...props, ref: forwardRef }));
397
+ const Separator = React.forwardRef((props, forwardRef) => /* @__PURE__ */ jsxRuntime.jsx(StyledSeparator, { ...props, ref: forwardRef }));
404
398
 
405
- const Root = React__default["default"].forwardRef(
399
+ const Root = React.forwardRef(
406
400
  ({
407
401
  onOpen,
408
402
  onClose,
@@ -503,7 +497,7 @@ const Root = React__default["default"].forwardRef(
503
497
  );
504
498
  }
505
499
  );
506
- const Select = React__default["default"].forwardRef(
500
+ const Select = React.forwardRef(
507
501
  ({
508
502
  "aria-disabled": ariaDisabled,
509
503
  defaultOpen = false,
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.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/group-label.styled.tsx","../src/partials/group-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 { Primitive } from '@mirohq/design-system-primitive'\n\nexport const StyledSelectContent = styled(Primitive.div, {\n position: 'relative',\n width: '100%',\n display: 'inline-flex',\n})\n\nexport type StyledSelectContentProps = ComponentPropsWithRef<\n typeof StyledSelectContent\n>\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 { styled } from '@mirohq/design-system-stitches'\nimport type { StrictComponentProps } from '@mirohq/design-system-stitches'\nimport { itemStyles } from '@mirohq/design-system-base-select'\nimport { Primitive } from '@mirohq/design-system-primitive'\n\nexport const StyledItem = styled(RadixItem, itemStyles)\n\nexport const StyledItemText = styled(Primitive.span, {\n display: 'flex',\n gridColumn: 2,\n width: '100%',\n})\n\nexport type StyledItemProps = StrictComponentProps<typeof StyledItem>\n","import React, { useRef } from 'react'\nimport type { ElementRef } from 'react'\nimport { IconCheckMark } from '@mirohq/design-system-icons'\nimport {\n ItemText as RadixItemText,\n ItemIndicator as RadixItemIndicator,\n} from '@radix-ui/react-select'\nimport {\n booleanify,\n mergeRefs,\n handleVirtualClick,\n} from '@mirohq/design-system-utils'\nimport { StyledItemCheck } from '@mirohq/design-system-base-select'\n\nimport { StyledItem, StyledItemText } from './item.styled'\nimport type { StyledItemProps } from './item.styled'\n\nexport interface ItemProps extends StyledItemProps {\n /**\n * The value given as data when submitted with a name.\n */\n value: string\n\n /**\n * When true, prevents the user from interacting with the item.\n * @default false\n */\n disabled?: boolean\n\n /**\n * Optional text used for typeahead purposes. By default the typeahead\n * behavior will use the 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 asChild,\n onClick,\n ...restProps\n },\n forwardRef\n ) => {\n const ref = useRef<HTMLDivElement>(null)\n\n return (\n <StyledItem\n {...restProps}\n aria-disabled={booleanify(ariaDisabled) ? ariaDisabled : undefined}\n onClick={e => {\n handleVirtualClick(e, ref)\n onClick?.(e)\n }}\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={mergeRefs([ref, forwardRef])}\n >\n <RadixItemIndicator asChild>\n <StyledItemCheck>\n <IconCheckMark size='small' />\n </StyledItemCheck>\n </RadixItemIndicator>\n <RadixItemText asChild>\n <StyledItemText asChild={asChild}>{children}</StyledItemText>\n </RadixItemText>\n </StyledItem>\n )\n }\n)\n","import { styled } from '@mirohq/design-system-stitches'\nimport { SelectIcon as RadixSelectIcon } from '@radix-ui/react-select'\nimport { IconChevronDown } from '@mirohq/design-system-icons'\n\nexport const StyledSelectIcon = styled(RadixSelectIcon, {\n flexShrink: 0,\n margin: '6px',\n})\n\nexport const StyledIconChevronDown = styled(IconChevronDown, {\n color: '$icon-neutrals-text',\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'\nimport { textFieldStyles } from '@mirohq/design-system-base-text-field'\n\nimport { StyledSelectIcon } from './select-icon.styled'\n\nexport const StyledTrigger = styled(RadixTrigger, {\n all: 'unset',\n backgroundColor: '$background-neutrals-container',\n cursor: 'pointer',\n display: 'flex',\n minWidth: 0,\n position: 'relative',\n userSelect: 'none',\n justifyContent: 'space-between',\n alignItems: 'center',\n\n ...textFieldStyles.variants.idle,\n\n '&[data-invalid]': textFieldStyles.variants.invalid.idle,\n\n '&[data-valid]': textFieldStyles.variants.valid.idle,\n\n '&[data-invalid][data-hovered]': textFieldStyles.variants.invalid.hovered,\n\n '&[data-valid][data-hovered]': textFieldStyles.variants.valid.hovered,\n\n '&:active, &[data-state=\"open\"]': {\n borderColor: '$border-primary-active',\n },\n\n '&[data-state=\"open\"]': {\n [`& ${StyledSelectIcon}`]: {\n transform: 'rotate(180deg)',\n },\n },\n\n '&:not([disabled])': {\n ...focus.css({\n ...textFieldStyles.variants.focused,\n }),\n },\n\n '&[data-placeholder]': textFieldStyles.base.placeholder.color,\n\n '&[data-hovered]': textFieldStyles.variants.hovered,\n\n '&[disabled], &[aria-disabled=\"true\"]': {\n ...textFieldStyles.variants.disabled,\n\n svg: {\n color: '$icon-neutrals-disabled',\n },\n },\n\n variants: {\n size: {\n medium: {\n height: '$8',\n paddingX: '$50',\n gap: '$25',\n },\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 fontSize: '$200',\n lineHeight: '$500',\n },\n },\n },\n})\n\nexport type StyledTriggerProps = StrictComponentProps<typeof StyledTrigger>\n","import { createContext, useContext, useState } from 'react'\nimport type { FormElementProps } from '@mirohq/design-system-base-form'\n\nimport type { StyledTriggerProps } from '../partials/trigger.styled'\nimport type { Direction } from '../types'\n\ninterface SelectProps extends FormElementProps {\n defaultOpen?: boolean\n direction?: Direction\n open?: boolean\n valid?: boolean\n}\n\ninterface SelectContextProps extends SelectProps {\n setOpenState: React.Dispatch<React.SetStateAction<boolean | undefined>>\n openState?: boolean | undefined\n placeholder?: React.ReactNode\n setPlaceholder: React.Dispatch<React.SetStateAction<React.ReactNode>>\n size: StyledTriggerProps['size']\n setSize: React.Dispatch<React.SetStateAction<StyledTriggerProps['size']>>\n loading?: boolean\n setLoading: React.Dispatch<React.SetStateAction<boolean | undefined>>\n}\n\nexport interface SelectProviderProps extends SelectProps {\n children: React.ReactNode\n}\n\nconst SelectContext = createContext<SelectContextProps>({} as any)\n\nexport const SelectProvider = ({\n children,\n defaultOpen,\n open,\n valid,\n ...restProps\n}: SelectProviderProps): JSX.Element => {\n const [openState, setOpenState] = useState(defaultOpen)\n const [loading, setLoading] = useState<boolean | undefined>(false)\n const [placeholder, setPlaceholder] = useState<React.ReactNode>()\n const [size, setSize] = useState<StyledTriggerProps['size']>()\n\n return (\n <SelectContext.Provider\n value={{\n ...restProps,\n valid,\n open,\n openState,\n setOpenState,\n placeholder,\n setPlaceholder,\n size,\n setSize,\n loading,\n setLoading,\n }}\n >\n {children}\n </SelectContext.Provider>\n )\n}\n\nexport const useSelectContext = (): SelectContextProps =>\n useContext(SelectContext)\n","import React, { useState, useEffect, useRef } from 'react'\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'\nimport {\n booleanify,\n booleanishAttrValue,\n stringAttrValue,\n mergeRefs,\n handleVirtualClick,\n} from '@mirohq/design-system-utils'\nimport { useFormFieldContext } from '@mirohq/design-system-base-form'\nimport { mergeProps } from '@react-aria/utils'\nimport { Spinner } from '@mirohq/design-system-spinner'\n\nimport { StyledTrigger } from './trigger.styled'\nimport { useSelectContext } from '../hooks/use-select-context'\nimport { StyledSelectIcon, StyledIconChevronDown } 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 /**\n * The size of the trigger.\n * @default 'large'\n */\n size?: StyledTriggerProps['size']\n\n /**\n * The aria label of the trigger.\n */\n 'aria-label'?: string\n}\n\nexport const Trigger = React.forwardRef<\n ElementRef<typeof StyledTrigger>,\n TriggerProps\n>(\n (\n {\n id,\n onKeyDown,\n onPointerDown,\n onFocus,\n onBlur,\n children,\n size = 'large',\n asChild = false,\n 'aria-describedby': ariaDescribedBy,\n 'aria-invalid': ariaInvalid,\n onHoverChange,\n onHoverStart,\n onHoverEnd,\n onClick,\n 'aria-label': ariaLabel,\n ...restProps\n },\n forwardRef\n ) => {\n const ref = useRef<HTMLButtonElement>(null)\n const {\n 'aria-disabled': ariaDisabled,\n disabled,\n valid: selectValid,\n setSize,\n open,\n openState,\n loading = false,\n placeholder,\n } = useSelectContext()\n const [focused, setFocused] = useState(false)\n const isOpen = open ?? openState ?? false\n\n const {\n formElementId,\n ariaDescribedBy: formFieldContextDescribedBy,\n ariaInvalid: formFieldAriaInvalid,\n valid: formFieldValid,\n } = useFormFieldContext()\n\n // validity\n const valid = formFieldValid ?? selectValid\n\n const { hoverProps, isHovered: hovered } = useHover({\n onHoverStart,\n onHoverEnd,\n onHoverChange: isHovering => {\n onHoverChange?.(isHovering)\n },\n })\n\n let triggerlabel = ''\n if (typeof placeholder === 'string') {\n triggerlabel = placeholder\n }\n\n const commonProps = {\n ...mergeProps(restProps, hoverProps),\n 'aria-disabled': loading || ariaDisabled,\n onPointerDown: (e: PointerEvent<HTMLButtonElement>) => {\n if (booleanify(loading) || booleanify(ariaDisabled)) {\n e.preventDefault()\n } else {\n onPointerDown?.(e)\n }\n },\n onKeyDown: (e: React.KeyboardEvent<HTMLButtonElement>) => {\n if (\n (booleanify(loading) || 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': booleanishAttrValue(valid === false),\n 'data-valid': booleanishAttrValue(valid),\n 'data-focused': booleanishAttrValue(focused),\n 'data-hovered': booleanishAttrValue(hovered),\n 'aria-invalid': ariaInvalid ?? formFieldAriaInvalid,\n 'aria-describedby': stringAttrValue(\n ariaDescribedBy,\n formFieldContextDescribedBy\n ),\n 'aria-label': ariaLabel ?? triggerlabel,\n id: id ?? formElementId,\n onClick: (e: React.MouseEvent<HTMLButtonElement, MouseEvent>) => {\n handleVirtualClick(e, ref)\n onClick?.(e)\n },\n ref: mergeRefs([ref, forwardRef]),\n }\n\n useEffect(() => {\n setSize(size)\n if (booleanify(disabled)) setFocused(false)\n }, [size, setSize, ariaDisabled, disabled])\n\n if (asChild) {\n return (\n <RadixTrigger {...commonProps} asChild>\n {children}\n </RadixTrigger>\n )\n }\n\n const SelectIcon = StyledIconChevronDown\n\n return (\n <StyledTrigger {...commonProps} size={size}>\n {loading ? (\n <Spinner css={{ flex: 1, placeSelf: 'center' }} />\n ) : (\n children\n )}\n <StyledSelectIcon asChild>\n <SelectIcon size='small' />\n </StyledSelectIcon>\n </StyledTrigger>\n )\n }\n)\n","import { styled } from '@mirohq/design-system-stitches'\n\nexport const StyledValue = styled('span', {\n paddingX: '$50',\n display: 'block',\n width: '100%',\n overflow: 'hidden',\n\n '& span:first-child': {\n display: 'block',\n overflow: 'hidden',\n textOverflow: 'ellipsis',\n whiteSpace: 'nowrap',\n },\n})\n","import React, { useEffect } 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 { useSelectContext } from '../hooks/use-select-context'\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>(({ placeholder, ...restProps }, forwardRef) => {\n const { setPlaceholder } = useSelectContext()\n\n useEffect(() => {\n setPlaceholder(placeholder)\n }, [setPlaceholder, placeholder])\n\n return (\n <StyledValue ref={forwardRef}>\n <RadixValue {...restProps} placeholder={placeholder} ref={forwardRef} />\n </StyledValue>\n )\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 {\n contentStyles,\n itemsContainerStyles,\n} from '@mirohq/design-system-base-select'\nimport { Primitive } from '@mirohq/design-system-primitive'\n\nexport const StyledItemsContainer = styled(Primitive.div, itemsContainerStyles)\n\nexport const StyledContent = styled(RadixContent, {\n ...contentStyles,\n minWidth: 'var(--radix-select-trigger-width)',\n})\n\nexport type StyledContentProps = StrictComponentProps<typeof StyledContent>\n","import React from 'react'\nimport type { ElementRef, ReactNode } from 'react'\nimport { ScrollArea } from '@mirohq/design-system-scroll-area'\nimport type { CSSProperties } from '@stitches/react'\nimport { Viewport as RadixViewport } from '@radix-ui/react-select'\nimport { theme } from '@mirohq/design-system-stitches'\n\nimport { StyledContent, StyledItemsContainer } 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])\nconst RADIX_CONTENT_AVAILABLE_HEIGHT =\n 'var(--radix-select-content-available-height)'\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.\n * @default 'bottom'\n */\n side?: Side\n\n /**\n * The distance in pixels from the anchor.\n * @default CONTENT_OFFSET\n */\n sideOffset?: number\n\n /**\n * The preferred alignment against the anchor. May change when collisions\n * occur.\n * @default 'center'\n */\n align?: Align\n\n /**\n * An offset in pixels from the \"start\" or \"end\" alignment options.\n * @default 0\n */\n alignOffset?: number\n\n /**\n * When true, overrides the side and align preferences to prevent collisions\n * with boundary edges.\n * @default true\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.\n * @default viewport\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 }.\n * @default 0\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.\n * @default 'partial'\n */\n sticky?: Sticky\n\n /**\n * Whether to hide the content when the trigger becomes fully occluded.\n * @default true\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\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 * @default 'visible'\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\n const content = <StyledItemsContainer>{children}</StyledItemsContainer>\n\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\n css={{\n maxHeight:\n maxHeight !== undefined\n ? `min(${RADIX_CONTENT_AVAILABLE_HEIGHT}, ${\n typeof maxHeight === 'number'\n ? `${maxHeight}px`\n : maxHeight\n })`\n : RADIX_CONTENT_AVAILABLE_HEIGHT,\n }}\n >\n {content}\n </ScrollArea.Viewport>\n <ScrollArea.Scrollbar orientation='vertical'>\n <ScrollArea.Thumb />\n </ScrollArea.Scrollbar>\n </ScrollArea>\n ) : (\n <>{content}</>\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'\nimport { groupLabelStyles } from '@mirohq/design-system-base-select'\n\nexport const StyledGroupLabel = styled(RadixLabel, groupLabelStyles)\n\nexport type StyledGroupLabelProps = StrictComponentProps<\n typeof StyledGroupLabel\n>\n","import React from 'react'\nimport type { ElementRef } from 'react'\n\nimport { StyledGroupLabel } from './group-label.styled'\nimport type { StyledGroupLabelProps } from './group-label.styled'\n\nexport interface GroupLabelProps extends StyledGroupLabelProps {}\n\nexport const GroupLabel = React.forwardRef<\n ElementRef<typeof StyledGroupLabel>,\n GroupLabelProps\n>((props, forwardRef) => <StyledGroupLabel {...props} ref={forwardRef} />)\n","import { Separator as RadixSeparator } from '@radix-ui/react-select'\nimport { styled } from '@mirohq/design-system-stitches'\nimport type { StrictComponentProps } from '@mirohq/design-system-stitches'\nimport { separatorStyles } from '@mirohq/design-system-base-select'\n\nexport const StyledSeparator = styled(RadixSeparator, separatorStyles)\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, { useEffect, useRef } from 'react'\nimport type { ElementRef, ForwardRefExoticComponent } from 'react'\nimport type { FormElementProps } from '@mirohq/design-system-base-form'\nimport { useFormFieldContext } from '@mirohq/design-system-base-form'\nimport { mergeRefs } from '@mirohq/design-system-utils'\nimport type { SelectProps as RadixSelectProps } from '@radix-ui/react-select'\nimport { Root as RadixSelect } from '@radix-ui/react-select'\nimport { usePrevious } from '@mirohq/design-system-use-previous'\nimport {\n BaseTooltipProvider,\n useBaseTooltipContext,\n} from '@mirohq/design-system-base-tooltip'\n\nimport { StyledSelectContent } from './select.styled'\nimport type { StyledSelectContentProps } 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 { GroupLabel } from './partials/group-label'\nimport { Separator } from './partials/separator'\nimport { SelectProvider, useSelectContext } from './hooks/use-select-context'\nimport type { Direction } from './types'\n\nexport interface SelectProps\n extends FormElementProps,\n Omit<RadixSelectProps, 'onOpenChange'>,\n Omit<StyledSelectContentProps, '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 * @default false\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 * @default 'ltr'\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 * Enables loading state for the select.\n */\n loading?: boolean\n}\n\nconst Root = React.forwardRef<ElementRef<'select'>, SelectProps>(\n (\n {\n onOpen,\n onClose,\n children,\n onValueChange,\n value,\n defaultValue,\n loading = false,\n css,\n // @ts-expect-error className required when extending the component with styled()\n className,\n ...restProps\n },\n forwardRef\n ) => {\n const {\n required,\n readOnly,\n 'aria-disabled': ariaDisabled,\n setLoading,\n disabled,\n direction,\n setOpenState,\n openState,\n open,\n } = useSelectContext()\n\n const {\n setRequired,\n setDisabled,\n setAriaDisabled,\n setReadOnly,\n formElementRef,\n } = useFormFieldContext<HTMLSelectElement>()\n\n useEffect(() => {\n setRequired?.(required)\n setDisabled?.(disabled)\n setAriaDisabled?.(ariaDisabled)\n setLoading(loading)\n setReadOnly?.(readOnly)\n }, [\n readOnly,\n disabled,\n loading,\n ariaDisabled,\n required,\n setRequired,\n setDisabled,\n setAriaDisabled,\n setReadOnly,\n setLoading,\n ])\n\n const { ignoreNextTooltip } = useBaseTooltipContext()\n const prevOpen = usePrevious(open)\n\n useEffect(() => {\n if (prevOpen === true && open === false) {\n ignoreNextTooltip()\n }\n }, [ignoreNextTooltip, open, prevOpen])\n\n const selectRef = useRef<HTMLSelectElement>()\n\n // intentionally not using useCallback to force formElementRef to be updated\n const domRef = (node: HTMLDivElement): void => {\n const selectElement = node?.nextElementSibling as HTMLSelectElement | null\n\n if (selectElement?.tagName === 'SELECT') {\n selectRef.current = selectElement\n }\n\n // @ts-expect-error TS doesn't know about the dynamic set of the generated select element\n mergeRefs([forwardRef, formElementRef])(selectElement)\n }\n\n return (\n <RadixSelect\n {...restProps}\n value={value}\n defaultValue={defaultValue}\n onValueChange={newValue => {\n onValueChange?.(newValue)\n }}\n dir={direction}\n disabled={disabled}\n required={required}\n open={open ?? openState}\n onOpenChange={newOpen => {\n if (open == null) {\n setOpenState(newOpen)\n\n if (!newOpen) {\n ignoreNextTooltip()\n }\n }\n\n newOpen ? onOpen?.() : onClose?.()\n }}\n >\n <StyledSelectContent\n ref={domRef}\n data-form-element='select'\n css={css}\n // @ts-expect-error className required when extending the component with styled()\n className={className}\n >\n {children}\n </StyledSelectContent>\n </RadixSelect>\n )\n }\n)\n\nexport const Select = React.forwardRef<ElementRef<'select'>, SelectProps>(\n (\n {\n 'aria-disabled': ariaDisabled,\n defaultOpen = false,\n direction = 'ltr',\n disabled,\n readOnly,\n required,\n valid,\n open,\n ...restProps\n },\n forwardRef\n ) => (\n <SelectProvider\n open={open}\n aria-disabled={ariaDisabled}\n defaultOpen={defaultOpen}\n direction={direction}\n required={required}\n disabled={disabled}\n readOnly={readOnly}\n valid={valid}\n >\n <BaseTooltipProvider>\n <Root {...restProps} ref={forwardRef} />\n </BaseTooltipProvider>\n </SelectProvider>\n )\n) as ForwardRefExoticComponent<SelectProps> & Partials\n\nexport interface Partials {\n Content: typeof Content\n Separator: typeof Separator\n GroupLabel: typeof GroupLabel\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.GroupLabel = GroupLabel\n"],"names":["styled","Primitive","RadixGroup","React","jsx","RadixItem","itemStyles","useRef","jsxs","booleanify","handleVirtualClick","mergeRefs","RadixItemIndicator","StyledItemCheck","IconCheckMark","RadixItemText","RadixSelectIcon","IconChevronDown","RadixTrigger","textFieldStyles","focus","createContext","useState","useContext","useFormFieldContext","useHover","mergeProps","booleanishAttrValue","stringAttrValue","useEffect","Spinner","RadixValue","itemsContainerStyles","RadixContent","contentStyles","theme","RadixViewport","ScrollArea","Fragment","RadixLabel","groupLabelStyles","RadixSeparator","separatorStyles","useBaseTooltipContext","usePrevious","RadixSelect","BaseTooltipProvider","Portal"],"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.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/group-label.styled.tsx","../src/partials/group-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 { Primitive } from '@mirohq/design-system-primitive'\n\nexport const StyledSelectContent = styled(Primitive.div, {\n position: 'relative',\n width: '100%',\n display: 'inline-flex',\n})\n\nexport type StyledSelectContentProps = ComponentPropsWithRef<\n typeof StyledSelectContent\n>\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 { styled } from '@mirohq/design-system-stitches'\nimport type { StrictComponentProps } from '@mirohq/design-system-stitches'\nimport { itemStyles } from '@mirohq/design-system-base-select'\nimport { Primitive } from '@mirohq/design-system-primitive'\n\nexport const StyledItem = styled(RadixItem, itemStyles)\n\nexport const StyledItemText = styled(Primitive.span, {\n display: 'flex',\n gridColumn: 2,\n width: '100%',\n})\n\nexport type StyledItemProps = StrictComponentProps<typeof StyledItem>\n","import React, { useRef } from 'react'\nimport type { ElementRef } from 'react'\nimport { IconCheckMark } from '@mirohq/design-system-icons'\nimport {\n ItemText as RadixItemText,\n ItemIndicator as RadixItemIndicator,\n} from '@radix-ui/react-select'\nimport {\n booleanify,\n mergeRefs,\n handleVirtualClick,\n} from '@mirohq/design-system-utils'\nimport { StyledItemCheck } from '@mirohq/design-system-base-select'\n\nimport { StyledItem, StyledItemText } from './item.styled'\nimport type { StyledItemProps } from './item.styled'\n\nexport interface ItemProps extends StyledItemProps {\n /**\n * The value given as data when submitted with a name.\n */\n value: string\n\n /**\n * When true, prevents the user from interacting with the item.\n * @default false\n */\n disabled?: boolean\n\n /**\n * Optional text used for typeahead purposes. By default the typeahead\n * behavior will use the 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 asChild,\n onClick,\n ...restProps\n },\n forwardRef\n ) => {\n const ref = useRef<HTMLDivElement>(null)\n\n return (\n <StyledItem\n {...restProps}\n aria-disabled={booleanify(ariaDisabled) ? ariaDisabled : undefined}\n onClick={e => {\n handleVirtualClick(e, ref)\n onClick?.(e)\n }}\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={mergeRefs([ref, forwardRef])}\n >\n <RadixItemIndicator asChild>\n <StyledItemCheck>\n <IconCheckMark size='small' />\n </StyledItemCheck>\n </RadixItemIndicator>\n <RadixItemText asChild>\n <StyledItemText asChild={asChild}>{children}</StyledItemText>\n </RadixItemText>\n </StyledItem>\n )\n }\n)\n","import { styled } from '@mirohq/design-system-stitches'\nimport { SelectIcon as RadixSelectIcon } from '@radix-ui/react-select'\nimport { IconChevronDown } from '@mirohq/design-system-icons'\n\nexport const StyledSelectIcon = styled(RadixSelectIcon, {\n flexShrink: 0,\n margin: '6px',\n})\n\nexport const StyledIconChevronDown = styled(IconChevronDown, {\n color: '$icon-neutrals-text',\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'\nimport { textFieldStyles } from '@mirohq/design-system-base-text-field'\n\nimport { StyledSelectIcon } from './select-icon.styled'\n\nexport const StyledTrigger = styled(RadixTrigger, {\n all: 'unset',\n backgroundColor: '$background-neutrals-container',\n cursor: 'pointer',\n display: 'flex',\n minWidth: 0,\n position: 'relative',\n userSelect: 'none',\n justifyContent: 'space-between',\n alignItems: 'center',\n\n ...textFieldStyles.variants.idle,\n\n '&[data-invalid]': textFieldStyles.variants.invalid.idle,\n\n '&[data-valid]': textFieldStyles.variants.valid.idle,\n\n '&[data-invalid][data-hovered]': textFieldStyles.variants.invalid.hovered,\n\n '&[data-valid][data-hovered]': textFieldStyles.variants.valid.hovered,\n\n '&:active, &[data-state=\"open\"]': {\n borderColor: '$border-primary-active',\n },\n\n '&[data-state=\"open\"]': {\n [`& ${StyledSelectIcon}`]: {\n transform: 'rotate(180deg)',\n },\n },\n\n '&:not([disabled])': {\n ...focus.css({\n ...textFieldStyles.variants.focused,\n }),\n },\n\n '&[data-placeholder]': textFieldStyles.base.placeholder.color,\n\n '&[data-hovered]': textFieldStyles.variants.hovered,\n\n '&[disabled], &[aria-disabled=\"true\"]': {\n ...textFieldStyles.variants.disabled,\n\n svg: {\n color: '$icon-neutrals-disabled',\n },\n },\n\n variants: {\n size: {\n medium: {\n height: '$8',\n paddingX: '$50',\n gap: '$25',\n },\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 fontSize: '$200',\n lineHeight: '$500',\n },\n },\n },\n})\n\nexport type StyledTriggerProps = StrictComponentProps<typeof StyledTrigger>\n","import { createContext, useContext, useState } from 'react'\nimport type { FormElementProps } from '@mirohq/design-system-base-form'\n\nimport type { StyledTriggerProps } from '../partials/trigger.styled'\nimport type { Direction } from '../types'\n\ninterface SelectProps extends FormElementProps {\n defaultOpen?: boolean\n direction?: Direction\n open?: boolean\n valid?: boolean\n}\n\ninterface SelectContextProps extends SelectProps {\n setOpenState: React.Dispatch<React.SetStateAction<boolean | undefined>>\n openState?: boolean | undefined\n placeholder?: React.ReactNode\n setPlaceholder: React.Dispatch<React.SetStateAction<React.ReactNode>>\n size: StyledTriggerProps['size']\n setSize: React.Dispatch<React.SetStateAction<StyledTriggerProps['size']>>\n loading?: boolean\n setLoading: React.Dispatch<React.SetStateAction<boolean | undefined>>\n}\n\nexport interface SelectProviderProps extends SelectProps {\n children: React.ReactNode\n}\n\nconst SelectContext = createContext<SelectContextProps>({} as any)\n\nexport const SelectProvider = ({\n children,\n defaultOpen,\n open,\n valid,\n ...restProps\n}: SelectProviderProps): JSX.Element => {\n const [openState, setOpenState] = useState(defaultOpen)\n const [loading, setLoading] = useState<boolean | undefined>(false)\n const [placeholder, setPlaceholder] = useState<React.ReactNode>()\n const [size, setSize] = useState<StyledTriggerProps['size']>()\n\n return (\n <SelectContext.Provider\n value={{\n ...restProps,\n valid,\n open,\n openState,\n setOpenState,\n placeholder,\n setPlaceholder,\n size,\n setSize,\n loading,\n setLoading,\n }}\n >\n {children}\n </SelectContext.Provider>\n )\n}\n\nexport const useSelectContext = (): SelectContextProps =>\n useContext(SelectContext)\n","import React, { useState, useEffect, useRef } from 'react'\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'\nimport {\n booleanify,\n booleanishAttrValue,\n stringAttrValue,\n mergeRefs,\n handleVirtualClick,\n} from '@mirohq/design-system-utils'\nimport { useFormFieldContext } from '@mirohq/design-system-base-form'\nimport { mergeProps } from '@react-aria/utils'\nimport { Spinner } from '@mirohq/design-system-spinner'\n\nimport { StyledTrigger } from './trigger.styled'\nimport { useSelectContext } from '../hooks/use-select-context'\nimport { StyledSelectIcon, StyledIconChevronDown } 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 /**\n * The size of the trigger.\n * @default 'large'\n */\n size?: StyledTriggerProps['size']\n\n /**\n * The aria label of the trigger.\n */\n 'aria-label'?: string\n}\n\nexport const Trigger = React.forwardRef<\n ElementRef<typeof StyledTrigger>,\n TriggerProps\n>(\n (\n {\n id,\n onKeyDown,\n onPointerDown,\n onFocus,\n onBlur,\n children,\n size = 'large',\n asChild = false,\n 'aria-describedby': ariaDescribedBy,\n 'aria-invalid': ariaInvalid,\n onHoverChange,\n onHoverStart,\n onHoverEnd,\n onClick,\n 'aria-label': ariaLabel,\n ...restProps\n },\n forwardRef\n ) => {\n const ref = useRef<HTMLButtonElement>(null)\n const {\n 'aria-disabled': ariaDisabled,\n disabled,\n valid: selectValid,\n setSize,\n open,\n openState,\n loading = false,\n placeholder,\n } = useSelectContext()\n const [focused, setFocused] = useState(false)\n const isOpen = open ?? openState ?? false\n\n const {\n formElementId,\n ariaDescribedBy: formFieldContextDescribedBy,\n ariaInvalid: formFieldAriaInvalid,\n valid: formFieldValid,\n } = useFormFieldContext()\n\n // validity\n const valid = formFieldValid ?? selectValid\n\n const { hoverProps, isHovered: hovered } = useHover({\n onHoverStart,\n onHoverEnd,\n onHoverChange: isHovering => {\n onHoverChange?.(isHovering)\n },\n })\n\n let triggerlabel = ''\n if (typeof placeholder === 'string') {\n triggerlabel = placeholder\n }\n\n const commonProps = {\n ...mergeProps(restProps, hoverProps),\n 'aria-disabled': loading || ariaDisabled,\n onPointerDown: (e: PointerEvent<HTMLButtonElement>) => {\n if (booleanify(loading) || booleanify(ariaDisabled)) {\n e.preventDefault()\n } else {\n onPointerDown?.(e)\n }\n },\n onKeyDown: (e: React.KeyboardEvent<HTMLButtonElement>) => {\n if (\n (booleanify(loading) || 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': booleanishAttrValue(valid === false),\n 'data-valid': booleanishAttrValue(valid),\n 'data-focused': booleanishAttrValue(focused),\n 'data-hovered': booleanishAttrValue(hovered),\n 'aria-invalid': ariaInvalid ?? formFieldAriaInvalid,\n 'aria-describedby': stringAttrValue(\n ariaDescribedBy,\n formFieldContextDescribedBy\n ),\n 'aria-label': ariaLabel ?? triggerlabel,\n id: id ?? formElementId,\n onClick: (e: React.MouseEvent<HTMLButtonElement, MouseEvent>) => {\n handleVirtualClick(e, ref)\n onClick?.(e)\n },\n ref: mergeRefs([ref, forwardRef]),\n }\n\n useEffect(() => {\n setSize(size)\n if (booleanify(disabled)) setFocused(false)\n }, [size, setSize, ariaDisabled, disabled])\n\n if (asChild) {\n return (\n <RadixTrigger {...commonProps} asChild>\n {children}\n </RadixTrigger>\n )\n }\n\n const SelectIcon = StyledIconChevronDown\n\n return (\n <StyledTrigger {...commonProps} size={size}>\n {loading ? (\n <Spinner css={{ flex: 1, placeSelf: 'center' }} />\n ) : (\n children\n )}\n <StyledSelectIcon asChild>\n <SelectIcon size='small' />\n </StyledSelectIcon>\n </StyledTrigger>\n )\n }\n)\n","import { styled } from '@mirohq/design-system-stitches'\n\nexport const StyledValue = styled('span', {\n paddingX: '$50',\n display: 'block',\n width: '100%',\n overflow: 'hidden',\n\n '& span:first-child': {\n display: 'block',\n overflow: 'hidden',\n textOverflow: 'ellipsis',\n whiteSpace: 'nowrap',\n },\n})\n","import React, { useEffect } 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 { useSelectContext } from '../hooks/use-select-context'\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>(({ placeholder, ...restProps }, forwardRef) => {\n const { setPlaceholder } = useSelectContext()\n\n useEffect(() => {\n setPlaceholder(placeholder)\n }, [setPlaceholder, placeholder])\n\n return (\n <StyledValue ref={forwardRef}>\n <RadixValue {...restProps} placeholder={placeholder} ref={forwardRef} />\n </StyledValue>\n )\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 {\n contentStyles,\n itemsContainerStyles,\n} from '@mirohq/design-system-base-select'\nimport { Primitive } from '@mirohq/design-system-primitive'\n\nexport const StyledItemsContainer = styled(Primitive.div, itemsContainerStyles)\n\nexport const StyledContent = styled(RadixContent, {\n ...contentStyles,\n minWidth: 'var(--radix-select-trigger-width)',\n})\n\nexport type StyledContentProps = StrictComponentProps<typeof StyledContent>\n","import React from 'react'\nimport type { ElementRef, ReactNode } from 'react'\nimport { ScrollArea } from '@mirohq/design-system-scroll-area'\nimport type { CSSProperties } from '@stitches/react'\nimport { Viewport as RadixViewport } from '@radix-ui/react-select'\nimport { theme } from '@mirohq/design-system-stitches'\n\nimport { StyledContent, StyledItemsContainer } 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])\nconst RADIX_CONTENT_AVAILABLE_HEIGHT =\n 'var(--radix-select-content-available-height)'\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.\n * @default 'bottom'\n */\n side?: Side\n\n /**\n * The distance in pixels from the anchor.\n * @default CONTENT_OFFSET\n */\n sideOffset?: number\n\n /**\n * The preferred alignment against the anchor. May change when collisions\n * occur.\n * @default 'center'\n */\n align?: Align\n\n /**\n * An offset in pixels from the \"start\" or \"end\" alignment options.\n * @default 0\n */\n alignOffset?: number\n\n /**\n * When true, overrides the side and align preferences to prevent collisions\n * with boundary edges.\n * @default true\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.\n * @default viewport\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 }.\n * @default 0\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.\n * @default 'partial'\n */\n sticky?: Sticky\n\n /**\n * Whether to hide the content when the trigger becomes fully occluded.\n * @default true\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\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 * @default 'visible'\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\n const content = <StyledItemsContainer>{children}</StyledItemsContainer>\n\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\n css={{\n maxHeight:\n maxHeight !== undefined\n ? `min(${RADIX_CONTENT_AVAILABLE_HEIGHT}, ${\n typeof maxHeight === 'number'\n ? `${maxHeight}px`\n : maxHeight\n })`\n : RADIX_CONTENT_AVAILABLE_HEIGHT,\n }}\n >\n {content}\n </ScrollArea.Viewport>\n <ScrollArea.Scrollbar orientation='vertical'>\n <ScrollArea.Thumb />\n </ScrollArea.Scrollbar>\n </ScrollArea>\n ) : (\n <>{content}</>\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'\nimport { groupLabelStyles } from '@mirohq/design-system-base-select'\n\nexport const StyledGroupLabel = styled(RadixLabel, groupLabelStyles)\n\nexport type StyledGroupLabelProps = StrictComponentProps<\n typeof StyledGroupLabel\n>\n","import React from 'react'\nimport type { ElementRef } from 'react'\n\nimport { StyledGroupLabel } from './group-label.styled'\nimport type { StyledGroupLabelProps } from './group-label.styled'\n\nexport interface GroupLabelProps extends StyledGroupLabelProps {}\n\nexport const GroupLabel = React.forwardRef<\n ElementRef<typeof StyledGroupLabel>,\n GroupLabelProps\n>((props, forwardRef) => <StyledGroupLabel {...props} ref={forwardRef} />)\n","import { Separator as RadixSeparator } from '@radix-ui/react-select'\nimport { styled } from '@mirohq/design-system-stitches'\nimport type { StrictComponentProps } from '@mirohq/design-system-stitches'\nimport { separatorStyles } from '@mirohq/design-system-base-select'\n\nexport const StyledSeparator = styled(RadixSeparator, separatorStyles)\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, { useEffect, useRef } from 'react'\nimport type { ElementRef, ForwardRefExoticComponent } from 'react'\nimport type { FormElementProps } from '@mirohq/design-system-base-form'\nimport { useFormFieldContext } from '@mirohq/design-system-base-form'\nimport { mergeRefs } from '@mirohq/design-system-utils'\nimport type { SelectProps as RadixSelectProps } from '@radix-ui/react-select'\nimport { Root as RadixSelect } from '@radix-ui/react-select'\nimport { usePrevious } from '@mirohq/design-system-use-previous'\nimport {\n BaseTooltipProvider,\n useBaseTooltipContext,\n} from '@mirohq/design-system-base-tooltip'\n\nimport { StyledSelectContent } from './select.styled'\nimport type { StyledSelectContentProps } 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 { GroupLabel } from './partials/group-label'\nimport { Separator } from './partials/separator'\nimport { SelectProvider, useSelectContext } from './hooks/use-select-context'\nimport type { Direction } from './types'\n\nexport interface SelectProps\n extends FormElementProps,\n Omit<RadixSelectProps, 'onOpenChange'>,\n Omit<StyledSelectContentProps, '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 * @default false\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 * @default 'ltr'\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 * Enables loading state for the select.\n */\n loading?: boolean\n}\n\nconst Root = React.forwardRef<ElementRef<'select'>, SelectProps>(\n (\n {\n onOpen,\n onClose,\n children,\n onValueChange,\n value,\n defaultValue,\n loading = false,\n css,\n // @ts-expect-error className required when extending the component with styled()\n className,\n ...restProps\n },\n forwardRef\n ) => {\n const {\n required,\n readOnly,\n 'aria-disabled': ariaDisabled,\n setLoading,\n disabled,\n direction,\n setOpenState,\n openState,\n open,\n } = useSelectContext()\n\n const {\n setRequired,\n setDisabled,\n setAriaDisabled,\n setReadOnly,\n formElementRef,\n } = useFormFieldContext<HTMLSelectElement>()\n\n useEffect(() => {\n setRequired?.(required)\n setDisabled?.(disabled)\n setAriaDisabled?.(ariaDisabled)\n setLoading(loading)\n setReadOnly?.(readOnly)\n }, [\n readOnly,\n disabled,\n loading,\n ariaDisabled,\n required,\n setRequired,\n setDisabled,\n setAriaDisabled,\n setReadOnly,\n setLoading,\n ])\n\n const { ignoreNextTooltip } = useBaseTooltipContext()\n const prevOpen = usePrevious(open)\n\n useEffect(() => {\n if (prevOpen === true && open === false) {\n ignoreNextTooltip()\n }\n }, [ignoreNextTooltip, open, prevOpen])\n\n const selectRef = useRef<HTMLSelectElement>()\n\n // intentionally not using useCallback to force formElementRef to be updated\n const domRef = (node: HTMLDivElement): void => {\n const selectElement = node?.nextElementSibling as HTMLSelectElement | null\n\n if (selectElement?.tagName === 'SELECT') {\n selectRef.current = selectElement\n }\n\n // @ts-expect-error TS doesn't know about the dynamic set of the generated select element\n mergeRefs([forwardRef, formElementRef])(selectElement)\n }\n\n return (\n <RadixSelect\n {...restProps}\n value={value}\n defaultValue={defaultValue}\n onValueChange={newValue => {\n onValueChange?.(newValue)\n }}\n dir={direction}\n disabled={disabled}\n required={required}\n open={open ?? openState}\n onOpenChange={newOpen => {\n if (open == null) {\n setOpenState(newOpen)\n\n if (!newOpen) {\n ignoreNextTooltip()\n }\n }\n\n newOpen ? onOpen?.() : onClose?.()\n }}\n >\n <StyledSelectContent\n ref={domRef}\n data-form-element='select'\n css={css}\n // @ts-expect-error className required when extending the component with styled()\n className={className}\n >\n {children}\n </StyledSelectContent>\n </RadixSelect>\n )\n }\n)\n\nexport const Select = React.forwardRef<ElementRef<'select'>, SelectProps>(\n (\n {\n 'aria-disabled': ariaDisabled,\n defaultOpen = false,\n direction = 'ltr',\n disabled,\n readOnly,\n required,\n valid,\n open,\n ...restProps\n },\n forwardRef\n ) => (\n <SelectProvider\n open={open}\n aria-disabled={ariaDisabled}\n defaultOpen={defaultOpen}\n direction={direction}\n required={required}\n disabled={disabled}\n readOnly={readOnly}\n valid={valid}\n >\n <BaseTooltipProvider>\n <Root {...restProps} ref={forwardRef} />\n </BaseTooltipProvider>\n </SelectProvider>\n )\n) as ForwardRefExoticComponent<SelectProps> & Partials\n\nexport interface Partials {\n Content: typeof Content\n Separator: typeof Separator\n GroupLabel: typeof GroupLabel\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.GroupLabel = GroupLabel\n"],"names":["styled","Primitive","RadixGroup","jsx","RadixItem","itemStyles","useRef","jsxs","booleanify","handleVirtualClick","mergeRefs","RadixItemIndicator","StyledItemCheck","IconCheckMark","RadixItemText","RadixSelectIcon","IconChevronDown","RadixTrigger","textFieldStyles","focus","createContext","useState","useContext","useFormFieldContext","useHover","mergeProps","booleanishAttrValue","stringAttrValue","useEffect","Spinner","RadixValue","itemsContainerStyles","RadixContent","contentStyles","theme","RadixViewport","ScrollArea","Fragment","RadixLabel","groupLabelStyles","RadixSeparator","separatorStyles","useBaseTooltipContext","usePrevious","RadixSelect","BaseTooltipProvider","Portal"],"mappings":"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"}
package/dist/module.js CHANGED
@@ -1,7 +1,7 @@
1
1
  import { jsx, jsxs, Fragment } from 'react/jsx-runtime';
2
- import React, { useRef, createContext, useState, useContext, useEffect } from 'react';
2
+ import React, { useRef, createContext, useContext, useState, useEffect } from 'react';
3
3
  import { useFormFieldContext } from '@mirohq/design-system-base-form';
4
- import { booleanify, handleVirtualClick, mergeRefs, booleanishAttrValue, stringAttrValue } from '@mirohq/design-system-utils';
4
+ import { mergeRefs, booleanify, handleVirtualClick, stringAttrValue, booleanishAttrValue } from '@mirohq/design-system-utils';
5
5
  import { Group as Group$1, Item as Item$1, ItemIndicator, ItemText, SelectIcon, Trigger as Trigger$1, Value as Value$1, Content as Content$1, Viewport, Label, Separator as Separator$1, Root as Root$1, Portal } from '@radix-ui/react-select';
6
6
  import { usePrevious } from '@mirohq/design-system-use-previous';
7
7
  import { useBaseTooltipContext, BaseTooltipProvider } from '@mirohq/design-system-base-tooltip';
@@ -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.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/group-label.styled.tsx","../src/partials/group-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 { Primitive } from '@mirohq/design-system-primitive'\n\nexport const StyledSelectContent = styled(Primitive.div, {\n position: 'relative',\n width: '100%',\n display: 'inline-flex',\n})\n\nexport type StyledSelectContentProps = ComponentPropsWithRef<\n typeof StyledSelectContent\n>\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 { styled } from '@mirohq/design-system-stitches'\nimport type { StrictComponentProps } from '@mirohq/design-system-stitches'\nimport { itemStyles } from '@mirohq/design-system-base-select'\nimport { Primitive } from '@mirohq/design-system-primitive'\n\nexport const StyledItem = styled(RadixItem, itemStyles)\n\nexport const StyledItemText = styled(Primitive.span, {\n display: 'flex',\n gridColumn: 2,\n width: '100%',\n})\n\nexport type StyledItemProps = StrictComponentProps<typeof StyledItem>\n","import React, { useRef } from 'react'\nimport type { ElementRef } from 'react'\nimport { IconCheckMark } from '@mirohq/design-system-icons'\nimport {\n ItemText as RadixItemText,\n ItemIndicator as RadixItemIndicator,\n} from '@radix-ui/react-select'\nimport {\n booleanify,\n mergeRefs,\n handleVirtualClick,\n} from '@mirohq/design-system-utils'\nimport { StyledItemCheck } from '@mirohq/design-system-base-select'\n\nimport { StyledItem, StyledItemText } from './item.styled'\nimport type { StyledItemProps } from './item.styled'\n\nexport interface ItemProps extends StyledItemProps {\n /**\n * The value given as data when submitted with a name.\n */\n value: string\n\n /**\n * When true, prevents the user from interacting with the item.\n * @default false\n */\n disabled?: boolean\n\n /**\n * Optional text used for typeahead purposes. By default the typeahead\n * behavior will use the 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 asChild,\n onClick,\n ...restProps\n },\n forwardRef\n ) => {\n const ref = useRef<HTMLDivElement>(null)\n\n return (\n <StyledItem\n {...restProps}\n aria-disabled={booleanify(ariaDisabled) ? ariaDisabled : undefined}\n onClick={e => {\n handleVirtualClick(e, ref)\n onClick?.(e)\n }}\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={mergeRefs([ref, forwardRef])}\n >\n <RadixItemIndicator asChild>\n <StyledItemCheck>\n <IconCheckMark size='small' />\n </StyledItemCheck>\n </RadixItemIndicator>\n <RadixItemText asChild>\n <StyledItemText asChild={asChild}>{children}</StyledItemText>\n </RadixItemText>\n </StyledItem>\n )\n }\n)\n","import { styled } from '@mirohq/design-system-stitches'\nimport { SelectIcon as RadixSelectIcon } from '@radix-ui/react-select'\nimport { IconChevronDown } from '@mirohq/design-system-icons'\n\nexport const StyledSelectIcon = styled(RadixSelectIcon, {\n flexShrink: 0,\n margin: '6px',\n})\n\nexport const StyledIconChevronDown = styled(IconChevronDown, {\n color: '$icon-neutrals-text',\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'\nimport { textFieldStyles } from '@mirohq/design-system-base-text-field'\n\nimport { StyledSelectIcon } from './select-icon.styled'\n\nexport const StyledTrigger = styled(RadixTrigger, {\n all: 'unset',\n backgroundColor: '$background-neutrals-container',\n cursor: 'pointer',\n display: 'flex',\n minWidth: 0,\n position: 'relative',\n userSelect: 'none',\n justifyContent: 'space-between',\n alignItems: 'center',\n\n ...textFieldStyles.variants.idle,\n\n '&[data-invalid]': textFieldStyles.variants.invalid.idle,\n\n '&[data-valid]': textFieldStyles.variants.valid.idle,\n\n '&[data-invalid][data-hovered]': textFieldStyles.variants.invalid.hovered,\n\n '&[data-valid][data-hovered]': textFieldStyles.variants.valid.hovered,\n\n '&:active, &[data-state=\"open\"]': {\n borderColor: '$border-primary-active',\n },\n\n '&[data-state=\"open\"]': {\n [`& ${StyledSelectIcon}`]: {\n transform: 'rotate(180deg)',\n },\n },\n\n '&:not([disabled])': {\n ...focus.css({\n ...textFieldStyles.variants.focused,\n }),\n },\n\n '&[data-placeholder]': textFieldStyles.base.placeholder.color,\n\n '&[data-hovered]': textFieldStyles.variants.hovered,\n\n '&[disabled], &[aria-disabled=\"true\"]': {\n ...textFieldStyles.variants.disabled,\n\n svg: {\n color: '$icon-neutrals-disabled',\n },\n },\n\n variants: {\n size: {\n medium: {\n height: '$8',\n paddingX: '$50',\n gap: '$25',\n },\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 fontSize: '$200',\n lineHeight: '$500',\n },\n },\n },\n})\n\nexport type StyledTriggerProps = StrictComponentProps<typeof StyledTrigger>\n","import { createContext, useContext, useState } from 'react'\nimport type { FormElementProps } from '@mirohq/design-system-base-form'\n\nimport type { StyledTriggerProps } from '../partials/trigger.styled'\nimport type { Direction } from '../types'\n\ninterface SelectProps extends FormElementProps {\n defaultOpen?: boolean\n direction?: Direction\n open?: boolean\n valid?: boolean\n}\n\ninterface SelectContextProps extends SelectProps {\n setOpenState: React.Dispatch<React.SetStateAction<boolean | undefined>>\n openState?: boolean | undefined\n placeholder?: React.ReactNode\n setPlaceholder: React.Dispatch<React.SetStateAction<React.ReactNode>>\n size: StyledTriggerProps['size']\n setSize: React.Dispatch<React.SetStateAction<StyledTriggerProps['size']>>\n loading?: boolean\n setLoading: React.Dispatch<React.SetStateAction<boolean | undefined>>\n}\n\nexport interface SelectProviderProps extends SelectProps {\n children: React.ReactNode\n}\n\nconst SelectContext = createContext<SelectContextProps>({} as any)\n\nexport const SelectProvider = ({\n children,\n defaultOpen,\n open,\n valid,\n ...restProps\n}: SelectProviderProps): JSX.Element => {\n const [openState, setOpenState] = useState(defaultOpen)\n const [loading, setLoading] = useState<boolean | undefined>(false)\n const [placeholder, setPlaceholder] = useState<React.ReactNode>()\n const [size, setSize] = useState<StyledTriggerProps['size']>()\n\n return (\n <SelectContext.Provider\n value={{\n ...restProps,\n valid,\n open,\n openState,\n setOpenState,\n placeholder,\n setPlaceholder,\n size,\n setSize,\n loading,\n setLoading,\n }}\n >\n {children}\n </SelectContext.Provider>\n )\n}\n\nexport const useSelectContext = (): SelectContextProps =>\n useContext(SelectContext)\n","import React, { useState, useEffect, useRef } from 'react'\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'\nimport {\n booleanify,\n booleanishAttrValue,\n stringAttrValue,\n mergeRefs,\n handleVirtualClick,\n} from '@mirohq/design-system-utils'\nimport { useFormFieldContext } from '@mirohq/design-system-base-form'\nimport { mergeProps } from '@react-aria/utils'\nimport { Spinner } from '@mirohq/design-system-spinner'\n\nimport { StyledTrigger } from './trigger.styled'\nimport { useSelectContext } from '../hooks/use-select-context'\nimport { StyledSelectIcon, StyledIconChevronDown } 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 /**\n * The size of the trigger.\n * @default 'large'\n */\n size?: StyledTriggerProps['size']\n\n /**\n * The aria label of the trigger.\n */\n 'aria-label'?: string\n}\n\nexport const Trigger = React.forwardRef<\n ElementRef<typeof StyledTrigger>,\n TriggerProps\n>(\n (\n {\n id,\n onKeyDown,\n onPointerDown,\n onFocus,\n onBlur,\n children,\n size = 'large',\n asChild = false,\n 'aria-describedby': ariaDescribedBy,\n 'aria-invalid': ariaInvalid,\n onHoverChange,\n onHoverStart,\n onHoverEnd,\n onClick,\n 'aria-label': ariaLabel,\n ...restProps\n },\n forwardRef\n ) => {\n const ref = useRef<HTMLButtonElement>(null)\n const {\n 'aria-disabled': ariaDisabled,\n disabled,\n valid: selectValid,\n setSize,\n open,\n openState,\n loading = false,\n placeholder,\n } = useSelectContext()\n const [focused, setFocused] = useState(false)\n const isOpen = open ?? openState ?? false\n\n const {\n formElementId,\n ariaDescribedBy: formFieldContextDescribedBy,\n ariaInvalid: formFieldAriaInvalid,\n valid: formFieldValid,\n } = useFormFieldContext()\n\n // validity\n const valid = formFieldValid ?? selectValid\n\n const { hoverProps, isHovered: hovered } = useHover({\n onHoverStart,\n onHoverEnd,\n onHoverChange: isHovering => {\n onHoverChange?.(isHovering)\n },\n })\n\n let triggerlabel = ''\n if (typeof placeholder === 'string') {\n triggerlabel = placeholder\n }\n\n const commonProps = {\n ...mergeProps(restProps, hoverProps),\n 'aria-disabled': loading || ariaDisabled,\n onPointerDown: (e: PointerEvent<HTMLButtonElement>) => {\n if (booleanify(loading) || booleanify(ariaDisabled)) {\n e.preventDefault()\n } else {\n onPointerDown?.(e)\n }\n },\n onKeyDown: (e: React.KeyboardEvent<HTMLButtonElement>) => {\n if (\n (booleanify(loading) || 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': booleanishAttrValue(valid === false),\n 'data-valid': booleanishAttrValue(valid),\n 'data-focused': booleanishAttrValue(focused),\n 'data-hovered': booleanishAttrValue(hovered),\n 'aria-invalid': ariaInvalid ?? formFieldAriaInvalid,\n 'aria-describedby': stringAttrValue(\n ariaDescribedBy,\n formFieldContextDescribedBy\n ),\n 'aria-label': ariaLabel ?? triggerlabel,\n id: id ?? formElementId,\n onClick: (e: React.MouseEvent<HTMLButtonElement, MouseEvent>) => {\n handleVirtualClick(e, ref)\n onClick?.(e)\n },\n ref: mergeRefs([ref, forwardRef]),\n }\n\n useEffect(() => {\n setSize(size)\n if (booleanify(disabled)) setFocused(false)\n }, [size, setSize, ariaDisabled, disabled])\n\n if (asChild) {\n return (\n <RadixTrigger {...commonProps} asChild>\n {children}\n </RadixTrigger>\n )\n }\n\n const SelectIcon = StyledIconChevronDown\n\n return (\n <StyledTrigger {...commonProps} size={size}>\n {loading ? (\n <Spinner css={{ flex: 1, placeSelf: 'center' }} />\n ) : (\n children\n )}\n <StyledSelectIcon asChild>\n <SelectIcon size='small' />\n </StyledSelectIcon>\n </StyledTrigger>\n )\n }\n)\n","import { styled } from '@mirohq/design-system-stitches'\n\nexport const StyledValue = styled('span', {\n paddingX: '$50',\n display: 'block',\n width: '100%',\n overflow: 'hidden',\n\n '& span:first-child': {\n display: 'block',\n overflow: 'hidden',\n textOverflow: 'ellipsis',\n whiteSpace: 'nowrap',\n },\n})\n","import React, { useEffect } 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 { useSelectContext } from '../hooks/use-select-context'\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>(({ placeholder, ...restProps }, forwardRef) => {\n const { setPlaceholder } = useSelectContext()\n\n useEffect(() => {\n setPlaceholder(placeholder)\n }, [setPlaceholder, placeholder])\n\n return (\n <StyledValue ref={forwardRef}>\n <RadixValue {...restProps} placeholder={placeholder} ref={forwardRef} />\n </StyledValue>\n )\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 {\n contentStyles,\n itemsContainerStyles,\n} from '@mirohq/design-system-base-select'\nimport { Primitive } from '@mirohq/design-system-primitive'\n\nexport const StyledItemsContainer = styled(Primitive.div, itemsContainerStyles)\n\nexport const StyledContent = styled(RadixContent, {\n ...contentStyles,\n minWidth: 'var(--radix-select-trigger-width)',\n})\n\nexport type StyledContentProps = StrictComponentProps<typeof StyledContent>\n","import React from 'react'\nimport type { ElementRef, ReactNode } from 'react'\nimport { ScrollArea } from '@mirohq/design-system-scroll-area'\nimport type { CSSProperties } from '@stitches/react'\nimport { Viewport as RadixViewport } from '@radix-ui/react-select'\nimport { theme } from '@mirohq/design-system-stitches'\n\nimport { StyledContent, StyledItemsContainer } 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])\nconst RADIX_CONTENT_AVAILABLE_HEIGHT =\n 'var(--radix-select-content-available-height)'\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.\n * @default 'bottom'\n */\n side?: Side\n\n /**\n * The distance in pixels from the anchor.\n * @default CONTENT_OFFSET\n */\n sideOffset?: number\n\n /**\n * The preferred alignment against the anchor. May change when collisions\n * occur.\n * @default 'center'\n */\n align?: Align\n\n /**\n * An offset in pixels from the \"start\" or \"end\" alignment options.\n * @default 0\n */\n alignOffset?: number\n\n /**\n * When true, overrides the side and align preferences to prevent collisions\n * with boundary edges.\n * @default true\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.\n * @default viewport\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 }.\n * @default 0\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.\n * @default 'partial'\n */\n sticky?: Sticky\n\n /**\n * Whether to hide the content when the trigger becomes fully occluded.\n * @default true\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\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 * @default 'visible'\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\n const content = <StyledItemsContainer>{children}</StyledItemsContainer>\n\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\n css={{\n maxHeight:\n maxHeight !== undefined\n ? `min(${RADIX_CONTENT_AVAILABLE_HEIGHT}, ${\n typeof maxHeight === 'number'\n ? `${maxHeight}px`\n : maxHeight\n })`\n : RADIX_CONTENT_AVAILABLE_HEIGHT,\n }}\n >\n {content}\n </ScrollArea.Viewport>\n <ScrollArea.Scrollbar orientation='vertical'>\n <ScrollArea.Thumb />\n </ScrollArea.Scrollbar>\n </ScrollArea>\n ) : (\n <>{content}</>\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'\nimport { groupLabelStyles } from '@mirohq/design-system-base-select'\n\nexport const StyledGroupLabel = styled(RadixLabel, groupLabelStyles)\n\nexport type StyledGroupLabelProps = StrictComponentProps<\n typeof StyledGroupLabel\n>\n","import React from 'react'\nimport type { ElementRef } from 'react'\n\nimport { StyledGroupLabel } from './group-label.styled'\nimport type { StyledGroupLabelProps } from './group-label.styled'\n\nexport interface GroupLabelProps extends StyledGroupLabelProps {}\n\nexport const GroupLabel = React.forwardRef<\n ElementRef<typeof StyledGroupLabel>,\n GroupLabelProps\n>((props, forwardRef) => <StyledGroupLabel {...props} ref={forwardRef} />)\n","import { Separator as RadixSeparator } from '@radix-ui/react-select'\nimport { styled } from '@mirohq/design-system-stitches'\nimport type { StrictComponentProps } from '@mirohq/design-system-stitches'\nimport { separatorStyles } from '@mirohq/design-system-base-select'\n\nexport const StyledSeparator = styled(RadixSeparator, separatorStyles)\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, { useEffect, useRef } from 'react'\nimport type { ElementRef, ForwardRefExoticComponent } from 'react'\nimport type { FormElementProps } from '@mirohq/design-system-base-form'\nimport { useFormFieldContext } from '@mirohq/design-system-base-form'\nimport { mergeRefs } from '@mirohq/design-system-utils'\nimport type { SelectProps as RadixSelectProps } from '@radix-ui/react-select'\nimport { Root as RadixSelect } from '@radix-ui/react-select'\nimport { usePrevious } from '@mirohq/design-system-use-previous'\nimport {\n BaseTooltipProvider,\n useBaseTooltipContext,\n} from '@mirohq/design-system-base-tooltip'\n\nimport { StyledSelectContent } from './select.styled'\nimport type { StyledSelectContentProps } 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 { GroupLabel } from './partials/group-label'\nimport { Separator } from './partials/separator'\nimport { SelectProvider, useSelectContext } from './hooks/use-select-context'\nimport type { Direction } from './types'\n\nexport interface SelectProps\n extends FormElementProps,\n Omit<RadixSelectProps, 'onOpenChange'>,\n Omit<StyledSelectContentProps, '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 * @default false\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 * @default 'ltr'\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 * Enables loading state for the select.\n */\n loading?: boolean\n}\n\nconst Root = React.forwardRef<ElementRef<'select'>, SelectProps>(\n (\n {\n onOpen,\n onClose,\n children,\n onValueChange,\n value,\n defaultValue,\n loading = false,\n css,\n // @ts-expect-error className required when extending the component with styled()\n className,\n ...restProps\n },\n forwardRef\n ) => {\n const {\n required,\n readOnly,\n 'aria-disabled': ariaDisabled,\n setLoading,\n disabled,\n direction,\n setOpenState,\n openState,\n open,\n } = useSelectContext()\n\n const {\n setRequired,\n setDisabled,\n setAriaDisabled,\n setReadOnly,\n formElementRef,\n } = useFormFieldContext<HTMLSelectElement>()\n\n useEffect(() => {\n setRequired?.(required)\n setDisabled?.(disabled)\n setAriaDisabled?.(ariaDisabled)\n setLoading(loading)\n setReadOnly?.(readOnly)\n }, [\n readOnly,\n disabled,\n loading,\n ariaDisabled,\n required,\n setRequired,\n setDisabled,\n setAriaDisabled,\n setReadOnly,\n setLoading,\n ])\n\n const { ignoreNextTooltip } = useBaseTooltipContext()\n const prevOpen = usePrevious(open)\n\n useEffect(() => {\n if (prevOpen === true && open === false) {\n ignoreNextTooltip()\n }\n }, [ignoreNextTooltip, open, prevOpen])\n\n const selectRef = useRef<HTMLSelectElement>()\n\n // intentionally not using useCallback to force formElementRef to be updated\n const domRef = (node: HTMLDivElement): void => {\n const selectElement = node?.nextElementSibling as HTMLSelectElement | null\n\n if (selectElement?.tagName === 'SELECT') {\n selectRef.current = selectElement\n }\n\n // @ts-expect-error TS doesn't know about the dynamic set of the generated select element\n mergeRefs([forwardRef, formElementRef])(selectElement)\n }\n\n return (\n <RadixSelect\n {...restProps}\n value={value}\n defaultValue={defaultValue}\n onValueChange={newValue => {\n onValueChange?.(newValue)\n }}\n dir={direction}\n disabled={disabled}\n required={required}\n open={open ?? openState}\n onOpenChange={newOpen => {\n if (open == null) {\n setOpenState(newOpen)\n\n if (!newOpen) {\n ignoreNextTooltip()\n }\n }\n\n newOpen ? onOpen?.() : onClose?.()\n }}\n >\n <StyledSelectContent\n ref={domRef}\n data-form-element='select'\n css={css}\n // @ts-expect-error className required when extending the component with styled()\n className={className}\n >\n {children}\n </StyledSelectContent>\n </RadixSelect>\n )\n }\n)\n\nexport const Select = React.forwardRef<ElementRef<'select'>, SelectProps>(\n (\n {\n 'aria-disabled': ariaDisabled,\n defaultOpen = false,\n direction = 'ltr',\n disabled,\n readOnly,\n required,\n valid,\n open,\n ...restProps\n },\n forwardRef\n ) => (\n <SelectProvider\n open={open}\n aria-disabled={ariaDisabled}\n defaultOpen={defaultOpen}\n direction={direction}\n required={required}\n disabled={disabled}\n readOnly={readOnly}\n valid={valid}\n >\n <BaseTooltipProvider>\n <Root {...restProps} ref={forwardRef} />\n </BaseTooltipProvider>\n </SelectProvider>\n )\n) as ForwardRefExoticComponent<SelectProps> & Partials\n\nexport interface Partials {\n Content: typeof Content\n Separator: typeof Separator\n GroupLabel: typeof GroupLabel\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.GroupLabel = GroupLabel\n"],"names":["RadixGroup","RadixItem","RadixItemIndicator","RadixItemText","RadixSelectIcon","RadixTrigger","RadixValue","RadixContent","RadixViewport","RadixLabel","RadixSeparator","RadixSelect"],"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.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/group-label.styled.tsx","../src/partials/group-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 { Primitive } from '@mirohq/design-system-primitive'\n\nexport const StyledSelectContent = styled(Primitive.div, {\n position: 'relative',\n width: '100%',\n display: 'inline-flex',\n})\n\nexport type StyledSelectContentProps = ComponentPropsWithRef<\n typeof StyledSelectContent\n>\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 { styled } from '@mirohq/design-system-stitches'\nimport type { StrictComponentProps } from '@mirohq/design-system-stitches'\nimport { itemStyles } from '@mirohq/design-system-base-select'\nimport { Primitive } from '@mirohq/design-system-primitive'\n\nexport const StyledItem = styled(RadixItem, itemStyles)\n\nexport const StyledItemText = styled(Primitive.span, {\n display: 'flex',\n gridColumn: 2,\n width: '100%',\n})\n\nexport type StyledItemProps = StrictComponentProps<typeof StyledItem>\n","import React, { useRef } from 'react'\nimport type { ElementRef } from 'react'\nimport { IconCheckMark } from '@mirohq/design-system-icons'\nimport {\n ItemText as RadixItemText,\n ItemIndicator as RadixItemIndicator,\n} from '@radix-ui/react-select'\nimport {\n booleanify,\n mergeRefs,\n handleVirtualClick,\n} from '@mirohq/design-system-utils'\nimport { StyledItemCheck } from '@mirohq/design-system-base-select'\n\nimport { StyledItem, StyledItemText } from './item.styled'\nimport type { StyledItemProps } from './item.styled'\n\nexport interface ItemProps extends StyledItemProps {\n /**\n * The value given as data when submitted with a name.\n */\n value: string\n\n /**\n * When true, prevents the user from interacting with the item.\n * @default false\n */\n disabled?: boolean\n\n /**\n * Optional text used for typeahead purposes. By default the typeahead\n * behavior will use the 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 asChild,\n onClick,\n ...restProps\n },\n forwardRef\n ) => {\n const ref = useRef<HTMLDivElement>(null)\n\n return (\n <StyledItem\n {...restProps}\n aria-disabled={booleanify(ariaDisabled) ? ariaDisabled : undefined}\n onClick={e => {\n handleVirtualClick(e, ref)\n onClick?.(e)\n }}\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={mergeRefs([ref, forwardRef])}\n >\n <RadixItemIndicator asChild>\n <StyledItemCheck>\n <IconCheckMark size='small' />\n </StyledItemCheck>\n </RadixItemIndicator>\n <RadixItemText asChild>\n <StyledItemText asChild={asChild}>{children}</StyledItemText>\n </RadixItemText>\n </StyledItem>\n )\n }\n)\n","import { styled } from '@mirohq/design-system-stitches'\nimport { SelectIcon as RadixSelectIcon } from '@radix-ui/react-select'\nimport { IconChevronDown } from '@mirohq/design-system-icons'\n\nexport const StyledSelectIcon = styled(RadixSelectIcon, {\n flexShrink: 0,\n margin: '6px',\n})\n\nexport const StyledIconChevronDown = styled(IconChevronDown, {\n color: '$icon-neutrals-text',\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'\nimport { textFieldStyles } from '@mirohq/design-system-base-text-field'\n\nimport { StyledSelectIcon } from './select-icon.styled'\n\nexport const StyledTrigger = styled(RadixTrigger, {\n all: 'unset',\n backgroundColor: '$background-neutrals-container',\n cursor: 'pointer',\n display: 'flex',\n minWidth: 0,\n position: 'relative',\n userSelect: 'none',\n justifyContent: 'space-between',\n alignItems: 'center',\n\n ...textFieldStyles.variants.idle,\n\n '&[data-invalid]': textFieldStyles.variants.invalid.idle,\n\n '&[data-valid]': textFieldStyles.variants.valid.idle,\n\n '&[data-invalid][data-hovered]': textFieldStyles.variants.invalid.hovered,\n\n '&[data-valid][data-hovered]': textFieldStyles.variants.valid.hovered,\n\n '&:active, &[data-state=\"open\"]': {\n borderColor: '$border-primary-active',\n },\n\n '&[data-state=\"open\"]': {\n [`& ${StyledSelectIcon}`]: {\n transform: 'rotate(180deg)',\n },\n },\n\n '&:not([disabled])': {\n ...focus.css({\n ...textFieldStyles.variants.focused,\n }),\n },\n\n '&[data-placeholder]': textFieldStyles.base.placeholder.color,\n\n '&[data-hovered]': textFieldStyles.variants.hovered,\n\n '&[disabled], &[aria-disabled=\"true\"]': {\n ...textFieldStyles.variants.disabled,\n\n svg: {\n color: '$icon-neutrals-disabled',\n },\n },\n\n variants: {\n size: {\n medium: {\n height: '$8',\n paddingX: '$50',\n gap: '$25',\n },\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 fontSize: '$200',\n lineHeight: '$500',\n },\n },\n },\n})\n\nexport type StyledTriggerProps = StrictComponentProps<typeof StyledTrigger>\n","import { createContext, useContext, useState } from 'react'\nimport type { FormElementProps } from '@mirohq/design-system-base-form'\n\nimport type { StyledTriggerProps } from '../partials/trigger.styled'\nimport type { Direction } from '../types'\n\ninterface SelectProps extends FormElementProps {\n defaultOpen?: boolean\n direction?: Direction\n open?: boolean\n valid?: boolean\n}\n\ninterface SelectContextProps extends SelectProps {\n setOpenState: React.Dispatch<React.SetStateAction<boolean | undefined>>\n openState?: boolean | undefined\n placeholder?: React.ReactNode\n setPlaceholder: React.Dispatch<React.SetStateAction<React.ReactNode>>\n size: StyledTriggerProps['size']\n setSize: React.Dispatch<React.SetStateAction<StyledTriggerProps['size']>>\n loading?: boolean\n setLoading: React.Dispatch<React.SetStateAction<boolean | undefined>>\n}\n\nexport interface SelectProviderProps extends SelectProps {\n children: React.ReactNode\n}\n\nconst SelectContext = createContext<SelectContextProps>({} as any)\n\nexport const SelectProvider = ({\n children,\n defaultOpen,\n open,\n valid,\n ...restProps\n}: SelectProviderProps): JSX.Element => {\n const [openState, setOpenState] = useState(defaultOpen)\n const [loading, setLoading] = useState<boolean | undefined>(false)\n const [placeholder, setPlaceholder] = useState<React.ReactNode>()\n const [size, setSize] = useState<StyledTriggerProps['size']>()\n\n return (\n <SelectContext.Provider\n value={{\n ...restProps,\n valid,\n open,\n openState,\n setOpenState,\n placeholder,\n setPlaceholder,\n size,\n setSize,\n loading,\n setLoading,\n }}\n >\n {children}\n </SelectContext.Provider>\n )\n}\n\nexport const useSelectContext = (): SelectContextProps =>\n useContext(SelectContext)\n","import React, { useState, useEffect, useRef } from 'react'\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'\nimport {\n booleanify,\n booleanishAttrValue,\n stringAttrValue,\n mergeRefs,\n handleVirtualClick,\n} from '@mirohq/design-system-utils'\nimport { useFormFieldContext } from '@mirohq/design-system-base-form'\nimport { mergeProps } from '@react-aria/utils'\nimport { Spinner } from '@mirohq/design-system-spinner'\n\nimport { StyledTrigger } from './trigger.styled'\nimport { useSelectContext } from '../hooks/use-select-context'\nimport { StyledSelectIcon, StyledIconChevronDown } 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 /**\n * The size of the trigger.\n * @default 'large'\n */\n size?: StyledTriggerProps['size']\n\n /**\n * The aria label of the trigger.\n */\n 'aria-label'?: string\n}\n\nexport const Trigger = React.forwardRef<\n ElementRef<typeof StyledTrigger>,\n TriggerProps\n>(\n (\n {\n id,\n onKeyDown,\n onPointerDown,\n onFocus,\n onBlur,\n children,\n size = 'large',\n asChild = false,\n 'aria-describedby': ariaDescribedBy,\n 'aria-invalid': ariaInvalid,\n onHoverChange,\n onHoverStart,\n onHoverEnd,\n onClick,\n 'aria-label': ariaLabel,\n ...restProps\n },\n forwardRef\n ) => {\n const ref = useRef<HTMLButtonElement>(null)\n const {\n 'aria-disabled': ariaDisabled,\n disabled,\n valid: selectValid,\n setSize,\n open,\n openState,\n loading = false,\n placeholder,\n } = useSelectContext()\n const [focused, setFocused] = useState(false)\n const isOpen = open ?? openState ?? false\n\n const {\n formElementId,\n ariaDescribedBy: formFieldContextDescribedBy,\n ariaInvalid: formFieldAriaInvalid,\n valid: formFieldValid,\n } = useFormFieldContext()\n\n // validity\n const valid = formFieldValid ?? selectValid\n\n const { hoverProps, isHovered: hovered } = useHover({\n onHoverStart,\n onHoverEnd,\n onHoverChange: isHovering => {\n onHoverChange?.(isHovering)\n },\n })\n\n let triggerlabel = ''\n if (typeof placeholder === 'string') {\n triggerlabel = placeholder\n }\n\n const commonProps = {\n ...mergeProps(restProps, hoverProps),\n 'aria-disabled': loading || ariaDisabled,\n onPointerDown: (e: PointerEvent<HTMLButtonElement>) => {\n if (booleanify(loading) || booleanify(ariaDisabled)) {\n e.preventDefault()\n } else {\n onPointerDown?.(e)\n }\n },\n onKeyDown: (e: React.KeyboardEvent<HTMLButtonElement>) => {\n if (\n (booleanify(loading) || 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': booleanishAttrValue(valid === false),\n 'data-valid': booleanishAttrValue(valid),\n 'data-focused': booleanishAttrValue(focused),\n 'data-hovered': booleanishAttrValue(hovered),\n 'aria-invalid': ariaInvalid ?? formFieldAriaInvalid,\n 'aria-describedby': stringAttrValue(\n ariaDescribedBy,\n formFieldContextDescribedBy\n ),\n 'aria-label': ariaLabel ?? triggerlabel,\n id: id ?? formElementId,\n onClick: (e: React.MouseEvent<HTMLButtonElement, MouseEvent>) => {\n handleVirtualClick(e, ref)\n onClick?.(e)\n },\n ref: mergeRefs([ref, forwardRef]),\n }\n\n useEffect(() => {\n setSize(size)\n if (booleanify(disabled)) setFocused(false)\n }, [size, setSize, ariaDisabled, disabled])\n\n if (asChild) {\n return (\n <RadixTrigger {...commonProps} asChild>\n {children}\n </RadixTrigger>\n )\n }\n\n const SelectIcon = StyledIconChevronDown\n\n return (\n <StyledTrigger {...commonProps} size={size}>\n {loading ? (\n <Spinner css={{ flex: 1, placeSelf: 'center' }} />\n ) : (\n children\n )}\n <StyledSelectIcon asChild>\n <SelectIcon size='small' />\n </StyledSelectIcon>\n </StyledTrigger>\n )\n }\n)\n","import { styled } from '@mirohq/design-system-stitches'\n\nexport const StyledValue = styled('span', {\n paddingX: '$50',\n display: 'block',\n width: '100%',\n overflow: 'hidden',\n\n '& span:first-child': {\n display: 'block',\n overflow: 'hidden',\n textOverflow: 'ellipsis',\n whiteSpace: 'nowrap',\n },\n})\n","import React, { useEffect } 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 { useSelectContext } from '../hooks/use-select-context'\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>(({ placeholder, ...restProps }, forwardRef) => {\n const { setPlaceholder } = useSelectContext()\n\n useEffect(() => {\n setPlaceholder(placeholder)\n }, [setPlaceholder, placeholder])\n\n return (\n <StyledValue ref={forwardRef}>\n <RadixValue {...restProps} placeholder={placeholder} ref={forwardRef} />\n </StyledValue>\n )\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 {\n contentStyles,\n itemsContainerStyles,\n} from '@mirohq/design-system-base-select'\nimport { Primitive } from '@mirohq/design-system-primitive'\n\nexport const StyledItemsContainer = styled(Primitive.div, itemsContainerStyles)\n\nexport const StyledContent = styled(RadixContent, {\n ...contentStyles,\n minWidth: 'var(--radix-select-trigger-width)',\n})\n\nexport type StyledContentProps = StrictComponentProps<typeof StyledContent>\n","import React from 'react'\nimport type { ElementRef, ReactNode } from 'react'\nimport { ScrollArea } from '@mirohq/design-system-scroll-area'\nimport type { CSSProperties } from '@stitches/react'\nimport { Viewport as RadixViewport } from '@radix-ui/react-select'\nimport { theme } from '@mirohq/design-system-stitches'\n\nimport { StyledContent, StyledItemsContainer } 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])\nconst RADIX_CONTENT_AVAILABLE_HEIGHT =\n 'var(--radix-select-content-available-height)'\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.\n * @default 'bottom'\n */\n side?: Side\n\n /**\n * The distance in pixels from the anchor.\n * @default CONTENT_OFFSET\n */\n sideOffset?: number\n\n /**\n * The preferred alignment against the anchor. May change when collisions\n * occur.\n * @default 'center'\n */\n align?: Align\n\n /**\n * An offset in pixels from the \"start\" or \"end\" alignment options.\n * @default 0\n */\n alignOffset?: number\n\n /**\n * When true, overrides the side and align preferences to prevent collisions\n * with boundary edges.\n * @default true\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.\n * @default viewport\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 }.\n * @default 0\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.\n * @default 'partial'\n */\n sticky?: Sticky\n\n /**\n * Whether to hide the content when the trigger becomes fully occluded.\n * @default true\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\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 * @default 'visible'\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\n const content = <StyledItemsContainer>{children}</StyledItemsContainer>\n\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\n css={{\n maxHeight:\n maxHeight !== undefined\n ? `min(${RADIX_CONTENT_AVAILABLE_HEIGHT}, ${\n typeof maxHeight === 'number'\n ? `${maxHeight}px`\n : maxHeight\n })`\n : RADIX_CONTENT_AVAILABLE_HEIGHT,\n }}\n >\n {content}\n </ScrollArea.Viewport>\n <ScrollArea.Scrollbar orientation='vertical'>\n <ScrollArea.Thumb />\n </ScrollArea.Scrollbar>\n </ScrollArea>\n ) : (\n <>{content}</>\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'\nimport { groupLabelStyles } from '@mirohq/design-system-base-select'\n\nexport const StyledGroupLabel = styled(RadixLabel, groupLabelStyles)\n\nexport type StyledGroupLabelProps = StrictComponentProps<\n typeof StyledGroupLabel\n>\n","import React from 'react'\nimport type { ElementRef } from 'react'\n\nimport { StyledGroupLabel } from './group-label.styled'\nimport type { StyledGroupLabelProps } from './group-label.styled'\n\nexport interface GroupLabelProps extends StyledGroupLabelProps {}\n\nexport const GroupLabel = React.forwardRef<\n ElementRef<typeof StyledGroupLabel>,\n GroupLabelProps\n>((props, forwardRef) => <StyledGroupLabel {...props} ref={forwardRef} />)\n","import { Separator as RadixSeparator } from '@radix-ui/react-select'\nimport { styled } from '@mirohq/design-system-stitches'\nimport type { StrictComponentProps } from '@mirohq/design-system-stitches'\nimport { separatorStyles } from '@mirohq/design-system-base-select'\n\nexport const StyledSeparator = styled(RadixSeparator, separatorStyles)\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, { useEffect, useRef } from 'react'\nimport type { ElementRef, ForwardRefExoticComponent } from 'react'\nimport type { FormElementProps } from '@mirohq/design-system-base-form'\nimport { useFormFieldContext } from '@mirohq/design-system-base-form'\nimport { mergeRefs } from '@mirohq/design-system-utils'\nimport type { SelectProps as RadixSelectProps } from '@radix-ui/react-select'\nimport { Root as RadixSelect } from '@radix-ui/react-select'\nimport { usePrevious } from '@mirohq/design-system-use-previous'\nimport {\n BaseTooltipProvider,\n useBaseTooltipContext,\n} from '@mirohq/design-system-base-tooltip'\n\nimport { StyledSelectContent } from './select.styled'\nimport type { StyledSelectContentProps } 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 { GroupLabel } from './partials/group-label'\nimport { Separator } from './partials/separator'\nimport { SelectProvider, useSelectContext } from './hooks/use-select-context'\nimport type { Direction } from './types'\n\nexport interface SelectProps\n extends FormElementProps,\n Omit<RadixSelectProps, 'onOpenChange'>,\n Omit<StyledSelectContentProps, '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 * @default false\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 * @default 'ltr'\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 * Enables loading state for the select.\n */\n loading?: boolean\n}\n\nconst Root = React.forwardRef<ElementRef<'select'>, SelectProps>(\n (\n {\n onOpen,\n onClose,\n children,\n onValueChange,\n value,\n defaultValue,\n loading = false,\n css,\n // @ts-expect-error className required when extending the component with styled()\n className,\n ...restProps\n },\n forwardRef\n ) => {\n const {\n required,\n readOnly,\n 'aria-disabled': ariaDisabled,\n setLoading,\n disabled,\n direction,\n setOpenState,\n openState,\n open,\n } = useSelectContext()\n\n const {\n setRequired,\n setDisabled,\n setAriaDisabled,\n setReadOnly,\n formElementRef,\n } = useFormFieldContext<HTMLSelectElement>()\n\n useEffect(() => {\n setRequired?.(required)\n setDisabled?.(disabled)\n setAriaDisabled?.(ariaDisabled)\n setLoading(loading)\n setReadOnly?.(readOnly)\n }, [\n readOnly,\n disabled,\n loading,\n ariaDisabled,\n required,\n setRequired,\n setDisabled,\n setAriaDisabled,\n setReadOnly,\n setLoading,\n ])\n\n const { ignoreNextTooltip } = useBaseTooltipContext()\n const prevOpen = usePrevious(open)\n\n useEffect(() => {\n if (prevOpen === true && open === false) {\n ignoreNextTooltip()\n }\n }, [ignoreNextTooltip, open, prevOpen])\n\n const selectRef = useRef<HTMLSelectElement>()\n\n // intentionally not using useCallback to force formElementRef to be updated\n const domRef = (node: HTMLDivElement): void => {\n const selectElement = node?.nextElementSibling as HTMLSelectElement | null\n\n if (selectElement?.tagName === 'SELECT') {\n selectRef.current = selectElement\n }\n\n // @ts-expect-error TS doesn't know about the dynamic set of the generated select element\n mergeRefs([forwardRef, formElementRef])(selectElement)\n }\n\n return (\n <RadixSelect\n {...restProps}\n value={value}\n defaultValue={defaultValue}\n onValueChange={newValue => {\n onValueChange?.(newValue)\n }}\n dir={direction}\n disabled={disabled}\n required={required}\n open={open ?? openState}\n onOpenChange={newOpen => {\n if (open == null) {\n setOpenState(newOpen)\n\n if (!newOpen) {\n ignoreNextTooltip()\n }\n }\n\n newOpen ? onOpen?.() : onClose?.()\n }}\n >\n <StyledSelectContent\n ref={domRef}\n data-form-element='select'\n css={css}\n // @ts-expect-error className required when extending the component with styled()\n className={className}\n >\n {children}\n </StyledSelectContent>\n </RadixSelect>\n )\n }\n)\n\nexport const Select = React.forwardRef<ElementRef<'select'>, SelectProps>(\n (\n {\n 'aria-disabled': ariaDisabled,\n defaultOpen = false,\n direction = 'ltr',\n disabled,\n readOnly,\n required,\n valid,\n open,\n ...restProps\n },\n forwardRef\n ) => (\n <SelectProvider\n open={open}\n aria-disabled={ariaDisabled}\n defaultOpen={defaultOpen}\n direction={direction}\n required={required}\n disabled={disabled}\n readOnly={readOnly}\n valid={valid}\n >\n <BaseTooltipProvider>\n <Root {...restProps} ref={forwardRef} />\n </BaseTooltipProvider>\n </SelectProvider>\n )\n) as ForwardRefExoticComponent<SelectProps> & Partials\n\nexport interface Partials {\n Content: typeof Content\n Separator: typeof Separator\n GroupLabel: typeof GroupLabel\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.GroupLabel = GroupLabel\n"],"names":["RadixGroup","RadixItem","RadixItemIndicator","RadixItemText","RadixSelectIcon","RadixTrigger","RadixValue","RadixContent","RadixViewport","RadixLabel","RadixSeparator","RadixSelect"],"mappings":"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"}
package/dist/types.d.ts CHANGED
@@ -3,24 +3,43 @@ import react__default, { ComponentPropsWithRef, ReactNode, ForwardRefExoticCompo
3
3
  import { FormElementProps } from '@mirohq/design-system-base-form';
4
4
  import * as _radix_ui_react_select from '@radix-ui/react-select';
5
5
  import { SelectPortalProps, Value as Value$1, SelectProps as SelectProps$1, Portal } from '@radix-ui/react-select';
6
- import * as _stitches_react_types_styled_component from '@stitches/react/types/styled-component';
7
6
  import * as _mirohq_design_system_stitches from '@mirohq/design-system-stitches';
8
7
  import { StrictComponentProps } from '@mirohq/design-system-stitches';
9
8
  import * as _mirohq_design_system_primitive from '@mirohq/design-system-primitive';
10
9
  import { HoverEvents } from '@react-types/shared';
11
10
  import { CSSProperties } from '@stitches/react';
12
11
 
13
- declare const StyledSelectContent: react.ForwardRefExoticComponent<Omit<Omit<_mirohq_design_system_stitches.StyledComponentProps<react.ForwardRefExoticComponent<_mirohq_design_system_primitive.PrimitiveProps<"div">>>, never> & _stitches_react_types_styled_component.TransformProps<{}, {}> & _mirohq_design_system_stitches.CustomStylesProps, "ref"> & react.RefAttributes<HTMLDivElement>> & _mirohq_design_system_stitches.StitchesInternals<react.ForwardRefExoticComponent<_mirohq_design_system_primitive.PrimitiveProps<"div">>, {}, {}>;
12
+ /* Utilities */
13
+ /* ========================================================================== */
14
+
15
+ /** Returns a string with the given prefix followed by the given values. */
16
+ type Prefixed<K extends string, T> = `${K}${Extract<T, boolean | number | string>}`
17
+
18
+ type TransformProps<Props, Media> = {
19
+ [K in keyof Props]: (
20
+ | Props[K]
21
+ | (
22
+ & {
23
+ [KMedia in Prefixed<'@', 'initial' | keyof Media>]?: Props[K]
24
+ }
25
+ & {
26
+ [KMedia in string]: Props[K]
27
+ }
28
+ )
29
+ )
30
+ }
31
+
32
+ declare const StyledSelectContent: react.ForwardRefExoticComponent<Omit<Omit<_mirohq_design_system_stitches.StyledComponentProps<react.ForwardRefExoticComponent<_mirohq_design_system_primitive.PrimitiveProps<"div">>>, never> & TransformProps<{}, {}> & _mirohq_design_system_stitches.CustomStylesProps, "ref"> & react.RefAttributes<HTMLDivElement>> & _mirohq_design_system_stitches.StitchesInternals<react.ForwardRefExoticComponent<_mirohq_design_system_primitive.PrimitiveProps<"div">>, {}, {}>;
14
33
  type StyledSelectContentProps = ComponentPropsWithRef<typeof StyledSelectContent>;
15
34
 
16
- declare const StyledGroup: react.ForwardRefExoticComponent<Omit<Omit<_mirohq_design_system_stitches.StyledComponentProps<react.ForwardRefExoticComponent<_radix_ui_react_select.SelectGroupProps & react.RefAttributes<HTMLDivElement>>>, never> & _stitches_react_types_styled_component.TransformProps<{}, {}> & _mirohq_design_system_stitches.CustomStylesProps, "ref"> & react.RefAttributes<HTMLDivElement>> & _mirohq_design_system_stitches.StitchesInternals<react.ForwardRefExoticComponent<_radix_ui_react_select.SelectGroupProps & react.RefAttributes<HTMLDivElement>>, {}, {}>;
35
+ declare const StyledGroup: react.ForwardRefExoticComponent<Omit<Omit<_mirohq_design_system_stitches.StyledComponentProps<react.ForwardRefExoticComponent<_radix_ui_react_select.SelectGroupProps & react.RefAttributes<HTMLDivElement>>>, never> & TransformProps<{}, {}> & _mirohq_design_system_stitches.CustomStylesProps, "ref"> & react.RefAttributes<HTMLDivElement>> & _mirohq_design_system_stitches.StitchesInternals<react.ForwardRefExoticComponent<_radix_ui_react_select.SelectGroupProps & react.RefAttributes<HTMLDivElement>>, {}, {}>;
17
36
  type StyledGroupProps = StrictComponentProps<typeof StyledGroup>;
18
37
 
19
38
  interface GroupProps extends StyledGroupProps {
20
39
  }
21
40
  declare const Group: react__default.ForwardRefExoticComponent<Omit<GroupProps, "ref"> & react__default.RefAttributes<HTMLDivElement>>;
22
41
 
23
- declare const StyledItem: react.ForwardRefExoticComponent<Omit<Omit<_mirohq_design_system_stitches.StyledComponentProps<react.ForwardRefExoticComponent<_radix_ui_react_select.SelectItemProps & react.RefAttributes<HTMLDivElement>>>, never> & _stitches_react_types_styled_component.TransformProps<{}, {}> & _mirohq_design_system_stitches.CustomStylesProps, "ref"> & react.RefAttributes<HTMLDivElement>> & _mirohq_design_system_stitches.StitchesInternals<react.ForwardRefExoticComponent<_radix_ui_react_select.SelectItemProps & react.RefAttributes<HTMLDivElement>>, {}, {}>;
42
+ declare const StyledItem: react.ForwardRefExoticComponent<Omit<Omit<_mirohq_design_system_stitches.StyledComponentProps<react.ForwardRefExoticComponent<_radix_ui_react_select.SelectItemProps & react.RefAttributes<HTMLDivElement>>>, never> & TransformProps<{}, {}> & _mirohq_design_system_stitches.CustomStylesProps, "ref"> & react.RefAttributes<HTMLDivElement>> & _mirohq_design_system_stitches.StitchesInternals<react.ForwardRefExoticComponent<_radix_ui_react_select.SelectItemProps & react.RefAttributes<HTMLDivElement>>, {}, {}>;
24
43
  type StyledItemProps = StrictComponentProps<typeof StyledItem>;
25
44
 
26
45
  interface ItemProps extends StyledItemProps {
@@ -50,7 +69,7 @@ interface PortalProps extends SelectPortalProps {
50
69
  container?: HTMLElement | null;
51
70
  }
52
71
 
53
- declare const StyledTrigger: react.ForwardRefExoticComponent<Omit<Omit<_mirohq_design_system_stitches.StyledComponentProps<react.ForwardRefExoticComponent<_radix_ui_react_select.SelectTriggerProps & react.RefAttributes<HTMLButtonElement>>>, "size"> & _stitches_react_types_styled_component.TransformProps<{
72
+ declare const StyledTrigger: react.ForwardRefExoticComponent<Omit<Omit<_mirohq_design_system_stitches.StyledComponentProps<react.ForwardRefExoticComponent<_radix_ui_react_select.SelectTriggerProps & react.RefAttributes<HTMLButtonElement>>>, "size"> & TransformProps<{
54
73
  size?: "medium" | "large" | "x-large" | undefined;
55
74
  }, {}> & _mirohq_design_system_stitches.CustomStylesProps, "ref"> & react.RefAttributes<HTMLButtonElement>> & _mirohq_design_system_stitches.StitchesInternals<react.ForwardRefExoticComponent<_radix_ui_react_select.SelectTriggerProps & react.RefAttributes<HTMLButtonElement>>, {
56
75
  size?: "medium" | "large" | "x-large" | undefined;
@@ -88,7 +107,7 @@ interface ValueProps extends StyledValueProps {
88
107
  }
89
108
  declare const Value: react__default.ForwardRefExoticComponent<Omit<ValueProps, "ref"> & react__default.RefAttributes<HTMLSpanElement>>;
90
109
 
91
- declare const StyledContent: react.ForwardRefExoticComponent<Omit<Omit<_mirohq_design_system_stitches.StyledComponentProps<react.ForwardRefExoticComponent<_radix_ui_react_select.SelectContentProps & react.RefAttributes<HTMLDivElement>>>, never> & _stitches_react_types_styled_component.TransformProps<{}, {}> & _mirohq_design_system_stitches.CustomStylesProps, "ref"> & react.RefAttributes<HTMLDivElement>> & _mirohq_design_system_stitches.StitchesInternals<react.ForwardRefExoticComponent<_radix_ui_react_select.SelectContentProps & react.RefAttributes<HTMLDivElement>>, {}, {}>;
110
+ declare const StyledContent: react.ForwardRefExoticComponent<Omit<Omit<_mirohq_design_system_stitches.StyledComponentProps<react.ForwardRefExoticComponent<_radix_ui_react_select.SelectContentProps & react.RefAttributes<HTMLDivElement>>>, never> & TransformProps<{}, {}> & _mirohq_design_system_stitches.CustomStylesProps, "ref"> & react.RefAttributes<HTMLDivElement>> & _mirohq_design_system_stitches.StitchesInternals<react.ForwardRefExoticComponent<_radix_ui_react_select.SelectContentProps & react.RefAttributes<HTMLDivElement>>, {}, {}>;
92
111
  type StyledContentProps = StrictComponentProps<typeof StyledContent>;
93
112
 
94
113
  type PointerDownOutsideEvent = CustomEvent<{
@@ -103,27 +122,17 @@ type Size = 'medium' | 'large';
103
122
  type Sticky = 'partial' | 'always';
104
123
  type Direction = 'ltr' | 'rtl';
105
124
 
106
- type types_PointerDownOutsideEvent = PointerDownOutsideEvent;
107
- type types_Boundary = Boundary;
108
- type types_Side = Side;
109
125
  type types_Align = Align;
110
- type types_Padding = Padding;
126
+ type types_Boundary = Boundary;
127
+ type types_Direction = Direction;
111
128
  type types_Overflow = Overflow;
129
+ type types_Padding = Padding;
130
+ type types_PointerDownOutsideEvent = PointerDownOutsideEvent;
131
+ type types_Side = Side;
112
132
  type types_Size = Size;
113
133
  type types_Sticky = Sticky;
114
- type types_Direction = Direction;
115
134
  declare namespace types {
116
- export {
117
- types_PointerDownOutsideEvent as PointerDownOutsideEvent,
118
- types_Boundary as Boundary,
119
- types_Side as Side,
120
- types_Align as Align,
121
- types_Padding as Padding,
122
- types_Overflow as Overflow,
123
- types_Size as Size,
124
- types_Sticky as Sticky,
125
- types_Direction as Direction,
126
- };
135
+ export type { types_Align as Align, types_Boundary as Boundary, types_Direction as Direction, types_Overflow as Overflow, types_Padding as Padding, types_PointerDownOutsideEvent as PointerDownOutsideEvent, types_Side as Side, types_Size as Size, types_Sticky as Sticky };
127
136
  }
128
137
 
129
138
  interface ContentProps extends StyledContentProps {
@@ -217,14 +226,14 @@ interface ContentProps extends StyledContentProps {
217
226
  }
218
227
  declare const Content: react__default.ForwardRefExoticComponent<Omit<ContentProps, "ref"> & react__default.RefAttributes<HTMLDivElement>>;
219
228
 
220
- declare const StyledGroupLabel: react.ForwardRefExoticComponent<Omit<Omit<_mirohq_design_system_stitches.StyledComponentProps<react.ForwardRefExoticComponent<_radix_ui_react_select.SelectLabelProps & react.RefAttributes<HTMLDivElement>>>, never> & _stitches_react_types_styled_component.TransformProps<{}, {}> & _mirohq_design_system_stitches.CustomStylesProps, "ref"> & react.RefAttributes<HTMLDivElement>> & _mirohq_design_system_stitches.StitchesInternals<react.ForwardRefExoticComponent<_radix_ui_react_select.SelectLabelProps & react.RefAttributes<HTMLDivElement>>, {}, {}>;
229
+ declare const StyledGroupLabel: react.ForwardRefExoticComponent<Omit<Omit<_mirohq_design_system_stitches.StyledComponentProps<react.ForwardRefExoticComponent<_radix_ui_react_select.SelectLabelProps & react.RefAttributes<HTMLDivElement>>>, never> & TransformProps<{}, {}> & _mirohq_design_system_stitches.CustomStylesProps, "ref"> & react.RefAttributes<HTMLDivElement>> & _mirohq_design_system_stitches.StitchesInternals<react.ForwardRefExoticComponent<_radix_ui_react_select.SelectLabelProps & react.RefAttributes<HTMLDivElement>>, {}, {}>;
221
230
  type StyledGroupLabelProps = StrictComponentProps<typeof StyledGroupLabel>;
222
231
 
223
232
  interface GroupLabelProps extends StyledGroupLabelProps {
224
233
  }
225
234
  declare const GroupLabel: react__default.ForwardRefExoticComponent<Omit<GroupLabelProps, "ref"> & react__default.RefAttributes<HTMLDivElement>>;
226
235
 
227
- declare const StyledSeparator: react.ForwardRefExoticComponent<Omit<Omit<_mirohq_design_system_stitches.StyledComponentProps<react.ForwardRefExoticComponent<_radix_ui_react_select.SelectSeparatorProps & react.RefAttributes<HTMLDivElement>>>, never> & _stitches_react_types_styled_component.TransformProps<{}, {}> & _mirohq_design_system_stitches.CustomStylesProps, "ref"> & react.RefAttributes<HTMLDivElement>> & _mirohq_design_system_stitches.StitchesInternals<react.ForwardRefExoticComponent<_radix_ui_react_select.SelectSeparatorProps & react.RefAttributes<HTMLDivElement>>, {}, {}>;
236
+ declare const StyledSeparator: react.ForwardRefExoticComponent<Omit<Omit<_mirohq_design_system_stitches.StyledComponentProps<react.ForwardRefExoticComponent<_radix_ui_react_select.SelectSeparatorProps & react.RefAttributes<HTMLDivElement>>>, never> & TransformProps<{}, {}> & _mirohq_design_system_stitches.CustomStylesProps, "ref"> & react.RefAttributes<HTMLDivElement>> & _mirohq_design_system_stitches.StitchesInternals<react.ForwardRefExoticComponent<_radix_ui_react_select.SelectSeparatorProps & react.RefAttributes<HTMLDivElement>>, {}, {}>;
228
237
  type StyledSeparatorProps = StrictComponentProps<typeof StyledSeparator>;
229
238
 
230
239
  interface SeparatorProps extends StyledSeparatorProps {
@@ -294,4 +303,5 @@ interface Partials {
294
303
  Value: typeof Value;
295
304
  }
296
305
 
297
- export { Select, ContentProps as SelectContentProps, GroupLabelProps as SelectGroupLabelProps, GroupProps as SelectGroupProps, ItemProps as SelectItemProps, PortalProps as SelectPortalProps, SelectProps, SeparatorProps as SelectSeparatorProps, TriggerProps as SelectTriggerProps, types as SelectTypes, ValueProps as SelectValueProps };
306
+ export { Select, types as SelectTypes };
307
+ export type { ContentProps as SelectContentProps, GroupLabelProps as SelectGroupLabelProps, GroupProps as SelectGroupProps, ItemProps as SelectItemProps, PortalProps as SelectPortalProps, SelectProps, SeparatorProps as SelectSeparatorProps, TriggerProps as SelectTriggerProps, ValueProps as SelectValueProps };
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@mirohq/design-system-select",
3
- "version": "1.1.16",
3
+ "version": "1.2.0-fix-stitches-types.1",
4
4
  "description": "",
5
5
  "author": "Miro",
6
6
  "source": "src/index.ts",
@@ -30,16 +30,16 @@
30
30
  "@react-aria/interactions": "^3.13.0",
31
31
  "@react-aria/utils": "^3.31.0",
32
32
  "@react-types/shared": "^3.16.0",
33
- "@mirohq/design-system-base-form": "^1.1.3",
34
- "@mirohq/design-system-base-select": "^1.1.4",
35
- "@mirohq/design-system-base-text-field": "^1.2.1",
36
- "@mirohq/design-system-base-tooltip": "^1.1.0",
37
- "@mirohq/design-system-icons": "^1.27.1",
38
- "@mirohq/design-system-primitive": "^2.1.0",
39
- "@mirohq/design-system-scroll-area": "^1.1.2",
40
- "@mirohq/design-system-spinner": "^2.1.2",
41
- "@mirohq/design-system-stitches": "^3.1.2",
42
- "@mirohq/design-system-styles": "^3.0.1",
33
+ "@mirohq/design-system-base-form": "^1.2.0-fix-stitches-types.1",
34
+ "@mirohq/design-system-base-select": "^1.2.0-fix-stitches-types.1",
35
+ "@mirohq/design-system-icons": "^1.28.0-fix-stitches-types.1",
36
+ "@mirohq/design-system-primitive": "^2.2.0-fix-stitches-types.1",
37
+ "@mirohq/design-system-base-text-field": "^1.3.0-fix-stitches-types.1",
38
+ "@mirohq/design-system-base-tooltip": "^1.2.0-fix-stitches-types.1",
39
+ "@mirohq/design-system-scroll-area": "^1.2.0-fix-stitches-types.1",
40
+ "@mirohq/design-system-spinner": "^2.2.0-fix-stitches-types.1",
41
+ "@mirohq/design-system-stitches": "^3.2.0-fix-stitches-types.1",
42
+ "@mirohq/design-system-styles": "^3.1.0-fix-stitches-types.1",
43
43
  "@mirohq/design-system-use-previous": "^1.1.0",
44
44
  "@mirohq/design-system-utils": "^1.2.1"
45
45
  },