@charcoal-ui/react 3.0.0-beta.3 → 3.0.0-beta.4

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (86) hide show
  1. package/dist/_lib/compat.d.ts +18 -0
  2. package/dist/_lib/compat.d.ts.map +1 -1
  3. package/dist/_lib/index.d.ts +7 -0
  4. package/dist/_lib/index.d.ts.map +1 -1
  5. package/dist/components/Checkbox/index.d.ts +1 -0
  6. package/dist/components/Checkbox/index.d.ts.map +1 -1
  7. package/dist/components/Checkbox/index.story.d.ts +1 -0
  8. package/dist/components/Checkbox/index.story.d.ts.map +1 -1
  9. package/dist/components/DropdownSelector/index.d.ts.map +1 -1
  10. package/dist/components/LoadingSpinner/index.d.ts +8 -6
  11. package/dist/components/LoadingSpinner/index.d.ts.map +1 -1
  12. package/dist/components/LoadingSpinner/index.story.d.ts +1 -2
  13. package/dist/components/LoadingSpinner/index.story.d.ts.map +1 -1
  14. package/dist/components/Modal/index.d.ts +17 -26
  15. package/dist/components/Modal/index.d.ts.map +1 -1
  16. package/dist/components/Modal/index.story.d.ts +12 -2
  17. package/dist/components/Modal/index.story.d.ts.map +1 -1
  18. package/dist/components/MultiSelect/index.d.ts +14 -1
  19. package/dist/components/MultiSelect/index.d.ts.map +1 -1
  20. package/dist/components/MultiSelect/index.story.d.ts +14 -2
  21. package/dist/components/MultiSelect/index.story.d.ts.map +1 -1
  22. package/dist/components/Radio/index.d.ts +12 -5
  23. package/dist/components/Radio/index.d.ts.map +1 -1
  24. package/dist/components/Radio/index.story.d.ts +10 -6
  25. package/dist/components/Radio/index.story.d.ts.map +1 -1
  26. package/dist/components/SegmentedControl/index.d.ts +1 -0
  27. package/dist/components/SegmentedControl/index.d.ts.map +1 -1
  28. package/dist/components/Switch/index.d.ts +2 -1
  29. package/dist/components/Switch/index.d.ts.map +1 -1
  30. package/dist/components/Switch/index.story.d.ts +1 -2
  31. package/dist/components/Switch/index.story.d.ts.map +1 -1
  32. package/dist/components/TextArea/index.d.ts +3 -10
  33. package/dist/components/TextArea/index.d.ts.map +1 -1
  34. package/dist/components/TextField/TextField.story.d.ts +4 -5
  35. package/dist/components/TextField/TextField.story.d.ts.map +1 -1
  36. package/dist/components/TextField/index.d.ts +6 -29
  37. package/dist/components/TextField/index.d.ts.map +1 -1
  38. package/dist/components/TextField/index.story.d.ts +5 -4
  39. package/dist/components/TextField/index.story.d.ts.map +1 -1
  40. package/dist/index.cjs.js +636 -594
  41. package/dist/index.cjs.js.map +1 -1
  42. package/dist/index.d.ts +2 -1
  43. package/dist/index.d.ts.map +1 -1
  44. package/dist/index.esm.js +604 -563
  45. package/dist/index.esm.js.map +1 -1
  46. package/package.json +6 -6
  47. package/src/_lib/compat.ts +19 -0
  48. package/src/_lib/index.ts +23 -0
  49. package/src/components/Checkbox/index.story.tsx +1 -0
  50. package/src/components/Checkbox/index.tsx +2 -1
  51. package/src/components/DropdownSelector/DropdownMenuItem.tsx +1 -1
  52. package/src/components/DropdownSelector/ListItem/index.story.tsx +1 -1
  53. package/src/components/DropdownSelector/ListItem/index.tsx +1 -1
  54. package/src/components/DropdownSelector/MenuItem/index.tsx +0 -1
  55. package/src/components/DropdownSelector/MenuItem/internals/useMenuItemHandleKeyDown.tsx +1 -1
  56. package/src/components/DropdownSelector/MenuItemGroup/index.tsx +0 -1
  57. package/src/components/DropdownSelector/MenuList/index.story.tsx +0 -1
  58. package/src/components/DropdownSelector/MenuList/index.tsx +1 -1
  59. package/src/components/DropdownSelector/MenuList/internals/getValuesRecursive.tsx +1 -1
  60. package/src/components/DropdownSelector/Popover/index.story.tsx +1 -1
  61. package/src/components/DropdownSelector/Popover/index.tsx +1 -1
  62. package/src/components/DropdownSelector/index.tsx +16 -14
  63. package/src/components/DropdownSelector/utils/findPreviewRecursive.tsx +2 -1
  64. package/src/components/LoadingSpinner/index.story.tsx +7 -1
  65. package/src/components/LoadingSpinner/index.tsx +27 -11
  66. package/src/components/Modal/index.tsx +18 -12
  67. package/src/components/MultiSelect/index.story.tsx +16 -4
  68. package/src/components/MultiSelect/index.tsx +70 -60
  69. package/src/components/Radio/index.story.tsx +7 -8
  70. package/src/components/Radio/index.test.tsx +3 -3
  71. package/src/components/Radio/index.tsx +23 -23
  72. package/src/components/SegmentedControl/index.tsx +6 -1
  73. package/src/components/Switch/index.tsx +37 -32
  74. package/src/components/TextArea/TextArea.story.tsx +61 -0
  75. package/src/components/TextArea/index.tsx +246 -0
  76. package/src/components/TextField/{index.story.tsx → TextField.story.tsx} +6 -28
  77. package/src/components/TextField/index.tsx +146 -371
  78. package/src/index.ts +1 -2
  79. package/dist/components/DropdownSelector/OptionItem.d.ts +0 -7
  80. package/dist/components/DropdownSelector/OptionItem.d.ts.map +0 -1
  81. package/dist/components/DropdownSelector/utils/focusIfHTMLLIElement.d.ts +0 -6
  82. package/dist/components/DropdownSelector/utils/focusIfHTMLLIElement.d.ts.map +0 -1
  83. package/dist/components/DropdownSelector/utils/handleFocusByKeyBoard.d.ts +0 -6
  84. package/dist/components/DropdownSelector/utils/handleFocusByKeyBoard.d.ts.map +0 -1
  85. package/dist/types/CustomJSXElement.d.ts +0 -3
  86. package/dist/types/CustomJSXElement.d.ts.map +0 -1
package/dist/index.cjs.js CHANGED
@@ -35,23 +35,24 @@ __export(src_exports, {
35
35
  DropdownSelector: () => DropdownSelector,
36
36
  Icon: () => Icon_default,
37
37
  IconButton: () => IconButton_default,
38
- LoadingSpinner: () => LoadingSpinner,
38
+ LoadingSpinner: () => LoadingSpinner_default,
39
39
  LoadingSpinnerIcon: () => LoadingSpinnerIcon,
40
40
  MenuItemGroup: () => MenuItemGroup,
41
- Modal: () => Modal,
41
+ Modal: () => Modal_default,
42
42
  ModalAlign: () => ModalAlign,
43
43
  ModalBody: () => ModalBody,
44
44
  ModalButtons: () => ModalButtons,
45
45
  ModalHeader: () => ModalHeader,
46
- MultiSelect: () => MultiSelect,
46
+ MultiSelect: () => MultiSelect_default,
47
47
  MultiSelectGroup: () => MultiSelectGroup,
48
48
  OverlayProvider: () => import_overlays.OverlayProvider,
49
- Radio: () => Radio,
49
+ Radio: () => Radio_default,
50
50
  RadioGroup: () => RadioGroup,
51
51
  SSRProvider: () => import_ssr.SSRProvider,
52
52
  SegmentedControl: () => SegmentedControl_default,
53
- Switch: () => SwitchCheckbox,
53
+ Switch: () => Switch_default,
54
54
  TagItem: () => TagItem_default,
55
+ TextArea: () => TextArea_default,
55
56
  TextField: () => TextField_default,
56
57
  useComponentAbstraction: () => useComponentAbstraction
57
58
  });
@@ -116,6 +117,21 @@ function unreachable(value) {
116
117
  arguments.length === 0 ? "unreachable" : `unreachable (${JSON.stringify(value)})`
117
118
  );
118
119
  }
120
+ function mergeRefs(...refs) {
121
+ return (value) => {
122
+ for (const ref of refs) {
123
+ if (typeof ref === "function") {
124
+ ref(value);
125
+ } else if (ref !== null) {
126
+ ;
127
+ ref.current = value;
128
+ }
129
+ }
130
+ };
131
+ }
132
+ function countCodePointsInString(string) {
133
+ return Array.from(string).length;
134
+ }
119
135
 
120
136
  // src/styled.ts
121
137
  var import_styled_components2 = __toESM(require("styled-components"));
@@ -387,18 +403,13 @@ var import_styled_components6 = __toESM(require("styled-components"));
387
403
  var import_warning = __toESM(require("warning"));
388
404
  var import_utils2 = require("@charcoal-ui/utils");
389
405
  var import_jsx_runtime6 = require("react/jsx-runtime");
