@charcoal-ui/react 3.7.0 → 3.9.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (107) hide show
  1. package/dist/components/Button/StyledButton.d.ts +1 -0
  2. package/dist/components/Button/StyledButton.d.ts.map +1 -1
  3. package/dist/components/Button/index.d.ts +1 -0
  4. package/dist/components/Button/index.d.ts.map +1 -1
  5. package/dist/components/Button/index.story.d.ts +16 -32
  6. package/dist/components/Button/index.story.d.ts.map +1 -1
  7. package/dist/components/Checkbox/index.d.ts.map +1 -1
  8. package/dist/components/DropdownSelector/ListItem/index.story.d.ts +7 -7
  9. package/dist/components/DropdownSelector/ListItem/index.story.d.ts.map +1 -1
  10. package/dist/components/DropdownSelector/MenuList/index.story.d.ts +6 -9
  11. package/dist/components/DropdownSelector/MenuList/index.story.d.ts.map +1 -1
  12. package/dist/components/DropdownSelector/Popover/index.story.d.ts +3 -7
  13. package/dist/components/DropdownSelector/Popover/index.story.d.ts.map +1 -1
  14. package/dist/components/DropdownSelector/index.d.ts.map +1 -1
  15. package/dist/components/DropdownSelector/index.story.d.ts +9 -12
  16. package/dist/components/DropdownSelector/index.story.d.ts.map +1 -1
  17. package/dist/components/Icon/index.story.d.ts +4 -26
  18. package/dist/components/Icon/index.story.d.ts.map +1 -1
  19. package/dist/components/IconButton/index.d.ts +1 -0
  20. package/dist/components/IconButton/index.d.ts.map +1 -1
  21. package/dist/components/IconButton/index.story.d.ts +6 -25
  22. package/dist/components/IconButton/index.story.d.ts.map +1 -1
  23. package/dist/components/LoadingSpinner/LoadingSpinnerIcon.story.d.ts +8 -0
  24. package/dist/components/LoadingSpinner/LoadingSpinnerIcon.story.d.ts.map +1 -0
  25. package/dist/components/LoadingSpinner/index.d.ts +2 -2
  26. package/dist/components/LoadingSpinner/index.d.ts.map +1 -1
  27. package/dist/components/LoadingSpinner/index.story.d.ts +4 -7
  28. package/dist/components/LoadingSpinner/index.story.d.ts.map +1 -1
  29. package/dist/components/Modal/index.d.ts.map +1 -1
  30. package/dist/components/Modal/index.story.d.ts +16 -41
  31. package/dist/components/Modal/index.story.d.ts.map +1 -1
  32. package/dist/components/Modal/useCustomModalOverlay.d.ts +12 -0
  33. package/dist/components/Modal/useCustomModalOverlay.d.ts.map +1 -0
  34. package/dist/components/MultiSelect/index.d.ts.map +1 -1
  35. package/dist/components/Radio/index.d.ts +0 -2
  36. package/dist/components/Radio/index.d.ts.map +1 -1
  37. package/dist/components/Radio/index.story.d.ts +12 -23
  38. package/dist/components/Radio/index.story.d.ts.map +1 -1
  39. package/dist/components/SegmentedControl/index.story.d.ts +5 -8
  40. package/dist/components/SegmentedControl/index.story.d.ts.map +1 -1
  41. package/dist/components/Switch/index.d.ts.map +1 -1
  42. package/dist/components/Switch/index.story.d.ts +7 -12
  43. package/dist/components/Switch/index.story.d.ts.map +1 -1
  44. package/dist/components/TagItem/index.d.ts.map +1 -1
  45. package/dist/components/TagItem/index.story.d.ts +14 -24
  46. package/dist/components/TagItem/index.story.d.ts.map +1 -1
  47. package/dist/components/TextArea/TextArea.story.d.ts +7 -25
  48. package/dist/components/TextArea/TextArea.story.d.ts.map +1 -1
  49. package/dist/components/TextArea/index.d.ts.map +1 -1
  50. package/dist/components/TextField/TextField.story.d.ts +14 -20
  51. package/dist/components/TextField/TextField.story.d.ts.map +1 -1
  52. package/dist/components/TextField/index.d.ts.map +1 -1
  53. package/dist/index.cjs.js +1006 -2240
  54. package/dist/index.cjs.js.map +1 -1
  55. package/dist/index.esm.js +1001 -2241
  56. package/dist/index.esm.js.map +1 -1
  57. package/dist/styled.d.ts +4 -4
  58. package/package.json +7 -6
  59. package/src/components/Button/StyledButton.tsx +19 -14
  60. package/src/components/Button/__snapshots__/index.story.storyshot +314 -118
  61. package/src/components/Button/index.story.tsx +141 -138
  62. package/src/components/Button/index.tsx +3 -0
  63. package/src/components/Checkbox/__snapshots__/index.story.storyshot +55 -42
  64. package/src/components/Checkbox/index.tsx +15 -17
  65. package/src/components/Clickable/__snapshots__/index.story.storyshot +2 -2
  66. package/src/components/DropdownSelector/ListItem/__snapshots__/index.story.storyshot +42 -37
  67. package/src/components/DropdownSelector/ListItem/index.story.tsx +8 -4
  68. package/src/components/DropdownSelector/MenuList/__snapshots__/index.story.storyshot +38 -38
  69. package/src/components/DropdownSelector/MenuList/index.story.tsx +33 -27
  70. package/src/components/DropdownSelector/Popover/__snapshots__/index.story.storyshot +11 -5
  71. package/src/components/DropdownSelector/Popover/index.story.tsx +6 -6
  72. package/src/components/DropdownSelector/__snapshots__/index.story.storyshot +148 -47
  73. package/src/components/DropdownSelector/index.story.tsx +207 -204
  74. package/src/components/DropdownSelector/index.tsx +17 -10
  75. package/src/components/Icon/__snapshots__/index.story.storyshot +1 -1
  76. package/src/components/Icon/index.story.tsx +8 -12
  77. package/src/components/IconButton/__snapshots__/index.story.storyshot +135 -13
  78. package/src/components/IconButton/index.story.tsx +30 -23
  79. package/src/components/IconButton/index.tsx +35 -20
  80. package/src/components/LoadingSpinner/LoadingSpinnerIcon.story.tsx +12 -0
  81. package/src/components/LoadingSpinner/__snapshots__/LoadingSpinnerIcon.story.storyshot +28 -0
  82. package/src/components/LoadingSpinner/__snapshots__/index.story.storyshot +1 -35
  83. package/src/components/LoadingSpinner/index.story.tsx +11 -54
  84. package/src/components/LoadingSpinner/index.tsx +1 -1
  85. package/src/components/Modal/__snapshots__/index.story.storyshot +224 -171
  86. package/src/components/Modal/index.story.tsx +139 -133
  87. package/src/components/Modal/index.tsx +15 -20
  88. package/src/components/Modal/useCustomModalOverlay.tsx +42 -0
  89. package/src/components/MultiSelect/__snapshots__/index.story.storyshot +56 -4
  90. package/src/components/MultiSelect/index.tsx +3 -0
  91. package/src/components/Radio/__snapshots__/index.story.storyshot +1001 -121
  92. package/src/components/Radio/index.story.tsx +128 -63
  93. package/src/components/Radio/index.tsx +15 -17
  94. package/src/components/SegmentedControl/__snapshots__/index.story.storyshot +2 -2
  95. package/src/components/SegmentedControl/index.story.tsx +24 -29
  96. package/src/components/Switch/__snapshots__/index.story.storyshot +184 -26
  97. package/src/components/Switch/index.story.tsx +72 -48
  98. package/src/components/Switch/index.tsx +2 -7
  99. package/src/components/TagItem/__snapshots__/index.story.storyshot +72 -33
  100. package/src/components/TagItem/index.story.tsx +154 -159
  101. package/src/components/TagItem/index.tsx +2 -6
  102. package/src/components/TextArea/TextArea.story.tsx +29 -32
  103. package/src/components/TextArea/__snapshots__/TextArea.story.storyshot +127 -73
  104. package/src/components/TextArea/index.tsx +22 -14
  105. package/src/components/TextField/TextField.story.tsx +85 -64
  106. package/src/components/TextField/__snapshots__/TextField.story.storyshot +479 -167
  107. package/src/components/TextField/index.tsx +22 -21
package/dist/index.cjs.js CHANGED
@@ -62,23 +62,25 @@ module.exports = __toCommonJS(src_exports);
62
62
  var import_react = require("react");
63
63
  var React = __toESM(require("react"));
64
64
  var import_jsx_runtime = require("react/jsx-runtime");
65
- var DefaultLink = React.forwardRef(
66
- function DefaultLink2({ to, children, ...rest }, ref) {
67
- return /* @__PURE__ */ (0, import_jsx_runtime.jsx)("a", { href: to, ref, ...rest, children });
68
- }
69
- );
65
+ var DefaultLink = React.forwardRef(function DefaultLink2({
66
+ to,
67
+ children,
68
+ ...rest
69
+ }, ref) {
70
+ return /* @__PURE__ */ (0, import_jsx_runtime.jsx)("a", { href: to, ref, ...rest, children });
71
+ });
70
72
  var DefaultValue = {
71
73
  Link: DefaultLink
72
74
  };
73
75
  var ComponentAbstractionContext = React.createContext(DefaultValue);
