@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/select/index.js
CHANGED
|
@@ -26,522 +26,15 @@ __export(select_exports, {
|
|
|
26
26
|
});
|
|
27
27
|
module.exports = __toCommonJS(select_exports);
|
|
28
28
|
|
|
29
|
-
// src/form-field/FormField.tsx
|
|
30
|
-
var import_class_variance_authority = require("class-variance-authority");
|
|
31
|
-
var import_react4 = require("react");
|
|
32
|
-
|
|
33
|
-
// src/slot/Slot.tsx
|
|
34
|
-
var import_radix_ui = require("radix-ui");
|
|
35
|
-
var import_react = require("react");
|
|
36
|
-
var import_jsx_runtime = require("react/jsx-runtime");
|
|
37
|
-
var Slottable = import_radix_ui.Slot.Slottable;
|
|
38
|
-
var Slot = ({ ref, ...props }) => {
|
|
39
|
-
return /* @__PURE__ */ (0, import_jsx_runtime.jsx)(import_radix_ui.Slot.Root, { ref, ...props });
|
|
40
|
-
};
|
|
41
|
-
|
|
42
|
-
// src/form-field/FormFieldContext.tsx
|
|
43
|
-
var import_react2 = require("react");
|
|
44
|
-
var FormFieldContext = (0, import_react2.createContext)(null);
|
|
45
|
-
var ID_PREFIX = ":form-field";
|
|
46
|
-
var useFormField = () => {
|
|
47
|
-
const context = (0, import_react2.useContext)(FormFieldContext);
|
|
48
|
-
if (!context) {
|
|
49
|
-
throw Error("useFormField must be used within a FormField provider");
|
|
50
|
-
}
|
|
51
|
-
return context;
|
|
52
|
-
};
|
|
53
|
-
|
|
54
|
-
// src/form-field/FormFieldProvider.tsx
|
|
55
|
-
var import_react3 = require("react");
|
|
56
|
-
var import_jsx_runtime2 = require("react/jsx-runtime");
|
|
57
|
-
var FormFieldProvider = ({
|
|
58
|
-
id,
|
|
59
|
-
name,
|
|
60
|
-
disabled = false,
|
|
61
|
-
readOnly = false,
|
|
62
|
-
state,
|
|
63
|
-
isRequired,
|
|
64
|
-
children
|
|
65
|
-
}) => {
|
|
66
|
-
const labelId = `${ID_PREFIX}-label-${(0, import_react3.useId)()}`;
|
|
67
|
-
const [messageIds, setMessageIds] = (0, import_react3.useState)([]);
|
|
68
|
-
const description = messageIds.length > 0 ? messageIds.join(" ") : void 0;
|
|
69
|
-
const handleMessageIdAdd = (0, import_react3.useCallback)((msgId) => {
|
|
70
|
-
setMessageIds((ids) => [...ids, msgId]);
|
|
71
|
-
}, []);
|
|
72
|
-
const handleMessageIdRemove = (0, import_react3.useCallback)((msgId) => {
|
|
73
|
-
setMessageIds((ids) => ids.filter((current) => current !== msgId));
|
|
74
|
-
}, []);
|
|
75
|
-
const value = (0, import_react3.useMemo)(() => {
|
|
76
|
-
const isInvalid = state === "error";
|
|
77
|
-
return {
|
|
78
|
-
id,
|
|
79
|
-
labelId,
|
|
80
|
-
name,
|
|
81
|
-
disabled,
|
|
82
|
-
readOnly,
|
|
83
|
-
state,
|
|
84
|
-
isRequired,
|
|
85
|
-
isInvalid,
|
|
86
|
-
description,
|
|
87
|
-
onMessageIdAdd: handleMessageIdAdd,
|
|
88
|
-
onMessageIdRemove: handleMessageIdRemove
|
|
89
|
-
};
|
|
90
|
-
}, [
|
|
91
|
-
id,
|
|
92
|
-
labelId,
|
|
93
|
-
name,
|
|
94
|
-
disabled,
|
|
95
|
-
readOnly,
|
|
96
|
-
description,
|
|
97
|
-
state,
|
|
98
|
-
isRequired,
|
|
99
|
-
handleMessageIdAdd,
|
|
100
|
-
handleMessageIdRemove
|
|
101
|
-
]);
|
|
102
|
-
return /* @__PURE__ */ (0, import_jsx_runtime2.jsx)(FormFieldContext.Provider, { value, children });
|
|
103
|
-
};
|
|
104
|
-
FormFieldProvider.displayName = "FormFieldProvider";
|
|
105
|
-
|
|
106
|
-
// src/form-field/FormField.tsx
|
|
107
|
-
var import_jsx_runtime3 = require("react/jsx-runtime");
|
|
108
|
-
var FormField = ({
|
|
109
|
-
className,
|
|
110
|
-
disabled = false,
|
|
111
|
-
readOnly = false,
|
|
112
|
-
name,
|
|
113
|
-
state,
|
|
114
|
-
isRequired = false,
|
|
115
|
-
asChild = false,
|
|
116
|
-
ref,
|
|
117
|
-
...others
|
|
118
|
-
}) => {
|
|
119
|
-
const id = `${ID_PREFIX}-${(0, import_react4.useId)()}`;
|
|
120
|
-
const Component = asChild ? Slot : "div";
|
|
121
|
-
return /* @__PURE__ */ (0, import_jsx_runtime3.jsx)(
|
|
122
|
-
FormFieldProvider,
|
|
123
|
-
{
|
|
124
|
-
id,
|
|
125
|
-
name,
|
|
126
|
-
isRequired,
|
|
127
|
-
disabled,
|
|
128
|
-
readOnly,
|
|
129
|
-
state,
|
|
130
|
-
children: /* @__PURE__ */ (0, import_jsx_runtime3.jsx)(
|
|
131
|
-
Component,
|
|
132
|
-
{
|
|
133
|
-
ref,
|
|
134
|
-
"data-spark-component": "form-field",
|
|
135
|
-
className: (0, import_class_variance_authority.cx)(className, "gap-sm flex flex-col"),
|
|
136
|
-
...others
|
|
137
|
-
}
|
|
138
|
-
)
|
|
139
|
-
}
|
|
140
|
-
);
|
|
141
|
-
};
|
|
142
|
-
FormField.displayName = "FormField";
|
|
143
|
-
|
|
144
|
-
// src/form-field/FormFieldStateMessage.tsx
|
|
145
|
-
var import_AlertOutline = require("@spark-ui/icons/AlertOutline");
|
|
146
|
-
var import_Check = require("@spark-ui/icons/Check");
|
|
147
|
-
var import_WarningOutline = require("@spark-ui/icons/WarningOutline");
|
|
148
|
-
var import_class_variance_authority4 = require("class-variance-authority");
|
|
149
|
-
|
|
150
|
-
// src/icon/Icon.tsx
|
|
151
|
-
var import_react5 = require("react");
|
|
152
|
-
|
|
153
|
-
// src/visually-hidden/VisuallyHidden.tsx
|
|
154
|
-
var import_jsx_runtime4 = require("react/jsx-runtime");
|
|
155
|
-
var VisuallyHidden = ({ asChild = false, ref, ...props }) => {
|
|
156
|
-
const Component = asChild ? Slot : "span";
|
|
157
|
-
return /* @__PURE__ */ (0, import_jsx_runtime4.jsx)(
|
|
158
|
-
Component,
|
|
159
|
-
{
|
|
160
|
-
...props,
|
|
161
|
-
ref,
|
|
162
|
-
style: {
|
|
163
|
-
// See: https://github.com/twbs/bootstrap/blob/main/scss/mixins/_visually-hidden.scss
|
|
164
|
-
position: "absolute",
|
|
165
|
-
border: 0,
|
|
166
|
-
width: 1,
|
|
167
|
-
height: 1,
|
|
168
|
-
padding: 0,
|
|
169
|
-
margin: -1,
|
|
170
|
-
overflow: "hidden",
|
|
171
|
-
clip: "rect(0, 0, 0, 0)",
|
|
172
|
-
whiteSpace: "nowrap",
|
|
173
|
-
wordWrap: "normal",
|
|
174
|
-
...props.style
|
|
175
|
-
}
|
|
176
|
-
}
|
|
177
|
-
);
|
|
178
|
-
};
|
|
179
|
-
VisuallyHidden.displayName = "VisuallyHidden";
|
|
180
|
-
|
|
181
|
-
// src/icon/Icon.styles.tsx
|
|
182
|
-
var import_internal_utils = require("@spark-ui/internal-utils");
|
|
183
|
-
var import_class_variance_authority2 = require("class-variance-authority");
|
|
184
|
-
var iconStyles = (0, import_class_variance_authority2.cva)(["fill-current shrink-0"], {
|
|
185
|
-
variants: {
|
|
186
|
-
/**
|
|
187
|
-
* Color scheme of the icon.
|
|
188
|
-
*/
|
|
189
|
-
intent: (0, import_internal_utils.makeVariants)({
|
|
190
|
-
current: ["text-current"],
|
|
191
|
-
main: ["text-main"],
|
|
192
|
-
support: ["text-support"],
|
|
193
|
-
accent: ["text-accent"],
|
|
194
|
-
basic: ["text-basic"],
|
|
195
|
-
success: ["text-success"],
|
|
196
|
-
alert: ["text-alert"],
|
|
197
|
-
error: ["text-error"],
|
|
198
|
-
info: ["text-info"],
|
|
199
|
-
neutral: ["text-neutral"]
|
|
200
|
-
}),
|
|
201
|
-
/**
|
|
202
|
-
* Sets the size of the icon.
|
|
203
|
-
*/
|
|
204
|
-
size: (0, import_internal_utils.makeVariants)({
|
|
205
|
-
current: ["u-current-font-size"],
|
|
206
|
-
sm: ["w-sz-16", "h-sz-16"],
|
|
207
|
-
md: ["w-sz-24", "h-sz-24"],
|
|
208
|
-
lg: ["w-sz-32", "h-sz-32"],
|
|
209
|
-
xl: ["w-sz-40", "h-sz-40"]
|
|
210
|
-
})
|
|
211
|
-
}
|
|
212
|
-
});
|
|
213
|
-
|
|
214
|
-
// src/icon/Icon.tsx
|
|
215
|
-
var import_jsx_runtime5 = require("react/jsx-runtime");
|
|
216
|
-
var Icon = ({
|
|
217
|
-
label,
|
|
218
|
-
className,
|
|
219
|
-
size = "current",
|
|
220
|
-
intent = "current",
|
|
221
|
-
children,
|
|
222
|
-
...others
|
|
223
|
-
}) => {
|
|
224
|
-
const child = import_react5.Children.only(children);
|
|
225
|
-
return /* @__PURE__ */ (0, import_jsx_runtime5.jsxs)(import_jsx_runtime5.Fragment, { children: [
|
|
226
|
-
(0, import_react5.cloneElement)(child, {
|
|
227
|
-
className: iconStyles({ className, size, intent }),
|
|
228
|
-
"data-spark-component": "icon",
|
|
229
|
-
"aria-hidden": "true",
|
|
230
|
-
focusable: "false",
|
|
231
|
-
...others
|
|
232
|
-
}),
|
|
233
|
-
label && /* @__PURE__ */ (0, import_jsx_runtime5.jsx)(VisuallyHidden, { children: label })
|
|
234
|
-
] });
|
|
235
|
-
};
|
|
236
|
-
Icon.displayName = "Icon";
|
|
237
|
-
|
|
238
|
-
// src/form-field/FormFieldMessage.tsx
|
|
239
|
-
var import_class_variance_authority3 = require("class-variance-authority");
|
|
240
|
-
var import_react6 = require("react");
|
|
241
|
-
var import_jsx_runtime6 = require("react/jsx-runtime");
|
|
242
|
-
var FormFieldMessage = ({
|
|
243
|
-
id: idProp,
|
|
244
|
-
className,
|
|
245
|
-
ref,
|
|
246
|
-
...others
|
|
247
|
-
}) => {
|
|
248
|
-
const { onMessageIdAdd, onMessageIdRemove } = useFormField();
|
|
249
|
-
const currentId = `${ID_PREFIX}-message-${(0, import_react6.useId)()}`;
|
|
250
|
-
const id = idProp || currentId;
|
|
251
|
-
(0, import_react6.useEffect)(() => {
|
|
252
|
-
onMessageIdAdd(id);
|
|
253
|
-
return () => {
|
|
254
|
-
onMessageIdRemove(id);
|
|
255
|
-
};
|
|
256
|
-
}, [id, onMessageIdAdd, onMessageIdRemove]);
|
|
257
|
-
return /* @__PURE__ */ (0, import_jsx_runtime6.jsx)(
|
|
258
|
-
"span",
|
|
259
|
-
{
|
|
260
|
-
ref,
|
|
261
|
-
id,
|
|
262
|
-
"data-spark-component": "form-field-message",
|
|
263
|
-
className: (0, import_class_variance_authority3.cx)(className, "text-caption"),
|
|
264
|
-
...others
|
|
265
|
-
}
|
|
266
|
-
);
|
|
267
|
-
};
|
|
268
|
-
FormFieldMessage.displayName = "FormField.Message";
|
|
269
|
-
|
|
270
|
-
// src/form-field/FormFieldStateMessage.tsx
|
|
271
|
-
var import_jsx_runtime7 = require("react/jsx-runtime");
|
|
272
|
-
var FormFieldStateMessage = ({
|
|
273
|
-
className,
|
|
274
|
-
state,
|
|
275
|
-
children,
|
|
276
|
-
ref,
|
|
277
|
-
...others
|
|
278
|
-
}) => {
|
|
279
|
-
const field = useFormField();
|
|
280
|
-
if (field.state !== state) {
|
|
281
|
-
return null;
|
|
282
|
-
}
|
|
283
|
-
return /* @__PURE__ */ (0, import_jsx_runtime7.jsxs)(
|
|
284
|
-
FormFieldMessage,
|
|
285
|
-
{
|
|
286
|
-
ref,
|
|
287
|
-
"data-spark-component": "form-field-state-message",
|
|
288
|
-
"aria-live": "polite",
|
|
289
|
-
className: (0, import_class_variance_authority4.cx)(
|
|
290
|
-
"gap-sm flex items-center",
|
|
291
|
-
state === "error" ? "text-error" : "text-on-surface/dim-1",
|
|
292
|
-
className
|
|
293
|
-
),
|
|
294
|
-
...others,
|
|
295
|
-
children: [
|
|
296
|
-
state === "alert" && /* @__PURE__ */ (0, import_jsx_runtime7.jsx)(Icon, { size: "sm", children: /* @__PURE__ */ (0, import_jsx_runtime7.jsx)(import_WarningOutline.WarningOutline, {}) }),
|
|
297
|
-
state === "error" && /* @__PURE__ */ (0, import_jsx_runtime7.jsx)(Icon, { size: "sm", intent: "error", children: /* @__PURE__ */ (0, import_jsx_runtime7.jsx)(import_AlertOutline.AlertOutline, {}) }),
|
|
298
|
-
state === "success" && /* @__PURE__ */ (0, import_jsx_runtime7.jsx)(Icon, { size: "sm", children: /* @__PURE__ */ (0, import_jsx_runtime7.jsx)(import_Check.Check, {}) }),
|
|
299
|
-
children
|
|
300
|
-
]
|
|
301
|
-
}
|
|
302
|
-
);
|
|
303
|
-
};
|
|
304
|
-
FormFieldStateMessage.displayName = "FormField.StateMessage";
|
|
305
|
-
|
|
306
|
-
// src/form-field/FormFieldAlertMessage.tsx
|
|
307
|
-
var import_jsx_runtime8 = require("react/jsx-runtime");
|
|
308
|
-
var FormFieldAlertMessage = ({ ref, ...props }) => {
|
|
309
|
-
return /* @__PURE__ */ (0, import_jsx_runtime8.jsx)(
|
|
310
|
-
FormFieldStateMessage,
|
|
311
|
-
{
|
|
312
|
-
ref,
|
|
313
|
-
"data-spark-component": "form-field-alert-message",
|
|
314
|
-
state: "alert",
|
|
315
|
-
...props
|
|
316
|
-
}
|
|
317
|
-
);
|
|
318
|
-
};
|
|
319
|
-
FormFieldAlertMessage.displayName = "FormField.AlertMessage";
|
|
320
|
-
|
|
321
|
-
// src/form-field/FormFieldCharactersCount.tsx
|
|
322
|
-
var import_class_variance_authority5 = require("class-variance-authority");
|
|
323
|
-
var import_jsx_runtime9 = require("react/jsx-runtime");
|
|
324
|
-
var FormFieldCharactersCount = ({
|
|
325
|
-
className,
|
|
326
|
-
value = "",
|
|
327
|
-
maxLength,
|
|
328
|
-
ref,
|
|
329
|
-
...others
|
|
330
|
-
}) => {
|
|
331
|
-
const displayValue = `${value.length}/${maxLength}`;
|
|
332
|
-
return /* @__PURE__ */ (0, import_jsx_runtime9.jsx)(
|
|
333
|
-
"span",
|
|
334
|
-
{
|
|
335
|
-
ref,
|
|
336
|
-
"data-spark-component": "form-field-characters-count",
|
|
337
|
-
className: (0, import_class_variance_authority5.cx)(className, "text-caption", "text-neutral"),
|
|
338
|
-
...others,
|
|
339
|
-
children: displayValue
|
|
340
|
-
}
|
|
341
|
-
);
|
|
342
|
-
};
|
|
343
|
-
FormFieldCharactersCount.displayName = "FormField.CharactersCount";
|
|
344
|
-
|
|
345
|
-
// src/form-field/FormFieldControl.tsx
|
|
346
|
-
var import_react7 = require("react");
|
|
347
|
-
var import_jsx_runtime10 = require("react/jsx-runtime");
|
|
348
|
-
var useFormFieldControl = () => {
|
|
349
|
-
const { id, name, description, disabled, readOnly, state, labelId, isInvalid, isRequired } = (0, import_react7.useContext)(FormFieldContext) || {};
|
|
350
|
-
return {
|
|
351
|
-
id,
|
|
352
|
-
name,
|
|
353
|
-
description,
|
|
354
|
-
disabled,
|
|
355
|
-
readOnly,
|
|
356
|
-
state,
|
|
357
|
-
labelId,
|
|
358
|
-
isInvalid,
|
|
359
|
-
isRequired
|
|
360
|
-
};
|
|
361
|
-
};
|
|
362
|
-
var FormFieldControl = ({ children }) => {
|
|
363
|
-
const props = useFormFieldControl();
|
|
364
|
-
return /* @__PURE__ */ (0, import_jsx_runtime10.jsx)(import_jsx_runtime10.Fragment, { children: children(props) });
|
|
365
|
-
};
|
|
366
|
-
FormFieldControl.displayName = "FormField.Control";
|
|
367
|
-
|
|
368
|
-
// src/form-field/FormFieldErrorMessage.tsx
|
|
369
|
-
var import_jsx_runtime11 = require("react/jsx-runtime");
|
|
370
|
-
var FormFieldErrorMessage = ({ ref, ...props }) => {
|
|
371
|
-
return /* @__PURE__ */ (0, import_jsx_runtime11.jsx)(
|
|
372
|
-
FormFieldStateMessage,
|
|
373
|
-
{
|
|
374
|
-
ref,
|
|
375
|
-
"data-spark-component": "form-field-error-message",
|
|
376
|
-
state: "error",
|
|
377
|
-
...props
|
|
378
|
-
}
|
|
379
|
-
);
|
|
380
|
-
};
|
|
381
|
-
FormFieldErrorMessage.displayName = "FormField.ErrorMessage";
|
|
382
|
-
|
|
383
|
-
// src/form-field/FormFieldHelperMessage.tsx
|
|
384
|
-
var import_class_variance_authority6 = require("class-variance-authority");
|
|
385
|
-
var import_jsx_runtime12 = require("react/jsx-runtime");
|
|
386
|
-
var FormFieldHelperMessage = ({
|
|
387
|
-
className,
|
|
388
|
-
ref,
|
|
389
|
-
...others
|
|
390
|
-
}) => {
|
|
391
|
-
return /* @__PURE__ */ (0, import_jsx_runtime12.jsx)(
|
|
392
|
-
FormFieldMessage,
|
|
393
|
-
{
|
|
394
|
-
ref,
|
|
395
|
-
"data-spark-component": "form-field-helper-message",
|
|
396
|
-
className: (0, import_class_variance_authority6.cx)("text-on-surface/dim-1", className),
|
|
397
|
-
...others
|
|
398
|
-
}
|
|
399
|
-
);
|
|
400
|
-
};
|
|
401
|
-
FormFieldHelperMessage.displayName = "FormField.HelperMessage";
|
|
402
|
-
|
|
403
|
-
// src/form-field/FormFieldLabel.tsx
|
|
404
|
-
var import_class_variance_authority10 = require("class-variance-authority");
|
|
405
|
-
|
|
406
|
-
// src/label/Label.tsx
|
|
407
|
-
var import_class_variance_authority7 = require("class-variance-authority");
|
|
408
|
-
var import_radix_ui2 = require("radix-ui");
|
|
409
|
-
var import_jsx_runtime13 = require("react/jsx-runtime");
|
|
410
|
-
var Label = ({ className, ref, ...others }) => {
|
|
411
|
-
return /* @__PURE__ */ (0, import_jsx_runtime13.jsx)(
|
|
412
|
-
import_radix_ui2.Label.Label,
|
|
413
|
-
{
|
|
414
|
-
ref,
|
|
415
|
-
"data-spark-component": "label",
|
|
416
|
-
className: (0, import_class_variance_authority7.cx)("text-body-1", className),
|
|
417
|
-
...others
|
|
418
|
-
}
|
|
419
|
-
);
|
|
420
|
-
};
|
|
421
|
-
Label.displayName = "Label";
|
|
422
|
-
|
|
423
|
-
// src/label/LabelRequiredIndicator.tsx
|
|
424
|
-
var import_class_variance_authority8 = require("class-variance-authority");
|
|
425
|
-
var import_jsx_runtime14 = require("react/jsx-runtime");
|
|
426
|
-
var LabelRequiredIndicator = ({
|
|
427
|
-
className,
|
|
428
|
-
children = "*",
|
|
429
|
-
ref,
|
|
430
|
-
...others
|
|
431
|
-
}) => {
|
|
432
|
-
return /* @__PURE__ */ (0, import_jsx_runtime14.jsx)(
|
|
433
|
-
"span",
|
|
434
|
-
{
|
|
435
|
-
ref,
|
|
436
|
-
"data-spark-component": "label-required-indicator",
|
|
437
|
-
role: "presentation",
|
|
438
|
-
"aria-hidden": "true",
|
|
439
|
-
className: (0, import_class_variance_authority8.cx)(className, "text-caption text-on-surface/dim-1"),
|
|
440
|
-
...others,
|
|
441
|
-
children
|
|
442
|
-
}
|
|
443
|
-
);
|
|
444
|
-
};
|
|
445
|
-
LabelRequiredIndicator.displayName = "Label.RequiredIndicator";
|
|
446
|
-
|
|
447
|
-
// src/label/index.ts
|
|
448
|
-
var Label2 = Object.assign(Label, {
|
|
449
|
-
RequiredIndicator: LabelRequiredIndicator
|
|
450
|
-
});
|
|
451
|
-
Label2.displayName = "Label";
|
|
452
|
-
LabelRequiredIndicator.displayName = "Label.RequiredIndicator";
|
|
453
|
-
|
|
454
|
-
// src/form-field/FormFieldRequiredIndicator.tsx
|
|
455
|
-
var import_class_variance_authority9 = require("class-variance-authority");
|
|
456
|
-
var import_jsx_runtime15 = require("react/jsx-runtime");
|
|
457
|
-
var FormFieldRequiredIndicator = ({
|
|
458
|
-
className,
|
|
459
|
-
ref,
|
|
460
|
-
...props
|
|
461
|
-
}) => {
|
|
462
|
-
return /* @__PURE__ */ (0, import_jsx_runtime15.jsx)(Label2.RequiredIndicator, { ref, className: (0, import_class_variance_authority9.cx)("ml-sm", className), ...props });
|
|
463
|
-
};
|
|
464
|
-
FormFieldRequiredIndicator.displayName = "FormField.RequiredIndicator";
|
|
465
|
-
|
|
466
|
-
// src/form-field/FormFieldLabel.tsx
|
|
467
|
-
var import_jsx_runtime16 = require("react/jsx-runtime");
|
|
468
|
-
var FormFieldLabel = ({
|
|
469
|
-
htmlFor: htmlForProp,
|
|
470
|
-
className,
|
|
471
|
-
children,
|
|
472
|
-
requiredIndicator = /* @__PURE__ */ (0, import_jsx_runtime16.jsx)(FormFieldRequiredIndicator, {}),
|
|
473
|
-
asChild,
|
|
474
|
-
ref,
|
|
475
|
-
...others
|
|
476
|
-
}) => {
|
|
477
|
-
const control = useFormField();
|
|
478
|
-
const { disabled, labelId, isRequired } = control;
|
|
479
|
-
const htmlFor = asChild ? void 0 : htmlForProp || control.id;
|
|
480
|
-
return /* @__PURE__ */ (0, import_jsx_runtime16.jsx)(
|
|
481
|
-
Label2,
|
|
482
|
-
{
|
|
483
|
-
ref,
|
|
484
|
-
id: labelId,
|
|
485
|
-
"data-spark-component": "form-field-label",
|
|
486
|
-
htmlFor,
|
|
487
|
-
className: (0, import_class_variance_authority10.cx)(className, disabled ? "text-on-surface/dim-3 pointer-events-none" : void 0),
|
|
488
|
-
asChild,
|
|
489
|
-
...others,
|
|
490
|
-
children: /* @__PURE__ */ (0, import_jsx_runtime16.jsxs)(import_jsx_runtime16.Fragment, { children: [
|
|
491
|
-
/* @__PURE__ */ (0, import_jsx_runtime16.jsx)(Slottable, { children }),
|
|
492
|
-
isRequired && requiredIndicator
|
|
493
|
-
] })
|
|
494
|
-
}
|
|
495
|
-
);
|
|
496
|
-
};
|
|
497
|
-
FormFieldLabel.displayName = "FormField.Label";
|
|
498
|
-
|
|
499
|
-
// src/form-field/FormFieldSuccessMessage.tsx
|
|
500
|
-
var import_jsx_runtime17 = require("react/jsx-runtime");
|
|
501
|
-
var FormFieldSuccessMessage = ({ ref, ...props }) => {
|
|
502
|
-
return /* @__PURE__ */ (0, import_jsx_runtime17.jsx)(
|
|
503
|
-
FormFieldStateMessage,
|
|
504
|
-
{
|
|
505
|
-
ref,
|
|
506
|
-
"data-spark-component": "form-field-success-message",
|
|
507
|
-
state: "success",
|
|
508
|
-
...props
|
|
509
|
-
}
|
|
510
|
-
);
|
|
511
|
-
};
|
|
512
|
-
FormFieldSuccessMessage.displayName = "FormField.SuccessMessage";
|
|
513
|
-
|
|
514
|
-
// src/form-field/index.ts
|
|
515
|
-
var FormField2 = Object.assign(FormField, {
|
|
516
|
-
Label: FormFieldLabel,
|
|
517
|
-
Control: FormFieldControl,
|
|
518
|
-
StateMessage: FormFieldStateMessage,
|
|
519
|
-
SuccessMessage: FormFieldSuccessMessage,
|
|
520
|
-
AlertMessage: FormFieldAlertMessage,
|
|
521
|
-
ErrorMessage: FormFieldErrorMessage,
|
|
522
|
-
HelperMessage: FormFieldHelperMessage,
|
|
523
|
-
RequiredIndicator: FormFieldRequiredIndicator,
|
|
524
|
-
CharactersCount: FormFieldCharactersCount
|
|
525
|
-
});
|
|
526
|
-
FormField2.displayName = "FormField";
|
|
527
|
-
FormFieldLabel.displayName = "FormField.Label";
|
|
528
|
-
FormFieldControl.displayName = "FormField.Control";
|
|
529
|
-
FormFieldStateMessage.displayName = "FormField.StateMessage";
|
|
530
|
-
FormFieldSuccessMessage.displayName = "FormField.SuccessMessage";
|
|
531
|
-
FormFieldAlertMessage.displayName = "FormField.AlertMessage";
|
|
532
|
-
FormFieldErrorMessage.displayName = "FormField.ErrorMessage";
|
|
533
|
-
FormFieldHelperMessage.displayName = "FormField.HelperMessage";
|
|
534
|
-
FormFieldRequiredIndicator.displayName = "FormField.RequiredIndicator";
|
|
535
|
-
FormFieldCharactersCount.displayName = "FormField.CharactersCount";
|
|
536
|
-
|
|
537
29
|
// src/select/SelectContext.tsx
|
|
30
|
+
var import_form_field = require("@spark-ui/components/form-field");
|
|
538
31
|
var import_use_combined_state = require("@spark-ui/use-combined-state");
|
|
539
|
-
var
|
|
32
|
+
var import_react2 = require("react");
|
|
540
33
|
|
|
541
34
|
// src/select/utils.ts
|
|
542
|
-
var
|
|
35
|
+
var import_react = require("react");
|
|
543
36
|
var findElement = (children) => (name) => {
|
|
544
|
-
const validChildren =
|
|
37
|
+
const validChildren = import_react.Children.toArray(children).filter(import_react.isValidElement);
|
|
545
38
|
return validChildren.find((child) => {
|
|
546
39
|
return getElementDisplayName(child)?.includes(name);
|
|
547
40
|
});
|
|
@@ -550,8 +43,8 @@ var getElementDisplayName = (element) => {
|
|
|
550
43
|
return element ? element.type.displayName : "";
|
|
551
44
|
};
|
|
552
45
|
var getOrderedItems = (children, result = []) => {
|
|
553
|
-
|
|
554
|
-
if (!(0,
|
|
46
|
+
import_react.Children.forEach(children, (child) => {
|
|
47
|
+
if (!(0, import_react.isValidElement)(child)) return;
|
|
555
48
|
if (getElementDisplayName(child) === "Select.Item" || getElementDisplayName(child) === "Select.Placeholder") {
|
|
556
49
|
const childProps = child.props;
|
|
557
50
|
result.push({
|
|
@@ -575,9 +68,9 @@ var getItemsFromChildren = (children) => {
|
|
|
575
68
|
};
|
|
576
69
|
|
|
577
70
|
// src/select/SelectContext.tsx
|
|
578
|
-
var
|
|
579
|
-
var SelectContext = (0,
|
|
580
|
-
var
|
|
71
|
+
var import_jsx_runtime = require("react/jsx-runtime");
|
|
72
|
+
var SelectContext = (0, import_react2.createContext)(null);
|
|
73
|
+
var ID_PREFIX = ":select";
|
|
581
74
|
var SelectProvider = ({
|
|
582
75
|
children,
|
|
583
76
|
defaultValue,
|
|
@@ -591,22 +84,22 @@ var SelectProvider = ({
|
|
|
591
84
|
required: requiredProp
|
|
592
85
|
}) => {
|
|
593
86
|
const [value, setValue] = (0, import_use_combined_state.useCombinedState)(valueProp, defaultValue, onValueChange);
|
|
594
|
-
const [placeholder, setPlaceholder] = (0,
|
|
595
|
-
const [itemsMap, setItemsMap] = (0,
|
|
596
|
-
const [ariaLabel, setAriaLabel] = (0,
|
|
87
|
+
const [placeholder, setPlaceholder] = (0, import_react2.useState)(void 0);
|
|
88
|
+
const [itemsMap, setItemsMap] = (0, import_react2.useState)(getItemsFromChildren(itemsComponent));
|
|
89
|
+
const [ariaLabel, setAriaLabel] = (0, import_react2.useState)();
|
|
597
90
|
const firstItem = itemsMap.entries().next().value[1];
|
|
598
91
|
const selectedItem = typeof value === "string" ? itemsMap.get(value) : firstItem;
|
|
599
92
|
const isControlled = valueProp != null;
|
|
600
|
-
const field = useFormFieldControl();
|
|
93
|
+
const field = (0, import_form_field.useFormFieldControl)();
|
|
601
94
|
const state = field.state || stateProp;
|
|
602
|
-
const internalFieldID = `${
|
|
95
|
+
const internalFieldID = `${ID_PREFIX}-field-${(0, import_react2.useId)()}`;
|
|
603
96
|
const fieldId = field.id || internalFieldID;
|
|
604
97
|
const fieldLabelId = field.labelId;
|
|
605
98
|
const disabled = field.disabled ?? disabledProp;
|
|
606
99
|
const readOnly = field.readOnly ?? readOnlyProp;
|
|
607
100
|
const name = field.name ?? nameProp;
|
|
608
101
|
const required = !!(field.isRequired ?? requiredProp);
|
|
609
|
-
(0,
|
|
102
|
+
(0, import_react2.useEffect)(() => {
|
|
610
103
|
const newMap = getItemsFromChildren(itemsComponent);
|
|
611
104
|
const previousItems = [...itemsMap.values()];
|
|
612
105
|
const newItems = [...newMap.values()];
|
|
@@ -619,7 +112,7 @@ var SelectProvider = ({
|
|
|
619
112
|
setItemsMap(newMap);
|
|
620
113
|
}
|
|
621
114
|
}, [children]);
|
|
622
|
-
return /* @__PURE__ */ (0,
|
|
115
|
+
return /* @__PURE__ */ (0, import_jsx_runtime.jsx)(
|
|
623
116
|
SelectContext.Provider,
|
|
624
117
|
{
|
|
625
118
|
value: {
|
|
@@ -646,7 +139,7 @@ var SelectProvider = ({
|
|
|
646
139
|
);
|
|
647
140
|
};
|
|
648
141
|
var useSelectContext = () => {
|
|
649
|
-
const context = (0,
|
|
142
|
+
const context = (0, import_react2.useContext)(SelectContext);
|
|
650
143
|
if (!context) {
|
|
651
144
|
throw Error("useSelectContext must be used within a Select provider");
|
|
652
145
|
}
|
|
@@ -654,28 +147,28 @@ var useSelectContext = () => {
|
|
|
654
147
|
};
|
|
655
148
|
|
|
656
149
|
// src/select/Select.tsx
|
|
657
|
-
var
|
|
150
|
+
var import_jsx_runtime2 = require("react/jsx-runtime");
|
|
658
151
|
var Select = ({ children, ...props }) => {
|
|
659
152
|
const finder = findElement(children);
|
|
660
153
|
const trigger = finder("Trigger");
|
|
661
154
|
const items = finder("Items");
|
|
662
|
-
return /* @__PURE__ */ (0,
|
|
155
|
+
return /* @__PURE__ */ (0, import_jsx_runtime2.jsx)(SelectProvider, { ...props, itemsComponent: items, children: trigger });
|
|
663
156
|
};
|
|
664
157
|
Select.displayName = "Select";
|
|
665
158
|
|
|
666
159
|
// src/select/SelectGroup.tsx
|
|
667
|
-
var
|
|
160
|
+
var import_class_variance_authority = require("class-variance-authority");
|
|
668
161
|
|
|
669
162
|
// src/select/SelectItemsGroupContext.tsx
|
|
670
|
-
var
|
|
671
|
-
var
|
|
672
|
-
var SelectGroupContext = (0,
|
|
163
|
+
var import_react3 = require("react");
|
|
164
|
+
var import_jsx_runtime3 = require("react/jsx-runtime");
|
|
165
|
+
var SelectGroupContext = (0, import_react3.createContext)(null);
|
|
673
166
|
var SelectGroupProvider = ({ children }) => {
|
|
674
|
-
const [groupLabel, setGroupLabel] = (0,
|
|
675
|
-
return /* @__PURE__ */ (0,
|
|
167
|
+
const [groupLabel, setGroupLabel] = (0, import_react3.useState)("");
|
|
168
|
+
return /* @__PURE__ */ (0, import_jsx_runtime3.jsx)(SelectGroupContext.Provider, { value: { groupLabel, setGroupLabel }, children });
|
|
676
169
|
};
|
|
677
170
|
var useSelectGroupContext = () => {
|
|
678
|
-
const context = (0,
|
|
171
|
+
const context = (0, import_react3.useContext)(SelectGroupContext);
|
|
679
172
|
if (!context) {
|
|
680
173
|
throw Error("useSelectGroupContext must be used within a SelectGroup provider");
|
|
681
174
|
}
|
|
@@ -683,18 +176,18 @@ var useSelectGroupContext = () => {
|
|
|
683
176
|
};
|
|
684
177
|
|
|
685
178
|
// src/select/SelectGroup.tsx
|
|
686
|
-
var
|
|
179
|
+
var import_jsx_runtime4 = require("react/jsx-runtime");
|
|
687
180
|
var Group = ({ children, ref: forwardedRef, ...props }) => {
|
|
688
|
-
return /* @__PURE__ */ (0,
|
|
181
|
+
return /* @__PURE__ */ (0, import_jsx_runtime4.jsx)(SelectGroupProvider, { children: /* @__PURE__ */ (0, import_jsx_runtime4.jsx)(GroupContent, { ref: forwardedRef, ...props, children }) });
|
|
689
182
|
};
|
|
690
183
|
var GroupContent = ({ children, className, ref: forwardedRef }) => {
|
|
691
184
|
const { groupLabel } = useSelectGroupContext();
|
|
692
|
-
return /* @__PURE__ */ (0,
|
|
185
|
+
return /* @__PURE__ */ (0, import_jsx_runtime4.jsx)(
|
|
693
186
|
"optgroup",
|
|
694
187
|
{
|
|
695
188
|
"data-spark-component": "select-group",
|
|
696
189
|
ref: forwardedRef,
|
|
697
|
-
className: (0,
|
|
190
|
+
className: (0, import_class_variance_authority.cx)(className),
|
|
698
191
|
label: groupLabel,
|
|
699
192
|
children
|
|
700
193
|
}
|
|
@@ -703,9 +196,9 @@ var GroupContent = ({ children, className, ref: forwardedRef }) => {
|
|
|
703
196
|
Group.displayName = "Select.Group";
|
|
704
197
|
|
|
705
198
|
// src/select/SelectItem.tsx
|
|
706
|
-
var
|
|
199
|
+
var import_jsx_runtime5 = require("react/jsx-runtime");
|
|
707
200
|
var Item = ({ disabled = false, value, children, ref: forwardedRef }) => {
|
|
708
|
-
return /* @__PURE__ */ (0,
|
|
201
|
+
return /* @__PURE__ */ (0, import_jsx_runtime5.jsx)(
|
|
709
202
|
"option",
|
|
710
203
|
{
|
|
711
204
|
"data-spark-component": "select-item",
|
|
@@ -720,9 +213,9 @@ var Item = ({ disabled = false, value, children, ref: forwardedRef }) => {
|
|
|
720
213
|
Item.displayName = "Select.Item";
|
|
721
214
|
|
|
722
215
|
// src/select/SelectItems.tsx
|
|
723
|
-
var
|
|
724
|
-
var
|
|
725
|
-
var styles = (0,
|
|
216
|
+
var import_class_variance_authority2 = require("class-variance-authority");
|
|
217
|
+
var import_jsx_runtime6 = require("react/jsx-runtime");
|
|
218
|
+
var styles = (0, import_class_variance_authority2.cva)(
|
|
726
219
|
[
|
|
727
220
|
"absolute left-0 top-0 size-full rounded-lg opacity-0",
|
|
728
221
|
"min-h-sz-44",
|
|
@@ -781,7 +274,7 @@ var Items = ({
|
|
|
781
274
|
setValue(event.target.value);
|
|
782
275
|
}
|
|
783
276
|
};
|
|
784
|
-
return /* @__PURE__ */ (0,
|
|
277
|
+
return /* @__PURE__ */ (0, import_jsx_runtime6.jsx)(
|
|
785
278
|
"select",
|
|
786
279
|
{
|
|
787
280
|
"data-spark-component": "select-items",
|
|
@@ -803,36 +296,133 @@ var Items = ({
|
|
|
803
296
|
Items.displayName = "Select.Items";
|
|
804
297
|
|
|
805
298
|
// src/select/SelectLabel.tsx
|
|
806
|
-
var
|
|
807
|
-
var
|
|
299
|
+
var import_react4 = require("react");
|
|
300
|
+
var Label = ({ children }) => {
|
|
808
301
|
const { setGroupLabel } = useSelectGroupContext();
|
|
809
|
-
(0,
|
|
302
|
+
(0, import_react4.useEffect)(() => {
|
|
810
303
|
setGroupLabel(children);
|
|
811
304
|
}, [children]);
|
|
812
305
|
return null;
|
|
813
306
|
};
|
|
814
|
-
|
|
307
|
+
Label.displayName = "Select.Label";
|
|
308
|
+
|
|
309
|
+
// src/icon/Icon.tsx
|
|
310
|
+
var import_react6 = require("react");
|
|
311
|
+
|
|
312
|
+
// src/slot/Slot.tsx
|
|
313
|
+
var import_radix_ui = require("radix-ui");
|
|
314
|
+
var import_react5 = require("react");
|
|
315
|
+
var import_jsx_runtime7 = require("react/jsx-runtime");
|
|
316
|
+
var Slottable = import_radix_ui.Slot.Slottable;
|
|
317
|
+
var Slot = ({ ref, ...props }) => {
|
|
318
|
+
return /* @__PURE__ */ (0, import_jsx_runtime7.jsx)(import_radix_ui.Slot.Root, { ref, ...props });
|
|
319
|
+
};
|
|
320
|
+
|
|
321
|
+
// src/visually-hidden/VisuallyHidden.tsx
|
|
322
|
+
var import_jsx_runtime8 = require("react/jsx-runtime");
|
|
323
|
+
var VisuallyHidden = ({ asChild = false, ref, ...props }) => {
|
|
324
|
+
const Component = asChild ? Slot : "span";
|
|
325
|
+
return /* @__PURE__ */ (0, import_jsx_runtime8.jsx)(
|
|
326
|
+
Component,
|
|
327
|
+
{
|
|
328
|
+
...props,
|
|
329
|
+
ref,
|
|
330
|
+
style: {
|
|
331
|
+
// See: https://github.com/twbs/bootstrap/blob/main/scss/mixins/_visually-hidden.scss
|
|
332
|
+
position: "absolute",
|
|
333
|
+
border: 0,
|
|
334
|
+
width: 1,
|
|
335
|
+
height: 1,
|
|
336
|
+
padding: 0,
|
|
337
|
+
margin: -1,
|
|
338
|
+
overflow: "hidden",
|
|
339
|
+
clip: "rect(0, 0, 0, 0)",
|
|
340
|
+
whiteSpace: "nowrap",
|
|
341
|
+
wordWrap: "normal",
|
|
342
|
+
...props.style
|
|
343
|
+
}
|
|
344
|
+
}
|
|
345
|
+
);
|
|
346
|
+
};
|
|
347
|
+
VisuallyHidden.displayName = "VisuallyHidden";
|
|
348
|
+
|
|
349
|
+
// src/icon/Icon.styles.tsx
|
|
350
|
+
var import_internal_utils = require("@spark-ui/internal-utils");
|
|
351
|
+
var import_class_variance_authority3 = require("class-variance-authority");
|
|
352
|
+
var iconStyles = (0, import_class_variance_authority3.cva)(["fill-current shrink-0"], {
|
|
353
|
+
variants: {
|
|
354
|
+
/**
|
|
355
|
+
* Color scheme of the icon.
|
|
356
|
+
*/
|
|
357
|
+
intent: (0, import_internal_utils.makeVariants)({
|
|
358
|
+
current: ["text-current"],
|
|
359
|
+
main: ["text-main"],
|
|
360
|
+
support: ["text-support"],
|
|
361
|
+
accent: ["text-accent"],
|
|
362
|
+
basic: ["text-basic"],
|
|
363
|
+
success: ["text-success"],
|
|
364
|
+
alert: ["text-alert"],
|
|
365
|
+
error: ["text-error"],
|
|
366
|
+
info: ["text-info"],
|
|
367
|
+
neutral: ["text-neutral"]
|
|
368
|
+
}),
|
|
369
|
+
/**
|
|
370
|
+
* Sets the size of the icon.
|
|
371
|
+
*/
|
|
372
|
+
size: (0, import_internal_utils.makeVariants)({
|
|
373
|
+
current: ["u-current-font-size"],
|
|
374
|
+
sm: ["w-sz-16", "h-sz-16"],
|
|
375
|
+
md: ["w-sz-24", "h-sz-24"],
|
|
376
|
+
lg: ["w-sz-32", "h-sz-32"],
|
|
377
|
+
xl: ["w-sz-40", "h-sz-40"]
|
|
378
|
+
})
|
|
379
|
+
}
|
|
380
|
+
});
|
|
381
|
+
|
|
382
|
+
// src/icon/Icon.tsx
|
|
383
|
+
var import_jsx_runtime9 = require("react/jsx-runtime");
|
|
384
|
+
var Icon = ({
|
|
385
|
+
label,
|
|
386
|
+
className,
|
|
387
|
+
size = "current",
|
|
388
|
+
intent = "current",
|
|
389
|
+
children,
|
|
390
|
+
...others
|
|
391
|
+
}) => {
|
|
392
|
+
const child = import_react6.Children.only(children);
|
|
393
|
+
return /* @__PURE__ */ (0, import_jsx_runtime9.jsxs)(import_jsx_runtime9.Fragment, { children: [
|
|
394
|
+
(0, import_react6.cloneElement)(child, {
|
|
395
|
+
className: iconStyles({ className, size, intent }),
|
|
396
|
+
"data-spark-component": "icon",
|
|
397
|
+
"aria-hidden": "true",
|
|
398
|
+
focusable: "false",
|
|
399
|
+
...others
|
|
400
|
+
}),
|
|
401
|
+
label && /* @__PURE__ */ (0, import_jsx_runtime9.jsx)(VisuallyHidden, { children: label })
|
|
402
|
+
] });
|
|
403
|
+
};
|
|
404
|
+
Icon.displayName = "Icon";
|
|
815
405
|
|
|
816
406
|
// src/select/SelectLeadingIcon.tsx
|
|
817
|
-
var
|
|
407
|
+
var import_jsx_runtime10 = require("react/jsx-runtime");
|
|
818
408
|
var LeadingIcon = ({ children }) => {
|
|
819
|
-
return /* @__PURE__ */ (0,
|
|
409
|
+
return /* @__PURE__ */ (0, import_jsx_runtime10.jsx)(Icon, { size: "sm", className: "shrink-0", children });
|
|
820
410
|
};
|
|
821
411
|
LeadingIcon.displayName = "Select.LeadingIcon";
|
|
822
412
|
|
|
823
413
|
// src/select/SelectPlaceholder.tsx
|
|
824
|
-
var
|
|
825
|
-
var
|
|
414
|
+
var import_react7 = require("react");
|
|
415
|
+
var import_jsx_runtime11 = require("react/jsx-runtime");
|
|
826
416
|
var Placeholder = ({
|
|
827
417
|
disabled = false,
|
|
828
418
|
children,
|
|
829
419
|
ref: forwardedRef
|
|
830
420
|
}) => {
|
|
831
421
|
const { setPlaceholder } = useSelectContext();
|
|
832
|
-
(0,
|
|
422
|
+
(0, import_react7.useEffect)(() => {
|
|
833
423
|
setPlaceholder(children);
|
|
834
424
|
}, [children]);
|
|
835
|
-
return /* @__PURE__ */ (0,
|
|
425
|
+
return /* @__PURE__ */ (0, import_jsx_runtime11.jsx)(
|
|
836
426
|
"option",
|
|
837
427
|
{
|
|
838
428
|
"data-spark-component": "select-placeholder",
|
|
@@ -848,11 +438,11 @@ Placeholder.displayName = "Select.Placeholder";
|
|
|
848
438
|
|
|
849
439
|
// src/select/SelectTrigger.tsx
|
|
850
440
|
var import_ArrowHorizontalDown = require("@spark-ui/icons/ArrowHorizontalDown");
|
|
851
|
-
var
|
|
441
|
+
var import_react8 = require("react");
|
|
852
442
|
|
|
853
443
|
// src/select/SelectTrigger.styles.tsx
|
|
854
|
-
var
|
|
855
|
-
var styles2 = (0,
|
|
444
|
+
var import_class_variance_authority4 = require("class-variance-authority");
|
|
445
|
+
var styles2 = (0, import_class_variance_authority4.cva)(
|
|
856
446
|
[
|
|
857
447
|
"relative flex w-full items-center justify-between",
|
|
858
448
|
"min-h-sz-44 rounded-lg px-lg",
|
|
@@ -899,7 +489,7 @@ var styles2 = (0, import_class_variance_authority13.cva)(
|
|
|
899
489
|
);
|
|
900
490
|
|
|
901
491
|
// src/select/SelectTrigger.tsx
|
|
902
|
-
var
|
|
492
|
+
var import_jsx_runtime12 = require("react/jsx-runtime");
|
|
903
493
|
var Trigger = ({
|
|
904
494
|
"aria-label": ariaLabel,
|
|
905
495
|
children,
|
|
@@ -907,20 +497,20 @@ var Trigger = ({
|
|
|
907
497
|
ref: forwardedRef
|
|
908
498
|
}) => {
|
|
909
499
|
const { disabled, readOnly, state, setAriaLabel, itemsComponent } = useSelectContext();
|
|
910
|
-
(0,
|
|
500
|
+
(0, import_react8.useEffect)(() => {
|
|
911
501
|
if (ariaLabel) {
|
|
912
502
|
setAriaLabel(ariaLabel);
|
|
913
503
|
}
|
|
914
504
|
}, [ariaLabel]);
|
|
915
|
-
return /* @__PURE__ */ (0,
|
|
505
|
+
return /* @__PURE__ */ (0, import_jsx_runtime12.jsxs)(
|
|
916
506
|
"div",
|
|
917
507
|
{
|
|
918
508
|
"data-spark-component": "select-trigger",
|
|
919
509
|
ref: forwardedRef,
|
|
920
510
|
className: styles2({ className, state, disabled, readOnly }),
|
|
921
511
|
children: [
|
|
922
|
-
/* @__PURE__ */ (0,
|
|
923
|
-
/* @__PURE__ */ (0,
|
|
512
|
+
/* @__PURE__ */ (0, import_jsx_runtime12.jsx)("span", { className: "gap-md flex items-center justify-start", children }),
|
|
513
|
+
/* @__PURE__ */ (0, import_jsx_runtime12.jsx)(Icon, { className: "ml-md shrink-0", size: "sm", children: /* @__PURE__ */ (0, import_jsx_runtime12.jsx)(import_ArrowHorizontalDown.ArrowHorizontalDown, {}) }),
|
|
924
514
|
itemsComponent
|
|
925
515
|
]
|
|
926
516
|
}
|
|
@@ -929,8 +519,8 @@ var Trigger = ({
|
|
|
929
519
|
Trigger.displayName = "Select.Trigger";
|
|
930
520
|
|
|
931
521
|
// src/select/SelectValue.tsx
|
|
932
|
-
var
|
|
933
|
-
var
|
|
522
|
+
var import_class_variance_authority5 = require("class-variance-authority");
|
|
523
|
+
var import_jsx_runtime13 = require("react/jsx-runtime");
|
|
934
524
|
var Value = ({
|
|
935
525
|
children,
|
|
936
526
|
className,
|
|
@@ -940,17 +530,17 @@ var Value = ({
|
|
|
940
530
|
const { selectedItem, placeholder, disabled } = useSelectContext();
|
|
941
531
|
const isPlaceholderSelected = selectedItem?.value == null;
|
|
942
532
|
const valuePlaceholder = customPlaceholder || placeholder;
|
|
943
|
-
return /* @__PURE__ */ (0,
|
|
533
|
+
return /* @__PURE__ */ (0, import_jsx_runtime13.jsx)(
|
|
944
534
|
"span",
|
|
945
535
|
{
|
|
946
536
|
role: "presentation",
|
|
947
537
|
"data-spark-component": "select-value",
|
|
948
538
|
ref: forwardedRef,
|
|
949
|
-
className: (0,
|
|
950
|
-
children: /* @__PURE__ */ (0,
|
|
539
|
+
className: (0, import_class_variance_authority5.cx)("flex shrink items-center text-left", className),
|
|
540
|
+
children: /* @__PURE__ */ (0, import_jsx_runtime13.jsx)(
|
|
951
541
|
"span",
|
|
952
542
|
{
|
|
953
|
-
className: (0,
|
|
543
|
+
className: (0, import_class_variance_authority5.cx)(
|
|
954
544
|
"line-clamp-1 flex-1 overflow-hidden break-all text-ellipsis",
|
|
955
545
|
isPlaceholderSelected && !disabled && "text-on-surface/dim-1"
|
|
956
546
|
),
|
|
@@ -968,7 +558,7 @@ var Select2 = Object.assign(Select, {
|
|
|
968
558
|
Item,
|
|
969
559
|
Items,
|
|
970
560
|
Placeholder,
|
|
971
|
-
Label
|
|
561
|
+
Label,
|
|
972
562
|
Trigger,
|
|
973
563
|
Value,
|
|
974
564
|
LeadingIcon
|
|
@@ -978,7 +568,7 @@ Group.displayName = "Select.Group";
|
|
|
978
568
|
Items.displayName = "Select.Items";
|
|
979
569
|
Item.displayName = "Select.Item";
|
|
980
570
|
Placeholder.displayName = "Select.Placeholder";
|
|
981
|
-
|
|
571
|
+
Label.displayName = "Select.Label";
|
|
982
572
|
Trigger.displayName = "Select.Trigger";
|
|
983
573
|
Value.displayName = "Select.Value";
|
|
984
574
|
LeadingIcon.displayName = "Select.LeadingIcon";
|