@charcoal-ui/react 3.4.0 → 3.6.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.
- package/dist/components/Button/index.d.ts.map +1 -1
- package/dist/components/Checkbox/index.d.ts.map +1 -1
- package/dist/components/Checkbox/index.story.d.ts +1 -0
- package/dist/components/Checkbox/index.story.d.ts.map +1 -1
- package/dist/components/DropdownSelector/DropdownMenuItem.d.ts.map +1 -1
- package/dist/components/DropdownSelector/ListItem/index.d.ts.map +1 -1
- package/dist/components/DropdownSelector/Popover/index.d.ts.map +1 -1
- package/dist/components/DropdownSelector/index.d.ts.map +1 -1
- package/dist/components/FieldLabel/index.d.ts.map +1 -1
- package/dist/components/IconButton/index.d.ts.map +1 -1
- package/dist/components/LoadingSpinner/index.d.ts.map +1 -1
- package/dist/components/Modal/ModalPlumbing.d.ts.map +1 -1
- package/dist/components/Modal/index.d.ts.map +1 -1
- package/dist/components/Modal/index.story.d.ts +1 -0
- package/dist/components/Modal/index.story.d.ts.map +1 -1
- package/dist/components/MultiSelect/index.d.ts.map +1 -1
- package/dist/components/MultiSelect/index.story.d.ts +2 -0
- package/dist/components/MultiSelect/index.story.d.ts.map +1 -1
- package/dist/components/Radio/index.d.ts.map +1 -1
- package/dist/components/SegmentedControl/index.d.ts.map +1 -1
- package/dist/components/Switch/index.d.ts.map +1 -1
- package/dist/components/TagItem/index.d.ts.map +1 -1
- package/dist/components/TextArea/index.d.ts.map +1 -1
- package/dist/components/TextField/TextField.story.d.ts.map +1 -1
- package/dist/components/TextField/index.d.ts +4 -0
- package/dist/components/TextField/index.d.ts.map +1 -1
- package/dist/components/TextField/useFocusWithClick.d.ts +3 -0
- package/dist/components/TextField/useFocusWithClick.d.ts.map +1 -0
- package/dist/index.cjs.js +935 -494
- package/dist/index.cjs.js.map +1 -1
- package/dist/index.esm.js +863 -422
- package/dist/index.esm.js.map +1 -1
- package/dist/styled.d.ts +4 -4
- package/package.json +9 -9
- package/src/components/Button/__snapshots__/index.story.storyshot +312 -592
- package/src/components/Button/index.tsx +50 -14
- package/src/components/Checkbox/__snapshots__/index.story.storyshot +209 -40
- package/src/components/Checkbox/__snapshots__/snapshot.test.tsx.snap +410 -80
- package/src/components/Checkbox/index.story.tsx +24 -0
- package/src/components/Checkbox/index.tsx +47 -17
- package/src/components/Clickable/__snapshots__/index.story.storyshot +4 -0
- package/src/components/Clickable/index.tsx +1 -0
- package/src/components/DropdownSelector/DropdownMenuItem.tsx +19 -3
- package/src/components/DropdownSelector/ListItem/__snapshots__/index.story.storyshot +3 -10
- package/src/components/DropdownSelector/ListItem/index.tsx +6 -4
- package/src/components/DropdownSelector/MenuItemGroup/index.tsx +1 -1
- package/src/components/DropdownSelector/MenuList/__snapshots__/index.story.storyshot +4 -13
- package/src/components/DropdownSelector/Popover/__snapshots__/index.story.storyshot +20 -37
- package/src/components/DropdownSelector/Popover/index.tsx +5 -8
- package/src/components/DropdownSelector/__snapshots__/index.story.storyshot +60 -191
- package/src/components/DropdownSelector/index.tsx +70 -20
- package/src/components/FieldLabel/index.tsx +77 -12
- package/src/components/IconButton/__snapshots__/index.story.storyshot +30 -54
- package/src/components/IconButton/index.tsx +51 -26
- package/src/components/LoadingSpinner/index.tsx +3 -6
- package/src/components/Modal/Dialog/index.tsx +1 -1
- package/src/components/Modal/ModalPlumbing.tsx +26 -5
- package/src/components/Modal/__snapshots__/index.story.storyshot +2454 -108
- package/src/components/Modal/index.story.tsx +27 -0
- package/src/components/Modal/index.tsx +19 -4
- package/src/components/MultiSelect/__snapshots__/index.story.storyshot +528 -25
- package/src/components/MultiSelect/index.story.tsx +60 -0
- package/src/components/MultiSelect/index.tsx +82 -22
- package/src/components/Radio/__snapshots__/index.story.storyshot +32 -49
- package/src/components/Radio/index.tsx +71 -23
- package/src/components/SegmentedControl/__snapshots__/index.story.storyshot +18 -19
- package/src/components/SegmentedControl/index.tsx +35 -15
- package/src/components/Switch/__snapshots__/index.story.storyshot +6 -18
- package/src/components/Switch/index.tsx +10 -15
- package/src/components/TagItem/__snapshots__/index.story.storyshot +39 -158
- package/src/components/TagItem/index.tsx +84 -19
- package/src/components/TextArea/__snapshots__/TextArea.story.storyshot +126 -321
- package/src/components/TextArea/index.tsx +38 -43
- package/src/components/TextField/TextField.story.tsx +35 -19
- package/src/components/TextField/__snapshots__/TextField.story.storyshot +309 -563
- package/src/components/TextField/index.tsx +85 -84
- package/src/components/TextField/useFocusWithClick.tsx +22 -0
package/dist/index.cjs.js
CHANGED
|
@@ -110,7 +110,7 @@ function CharcoalProvider({
|
|
|
110
110
|
|
|
111
111
|
// src/components/Button/index.tsx
|
|
112
112
|
var import_react2 = require("react");
|
|
113
|
-
var
|
|
113
|
+
var import_styled_components3 = __toESM(require("styled-components"));
|
|
114
114
|
|
|
115
115
|
// src/_lib/index.ts
|
|
116
116
|
function unreachable(value) {
|
|
@@ -134,14 +134,9 @@ function countCodePointsInString(string) {
|
|
|
134
134
|
return Array.from(string).length;
|
|
135
135
|
}
|
|
136
136
|
|
|
137
|
-
// src/styled.ts
|
|
138
|
-
var import_styled_components2 = __toESM(require("styled-components"));
|
|
139
|
-
var import_styled2 = require("@charcoal-ui/styled");
|
|
140
|
-
var theme = (0, import_styled2.createTheme)(import_styled_components2.default);
|
|
141
|
-
|
|
142
137
|
// src/components/Clickable/index.tsx
|
|
143
138
|
var React2 = __toESM(require("react"));
|
|
144
|
-
var
|
|
139
|
+
var import_styled_components2 = __toESM(require("styled-components"));
|
|
145
140
|
var import_utils = require("@charcoal-ui/utils");
|
|
146
141
|
var import_jsx_runtime3 = require("react/jsx-runtime");
|
|
147
142
|
var Clickable = React2.forwardRef(
|
|
@@ -167,7 +162,7 @@ var Clickable = React2.forwardRef(
|
|
|
167
162
|
}
|
|
168
163
|
);
|
|
169
164
|
var Clickable_default = Clickable;
|
|
170
|
-
var StyledClickableDiv =
|
|
165
|
+
var StyledClickableDiv = import_styled_components2.default.div`
|
|
171
166
|
cursor: pointer;
|
|
172
167
|
|
|
173
168
|
${import_utils.disabledSelector} {
|
|
@@ -184,6 +179,7 @@ var StyledClickableDiv = import_styled_components3.default.div`
|
|
|
184
179
|
text-rendering: inherit;
|
|
185
180
|
letter-spacing: inherit;
|
|
186
181
|
word-spacing: inherit;
|
|
182
|
+
text-decoration: none;
|
|
187
183
|
|
|
188
184
|
&:focus {
|
|
189
185
|
outline: none;
|
|
@@ -223,7 +219,8 @@ var Button = (0, import_react2.forwardRef)(function Button2({
|
|
|
223
219
|
{
|
|
224
220
|
...rest,
|
|
225
221
|
disabled,
|
|
226
|
-
$
|
|
222
|
+
$background: variantToBackground(variant),
|
|
223
|
+
$color: variantToFont(variant),
|
|
227
224
|
$size: size,
|
|
228
225
|
$fullWidth: fixed,
|
|
229
226
|
ref,
|
|
@@ -232,7 +229,15 @@ var Button = (0, import_react2.forwardRef)(function Button2({
|
|
|
232
229
|
);
|
|
233
230
|
});
|
|
234
231
|
var Button_default = Button;
|
|
235
|
-
var
|
|
232
|
+
var horizontalPaddingSmall = import_styled_components3.css`
|
|
233
|
+
padding-right: 16px;
|
|
234
|
+
padding-left: 16px;
|
|
235
|
+
`;
|
|
236
|
+
var horizontalPaddingMedium = import_styled_components3.css`
|
|
237
|
+
padding-right: 24px;
|
|
238
|
+
padding-left: 24px;
|
|
239
|
+
`;
|
|
240
|
+
var StyledButton = (0, import_styled_components3.default)(Clickable_default)`
|
|
236
241
|
width: ${(p) => p.$fullWidth ? "stretch" : "min-content"};
|
|
237
242
|
display: inline-grid;
|
|
238
243
|
align-items: center;
|
|
@@ -240,16 +245,40 @@ var StyledButton = (0, import_styled_components4.default)(Clickable_default)`
|
|
|
240
245
|
cursor: pointer;
|
|
241
246
|
user-select: none;
|
|
242
247
|
white-space: nowrap;
|
|
248
|
+
border-radius: 999999px;
|
|
249
|
+
font-size: 14px;
|
|
250
|
+
line-height: 22px;
|
|
251
|
+
font-weight: bold;
|
|
252
|
+
|
|
253
|
+
${(p) => p.$size === "M" ? horizontalPaddingMedium : horizontalPaddingSmall}
|
|
243
254
|
|
|
244
|
-
|
|
245
|
-
|
|
246
|
-
|
|
247
|
-
|
|
248
|
-
|
|
249
|
-
|
|
250
|
-
|
|
251
|
-
|
|
252
|
-
|
|
255
|
+
color: var(--charcoal-${(p) => p.$color});
|
|
256
|
+
background-color: var(--charcoal-${(p) => p.$background});
|
|
257
|
+
transition: 0.2s color, 0.2s background-color, 0.2s box-shadow;
|
|
258
|
+
|
|
259
|
+
&:not(:disabled):not([aria-disabled]),
|
|
260
|
+
&[aria-disabled='false'] {
|
|
261
|
+
&:active,
|
|
262
|
+
&:focus,
|
|
263
|
+
&:focus-visible {
|
|
264
|
+
outline: none;
|
|
265
|
+
box-shadow: 0 0 0 4px rgba(0, 150, 250, 0.32);
|
|
266
|
+
}
|
|
267
|
+
|
|
268
|
+
&:hover {
|
|
269
|
+
color: var(--charcoal-${(p) => p.$color}-hover);
|
|
270
|
+
background-color: var(--charcoal-${(p) => p.$background}-hover);
|
|
271
|
+
}
|
|
272
|
+
&:active {
|
|
273
|
+
color: var(--charcoal-${(p) => p.$color}-press);
|
|
274
|
+
background-color: var(--charcoal-${(p) => p.$background}-press);
|
|
275
|
+
}
|
|
276
|
+
}
|
|
277
|
+
|
|
278
|
+
&:disabled,
|
|
279
|
+
&[aria-disabled]:not([aria-disabled='false']) {
|
|
280
|
+
opacity: 0.32;
|
|
281
|
+
}
|
|
253
282
|
|
|
254
283
|
/* よく考えたらheight=32って定義が存在しないな... */
|
|
255
284
|
height: ${(p) => p.$size === "M" ? 40 : 32}px;
|
|
@@ -289,63 +318,83 @@ function variantToFont(variant) {
|
|
|
289
318
|
|
|
290
319
|
// src/components/IconButton/index.tsx
|
|
291
320
|
var import_react3 = require("react");
|
|
292
|
-
var
|
|
321
|
+
var import_styled_components4 = __toESM(require("styled-components"));
|
|
293
322
|
var import_jsx_runtime5 = require("react/jsx-runtime");
|
|
294
323
|
var IconButton = (0, import_react3.forwardRef)(
|
|
295
324
|
function IconButtonInner({ variant = "Default", size = "M", icon, ...rest }, ref) {
|
|
296
325
|
validateIconSize(size, icon);
|
|
297
|
-
return /* @__PURE__ */ (0, import_jsx_runtime5.jsx)(StyledIconButton, { ...rest, ref,
|
|
326
|
+
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 }) });
|
|
298
327
|
}
|
|
299
328
|
);
|
|
300
329
|
var IconButton_default = IconButton;
|
|
301
|
-
var StyledIconButton = (0,
|
|
330
|
+
var StyledIconButton = (0, import_styled_components4.default)(Clickable_default).attrs(styledProps)`
|
|
302
331
|
user-select: none;
|
|
303
332
|
|
|
304
|
-
width: ${(p) => p
|
|
305
|
-
height: ${(p) => p
|
|
333
|
+
width: ${(p) => p.$width}px;
|
|
334
|
+
height: ${(p) => p.$height}px;
|
|
306
335
|
display: flex;
|
|
307
336
|
align-items: center;
|
|
308
337
|
justify-content: center;
|
|
338
|
+
color: var(${({ $font }) => `--charcoal-${$font}`});
|
|
339
|
+
background-color: var(${({ $background }) => `--charcoal-${$background}`});
|
|
340
|
+
border-radius: 999999px;
|
|
341
|
+
transition: 0.2s background-color, 0.2s box-shadow;
|
|
342
|
+
|
|
343
|
+
&:not(:disabled):not([aria-disabled]),
|
|
344
|
+
&[aria-disabled='false'] {
|
|
345
|
+
&:hover {
|
|
346
|
+
background-color: var(
|
|
347
|
+
${({ $background }) => `--charcoal-${$background}-hover`}
|
|
348
|
+
);
|
|
349
|
+
}
|
|
350
|
+
&:active {
|
|
351
|
+
background-color: var(
|
|
352
|
+
${({ $background }) => `--charcoal-${$background}-press`}
|
|
353
|
+
);
|
|
354
|
+
}
|
|
355
|
+
&:focus,
|
|
356
|
+
&:active,
|
|
357
|
+
&:focus-visible {
|
|
358
|
+
outline: none;
|
|
359
|
+
box-shadow: 0 0 0 4px rgba(0, 150, 250, 0.32);
|
|
360
|
+
}
|
|
361
|
+
}
|
|
309
362
|
|
|
310
|
-
|
|
311
|
-
|
|
312
|
-
|
|
313
|
-
|
|
314
|
-
o.borderRadius("oval"),
|
|
315
|
-
o.outline.default.focus
|
|
316
|
-
])}
|
|
363
|
+
&:disabled,
|
|
364
|
+
&[aria-disabled]:not([aria-disabled='false']) {
|
|
365
|
+
opacity: 0.32;
|
|
366
|
+
}
|
|
317
367
|
`;
|
|
318
|
-
function styledProps(
|
|
368
|
+
function styledProps({ $size, $variant }) {
|
|
319
369
|
return {
|
|
320
|
-
...
|
|
321
|
-
...
|
|
322
|
-
...sizeToProps(props.size)
|
|
370
|
+
...variantToProps($variant),
|
|
371
|
+
...sizeToProps($size)
|
|
323
372
|
};
|
|
324
373
|
}
|
|
325
374
|
function variantToProps(variant) {
|
|
326
375
|
switch (variant) {
|
|
327
376
|
case "Default":
|
|
328
|
-
return { font: "text3", background: "transparent" };
|
|
377
|
+
return { $font: "text3", $background: "transparent" };
|
|
329
378
|
case "Overlay":
|
|
330
|
-
return { font: "text5", background: "surface4" };
|
|
379
|
+
return { $font: "text5", $background: "surface4" };
|
|
331
380
|
}
|
|
332
381
|
}
|
|
333
382
|
function sizeToProps(size) {
|
|
334
383
|
switch (size) {
|
|
335
384
|
case "XS":
|
|
336
385
|
return {
|
|
337
|
-
width: 20,
|
|
338
|
-
height: 20
|
|
386
|
+
$width: 20,
|
|
387
|
+
$height: 20
|
|
339
388
|
};
|
|
340
389
|
case "S":
|
|
341
390
|
return {
|
|
342
|
-
width: 32,
|
|
343
|
-
height: 32
|
|
391
|
+
$width: 32,
|
|
392
|
+
$height: 32
|
|
344
393
|
};
|
|
345
394
|
case "M":
|
|
346
395
|
return {
|
|
347
|
-
width: 40,
|
|
348
|
-
height: 40
|
|
396
|
+
$width: 40,
|
|
397
|
+
$height: 40
|
|
349
398
|
};
|
|
350
399
|
}
|
|
351
400
|
}
|
|
@@ -375,9 +424,8 @@ function validateIconSize(size, icon) {
|
|
|
375
424
|
// src/components/Radio/index.tsx
|
|
376
425
|
var import_react4 = require("react");
|
|
377
426
|
var React3 = __toESM(require("react"));
|
|
378
|
-
var
|
|
427
|
+
var import_styled_components5 = __toESM(require("styled-components"));
|
|
379
428
|
var import_warning = __toESM(require("warning"));
|
|
380
|
-
var import_utils2 = require("@charcoal-ui/utils");
|
|
381
429
|
var import_jsx_runtime6 = require("react/jsx-runtime");
|
|
382
430
|
var Radio = (0, import_react4.forwardRef)(function RadioInner({ value, disabled = false, children, className }, ref) {
|
|
383
431
|
const {
|
|
@@ -418,16 +466,19 @@ var Radio = (0, import_react4.forwardRef)(function RadioInner({ value, disabled
|
|
|
418
466
|
] });
|
|
419
467
|
});
|
|
420
468
|
var Radio_default = (0, import_react4.memo)(Radio);
|
|
421
|
-
var RadioRoot =
|
|
469
|
+
var RadioRoot = import_styled_components5.default.label`
|
|
422
470
|
display: grid;
|
|
423
471
|
grid-template-columns: auto 1fr;
|
|
424
|
-
grid-gap:
|
|
472
|
+
grid-gap: 4px;
|
|
425
473
|
align-items: center;
|
|
426
474
|
cursor: pointer;
|
|
427
475
|
|
|
428
|
-
|
|
476
|
+
&:disabled,
|
|
477
|
+
&[aria-disabled]:not([aria-disabled='false']) {
|
|
478
|
+
opacity: 0.32;
|
|
479
|
+
}
|
|
429
480
|
`;
|
|
430
|
-
var RadioInput =
|
|
481
|
+
var RadioInput = import_styled_components5.default.input.attrs({ type: "radio" })`
|
|
431
482
|
/** Make prior to browser default style */
|
|
432
483
|
&[type='radio'] {
|
|
433
484
|
appearance: none;
|
|
@@ -440,46 +491,92 @@ var RadioInput = import_styled_components6.default.input.attrs({ type: "radio" }
|
|
|
440
491
|
width: 20px;
|
|
441
492
|
height: 20px;
|
|
442
493
|
cursor: pointer;
|
|
494
|
+
border-radius: 999999px;
|
|
495
|
+
background-color: var(--charcoal-surface1);
|
|
496
|
+
transition: 0.2s background-color, 0.2s box-shadow;
|
|
497
|
+
|
|
498
|
+
&:not(:disabled):not([aria-disabled]),
|
|
499
|
+
&[aria-disabled='false'] {
|
|
500
|
+
${({ invalid = false }) => invalid && import_styled_components5.css`
|
|
501
|
+
box-shadow: 0 0 0 4px rgba(255, 43, 0, 0.32);
|
|
502
|
+
`}
|
|
443
503
|
|
|
444
|
-
|
|
445
|
-
|
|
446
|
-
|
|
447
|
-
|
|
448
|
-
|
|
504
|
+
&:hover {
|
|
505
|
+
background-color: var(--charcoal-surface1-hover);
|
|
506
|
+
}
|
|
507
|
+
&:active {
|
|
508
|
+
background-color: var(--charcoal-surface1-press);
|
|
509
|
+
}
|
|
510
|
+
&:focus,
|
|
511
|
+
&:active,
|
|
512
|
+
&:focus-visible {
|
|
513
|
+
outline: none;
|
|
514
|
+
box-shadow: 0 0 0 4px rgba(0, 150, 250, 0.32);
|
|
515
|
+
}
|
|
516
|
+
}
|
|
449
517
|
|
|
450
518
|
&:not(:checked) {
|
|
451
519
|
border-width: 2px;
|
|
452
520
|
border-style: solid;
|
|
453
|
-
border-color:
|
|
521
|
+
border-color: var(--charcoal-text3);
|
|
454
522
|
}
|
|
455
523
|
|
|
456
524
|
&:checked {
|
|
457
|
-
|
|
458
|
-
|
|
525
|
+
background-color: var(--charcoal-brand);
|
|
459
526
|
&::after {
|
|
460
527
|
content: '';
|
|
461
528
|
display: block;
|
|
462
529
|
width: 8px;
|
|
463
530
|
height: 8px;
|
|
464
531
|
pointer-events: none;
|
|
532
|
+
background-color: var(--charcoal-text5);
|
|
533
|
+
border-radius: 999999px;
|
|
534
|
+
transition: 0.2s background-color, 0.2s box-shadow;
|
|
535
|
+
}
|
|
465
536
|
|
|
466
|
-
|
|
537
|
+
&:not(:disabled):not([aria-disabled]),
|
|
538
|
+
&[aria-disabled='false'] {
|
|
539
|
+
&:hover {
|
|
540
|
+
background-color: var(--charcoal-brand-hover);
|
|
541
|
+
&::after {
|
|
542
|
+
background-color: var(--charcoal-text5-hover);
|
|
543
|
+
}
|
|
544
|
+
}
|
|
545
|
+
&:active {
|
|
546
|
+
background-color: var(--charcoal-brand-press);
|
|
547
|
+
&::after {
|
|
548
|
+
background-color: var(--charcoal-text5-press);
|
|
549
|
+
}
|
|
550
|
+
}
|
|
467
551
|
}
|
|
468
552
|
}
|
|
469
|
-
|
|
470
|
-
${theme((o) => o.outline.default.focus)}
|
|
471
|
-
|
|
472
|
-
/* FIXME: o.outline.default.focus の transition に o.bg.brand の transition が打ち消されてしまう */
|
|
473
|
-
transition: all 0.2s !important;
|
|
474
553
|
}
|
|
475
554
|
`;
|
|
476
|
-
var RadioLabel =
|
|
477
|
-
|
|
555
|
+
var RadioLabel = import_styled_components5.default.div`
|
|
556
|
+
font-size: 14px;
|
|
557
|
+
line-height: 22px;
|
|
558
|
+
display: flow-root;
|
|
559
|
+
color: var(--charcoal-text2);
|
|
560
|
+
|
|
561
|
+
&::before {
|
|
562
|
+
display: block;
|
|
563
|
+
width: 0;
|
|
564
|
+
height: 0;
|
|
565
|
+
content: '';
|
|
566
|
+
margin-top: -4px;
|
|
567
|
+
}
|
|
568
|
+
&::after {
|
|
569
|
+
display: block;
|
|
570
|
+
width: 0;
|
|
571
|
+
height: 0;
|
|
572
|
+
content: '';
|
|
573
|
+
margin-bottom: -4px;
|
|
574
|
+
}
|
|
478
575
|
`;
|
|
479
|
-
var StyledRadioGroup =
|
|
576
|
+
var StyledRadioGroup = import_styled_components5.default.div`
|
|
480
577
|
display: grid;
|
|
481
578
|
grid-template-columns: 1fr;
|
|
482
|
-
grid-gap:
|
|
579
|
+
grid-gap: 8px;
|
|
483
580
|
`;
|
|
484
581
|
var RadioGroupContext = React3.createContext({
|
|
485
582
|
name: void 0,
|
|
@@ -538,9 +635,9 @@ function RadioGroup({
|
|
|
538
635
|
|
|
539
636
|
// src/components/MultiSelect/index.tsx
|
|
540
637
|
var import_react6 = require("react");
|
|
541
|
-
var
|
|
638
|
+
var import_styled_components6 = __toESM(require("styled-components"));
|
|
542
639
|
var import_warning2 = __toESM(require("warning"));
|
|
543
|
-
var
|
|
640
|
+
var import_utils2 = require("@charcoal-ui/utils");
|
|
544
641
|
|
|
545
642
|
// src/components/MultiSelect/context.ts
|
|
546
643
|
var import_react5 = require("react");
|
|
@@ -624,44 +721,96 @@ var MultiSelect = (0, import_react6.forwardRef)(
|
|
|
624
721
|
}
|
|
625
722
|
);
|
|
626
723
|
var MultiSelect_default = (0, import_react6.memo)(MultiSelect);
|
|
627
|
-
var MultiSelectRoot =
|
|
724
|
+
var MultiSelectRoot = import_styled_components6.default.label`
|
|
628
725
|
display: grid;
|
|
629
726
|
grid-template-columns: auto 1fr;
|
|
630
727
|
align-items: center;
|
|
631
728
|
position: relative;
|
|
632
729
|
cursor: pointer;
|
|
633
|
-
${
|
|
730
|
+
gap: ${({ theme }) => (0, import_utils2.px)(theme.spacing[4])};
|
|
731
|
+
&:disabled,
|
|
732
|
+
&[aria-disabled]:not([aria-disabled='false']) {
|
|
733
|
+
opacity: 0.32;
|
|
634
734
|
cursor: default;
|
|
635
735
|
}
|
|
636
|
-
gap: ${({ theme: theme3 }) => (0, import_utils3.px)(theme3.spacing[4])};
|
|
637
|
-
${theme((o) => o.disabled)}
|
|
638
736
|
`;
|
|
639
|
-
var MultiSelectLabel =
|
|
737
|
+
var MultiSelectLabel = import_styled_components6.default.div`
|
|
640
738
|
display: flex;
|
|
641
739
|
align-items: center;
|
|
642
|
-
|
|
740
|
+
font-size: 14px;
|
|
741
|
+
line-height: 22px;
|
|
742
|
+
display: flow-root;
|
|
743
|
+
color: var(--charcoal-text2);
|
|
744
|
+
|
|
745
|
+
&::before {
|
|
746
|
+
display: block;
|
|
747
|
+
width: 0;
|
|
748
|
+
height: 0;
|
|
749
|
+
content: '';
|
|
750
|
+
margin-top: -4px;
|
|
751
|
+
}
|
|
752
|
+
&::after {
|
|
753
|
+
display: block;
|
|
754
|
+
width: 0;
|
|
755
|
+
height: 0;
|
|
756
|
+
content: '';
|
|
757
|
+
margin-bottom: -4px;
|
|
758
|
+
}
|
|
643
759
|
`;
|
|
644
|
-
var MultiSelectInput =
|
|
760
|
+
var MultiSelectInput = import_styled_components6.default.input.attrs({ type: "checkbox" })`
|
|
645
761
|
&[type='checkbox'] {
|
|
646
762
|
appearance: none;
|
|
647
763
|
display: block;
|
|
648
764
|
width: 20px;
|
|
649
765
|
height: 20px;
|
|
650
766
|
margin: 0;
|
|
767
|
+
background-color: var(--charcoal-text3);
|
|
768
|
+
border-radius: 999999px;
|
|
769
|
+
transition: 0.2s background-color, 0.2s box-shadow;
|
|
651
770
|
|
|
652
771
|
&:checked {
|
|
653
|
-
|
|
772
|
+
background-color: var(--charcoal-brand);
|
|
773
|
+
&:hover {
|
|
774
|
+
&:not(:disabled):not([aria-disabled]),
|
|
775
|
+
&[aria-disabled='false'] {
|
|
776
|
+
background-color: var(--charcoal-brand-hover);
|
|
777
|
+
}
|
|
778
|
+
}
|
|
779
|
+
|
|
780
|
+
&:active {
|
|
781
|
+
&:not(:disabled):not([aria-disabled]),
|
|
782
|
+
&[aria-disabled='false'] {
|
|
783
|
+
background-color: var(--charcoal-brand-press);
|
|
784
|
+
}
|
|
785
|
+
}
|
|
786
|
+
}
|
|
787
|
+
|
|
788
|
+
&:hover {
|
|
789
|
+
&:not(:disabled):not([aria-disabled]),
|
|
790
|
+
&[aria-disabled='false'] {
|
|
791
|
+
background-color: var(--charcoal-text3-hover);
|
|
792
|
+
}
|
|
654
793
|
}
|
|
655
794
|
|
|
656
|
-
|
|
657
|
-
|
|
658
|
-
|
|
659
|
-
|
|
660
|
-
|
|
661
|
-
|
|
795
|
+
&:active {
|
|
796
|
+
&:not(:disabled):not([aria-disabled]),
|
|
797
|
+
&[aria-disabled='false'] {
|
|
798
|
+
background-color: var(--charcoal-text3-press);
|
|
799
|
+
}
|
|
800
|
+
}
|
|
801
|
+
|
|
802
|
+
${({ invalid, overlay }) => invalid && !overlay && import_styled_components6.css`
|
|
803
|
+
&:not(:disabled):not([aria-disabled]),
|
|
804
|
+
&[aria-disabled='false'] {
|
|
805
|
+
box-shadow: 0 0 0 4px rgba(255, 43, 0, 0.32);
|
|
806
|
+
}
|
|
807
|
+
`}
|
|
808
|
+
${({ overlay }) => overlay && import_styled_components6.css`
|
|
809
|
+
background-color: var(--charcoal-surface4);
|
|
810
|
+
`}
|
|
662
811
|
}
|
|
663
812
|
`;
|
|
664
|
-
var MultiSelectInputOverlay =
|
|
813
|
+
var MultiSelectInputOverlay = import_styled_components6.default.div`
|
|
665
814
|
position: absolute;
|
|
666
815
|
top: -2px;
|
|
667
816
|
left: -2px;
|
|
@@ -669,17 +818,20 @@ var MultiSelectInputOverlay = import_styled_components7.default.div`
|
|
|
669
818
|
display: flex;
|
|
670
819
|
align-items: center;
|
|
671
820
|
justify-content: center;
|
|
821
|
+
width: 24px;
|
|
822
|
+
height: 24px;
|
|
823
|
+
border-radius: 999999px;
|
|
824
|
+
color: var(--charcoal-text5);
|
|
825
|
+
transition: 0.2s box-shadow;
|
|
826
|
+
${({ invalid, overlay }) => invalid && overlay && import_styled_components6.css`
|
|
827
|
+
&:not(:disabled):not([aria-disabled]),
|
|
828
|
+
&[aria-disabled='false'] {
|
|
829
|
+
box-shadow: 0 0 0 4px rgba(255, 43, 0, 0.32);
|
|
830
|
+
}
|
|
831
|
+
`}
|
|
672
832
|
|
|
673
|
-
${({
|
|
674
|
-
|
|
675
|
-
o.height.px(24),
|
|
676
|
-
o.borderRadius("oval"),
|
|
677
|
-
o.font.text5,
|
|
678
|
-
invalid && overlay && o.outline.assertive
|
|
679
|
-
])}
|
|
680
|
-
|
|
681
|
-
${({ overlay }) => overlay && import_styled_components7.css`
|
|
682
|
-
border-color: ${({ theme: theme3 }) => theme3.color.text5};
|
|
833
|
+
${({ overlay }) => overlay && import_styled_components6.css`
|
|
834
|
+
border-color: var(--charcoal-text5);
|
|
683
835
|
border-width: 2px;
|
|
684
836
|
border-style: solid;
|
|
685
837
|
`}
|
|
@@ -730,9 +882,8 @@ function MultiSelectGroup({
|
|
|
730
882
|
var import_switch = require("@react-aria/switch");
|
|
731
883
|
var import_react7 = require("react");
|
|
732
884
|
var import_react_stately = require("react-stately");
|
|
733
|
-
var
|
|
734
|
-
var
|
|
735
|
-
var import_utils5 = require("@react-aria/utils");
|
|
885
|
+
var import_styled_components7 = __toESM(require("styled-components"));
|
|
886
|
+
var import_utils3 = require("@react-aria/utils");
|
|
736
887
|
var import_jsx_runtime8 = require("react/jsx-runtime");
|
|
737
888
|
var SwitchCheckbox = (0, import_react7.forwardRef)(
|
|
738
889
|
function SwitchCheckboxInner(props, external) {
|
|
@@ -747,7 +898,7 @@ var SwitchCheckbox = (0, import_react7.forwardRef)(
|
|
|
747
898
|
[props]
|
|
748
899
|
);
|
|
749
900
|
const state = (0, import_react_stately.useToggleState)(ariaSwitchProps);
|
|
750
|
-
const ref = (0,
|
|
901
|
+
const ref = (0, import_utils3.useObjectRef)(external);
|
|
751
902
|
const {
|
|
752
903
|
inputProps: { className: _className, type: _type, ...rest }
|
|
753
904
|
} = (0, import_switch.useSwitch)(ariaSwitchProps, state, ref);
|
|
@@ -758,33 +909,30 @@ var SwitchCheckbox = (0, import_react7.forwardRef)(
|
|
|
758
909
|
}
|
|
759
910
|
);
|
|
760
911
|
var Switch_default = (0, import_react7.memo)(SwitchCheckbox);
|
|
761
|
-
var Label =
|
|
912
|
+
var Label = import_styled_components7.default.label`
|
|
762
913
|
display: inline-grid;
|
|
763
914
|
grid-template-columns: auto 1fr;
|
|
764
915
|
align-items: center;
|
|
765
916
|
cursor: pointer;
|
|
766
917
|
outline: 0;
|
|
767
918
|
|
|
768
|
-
|
|
919
|
+
&:disabled,
|
|
920
|
+
&[aria-disabled]:not([aria-disabled='false']) {
|
|
921
|
+
opacity: 0.32;
|
|
922
|
+
cursor: default;
|
|
923
|
+
}
|
|
769
924
|
|
|
770
925
|
:active > input {
|
|
771
926
|
box-shadow: 0 0 0 4px rgba(0, 150, 250, 0.32);
|
|
772
927
|
}
|
|
773
|
-
|
|
774
|
-
${import_utils4.disabledSelector} {
|
|
775
|
-
cursor: default;
|
|
776
|
-
}
|
|
777
928
|
`;
|
|
778
|
-
var LabelInner =
|
|
779
|
-
|
|
780
|
-
|
|
781
|
-
|
|
782
|
-
|
|
783
|
-
])}
|
|
929
|
+
var LabelInner = import_styled_components7.default.div`
|
|
930
|
+
font-size: 14px;
|
|
931
|
+
line-height: 22px;
|
|
932
|
+
color: var(--charcoal-text2);
|
|
933
|
+
margin-left: 4px;
|
|
784
934
|
`;
|
|
785
|
-
var SwitchInput =
|
|
786
|
-
type: "checkbox"
|
|
787
|
-
})`
|
|
935
|
+
var SwitchInput = import_styled_components7.default.input.attrs({ type: "checkbox" })`
|
|
788
936
|
appearance: none;
|
|
789
937
|
display: inline-flex;
|
|
790
938
|
position: relative;
|
|
@@ -849,14 +997,13 @@ var SwitchInput = import_styled_components8.default.input.attrs({
|
|
|
849
997
|
// src/components/TextField/index.tsx
|
|
850
998
|
var import_textfield = require("@react-aria/textfield");
|
|
851
999
|
var import_visually_hidden = require("@react-aria/visually-hidden");
|
|
852
|
-
var
|
|
1000
|
+
var import_react9 = require("react");
|
|
853
1001
|
var React5 = __toESM(require("react"));
|
|
854
|
-
var
|
|
1002
|
+
var import_styled_components9 = __toESM(require("styled-components"));
|
|
855
1003
|
|
|
856
1004
|
// src/components/FieldLabel/index.tsx
|
|
857
1005
|
var React4 = __toESM(require("react"));
|
|
858
|
-
var
|
|
859
|
-
var import_styled8 = require("@charcoal-ui/styled");
|
|
1006
|
+
var import_styled_components8 = __toESM(require("styled-components"));
|
|
860
1007
|
var import_jsx_runtime9 = require("react/jsx-runtime");
|
|
861
1008
|
var FieldLabel = React4.forwardRef(
|
|
862
1009
|
function FieldLabel2({
|
|
@@ -876,33 +1023,119 @@ var FieldLabel = React4.forwardRef(
|
|
|
876
1023
|
}
|
|
877
1024
|
);
|
|
878
1025
|
var FieldLabel_default = FieldLabel;
|
|
879
|
-
var
|
|
880
|
-
|
|
881
|
-
|
|
1026
|
+
var Label2 = import_styled_components8.default.label`
|
|
1027
|
+
font-size: 14px;
|
|
1028
|
+
line-height: 22px;
|
|
1029
|
+
font-weight: bold;
|
|
1030
|
+
display: flow-root;
|
|
1031
|
+
color: var(--charcoal-text1);
|
|
1032
|
+
|
|
1033
|
+
&::before {
|
|
1034
|
+
display: block;
|
|
1035
|
+
width: 0;
|
|
1036
|
+
height: 0;
|
|
1037
|
+
content: '';
|
|
1038
|
+
margin-top: -4px;
|
|
1039
|
+
}
|
|
1040
|
+
&::after {
|
|
1041
|
+
display: block;
|
|
1042
|
+
width: 0;
|
|
1043
|
+
height: 0;
|
|
1044
|
+
content: '';
|
|
1045
|
+
margin-bottom: -4px;
|
|
1046
|
+
}
|
|
882
1047
|
`;
|
|
883
|
-
var RequiredText =
|
|
884
|
-
|
|
1048
|
+
var RequiredText = import_styled_components8.default.span`
|
|
1049
|
+
font-size: 14px;
|
|
1050
|
+
line-height: 22px;
|
|
1051
|
+
display: flow-root;
|
|
1052
|
+
color: var(--charcoal-text2);
|
|
1053
|
+
|
|
1054
|
+
&::before {
|
|
1055
|
+
display: block;
|
|
1056
|
+
width: 0;
|
|
1057
|
+
height: 0;
|
|
1058
|
+
content: '';
|
|
1059
|
+
margin-top: -4px;
|
|
1060
|
+
}
|
|
1061
|
+
&::after {
|
|
1062
|
+
display: block;
|
|
1063
|
+
width: 0;
|
|
1064
|
+
height: 0;
|
|
1065
|
+
content: '';
|
|
1066
|
+
margin-bottom: -4px;
|
|
1067
|
+
}
|
|
885
1068
|
`;
|
|
886
|
-
var SubLabelClickable =
|
|
887
|
-
|
|
888
|
-
|
|
889
|
-
|
|
890
|
-
|
|
891
|
-
|
|
1069
|
+
var SubLabelClickable = import_styled_components8.default.div`
|
|
1070
|
+
font-size: 14px;
|
|
1071
|
+
line-height: 22px;
|
|
1072
|
+
display: flow-root;
|
|
1073
|
+
color: var(--charcoal-text3);
|
|
1074
|
+
transition: 0.2s color, 0.2s box-shadow;
|
|
1075
|
+
|
|
1076
|
+
&::before {
|
|
1077
|
+
display: block;
|
|
1078
|
+
width: 0;
|
|
1079
|
+
height: 0;
|
|
1080
|
+
content: '';
|
|
1081
|
+
margin-top: -4px;
|
|
1082
|
+
}
|
|
1083
|
+
&::after {
|
|
1084
|
+
display: block;
|
|
1085
|
+
width: 0;
|
|
1086
|
+
height: 0;
|
|
1087
|
+
content: '';
|
|
1088
|
+
margin-bottom: -4px;
|
|
1089
|
+
}
|
|
1090
|
+
|
|
1091
|
+
&:not(:disabled):not([aria-disabled]),
|
|
1092
|
+
&[aria-disabled='false'] {
|
|
1093
|
+
&:hover {
|
|
1094
|
+
color: var(--charcoal-text3-hover);
|
|
1095
|
+
}
|
|
1096
|
+
&:active {
|
|
1097
|
+
color: var(--charcoal-text3-press);
|
|
1098
|
+
}
|
|
1099
|
+
&:active,
|
|
1100
|
+
&:focus,
|
|
1101
|
+
&:focus-visible {
|
|
1102
|
+
outline: none;
|
|
1103
|
+
box-shadow: 0 0 0 4px rgba(0, 150, 250, 0.32);
|
|
1104
|
+
}
|
|
1105
|
+
}
|
|
892
1106
|
`;
|
|
893
|
-
var FieldLabelWrapper =
|
|
1107
|
+
var FieldLabelWrapper = import_styled_components8.default.div`
|
|
894
1108
|
display: inline-flex;
|
|
895
1109
|
align-items: center;
|
|
896
1110
|
|
|
897
1111
|
> ${RequiredText} {
|
|
898
|
-
|
|
1112
|
+
margin-left: 4px;
|
|
899
1113
|
}
|
|
900
1114
|
|
|
901
1115
|
> ${SubLabelClickable} {
|
|
902
|
-
|
|
1116
|
+
margin-left: auto;
|
|
903
1117
|
}
|
|
904
1118
|
`;
|
|
905
1119
|
|
|
1120
|
+
// src/components/TextField/useFocusWithClick.tsx
|
|
1121
|
+
var import_react8 = require("react");
|
|
1122
|
+
function useFocusWithClick(containerRef, inputRef) {
|
|
1123
|
+
(0, import_react8.useEffect)(() => {
|
|
1124
|
+
const el = containerRef.current;
|
|
1125
|
+
if (el) {
|
|
1126
|
+
const handleDown = (e) => {
|
|
1127
|
+
if (e.target !== inputRef.current) {
|
|
1128
|
+
inputRef.current?.focus();
|
|
1129
|
+
}
|
|
1130
|
+
};
|
|
1131
|
+
el.addEventListener("click", handleDown);
|
|
1132
|
+
return () => {
|
|
1133
|
+
el.removeEventListener("click", handleDown);
|
|
1134
|
+
};
|
|
1135
|
+
}
|
|
1136
|
+
});
|
|
1137
|
+
}
|
|
1138
|
+
|
|
906
1139
|
// src/components/TextField/index.tsx
|
|
907
1140
|
var import_jsx_runtime10 = require("react/jsx-runtime");
|
|
908
1141
|
var TextField = React5.forwardRef(
|
|
@@ -923,16 +1156,12 @@ var TextField = React5.forwardRef(
|
|
|
923
1156
|
suffix = null
|
|
924
1157
|
} = props;
|
|
925
1158
|
const { visuallyHiddenProps } = (0, import_visually_hidden.useVisuallyHidden)();
|
|
926
|
-
const ariaRef = (0,
|
|
927
|
-
const
|
|
928
|
-
const suffixRef = (0, import_react8.useRef)(null);
|
|
929
|
-
const [count, setCount] = (0, import_react8.useState)(
|
|
1159
|
+
const ariaRef = (0, import_react9.useRef)(null);
|
|
1160
|
+
const [count, setCount] = (0, import_react9.useState)(
|
|
930
1161
|
countCodePointsInString(props.value ?? "")
|
|
931
1162
|
);
|
|
932
|
-
const [prefixWidth, setPrefixWidth] = (0, import_react8.useState)(0);
|
|
933
|
-
const [suffixWidth, setSuffixWidth] = (0, import_react8.useState)(0);
|
|
934
1163
|
const nonControlled = props.value === void 0;
|
|
935
|
-
const handleChange = (0,
|
|
1164
|
+
const handleChange = (0, import_react9.useCallback)(
|
|
936
1165
|
(value) => {
|
|
937
1166
|
const count2 = countCodePointsInString(value);
|
|
938
1167
|
if (maxLength !== void 0 && count2 > maxLength) {
|
|
@@ -945,7 +1174,7 @@ var TextField = React5.forwardRef(
|
|
|
945
1174
|
},
|
|
946
1175
|
[maxLength, nonControlled, onChange]
|
|
947
1176
|
);
|
|
948
|
-
(0,
|
|
1177
|
+
(0, import_react9.useEffect)(() => {
|
|
949
1178
|
setCount(countCodePointsInString(props.value ?? ""));
|
|
950
1179
|
}, [props.value]);
|
|
951
1180
|
const { inputProps, labelProps, descriptionProps, errorMessageProps } = (0, import_textfield.useTextField)(
|
|
@@ -961,24 +1190,8 @@ var TextField = React5.forwardRef(
|
|
|
961
1190
|
},
|
|
962
1191
|
ariaRef
|
|
963
1192
|
);
|
|
964
|
-
(0,
|
|
965
|
-
|
|
966
|
-
setPrefixWidth(entries[0].contentRect.width);
|
|
967
|
-
});
|
|
968
|
-
const suffixObserver = new ResizeObserver((entries) => {
|
|
969
|
-
setSuffixWidth(entries[0].contentRect.width);
|
|
970
|
-
});
|
|
971
|
-
if (prefixRef.current !== null) {
|
|
972
|
-
prefixObserver.observe(prefixRef.current);
|
|
973
|
-
}
|
|
974
|
-
if (suffixRef.current !== null) {
|
|
975
|
-
suffixObserver.observe(suffixRef.current);
|
|
976
|
-
}
|
|
977
|
-
return () => {
|
|
978
|
-
suffixObserver.disconnect();
|
|
979
|
-
prefixObserver.disconnect();
|
|
980
|
-
};
|
|
981
|
-
}, []);
|
|
1193
|
+
const containerRef = (0, import_react9.useRef)(null);
|
|
1194
|
+
useFocusWithClick(containerRef, ariaRef);
|
|
982
1195
|
return /* @__PURE__ */ (0, import_jsx_runtime10.jsxs)(TextFieldRoot, { className, isDisabled: disabled, children: [
|
|
983
1196
|
/* @__PURE__ */ (0, import_jsx_runtime10.jsx)(
|
|
984
1197
|
TextFieldLabel,
|
|
@@ -991,23 +1204,31 @@ var TextField = React5.forwardRef(
|
|
|
991
1204
|
...!showLabel ? visuallyHiddenProps : {}
|
|
992
1205
|
}
|
|
993
1206
|
),
|
|
994
|
-
/* @__PURE__ */ (0, import_jsx_runtime10.jsxs)(
|
|
995
|
-
|
|
996
|
-
|
|
997
|
-
|
|
998
|
-
|
|
999
|
-
|
|
1000
|
-
|
|
1001
|
-
|
|
1002
|
-
|
|
1003
|
-
|
|
1004
|
-
|
|
1005
|
-
|
|
1006
|
-
|
|
1007
|
-
|
|
1008
|
-
|
|
1009
|
-
|
|
1010
|
-
|
|
1207
|
+
/* @__PURE__ */ (0, import_jsx_runtime10.jsxs)(
|
|
1208
|
+
StyledInputContainer,
|
|
1209
|
+
{
|
|
1210
|
+
ref: containerRef,
|
|
1211
|
+
invalid,
|
|
1212
|
+
"aria-disabled": disabled === true ? true : void 0,
|
|
1213
|
+
hasPrefix: prefix != null,
|
|
1214
|
+
hasSuffix: suffix != null || showCount,
|
|
1215
|
+
children: [
|
|
1216
|
+
prefix && /* @__PURE__ */ (0, import_jsx_runtime10.jsx)(PrefixContainer, { children: prefix }),
|
|
1217
|
+
/* @__PURE__ */ (0, import_jsx_runtime10.jsx)(
|
|
1218
|
+
StyledInput,
|
|
1219
|
+
{
|
|
1220
|
+
ref: mergeRefs(forwardRef18, ariaRef),
|
|
1221
|
+
invalid,
|
|
1222
|
+
...inputProps
|
|
1223
|
+
}
|
|
1224
|
+
),
|
|
1225
|
+
(suffix || showCount) && /* @__PURE__ */ (0, import_jsx_runtime10.jsxs)(SuffixContainer, { children: [
|
|
1226
|
+
suffix,
|
|
1227
|
+
showCount && /* @__PURE__ */ (0, import_jsx_runtime10.jsx)(SingleLineCounter, { children: maxLength !== void 0 ? `${count}/${maxLength}` : count })
|
|
1228
|
+
] })
|
|
1229
|
+
]
|
|
1230
|
+
}
|
|
1231
|
+
),
|
|
1011
1232
|
assistiveText != null && assistiveText.length !== 0 && /* @__PURE__ */ (0, import_jsx_runtime10.jsx)(
|
|
1012
1233
|
AssistiveText,
|
|
1013
1234
|
{
|
|
@@ -1020,42 +1241,60 @@ var TextField = React5.forwardRef(
|
|
|
1020
1241
|
}
|
|
1021
1242
|
);
|
|
1022
1243
|
var TextField_default = TextField;
|
|
1023
|
-
var TextFieldRoot =
|
|
1244
|
+
var TextFieldRoot = import_styled_components9.default.div`
|
|
1024
1245
|
display: flex;
|
|
1025
1246
|
flex-direction: column;
|
|
1026
1247
|
|
|
1027
1248
|
${(p) => p.isDisabled && { opacity: p.theme.elementEffect.disabled.opacity }}
|
|
1028
1249
|
`;
|
|
1029
|
-
var TextFieldLabel = (0,
|
|
1030
|
-
|
|
1250
|
+
var TextFieldLabel = (0, import_styled_components9.default)(FieldLabel_default)`
|
|
1251
|
+
margin-bottom: 8px;
|
|
1031
1252
|
`;
|
|
1032
|
-
var StyledInputContainer =
|
|
1033
|
-
height: 40px;
|
|
1253
|
+
var StyledInputContainer = import_styled_components9.default.div`
|
|
1034
1254
|
display: grid;
|
|
1035
|
-
|
|
1255
|
+
grid-template-columns: ${(p) => [p.hasPrefix && "auto", "1fr", p.hasSuffix && "auto"].filter(Boolean).join(" ")};
|
|
1256
|
+
height: 40px;
|
|
1257
|
+
transition: 0.2s background-color, 0.2s box-shadow;
|
|
1258
|
+
color: var(--charcoal-text2);
|
|
1259
|
+
background-color: var(--charcoal-surface3);
|
|
1260
|
+
border-radius: 4px;
|
|
1261
|
+
gap: 4px;
|
|
1262
|
+
padding: 0 8px;
|
|
1263
|
+
line-height: 22px;
|
|
1264
|
+
font-size: 14px;
|
|
1265
|
+
|
|
1266
|
+
:not(:disabled):not([aria-disabled]):hover,
|
|
1267
|
+
[aria-disabled='false']:hover {
|
|
1268
|
+
background-color: var(--charcoal-surface3-hover);
|
|
1269
|
+
}
|
|
1270
|
+
|
|
1271
|
+
:not(:disabled):not([aria-disabled]):active,
|
|
1272
|
+
[aria-disabled='false']:active {
|
|
1273
|
+
outline: none;
|
|
1274
|
+
box-shadow: 0 0 0 4px
|
|
1275
|
+
${(p) => p.invalid ? `rgba(255,43,0,0.32)` : `rgba(0, 150, 250, 0.32);`};
|
|
1276
|
+
}
|
|
1277
|
+
|
|
1278
|
+
:focus-within {
|
|
1279
|
+
outline: none;
|
|
1280
|
+
box-shadow: 0 0 0 4px
|
|
1281
|
+
${(p) => p.invalid ? `rgba(255,43,0,0.32)` : `rgba(0, 150, 250, 0.32);`};
|
|
1282
|
+
}
|
|
1283
|
+
|
|
1284
|
+
${(p) => p.invalid && import_styled_components9.css`
|
|
1285
|
+
box-shadow: 0 0 0 4px rgba(255, 43, 0, 0.32);
|
|
1286
|
+
`}
|
|
1036
1287
|
`;
|
|
1037
|
-
var PrefixContainer =
|
|
1038
|
-
|
|
1039
|
-
|
|
1040
|
-
left: 8px;
|
|
1041
|
-
transform: translateY(-50%);
|
|
1042
|
-
z-index: 1;
|
|
1288
|
+
var PrefixContainer = import_styled_components9.default.div`
|
|
1289
|
+
display: flex;
|
|
1290
|
+
align-items: center;
|
|
1043
1291
|
`;
|
|
1044
|
-
var SuffixContainer =
|
|
1045
|
-
position: absolute;
|
|
1046
|
-
top: 50%;
|
|
1047
|
-
right: 8px;
|
|
1048
|
-
transform: translateY(-50%);
|
|
1049
|
-
|
|
1292
|
+
var SuffixContainer = import_styled_components9.default.span`
|
|
1050
1293
|
display: flex;
|
|
1294
|
+
align-items: center;
|
|
1051
1295
|
gap: 8px;
|
|
1052
1296
|
`;
|
|
1053
|
-
var
|
|
1054
|
-
user-select: none;
|
|
1055
|
-
|
|
1056
|
-
${theme((o) => [o.typography(14).preserveHalfLeading, o.font.text2])}
|
|
1057
|
-
`;
|
|
1058
|
-
var StyledInput = import_styled_components10.default.input`
|
|
1297
|
+
var StyledInput = import_styled_components9.default.input`
|
|
1059
1298
|
border: none;
|
|
1060
1299
|
box-sizing: border-box;
|
|
1061
1300
|
outline: none;
|
|
@@ -1068,43 +1307,39 @@ var StyledInput = import_styled_components10.default.input`
|
|
|
1068
1307
|
height: calc(100% / 0.875);
|
|
1069
1308
|
font-size: calc(14px / 0.875);
|
|
1070
1309
|
line-height: calc(22px / 0.875);
|
|
1071
|
-
padding-left:
|
|
1072
|
-
padding-right:
|
|
1310
|
+
padding-left: 0;
|
|
1311
|
+
padding-right: 0;
|
|
1073
1312
|
border-radius: calc(4px / 0.875);
|
|
1074
1313
|
|
|
1075
1314
|
/* Display box-shadow for iOS Safari */
|
|
1076
1315
|
appearance: none;
|
|
1316
|
+
background: transparent;
|
|
1077
1317
|
|
|
1078
|
-
|
|
1079
|
-
o.bg.surface3.hover,
|
|
1080
|
-
o.outline.default.focus,
|
|
1081
|
-
p.invalid && o.outline.assertive,
|
|
1082
|
-
o.font.text2
|
|
1083
|
-
])}
|
|
1084
|
-
|
|
1318
|
+
color: var(--charcoal-text2);
|
|
1085
1319
|
&::placeholder {
|
|
1086
|
-
|
|
1320
|
+
color: var(--charcoal-text3);
|
|
1087
1321
|
}
|
|
1088
1322
|
`;
|
|
1089
|
-
var SingleLineCounter =
|
|
1090
|
-
|
|
1323
|
+
var SingleLineCounter = import_styled_components9.default.span`
|
|
1324
|
+
line-height: 22px;
|
|
1325
|
+
font-size: 14px;
|
|
1326
|
+
color: var(--charcoal-text3);
|
|
1091
1327
|
`;
|
|
1092
|
-
var AssistiveText =
|
|
1093
|
-
|
|
1094
|
-
|
|
1095
|
-
|
|
1096
|
-
|
|
1097
|
-
|
|
1098
|
-
])}
|
|
1328
|
+
var AssistiveText = import_styled_components9.default.p`
|
|
1329
|
+
font-size: 14px;
|
|
1330
|
+
line-height: 22px;
|
|
1331
|
+
margin-top: 4px;
|
|
1332
|
+
margin-bottom: -4px;
|
|
1333
|
+
color: ${(p) => `var(--charcoal-${p.invalid ? `assertive` : `text2`})`};
|
|
1099
1334
|
`;
|
|
1100
1335
|
|
|
1101
1336
|
// src/components/TextArea/index.tsx
|
|
1102
1337
|
var import_textfield2 = require("@react-aria/textfield");
|
|
1103
1338
|
var import_visually_hidden2 = require("@react-aria/visually-hidden");
|
|
1104
|
-
var
|
|
1105
|
-
var
|
|
1339
|
+
var import_react10 = require("react");
|
|
1340
|
+
var import_styled_components10 = __toESM(require("styled-components"));
|
|
1106
1341
|
var import_jsx_runtime11 = require("react/jsx-runtime");
|
|
1107
|
-
var TextArea = (0,
|
|
1342
|
+
var TextArea = (0, import_react10.forwardRef)(
|
|
1108
1343
|
function TextAreaInner({ onChange, ...props }, forwardRef18) {
|
|
1109
1344
|
const {
|
|
1110
1345
|
className,
|
|
@@ -1122,13 +1357,13 @@ var TextArea = (0, import_react9.forwardRef)(
|
|
|
1122
1357
|
rows: initialRows = 4
|
|
1123
1358
|
} = props;
|
|
1124
1359
|
const { visuallyHiddenProps } = (0, import_visually_hidden2.useVisuallyHidden)();
|
|
1125
|
-
const textareaRef = (0,
|
|
1126
|
-
const ariaRef = (0,
|
|
1127
|
-
const [count, setCount] = (0,
|
|
1360
|
+
const textareaRef = (0, import_react10.useRef)(null);
|
|
1361
|
+
const ariaRef = (0, import_react10.useRef)(null);
|
|
1362
|
+
const [count, setCount] = (0, import_react10.useState)(
|
|
1128
1363
|
countCodePointsInString(props.value ?? "")
|
|
1129
1364
|
);
|
|
1130
|
-
const [rows, setRows] = (0,
|
|
1131
|
-
const syncHeight = (0,
|
|
1365
|
+
const [rows, setRows] = (0, import_react10.useState)(initialRows);
|
|
1366
|
+
const syncHeight = (0, import_react10.useCallback)(
|
|
1132
1367
|
(textarea) => {
|
|
1133
1368
|
const rows2 = (`${textarea.value}
|
|
1134
1369
|
`.match(/\n/gu)?.length ?? 0) || 1;
|
|
@@ -1137,7 +1372,7 @@ var TextArea = (0, import_react9.forwardRef)(
|
|
|
1137
1372
|
[initialRows]
|
|
1138
1373
|
);
|
|
1139
1374
|
const nonControlled = props.value === void 0;
|
|
1140
|
-
const handleChange = (0,
|
|
1375
|
+
const handleChange = (0, import_react10.useCallback)(
|
|
1141
1376
|
(value) => {
|
|
1142
1377
|
const count2 = countCodePointsInString(value);
|
|
1143
1378
|
if (maxLength !== void 0 && count2 > maxLength) {
|
|
@@ -1153,7 +1388,7 @@ var TextArea = (0, import_react9.forwardRef)(
|
|
|
1153
1388
|
},
|
|
1154
1389
|
[autoHeight, maxLength, nonControlled, onChange, syncHeight]
|
|
1155
1390
|
);
|
|
1156
|
-
(0,
|
|
1391
|
+
(0, import_react10.useEffect)(() => {
|
|
1157
1392
|
setCount(countCodePointsInString(props.value ?? ""));
|
|
1158
1393
|
}, [props.value]);
|
|
1159
1394
|
const { inputProps, labelProps, descriptionProps, errorMessageProps } = (0, import_textfield2.useTextField)(
|
|
@@ -1169,14 +1404,16 @@ var TextArea = (0, import_react9.forwardRef)(
|
|
|
1169
1404
|
},
|
|
1170
1405
|
ariaRef
|
|
1171
1406
|
);
|
|
1172
|
-
(0,
|
|
1407
|
+
(0, import_react10.useEffect)(() => {
|
|
1173
1408
|
if (autoHeight && textareaRef.current !== null) {
|
|
1174
1409
|
syncHeight(textareaRef.current);
|
|
1175
1410
|
}
|
|
1176
1411
|
}, [autoHeight, syncHeight]);
|
|
1412
|
+
const containerRef = (0, import_react10.useRef)(null);
|
|
1413
|
+
useFocusWithClick(containerRef, ariaRef);
|
|
1177
1414
|
return /* @__PURE__ */ (0, import_jsx_runtime11.jsxs)(TextFieldRoot2, { className, isDisabled: disabled, children: [
|
|
1178
1415
|
/* @__PURE__ */ (0, import_jsx_runtime11.jsx)(
|
|
1179
|
-
|
|
1416
|
+
TextFieldLabel,
|
|
1180
1417
|
{
|
|
1181
1418
|
label,
|
|
1182
1419
|
requiredText,
|
|
@@ -1189,8 +1426,10 @@ var TextArea = (0, import_react9.forwardRef)(
|
|
|
1189
1426
|
/* @__PURE__ */ (0, import_jsx_runtime11.jsxs)(
|
|
1190
1427
|
StyledTextareaContainer,
|
|
1191
1428
|
{
|
|
1429
|
+
ref: containerRef,
|
|
1192
1430
|
invalid,
|
|
1193
1431
|
rows: showCount ? rows + 1 : rows,
|
|
1432
|
+
"aria-disabled": disabled === true ? "true" : void 0,
|
|
1194
1433
|
children: [
|
|
1195
1434
|
/* @__PURE__ */ (0, import_jsx_runtime11.jsx)(
|
|
1196
1435
|
StyledTextarea,
|
|
@@ -1206,7 +1445,7 @@ var TextArea = (0, import_react9.forwardRef)(
|
|
|
1206
1445
|
}
|
|
1207
1446
|
),
|
|
1208
1447
|
assistiveText != null && assistiveText.length !== 0 && /* @__PURE__ */ (0, import_jsx_runtime11.jsx)(
|
|
1209
|
-
|
|
1448
|
+
AssistiveText,
|
|
1210
1449
|
{
|
|
1211
1450
|
invalid,
|
|
1212
1451
|
...invalid ? errorMessageProps : descriptionProps,
|
|
@@ -1217,42 +1456,46 @@ var TextArea = (0, import_react9.forwardRef)(
|
|
|
1217
1456
|
}
|
|
1218
1457
|
);
|
|
1219
1458
|
var TextArea_default = TextArea;
|
|
1220
|
-
var TextFieldRoot2 =
|
|
1459
|
+
var TextFieldRoot2 = import_styled_components10.default.div`
|
|
1221
1460
|
display: flex;
|
|
1222
1461
|
flex-direction: column;
|
|
1223
1462
|
|
|
1224
1463
|
${(p) => p.isDisabled && { opacity: p.theme.elementEffect.disabled.opacity }}
|
|
1225
1464
|
`;
|
|
1226
|
-
var
|
|
1227
|
-
${theme((o) => o.margin.bottom(8))}
|
|
1228
|
-
`;
|
|
1229
|
-
var StyledTextareaContainer = import_styled_components11.default.div`
|
|
1465
|
+
var StyledTextareaContainer = import_styled_components10.default.div`
|
|
1230
1466
|
position: relative;
|
|
1231
1467
|
overflow: hidden;
|
|
1232
|
-
padding: 0 8px;
|
|
1233
|
-
|
|
1234
|
-
${(p) => theme((o) => [
|
|
1235
|
-
o.bg.surface3.hover,
|
|
1236
|
-
o.outline.default.focus,
|
|
1237
|
-
p.invalid && o.outline.assertive,
|
|
1238
|
-
o.font.text2,
|
|
1239
|
-
o.borderRadius(4)
|
|
1240
|
-
])}
|
|
1241
1468
|
|
|
1242
|
-
|
|
1243
|
-
|
|
1244
|
-
|
|
1469
|
+
color: var(--charcoal-text2);
|
|
1470
|
+
background-color: var(--charcoal-surface3);
|
|
1471
|
+
border-radius: 4px;
|
|
1472
|
+
transition: 0.2s background-color, 0.2s box-shadow;
|
|
1245
1473
|
|
|
1246
|
-
${({ rows }) =>
|
|
1474
|
+
${({ rows }) => import_styled_components10.css`
|
|
1247
1475
|
height: calc(22px * ${rows} + 18px);
|
|
1248
1476
|
`};
|
|
1477
|
+
|
|
1478
|
+
:not([aria-disabled]):hover,
|
|
1479
|
+
[aria-disabled='false']:hover {
|
|
1480
|
+
background-color: var(--charcoal-surface3-hover);
|
|
1481
|
+
}
|
|
1482
|
+
:focus-within {
|
|
1483
|
+
outline: none;
|
|
1484
|
+
box-shadow: 0 0 0 4px
|
|
1485
|
+
${(p) => p.invalid ? `rgba(255,43,0,0.32)` : `rgba(0, 150, 250, 0.32);`};
|
|
1486
|
+
}
|
|
1487
|
+
|
|
1488
|
+
${(p) => p.invalid && import_styled_components10.css`
|
|
1489
|
+
box-shadow: 0 0 0 4px rgba(255, 43, 0, 0.32);
|
|
1490
|
+
`}
|
|
1249
1491
|
`;
|
|
1250
|
-
var StyledTextarea =
|
|
1492
|
+
var StyledTextarea = import_styled_components10.default.textarea`
|
|
1251
1493
|
border: none;
|
|
1252
1494
|
outline: none;
|
|
1253
1495
|
resize: none;
|
|
1254
1496
|
font-family: inherit;
|
|
1255
1497
|
color: inherit;
|
|
1498
|
+
box-sizing: border-box;
|
|
1256
1499
|
|
|
1257
1500
|
/* Prevent zooming for iOS Safari */
|
|
1258
1501
|
transform-origin: top left;
|
|
@@ -1260,10 +1503,11 @@ var StyledTextarea = import_styled_components11.default.textarea`
|
|
|
1260
1503
|
width: calc(100% / 0.875);
|
|
1261
1504
|
font-size: calc(14px / 0.875);
|
|
1262
1505
|
line-height: calc(22px / 0.875);
|
|
1263
|
-
padding: calc(9px / 0.875)
|
|
1506
|
+
padding: calc(9px / 0.875) calc(8px / 0.875)
|
|
1507
|
+
${(p) => p.noBottomPadding ? 0 : ""};
|
|
1264
1508
|
|
|
1265
|
-
${({ rows = 1 }) =>
|
|
1266
|
-
height: calc(22px / 0.875 * ${rows});
|
|
1509
|
+
${({ rows = 1, noBottomPadding }) => import_styled_components10.css`
|
|
1510
|
+
height: calc(22px / 0.875 * ${rows} + ${noBottomPadding ? 9 : 20}px);
|
|
1267
1511
|
`};
|
|
1268
1512
|
|
|
1269
1513
|
/* Display box-shadow for iOS Safari */
|
|
@@ -1272,31 +1516,17 @@ var StyledTextarea = import_styled_components11.default.textarea`
|
|
|
1272
1516
|
background: none;
|
|
1273
1517
|
|
|
1274
1518
|
&::placeholder {
|
|
1275
|
-
|
|
1276
|
-
}
|
|
1277
|
-
|
|
1278
|
-
/* Hide scrollbar for Chrome, Safari and Opera */
|
|
1279
|
-
&::-webkit-scrollbar {
|
|
1280
|
-
display: none;
|
|
1519
|
+
color: var(--charcoal-text3);
|
|
1281
1520
|
}
|
|
1282
|
-
/* Hide scrollbar for IE, Edge and Firefox */
|
|
1283
|
-
-ms-overflow-style: none; /* IE and Edge */
|
|
1284
|
-
scrollbar-width: none; /* Firefox */
|
|
1285
1521
|
`;
|
|
1286
|
-
var MultiLineCounter =
|
|
1522
|
+
var MultiLineCounter = import_styled_components10.default.span`
|
|
1287
1523
|
position: absolute;
|
|
1288
1524
|
bottom: 9px;
|
|
1289
1525
|
right: 8px;
|
|
1290
1526
|
|
|
1291
|
-
|
|
1292
|
-
|
|
1293
|
-
var
|
|
1294
|
-
${(p) => theme((o) => [
|
|
1295
|
-
o.typography(14),
|
|
1296
|
-
o.margin.top(8),
|
|
1297
|
-
o.margin.bottom(0),
|
|
1298
|
-
o.font[p.invalid ? "assertive" : "text1"]
|
|
1299
|
-
])}
|
|
1527
|
+
line-height: 22px;
|
|
1528
|
+
font-size: 14px;
|
|
1529
|
+
color: var(--charcoal-text3);
|
|
1300
1530
|
`;
|
|
1301
1531
|
|
|
1302
1532
|
// src/components/Icon/index.tsx
|
|
@@ -1319,18 +1549,18 @@ var Icon = React6.forwardRef(function IconInner({ name, scale, unsafeNonGuidelin
|
|
|
1319
1549
|
var Icon_default = Icon;
|
|
1320
1550
|
|
|
1321
1551
|
// src/components/Modal/index.tsx
|
|
1322
|
-
var
|
|
1552
|
+
var import_react12 = require("react");
|
|
1323
1553
|
var React9 = __toESM(require("react"));
|
|
1324
1554
|
var import_overlays2 = require("@react-aria/overlays");
|
|
1325
|
-
var
|
|
1326
|
-
var
|
|
1327
|
-
var
|
|
1555
|
+
var import_styled_components12 = __toESM(require("styled-components"));
|
|
1556
|
+
var import_utils5 = require("@charcoal-ui/utils");
|
|
1557
|
+
var import_styled2 = require("@charcoal-ui/styled");
|
|
1328
1558
|
var import_react_spring2 = require("react-spring");
|
|
1329
|
-
var
|
|
1559
|
+
var import_utils6 = require("@react-aria/utils");
|
|
1330
1560
|
|
|
1331
1561
|
// src/components/Modal/Dialog/index.tsx
|
|
1332
|
-
var
|
|
1333
|
-
var
|
|
1562
|
+
var import_react11 = require("react");
|
|
1563
|
+
var import_styled_components11 = __toESM(require("styled-components"));
|
|
1334
1564
|
var import_dialog = require("@react-aria/dialog");
|
|
1335
1565
|
|
|
1336
1566
|
// ../foundation/src/grid.ts
|
|
@@ -1341,7 +1571,7 @@ function columnSystem(span, column, gutter) {
|
|
|
1341
1571
|
}
|
|
1342
1572
|
|
|
1343
1573
|
// src/components/Modal/Dialog/index.tsx
|
|
1344
|
-
var
|
|
1574
|
+
var import_utils4 = require("@charcoal-ui/utils");
|
|
1345
1575
|
var import_react_spring = require("react-spring");
|
|
1346
1576
|
|
|
1347
1577
|
// src/_lib/useForwardedRef.tsx
|
|
@@ -1362,7 +1592,7 @@ function useForwardedRef(ref) {
|
|
|
1362
1592
|
|
|
1363
1593
|
// src/components/Modal/Dialog/index.tsx
|
|
1364
1594
|
var import_jsx_runtime13 = require("react/jsx-runtime");
|
|
1365
|
-
var Dialog = (0,
|
|
1595
|
+
var Dialog = (0, import_react11.forwardRef)(function Dialog2(props, forwardRef18) {
|
|
1366
1596
|
const ref = useForwardedRef(forwardRef18);
|
|
1367
1597
|
const { dialogProps } = (0, import_dialog.useDialog)(
|
|
1368
1598
|
{
|
|
@@ -1382,7 +1612,7 @@ var Dialog = (0, import_react10.forwardRef)(function Dialog2(props, forwardRef18
|
|
|
1382
1612
|
}
|
|
1383
1613
|
);
|
|
1384
1614
|
});
|
|
1385
|
-
var AnimatedStyledDialogDiv = (0, import_react_spring.animated)(
|
|
1615
|
+
var AnimatedStyledDialogDiv = (0, import_react_spring.animated)(import_styled_components11.default.div`
|
|
1386
1616
|
margin: auto;
|
|
1387
1617
|
position: relative;
|
|
1388
1618
|
height: fit-content;
|
|
@@ -1403,18 +1633,18 @@ var AnimatedStyledDialogDiv = (0, import_react_spring.animated)(import_styled_co
|
|
|
1403
1633
|
}
|
|
1404
1634
|
}}px;
|
|
1405
1635
|
|
|
1406
|
-
background-color:
|
|
1636
|
+
background-color: var(--charcoal-surface1);
|
|
1407
1637
|
border-radius: 24px;
|
|
1408
1638
|
|
|
1409
|
-
@media ${({ theme
|
|
1639
|
+
@media ${({ theme }) => (0, import_utils4.maxWidth)(theme.breakpoint.screen1)} {
|
|
1410
1640
|
max-width: 440px;
|
|
1411
1641
|
width: calc(100% - 48px);
|
|
1412
|
-
${(p) => p.bottomSheet !== false &&
|
|
1642
|
+
${(p) => p.bottomSheet !== false && import_styled_components11.css`
|
|
1413
1643
|
max-width: unset;
|
|
1414
1644
|
width: 100%;
|
|
1415
1645
|
border-radius: 0;
|
|
1416
1646
|
margin: auto 0 0 0;
|
|
1417
|
-
${p.bottomSheet === "full" &&
|
|
1647
|
+
${p.bottomSheet === "full" && import_styled_components11.css`
|
|
1418
1648
|
min-height: 100%;
|
|
1419
1649
|
`}
|
|
1420
1650
|
`}
|
|
@@ -1433,7 +1663,7 @@ var ModalBackgroundContext = React8.createContext(
|
|
|
1433
1663
|
// src/components/Modal/index.tsx
|
|
1434
1664
|
var import_jsx_runtime14 = require("react/jsx-runtime");
|
|
1435
1665
|
var DEFAULT_Z_INDEX = 10;
|
|
1436
|
-
var Modal = (0,
|
|
1666
|
+
var Modal = (0, import_react12.forwardRef)(function ModalInner({ children, zIndex = DEFAULT_Z_INDEX, portalContainer, ...props }, external) {
|
|
1437
1667
|
const {
|
|
1438
1668
|
title,
|
|
1439
1669
|
size = "M",
|
|
@@ -1443,9 +1673,12 @@ var Modal = (0, import_react11.forwardRef)(function ModalInner({ children, zInde
|
|
|
1443
1673
|
className,
|
|
1444
1674
|
isOpen = false
|
|
1445
1675
|
} = props;
|
|
1446
|
-
const ref = (0,
|
|
1676
|
+
const ref = (0, import_utils6.useObjectRef)(external);
|
|
1447
1677
|
const { modalProps, underlayProps } = (0, import_overlays2.useModalOverlay)(
|
|
1448
|
-
|
|
1678
|
+
{
|
|
1679
|
+
...props,
|
|
1680
|
+
isKeyboardDismissDisabled: isDismissable === void 0 || isDismissable === false
|
|
1681
|
+
},
|
|
1449
1682
|
{
|
|
1450
1683
|
close: onClose,
|
|
1451
1684
|
isOpen,
|
|
@@ -1458,8 +1691,8 @@ var Modal = (0, import_react11.forwardRef)(function ModalInner({ children, zInde
|
|
|
1458
1691
|
},
|
|
1459
1692
|
ref
|
|
1460
1693
|
);
|
|
1461
|
-
const
|
|
1462
|
-
const isMobile = (0,
|
|
1694
|
+
const theme = (0, import_styled_components12.useTheme)();
|
|
1695
|
+
const isMobile = (0, import_styled2.useMedia)((0, import_utils5.maxWidth)(theme.breakpoint.screen1)) ?? false;
|
|
1463
1696
|
const transitionEnabled = isMobile && bottomSheet !== false;
|
|
1464
1697
|
const showDismiss = !isMobile || bottomSheet !== true;
|
|
1465
1698
|
const transition = (0, import_react_spring2.useTransition)(isOpen, {
|
|
@@ -1530,7 +1763,7 @@ var Modal = (0, import_react11.forwardRef)(function ModalInner({ children, zInde
|
|
|
1530
1763
|
) })
|
|
1531
1764
|
);
|
|
1532
1765
|
});
|
|
1533
|
-
var Modal_default = (0,
|
|
1766
|
+
var Modal_default = (0, import_react12.memo)(Modal);
|
|
1534
1767
|
var ModalContext = React9.createContext({
|
|
1535
1768
|
titleProps: {},
|
|
1536
1769
|
title: "",
|
|
@@ -1538,7 +1771,7 @@ var ModalContext = React9.createContext({
|
|
|
1538
1771
|
showDismiss: true,
|
|
1539
1772
|
bottomSheet: false
|
|
1540
1773
|
});
|
|
1541
|
-
var ModalBackground = (0, import_react_spring2.animated)(
|
|
1774
|
+
var ModalBackground = (0, import_react_spring2.animated)(import_styled_components12.default.div`
|
|
1542
1775
|
z-index: ${({ zIndex }) => zIndex};
|
|
1543
1776
|
overflow: auto;
|
|
1544
1777
|
display: flex;
|
|
@@ -1552,73 +1785,106 @@ var ModalBackground = (0, import_react_spring2.animated)(import_styled_component
|
|
|
1552
1785
|
padding: 40px 0;
|
|
1553
1786
|
box-sizing: border-box;
|
|
1554
1787
|
|
|
1555
|
-
background-color:
|
|
1788
|
+
background-color: var(--charcoal-surface4);
|
|
1556
1789
|
|
|
1557
|
-
@media ${({ theme
|
|
1558
|
-
${(p) => p.$bottomSheet !== false &&
|
|
1790
|
+
@media ${({ theme }) => (0, import_utils5.maxWidth)(theme.breakpoint.screen1)} {
|
|
1791
|
+
${(p) => p.$bottomSheet !== false && import_styled_components12.css`
|
|
1559
1792
|
padding: 0;
|
|
1560
1793
|
`}
|
|
1561
1794
|
}
|
|
1562
1795
|
`);
|
|
1563
|
-
var ModalCrossButton = (0,
|
|
1796
|
+
var ModalCrossButton = (0, import_styled_components12.default)(IconButton_default)`
|
|
1564
1797
|
position: absolute;
|
|
1565
1798
|
top: 8px;
|
|
1566
1799
|
right: 8px;
|
|
1567
1800
|
|
|
1568
|
-
|
|
1801
|
+
color: var(--charcoal-text3);
|
|
1802
|
+
transition: 0.2s color;
|
|
1803
|
+
|
|
1804
|
+
&:not(:disabled):not([aria-disabled]),
|
|
1805
|
+
&[aria-disabled='false'] {
|
|
1806
|
+
&:hover {
|
|
1807
|
+
color: var(--charcoal-text3-hover);
|
|
1808
|
+
}
|
|
1809
|
+
&:active {
|
|
1810
|
+
color: var(--charcoal-text3-press);
|
|
1811
|
+
}
|
|
1812
|
+
}
|
|
1569
1813
|
`;
|
|
1570
1814
|
function ModalTitle(props) {
|
|
1571
|
-
const { titleProps, title } = (0,
|
|
1815
|
+
const { titleProps, title } = (0, import_react12.useContext)(ModalContext);
|
|
1572
1816
|
return /* @__PURE__ */ (0, import_jsx_runtime14.jsx)(ModalHeading, { ...titleProps, ...props, children: title });
|
|
1573
1817
|
}
|
|
1574
|
-
var ModalHeading =
|
|
1818
|
+
var ModalHeading = import_styled_components12.default.h3`
|
|
1575
1819
|
margin: 0;
|
|
1576
1820
|
font-weight: inherit;
|
|
1577
1821
|
font-size: inherit;
|
|
1578
1822
|
`;
|
|
1579
1823
|
|
|
1580
1824
|
// src/components/Modal/ModalPlumbing.tsx
|
|
1581
|
-
var
|
|
1582
|
-
var
|
|
1583
|
-
var
|
|
1825
|
+
var import_styled_components13 = __toESM(require("styled-components"));
|
|
1826
|
+
var import_react13 = require("react");
|
|
1827
|
+
var import_utils7 = require("@charcoal-ui/utils");
|
|
1584
1828
|
var import_jsx_runtime15 = require("react/jsx-runtime");
|
|
1585
1829
|
function ModalHeader() {
|
|
1586
|
-
const modalCtx = (0,
|
|
1830
|
+
const modalCtx = (0, import_react13.useContext)(ModalContext);
|
|
1587
1831
|
return /* @__PURE__ */ (0, import_jsx_runtime15.jsx)(ModalHeaderRoot, { $bottomSheet: modalCtx.bottomSheet, children: /* @__PURE__ */ (0, import_jsx_runtime15.jsx)(StyledModalTitle, {}) });
|
|
1588
1832
|
}
|
|
1589
|
-
var ModalHeaderRoot =
|
|
1833
|
+
var ModalHeaderRoot = import_styled_components13.default.div`
|
|
1590
1834
|
height: 64px;
|
|
1591
1835
|
display: grid;
|
|
1592
1836
|
align-content: center;
|
|
1593
1837
|
justify-content: center;
|
|
1594
|
-
@media ${({ theme
|
|
1595
|
-
${(p) => p.$bottomSheet !== false &&
|
|
1838
|
+
@media ${({ theme }) => (0, import_utils7.maxWidth)(theme.breakpoint.screen1)} {
|
|
1839
|
+
${(p) => p.$bottomSheet !== false && import_styled_components13.css`
|
|
1596
1840
|
height: 48px;
|
|
1597
1841
|
`}
|
|
1598
1842
|
}
|
|
1599
1843
|
`;
|
|
1600
|
-
var StyledModalTitle = (0,
|
|
1601
|
-
|
|
1844
|
+
var StyledModalTitle = (0, import_styled_components13.default)(ModalTitle)`
|
|
1845
|
+
color: var(--charcoal-text1);
|
|
1846
|
+
font-size: 16px;
|
|
1847
|
+
line-height: 24px;
|
|
1848
|
+
font-weight: bold;
|
|
1849
|
+
display: flow-root;
|
|
1850
|
+
|
|
1851
|
+
&::before {
|
|
1852
|
+
display: block;
|
|
1853
|
+
width: 0;
|
|
1854
|
+
height: 0;
|
|
1855
|
+
content: '';
|
|
1856
|
+
margin-top: -4px;
|
|
1857
|
+
}
|
|
1858
|
+
&::after {
|
|
1859
|
+
display: block;
|
|
1860
|
+
width: 0;
|
|
1861
|
+
height: 0;
|
|
1862
|
+
content: '';
|
|
1863
|
+
margin-bottom: -4px;
|
|
1864
|
+
}
|
|
1602
1865
|
`;
|
|
1603
|
-
var ModalAlign =
|
|
1604
|
-
|
|
1866
|
+
var ModalAlign = import_styled_components13.default.div`
|
|
1867
|
+
padding-left: 16px;
|
|
1868
|
+
padding-right: 16px;
|
|
1605
1869
|
`;
|
|
1606
|
-
var ModalBody =
|
|
1607
|
-
|
|
1870
|
+
var ModalBody = import_styled_components13.default.div`
|
|
1871
|
+
padding-bottom: 40px;
|
|
1608
1872
|
`;
|
|
1609
|
-
var ModalButtons =
|
|
1873
|
+
var ModalButtons = import_styled_components13.default.div`
|
|
1610
1874
|
display: grid;
|
|
1611
1875
|
grid-auto-flow: row;
|
|
1612
1876
|
grid-row-gap: 8px;
|
|
1613
1877
|
|
|
1614
|
-
|
|
1878
|
+
padding-top: 16px;
|
|
1879
|
+
padding-left: 16px;
|
|
1880
|
+
padding-right: 16px;
|
|
1615
1881
|
`;
|
|
1616
1882
|
|
|
1617
1883
|
// src/components/LoadingSpinner/index.tsx
|
|
1618
|
-
var
|
|
1619
|
-
var
|
|
1884
|
+
var import_react14 = require("react");
|
|
1885
|
+
var import_styled_components14 = __toESM(require("styled-components"));
|
|
1620
1886
|
var import_jsx_runtime16 = require("react/jsx-runtime");
|
|
1621
|
-
var LoadingSpinner = (0,
|
|
1887
|
+
var LoadingSpinner = (0, import_react14.forwardRef)(
|
|
1622
1888
|
function LoadingSpinnerInner({ size = 48, padding = 16, transparent = false, className }, ref) {
|
|
1623
1889
|
return /* @__PURE__ */ (0, import_jsx_runtime16.jsx)(
|
|
1624
1890
|
LoadingSpinnerRoot,
|
|
@@ -1633,8 +1899,8 @@ var LoadingSpinner = (0, import_react13.forwardRef)(
|
|
|
1633
1899
|
);
|
|
1634
1900
|
}
|
|
1635
1901
|
);
|
|
1636
|
-
var LoadingSpinner_default = (0,
|
|
1637
|
-
var LoadingSpinnerRoot =
|
|
1902
|
+
var LoadingSpinner_default = (0, import_react14.memo)(LoadingSpinner);
|
|
1903
|
+
var LoadingSpinnerRoot = import_styled_components14.default.div.attrs({ role: "progressbar" })`
|
|
1638
1904
|
box-sizing: content-box;
|
|
1639
1905
|
margin: auto;
|
|
1640
1906
|
padding: ${(props) => props.padding}px;
|
|
@@ -1643,12 +1909,10 @@ var LoadingSpinnerRoot = import_styled_components15.default.div.attrs({ role: "p
|
|
|
1643
1909
|
width: ${(props) => props.size}px;
|
|
1644
1910
|
height: ${(props) => props.size}px;
|
|
1645
1911
|
opacity: 0.84;
|
|
1646
|
-
|
|
1647
|
-
|
|
1648
|
-
transparent ? o.bg.transparent : o.bg.background1
|
|
1649
|
-
])}
|
|
1912
|
+
color: var(--charcoal-text4);
|
|
1913
|
+
background-color: ${({ transparent }) => `var(--charcoal-${transparent ? "transparent" : "background1"})`};
|
|
1650
1914
|
`;
|
|
1651
|
-
var scaleOut =
|
|
1915
|
+
var scaleOut = import_styled_components14.keyframes`
|
|
1652
1916
|
from {
|
|
1653
1917
|
transform: scale(0);
|
|
1654
1918
|
opacity: 1;
|
|
@@ -1659,7 +1923,7 @@ var scaleOut = import_styled_components15.keyframes`
|
|
|
1659
1923
|
opacity: 0;
|
|
1660
1924
|
}
|
|
1661
1925
|
`;
|
|
1662
|
-
var Icon2 =
|
|
1926
|
+
var Icon2 = import_styled_components14.default.div.attrs({ role: "presentation" })`
|
|
1663
1927
|
width: 1em;
|
|
1664
1928
|
height: 1em;
|
|
1665
1929
|
border-radius: 1em;
|
|
@@ -1671,10 +1935,10 @@ var Icon2 = import_styled_components15.default.div.attrs({ role: "presentation"
|
|
|
1671
1935
|
animation: none;
|
|
1672
1936
|
}
|
|
1673
1937
|
`;
|
|
1674
|
-
var LoadingSpinnerIcon = (0,
|
|
1938
|
+
var LoadingSpinnerIcon = (0, import_react14.forwardRef)(
|
|
1675
1939
|
function LoadingSpinnerIcon2({ once = false }, ref) {
|
|
1676
|
-
const iconRef = (0,
|
|
1677
|
-
(0,
|
|
1940
|
+
const iconRef = (0, import_react14.useRef)(null);
|
|
1941
|
+
(0, import_react14.useImperativeHandle)(ref, () => ({
|
|
1678
1942
|
restart: () => {
|
|
1679
1943
|
if (!iconRef.current) {
|
|
1680
1944
|
return;
|
|
@@ -1689,22 +1953,22 @@ var LoadingSpinnerIcon = (0, import_react13.forwardRef)(
|
|
|
1689
1953
|
);
|
|
1690
1954
|
|
|
1691
1955
|
// src/components/DropdownSelector/index.tsx
|
|
1692
|
-
var
|
|
1693
|
-
var
|
|
1694
|
-
var
|
|
1956
|
+
var import_react20 = require("react");
|
|
1957
|
+
var import_styled_components17 = __toESM(require("styled-components"));
|
|
1958
|
+
var import_utils8 = require("@charcoal-ui/utils");
|
|
1695
1959
|
|
|
1696
1960
|
// src/components/DropdownSelector/DropdownPopover.tsx
|
|
1697
|
-
var
|
|
1961
|
+
var import_react17 = require("react");
|
|
1698
1962
|
|
|
1699
1963
|
// src/components/DropdownSelector/Popover/index.tsx
|
|
1700
|
-
var
|
|
1964
|
+
var import_react16 = require("react");
|
|
1701
1965
|
var import_overlays3 = require("@react-aria/overlays");
|
|
1702
|
-
var
|
|
1966
|
+
var import_styled_components15 = __toESM(require("styled-components"));
|
|
1703
1967
|
|
|
1704
1968
|
// src/components/DropdownSelector/Popover/usePreventScroll.tsx
|
|
1705
|
-
var
|
|
1969
|
+
var import_react15 = require("react");
|
|
1706
1970
|
function usePreventScroll(element, isOpen) {
|
|
1707
|
-
(0,
|
|
1971
|
+
(0, import_react15.useEffect)(() => {
|
|
1708
1972
|
if (isOpen && element) {
|
|
1709
1973
|
const defaultPaddingRight = element.style.paddingRight;
|
|
1710
1974
|
const defaultOverflow = element.style.overflow;
|
|
@@ -1722,7 +1986,7 @@ function usePreventScroll(element, isOpen) {
|
|
|
1722
1986
|
var import_jsx_runtime17 = require("react/jsx-runtime");
|
|
1723
1987
|
var _empty = () => null;
|
|
1724
1988
|
function Popover(props) {
|
|
1725
|
-
const defaultPopoverRef = (0,
|
|
1989
|
+
const defaultPopoverRef = (0, import_react16.useRef)(null);
|
|
1726
1990
|
const finalPopoverRef = props.popoverRef === void 0 ? defaultPopoverRef : props.popoverRef;
|
|
1727
1991
|
const { popoverProps, underlayProps } = (0, import_overlays3.usePopover)(
|
|
1728
1992
|
{
|
|
@@ -1738,7 +2002,7 @@ function Popover(props) {
|
|
|
1738
2002
|
toggle: _empty
|
|
1739
2003
|
}
|
|
1740
2004
|
);
|
|
1741
|
-
const modalBackground = (0,
|
|
2005
|
+
const modalBackground = (0, import_react16.useContext)(ModalBackgroundContext);
|
|
1742
2006
|
usePreventScroll(modalBackground, props.isOpen);
|
|
1743
2007
|
if (!props.isOpen)
|
|
1744
2008
|
return null;
|
|
@@ -1761,30 +2025,28 @@ function Popover(props) {
|
|
|
1761
2025
|
] })
|
|
1762
2026
|
] });
|
|
1763
2027
|
}
|
|
1764
|
-
var DropdownPopoverDiv =
|
|
2028
|
+
var DropdownPopoverDiv = import_styled_components15.default.div`
|
|
1765
2029
|
margin: 4px 0;
|
|
1766
2030
|
list-style: none;
|
|
1767
2031
|
overflow: auto;
|
|
1768
2032
|
max-height: inherit;
|
|
1769
|
-
|
|
1770
|
-
|
|
1771
|
-
|
|
1772
|
-
|
|
1773
|
-
|
|
1774
|
-
o.padding.vertical(8)
|
|
1775
|
-
])}
|
|
2033
|
+
background-color: var(--charcoal-background1);
|
|
2034
|
+
border: solid 1px var(--charcoal-border-default);
|
|
2035
|
+
border-radius: 8px;
|
|
2036
|
+
padding-top: 8px;
|
|
2037
|
+
padding-bottom: 8px;
|
|
1776
2038
|
`;
|
|
1777
2039
|
|
|
1778
2040
|
// src/components/DropdownSelector/DropdownPopover.tsx
|
|
1779
2041
|
var import_jsx_runtime18 = require("react/jsx-runtime");
|
|
1780
2042
|
function DropdownPopover({ children, ...props }) {
|
|
1781
|
-
const ref = (0,
|
|
1782
|
-
(0,
|
|
2043
|
+
const ref = (0, import_react17.useRef)(null);
|
|
2044
|
+
(0, import_react17.useEffect)(() => {
|
|
1783
2045
|
if (props.isOpen && ref.current && props.triggerRef.current) {
|
|
1784
2046
|
ref.current.style.width = `${props.triggerRef.current.clientWidth}px`;
|
|
1785
2047
|
}
|
|
1786
2048
|
}, [props.triggerRef, props.isOpen]);
|
|
1787
|
-
(0,
|
|
2049
|
+
(0, import_react17.useEffect)(() => {
|
|
1788
2050
|
if (props.isOpen && props.value !== void 0) {
|
|
1789
2051
|
const windowScrollY = window.scrollY;
|
|
1790
2052
|
const windowScrollX = window.scrollX;
|
|
@@ -1835,12 +2097,12 @@ function findPreviewRecursive(children, value) {
|
|
|
1835
2097
|
}
|
|
1836
2098
|
|
|
1837
2099
|
// src/components/DropdownSelector/MenuList/index.tsx
|
|
1838
|
-
var
|
|
1839
|
-
var
|
|
2100
|
+
var import_react19 = require("react");
|
|
2101
|
+
var import_styled_components16 = __toESM(require("styled-components"));
|
|
1840
2102
|
|
|
1841
2103
|
// src/components/DropdownSelector/MenuList/MenuListContext.ts
|
|
1842
|
-
var
|
|
1843
|
-
var MenuListContext = (0,
|
|
2104
|
+
var import_react18 = require("react");
|
|
2105
|
+
var MenuListContext = (0, import_react18.createContext)({
|
|
1844
2106
|
root: void 0,
|
|
1845
2107
|
value: "",
|
|
1846
2108
|
values: [],
|
|
@@ -1870,7 +2132,7 @@ function getValuesRecursive(children, values = []) {
|
|
|
1870
2132
|
// src/components/DropdownSelector/MenuList/index.tsx
|
|
1871
2133
|
var import_jsx_runtime19 = require("react/jsx-runtime");
|
|
1872
2134
|
function MenuList(props) {
|
|
1873
|
-
const root = (0,
|
|
2135
|
+
const root = (0, import_react19.useRef)(null);
|
|
1874
2136
|
const values = [];
|
|
1875
2137
|
getValuesRecursive(props.children, values);
|
|
1876
2138
|
return /* @__PURE__ */ (0, import_jsx_runtime19.jsx)(StyledUl, { ref: root, children: /* @__PURE__ */ (0, import_jsx_runtime19.jsx)(
|
|
@@ -1888,7 +2150,7 @@ function MenuList(props) {
|
|
|
1888
2150
|
}
|
|
1889
2151
|
) });
|
|
1890
2152
|
}
|
|
1891
|
-
var StyledUl =
|
|
2153
|
+
var StyledUl = import_styled_components16.default.ul`
|
|
1892
2154
|
padding: 0;
|
|
1893
2155
|
margin: 0;
|
|
1894
2156
|
`;
|
|
@@ -1897,8 +2159,8 @@ var StyledUl = import_styled_components17.default.ul`
|
|
|
1897
2159
|
var import_jsx_runtime20 = require("react/jsx-runtime");
|
|
1898
2160
|
var defaultRequiredText = "*\u5FC5\u9808";
|
|
1899
2161
|
function DropdownSelector(props) {
|
|
1900
|
-
const triggerRef = (0,
|
|
1901
|
-
const [isOpen, setIsOpen] = (0,
|
|
2162
|
+
const triggerRef = (0, import_react20.useRef)(null);
|
|
2163
|
+
const [isOpen, setIsOpen] = (0, import_react20.useState)(false);
|
|
1902
2164
|
const preview = findPreviewRecursive(props.children, props.value);
|
|
1903
2165
|
return /* @__PURE__ */ (0, import_jsx_runtime20.jsxs)(DropdownSelectorRoot, { "aria-disabled": props.disabled, children: [
|
|
1904
2166
|
props.showLabel === true && /* @__PURE__ */ (0, import_jsx_runtime20.jsx)(
|
|
@@ -1951,21 +2213,20 @@ function DropdownSelector(props) {
|
|
|
1951
2213
|
props.assistiveText !== void 0 && /* @__PURE__ */ (0, import_jsx_runtime20.jsx)(AssertiveText, { invalid: props.invalid, children: props.assistiveText })
|
|
1952
2214
|
] });
|
|
1953
2215
|
}
|
|
1954
|
-
var DropdownSelectorRoot =
|
|
2216
|
+
var DropdownSelectorRoot = import_styled_components17.default.div`
|
|
1955
2217
|
display: inline-block;
|
|
1956
2218
|
width: 100%;
|
|
1957
2219
|
|
|
1958
|
-
${
|
|
2220
|
+
${import_utils8.disabledSelector} {
|
|
1959
2221
|
cursor: default;
|
|
1960
|
-
|
|
2222
|
+
opacity: 0.32;
|
|
1961
2223
|
}
|
|
1962
2224
|
`;
|
|
1963
|
-
var DropdownFieldLabel = (0,
|
|
2225
|
+
var DropdownFieldLabel = (0, import_styled_components17.default)(FieldLabel_default)`
|
|
1964
2226
|
width: 100%;
|
|
1965
|
-
|
|
1966
|
-
${theme((o) => o.margin.bottom(8))}
|
|
2227
|
+
margin-bottom: 8px;
|
|
1967
2228
|
`;
|
|
1968
|
-
var DropdownButton =
|
|
2229
|
+
var DropdownButton = import_styled_components17.default.button`
|
|
1969
2230
|
display: flex;
|
|
1970
2231
|
justify-content: space-between;
|
|
1971
2232
|
align-items: center;
|
|
@@ -1976,69 +2237,122 @@ var DropdownButton = import_styled_components18.default.button`
|
|
|
1976
2237
|
border: none;
|
|
1977
2238
|
cursor: pointer;
|
|
1978
2239
|
|
|
1979
|
-
${
|
|
2240
|
+
${import_utils8.disabledSelector} {
|
|
1980
2241
|
cursor: default;
|
|
1981
2242
|
}
|
|
1982
2243
|
|
|
1983
|
-
|
|
1984
|
-
|
|
1985
|
-
|
|
1986
|
-
|
|
1987
|
-
|
|
1988
|
-
|
|
1989
|
-
|
|
2244
|
+
padding-right: 8px;
|
|
2245
|
+
padding-left: 8px;
|
|
2246
|
+
background-color: var(--charcoal-surface3);
|
|
2247
|
+
border-radius: 4px;
|
|
2248
|
+
|
|
2249
|
+
transition: 0.2s box-shadow;
|
|
2250
|
+
|
|
2251
|
+
&:not(:disabled):not([aria-disabled]),
|
|
2252
|
+
&[aria-disabled='false'] {
|
|
2253
|
+
&:focus,
|
|
2254
|
+
&:active,
|
|
2255
|
+
&:focus-visible {
|
|
2256
|
+
outline: none;
|
|
2257
|
+
box-shadow: 0 0 0 4px rgba(0, 150, 250, 0.32);
|
|
2258
|
+
}
|
|
2259
|
+
}
|
|
2260
|
+
|
|
2261
|
+
${({ invalid }) => invalid === true && import_styled_components17.css`
|
|
2262
|
+
&:not(:disabled):not([aria-disabled]),
|
|
2263
|
+
&[aria-disabled='false'] {
|
|
2264
|
+
box-shadow: 0 0 0 4px rgba(255, 43, 0, 0.32);
|
|
2265
|
+
}
|
|
2266
|
+
`}
|
|
1990
2267
|
`;
|
|
1991
|
-
var DropdownButtonText =
|
|
2268
|
+
var DropdownButtonText = import_styled_components17.default.span`
|
|
1992
2269
|
text-align: left;
|
|
1993
|
-
|
|
1994
|
-
|
|
2270
|
+
font-size: 14px;
|
|
2271
|
+
line-height: 22px;
|
|
2272
|
+
display: flow-root;
|
|
2273
|
+
color: var(--charcoal-text2);
|
|
2274
|
+
&::before {
|
|
2275
|
+
display: block;
|
|
2276
|
+
width: 0;
|
|
2277
|
+
height: 0;
|
|
2278
|
+
content: '';
|
|
2279
|
+
margin-top: -4px;
|
|
2280
|
+
}
|
|
2281
|
+
&::after {
|
|
2282
|
+
display: block;
|
|
2283
|
+
width: 0;
|
|
2284
|
+
height: 0;
|
|
2285
|
+
content: '';
|
|
2286
|
+
margin-bottom: -4px;
|
|
2287
|
+
}
|
|
1995
2288
|
`;
|
|
1996
|
-
var DropdownButtonIcon = (0,
|
|
1997
|
-
|
|
2289
|
+
var DropdownButtonIcon = (0, import_styled_components17.default)(Icon_default)`
|
|
2290
|
+
color: var(--charcoal-text2);
|
|
1998
2291
|
`;
|
|
1999
|
-
var AssertiveText =
|
|
2000
|
-
|
|
2001
|
-
|
|
2002
|
-
|
|
2003
|
-
|
|
2004
|
-
|
|
2292
|
+
var AssertiveText = import_styled_components17.default.div`
|
|
2293
|
+
margin-top: 8px;
|
|
2294
|
+
font-size: 14px;
|
|
2295
|
+
color: var(--charcoal-text2);
|
|
2296
|
+
line-height: 22px;
|
|
2297
|
+
display: flow-root;
|
|
2298
|
+
&::before {
|
|
2299
|
+
display: block;
|
|
2300
|
+
width: 0;
|
|
2301
|
+
height: 0;
|
|
2302
|
+
content: '';
|
|
2303
|
+
margin-top: -4px;
|
|
2304
|
+
}
|
|
2305
|
+
&::after {
|
|
2306
|
+
display: block;
|
|
2307
|
+
width: 0;
|
|
2308
|
+
height: 0;
|
|
2309
|
+
content: '';
|
|
2310
|
+
margin-bottom: -4px;
|
|
2311
|
+
}
|
|
2312
|
+
|
|
2313
|
+
${({ invalid }) => invalid === true && import_styled_components17.css`
|
|
2314
|
+
color: var(--charcoal-assertive);
|
|
2315
|
+
`}
|
|
2005
2316
|
`;
|
|
2006
2317
|
|
|
2007
2318
|
// src/components/DropdownSelector/DropdownMenuItem.tsx
|
|
2008
|
-
var
|
|
2319
|
+
var import_styled_components19 = __toESM(require("styled-components"));
|
|
2009
2320
|
|
|
2010
2321
|
// src/components/DropdownSelector/ListItem/index.tsx
|
|
2011
|
-
var
|
|
2322
|
+
var import_styled_components18 = __toESM(require("styled-components"));
|
|
2012
2323
|
var import_jsx_runtime21 = require("react/jsx-runtime");
|
|
2013
2324
|
function ListItem(props) {
|
|
2014
2325
|
const { children, ...rest } = props;
|
|
2015
2326
|
return /* @__PURE__ */ (0, import_jsx_runtime21.jsx)(StyledLi, { role: "option", children: /* @__PURE__ */ (0, import_jsx_runtime21.jsx)(ItemDiv, { ...rest, children: props.children }) });
|
|
2016
2327
|
}
|
|
2017
|
-
var StyledLi =
|
|
2328
|
+
var StyledLi = import_styled_components18.default.li`
|
|
2018
2329
|
list-style: none;
|
|
2019
2330
|
`;
|
|
2020
|
-
var ItemDiv =
|
|
2331
|
+
var ItemDiv = import_styled_components18.default.div`
|
|
2021
2332
|
display: flex;
|
|
2022
2333
|
align-items: center;
|
|
2023
2334
|
min-height: 40px;
|
|
2024
2335
|
cursor: pointer;
|
|
2025
2336
|
outline: none;
|
|
2026
2337
|
|
|
2027
|
-
|
|
2338
|
+
padding-right: 16px;
|
|
2339
|
+
padding-left: 16px;
|
|
2028
2340
|
|
|
2029
|
-
|
|
2341
|
+
&:disabled,
|
|
2342
|
+
&[aria-disabled]:not([aria-disabled='false']) {
|
|
2343
|
+
opacity: 0.32;
|
|
2030
2344
|
cursor: default;
|
|
2031
2345
|
}
|
|
2032
2346
|
|
|
2033
2347
|
:hover,
|
|
2034
2348
|
:focus,
|
|
2035
2349
|
:focus-within {
|
|
2036
|
-
|
|
2350
|
+
background-color: var(--charcoal-surface3);
|
|
2037
2351
|
}
|
|
2038
2352
|
`;
|
|
2039
2353
|
|
|
2040
2354
|
// src/components/DropdownSelector/MenuItem/internals/useMenuItemHandleKeyDown.tsx
|
|
2041
|
-
var
|
|
2355
|
+
var import_react21 = require("react");
|
|
2042
2356
|
|
|
2043
2357
|
// src/components/DropdownSelector/MenuItem/internals/handleFocusByKeyBoard.tsx
|
|
2044
2358
|
function handleFocusByKeyBoard(element, parent) {
|
|
@@ -2071,12 +2385,12 @@ function scrollIfNeeded(element) {
|
|
|
2071
2385
|
|
|
2072
2386
|
// src/components/DropdownSelector/MenuItem/internals/useMenuItemHandleKeyDown.tsx
|
|
2073
2387
|
function useMenuItemHandleKeyDown(value) {
|
|
2074
|
-
const { setValue, root, values } = (0,
|
|
2075
|
-
const setContextValue = (0,
|
|
2388
|
+
const { setValue, root, values } = (0, import_react21.useContext)(MenuListContext);
|
|
2389
|
+
const setContextValue = (0, import_react21.useCallback)(() => {
|
|
2076
2390
|
if (value !== void 0)
|
|
2077
2391
|
setValue(value);
|
|
2078
2392
|
}, [value, setValue]);
|
|
2079
|
-
const handleKeyDown = (0,
|
|
2393
|
+
const handleKeyDown = (0, import_react21.useCallback)(
|
|
2080
2394
|
(e) => {
|
|
2081
2395
|
if (e.key === "Enter") {
|
|
2082
2396
|
setContextValue();
|
|
@@ -2123,10 +2437,10 @@ function MenuItem(props) {
|
|
|
2123
2437
|
}
|
|
2124
2438
|
|
|
2125
2439
|
// src/components/DropdownSelector/DropdownMenuItem.tsx
|
|
2126
|
-
var
|
|
2440
|
+
var import_react22 = require("react");
|
|
2127
2441
|
var import_jsx_runtime23 = require("react/jsx-runtime");
|
|
2128
2442
|
function DropdownMenuItem(props) {
|
|
2129
|
-
const { value: ctxValue } = (0,
|
|
2443
|
+
const { value: ctxValue } = (0, import_react22.useContext)(MenuListContext);
|
|
2130
2444
|
const isSelected = props.value === ctxValue;
|
|
2131
2445
|
const { children, ...rest } = props;
|
|
2132
2446
|
return /* @__PURE__ */ (0, import_jsx_runtime23.jsxs)(MenuItem, { ...rest, children: [
|
|
@@ -2134,20 +2448,37 @@ function DropdownMenuItem(props) {
|
|
|
2134
2448
|
/* @__PURE__ */ (0, import_jsx_runtime23.jsx)(StyledSpan, { isSelected, children: props.children })
|
|
2135
2449
|
] });
|
|
2136
2450
|
}
|
|
2137
|
-
var StyledSpan =
|
|
2138
|
-
|
|
2451
|
+
var StyledSpan = import_styled_components19.default.span`
|
|
2452
|
+
font-size: 14px;
|
|
2453
|
+
line-height: 22px;
|
|
2454
|
+
color: var(--charcoal-text2);
|
|
2455
|
+
&::before {
|
|
2456
|
+
display: block;
|
|
2457
|
+
width: 0;
|
|
2458
|
+
height: 0;
|
|
2459
|
+
content: '';
|
|
2460
|
+
margin-top: -4px;
|
|
2461
|
+
}
|
|
2462
|
+
&::after {
|
|
2463
|
+
display: block;
|
|
2464
|
+
width: 0;
|
|
2465
|
+
height: 0;
|
|
2466
|
+
content: '';
|
|
2467
|
+
margin-bottom: -4px;
|
|
2468
|
+
}
|
|
2469
|
+
|
|
2139
2470
|
display: flex;
|
|
2140
2471
|
align-items: center;
|
|
2141
2472
|
width: 100%;
|
|
2142
2473
|
margin-left: ${({ isSelected }) => isSelected === true ? 0 : 20}px;
|
|
2143
2474
|
`;
|
|
2144
|
-
var Text2ColorIcon = (0,
|
|
2145
|
-
|
|
2475
|
+
var Text2ColorIcon = (0, import_styled_components19.default)(Icon_default)`
|
|
2476
|
+
color: var(--charcoal-text2);
|
|
2146
2477
|
padding-right: 4px;
|
|
2147
2478
|
`;
|
|
2148
2479
|
|
|
2149
2480
|
// src/components/DropdownSelector/MenuItemGroup/index.tsx
|
|
2150
|
-
var
|
|
2481
|
+
var import_styled_components20 = __toESM(require("styled-components"));
|
|
2151
2482
|
var import_jsx_runtime24 = require("react/jsx-runtime");
|
|
2152
2483
|
function MenuItemGroup(props) {
|
|
2153
2484
|
return /* @__PURE__ */ (0, import_jsx_runtime24.jsxs)(StyledLi2, { role: "presentation", children: [
|
|
@@ -2155,35 +2486,34 @@ function MenuItemGroup(props) {
|
|
|
2155
2486
|
/* @__PURE__ */ (0, import_jsx_runtime24.jsx)(StyledUl2, { role: "group", children: props.children })
|
|
2156
2487
|
] });
|
|
2157
2488
|
}
|
|
2158
|
-
var TextSpan =
|
|
2489
|
+
var TextSpan = import_styled_components20.default.span`
|
|
2159
2490
|
display: block;
|
|
2160
|
-
color:
|
|
2491
|
+
color: var(--charcoal-text3);
|
|
2161
2492
|
font-size: 12px;
|
|
2162
2493
|
font-weight: bold;
|
|
2163
2494
|
padding: 12px 0 8px 16px;
|
|
2164
2495
|
`;
|
|
2165
|
-
var StyledUl2 =
|
|
2496
|
+
var StyledUl2 = import_styled_components20.default.ul`
|
|
2166
2497
|
padding-left: 0;
|
|
2167
2498
|
margin: 0;
|
|
2168
2499
|
box-sizing: border-box;
|
|
2169
2500
|
list-style: none;
|
|
2170
2501
|
overflow: hidden;
|
|
2171
2502
|
`;
|
|
2172
|
-
var StyledLi2 =
|
|
2503
|
+
var StyledLi2 = import_styled_components20.default.li`
|
|
2173
2504
|
display: block;
|
|
2174
2505
|
`;
|
|
2175
2506
|
|
|
2176
2507
|
// src/components/SegmentedControl/index.tsx
|
|
2177
|
-
var
|
|
2508
|
+
var import_react24 = require("react");
|
|
2178
2509
|
var import_react_stately2 = require("react-stately");
|
|
2179
2510
|
var import_radio = require("@react-aria/radio");
|
|
2180
|
-
var
|
|
2181
|
-
var import_utils11 = require("@charcoal-ui/utils");
|
|
2511
|
+
var import_styled_components21 = __toESM(require("styled-components"));
|
|
2182
2512
|
|
|
2183
2513
|
// src/components/SegmentedControl/RadioGroupContext.tsx
|
|
2184
|
-
var
|
|
2514
|
+
var import_react23 = require("react");
|
|
2185
2515
|
var import_jsx_runtime25 = require("react/jsx-runtime");
|
|
2186
|
-
var RadioContext = (0,
|
|
2516
|
+
var RadioContext = (0, import_react23.createContext)(null);
|
|
2187
2517
|
var RadioProvider = ({
|
|
2188
2518
|
value,
|
|
2189
2519
|
children
|
|
@@ -2191,7 +2521,7 @@ var RadioProvider = ({
|
|
|
2191
2521
|
return /* @__PURE__ */ (0, import_jsx_runtime25.jsx)(RadioContext.Provider, { value, children });
|
|
2192
2522
|
};
|
|
2193
2523
|
var useRadioContext = () => {
|
|
2194
|
-
const state = (0,
|
|
2524
|
+
const state = (0, import_react23.useContext)(RadioContext);
|
|
2195
2525
|
if (state === null)
|
|
2196
2526
|
throw new Error("`<RadioProvider>` is not likely mounted.");
|
|
2197
2527
|
return state;
|
|
@@ -2199,9 +2529,9 @@ var useRadioContext = () => {
|
|
|
2199
2529
|
|
|
2200
2530
|
// src/components/SegmentedControl/index.tsx
|
|
2201
2531
|
var import_jsx_runtime26 = require("react/jsx-runtime");
|
|
2202
|
-
var SegmentedControl = (0,
|
|
2532
|
+
var SegmentedControl = (0, import_react24.forwardRef)(
|
|
2203
2533
|
function SegmentedControlInner(props, ref) {
|
|
2204
|
-
const ariaRadioGroupProps = (0,
|
|
2534
|
+
const ariaRadioGroupProps = (0, import_react24.useMemo)(
|
|
2205
2535
|
() => ({
|
|
2206
2536
|
...props,
|
|
2207
2537
|
isDisabled: props.disabled,
|
|
@@ -2213,7 +2543,7 @@ var SegmentedControl = (0, import_react23.forwardRef)(
|
|
|
2213
2543
|
);
|
|
2214
2544
|
const state = (0, import_react_stately2.useRadioGroupState)(ariaRadioGroupProps);
|
|
2215
2545
|
const { radioGroupProps } = (0, import_radio.useRadioGroup)(ariaRadioGroupProps, state);
|
|
2216
|
-
const segmentedControlItems = (0,
|
|
2546
|
+
const segmentedControlItems = (0, import_react24.useMemo)(() => {
|
|
2217
2547
|
return props.data.map(
|
|
2218
2548
|
(d) => typeof d === "string" ? { value: d, label: d } : d
|
|
2219
2549
|
);
|
|
@@ -2237,11 +2567,11 @@ var SegmentedControl = (0, import_react23.forwardRef)(
|
|
|
2237
2567
|
);
|
|
2238
2568
|
}
|
|
2239
2569
|
);
|
|
2240
|
-
var SegmentedControl_default = (0,
|
|
2570
|
+
var SegmentedControl_default = (0, import_react24.memo)(SegmentedControl);
|
|
2241
2571
|
var Segmented = (props) => {
|
|
2242
2572
|
const state = useRadioContext();
|
|
2243
|
-
const ref = (0,
|
|
2244
|
-
const ariaRadioProps = (0,
|
|
2573
|
+
const ref = (0, import_react24.useRef)(null);
|
|
2574
|
+
const ariaRadioProps = (0, import_react24.useMemo)(
|
|
2245
2575
|
() => ({
|
|
2246
2576
|
value: props.value,
|
|
2247
2577
|
isDisabled: props.disabled,
|
|
@@ -2266,32 +2596,36 @@ var Segmented = (props) => {
|
|
|
2266
2596
|
}
|
|
2267
2597
|
);
|
|
2268
2598
|
};
|
|
2269
|
-
var SegmentedControlRoot =
|
|
2599
|
+
var SegmentedControlRoot = import_styled_components21.default.div`
|
|
2270
2600
|
display: inline-flex;
|
|
2271
2601
|
align-items: center;
|
|
2272
2602
|
|
|
2273
|
-
|
|
2603
|
+
background-color: var(--charcoal-surface3);
|
|
2604
|
+
border-radius: 16px;
|
|
2274
2605
|
`;
|
|
2275
|
-
var SegmentedRoot =
|
|
2606
|
+
var SegmentedRoot = import_styled_components21.default.label`
|
|
2276
2607
|
position: relative;
|
|
2277
2608
|
display: flex;
|
|
2278
2609
|
align-items: center;
|
|
2279
2610
|
cursor: pointer;
|
|
2280
2611
|
height: 32px;
|
|
2281
2612
|
|
|
2282
|
-
|
|
2613
|
+
padding-right: 16px;
|
|
2614
|
+
padding-left: 16px;
|
|
2615
|
+
border-radius: 16px;
|
|
2616
|
+
&:disabled,
|
|
2617
|
+
&[aria-disabled]:not([aria-disabled='false']) {
|
|
2283
2618
|
cursor: default;
|
|
2619
|
+
opacity: 0.32;
|
|
2284
2620
|
}
|
|
2621
|
+
color: var(--charcoal-text2);
|
|
2285
2622
|
|
|
2286
|
-
${({ checked }) =>
|
|
2287
|
-
|
|
2288
|
-
|
|
2289
|
-
|
|
2290
|
-
checked === true && o.bg.brand,
|
|
2291
|
-
checked === true ? o.font.text5 : o.font.text2
|
|
2292
|
-
])}
|
|
2623
|
+
${({ checked = false }) => checked && import_styled_components21.css`
|
|
2624
|
+
background-color: var(--charcoal-brand);
|
|
2625
|
+
color: var(--charcoal-text5);
|
|
2626
|
+
`}
|
|
2293
2627
|
`;
|
|
2294
|
-
var SegmentedInput =
|
|
2628
|
+
var SegmentedInput = import_styled_components21.default.input`
|
|
2295
2629
|
position: absolute;
|
|
2296
2630
|
|
|
2297
2631
|
height: 0px;
|
|
@@ -2305,29 +2639,47 @@ var SegmentedInput = import_styled_components22.default.input`
|
|
|
2305
2639
|
white-space: nowrap;
|
|
2306
2640
|
opacity: 0;
|
|
2307
2641
|
`;
|
|
2308
|
-
var RadioLabel2 =
|
|
2642
|
+
var RadioLabel2 = import_styled_components21.default.div`
|
|
2309
2643
|
background: transparent;
|
|
2310
2644
|
display: flex;
|
|
2311
2645
|
align-items: center;
|
|
2312
2646
|
height: 22px;
|
|
2313
2647
|
`;
|
|
2314
|
-
var SegmentedLabelInner =
|
|
2315
|
-
|
|
2648
|
+
var SegmentedLabelInner = import_styled_components21.default.div`
|
|
2649
|
+
font-size: 14px;
|
|
2650
|
+
line-height: 22px;
|
|
2651
|
+
display: flow-root;
|
|
2652
|
+
|
|
2653
|
+
&::before {
|
|
2654
|
+
display: block;
|
|
2655
|
+
width: 0;
|
|
2656
|
+
height: 0;
|
|
2657
|
+
content: '';
|
|
2658
|
+
margin-top: -4px;
|
|
2659
|
+
}
|
|
2660
|
+
&::after {
|
|
2661
|
+
display: block;
|
|
2662
|
+
width: 0;
|
|
2663
|
+
height: 0;
|
|
2664
|
+
content: '';
|
|
2665
|
+
margin-bottom: -4px;
|
|
2666
|
+
}
|
|
2316
2667
|
`;
|
|
2317
2668
|
|
|
2318
2669
|
// src/components/Checkbox/index.tsx
|
|
2319
|
-
var
|
|
2320
|
-
var
|
|
2670
|
+
var import_react25 = require("react");
|
|
2671
|
+
var import_styled_components22 = __toESM(require("styled-components"));
|
|
2321
2672
|
var import_checkbox = require("@react-aria/checkbox");
|
|
2322
|
-
var
|
|
2673
|
+
var import_utils9 = require("@react-aria/utils");
|
|
2323
2674
|
var import_react_stately3 = require("react-stately");
|
|
2324
|
-
var
|
|
2675
|
+
var import_utils10 = require("@charcoal-ui/utils");
|
|
2325
2676
|
var import_jsx_runtime27 = require("react/jsx-runtime");
|
|
2326
|
-
var Checkbox = (0,
|
|
2677
|
+
var Checkbox = (0, import_react25.forwardRef)(
|
|
2327
2678
|
function CheckboxInner({ invalid = false, ...props }, ref) {
|
|
2328
|
-
const ariaCheckboxProps = (0,
|
|
2679
|
+
const ariaCheckboxProps = (0, import_react25.useMemo)(
|
|
2329
2680
|
() => ({
|
|
2330
2681
|
...props,
|
|
2682
|
+
isInValid: invalid,
|
|
2331
2683
|
isSelected: props.checked,
|
|
2332
2684
|
defaultSelected: props.defaultChecked,
|
|
2333
2685
|
validationState: invalid ? "invalid" : "valid",
|
|
@@ -2337,38 +2689,41 @@ var Checkbox = (0, import_react24.forwardRef)(
|
|
|
2337
2689
|
[invalid, props]
|
|
2338
2690
|
);
|
|
2339
2691
|
const state = (0, import_react_stately3.useToggleState)(ariaCheckboxProps);
|
|
2340
|
-
const objectRef = (0,
|
|
2692
|
+
const objectRef = (0, import_utils9.useObjectRef)(ref);
|
|
2341
2693
|
const { inputProps } = (0, import_checkbox.useCheckbox)(ariaCheckboxProps, state, objectRef);
|
|
2342
2694
|
const isDisabled = (props.disabled ?? false) || (props.readonly ?? false);
|
|
2343
2695
|
return /* @__PURE__ */ (0, import_jsx_runtime27.jsxs)(InputRoot, { "aria-disabled": isDisabled, className: props.className, children: [
|
|
2344
2696
|
/* @__PURE__ */ (0, import_jsx_runtime27.jsxs)(CheckboxRoot, { children: [
|
|
2345
|
-
/* @__PURE__ */ (0, import_jsx_runtime27.jsx)(CheckboxInput, { type: "checkbox", ...inputProps
|
|
2697
|
+
/* @__PURE__ */ (0, import_jsx_runtime27.jsx)(CheckboxInput, { type: "checkbox", ...inputProps }),
|
|
2346
2698
|
/* @__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 }) })
|
|
2347
2699
|
] }),
|
|
2348
2700
|
"children" in props && /* @__PURE__ */ (0, import_jsx_runtime27.jsx)(InputLabel, { children: props.children })
|
|
2349
2701
|
] });
|
|
2350
2702
|
}
|
|
2351
2703
|
);
|
|
2352
|
-
var Checkbox_default = (0,
|
|
2353
|
-
var hiddenCss =
|
|
2704
|
+
var Checkbox_default = (0, import_react25.memo)(Checkbox);
|
|
2705
|
+
var hiddenCss = import_styled_components22.css`
|
|
2354
2706
|
visibility: hidden;
|
|
2355
2707
|
`;
|
|
2356
|
-
var InputRoot =
|
|
2708
|
+
var InputRoot = import_styled_components22.default.label`
|
|
2357
2709
|
position: relative;
|
|
2358
2710
|
display: flex;
|
|
2359
2711
|
|
|
2360
2712
|
cursor: pointer;
|
|
2361
|
-
${
|
|
2713
|
+
${import_utils10.disabledSelector} {
|
|
2362
2714
|
cursor: default;
|
|
2363
2715
|
}
|
|
2364
2716
|
|
|
2365
|
-
gap:
|
|
2366
|
-
|
|
2717
|
+
gap: 4px;
|
|
2718
|
+
&:disabled,
|
|
2719
|
+
&[aria-disabled]:not([aria-disabled='false']) {
|
|
2720
|
+
opacity: 0.32;
|
|
2721
|
+
}
|
|
2367
2722
|
`;
|
|
2368
|
-
var CheckboxRoot =
|
|
2723
|
+
var CheckboxRoot = import_styled_components22.default.div`
|
|
2369
2724
|
position: relative;
|
|
2370
2725
|
`;
|
|
2371
|
-
var CheckboxInput =
|
|
2726
|
+
var CheckboxInput = import_styled_components22.default.input`
|
|
2372
2727
|
&[type='checkbox'] {
|
|
2373
2728
|
appearance: none;
|
|
2374
2729
|
display: block;
|
|
@@ -2376,23 +2731,50 @@ var CheckboxInput = import_styled_components23.default.input`
|
|
|
2376
2731
|
margin: 0;
|
|
2377
2732
|
width: 20px;
|
|
2378
2733
|
height: 20px;
|
|
2734
|
+
border-radius: 4px;
|
|
2735
|
+
transition: 0.2s box-shadow, 0.2s background-color;
|
|
2379
2736
|
|
|
2380
2737
|
&:checked {
|
|
2381
|
-
|
|
2738
|
+
background-color: var(--charcoal-brand);
|
|
2739
|
+
|
|
2740
|
+
&:not(:disabled):not([aria-disabled]),
|
|
2741
|
+
&[aria-disabled='false'] {
|
|
2742
|
+
&:hover {
|
|
2743
|
+
background-color: var(--charcoal-brand-hover);
|
|
2744
|
+
}
|
|
2745
|
+
&:active {
|
|
2746
|
+
background-color: var(--charcoal-brand-press);
|
|
2747
|
+
}
|
|
2748
|
+
}
|
|
2749
|
+
}
|
|
2750
|
+
|
|
2751
|
+
&:not(:disabled):not([aria-disabled]),
|
|
2752
|
+
&[aria-disabled='false'] {
|
|
2753
|
+
&:focus,
|
|
2754
|
+
&:active {
|
|
2755
|
+
outline: none;
|
|
2756
|
+
box-shadow: 0 0 0 4px rgba(0, 150, 250, 0.32);
|
|
2757
|
+
&:not(:focus-visible) {
|
|
2758
|
+
outline: none;
|
|
2759
|
+
}
|
|
2760
|
+
}
|
|
2761
|
+
&:focus-visible {
|
|
2762
|
+
outline: none;
|
|
2763
|
+
box-shadow: 0 0 0 4px rgba(0, 150, 250, 0.32);
|
|
2764
|
+
}
|
|
2765
|
+
&[aria-invalid='true'] {
|
|
2766
|
+
box-shadow: 0 0 0 4px rgba(255, 43, 0, 0.32);
|
|
2767
|
+
}
|
|
2382
2768
|
}
|
|
2769
|
+
|
|
2383
2770
|
&:not(:checked) {
|
|
2384
2771
|
border-width: 2px;
|
|
2385
2772
|
border-style: solid;
|
|
2386
|
-
border-color:
|
|
2773
|
+
border-color: var(--charcoal-text4);
|
|
2387
2774
|
}
|
|
2388
|
-
${theme((o) => [o.outline.default.focus, o.borderRadius(4)])}
|
|
2389
|
-
${(p) => p.invalid && theme((o) => [o.outline.assertive])}
|
|
2390
|
-
|
|
2391
|
-
/* FIXME: o.outline.default.focus の transition に o.bg.brand の transition が打ち消されてしまう */
|
|
2392
|
-
transition: all 0.2s !important;
|
|
2393
2775
|
}
|
|
2394
2776
|
`;
|
|
2395
|
-
var CheckboxInputOverlay =
|
|
2777
|
+
var CheckboxInputOverlay = import_styled_components22.default.div`
|
|
2396
2778
|
position: absolute;
|
|
2397
2779
|
top: -2px;
|
|
2398
2780
|
left: -2px;
|
|
@@ -2400,31 +2782,31 @@ var CheckboxInputOverlay = import_styled_components23.default.div`
|
|
|
2400
2782
|
display: flex;
|
|
2401
2783
|
align-items: center;
|
|
2402
2784
|
justify-content: center;
|
|
2403
|
-
|
|
2404
|
-
|
|
2785
|
+
width: 24px;
|
|
2786
|
+
height: 24px;
|
|
2787
|
+
color: var(--charcoal-text5);
|
|
2405
2788
|
|
|
2406
2789
|
${({ checked }) => checked !== true && hiddenCss};
|
|
2407
2790
|
`;
|
|
2408
|
-
var InputLabel =
|
|
2409
|
-
|
|
2410
|
-
|
|
2791
|
+
var InputLabel = import_styled_components22.default.div`
|
|
2792
|
+
color: var(--charcoal-text2);
|
|
2411
2793
|
font-size: 14px;
|
|
2412
2794
|
/** checkbox の height が 20px なのでcheckbox と text が揃っているように見せるために行ボックスの高さを 20px にしている */
|
|
2413
2795
|
line-height: 20px;
|
|
2414
2796
|
`;
|
|
2415
2797
|
|
|
2416
2798
|
// src/components/TagItem/index.tsx
|
|
2417
|
-
var
|
|
2418
|
-
var
|
|
2419
|
-
var
|
|
2420
|
-
var
|
|
2799
|
+
var import_react26 = require("react");
|
|
2800
|
+
var import_utils11 = require("@react-aria/utils");
|
|
2801
|
+
var import_styled_components23 = __toESM(require("styled-components"));
|
|
2802
|
+
var import_utils12 = require("@charcoal-ui/utils");
|
|
2421
2803
|
var import_button = require("@react-aria/button");
|
|
2422
2804
|
var import_jsx_runtime28 = require("react/jsx-runtime");
|
|
2423
2805
|
var sizeMap = {
|
|
2424
2806
|
S: 32,
|
|
2425
2807
|
M: 40
|
|
2426
2808
|
};
|
|
2427
|
-
var TagItem = (0,
|
|
2809
|
+
var TagItem = (0, import_react26.forwardRef)(
|
|
2428
2810
|
function TagItemInner({
|
|
2429
2811
|
label,
|
|
2430
2812
|
translatedLabel,
|
|
@@ -2436,8 +2818,8 @@ var TagItem = (0, import_react25.forwardRef)(
|
|
|
2436
2818
|
className,
|
|
2437
2819
|
...props
|
|
2438
2820
|
}, _ref) {
|
|
2439
|
-
const ref = (0,
|
|
2440
|
-
const ariaButtonProps = (0,
|
|
2821
|
+
const ref = (0, import_utils11.useObjectRef)(_ref);
|
|
2822
|
+
const ariaButtonProps = (0, import_react26.useMemo)(
|
|
2441
2823
|
() => ({
|
|
2442
2824
|
elementType: "a",
|
|
2443
2825
|
isDisabled: disabled,
|
|
@@ -2469,8 +2851,21 @@ var TagItem = (0, import_react25.forwardRef)(
|
|
|
2469
2851
|
);
|
|
2470
2852
|
}
|
|
2471
2853
|
);
|
|
2472
|
-
var TagItem_default = (0,
|
|
2473
|
-
var
|
|
2854
|
+
var TagItem_default = (0, import_react26.memo)(TagItem);
|
|
2855
|
+
var horizontalPadding = ({ left, right }) => import_styled_components23.css`
|
|
2856
|
+
padding-right: ${(0, import_utils12.px)(right)};
|
|
2857
|
+
padding-left: ${(0, import_utils12.px)(left)};
|
|
2858
|
+
`;
|
|
2859
|
+
var tagItemRootSize = (size) => {
|
|
2860
|
+
switch (size) {
|
|
2861
|
+
case "M":
|
|
2862
|
+
return horizontalPadding({ left: 24, right: 24 });
|
|
2863
|
+
case "S":
|
|
2864
|
+
return horizontalPadding({ left: 16, right: 16 });
|
|
2865
|
+
}
|
|
2866
|
+
};
|
|
2867
|
+
var activeTagItemRoot = horizontalPadding({ left: 16, right: 8 });
|
|
2868
|
+
var TagItemRoot = import_styled_components23.default.a`
|
|
2474
2869
|
isolation: isolate;
|
|
2475
2870
|
position: relative;
|
|
2476
2871
|
height: ${({ size }) => sizeMap[size]}px;
|
|
@@ -2480,22 +2875,30 @@ var TagItemRoot = import_styled_components24.default.a`
|
|
|
2480
2875
|
text-decoration: none;
|
|
2481
2876
|
cursor: pointer;
|
|
2482
2877
|
overflow: hidden;
|
|
2878
|
+
border-radius: 4px;
|
|
2879
|
+
${({ size, status }) => status !== "active" && tagItemRootSize(size)}
|
|
2880
|
+
${({ status }) => status === "active" && activeTagItemRoot}
|
|
2881
|
+
color: ${({ status }) => status === "inactive" ? "var(--charcoal-text2)" : "var(--charcoal-text5)"};
|
|
2882
|
+
|
|
2883
|
+
transition: 0.2s box-shadow;
|
|
2884
|
+
|
|
2885
|
+
&:not(:disabled):not([aria-disabled]),
|
|
2886
|
+
&[aria-disabled='false'] {
|
|
2887
|
+
&:focus,
|
|
2888
|
+
&:active,
|
|
2889
|
+
&:focus-visible {
|
|
2890
|
+
outline: none;
|
|
2891
|
+
box-shadow: 0 0 0 4px rgba(0, 150, 250, 0.32);
|
|
2892
|
+
}
|
|
2893
|
+
}
|
|
2483
2894
|
|
|
2484
|
-
|
|
2485
|
-
|
|
2486
|
-
|
|
2487
|
-
status !== "active" && size === "M" && o.padding.horizontal(24),
|
|
2488
|
-
status !== "active" && size === "S" && o.padding.horizontal(16),
|
|
2489
|
-
status === "inactive" ? o.font.text2 : o.font.text5,
|
|
2490
|
-
...status === "active" ? [o.padding.left(16), o.padding.right(8)] : []
|
|
2491
|
-
])}
|
|
2492
|
-
|
|
2493
|
-
${import_utils15.disabledSelector} {
|
|
2494
|
-
${theme((o) => [o.disabled])}
|
|
2895
|
+
&:disabled,
|
|
2896
|
+
&[aria-disabled]:not([aria-disabled='false']) {
|
|
2897
|
+
opacity: 0.32;
|
|
2495
2898
|
cursor: default;
|
|
2496
2899
|
}
|
|
2497
2900
|
`;
|
|
2498
|
-
var Background =
|
|
2901
|
+
var Background = import_styled_components23.default.div`
|
|
2499
2902
|
position: absolute;
|
|
2500
2903
|
z-index: 1;
|
|
2501
2904
|
top: 0;
|
|
@@ -2504,10 +2907,13 @@ var Background = import_styled_components24.default.div`
|
|
|
2504
2907
|
height: 100%;
|
|
2505
2908
|
|
|
2506
2909
|
background-color: ${({ bgColor }) => bgColor};
|
|
2507
|
-
${({ status }) => status === "inactive" &&
|
|
2910
|
+
${({ status }) => status === "inactive" && import_styled_components23.css`
|
|
2911
|
+
background-color: var(--charcoal-surface3);
|
|
2912
|
+
`}
|
|
2913
|
+
|
|
2914
|
+
${({ bgImage }) => bgImage !== void 0 && import_styled_components23.css`
|
|
2915
|
+
background-color: var(--charcoal-surface4);
|
|
2508
2916
|
|
|
2509
|
-
${({ bgImage }) => bgImage !== void 0 && import_styled_components24.css`
|
|
2510
|
-
${theme((o) => [o.bg.surface4])}
|
|
2511
2917
|
&::before {
|
|
2512
2918
|
content: '';
|
|
2513
2919
|
position: absolute;
|
|
@@ -2522,25 +2928,43 @@ var Background = import_styled_components24.default.div`
|
|
|
2522
2928
|
}
|
|
2523
2929
|
`}
|
|
2524
2930
|
`;
|
|
2525
|
-
var Inner =
|
|
2931
|
+
var Inner = import_styled_components23.default.div`
|
|
2526
2932
|
display: inline-flex;
|
|
2527
|
-
gap:
|
|
2933
|
+
gap: 8px;
|
|
2528
2934
|
align-items: center;
|
|
2529
2935
|
z-index: 2;
|
|
2530
2936
|
`;
|
|
2531
|
-
var labelCSS =
|
|
2532
|
-
|
|
2937
|
+
var labelCSS = import_styled_components23.css`
|
|
2938
|
+
font-size: 14px;
|
|
2939
|
+
line-height: 22px;
|
|
2940
|
+
font-weight: bold;
|
|
2941
|
+
display: flow-root;
|
|
2942
|
+
|
|
2943
|
+
&::before {
|
|
2944
|
+
display: block;
|
|
2945
|
+
width: 0;
|
|
2946
|
+
height: 0;
|
|
2947
|
+
content: '';
|
|
2948
|
+
margin-top: -4px;
|
|
2949
|
+
}
|
|
2950
|
+
&::after {
|
|
2951
|
+
display: block;
|
|
2952
|
+
width: 0;
|
|
2953
|
+
height: 0;
|
|
2954
|
+
content: '';
|
|
2955
|
+
margin-bottom: -4px;
|
|
2956
|
+
}
|
|
2533
2957
|
`;
|
|
2534
|
-
var translateLabelCSS =
|
|
2958
|
+
var translateLabelCSS = import_styled_components23.css`
|
|
2535
2959
|
display: flex;
|
|
2536
2960
|
align-items: center;
|
|
2537
2961
|
flex-direction: column;
|
|
2538
2962
|
font-size: 10px;
|
|
2539
2963
|
`;
|
|
2540
|
-
var LabelWrapper =
|
|
2964
|
+
var LabelWrapper = import_styled_components23.default.div`
|
|
2541
2965
|
${({ isTranslate }) => isTranslate ?? false ? translateLabelCSS : labelCSS}
|
|
2542
2966
|
`;
|
|
2543
|
-
var Label3 =
|
|
2967
|
+
var Label3 = import_styled_components23.default.span`
|
|
2544
2968
|
max-width: 152px;
|
|
2545
2969
|
overflow: hidden;
|
|
2546
2970
|
text-overflow: ellipsis;
|
|
@@ -2549,8 +2973,25 @@ var Label3 = import_styled_components24.default.span`
|
|
|
2549
2973
|
color: inherit;
|
|
2550
2974
|
line-height: inherit;
|
|
2551
2975
|
`;
|
|
2552
|
-
var TranslatedLabel =
|
|
2553
|
-
|
|
2976
|
+
var TranslatedLabel = import_styled_components23.default.div`
|
|
2977
|
+
font-size: 12px;
|
|
2978
|
+
line-height: 20px;
|
|
2979
|
+
font-weight: bold;
|
|
2980
|
+
display: flow-root;
|
|
2981
|
+
&::before {
|
|
2982
|
+
display: block;
|
|
2983
|
+
width: 0;
|
|
2984
|
+
height: 0;
|
|
2985
|
+
content: '';
|
|
2986
|
+
margin-top: -4px;
|
|
2987
|
+
}
|
|
2988
|
+
&::after {
|
|
2989
|
+
display: block;
|
|
2990
|
+
width: 0;
|
|
2991
|
+
height: 0;
|
|
2992
|
+
content: '';
|
|
2993
|
+
margin-bottom: -4px;
|
|
2994
|
+
}
|
|
2554
2995
|
`;
|
|
2555
2996
|
// Annotate the CommonJS export names for ESM import in node:
|
|
2556
2997
|
0 && (module.exports = {
|