@charcoal-ui/react 4.0.0-beta.7 → 4.0.0-beta.8
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/components/DropdownSelector/Divider/index.d.ts +3 -0
- package/dist/components/DropdownSelector/Divider/index.d.ts.map +1 -0
- package/dist/components/DropdownSelector/DropdownMenuItem/index.d.ts +8 -0
- package/dist/components/DropdownSelector/DropdownMenuItem/index.d.ts.map +1 -0
- package/dist/components/DropdownSelector/DropdownPopover.d.ts.map +1 -1
- package/dist/components/DropdownSelector/ListItem/index.d.ts +5 -13
- package/dist/components/DropdownSelector/ListItem/index.d.ts.map +1 -1
- package/dist/components/DropdownSelector/MenuItem/index.d.ts +10 -3
- package/dist/components/DropdownSelector/MenuItem/index.d.ts.map +1 -1
- package/dist/components/DropdownSelector/MenuItem/internals/useMenuItemHandleKeyDown.d.ts +1 -1
- package/dist/components/DropdownSelector/MenuItem/internals/useMenuItemHandleKeyDown.d.ts.map +1 -1
- package/dist/components/DropdownSelector/MenuItemGroup/index.d.ts +1 -3
- package/dist/components/DropdownSelector/MenuItemGroup/index.d.ts.map +1 -1
- package/dist/components/DropdownSelector/MenuList/index.d.ts +1 -4
- package/dist/components/DropdownSelector/MenuList/index.d.ts.map +1 -1
- package/dist/components/DropdownSelector/Popover/index.d.ts +1 -0
- package/dist/components/DropdownSelector/Popover/index.d.ts.map +1 -1
- package/dist/components/DropdownSelector/index.d.ts +3 -1
- package/dist/components/DropdownSelector/index.d.ts.map +1 -1
- package/dist/components/Radio/RadioGroup/index.d.ts +20 -0
- package/dist/components/Radio/RadioGroup/index.d.ts.map +1 -0
- package/dist/components/Radio/RadioGroupContext.d.ts +11 -0
- package/dist/components/Radio/RadioGroupContext.d.ts.map +1 -0
- package/dist/components/Radio/RadioInput/index.d.ts +10 -0
- package/dist/components/Radio/RadioInput/index.d.ts.map +1 -0
- package/dist/components/Radio/index.d.ts +1 -12
- package/dist/components/Radio/index.d.ts.map +1 -1
- package/dist/index.cjs.js +285 -294
- package/dist/index.cjs.js.map +1 -1
- package/dist/index.css +174 -22
- package/dist/index.css.map +1 -1
- package/dist/index.d.ts +2 -1
- package/dist/index.d.ts.map +1 -1
- package/dist/index.esm.js +230 -239
- package/dist/index.esm.js.map +1 -1
- package/package.json +8 -8
- package/src/components/DropdownSelector/Divider/index.css +11 -0
- package/src/components/DropdownSelector/Divider/index.tsx +5 -0
- package/src/components/DropdownSelector/DropdownMenuItem/index.css +20 -0
- package/src/components/DropdownSelector/DropdownMenuItem/index.tsx +34 -0
- package/src/components/DropdownSelector/DropdownPopover.tsx +16 -9
- package/src/components/DropdownSelector/ListItem/__snapshots__/index.story.storyshot +35 -94
- package/src/components/DropdownSelector/ListItem/index.css +24 -0
- package/src/components/DropdownSelector/ListItem/index.tsx +14 -53
- package/src/components/DropdownSelector/MenuItem/index.tsx +17 -12
- package/src/components/DropdownSelector/MenuItem/internals/useMenuItemHandleKeyDown.tsx +2 -2
- package/src/components/DropdownSelector/MenuItemGroup/index.css +19 -0
- package/src/components/DropdownSelector/MenuItemGroup/index.tsx +6 -28
- package/src/components/DropdownSelector/MenuList/__snapshots__/index.story.storyshot +159 -413
- package/src/components/DropdownSelector/MenuList/index.css +4 -0
- package/src/components/DropdownSelector/MenuList/index.tsx +4 -12
- package/src/components/DropdownSelector/Popover/index.css +11 -0
- package/src/components/DropdownSelector/Popover/index.tsx +6 -15
- package/src/components/DropdownSelector/__snapshots__/index.story.storyshot +389 -1167
- package/src/components/DropdownSelector/index.css +84 -0
- package/src/components/DropdownSelector/index.story.tsx +0 -4
- package/src/components/DropdownSelector/index.tsx +40 -102
- package/src/components/Modal/__snapshots__/index.story.storyshot +16 -176
- package/src/components/Radio/RadioGroup/index.css +5 -0
- package/src/components/Radio/RadioGroup/index.tsx +80 -0
- package/src/components/Radio/RadioGroupContext.ts +23 -0
- package/src/components/Radio/RadioInput/index.css +82 -0
- package/src/components/Radio/RadioInput/index.tsx +41 -0
- package/src/components/Radio/__snapshots__/index.story.storyshot +36 -30
- package/src/components/Radio/index.css +2 -81
- package/src/components/Radio/index.story.tsx +16 -6
- package/src/components/Radio/index.test.tsx +2 -1
- package/src/components/Radio/index.tsx +7 -89
- package/src/index.ts +2 -6
- package/dist/components/DropdownSelector/Divider.d.ts +0 -7
- package/dist/components/DropdownSelector/Divider.d.ts.map +0 -1
- package/dist/components/DropdownSelector/DropdownMenuItem.d.ts +0 -7
- package/dist/components/DropdownSelector/DropdownMenuItem.d.ts.map +0 -1
- package/src/components/DropdownSelector/Divider.tsx +0 -16
- package/src/components/DropdownSelector/DropdownMenuItem.tsx +0 -43
package/dist/index.cjs.js
CHANGED
|
@@ -196,11 +196,43 @@ function validateIconSize(size, icon) {
|
|
|
196
196
|
}
|
|
197
197
|
|
|
198
198
|
// src/components/Radio/index.tsx
|
|
199
|
-
var
|
|
200
|
-
var React5 = __toESM(require("react"));
|
|
199
|
+
var import_react8 = require("react");
|
|
201
200
|
var import_warning = __toESM(require("warning"));
|
|
201
|
+
|
|
202
|
+
// src/components/Radio/RadioGroupContext.ts
|
|
203
|
+
var React5 = __toESM(require("react"));
|
|
204
|
+
var RadioGroupContext = React5.createContext({
|
|
205
|
+
name: void 0,
|
|
206
|
+
selected: void 0,
|
|
207
|
+
disabled: false,
|
|
208
|
+
readonly: false,
|
|
209
|
+
invalid: false,
|
|
210
|
+
onChange() {
|
|
211
|
+
throw new Error("Cannot find onChange() handler. Perhaps you forgot to wrap with <RadioGroup> ?");
|
|
212
|
+
}
|
|
213
|
+
});
|
|
214
|
+
|
|
215
|
+
// src/components/Radio/RadioInput/index.tsx
|
|
216
|
+
var import_react7 = require("react");
|
|
202
217
|
var import_jsx_runtime6 = require("react/jsx-runtime");
|
|
203
|
-
var
|
|
218
|
+
var RadioInput = (0, import_react7.forwardRef)(function RadioInput2({
|
|
219
|
+
onChange,
|
|
220
|
+
invalid,
|
|
221
|
+
className,
|
|
222
|
+
...props
|
|
223
|
+
}, ref) {
|
|
224
|
+
const handleChange = (0, import_react7.useCallback)((e) => {
|
|
225
|
+
const el = e.currentTarget;
|
|
226
|
+
onChange?.(el.value);
|
|
227
|
+
}, [onChange]);
|
|
228
|
+
const classNames = useClassNames("charcoal-radio-input", className);
|
|
229
|
+
return /* @__PURE__ */ (0, import_jsx_runtime6.jsx)("input", { className: classNames, ref, type: "radio", onChange: handleChange, "aria-invalid": invalid, ...props });
|
|
230
|
+
});
|
|
231
|
+
var RadioInput_default = (0, import_react7.memo)(RadioInput);
|
|
232
|
+
|
|
233
|
+
// src/components/Radio/index.tsx
|
|
234
|
+
var import_jsx_runtime7 = require("react/jsx-runtime");
|
|
235
|
+
var Radio = (0, import_react8.forwardRef)(function RadioInner({
|
|
204
236
|
value,
|
|
205
237
|
disabled = false,
|
|
206
238
|
children,
|
|
@@ -213,7 +245,7 @@ var Radio = (0, import_react7.forwardRef)(function RadioInner({
|
|
|
213
245
|
readonly,
|
|
214
246
|
invalid,
|
|
215
247
|
onChange
|
|
216
|
-
} = (0,
|
|
248
|
+
} = (0, import_react8.useContext)(RadioGroupContext);
|
|
217
249
|
const classNames = useClassNames("charcoal-radio__label", props.className);
|
|
218
250
|
(0, import_warning.default)(
|
|
219
251
|
name !== void 0,
|
|
@@ -222,40 +254,33 @@ var Radio = (0, import_react7.forwardRef)(function RadioInner({
|
|
|
222
254
|
const isSelected = value === selected;
|
|
223
255
|
const isDisabled = disabled || isParentDisabled;
|
|
224
256
|
const isReadonly = readonly && !isSelected;
|
|
225
|
-
|
|
226
|
-
|
|
227
|
-
|
|
228
|
-
return /* @__PURE__ */ (0, import_jsx_runtime6.jsxs)("label", { "aria-disabled": isDisabled || isReadonly, className: classNames, children: [
|
|
229
|
-
/* @__PURE__ */ (0, import_jsx_runtime6.jsx)("input", { type: "radio", className: "charcoal-radio__input", name, value, checked: isSelected, "aria-invalid": invalid, onChange: handleChange, disabled: isDisabled || isReadonly, ref }),
|
|
230
|
-
children != null && /* @__PURE__ */ (0, import_jsx_runtime6.jsx)("div", { className: "charcoal-radio__label_div", children })
|
|
257
|
+
return /* @__PURE__ */ (0, import_jsx_runtime7.jsxs)("label", { "aria-disabled": isDisabled || isReadonly, className: classNames, children: [
|
|
258
|
+
/* @__PURE__ */ (0, import_jsx_runtime7.jsx)(RadioInput_default, { name, value, checked: isSelected, "aria-invalid": invalid, onChange, disabled: isDisabled || isReadonly, ref }),
|
|
259
|
+
children != null && /* @__PURE__ */ (0, import_jsx_runtime7.jsx)("div", { className: "charcoal-radio__label_div", children })
|
|
231
260
|
] });
|
|
232
261
|
});
|
|
233
|
-
var Radio_default = (0,
|
|
234
|
-
|
|
235
|
-
|
|
236
|
-
|
|
237
|
-
|
|
238
|
-
|
|
239
|
-
invalid: false,
|
|
240
|
-
onChange() {
|
|
241
|
-
throw new Error("Cannot find onChange() handler. Perhaps you forgot to wrap with <RadioGroup> ?");
|
|
242
|
-
}
|
|
243
|
-
});
|
|
244
|
-
var RadioGroup = (0, import_react7.forwardRef)(function RadioGroupInner({
|
|
262
|
+
var Radio_default = (0, import_react8.memo)(Radio);
|
|
263
|
+
|
|
264
|
+
// src/components/Radio/RadioGroup/index.tsx
|
|
265
|
+
var import_react9 = require("react");
|
|
266
|
+
var import_jsx_runtime8 = require("react/jsx-runtime");
|
|
267
|
+
var RadioGroup = (0, import_react9.forwardRef)(function RadioGroupInner({
|
|
245
268
|
value,
|
|
269
|
+
label,
|
|
246
270
|
name,
|
|
247
271
|
onChange,
|
|
248
272
|
disabled,
|
|
249
273
|
readonly,
|
|
250
274
|
invalid,
|
|
251
275
|
children,
|
|
276
|
+
"aria-orientation": ariaOrientation = "vertical",
|
|
252
277
|
...props
|
|
253
278
|
}, ref) {
|
|
254
279
|
const classNames = useClassNames("charcoal-radio-group", props.className);
|
|
255
|
-
const handleChange = (0,
|
|
280
|
+
const handleChange = (0, import_react9.useCallback)((next) => {
|
|
256
281
|
onChange(next);
|
|
257
282
|
}, [onChange]);
|
|
258
|
-
const contextValue = (0,
|
|
283
|
+
const contextValue = (0, import_react9.useMemo)(() => ({
|
|
259
284
|
name,
|
|
260
285
|
selected: value,
|
|
261
286
|
disabled: disabled ?? false,
|
|
@@ -263,34 +288,34 @@ var RadioGroup = (0, import_react7.forwardRef)(function RadioGroupInner({
|
|
|
263
288
|
invalid: invalid ?? false,
|
|
264
289
|
onChange: handleChange
|
|
265
290
|
}), [disabled, handleChange, invalid, name, readonly, value]);
|
|
266
|
-
return /* @__PURE__ */ (0,
|
|
291
|
+
return /* @__PURE__ */ (0, import_jsx_runtime8.jsx)(RadioGroupContext.Provider, { value: contextValue, children: /* @__PURE__ */ (0, import_jsx_runtime8.jsx)("div", { role: "radiogroup", "aria-disabled": disabled, "aria-invalid": invalid, "aria-label": label, "aria-labelledby": props["aria-labelledby"], "aria-orientation": ariaOrientation, className: classNames, ref, children }) });
|
|
267
292
|
});
|
|
268
293
|
|
|
269
294
|
// src/components/Switch/index.tsx
|
|
270
|
-
var
|
|
295
|
+
var import_react11 = require("react");
|
|
271
296
|
var import_utils = require("@react-aria/utils");
|
|
272
297
|
|
|
273
298
|
// src/components/Switch/SwitchInput/index.tsx
|
|
274
|
-
var
|
|
275
|
-
var
|
|
276
|
-
var SwitchInput = (0,
|
|
299
|
+
var import_react10 = require("react");
|
|
300
|
+
var import_jsx_runtime9 = require("react/jsx-runtime");
|
|
301
|
+
var SwitchInput = (0, import_react10.forwardRef)(function SwitchInput2({
|
|
277
302
|
onChange,
|
|
278
303
|
className,
|
|
279
304
|
...props
|
|
280
305
|
}, ref) {
|
|
281
|
-
const handleChange = (0,
|
|
306
|
+
const handleChange = (0, import_react10.useCallback)((e) => {
|
|
282
307
|
const el = e.currentTarget;
|
|
283
308
|
onChange?.(el.checked);
|
|
284
309
|
}, [onChange]);
|
|
285
310
|
props.children;
|
|
286
311
|
const classNames = useClassNames("charcoal-switch-input", className);
|
|
287
|
-
return /* @__PURE__ */ (0,
|
|
312
|
+
return /* @__PURE__ */ (0, import_jsx_runtime9.jsx)("input", { ref, className: classNames, type: "checkbox", onChange: handleChange, ...props });
|
|
288
313
|
});
|
|
289
314
|
var SwitchInput_default = SwitchInput;
|
|
290
315
|
|
|
291
316
|
// src/components/Switch/SwitchWithLabel.tsx
|
|
292
317
|
var React6 = __toESM(require("react"));
|
|
293
|
-
var
|
|
318
|
+
var import_jsx_runtime10 = require("react/jsx-runtime");
|
|
294
319
|
var SwitchWithLabel = React6.memo(function SwitchWithLabel2({
|
|
295
320
|
children,
|
|
296
321
|
className,
|
|
@@ -299,15 +324,15 @@ var SwitchWithLabel = React6.memo(function SwitchWithLabel2({
|
|
|
299
324
|
input
|
|
300
325
|
}) {
|
|
301
326
|
const classNames = useClassNames("charcoal-switch__label", className);
|
|
302
|
-
return /* @__PURE__ */ (0,
|
|
327
|
+
return /* @__PURE__ */ (0, import_jsx_runtime10.jsxs)("label", { htmlFor: id, className: classNames, "aria-disabled": disabled, children: [
|
|
303
328
|
input,
|
|
304
|
-
/* @__PURE__ */ (0,
|
|
329
|
+
/* @__PURE__ */ (0, import_jsx_runtime10.jsx)("div", { className: "charcoal-switch__label_div", children })
|
|
305
330
|
] });
|
|
306
331
|
});
|
|
307
332
|
|
|
308
333
|
// src/components/Switch/index.tsx
|
|
309
|
-
var
|
|
310
|
-
var Switch = (0,
|
|
334
|
+
var import_jsx_runtime11 = require("react/jsx-runtime");
|
|
335
|
+
var Switch = (0, import_react11.forwardRef)(function Switch2({
|
|
311
336
|
children,
|
|
312
337
|
onChange,
|
|
313
338
|
disabled,
|
|
@@ -317,22 +342,22 @@ var Switch = (0, import_react9.forwardRef)(function Switch2({
|
|
|
317
342
|
}, ref) {
|
|
318
343
|
const htmlId = (0, import_utils.useId)(id);
|
|
319
344
|
const noChildren = children === void 0;
|
|
320
|
-
const input = /* @__PURE__ */ (0,
|
|
345
|
+
const input = /* @__PURE__ */ (0, import_jsx_runtime11.jsx)(SwitchInput_default, { ...props, disabled, className: noChildren ? className : void 0, id: htmlId, onChange, ref, role: "switch", type: "checkbox" });
|
|
321
346
|
if (noChildren) {
|
|
322
347
|
return input;
|
|
323
348
|
}
|
|
324
|
-
return /* @__PURE__ */ (0,
|
|
349
|
+
return /* @__PURE__ */ (0, import_jsx_runtime11.jsx)(SwitchWithLabel, { className, disabled, id: htmlId, input, children });
|
|
325
350
|
});
|
|
326
|
-
var Switch_default = (0,
|
|
351
|
+
var Switch_default = (0, import_react11.memo)(Switch);
|
|
327
352
|
|
|
328
353
|
// src/components/TextField/index.tsx
|
|
329
354
|
var import_visually_hidden = require("@react-aria/visually-hidden");
|
|
330
|
-
var
|
|
355
|
+
var import_react14 = require("react");
|
|
331
356
|
var React8 = __toESM(require("react"));
|
|
332
357
|
|
|
333
358
|
// src/components/FieldLabel/index.tsx
|
|
334
359
|
var React7 = __toESM(require("react"));
|
|
335
|
-
var
|
|
360
|
+
var import_jsx_runtime12 = require("react/jsx-runtime");
|
|
336
361
|
var FieldLabel = React7.forwardRef(function FieldLabel2({
|
|
337
362
|
style,
|
|
338
363
|
className,
|
|
@@ -343,10 +368,10 @@ var FieldLabel = React7.forwardRef(function FieldLabel2({
|
|
|
343
368
|
...labelProps
|
|
344
369
|
}, ref) {
|
|
345
370
|
const classNames = useClassNames("charcoal-field-label-root", className);
|
|
346
|
-
return /* @__PURE__ */ (0,
|
|
347
|
-
/* @__PURE__ */ (0,
|
|
348
|
-
required && /* @__PURE__ */ (0,
|
|
349
|
-
/* @__PURE__ */ (0,
|
|
371
|
+
return /* @__PURE__ */ (0, import_jsx_runtime12.jsxs)("div", { style, className: classNames, children: [
|
|
372
|
+
/* @__PURE__ */ (0, import_jsx_runtime12.jsx)("label", { ref, className: "charcoal-field-label", ...labelProps, children: label }),
|
|
373
|
+
required && /* @__PURE__ */ (0, import_jsx_runtime12.jsx)("div", { className: "charcoal-field-label-required-text", children: requiredText }),
|
|
374
|
+
/* @__PURE__ */ (0, import_jsx_runtime12.jsx)("div", { className: "charcoal-field-label-sub-label", children: /* @__PURE__ */ (0, import_jsx_runtime12.jsx)("span", { children: subLabel }) })
|
|
350
375
|
] });
|
|
351
376
|
});
|
|
352
377
|
var FieldLabel_default = FieldLabel;
|
|
@@ -369,9 +394,9 @@ function countCodePointsInString(string) {
|
|
|
369
394
|
}
|
|
370
395
|
|
|
371
396
|
// src/components/TextField/useFocusWithClick.tsx
|
|
372
|
-
var
|
|
397
|
+
var import_react12 = require("react");
|
|
373
398
|
function useFocusWithClick(containerRef, inputRef) {
|
|
374
|
-
(0,
|
|
399
|
+
(0, import_react12.useEffect)(() => {
|
|
375
400
|
const el = containerRef.current;
|
|
376
401
|
if (el) {
|
|
377
402
|
const handleDown = (e) => {
|
|
@@ -391,15 +416,15 @@ function useFocusWithClick(containerRef, inputRef) {
|
|
|
391
416
|
var import_utils2 = require("@react-aria/utils");
|
|
392
417
|
|
|
393
418
|
// src/_lib/createDivComponent.tsx
|
|
394
|
-
var
|
|
395
|
-
var
|
|
419
|
+
var import_react13 = require("react");
|
|
420
|
+
var import_jsx_runtime13 = require("react/jsx-runtime");
|
|
396
421
|
function createDivComponent(mainClassName) {
|
|
397
|
-
return (0,
|
|
422
|
+
return (0, import_react13.forwardRef)(function DivComponent({
|
|
398
423
|
className,
|
|
399
424
|
...props
|
|
400
425
|
}, ref) {
|
|
401
426
|
const classNames = useClassNames(mainClassName, className);
|
|
402
|
-
return /* @__PURE__ */ (0,
|
|
427
|
+
return /* @__PURE__ */ (0, import_jsx_runtime13.jsx)("div", { className: classNames, ref, ...props });
|
|
403
428
|
});
|
|
404
429
|
}
|
|
405
430
|
|
|
@@ -407,7 +432,7 @@ function createDivComponent(mainClassName) {
|
|
|
407
432
|
var AssistiveText = createDivComponent("charcoal-text-field-assistive-text");
|
|
408
433
|
|
|
409
434
|
// src/components/TextField/index.tsx
|
|
410
|
-
var
|
|
435
|
+
var import_jsx_runtime14 = require("react/jsx-runtime");
|
|
411
436
|
var TextField = React8.forwardRef(function SingleLineTextFieldInner({
|
|
412
437
|
assistiveText,
|
|
413
438
|
className,
|
|
@@ -427,13 +452,13 @@ var TextField = React8.forwardRef(function SingleLineTextFieldInner({
|
|
|
427
452
|
value,
|
|
428
453
|
getCount = countCodePointsInString,
|
|
429
454
|
...props
|
|
430
|
-
},
|
|
431
|
-
const inputRef = (0,
|
|
455
|
+
}, forwardRef24) {
|
|
456
|
+
const inputRef = (0, import_react14.useRef)(null);
|
|
432
457
|
const {
|
|
433
458
|
visuallyHiddenProps
|
|
434
459
|
} = (0, import_visually_hidden.useVisuallyHidden)();
|
|
435
|
-
const [count, setCount] = (0,
|
|
436
|
-
const handleChange = (0,
|
|
460
|
+
const [count, setCount] = (0, import_react14.useState)(getCount(value ?? ""));
|
|
461
|
+
const handleChange = (0, import_react14.useCallback)((e) => {
|
|
437
462
|
const value2 = e.target.value;
|
|
438
463
|
const count2 = getCount(value2);
|
|
439
464
|
if (maxLength !== void 0 && count2 > maxLength) {
|
|
@@ -442,37 +467,37 @@ var TextField = React8.forwardRef(function SingleLineTextFieldInner({
|
|
|
442
467
|
setCount(count2);
|
|
443
468
|
onChange?.(value2);
|
|
444
469
|
}, [getCount, maxLength, onChange]);
|
|
445
|
-
(0,
|
|
470
|
+
(0, import_react14.useEffect)(() => {
|
|
446
471
|
setCount(getCount(value ?? ""));
|
|
447
472
|
}, [getCount, value]);
|
|
448
|
-
const containerRef = (0,
|
|
473
|
+
const containerRef = (0, import_react14.useRef)(null);
|
|
449
474
|
useFocusWithClick(containerRef, inputRef);
|
|
450
475
|
const inputId = (0, import_utils2.useId)(props.id);
|
|
451
476
|
const describedbyId = (0, import_utils2.useId)();
|
|
452
477
|
const labelledbyId = (0, import_utils2.useId)();
|
|
453
478
|
const showAssistiveText = assistiveText != null && assistiveText.length !== 0;
|
|
454
479
|
const classNames = useClassNames("charcoal-text-field-root");
|
|
455
|
-
return /* @__PURE__ */ (0,
|
|
456
|
-
/* @__PURE__ */ (0,
|
|
457
|
-
/* @__PURE__ */ (0,
|
|
458
|
-
prefix && /* @__PURE__ */ (0,
|
|
459
|
-
/* @__PURE__ */ (0,
|
|
460
|
-
(suffix || showCount) && /* @__PURE__ */ (0,
|
|
480
|
+
return /* @__PURE__ */ (0, import_jsx_runtime14.jsxs)("div", { className: classNames, "aria-disabled": disabled, children: [
|
|
481
|
+
/* @__PURE__ */ (0, import_jsx_runtime14.jsx)(FieldLabel_default, { htmlFor: inputId, id: labelledbyId, label, required, requiredText, subLabel, ...!showLabel ? visuallyHiddenProps : {} }),
|
|
482
|
+
/* @__PURE__ */ (0, import_jsx_runtime14.jsxs)("div", { className: "charcoal-text-field-container", "aria-disabled": disabled === true ? true : void 0, "data-invalid": invalid === true, ref: containerRef, children: [
|
|
483
|
+
prefix && /* @__PURE__ */ (0, import_jsx_runtime14.jsx)("div", { className: "charcoal-text-field-prefix", children: prefix }),
|
|
484
|
+
/* @__PURE__ */ (0, import_jsx_runtime14.jsx)("input", { className: "charcoal-text-field-input", "aria-describedby": showAssistiveText ? describedbyId : void 0, "aria-invalid": invalid, "aria-labelledby": labelledbyId, id: inputId, "data-invalid": invalid === true, maxLength, onChange: handleChange, disabled, ref: (0, import_utils2.mergeRefs)(forwardRef24, inputRef), type, value, ...props }),
|
|
485
|
+
(suffix || showCount) && /* @__PURE__ */ (0, import_jsx_runtime14.jsxs)("div", { className: "charcoal-text-field-suffix", children: [
|
|
461
486
|
suffix,
|
|
462
|
-
showCount && /* @__PURE__ */ (0,
|
|
487
|
+
showCount && /* @__PURE__ */ (0, import_jsx_runtime14.jsx)("span", { className: "charcoal-text-field-line-counter", children: maxLength !== void 0 ? `${count}/${maxLength}` : count })
|
|
463
488
|
] })
|
|
464
489
|
] }),
|
|
465
|
-
showAssistiveText && /* @__PURE__ */ (0,
|
|
490
|
+
showAssistiveText && /* @__PURE__ */ (0, import_jsx_runtime14.jsx)(AssistiveText, { "data-invalid": invalid === true, id: describedbyId, children: assistiveText })
|
|
466
491
|
] });
|
|
467
492
|
});
|
|
468
493
|
var TextField_default = TextField;
|
|
469
494
|
|
|
470
495
|
// src/components/TextArea/index.tsx
|
|
471
496
|
var import_visually_hidden2 = require("@react-aria/visually-hidden");
|
|
472
|
-
var
|
|
497
|
+
var import_react15 = require("react");
|
|
473
498
|
var import_utils3 = require("@react-aria/utils");
|
|
474
|
-
var
|
|
475
|
-
var TextArea = (0,
|
|
499
|
+
var import_jsx_runtime15 = require("react/jsx-runtime");
|
|
500
|
+
var TextArea = (0, import_react15.forwardRef)(function TextAreaInner({
|
|
476
501
|
onChange,
|
|
477
502
|
className,
|
|
478
503
|
value,
|
|
@@ -490,20 +515,20 @@ var TextArea = (0, import_react13.forwardRef)(function TextAreaInner({
|
|
|
490
515
|
invalid,
|
|
491
516
|
getCount = countCodePointsInString,
|
|
492
517
|
...props
|
|
493
|
-
},
|
|
518
|
+
}, forwardRef24) {
|
|
494
519
|
const {
|
|
495
520
|
visuallyHiddenProps
|
|
496
521
|
} = (0, import_visually_hidden2.useVisuallyHidden)();
|
|
497
|
-
const textareaRef = (0,
|
|
498
|
-
const [count, setCount] = (0,
|
|
499
|
-
const [rows, setRows] = (0,
|
|
500
|
-
const syncHeight = (0,
|
|
522
|
+
const textareaRef = (0, import_react15.useRef)(null);
|
|
523
|
+
const [count, setCount] = (0, import_react15.useState)(getCount(value ?? ""));
|
|
524
|
+
const [rows, setRows] = (0, import_react15.useState)(initialRows);
|
|
525
|
+
const syncHeight = (0, import_react15.useCallback)((textarea) => {
|
|
501
526
|
const rows2 = (`${textarea.value}
|
|
502
527
|
`.match(/\n/gu)?.length ?? 0) || 1;
|
|
503
528
|
setRows(initialRows <= rows2 ? rows2 : initialRows);
|
|
504
529
|
}, [initialRows]);
|
|
505
530
|
const nonControlled = value === void 0;
|
|
506
|
-
const handleChange = (0,
|
|
531
|
+
const handleChange = (0, import_react15.useCallback)((e) => {
|
|
507
532
|
const value2 = e.target.value;
|
|
508
533
|
const count2 = getCount(value2);
|
|
509
534
|
if (maxLength !== void 0 && count2 > maxLength) {
|
|
@@ -517,30 +542,30 @@ var TextArea = (0, import_react13.forwardRef)(function TextAreaInner({
|
|
|
517
542
|
}
|
|
518
543
|
onChange?.(value2);
|
|
519
544
|
}, [autoHeight, getCount, maxLength, nonControlled, onChange, syncHeight]);
|
|
520
|
-
(0,
|
|
545
|
+
(0, import_react15.useEffect)(() => {
|
|
521
546
|
setCount(getCount(value ?? ""));
|
|
522
547
|
}, [getCount, value]);
|
|
523
|
-
(0,
|
|
548
|
+
(0, import_react15.useEffect)(() => {
|
|
524
549
|
if (autoHeight && textareaRef.current !== null) {
|
|
525
550
|
syncHeight(textareaRef.current);
|
|
526
551
|
}
|
|
527
552
|
}, [autoHeight, syncHeight]);
|
|
528
|
-
const containerRef = (0,
|
|
553
|
+
const containerRef = (0, import_react15.useRef)(null);
|
|
529
554
|
useFocusWithClick(containerRef, textareaRef);
|
|
530
555
|
const textAreaId = (0, import_utils3.useId)(props.id);
|
|
531
556
|
const describedbyId = (0, import_utils3.useId)();
|
|
532
557
|
const labelledbyId = (0, import_utils3.useId)();
|
|
533
558
|
const classNames = useClassNames("charcoal-text-area-root", className);
|
|
534
559
|
const showAssistiveText = assistiveText != null && assistiveText.length !== 0;
|
|
535
|
-
return /* @__PURE__ */ (0,
|
|
536
|
-
/* @__PURE__ */ (0,
|
|
537
|
-
/* @__PURE__ */ (0,
|
|
560
|
+
return /* @__PURE__ */ (0, import_jsx_runtime15.jsxs)("div", { className: classNames, "aria-disabled": disabled, children: [
|
|
561
|
+
/* @__PURE__ */ (0, import_jsx_runtime15.jsx)(FieldLabel_default, { htmlFor: textAreaId, id: labelledbyId, label, required, requiredText, subLabel, ...!showLabel ? visuallyHiddenProps : {} }),
|
|
562
|
+
/* @__PURE__ */ (0, import_jsx_runtime15.jsxs)("div", { className: "charcoal-text-area-container", "aria-disabled": disabled === true ? "true" : void 0, "aria-invalid": invalid === true, ref: containerRef, style: {
|
|
538
563
|
"--charcoal-text-area-rows": `${showCount ? rows + 1 : rows}`
|
|
539
564
|
}, children: [
|
|
540
|
-
/* @__PURE__ */ (0,
|
|
541
|
-
showCount && /* @__PURE__ */ (0,
|
|
565
|
+
/* @__PURE__ */ (0, import_jsx_runtime15.jsx)("textarea", { className: "charcoal-text-area-textarea", "aria-describedby": showAssistiveText ? describedbyId : void 0, "aria-invalid": invalid, "aria-labelledby": labelledbyId, id: textAreaId, maxLength, "data-no-bottom-padding": showCount, onChange: handleChange, ref: mergeRefs(forwardRef24, textareaRef), rows, value, disabled, ...props }),
|
|
566
|
+
showCount && /* @__PURE__ */ (0, import_jsx_runtime15.jsx)("span", { className: "charcoal-text-area-counter", children: maxLength !== void 0 ? `${count}/${maxLength}` : count })
|
|
542
567
|
] }),
|
|
543
|
-
showAssistiveText && /* @__PURE__ */ (0,
|
|
568
|
+
showAssistiveText && /* @__PURE__ */ (0, import_jsx_runtime15.jsx)(AssistiveText, { "data-invalid": invalid === true, id: describedbyId, children: assistiveText })
|
|
544
569
|
] });
|
|
545
570
|
});
|
|
546
571
|
var TextArea_default = TextArea;
|
|
@@ -548,7 +573,7 @@ var TextArea_default = TextArea;
|
|
|
548
573
|
// src/components/Icon/index.tsx
|
|
549
574
|
var React9 = __toESM(require("react"));
|
|
550
575
|
var import_icons = require("@charcoal-ui/icons");
|
|
551
|
-
var
|
|
576
|
+
var import_jsx_runtime16 = require("react/jsx-runtime");
|
|
552
577
|
var Icon = React9.forwardRef(function IconInner({
|
|
553
578
|
name,
|
|
554
579
|
scale,
|
|
@@ -556,12 +581,12 @@ var Icon = React9.forwardRef(function IconInner({
|
|
|
556
581
|
className,
|
|
557
582
|
...rest
|
|
558
583
|
}, ref) {
|
|
559
|
-
return /* @__PURE__ */ (0,
|
|
584
|
+
return /* @__PURE__ */ (0, import_jsx_runtime16.jsx)("pixiv-icon", { ref, name, scale, "unsafe-non-guideline-scale": unsafeNonGuidelineScale, class: className, ...rest });
|
|
560
585
|
});
|
|
561
586
|
var Icon_default = Icon;
|
|
562
587
|
|
|
563
588
|
// src/components/Modal/index.tsx
|
|
564
|
-
var
|
|
589
|
+
var import_react18 = require("react");
|
|
565
590
|
var React13 = __toESM(require("react"));
|
|
566
591
|
var import_overlays3 = require("@react-aria/overlays");
|
|
567
592
|
var import_styled_components2 = require("styled-components");
|
|
@@ -571,7 +596,7 @@ var import_react_spring = require("react-spring");
|
|
|
571
596
|
var import_utils5 = require("@react-aria/utils");
|
|
572
597
|
|
|
573
598
|
// src/components/Modal/Dialog/index.tsx
|
|
574
|
-
var
|
|
599
|
+
var import_react16 = require("react");
|
|
575
600
|
var import_dialog = require("@react-aria/dialog");
|
|
576
601
|
|
|
577
602
|
// src/_lib/useForwardedRef.tsx
|
|
@@ -591,22 +616,22 @@ function useForwardedRef(ref) {
|
|
|
591
616
|
}
|
|
592
617
|
|
|
593
618
|
// src/components/Modal/Dialog/index.tsx
|
|
594
|
-
var
|
|
595
|
-
var Dialog = (0,
|
|
619
|
+
var import_jsx_runtime17 = require("react/jsx-runtime");
|
|
620
|
+
var Dialog = (0, import_react16.forwardRef)(function Dialog2({
|
|
596
621
|
size,
|
|
597
622
|
bottomSheet,
|
|
598
|
-
css
|
|
623
|
+
css,
|
|
599
624
|
className,
|
|
600
625
|
...props
|
|
601
|
-
},
|
|
602
|
-
const ref = useForwardedRef(
|
|
626
|
+
}, forwardRef24) {
|
|
627
|
+
const ref = useForwardedRef(forwardRef24);
|
|
603
628
|
const {
|
|
604
629
|
dialogProps
|
|
605
630
|
} = (0, import_dialog.useDialog)({
|
|
606
631
|
role: "dialog"
|
|
607
632
|
}, ref);
|
|
608
633
|
const classNames = useClassNames("charcoal-modal-dialog", className);
|
|
609
|
-
return /* @__PURE__ */ (0,
|
|
634
|
+
return /* @__PURE__ */ (0, import_jsx_runtime17.jsx)("div", { className: classNames, role: dialogProps.role, "data-bottom-sheet": bottomSheet, tabIndex: dialogProps.tabIndex, "aria-labelledby": dialogProps["aria-labelledby"], onBlur: dialogProps.onBlur, ref, ...props });
|
|
610
635
|
});
|
|
611
636
|
|
|
612
637
|
// src/components/Modal/ModalBackgroundContext.tsx
|
|
@@ -618,9 +643,9 @@ var React12 = __toESM(require("react"));
|
|
|
618
643
|
var import_overlays2 = require("@react-aria/overlays");
|
|
619
644
|
|
|
620
645
|
// src/components/DropdownSelector/Popover/usePreventScroll.tsx
|
|
621
|
-
var
|
|
646
|
+
var import_react17 = require("react");
|
|
622
647
|
function usePreventScroll(element, isOpen) {
|
|
623
|
-
(0,
|
|
648
|
+
(0, import_react17.useEffect)(() => {
|
|
624
649
|
if (isOpen && element) {
|
|
625
650
|
const defaultPaddingRight = element.style.paddingRight;
|
|
626
651
|
const defaultOverflow = element.style.overflow;
|
|
@@ -659,9 +684,9 @@ function useCharcoalModalOverlay(props, state, ref) {
|
|
|
659
684
|
}
|
|
660
685
|
|
|
661
686
|
// src/components/Modal/index.tsx
|
|
662
|
-
var
|
|
687
|
+
var import_jsx_runtime18 = require("react/jsx-runtime");
|
|
663
688
|
var DEFAULT_Z_INDEX = 10;
|
|
664
|
-
var Modal = (0,
|
|
689
|
+
var Modal = (0, import_react18.forwardRef)(function ModalInner({
|
|
665
690
|
children,
|
|
666
691
|
zIndex = DEFAULT_Z_INDEX,
|
|
667
692
|
portalContainer,
|
|
@@ -727,15 +752,15 @@ var Modal = (0, import_react16.forwardRef)(function ModalInner({
|
|
|
727
752
|
backgroundColor,
|
|
728
753
|
overflow,
|
|
729
754
|
transform
|
|
730
|
-
}, item) => item && /* @__PURE__ */ (0,
|
|
755
|
+
}, item) => item && /* @__PURE__ */ (0, import_jsx_runtime18.jsx)(import_overlays3.Overlay, { portalContainer, children: /* @__PURE__ */ (0, import_jsx_runtime18.jsx)(import_react_spring.animated.div, { className: "charcoal-modal-background", ref: bgRef, ...underlayProps, style: transitionEnabled ? {
|
|
731
756
|
backgroundColor,
|
|
732
757
|
overflow,
|
|
733
758
|
zIndex
|
|
734
759
|
} : {
|
|
735
760
|
zIndex
|
|
736
|
-
}, "data-bottom-sheet": bottomSheet, onClick: handleClick, children: /* @__PURE__ */ (0,
|
|
761
|
+
}, "data-bottom-sheet": bottomSheet, onClick: handleClick, children: /* @__PURE__ */ (0, import_jsx_runtime18.jsx)(ModalBackgroundContext.Provider, { value: bgRef.current, children: /* @__PURE__ */ (0, import_jsx_runtime18.jsx)(AnimatedDialog, { ref, ...modalProps, style: transitionEnabled ? {
|
|
737
762
|
transform
|
|
738
|
-
} : {}, size, bottomSheet, className, children: /* @__PURE__ */ (0,
|
|
763
|
+
} : {}, size, bottomSheet, className, children: /* @__PURE__ */ (0, import_jsx_runtime18.jsxs)(ModalContext.Provider, { value: {
|
|
739
764
|
titleProps: {},
|
|
740
765
|
title,
|
|
741
766
|
close: onClose,
|
|
@@ -743,11 +768,11 @@ var Modal = (0, import_react16.forwardRef)(function ModalInner({
|
|
|
743
768
|
bottomSheet
|
|
744
769
|
}, children: [
|
|
745
770
|
children,
|
|
746
|
-
isDismissable === true && /* @__PURE__ */ (0,
|
|
771
|
+
isDismissable === true && /* @__PURE__ */ (0, import_jsx_runtime18.jsx)(ModalCloseButton, { "aria-label": closeButtonAriaLabel, onClick: onClose })
|
|
747
772
|
] }) }) }) }) }));
|
|
748
773
|
});
|
|
749
774
|
var AnimatedDialog = (0, import_react_spring.animated)(Dialog);
|
|
750
|
-
var Modal_default = (0,
|
|
775
|
+
var Modal_default = (0, import_react18.memo)(Modal);
|
|
751
776
|
var ModalContext = React13.createContext({
|
|
752
777
|
titleProps: {},
|
|
753
778
|
title: "",
|
|
@@ -756,41 +781,41 @@ var ModalContext = React13.createContext({
|
|
|
756
781
|
bottomSheet: false
|
|
757
782
|
});
|
|
758
783
|
function ModalCloseButton(props) {
|
|
759
|
-
return /* @__PURE__ */ (0,
|
|
784
|
+
return /* @__PURE__ */ (0, import_jsx_runtime18.jsx)(IconButton_default, { className: "charcoal-modal-close-button", size: "S", icon: "24/Close", type: "button", ...props });
|
|
760
785
|
}
|
|
761
786
|
|
|
762
787
|
// src/components/Modal/ModalPlumbing.tsx
|
|
763
|
-
var
|
|
764
|
-
var
|
|
788
|
+
var import_react19 = require("react");
|
|
789
|
+
var import_jsx_runtime19 = require("react/jsx-runtime");
|
|
765
790
|
function ModalHeader() {
|
|
766
|
-
const modalCtx = (0,
|
|
767
|
-
return /* @__PURE__ */ (0,
|
|
791
|
+
const modalCtx = (0, import_react19.useContext)(ModalContext);
|
|
792
|
+
return /* @__PURE__ */ (0, import_jsx_runtime19.jsx)("div", { className: "charcoal-modal-header-root", "data-bottom-sheet": modalCtx.bottomSheet, children: /* @__PURE__ */ (0, import_jsx_runtime19.jsx)("div", { className: "charcoal-modal-header-title", children: modalCtx.title }) });
|
|
768
793
|
}
|
|
769
794
|
var ModalAlign = createDivComponent("charcoal-modal-align");
|
|
770
795
|
var ModalBody = createDivComponent("charcoal-modal-body");
|
|
771
796
|
var ModalButtons = createDivComponent("charcoal-modal-buttons");
|
|
772
797
|
|
|
773
798
|
// src/components/LoadingSpinner/index.tsx
|
|
774
|
-
var
|
|
775
|
-
var
|
|
776
|
-
var LoadingSpinner = (0,
|
|
799
|
+
var import_react20 = require("react");
|
|
800
|
+
var import_jsx_runtime20 = require("react/jsx-runtime");
|
|
801
|
+
var LoadingSpinner = (0, import_react20.forwardRef)(function LoadingSpinnerInner({
|
|
777
802
|
size = 48,
|
|
778
803
|
padding = 16,
|
|
779
804
|
transparent = false,
|
|
780
805
|
...props
|
|
781
806
|
}, ref) {
|
|
782
807
|
const classNames = useClassNames("charcoal-loading-spinner", props.className);
|
|
783
|
-
return /* @__PURE__ */ (0,
|
|
808
|
+
return /* @__PURE__ */ (0, import_jsx_runtime20.jsx)("div", { role: "progressbar", style: {
|
|
784
809
|
"--charcoal-loading-spinner-size": `${size}px`,
|
|
785
810
|
"--charcoal-loading-spinner-padding": `${padding}px`
|
|
786
|
-
}, "data-transparent": transparent, className: classNames, ref, children: /* @__PURE__ */ (0,
|
|
811
|
+
}, "data-transparent": transparent, className: classNames, ref, children: /* @__PURE__ */ (0, import_jsx_runtime20.jsx)(LoadingSpinnerIcon, {}) });
|
|
787
812
|
});
|
|
788
|
-
var LoadingSpinner_default = (0,
|
|
789
|
-
var LoadingSpinnerIcon = (0,
|
|
813
|
+
var LoadingSpinner_default = (0, import_react20.memo)(LoadingSpinner);
|
|
814
|
+
var LoadingSpinnerIcon = (0, import_react20.forwardRef)(function LoadingSpinnerIcon2({
|
|
790
815
|
once = false
|
|
791
816
|
}, ref) {
|
|
792
|
-
const iconRef = (0,
|
|
793
|
-
(0,
|
|
817
|
+
const iconRef = (0, import_react20.useRef)(null);
|
|
818
|
+
(0, import_react20.useImperativeHandle)(ref, () => ({
|
|
794
819
|
restart: () => {
|
|
795
820
|
if (!iconRef.current) {
|
|
796
821
|
return;
|
|
@@ -800,25 +825,22 @@ var LoadingSpinnerIcon = (0, import_react18.forwardRef)(function LoadingSpinnerI
|
|
|
800
825
|
delete iconRef.current.dataset.resetAnimation;
|
|
801
826
|
}
|
|
802
827
|
}));
|
|
803
|
-
return /* @__PURE__ */ (0,
|
|
828
|
+
return /* @__PURE__ */ (0, import_jsx_runtime20.jsx)("div", { role: "presentation", ref: iconRef, "data-once": once, className: "charcoal-loading-spinner-icon" });
|
|
804
829
|
});
|
|
805
830
|
|
|
806
831
|
// src/components/DropdownSelector/index.tsx
|
|
807
|
-
var
|
|
808
|
-
var import_styled_components5 = __toESM(require("styled-components"));
|
|
809
|
-
var import_utils6 = require("@charcoal-ui/utils");
|
|
832
|
+
var import_react25 = require("react");
|
|
810
833
|
|
|
811
834
|
// src/components/DropdownSelector/DropdownPopover.tsx
|
|
812
|
-
var
|
|
835
|
+
var import_react22 = require("react");
|
|
813
836
|
|
|
814
837
|
// src/components/DropdownSelector/Popover/index.tsx
|
|
815
|
-
var
|
|
838
|
+
var import_react21 = require("react");
|
|
816
839
|
var import_overlays4 = require("@react-aria/overlays");
|
|
817
|
-
var
|
|
818
|
-
var import_jsx_runtime19 = require("react/jsx-runtime");
|
|
840
|
+
var import_jsx_runtime21 = require("react/jsx-runtime");
|
|
819
841
|
var _empty = () => null;
|
|
820
842
|
function Popover(props) {
|
|
821
|
-
const defaultPopoverRef = (0,
|
|
843
|
+
const defaultPopoverRef = (0, import_react21.useRef)(null);
|
|
822
844
|
const finalPopoverRef = props.popoverRef === void 0 ? defaultPopoverRef : props.popoverRef;
|
|
823
845
|
const {
|
|
824
846
|
popoverProps,
|
|
@@ -834,49 +856,55 @@ function Popover(props) {
|
|
|
834
856
|
setOpen: _empty,
|
|
835
857
|
toggle: _empty
|
|
836
858
|
});
|
|
837
|
-
const modalBackground = (0,
|
|
859
|
+
const modalBackground = (0, import_react21.useContext)(ModalBackgroundContext);
|
|
838
860
|
usePreventScroll(modalBackground, props.isOpen);
|
|
839
861
|
if (!props.isOpen)
|
|
840
862
|
return null;
|
|
841
|
-
return /* @__PURE__ */ (0,
|
|
842
|
-
/* @__PURE__ */ (0,
|
|
863
|
+
return /* @__PURE__ */ (0, import_jsx_runtime21.jsxs)(import_overlays4.Overlay, { portalContainer: document.body, children: [
|
|
864
|
+
/* @__PURE__ */ (0, import_jsx_runtime21.jsx)("div", { ...underlayProps, style: {
|
|
843
865
|
position: "fixed",
|
|
844
866
|
zIndex: typeof popoverProps.style?.zIndex === "number" ? popoverProps.style.zIndex - 1 : 99999,
|
|
845
867
|
inset: 0
|
|
846
868
|
} }),
|
|
847
|
-
/* @__PURE__ */ (0,
|
|
848
|
-
/* @__PURE__ */ (0,
|
|
869
|
+
/* @__PURE__ */ (0, import_jsx_runtime21.jsxs)("div", { ...popoverProps, ref: finalPopoverRef, className: "charcoal-popover", children: [
|
|
870
|
+
/* @__PURE__ */ (0, import_jsx_runtime21.jsx)(import_overlays4.DismissButton, { onDismiss: () => props.onClose() }),
|
|
871
|
+
/* @__PURE__ */ (0, import_jsx_runtime21.jsx)("div", { tabIndex: 0, onFocus: props.onClose }),
|
|
849
872
|
props.children,
|
|
850
|
-
/* @__PURE__ */ (0,
|
|
873
|
+
/* @__PURE__ */ (0, import_jsx_runtime21.jsx)("div", { tabIndex: 0, onFocus: props.onClose }),
|
|
874
|
+
/* @__PURE__ */ (0, import_jsx_runtime21.jsx)(import_overlays4.DismissButton, { onDismiss: () => props.onClose() })
|
|
851
875
|
] })
|
|
852
876
|
] });
|
|
853
877
|
}
|
|
854
|
-
var DropdownPopoverDiv = import_styled_components3.default.div.withConfig({
|
|
855
|
-
componentId: "ccl__sc-jwnoy6-0"
|
|
856
|
-
})(["margin:4px 0;list-style:none;overflow:auto;max-height:inherit;background-color:var(--charcoal-background1);border:solid 1px var(--charcoal-border-default);border-radius:8px;padding-top:8px;padding-bottom:8px;"]);
|
|
857
878
|
|
|
858
879
|
// src/components/DropdownSelector/DropdownPopover.tsx
|
|
859
|
-
var
|
|
880
|
+
var import_jsx_runtime22 = require("react/jsx-runtime");
|
|
860
881
|
function DropdownPopover({
|
|
861
882
|
children,
|
|
862
883
|
...props
|
|
863
884
|
}) {
|
|
864
|
-
const ref = (0,
|
|
865
|
-
(0,
|
|
885
|
+
const ref = (0, import_react22.useRef)(null);
|
|
886
|
+
(0, import_react22.useEffect)(() => {
|
|
866
887
|
if (props.isOpen && ref.current && props.triggerRef.current) {
|
|
867
888
|
ref.current.style.width = `${props.triggerRef.current.clientWidth}px`;
|
|
868
889
|
}
|
|
869
890
|
}, [props.triggerRef, props.isOpen]);
|
|
870
|
-
(0,
|
|
871
|
-
if (props.isOpen
|
|
872
|
-
|
|
873
|
-
|
|
874
|
-
|
|
875
|
-
|
|
876
|
-
|
|
891
|
+
(0, import_react22.useEffect)(() => {
|
|
892
|
+
if (props.isOpen) {
|
|
893
|
+
if (props.value !== void 0 && props.value !== "") {
|
|
894
|
+
const windowScrollY = window.scrollY;
|
|
895
|
+
const windowScrollX = window.scrollX;
|
|
896
|
+
const selectedElement = document.querySelector(`[data-key="${props.value.toString()}"]`);
|
|
897
|
+
selectedElement?.focus();
|
|
898
|
+
window.scrollTo(windowScrollX, windowScrollY);
|
|
899
|
+
} else {
|
|
900
|
+
const el = ref.current?.querySelector("[role='option']");
|
|
901
|
+
if (el instanceof HTMLElement) {
|
|
902
|
+
el.focus();
|
|
903
|
+
}
|
|
904
|
+
}
|
|
877
905
|
}
|
|
878
906
|
}, [props.value, props.isOpen]);
|
|
879
|
-
return /* @__PURE__ */ (0,
|
|
907
|
+
return /* @__PURE__ */ (0, import_jsx_runtime22.jsx)(Popover, { isOpen: props.isOpen, onClose: props.onClose, popoverRef: ref, triggerRef: props.triggerRef, children });
|
|
880
908
|
}
|
|
881
909
|
|
|
882
910
|
// src/components/DropdownSelector/utils/findPreviewRecursive.tsx
|
|
@@ -904,12 +932,11 @@ function findPreviewRecursive(children, value) {
|
|
|
904
932
|
}
|
|
905
933
|
|
|
906
934
|
// src/components/DropdownSelector/MenuList/index.tsx
|
|
907
|
-
var
|
|
908
|
-
var import_styled_components4 = __toESM(require("styled-components"));
|
|
935
|
+
var import_react24 = require("react");
|
|
909
936
|
|
|
910
937
|
// src/components/DropdownSelector/MenuList/MenuListContext.ts
|
|
911
|
-
var
|
|
912
|
-
var MenuListContext = (0,
|
|
938
|
+
var import_react23 = require("react");
|
|
939
|
+
var MenuListContext = (0, import_react23.createContext)({
|
|
913
940
|
root: void 0,
|
|
914
941
|
value: "",
|
|
915
942
|
propsArray: [],
|
|
@@ -941,11 +968,11 @@ function getValuesRecursive(children) {
|
|
|
941
968
|
}
|
|
942
969
|
|
|
943
970
|
// src/components/DropdownSelector/MenuList/index.tsx
|
|
944
|
-
var
|
|
971
|
+
var import_jsx_runtime23 = require("react/jsx-runtime");
|
|
945
972
|
function MenuList(props) {
|
|
946
|
-
const root = (0,
|
|
947
|
-
const propsArray = (0,
|
|
948
|
-
return /* @__PURE__ */ (0,
|
|
973
|
+
const root = (0, import_react24.useRef)(null);
|
|
974
|
+
const propsArray = (0, import_react24.useMemo)(() => getValuesRecursive(props.children), [props.children]);
|
|
975
|
+
return /* @__PURE__ */ (0, import_jsx_runtime23.jsx)("ul", { className: "charcoal-menu-list", ref: root, children: /* @__PURE__ */ (0, import_jsx_runtime23.jsx)(MenuListContext.Provider, { value: {
|
|
949
976
|
value: props.value ?? "",
|
|
950
977
|
root,
|
|
951
978
|
propsArray,
|
|
@@ -954,89 +981,70 @@ function MenuList(props) {
|
|
|
954
981
|
}
|
|
955
982
|
}, children: props.children }) });
|
|
956
983
|
}
|
|
957
|
-
var StyledUl = import_styled_components4.default.ul.withConfig({
|
|
958
|
-
componentId: "ccl__sc-1y72v02-0"
|
|
959
|
-
})(["padding:0;margin:0;"]);
|
|
960
984
|
|
|
961
985
|
// src/components/DropdownSelector/index.tsx
|
|
962
|
-
var import_styled3 = require("@charcoal-ui/styled");
|
|
963
986
|
var import_visually_hidden3 = require("@react-aria/visually-hidden");
|
|
964
|
-
var
|
|
965
|
-
var
|
|
987
|
+
var import_utils6 = require("@react-aria/utils");
|
|
988
|
+
var import_jsx_runtime24 = require("react/jsx-runtime");
|
|
966
989
|
function DropdownSelector({
|
|
967
990
|
onChange,
|
|
991
|
+
showLabel = false,
|
|
968
992
|
...props
|
|
969
993
|
}) {
|
|
970
|
-
const triggerRef = (0,
|
|
971
|
-
const [isOpen, setIsOpen] = (0,
|
|
994
|
+
const triggerRef = (0, import_react25.useRef)(null);
|
|
995
|
+
const [isOpen, setIsOpen] = (0, import_react25.useState)(false);
|
|
972
996
|
const preview = findPreviewRecursive(props.children, props.value);
|
|
973
|
-
const isPlaceholder = (0,
|
|
997
|
+
const isPlaceholder = (0, import_react25.useMemo)(() => props.placeholder !== void 0 && preview === void 0, [preview, props.placeholder]);
|
|
974
998
|
const propsArray = getValuesRecursive(props.children);
|
|
975
999
|
const {
|
|
976
1000
|
visuallyHiddenProps
|
|
977
1001
|
} = (0, import_visually_hidden3.useVisuallyHidden)();
|
|
978
|
-
const handleChange = (0,
|
|
1002
|
+
const handleChange = (0, import_react25.useCallback)((e) => {
|
|
979
1003
|
onChange(e.target.value);
|
|
980
1004
|
}, [onChange]);
|
|
981
|
-
|
|
982
|
-
|
|
983
|
-
|
|
984
|
-
|
|
1005
|
+
const labelId = (0, import_utils6.useId)();
|
|
1006
|
+
const describedbyId = (0, import_utils6.useId)();
|
|
1007
|
+
const classNames = useClassNames("charcoal-dropdown-selector-root", props.className);
|
|
1008
|
+
return /* @__PURE__ */ (0, import_jsx_runtime24.jsxs)("div", { className: classNames, "aria-disabled": props.disabled, children: [
|
|
1009
|
+
/* @__PURE__ */ (0, import_jsx_runtime24.jsx)(FieldLabel_default, { id: labelId, label: props.label, required: props.required, requiredText: props.requiredText, subLabel: props.subLabel, ...!showLabel ? visuallyHiddenProps : {} }),
|
|
1010
|
+
/* @__PURE__ */ (0, import_jsx_runtime24.jsx)("div", { ...visuallyHiddenProps, "aria-hidden": "true", children: /* @__PURE__ */ (0, import_jsx_runtime24.jsx)("select", { name: props.name, value: props.value, onChange: handleChange, tabIndex: -1, children: propsArray.map((itemProps) => {
|
|
1011
|
+
return /* @__PURE__ */ (0, import_jsx_runtime24.jsx)("option", { value: itemProps.value, disabled: itemProps.disabled, children: itemProps.value }, itemProps.value);
|
|
985
1012
|
}) }) }),
|
|
986
|
-
/* @__PURE__ */ (0,
|
|
1013
|
+
/* @__PURE__ */ (0, import_jsx_runtime24.jsxs)("button", { className: "charcoal-dropdown-selector-button", "aria-labelledby": labelId, "aria-invalid": props.invalid, "aria-describedby": props.assistiveText !== void 0 ? describedbyId : void 0, disabled: props.disabled, onClick: () => {
|
|
987
1014
|
if (props.disabled === true)
|
|
988
1015
|
return;
|
|
989
1016
|
setIsOpen(true);
|
|
990
|
-
}, ref: triggerRef, type: "button",
|
|
991
|
-
/* @__PURE__ */ (0,
|
|
992
|
-
/* @__PURE__ */ (0,
|
|
1017
|
+
}, ref: triggerRef, type: "button", "data-active": isOpen, children: [
|
|
1018
|
+
/* @__PURE__ */ (0, import_jsx_runtime24.jsx)("span", { className: "charcoal-ui-dropdown-selector-text", "data-placeholder": isPlaceholder, children: isPlaceholder ? props.placeholder : preview }),
|
|
1019
|
+
/* @__PURE__ */ (0, import_jsx_runtime24.jsx)(Icon_default, { className: "charcoal-ui-dropdown-selector-icon", name: "16/Menu" })
|
|
993
1020
|
] }),
|
|
994
|
-
isOpen && /* @__PURE__ */ (0,
|
|
1021
|
+
isOpen && /* @__PURE__ */ (0, import_jsx_runtime24.jsx)(DropdownPopover, { isOpen, onClose: () => setIsOpen(false), triggerRef, value: props.value, children: /* @__PURE__ */ (0, import_jsx_runtime24.jsx)(MenuList, { value: props.value, onChange: (v) => {
|
|
995
1022
|
onChange(v);
|
|
996
1023
|
setIsOpen(false);
|
|
997
1024
|
}, children: props.children }) }),
|
|
998
|
-
props.assistiveText !== void 0 && /* @__PURE__ */ (0,
|
|
1025
|
+
props.assistiveText !== void 0 && /* @__PURE__ */ (0, import_jsx_runtime24.jsx)(AssistiveText, { "data-invalid": props.invalid === true, id: describedbyId, children: props.assistiveText })
|
|
999
1026
|
] });
|
|
1000
1027
|
}
|
|
1001
|
-
|
|
1002
|
-
|
|
1003
|
-
|
|
1004
|
-
var DropdownButton = import_styled_components5.default.button.withConfig({
|
|
1005
|
-
componentId: "ccl__sc-1vnxmc8-1"
|
|
1006
|
-
})(["display:grid;grid-template-columns:1fr auto;justify-content:space-between;align-items:center;height:40px;width:100%;box-sizing:border-box;border:none;cursor:pointer;gap:4px;", "{cursor:default;}padding-right:8px;padding-left:8px;background-color:var(--charcoal-surface3);border-radius:4px;transition:0.2s box-shadow,0.2s background-color;&:not(:disabled):not([aria-disabled]),&[aria-disabled='false']{", " ", "}", ""], import_utils6.disabledSelector, import_styled3.focusVisibleFocusRingCss, ({
|
|
1007
|
-
$active
|
|
1008
|
-
}) => $active === true ? (0, import_styled_components5.css)(["background-color:var(--charcoal-surface3-press);"]) : (0, import_styled_components5.css)(["&:hover{background-color:var(--charcoal-surface3-hover);}&:active{background-color:var(--charcoal-surface3-press);}"]), ({
|
|
1009
|
-
invalid
|
|
1010
|
-
}) => invalid === true && (0, import_styled_components5.css)(["&:not(:disabled):not([aria-disabled]),&[aria-disabled='false']{box-shadow:0 0 0 4px rgba(255,43,0,0.32);}"]));
|
|
1011
|
-
var DropdownButtonText = import_styled_components5.default.span.withConfig({
|
|
1012
|
-
componentId: "ccl__sc-1vnxmc8-2"
|
|
1013
|
-
})(["text-align:left;font-size:14px;line-height:22px;display:flow-root;color:var(--charcoal-", ");overflow:hidden;text-overflow:ellipsis;white-space:nowrap;"], (p) => p.$isText3 ? "text3" : "text2");
|
|
1014
|
-
var DropdownButtonIcon = (0, import_styled_components5.default)(Icon_default).withConfig({
|
|
1015
|
-
componentId: "ccl__sc-1vnxmc8-3"
|
|
1016
|
-
})(["color:var(--charcoal-text2);"]);
|
|
1017
|
-
|
|
1018
|
-
// src/components/DropdownSelector/DropdownMenuItem.tsx
|
|
1019
|
-
var import_styled_components7 = __toESM(require("styled-components"));
|
|
1028
|
+
|
|
1029
|
+
// src/components/DropdownSelector/MenuItem/index.tsx
|
|
1030
|
+
var import_react28 = require("react");
|
|
1020
1031
|
|
|
1021
1032
|
// src/components/DropdownSelector/ListItem/index.tsx
|
|
1022
|
-
var
|
|
1023
|
-
var
|
|
1024
|
-
|
|
1025
|
-
|
|
1026
|
-
|
|
1027
|
-
|
|
1028
|
-
|
|
1029
|
-
|
|
1030
|
-
|
|
1031
|
-
|
|
1032
|
-
|
|
1033
|
-
|
|
1034
|
-
var ItemDiv = import_styled_components6.default.div.withConfig({
|
|
1035
|
-
componentId: "ccl__sc-p1vs75-1"
|
|
1036
|
-
})(["display:flex;align-items:center;min-height:40px;cursor:pointer;outline:none;padding-right:16px;padding-left:16px;transition:background-color 0.2s;&:disabled,&[aria-disabled]:not([aria-disabled='false']){opacity:0.32;cursor:default;}:hover,:focus,:focus-within{&:not(disabled):not([aria-disabled='true']){background-color:var(--charcoal-surface3);}}"]);
|
|
1033
|
+
var import_react26 = require("react");
|
|
1034
|
+
var import_jsx_runtime25 = require("react/jsx-runtime");
|
|
1035
|
+
var ListItem = (0, import_react26.forwardRef)(function ListItem2({
|
|
1036
|
+
as,
|
|
1037
|
+
className,
|
|
1038
|
+
...props
|
|
1039
|
+
}, ref) {
|
|
1040
|
+
const Component = (0, import_react26.useMemo)(() => as ?? "li", [as]);
|
|
1041
|
+
const classNames = useClassNames("charcoal-list-item", className);
|
|
1042
|
+
return /* @__PURE__ */ (0, import_jsx_runtime25.jsx)(Component, { className: classNames, ref, ...props });
|
|
1043
|
+
});
|
|
1044
|
+
var ListItem_default = ListItem;
|
|
1037
1045
|
|
|
1038
1046
|
// src/components/DropdownSelector/MenuItem/internals/useMenuItemHandleKeyDown.tsx
|
|
1039
|
-
var
|
|
1047
|
+
var import_react27 = require("react");
|
|
1040
1048
|
|
|
1041
1049
|
// src/components/DropdownSelector/MenuItem/internals/handleFocusByKeyBoard.tsx
|
|
1042
1050
|
function handleFocusByKeyBoard(element, parent) {
|
|
@@ -1073,12 +1081,12 @@ function useMenuItemHandleKeyDown(value) {
|
|
|
1073
1081
|
setValue,
|
|
1074
1082
|
root,
|
|
1075
1083
|
propsArray
|
|
1076
|
-
} = (0,
|
|
1077
|
-
const setContextValue = (0,
|
|
1084
|
+
} = (0, import_react27.useContext)(MenuListContext);
|
|
1085
|
+
const setContextValue = (0, import_react27.useCallback)(() => {
|
|
1078
1086
|
if (value !== void 0)
|
|
1079
1087
|
setValue(value);
|
|
1080
1088
|
}, [value, setValue]);
|
|
1081
|
-
const handleKeyDown = (0,
|
|
1089
|
+
const handleKeyDown = (0, import_react27.useCallback)((e) => {
|
|
1082
1090
|
if (e.key === "Enter") {
|
|
1083
1091
|
setContextValue();
|
|
1084
1092
|
} else if (e.key === "ArrowUp" || e.key === "ArrowDown") {
|
|
@@ -1113,89 +1121,72 @@ function useMenuItemHandleKeyDown(value) {
|
|
|
1113
1121
|
}
|
|
1114
1122
|
|
|
1115
1123
|
// src/components/DropdownSelector/MenuItem/index.tsx
|
|
1116
|
-
var
|
|
1117
|
-
|
|
1118
|
-
|
|
1119
|
-
|
|
1120
|
-
|
|
1121
|
-
|
|
1122
|
-
|
|
1123
|
-
const [handleKeyDown, setContextValue] = useMenuItemHandleKeyDown(
|
|
1124
|
-
return /* @__PURE__ */ (0,
|
|
1125
|
-
}
|
|
1124
|
+
var import_jsx_runtime26 = require("react/jsx-runtime");
|
|
1125
|
+
var MenuItem = (0, import_react28.forwardRef)(function MenuItem2({
|
|
1126
|
+
className,
|
|
1127
|
+
value,
|
|
1128
|
+
disabled,
|
|
1129
|
+
...props
|
|
1130
|
+
}, ref) {
|
|
1131
|
+
const [handleKeyDown, setContextValue] = useMenuItemHandleKeyDown(value);
|
|
1132
|
+
return /* @__PURE__ */ (0, import_jsx_runtime26.jsx)(ListItem_default, { ...props, ref, "data-key": value, onKeyDown: handleKeyDown, onClick: disabled === true ? void 0 : setContextValue, tabIndex: -1, "aria-disabled": disabled, role: "option", children: props.children });
|
|
1133
|
+
});
|
|
1134
|
+
var MenuItem_default = MenuItem;
|
|
1126
1135
|
|
|
1127
|
-
// src/components/DropdownSelector/DropdownMenuItem.tsx
|
|
1128
|
-
var
|
|
1129
|
-
var
|
|
1136
|
+
// src/components/DropdownSelector/DropdownMenuItem/index.tsx
|
|
1137
|
+
var import_react29 = require("react");
|
|
1138
|
+
var import_jsx_runtime27 = require("react/jsx-runtime");
|
|
1130
1139
|
function DropdownMenuItem(props) {
|
|
1131
1140
|
const {
|
|
1132
1141
|
value: ctxValue
|
|
1133
|
-
} = (0,
|
|
1142
|
+
} = (0, import_react29.useContext)(MenuListContext);
|
|
1134
1143
|
const isSelected = props.value === ctxValue;
|
|
1135
1144
|
const {
|
|
1136
1145
|
children,
|
|
1137
1146
|
...rest
|
|
1138
1147
|
} = props;
|
|
1139
|
-
return /* @__PURE__ */ (0,
|
|
1140
|
-
isSelected && /* @__PURE__ */ (0,
|
|
1141
|
-
/* @__PURE__ */ (0,
|
|
1148
|
+
return /* @__PURE__ */ (0, import_jsx_runtime27.jsxs)(MenuItem_default, { ...rest, "aria-selected": isSelected, children: [
|
|
1149
|
+
isSelected && /* @__PURE__ */ (0, import_jsx_runtime27.jsx)(Icon_default, { className: "charcoal-dropdown-selector-menu-item-icon", name: "16/Check" }),
|
|
1150
|
+
/* @__PURE__ */ (0, import_jsx_runtime27.jsx)("span", { className: "charcoal-dropdown-selector-menu-item", "data-selected": isSelected, children: props.children })
|
|
1142
1151
|
] });
|
|
1143
1152
|
}
|
|
1144
|
-
var StyledSpan = import_styled_components7.default.span.withConfig({
|
|
1145
|
-
componentId: "ccl__sc-108wg2j-0"
|
|
1146
|
-
})(["font-size:14px;line-height:22px;color:var(--charcoal-text2);padding:9px 0;display:flex;align-items:center;width:100%;margin-left:", "px;"], ({
|
|
1147
|
-
isSelected
|
|
1148
|
-
}) => isSelected === true ? 0 : 20);
|
|
1149
|
-
var Text2ColorIcon = (0, import_styled_components7.default)(Icon_default).withConfig({
|
|
1150
|
-
componentId: "ccl__sc-108wg2j-1"
|
|
1151
|
-
})(["color:var(--charcoal-text2);padding-right:4px;"]);
|
|
1152
1153
|
|
|
1153
1154
|
// src/components/DropdownSelector/MenuItemGroup/index.tsx
|
|
1154
|
-
var
|
|
1155
|
-
var import_jsx_runtime26 = require("react/jsx-runtime");
|
|
1155
|
+
var import_jsx_runtime28 = require("react/jsx-runtime");
|
|
1156
1156
|
function MenuItemGroup(props) {
|
|
1157
|
-
return /* @__PURE__ */ (0,
|
|
1158
|
-
/* @__PURE__ */ (0,
|
|
1159
|
-
/* @__PURE__ */ (0,
|
|
1157
|
+
return /* @__PURE__ */ (0, import_jsx_runtime28.jsxs)("li", { className: "charcoal-menu-item-group", role: "presentation", children: [
|
|
1158
|
+
/* @__PURE__ */ (0, import_jsx_runtime28.jsx)("span", { children: props.text }),
|
|
1159
|
+
/* @__PURE__ */ (0, import_jsx_runtime28.jsx)("ul", { role: "group", children: props.children })
|
|
1160
1160
|
] });
|
|
1161
1161
|
}
|
|
1162
|
-
var TextSpan = import_styled_components8.default.span.withConfig({
|
|
1163
|
-
componentId: "ccl__sc-1ubjfz7-0"
|
|
1164
|
-
})(["display:block;color:var(--charcoal-text3);font-size:12px;font-weight:bold;padding:12px 0 8px 16px;"]);
|
|
1165
|
-
var StyledUl2 = import_styled_components8.default.ul.withConfig({
|
|
1166
|
-
componentId: "ccl__sc-1ubjfz7-1"
|
|
1167
|
-
})(["padding-left:0;margin:0;box-sizing:border-box;list-style:none;overflow:hidden;"]);
|
|
1168
|
-
var StyledLi2 = import_styled_components8.default.li.withConfig({
|
|
1169
|
-
componentId: "ccl__sc-1ubjfz7-2"
|
|
1170
|
-
})(["display:block;"]);
|
|
1171
1162
|
|
|
1172
1163
|
// src/components/SegmentedControl/index.tsx
|
|
1173
|
-
var
|
|
1164
|
+
var import_react31 = require("react");
|
|
1174
1165
|
var import_radio = require("@react-stately/radio");
|
|
1175
1166
|
var import_radio2 = require("@react-aria/radio");
|
|
1176
1167
|
|
|
1177
1168
|
// src/components/SegmentedControl/RadioGroupContext.tsx
|
|
1178
|
-
var
|
|
1179
|
-
var
|
|
1180
|
-
var RadioContext = (0,
|
|
1169
|
+
var import_react30 = require("react");
|
|
1170
|
+
var import_jsx_runtime29 = require("react/jsx-runtime");
|
|
1171
|
+
var RadioContext = (0, import_react30.createContext)(null);
|
|
1181
1172
|
var RadioProvider = ({
|
|
1182
1173
|
value,
|
|
1183
1174
|
children
|
|
1184
1175
|
}) => {
|
|
1185
|
-
return /* @__PURE__ */ (0,
|
|
1176
|
+
return /* @__PURE__ */ (0, import_jsx_runtime29.jsx)(RadioContext.Provider, { value, children });
|
|
1186
1177
|
};
|
|
1187
1178
|
var useRadioContext = () => {
|
|
1188
|
-
const state = (0,
|
|
1179
|
+
const state = (0, import_react30.useContext)(RadioContext);
|
|
1189
1180
|
if (state === null)
|
|
1190
1181
|
throw new Error("`<RadioProvider>` is not likely mounted.");
|
|
1191
1182
|
return state;
|
|
1192
1183
|
};
|
|
1193
1184
|
|
|
1194
1185
|
// src/components/SegmentedControl/index.tsx
|
|
1195
|
-
var
|
|
1196
|
-
var SegmentedControl = (0,
|
|
1186
|
+
var import_jsx_runtime30 = require("react/jsx-runtime");
|
|
1187
|
+
var SegmentedControl = (0, import_react31.forwardRef)(function SegmentedControlInner(props, ref) {
|
|
1197
1188
|
const className = useClassNames("charcoal-segmented-control", props.className);
|
|
1198
|
-
const ariaRadioGroupProps = (0,
|
|
1189
|
+
const ariaRadioGroupProps = (0, import_react31.useMemo)(() => ({
|
|
1199
1190
|
...props,
|
|
1200
1191
|
isDisabled: props.disabled,
|
|
1201
1192
|
isReadOnly: props.readonly,
|
|
@@ -1206,19 +1197,19 @@ var SegmentedControl = (0, import_react27.forwardRef)(function SegmentedControlI
|
|
|
1206
1197
|
const {
|
|
1207
1198
|
radioGroupProps
|
|
1208
1199
|
} = (0, import_radio2.useRadioGroup)(ariaRadioGroupProps, state);
|
|
1209
|
-
const segmentedControlItems = (0,
|
|
1200
|
+
const segmentedControlItems = (0, import_react31.useMemo)(() => {
|
|
1210
1201
|
return props.data.map((d) => typeof d === "string" ? {
|
|
1211
1202
|
value: d,
|
|
1212
1203
|
label: d
|
|
1213
1204
|
} : d);
|
|
1214
1205
|
}, [props.data]);
|
|
1215
|
-
return /* @__PURE__ */ (0,
|
|
1206
|
+
return /* @__PURE__ */ (0, import_jsx_runtime30.jsx)("div", { ref, ...radioGroupProps, className, children: /* @__PURE__ */ (0, import_jsx_runtime30.jsx)(RadioProvider, { value: state, children: segmentedControlItems.map((item) => /* @__PURE__ */ (0, import_jsx_runtime30.jsx)(Segmented, { value: item.value, disabled: item.disabled, children: item.label }, item.value)) }) });
|
|
1216
1207
|
});
|
|
1217
|
-
var SegmentedControl_default = (0,
|
|
1208
|
+
var SegmentedControl_default = (0, import_react31.memo)(SegmentedControl);
|
|
1218
1209
|
var Segmented = (props) => {
|
|
1219
1210
|
const state = useRadioContext();
|
|
1220
|
-
const ref = (0,
|
|
1221
|
-
const ariaRadioProps = (0,
|
|
1211
|
+
const ref = (0, import_react31.useRef)(null);
|
|
1212
|
+
const ariaRadioProps = (0, import_react31.useMemo)(() => ({
|
|
1222
1213
|
value: props.value,
|
|
1223
1214
|
isDisabled: props.disabled,
|
|
1224
1215
|
children: props.children
|
|
@@ -1228,20 +1219,20 @@ var Segmented = (props) => {
|
|
|
1228
1219
|
isDisabled,
|
|
1229
1220
|
isSelected
|
|
1230
1221
|
} = (0, import_radio2.useRadio)(ariaRadioProps, state, ref);
|
|
1231
|
-
return /* @__PURE__ */ (0,
|
|
1232
|
-
/* @__PURE__ */ (0,
|
|
1222
|
+
return /* @__PURE__ */ (0, import_jsx_runtime30.jsxs)("label", { className: "charcoal-segmented-control-radio__label", "aria-disabled": isDisabled || state.isReadOnly, "data-checked": isSelected, children: [
|
|
1223
|
+
/* @__PURE__ */ (0, import_jsx_runtime30.jsx)("input", { className: "charcoal-segmented-control-radio__input", ...inputProps, ref }),
|
|
1233
1224
|
props.children
|
|
1234
1225
|
] });
|
|
1235
1226
|
};
|
|
1236
1227
|
|
|
1237
1228
|
// src/components/Checkbox/index.tsx
|
|
1238
|
-
var
|
|
1229
|
+
var import_react34 = require("react");
|
|
1239
1230
|
var import_utils7 = require("@react-aria/utils");
|
|
1240
1231
|
|
|
1241
1232
|
// src/components/Checkbox/CheckboxInput/index.tsx
|
|
1242
|
-
var
|
|
1243
|
-
var
|
|
1244
|
-
var CheckboxInput = (0,
|
|
1233
|
+
var import_react32 = require("react");
|
|
1234
|
+
var import_jsx_runtime31 = require("react/jsx-runtime");
|
|
1235
|
+
var CheckboxInput = (0, import_react32.forwardRef)(function CheckboxInput2({
|
|
1245
1236
|
onChange,
|
|
1246
1237
|
checked,
|
|
1247
1238
|
invalid,
|
|
@@ -1249,19 +1240,19 @@ var CheckboxInput = (0, import_react28.forwardRef)(function CheckboxInput2({
|
|
|
1249
1240
|
rounded,
|
|
1250
1241
|
...props
|
|
1251
1242
|
}, ref) {
|
|
1252
|
-
const handleChange = (0,
|
|
1243
|
+
const handleChange = (0, import_react32.useCallback)((e) => {
|
|
1253
1244
|
const el = e.currentTarget;
|
|
1254
1245
|
onChange?.(el.checked);
|
|
1255
1246
|
}, [onChange]);
|
|
1256
1247
|
const classNames = useClassNames("charcoal-checkbox-input", className);
|
|
1257
|
-
return /* @__PURE__ */ (0,
|
|
1248
|
+
return /* @__PURE__ */ (0, import_jsx_runtime31.jsx)("input", { className: classNames, ref, type: "checkbox", onChange: handleChange, "aria-invalid": invalid, checked, "data-rounded": rounded, ...props });
|
|
1258
1249
|
});
|
|
1259
|
-
var CheckboxInput_default = (0,
|
|
1250
|
+
var CheckboxInput_default = (0, import_react32.memo)(CheckboxInput);
|
|
1260
1251
|
|
|
1261
1252
|
// src/components/Checkbox/CheckboxWithLabel.tsx
|
|
1262
|
-
var
|
|
1263
|
-
var
|
|
1264
|
-
var CheckboxWithLabel =
|
|
1253
|
+
var import_react33 = __toESM(require("react"));
|
|
1254
|
+
var import_jsx_runtime32 = require("react/jsx-runtime");
|
|
1255
|
+
var CheckboxWithLabel = import_react33.default.memo(function CheckboxWithLabel2({
|
|
1265
1256
|
className,
|
|
1266
1257
|
children,
|
|
1267
1258
|
input,
|
|
@@ -1269,15 +1260,15 @@ var CheckboxWithLabel = import_react29.default.memo(function CheckboxWithLabel2(
|
|
|
1269
1260
|
disabled
|
|
1270
1261
|
}) {
|
|
1271
1262
|
const classNames = useClassNames("charcoal-checkbox__label", className);
|
|
1272
|
-
return /* @__PURE__ */ (0,
|
|
1263
|
+
return /* @__PURE__ */ (0, import_jsx_runtime32.jsxs)("label", { htmlFor: id, "aria-disabled": disabled, className: classNames, children: [
|
|
1273
1264
|
input,
|
|
1274
|
-
/* @__PURE__ */ (0,
|
|
1265
|
+
/* @__PURE__ */ (0, import_jsx_runtime32.jsx)("div", { className: "charcoal-checkbox__label_div", children })
|
|
1275
1266
|
] });
|
|
1276
1267
|
});
|
|
1277
1268
|
|
|
1278
1269
|
// src/components/Checkbox/index.tsx
|
|
1279
|
-
var
|
|
1280
|
-
var Checkbox = (0,
|
|
1270
|
+
var import_jsx_runtime33 = require("react/jsx-runtime");
|
|
1271
|
+
var Checkbox = (0, import_react34.forwardRef)(function Checkbox2({
|
|
1281
1272
|
disabled,
|
|
1282
1273
|
className,
|
|
1283
1274
|
id,
|
|
@@ -1286,19 +1277,19 @@ var Checkbox = (0, import_react30.forwardRef)(function Checkbox2({
|
|
|
1286
1277
|
}, ref) {
|
|
1287
1278
|
const htmlId = (0, import_utils7.useId)(id);
|
|
1288
1279
|
const noChildren = children === void 0;
|
|
1289
|
-
const input = /* @__PURE__ */ (0,
|
|
1280
|
+
const input = /* @__PURE__ */ (0, import_jsx_runtime33.jsx)(CheckboxInput_default, { ...props, className: noChildren ? className : void 0, disabled, id: htmlId, ref });
|
|
1290
1281
|
if (noChildren) {
|
|
1291
1282
|
return input;
|
|
1292
1283
|
}
|
|
1293
|
-
return /* @__PURE__ */ (0,
|
|
1284
|
+
return /* @__PURE__ */ (0, import_jsx_runtime33.jsx)(CheckboxWithLabel, { className, disabled, id: htmlId, input, children });
|
|
1294
1285
|
});
|
|
1295
|
-
var Checkbox_default = (0,
|
|
1286
|
+
var Checkbox_default = (0, import_react34.memo)(Checkbox);
|
|
1296
1287
|
|
|
1297
1288
|
// src/components/TagItem/index.tsx
|
|
1298
|
-
var
|
|
1289
|
+
var import_react35 = require("react");
|
|
1299
1290
|
var import_utils8 = require("@react-aria/utils");
|
|
1300
|
-
var
|
|
1301
|
-
var TagItem = (0,
|
|
1291
|
+
var import_jsx_runtime34 = require("react/jsx-runtime");
|
|
1292
|
+
var TagItem = (0, import_react35.forwardRef)(function TagItemInner({
|
|
1302
1293
|
as,
|
|
1303
1294
|
label,
|
|
1304
1295
|
translatedLabel,
|
|
@@ -1313,18 +1304,18 @@ var TagItem = (0, import_react31.forwardRef)(function TagItemInner({
|
|
|
1313
1304
|
const className = useClassNames("charcoal-tag-item", "charcoal-tag-item__bg", props.className);
|
|
1314
1305
|
const bgVariant = bgImage !== void 0 && bgImage.length > 0 ? "image" : "color";
|
|
1315
1306
|
const bg = bgVariant === "color" ? bgColor : `url(${bgImage ?? ""})`;
|
|
1316
|
-
const Component = (0,
|
|
1317
|
-
return /* @__PURE__ */ (0,
|
|
1307
|
+
const Component = (0, import_react35.useMemo)(() => as ?? "button", [as]);
|
|
1308
|
+
return /* @__PURE__ */ (0, import_jsx_runtime34.jsxs)(Component, { ...props, ref, className, "data-state": status, "data-bg-variant": bgVariant, "data-size": hasTranslatedLabel ? "M" : size, style: {
|
|
1318
1309
|
"--charcoal-tag-item-bg": bg
|
|
1319
1310
|
}, children: [
|
|
1320
|
-
/* @__PURE__ */ (0,
|
|
1321
|
-
hasTranslatedLabel && /* @__PURE__ */ (0,
|
|
1322
|
-
/* @__PURE__ */ (0,
|
|
1311
|
+
/* @__PURE__ */ (0, import_jsx_runtime34.jsxs)("div", { className: "charcoal-tag-item__label", "data-has-translate": hasTranslatedLabel, children: [
|
|
1312
|
+
hasTranslatedLabel && /* @__PURE__ */ (0, import_jsx_runtime34.jsx)("span", { className: "charcoal-tag-item__label__translated", children: translatedLabel }),
|
|
1313
|
+
/* @__PURE__ */ (0, import_jsx_runtime34.jsx)("span", { className: "charcoal-tag-item__label__text", "data-has-translate": hasTranslatedLabel, children: label })
|
|
1323
1314
|
] }),
|
|
1324
|
-
status === "active" && /* @__PURE__ */ (0,
|
|
1315
|
+
status === "active" && /* @__PURE__ */ (0, import_jsx_runtime34.jsx)(Icon_default, { name: "16/Remove" })
|
|
1325
1316
|
] });
|
|
1326
1317
|
});
|
|
1327
|
-
var TagItem_default = (0,
|
|
1318
|
+
var TagItem_default = (0, import_react35.memo)(TagItem);
|
|
1328
1319
|
// Annotate the CommonJS export names for ESM import in node:
|
|
1329
1320
|
0 && (module.exports = {
|
|
1330
1321
|
Button,
|