@sproutsocial/seeds-react-menu 1.17.0 → 1.18.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/.turbo/turbo-build.log +14 -22
- package/CHANGELOG.md +37 -0
- package/dist/esm/index.js +542 -229
- package/dist/esm/index.js.map +1 -1
- package/dist/esm/v3/index.js +793 -1038
- package/dist/esm/v3/index.js.map +1 -1
- package/dist/v3/index.d.mts +64 -38
- package/dist/v3/index.d.ts +64 -38
- package/dist/v3/index.js +813 -1058
- package/dist/v3/index.js.map +1 -1
- package/dist/v3/menu.css +947 -0
- package/package.json +20 -21
- package/src/v3/ActionMenuStyles.tsx +169 -149
- package/src/v3/Common/ComboboxStyles.tsx +396 -511
- package/src/v3/Common/SelectIcons.tsx +17 -8
- package/src/v3/Common/SelectItem.tsx +25 -38
- package/src/v3/Common/SelectStyles.tsx +146 -144
- package/src/v3/Common/cn.ts +38 -0
- package/src/v3/MenuButtonStyles.tsx +55 -34
- package/src/v3/MultiSearchableSelect.tsx +8 -8
- package/src/v3/MultiSelect.tsx +11 -16
- package/src/v3/SingleSelect.tsx +13 -13
- package/src/v3/menu.css +947 -0
- package/tsup.config.ts +0 -1
- package/dist/esm/chunk-ROQATIB7.js +0 -357
- package/dist/esm/chunk-ROQATIB7.js.map +0 -1
- package/dist/esm/v2/index.js +0 -2089
- package/dist/esm/v2/index.js.map +0 -1
- package/dist/v2/index.d.mts +0 -108
- package/dist/v2/index.d.ts +0 -108
- package/dist/v2/index.js +0 -2280
- package/dist/v2/index.js.map +0 -1
- package/src/v2/Autocomplete/Autocomplete.stories.tsx +0 -645
- package/src/v2/Autocomplete/MultiAutocomplete.tsx +0 -487
- package/src/v2/Autocomplete/SingleAutocomplete.tsx +0 -366
- package/src/v2/Autocomplete/index.ts +0 -2
- package/src/v2/Common-V2/ComboboxContent.tsx +0 -457
- package/src/v2/Common-V2/MenuGroup.tsx +0 -60
- package/src/v2/Common-V2/MenuGroupTypes.ts +0 -30
- package/src/v2/Common-V2/MenuHeading.tsx +0 -83
- package/src/v2/Common-V2/MenuItem.tsx +0 -138
- package/src/v2/Common-V2/Popout.tsx +0 -124
- package/src/v2/Common-V2/PopoutTypes.tsx +0 -109
- package/src/v2/Common-V2/SelectToggleButton.tsx +0 -99
- package/src/v2/Common-V2/index.ts +0 -11
- package/src/v2/Common-V2/props.ts +0 -84
- package/src/v2/Common-V2/styles.tsx +0 -41
- package/src/v2/Common-V2/types.ts +0 -16
- package/src/v2/Common-V2/useHighlightedIndex.ts +0 -62
- package/src/v2/Common-V2/utils.ts +0 -238
- package/src/v2/SearchableSelect/AutocompleteContent.tsx +0 -325
- package/src/v2/SearchableSelect/SearchableMultiSelect.tsx +0 -527
- package/src/v2/SearchableSelect/SearchableSelect.tsx +0 -395
- package/src/v2/SearchableSelect/index.ts +0 -12
- package/src/v2/Select/MultiSelect.tsx +0 -417
- package/src/v2/Select/Select.stories.tsx +0 -593
- package/src/v2/Select/SingleSelect.tsx +0 -285
- package/src/v2/Select/index.ts +0 -2
- package/src/v2/index.ts +0 -2
package/dist/esm/v3/index.js
CHANGED
|
@@ -1,7 +1,6 @@
|
|
|
1
1
|
// src/v3/SingleSelect.tsx
|
|
2
|
-
import * as
|
|
2
|
+
import * as React5 from "react";
|
|
3
3
|
import { Select as Select3 } from "@base-ui/react/select";
|
|
4
|
-
import styled4 from "styled-components";
|
|
5
4
|
|
|
6
5
|
// src/v3/SeedsPortal.tsx
|
|
7
6
|
import * as React from "react";
|
|
@@ -24,49 +23,51 @@ function useSeedsPortalContainer() {
|
|
|
24
23
|
}
|
|
25
24
|
|
|
26
25
|
// src/v3/Common/SelectItem.tsx
|
|
27
|
-
import "react";
|
|
26
|
+
import * as React2 from "react";
|
|
28
27
|
import { Select } from "@base-ui/react/select";
|
|
29
|
-
import styled from "styled-components";
|
|
30
28
|
import Radio from "@sproutsocial/seeds-react-radio";
|
|
31
29
|
import Checkbox from "@sproutsocial/seeds-react-checkbox";
|
|
32
30
|
import { Icon } from "@sproutsocial/seeds-react-icon";
|
|
33
|
-
import { jsx, jsxs } from "react/jsx-runtime";
|
|
34
|
-
var StyledItem = styled(Select.Item)`
|
|
35
|
-
display: flex;
|
|
36
|
-
align-items: center;
|
|
37
|
-
gap: 8px;
|
|
38
|
-
padding: 6px 8px;
|
|
39
|
-
border-radius: ${({ theme }) => theme.radii[500]};
|
|
40
|
-
font-size: 14px;
|
|
41
|
-
color: ${({ theme }) => theme.colors.text.body};
|
|
42
|
-
cursor: default;
|
|
43
|
-
outline: none;
|
|
44
31
|
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
|
|
32
|
+
// src/v3/Common/cn.ts
|
|
33
|
+
function cn(...inputs) {
|
|
34
|
+
const classes = [];
|
|
35
|
+
for (const input of inputs) {
|
|
36
|
+
if (!input) continue;
|
|
37
|
+
if (typeof input === "string") {
|
|
38
|
+
classes.push(input);
|
|
39
|
+
} else if (typeof input === "object") {
|
|
40
|
+
for (const [key, value] of Object.entries(input)) {
|
|
41
|
+
if (value) {
|
|
42
|
+
classes.push(key);
|
|
43
|
+
}
|
|
44
|
+
}
|
|
45
|
+
}
|
|
51
46
|
}
|
|
47
|
+
return classes.join(" ");
|
|
48
|
+
}
|
|
52
49
|
|
|
53
|
-
|
|
54
|
-
|
|
55
|
-
|
|
56
|
-
|
|
57
|
-
|
|
58
|
-
|
|
59
|
-
|
|
60
|
-
|
|
61
|
-
|
|
62
|
-
|
|
63
|
-
|
|
64
|
-
|
|
65
|
-
|
|
66
|
-
|
|
67
|
-
|
|
68
|
-
|
|
69
|
-
|
|
50
|
+
// src/v3/Common/SelectItem.tsx
|
|
51
|
+
import { jsx, jsxs } from "react/jsx-runtime";
|
|
52
|
+
var StyledItem = React2.forwardRef(({ className, ...rest }, ref) => /* @__PURE__ */ jsx(
|
|
53
|
+
Select.Item,
|
|
54
|
+
{
|
|
55
|
+
ref,
|
|
56
|
+
className: cn("seeds-select-item", className),
|
|
57
|
+
...rest
|
|
58
|
+
}
|
|
59
|
+
));
|
|
60
|
+
StyledItem.displayName = "StyledItem";
|
|
61
|
+
var StyledItemIndicator = React2.forwardRef(({ className, ...rest }, ref) => /* @__PURE__ */ jsx(
|
|
62
|
+
Select.ItemIndicator,
|
|
63
|
+
{
|
|
64
|
+
ref,
|
|
65
|
+
className: cn("seeds-select-item-indicator", className),
|
|
66
|
+
...rest
|
|
67
|
+
}
|
|
68
|
+
));
|
|
69
|
+
StyledItemIndicator.displayName = "StyledItemIndicator";
|
|
70
|
+
var StyledItemText = Select.ItemText;
|
|
70
71
|
function CheckIcon() {
|
|
71
72
|
return /* @__PURE__ */ jsx(Icon, { name: "check-outline", fixedWidth: true, "aria-hidden": true });
|
|
72
73
|
}
|
|
@@ -137,173 +138,148 @@ function groupItems(data, groupBy) {
|
|
|
137
138
|
}
|
|
138
139
|
|
|
139
140
|
// src/v3/Common/SelectStyles.tsx
|
|
141
|
+
import * as React3 from "react";
|
|
140
142
|
import { Select as Select2 } from "@base-ui/react/select";
|
|
141
|
-
import
|
|
142
|
-
|
|
143
|
+
import { jsx as jsx2 } from "react/jsx-runtime";
|
|
144
|
+
var Field = React3.forwardRef(
|
|
145
|
+
({ $fullWidth, className, ...rest }, ref) => /* @__PURE__ */ jsx2(
|
|
146
|
+
"div",
|
|
147
|
+
{
|
|
148
|
+
ref,
|
|
149
|
+
className: cn(
|
|
150
|
+
"seeds-menu-field",
|
|
151
|
+
{ "seeds-menu-field--inline": $fullWidth === false },
|
|
152
|
+
className
|
|
153
|
+
),
|
|
154
|
+
...rest
|
|
155
|
+
}
|
|
156
|
+
)
|
|
157
|
+
);
|
|
158
|
+
Field.displayName = "Field";
|
|
159
|
+
var SelectLabel = React3.forwardRef(({ className, ...rest }, ref) => /* @__PURE__ */ jsx2(
|
|
160
|
+
Select2.Label,
|
|
161
|
+
{
|
|
162
|
+
ref,
|
|
163
|
+
className: cn("seeds-menu-label", className),
|
|
164
|
+
...rest
|
|
165
|
+
}
|
|
166
|
+
));
|
|
167
|
+
SelectLabel.displayName = "SelectLabel";
|
|
168
|
+
var SelectTrigger = React3.forwardRef(({ $isInvalid, className, ...rest }, ref) => /* @__PURE__ */ jsx2(
|
|
169
|
+
Select2.Trigger,
|
|
170
|
+
{
|
|
171
|
+
ref,
|
|
172
|
+
className: cn(
|
|
173
|
+
"seeds-select-trigger",
|
|
174
|
+
{ "seeds-select-trigger--invalid": !!$isInvalid },
|
|
175
|
+
className
|
|
176
|
+
),
|
|
177
|
+
...rest
|
|
178
|
+
}
|
|
179
|
+
));
|
|
180
|
+
SelectTrigger.displayName = "SelectTrigger";
|
|
181
|
+
var SelectValue = React3.forwardRef(({ className, ...rest }, ref) => /* @__PURE__ */ jsx2(
|
|
182
|
+
Select2.Value,
|
|
183
|
+
{
|
|
184
|
+
ref,
|
|
185
|
+
className: cn("seeds-select-value", className),
|
|
186
|
+
...rest
|
|
187
|
+
}
|
|
188
|
+
));
|
|
189
|
+
SelectValue.displayName = "SelectValue";
|
|
190
|
+
var SelectIcon = React3.forwardRef(({ className, ...rest }, ref) => /* @__PURE__ */ jsx2(
|
|
191
|
+
Select2.Icon,
|
|
192
|
+
{
|
|
193
|
+
ref,
|
|
194
|
+
className: cn("seeds-select-icon", className),
|
|
195
|
+
...rest
|
|
196
|
+
}
|
|
197
|
+
));
|
|
198
|
+
SelectIcon.displayName = "SelectIcon";
|
|
199
|
+
var SelectGroup = React3.forwardRef(({ className, ...rest }, ref) => /* @__PURE__ */ jsx2(
|
|
200
|
+
Select2.Group,
|
|
201
|
+
{
|
|
202
|
+
ref,
|
|
203
|
+
className: cn("seeds-select-group", className),
|
|
204
|
+
...rest
|
|
205
|
+
}
|
|
206
|
+
));
|
|
207
|
+
SelectGroup.displayName = "SelectGroup";
|
|
208
|
+
var SelectGroupLabel = React3.forwardRef(({ className, ...rest }, ref) => /* @__PURE__ */ jsx2(
|
|
209
|
+
Select2.GroupLabel,
|
|
210
|
+
{
|
|
211
|
+
ref,
|
|
212
|
+
className: cn("seeds-select-group-label", className),
|
|
213
|
+
...rest
|
|
214
|
+
}
|
|
215
|
+
));
|
|
216
|
+
SelectGroupLabel.displayName = "SelectGroupLabel";
|
|
217
|
+
var SelectSeparator = React3.forwardRef(({ className, ...rest }, ref) => /* @__PURE__ */ jsx2(
|
|
218
|
+
Select2.Separator,
|
|
219
|
+
{
|
|
220
|
+
ref,
|
|
221
|
+
className: cn("seeds-select-separator", className),
|
|
222
|
+
...rest
|
|
223
|
+
}
|
|
224
|
+
));
|
|
225
|
+
SelectSeparator.displayName = "SelectSeparator";
|
|
226
|
+
var SelectPositioner = React3.forwardRef(({ className, ...rest }, ref) => /* @__PURE__ */ jsx2(
|
|
227
|
+
Select2.Positioner,
|
|
228
|
+
{
|
|
229
|
+
ref,
|
|
230
|
+
className: cn("seeds-select-positioner", className),
|
|
231
|
+
...rest
|
|
232
|
+
}
|
|
233
|
+
));
|
|
234
|
+
SelectPositioner.displayName = "SelectPositioner";
|
|
235
|
+
var SelectPopup = React3.forwardRef(({ className, ...rest }, ref) => /* @__PURE__ */ jsx2(
|
|
236
|
+
Select2.Popup,
|
|
237
|
+
{
|
|
238
|
+
ref,
|
|
239
|
+
className: cn("seeds-select-popup", className),
|
|
240
|
+
...rest
|
|
241
|
+
}
|
|
242
|
+
));
|
|
243
|
+
SelectPopup.displayName = "SelectPopup";
|
|
143
244
|
|
|
144
245
|
// src/v3/Common/SelectIcons.tsx
|
|
145
|
-
import "react";
|
|
146
|
-
import styled2 from "styled-components";
|
|
246
|
+
import * as React4 from "react";
|
|
147
247
|
import { Icon as Icon2 } from "@sproutsocial/seeds-react-icon";
|
|
148
|
-
import { jsx as
|
|
149
|
-
var StyledChevron =
|
|
150
|
-
|
|
151
|
-
|
|
152
|
-
|
|
153
|
-
|
|
154
|
-
|
|
248
|
+
import { jsx as jsx3 } from "react/jsx-runtime";
|
|
249
|
+
var StyledChevron = React4.forwardRef(({ $isOpen, className, ...rest }, ref) => /* @__PURE__ */ jsx3(
|
|
250
|
+
"div",
|
|
251
|
+
{
|
|
252
|
+
ref,
|
|
253
|
+
className: cn(
|
|
254
|
+
"seeds-menu-chevron",
|
|
255
|
+
{ "seeds-menu-chevron--open": !!$isOpen },
|
|
256
|
+
className
|
|
257
|
+
),
|
|
258
|
+
...rest
|
|
259
|
+
}
|
|
260
|
+
));
|
|
261
|
+
StyledChevron.displayName = "StyledChevron";
|
|
155
262
|
function ChevronIcon() {
|
|
156
|
-
return /* @__PURE__ */
|
|
263
|
+
return /* @__PURE__ */ jsx3(Icon2, { name: "chevron-down-outline", fixedWidth: true, "aria-hidden": true });
|
|
157
264
|
}
|
|
158
265
|
function ClearIcon() {
|
|
159
|
-
return /* @__PURE__ */
|
|
266
|
+
return /* @__PURE__ */ jsx3(Icon2, { name: "circle-x-outline", fixedWidth: true, "aria-hidden": true, size: "mini" });
|
|
160
267
|
}
|
|
161
268
|
function CheckIcon2() {
|
|
162
|
-
return /* @__PURE__ */
|
|
269
|
+
return /* @__PURE__ */ jsx3(Icon2, { name: "check-outline", fixedWidth: true, "aria-hidden": true });
|
|
163
270
|
}
|
|
164
271
|
|
|
165
|
-
// src/v3/Common/SelectStyles.tsx
|
|
166
|
-
var invalidStyles = css`
|
|
167
|
-
border-color: ${({ theme }) => theme.colors.form.border.error};
|
|
168
|
-
|
|
169
|
-
${StyledChevron} {
|
|
170
|
-
color: ${({ theme }) => theme.colors.icon.error};
|
|
171
|
-
}
|
|
172
|
-
`;
|
|
173
|
-
var Field = styled3.div`
|
|
174
|
-
display: ${({ $fullWidth }) => $fullWidth === false ? "inline-flex" : "flex"};
|
|
175
|
-
flex-direction: column;
|
|
176
|
-
gap: ${({ theme }) => theme.space[200]};
|
|
177
|
-
${({ $fullWidth }) => $fullWidth !== false && "width: 100%;"}
|
|
178
|
-
`;
|
|
179
|
-
var SelectLabel = styled3(Select2.Label)`
|
|
180
|
-
font-size: ${({ theme }) => theme.typography[200].fontSize};
|
|
181
|
-
font-weight: ${({ theme }) => theme.fontWeights.semibold};
|
|
182
|
-
color: ${({ theme }) => theme.colors.text.body};
|
|
183
|
-
`;
|
|
184
|
-
var SelectTrigger = styled3(Select2.Trigger)`
|
|
185
|
-
display: flex;
|
|
186
|
-
align-items: center;
|
|
187
|
-
justify-content: space-between;
|
|
188
|
-
gap: ${({ theme }) => theme.space[300]};
|
|
189
|
-
padding: ${({ theme }) => `${theme.space[300]}`};
|
|
190
|
-
min-width: 160px;
|
|
191
|
-
border-radius: ${({ theme }) => theme.radii[500]};
|
|
192
|
-
border: 1px solid ${({ theme }) => theme.colors.form.border.base};
|
|
193
|
-
background: ${({ theme }) => theme.colors.form.background.base};
|
|
194
|
-
font-size: ${({ theme }) => theme.typography[200].fontSize};
|
|
195
|
-
color: ${({ theme }) => theme.colors.text.body};
|
|
196
|
-
cursor: default;
|
|
197
|
-
outline: none;
|
|
198
|
-
transition: border-color ${({ theme }) => theme.duration.fast}
|
|
199
|
-
${({ theme }) => theme.easing.ease_in},
|
|
200
|
-
box-shadow ${({ theme }) => theme.duration.fast}
|
|
201
|
-
${({ theme }) => theme.easing.ease_in};
|
|
202
|
-
|
|
203
|
-
&:focus-visible {
|
|
204
|
-
${focusRing}
|
|
205
|
-
}
|
|
206
|
-
|
|
207
|
-
&[data-popup-open] {
|
|
208
|
-
${focusRing}
|
|
209
|
-
}
|
|
210
|
-
|
|
211
|
-
&[data-popup-open] [data-chevron] {
|
|
212
|
-
transform: rotate(-180deg);
|
|
213
|
-
}
|
|
214
|
-
|
|
215
|
-
&[data-disabled] {
|
|
216
|
-
opacity: 0.4;
|
|
217
|
-
cursor: not-allowed;
|
|
218
|
-
}
|
|
219
|
-
|
|
220
|
-
${({ $isInvalid }) => $isInvalid && invalidStyles}
|
|
221
|
-
`;
|
|
222
|
-
var SelectValue = styled3(Select2.Value)`
|
|
223
|
-
min-width: 0;
|
|
224
|
-
overflow: hidden;
|
|
225
|
-
`;
|
|
226
|
-
var SelectIcon = styled3(Select2.Icon)`
|
|
227
|
-
display: flex;
|
|
228
|
-
align-items: center;
|
|
229
|
-
color: ${({ theme }) => theme.colors.icon.base};
|
|
230
|
-
flex-shrink: 0;
|
|
231
|
-
`;
|
|
232
|
-
var SelectGroup = styled3(Select2.Group)`
|
|
233
|
-
display: block;
|
|
234
|
-
`;
|
|
235
|
-
var SelectGroupLabel = styled3(Select2.GroupLabel)`
|
|
236
|
-
padding: ${({ theme }) => `${theme.space[300]} ${theme.space[300]} ${theme.space[200]}`};
|
|
237
|
-
font-size: ${({ theme }) => theme.typography[100].fontSize};
|
|
238
|
-
font-weight: ${({ theme }) => theme.fontWeights.semibold};
|
|
239
|
-
text-transform: uppercase;
|
|
240
|
-
letter-spacing: 0.05em;
|
|
241
|
-
color: ${({ theme }) => theme.colors.text.subtext};
|
|
242
|
-
`;
|
|
243
|
-
var SelectSeparator = styled3(Select2.Separator)`
|
|
244
|
-
height: 1px;
|
|
245
|
-
margin: ${({ theme }) => `${theme.space[200]} ${theme.space[300]}`};
|
|
246
|
-
background: ${({ theme }) => theme.colors.container.border.base};
|
|
247
|
-
`;
|
|
248
|
-
var SelectPositioner = styled3(Select2.Positioner)`
|
|
249
|
-
width: var(--anchor-width);
|
|
250
|
-
z-index: 7;
|
|
251
|
-
`;
|
|
252
|
-
var SelectPopup = styled3(Select2.Popup)`
|
|
253
|
-
font-family: ${({ theme }) => theme.fontFamily};
|
|
254
|
-
background: ${({ theme }) => theme.colors.container.background.base};
|
|
255
|
-
border: 1px solid ${({ theme }) => theme.colors.container.border.base};
|
|
256
|
-
border-radius: ${({ theme }) => theme.radii[500]};
|
|
257
|
-
box-shadow: ${({ theme }) => theme.shadows.low};
|
|
258
|
-
outline: none;
|
|
259
|
-
max-height: min(var(--available-height, 400px), 400px);
|
|
260
|
-
overflow-y: auto;
|
|
261
|
-
padding: ${({ theme }) => theme.space[200]};
|
|
262
|
-
|
|
263
|
-
&[data-open] {
|
|
264
|
-
animation: select-popup-in 120ms ease-out;
|
|
265
|
-
}
|
|
266
|
-
|
|
267
|
-
&[data-closed] {
|
|
268
|
-
animation: select-popup-out 100ms ease-in;
|
|
269
|
-
}
|
|
270
|
-
|
|
271
|
-
@keyframes select-popup-in {
|
|
272
|
-
from {
|
|
273
|
-
opacity: 0;
|
|
274
|
-
transform: scale(0.95);
|
|
275
|
-
}
|
|
276
|
-
to {
|
|
277
|
-
opacity: 1;
|
|
278
|
-
transform: scale(1);
|
|
279
|
-
}
|
|
280
|
-
}
|
|
281
|
-
|
|
282
|
-
@keyframes select-popup-out {
|
|
283
|
-
from {
|
|
284
|
-
opacity: 1;
|
|
285
|
-
transform: scale(1);
|
|
286
|
-
}
|
|
287
|
-
to {
|
|
288
|
-
opacity: 0;
|
|
289
|
-
transform: scale(0.95);
|
|
290
|
-
}
|
|
291
|
-
}
|
|
292
|
-
`;
|
|
293
|
-
|
|
294
272
|
// src/v3/SingleSelect.tsx
|
|
295
|
-
import { Fragment as Fragment2, jsx as
|
|
296
|
-
var StyledValue =
|
|
297
|
-
|
|
298
|
-
|
|
299
|
-
|
|
300
|
-
|
|
301
|
-
|
|
302
|
-
|
|
303
|
-
|
|
304
|
-
|
|
305
|
-
}
|
|
306
|
-
`;
|
|
273
|
+
import { Fragment as Fragment2, jsx as jsx4, jsxs as jsxs2 } from "react/jsx-runtime";
|
|
274
|
+
var StyledValue = React5.forwardRef(({ className, ...rest }, ref) => /* @__PURE__ */ jsx4(
|
|
275
|
+
Select3.Value,
|
|
276
|
+
{
|
|
277
|
+
ref,
|
|
278
|
+
className: cn("seeds-select-value-text", className),
|
|
279
|
+
...rest
|
|
280
|
+
}
|
|
281
|
+
));
|
|
282
|
+
StyledValue.displayName = "StyledValue";
|
|
307
283
|
function SingleSelect(props) {
|
|
308
284
|
const { id, placeholder, includePlaceholderItem, fullWidth = true } = props;
|
|
309
285
|
const ariaDescribedBy = props["aria-describedby"];
|
|
@@ -323,7 +299,7 @@ function SingleSelect(props) {
|
|
|
323
299
|
const renderGroupHeading = isChildrenMode ? void 0 : props.renderGroupHeading;
|
|
324
300
|
const children = isChildrenMode ? props.children : void 0;
|
|
325
301
|
const { containerRef, portalContainer } = useSeedsPortalContainer();
|
|
326
|
-
const items =
|
|
302
|
+
const items = React5.useMemo(() => {
|
|
327
303
|
const dataItems = data.map((item) => ({
|
|
328
304
|
value: String(item.id),
|
|
329
305
|
label: itemToString(item)
|
|
@@ -335,11 +311,11 @@ function SingleSelect(props) {
|
|
|
335
311
|
}, [data, itemToString, includePlaceholderItem, placeholder]);
|
|
336
312
|
const dataWithPlaceholder = includePlaceholderItem ? [{ id: null, value: null, label: placeholder ?? "" }, ...data] : data;
|
|
337
313
|
const isControlled = selectedItemId !== void 0;
|
|
338
|
-
const [internalValue, setInternalValue] =
|
|
314
|
+
const [internalValue, setInternalValue] = React5.useState(
|
|
339
315
|
defaultSelectedItemId != null ? String(defaultSelectedItemId) : null
|
|
340
316
|
);
|
|
341
317
|
const value = isControlled ? selectedItemId != null ? String(selectedItemId) : null : internalValue;
|
|
342
|
-
const selectedItem =
|
|
318
|
+
const selectedItem = React5.useMemo(
|
|
343
319
|
() => value != null ? data.find((d) => String(d.id) === value) ?? null : null,
|
|
344
320
|
[data, value]
|
|
345
321
|
);
|
|
@@ -357,7 +333,7 @@ function SingleSelect(props) {
|
|
|
357
333
|
}
|
|
358
334
|
}
|
|
359
335
|
return /* @__PURE__ */ jsxs2(Field, { $fullWidth: fullWidth, children: [
|
|
360
|
-
/* @__PURE__ */
|
|
336
|
+
/* @__PURE__ */ jsx4("div", { ref: containerRef, style: { position: "relative" } }),
|
|
361
337
|
/* @__PURE__ */ jsxs2(
|
|
362
338
|
Select3.Root,
|
|
363
339
|
{
|
|
@@ -375,22 +351,22 @@ function SingleSelect(props) {
|
|
|
375
351
|
"aria-required": props.required || void 0,
|
|
376
352
|
$isInvalid: isInvalid,
|
|
377
353
|
children: [
|
|
378
|
-
/* @__PURE__ */
|
|
379
|
-
/* @__PURE__ */
|
|
354
|
+
/* @__PURE__ */ jsx4(StyledValue, { placeholder, children: renderSelection && selectedItem ? renderSelection(selectedItem) : void 0 }),
|
|
355
|
+
/* @__PURE__ */ jsx4(SelectIcon, { children: /* @__PURE__ */ jsx4(StyledChevron, { "data-chevron": true, children: /* @__PURE__ */ jsx4(ChevronIcon, {}) }) })
|
|
380
356
|
]
|
|
381
357
|
}
|
|
382
358
|
),
|
|
383
|
-
/* @__PURE__ */
|
|
384
|
-
/* @__PURE__ */
|
|
385
|
-
/* @__PURE__ */
|
|
359
|
+
/* @__PURE__ */ jsx4(Select3.Portal, { container: portalContainer, children: /* @__PURE__ */ jsx4(SelectPositioner, { sideOffset: 8, alignItemWithTrigger: false, children: /* @__PURE__ */ jsxs2(SelectPopup, { children: [
|
|
360
|
+
/* @__PURE__ */ jsx4(Select3.ScrollUpArrow, {}),
|
|
361
|
+
/* @__PURE__ */ jsx4(
|
|
386
362
|
Select3.List,
|
|
387
363
|
{
|
|
388
364
|
"aria-label": ariaLabel,
|
|
389
365
|
"aria-labelledby": ariaLabelledBy,
|
|
390
|
-
children: children ? children : groupBy ? groupItems(data, groupBy).map((group, index, arr) => /* @__PURE__ */ jsxs2(
|
|
366
|
+
children: children ? children : groupBy ? groupItems(data, groupBy).map((group, index, arr) => /* @__PURE__ */ jsxs2(React5.Fragment, { children: [
|
|
391
367
|
/* @__PURE__ */ jsxs2(SelectGroup, { children: [
|
|
392
|
-
/* @__PURE__ */
|
|
393
|
-
group.items.map((item) => /* @__PURE__ */
|
|
368
|
+
/* @__PURE__ */ jsx4(SelectGroupLabel, { children: renderGroupHeading ? renderGroupHeading(group.value) : group.value }),
|
|
369
|
+
group.items.map((item) => /* @__PURE__ */ jsx4(
|
|
394
370
|
SelectItem,
|
|
395
371
|
{
|
|
396
372
|
value: String(item.id),
|
|
@@ -402,9 +378,9 @@ function SingleSelect(props) {
|
|
|
402
378
|
item.id
|
|
403
379
|
))
|
|
404
380
|
] }),
|
|
405
|
-
index < arr.length - 1 && /* @__PURE__ */
|
|
381
|
+
index < arr.length - 1 && /* @__PURE__ */ jsx4(SelectSeparator, {})
|
|
406
382
|
] }, group.value)) : /* @__PURE__ */ jsxs2(Fragment2, { children: [
|
|
407
|
-
includePlaceholderItem && /* @__PURE__ */
|
|
383
|
+
includePlaceholderItem && /* @__PURE__ */ jsx4(
|
|
408
384
|
SelectItem,
|
|
409
385
|
{
|
|
410
386
|
value: null,
|
|
@@ -412,7 +388,7 @@ function SingleSelect(props) {
|
|
|
412
388
|
},
|
|
413
389
|
"placeholder"
|
|
414
390
|
),
|
|
415
|
-
data.map((item) => /* @__PURE__ */
|
|
391
|
+
data.map((item) => /* @__PURE__ */ jsx4(
|
|
416
392
|
SelectItem,
|
|
417
393
|
{
|
|
418
394
|
value: String(item.id),
|
|
@@ -426,7 +402,7 @@ function SingleSelect(props) {
|
|
|
426
402
|
] })
|
|
427
403
|
}
|
|
428
404
|
),
|
|
429
|
-
/* @__PURE__ */
|
|
405
|
+
/* @__PURE__ */ jsx4(Select3.ScrollDownArrow, {})
|
|
430
406
|
] }) }) })
|
|
431
407
|
]
|
|
432
408
|
}
|
|
@@ -435,24 +411,14 @@ function SingleSelect(props) {
|
|
|
435
411
|
}
|
|
436
412
|
|
|
437
413
|
// src/v3/MultiSelect.tsx
|
|
438
|
-
import * as
|
|
414
|
+
import * as React6 from "react";
|
|
439
415
|
import { Select as Select4 } from "@base-ui/react/select";
|
|
440
|
-
import
|
|
441
|
-
|
|
442
|
-
|
|
443
|
-
|
|
444
|
-
|
|
445
|
-
|
|
446
|
-
white-space: nowrap;
|
|
447
|
-
`;
|
|
448
|
-
var Placeholder = styled5.div`
|
|
449
|
-
color: ${({ theme }) => theme.colors.text.subtext};
|
|
450
|
-
font-size: ${({ theme }) => theme.typography[200].fontSize};
|
|
451
|
-
line-height: 16px;
|
|
452
|
-
padding-top: 2px;
|
|
453
|
-
padding-bottom: 2px;
|
|
454
|
-
margin: 2px 8px 0px 0px;
|
|
455
|
-
`;
|
|
416
|
+
import { jsx as jsx5, jsxs as jsxs3 } from "react/jsx-runtime";
|
|
417
|
+
var SelectionText = ({
|
|
418
|
+
className,
|
|
419
|
+
...rest
|
|
420
|
+
}) => /* @__PURE__ */ jsx5("span", { className: cn("seeds-select-selection-text", className), ...rest });
|
|
421
|
+
var Placeholder = ({ className, ...rest }) => /* @__PURE__ */ jsx5("div", { className: cn("seeds-select-placeholder", className), ...rest });
|
|
456
422
|
function MultiSelect(props) {
|
|
457
423
|
const { id, placeholder = "Select...", fullWidth = true } = props;
|
|
458
424
|
const ariaDescribedBy = props["aria-describedby"];
|
|
@@ -476,18 +442,18 @@ function MultiSelect(props) {
|
|
|
476
442
|
const children = isChildrenMode ? props.children : void 0;
|
|
477
443
|
const { containerRef, portalContainer } = useSeedsPortalContainer();
|
|
478
444
|
const isControlled = selectedItemIds !== void 0;
|
|
479
|
-
const [internalValue, setInternalValue] =
|
|
445
|
+
const [internalValue, setInternalValue] = React6.useState(
|
|
480
446
|
() => defaultSelectedItemIds?.map(String) ?? []
|
|
481
447
|
);
|
|
482
448
|
const value = isControlled ? selectedItemIds.map(String) : internalValue;
|
|
483
|
-
const items =
|
|
449
|
+
const items = React6.useMemo(
|
|
484
450
|
() => data.map((item) => ({
|
|
485
451
|
value: String(item.id),
|
|
486
452
|
label: itemToString(item)
|
|
487
453
|
})),
|
|
488
454
|
[data, itemToString]
|
|
489
455
|
);
|
|
490
|
-
const selectedItems =
|
|
456
|
+
const selectedItems = React6.useMemo(
|
|
491
457
|
() => value.map((v) => data.find((d) => String(d.id) === v)).filter((d) => d != null),
|
|
492
458
|
[data, value]
|
|
493
459
|
);
|
|
@@ -504,7 +470,7 @@ function MultiSelect(props) {
|
|
|
504
470
|
}
|
|
505
471
|
}
|
|
506
472
|
return /* @__PURE__ */ jsxs3(Field, { $fullWidth: fullWidth, children: [
|
|
507
|
-
/* @__PURE__ */
|
|
473
|
+
/* @__PURE__ */ jsx5("div", { ref: containerRef, style: { position: "relative" } }),
|
|
508
474
|
/* @__PURE__ */ jsxs3(
|
|
509
475
|
Select4.Root,
|
|
510
476
|
{
|
|
@@ -523,10 +489,10 @@ function MultiSelect(props) {
|
|
|
523
489
|
"aria-required": props.required || void 0,
|
|
524
490
|
$isInvalid: isInvalid,
|
|
525
491
|
children: [
|
|
526
|
-
/* @__PURE__ */
|
|
492
|
+
/* @__PURE__ */ jsx5(SelectValue, { children: () => {
|
|
527
493
|
if (renderSelection) return renderSelection(selectedItems);
|
|
528
494
|
if (selectedItems.length === 0)
|
|
529
|
-
return /* @__PURE__ */
|
|
495
|
+
return /* @__PURE__ */ jsx5(Placeholder, { children: placeholder });
|
|
530
496
|
const visibleItems = maxSelections != null ? selectedItems.slice(0, maxSelections) : selectedItems;
|
|
531
497
|
const overflowCount = maxSelections != null && selectedItems.length > maxSelections ? selectedItems.length - maxSelections : 0;
|
|
532
498
|
const text = visibleItems.map(
|
|
@@ -537,21 +503,21 @@ function MultiSelect(props) {
|
|
|
537
503
|
overflowCount > 0 ? `, +${overflowCount}` : ""
|
|
538
504
|
] });
|
|
539
505
|
} }),
|
|
540
|
-
/* @__PURE__ */
|
|
506
|
+
/* @__PURE__ */ jsx5(SelectIcon, { children: /* @__PURE__ */ jsx5(StyledChevron, { "data-chevron": true, children: /* @__PURE__ */ jsx5(ChevronIcon, {}) }) })
|
|
541
507
|
]
|
|
542
508
|
}
|
|
543
509
|
),
|
|
544
|
-
/* @__PURE__ */
|
|
545
|
-
/* @__PURE__ */
|
|
546
|
-
/* @__PURE__ */
|
|
510
|
+
/* @__PURE__ */ jsx5(Select4.Portal, { container: portalContainer, children: /* @__PURE__ */ jsx5(SelectPositioner, { sideOffset: 8, alignItemWithTrigger: false, children: /* @__PURE__ */ jsxs3(SelectPopup, { children: [
|
|
511
|
+
/* @__PURE__ */ jsx5(Select4.ScrollUpArrow, {}),
|
|
512
|
+
/* @__PURE__ */ jsx5(
|
|
547
513
|
Select4.List,
|
|
548
514
|
{
|
|
549
515
|
"aria-label": ariaLabel,
|
|
550
516
|
"aria-labelledby": ariaLabelledBy,
|
|
551
|
-
children: children ? children : groupBy ? groupItems(data, groupBy).map((group, index, arr) => /* @__PURE__ */ jsxs3(
|
|
517
|
+
children: children ? children : groupBy ? groupItems(data, groupBy).map((group, index, arr) => /* @__PURE__ */ jsxs3(React6.Fragment, { children: [
|
|
552
518
|
/* @__PURE__ */ jsxs3(SelectGroup, { children: [
|
|
553
|
-
/* @__PURE__ */
|
|
554
|
-
group.items.map((item) => /* @__PURE__ */
|
|
519
|
+
/* @__PURE__ */ jsx5(SelectGroupLabel, { children: renderGroupHeading ? renderGroupHeading(group.value) : group.value }),
|
|
520
|
+
group.items.map((item) => /* @__PURE__ */ jsx5(
|
|
555
521
|
SelectItem,
|
|
556
522
|
{
|
|
557
523
|
value: String(item.id),
|
|
@@ -564,8 +530,8 @@ function MultiSelect(props) {
|
|
|
564
530
|
item.id
|
|
565
531
|
))
|
|
566
532
|
] }),
|
|
567
|
-
index < arr.length - 1 && /* @__PURE__ */
|
|
568
|
-
] }, group.value)) : data.map((item) => /* @__PURE__ */
|
|
533
|
+
index < arr.length - 1 && /* @__PURE__ */ jsx5(SelectSeparator, {})
|
|
534
|
+
] }, group.value)) : data.map((item) => /* @__PURE__ */ jsx5(
|
|
569
535
|
SelectItem,
|
|
570
536
|
{
|
|
571
537
|
value: String(item.id),
|
|
@@ -579,7 +545,7 @@ function MultiSelect(props) {
|
|
|
579
545
|
))
|
|
580
546
|
}
|
|
581
547
|
),
|
|
582
|
-
/* @__PURE__ */
|
|
548
|
+
/* @__PURE__ */ jsx5(Select4.ScrollDownArrow, {})
|
|
583
549
|
] }) }) })
|
|
584
550
|
]
|
|
585
551
|
}
|
|
@@ -588,14 +554,14 @@ function MultiSelect(props) {
|
|
|
588
554
|
}
|
|
589
555
|
|
|
590
556
|
// src/v3/SingleCombobox.tsx
|
|
591
|
-
import * as
|
|
557
|
+
import * as React11 from "react";
|
|
592
558
|
import { Combobox as Combobox3 } from "@base-ui/react/combobox";
|
|
593
559
|
import "@tanstack/react-virtual";
|
|
594
560
|
|
|
595
561
|
// src/v3/Common/useSuppressEscapeClear.ts
|
|
596
|
-
import * as
|
|
562
|
+
import * as React7 from "react";
|
|
597
563
|
function useSuppressEscapeClear(open) {
|
|
598
|
-
return
|
|
564
|
+
return React7.useCallback(
|
|
599
565
|
(event) => {
|
|
600
566
|
if (event.key === "Escape" && !open) {
|
|
601
567
|
event.stopPropagation();
|
|
@@ -606,309 +572,189 @@ function useSuppressEscapeClear(open) {
|
|
|
606
572
|
}
|
|
607
573
|
|
|
608
574
|
// src/v3/Common/ComboboxItem.tsx
|
|
609
|
-
import * as
|
|
575
|
+
import * as React9 from "react";
|
|
610
576
|
import Radio2 from "@sproutsocial/seeds-react-radio";
|
|
611
577
|
import Checkbox3 from "@sproutsocial/seeds-react-checkbox";
|
|
612
578
|
|
|
613
579
|
// src/v3/Common/ComboboxStyles.tsx
|
|
580
|
+
import * as React8 from "react";
|
|
614
581
|
import { Combobox } from "@base-ui/react/combobox";
|
|
615
|
-
import styled6, { css as css2 } from "styled-components";
|
|
616
|
-
import { focusRing as focusRing2 } from "@sproutsocial/seeds-react-mixins";
|
|
617
582
|
import Checkbox2 from "@sproutsocial/seeds-react-checkbox";
|
|
618
|
-
import { jsx as
|
|
619
|
-
var
|
|
620
|
-
|
|
621
|
-
|
|
622
|
-
|
|
623
|
-
|
|
624
|
-
|
|
625
|
-
|
|
626
|
-
|
|
627
|
-
|
|
628
|
-
|
|
629
|
-
|
|
630
|
-
|
|
631
|
-
|
|
632
|
-
|
|
633
|
-
|
|
634
|
-
|
|
635
|
-
|
|
636
|
-
|
|
637
|
-
|
|
638
|
-
|
|
639
|
-
|
|
640
|
-
|
|
641
|
-
|
|
642
|
-
|
|
643
|
-
|
|
644
|
-
|
|
645
|
-
|
|
646
|
-
|
|
647
|
-
|
|
648
|
-
|
|
649
|
-
|
|
650
|
-
|
|
651
|
-
|
|
652
|
-
|
|
653
|
-
|
|
654
|
-
|
|
655
|
-
|
|
656
|
-
|
|
657
|
-
|
|
658
|
-
|
|
659
|
-
|
|
660
|
-
|
|
661
|
-
|
|
662
|
-
|
|
663
|
-
|
|
664
|
-
|
|
665
|
-
|
|
666
|
-
|
|
667
|
-
|
|
668
|
-
}
|
|
669
|
-
|
|
670
|
-
|
|
671
|
-
|
|
672
|
-
|
|
673
|
-
|
|
674
|
-
|
|
675
|
-
|
|
676
|
-
|
|
677
|
-
|
|
678
|
-
|
|
679
|
-
|
|
680
|
-
|
|
681
|
-
|
|
682
|
-
|
|
683
|
-
|
|
684
|
-
|
|
685
|
-
|
|
686
|
-
|
|
687
|
-
|
|
688
|
-
|
|
689
|
-
|
|
690
|
-
|
|
691
|
-
|
|
692
|
-
|
|
693
|
-
|
|
694
|
-
|
|
695
|
-
|
|
696
|
-
|
|
697
|
-
|
|
698
|
-
|
|
699
|
-
|
|
700
|
-
|
|
701
|
-
|
|
702
|
-
|
|
703
|
-
|
|
704
|
-
|
|
705
|
-
|
|
706
|
-
|
|
707
|
-
|
|
708
|
-
|
|
709
|
-
|
|
710
|
-
|
|
711
|
-
|
|
712
|
-
|
|
713
|
-
|
|
714
|
-
|
|
715
|
-
|
|
716
|
-
|
|
717
|
-
|
|
718
|
-
|
|
719
|
-
|
|
720
|
-
|
|
721
|
-
|
|
722
|
-
|
|
723
|
-
|
|
724
|
-
|
|
725
|
-
|
|
726
|
-
|
|
727
|
-
|
|
728
|
-
|
|
729
|
-
|
|
730
|
-
|
|
731
|
-
|
|
732
|
-
|
|
733
|
-
|
|
734
|
-
|
|
735
|
-
|
|
736
|
-
|
|
737
|
-
|
|
738
|
-
|
|
739
|
-
|
|
740
|
-
}
|
|
741
|
-
|
|
742
|
-
|
|
743
|
-
|
|
744
|
-
|
|
745
|
-
|
|
746
|
-
|
|
747
|
-
|
|
748
|
-
|
|
749
|
-
|
|
750
|
-
|
|
751
|
-
|
|
752
|
-
|
|
753
|
-
|
|
754
|
-
|
|
755
|
-
|
|
756
|
-
|
|
757
|
-
|
|
758
|
-
|
|
759
|
-
|
|
760
|
-
|
|
761
|
-
|
|
762
|
-
|
|
763
|
-
|
|
764
|
-
|
|
765
|
-
|
|
766
|
-
|
|
767
|
-
|
|
768
|
-
|
|
769
|
-
|
|
770
|
-
|
|
771
|
-
|
|
772
|
-
|
|
773
|
-
|
|
774
|
-
|
|
775
|
-
|
|
776
|
-
|
|
777
|
-
|
|
778
|
-
|
|
779
|
-
|
|
780
|
-
|
|
781
|
-
|
|
782
|
-
|
|
783
|
-
|
|
784
|
-
|
|
785
|
-
|
|
786
|
-
|
|
787
|
-
|
|
788
|
-
var ComboboxList = styled6(Combobox.List)`
|
|
789
|
-
padding: ${({ theme }) => theme.space[200]};
|
|
790
|
-
|
|
791
|
-
&:empty {
|
|
792
|
-
padding: 0;
|
|
793
|
-
}
|
|
794
|
-
`;
|
|
795
|
-
var ComboboxStatus = styled6(Combobox.Status)`
|
|
796
|
-
padding: ${({ theme }) => `${theme.space[300]} ${theme.space[350]}`};
|
|
797
|
-
font-size: ${({ theme }) => theme.typography[200].fontSize};
|
|
798
|
-
color: ${({ theme }) => theme.colors.text.subtext};
|
|
799
|
-
|
|
800
|
-
&:empty {
|
|
801
|
-
padding: 0;
|
|
802
|
-
}
|
|
803
|
-
`;
|
|
804
|
-
var ComboboxEmpty = styled6(Combobox.Empty)`
|
|
805
|
-
padding: ${({ theme }) => `${theme.space[300]} ${theme.space[350]}`};
|
|
806
|
-
font-size: ${({ theme }) => theme.typography[200].fontSize};
|
|
807
|
-
color: ${({ theme }) => theme.colors.text.subtext};
|
|
808
|
-
|
|
809
|
-
&:empty {
|
|
810
|
-
padding: 0;
|
|
811
|
-
}
|
|
812
|
-
`;
|
|
813
|
-
var ComboboxItem = styled6(Combobox.Item)`
|
|
814
|
-
display: flex;
|
|
815
|
-
align-items: center;
|
|
816
|
-
gap: ${({ theme }) => theme.space[300]};
|
|
817
|
-
padding: ${({ theme }) => `${theme.space[300]} ${theme.space[300]}`};
|
|
818
|
-
border-radius: ${({ theme }) => theme.radii[500]};
|
|
819
|
-
font-size: ${({ theme }) => theme.typography[200].fontSize};
|
|
820
|
-
color: ${({ theme }) => theme.colors.text.body};
|
|
821
|
-
cursor: default;
|
|
822
|
-
outline: none;
|
|
823
|
-
|
|
824
|
-
&[data-highlighted] {
|
|
825
|
-
background: ${({ theme }) => theme.colors.listItem.background.hover};
|
|
826
|
-
}
|
|
827
|
-
|
|
828
|
-
&[data-selected] {
|
|
829
|
-
font-weight: ${({ theme }) => theme.fontWeights.semibold};
|
|
830
|
-
}
|
|
831
|
-
|
|
832
|
-
&[data-disabled] {
|
|
833
|
-
opacity: 0.5;
|
|
834
|
-
cursor: not-allowed;
|
|
835
|
-
}
|
|
836
|
-
`;
|
|
837
|
-
var ComboboxItemIndicator = styled6(Combobox.ItemIndicator)`
|
|
838
|
-
display: flex;
|
|
839
|
-
align-items: center;
|
|
840
|
-
width: ${({ theme }) => theme.space[400]};
|
|
841
|
-
color: ${({ theme }) => theme.colors.text.body};
|
|
842
|
-
visibility: hidden;
|
|
843
|
-
|
|
844
|
-
&[data-selected] {
|
|
845
|
-
visibility: visible;
|
|
846
|
-
}
|
|
847
|
-
`;
|
|
848
|
-
var ComboboxGroup = styled6(Combobox.Group)`
|
|
849
|
-
display: block;
|
|
850
|
-
`;
|
|
851
|
-
var ComboboxGroupLabel = styled6(Combobox.GroupLabel)`
|
|
852
|
-
padding: ${({ theme }) => `${theme.space[300]} ${theme.space[300]} ${theme.space[200]}`};
|
|
853
|
-
font-size: ${({ theme }) => theme.typography[100].fontSize};
|
|
854
|
-
font-weight: ${({ theme }) => theme.fontWeights.semibold};
|
|
855
|
-
text-transform: uppercase;
|
|
856
|
-
letter-spacing: 0.05em;
|
|
857
|
-
color: ${({ theme }) => theme.colors.text.subtext};
|
|
858
|
-
`;
|
|
859
|
-
var ComboboxSeparator = styled6.div`
|
|
860
|
-
height: 1px;
|
|
861
|
-
margin: ${({ theme }) => `${theme.space[200]} ${theme.space[300]}`};
|
|
862
|
-
background: ${({ theme }) => theme.colors.container.border.base};
|
|
863
|
-
`;
|
|
864
|
-
var ComboboxGroupHeaderItem = styled6(Combobox.Item)`
|
|
865
|
-
display: flex;
|
|
866
|
-
align-items: center;
|
|
867
|
-
gap: ${({ theme }) => theme.space[300]};
|
|
868
|
-
padding: ${({ theme }) => `${theme.space[300]} ${theme.space[300]}`};
|
|
869
|
-
border-radius: ${({ theme }) => theme.radii[500]};
|
|
870
|
-
font-size: ${({ theme }) => theme.typography[100].fontSize};
|
|
871
|
-
font-weight: ${({ theme }) => theme.fontWeights.semibold};
|
|
872
|
-
text-transform: uppercase;
|
|
873
|
-
letter-spacing: 0.05em;
|
|
874
|
-
color: ${({ theme }) => theme.colors.text.subtext};
|
|
875
|
-
cursor: default;
|
|
876
|
-
outline: none;
|
|
877
|
-
|
|
878
|
-
&[data-highlighted] {
|
|
879
|
-
background: ${({ theme }) => theme.colors.listItem.background.hover};
|
|
880
|
-
color: ${({ theme }) => theme.colors.text.body};
|
|
881
|
-
}
|
|
882
|
-
|
|
883
|
-
&[data-disabled] {
|
|
884
|
-
opacity: 0.4;
|
|
885
|
-
cursor: not-allowed;
|
|
886
|
-
pointer-events: none;
|
|
887
|
-
}
|
|
888
|
-
`;
|
|
889
|
-
var ComboboxSelectAllItem = styled6(Combobox.Item)`
|
|
890
|
-
display: flex;
|
|
891
|
-
align-items: center;
|
|
892
|
-
gap: ${({ theme }) => theme.space[300]};
|
|
893
|
-
padding: ${({ theme }) => `${theme.space[300]} ${theme.space[300]}`};
|
|
894
|
-
border-radius: ${({ theme }) => theme.radii[500]};
|
|
895
|
-
font-size: ${({ theme }) => theme.typography[200].fontSize};
|
|
896
|
-
font-weight: ${({ theme }) => theme.fontWeights.semibold};
|
|
897
|
-
color: ${({ theme }) => theme.colors.text.body};
|
|
898
|
-
cursor: default;
|
|
899
|
-
outline: none;
|
|
900
|
-
border-bottom: 1px solid ${({ theme }) => theme.colors.container.border.base};
|
|
901
|
-
margin-bottom: ${({ theme }) => theme.space[200]};
|
|
902
|
-
|
|
903
|
-
&[data-highlighted] {
|
|
904
|
-
background: ${({ theme }) => theme.colors.listItem.background.hover};
|
|
905
|
-
}
|
|
906
|
-
`;
|
|
583
|
+
import { jsx as jsx6 } from "react/jsx-runtime";
|
|
584
|
+
var ComboboxLabel = React8.forwardRef(({ className, ...rest }, ref) => /* @__PURE__ */ jsx6("label", { ref, className: cn("seeds-menu-label", className), ...rest }));
|
|
585
|
+
ComboboxLabel.displayName = "ComboboxLabel";
|
|
586
|
+
var ComboboxInputGroup = React8.forwardRef(({ $isInvalid, className, ...rest }, ref) => /* @__PURE__ */ jsx6(
|
|
587
|
+
Combobox.InputGroup,
|
|
588
|
+
{
|
|
589
|
+
ref,
|
|
590
|
+
className: cn(
|
|
591
|
+
"seeds-combobox-input-group",
|
|
592
|
+
{ "seeds-combobox-input-group--invalid": !!$isInvalid },
|
|
593
|
+
className
|
|
594
|
+
),
|
|
595
|
+
...rest
|
|
596
|
+
}
|
|
597
|
+
));
|
|
598
|
+
ComboboxInputGroup.displayName = "ComboboxInputGroup";
|
|
599
|
+
var ComboboxInput = React8.forwardRef(({ className, ...rest }, ref) => /* @__PURE__ */ jsx6(
|
|
600
|
+
Combobox.Input,
|
|
601
|
+
{
|
|
602
|
+
ref,
|
|
603
|
+
className: cn("seeds-combobox-input", className),
|
|
604
|
+
...rest
|
|
605
|
+
}
|
|
606
|
+
));
|
|
607
|
+
ComboboxInput.displayName = "ComboboxInput";
|
|
608
|
+
var ComboboxTokenInput = React8.forwardRef(({ className, ...rest }, ref) => /* @__PURE__ */ jsx6(
|
|
609
|
+
Combobox.Input,
|
|
610
|
+
{
|
|
611
|
+
ref,
|
|
612
|
+
className: cn("seeds-combobox-token-input", className),
|
|
613
|
+
...rest
|
|
614
|
+
}
|
|
615
|
+
));
|
|
616
|
+
ComboboxTokenInput.displayName = "ComboboxTokenInput";
|
|
617
|
+
var ComboboxActionButtons = React8.forwardRef(({ className, ...rest }, ref) => /* @__PURE__ */ jsx6(
|
|
618
|
+
"div",
|
|
619
|
+
{
|
|
620
|
+
ref,
|
|
621
|
+
className: cn("seeds-combobox-action-buttons", className),
|
|
622
|
+
...rest
|
|
623
|
+
}
|
|
624
|
+
));
|
|
625
|
+
ComboboxActionButtons.displayName = "ComboboxActionButtons";
|
|
626
|
+
var ComboboxClear = React8.forwardRef(({ className, ...rest }, ref) => /* @__PURE__ */ jsx6(
|
|
627
|
+
Combobox.Clear,
|
|
628
|
+
{
|
|
629
|
+
ref,
|
|
630
|
+
tabIndex: 0,
|
|
631
|
+
className: cn("seeds-combobox-clear", className),
|
|
632
|
+
...rest
|
|
633
|
+
}
|
|
634
|
+
));
|
|
635
|
+
ComboboxClear.displayName = "ComboboxClear";
|
|
636
|
+
var ComboboxTrigger = React8.forwardRef(({ className, ...rest }, ref) => /* @__PURE__ */ jsx6(
|
|
637
|
+
Combobox.Trigger,
|
|
638
|
+
{
|
|
639
|
+
ref,
|
|
640
|
+
className: cn("seeds-combobox-trigger", className),
|
|
641
|
+
...rest
|
|
642
|
+
}
|
|
643
|
+
));
|
|
644
|
+
ComboboxTrigger.displayName = "ComboboxTrigger";
|
|
645
|
+
var ComboboxPositioner = React8.forwardRef(({ className, ...rest }, ref) => /* @__PURE__ */ jsx6(
|
|
646
|
+
Combobox.Positioner,
|
|
647
|
+
{
|
|
648
|
+
ref,
|
|
649
|
+
className: cn("seeds-combobox-positioner", className),
|
|
650
|
+
...rest
|
|
651
|
+
}
|
|
652
|
+
));
|
|
653
|
+
ComboboxPositioner.displayName = "ComboboxPositioner";
|
|
654
|
+
var ComboboxPopup = React8.forwardRef(({ className, ...rest }, ref) => /* @__PURE__ */ jsx6(
|
|
655
|
+
Combobox.Popup,
|
|
656
|
+
{
|
|
657
|
+
ref,
|
|
658
|
+
className: cn("seeds-combobox-popup", className),
|
|
659
|
+
...rest
|
|
660
|
+
}
|
|
661
|
+
));
|
|
662
|
+
ComboboxPopup.displayName = "ComboboxPopup";
|
|
663
|
+
var ComboboxList = React8.forwardRef(({ className, ...rest }, ref) => /* @__PURE__ */ jsx6(
|
|
664
|
+
Combobox.List,
|
|
665
|
+
{
|
|
666
|
+
ref,
|
|
667
|
+
className: cn("seeds-combobox-list", className),
|
|
668
|
+
...rest
|
|
669
|
+
}
|
|
670
|
+
));
|
|
671
|
+
ComboboxList.displayName = "ComboboxList";
|
|
672
|
+
var ComboboxStatus = React8.forwardRef(({ className, ...rest }, ref) => /* @__PURE__ */ jsx6(
|
|
673
|
+
Combobox.Status,
|
|
674
|
+
{
|
|
675
|
+
ref,
|
|
676
|
+
className: cn("seeds-combobox-status", className),
|
|
677
|
+
...rest
|
|
678
|
+
}
|
|
679
|
+
));
|
|
680
|
+
ComboboxStatus.displayName = "ComboboxStatus";
|
|
681
|
+
var ComboboxEmpty = React8.forwardRef(({ className, ...rest }, ref) => /* @__PURE__ */ jsx6(
|
|
682
|
+
Combobox.Empty,
|
|
683
|
+
{
|
|
684
|
+
ref,
|
|
685
|
+
className: cn("seeds-combobox-empty", className),
|
|
686
|
+
...rest
|
|
687
|
+
}
|
|
688
|
+
));
|
|
689
|
+
ComboboxEmpty.displayName = "ComboboxEmpty";
|
|
690
|
+
var ComboboxItem = React8.forwardRef(({ className, ...rest }, ref) => /* @__PURE__ */ jsx6(
|
|
691
|
+
Combobox.Item,
|
|
692
|
+
{
|
|
693
|
+
ref,
|
|
694
|
+
className: cn("seeds-combobox-item", className),
|
|
695
|
+
...rest
|
|
696
|
+
}
|
|
697
|
+
));
|
|
698
|
+
ComboboxItem.displayName = "ComboboxItem";
|
|
699
|
+
var ComboboxItemIndicator = React8.forwardRef(({ className, ...rest }, ref) => /* @__PURE__ */ jsx6(
|
|
700
|
+
Combobox.ItemIndicator,
|
|
701
|
+
{
|
|
702
|
+
ref,
|
|
703
|
+
className: cn("seeds-combobox-item-indicator", className),
|
|
704
|
+
...rest
|
|
705
|
+
}
|
|
706
|
+
));
|
|
707
|
+
ComboboxItemIndicator.displayName = "ComboboxItemIndicator";
|
|
708
|
+
var ComboboxGroup = React8.forwardRef(({ className, ...rest }, ref) => /* @__PURE__ */ jsx6(
|
|
709
|
+
Combobox.Group,
|
|
710
|
+
{
|
|
711
|
+
ref,
|
|
712
|
+
className: cn("seeds-combobox-group", className),
|
|
713
|
+
...rest
|
|
714
|
+
}
|
|
715
|
+
));
|
|
716
|
+
ComboboxGroup.displayName = "ComboboxGroup";
|
|
717
|
+
var ComboboxGroupLabel = React8.forwardRef(({ className, ...rest }, ref) => /* @__PURE__ */ jsx6(
|
|
718
|
+
Combobox.GroupLabel,
|
|
719
|
+
{
|
|
720
|
+
ref,
|
|
721
|
+
className: cn("seeds-combobox-group-label", className),
|
|
722
|
+
...rest
|
|
723
|
+
}
|
|
724
|
+
));
|
|
725
|
+
ComboboxGroupLabel.displayName = "ComboboxGroupLabel";
|
|
726
|
+
var ComboboxSeparator = React8.forwardRef(({ className, ...rest }, ref) => /* @__PURE__ */ jsx6(
|
|
727
|
+
"div",
|
|
728
|
+
{
|
|
729
|
+
ref,
|
|
730
|
+
className: cn("seeds-combobox-separator", className),
|
|
731
|
+
...rest
|
|
732
|
+
}
|
|
733
|
+
));
|
|
734
|
+
ComboboxSeparator.displayName = "ComboboxSeparator";
|
|
735
|
+
var ComboboxGroupHeaderItem = React8.forwardRef(({ className, ...rest }, ref) => /* @__PURE__ */ jsx6(
|
|
736
|
+
Combobox.Item,
|
|
737
|
+
{
|
|
738
|
+
ref,
|
|
739
|
+
className: cn("seeds-combobox-group-header-item", className),
|
|
740
|
+
...rest
|
|
741
|
+
}
|
|
742
|
+
));
|
|
743
|
+
ComboboxGroupHeaderItem.displayName = "ComboboxGroupHeaderItem";
|
|
744
|
+
var ComboboxSelectAllItem = React8.forwardRef(({ className, ...rest }, ref) => /* @__PURE__ */ jsx6(
|
|
745
|
+
Combobox.Item,
|
|
746
|
+
{
|
|
747
|
+
ref,
|
|
748
|
+
className: cn("seeds-combobox-select-all-item", className),
|
|
749
|
+
...rest
|
|
750
|
+
}
|
|
751
|
+
));
|
|
752
|
+
ComboboxSelectAllItem.displayName = "ComboboxSelectAllItem";
|
|
907
753
|
function ComboboxGroupHeaderCheckbox({
|
|
908
754
|
$state,
|
|
909
755
|
id
|
|
910
756
|
}) {
|
|
911
|
-
return /* @__PURE__ */
|
|
757
|
+
return /* @__PURE__ */ jsx6(
|
|
912
758
|
Checkbox2,
|
|
913
759
|
{
|
|
914
760
|
id,
|
|
@@ -920,196 +766,114 @@ function ComboboxGroupHeaderCheckbox({
|
|
|
920
766
|
}
|
|
921
767
|
);
|
|
922
768
|
}
|
|
923
|
-
var ComboboxToken =
|
|
924
|
-
|
|
925
|
-
|
|
926
|
-
|
|
927
|
-
|
|
928
|
-
|
|
929
|
-
|
|
930
|
-
|
|
931
|
-
|
|
932
|
-
|
|
933
|
-
|
|
934
|
-
|
|
935
|
-
|
|
936
|
-
|
|
937
|
-
|
|
938
|
-
|
|
939
|
-
|
|
940
|
-
|
|
941
|
-
|
|
942
|
-
|
|
943
|
-
|
|
944
|
-
|
|
945
|
-
|
|
946
|
-
|
|
947
|
-
|
|
948
|
-
|
|
949
|
-
|
|
950
|
-
|
|
951
|
-
|
|
952
|
-
|
|
953
|
-
|
|
954
|
-
|
|
955
|
-
|
|
956
|
-
|
|
957
|
-
|
|
958
|
-
|
|
959
|
-
|
|
960
|
-
|
|
961
|
-
|
|
962
|
-
|
|
963
|
-
|
|
964
|
-
|
|
965
|
-
|
|
966
|
-
|
|
967
|
-
|
|
968
|
-
|
|
969
|
-
|
|
970
|
-
|
|
971
|
-
|
|
972
|
-
|
|
973
|
-
|
|
974
|
-
|
|
975
|
-
|
|
976
|
-
|
|
977
|
-
|
|
978
|
-
|
|
979
|
-
|
|
980
|
-
|
|
981
|
-
|
|
982
|
-
|
|
983
|
-
|
|
984
|
-
|
|
985
|
-
|
|
986
|
-
|
|
987
|
-
&:focus-visible {
|
|
988
|
-
${focusRing2}
|
|
989
|
-
}
|
|
990
|
-
`;
|
|
991
|
-
var SearchableSelectTrigger = styled6(Combobox.Trigger)`
|
|
992
|
-
display: flex;
|
|
993
|
-
align-items: center;
|
|
994
|
-
justify-content: space-between;
|
|
995
|
-
gap: ${({ theme }) => theme.space[300]};
|
|
996
|
-
padding: ${({ theme }) => theme.space[200]} ${({ theme }) => theme.space[350]};
|
|
997
|
-
min-width: 160px;
|
|
998
|
-
border-radius: ${({ theme }) => theme.radii[500]};
|
|
999
|
-
border: 1px solid ${({ theme }) => theme.colors.form.border.base};
|
|
1000
|
-
background: ${({ theme }) => theme.colors.form.background.base};
|
|
1001
|
-
font-size: ${({ theme }) => theme.typography[200].fontSize};
|
|
1002
|
-
color: ${({ theme }) => theme.colors.text.body};
|
|
1003
|
-
cursor: default;
|
|
1004
|
-
outline: none;
|
|
1005
|
-
user-select: none;
|
|
1006
|
-
transition: border-color ${({ theme }) => theme.duration.fast}
|
|
1007
|
-
${({ theme }) => theme.easing.ease_in},
|
|
1008
|
-
box-shadow ${({ theme }) => theme.duration.fast}
|
|
1009
|
-
${({ theme }) => theme.easing.ease_in};
|
|
1010
|
-
|
|
1011
|
-
&:focus-visible {
|
|
1012
|
-
${focusRing2}
|
|
1013
|
-
}
|
|
1014
|
-
|
|
1015
|
-
&[data-popup-open] [data-chevron] {
|
|
1016
|
-
transform: rotate(-180deg);
|
|
1017
|
-
}
|
|
1018
|
-
|
|
1019
|
-
&[data-disabled] {
|
|
1020
|
-
opacity: 0.4;
|
|
1021
|
-
cursor: not-allowed;
|
|
1022
|
-
}
|
|
1023
|
-
|
|
1024
|
-
${({ $isInvalid }) => $isInvalid && invalidStyles2}
|
|
1025
|
-
`;
|
|
1026
|
-
var SearchableSelectTriggerIcon = styled6(Combobox.Icon)`
|
|
1027
|
-
display: flex;
|
|
1028
|
-
align-items: center;
|
|
1029
|
-
color: ${({ theme }) => theme.colors.icon.base};
|
|
1030
|
-
flex-shrink: 0;
|
|
1031
|
-
`;
|
|
1032
|
-
var SearchableSelectPlaceholder = styled6.span`
|
|
1033
|
-
color: ${({ theme }) => theme.colors.text.subtext};
|
|
1034
|
-
padding: ${({ theme }) => theme.space[200]} 0;
|
|
1035
|
-
`;
|
|
769
|
+
var ComboboxToken = React8.forwardRef(({ className, ...rest }, ref) => /* @__PURE__ */ jsx6(
|
|
770
|
+
Combobox.Chips,
|
|
771
|
+
{
|
|
772
|
+
ref,
|
|
773
|
+
className: cn("seeds-combobox-tokens", className),
|
|
774
|
+
...rest
|
|
775
|
+
}
|
|
776
|
+
));
|
|
777
|
+
ComboboxToken.displayName = "ComboboxToken";
|
|
778
|
+
var ComboboxTokenInputGroup = React8.forwardRef(({ $isInvalid, className, ...rest }, ref) => /* @__PURE__ */ jsx6(
|
|
779
|
+
Combobox.InputGroup,
|
|
780
|
+
{
|
|
781
|
+
ref,
|
|
782
|
+
className: cn(
|
|
783
|
+
"seeds-combobox-token-input-group",
|
|
784
|
+
{ "seeds-combobox-token-input-group--invalid": !!$isInvalid },
|
|
785
|
+
className
|
|
786
|
+
),
|
|
787
|
+
...rest
|
|
788
|
+
}
|
|
789
|
+
));
|
|
790
|
+
ComboboxTokenInputGroup.displayName = "ComboboxTokenInputGroup";
|
|
791
|
+
var Token = React8.forwardRef(({ className, ...rest }, ref) => /* @__PURE__ */ jsx6("span", { ref, className: cn("seeds-combobox-token", className), ...rest }));
|
|
792
|
+
Token.displayName = "Token";
|
|
793
|
+
var TokenRemove = React8.forwardRef(({ className, ...rest }, ref) => /* @__PURE__ */ jsx6(
|
|
794
|
+
"button",
|
|
795
|
+
{
|
|
796
|
+
ref,
|
|
797
|
+
className: cn("seeds-combobox-token-remove", className),
|
|
798
|
+
...rest
|
|
799
|
+
}
|
|
800
|
+
));
|
|
801
|
+
TokenRemove.displayName = "TokenRemove";
|
|
802
|
+
var SearchableSelectTrigger = React8.forwardRef(({ $isInvalid, className, ...rest }, ref) => /* @__PURE__ */ jsx6(
|
|
803
|
+
Combobox.Trigger,
|
|
804
|
+
{
|
|
805
|
+
ref,
|
|
806
|
+
className: cn(
|
|
807
|
+
"seeds-searchable-select-trigger",
|
|
808
|
+
{ "seeds-searchable-select-trigger--invalid": !!$isInvalid },
|
|
809
|
+
className
|
|
810
|
+
),
|
|
811
|
+
...rest
|
|
812
|
+
}
|
|
813
|
+
));
|
|
814
|
+
SearchableSelectTrigger.displayName = "SearchableSelectTrigger";
|
|
815
|
+
var SearchableSelectTriggerIcon = React8.forwardRef(({ className, ...rest }, ref) => /* @__PURE__ */ jsx6(
|
|
816
|
+
Combobox.Icon,
|
|
817
|
+
{
|
|
818
|
+
ref,
|
|
819
|
+
className: cn("seeds-searchable-select-trigger-icon", className),
|
|
820
|
+
...rest
|
|
821
|
+
}
|
|
822
|
+
));
|
|
823
|
+
SearchableSelectTriggerIcon.displayName = "SearchableSelectTriggerIcon";
|
|
824
|
+
var SearchableSelectPlaceholder = React8.forwardRef(({ className, ...rest }, ref) => /* @__PURE__ */ jsx6(
|
|
825
|
+
"span",
|
|
826
|
+
{
|
|
827
|
+
ref,
|
|
828
|
+
className: cn("seeds-searchable-select-placeholder", className),
|
|
829
|
+
...rest
|
|
830
|
+
}
|
|
831
|
+
));
|
|
832
|
+
SearchableSelectPlaceholder.displayName = "SearchableSelectPlaceholder";
|
|
1036
833
|
var SearchableSelectPopup = ComboboxPopup;
|
|
1037
|
-
var SearchableSelectSearchContainer =
|
|
1038
|
-
|
|
1039
|
-
|
|
1040
|
-
|
|
1041
|
-
|
|
1042
|
-
|
|
1043
|
-
|
|
1044
|
-
|
|
1045
|
-
|
|
1046
|
-
|
|
1047
|
-
|
|
1048
|
-
|
|
1049
|
-
|
|
1050
|
-
|
|
1051
|
-
|
|
1052
|
-
|
|
1053
|
-
|
|
1054
|
-
|
|
1055
|
-
|
|
1056
|
-
|
|
1057
|
-
|
|
1058
|
-
|
|
1059
|
-
|
|
1060
|
-
|
|
1061
|
-
|
|
1062
|
-
|
|
1063
|
-
|
|
1064
|
-
|
|
1065
|
-
|
|
1066
|
-
|
|
1067
|
-
|
|
1068
|
-
|
|
1069
|
-
|
|
1070
|
-
|
|
1071
|
-
|
|
1072
|
-
|
|
1073
|
-
|
|
1074
|
-
flex-wrap: wrap;
|
|
1075
|
-
min-width: 160px;
|
|
1076
|
-
border-radius: ${({ theme }) => theme.radii[500]};
|
|
1077
|
-
border: 1px solid ${({ theme }) => theme.colors.form.border.base};
|
|
1078
|
-
background: ${({ theme }) => theme.colors.form.background.base};
|
|
1079
|
-
color: ${({ theme }) => theme.colors.text.body};
|
|
1080
|
-
padding: ${({ theme }) => theme.space[200]} ${({ theme }) => theme.space[300]};
|
|
1081
|
-
gap: ${({ theme }) => theme.space[200]};
|
|
1082
|
-
cursor: default;
|
|
1083
|
-
text-align: left;
|
|
1084
|
-
outline: none;
|
|
1085
|
-
user-select: none;
|
|
1086
|
-
transition: border-color ${({ theme }) => theme.duration.fast}
|
|
1087
|
-
${({ theme }) => theme.easing.ease_in},
|
|
1088
|
-
box-shadow ${({ theme }) => theme.duration.fast}
|
|
1089
|
-
${({ theme }) => theme.easing.ease_in};
|
|
1090
|
-
|
|
1091
|
-
&:focus-visible {
|
|
1092
|
-
${focusRing2}
|
|
1093
|
-
}
|
|
1094
|
-
|
|
1095
|
-
&[data-popup-open] {
|
|
1096
|
-
border-color: ${({ theme }) => theme.colors.blue[600]};
|
|
1097
|
-
}
|
|
1098
|
-
|
|
1099
|
-
&[data-popup-open] [data-chevron] {
|
|
1100
|
-
transform: rotate(-180deg);
|
|
1101
|
-
}
|
|
1102
|
-
|
|
1103
|
-
&[data-disabled] {
|
|
1104
|
-
opacity: 0.4;
|
|
1105
|
-
cursor: not-allowed;
|
|
834
|
+
var SearchableSelectSearchContainer = React8.forwardRef(({ className, ...rest }, ref) => /* @__PURE__ */ jsx6(
|
|
835
|
+
"div",
|
|
836
|
+
{
|
|
837
|
+
ref,
|
|
838
|
+
className: cn("seeds-searchable-select-search-container", className),
|
|
839
|
+
...rest
|
|
840
|
+
}
|
|
841
|
+
));
|
|
842
|
+
SearchableSelectSearchContainer.displayName = "SearchableSelectSearchContainer";
|
|
843
|
+
var SearchableSelectInput = React8.forwardRef(({ className, ...rest }, ref) => /* @__PURE__ */ jsx6(
|
|
844
|
+
Combobox.Input,
|
|
845
|
+
{
|
|
846
|
+
ref,
|
|
847
|
+
className: cn("seeds-searchable-select-input", className),
|
|
848
|
+
...rest
|
|
849
|
+
}
|
|
850
|
+
));
|
|
851
|
+
SearchableSelectInput.displayName = "SearchableSelectInput";
|
|
852
|
+
var SearchableSelectList = React8.forwardRef(({ className, ...rest }, ref) => /* @__PURE__ */ jsx6(
|
|
853
|
+
Combobox.List,
|
|
854
|
+
{
|
|
855
|
+
ref,
|
|
856
|
+
className: cn("seeds-searchable-select-list", className),
|
|
857
|
+
...rest
|
|
858
|
+
}
|
|
859
|
+
));
|
|
860
|
+
SearchableSelectList.displayName = "SearchableSelectList";
|
|
861
|
+
var SearchableSelectTokenTrigger = React8.forwardRef(({ $isInvalid, className, ...rest }, ref) => /* @__PURE__ */ jsx6(
|
|
862
|
+
Combobox.Trigger,
|
|
863
|
+
{
|
|
864
|
+
ref,
|
|
865
|
+
className: cn(
|
|
866
|
+
"seeds-searchable-select-token-trigger",
|
|
867
|
+
{ "seeds-searchable-select-token-trigger--invalid": !!$isInvalid },
|
|
868
|
+
className
|
|
869
|
+
),
|
|
870
|
+
...rest
|
|
1106
871
|
}
|
|
1107
|
-
|
|
1108
|
-
|
|
1109
|
-
`;
|
|
872
|
+
));
|
|
873
|
+
SearchableSelectTokenTrigger.displayName = "SearchableSelectTokenTrigger";
|
|
1110
874
|
|
|
1111
875
|
// src/v3/Common/ComboboxItem.tsx
|
|
1112
|
-
import { jsx as
|
|
876
|
+
import { jsx as jsx7, jsxs as jsxs4 } from "react/jsx-runtime";
|
|
1113
877
|
function ComboboxItemInner({
|
|
1114
878
|
value,
|
|
1115
879
|
itemId,
|
|
@@ -1132,11 +896,11 @@ function ComboboxItemInner({
|
|
|
1132
896
|
disabled,
|
|
1133
897
|
"data-qa-menu-item": label,
|
|
1134
898
|
children: [
|
|
1135
|
-
inputType === "radio" ? /* @__PURE__ */
|
|
899
|
+
inputType === "radio" ? /* @__PURE__ */ jsx7(
|
|
1136
900
|
ComboboxItemIndicator,
|
|
1137
901
|
{
|
|
1138
902
|
keepMounted: true,
|
|
1139
|
-
render: (_props, state) => /* @__PURE__ */
|
|
903
|
+
render: (_props, state) => /* @__PURE__ */ jsx7(
|
|
1140
904
|
Radio2,
|
|
1141
905
|
{
|
|
1142
906
|
checked: state.selected,
|
|
@@ -1148,11 +912,11 @@ function ComboboxItemInner({
|
|
|
1148
912
|
}
|
|
1149
913
|
)
|
|
1150
914
|
}
|
|
1151
|
-
) : inputType === "checkbox" ? /* @__PURE__ */
|
|
915
|
+
) : inputType === "checkbox" ? /* @__PURE__ */ jsx7(
|
|
1152
916
|
ComboboxItemIndicator,
|
|
1153
917
|
{
|
|
1154
918
|
keepMounted: true,
|
|
1155
|
-
render: (_props, state) => /* @__PURE__ */
|
|
919
|
+
render: (_props, state) => /* @__PURE__ */ jsx7(
|
|
1156
920
|
Checkbox3,
|
|
1157
921
|
{
|
|
1158
922
|
checked: state.selected,
|
|
@@ -1164,17 +928,17 @@ function ComboboxItemInner({
|
|
|
1164
928
|
}
|
|
1165
929
|
)
|
|
1166
930
|
}
|
|
1167
|
-
) : inputType === "icon" ? /* @__PURE__ */
|
|
1168
|
-
/* @__PURE__ */
|
|
931
|
+
) : inputType === "icon" ? /* @__PURE__ */ jsx7(ComboboxItemIndicator, { keepMounted: true, children: /* @__PURE__ */ jsx7(CheckIcon2, {}) }) : null,
|
|
932
|
+
/* @__PURE__ */ jsx7("span", { children: renderItem ? renderItem() : label })
|
|
1169
933
|
]
|
|
1170
934
|
}
|
|
1171
935
|
);
|
|
1172
936
|
}
|
|
1173
|
-
var ComboboxItem2 =
|
|
937
|
+
var ComboboxItem2 = React9.forwardRef(ComboboxItemInner);
|
|
1174
938
|
var ComboboxItem_default = ComboboxItem2;
|
|
1175
939
|
|
|
1176
940
|
// src/v3/Common/VirtualizedComboboxList.tsx
|
|
1177
|
-
import * as
|
|
941
|
+
import * as React10 from "react";
|
|
1178
942
|
import { Combobox as Combobox2 } from "@base-ui/react/combobox";
|
|
1179
943
|
import { useVirtualizer } from "@tanstack/react-virtual";
|
|
1180
944
|
|
|
@@ -1193,7 +957,7 @@ function isCreatableSentinel(v) {
|
|
|
1193
957
|
}
|
|
1194
958
|
|
|
1195
959
|
// src/v3/Common/VirtualizedComboboxList.tsx
|
|
1196
|
-
import { jsx as
|
|
960
|
+
import { jsx as jsx8, jsxs as jsxs5 } from "react/jsx-runtime";
|
|
1197
961
|
var ITEM_HEIGHT = 32;
|
|
1198
962
|
function isGroupHeaderSentinel(v) {
|
|
1199
963
|
return typeof v === "object" && v !== null && "__groupHeader" in v;
|
|
@@ -1215,7 +979,7 @@ function VirtualizedComboboxList({
|
|
|
1215
979
|
renderCreatableItem
|
|
1216
980
|
}) {
|
|
1217
981
|
const filteredItems = Combobox2.useFilteredItems();
|
|
1218
|
-
const scrollElementRef =
|
|
982
|
+
const scrollElementRef = React10.useRef(null);
|
|
1219
983
|
const virtualizer = useVirtualizer({
|
|
1220
984
|
enabled: open,
|
|
1221
985
|
count: filteredItems.length,
|
|
@@ -1227,8 +991,8 @@ function VirtualizedComboboxList({
|
|
|
1227
991
|
scrollPaddingStart: 4,
|
|
1228
992
|
scrollPaddingEnd: 4
|
|
1229
993
|
});
|
|
1230
|
-
|
|
1231
|
-
const handleScrollRef =
|
|
994
|
+
React10.useImperativeHandle(virtualizerRef, () => virtualizer);
|
|
995
|
+
const handleScrollRef = React10.useCallback(
|
|
1232
996
|
(el) => {
|
|
1233
997
|
scrollElementRef.current = el;
|
|
1234
998
|
if (el) requestAnimationFrame(() => virtualizer.measure());
|
|
@@ -1238,7 +1002,7 @@ function VirtualizedComboboxList({
|
|
|
1238
1002
|
if (!filteredItems.length) return null;
|
|
1239
1003
|
const selectedArray = Array.isArray(value) ? value : value != null ? [value] : [];
|
|
1240
1004
|
const totalSize = virtualizer.getTotalSize();
|
|
1241
|
-
return /* @__PURE__ */
|
|
1005
|
+
return /* @__PURE__ */ jsx8(
|
|
1242
1006
|
"div",
|
|
1243
1007
|
{
|
|
1244
1008
|
role: "presentation",
|
|
@@ -1249,7 +1013,7 @@ function VirtualizedComboboxList({
|
|
|
1249
1013
|
overflowY: "auto",
|
|
1250
1014
|
overscrollBehavior: "contain"
|
|
1251
1015
|
},
|
|
1252
|
-
children: /* @__PURE__ */
|
|
1016
|
+
children: /* @__PURE__ */ jsx8(
|
|
1253
1017
|
"div",
|
|
1254
1018
|
{
|
|
1255
1019
|
role: "presentation",
|
|
@@ -1266,7 +1030,7 @@ function VirtualizedComboboxList({
|
|
|
1266
1030
|
boxSizing: "border-box"
|
|
1267
1031
|
};
|
|
1268
1032
|
if (isPlaceholderSentinel(row)) {
|
|
1269
|
-
return /* @__PURE__ */
|
|
1033
|
+
return /* @__PURE__ */ jsx8(
|
|
1270
1034
|
ComboboxItem_default,
|
|
1271
1035
|
{
|
|
1272
1036
|
index: virtualItem.index,
|
|
@@ -1294,7 +1058,7 @@ function VirtualizedComboboxList({
|
|
|
1294
1058
|
style: baseStyle,
|
|
1295
1059
|
ref: virtualizer.measureElement,
|
|
1296
1060
|
children: [
|
|
1297
|
-
/* @__PURE__ */
|
|
1061
|
+
/* @__PURE__ */ jsx8(ComboboxGroupHeaderCheckbox, { $state: state, id: "__selectAll" }),
|
|
1298
1062
|
"Select all"
|
|
1299
1063
|
]
|
|
1300
1064
|
},
|
|
@@ -1318,7 +1082,7 @@ function VirtualizedComboboxList({
|
|
|
1318
1082
|
style: baseStyle,
|
|
1319
1083
|
ref: virtualizer.measureElement,
|
|
1320
1084
|
children: [
|
|
1321
|
-
/* @__PURE__ */
|
|
1085
|
+
/* @__PURE__ */ jsx8(
|
|
1322
1086
|
ComboboxGroupHeaderCheckbox,
|
|
1323
1087
|
{
|
|
1324
1088
|
$state: state,
|
|
@@ -1343,7 +1107,7 @@ function VirtualizedComboboxList({
|
|
|
1343
1107
|
return null;
|
|
1344
1108
|
}
|
|
1345
1109
|
const item = row;
|
|
1346
|
-
return /* @__PURE__ */
|
|
1110
|
+
return /* @__PURE__ */ jsx8(
|
|
1347
1111
|
ComboboxItem_default,
|
|
1348
1112
|
{
|
|
1349
1113
|
index: virtualItem.index,
|
|
@@ -1367,7 +1131,7 @@ function VirtualizedComboboxList({
|
|
|
1367
1131
|
}
|
|
1368
1132
|
|
|
1369
1133
|
// src/v3/SingleCombobox.tsx
|
|
1370
|
-
import { jsx as
|
|
1134
|
+
import { jsx as jsx9, jsxs as jsxs6 } from "react/jsx-runtime";
|
|
1371
1135
|
function SingleCombobox(props) {
|
|
1372
1136
|
const {
|
|
1373
1137
|
id,
|
|
@@ -1393,18 +1157,18 @@ function SingleCombobox(props) {
|
|
|
1393
1157
|
const defaultSelectedItemId = props.defaultSelectedItemId;
|
|
1394
1158
|
const onSelectedItemIdChange = props.onSelectedItemIdChange;
|
|
1395
1159
|
const { containerRef, portalContainer } = useSeedsPortalContainer();
|
|
1396
|
-
const [open, setOpen] =
|
|
1397
|
-
const virtualizerRef =
|
|
1160
|
+
const [open, setOpen] = React11.useState(false);
|
|
1161
|
+
const virtualizerRef = React11.useRef(null);
|
|
1398
1162
|
const onInputKeyDownCapture = useSuppressEscapeClear(open);
|
|
1399
1163
|
const isControlled = selectedItemId !== void 0;
|
|
1400
|
-
const idToItem =
|
|
1164
|
+
const idToItem = React11.useCallback(
|
|
1401
1165
|
(id2) => {
|
|
1402
1166
|
if (id2 == null) return null;
|
|
1403
1167
|
return data.find((d) => String(d.id) === String(id2)) ?? null;
|
|
1404
1168
|
},
|
|
1405
1169
|
[data]
|
|
1406
1170
|
);
|
|
1407
|
-
const [internalValue, setInternalValue] =
|
|
1171
|
+
const [internalValue, setInternalValue] = React11.useState(
|
|
1408
1172
|
() => idToItem(defaultSelectedItemId)
|
|
1409
1173
|
);
|
|
1410
1174
|
const value = isControlled ? idToItem(selectedItemId) : internalValue;
|
|
@@ -1416,12 +1180,12 @@ function SingleCombobox(props) {
|
|
|
1416
1180
|
onSelectedItemIdChange(newItem ? newItem.id : null);
|
|
1417
1181
|
}
|
|
1418
1182
|
}
|
|
1419
|
-
const groups =
|
|
1183
|
+
const groups = React11.useMemo(
|
|
1420
1184
|
() => groupBy ? groupItems(data, groupBy) : null,
|
|
1421
1185
|
[data, groupBy]
|
|
1422
1186
|
);
|
|
1423
1187
|
return /* @__PURE__ */ jsxs6(Field, { $fullWidth: fullWidth, children: [
|
|
1424
|
-
/* @__PURE__ */
|
|
1188
|
+
/* @__PURE__ */ jsx9("div", { ref: containerRef, style: { position: "relative" } }),
|
|
1425
1189
|
/* @__PURE__ */ jsxs6(
|
|
1426
1190
|
Combobox3.Root,
|
|
1427
1191
|
{
|
|
@@ -1456,7 +1220,7 @@ function SingleCombobox(props) {
|
|
|
1456
1220
|
$isInvalid: isInvalid,
|
|
1457
1221
|
onKeyDownCapture: onInputKeyDownCapture,
|
|
1458
1222
|
children: [
|
|
1459
|
-
/* @__PURE__ */
|
|
1223
|
+
/* @__PURE__ */ jsx9(
|
|
1460
1224
|
ComboboxInput,
|
|
1461
1225
|
{
|
|
1462
1226
|
placeholder,
|
|
@@ -1467,19 +1231,19 @@ function SingleCombobox(props) {
|
|
|
1467
1231
|
}
|
|
1468
1232
|
),
|
|
1469
1233
|
/* @__PURE__ */ jsxs6(ComboboxActionButtons, { children: [
|
|
1470
|
-
/* @__PURE__ */
|
|
1471
|
-
/* @__PURE__ */
|
|
1234
|
+
/* @__PURE__ */ jsx9(ComboboxClear, { "aria-label": "Clear selection", children: /* @__PURE__ */ jsx9(ClearIcon, {}) }),
|
|
1235
|
+
/* @__PURE__ */ jsx9(ComboboxTrigger, { "aria-label": "Open popup", children: /* @__PURE__ */ jsx9(StyledChevron, { $isOpen: open, children: /* @__PURE__ */ jsx9(ChevronIcon, {}) }) })
|
|
1472
1236
|
] })
|
|
1473
1237
|
]
|
|
1474
1238
|
}
|
|
1475
1239
|
),
|
|
1476
|
-
/* @__PURE__ */
|
|
1240
|
+
/* @__PURE__ */ jsx9(Combobox3.Portal, { container: portalContainer, children: /* @__PURE__ */ jsx9(ComboboxPositioner, { sideOffset: 4, children: /* @__PURE__ */ jsxs6(
|
|
1477
1241
|
ComboboxPopup,
|
|
1478
1242
|
{
|
|
1479
1243
|
style: isVirtualized ? { display: "flex", flexDirection: "column" } : void 0,
|
|
1480
1244
|
children: [
|
|
1481
|
-
/* @__PURE__ */
|
|
1482
|
-
/* @__PURE__ */
|
|
1245
|
+
/* @__PURE__ */ jsx9(ComboboxEmpty, { children: emptyText }),
|
|
1246
|
+
/* @__PURE__ */ jsx9(
|
|
1483
1247
|
ComboboxList,
|
|
1484
1248
|
{
|
|
1485
1249
|
"aria-label": ariaLabel,
|
|
@@ -1491,7 +1255,7 @@ function SingleCombobox(props) {
|
|
|
1491
1255
|
display: "flex",
|
|
1492
1256
|
flexDirection: "column"
|
|
1493
1257
|
} : void 0,
|
|
1494
|
-
children: isVirtualized ? /* @__PURE__ */
|
|
1258
|
+
children: isVirtualized ? /* @__PURE__ */ jsx9(
|
|
1495
1259
|
VirtualizedComboboxList,
|
|
1496
1260
|
{
|
|
1497
1261
|
open,
|
|
@@ -1504,10 +1268,10 @@ function SingleCombobox(props) {
|
|
|
1504
1268
|
renderItem,
|
|
1505
1269
|
renderGroupHeading
|
|
1506
1270
|
}
|
|
1507
|
-
) : children ? children : groups ? ((group, index) => /* @__PURE__ */ jsxs6(
|
|
1271
|
+
) : children ? children : groups ? ((group, index) => /* @__PURE__ */ jsxs6(React11.Fragment, { children: [
|
|
1508
1272
|
/* @__PURE__ */ jsxs6(ComboboxGroup, { items: group.items, children: [
|
|
1509
|
-
/* @__PURE__ */
|
|
1510
|
-
/* @__PURE__ */
|
|
1273
|
+
/* @__PURE__ */ jsx9(ComboboxGroupLabel, { children: renderGroupHeading ? renderGroupHeading(group.value) : group.value }),
|
|
1274
|
+
/* @__PURE__ */ jsx9(Combobox3.Collection, { children: (item) => /* @__PURE__ */ jsx9(
|
|
1511
1275
|
ComboboxItem_default,
|
|
1512
1276
|
{
|
|
1513
1277
|
value: item,
|
|
@@ -1520,8 +1284,8 @@ function SingleCombobox(props) {
|
|
|
1520
1284
|
item.id
|
|
1521
1285
|
) })
|
|
1522
1286
|
] }),
|
|
1523
|
-
index < groups.length - 1 && /* @__PURE__ */
|
|
1524
|
-
] }, group.value)) : ((item) => /* @__PURE__ */
|
|
1287
|
+
index < groups.length - 1 && /* @__PURE__ */ jsx9(ComboboxSeparator, {})
|
|
1288
|
+
] }, group.value)) : ((item) => /* @__PURE__ */ jsx9(
|
|
1525
1289
|
ComboboxItem_default,
|
|
1526
1290
|
{
|
|
1527
1291
|
value: item,
|
|
@@ -1545,11 +1309,11 @@ function SingleCombobox(props) {
|
|
|
1545
1309
|
}
|
|
1546
1310
|
|
|
1547
1311
|
// src/v3/MultiCombobox.tsx
|
|
1548
|
-
import * as
|
|
1312
|
+
import * as React12 from "react";
|
|
1549
1313
|
import { Combobox as Combobox4 } from "@base-ui/react/combobox";
|
|
1550
1314
|
import "@tanstack/react-virtual";
|
|
1551
1315
|
import Icon3 from "@sproutsocial/seeds-react-icon";
|
|
1552
|
-
import { Fragment as Fragment6, jsx as
|
|
1316
|
+
import { Fragment as Fragment6, jsx as jsx10, jsxs as jsxs7 } from "react/jsx-runtime";
|
|
1553
1317
|
function makeGroupHeaderSentinel(groupName) {
|
|
1554
1318
|
return { __groupHeader: true, groupName };
|
|
1555
1319
|
}
|
|
@@ -1600,31 +1364,31 @@ function MultiCombobox(props) {
|
|
|
1600
1364
|
const defaultSelectedItemIds = props.defaultSelectedItemIds;
|
|
1601
1365
|
const onSelectedItemIdsChange = props.onSelectedItemIdsChange;
|
|
1602
1366
|
const { containerRef, portalContainer } = useSeedsPortalContainer();
|
|
1603
|
-
const [open, setOpen] =
|
|
1604
|
-
const [internalInputValue, setInternalInputValue] =
|
|
1605
|
-
const skipNextInputChangeRef =
|
|
1606
|
-
const virtualizerRef =
|
|
1607
|
-
const inputRef =
|
|
1367
|
+
const [open, setOpen] = React12.useState(false);
|
|
1368
|
+
const [internalInputValue, setInternalInputValue] = React12.useState("");
|
|
1369
|
+
const skipNextInputChangeRef = React12.useRef(false);
|
|
1370
|
+
const virtualizerRef = React12.useRef(null);
|
|
1371
|
+
const inputRef = React12.useRef(null);
|
|
1608
1372
|
const onInputKeyDownCapture = useSuppressEscapeClear(open);
|
|
1609
1373
|
const isControlled = selectedItemIds !== void 0;
|
|
1610
|
-
const idsToItems =
|
|
1374
|
+
const idsToItems = React12.useCallback(
|
|
1611
1375
|
(ids) => ids.map((id2) => data.find((d) => d.id === id2)).filter((d) => d != null),
|
|
1612
1376
|
[data]
|
|
1613
1377
|
);
|
|
1614
|
-
const [internalValue, setInternalValue] =
|
|
1378
|
+
const [internalValue, setInternalValue] = React12.useState(
|
|
1615
1379
|
() => defaultSelectedItemIds ? idsToItems(defaultSelectedItemIds) : []
|
|
1616
1380
|
);
|
|
1617
1381
|
const value = isControlled ? idsToItems(selectedItemIds) : internalValue;
|
|
1618
|
-
const visibleData =
|
|
1382
|
+
const visibleData = React12.useMemo(
|
|
1619
1383
|
() => removeSelectedItems ? data.filter((item) => !value.some((v) => v.id === item.id)) : data,
|
|
1620
1384
|
[data, value, removeSelectedItems]
|
|
1621
1385
|
);
|
|
1622
|
-
const groups =
|
|
1386
|
+
const groups = React12.useMemo(
|
|
1623
1387
|
() => groupBy ? groupItems(visibleData, groupBy) : null,
|
|
1624
1388
|
[visibleData, groupBy]
|
|
1625
1389
|
);
|
|
1626
1390
|
const currentInputValue = inputValue ?? internalInputValue;
|
|
1627
|
-
const creatableSentinel =
|
|
1391
|
+
const creatableSentinel = React12.useMemo(() => {
|
|
1628
1392
|
if (!creatableProp) return null;
|
|
1629
1393
|
const trimmed = currentInputValue.trim();
|
|
1630
1394
|
if (!trimmed) return null;
|
|
@@ -1635,7 +1399,7 @@ function MultiCombobox(props) {
|
|
|
1635
1399
|
if (exactExists) return null;
|
|
1636
1400
|
return makeCreatableSentinel(trimmed);
|
|
1637
1401
|
}, [creatableProp, currentInputValue, data, itemToString]);
|
|
1638
|
-
const flatItems =
|
|
1402
|
+
const flatItems = React12.useMemo(() => {
|
|
1639
1403
|
if (!selectHeadings && !selectAll) return null;
|
|
1640
1404
|
if (!groups && !selectAll) return null;
|
|
1641
1405
|
const rows = [];
|
|
@@ -1730,7 +1494,7 @@ function MultiCombobox(props) {
|
|
|
1730
1494
|
const selectedCount = value.length;
|
|
1731
1495
|
const state = selectedCount === 0 ? "none" : selectedCount === totalCount ? "all" : "partial";
|
|
1732
1496
|
return /* @__PURE__ */ jsxs7(ComboboxSelectAllItem, { value: row, children: [
|
|
1733
|
-
/* @__PURE__ */
|
|
1497
|
+
/* @__PURE__ */ jsx10(ComboboxGroupHeaderCheckbox, { $state: state, id: "__selectAll" }),
|
|
1734
1498
|
selectAllLabel
|
|
1735
1499
|
] }, "__selectAll");
|
|
1736
1500
|
}
|
|
@@ -1747,7 +1511,7 @@ function MultiCombobox(props) {
|
|
|
1747
1511
|
value: row,
|
|
1748
1512
|
disabled: isGroupHeaderDisabled?.(row.groupName),
|
|
1749
1513
|
children: [
|
|
1750
|
-
/* @__PURE__ */
|
|
1514
|
+
/* @__PURE__ */ jsx10(
|
|
1751
1515
|
ComboboxGroupHeaderCheckbox,
|
|
1752
1516
|
{
|
|
1753
1517
|
$state: state,
|
|
@@ -1764,7 +1528,7 @@ function MultiCombobox(props) {
|
|
|
1764
1528
|
return renderCreatableItem(row);
|
|
1765
1529
|
}
|
|
1766
1530
|
const item = row;
|
|
1767
|
-
return /* @__PURE__ */
|
|
1531
|
+
return /* @__PURE__ */ jsx10(
|
|
1768
1532
|
ComboboxItem_default,
|
|
1769
1533
|
{
|
|
1770
1534
|
value: item,
|
|
@@ -1778,7 +1542,7 @@ function MultiCombobox(props) {
|
|
|
1778
1542
|
);
|
|
1779
1543
|
}
|
|
1780
1544
|
function renderCreatableItem(sentinel, style, index, measureRef) {
|
|
1781
|
-
return /* @__PURE__ */
|
|
1545
|
+
return /* @__PURE__ */ jsx10(
|
|
1782
1546
|
ComboboxItem_default,
|
|
1783
1547
|
{
|
|
1784
1548
|
value: sentinel,
|
|
@@ -1786,7 +1550,7 @@ function MultiCombobox(props) {
|
|
|
1786
1550
|
label: `Create "${sentinel.label}"`,
|
|
1787
1551
|
inputType: "none",
|
|
1788
1552
|
renderItem: () => /* @__PURE__ */ jsxs7(Fragment6, { children: [
|
|
1789
|
-
/* @__PURE__ */
|
|
1553
|
+
/* @__PURE__ */ jsx10(Icon3, { name: "plus-outline", size: "mini" }),
|
|
1790
1554
|
`Create "${sentinel.label}"`
|
|
1791
1555
|
] }),
|
|
1792
1556
|
style,
|
|
@@ -1802,7 +1566,7 @@ function MultiCombobox(props) {
|
|
|
1802
1566
|
const hasSentinels = selectAll || selectHeadings;
|
|
1803
1567
|
const rootValue = hasSentinels ? [...value] : value;
|
|
1804
1568
|
return /* @__PURE__ */ jsxs7(Field, { $fullWidth: fullWidth, children: [
|
|
1805
|
-
/* @__PURE__ */
|
|
1569
|
+
/* @__PURE__ */ jsx10("div", { ref: containerRef, style: { position: "relative" } }),
|
|
1806
1570
|
/* @__PURE__ */ jsxs7(
|
|
1807
1571
|
Combobox4.Root,
|
|
1808
1572
|
{
|
|
@@ -1878,7 +1642,7 @@ function MultiCombobox(props) {
|
|
|
1878
1642
|
},
|
|
1879
1643
|
items: rootItems,
|
|
1880
1644
|
children: [
|
|
1881
|
-
/* @__PURE__ */
|
|
1645
|
+
/* @__PURE__ */ jsx10(
|
|
1882
1646
|
ComboboxTokenInputGroup,
|
|
1883
1647
|
{
|
|
1884
1648
|
$isInvalid: isInvalid,
|
|
@@ -1890,13 +1654,13 @@ function MultiCombobox(props) {
|
|
|
1890
1654
|
return /* @__PURE__ */ jsxs7(Fragment6, { children: [
|
|
1891
1655
|
visibleTokens.map((item) => /* @__PURE__ */ jsxs7(Token, { children: [
|
|
1892
1656
|
renderToken ? renderToken(item) : itemToString(item),
|
|
1893
|
-
/* @__PURE__ */
|
|
1657
|
+
/* @__PURE__ */ jsx10(
|
|
1894
1658
|
TokenRemove,
|
|
1895
1659
|
{
|
|
1896
1660
|
"aria-label": `Remove ${itemToString(item)}`,
|
|
1897
1661
|
onPointerDown: (e) => e.preventDefault(),
|
|
1898
1662
|
onClick: (e) => removeItem(item, e),
|
|
1899
|
-
children: /* @__PURE__ */
|
|
1663
|
+
children: /* @__PURE__ */ jsx10(Icon3, { name: "x-outline", size: "mini" })
|
|
1900
1664
|
}
|
|
1901
1665
|
)
|
|
1902
1666
|
] }, item.id)),
|
|
@@ -1906,7 +1670,7 @@ function MultiCombobox(props) {
|
|
|
1906
1670
|
] }, "__overflow")
|
|
1907
1671
|
] });
|
|
1908
1672
|
})(),
|
|
1909
|
-
/* @__PURE__ */
|
|
1673
|
+
/* @__PURE__ */ jsx10(
|
|
1910
1674
|
ComboboxTokenInput,
|
|
1911
1675
|
{
|
|
1912
1676
|
ref: inputRef,
|
|
@@ -1918,21 +1682,21 @@ function MultiCombobox(props) {
|
|
|
1918
1682
|
}
|
|
1919
1683
|
),
|
|
1920
1684
|
/* @__PURE__ */ jsxs7(ComboboxActionButtons, { children: [
|
|
1921
|
-
/* @__PURE__ */
|
|
1922
|
-
/* @__PURE__ */
|
|
1685
|
+
/* @__PURE__ */ jsx10(ComboboxClear, { "aria-label": "Clear all", children: /* @__PURE__ */ jsx10(ClearIcon, {}) }),
|
|
1686
|
+
/* @__PURE__ */ jsx10(ComboboxTrigger, { "aria-label": "Open popup", children: /* @__PURE__ */ jsx10(StyledChevron, { $isOpen: open, children: /* @__PURE__ */ jsx10(ChevronIcon, {}) }) })
|
|
1923
1687
|
] })
|
|
1924
1688
|
] })
|
|
1925
1689
|
}
|
|
1926
1690
|
),
|
|
1927
|
-
/* @__PURE__ */
|
|
1691
|
+
/* @__PURE__ */ jsx10(Combobox4.Portal, { container: portalContainer, children: /* @__PURE__ */ jsx10(ComboboxPositioner, { sideOffset: 4, children: /* @__PURE__ */ jsxs7(
|
|
1928
1692
|
ComboboxPopup,
|
|
1929
1693
|
{
|
|
1930
1694
|
"aria-busy": isLoading || void 0,
|
|
1931
1695
|
style: isVirtualized ? { display: "flex", flexDirection: "column" } : void 0,
|
|
1932
1696
|
children: [
|
|
1933
|
-
/* @__PURE__ */
|
|
1934
|
-
/* @__PURE__ */
|
|
1935
|
-
/* @__PURE__ */
|
|
1697
|
+
/* @__PURE__ */ jsx10(ComboboxStatus, { children: isLoading ? loadingText : null }),
|
|
1698
|
+
/* @__PURE__ */ jsx10(ComboboxEmpty, { children: isLoading ? null : emptyText }),
|
|
1699
|
+
/* @__PURE__ */ jsx10(
|
|
1936
1700
|
ComboboxList,
|
|
1937
1701
|
{
|
|
1938
1702
|
"aria-label": ariaLabel,
|
|
@@ -1944,7 +1708,7 @@ function MultiCombobox(props) {
|
|
|
1944
1708
|
display: "flex",
|
|
1945
1709
|
flexDirection: "column"
|
|
1946
1710
|
} : void 0,
|
|
1947
|
-
children: isVirtualized ? /* @__PURE__ */
|
|
1711
|
+
children: isVirtualized ? /* @__PURE__ */ jsx10(
|
|
1948
1712
|
VirtualizedComboboxList,
|
|
1949
1713
|
{
|
|
1950
1714
|
open,
|
|
@@ -1969,10 +1733,10 @@ function MultiCombobox(props) {
|
|
|
1969
1733
|
return renderCreatableItem(group);
|
|
1970
1734
|
}
|
|
1971
1735
|
const g = group;
|
|
1972
|
-
return /* @__PURE__ */ jsxs7(
|
|
1736
|
+
return /* @__PURE__ */ jsxs7(React12.Fragment, { children: [
|
|
1973
1737
|
/* @__PURE__ */ jsxs7(ComboboxGroup, { items: g.items, children: [
|
|
1974
|
-
/* @__PURE__ */
|
|
1975
|
-
/* @__PURE__ */
|
|
1738
|
+
/* @__PURE__ */ jsx10(ComboboxGroupLabel, { children: renderGroupHeading ? renderGroupHeading(g.value) : g.value }),
|
|
1739
|
+
/* @__PURE__ */ jsx10(Combobox4.Collection, { children: (item) => /* @__PURE__ */ jsx10(
|
|
1976
1740
|
ComboboxItem_default,
|
|
1977
1741
|
{
|
|
1978
1742
|
value: item,
|
|
@@ -1985,14 +1749,14 @@ function MultiCombobox(props) {
|
|
|
1985
1749
|
item.id
|
|
1986
1750
|
) })
|
|
1987
1751
|
] }),
|
|
1988
|
-
index < groups.length - 1 && /* @__PURE__ */
|
|
1752
|
+
index < groups.length - 1 && /* @__PURE__ */ jsx10(ComboboxSeparator, {})
|
|
1989
1753
|
] }, g.value);
|
|
1990
1754
|
}) : ((item) => {
|
|
1991
1755
|
if (isCreatableSentinel(item)) {
|
|
1992
1756
|
return renderCreatableItem(item);
|
|
1993
1757
|
}
|
|
1994
1758
|
const dataItem = item;
|
|
1995
|
-
return /* @__PURE__ */
|
|
1759
|
+
return /* @__PURE__ */ jsx10(
|
|
1996
1760
|
ComboboxItem_default,
|
|
1997
1761
|
{
|
|
1998
1762
|
value: dataItem,
|
|
@@ -2017,10 +1781,10 @@ function MultiCombobox(props) {
|
|
|
2017
1781
|
}
|
|
2018
1782
|
|
|
2019
1783
|
// src/v3/SingleSearchableSelect.tsx
|
|
2020
|
-
import * as
|
|
1784
|
+
import * as React13 from "react";
|
|
2021
1785
|
import { Combobox as Combobox5 } from "@base-ui/react/combobox";
|
|
2022
1786
|
import "@tanstack/react-virtual";
|
|
2023
|
-
import { Fragment as Fragment8, jsx as
|
|
1787
|
+
import { Fragment as Fragment8, jsx as jsx11, jsxs as jsxs8 } from "react/jsx-runtime";
|
|
2024
1788
|
function SingleSearchableSelect(props) {
|
|
2025
1789
|
const {
|
|
2026
1790
|
id,
|
|
@@ -2051,17 +1815,17 @@ function SingleSearchableSelect(props) {
|
|
|
2051
1815
|
const defaultSelectedItemId = props.defaultSelectedItemId;
|
|
2052
1816
|
const onSelectedItemIdChange = props.onSelectedItemIdChange;
|
|
2053
1817
|
const { containerRef, portalContainer } = useSeedsPortalContainer();
|
|
2054
|
-
const [open, setOpen] =
|
|
2055
|
-
const virtualizerRef =
|
|
1818
|
+
const [open, setOpen] = React13.useState(false);
|
|
1819
|
+
const virtualizerRef = React13.useRef(null);
|
|
2056
1820
|
const isControlled = selectedItemId !== void 0;
|
|
2057
|
-
const idToItem =
|
|
1821
|
+
const idToItem = React13.useCallback(
|
|
2058
1822
|
(id2) => {
|
|
2059
1823
|
if (id2 == null) return null;
|
|
2060
1824
|
return data.find((d) => String(d.id) === String(id2)) ?? null;
|
|
2061
1825
|
},
|
|
2062
1826
|
[data]
|
|
2063
1827
|
);
|
|
2064
|
-
const [internalValue, setInternalValue] =
|
|
1828
|
+
const [internalValue, setInternalValue] = React13.useState(
|
|
2065
1829
|
() => idToItem(defaultSelectedItemId)
|
|
2066
1830
|
);
|
|
2067
1831
|
const value = isControlled ? idToItem(selectedItemId) : internalValue;
|
|
@@ -2072,12 +1836,12 @@ function SingleSearchableSelect(props) {
|
|
|
2072
1836
|
onSelectedItemIdChange(realItem ? realItem.id : null);
|
|
2073
1837
|
}
|
|
2074
1838
|
}
|
|
2075
|
-
const groups =
|
|
1839
|
+
const groups = React13.useMemo(
|
|
2076
1840
|
() => groupBy ? groupItems(data, groupBy) : null,
|
|
2077
1841
|
[data, groupBy]
|
|
2078
1842
|
);
|
|
2079
1843
|
return /* @__PURE__ */ jsxs8(Field, { $fullWidth: fullWidth, children: [
|
|
2080
|
-
/* @__PURE__ */
|
|
1844
|
+
/* @__PURE__ */ jsx11("div", { ref: containerRef, style: { position: "relative" } }),
|
|
2081
1845
|
/* @__PURE__ */ jsxs8(
|
|
2082
1846
|
Combobox5.Root,
|
|
2083
1847
|
{
|
|
@@ -2120,27 +1884,27 @@ function SingleSearchableSelect(props) {
|
|
|
2120
1884
|
"aria-required": props.required || void 0,
|
|
2121
1885
|
$isInvalid: isInvalid,
|
|
2122
1886
|
children: [
|
|
2123
|
-
/* @__PURE__ */
|
|
2124
|
-
/* @__PURE__ */
|
|
1887
|
+
/* @__PURE__ */ jsx11(SearchableSelectPlaceholder, { children: /* @__PURE__ */ jsx11(Combobox5.Value, { placeholder, children: value ? renderSelection ? renderSelection(value) : itemToString(value) : placeholder }) }),
|
|
1888
|
+
/* @__PURE__ */ jsx11(SearchableSelectTriggerIcon, { children: /* @__PURE__ */ jsx11(StyledChevron, { "data-chevron": true, children: /* @__PURE__ */ jsx11(ChevronIcon, {}) }) })
|
|
2125
1889
|
]
|
|
2126
1890
|
}
|
|
2127
1891
|
),
|
|
2128
|
-
/* @__PURE__ */
|
|
1892
|
+
/* @__PURE__ */ jsx11(Combobox5.Portal, { container: portalContainer, children: /* @__PURE__ */ jsx11(ComboboxPositioner, { sideOffset: 4, children: /* @__PURE__ */ jsxs8(
|
|
2129
1893
|
SearchableSelectPopup,
|
|
2130
1894
|
{
|
|
2131
1895
|
"aria-busy": isLoading || void 0,
|
|
2132
1896
|
style: { display: "flex", flexDirection: "column" },
|
|
2133
1897
|
children: [
|
|
2134
|
-
/* @__PURE__ */
|
|
1898
|
+
/* @__PURE__ */ jsx11(SearchableSelectSearchContainer, { children: /* @__PURE__ */ jsx11(
|
|
2135
1899
|
SearchableSelectInput,
|
|
2136
1900
|
{
|
|
2137
1901
|
placeholder: searchPlaceholder,
|
|
2138
1902
|
autoFocus: true
|
|
2139
1903
|
}
|
|
2140
1904
|
) }),
|
|
2141
|
-
/* @__PURE__ */
|
|
2142
|
-
/* @__PURE__ */
|
|
2143
|
-
/* @__PURE__ */
|
|
1905
|
+
/* @__PURE__ */ jsx11(ComboboxStatus, { children: isLoading ? loadingText : null }),
|
|
1906
|
+
/* @__PURE__ */ jsx11(ComboboxEmpty, { children: isLoading ? null : emptyText }),
|
|
1907
|
+
/* @__PURE__ */ jsx11(
|
|
2144
1908
|
SearchableSelectList,
|
|
2145
1909
|
{
|
|
2146
1910
|
"aria-label": ariaLabel,
|
|
@@ -2152,7 +1916,7 @@ function SingleSearchableSelect(props) {
|
|
|
2152
1916
|
display: "flex",
|
|
2153
1917
|
flexDirection: "column"
|
|
2154
1918
|
} : void 0,
|
|
2155
|
-
children: isVirtualized ? /* @__PURE__ */
|
|
1919
|
+
children: isVirtualized ? /* @__PURE__ */ jsx11(
|
|
2156
1920
|
VirtualizedComboboxList,
|
|
2157
1921
|
{
|
|
2158
1922
|
open,
|
|
@@ -2164,10 +1928,10 @@ function SingleSearchableSelect(props) {
|
|
|
2164
1928
|
inputType,
|
|
2165
1929
|
renderItem
|
|
2166
1930
|
}
|
|
2167
|
-
) : children ? children : groups ? ((group, index) => /* @__PURE__ */ jsxs8(
|
|
1931
|
+
) : children ? children : groups ? ((group, index) => /* @__PURE__ */ jsxs8(React13.Fragment, { children: [
|
|
2168
1932
|
/* @__PURE__ */ jsxs8(ComboboxGroup, { items: group.items, children: [
|
|
2169
|
-
/* @__PURE__ */
|
|
2170
|
-
/* @__PURE__ */
|
|
1933
|
+
/* @__PURE__ */ jsx11(ComboboxGroupLabel, { children: renderGroupHeading ? renderGroupHeading(group.value) : group.value }),
|
|
1934
|
+
/* @__PURE__ */ jsx11(Combobox5.Collection, { children: (item) => /* @__PURE__ */ jsx11(
|
|
2171
1935
|
ComboboxItem_default,
|
|
2172
1936
|
{
|
|
2173
1937
|
value: item,
|
|
@@ -2180,9 +1944,9 @@ function SingleSearchableSelect(props) {
|
|
|
2180
1944
|
item.id
|
|
2181
1945
|
) })
|
|
2182
1946
|
] }),
|
|
2183
|
-
index < groups.length - 1 && /* @__PURE__ */
|
|
1947
|
+
index < groups.length - 1 && /* @__PURE__ */ jsx11(ComboboxSeparator, {})
|
|
2184
1948
|
] }, group.value)) : /* @__PURE__ */ jsxs8(Fragment8, { children: [
|
|
2185
|
-
includePlaceholderItem && /* @__PURE__ */
|
|
1949
|
+
includePlaceholderItem && /* @__PURE__ */ jsx11(
|
|
2186
1950
|
ComboboxItem_default,
|
|
2187
1951
|
{
|
|
2188
1952
|
value: makePlaceholderSentinel(placeholder),
|
|
@@ -2192,7 +1956,7 @@ function SingleSearchableSelect(props) {
|
|
|
2192
1956
|
},
|
|
2193
1957
|
"placeholder"
|
|
2194
1958
|
),
|
|
2195
|
-
/* @__PURE__ */
|
|
1959
|
+
/* @__PURE__ */ jsx11(Combobox5.Collection, { children: (item) => /* @__PURE__ */ jsx11(
|
|
2196
1960
|
ComboboxItem_default,
|
|
2197
1961
|
{
|
|
2198
1962
|
value: item,
|
|
@@ -2217,18 +1981,15 @@ function SingleSearchableSelect(props) {
|
|
|
2217
1981
|
}
|
|
2218
1982
|
|
|
2219
1983
|
// src/v3/MultiSearchableSelect.tsx
|
|
2220
|
-
import * as
|
|
1984
|
+
import * as React14 from "react";
|
|
2221
1985
|
import { Combobox as Combobox6 } from "@base-ui/react/combobox";
|
|
2222
1986
|
import "@tanstack/react-virtual";
|
|
2223
1987
|
import Icon4 from "@sproutsocial/seeds-react-icon";
|
|
2224
|
-
import
|
|
2225
|
-
|
|
2226
|
-
|
|
2227
|
-
|
|
2228
|
-
|
|
2229
|
-
text-overflow: ellipsis;
|
|
2230
|
-
white-space: nowrap;
|
|
2231
|
-
`;
|
|
1988
|
+
import { Fragment as Fragment10, jsx as jsx12, jsxs as jsxs9 } from "react/jsx-runtime";
|
|
1989
|
+
var SelectionText2 = ({
|
|
1990
|
+
className,
|
|
1991
|
+
...rest
|
|
1992
|
+
}) => /* @__PURE__ */ jsx12("span", { className: cn("seeds-select-selection-text", className), ...rest });
|
|
2232
1993
|
function makeGroupHeaderSentinel2(groupName) {
|
|
2233
1994
|
return { __groupHeader: true, groupName };
|
|
2234
1995
|
}
|
|
@@ -2275,29 +2036,29 @@ function MultiSearchableSelect(props) {
|
|
|
2275
2036
|
const defaultSelectedItemIds = props.defaultSelectedItemIds;
|
|
2276
2037
|
const onSelectedItemIdsChange = props.onSelectedItemIdsChange;
|
|
2277
2038
|
const { containerRef, portalContainer } = useSeedsPortalContainer();
|
|
2278
|
-
const [open, setOpen] =
|
|
2279
|
-
const [internalInputValue, setInternalInputValue] =
|
|
2280
|
-
const skipNextInputChangeRef =
|
|
2281
|
-
const virtualizerRef =
|
|
2039
|
+
const [open, setOpen] = React14.useState(false);
|
|
2040
|
+
const [internalInputValue, setInternalInputValue] = React14.useState("");
|
|
2041
|
+
const skipNextInputChangeRef = React14.useRef(false);
|
|
2042
|
+
const virtualizerRef = React14.useRef(null);
|
|
2282
2043
|
const isControlled = selectedItemIds !== void 0;
|
|
2283
|
-
const idsToItems =
|
|
2044
|
+
const idsToItems = React14.useCallback(
|
|
2284
2045
|
(ids) => ids.map((id2) => data.find((d) => d.id === id2)).filter((d) => d != null),
|
|
2285
2046
|
[data]
|
|
2286
2047
|
);
|
|
2287
|
-
const [internalValue, setInternalValue] =
|
|
2048
|
+
const [internalValue, setInternalValue] = React14.useState(
|
|
2288
2049
|
() => defaultSelectedItemIds ? idsToItems(defaultSelectedItemIds) : []
|
|
2289
2050
|
);
|
|
2290
2051
|
const value = isControlled ? idsToItems(selectedItemIds) : internalValue;
|
|
2291
|
-
const visibleData =
|
|
2052
|
+
const visibleData = React14.useMemo(
|
|
2292
2053
|
() => removeSelectedItems ? data.filter((item) => !value.some((v) => v.id === item.id)) : data,
|
|
2293
2054
|
[data, value, removeSelectedItems]
|
|
2294
2055
|
);
|
|
2295
|
-
const groups =
|
|
2056
|
+
const groups = React14.useMemo(
|
|
2296
2057
|
() => groupBy ? groupItems(visibleData, groupBy) : null,
|
|
2297
2058
|
[visibleData, groupBy]
|
|
2298
2059
|
);
|
|
2299
2060
|
const currentInputValue = internalInputValue;
|
|
2300
|
-
const creatableSentinel =
|
|
2061
|
+
const creatableSentinel = React14.useMemo(() => {
|
|
2301
2062
|
if (!creatableProp) return null;
|
|
2302
2063
|
const trimmed = currentInputValue.trim();
|
|
2303
2064
|
if (!trimmed) return null;
|
|
@@ -2308,7 +2069,7 @@ function MultiSearchableSelect(props) {
|
|
|
2308
2069
|
if (exactExists) return null;
|
|
2309
2070
|
return makeCreatableSentinel(trimmed);
|
|
2310
2071
|
}, [creatableProp, currentInputValue, data, itemToString]);
|
|
2311
|
-
const flatItems =
|
|
2072
|
+
const flatItems = React14.useMemo(() => {
|
|
2312
2073
|
if (!groups || !selectHeadings && !selectAll) return null;
|
|
2313
2074
|
const rows = [];
|
|
2314
2075
|
if (selectAll) rows.push(SELECT_ALL_SENTINEL2);
|
|
@@ -2389,7 +2150,7 @@ function MultiSearchableSelect(props) {
|
|
|
2389
2150
|
const selectedCount = value.length;
|
|
2390
2151
|
const state = selectedCount === 0 ? "none" : selectedCount === totalCount ? "all" : "partial";
|
|
2391
2152
|
return /* @__PURE__ */ jsxs9(ComboboxSelectAllItem, { value: row, children: [
|
|
2392
|
-
/* @__PURE__ */
|
|
2153
|
+
/* @__PURE__ */ jsx12(ComboboxGroupHeaderCheckbox, { $state: state, id: "__selectAll" }),
|
|
2393
2154
|
"Select all"
|
|
2394
2155
|
] }, "__selectAll");
|
|
2395
2156
|
}
|
|
@@ -2401,7 +2162,7 @@ function MultiSearchableSelect(props) {
|
|
|
2401
2162
|
).length;
|
|
2402
2163
|
const state = selectedCount === 0 ? "none" : selectedCount === groupItemsList.length ? "all" : "partial";
|
|
2403
2164
|
return /* @__PURE__ */ jsxs9(ComboboxGroupHeaderItem, { value: row, children: [
|
|
2404
|
-
/* @__PURE__ */
|
|
2165
|
+
/* @__PURE__ */ jsx12(
|
|
2405
2166
|
ComboboxGroupHeaderCheckbox,
|
|
2406
2167
|
{
|
|
2407
2168
|
$state: state,
|
|
@@ -2415,7 +2176,7 @@ function MultiSearchableSelect(props) {
|
|
|
2415
2176
|
return renderCreatableItem(row);
|
|
2416
2177
|
}
|
|
2417
2178
|
const item = row;
|
|
2418
|
-
return /* @__PURE__ */
|
|
2179
|
+
return /* @__PURE__ */ jsx12(
|
|
2419
2180
|
ComboboxItem_default,
|
|
2420
2181
|
{
|
|
2421
2182
|
value: item,
|
|
@@ -2429,7 +2190,7 @@ function MultiSearchableSelect(props) {
|
|
|
2429
2190
|
);
|
|
2430
2191
|
}
|
|
2431
2192
|
function renderCreatableItem(sentinel, style, index, measureRef) {
|
|
2432
|
-
return /* @__PURE__ */
|
|
2193
|
+
return /* @__PURE__ */ jsx12(
|
|
2433
2194
|
ComboboxItem_default,
|
|
2434
2195
|
{
|
|
2435
2196
|
value: sentinel,
|
|
@@ -2437,7 +2198,7 @@ function MultiSearchableSelect(props) {
|
|
|
2437
2198
|
label: `Create "${sentinel.label}"`,
|
|
2438
2199
|
inputType: "none",
|
|
2439
2200
|
renderItem: () => /* @__PURE__ */ jsxs9(Fragment10, { children: [
|
|
2440
|
-
/* @__PURE__ */
|
|
2201
|
+
/* @__PURE__ */ jsx12(Icon4, { name: "plus-outline", size: "mini" }),
|
|
2441
2202
|
`Create "${sentinel.label}"`
|
|
2442
2203
|
] }),
|
|
2443
2204
|
style,
|
|
@@ -2453,7 +2214,7 @@ function MultiSearchableSelect(props) {
|
|
|
2453
2214
|
const hasSentinels = selectAll || selectHeadings;
|
|
2454
2215
|
const rootValue = hasSentinels ? [...value] : value;
|
|
2455
2216
|
return /* @__PURE__ */ jsxs9(Field, { $fullWidth: fullWidth, children: [
|
|
2456
|
-
/* @__PURE__ */
|
|
2217
|
+
/* @__PURE__ */ jsx12("div", { ref: containerRef, style: { position: "relative" } }),
|
|
2457
2218
|
/* @__PURE__ */ jsxs9(
|
|
2458
2219
|
Combobox6.Root,
|
|
2459
2220
|
{
|
|
@@ -2534,27 +2295,27 @@ function MultiSearchableSelect(props) {
|
|
|
2534
2295
|
text,
|
|
2535
2296
|
overflowCount > 0 ? `, +${overflowCount}` : ""
|
|
2536
2297
|
] });
|
|
2537
|
-
})() : /* @__PURE__ */
|
|
2538
|
-
/* @__PURE__ */
|
|
2298
|
+
})() : /* @__PURE__ */ jsx12(SearchableSelectPlaceholder, { children: placeholder }),
|
|
2299
|
+
/* @__PURE__ */ jsx12(SearchableSelectTriggerIcon, { style: { marginLeft: "auto" }, children: /* @__PURE__ */ jsx12(StyledChevron, { "data-chevron": true, children: /* @__PURE__ */ jsx12(ChevronIcon, {}) }) })
|
|
2539
2300
|
]
|
|
2540
2301
|
}
|
|
2541
2302
|
),
|
|
2542
|
-
/* @__PURE__ */
|
|
2303
|
+
/* @__PURE__ */ jsx12(Combobox6.Portal, { container: portalContainer, children: /* @__PURE__ */ jsx12(ComboboxPositioner, { sideOffset: 4, children: /* @__PURE__ */ jsxs9(
|
|
2543
2304
|
SearchableSelectPopup,
|
|
2544
2305
|
{
|
|
2545
2306
|
"aria-busy": isLoading || void 0,
|
|
2546
2307
|
style: { display: "flex", flexDirection: "column" },
|
|
2547
2308
|
children: [
|
|
2548
|
-
/* @__PURE__ */
|
|
2309
|
+
/* @__PURE__ */ jsx12(SearchableSelectSearchContainer, { children: /* @__PURE__ */ jsx12(
|
|
2549
2310
|
SearchableSelectInput,
|
|
2550
2311
|
{
|
|
2551
2312
|
placeholder: searchPlaceholder,
|
|
2552
2313
|
autoFocus: true
|
|
2553
2314
|
}
|
|
2554
2315
|
) }),
|
|
2555
|
-
/* @__PURE__ */
|
|
2556
|
-
/* @__PURE__ */
|
|
2557
|
-
/* @__PURE__ */
|
|
2316
|
+
/* @__PURE__ */ jsx12(ComboboxStatus, { children: isLoading ? loadingText : null }),
|
|
2317
|
+
/* @__PURE__ */ jsx12(ComboboxEmpty, { children: isLoading ? null : emptyText }),
|
|
2318
|
+
/* @__PURE__ */ jsx12(
|
|
2558
2319
|
SearchableSelectList,
|
|
2559
2320
|
{
|
|
2560
2321
|
"aria-label": ariaLabel,
|
|
@@ -2566,7 +2327,7 @@ function MultiSearchableSelect(props) {
|
|
|
2566
2327
|
display: "flex",
|
|
2567
2328
|
flexDirection: "column"
|
|
2568
2329
|
} : void 0,
|
|
2569
|
-
children: isVirtualized ? /* @__PURE__ */
|
|
2330
|
+
children: isVirtualized ? /* @__PURE__ */ jsx12(
|
|
2570
2331
|
VirtualizedComboboxList,
|
|
2571
2332
|
{
|
|
2572
2333
|
open,
|
|
@@ -2590,10 +2351,10 @@ function MultiSearchableSelect(props) {
|
|
|
2590
2351
|
return renderCreatableItem(group);
|
|
2591
2352
|
}
|
|
2592
2353
|
const g = group;
|
|
2593
|
-
return /* @__PURE__ */ jsxs9(
|
|
2354
|
+
return /* @__PURE__ */ jsxs9(React14.Fragment, { children: [
|
|
2594
2355
|
/* @__PURE__ */ jsxs9(ComboboxGroup, { items: g.items, children: [
|
|
2595
|
-
/* @__PURE__ */
|
|
2596
|
-
/* @__PURE__ */
|
|
2356
|
+
/* @__PURE__ */ jsx12(ComboboxGroupLabel, { children: renderGroupHeading ? renderGroupHeading(g.value) : g.value }),
|
|
2357
|
+
/* @__PURE__ */ jsx12(Combobox6.Collection, { children: (item) => /* @__PURE__ */ jsx12(
|
|
2597
2358
|
ComboboxItem_default,
|
|
2598
2359
|
{
|
|
2599
2360
|
value: item,
|
|
@@ -2606,14 +2367,14 @@ function MultiSearchableSelect(props) {
|
|
|
2606
2367
|
item.id
|
|
2607
2368
|
) })
|
|
2608
2369
|
] }),
|
|
2609
|
-
index < groups.length - 1 && /* @__PURE__ */
|
|
2370
|
+
index < groups.length - 1 && /* @__PURE__ */ jsx12(ComboboxSeparator, {})
|
|
2610
2371
|
] }, g.value);
|
|
2611
2372
|
}) : ((item) => {
|
|
2612
2373
|
if (isCreatableSentinel(item)) {
|
|
2613
2374
|
return renderCreatableItem(item);
|
|
2614
2375
|
}
|
|
2615
2376
|
const dataItem = item;
|
|
2616
|
-
return /* @__PURE__ */
|
|
2377
|
+
return /* @__PURE__ */ jsx12(
|
|
2617
2378
|
ComboboxItem_default,
|
|
2618
2379
|
{
|
|
2619
2380
|
value: dataItem,
|
|
@@ -2638,153 +2399,141 @@ function MultiSearchableSelect(props) {
|
|
|
2638
2399
|
}
|
|
2639
2400
|
|
|
2640
2401
|
// src/v3/ActionMenu.tsx
|
|
2641
|
-
import * as
|
|
2402
|
+
import * as React16 from "react";
|
|
2642
2403
|
import { Menu as Menu2 } from "@base-ui/react/menu";
|
|
2643
2404
|
import Radio3 from "@sproutsocial/seeds-react-radio";
|
|
2644
2405
|
import Checkbox4 from "@sproutsocial/seeds-react-checkbox";
|
|
2645
2406
|
import { Icon as Icon5 } from "@sproutsocial/seeds-react-icon";
|
|
2646
2407
|
|
|
2647
2408
|
// src/v3/ActionMenuStyles.tsx
|
|
2409
|
+
import * as React15 from "react";
|
|
2648
2410
|
import { Menu } from "@base-ui/react/menu";
|
|
2649
|
-
import
|
|
2650
|
-
|
|
2651
|
-
var
|
|
2652
|
-
|
|
2653
|
-
|
|
2654
|
-
|
|
2655
|
-
|
|
2656
|
-
|
|
2657
|
-
|
|
2658
|
-
|
|
2659
|
-
|
|
2660
|
-
|
|
2661
|
-
|
|
2662
|
-
|
|
2663
|
-
|
|
2664
|
-
|
|
2665
|
-
|
|
2666
|
-
|
|
2667
|
-
|
|
2668
|
-
|
|
2669
|
-
|
|
2670
|
-
|
|
2671
|
-
|
|
2672
|
-
|
|
2673
|
-
|
|
2674
|
-
|
|
2675
|
-
|
|
2676
|
-
|
|
2677
|
-
|
|
2678
|
-
|
|
2679
|
-
|
|
2680
|
-
|
|
2681
|
-
|
|
2682
|
-
|
|
2683
|
-
|
|
2684
|
-
|
|
2685
|
-
|
|
2686
|
-
|
|
2687
|
-
|
|
2688
|
-
|
|
2689
|
-
|
|
2690
|
-
|
|
2691
|
-
|
|
2692
|
-
|
|
2693
|
-
|
|
2694
|
-
|
|
2695
|
-
|
|
2696
|
-
|
|
2411
|
+
import { jsx as jsx13 } from "react/jsx-runtime";
|
|
2412
|
+
var ActionMenuTrigger = Menu.Trigger;
|
|
2413
|
+
var ActionMenuPositioner = React15.forwardRef(({ className, ...rest }, ref) => /* @__PURE__ */ jsx13(
|
|
2414
|
+
Menu.Positioner,
|
|
2415
|
+
{
|
|
2416
|
+
ref,
|
|
2417
|
+
className: cn("seeds-action-menu-positioner", className),
|
|
2418
|
+
...rest
|
|
2419
|
+
}
|
|
2420
|
+
));
|
|
2421
|
+
ActionMenuPositioner.displayName = "ActionMenuPositioner";
|
|
2422
|
+
var ActionMenuPopup = React15.forwardRef(({ className, ...rest }, ref) => /* @__PURE__ */ jsx13(
|
|
2423
|
+
Menu.Popup,
|
|
2424
|
+
{
|
|
2425
|
+
ref,
|
|
2426
|
+
"data-base-ui-swipe-ignore": "",
|
|
2427
|
+
className: cn("seeds-action-menu-popup", className),
|
|
2428
|
+
...rest
|
|
2429
|
+
}
|
|
2430
|
+
));
|
|
2431
|
+
ActionMenuPopup.displayName = "ActionMenuPopup";
|
|
2432
|
+
var ActionMenuGroup = React15.forwardRef(({ className, ...rest }, ref) => /* @__PURE__ */ jsx13(
|
|
2433
|
+
Menu.Group,
|
|
2434
|
+
{
|
|
2435
|
+
ref,
|
|
2436
|
+
className: cn("seeds-action-menu-group", className),
|
|
2437
|
+
...rest
|
|
2438
|
+
}
|
|
2439
|
+
));
|
|
2440
|
+
ActionMenuGroup.displayName = "ActionMenuGroup";
|
|
2441
|
+
var ActionMenuGroupLabel = React15.forwardRef(({ className, ...rest }, ref) => /* @__PURE__ */ jsx13(
|
|
2442
|
+
Menu.GroupLabel,
|
|
2443
|
+
{
|
|
2444
|
+
ref,
|
|
2445
|
+
className: cn("seeds-action-menu-group-label", className),
|
|
2446
|
+
...rest
|
|
2447
|
+
}
|
|
2448
|
+
));
|
|
2449
|
+
ActionMenuGroupLabel.displayName = "ActionMenuGroupLabel";
|
|
2450
|
+
var ActionMenuSeparator = React15.forwardRef(({ className, ...rest }, ref) => /* @__PURE__ */ jsx13(
|
|
2451
|
+
Menu.Separator,
|
|
2452
|
+
{
|
|
2453
|
+
ref,
|
|
2454
|
+
className: cn("seeds-action-menu-separator", className),
|
|
2455
|
+
...rest
|
|
2456
|
+
}
|
|
2457
|
+
));
|
|
2458
|
+
ActionMenuSeparator.displayName = "ActionMenuSeparator";
|
|
2459
|
+
var StyledMenuItem = React15.forwardRef(({ className, ...rest }, ref) => /* @__PURE__ */ jsx13(
|
|
2460
|
+
Menu.Item,
|
|
2461
|
+
{
|
|
2462
|
+
ref,
|
|
2463
|
+
className: cn("seeds-action-menu-item", className),
|
|
2464
|
+
...rest
|
|
2465
|
+
}
|
|
2466
|
+
));
|
|
2467
|
+
StyledMenuItem.displayName = "StyledMenuItem";
|
|
2468
|
+
var StyledCheckboxItem = React15.forwardRef(({ className, ...rest }, ref) => /* @__PURE__ */ jsx13(
|
|
2469
|
+
Menu.CheckboxItem,
|
|
2470
|
+
{
|
|
2471
|
+
ref,
|
|
2472
|
+
className: cn(
|
|
2473
|
+
"seeds-action-menu-item",
|
|
2474
|
+
"seeds-action-menu-item--flex",
|
|
2475
|
+
className
|
|
2476
|
+
),
|
|
2477
|
+
...rest
|
|
2478
|
+
}
|
|
2479
|
+
));
|
|
2480
|
+
StyledCheckboxItem.displayName = "StyledCheckboxItem";
|
|
2481
|
+
var StyledRadioItem = React15.forwardRef(({ className, ...rest }, ref) => /* @__PURE__ */ jsx13(
|
|
2482
|
+
Menu.RadioItem,
|
|
2483
|
+
{
|
|
2484
|
+
ref,
|
|
2485
|
+
className: cn(
|
|
2486
|
+
"seeds-action-menu-item",
|
|
2487
|
+
"seeds-action-menu-item--flex",
|
|
2488
|
+
className
|
|
2489
|
+
),
|
|
2490
|
+
...rest
|
|
2491
|
+
}
|
|
2492
|
+
));
|
|
2493
|
+
StyledRadioItem.displayName = "StyledRadioItem";
|
|
2494
|
+
var StyledCheckboxItemIndicator = React15.forwardRef(({ className, ...rest }, ref) => /* @__PURE__ */ jsx13(
|
|
2495
|
+
Menu.CheckboxItemIndicator,
|
|
2496
|
+
{
|
|
2497
|
+
ref,
|
|
2498
|
+
className: cn("seeds-action-menu-item-indicator", className),
|
|
2499
|
+
...rest
|
|
2500
|
+
}
|
|
2501
|
+
));
|
|
2502
|
+
StyledCheckboxItemIndicator.displayName = "StyledCheckboxItemIndicator";
|
|
2503
|
+
var StyledRadioItemIndicator = React15.forwardRef(({ className, ...rest }, ref) => /* @__PURE__ */ jsx13(
|
|
2504
|
+
Menu.RadioItemIndicator,
|
|
2505
|
+
{
|
|
2506
|
+
ref,
|
|
2507
|
+
className: cn("seeds-action-menu-item-indicator", className),
|
|
2508
|
+
...rest
|
|
2509
|
+
}
|
|
2510
|
+
));
|
|
2511
|
+
StyledRadioItemIndicator.displayName = "StyledRadioItemIndicator";
|
|
2512
|
+
var StyledSubmenuTrigger = React15.forwardRef(({ className, ...rest }, ref) => /* @__PURE__ */ jsx13(
|
|
2513
|
+
Menu.SubmenuTrigger,
|
|
2514
|
+
{
|
|
2515
|
+
ref,
|
|
2516
|
+
className: cn(
|
|
2517
|
+
"seeds-action-menu-item",
|
|
2518
|
+
"seeds-action-menu-submenu-trigger",
|
|
2519
|
+
className
|
|
2520
|
+
),
|
|
2521
|
+
...rest
|
|
2697
2522
|
}
|
|
2698
|
-
|
|
2699
|
-
|
|
2700
|
-
|
|
2701
|
-
|
|
2702
|
-
|
|
2703
|
-
|
|
2704
|
-
|
|
2705
|
-
|
|
2706
|
-
`;
|
|
2707
|
-
var ActionMenuSeparator = styled8(Menu.Separator)`
|
|
2708
|
-
height: 1px;
|
|
2709
|
-
margin: ${({ theme }) => `${theme.space[300]} -${theme.space[300]}`};
|
|
2710
|
-
background: ${({ theme }) => theme.colors.container.border.base};
|
|
2711
|
-
`;
|
|
2712
|
-
var menuItemStyles = css3`
|
|
2713
|
-
box-sizing: border-box;
|
|
2714
|
-
display: block;
|
|
2715
|
-
width: 100%;
|
|
2716
|
-
border-radius: ${({ theme }) => theme.radii[500]};
|
|
2717
|
-
background-color: ${({ theme }) => theme.colors.listItem.background.base};
|
|
2718
|
-
border: 1px solid ${({ theme }) => theme.colors.listItem.background.base};
|
|
2719
|
-
color: ${({ theme }) => theme.colors.text.body};
|
|
2720
|
-
font-family: ${({ theme }) => theme.fontFamily};
|
|
2721
|
-
font-weight: ${({ theme }) => theme.fontWeights.normal};
|
|
2722
|
-
text-align: left;
|
|
2723
|
-
text-decoration: none;
|
|
2724
|
-
padding: ${({ theme }) => theme.space[300]};
|
|
2725
|
-
outline: 0;
|
|
2726
|
-
${({ theme }) => theme.typography[200]};
|
|
2727
|
-
transition: all ${({ theme }) => theme.duration.fast};
|
|
2728
|
-
cursor: pointer;
|
|
2729
|
-
user-select: none;
|
|
2730
|
-
|
|
2731
|
-
&[data-highlighted] {
|
|
2732
|
-
border-color: ${({ theme }) => theme.colors.listItem.border.base};
|
|
2733
|
-
background-color: ${({ theme }) => theme.colors.listItem.background.hover};
|
|
2734
|
-
color: ${({ theme }) => theme.colors.text.body};
|
|
2735
|
-
text-decoration: none;
|
|
2523
|
+
));
|
|
2524
|
+
StyledSubmenuTrigger.displayName = "StyledSubmenuTrigger";
|
|
2525
|
+
var StyledLinkItem = React15.forwardRef(({ className, ...rest }, ref) => /* @__PURE__ */ jsx13(
|
|
2526
|
+
Menu.LinkItem,
|
|
2527
|
+
{
|
|
2528
|
+
ref,
|
|
2529
|
+
className: cn("seeds-action-menu-item", className),
|
|
2530
|
+
...rest
|
|
2736
2531
|
}
|
|
2737
|
-
|
|
2738
|
-
|
|
2739
|
-
cursor: not-allowed;
|
|
2740
|
-
opacity: 0.4;
|
|
2741
|
-
}
|
|
2742
|
-
`;
|
|
2743
|
-
var StyledMenuItem = styled8(Menu.Item)`
|
|
2744
|
-
${menuItemStyles}
|
|
2745
|
-
`;
|
|
2746
|
-
var StyledCheckboxItem = styled8(Menu.CheckboxItem)`
|
|
2747
|
-
${menuItemStyles}
|
|
2748
|
-
display: flex;
|
|
2749
|
-
align-items: center;
|
|
2750
|
-
gap: ${({ theme }) => theme.space[300]};
|
|
2751
|
-
`;
|
|
2752
|
-
var StyledRadioItem = styled8(Menu.RadioItem)`
|
|
2753
|
-
${menuItemStyles}
|
|
2754
|
-
display: flex;
|
|
2755
|
-
align-items: center;
|
|
2756
|
-
gap: ${({ theme }) => theme.space[300]};
|
|
2757
|
-
`;
|
|
2758
|
-
var StyledCheckboxItemIndicator = styled8(Menu.CheckboxItemIndicator)`
|
|
2759
|
-
display: flex;
|
|
2760
|
-
align-items: center;
|
|
2761
|
-
width: 16px;
|
|
2762
|
-
color: ${({ theme }) => theme.colors.text.body};
|
|
2763
|
-
`;
|
|
2764
|
-
var StyledRadioItemIndicator = styled8(Menu.RadioItemIndicator)`
|
|
2765
|
-
display: flex;
|
|
2766
|
-
align-items: center;
|
|
2767
|
-
width: 16px;
|
|
2768
|
-
color: ${({ theme }) => theme.colors.text.body};
|
|
2769
|
-
`;
|
|
2770
|
-
var StyledSubmenuTrigger = styled8(Menu.SubmenuTrigger)`
|
|
2771
|
-
${menuItemStyles}
|
|
2772
|
-
display: flex;
|
|
2773
|
-
align-items: center;
|
|
2774
|
-
gap: ${({ theme }) => theme.space[300]};
|
|
2775
|
-
justify-content: space-between;
|
|
2776
|
-
|
|
2777
|
-
&[data-popup-open] {
|
|
2778
|
-
border-color: ${({ theme }) => theme.colors.listItem.border.base};
|
|
2779
|
-
background-color: ${({ theme }) => theme.colors.listItem.background.hover};
|
|
2780
|
-
}
|
|
2781
|
-
`;
|
|
2782
|
-
var StyledLinkItem = styled8(Menu.LinkItem)`
|
|
2783
|
-
${menuItemStyles}
|
|
2784
|
-
`;
|
|
2532
|
+
));
|
|
2533
|
+
StyledLinkItem.displayName = "StyledLinkItem";
|
|
2785
2534
|
|
|
2786
2535
|
// src/v3/ActionMenu.tsx
|
|
2787
|
-
import { Fragment as Fragment11, jsx as
|
|
2536
|
+
import { Fragment as Fragment11, jsx as jsx14, jsxs as jsxs10 } from "react/jsx-runtime";
|
|
2788
2537
|
function ActionMenu({
|
|
2789
2538
|
trigger,
|
|
2790
2539
|
children,
|
|
@@ -2801,9 +2550,9 @@ function ActionMenu({
|
|
|
2801
2550
|
defaultOpen,
|
|
2802
2551
|
onOpenChange,
|
|
2803
2552
|
children: [
|
|
2804
|
-
/* @__PURE__ */
|
|
2805
|
-
/* @__PURE__ */
|
|
2806
|
-
/* @__PURE__ */
|
|
2553
|
+
/* @__PURE__ */ jsx14("div", { ref: containerRef, style: { position: "relative" } }),
|
|
2554
|
+
/* @__PURE__ */ jsx14(ActionMenuTrigger, { render: trigger, disabled }),
|
|
2555
|
+
/* @__PURE__ */ jsx14(Menu2.Portal, { container: portalContainer, children: /* @__PURE__ */ jsx14(ActionMenuPositioner, { sideOffset: 8, children: /* @__PURE__ */ jsx14(ActionMenuPopup, { children }) }) })
|
|
2807
2556
|
]
|
|
2808
2557
|
}
|
|
2809
2558
|
);
|
|
@@ -2815,10 +2564,10 @@ function MenuGroup({
|
|
|
2815
2564
|
}) {
|
|
2816
2565
|
return /* @__PURE__ */ jsxs10(Fragment11, { children: [
|
|
2817
2566
|
/* @__PURE__ */ jsxs10(ActionMenuGroup, { children: [
|
|
2818
|
-
label && /* @__PURE__ */
|
|
2567
|
+
label && /* @__PURE__ */ jsx14(ActionMenuGroupLabel, { children: label }),
|
|
2819
2568
|
children
|
|
2820
2569
|
] }),
|
|
2821
|
-
showSeparator && /* @__PURE__ */
|
|
2570
|
+
showSeparator && /* @__PURE__ */ jsx14(ActionMenuSeparator, {})
|
|
2822
2571
|
] });
|
|
2823
2572
|
}
|
|
2824
2573
|
function MenuRadioGroup({
|
|
@@ -2827,7 +2576,7 @@ function MenuRadioGroup({
|
|
|
2827
2576
|
defaultValue,
|
|
2828
2577
|
onValueChange
|
|
2829
2578
|
}) {
|
|
2830
|
-
return /* @__PURE__ */
|
|
2579
|
+
return /* @__PURE__ */ jsx14(
|
|
2831
2580
|
Menu2.RadioGroup,
|
|
2832
2581
|
{
|
|
2833
2582
|
value,
|
|
@@ -2838,7 +2587,7 @@ function MenuRadioGroup({
|
|
|
2838
2587
|
);
|
|
2839
2588
|
}
|
|
2840
2589
|
function MenuItem(props) {
|
|
2841
|
-
const generatedId =
|
|
2590
|
+
const generatedId = React16.useId();
|
|
2842
2591
|
if (props.type === "checkbox") {
|
|
2843
2592
|
const {
|
|
2844
2593
|
children: children2,
|
|
@@ -2859,11 +2608,11 @@ function MenuItem(props) {
|
|
|
2859
2608
|
disabled: disabled2,
|
|
2860
2609
|
closeOnClick: closeOnClick2,
|
|
2861
2610
|
children: [
|
|
2862
|
-
/* @__PURE__ */
|
|
2611
|
+
/* @__PURE__ */ jsx14(
|
|
2863
2612
|
StyledCheckboxItemIndicator,
|
|
2864
2613
|
{
|
|
2865
2614
|
keepMounted: true,
|
|
2866
|
-
render: (_indicatorProps, state) => /* @__PURE__ */
|
|
2615
|
+
render: (_indicatorProps, state) => /* @__PURE__ */ jsx14(
|
|
2867
2616
|
Checkbox4,
|
|
2868
2617
|
{
|
|
2869
2618
|
checked: state.checked,
|
|
@@ -2890,11 +2639,11 @@ function MenuItem(props) {
|
|
|
2890
2639
|
disabled: disabled2,
|
|
2891
2640
|
closeOnClick: closeOnClick2,
|
|
2892
2641
|
children: [
|
|
2893
|
-
/* @__PURE__ */
|
|
2642
|
+
/* @__PURE__ */ jsx14(
|
|
2894
2643
|
StyledRadioItemIndicator,
|
|
2895
2644
|
{
|
|
2896
2645
|
keepMounted: true,
|
|
2897
|
-
render: (_indicatorProps, state) => /* @__PURE__ */
|
|
2646
|
+
render: (_indicatorProps, state) => /* @__PURE__ */ jsx14(
|
|
2898
2647
|
Radio3,
|
|
2899
2648
|
{
|
|
2900
2649
|
checked: state.checked,
|
|
@@ -2921,9 +2670,9 @@ function MenuItem(props) {
|
|
|
2921
2670
|
target
|
|
2922
2671
|
} = props;
|
|
2923
2672
|
if (href) {
|
|
2924
|
-
return /* @__PURE__ */
|
|
2673
|
+
return /* @__PURE__ */ jsx14(StyledLinkItem, { href, target, closeOnClick, children });
|
|
2925
2674
|
}
|
|
2926
|
-
return /* @__PURE__ */
|
|
2675
|
+
return /* @__PURE__ */ jsx14(
|
|
2927
2676
|
StyledMenuItem,
|
|
2928
2677
|
{
|
|
2929
2678
|
onClick,
|
|
@@ -2950,9 +2699,9 @@ function MenuSub({
|
|
|
2950
2699
|
onOpenChange,
|
|
2951
2700
|
closeParentOnEsc,
|
|
2952
2701
|
children: [
|
|
2953
|
-
/* @__PURE__ */
|
|
2702
|
+
/* @__PURE__ */ jsx14("div", { ref: containerRef, style: { position: "relative" } }),
|
|
2954
2703
|
trigger,
|
|
2955
|
-
/* @__PURE__ */
|
|
2704
|
+
/* @__PURE__ */ jsx14(Menu2.Portal, { container: portalContainer, children: /* @__PURE__ */ jsx14(ActionMenuPositioner, { sideOffset: getOffset, alignOffset: getOffset, children: /* @__PURE__ */ jsx14(ActionMenuPopup, { children }) }) })
|
|
2956
2705
|
]
|
|
2957
2706
|
}
|
|
2958
2707
|
);
|
|
@@ -2974,7 +2723,7 @@ function MenuSubTrigger({
|
|
|
2974
2723
|
openOnHover,
|
|
2975
2724
|
children: [
|
|
2976
2725
|
children,
|
|
2977
|
-
/* @__PURE__ */
|
|
2726
|
+
/* @__PURE__ */ jsx14(Icon5, { name: "chevron-right-outline", fixedWidth: true, "aria-hidden": true })
|
|
2978
2727
|
]
|
|
2979
2728
|
}
|
|
2980
2729
|
);
|
|
@@ -2986,35 +2735,41 @@ import "@sproutsocial/seeds-react-button";
|
|
|
2986
2735
|
import { Icon as Icon6 } from "@sproutsocial/seeds-react-icon";
|
|
2987
2736
|
|
|
2988
2737
|
// src/v3/MenuButtonStyles.tsx
|
|
2989
|
-
import
|
|
2738
|
+
import * as React17 from "react";
|
|
2990
2739
|
import { Button } from "@sproutsocial/seeds-react-button";
|
|
2991
|
-
|
|
2992
|
-
|
|
2993
|
-
|
|
2994
|
-
|
|
2995
|
-
|
|
2996
|
-
|
|
2997
|
-
|
|
2998
|
-
|
|
2999
|
-
|
|
3000
|
-
|
|
3001
|
-
var
|
|
3002
|
-
|
|
3003
|
-
|
|
3004
|
-
|
|
3005
|
-
|
|
3006
|
-
|
|
3007
|
-
|
|
3008
|
-
|
|
3009
|
-
|
|
3010
|
-
|
|
3011
|
-
|
|
3012
|
-
|
|
3013
|
-
|
|
3014
|
-
|
|
2740
|
+
import { jsx as jsx15 } from "react/jsx-runtime";
|
|
2741
|
+
var MenuButtonContainer = React17.forwardRef(({ className, ...rest }, ref) => /* @__PURE__ */ jsx15(
|
|
2742
|
+
"div",
|
|
2743
|
+
{
|
|
2744
|
+
ref,
|
|
2745
|
+
className: cn("seeds-menu-button-container", className),
|
|
2746
|
+
...rest
|
|
2747
|
+
}
|
|
2748
|
+
));
|
|
2749
|
+
MenuButtonContainer.displayName = "MenuButtonContainer";
|
|
2750
|
+
var MainButton = React17.forwardRef(
|
|
2751
|
+
({ className, ...rest }, ref) => /* @__PURE__ */ jsx15(
|
|
2752
|
+
Button,
|
|
2753
|
+
{
|
|
2754
|
+
ref,
|
|
2755
|
+
className: cn("seeds-menu-button-main", className),
|
|
2756
|
+
...rest
|
|
2757
|
+
}
|
|
2758
|
+
)
|
|
2759
|
+
);
|
|
2760
|
+
MainButton.displayName = "MainButton";
|
|
2761
|
+
var TriggerButton = React17.forwardRef(({ className, ...rest }, ref) => /* @__PURE__ */ jsx15(
|
|
2762
|
+
Button,
|
|
2763
|
+
{
|
|
2764
|
+
ref,
|
|
2765
|
+
className: cn("seeds-menu-button-trigger", className),
|
|
2766
|
+
...rest
|
|
2767
|
+
}
|
|
2768
|
+
));
|
|
2769
|
+
TriggerButton.displayName = "TriggerButton";
|
|
3015
2770
|
|
|
3016
2771
|
// src/v3/MenuButton.tsx
|
|
3017
|
-
import { jsx as
|
|
2772
|
+
import { jsx as jsx16, jsxs as jsxs11 } from "react/jsx-runtime";
|
|
3018
2773
|
function MenuButton({
|
|
3019
2774
|
actionMenu,
|
|
3020
2775
|
appearance = "primary",
|
|
@@ -3025,7 +2780,7 @@ function MenuButton({
|
|
|
3025
2780
|
...rest
|
|
3026
2781
|
}) {
|
|
3027
2782
|
return /* @__PURE__ */ jsxs11(MenuButtonContainer, { children: [
|
|
3028
|
-
/* @__PURE__ */
|
|
2783
|
+
/* @__PURE__ */ jsx16(
|
|
3029
2784
|
MainButton,
|
|
3030
2785
|
{
|
|
3031
2786
|
appearance,
|
|
@@ -3035,18 +2790,18 @@ function MenuButton({
|
|
|
3035
2790
|
children
|
|
3036
2791
|
}
|
|
3037
2792
|
),
|
|
3038
|
-
/* @__PURE__ */
|
|
2793
|
+
/* @__PURE__ */ jsx16(
|
|
3039
2794
|
ActionMenu,
|
|
3040
2795
|
{
|
|
3041
2796
|
disabled,
|
|
3042
|
-
trigger: /* @__PURE__ */
|
|
2797
|
+
trigger: /* @__PURE__ */ jsx16(
|
|
3043
2798
|
TriggerButton,
|
|
3044
2799
|
{
|
|
3045
2800
|
appearance,
|
|
3046
2801
|
size,
|
|
3047
2802
|
disabled,
|
|
3048
2803
|
ariaLabel: menuButtonAriaLabel,
|
|
3049
|
-
children: /* @__PURE__ */
|
|
2804
|
+
children: /* @__PURE__ */ jsx16(Icon6, { name: "chevron-down-outline", fixedWidth: true, "aria-hidden": true })
|
|
3050
2805
|
}
|
|
3051
2806
|
),
|
|
3052
2807
|
children: actionMenu
|