@mirohq/design-system-select 0.7.8 → 0.8.0-new-focus-keyboard.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/dist/main.js CHANGED
@@ -143,26 +143,23 @@ const StyledTrigger = designSystemStitches.styled(reactSelect.Trigger, {
143
143
  transform: "rotate(180deg)"
144
144
  }
145
145
  },
146
+ "&:not([disabled])": {
147
+ ...designSystemStyles.focus.css({
148
+ ...designSystemBaseTextField.textFieldStyles.variants.focused
149
+ })
150
+ },
146
151
  variants: {
147
152
  v1: {
148
153
  true: {
149
154
  ...designSystemBaseTextField.textFieldStyles.v1.idle,
150
155
  "&[data-placeholder]": designSystemBaseTextField.textFieldStyles.base.placeholder.v1,
151
156
  "&[data-hovered]": designSystemBaseTextField.textFieldStyles.variants.hovered,
152
- "&:not([disabled])": {
153
- ...designSystemStyles.focus.css({
154
- ...designSystemBaseTextField.textFieldStyles.v1.focused,
155
- "&[data-hovered]": designSystemBaseTextField.textFieldStyles.variants.hovered
156
- })
157
- },
158
157
  '&[disabled], &[aria-disabled="true"]': {
159
158
  ...designSystemBaseTextField.textFieldStyles.variants.disabled,
160
159
  svg: {
161
160
  color: "$icon-neutrals-disabled"
162
161
  }
163
- },
164
- "&[data-invalid][data-focused]": designSystemBaseTextField.textFieldStyles.v1.invalid.focused,
165
- "&[data-valid][data-focused]": designSystemBaseTextField.textFieldStyles.v1.valid.focused
162
+ }
166
163
  },
167
164
  false: {
168
165
  fontSize: "$200",
@@ -171,17 +168,6 @@ const StyledTrigger = designSystemStitches.styled(reactSelect.Trigger, {
171
168
  color: "$text-neutrals-placeholder",
172
169
  fontStyle: "italic"
173
170
  },
174
- "&[data-focused], &[data-hovered]": {
175
- borderColor: "$border-neutrals",
176
- ...designSystemStyles.focus.css({
177
- boxShadow: "$focus-controls",
178
- outline: "1px solid transparent"
179
- })
180
- },
181
- ...designSystemStyles.focus.css({
182
- boxShadow: "$focus-controls",
183
- outline: "1px solid transparent"
184
- }),
185
171
  '&[disabled], &[aria-disabled="true"]': {
186
172
  backgroundColor: "$background-neutrals-disabled",
187
173
  borderColor: "$border-neutrals-disabled",
@@ -197,18 +183,6 @@ const StyledTrigger = designSystemStitches.styled(reactSelect.Trigger, {
197
183
  "&[data-hovered]": {
198
184
  borderColor: "$border-primary-hover"
199
185
  },
200
- "&[data-invalid][data-focused]": {
201
- borderColor: "$border-danger",
202
- ...designSystemStyles.focus.css({
203
- boxShadow: "$focus-controls-error"
204
- })
205
- },
206
- "&[data-valid][data-focused]": {
207
- borderColor: "$border-success",
208
- ...designSystemStyles.focus.css({
209
- boxShadow: "$focus-controls-success"
210
- })
211
- },
212
186
  '&:active[data-valid], &[data-state="open"][data-valid]': {
213
187
  borderColor: "$border-success-active"
214
188
  },
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'\n\nexport const StyledItem = styled(RadixItem, itemStyles)\n\nexport const StyledItemText = styled('span', {\n display: 'flex',\n gridColumn: 2,\n width: '100%',\n})\n\nexport type StyledItemProps = StrictComponentProps<typeof StyledItem>\n","import React from 'react'\nimport type { ElementRef } from 'react'\nimport { IconCheckMark } from '@mirohq/design-system-icons'\nimport {\n ItemText as RadixItemText,\n ItemIndicator as RadixItemIndicator,\n} from '@radix-ui/react-select'\nimport { booleanify } 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 ...restProps\n },\n forwardRef\n ) => (\n <StyledItem\n {...restProps}\n aria-disabled={booleanify(ariaDisabled) ? ariaDisabled : undefined}\n onKeyDown={e => {\n if (\n booleanify(ariaDisabled) &&\n e.code !== 'ArrowUp' &&\n e.code !== 'ArrowDown' &&\n e.code !== 'Escape'\n ) {\n e.preventDefault()\n e.stopPropagation()\n return\n }\n\n onKeyDown?.(e)\n }}\n onPointerUp={e => {\n if (booleanify(ariaDisabled)) {\n e.preventDefault()\n return\n }\n\n onPointerUp?.(e)\n }}\n onPointerMove={e => {\n if (booleanify(ariaDisabled)) {\n e.preventDefault()\n return\n }\n\n onPointerMove?.(e)\n }}\n onPointerLeave={e => {\n if (booleanify(ariaDisabled)) {\n e.preventDefault()\n return\n }\n\n onPointerLeave?.(e)\n }}\n textValue={textValue}\n disabled={disabled}\n ref={forwardRef}\n >\n <RadixItemIndicator asChild>\n <StyledItemCheck>\n <IconCheckMark size='small' />\n </StyledItemCheck>\n </RadixItemIndicator>\n <RadixItemText asChild>\n <StyledItemText>{children}</StyledItemText>\n </RadixItemText>\n </StyledItem>\n )\n)\n","import { styled } from '@mirohq/design-system-stitches'\nimport { SelectIcon as RadixSelectIcon } from '@radix-ui/react-select'\nimport {\n IconExclamationPointCircle,\n IconChevronDown,\n IconCheckMark,\n} from '@mirohq/design-system-icons'\n\nexport const StyledSelectIcon = styled(RadixSelectIcon, {\n flexShrink: 0,\n margin: '6px',\n})\n\nexport const StyledIconExclamationPointCircle = styled(\n IconExclamationPointCircle,\n {\n color: '$icon-danger',\n }\n)\n\nexport const StyledIconCheckMark = styled(IconCheckMark, {\n color: '$icon-success',\n})\n\nexport const StyledIconChevronDown = styled(IconChevronDown, {\n color: '$icon-neutrals-text',\n})\n","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 border: '1px solid $border-neutrals',\n borderRadius: '$50',\n boxSizing: 'border-box',\n color: '$text-neutrals',\n cursor: 'pointer',\n display: 'flex',\n minWidth: 0,\n position: 'relative',\n userSelect: 'none',\n width: '100%',\n justifyContent: 'space-between',\n alignItems: 'center',\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 variants: {\n v1: {\n true: {\n ...textFieldStyles.v1.idle,\n\n '&[data-placeholder]': textFieldStyles.base.placeholder.v1,\n\n '&[data-hovered]': textFieldStyles.variants.hovered,\n\n '&:not([disabled])': {\n ...focus.css({\n ...textFieldStyles.v1.focused,\n '&[data-hovered]': textFieldStyles.variants.hovered,\n }),\n },\n\n '&[disabled], &[aria-disabled=\"true\"]': {\n ...textFieldStyles.variants.disabled,\n\n svg: {\n color: '$icon-neutrals-disabled',\n },\n },\n\n '&[data-invalid][data-focused]': textFieldStyles.v1.invalid.focused,\n '&[data-valid][data-focused]': textFieldStyles.v1.valid.focused,\n },\n false: {\n fontSize: '$200',\n lineHeight: 1.5,\n\n '&[data-placeholder]': {\n color: '$text-neutrals-placeholder',\n fontStyle: 'italic',\n },\n\n '&[data-focused], &[data-hovered]': {\n borderColor: '$border-neutrals',\n\n ...focus.css({\n boxShadow: '$focus-controls',\n outline: '1px solid transparent',\n }),\n },\n\n ...focus.css({\n boxShadow: '$focus-controls',\n outline: '1px solid transparent',\n }),\n\n '&[disabled], &[aria-disabled=\"true\"]': {\n backgroundColor: '$background-neutrals-disabled',\n borderColor: '$border-neutrals-disabled',\n color: '$text-neutrals-disabled',\n\n ...focus.css({\n boxShadow: 'none',\n outline: 'unset',\n }),\n\n svg: {\n color: '$icon-neutrals-disabled',\n },\n },\n\n '&[data-hovered]': {\n borderColor: '$border-primary-hover',\n },\n\n '&[data-invalid][data-focused]': {\n borderColor: '$border-danger',\n\n ...focus.css({\n boxShadow: '$focus-controls-error',\n }),\n },\n\n '&[data-valid][data-focused]': {\n borderColor: '$border-success',\n\n ...focus.css({\n boxShadow: '$focus-controls-success',\n }),\n },\n\n '&:active[data-valid], &[data-state=\"open\"][data-valid]': {\n borderColor: '$border-success-active',\n },\n\n '&:active[data-invalid], &[data-state=\"open\"][data-invalid]': {\n borderColor: '$border-danger-active',\n },\n },\n },\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 },\n },\n },\n compoundVariants: [\n {\n v1: false,\n size: 'medium',\n css: {\n fontSize: '$175',\n },\n },\n {\n v1: true,\n size: 'x-large',\n css: {\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 { PropsWithChildren } 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 type SelectProviderProps = SelectProps\n\nconst SelectContext = createContext<SelectContextProps>({} as any)\n\nexport const SelectProvider = ({\n children,\n defaultOpen,\n open,\n valid,\n ...restProps\n}: PropsWithChildren<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 { MouseEventHandler, ElementRef, PointerEvent } from 'react'\nimport {\n booleanify,\n booleanishAttrValue,\n stringAttrValue,\n mergeRefs,\n} from '@mirohq/design-system-utils'\nimport { useFormFieldContext } from '@mirohq/design-system-base-form'\nimport { mergeProps, isVirtualClick } from '@react-aria/utils'\nimport { Spinner } from '@mirohq/design-system-spinner'\nimport { useNewDesignLanguage } from '@mirohq/design-system-experiments'\n\nimport { StyledTrigger } from './trigger.styled'\nimport { useSelectContext } from '../hooks/use-select-context'\nimport {\n StyledSelectIcon,\n StyledIconExclamationPointCircle,\n StyledIconCheckMark,\n StyledIconChevronDown,\n} from './select-icon.styled'\nimport type { StyledTriggerProps } from './trigger.styled'\n\nexport interface TriggerProps\n extends Omit<StyledTriggerProps, 'v1'>,\n 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\nconst SELECT_ICONS = {\n valid: StyledIconCheckMark,\n invalid: StyledIconExclamationPointCircle,\n default: StyledIconChevronDown,\n}\n\nexport const Trigger = React.forwardRef<\n ElementRef<typeof StyledTrigger>,\n TriggerProps\n>(\n (\n {\n 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 ...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 } = useSelectContext()\n const [focused, setFocused] = useState(false)\n const isOpen = open ?? openState ?? false\n\n const [v1] = useNewDesignLanguage()\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 /**\n * It forces the trigger of pointerDow on the Select.Trigger.\n * This had to be done because when using Ctrl + Option + Space on safari it\n * triggers onClick, and Radix only listens to onPointerDown.\n * https://github.com/radix-ui/primitives/blob/bc28fb42b81e4f95ce41eef3ed683ea0dd823dd8/packages/react/select/src/Select.tsx#L266\n */\n const handleVirtualClick: MouseEventHandler<Element> = e => {\n if (e?.nativeEvent === undefined) {\n console.error(\n 'Select.Trigger onClick expected a MouseEvent but got different one. It usually happens due to a element used asChild with a different onClick interface.\\n' +\n `Event: ${JSON.stringify(e, null, 2)}`\n )\n return\n }\n\n const nativeEvent = e.nativeEvent as any\n\n if (nativeEvent.mozInputSource === undefined) {\n nativeEvent.mozInputSource = null\n }\n\n if (isVirtualClick(e.nativeEvent) && ref.current !== null) {\n const pointerDownEvent = new MouseEvent('pointerdown', {\n bubbles: true,\n cancelable: true,\n })\n\n ref.current?.dispatchEvent(pointerDownEvent)\n }\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 id: id ?? formElementId,\n onClick: (e: React.MouseEvent<HTMLButtonElement, MouseEvent>) => {\n handleVirtualClick(e)\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 =\n SELECT_ICONS[\n (open ?? openState === true) ||\n v1 ||\n valid === undefined ||\n hovered ||\n focused\n ? 'default'\n : valid\n ? 'valid'\n : 'invalid'\n ]\n\n return (\n <StyledTrigger {...commonProps} size={size} v1={v1}>\n {loading ? (\n <Spinner css={{ flex: 1, placeSelf: 'center' }} />\n ) : (\n children\n )}\n <StyledSelectIcon asChild>\n <SelectIcon size='small' weight='thin' />\n </StyledSelectIcon>\n </StyledTrigger>\n )\n }\n)\n","import { styled } from '@mirohq/design-system-stitches'\n\nexport const StyledValue = styled('span', {\n 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 {\n FloatingLabel,\n useFormFieldContext,\n} from '@mirohq/design-system-base-form'\nimport { mergeRefs } from '@mirohq/design-system-utils'\nimport { useForceUpdate } from '@mirohq/design-system-use-force-update'\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 forceUpdate = useForceUpdate()\n\n const {\n required,\n readOnly,\n 'aria-disabled': ariaDisabled,\n setLoading,\n disabled,\n direction,\n setOpenState,\n openState,\n placeholder,\n size,\n open,\n } = useSelectContext()\n\n const {\n setRequired,\n setDisabled,\n setAriaDisabled,\n setReadOnly,\n formElementRef,\n label,\n shouldUseFloatingLabel,\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 const selectValue = selectRef?.current?.value ?? value ?? defaultValue\n\n const floatingLabel =\n placeholder !== undefined ||\n (defaultValue !== undefined && defaultValue !== '') ||\n (selectValue !== undefined && selectValue !== '')\n\n return (\n <RadixSelect\n {...restProps}\n value={value}\n defaultValue={defaultValue}\n onValueChange={newValue => {\n if (shouldUseFloatingLabel) {\n forceUpdate()\n }\n\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 {shouldUseFloatingLabel && (\n <FloatingLabel floating={floatingLabel} size={size}>\n {label}\n </FloatingLabel>\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","jsxs","booleanify","RadixItemIndicator","StyledItemCheck","IconCheckMark","RadixItemText","RadixSelectIcon","IconExclamationPointCircle","IconChevronDown","RadixTrigger","textFieldStyles","focus","createContext","useState","useContext","useRef","useNewDesignLanguage","useFormFieldContext","useHover","_a","isVirtualClick","mergeProps","booleanishAttrValue","stringAttrValue","mergeRefs","useEffect","Spinner","RadixValue","itemsContainerStyles","RadixContent","contentStyles","theme","RadixViewport","ScrollArea","Fragment","RadixLabel","groupLabelStyles","RadixSeparator","separatorStyles","useForceUpdate","useBaseTooltipContext","usePrevious","RadixSelect","FloatingLabel","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'\n\nexport const StyledItem = styled(RadixItem, itemStyles)\n\nexport const StyledItemText = styled('span', {\n display: 'flex',\n gridColumn: 2,\n width: '100%',\n})\n\nexport type StyledItemProps = StrictComponentProps<typeof StyledItem>\n","import React from 'react'\nimport type { ElementRef } from 'react'\nimport { IconCheckMark } from '@mirohq/design-system-icons'\nimport {\n ItemText as RadixItemText,\n ItemIndicator as RadixItemIndicator,\n} from '@radix-ui/react-select'\nimport { booleanify } 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 ...restProps\n },\n forwardRef\n ) => (\n <StyledItem\n {...restProps}\n aria-disabled={booleanify(ariaDisabled) ? ariaDisabled : undefined}\n onKeyDown={e => {\n if (\n booleanify(ariaDisabled) &&\n e.code !== 'ArrowUp' &&\n e.code !== 'ArrowDown' &&\n e.code !== 'Escape'\n ) {\n e.preventDefault()\n e.stopPropagation()\n return\n }\n\n onKeyDown?.(e)\n }}\n onPointerUp={e => {\n if (booleanify(ariaDisabled)) {\n e.preventDefault()\n return\n }\n\n onPointerUp?.(e)\n }}\n onPointerMove={e => {\n if (booleanify(ariaDisabled)) {\n e.preventDefault()\n return\n }\n\n onPointerMove?.(e)\n }}\n onPointerLeave={e => {\n if (booleanify(ariaDisabled)) {\n e.preventDefault()\n return\n }\n\n onPointerLeave?.(e)\n }}\n textValue={textValue}\n disabled={disabled}\n ref={forwardRef}\n >\n <RadixItemIndicator asChild>\n <StyledItemCheck>\n <IconCheckMark size='small' />\n </StyledItemCheck>\n </RadixItemIndicator>\n <RadixItemText asChild>\n <StyledItemText>{children}</StyledItemText>\n </RadixItemText>\n </StyledItem>\n )\n)\n","import { styled } from '@mirohq/design-system-stitches'\nimport { SelectIcon as RadixSelectIcon } from '@radix-ui/react-select'\nimport {\n IconExclamationPointCircle,\n IconChevronDown,\n IconCheckMark,\n} from '@mirohq/design-system-icons'\n\nexport const StyledSelectIcon = styled(RadixSelectIcon, {\n flexShrink: 0,\n margin: '6px',\n})\n\nexport const StyledIconExclamationPointCircle = styled(\n IconExclamationPointCircle,\n {\n color: '$icon-danger',\n }\n)\n\nexport const StyledIconCheckMark = styled(IconCheckMark, {\n color: '$icon-success',\n})\n\nexport const StyledIconChevronDown = styled(IconChevronDown, {\n color: '$icon-neutrals-text',\n})\n","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 border: '1px solid $border-neutrals',\n borderRadius: '$50',\n boxSizing: 'border-box',\n color: '$text-neutrals',\n cursor: 'pointer',\n display: 'flex',\n minWidth: 0,\n position: 'relative',\n userSelect: 'none',\n width: '100%',\n justifyContent: 'space-between',\n alignItems: 'center',\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 variants: {\n v1: {\n true: {\n ...textFieldStyles.v1.idle,\n\n '&[data-placeholder]': textFieldStyles.base.placeholder.v1,\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 false: {\n fontSize: '$200',\n lineHeight: 1.5,\n\n '&[data-placeholder]': {\n color: '$text-neutrals-placeholder',\n fontStyle: 'italic',\n },\n\n '&[disabled], &[aria-disabled=\"true\"]': {\n backgroundColor: '$background-neutrals-disabled',\n borderColor: '$border-neutrals-disabled',\n color: '$text-neutrals-disabled',\n\n ...focus.css({\n boxShadow: 'none',\n outline: 'unset',\n }),\n\n svg: {\n color: '$icon-neutrals-disabled',\n },\n },\n\n '&[data-hovered]': {\n borderColor: '$border-primary-hover',\n },\n\n '&:active[data-valid], &[data-state=\"open\"][data-valid]': {\n borderColor: '$border-success-active',\n },\n\n '&:active[data-invalid], &[data-state=\"open\"][data-invalid]': {\n borderColor: '$border-danger-active',\n },\n },\n },\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 },\n },\n },\n compoundVariants: [\n {\n v1: false,\n size: 'medium',\n css: {\n fontSize: '$175',\n },\n },\n {\n v1: true,\n size: 'x-large',\n css: {\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 { PropsWithChildren } 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 type SelectProviderProps = SelectProps\n\nconst SelectContext = createContext<SelectContextProps>({} as any)\n\nexport const SelectProvider = ({\n children,\n defaultOpen,\n open,\n valid,\n ...restProps\n}: PropsWithChildren<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 { MouseEventHandler, ElementRef, PointerEvent } from 'react'\nimport {\n booleanify,\n booleanishAttrValue,\n stringAttrValue,\n mergeRefs,\n} from '@mirohq/design-system-utils'\nimport { useFormFieldContext } from '@mirohq/design-system-base-form'\nimport { mergeProps, isVirtualClick } from '@react-aria/utils'\nimport { Spinner } from '@mirohq/design-system-spinner'\nimport { useNewDesignLanguage } from '@mirohq/design-system-experiments'\n\nimport { StyledTrigger } from './trigger.styled'\nimport { useSelectContext } from '../hooks/use-select-context'\nimport {\n StyledSelectIcon,\n StyledIconExclamationPointCircle,\n StyledIconCheckMark,\n StyledIconChevronDown,\n} from './select-icon.styled'\nimport type { StyledTriggerProps } from './trigger.styled'\n\nexport interface TriggerProps\n extends Omit<StyledTriggerProps, 'v1'>,\n 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\nconst SELECT_ICONS = {\n valid: StyledIconCheckMark,\n invalid: StyledIconExclamationPointCircle,\n default: StyledIconChevronDown,\n}\n\nexport const Trigger = React.forwardRef<\n ElementRef<typeof StyledTrigger>,\n TriggerProps\n>(\n (\n {\n 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 ...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 } = useSelectContext()\n const [focused, setFocused] = useState(false)\n const isOpen = open ?? openState ?? false\n\n const [v1] = useNewDesignLanguage()\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 /**\n * It forces the trigger of pointerDow on the Select.Trigger.\n * This had to be done because when using Ctrl + Option + Space on safari it\n * triggers onClick, and Radix only listens to onPointerDown.\n * https://github.com/radix-ui/primitives/blob/bc28fb42b81e4f95ce41eef3ed683ea0dd823dd8/packages/react/select/src/Select.tsx#L266\n */\n const handleVirtualClick: MouseEventHandler<Element> = e => {\n if (e?.nativeEvent === undefined) {\n console.error(\n 'Select.Trigger onClick expected a MouseEvent but got different one. It usually happens due to a element used asChild with a different onClick interface.\\n' +\n `Event: ${JSON.stringify(e, null, 2)}`\n )\n return\n }\n\n const nativeEvent = e.nativeEvent as any\n\n if (nativeEvent.mozInputSource === undefined) {\n nativeEvent.mozInputSource = null\n }\n\n if (isVirtualClick(e.nativeEvent) && ref.current !== null) {\n const pointerDownEvent = new MouseEvent('pointerdown', {\n bubbles: true,\n cancelable: true,\n })\n\n ref.current?.dispatchEvent(pointerDownEvent)\n }\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 id: id ?? formElementId,\n onClick: (e: React.MouseEvent<HTMLButtonElement, MouseEvent>) => {\n handleVirtualClick(e)\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 =\n SELECT_ICONS[\n (open ?? openState === true) ||\n v1 ||\n valid === undefined ||\n hovered ||\n focused\n ? 'default'\n : valid\n ? 'valid'\n : 'invalid'\n ]\n\n return (\n <StyledTrigger {...commonProps} size={size} v1={v1}>\n {loading ? (\n <Spinner css={{ flex: 1, placeSelf: 'center' }} />\n ) : (\n children\n )}\n <StyledSelectIcon asChild>\n <SelectIcon size='small' weight='thin' />\n </StyledSelectIcon>\n </StyledTrigger>\n )\n }\n)\n","import { styled } from '@mirohq/design-system-stitches'\n\nexport const StyledValue = styled('span', {\n 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 {\n FloatingLabel,\n useFormFieldContext,\n} from '@mirohq/design-system-base-form'\nimport { mergeRefs } from '@mirohq/design-system-utils'\nimport { useForceUpdate } from '@mirohq/design-system-use-force-update'\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 forceUpdate = useForceUpdate()\n\n const {\n required,\n readOnly,\n 'aria-disabled': ariaDisabled,\n setLoading,\n disabled,\n direction,\n setOpenState,\n openState,\n placeholder,\n size,\n open,\n } = useSelectContext()\n\n const {\n setRequired,\n setDisabled,\n setAriaDisabled,\n setReadOnly,\n formElementRef,\n label,\n shouldUseFloatingLabel,\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 const selectValue = selectRef?.current?.value ?? value ?? defaultValue\n\n const floatingLabel =\n placeholder !== undefined ||\n (defaultValue !== undefined && defaultValue !== '') ||\n (selectValue !== undefined && selectValue !== '')\n\n return (\n <RadixSelect\n {...restProps}\n value={value}\n defaultValue={defaultValue}\n onValueChange={newValue => {\n if (shouldUseFloatingLabel) {\n forceUpdate()\n }\n\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 {shouldUseFloatingLabel && (\n <FloatingLabel floating={floatingLabel} size={size}>\n {label}\n </FloatingLabel>\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","jsxs","booleanify","RadixItemIndicator","StyledItemCheck","IconCheckMark","RadixItemText","RadixSelectIcon","IconExclamationPointCircle","IconChevronDown","RadixTrigger","textFieldStyles","focus","createContext","useState","useContext","useRef","useNewDesignLanguage","useFormFieldContext","useHover","_a","isVirtualClick","mergeProps","booleanishAttrValue","stringAttrValue","mergeRefs","useEffect","Spinner","RadixValue","itemsContainerStyles","RadixContent","contentStyles","theme","RadixViewport","ScrollArea","Fragment","RadixLabel","groupLabelStyles","RadixSeparator","separatorStyles","useForceUpdate","useBaseTooltipContext","usePrevious","RadixSelect","FloatingLabel","BaseTooltipProvider","Portal"],"mappings":"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"}
package/dist/module.js CHANGED
@@ -135,26 +135,23 @@ const StyledTrigger = styled(Trigger$1, {
135
135
  transform: "rotate(180deg)"
136
136
  }
137
137
  },
138
+ "&:not([disabled])": {
139
+ ...focus.css({
140
+ ...textFieldStyles.variants.focused
141
+ })
142
+ },
138
143
  variants: {
139
144
  v1: {
140
145
  true: {
141
146
  ...textFieldStyles.v1.idle,
142
147
  "&[data-placeholder]": textFieldStyles.base.placeholder.v1,
143
148
  "&[data-hovered]": textFieldStyles.variants.hovered,
144
- "&:not([disabled])": {
145
- ...focus.css({
146
- ...textFieldStyles.v1.focused,
147
- "&[data-hovered]": textFieldStyles.variants.hovered
148
- })
149
- },
150
149
  '&[disabled], &[aria-disabled="true"]': {
151
150
  ...textFieldStyles.variants.disabled,
152
151
  svg: {
153
152
  color: "$icon-neutrals-disabled"
154
153
  }
155
- },
156
- "&[data-invalid][data-focused]": textFieldStyles.v1.invalid.focused,
157
- "&[data-valid][data-focused]": textFieldStyles.v1.valid.focused
154
+ }
158
155
  },
159
156
  false: {
160
157
  fontSize: "$200",
@@ -163,17 +160,6 @@ const StyledTrigger = styled(Trigger$1, {
163
160
  color: "$text-neutrals-placeholder",
164
161
  fontStyle: "italic"
165
162
  },
166
- "&[data-focused], &[data-hovered]": {
167
- borderColor: "$border-neutrals",
168
- ...focus.css({
169
- boxShadow: "$focus-controls",
170
- outline: "1px solid transparent"
171
- })
172
- },
173
- ...focus.css({
174
- boxShadow: "$focus-controls",
175
- outline: "1px solid transparent"
176
- }),
177
163
  '&[disabled], &[aria-disabled="true"]': {
178
164
  backgroundColor: "$background-neutrals-disabled",
179
165
  borderColor: "$border-neutrals-disabled",
@@ -189,18 +175,6 @@ const StyledTrigger = styled(Trigger$1, {
189
175
  "&[data-hovered]": {
190
176
  borderColor: "$border-primary-hover"
191
177
  },
192
- "&[data-invalid][data-focused]": {
193
- borderColor: "$border-danger",
194
- ...focus.css({
195
- boxShadow: "$focus-controls-error"
196
- })
197
- },
198
- "&[data-valid][data-focused]": {
199
- borderColor: "$border-success",
200
- ...focus.css({
201
- boxShadow: "$focus-controls-success"
202
- })
203
- },
204
178
  '&:active[data-valid], &[data-state="open"][data-valid]': {
205
179
  borderColor: "$border-success-active"
206
180
  },
@@ -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'\n\nexport const StyledItem = styled(RadixItem, itemStyles)\n\nexport const StyledItemText = styled('span', {\n display: 'flex',\n gridColumn: 2,\n width: '100%',\n})\n\nexport type StyledItemProps = StrictComponentProps<typeof StyledItem>\n","import React from 'react'\nimport type { ElementRef } from 'react'\nimport { IconCheckMark } from '@mirohq/design-system-icons'\nimport {\n ItemText as RadixItemText,\n ItemIndicator as RadixItemIndicator,\n} from '@radix-ui/react-select'\nimport { booleanify } 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 ...restProps\n },\n forwardRef\n ) => (\n <StyledItem\n {...restProps}\n aria-disabled={booleanify(ariaDisabled) ? ariaDisabled : undefined}\n onKeyDown={e => {\n if (\n booleanify(ariaDisabled) &&\n e.code !== 'ArrowUp' &&\n e.code !== 'ArrowDown' &&\n e.code !== 'Escape'\n ) {\n e.preventDefault()\n e.stopPropagation()\n return\n }\n\n onKeyDown?.(e)\n }}\n onPointerUp={e => {\n if (booleanify(ariaDisabled)) {\n e.preventDefault()\n return\n }\n\n onPointerUp?.(e)\n }}\n onPointerMove={e => {\n if (booleanify(ariaDisabled)) {\n e.preventDefault()\n return\n }\n\n onPointerMove?.(e)\n }}\n onPointerLeave={e => {\n if (booleanify(ariaDisabled)) {\n e.preventDefault()\n return\n }\n\n onPointerLeave?.(e)\n }}\n textValue={textValue}\n disabled={disabled}\n ref={forwardRef}\n >\n <RadixItemIndicator asChild>\n <StyledItemCheck>\n <IconCheckMark size='small' />\n </StyledItemCheck>\n </RadixItemIndicator>\n <RadixItemText asChild>\n <StyledItemText>{children}</StyledItemText>\n </RadixItemText>\n </StyledItem>\n )\n)\n","import { styled } from '@mirohq/design-system-stitches'\nimport { SelectIcon as RadixSelectIcon } from '@radix-ui/react-select'\nimport {\n IconExclamationPointCircle,\n IconChevronDown,\n IconCheckMark,\n} from '@mirohq/design-system-icons'\n\nexport const StyledSelectIcon = styled(RadixSelectIcon, {\n flexShrink: 0,\n margin: '6px',\n})\n\nexport const StyledIconExclamationPointCircle = styled(\n IconExclamationPointCircle,\n {\n color: '$icon-danger',\n }\n)\n\nexport const StyledIconCheckMark = styled(IconCheckMark, {\n color: '$icon-success',\n})\n\nexport const StyledIconChevronDown = styled(IconChevronDown, {\n color: '$icon-neutrals-text',\n})\n","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 border: '1px solid $border-neutrals',\n borderRadius: '$50',\n boxSizing: 'border-box',\n color: '$text-neutrals',\n cursor: 'pointer',\n display: 'flex',\n minWidth: 0,\n position: 'relative',\n userSelect: 'none',\n width: '100%',\n justifyContent: 'space-between',\n alignItems: 'center',\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 variants: {\n v1: {\n true: {\n ...textFieldStyles.v1.idle,\n\n '&[data-placeholder]': textFieldStyles.base.placeholder.v1,\n\n '&[data-hovered]': textFieldStyles.variants.hovered,\n\n '&:not([disabled])': {\n ...focus.css({\n ...textFieldStyles.v1.focused,\n '&[data-hovered]': textFieldStyles.variants.hovered,\n }),\n },\n\n '&[disabled], &[aria-disabled=\"true\"]': {\n ...textFieldStyles.variants.disabled,\n\n svg: {\n color: '$icon-neutrals-disabled',\n },\n },\n\n '&[data-invalid][data-focused]': textFieldStyles.v1.invalid.focused,\n '&[data-valid][data-focused]': textFieldStyles.v1.valid.focused,\n },\n false: {\n fontSize: '$200',\n lineHeight: 1.5,\n\n '&[data-placeholder]': {\n color: '$text-neutrals-placeholder',\n fontStyle: 'italic',\n },\n\n '&[data-focused], &[data-hovered]': {\n borderColor: '$border-neutrals',\n\n ...focus.css({\n boxShadow: '$focus-controls',\n outline: '1px solid transparent',\n }),\n },\n\n ...focus.css({\n boxShadow: '$focus-controls',\n outline: '1px solid transparent',\n }),\n\n '&[disabled], &[aria-disabled=\"true\"]': {\n backgroundColor: '$background-neutrals-disabled',\n borderColor: '$border-neutrals-disabled',\n color: '$text-neutrals-disabled',\n\n ...focus.css({\n boxShadow: 'none',\n outline: 'unset',\n }),\n\n svg: {\n color: '$icon-neutrals-disabled',\n },\n },\n\n '&[data-hovered]': {\n borderColor: '$border-primary-hover',\n },\n\n '&[data-invalid][data-focused]': {\n borderColor: '$border-danger',\n\n ...focus.css({\n boxShadow: '$focus-controls-error',\n }),\n },\n\n '&[data-valid][data-focused]': {\n borderColor: '$border-success',\n\n ...focus.css({\n boxShadow: '$focus-controls-success',\n }),\n },\n\n '&:active[data-valid], &[data-state=\"open\"][data-valid]': {\n borderColor: '$border-success-active',\n },\n\n '&:active[data-invalid], &[data-state=\"open\"][data-invalid]': {\n borderColor: '$border-danger-active',\n },\n },\n },\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 },\n },\n },\n compoundVariants: [\n {\n v1: false,\n size: 'medium',\n css: {\n fontSize: '$175',\n },\n },\n {\n v1: true,\n size: 'x-large',\n css: {\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 { PropsWithChildren } 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 type SelectProviderProps = SelectProps\n\nconst SelectContext = createContext<SelectContextProps>({} as any)\n\nexport const SelectProvider = ({\n children,\n defaultOpen,\n open,\n valid,\n ...restProps\n}: PropsWithChildren<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 { MouseEventHandler, ElementRef, PointerEvent } from 'react'\nimport {\n booleanify,\n booleanishAttrValue,\n stringAttrValue,\n mergeRefs,\n} from '@mirohq/design-system-utils'\nimport { useFormFieldContext } from '@mirohq/design-system-base-form'\nimport { mergeProps, isVirtualClick } from '@react-aria/utils'\nimport { Spinner } from '@mirohq/design-system-spinner'\nimport { useNewDesignLanguage } from '@mirohq/design-system-experiments'\n\nimport { StyledTrigger } from './trigger.styled'\nimport { useSelectContext } from '../hooks/use-select-context'\nimport {\n StyledSelectIcon,\n StyledIconExclamationPointCircle,\n StyledIconCheckMark,\n StyledIconChevronDown,\n} from './select-icon.styled'\nimport type { StyledTriggerProps } from './trigger.styled'\n\nexport interface TriggerProps\n extends Omit<StyledTriggerProps, 'v1'>,\n 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\nconst SELECT_ICONS = {\n valid: StyledIconCheckMark,\n invalid: StyledIconExclamationPointCircle,\n default: StyledIconChevronDown,\n}\n\nexport const Trigger = React.forwardRef<\n ElementRef<typeof StyledTrigger>,\n TriggerProps\n>(\n (\n {\n 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 ...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 } = useSelectContext()\n const [focused, setFocused] = useState(false)\n const isOpen = open ?? openState ?? false\n\n const [v1] = useNewDesignLanguage()\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 /**\n * It forces the trigger of pointerDow on the Select.Trigger.\n * This had to be done because when using Ctrl + Option + Space on safari it\n * triggers onClick, and Radix only listens to onPointerDown.\n * https://github.com/radix-ui/primitives/blob/bc28fb42b81e4f95ce41eef3ed683ea0dd823dd8/packages/react/select/src/Select.tsx#L266\n */\n const handleVirtualClick: MouseEventHandler<Element> = e => {\n if (e?.nativeEvent === undefined) {\n console.error(\n 'Select.Trigger onClick expected a MouseEvent but got different one. It usually happens due to a element used asChild with a different onClick interface.\\n' +\n `Event: ${JSON.stringify(e, null, 2)}`\n )\n return\n }\n\n const nativeEvent = e.nativeEvent as any\n\n if (nativeEvent.mozInputSource === undefined) {\n nativeEvent.mozInputSource = null\n }\n\n if (isVirtualClick(e.nativeEvent) && ref.current !== null) {\n const pointerDownEvent = new MouseEvent('pointerdown', {\n bubbles: true,\n cancelable: true,\n })\n\n ref.current?.dispatchEvent(pointerDownEvent)\n }\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 id: id ?? formElementId,\n onClick: (e: React.MouseEvent<HTMLButtonElement, MouseEvent>) => {\n handleVirtualClick(e)\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 =\n SELECT_ICONS[\n (open ?? openState === true) ||\n v1 ||\n valid === undefined ||\n hovered ||\n focused\n ? 'default'\n : valid\n ? 'valid'\n : 'invalid'\n ]\n\n return (\n <StyledTrigger {...commonProps} size={size} v1={v1}>\n {loading ? (\n <Spinner css={{ flex: 1, placeSelf: 'center' }} />\n ) : (\n children\n )}\n <StyledSelectIcon asChild>\n <SelectIcon size='small' weight='thin' />\n </StyledSelectIcon>\n </StyledTrigger>\n )\n }\n)\n","import { styled } from '@mirohq/design-system-stitches'\n\nexport const StyledValue = styled('span', {\n 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 {\n FloatingLabel,\n useFormFieldContext,\n} from '@mirohq/design-system-base-form'\nimport { mergeRefs } from '@mirohq/design-system-utils'\nimport { useForceUpdate } from '@mirohq/design-system-use-force-update'\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 forceUpdate = useForceUpdate()\n\n const {\n required,\n readOnly,\n 'aria-disabled': ariaDisabled,\n setLoading,\n disabled,\n direction,\n setOpenState,\n openState,\n placeholder,\n size,\n open,\n } = useSelectContext()\n\n const {\n setRequired,\n setDisabled,\n setAriaDisabled,\n setReadOnly,\n formElementRef,\n label,\n shouldUseFloatingLabel,\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 const selectValue = selectRef?.current?.value ?? value ?? defaultValue\n\n const floatingLabel =\n placeholder !== undefined ||\n (defaultValue !== undefined && defaultValue !== '') ||\n (selectValue !== undefined && selectValue !== '')\n\n return (\n <RadixSelect\n {...restProps}\n value={value}\n defaultValue={defaultValue}\n onValueChange={newValue => {\n if (shouldUseFloatingLabel) {\n forceUpdate()\n }\n\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 {shouldUseFloatingLabel && (\n <FloatingLabel floating={floatingLabel} size={size}>\n {label}\n </FloatingLabel>\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","_a","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'\n\nexport const StyledItem = styled(RadixItem, itemStyles)\n\nexport const StyledItemText = styled('span', {\n display: 'flex',\n gridColumn: 2,\n width: '100%',\n})\n\nexport type StyledItemProps = StrictComponentProps<typeof StyledItem>\n","import React from 'react'\nimport type { ElementRef } from 'react'\nimport { IconCheckMark } from '@mirohq/design-system-icons'\nimport {\n ItemText as RadixItemText,\n ItemIndicator as RadixItemIndicator,\n} from '@radix-ui/react-select'\nimport { booleanify } 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 ...restProps\n },\n forwardRef\n ) => (\n <StyledItem\n {...restProps}\n aria-disabled={booleanify(ariaDisabled) ? ariaDisabled : undefined}\n onKeyDown={e => {\n if (\n booleanify(ariaDisabled) &&\n e.code !== 'ArrowUp' &&\n e.code !== 'ArrowDown' &&\n e.code !== 'Escape'\n ) {\n e.preventDefault()\n e.stopPropagation()\n return\n }\n\n onKeyDown?.(e)\n }}\n onPointerUp={e => {\n if (booleanify(ariaDisabled)) {\n e.preventDefault()\n return\n }\n\n onPointerUp?.(e)\n }}\n onPointerMove={e => {\n if (booleanify(ariaDisabled)) {\n e.preventDefault()\n return\n }\n\n onPointerMove?.(e)\n }}\n onPointerLeave={e => {\n if (booleanify(ariaDisabled)) {\n e.preventDefault()\n return\n }\n\n onPointerLeave?.(e)\n }}\n textValue={textValue}\n disabled={disabled}\n ref={forwardRef}\n >\n <RadixItemIndicator asChild>\n <StyledItemCheck>\n <IconCheckMark size='small' />\n </StyledItemCheck>\n </RadixItemIndicator>\n <RadixItemText asChild>\n <StyledItemText>{children}</StyledItemText>\n </RadixItemText>\n </StyledItem>\n )\n)\n","import { styled } from '@mirohq/design-system-stitches'\nimport { SelectIcon as RadixSelectIcon } from '@radix-ui/react-select'\nimport {\n IconExclamationPointCircle,\n IconChevronDown,\n IconCheckMark,\n} from '@mirohq/design-system-icons'\n\nexport const StyledSelectIcon = styled(RadixSelectIcon, {\n flexShrink: 0,\n margin: '6px',\n})\n\nexport const StyledIconExclamationPointCircle = styled(\n IconExclamationPointCircle,\n {\n color: '$icon-danger',\n }\n)\n\nexport const StyledIconCheckMark = styled(IconCheckMark, {\n color: '$icon-success',\n})\n\nexport const StyledIconChevronDown = styled(IconChevronDown, {\n color: '$icon-neutrals-text',\n})\n","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 border: '1px solid $border-neutrals',\n borderRadius: '$50',\n boxSizing: 'border-box',\n color: '$text-neutrals',\n cursor: 'pointer',\n display: 'flex',\n minWidth: 0,\n position: 'relative',\n userSelect: 'none',\n width: '100%',\n justifyContent: 'space-between',\n alignItems: 'center',\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 variants: {\n v1: {\n true: {\n ...textFieldStyles.v1.idle,\n\n '&[data-placeholder]': textFieldStyles.base.placeholder.v1,\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 false: {\n fontSize: '$200',\n lineHeight: 1.5,\n\n '&[data-placeholder]': {\n color: '$text-neutrals-placeholder',\n fontStyle: 'italic',\n },\n\n '&[disabled], &[aria-disabled=\"true\"]': {\n backgroundColor: '$background-neutrals-disabled',\n borderColor: '$border-neutrals-disabled',\n color: '$text-neutrals-disabled',\n\n ...focus.css({\n boxShadow: 'none',\n outline: 'unset',\n }),\n\n svg: {\n color: '$icon-neutrals-disabled',\n },\n },\n\n '&[data-hovered]': {\n borderColor: '$border-primary-hover',\n },\n\n '&:active[data-valid], &[data-state=\"open\"][data-valid]': {\n borderColor: '$border-success-active',\n },\n\n '&:active[data-invalid], &[data-state=\"open\"][data-invalid]': {\n borderColor: '$border-danger-active',\n },\n },\n },\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 },\n },\n },\n compoundVariants: [\n {\n v1: false,\n size: 'medium',\n css: {\n fontSize: '$175',\n },\n },\n {\n v1: true,\n size: 'x-large',\n css: {\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 { PropsWithChildren } 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 type SelectProviderProps = SelectProps\n\nconst SelectContext = createContext<SelectContextProps>({} as any)\n\nexport const SelectProvider = ({\n children,\n defaultOpen,\n open,\n valid,\n ...restProps\n}: PropsWithChildren<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 { MouseEventHandler, ElementRef, PointerEvent } from 'react'\nimport {\n booleanify,\n booleanishAttrValue,\n stringAttrValue,\n mergeRefs,\n} from '@mirohq/design-system-utils'\nimport { useFormFieldContext } from '@mirohq/design-system-base-form'\nimport { mergeProps, isVirtualClick } from '@react-aria/utils'\nimport { Spinner } from '@mirohq/design-system-spinner'\nimport { useNewDesignLanguage } from '@mirohq/design-system-experiments'\n\nimport { StyledTrigger } from './trigger.styled'\nimport { useSelectContext } from '../hooks/use-select-context'\nimport {\n StyledSelectIcon,\n StyledIconExclamationPointCircle,\n StyledIconCheckMark,\n StyledIconChevronDown,\n} from './select-icon.styled'\nimport type { StyledTriggerProps } from './trigger.styled'\n\nexport interface TriggerProps\n extends Omit<StyledTriggerProps, 'v1'>,\n 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\nconst SELECT_ICONS = {\n valid: StyledIconCheckMark,\n invalid: StyledIconExclamationPointCircle,\n default: StyledIconChevronDown,\n}\n\nexport const Trigger = React.forwardRef<\n ElementRef<typeof StyledTrigger>,\n TriggerProps\n>(\n (\n {\n 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 ...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 } = useSelectContext()\n const [focused, setFocused] = useState(false)\n const isOpen = open ?? openState ?? false\n\n const [v1] = useNewDesignLanguage()\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 /**\n * It forces the trigger of pointerDow on the Select.Trigger.\n * This had to be done because when using Ctrl + Option + Space on safari it\n * triggers onClick, and Radix only listens to onPointerDown.\n * https://github.com/radix-ui/primitives/blob/bc28fb42b81e4f95ce41eef3ed683ea0dd823dd8/packages/react/select/src/Select.tsx#L266\n */\n const handleVirtualClick: MouseEventHandler<Element> = e => {\n if (e?.nativeEvent === undefined) {\n console.error(\n 'Select.Trigger onClick expected a MouseEvent but got different one. It usually happens due to a element used asChild with a different onClick interface.\\n' +\n `Event: ${JSON.stringify(e, null, 2)}`\n )\n return\n }\n\n const nativeEvent = e.nativeEvent as any\n\n if (nativeEvent.mozInputSource === undefined) {\n nativeEvent.mozInputSource = null\n }\n\n if (isVirtualClick(e.nativeEvent) && ref.current !== null) {\n const pointerDownEvent = new MouseEvent('pointerdown', {\n bubbles: true,\n cancelable: true,\n })\n\n ref.current?.dispatchEvent(pointerDownEvent)\n }\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 id: id ?? formElementId,\n onClick: (e: React.MouseEvent<HTMLButtonElement, MouseEvent>) => {\n handleVirtualClick(e)\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 =\n SELECT_ICONS[\n (open ?? openState === true) ||\n v1 ||\n valid === undefined ||\n hovered ||\n focused\n ? 'default'\n : valid\n ? 'valid'\n : 'invalid'\n ]\n\n return (\n <StyledTrigger {...commonProps} size={size} v1={v1}>\n {loading ? (\n <Spinner css={{ flex: 1, placeSelf: 'center' }} />\n ) : (\n children\n )}\n <StyledSelectIcon asChild>\n <SelectIcon size='small' weight='thin' />\n </StyledSelectIcon>\n </StyledTrigger>\n )\n }\n)\n","import { styled } from '@mirohq/design-system-stitches'\n\nexport const StyledValue = styled('span', {\n 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 {\n FloatingLabel,\n useFormFieldContext,\n} from '@mirohq/design-system-base-form'\nimport { mergeRefs } from '@mirohq/design-system-utils'\nimport { useForceUpdate } from '@mirohq/design-system-use-force-update'\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 forceUpdate = useForceUpdate()\n\n const {\n required,\n readOnly,\n 'aria-disabled': ariaDisabled,\n setLoading,\n disabled,\n direction,\n setOpenState,\n openState,\n placeholder,\n size,\n open,\n } = useSelectContext()\n\n const {\n setRequired,\n setDisabled,\n setAriaDisabled,\n setReadOnly,\n formElementRef,\n label,\n shouldUseFloatingLabel,\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 const selectValue = selectRef?.current?.value ?? value ?? defaultValue\n\n const floatingLabel =\n placeholder !== undefined ||\n (defaultValue !== undefined && defaultValue !== '') ||\n (selectValue !== undefined && selectValue !== '')\n\n return (\n <RadixSelect\n {...restProps}\n value={value}\n defaultValue={defaultValue}\n onValueChange={newValue => {\n if (shouldUseFloatingLabel) {\n forceUpdate()\n }\n\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 {shouldUseFloatingLabel && (\n <FloatingLabel floating={floatingLabel} size={size}>\n {label}\n </FloatingLabel>\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","_a","RadixValue","RadixContent","RadixViewport","RadixLabel","RadixSeparator","RadixSelect"],"mappings":"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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@mirohq/design-system-select",
3
- "version": "0.7.8",
3
+ "version": "0.8.0-new-focus-keyboard.0",
4
4
  "description": "",
5
5
  "author": "Miro",
6
6
  "source": "src/index.ts",
@@ -30,17 +30,17 @@
30
30
  "@react-aria/interactions": "^3.13.0",
31
31
  "@react-aria/utils": "^3.13.0",
32
32
  "@react-types/shared": "^3.16.0",
33
- "@mirohq/design-system-base-select": "^0.1.21",
34
- "@mirohq/design-system-base-form": "^0.3.4",
35
- "@mirohq/design-system-base-text-field": "^0.2.3",
36
- "@mirohq/design-system-experiments": "^0.2.0",
37
- "@mirohq/design-system-icons": "^0.62.1",
38
- "@mirohq/design-system-scroll-area": "^0.4.18",
39
- "@mirohq/design-system-primitive": "^1.1.2",
33
+ "@mirohq/design-system-base-form": "^0.3.5-new-focus-keyboard.0",
34
+ "@mirohq/design-system-base-select": "^0.2.0-new-focus-keyboard.0",
35
+ "@mirohq/design-system-base-text-field": "^0.3.0-new-focus-keyboard.0",
40
36
  "@mirohq/design-system-base-tooltip": "^0.1.0",
41
- "@mirohq/design-system-spinner": "^1.1.64",
42
- "@mirohq/design-system-styles": "^1.2.30",
43
- "@mirohq/design-system-stitches": "^2.6.30",
37
+ "@mirohq/design-system-icons": "^0.62.2-new-focus-keyboard.0",
38
+ "@mirohq/design-system-scroll-area": "^0.4.19-new-focus-keyboard.0",
39
+ "@mirohq/design-system-primitive": "^1.1.2",
40
+ "@mirohq/design-system-spinner": "^1.1.65-new-focus-keyboard.0",
41
+ "@mirohq/design-system-stitches": "^2.6.31-new-focus-keyboard.0",
42
+ "@mirohq/design-system-experiments": "^0.2.0",
43
+ "@mirohq/design-system-styles": "^1.2.31-new-focus-keyboard.0",
44
44
  "@mirohq/design-system-use-force-update": "^0.1.0",
45
45
  "@mirohq/design-system-use-previous": "^0.1.0",
46
46
  "@mirohq/design-system-utils": "^0.15.5"