390
- function Radio({
391
- value,
392
- forceChecked = false,
393
- disabled = false,
394
- children
395
- }) {
406
+ var Radio = (0, import_react4.forwardRef)(function RadioInner({ value, disabled = false, children, className }, ref) {
396
407
  const {
397
408
  name,
398
409
  selected,
399
410
  disabled: isParentDisabled,
400
411
  readonly,
401
- hasError,
412
+ invalid,
402
413
  onChange
403
414
  } = (0, import_react4.useContext)(RadioGroupContext);
404
415
  (0, import_warning.default)(
@@ -414,25 +425,27 @@ function Radio({
414
425
  },
415
426
  [onChange]
416
427
  );
417
- return /* @__PURE__ */ (0, import_jsx_runtime6.jsxs)(RadioRoot, { "aria-disabled": isDisabled || isReadonly, children: [
428
+ return /* @__PURE__ */ (0, import_jsx_runtime6.jsxs)(RadioRoot, { "aria-disabled": isDisabled || isReadonly, className, children: [
418
429
  /* @__PURE__ */ (0, import_jsx_runtime6.jsx)(
419
430
  RadioInput,
420
431
  {
421
432
  name,
422
433
  value,
423
- checked: forceChecked || isSelected,
424
- hasError,
434
+ checked: isSelected,
435
+ invalid,
425
436
  onChange: handleChange,
426
- disabled: isDisabled || isReadonly
437
+ disabled: isDisabled || isReadonly,
438
+ ref
427
439
  }
428
440
  ),
429
441
  children != null && /* @__PURE__ */ (0, import_jsx_runtime6.jsx)(RadioLabel, { children })
430
442
  ] });
431
- }
443
+ });
444
+ var Radio_default = (0, import_react4.memo)(Radio);
432
445
  var RadioRoot = import_styled_components6.default.label`
433
446
  display: grid;
434
447
  grid-template-columns: auto 1fr;
435
- grid-gap: ${({ theme: theme4 }) => (0, import_utils2.px)(theme4.spacing[4])};
448
+ grid-gap: ${({ theme: theme3 }) => (0, import_utils2.px)(theme3.spacing[4])};
436
449
  align-items: center;
437
450
  cursor: pointer;
438
451
 
@@ -450,19 +463,18 @@ var RadioInput = import_styled_components6.default.input.attrs({ type: "radio" }
450
463
 
451
464
  width: 20px;
452
465
  height: 20px;
453
-
454
466
  cursor: pointer;
455
467
 
456
- ${({ hasError = false }) => theme((o) => [
468
+ ${({ invalid = false }) => theme((o) => [
457
469
  o.borderRadius("oval"),
458
470
  o.bg.surface1.hover.press,
459
- hasError && o.outline.assertive
471
+ invalid && o.outline.assertive
460
472
  ])};
461
473
 
462
474
  &:not(:checked) {
463
475
  border-width: 2px;
464
476
  border-style: solid;
465
- border-color: ${({ theme: theme4 }) => theme4.color.text3};
477
+ border-color: ${({ theme: theme3 }) => theme3.color.text3};
466
478
  }
467
479
 
468
480
  &:checked {
@@ -491,14 +503,14 @@ var RadioLabel = import_styled_components6.default.div`
491
503
  var StyledRadioGroup = import_styled_components6.default.div`
492
504
  display: grid;
493
505
  grid-template-columns: 1fr;
494
- grid-gap: ${({ theme: theme4 }) => (0, import_utils2.px)(theme4.spacing[8])};
506
+ grid-gap: ${({ theme: theme3 }) => (0, import_utils2.px)(theme3.spacing[8])};
495
507
  `;
496
508
  var RadioGroupContext = React3.createContext({
497
509
  name: void 0,
498
510
  selected: void 0,
499
511
  disabled: false,
500
512
  readonly: false,
501
- hasError: false,
513
+ invalid: false,
502
514
  onChange() {
503
515
  throw new Error(
504
516
  "Cannot find onChange() handler. Perhaps you forgot to wrap with <RadioGroup> ?"
@@ -513,7 +525,7 @@ function RadioGroup({
513
525
  onChange,
514
526
  disabled,
515
527
  readonly,
516
- hasError,
528
+ invalid,
517
529
  children
518
530
  }) {
519
531
  const handleChange = (0, import_react4.useCallback)(
@@ -530,7 +542,7 @@ function RadioGroup({
530
542
  selected: value,
531
543
  disabled: disabled ?? false,
532
544
  readonly: readonly ?? false,
533
- hasError: hasError ?? false,
545
+ invalid: invalid ?? false,
534
546
  onChange: handleChange
535
547
  },
536
548
  children: /* @__PURE__ */ (0, import_jsx_runtime6.jsx)(
@@ -539,7 +551,7 @@ function RadioGroup({
539
551
  role: "radiogroup",
540
552
  "aria-orientation": "vertical",
541
553
  "aria-label": label,
542
- "aria-invalid": hasError,
554
+ "aria-invalid": invalid,
543
555
  className,
544
556
  children
545
557
  }
@@ -571,66 +583,71 @@ var MultiSelectGroupContext = (0, import_react5.createContext)({
571
583
 
572
584
  // src/components/MultiSelect/index.tsx
573
585
  var import_jsx_runtime7 = require("react/jsx-runtime");
574
- function MultiSelect({
575
- value,
576
- disabled = false,
577
- onChange,
578
- variant = "default",
579
- children
580
- }) {
581
- const {
582
- name,
583
- selected,
584
- disabled: parentDisabled,
585
- readonly,
586
- invalid,
587
- onChange: parentOnChange
588
- } = (0, import_react6.useContext)(MultiSelectGroupContext);
589
- (0, import_warning2.default)(
590
- name !== void 0,
591
- `"name" is not Provided for <MultiSelect>. Perhaps you forgot to wrap with <MultiSelectGroup> ?`
592
- );
593
- const isSelected = selected.includes(value);
594
- const isDisabled = disabled || parentDisabled || readonly;
595
- const handleChange = (0, import_react6.useCallback)(
596
- (event) => {
597
- if (!(event.currentTarget instanceof HTMLInputElement)) {
598
- return;
599
- }
600
- if (onChange)
601
- onChange({ value, selected: event.currentTarget.checked });
602
- parentOnChange({ value, selected: event.currentTarget.checked });
603
- },
604
- [onChange, parentOnChange, value]
605
- );
606
- return /* @__PURE__ */ (0, import_jsx_runtime7.jsxs)(MultiSelectRoot, { "aria-disabled": isDisabled, children: [
607
- /* @__PURE__ */ (0, import_jsx_runtime7.jsx)(
608
- MultiSelectInput,
609
- {
610
- ...{
611
- name,
612
- value,
613
- invalid
614
- },
615
- checked: isSelected,
616
- disabled: isDisabled,
617
- onChange: handleChange,
618
- overlay: variant === "overlay",
619
- "aria-invalid": invalid
620
- }
621
- ),
622
- /* @__PURE__ */ (0, import_jsx_runtime7.jsx)(
623
- MultiSelectInputOverlay,
624
- {
625
- overlay: variant === "overlay",
626
- invalid,
627
- "aria-hidden": true,
628
- children: /* @__PURE__ */ (0, import_jsx_runtime7.jsx)("pixiv-icon", { name: "24/Check", "unsafe-non-guideline-scale": 16 / 24 })
629
- }
630
- ),
631
- Boolean(children) && /* @__PURE__ */ (0, import_jsx_runtime7.jsx)(MultiSelectLabel, { children })
632
- ] });
633
- }
586
+ var MultiSelect = (0, import_react6.forwardRef)(
587
+ function MultiSelectInner({
588
+ value,
589
+ disabled = false,
590
+ onChange,
591
+ variant = "default",
592
+ className,
593
+ children
594
+ }, ref) {
595
+ const {
596
+ name,
597
+ selected,
598
+ disabled: parentDisabled,
599
+ readonly,
600
+ invalid,
601
+ onChange: parentOnChange
602
+ } = (0, import_react6.useContext)(MultiSelectGroupContext);
603
+ (0, import_warning2.default)(
604
+ name !== void 0,
605
+ `"name" is not Provided for <MultiSelect>. Perhaps you forgot to wrap with <MultiSelectGroup> ?`
606
+ );
607
+ const isSelected = selected.includes(value);
608
+ const isDisabled = disabled || parentDisabled || readonly;
609
+ const handleChange = (0, import_react6.useCallback)(
610
+ (event) => {
611
+ if (!(event.currentTarget instanceof HTMLInputElement)) {
612
+ return;
613
+ }
614
+ if (onChange)
615
+ onChange({ value, selected: event.currentTarget.checked });
616
+ parentOnChange({ value, selected: event.currentTarget.checked });
617
+ },
618
+ [onChange, parentOnChange, value]
619
+ );
620
+ return /* @__PURE__ */ (0, import_jsx_runtime7.jsxs)(MultiSelectRoot, { "aria-disabled": isDisabled, className, children: [
621
+ /* @__PURE__ */ (0, import_jsx_runtime7.jsx)(
622
+ MultiSelectInput,
623
+ {
624
+ ...{
625
+ name,
626
+ value,
627
+ invalid
628
+ },
629
+ checked: isSelected,
630
+ disabled: isDisabled,
631
+ onChange: handleChange,
632
+ overlay: variant === "overlay",
633
+ "aria-invalid": invalid,
634
+ ref
635
+ }
636
+ ),
637
+ /* @__PURE__ */ (0, import_jsx_runtime7.jsx)(
638
+ MultiSelectInputOverlay,
639
+ {
640
+ overlay: variant === "overlay",
641
+ invalid,
642
+ "aria-hidden": true,
643
+ children: /* @__PURE__ */ (0, import_jsx_runtime7.jsx)("pixiv-icon", { name: "24/Check", "unsafe-non-guideline-scale": 16 / 24 })
644
+ }
645
+ ),
646
+ Boolean(children) && /* @__PURE__ */ (0, import_jsx_runtime7.jsx)(MultiSelectLabel, { children })
647
+ ] });
648
+ }
649
+ );
650
+ var MultiSelect_default = (0, import_react6.memo)(MultiSelect);
634
651
  var MultiSelectRoot = import_styled_components7.default.label`
635
652
  display: grid;
636
653
  grid-template-columns: auto 1fr;
@@ -640,7 +657,7 @@ var MultiSelectRoot = import_styled_components7.default.label`
640
657
  ${import_utils3.disabledSelector} {
641
658
  cursor: default;
642
659
  }
643
- gap: ${({ theme: theme4 }) => (0, import_utils3.px)(theme4.spacing[4])};
660
+ gap: ${({ theme: theme3 }) => (0, import_utils3.px)(theme3.spacing[4])};
644
661
  ${theme((o) => o.disabled)}
645
662
  `;
646
663
  var MultiSelectLabel = import_styled_components7.default.div`
@@ -686,7 +703,7 @@ var MultiSelectInputOverlay = import_styled_components7.default.div`
686
703
  ])}
687
704
 
688
705
  ${({ overlay }) => overlay && import_styled_components7.css`
689
- border-color: ${({ theme: theme4 }) => theme4.color.text5};
706
+ border-color: ${({ theme: theme3 }) => theme3.color.text5};
690
707
  border-width: 2px;
691
708
  border-style: solid;
692
709
  `}
@@ -739,28 +756,32 @@ var import_react7 = require("react");
739
756
  var import_react_stately = require("react-stately");
740
757
  var import_styled_components8 = __toESM(require("styled-components"));
741
758
  var import_utils4 = require("@charcoal-ui/utils");
759
+ var import_utils5 = require("@react-aria/utils");
742
760
  var import_jsx_runtime8 = require("react/jsx-runtime");
743
- function SwitchCheckbox(props) {
744
- const { disabled, className } = props;
745
- const ariaSwitchProps = (0, import_react7.useMemo)(
746
- () => ({
747
- ...props,
748
- "aria-label": "children" in props ? void 0 : props.label,
749
- isDisabled: props.disabled,
750
- isSelected: props.checked
751
- }),
752
- [props]
753
- );
754
- const state = (0, import_react_stately.useToggleState)(ariaSwitchProps);
755
- const ref = (0, import_react7.useRef)(null);
756
- const {
757
- inputProps: { className: _className, type: _type, ...rest }
758
- } = (0, import_switch.useSwitch)(ariaSwitchProps, state, ref);
759
- return /* @__PURE__ */ (0, import_jsx_runtime8.jsxs)(Label, { className, "aria-disabled": disabled, children: [
760
- /* @__PURE__ */ (0, import_jsx_runtime8.jsx)(SwitchInput, { ...rest, ref }),
761
- "children" in props ? /* @__PURE__ */ (0, import_jsx_runtime8.jsx)(LabelInner, { children: props.children }) : void 0
762
- ] });
763
- }
761
+ var SwitchCheckbox = (0, import_react7.forwardRef)(
762
+ function SwitchCheckboxInner(props, external) {
763
+ const { disabled, className } = props;
764
+ const ariaSwitchProps = (0, import_react7.useMemo)(
765
+ () => ({
766
+ ...props,
767
+ "aria-label": "children" in props ? void 0 : props.label,
768
+ isDisabled: props.disabled,
769
+ isSelected: props.checked
770
+ }),
771
+ [props]
772
+ );
773
+ const state = (0, import_react_stately.useToggleState)(ariaSwitchProps);
774
+ const ref = (0, import_utils5.useObjectRef)(external);
775
+ const {
776
+ inputProps: { className: _className, type: _type, ...rest }
777
+ } = (0, import_switch.useSwitch)(ariaSwitchProps, state, ref);
778
+ return /* @__PURE__ */ (0, import_jsx_runtime8.jsxs)(Label, { className, "aria-disabled": disabled, children: [
779
+ /* @__PURE__ */ (0, import_jsx_runtime8.jsx)(SwitchInput, { ...rest, ref }),
780
+ "children" in props ? /* @__PURE__ */ (0, import_jsx_runtime8.jsx)(LabelInner, { children: props.children }) : void 0
781
+ ] });
782
+ }
783
+ );
784
+ var Switch_default = (0, import_react7.memo)(SwitchCheckbox);
764
785
  var Label = import_styled_components8.default.label`
765
786
  display: inline-grid;
766
787
  grid-template-columns: auto 1fr;
@@ -907,248 +928,122 @@ var FieldLabelWrapper = import_styled_components9.default.div`
907
928
  `;
908
929
 
909
930
  // src/components/TextField/index.tsx
910
- var import_styled9 = require("@charcoal-ui/styled");
911
931
  var import_jsx_runtime10 = require("react/jsx-runtime");
912
- var theme3 = (0, import_styled9.createTheme)(import_styled_components10.default);
913
- function mergeRefs(...refs) {
914
- return (value) => {
915
- for (const ref of refs) {
916
- if (typeof ref === "function") {
917
- ref(value);
918
- } else if (ref !== null) {
919
- ;
920
- ref.current = value;
921
- }
922
- }
923
- };
924
- }
925
- function countCodePointsInString(string) {
926
- return Array.from(string).length;
927
- }
928
932
  var TextField = React5.forwardRef(
929
- function TextField2(props, ref) {
930
- return props.multiline !== void 0 && props.multiline ? /* @__PURE__ */ (0, import_jsx_runtime10.jsx)(MultiLineTextField, { ref, ...props }) : /* @__PURE__ */ (0, import_jsx_runtime10.jsx)(SingleLineTextField, { ref, ...props });
931
- }
932
- );
933
- var TextField_default = TextField;
934
- var SingleLineTextField = React5.forwardRef(function SingleLineTextFieldInner({ onChange, ...props }, forwardRef12) {
935
- const {
936
- className,
937
- showLabel = false,
938
- showCount = false,
939
- label,
940
- requiredText,
941
- subLabel,
942
- disabled = false,
943
- required,
944
- invalid = false,
945
- assistiveText,
946
- maxLength,
947
- prefix = null,
948
- suffix = null
949
- } = props;
950
- const { visuallyHiddenProps } = (0, import_visually_hidden.useVisuallyHidden)();
951
- const ariaRef = (0, import_react8.useRef)(null);
952
- const prefixRef = (0, import_react8.useRef)(null);
953
- const suffixRef = (0, import_react8.useRef)(null);
954
- const [count, setCount] = (0, import_react8.useState)(countCodePointsInString(props.value ?? ""));
955
- const [prefixWidth, setPrefixWidth] = (0, import_react8.useState)(0);
956
- const [suffixWidth, setSuffixWidth] = (0, import_react8.useState)(0);
957
- const nonControlled = props.value === void 0;
958
- const handleChange = (0, import_react8.useCallback)(
959
- (value) => {
960
- const count2 = countCodePointsInString(value);
961
- if (maxLength !== void 0 && count2 > maxLength) {
962
- return;
963
- }
964
- if (nonControlled) {
965
- setCount(count2);
966
- }
967
- onChange?.(value);
968
- },
969
- [maxLength, nonControlled, onChange]
970
- );
971
- (0, import_react8.useEffect)(() => {
972
- setCount(countCodePointsInString(props.value ?? ""));
973
- }, [props.value]);
974
- const { inputProps, labelProps, descriptionProps, errorMessageProps } = (0, import_textfield.useTextField)(
975
- {
976
- inputElementType: "input",
977
- isDisabled: disabled,
978
- isRequired: required,
979
- validationState: invalid ? "invalid" : "valid",
980
- description: !invalid && assistiveText,
981
- errorMessage: invalid && assistiveText,
982
- onChange: handleChange,
983
- ...props
984
- },
985
- ariaRef
986
- );
987
- (0, import_react8.useEffect)(() => {
988
- const prefixObserver = new ResizeObserver((entries) => {
989
- setPrefixWidth(entries[0].contentRect.width);
990
- });
991
- const suffixObserver = new ResizeObserver((entries) => {
992
- setSuffixWidth(entries[0].contentRect.width);
993
- });
994
- if (prefixRef.current !== null) {
995
- prefixObserver.observe(prefixRef.current);
996
- }
997
- if (suffixRef.current !== null) {
998
- suffixObserver.observe(suffixRef.current);
999
- }
1000
- return () => {
1001
- suffixObserver.disconnect();
1002
- prefixObserver.disconnect();
1003
- };
1004
- }, []);
1005
- return /* @__PURE__ */ (0, import_jsx_runtime10.jsxs)(TextFieldRoot, { className, isDisabled: disabled, children: [
1006
- /* @__PURE__ */ (0, import_jsx_runtime10.jsx)(
1007
- TextFieldLabel,
933
+ function SingleLineTextFieldInner({ onChange, ...props }, forwardRef16) {
934
+ const {
935
+ className,
936
+ showLabel = false,
937
+ showCount = false,
938
+ label,
939
+ requiredText,
940
+ subLabel,
941
+ disabled = false,
942
+ required,
943
+ invalid = false,
944
+ assistiveText,
945
+ maxLength,
946
+ prefix = null,
947
+ suffix = null
948
+ } = props;
949
+ const { visuallyHiddenProps } = (0, import_visually_hidden.useVisuallyHidden)();
950
+ const ariaRef = (0, import_react8.useRef)(null);
951
+ const prefixRef = (0, import_react8.useRef)(null);
952
+ const suffixRef = (0, import_react8.useRef)(null);
953
+ const [count, setCount] = (0, import_react8.useState)(
954
+ countCodePointsInString(props.value ?? "")
955
+ );
956
+ const [prefixWidth, setPrefixWidth] = (0, import_react8.useState)(0);
957
+ const [suffixWidth, setSuffixWidth] = (0, import_react8.useState)(0);
958
+ const nonControlled = props.value === void 0;
959
+ const handleChange = (0, import_react8.useCallback)(
960
+ (value) => {
961
+ const count2 = countCodePointsInString(value);
962
+ if (maxLength !== void 0 && count2 > maxLength) {
963
+ return;
964
+ }
965
+ if (nonControlled) {
966
+ setCount(count2);
967
+ }
968
+ onChange?.(value);
969
+ },
970
+ [maxLength, nonControlled, onChange]
971
+ );
972
+ (0, import_react8.useEffect)(() => {
973
+ setCount(countCodePointsInString(props.value ?? ""));
974
+ }, [props.value]);
975
+ const { inputProps, labelProps, descriptionProps, errorMessageProps } = (0, import_textfield.useTextField)(
1008
976
  {
1009
- label,
1010
- requiredText,
1011
- required,
1012
- subLabel,
1013
- ...labelProps,
1014
- ...!showLabel ? visuallyHiddenProps : {}
977
+ inputElementType: "input",
978
+ isDisabled: disabled,
979
+ isRequired: required,
980
+ validationState: invalid ? "invalid" : "valid",
981
+ description: !invalid && assistiveText,
982
+ errorMessage: invalid && assistiveText,
983
+ onChange: handleChange,
984
+ ...props
985
+ },
986
+ ariaRef
987
+ );
988
+ (0, import_react8.useEffect)(() => {
989
+ const prefixObserver = new ResizeObserver((entries) => {
990
+ setPrefixWidth(entries[0].contentRect.width);
991
+ });
992
+ const suffixObserver = new ResizeObserver((entries) => {
993
+ setSuffixWidth(entries[0].contentRect.width);
994
+ });
995
+ if (prefixRef.current !== null) {
996
+ prefixObserver.observe(prefixRef.current);
1015
997
  }
1016
- ),
1017
- /* @__PURE__ */ (0, import_jsx_runtime10.jsxs)(StyledInputContainer, { children: [
1018
- /* @__PURE__ */ (0, import_jsx_runtime10.jsx)(PrefixContainer, { ref: prefixRef, children: /* @__PURE__ */ (0, import_jsx_runtime10.jsx)(Affix, { children: prefix }) }),
998
+ if (suffixRef.current !== null) {
999
+ suffixObserver.observe(suffixRef.current);
1000
+ }
1001
+ return () => {
1002
+ suffixObserver.disconnect();
1003
+ prefixObserver.disconnect();
1004
+ };
1005
+ }, []);
1006
+ return /* @__PURE__ */ (0, import_jsx_runtime10.jsxs)(TextFieldRoot, { className, isDisabled: disabled, children: [
1019
1007
  /* @__PURE__ */ (0, import_jsx_runtime10.jsx)(
1020
- StyledInput,
1008
+ TextFieldLabel,
1021
1009
  {
1022
- ref: mergeRefs(forwardRef12, ariaRef),
1023
- invalid,
1024
- extraLeftPadding: prefixWidth,
1025
- extraRightPadding: suffixWidth,
1026
- ...inputProps
1010
+ label,
1011
+ requiredText,
1012
+ required,
1013
+ subLabel,
1014
+ ...labelProps,
1015
+ ...!showLabel ? visuallyHiddenProps : {}
1027
1016
  }
1028
1017
  ),
1029
- /* @__PURE__ */ (0, import_jsx_runtime10.jsxs)(SuffixContainer, { ref: suffixRef, children: [
1030
- /* @__PURE__ */ (0, import_jsx_runtime10.jsx)(Affix, { children: suffix }),
1031
- showCount && /* @__PURE__ */ (0, import_jsx_runtime10.jsx)(SingleLineCounter, { children: maxLength !== void 0 ? `${count}/${maxLength}` : count })
1032
- ] })
1033
- ] }),
1034
- assistiveText != null && assistiveText.length !== 0 && /* @__PURE__ */ (0, import_jsx_runtime10.jsx)(
1035
- AssistiveText,
1036
- {
1037
- invalid,
1038
- ...invalid ? errorMessageProps : descriptionProps,
1039
- children: assistiveText
1040
- }
1041
- )
1042
- ] });
1043
- });
1044
- var MultiLineTextField = React5.forwardRef(function MultiLineTextFieldInner({ onChange, ...props }, forwardRef12) {
1045
- const {
1046
- className,
1047
- showCount = false,
1048
- showLabel = false,
1049
- label,
1050
- requiredText,
1051
- subLabel,
1052
- disabled = false,
1053
- required,
1054
- invalid = false,
1055
- assistiveText,
1056
- maxLength,
1057
- autoHeight = false,
1058
- rows: initialRows = 4
1059
- } = props;
1060
- const { visuallyHiddenProps } = (0, import_visually_hidden.useVisuallyHidden)();
1061
- const textareaRef = (0, import_react8.useRef)(null);
1062
- const ariaRef = (0, import_react8.useRef)(null);
1063
- const [count, setCount] = (0, import_react8.useState)(countCodePointsInString(props.value ?? ""));
1064
- const [rows, setRows] = (0, import_react8.useState)(initialRows);
1065
- const syncHeight = (0, import_react8.useCallback)(
1066
- (textarea) => {
1067
- const rows2 = (`${textarea.value}
1068
- `.match(/\n/gu)?.length ?? 0) || 1;
1069
- setRows(initialRows <= rows2 ? rows2 : initialRows);
1070
- },
1071
- [initialRows]
1072
- );
1073
- const nonControlled = props.value === void 0;
1074
- const handleChange = (0, import_react8.useCallback)(
1075
- (value) => {
1076
- const count2 = countCodePointsInString(value);
1077
- if (maxLength !== void 0 && count2 > maxLength) {
1078
- return;
1079
- }
1080
- if (nonControlled) {
1081
- setCount(count2);
1082
- }
1083
- if (autoHeight && textareaRef.current !== null) {
1084
- syncHeight(textareaRef.current);
1085
- }
1086
- onChange?.(value);
1087
- },
1088
- [autoHeight, maxLength, nonControlled, onChange, syncHeight]
1089
- );
1090
- (0, import_react8.useEffect)(() => {
1091
- setCount(countCodePointsInString(props.value ?? ""));
1092
- }, [props.value]);
1093
- const { inputProps, labelProps, descriptionProps, errorMessageProps } = (0, import_textfield.useTextField)(
1094
- {
1095
- inputElementType: "textarea",
1096
- isDisabled: disabled,
1097
- isRequired: required,
1098
- validationState: invalid ? "invalid" : "valid",
1099
- description: !invalid && assistiveText,
1100
- errorMessage: invalid && assistiveText,
1101
- onChange: handleChange,
1102
- ...props
1103
- },
1104
- ariaRef
1105
- );
1106
- (0, import_react8.useEffect)(() => {
1107
- if (autoHeight && textareaRef.current !== null) {
1108
- syncHeight(textareaRef.current);
1109
- }
1110
- }, [autoHeight, syncHeight]);
1111
- return /* @__PURE__ */ (0, import_jsx_runtime10.jsxs)(TextFieldRoot, { className, isDisabled: disabled, children: [
1112
- /* @__PURE__ */ (0, import_jsx_runtime10.jsx)(
1113
- TextFieldLabel,
1114
- {
1115
- label,
1116
- requiredText,
1117
- required,
1118
- subLabel,
1119
- ...labelProps,
1120
- ...!showLabel ? visuallyHiddenProps : {}
1121
- }
1122
- ),
1123
- /* @__PURE__ */ (0, import_jsx_runtime10.jsxs)(
1124
- StyledTextareaContainer,
1125
- {
1126
- invalid,
1127
- rows: showCount ? rows + 1 : rows,
1128
- children: [
1129
- /* @__PURE__ */ (0, import_jsx_runtime10.jsx)(
1130
- StyledTextarea,
1131
- {
1132
- ref: mergeRefs(textareaRef, forwardRef12, ariaRef),
1133
- rows,
1134
- noBottomPadding: showCount,
1135
- ...inputProps
1136
- }
1137
- ),
1138
- showCount && /* @__PURE__ */ (0, import_jsx_runtime10.jsx)(MultiLineCounter, { children: maxLength !== void 0 ? `${count}/${maxLength}` : count })
1139
- ]
1140
- }
1141
- ),
1142
- assistiveText != null && assistiveText.length !== 0 && /* @__PURE__ */ (0, import_jsx_runtime10.jsx)(
1143
- AssistiveText,
1144
- {
1145
- invalid,
1146
- ...invalid ? errorMessageProps : descriptionProps,
1147
- children: assistiveText
1148
- }
1149
- )
1150
- ] });
1151
- });
1018
+ /* @__PURE__ */ (0, import_jsx_runtime10.jsxs)(StyledInputContainer, { children: [
1019
+ /* @__PURE__ */ (0, import_jsx_runtime10.jsx)(PrefixContainer, { ref: prefixRef, children: /* @__PURE__ */ (0, import_jsx_runtime10.jsx)(Affix, { children: prefix }) }),
1020
+ /* @__PURE__ */ (0, import_jsx_runtime10.jsx)(
1021
+ StyledInput,
1022
+ {
1023
+ ref: mergeRefs(forwardRef16, ariaRef),
1024
+ invalid,
1025
+ extraLeftPadding: prefixWidth,
1026
+ extraRightPadding: suffixWidth,
1027
+ ...inputProps
1028
+ }
1029
+ ),
1030
+ /* @__PURE__ */ (0, import_jsx_runtime10.jsxs)(SuffixContainer, { ref: suffixRef, children: [
1031
+ /* @__PURE__ */ (0, import_jsx_runtime10.jsx)(Affix, { children: suffix }),
1032
+ showCount && /* @__PURE__ */ (0, import_jsx_runtime10.jsx)(SingleLineCounter, { children: maxLength !== void 0 ? `${count}/${maxLength}` : count })
1033
+ ] })
1034
+ ] }),
1035
+ assistiveText != null && assistiveText.length !== 0 && /* @__PURE__ */ (0, import_jsx_runtime10.jsx)(
1036
+ AssistiveText,
1037
+ {
1038
+ invalid,
1039
+ ...invalid ? errorMessageProps : descriptionProps,
1040
+ children: assistiveText
1041
+ }
1042
+ )
1043
+ ] });
1044
+ }
1045
+ );
1046
+ var TextField_default = TextField;
1152
1047
  var TextFieldRoot = import_styled_components10.default.div`
1153
1048
  display: flex;
1154
1049
  flex-direction: column;
@@ -1156,7 +1051,7 @@ var TextFieldRoot = import_styled_components10.default.div`
1156
1051
  ${(p) => p.isDisabled && { opacity: p.theme.elementEffect.disabled.opacity }}
1157
1052
  `;
1158
1053
  var TextFieldLabel = (0, import_styled_components10.default)(FieldLabel_default)`
1159
- ${theme3((o) => o.margin.bottom(8))}
1054
+ ${theme((o) => o.margin.bottom(8))}
1160
1055
  `;
1161
1056
  var StyledInputContainer = import_styled_components10.default.div`
1162
1057
  height: 40px;
@@ -1182,7 +1077,7 @@ var SuffixContainer = import_styled_components10.default.span`
1182
1077
  var Affix = import_styled_components10.default.span`
1183
1078
  user-select: none;
1184
1079
 
1185
- ${theme3((o) => [o.typography(14).preserveHalfLeading, o.font.text2])}
1080
+ ${theme((o) => [o.typography(14).preserveHalfLeading, o.font.text2])}
1186
1081
  `;
1187
1082
  var StyledInput = import_styled_components10.default.input`
1188
1083
  border: none;
@@ -1204,7 +1099,7 @@ var StyledInput = import_styled_components10.default.input`
1204
1099
  /* Display box-shadow for iOS Safari */
1205
1100
  appearance: none;
1206
1101
 
1207
- ${(p) => theme3((o) => [
1102
+ ${(p) => theme((o) => [
1208
1103
  o.bg.surface3.hover,
1209
1104
  o.outline.default.focus,
1210
1105
  p.invalid && o.outline.assertive,
@@ -1212,37 +1107,170 @@ var StyledInput = import_styled_components10.default.input`
1212
1107
  ])}
1213
1108
 
1214
1109
  &::placeholder {
1215
- ${theme3((o) => o.font.text3)}
1110
+ ${theme((o) => o.font.text3)}
1111
+ }
1112
+ `;
1113
+ var SingleLineCounter = import_styled_components10.default.span`
1114
+ ${theme((o) => [o.typography(14).preserveHalfLeading, o.font.text3])}
1115
+ `;
1116
+ var AssistiveText = import_styled_components10.default.p`
1117
+ ${(p) => theme((o) => [
1118
+ o.typography(14),
1119
+ o.margin.top(8),
1120
+ o.margin.bottom(0),
1121
+ o.font[p.invalid ? "assertive" : "text1"]
1122
+ ])}
1123
+ `;
1124
+
1125
+ // src/components/TextArea/index.tsx
1126
+ var import_textfield2 = require("@react-aria/textfield");
1127
+ var import_visually_hidden2 = require("@react-aria/visually-hidden");
1128
+ var import_react9 = __toESM(require("react"));
1129
+ var import_styled_components11 = __toESM(require("styled-components"));
1130
+ var import_jsx_runtime11 = require("react/jsx-runtime");
1131
+ var TextArea = import_react9.default.forwardRef(
1132
+ function TextAreaInner({ onChange, ...props }, forwardRef16) {
1133
+ const {
1134
+ className,
1135
+ showCount = false,
1136
+ showLabel = false,
1137
+ label,
1138
+ requiredText,
1139
+ subLabel,
1140
+ disabled = false,
1141
+ required,
1142
+ invalid = false,
1143
+ assistiveText,
1144
+ maxLength,
1145
+ autoHeight = false,
1146
+ rows: initialRows = 4
1147
+ } = props;
1148
+ const { visuallyHiddenProps } = (0, import_visually_hidden2.useVisuallyHidden)();
1149
+ const textareaRef = (0, import_react9.useRef)(null);
1150
+ const ariaRef = (0, import_react9.useRef)(null);
1151
+ const [count, setCount] = (0, import_react9.useState)(
1152
+ countCodePointsInString(props.value ?? "")
1153
+ );
1154
+ const [rows, setRows] = (0, import_react9.useState)(initialRows);
1155
+ const syncHeight = (0, import_react9.useCallback)(
1156
+ (textarea) => {
1157
+ const rows2 = (`${textarea.value}
1158
+ `.match(/\n/gu)?.length ?? 0) || 1;
1159
+ setRows(initialRows <= rows2 ? rows2 : initialRows);
1160
+ },
1161
+ [initialRows]
1162
+ );
1163
+ const nonControlled = props.value === void 0;
1164
+ const handleChange = (0, import_react9.useCallback)(
1165
+ (value) => {
1166
+ const count2 = countCodePointsInString(value);
1167
+ if (maxLength !== void 0 && count2 > maxLength) {
1168
+ return;
1169
+ }
1170
+ if (nonControlled) {
1171
+ setCount(count2);
1172
+ }
1173
+ if (autoHeight && textareaRef.current !== null) {
1174
+ syncHeight(textareaRef.current);
1175
+ }
1176
+ onChange?.(value);
1177
+ },
1178
+ [autoHeight, maxLength, nonControlled, onChange, syncHeight]
1179
+ );
1180
+ (0, import_react9.useEffect)(() => {
1181
+ setCount(countCodePointsInString(props.value ?? ""));
1182
+ }, [props.value]);
1183
+ const { inputProps, labelProps, descriptionProps, errorMessageProps } = (0, import_textfield2.useTextField)(
1184
+ {
1185
+ inputElementType: "textarea",
1186
+ isDisabled: disabled,
1187
+ isRequired: required,
1188
+ validationState: invalid ? "invalid" : "valid",
1189
+ description: !invalid && assistiveText,
1190
+ errorMessage: invalid && assistiveText,
1191
+ onChange: handleChange,
1192
+ ...props
1193
+ },
1194
+ ariaRef
1195
+ );
1196
+ (0, import_react9.useEffect)(() => {
1197
+ if (autoHeight && textareaRef.current !== null) {
1198
+ syncHeight(textareaRef.current);
1199
+ }
1200
+ }, [autoHeight, syncHeight]);
1201
+ return /* @__PURE__ */ (0, import_jsx_runtime11.jsxs)(TextFieldRoot2, { className, isDisabled: disabled, children: [
1202
+ /* @__PURE__ */ (0, import_jsx_runtime11.jsx)(
1203
+ TextFieldLabel2,
1204
+ {
1205
+ label,
1206
+ requiredText,
1207
+ required,
1208
+ subLabel,
1209
+ ...labelProps,
1210
+ ...!showLabel ? visuallyHiddenProps : {}
1211
+ }
1212
+ ),
1213
+ /* @__PURE__ */ (0, import_jsx_runtime11.jsxs)(
1214
+ StyledTextareaContainer,
1215
+ {
1216
+ invalid,
1217
+ rows: showCount ? rows + 1 : rows,
1218
+ children: [
1219
+ /* @__PURE__ */ (0, import_jsx_runtime11.jsx)(
1220
+ StyledTextarea,
1221
+ {
1222
+ ref: mergeRefs(textareaRef, forwardRef16, ariaRef),
1223
+ rows,
1224
+ noBottomPadding: showCount,
1225
+ ...inputProps
1226
+ }
1227
+ ),
1228
+ showCount && /* @__PURE__ */ (0, import_jsx_runtime11.jsx)(MultiLineCounter, { children: maxLength !== void 0 ? `${count}/${maxLength}` : count })
1229
+ ]
1230
+ }
1231
+ ),
1232
+ assistiveText != null && assistiveText.length !== 0 && /* @__PURE__ */ (0, import_jsx_runtime11.jsx)(
1233
+ AssistiveText2,
1234
+ {
1235
+ invalid,
1236
+ ...invalid ? errorMessageProps : descriptionProps,
1237
+ children: assistiveText
1238
+ }
1239
+ )
1240
+ ] });
1216
1241
  }
1242
+ );
1243
+ var TextArea_default = TextArea;
1244
+ var TextFieldRoot2 = import_styled_components11.default.div`
1245
+ display: flex;
1246
+ flex-direction: column;
1247
+
1248
+ ${(p) => p.isDisabled && { opacity: p.theme.elementEffect.disabled.opacity }}
1249
+ `;
1250
+ var TextFieldLabel2 = (0, import_styled_components11.default)(FieldLabel_default)`
1251
+ ${theme((o) => o.margin.bottom(8))}
1217
1252
  `;
1218
- var StyledTextareaContainer = import_styled_components10.default.div`
1253
+ var StyledTextareaContainer = import_styled_components11.default.div`
1219
1254
  position: relative;
1220
1255
  overflow: hidden;
1221
1256
  padding: 0 8px;
1222
1257
 
1223
- ${(p) => theme3((o) => [
1258
+ ${(p) => theme((o) => [
1224
1259
  o.bg.surface3.hover,
1225
1260
  p.invalid && o.outline.assertive,
1226
1261
  o.font.text2,
1227
1262
  o.borderRadius(4)
1228
1263
  ])}
1229
1264
 
1230
- /**
1231
- * FIXME: o.outline.default を &:focus-within 内に書いてると、外れるときに transition が効かない
1232
- * 本来 o.outline.default.focus と書けば足してくれるような transition の内容を一旦明示している
1233
- * o.outline.default.focusWithin のようなものがあればこの行は不要になるはず
1234
- */
1235
- transition: box-shadow 0.2s;
1236
-
1237
1265
  &:focus-within {
1238
- ${(p) => theme3((o) => p.invalid ? o.outline.assertive : o.outline.default)}
1266
+ ${(p) => theme((o) => p.invalid ? o.outline.assertive : o.outline.default)}
1239
1267
  }
1240
1268
 
1241
- ${({ rows }) => import_styled_components10.css`
1269
+ ${({ rows }) => import_styled_components11.css`
1242
1270
  height: calc(22px * ${rows} + 18px);
1243
1271
  `};
1244
1272
  `;
1245
- var StyledTextarea = import_styled_components10.default.textarea`
1273
+ var StyledTextarea = import_styled_components11.default.textarea`
1246
1274
  border: none;
1247
1275
  outline: none;
1248
1276
  resize: none;
@@ -1257,7 +1285,7 @@ var StyledTextarea = import_styled_components10.default.textarea`
1257
1285
  line-height: calc(22px / 0.875);
1258
1286
  padding: calc(9px / 0.875) 0 ${(p) => p.noBottomPadding ? 0 : ""};
1259
1287
 
1260
- ${({ rows = 1 }) => import_styled_components10.css`
1288
+ ${({ rows = 1 }) => import_styled_components11.css`
1261
1289
  height: calc(22px / 0.875 * ${rows});
1262
1290
  `};
1263
1291
 
@@ -1267,7 +1295,7 @@ var StyledTextarea = import_styled_components10.default.textarea`
1267
1295
  background: none;
1268
1296
 
1269
1297
  &::placeholder {
1270
- ${theme3((o) => o.font.text3)}
1298
+ ${theme((o) => o.font.text3)}
1271
1299
  }
1272
1300
 
1273
1301
  /* Hide scrollbar for Chrome, Safari and Opera */
@@ -1278,18 +1306,15 @@ var StyledTextarea = import_styled_components10.default.textarea`
1278
1306
  -ms-overflow-style: none; /* IE and Edge */
1279
1307
  scrollbar-width: none; /* Firefox */
1280
1308
  `;
1281
- var SingleLineCounter = import_styled_components10.default.span`
1282
- ${theme3((o) => [o.typography(14).preserveHalfLeading, o.font.text3])}
1283
- `;
1284
- var MultiLineCounter = import_styled_components10.default.span`
1309
+ var MultiLineCounter = import_styled_components11.default.span`
1285
1310
  position: absolute;
1286
1311
  bottom: 9px;
1287
1312
  right: 8px;
1288
1313
 
1289
- ${theme3((o) => [o.typography(14).preserveHalfLeading, o.font.text3])}
1314
+ ${theme((o) => [o.typography(14).preserveHalfLeading, o.font.text3])}
1290
1315
  `;
1291
- var AssistiveText = import_styled_components10.default.p`
1292
- ${(p) => theme3((o) => [
1316
+ var AssistiveText2 = import_styled_components11.default.p`
1317
+ ${(p) => theme((o) => [
1293
1318
  o.typography(14),
1294
1319
  o.margin.top(8),
1295
1320
  o.margin.bottom(0),
@@ -1298,11 +1323,11 @@ var AssistiveText = import_styled_components10.default.p`
1298
1323
  `;
1299
1324
 
1300
1325
  // src/components/Icon/index.tsx
1301
- var React6 = __toESM(require("react"));
1326
+ var React7 = __toESM(require("react"));
1302
1327
  var import_icons = require("@charcoal-ui/icons");
1303
- var import_jsx_runtime11 = require("react/jsx-runtime");
1304
- var Icon = React6.forwardRef(function IconInner({ name, scale, unsafeNonGuidelineScale, className, ...rest }, ref) {
1305
- return /* @__PURE__ */ (0, import_jsx_runtime11.jsx)(
1328
+ var import_jsx_runtime12 = require("react/jsx-runtime");
1329
+ var Icon = React7.forwardRef(function IconInner({ name, scale, unsafeNonGuidelineScale, className, ...rest }, ref) {
1330
+ return /* @__PURE__ */ (0, import_jsx_runtime12.jsx)(
1306
1331
  "pixiv-icon",
1307
1332
  {
1308
1333
  ref,
@@ -1317,10 +1342,10 @@ var Icon = React6.forwardRef(function IconInner({ name, scale, unsafeNonGuidelin
1317
1342
  var Icon_default = Icon;
1318
1343
 
1319
1344
  // src/components/Modal/index.tsx
1320
- var import_react9 = require("react");
1321
- var React7 = __toESM(require("react"));
1345
+ var import_react10 = require("react");
1346
+ var React8 = __toESM(require("react"));
1322
1347
  var import_overlays2 = require("@react-aria/overlays");
1323
- var import_styled_components11 = __toESM(require("styled-components"));
1348
+ var import_styled_components12 = __toESM(require("styled-components"));
1324
1349
  var import_focus = require("@react-aria/focus");
1325
1350
  var import_dialog = require("@react-aria/dialog");
1326
1351
 
@@ -1332,26 +1357,23 @@ function columnSystem(span, column, gutter) {
1332
1357
  }
1333
1358
 
1334
1359
  // src/components/Modal/index.tsx
1335
- var import_utils5 = require("@charcoal-ui/utils");
1336
- var import_styled11 = require("@charcoal-ui/styled");
1360
+ var import_utils6 = require("@charcoal-ui/utils");
1361
+ var import_styled12 = require("@charcoal-ui/styled");
1337
1362
  var import_react_spring = require("react-spring");
1338
- var import_jsx_runtime12 = require("react/jsx-runtime");
1363
+ var import_utils7 = require("@react-aria/utils");
1364
+ var import_jsx_runtime13 = require("react/jsx-runtime");
1339
1365
  var DEFAULT_Z_INDEX = 10;
1340
- function Modal({
1341
- children,
1342
- zIndex = DEFAULT_Z_INDEX,
1343
- portalContainer,
1344
- ...props
1345
- }) {
1366
+ var Modal = (0, import_react10.forwardRef)(function ModalInner({ children, zIndex = DEFAULT_Z_INDEX, portalContainer, ...props }, external) {
1346
1367
  const {
1347
1368
  title,
1348
1369
  size = "M",
1349
1370
  bottomSheet = false,
1350
1371
  isDismissable,
1351
1372
  onClose,
1373
+ className,
1352
1374
  isOpen = false
1353
1375
  } = props;
1354
- const ref = (0, import_react9.useRef)(null);
1376
+ const ref = (0, import_utils7.useObjectRef)(external);
1355
1377
  const { overlayProps, underlayProps } = (0, import_overlays2.useOverlay)(props, ref);
1356
1378
  const { modalProps } = (0, import_overlays2.useModalOverlay)(
1357
1379
  props,
@@ -1368,8 +1390,8 @@ function Modal({
1368
1390
  ref
1369
1391
  );
1370
1392
  const { dialogProps, titleProps } = (0, import_dialog.useDialog)(props, ref);
1371
- const theme4 = (0, import_styled_components11.useTheme)();
1372
- const isMobile = (0, import_styled11.useMedia)((0, import_utils5.maxWidth)(theme4.breakpoint.screen1)) ?? false;
1393
+ const theme3 = (0, import_styled_components12.useTheme)();
1394
+ const isMobile = (0, import_styled12.useMedia)((0, import_utils6.maxWidth)(theme3.breakpoint.screen1)) ?? false;
1373
1395
  const transitionEnabled = isMobile && bottomSheet !== false;
1374
1396
  const transition = (0, import_react_spring.useTransition)(isOpen, {
1375
1397
  from: {
@@ -1388,13 +1410,13 @@ function Modal({
1388
1410
  });
1389
1411
  const showDismiss = !isMobile || bottomSheet !== true;
1390
1412
  return transition(
1391
- ({ backgroundColor, transform }, item) => item && /* @__PURE__ */ (0, import_jsx_runtime12.jsx)(import_overlays2.Overlay, { portalContainer, children: /* @__PURE__ */ (0, import_jsx_runtime12.jsx)(
1413
+ ({ backgroundColor, transform }, item) => item && /* @__PURE__ */ (0, import_jsx_runtime13.jsx)(import_overlays2.Overlay, { portalContainer, children: /* @__PURE__ */ (0, import_jsx_runtime13.jsx)(
1392
1414
  ModalBackground,
1393
1415
  {
1394
1416
  zIndex,
1395
1417
  ...underlayProps,
1396
1418
  style: transitionEnabled ? { backgroundColor } : {},
1397
- children: /* @__PURE__ */ (0, import_jsx_runtime12.jsx)(import_focus.FocusScope, { contain: true, restoreFocus: true, autoFocus: true, children: /* @__PURE__ */ (0, import_jsx_runtime12.jsx)(DialogContainer, { bottomSheet, size, children: /* @__PURE__ */ (0, import_jsx_runtime12.jsx)(
1419
+ children: /* @__PURE__ */ (0, import_jsx_runtime13.jsx)(import_focus.FocusScope, { contain: true, restoreFocus: true, autoFocus: true, children: /* @__PURE__ */ (0, import_jsx_runtime13.jsx)(DialogContainer, { bottomSheet, size, children: /* @__PURE__ */ (0, import_jsx_runtime13.jsx)(
1398
1420
  ModalDialog,
1399
1421
  {
1400
1422
  ref,
@@ -1404,13 +1426,14 @@ function Modal({
1404
1426
  style: transitionEnabled ? { transform } : {},
1405
1427
  size,
1406
1428
  bottomSheet,
1407
- children: /* @__PURE__ */ (0, import_jsx_runtime12.jsxs)(
1429
+ className,
1430
+ children: /* @__PURE__ */ (0, import_jsx_runtime13.jsxs)(
1408
1431
  ModalContext.Provider,
1409
1432
  {
1410
1433
  value: { titleProps, title, close: onClose, showDismiss },
1411
1434
  children: [
1412
1435
  children,
1413
- isDismissable === true && /* @__PURE__ */ (0, import_jsx_runtime12.jsx)(
1436
+ isDismissable === true && /* @__PURE__ */ (0, import_jsx_runtime13.jsx)(
1414
1437
  ModalCrossButton,
1415
1438
  {
1416
1439
  size: "S",
@@ -1426,14 +1449,15 @@ function Modal({
1426
1449
  }
1427
1450
  ) })
1428
1451
  );
1429
- }
1430
- var ModalContext = React7.createContext({
1452
+ });
1453
+ var Modal_default = (0, import_react10.memo)(Modal);
1454
+ var ModalContext = React8.createContext({
1431
1455
  titleProps: {},
1432
1456
  title: "",
1433
1457
  close: void 0,
1434
1458
  showDismiss: true
1435
1459
  });
1436
- var ModalBackground = (0, import_react_spring.animated)(import_styled_components11.default.div`
1460
+ var ModalBackground = (0, import_react_spring.animated)(import_styled_components12.default.div`
1437
1461
  z-index: ${({ zIndex }) => zIndex};
1438
1462
  overflow: scroll;
1439
1463
  display: flex;
@@ -1445,7 +1469,7 @@ var ModalBackground = (0, import_react_spring.animated)(import_styled_components
1445
1469
 
1446
1470
  ${theme((o) => [o.bg.surface4])}
1447
1471
  `);
1448
- var DialogContainer = import_styled_components11.default.div`
1472
+ var DialogContainer = import_styled_components12.default.div`
1449
1473
  position: relative;
1450
1474
  margin: auto;
1451
1475
  padding: 24px 0;
@@ -1466,9 +1490,9 @@ var DialogContainer = import_styled_components11.default.div`
1466
1490
  }
1467
1491
  }}px;
1468
1492
 
1469
- @media ${({ theme: theme4 }) => (0, import_utils5.maxWidth)(theme4.breakpoint.screen1)} {
1493
+ @media ${({ theme: theme3 }) => (0, import_utils6.maxWidth)(theme3.breakpoint.screen1)} {
1470
1494
  width: calc(100% - 48px);
1471
- ${(p) => p.bottomSheet !== false && import_styled_components11.css`
1495
+ ${(p) => p.bottomSheet !== false && import_styled_components12.css`
1472
1496
  margin: 0;
1473
1497
  padding: 0;
1474
1498
  bottom: 0;
@@ -1478,22 +1502,22 @@ var DialogContainer = import_styled_components11.default.div`
1478
1502
  `}
1479
1503
  }
1480
1504
  `;
1481
- var ModalDialog = (0, import_react_spring.animated)(import_styled_components11.default.div`
1505
+ var ModalDialog = (0, import_react_spring.animated)(import_styled_components12.default.div`
1482
1506
  position: relative;
1483
1507
  margin: auto;
1484
1508
  padding: 24px 0;
1485
1509
 
1486
1510
  ${theme((o) => [o.bg.background1, o.borderRadius(24)])}
1487
- @media ${({ theme: theme4 }) => (0, import_utils5.maxWidth)(theme4.breakpoint.screen1)} {
1488
- ${(p) => p.bottomSheet !== false && import_styled_components11.css`
1511
+ @media ${({ theme: theme3 }) => (0, import_utils6.maxWidth)(theme3.breakpoint.screen1)} {
1512
+ ${(p) => p.bottomSheet !== false && import_styled_components12.css`
1489
1513
  border-radius: 0;
1490
- ${p.bottomSheet === "full" && import_styled_components11.css`
1514
+ ${p.bottomSheet === "full" && import_styled_components12.css`
1491
1515
  height: 100%;
1492
1516
  `}
1493
1517
  `}
1494
1518
  }
1495
1519
  `);
1496
- var ModalCrossButton = (0, import_styled_components11.default)(IconButton_default)`
1520
+ var ModalCrossButton = (0, import_styled_components12.default)(IconButton_default)`
1497
1521
  position: absolute;
1498
1522
  top: 8px;
1499
1523
  right: 8px;
@@ -1501,37 +1525,37 @@ var ModalCrossButton = (0, import_styled_components11.default)(IconButton_defaul
1501
1525
  ${theme((o) => [o.font.text3.hover.press])}
1502
1526
  `;
1503
1527
  function ModalTitle(props) {
1504
- const { titleProps, title } = (0, import_react9.useContext)(ModalContext);
1505
- return /* @__PURE__ */ (0, import_jsx_runtime12.jsx)(ModalHeading, { ...titleProps, ...props, children: title });
1528
+ const { titleProps, title } = (0, import_react10.useContext)(ModalContext);
1529
+ return /* @__PURE__ */ (0, import_jsx_runtime13.jsx)(ModalHeading, { ...titleProps, ...props, children: title });
1506
1530
  }
1507
- var ModalHeading = import_styled_components11.default.h3`
1531
+ var ModalHeading = import_styled_components12.default.h3`
1508
1532
  margin: 0;
1509
1533
  font-weight: inherit;
1510
1534
  font-size: inherit;
1511
1535
  `;
1512
1536
 
1513
1537
  // src/components/Modal/ModalPlumbing.tsx
1514
- var import_styled_components12 = __toESM(require("styled-components"));
1515
- var import_jsx_runtime13 = require("react/jsx-runtime");
1538
+ var import_styled_components13 = __toESM(require("styled-components"));
1539
+ var import_jsx_runtime14 = require("react/jsx-runtime");
1516
1540
  function ModalHeader() {
1517
- return /* @__PURE__ */ (0, import_jsx_runtime13.jsx)(ModalHeaderRoot, { children: /* @__PURE__ */ (0, import_jsx_runtime13.jsx)(StyledModalTitle, {}) });
1541
+ return /* @__PURE__ */ (0, import_jsx_runtime14.jsx)(ModalHeaderRoot, { children: /* @__PURE__ */ (0, import_jsx_runtime14.jsx)(StyledModalTitle, {}) });
1518
1542
  }
1519
- var ModalHeaderRoot = import_styled_components12.default.div`
1543
+ var ModalHeaderRoot = import_styled_components13.default.div`
1520
1544
  height: 64px;
1521
1545
  display: grid;
1522
1546
  align-content: center;
1523
1547
  justify-content: center;
1524
1548
  `;
1525
- var StyledModalTitle = (0, import_styled_components12.default)(ModalTitle)`
1549
+ var StyledModalTitle = (0, import_styled_components13.default)(ModalTitle)`
1526
1550
  ${theme((o) => [o.font.text1, o.typography(16).bold])}
1527
1551
  `;
1528
- var ModalAlign = import_styled_components12.default.div`
1552
+ var ModalAlign = import_styled_components13.default.div`
1529
1553
  ${theme((o) => [o.padding.horizontal(16)])}
1530
1554
  `;
1531
- var ModalBody = import_styled_components12.default.div`
1555
+ var ModalBody = import_styled_components13.default.div`
1532
1556
  ${theme((o) => [o.padding.bottom(40)])}
1533
1557
  `;
1534
- var ModalButtons = import_styled_components12.default.div`
1558
+ var ModalButtons = import_styled_components13.default.div`
1535
1559
  display: grid;
1536
1560
  grid-auto-flow: row;
1537
1561
  grid-row-gap: 8px;
@@ -1540,17 +1564,26 @@ var ModalButtons = import_styled_components12.default.div`
1540
1564
  `;
1541
1565
 
1542
1566
  // src/components/LoadingSpinner/index.tsx
1543
- var import_react10 = require("react");
1544
- var import_styled_components13 = __toESM(require("styled-components"));
1545
- var import_jsx_runtime14 = require("react/jsx-runtime");
1546
- function LoadingSpinner({
1547
- size = 48,
1548
- padding = 16,
1549
- transparent = false
1550
- }) {
1551
- return /* @__PURE__ */ (0, import_jsx_runtime14.jsx)(LoadingSpinnerRoot, { size, padding, transparent, children: /* @__PURE__ */ (0, import_jsx_runtime14.jsx)(LoadingSpinnerIcon, {}) });
1552
- }
1553
- var LoadingSpinnerRoot = import_styled_components13.default.div.attrs({ role: "progressbar" })`
1567
+ var import_react11 = require("react");
1568
+ var import_styled_components14 = __toESM(require("styled-components"));
1569
+ var import_jsx_runtime15 = require("react/jsx-runtime");
1570
+ var LoadingSpinner = (0, import_react11.forwardRef)(
1571
+ function LoadingSpinnerInner({ size = 48, padding = 16, transparent = false, className }, ref) {
1572
+ return /* @__PURE__ */ (0, import_jsx_runtime15.jsx)(
1573
+ LoadingSpinnerRoot,
1574
+ {
1575
+ size,
1576
+ padding,
1577
+ transparent,
1578
+ className,
1579
+ ref,
1580
+ children: /* @__PURE__ */ (0, import_jsx_runtime15.jsx)(LoadingSpinnerIcon, {})
1581
+ }
1582
+ );
1583
+ }
1584
+ );
1585
+ var LoadingSpinner_default = (0, import_react11.memo)(LoadingSpinner);
1586
+ var LoadingSpinnerRoot = import_styled_components14.default.div.attrs({ role: "progressbar" })`
1554
1587
  box-sizing: content-box;
1555
1588
  margin: auto;
1556
1589
  padding: ${(props) => props.padding}px;
@@ -1564,7 +1597,7 @@ var LoadingSpinnerRoot = import_styled_components13.default.div.attrs({ role: "p
1564
1597
  transparent ? o.bg.transparent : o.bg.background1
1565
1598
  ])}
1566
1599
  `;
1567
- var scaleout = import_styled_components13.keyframes`
1600
+ var scaleout = import_styled_components14.keyframes`
1568
1601
  from {
1569
1602
  transform: scale(0);
1570
1603
  opacity: 1;
@@ -1575,7 +1608,7 @@ var scaleout = import_styled_components13.keyframes`
1575
1608
  opacity: 0;
1576
1609
  }
1577
1610
  `;
1578
- var Icon2 = import_styled_components13.default.div.attrs({ role: "presentation" })`
1611
+ var Icon2 = import_styled_components14.default.div.attrs({ role: "presentation" })`
1579
1612
  width: 1em;
1580
1613
  height: 1em;
1581
1614
  border-radius: 1em;
@@ -1587,10 +1620,10 @@ var Icon2 = import_styled_components13.default.div.attrs({ role: "presentation"
1587
1620
  animation: none;
1588
1621
  }
1589
1622
  `;
1590
- var LoadingSpinnerIcon = (0, import_react10.forwardRef)(
1623
+ var LoadingSpinnerIcon = (0, import_react11.forwardRef)(
1591
1624
  function LoadingSpinnerIcon2({ once = false }, ref) {
1592
- const iconRef = (0, import_react10.useRef)(null);
1593
- (0, import_react10.useImperativeHandle)(ref, () => ({
1625
+ const iconRef = (0, import_react11.useRef)(null);
1626
+ (0, import_react11.useImperativeHandle)(ref, () => ({
1594
1627
  restart: () => {
1595
1628
  if (!iconRef.current) {
1596
1629
  return;
@@ -1600,26 +1633,26 @@ var LoadingSpinnerIcon = (0, import_react10.forwardRef)(
1600
1633
  delete iconRef.current.dataset.resetAnimation;
1601
1634
  }
1602
1635
  }));
1603
- return /* @__PURE__ */ (0, import_jsx_runtime14.jsx)(Icon2, { ref: iconRef, once });
1636
+ return /* @__PURE__ */ (0, import_jsx_runtime15.jsx)(Icon2, { ref: iconRef, once });
1604
1637
  }
1605
1638
  );
1606
1639
 
1607
1640
  // src/components/DropdownSelector/index.tsx
1608
- var import_react17 = require("react");
1609
- var import_styled_components16 = __toESM(require("styled-components"));
1610
- var import_utils6 = require("@charcoal-ui/utils");
1641
+ var import_react18 = require("react");
1642
+ var import_styled_components17 = __toESM(require("styled-components"));
1643
+ var import_utils8 = require("@charcoal-ui/utils");
1611
1644
 
1612
1645
  // src/components/DropdownSelector/DropdownPopover.tsx
1613
- var import_react12 = require("react");
1646
+ var import_react13 = require("react");
1614
1647
 
1615
1648
  // src/components/DropdownSelector/Popover/index.tsx
1616
- var import_react11 = require("react");
1649
+ var import_react12 = require("react");
1617
1650
  var import_overlays3 = require("@react-aria/overlays");
1618
- var import_styled_components14 = __toESM(require("styled-components"));
1619
- var import_jsx_runtime15 = require("react/jsx-runtime");
1651
+ var import_styled_components15 = __toESM(require("styled-components"));
1652
+ var import_jsx_runtime16 = require("react/jsx-runtime");
1620
1653
  var _empty = () => null;
1621
1654
  function Popover(props) {
1622
- const defaultPopoverRef = (0, import_react11.useRef)(null);
1655
+ const defaultPopoverRef = (0, import_react12.useRef)(null);
1623
1656
  const finalPopoverRef = props.popoverRef === void 0 ? defaultPopoverRef : props.popoverRef;
1624
1657
  const { popoverProps, underlayProps } = (0, import_overlays3.usePopover)(
1625
1658
  {
@@ -1637,16 +1670,16 @@ function Popover(props) {
1637
1670
  );
1638
1671
  if (!props.isOpen)
1639
1672
  return null;
1640
- return /* @__PURE__ */ (0, import_jsx_runtime15.jsxs)(import_overlays3.Overlay, { portalContainer: document.body, children: [
1641
- /* @__PURE__ */ (0, import_jsx_runtime15.jsx)("div", { ...underlayProps, style: { position: "fixed", inset: 0 } }),
1642
- /* @__PURE__ */ (0, import_jsx_runtime15.jsxs)(DropdownPopoverDiv, { ...popoverProps, ref: finalPopoverRef, children: [
1643
- /* @__PURE__ */ (0, import_jsx_runtime15.jsx)(import_overlays3.DismissButton, { onDismiss: () => props.onClose() }),
1673
+ return /* @__PURE__ */ (0, import_jsx_runtime16.jsxs)(import_overlays3.Overlay, { portalContainer: document.body, children: [
1674
+ /* @__PURE__ */ (0, import_jsx_runtime16.jsx)("div", { ...underlayProps, style: { position: "fixed", inset: 0 } }),
1675
+ /* @__PURE__ */ (0, import_jsx_runtime16.jsxs)(DropdownPopoverDiv, { ...popoverProps, ref: finalPopoverRef, children: [
1676
+ /* @__PURE__ */ (0, import_jsx_runtime16.jsx)(import_overlays3.DismissButton, { onDismiss: () => props.onClose() }),
1644
1677
  props.children,
1645
- /* @__PURE__ */ (0, import_jsx_runtime15.jsx)(import_overlays3.DismissButton, { onDismiss: () => props.onClose() })
1678
+ /* @__PURE__ */ (0, import_jsx_runtime16.jsx)(import_overlays3.DismissButton, { onDismiss: () => props.onClose() })
1646
1679
  ] })
1647
1680
  ] });
1648
1681
  }
1649
- var DropdownPopoverDiv = import_styled_components14.default.div`
1682
+ var DropdownPopoverDiv = import_styled_components15.default.div`
1650
1683
  margin: 4px 0;
1651
1684
  list-style: none;
1652
1685
  overflow: auto;
@@ -1661,15 +1694,15 @@ var DropdownPopoverDiv = import_styled_components14.default.div`
1661
1694
  `;
1662
1695
 
1663
1696
  // src/components/DropdownSelector/DropdownPopover.tsx
1664
- var import_jsx_runtime16 = require("react/jsx-runtime");
1697
+ var import_jsx_runtime17 = require("react/jsx-runtime");
1665
1698
  function DropdownPopover({ children, ...props }) {
1666
- const ref = (0, import_react12.useRef)(null);
1667
- (0, import_react12.useEffect)(() => {
1699
+ const ref = (0, import_react13.useRef)(null);
1700
+ (0, import_react13.useEffect)(() => {
1668
1701
  if (props.isOpen && ref.current && props.triggerRef.current) {
1669
1702
  ref.current.style.width = `${props.triggerRef.current.clientWidth}px`;
1670
1703
  }
1671
1704
  }, [props.triggerRef, props.isOpen]);
1672
- (0, import_react12.useEffect)(() => {
1705
+ (0, import_react13.useEffect)(() => {
1673
1706
  if (props.isOpen && props.value !== void 0) {
1674
1707
  const windowScrollY = window.scrollY;
1675
1708
  const windowScrollX = window.scrollX;
@@ -1681,7 +1714,7 @@ function DropdownPopover({ children, ...props }) {
1681
1714
  window.scrollTo(windowScrollX, windowScrollY);
1682
1715
  }
1683
1716
  }, [props.value, props.isOpen]);
1684
- return /* @__PURE__ */ (0, import_jsx_runtime16.jsx)(
1717
+ return /* @__PURE__ */ (0, import_jsx_runtime17.jsx)(
1685
1718
  Popover,
1686
1719
  {
1687
1720
  isOpen: props.isOpen,
@@ -1694,12 +1727,12 @@ function DropdownPopover({ children, ...props }) {
1694
1727
  }
1695
1728
 
1696
1729
  // src/components/DropdownSelector/utils/findPreviewRecursive.tsx
1697
- var import_react13 = __toESM(require("react"));
1730
+ var import_react14 = __toESM(require("react"));
1698
1731
  function findPreviewRecursive(children, value) {
1699
- const childArray = import_react13.default.Children.toArray(children);
1732
+ const childArray = import_react14.default.Children.toArray(children);
1700
1733
  for (let i = 0; i < childArray.length; i++) {
1701
1734
  const child = childArray[i];
1702
- if (import_react13.default.isValidElement(child)) {
1735
+ if (import_react14.default.isValidElement(child)) {
1703
1736
  if ("value" in child.props) {
1704
1737
  const childValue = child.props.value;
1705
1738
  if (childValue === value && "children" in child.props) {
@@ -1721,12 +1754,12 @@ function findPreviewRecursive(children, value) {
1721
1754
  }
1722
1755
 
1723
1756
  // src/components/DropdownSelector/MenuList/index.tsx
1724
- var import_react16 = require("react");
1725
- var import_styled_components15 = __toESM(require("styled-components"));
1757
+ var import_react17 = require("react");
1758
+ var import_styled_components16 = __toESM(require("styled-components"));
1726
1759
 
1727
1760
  // src/components/DropdownSelector/MenuList/MenuListContext.ts
1728
- var import_react14 = require("react");
1729
- var MenuListContext = (0, import_react14.createContext)({
1761
+ var import_react15 = require("react");
1762
+ var MenuListContext = (0, import_react15.createContext)({
1730
1763
  root: void 0,
1731
1764
  value: "",
1732
1765
  values: [],
@@ -1735,12 +1768,12 @@ var MenuListContext = (0, import_react14.createContext)({
1735
1768
  });
1736
1769
 
1737
1770
  // src/components/DropdownSelector/MenuList/internals/getValuesRecursive.tsx
1738
- var import_react15 = __toESM(require("react"));
1771
+ var import_react16 = __toESM(require("react"));
1739
1772
  function getValuesRecursive(children, values = []) {
1740
- const childArray = import_react15.default.Children.toArray(children);
1773
+ const childArray = import_react16.default.Children.toArray(children);
1741
1774
  for (let i = 0; i < childArray.length; i++) {
1742
1775
  const child = childArray[i];
1743
- if (import_react15.default.isValidElement(child)) {
1776
+ if (import_react16.default.isValidElement(child)) {
1744
1777
  const props = child.props;
1745
1778
  if ("value" in props && typeof props.value === "string") {
1746
1779
  const childValue = props.value;
@@ -1754,12 +1787,12 @@ function getValuesRecursive(children, values = []) {
1754
1787
  }
1755
1788
 
1756
1789
  // src/components/DropdownSelector/MenuList/index.tsx
1757
- var import_jsx_runtime17 = require("react/jsx-runtime");
1790
+ var import_jsx_runtime18 = require("react/jsx-runtime");
1758
1791
  function MenuList(props) {
1759
- const root = (0, import_react16.useRef)(null);
1792
+ const root = (0, import_react17.useRef)(null);
1760
1793
  const values = [];
1761
1794
  getValuesRecursive(props.children, values);
1762
- return /* @__PURE__ */ (0, import_jsx_runtime17.jsx)(StyledUl, { ref: root, children: /* @__PURE__ */ (0, import_jsx_runtime17.jsx)(
1795
+ return /* @__PURE__ */ (0, import_jsx_runtime18.jsx)(StyledUl, { ref: root, children: /* @__PURE__ */ (0, import_jsx_runtime18.jsx)(
1763
1796
  MenuListContext.Provider,
1764
1797
  {
1765
1798
  value: {
@@ -1774,20 +1807,20 @@ function MenuList(props) {
1774
1807
  }
1775
1808
  ) });
1776
1809
  }
1777
- var StyledUl = import_styled_components15.default.ul`
1810
+ var StyledUl = import_styled_components16.default.ul`
1778
1811
  padding: 0;
1779
1812
  margin: 0;
1780
1813
  `;
1781
1814
 
1782
1815
  // src/components/DropdownSelector/index.tsx
1783
- var import_jsx_runtime18 = require("react/jsx-runtime");
1816
+ var import_jsx_runtime19 = require("react/jsx-runtime");
1784
1817
  var defaultRequiredText = "*\u5FC5\u9808";
1785
1818
  function DropdownSelector(props) {
1786
- const triggerRef = (0, import_react17.useRef)(null);
1787
- const [isOpen, setIsOpen] = (0, import_react17.useState)(false);
1819
+ const triggerRef = (0, import_react18.useRef)(null);
1820
+ const [isOpen, setIsOpen] = (0, import_react18.useState)(false);
1788
1821
  const preview = findPreviewRecursive(props.children, props.value);
1789
- return /* @__PURE__ */ (0, import_jsx_runtime18.jsxs)(DropdownSelectorRoot, { "aria-disabled": props.disabled, children: [
1790
- props.showLabel === true && /* @__PURE__ */ (0, import_jsx_runtime18.jsx)(
1822
+ return /* @__PURE__ */ (0, import_jsx_runtime19.jsxs)(DropdownSelectorRoot, { "aria-disabled": props.disabled, children: [
1823
+ props.showLabel === true && /* @__PURE__ */ (0, import_jsx_runtime19.jsx)(
1791
1824
  DropdownFieldLabel,
1792
1825
  {
1793
1826
  label: props.label,
@@ -1796,7 +1829,7 @@ function DropdownSelector(props) {
1796
1829
  subLabel: props.subLabel
1797
1830
  }
1798
1831
  ),
1799
- /* @__PURE__ */ (0, import_jsx_runtime18.jsxs)(
1832
+ /* @__PURE__ */ (0, import_jsx_runtime19.jsxs)(
1800
1833
  DropdownButton,
1801
1834
  {
1802
1835
  invalid: props.invalid,
@@ -1808,19 +1841,19 @@ function DropdownSelector(props) {
1808
1841
  },
1809
1842
  ref: triggerRef,
1810
1843
  children: [
1811
- /* @__PURE__ */ (0, import_jsx_runtime18.jsx)(DropdownButtonText, { children: props.placeholder !== void 0 && preview === void 0 ? props.placeholder : preview }),
1812
- /* @__PURE__ */ (0, import_jsx_runtime18.jsx)(DropdownButtonIcon, { name: "16/Menu" })
1844
+ /* @__PURE__ */ (0, import_jsx_runtime19.jsx)(DropdownButtonText, { children: props.placeholder !== void 0 && preview === void 0 ? props.placeholder : preview }),
1845
+ /* @__PURE__ */ (0, import_jsx_runtime19.jsx)(DropdownButtonIcon, { name: "16/Menu" })
1813
1846
  ]
1814
1847
  }
1815
1848
  ),
1816
- /* @__PURE__ */ (0, import_jsx_runtime18.jsx)(
1849
+ isOpen && /* @__PURE__ */ (0, import_jsx_runtime19.jsx)(
1817
1850
  DropdownPopover,
1818
1851
  {
1819
1852
  isOpen,
1820
1853
  onClose: () => setIsOpen(false),
1821
1854
  triggerRef,
1822
1855
  value: props.value,
1823
- children: /* @__PURE__ */ (0, import_jsx_runtime18.jsx)(
1856
+ children: /* @__PURE__ */ (0, import_jsx_runtime19.jsx)(
1824
1857
  MenuList,
1825
1858
  {
1826
1859
  value: props.value,
@@ -1833,24 +1866,24 @@ function DropdownSelector(props) {
1833
1866
  )
1834
1867
  }
1835
1868
  ),
1836
- props.assistiveText !== void 0 && /* @__PURE__ */ (0, import_jsx_runtime18.jsx)(AssertiveText, { invalid: props.invalid, children: props.assistiveText })
1869
+ props.assistiveText !== void 0 && /* @__PURE__ */ (0, import_jsx_runtime19.jsx)(AssertiveText, { invalid: props.invalid, children: props.assistiveText })
1837
1870
  ] });
1838
1871
  }
1839
- var DropdownSelectorRoot = import_styled_components16.default.div`
1872
+ var DropdownSelectorRoot = import_styled_components17.default.div`
1840
1873
  display: inline-block;
1841
1874
  width: 100%;
1842
1875
 
1843
- ${import_utils6.disabledSelector} {
1876
+ ${import_utils8.disabledSelector} {
1844
1877
  cursor: default;
1845
1878
  ${theme((o) => o.disabled)}
1846
1879
  }
1847
1880
  `;
1848
- var DropdownFieldLabel = (0, import_styled_components16.default)(FieldLabel_default)`
1881
+ var DropdownFieldLabel = (0, import_styled_components17.default)(FieldLabel_default)`
1849
1882
  width: 100%;
1850
1883
 
1851
1884
  ${theme((o) => o.margin.bottom(8))}
1852
1885
  `;
1853
- var DropdownButton = import_styled_components16.default.button`
1886
+ var DropdownButton = import_styled_components17.default.button`
1854
1887
  display: flex;
1855
1888
  justify-content: space-between;
1856
1889
  align-items: center;
@@ -1860,7 +1893,7 @@ var DropdownButton = import_styled_components16.default.button`
1860
1893
  box-sizing: border-box;
1861
1894
  cursor: pointer;
1862
1895
 
1863
- ${import_utils6.disabledSelector} {
1896
+ ${import_utils8.disabledSelector} {
1864
1897
  cursor: default;
1865
1898
  }
1866
1899
 
@@ -1873,15 +1906,15 @@ var DropdownButton = import_styled_components16.default.button`
1873
1906
  invalid === true && o.outline.assertive
1874
1907
  ])}
1875
1908
  `;
1876
- var DropdownButtonText = import_styled_components16.default.span`
1909
+ var DropdownButtonText = import_styled_components17.default.span`
1877
1910
  text-align: left;
1878
1911
 
1879
1912
  ${theme((o) => [o.typography(14), o.font.text2])}
1880
1913
  `;
1881
- var DropdownButtonIcon = (0, import_styled_components16.default)(Icon_default)`
1914
+ var DropdownButtonIcon = (0, import_styled_components17.default)(Icon_default)`
1882
1915
  ${theme((o) => [o.font.text2])}
1883
1916
  `;
1884
- var AssertiveText = import_styled_components16.default.div`
1917
+ var AssertiveText = import_styled_components17.default.div`
1885
1918
  ${({ invalid }) => theme((o) => [
1886
1919
  o.typography(14),
1887
1920
  o.margin.top(8),
@@ -1890,19 +1923,19 @@ var AssertiveText = import_styled_components16.default.div`
1890
1923
  `;
1891
1924
 
1892
1925
  // src/components/DropdownSelector/DropdownMenuItem.tsx
1893
- var import_styled_components18 = __toESM(require("styled-components"));
1926
+ var import_styled_components19 = __toESM(require("styled-components"));
1894
1927
 
1895
1928
  // src/components/DropdownSelector/ListItem/index.tsx
1896
- var import_styled_components17 = __toESM(require("styled-components"));
1897
- var import_jsx_runtime19 = require("react/jsx-runtime");
1929
+ var import_styled_components18 = __toESM(require("styled-components"));
1930
+ var import_jsx_runtime20 = require("react/jsx-runtime");
1898
1931
  function ListItem(props) {
1899
1932
  const { children, ...rest } = props;
1900
- return /* @__PURE__ */ (0, import_jsx_runtime19.jsx)(StyledLi, { role: "option", children: /* @__PURE__ */ (0, import_jsx_runtime19.jsx)(ItemDiv, { ...rest, children: props.children }) });
1933
+ return /* @__PURE__ */ (0, import_jsx_runtime20.jsx)(StyledLi, { role: "option", children: /* @__PURE__ */ (0, import_jsx_runtime20.jsx)(ItemDiv, { ...rest, children: props.children }) });
1901
1934
  }
1902
- var StyledLi = import_styled_components17.default.li`
1935
+ var StyledLi = import_styled_components18.default.li`
1903
1936
  list-style: none;
1904
1937
  `;
1905
- var ItemDiv = import_styled_components17.default.div`
1938
+ var ItemDiv = import_styled_components18.default.div`
1906
1939
  display: flex;
1907
1940
  align-items: center;
1908
1941
  min-height: 40px;
@@ -1923,7 +1956,7 @@ var ItemDiv = import_styled_components17.default.div`
1923
1956
  `;
1924
1957
 
1925
1958
  // src/components/DropdownSelector/MenuItem/internals/useMenuItemHandleKeyDown.tsx
1926
- var import_react18 = require("react");
1959
+ var import_react19 = require("react");
1927
1960
 
1928
1961
  // src/components/DropdownSelector/MenuItem/internals/handleFocusByKeyBoard.tsx
1929
1962
  function handleFocusByKeyBoard(element, parent) {
@@ -1956,12 +1989,12 @@ function scrollIfNeeded(element) {
1956
1989
 
1957
1990
  // src/components/DropdownSelector/MenuItem/internals/useMenuItemHandleKeyDown.tsx
1958
1991
  function useMenuItemHandleKeyDown(value) {
1959
- const { setValue, root, values } = (0, import_react18.useContext)(MenuListContext);
1960
- const setContextValue = (0, import_react18.useCallback)(() => {
1992
+ const { setValue, root, values } = (0, import_react19.useContext)(MenuListContext);
1993
+ const setContextValue = (0, import_react19.useCallback)(() => {
1961
1994
  if (value !== void 0)
1962
1995
  setValue(value);
1963
1996
  }, [value, setValue]);
1964
- const handleKeyDown = (0, import_react18.useCallback)(
1997
+ const handleKeyDown = (0, import_react19.useCallback)(
1965
1998
  (e) => {
1966
1999
  if (e.key === "Enter") {
1967
2000
  setContextValue();
@@ -1988,11 +2021,11 @@ function useMenuItemHandleKeyDown(value) {
1988
2021
  }
1989
2022
 
1990
2023
  // src/components/DropdownSelector/MenuItem/index.tsx
1991
- var import_jsx_runtime20 = require("react/jsx-runtime");
2024
+ var import_jsx_runtime21 = require("react/jsx-runtime");
1992
2025
  function MenuItem(props) {
1993
2026
  const { children, as, ...rest } = props;
1994
2027
  const [handleKeyDown, setContextValue] = useMenuItemHandleKeyDown(props.value);
1995
- return /* @__PURE__ */ (0, import_jsx_runtime20.jsx)(
2028
+ return /* @__PURE__ */ (0, import_jsx_runtime21.jsx)(
1996
2029
  ListItem,
1997
2030
  {
1998
2031
  ...rest,
@@ -2008,85 +2041,85 @@ function MenuItem(props) {
2008
2041
  }
2009
2042
 
2010
2043
  // src/components/DropdownSelector/DropdownMenuItem.tsx
2011
- var import_react19 = require("react");
2012
- var import_jsx_runtime21 = require("react/jsx-runtime");
2044
+ var import_react20 = require("react");
2045
+ var import_jsx_runtime22 = require("react/jsx-runtime");
2013
2046
  function DropdownMenuItem(props) {
2014
- const { value: ctxValue } = (0, import_react19.useContext)(MenuListContext);
2047
+ const { value: ctxValue } = (0, import_react20.useContext)(MenuListContext);
2015
2048
  const isSelected = props.value === ctxValue;
2016
2049
  const { children, ...rest } = props;
2017
- return /* @__PURE__ */ (0, import_jsx_runtime21.jsxs)(MenuItem, { ...rest, children: [
2018
- isSelected && /* @__PURE__ */ (0, import_jsx_runtime21.jsx)(Text2ColorIcon, { name: "16/Check" }),
2019
- /* @__PURE__ */ (0, import_jsx_runtime21.jsx)(StyledSpan, { isSelected, children: props.children })
2050
+ return /* @__PURE__ */ (0, import_jsx_runtime22.jsxs)(MenuItem, { ...rest, children: [
2051
+ isSelected && /* @__PURE__ */ (0, import_jsx_runtime22.jsx)(Text2ColorIcon, { name: "16/Check" }),
2052
+ /* @__PURE__ */ (0, import_jsx_runtime22.jsx)(StyledSpan, { isSelected, children: props.children })
2020
2053
  ] });
2021
2054
  }
2022
- var StyledSpan = import_styled_components18.default.span`
2055
+ var StyledSpan = import_styled_components19.default.span`
2023
2056
  ${theme((o) => [o.typography(14), o.font.text2])};
2024
2057
  display: flex;
2025
2058
  align-items: center;
2026
2059
  width: 100%;
2027
2060
  margin-left: ${({ isSelected }) => isSelected === true ? 0 : 20}px;
2028
2061
  `;
2029
- var Text2ColorIcon = (0, import_styled_components18.default)(Icon_default)`
2062
+ var Text2ColorIcon = (0, import_styled_components19.default)(Icon_default)`
2030
2063
  ${theme((o) => [o.font.text2])}
2031
2064
  padding-right: 4px;
2032
2065
  `;
2033
2066
 
2034
2067
  // src/components/DropdownSelector/MenuItemGroup/index.tsx
2035
- var import_styled_components19 = __toESM(require("styled-components"));
2036
- var import_jsx_runtime22 = require("react/jsx-runtime");
2068
+ var import_styled_components20 = __toESM(require("styled-components"));
2069
+ var import_jsx_runtime23 = require("react/jsx-runtime");
2037
2070
  function MenuItemGroup(props) {
2038
- return /* @__PURE__ */ (0, import_jsx_runtime22.jsxs)(StyledLi2, { role: "presentation", children: [
2039
- /* @__PURE__ */ (0, import_jsx_runtime22.jsx)(TextSpan, { children: props.text }),
2040
- /* @__PURE__ */ (0, import_jsx_runtime22.jsx)(StyledUl2, { role: "group", children: props.children })
2071
+ return /* @__PURE__ */ (0, import_jsx_runtime23.jsxs)(StyledLi2, { role: "presentation", children: [
2072
+ /* @__PURE__ */ (0, import_jsx_runtime23.jsx)(TextSpan, { children: props.text }),
2073
+ /* @__PURE__ */ (0, import_jsx_runtime23.jsx)(StyledUl2, { role: "group", children: props.children })
2041
2074
  ] });
2042
2075
  }
2043
- var TextSpan = import_styled_components19.default.span`
2076
+ var TextSpan = import_styled_components20.default.span`
2044
2077
  display: block;
2045
- color: ${({ theme: theme4 }) => theme4.color.text3};
2078
+ color: ${({ theme: theme3 }) => theme3.color.text3};
2046
2079
  font-size: 12px;
2047
2080
  font-weight: bold;
2048
2081
  padding: 12px 0 8px 16px;
2049
2082
  `;
2050
- var StyledUl2 = import_styled_components19.default.ul`
2083
+ var StyledUl2 = import_styled_components20.default.ul`
2051
2084
  padding-left: 0;
2052
2085
  margin: 0;
2053
2086
  box-sizing: border-box;
2054
2087
  list-style: none;
2055
2088
  overflow: hidden;
2056
2089
  `;
2057
- var StyledLi2 = import_styled_components19.default.li`
2090
+ var StyledLi2 = import_styled_components20.default.li`
2058
2091
  display: block;
2059
2092
  `;
2060
2093
 
2061
2094
  // src/components/SegmentedControl/index.tsx
2062
- var import_react21 = require("react");
2095
+ var import_react22 = require("react");
2063
2096
  var import_react_stately2 = require("react-stately");
2064
2097
  var import_radio = require("@react-aria/radio");
2065
- var import_styled_components20 = __toESM(require("styled-components"));
2066
- var import_utils7 = require("@charcoal-ui/utils");
2098
+ var import_styled_components21 = __toESM(require("styled-components"));
2099
+ var import_utils9 = require("@charcoal-ui/utils");
2067
2100
 
2068
2101
  // src/components/SegmentedControl/RadioGroupContext.tsx
2069
- var import_react20 = require("react");
2070
- var import_jsx_runtime23 = require("react/jsx-runtime");
2071
- var RadioContext = (0, import_react20.createContext)(null);
2102
+ var import_react21 = require("react");
2103
+ var import_jsx_runtime24 = require("react/jsx-runtime");
2104
+ var RadioContext = (0, import_react21.createContext)(null);
2072
2105
  var RadioProvider = ({
2073
2106
  value,
2074
2107
  children
2075
2108
  }) => {
2076
- return /* @__PURE__ */ (0, import_jsx_runtime23.jsx)(RadioContext.Provider, { value, children });
2109
+ return /* @__PURE__ */ (0, import_jsx_runtime24.jsx)(RadioContext.Provider, { value, children });
2077
2110
  };
2078
2111
  var useRadioContext = () => {
2079
- const state = (0, import_react20.useContext)(RadioContext);
2112
+ const state = (0, import_react21.useContext)(RadioContext);
2080
2113
  if (state === null)
2081
2114
  throw new Error("`<RadioProvider>` is not likely mounted.");
2082
2115
  return state;
2083
2116
  };
2084
2117
 
2085
2118
  // src/components/SegmentedControl/index.tsx
2086
- var import_jsx_runtime24 = require("react/jsx-runtime");
2087
- var SegmentedControl = (0, import_react21.forwardRef)(
2119
+ var import_jsx_runtime25 = require("react/jsx-runtime");
2120
+ var SegmentedControl = (0, import_react22.forwardRef)(
2088
2121
  function SegmentedControlInner(props, ref) {
2089
- const ariaRadioGroupProps = (0, import_react21.useMemo)(
2122
+ const ariaRadioGroupProps = (0, import_react22.useMemo)(
2090
2123
  () => ({
2091
2124
  ...props,
2092
2125
  isDisabled: props.disabled,
@@ -2098,27 +2131,35 @@ var SegmentedControl = (0, import_react21.forwardRef)(
2098
2131
  );
2099
2132
  const state = (0, import_react_stately2.useRadioGroupState)(ariaRadioGroupProps);
2100
2133
  const { radioGroupProps } = (0, import_radio.useRadioGroup)(ariaRadioGroupProps, state);
2101
- const segmentedControlItems = (0, import_react21.useMemo)(() => {
2134
+ const segmentedControlItems = (0, import_react22.useMemo)(() => {
2102
2135
  return props.data.map(
2103
2136
  (d) => typeof d === "string" ? { value: d, label: d } : d
2104
2137
  );
2105
2138
  }, [props.data]);
2106
- return /* @__PURE__ */ (0, import_jsx_runtime24.jsx)(SegmentedControlRoot, { ref, ...radioGroupProps, children: /* @__PURE__ */ (0, import_jsx_runtime24.jsx)(RadioProvider, { value: state, children: segmentedControlItems.map((item) => /* @__PURE__ */ (0, import_jsx_runtime24.jsx)(
2107
- Segmented,
2139
+ return /* @__PURE__ */ (0, import_jsx_runtime25.jsx)(
2140
+ SegmentedControlRoot,
2108
2141
  {
2109
- value: item.value,
2110
- disabled: item.disabled,
2111
- children: item.label
2112
- },
2113
- item.value
2114
- )) }) });
2142
+ ref,
2143
+ ...radioGroupProps,
2144
+ className: props.className,
2145
+ children: /* @__PURE__ */ (0, import_jsx_runtime25.jsx)(RadioProvider, { value: state, children: segmentedControlItems.map((item) => /* @__PURE__ */ (0, import_jsx_runtime25.jsx)(
2146
+ Segmented,
2147
+ {
2148
+ value: item.value,
2149
+ disabled: item.disabled,
2150
+ children: item.label
2151
+ },
2152
+ item.value
2153
+ )) })
2154
+ }
2155
+ );
2115
2156
  }
2116
2157
  );
2117
- var SegmentedControl_default = (0, import_react21.memo)(SegmentedControl);
2158
+ var SegmentedControl_default = (0, import_react22.memo)(SegmentedControl);
2118
2159
  var Segmented = (props) => {
2119
2160
  const state = useRadioContext();
2120
- const ref = (0, import_react21.useRef)(null);
2121
- const ariaRadioProps = (0, import_react21.useMemo)(
2161
+ const ref = (0, import_react22.useRef)(null);
2162
+ const ariaRadioProps = (0, import_react22.useMemo)(
2122
2163
  () => ({
2123
2164
  value: props.value,
2124
2165
  isDisabled: props.disabled,
@@ -2131,32 +2172,32 @@ var Segmented = (props) => {
2131
2172
  state,
2132
2173
  ref
2133
2174
  );
2134
- return /* @__PURE__ */ (0, import_jsx_runtime24.jsxs)(
2175
+ return /* @__PURE__ */ (0, import_jsx_runtime25.jsxs)(
2135
2176
  SegmentedRoot,
2136
2177
  {
2137
2178
  "aria-disabled": isDisabled || state.isReadOnly,
2138
2179
  checked: isSelected,
2139
2180
  children: [
2140
- /* @__PURE__ */ (0, import_jsx_runtime24.jsx)(SegmentedInput, { ...inputProps, ref }),
2141
- /* @__PURE__ */ (0, import_jsx_runtime24.jsx)(RadioLabel2, { children: /* @__PURE__ */ (0, import_jsx_runtime24.jsx)(SegmentedLabelInner, { children: props.children }) })
2181
+ /* @__PURE__ */ (0, import_jsx_runtime25.jsx)(SegmentedInput, { ...inputProps, ref }),
2182
+ /* @__PURE__ */ (0, import_jsx_runtime25.jsx)(RadioLabel2, { children: /* @__PURE__ */ (0, import_jsx_runtime25.jsx)(SegmentedLabelInner, { children: props.children }) })
2142
2183
  ]
2143
2184
  }
2144
2185
  );
2145
2186
  };
2146
- var SegmentedControlRoot = import_styled_components20.default.div`
2187
+ var SegmentedControlRoot = import_styled_components21.default.div`
2147
2188
  display: inline-flex;
2148
2189
  align-items: center;
2149
2190
 
2150
2191
  ${theme((o) => [o.bg.surface3, o.borderRadius(16)])}
2151
2192
  `;
2152
- var SegmentedRoot = import_styled_components20.default.label`
2193
+ var SegmentedRoot = import_styled_components21.default.label`
2153
2194
  position: relative;
2154
2195
  display: flex;
2155
2196
  align-items: center;
2156
2197
  cursor: pointer;
2157
2198
  height: 32px;
2158
2199
 
2159
- ${import_utils7.disabledSelector} {
2200
+ ${import_utils9.disabledSelector} {
2160
2201
  cursor: default;
2161
2202
  }
2162
2203
 
@@ -2168,7 +2209,7 @@ var SegmentedRoot = import_styled_components20.default.label`
2168
2209
  checked === true ? o.font.text5 : o.font.text2
2169
2210
  ])}
2170
2211
  `;
2171
- var SegmentedInput = import_styled_components20.default.input`
2212
+ var SegmentedInput = import_styled_components21.default.input`
2172
2213
  position: absolute;
2173
2214
 
2174
2215
  height: 0px;
@@ -2182,27 +2223,27 @@ var SegmentedInput = import_styled_components20.default.input`
2182
2223
  white-space: nowrap;
2183
2224
  opacity: 0;
2184
2225
  `;
2185
- var RadioLabel2 = import_styled_components20.default.div`
2226
+ var RadioLabel2 = import_styled_components21.default.div`
2186
2227
  background: transparent;
2187
2228
  display: flex;
2188
2229
  align-items: center;
2189
2230
  height: 22px;
2190
2231
  `;
2191
- var SegmentedLabelInner = import_styled_components20.default.div`
2232
+ var SegmentedLabelInner = import_styled_components21.default.div`
2192
2233
  ${theme((o) => [o.typography(14)])}
2193
2234
  `;
2194
2235
 
2195
2236
  // src/components/Checkbox/index.tsx
2196
- var import_react22 = require("react");
2197
- var import_styled_components21 = __toESM(require("styled-components"));
2237
+ var import_react23 = require("react");
2238
+ var import_styled_components22 = __toESM(require("styled-components"));
2198
2239
  var import_checkbox = require("@react-aria/checkbox");
2199
- var import_utils8 = require("@react-aria/utils");
2240
+ var import_utils10 = require("@react-aria/utils");
2200
2241
  var import_react_stately3 = require("react-stately");
2201
- var import_utils9 = require("@charcoal-ui/utils");
2202
- var import_jsx_runtime25 = require("react/jsx-runtime");
2203
- var Checkbox = (0, import_react22.forwardRef)(
2242
+ var import_utils11 = require("@charcoal-ui/utils");
2243
+ var import_jsx_runtime26 = require("react/jsx-runtime");
2244
+ var Checkbox = (0, import_react23.forwardRef)(
2204
2245
  function CheckboxInner(props, ref) {
2205
- const ariaCheckboxProps = (0, import_react22.useMemo)(
2246
+ const ariaCheckboxProps = (0, import_react23.useMemo)(
2206
2247
  () => ({
2207
2248
  ...props,
2208
2249
  isSelected: props.checked,
@@ -2213,38 +2254,38 @@ var Checkbox = (0, import_react22.forwardRef)(
2213
2254
  [props]
2214
2255
  );
2215
2256
  const state = (0, import_react_stately3.useToggleState)(ariaCheckboxProps);
2216
- const objectRef = (0, import_utils8.useObjectRef)(ref);
2257
+ const objectRef = (0, import_utils10.useObjectRef)(ref);
2217
2258
  const { inputProps } = (0, import_checkbox.useCheckbox)(ariaCheckboxProps, state, objectRef);
2218
2259
  const isDisabled = (props.disabled ?? false) || (props.readonly ?? false);
2219
- return /* @__PURE__ */ (0, import_jsx_runtime25.jsxs)(InputRoot, { "aria-disabled": isDisabled, children: [
2220
- /* @__PURE__ */ (0, import_jsx_runtime25.jsxs)(CheckboxRoot, { children: [
2221
- /* @__PURE__ */ (0, import_jsx_runtime25.jsx)(CheckboxInput, { type: "checkbox", ...inputProps }),
2222
- /* @__PURE__ */ (0, import_jsx_runtime25.jsx)(CheckboxInputOverlay, { "aria-hidden": true, checked: inputProps.checked, children: /* @__PURE__ */ (0, import_jsx_runtime25.jsx)(Icon_default, { name: "24/Check", unsafeNonGuidelineScale: 2 / 3 }) })
2260
+ return /* @__PURE__ */ (0, import_jsx_runtime26.jsxs)(InputRoot, { "aria-disabled": isDisabled, className: props.className, children: [
2261
+ /* @__PURE__ */ (0, import_jsx_runtime26.jsxs)(CheckboxRoot, { children: [
2262
+ /* @__PURE__ */ (0, import_jsx_runtime26.jsx)(CheckboxInput, { type: "checkbox", ...inputProps }),
2263
+ /* @__PURE__ */ (0, import_jsx_runtime26.jsx)(CheckboxInputOverlay, { "aria-hidden": true, checked: inputProps.checked, children: /* @__PURE__ */ (0, import_jsx_runtime26.jsx)(Icon_default, { name: "24/Check", unsafeNonGuidelineScale: 2 / 3 }) })
2223
2264
  ] }),
2224
- "children" in props && /* @__PURE__ */ (0, import_jsx_runtime25.jsx)(InputLabel, { children: props.children })
2265
+ "children" in props && /* @__PURE__ */ (0, import_jsx_runtime26.jsx)(InputLabel, { children: props.children })
2225
2266
  ] });
2226
2267
  }
2227
2268
  );
2228
- var Checkbox_default = (0, import_react22.memo)(Checkbox);
2229
- var hiddenCss = import_styled_components21.css`
2269
+ var Checkbox_default = (0, import_react23.memo)(Checkbox);
2270
+ var hiddenCss = import_styled_components22.css`
2230
2271
  visibility: hidden;
2231
2272
  `;
2232
- var InputRoot = import_styled_components21.default.label`
2273
+ var InputRoot = import_styled_components22.default.label`
2233
2274
  position: relative;
2234
2275
  display: flex;
2235
2276
 
2236
2277
  cursor: pointer;
2237
- ${import_utils9.disabledSelector} {
2278
+ ${import_utils11.disabledSelector} {
2238
2279
  cursor: default;
2239
2280
  }
2240
2281
 
2241
- gap: ${({ theme: theme4 }) => (0, import_utils9.px)(theme4.spacing[4])};
2282
+ gap: ${({ theme: theme3 }) => (0, import_utils11.px)(theme3.spacing[4])};
2242
2283
  ${theme((o) => [o.disabled])}
2243
2284
  `;
2244
- var CheckboxRoot = import_styled_components21.default.div`
2285
+ var CheckboxRoot = import_styled_components22.default.div`
2245
2286
  position: relative;
2246
2287
  `;
2247
- var CheckboxInput = import_styled_components21.default.input`
2288
+ var CheckboxInput = import_styled_components22.default.input`
2248
2289
  &[type='checkbox'] {
2249
2290
  appearance: none;
2250
2291
  display: block;
@@ -2259,7 +2300,7 @@ var CheckboxInput = import_styled_components21.default.input`
2259
2300
  &:not(:checked) {
2260
2301
  border-width: 2px;
2261
2302
  border-style: solid;
2262
- border-color: ${({ theme: theme4 }) => theme4.color.text4};
2303
+ border-color: ${({ theme: theme3 }) => theme3.color.text4};
2263
2304
  }
2264
2305
  ${theme((o) => [o.outline.default.focus, o.borderRadius(4)])}
2265
2306
 
@@ -2267,7 +2308,7 @@ var CheckboxInput = import_styled_components21.default.input`
2267
2308
  transition: all 0.2s !important;
2268
2309
  }
2269
2310
  `;
2270
- var CheckboxInputOverlay = import_styled_components21.default.div`
2311
+ var CheckboxInputOverlay = import_styled_components22.default.div`
2271
2312
  position: absolute;
2272
2313
  top: -2px;
2273
2314
  left: -2px;
@@ -2280,7 +2321,7 @@ var CheckboxInputOverlay = import_styled_components21.default.div`
2280
2321
 
2281
2322
  ${({ checked }) => checked !== true && hiddenCss};
2282
2323
  `;
2283
- var InputLabel = import_styled_components21.default.div`
2324
+ var InputLabel = import_styled_components22.default.div`
2284
2325
  ${theme((o) => [o.font.text2])}
2285
2326
 
2286
2327
  font-size: 14px;
@@ -2289,17 +2330,17 @@ var InputLabel = import_styled_components21.default.div`
2289
2330
  `;
2290
2331
 
2291
2332
  // src/components/TagItem/index.tsx
2292
- var import_react23 = require("react");
2293
- var import_utils10 = require("@react-aria/utils");
2294
- var import_styled_components22 = __toESM(require("styled-components"));
2295
- var import_utils11 = require("@charcoal-ui/utils");
2333
+ var import_react24 = require("react");
2334
+ var import_utils12 = require("@react-aria/utils");
2335
+ var import_styled_components23 = __toESM(require("styled-components"));
2336
+ var import_utils13 = require("@charcoal-ui/utils");
2296
2337
  var import_button = require("@react-aria/button");
2297
- var import_jsx_runtime26 = require("react/jsx-runtime");
2338
+ var import_jsx_runtime27 = require("react/jsx-runtime");
2298
2339
  var sizeMap = {
2299
2340
  S: 32,
2300
2341
  M: 40
2301
2342
  };
2302
- var TagItem = (0, import_react23.forwardRef)(
2343
+ var TagItem = (0, import_react24.forwardRef)(
2303
2344
  function TagItemInner({
2304
2345
  label,
2305
2346
  translatedLabel,
@@ -2311,8 +2352,8 @@ var TagItem = (0, import_react23.forwardRef)(
2311
2352
  className,
2312
2353
  ...props
2313
2354
  }, _ref) {
2314
- const ref = (0, import_utils10.useObjectRef)(_ref);
2315
- const ariaButtonProps = (0, import_react23.useMemo)(
2355
+ const ref = (0, import_utils12.useObjectRef)(_ref);
2356
+ const ariaButtonProps = (0, import_react24.useMemo)(
2316
2357
  () => ({
2317
2358
  elementType: "a",
2318
2359
  isDisabled: disabled,
@@ -2322,7 +2363,7 @@ var TagItem = (0, import_react23.forwardRef)(
2322
2363
  );
2323
2364
  const { buttonProps } = (0, import_button.useButton)(ariaButtonProps, ref);
2324
2365
  const hasTranslatedLabel = translatedLabel !== void 0 && translatedLabel.length > 0;
2325
- return /* @__PURE__ */ (0, import_jsx_runtime26.jsxs)(
2366
+ return /* @__PURE__ */ (0, import_jsx_runtime27.jsxs)(
2326
2367
  TagItemRoot,
2327
2368
  {
2328
2369
  ref,
@@ -2331,21 +2372,21 @@ var TagItem = (0, import_react23.forwardRef)(
2331
2372
  ...buttonProps,
2332
2373
  className,
2333
2374
  children: [
2334
- /* @__PURE__ */ (0, import_jsx_runtime26.jsx)(Background, { bgColor, bgImage, status }),
2335
- /* @__PURE__ */ (0, import_jsx_runtime26.jsxs)(Inner, { children: [
2336
- /* @__PURE__ */ (0, import_jsx_runtime26.jsxs)(LabelWrapper, { isTranslate: hasTranslatedLabel, children: [
2337
- hasTranslatedLabel && /* @__PURE__ */ (0, import_jsx_runtime26.jsx)(TranslatedLabel, { children: /* @__PURE__ */ (0, import_jsx_runtime26.jsx)(Label3, { children: translatedLabel }) }),
2338
- /* @__PURE__ */ (0, import_jsx_runtime26.jsx)(Label3, { children: label })
2375
+ /* @__PURE__ */ (0, import_jsx_runtime27.jsx)(Background, { bgColor, bgImage, status }),
2376
+ /* @__PURE__ */ (0, import_jsx_runtime27.jsxs)(Inner, { children: [
2377
+ /* @__PURE__ */ (0, import_jsx_runtime27.jsxs)(LabelWrapper, { isTranslate: hasTranslatedLabel, children: [
2378
+ hasTranslatedLabel && /* @__PURE__ */ (0, import_jsx_runtime27.jsx)(TranslatedLabel, { children: /* @__PURE__ */ (0, import_jsx_runtime27.jsx)(Label3, { children: translatedLabel }) }),
2379
+ /* @__PURE__ */ (0, import_jsx_runtime27.jsx)(Label3, { children: label })
2339
2380
  ] }),
2340
- status === "active" && /* @__PURE__ */ (0, import_jsx_runtime26.jsx)(Icon_default, { name: "16/Remove" })
2381
+ status === "active" && /* @__PURE__ */ (0, import_jsx_runtime27.jsx)(Icon_default, { name: "16/Remove" })
2341
2382
  ] })
2342
2383
  ]
2343
2384
  }
2344
2385
  );
2345
2386
  }
2346
2387
  );
2347
- var TagItem_default = (0, import_react23.memo)(TagItem);
2348
- var TagItemRoot = import_styled_components22.default.a`
2388
+ var TagItem_default = (0, import_react24.memo)(TagItem);
2389
+ var TagItemRoot = import_styled_components23.default.a`
2349
2390
  isolation: isolate;
2350
2391
  position: relative;
2351
2392
  height: ${({ size }) => sizeMap[size]}px;
@@ -2365,12 +2406,12 @@ var TagItemRoot = import_styled_components22.default.a`
2365
2406
  ...status === "active" ? [o.padding.left(16), o.padding.right(8)] : []
2366
2407
  ])}
2367
2408
 
2368
- ${import_utils11.disabledSelector} {
2409
+ ${import_utils13.disabledSelector} {
2369
2410
  ${theme((o) => [o.disabled])}
2370
2411
  cursor: default;
2371
2412
  }
2372
2413
  `;
2373
- var Background = import_styled_components22.default.div`
2414
+ var Background = import_styled_components23.default.div`
2374
2415
  position: absolute;
2375
2416
  z-index: 1;
2376
2417
  top: 0;
@@ -2381,7 +2422,7 @@ var Background = import_styled_components22.default.div`
2381
2422
  background-color: ${({ bgColor }) => bgColor};
2382
2423
  ${({ status }) => status === "inactive" && theme((o) => o.bg.surface3)}
2383
2424
 
2384
- ${({ bgImage }) => bgImage !== void 0 && import_styled_components22.css`
2425
+ ${({ bgImage }) => bgImage !== void 0 && import_styled_components23.css`
2385
2426
  ${theme((o) => [o.bg.surface4])}
2386
2427
  &::before {
2387
2428
  content: '';
@@ -2397,25 +2438,25 @@ var Background = import_styled_components22.default.div`
2397
2438
  }
2398
2439
  `}
2399
2440
  `;
2400
- var Inner = import_styled_components22.default.div`
2441
+ var Inner = import_styled_components23.default.div`
2401
2442
  display: inline-flex;
2402
- gap: ${({ theme: theme4 }) => (0, import_utils11.px)(theme4.spacing[8])};
2443
+ gap: ${({ theme: theme3 }) => (0, import_utils13.px)(theme3.spacing[8])};
2403
2444
  align-items: center;
2404
2445
  z-index: 2;
2405
2446
  `;
2406
- var labelCSS = import_styled_components22.css`
2447
+ var labelCSS = import_styled_components23.css`
2407
2448
  ${theme((o) => [o.typography(14).bold])}
2408
2449
  `;
2409
- var translateLabelCSS = import_styled_components22.css`
2450
+ var translateLabelCSS = import_styled_components23.css`
2410
2451
  display: flex;
2411
2452
  align-items: center;
2412
2453
  flex-direction: column;
2413
2454
  font-size: 10px;
2414
2455
  `;
2415
- var LabelWrapper = import_styled_components22.default.div`
2456
+ var LabelWrapper = import_styled_components23.default.div`
2416
2457
  ${({ isTranslate }) => isTranslate ?? false ? translateLabelCSS : labelCSS}
2417
2458
  `;
2418
- var Label3 = import_styled_components22.default.span`
2459
+ var Label3 = import_styled_components23.default.span`
2419
2460
  max-width: 152px;
2420
2461
  overflow: hidden;
2421
2462
  text-overflow: ellipsis;
@@ -2424,7 +2465,7 @@ var Label3 = import_styled_components22.default.span`
2424
2465
  color: inherit;
2425
2466
  line-height: inherit;
2426
2467
  `;
2427
- var TranslatedLabel = import_styled_components22.default.div`
2468
+ var TranslatedLabel = import_styled_components23.default.div`
2428
2469
  ${theme((o) => [o.typography(12).bold])}
2429
2470
  `;
2430
2471
  // Annotate the CommonJS export names for ESM import in node:
@@ -2455,6 +2496,7 @@ var TranslatedLabel = import_styled_components22.default.div`
2455
2496
  SegmentedControl,
2456
2497
  Switch,
2457
2498
  TagItem,
2499
+ TextArea,
2458
2500
  TextField,
2459
2501
  useComponentAbstraction
2460
2502
  });