@ceed/cds 1.14.0-next.5 → 1.15.0-next.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/components/FilterableCheckboxGroup/FilterableCheckboxGroup.d.ts +21 -0
- package/dist/components/FilterableCheckboxGroup/index.d.ts +3 -0
- package/dist/components/index.d.ts +1 -0
- package/dist/components/inputs/FilterableCheckboxGroup.md +179 -0
- package/dist/components/inputs/llms.txt +1 -0
- package/dist/index.cjs +485 -301
- package/dist/index.d.ts +1 -1
- package/dist/index.js +308 -124
- package/dist/llms.txt +1 -0
- package/framer/index.js +38 -38
- package/package.json +2 -2
package/dist/index.cjs
CHANGED
|
@@ -85,26 +85,26 @@ __export(index_exports, {
|
|
|
85
85
|
AccordionSummary: () => AccordionSummary,
|
|
86
86
|
Accordions: () => Accordions,
|
|
87
87
|
Alert: () => Alert,
|
|
88
|
-
AspectRatio: () =>
|
|
88
|
+
AspectRatio: () => import_joy61.AspectRatio,
|
|
89
89
|
Autocomplete: () => Autocomplete,
|
|
90
|
-
AutocompleteListbox: () =>
|
|
91
|
-
AutocompleteOption: () =>
|
|
90
|
+
AutocompleteListbox: () => import_joy61.AutocompleteListbox,
|
|
91
|
+
AutocompleteOption: () => import_joy61.AutocompleteOption,
|
|
92
92
|
Avatar: () => Avatar,
|
|
93
93
|
AvatarGroup: () => import_joy11.AvatarGroup,
|
|
94
|
-
Badge: () =>
|
|
94
|
+
Badge: () => import_joy61.Badge,
|
|
95
95
|
Box: () => Box,
|
|
96
96
|
Breadcrumbs: () => Breadcrumbs,
|
|
97
97
|
Button: () => Button,
|
|
98
|
-
ButtonGroup: () =>
|
|
98
|
+
ButtonGroup: () => import_joy61.ButtonGroup,
|
|
99
99
|
Calendar: () => Calendar,
|
|
100
|
-
Card: () =>
|
|
101
|
-
CardActions: () =>
|
|
102
|
-
CardContent: () =>
|
|
103
|
-
CardCover: () =>
|
|
104
|
-
CardOverflow: () =>
|
|
100
|
+
Card: () => import_joy61.Card,
|
|
101
|
+
CardActions: () => import_joy61.CardActions,
|
|
102
|
+
CardContent: () => import_joy61.CardContent,
|
|
103
|
+
CardCover: () => import_joy61.CardCover,
|
|
104
|
+
CardOverflow: () => import_joy61.CardOverflow,
|
|
105
105
|
Checkbox: () => Checkbox,
|
|
106
|
-
Chip: () =>
|
|
107
|
-
CircularProgress: () =>
|
|
106
|
+
Chip: () => import_joy61.Chip,
|
|
107
|
+
CircularProgress: () => import_joy61.CircularProgress,
|
|
108
108
|
Container: () => Container,
|
|
109
109
|
CurrencyInput: () => CurrencyInput,
|
|
110
110
|
DataTable: () => DataTable,
|
|
@@ -117,24 +117,25 @@ __export(index_exports, {
|
|
|
117
117
|
Divider: () => Divider,
|
|
118
118
|
Drawer: () => Drawer,
|
|
119
119
|
Dropdown: () => import_joy14.Dropdown,
|
|
120
|
+
FilterableCheckboxGroup: () => FilterableCheckboxGroup,
|
|
120
121
|
FormControl: () => FormControl,
|
|
121
122
|
FormHelperText: () => FormHelperText,
|
|
122
123
|
FormLabel: () => FormLabel,
|
|
123
|
-
Grid: () =>
|
|
124
|
+
Grid: () => import_joy45.Grid,
|
|
124
125
|
IconButton: () => IconButton,
|
|
125
126
|
IconMenuButton: () => IconMenuButton,
|
|
126
127
|
InfoSign: () => InfoSign,
|
|
127
128
|
Input: () => Input,
|
|
128
129
|
InsetDrawer: () => InsetDrawer,
|
|
129
|
-
LinearProgress: () =>
|
|
130
|
-
Link: () =>
|
|
131
|
-
List: () =>
|
|
132
|
-
ListDivider: () =>
|
|
133
|
-
ListItem: () =>
|
|
134
|
-
ListItemButton: () =>
|
|
135
|
-
ListItemContent: () =>
|
|
136
|
-
ListItemDecorator: () =>
|
|
137
|
-
ListSubheader: () =>
|
|
130
|
+
LinearProgress: () => import_joy61.LinearProgress,
|
|
131
|
+
Link: () => import_joy61.Link,
|
|
132
|
+
List: () => import_joy61.List,
|
|
133
|
+
ListDivider: () => import_joy61.ListDivider,
|
|
134
|
+
ListItem: () => import_joy61.ListItem,
|
|
135
|
+
ListItemButton: () => import_joy61.ListItemButton,
|
|
136
|
+
ListItemContent: () => import_joy61.ListItemContent,
|
|
137
|
+
ListItemDecorator: () => import_joy61.ListItemDecorator,
|
|
138
|
+
ListSubheader: () => import_joy61.ListSubheader,
|
|
138
139
|
Markdown: () => Markdown,
|
|
139
140
|
Menu: () => Menu,
|
|
140
141
|
MenuButton: () => MenuButton,
|
|
@@ -157,11 +158,11 @@ __export(index_exports, {
|
|
|
157
158
|
RadioList: () => RadioList,
|
|
158
159
|
Select: () => Select,
|
|
159
160
|
Sheet: () => Sheet,
|
|
160
|
-
Skeleton: () =>
|
|
161
|
-
Slider: () =>
|
|
161
|
+
Skeleton: () => import_joy61.Skeleton,
|
|
162
|
+
Slider: () => import_joy61.Slider,
|
|
162
163
|
Stack: () => import_joy3.Stack,
|
|
163
164
|
Step: () => Step,
|
|
164
|
-
StepButton: () =>
|
|
165
|
+
StepButton: () => import_joy61.StepButton,
|
|
165
166
|
StepIndicator: () => StepIndicator,
|
|
166
167
|
Stepper: () => Stepper,
|
|
167
168
|
Switch: () => Switch,
|
|
@@ -177,84 +178,84 @@ __export(index_exports, {
|
|
|
177
178
|
Tooltip: () => Tooltip,
|
|
178
179
|
Typography: () => Typography,
|
|
179
180
|
Uploader: () => Uploader,
|
|
180
|
-
accordionClasses: () =>
|
|
181
|
-
accordionDetailsClasses: () =>
|
|
182
|
-
accordionSummaryClasses: () =>
|
|
183
|
-
accordionsClasses: () =>
|
|
184
|
-
alertClasses: () =>
|
|
185
|
-
aspectRatioClasses: () =>
|
|
186
|
-
autocompleteClasses: () =>
|
|
187
|
-
autocompleteListboxClasses: () =>
|
|
188
|
-
autocompleteOptionClasses: () =>
|
|
189
|
-
avatarClasses: () =>
|
|
190
|
-
avatarGroupClasses: () =>
|
|
191
|
-
badgeClasses: () =>
|
|
192
|
-
boxClasses: () =>
|
|
193
|
-
breadcrumbsClasses: () =>
|
|
194
|
-
buttonClasses: () =>
|
|
195
|
-
cardActionsClasses: () =>
|
|
196
|
-
cardClasses: () =>
|
|
197
|
-
cardContentClasses: () =>
|
|
198
|
-
cardCoverClasses: () =>
|
|
199
|
-
cardOverflowClasses: () =>
|
|
200
|
-
checkboxClasses: () =>
|
|
201
|
-
chipClasses: () =>
|
|
202
|
-
circularProgressClasses: () =>
|
|
203
|
-
dialogActionsClasses: () =>
|
|
204
|
-
dialogContentClasses: () =>
|
|
205
|
-
dialogTitleClasses: () =>
|
|
206
|
-
dividerClasses: () =>
|
|
207
|
-
drawerClasses: () =>
|
|
208
|
-
extendTheme: () =>
|
|
209
|
-
formControlClasses: () =>
|
|
210
|
-
formHelperTextClasses: () =>
|
|
211
|
-
formLabelClasses: () =>
|
|
212
|
-
gridClasses: () =>
|
|
213
|
-
iconButtonClasses: () =>
|
|
214
|
-
inputClasses: () =>
|
|
215
|
-
linearProgressClasses: () =>
|
|
216
|
-
linkClasses: () =>
|
|
217
|
-
listClasses: () =>
|
|
218
|
-
listDividerClasses: () =>
|
|
219
|
-
listItemButtonClasses: () =>
|
|
220
|
-
listItemClasses: () =>
|
|
221
|
-
listItemContentClasses: () =>
|
|
222
|
-
listItemDecoratorClasses: () =>
|
|
223
|
-
listSubheaderClasses: () =>
|
|
224
|
-
menuButtonClasses: () =>
|
|
225
|
-
menuClasses: () =>
|
|
226
|
-
menuItemClasses: () =>
|
|
227
|
-
modalClasses: () =>
|
|
228
|
-
modalCloseClasses: () =>
|
|
229
|
-
modalDialogClasses: () =>
|
|
230
|
-
modalOverflowClasses: () =>
|
|
231
|
-
optionClasses: () =>
|
|
232
|
-
radioClasses: () =>
|
|
233
|
-
radioGroupClasses: () =>
|
|
234
|
-
selectClasses: () =>
|
|
235
|
-
sheetClasses: () =>
|
|
236
|
-
skeletonClasses: () =>
|
|
237
|
-
sliderClasses: () =>
|
|
238
|
-
stackClasses: () =>
|
|
239
|
-
stepButtonClasses: () =>
|
|
240
|
-
stepClasses: () =>
|
|
241
|
-
stepperClasses: () =>
|
|
242
|
-
styled: () =>
|
|
243
|
-
switchClasses: () =>
|
|
244
|
-
tabListClasses: () =>
|
|
245
|
-
tabPanelClasses: () =>
|
|
246
|
-
tableClasses: () =>
|
|
247
|
-
tabsClasses: () =>
|
|
248
|
-
textareaClasses: () =>
|
|
181
|
+
accordionClasses: () => import_joy61.accordionClasses,
|
|
182
|
+
accordionDetailsClasses: () => import_joy61.accordionDetailsClasses,
|
|
183
|
+
accordionSummaryClasses: () => import_joy61.accordionSummaryClasses,
|
|
184
|
+
accordionsClasses: () => import_joy61.accordionGroupClasses,
|
|
185
|
+
alertClasses: () => import_joy61.alertClasses,
|
|
186
|
+
aspectRatioClasses: () => import_joy61.aspectRatioClasses,
|
|
187
|
+
autocompleteClasses: () => import_joy61.autocompleteClasses,
|
|
188
|
+
autocompleteListboxClasses: () => import_joy61.autocompleteListboxClasses,
|
|
189
|
+
autocompleteOptionClasses: () => import_joy61.autocompleteOptionClasses,
|
|
190
|
+
avatarClasses: () => import_joy61.avatarClasses,
|
|
191
|
+
avatarGroupClasses: () => import_joy61.avatarGroupClasses,
|
|
192
|
+
badgeClasses: () => import_joy61.badgeClasses,
|
|
193
|
+
boxClasses: () => import_joy61.boxClasses,
|
|
194
|
+
breadcrumbsClasses: () => import_joy61.breadcrumbsClasses,
|
|
195
|
+
buttonClasses: () => import_joy61.buttonClasses,
|
|
196
|
+
cardActionsClasses: () => import_joy61.cardActionsClasses,
|
|
197
|
+
cardClasses: () => import_joy61.cardClasses,
|
|
198
|
+
cardContentClasses: () => import_joy61.cardContentClasses,
|
|
199
|
+
cardCoverClasses: () => import_joy61.cardCoverClasses,
|
|
200
|
+
cardOverflowClasses: () => import_joy61.cardOverflowClasses,
|
|
201
|
+
checkboxClasses: () => import_joy61.checkboxClasses,
|
|
202
|
+
chipClasses: () => import_joy61.chipClasses,
|
|
203
|
+
circularProgressClasses: () => import_joy61.circularProgressClasses,
|
|
204
|
+
dialogActionsClasses: () => import_joy61.dialogActionsClasses,
|
|
205
|
+
dialogContentClasses: () => import_joy61.dialogContentClasses,
|
|
206
|
+
dialogTitleClasses: () => import_joy61.dialogTitleClasses,
|
|
207
|
+
dividerClasses: () => import_joy61.dividerClasses,
|
|
208
|
+
drawerClasses: () => import_joy61.drawerClasses,
|
|
209
|
+
extendTheme: () => import_joy59.extendTheme,
|
|
210
|
+
formControlClasses: () => import_joy61.formControlClasses,
|
|
211
|
+
formHelperTextClasses: () => import_joy61.formHelperTextClasses,
|
|
212
|
+
formLabelClasses: () => import_joy61.formLabelClasses,
|
|
213
|
+
gridClasses: () => import_joy61.gridClasses,
|
|
214
|
+
iconButtonClasses: () => import_joy61.iconButtonClasses,
|
|
215
|
+
inputClasses: () => import_joy61.inputClasses,
|
|
216
|
+
linearProgressClasses: () => import_joy61.linearProgressClasses,
|
|
217
|
+
linkClasses: () => import_joy61.linkClasses,
|
|
218
|
+
listClasses: () => import_joy61.listClasses,
|
|
219
|
+
listDividerClasses: () => import_joy61.listDividerClasses,
|
|
220
|
+
listItemButtonClasses: () => import_joy61.listItemButtonClasses,
|
|
221
|
+
listItemClasses: () => import_joy61.listItemClasses,
|
|
222
|
+
listItemContentClasses: () => import_joy61.listItemContentClasses,
|
|
223
|
+
listItemDecoratorClasses: () => import_joy61.listItemDecoratorClasses,
|
|
224
|
+
listSubheaderClasses: () => import_joy61.listSubheaderClasses,
|
|
225
|
+
menuButtonClasses: () => import_joy61.menuButtonClasses,
|
|
226
|
+
menuClasses: () => import_joy61.menuClasses,
|
|
227
|
+
menuItemClasses: () => import_joy61.menuItemClasses,
|
|
228
|
+
modalClasses: () => import_joy61.modalClasses,
|
|
229
|
+
modalCloseClasses: () => import_joy61.modalCloseClasses,
|
|
230
|
+
modalDialogClasses: () => import_joy61.modalDialogClasses,
|
|
231
|
+
modalOverflowClasses: () => import_joy61.modalOverflowClasses,
|
|
232
|
+
optionClasses: () => import_joy61.optionClasses,
|
|
233
|
+
radioClasses: () => import_joy61.radioClasses,
|
|
234
|
+
radioGroupClasses: () => import_joy61.radioGroupClasses,
|
|
235
|
+
selectClasses: () => import_joy61.selectClasses,
|
|
236
|
+
sheetClasses: () => import_joy61.sheetClasses,
|
|
237
|
+
skeletonClasses: () => import_joy61.skeletonClasses,
|
|
238
|
+
sliderClasses: () => import_joy61.sliderClasses,
|
|
239
|
+
stackClasses: () => import_joy61.stackClasses,
|
|
240
|
+
stepButtonClasses: () => import_joy61.stepButtonClasses,
|
|
241
|
+
stepClasses: () => import_joy61.stepClasses,
|
|
242
|
+
stepperClasses: () => import_joy61.stepperClasses,
|
|
243
|
+
styled: () => import_joy61.styled,
|
|
244
|
+
switchClasses: () => import_joy61.switchClasses,
|
|
245
|
+
tabListClasses: () => import_joy61.tabListClasses,
|
|
246
|
+
tabPanelClasses: () => import_joy61.tabPanelClasses,
|
|
247
|
+
tableClasses: () => import_joy61.tableClasses,
|
|
248
|
+
tabsClasses: () => import_joy61.tabsClasses,
|
|
249
|
+
textareaClasses: () => import_joy61.textareaClasses,
|
|
249
250
|
theme: () => defaultTheme,
|
|
250
|
-
tooltipClasses: () =>
|
|
251
|
-
typographyClasses: () =>
|
|
252
|
-
useColorScheme: () =>
|
|
253
|
-
useTheme: () =>
|
|
254
|
-
useThemeProps: () =>
|
|
251
|
+
tooltipClasses: () => import_joy61.tooltipClasses,
|
|
252
|
+
typographyClasses: () => import_joy61.typographyClasses,
|
|
253
|
+
useColorScheme: () => import_joy61.useColorScheme,
|
|
254
|
+
useTheme: () => import_joy61.useTheme,
|
|
255
|
+
useThemeProps: () => import_joy61.useThemeProps
|
|
255
256
|
});
|
|
256
257
|
module.exports = __toCommonJS(index_exports);
|
|
257
|
-
var
|
|
258
|
+
var import_joy61 = require("@mui/joy");
|
|
258
259
|
|
|
259
260
|
// src/components/Accordions/Accordions.tsx
|
|
260
261
|
var import_react = __toESM(require("react"));
|
|
@@ -4497,12 +4498,195 @@ var InsetDrawer = (0, import_joy43.styled)(import_joy43.Drawer)(({ theme }) => (
|
|
|
4497
4498
|
}
|
|
4498
4499
|
}));
|
|
4499
4500
|
|
|
4500
|
-
// src/components/
|
|
4501
|
+
// src/components/FilterableCheckboxGroup/FilterableCheckboxGroup.tsx
|
|
4502
|
+
var import_react34 = __toESM(require("react"));
|
|
4501
4503
|
var import_joy44 = require("@mui/joy");
|
|
4504
|
+
var import_Search = __toESM(require("@mui/icons-material/Search"));
|
|
4505
|
+
var import_react_virtual3 = require("@tanstack/react-virtual");
|
|
4506
|
+
function FilterableCheckboxGroup(props) {
|
|
4507
|
+
const { value, options, label, placeholder, helperText, size = "md", required, onChange, maxHeight = 300 } = props;
|
|
4508
|
+
const [searchTerm, setSearchTerm] = (0, import_react34.useState)("");
|
|
4509
|
+
const [sortedOptions, setSortedOptions] = (0, import_react34.useState)(options);
|
|
4510
|
+
const [internalValue, setInternalValue] = useControlledState(
|
|
4511
|
+
value,
|
|
4512
|
+
value ?? [],
|
|
4513
|
+
(0, import_react34.useCallback)((newValue) => onChange?.(newValue), [onChange])
|
|
4514
|
+
);
|
|
4515
|
+
const parentRef = (0, import_react34.useRef)(null);
|
|
4516
|
+
const isInitialSortRef = (0, import_react34.useRef)(false);
|
|
4517
|
+
const filteredOptions = (0, import_react34.useMemo)(() => {
|
|
4518
|
+
if (!searchTerm) return sortedOptions;
|
|
4519
|
+
return sortedOptions.filter((option) => option.label.toLowerCase().includes(searchTerm.toLowerCase()));
|
|
4520
|
+
}, [sortedOptions, searchTerm]);
|
|
4521
|
+
const itemSize = (0, import_react34.useMemo)(() => {
|
|
4522
|
+
switch (size) {
|
|
4523
|
+
case "sm":
|
|
4524
|
+
return 28;
|
|
4525
|
+
case "md":
|
|
4526
|
+
return 32;
|
|
4527
|
+
case "lg":
|
|
4528
|
+
return 36;
|
|
4529
|
+
}
|
|
4530
|
+
}, [size]);
|
|
4531
|
+
const noOptionsFontSize = (0, import_react34.useMemo)(() => {
|
|
4532
|
+
switch (size) {
|
|
4533
|
+
case "sm":
|
|
4534
|
+
return "14px";
|
|
4535
|
+
case "md":
|
|
4536
|
+
return "16px";
|
|
4537
|
+
case "lg":
|
|
4538
|
+
return "18px";
|
|
4539
|
+
}
|
|
4540
|
+
}, [size]);
|
|
4541
|
+
const virtualizer = (0, import_react_virtual3.useVirtualizer)({
|
|
4542
|
+
count: filteredOptions.length,
|
|
4543
|
+
estimateSize: () => itemSize,
|
|
4544
|
+
measureElement: (element) => element.clientHeight,
|
|
4545
|
+
getScrollElement: () => parentRef.current,
|
|
4546
|
+
overscan: 5
|
|
4547
|
+
});
|
|
4548
|
+
const items = virtualizer.getVirtualItems();
|
|
4549
|
+
(0, import_react34.useEffect)(() => {
|
|
4550
|
+
if (isInitialSortRef.current) return;
|
|
4551
|
+
const initialValue = value ?? [];
|
|
4552
|
+
const sorted = [...options].sort((a, b) => {
|
|
4553
|
+
const aSelected = initialValue.includes(a.value);
|
|
4554
|
+
const bSelected = initialValue.includes(b.value);
|
|
4555
|
+
if (aSelected !== bSelected) {
|
|
4556
|
+
return aSelected ? -1 : 1;
|
|
4557
|
+
}
|
|
4558
|
+
const aIsAlpha = /^[a-zA-Z]/.test(a.label);
|
|
4559
|
+
const bIsAlpha = /^[a-zA-Z]/.test(b.label);
|
|
4560
|
+
if (aIsAlpha !== bIsAlpha) {
|
|
4561
|
+
return aIsAlpha ? -1 : 1;
|
|
4562
|
+
}
|
|
4563
|
+
return a.label.localeCompare(b.label);
|
|
4564
|
+
});
|
|
4565
|
+
setSortedOptions(sorted);
|
|
4566
|
+
isInitialSortRef.current = true;
|
|
4567
|
+
}, [options, value]);
|
|
4568
|
+
(0, import_react34.useEffect)(() => {
|
|
4569
|
+
virtualizer.measure();
|
|
4570
|
+
}, [virtualizer, filteredOptions]);
|
|
4571
|
+
const handleSearchChange = (0, import_react34.useCallback)((event) => {
|
|
4572
|
+
setSearchTerm(event.target.value);
|
|
4573
|
+
}, []);
|
|
4574
|
+
const handleCheckboxChange = (0, import_react34.useCallback)(
|
|
4575
|
+
(optionValue) => (event) => {
|
|
4576
|
+
const checked = event.target.checked;
|
|
4577
|
+
const newValue = checked ? [...internalValue, optionValue] : internalValue.filter((v) => v !== optionValue);
|
|
4578
|
+
setInternalValue(newValue);
|
|
4579
|
+
},
|
|
4580
|
+
[internalValue, setInternalValue]
|
|
4581
|
+
);
|
|
4582
|
+
const handleSelectAll = (0, import_react34.useCallback)(
|
|
4583
|
+
(event) => {
|
|
4584
|
+
const checked = event.target.checked;
|
|
4585
|
+
if (checked) {
|
|
4586
|
+
setInternalValue(filteredOptions.map((option) => option.value));
|
|
4587
|
+
} else {
|
|
4588
|
+
setInternalValue([]);
|
|
4589
|
+
}
|
|
4590
|
+
},
|
|
4591
|
+
[filteredOptions, setInternalValue]
|
|
4592
|
+
);
|
|
4593
|
+
const isAllSelected = filteredOptions.length > 0 && filteredOptions.every((option) => internalValue.includes(option.value));
|
|
4594
|
+
const isIndeterminate = !isAllSelected && filteredOptions.some((option) => internalValue.includes(option.value));
|
|
4595
|
+
return /* @__PURE__ */ import_react34.default.createElement("div", { style: { width: "100%" } }, /* @__PURE__ */ import_react34.default.createElement(FormControl_default, { required, size }, label && /* @__PURE__ */ import_react34.default.createElement(FormLabel_default, null, label), /* @__PURE__ */ import_react34.default.createElement(
|
|
4596
|
+
import_joy44.Input,
|
|
4597
|
+
{
|
|
4598
|
+
variant: "outlined",
|
|
4599
|
+
color: "neutral",
|
|
4600
|
+
placeholder,
|
|
4601
|
+
value: searchTerm,
|
|
4602
|
+
onChange: handleSearchChange,
|
|
4603
|
+
size,
|
|
4604
|
+
endDecorator: /* @__PURE__ */ import_react34.default.createElement(import_Search.default, null)
|
|
4605
|
+
}
|
|
4606
|
+
), helperText && /* @__PURE__ */ import_react34.default.createElement(FormHelperText_default, null, helperText)), filteredOptions.length === 0 ? /* @__PURE__ */ import_react34.default.createElement(
|
|
4607
|
+
import_joy44.Stack,
|
|
4608
|
+
{
|
|
4609
|
+
sx: {
|
|
4610
|
+
padding: "20px 12px",
|
|
4611
|
+
justifyContent: "center",
|
|
4612
|
+
alignItems: "center",
|
|
4613
|
+
fontSize: noOptionsFontSize,
|
|
4614
|
+
color: "#A2AAB8"
|
|
4615
|
+
}
|
|
4616
|
+
},
|
|
4617
|
+
"No options found."
|
|
4618
|
+
) : /* @__PURE__ */ import_react34.default.createElement(
|
|
4619
|
+
"div",
|
|
4620
|
+
{
|
|
4621
|
+
ref: parentRef,
|
|
4622
|
+
style: {
|
|
4623
|
+
overflow: "auto",
|
|
4624
|
+
maxHeight: typeof maxHeight === "number" ? `${maxHeight}px` : maxHeight,
|
|
4625
|
+
padding: "8px 0px",
|
|
4626
|
+
marginTop: "8px"
|
|
4627
|
+
}
|
|
4628
|
+
},
|
|
4629
|
+
!searchTerm && /* @__PURE__ */ import_react34.default.createElement(
|
|
4630
|
+
Checkbox_default,
|
|
4631
|
+
{
|
|
4632
|
+
label: "Select all",
|
|
4633
|
+
checked: isAllSelected,
|
|
4634
|
+
indeterminate: isIndeterminate,
|
|
4635
|
+
onChange: handleSelectAll,
|
|
4636
|
+
size,
|
|
4637
|
+
slotProps: {
|
|
4638
|
+
action: {
|
|
4639
|
+
sx: { top: 0, left: 0, bottom: 0, right: 0 }
|
|
4640
|
+
}
|
|
4641
|
+
},
|
|
4642
|
+
sx: { width: "100%", height: itemSize }
|
|
4643
|
+
}
|
|
4644
|
+
),
|
|
4645
|
+
/* @__PURE__ */ import_react34.default.createElement(
|
|
4646
|
+
import_joy44.Stack,
|
|
4647
|
+
{
|
|
4648
|
+
sx: {
|
|
4649
|
+
height: `${virtualizer.getTotalSize()}px`,
|
|
4650
|
+
position: "relative"
|
|
4651
|
+
}
|
|
4652
|
+
},
|
|
4653
|
+
items.map((virtualRow) => {
|
|
4654
|
+
const option = filteredOptions[virtualRow.index];
|
|
4655
|
+
return /* @__PURE__ */ import_react34.default.createElement(
|
|
4656
|
+
Checkbox_default,
|
|
4657
|
+
{
|
|
4658
|
+
key: virtualRow.key,
|
|
4659
|
+
label: option.label,
|
|
4660
|
+
checked: internalValue.includes(option.value),
|
|
4661
|
+
onChange: handleCheckboxChange(option.value),
|
|
4662
|
+
size,
|
|
4663
|
+
slotProps: {
|
|
4664
|
+
action: {
|
|
4665
|
+
sx: { top: 0, left: 0, bottom: 0, right: 0 }
|
|
4666
|
+
}
|
|
4667
|
+
},
|
|
4668
|
+
sx: {
|
|
4669
|
+
position: "absolute",
|
|
4670
|
+
top: 0,
|
|
4671
|
+
left: 0,
|
|
4672
|
+
width: "100%",
|
|
4673
|
+
height: `${virtualRow.size}px`,
|
|
4674
|
+
transform: `translateY(${virtualRow.start}px)`
|
|
4675
|
+
}
|
|
4676
|
+
}
|
|
4677
|
+
);
|
|
4678
|
+
})
|
|
4679
|
+
)
|
|
4680
|
+
));
|
|
4681
|
+
}
|
|
4682
|
+
FilterableCheckboxGroup.displayName = "FilterableCheckboxGroup";
|
|
4502
4683
|
|
|
4503
|
-
// src/components/
|
|
4504
|
-
var import_react34 = __toESM(require("react"));
|
|
4684
|
+
// src/components/Grid/Grid.tsx
|
|
4505
4685
|
var import_joy45 = require("@mui/joy");
|
|
4686
|
+
|
|
4687
|
+
// src/components/IconMenuButton/IconMenuButton.tsx
|
|
4688
|
+
var import_react35 = __toESM(require("react"));
|
|
4689
|
+
var import_joy46 = require("@mui/joy");
|
|
4506
4690
|
function IconMenuButton(props) {
|
|
4507
4691
|
const {
|
|
4508
4692
|
size,
|
|
@@ -4515,8 +4699,8 @@ function IconMenuButton(props) {
|
|
|
4515
4699
|
placement = "bottom"
|
|
4516
4700
|
} = props;
|
|
4517
4701
|
if (!items.length) {
|
|
4518
|
-
return /* @__PURE__ */
|
|
4519
|
-
|
|
4702
|
+
return /* @__PURE__ */ import_react35.default.createElement(
|
|
4703
|
+
import_joy46.IconButton,
|
|
4520
4704
|
{
|
|
4521
4705
|
component: props.buttonComponent ?? "button",
|
|
4522
4706
|
size,
|
|
@@ -4529,10 +4713,10 @@ function IconMenuButton(props) {
|
|
|
4529
4713
|
icon
|
|
4530
4714
|
);
|
|
4531
4715
|
}
|
|
4532
|
-
return /* @__PURE__ */
|
|
4533
|
-
|
|
4716
|
+
return /* @__PURE__ */ import_react35.default.createElement(Dropdown_default, null, /* @__PURE__ */ import_react35.default.createElement(
|
|
4717
|
+
import_joy46.MenuButton,
|
|
4534
4718
|
{
|
|
4535
|
-
slots: { root:
|
|
4719
|
+
slots: { root: import_joy46.IconButton },
|
|
4536
4720
|
slotProps: {
|
|
4537
4721
|
root: {
|
|
4538
4722
|
component: props.buttonComponent ?? "button",
|
|
@@ -4546,19 +4730,19 @@ function IconMenuButton(props) {
|
|
|
4546
4730
|
}
|
|
4547
4731
|
},
|
|
4548
4732
|
icon
|
|
4549
|
-
), /* @__PURE__ */
|
|
4733
|
+
), /* @__PURE__ */ import_react35.default.createElement(Menu, { placement, size }, items.map((i) => /* @__PURE__ */ import_react35.default.createElement(MenuItem, { key: i.text, component: i.component, ...i.componentProps ?? {} }, i.text))));
|
|
4550
4734
|
}
|
|
4551
4735
|
IconMenuButton.displayName = "IconMenuButton";
|
|
4552
4736
|
|
|
4553
4737
|
// src/components/Markdown/Markdown.tsx
|
|
4554
|
-
var
|
|
4555
|
-
var import_joy46 = require("@mui/joy");
|
|
4738
|
+
var import_react36 = __toESM(require("react"));
|
|
4556
4739
|
var import_joy47 = require("@mui/joy");
|
|
4740
|
+
var import_joy48 = require("@mui/joy");
|
|
4557
4741
|
var import_remark_gfm = __toESM(require("remark-gfm"));
|
|
4558
|
-
var LazyReactMarkdown = (0,
|
|
4742
|
+
var LazyReactMarkdown = (0, import_react36.lazy)(() => import("react-markdown"));
|
|
4559
4743
|
var Markdown = (props) => {
|
|
4560
|
-
const [rehypeAccent2, setRehypeAccent] = (0,
|
|
4561
|
-
(0,
|
|
4744
|
+
const [rehypeAccent2, setRehypeAccent] = (0, import_react36.useState)(null);
|
|
4745
|
+
(0, import_react36.useEffect)(() => {
|
|
4562
4746
|
const loadRehypeAccent = async () => {
|
|
4563
4747
|
const module2 = await Promise.resolve().then(() => (init_rehype_accent(), rehype_accent_exports));
|
|
4564
4748
|
setRehypeAccent(() => module2.rehypeAccent);
|
|
@@ -4580,12 +4764,12 @@ var Markdown = (props) => {
|
|
|
4580
4764
|
if (!rehypeAccent2) {
|
|
4581
4765
|
return null;
|
|
4582
4766
|
}
|
|
4583
|
-
return /* @__PURE__ */
|
|
4584
|
-
|
|
4767
|
+
return /* @__PURE__ */ import_react36.default.createElement(Typography, { component: "div", color, textColor, level: defaultLevel, ...innerProps }, /* @__PURE__ */ import_react36.default.createElement(
|
|
4768
|
+
import_react36.Suspense,
|
|
4585
4769
|
{
|
|
4586
|
-
fallback: fallback || /* @__PURE__ */
|
|
4770
|
+
fallback: fallback || /* @__PURE__ */ import_react36.default.createElement(Typography, null, /* @__PURE__ */ import_react36.default.createElement(import_joy47.Skeleton, null, content || ""))
|
|
4587
4771
|
},
|
|
4588
|
-
/* @__PURE__ */
|
|
4772
|
+
/* @__PURE__ */ import_react36.default.createElement(
|
|
4589
4773
|
LazyReactMarkdown,
|
|
4590
4774
|
{
|
|
4591
4775
|
...markdownOptions,
|
|
@@ -4593,15 +4777,15 @@ var Markdown = (props) => {
|
|
|
4593
4777
|
rehypePlugins: [[rehypeAccent2, { accentColor }]],
|
|
4594
4778
|
remarkPlugins: [import_remark_gfm.default],
|
|
4595
4779
|
components: {
|
|
4596
|
-
h1: ({ children }) => /* @__PURE__ */
|
|
4597
|
-
h2: ({ children }) => /* @__PURE__ */
|
|
4598
|
-
h3: ({ children }) => /* @__PURE__ */
|
|
4599
|
-
h4: ({ children }) => /* @__PURE__ */
|
|
4600
|
-
p: ({ children, node }) => /* @__PURE__ */
|
|
4601
|
-
a: ({ children, href }) => /* @__PURE__ */
|
|
4602
|
-
hr: () => /* @__PURE__ */
|
|
4603
|
-
b: ({ children }) => /* @__PURE__ */
|
|
4604
|
-
strong: ({ children }) => /* @__PURE__ */
|
|
4780
|
+
h1: ({ children }) => /* @__PURE__ */ import_react36.default.createElement(Typography, { color, textColor, level: "h1" }, children),
|
|
4781
|
+
h2: ({ children }) => /* @__PURE__ */ import_react36.default.createElement(Typography, { color, textColor, level: "h2" }, children),
|
|
4782
|
+
h3: ({ children }) => /* @__PURE__ */ import_react36.default.createElement(Typography, { color, textColor, level: "h3" }, children),
|
|
4783
|
+
h4: ({ children }) => /* @__PURE__ */ import_react36.default.createElement(Typography, { color, textColor, level: "h4" }, children),
|
|
4784
|
+
p: ({ children, node }) => /* @__PURE__ */ import_react36.default.createElement(Typography, { color, textColor, level: defaultLevel, ...node?.properties }, children),
|
|
4785
|
+
a: ({ children, href }) => /* @__PURE__ */ import_react36.default.createElement(import_joy48.Link, { href, target: defaultLinkAction }, children),
|
|
4786
|
+
hr: () => /* @__PURE__ */ import_react36.default.createElement(Divider, null),
|
|
4787
|
+
b: ({ children }) => /* @__PURE__ */ import_react36.default.createElement(Typography, { fontWeight: boldFontWeight }, children),
|
|
4788
|
+
strong: ({ children }) => /* @__PURE__ */ import_react36.default.createElement(Typography, { fontWeight: boldFontWeight }, children),
|
|
4605
4789
|
...markdownOptions?.components
|
|
4606
4790
|
}
|
|
4607
4791
|
}
|
|
@@ -4611,8 +4795,8 @@ var Markdown = (props) => {
|
|
|
4611
4795
|
Markdown.displayName = "Markdown";
|
|
4612
4796
|
|
|
4613
4797
|
// src/components/MenuButton/MenuButton.tsx
|
|
4614
|
-
var
|
|
4615
|
-
var
|
|
4798
|
+
var import_react37 = __toESM(require("react"));
|
|
4799
|
+
var import_joy49 = require("@mui/joy");
|
|
4616
4800
|
var import_ExpandMore = __toESM(require("@mui/icons-material/ExpandMore"));
|
|
4617
4801
|
function MenuButton(props) {
|
|
4618
4802
|
const {
|
|
@@ -4629,8 +4813,8 @@ function MenuButton(props) {
|
|
|
4629
4813
|
placement = "bottom"
|
|
4630
4814
|
} = props;
|
|
4631
4815
|
if (!items.length) {
|
|
4632
|
-
return /* @__PURE__ */
|
|
4633
|
-
|
|
4816
|
+
return /* @__PURE__ */ import_react37.default.createElement(
|
|
4817
|
+
import_joy49.Button,
|
|
4634
4818
|
{
|
|
4635
4819
|
component: props.buttonComponent ?? "button",
|
|
4636
4820
|
size,
|
|
@@ -4640,13 +4824,13 @@ function MenuButton(props) {
|
|
|
4640
4824
|
loading,
|
|
4641
4825
|
startDecorator,
|
|
4642
4826
|
...props.buttonComponentProps ?? {},
|
|
4643
|
-
endDecorator: showIcon ? /* @__PURE__ */
|
|
4827
|
+
endDecorator: showIcon ? /* @__PURE__ */ import_react37.default.createElement(import_react37.default.Fragment, null, endDecorator, /* @__PURE__ */ import_react37.default.createElement(import_ExpandMore.default, null)) : /* @__PURE__ */ import_react37.default.createElement(import_react37.default.Fragment, null, endDecorator)
|
|
4644
4828
|
},
|
|
4645
4829
|
buttonText
|
|
4646
4830
|
);
|
|
4647
4831
|
}
|
|
4648
|
-
return /* @__PURE__ */
|
|
4649
|
-
|
|
4832
|
+
return /* @__PURE__ */ import_react37.default.createElement(Dropdown_default, null, /* @__PURE__ */ import_react37.default.createElement(
|
|
4833
|
+
import_joy49.MenuButton,
|
|
4650
4834
|
{
|
|
4651
4835
|
component: props.buttonComponent ?? "button",
|
|
4652
4836
|
size,
|
|
@@ -4656,25 +4840,25 @@ function MenuButton(props) {
|
|
|
4656
4840
|
loading,
|
|
4657
4841
|
startDecorator,
|
|
4658
4842
|
...props.buttonComponentProps ?? {},
|
|
4659
|
-
endDecorator: showIcon ? /* @__PURE__ */
|
|
4843
|
+
endDecorator: showIcon ? /* @__PURE__ */ import_react37.default.createElement(import_react37.default.Fragment, null, endDecorator, /* @__PURE__ */ import_react37.default.createElement(import_ExpandMore.default, null)) : /* @__PURE__ */ import_react37.default.createElement(import_react37.default.Fragment, null, endDecorator)
|
|
4660
4844
|
},
|
|
4661
4845
|
buttonText
|
|
4662
|
-
), /* @__PURE__ */
|
|
4846
|
+
), /* @__PURE__ */ import_react37.default.createElement(Menu, { placement, size }, items.map((i) => /* @__PURE__ */ import_react37.default.createElement(MenuItem, { key: i.text, component: i.component, ...i.componentProps ?? {} }, i.text))));
|
|
4663
4847
|
}
|
|
4664
4848
|
MenuButton.displayName = "MenuButton";
|
|
4665
4849
|
|
|
4666
4850
|
// src/components/MonthPicker/MonthPicker.tsx
|
|
4667
|
-
var
|
|
4851
|
+
var import_react38 = __toESM(require("react"));
|
|
4668
4852
|
var import_CalendarToday3 = __toESM(require("@mui/icons-material/CalendarToday"));
|
|
4669
|
-
var
|
|
4853
|
+
var import_joy50 = require("@mui/joy");
|
|
4670
4854
|
var import_base4 = require("@mui/base");
|
|
4671
|
-
var StyledPopper3 = (0,
|
|
4855
|
+
var StyledPopper3 = (0, import_joy50.styled)(import_base4.Popper, {
|
|
4672
4856
|
name: "MonthPicker",
|
|
4673
4857
|
slot: "popper"
|
|
4674
4858
|
})(({ theme }) => ({
|
|
4675
4859
|
zIndex: theme.zIndex.tooltip
|
|
4676
4860
|
}));
|
|
4677
|
-
var CalendarSheet3 = (0,
|
|
4861
|
+
var CalendarSheet3 = (0, import_joy50.styled)(Sheet_default, {
|
|
4678
4862
|
name: "MonthPicker",
|
|
4679
4863
|
slot: "sheet",
|
|
4680
4864
|
overridesResolver: (props, styles) => styles.root
|
|
@@ -4683,7 +4867,7 @@ var CalendarSheet3 = (0, import_joy49.styled)(Sheet_default, {
|
|
|
4683
4867
|
boxShadow: theme.shadow.md,
|
|
4684
4868
|
borderRadius: theme.radius.md
|
|
4685
4869
|
}));
|
|
4686
|
-
var MonthPickerRoot = (0,
|
|
4870
|
+
var MonthPickerRoot = (0, import_joy50.styled)("div", {
|
|
4687
4871
|
name: "MonthPicker",
|
|
4688
4872
|
slot: "root",
|
|
4689
4873
|
overridesResolver: (props, styles) => styles.root
|
|
@@ -4719,8 +4903,8 @@ function parseDate3(dateString, format) {
|
|
|
4719
4903
|
const result = new Date(year, month, day);
|
|
4720
4904
|
return result;
|
|
4721
4905
|
}
|
|
4722
|
-
var MonthPicker = (0,
|
|
4723
|
-
const props = (0,
|
|
4906
|
+
var MonthPicker = (0, import_react38.forwardRef)((inProps, ref) => {
|
|
4907
|
+
const props = (0, import_joy50.useThemeProps)({ props: inProps, name: "MonthPicker" });
|
|
4724
4908
|
const {
|
|
4725
4909
|
onChange,
|
|
4726
4910
|
disabled,
|
|
@@ -4746,14 +4930,14 @@ var MonthPicker = (0, import_react37.forwardRef)((inProps, ref) => {
|
|
|
4746
4930
|
locale,
|
|
4747
4931
|
...innerProps
|
|
4748
4932
|
} = props;
|
|
4749
|
-
const innerRef = (0,
|
|
4750
|
-
const buttonRef = (0,
|
|
4933
|
+
const innerRef = (0, import_react38.useRef)(null);
|
|
4934
|
+
const buttonRef = (0, import_react38.useRef)(null);
|
|
4751
4935
|
const [value, setValue, isControlled] = useControlledState(
|
|
4752
4936
|
props.value,
|
|
4753
4937
|
props.defaultValue || "",
|
|
4754
|
-
(0,
|
|
4938
|
+
(0, import_react38.useCallback)((value2) => onChange?.({ target: { name: props.name, value: value2 } }), [props.name, onChange])
|
|
4755
4939
|
);
|
|
4756
|
-
const getFormattedDisplayValue = (0,
|
|
4940
|
+
const getFormattedDisplayValue = (0, import_react38.useCallback)(
|
|
4757
4941
|
(inputValue) => {
|
|
4758
4942
|
if (!inputValue) return "";
|
|
4759
4943
|
try {
|
|
@@ -4764,19 +4948,19 @@ var MonthPicker = (0, import_react37.forwardRef)((inProps, ref) => {
|
|
|
4764
4948
|
},
|
|
4765
4949
|
[format, displayFormat, locale]
|
|
4766
4950
|
);
|
|
4767
|
-
const [displayValue, setDisplayValue] = (0,
|
|
4768
|
-
const [anchorEl, setAnchorEl] = (0,
|
|
4951
|
+
const [displayValue, setDisplayValue] = (0, import_react38.useState)(() => getFormattedDisplayValue(value));
|
|
4952
|
+
const [anchorEl, setAnchorEl] = (0, import_react38.useState)(null);
|
|
4769
4953
|
const open = Boolean(anchorEl);
|
|
4770
|
-
(0,
|
|
4954
|
+
(0, import_react38.useEffect)(() => {
|
|
4771
4955
|
if (!anchorEl) {
|
|
4772
4956
|
innerRef.current?.blur();
|
|
4773
4957
|
}
|
|
4774
4958
|
}, [anchorEl, innerRef]);
|
|
4775
|
-
(0,
|
|
4776
|
-
(0,
|
|
4959
|
+
(0, import_react38.useImperativeHandle)(ref, () => innerRef.current, [innerRef]);
|
|
4960
|
+
(0, import_react38.useEffect)(() => {
|
|
4777
4961
|
setDisplayValue(getFormattedDisplayValue(value));
|
|
4778
4962
|
}, [value, getFormattedDisplayValue]);
|
|
4779
|
-
const handleChange = (0,
|
|
4963
|
+
const handleChange = (0, import_react38.useCallback)(
|
|
4780
4964
|
(event) => {
|
|
4781
4965
|
const newValue = event.target.value;
|
|
4782
4966
|
setValue(newValue);
|
|
@@ -4786,21 +4970,21 @@ var MonthPicker = (0, import_react37.forwardRef)((inProps, ref) => {
|
|
|
4786
4970
|
},
|
|
4787
4971
|
[setValue, getFormattedDisplayValue, isControlled]
|
|
4788
4972
|
);
|
|
4789
|
-
const handleCalendarToggle = (0,
|
|
4973
|
+
const handleCalendarToggle = (0, import_react38.useCallback)(
|
|
4790
4974
|
(event) => {
|
|
4791
4975
|
setAnchorEl(anchorEl ? null : event.currentTarget);
|
|
4792
4976
|
innerRef.current?.focus();
|
|
4793
4977
|
},
|
|
4794
4978
|
[anchorEl, setAnchorEl, innerRef]
|
|
4795
4979
|
);
|
|
4796
|
-
const handleInputMouseDown = (0,
|
|
4980
|
+
const handleInputMouseDown = (0, import_react38.useCallback)(
|
|
4797
4981
|
(event) => {
|
|
4798
4982
|
event.preventDefault();
|
|
4799
4983
|
buttonRef.current?.focus();
|
|
4800
4984
|
},
|
|
4801
4985
|
[buttonRef]
|
|
4802
4986
|
);
|
|
4803
|
-
return /* @__PURE__ */
|
|
4987
|
+
return /* @__PURE__ */ import_react38.default.createElement(MonthPickerRoot, null, /* @__PURE__ */ import_react38.default.createElement(import_base4.FocusTrap, { open: true }, /* @__PURE__ */ import_react38.default.createElement(import_react38.default.Fragment, null, /* @__PURE__ */ import_react38.default.createElement(
|
|
4804
4988
|
Input_default,
|
|
4805
4989
|
{
|
|
4806
4990
|
...innerProps,
|
|
@@ -4830,7 +5014,7 @@ var MonthPicker = (0, import_react37.forwardRef)((inProps, ref) => {
|
|
|
4830
5014
|
// NOTE: placeholder char 를 텍스트로 표시하므로 동일한 너비를 가지는 mono font 를 사용해야 이질감이 없다.
|
|
4831
5015
|
fontFamily: "monospace"
|
|
4832
5016
|
},
|
|
4833
|
-
endDecorator: /* @__PURE__ */
|
|
5017
|
+
endDecorator: /* @__PURE__ */ import_react38.default.createElement(
|
|
4834
5018
|
IconButton_default,
|
|
4835
5019
|
{
|
|
4836
5020
|
ref: buttonRef,
|
|
@@ -4842,12 +5026,12 @@ var MonthPicker = (0, import_react37.forwardRef)((inProps, ref) => {
|
|
|
4842
5026
|
"aria-expanded": open,
|
|
4843
5027
|
disabled
|
|
4844
5028
|
},
|
|
4845
|
-
/* @__PURE__ */
|
|
5029
|
+
/* @__PURE__ */ import_react38.default.createElement(import_CalendarToday3.default, null)
|
|
4846
5030
|
),
|
|
4847
5031
|
label,
|
|
4848
5032
|
helperText
|
|
4849
5033
|
}
|
|
4850
|
-
), open && /* @__PURE__ */
|
|
5034
|
+
), open && /* @__PURE__ */ import_react38.default.createElement(import_base4.ClickAwayListener, { onClickAway: () => setAnchorEl(null) }, /* @__PURE__ */ import_react38.default.createElement(
|
|
4851
5035
|
StyledPopper3,
|
|
4852
5036
|
{
|
|
4853
5037
|
id: "month-picker-popper",
|
|
@@ -4866,7 +5050,7 @@ var MonthPicker = (0, import_react37.forwardRef)((inProps, ref) => {
|
|
|
4866
5050
|
"aria-label": "Calendar Tooltip",
|
|
4867
5051
|
"aria-expanded": open
|
|
4868
5052
|
},
|
|
4869
|
-
/* @__PURE__ */
|
|
5053
|
+
/* @__PURE__ */ import_react38.default.createElement(CalendarSheet3, { tabIndex: -1, role: "presentation" }, /* @__PURE__ */ import_react38.default.createElement(
|
|
4870
5054
|
Calendar_default,
|
|
4871
5055
|
{
|
|
4872
5056
|
view: "month",
|
|
@@ -4887,14 +5071,14 @@ var MonthPicker = (0, import_react37.forwardRef)((inProps, ref) => {
|
|
|
4887
5071
|
disablePast,
|
|
4888
5072
|
locale
|
|
4889
5073
|
}
|
|
4890
|
-
), /* @__PURE__ */
|
|
5074
|
+
), /* @__PURE__ */ import_react38.default.createElement(
|
|
4891
5075
|
DialogActions_default,
|
|
4892
5076
|
{
|
|
4893
5077
|
sx: {
|
|
4894
5078
|
p: 1
|
|
4895
5079
|
}
|
|
4896
5080
|
},
|
|
4897
|
-
/* @__PURE__ */
|
|
5081
|
+
/* @__PURE__ */ import_react38.default.createElement(
|
|
4898
5082
|
Button_default,
|
|
4899
5083
|
{
|
|
4900
5084
|
size,
|
|
@@ -4917,18 +5101,18 @@ var MonthPicker = (0, import_react37.forwardRef)((inProps, ref) => {
|
|
|
4917
5101
|
});
|
|
4918
5102
|
|
|
4919
5103
|
// src/components/MonthRangePicker/MonthRangePicker.tsx
|
|
4920
|
-
var
|
|
5104
|
+
var import_react39 = __toESM(require("react"));
|
|
4921
5105
|
var import_react_imask3 = require("react-imask");
|
|
4922
5106
|
var import_CalendarToday4 = __toESM(require("@mui/icons-material/CalendarToday"));
|
|
4923
|
-
var
|
|
5107
|
+
var import_joy51 = require("@mui/joy");
|
|
4924
5108
|
var import_base5 = require("@mui/base");
|
|
4925
|
-
var StyledPopper4 = (0,
|
|
5109
|
+
var StyledPopper4 = (0, import_joy51.styled)(import_base5.Popper, {
|
|
4926
5110
|
name: "MonthRangePicker",
|
|
4927
5111
|
slot: "popper"
|
|
4928
5112
|
})(({ theme }) => ({
|
|
4929
5113
|
zIndex: theme.zIndex.tooltip
|
|
4930
5114
|
}));
|
|
4931
|
-
var CalendarSheet4 = (0,
|
|
5115
|
+
var CalendarSheet4 = (0, import_joy51.styled)(Sheet_default, {
|
|
4932
5116
|
name: "MonthRangePicker",
|
|
4933
5117
|
slot: "sheet",
|
|
4934
5118
|
overridesResolver: (props, styles) => styles.root
|
|
@@ -4938,7 +5122,7 @@ var CalendarSheet4 = (0, import_joy50.styled)(Sheet_default, {
|
|
|
4938
5122
|
boxShadow: theme.shadow.md,
|
|
4939
5123
|
borderRadius: theme.radius.md
|
|
4940
5124
|
}));
|
|
4941
|
-
var MonthRangePickerRoot = (0,
|
|
5125
|
+
var MonthRangePickerRoot = (0, import_joy51.styled)("div", {
|
|
4942
5126
|
name: "MonthRangePicker",
|
|
4943
5127
|
slot: "root",
|
|
4944
5128
|
overridesResolver: (props, styles) => styles.root
|
|
@@ -4975,9 +5159,9 @@ var parseDates2 = (str) => {
|
|
|
4975
5159
|
var formatToPattern3 = (format) => {
|
|
4976
5160
|
return `${format} - ${format}`.replace(/YYYY/g, "Y").replace(/MM/g, "m").replace(/[^YMm\s]/g, (match) => `${match}\``);
|
|
4977
5161
|
};
|
|
4978
|
-
var TextMaskAdapter7 =
|
|
5162
|
+
var TextMaskAdapter7 = import_react39.default.forwardRef(function TextMaskAdapter8(props, ref) {
|
|
4979
5163
|
const { onChange, format, ...other } = props;
|
|
4980
|
-
return /* @__PURE__ */
|
|
5164
|
+
return /* @__PURE__ */ import_react39.default.createElement(
|
|
4981
5165
|
import_react_imask3.IMaskInput,
|
|
4982
5166
|
{
|
|
4983
5167
|
...other,
|
|
@@ -5005,8 +5189,8 @@ var TextMaskAdapter7 = import_react38.default.forwardRef(function TextMaskAdapte
|
|
|
5005
5189
|
}
|
|
5006
5190
|
);
|
|
5007
5191
|
});
|
|
5008
|
-
var MonthRangePicker = (0,
|
|
5009
|
-
const props = (0,
|
|
5192
|
+
var MonthRangePicker = (0, import_react39.forwardRef)((inProps, ref) => {
|
|
5193
|
+
const props = (0, import_joy51.useThemeProps)({ props: inProps, name: "MonthRangePicker" });
|
|
5010
5194
|
const {
|
|
5011
5195
|
onChange,
|
|
5012
5196
|
disabled,
|
|
@@ -5025,35 +5209,35 @@ var MonthRangePicker = (0, import_react38.forwardRef)((inProps, ref) => {
|
|
|
5025
5209
|
size,
|
|
5026
5210
|
...innerProps
|
|
5027
5211
|
} = props;
|
|
5028
|
-
const innerRef = (0,
|
|
5212
|
+
const innerRef = (0, import_react39.useRef)(null);
|
|
5029
5213
|
const [value, setValue] = useControlledState(
|
|
5030
5214
|
props.value,
|
|
5031
5215
|
props.defaultValue || "",
|
|
5032
|
-
(0,
|
|
5216
|
+
(0, import_react39.useCallback)((value2) => onChange?.({ target: { name: props.name, value: value2 } }), [props.name, onChange])
|
|
5033
5217
|
);
|
|
5034
|
-
const [anchorEl, setAnchorEl] = (0,
|
|
5218
|
+
const [anchorEl, setAnchorEl] = (0, import_react39.useState)(null);
|
|
5035
5219
|
const open = Boolean(anchorEl);
|
|
5036
|
-
const calendarValue = (0,
|
|
5037
|
-
(0,
|
|
5220
|
+
const calendarValue = (0, import_react39.useMemo)(() => value ? parseDates2(value) : void 0, [value]);
|
|
5221
|
+
(0, import_react39.useEffect)(() => {
|
|
5038
5222
|
if (!anchorEl) {
|
|
5039
5223
|
innerRef.current?.blur();
|
|
5040
5224
|
}
|
|
5041
5225
|
}, [anchorEl, innerRef]);
|
|
5042
|
-
(0,
|
|
5043
|
-
const handleChange = (0,
|
|
5226
|
+
(0, import_react39.useImperativeHandle)(ref, () => innerRef.current, [innerRef]);
|
|
5227
|
+
const handleChange = (0, import_react39.useCallback)(
|
|
5044
5228
|
(event) => {
|
|
5045
5229
|
setValue(event.target.value);
|
|
5046
5230
|
},
|
|
5047
5231
|
[setValue]
|
|
5048
5232
|
);
|
|
5049
|
-
const handleCalendarToggle = (0,
|
|
5233
|
+
const handleCalendarToggle = (0, import_react39.useCallback)(
|
|
5050
5234
|
(event) => {
|
|
5051
5235
|
setAnchorEl(anchorEl ? null : event.currentTarget);
|
|
5052
5236
|
innerRef.current?.focus();
|
|
5053
5237
|
},
|
|
5054
5238
|
[anchorEl, setAnchorEl, innerRef]
|
|
5055
5239
|
);
|
|
5056
|
-
const handleCalendarChange = (0,
|
|
5240
|
+
const handleCalendarChange = (0, import_react39.useCallback)(
|
|
5057
5241
|
([date1, date2]) => {
|
|
5058
5242
|
if (!date1 || !date2) return;
|
|
5059
5243
|
setValue(formatValueString4([date1, date2], format));
|
|
@@ -5061,7 +5245,7 @@ var MonthRangePicker = (0, import_react38.forwardRef)((inProps, ref) => {
|
|
|
5061
5245
|
},
|
|
5062
5246
|
[setValue, setAnchorEl, format]
|
|
5063
5247
|
);
|
|
5064
|
-
return /* @__PURE__ */
|
|
5248
|
+
return /* @__PURE__ */ import_react39.default.createElement(MonthRangePickerRoot, null, /* @__PURE__ */ import_react39.default.createElement(import_base5.FocusTrap, { open: true }, /* @__PURE__ */ import_react39.default.createElement(import_react39.default.Fragment, null, /* @__PURE__ */ import_react39.default.createElement(
|
|
5065
5249
|
Input_default,
|
|
5066
5250
|
{
|
|
5067
5251
|
...innerProps,
|
|
@@ -5083,7 +5267,7 @@ var MonthRangePicker = (0, import_react38.forwardRef)((inProps, ref) => {
|
|
|
5083
5267
|
// NOTE: placeholder char 를 텍스트로 표시하므로 동일한 너비를 가지는 mono font 를 사용해야 이질감이 없다.
|
|
5084
5268
|
fontFamily: "monospace"
|
|
5085
5269
|
},
|
|
5086
|
-
endDecorator: /* @__PURE__ */
|
|
5270
|
+
endDecorator: /* @__PURE__ */ import_react39.default.createElement(
|
|
5087
5271
|
IconButton_default,
|
|
5088
5272
|
{
|
|
5089
5273
|
variant: "plain",
|
|
@@ -5093,12 +5277,12 @@ var MonthRangePicker = (0, import_react38.forwardRef)((inProps, ref) => {
|
|
|
5093
5277
|
"aria-haspopup": "dialog",
|
|
5094
5278
|
"aria-expanded": open
|
|
5095
5279
|
},
|
|
5096
|
-
/* @__PURE__ */
|
|
5280
|
+
/* @__PURE__ */ import_react39.default.createElement(import_CalendarToday4.default, null)
|
|
5097
5281
|
),
|
|
5098
5282
|
label,
|
|
5099
5283
|
helperText
|
|
5100
5284
|
}
|
|
5101
|
-
), open && /* @__PURE__ */
|
|
5285
|
+
), open && /* @__PURE__ */ import_react39.default.createElement(import_base5.ClickAwayListener, { onClickAway: () => setAnchorEl(null) }, /* @__PURE__ */ import_react39.default.createElement(
|
|
5102
5286
|
StyledPopper4,
|
|
5103
5287
|
{
|
|
5104
5288
|
id: "month-range-picker-popper",
|
|
@@ -5117,7 +5301,7 @@ var MonthRangePicker = (0, import_react38.forwardRef)((inProps, ref) => {
|
|
|
5117
5301
|
"aria-label": "Calendar Tooltip",
|
|
5118
5302
|
"aria-expanded": open
|
|
5119
5303
|
},
|
|
5120
|
-
/* @__PURE__ */
|
|
5304
|
+
/* @__PURE__ */ import_react39.default.createElement(CalendarSheet4, { tabIndex: -1, role: "presentation" }, /* @__PURE__ */ import_react39.default.createElement(
|
|
5121
5305
|
Calendar_default,
|
|
5122
5306
|
{
|
|
5123
5307
|
view: "month",
|
|
@@ -5130,14 +5314,14 @@ var MonthRangePicker = (0, import_react38.forwardRef)((inProps, ref) => {
|
|
|
5130
5314
|
disableFuture,
|
|
5131
5315
|
disablePast
|
|
5132
5316
|
}
|
|
5133
|
-
), /* @__PURE__ */
|
|
5317
|
+
), /* @__PURE__ */ import_react39.default.createElement(
|
|
5134
5318
|
DialogActions_default,
|
|
5135
5319
|
{
|
|
5136
5320
|
sx: {
|
|
5137
5321
|
p: 1
|
|
5138
5322
|
}
|
|
5139
5323
|
},
|
|
5140
|
-
/* @__PURE__ */
|
|
5324
|
+
/* @__PURE__ */ import_react39.default.createElement(
|
|
5141
5325
|
Button_default,
|
|
5142
5326
|
{
|
|
5143
5327
|
size,
|
|
@@ -5156,22 +5340,22 @@ var MonthRangePicker = (0, import_react38.forwardRef)((inProps, ref) => {
|
|
|
5156
5340
|
MonthRangePicker.displayName = "MonthRangePicker";
|
|
5157
5341
|
|
|
5158
5342
|
// src/components/NavigationGroup/NavigationGroup.tsx
|
|
5159
|
-
var
|
|
5160
|
-
var
|
|
5161
|
-
var AccordionSummary2 = (0,
|
|
5343
|
+
var import_react40 = __toESM(require("react"));
|
|
5344
|
+
var import_joy52 = require("@mui/joy");
|
|
5345
|
+
var AccordionSummary2 = (0, import_joy52.styled)(import_joy52.AccordionSummary, {
|
|
5162
5346
|
name: "NavigationGroup",
|
|
5163
5347
|
slot: "Summary",
|
|
5164
5348
|
shouldForwardProp: (prop) => prop !== "useIcon" && prop !== "level"
|
|
5165
5349
|
})(({ theme, useIcon, level }) => ({
|
|
5166
|
-
[`& .${
|
|
5350
|
+
[`& .${import_joy52.accordionSummaryClasses.button}`]: {
|
|
5167
5351
|
padding: theme.spacing(4, 6, 4, (useIcon ? 6 : 8) + (level || 0) * 8),
|
|
5168
|
-
[`&.${
|
|
5352
|
+
[`&.${import_joy52.accordionSummaryClasses.expanded}`]: {
|
|
5169
5353
|
color: theme.palette.primary.plainColor,
|
|
5170
5354
|
"--Icon-color": theme.palette.primary.plainColor
|
|
5171
5355
|
}
|
|
5172
5356
|
}
|
|
5173
5357
|
}));
|
|
5174
|
-
var AccordionDetails2 = (0,
|
|
5358
|
+
var AccordionDetails2 = (0, import_joy52.styled)(import_joy52.AccordionDetails, {
|
|
5175
5359
|
name: "NavigationGroup",
|
|
5176
5360
|
slot: "Details"
|
|
5177
5361
|
})(({ theme }) => ({
|
|
@@ -5180,13 +5364,13 @@ var AccordionDetails2 = (0, import_joy51.styled)(import_joy51.AccordionDetails,
|
|
|
5180
5364
|
}));
|
|
5181
5365
|
function NavigationGroup(props) {
|
|
5182
5366
|
const { title, children, startDecorator, level, ...rest } = props;
|
|
5183
|
-
return /* @__PURE__ */
|
|
5367
|
+
return /* @__PURE__ */ import_react40.default.createElement(import_joy52.Accordion, { ...rest }, /* @__PURE__ */ import_react40.default.createElement(AccordionSummary2, { useIcon: !!startDecorator, level }, /* @__PURE__ */ import_react40.default.createElement(import_joy52.Stack, { direction: "row", gap: 4 }, startDecorator, title)), /* @__PURE__ */ import_react40.default.createElement(AccordionDetails2, null, children));
|
|
5184
5368
|
}
|
|
5185
5369
|
|
|
5186
5370
|
// src/components/NavigationItem/NavigationItem.tsx
|
|
5187
|
-
var
|
|
5188
|
-
var
|
|
5189
|
-
var ListItemButton = (0,
|
|
5371
|
+
var import_react41 = __toESM(require("react"));
|
|
5372
|
+
var import_joy53 = require("@mui/joy");
|
|
5373
|
+
var ListItemButton = (0, import_joy53.styled)(import_joy53.ListItemButton, {
|
|
5190
5374
|
name: "NavigationItem",
|
|
5191
5375
|
slot: "Button",
|
|
5192
5376
|
shouldForwardProp: (prop) => prop !== "useIcon" && prop !== "level"
|
|
@@ -5200,7 +5384,7 @@ var ListItemButton = (0, import_joy52.styled)(import_joy52.ListItemButton, {
|
|
|
5200
5384
|
"&:active": {
|
|
5201
5385
|
backgroundColor: theme.palette.neutral.plainActiveBg
|
|
5202
5386
|
},
|
|
5203
|
-
[`&.${
|
|
5387
|
+
[`&.${import_joy53.listItemButtonClasses.selected}`]: {
|
|
5204
5388
|
color: theme.palette.primary.plainColor,
|
|
5205
5389
|
"--Icon-color": theme.palette.primary.plainColor,
|
|
5206
5390
|
"&:not(:hover):not(:active)": {
|
|
@@ -5213,7 +5397,7 @@ function NavigationItem(props) {
|
|
|
5213
5397
|
const handleClick = () => {
|
|
5214
5398
|
onClick?.(id);
|
|
5215
5399
|
};
|
|
5216
|
-
return /* @__PURE__ */
|
|
5400
|
+
return /* @__PURE__ */ import_react41.default.createElement(import_joy53.ListItem, { ...rest }, /* @__PURE__ */ import_react41.default.createElement(
|
|
5217
5401
|
ListItemButton,
|
|
5218
5402
|
{
|
|
5219
5403
|
level,
|
|
@@ -5222,21 +5406,21 @@ function NavigationItem(props) {
|
|
|
5222
5406
|
"aria-current": selected,
|
|
5223
5407
|
onClick: handleClick
|
|
5224
5408
|
},
|
|
5225
|
-
startDecorator && /* @__PURE__ */
|
|
5409
|
+
startDecorator && /* @__PURE__ */ import_react41.default.createElement(import_joy53.ListItemDecorator, null, startDecorator),
|
|
5226
5410
|
children
|
|
5227
5411
|
));
|
|
5228
5412
|
}
|
|
5229
5413
|
|
|
5230
5414
|
// src/components/Navigator/Navigator.tsx
|
|
5231
|
-
var
|
|
5415
|
+
var import_react42 = __toESM(require("react"));
|
|
5232
5416
|
function Navigator(props) {
|
|
5233
5417
|
const { items, level = 0, onSelect } = props;
|
|
5234
5418
|
const handleItemClick = (id) => {
|
|
5235
5419
|
onSelect?.(id);
|
|
5236
5420
|
};
|
|
5237
|
-
return /* @__PURE__ */
|
|
5421
|
+
return /* @__PURE__ */ import_react42.default.createElement("div", null, items.map((item, index) => {
|
|
5238
5422
|
if (item.type === "item") {
|
|
5239
|
-
return /* @__PURE__ */
|
|
5423
|
+
return /* @__PURE__ */ import_react42.default.createElement(
|
|
5240
5424
|
NavigationItem,
|
|
5241
5425
|
{
|
|
5242
5426
|
key: item.id,
|
|
@@ -5249,7 +5433,7 @@ function Navigator(props) {
|
|
|
5249
5433
|
item.title
|
|
5250
5434
|
);
|
|
5251
5435
|
} else if (item.type === "group") {
|
|
5252
|
-
return /* @__PURE__ */
|
|
5436
|
+
return /* @__PURE__ */ import_react42.default.createElement(
|
|
5253
5437
|
NavigationGroup,
|
|
5254
5438
|
{
|
|
5255
5439
|
key: `${item.title}-${index}`,
|
|
@@ -5267,16 +5451,16 @@ function Navigator(props) {
|
|
|
5267
5451
|
Navigator.displayName = "Navigator";
|
|
5268
5452
|
|
|
5269
5453
|
// src/components/PercentageInput/PercentageInput.tsx
|
|
5270
|
-
var
|
|
5454
|
+
var import_react43 = __toESM(require("react"));
|
|
5271
5455
|
var import_react_number_format2 = require("react-number-format");
|
|
5272
|
-
var
|
|
5456
|
+
var import_joy54 = require("@mui/joy");
|
|
5273
5457
|
var padDecimal = (value, decimalScale) => {
|
|
5274
5458
|
const [integer, decimal = ""] = `${value}`.split(".");
|
|
5275
5459
|
return Number(`${integer}${decimal.padEnd(decimalScale, "0")}`);
|
|
5276
5460
|
};
|
|
5277
|
-
var TextMaskAdapter9 =
|
|
5461
|
+
var TextMaskAdapter9 = import_react43.default.forwardRef(function TextMaskAdapter10(props, ref) {
|
|
5278
5462
|
const { onChange, min, max, ...innerProps } = props;
|
|
5279
|
-
return /* @__PURE__ */
|
|
5463
|
+
return /* @__PURE__ */ import_react43.default.createElement(
|
|
5280
5464
|
import_react_number_format2.NumericFormat,
|
|
5281
5465
|
{
|
|
5282
5466
|
...innerProps,
|
|
@@ -5296,14 +5480,14 @@ var TextMaskAdapter9 = import_react42.default.forwardRef(function TextMaskAdapte
|
|
|
5296
5480
|
}
|
|
5297
5481
|
);
|
|
5298
5482
|
});
|
|
5299
|
-
var PercentageInputRoot = (0,
|
|
5483
|
+
var PercentageInputRoot = (0, import_joy54.styled)(Input_default, {
|
|
5300
5484
|
name: "PercentageInput",
|
|
5301
5485
|
slot: "Root",
|
|
5302
5486
|
overridesResolver: (props, styles) => styles.root
|
|
5303
5487
|
})({});
|
|
5304
|
-
var PercentageInput =
|
|
5488
|
+
var PercentageInput = import_react43.default.forwardRef(
|
|
5305
5489
|
function PercentageInput2(inProps, ref) {
|
|
5306
|
-
const props = (0,
|
|
5490
|
+
const props = (0, import_joy54.useThemeProps)({ props: inProps, name: "PercentageInput" });
|
|
5307
5491
|
const {
|
|
5308
5492
|
name,
|
|
5309
5493
|
onChange,
|
|
@@ -5324,18 +5508,18 @@ var PercentageInput = import_react42.default.forwardRef(
|
|
|
5324
5508
|
const [_value, setValue] = useControlledState(
|
|
5325
5509
|
props.value,
|
|
5326
5510
|
props.defaultValue,
|
|
5327
|
-
(0,
|
|
5511
|
+
(0, import_react43.useCallback)((value2) => onChange?.({ target: { name, value: value2 } }), [onChange, name])
|
|
5328
5512
|
);
|
|
5329
|
-
const [internalError, setInternalError] = (0,
|
|
5513
|
+
const [internalError, setInternalError] = (0, import_react43.useState)(
|
|
5330
5514
|
max && _value && _value > max || min && _value && _value < min
|
|
5331
5515
|
);
|
|
5332
|
-
const value = (0,
|
|
5516
|
+
const value = (0, import_react43.useMemo)(() => {
|
|
5333
5517
|
if (_value && useMinorUnit) {
|
|
5334
5518
|
return _value / Math.pow(10, maxDecimalScale);
|
|
5335
5519
|
}
|
|
5336
5520
|
return _value;
|
|
5337
5521
|
}, [_value, useMinorUnit, maxDecimalScale]);
|
|
5338
|
-
const handleChange = (0,
|
|
5522
|
+
const handleChange = (0, import_react43.useCallback)(
|
|
5339
5523
|
(event) => {
|
|
5340
5524
|
if (event.target.value === "") {
|
|
5341
5525
|
setValue(void 0);
|
|
@@ -5352,7 +5536,7 @@ var PercentageInput = import_react42.default.forwardRef(
|
|
|
5352
5536
|
},
|
|
5353
5537
|
[setValue, useMinorUnit, maxDecimalScale, min, max]
|
|
5354
5538
|
);
|
|
5355
|
-
return /* @__PURE__ */
|
|
5539
|
+
return /* @__PURE__ */ import_react43.default.createElement(
|
|
5356
5540
|
PercentageInputRoot,
|
|
5357
5541
|
{
|
|
5358
5542
|
...innerProps,
|
|
@@ -5383,37 +5567,37 @@ var PercentageInput = import_react42.default.forwardRef(
|
|
|
5383
5567
|
PercentageInput.displayName = "PercentageInput";
|
|
5384
5568
|
|
|
5385
5569
|
// src/components/Radio/Radio.tsx
|
|
5386
|
-
var
|
|
5570
|
+
var import_joy55 = require("@mui/joy");
|
|
5387
5571
|
var import_framer_motion27 = require("framer-motion");
|
|
5388
|
-
var MotionRadio = (0, import_framer_motion27.motion)(
|
|
5572
|
+
var MotionRadio = (0, import_framer_motion27.motion)(import_joy55.Radio);
|
|
5389
5573
|
var Radio = MotionRadio;
|
|
5390
5574
|
Radio.displayName = "Radio";
|
|
5391
|
-
var MotionRadioGroup = (0, import_framer_motion27.motion)(
|
|
5575
|
+
var MotionRadioGroup = (0, import_framer_motion27.motion)(import_joy55.RadioGroup);
|
|
5392
5576
|
var RadioGroup = MotionRadioGroup;
|
|
5393
5577
|
RadioGroup.displayName = "RadioGroup";
|
|
5394
5578
|
|
|
5395
5579
|
// src/components/RadioList/RadioList.tsx
|
|
5396
|
-
var
|
|
5580
|
+
var import_react44 = __toESM(require("react"));
|
|
5397
5581
|
function RadioList(props) {
|
|
5398
5582
|
const { items, ...innerProps } = props;
|
|
5399
|
-
return /* @__PURE__ */
|
|
5583
|
+
return /* @__PURE__ */ import_react44.default.createElement(RadioGroup, { ...innerProps }, items.map((item) => /* @__PURE__ */ import_react44.default.createElement(Radio, { key: `${item.value}`, value: item.value, label: item.label })));
|
|
5400
5584
|
}
|
|
5401
5585
|
RadioList.displayName = "RadioList";
|
|
5402
5586
|
|
|
5403
5587
|
// src/components/Stepper/Stepper.tsx
|
|
5404
|
-
var
|
|
5405
|
-
var
|
|
5588
|
+
var import_react45 = __toESM(require("react"));
|
|
5589
|
+
var import_joy56 = require("@mui/joy");
|
|
5406
5590
|
var import_Check = __toESM(require("@mui/icons-material/Check"));
|
|
5407
5591
|
var import_framer_motion28 = require("framer-motion");
|
|
5408
|
-
var Step = (0,
|
|
5592
|
+
var Step = (0, import_joy56.styled)(import_joy56.Step)({});
|
|
5409
5593
|
Step.displayName = "Step";
|
|
5410
|
-
var StepIndicator = (0,
|
|
5594
|
+
var StepIndicator = (0, import_joy56.styled)(import_joy56.StepIndicator)({});
|
|
5411
5595
|
StepIndicator.displayName = "StepIndicator";
|
|
5412
|
-
var StyledStepper = (0,
|
|
5596
|
+
var StyledStepper = (0, import_joy56.styled)(import_joy56.Stepper)(({ theme }) => ({
|
|
5413
5597
|
"--StepIndicator-size": "24px",
|
|
5414
5598
|
"--Step-gap": theme.spacing(2),
|
|
5415
5599
|
"--joy-palette-success-solidBg": "var(--joy-palette-success-400)",
|
|
5416
|
-
[`& .${
|
|
5600
|
+
[`& .${import_joy56.stepIndicatorClasses.root}`]: {
|
|
5417
5601
|
fontSize: "var(--ceed-fontSize-xs)"
|
|
5418
5602
|
}
|
|
5419
5603
|
}));
|
|
@@ -5430,31 +5614,31 @@ function Stepper(props) {
|
|
|
5430
5614
|
stepOrientation = "horizontal"
|
|
5431
5615
|
} = props;
|
|
5432
5616
|
const effectiveStepOrientation = orientation === "vertical" ? "horizontal" : stepOrientation;
|
|
5433
|
-
return /* @__PURE__ */
|
|
5617
|
+
return /* @__PURE__ */ import_react45.default.createElement(
|
|
5434
5618
|
MotionStepper,
|
|
5435
5619
|
{
|
|
5436
5620
|
orientation,
|
|
5437
5621
|
sx: (theme) => ({
|
|
5438
5622
|
"--StepIndicator-size": "24px",
|
|
5439
5623
|
"--Step-gap": theme.spacing(2),
|
|
5440
|
-
[`& .${
|
|
5624
|
+
[`& .${import_joy56.stepIndicatorClasses.root}`]: {
|
|
5441
5625
|
fontSize: "var(--ceed-fontSize-xs)"
|
|
5442
5626
|
},
|
|
5443
|
-
[`& .${
|
|
5627
|
+
[`& .${import_joy56.stepClasses.completed}`]: {
|
|
5444
5628
|
"&::after": { bgcolor: activeLineColor },
|
|
5445
|
-
[`& .${
|
|
5629
|
+
[`& .${import_joy56.stepIndicatorClasses.root}`]: {
|
|
5446
5630
|
bgcolor: activeColor
|
|
5447
5631
|
}
|
|
5448
5632
|
},
|
|
5449
|
-
[`& .${
|
|
5633
|
+
[`& .${import_joy56.stepClasses.active}`]: {
|
|
5450
5634
|
"&::after": { bgcolor: inactiveLineColor },
|
|
5451
|
-
[`& .${
|
|
5635
|
+
[`& .${import_joy56.stepIndicatorClasses.root}`]: {
|
|
5452
5636
|
bgcolor: activeColor
|
|
5453
5637
|
}
|
|
5454
5638
|
},
|
|
5455
|
-
[`& .${
|
|
5639
|
+
[`& .${import_joy56.stepClasses.disabled}`]: {
|
|
5456
5640
|
"&::after": { bgcolor: inactiveLineColor },
|
|
5457
|
-
[`& .${
|
|
5641
|
+
[`& .${import_joy56.stepIndicatorClasses.root}`]: {
|
|
5458
5642
|
bgcolor: theme.vars.palette.background.surface,
|
|
5459
5643
|
borderColor: theme.vars.palette.neutral.outlinedBorder,
|
|
5460
5644
|
borderWidth: "1px",
|
|
@@ -5469,23 +5653,23 @@ function Stepper(props) {
|
|
|
5469
5653
|
const completed = activeStep > i + 1;
|
|
5470
5654
|
const disabled = activeStep < i + 1;
|
|
5471
5655
|
const hasContent = step.label || step.extraContent;
|
|
5472
|
-
return /* @__PURE__ */
|
|
5656
|
+
return /* @__PURE__ */ import_react45.default.createElement(
|
|
5473
5657
|
Step,
|
|
5474
5658
|
{
|
|
5475
5659
|
key: `step-${i}`,
|
|
5476
|
-
indicator: /* @__PURE__ */
|
|
5660
|
+
indicator: /* @__PURE__ */ import_react45.default.createElement(StepIndicator, { variant: disabled ? "outlined" : "solid", color: disabled ? "neutral" : "primary" }, completed ? /* @__PURE__ */ import_react45.default.createElement(import_Check.default, null) : step.indicatorContent),
|
|
5477
5661
|
active,
|
|
5478
5662
|
completed,
|
|
5479
5663
|
disabled,
|
|
5480
5664
|
orientation: effectiveStepOrientation
|
|
5481
5665
|
},
|
|
5482
|
-
hasContent && /* @__PURE__ */
|
|
5666
|
+
hasContent && /* @__PURE__ */ import_react45.default.createElement(
|
|
5483
5667
|
Stack_default,
|
|
5484
5668
|
{
|
|
5485
5669
|
sx: orientation === "horizontal" && effectiveStepOrientation === "vertical" ? { alignItems: "center" } : {}
|
|
5486
5670
|
},
|
|
5487
|
-
step.label && /* @__PURE__ */
|
|
5488
|
-
step.extraContent && /* @__PURE__ */
|
|
5671
|
+
step.label && /* @__PURE__ */ import_react45.default.createElement(Typography_default, { level: "title-sm" }, step.label),
|
|
5672
|
+
step.extraContent && /* @__PURE__ */ import_react45.default.createElement(Typography_default, { level: "body-xs" }, step.extraContent)
|
|
5489
5673
|
)
|
|
5490
5674
|
);
|
|
5491
5675
|
})
|
|
@@ -5494,11 +5678,11 @@ function Stepper(props) {
|
|
|
5494
5678
|
Stepper.displayName = "Stepper";
|
|
5495
5679
|
|
|
5496
5680
|
// src/components/Switch/Switch.tsx
|
|
5497
|
-
var
|
|
5498
|
-
var
|
|
5681
|
+
var import_react46 = __toESM(require("react"));
|
|
5682
|
+
var import_joy57 = require("@mui/joy");
|
|
5499
5683
|
var import_framer_motion29 = require("framer-motion");
|
|
5500
|
-
var MotionSwitch = (0, import_framer_motion29.motion)(
|
|
5501
|
-
var StyledThumb = (0,
|
|
5684
|
+
var MotionSwitch = (0, import_framer_motion29.motion)(import_joy57.Switch);
|
|
5685
|
+
var StyledThumb = (0, import_joy57.styled)(import_framer_motion29.motion.div)({
|
|
5502
5686
|
"--Icon-fontSize": "calc(var(--Switch-thumbSize) * 0.75)",
|
|
5503
5687
|
display: "inline-flex",
|
|
5504
5688
|
justifyContent: "center",
|
|
@@ -5511,19 +5695,19 @@ var StyledThumb = (0, import_joy56.styled)(import_framer_motion29.motion.div)({
|
|
|
5511
5695
|
boxShadow: "var(--Switch-thumbShadow)",
|
|
5512
5696
|
color: "var(--Switch-thumbColor)",
|
|
5513
5697
|
backgroundColor: "var(--Switch-thumbBackground)",
|
|
5514
|
-
[`&.${
|
|
5698
|
+
[`&.${import_joy57.switchClasses.checked}`]: {
|
|
5515
5699
|
left: "unset",
|
|
5516
5700
|
right: "var(--Switch-thumbOffset)"
|
|
5517
5701
|
}
|
|
5518
5702
|
});
|
|
5519
|
-
var Thumb = (props) => /* @__PURE__ */
|
|
5703
|
+
var Thumb = (props) => /* @__PURE__ */ import_react46.default.createElement(StyledThumb, { ...props, layout: true, transition: spring });
|
|
5520
5704
|
var spring = {
|
|
5521
5705
|
type: "spring",
|
|
5522
5706
|
stiffness: 700,
|
|
5523
5707
|
damping: 30
|
|
5524
5708
|
};
|
|
5525
5709
|
var Switch = (props) => {
|
|
5526
|
-
return /* @__PURE__ */
|
|
5710
|
+
return /* @__PURE__ */ import_react46.default.createElement(
|
|
5527
5711
|
MotionSwitch,
|
|
5528
5712
|
{
|
|
5529
5713
|
...props,
|
|
@@ -5537,32 +5721,32 @@ var Switch = (props) => {
|
|
|
5537
5721
|
Switch.displayName = "Switch";
|
|
5538
5722
|
|
|
5539
5723
|
// src/components/Tabs/Tabs.tsx
|
|
5540
|
-
var
|
|
5541
|
-
var
|
|
5542
|
-
var StyledTabs = (0,
|
|
5724
|
+
var import_react47 = __toESM(require("react"));
|
|
5725
|
+
var import_joy58 = require("@mui/joy");
|
|
5726
|
+
var StyledTabs = (0, import_joy58.styled)(import_joy58.Tabs)(({ theme }) => ({
|
|
5543
5727
|
backgroundColor: theme.palette.background.body
|
|
5544
5728
|
}));
|
|
5545
5729
|
var Tabs = StyledTabs;
|
|
5546
5730
|
Tabs.displayName = "Tabs";
|
|
5547
|
-
var StyledTab = (0,
|
|
5731
|
+
var StyledTab = (0, import_joy58.styled)(import_joy58.Tab)(({ theme }) => ({
|
|
5548
5732
|
gap: theme.spacing(2),
|
|
5549
|
-
[`&:not(.${
|
|
5733
|
+
[`&:not(.${import_joy58.tabClasses.selected})`]: {
|
|
5550
5734
|
color: theme.palette.neutral[700]
|
|
5551
5735
|
},
|
|
5552
|
-
[`&.${
|
|
5736
|
+
[`&.${import_joy58.tabClasses.variantPlain}`]: {
|
|
5553
5737
|
backgroundColor: theme.palette.background.body
|
|
5554
5738
|
}
|
|
5555
5739
|
}));
|
|
5556
|
-
var Tab = (0,
|
|
5557
|
-
return /* @__PURE__ */
|
|
5740
|
+
var Tab = (0, import_react47.forwardRef)(function Tab2({ startDecorator, endDecorator, children, ...props }, ref) {
|
|
5741
|
+
return /* @__PURE__ */ import_react47.default.createElement(StyledTab, { ...props, ref }, startDecorator, children, endDecorator);
|
|
5558
5742
|
});
|
|
5559
5743
|
Tab.displayName = "Tab";
|
|
5560
|
-
var TabList =
|
|
5561
|
-
var TabPanel =
|
|
5744
|
+
var TabList = import_joy58.TabList;
|
|
5745
|
+
var TabPanel = import_joy58.TabPanel;
|
|
5562
5746
|
|
|
5563
5747
|
// src/components/ThemeProvider/ThemeProvider.tsx
|
|
5564
|
-
var
|
|
5565
|
-
var
|
|
5748
|
+
var import_react48 = __toESM(require("react"));
|
|
5749
|
+
var import_joy59 = require("@mui/joy");
|
|
5566
5750
|
var colorScheme = {
|
|
5567
5751
|
palette: {
|
|
5568
5752
|
danger: {
|
|
@@ -5615,7 +5799,7 @@ var colorScheme = {
|
|
|
5615
5799
|
}
|
|
5616
5800
|
}
|
|
5617
5801
|
};
|
|
5618
|
-
var defaultTheme = (0,
|
|
5802
|
+
var defaultTheme = (0, import_joy59.extendTheme)({
|
|
5619
5803
|
cssVarPrefix: "ceed",
|
|
5620
5804
|
spacing: 4,
|
|
5621
5805
|
breakpoints: {
|
|
@@ -5667,7 +5851,7 @@ var defaultTheme = (0, import_joy58.extendTheme)({
|
|
|
5667
5851
|
},
|
|
5668
5852
|
styleOverrides: {
|
|
5669
5853
|
root: {
|
|
5670
|
-
[`.${
|
|
5854
|
+
[`.${import_joy59.inputClasses.root}`]: {
|
|
5671
5855
|
// NOTE: placeholder char 를 텍스트로 표시하므로 동일한 너비를 가지는 mono font 를 사용해야 이질감이 없다.
|
|
5672
5856
|
"font-family": "monospace"
|
|
5673
5857
|
}
|
|
@@ -5680,7 +5864,7 @@ var defaultTheme = (0, import_joy58.extendTheme)({
|
|
|
5680
5864
|
},
|
|
5681
5865
|
styleOverrides: {
|
|
5682
5866
|
root: {
|
|
5683
|
-
[`.${
|
|
5867
|
+
[`.${import_joy59.inputClasses.root}`]: {
|
|
5684
5868
|
// NOTE: placeholder char 를 텍스트로 표시하므로 동일한 너비를 가지는 mono font 를 사용해야 이질감이 없다.
|
|
5685
5869
|
"font-family": "monospace"
|
|
5686
5870
|
}
|
|
@@ -5693,7 +5877,7 @@ var defaultTheme = (0, import_joy58.extendTheme)({
|
|
|
5693
5877
|
},
|
|
5694
5878
|
styleOverrides: {
|
|
5695
5879
|
root: {
|
|
5696
|
-
[`.${
|
|
5880
|
+
[`.${import_joy59.inputClasses.root}`]: {
|
|
5697
5881
|
// NOTE: placeholder char 를 텍스트로 표시하므로 동일한 너비를 가지는 mono font 를 사용해야 이질감이 없다.
|
|
5698
5882
|
"font-family": "monospace"
|
|
5699
5883
|
}
|
|
@@ -5706,7 +5890,7 @@ var defaultTheme = (0, import_joy58.extendTheme)({
|
|
|
5706
5890
|
},
|
|
5707
5891
|
styleOverrides: {
|
|
5708
5892
|
root: {
|
|
5709
|
-
[`.${
|
|
5893
|
+
[`.${import_joy59.inputClasses.root}`]: {
|
|
5710
5894
|
// NOTE: placeholder char 를 텍스트로 표시하므로 동일한 너비를 가지는 mono font 를 사용해야 이질감이 없다.
|
|
5711
5895
|
"font-family": "monospace"
|
|
5712
5896
|
}
|
|
@@ -5719,7 +5903,7 @@ var defaultTheme = (0, import_joy58.extendTheme)({
|
|
|
5719
5903
|
},
|
|
5720
5904
|
styleOverrides: {
|
|
5721
5905
|
root: {
|
|
5722
|
-
[`.${
|
|
5906
|
+
[`.${import_joy59.inputClasses.root}`]: {
|
|
5723
5907
|
// NOTE: placeholder char 를 텍스트로 표시하므로 동일한 너비를 가지는 mono font 를 사용해야 이질감이 없다.
|
|
5724
5908
|
"font-family": "monospace"
|
|
5725
5909
|
}
|
|
@@ -5761,7 +5945,7 @@ var defaultTheme = (0, import_joy58.extendTheme)({
|
|
|
5761
5945
|
outline: `${theme.palette.primary[500]} solid 2px`,
|
|
5762
5946
|
outlineOffset: "-2px"
|
|
5763
5947
|
},
|
|
5764
|
-
[`& .${
|
|
5948
|
+
[`& .${import_joy59.checkboxClasses.root}`]: {
|
|
5765
5949
|
verticalAlign: "middle"
|
|
5766
5950
|
}
|
|
5767
5951
|
})
|
|
@@ -5811,13 +5995,13 @@ var defaultTheme = (0, import_joy58.extendTheme)({
|
|
|
5811
5995
|
});
|
|
5812
5996
|
function ThemeProvider(props) {
|
|
5813
5997
|
const theme = props.theme || defaultTheme;
|
|
5814
|
-
return /* @__PURE__ */
|
|
5998
|
+
return /* @__PURE__ */ import_react48.default.createElement(import_react48.default.Fragment, null, /* @__PURE__ */ import_react48.default.createElement(import_joy59.CssVarsProvider, { theme }, /* @__PURE__ */ import_react48.default.createElement(import_joy59.CssBaseline, null), props.children));
|
|
5815
5999
|
}
|
|
5816
6000
|
ThemeProvider.displayName = "ThemeProvider";
|
|
5817
6001
|
|
|
5818
6002
|
// src/components/Uploader/Uploader.tsx
|
|
5819
|
-
var
|
|
5820
|
-
var
|
|
6003
|
+
var import_react49 = __toESM(require("react"));
|
|
6004
|
+
var import_joy60 = require("@mui/joy");
|
|
5821
6005
|
var import_CloudUploadRounded = __toESM(require("@mui/icons-material/CloudUploadRounded"));
|
|
5822
6006
|
var import_UploadFileRounded = __toESM(require("@mui/icons-material/UploadFileRounded"));
|
|
5823
6007
|
var import_ClearRounded = __toESM(require("@mui/icons-material/ClearRounded"));
|
|
@@ -5839,7 +6023,7 @@ var esmFiles = {
|
|
|
5839
6023
|
"@atlaskit/pragmatic-drag-and-drop/dist/esm/entry-point/prevent-unhandled.js"
|
|
5840
6024
|
)
|
|
5841
6025
|
};
|
|
5842
|
-
var VisuallyHiddenInput = (0,
|
|
6026
|
+
var VisuallyHiddenInput = (0, import_joy60.styled)(import_joy60.Input)({
|
|
5843
6027
|
width: "1px",
|
|
5844
6028
|
height: "1px",
|
|
5845
6029
|
overflow: "hidden",
|
|
@@ -5848,18 +6032,18 @@ var VisuallyHiddenInput = (0, import_joy59.styled)(import_joy59.Input)({
|
|
|
5848
6032
|
clipPath: "inset(50%)",
|
|
5849
6033
|
position: "absolute"
|
|
5850
6034
|
});
|
|
5851
|
-
var PreviewRoot = (0,
|
|
6035
|
+
var PreviewRoot = (0, import_joy60.styled)(Stack_default, {
|
|
5852
6036
|
name: "Uploader",
|
|
5853
6037
|
slot: "PreviewRoot"
|
|
5854
6038
|
})({});
|
|
5855
|
-
var UploadCard = (0,
|
|
6039
|
+
var UploadCard = (0, import_joy60.styled)(Card, {
|
|
5856
6040
|
name: "Uploader",
|
|
5857
6041
|
slot: "UploadCard"
|
|
5858
6042
|
})(({ theme }) => ({
|
|
5859
6043
|
padding: theme.spacing(2.5),
|
|
5860
6044
|
border: `1px solid ${theme.palette.neutral.outlinedBorder}`
|
|
5861
6045
|
}));
|
|
5862
|
-
var UploadFileIcon = (0,
|
|
6046
|
+
var UploadFileIcon = (0, import_joy60.styled)(import_UploadFileRounded.default, {
|
|
5863
6047
|
name: "Uploader",
|
|
5864
6048
|
slot: "UploadFileIcon"
|
|
5865
6049
|
})(({ theme }) => ({
|
|
@@ -5867,7 +6051,7 @@ var UploadFileIcon = (0, import_joy59.styled)(import_UploadFileRounded.default,
|
|
|
5867
6051
|
width: "32px",
|
|
5868
6052
|
height: "32px"
|
|
5869
6053
|
}));
|
|
5870
|
-
var ClearIcon2 = (0,
|
|
6054
|
+
var ClearIcon2 = (0, import_joy60.styled)(import_ClearRounded.default, {
|
|
5871
6055
|
name: "Uploader",
|
|
5872
6056
|
slot: "ClearIcon"
|
|
5873
6057
|
})(({ theme }) => ({
|
|
@@ -5893,7 +6077,7 @@ var getFileSize = (n) => {
|
|
|
5893
6077
|
};
|
|
5894
6078
|
var Preview = (props) => {
|
|
5895
6079
|
const { files, uploaded, onDelete } = props;
|
|
5896
|
-
return /* @__PURE__ */
|
|
6080
|
+
return /* @__PURE__ */ import_react49.default.createElement(PreviewRoot, { gap: 1 }, [...uploaded, ...files].map((file) => /* @__PURE__ */ import_react49.default.createElement(UploadCard, { key: file.name, size: "sm", color: "neutral" }, /* @__PURE__ */ import_react49.default.createElement(Stack_default, { direction: "row", alignItems: "center", gap: 2 }, /* @__PURE__ */ import_react49.default.createElement(UploadFileIcon, null), /* @__PURE__ */ import_react49.default.createElement(Stack_default, { flex: "1", sx: { overflow: "hidden" } }, /* @__PURE__ */ import_react49.default.createElement(
|
|
5897
6081
|
Typography_default,
|
|
5898
6082
|
{
|
|
5899
6083
|
level: "body-sm",
|
|
@@ -5905,15 +6089,15 @@ var Preview = (props) => {
|
|
|
5905
6089
|
}
|
|
5906
6090
|
},
|
|
5907
6091
|
file.name
|
|
5908
|
-
), !!file.size && /* @__PURE__ */
|
|
6092
|
+
), !!file.size && /* @__PURE__ */ import_react49.default.createElement(Typography_default, { level: "body-xs", fontWeight: "300", lineHeight: "1.33", textColor: "text.tertiary" }, getFileSize(file.size))), /* @__PURE__ */ import_react49.default.createElement(IconButton_default, { onClick: () => onDelete?.(file) }, /* @__PURE__ */ import_react49.default.createElement(ClearIcon2, null))))));
|
|
5909
6093
|
};
|
|
5910
|
-
var UploaderRoot = (0,
|
|
6094
|
+
var UploaderRoot = (0, import_joy60.styled)(Stack_default, {
|
|
5911
6095
|
name: "Uploader",
|
|
5912
6096
|
slot: "root"
|
|
5913
6097
|
})(({ theme }) => ({
|
|
5914
6098
|
gap: theme.spacing(2)
|
|
5915
6099
|
}));
|
|
5916
|
-
var FileDropZone = (0,
|
|
6100
|
+
var FileDropZone = (0, import_joy60.styled)(Sheet_default, {
|
|
5917
6101
|
name: "Uploader",
|
|
5918
6102
|
slot: "dropZone",
|
|
5919
6103
|
shouldForwardProp: (prop) => prop !== "error" && prop !== "disabled"
|
|
@@ -5934,7 +6118,7 @@ var FileDropZone = (0, import_joy59.styled)(Sheet_default, {
|
|
|
5934
6118
|
}
|
|
5935
6119
|
})
|
|
5936
6120
|
);
|
|
5937
|
-
var UploaderIcon = (0,
|
|
6121
|
+
var UploaderIcon = (0, import_joy60.styled)(import_CloudUploadRounded.default, {
|
|
5938
6122
|
name: "Uploader",
|
|
5939
6123
|
slot: "iconContainer",
|
|
5940
6124
|
shouldForwardProp: (prop) => prop !== "error" && prop !== "disabled"
|
|
@@ -5948,7 +6132,7 @@ var UploaderIcon = (0, import_joy59.styled)(import_CloudUploadRounded.default, {
|
|
|
5948
6132
|
}
|
|
5949
6133
|
})
|
|
5950
6134
|
);
|
|
5951
|
-
var Uploader =
|
|
6135
|
+
var Uploader = import_react49.default.memo(
|
|
5952
6136
|
(props) => {
|
|
5953
6137
|
const {
|
|
5954
6138
|
accept,
|
|
@@ -5965,14 +6149,14 @@ var Uploader = import_react48.default.memo(
|
|
|
5965
6149
|
error: errorProp,
|
|
5966
6150
|
helperText: helperTextProp
|
|
5967
6151
|
} = props;
|
|
5968
|
-
const dropZoneRef = (0,
|
|
5969
|
-
const inputRef = (0,
|
|
5970
|
-
const [errorText, setErrorText] = (0,
|
|
5971
|
-
const [files, setFiles] = (0,
|
|
5972
|
-
const [uploaded, setUploaded] = (0,
|
|
5973
|
-
const [previewState, setPreviewState] = (0,
|
|
5974
|
-
const accepts = (0,
|
|
5975
|
-
const parsedAccepts = (0,
|
|
6152
|
+
const dropZoneRef = (0, import_react49.useRef)(null);
|
|
6153
|
+
const inputRef = (0, import_react49.useRef)(null);
|
|
6154
|
+
const [errorText, setErrorText] = (0, import_react49.useState)();
|
|
6155
|
+
const [files, setFiles] = (0, import_react49.useState)([]);
|
|
6156
|
+
const [uploaded, setUploaded] = (0, import_react49.useState)(props.uploaded || []);
|
|
6157
|
+
const [previewState, setPreviewState] = (0, import_react49.useState)("idle");
|
|
6158
|
+
const accepts = (0, import_react49.useMemo)(() => accept.split(",").map((accept2) => accept2.trim()), [accept]);
|
|
6159
|
+
const parsedAccepts = (0, import_react49.useMemo)(
|
|
5976
6160
|
() => accepts.flatMap((type) => {
|
|
5977
6161
|
if (["image/*", "video/*", "audio/*"].includes(type)) {
|
|
5978
6162
|
return ALL_EXTENSIONS_BY_TYPE[type];
|
|
@@ -5981,7 +6165,7 @@ var Uploader = import_react48.default.memo(
|
|
|
5981
6165
|
}),
|
|
5982
6166
|
[accepts]
|
|
5983
6167
|
);
|
|
5984
|
-
const helperText = (0,
|
|
6168
|
+
const helperText = (0, import_react49.useMemo)(() => {
|
|
5985
6169
|
if (helperTextProp) {
|
|
5986
6170
|
return helperTextProp;
|
|
5987
6171
|
}
|
|
@@ -6011,12 +6195,12 @@ var Uploader = import_react48.default.memo(
|
|
|
6011
6195
|
}
|
|
6012
6196
|
return helperTexts.join(", ");
|
|
6013
6197
|
}, [accepts, maxFileTotalSize, maxCount, helperTextProp]);
|
|
6014
|
-
const error = (0,
|
|
6015
|
-
const showDropZone = (0,
|
|
6198
|
+
const error = (0, import_react49.useMemo)(() => !!errorText || errorProp, [errorProp, errorText]);
|
|
6199
|
+
const showDropZone = (0, import_react49.useMemo)(
|
|
6016
6200
|
() => !maxCount || maxCount && [...uploaded, ...files].length !== maxCount,
|
|
6017
6201
|
[files, maxCount, uploaded]
|
|
6018
6202
|
);
|
|
6019
|
-
const addFiles = (0,
|
|
6203
|
+
const addFiles = (0, import_react49.useCallback)(
|
|
6020
6204
|
(uploads) => {
|
|
6021
6205
|
try {
|
|
6022
6206
|
const types = parsedAccepts.map((type) => type.replace(".", "")) || [];
|
|
@@ -6061,7 +6245,7 @@ var Uploader = import_react48.default.memo(
|
|
|
6061
6245
|
},
|
|
6062
6246
|
[files, uploaded, maxCount, parsedAccepts, maxFileSize, maxFileTotalSize, name, onChange]
|
|
6063
6247
|
);
|
|
6064
|
-
(0,
|
|
6248
|
+
(0, import_react49.useEffect)(() => {
|
|
6065
6249
|
if (!dropZoneRef.current || disabled) {
|
|
6066
6250
|
return;
|
|
6067
6251
|
}
|
|
@@ -6099,7 +6283,7 @@ var Uploader = import_react48.default.memo(
|
|
|
6099
6283
|
);
|
|
6100
6284
|
return () => cleanup?.();
|
|
6101
6285
|
}, [disabled, addFiles]);
|
|
6102
|
-
(0,
|
|
6286
|
+
(0, import_react49.useEffect)(() => {
|
|
6103
6287
|
if (inputRef.current && minCount) {
|
|
6104
6288
|
if (files.length < minCount) {
|
|
6105
6289
|
inputRef.current.setCustomValidity(`At least ${minCount} files are required.`);
|
|
@@ -6108,14 +6292,14 @@ var Uploader = import_react48.default.memo(
|
|
|
6108
6292
|
}
|
|
6109
6293
|
}
|
|
6110
6294
|
}, [inputRef, files, minCount]);
|
|
6111
|
-
const handleFileChanged = (0,
|
|
6295
|
+
const handleFileChanged = (0, import_react49.useCallback)(
|
|
6112
6296
|
(event) => {
|
|
6113
6297
|
const files2 = Array.from(event.target.files || []);
|
|
6114
6298
|
addFiles(files2);
|
|
6115
6299
|
},
|
|
6116
6300
|
[addFiles]
|
|
6117
6301
|
);
|
|
6118
|
-
const handleDeleteFile = (0,
|
|
6302
|
+
const handleDeleteFile = (0, import_react49.useCallback)(
|
|
6119
6303
|
(deletedFile) => {
|
|
6120
6304
|
if (deletedFile instanceof File) {
|
|
6121
6305
|
setFiles((current) => {
|
|
@@ -6135,10 +6319,10 @@ var Uploader = import_react48.default.memo(
|
|
|
6135
6319
|
},
|
|
6136
6320
|
[name, onChange, onDelete]
|
|
6137
6321
|
);
|
|
6138
|
-
const handleUploaderButtonClick = (0,
|
|
6322
|
+
const handleUploaderButtonClick = (0, import_react49.useCallback)(() => {
|
|
6139
6323
|
inputRef.current?.click();
|
|
6140
6324
|
}, []);
|
|
6141
|
-
const uploader = /* @__PURE__ */
|
|
6325
|
+
const uploader = /* @__PURE__ */ import_react49.default.createElement(
|
|
6142
6326
|
FileDropZone,
|
|
6143
6327
|
{
|
|
6144
6328
|
state: previewState,
|
|
@@ -6147,8 +6331,8 @@ var Uploader = import_react48.default.memo(
|
|
|
6147
6331
|
ref: dropZoneRef,
|
|
6148
6332
|
onClick: handleUploaderButtonClick
|
|
6149
6333
|
},
|
|
6150
|
-
/* @__PURE__ */
|
|
6151
|
-
/* @__PURE__ */
|
|
6334
|
+
/* @__PURE__ */ import_react49.default.createElement(Stack_default, { alignItems: "center", gap: 1 }, /* @__PURE__ */ import_react49.default.createElement(UploaderIcon, { state: previewState, error: !!(error || errorText), disabled })),
|
|
6335
|
+
/* @__PURE__ */ import_react49.default.createElement(
|
|
6152
6336
|
VisuallyHiddenInput,
|
|
6153
6337
|
{
|
|
6154
6338
|
disabled,
|
|
@@ -6171,7 +6355,7 @@ var Uploader = import_react48.default.memo(
|
|
|
6171
6355
|
}
|
|
6172
6356
|
)
|
|
6173
6357
|
);
|
|
6174
|
-
return /* @__PURE__ */
|
|
6358
|
+
return /* @__PURE__ */ import_react49.default.createElement(UploaderRoot, null, showDropZone && /* @__PURE__ */ import_react49.default.createElement(FormControl_default, { size, error: !!(error || errorText), disabled, required: !!minCount }, label && /* @__PURE__ */ import_react49.default.createElement(FormLabel_default, null, label), uploader, /* @__PURE__ */ import_react49.default.createElement(FormHelperText_default, null, /* @__PURE__ */ import_react49.default.createElement(Stack_default, null, errorText && /* @__PURE__ */ import_react49.default.createElement("div", null, errorText), /* @__PURE__ */ import_react49.default.createElement("div", null, helperText)))), [...uploaded, ...files].length > 0 && /* @__PURE__ */ import_react49.default.createElement(Preview, { files, uploaded, onDelete: handleDeleteFile }));
|
|
6175
6359
|
}
|
|
6176
6360
|
);
|
|
6177
6361
|
Uploader.displayName = "Uploader";
|