@charcoal-ui/react 2.8.0 → 2.10.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (48) hide show
  1. package/dist/components/Button/index.test.d.ts +4 -0
  2. package/dist/components/Button/index.test.d.ts.map +1 -0
  3. package/dist/components/Checkbox/index.d.ts +1 -0
  4. package/dist/components/Checkbox/index.d.ts.map +1 -1
  5. package/dist/components/Checkbox/index.story.d.ts +1 -0
  6. package/dist/components/Checkbox/index.story.d.ts.map +1 -1
  7. package/dist/components/LoadingSpinner/index.d.ts +8 -6
  8. package/dist/components/LoadingSpinner/index.d.ts.map +1 -1
  9. package/dist/components/LoadingSpinner/index.story.d.ts +2 -2
  10. package/dist/components/LoadingSpinner/index.story.d.ts.map +1 -1
  11. package/dist/components/Modal/index.d.ts +17 -26
  12. package/dist/components/Modal/index.d.ts.map +1 -1
  13. package/dist/components/Modal/index.story.d.ts +13 -2
  14. package/dist/components/Modal/index.story.d.ts.map +1 -1
  15. package/dist/components/MultiSelect/index.d.ts +15 -1
  16. package/dist/components/MultiSelect/index.d.ts.map +1 -1
  17. package/dist/components/MultiSelect/index.story.d.ts +15 -2
  18. package/dist/components/MultiSelect/index.story.d.ts.map +1 -1
  19. package/dist/components/Radio/index.d.ts +10 -1
  20. package/dist/components/Radio/index.d.ts.map +1 -1
  21. package/dist/components/Radio/index.story.d.ts +9 -2
  22. package/dist/components/Radio/index.story.d.ts.map +1 -1
  23. package/dist/components/SegmentedControl/index.d.ts +1 -0
  24. package/dist/components/SegmentedControl/index.d.ts.map +1 -1
  25. package/dist/components/Switch/index.d.ts +2 -1
  26. package/dist/components/Switch/index.d.ts.map +1 -1
  27. package/dist/components/Switch/index.story.d.ts +2 -2
  28. package/dist/components/Switch/index.story.d.ts.map +1 -1
  29. package/dist/index.cjs.js +170 -141
  30. package/dist/index.cjs.js.map +1 -1
  31. package/dist/index.esm.js +188 -154
  32. package/dist/index.esm.js.map +1 -1
  33. package/package.json +6 -6
  34. package/src/components/Button/__snapshots__/index.test.tsx.snap +385 -0
  35. package/src/components/Button/index.test.tsx +25 -0
  36. package/src/components/Checkbox/index.story.tsx +1 -0
  37. package/src/components/Checkbox/index.tsx +2 -1
  38. package/src/components/LoadingSpinner/index.story.tsx +7 -1
  39. package/src/components/LoadingSpinner/index.tsx +27 -11
  40. package/src/components/Modal/index.tsx +18 -12
  41. package/src/components/MultiSelect/index.story.tsx +11 -3
  42. package/src/components/MultiSelect/index.tsx +77 -61
  43. package/src/components/Radio/index.story.tsx +3 -0
  44. package/src/components/Radio/index.tsx +13 -9
  45. package/src/components/SegmentedControl/index.tsx +15 -5
  46. package/src/components/Switch/index.tsx +37 -32
  47. package/src/components/TextField/index.story.tsx +1 -1
  48. package/src/components/TextField/index.tsx +1 -0
