@spark-ui/components 10.0.2 → 10.0.4
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/CHANGELOG.md +10 -0
- package/dist/checkbox/index.js +117 -478
- package/dist/checkbox/index.js.map +1 -1
- package/dist/checkbox/index.mjs +3 -4
- package/dist/checkbox/index.mjs.map +1 -1
- package/dist/{chunk-JC6KKYUQ.mjs → chunk-7BTJUYP3.mjs} +6 -5
- package/dist/{chunk-JC6KKYUQ.mjs.map → chunk-7BTJUYP3.mjs.map} +1 -1
- package/dist/combobox/index.js +301 -710
- package/dist/combobox/index.js.map +1 -1
- package/dist/combobox/index.mjs +3 -5
- package/dist/combobox/index.mjs.map +1 -1
- package/dist/dropdown/index.js +252 -662
- package/dist/dropdown/index.js.map +1 -1
- package/dist/dropdown/index.mjs +1 -4
- package/dist/dropdown/index.mjs.map +1 -1
- package/dist/form-field/index.mjs +373 -7
- package/dist/form-field/index.mjs.map +1 -1
- package/dist/input/index.js +47 -454
- package/dist/input/index.js.map +1 -1
- package/dist/input/index.mjs +1 -3
- package/dist/radio-group/index.js +47 -553
- package/dist/radio-group/index.js.map +1 -1
- package/dist/radio-group/index.mjs +3 -9
- package/dist/radio-group/index.mjs.map +1 -1
- package/dist/select/index.js +159 -569
- package/dist/select/index.js.map +1 -1
- package/dist/select/index.mjs +1 -4
- package/dist/select/index.mjs.map +1 -1
- package/dist/stepper/index.js +110 -516
- package/dist/stepper/index.js.map +1 -1
- package/dist/stepper/index.mjs +2 -5
- package/dist/stepper/index.mjs.map +1 -1
- package/dist/switch/index.js +96 -545
- package/dist/switch/index.js.map +1 -1
- package/dist/switch/index.mjs +3 -6
- package/dist/switch/index.mjs.map +1 -1
- package/dist/textarea/index.js +58 -465
- package/dist/textarea/index.js.map +1 -1
- package/dist/textarea/index.mjs +1 -3
- package/dist/textarea/index.mjs.map +1 -1
- package/package.json +20 -10
- package/tsup.config.ts +2 -1
- package/dist/chunk-7PMPYEHJ.mjs +0 -379
- package/dist/chunk-7PMPYEHJ.mjs.map +0 -1
package/dist/combobox/index.js
CHANGED
|
@@ -26,143 +26,135 @@ __export(combobox_exports, {
|
|
|
26
26
|
});
|
|
27
27
|
module.exports = __toCommonJS(combobox_exports);
|
|
28
28
|
|
|
29
|
-
// src/
|
|
30
|
-
var
|
|
31
|
-
var
|
|
29
|
+
// src/combobox/ComboboxContext.tsx
|
|
30
|
+
var import_form_field = require("@spark-ui/components/form-field");
|
|
31
|
+
var import_use_combined_state = require("@spark-ui/use-combined-state");
|
|
32
|
+
var import_downshift3 = require("downshift");
|
|
33
|
+
var import_react7 = require("react");
|
|
32
34
|
|
|
33
|
-
// src/
|
|
35
|
+
// src/popover/Popover.tsx
|
|
34
36
|
var import_radix_ui = require("radix-ui");
|
|
37
|
+
|
|
38
|
+
// src/popover/PopoverContext.tsx
|
|
35
39
|
var import_react = require("react");
|
|
36
40
|
var import_jsx_runtime = require("react/jsx-runtime");
|
|
37
|
-
var
|
|
38
|
-
var
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
|
|
41
|
+
var PopoverContext = (0, import_react.createContext)(null);
|
|
42
|
+
var ID_PREFIX = ":popover";
|
|
43
|
+
var PopoverProvider = ({
|
|
44
|
+
children,
|
|
45
|
+
intent
|
|
46
|
+
}) => {
|
|
47
|
+
const [headerId, setHeaderId] = (0, import_react.useState)(null);
|
|
48
|
+
return /* @__PURE__ */ (0, import_jsx_runtime.jsx)(
|
|
49
|
+
PopoverContext.Provider,
|
|
50
|
+
{
|
|
51
|
+
value: {
|
|
52
|
+
headerId,
|
|
53
|
+
setHeaderId,
|
|
54
|
+
intent
|
|
55
|
+
},
|
|
56
|
+
children
|
|
57
|
+
}
|
|
58
|
+
);
|
|
48
59
|
};
|
|
49
|
-
|
|
50
|
-
|
|
51
|
-
var import_react2 = require("react");
|
|
52
|
-
var FormFieldContext = (0, import_react2.createContext)(null);
|
|
53
|
-
var ID_PREFIX = ":form-field";
|
|
54
|
-
var useFormField = () => {
|
|
55
|
-
const context = (0, import_react2.useContext)(FormFieldContext);
|
|
60
|
+
var usePopover = () => {
|
|
61
|
+
const context = (0, import_react.useContext)(PopoverContext);
|
|
56
62
|
if (!context) {
|
|
57
|
-
throw Error("
|
|
63
|
+
throw Error("usePopover must be used within a Popover provider");
|
|
58
64
|
}
|
|
59
65
|
return context;
|
|
60
66
|
};
|
|
61
67
|
|
|
62
|
-
// src/
|
|
63
|
-
var import_react3 = require("react");
|
|
68
|
+
// src/popover/Popover.tsx
|
|
64
69
|
var import_jsx_runtime2 = require("react/jsx-runtime");
|
|
65
|
-
var
|
|
66
|
-
|
|
67
|
-
name,
|
|
68
|
-
disabled = false,
|
|
69
|
-
readOnly = false,
|
|
70
|
-
state,
|
|
71
|
-
isRequired,
|
|
72
|
-
children
|
|
73
|
-
}) => {
|
|
74
|
-
const labelId = `${ID_PREFIX}-label-${(0, import_react3.useId)()}`;
|
|
75
|
-
const [messageIds, setMessageIds] = (0, import_react3.useState)([]);
|
|
76
|
-
const description = messageIds.length > 0 ? messageIds.join(" ") : void 0;
|
|
77
|
-
const handleMessageIdAdd = (0, import_react3.useCallback)((msgId) => {
|
|
78
|
-
setMessageIds((ids) => [...ids, msgId]);
|
|
79
|
-
}, []);
|
|
80
|
-
const handleMessageIdRemove = (0, import_react3.useCallback)((msgId) => {
|
|
81
|
-
setMessageIds((ids) => ids.filter((current) => current !== msgId));
|
|
82
|
-
}, []);
|
|
83
|
-
const value = (0, import_react3.useMemo)(() => {
|
|
84
|
-
const isInvalid = state === "error";
|
|
85
|
-
return {
|
|
86
|
-
id,
|
|
87
|
-
labelId,
|
|
88
|
-
name,
|
|
89
|
-
disabled,
|
|
90
|
-
readOnly,
|
|
91
|
-
state,
|
|
92
|
-
isRequired,
|
|
93
|
-
isInvalid,
|
|
94
|
-
description,
|
|
95
|
-
onMessageIdAdd: handleMessageIdAdd,
|
|
96
|
-
onMessageIdRemove: handleMessageIdRemove
|
|
97
|
-
};
|
|
98
|
-
}, [
|
|
99
|
-
id,
|
|
100
|
-
labelId,
|
|
101
|
-
name,
|
|
102
|
-
disabled,
|
|
103
|
-
readOnly,
|
|
104
|
-
description,
|
|
105
|
-
state,
|
|
106
|
-
isRequired,
|
|
107
|
-
handleMessageIdAdd,
|
|
108
|
-
handleMessageIdRemove
|
|
109
|
-
]);
|
|
110
|
-
return /* @__PURE__ */ (0, import_jsx_runtime2.jsx)(FormFieldContext.Provider, { value, children });
|
|
70
|
+
var Popover = ({ children, intent = "surface", modal = false, ...rest }) => {
|
|
71
|
+
return /* @__PURE__ */ (0, import_jsx_runtime2.jsx)(PopoverProvider, { intent, children: /* @__PURE__ */ (0, import_jsx_runtime2.jsx)(import_radix_ui.Popover.Root, { "data-spark-component": "popover", modal, ...rest, children }) });
|
|
111
72
|
};
|
|
112
|
-
|
|
73
|
+
Popover.displayName = "Popover";
|
|
113
74
|
|
|
114
|
-
// src/
|
|
75
|
+
// src/popover/PopoverAnchor.tsx
|
|
76
|
+
var import_radix_ui2 = require("radix-ui");
|
|
115
77
|
var import_jsx_runtime3 = require("react/jsx-runtime");
|
|
116
|
-
var
|
|
117
|
-
|
|
118
|
-
|
|
119
|
-
|
|
120
|
-
|
|
121
|
-
|
|
122
|
-
|
|
78
|
+
var Anchor = ({ asChild = false, children, ref, ...rest }) => /* @__PURE__ */ (0, import_jsx_runtime3.jsx)(import_radix_ui2.Popover.Anchor, { "data-spark-component": "popover-anchor", ref, asChild, ...rest, children });
|
|
79
|
+
Anchor.displayName = "Popover.Anchor";
|
|
80
|
+
|
|
81
|
+
// src/popover/PopoverArrow.tsx
|
|
82
|
+
var import_class_variance_authority = require("class-variance-authority");
|
|
83
|
+
var import_radix_ui3 = require("radix-ui");
|
|
84
|
+
var import_jsx_runtime4 = require("react/jsx-runtime");
|
|
85
|
+
var Arrow = ({
|
|
123
86
|
asChild = false,
|
|
87
|
+
width = 16,
|
|
88
|
+
height = 8,
|
|
89
|
+
className,
|
|
124
90
|
ref,
|
|
125
|
-
...
|
|
91
|
+
...rest
|
|
126
92
|
}) => {
|
|
127
|
-
const
|
|
128
|
-
const
|
|
129
|
-
|
|
130
|
-
|
|
93
|
+
const { intent } = usePopover();
|
|
94
|
+
const styles4 = (0, import_class_variance_authority.cva)("visible", {
|
|
95
|
+
variants: {
|
|
96
|
+
intent: {
|
|
97
|
+
surface: "fill-surface",
|
|
98
|
+
main: "fill-main-container",
|
|
99
|
+
support: "fill-support-container",
|
|
100
|
+
accent: "fill-accent-container",
|
|
101
|
+
basic: "fill-basic-container",
|
|
102
|
+
success: "fill-success-container",
|
|
103
|
+
alert: "fill-alert-container",
|
|
104
|
+
danger: "fill-error-container",
|
|
105
|
+
info: "fill-info-container",
|
|
106
|
+
neutral: "fill-neutral-container"
|
|
107
|
+
}
|
|
108
|
+
},
|
|
109
|
+
defaultVariants: {
|
|
110
|
+
intent: "surface"
|
|
111
|
+
}
|
|
112
|
+
});
|
|
113
|
+
return /* @__PURE__ */ (0, import_jsx_runtime4.jsx)(
|
|
114
|
+
import_radix_ui3.Popover.Arrow,
|
|
131
115
|
{
|
|
132
|
-
|
|
133
|
-
|
|
134
|
-
|
|
135
|
-
|
|
136
|
-
|
|
137
|
-
|
|
138
|
-
|
|
139
|
-
Component,
|
|
140
|
-
{
|
|
141
|
-
ref,
|
|
142
|
-
"data-spark-component": "form-field",
|
|
143
|
-
className: (0, import_class_variance_authority.cx)(className, "gap-sm flex flex-col"),
|
|
144
|
-
...others
|
|
145
|
-
}
|
|
146
|
-
)
|
|
116
|
+
"data-spark-component": "popover-arrow",
|
|
117
|
+
ref,
|
|
118
|
+
className: styles4({ intent, className }),
|
|
119
|
+
asChild,
|
|
120
|
+
width,
|
|
121
|
+
height,
|
|
122
|
+
...rest
|
|
147
123
|
}
|
|
148
124
|
);
|
|
149
125
|
};
|
|
150
|
-
|
|
126
|
+
Arrow.displayName = "Popover.Arrow";
|
|
151
127
|
|
|
152
|
-
// src/
|
|
153
|
-
var
|
|
154
|
-
var
|
|
155
|
-
var
|
|
156
|
-
var import_class_variance_authority4 = require("class-variance-authority");
|
|
128
|
+
// src/popover/PopoverCloseButton.tsx
|
|
129
|
+
var import_Close = require("@spark-ui/icons/Close");
|
|
130
|
+
var import_class_variance_authority7 = require("class-variance-authority");
|
|
131
|
+
var import_radix_ui5 = require("radix-ui");
|
|
157
132
|
|
|
158
133
|
// src/icon/Icon.tsx
|
|
159
|
-
var
|
|
134
|
+
var import_react3 = require("react");
|
|
135
|
+
|
|
136
|
+
// src/slot/Slot.tsx
|
|
137
|
+
var import_radix_ui4 = require("radix-ui");
|
|
138
|
+
var import_react2 = require("react");
|
|
139
|
+
var import_jsx_runtime5 = require("react/jsx-runtime");
|
|
140
|
+
var Slottable = import_radix_ui4.Slot.Slottable;
|
|
141
|
+
var Slot = ({ ref, ...props }) => {
|
|
142
|
+
return /* @__PURE__ */ (0, import_jsx_runtime5.jsx)(import_radix_ui4.Slot.Root, { ref, ...props });
|
|
143
|
+
};
|
|
144
|
+
var wrapPolymorphicSlot = (asChild, children, callback) => {
|
|
145
|
+
if (!asChild) return callback(children);
|
|
146
|
+
return (0, import_react2.isValidElement)(children) ? (0, import_react2.cloneElement)(
|
|
147
|
+
children,
|
|
148
|
+
void 0,
|
|
149
|
+
callback(children.props.children)
|
|
150
|
+
) : null;
|
|
151
|
+
};
|
|
160
152
|
|
|
161
153
|
// src/visually-hidden/VisuallyHidden.tsx
|
|
162
|
-
var
|
|
154
|
+
var import_jsx_runtime6 = require("react/jsx-runtime");
|
|
163
155
|
var VisuallyHidden = ({ asChild = false, ref, ...props }) => {
|
|
164
156
|
const Component = asChild ? Slot : "span";
|
|
165
|
-
return /* @__PURE__ */ (0,
|
|
157
|
+
return /* @__PURE__ */ (0, import_jsx_runtime6.jsx)(
|
|
166
158
|
Component,
|
|
167
159
|
{
|
|
168
160
|
...props,
|
|
@@ -220,7 +212,7 @@ var iconStyles = (0, import_class_variance_authority2.cva)(["fill-current shrink
|
|
|
220
212
|
});
|
|
221
213
|
|
|
222
214
|
// src/icon/Icon.tsx
|
|
223
|
-
var
|
|
215
|
+
var import_jsx_runtime7 = require("react/jsx-runtime");
|
|
224
216
|
var Icon = ({
|
|
225
217
|
label,
|
|
226
218
|
className,
|
|
@@ -229,435 +221,33 @@ var Icon = ({
|
|
|
229
221
|
children,
|
|
230
222
|
...others
|
|
231
223
|
}) => {
|
|
232
|
-
const child =
|
|
233
|
-
return /* @__PURE__ */ (0,
|
|
234
|
-
(0,
|
|
224
|
+
const child = import_react3.Children.only(children);
|
|
225
|
+
return /* @__PURE__ */ (0, import_jsx_runtime7.jsxs)(import_jsx_runtime7.Fragment, { children: [
|
|
226
|
+
(0, import_react3.cloneElement)(child, {
|
|
235
227
|
className: iconStyles({ className, size, intent }),
|
|
236
228
|
"data-spark-component": "icon",
|
|
237
229
|
"aria-hidden": "true",
|
|
238
230
|
focusable: "false",
|
|
239
231
|
...others
|
|
240
232
|
}),
|
|
241
|
-
label && /* @__PURE__ */ (0,
|
|
233
|
+
label && /* @__PURE__ */ (0, import_jsx_runtime7.jsx)(VisuallyHidden, { children: label })
|
|
242
234
|
] });
|
|
243
235
|
};
|
|
244
236
|
Icon.displayName = "Icon";
|
|
245
237
|
|
|
246
|
-
// src/form-field/FormFieldMessage.tsx
|
|
247
|
-
var import_class_variance_authority3 = require("class-variance-authority");
|
|
248
|
-
var import_react6 = require("react");
|
|
249
|
-
var import_jsx_runtime6 = require("react/jsx-runtime");
|
|
250
|
-
var FormFieldMessage = ({
|
|
251
|
-
id: idProp,
|
|
252
|
-
className,
|
|
253
|
-
ref,
|
|
254
|
-
...others
|
|
255
|
-
}) => {
|
|
256
|
-
const { onMessageIdAdd, onMessageIdRemove } = useFormField();
|
|
257
|
-
const currentId = `${ID_PREFIX}-message-${(0, import_react6.useId)()}`;
|
|
258
|
-
const id = idProp || currentId;
|
|
259
|
-
(0, import_react6.useEffect)(() => {
|
|
260
|
-
onMessageIdAdd(id);
|
|
261
|
-
return () => {
|
|
262
|
-
onMessageIdRemove(id);
|
|
263
|
-
};
|
|
264
|
-
}, [id, onMessageIdAdd, onMessageIdRemove]);
|
|
265
|
-
return /* @__PURE__ */ (0, import_jsx_runtime6.jsx)(
|
|
266
|
-
"span",
|
|
267
|
-
{
|
|
268
|
-
ref,
|
|
269
|
-
id,
|
|
270
|
-
"data-spark-component": "form-field-message",
|
|
271
|
-
className: (0, import_class_variance_authority3.cx)(className, "text-caption"),
|
|
272
|
-
...others
|
|
273
|
-
}
|
|
274
|
-
);
|
|
275
|
-
};
|
|
276
|
-
FormFieldMessage.displayName = "FormField.Message";
|
|
277
|
-
|
|
278
|
-
// src/form-field/FormFieldStateMessage.tsx
|
|
279
|
-
var import_jsx_runtime7 = require("react/jsx-runtime");
|
|
280
|
-
var FormFieldStateMessage = ({
|
|
281
|
-
className,
|
|
282
|
-
state,
|
|
283
|
-
children,
|
|
284
|
-
ref,
|
|
285
|
-
...others
|
|
286
|
-
}) => {
|
|
287
|
-
const field = useFormField();
|
|
288
|
-
if (field.state !== state) {
|
|
289
|
-
return null;
|
|
290
|
-
}
|
|
291
|
-
return /* @__PURE__ */ (0, import_jsx_runtime7.jsxs)(
|
|
292
|
-
FormFieldMessage,
|
|
293
|
-
{
|
|
294
|
-
ref,
|
|
295
|
-
"data-spark-component": "form-field-state-message",
|
|
296
|
-
"aria-live": "polite",
|
|
297
|
-
className: (0, import_class_variance_authority4.cx)(
|
|
298
|
-
"gap-sm flex items-center",
|
|
299
|
-
state === "error" ? "text-error" : "text-on-surface/dim-1",
|
|
300
|
-
className
|
|
301
|
-
),
|
|
302
|
-
...others,
|
|
303
|
-
children: [
|
|
304
|
-
state === "alert" && /* @__PURE__ */ (0, import_jsx_runtime7.jsx)(Icon, { size: "sm", children: /* @__PURE__ */ (0, import_jsx_runtime7.jsx)(import_WarningOutline.WarningOutline, {}) }),
|
|
305
|
-
state === "error" && /* @__PURE__ */ (0, import_jsx_runtime7.jsx)(Icon, { size: "sm", intent: "error", children: /* @__PURE__ */ (0, import_jsx_runtime7.jsx)(import_AlertOutline.AlertOutline, {}) }),
|
|
306
|
-
state === "success" && /* @__PURE__ */ (0, import_jsx_runtime7.jsx)(Icon, { size: "sm", children: /* @__PURE__ */ (0, import_jsx_runtime7.jsx)(import_Check.Check, {}) }),
|
|
307
|
-
children
|
|
308
|
-
]
|
|
309
|
-
}
|
|
310
|
-
);
|
|
311
|
-
};
|
|
312
|
-
FormFieldStateMessage.displayName = "FormField.StateMessage";
|
|
313
|
-
|
|
314
|
-
// src/form-field/FormFieldAlertMessage.tsx
|
|
315
|
-
var import_jsx_runtime8 = require("react/jsx-runtime");
|
|
316
|
-
var FormFieldAlertMessage = ({ ref, ...props }) => {
|
|
317
|
-
return /* @__PURE__ */ (0, import_jsx_runtime8.jsx)(
|
|
318
|
-
FormFieldStateMessage,
|
|
319
|
-
{
|
|
320
|
-
ref,
|
|
321
|
-
"data-spark-component": "form-field-alert-message",
|
|
322
|
-
state: "alert",
|
|
323
|
-
...props
|
|
324
|
-
}
|
|
325
|
-
);
|
|
326
|
-
};
|
|
327
|
-
FormFieldAlertMessage.displayName = "FormField.AlertMessage";
|
|
328
|
-
|
|
329
|
-
// src/form-field/FormFieldCharactersCount.tsx
|
|
330
|
-
var import_class_variance_authority5 = require("class-variance-authority");
|
|
331
|
-
var import_jsx_runtime9 = require("react/jsx-runtime");
|
|
332
|
-
var FormFieldCharactersCount = ({
|
|
333
|
-
className,
|
|
334
|
-
value = "",
|
|
335
|
-
maxLength,
|
|
336
|
-
ref,
|
|
337
|
-
...others
|
|
338
|
-
}) => {
|
|
339
|
-
const displayValue = `${value.length}/${maxLength}`;
|
|
340
|
-
return /* @__PURE__ */ (0, import_jsx_runtime9.jsx)(
|
|
341
|
-
"span",
|
|
342
|
-
{
|
|
343
|
-
ref,
|
|
344
|
-
"data-spark-component": "form-field-characters-count",
|
|
345
|
-
className: (0, import_class_variance_authority5.cx)(className, "text-caption", "text-neutral"),
|
|
346
|
-
...others,
|
|
347
|
-
children: displayValue
|
|
348
|
-
}
|
|
349
|
-
);
|
|
350
|
-
};
|
|
351
|
-
FormFieldCharactersCount.displayName = "FormField.CharactersCount";
|
|
352
|
-
|
|
353
|
-
// src/form-field/FormFieldControl.tsx
|
|
354
|
-
var import_react7 = require("react");
|
|
355
|
-
var import_jsx_runtime10 = require("react/jsx-runtime");
|
|
356
|
-
var useFormFieldControl = () => {
|
|
357
|
-
const { id, name, description, disabled, readOnly, state, labelId, isInvalid, isRequired } = (0, import_react7.useContext)(FormFieldContext) || {};
|
|
358
|
-
return {
|
|
359
|
-
id,
|
|
360
|
-
name,
|
|
361
|
-
description,
|
|
362
|
-
disabled,
|
|
363
|
-
readOnly,
|
|
364
|
-
state,
|
|
365
|
-
labelId,
|
|
366
|
-
isInvalid,
|
|
367
|
-
isRequired
|
|
368
|
-
};
|
|
369
|
-
};
|
|
370
|
-
var FormFieldControl = ({ children }) => {
|
|
371
|
-
const props = useFormFieldControl();
|
|
372
|
-
return /* @__PURE__ */ (0, import_jsx_runtime10.jsx)(import_jsx_runtime10.Fragment, { children: children(props) });
|
|
373
|
-
};
|
|
374
|
-
FormFieldControl.displayName = "FormField.Control";
|
|
375
|
-
|
|
376
|
-
// src/form-field/FormFieldErrorMessage.tsx
|
|
377
|
-
var import_jsx_runtime11 = require("react/jsx-runtime");
|
|
378
|
-
var FormFieldErrorMessage = ({ ref, ...props }) => {
|
|
379
|
-
return /* @__PURE__ */ (0, import_jsx_runtime11.jsx)(
|
|
380
|
-
FormFieldStateMessage,
|
|
381
|
-
{
|
|
382
|
-
ref,
|
|
383
|
-
"data-spark-component": "form-field-error-message",
|
|
384
|
-
state: "error",
|
|
385
|
-
...props
|
|
386
|
-
}
|
|
387
|
-
);
|
|
388
|
-
};
|
|
389
|
-
FormFieldErrorMessage.displayName = "FormField.ErrorMessage";
|
|
390
|
-
|
|
391
|
-
// src/form-field/FormFieldHelperMessage.tsx
|
|
392
|
-
var import_class_variance_authority6 = require("class-variance-authority");
|
|
393
|
-
var import_jsx_runtime12 = require("react/jsx-runtime");
|
|
394
|
-
var FormFieldHelperMessage = ({
|
|
395
|
-
className,
|
|
396
|
-
ref,
|
|
397
|
-
...others
|
|
398
|
-
}) => {
|
|
399
|
-
return /* @__PURE__ */ (0, import_jsx_runtime12.jsx)(
|
|
400
|
-
FormFieldMessage,
|
|
401
|
-
{
|
|
402
|
-
ref,
|
|
403
|
-
"data-spark-component": "form-field-helper-message",
|
|
404
|
-
className: (0, import_class_variance_authority6.cx)("text-on-surface/dim-1", className),
|
|
405
|
-
...others
|
|
406
|
-
}
|
|
407
|
-
);
|
|
408
|
-
};
|
|
409
|
-
FormFieldHelperMessage.displayName = "FormField.HelperMessage";
|
|
410
|
-
|
|
411
|
-
// src/form-field/FormFieldLabel.tsx
|
|
412
|
-
var import_class_variance_authority10 = require("class-variance-authority");
|
|
413
|
-
|
|
414
|
-
// src/label/Label.tsx
|
|
415
|
-
var import_class_variance_authority7 = require("class-variance-authority");
|
|
416
|
-
var import_radix_ui2 = require("radix-ui");
|
|
417
|
-
var import_jsx_runtime13 = require("react/jsx-runtime");
|
|
418
|
-
var Label = ({ className, ref, ...others }) => {
|
|
419
|
-
return /* @__PURE__ */ (0, import_jsx_runtime13.jsx)(
|
|
420
|
-
import_radix_ui2.Label.Label,
|
|
421
|
-
{
|
|
422
|
-
ref,
|
|
423
|
-
"data-spark-component": "label",
|
|
424
|
-
className: (0, import_class_variance_authority7.cx)("text-body-1", className),
|
|
425
|
-
...others
|
|
426
|
-
}
|
|
427
|
-
);
|
|
428
|
-
};
|
|
429
|
-
Label.displayName = "Label";
|
|
430
|
-
|
|
431
|
-
// src/label/LabelRequiredIndicator.tsx
|
|
432
|
-
var import_class_variance_authority8 = require("class-variance-authority");
|
|
433
|
-
var import_jsx_runtime14 = require("react/jsx-runtime");
|
|
434
|
-
var LabelRequiredIndicator = ({
|
|
435
|
-
className,
|
|
436
|
-
children = "*",
|
|
437
|
-
ref,
|
|
438
|
-
...others
|
|
439
|
-
}) => {
|
|
440
|
-
return /* @__PURE__ */ (0, import_jsx_runtime14.jsx)(
|
|
441
|
-
"span",
|
|
442
|
-
{
|
|
443
|
-
ref,
|
|
444
|
-
"data-spark-component": "label-required-indicator",
|
|
445
|
-
role: "presentation",
|
|
446
|
-
"aria-hidden": "true",
|
|
447
|
-
className: (0, import_class_variance_authority8.cx)(className, "text-caption text-on-surface/dim-1"),
|
|
448
|
-
...others,
|
|
449
|
-
children
|
|
450
|
-
}
|
|
451
|
-
);
|
|
452
|
-
};
|
|
453
|
-
LabelRequiredIndicator.displayName = "Label.RequiredIndicator";
|
|
454
|
-
|
|
455
|
-
// src/label/index.ts
|
|
456
|
-
var Label2 = Object.assign(Label, {
|
|
457
|
-
RequiredIndicator: LabelRequiredIndicator
|
|
458
|
-
});
|
|
459
|
-
Label2.displayName = "Label";
|
|
460
|
-
LabelRequiredIndicator.displayName = "Label.RequiredIndicator";
|
|
461
|
-
|
|
462
|
-
// src/form-field/FormFieldRequiredIndicator.tsx
|
|
463
|
-
var import_class_variance_authority9 = require("class-variance-authority");
|
|
464
|
-
var import_jsx_runtime15 = require("react/jsx-runtime");
|
|
465
|
-
var FormFieldRequiredIndicator = ({
|
|
466
|
-
className,
|
|
467
|
-
ref,
|
|
468
|
-
...props
|
|
469
|
-
}) => {
|
|
470
|
-
return /* @__PURE__ */ (0, import_jsx_runtime15.jsx)(Label2.RequiredIndicator, { ref, className: (0, import_class_variance_authority9.cx)("ml-sm", className), ...props });
|
|
471
|
-
};
|
|
472
|
-
FormFieldRequiredIndicator.displayName = "FormField.RequiredIndicator";
|
|
473
|
-
|
|
474
|
-
// src/form-field/FormFieldLabel.tsx
|
|
475
|
-
var import_jsx_runtime16 = require("react/jsx-runtime");
|
|
476
|
-
var FormFieldLabel = ({
|
|
477
|
-
htmlFor: htmlForProp,
|
|
478
|
-
className,
|
|
479
|
-
children,
|
|
480
|
-
requiredIndicator = /* @__PURE__ */ (0, import_jsx_runtime16.jsx)(FormFieldRequiredIndicator, {}),
|
|
481
|
-
asChild,
|
|
482
|
-
ref,
|
|
483
|
-
...others
|
|
484
|
-
}) => {
|
|
485
|
-
const control = useFormField();
|
|
486
|
-
const { disabled, labelId, isRequired } = control;
|
|
487
|
-
const htmlFor = asChild ? void 0 : htmlForProp || control.id;
|
|
488
|
-
return /* @__PURE__ */ (0, import_jsx_runtime16.jsx)(
|
|
489
|
-
Label2,
|
|
490
|
-
{
|
|
491
|
-
ref,
|
|
492
|
-
id: labelId,
|
|
493
|
-
"data-spark-component": "form-field-label",
|
|
494
|
-
htmlFor,
|
|
495
|
-
className: (0, import_class_variance_authority10.cx)(className, disabled ? "text-on-surface/dim-3 pointer-events-none" : void 0),
|
|
496
|
-
asChild,
|
|
497
|
-
...others,
|
|
498
|
-
children: /* @__PURE__ */ (0, import_jsx_runtime16.jsxs)(import_jsx_runtime16.Fragment, { children: [
|
|
499
|
-
/* @__PURE__ */ (0, import_jsx_runtime16.jsx)(Slottable, { children }),
|
|
500
|
-
isRequired && requiredIndicator
|
|
501
|
-
] })
|
|
502
|
-
}
|
|
503
|
-
);
|
|
504
|
-
};
|
|
505
|
-
FormFieldLabel.displayName = "FormField.Label";
|
|
506
|
-
|
|
507
|
-
// src/form-field/FormFieldSuccessMessage.tsx
|
|
508
|
-
var import_jsx_runtime17 = require("react/jsx-runtime");
|
|
509
|
-
var FormFieldSuccessMessage = ({ ref, ...props }) => {
|
|
510
|
-
return /* @__PURE__ */ (0, import_jsx_runtime17.jsx)(
|
|
511
|
-
FormFieldStateMessage,
|
|
512
|
-
{
|
|
513
|
-
ref,
|
|
514
|
-
"data-spark-component": "form-field-success-message",
|
|
515
|
-
state: "success",
|
|
516
|
-
...props
|
|
517
|
-
}
|
|
518
|
-
);
|
|
519
|
-
};
|
|
520
|
-
FormFieldSuccessMessage.displayName = "FormField.SuccessMessage";
|
|
521
|
-
|
|
522
|
-
// src/form-field/index.ts
|
|
523
|
-
var FormField2 = Object.assign(FormField, {
|
|
524
|
-
Label: FormFieldLabel,
|
|
525
|
-
Control: FormFieldControl,
|
|
526
|
-
StateMessage: FormFieldStateMessage,
|
|
527
|
-
SuccessMessage: FormFieldSuccessMessage,
|
|
528
|
-
AlertMessage: FormFieldAlertMessage,
|
|
529
|
-
ErrorMessage: FormFieldErrorMessage,
|
|
530
|
-
HelperMessage: FormFieldHelperMessage,
|
|
531
|
-
RequiredIndicator: FormFieldRequiredIndicator,
|
|
532
|
-
CharactersCount: FormFieldCharactersCount
|
|
533
|
-
});
|
|
534
|
-
FormField2.displayName = "FormField";
|
|
535
|
-
FormFieldLabel.displayName = "FormField.Label";
|
|
536
|
-
FormFieldControl.displayName = "FormField.Control";
|
|
537
|
-
FormFieldStateMessage.displayName = "FormField.StateMessage";
|
|
538
|
-
FormFieldSuccessMessage.displayName = "FormField.SuccessMessage";
|
|
539
|
-
FormFieldAlertMessage.displayName = "FormField.AlertMessage";
|
|
540
|
-
FormFieldErrorMessage.displayName = "FormField.ErrorMessage";
|
|
541
|
-
FormFieldHelperMessage.displayName = "FormField.HelperMessage";
|
|
542
|
-
FormFieldRequiredIndicator.displayName = "FormField.RequiredIndicator";
|
|
543
|
-
FormFieldCharactersCount.displayName = "FormField.CharactersCount";
|
|
544
|
-
|
|
545
|
-
// src/combobox/ComboboxContext.tsx
|
|
546
|
-
var import_use_combined_state = require("@spark-ui/use-combined-state");
|
|
547
|
-
var import_downshift3 = require("downshift");
|
|
548
|
-
var import_react12 = require("react");
|
|
549
|
-
|
|
550
|
-
// src/popover/Popover.tsx
|
|
551
|
-
var import_radix_ui3 = require("radix-ui");
|
|
552
|
-
|
|
553
|
-
// src/popover/PopoverContext.tsx
|
|
554
|
-
var import_react8 = require("react");
|
|
555
|
-
var import_jsx_runtime18 = require("react/jsx-runtime");
|
|
556
|
-
var PopoverContext = (0, import_react8.createContext)(null);
|
|
557
|
-
var ID_PREFIX2 = ":popover";
|
|
558
|
-
var PopoverProvider = ({
|
|
559
|
-
children,
|
|
560
|
-
intent
|
|
561
|
-
}) => {
|
|
562
|
-
const [headerId, setHeaderId] = (0, import_react8.useState)(null);
|
|
563
|
-
return /* @__PURE__ */ (0, import_jsx_runtime18.jsx)(
|
|
564
|
-
PopoverContext.Provider,
|
|
565
|
-
{
|
|
566
|
-
value: {
|
|
567
|
-
headerId,
|
|
568
|
-
setHeaderId,
|
|
569
|
-
intent
|
|
570
|
-
},
|
|
571
|
-
children
|
|
572
|
-
}
|
|
573
|
-
);
|
|
574
|
-
};
|
|
575
|
-
var usePopover = () => {
|
|
576
|
-
const context = (0, import_react8.useContext)(PopoverContext);
|
|
577
|
-
if (!context) {
|
|
578
|
-
throw Error("usePopover must be used within a Popover provider");
|
|
579
|
-
}
|
|
580
|
-
return context;
|
|
581
|
-
};
|
|
582
|
-
|
|
583
|
-
// src/popover/Popover.tsx
|
|
584
|
-
var import_jsx_runtime19 = require("react/jsx-runtime");
|
|
585
|
-
var Popover = ({ children, intent = "surface", modal = false, ...rest }) => {
|
|
586
|
-
return /* @__PURE__ */ (0, import_jsx_runtime19.jsx)(PopoverProvider, { intent, children: /* @__PURE__ */ (0, import_jsx_runtime19.jsx)(import_radix_ui3.Popover.Root, { "data-spark-component": "popover", modal, ...rest, children }) });
|
|
587
|
-
};
|
|
588
|
-
Popover.displayName = "Popover";
|
|
589
|
-
|
|
590
|
-
// src/popover/PopoverAnchor.tsx
|
|
591
|
-
var import_radix_ui4 = require("radix-ui");
|
|
592
|
-
var import_jsx_runtime20 = require("react/jsx-runtime");
|
|
593
|
-
var Anchor = ({ asChild = false, children, ref, ...rest }) => /* @__PURE__ */ (0, import_jsx_runtime20.jsx)(import_radix_ui4.Popover.Anchor, { "data-spark-component": "popover-anchor", ref, asChild, ...rest, children });
|
|
594
|
-
Anchor.displayName = "Popover.Anchor";
|
|
595
|
-
|
|
596
|
-
// src/popover/PopoverArrow.tsx
|
|
597
|
-
var import_class_variance_authority11 = require("class-variance-authority");
|
|
598
|
-
var import_radix_ui5 = require("radix-ui");
|
|
599
|
-
var import_jsx_runtime21 = require("react/jsx-runtime");
|
|
600
|
-
var Arrow = ({
|
|
601
|
-
asChild = false,
|
|
602
|
-
width = 16,
|
|
603
|
-
height = 8,
|
|
604
|
-
className,
|
|
605
|
-
ref,
|
|
606
|
-
...rest
|
|
607
|
-
}) => {
|
|
608
|
-
const { intent } = usePopover();
|
|
609
|
-
const styles4 = (0, import_class_variance_authority11.cva)("visible", {
|
|
610
|
-
variants: {
|
|
611
|
-
intent: {
|
|
612
|
-
surface: "fill-surface",
|
|
613
|
-
main: "fill-main-container",
|
|
614
|
-
support: "fill-support-container",
|
|
615
|
-
accent: "fill-accent-container",
|
|
616
|
-
basic: "fill-basic-container",
|
|
617
|
-
success: "fill-success-container",
|
|
618
|
-
alert: "fill-alert-container",
|
|
619
|
-
danger: "fill-error-container",
|
|
620
|
-
info: "fill-info-container",
|
|
621
|
-
neutral: "fill-neutral-container"
|
|
622
|
-
}
|
|
623
|
-
},
|
|
624
|
-
defaultVariants: {
|
|
625
|
-
intent: "surface"
|
|
626
|
-
}
|
|
627
|
-
});
|
|
628
|
-
return /* @__PURE__ */ (0, import_jsx_runtime21.jsx)(
|
|
629
|
-
import_radix_ui5.Popover.Arrow,
|
|
630
|
-
{
|
|
631
|
-
"data-spark-component": "popover-arrow",
|
|
632
|
-
ref,
|
|
633
|
-
className: styles4({ intent, className }),
|
|
634
|
-
asChild,
|
|
635
|
-
width,
|
|
636
|
-
height,
|
|
637
|
-
...rest
|
|
638
|
-
}
|
|
639
|
-
);
|
|
640
|
-
};
|
|
641
|
-
Arrow.displayName = "Popover.Arrow";
|
|
642
|
-
|
|
643
|
-
// src/popover/PopoverCloseButton.tsx
|
|
644
|
-
var import_Close = require("@spark-ui/icons/Close");
|
|
645
|
-
var import_class_variance_authority16 = require("class-variance-authority");
|
|
646
|
-
var import_radix_ui6 = require("radix-ui");
|
|
647
|
-
|
|
648
238
|
// src/button/Button.tsx
|
|
649
|
-
var
|
|
650
|
-
var
|
|
239
|
+
var import_class_variance_authority5 = require("class-variance-authority");
|
|
240
|
+
var import_react4 = require("react");
|
|
651
241
|
|
|
652
242
|
// src/spinner/Spinner.styles.tsx
|
|
653
243
|
var import_internal_utils2 = require("@spark-ui/internal-utils");
|
|
654
|
-
var
|
|
244
|
+
var import_class_variance_authority3 = require("class-variance-authority");
|
|
655
245
|
var defaultVariants = {
|
|
656
246
|
intent: "current",
|
|
657
247
|
size: "current",
|
|
658
248
|
isBackgroundVisible: false
|
|
659
249
|
};
|
|
660
|
-
var spinnerStyles = (0,
|
|
250
|
+
var spinnerStyles = (0, import_class_variance_authority3.cva)(
|
|
661
251
|
["inline-block", "border-solid", "rounded-full", "border-md", "animate-spin"],
|
|
662
252
|
{
|
|
663
253
|
variants: {
|
|
@@ -698,7 +288,7 @@ var spinnerStyles = (0, import_class_variance_authority12.cva)(
|
|
|
698
288
|
);
|
|
699
289
|
|
|
700
290
|
// src/spinner/Spinner.tsx
|
|
701
|
-
var
|
|
291
|
+
var import_jsx_runtime8 = require("react/jsx-runtime");
|
|
702
292
|
var Spinner = ({
|
|
703
293
|
className,
|
|
704
294
|
size = "current",
|
|
@@ -708,7 +298,7 @@ var Spinner = ({
|
|
|
708
298
|
ref,
|
|
709
299
|
...others
|
|
710
300
|
}) => {
|
|
711
|
-
return /* @__PURE__ */ (0,
|
|
301
|
+
return /* @__PURE__ */ (0, import_jsx_runtime8.jsx)(
|
|
712
302
|
"span",
|
|
713
303
|
{
|
|
714
304
|
role: "status",
|
|
@@ -716,14 +306,14 @@ var Spinner = ({
|
|
|
716
306
|
ref,
|
|
717
307
|
className: spinnerStyles({ className, size, intent, isBackgroundVisible }),
|
|
718
308
|
...others,
|
|
719
|
-
children: label && /* @__PURE__ */ (0,
|
|
309
|
+
children: label && /* @__PURE__ */ (0, import_jsx_runtime8.jsx)(VisuallyHidden, { children: label })
|
|
720
310
|
}
|
|
721
311
|
);
|
|
722
312
|
};
|
|
723
313
|
|
|
724
314
|
// src/button/Button.styles.tsx
|
|
725
315
|
var import_internal_utils8 = require("@spark-ui/internal-utils");
|
|
726
|
-
var
|
|
316
|
+
var import_class_variance_authority4 = require("class-variance-authority");
|
|
727
317
|
|
|
728
318
|
// src/button/variants/filled.ts
|
|
729
319
|
var import_internal_utils3 = require("@spark-ui/internal-utils");
|
|
@@ -1277,7 +867,7 @@ var contrastVariants = [
|
|
|
1277
867
|
];
|
|
1278
868
|
|
|
1279
869
|
// src/button/Button.styles.tsx
|
|
1280
|
-
var buttonStyles = (0,
|
|
870
|
+
var buttonStyles = (0, import_class_variance_authority4.cva)(
|
|
1281
871
|
[
|
|
1282
872
|
"u-shadow-border-transition",
|
|
1283
873
|
"box-border inline-flex items-center justify-center gap-md whitespace-nowrap",
|
|
@@ -1364,7 +954,7 @@ var buttonStyles = (0, import_class_variance_authority13.cva)(
|
|
|
1364
954
|
);
|
|
1365
955
|
|
|
1366
956
|
// src/button/Button.tsx
|
|
1367
|
-
var
|
|
957
|
+
var import_jsx_runtime9 = require("react/jsx-runtime");
|
|
1368
958
|
var blockedEventHandlers = [
|
|
1369
959
|
"onClick",
|
|
1370
960
|
"onMouseDown",
|
|
@@ -1395,7 +985,7 @@ var Button = ({
|
|
|
1395
985
|
}) => {
|
|
1396
986
|
const Component = asChild ? Slot : "button";
|
|
1397
987
|
const shouldNotInteract = !!disabled || isLoading;
|
|
1398
|
-
const disabledEventHandlers = (0,
|
|
988
|
+
const disabledEventHandlers = (0, import_react4.useMemo)(() => {
|
|
1399
989
|
const result = {};
|
|
1400
990
|
if (shouldNotInteract) {
|
|
1401
991
|
blockedEventHandlers.forEach((eventHandler) => result[eventHandler] = void 0);
|
|
@@ -1407,7 +997,7 @@ var Button = ({
|
|
|
1407
997
|
className: loadingText ? "inline-block" : "absolute",
|
|
1408
998
|
...loadingLabel && { "aria-label": loadingLabel }
|
|
1409
999
|
};
|
|
1410
|
-
return /* @__PURE__ */ (0,
|
|
1000
|
+
return /* @__PURE__ */ (0, import_jsx_runtime9.jsx)(
|
|
1411
1001
|
Component,
|
|
1412
1002
|
{
|
|
1413
1003
|
"data-spark-component": "button",
|
|
@@ -1429,14 +1019,14 @@ var Button = ({
|
|
|
1429
1019
|
children: wrapPolymorphicSlot(
|
|
1430
1020
|
asChild,
|
|
1431
1021
|
children,
|
|
1432
|
-
(slotted) => isLoading ? /* @__PURE__ */ (0,
|
|
1433
|
-
/* @__PURE__ */ (0,
|
|
1022
|
+
(slotted) => isLoading ? /* @__PURE__ */ (0, import_jsx_runtime9.jsxs)(import_jsx_runtime9.Fragment, { children: [
|
|
1023
|
+
/* @__PURE__ */ (0, import_jsx_runtime9.jsx)(Spinner, { ...spinnerProps }),
|
|
1434
1024
|
loadingText && loadingText,
|
|
1435
|
-
/* @__PURE__ */ (0,
|
|
1025
|
+
/* @__PURE__ */ (0, import_jsx_runtime9.jsx)(
|
|
1436
1026
|
"div",
|
|
1437
1027
|
{
|
|
1438
1028
|
"aria-hidden": true,
|
|
1439
|
-
className: (0,
|
|
1029
|
+
className: (0, import_class_variance_authority5.cx)("gap-md", loadingText ? "hidden" : "inline-flex opacity-0"),
|
|
1440
1030
|
children: slotted
|
|
1441
1031
|
}
|
|
1442
1032
|
)
|
|
@@ -1449,8 +1039,8 @@ Button.displayName = "Button";
|
|
|
1449
1039
|
|
|
1450
1040
|
// src/icon-button/IconButton.styles.tsx
|
|
1451
1041
|
var import_internal_utils9 = require("@spark-ui/internal-utils");
|
|
1452
|
-
var
|
|
1453
|
-
var iconButtonStyles = (0,
|
|
1042
|
+
var import_class_variance_authority6 = require("class-variance-authority");
|
|
1043
|
+
var iconButtonStyles = (0, import_class_variance_authority6.cva)(["pl-0 pr-0"], {
|
|
1454
1044
|
variants: {
|
|
1455
1045
|
/**
|
|
1456
1046
|
* Sets the size of the icon.
|
|
@@ -1464,7 +1054,7 @@ var iconButtonStyles = (0, import_class_variance_authority15.cva)(["pl-0 pr-0"],
|
|
|
1464
1054
|
});
|
|
1465
1055
|
|
|
1466
1056
|
// src/icon-button/IconButton.tsx
|
|
1467
|
-
var
|
|
1057
|
+
var import_jsx_runtime10 = require("react/jsx-runtime");
|
|
1468
1058
|
var IconButton = ({
|
|
1469
1059
|
design = "filled",
|
|
1470
1060
|
disabled = false,
|
|
@@ -1475,7 +1065,7 @@ var IconButton = ({
|
|
|
1475
1065
|
ref,
|
|
1476
1066
|
...others
|
|
1477
1067
|
}) => {
|
|
1478
|
-
return /* @__PURE__ */ (0,
|
|
1068
|
+
return /* @__PURE__ */ (0, import_jsx_runtime10.jsx)(
|
|
1479
1069
|
Button,
|
|
1480
1070
|
{
|
|
1481
1071
|
ref,
|
|
@@ -1492,33 +1082,33 @@ var IconButton = ({
|
|
|
1492
1082
|
IconButton.displayName = "IconButton";
|
|
1493
1083
|
|
|
1494
1084
|
// src/popover/PopoverCloseButton.tsx
|
|
1495
|
-
var
|
|
1085
|
+
var import_jsx_runtime11 = require("react/jsx-runtime");
|
|
1496
1086
|
var CloseButton = ({
|
|
1497
1087
|
"aria-label": ariaLabel,
|
|
1498
1088
|
className,
|
|
1499
1089
|
ref,
|
|
1500
1090
|
...rest
|
|
1501
1091
|
}) => {
|
|
1502
|
-
return /* @__PURE__ */ (0,
|
|
1503
|
-
|
|
1092
|
+
return /* @__PURE__ */ (0, import_jsx_runtime11.jsx)(
|
|
1093
|
+
import_radix_ui5.Popover.Close,
|
|
1504
1094
|
{
|
|
1505
1095
|
"data-spark-component": "popover-close-button",
|
|
1506
1096
|
ref,
|
|
1507
|
-
className: (0,
|
|
1097
|
+
className: (0, import_class_variance_authority7.cx)("right-md top-md absolute", className),
|
|
1508
1098
|
asChild: true,
|
|
1509
1099
|
...rest,
|
|
1510
|
-
children: /* @__PURE__ */ (0,
|
|
1100
|
+
children: /* @__PURE__ */ (0, import_jsx_runtime11.jsx)(IconButton, { size: "sm", intent: "neutral", design: "ghost", "aria-label": ariaLabel, children: /* @__PURE__ */ (0, import_jsx_runtime11.jsx)(Icon, { children: /* @__PURE__ */ (0, import_jsx_runtime11.jsx)(import_Close.Close, {}) }) })
|
|
1511
1101
|
}
|
|
1512
1102
|
);
|
|
1513
1103
|
};
|
|
1514
1104
|
CloseButton.displayName = "Popover.CloseButton";
|
|
1515
1105
|
|
|
1516
1106
|
// src/popover/PopoverContent.tsx
|
|
1517
|
-
var
|
|
1107
|
+
var import_radix_ui6 = require("radix-ui");
|
|
1518
1108
|
|
|
1519
1109
|
// src/popover/PopoverContent.styles.ts
|
|
1520
|
-
var
|
|
1521
|
-
var styles = (0,
|
|
1110
|
+
var import_class_variance_authority8 = require("class-variance-authority");
|
|
1111
|
+
var styles = (0, import_class_variance_authority8.cva)(
|
|
1522
1112
|
[
|
|
1523
1113
|
"rounded-md",
|
|
1524
1114
|
"shadow-sm",
|
|
@@ -1579,7 +1169,7 @@ var styles = (0, import_class_variance_authority17.cva)(
|
|
|
1579
1169
|
);
|
|
1580
1170
|
|
|
1581
1171
|
// src/popover/PopoverContent.tsx
|
|
1582
|
-
var
|
|
1172
|
+
var import_jsx_runtime12 = require("react/jsx-runtime");
|
|
1583
1173
|
var Content = ({
|
|
1584
1174
|
// Spark props
|
|
1585
1175
|
className,
|
|
@@ -1604,8 +1194,8 @@ var Content = ({
|
|
|
1604
1194
|
...rest
|
|
1605
1195
|
}) => {
|
|
1606
1196
|
const { headerId, intent } = usePopover();
|
|
1607
|
-
return /* @__PURE__ */ (0,
|
|
1608
|
-
|
|
1197
|
+
return /* @__PURE__ */ (0, import_jsx_runtime12.jsx)(
|
|
1198
|
+
import_radix_ui6.Popover.Content,
|
|
1609
1199
|
{
|
|
1610
1200
|
"aria-labelledby": headerId || ariaLabelledBy,
|
|
1611
1201
|
className: styles({
|
|
@@ -1638,31 +1228,31 @@ var Content = ({
|
|
|
1638
1228
|
Content.displayName = "Popover.Content";
|
|
1639
1229
|
|
|
1640
1230
|
// src/popover/PopoverHeader.tsx
|
|
1641
|
-
var
|
|
1642
|
-
var
|
|
1643
|
-
var
|
|
1231
|
+
var import_class_variance_authority9 = require("class-variance-authority");
|
|
1232
|
+
var import_react5 = require("react");
|
|
1233
|
+
var import_jsx_runtime13 = require("react/jsx-runtime");
|
|
1644
1234
|
var Header = ({ children, className, ref, ...rest }) => {
|
|
1645
|
-
const id = `${
|
|
1235
|
+
const id = `${ID_PREFIX}-header-${(0, import_react5.useId)()}`;
|
|
1646
1236
|
const { setHeaderId } = usePopover();
|
|
1647
|
-
(0,
|
|
1237
|
+
(0, import_react5.useLayoutEffect)(() => {
|
|
1648
1238
|
setHeaderId(id);
|
|
1649
1239
|
return () => setHeaderId(null);
|
|
1650
1240
|
}, [id, setHeaderId]);
|
|
1651
|
-
return /* @__PURE__ */ (0,
|
|
1241
|
+
return /* @__PURE__ */ (0, import_jsx_runtime13.jsx)("header", { id, ref, className: (0, import_class_variance_authority9.cx)("mb-md text-headline-2", className), ...rest, children });
|
|
1652
1242
|
};
|
|
1653
1243
|
Header.displayName = "Popover.Header";
|
|
1654
1244
|
|
|
1655
1245
|
// src/popover/PopoverPortal.tsx
|
|
1656
|
-
var
|
|
1657
|
-
var
|
|
1658
|
-
var Portal = ({ children, ...rest }) => /* @__PURE__ */ (0,
|
|
1246
|
+
var import_radix_ui7 = require("radix-ui");
|
|
1247
|
+
var import_jsx_runtime14 = require("react/jsx-runtime");
|
|
1248
|
+
var Portal = ({ children, ...rest }) => /* @__PURE__ */ (0, import_jsx_runtime14.jsx)(import_radix_ui7.Popover.Portal, { ...rest, children });
|
|
1659
1249
|
Portal.displayName = "Popover.Portal";
|
|
1660
1250
|
|
|
1661
1251
|
// src/popover/PopoverTrigger.tsx
|
|
1662
|
-
var
|
|
1663
|
-
var
|
|
1664
|
-
var Trigger = ({ asChild = false, children, ref, ...rest }) => /* @__PURE__ */ (0,
|
|
1665
|
-
|
|
1252
|
+
var import_radix_ui8 = require("radix-ui");
|
|
1253
|
+
var import_jsx_runtime15 = require("react/jsx-runtime");
|
|
1254
|
+
var Trigger = ({ asChild = false, children, ref, ...rest }) => /* @__PURE__ */ (0, import_jsx_runtime15.jsx)(
|
|
1255
|
+
import_radix_ui8.Popover.Trigger,
|
|
1666
1256
|
{
|
|
1667
1257
|
"data-spark-component": "popover-trigger",
|
|
1668
1258
|
ref,
|
|
@@ -1696,7 +1286,7 @@ Trigger.displayName = "Popover.Trigger";
|
|
|
1696
1286
|
var import_downshift = require("downshift");
|
|
1697
1287
|
|
|
1698
1288
|
// src/combobox/utils/index.ts
|
|
1699
|
-
var
|
|
1289
|
+
var import_react6 = require("react");
|
|
1700
1290
|
function getIndexByKey(map, targetKey) {
|
|
1701
1291
|
let index = 0;
|
|
1702
1292
|
for (const [key] of map.entries()) {
|
|
@@ -1723,8 +1313,8 @@ var getElementDisplayName = (element) => {
|
|
|
1723
1313
|
return element ? element.type.displayName : "";
|
|
1724
1314
|
};
|
|
1725
1315
|
var getOrderedItems = (children, result = []) => {
|
|
1726
|
-
|
|
1727
|
-
if (!(0,
|
|
1316
|
+
import_react6.Children.forEach(children, (child) => {
|
|
1317
|
+
if (!(0, import_react6.isValidElement)(child)) return;
|
|
1728
1318
|
if (getElementDisplayName(child) === "Combobox.Item") {
|
|
1729
1319
|
const childProps = child.props;
|
|
1730
1320
|
result.push({
|
|
@@ -1741,8 +1331,8 @@ var getOrderedItems = (children, result = []) => {
|
|
|
1741
1331
|
};
|
|
1742
1332
|
var findNestedItemText = (children) => {
|
|
1743
1333
|
if (!children) return "";
|
|
1744
|
-
for (const child of
|
|
1745
|
-
if ((0,
|
|
1334
|
+
for (const child of import_react6.Children.toArray(children)) {
|
|
1335
|
+
if ((0, import_react6.isValidElement)(child)) {
|
|
1746
1336
|
const childElement = child;
|
|
1747
1337
|
if (getElementDisplayName(childElement) === "Combobox.ItemText") {
|
|
1748
1338
|
return childElement.props.children;
|
|
@@ -1764,8 +1354,8 @@ var getItemsFromChildren = (children) => {
|
|
|
1764
1354
|
return newMap;
|
|
1765
1355
|
};
|
|
1766
1356
|
var hasChildComponent = (children, displayName) => {
|
|
1767
|
-
return
|
|
1768
|
-
if (!(0,
|
|
1357
|
+
return import_react6.Children.toArray(children).some((child) => {
|
|
1358
|
+
if (!(0, import_react6.isValidElement)(child)) return false;
|
|
1769
1359
|
if (getElementDisplayName(child) === displayName) {
|
|
1770
1360
|
return true;
|
|
1771
1361
|
} else if (child.props.children) {
|
|
@@ -1775,7 +1365,7 @@ var hasChildComponent = (children, displayName) => {
|
|
|
1775
1365
|
});
|
|
1776
1366
|
};
|
|
1777
1367
|
var findElement = (children, value) => {
|
|
1778
|
-
return
|
|
1368
|
+
return import_react6.Children.toArray(children).filter(import_react6.isValidElement).find((child) => value === getElementDisplayName(child) || "");
|
|
1779
1369
|
};
|
|
1780
1370
|
|
|
1781
1371
|
// src/combobox/useCombobox/multipleSelectionReducer.ts
|
|
@@ -1883,15 +1473,15 @@ var singleSelectionReducer = ({
|
|
|
1883
1473
|
};
|
|
1884
1474
|
|
|
1885
1475
|
// src/combobox/ComboboxContext.tsx
|
|
1886
|
-
var
|
|
1887
|
-
var ComboboxContext = (0,
|
|
1476
|
+
var import_jsx_runtime16 = require("react/jsx-runtime");
|
|
1477
|
+
var ComboboxContext = (0, import_react7.createContext)(null);
|
|
1888
1478
|
var getFilteredItemsMap = (map, inputValue) => {
|
|
1889
1479
|
if (!inputValue) return map;
|
|
1890
1480
|
return new Map(
|
|
1891
1481
|
Array.from(map).filter(([_, { text }]) => text.toLowerCase().includes(inputValue.toLowerCase()))
|
|
1892
1482
|
);
|
|
1893
1483
|
};
|
|
1894
|
-
var
|
|
1484
|
+
var ID_PREFIX2 = ":combobox";
|
|
1895
1485
|
var ComboboxProvider = ({
|
|
1896
1486
|
children,
|
|
1897
1487
|
state: stateProp,
|
|
@@ -1911,22 +1501,22 @@ var ComboboxProvider = ({
|
|
|
1911
1501
|
onOpenChange,
|
|
1912
1502
|
isLoading
|
|
1913
1503
|
}) => {
|
|
1914
|
-
const isMounted = (0,
|
|
1915
|
-
const [inputValue, setInputValue] = (0,
|
|
1916
|
-
const [isTyping, setIsTyping] = (0,
|
|
1917
|
-
const triggerAreaRef = (0,
|
|
1918
|
-
const innerInputRef = (0,
|
|
1919
|
-
const [onInputValueChange, setOnInputValueChange] = (0,
|
|
1504
|
+
const isMounted = (0, import_react7.useRef)(false);
|
|
1505
|
+
const [inputValue, setInputValue] = (0, import_react7.useState)("");
|
|
1506
|
+
const [isTyping, setIsTyping] = (0, import_react7.useState)(filtering === "strict");
|
|
1507
|
+
const triggerAreaRef = (0, import_react7.useRef)(null);
|
|
1508
|
+
const innerInputRef = (0, import_react7.useRef)(null);
|
|
1509
|
+
const [onInputValueChange, setOnInputValueChange] = (0, import_react7.useState)(null);
|
|
1920
1510
|
const [comboboxValue] = (0, import_use_combined_state.useCombinedState)(controlledValue, defaultValue);
|
|
1921
1511
|
const shouldFilterItems = filtering === "strict" || filtering === "auto" && isTyping;
|
|
1922
|
-
const [itemsMap, setItemsMap] = (0,
|
|
1923
|
-
const [filteredItemsMap, setFilteredItems] = (0,
|
|
1512
|
+
const [itemsMap, setItemsMap] = (0, import_react7.useState)(getItemsFromChildren(children));
|
|
1513
|
+
const [filteredItemsMap, setFilteredItems] = (0, import_react7.useState)(
|
|
1924
1514
|
shouldFilterItems ? getFilteredItemsMap(itemsMap, inputValue) : itemsMap
|
|
1925
1515
|
);
|
|
1926
|
-
const [selectedItem, setSelectedItem] = (0,
|
|
1516
|
+
const [selectedItem, setSelectedItem] = (0, import_react7.useState)(
|
|
1927
1517
|
itemsMap.get(comboboxValue) || null
|
|
1928
1518
|
);
|
|
1929
|
-
const [selectedItems, setSelectedItems] = (0,
|
|
1519
|
+
const [selectedItems, setSelectedItems] = (0, import_react7.useState)(
|
|
1930
1520
|
comboboxValue ? [...itemsMap.values()].filter((item) => comboboxValue.includes(item.value)) : []
|
|
1931
1521
|
);
|
|
1932
1522
|
const onInternalSelectedItemChange = (item) => {
|
|
@@ -1944,7 +1534,7 @@ var ComboboxProvider = ({
|
|
|
1944
1534
|
onValueChange?.(items.map((i) => i.value));
|
|
1945
1535
|
}, 0);
|
|
1946
1536
|
};
|
|
1947
|
-
(0,
|
|
1537
|
+
(0, import_react7.useEffect)(() => {
|
|
1948
1538
|
if (!isMounted.current) {
|
|
1949
1539
|
isMounted.current = true;
|
|
1950
1540
|
return;
|
|
@@ -1962,19 +1552,19 @@ var ComboboxProvider = ({
|
|
|
1962
1552
|
setSelectedItem(itemsMap.get(comboboxValue) || null);
|
|
1963
1553
|
}
|
|
1964
1554
|
}, [multiple ? JSON.stringify(comboboxValue) : comboboxValue]);
|
|
1965
|
-
const field = useFormFieldControl();
|
|
1966
|
-
const internalFieldLabelID = `${
|
|
1967
|
-
const internalFieldID = `${
|
|
1555
|
+
const field = (0, import_form_field.useFormFieldControl)();
|
|
1556
|
+
const internalFieldLabelID = `${ID_PREFIX2}-label-${(0, import_react7.useId)()}`;
|
|
1557
|
+
const internalFieldID = `${ID_PREFIX2}-field-${(0, import_react7.useId)()}`;
|
|
1968
1558
|
const id = field.id || internalFieldID;
|
|
1969
1559
|
const labelId = field.labelId || internalFieldLabelID;
|
|
1970
1560
|
const state = field.state || stateProp;
|
|
1971
1561
|
const disabled = field.disabled ?? disabledProp;
|
|
1972
1562
|
const readOnly = field.readOnly ?? readOnlyProp;
|
|
1973
|
-
const [hasPopover, setHasPopover] = (0,
|
|
1563
|
+
const [hasPopover, setHasPopover] = (0, import_react7.useState)(
|
|
1974
1564
|
hasChildComponent(children, "Combobox.Popover")
|
|
1975
1565
|
);
|
|
1976
|
-
const [lastInteractionType, setLastInteractionType] = (0,
|
|
1977
|
-
(0,
|
|
1566
|
+
const [lastInteractionType, setLastInteractionType] = (0, import_react7.useState)("mouse");
|
|
1567
|
+
(0, import_react7.useEffect)(() => {
|
|
1978
1568
|
setFilteredItems(shouldFilterItems ? getFilteredItemsMap(itemsMap, inputValue) : itemsMap);
|
|
1979
1569
|
}, [inputValue, itemsMap]);
|
|
1980
1570
|
const multiselect = (0, import_downshift3.useMultipleSelection)({
|
|
@@ -2022,7 +1612,7 @@ var ComboboxProvider = ({
|
|
|
2022
1612
|
}
|
|
2023
1613
|
});
|
|
2024
1614
|
const filteredItems = Array.from(filteredItemsMap.values());
|
|
2025
|
-
(0,
|
|
1615
|
+
(0, import_react7.useEffect)(() => {
|
|
2026
1616
|
onInputValueChange?.(inputValue || "");
|
|
2027
1617
|
}, [inputValue]);
|
|
2028
1618
|
const downshift = (0, import_downshift3.useCombobox)({
|
|
@@ -2081,7 +1671,7 @@ var ComboboxProvider = ({
|
|
|
2081
1671
|
return void 0;
|
|
2082
1672
|
}
|
|
2083
1673
|
});
|
|
2084
|
-
(0,
|
|
1674
|
+
(0, import_react7.useEffect)(() => {
|
|
2085
1675
|
const newMap = getItemsFromChildren(children);
|
|
2086
1676
|
const previousItems = [...itemsMap.values()];
|
|
2087
1677
|
const newItems = [...newMap.values()];
|
|
@@ -2094,8 +1684,8 @@ var ComboboxProvider = ({
|
|
|
2094
1684
|
setItemsMap(newMap);
|
|
2095
1685
|
}
|
|
2096
1686
|
}, [children]);
|
|
2097
|
-
const [WrapperComponent, wrapperProps] = hasPopover ? [Popover2, { open: true }] : [
|
|
2098
|
-
return /* @__PURE__ */ (0,
|
|
1687
|
+
const [WrapperComponent, wrapperProps] = hasPopover ? [Popover2, { open: true }] : [import_react7.Fragment, {}];
|
|
1688
|
+
return /* @__PURE__ */ (0, import_jsx_runtime16.jsx)(
|
|
2099
1689
|
ComboboxContext.Provider,
|
|
2100
1690
|
{
|
|
2101
1691
|
value: {
|
|
@@ -2127,12 +1717,12 @@ var ComboboxProvider = ({
|
|
|
2127
1717
|
isTyping,
|
|
2128
1718
|
setIsTyping
|
|
2129
1719
|
},
|
|
2130
|
-
children: /* @__PURE__ */ (0,
|
|
1720
|
+
children: /* @__PURE__ */ (0, import_jsx_runtime16.jsx)(WrapperComponent, { ...wrapperProps, children })
|
|
2131
1721
|
}
|
|
2132
1722
|
);
|
|
2133
1723
|
};
|
|
2134
1724
|
var useComboboxContext = () => {
|
|
2135
|
-
const context = (0,
|
|
1725
|
+
const context = (0, import_react7.useContext)(ComboboxContext);
|
|
2136
1726
|
if (!context) {
|
|
2137
1727
|
throw Error("useComboboxContext must be used within a Combobox provider");
|
|
2138
1728
|
}
|
|
@@ -2140,16 +1730,16 @@ var useComboboxContext = () => {
|
|
|
2140
1730
|
};
|
|
2141
1731
|
|
|
2142
1732
|
// src/combobox/Combobox.tsx
|
|
2143
|
-
var
|
|
1733
|
+
var import_jsx_runtime17 = require("react/jsx-runtime");
|
|
2144
1734
|
var Combobox = ({ children, ...props }) => {
|
|
2145
|
-
return /* @__PURE__ */ (0,
|
|
1735
|
+
return /* @__PURE__ */ (0, import_jsx_runtime17.jsx)(ComboboxProvider, { ...props, children });
|
|
2146
1736
|
};
|
|
2147
1737
|
Combobox.displayName = "Combobox";
|
|
2148
1738
|
|
|
2149
1739
|
// src/combobox/ComboboxClearButton.tsx
|
|
2150
1740
|
var import_DeleteOutline = require("@spark-ui/icons/DeleteOutline");
|
|
2151
|
-
var
|
|
2152
|
-
var
|
|
1741
|
+
var import_class_variance_authority10 = require("class-variance-authority");
|
|
1742
|
+
var import_jsx_runtime18 = require("react/jsx-runtime");
|
|
2153
1743
|
var ClearButton = ({
|
|
2154
1744
|
className,
|
|
2155
1745
|
tabIndex = -1,
|
|
@@ -2173,16 +1763,16 @@ var ClearButton = ({
|
|
|
2173
1763
|
onClick(event);
|
|
2174
1764
|
}
|
|
2175
1765
|
};
|
|
2176
|
-
return /* @__PURE__ */ (0,
|
|
1766
|
+
return /* @__PURE__ */ (0, import_jsx_runtime18.jsx)(
|
|
2177
1767
|
"button",
|
|
2178
1768
|
{
|
|
2179
1769
|
ref,
|
|
2180
|
-
className: (0,
|
|
1770
|
+
className: (0, import_class_variance_authority10.cx)(className, "h-sz-44 text-neutral hover:text-neutral-hovered"),
|
|
2181
1771
|
tabIndex,
|
|
2182
1772
|
onClick: handleClick,
|
|
2183
1773
|
type: "button",
|
|
2184
1774
|
...others,
|
|
2185
|
-
children: /* @__PURE__ */ (0,
|
|
1775
|
+
children: /* @__PURE__ */ (0, import_jsx_runtime18.jsx)(Icon, { size: "sm", children: /* @__PURE__ */ (0, import_jsx_runtime18.jsx)(import_DeleteOutline.DeleteOutline, {}) })
|
|
2186
1776
|
}
|
|
2187
1777
|
);
|
|
2188
1778
|
};
|
|
@@ -2191,8 +1781,8 @@ ClearButton.displayName = "Combobox.ClearButton";
|
|
|
2191
1781
|
// src/combobox/ComboboxDisclosure.tsx
|
|
2192
1782
|
var import_ArrowHorizontalDown = require("@spark-ui/icons/ArrowHorizontalDown");
|
|
2193
1783
|
var import_use_merge_refs = require("@spark-ui/use-merge-refs");
|
|
2194
|
-
var
|
|
2195
|
-
var
|
|
1784
|
+
var import_class_variance_authority11 = require("class-variance-authority");
|
|
1785
|
+
var import_jsx_runtime19 = require("react/jsx-runtime");
|
|
2196
1786
|
var Disclosure = ({
|
|
2197
1787
|
className,
|
|
2198
1788
|
closedLabel,
|
|
@@ -2212,11 +1802,11 @@ var Disclosure = ({
|
|
|
2212
1802
|
});
|
|
2213
1803
|
const isExpanded = downshiftDisclosureProps["aria-expanded"];
|
|
2214
1804
|
const ref = (0, import_use_merge_refs.useMergeRefs)(forwardedRef, downshiftRef);
|
|
2215
|
-
return /* @__PURE__ */ (0,
|
|
1805
|
+
return /* @__PURE__ */ (0, import_jsx_runtime19.jsx)(
|
|
2216
1806
|
IconButton,
|
|
2217
1807
|
{
|
|
2218
1808
|
ref,
|
|
2219
|
-
className: (0,
|
|
1809
|
+
className: (0, import_class_variance_authority11.cx)(className, "mt-[calc((44px-32px)/2)]"),
|
|
2220
1810
|
intent,
|
|
2221
1811
|
design,
|
|
2222
1812
|
size,
|
|
@@ -2224,14 +1814,14 @@ var Disclosure = ({
|
|
|
2224
1814
|
...props,
|
|
2225
1815
|
"aria-label": isExpanded ? openedLabel : closedLabel,
|
|
2226
1816
|
disabled: ctx.disabled,
|
|
2227
|
-
children: /* @__PURE__ */ (0,
|
|
1817
|
+
children: /* @__PURE__ */ (0, import_jsx_runtime19.jsx)(
|
|
2228
1818
|
Icon,
|
|
2229
1819
|
{
|
|
2230
|
-
className: (0,
|
|
1820
|
+
className: (0, import_class_variance_authority11.cx)("shrink-0", "rotate-0 transition duration-100 ease-in", {
|
|
2231
1821
|
"rotate-180": isExpanded
|
|
2232
1822
|
}),
|
|
2233
1823
|
size: "sm",
|
|
2234
|
-
children: /* @__PURE__ */ (0,
|
|
1824
|
+
children: /* @__PURE__ */ (0, import_jsx_runtime19.jsx)(import_ArrowHorizontalDown.ArrowHorizontalDown, {})
|
|
2235
1825
|
}
|
|
2236
1826
|
)
|
|
2237
1827
|
}
|
|
@@ -2240,16 +1830,16 @@ var Disclosure = ({
|
|
|
2240
1830
|
Disclosure.displayName = "Combobox.Disclosure";
|
|
2241
1831
|
|
|
2242
1832
|
// src/combobox/ComboboxEmpty.tsx
|
|
2243
|
-
var
|
|
2244
|
-
var
|
|
1833
|
+
var import_class_variance_authority12 = require("class-variance-authority");
|
|
1834
|
+
var import_jsx_runtime20 = require("react/jsx-runtime");
|
|
2245
1835
|
var Empty = ({ className, children, ref: forwardedRef }) => {
|
|
2246
1836
|
const ctx = useComboboxContext();
|
|
2247
1837
|
const hasNoItemVisible = ctx.filteredItemsMap.size === 0;
|
|
2248
|
-
return hasNoItemVisible ? /* @__PURE__ */ (0,
|
|
1838
|
+
return hasNoItemVisible ? /* @__PURE__ */ (0, import_jsx_runtime20.jsx)(
|
|
2249
1839
|
"div",
|
|
2250
1840
|
{
|
|
2251
1841
|
ref: forwardedRef,
|
|
2252
|
-
className: (0,
|
|
1842
|
+
className: (0, import_class_variance_authority12.cx)("px-lg py-md text-body-1 text-on-surface/dim-1", className),
|
|
2253
1843
|
children
|
|
2254
1844
|
}
|
|
2255
1845
|
) : null;
|
|
@@ -2257,19 +1847,19 @@ var Empty = ({ className, children, ref: forwardedRef }) => {
|
|
|
2257
1847
|
Empty.displayName = "Combobox.Empty";
|
|
2258
1848
|
|
|
2259
1849
|
// src/combobox/ComboboxGroup.tsx
|
|
2260
|
-
var
|
|
2261
|
-
var
|
|
1850
|
+
var import_class_variance_authority13 = require("class-variance-authority");
|
|
1851
|
+
var import_react9 = require("react");
|
|
2262
1852
|
|
|
2263
1853
|
// src/combobox/ComboboxItemsGroupContext.tsx
|
|
2264
|
-
var
|
|
2265
|
-
var
|
|
2266
|
-
var ComboboxGroupContext = (0,
|
|
1854
|
+
var import_react8 = require("react");
|
|
1855
|
+
var import_jsx_runtime21 = require("react/jsx-runtime");
|
|
1856
|
+
var ComboboxGroupContext = (0, import_react8.createContext)(null);
|
|
2267
1857
|
var ComboboxGroupProvider = ({ children }) => {
|
|
2268
|
-
const groupLabelId = `${
|
|
2269
|
-
return /* @__PURE__ */ (0,
|
|
1858
|
+
const groupLabelId = `${ID_PREFIX2}-group-label-${(0, import_react8.useId)()}`;
|
|
1859
|
+
return /* @__PURE__ */ (0, import_jsx_runtime21.jsx)(ComboboxGroupContext.Provider, { value: { groupLabelId }, children });
|
|
2270
1860
|
};
|
|
2271
1861
|
var useComboboxGroupContext = () => {
|
|
2272
|
-
const context = (0,
|
|
1862
|
+
const context = (0, import_react8.useContext)(ComboboxGroupContext);
|
|
2273
1863
|
if (!context) {
|
|
2274
1864
|
throw Error("useComboboxGroupContext must be used within a ComboboxGroup provider");
|
|
2275
1865
|
}
|
|
@@ -2277,23 +1867,23 @@ var useComboboxGroupContext = () => {
|
|
|
2277
1867
|
};
|
|
2278
1868
|
|
|
2279
1869
|
// src/combobox/ComboboxGroup.tsx
|
|
2280
|
-
var
|
|
1870
|
+
var import_jsx_runtime22 = require("react/jsx-runtime");
|
|
2281
1871
|
var Group = ({ children, ref: forwardedRef, ...props }) => {
|
|
2282
|
-
return /* @__PURE__ */ (0,
|
|
1872
|
+
return /* @__PURE__ */ (0, import_jsx_runtime22.jsx)(ComboboxGroupProvider, { children: /* @__PURE__ */ (0, import_jsx_runtime22.jsx)(GroupContent, { ref: forwardedRef, ...props, children }) });
|
|
2283
1873
|
};
|
|
2284
1874
|
var GroupContent = ({ children, className, ref: forwardedRef }) => {
|
|
2285
1875
|
const ctx = useComboboxContext();
|
|
2286
1876
|
const groupCtx = useComboboxGroupContext();
|
|
2287
|
-
const hasVisibleOptions =
|
|
2288
|
-
return (0,
|
|
1877
|
+
const hasVisibleOptions = import_react9.Children.toArray(children).some((child) => {
|
|
1878
|
+
return (0, import_react9.isValidElement)(child) && ctx.filteredItemsMap.get(child.props.value);
|
|
2289
1879
|
});
|
|
2290
|
-
return hasVisibleOptions ? /* @__PURE__ */ (0,
|
|
1880
|
+
return hasVisibleOptions ? /* @__PURE__ */ (0, import_jsx_runtime22.jsx)(
|
|
2291
1881
|
"div",
|
|
2292
1882
|
{
|
|
2293
1883
|
ref: forwardedRef,
|
|
2294
1884
|
role: "group",
|
|
2295
1885
|
"aria-labelledby": groupCtx.groupLabelId,
|
|
2296
|
-
className: (0,
|
|
1886
|
+
className: (0, import_class_variance_authority13.cx)(className),
|
|
2297
1887
|
children
|
|
2298
1888
|
}
|
|
2299
1889
|
) : null;
|
|
@@ -2303,9 +1893,9 @@ Group.displayName = "Combobox.Group";
|
|
|
2303
1893
|
// src/combobox/ComboboxInput.tsx
|
|
2304
1894
|
var import_use_combined_state2 = require("@spark-ui/use-combined-state");
|
|
2305
1895
|
var import_use_merge_refs2 = require("@spark-ui/use-merge-refs");
|
|
2306
|
-
var
|
|
2307
|
-
var
|
|
2308
|
-
var
|
|
1896
|
+
var import_class_variance_authority14 = require("class-variance-authority");
|
|
1897
|
+
var import_react10 = require("react");
|
|
1898
|
+
var import_jsx_runtime23 = require("react/jsx-runtime");
|
|
2309
1899
|
var Input = ({
|
|
2310
1900
|
"aria-label": ariaLabel,
|
|
2311
1901
|
className,
|
|
@@ -2318,12 +1908,12 @@ var Input = ({
|
|
|
2318
1908
|
}) => {
|
|
2319
1909
|
const ctx = useComboboxContext();
|
|
2320
1910
|
const [inputValue] = (0, import_use_combined_state2.useCombinedState)(value, defaultValue);
|
|
2321
|
-
(0,
|
|
1911
|
+
(0, import_react10.useEffect)(() => {
|
|
2322
1912
|
if (inputValue != null) {
|
|
2323
1913
|
ctx.setInputValue(inputValue);
|
|
2324
1914
|
}
|
|
2325
1915
|
}, [inputValue]);
|
|
2326
|
-
(0,
|
|
1916
|
+
(0, import_react10.useEffect)(() => {
|
|
2327
1917
|
if (onValueChange) {
|
|
2328
1918
|
ctx.setOnInputValueChange(() => onValueChange);
|
|
2329
1919
|
}
|
|
@@ -2331,7 +1921,7 @@ var Input = ({
|
|
|
2331
1921
|
ctx.setInputValue(ctx.selectedItem.text);
|
|
2332
1922
|
}
|
|
2333
1923
|
}, []);
|
|
2334
|
-
const [PopoverTrigger, popoverTriggerProps] = ctx.hasPopover ? [Popover2.Trigger, { asChild: true, type: void 0 }] : [
|
|
1924
|
+
const [PopoverTrigger, popoverTriggerProps] = ctx.hasPopover ? [Popover2.Trigger, { asChild: true, type: void 0 }] : [import_react10.Fragment, {}];
|
|
2335
1925
|
const multiselectInputProps = ctx.getDropdownProps();
|
|
2336
1926
|
const inputRef = (0, import_use_merge_refs2.useMergeRefs)(forwardedRef, ctx.innerInputRef, multiselectInputProps.ref);
|
|
2337
1927
|
const downshiftInputProps = ctx.getInputProps({
|
|
@@ -2366,15 +1956,15 @@ var Input = ({
|
|
|
2366
1956
|
onClick: mergeHandlers(props.onClick, downshiftInputProps.onClick),
|
|
2367
1957
|
onKeyDown: mergeHandlers(props.onKeyDown, downshiftInputProps.onKeyDown)
|
|
2368
1958
|
};
|
|
2369
|
-
return /* @__PURE__ */ (0,
|
|
2370
|
-
ariaLabel && /* @__PURE__ */ (0,
|
|
2371
|
-
/* @__PURE__ */ (0,
|
|
1959
|
+
return /* @__PURE__ */ (0, import_jsx_runtime23.jsxs)(import_jsx_runtime23.Fragment, { children: [
|
|
1960
|
+
ariaLabel && /* @__PURE__ */ (0, import_jsx_runtime23.jsx)(VisuallyHidden, { children: /* @__PURE__ */ (0, import_jsx_runtime23.jsx)("label", { ...ctx.getLabelProps(), children: ariaLabel }) }),
|
|
1961
|
+
/* @__PURE__ */ (0, import_jsx_runtime23.jsx)(PopoverTrigger, { ...popoverTriggerProps, children: /* @__PURE__ */ (0, import_jsx_runtime23.jsx)(
|
|
2372
1962
|
"input",
|
|
2373
1963
|
{
|
|
2374
1964
|
"data-spark-component": "combobox-input",
|
|
2375
1965
|
type: "text",
|
|
2376
1966
|
...hasPlaceholder && { placeholder },
|
|
2377
|
-
className: (0,
|
|
1967
|
+
className: (0, import_class_variance_authority14.cx)(
|
|
2378
1968
|
"max-w-full shrink-0 grow basis-[80px]",
|
|
2379
1969
|
"h-sz-28 bg-surface px-sm text-body-1 text-ellipsis outline-hidden",
|
|
2380
1970
|
"disabled:text-on-surface/dim-3 disabled:cursor-not-allowed disabled:bg-transparent",
|
|
@@ -2396,23 +1986,23 @@ Input.displayName = "Combobox.Input";
|
|
|
2396
1986
|
|
|
2397
1987
|
// src/combobox/ComboboxItem.tsx
|
|
2398
1988
|
var import_use_merge_refs3 = require("@spark-ui/use-merge-refs");
|
|
2399
|
-
var
|
|
1989
|
+
var import_class_variance_authority15 = require("class-variance-authority");
|
|
2400
1990
|
|
|
2401
1991
|
// src/combobox/ComboboxItemContext.tsx
|
|
2402
|
-
var
|
|
2403
|
-
var
|
|
2404
|
-
var ComboboxItemContext = (0,
|
|
1992
|
+
var import_react11 = require("react");
|
|
1993
|
+
var import_jsx_runtime24 = require("react/jsx-runtime");
|
|
1994
|
+
var ComboboxItemContext = (0, import_react11.createContext)(null);
|
|
2405
1995
|
var ComboboxItemProvider = ({
|
|
2406
1996
|
value,
|
|
2407
1997
|
disabled = false,
|
|
2408
1998
|
children
|
|
2409
1999
|
}) => {
|
|
2410
2000
|
const ctx = useComboboxContext();
|
|
2411
|
-
const [textId, setTextId] = (0,
|
|
2001
|
+
const [textId, setTextId] = (0, import_react11.useState)(void 0);
|
|
2412
2002
|
const index = getIndexByKey(ctx.filteredItemsMap, value);
|
|
2413
2003
|
const itemData = { disabled, value, text: getItemText(children) };
|
|
2414
2004
|
const isSelected = ctx.multiple ? ctx.selectedItems.some((selectedItem) => selectedItem.value === value) : ctx.selectedItem?.value === value;
|
|
2415
|
-
return /* @__PURE__ */ (0,
|
|
2005
|
+
return /* @__PURE__ */ (0, import_jsx_runtime24.jsx)(
|
|
2416
2006
|
ComboboxItemContext.Provider,
|
|
2417
2007
|
{
|
|
2418
2008
|
value: { textId, setTextId, isSelected, itemData, index, disabled },
|
|
@@ -2421,7 +2011,7 @@ var ComboboxItemProvider = ({
|
|
|
2421
2011
|
);
|
|
2422
2012
|
};
|
|
2423
2013
|
var useComboboxItemContext = () => {
|
|
2424
|
-
const context = (0,
|
|
2014
|
+
const context = (0, import_react11.useContext)(ComboboxItemContext);
|
|
2425
2015
|
if (!context) {
|
|
2426
2016
|
throw Error("useComboboxItemContext must be used within a ComboboxItem provider");
|
|
2427
2017
|
}
|
|
@@ -2429,12 +2019,12 @@ var useComboboxItemContext = () => {
|
|
|
2429
2019
|
};
|
|
2430
2020
|
|
|
2431
2021
|
// src/combobox/ComboboxItem.tsx
|
|
2432
|
-
var
|
|
2022
|
+
var import_jsx_runtime25 = require("react/jsx-runtime");
|
|
2433
2023
|
var Item = ({ children, ref: forwardedRef, ...props }) => {
|
|
2434
2024
|
const { value, disabled } = props;
|
|
2435
|
-
return /* @__PURE__ */ (0,
|
|
2025
|
+
return /* @__PURE__ */ (0, import_jsx_runtime25.jsx)(ComboboxItemProvider, { value, disabled, children: /* @__PURE__ */ (0, import_jsx_runtime25.jsx)(ItemContent, { ref: forwardedRef, ...props, children }) });
|
|
2436
2026
|
};
|
|
2437
|
-
var styles2 = (0,
|
|
2027
|
+
var styles2 = (0, import_class_variance_authority15.cva)("px-lg py-md text-body-1", {
|
|
2438
2028
|
variants: {
|
|
2439
2029
|
selected: {
|
|
2440
2030
|
true: "font-bold"
|
|
@@ -2480,11 +2070,11 @@ var ItemContent = ({
|
|
|
2480
2070
|
});
|
|
2481
2071
|
const ref = (0, import_use_merge_refs3.useMergeRefs)(forwardedRef, downshiftRef);
|
|
2482
2072
|
if (!isVisible) return null;
|
|
2483
|
-
return /* @__PURE__ */ (0,
|
|
2073
|
+
return /* @__PURE__ */ (0, import_jsx_runtime25.jsx)(
|
|
2484
2074
|
"li",
|
|
2485
2075
|
{
|
|
2486
2076
|
ref,
|
|
2487
|
-
className: (0,
|
|
2077
|
+
className: (0, import_class_variance_authority15.cx)(
|
|
2488
2078
|
styles2({
|
|
2489
2079
|
selected: itemCtx.isSelected,
|
|
2490
2080
|
disabled,
|
|
@@ -2504,9 +2094,9 @@ var ItemContent = ({
|
|
|
2504
2094
|
Item.displayName = "Combobox.Item";
|
|
2505
2095
|
|
|
2506
2096
|
// src/combobox/ComboboxItemIndicator.tsx
|
|
2507
|
-
var
|
|
2508
|
-
var
|
|
2509
|
-
var
|
|
2097
|
+
var import_Check = require("@spark-ui/icons/Check");
|
|
2098
|
+
var import_class_variance_authority16 = require("class-variance-authority");
|
|
2099
|
+
var import_jsx_runtime26 = require("react/jsx-runtime");
|
|
2510
2100
|
var ItemIndicator = ({
|
|
2511
2101
|
className,
|
|
2512
2102
|
children,
|
|
@@ -2514,12 +2104,12 @@ var ItemIndicator = ({
|
|
|
2514
2104
|
ref: forwardedRef
|
|
2515
2105
|
}) => {
|
|
2516
2106
|
const { disabled, isSelected } = useComboboxItemContext();
|
|
2517
|
-
const childElement = children || /* @__PURE__ */ (0,
|
|
2518
|
-
return /* @__PURE__ */ (0,
|
|
2107
|
+
const childElement = children || /* @__PURE__ */ (0, import_jsx_runtime26.jsx)(Icon, { size: "sm", children: /* @__PURE__ */ (0, import_jsx_runtime26.jsx)(import_Check.Check, { "aria-label": label }) });
|
|
2108
|
+
return /* @__PURE__ */ (0, import_jsx_runtime26.jsx)(
|
|
2519
2109
|
"span",
|
|
2520
2110
|
{
|
|
2521
2111
|
ref: forwardedRef,
|
|
2522
|
-
className: (0,
|
|
2112
|
+
className: (0, import_class_variance_authority16.cx)("min-h-sz-16 min-w-sz-16 flex", disabled && "opacity-dim-3", className),
|
|
2523
2113
|
children: isSelected && childElement
|
|
2524
2114
|
}
|
|
2525
2115
|
);
|
|
@@ -2528,9 +2118,9 @@ ItemIndicator.displayName = "Combobox.ItemIndicator";
|
|
|
2528
2118
|
|
|
2529
2119
|
// src/combobox/ComboboxItems.tsx
|
|
2530
2120
|
var import_use_merge_refs4 = require("@spark-ui/use-merge-refs");
|
|
2531
|
-
var
|
|
2532
|
-
var
|
|
2533
|
-
var
|
|
2121
|
+
var import_class_variance_authority17 = require("class-variance-authority");
|
|
2122
|
+
var import_react12 = require("react");
|
|
2123
|
+
var import_jsx_runtime27 = require("react/jsx-runtime");
|
|
2534
2124
|
var Items = ({ children, className, ref: forwardedRef, ...props }) => {
|
|
2535
2125
|
const ctx = useComboboxContext();
|
|
2536
2126
|
const { ref: downshiftRef, ...downshiftMenuProps } = ctx.getMenuProps({
|
|
@@ -2538,21 +2128,21 @@ var Items = ({ children, className, ref: forwardedRef, ...props }) => {
|
|
|
2538
2128
|
ctx.setLastInteractionType("mouse");
|
|
2539
2129
|
}
|
|
2540
2130
|
});
|
|
2541
|
-
const innerRef = (0,
|
|
2131
|
+
const innerRef = (0, import_react12.useRef)(null);
|
|
2542
2132
|
const ref = (0, import_use_merge_refs4.useMergeRefs)(forwardedRef, downshiftRef, innerRef);
|
|
2543
2133
|
const isOpen = ctx.hasPopover ? ctx.isOpen : true;
|
|
2544
2134
|
const isPointerEventsDisabled = ctx.hasPopover && !isOpen;
|
|
2545
|
-
(0,
|
|
2135
|
+
(0, import_react12.useLayoutEffect)(() => {
|
|
2546
2136
|
if (innerRef.current?.parentElement) {
|
|
2547
2137
|
innerRef.current.parentElement.style.pointerEvents = isPointerEventsDisabled ? "none" : "";
|
|
2548
2138
|
innerRef.current.style.pointerEvents = isPointerEventsDisabled ? "none" : "";
|
|
2549
2139
|
}
|
|
2550
2140
|
}, [isPointerEventsDisabled]);
|
|
2551
|
-
return /* @__PURE__ */ (0,
|
|
2141
|
+
return /* @__PURE__ */ (0, import_jsx_runtime27.jsx)(
|
|
2552
2142
|
"ul",
|
|
2553
2143
|
{
|
|
2554
2144
|
ref,
|
|
2555
|
-
className: (0,
|
|
2145
|
+
className: (0, import_class_variance_authority17.cx)(
|
|
2556
2146
|
className,
|
|
2557
2147
|
"flex flex-col",
|
|
2558
2148
|
isOpen ? "block" : "pointer-events-none invisible opacity-0",
|
|
@@ -2563,55 +2153,55 @@ var Items = ({ children, className, ref: forwardedRef, ...props }) => {
|
|
|
2563
2153
|
...downshiftMenuProps,
|
|
2564
2154
|
"aria-busy": ctx.isLoading,
|
|
2565
2155
|
"data-spark-component": "combobox-items",
|
|
2566
|
-
children: ctx.isLoading ? /* @__PURE__ */ (0,
|
|
2156
|
+
children: ctx.isLoading ? /* @__PURE__ */ (0, import_jsx_runtime27.jsx)(Spinner, { size: "sm" }) : children
|
|
2567
2157
|
}
|
|
2568
2158
|
);
|
|
2569
2159
|
};
|
|
2570
2160
|
Items.displayName = "Combobox.Items";
|
|
2571
2161
|
|
|
2572
2162
|
// src/combobox/ComboboxItemText.tsx
|
|
2573
|
-
var
|
|
2574
|
-
var
|
|
2575
|
-
var
|
|
2163
|
+
var import_class_variance_authority18 = require("class-variance-authority");
|
|
2164
|
+
var import_react13 = require("react");
|
|
2165
|
+
var import_jsx_runtime28 = require("react/jsx-runtime");
|
|
2576
2166
|
var ItemText = ({ children, className, ref: forwardedRef }) => {
|
|
2577
|
-
const id = `${
|
|
2167
|
+
const id = `${ID_PREFIX2}-item-text-${(0, import_react13.useId)()}`;
|
|
2578
2168
|
const { setTextId } = useComboboxItemContext();
|
|
2579
|
-
(0,
|
|
2169
|
+
(0, import_react13.useEffect)(() => {
|
|
2580
2170
|
setTextId(id);
|
|
2581
2171
|
return () => setTextId(void 0);
|
|
2582
2172
|
});
|
|
2583
|
-
return /* @__PURE__ */ (0,
|
|
2173
|
+
return /* @__PURE__ */ (0, import_jsx_runtime28.jsx)("span", { id, className: (0, import_class_variance_authority18.cx)("inline", className), ref: forwardedRef, children });
|
|
2584
2174
|
};
|
|
2585
2175
|
ItemText.displayName = "Combobox.ItemText";
|
|
2586
2176
|
|
|
2587
2177
|
// src/combobox/ComboboxLabel.tsx
|
|
2588
|
-
var
|
|
2589
|
-
var
|
|
2590
|
-
var
|
|
2178
|
+
var import_class_variance_authority19 = require("class-variance-authority");
|
|
2179
|
+
var import_jsx_runtime29 = require("react/jsx-runtime");
|
|
2180
|
+
var Label = ({ children, className, ref: forwardedRef }) => {
|
|
2591
2181
|
const groupCtx = useComboboxGroupContext();
|
|
2592
|
-
return /* @__PURE__ */ (0,
|
|
2182
|
+
return /* @__PURE__ */ (0, import_jsx_runtime29.jsx)(
|
|
2593
2183
|
"div",
|
|
2594
2184
|
{
|
|
2595
2185
|
ref: forwardedRef,
|
|
2596
2186
|
id: groupCtx.groupLabelId,
|
|
2597
|
-
className: (0,
|
|
2187
|
+
className: (0, import_class_variance_authority19.cx)("px-md py-sm text-body-2 text-neutral italic", className),
|
|
2598
2188
|
children
|
|
2599
2189
|
}
|
|
2600
2190
|
);
|
|
2601
2191
|
};
|
|
2602
|
-
|
|
2192
|
+
Label.displayName = "Combobox.Label";
|
|
2603
2193
|
|
|
2604
2194
|
// src/combobox/ComboboxLeadingIcon.tsx
|
|
2605
|
-
var
|
|
2195
|
+
var import_jsx_runtime30 = require("react/jsx-runtime");
|
|
2606
2196
|
var LeadingIcon = ({ children }) => {
|
|
2607
|
-
return /* @__PURE__ */ (0,
|
|
2197
|
+
return /* @__PURE__ */ (0, import_jsx_runtime30.jsx)(Icon, { size: "sm", className: "h-sz-44 shrink-0", children });
|
|
2608
2198
|
};
|
|
2609
2199
|
LeadingIcon.displayName = "Combobox.LeadingIcon";
|
|
2610
2200
|
|
|
2611
2201
|
// src/combobox/ComboboxPopover.tsx
|
|
2612
|
-
var
|
|
2613
|
-
var
|
|
2614
|
-
var
|
|
2202
|
+
var import_class_variance_authority20 = require("class-variance-authority");
|
|
2203
|
+
var import_react14 = require("react");
|
|
2204
|
+
var import_jsx_runtime31 = require("react/jsx-runtime");
|
|
2615
2205
|
var Popover3 = ({
|
|
2616
2206
|
children,
|
|
2617
2207
|
matchTriggerWidth = true,
|
|
@@ -2621,18 +2211,18 @@ var Popover3 = ({
|
|
|
2621
2211
|
...props
|
|
2622
2212
|
}) => {
|
|
2623
2213
|
const ctx = useComboboxContext();
|
|
2624
|
-
(0,
|
|
2214
|
+
(0, import_react14.useEffect)(() => {
|
|
2625
2215
|
ctx.setHasPopover(true);
|
|
2626
2216
|
return () => ctx.setHasPopover(false);
|
|
2627
2217
|
}, []);
|
|
2628
|
-
return /* @__PURE__ */ (0,
|
|
2218
|
+
return /* @__PURE__ */ (0, import_jsx_runtime31.jsx)(
|
|
2629
2219
|
Popover2.Content,
|
|
2630
2220
|
{
|
|
2631
2221
|
ref: forwardedRef,
|
|
2632
2222
|
inset: true,
|
|
2633
2223
|
asChild: true,
|
|
2634
2224
|
matchTriggerWidth,
|
|
2635
|
-
className: (0,
|
|
2225
|
+
className: (0, import_class_variance_authority20.cx)("z-dropdown! relative", className),
|
|
2636
2226
|
sideOffset,
|
|
2637
2227
|
onOpenAutoFocus: (e) => {
|
|
2638
2228
|
e.preventDefault();
|
|
@@ -2646,14 +2236,14 @@ var Popover3 = ({
|
|
|
2646
2236
|
Popover3.displayName = "Combobox.Popover";
|
|
2647
2237
|
|
|
2648
2238
|
// src/combobox/ComboboxPortal.tsx
|
|
2649
|
-
var
|
|
2650
|
-
var Portal2 = ({ children, ...rest }) => /* @__PURE__ */ (0,
|
|
2239
|
+
var import_jsx_runtime32 = require("react/jsx-runtime");
|
|
2240
|
+
var Portal2 = ({ children, ...rest }) => /* @__PURE__ */ (0, import_jsx_runtime32.jsx)(Popover2.Portal, { ...rest, children });
|
|
2651
2241
|
Portal2.displayName = "Combobox.Portal";
|
|
2652
2242
|
|
|
2653
2243
|
// src/combobox/ComboboxSelectedItems.tsx
|
|
2654
2244
|
var import_DeleteOutline2 = require("@spark-ui/icons/DeleteOutline");
|
|
2655
|
-
var
|
|
2656
|
-
var
|
|
2245
|
+
var import_class_variance_authority21 = require("class-variance-authority");
|
|
2246
|
+
var import_jsx_runtime33 = require("react/jsx-runtime");
|
|
2657
2247
|
var SelectedItem = ({ item: selectedItem, index }) => {
|
|
2658
2248
|
const ctx = useComboboxContext();
|
|
2659
2249
|
const isCleanable = !ctx.disabled && !ctx.readOnly;
|
|
@@ -2673,12 +2263,12 @@ var SelectedItem = ({ item: selectedItem, index }) => {
|
|
|
2673
2263
|
index
|
|
2674
2264
|
});
|
|
2675
2265
|
const Element = disabled ? "button" : "span";
|
|
2676
|
-
return /* @__PURE__ */ (0,
|
|
2266
|
+
return /* @__PURE__ */ (0, import_jsx_runtime33.jsxs)(
|
|
2677
2267
|
Element,
|
|
2678
2268
|
{
|
|
2679
2269
|
role: "presentation",
|
|
2680
2270
|
"data-spark-component": "combobox-selected-item",
|
|
2681
|
-
className: (0,
|
|
2271
|
+
className: (0, import_class_variance_authority21.cx)(
|
|
2682
2272
|
"h-sz-28 bg-neutral-container flex items-center rounded-md align-middle",
|
|
2683
2273
|
"text-body-2 text-on-neutral-container",
|
|
2684
2274
|
"disabled:opacity-dim-3 disabled:cursor-not-allowed",
|
|
@@ -2690,17 +2280,17 @@ var SelectedItem = ({ item: selectedItem, index }) => {
|
|
|
2690
2280
|
...disabled && { disabled: true },
|
|
2691
2281
|
onFocus: handleFocus,
|
|
2692
2282
|
children: [
|
|
2693
|
-
/* @__PURE__ */ (0,
|
|
2283
|
+
/* @__PURE__ */ (0, import_jsx_runtime33.jsx)(
|
|
2694
2284
|
"span",
|
|
2695
2285
|
{
|
|
2696
|
-
className: (0,
|
|
2286
|
+
className: (0, import_class_variance_authority21.cx)("line-clamp-1 overflow-x-hidden leading-normal break-all text-ellipsis", {
|
|
2697
2287
|
"w-max": !ctx.wrap
|
|
2698
2288
|
}),
|
|
2699
2289
|
children: selectedItem.text
|
|
2700
2290
|
}
|
|
2701
2291
|
),
|
|
2702
2292
|
ctx.disabled,
|
|
2703
|
-
isCleanable && /* @__PURE__ */ (0,
|
|
2293
|
+
isCleanable && /* @__PURE__ */ (0, import_jsx_runtime33.jsx)(
|
|
2704
2294
|
"button",
|
|
2705
2295
|
{
|
|
2706
2296
|
type: "button",
|
|
@@ -2717,7 +2307,7 @@ var SelectedItem = ({ item: selectedItem, index }) => {
|
|
|
2717
2307
|
ctx.innerInputRef.current.focus({ preventScroll: true });
|
|
2718
2308
|
}
|
|
2719
2309
|
},
|
|
2720
|
-
children: /* @__PURE__ */ (0,
|
|
2310
|
+
children: /* @__PURE__ */ (0, import_jsx_runtime33.jsx)(Icon, { size: "sm", children: /* @__PURE__ */ (0, import_jsx_runtime33.jsx)(import_DeleteOutline2.DeleteOutline, {}) })
|
|
2721
2311
|
}
|
|
2722
2312
|
)
|
|
2723
2313
|
]
|
|
@@ -2727,18 +2317,19 @@ var SelectedItem = ({ item: selectedItem, index }) => {
|
|
|
2727
2317
|
};
|
|
2728
2318
|
var SelectedItems = () => {
|
|
2729
2319
|
const ctx = useComboboxContext();
|
|
2730
|
-
return ctx.multiple && ctx.selectedItems.length ? /* @__PURE__ */ (0,
|
|
2320
|
+
return ctx.multiple && ctx.selectedItems.length ? /* @__PURE__ */ (0, import_jsx_runtime33.jsx)(import_jsx_runtime33.Fragment, { children: ctx.selectedItems.map((item, index) => /* @__PURE__ */ (0, import_jsx_runtime33.jsx)(SelectedItem, { item, index }, item.value)) }) : null;
|
|
2731
2321
|
};
|
|
2732
2322
|
SelectedItems.displayName = "Combobox.SelectedItems";
|
|
2733
2323
|
|
|
2734
2324
|
// src/combobox/ComboboxTrigger.tsx
|
|
2325
|
+
var import_form_field2 = require("@spark-ui/components/form-field");
|
|
2735
2326
|
var import_use_merge_refs5 = require("@spark-ui/use-merge-refs");
|
|
2736
|
-
var
|
|
2737
|
-
var
|
|
2327
|
+
var import_class_variance_authority23 = require("class-variance-authority");
|
|
2328
|
+
var import_react16 = require("react");
|
|
2738
2329
|
|
|
2739
2330
|
// src/combobox/ComboboxTrigger.styles.tsx
|
|
2740
|
-
var
|
|
2741
|
-
var styles3 = (0,
|
|
2331
|
+
var import_class_variance_authority22 = require("class-variance-authority");
|
|
2332
|
+
var styles3 = (0, import_class_variance_authority22.cva)(
|
|
2742
2333
|
[
|
|
2743
2334
|
"flex items-start gap-md min-h-sz-44 text-body-1",
|
|
2744
2335
|
"h-fit rounded-lg px-lg",
|
|
@@ -2785,10 +2376,10 @@ var styles3 = (0, import_class_variance_authority31.cva)(
|
|
|
2785
2376
|
);
|
|
2786
2377
|
|
|
2787
2378
|
// src/combobox/utils/useWidthIncreaseCallback.ts
|
|
2788
|
-
var
|
|
2379
|
+
var import_react15 = require("react");
|
|
2789
2380
|
var useWidthIncreaseCallback = (elementRef, callback) => {
|
|
2790
|
-
const prevWidthRef = (0,
|
|
2791
|
-
(0,
|
|
2381
|
+
const prevWidthRef = (0, import_react15.useRef)(null);
|
|
2382
|
+
(0, import_react15.useEffect)(() => {
|
|
2792
2383
|
const checkWidthIncrease = () => {
|
|
2793
2384
|
const currentWidth = elementRef.current?.scrollWidth || null;
|
|
2794
2385
|
if (prevWidthRef.current && currentWidth && currentWidth > prevWidthRef.current) {
|
|
@@ -2803,18 +2394,18 @@ var useWidthIncreaseCallback = (elementRef, callback) => {
|
|
|
2803
2394
|
};
|
|
2804
2395
|
|
|
2805
2396
|
// src/combobox/ComboboxTrigger.tsx
|
|
2806
|
-
var
|
|
2397
|
+
var import_jsx_runtime34 = require("react/jsx-runtime");
|
|
2807
2398
|
var Trigger2 = ({ className, children, ref: forwardedRef }) => {
|
|
2808
2399
|
const ctx = useComboboxContext();
|
|
2809
|
-
const field = useFormFieldControl();
|
|
2400
|
+
const field = (0, import_form_field2.useFormFieldControl)();
|
|
2810
2401
|
const leadingIcon = findElement(children, "Combobox.LeadingIcon");
|
|
2811
2402
|
const selectedItems = findElement(children, "Combobox.SelectedItems");
|
|
2812
2403
|
const input = findElement(children, "Combobox.Input");
|
|
2813
2404
|
const clearButton = findElement(children, "Combobox.ClearButton");
|
|
2814
2405
|
const disclosure = findElement(children, "Combobox.Disclosure");
|
|
2815
|
-
const [PopoverAnchor, popoverAnchorProps] = ctx.hasPopover ? [Popover2.Anchor, { asChild: true, type: void 0 }] : [
|
|
2406
|
+
const [PopoverAnchor, popoverAnchorProps] = ctx.hasPopover ? [Popover2.Anchor, { asChild: true, type: void 0 }] : [import_react16.Fragment, {}];
|
|
2816
2407
|
const ref = (0, import_use_merge_refs5.useMergeRefs)(forwardedRef, ctx.triggerAreaRef);
|
|
2817
|
-
const scrollableAreaRef = (0,
|
|
2408
|
+
const scrollableAreaRef = (0, import_react16.useRef)(null);
|
|
2818
2409
|
const disabled = field.disabled || ctx.disabled;
|
|
2819
2410
|
const readOnly = field.readOnly || ctx.readOnly;
|
|
2820
2411
|
const hasClearButton = !!clearButton && !disabled && !readOnly;
|
|
@@ -2825,7 +2416,7 @@ var Trigger2 = ({ className, children, ref: forwardedRef }) => {
|
|
|
2825
2416
|
}
|
|
2826
2417
|
};
|
|
2827
2418
|
useWidthIncreaseCallback(scrollableAreaRef, scrollToRight);
|
|
2828
|
-
(0,
|
|
2419
|
+
(0, import_react16.useEffect)(() => {
|
|
2829
2420
|
const resizeObserver = new ResizeObserver(scrollToRight);
|
|
2830
2421
|
if (scrollableAreaRef.current) {
|
|
2831
2422
|
resizeObserver.observe(scrollableAreaRef.current);
|
|
@@ -2834,7 +2425,7 @@ var Trigger2 = ({ className, children, ref: forwardedRef }) => {
|
|
|
2834
2425
|
resizeObserver.disconnect();
|
|
2835
2426
|
};
|
|
2836
2427
|
}, []);
|
|
2837
|
-
return /* @__PURE__ */ (0,
|
|
2428
|
+
return /* @__PURE__ */ (0, import_jsx_runtime34.jsx)(import_jsx_runtime34.Fragment, { children: /* @__PURE__ */ (0, import_jsx_runtime34.jsx)(PopoverAnchor, { ...popoverAnchorProps, children: /* @__PURE__ */ (0, import_jsx_runtime34.jsxs)(
|
|
2838
2429
|
"div",
|
|
2839
2430
|
{
|
|
2840
2431
|
ref,
|
|
@@ -2855,11 +2446,11 @@ var Trigger2 = ({ className, children, ref: forwardedRef }) => {
|
|
|
2855
2446
|
},
|
|
2856
2447
|
children: [
|
|
2857
2448
|
leadingIcon,
|
|
2858
|
-
/* @__PURE__ */ (0,
|
|
2449
|
+
/* @__PURE__ */ (0, import_jsx_runtime34.jsxs)(
|
|
2859
2450
|
"div",
|
|
2860
2451
|
{
|
|
2861
2452
|
ref: scrollableAreaRef,
|
|
2862
|
-
className: (0,
|
|
2453
|
+
className: (0, import_class_variance_authority23.cx)(
|
|
2863
2454
|
"min-w-none gap-sm py-md inline-flex grow items-start",
|
|
2864
2455
|
ctx.wrap ? "flex-wrap" : "u-no-scrollbar overflow-x-auto p-[2px]"
|
|
2865
2456
|
),
|
|
@@ -2884,7 +2475,7 @@ var Combobox2 = Object.assign(Combobox, {
|
|
|
2884
2475
|
Items,
|
|
2885
2476
|
ItemText,
|
|
2886
2477
|
ItemIndicator,
|
|
2887
|
-
Label
|
|
2478
|
+
Label,
|
|
2888
2479
|
Popover: Popover3,
|
|
2889
2480
|
Trigger: Trigger2,
|
|
2890
2481
|
LeadingIcon,
|
|
@@ -2901,7 +2492,7 @@ Items.displayName = "Combobox.Items";
|
|
|
2901
2492
|
Item.displayName = "Combobox.Item";
|
|
2902
2493
|
ItemText.displayName = "Combobox.ItemText";
|
|
2903
2494
|
ItemIndicator.displayName = "Combobox.ItemIndicator";
|
|
2904
|
-
|
|
2495
|
+
Label.displayName = "Combobox.Label";
|
|
2905
2496
|
Popover3.displayName = "Combobox.Popover";
|
|
2906
2497
|
Trigger2.displayName = "Combobox.Trigger";
|
|
2907
2498
|
LeadingIcon.displayName = "Combobox.LeadingIcon";
|