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