74
- function ComponentAbstraction({ children, components }) {
75
- return /* @__PURE__ */ (0, import_jsx_runtime.jsx)(
76
- ComponentAbstractionContext.Provider,
77
- {
78
- value: { ...DefaultValue, ...components },
79
- children
80
- }
81
- );
76
+ function ComponentAbstraction({
77
+ children,
78
+ components
79
+ }) {
80
+ return /* @__PURE__ */ (0, import_jsx_runtime.jsx)(ComponentAbstractionContext.Provider, { value: {
81
+ ...DefaultValue,
82
+ ...components
83
+ }, children });
82
84
  }
83
85
  function useComponentAbstraction() {
84
86
  return (0, import_react.useContext)(ComponentAbstractionContext);
@@ -113,9 +115,7 @@ var import_react2 = require("react");
113
115
 
114
116
  // src/_lib/index.ts
115
117
  function unreachable(value) {
116
- throw new Error(
117
- arguments.length === 0 ? "unreachable" : `unreachable (${JSON.stringify(value)})`
118
- );
118
+ throw new Error(arguments.length === 0 ? "unreachable" : `unreachable (${JSON.stringify(value)})`);
119
119
  }
120
120
  function mergeRefs(...refs) {
121
121
  return (value) => {
@@ -177,123 +177,39 @@ var React2 = __toESM(require("react"));
177
177
  var import_styled_components2 = __toESM(require("styled-components"));
178
178
  var import_utils = require("@charcoal-ui/utils");
179
179
  var import_jsx_runtime3 = require("react/jsx-runtime");
180
- var Clickable = React2.forwardRef(
181
- function Clickable2(props, ref) {
182
- const { Link } = useComponentAbstraction();
183
- const isLink = "to" in props;
184
- const as = isLink ? Link : "button";
185
- const ariaDisabled = isLink && props.disabled === true ? true : void 0;
186
- let rest = props;
187
- if (isLink) {
188
- const { disabled, ..._rest } = props;
189
- rest = _rest;
190
- }
191
- return /* @__PURE__ */ (0, import_jsx_runtime3.jsx)(
192
- StyledClickableDiv,
193
- {
194
- ...rest,
195
- ref,
196
- as,
197
- "aria-disabled": ariaDisabled
198
- }
199
- );
180
+ var Clickable = React2.forwardRef(function Clickable2(props, ref) {
181
+ const {
182
+ Link
183
+ } = useComponentAbstraction();
184
+ const isLink = "to" in props;
185
+ const as = isLink ? Link : "button";
186
+ const ariaDisabled = isLink && props.disabled === true ? true : void 0;
187
+ let rest = props;
188
+ if (isLink) {
189
+ const {
190
+ disabled,
191
+ ..._rest
192
+ } = props;
193
+ rest = _rest;
200
194
  }
201
- );
195
+ return /* @__PURE__ */ (0, import_jsx_runtime3.jsx)(StyledClickableDiv, { ...rest, ref, as, "aria-disabled": ariaDisabled });
196
+ });
202
197
  var Clickable_default = Clickable;
203
- var StyledClickableDiv = import_styled_components2.default.div`
204
- cursor: pointer;
205
-
206
- ${import_utils.disabledSelector} {
207
- cursor: default;
208
- }
209
-
210
- /* Reset button appearance */
211
- appearance: none;
212
- background: transparent;
213
- padding: 0;
214
- border-style: none;
215
- outline: none;
216
- color: inherit;
217
- text-rendering: inherit;
218
- letter-spacing: inherit;
219
- word-spacing: inherit;
220
- text-decoration: none;
221
-
222
- &:focus {
223
- outline: none;
224
- }
225
-
226
- /* Change the font styles in all browsers. */
227
- font: inherit;
228
-
229
- /* Remove the margin in Firefox and Safari. */
230
- margin: 0;
231
-
232
- /* Show the overflow in Edge. */
233
- overflow: visible;
234
-
235
- /* Remove the inheritance of text transform in Firefox. */
236
- text-transform: none;
237
-
238
- /* Remove the inner border and padding in Firefox. */
239
- &::-moz-focus-inner {
240
- border-style: none;
241
- padding: 0;
242
- }
243
- `;
198
+ var StyledClickableDiv = import_styled_components2.default.div.withConfig({
199
+ componentId: "ccl__sc-1lxyknw-0"
200
+ })(["cursor:pointer;", "{cursor:default;}appearance:none;background:transparent;padding:0;border-style:none;outline:none;color:inherit;text-rendering:inherit;letter-spacing:inherit;word-spacing:inherit;text-decoration:none;&:focus{outline:none;}font:inherit;margin:0;overflow:visible;text-transform:none;&::-moz-focus-inner{border-style:none;padding:0;}"], import_utils.disabledSelector);
244
201
 
245
202
  // src/components/Button/StyledButton.tsx
246
- var horizontalPaddingSmall = import_styled_components3.css`
247
- padding-right: 16px;
248
- padding-left: 16px;
249
- `;
250
- var horizontalPaddingMedium = import_styled_components3.css`
251
- padding-right: 24px;
252
- padding-left: 24px;
253
- `;
254
- var StyledButton = (0, import_styled_components3.default)(Clickable_default)`
255
- width: ${(p) => p.$fullWidth ? "stretch" : "min-content"};
256
- display: inline-grid;
257
- align-items: center;
258
- justify-content: center;
259
- cursor: pointer;
260
- user-select: none;
261
- white-space: nowrap;
262
- border-radius: 999999px;
263
- font-size: 14px;
264
- line-height: 22px;
265
- font-weight: bold;
266
-
267
- ${(p) => p.$size === "M" ? horizontalPaddingMedium : horizontalPaddingSmall}
268
- color: var(--charcoal-${(p) => p.$color});
269
- background-color: var(--charcoal-${(p) => p.$background});
270
- transition: 0.2s color, 0.2s background-color, 0.2s box-shadow;
271
-
272
- &:not(:disabled):not([aria-disabled]),
273
- &[aria-disabled='false'] {
274
- &:active,
275
- &:focus,
276
- &:focus-visible {
277
- outline: none;
278
- box-shadow: 0 0 0 4px rgba(0, 150, 250, 0.32);
279
- }
280
-
281
- &:hover {
282
- color: var(--charcoal-${(p) => p.$color}-hover);
283
- background-color: var(--charcoal-${(p) => p.$background}-hover);
284
- }
285
- &:active {
286
- color: var(--charcoal-${(p) => p.$color}-press);
287
- background-color: var(--charcoal-${(p) => p.$background}-press);
288
- }
289
- }
290
-
291
- &:disabled,
292
- &[aria-disabled]:not([aria-disabled='false']) {
293
- opacity: 0.32;
294
- }
295
- height: ${(p) => p.$size === "M" ? 40 : 32}px;
296
- `;
203
+ var import_styled2 = require("@charcoal-ui/styled");
204
+ var horizontalPaddingSmall = (0, import_styled_components3.css)(["padding-right:16px;padding-left:16px;"]);
205
+ var horizontalPaddingMedium = (0, import_styled_components3.css)(["padding-right:24px;padding-left:24px;"]);
206
+ var StyledButton = (0, import_styled_components3.default)(Clickable_default).withConfig({
207
+ componentId: "ccl__sc-19qkngs-0"
208
+ })(["width:", ";display:inline-grid;align-items:center;justify-content:center;cursor:pointer;user-select:none;white-space:nowrap;border-radius:999999px;font-size:14px;line-height:22px;font-weight:bold;", " color:var(--charcoal-", ");background-color:var(--charcoal-", ");transition:0.2s color,0.2s background-color,0.2s box-shadow;&:not(:disabled):not([aria-disabled]),&[aria-disabled='false']{", " ", "}&:disabled,&[aria-disabled]:not([aria-disabled='false']){opacity:0.32;}height:", "px;"], (p) => p.$fullWidth ? "stretch" : "min-content", (p) => p.$size === "M" ? horizontalPaddingMedium : horizontalPaddingSmall, (p) => p.$color, (p) => p.$background, import_styled2.focusVisibleFocusRingCss, ({
209
+ $isActive: $active,
210
+ $color,
211
+ $background
212
+ }) => $active ? (0, import_styled_components3.css)(["color:var(--charcoal-", "-press);background-color:var(--charcoal-", "-press);"], $color, $background) : (0, import_styled_components3.css)(["&:hover{color:var(--charcoal-", "-hover);background-color:var(--charcoal-", "-hover);}&:active{color:var(--charcoal-", "-press);background-color:var(--charcoal-", "-press);}"], $color, $background, $color, $background), (p) => p.$size === "M" ? 40 : 32);
297
213
 
298
214
  // src/components/Button/index.tsx
299
215
  var import_jsx_runtime4 = require("react/jsx-runtime");
@@ -303,74 +219,44 @@ var Button = (0, import_react2.forwardRef)(function Button2({
303
219
  size = "M",
304
220
  fullWidth: fixed = false,
305
221
  disabled = false,
222
+ isActive = false,
306
223
  ...rest
307
224
  }, ref) {
308
- return /* @__PURE__ */ (0, import_jsx_runtime4.jsx)(
309
- StyledButton,
310
- {
311
- ...rest,
312
- disabled,
313
- $background: variantToBackground(variant),
314
- $color: variantToFont(variant),
315
- $size: size,
316
- $fullWidth: fixed,
317
- ref,
318
- children
319
- }
320
- );
225
+ return /* @__PURE__ */ (0, import_jsx_runtime4.jsx)(StyledButton, { ...rest, disabled, $background: variantToBackground(variant), $color: variantToFont(variant), $size: size, $fullWidth: fixed, $isActive: isActive, ref, children });
321
226
  });
322
227
  var Button_default = Button;
323
228
 
324
229
  // src/components/IconButton/index.tsx
325
230
  var import_react3 = require("react");
326
231
  var import_styled_components4 = __toESM(require("styled-components"));
232
+ var import_styled3 = require("@charcoal-ui/styled");
327
233
  var import_jsx_runtime5 = require("react/jsx-runtime");
328
- var IconButton = (0, import_react3.forwardRef)(
329
- function IconButtonInner({ variant = "Default", size = "M", icon, ...rest }, ref) {
330
- validateIconSize(size, icon);
331
- return /* @__PURE__ */ (0, import_jsx_runtime5.jsx)(StyledIconButton, { ...rest, ref, $size: size, $variant: variant, children: /* @__PURE__ */ (0, import_jsx_runtime5.jsx)("pixiv-icon", { name: icon }) });
332
- }
333
- );
234
+ var IconButton = (0, import_react3.forwardRef)(function IconButtonInner({
235
+ variant = "Default",
236
+ size = "M",
237
+ icon,
238
+ isActive = false,
239
+ ...rest
240
+ }, ref) {
241
+ validateIconSize(size, icon);
242
+ return /* @__PURE__ */ (0, import_jsx_runtime5.jsx)(StyledIconButton, { ...rest, ref, $size: size, $variant: variant, $isActive: isActive, children: /* @__PURE__ */ (0, import_jsx_runtime5.jsx)("pixiv-icon", { name: icon }) });
243
+ });
334
244
  var IconButton_default = IconButton;
335
- var StyledIconButton = (0, import_styled_components4.default)(Clickable_default).attrs(styledProps)`
336
- user-select: none;
337
-
338
- width: ${(p) => p.$width}px;
339
- height: ${(p) => p.$height}px;
340
- display: flex;
341
- align-items: center;
342
- justify-content: center;
343
- color: var(${({ $font }) => `--charcoal-${$font}`});
344
- background-color: var(${({ $background }) => `--charcoal-${$background}`});
345
- border-radius: 999999px;
346
- transition: 0.2s background-color, 0.2s box-shadow;
347
-
348
- &:not(:disabled):not([aria-disabled]),
349
- &[aria-disabled='false'] {
350
- &:hover {
351
- background-color: var(
352
- ${({ $background }) => `--charcoal-${$background}-hover`}
353
- );
354
- }
355
- &:active {
356
- background-color: var(
357
- ${({ $background }) => `--charcoal-${$background}-press`}
358
- );
359
- }
360
- &:focus,
361
- &:active,
362
- &:focus-visible {
363
- outline: none;
364
- box-shadow: 0 0 0 4px rgba(0, 150, 250, 0.32);
365
- }
366
- }
367
-
368
- &:disabled,
369
- &[aria-disabled]:not([aria-disabled='false']) {
370
- opacity: 0.32;
371
- }
372
- `;
373
- function styledProps({ $size, $variant }) {
245
+ var StyledIconButton = (0, import_styled_components4.default)(Clickable_default).attrs(styledProps).withConfig({
246
+ componentId: "ccl__sc-zssehl-0"
247
+ })(["user-select:none;width:", "px;height:", "px;display:flex;align-items:center;justify-content:center;color:var(", ");background-color:var(", ");border-radius:999999px;transition:0.2s background-color,0.2s box-shadow;&:not(:disabled):not([aria-disabled]),&[aria-disabled='false']{", " ", "}&:disabled,&[aria-disabled]:not([aria-disabled='false']){opacity:0.32;}"], (p) => p.$width, (p) => p.$height, ({
248
+ $font
249
+ }) => `--charcoal-${$font}`, ({
250
+ $background
251
+ }) => `--charcoal-${$background}`, ({
252
+ $isActive,
253
+ $background,
254
+ $font
255
+ }) => $isActive ? (0, import_styled_components4.css)(["color:var(--charcoal-", "-press);background-color:var(--charcoal-", "-press);"], $font, $background) : (0, import_styled_components4.css)(["&:hover{color:var(--charcoal-", "-hover);background-color:var(--charcoal-", "-hover);}&:active{color:var(--charcoal-", "-press);background-color:var(--charcoal-", "-press);}"], $font, $background, $font, $background), import_styled3.focusVisibleFocusRingCss);
256
+ function styledProps({
257
+ $size,
258
+ $variant
259
+ }) {
374
260
  return {
375
261
  ...variantToProps($variant),
376
262
  ...sizeToProps($size)
@@ -379,9 +265,15 @@ function styledProps({ $size, $variant }) {
379
265
  function variantToProps(variant) {
380
266
  switch (variant) {
381
267
  case "Default":
382
- return { $font: "text3", $background: "transparent" };
268
+ return {
269
+ $font: "text3",
270
+ $background: "transparent"
271
+ };
383
272
  case "Overlay":
384
- return { $font: "text5", $background: "surface4" };
273
+ return {
274
+ $font: "text5",
275
+ $background: "surface4"
276
+ };
385
277
  }
386
278
  }
387
279
  function sizeToProps(size) {
@@ -420,9 +312,7 @@ function validateIconSize(size, icon) {
420
312
  }
421
313
  const [iconSize] = result;
422
314
  if (iconSize !== requiredIconSize) {
423
- console.warn(
424
- `IconButton with size "${size}" expect icon size "${requiredIconSize}, but got "${iconSize}"`
425
- );
315
+ console.warn(`IconButton with size "${size}" expect icon size "${requiredIconSize}, but got "${iconSize}"`);
426
316
  }
427
317
  }
428
318
 
@@ -431,8 +321,14 @@ var import_react4 = require("react");
431
321
  var React3 = __toESM(require("react"));
432
322
  var import_styled_components5 = __toESM(require("styled-components"));
433
323
  var import_warning = __toESM(require("warning"));
324
+ var import_styled4 = require("@charcoal-ui/styled");
434
325
  var import_jsx_runtime6 = require("react/jsx-runtime");
435
- var Radio = (0, import_react4.forwardRef)(function RadioInner({ value, disabled = false, children, className }, ref) {
326
+ var Radio = (0, import_react4.forwardRef)(function RadioInner({
327
+ value,
328
+ disabled = false,
329
+ children,
330
+ className
331
+ }, ref) {
436
332
  const {
437
333
  name,
438
334
  selected,
@@ -448,141 +344,29 @@ var Radio = (0, import_react4.forwardRef)(function RadioInner({ value, disabled
448
344
  const isSelected = value === selected;
449
345
  const isDisabled = disabled || isParentDisabled;
450
346
  const isReadonly = readonly && !isSelected;
451
- const handleChange = (0, import_react4.useCallback)(
452
- (e) => {
453
- onChange(e.currentTarget.value);
454
- },
455
- [onChange]
456
- );
347
+ const handleChange = (0, import_react4.useCallback)((e) => {
348
+ onChange(e.currentTarget.value);
349
+ }, [onChange]);
457
350
  return /* @__PURE__ */ (0, import_jsx_runtime6.jsxs)(RadioRoot, { "aria-disabled": isDisabled || isReadonly, className, children: [
458
- /* @__PURE__ */ (0, import_jsx_runtime6.jsx)(
459
- RadioInput,
460
- {
461
- name,
462
- value,
463
- checked: isSelected,
464
- invalid,
465
- onChange: handleChange,
466
- disabled: isDisabled || isReadonly,
467
- ref
468
- }
469
- ),
351
+ /* @__PURE__ */ (0, import_jsx_runtime6.jsx)(RadioInput, { name, value, checked: isSelected, "aria-invalid": invalid, onChange: handleChange, disabled: isDisabled || isReadonly, ref }),
470
352
  children != null && /* @__PURE__ */ (0, import_jsx_runtime6.jsx)(RadioLabel, { children })
471
353
  ] });
472
354
  });
473
355
  var Radio_default = (0, import_react4.memo)(Radio);
474
- var RadioRoot = import_styled_components5.default.label`
475
- display: grid;
476
- grid-template-columns: auto 1fr;
477
- grid-gap: 4px;
478
- align-items: center;
479
- cursor: pointer;
480
-
481
- &:disabled,
482
- &[aria-disabled]:not([aria-disabled='false']) {
483
- opacity: 0.32;
484
- }
485
- `;
486
- var RadioInput = import_styled_components5.default.input.attrs({ type: "radio" })`
487
- /** Make prior to browser default style */
488
- &[type='radio'] {
489
- appearance: none;
490
- display: block;
491
- box-sizing: border-box;
492
-
493
- margin: 0;
494
- padding: 6px;
495
-
496
- width: 20px;
497
- height: 20px;
498
- cursor: pointer;
499
- border-radius: 999999px;
500
- background-color: var(--charcoal-surface1);
501
- transition: 0.2s background-color, 0.2s box-shadow;
502
-
503
- &:not(:disabled):not([aria-disabled]),
504
- &[aria-disabled='false'] {
505
- ${({ invalid = false }) => invalid && import_styled_components5.css`
506
- box-shadow: 0 0 0 4px rgba(255, 43, 0, 0.32);
507
- `}
508
-
509
- &:hover {
510
- background-color: var(--charcoal-surface1-hover);
511
- }
512
- &:active {
513
- background-color: var(--charcoal-surface1-press);
514
- }
515
- &:focus,
516
- &:active,
517
- &:focus-visible {
518
- outline: none;
519
- box-shadow: 0 0 0 4px rgba(0, 150, 250, 0.32);
520
- }
521
- }
522
-
523
- &:not(:checked) {
524
- border-width: 2px;
525
- border-style: solid;
526
- border-color: var(--charcoal-text3);
527
- }
528
-
529
- &:checked {
530
- background-color: var(--charcoal-brand);
531
- &::after {
532
- content: '';
533
- display: block;
534
- width: 8px;
535
- height: 8px;
536
- pointer-events: none;
537
- background-color: var(--charcoal-text5);
538
- border-radius: 999999px;
539
- transition: 0.2s background-color, 0.2s box-shadow;
540
- }
541
-
542
- &:not(:disabled):not([aria-disabled]),
543
- &[aria-disabled='false'] {
544
- &:hover {
545
- background-color: var(--charcoal-brand-hover);
546
- &::after {
547
- background-color: var(--charcoal-text5-hover);
548
- }
549
- }
550
- &:active {
551
- background-color: var(--charcoal-brand-press);
552
- &::after {
553
- background-color: var(--charcoal-text5-press);
554
- }
555
- }
556
- }
557
- }
558
- }
559
- `;
560
- var RadioLabel = import_styled_components5.default.div`
561
- font-size: 14px;
562
- line-height: 22px;
563
- display: flow-root;
564
- color: var(--charcoal-text2);
565
-
566
- &::before {
567
- display: block;
568
- width: 0;
569
- height: 0;
570
- content: '';
571
- margin-top: -4px;
572
- }
573
- &::after {
574
- display: block;
575
- width: 0;
576
- height: 0;
577
- content: '';
578
- margin-bottom: -4px;
579
- }
580
- `;
581
- var StyledRadioGroup = import_styled_components5.default.div`
582
- display: grid;
583
- grid-template-columns: 1fr;
584
- grid-gap: 8px;
585
- `;
356
+ var RadioRoot = import_styled_components5.default.label.withConfig({
357
+ componentId: "ccl__sc-1hitkzn-0"
358
+ })(["display:grid;grid-template-columns:auto 1fr;grid-gap:4px;align-items:center;cursor:pointer;&[aria-disabled]:not([aria-disabled='false']){opacity:0.32;cursor:default;}"]);
359
+ var RadioInput = import_styled_components5.default.input.attrs({
360
+ type: "radio"
361
+ }).withConfig({
362
+ componentId: "ccl__sc-1hitkzn-1"
363
+ })(["&[type='radio']{appearance:none;display:block;box-sizing:border-box;margin:0;padding:6px;width:20px;height:20px;cursor:pointer;border-radius:999999px;background-color:var(--charcoal-surface1);transition:0.2s background-color,0.2s box-shadow;:disabled{cursor:default;}&:not(:disabled):not([aria-disabled]),&[aria-disabled='false']{&:hover{background-color:var(--charcoal-surface1-hover);}&:active{background-color:var(--charcoal-surface1-press);}", " &[aria-invalid='true']{box-shadow:0 0 0 4px rgba(255,43,0,0.32);&:focus{box-shadow:0 0 0 4px rgba(255,43,0,0.32);}}}&:not(:checked){border-width:2px;border-style:solid;border-color:var(--charcoal-text3);}&:checked{background-color:var(--charcoal-brand);&::after{content:'';display:block;width:8px;height:8px;pointer-events:none;background-color:var(--charcoal-text5);border-radius:999999px;transition:0.2s background-color,0.2s box-shadow;}&:not(:disabled):not([aria-disabled]),&[aria-disabled='false']{&:hover{background-color:var(--charcoal-brand-hover);&::after{background-color:var(--charcoal-text5-hover);}}&:active{background-color:var(--charcoal-brand-press);&::after{background-color:var(--charcoal-text5-press);}}}}}"], import_styled4.focusVisibleFocusRingCss);
364
+ var RadioLabel = import_styled_components5.default.div.withConfig({
365
+ componentId: "ccl__sc-1hitkzn-2"
366
+ })(["font-size:14px;line-height:22px;display:flow-root;color:var(--charcoal-text2);&::before{display:block;width:0;height:0;content:'';margin-top:-4px;}&::after{display:block;width:0;height:0;content:'';margin-bottom:-4px;}"]);
367
+ var StyledRadioGroup = import_styled_components5.default.div.withConfig({
368
+ componentId: "ccl__sc-1hitkzn-3"
369
+ })(["display:grid;grid-template-columns:1fr;grid-gap:8px;"]);
586
370
  var RadioGroupContext = React3.createContext({
587
371
  name: void 0,
588
372
  selected: void 0,
@@ -590,9 +374,7 @@ var RadioGroupContext = React3.createContext({
590
374
  readonly: false,
591
375
  invalid: false,
592
376
  onChange() {
593
- throw new Error(
594
- "Cannot find onChange() handler. Perhaps you forgot to wrap with <RadioGroup> ?"
595
- );
377
+ throw new Error("Cannot find onChange() handler. Perhaps you forgot to wrap with <RadioGroup> ?");
596
378
  }
597
379
  });
598
380
  function RadioGroup({
@@ -606,36 +388,17 @@ function RadioGroup({
606
388
  invalid,
607
389
  children
608
390
  }) {
609
- const handleChange = (0, import_react4.useCallback)(
610
- (next) => {
611
- onChange(next);
612
- },
613
- [onChange]
614
- );
615
- return /* @__PURE__ */ (0, import_jsx_runtime6.jsx)(
616
- RadioGroupContext.Provider,
617
- {
618
- value: {
619
- name,
620
- selected: value,
621
- disabled: disabled ?? false,
622
- readonly: readonly ?? false,
623
- invalid: invalid ?? false,
624
- onChange: handleChange
625
- },
626
- children: /* @__PURE__ */ (0, import_jsx_runtime6.jsx)(
627
- StyledRadioGroup,
628
- {
629
- role: "radiogroup",
630
- "aria-orientation": "vertical",
631
- "aria-label": label,
632
- "aria-invalid": invalid,
633
- className,
634
- children
635
- }
636
- )
637
- }
638
- );
391
+ const handleChange = (0, import_react4.useCallback)((next) => {
392
+ onChange(next);
393
+ }, [onChange]);
394
+ return /* @__PURE__ */ (0, import_jsx_runtime6.jsx)(RadioGroupContext.Provider, { value: {
395
+ name,
396
+ selected: value,
397
+ disabled: disabled ?? false,
398
+ readonly: readonly ?? false,
399
+ invalid: invalid ?? false,
400
+ onChange: handleChange
401
+ }, children: /* @__PURE__ */ (0, import_jsx_runtime6.jsx)(StyledRadioGroup, { role: "radiogroup", "aria-orientation": "vertical", "aria-label": label, "aria-invalid": invalid, className, children }) });
639
402
  }
640
403
 
641
404
  // src/components/MultiSelect/index.tsx
@@ -653,194 +416,86 @@ var MultiSelectGroupContext = (0, import_react5.createContext)({
653
416
  readonly: false,
654
417
  invalid: false,
655
418
  onChange() {
656
- throw new Error(
657
- "Cannot find `onChange()` handler. Perhaps you forgot to wrap it with `<MultiSelectGroup />` ?"
658
- );
419
+ throw new Error("Cannot find `onChange()` handler. Perhaps you forgot to wrap it with `<MultiSelectGroup />` ?");
659
420
  }
660
421
  });
661
422
 
662
423
  // src/components/MultiSelect/index.tsx
424
+ var import_styled5 = require("@charcoal-ui/styled");
663
425
  var import_jsx_runtime7 = require("react/jsx-runtime");
664
- var MultiSelect = (0, import_react6.forwardRef)(
665
- function MultiSelectInner({
666
- value,
667
- disabled = false,
668
- onChange,
669
- variant = "default",
670
- className,
671
- children
672
- }, ref) {
673
- const {
426
+ var MultiSelect = (0, import_react6.forwardRef)(function MultiSelectInner({
427
+ value,
428
+ disabled = false,
429
+ onChange,
430
+ variant = "default",
431
+ className,
432
+ children
433
+ }, ref) {
434
+ const {
435
+ name,
436
+ selected,
437
+ disabled: parentDisabled,
438
+ readonly,
439
+ invalid,
440
+ onChange: parentOnChange
441
+ } = (0, import_react6.useContext)(MultiSelectGroupContext);
442
+ (0, import_warning2.default)(
443
+ name !== void 0,
444
+ `"name" is not Provided for <MultiSelect>. Perhaps you forgot to wrap with <MultiSelectGroup> ?`
445
+ );
446
+ const isSelected = selected.includes(value);
447
+ const isDisabled = disabled || parentDisabled || readonly;
448
+ const handleChange = (0, import_react6.useCallback)((event) => {
449
+ if (!(event.currentTarget instanceof HTMLInputElement)) {
450
+ return;
451
+ }
452
+ if (onChange)
453
+ onChange({
454
+ value,
455
+ selected: event.currentTarget.checked
456
+ });
457
+ parentOnChange({
458
+ value,
459
+ selected: event.currentTarget.checked
460
+ });
461
+ }, [onChange, parentOnChange, value]);
462
+ return /* @__PURE__ */ (0, import_jsx_runtime7.jsxs)(MultiSelectRoot, { "aria-disabled": isDisabled, className, children: [
463
+ /* @__PURE__ */ (0, import_jsx_runtime7.jsx)(MultiSelectInput, { ...{
674
464
  name,
675
- selected,
676
- disabled: parentDisabled,
677
- readonly,
678
- invalid,
679
- onChange: parentOnChange
680
- } = (0, import_react6.useContext)(MultiSelectGroupContext);
681
- (0, import_warning2.default)(
682
- name !== void 0,
683
- `"name" is not Provided for <MultiSelect>. Perhaps you forgot to wrap with <MultiSelectGroup> ?`
684
- );
685
- const isSelected = selected.includes(value);
686
- const isDisabled = disabled || parentDisabled || readonly;
687
- const handleChange = (0, import_react6.useCallback)(
688
- (event) => {
689
- if (!(event.currentTarget instanceof HTMLInputElement)) {
690
- return;
691
- }
692
- if (onChange)
693
- onChange({ value, selected: event.currentTarget.checked });
694
- parentOnChange({ value, selected: event.currentTarget.checked });
695
- },
696
- [onChange, parentOnChange, value]
697
- );
698
- return /* @__PURE__ */ (0, import_jsx_runtime7.jsxs)(MultiSelectRoot, { "aria-disabled": isDisabled, className, children: [
699
- /* @__PURE__ */ (0, import_jsx_runtime7.jsx)(
700
- MultiSelectInput,
701
- {
702
- ...{
703
- name,
704
- value,
705
- invalid
706
- },
707
- checked: isSelected,
708
- disabled: isDisabled,
709
- onChange: handleChange,
710
- overlay: variant === "overlay",
711
- "aria-invalid": invalid,
712
- ref
713
- }
714
- ),
715
- /* @__PURE__ */ (0, import_jsx_runtime7.jsx)(
716
- MultiSelectInputOverlay,
717
- {
718
- overlay: variant === "overlay",
719
- invalid,
720
- "aria-hidden": true,
721
- children: /* @__PURE__ */ (0, import_jsx_runtime7.jsx)("pixiv-icon", { name: "24/Check", "unsafe-non-guideline-scale": 16 / 24 })
722
- }
723
- ),
724
- Boolean(children) && /* @__PURE__ */ (0, import_jsx_runtime7.jsx)(MultiSelectLabel, { children })
725
- ] });
726
- }
727
- );
465
+ value,
466
+ invalid
467
+ }, checked: isSelected, disabled: isDisabled, onChange: handleChange, overlay: variant === "overlay", "aria-invalid": invalid, ref }),
468
+ /* @__PURE__ */ (0, import_jsx_runtime7.jsx)(MultiSelectInputOverlay, { overlay: variant === "overlay", invalid, "aria-hidden": true, children: /* @__PURE__ */ (0, import_jsx_runtime7.jsx)("pixiv-icon", { name: "24/Check", "unsafe-non-guideline-scale": 16 / 24 }) }),
469
+ Boolean(children) && /* @__PURE__ */ (0, import_jsx_runtime7.jsx)(MultiSelectLabel, { children })
470
+ ] });
471
+ });
728
472
  var MultiSelect_default = (0, import_react6.memo)(MultiSelect);
729
- var MultiSelectRoot = import_styled_components6.default.label`
730
- display: grid;
731
- grid-template-columns: auto 1fr;
732
- align-items: center;
733
- position: relative;
734
- cursor: pointer;
735
- gap: ${({ theme }) => (0, import_utils2.px)(theme.spacing[4])};
736
- &:disabled,
737
- &[aria-disabled]:not([aria-disabled='false']) {
738
- opacity: 0.32;
739
- cursor: default;
740
- }
741
- `;
742
- var MultiSelectLabel = import_styled_components6.default.div`
743
- display: flex;
744
- align-items: center;
745
- font-size: 14px;
746
- line-height: 22px;
747
- display: flow-root;
748
- color: var(--charcoal-text2);
749
-
750
- &::before {
751
- display: block;
752
- width: 0;
753
- height: 0;
754
- content: '';
755
- margin-top: -4px;
756
- }
757
- &::after {
758
- display: block;
759
- width: 0;
760
- height: 0;
761
- content: '';
762
- margin-bottom: -4px;
763
- }
764
- `;
765
- var MultiSelectInput = import_styled_components6.default.input.attrs({ type: "checkbox" })`
766
- &[type='checkbox'] {
767
- appearance: none;
768
- display: block;
769
- width: 20px;
770
- height: 20px;
771
- margin: 0;
772
- background-color: var(--charcoal-text3);
773
- border-radius: 999999px;
774
- transition: 0.2s background-color, 0.2s box-shadow;
775
-
776
- &:checked {
777
- background-color: var(--charcoal-brand);
778
- &:hover {
779
- &:not(:disabled):not([aria-disabled]),
780
- &[aria-disabled='false'] {
781
- background-color: var(--charcoal-brand-hover);
782
- }
783
- }
784
-
785
- &:active {
786
- &:not(:disabled):not([aria-disabled]),
787
- &[aria-disabled='false'] {
788
- background-color: var(--charcoal-brand-press);
789
- }
790
- }
791
- }
792
-
793
- &:hover {
794
- &:not(:disabled):not([aria-disabled]),
795
- &[aria-disabled='false'] {
796
- background-color: var(--charcoal-text3-hover);
797
- }
798
- }
799
-
800
- &:active {
801
- &:not(:disabled):not([aria-disabled]),
802
- &[aria-disabled='false'] {
803
- background-color: var(--charcoal-text3-press);
804
- }
805
- }
806
-
807
- ${({ invalid, overlay }) => invalid && !overlay && import_styled_components6.css`
808
- &:not(:disabled):not([aria-disabled]),
809
- &[aria-disabled='false'] {
810
- box-shadow: 0 0 0 4px rgba(255, 43, 0, 0.32);
811
- }
812
- `}
813
- ${({ overlay }) => overlay && import_styled_components6.css`
814
- background-color: var(--charcoal-surface4);
815
- `}
816
- }
817
- `;
818
- var MultiSelectInputOverlay = import_styled_components6.default.div`
819
- position: absolute;
820
- top: -2px;
821
- left: -2px;
822
- box-sizing: border-box;
823
- display: flex;
824
- align-items: center;
825
- justify-content: center;
826
- width: 24px;
827
- height: 24px;
828
- border-radius: 999999px;
829
- color: var(--charcoal-text5);
830
- transition: 0.2s box-shadow;
831
- ${({ invalid, overlay }) => invalid && overlay && import_styled_components6.css`
832
- &:not(:disabled):not([aria-disabled]),
833
- &[aria-disabled='false'] {
834
- box-shadow: 0 0 0 4px rgba(255, 43, 0, 0.32);
835
- }
836
- `}
837
-
838
- ${({ overlay }) => overlay && import_styled_components6.css`
839
- border-color: var(--charcoal-text5);
840
- border-width: 2px;
841
- border-style: solid;
842
- `}
843
- `;
473
+ var MultiSelectRoot = import_styled_components6.default.label.withConfig({
474
+ componentId: "ccl__sc-wpr5y9-0"
475
+ })(["display:grid;grid-template-columns:auto 1fr;align-items:center;position:relative;cursor:pointer;gap:", ";&:disabled,&[aria-disabled]:not([aria-disabled='false']){opacity:0.32;cursor:default;}"], ({
476
+ theme
477
+ }) => (0, import_utils2.px)(theme.spacing[4]));
478
+ var MultiSelectLabel = import_styled_components6.default.div.withConfig({
479
+ componentId: "ccl__sc-wpr5y9-1"
480
+ })(["display:flex;align-items:center;font-size:14px;line-height:22px;display:flow-root;color:var(--charcoal-text2);&::before{display:block;width:0;height:0;content:'';margin-top:-4px;}&::after{display:block;width:0;height:0;content:'';margin-bottom:-4px;}"]);
481
+ var MultiSelectInput = import_styled_components6.default.input.attrs({
482
+ type: "checkbox"
483
+ }).withConfig({
484
+ componentId: "ccl__sc-wpr5y9-2"
485
+ })(["&[type='checkbox']{appearance:none;display:block;width:20px;height:20px;margin:0;background-color:var(--charcoal-text3);border-radius:999999px;transition:0.2s background-color,0.2s box-shadow;&:checked{background-color:var(--charcoal-brand);&:hover{&:not(:disabled):not([aria-disabled]),&[aria-disabled='false']{background-color:var(--charcoal-brand-hover);}}&:active{&:not(:disabled):not([aria-disabled]),&[aria-disabled='false']{background-color:var(--charcoal-brand-press);}}}&:hover{&:not(:disabled):not([aria-disabled]),&[aria-disabled='false']{background-color:var(--charcoal-text3-hover);}}&:active{&:not(:disabled):not([aria-disabled]),&[aria-disabled='false']{background-color:var(--charcoal-text3-press);}}", " ", " ", "}"], import_styled5.focusVisibleFocusRingCss, ({
486
+ invalid,
487
+ overlay
488
+ }) => invalid && !overlay && (0, import_styled_components6.css)(["&:not(:disabled):not([aria-disabled]),&[aria-disabled='false']{box-shadow:0 0 0 4px rgba(255,43,0,0.32);}"]), ({
489
+ overlay
490
+ }) => overlay && (0, import_styled_components6.css)(["background-color:var(--charcoal-surface4);"]));
491
+ var MultiSelectInputOverlay = import_styled_components6.default.div.withConfig({
492
+ componentId: "ccl__sc-wpr5y9-3"
493
+ })(["position:absolute;top:-2px;left:-2px;box-sizing:border-box;display:flex;align-items:center;justify-content:center;width:24px;height:24px;border-radius:999999px;color:var(--charcoal-text5);transition:0.2s box-shadow;", " ", ""], ({
494
+ invalid,
495
+ overlay
496
+ }) => invalid && overlay && (0, import_styled_components6.css)(["&:not(:disabled):not([aria-disabled]),&[aria-disabled='false']{box-shadow:0 0 0 4px rgba(255,43,0,0.32);}"]), ({
497
+ overlay
498
+ }) => overlay && (0, import_styled_components6.css)(["border-color:var(--charcoal-text5);border-width:2px;border-style:solid;"]));
844
499
  function MultiSelectGroup({
845
500
  className,
846
501
  name,
@@ -852,35 +507,26 @@ function MultiSelectGroup({
852
507
  invalid = false,
853
508
  children
854
509
  }) {
855
- const handleChange = (0, import_react6.useCallback)(
856
- (payload) => {
857
- const index = selected.indexOf(payload.value);
858
- if (payload.selected) {
859
- if (index < 0) {
860
- onChange([...selected, payload.value]);
861
- }
862
- } else {
863
- if (index >= 0) {
864
- onChange([...selected.slice(0, index), ...selected.slice(index + 1)]);
865
- }
510
+ const handleChange = (0, import_react6.useCallback)((payload) => {
511
+ const index = selected.indexOf(payload.value);
512
+ if (payload.selected) {
513
+ if (index < 0) {
514
+ onChange([...selected, payload.value]);
515
+ }
516
+ } else {
517
+ if (index >= 0) {
518
+ onChange([...selected.slice(0, index), ...selected.slice(index + 1)]);
866
519
  }
867
- },
868
- [onChange, selected]
869
- );
870
- return /* @__PURE__ */ (0, import_jsx_runtime7.jsx)(
871
- MultiSelectGroupContext.Provider,
872
- {
873
- value: {
874
- name,
875
- selected: Array.from(new Set(selected)),
876
- disabled,
877
- readonly,
878
- invalid,
879
- onChange: handleChange
880
- },
881
- children: /* @__PURE__ */ (0, import_jsx_runtime7.jsx)("div", { className, "aria-label": label, "data-testid": "SelectGroup", children })
882
520
  }
883
- );
521
+ }, [onChange, selected]);
522
+ return /* @__PURE__ */ (0, import_jsx_runtime7.jsx)(MultiSelectGroupContext.Provider, { value: {
523
+ name,
524
+ selected: Array.from(new Set(selected)),
525
+ disabled,
526
+ readonly,
527
+ invalid,
528
+ onChange: handleChange
529
+ }, children: /* @__PURE__ */ (0, import_jsx_runtime7.jsx)("div", { className, "aria-label": label, "data-testid": "SelectGroup", children }) });
884
530
  }
885
531
 
886
532
  // src/components/Switch/index.tsx
@@ -889,115 +535,45 @@ var import_react7 = require("react");
889
535
  var import_react_stately = require("react-stately");
890
536
  var import_styled_components7 = __toESM(require("styled-components"));
891
537
  var import_utils3 = require("@react-aria/utils");
538
+ var import_styled6 = require("@charcoal-ui/styled");
892
539
  var import_jsx_runtime8 = require("react/jsx-runtime");
893
- var SwitchCheckbox = (0, import_react7.forwardRef)(
894
- function SwitchCheckboxInner(props, external) {
895
- const { disabled, className } = props;
896
- const ariaSwitchProps = (0, import_react7.useMemo)(
897
- () => ({
898
- ...props,
899
- "aria-label": "children" in props ? void 0 : props.label,
900
- isDisabled: props.disabled,
901
- isSelected: props.checked
902
- }),
903
- [props]
904
- );
905
- const state = (0, import_react_stately.useToggleState)(ariaSwitchProps);
906
- const ref = (0, import_utils3.useObjectRef)(external);
907
- const {
908
- inputProps: { className: _className, type: _type, ...rest }
909
- } = (0, import_switch.useSwitch)(ariaSwitchProps, state, ref);
910
- return /* @__PURE__ */ (0, import_jsx_runtime8.jsxs)(Label, { className, "aria-disabled": disabled, children: [
911
- /* @__PURE__ */ (0, import_jsx_runtime8.jsx)(SwitchInput, { ...rest, ref }),
912
- "children" in props ? /* @__PURE__ */ (0, import_jsx_runtime8.jsx)(LabelInner, { children: props.children }) : void 0
913
- ] });
914
- }
915
- );
916
- var Switch_default = (0, import_react7.memo)(SwitchCheckbox);
917
- var Label = import_styled_components7.default.label`
918
- display: inline-grid;
919
- grid-template-columns: auto 1fr;
920
- align-items: center;
921
- cursor: pointer;
922
- outline: 0;
923
-
924
- &:disabled,
925
- &[aria-disabled]:not([aria-disabled='false']) {
926
- opacity: 0.32;
927
- cursor: default;
928
- }
929
-
930
- :active > input {
931
- box-shadow: 0 0 0 4px rgba(0, 150, 250, 0.32);
932
- }
933
- `;
934
- var LabelInner = import_styled_components7.default.div`
935
- font-size: 14px;
936
- line-height: 22px;
937
- color: var(--charcoal-text2);
938
- margin-left: 4px;
939
- `;
940
- var SwitchInput = import_styled_components7.default.input.attrs({ type: "checkbox" })`
941
- appearance: none;
942
- display: inline-flex;
943
- position: relative;
944
- box-sizing: border-box;
945
- width: 28px;
946
- border: 2px solid transparent;
947
-
948
- transition-property: background-color, box-shadow;
949
- transition-duration: 0.2s;
950
- cursor: inherit;
951
-
952
- outline: none;
953
- border-radius: 16px;
954
- height: 16px;
955
- margin: 0;
956
- background-color: var(--charcoal-text4);
957
- :hover {
958
- background-color: var(--charcoal-text4-hover);
959
- }
960
- :active {
961
- background-color: var(--charcoal-text4-press);
962
- }
963
- :focus {
964
- box-shadow: 0 0 0 4px rgba(0, 150, 250, 0.32);
965
- }
966
-
967
- &::after {
968
- content: '';
969
- position: absolute;
970
- display: block;
971
- top: 0;
972
- left: 0;
973
- width: 12px;
974
- height: 12px;
975
- transform: translateX(0);
976
- transition: transform 0.2s;
977
- border-radius: 1024px;
978
- background-color: var(--charcoal-text5);
979
- :hover {
980
- background-color: var(--charcoal-text5-hover);
981
- }
982
- :active {
983
- background-color: var(--charcoal-text5-press);
984
- }
985
- }
986
-
987
- &:checked {
988
- background-color: var(--charcoal-brand);
989
- :hover {
990
- background-color: var(--charcoal-brand-hover);
991
- }
992
- :active {
993
- background-color: var(--charcoal-brand-press);
994
- }
995
- &::after {
996
- transform: translateX(12px);
997
- transition: transform 0.2s;
540
+ var SwitchCheckbox = (0, import_react7.forwardRef)(function SwitchCheckboxInner(props, external) {
541
+ const {
542
+ disabled,
543
+ className
544
+ } = props;
545
+ const ariaSwitchProps = (0, import_react7.useMemo)(() => ({
546
+ ...props,
547
+ "aria-label": "children" in props ? void 0 : props.label,
548
+ isDisabled: props.disabled,
549
+ isSelected: props.checked
550
+ }), [props]);
551
+ const state = (0, import_react_stately.useToggleState)(ariaSwitchProps);
552
+ const ref = (0, import_utils3.useObjectRef)(external);
553
+ const {
554
+ inputProps: {
555
+ className: _className,
556
+ type: _type,
557
+ ...rest
998
558
  }
999
- }
1000
- `;
559
+ } = (0, import_switch.useSwitch)(ariaSwitchProps, state, ref);
560
+ return /* @__PURE__ */ (0, import_jsx_runtime8.jsxs)(Label, { className, "aria-disabled": disabled, children: [
561
+ /* @__PURE__ */ (0, import_jsx_runtime8.jsx)(SwitchInput, { ...rest, ref }),
562
+ "children" in props ? /* @__PURE__ */ (0, import_jsx_runtime8.jsx)(LabelInner, { children: props.children }) : void 0
563
+ ] });
564
+ });
565
+ var Switch_default = (0, import_react7.memo)(SwitchCheckbox);
566
+ var Label = import_styled_components7.default.label.withConfig({
567
+ componentId: "ccl__sc-1wy6z5h-0"
568
+ })(["display:inline-grid;grid-template-columns:auto 1fr;align-items:center;cursor:pointer;outline:0;&:disabled,&[aria-disabled]:not([aria-disabled='false']){opacity:0.32;cursor:default;}"]);
569
+ var LabelInner = import_styled_components7.default.div.withConfig({
570
+ componentId: "ccl__sc-1wy6z5h-1"
571
+ })(["font-size:14px;line-height:22px;color:var(--charcoal-text2);margin-left:4px;"]);
572
+ var SwitchInput = import_styled_components7.default.input.attrs({
573
+ type: "checkbox"
574
+ }).withConfig({
575
+ componentId: "ccl__sc-1wy6z5h-2"
576
+ })(["appearance:none;display:inline-flex;position:relative;box-sizing:border-box;width:28px;border:2px solid transparent;transition-property:background-color,box-shadow;transition-duration:0.2s;cursor:inherit;outline:none;border-radius:16px;height:16px;margin:0;background-color:var(--charcoal-text4);:hover{background-color:var(--charcoal-text4-hover);}:active{background-color:var(--charcoal-text4-press);}", " &::after{content:'';position:absolute;display:block;top:0;left:0;width:12px;height:12px;transform:translateX(0);transition:transform 0.2s;border-radius:1024px;background-color:var(--charcoal-text5);:hover{background-color:var(--charcoal-text5-hover);}:active{background-color:var(--charcoal-text5-press);}}&:checked{background-color:var(--charcoal-brand);:hover{background-color:var(--charcoal-brand-hover);}:active{background-color:var(--charcoal-brand-press);}&::after{transform:translateX(12px);transition:transform 0.2s;}}"], import_styled6.focusVisibleFocusRingCss);
1001
577
 
1002
578
  // src/components/TextField/index.tsx
1003
579
  var import_textfield = require("@react-aria/textfield");
@@ -1010,117 +586,34 @@ var import_styled_components9 = __toESM(require("styled-components"));
1010
586
  var React4 = __toESM(require("react"));
1011
587
  var import_styled_components8 = __toESM(require("styled-components"));
1012
588
  var import_jsx_runtime9 = require("react/jsx-runtime");
1013
- var FieldLabel = React4.forwardRef(
1014
- function FieldLabel2({
1015
- style,
1016
- className,
1017
- label,
1018
- required = false,
1019
- requiredText,
1020
- subLabel,
1021
- ...labelProps
1022
- }, ref) {
1023
- return /* @__PURE__ */ (0, import_jsx_runtime9.jsxs)(FieldLabelWrapper, { style, className, children: [
1024
- /* @__PURE__ */ (0, import_jsx_runtime9.jsx)(Label2, { ref, ...labelProps, children: label }),
1025
- required && /* @__PURE__ */ (0, import_jsx_runtime9.jsx)(RequiredText, { children: requiredText }),
1026
- /* @__PURE__ */ (0, import_jsx_runtime9.jsx)(SubLabelClickable, { children: /* @__PURE__ */ (0, import_jsx_runtime9.jsx)("span", { children: subLabel }) })
1027
- ] });
1028
- }
1029
- );
589
+ var FieldLabel = React4.forwardRef(function FieldLabel2({
590
+ style,
591
+ className,
592
+ label,
593
+ required = false,
594
+ requiredText,
595
+ subLabel,
596
+ ...labelProps
597
+ }, ref) {
598
+ return /* @__PURE__ */ (0, import_jsx_runtime9.jsxs)(FieldLabelWrapper, { style, className, children: [
599
+ /* @__PURE__ */ (0, import_jsx_runtime9.jsx)(Label2, { ref, ...labelProps, children: label }),
600
+ required && /* @__PURE__ */ (0, import_jsx_runtime9.jsx)(RequiredText, { children: requiredText }),
601
+ /* @__PURE__ */ (0, import_jsx_runtime9.jsx)(SubLabelClickable, { children: /* @__PURE__ */ (0, import_jsx_runtime9.jsx)("span", { children: subLabel }) })
602
+ ] });
603
+ });
1030
604
  var FieldLabel_default = FieldLabel;
1031
- var Label2 = import_styled_components8.default.label`
1032
- font-size: 14px;
1033
- line-height: 22px;
1034
- font-weight: bold;
1035
- display: flow-root;
1036
- color: var(--charcoal-text1);
1037
-
1038
- &::before {
1039
- display: block;
1040
- width: 0;
1041
- height: 0;
1042
- content: '';
1043
- margin-top: -4px;
1044
- }
1045
- &::after {
1046
- display: block;
1047
- width: 0;
1048
- height: 0;
1049
- content: '';
1050
- margin-bottom: -4px;
1051
- }
1052
- `;
1053
- var RequiredText = import_styled_components8.default.span`
1054
- font-size: 14px;
1055
- line-height: 22px;
1056
- display: flow-root;
1057
- color: var(--charcoal-text2);
1058
-
1059
- &::before {
1060
- display: block;
1061
- width: 0;
1062
- height: 0;
1063
- content: '';
1064
- margin-top: -4px;
1065
- }
1066
- &::after {
1067
- display: block;
1068
- width: 0;
1069
- height: 0;
1070
- content: '';
1071
- margin-bottom: -4px;
1072
- }
1073
- `;
1074
- var SubLabelClickable = import_styled_components8.default.div`
1075
- font-size: 14px;
1076
- line-height: 22px;
1077
- display: flow-root;
1078
- color: var(--charcoal-text3);
1079
- transition: 0.2s color, 0.2s box-shadow;
1080
-
1081
- &::before {
1082
- display: block;
1083
- width: 0;
1084
- height: 0;
1085
- content: '';
1086
- margin-top: -4px;
1087
- }
1088
- &::after {
1089
- display: block;
1090
- width: 0;
1091
- height: 0;
1092
- content: '';
1093
- margin-bottom: -4px;
1094
- }
1095
-
1096
- &:not(:disabled):not([aria-disabled]),
1097
- &[aria-disabled='false'] {
1098
- &:hover {
1099
- color: var(--charcoal-text3-hover);
1100
- }
1101
- &:active {
1102
- color: var(--charcoal-text3-press);
1103
- }
1104
- &:active,
1105
- &:focus,
1106
- &:focus-visible {
1107
- outline: none;
1108
- box-shadow: 0 0 0 4px rgba(0, 150, 250, 0.32);
1109
- }
1110
- }
1111
- `;
1112
- var FieldLabelWrapper = import_styled_components8.default.div`
1113
- display: inline-flex;
1114
- align-items: center;
1115
-
1116
- > ${RequiredText} {
1117
- margin-left: 4px;
1118
- }
1119
-
1120
- > ${SubLabelClickable} {
1121
- margin-left: auto;
1122
- }
1123
- `;
605
+ var Label2 = import_styled_components8.default.label.withConfig({
606
+ componentId: "ccl__sc-1iotshb-0"
607
+ })(["font-size:14px;line-height:22px;font-weight:bold;display:flow-root;color:var(--charcoal-text1);&::before{display:block;width:0;height:0;content:'';margin-top:-4px;}&::after{display:block;width:0;height:0;content:'';margin-bottom:-4px;}"]);
608
+ var RequiredText = import_styled_components8.default.span.withConfig({
609
+ componentId: "ccl__sc-1iotshb-1"
610
+ })(["font-size:14px;line-height:22px;display:flow-root;color:var(--charcoal-text2);&::before{display:block;width:0;height:0;content:'';margin-top:-4px;}&::after{display:block;width:0;height:0;content:'';margin-bottom:-4px;}"]);
611
+ var SubLabelClickable = import_styled_components8.default.div.withConfig({
612
+ componentId: "ccl__sc-1iotshb-2"
613
+ })(["font-size:14px;line-height:22px;display:flow-root;color:var(--charcoal-text3);transition:0.2s color,0.2s box-shadow;&::before{display:block;width:0;height:0;content:'';margin-top:-4px;}&::after{display:block;width:0;height:0;content:'';margin-bottom:-4px;}&:not(:disabled):not([aria-disabled]),&[aria-disabled='false']{&:hover{color:var(--charcoal-text3-hover);}&:active{color:var(--charcoal-text3-press);}&:active,&:focus,&:focus-visible{outline:none;box-shadow:0 0 0 4px rgba(0,150,250,0.32);}}"]);
614
+ var FieldLabelWrapper = import_styled_components8.default.div.withConfig({
615
+ componentId: "ccl__sc-1iotshb-3"
616
+ })(["display:inline-flex;align-items:center;> ", "{margin-left:4px;}> ", "{margin-left:auto;}"], RequiredText, SubLabelClickable);
1124
617
 
1125
618
  // src/components/TextField/useFocusWithClick.tsx
1126
619
  var import_react8 = require("react");
@@ -1142,426 +635,239 @@ function useFocusWithClick(containerRef, inputRef) {
1142
635
  }
1143
636
 
1144
637
  // src/components/TextField/index.tsx
638
+ var import_utils4 = require("@react-aria/utils");
1145
639
  var import_jsx_runtime10 = require("react/jsx-runtime");
1146
- var TextField = React5.forwardRef(
1147
- function SingleLineTextFieldInner({ onChange, ...props }, forwardRef18) {
1148
- const {
1149
- className,
1150
- showLabel = false,
1151
- showCount = false,
1152
- label,
1153
- requiredText,
1154
- subLabel,
1155
- disabled = false,
1156
- required,
1157
- invalid = false,
1158
- assistiveText,
1159
- maxLength,
1160
- prefix = null,
1161
- suffix = null
1162
- } = props;
1163
- const { visuallyHiddenProps } = (0, import_visually_hidden.useVisuallyHidden)();
1164
- const ariaRef = (0, import_react9.useRef)(null);
1165
- const [count, setCount] = (0, import_react9.useState)(
1166
- countCodePointsInString(props.value ?? "")
1167
- );
1168
- const nonControlled = props.value === void 0;
1169
- const handleChange = (0, import_react9.useCallback)(
1170
- (value) => {
1171
- const count2 = countCodePointsInString(value);
1172
- if (maxLength !== void 0 && count2 > maxLength) {
1173
- return;
1174
- }
1175
- if (nonControlled) {
1176
- setCount(count2);
1177
- }
1178
- onChange?.(value);
1179
- },
1180
- [maxLength, nonControlled, onChange]
1181
- );
1182
- (0, import_react9.useEffect)(() => {
1183
- setCount(countCodePointsInString(props.value ?? ""));
1184
- }, [props.value]);
1185
- const { inputProps, labelProps, descriptionProps, errorMessageProps } = (0, import_textfield.useTextField)(
1186
- {
1187
- inputElementType: "input",
1188
- isDisabled: disabled,
1189
- isRequired: required,
1190
- validationState: invalid ? "invalid" : "valid",
1191
- description: !invalid && assistiveText,
1192
- errorMessage: invalid && assistiveText,
1193
- onChange: handleChange,
1194
- ...props
1195
- },
1196
- ariaRef
1197
- );
1198
- const containerRef = (0, import_react9.useRef)(null);
1199
- useFocusWithClick(containerRef, ariaRef);
1200
- return /* @__PURE__ */ (0, import_jsx_runtime10.jsxs)(TextFieldRoot, { className, isDisabled: disabled, children: [
1201
- /* @__PURE__ */ (0, import_jsx_runtime10.jsx)(
1202
- TextFieldLabel,
1203
- {
1204
- label,
1205
- requiredText,
1206
- required,
1207
- subLabel,
1208
- ...labelProps,
1209
- ...!showLabel ? visuallyHiddenProps : {}
1210
- }
1211
- ),
1212
- /* @__PURE__ */ (0, import_jsx_runtime10.jsxs)(
1213
- StyledInputContainer,
1214
- {
1215
- ref: containerRef,
1216
- invalid,
1217
- "aria-disabled": disabled === true ? true : void 0,
1218
- hasPrefix: prefix != null,
1219
- hasSuffix: suffix != null || showCount,
1220
- children: [
1221
- prefix && /* @__PURE__ */ (0, import_jsx_runtime10.jsx)(PrefixContainer, { children: prefix }),
1222
- /* @__PURE__ */ (0, import_jsx_runtime10.jsx)(
1223
- StyledInput,
1224
- {
1225
- ref: mergeRefs(forwardRef18, ariaRef),
1226
- invalid,
1227
- ...inputProps
1228
- }
1229
- ),
1230
- (suffix || showCount) && /* @__PURE__ */ (0, import_jsx_runtime10.jsxs)(SuffixContainer, { children: [
1231
- suffix,
1232
- showCount && /* @__PURE__ */ (0, import_jsx_runtime10.jsx)(SingleLineCounter, { children: maxLength !== void 0 ? `${count}/${maxLength}` : count })
1233
- ] })
1234
- ]
1235
- }
1236
- ),
1237
- assistiveText != null && assistiveText.length !== 0 && /* @__PURE__ */ (0, import_jsx_runtime10.jsx)(
1238
- AssistiveText,
1239
- {
1240
- invalid,
1241
- ...invalid ? errorMessageProps : descriptionProps,
1242
- children: assistiveText
1243
- }
1244
- )
1245
- ] });
1246
- }
1247
- );
640
+ var TextField = React5.forwardRef(function SingleLineTextFieldInner({
641
+ onChange,
642
+ ...props
643
+ }, forwardRef18) {
644
+ const {
645
+ className,
646
+ showLabel = false,
647
+ showCount = false,
648
+ label,
649
+ requiredText,
650
+ subLabel,
651
+ disabled = false,
652
+ required,
653
+ invalid = false,
654
+ assistiveText,
655
+ maxLength,
656
+ prefix = null,
657
+ suffix = null,
658
+ ...restProps
659
+ } = props;
660
+ const {
661
+ visuallyHiddenProps
662
+ } = (0, import_visually_hidden.useVisuallyHidden)();
663
+ const ariaRef = (0, import_react9.useRef)(null);
664
+ const [count, setCount] = (0, import_react9.useState)(countCodePointsInString(props.value ?? ""));
665
+ const nonControlled = props.value === void 0;
666
+ const handleChange = (0, import_react9.useCallback)((value) => {
667
+ const count2 = countCodePointsInString(value);
668
+ if (maxLength !== void 0 && count2 > maxLength) {
669
+ return;
670
+ }
671
+ if (nonControlled) {
672
+ setCount(count2);
673
+ }
674
+ onChange?.(value);
675
+ }, [maxLength, nonControlled, onChange]);
676
+ (0, import_react9.useEffect)(() => {
677
+ setCount(countCodePointsInString(props.value ?? ""));
678
+ }, [props.value]);
679
+ const {
680
+ inputProps: ariaInputProps,
681
+ labelProps,
682
+ descriptionProps,
683
+ errorMessageProps
684
+ } = (0, import_textfield.useTextField)({
685
+ inputElementType: "input",
686
+ isDisabled: disabled,
687
+ isRequired: required,
688
+ validationState: invalid ? "invalid" : "valid",
689
+ description: !invalid && assistiveText,
690
+ errorMessage: invalid && assistiveText,
691
+ onChange: handleChange,
692
+ ...props
693
+ }, ariaRef);
694
+ const containerRef = (0, import_react9.useRef)(null);
695
+ useFocusWithClick(containerRef, ariaRef);
696
+ const inputProps = (0, import_utils4.mergeProps)(restProps, ariaInputProps);
697
+ return /* @__PURE__ */ (0, import_jsx_runtime10.jsxs)(TextFieldRoot, { className, isDisabled: disabled, children: [
698
+ /* @__PURE__ */ (0, import_jsx_runtime10.jsx)(TextFieldLabel, { label, requiredText, required, subLabel, ...labelProps, ...!showLabel ? visuallyHiddenProps : {} }),
699
+ /* @__PURE__ */ (0, import_jsx_runtime10.jsxs)(StyledInputContainer, { ref: containerRef, invalid, "aria-disabled": disabled === true ? true : void 0, hasPrefix: prefix != null, hasSuffix: suffix != null || showCount, children: [
700
+ prefix && /* @__PURE__ */ (0, import_jsx_runtime10.jsx)(PrefixContainer, { children: prefix }),
701
+ /* @__PURE__ */ (0, import_jsx_runtime10.jsx)(StyledInput, { ref: mergeRefs(forwardRef18, ariaRef), invalid, ...inputProps }),
702
+ (suffix || showCount) && /* @__PURE__ */ (0, import_jsx_runtime10.jsxs)(SuffixContainer, { children: [
703
+ suffix,
704
+ showCount && /* @__PURE__ */ (0, import_jsx_runtime10.jsx)(SingleLineCounter, { children: maxLength !== void 0 ? `${count}/${maxLength}` : count })
705
+ ] })
706
+ ] }),
707
+ assistiveText != null && assistiveText.length !== 0 && /* @__PURE__ */ (0, import_jsx_runtime10.jsx)(AssistiveText, { invalid, ...invalid ? errorMessageProps : descriptionProps, children: assistiveText })
708
+ ] });
709
+ });
1248
710
  var TextField_default = TextField;
1249
- var TextFieldRoot = import_styled_components9.default.div`
1250
- display: flex;
1251
- flex-direction: column;
1252
-
1253
- ${(p) => p.isDisabled && { opacity: p.theme.elementEffect.disabled.opacity }}
1254
- `;
1255
- var TextFieldLabel = (0, import_styled_components9.default)(FieldLabel_default)`
1256
- margin-bottom: 8px;
1257
- `;
1258
- var StyledInputContainer = import_styled_components9.default.div`
1259
- display: grid;
1260
- grid-template-columns: ${(p) => [p.hasPrefix && "auto", "1fr", p.hasSuffix && "auto"].filter(Boolean).join(" ")};
1261
- height: 40px;
1262
- transition: 0.2s background-color, 0.2s box-shadow;
1263
- color: var(--charcoal-text2);
1264
- background-color: var(--charcoal-surface3);
1265
- border-radius: 4px;
1266
- gap: 4px;
1267
- padding: 0 8px;
1268
- line-height: 22px;
1269
- font-size: 14px;
1270
-
1271
- :not(:disabled):not([aria-disabled]):hover,
1272
- [aria-disabled='false']:hover {
1273
- background-color: var(--charcoal-surface3-hover);
1274
- }
1275
-
1276
- :not(:disabled):not([aria-disabled]):active,
1277
- [aria-disabled='false']:active {
1278
- outline: none;
1279
- box-shadow: 0 0 0 4px
1280
- ${(p) => p.invalid ? `rgba(255,43,0,0.32)` : `rgba(0, 150, 250, 0.32);`};
1281
- }
1282
-
1283
- :focus-within {
1284
- outline: none;
1285
- box-shadow: 0 0 0 4px
1286
- ${(p) => p.invalid ? `rgba(255,43,0,0.32)` : `rgba(0, 150, 250, 0.32);`};
1287
- }
1288
-
1289
- ${(p) => p.invalid && import_styled_components9.css`
1290
- box-shadow: 0 0 0 4px rgba(255, 43, 0, 0.32);
1291
- `}
1292
- `;
1293
- var PrefixContainer = import_styled_components9.default.div`
1294
- display: flex;
1295
- align-items: center;
1296
- `;
1297
- var SuffixContainer = import_styled_components9.default.span`
1298
- display: flex;
1299
- align-items: center;
1300
- gap: 8px;
1301
- `;
1302
- var StyledInput = import_styled_components9.default.input`
1303
- border: none;
1304
- box-sizing: border-box;
1305
- outline: none;
1306
- font-family: inherit;
1307
-
1308
- /* Prevent zooming for iOS Safari */
1309
- transform-origin: top left;
1310
- transform: scale(0.875);
1311
- width: calc(100% / 0.875);
1312
- height: calc(100% / 0.875);
1313
- font-size: calc(14px / 0.875);
1314
- line-height: calc(22px / 0.875);
1315
- padding-left: 0;
1316
- padding-right: 0;
1317
- border-radius: calc(4px / 0.875);
1318
-
1319
- /* Display box-shadow for iOS Safari */
1320
- appearance: none;
1321
- background: transparent;
1322
-
1323
- color: var(--charcoal-text2);
1324
- &::placeholder {
1325
- color: var(--charcoal-text3);
1326
- }
1327
- `;
1328
- var SingleLineCounter = import_styled_components9.default.span`
1329
- line-height: 22px;
1330
- font-size: 14px;
1331
- color: var(--charcoal-text3);
1332
- `;
1333
- var AssistiveText = import_styled_components9.default.p`
1334
- font-size: 14px;
1335
- line-height: 22px;
1336
- margin-top: 4px;
1337
- margin-bottom: -4px;
1338
- color: ${(p) => `var(--charcoal-${p.invalid ? `assertive` : `text2`})`};
1339
- `;
711
+ var TextFieldRoot = import_styled_components9.default.div.withConfig({
712
+ componentId: "ccl__sc-3dd0tt-0"
713
+ })(["display:flex;flex-direction:column;", ""], (p) => p.isDisabled && {
714
+ opacity: p.theme.elementEffect.disabled.opacity
715
+ });
716
+ var TextFieldLabel = (0, import_styled_components9.default)(FieldLabel_default).withConfig({
717
+ componentId: "ccl__sc-3dd0tt-1"
718
+ })(["margin-bottom:8px;"]);
719
+ var StyledInputContainer = import_styled_components9.default.div.withConfig({
720
+ componentId: "ccl__sc-3dd0tt-2"
721
+ })(["display:grid;grid-template-columns:", ";height:40px;transition:0.2s background-color,0.2s box-shadow;color:var(--charcoal-text2);background-color:var(--charcoal-surface3);border-radius:4px;gap:4px;padding:0 8px;line-height:22px;font-size:14px;:not(:disabled):not([aria-disabled]):hover,[aria-disabled='false']:hover{background-color:var(--charcoal-surface3-hover);}:focus-within{outline:none;box-shadow:0 0 0 4px ", ";}", ""], (p) => [p.hasPrefix && "auto", "1fr", p.hasSuffix && "auto"].filter(Boolean).join(" "), (p) => p.invalid ? `rgba(255,43,0,0.32)` : `rgba(0, 150, 250, 0.32);`, (p) => p.invalid && (0, import_styled_components9.css)(["box-shadow:0 0 0 4px rgba(255,43,0,0.32);"]));
722
+ var PrefixContainer = import_styled_components9.default.div.withConfig({
723
+ componentId: "ccl__sc-3dd0tt-3"
724
+ })(["display:flex;align-items:center;"]);
725
+ var SuffixContainer = import_styled_components9.default.span.withConfig({
726
+ componentId: "ccl__sc-3dd0tt-4"
727
+ })(["display:flex;align-items:center;gap:8px;"]);
728
+ var StyledInput = import_styled_components9.default.input.withConfig({
729
+ componentId: "ccl__sc-3dd0tt-5"
730
+ })(["border:none;box-sizing:border-box;outline:none;font-family:inherit;transform-origin:top left;transform:scale(0.875);width:calc(100% / 0.875);height:calc(100% / 0.875);font-size:calc(14px / 0.875);line-height:calc(22px / 0.875);padding-left:0;padding-right:0;border-radius:calc(4px / 0.875);appearance:none;background:transparent;color:var(--charcoal-text2);&::placeholder{color:var(--charcoal-text3);}"]);
731
+ var SingleLineCounter = import_styled_components9.default.span.withConfig({
732
+ componentId: "ccl__sc-3dd0tt-6"
733
+ })(["line-height:22px;font-size:14px;color:var(--charcoal-text3);"]);
734
+ var AssistiveText = import_styled_components9.default.p.withConfig({
735
+ componentId: "ccl__sc-3dd0tt-7"
736
+ })(["font-size:14px;line-height:22px;margin-top:4px;margin-bottom:-4px;color:", ";"], (p) => `var(--charcoal-${p.invalid ? `assertive` : `text2`})`);
1340
737
 
1341
738
  // src/components/TextArea/index.tsx
1342
739
  var import_textfield2 = require("@react-aria/textfield");
1343
740
  var import_visually_hidden2 = require("@react-aria/visually-hidden");
1344
741
  var import_react10 = require("react");
1345
742
  var import_styled_components10 = __toESM(require("styled-components"));
743
+ var import_utils5 = require("@react-aria/utils");
1346
744
  var import_jsx_runtime11 = require("react/jsx-runtime");
1347
- var TextArea = (0, import_react10.forwardRef)(
1348
- function TextAreaInner({ onChange, ...props }, forwardRef18) {
1349
- const {
1350
- className,
1351
- showCount = false,
1352
- showLabel = false,
1353
- label,
1354
- requiredText,
1355
- subLabel,
1356
- disabled = false,
1357
- required,
1358
- invalid = false,
1359
- assistiveText,
1360
- maxLength,
1361
- autoHeight = false,
1362
- rows: initialRows = 4
1363
- } = props;
1364
- const { visuallyHiddenProps } = (0, import_visually_hidden2.useVisuallyHidden)();
1365
- const textareaRef = (0, import_react10.useRef)(null);
1366
- const ariaRef = (0, import_react10.useRef)(null);
1367
- const [count, setCount] = (0, import_react10.useState)(
1368
- countCodePointsInString(props.value ?? "")
1369
- );
1370
- const [rows, setRows] = (0, import_react10.useState)(initialRows);
1371
- const syncHeight = (0, import_react10.useCallback)(
1372
- (textarea) => {
1373
- const rows2 = (`${textarea.value}
745
+ var TextArea = (0, import_react10.forwardRef)(function TextAreaInner({
746
+ onChange,
747
+ ...props
748
+ }, forwardRef18) {
749
+ const {
750
+ className,
751
+ showCount = false,
752
+ showLabel = false,
753
+ label,
754
+ requiredText,
755
+ subLabel,
756
+ disabled = false,
757
+ required,
758
+ invalid = false,
759
+ assistiveText,
760
+ maxLength,
761
+ autoHeight = false,
762
+ rows: initialRows = 4,
763
+ ...restProps
764
+ } = props;
765
+ const {
766
+ visuallyHiddenProps
767
+ } = (0, import_visually_hidden2.useVisuallyHidden)();
768
+ const textareaRef = (0, import_react10.useRef)(null);
769
+ const ariaRef = (0, import_react10.useRef)(null);
770
+ const [count, setCount] = (0, import_react10.useState)(countCodePointsInString(props.value ?? ""));
771
+ const [rows, setRows] = (0, import_react10.useState)(initialRows);
772
+ const syncHeight = (0, import_react10.useCallback)((textarea) => {
773
+ const rows2 = (`${textarea.value}
1374
774
  `.match(/\n/gu)?.length ?? 0) || 1;
1375
- setRows(initialRows <= rows2 ? rows2 : initialRows);
1376
- },
1377
- [initialRows]
1378
- );
1379
- const nonControlled = props.value === void 0;
1380
- const handleChange = (0, import_react10.useCallback)(
1381
- (value) => {
1382
- const count2 = countCodePointsInString(value);
1383
- if (maxLength !== void 0 && count2 > maxLength) {
1384
- return;
1385
- }
1386
- if (nonControlled) {
1387
- setCount(count2);
1388
- }
1389
- if (autoHeight && textareaRef.current !== null) {
1390
- syncHeight(textareaRef.current);
1391
- }
1392
- onChange?.(value);
1393
- },
1394
- [autoHeight, maxLength, nonControlled, onChange, syncHeight]
1395
- );
1396
- (0, import_react10.useEffect)(() => {
1397
- setCount(countCodePointsInString(props.value ?? ""));
1398
- }, [props.value]);
1399
- const { inputProps, labelProps, descriptionProps, errorMessageProps } = (0, import_textfield2.useTextField)(
1400
- {
1401
- inputElementType: "textarea",
1402
- isDisabled: disabled,
1403
- isRequired: required,
1404
- validationState: invalid ? "invalid" : "valid",
1405
- description: !invalid && assistiveText,
1406
- errorMessage: invalid && assistiveText,
1407
- onChange: handleChange,
1408
- ...props
1409
- },
1410
- ariaRef
1411
- );
1412
- (0, import_react10.useEffect)(() => {
1413
- if (autoHeight && textareaRef.current !== null) {
1414
- syncHeight(textareaRef.current);
1415
- }
1416
- }, [autoHeight, syncHeight]);
1417
- const containerRef = (0, import_react10.useRef)(null);
1418
- useFocusWithClick(containerRef, ariaRef);
1419
- return /* @__PURE__ */ (0, import_jsx_runtime11.jsxs)(TextFieldRoot2, { className, isDisabled: disabled, children: [
1420
- /* @__PURE__ */ (0, import_jsx_runtime11.jsx)(
1421
- TextFieldLabel,
1422
- {
1423
- label,
1424
- requiredText,
1425
- required,
1426
- subLabel,
1427
- ...labelProps,
1428
- ...!showLabel ? visuallyHiddenProps : {}
1429
- }
1430
- ),
1431
- /* @__PURE__ */ (0, import_jsx_runtime11.jsxs)(
1432
- StyledTextareaContainer,
1433
- {
1434
- ref: containerRef,
1435
- invalid,
1436
- rows: showCount ? rows + 1 : rows,
1437
- "aria-disabled": disabled === true ? "true" : void 0,
1438
- children: [
1439
- /* @__PURE__ */ (0, import_jsx_runtime11.jsx)(
1440
- StyledTextarea,
1441
- {
1442
- ref: mergeRefs(textareaRef, forwardRef18, ariaRef),
1443
- rows,
1444
- noBottomPadding: showCount,
1445
- ...inputProps
1446
- }
1447
- ),
1448
- showCount && /* @__PURE__ */ (0, import_jsx_runtime11.jsx)(MultiLineCounter, { children: maxLength !== void 0 ? `${count}/${maxLength}` : count })
1449
- ]
1450
- }
1451
- ),
1452
- assistiveText != null && assistiveText.length !== 0 && /* @__PURE__ */ (0, import_jsx_runtime11.jsx)(
1453
- AssistiveText,
1454
- {
1455
- invalid,
1456
- ...invalid ? errorMessageProps : descriptionProps,
1457
- children: assistiveText
1458
- }
1459
- )
1460
- ] });
1461
- }
1462
- );
775
+ setRows(initialRows <= rows2 ? rows2 : initialRows);
776
+ }, [initialRows]);
777
+ const nonControlled = props.value === void 0;
778
+ const handleChange = (0, import_react10.useCallback)((value) => {
779
+ const count2 = countCodePointsInString(value);
780
+ if (maxLength !== void 0 && count2 > maxLength) {
781
+ return;
782
+ }
783
+ if (nonControlled) {
784
+ setCount(count2);
785
+ }
786
+ if (autoHeight && textareaRef.current !== null) {
787
+ syncHeight(textareaRef.current);
788
+ }
789
+ onChange?.(value);
790
+ }, [autoHeight, maxLength, nonControlled, onChange, syncHeight]);
791
+ (0, import_react10.useEffect)(() => {
792
+ setCount(countCodePointsInString(props.value ?? ""));
793
+ }, [props.value]);
794
+ const {
795
+ inputProps: ariaInputProps,
796
+ labelProps,
797
+ descriptionProps,
798
+ errorMessageProps
799
+ } = (0, import_textfield2.useTextField)({
800
+ inputElementType: "textarea",
801
+ isDisabled: disabled,
802
+ isRequired: required,
803
+ validationState: invalid ? "invalid" : "valid",
804
+ description: !invalid && assistiveText,
805
+ errorMessage: invalid && assistiveText,
806
+ onChange: handleChange,
807
+ ...props
808
+ }, ariaRef);
809
+ (0, import_react10.useEffect)(() => {
810
+ if (autoHeight && textareaRef.current !== null) {
811
+ syncHeight(textareaRef.current);
812
+ }
813
+ }, [autoHeight, syncHeight]);
814
+ const containerRef = (0, import_react10.useRef)(null);
815
+ useFocusWithClick(containerRef, ariaRef);
816
+ const inputProps = (0, import_utils5.mergeProps)(restProps, ariaInputProps);
817
+ return /* @__PURE__ */ (0, import_jsx_runtime11.jsxs)(TextFieldRoot2, { className, isDisabled: disabled, children: [
818
+ /* @__PURE__ */ (0, import_jsx_runtime11.jsx)(TextFieldLabel, { label, requiredText, required, subLabel, ...labelProps, ...!showLabel ? visuallyHiddenProps : {} }),
819
+ /* @__PURE__ */ (0, import_jsx_runtime11.jsxs)(StyledTextareaContainer, { ref: containerRef, invalid, rows: showCount ? rows + 1 : rows, "aria-disabled": disabled === true ? "true" : void 0, children: [
820
+ /* @__PURE__ */ (0, import_jsx_runtime11.jsx)(StyledTextarea, { ref: mergeRefs(textareaRef, forwardRef18, ariaRef), rows, noBottomPadding: showCount, ...inputProps }),
821
+ showCount && /* @__PURE__ */ (0, import_jsx_runtime11.jsx)(MultiLineCounter, { children: maxLength !== void 0 ? `${count}/${maxLength}` : count })
822
+ ] }),
823
+ assistiveText != null && assistiveText.length !== 0 && /* @__PURE__ */ (0, import_jsx_runtime11.jsx)(AssistiveText, { invalid, ...invalid ? errorMessageProps : descriptionProps, children: assistiveText })
824
+ ] });
825
+ });
1463
826
  var TextArea_default = TextArea;
1464
- var TextFieldRoot2 = import_styled_components10.default.div`
1465
- display: flex;
1466
- flex-direction: column;
1467
-
1468
- ${(p) => p.isDisabled && { opacity: p.theme.elementEffect.disabled.opacity }}
1469
- `;
1470
- var StyledTextareaContainer = import_styled_components10.default.div`
1471
- position: relative;
1472
- overflow: hidden;
1473
-
1474
- color: var(--charcoal-text2);
1475
- background-color: var(--charcoal-surface3);
1476
- border-radius: 4px;
1477
- transition: 0.2s background-color, 0.2s box-shadow;
1478
-
1479
- ${({ rows }) => import_styled_components10.css`
1480
- height: calc(22px * ${rows} + 18px);
1481
- `};
1482
-
1483
- :not([aria-disabled]):hover,
1484
- [aria-disabled='false']:hover {
1485
- background-color: var(--charcoal-surface3-hover);
1486
- }
1487
- :focus-within {
1488
- outline: none;
1489
- box-shadow: 0 0 0 4px
1490
- ${(p) => p.invalid ? `rgba(255,43,0,0.32)` : `rgba(0, 150, 250, 0.32);`};
1491
- }
1492
-
1493
- ${(p) => p.invalid && import_styled_components10.css`
1494
- box-shadow: 0 0 0 4px rgba(255, 43, 0, 0.32);
1495
- `}
1496
- `;
1497
- var StyledTextarea = import_styled_components10.default.textarea`
1498
- border: none;
1499
- outline: none;
1500
- resize: none;
1501
- font-family: inherit;
1502
- color: inherit;
1503
- box-sizing: border-box;
1504
-
1505
- /* Prevent zooming for iOS Safari */
1506
- transform-origin: top left;
1507
- transform: scale(0.875);
1508
- width: calc(100% / 0.875);
1509
- font-size: calc(14px / 0.875);
1510
- line-height: calc(22px / 0.875);
1511
- padding: calc(9px / 0.875) calc(8px / 0.875)
1512
- ${(p) => p.noBottomPadding ? 0 : ""};
1513
-
1514
- ${({ rows = 1, noBottomPadding }) => import_styled_components10.css`
1515
- height: calc(22px / 0.875 * ${rows} + ${noBottomPadding ? 9 : 20}px);
1516
- `};
1517
-
1518
- /* Display box-shadow for iOS Safari */
1519
- appearance: none;
1520
-
1521
- background: none;
1522
-
1523
- &::placeholder {
1524
- color: var(--charcoal-text3);
1525
- }
1526
- `;
1527
- var MultiLineCounter = import_styled_components10.default.span`
1528
- position: absolute;
1529
- bottom: 9px;
1530
- right: 8px;
1531
-
1532
- line-height: 22px;
1533
- font-size: 14px;
1534
- color: var(--charcoal-text3);
1535
- `;
827
+ var TextFieldRoot2 = import_styled_components10.default.div.withConfig({
828
+ componentId: "ccl__sc-58waht-0"
829
+ })(["display:flex;flex-direction:column;", ""], (p) => p.isDisabled && {
830
+ opacity: p.theme.elementEffect.disabled.opacity
831
+ });
832
+ var StyledTextareaContainer = import_styled_components10.default.div.withConfig({
833
+ componentId: "ccl__sc-58waht-1"
834
+ })(["position:relative;overflow:hidden;color:var(--charcoal-text2);background-color:var(--charcoal-surface3);border-radius:4px;transition:0.2s background-color,0.2s box-shadow;", ";:not([aria-disabled]):hover,[aria-disabled='false']:hover{background-color:var(--charcoal-surface3-hover);}:focus-within{outline:none;box-shadow:0 0 0 4px ", ";}", ""], ({
835
+ rows
836
+ }) => (0, import_styled_components10.css)(["height:calc(22px * ", " + 18px);"], rows), (p) => p.invalid ? `rgba(255,43,0,0.32)` : `rgba(0, 150, 250, 0.32);`, (p) => p.invalid && (0, import_styled_components10.css)(["box-shadow:0 0 0 4px rgba(255,43,0,0.32);"]));
837
+ var StyledTextarea = import_styled_components10.default.textarea.withConfig({
838
+ componentId: "ccl__sc-58waht-2"
839
+ })(["border:none;outline:none;resize:none;font-family:inherit;color:inherit;box-sizing:border-box;transform-origin:top left;transform:scale(0.875);width:calc(100% / 0.875);font-size:calc(14px / 0.875);line-height:calc(22px / 0.875);padding:calc(9px / 0.875) calc(8px / 0.875) ", ";", ";appearance:none;background:none;&::placeholder{color:var(--charcoal-text3);}"], (p) => p.noBottomPadding ? 0 : "", ({
840
+ rows = 1,
841
+ noBottomPadding
842
+ }) => (0, import_styled_components10.css)(["height:calc(22px / 0.875 * ", " + ", "px);"], rows, noBottomPadding ? 9 : 20));
843
+ var MultiLineCounter = import_styled_components10.default.span.withConfig({
844
+ componentId: "ccl__sc-58waht-3"
845
+ })(["position:absolute;bottom:9px;right:8px;line-height:22px;font-size:14px;color:var(--charcoal-text3);"]);
1536
846
 
1537
847
  // src/components/Icon/index.tsx
1538
848
  var React6 = __toESM(require("react"));
1539
849
  var import_icons = require("@charcoal-ui/icons");
1540
850
  var import_jsx_runtime12 = require("react/jsx-runtime");
1541
- var Icon = React6.forwardRef(function IconInner({ name, scale, unsafeNonGuidelineScale, className, ...rest }, ref) {
1542
- return /* @__PURE__ */ (0, import_jsx_runtime12.jsx)(
1543
- "pixiv-icon",
1544
- {
1545
- ref,
1546
- name,
1547
- scale,
1548
- "unsafe-non-guideline-scale": unsafeNonGuidelineScale,
1549
- class: className,
1550
- ...rest
1551
- }
1552
- );
851
+ var Icon = React6.forwardRef(function IconInner({
852
+ name,
853
+ scale,
854
+ unsafeNonGuidelineScale,
855
+ className,
856
+ ...rest
857
+ }, ref) {
858
+ return /* @__PURE__ */ (0, import_jsx_runtime12.jsx)("pixiv-icon", { ref, name, scale, "unsafe-non-guideline-scale": unsafeNonGuidelineScale, class: className, ...rest });
1553
859
  });
1554
860
  var Icon_default = Icon;
1555
861
 
1556
862
  // src/components/Modal/index.tsx
1557
863
  var import_react12 = require("react");
1558
- var React9 = __toESM(require("react"));
1559
- var import_overlays2 = require("@react-aria/overlays");
864
+ var React10 = __toESM(require("react"));
865
+ var import_overlays3 = require("@react-aria/overlays");
1560
866
  var import_styled_components12 = __toESM(require("styled-components"));
1561
- var import_utils5 = require("@charcoal-ui/utils");
1562
- var import_styled2 = require("@charcoal-ui/styled");
867
+ var import_utils7 = require("@charcoal-ui/utils");
868
+ var import_styled7 = require("@charcoal-ui/styled");
1563
869
  var import_react_spring2 = require("react-spring");
1564
- var import_utils6 = require("@react-aria/utils");
870
+ var import_utils8 = require("@react-aria/utils");
1565
871
 
1566
872
  // src/components/Modal/Dialog/index.tsx
1567
873
  var import_react11 = require("react");
@@ -1576,7 +882,7 @@ function columnSystem(span, column, gutter) {
1576
882
  }
1577
883
 
1578
884
  // src/components/Modal/Dialog/index.tsx
1579
- var import_utils4 = require("@charcoal-ui/utils");
885
+ var import_utils6 = require("@charcoal-ui/utils");
1580
886
  var import_react_spring = require("react-spring");
1581
887
 
1582
888
  // src/_lib/useForwardedRef.tsx
@@ -1599,29 +905,16 @@ function useForwardedRef(ref) {
1599
905
  var import_jsx_runtime13 = require("react/jsx-runtime");
1600
906
  var Dialog = (0, import_react11.forwardRef)(function Dialog2(props, forwardRef18) {
1601
907
  const ref = useForwardedRef(forwardRef18);
1602
- const { dialogProps } = (0, import_dialog.useDialog)(
1603
- {
1604
- role: "dialog"
1605
- },
1606
- ref
1607
- );
1608
- return /* @__PURE__ */ (0, import_jsx_runtime13.jsx)(
1609
- AnimatedStyledDialogDiv,
1610
- {
1611
- ...props,
1612
- role: dialogProps.role,
1613
- tabIndex: dialogProps.tabIndex,
1614
- "aria-labelledby": dialogProps["aria-labelledby"],
1615
- onBlur: dialogProps.onBlur,
1616
- ref
1617
- }
1618
- );
908
+ const {
909
+ dialogProps
910
+ } = (0, import_dialog.useDialog)({
911
+ role: "dialog"
912
+ }, ref);
913
+ return /* @__PURE__ */ (0, import_jsx_runtime13.jsx)(AnimatedStyledDialogDiv, { ...props, role: dialogProps.role, tabIndex: dialogProps.tabIndex, "aria-labelledby": dialogProps["aria-labelledby"], onBlur: dialogProps.onBlur, ref });
1619
914
  });
1620
- var AnimatedStyledDialogDiv = (0, import_react_spring.animated)(import_styled_components11.default.div`
1621
- margin: auto;
1622
- position: relative;
1623
- height: fit-content;
1624
- width: ${(p) => {
915
+ var AnimatedStyledDialogDiv = (0, import_react_spring.animated)(import_styled_components11.default.div.withConfig({
916
+ componentId: "ccl__sc-1ep4f6v-0"
917
+ })(["margin:auto;position:relative;height:fit-content;width:", "px;background-color:var(--charcoal-surface1);border-radius:24px;@media ", "{max-width:440px;width:calc(100% - 48px);", "}:focus{outline:none;}"], (p) => {
1625
918
  switch (p.size) {
1626
919
  case "S": {
1627
920
  return columnSystem(3, COLUMN_UNIT, GUTTER_UNIT) + GUTTER_UNIT * 2;
@@ -1636,39 +929,48 @@ var AnimatedStyledDialogDiv = (0, import_react_spring.animated)(import_styled_co
1636
929
  return unreachable(p.size);
1637
930
  }
1638
931
  }
1639
- }}px;
1640
-
1641
- background-color: var(--charcoal-surface1);
1642
- border-radius: 24px;
1643
-
1644
- @media ${({ theme }) => (0, import_utils4.maxWidth)(theme.breakpoint.screen1)} {
1645
- max-width: 440px;
1646
- width: calc(100% - 48px);
1647
- ${(p) => p.bottomSheet !== false && import_styled_components11.css`
1648
- max-width: unset;
1649
- width: 100%;
1650
- border-radius: 0;
1651
- margin: auto 0 0 0;
1652
- ${p.bottomSheet === "full" && import_styled_components11.css`
1653
- min-height: 100%;
1654
- `}
1655
- `}
1656
- }
1657
- :focus {
1658
- outline: none;
1659
- }
1660
- `);
932
+ }, ({
933
+ theme
934
+ }) => (0, import_utils6.maxWidth)(theme.breakpoint.screen1), (p) => p.bottomSheet !== false && (0, import_styled_components11.css)(["max-width:unset;width:100%;border-radius:0;margin:auto 0 0 0;", ""], p.bottomSheet === "full" && (0, import_styled_components11.css)(["min-height:100%;"]))));
1661
935
 
1662
936
  // src/components/Modal/ModalBackgroundContext.tsx
1663
937
  var React8 = __toESM(require("react"));
1664
- var ModalBackgroundContext = React8.createContext(
1665
- null
1666
- );
938
+ var ModalBackgroundContext = React8.createContext(null);
939
+
940
+ // src/components/Modal/useCustomModalOverlay.tsx
941
+ var React9 = __toESM(require("react"));
942
+ var import_overlays2 = require("@react-aria/overlays");
943
+ function useCharcoalModalOverlay(props, state, ref) {
944
+ const {
945
+ overlayProps,
946
+ underlayProps
947
+ } = (0, import_overlays2.useOverlay)({
948
+ ...props,
949
+ isOpen: state.isOpen,
950
+ onClose: state.onClose,
951
+ shouldCloseOnInteractOutside: () => false
952
+ }, ref);
953
+ (0, import_overlays2.useOverlayFocusContain)();
954
+ React9.useEffect(() => {
955
+ if (state.isOpen && ref.current) {
956
+ return (0, import_overlays2.ariaHideOutside)([ref.current]);
957
+ }
958
+ }, [state.isOpen, ref]);
959
+ return {
960
+ modalProps: overlayProps,
961
+ underlayProps
962
+ };
963
+ }
1667
964
 
1668
965
  // src/components/Modal/index.tsx
1669
966
  var import_jsx_runtime14 = require("react/jsx-runtime");
1670
967
  var DEFAULT_Z_INDEX = 10;
1671
- var Modal = (0, import_react12.forwardRef)(function ModalInner({ children, zIndex = DEFAULT_Z_INDEX, portalContainer, ...props }, external) {
968
+ var Modal = (0, import_react12.forwardRef)(function ModalInner({
969
+ children,
970
+ zIndex = DEFAULT_Z_INDEX,
971
+ portalContainer,
972
+ ...props
973
+ }, external) {
1672
974
  const {
1673
975
  title,
1674
976
  size = "M",
@@ -1678,26 +980,19 @@ var Modal = (0, import_react12.forwardRef)(function ModalInner({ children, zInde
1678
980
  className,
1679
981
  isOpen = false
1680
982
  } = props;
1681
- const ref = (0, import_utils6.useObjectRef)(external);
1682
- const { modalProps, underlayProps } = (0, import_overlays2.useModalOverlay)(
1683
- {
1684
- ...props,
1685
- isKeyboardDismissDisabled: isDismissable === void 0 || isDismissable === false
1686
- },
1687
- {
1688
- close: onClose,
1689
- isOpen,
1690
- open: () => {
1691
- },
1692
- setOpen: () => {
1693
- },
1694
- toggle: () => {
1695
- }
1696
- },
1697
- ref
1698
- );
983
+ const ref = (0, import_utils8.useObjectRef)(external);
984
+ const {
985
+ modalProps,
986
+ underlayProps
987
+ } = useCharcoalModalOverlay({
988
+ ...props,
989
+ isKeyboardDismissDisabled: isDismissable === void 0 || isDismissable === false
990
+ }, {
991
+ onClose,
992
+ isOpen
993
+ }, ref);
1699
994
  const theme = (0, import_styled_components12.useTheme)();
1700
- const isMobile = (0, import_styled2.useMedia)((0, import_utils5.maxWidth)(theme.breakpoint.screen1)) ?? false;
995
+ const isMobile = (0, import_styled7.useMedia)((0, import_utils7.maxWidth)(theme.breakpoint.screen1)) ?? false;
1701
996
  const transitionEnabled = isMobile && bottomSheet !== false;
1702
997
  const showDismiss = !isMobile || bottomSheet !== true;
1703
998
  const transition = (0, import_react_spring2.useTransition)(isOpen, {
@@ -1718,256 +1013,149 @@ var Modal = (0, import_react12.forwardRef)(function ModalInner({ children, zInde
1718
1013
  backgroundColor: "rgba(0, 0, 0, 0)",
1719
1014
  overflow: "hidden"
1720
1015
  },
1721
- config: transitionEnabled ? { duration: 400, easing: import_react_spring2.easings.easeOutQuart } : { duration: 0 }
1016
+ config: transitionEnabled ? {
1017
+ duration: 400,
1018
+ easing: import_react_spring2.easings.easeOutQuart
1019
+ } : {
1020
+ duration: 0
1021
+ }
1722
1022
  });
1723
- const bgRef = React9.useRef(null);
1724
- return transition(
1725
- ({ backgroundColor, overflow, transform }, item) => item && /* @__PURE__ */ (0, import_jsx_runtime14.jsx)(import_overlays2.Overlay, { portalContainer, children: /* @__PURE__ */ (0, import_jsx_runtime14.jsx)(
1726
- ModalBackground,
1727
- {
1728
- ref: bgRef,
1729
- zIndex,
1730
- ...underlayProps,
1731
- style: transitionEnabled ? { backgroundColor, overflow } : {},
1732
- $bottomSheet: bottomSheet,
1733
- children: /* @__PURE__ */ (0, import_jsx_runtime14.jsx)(ModalBackgroundContext.Provider, { value: bgRef.current, children: /* @__PURE__ */ (0, import_jsx_runtime14.jsx)(
1734
- Dialog,
1735
- {
1736
- ref,
1737
- ...modalProps,
1738
- style: transitionEnabled ? { transform } : {},
1739
- size,
1740
- bottomSheet,
1741
- className,
1742
- children: /* @__PURE__ */ (0, import_jsx_runtime14.jsxs)(
1743
- ModalContext.Provider,
1744
- {
1745
- value: {
1746
- titleProps: {},
1747
- title,
1748
- close: onClose,
1749
- showDismiss,
1750
- bottomSheet
1751
- },
1752
- children: [
1753
- children,
1754
- isDismissable === true && /* @__PURE__ */ (0, import_jsx_runtime14.jsx)(
1755
- ModalCrossButton,
1756
- {
1757
- size: "S",
1758
- icon: "24/Close",
1759
- onClick: onClose
1760
- }
1761
- )
1762
- ]
1763
- }
1764
- )
1765
- }
1766
- ) })
1767
- }
1768
- ) })
1769
- );
1023
+ const bgRef = React10.useRef(null);
1024
+ const handleClick = React10.useCallback((e) => {
1025
+ if (e.currentTarget === e.target) {
1026
+ onClose();
1027
+ }
1028
+ }, [onClose]);
1029
+ return transition(({
1030
+ backgroundColor,
1031
+ overflow,
1032
+ transform
1033
+ }, item) => item && /* @__PURE__ */ (0, import_jsx_runtime14.jsx)(import_overlays3.Overlay, { portalContainer, children: /* @__PURE__ */ (0, import_jsx_runtime14.jsx)(ModalBackground, { ref: bgRef, zIndex, ...underlayProps, style: transitionEnabled ? {
1034
+ backgroundColor,
1035
+ overflow
1036
+ } : {}, $bottomSheet: bottomSheet, onClick: handleClick, children: /* @__PURE__ */ (0, import_jsx_runtime14.jsx)(ModalBackgroundContext.Provider, { value: bgRef.current, children: /* @__PURE__ */ (0, import_jsx_runtime14.jsx)(Dialog, { ref, ...modalProps, style: transitionEnabled ? {
1037
+ transform
1038
+ } : {}, size, bottomSheet, className, children: /* @__PURE__ */ (0, import_jsx_runtime14.jsxs)(ModalContext.Provider, { value: {
1039
+ titleProps: {},
1040
+ title,
1041
+ close: onClose,
1042
+ showDismiss,
1043
+ bottomSheet
1044
+ }, children: [
1045
+ children,
1046
+ isDismissable === true && /* @__PURE__ */ (0, import_jsx_runtime14.jsx)(ModalCrossButton, { size: "S", icon: "24/Close", onClick: onClose })
1047
+ ] }) }) }) }) }));
1770
1048
  });
1771
1049
  var Modal_default = (0, import_react12.memo)(Modal);
1772
- var ModalContext = React9.createContext({
1050
+ var ModalContext = React10.createContext({
1773
1051
  titleProps: {},
1774
1052
  title: "",
1775
1053
  close: void 0,
1776
1054
  showDismiss: true,
1777
1055
  bottomSheet: false
1778
1056
  });
1779
- var ModalBackground = (0, import_react_spring2.animated)(import_styled_components12.default.div`
1780
- z-index: ${({ zIndex }) => zIndex};
1781
- overflow: auto;
1782
- display: flex;
1783
- position: fixed;
1784
- top: 0;
1785
- left: 0;
1786
- width: -webkit-fill-available;
1787
- width: -moz-available;
1788
- height: 100%;
1789
- justify-content: center;
1790
- padding: 40px 0;
1791
- box-sizing: border-box;
1792
-
1793
- background-color: var(--charcoal-surface4);
1794
-
1795
- @media ${({ theme }) => (0, import_utils5.maxWidth)(theme.breakpoint.screen1)} {
1796
- ${(p) => p.$bottomSheet !== false && import_styled_components12.css`
1797
- padding: 0;
1798
- `}
1799
- }
1800
- `);
1801
- var ModalCrossButton = (0, import_styled_components12.default)(IconButton_default)`
1802
- position: absolute;
1803
- top: 8px;
1804
- right: 8px;
1805
-
1806
- color: var(--charcoal-text3);
1807
- transition: 0.2s color;
1808
-
1809
- &:not(:disabled):not([aria-disabled]),
1810
- &[aria-disabled='false'] {
1811
- &:hover {
1812
- color: var(--charcoal-text3-hover);
1813
- }
1814
- &:active {
1815
- color: var(--charcoal-text3-press);
1816
- }
1817
- }
1818
- `;
1057
+ var ModalBackground = (0, import_react_spring2.animated)(import_styled_components12.default.div.withConfig({
1058
+ componentId: "ccl__sc-h2bc55-0"
1059
+ })(["z-index:", ";overflow:auto;display:flex;position:fixed;top:0;left:0;width:-webkit-fill-available;width:-moz-available;height:100%;justify-content:center;padding:40px 0;box-sizing:border-box;background-color:var(--charcoal-surface4);@media ", "{", "}"], ({
1060
+ zIndex
1061
+ }) => zIndex, ({
1062
+ theme
1063
+ }) => (0, import_utils7.maxWidth)(theme.breakpoint.screen1), (p) => p.$bottomSheet !== false && (0, import_styled_components12.css)(["padding:0;"])));
1064
+ var ModalCrossButton = (0, import_styled_components12.default)(IconButton_default).withConfig({
1065
+ componentId: "ccl__sc-h2bc55-1"
1066
+ })(["position:absolute;top:8px;right:8px;color:var(--charcoal-text3);transition:0.2s color;&:not(:disabled):not([aria-disabled]),&[aria-disabled='false']{&:hover{color:var(--charcoal-text3-hover);}&:active{color:var(--charcoal-text3-press);}}"]);
1819
1067
  function ModalTitle(props) {
1820
- const { titleProps, title } = (0, import_react12.useContext)(ModalContext);
1068
+ const {
1069
+ titleProps,
1070
+ title
1071
+ } = (0, import_react12.useContext)(ModalContext);
1821
1072
  return /* @__PURE__ */ (0, import_jsx_runtime14.jsx)(ModalHeading, { ...titleProps, ...props, children: title });
1822
1073
  }
1823
- var ModalHeading = import_styled_components12.default.h3`
1824
- margin: 0;
1825
- font-weight: inherit;
1826
- font-size: inherit;
1827
- `;
1074
+ var ModalHeading = import_styled_components12.default.h3.withConfig({
1075
+ componentId: "ccl__sc-h2bc55-2"
1076
+ })(["margin:0;font-weight:inherit;font-size:inherit;"]);
1828
1077
 
1829
1078
  // src/components/Modal/ModalPlumbing.tsx
1830
1079
  var import_styled_components13 = __toESM(require("styled-components"));
1831
1080
  var import_react13 = require("react");
1832
- var import_utils7 = require("@charcoal-ui/utils");
1081
+ var import_utils9 = require("@charcoal-ui/utils");
1833
1082
  var import_jsx_runtime15 = require("react/jsx-runtime");
1834
1083
  function ModalHeader() {
1835
1084
  const modalCtx = (0, import_react13.useContext)(ModalContext);
1836
1085
  return /* @__PURE__ */ (0, import_jsx_runtime15.jsx)(ModalHeaderRoot, { $bottomSheet: modalCtx.bottomSheet, children: /* @__PURE__ */ (0, import_jsx_runtime15.jsx)(StyledModalTitle, {}) });
1837
1086
  }
1838
- var ModalHeaderRoot = import_styled_components13.default.div`
1839
- height: 64px;
1840
- display: grid;
1841
- align-content: center;
1842
- justify-content: center;
1843
- @media ${({ theme }) => (0, import_utils7.maxWidth)(theme.breakpoint.screen1)} {
1844
- ${(p) => p.$bottomSheet !== false && import_styled_components13.css`
1845
- height: 48px;
1846
- `}
1847
- }
1848
- `;
1849
- var StyledModalTitle = (0, import_styled_components13.default)(ModalTitle)`
1850
- color: var(--charcoal-text1);
1851
- font-size: 16px;
1852
- line-height: 24px;
1853
- font-weight: bold;
1854
- display: flow-root;
1855
-
1856
- &::before {
1857
- display: block;
1858
- width: 0;
1859
- height: 0;
1860
- content: '';
1861
- margin-top: -4px;
1862
- }
1863
- &::after {
1864
- display: block;
1865
- width: 0;
1866
- height: 0;
1867
- content: '';
1868
- margin-bottom: -4px;
1869
- }
1870
- `;
1871
- var ModalAlign = import_styled_components13.default.div`
1872
- padding-left: 16px;
1873
- padding-right: 16px;
1874
- `;
1875
- var ModalBody = import_styled_components13.default.div`
1876
- padding-bottom: 40px;
1877
- `;
1878
- var ModalButtons = import_styled_components13.default.div`
1879
- display: grid;
1880
- grid-auto-flow: row;
1881
- grid-row-gap: 8px;
1882
-
1883
- padding-top: 16px;
1884
- padding-left: 16px;
1885
- padding-right: 16px;
1886
- `;
1087
+ var ModalHeaderRoot = import_styled_components13.default.div.withConfig({
1088
+ componentId: "ccl__sc-1k33wze-0"
1089
+ })(["height:64px;display:grid;align-content:center;justify-content:center;@media ", "{", "}"], ({
1090
+ theme
1091
+ }) => (0, import_utils9.maxWidth)(theme.breakpoint.screen1), (p) => p.$bottomSheet !== false && (0, import_styled_components13.css)(["height:48px;"]));
1092
+ var StyledModalTitle = (0, import_styled_components13.default)(ModalTitle).withConfig({
1093
+ componentId: "ccl__sc-1k33wze-1"
1094
+ })(["color:var(--charcoal-text1);font-size:16px;line-height:24px;font-weight:bold;display:flow-root;&::before{display:block;width:0;height:0;content:'';margin-top:-4px;}&::after{display:block;width:0;height:0;content:'';margin-bottom:-4px;}"]);
1095
+ var ModalAlign = import_styled_components13.default.div.withConfig({
1096
+ componentId: "ccl__sc-1k33wze-2"
1097
+ })(["padding-left:16px;padding-right:16px;"]);
1098
+ var ModalBody = import_styled_components13.default.div.withConfig({
1099
+ componentId: "ccl__sc-1k33wze-3"
1100
+ })(["padding-bottom:40px;"]);
1101
+ var ModalButtons = import_styled_components13.default.div.withConfig({
1102
+ componentId: "ccl__sc-1k33wze-4"
1103
+ })(["display:grid;grid-auto-flow:row;grid-row-gap:8px;padding-top:16px;padding-left:16px;padding-right:16px;"]);
1887
1104
 
1888
1105
  // src/components/LoadingSpinner/index.tsx
1889
1106
  var import_react14 = require("react");
1890
1107
  var import_styled_components14 = __toESM(require("styled-components"));
1891
1108
  var import_jsx_runtime16 = require("react/jsx-runtime");
1892
- var LoadingSpinner = (0, import_react14.forwardRef)(
1893
- function LoadingSpinnerInner({ size = 48, padding = 16, transparent = false, className }, ref) {
1894
- return /* @__PURE__ */ (0, import_jsx_runtime16.jsx)(
1895
- LoadingSpinnerRoot,
1896
- {
1897
- size,
1898
- padding,
1899
- transparent,
1900
- className,
1901
- ref,
1902
- children: /* @__PURE__ */ (0, import_jsx_runtime16.jsx)(LoadingSpinnerIcon, {})
1903
- }
1904
- );
1905
- }
1906
- );
1109
+ var LoadingSpinner = (0, import_react14.forwardRef)(function LoadingSpinnerInner({
1110
+ size = 48,
1111
+ padding = 16,
1112
+ transparent = false,
1113
+ className
1114
+ }, ref) {
1115
+ return /* @__PURE__ */ (0, import_jsx_runtime16.jsx)(LoadingSpinnerRoot, { size, padding, transparent, className, ref, children: /* @__PURE__ */ (0, import_jsx_runtime16.jsx)(LoadingSpinnerIcon, {}) });
1116
+ });
1907
1117
  var LoadingSpinner_default = (0, import_react14.memo)(LoadingSpinner);
1908
- var LoadingSpinnerRoot = import_styled_components14.default.div.attrs({ role: "progressbar" })`
1909
- box-sizing: content-box;
1910
- margin: auto;
1911
- padding: ${(props) => props.padding}px;
1912
- border-radius: 8px;
1913
- font-size: ${(props) => props.size}px;
1914
- width: ${(props) => props.size}px;
1915
- height: ${(props) => props.size}px;
1916
- opacity: 0.84;
1917
- color: var(--charcoal-text4);
1918
- background-color: ${({ transparent }) => `var(--charcoal-${transparent ? "transparent" : "background1"})`};
1919
- `;
1920
- var scaleOut = import_styled_components14.keyframes`
1921
- from {
1922
- transform: scale(0);
1923
- opacity: 1;
1924
- }
1925
-
1926
- to {
1927
- transform: scale(1);
1928
- opacity: 0;
1929
- }
1930
- `;
1931
- var Icon2 = import_styled_components14.default.div.attrs({ role: "presentation" })`
1932
- width: 1em;
1933
- height: 1em;
1934
- border-radius: 1em;
1935
- background-color: currentColor;
1936
- animation: ${scaleOut} 1s both ease-out;
1937
- animation-iteration-count: ${(p) => p.once ? 1 : "infinite"};
1938
-
1939
- &[data-reset-animation] {
1940
- animation: none;
1941
- }
1942
- `;
1943
- var LoadingSpinnerIcon = (0, import_react14.forwardRef)(
1944
- function LoadingSpinnerIcon2({ once = false }, ref) {
1945
- const iconRef = (0, import_react14.useRef)(null);
1946
- (0, import_react14.useImperativeHandle)(ref, () => ({
1947
- restart: () => {
1948
- if (!iconRef.current) {
1949
- return;
1950
- }
1951
- iconRef.current.dataset.resetAnimation = "true";
1952
- void iconRef.current.offsetWidth;
1953
- delete iconRef.current.dataset.resetAnimation;
1118
+ var LoadingSpinnerRoot = import_styled_components14.default.div.attrs({
1119
+ role: "progressbar"
1120
+ }).withConfig({
1121
+ componentId: "ccl__sc-1id6yz4-0"
1122
+ })(["box-sizing:content-box;margin:auto;padding:", "px;border-radius:8px;font-size:", "px;width:", "px;height:", "px;opacity:0.84;color:var(--charcoal-text4);background-color:", ";"], (props) => props.padding, (props) => props.size, (props) => props.size, (props) => props.size, ({
1123
+ transparent
1124
+ }) => `var(--charcoal-${transparent ? "transparent" : "background1"})`);
1125
+ var scaleOut = (0, import_styled_components14.keyframes)(["from{transform:scale(0);opacity:1;}to{transform:scale(1);opacity:0;}"]);
1126
+ var Icon2 = import_styled_components14.default.div.attrs({
1127
+ role: "presentation"
1128
+ }).withConfig({
1129
+ componentId: "ccl__sc-1id6yz4-1"
1130
+ })(["width:1em;height:1em;border-radius:1em;background-color:currentColor;animation:", " 1s both ease-out;animation-iteration-count:", ";&[data-reset-animation]{animation:none;}"], scaleOut, (p) => p.once ? 1 : "infinite");
1131
+ var LoadingSpinnerIcon = (0, import_react14.forwardRef)(function LoadingSpinnerIcon2({
1132
+ once = false
1133
+ }, ref) {
1134
+ const iconRef = (0, import_react14.useRef)(null);
1135
+ (0, import_react14.useImperativeHandle)(ref, () => ({
1136
+ restart: () => {
1137
+ if (!iconRef.current) {
1138
+ return;
1954
1139
  }
1955
- }));
1956
- return /* @__PURE__ */ (0, import_jsx_runtime16.jsx)(Icon2, { ref: iconRef, once });
1957
- }
1958
- );
1140
+ iconRef.current.dataset.resetAnimation = "true";
1141
+ void iconRef.current.offsetWidth;
1142
+ delete iconRef.current.dataset.resetAnimation;
1143
+ }
1144
+ }));
1145
+ return /* @__PURE__ */ (0, import_jsx_runtime16.jsx)(Icon2, { ref: iconRef, once });
1146
+ });
1959
1147
 
1960
1148
  // src/components/DropdownSelector/index.tsx
1961
1149
  var import_react20 = require("react");
1962
1150
  var import_styled_components17 = __toESM(require("styled-components"));
1963
- var import_utils8 = require("@charcoal-ui/utils");
1151
+ var import_utils10 = require("@charcoal-ui/utils");
1964
1152
 
1965
1153
  // src/components/DropdownSelector/DropdownPopover.tsx
1966
1154
  var import_react17 = require("react");
1967
1155
 
1968
1156
  // src/components/DropdownSelector/Popover/index.tsx
1969
1157
  var import_react16 = require("react");
1970
- var import_overlays3 = require("@react-aria/overlays");
1158
+ var import_overlays4 = require("@react-aria/overlays");
1971
1159
  var import_styled_components15 = __toESM(require("styled-components"));
1972
1160
 
1973
1161
  // src/components/DropdownSelector/Popover/usePreventScroll.tsx
@@ -1993,58 +1181,47 @@ var _empty = () => null;
1993
1181
  function Popover(props) {
1994
1182
  const defaultPopoverRef = (0, import_react16.useRef)(null);
1995
1183
  const finalPopoverRef = props.popoverRef === void 0 ? defaultPopoverRef : props.popoverRef;
1996
- const { popoverProps, underlayProps } = (0, import_overlays3.usePopover)(
1997
- {
1998
- triggerRef: props.triggerRef,
1999
- popoverRef: finalPopoverRef,
2000
- containerPadding: 16
2001
- },
2002
- {
2003
- close: props.onClose,
2004
- isOpen: props.isOpen,
2005
- open: _empty,
2006
- setOpen: _empty,
2007
- toggle: _empty
2008
- }
2009
- );
1184
+ const {
1185
+ popoverProps,
1186
+ underlayProps
1187
+ } = (0, import_overlays4.usePopover)({
1188
+ triggerRef: props.triggerRef,
1189
+ popoverRef: finalPopoverRef,
1190
+ containerPadding: 16
1191
+ }, {
1192
+ close: props.onClose,
1193
+ isOpen: props.isOpen,
1194
+ open: _empty,
1195
+ setOpen: _empty,
1196
+ toggle: _empty
1197
+ });
2010
1198
  const modalBackground = (0, import_react16.useContext)(ModalBackgroundContext);
2011
1199
  usePreventScroll(modalBackground, props.isOpen);
2012
1200
  if (!props.isOpen)
2013
1201
  return null;
2014
- return /* @__PURE__ */ (0, import_jsx_runtime17.jsxs)(import_overlays3.Overlay, { portalContainer: document.body, children: [
2015
- /* @__PURE__ */ (0, import_jsx_runtime17.jsx)(
2016
- "div",
2017
- {
2018
- ...underlayProps,
2019
- style: {
2020
- position: "fixed",
2021
- zIndex: typeof popoverProps.style?.zIndex === "number" ? popoverProps.style.zIndex - 1 : 99999,
2022
- inset: 0
2023
- }
2024
- }
2025
- ),
1202
+ return /* @__PURE__ */ (0, import_jsx_runtime17.jsxs)(import_overlays4.Overlay, { portalContainer: document.body, children: [
1203
+ /* @__PURE__ */ (0, import_jsx_runtime17.jsx)("div", { ...underlayProps, style: {
1204
+ position: "fixed",
1205
+ zIndex: typeof popoverProps.style?.zIndex === "number" ? popoverProps.style.zIndex - 1 : 99999,
1206
+ inset: 0
1207
+ } }),
2026
1208
  /* @__PURE__ */ (0, import_jsx_runtime17.jsxs)(DropdownPopoverDiv, { ...popoverProps, ref: finalPopoverRef, children: [
2027
- /* @__PURE__ */ (0, import_jsx_runtime17.jsx)(import_overlays3.DismissButton, { onDismiss: () => props.onClose() }),
1209
+ /* @__PURE__ */ (0, import_jsx_runtime17.jsx)(import_overlays4.DismissButton, { onDismiss: () => props.onClose() }),
2028
1210
  props.children,
2029
- /* @__PURE__ */ (0, import_jsx_runtime17.jsx)(import_overlays3.DismissButton, { onDismiss: () => props.onClose() })
1211
+ /* @__PURE__ */ (0, import_jsx_runtime17.jsx)(import_overlays4.DismissButton, { onDismiss: () => props.onClose() })
2030
1212
  ] })
2031
1213
  ] });
2032
1214
  }
2033
- var DropdownPopoverDiv = import_styled_components15.default.div`
2034
- margin: 4px 0;
2035
- list-style: none;
2036
- overflow: auto;
2037
- max-height: inherit;
2038
- background-color: var(--charcoal-background1);
2039
- border: solid 1px var(--charcoal-border-default);
2040
- border-radius: 8px;
2041
- padding-top: 8px;
2042
- padding-bottom: 8px;
2043
- `;
1215
+ var DropdownPopoverDiv = import_styled_components15.default.div.withConfig({
1216
+ componentId: "ccl__sc-jwnoy6-0"
1217
+ })(["margin:4px 0;list-style:none;overflow:auto;max-height:inherit;background-color:var(--charcoal-background1);border:solid 1px var(--charcoal-border-default);border-radius:8px;padding-top:8px;padding-bottom:8px;"]);
2044
1218
 
2045
1219
  // src/components/DropdownSelector/DropdownPopover.tsx
2046
1220
  var import_jsx_runtime18 = require("react/jsx-runtime");
2047
- function DropdownPopover({ children, ...props }) {
1221
+ function DropdownPopover({
1222
+ children,
1223
+ ...props
1224
+ }) {
2048
1225
  const ref = (0, import_react17.useRef)(null);
2049
1226
  (0, import_react17.useEffect)(() => {
2050
1227
  if (props.isOpen && ref.current && props.triggerRef.current) {
@@ -2055,32 +1232,21 @@ function DropdownPopover({ children, ...props }) {
2055
1232
  if (props.isOpen && props.value !== void 0) {
2056
1233
  const windowScrollY = window.scrollY;
2057
1234
  const windowScrollX = window.scrollX;
2058
- const selectedElement = document.querySelector(
2059
- `[data-key="${props.value.toString()}"]`
2060
- );
1235
+ const selectedElement = document.querySelector(`[data-key="${props.value.toString()}"]`);
2061
1236
  selectedElement?.focus();
2062
1237
  window.scrollTo(windowScrollX, windowScrollY);
2063
1238
  }
2064
1239
  }, [props.value, props.isOpen]);
2065
- return /* @__PURE__ */ (0, import_jsx_runtime18.jsx)(
2066
- Popover,
2067
- {
2068
- isOpen: props.isOpen,
2069
- onClose: props.onClose,
2070
- popoverRef: ref,
2071
- triggerRef: props.triggerRef,
2072
- children
2073
- }
2074
- );
1240
+ return /* @__PURE__ */ (0, import_jsx_runtime18.jsx)(Popover, { isOpen: props.isOpen, onClose: props.onClose, popoverRef: ref, triggerRef: props.triggerRef, children });
2075
1241
  }
2076
1242
 
2077
1243
  // src/components/DropdownSelector/utils/findPreviewRecursive.tsx
2078
- var React10 = __toESM(require("react"));
1244
+ var React11 = __toESM(require("react"));
2079
1245
  function findPreviewRecursive(children, value) {
2080
- const childArray = React10.Children.toArray(children);
1246
+ const childArray = React11.Children.toArray(children);
2081
1247
  for (let i = 0; i < childArray.length; i++) {
2082
1248
  const child = childArray[i];
2083
- if (React10.isValidElement(child)) {
1249
+ if (React11.isValidElement(child)) {
2084
1250
  if ("value" in child.props) {
2085
1251
  const childValue = child.props.value;
2086
1252
  if (childValue === value && "children" in child.props) {
@@ -2089,10 +1255,7 @@ function findPreviewRecursive(children, value) {
2089
1255
  }
2090
1256
  }
2091
1257
  if ("children" in child.props) {
2092
- const children2 = findPreviewRecursive(
2093
- child.props.children,
2094
- value
2095
- );
1258
+ const children2 = findPreviewRecursive(child.props.children, value);
2096
1259
  if (children2 !== void 0) {
2097
1260
  return children2;
2098
1261
  }
@@ -2116,12 +1279,12 @@ var MenuListContext = (0, import_react18.createContext)({
2116
1279
  });
2117
1280
 
2118
1281
  // src/components/DropdownSelector/MenuList/internals/getValuesRecursive.tsx
2119
- var React11 = __toESM(require("react"));
1282
+ var React12 = __toESM(require("react"));
2120
1283
  function getValuesRecursive(children, values = []) {
2121
- const childArray = React11.Children.toArray(children);
1284
+ const childArray = React12.Children.toArray(children);
2122
1285
  for (let i = 0; i < childArray.length; i++) {
2123
1286
  const child = childArray[i];
2124
- if (React11.isValidElement(child)) {
1287
+ if (React12.isValidElement(child)) {
2125
1288
  const props = child.props;
2126
1289
  if ("value" in props && typeof props.value === "string") {
2127
1290
  const childValue = props.value;
@@ -2140,27 +1303,21 @@ function MenuList(props) {
2140
1303
  const root = (0, import_react19.useRef)(null);
2141
1304
  const values = [];
2142
1305
  getValuesRecursive(props.children, values);
2143
- return /* @__PURE__ */ (0, import_jsx_runtime19.jsx)(StyledUl, { ref: root, children: /* @__PURE__ */ (0, import_jsx_runtime19.jsx)(
2144
- MenuListContext.Provider,
2145
- {
2146
- value: {
2147
- value: props.value ?? "",
2148
- root,
2149
- values,
2150
- setValue: (v) => {
2151
- props.onChange?.(v);
2152
- }
2153
- },
2154
- children: props.children
1306
+ return /* @__PURE__ */ (0, import_jsx_runtime19.jsx)(StyledUl, { ref: root, children: /* @__PURE__ */ (0, import_jsx_runtime19.jsx)(MenuListContext.Provider, { value: {
1307
+ value: props.value ?? "",
1308
+ root,
1309
+ values,
1310
+ setValue: (v) => {
1311
+ props.onChange?.(v);
2155
1312
  }
2156
- ) });
1313
+ }, children: props.children }) });
2157
1314
  }
2158
- var StyledUl = import_styled_components16.default.ul`
2159
- padding: 0;
2160
- margin: 0;
2161
- `;
1315
+ var StyledUl = import_styled_components16.default.ul.withConfig({
1316
+ componentId: "ccl__sc-1y72v02-0"
1317
+ })(["padding:0;margin:0;"]);
2162
1318
 
2163
1319
  // src/components/DropdownSelector/index.tsx
1320
+ var import_styled8 = require("@charcoal-ui/styled");
2164
1321
  var import_jsx_runtime20 = require("react/jsx-runtime");
2165
1322
  var defaultRequiredText = "*\u5FC5\u9808";
2166
1323
  function DropdownSelector(props) {
@@ -2168,150 +1325,46 @@ function DropdownSelector(props) {
2168
1325
  const [isOpen, setIsOpen] = (0, import_react20.useState)(false);
2169
1326
  const preview = findPreviewRecursive(props.children, props.value);
2170
1327
  return /* @__PURE__ */ (0, import_jsx_runtime20.jsxs)(DropdownSelectorRoot, { "aria-disabled": props.disabled, children: [
2171
- props.showLabel === true && /* @__PURE__ */ (0, import_jsx_runtime20.jsx)(
2172
- DropdownFieldLabel,
2173
- {
2174
- label: props.label,
2175
- required: props.required,
2176
- requiredText: props.requiredText ?? defaultRequiredText,
2177
- subLabel: props.subLabel
2178
- }
2179
- ),
2180
- /* @__PURE__ */ (0, import_jsx_runtime20.jsxs)(
2181
- DropdownButton,
2182
- {
2183
- invalid: props.invalid,
2184
- disabled: props.disabled,
2185
- onClick: () => {
2186
- if (props.disabled === true)
2187
- return;
2188
- setIsOpen(true);
2189
- },
2190
- ref: triggerRef,
2191
- type: "button",
2192
- children: [
2193
- /* @__PURE__ */ (0, import_jsx_runtime20.jsx)(DropdownButtonText, { children: props.placeholder !== void 0 && preview === void 0 ? props.placeholder : preview }),
2194
- /* @__PURE__ */ (0, import_jsx_runtime20.jsx)(DropdownButtonIcon, { name: "16/Menu" })
2195
- ]
2196
- }
2197
- ),
2198
- isOpen && /* @__PURE__ */ (0, import_jsx_runtime20.jsx)(
2199
- DropdownPopover,
2200
- {
2201
- isOpen,
2202
- onClose: () => setIsOpen(false),
2203
- triggerRef,
2204
- value: props.value,
2205
- children: /* @__PURE__ */ (0, import_jsx_runtime20.jsx)(
2206
- MenuList,
2207
- {
2208
- value: props.value,
2209
- onChange: (v) => {
2210
- props.onChange(v);
2211
- setIsOpen(false);
2212
- },
2213
- children: props.children
2214
- }
2215
- )
2216
- }
2217
- ),
1328
+ props.showLabel === true && /* @__PURE__ */ (0, import_jsx_runtime20.jsx)(DropdownFieldLabel, { label: props.label, required: props.required, requiredText: props.requiredText ?? defaultRequiredText, subLabel: props.subLabel }),
1329
+ /* @__PURE__ */ (0, import_jsx_runtime20.jsxs)(DropdownButton, { invalid: props.invalid, disabled: props.disabled, onClick: () => {
1330
+ if (props.disabled === true)
1331
+ return;
1332
+ setIsOpen(true);
1333
+ }, ref: triggerRef, type: "button", $active: isOpen, children: [
1334
+ /* @__PURE__ */ (0, import_jsx_runtime20.jsx)(DropdownButtonText, { children: props.placeholder !== void 0 && preview === void 0 ? props.placeholder : preview }),
1335
+ /* @__PURE__ */ (0, import_jsx_runtime20.jsx)(DropdownButtonIcon, { name: "16/Menu" })
1336
+ ] }),
1337
+ isOpen && /* @__PURE__ */ (0, import_jsx_runtime20.jsx)(DropdownPopover, { isOpen, onClose: () => setIsOpen(false), triggerRef, value: props.value, children: /* @__PURE__ */ (0, import_jsx_runtime20.jsx)(MenuList, { value: props.value, onChange: (v) => {
1338
+ props.onChange(v);
1339
+ setIsOpen(false);
1340
+ }, children: props.children }) }),
2218
1341
  props.assistiveText !== void 0 && /* @__PURE__ */ (0, import_jsx_runtime20.jsx)(AssertiveText, { invalid: props.invalid, children: props.assistiveText })
2219
1342
  ] });
2220
1343
  }
2221
- var DropdownSelectorRoot = import_styled_components17.default.div`
2222
- display: inline-block;
2223
- width: 100%;
2224
-
2225
- ${import_utils8.disabledSelector} {
2226
- cursor: default;
2227
- opacity: 0.32;
2228
- }
2229
- `;
2230
- var DropdownFieldLabel = (0, import_styled_components17.default)(FieldLabel_default)`
2231
- width: 100%;
2232
- margin-bottom: 8px;
2233
- `;
2234
- var DropdownButton = import_styled_components17.default.button`
2235
- display: flex;
2236
- justify-content: space-between;
2237
- align-items: center;
2238
-
2239
- height: 40px;
2240
- width: 100%;
2241
- box-sizing: border-box;
2242
- border: none;
2243
- cursor: pointer;
2244
- gap: 4px;
2245
-
2246
- ${import_utils8.disabledSelector} {
2247
- cursor: default;
2248
- }
2249
-
2250
- padding-right: 8px;
2251
- padding-left: 8px;
2252
- background-color: var(--charcoal-surface3);
2253
- border-radius: 4px;
2254
-
2255
- transition: 0.2s box-shadow, 0.2s background-color;
2256
-
2257
- &:not(:disabled):not([aria-disabled]),
2258
- &[aria-disabled='false'] {
2259
- &:focus,
2260
- &:active,
2261
- &:focus-visible {
2262
- outline: none;
2263
- box-shadow: 0 0 0 4px rgba(0, 150, 250, 0.32);
2264
- }
2265
- &:hover {
2266
- background-color: var(--charcoal-surface3-hover);
2267
- }
2268
- }
2269
-
2270
- ${({ invalid }) => invalid === true && import_styled_components17.css`
2271
- &:not(:disabled):not([aria-disabled]),
2272
- &[aria-disabled='false'] {
2273
- box-shadow: 0 0 0 4px rgba(255, 43, 0, 0.32);
2274
- }
2275
- `}
2276
- `;
2277
- var DropdownButtonText = import_styled_components17.default.span`
2278
- text-align: left;
2279
- font-size: 14px;
2280
- line-height: 22px;
2281
- display: flow-root;
2282
- color: var(--charcoal-text2);
2283
- overflow: hidden;
2284
- text-overflow: ellipsis;
2285
- white-space: nowrap;
2286
- `;
2287
- var DropdownButtonIcon = (0, import_styled_components17.default)(Icon_default)`
2288
- color: var(--charcoal-text2);
2289
- `;
2290
- var AssertiveText = import_styled_components17.default.div`
2291
- margin-top: 8px;
2292
- font-size: 14px;
2293
- color: var(--charcoal-text2);
2294
- line-height: 22px;
2295
- display: flow-root;
2296
- &::before {
2297
- display: block;
2298
- width: 0;
2299
- height: 0;
2300
- content: '';
2301
- margin-top: -4px;
2302
- }
2303
- &::after {
2304
- display: block;
2305
- width: 0;
2306
- height: 0;
2307
- content: '';
2308
- margin-bottom: -4px;
2309
- }
2310
-
2311
- ${({ invalid }) => invalid === true && import_styled_components17.css`
2312
- color: var(--charcoal-assertive);
2313
- `}
2314
- `;
1344
+ var DropdownSelectorRoot = import_styled_components17.default.div.withConfig({
1345
+ componentId: "ccl__sc-1vnxmc8-0"
1346
+ })(["display:inline-block;width:100%;", "{cursor:default;opacity:0.32;}"], import_utils10.disabledSelector);
1347
+ var DropdownFieldLabel = (0, import_styled_components17.default)(FieldLabel_default).withConfig({
1348
+ componentId: "ccl__sc-1vnxmc8-1"
1349
+ })(["width:100%;margin-bottom:8px;"]);
1350
+ var DropdownButton = import_styled_components17.default.button.withConfig({
1351
+ componentId: "ccl__sc-1vnxmc8-2"
1352
+ })(["display:flex;justify-content:space-between;align-items:center;height:40px;width:100%;box-sizing:border-box;border:none;cursor:pointer;gap:4px;", "{cursor:default;}padding-right:8px;padding-left:8px;background-color:var(--charcoal-surface3);border-radius:4px;transition:0.2s box-shadow,0.2s background-color;&:not(:disabled):not([aria-disabled]),&[aria-disabled='false']{", " ", "}", ""], import_utils10.disabledSelector, import_styled8.focusVisibleFocusRingCss, ({
1353
+ $active
1354
+ }) => $active === true ? (0, import_styled_components17.css)(["background-color:var(--charcoal-surface3-press);"]) : (0, import_styled_components17.css)(["&:hover{background-color:var(--charcoal-surface3-hover);}&:active{background-color:var(--charcoal-surface3-press);}"]), ({
1355
+ invalid
1356
+ }) => invalid === true && (0, import_styled_components17.css)(["&:not(:disabled):not([aria-disabled]),&[aria-disabled='false']{box-shadow:0 0 0 4px rgba(255,43,0,0.32);}"]));
1357
+ var DropdownButtonText = import_styled_components17.default.span.withConfig({
1358
+ componentId: "ccl__sc-1vnxmc8-3"
1359
+ })(["text-align:left;font-size:14px;line-height:22px;display:flow-root;color:var(--charcoal-text2);overflow:hidden;text-overflow:ellipsis;white-space:nowrap;"]);
1360
+ var DropdownButtonIcon = (0, import_styled_components17.default)(Icon_default).withConfig({
1361
+ componentId: "ccl__sc-1vnxmc8-4"
1362
+ })(["color:var(--charcoal-text2);"]);
1363
+ var AssertiveText = import_styled_components17.default.div.withConfig({
1364
+ componentId: "ccl__sc-1vnxmc8-5"
1365
+ })(["margin-top:8px;font-size:14px;color:var(--charcoal-text2);line-height:22px;display:flow-root;&::before{display:block;width:0;height:0;content:'';margin-top:-4px;}&::after{display:block;width:0;height:0;content:'';margin-bottom:-4px;}", ""], ({
1366
+ invalid
1367
+ }) => invalid === true && (0, import_styled_components17.css)(["color:var(--charcoal-assertive);"]));
2315
1368
 
2316
1369
  // src/components/DropdownSelector/DropdownMenuItem.tsx
2317
1370
  var import_styled_components19 = __toESM(require("styled-components"));
@@ -2320,34 +1373,18 @@ var import_styled_components19 = __toESM(require("styled-components"));
2320
1373
  var import_styled_components18 = __toESM(require("styled-components"));
2321
1374
  var import_jsx_runtime21 = require("react/jsx-runtime");
2322
1375
  function ListItem(props) {
2323
- const { children, ...rest } = props;
1376
+ const {
1377
+ children,
1378
+ ...rest
1379
+ } = props;
2324
1380
  return /* @__PURE__ */ (0, import_jsx_runtime21.jsx)(StyledLi, { role: "option", children: /* @__PURE__ */ (0, import_jsx_runtime21.jsx)(ItemDiv, { ...rest, children: props.children }) });
2325
1381
  }
2326
- var StyledLi = import_styled_components18.default.li`
2327
- list-style: none;
2328
- `;
2329
- var ItemDiv = import_styled_components18.default.div`
2330
- display: flex;
2331
- align-items: center;
2332
- min-height: 40px;
2333
- cursor: pointer;
2334
- outline: none;
2335
-
2336
- padding-right: 16px;
2337
- padding-left: 16px;
2338
-
2339
- &:disabled,
2340
- &[aria-disabled]:not([aria-disabled='false']) {
2341
- opacity: 0.32;
2342
- cursor: default;
2343
- }
2344
-
2345
- :hover,
2346
- :focus,
2347
- :focus-within {
2348
- background-color: var(--charcoal-surface3);
2349
- }
2350
- `;
1382
+ var StyledLi = import_styled_components18.default.li.withConfig({
1383
+ componentId: "ccl__sc-p1vs75-0"
1384
+ })(["list-style:none;"]);
1385
+ var ItemDiv = import_styled_components18.default.div.withConfig({
1386
+ componentId: "ccl__sc-p1vs75-1"
1387
+ })(["display:flex;align-items:center;min-height:40px;cursor:pointer;outline:none;padding-right:16px;padding-left:16px;&:disabled,&[aria-disabled]:not([aria-disabled='false']){opacity:0.32;cursor:default;}:hover,:focus,:focus-within{background-color:var(--charcoal-surface3);}"]);
2351
1388
 
2352
1389
  // src/components/DropdownSelector/MenuItem/internals/useMenuItemHandleKeyDown.tsx
2353
1390
  var import_react21 = require("react");
@@ -2383,84 +1420,77 @@ function scrollIfNeeded(element) {
2383
1420
 
2384
1421
  // src/components/DropdownSelector/MenuItem/internals/useMenuItemHandleKeyDown.tsx
2385
1422
  function useMenuItemHandleKeyDown(value) {
2386
- const { setValue, root, values } = (0, import_react21.useContext)(MenuListContext);
1423
+ const {
1424
+ setValue,
1425
+ root,
1426
+ values
1427
+ } = (0, import_react21.useContext)(MenuListContext);
2387
1428
  const setContextValue = (0, import_react21.useCallback)(() => {
2388
1429
  if (value !== void 0)
2389
1430
  setValue(value);
2390
1431
  }, [value, setValue]);
2391
- const handleKeyDown = (0, import_react21.useCallback)(
2392
- (e) => {
2393
- if (e.key === "Enter") {
2394
- setContextValue();
2395
- } else if (e.key === "ArrowUp" || e.key === "ArrowDown") {
2396
- e.preventDefault();
2397
- if (!values || value === void 0)
2398
- return;
2399
- const index = values.indexOf(value);
2400
- if (index === -1)
2401
- return;
2402
- const focusValue = e.key === "ArrowUp" ? index - 1 < 0 ? values[values.length - 1] : values[index - 1] : index + 1 >= values.length ? values[0] : values[index + 1];
2403
- const next = root?.current?.querySelector(`[data-key='${focusValue}']`);
2404
- if (next instanceof HTMLElement) {
2405
- next.focus({ preventScroll: true });
2406
- if (root?.current?.parentElement) {
2407
- handleFocusByKeyBoard(next, root.current.parentElement);
2408
- }
1432
+ const handleKeyDown = (0, import_react21.useCallback)((e) => {
1433
+ if (e.key === "Enter") {
1434
+ setContextValue();
1435
+ } else if (e.key === "ArrowUp" || e.key === "ArrowDown") {
1436
+ e.preventDefault();
1437
+ if (!values || value === void 0)
1438
+ return;
1439
+ const index = values.indexOf(value);
1440
+ if (index === -1)
1441
+ return;
1442
+ const focusValue = e.key === "ArrowUp" ? index - 1 < 0 ? values[values.length - 1] : values[index - 1] : index + 1 >= values.length ? values[0] : values[index + 1];
1443
+ const next = root?.current?.querySelector(`[data-key='${focusValue}']`);
1444
+ if (next instanceof HTMLElement) {
1445
+ next.focus({
1446
+ preventScroll: true
1447
+ });
1448
+ if (root?.current?.parentElement) {
1449
+ handleFocusByKeyBoard(next, root.current.parentElement);
2409
1450
  }
2410
1451
  }
2411
- },
2412
- [setContextValue, value, root, values]
2413
- );
1452
+ }
1453
+ }, [setContextValue, value, root, values]);
2414
1454
  return [handleKeyDown, setContextValue];
2415
1455
  }
2416
1456
 
2417
1457
  // src/components/DropdownSelector/MenuItem/index.tsx
2418
1458
  var import_jsx_runtime22 = require("react/jsx-runtime");
2419
1459
  function MenuItem(props) {
2420
- const { children, as, ...rest } = props;
1460
+ const {
1461
+ children,
1462
+ as,
1463
+ ...rest
1464
+ } = props;
2421
1465
  const [handleKeyDown, setContextValue] = useMenuItemHandleKeyDown(props.value);
2422
- return /* @__PURE__ */ (0, import_jsx_runtime22.jsx)(
2423
- ListItem,
2424
- {
2425
- ...rest,
2426
- as,
2427
- "data-key": props.value,
2428
- onKeyDown: handleKeyDown,
2429
- onClick: props.disabled === true ? void 0 : setContextValue,
2430
- tabIndex: -1,
2431
- "aria-disabled": props.disabled,
2432
- children: props.children
2433
- }
2434
- );
1466
+ return /* @__PURE__ */ (0, import_jsx_runtime22.jsx)(ListItem, { ...rest, as, "data-key": props.value, onKeyDown: handleKeyDown, onClick: props.disabled === true ? void 0 : setContextValue, tabIndex: -1, "aria-disabled": props.disabled, children: props.children });
2435
1467
  }
2436
1468
 
2437
1469
  // src/components/DropdownSelector/DropdownMenuItem.tsx
2438
1470
  var import_react22 = require("react");
2439
1471
  var import_jsx_runtime23 = require("react/jsx-runtime");
2440
1472
  function DropdownMenuItem(props) {
2441
- const { value: ctxValue } = (0, import_react22.useContext)(MenuListContext);
1473
+ const {
1474
+ value: ctxValue
1475
+ } = (0, import_react22.useContext)(MenuListContext);
2442
1476
  const isSelected = props.value === ctxValue;
2443
- const { children, ...rest } = props;
1477
+ const {
1478
+ children,
1479
+ ...rest
1480
+ } = props;
2444
1481
  return /* @__PURE__ */ (0, import_jsx_runtime23.jsxs)(MenuItem, { ...rest, children: [
2445
1482
  isSelected && /* @__PURE__ */ (0, import_jsx_runtime23.jsx)(Text2ColorIcon, { name: "16/Check" }),
2446
1483
  /* @__PURE__ */ (0, import_jsx_runtime23.jsx)(StyledSpan, { isSelected, children: props.children })
2447
1484
  ] });
2448
1485
  }
2449
- var StyledSpan = import_styled_components19.default.span`
2450
- font-size: 14px;
2451
- line-height: 22px;
2452
- color: var(--charcoal-text2);
2453
- padding: 9px 0;
2454
-
2455
- display: flex;
2456
- align-items: center;
2457
- width: 100%;
2458
- margin-left: ${({ isSelected }) => isSelected === true ? 0 : 20}px;
2459
- `;
2460
- var Text2ColorIcon = (0, import_styled_components19.default)(Icon_default)`
2461
- color: var(--charcoal-text2);
2462
- padding-right: 4px;
2463
- `;
1486
+ var StyledSpan = import_styled_components19.default.span.withConfig({
1487
+ componentId: "ccl__sc-108wg2j-0"
1488
+ })(["font-size:14px;line-height:22px;color:var(--charcoal-text2);padding:9px 0;display:flex;align-items:center;width:100%;margin-left:", "px;"], ({
1489
+ isSelected
1490
+ }) => isSelected === true ? 0 : 20);
1491
+ var Text2ColorIcon = (0, import_styled_components19.default)(Icon_default).withConfig({
1492
+ componentId: "ccl__sc-108wg2j-1"
1493
+ })(["color:var(--charcoal-text2);padding-right:4px;"]);
2464
1494
 
2465
1495
  // src/components/DropdownSelector/MenuItemGroup/index.tsx
2466
1496
  var import_styled_components20 = __toESM(require("styled-components"));
@@ -2471,23 +1501,15 @@ function MenuItemGroup(props) {
2471
1501
  /* @__PURE__ */ (0, import_jsx_runtime24.jsx)(StyledUl2, { role: "group", children: props.children })
2472
1502
  ] });
2473
1503
  }
2474
- var TextSpan = import_styled_components20.default.span`
2475
- display: block;
2476
- color: var(--charcoal-text3);
2477
- font-size: 12px;
2478
- font-weight: bold;
2479
- padding: 12px 0 8px 16px;
2480
- `;
2481
- var StyledUl2 = import_styled_components20.default.ul`
2482
- padding-left: 0;
2483
- margin: 0;
2484
- box-sizing: border-box;
2485
- list-style: none;
2486
- overflow: hidden;
2487
- `;
2488
- var StyledLi2 = import_styled_components20.default.li`
2489
- display: block;
2490
- `;
1504
+ var TextSpan = import_styled_components20.default.span.withConfig({
1505
+ componentId: "ccl__sc-1ubjfz7-0"
1506
+ })(["display:block;color:var(--charcoal-text3);font-size:12px;font-weight:bold;padding:12px 0 8px 16px;"]);
1507
+ var StyledUl2 = import_styled_components20.default.ul.withConfig({
1508
+ componentId: "ccl__sc-1ubjfz7-1"
1509
+ })(["padding-left:0;margin:0;box-sizing:border-box;list-style:none;overflow:hidden;"]);
1510
+ var StyledLi2 = import_styled_components20.default.li.withConfig({
1511
+ componentId: "ccl__sc-1ubjfz7-2"
1512
+ })(["display:block;"]);
2491
1513
 
2492
1514
  // src/components/SegmentedControl/index.tsx
2493
1515
  var import_react27 = require("react");
@@ -2521,7 +1543,13 @@ var $e5be200c675c3b3a$export$571b5131b7e65c11 = (0, import_react23.createContext
2521
1543
  var $e5be200c675c3b3a$export$a763b9476acd3eb = "__formValidationState" + Date.now();
2522
1544
  function $e5be200c675c3b3a$export$fc1a364ae1f3ff10(props) {
2523
1545
  if (props[$e5be200c675c3b3a$export$a763b9476acd3eb]) {
2524
- let { realtimeValidation, displayValidation, updateValidation, resetValidation, commitValidation } = props[$e5be200c675c3b3a$export$a763b9476acd3eb];
1546
+ let {
1547
+ realtimeValidation,
1548
+ displayValidation,
1549
+ updateValidation,
1550
+ resetValidation,
1551
+ commitValidation
1552
+ } = props[$e5be200c675c3b3a$export$a763b9476acd3eb];
2525
1553
  return {
2526
1554
  realtimeValidation,
2527
1555
  displayValidation,
@@ -2533,7 +1561,15 @@ function $e5be200c675c3b3a$export$fc1a364ae1f3ff10(props) {
2533
1561
  return $e5be200c675c3b3a$var$useFormValidationStateImpl(props);
2534
1562
  }
2535
1563
  function $e5be200c675c3b3a$var$useFormValidationStateImpl(props) {
2536
- let { isInvalid, validationState, name, value, builtinValidation, validate, validationBehavior = "aria" } = props;
1564
+ let {
1565
+ isInvalid,
1566
+ validationState,
1567
+ name,
1568
+ value,
1569
+ builtinValidation,
1570
+ validate,
1571
+ validationBehavior = "aria"
1572
+ } = props;
2537
1573
  if (validationState)
2538
1574
  isInvalid || (isInvalid = validationState === "invalid");
2539
1575
  let controlledError = isInvalid ? {
@@ -2541,10 +1577,7 @@ function $e5be200c675c3b3a$var$useFormValidationStateImpl(props) {
2541
1577
  validationErrors: [],
2542
1578
  validationDetails: $e5be200c675c3b3a$var$CUSTOM_VALIDITY_STATE
2543
1579
  } : null;
2544
- let clientError = (0, import_react23.useMemo)(() => $e5be200c675c3b3a$var$getValidationResult($e5be200c675c3b3a$var$runValidate(validate, value)), [
2545
- validate,
2546
- value
2547
- ]);
1580
+ let clientError = (0, import_react23.useMemo)(() => $e5be200c675c3b3a$var$getValidationResult($e5be200c675c3b3a$var$runValidate(validate, value)), [validate, value]);
2548
1581
  if (builtinValidation === null || builtinValidation === void 0 ? void 0 : builtinValidation.validationDetails.valid)
2549
1582
  builtinValidation = null;
2550
1583
  let serverErrors = (0, import_react23.useContext)($e5be200c675c3b3a$export$571b5131b7e65c11);
@@ -2552,20 +1585,14 @@ function $e5be200c675c3b3a$var$useFormValidationStateImpl(props) {
2552
1585
  if (name)
2553
1586
  return Array.isArray(name) ? name.flatMap((name2) => $e5be200c675c3b3a$var$asArray(serverErrors[name2])) : $e5be200c675c3b3a$var$asArray(serverErrors[name]);
2554
1587
  return [];
2555
- }, [
2556
- serverErrors,
2557
- name
2558
- ]);
1588
+ }, [serverErrors, name]);
2559
1589
  let [lastServerErrors, setLastServerErrors] = (0, import_react23.useState)(serverErrors);
2560
1590
  let [isServerErrorCleared, setServerErrorCleared] = (0, import_react23.useState)(false);
2561
1591
  if (serverErrors !== lastServerErrors) {
2562
1592
  setLastServerErrors(serverErrors);
2563
1593
  setServerErrorCleared(false);
2564
1594
  }
2565
- let serverError = (0, import_react23.useMemo)(() => $e5be200c675c3b3a$var$getValidationResult(isServerErrorCleared ? [] : serverErrorMessages), [
2566
- isServerErrorCleared,
2567
- serverErrorMessages
2568
- ]);
1595
+ let serverError = (0, import_react23.useMemo)(() => $e5be200c675c3b3a$var$getValidationResult(isServerErrorCleared ? [] : serverErrorMessages), [isServerErrorCleared, serverErrorMessages]);
2569
1596
  let nextValidation = (0, import_react23.useRef)($e5be200c675c3b3a$export$dad6ae84456c676a);
2570
1597
  let [currentValidity, setCurrentValidity] = (0, import_react23.useState)($e5be200c675c3b3a$export$dad6ae84456c676a);
2571
1598
  let lastError = (0, import_react23.useRef)($e5be200c675c3b3a$export$dad6ae84456c676a);
@@ -2612,9 +1639,7 @@ function $e5be200c675c3b3a$var$useFormValidationStateImpl(props) {
2612
1639
  function $e5be200c675c3b3a$var$asArray(v) {
2613
1640
  if (!v)
2614
1641
  return [];
2615
- return Array.isArray(v) ? v : [
2616
- v
2617
- ];
1642
+ return Array.isArray(v) ? v : [v];
2618
1643
  }
2619
1644
  function $e5be200c675c3b3a$var$runValidate(validate, value) {
2620
1645
  if (typeof validate === "function") {
@@ -2648,9 +1673,7 @@ function $458b0a5536c1a7cf$export$40bfa8c7b0832715(value, defaultValue, onChange
2648
1673
  if (wasControlled !== isControlled)
2649
1674
  console.warn(`WARN: A component changed from ${wasControlled ? "controlled" : "uncontrolled"} to ${isControlled ? "controlled" : "uncontrolled"}.`);
2650
1675
  isControlledRef.current = isControlled;
2651
- }, [
2652
- isControlled
2653
- ]);
1676
+ }, [isControlled]);
2654
1677
  let currentValue = isControlled ? value : stateValue;
2655
1678
  let setValue = (0, import_react24.useCallback)((value2, ...args) => {
2656
1679
  let onChangeCaller = (value3, ...onChangeArgs) => {
@@ -2676,15 +1699,8 @@ function $458b0a5536c1a7cf$export$40bfa8c7b0832715(value, defaultValue, onChange
2676
1699
  setStateValue(value2);
2677
1700
  onChangeCaller(value2, ...args);
2678
1701
  }
2679
- }, [
2680
- isControlled,
2681
- currentValue,
2682
- onChange
2683
- ]);
2684
- return [
2685
- currentValue,
2686
- setValue
2687
- ];
1702
+ }, [isControlled, currentValue, onChange]);
1703
+ return [currentValue, setValue];
2688
1704
  }
2689
1705
 
2690
1706
  // ../../node_modules/@react-stately/radio/dist/import.mjs
@@ -2692,9 +1708,7 @@ var import_react25 = require("react");
2692
1708
  var $a54cdc5c1942b639$var$instance = Math.round(Math.random() * 1e10);
2693
1709
  var $a54cdc5c1942b639$var$i = 0;
2694
1710
  function $a54cdc5c1942b639$export$bca9d026f8e704eb(props) {
2695
- let name = (0, import_react25.useMemo)(() => props.name || `radio-group-${$a54cdc5c1942b639$var$instance}-${++$a54cdc5c1942b639$var$i}`, [
2696
- props.name
2697
- ]);
1711
+ let name = (0, import_react25.useMemo)(() => props.name || `radio-group-${$a54cdc5c1942b639$var$instance}-${++$a54cdc5c1942b639$var$i}`, [props.name]);
2698
1712
  var _props_defaultValue;
2699
1713
  let [selectedValue, setSelected] = (0, $458b0a5536c1a7cf$export$40bfa8c7b0832715)(props.value, (_props_defaultValue = props.defaultValue) !== null && _props_defaultValue !== void 0 ? _props_defaultValue : null, props.onChange);
2700
1714
  let [lastFocusedValue, setLastFocusedValue] = (0, import_react25.useState)(null);
@@ -2747,470 +1761,222 @@ var useRadioContext = () => {
2747
1761
 
2748
1762
  // src/components/SegmentedControl/index.tsx
2749
1763
  var import_jsx_runtime26 = require("react/jsx-runtime");
2750
- var SegmentedControl = (0, import_react27.forwardRef)(
2751
- function SegmentedControlInner(props, ref) {
2752
- const ariaRadioGroupProps = (0, import_react27.useMemo)(
2753
- () => ({
2754
- ...props,
2755
- isDisabled: props.disabled,
2756
- isReadOnly: props.readonly,
2757
- isRequired: props.required,
2758
- "aria-label": props.name
2759
- }),
2760
- [props]
2761
- );
2762
- const state = $a54cdc5c1942b639$export$bca9d026f8e704eb(ariaRadioGroupProps);
2763
- const { radioGroupProps } = (0, import_radio2.useRadioGroup)(ariaRadioGroupProps, state);
2764
- const segmentedControlItems = (0, import_react27.useMemo)(() => {
2765
- return props.data.map(
2766
- (d) => typeof d === "string" ? { value: d, label: d } : d
2767
- );
2768
- }, [props.data]);
2769
- return /* @__PURE__ */ (0, import_jsx_runtime26.jsx)(
2770
- SegmentedControlRoot,
2771
- {
2772
- ref,
2773
- ...radioGroupProps,
2774
- className: props.className,
2775
- children: /* @__PURE__ */ (0, import_jsx_runtime26.jsx)(RadioProvider, { value: state, children: segmentedControlItems.map((item) => /* @__PURE__ */ (0, import_jsx_runtime26.jsx)(
2776
- Segmented,
2777
- {
2778
- value: item.value,
2779
- disabled: item.disabled,
2780
- children: item.label
2781
- },
2782
- item.value
2783
- )) })
2784
- }
2785
- );
2786
- }
2787
- );
1764
+ var SegmentedControl = (0, import_react27.forwardRef)(function SegmentedControlInner(props, ref) {
1765
+ const ariaRadioGroupProps = (0, import_react27.useMemo)(() => ({
1766
+ ...props,
1767
+ isDisabled: props.disabled,
1768
+ isReadOnly: props.readonly,
1769
+ isRequired: props.required,
1770
+ "aria-label": props.name
1771
+ }), [props]);
1772
+ const state = $a54cdc5c1942b639$export$bca9d026f8e704eb(ariaRadioGroupProps);
1773
+ const {
1774
+ radioGroupProps
1775
+ } = (0, import_radio2.useRadioGroup)(ariaRadioGroupProps, state);
1776
+ const segmentedControlItems = (0, import_react27.useMemo)(() => {
1777
+ return props.data.map((d) => typeof d === "string" ? {
1778
+ value: d,
1779
+ label: d
1780
+ } : d);
1781
+ }, [props.data]);
1782
+ return /* @__PURE__ */ (0, import_jsx_runtime26.jsx)(SegmentedControlRoot, { ref, ...radioGroupProps, className: props.className, children: /* @__PURE__ */ (0, import_jsx_runtime26.jsx)(RadioProvider, { value: state, children: segmentedControlItems.map((item) => /* @__PURE__ */ (0, import_jsx_runtime26.jsx)(Segmented, { value: item.value, disabled: item.disabled, children: item.label }, item.value)) }) });
1783
+ });
2788
1784
  var SegmentedControl_default = (0, import_react27.memo)(SegmentedControl);
2789
1785
  var Segmented = (props) => {
2790
1786
  const state = useRadioContext();
2791
1787
  const ref = (0, import_react27.useRef)(null);
2792
- const ariaRadioProps = (0, import_react27.useMemo)(
2793
- () => ({
2794
- value: props.value,
2795
- isDisabled: props.disabled,
2796
- children: props.children
2797
- }),
2798
- [props]
2799
- );
2800
- const { inputProps, isDisabled, isSelected } = (0, import_radio2.useRadio)(
2801
- ariaRadioProps,
2802
- state,
2803
- ref
2804
- );
2805
- return /* @__PURE__ */ (0, import_jsx_runtime26.jsxs)(
2806
- SegmentedRoot,
2807
- {
2808
- "aria-disabled": isDisabled || state.isReadOnly,
2809
- checked: isSelected,
2810
- children: [
2811
- /* @__PURE__ */ (0, import_jsx_runtime26.jsx)(SegmentedInput, { ...inputProps, ref }),
2812
- /* @__PURE__ */ (0, import_jsx_runtime26.jsx)(RadioLabel2, { children: /* @__PURE__ */ (0, import_jsx_runtime26.jsx)(SegmentedLabelInner, { children: props.children }) })
2813
- ]
2814
- }
2815
- );
1788
+ const ariaRadioProps = (0, import_react27.useMemo)(() => ({
1789
+ value: props.value,
1790
+ isDisabled: props.disabled,
1791
+ children: props.children
1792
+ }), [props]);
1793
+ const {
1794
+ inputProps,
1795
+ isDisabled,
1796
+ isSelected
1797
+ } = (0, import_radio2.useRadio)(ariaRadioProps, state, ref);
1798
+ return /* @__PURE__ */ (0, import_jsx_runtime26.jsxs)(SegmentedRoot, { "aria-disabled": isDisabled || state.isReadOnly, checked: isSelected, children: [
1799
+ /* @__PURE__ */ (0, import_jsx_runtime26.jsx)(SegmentedInput, { ...inputProps, ref }),
1800
+ /* @__PURE__ */ (0, import_jsx_runtime26.jsx)(RadioLabel2, { children: /* @__PURE__ */ (0, import_jsx_runtime26.jsx)(SegmentedLabelInner, { children: props.children }) })
1801
+ ] });
2816
1802
  };
2817
- var SegmentedControlRoot = import_styled_components21.default.div`
2818
- display: inline-flex;
2819
- align-items: center;
2820
-
2821
- background-color: var(--charcoal-surface3);
2822
- border-radius: 16px;
2823
- `;
2824
- var SegmentedRoot = import_styled_components21.default.label`
2825
- position: relative;
2826
- display: flex;
2827
- align-items: center;
2828
- cursor: pointer;
2829
- height: 32px;
2830
-
2831
- padding-right: 16px;
2832
- padding-left: 16px;
2833
- border-radius: 16px;
2834
- &:disabled,
2835
- &[aria-disabled]:not([aria-disabled='false']) {
2836
- cursor: default;
2837
- opacity: 0.32;
2838
- }
2839
- color: var(--charcoal-text2);
2840
-
2841
- ${({ checked = false }) => checked && import_styled_components21.css`
2842
- background-color: var(--charcoal-brand);
2843
- color: var(--charcoal-text5);
2844
- `}
2845
- `;
2846
- var SegmentedInput = import_styled_components21.default.input`
2847
- position: absolute;
2848
-
2849
- height: 0px;
2850
- width: 0px;
2851
- padding: 0;
2852
- margin: 0;
2853
-
2854
- appearance: none;
2855
- box-sizing: border-box;
2856
- overflow: hidden;
2857
- white-space: nowrap;
2858
- opacity: 0;
2859
- `;
2860
- var RadioLabel2 = import_styled_components21.default.div`
2861
- background: transparent;
2862
- display: flex;
2863
- align-items: center;
2864
- height: 22px;
2865
- `;
2866
- var SegmentedLabelInner = import_styled_components21.default.div`
2867
- font-size: 14px;
2868
- line-height: 22px;
2869
- display: flow-root;
2870
-
2871
- &::before {
2872
- display: block;
2873
- width: 0;
2874
- height: 0;
2875
- content: '';
2876
- margin-top: -4px;
2877
- }
2878
- &::after {
2879
- display: block;
2880
- width: 0;
2881
- height: 0;
2882
- content: '';
2883
- margin-bottom: -4px;
2884
- }
2885
- `;
1803
+ var SegmentedControlRoot = import_styled_components21.default.div.withConfig({
1804
+ componentId: "ccl__sc-1xmkkqt-0"
1805
+ })(["display:inline-flex;align-items:center;background-color:var(--charcoal-surface3);border-radius:16px;"]);
1806
+ var SegmentedRoot = import_styled_components21.default.label.withConfig({
1807
+ componentId: "ccl__sc-1xmkkqt-1"
1808
+ })(["position:relative;display:flex;align-items:center;cursor:pointer;height:32px;padding-right:16px;padding-left:16px;border-radius:16px;&:disabled,&[aria-disabled]:not([aria-disabled='false']){cursor:default;opacity:0.32;}color:var(--charcoal-text2);", ""], ({
1809
+ checked = false
1810
+ }) => checked && (0, import_styled_components21.css)(["background-color:var(--charcoal-brand);color:var(--charcoal-text5);"]));
1811
+ var SegmentedInput = import_styled_components21.default.input.withConfig({
1812
+ componentId: "ccl__sc-1xmkkqt-2"
1813
+ })(["position:absolute;height:0px;width:0px;padding:0;margin:0;appearance:none;box-sizing:border-box;overflow:hidden;white-space:nowrap;opacity:0;"]);
1814
+ var RadioLabel2 = import_styled_components21.default.div.withConfig({
1815
+ componentId: "ccl__sc-1xmkkqt-3"
1816
+ })(["background:transparent;display:flex;align-items:center;height:22px;"]);
1817
+ var SegmentedLabelInner = import_styled_components21.default.div.withConfig({
1818
+ componentId: "ccl__sc-1xmkkqt-4"
1819
+ })(["font-size:14px;line-height:22px;display:flow-root;&::before{display:block;width:0;height:0;content:'';margin-top:-4px;}&::after{display:block;width:0;height:0;content:'';margin-bottom:-4px;}"]);
2886
1820
 
2887
1821
  // src/components/Checkbox/index.tsx
2888
1822
  var import_react28 = require("react");
2889
1823
  var import_styled_components22 = __toESM(require("styled-components"));
2890
1824
  var import_checkbox = require("@react-aria/checkbox");
2891
- var import_utils10 = require("@react-aria/utils");
1825
+ var import_utils12 = require("@react-aria/utils");
2892
1826
  var import_react_stately2 = require("react-stately");
2893
- var import_utils11 = require("@charcoal-ui/utils");
1827
+ var import_styled9 = require("@charcoal-ui/styled");
2894
1828
  var import_jsx_runtime27 = require("react/jsx-runtime");
2895
- var Checkbox = (0, import_react28.forwardRef)(
2896
- function CheckboxInner({ invalid = false, ...props }, ref) {
2897
- const ariaCheckboxProps = (0, import_react28.useMemo)(
2898
- () => ({
2899
- ...props,
2900
- isInValid: invalid,
2901
- isSelected: props.checked,
2902
- defaultSelected: props.defaultChecked,
2903
- validationState: invalid ? "invalid" : "valid",
2904
- "aria-label": "children" in props ? void 0 : props.label,
2905
- isDisabled: props.disabled
2906
- }),
2907
- [invalid, props]
2908
- );
2909
- const state = (0, import_react_stately2.useToggleState)(ariaCheckboxProps);
2910
- const objectRef = (0, import_utils10.useObjectRef)(ref);
2911
- const { inputProps } = (0, import_checkbox.useCheckbox)(ariaCheckboxProps, state, objectRef);
2912
- const isDisabled = (props.disabled ?? false) || (props.readonly ?? false);
2913
- return /* @__PURE__ */ (0, import_jsx_runtime27.jsxs)(InputRoot, { "aria-disabled": isDisabled, className: props.className, children: [
2914
- /* @__PURE__ */ (0, import_jsx_runtime27.jsxs)(CheckboxRoot, { children: [
2915
- /* @__PURE__ */ (0, import_jsx_runtime27.jsx)(CheckboxInput, { type: "checkbox", ...inputProps }),
2916
- /* @__PURE__ */ (0, import_jsx_runtime27.jsx)(CheckboxInputOverlay, { "aria-hidden": true, checked: inputProps.checked, children: /* @__PURE__ */ (0, import_jsx_runtime27.jsx)(Icon_default, { name: "24/Check", unsafeNonGuidelineScale: 2 / 3 }) })
2917
- ] }),
2918
- "children" in props && /* @__PURE__ */ (0, import_jsx_runtime27.jsx)(InputLabel, { children: props.children })
2919
- ] });
2920
- }
2921
- );
1829
+ var Checkbox = (0, import_react28.forwardRef)(function CheckboxInner({
1830
+ invalid = false,
1831
+ ...props
1832
+ }, ref) {
1833
+ const ariaCheckboxProps = (0, import_react28.useMemo)(() => ({
1834
+ ...props,
1835
+ isInValid: invalid,
1836
+ isSelected: props.checked,
1837
+ defaultSelected: props.defaultChecked,
1838
+ validationState: invalid ? "invalid" : "valid",
1839
+ "aria-label": "children" in props ? void 0 : props.label,
1840
+ isDisabled: props.disabled
1841
+ }), [invalid, props]);
1842
+ const state = (0, import_react_stately2.useToggleState)(ariaCheckboxProps);
1843
+ const objectRef = (0, import_utils12.useObjectRef)(ref);
1844
+ const {
1845
+ inputProps
1846
+ } = (0, import_checkbox.useCheckbox)(ariaCheckboxProps, state, objectRef);
1847
+ const isDisabled = (props.disabled ?? false) || (props.readonly ?? false);
1848
+ return /* @__PURE__ */ (0, import_jsx_runtime27.jsxs)(InputRoot, { "aria-disabled": isDisabled, className: props.className, children: [
1849
+ /* @__PURE__ */ (0, import_jsx_runtime27.jsxs)(CheckboxRoot, { children: [
1850
+ /* @__PURE__ */ (0, import_jsx_runtime27.jsx)(CheckboxInput, { type: "checkbox", ...inputProps, readOnly: props.readonly }),
1851
+ /* @__PURE__ */ (0, import_jsx_runtime27.jsx)(CheckboxInputOverlay, { "aria-hidden": true, checked: inputProps.checked, children: /* @__PURE__ */ (0, import_jsx_runtime27.jsx)(Icon_default, { name: "24/Check", unsafeNonGuidelineScale: 2 / 3 }) })
1852
+ ] }),
1853
+ "children" in props && /* @__PURE__ */ (0, import_jsx_runtime27.jsx)(InputLabel, { children: props.children })
1854
+ ] });
1855
+ });
2922
1856
  var Checkbox_default = (0, import_react28.memo)(Checkbox);
2923
- var hiddenCss = import_styled_components22.css`
2924
- visibility: hidden;
2925
- `;
2926
- var InputRoot = import_styled_components22.default.label`
2927
- position: relative;
2928
- display: flex;
2929
-
2930
- cursor: pointer;
2931
- ${import_utils11.disabledSelector} {
2932
- cursor: default;
2933
- }
2934
-
2935
- gap: 4px;
2936
- &:disabled,
2937
- &[aria-disabled]:not([aria-disabled='false']) {
2938
- opacity: 0.32;
2939
- }
2940
- `;
2941
- var CheckboxRoot = import_styled_components22.default.div`
2942
- position: relative;
2943
- `;
2944
- var CheckboxInput = import_styled_components22.default.input`
2945
- &[type='checkbox'] {
2946
- appearance: none;
2947
- display: block;
2948
- cursor: pointer;
2949
- margin: 0;
2950
- width: 20px;
2951
- height: 20px;
2952
- border-radius: 4px;
2953
- transition: 0.2s box-shadow, 0.2s background-color;
2954
-
2955
- &:checked {
2956
- background-color: var(--charcoal-brand);
2957
-
2958
- &:not(:disabled):not([aria-disabled]),
2959
- &[aria-disabled='false'] {
2960
- &:hover {
2961
- background-color: var(--charcoal-brand-hover);
2962
- }
2963
- &:active {
2964
- background-color: var(--charcoal-brand-press);
2965
- }
2966
- }
2967
- }
2968
-
2969
- &:not(:disabled):not([aria-disabled]),
2970
- &[aria-disabled='false'] {
2971
- &:focus,
2972
- &:active {
2973
- outline: none;
2974
- box-shadow: 0 0 0 4px rgba(0, 150, 250, 0.32);
2975
- &:not(:focus-visible) {
2976
- outline: none;
2977
- }
2978
- }
2979
- &:focus-visible {
2980
- outline: none;
2981
- box-shadow: 0 0 0 4px rgba(0, 150, 250, 0.32);
2982
- }
2983
- &[aria-invalid='true'] {
2984
- box-shadow: 0 0 0 4px rgba(255, 43, 0, 0.32);
2985
- }
2986
- }
2987
-
2988
- &:not(:checked) {
2989
- border-width: 2px;
2990
- border-style: solid;
2991
- border-color: var(--charcoal-text4);
2992
- }
2993
- }
2994
- `;
2995
- var CheckboxInputOverlay = import_styled_components22.default.div`
2996
- position: absolute;
2997
- top: -2px;
2998
- left: -2px;
2999
- box-sizing: border-box;
3000
- display: flex;
3001
- align-items: center;
3002
- justify-content: center;
3003
- width: 24px;
3004
- height: 24px;
3005
- color: var(--charcoal-text5);
3006
-
3007
- ${({ checked }) => checked !== true && hiddenCss};
3008
- `;
3009
- var InputLabel = import_styled_components22.default.div`
3010
- color: var(--charcoal-text2);
3011
- font-size: 14px;
3012
- /** checkbox の height が 20px なのでcheckbox と text が揃っているように見せるために行ボックスの高さを 20px にしている */
3013
- line-height: 20px;
3014
- `;
1857
+ var hiddenCss = (0, import_styled_components22.css)(["visibility:hidden;"]);
1858
+ var InputRoot = import_styled_components22.default.label.withConfig({
1859
+ componentId: "ccl__sc-wrdmwj-0"
1860
+ })(["position:relative;display:flex;cursor:pointer;gap:4px;&:disabled,&[aria-disabled]:not([aria-disabled='false']){cursor:default;opacity:0.32;}"]);
1861
+ var CheckboxRoot = import_styled_components22.default.div.withConfig({
1862
+ componentId: "ccl__sc-wrdmwj-1"
1863
+ })(["position:relative;"]);
1864
+ var CheckboxInput = import_styled_components22.default.input.withConfig({
1865
+ componentId: "ccl__sc-wrdmwj-2"
1866
+ })(["&[type='checkbox']{appearance:none;display:block;cursor:pointer;margin:0;width:20px;height:20px;border-radius:4px;transition:0.2s box-shadow,0.2s background-color;&:disabled{cursor:default;}&:read-only{cursor:default;}&:checked{background-color:var(--charcoal-brand);&:not(:disabled):not([aria-disabled]),&[aria-disabled='false']{&:hover{background-color:var(--charcoal-brand-hover);}&:active{background-color:var(--charcoal-brand-press);}}}&:not(:disabled):not([aria-disabled]),&[aria-disabled='false']{", " &[aria-invalid='true']{box-shadow:0 0 0 4px rgba(255,43,0,0.32);}}&:not(:checked){border-width:2px;border-style:solid;border-color:var(--charcoal-text4);}}"], import_styled9.focusVisibleFocusRingCss);
1867
+ var CheckboxInputOverlay = import_styled_components22.default.div.withConfig({
1868
+ componentId: "ccl__sc-wrdmwj-3"
1869
+ })(["position:absolute;top:-2px;left:-2px;box-sizing:border-box;display:flex;align-items:center;justify-content:center;width:24px;height:24px;color:var(--charcoal-text5);", ";"], ({
1870
+ checked
1871
+ }) => checked !== true && hiddenCss);
1872
+ var InputLabel = import_styled_components22.default.div.withConfig({
1873
+ componentId: "ccl__sc-wrdmwj-4"
1874
+ })(["color:var(--charcoal-text2);font-size:14px;line-height:20px;"]);
3015
1875
 
3016
1876
  // src/components/TagItem/index.tsx
3017
1877
  var import_react29 = require("react");
3018
- var import_utils12 = require("@react-aria/utils");
1878
+ var import_utils13 = require("@react-aria/utils");
3019
1879
  var import_styled_components23 = __toESM(require("styled-components"));
3020
- var import_utils13 = require("@charcoal-ui/utils");
1880
+ var import_utils14 = require("@charcoal-ui/utils");
3021
1881
  var import_button = require("@react-aria/button");
1882
+ var import_styled10 = require("@charcoal-ui/styled");
3022
1883
  var import_jsx_runtime28 = require("react/jsx-runtime");
3023
1884
  var sizeMap = {
3024
1885
  S: 32,
3025
1886
  M: 40
3026
1887
  };
3027
- var TagItem = (0, import_react29.forwardRef)(
3028
- function TagItemInner({
3029
- label,
3030
- translatedLabel,
3031
- bgColor = "#7ACCB1",
3032
- bgImage,
3033
- size = "M",
3034
- disabled,
3035
- status = "default",
3036
- className,
1888
+ var TagItem = (0, import_react29.forwardRef)(function TagItemInner({
1889
+ label,
1890
+ translatedLabel,
1891
+ bgColor = "#7ACCB1",
1892
+ bgImage,
1893
+ size = "M",
1894
+ disabled,
1895
+ status = "default",
1896
+ className,
1897
+ ...props
1898
+ }, _ref) {
1899
+ const ref = (0, import_utils13.useObjectRef)(_ref);
1900
+ const ariaButtonProps = (0, import_react29.useMemo)(() => ({
1901
+ elementType: "a",
1902
+ isDisabled: disabled,
3037
1903
  ...props
3038
- }, _ref) {
3039
- const ref = (0, import_utils12.useObjectRef)(_ref);
3040
- const ariaButtonProps = (0, import_react29.useMemo)(
3041
- () => ({
3042
- elementType: "a",
3043
- isDisabled: disabled,
3044
- ...props
3045
- }),
3046
- [disabled, props]
3047
- );
3048
- const { buttonProps } = (0, import_button.useButton)(ariaButtonProps, ref);
3049
- const hasTranslatedLabel = translatedLabel !== void 0 && translatedLabel.length > 0;
3050
- return /* @__PURE__ */ (0, import_jsx_runtime28.jsxs)(
3051
- TagItemRoot,
3052
- {
3053
- ref,
3054
- size: hasTranslatedLabel ? "M" : size,
3055
- status,
3056
- ...buttonProps,
3057
- className,
3058
- children: [
3059
- /* @__PURE__ */ (0, import_jsx_runtime28.jsx)(Background, { bgColor, bgImage, status }),
3060
- /* @__PURE__ */ (0, import_jsx_runtime28.jsxs)(Inner, { children: [
3061
- /* @__PURE__ */ (0, import_jsx_runtime28.jsxs)(LabelWrapper, { isTranslate: hasTranslatedLabel, children: [
3062
- hasTranslatedLabel && /* @__PURE__ */ (0, import_jsx_runtime28.jsx)(TranslatedLabel, { children: /* @__PURE__ */ (0, import_jsx_runtime28.jsx)(Label3, { children: translatedLabel }) }),
3063
- /* @__PURE__ */ (0, import_jsx_runtime28.jsx)(Label3, { children: label })
3064
- ] }),
3065
- status === "active" && /* @__PURE__ */ (0, import_jsx_runtime28.jsx)(Icon_default, { name: "16/Remove" })
3066
- ] })
3067
- ]
3068
- }
3069
- );
3070
- }
3071
- );
1904
+ }), [disabled, props]);
1905
+ const {
1906
+ buttonProps
1907
+ } = (0, import_button.useButton)(ariaButtonProps, ref);
1908
+ const hasTranslatedLabel = translatedLabel !== void 0 && translatedLabel.length > 0;
1909
+ return /* @__PURE__ */ (0, import_jsx_runtime28.jsxs)(TagItemRoot, { ref, size: hasTranslatedLabel ? "M" : size, status, ...buttonProps, className, children: [
1910
+ /* @__PURE__ */ (0, import_jsx_runtime28.jsx)(Background, { bgColor, bgImage, status }),
1911
+ /* @__PURE__ */ (0, import_jsx_runtime28.jsxs)(Inner, { children: [
1912
+ /* @__PURE__ */ (0, import_jsx_runtime28.jsxs)(LabelWrapper, { isTranslate: hasTranslatedLabel, children: [
1913
+ hasTranslatedLabel && /* @__PURE__ */ (0, import_jsx_runtime28.jsx)(TranslatedLabel, { children: /* @__PURE__ */ (0, import_jsx_runtime28.jsx)(Label3, { children: translatedLabel }) }),
1914
+ /* @__PURE__ */ (0, import_jsx_runtime28.jsx)(Label3, { children: label })
1915
+ ] }),
1916
+ status === "active" && /* @__PURE__ */ (0, import_jsx_runtime28.jsx)(Icon_default, { name: "16/Remove" })
1917
+ ] })
1918
+ ] });
1919
+ });
3072
1920
  var TagItem_default = (0, import_react29.memo)(TagItem);
3073
- var horizontalPadding = ({ left, right }) => import_styled_components23.css`
3074
- padding-right: ${(0, import_utils13.px)(right)};
3075
- padding-left: ${(0, import_utils13.px)(left)};
3076
- `;
1921
+ var horizontalPadding = ({
1922
+ left,
1923
+ right
1924
+ }) => (0, import_styled_components23.css)(["padding-right:", ";padding-left:", ";"], (0, import_utils14.px)(right), (0, import_utils14.px)(left));
3077
1925
  var tagItemRootSize = (size) => {
3078
1926
  switch (size) {
3079
1927
  case "M":
3080
- return horizontalPadding({ left: 24, right: 24 });
1928
+ return horizontalPadding({
1929
+ left: 24,
1930
+ right: 24
1931
+ });
3081
1932
  case "S":
3082
- return horizontalPadding({ left: 16, right: 16 });
1933
+ return horizontalPadding({
1934
+ left: 16,
1935
+ right: 16
1936
+ });
3083
1937
  }
3084
1938
  };
3085
- var activeTagItemRoot = horizontalPadding({ left: 16, right: 8 });
3086
- var TagItemRoot = import_styled_components23.default.a`
3087
- isolation: isolate;
3088
- position: relative;
3089
- height: ${({ size }) => sizeMap[size]}px;
3090
- display: inline-flex;
3091
- align-items: center;
3092
- justify-content: center;
3093
- text-decoration: none;
3094
- cursor: pointer;
3095
- overflow: hidden;
3096
- border-radius: 4px;
3097
- ${({ size, status }) => status !== "active" && tagItemRootSize(size)}
3098
- ${({ status }) => status === "active" && activeTagItemRoot}
3099
- color: ${({ status }) => status === "inactive" ? "var(--charcoal-text2)" : "var(--charcoal-text5)"};
3100
-
3101
- transition: 0.2s box-shadow;
3102
-
3103
- &:not(:disabled):not([aria-disabled]),
3104
- &[aria-disabled='false'] {
3105
- &:focus,
3106
- &:active,
3107
- &:focus-visible {
3108
- outline: none;
3109
- box-shadow: 0 0 0 4px rgba(0, 150, 250, 0.32);
3110
- }
3111
- }
3112
-
3113
- &:disabled,
3114
- &[aria-disabled]:not([aria-disabled='false']) {
3115
- opacity: 0.32;
3116
- cursor: default;
3117
- }
3118
- `;
3119
- var Background = import_styled_components23.default.div`
3120
- position: absolute;
3121
- z-index: 1;
3122
- top: 0;
3123
- left: 0;
3124
- width: 100%;
3125
- height: 100%;
3126
-
3127
- background-color: ${({ bgColor }) => bgColor};
3128
- ${({ status }) => status === "inactive" && import_styled_components23.css`
3129
- background-color: var(--charcoal-surface3);
3130
- `}
3131
-
3132
- ${({ bgImage }) => bgImage !== void 0 && import_styled_components23.css`
3133
- background-color: var(--charcoal-surface4);
3134
-
3135
- &::before {
3136
- content: '';
3137
- position: absolute;
3138
- top: 0;
3139
- left: 0;
3140
- width: 100%;
3141
- height: 100%;
3142
- background-position: center;
3143
- background-size: cover;
3144
- background-image: url(${bgImage});
3145
- mix-blend-mode: overlay;
3146
- }
3147
- `}
3148
- `;
3149
- var Inner = import_styled_components23.default.div`
3150
- display: inline-flex;
3151
- gap: 8px;
3152
- align-items: center;
3153
- z-index: 2;
3154
- `;
3155
- var labelCSS = import_styled_components23.css`
3156
- font-size: 14px;
3157
- line-height: 22px;
3158
- font-weight: bold;
3159
- display: flow-root;
3160
-
3161
- &::before {
3162
- display: block;
3163
- width: 0;
3164
- height: 0;
3165
- content: '';
3166
- margin-top: -4px;
3167
- }
3168
- &::after {
3169
- display: block;
3170
- width: 0;
3171
- height: 0;
3172
- content: '';
3173
- margin-bottom: -4px;
3174
- }
3175
- `;
3176
- var translateLabelCSS = import_styled_components23.css`
3177
- display: flex;
3178
- align-items: center;
3179
- flex-direction: column;
3180
- font-size: 10px;
3181
- `;
3182
- var LabelWrapper = import_styled_components23.default.div`
3183
- ${({ isTranslate }) => isTranslate ?? false ? translateLabelCSS : labelCSS}
3184
- `;
3185
- var Label3 = import_styled_components23.default.span`
3186
- max-width: 152px;
3187
- overflow: hidden;
3188
- text-overflow: ellipsis;
3189
- white-space: nowrap;
3190
- font-size: inherit;
3191
- color: inherit;
3192
- line-height: inherit;
3193
- `;
3194
- var TranslatedLabel = import_styled_components23.default.div`
3195
- font-size: 12px;
3196
- line-height: 20px;
3197
- font-weight: bold;
3198
- display: flow-root;
3199
- &::before {
3200
- display: block;
3201
- width: 0;
3202
- height: 0;
3203
- content: '';
3204
- margin-top: -4px;
3205
- }
3206
- &::after {
3207
- display: block;
3208
- width: 0;
3209
- height: 0;
3210
- content: '';
3211
- margin-bottom: -4px;
3212
- }
3213
- `;
1939
+ var activeTagItemRoot = horizontalPadding({
1940
+ left: 16,
1941
+ right: 8
1942
+ });
1943
+ var TagItemRoot = import_styled_components23.default.a.withConfig({
1944
+ componentId: "ccl__sc-11j9pu2-0"
1945
+ })(["isolation:isolate;position:relative;height:", "px;display:inline-flex;align-items:center;justify-content:center;text-decoration:none;cursor:pointer;overflow:hidden;border-radius:4px;", " ", " color:", ";transition:0.2s box-shadow;&:not(:disabled):not([aria-disabled]),&[aria-disabled='false']{", "}&:disabled,&[aria-disabled]:not([aria-disabled='false']){opacity:0.32;cursor:default;}"], ({
1946
+ size
1947
+ }) => sizeMap[size], ({
1948
+ size,
1949
+ status
1950
+ }) => status !== "active" && tagItemRootSize(size), ({
1951
+ status
1952
+ }) => status === "active" && activeTagItemRoot, ({
1953
+ status
1954
+ }) => status === "inactive" ? "var(--charcoal-text2)" : "var(--charcoal-text5)", import_styled10.focusVisibleFocusRingCss);
1955
+ var Background = import_styled_components23.default.div.withConfig({
1956
+ componentId: "ccl__sc-11j9pu2-1"
1957
+ })(["position:absolute;z-index:1;top:0;left:0;width:100%;height:100%;background-color:", ";", " ", ""], ({
1958
+ bgColor
1959
+ }) => bgColor, ({
1960
+ status
1961
+ }) => status === "inactive" && (0, import_styled_components23.css)(["background-color:var(--charcoal-surface3);"]), ({
1962
+ bgImage
1963
+ }) => bgImage !== void 0 && (0, import_styled_components23.css)(["background-color:var(--charcoal-surface4);&::before{content:'';position:absolute;top:0;left:0;width:100%;height:100%;background-position:center;background-size:cover;background-image:url(", ");mix-blend-mode:overlay;}"], bgImage));
1964
+ var Inner = import_styled_components23.default.div.withConfig({
1965
+ componentId: "ccl__sc-11j9pu2-2"
1966
+ })(["display:inline-flex;gap:8px;align-items:center;z-index:2;"]);
1967
+ var labelCSS = (0, import_styled_components23.css)(["font-size:14px;line-height:22px;font-weight:bold;display:flow-root;&::before{display:block;width:0;height:0;content:'';margin-top:-4px;}&::after{display:block;width:0;height:0;content:'';margin-bottom:-4px;}"]);
1968
+ var translateLabelCSS = (0, import_styled_components23.css)(["display:flex;align-items:center;flex-direction:column;font-size:10px;"]);
1969
+ var LabelWrapper = import_styled_components23.default.div.withConfig({
1970
+ componentId: "ccl__sc-11j9pu2-3"
1971
+ })(["", ""], ({
1972
+ isTranslate
1973
+ }) => isTranslate ?? false ? translateLabelCSS : labelCSS);
1974
+ var Label3 = import_styled_components23.default.span.withConfig({
1975
+ componentId: "ccl__sc-11j9pu2-4"
1976
+ })(["max-width:152px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;font-size:inherit;color:inherit;line-height:inherit;"]);
1977
+ var TranslatedLabel = import_styled_components23.default.div.withConfig({
1978
+ componentId: "ccl__sc-11j9pu2-5"
1979
+ })(["font-size:12px;line-height:20px;font-weight:bold;display:flow-root;&::before{display:block;width:0;height:0;content:'';margin-top:-4px;}&::after{display:block;width:0;height:0;content:'';margin-bottom:-4px;}"]);
3214
1980
  // Annotate the CommonJS export names for ESM import in node:
3215
1981
  0 && (module.exports = {
3216
1982
  Button,