@mirohq/design-system-select 0.8.0-new-focus-keyboard.1 → 1.0.0-pdl-removing-ffs.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 +19 -102
- package/dist/main.js.map +1 -1
- package/dist/module.js +21 -104
- package/dist/module.js.map +1 -1
- package/dist/types.d.ts +21 -23
- package/package.json +13 -15
package/dist/main.js
CHANGED
|
@@ -6,7 +6,6 @@ var jsxRuntime = require('react/jsx-runtime');
|
|
|
6
6
|
var React = require('react');
|
|
7
7
|
var designSystemBaseForm = require('@mirohq/design-system-base-form');
|
|
8
8
|
var designSystemUtils = require('@mirohq/design-system-utils');
|
|
9
|
-
var designSystemUseForceUpdate = require('@mirohq/design-system-use-force-update');
|
|
10
9
|
var reactSelect = require('@radix-ui/react-select');
|
|
11
10
|
var designSystemUsePrevious = require('@mirohq/design-system-use-previous');
|
|
12
11
|
var designSystemBaseTooltip = require('@mirohq/design-system-base-tooltip');
|
|
@@ -17,7 +16,6 @@ var designSystemBaseSelect = require('@mirohq/design-system-base-select');
|
|
|
17
16
|
var interactions = require('@react-aria/interactions');
|
|
18
17
|
var utils = require('@react-aria/utils');
|
|
19
18
|
var designSystemSpinner = require('@mirohq/design-system-spinner');
|
|
20
|
-
var designSystemExperiments = require('@mirohq/design-system-experiments');
|
|
21
19
|
var designSystemStyles = require('@mirohq/design-system-styles');
|
|
22
20
|
var designSystemBaseTextField = require('@mirohq/design-system-base-text-field');
|
|
23
21
|
var designSystemScrollArea = require('@mirohq/design-system-scroll-area');
|
|
@@ -37,7 +35,7 @@ const StyledGroup = designSystemStitches.styled(reactSelect.Group, {});
|
|
|
37
35
|
const Group = React__default["default"].forwardRef((props, forwardRef) => /* @__PURE__ */ jsxRuntime.jsx(StyledGroup, { ...props, ref: forwardRef }));
|
|
38
36
|
|
|
39
37
|
const StyledItem = designSystemStitches.styled(reactSelect.Item, designSystemBaseSelect.itemStyles);
|
|
40
|
-
const StyledItemText = designSystemStitches.styled(
|
|
38
|
+
const StyledItemText = designSystemStitches.styled(designSystemPrimitive.Primitive.span, {
|
|
41
39
|
display: "flex",
|
|
42
40
|
gridColumn: 2,
|
|
43
41
|
width: "100%"
|
|
@@ -53,6 +51,7 @@ const Item = React__default["default"].forwardRef(
|
|
|
53
51
|
onPointerMove,
|
|
54
52
|
onPointerLeave,
|
|
55
53
|
children,
|
|
54
|
+
asChild,
|
|
56
55
|
...restProps
|
|
57
56
|
}, forwardRef) => /* @__PURE__ */ jsxRuntime.jsxs(
|
|
58
57
|
StyledItem,
|
|
@@ -93,7 +92,7 @@ const Item = React__default["default"].forwardRef(
|
|
|
93
92
|
ref: forwardRef,
|
|
94
93
|
children: [
|
|
95
94
|
/* @__PURE__ */ jsxRuntime.jsx(reactSelect.ItemIndicator, { asChild: true, children: /* @__PURE__ */ jsxRuntime.jsx(designSystemBaseSelect.StyledItemCheck, { children: /* @__PURE__ */ jsxRuntime.jsx(designSystemIcons.IconCheckMark, { size: "small" }) }) }),
|
|
96
|
-
/* @__PURE__ */ jsxRuntime.jsx(reactSelect.ItemText, { asChild: true, children: /* @__PURE__ */ jsxRuntime.jsx(StyledItemText, { children }) })
|
|
95
|
+
/* @__PURE__ */ jsxRuntime.jsx(reactSelect.ItemText, { asChild: true, children: /* @__PURE__ */ jsxRuntime.jsx(StyledItemText, { asChild, children }) })
|
|
97
96
|
]
|
|
98
97
|
}
|
|
99
98
|
)
|
|
@@ -103,15 +102,6 @@ const StyledSelectIcon = designSystemStitches.styled(reactSelect.SelectIcon, {
|
|
|
103
102
|
flexShrink: 0,
|
|
104
103
|
margin: "6px"
|
|
105
104
|
});
|
|
106
|
-
const StyledIconExclamationPointCircle = designSystemStitches.styled(
|
|
107
|
-
designSystemIcons.IconExclamationPointCircle,
|
|
108
|
-
{
|
|
109
|
-
color: "$icon-danger"
|
|
110
|
-
}
|
|
111
|
-
);
|
|
112
|
-
const StyledIconCheckMark = designSystemStitches.styled(designSystemIcons.IconCheckMark, {
|
|
113
|
-
color: "$icon-success"
|
|
114
|
-
});
|
|
115
105
|
const StyledIconChevronDown = designSystemStitches.styled(designSystemIcons.IconChevronDown, {
|
|
116
106
|
color: "$icon-neutrals-text"
|
|
117
107
|
});
|
|
@@ -119,18 +109,14 @@ const StyledIconChevronDown = designSystemStitches.styled(designSystemIcons.Icon
|
|
|
119
109
|
const StyledTrigger = designSystemStitches.styled(reactSelect.Trigger, {
|
|
120
110
|
all: "unset",
|
|
121
111
|
backgroundColor: "$background-neutrals-container",
|
|
122
|
-
border: "1px solid $border-neutrals",
|
|
123
|
-
borderRadius: "$50",
|
|
124
|
-
boxSizing: "border-box",
|
|
125
|
-
color: "$text-neutrals",
|
|
126
112
|
cursor: "pointer",
|
|
127
113
|
display: "flex",
|
|
128
114
|
minWidth: 0,
|
|
129
115
|
position: "relative",
|
|
130
116
|
userSelect: "none",
|
|
131
|
-
width: "100%",
|
|
132
117
|
justifyContent: "space-between",
|
|
133
118
|
alignItems: "center",
|
|
119
|
+
...designSystemBaseTextField.textFieldStyles.variants.idle,
|
|
134
120
|
"&[data-invalid]": designSystemBaseTextField.textFieldStyles.variants.invalid.idle,
|
|
135
121
|
"&[data-valid]": designSystemBaseTextField.textFieldStyles.variants.valid.idle,
|
|
136
122
|
"&[data-invalid][data-hovered]": designSystemBaseTextField.textFieldStyles.variants.invalid.hovered,
|
|
@@ -148,49 +134,15 @@ const StyledTrigger = designSystemStitches.styled(reactSelect.Trigger, {
|
|
|
148
134
|
...designSystemBaseTextField.textFieldStyles.variants.focused
|
|
149
135
|
})
|
|
150
136
|
},
|
|
137
|
+
"&[data-placeholder]": designSystemBaseTextField.textFieldStyles.base.placeholder.color,
|
|
138
|
+
"&[data-hovered]": designSystemBaseTextField.textFieldStyles.variants.hovered,
|
|
139
|
+
'&[disabled], &[aria-disabled="true"]': {
|
|
140
|
+
...designSystemBaseTextField.textFieldStyles.variants.disabled,
|
|
141
|
+
svg: {
|
|
142
|
+
color: "$icon-neutrals-disabled"
|
|
143
|
+
}
|
|
144
|
+
},
|
|
151
145
|
variants: {
|
|
152
|
-
v1: {
|
|
153
|
-
true: {
|
|
154
|
-
...designSystemBaseTextField.textFieldStyles.v1.idle,
|
|
155
|
-
"&[data-placeholder]": designSystemBaseTextField.textFieldStyles.base.placeholder.v1,
|
|
156
|
-
"&[data-hovered]": designSystemBaseTextField.textFieldStyles.variants.hovered,
|
|
157
|
-
'&[disabled], &[aria-disabled="true"]': {
|
|
158
|
-
...designSystemBaseTextField.textFieldStyles.variants.disabled,
|
|
159
|
-
svg: {
|
|
160
|
-
color: "$icon-neutrals-disabled"
|
|
161
|
-
}
|
|
162
|
-
}
|
|
163
|
-
},
|
|
164
|
-
false: {
|
|
165
|
-
fontSize: "$200",
|
|
166
|
-
lineHeight: 1.5,
|
|
167
|
-
"&[data-placeholder]": {
|
|
168
|
-
color: "$text-neutrals-placeholder",
|
|
169
|
-
fontStyle: "italic"
|
|
170
|
-
},
|
|
171
|
-
'&[disabled], &[aria-disabled="true"]': {
|
|
172
|
-
backgroundColor: "$background-neutrals-disabled",
|
|
173
|
-
borderColor: "$border-neutrals-disabled",
|
|
174
|
-
color: "$text-neutrals-disabled",
|
|
175
|
-
...designSystemStyles.focus.css({
|
|
176
|
-
boxShadow: "none",
|
|
177
|
-
outline: "unset"
|
|
178
|
-
}),
|
|
179
|
-
svg: {
|
|
180
|
-
color: "$icon-neutrals-disabled"
|
|
181
|
-
}
|
|
182
|
-
},
|
|
183
|
-
"&[data-hovered]": {
|
|
184
|
-
borderColor: "$border-primary-hover"
|
|
185
|
-
},
|
|
186
|
-
'&:active[data-valid], &[data-state="open"][data-valid]': {
|
|
187
|
-
borderColor: "$border-success-active"
|
|
188
|
-
},
|
|
189
|
-
'&:active[data-invalid], &[data-state="open"][data-invalid]': {
|
|
190
|
-
borderColor: "$border-danger-active"
|
|
191
|
-
}
|
|
192
|
-
}
|
|
193
|
-
},
|
|
194
146
|
size: {
|
|
195
147
|
medium: {
|
|
196
148
|
height: "$8",
|
|
@@ -205,27 +157,12 @@ const StyledTrigger = designSystemStitches.styled(reactSelect.Trigger, {
|
|
|
205
157
|
"x-large": {
|
|
206
158
|
height: "$12",
|
|
207
159
|
paddingX: "$150",
|
|
208
|
-
gap: "$100"
|
|
209
|
-
}
|
|
210
|
-
}
|
|
211
|
-
},
|
|
212
|
-
compoundVariants: [
|
|
213
|
-
{
|
|
214
|
-
v1: false,
|
|
215
|
-
size: "medium",
|
|
216
|
-
css: {
|
|
217
|
-
fontSize: "$175"
|
|
218
|
-
}
|
|
219
|
-
},
|
|
220
|
-
{
|
|
221
|
-
v1: true,
|
|
222
|
-
size: "x-large",
|
|
223
|
-
css: {
|
|
160
|
+
gap: "$100",
|
|
224
161
|
fontSize: "$200",
|
|
225
162
|
lineHeight: "$500"
|
|
226
163
|
}
|
|
227
164
|
}
|
|
228
|
-
|
|
165
|
+
}
|
|
229
166
|
});
|
|
230
167
|
|
|
231
168
|
const SelectContext = React.createContext({});
|
|
@@ -262,11 +199,6 @@ const SelectProvider = ({
|
|
|
262
199
|
};
|
|
263
200
|
const useSelectContext = () => React.useContext(SelectContext);
|
|
264
201
|
|
|
265
|
-
const SELECT_ICONS = {
|
|
266
|
-
valid: StyledIconCheckMark,
|
|
267
|
-
invalid: StyledIconExclamationPointCircle,
|
|
268
|
-
default: StyledIconChevronDown
|
|
269
|
-
};
|
|
270
202
|
const Trigger = React__default["default"].forwardRef(
|
|
271
203
|
({
|
|
272
204
|
id,
|
|
@@ -298,7 +230,6 @@ const Trigger = React__default["default"].forwardRef(
|
|
|
298
230
|
} = useSelectContext();
|
|
299
231
|
const [focused, setFocused] = React.useState(false);
|
|
300
232
|
const isOpen = (_a = open != null ? open : openState) != null ? _a : false;
|
|
301
|
-
const [v1] = designSystemExperiments.useNewDesignLanguage();
|
|
302
233
|
const {
|
|
303
234
|
formElementId,
|
|
304
235
|
ariaDescribedBy: formFieldContextDescribedBy,
|
|
@@ -384,8 +315,8 @@ const Trigger = React__default["default"].forwardRef(
|
|
|
384
315
|
if (asChild) {
|
|
385
316
|
return /* @__PURE__ */ jsxRuntime.jsx(reactSelect.Trigger, { ...commonProps, asChild: true, children });
|
|
386
317
|
}
|
|
387
|
-
const SelectIcon =
|
|
388
|
-
return /* @__PURE__ */ jsxRuntime.jsxs(StyledTrigger, { ...commonProps, size,
|
|
318
|
+
const SelectIcon = StyledIconChevronDown;
|
|
319
|
+
return /* @__PURE__ */ jsxRuntime.jsxs(StyledTrigger, { ...commonProps, size, children: [
|
|
389
320
|
loading ? /* @__PURE__ */ jsxRuntime.jsx(designSystemSpinner.Spinner, { css: { flex: 1, placeSelf: "center" } }) : children,
|
|
390
321
|
/* @__PURE__ */ jsxRuntime.jsx(StyledSelectIcon, { asChild: true, children: /* @__PURE__ */ jsxRuntime.jsx(SelectIcon, { size: "small", weight: "thin" }) })
|
|
391
322
|
] });
|
|
@@ -491,8 +422,6 @@ const Root = React__default["default"].forwardRef(
|
|
|
491
422
|
className,
|
|
492
423
|
...restProps
|
|
493
424
|
}, forwardRef) => {
|
|
494
|
-
var _a, _b, _c;
|
|
495
|
-
const forceUpdate = designSystemUseForceUpdate.useForceUpdate();
|
|
496
425
|
const {
|
|
497
426
|
required,
|
|
498
427
|
readOnly,
|
|
@@ -502,8 +431,6 @@ const Root = React__default["default"].forwardRef(
|
|
|
502
431
|
direction,
|
|
503
432
|
setOpenState,
|
|
504
433
|
openState,
|
|
505
|
-
placeholder,
|
|
506
|
-
size,
|
|
507
434
|
open
|
|
508
435
|
} = useSelectContext();
|
|
509
436
|
const {
|
|
@@ -511,9 +438,7 @@ const Root = React__default["default"].forwardRef(
|
|
|
511
438
|
setDisabled,
|
|
512
439
|
setAriaDisabled,
|
|
513
440
|
setReadOnly,
|
|
514
|
-
formElementRef
|
|
515
|
-
label,
|
|
516
|
-
shouldUseFloatingLabel
|
|
441
|
+
formElementRef
|
|
517
442
|
} = designSystemBaseForm.useFormFieldContext();
|
|
518
443
|
React.useEffect(() => {
|
|
519
444
|
setRequired == null ? void 0 : setRequired(required);
|
|
@@ -548,8 +473,6 @@ const Root = React__default["default"].forwardRef(
|
|
|
548
473
|
}
|
|
549
474
|
designSystemUtils.mergeRefs([forwardRef, formElementRef])(selectElement);
|
|
550
475
|
};
|
|
551
|
-
const selectValue = (_c = (_b = (_a = selectRef == null ? void 0 : selectRef.current) == null ? void 0 : _a.value) != null ? _b : value) != null ? _c : defaultValue;
|
|
552
|
-
const floatingLabel = placeholder !== void 0 || defaultValue !== void 0 && defaultValue !== "" || selectValue !== void 0 && selectValue !== "";
|
|
553
476
|
return /* @__PURE__ */ jsxRuntime.jsx(
|
|
554
477
|
reactSelect.Root,
|
|
555
478
|
{
|
|
@@ -557,9 +480,6 @@ const Root = React__default["default"].forwardRef(
|
|
|
557
480
|
value,
|
|
558
481
|
defaultValue,
|
|
559
482
|
onValueChange: (newValue) => {
|
|
560
|
-
if (shouldUseFloatingLabel) {
|
|
561
|
-
forceUpdate();
|
|
562
|
-
}
|
|
563
483
|
onValueChange == null ? void 0 : onValueChange(newValue);
|
|
564
484
|
},
|
|
565
485
|
dir: direction,
|
|
@@ -575,17 +495,14 @@ const Root = React__default["default"].forwardRef(
|
|
|
575
495
|
}
|
|
576
496
|
newOpen ? onOpen == null ? void 0 : onOpen() : onClose == null ? void 0 : onClose();
|
|
577
497
|
},
|
|
578
|
-
children: /* @__PURE__ */ jsxRuntime.
|
|
498
|
+
children: /* @__PURE__ */ jsxRuntime.jsx(
|
|
579
499
|
StyledSelectContent,
|
|
580
500
|
{
|
|
581
501
|
ref: domRef,
|
|
582
502
|
"data-form-element": "select",
|
|
583
503
|
css,
|
|
584
504
|
className,
|
|
585
|
-
children
|
|
586
|
-
shouldUseFloatingLabel && /* @__PURE__ */ jsxRuntime.jsx(designSystemBaseForm.FloatingLabel, { floating: floatingLabel, size, children: label }),
|
|
587
|
-
children
|
|
588
|
-
]
|
|
505
|
+
children
|
|
589
506
|
}
|
|
590
507
|
)
|
|
591
508
|
}
|
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 '&: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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"}
|
|
1
|
+
{"version":3,"file":"main.js","sources":["../src/select.styled.tsx","../src/partials/group.styled.tsx","../src/partials/group.tsx","../src/partials/item.styled.tsx","../src/partials/item.tsx","../src/partials/select-icon.styled.tsx","../src/partials/trigger.styled.tsx","../src/hooks/use-select-context.tsx","../src/partials/trigger.tsx","../src/partials/value.styled.tsx","../src/partials/value.tsx","../src/partials/content.styled.tsx","../src/partials/content.tsx","../src/partials/group-label.styled.tsx","../src/partials/group-label.tsx","../src/partials/separator.styled.tsx","../src/partials/separator.tsx","../src/select.tsx"],"sourcesContent":["import type { ComponentPropsWithRef } from 'react'\nimport { styled } from '@mirohq/design-system-stitches'\nimport { Primitive } from '@mirohq/design-system-primitive'\n\nexport const StyledSelectContent = styled(Primitive.div, {\n position: 'relative',\n width: '100%',\n display: 'inline-flex',\n})\n\nexport type StyledSelectContentProps = ComponentPropsWithRef<\n typeof StyledSelectContent\n>\n","import { Group as RadixGroup } from '@radix-ui/react-select'\nimport { styled } from '@mirohq/design-system-stitches'\nimport type { StrictComponentProps } from '@mirohq/design-system-stitches'\n\nexport const StyledGroup = styled(RadixGroup, {})\n\nexport type StyledGroupProps = StrictComponentProps<typeof StyledGroup>\n","import React from 'react'\nimport type { ElementRef } from 'react'\n\nimport { StyledGroup } from './group.styled'\nimport type { StyledGroupProps } from './group.styled'\n\nexport interface GroupProps extends StyledGroupProps {}\n\nexport const Group = React.forwardRef<\n ElementRef<typeof StyledGroup>,\n GroupProps\n>((props, forwardRef) => <StyledGroup {...props} ref={forwardRef} />)\n","import { Item as RadixItem } from '@radix-ui/react-select'\nimport { styled } from '@mirohq/design-system-stitches'\nimport type { StrictComponentProps } from '@mirohq/design-system-stitches'\nimport { itemStyles } from '@mirohq/design-system-base-select'\nimport { Primitive } from '@mirohq/design-system-primitive'\n\nexport const StyledItem = styled(RadixItem, itemStyles)\n\nexport const StyledItemText = styled(Primitive.span, {\n display: 'flex',\n gridColumn: 2,\n width: '100%',\n})\n\nexport type StyledItemProps = StrictComponentProps<typeof StyledItem>\n","import React 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 asChild,\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 asChild={asChild}>{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 { IconChevronDown } from '@mirohq/design-system-icons'\n\nexport const StyledSelectIcon = styled(RadixSelectIcon, {\n flexShrink: 0,\n margin: '6px',\n})\n\nexport const StyledIconChevronDown = styled(IconChevronDown, {\n color: '$icon-neutrals-text',\n})\n","import type { StrictComponentProps } from '@mirohq/design-system-stitches'\nimport { styled } from '@mirohq/design-system-stitches'\nimport { Trigger as RadixTrigger } from '@radix-ui/react-select'\nimport { focus } from '@mirohq/design-system-styles'\nimport { textFieldStyles } from '@mirohq/design-system-base-text-field'\n\nimport { StyledSelectIcon } from './select-icon.styled'\n\nexport const StyledTrigger = styled(RadixTrigger, {\n all: 'unset',\n backgroundColor: '$background-neutrals-container',\n cursor: 'pointer',\n display: 'flex',\n minWidth: 0,\n position: 'relative',\n userSelect: 'none',\n justifyContent: 'space-between',\n alignItems: 'center',\n\n ...textFieldStyles.variants.idle,\n\n '&[data-invalid]': textFieldStyles.variants.invalid.idle,\n\n '&[data-valid]': textFieldStyles.variants.valid.idle,\n\n '&[data-invalid][data-hovered]': textFieldStyles.variants.invalid.hovered,\n\n '&[data-valid][data-hovered]': textFieldStyles.variants.valid.hovered,\n\n '&:active, &[data-state=\"open\"]': {\n borderColor: '$border-primary-active',\n },\n\n '&[data-state=\"open\"]': {\n [`& ${StyledSelectIcon}`]: {\n transform: 'rotate(180deg)',\n },\n },\n\n '&:not([disabled])': {\n ...focus.css({\n ...textFieldStyles.variants.focused,\n }),\n },\n\n '&[data-placeholder]': textFieldStyles.base.placeholder.color,\n\n '&[data-hovered]': textFieldStyles.variants.hovered,\n\n '&[disabled], &[aria-disabled=\"true\"]': {\n ...textFieldStyles.variants.disabled,\n\n svg: {\n color: '$icon-neutrals-disabled',\n },\n },\n\n variants: {\n size: {\n medium: {\n height: '$8',\n paddingX: '$50',\n gap: '$25',\n },\n large: {\n height: '$10',\n paddingX: '$100',\n gap: '$50',\n },\n 'x-large': {\n height: '$12',\n paddingX: '$150',\n gap: '$100',\n fontSize: '$200',\n lineHeight: '$500',\n },\n },\n },\n})\n\nexport type StyledTriggerProps = StrictComponentProps<typeof StyledTrigger>\n","import { createContext, useContext, useState } from 'react'\nimport type { FormElementProps } from '@mirohq/design-system-base-form'\n\nimport type { StyledTriggerProps } from '../partials/trigger.styled'\nimport type { Direction } from '../types'\n\ninterface SelectProps extends FormElementProps {\n defaultOpen?: boolean\n direction?: Direction\n open?: boolean\n valid?: boolean\n}\n\ninterface SelectContextProps extends SelectProps {\n setOpenState: React.Dispatch<React.SetStateAction<boolean | undefined>>\n openState?: boolean | undefined\n placeholder?: React.ReactNode\n setPlaceholder: React.Dispatch<React.SetStateAction<React.ReactNode>>\n size: StyledTriggerProps['size']\n setSize: React.Dispatch<React.SetStateAction<StyledTriggerProps['size']>>\n loading?: boolean\n setLoading: React.Dispatch<React.SetStateAction<boolean | undefined>>\n}\n\nexport interface SelectProviderProps extends SelectProps {\n children: React.ReactNode\n}\n\nconst SelectContext = createContext<SelectContextProps>({} as any)\n\nexport const SelectProvider = ({\n children,\n defaultOpen,\n open,\n valid,\n ...restProps\n}: SelectProviderProps): JSX.Element => {\n const [openState, setOpenState] = useState(defaultOpen)\n const [loading, setLoading] = useState<boolean | undefined>(false)\n const [placeholder, setPlaceholder] = useState<React.ReactNode>()\n const [size, setSize] = useState<StyledTriggerProps['size']>()\n\n return (\n <SelectContext.Provider\n value={{\n ...restProps,\n valid,\n open,\n openState,\n setOpenState,\n placeholder,\n setPlaceholder,\n size,\n setSize,\n loading,\n setLoading,\n }}\n >\n {children}\n </SelectContext.Provider>\n )\n}\n\nexport const useSelectContext = (): SelectContextProps =>\n useContext(SelectContext)\n","import React, { useState, useEffect, useRef } from 'react'\nimport { Trigger as RadixTrigger } from '@radix-ui/react-select'\nimport { useHover } from '@react-aria/interactions'\nimport type { HoverEvents } from '@react-types/shared'\nimport type { 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'\n\nimport { StyledTrigger } from './trigger.styled'\nimport { useSelectContext } from '../hooks/use-select-context'\nimport { StyledSelectIcon, StyledIconChevronDown } from './select-icon.styled'\nimport type { StyledTriggerProps } from './trigger.styled'\n\nexport interface TriggerProps extends StyledTriggerProps, HoverEvents {\n /**\n * The content.\n */\n children: React.ReactNode\n\n /**\n * The size of the trigger.\n * @default 'large'\n */\n size?: StyledTriggerProps['size']\n}\n\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 {\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 = StyledIconChevronDown\n\n return (\n <StyledTrigger {...commonProps} size={size}>\n {loading ? (\n <Spinner css={{ flex: 1, placeSelf: 'center' }} />\n ) : (\n children\n )}\n <StyledSelectIcon asChild>\n <SelectIcon size='small' 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 { useFormFieldContext } from '@mirohq/design-system-base-form'\nimport { mergeRefs } from '@mirohq/design-system-utils'\nimport type { SelectProps as RadixSelectProps } from '@radix-ui/react-select'\nimport { Root as RadixSelect } from '@radix-ui/react-select'\nimport { usePrevious } from '@mirohq/design-system-use-previous'\nimport {\n BaseTooltipProvider,\n useBaseTooltipContext,\n} from '@mirohq/design-system-base-tooltip'\n\nimport { StyledSelectContent } from './select.styled'\nimport type { StyledSelectContentProps } from './select.styled'\nimport { Group } from './partials/group'\nimport { Item } from './partials/item'\nimport { Portal } from './partials/portal'\nimport { Trigger } from './partials/trigger'\nimport { Value } from './partials/value'\nimport { Content } from './partials/content'\nimport { GroupLabel } from './partials/group-label'\nimport { Separator } from './partials/separator'\nimport { SelectProvider, useSelectContext } from './hooks/use-select-context'\nimport type { Direction } from './types'\n\nexport interface SelectProps\n extends FormElementProps,\n Omit<RadixSelectProps, 'onOpenChange'>,\n Omit<StyledSelectContentProps, 'dir'> {\n /**\n * The value of the select when initially rendered. Use when you do not need\n * to control the state of the select.\n */\n defaultValue?: string\n\n /**\n * The controlled value of the select. Should be used in conjunction with\n * onValueChange.\n */\n value?: string\n\n /**\n * Event handler called when the value changes.\n */\n onValueChange?: (value: string) => void\n\n /**\n * The open state of the select when it is initially rendered. Use when you do\n * not need to control its open state.\n * @default false\n */\n defaultOpen?: boolean\n\n /**\n * The controlled open state of the select. Must be used in conjunction with\n * onOpen and onClose.\n */\n open?: boolean\n\n /**\n * Event handler called when the select opens.\n */\n onOpen?: () => void\n\n /**\n * Event handler called when the select closes.\n */\n onClose?: () => void\n\n /**\n * The reading direction of the select when applicable. If omitted, inherits\n * globally from DirectionProvider or assumes LTR (left-to-right) reading\n * mode.\n * @default 'ltr'\n */\n direction?: Direction\n\n /**\n * The name of the select. Submitted with its owning form as part of a\n * name/value pair.\n */\n name?: string\n\n /**\n * Enables loading state for the select.\n */\n loading?: boolean\n}\n\nconst Root = React.forwardRef<ElementRef<'select'>, SelectProps>(\n (\n {\n onOpen,\n onClose,\n children,\n onValueChange,\n value,\n defaultValue,\n loading = false,\n css,\n // @ts-expect-error className required when extending the component with styled()\n className,\n ...restProps\n },\n forwardRef\n ) => {\n const {\n required,\n readOnly,\n 'aria-disabled': ariaDisabled,\n setLoading,\n disabled,\n direction,\n setOpenState,\n openState,\n open,\n } = useSelectContext()\n\n const {\n setRequired,\n setDisabled,\n setAriaDisabled,\n setReadOnly,\n formElementRef,\n } = useFormFieldContext<HTMLSelectElement>()\n\n useEffect(() => {\n setRequired?.(required)\n setDisabled?.(disabled)\n setAriaDisabled?.(ariaDisabled)\n setLoading(loading)\n setReadOnly?.(readOnly)\n }, [\n readOnly,\n disabled,\n loading,\n ariaDisabled,\n required,\n setRequired,\n setDisabled,\n setAriaDisabled,\n setReadOnly,\n setLoading,\n ])\n\n const { ignoreNextTooltip } = useBaseTooltipContext()\n const prevOpen = usePrevious(open)\n\n useEffect(() => {\n if (prevOpen === true && open === false) {\n ignoreNextTooltip()\n }\n }, [ignoreNextTooltip, open, prevOpen])\n\n const selectRef = useRef<HTMLSelectElement>()\n\n // intentionally not using useCallback to force formElementRef to be updated\n const domRef = (node: HTMLDivElement): void => {\n const selectElement = node?.nextElementSibling as HTMLSelectElement | null\n\n if (selectElement?.tagName === 'SELECT') {\n selectRef.current = selectElement\n }\n\n // @ts-expect-error TS doesn't know about the dynamic set of the generated select element\n mergeRefs([forwardRef, formElementRef])(selectElement)\n }\n\n return (\n <RadixSelect\n {...restProps}\n value={value}\n defaultValue={defaultValue}\n onValueChange={newValue => {\n onValueChange?.(newValue)\n }}\n dir={direction}\n disabled={disabled}\n required={required}\n open={open ?? openState}\n onOpenChange={newOpen => {\n if (open == null) {\n setOpenState(newOpen)\n\n if (!newOpen) {\n ignoreNextTooltip()\n }\n }\n\n newOpen ? onOpen?.() : onClose?.()\n }}\n >\n <StyledSelectContent\n ref={domRef}\n data-form-element='select'\n css={css}\n // @ts-expect-error className required when extending the component with styled()\n className={className}\n >\n {children}\n </StyledSelectContent>\n </RadixSelect>\n )\n }\n)\n\nexport const Select = React.forwardRef<ElementRef<'select'>, SelectProps>(\n (\n {\n 'aria-disabled': ariaDisabled,\n defaultOpen = false,\n direction = 'ltr',\n disabled,\n readOnly,\n required,\n valid,\n open,\n ...restProps\n },\n forwardRef\n ) => (\n <SelectProvider\n open={open}\n aria-disabled={ariaDisabled}\n defaultOpen={defaultOpen}\n direction={direction}\n required={required}\n disabled={disabled}\n readOnly={readOnly}\n valid={valid}\n >\n <BaseTooltipProvider>\n <Root {...restProps} ref={forwardRef} />\n </BaseTooltipProvider>\n </SelectProvider>\n )\n) as ForwardRefExoticComponent<SelectProps> & Partials\n\nexport interface Partials {\n Content: typeof Content\n Separator: typeof Separator\n GroupLabel: typeof GroupLabel\n Group: typeof Group\n Item: typeof Item\n Portal: typeof Portal\n Trigger: typeof Trigger\n Value: typeof Value\n}\n\nSelect.Group = Group\nSelect.Separator = Separator\nSelect.Content = Content\nSelect.Item = Item\nSelect.Portal = Portal\nSelect.Trigger = Trigger\nSelect.Value = Value\nSelect.GroupLabel = GroupLabel\n"],"names":["styled","Primitive","RadixGroup","React","jsx","RadixItem","itemStyles","jsxs","booleanify","RadixItemIndicator","StyledItemCheck","IconCheckMark","RadixItemText","RadixSelectIcon","IconChevronDown","RadixTrigger","textFieldStyles","focus","createContext","useState","useContext","useRef","useFormFieldContext","useHover","_a","isVirtualClick","mergeProps","booleanishAttrValue","stringAttrValue","mergeRefs","useEffect","Spinner","RadixValue","itemsContainerStyles","RadixContent","contentStyles","theme","RadixViewport","ScrollArea","Fragment","RadixLabel","groupLabelStyles","RadixSeparator","separatorStyles","useBaseTooltipContext","usePrevious","RadixSelect","BaseTooltipProvider","Portal"],"mappings":"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"}
|
package/dist/module.js
CHANGED
|
@@ -1,19 +1,17 @@
|
|
|
1
1
|
import { jsx, jsxs, Fragment } from 'react/jsx-runtime';
|
|
2
2
|
import React, { createContext, useState, useContext, useRef, useEffect } from 'react';
|
|
3
|
-
import { useFormFieldContext
|
|
3
|
+
import { useFormFieldContext } from '@mirohq/design-system-base-form';
|
|
4
4
|
import { booleanify, booleanishAttrValue, stringAttrValue, mergeRefs } from '@mirohq/design-system-utils';
|
|
5
|
-
import { useForceUpdate } from '@mirohq/design-system-use-force-update';
|
|
6
5
|
import { Group as Group$1, Item as Item$1, ItemIndicator, ItemText, SelectIcon, Trigger as Trigger$1, Value as Value$1, Content as Content$1, Viewport, Label, Separator as Separator$1, Root as Root$1, Portal } from '@radix-ui/react-select';
|
|
7
6
|
import { usePrevious } from '@mirohq/design-system-use-previous';
|
|
8
7
|
import { useBaseTooltipContext, BaseTooltipProvider } from '@mirohq/design-system-base-tooltip';
|
|
9
8
|
import { styled, theme } from '@mirohq/design-system-stitches';
|
|
10
9
|
import { Primitive } from '@mirohq/design-system-primitive';
|
|
11
|
-
import { IconCheckMark,
|
|
10
|
+
import { IconCheckMark, IconChevronDown } from '@mirohq/design-system-icons';
|
|
12
11
|
import { itemStyles, StyledItemCheck, itemsContainerStyles, contentStyles, groupLabelStyles, separatorStyles } from '@mirohq/design-system-base-select';
|
|
13
12
|
import { useHover } from '@react-aria/interactions';
|
|
14
13
|
import { mergeProps, isVirtualClick } from '@react-aria/utils';
|
|
15
14
|
import { Spinner } from '@mirohq/design-system-spinner';
|
|
16
|
-
import { useNewDesignLanguage } from '@mirohq/design-system-experiments';
|
|
17
15
|
import { focus } from '@mirohq/design-system-styles';
|
|
18
16
|
import { textFieldStyles } from '@mirohq/design-system-base-text-field';
|
|
19
17
|
import { ScrollArea } from '@mirohq/design-system-scroll-area';
|
|
@@ -29,7 +27,7 @@ const StyledGroup = styled(Group$1, {});
|
|
|
29
27
|
const Group = React.forwardRef((props, forwardRef) => /* @__PURE__ */ jsx(StyledGroup, { ...props, ref: forwardRef }));
|
|
30
28
|
|
|
31
29
|
const StyledItem = styled(Item$1, itemStyles);
|
|
32
|
-
const StyledItemText = styled(
|
|
30
|
+
const StyledItemText = styled(Primitive.span, {
|
|
33
31
|
display: "flex",
|
|
34
32
|
gridColumn: 2,
|
|
35
33
|
width: "100%"
|
|
@@ -45,6 +43,7 @@ const Item = React.forwardRef(
|
|
|
45
43
|
onPointerMove,
|
|
46
44
|
onPointerLeave,
|
|
47
45
|
children,
|
|
46
|
+
asChild,
|
|
48
47
|
...restProps
|
|
49
48
|
}, forwardRef) => /* @__PURE__ */ jsxs(
|
|
50
49
|
StyledItem,
|
|
@@ -85,7 +84,7 @@ const Item = React.forwardRef(
|
|
|
85
84
|
ref: forwardRef,
|
|
86
85
|
children: [
|
|
87
86
|
/* @__PURE__ */ jsx(ItemIndicator, { asChild: true, children: /* @__PURE__ */ jsx(StyledItemCheck, { children: /* @__PURE__ */ jsx(IconCheckMark, { size: "small" }) }) }),
|
|
88
|
-
/* @__PURE__ */ jsx(ItemText, { asChild: true, children: /* @__PURE__ */ jsx(StyledItemText, { children }) })
|
|
87
|
+
/* @__PURE__ */ jsx(ItemText, { asChild: true, children: /* @__PURE__ */ jsx(StyledItemText, { asChild, children }) })
|
|
89
88
|
]
|
|
90
89
|
}
|
|
91
90
|
)
|
|
@@ -95,15 +94,6 @@ const StyledSelectIcon = styled(SelectIcon, {
|
|
|
95
94
|
flexShrink: 0,
|
|
96
95
|
margin: "6px"
|
|
97
96
|
});
|
|
98
|
-
const StyledIconExclamationPointCircle = styled(
|
|
99
|
-
IconExclamationPointCircle,
|
|
100
|
-
{
|
|
101
|
-
color: "$icon-danger"
|
|
102
|
-
}
|
|
103
|
-
);
|
|
104
|
-
const StyledIconCheckMark = styled(IconCheckMark, {
|
|
105
|
-
color: "$icon-success"
|
|
106
|
-
});
|
|
107
97
|
const StyledIconChevronDown = styled(IconChevronDown, {
|
|
108
98
|
color: "$icon-neutrals-text"
|
|
109
99
|
});
|
|
@@ -111,18 +101,14 @@ const StyledIconChevronDown = styled(IconChevronDown, {
|
|
|
111
101
|
const StyledTrigger = styled(Trigger$1, {
|
|
112
102
|
all: "unset",
|
|
113
103
|
backgroundColor: "$background-neutrals-container",
|
|
114
|
-
border: "1px solid $border-neutrals",
|
|
115
|
-
borderRadius: "$50",
|
|
116
|
-
boxSizing: "border-box",
|
|
117
|
-
color: "$text-neutrals",
|
|
118
104
|
cursor: "pointer",
|
|
119
105
|
display: "flex",
|
|
120
106
|
minWidth: 0,
|
|
121
107
|
position: "relative",
|
|
122
108
|
userSelect: "none",
|
|
123
|
-
width: "100%",
|
|
124
109
|
justifyContent: "space-between",
|
|
125
110
|
alignItems: "center",
|
|
111
|
+
...textFieldStyles.variants.idle,
|
|
126
112
|
"&[data-invalid]": textFieldStyles.variants.invalid.idle,
|
|
127
113
|
"&[data-valid]": textFieldStyles.variants.valid.idle,
|
|
128
114
|
"&[data-invalid][data-hovered]": textFieldStyles.variants.invalid.hovered,
|
|
@@ -140,49 +126,15 @@ const StyledTrigger = styled(Trigger$1, {
|
|
|
140
126
|
...textFieldStyles.variants.focused
|
|
141
127
|
})
|
|
142
128
|
},
|
|
129
|
+
"&[data-placeholder]": textFieldStyles.base.placeholder.color,
|
|
130
|
+
"&[data-hovered]": textFieldStyles.variants.hovered,
|
|
131
|
+
'&[disabled], &[aria-disabled="true"]': {
|
|
132
|
+
...textFieldStyles.variants.disabled,
|
|
133
|
+
svg: {
|
|
134
|
+
color: "$icon-neutrals-disabled"
|
|
135
|
+
}
|
|
136
|
+
},
|
|
143
137
|
variants: {
|
|
144
|
-
v1: {
|
|
145
|
-
true: {
|
|
146
|
-
...textFieldStyles.v1.idle,
|
|
147
|
-
"&[data-placeholder]": textFieldStyles.base.placeholder.v1,
|
|
148
|
-
"&[data-hovered]": textFieldStyles.variants.hovered,
|
|
149
|
-
'&[disabled], &[aria-disabled="true"]': {
|
|
150
|
-
...textFieldStyles.variants.disabled,
|
|
151
|
-
svg: {
|
|
152
|
-
color: "$icon-neutrals-disabled"
|
|
153
|
-
}
|
|
154
|
-
}
|
|
155
|
-
},
|
|
156
|
-
false: {
|
|
157
|
-
fontSize: "$200",
|
|
158
|
-
lineHeight: 1.5,
|
|
159
|
-
"&[data-placeholder]": {
|
|
160
|
-
color: "$text-neutrals-placeholder",
|
|
161
|
-
fontStyle: "italic"
|
|
162
|
-
},
|
|
163
|
-
'&[disabled], &[aria-disabled="true"]': {
|
|
164
|
-
backgroundColor: "$background-neutrals-disabled",
|
|
165
|
-
borderColor: "$border-neutrals-disabled",
|
|
166
|
-
color: "$text-neutrals-disabled",
|
|
167
|
-
...focus.css({
|
|
168
|
-
boxShadow: "none",
|
|
169
|
-
outline: "unset"
|
|
170
|
-
}),
|
|
171
|
-
svg: {
|
|
172
|
-
color: "$icon-neutrals-disabled"
|
|
173
|
-
}
|
|
174
|
-
},
|
|
175
|
-
"&[data-hovered]": {
|
|
176
|
-
borderColor: "$border-primary-hover"
|
|
177
|
-
},
|
|
178
|
-
'&:active[data-valid], &[data-state="open"][data-valid]': {
|
|
179
|
-
borderColor: "$border-success-active"
|
|
180
|
-
},
|
|
181
|
-
'&:active[data-invalid], &[data-state="open"][data-invalid]': {
|
|
182
|
-
borderColor: "$border-danger-active"
|
|
183
|
-
}
|
|
184
|
-
}
|
|
185
|
-
},
|
|
186
138
|
size: {
|
|
187
139
|
medium: {
|
|
188
140
|
height: "$8",
|
|
@@ -197,27 +149,12 @@ const StyledTrigger = styled(Trigger$1, {
|
|
|
197
149
|
"x-large": {
|
|
198
150
|
height: "$12",
|
|
199
151
|
paddingX: "$150",
|
|
200
|
-
gap: "$100"
|
|
201
|
-
}
|
|
202
|
-
}
|
|
203
|
-
},
|
|
204
|
-
compoundVariants: [
|
|
205
|
-
{
|
|
206
|
-
v1: false,
|
|
207
|
-
size: "medium",
|
|
208
|
-
css: {
|
|
209
|
-
fontSize: "$175"
|
|
210
|
-
}
|
|
211
|
-
},
|
|
212
|
-
{
|
|
213
|
-
v1: true,
|
|
214
|
-
size: "x-large",
|
|
215
|
-
css: {
|
|
152
|
+
gap: "$100",
|
|
216
153
|
fontSize: "$200",
|
|
217
154
|
lineHeight: "$500"
|
|
218
155
|
}
|
|
219
156
|
}
|
|
220
|
-
|
|
157
|
+
}
|
|
221
158
|
});
|
|
222
159
|
|
|
223
160
|
const SelectContext = createContext({});
|
|
@@ -254,11 +191,6 @@ const SelectProvider = ({
|
|
|
254
191
|
};
|
|
255
192
|
const useSelectContext = () => useContext(SelectContext);
|
|
256
193
|
|
|
257
|
-
const SELECT_ICONS = {
|
|
258
|
-
valid: StyledIconCheckMark,
|
|
259
|
-
invalid: StyledIconExclamationPointCircle,
|
|
260
|
-
default: StyledIconChevronDown
|
|
261
|
-
};
|
|
262
194
|
const Trigger = React.forwardRef(
|
|
263
195
|
({
|
|
264
196
|
id,
|
|
@@ -290,7 +222,6 @@ const Trigger = React.forwardRef(
|
|
|
290
222
|
} = useSelectContext();
|
|
291
223
|
const [focused, setFocused] = useState(false);
|
|
292
224
|
const isOpen = (_a = open != null ? open : openState) != null ? _a : false;
|
|
293
|
-
const [v1] = useNewDesignLanguage();
|
|
294
225
|
const {
|
|
295
226
|
formElementId,
|
|
296
227
|
ariaDescribedBy: formFieldContextDescribedBy,
|
|
@@ -376,8 +307,8 @@ const Trigger = React.forwardRef(
|
|
|
376
307
|
if (asChild) {
|
|
377
308
|
return /* @__PURE__ */ jsx(Trigger$1, { ...commonProps, asChild: true, children });
|
|
378
309
|
}
|
|
379
|
-
const SelectIcon =
|
|
380
|
-
return /* @__PURE__ */ jsxs(StyledTrigger, { ...commonProps, size,
|
|
310
|
+
const SelectIcon = StyledIconChevronDown;
|
|
311
|
+
return /* @__PURE__ */ jsxs(StyledTrigger, { ...commonProps, size, children: [
|
|
381
312
|
loading ? /* @__PURE__ */ jsx(Spinner, { css: { flex: 1, placeSelf: "center" } }) : children,
|
|
382
313
|
/* @__PURE__ */ jsx(StyledSelectIcon, { asChild: true, children: /* @__PURE__ */ jsx(SelectIcon, { size: "small", weight: "thin" }) })
|
|
383
314
|
] });
|
|
@@ -483,8 +414,6 @@ const Root = React.forwardRef(
|
|
|
483
414
|
className,
|
|
484
415
|
...restProps
|
|
485
416
|
}, forwardRef) => {
|
|
486
|
-
var _a, _b, _c;
|
|
487
|
-
const forceUpdate = useForceUpdate();
|
|
488
417
|
const {
|
|
489
418
|
required,
|
|
490
419
|
readOnly,
|
|
@@ -494,8 +423,6 @@ const Root = React.forwardRef(
|
|
|
494
423
|
direction,
|
|
495
424
|
setOpenState,
|
|
496
425
|
openState,
|
|
497
|
-
placeholder,
|
|
498
|
-
size,
|
|
499
426
|
open
|
|
500
427
|
} = useSelectContext();
|
|
501
428
|
const {
|
|
@@ -503,9 +430,7 @@ const Root = React.forwardRef(
|
|
|
503
430
|
setDisabled,
|
|
504
431
|
setAriaDisabled,
|
|
505
432
|
setReadOnly,
|
|
506
|
-
formElementRef
|
|
507
|
-
label,
|
|
508
|
-
shouldUseFloatingLabel
|
|
433
|
+
formElementRef
|
|
509
434
|
} = useFormFieldContext();
|
|
510
435
|
useEffect(() => {
|
|
511
436
|
setRequired == null ? void 0 : setRequired(required);
|
|
@@ -540,8 +465,6 @@ const Root = React.forwardRef(
|
|
|
540
465
|
}
|
|
541
466
|
mergeRefs([forwardRef, formElementRef])(selectElement);
|
|
542
467
|
};
|
|
543
|
-
const selectValue = (_c = (_b = (_a = selectRef == null ? void 0 : selectRef.current) == null ? void 0 : _a.value) != null ? _b : value) != null ? _c : defaultValue;
|
|
544
|
-
const floatingLabel = placeholder !== void 0 || defaultValue !== void 0 && defaultValue !== "" || selectValue !== void 0 && selectValue !== "";
|
|
545
468
|
return /* @__PURE__ */ jsx(
|
|
546
469
|
Root$1,
|
|
547
470
|
{
|
|
@@ -549,9 +472,6 @@ const Root = React.forwardRef(
|
|
|
549
472
|
value,
|
|
550
473
|
defaultValue,
|
|
551
474
|
onValueChange: (newValue) => {
|
|
552
|
-
if (shouldUseFloatingLabel) {
|
|
553
|
-
forceUpdate();
|
|
554
|
-
}
|
|
555
475
|
onValueChange == null ? void 0 : onValueChange(newValue);
|
|
556
476
|
},
|
|
557
477
|
dir: direction,
|
|
@@ -567,17 +487,14 @@ const Root = React.forwardRef(
|
|
|
567
487
|
}
|
|
568
488
|
newOpen ? onOpen == null ? void 0 : onOpen() : onClose == null ? void 0 : onClose();
|
|
569
489
|
},
|
|
570
|
-
children: /* @__PURE__ */
|
|
490
|
+
children: /* @__PURE__ */ jsx(
|
|
571
491
|
StyledSelectContent,
|
|
572
492
|
{
|
|
573
493
|
ref: domRef,
|
|
574
494
|
"data-form-element": "select",
|
|
575
495
|
css,
|
|
576
496
|
className,
|
|
577
|
-
children
|
|
578
|
-
shouldUseFloatingLabel && /* @__PURE__ */ jsx(FloatingLabel, { floating: floatingLabel, size, children: label }),
|
|
579
|
-
children
|
|
580
|
-
]
|
|
497
|
+
children
|
|
581
498
|
}
|
|
582
499
|
)
|
|
583
500
|
}
|
package/dist/module.js.map
CHANGED
|
@@ -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 '&: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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"}
|
|
1
|
+
{"version":3,"file":"module.js","sources":["../src/select.styled.tsx","../src/partials/group.styled.tsx","../src/partials/group.tsx","../src/partials/item.styled.tsx","../src/partials/item.tsx","../src/partials/select-icon.styled.tsx","../src/partials/trigger.styled.tsx","../src/hooks/use-select-context.tsx","../src/partials/trigger.tsx","../src/partials/value.styled.tsx","../src/partials/value.tsx","../src/partials/content.styled.tsx","../src/partials/content.tsx","../src/partials/group-label.styled.tsx","../src/partials/group-label.tsx","../src/partials/separator.styled.tsx","../src/partials/separator.tsx","../src/select.tsx"],"sourcesContent":["import type { ComponentPropsWithRef } from 'react'\nimport { styled } from '@mirohq/design-system-stitches'\nimport { Primitive } from '@mirohq/design-system-primitive'\n\nexport const StyledSelectContent = styled(Primitive.div, {\n position: 'relative',\n width: '100%',\n display: 'inline-flex',\n})\n\nexport type StyledSelectContentProps = ComponentPropsWithRef<\n typeof StyledSelectContent\n>\n","import { Group as RadixGroup } from '@radix-ui/react-select'\nimport { styled } from '@mirohq/design-system-stitches'\nimport type { StrictComponentProps } from '@mirohq/design-system-stitches'\n\nexport const StyledGroup = styled(RadixGroup, {})\n\nexport type StyledGroupProps = StrictComponentProps<typeof StyledGroup>\n","import React from 'react'\nimport type { ElementRef } from 'react'\n\nimport { StyledGroup } from './group.styled'\nimport type { StyledGroupProps } from './group.styled'\n\nexport interface GroupProps extends StyledGroupProps {}\n\nexport const Group = React.forwardRef<\n ElementRef<typeof StyledGroup>,\n GroupProps\n>((props, forwardRef) => <StyledGroup {...props} ref={forwardRef} />)\n","import { Item as RadixItem } from '@radix-ui/react-select'\nimport { styled } from '@mirohq/design-system-stitches'\nimport type { StrictComponentProps } from '@mirohq/design-system-stitches'\nimport { itemStyles } from '@mirohq/design-system-base-select'\nimport { Primitive } from '@mirohq/design-system-primitive'\n\nexport const StyledItem = styled(RadixItem, itemStyles)\n\nexport const StyledItemText = styled(Primitive.span, {\n display: 'flex',\n gridColumn: 2,\n width: '100%',\n})\n\nexport type StyledItemProps = StrictComponentProps<typeof StyledItem>\n","import React 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 asChild,\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 asChild={asChild}>{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 { IconChevronDown } from '@mirohq/design-system-icons'\n\nexport const StyledSelectIcon = styled(RadixSelectIcon, {\n flexShrink: 0,\n margin: '6px',\n})\n\nexport const StyledIconChevronDown = styled(IconChevronDown, {\n color: '$icon-neutrals-text',\n})\n","import type { StrictComponentProps } from '@mirohq/design-system-stitches'\nimport { styled } from '@mirohq/design-system-stitches'\nimport { Trigger as RadixTrigger } from '@radix-ui/react-select'\nimport { focus } from '@mirohq/design-system-styles'\nimport { textFieldStyles } from '@mirohq/design-system-base-text-field'\n\nimport { StyledSelectIcon } from './select-icon.styled'\n\nexport const StyledTrigger = styled(RadixTrigger, {\n all: 'unset',\n backgroundColor: '$background-neutrals-container',\n cursor: 'pointer',\n display: 'flex',\n minWidth: 0,\n position: 'relative',\n userSelect: 'none',\n justifyContent: 'space-between',\n alignItems: 'center',\n\n ...textFieldStyles.variants.idle,\n\n '&[data-invalid]': textFieldStyles.variants.invalid.idle,\n\n '&[data-valid]': textFieldStyles.variants.valid.idle,\n\n '&[data-invalid][data-hovered]': textFieldStyles.variants.invalid.hovered,\n\n '&[data-valid][data-hovered]': textFieldStyles.variants.valid.hovered,\n\n '&:active, &[data-state=\"open\"]': {\n borderColor: '$border-primary-active',\n },\n\n '&[data-state=\"open\"]': {\n [`& ${StyledSelectIcon}`]: {\n transform: 'rotate(180deg)',\n },\n },\n\n '&:not([disabled])': {\n ...focus.css({\n ...textFieldStyles.variants.focused,\n }),\n },\n\n '&[data-placeholder]': textFieldStyles.base.placeholder.color,\n\n '&[data-hovered]': textFieldStyles.variants.hovered,\n\n '&[disabled], &[aria-disabled=\"true\"]': {\n ...textFieldStyles.variants.disabled,\n\n svg: {\n color: '$icon-neutrals-disabled',\n },\n },\n\n variants: {\n size: {\n medium: {\n height: '$8',\n paddingX: '$50',\n gap: '$25',\n },\n large: {\n height: '$10',\n paddingX: '$100',\n gap: '$50',\n },\n 'x-large': {\n height: '$12',\n paddingX: '$150',\n gap: '$100',\n fontSize: '$200',\n lineHeight: '$500',\n },\n },\n },\n})\n\nexport type StyledTriggerProps = StrictComponentProps<typeof StyledTrigger>\n","import { createContext, useContext, useState } from 'react'\nimport type { FormElementProps } from '@mirohq/design-system-base-form'\n\nimport type { StyledTriggerProps } from '../partials/trigger.styled'\nimport type { Direction } from '../types'\n\ninterface SelectProps extends FormElementProps {\n defaultOpen?: boolean\n direction?: Direction\n open?: boolean\n valid?: boolean\n}\n\ninterface SelectContextProps extends SelectProps {\n setOpenState: React.Dispatch<React.SetStateAction<boolean | undefined>>\n openState?: boolean | undefined\n placeholder?: React.ReactNode\n setPlaceholder: React.Dispatch<React.SetStateAction<React.ReactNode>>\n size: StyledTriggerProps['size']\n setSize: React.Dispatch<React.SetStateAction<StyledTriggerProps['size']>>\n loading?: boolean\n setLoading: React.Dispatch<React.SetStateAction<boolean | undefined>>\n}\n\nexport interface SelectProviderProps extends SelectProps {\n children: React.ReactNode\n}\n\nconst SelectContext = createContext<SelectContextProps>({} as any)\n\nexport const SelectProvider = ({\n children,\n defaultOpen,\n open,\n valid,\n ...restProps\n}: SelectProviderProps): JSX.Element => {\n const [openState, setOpenState] = useState(defaultOpen)\n const [loading, setLoading] = useState<boolean | undefined>(false)\n const [placeholder, setPlaceholder] = useState<React.ReactNode>()\n const [size, setSize] = useState<StyledTriggerProps['size']>()\n\n return (\n <SelectContext.Provider\n value={{\n ...restProps,\n valid,\n open,\n openState,\n setOpenState,\n placeholder,\n setPlaceholder,\n size,\n setSize,\n loading,\n setLoading,\n }}\n >\n {children}\n </SelectContext.Provider>\n )\n}\n\nexport const useSelectContext = (): SelectContextProps =>\n useContext(SelectContext)\n","import React, { useState, useEffect, useRef } from 'react'\nimport { Trigger as RadixTrigger } from '@radix-ui/react-select'\nimport { useHover } from '@react-aria/interactions'\nimport type { HoverEvents } from '@react-types/shared'\nimport type { 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'\n\nimport { StyledTrigger } from './trigger.styled'\nimport { useSelectContext } from '../hooks/use-select-context'\nimport { StyledSelectIcon, StyledIconChevronDown } from './select-icon.styled'\nimport type { StyledTriggerProps } from './trigger.styled'\n\nexport interface TriggerProps extends StyledTriggerProps, HoverEvents {\n /**\n * The content.\n */\n children: React.ReactNode\n\n /**\n * The size of the trigger.\n * @default 'large'\n */\n size?: StyledTriggerProps['size']\n}\n\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 {\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 = StyledIconChevronDown\n\n return (\n <StyledTrigger {...commonProps} size={size}>\n {loading ? (\n <Spinner css={{ flex: 1, placeSelf: 'center' }} />\n ) : (\n children\n )}\n <StyledSelectIcon asChild>\n <SelectIcon size='small' 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 { useFormFieldContext } from '@mirohq/design-system-base-form'\nimport { mergeRefs } from '@mirohq/design-system-utils'\nimport type { SelectProps as RadixSelectProps } from '@radix-ui/react-select'\nimport { Root as RadixSelect } from '@radix-ui/react-select'\nimport { usePrevious } from '@mirohq/design-system-use-previous'\nimport {\n BaseTooltipProvider,\n useBaseTooltipContext,\n} from '@mirohq/design-system-base-tooltip'\n\nimport { StyledSelectContent } from './select.styled'\nimport type { StyledSelectContentProps } from './select.styled'\nimport { Group } from './partials/group'\nimport { Item } from './partials/item'\nimport { Portal } from './partials/portal'\nimport { Trigger } from './partials/trigger'\nimport { Value } from './partials/value'\nimport { Content } from './partials/content'\nimport { GroupLabel } from './partials/group-label'\nimport { Separator } from './partials/separator'\nimport { SelectProvider, useSelectContext } from './hooks/use-select-context'\nimport type { Direction } from './types'\n\nexport interface SelectProps\n extends FormElementProps,\n Omit<RadixSelectProps, 'onOpenChange'>,\n Omit<StyledSelectContentProps, 'dir'> {\n /**\n * The value of the select when initially rendered. Use when you do not need\n * to control the state of the select.\n */\n defaultValue?: string\n\n /**\n * The controlled value of the select. Should be used in conjunction with\n * onValueChange.\n */\n value?: string\n\n /**\n * Event handler called when the value changes.\n */\n onValueChange?: (value: string) => void\n\n /**\n * The open state of the select when it is initially rendered. Use when you do\n * not need to control its open state.\n * @default false\n */\n defaultOpen?: boolean\n\n /**\n * The controlled open state of the select. Must be used in conjunction with\n * onOpen and onClose.\n */\n open?: boolean\n\n /**\n * Event handler called when the select opens.\n */\n onOpen?: () => void\n\n /**\n * Event handler called when the select closes.\n */\n onClose?: () => void\n\n /**\n * The reading direction of the select when applicable. If omitted, inherits\n * globally from DirectionProvider or assumes LTR (left-to-right) reading\n * mode.\n * @default 'ltr'\n */\n direction?: Direction\n\n /**\n * The name of the select. Submitted with its owning form as part of a\n * name/value pair.\n */\n name?: string\n\n /**\n * Enables loading state for the select.\n */\n loading?: boolean\n}\n\nconst Root = React.forwardRef<ElementRef<'select'>, SelectProps>(\n (\n {\n onOpen,\n onClose,\n children,\n onValueChange,\n value,\n defaultValue,\n loading = false,\n css,\n // @ts-expect-error className required when extending the component with styled()\n className,\n ...restProps\n },\n forwardRef\n ) => {\n const {\n required,\n readOnly,\n 'aria-disabled': ariaDisabled,\n setLoading,\n disabled,\n direction,\n setOpenState,\n openState,\n open,\n } = useSelectContext()\n\n const {\n setRequired,\n setDisabled,\n setAriaDisabled,\n setReadOnly,\n formElementRef,\n } = useFormFieldContext<HTMLSelectElement>()\n\n useEffect(() => {\n setRequired?.(required)\n setDisabled?.(disabled)\n setAriaDisabled?.(ariaDisabled)\n setLoading(loading)\n setReadOnly?.(readOnly)\n }, [\n readOnly,\n disabled,\n loading,\n ariaDisabled,\n required,\n setRequired,\n setDisabled,\n setAriaDisabled,\n setReadOnly,\n setLoading,\n ])\n\n const { ignoreNextTooltip } = useBaseTooltipContext()\n const prevOpen = usePrevious(open)\n\n useEffect(() => {\n if (prevOpen === true && open === false) {\n ignoreNextTooltip()\n }\n }, [ignoreNextTooltip, open, prevOpen])\n\n const selectRef = useRef<HTMLSelectElement>()\n\n // intentionally not using useCallback to force formElementRef to be updated\n const domRef = (node: HTMLDivElement): void => {\n const selectElement = node?.nextElementSibling as HTMLSelectElement | null\n\n if (selectElement?.tagName === 'SELECT') {\n selectRef.current = selectElement\n }\n\n // @ts-expect-error TS doesn't know about the dynamic set of the generated select element\n mergeRefs([forwardRef, formElementRef])(selectElement)\n }\n\n return (\n <RadixSelect\n {...restProps}\n value={value}\n defaultValue={defaultValue}\n onValueChange={newValue => {\n onValueChange?.(newValue)\n }}\n dir={direction}\n disabled={disabled}\n required={required}\n open={open ?? openState}\n onOpenChange={newOpen => {\n if (open == null) {\n setOpenState(newOpen)\n\n if (!newOpen) {\n ignoreNextTooltip()\n }\n }\n\n newOpen ? onOpen?.() : onClose?.()\n }}\n >\n <StyledSelectContent\n ref={domRef}\n data-form-element='select'\n css={css}\n // @ts-expect-error className required when extending the component with styled()\n className={className}\n >\n {children}\n </StyledSelectContent>\n </RadixSelect>\n )\n }\n)\n\nexport const Select = React.forwardRef<ElementRef<'select'>, SelectProps>(\n (\n {\n 'aria-disabled': ariaDisabled,\n defaultOpen = false,\n direction = 'ltr',\n disabled,\n readOnly,\n required,\n valid,\n open,\n ...restProps\n },\n forwardRef\n ) => (\n <SelectProvider\n open={open}\n aria-disabled={ariaDisabled}\n defaultOpen={defaultOpen}\n direction={direction}\n required={required}\n disabled={disabled}\n readOnly={readOnly}\n valid={valid}\n >\n <BaseTooltipProvider>\n <Root {...restProps} ref={forwardRef} />\n </BaseTooltipProvider>\n </SelectProvider>\n )\n) as ForwardRefExoticComponent<SelectProps> & Partials\n\nexport interface Partials {\n Content: typeof Content\n Separator: typeof Separator\n GroupLabel: typeof GroupLabel\n Group: typeof Group\n Item: typeof Item\n Portal: typeof Portal\n Trigger: typeof Trigger\n Value: typeof Value\n}\n\nSelect.Group = Group\nSelect.Separator = Separator\nSelect.Content = Content\nSelect.Item = Item\nSelect.Portal = Portal\nSelect.Trigger = Trigger\nSelect.Value = Value\nSelect.GroupLabel = GroupLabel\n"],"names":["RadixGroup","RadixItem","RadixItemIndicator","RadixItemText","RadixSelectIcon","RadixTrigger","_a","RadixValue","RadixContent","RadixViewport","RadixLabel","RadixSeparator","RadixSelect"],"mappings":"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"}
|
package/dist/types.d.ts
CHANGED
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import * as react from 'react';
|
|
2
|
-
import react__default, { ComponentPropsWithRef, ReactNode } from 'react';
|
|
2
|
+
import react__default, { ComponentPropsWithRef, ReactNode, ForwardRefExoticComponent } from 'react';
|
|
3
3
|
import { FormElementProps } from '@mirohq/design-system-base-form';
|
|
4
4
|
import * as _radix_ui_react_select from '@radix-ui/react-select';
|
|
5
5
|
import { SelectPortalProps, Value as Value$1, SelectProps as SelectProps$1, Portal } from '@radix-ui/react-select';
|
|
@@ -11,17 +11,17 @@ import { HoverEvents } from '@react-types/shared';
|
|
|
11
11
|
import { CSSProperties } from '@stitches/react';
|
|
12
12
|
|
|
13
13
|
declare const StyledSelectContent: react.ForwardRefExoticComponent<Omit<Omit<_mirohq_design_system_stitches.StyledComponentProps<react.ForwardRefExoticComponent<_mirohq_design_system_primitive.PrimitiveProps<"div">>>, never> & _stitches_react_types_styled_component.TransformProps<{}, {}> & _mirohq_design_system_stitches.CustomStylesProps, "ref"> & react.RefAttributes<HTMLDivElement>> & _mirohq_design_system_stitches.StitchesInternals<react.ForwardRefExoticComponent<_mirohq_design_system_primitive.PrimitiveProps<"div">>, {}, {}>;
|
|
14
|
-
|
|
14
|
+
type StyledSelectContentProps = ComponentPropsWithRef<typeof StyledSelectContent>;
|
|
15
15
|
|
|
16
16
|
declare const StyledGroup: react.ForwardRefExoticComponent<Omit<Omit<_mirohq_design_system_stitches.StyledComponentProps<react.ForwardRefExoticComponent<_radix_ui_react_select.SelectGroupProps & react.RefAttributes<HTMLDivElement>>>, never> & _stitches_react_types_styled_component.TransformProps<{}, {}> & _mirohq_design_system_stitches.CustomStylesProps, "ref"> & react.RefAttributes<HTMLDivElement>> & _mirohq_design_system_stitches.StitchesInternals<react.ForwardRefExoticComponent<_radix_ui_react_select.SelectGroupProps & react.RefAttributes<HTMLDivElement>>, {}, {}>;
|
|
17
|
-
|
|
17
|
+
type StyledGroupProps = StrictComponentProps<typeof StyledGroup>;
|
|
18
18
|
|
|
19
19
|
interface GroupProps extends StyledGroupProps {
|
|
20
20
|
}
|
|
21
21
|
declare const Group: react__default.ForwardRefExoticComponent<Omit<GroupProps, "ref"> & react__default.RefAttributes<HTMLDivElement>>;
|
|
22
22
|
|
|
23
23
|
declare const StyledItem: react.ForwardRefExoticComponent<Omit<Omit<_mirohq_design_system_stitches.StyledComponentProps<react.ForwardRefExoticComponent<_radix_ui_react_select.SelectItemProps & react.RefAttributes<HTMLDivElement>>>, never> & _stitches_react_types_styled_component.TransformProps<{}, {}> & _mirohq_design_system_stitches.CustomStylesProps, "ref"> & react.RefAttributes<HTMLDivElement>> & _mirohq_design_system_stitches.StitchesInternals<react.ForwardRefExoticComponent<_radix_ui_react_select.SelectItemProps & react.RefAttributes<HTMLDivElement>>, {}, {}>;
|
|
24
|
-
|
|
24
|
+
type StyledItemProps = StrictComponentProps<typeof StyledItem>;
|
|
25
25
|
|
|
26
26
|
interface ItemProps extends StyledItemProps {
|
|
27
27
|
/**
|
|
@@ -50,16 +50,14 @@ interface PortalProps extends SelectPortalProps {
|
|
|
50
50
|
container?: HTMLElement | null;
|
|
51
51
|
}
|
|
52
52
|
|
|
53
|
-
declare const StyledTrigger: react.ForwardRefExoticComponent<Omit<Omit<_mirohq_design_system_stitches.StyledComponentProps<react.ForwardRefExoticComponent<_radix_ui_react_select.SelectTriggerProps & react.RefAttributes<HTMLButtonElement>>>, "size"
|
|
54
|
-
v1?: boolean | "false" | "true" | undefined;
|
|
53
|
+
declare const StyledTrigger: react.ForwardRefExoticComponent<Omit<Omit<_mirohq_design_system_stitches.StyledComponentProps<react.ForwardRefExoticComponent<_radix_ui_react_select.SelectTriggerProps & react.RefAttributes<HTMLButtonElement>>>, "size"> & _stitches_react_types_styled_component.TransformProps<{
|
|
55
54
|
size?: "medium" | "large" | "x-large" | undefined;
|
|
56
55
|
}, {}> & _mirohq_design_system_stitches.CustomStylesProps, "ref"> & react.RefAttributes<HTMLButtonElement>> & _mirohq_design_system_stitches.StitchesInternals<react.ForwardRefExoticComponent<_radix_ui_react_select.SelectTriggerProps & react.RefAttributes<HTMLButtonElement>>, {
|
|
57
|
-
v1?: boolean | "false" | "true" | undefined;
|
|
58
56
|
size?: "medium" | "large" | "x-large" | undefined;
|
|
59
57
|
}, {}>;
|
|
60
|
-
|
|
58
|
+
type StyledTriggerProps = StrictComponentProps<typeof StyledTrigger>;
|
|
61
59
|
|
|
62
|
-
interface TriggerProps extends
|
|
60
|
+
interface TriggerProps extends StyledTriggerProps, HoverEvents {
|
|
63
61
|
/**
|
|
64
62
|
* The content.
|
|
65
63
|
*/
|
|
@@ -72,7 +70,7 @@ interface TriggerProps extends Omit<StyledTriggerProps, 'v1'>, HoverEvents {
|
|
|
72
70
|
}
|
|
73
71
|
declare const Trigger: react__default.ForwardRefExoticComponent<Omit<TriggerProps, "ref"> & react__default.RefAttributes<HTMLButtonElement>>;
|
|
74
72
|
|
|
75
|
-
|
|
73
|
+
type StyledValueProps = StrictComponentProps<typeof Value$1>;
|
|
76
74
|
interface ValueProps extends StyledValueProps {
|
|
77
75
|
/**
|
|
78
76
|
* The content that will be rendered inside the Select.Value when no value or
|
|
@@ -87,19 +85,19 @@ interface ValueProps extends StyledValueProps {
|
|
|
87
85
|
declare const Value: react__default.ForwardRefExoticComponent<Omit<ValueProps, "ref"> & react__default.RefAttributes<HTMLSpanElement>>;
|
|
88
86
|
|
|
89
87
|
declare const StyledContent: react.ForwardRefExoticComponent<Omit<Omit<_mirohq_design_system_stitches.StyledComponentProps<react.ForwardRefExoticComponent<_radix_ui_react_select.SelectContentProps & react.RefAttributes<HTMLDivElement>>>, never> & _stitches_react_types_styled_component.TransformProps<{}, {}> & _mirohq_design_system_stitches.CustomStylesProps, "ref"> & react.RefAttributes<HTMLDivElement>> & _mirohq_design_system_stitches.StitchesInternals<react.ForwardRefExoticComponent<_radix_ui_react_select.SelectContentProps & react.RefAttributes<HTMLDivElement>>, {}, {}>;
|
|
90
|
-
|
|
88
|
+
type StyledContentProps = StrictComponentProps<typeof StyledContent>;
|
|
91
89
|
|
|
92
|
-
|
|
90
|
+
type PointerDownOutsideEvent = CustomEvent<{
|
|
93
91
|
originalEvent: PointerEvent;
|
|
94
92
|
}>;
|
|
95
|
-
|
|
96
|
-
|
|
97
|
-
|
|
98
|
-
|
|
99
|
-
|
|
100
|
-
|
|
101
|
-
|
|
102
|
-
|
|
93
|
+
type Boundary = Element | null | Array<Element | null>;
|
|
94
|
+
type Side = 'top' | 'right' | 'bottom' | 'left';
|
|
95
|
+
type Align = 'start' | 'center' | 'end';
|
|
96
|
+
type Padding = Partial<Record<Side, number>>;
|
|
97
|
+
type Overflow = 'auto' | 'visible';
|
|
98
|
+
type Size = 'medium' | 'large';
|
|
99
|
+
type Sticky = 'partial' | 'always';
|
|
100
|
+
type Direction = 'ltr' | 'rtl';
|
|
103
101
|
|
|
104
102
|
type types_PointerDownOutsideEvent = PointerDownOutsideEvent;
|
|
105
103
|
type types_Boundary = Boundary;
|
|
@@ -216,14 +214,14 @@ interface ContentProps extends StyledContentProps {
|
|
|
216
214
|
declare const Content: react__default.ForwardRefExoticComponent<Omit<ContentProps, "ref"> & react__default.RefAttributes<HTMLDivElement>>;
|
|
217
215
|
|
|
218
216
|
declare const StyledGroupLabel: react.ForwardRefExoticComponent<Omit<Omit<_mirohq_design_system_stitches.StyledComponentProps<react.ForwardRefExoticComponent<_radix_ui_react_select.SelectLabelProps & react.RefAttributes<HTMLDivElement>>>, never> & _stitches_react_types_styled_component.TransformProps<{}, {}> & _mirohq_design_system_stitches.CustomStylesProps, "ref"> & react.RefAttributes<HTMLDivElement>> & _mirohq_design_system_stitches.StitchesInternals<react.ForwardRefExoticComponent<_radix_ui_react_select.SelectLabelProps & react.RefAttributes<HTMLDivElement>>, {}, {}>;
|
|
219
|
-
|
|
217
|
+
type StyledGroupLabelProps = StrictComponentProps<typeof StyledGroupLabel>;
|
|
220
218
|
|
|
221
219
|
interface GroupLabelProps extends StyledGroupLabelProps {
|
|
222
220
|
}
|
|
223
221
|
declare const GroupLabel: react__default.ForwardRefExoticComponent<Omit<GroupLabelProps, "ref"> & react__default.RefAttributes<HTMLDivElement>>;
|
|
224
222
|
|
|
225
223
|
declare const StyledSeparator: react.ForwardRefExoticComponent<Omit<Omit<_mirohq_design_system_stitches.StyledComponentProps<react.ForwardRefExoticComponent<_radix_ui_react_select.SelectSeparatorProps & react.RefAttributes<HTMLDivElement>>>, never> & _stitches_react_types_styled_component.TransformProps<{}, {}> & _mirohq_design_system_stitches.CustomStylesProps, "ref"> & react.RefAttributes<HTMLDivElement>> & _mirohq_design_system_stitches.StitchesInternals<react.ForwardRefExoticComponent<_radix_ui_react_select.SelectSeparatorProps & react.RefAttributes<HTMLDivElement>>, {}, {}>;
|
|
226
|
-
|
|
224
|
+
type StyledSeparatorProps = StrictComponentProps<typeof StyledSeparator>;
|
|
227
225
|
|
|
228
226
|
interface SeparatorProps extends StyledSeparatorProps {
|
|
229
227
|
}
|
|
@@ -280,7 +278,7 @@ interface SelectProps extends FormElementProps, Omit<SelectProps$1, 'onOpenChang
|
|
|
280
278
|
*/
|
|
281
279
|
loading?: boolean;
|
|
282
280
|
}
|
|
283
|
-
declare const Select:
|
|
281
|
+
declare const Select: ForwardRefExoticComponent<SelectProps> & Partials;
|
|
284
282
|
interface Partials {
|
|
285
283
|
Content: typeof Content;
|
|
286
284
|
Separator: typeof Separator;
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@mirohq/design-system-select",
|
|
3
|
-
"version": "0.
|
|
3
|
+
"version": "1.0.0-pdl-removing-ffs.0",
|
|
4
4
|
"description": "",
|
|
5
5
|
"author": "Miro",
|
|
6
6
|
"source": "src/index.ts",
|
|
@@ -30,20 +30,18 @@
|
|
|
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-form": "^0.
|
|
34
|
-
"@mirohq/design-system-base-
|
|
35
|
-
"@mirohq/design-system-base-
|
|
36
|
-
"@mirohq/design-system-base-tooltip": "^0.
|
|
37
|
-
"@mirohq/design-system-
|
|
38
|
-
"@mirohq/design-system-
|
|
39
|
-
"@mirohq/design-system-
|
|
40
|
-
"@mirohq/design-system-
|
|
41
|
-
"@mirohq/design-system-
|
|
42
|
-
"@mirohq/design-system-
|
|
43
|
-
"@mirohq/design-system-use-previous": "^0.
|
|
44
|
-
"@mirohq/design-system-
|
|
45
|
-
"@mirohq/design-system-utils": "^0.15.5",
|
|
46
|
-
"@mirohq/design-system-use-force-update": "^0.1.0"
|
|
33
|
+
"@mirohq/design-system-base-form": "^1.0.0-pdl-removing-ffs.0",
|
|
34
|
+
"@mirohq/design-system-base-text-field": "^1.0.0-pdl-removing-ffs.0",
|
|
35
|
+
"@mirohq/design-system-base-select": "^1.0.0-pdl-removing-ffs.0",
|
|
36
|
+
"@mirohq/design-system-base-tooltip": "^1.0.0-pdl-removing-ffs.0",
|
|
37
|
+
"@mirohq/design-system-icons": "^1.0.0-pdl-removing-ffs.0",
|
|
38
|
+
"@mirohq/design-system-primitive": "^2.0.0-pdl-removing-ffs.0",
|
|
39
|
+
"@mirohq/design-system-scroll-area": "^1.0.0-pdl-removing-ffs.0",
|
|
40
|
+
"@mirohq/design-system-styles": "^2.0.0-pdl-removing-ffs.0",
|
|
41
|
+
"@mirohq/design-system-stitches": "^3.0.0-pdl-removing-ffs.0",
|
|
42
|
+
"@mirohq/design-system-utils": "^1.0.0-pdl-removing-ffs.0",
|
|
43
|
+
"@mirohq/design-system-use-previous": "^1.0.0-pdl-removing-ffs.0",
|
|
44
|
+
"@mirohq/design-system-spinner": "^2.0.0-pdl-removing-ffs.0"
|
|
47
45
|
},
|
|
48
46
|
"scripts": {
|
|
49
47
|
"build": "rollup -c ../../../rollup.config.js",
|