package/dist/index.cjs.js CHANGED
@@ -35,21 +35,21 @@ __export(src_exports, {
35
35
  DropdownSelectorItem: () => DropdownSelectorItem,
36
36
  Icon: () => Icon_default,
37
37
  IconButton: () => IconButton_default,
38
- LoadingSpinner: () => LoadingSpinner,
38
+ LoadingSpinner: () => LoadingSpinner_default,
39
39
  LoadingSpinnerIcon: () => LoadingSpinnerIcon,
40
- Modal: () => Modal,
40
+ Modal: () => Modal_default,
41
41
  ModalAlign: () => ModalAlign,
42
42
  ModalBody: () => ModalBody,
43
43
  ModalButtons: () => ModalButtons,
44
44
  ModalHeader: () => ModalHeader,
45
- MultiSelect: () => MultiSelect,
45
+ MultiSelect: () => MultiSelect_default,
46
46
  MultiSelectGroup: () => MultiSelectGroup,
47
47
  OverlayProvider: () => import_overlays.OverlayProvider,
48
- Radio: () => Radio,
48
+ Radio: () => Radio_default,
49
49
  RadioGroup: () => RadioGroup,
50
50
  SSRProvider: () => import_ssr.SSRProvider,
51
51
  SegmentedControl: () => SegmentedControl_default,
52
- Switch: () => SwitchCheckbox,
52
+ Switch: () => Switch_default,
53
53
  TagItem: () => TagItem_default,
54
54
  TextField: () => TextField_default,
55
55
  useComponentAbstraction: () => useComponentAbstraction
@@ -376,12 +376,7 @@ var import_react6 = __toESM(require("react"));
376
376
  var import_styled_components6 = __toESM(require("styled-components"));
377
377
  var import_warning = __toESM(require("warning"));
378
378
  var import_utils2 = require("@charcoal-ui/utils");
379
- function Radio({
380
- value,
381
- forceChecked = false,
382
- disabled = false,
383
- children
384
- }) {
379
+ var Radio = (0, import_react6.forwardRef)(function RadioInner({ value, forceChecked = false, disabled = false, children, className }, ref) {
385
380
  const {
386
381
  name,
387
382
  selected,
@@ -403,7 +398,7 @@ function Radio({
403
398
  },
404
399
  [onChange]
405
400
  );
406
- return /* @__PURE__ */ import_react6.default.createElement(RadioRoot, { "aria-disabled": isDisabled || isReadonly }, /* @__PURE__ */ import_react6.default.createElement(
401
+ return /* @__PURE__ */ import_react6.default.createElement(RadioRoot, { "aria-disabled": isDisabled || isReadonly, className }, /* @__PURE__ */ import_react6.default.createElement(
407
402
  RadioInput,
408
403
  {
409
404
  name,
@@ -411,10 +406,12 @@ function Radio({
411
406
  checked: forceChecked || isSelected,
412
407
  hasError,
413
408
  onChange: handleChange,
414
- disabled: isDisabled || isReadonly
409
+ disabled: isDisabled || isReadonly,
410
+ ref
415
411
  }
416
412
  ), children != null && /* @__PURE__ */ import_react6.default.createElement(RadioLabel, null, children));
417
- }
413
+ });
414
+ var Radio_default = (0, import_react6.memo)(Radio);
418
415
  var RadioRoot = import_styled_components6.default.label`
419
416
  display: grid;
420
417
  grid-template-columns: auto 1fr;
@@ -437,6 +434,8 @@ var RadioInput = import_styled_components6.default.input.attrs({ type: "radio" }
437
434
  width: 20px;
438
435
  height: 20px;
439
436
 
437
+ cursor: pointer;
438
+
440
439
  ${({ hasError = false }) => theme((o) => [
441
440
  o.borderRadius("oval"),
442
441
  o.bg.surface1.hover.press,
@@ -554,63 +553,68 @@ var MultiSelectGroupContext = (0, import_react7.createContext)({
554
553
  });
555
554
 
556
555
  // src/components/MultiSelect/index.tsx
557
- function MultiSelect({
558
- value,
559
- forceChecked = false,
560
- disabled = false,
561
- onChange,
562
- variant = "default",
563
- children
564
- }) {
565
- const {
566
- name,
567
- selected,
568
- disabled: parentDisabled,
569
- readonly,
570
- hasError,
571
- onChange: parentOnChange
572
- } = (0, import_react8.useContext)(MultiSelectGroupContext);
573
- (0, import_warning2.default)(
574
- name !== void 0,
575
- `"name" is not Provided for <MultiSelect>. Perhaps you forgot to wrap with <MultiSelectGroup> ?`
576
- );
577
- const isSelected = selected.includes(value) || forceChecked;
578
- const isDisabled = disabled || parentDisabled || readonly;
579
- const handleChange = (0, import_react8.useCallback)(
580
- (event) => {
581
- if (!(event.currentTarget instanceof HTMLInputElement)) {
582
- return;
556
+ var MultiSelect = (0, import_react8.forwardRef)(
557
+ function MultiSelectInner({
558
+ value,
559
+ forceChecked = false,
560
+ disabled = false,
561
+ onChange,
562
+ variant = "default",
563
+ className,
564
+ children
565
+ }, ref) {
566
+ const {
567
+ name,
568
+ selected,
569
+ disabled: parentDisabled,
570
+ readonly,
571
+ hasError,
572
+ onChange: parentOnChange
573
+ } = (0, import_react8.useContext)(MultiSelectGroupContext);
574
+ (0, import_warning2.default)(
575
+ name !== void 0,
576
+ `"name" is not Provided for <MultiSelect>. Perhaps you forgot to wrap with <MultiSelectGroup> ?`
577
+ );
578
+ const isSelected = selected.includes(value) || forceChecked;
579
+ const isDisabled = disabled || parentDisabled || readonly;
580
+ const handleChange = (0, import_react8.useCallback)(
581
+ (event) => {
582
+ if (!(event.currentTarget instanceof HTMLInputElement)) {
583
+ return;
584
+ }
585
+ if (onChange)
586
+ onChange({ value, selected: event.currentTarget.checked });
587
+ parentOnChange({ value, selected: event.currentTarget.checked });
588
+ },
589
+ [onChange, parentOnChange, value]
590
+ );
591
+ return /* @__PURE__ */ import_react8.default.createElement(MultiSelectRoot, { "aria-disabled": isDisabled, className }, /* @__PURE__ */ import_react8.default.createElement(
592
+ MultiSelectInput,
593
+ {
594
+ ...{
595
+ name,
596
+ value,
597
+ hasError
598
+ },
599
+ checked: isSelected,
600
+ disabled: isDisabled,
601
+ onChange: handleChange,
602
+ overlay: variant === "overlay",
603
+ "aria-invalid": hasError,
604
+ ref
583
605
  }
584
- if (onChange)
585
- onChange({ value, selected: event.currentTarget.checked });
586
- parentOnChange({ value, selected: event.currentTarget.checked });
587
- },
588
- [onChange, parentOnChange, value]
589
- );
590
- return /* @__PURE__ */ import_react8.default.createElement(MultiSelectRoot, { "aria-disabled": isDisabled }, /* @__PURE__ */ import_react8.default.createElement(
591
- MultiSelectInput,
592
- {
593
- ...{
594
- name,
595
- value,
596
- hasError
606
+ ), /* @__PURE__ */ import_react8.default.createElement(
607
+ MultiSelectInputOverlay,
608
+ {
609
+ overlay: variant === "overlay",
610
+ hasError,
611
+ "aria-hidden": true
597
612
  },
598
- checked: isSelected,
599
- disabled: isDisabled,
600
- onChange: handleChange,
601
- overlay: variant === "overlay",
602
- "aria-invalid": hasError
603
- }
604
- ), /* @__PURE__ */ import_react8.default.createElement(
605
- MultiSelectInputOverlay,
606
- {
607
- overlay: variant === "overlay",
608
- hasError,
609
- "aria-hidden": true
610
- },
611
- /* @__PURE__ */ import_react8.default.createElement("pixiv-icon", { name: "24/Check", "unsafe-non-guideline-scale": 16 / 24 })
612
- ), Boolean(children) && /* @__PURE__ */ import_react8.default.createElement(MultiSelectLabel, null, children));
613
- }
613
+ /* @__PURE__ */ import_react8.default.createElement("pixiv-icon", { name: "24/Check", "unsafe-non-guideline-scale": 16 / 24 })
614
+ ), Boolean(children) && /* @__PURE__ */ import_react8.default.createElement(MultiSelectLabel, null, children));
615
+ }
616
+ );
617
+ var MultiSelect_default = (0, import_react8.memo)(MultiSelect);
614
618
  var MultiSelectRoot = import_styled_components7.default.label`
615
619
  display: grid;
616
620
  grid-template-columns: auto 1fr;
@@ -727,24 +731,28 @@ var import_react9 = __toESM(require("react"));
727
731
  var import_react_stately = require("react-stately");
728
732
  var import_styled_components8 = __toESM(require("styled-components"));
729
733
  var import_utils4 = require("@charcoal-ui/utils");
730
- function SwitchCheckbox(props) {
731
- const { disabled, className } = props;
732
- const ariaSwitchProps = (0, import_react9.useMemo)(
733
- () => ({
734
- ...props,
735
- "aria-label": "children" in props ? void 0 : props.label,
736
- isDisabled: props.disabled,
737
- isSelected: props.checked
738
- }),
739
- [props]
740
- );
741
- const state = (0, import_react_stately.useToggleState)(ariaSwitchProps);
742
- const ref = (0, import_react9.useRef)(null);
743
- const {
744
- inputProps: { className: _className, type: _type, ...rest }
745
- } = (0, import_switch.useSwitch)(ariaSwitchProps, state, ref);
746
- return /* @__PURE__ */ import_react9.default.createElement(Label, { className, "aria-disabled": disabled }, /* @__PURE__ */ import_react9.default.createElement(SwitchInput, { ...rest, ref }), "children" in props ? /* @__PURE__ */ import_react9.default.createElement(LabelInner, null, props.children) : void 0);
747
- }
734
+ var import_utils5 = require("@react-aria/utils");
735
+ var SwitchCheckbox = (0, import_react9.forwardRef)(
736
+ function SwitchCheckboxInner(props, external) {
737
+ const { disabled, className } = props;
738
+ const ariaSwitchProps = (0, import_react9.useMemo)(
739
+ () => ({
740
+ ...props,
741
+ "aria-label": "children" in props ? void 0 : props.label,
742
+ isDisabled: props.disabled,
743
+ isSelected: props.checked
744
+ }),
745
+ [props]
746
+ );
747
+ const state = (0, import_react_stately.useToggleState)(ariaSwitchProps);
748
+ const ref = (0, import_utils5.useObjectRef)(external);
749
+ const {
750
+ inputProps: { className: _className, type: _type, ...rest }
751
+ } = (0, import_switch.useSwitch)(ariaSwitchProps, state, ref);
752
+ return /* @__PURE__ */ import_react9.default.createElement(Label, { className, "aria-disabled": disabled }, /* @__PURE__ */ import_react9.default.createElement(SwitchInput, { ...rest, ref }), "children" in props ? /* @__PURE__ */ import_react9.default.createElement(LabelInner, null, props.children) : void 0);
753
+ }
754
+ );
755
+ var Switch_default = (0, import_react9.memo)(SwitchCheckbox);
748
756
  var Label = import_styled_components8.default.label`
749
757
  display: inline-grid;
750
758
  grid-template-columns: auto 1fr;
@@ -908,7 +916,7 @@ var TextField = import_react11.default.forwardRef(
908
916
  }
909
917
  );
910
918
  var TextField_default = TextField;
911
- var SingleLineTextField = import_react11.default.forwardRef(function SingleLineTextFieldInner({ onChange, ...props }, forwardRef4) {
919
+ var SingleLineTextField = import_react11.default.forwardRef(function SingleLineTextFieldInner({ onChange, ...props }, forwardRef9) {
912
920
  const {
913
921
  className,
914
922
  showLabel = false,
@@ -992,7 +1000,7 @@ var SingleLineTextField = import_react11.default.forwardRef(function SingleLineT
992
1000
  ), /* @__PURE__ */ import_react11.default.createElement(StyledInputContainer, null, /* @__PURE__ */ import_react11.default.createElement(PrefixContainer, { ref: prefixRef }, /* @__PURE__ */ import_react11.default.createElement(Affix, null, prefix)), /* @__PURE__ */ import_react11.default.createElement(
993
1001
  StyledInput,
994
1002
  {
995
- ref: mergeRefs(forwardRef4, ariaRef),
1003
+ ref: mergeRefs(forwardRef9, ariaRef),
996
1004
  invalid,
997
1005
  extraLeftPadding: prefixWidth,
998
1006
  extraRightPadding: suffixWidth,
@@ -1007,7 +1015,7 @@ var SingleLineTextField = import_react11.default.forwardRef(function SingleLineT
1007
1015
  assistiveText
1008
1016
  ));
1009
1017
  });
1010
- var MultiLineTextField = import_react11.default.forwardRef(function MultiLineTextFieldInner({ onChange, ...props }, forwardRef4) {
1018
+ var MultiLineTextField = import_react11.default.forwardRef(function MultiLineTextFieldInner({ onChange, ...props }, forwardRef9) {
1011
1019
  const {
1012
1020
  className,
1013
1021
  showCount = false,
@@ -1093,7 +1101,7 @@ var MultiLineTextField = import_react11.default.forwardRef(function MultiLineTex
1093
1101
  /* @__PURE__ */ import_react11.default.createElement(
1094
1102
  StyledTextarea,
1095
1103
  {
1096
- ref: mergeRefs(textareaRef, forwardRef4, ariaRef),
1104
+ ref: mergeRefs(textareaRef, forwardRef9, ariaRef),
1097
1105
  rows,
1098
1106
  noBottomPadding: showCount,
1099
1107
  ...inputProps
@@ -1128,6 +1136,7 @@ var PrefixContainer = import_styled_components10.default.span`
1128
1136
  top: 50%;
1129
1137
  left: 8px;
1130
1138
  transform: translateY(-50%);
1139
+ z-index: 1;
1131
1140
  `;
1132
1141
  var SuffixContainer = import_styled_components10.default.span`
1133
1142
  position: absolute;
@@ -1289,25 +1298,22 @@ function columnSystem(span, column, gutter) {
1289
1298
  }
1290
1299
 
1291
1300
  // src/components/Modal/index.tsx
1292
- var import_utils5 = require("@charcoal-ui/utils");
1301
+ var import_utils6 = require("@charcoal-ui/utils");
1293
1302
  var import_styled11 = require("@charcoal-ui/styled");
1294
1303
  var import_react_spring = require("react-spring");
1304
+ var import_utils7 = require("@react-aria/utils");
1295
1305
  var DEFAULT_Z_INDEX = 10;
1296
- function Modal({
1297
- children,
1298
- zIndex = DEFAULT_Z_INDEX,
1299
- portalContainer,
1300
- ...props
1301
- }) {
1306
+ var Modal = (0, import_react13.forwardRef)(function ModalInner({ children, zIndex = DEFAULT_Z_INDEX, portalContainer, ...props }, external) {
1302
1307
  const {
1303
1308
  title,
1304
1309
  size = "M",
1305
1310
  bottomSheet = false,
1306
1311
  isDismissable,
1307
1312
  onClose,
1313
+ className,
1308
1314
  isOpen = false
1309
1315
  } = props;
1310
- const ref = (0, import_react13.useRef)(null);
1316
+ const ref = (0, import_utils7.useObjectRef)(external);
1311
1317
  const { overlayProps, underlayProps } = (0, import_overlays2.useOverlay)(props, ref);
1312
1318
  const { modalProps } = (0, import_overlays2.useModalOverlay)(
1313
1319
  props,
@@ -1325,7 +1331,7 @@ function Modal({
1325
1331
  );
1326
1332
  const { dialogProps, titleProps } = (0, import_dialog.useDialog)(props, ref);
1327
1333
  const theme4 = (0, import_styled_components11.useTheme)();
1328
- const isMobile = (0, import_styled11.useMedia)((0, import_utils5.maxWidth)(theme4.breakpoint.screen1)) ?? false;
1334
+ const isMobile = (0, import_styled11.useMedia)((0, import_utils6.maxWidth)(theme4.breakpoint.screen1)) ?? false;
1329
1335
  const transitionEnabled = isMobile && bottomSheet !== false;
1330
1336
  const transition = (0, import_react_spring.useTransition)(isOpen, {
1331
1337
  from: {
@@ -1360,7 +1366,8 @@ function Modal({
1360
1366
  ...dialogProps,
1361
1367
  style: transitionEnabled ? { transform } : {},
1362
1368
  size,
1363
- bottomSheet
1369
+ bottomSheet,
1370
+ className
1364
1371
  },
1365
1372
  /* @__PURE__ */ import_react13.default.createElement(
1366
1373
  ModalContext.Provider,
@@ -1380,7 +1387,8 @@ function Modal({
1380
1387
  )))
1381
1388
  ))
1382
1389
  );
1383
- }
1390
+ });
1391
+ var Modal_default = (0, import_react13.memo)(Modal);
1384
1392
  var ModalContext = import_react13.default.createContext({
1385
1393
  titleProps: {},
1386
1394
  title: "",
@@ -1420,7 +1428,7 @@ var DialogContainer = import_styled_components11.default.div`
1420
1428
  }
1421
1429
  }}px;
1422
1430
 
1423
- @media ${({ theme: theme4 }) => (0, import_utils5.maxWidth)(theme4.breakpoint.screen1)} {
1431
+ @media ${({ theme: theme4 }) => (0, import_utils6.maxWidth)(theme4.breakpoint.screen1)} {
1424
1432
  width: calc(100% - 48px);
1425
1433
  ${(p) => p.bottomSheet !== false && import_styled_components11.css`
1426
1434
  margin: 0;
@@ -1438,7 +1446,7 @@ var ModalDialog = (0, import_react_spring.animated)(import_styled_components11.d
1438
1446
  padding: 24px 0;
1439
1447
 
1440
1448
  ${theme((o) => [o.bg.background1, o.borderRadius(24)])}
1441
- @media ${({ theme: theme4 }) => (0, import_utils5.maxWidth)(theme4.breakpoint.screen1)} {
1449
+ @media ${({ theme: theme4 }) => (0, import_utils6.maxWidth)(theme4.breakpoint.screen1)} {
1442
1450
  ${(p) => p.bottomSheet !== false && import_styled_components11.css`
1443
1451
  border-radius: 0;
1444
1452
  ${p.bottomSheet === "full" && import_styled_components11.css`
@@ -1496,13 +1504,22 @@ var ModalButtons = import_styled_components12.default.div`
1496
1504
  // src/components/LoadingSpinner/index.tsx
1497
1505
  var import_react15 = __toESM(require("react"));
1498
1506
  var import_styled_components13 = __toESM(require("styled-components"));
1499
- function LoadingSpinner({
1500
- size = 48,
1501
- padding = 16,
1502
- transparent = false
1503
- }) {
1504
- return /* @__PURE__ */ import_react15.default.createElement(LoadingSpinnerRoot, { size, padding, transparent }, /* @__PURE__ */ import_react15.default.createElement(LoadingSpinnerIcon, null));
1505
- }
1507
+ var LoadingSpinner = (0, import_react15.forwardRef)(
1508
+ function LoadingSpinnerInner({ size = 48, padding = 16, transparent = false, className }, ref) {
1509
+ return /* @__PURE__ */ import_react15.default.createElement(
1510
+ LoadingSpinnerRoot,
1511
+ {
1512
+ size,
1513
+ padding,
1514
+ transparent,
1515
+ className,
1516
+ ref
1517
+ },
1518
+ /* @__PURE__ */ import_react15.default.createElement(LoadingSpinnerIcon, null)
1519
+ );
1520
+ }
1521
+ );
1522
+ var LoadingSpinner_default = (0, import_react15.memo)(LoadingSpinner);
1506
1523
  var LoadingSpinnerRoot = import_styled_components13.default.div.attrs({ role: "progressbar" })`
1507
1524
  box-sizing: content-box;
1508
1525
  margin: auto;
@@ -1559,7 +1576,7 @@ var LoadingSpinnerIcon = import_react15.default.forwardRef(function LoadingSpinn
1559
1576
  var import_react20 = __toESM(require("react"));
1560
1577
  var import_styled_components19 = __toESM(require("styled-components"));
1561
1578
  var import_react_stately2 = require("react-stately");
1562
- var import_utils8 = require("@charcoal-ui/utils");
1579
+ var import_utils10 = require("@charcoal-ui/utils");
1563
1580
  var import_visually_hidden2 = require("@react-aria/visually-hidden");
1564
1581
  var import_select = require("@react-aria/select");
1565
1582
  var import_button = require("@react-aria/button");
@@ -1579,19 +1596,19 @@ var import_styled_components16 = __toESM(require("styled-components"));
1579
1596
  var import_react16 = __toESM(require("react"));
1580
1597
  var import_styled_components14 = __toESM(require("styled-components"));
1581
1598
  var import_listbox = require("@react-aria/listbox");
1582
- var import_utils6 = require("@react-aria/utils");
1599
+ var import_utils8 = require("@react-aria/utils");
1583
1600
  var import_focus2 = require("@react-aria/focus");
1584
- var import_utils7 = require("@charcoal-ui/utils");
1601
+ var import_utils9 = require("@charcoal-ui/utils");
1585
1602
  function Option({ item, state, mode }) {
1586
1603
  const ref = (0, import_react16.useRef)(null);
1587
1604
  const { optionProps, isSelected } = (0, import_listbox.useOption)(item, state, ref);
1588
1605
  const { focusProps } = (0, import_focus2.useFocusRing)();
1589
- return /* @__PURE__ */ import_react16.default.createElement(OptionRoot, { ...(0, import_utils6.mergeProps)(optionProps, focusProps), ref, mode }, /* @__PURE__ */ import_react16.default.createElement(OptionCheckIcon, { name: "16/Check", isSelected }), /* @__PURE__ */ import_react16.default.createElement(OptionText, null, item.rendered));
1606
+ return /* @__PURE__ */ import_react16.default.createElement(OptionRoot, { ...(0, import_utils8.mergeProps)(optionProps, focusProps), ref, mode }, /* @__PURE__ */ import_react16.default.createElement(OptionCheckIcon, { name: "16/Check", isSelected }), /* @__PURE__ */ import_react16.default.createElement(OptionText, null, item.rendered));
1590
1607
  }
1591
1608
  var OptionRoot = import_styled_components14.default.li`
1592
1609
  display: flex;
1593
1610
  align-items: center;
1594
- gap: ${({ theme: theme4 }) => (0, import_utils7.px)(theme4.spacing[4])};
1611
+ gap: ${({ theme: theme4 }) => (0, import_utils9.px)(theme4.spacing[4])};
1595
1612
  height: 40px;
1596
1613
  cursor: pointer;
1597
1614
  outline: none;
@@ -1825,7 +1842,7 @@ var DropdownSelectorRoot = import_styled_components19.default.div`
1825
1842
  display: inline-block;
1826
1843
  width: 100%;
1827
1844
 
1828
- ${import_utils8.disabledSelector} {
1845
+ ${import_utils10.disabledSelector} {
1829
1846
  cursor: default;
1830
1847
  ${theme((o) => o.disabled)}
1831
1848
  }
@@ -1848,7 +1865,7 @@ var DropdownButton = import_styled_components19.default.button`
1848
1865
  box-sizing: border-box;
1849
1866
  cursor: pointer;
1850
1867
 
1851
- ${import_utils8.disabledSelector} {
1868
+ ${import_utils10.disabledSelector} {
1852
1869
  cursor: default;
1853
1870
  }
1854
1871
 
@@ -1882,7 +1899,7 @@ var import_react22 = __toESM(require("react"));
1882
1899
  var import_react_stately3 = require("react-stately");
1883
1900
  var import_radio = require("@react-aria/radio");
1884
1901
  var import_styled_components20 = __toESM(require("styled-components"));
1885
- var import_utils9 = require("@charcoal-ui/utils");
1902
+ var import_utils11 = require("@charcoal-ui/utils");
1886
1903
 
1887
1904
  // src/components/SegmentedControl/RadioGroupContext.tsx
1888
1905
  var import_react21 = __toESM(require("react"));
@@ -1920,23 +1937,35 @@ var SegmentedControl = (0, import_react22.forwardRef)(
1920
1937
  (d) => typeof d === "string" ? { value: d, label: d } : d
1921
1938
  );
1922
1939
  }, [props.data]);
1923
- return /* @__PURE__ */ import_react22.default.createElement(SegmentedControlRoot, { ref, ...radioGroupProps }, /* @__PURE__ */ import_react22.default.createElement(RadioProvider, { value: state }, segmentedControlItems.map((item) => /* @__PURE__ */ import_react22.default.createElement(
1924
- Segmented,
1940
+ return /* @__PURE__ */ import_react22.default.createElement(
1941
+ SegmentedControlRoot,
1925
1942
  {
1926
- key: item.value,
1927
- value: item.value,
1928
- disabled: item.disabled
1943
+ ref,
1944
+ ...radioGroupProps,
1945
+ className: props.className
1929
1946
  },
1930
- item.label
1931
- ))));
1947
+ /* @__PURE__ */ import_react22.default.createElement(RadioProvider, { value: state }, segmentedControlItems.map((item) => /* @__PURE__ */ import_react22.default.createElement(
1948
+ Segmented,
1949
+ {
1950
+ key: item.value,
1951
+ value: item.value,
1952
+ disabled: item.disabled
1953
+ },
1954
+ item.label
1955
+ )))
1956
+ );
1932
1957
  }
1933
1958
  );
1934
1959
  var SegmentedControl_default = (0, import_react22.memo)(SegmentedControl);
1935
- var Segmented = ({ children, ...props }) => {
1960
+ var Segmented = (props) => {
1936
1961
  const state = useRadioContext();
1937
1962
  const ref = (0, import_react22.useRef)(null);
1938
1963
  const ariaRadioProps = (0, import_react22.useMemo)(
1939
- () => ({ ...props, isDisabled: props.disabled }),
1964
+ () => ({
1965
+ value: props.value,
1966
+ isDisabled: props.disabled,
1967
+ children: props.children
1968
+ }),
1940
1969
  [props]
1941
1970
  );
1942
1971
  const { inputProps, isDisabled, isSelected } = (0, import_radio.useRadio)(
@@ -1951,7 +1980,7 @@ var Segmented = ({ children, ...props }) => {
1951
1980
  checked: isSelected
1952
1981
  },
1953
1982
  /* @__PURE__ */ import_react22.default.createElement(SegmentedInput, { ...inputProps, ref }),
1954
- /* @__PURE__ */ import_react22.default.createElement(RadioLabel2, null, /* @__PURE__ */ import_react22.default.createElement(SegmentedLabelInner, null, children))
1983
+ /* @__PURE__ */ import_react22.default.createElement(RadioLabel2, null, /* @__PURE__ */ import_react22.default.createElement(SegmentedLabelInner, null, props.children))
1955
1984
  );
1956
1985
  };
1957
1986
  var SegmentedControlRoot = import_styled_components20.default.div`
@@ -1967,7 +1996,7 @@ var SegmentedRoot = import_styled_components20.default.label`
1967
1996
  cursor: pointer;
1968
1997
  height: 32px;
1969
1998
 
1970
- ${import_utils9.disabledSelector} {
1999
+ ${import_utils11.disabledSelector} {
1971
2000
  cursor: default;
1972
2001
  }
1973
2002
 
@@ -2007,9 +2036,9 @@ var SegmentedLabelInner = import_styled_components20.default.div`
2007
2036
  var import_react23 = __toESM(require("react"));
2008
2037
  var import_styled_components21 = __toESM(require("styled-components"));
2009
2038
  var import_checkbox = require("@react-aria/checkbox");
2010
- var import_utils10 = require("@react-aria/utils");
2039
+ var import_utils12 = require("@react-aria/utils");
2011
2040
  var import_react_stately4 = require("react-stately");
2012
- var import_utils11 = require("@charcoal-ui/utils");
2041
+ var import_utils13 = require("@charcoal-ui/utils");
2013
2042
  var Checkbox = (0, import_react23.forwardRef)(
2014
2043
  function CheckboxInner(props, ref) {
2015
2044
  const ariaCheckboxProps = (0, import_react23.useMemo)(
@@ -2023,10 +2052,10 @@ var Checkbox = (0, import_react23.forwardRef)(
2023
2052
  [props]
2024
2053
  );
2025
2054
  const state = (0, import_react_stately4.useToggleState)(ariaCheckboxProps);
2026
- const objectRef = (0, import_utils10.useObjectRef)(ref);
2055
+ const objectRef = (0, import_utils12.useObjectRef)(ref);
2027
2056
  const { inputProps } = (0, import_checkbox.useCheckbox)(ariaCheckboxProps, state, objectRef);
2028
2057
  const isDisabled = (props.disabled ?? false) || (props.readonly ?? false);
2029
- return /* @__PURE__ */ import_react23.default.createElement(InputRoot, { "aria-disabled": isDisabled }, /* @__PURE__ */ import_react23.default.createElement(CheckboxRoot, null, /* @__PURE__ */ import_react23.default.createElement(CheckboxInput, { type: "checkbox", ...inputProps }), /* @__PURE__ */ import_react23.default.createElement(CheckboxInputOverlay, { "aria-hidden": true, checked: inputProps.checked }, /* @__PURE__ */ import_react23.default.createElement(Icon_default, { name: "24/Check", unsafeNonGuidelineScale: 2 / 3 }))), "children" in props && /* @__PURE__ */ import_react23.default.createElement(InputLabel, null, props.children));
2058
+ return /* @__PURE__ */ import_react23.default.createElement(InputRoot, { "aria-disabled": isDisabled, className: props.className }, /* @__PURE__ */ import_react23.default.createElement(CheckboxRoot, null, /* @__PURE__ */ import_react23.default.createElement(CheckboxInput, { type: "checkbox", ...inputProps }), /* @__PURE__ */ import_react23.default.createElement(CheckboxInputOverlay, { "aria-hidden": true, checked: inputProps.checked }, /* @__PURE__ */ import_react23.default.createElement(Icon_default, { name: "24/Check", unsafeNonGuidelineScale: 2 / 3 }))), "children" in props && /* @__PURE__ */ import_react23.default.createElement(InputLabel, null, props.children));
2030
2059
  }
2031
2060
  );
2032
2061
  var Checkbox_default = (0, import_react23.memo)(Checkbox);
@@ -2038,11 +2067,11 @@ var InputRoot = import_styled_components21.default.label`
2038
2067
  display: flex;
2039
2068
 
2040
2069
  cursor: pointer;
2041
- ${import_utils11.disabledSelector} {
2070
+ ${import_utils13.disabledSelector} {
2042
2071
  cursor: default;
2043
2072
  }
2044
2073
 
2045
- gap: ${({ theme: theme4 }) => (0, import_utils11.px)(theme4.spacing[4])};
2074
+ gap: ${({ theme: theme4 }) => (0, import_utils13.px)(theme4.spacing[4])};
2046
2075
  ${theme((o) => [o.disabled])}
2047
2076
  `;
2048
2077
  var CheckboxRoot = import_styled_components21.default.div`
@@ -2094,9 +2123,9 @@ var InputLabel = import_styled_components21.default.div`
2094
2123
 
2095
2124
  // src/components/TagItem/index.tsx
2096
2125
  var import_react24 = __toESM(require("react"));
2097
- var import_utils12 = require("@react-aria/utils");
2126
+ var import_utils14 = require("@react-aria/utils");
2098
2127
  var import_styled_components22 = __toESM(require("styled-components"));
2099
- var import_utils13 = require("@charcoal-ui/utils");
2128
+ var import_utils15 = require("@charcoal-ui/utils");
2100
2129
  var import_button2 = require("@react-aria/button");
2101
2130
  var sizeMap = {
2102
2131
  S: 32,
@@ -2114,7 +2143,7 @@ var TagItem = (0, import_react24.forwardRef)(
2114
2143
  className,
2115
2144
  ...props
2116
2145
  }, _ref) {
2117
- const ref = (0, import_utils12.useObjectRef)(_ref);
2146
+ const ref = (0, import_utils14.useObjectRef)(_ref);
2118
2147
  const ariaButtonProps = (0, import_react24.useMemo)(
2119
2148
  () => ({
2120
2149
  elementType: "a",
@@ -2160,7 +2189,7 @@ var TagItemRoot = import_styled_components22.default.a`
2160
2189
  ...status === "active" ? [o.padding.left(16), o.padding.right(8)] : []
2161
2190
  ])}
2162
2191
 
2163
- ${import_utils13.disabledSelector} {
2192
+ ${import_utils15.disabledSelector} {
2164
2193
  ${theme((o) => [o.disabled])}
2165
2194
  cursor: default;
2166
2195
  }
@@ -2194,7 +2223,7 @@ var Background = import_styled_components22.default.div`
2194
2223
  `;
2195
2224
  var Inner = import_styled_components22.default.div`
2196
2225
  display: inline-flex;
2197
- gap: ${({ theme: theme4 }) => (0, import_utils13.px)(theme4.spacing[8])};
2226
+ gap: ${({ theme: theme4 }) => (0, import_utils15.px)(theme4.spacing[8])};
2198
2227
  align-items: center;
2199
2228
  z-index: 2;
2200
2229
  `;