@charcoal-ui/react 3.0.0-beta.2 → 3.0.0-beta.3
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/_lib/compat.d.ts +1 -1
- package/dist/_lib/compat.d.ts.map +1 -1
- package/dist/components/Button/index.d.ts +1 -2
- package/dist/components/Button/index.d.ts.map +1 -1
- package/dist/components/Button/index.story.d.ts +1 -2
- package/dist/components/Button/index.story.d.ts.map +1 -1
- 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 -1
- package/dist/components/Checkbox/index.d.ts.map +1 -1
- package/dist/components/Checkbox/index.story.d.ts +1 -2
- package/dist/components/Checkbox/index.story.d.ts.map +1 -1
- package/dist/components/Clickable/index.d.ts +1 -1
- package/dist/components/Clickable/index.d.ts.map +1 -1
- package/dist/components/Clickable/index.story.d.ts +1 -2
- package/dist/components/Clickable/index.story.d.ts.map +1 -1
- package/dist/components/DropdownSelector/Divider.d.ts +3 -0
- package/dist/components/DropdownSelector/Divider.d.ts.map +1 -1
- package/dist/components/DropdownSelector/DropdownMenuItem.d.ts +7 -0
- package/dist/components/DropdownSelector/DropdownMenuItem.d.ts.map +1 -0
- package/dist/components/DropdownSelector/DropdownPopover.d.ts +8 -8
- package/dist/components/DropdownSelector/DropdownPopover.d.ts.map +1 -1
- package/dist/components/DropdownSelector/ListItem/index.d.ts +18 -0
- package/dist/components/DropdownSelector/ListItem/index.d.ts.map +1 -0
- package/dist/components/DropdownSelector/ListItem/index.story.d.ts +9 -0
- package/dist/components/DropdownSelector/ListItem/index.story.d.ts.map +1 -0
- package/dist/components/DropdownSelector/MenuItem/index.d.ts +11 -0
- package/dist/components/DropdownSelector/MenuItem/index.d.ts.map +1 -0
- package/dist/components/DropdownSelector/MenuItem/internals/handleFocusByKeyBoard.d.ts +9 -0
- package/dist/components/DropdownSelector/MenuItem/internals/handleFocusByKeyBoard.d.ts.map +1 -0
- package/dist/components/DropdownSelector/MenuItem/internals/useMenuItemHandleKeyDown.d.ts +10 -0
- package/dist/components/DropdownSelector/MenuItem/internals/useMenuItemHandleKeyDown.d.ts.map +1 -0
- package/dist/components/DropdownSelector/MenuItemGroup/index.d.ts +14 -0
- package/dist/components/DropdownSelector/MenuItemGroup/index.d.ts.map +1 -0
- package/dist/components/DropdownSelector/MenuList/MenuListContext.d.ts +10 -0
- package/dist/components/DropdownSelector/MenuList/MenuListContext.d.ts.map +1 -0
- package/dist/components/DropdownSelector/MenuList/index.d.ts +18 -0
- package/dist/components/DropdownSelector/MenuList/index.d.ts.map +1 -0
- package/dist/components/DropdownSelector/MenuList/index.story.d.ts +11 -0
- package/dist/components/DropdownSelector/MenuList/index.story.d.ts.map +1 -0
- package/dist/components/DropdownSelector/MenuList/internals/getValuesRecursive.d.ts +11 -0
- package/dist/components/DropdownSelector/MenuList/internals/getValuesRecursive.d.ts.map +1 -0
- package/dist/components/DropdownSelector/Popover/index.d.ts +17 -0
- package/dist/components/DropdownSelector/Popover/index.d.ts.map +1 -0
- package/dist/components/DropdownSelector/Popover/index.story.d.ts +9 -0
- package/dist/components/DropdownSelector/Popover/index.story.d.ts.map +1 -0
- package/dist/components/DropdownSelector/index.d.ts +3 -10
- package/dist/components/DropdownSelector/index.d.ts.map +1 -1
- package/dist/components/DropdownSelector/index.story.d.ts +4 -4
- package/dist/components/DropdownSelector/index.story.d.ts.map +1 -1
- package/dist/components/DropdownSelector/utils/findPreviewRecursive.d.ts +12 -0
- package/dist/components/DropdownSelector/utils/findPreviewRecursive.d.ts.map +1 -0
- package/dist/components/FieldLabel/index.d.ts +1 -1
- package/dist/components/FieldLabel/index.d.ts.map +1 -1
- package/dist/components/Icon/index.d.ts +1 -1
- package/dist/components/Icon/index.d.ts.map +1 -1
- package/dist/components/Icon/index.story.d.ts +2 -3
- package/dist/components/Icon/index.story.d.ts.map +1 -1
- package/dist/components/IconButton/index.d.ts +1 -2
- package/dist/components/IconButton/index.d.ts.map +1 -1
- package/dist/components/IconButton/index.story.d.ts +1 -2
- package/dist/components/IconButton/index.story.d.ts.map +1 -1
- package/dist/components/LoadingSpinner/index.d.ts +1 -2
- 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 +1 -1
- package/dist/components/Modal/index.d.ts.map +1 -1
- package/dist/components/Modal/index.story.d.ts.map +1 -1
- package/dist/components/MultiSelect/context.d.ts +1 -1
- package/dist/components/MultiSelect/context.d.ts.map +1 -1
- package/dist/components/MultiSelect/index.d.ts +5 -6
- package/dist/components/MultiSelect/index.d.ts.map +1 -1
- package/dist/components/MultiSelect/index.story.d.ts +7 -14
- package/dist/components/MultiSelect/index.story.d.ts.map +1 -1
- package/dist/components/Radio/index.d.ts +1 -1
- package/dist/components/Radio/index.d.ts.map +1 -1
- package/dist/components/Radio/index.story.d.ts +1 -2
- package/dist/components/Radio/index.story.d.ts.map +1 -1
- package/dist/components/SegmentedControl/RadioGroupContext.d.ts +1 -1
- package/dist/components/SegmentedControl/RadioGroupContext.d.ts.map +1 -1
- package/dist/components/SegmentedControl/index.d.ts +1 -1
- package/dist/components/SegmentedControl/index.d.ts.map +1 -1
- package/dist/components/SegmentedControl/index.story.d.ts +1 -2
- package/dist/components/SegmentedControl/index.story.d.ts.map +1 -1
- package/dist/components/Switch/index.d.ts +1 -1
- package/dist/components/Switch/index.d.ts.map +1 -1
- package/dist/components/TagItem/index.d.ts +3 -3
- package/dist/components/TagItem/index.d.ts.map +1 -1
- package/dist/components/TagItem/index.story.d.ts +2 -3
- package/dist/components/TagItem/index.story.d.ts.map +1 -1
- package/dist/components/TextArea/TextArea.story.d.ts +28 -0
- package/dist/components/TextArea/TextArea.story.d.ts.map +1 -0
- package/dist/components/TextArea/index.d.ts +28 -0
- package/dist/components/TextArea/index.d.ts.map +1 -0
- package/dist/components/TextField/TextField.story.d.ts +29 -0
- package/dist/components/TextField/TextField.story.d.ts.map +1 -0
- package/dist/components/TextField/index.d.ts +2 -1
- package/dist/components/TextField/index.d.ts.map +1 -1
- package/dist/components/TextField/index.story.d.ts +4 -5
- package/dist/components/TextField/index.story.d.ts.map +1 -1
- package/dist/core/CharcoalProvider.d.ts +1 -1
- package/dist/core/CharcoalProvider.d.ts.map +1 -1
- package/dist/core/ComponentAbstraction.d.ts +1 -1
- package/dist/core/ComponentAbstraction.d.ts.map +1 -1
- package/dist/index.cjs.js +744 -493
- package/dist/index.cjs.js.map +1 -1
- package/dist/index.d.ts +3 -2
- package/dist/index.d.ts.map +1 -1
- package/dist/index.esm.js +689 -452
- package/dist/index.esm.js.map +1 -1
- package/dist/styled.d.ts +13 -13
- package/dist/types/CustomJSXElement.d.ts +3 -0
- package/dist/types/CustomJSXElement.d.ts.map +1 -0
- package/package.json +7 -7
- package/src/_lib/compat.ts +1 -1
- package/src/components/Button/__snapshots__/index.test.tsx.snap +385 -0
- package/src/components/Button/index.story.tsx +1 -1
- package/src/components/Button/index.test.tsx +24 -0
- package/src/components/Button/index.tsx +2 -2
- package/src/components/Checkbox/index.story.tsx +0 -1
- package/src/components/Checkbox/index.tsx +2 -1
- package/src/components/Clickable/index.story.tsx +0 -1
- package/src/components/Clickable/index.tsx +1 -1
- package/src/components/DropdownSelector/Divider.tsx +3 -0
- package/src/components/DropdownSelector/DropdownMenuItem.tsx +40 -0
- package/src/components/DropdownSelector/DropdownPopover.tsx +21 -42
- package/src/components/DropdownSelector/ListItem/index.story.tsx +51 -0
- package/src/components/DropdownSelector/ListItem/index.tsx +58 -0
- package/src/components/DropdownSelector/MenuItem/index.tsx +32 -0
- package/src/components/DropdownSelector/MenuItem/internals/handleFocusByKeyBoard.tsx +43 -0
- package/src/components/DropdownSelector/MenuItem/internals/useMenuItemHandleKeyDown.tsx +55 -0
- package/src/components/DropdownSelector/MenuItemGroup/index.tsx +43 -0
- package/src/components/DropdownSelector/MenuList/MenuListContext.ts +17 -0
- package/src/components/DropdownSelector/MenuList/index.story.tsx +52 -0
- package/src/components/DropdownSelector/MenuList/index.tsx +51 -0
- package/src/components/DropdownSelector/MenuList/internals/getValuesRecursive.tsx +35 -0
- package/src/components/DropdownSelector/Popover/index.story.tsx +65 -0
- package/src/components/DropdownSelector/Popover/index.tsx +69 -0
- package/src/components/DropdownSelector/index.story.tsx +56 -21
- package/src/components/DropdownSelector/index.tsx +21 -64
- package/src/components/DropdownSelector/utils/findPreviewRecursive.tsx +38 -0
- package/src/components/FieldLabel/index.tsx +1 -1
- package/src/components/Icon/index.story.tsx +0 -1
- package/src/components/Icon/index.tsx +1 -1
- package/src/components/IconButton/index.story.tsx +0 -1
- package/src/components/IconButton/index.tsx +2 -2
- package/src/components/LoadingSpinner/index.story.tsx +1 -1
- package/src/components/LoadingSpinner/index.tsx +18 -19
- package/src/components/Modal/ModalPlumbing.tsx +0 -1
- package/src/components/Modal/index.story.tsx +0 -1
- package/src/components/Modal/index.tsx +2 -1
- package/src/components/MultiSelect/context.ts +2 -2
- package/src/components/MultiSelect/index.story.tsx +16 -29
- package/src/components/MultiSelect/index.test.tsx +5 -23
- package/src/components/MultiSelect/index.tsx +19 -24
- package/src/components/Radio/index.story.tsx +0 -1
- package/src/components/Radio/index.test.tsx +0 -1
- package/src/components/Radio/index.tsx +2 -1
- package/src/components/SegmentedControl/RadioGroupContext.tsx +2 -1
- package/src/components/SegmentedControl/index.story.tsx +0 -1
- package/src/components/SegmentedControl/index.tsx +10 -4
- package/src/components/Switch/index.story.tsx +1 -1
- package/src/components/Switch/index.tsx +2 -1
- package/src/components/TagItem/index.story.tsx +0 -1
- package/src/components/TagItem/index.tsx +1 -6
- package/src/components/TextField/index.story.tsx +0 -1
- package/src/components/TextField/index.tsx +2 -7
- package/src/components/a11y.test.tsx +0 -1
- package/src/core/CharcoalProvider.tsx +1 -1
- package/src/core/ComponentAbstraction.tsx +2 -1
- package/src/index.ts +7 -4
- package/src/components/DropdownSelector/OptionItem.tsx +0 -85
- package/src/components/DropdownSelector/utils/focusIfHTMLLIElement.tsx +0 -12
- package/src/components/DropdownSelector/utils/handleFocusByKeyBoard.tsx +0 -20
package/dist/index.cjs.js
CHANGED
|
@@ -31,11 +31,13 @@ __export(src_exports, {
|
|
|
31
31
|
Checkbox: () => Checkbox_default,
|
|
32
32
|
Clickable: () => Clickable_default,
|
|
33
33
|
ComponentAbstraction: () => ComponentAbstraction,
|
|
34
|
+
DropdownMenuItem: () => DropdownMenuItem,
|
|
34
35
|
DropdownSelector: () => DropdownSelector,
|
|
35
36
|
Icon: () => Icon_default,
|
|
36
37
|
IconButton: () => IconButton_default,
|
|
37
38
|
LoadingSpinner: () => LoadingSpinner,
|
|
38
39
|
LoadingSpinnerIcon: () => LoadingSpinnerIcon,
|
|
40
|
+
MenuItemGroup: () => MenuItemGroup,
|
|
39
41
|
Modal: () => Modal,
|
|
40
42
|
ModalAlign: () => ModalAlign,
|
|
41
43
|
ModalBody: () => ModalBody,
|
|
@@ -43,7 +45,6 @@ __export(src_exports, {
|
|
|
43
45
|
ModalHeader: () => ModalHeader,
|
|
44
46
|
MultiSelect: () => MultiSelect,
|
|
45
47
|
MultiSelectGroup: () => MultiSelectGroup,
|
|
46
|
-
OptionItem: () => OptionItem,
|
|
47
48
|
OverlayProvider: () => import_overlays.OverlayProvider,
|
|
48
49
|
Radio: () => Radio,
|
|
49
50
|
RadioGroup: () => RadioGroup,
|
|
@@ -57,23 +58,25 @@ __export(src_exports, {
|
|
|
57
58
|
module.exports = __toCommonJS(src_exports);
|
|
58
59
|
|
|
59
60
|
// src/core/ComponentAbstraction.tsx
|
|
60
|
-
var import_react =
|
|
61
|
-
var
|
|
61
|
+
var import_react = require("react");
|
|
62
|
+
var React = __toESM(require("react"));
|
|
63
|
+
var import_jsx_runtime = require("react/jsx-runtime");
|
|
64
|
+
var DefaultLink = React.forwardRef(
|
|
62
65
|
function DefaultLink2({ to, children, ...rest }, ref) {
|
|
63
|
-
return /* @__PURE__ */
|
|
66
|
+
return /* @__PURE__ */ (0, import_jsx_runtime.jsx)("a", { href: to, ref, ...rest, children });
|
|
64
67
|
}
|
|
65
68
|
);
|
|
66
69
|
var DefaultValue = {
|
|
67
70
|
Link: DefaultLink
|
|
68
71
|
};
|
|
69
|
-
var ComponentAbstractionContext =
|
|
72
|
+
var ComponentAbstractionContext = React.createContext(DefaultValue);
|
|
70
73
|
function ComponentAbstraction({ children, components }) {
|
|
71
|
-
return /* @__PURE__ */
|
|
74
|
+
return /* @__PURE__ */ (0, import_jsx_runtime.jsx)(
|
|
72
75
|
ComponentAbstractionContext.Provider,
|
|
73
76
|
{
|
|
74
|
-
value: { ...DefaultValue, ...components }
|
|
75
|
-
|
|
76
|
-
|
|
77
|
+
value: { ...DefaultValue, ...components },
|
|
78
|
+
children
|
|
79
|
+
}
|
|
77
80
|
);
|
|
78
81
|
}
|
|
79
82
|
function useComponentAbstraction() {
|
|
@@ -87,9 +90,9 @@ var import_ssr = require("@react-aria/ssr");
|
|
|
87
90
|
var import_overlays = require("@react-aria/overlays");
|
|
88
91
|
|
|
89
92
|
// src/core/CharcoalProvider.tsx
|
|
90
|
-
var import_react2 = __toESM(require("react"));
|
|
91
93
|
var import_styled_components = require("styled-components");
|
|
92
94
|
var import_styled = require("@charcoal-ui/styled");
|
|
95
|
+
var import_jsx_runtime2 = require("react/jsx-runtime");
|
|
93
96
|
function CharcoalProvider({
|
|
94
97
|
themeMap,
|
|
95
98
|
defaultTheme = themeMap[":root"],
|
|
@@ -97,11 +100,14 @@ function CharcoalProvider({
|
|
|
97
100
|
injectTokens = true,
|
|
98
101
|
children
|
|
99
102
|
}) {
|
|
100
|
-
return /* @__PURE__ */
|
|
103
|
+
return /* @__PURE__ */ (0, import_jsx_runtime2.jsx)(import_ssr.SSRProvider, { children: /* @__PURE__ */ (0, import_jsx_runtime2.jsxs)(import_styled_components.ThemeProvider, { theme: defaultTheme, children: [
|
|
104
|
+
injectTokens && /* @__PURE__ */ (0, import_jsx_runtime2.jsx)(import_styled.TokenInjector, { theme: themeMap }),
|
|
105
|
+
/* @__PURE__ */ (0, import_jsx_runtime2.jsx)(ComponentAbstraction, { components, children: /* @__PURE__ */ (0, import_jsx_runtime2.jsx)(import_overlays.OverlayProvider, { children }) })
|
|
106
|
+
] }) });
|
|
101
107
|
}
|
|
102
108
|
|
|
103
109
|
// src/components/Button/index.tsx
|
|
104
|
-
var
|
|
110
|
+
var import_react2 = require("react");
|
|
105
111
|
var import_styled_components4 = __toESM(require("styled-components"));
|
|
106
112
|
|
|
107
113
|
// src/_lib/index.ts
|
|
@@ -117,15 +123,16 @@ var import_styled2 = require("@charcoal-ui/styled");
|
|
|
117
123
|
var theme = (0, import_styled2.createTheme)(import_styled_components2.default);
|
|
118
124
|
|
|
119
125
|
// src/components/Clickable/index.tsx
|
|
120
|
-
var
|
|
126
|
+
var React2 = __toESM(require("react"));
|
|
121
127
|
var import_styled_components3 = __toESM(require("styled-components"));
|
|
122
128
|
var import_utils = require("@charcoal-ui/utils");
|
|
123
|
-
var
|
|
129
|
+
var import_jsx_runtime3 = require("react/jsx-runtime");
|
|
130
|
+
var Clickable = React2.forwardRef(
|
|
124
131
|
function Clickable2(props, ref) {
|
|
125
132
|
const { Link } = useComponentAbstraction();
|
|
126
133
|
if ("to" in props) {
|
|
127
134
|
const { onClick, disabled = false, ...rest } = props;
|
|
128
|
-
return /* @__PURE__ */
|
|
135
|
+
return /* @__PURE__ */ (0, import_jsx_runtime3.jsx)(
|
|
129
136
|
A,
|
|
130
137
|
{
|
|
131
138
|
...rest,
|
|
@@ -136,7 +143,7 @@ var Clickable = import_react3.default.forwardRef(
|
|
|
136
143
|
}
|
|
137
144
|
);
|
|
138
145
|
} else {
|
|
139
|
-
return /* @__PURE__ */
|
|
146
|
+
return /* @__PURE__ */ (0, import_jsx_runtime3.jsx)(Button, { ...props, ref });
|
|
140
147
|
}
|
|
141
148
|
}
|
|
142
149
|
);
|
|
@@ -201,7 +208,8 @@ var A = import_styled_components3.default.span`
|
|
|
201
208
|
`;
|
|
202
209
|
|
|
203
210
|
// src/components/Button/index.tsx
|
|
204
|
-
var
|
|
211
|
+
var import_jsx_runtime4 = require("react/jsx-runtime");
|
|
212
|
+
var Button2 = (0, import_react2.forwardRef)(function Button3({
|
|
205
213
|
children,
|
|
206
214
|
variant = "Default",
|
|
207
215
|
size = "M",
|
|
@@ -209,7 +217,7 @@ var Button2 = import_react4.default.forwardRef(function Button3({
|
|
|
209
217
|
disabled = false,
|
|
210
218
|
...rest
|
|
211
219
|
}, ref) {
|
|
212
|
-
return /* @__PURE__ */
|
|
220
|
+
return /* @__PURE__ */ (0, import_jsx_runtime4.jsx)(
|
|
213
221
|
StyledButton,
|
|
214
222
|
{
|
|
215
223
|
...rest,
|
|
@@ -217,9 +225,9 @@ var Button2 = import_react4.default.forwardRef(function Button3({
|
|
|
217
225
|
variant,
|
|
218
226
|
size,
|
|
219
227
|
fullWidth: fixed,
|
|
220
|
-
ref
|
|
221
|
-
|
|
222
|
-
|
|
228
|
+
ref,
|
|
229
|
+
children
|
|
230
|
+
}
|
|
223
231
|
);
|
|
224
232
|
});
|
|
225
233
|
var Button_default = Button2;
|
|
@@ -288,12 +296,13 @@ function sizeToProps(size) {
|
|
|
288
296
|
}
|
|
289
297
|
|
|
290
298
|
// src/components/IconButton/index.tsx
|
|
291
|
-
var
|
|
299
|
+
var import_react3 = require("react");
|
|
292
300
|
var import_styled_components5 = __toESM(require("styled-components"));
|
|
293
|
-
var
|
|
301
|
+
var import_jsx_runtime5 = require("react/jsx-runtime");
|
|
302
|
+
var IconButton = (0, import_react3.forwardRef)(
|
|
294
303
|
function IconButtonInner({ variant = "Default", size = "M", icon, ...rest }, ref) {
|
|
295
304
|
validateIconSize(size, icon);
|
|
296
|
-
return /* @__PURE__ */
|
|
305
|
+
return /* @__PURE__ */ (0, import_jsx_runtime5.jsx)(StyledIconButton, { ...rest, ref, variant, size, children: /* @__PURE__ */ (0, import_jsx_runtime5.jsx)("pixiv-icon", { name: icon }) });
|
|
297
306
|
}
|
|
298
307
|
);
|
|
299
308
|
var IconButton_default = IconButton;
|
|
@@ -372,10 +381,12 @@ function validateIconSize(size, icon) {
|
|
|
372
381
|
}
|
|
373
382
|
|
|
374
383
|
// src/components/Radio/index.tsx
|
|
375
|
-
var
|
|
384
|
+
var import_react4 = require("react");
|
|
385
|
+
var React3 = __toESM(require("react"));
|
|
376
386
|
var import_styled_components6 = __toESM(require("styled-components"));
|
|
377
387
|
var import_warning = __toESM(require("warning"));
|
|
378
388
|
var import_utils2 = require("@charcoal-ui/utils");
|
|
389
|
+
var import_jsx_runtime6 = require("react/jsx-runtime");
|
|
379
390
|
function Radio({
|
|
380
391
|
value,
|
|
381
392
|
forceChecked = false,
|
|
@@ -389,7 +400,7 @@ function Radio({
|
|
|
389
400
|
readonly,
|
|
390
401
|
hasError,
|
|
391
402
|
onChange
|
|
392
|
-
} = (0,
|
|
403
|
+
} = (0, import_react4.useContext)(RadioGroupContext);
|
|
393
404
|
(0, import_warning.default)(
|
|
394
405
|
name !== void 0,
|
|
395
406
|
`"name" is not Provided for <Radio>. Perhaps you forgot to wrap with <RadioGroup> ?`
|
|
@@ -397,23 +408,26 @@ function Radio({
|
|
|
397
408
|
const isSelected = value === selected;
|
|
398
409
|
const isDisabled = disabled || isParentDisabled;
|
|
399
410
|
const isReadonly = readonly && !isSelected;
|
|
400
|
-
const handleChange = (0,
|
|
411
|
+
const handleChange = (0, import_react4.useCallback)(
|
|
401
412
|
(e) => {
|
|
402
413
|
onChange(e.currentTarget.value);
|
|
403
414
|
},
|
|
404
415
|
[onChange]
|
|
405
416
|
);
|
|
406
|
-
return /* @__PURE__ */
|
|
407
|
-
|
|
408
|
-
|
|
409
|
-
|
|
410
|
-
|
|
411
|
-
|
|
412
|
-
|
|
413
|
-
|
|
414
|
-
|
|
415
|
-
|
|
416
|
-
|
|
417
|
+
return /* @__PURE__ */ (0, import_jsx_runtime6.jsxs)(RadioRoot, { "aria-disabled": isDisabled || isReadonly, children: [
|
|
418
|
+
/* @__PURE__ */ (0, import_jsx_runtime6.jsx)(
|
|
419
|
+
RadioInput,
|
|
420
|
+
{
|
|
421
|
+
name,
|
|
422
|
+
value,
|
|
423
|
+
checked: forceChecked || isSelected,
|
|
424
|
+
hasError,
|
|
425
|
+
onChange: handleChange,
|
|
426
|
+
disabled: isDisabled || isReadonly
|
|
427
|
+
}
|
|
428
|
+
),
|
|
429
|
+
children != null && /* @__PURE__ */ (0, import_jsx_runtime6.jsx)(RadioLabel, { children })
|
|
430
|
+
] });
|
|
417
431
|
}
|
|
418
432
|
var RadioRoot = import_styled_components6.default.label`
|
|
419
433
|
display: grid;
|
|
@@ -479,7 +493,7 @@ var StyledRadioGroup = import_styled_components6.default.div`
|
|
|
479
493
|
grid-template-columns: 1fr;
|
|
480
494
|
grid-gap: ${({ theme: theme4 }) => (0, import_utils2.px)(theme4.spacing[8])};
|
|
481
495
|
`;
|
|
482
|
-
var RadioGroupContext =
|
|
496
|
+
var RadioGroupContext = React3.createContext({
|
|
483
497
|
name: void 0,
|
|
484
498
|
selected: void 0,
|
|
485
499
|
disabled: false,
|
|
@@ -502,13 +516,13 @@ function RadioGroup({
|
|
|
502
516
|
hasError,
|
|
503
517
|
children
|
|
504
518
|
}) {
|
|
505
|
-
const handleChange = (0,
|
|
519
|
+
const handleChange = (0, import_react4.useCallback)(
|
|
506
520
|
(next) => {
|
|
507
521
|
onChange(next);
|
|
508
522
|
},
|
|
509
523
|
[onChange]
|
|
510
524
|
);
|
|
511
|
-
return /* @__PURE__ */
|
|
525
|
+
return /* @__PURE__ */ (0, import_jsx_runtime6.jsx)(
|
|
512
526
|
RadioGroupContext.Provider,
|
|
513
527
|
{
|
|
514
528
|
value: {
|
|
@@ -518,36 +532,36 @@ function RadioGroup({
|
|
|
518
532
|
readonly: readonly ?? false,
|
|
519
533
|
hasError: hasError ?? false,
|
|
520
534
|
onChange: handleChange
|
|
521
|
-
}
|
|
522
|
-
},
|
|
523
|
-
/* @__PURE__ */ import_react6.default.createElement(
|
|
524
|
-
StyledRadioGroup,
|
|
525
|
-
{
|
|
526
|
-
role: "radiogroup",
|
|
527
|
-
"aria-orientation": "vertical",
|
|
528
|
-
"aria-label": label,
|
|
529
|
-
"aria-invalid": hasError,
|
|
530
|
-
className
|
|
531
535
|
},
|
|
532
|
-
children
|
|
533
|
-
|
|
536
|
+
children: /* @__PURE__ */ (0, import_jsx_runtime6.jsx)(
|
|
537
|
+
StyledRadioGroup,
|
|
538
|
+
{
|
|
539
|
+
role: "radiogroup",
|
|
540
|
+
"aria-orientation": "vertical",
|
|
541
|
+
"aria-label": label,
|
|
542
|
+
"aria-invalid": hasError,
|
|
543
|
+
className,
|
|
544
|
+
children
|
|
545
|
+
}
|
|
546
|
+
)
|
|
547
|
+
}
|
|
534
548
|
);
|
|
535
549
|
}
|
|
536
550
|
|
|
537
551
|
// src/components/MultiSelect/index.tsx
|
|
538
|
-
var
|
|
552
|
+
var import_react6 = require("react");
|
|
539
553
|
var import_styled_components7 = __toESM(require("styled-components"));
|
|
540
554
|
var import_warning2 = __toESM(require("warning"));
|
|
541
555
|
var import_utils3 = require("@charcoal-ui/utils");
|
|
542
556
|
|
|
543
557
|
// src/components/MultiSelect/context.ts
|
|
544
|
-
var
|
|
545
|
-
var MultiSelectGroupContext = (0,
|
|
558
|
+
var import_react5 = require("react");
|
|
559
|
+
var MultiSelectGroupContext = (0, import_react5.createContext)({
|
|
546
560
|
name: void 0,
|
|
547
561
|
selected: [],
|
|
548
562
|
disabled: false,
|
|
549
563
|
readonly: false,
|
|
550
|
-
|
|
564
|
+
invalid: false,
|
|
551
565
|
onChange() {
|
|
552
566
|
throw new Error(
|
|
553
567
|
"Cannot find `onChange()` handler. Perhaps you forgot to wrap it with `<MultiSelectGroup />` ?"
|
|
@@ -556,9 +570,9 @@ var MultiSelectGroupContext = (0, import_react7.createContext)({
|
|
|
556
570
|
});
|
|
557
571
|
|
|
558
572
|
// src/components/MultiSelect/index.tsx
|
|
573
|
+
var import_jsx_runtime7 = require("react/jsx-runtime");
|
|
559
574
|
function MultiSelect({
|
|
560
575
|
value,
|
|
561
|
-
forceChecked = false,
|
|
562
576
|
disabled = false,
|
|
563
577
|
onChange,
|
|
564
578
|
variant = "default",
|
|
@@ -569,16 +583,16 @@ function MultiSelect({
|
|
|
569
583
|
selected,
|
|
570
584
|
disabled: parentDisabled,
|
|
571
585
|
readonly,
|
|
572
|
-
|
|
586
|
+
invalid,
|
|
573
587
|
onChange: parentOnChange
|
|
574
|
-
} = (0,
|
|
588
|
+
} = (0, import_react6.useContext)(MultiSelectGroupContext);
|
|
575
589
|
(0, import_warning2.default)(
|
|
576
590
|
name !== void 0,
|
|
577
591
|
`"name" is not Provided for <MultiSelect>. Perhaps you forgot to wrap with <MultiSelectGroup> ?`
|
|
578
592
|
);
|
|
579
|
-
const isSelected = selected.includes(value)
|
|
593
|
+
const isSelected = selected.includes(value);
|
|
580
594
|
const isDisabled = disabled || parentDisabled || readonly;
|
|
581
|
-
const handleChange = (0,
|
|
595
|
+
const handleChange = (0, import_react6.useCallback)(
|
|
582
596
|
(event) => {
|
|
583
597
|
if (!(event.currentTarget instanceof HTMLInputElement)) {
|
|
584
598
|
return;
|
|
@@ -589,29 +603,33 @@ function MultiSelect({
|
|
|
589
603
|
},
|
|
590
604
|
[onChange, parentOnChange, value]
|
|
591
605
|
);
|
|
592
|
-
return /* @__PURE__ */
|
|
593
|
-
|
|
594
|
-
|
|
595
|
-
|
|
596
|
-
|
|
597
|
-
|
|
598
|
-
|
|
599
|
-
|
|
600
|
-
|
|
601
|
-
|
|
602
|
-
|
|
603
|
-
|
|
604
|
-
|
|
605
|
-
|
|
606
|
-
|
|
607
|
-
|
|
608
|
-
|
|
609
|
-
|
|
610
|
-
|
|
611
|
-
|
|
612
|
-
|
|
613
|
-
|
|
614
|
-
|
|
606
|
+
return /* @__PURE__ */ (0, import_jsx_runtime7.jsxs)(MultiSelectRoot, { "aria-disabled": isDisabled, children: [
|
|
607
|
+
/* @__PURE__ */ (0, import_jsx_runtime7.jsx)(
|
|
608
|
+
MultiSelectInput,
|
|
609
|
+
{
|
|
610
|
+
...{
|
|
611
|
+
name,
|
|
612
|
+
value,
|
|
613
|
+
invalid
|
|
614
|
+
},
|
|
615
|
+
checked: isSelected,
|
|
616
|
+
disabled: isDisabled,
|
|
617
|
+
onChange: handleChange,
|
|
618
|
+
overlay: variant === "overlay",
|
|
619
|
+
"aria-invalid": invalid
|
|
620
|
+
}
|
|
621
|
+
),
|
|
622
|
+
/* @__PURE__ */ (0, import_jsx_runtime7.jsx)(
|
|
623
|
+
MultiSelectInputOverlay,
|
|
624
|
+
{
|
|
625
|
+
overlay: variant === "overlay",
|
|
626
|
+
invalid,
|
|
627
|
+
"aria-hidden": true,
|
|
628
|
+
children: /* @__PURE__ */ (0, import_jsx_runtime7.jsx)("pixiv-icon", { name: "24/Check", "unsafe-non-guideline-scale": 16 / 24 })
|
|
629
|
+
}
|
|
630
|
+
),
|
|
631
|
+
Boolean(children) && /* @__PURE__ */ (0, import_jsx_runtime7.jsx)(MultiSelectLabel, { children })
|
|
632
|
+
] });
|
|
615
633
|
}
|
|
616
634
|
var MultiSelectRoot = import_styled_components7.default.label`
|
|
617
635
|
display: grid;
|
|
@@ -642,10 +660,10 @@ var MultiSelectInput = import_styled_components7.default.input.attrs({ type: "ch
|
|
|
642
660
|
${theme((o) => o.bg.brand.hover.press)}
|
|
643
661
|
}
|
|
644
662
|
|
|
645
|
-
${({
|
|
663
|
+
${({ invalid, overlay }) => theme((o) => [
|
|
646
664
|
o.bg.text3.hover.press,
|
|
647
665
|
o.borderRadius("oval"),
|
|
648
|
-
|
|
666
|
+
invalid && !overlay && o.outline.assertive,
|
|
649
667
|
overlay && o.bg.surface4
|
|
650
668
|
])};
|
|
651
669
|
}
|
|
@@ -659,12 +677,12 @@ var MultiSelectInputOverlay = import_styled_components7.default.div`
|
|
|
659
677
|
align-items: center;
|
|
660
678
|
justify-content: center;
|
|
661
679
|
|
|
662
|
-
${({
|
|
680
|
+
${({ invalid, overlay }) => theme((o) => [
|
|
663
681
|
o.width.px(24),
|
|
664
682
|
o.height.px(24),
|
|
665
683
|
o.borderRadius("oval"),
|
|
666
684
|
o.font.text5,
|
|
667
|
-
|
|
685
|
+
invalid && overlay && o.outline.assertive
|
|
668
686
|
])}
|
|
669
687
|
|
|
670
688
|
${({ overlay }) => overlay && import_styled_components7.css`
|
|
@@ -676,15 +694,15 @@ var MultiSelectInputOverlay = import_styled_components7.default.div`
|
|
|
676
694
|
function MultiSelectGroup({
|
|
677
695
|
className,
|
|
678
696
|
name,
|
|
679
|
-
|
|
697
|
+
label,
|
|
680
698
|
selected,
|
|
681
699
|
onChange,
|
|
682
700
|
disabled = false,
|
|
683
701
|
readonly = false,
|
|
684
|
-
|
|
702
|
+
invalid = false,
|
|
685
703
|
children
|
|
686
704
|
}) {
|
|
687
|
-
const handleChange = (0,
|
|
705
|
+
const handleChange = (0, import_react6.useCallback)(
|
|
688
706
|
(payload) => {
|
|
689
707
|
const index = selected.indexOf(payload.value);
|
|
690
708
|
if (payload.selected) {
|
|
@@ -699,7 +717,7 @@ function MultiSelectGroup({
|
|
|
699
717
|
},
|
|
700
718
|
[onChange, selected]
|
|
701
719
|
);
|
|
702
|
-
return /* @__PURE__ */
|
|
720
|
+
return /* @__PURE__ */ (0, import_jsx_runtime7.jsx)(
|
|
703
721
|
MultiSelectGroupContext.Provider,
|
|
704
722
|
{
|
|
705
723
|
value: {
|
|
@@ -707,31 +725,24 @@ function MultiSelectGroup({
|
|
|
707
725
|
selected: Array.from(new Set(selected)),
|
|
708
726
|
disabled,
|
|
709
727
|
readonly,
|
|
710
|
-
|
|
728
|
+
invalid,
|
|
711
729
|
onChange: handleChange
|
|
712
|
-
}
|
|
713
|
-
},
|
|
714
|
-
/* @__PURE__ */ import_react8.default.createElement(
|
|
715
|
-
"div",
|
|
716
|
-
{
|
|
717
|
-
className,
|
|
718
|
-
"aria-label": ariaLabel,
|
|
719
|
-
"data-testid": "SelectGroup"
|
|
720
730
|
},
|
|
721
|
-
children
|
|
722
|
-
|
|
731
|
+
children: /* @__PURE__ */ (0, import_jsx_runtime7.jsx)("div", { className, "aria-label": label, "data-testid": "SelectGroup", children })
|
|
732
|
+
}
|
|
723
733
|
);
|
|
724
734
|
}
|
|
725
735
|
|
|
726
736
|
// src/components/Switch/index.tsx
|
|
727
737
|
var import_switch = require("@react-aria/switch");
|
|
728
|
-
var
|
|
738
|
+
var import_react7 = require("react");
|
|
729
739
|
var import_react_stately = require("react-stately");
|
|
730
740
|
var import_styled_components8 = __toESM(require("styled-components"));
|
|
731
741
|
var import_utils4 = require("@charcoal-ui/utils");
|
|
742
|
+
var import_jsx_runtime8 = require("react/jsx-runtime");
|
|
732
743
|
function SwitchCheckbox(props) {
|
|
733
744
|
const { disabled, className } = props;
|
|
734
|
-
const ariaSwitchProps = (0,
|
|
745
|
+
const ariaSwitchProps = (0, import_react7.useMemo)(
|
|
735
746
|
() => ({
|
|
736
747
|
...props,
|
|
737
748
|
"aria-label": "children" in props ? void 0 : props.label,
|
|
@@ -741,11 +752,14 @@ function SwitchCheckbox(props) {
|
|
|
741
752
|
[props]
|
|
742
753
|
);
|
|
743
754
|
const state = (0, import_react_stately.useToggleState)(ariaSwitchProps);
|
|
744
|
-
const ref = (0,
|
|
755
|
+
const ref = (0, import_react7.useRef)(null);
|
|
745
756
|
const {
|
|
746
757
|
inputProps: { className: _className, type: _type, ...rest }
|
|
747
758
|
} = (0, import_switch.useSwitch)(ariaSwitchProps, state, ref);
|
|
748
|
-
return /* @__PURE__ */
|
|
759
|
+
return /* @__PURE__ */ (0, import_jsx_runtime8.jsxs)(Label, { className, "aria-disabled": disabled, children: [
|
|
760
|
+
/* @__PURE__ */ (0, import_jsx_runtime8.jsx)(SwitchInput, { ...rest, ref }),
|
|
761
|
+
"children" in props ? /* @__PURE__ */ (0, import_jsx_runtime8.jsx)(LabelInner, { children: props.children }) : void 0
|
|
762
|
+
] });
|
|
749
763
|
}
|
|
750
764
|
var Label = import_styled_components8.default.label`
|
|
751
765
|
display: inline-grid;
|
|
@@ -838,14 +852,16 @@ var SwitchInput = import_styled_components8.default.input.attrs({
|
|
|
838
852
|
// src/components/TextField/index.tsx
|
|
839
853
|
var import_textfield = require("@react-aria/textfield");
|
|
840
854
|
var import_visually_hidden = require("@react-aria/visually-hidden");
|
|
841
|
-
var
|
|
855
|
+
var import_react8 = require("react");
|
|
856
|
+
var React5 = __toESM(require("react"));
|
|
842
857
|
var import_styled_components10 = __toESM(require("styled-components"));
|
|
843
858
|
|
|
844
859
|
// src/components/FieldLabel/index.tsx
|
|
845
|
-
var
|
|
860
|
+
var React4 = __toESM(require("react"));
|
|
846
861
|
var import_styled_components9 = __toESM(require("styled-components"));
|
|
847
862
|
var import_styled8 = require("@charcoal-ui/styled");
|
|
848
|
-
var
|
|
863
|
+
var import_jsx_runtime9 = require("react/jsx-runtime");
|
|
864
|
+
var FieldLabel = React4.forwardRef(
|
|
849
865
|
function FieldLabel2({
|
|
850
866
|
style,
|
|
851
867
|
className,
|
|
@@ -855,7 +871,11 @@ var FieldLabel = import_react10.default.forwardRef(
|
|
|
855
871
|
subLabel,
|
|
856
872
|
...labelProps
|
|
857
873
|
}, ref) {
|
|
858
|
-
return /* @__PURE__ */
|
|
874
|
+
return /* @__PURE__ */ (0, import_jsx_runtime9.jsxs)(FieldLabelWrapper, { style, className, children: [
|
|
875
|
+
/* @__PURE__ */ (0, import_jsx_runtime9.jsx)(Label2, { ref, ...labelProps, children: label }),
|
|
876
|
+
required && /* @__PURE__ */ (0, import_jsx_runtime9.jsx)(RequiredText, { children: requiredText }),
|
|
877
|
+
/* @__PURE__ */ (0, import_jsx_runtime9.jsx)(SubLabelClickable, { children: /* @__PURE__ */ (0, import_jsx_runtime9.jsx)("span", { children: subLabel }) })
|
|
878
|
+
] });
|
|
859
879
|
}
|
|
860
880
|
);
|
|
861
881
|
var FieldLabel_default = FieldLabel;
|
|
@@ -888,6 +908,7 @@ var FieldLabelWrapper = import_styled_components9.default.div`
|
|
|
888
908
|
|
|
889
909
|
// src/components/TextField/index.tsx
|
|
890
910
|
var import_styled9 = require("@charcoal-ui/styled");
|
|
911
|
+
var import_jsx_runtime10 = require("react/jsx-runtime");
|
|
891
912
|
var theme3 = (0, import_styled9.createTheme)(import_styled_components10.default);
|
|
892
913
|
function mergeRefs(...refs) {
|
|
893
914
|
return (value) => {
|
|
@@ -904,13 +925,13 @@ function mergeRefs(...refs) {
|
|
|
904
925
|
function countCodePointsInString(string) {
|
|
905
926
|
return Array.from(string).length;
|
|
906
927
|
}
|
|
907
|
-
var TextField =
|
|
928
|
+
var TextField = React5.forwardRef(
|
|
908
929
|
function TextField2(props, ref) {
|
|
909
|
-
return props.multiline !== void 0 && props.multiline ? /* @__PURE__ */
|
|
930
|
+
return props.multiline !== void 0 && props.multiline ? /* @__PURE__ */ (0, import_jsx_runtime10.jsx)(MultiLineTextField, { ref, ...props }) : /* @__PURE__ */ (0, import_jsx_runtime10.jsx)(SingleLineTextField, { ref, ...props });
|
|
910
931
|
}
|
|
911
932
|
);
|
|
912
933
|
var TextField_default = TextField;
|
|
913
|
-
var SingleLineTextField =
|
|
934
|
+
var SingleLineTextField = React5.forwardRef(function SingleLineTextFieldInner({ onChange, ...props }, forwardRef12) {
|
|
914
935
|
const {
|
|
915
936
|
className,
|
|
916
937
|
showLabel = false,
|
|
@@ -927,14 +948,14 @@ var SingleLineTextField = import_react11.default.forwardRef(function SingleLineT
|
|
|
927
948
|
suffix = null
|
|
928
949
|
} = props;
|
|
929
950
|
const { visuallyHiddenProps } = (0, import_visually_hidden.useVisuallyHidden)();
|
|
930
|
-
const ariaRef = (0,
|
|
931
|
-
const prefixRef = (0,
|
|
932
|
-
const suffixRef = (0,
|
|
933
|
-
const [count, setCount] = (0,
|
|
934
|
-
const [prefixWidth, setPrefixWidth] = (0,
|
|
935
|
-
const [suffixWidth, setSuffixWidth] = (0,
|
|
951
|
+
const ariaRef = (0, import_react8.useRef)(null);
|
|
952
|
+
const prefixRef = (0, import_react8.useRef)(null);
|
|
953
|
+
const suffixRef = (0, import_react8.useRef)(null);
|
|
954
|
+
const [count, setCount] = (0, import_react8.useState)(countCodePointsInString(props.value ?? ""));
|
|
955
|
+
const [prefixWidth, setPrefixWidth] = (0, import_react8.useState)(0);
|
|
956
|
+
const [suffixWidth, setSuffixWidth] = (0, import_react8.useState)(0);
|
|
936
957
|
const nonControlled = props.value === void 0;
|
|
937
|
-
const handleChange = (0,
|
|
958
|
+
const handleChange = (0, import_react8.useCallback)(
|
|
938
959
|
(value) => {
|
|
939
960
|
const count2 = countCodePointsInString(value);
|
|
940
961
|
if (maxLength !== void 0 && count2 > maxLength) {
|
|
@@ -947,7 +968,7 @@ var SingleLineTextField = import_react11.default.forwardRef(function SingleLineT
|
|
|
947
968
|
},
|
|
948
969
|
[maxLength, nonControlled, onChange]
|
|
949
970
|
);
|
|
950
|
-
(0,
|
|
971
|
+
(0, import_react8.useEffect)(() => {
|
|
951
972
|
setCount(countCodePointsInString(props.value ?? ""));
|
|
952
973
|
}, [props.value]);
|
|
953
974
|
const { inputProps, labelProps, descriptionProps, errorMessageProps } = (0, import_textfield.useTextField)(
|
|
@@ -963,7 +984,7 @@ var SingleLineTextField = import_react11.default.forwardRef(function SingleLineT
|
|
|
963
984
|
},
|
|
964
985
|
ariaRef
|
|
965
986
|
);
|
|
966
|
-
(0,
|
|
987
|
+
(0, import_react8.useEffect)(() => {
|
|
967
988
|
const prefixObserver = new ResizeObserver((entries) => {
|
|
968
989
|
setPrefixWidth(entries[0].contentRect.width);
|
|
969
990
|
});
|
|
@@ -981,35 +1002,46 @@ var SingleLineTextField = import_react11.default.forwardRef(function SingleLineT
|
|
|
981
1002
|
prefixObserver.disconnect();
|
|
982
1003
|
};
|
|
983
1004
|
}, []);
|
|
984
|
-
return /* @__PURE__ */
|
|
985
|
-
|
|
986
|
-
|
|
987
|
-
|
|
988
|
-
|
|
989
|
-
|
|
990
|
-
|
|
991
|
-
|
|
992
|
-
|
|
993
|
-
|
|
994
|
-
|
|
995
|
-
|
|
996
|
-
{
|
|
997
|
-
ref:
|
|
998
|
-
|
|
999
|
-
|
|
1000
|
-
|
|
1001
|
-
|
|
1002
|
-
|
|
1003
|
-
|
|
1004
|
-
|
|
1005
|
-
|
|
1006
|
-
|
|
1007
|
-
|
|
1008
|
-
|
|
1009
|
-
|
|
1010
|
-
|
|
1005
|
+
return /* @__PURE__ */ (0, import_jsx_runtime10.jsxs)(TextFieldRoot, { className, isDisabled: disabled, children: [
|
|
1006
|
+
/* @__PURE__ */ (0, import_jsx_runtime10.jsx)(
|
|
1007
|
+
TextFieldLabel,
|
|
1008
|
+
{
|
|
1009
|
+
label,
|
|
1010
|
+
requiredText,
|
|
1011
|
+
required,
|
|
1012
|
+
subLabel,
|
|
1013
|
+
...labelProps,
|
|
1014
|
+
...!showLabel ? visuallyHiddenProps : {}
|
|
1015
|
+
}
|
|
1016
|
+
),
|
|
1017
|
+
/* @__PURE__ */ (0, import_jsx_runtime10.jsxs)(StyledInputContainer, { children: [
|
|
1018
|
+
/* @__PURE__ */ (0, import_jsx_runtime10.jsx)(PrefixContainer, { ref: prefixRef, children: /* @__PURE__ */ (0, import_jsx_runtime10.jsx)(Affix, { children: prefix }) }),
|
|
1019
|
+
/* @__PURE__ */ (0, import_jsx_runtime10.jsx)(
|
|
1020
|
+
StyledInput,
|
|
1021
|
+
{
|
|
1022
|
+
ref: mergeRefs(forwardRef12, ariaRef),
|
|
1023
|
+
invalid,
|
|
1024
|
+
extraLeftPadding: prefixWidth,
|
|
1025
|
+
extraRightPadding: suffixWidth,
|
|
1026
|
+
...inputProps
|
|
1027
|
+
}
|
|
1028
|
+
),
|
|
1029
|
+
/* @__PURE__ */ (0, import_jsx_runtime10.jsxs)(SuffixContainer, { ref: suffixRef, children: [
|
|
1030
|
+
/* @__PURE__ */ (0, import_jsx_runtime10.jsx)(Affix, { children: suffix }),
|
|
1031
|
+
showCount && /* @__PURE__ */ (0, import_jsx_runtime10.jsx)(SingleLineCounter, { children: maxLength !== void 0 ? `${count}/${maxLength}` : count })
|
|
1032
|
+
] })
|
|
1033
|
+
] }),
|
|
1034
|
+
assistiveText != null && assistiveText.length !== 0 && /* @__PURE__ */ (0, import_jsx_runtime10.jsx)(
|
|
1035
|
+
AssistiveText,
|
|
1036
|
+
{
|
|
1037
|
+
invalid,
|
|
1038
|
+
...invalid ? errorMessageProps : descriptionProps,
|
|
1039
|
+
children: assistiveText
|
|
1040
|
+
}
|
|
1041
|
+
)
|
|
1042
|
+
] });
|
|
1011
1043
|
});
|
|
1012
|
-
var MultiLineTextField =
|
|
1044
|
+
var MultiLineTextField = React5.forwardRef(function MultiLineTextFieldInner({ onChange, ...props }, forwardRef12) {
|
|
1013
1045
|
const {
|
|
1014
1046
|
className,
|
|
1015
1047
|
showCount = false,
|
|
@@ -1026,11 +1058,11 @@ var MultiLineTextField = import_react11.default.forwardRef(function MultiLineTex
|
|
|
1026
1058
|
rows: initialRows = 4
|
|
1027
1059
|
} = props;
|
|
1028
1060
|
const { visuallyHiddenProps } = (0, import_visually_hidden.useVisuallyHidden)();
|
|
1029
|
-
const textareaRef = (0,
|
|
1030
|
-
const ariaRef = (0,
|
|
1031
|
-
const [count, setCount] = (0,
|
|
1032
|
-
const [rows, setRows] = (0,
|
|
1033
|
-
const syncHeight = (0,
|
|
1061
|
+
const textareaRef = (0, import_react8.useRef)(null);
|
|
1062
|
+
const ariaRef = (0, import_react8.useRef)(null);
|
|
1063
|
+
const [count, setCount] = (0, import_react8.useState)(countCodePointsInString(props.value ?? ""));
|
|
1064
|
+
const [rows, setRows] = (0, import_react8.useState)(initialRows);
|
|
1065
|
+
const syncHeight = (0, import_react8.useCallback)(
|
|
1034
1066
|
(textarea) => {
|
|
1035
1067
|
const rows2 = (`${textarea.value}
|
|
1036
1068
|
`.match(/\n/gu)?.length ?? 0) || 1;
|
|
@@ -1039,7 +1071,7 @@ var MultiLineTextField = import_react11.default.forwardRef(function MultiLineTex
|
|
|
1039
1071
|
[initialRows]
|
|
1040
1072
|
);
|
|
1041
1073
|
const nonControlled = props.value === void 0;
|
|
1042
|
-
const handleChange = (0,
|
|
1074
|
+
const handleChange = (0, import_react8.useCallback)(
|
|
1043
1075
|
(value) => {
|
|
1044
1076
|
const count2 = countCodePointsInString(value);
|
|
1045
1077
|
if (maxLength !== void 0 && count2 > maxLength) {
|
|
@@ -1055,7 +1087,7 @@ var MultiLineTextField = import_react11.default.forwardRef(function MultiLineTex
|
|
|
1055
1087
|
},
|
|
1056
1088
|
[autoHeight, maxLength, nonControlled, onChange, syncHeight]
|
|
1057
1089
|
);
|
|
1058
|
-
(0,
|
|
1090
|
+
(0, import_react8.useEffect)(() => {
|
|
1059
1091
|
setCount(countCodePointsInString(props.value ?? ""));
|
|
1060
1092
|
}, [props.value]);
|
|
1061
1093
|
const { inputProps, labelProps, descriptionProps, errorMessageProps } = (0, import_textfield.useTextField)(
|
|
@@ -1071,45 +1103,51 @@ var MultiLineTextField = import_react11.default.forwardRef(function MultiLineTex
|
|
|
1071
1103
|
},
|
|
1072
1104
|
ariaRef
|
|
1073
1105
|
);
|
|
1074
|
-
(0,
|
|
1106
|
+
(0, import_react8.useEffect)(() => {
|
|
1075
1107
|
if (autoHeight && textareaRef.current !== null) {
|
|
1076
1108
|
syncHeight(textareaRef.current);
|
|
1077
1109
|
}
|
|
1078
1110
|
}, [autoHeight, syncHeight]);
|
|
1079
|
-
return /* @__PURE__ */
|
|
1080
|
-
|
|
1081
|
-
|
|
1082
|
-
label,
|
|
1083
|
-
requiredText,
|
|
1084
|
-
required,
|
|
1085
|
-
subLabel,
|
|
1086
|
-
...labelProps,
|
|
1087
|
-
...!showLabel ? visuallyHiddenProps : {}
|
|
1088
|
-
}
|
|
1089
|
-
), /* @__PURE__ */ import_react11.default.createElement(
|
|
1090
|
-
StyledTextareaContainer,
|
|
1091
|
-
{
|
|
1092
|
-
invalid,
|
|
1093
|
-
rows: showCount ? rows + 1 : rows
|
|
1094
|
-
},
|
|
1095
|
-
/* @__PURE__ */ import_react11.default.createElement(
|
|
1096
|
-
StyledTextarea,
|
|
1111
|
+
return /* @__PURE__ */ (0, import_jsx_runtime10.jsxs)(TextFieldRoot, { className, isDisabled: disabled, children: [
|
|
1112
|
+
/* @__PURE__ */ (0, import_jsx_runtime10.jsx)(
|
|
1113
|
+
TextFieldLabel,
|
|
1097
1114
|
{
|
|
1098
|
-
|
|
1099
|
-
|
|
1100
|
-
|
|
1101
|
-
|
|
1115
|
+
label,
|
|
1116
|
+
requiredText,
|
|
1117
|
+
required,
|
|
1118
|
+
subLabel,
|
|
1119
|
+
...labelProps,
|
|
1120
|
+
...!showLabel ? visuallyHiddenProps : {}
|
|
1102
1121
|
}
|
|
1103
1122
|
),
|
|
1104
|
-
|
|
1105
|
-
|
|
1106
|
-
|
|
1107
|
-
|
|
1108
|
-
|
|
1109
|
-
|
|
1110
|
-
|
|
1111
|
-
|
|
1112
|
-
|
|
1123
|
+
/* @__PURE__ */ (0, import_jsx_runtime10.jsxs)(
|
|
1124
|
+
StyledTextareaContainer,
|
|
1125
|
+
{
|
|
1126
|
+
invalid,
|
|
1127
|
+
rows: showCount ? rows + 1 : rows,
|
|
1128
|
+
children: [
|
|
1129
|
+
/* @__PURE__ */ (0, import_jsx_runtime10.jsx)(
|
|
1130
|
+
StyledTextarea,
|
|
1131
|
+
{
|
|
1132
|
+
ref: mergeRefs(textareaRef, forwardRef12, ariaRef),
|
|
1133
|
+
rows,
|
|
1134
|
+
noBottomPadding: showCount,
|
|
1135
|
+
...inputProps
|
|
1136
|
+
}
|
|
1137
|
+
),
|
|
1138
|
+
showCount && /* @__PURE__ */ (0, import_jsx_runtime10.jsx)(MultiLineCounter, { children: maxLength !== void 0 ? `${count}/${maxLength}` : count })
|
|
1139
|
+
]
|
|
1140
|
+
}
|
|
1141
|
+
),
|
|
1142
|
+
assistiveText != null && assistiveText.length !== 0 && /* @__PURE__ */ (0, import_jsx_runtime10.jsx)(
|
|
1143
|
+
AssistiveText,
|
|
1144
|
+
{
|
|
1145
|
+
invalid,
|
|
1146
|
+
...invalid ? errorMessageProps : descriptionProps,
|
|
1147
|
+
children: assistiveText
|
|
1148
|
+
}
|
|
1149
|
+
)
|
|
1150
|
+
] });
|
|
1113
1151
|
});
|
|
1114
1152
|
var TextFieldRoot = import_styled_components10.default.div`
|
|
1115
1153
|
display: flex;
|
|
@@ -1260,10 +1298,11 @@ var AssistiveText = import_styled_components10.default.p`
|
|
|
1260
1298
|
`;
|
|
1261
1299
|
|
|
1262
1300
|
// src/components/Icon/index.tsx
|
|
1263
|
-
var
|
|
1301
|
+
var React6 = __toESM(require("react"));
|
|
1264
1302
|
var import_icons = require("@charcoal-ui/icons");
|
|
1265
|
-
var
|
|
1266
|
-
|
|
1303
|
+
var import_jsx_runtime11 = require("react/jsx-runtime");
|
|
1304
|
+
var Icon = React6.forwardRef(function IconInner({ name, scale, unsafeNonGuidelineScale, className, ...rest }, ref) {
|
|
1305
|
+
return /* @__PURE__ */ (0, import_jsx_runtime11.jsx)(
|
|
1267
1306
|
"pixiv-icon",
|
|
1268
1307
|
{
|
|
1269
1308
|
ref,
|
|
@@ -1278,7 +1317,8 @@ var Icon = import_react12.default.forwardRef(function IconInner({ name, scale, u
|
|
|
1278
1317
|
var Icon_default = Icon;
|
|
1279
1318
|
|
|
1280
1319
|
// src/components/Modal/index.tsx
|
|
1281
|
-
var
|
|
1320
|
+
var import_react9 = require("react");
|
|
1321
|
+
var React7 = __toESM(require("react"));
|
|
1282
1322
|
var import_overlays2 = require("@react-aria/overlays");
|
|
1283
1323
|
var import_styled_components11 = __toESM(require("styled-components"));
|
|
1284
1324
|
var import_focus = require("@react-aria/focus");
|
|
@@ -1295,6 +1335,7 @@ function columnSystem(span, column, gutter) {
|
|
|
1295
1335
|
var import_utils5 = require("@charcoal-ui/utils");
|
|
1296
1336
|
var import_styled11 = require("@charcoal-ui/styled");
|
|
1297
1337
|
var import_react_spring = require("react-spring");
|
|
1338
|
+
var import_jsx_runtime12 = require("react/jsx-runtime");
|
|
1298
1339
|
var DEFAULT_Z_INDEX = 10;
|
|
1299
1340
|
function Modal({
|
|
1300
1341
|
children,
|
|
@@ -1310,7 +1351,7 @@ function Modal({
|
|
|
1310
1351
|
onClose,
|
|
1311
1352
|
isOpen = false
|
|
1312
1353
|
} = props;
|
|
1313
|
-
const ref = (0,
|
|
1354
|
+
const ref = (0, import_react9.useRef)(null);
|
|
1314
1355
|
const { overlayProps, underlayProps } = (0, import_overlays2.useOverlay)(props, ref);
|
|
1315
1356
|
const { modalProps } = (0, import_overlays2.useModalOverlay)(
|
|
1316
1357
|
props,
|
|
@@ -1347,44 +1388,46 @@ function Modal({
|
|
|
1347
1388
|
});
|
|
1348
1389
|
const showDismiss = !isMobile || bottomSheet !== true;
|
|
1349
1390
|
return transition(
|
|
1350
|
-
({ backgroundColor, transform }, item) => item && /* @__PURE__ */
|
|
1391
|
+
({ backgroundColor, transform }, item) => item && /* @__PURE__ */ (0, import_jsx_runtime12.jsx)(import_overlays2.Overlay, { portalContainer, children: /* @__PURE__ */ (0, import_jsx_runtime12.jsx)(
|
|
1351
1392
|
ModalBackground,
|
|
1352
1393
|
{
|
|
1353
1394
|
zIndex,
|
|
1354
1395
|
...underlayProps,
|
|
1355
|
-
style: transitionEnabled ? { backgroundColor } : {}
|
|
1356
|
-
|
|
1357
|
-
|
|
1358
|
-
ModalDialog,
|
|
1359
|
-
{
|
|
1360
|
-
ref,
|
|
1361
|
-
...overlayProps,
|
|
1362
|
-
...modalProps,
|
|
1363
|
-
...dialogProps,
|
|
1364
|
-
style: transitionEnabled ? { transform } : {},
|
|
1365
|
-
size,
|
|
1366
|
-
bottomSheet
|
|
1367
|
-
},
|
|
1368
|
-
/* @__PURE__ */ import_react13.default.createElement(
|
|
1369
|
-
ModalContext.Provider,
|
|
1396
|
+
style: transitionEnabled ? { backgroundColor } : {},
|
|
1397
|
+
children: /* @__PURE__ */ (0, import_jsx_runtime12.jsx)(import_focus.FocusScope, { contain: true, restoreFocus: true, autoFocus: true, children: /* @__PURE__ */ (0, import_jsx_runtime12.jsx)(DialogContainer, { bottomSheet, size, children: /* @__PURE__ */ (0, import_jsx_runtime12.jsx)(
|
|
1398
|
+
ModalDialog,
|
|
1370
1399
|
{
|
|
1371
|
-
|
|
1372
|
-
|
|
1373
|
-
|
|
1374
|
-
|
|
1375
|
-
|
|
1376
|
-
|
|
1377
|
-
|
|
1378
|
-
|
|
1379
|
-
|
|
1380
|
-
|
|
1381
|
-
|
|
1382
|
-
|
|
1383
|
-
|
|
1384
|
-
|
|
1400
|
+
ref,
|
|
1401
|
+
...overlayProps,
|
|
1402
|
+
...modalProps,
|
|
1403
|
+
...dialogProps,
|
|
1404
|
+
style: transitionEnabled ? { transform } : {},
|
|
1405
|
+
size,
|
|
1406
|
+
bottomSheet,
|
|
1407
|
+
children: /* @__PURE__ */ (0, import_jsx_runtime12.jsxs)(
|
|
1408
|
+
ModalContext.Provider,
|
|
1409
|
+
{
|
|
1410
|
+
value: { titleProps, title, close: onClose, showDismiss },
|
|
1411
|
+
children: [
|
|
1412
|
+
children,
|
|
1413
|
+
isDismissable === true && /* @__PURE__ */ (0, import_jsx_runtime12.jsx)(
|
|
1414
|
+
ModalCrossButton,
|
|
1415
|
+
{
|
|
1416
|
+
size: "S",
|
|
1417
|
+
icon: "24/Close",
|
|
1418
|
+
onClick: onClose
|
|
1419
|
+
}
|
|
1420
|
+
)
|
|
1421
|
+
]
|
|
1422
|
+
}
|
|
1423
|
+
)
|
|
1424
|
+
}
|
|
1425
|
+
) }) })
|
|
1426
|
+
}
|
|
1427
|
+
) })
|
|
1385
1428
|
);
|
|
1386
1429
|
}
|
|
1387
|
-
var ModalContext =
|
|
1430
|
+
var ModalContext = React7.createContext({
|
|
1388
1431
|
titleProps: {},
|
|
1389
1432
|
title: "",
|
|
1390
1433
|
close: void 0,
|
|
@@ -1458,8 +1501,8 @@ var ModalCrossButton = (0, import_styled_components11.default)(IconButton_defaul
|
|
|
1458
1501
|
${theme((o) => [o.font.text3.hover.press])}
|
|
1459
1502
|
`;
|
|
1460
1503
|
function ModalTitle(props) {
|
|
1461
|
-
const { titleProps, title } = (0,
|
|
1462
|
-
return /* @__PURE__ */
|
|
1504
|
+
const { titleProps, title } = (0, import_react9.useContext)(ModalContext);
|
|
1505
|
+
return /* @__PURE__ */ (0, import_jsx_runtime12.jsx)(ModalHeading, { ...titleProps, ...props, children: title });
|
|
1463
1506
|
}
|
|
1464
1507
|
var ModalHeading = import_styled_components11.default.h3`
|
|
1465
1508
|
margin: 0;
|
|
@@ -1468,10 +1511,10 @@ var ModalHeading = import_styled_components11.default.h3`
|
|
|
1468
1511
|
`;
|
|
1469
1512
|
|
|
1470
1513
|
// src/components/Modal/ModalPlumbing.tsx
|
|
1471
|
-
var import_react14 = __toESM(require("react"));
|
|
1472
1514
|
var import_styled_components12 = __toESM(require("styled-components"));
|
|
1515
|
+
var import_jsx_runtime13 = require("react/jsx-runtime");
|
|
1473
1516
|
function ModalHeader() {
|
|
1474
|
-
return /* @__PURE__ */
|
|
1517
|
+
return /* @__PURE__ */ (0, import_jsx_runtime13.jsx)(ModalHeaderRoot, { children: /* @__PURE__ */ (0, import_jsx_runtime13.jsx)(StyledModalTitle, {}) });
|
|
1475
1518
|
}
|
|
1476
1519
|
var ModalHeaderRoot = import_styled_components12.default.div`
|
|
1477
1520
|
height: 64px;
|
|
@@ -1497,14 +1540,15 @@ var ModalButtons = import_styled_components12.default.div`
|
|
|
1497
1540
|
`;
|
|
1498
1541
|
|
|
1499
1542
|
// src/components/LoadingSpinner/index.tsx
|
|
1500
|
-
var
|
|
1543
|
+
var import_react10 = require("react");
|
|
1501
1544
|
var import_styled_components13 = __toESM(require("styled-components"));
|
|
1545
|
+
var import_jsx_runtime14 = require("react/jsx-runtime");
|
|
1502
1546
|
function LoadingSpinner({
|
|
1503
1547
|
size = 48,
|
|
1504
1548
|
padding = 16,
|
|
1505
1549
|
transparent = false
|
|
1506
1550
|
}) {
|
|
1507
|
-
return /* @__PURE__ */
|
|
1551
|
+
return /* @__PURE__ */ (0, import_jsx_runtime14.jsx)(LoadingSpinnerRoot, { size, padding, transparent, children: /* @__PURE__ */ (0, import_jsx_runtime14.jsx)(LoadingSpinnerIcon, {}) });
|
|
1508
1552
|
}
|
|
1509
1553
|
var LoadingSpinnerRoot = import_styled_components13.default.div.attrs({ role: "progressbar" })`
|
|
1510
1554
|
box-sizing: content-box;
|
|
@@ -1543,52 +1587,90 @@ var Icon2 = import_styled_components13.default.div.attrs({ role: "presentation"
|
|
|
1543
1587
|
animation: none;
|
|
1544
1588
|
}
|
|
1545
1589
|
`;
|
|
1546
|
-
var LoadingSpinnerIcon =
|
|
1547
|
-
|
|
1548
|
-
|
|
1549
|
-
|
|
1550
|
-
|
|
1551
|
-
|
|
1590
|
+
var LoadingSpinnerIcon = (0, import_react10.forwardRef)(
|
|
1591
|
+
function LoadingSpinnerIcon2({ once = false }, ref) {
|
|
1592
|
+
const iconRef = (0, import_react10.useRef)(null);
|
|
1593
|
+
(0, import_react10.useImperativeHandle)(ref, () => ({
|
|
1594
|
+
restart: () => {
|
|
1595
|
+
if (!iconRef.current) {
|
|
1596
|
+
return;
|
|
1597
|
+
}
|
|
1598
|
+
iconRef.current.dataset.resetAnimation = "true";
|
|
1599
|
+
void iconRef.current.offsetWidth;
|
|
1600
|
+
delete iconRef.current.dataset.resetAnimation;
|
|
1552
1601
|
}
|
|
1553
|
-
|
|
1554
|
-
|
|
1555
|
-
|
|
1556
|
-
|
|
1557
|
-
}));
|
|
1558
|
-
return /* @__PURE__ */ import_react15.default.createElement(Icon2, { ref: iconRef, once });
|
|
1559
|
-
});
|
|
1602
|
+
}));
|
|
1603
|
+
return /* @__PURE__ */ (0, import_jsx_runtime14.jsx)(Icon2, { ref: iconRef, once });
|
|
1604
|
+
}
|
|
1605
|
+
);
|
|
1560
1606
|
|
|
1561
1607
|
// src/components/DropdownSelector/index.tsx
|
|
1562
|
-
var import_react17 =
|
|
1563
|
-
var
|
|
1564
|
-
var import_react_stately2 = require("react-stately");
|
|
1608
|
+
var import_react17 = require("react");
|
|
1609
|
+
var import_styled_components16 = __toESM(require("styled-components"));
|
|
1565
1610
|
var import_utils6 = require("@charcoal-ui/utils");
|
|
1566
1611
|
|
|
1567
1612
|
// src/components/DropdownSelector/DropdownPopover.tsx
|
|
1568
|
-
var
|
|
1613
|
+
var import_react12 = require("react");
|
|
1614
|
+
|
|
1615
|
+
// src/components/DropdownSelector/Popover/index.tsx
|
|
1616
|
+
var import_react11 = require("react");
|
|
1569
1617
|
var import_overlays3 = require("@react-aria/overlays");
|
|
1570
1618
|
var import_styled_components14 = __toESM(require("styled-components"));
|
|
1571
|
-
var
|
|
1572
|
-
|
|
1573
|
-
|
|
1574
|
-
|
|
1575
|
-
|
|
1576
|
-
const ref = (0, import_react16.useRef)(null);
|
|
1619
|
+
var import_jsx_runtime15 = require("react/jsx-runtime");
|
|
1620
|
+
var _empty = () => null;
|
|
1621
|
+
function Popover(props) {
|
|
1622
|
+
const defaultPopoverRef = (0, import_react11.useRef)(null);
|
|
1623
|
+
const finalPopoverRef = props.popoverRef === void 0 ? defaultPopoverRef : props.popoverRef;
|
|
1577
1624
|
const { popoverProps, underlayProps } = (0, import_overlays3.usePopover)(
|
|
1578
1625
|
{
|
|
1579
|
-
|
|
1580
|
-
popoverRef:
|
|
1581
|
-
containerPadding:
|
|
1626
|
+
triggerRef: props.triggerRef,
|
|
1627
|
+
popoverRef: finalPopoverRef,
|
|
1628
|
+
containerPadding: 16
|
|
1582
1629
|
},
|
|
1583
|
-
|
|
1630
|
+
{
|
|
1631
|
+
close: props.onClose,
|
|
1632
|
+
isOpen: props.isOpen,
|
|
1633
|
+
open: _empty,
|
|
1634
|
+
setOpen: _empty,
|
|
1635
|
+
toggle: _empty
|
|
1636
|
+
}
|
|
1584
1637
|
);
|
|
1585
|
-
(
|
|
1586
|
-
|
|
1638
|
+
if (!props.isOpen)
|
|
1639
|
+
return null;
|
|
1640
|
+
return /* @__PURE__ */ (0, import_jsx_runtime15.jsxs)(import_overlays3.Overlay, { portalContainer: document.body, children: [
|
|
1641
|
+
/* @__PURE__ */ (0, import_jsx_runtime15.jsx)("div", { ...underlayProps, style: { position: "fixed", inset: 0 } }),
|
|
1642
|
+
/* @__PURE__ */ (0, import_jsx_runtime15.jsxs)(DropdownPopoverDiv, { ...popoverProps, ref: finalPopoverRef, children: [
|
|
1643
|
+
/* @__PURE__ */ (0, import_jsx_runtime15.jsx)(import_overlays3.DismissButton, { onDismiss: () => props.onClose() }),
|
|
1644
|
+
props.children,
|
|
1645
|
+
/* @__PURE__ */ (0, import_jsx_runtime15.jsx)(import_overlays3.DismissButton, { onDismiss: () => props.onClose() })
|
|
1646
|
+
] })
|
|
1647
|
+
] });
|
|
1648
|
+
}
|
|
1649
|
+
var DropdownPopoverDiv = import_styled_components14.default.div`
|
|
1650
|
+
margin: 4px 0;
|
|
1651
|
+
list-style: none;
|
|
1652
|
+
overflow: auto;
|
|
1653
|
+
max-height: inherit;
|
|
1654
|
+
|
|
1655
|
+
${theme((o) => [
|
|
1656
|
+
o.bg.background1,
|
|
1657
|
+
o.border.default,
|
|
1658
|
+
o.borderRadius(8),
|
|
1659
|
+
o.padding.vertical(8)
|
|
1660
|
+
])}
|
|
1661
|
+
`;
|
|
1662
|
+
|
|
1663
|
+
// src/components/DropdownSelector/DropdownPopover.tsx
|
|
1664
|
+
var import_jsx_runtime16 = require("react/jsx-runtime");
|
|
1665
|
+
function DropdownPopover({ children, ...props }) {
|
|
1666
|
+
const ref = (0, import_react12.useRef)(null);
|
|
1667
|
+
(0, import_react12.useEffect)(() => {
|
|
1668
|
+
if (props.isOpen && ref.current && props.triggerRef.current) {
|
|
1587
1669
|
ref.current.style.width = `${props.triggerRef.current.clientWidth}px`;
|
|
1588
1670
|
}
|
|
1589
|
-
}, [props.triggerRef]);
|
|
1590
|
-
(0,
|
|
1591
|
-
if (
|
|
1671
|
+
}, [props.triggerRef, props.isOpen]);
|
|
1672
|
+
(0, import_react12.useEffect)(() => {
|
|
1673
|
+
if (props.isOpen && props.value !== void 0) {
|
|
1592
1674
|
const windowScrollY = window.scrollY;
|
|
1593
1675
|
const windowScrollX = window.scrollX;
|
|
1594
1676
|
const selectedElement = document.querySelector(
|
|
@@ -1598,92 +1680,163 @@ function DropdownPopover({ children, state, ...props }) {
|
|
|
1598
1680
|
selectedElement?.focus();
|
|
1599
1681
|
window.scrollTo(windowScrollX, windowScrollY);
|
|
1600
1682
|
}
|
|
1601
|
-
}, [props.value,
|
|
1602
|
-
return /* @__PURE__ */
|
|
1683
|
+
}, [props.value, props.isOpen]);
|
|
1684
|
+
return /* @__PURE__ */ (0, import_jsx_runtime16.jsx)(
|
|
1685
|
+
Popover,
|
|
1686
|
+
{
|
|
1687
|
+
isOpen: props.isOpen,
|
|
1688
|
+
onClose: props.onClose,
|
|
1689
|
+
popoverRef: ref,
|
|
1690
|
+
triggerRef: props.triggerRef,
|
|
1691
|
+
children
|
|
1692
|
+
}
|
|
1693
|
+
);
|
|
1603
1694
|
}
|
|
1604
1695
|
|
|
1605
|
-
// src/components/DropdownSelector/
|
|
1606
|
-
var
|
|
1696
|
+
// src/components/DropdownSelector/utils/findPreviewRecursive.tsx
|
|
1697
|
+
var import_react13 = __toESM(require("react"));
|
|
1698
|
+
function findPreviewRecursive(children, value) {
|
|
1699
|
+
const childArray = import_react13.default.Children.toArray(children);
|
|
1700
|
+
for (let i = 0; i < childArray.length; i++) {
|
|
1701
|
+
const child = childArray[i];
|
|
1702
|
+
if (import_react13.default.isValidElement(child)) {
|
|
1703
|
+
if ("value" in child.props) {
|
|
1704
|
+
const childValue = child.props.value;
|
|
1705
|
+
if (childValue === value && "children" in child.props) {
|
|
1706
|
+
const children2 = child.props.children;
|
|
1707
|
+
return children2;
|
|
1708
|
+
}
|
|
1709
|
+
}
|
|
1710
|
+
if ("children" in child.props) {
|
|
1711
|
+
const children2 = findPreviewRecursive(
|
|
1712
|
+
child.props.children,
|
|
1713
|
+
value
|
|
1714
|
+
);
|
|
1715
|
+
if (children2 !== void 0) {
|
|
1716
|
+
return children2;
|
|
1717
|
+
}
|
|
1718
|
+
}
|
|
1719
|
+
}
|
|
1720
|
+
}
|
|
1721
|
+
}
|
|
1722
|
+
|
|
1723
|
+
// src/components/DropdownSelector/MenuList/index.tsx
|
|
1724
|
+
var import_react16 = require("react");
|
|
1725
|
+
var import_styled_components15 = __toESM(require("styled-components"));
|
|
1726
|
+
|
|
1727
|
+
// src/components/DropdownSelector/MenuList/MenuListContext.ts
|
|
1728
|
+
var import_react14 = require("react");
|
|
1729
|
+
var MenuListContext = (0, import_react14.createContext)({
|
|
1730
|
+
root: void 0,
|
|
1607
1731
|
value: "",
|
|
1732
|
+
values: [],
|
|
1608
1733
|
setValue: (_v) => {
|
|
1609
1734
|
}
|
|
1610
1735
|
});
|
|
1611
|
-
|
|
1612
|
-
|
|
1613
|
-
|
|
1614
|
-
|
|
1615
|
-
|
|
1616
|
-
const childArray = import_react17.default.Children.toArray(props.children);
|
|
1736
|
+
|
|
1737
|
+
// src/components/DropdownSelector/MenuList/internals/getValuesRecursive.tsx
|
|
1738
|
+
var import_react15 = __toESM(require("react"));
|
|
1739
|
+
function getValuesRecursive(children, values = []) {
|
|
1740
|
+
const childArray = import_react15.default.Children.toArray(children);
|
|
1617
1741
|
for (let i = 0; i < childArray.length; i++) {
|
|
1618
1742
|
const child = childArray[i];
|
|
1619
|
-
if (
|
|
1620
|
-
const
|
|
1621
|
-
if (
|
|
1622
|
-
|
|
1623
|
-
|
|
1743
|
+
if (import_react15.default.isValidElement(child)) {
|
|
1744
|
+
const props = child.props;
|
|
1745
|
+
if ("value" in props && typeof props.value === "string") {
|
|
1746
|
+
const childValue = props.value;
|
|
1747
|
+
values.push(childValue);
|
|
1748
|
+
}
|
|
1749
|
+
if ("children" in props && props.children) {
|
|
1750
|
+
getValuesRecursive(props.children, values);
|
|
1624
1751
|
}
|
|
1625
1752
|
}
|
|
1626
1753
|
}
|
|
1627
|
-
|
|
1628
|
-
|
|
1629
|
-
|
|
1630
|
-
|
|
1631
|
-
|
|
1632
|
-
|
|
1633
|
-
|
|
1634
|
-
|
|
1635
|
-
), /* @__PURE__ */
|
|
1636
|
-
|
|
1637
|
-
{
|
|
1638
|
-
invalid: props.invalid,
|
|
1639
|
-
disabled: props.disabled,
|
|
1640
|
-
onClick: () => {
|
|
1641
|
-
if (props.disabled === true)
|
|
1642
|
-
return;
|
|
1643
|
-
state.open();
|
|
1644
|
-
},
|
|
1645
|
-
ref: triggerRef
|
|
1646
|
-
},
|
|
1647
|
-
/* @__PURE__ */ import_react17.default.createElement(DropdownButtonText, null, props.placeholder !== void 0 && preview === void 0 ? props.placeholder : preview),
|
|
1648
|
-
/* @__PURE__ */ import_react17.default.createElement(DropdownButtonIcon, { name: "16/Menu" })
|
|
1649
|
-
), state.isOpen && /* @__PURE__ */ import_react17.default.createElement(
|
|
1650
|
-
DropdownPopover,
|
|
1754
|
+
}
|
|
1755
|
+
|
|
1756
|
+
// src/components/DropdownSelector/MenuList/index.tsx
|
|
1757
|
+
var import_jsx_runtime17 = require("react/jsx-runtime");
|
|
1758
|
+
function MenuList(props) {
|
|
1759
|
+
const root = (0, import_react16.useRef)(null);
|
|
1760
|
+
const values = [];
|
|
1761
|
+
getValuesRecursive(props.children, values);
|
|
1762
|
+
return /* @__PURE__ */ (0, import_jsx_runtime17.jsx)(StyledUl, { ref: root, children: /* @__PURE__ */ (0, import_jsx_runtime17.jsx)(
|
|
1763
|
+
MenuListContext.Provider,
|
|
1651
1764
|
{
|
|
1652
|
-
|
|
1653
|
-
|
|
1654
|
-
|
|
1655
|
-
|
|
1656
|
-
|
|
1657
|
-
|
|
1658
|
-
{
|
|
1659
|
-
value: {
|
|
1660
|
-
value: props.value,
|
|
1661
|
-
setValue: (v) => {
|
|
1662
|
-
props.onChange(v);
|
|
1663
|
-
state.close();
|
|
1664
|
-
}
|
|
1765
|
+
value: {
|
|
1766
|
+
value: props.value ?? "",
|
|
1767
|
+
root,
|
|
1768
|
+
values,
|
|
1769
|
+
setValue: (v) => {
|
|
1770
|
+
props.onChange?.(v);
|
|
1665
1771
|
}
|
|
1666
1772
|
},
|
|
1667
|
-
props.children
|
|
1668
|
-
|
|
1669
|
-
)
|
|
1773
|
+
children: props.children
|
|
1774
|
+
}
|
|
1775
|
+
) });
|
|
1670
1776
|
}
|
|
1671
|
-
var
|
|
1672
|
-
padding
|
|
1777
|
+
var StyledUl = import_styled_components15.default.ul`
|
|
1778
|
+
padding: 0;
|
|
1673
1779
|
margin: 0;
|
|
1674
|
-
box-sizing: border-box;
|
|
1675
|
-
list-style: none;
|
|
1676
|
-
overflow: auto;
|
|
1677
|
-
max-height: inherit;
|
|
1678
|
-
|
|
1679
|
-
${theme((o) => [
|
|
1680
|
-
o.bg.background1,
|
|
1681
|
-
o.border.default,
|
|
1682
|
-
o.borderRadius(8),
|
|
1683
|
-
o.padding.vertical(8)
|
|
1684
|
-
])}
|
|
1685
1780
|
`;
|
|
1686
|
-
|
|
1781
|
+
|
|
1782
|
+
// src/components/DropdownSelector/index.tsx
|
|
1783
|
+
var import_jsx_runtime18 = require("react/jsx-runtime");
|
|
1784
|
+
var defaultRequiredText = "*\u5FC5\u9808";
|
|
1785
|
+
function DropdownSelector(props) {
|
|
1786
|
+
const triggerRef = (0, import_react17.useRef)(null);
|
|
1787
|
+
const [isOpen, setIsOpen] = (0, import_react17.useState)(false);
|
|
1788
|
+
const preview = findPreviewRecursive(props.children, props.value);
|
|
1789
|
+
return /* @__PURE__ */ (0, import_jsx_runtime18.jsxs)(DropdownSelectorRoot, { "aria-disabled": props.disabled, children: [
|
|
1790
|
+
props.showLabel === true && /* @__PURE__ */ (0, import_jsx_runtime18.jsx)(
|
|
1791
|
+
DropdownFieldLabel,
|
|
1792
|
+
{
|
|
1793
|
+
label: props.label,
|
|
1794
|
+
required: props.required,
|
|
1795
|
+
requiredText: props.requiredText ?? defaultRequiredText,
|
|
1796
|
+
subLabel: props.subLabel
|
|
1797
|
+
}
|
|
1798
|
+
),
|
|
1799
|
+
/* @__PURE__ */ (0, import_jsx_runtime18.jsxs)(
|
|
1800
|
+
DropdownButton,
|
|
1801
|
+
{
|
|
1802
|
+
invalid: props.invalid,
|
|
1803
|
+
disabled: props.disabled,
|
|
1804
|
+
onClick: () => {
|
|
1805
|
+
if (props.disabled === true)
|
|
1806
|
+
return;
|
|
1807
|
+
setIsOpen(true);
|
|
1808
|
+
},
|
|
1809
|
+
ref: triggerRef,
|
|
1810
|
+
children: [
|
|
1811
|
+
/* @__PURE__ */ (0, import_jsx_runtime18.jsx)(DropdownButtonText, { children: props.placeholder !== void 0 && preview === void 0 ? props.placeholder : preview }),
|
|
1812
|
+
/* @__PURE__ */ (0, import_jsx_runtime18.jsx)(DropdownButtonIcon, { name: "16/Menu" })
|
|
1813
|
+
]
|
|
1814
|
+
}
|
|
1815
|
+
),
|
|
1816
|
+
/* @__PURE__ */ (0, import_jsx_runtime18.jsx)(
|
|
1817
|
+
DropdownPopover,
|
|
1818
|
+
{
|
|
1819
|
+
isOpen,
|
|
1820
|
+
onClose: () => setIsOpen(false),
|
|
1821
|
+
triggerRef,
|
|
1822
|
+
value: props.value,
|
|
1823
|
+
children: /* @__PURE__ */ (0, import_jsx_runtime18.jsx)(
|
|
1824
|
+
MenuList,
|
|
1825
|
+
{
|
|
1826
|
+
value: props.value,
|
|
1827
|
+
onChange: (v) => {
|
|
1828
|
+
props.onChange(v);
|
|
1829
|
+
setIsOpen(false);
|
|
1830
|
+
},
|
|
1831
|
+
children: props.children
|
|
1832
|
+
}
|
|
1833
|
+
)
|
|
1834
|
+
}
|
|
1835
|
+
),
|
|
1836
|
+
props.assistiveText !== void 0 && /* @__PURE__ */ (0, import_jsx_runtime18.jsx)(AssertiveText, { invalid: props.invalid, children: props.assistiveText })
|
|
1837
|
+
] });
|
|
1838
|
+
}
|
|
1839
|
+
var DropdownSelectorRoot = import_styled_components16.default.div`
|
|
1687
1840
|
display: inline-block;
|
|
1688
1841
|
width: 100%;
|
|
1689
1842
|
|
|
@@ -1692,12 +1845,12 @@ var DropdownSelectorRoot = import_styled_components15.default.div`
|
|
|
1692
1845
|
${theme((o) => o.disabled)}
|
|
1693
1846
|
}
|
|
1694
1847
|
`;
|
|
1695
|
-
var DropdownFieldLabel = (0,
|
|
1848
|
+
var DropdownFieldLabel = (0, import_styled_components16.default)(FieldLabel_default)`
|
|
1696
1849
|
width: 100%;
|
|
1697
1850
|
|
|
1698
1851
|
${theme((o) => o.margin.bottom(8))}
|
|
1699
1852
|
`;
|
|
1700
|
-
var DropdownButton =
|
|
1853
|
+
var DropdownButton = import_styled_components16.default.button`
|
|
1701
1854
|
display: flex;
|
|
1702
1855
|
justify-content: space-between;
|
|
1703
1856
|
align-items: center;
|
|
@@ -1720,15 +1873,15 @@ var DropdownButton = import_styled_components15.default.button`
|
|
|
1720
1873
|
invalid === true && o.outline.assertive
|
|
1721
1874
|
])}
|
|
1722
1875
|
`;
|
|
1723
|
-
var DropdownButtonText =
|
|
1876
|
+
var DropdownButtonText = import_styled_components16.default.span`
|
|
1724
1877
|
text-align: left;
|
|
1725
1878
|
|
|
1726
1879
|
${theme((o) => [o.typography(14), o.font.text2])}
|
|
1727
1880
|
`;
|
|
1728
|
-
var DropdownButtonIcon = (0,
|
|
1881
|
+
var DropdownButtonIcon = (0, import_styled_components16.default)(Icon_default)`
|
|
1729
1882
|
${theme((o) => [o.font.text2])}
|
|
1730
1883
|
`;
|
|
1731
|
-
var AssertiveText =
|
|
1884
|
+
var AssertiveText = import_styled_components16.default.div`
|
|
1732
1885
|
${({ invalid }) => theme((o) => [
|
|
1733
1886
|
o.typography(14),
|
|
1734
1887
|
o.margin.top(8),
|
|
@@ -1736,129 +1889,204 @@ var AssertiveText = import_styled_components15.default.div`
|
|
|
1736
1889
|
])}
|
|
1737
1890
|
`;
|
|
1738
1891
|
|
|
1739
|
-
// src/components/DropdownSelector/
|
|
1740
|
-
var
|
|
1741
|
-
var import_styled_components16 = __toESM(require("styled-components"));
|
|
1742
|
-
var import_utils7 = require("@charcoal-ui/utils");
|
|
1892
|
+
// src/components/DropdownSelector/DropdownMenuItem.tsx
|
|
1893
|
+
var import_styled_components18 = __toESM(require("styled-components"));
|
|
1743
1894
|
|
|
1744
|
-
// src/components/DropdownSelector/
|
|
1745
|
-
|
|
1746
|
-
|
|
1747
|
-
|
|
1748
|
-
|
|
1749
|
-
|
|
1750
|
-
const parentRect = parent.getBoundingClientRect();
|
|
1751
|
-
if (rect.bottom > parentRect.bottom) {
|
|
1752
|
-
parent.scrollTo({
|
|
1753
|
-
top: parent.scrollTop + rect.bottom - parentRect.bottom
|
|
1754
|
-
});
|
|
1755
|
-
} else if (rect.top < parentRect.top) {
|
|
1756
|
-
parent.scrollTo({
|
|
1757
|
-
top: parent.scrollTop - (parentRect.top - rect.top)
|
|
1758
|
-
});
|
|
1759
|
-
}
|
|
1895
|
+
// src/components/DropdownSelector/ListItem/index.tsx
|
|
1896
|
+
var import_styled_components17 = __toESM(require("styled-components"));
|
|
1897
|
+
var import_jsx_runtime19 = require("react/jsx-runtime");
|
|
1898
|
+
function ListItem(props) {
|
|
1899
|
+
const { children, ...rest } = props;
|
|
1900
|
+
return /* @__PURE__ */ (0, import_jsx_runtime19.jsx)(StyledLi, { role: "option", children: /* @__PURE__ */ (0, import_jsx_runtime19.jsx)(ItemDiv, { ...rest, children: props.children }) });
|
|
1760
1901
|
}
|
|
1902
|
+
var StyledLi = import_styled_components17.default.li`
|
|
1903
|
+
list-style: none;
|
|
1904
|
+
`;
|
|
1905
|
+
var ItemDiv = import_styled_components17.default.div`
|
|
1906
|
+
display: flex;
|
|
1907
|
+
align-items: center;
|
|
1908
|
+
min-height: 40px;
|
|
1909
|
+
cursor: pointer;
|
|
1910
|
+
outline: none;
|
|
1911
|
+
|
|
1912
|
+
${theme((o) => [o.padding.horizontal(16), o.disabled])}
|
|
1913
|
+
|
|
1914
|
+
&[aria-disabled="true"] {
|
|
1915
|
+
cursor: default;
|
|
1916
|
+
}
|
|
1917
|
+
|
|
1918
|
+
:hover,
|
|
1919
|
+
:focus,
|
|
1920
|
+
:focus-within {
|
|
1921
|
+
${theme((o) => [o.bg.surface3])}
|
|
1922
|
+
}
|
|
1923
|
+
`;
|
|
1761
1924
|
|
|
1762
|
-
// src/components/DropdownSelector/
|
|
1763
|
-
|
|
1764
|
-
|
|
1765
|
-
|
|
1766
|
-
|
|
1925
|
+
// src/components/DropdownSelector/MenuItem/internals/useMenuItemHandleKeyDown.tsx
|
|
1926
|
+
var import_react18 = require("react");
|
|
1927
|
+
|
|
1928
|
+
// src/components/DropdownSelector/MenuItem/internals/handleFocusByKeyBoard.tsx
|
|
1929
|
+
function handleFocusByKeyBoard(element, parent) {
|
|
1930
|
+
const isScrollable = parent.scrollHeight > parent.clientHeight;
|
|
1931
|
+
if (isScrollable) {
|
|
1932
|
+
const rect = element.getBoundingClientRect();
|
|
1933
|
+
const parentRect = parent.getBoundingClientRect();
|
|
1934
|
+
if (rect.bottom > parentRect.bottom) {
|
|
1935
|
+
parent.scrollTo({
|
|
1936
|
+
top: parent.scrollTop + rect.bottom - parentRect.bottom
|
|
1937
|
+
});
|
|
1938
|
+
} else if (rect.top < parentRect.top) {
|
|
1939
|
+
parent.scrollTo({
|
|
1940
|
+
top: parent.scrollTop - (parentRect.top - rect.top)
|
|
1941
|
+
});
|
|
1942
|
+
}
|
|
1943
|
+
} else {
|
|
1944
|
+
scrollIfNeeded(element);
|
|
1945
|
+
}
|
|
1946
|
+
}
|
|
1947
|
+
function scrollIfNeeded(element) {
|
|
1948
|
+
const elementRect = element.getBoundingClientRect();
|
|
1949
|
+
const isVisible = elementRect.top >= 0 && elementRect.bottom <= (window.innerHeight || document.documentElement.clientHeight);
|
|
1950
|
+
if (!isVisible) {
|
|
1951
|
+
element.scrollIntoView({
|
|
1952
|
+
block: "nearest"
|
|
1953
|
+
});
|
|
1767
1954
|
}
|
|
1768
1955
|
}
|
|
1769
1956
|
|
|
1770
|
-
// src/components/DropdownSelector/
|
|
1771
|
-
function
|
|
1772
|
-
const {
|
|
1773
|
-
const
|
|
1774
|
-
|
|
1775
|
-
|
|
1776
|
-
};
|
|
1777
|
-
|
|
1778
|
-
|
|
1779
|
-
|
|
1780
|
-
|
|
1781
|
-
|
|
1782
|
-
e.
|
|
1783
|
-
|
|
1784
|
-
|
|
1785
|
-
|
|
1786
|
-
|
|
1787
|
-
|
|
1788
|
-
|
|
1789
|
-
|
|
1790
|
-
|
|
1791
|
-
|
|
1792
|
-
|
|
1793
|
-
|
|
1794
|
-
} else if (e.key === "ArrowDown") {
|
|
1795
|
-
e.preventDefault();
|
|
1796
|
-
const next = e.currentTarget.nextElementSibling;
|
|
1797
|
-
if (next === null) {
|
|
1798
|
-
focusIfHTMLLIElement(e.currentTarget.parentElement?.firstChild);
|
|
1957
|
+
// src/components/DropdownSelector/MenuItem/internals/useMenuItemHandleKeyDown.tsx
|
|
1958
|
+
function useMenuItemHandleKeyDown(value) {
|
|
1959
|
+
const { setValue, root, values } = (0, import_react18.useContext)(MenuListContext);
|
|
1960
|
+
const setContextValue = (0, import_react18.useCallback)(() => {
|
|
1961
|
+
if (value !== void 0)
|
|
1962
|
+
setValue(value);
|
|
1963
|
+
}, [value, setValue]);
|
|
1964
|
+
const handleKeyDown = (0, import_react18.useCallback)(
|
|
1965
|
+
(e) => {
|
|
1966
|
+
if (e.key === "Enter") {
|
|
1967
|
+
setContextValue();
|
|
1968
|
+
} else if (e.key === "ArrowUp" || e.key === "ArrowDown") {
|
|
1969
|
+
e.preventDefault();
|
|
1970
|
+
if (!values || value === void 0)
|
|
1971
|
+
return;
|
|
1972
|
+
const index = values.indexOf(value);
|
|
1973
|
+
if (index === -1)
|
|
1974
|
+
return;
|
|
1975
|
+
const focusValue = e.key === "ArrowUp" ? index - 1 < 0 ? values[values.length - 1] : values[index - 1] : index + 1 >= values.length ? values[0] : values[index + 1];
|
|
1976
|
+
const next = root?.current?.querySelector(`[data-key='${focusValue}']`);
|
|
1977
|
+
if (next instanceof HTMLElement) {
|
|
1978
|
+
next.focus({ preventScroll: true });
|
|
1979
|
+
if (root?.current?.parentElement) {
|
|
1980
|
+
handleFocusByKeyBoard(next, root.current.parentElement);
|
|
1799
1981
|
}
|
|
1800
|
-
focusIfHTMLLIElement(next);
|
|
1801
|
-
} else if (e.key === " ") {
|
|
1802
|
-
e.preventDefault();
|
|
1803
1982
|
}
|
|
1804
|
-
}
|
|
1805
|
-
onClick: onSelect,
|
|
1806
|
-
tabIndex: -1
|
|
1983
|
+
}
|
|
1807
1984
|
},
|
|
1808
|
-
|
|
1809
|
-
/* @__PURE__ */ import_react18.default.createElement(OptionText, { isSelected }, props.children)
|
|
1985
|
+
[setContextValue, value, root, values]
|
|
1810
1986
|
);
|
|
1987
|
+
return [handleKeyDown, setContextValue];
|
|
1811
1988
|
}
|
|
1812
|
-
var OptionRoot = import_styled_components16.default.li`
|
|
1813
|
-
display: flex;
|
|
1814
|
-
align-items: center;
|
|
1815
|
-
gap: ${({ theme: theme4 }) => (0, import_utils7.px)(theme4.spacing[4])};
|
|
1816
|
-
height: 40px;
|
|
1817
|
-
cursor: pointer;
|
|
1818
|
-
outline: none;
|
|
1819
1989
|
|
|
1820
|
-
|
|
1990
|
+
// src/components/DropdownSelector/MenuItem/index.tsx
|
|
1991
|
+
var import_jsx_runtime20 = require("react/jsx-runtime");
|
|
1992
|
+
function MenuItem(props) {
|
|
1993
|
+
const { children, as, ...rest } = props;
|
|
1994
|
+
const [handleKeyDown, setContextValue] = useMenuItemHandleKeyDown(props.value);
|
|
1995
|
+
return /* @__PURE__ */ (0, import_jsx_runtime20.jsx)(
|
|
1996
|
+
ListItem,
|
|
1997
|
+
{
|
|
1998
|
+
...rest,
|
|
1999
|
+
as,
|
|
2000
|
+
"data-key": props.value,
|
|
2001
|
+
onKeyDown: handleKeyDown,
|
|
2002
|
+
onClick: props.disabled === true ? void 0 : setContextValue,
|
|
2003
|
+
tabIndex: -1,
|
|
2004
|
+
"aria-disabled": props.disabled,
|
|
2005
|
+
children: props.children
|
|
2006
|
+
}
|
|
2007
|
+
);
|
|
2008
|
+
}
|
|
1821
2009
|
|
|
1822
|
-
|
|
1823
|
-
|
|
1824
|
-
|
|
2010
|
+
// src/components/DropdownSelector/DropdownMenuItem.tsx
|
|
2011
|
+
var import_react19 = require("react");
|
|
2012
|
+
var import_jsx_runtime21 = require("react/jsx-runtime");
|
|
2013
|
+
function DropdownMenuItem(props) {
|
|
2014
|
+
const { value: ctxValue } = (0, import_react19.useContext)(MenuListContext);
|
|
2015
|
+
const isSelected = props.value === ctxValue;
|
|
2016
|
+
const { children, ...rest } = props;
|
|
2017
|
+
return /* @__PURE__ */ (0, import_jsx_runtime21.jsxs)(MenuItem, { ...rest, children: [
|
|
2018
|
+
isSelected && /* @__PURE__ */ (0, import_jsx_runtime21.jsx)(Text2ColorIcon, { name: "16/Check" }),
|
|
2019
|
+
/* @__PURE__ */ (0, import_jsx_runtime21.jsx)(StyledSpan, { isSelected, children: props.children })
|
|
2020
|
+
] });
|
|
2021
|
+
}
|
|
2022
|
+
var StyledSpan = import_styled_components18.default.span`
|
|
2023
|
+
${theme((o) => [o.typography(14), o.font.text2])};
|
|
2024
|
+
display: flex;
|
|
2025
|
+
align-items: center;
|
|
2026
|
+
width: 100%;
|
|
2027
|
+
margin-left: ${({ isSelected }) => isSelected === true ? 0 : 20}px;
|
|
1825
2028
|
`;
|
|
1826
|
-
var
|
|
2029
|
+
var Text2ColorIcon = (0, import_styled_components18.default)(Icon_default)`
|
|
1827
2030
|
${theme((o) => [o.font.text2])}
|
|
2031
|
+
padding-right: 4px;
|
|
1828
2032
|
`;
|
|
1829
|
-
|
|
2033
|
+
|
|
2034
|
+
// src/components/DropdownSelector/MenuItemGroup/index.tsx
|
|
2035
|
+
var import_styled_components19 = __toESM(require("styled-components"));
|
|
2036
|
+
var import_jsx_runtime22 = require("react/jsx-runtime");
|
|
2037
|
+
function MenuItemGroup(props) {
|
|
2038
|
+
return /* @__PURE__ */ (0, import_jsx_runtime22.jsxs)(StyledLi2, { role: "presentation", children: [
|
|
2039
|
+
/* @__PURE__ */ (0, import_jsx_runtime22.jsx)(TextSpan, { children: props.text }),
|
|
2040
|
+
/* @__PURE__ */ (0, import_jsx_runtime22.jsx)(StyledUl2, { role: "group", children: props.children })
|
|
2041
|
+
] });
|
|
2042
|
+
}
|
|
2043
|
+
var TextSpan = import_styled_components19.default.span`
|
|
2044
|
+
display: block;
|
|
2045
|
+
color: ${({ theme: theme4 }) => theme4.color.text3};
|
|
2046
|
+
font-size: 12px;
|
|
2047
|
+
font-weight: bold;
|
|
2048
|
+
padding: 12px 0 8px 16px;
|
|
2049
|
+
`;
|
|
2050
|
+
var StyledUl2 = import_styled_components19.default.ul`
|
|
2051
|
+
padding-left: 0;
|
|
2052
|
+
margin: 0;
|
|
2053
|
+
box-sizing: border-box;
|
|
2054
|
+
list-style: none;
|
|
2055
|
+
overflow: hidden;
|
|
2056
|
+
`;
|
|
2057
|
+
var StyledLi2 = import_styled_components19.default.li`
|
|
1830
2058
|
display: block;
|
|
1831
|
-
${theme((o) => [o.typography(14), o.font.text2])}
|
|
1832
|
-
margin-left: ${({ isSelected }) => isSelected === true ? 0 : 20}px;
|
|
1833
2059
|
`;
|
|
1834
2060
|
|
|
1835
2061
|
// src/components/SegmentedControl/index.tsx
|
|
1836
|
-
var
|
|
1837
|
-
var
|
|
2062
|
+
var import_react21 = require("react");
|
|
2063
|
+
var import_react_stately2 = require("react-stately");
|
|
1838
2064
|
var import_radio = require("@react-aria/radio");
|
|
1839
|
-
var
|
|
1840
|
-
var
|
|
2065
|
+
var import_styled_components20 = __toESM(require("styled-components"));
|
|
2066
|
+
var import_utils7 = require("@charcoal-ui/utils");
|
|
1841
2067
|
|
|
1842
2068
|
// src/components/SegmentedControl/RadioGroupContext.tsx
|
|
1843
|
-
var
|
|
1844
|
-
var
|
|
2069
|
+
var import_react20 = require("react");
|
|
2070
|
+
var import_jsx_runtime23 = require("react/jsx-runtime");
|
|
2071
|
+
var RadioContext = (0, import_react20.createContext)(null);
|
|
1845
2072
|
var RadioProvider = ({
|
|
1846
2073
|
value,
|
|
1847
2074
|
children
|
|
1848
2075
|
}) => {
|
|
1849
|
-
return /* @__PURE__ */
|
|
2076
|
+
return /* @__PURE__ */ (0, import_jsx_runtime23.jsx)(RadioContext.Provider, { value, children });
|
|
1850
2077
|
};
|
|
1851
2078
|
var useRadioContext = () => {
|
|
1852
|
-
const state = (0,
|
|
2079
|
+
const state = (0, import_react20.useContext)(RadioContext);
|
|
1853
2080
|
if (state === null)
|
|
1854
2081
|
throw new Error("`<RadioProvider>` is not likely mounted.");
|
|
1855
2082
|
return state;
|
|
1856
2083
|
};
|
|
1857
2084
|
|
|
1858
2085
|
// src/components/SegmentedControl/index.tsx
|
|
1859
|
-
var
|
|
2086
|
+
var import_jsx_runtime24 = require("react/jsx-runtime");
|
|
2087
|
+
var SegmentedControl = (0, import_react21.forwardRef)(
|
|
1860
2088
|
function SegmentedControlInner(props, ref) {
|
|
1861
|
-
const ariaRadioGroupProps = (0,
|
|
2089
|
+
const ariaRadioGroupProps = (0, import_react21.useMemo)(
|
|
1862
2090
|
() => ({
|
|
1863
2091
|
...props,
|
|
1864
2092
|
isDisabled: props.disabled,
|
|
@@ -1868,30 +2096,34 @@ var SegmentedControl = (0, import_react20.forwardRef)(
|
|
|
1868
2096
|
}),
|
|
1869
2097
|
[props]
|
|
1870
2098
|
);
|
|
1871
|
-
const state = (0,
|
|
2099
|
+
const state = (0, import_react_stately2.useRadioGroupState)(ariaRadioGroupProps);
|
|
1872
2100
|
const { radioGroupProps } = (0, import_radio.useRadioGroup)(ariaRadioGroupProps, state);
|
|
1873
|
-
const segmentedControlItems = (0,
|
|
2101
|
+
const segmentedControlItems = (0, import_react21.useMemo)(() => {
|
|
1874
2102
|
return props.data.map(
|
|
1875
2103
|
(d) => typeof d === "string" ? { value: d, label: d } : d
|
|
1876
2104
|
);
|
|
1877
2105
|
}, [props.data]);
|
|
1878
|
-
return /* @__PURE__ */
|
|
2106
|
+
return /* @__PURE__ */ (0, import_jsx_runtime24.jsx)(SegmentedControlRoot, { ref, ...radioGroupProps, children: /* @__PURE__ */ (0, import_jsx_runtime24.jsx)(RadioProvider, { value: state, children: segmentedControlItems.map((item) => /* @__PURE__ */ (0, import_jsx_runtime24.jsx)(
|
|
1879
2107
|
Segmented,
|
|
1880
2108
|
{
|
|
1881
|
-
key: item.value,
|
|
1882
2109
|
value: item.value,
|
|
1883
|
-
disabled: item.disabled
|
|
2110
|
+
disabled: item.disabled,
|
|
2111
|
+
children: item.label
|
|
1884
2112
|
},
|
|
1885
|
-
item.
|
|
1886
|
-
))));
|
|
2113
|
+
item.value
|
|
2114
|
+
)) }) });
|
|
1887
2115
|
}
|
|
1888
2116
|
);
|
|
1889
|
-
var SegmentedControl_default = (0,
|
|
1890
|
-
var Segmented = (
|
|
2117
|
+
var SegmentedControl_default = (0, import_react21.memo)(SegmentedControl);
|
|
2118
|
+
var Segmented = (props) => {
|
|
1891
2119
|
const state = useRadioContext();
|
|
1892
|
-
const ref = (0,
|
|
1893
|
-
const ariaRadioProps = (0,
|
|
1894
|
-
() => ({
|
|
2120
|
+
const ref = (0, import_react21.useRef)(null);
|
|
2121
|
+
const ariaRadioProps = (0, import_react21.useMemo)(
|
|
2122
|
+
() => ({
|
|
2123
|
+
value: props.value,
|
|
2124
|
+
isDisabled: props.disabled,
|
|
2125
|
+
children: props.children
|
|
2126
|
+
}),
|
|
1895
2127
|
[props]
|
|
1896
2128
|
);
|
|
1897
2129
|
const { inputProps, isDisabled, isSelected } = (0, import_radio.useRadio)(
|
|
@@ -1899,30 +2131,32 @@ var Segmented = ({ children, ...props }) => {
|
|
|
1899
2131
|
state,
|
|
1900
2132
|
ref
|
|
1901
2133
|
);
|
|
1902
|
-
return /* @__PURE__ */
|
|
2134
|
+
return /* @__PURE__ */ (0, import_jsx_runtime24.jsxs)(
|
|
1903
2135
|
SegmentedRoot,
|
|
1904
2136
|
{
|
|
1905
2137
|
"aria-disabled": isDisabled || state.isReadOnly,
|
|
1906
|
-
checked: isSelected
|
|
1907
|
-
|
|
1908
|
-
|
|
1909
|
-
|
|
2138
|
+
checked: isSelected,
|
|
2139
|
+
children: [
|
|
2140
|
+
/* @__PURE__ */ (0, import_jsx_runtime24.jsx)(SegmentedInput, { ...inputProps, ref }),
|
|
2141
|
+
/* @__PURE__ */ (0, import_jsx_runtime24.jsx)(RadioLabel2, { children: /* @__PURE__ */ (0, import_jsx_runtime24.jsx)(SegmentedLabelInner, { children: props.children }) })
|
|
2142
|
+
]
|
|
2143
|
+
}
|
|
1910
2144
|
);
|
|
1911
2145
|
};
|
|
1912
|
-
var SegmentedControlRoot =
|
|
2146
|
+
var SegmentedControlRoot = import_styled_components20.default.div`
|
|
1913
2147
|
display: inline-flex;
|
|
1914
2148
|
align-items: center;
|
|
1915
2149
|
|
|
1916
2150
|
${theme((o) => [o.bg.surface3, o.borderRadius(16)])}
|
|
1917
2151
|
`;
|
|
1918
|
-
var SegmentedRoot =
|
|
2152
|
+
var SegmentedRoot = import_styled_components20.default.label`
|
|
1919
2153
|
position: relative;
|
|
1920
2154
|
display: flex;
|
|
1921
2155
|
align-items: center;
|
|
1922
2156
|
cursor: pointer;
|
|
1923
2157
|
height: 32px;
|
|
1924
2158
|
|
|
1925
|
-
${
|
|
2159
|
+
${import_utils7.disabledSelector} {
|
|
1926
2160
|
cursor: default;
|
|
1927
2161
|
}
|
|
1928
2162
|
|
|
@@ -1934,7 +2168,7 @@ var SegmentedRoot = import_styled_components17.default.label`
|
|
|
1934
2168
|
checked === true ? o.font.text5 : o.font.text2
|
|
1935
2169
|
])}
|
|
1936
2170
|
`;
|
|
1937
|
-
var SegmentedInput =
|
|
2171
|
+
var SegmentedInput = import_styled_components20.default.input`
|
|
1938
2172
|
position: absolute;
|
|
1939
2173
|
|
|
1940
2174
|
height: 0px;
|
|
@@ -1948,26 +2182,27 @@ var SegmentedInput = import_styled_components17.default.input`
|
|
|
1948
2182
|
white-space: nowrap;
|
|
1949
2183
|
opacity: 0;
|
|
1950
2184
|
`;
|
|
1951
|
-
var RadioLabel2 =
|
|
2185
|
+
var RadioLabel2 = import_styled_components20.default.div`
|
|
1952
2186
|
background: transparent;
|
|
1953
2187
|
display: flex;
|
|
1954
2188
|
align-items: center;
|
|
1955
2189
|
height: 22px;
|
|
1956
2190
|
`;
|
|
1957
|
-
var SegmentedLabelInner =
|
|
2191
|
+
var SegmentedLabelInner = import_styled_components20.default.div`
|
|
1958
2192
|
${theme((o) => [o.typography(14)])}
|
|
1959
2193
|
`;
|
|
1960
2194
|
|
|
1961
2195
|
// src/components/Checkbox/index.tsx
|
|
1962
|
-
var
|
|
1963
|
-
var
|
|
2196
|
+
var import_react22 = require("react");
|
|
2197
|
+
var import_styled_components21 = __toESM(require("styled-components"));
|
|
1964
2198
|
var import_checkbox = require("@react-aria/checkbox");
|
|
1965
|
-
var
|
|
1966
|
-
var
|
|
1967
|
-
var
|
|
1968
|
-
var
|
|
2199
|
+
var import_utils8 = require("@react-aria/utils");
|
|
2200
|
+
var import_react_stately3 = require("react-stately");
|
|
2201
|
+
var import_utils9 = require("@charcoal-ui/utils");
|
|
2202
|
+
var import_jsx_runtime25 = require("react/jsx-runtime");
|
|
2203
|
+
var Checkbox = (0, import_react22.forwardRef)(
|
|
1969
2204
|
function CheckboxInner(props, ref) {
|
|
1970
|
-
const ariaCheckboxProps = (0,
|
|
2205
|
+
const ariaCheckboxProps = (0, import_react22.useMemo)(
|
|
1971
2206
|
() => ({
|
|
1972
2207
|
...props,
|
|
1973
2208
|
isSelected: props.checked,
|
|
@@ -1977,33 +2212,39 @@ var Checkbox = (0, import_react21.forwardRef)(
|
|
|
1977
2212
|
}),
|
|
1978
2213
|
[props]
|
|
1979
2214
|
);
|
|
1980
|
-
const state = (0,
|
|
1981
|
-
const objectRef = (0,
|
|
2215
|
+
const state = (0, import_react_stately3.useToggleState)(ariaCheckboxProps);
|
|
2216
|
+
const objectRef = (0, import_utils8.useObjectRef)(ref);
|
|
1982
2217
|
const { inputProps } = (0, import_checkbox.useCheckbox)(ariaCheckboxProps, state, objectRef);
|
|
1983
2218
|
const isDisabled = (props.disabled ?? false) || (props.readonly ?? false);
|
|
1984
|
-
return /* @__PURE__ */
|
|
2219
|
+
return /* @__PURE__ */ (0, import_jsx_runtime25.jsxs)(InputRoot, { "aria-disabled": isDisabled, children: [
|
|
2220
|
+
/* @__PURE__ */ (0, import_jsx_runtime25.jsxs)(CheckboxRoot, { children: [
|
|
2221
|
+
/* @__PURE__ */ (0, import_jsx_runtime25.jsx)(CheckboxInput, { type: "checkbox", ...inputProps }),
|
|
2222
|
+
/* @__PURE__ */ (0, import_jsx_runtime25.jsx)(CheckboxInputOverlay, { "aria-hidden": true, checked: inputProps.checked, children: /* @__PURE__ */ (0, import_jsx_runtime25.jsx)(Icon_default, { name: "24/Check", unsafeNonGuidelineScale: 2 / 3 }) })
|
|
2223
|
+
] }),
|
|
2224
|
+
"children" in props && /* @__PURE__ */ (0, import_jsx_runtime25.jsx)(InputLabel, { children: props.children })
|
|
2225
|
+
] });
|
|
1985
2226
|
}
|
|
1986
2227
|
);
|
|
1987
|
-
var Checkbox_default = (0,
|
|
1988
|
-
var hiddenCss =
|
|
2228
|
+
var Checkbox_default = (0, import_react22.memo)(Checkbox);
|
|
2229
|
+
var hiddenCss = import_styled_components21.css`
|
|
1989
2230
|
visibility: hidden;
|
|
1990
2231
|
`;
|
|
1991
|
-
var InputRoot =
|
|
2232
|
+
var InputRoot = import_styled_components21.default.label`
|
|
1992
2233
|
position: relative;
|
|
1993
2234
|
display: flex;
|
|
1994
2235
|
|
|
1995
2236
|
cursor: pointer;
|
|
1996
|
-
${
|
|
2237
|
+
${import_utils9.disabledSelector} {
|
|
1997
2238
|
cursor: default;
|
|
1998
2239
|
}
|
|
1999
2240
|
|
|
2000
|
-
gap: ${({ theme: theme4 }) => (0,
|
|
2241
|
+
gap: ${({ theme: theme4 }) => (0, import_utils9.px)(theme4.spacing[4])};
|
|
2001
2242
|
${theme((o) => [o.disabled])}
|
|
2002
2243
|
`;
|
|
2003
|
-
var CheckboxRoot =
|
|
2244
|
+
var CheckboxRoot = import_styled_components21.default.div`
|
|
2004
2245
|
position: relative;
|
|
2005
2246
|
`;
|
|
2006
|
-
var CheckboxInput =
|
|
2247
|
+
var CheckboxInput = import_styled_components21.default.input`
|
|
2007
2248
|
&[type='checkbox'] {
|
|
2008
2249
|
appearance: none;
|
|
2009
2250
|
display: block;
|
|
@@ -2026,7 +2267,7 @@ var CheckboxInput = import_styled_components18.default.input`
|
|
|
2026
2267
|
transition: all 0.2s !important;
|
|
2027
2268
|
}
|
|
2028
2269
|
`;
|
|
2029
|
-
var CheckboxInputOverlay =
|
|
2270
|
+
var CheckboxInputOverlay = import_styled_components21.default.div`
|
|
2030
2271
|
position: absolute;
|
|
2031
2272
|
top: -2px;
|
|
2032
2273
|
left: -2px;
|
|
@@ -2039,7 +2280,7 @@ var CheckboxInputOverlay = import_styled_components18.default.div`
|
|
|
2039
2280
|
|
|
2040
2281
|
${({ checked }) => checked !== true && hiddenCss};
|
|
2041
2282
|
`;
|
|
2042
|
-
var InputLabel =
|
|
2283
|
+
var InputLabel = import_styled_components21.default.div`
|
|
2043
2284
|
${theme((o) => [o.font.text2])}
|
|
2044
2285
|
|
|
2045
2286
|
font-size: 14px;
|
|
@@ -2048,16 +2289,17 @@ var InputLabel = import_styled_components18.default.div`
|
|
|
2048
2289
|
`;
|
|
2049
2290
|
|
|
2050
2291
|
// src/components/TagItem/index.tsx
|
|
2051
|
-
var
|
|
2052
|
-
var
|
|
2053
|
-
var
|
|
2054
|
-
var
|
|
2292
|
+
var import_react23 = require("react");
|
|
2293
|
+
var import_utils10 = require("@react-aria/utils");
|
|
2294
|
+
var import_styled_components22 = __toESM(require("styled-components"));
|
|
2295
|
+
var import_utils11 = require("@charcoal-ui/utils");
|
|
2055
2296
|
var import_button = require("@react-aria/button");
|
|
2297
|
+
var import_jsx_runtime26 = require("react/jsx-runtime");
|
|
2056
2298
|
var sizeMap = {
|
|
2057
2299
|
S: 32,
|
|
2058
2300
|
M: 40
|
|
2059
2301
|
};
|
|
2060
|
-
var TagItem = (0,
|
|
2302
|
+
var TagItem = (0, import_react23.forwardRef)(
|
|
2061
2303
|
function TagItemInner({
|
|
2062
2304
|
label,
|
|
2063
2305
|
translatedLabel,
|
|
@@ -2069,8 +2311,8 @@ var TagItem = (0, import_react22.forwardRef)(
|
|
|
2069
2311
|
className,
|
|
2070
2312
|
...props
|
|
2071
2313
|
}, _ref) {
|
|
2072
|
-
const ref = (0,
|
|
2073
|
-
const ariaButtonProps = (0,
|
|
2314
|
+
const ref = (0, import_utils10.useObjectRef)(_ref);
|
|
2315
|
+
const ariaButtonProps = (0, import_react23.useMemo)(
|
|
2074
2316
|
() => ({
|
|
2075
2317
|
elementType: "a",
|
|
2076
2318
|
isDisabled: disabled,
|
|
@@ -2080,22 +2322,30 @@ var TagItem = (0, import_react22.forwardRef)(
|
|
|
2080
2322
|
);
|
|
2081
2323
|
const { buttonProps } = (0, import_button.useButton)(ariaButtonProps, ref);
|
|
2082
2324
|
const hasTranslatedLabel = translatedLabel !== void 0 && translatedLabel.length > 0;
|
|
2083
|
-
return /* @__PURE__ */
|
|
2325
|
+
return /* @__PURE__ */ (0, import_jsx_runtime26.jsxs)(
|
|
2084
2326
|
TagItemRoot,
|
|
2085
2327
|
{
|
|
2086
2328
|
ref,
|
|
2087
2329
|
size: hasTranslatedLabel ? "M" : size,
|
|
2088
2330
|
status,
|
|
2089
2331
|
...buttonProps,
|
|
2090
|
-
className
|
|
2091
|
-
|
|
2092
|
-
|
|
2093
|
-
|
|
2332
|
+
className,
|
|
2333
|
+
children: [
|
|
2334
|
+
/* @__PURE__ */ (0, import_jsx_runtime26.jsx)(Background, { bgColor, bgImage, status }),
|
|
2335
|
+
/* @__PURE__ */ (0, import_jsx_runtime26.jsxs)(Inner, { children: [
|
|
2336
|
+
/* @__PURE__ */ (0, import_jsx_runtime26.jsxs)(LabelWrapper, { isTranslate: hasTranslatedLabel, children: [
|
|
2337
|
+
hasTranslatedLabel && /* @__PURE__ */ (0, import_jsx_runtime26.jsx)(TranslatedLabel, { children: /* @__PURE__ */ (0, import_jsx_runtime26.jsx)(Label3, { children: translatedLabel }) }),
|
|
2338
|
+
/* @__PURE__ */ (0, import_jsx_runtime26.jsx)(Label3, { children: label })
|
|
2339
|
+
] }),
|
|
2340
|
+
status === "active" && /* @__PURE__ */ (0, import_jsx_runtime26.jsx)(Icon_default, { name: "16/Remove" })
|
|
2341
|
+
] })
|
|
2342
|
+
]
|
|
2343
|
+
}
|
|
2094
2344
|
);
|
|
2095
2345
|
}
|
|
2096
2346
|
);
|
|
2097
|
-
var TagItem_default = (0,
|
|
2098
|
-
var TagItemRoot =
|
|
2347
|
+
var TagItem_default = (0, import_react23.memo)(TagItem);
|
|
2348
|
+
var TagItemRoot = import_styled_components22.default.a`
|
|
2099
2349
|
isolation: isolate;
|
|
2100
2350
|
position: relative;
|
|
2101
2351
|
height: ${({ size }) => sizeMap[size]}px;
|
|
@@ -2115,12 +2365,12 @@ var TagItemRoot = import_styled_components19.default.a`
|
|
|
2115
2365
|
...status === "active" ? [o.padding.left(16), o.padding.right(8)] : []
|
|
2116
2366
|
])}
|
|
2117
2367
|
|
|
2118
|
-
${
|
|
2368
|
+
${import_utils11.disabledSelector} {
|
|
2119
2369
|
${theme((o) => [o.disabled])}
|
|
2120
2370
|
cursor: default;
|
|
2121
2371
|
}
|
|
2122
2372
|
`;
|
|
2123
|
-
var Background =
|
|
2373
|
+
var Background = import_styled_components22.default.div`
|
|
2124
2374
|
position: absolute;
|
|
2125
2375
|
z-index: 1;
|
|
2126
2376
|
top: 0;
|
|
@@ -2131,7 +2381,7 @@ var Background = import_styled_components19.default.div`
|
|
|
2131
2381
|
background-color: ${({ bgColor }) => bgColor};
|
|
2132
2382
|
${({ status }) => status === "inactive" && theme((o) => o.bg.surface3)}
|
|
2133
2383
|
|
|
2134
|
-
${({ bgImage }) => bgImage !== void 0 &&
|
|
2384
|
+
${({ bgImage }) => bgImage !== void 0 && import_styled_components22.css`
|
|
2135
2385
|
${theme((o) => [o.bg.surface4])}
|
|
2136
2386
|
&::before {
|
|
2137
2387
|
content: '';
|
|
@@ -2147,25 +2397,25 @@ var Background = import_styled_components19.default.div`
|
|
|
2147
2397
|
}
|
|
2148
2398
|
`}
|
|
2149
2399
|
`;
|
|
2150
|
-
var Inner =
|
|
2400
|
+
var Inner = import_styled_components22.default.div`
|
|
2151
2401
|
display: inline-flex;
|
|
2152
|
-
gap: ${({ theme: theme4 }) => (0,
|
|
2402
|
+
gap: ${({ theme: theme4 }) => (0, import_utils11.px)(theme4.spacing[8])};
|
|
2153
2403
|
align-items: center;
|
|
2154
2404
|
z-index: 2;
|
|
2155
2405
|
`;
|
|
2156
|
-
var labelCSS =
|
|
2406
|
+
var labelCSS = import_styled_components22.css`
|
|
2157
2407
|
${theme((o) => [o.typography(14).bold])}
|
|
2158
2408
|
`;
|
|
2159
|
-
var translateLabelCSS =
|
|
2409
|
+
var translateLabelCSS = import_styled_components22.css`
|
|
2160
2410
|
display: flex;
|
|
2161
2411
|
align-items: center;
|
|
2162
2412
|
flex-direction: column;
|
|
2163
2413
|
font-size: 10px;
|
|
2164
2414
|
`;
|
|
2165
|
-
var LabelWrapper =
|
|
2415
|
+
var LabelWrapper = import_styled_components22.default.div`
|
|
2166
2416
|
${({ isTranslate }) => isTranslate ?? false ? translateLabelCSS : labelCSS}
|
|
2167
2417
|
`;
|
|
2168
|
-
var Label3 =
|
|
2418
|
+
var Label3 = import_styled_components22.default.span`
|
|
2169
2419
|
max-width: 152px;
|
|
2170
2420
|
overflow: hidden;
|
|
2171
2421
|
text-overflow: ellipsis;
|
|
@@ -2174,7 +2424,7 @@ var Label3 = import_styled_components19.default.span`
|
|
|
2174
2424
|
color: inherit;
|
|
2175
2425
|
line-height: inherit;
|
|
2176
2426
|
`;
|
|
2177
|
-
var TranslatedLabel =
|
|
2427
|
+
var TranslatedLabel = import_styled_components22.default.div`
|
|
2178
2428
|
${theme((o) => [o.typography(12).bold])}
|
|
2179
2429
|
`;
|
|
2180
2430
|
// Annotate the CommonJS export names for ESM import in node:
|
|
@@ -2184,11 +2434,13 @@ var TranslatedLabel = import_styled_components19.default.div`
|
|
|
2184
2434
|
Checkbox,
|
|
2185
2435
|
Clickable,
|
|
2186
2436
|
ComponentAbstraction,
|
|
2437
|
+
DropdownMenuItem,
|
|
2187
2438
|
DropdownSelector,
|
|
2188
2439
|
Icon,
|
|
2189
2440
|
IconButton,
|
|
2190
2441
|
LoadingSpinner,
|
|
2191
2442
|
LoadingSpinnerIcon,
|
|
2443
|
+
MenuItemGroup,
|
|
2192
2444
|
Modal,
|
|
2193
2445
|
ModalAlign,
|
|
2194
2446
|
ModalBody,
|
|
@@ -2196,7 +2448,6 @@ var TranslatedLabel = import_styled_components19.default.div`
|
|
|
2196
2448
|
ModalHeader,
|
|
2197
2449
|
MultiSelect,
|
|
2198
2450
|
MultiSelectGroup,
|
|
2199
|
-
OptionItem,
|
|
2200
2451
|
OverlayProvider,
|
|
2201
2452
|
Radio,
|
|
2202
2453
|
RadioGroup,
|