@ceed/cds 1.24.1-next.3 → 1.25.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/chunks/rehype-accent-FZRUD7VI.js +39 -0
- package/dist/components/CurrencyInput/CurrencyInput.d.ts +1 -1
- package/dist/components/CurrencyInput/hooks/use-currency-setting.d.ts +2 -2
- package/dist/components/DataTable/components.d.ts +2 -1
- package/dist/components/DataTable/styled.d.ts +3 -1
- package/dist/components/DataTable/types.d.ts +1 -0
- package/dist/components/RadioTileGroup/RadioTileGroup.d.ts +56 -0
- package/dist/components/RadioTileGroup/index.d.ts +3 -0
- package/dist/components/data-display/DataTable.md +77 -1
- package/dist/components/data-display/InfoSign.md +74 -91
- package/dist/components/data-display/Typography.md +411 -94
- package/dist/components/feedback/CircularProgress.md +257 -0
- package/dist/components/feedback/Dialog.md +76 -62
- package/dist/components/feedback/Modal.md +430 -138
- package/dist/components/feedback/Skeleton.md +280 -0
- package/dist/components/feedback/llms.txt +2 -0
- package/dist/components/index.d.ts +1 -0
- package/dist/components/inputs/Autocomplete.md +356 -107
- package/dist/components/inputs/ButtonGroup.md +115 -104
- package/dist/components/inputs/CurrencyInput.md +183 -5
- package/dist/components/inputs/DatePicker.md +108 -431
- package/dist/components/inputs/DateRangePicker.md +131 -492
- package/dist/components/inputs/FilterableCheckboxGroup.md +145 -19
- package/dist/components/inputs/FormControl.md +361 -0
- package/dist/components/inputs/IconButton.md +137 -88
- package/dist/components/inputs/Input.md +204 -73
- package/dist/components/inputs/MonthPicker.md +95 -422
- package/dist/components/inputs/MonthRangePicker.md +89 -466
- package/dist/components/inputs/PercentageInput.md +185 -16
- package/dist/components/inputs/RadioButton.md +163 -35
- package/dist/components/inputs/RadioList.md +241 -0
- package/dist/components/inputs/RadioTileGroup.md +507 -0
- package/dist/components/inputs/Select.md +222 -326
- package/dist/components/inputs/Slider.md +334 -0
- package/dist/components/inputs/Switch.md +143 -376
- package/dist/components/inputs/Textarea.md +213 -10
- package/dist/components/inputs/Uploader/Uploader.md +145 -66
- package/dist/components/inputs/llms.txt +4 -0
- package/dist/components/navigation/Breadcrumbs.md +57 -308
- package/dist/components/navigation/Drawer.md +180 -0
- package/dist/components/navigation/Dropdown.md +98 -215
- package/dist/components/navigation/IconMenuButton.md +40 -502
- package/dist/components/navigation/InsetDrawer.md +281 -650
- package/dist/components/navigation/Link.md +31 -348
- package/dist/components/navigation/Menu.md +92 -285
- package/dist/components/navigation/MenuButton.md +55 -448
- package/dist/components/navigation/Pagination.md +47 -338
- package/dist/components/navigation/Stepper.md +160 -28
- package/dist/components/navigation/Tabs.md +57 -316
- package/dist/components/surfaces/Accordions.md +49 -804
- package/dist/components/surfaces/Card.md +97 -157
- package/dist/components/surfaces/Divider.md +83 -234
- package/dist/components/surfaces/Sheet.md +153 -328
- package/dist/guides/ThemeProvider.md +89 -0
- package/dist/guides/llms.txt +9 -0
- package/dist/index.browser.js +224 -0
- package/dist/index.browser.js.map +7 -0
- package/dist/index.cjs +648 -390
- package/dist/index.d.ts +1 -1
- package/dist/index.js +563 -361
- package/dist/llms.txt +9 -0
- package/framer/index.js +1 -163
- package/package.json +22 -17
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,
|
|
@@ -127,15 +127,15 @@ __export(index_exports, {
|
|
|
127
127
|
InfoSign: () => InfoSign,
|
|
128
128
|
Input: () => Input,
|
|
129
129
|
InsetDrawer: () => InsetDrawer,
|
|
130
|
-
LinearProgress: () =>
|
|
131
|
-
Link: () =>
|
|
132
|
-
List: () =>
|
|
133
|
-
ListDivider: () =>
|
|
134
|
-
ListItem: () =>
|
|
135
|
-
ListItemButton: () =>
|
|
136
|
-
ListItemContent: () =>
|
|
137
|
-
ListItemDecorator: () =>
|
|
138
|
-
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,
|
|
139
139
|
Markdown: () => Markdown,
|
|
140
140
|
Menu: () => Menu,
|
|
141
141
|
MenuButton: () => MenuButton,
|
|
@@ -156,13 +156,14 @@ __export(index_exports, {
|
|
|
156
156
|
Radio: () => Radio,
|
|
157
157
|
RadioGroup: () => RadioGroup,
|
|
158
158
|
RadioList: () => RadioList,
|
|
159
|
+
RadioTileGroup: () => RadioTileGroup,
|
|
159
160
|
Select: () => Select,
|
|
160
161
|
Sheet: () => Sheet,
|
|
161
|
-
Skeleton: () =>
|
|
162
|
-
Slider: () =>
|
|
162
|
+
Skeleton: () => import_joy61.Skeleton,
|
|
163
|
+
Slider: () => import_joy61.Slider,
|
|
163
164
|
Stack: () => import_joy3.Stack,
|
|
164
165
|
Step: () => Step,
|
|
165
|
-
StepButton: () =>
|
|
166
|
+
StepButton: () => import_joy61.StepButton,
|
|
166
167
|
StepIndicator: () => StepIndicator,
|
|
167
168
|
Stepper: () => Stepper,
|
|
168
169
|
Switch: () => Switch,
|
|
@@ -178,84 +179,84 @@ __export(index_exports, {
|
|
|
178
179
|
Tooltip: () => Tooltip,
|
|
179
180
|
Typography: () => Typography,
|
|
180
181
|
Uploader: () => Uploader,
|
|
181
|
-
accordionClasses: () =>
|
|
182
|
-
accordionDetailsClasses: () =>
|
|
183
|
-
accordionSummaryClasses: () =>
|
|
184
|
-
accordionsClasses: () =>
|
|
185
|
-
alertClasses: () =>
|
|
186
|
-
aspectRatioClasses: () =>
|
|
187
|
-
autocompleteClasses: () =>
|
|
188
|
-
autocompleteListboxClasses: () =>
|
|
189
|
-
autocompleteOptionClasses: () =>
|
|
190
|
-
avatarClasses: () =>
|
|
191
|
-
avatarGroupClasses: () =>
|
|
192
|
-
badgeClasses: () =>
|
|
193
|
-
boxClasses: () =>
|
|
194
|
-
breadcrumbsClasses: () =>
|
|
195
|
-
buttonClasses: () =>
|
|
196
|
-
cardActionsClasses: () =>
|
|
197
|
-
cardClasses: () =>
|
|
198
|
-
cardContentClasses: () =>
|
|
199
|
-
cardCoverClasses: () =>
|
|
200
|
-
cardOverflowClasses: () =>
|
|
201
|
-
checkboxClasses: () =>
|
|
202
|
-
chipClasses: () =>
|
|
203
|
-
circularProgressClasses: () =>
|
|
204
|
-
dialogActionsClasses: () =>
|
|
205
|
-
dialogContentClasses: () =>
|
|
206
|
-
dialogTitleClasses: () =>
|
|
207
|
-
dividerClasses: () =>
|
|
208
|
-
drawerClasses: () =>
|
|
209
|
-
extendTheme: () =>
|
|
210
|
-
formControlClasses: () =>
|
|
211
|
-
formHelperTextClasses: () =>
|
|
212
|
-
formLabelClasses: () =>
|
|
213
|
-
gridClasses: () =>
|
|
214
|
-
iconButtonClasses: () =>
|
|
215
|
-
inputClasses: () =>
|
|
216
|
-
linearProgressClasses: () =>
|
|
217
|
-
linkClasses: () =>
|
|
218
|
-
listClasses: () =>
|
|
219
|
-
listDividerClasses: () =>
|
|
220
|
-
listItemButtonClasses: () =>
|
|
221
|
-
listItemClasses: () =>
|
|
222
|
-
listItemContentClasses: () =>
|
|
223
|
-
listItemDecoratorClasses: () =>
|
|
224
|
-
listSubheaderClasses: () =>
|
|
225
|
-
menuButtonClasses: () =>
|
|
226
|
-
menuClasses: () =>
|
|
227
|
-
menuItemClasses: () =>
|
|
228
|
-
modalClasses: () =>
|
|
229
|
-
modalCloseClasses: () =>
|
|
230
|
-
modalDialogClasses: () =>
|
|
231
|
-
modalOverflowClasses: () =>
|
|
232
|
-
optionClasses: () =>
|
|
233
|
-
radioClasses: () =>
|
|
234
|
-
radioGroupClasses: () =>
|
|
235
|
-
selectClasses: () =>
|
|
236
|
-
sheetClasses: () =>
|
|
237
|
-
skeletonClasses: () =>
|
|
238
|
-
sliderClasses: () =>
|
|
239
|
-
stackClasses: () =>
|
|
240
|
-
stepButtonClasses: () =>
|
|
241
|
-
stepClasses: () =>
|
|
242
|
-
stepperClasses: () =>
|
|
243
|
-
styled: () =>
|
|
244
|
-
switchClasses: () =>
|
|
245
|
-
tabListClasses: () =>
|
|
246
|
-
tabPanelClasses: () =>
|
|
247
|
-
tableClasses: () =>
|
|
248
|
-
tabsClasses: () =>
|
|
249
|
-
textareaClasses: () =>
|
|
182
|
+
accordionClasses: () => import_joy61.accordionClasses,
|
|
183
|
+
accordionDetailsClasses: () => import_joy61.accordionDetailsClasses,
|
|
184
|
+
accordionSummaryClasses: () => import_joy61.accordionSummaryClasses,
|
|
185
|
+
accordionsClasses: () => import_joy61.accordionGroupClasses,
|
|
186
|
+
alertClasses: () => import_joy61.alertClasses,
|
|
187
|
+
aspectRatioClasses: () => import_joy61.aspectRatioClasses,
|
|
188
|
+
autocompleteClasses: () => import_joy61.autocompleteClasses,
|
|
189
|
+
autocompleteListboxClasses: () => import_joy61.autocompleteListboxClasses,
|
|
190
|
+
autocompleteOptionClasses: () => import_joy61.autocompleteOptionClasses,
|
|
191
|
+
avatarClasses: () => import_joy61.avatarClasses,
|
|
192
|
+
avatarGroupClasses: () => import_joy61.avatarGroupClasses,
|
|
193
|
+
badgeClasses: () => import_joy61.badgeClasses,
|
|
194
|
+
boxClasses: () => import_joy61.boxClasses,
|
|
195
|
+
breadcrumbsClasses: () => import_joy61.breadcrumbsClasses,
|
|
196
|
+
buttonClasses: () => import_joy61.buttonClasses,
|
|
197
|
+
cardActionsClasses: () => import_joy61.cardActionsClasses,
|
|
198
|
+
cardClasses: () => import_joy61.cardClasses,
|
|
199
|
+
cardContentClasses: () => import_joy61.cardContentClasses,
|
|
200
|
+
cardCoverClasses: () => import_joy61.cardCoverClasses,
|
|
201
|
+
cardOverflowClasses: () => import_joy61.cardOverflowClasses,
|
|
202
|
+
checkboxClasses: () => import_joy61.checkboxClasses,
|
|
203
|
+
chipClasses: () => import_joy61.chipClasses,
|
|
204
|
+
circularProgressClasses: () => import_joy61.circularProgressClasses,
|
|
205
|
+
dialogActionsClasses: () => import_joy61.dialogActionsClasses,
|
|
206
|
+
dialogContentClasses: () => import_joy61.dialogContentClasses,
|
|
207
|
+
dialogTitleClasses: () => import_joy61.dialogTitleClasses,
|
|
208
|
+
dividerClasses: () => import_joy61.dividerClasses,
|
|
209
|
+
drawerClasses: () => import_joy61.drawerClasses,
|
|
210
|
+
extendTheme: () => import_joy59.extendTheme,
|
|
211
|
+
formControlClasses: () => import_joy61.formControlClasses,
|
|
212
|
+
formHelperTextClasses: () => import_joy61.formHelperTextClasses,
|
|
213
|
+
formLabelClasses: () => import_joy61.formLabelClasses,
|
|
214
|
+
gridClasses: () => import_joy61.gridClasses,
|
|
215
|
+
iconButtonClasses: () => import_joy61.iconButtonClasses,
|
|
216
|
+
inputClasses: () => import_joy61.inputClasses,
|
|
217
|
+
linearProgressClasses: () => import_joy61.linearProgressClasses,
|
|
218
|
+
linkClasses: () => import_joy61.linkClasses,
|
|
219
|
+
listClasses: () => import_joy61.listClasses,
|
|
220
|
+
listDividerClasses: () => import_joy61.listDividerClasses,
|
|
221
|
+
listItemButtonClasses: () => import_joy61.listItemButtonClasses,
|
|
222
|
+
listItemClasses: () => import_joy61.listItemClasses,
|
|
223
|
+
listItemContentClasses: () => import_joy61.listItemContentClasses,
|
|
224
|
+
listItemDecoratorClasses: () => import_joy61.listItemDecoratorClasses,
|
|
225
|
+
listSubheaderClasses: () => import_joy61.listSubheaderClasses,
|
|
226
|
+
menuButtonClasses: () => import_joy61.menuButtonClasses,
|
|
227
|
+
menuClasses: () => import_joy61.menuClasses,
|
|
228
|
+
menuItemClasses: () => import_joy61.menuItemClasses,
|
|
229
|
+
modalClasses: () => import_joy61.modalClasses,
|
|
230
|
+
modalCloseClasses: () => import_joy61.modalCloseClasses,
|
|
231
|
+
modalDialogClasses: () => import_joy61.modalDialogClasses,
|
|
232
|
+
modalOverflowClasses: () => import_joy61.modalOverflowClasses,
|
|
233
|
+
optionClasses: () => import_joy61.optionClasses,
|
|
234
|
+
radioClasses: () => import_joy61.radioClasses,
|
|
235
|
+
radioGroupClasses: () => import_joy61.radioGroupClasses,
|
|
236
|
+
selectClasses: () => import_joy61.selectClasses,
|
|
237
|
+
sheetClasses: () => import_joy61.sheetClasses,
|
|
238
|
+
skeletonClasses: () => import_joy61.skeletonClasses,
|
|
239
|
+
sliderClasses: () => import_joy61.sliderClasses,
|
|
240
|
+
stackClasses: () => import_joy61.stackClasses,
|
|
241
|
+
stepButtonClasses: () => import_joy61.stepButtonClasses,
|
|
242
|
+
stepClasses: () => import_joy61.stepClasses,
|
|
243
|
+
stepperClasses: () => import_joy61.stepperClasses,
|
|
244
|
+
styled: () => import_joy61.styled,
|
|
245
|
+
switchClasses: () => import_joy61.switchClasses,
|
|
246
|
+
tabListClasses: () => import_joy61.tabListClasses,
|
|
247
|
+
tabPanelClasses: () => import_joy61.tabPanelClasses,
|
|
248
|
+
tableClasses: () => import_joy61.tableClasses,
|
|
249
|
+
tabsClasses: () => import_joy61.tabsClasses,
|
|
250
|
+
textareaClasses: () => import_joy61.textareaClasses,
|
|
250
251
|
theme: () => defaultTheme,
|
|
251
|
-
tooltipClasses: () =>
|
|
252
|
-
typographyClasses: () =>
|
|
253
|
-
useColorScheme: () =>
|
|
254
|
-
useTheme: () =>
|
|
255
|
-
useThemeProps: () =>
|
|
252
|
+
tooltipClasses: () => import_joy61.tooltipClasses,
|
|
253
|
+
typographyClasses: () => import_joy61.typographyClasses,
|
|
254
|
+
useColorScheme: () => import_joy61.useColorScheme,
|
|
255
|
+
useTheme: () => import_joy61.useTheme,
|
|
256
|
+
useThemeProps: () => import_joy61.useThemeProps
|
|
256
257
|
});
|
|
257
258
|
module.exports = __toCommonJS(index_exports);
|
|
258
|
-
var
|
|
259
|
+
var import_joy61 = require("@mui/joy");
|
|
259
260
|
|
|
260
261
|
// src/components/Accordions/Accordions.tsx
|
|
261
262
|
var import_react = __toESM(require("react"));
|
|
@@ -842,11 +843,24 @@ Button.displayName = "Button";
|
|
|
842
843
|
var Button_default = Button;
|
|
843
844
|
|
|
844
845
|
// src/components/Calendar/Calendar.tsx
|
|
845
|
-
var
|
|
846
|
-
var
|
|
846
|
+
var import_react14 = __toESM(require("react"));
|
|
847
|
+
var import_joy19 = require("@mui/joy");
|
|
847
848
|
var import_ChevronLeft = __toESM(require("@mui/icons-material/ChevronLeft"));
|
|
848
849
|
var import_ChevronRight = __toESM(require("@mui/icons-material/ChevronRight"));
|
|
850
|
+
var import_framer_motion13 = require("framer-motion");
|
|
851
|
+
|
|
852
|
+
// src/components/Tooltip/Tooltip.tsx
|
|
853
|
+
var import_react11 = __toESM(require("react"));
|
|
854
|
+
var import_joy17 = require("@mui/joy");
|
|
849
855
|
var import_framer_motion12 = require("framer-motion");
|
|
856
|
+
var MotionTooltip = (0, import_framer_motion12.motion)(import_joy17.Tooltip);
|
|
857
|
+
var Tooltip = (props) => {
|
|
858
|
+
return /* @__PURE__ */ import_react11.default.createElement(MotionTooltip, { ...props });
|
|
859
|
+
};
|
|
860
|
+
Tooltip.displayName = "Tooltip";
|
|
861
|
+
|
|
862
|
+
// src/components/Tooltip/index.ts
|
|
863
|
+
var Tooltip_default = Tooltip;
|
|
850
864
|
|
|
851
865
|
// src/components/Calendar/utils/index.ts
|
|
852
866
|
var getCalendarDates = (date) => {
|
|
@@ -920,43 +934,43 @@ var isSameMonth = (date1, date2) => {
|
|
|
920
934
|
};
|
|
921
935
|
|
|
922
936
|
// src/components/Calendar/hooks/use-calendar-props.ts
|
|
923
|
-
var
|
|
924
|
-
var
|
|
937
|
+
var import_react12 = require("react");
|
|
938
|
+
var import_joy18 = require("@mui/joy");
|
|
925
939
|
var resolveView = (view, views) => {
|
|
926
940
|
return views.includes(view) ? view : views[0];
|
|
927
941
|
};
|
|
928
942
|
var useCalendarProps = (inProps) => {
|
|
929
|
-
const [uncontrolledView, setUncontrolledView] = (0,
|
|
943
|
+
const [uncontrolledView, setUncontrolledView] = (0, import_react12.useState)(
|
|
930
944
|
() => resolveView(inProps.view || "day", inProps.views || ["day", "month"])
|
|
931
945
|
);
|
|
932
|
-
const [uncontrolledValue, setUncontrolledValue] = (0,
|
|
946
|
+
const [uncontrolledValue, setUncontrolledValue] = (0, import_react12.useState)(
|
|
933
947
|
inProps.defaultValue
|
|
934
948
|
);
|
|
935
|
-
const [viewMonth, setViewMonth] = (0,
|
|
949
|
+
const [viewMonth, setViewMonth] = (0, import_react12.useState)(() => {
|
|
936
950
|
const today = /* @__PURE__ */ new Date();
|
|
937
951
|
today.setDate(1);
|
|
938
952
|
today.setHours(0, 0, 0, 0);
|
|
939
953
|
return inProps.value?.[0] || inProps.defaultValue?.[0] || today;
|
|
940
954
|
});
|
|
941
|
-
const [[page, direction], setPage] = (0,
|
|
955
|
+
const [[page, direction], setPage] = (0, import_react12.useState)([0, 0]);
|
|
942
956
|
const resolvedView = inProps.view ?? uncontrolledView;
|
|
943
|
-
const resolvedMinDate = (0,
|
|
957
|
+
const resolvedMinDate = (0, import_react12.useMemo)(() => {
|
|
944
958
|
const minDate = inProps.minDate || /* @__PURE__ */ new Date(0);
|
|
945
959
|
minDate.setHours(0, 0, 0, 0);
|
|
946
960
|
return minDate;
|
|
947
961
|
}, [inProps.minDate]);
|
|
948
|
-
const resolvedMaxDate = (0,
|
|
962
|
+
const resolvedMaxDate = (0, import_react12.useMemo)(() => {
|
|
949
963
|
const maxDate = inProps.maxDate || /* @__PURE__ */ new Date(864e13);
|
|
950
964
|
maxDate.setHours(0, 0, 0, 0);
|
|
951
965
|
return maxDate;
|
|
952
966
|
}, [inProps.maxDate]);
|
|
953
|
-
const paginate = (0,
|
|
967
|
+
const paginate = (0, import_react12.useCallback)(
|
|
954
968
|
(newDirection) => {
|
|
955
969
|
setPage([page + newDirection, newDirection]);
|
|
956
970
|
},
|
|
957
971
|
[page]
|
|
958
972
|
);
|
|
959
|
-
const handleViewMonthChange = (0,
|
|
973
|
+
const handleViewMonthChange = (0, import_react12.useCallback)(
|
|
960
974
|
(newMonth) => {
|
|
961
975
|
setViewMonth(newMonth);
|
|
962
976
|
if (resolvedView === "month") {
|
|
@@ -970,7 +984,7 @@ var useCalendarProps = (inProps) => {
|
|
|
970
984
|
},
|
|
971
985
|
[resolvedView, inProps, viewMonth, paginate]
|
|
972
986
|
);
|
|
973
|
-
const props = (0,
|
|
987
|
+
const props = (0, import_joy18.useThemeProps)({
|
|
974
988
|
props: {
|
|
975
989
|
locale: "default",
|
|
976
990
|
views: ["day", "month"],
|
|
@@ -1004,18 +1018,18 @@ var useCalendarProps = (inProps) => {
|
|
|
1004
1018
|
},
|
|
1005
1019
|
name: "Calendar"
|
|
1006
1020
|
});
|
|
1007
|
-
const ownerState = (0,
|
|
1021
|
+
const ownerState = (0, import_react12.useMemo)(() => ({ ...props, viewMonth, direction }), [props, viewMonth, direction]);
|
|
1008
1022
|
return [props, ownerState];
|
|
1009
1023
|
};
|
|
1010
1024
|
|
|
1011
1025
|
// src/components/Calendar/hooks/use-calendar.ts
|
|
1012
|
-
var
|
|
1026
|
+
var import_react13 = require("react");
|
|
1013
1027
|
var useCalendar = (ownerState) => {
|
|
1014
|
-
const [hoverDay, setHoverDay] = (0,
|
|
1015
|
-
const [hoverMonth, setHoverMonth] = (0,
|
|
1028
|
+
const [hoverDay, setHoverDay] = (0, import_react13.useState)(null);
|
|
1029
|
+
const [hoverMonth, setHoverMonth] = (0, import_react13.useState)(null);
|
|
1016
1030
|
return {
|
|
1017
1031
|
calendarTitle: ownerState.view === "month" ? getYearName(ownerState.viewMonth, ownerState.locale || "default") : getMonthName(ownerState.viewMonth, ownerState.locale || "default"),
|
|
1018
|
-
onPrev: (0,
|
|
1032
|
+
onPrev: (0, import_react13.useCallback)(() => {
|
|
1019
1033
|
if (ownerState.view === "day") {
|
|
1020
1034
|
const currentDate = new Date(ownerState.viewMonth || /* @__PURE__ */ new Date());
|
|
1021
1035
|
const currentYear = currentDate.getFullYear();
|
|
@@ -1032,7 +1046,7 @@ var useCalendar = (ownerState) => {
|
|
|
1032
1046
|
ownerState.onMonthChange?.(prevYear);
|
|
1033
1047
|
}
|
|
1034
1048
|
}, [ownerState.onMonthChange, ownerState.viewMonth, ownerState.view]),
|
|
1035
|
-
onNext: (0,
|
|
1049
|
+
onNext: (0, import_react13.useCallback)(() => {
|
|
1036
1050
|
if (ownerState.view === "day") {
|
|
1037
1051
|
const currentDate = new Date(ownerState.viewMonth || /* @__PURE__ */ new Date());
|
|
1038
1052
|
const currentYear = currentDate.getFullYear();
|
|
@@ -1049,7 +1063,7 @@ var useCalendar = (ownerState) => {
|
|
|
1049
1063
|
ownerState.onMonthChange?.(nextYear);
|
|
1050
1064
|
}
|
|
1051
1065
|
}, [ownerState.onMonthChange, ownerState.viewMonth, ownerState.view]),
|
|
1052
|
-
getDayCellProps: (0,
|
|
1066
|
+
getDayCellProps: (0, import_react13.useCallback)(
|
|
1053
1067
|
(day) => {
|
|
1054
1068
|
const thisDay = new Date(ownerState.viewMonth || /* @__PURE__ */ new Date());
|
|
1055
1069
|
thisDay.setHours(0, 0, 0, 0);
|
|
@@ -1064,7 +1078,7 @@ var useCalendar = (ownerState) => {
|
|
|
1064
1078
|
},
|
|
1065
1079
|
[ownerState.rangeSelection, ownerState.value, ownerState.viewMonth, hoverDay]
|
|
1066
1080
|
),
|
|
1067
|
-
getMonthCellProps: (0,
|
|
1081
|
+
getMonthCellProps: (0, import_react13.useCallback)(
|
|
1068
1082
|
(monthIndex) => {
|
|
1069
1083
|
const thisMonth = new Date(ownerState.viewMonth || /* @__PURE__ */ new Date());
|
|
1070
1084
|
thisMonth.setDate(1);
|
|
@@ -1081,7 +1095,7 @@ var useCalendar = (ownerState) => {
|
|
|
1081
1095
|
},
|
|
1082
1096
|
[ownerState.rangeSelection, ownerState.value, ownerState.viewMonth, hoverMonth]
|
|
1083
1097
|
),
|
|
1084
|
-
getPickerDayProps: (0,
|
|
1098
|
+
getPickerDayProps: (0, import_react13.useCallback)(
|
|
1085
1099
|
(day) => {
|
|
1086
1100
|
const thisDay = new Date(ownerState.viewMonth || /* @__PURE__ */ new Date());
|
|
1087
1101
|
thisDay.setHours(0, 0, 0, 0);
|
|
@@ -1135,7 +1149,7 @@ var useCalendar = (ownerState) => {
|
|
|
1135
1149
|
hoverDay
|
|
1136
1150
|
]
|
|
1137
1151
|
),
|
|
1138
|
-
getPickerMonthProps: (0,
|
|
1152
|
+
getPickerMonthProps: (0, import_react13.useCallback)(
|
|
1139
1153
|
(monthIndex) => {
|
|
1140
1154
|
const thisMonth = new Date(ownerState.viewMonth || /* @__PURE__ */ new Date());
|
|
1141
1155
|
thisMonth.setDate(1);
|
|
@@ -1205,13 +1219,19 @@ var useCalendar = (ownerState) => {
|
|
|
1205
1219
|
};
|
|
1206
1220
|
|
|
1207
1221
|
// src/components/Calendar/Calendar.tsx
|
|
1208
|
-
var
|
|
1222
|
+
var MONTH_VIEW_HINT_MESSAGE = "Click the month title to view all months.";
|
|
1223
|
+
var MONTH_NAV_CLICK_WINDOW_MS = 1200;
|
|
1224
|
+
var MONTH_NAV_CLICK_THRESHOLD = 3;
|
|
1225
|
+
var MONTH_VIEW_HINT_DURATION_MS = 5e3;
|
|
1226
|
+
var MONTH_VIEW_HINT_COOLDOWN_MS = 3e4;
|
|
1227
|
+
var lastMonthViewAssistHintShownAt = 0;
|
|
1228
|
+
var CalendarRoot = (0, import_joy19.styled)("div", {
|
|
1209
1229
|
name: "Calendar",
|
|
1210
1230
|
slot: "root"
|
|
1211
1231
|
})({
|
|
1212
1232
|
maxWidth: "264px"
|
|
1213
1233
|
});
|
|
1214
|
-
var CalendarHeader = (0,
|
|
1234
|
+
var CalendarHeader = (0, import_joy19.styled)("div", {
|
|
1215
1235
|
name: "Calendar",
|
|
1216
1236
|
slot: "calendarHeader"
|
|
1217
1237
|
})(({ theme }) => ({
|
|
@@ -1220,7 +1240,7 @@ var CalendarHeader = (0, import_joy18.styled)("div", {
|
|
|
1220
1240
|
alignItems: "center",
|
|
1221
1241
|
padding: theme.spacing(2)
|
|
1222
1242
|
}));
|
|
1223
|
-
var CalendarViewContainer = (0,
|
|
1243
|
+
var CalendarViewContainer = (0, import_joy19.styled)("div", {
|
|
1224
1244
|
name: "Calendar",
|
|
1225
1245
|
slot: "viewContainer",
|
|
1226
1246
|
shouldForwardProp: (prop) => prop !== "calendarType"
|
|
@@ -1231,7 +1251,7 @@ var CalendarViewContainer = (0, import_joy18.styled)("div", {
|
|
|
1231
1251
|
overflow: "hidden",
|
|
1232
1252
|
minHeight: calendarType === "datePicker" ? "250px" : "unset"
|
|
1233
1253
|
}));
|
|
1234
|
-
var CalendarViewTable = (0,
|
|
1254
|
+
var CalendarViewTable = (0, import_joy19.styled)(import_framer_motion13.motion.table, {
|
|
1235
1255
|
name: "Calendar",
|
|
1236
1256
|
slot: "viewTable"
|
|
1237
1257
|
})(({ theme }) => ({
|
|
@@ -1244,15 +1264,15 @@ var CalendarViewTable = (0, import_joy18.styled)(import_framer_motion12.motion.t
|
|
|
1244
1264
|
paddingBottom: theme.spacing(2)
|
|
1245
1265
|
}
|
|
1246
1266
|
}));
|
|
1247
|
-
var CalendarWeekHeaderContainer = (0,
|
|
1267
|
+
var CalendarWeekHeaderContainer = (0, import_joy19.styled)("thead", {
|
|
1248
1268
|
name: "Calendar",
|
|
1249
1269
|
slot: "weekHeaderContainer"
|
|
1250
1270
|
})({});
|
|
1251
|
-
var CalendarDayPickerContainer = (0,
|
|
1271
|
+
var CalendarDayPickerContainer = (0, import_joy19.styled)("tbody", {
|
|
1252
1272
|
name: "Calendar",
|
|
1253
1273
|
slot: "dayPickerContainer"
|
|
1254
1274
|
})({});
|
|
1255
|
-
var CalendarSwitchViewButton = (0,
|
|
1275
|
+
var CalendarSwitchViewButton = (0, import_joy19.styled)(Button_default, {
|
|
1256
1276
|
name: "Calendar",
|
|
1257
1277
|
slot: "switchViewButton"
|
|
1258
1278
|
})(({ ownerState }) => [
|
|
@@ -1260,7 +1280,7 @@ var CalendarSwitchViewButton = (0, import_joy18.styled)(Button_default, {
|
|
|
1260
1280
|
pointerEvents: "none"
|
|
1261
1281
|
}
|
|
1262
1282
|
]);
|
|
1263
|
-
var CalendarDayCell = (0,
|
|
1283
|
+
var CalendarDayCell = (0, import_joy19.styled)("td", {
|
|
1264
1284
|
name: "Calendar",
|
|
1265
1285
|
slot: "dayCell"
|
|
1266
1286
|
})(({ theme }) => ({
|
|
@@ -1282,7 +1302,7 @@ var CalendarDayCell = (0, import_joy18.styled)("td", {
|
|
|
1282
1302
|
}
|
|
1283
1303
|
}
|
|
1284
1304
|
}));
|
|
1285
|
-
var CalendarMonthCell = (0,
|
|
1305
|
+
var CalendarMonthCell = (0, import_joy19.styled)("td", {
|
|
1286
1306
|
name: "Calendar",
|
|
1287
1307
|
slot: "monthCell"
|
|
1288
1308
|
})(({ theme }) => ({
|
|
@@ -1304,7 +1324,7 @@ var CalendarMonthCell = (0, import_joy18.styled)("td", {
|
|
|
1304
1324
|
}
|
|
1305
1325
|
}
|
|
1306
1326
|
}));
|
|
1307
|
-
var CalendarMonth = (0,
|
|
1327
|
+
var CalendarMonth = (0, import_joy19.styled)(Button_default, {
|
|
1308
1328
|
name: "Calendar",
|
|
1309
1329
|
slot: "month",
|
|
1310
1330
|
shouldForwardProp: (prop) => prop !== "isSelected"
|
|
@@ -1339,7 +1359,7 @@ var CalendarMonth = (0, import_joy18.styled)(Button_default, {
|
|
|
1339
1359
|
backgroundColor: theme.palette.neutral.solidDisabledBg
|
|
1340
1360
|
}
|
|
1341
1361
|
]);
|
|
1342
|
-
var CalendarDay = (0,
|
|
1362
|
+
var CalendarDay = (0, import_joy19.styled)(Button_default, {
|
|
1343
1363
|
name: "Calendar",
|
|
1344
1364
|
slot: "day",
|
|
1345
1365
|
shouldForwardProp: (prop) => !["isToday", "isSelected"].includes(prop)
|
|
@@ -1409,9 +1429,9 @@ var swipePower = (offset, velocity) => {
|
|
|
1409
1429
|
var PickerDays = (props) => {
|
|
1410
1430
|
const { ownerState } = props;
|
|
1411
1431
|
const { getPickerDayProps, getDayCellProps } = useCalendar(ownerState);
|
|
1412
|
-
const calendarDates = (0,
|
|
1413
|
-
const weekdayNames = (0,
|
|
1414
|
-
return /* @__PURE__ */
|
|
1432
|
+
const calendarDates = (0, import_react14.useMemo)(() => getCalendarDates(ownerState.viewMonth), [ownerState.viewMonth]);
|
|
1433
|
+
const weekdayNames = (0, import_react14.useMemo)(() => getWeekdayNames(ownerState.locale || "default"), [ownerState.locale]);
|
|
1434
|
+
return /* @__PURE__ */ import_react14.default.createElement(CalendarViewContainer, { calendarType: "datePicker" }, /* @__PURE__ */ import_react14.default.createElement(import_framer_motion13.AnimatePresence, { initial: false, custom: ownerState.direction }, /* @__PURE__ */ import_react14.default.createElement(
|
|
1415
1435
|
CalendarViewTable,
|
|
1416
1436
|
{
|
|
1417
1437
|
key: `${ownerState.viewMonth.toString()}_${ownerState.direction}`,
|
|
@@ -1440,10 +1460,10 @@ var PickerDays = (props) => {
|
|
|
1440
1460
|
}
|
|
1441
1461
|
}
|
|
1442
1462
|
},
|
|
1443
|
-
/* @__PURE__ */
|
|
1444
|
-
/* @__PURE__ */
|
|
1445
|
-
(date, i) => date ? /* @__PURE__ */
|
|
1446
|
-
)), rowIndex < calendarDates.length - 1 && /* @__PURE__ */
|
|
1463
|
+
/* @__PURE__ */ import_react14.default.createElement(CalendarWeekHeaderContainer, null, /* @__PURE__ */ import_react14.default.createElement("tr", null, weekdayNames.map((name, i) => /* @__PURE__ */ import_react14.default.createElement(import_react14.Fragment, { key: `${ownerState.viewMonth}_${name}_${i}` }, /* @__PURE__ */ import_react14.default.createElement("th", null, /* @__PURE__ */ import_react14.default.createElement(Typography_default, { level: "body-xs", textAlign: "center" }, name)), i < 6 && /* @__PURE__ */ import_react14.default.createElement("th", { style: { width: 4 }, "aria-hidden": "true", "aria-description": "cell-gap" }))))),
|
|
1464
|
+
/* @__PURE__ */ import_react14.default.createElement(CalendarDayPickerContainer, null, calendarDates.map((weekDates, rowIndex) => /* @__PURE__ */ import_react14.default.createElement(import_react14.Fragment, { key: `${ownerState.viewMonth}_${rowIndex}` }, /* @__PURE__ */ import_react14.default.createElement("tr", null, weekDates.map(
|
|
1465
|
+
(date, i) => date ? /* @__PURE__ */ import_react14.default.createElement(import_react14.Fragment, { key: `${ownerState.viewMonth}_${date}_${i}` }, /* @__PURE__ */ import_react14.default.createElement(CalendarDayCell, { ...getDayCellProps(date) }, /* @__PURE__ */ import_react14.default.createElement(CalendarDay, { size: "sm", variant: "plain", color: "neutral", ...getPickerDayProps(date) }, date)), i < 6 && /* @__PURE__ */ import_react14.default.createElement("td", { "aria-hidden": "true", "aria-description": "cell-gap" })) : /* @__PURE__ */ import_react14.default.createElement(import_react14.Fragment, { key: `${ownerState.viewMonth}_${i}` }, /* @__PURE__ */ import_react14.default.createElement("td", null), i < 6 && /* @__PURE__ */ import_react14.default.createElement("td", { "aria-hidden": "true", "aria-description": "cell-gap" }))
|
|
1466
|
+
)), rowIndex < calendarDates.length - 1 && /* @__PURE__ */ import_react14.default.createElement("tr", { "aria-hidden": "true", "aria-description": "row-gap" }, /* @__PURE__ */ import_react14.default.createElement("td", { colSpan: 13, style: { height: 4 } })))))
|
|
1447
1467
|
)));
|
|
1448
1468
|
};
|
|
1449
1469
|
var PickerMonths = (props) => {
|
|
@@ -1460,7 +1480,7 @@ var PickerMonths = (props) => {
|
|
|
1460
1480
|
[[]]
|
|
1461
1481
|
);
|
|
1462
1482
|
const isMonthPicker = !ownerState.views?.find((view) => view === "day");
|
|
1463
|
-
return /* @__PURE__ */
|
|
1483
|
+
return /* @__PURE__ */ import_react14.default.createElement(CalendarViewContainer, { calendarType: isMonthPicker ? "monthPicker" : "datePicker" }, /* @__PURE__ */ import_react14.default.createElement(import_framer_motion13.AnimatePresence, { initial: false, custom: ownerState.direction }, /* @__PURE__ */ import_react14.default.createElement(
|
|
1464
1484
|
CalendarViewTable,
|
|
1465
1485
|
{
|
|
1466
1486
|
key: `${ownerState.viewMonth.getFullYear()}_${ownerState.direction}`,
|
|
@@ -1489,10 +1509,10 @@ var PickerMonths = (props) => {
|
|
|
1489
1509
|
}
|
|
1490
1510
|
}
|
|
1491
1511
|
},
|
|
1492
|
-
/* @__PURE__ */
|
|
1512
|
+
/* @__PURE__ */ import_react14.default.createElement("tbody", null, chunkedMonths.map((months, i) => /* @__PURE__ */ import_react14.default.createElement(import_react14.Fragment, { key: months.join("_") }, /* @__PURE__ */ import_react14.default.createElement("tr", null, months.map((monthIndex, j) => /* @__PURE__ */ import_react14.default.createElement(import_react14.Fragment, { key: monthIndex }, /* @__PURE__ */ import_react14.default.createElement(CalendarMonthCell, { ...getMonthCellProps(monthIndex) }, /* @__PURE__ */ import_react14.default.createElement(CalendarMonth, { size: "sm", variant: "plain", color: "neutral", ...getPickerMonthProps(monthIndex) }, getMonthNameFromIndex(monthIndex, ownerState.locale))), j < 3 && /* @__PURE__ */ import_react14.default.createElement("td", { style: { width: 4 }, "aria-hidden": "true", "aria-description": "cell-gap" })))), i < chunkedMonths.length - 1 && /* @__PURE__ */ import_react14.default.createElement("tr", { "aria-hidden": "true", "aria-description": "row-gap" }, /* @__PURE__ */ import_react14.default.createElement("td", { colSpan: 7, style: { height: 4 } })))))
|
|
1493
1513
|
)));
|
|
1494
1514
|
};
|
|
1495
|
-
var Calendar = (0,
|
|
1515
|
+
var Calendar = (0, import_react14.forwardRef)((inProps, ref) => {
|
|
1496
1516
|
const [props, ownerState] = useCalendarProps(inProps);
|
|
1497
1517
|
const {
|
|
1498
1518
|
value,
|
|
@@ -1511,17 +1531,96 @@ var Calendar = (0, import_react13.forwardRef)((inProps, ref) => {
|
|
|
1511
1531
|
...others
|
|
1512
1532
|
} = props;
|
|
1513
1533
|
const { calendarTitle, onPrev, onNext } = useCalendar(ownerState);
|
|
1514
|
-
|
|
1515
|
-
|
|
1534
|
+
const [isMonthViewAssistHintOpen, setIsMonthViewAssistHintOpen] = (0, import_react14.useState)(false);
|
|
1535
|
+
const monthNavClickTimestampsRef = (0, import_react14.useRef)([]);
|
|
1536
|
+
const monthViewAssistHintShownInSessionRef = (0, import_react14.useRef)(false);
|
|
1537
|
+
const monthViewAssistHintTimeoutRef = (0, import_react14.useRef)(null);
|
|
1538
|
+
const hasEndDate = Boolean(value?.[1]);
|
|
1539
|
+
const isRangeHintEligible = Boolean(rangeSelection && !hasEndDate);
|
|
1540
|
+
const isHintEligible = Boolean(view === "day" && (!rangeSelection || isRangeHintEligible));
|
|
1541
|
+
const monthViewHintMessage = MONTH_VIEW_HINT_MESSAGE;
|
|
1542
|
+
(0, import_react14.useEffect)(() => {
|
|
1543
|
+
if (!isHintEligible) {
|
|
1544
|
+
monthNavClickTimestampsRef.current = [];
|
|
1545
|
+
setIsMonthViewAssistHintOpen(false);
|
|
1546
|
+
}
|
|
1547
|
+
}, [isHintEligible]);
|
|
1548
|
+
(0, import_react14.useEffect)(() => {
|
|
1549
|
+
return () => {
|
|
1550
|
+
if (monthViewAssistHintTimeoutRef.current) {
|
|
1551
|
+
clearTimeout(monthViewAssistHintTimeoutRef.current);
|
|
1552
|
+
}
|
|
1553
|
+
};
|
|
1554
|
+
}, []);
|
|
1555
|
+
const closeMonthViewAssistHint = (0, import_react14.useCallback)(() => {
|
|
1556
|
+
if (monthViewAssistHintTimeoutRef.current) {
|
|
1557
|
+
clearTimeout(monthViewAssistHintTimeoutRef.current);
|
|
1558
|
+
monthViewAssistHintTimeoutRef.current = null;
|
|
1559
|
+
}
|
|
1560
|
+
setIsMonthViewAssistHintOpen(false);
|
|
1561
|
+
}, []);
|
|
1562
|
+
const showMonthViewAssistHint = (0, import_react14.useCallback)(() => {
|
|
1563
|
+
const now = Date.now();
|
|
1564
|
+
if (monthViewAssistHintShownInSessionRef.current) return;
|
|
1565
|
+
if (now - lastMonthViewAssistHintShownAt < MONTH_VIEW_HINT_COOLDOWN_MS) return;
|
|
1566
|
+
monthViewAssistHintShownInSessionRef.current = true;
|
|
1567
|
+
lastMonthViewAssistHintShownAt = now;
|
|
1568
|
+
setIsMonthViewAssistHintOpen(true);
|
|
1569
|
+
if (monthViewAssistHintTimeoutRef.current) {
|
|
1570
|
+
clearTimeout(monthViewAssistHintTimeoutRef.current);
|
|
1571
|
+
}
|
|
1572
|
+
monthViewAssistHintTimeoutRef.current = setTimeout(() => {
|
|
1573
|
+
setIsMonthViewAssistHintOpen(false);
|
|
1574
|
+
monthViewAssistHintTimeoutRef.current = null;
|
|
1575
|
+
}, MONTH_VIEW_HINT_DURATION_MS);
|
|
1576
|
+
}, []);
|
|
1577
|
+
const trackFastMonthNavigation = (0, import_react14.useCallback)(() => {
|
|
1578
|
+
if (!isHintEligible) return;
|
|
1579
|
+
const now = Date.now();
|
|
1580
|
+
monthNavClickTimestampsRef.current = [
|
|
1581
|
+
...monthNavClickTimestampsRef.current.filter((timestamp) => now - timestamp <= MONTH_NAV_CLICK_WINDOW_MS),
|
|
1582
|
+
now
|
|
1583
|
+
];
|
|
1584
|
+
if (monthNavClickTimestampsRef.current.length >= MONTH_NAV_CLICK_THRESHOLD) {
|
|
1585
|
+
showMonthViewAssistHint();
|
|
1586
|
+
}
|
|
1587
|
+
}, [isHintEligible, showMonthViewAssistHint]);
|
|
1588
|
+
const handlePrevClick = (0, import_react14.useCallback)(() => {
|
|
1589
|
+
onPrev();
|
|
1590
|
+
trackFastMonthNavigation();
|
|
1591
|
+
}, [onPrev, trackFastMonthNavigation]);
|
|
1592
|
+
const handleNextClick = (0, import_react14.useCallback)(() => {
|
|
1593
|
+
onNext();
|
|
1594
|
+
trackFastMonthNavigation();
|
|
1595
|
+
}, [onNext, trackFastMonthNavigation]);
|
|
1596
|
+
const handleSwitchViewClick = (0, import_react14.useCallback)(() => {
|
|
1597
|
+
closeMonthViewAssistHint();
|
|
1598
|
+
onViewChange?.();
|
|
1599
|
+
}, [closeMonthViewAssistHint, onViewChange]);
|
|
1600
|
+
return /* @__PURE__ */ import_react14.default.createElement(CalendarRoot, { ref, ...others }, /* @__PURE__ */ import_react14.default.createElement(CalendarHeader, null, /* @__PURE__ */ import_react14.default.createElement(IconButton_default, { size: "sm", onClick: handlePrevClick, "aria-label": `Previous ${view === "day" ? "Month" : "Year"}` }, /* @__PURE__ */ import_react14.default.createElement(import_ChevronLeft.default, null)), /* @__PURE__ */ import_react14.default.createElement(
|
|
1601
|
+
Tooltip_default,
|
|
1516
1602
|
{
|
|
1517
|
-
|
|
1518
|
-
|
|
1519
|
-
|
|
1520
|
-
|
|
1521
|
-
|
|
1603
|
+
title: monthViewHintMessage,
|
|
1604
|
+
arrow: true,
|
|
1605
|
+
open: isMonthViewAssistHintOpen,
|
|
1606
|
+
placement: "bottom",
|
|
1607
|
+
disableFocusListener: true,
|
|
1608
|
+
disableHoverListener: true,
|
|
1609
|
+
disableTouchListener: true,
|
|
1610
|
+
variant: "solid"
|
|
1522
1611
|
},
|
|
1523
|
-
|
|
1524
|
-
|
|
1612
|
+
/* @__PURE__ */ import_react14.default.createElement(
|
|
1613
|
+
CalendarSwitchViewButton,
|
|
1614
|
+
{
|
|
1615
|
+
ownerState,
|
|
1616
|
+
variant: "plain",
|
|
1617
|
+
color: "neutral",
|
|
1618
|
+
onClick: handleSwitchViewClick,
|
|
1619
|
+
"aria-label": "Switch Calendar View"
|
|
1620
|
+
},
|
|
1621
|
+
calendarTitle
|
|
1622
|
+
)
|
|
1623
|
+
), /* @__PURE__ */ import_react14.default.createElement(IconButton_default, { size: "sm", onClick: handleNextClick, "aria-label": `Next ${view === "day" ? "Month" : "Year"}` }, /* @__PURE__ */ import_react14.default.createElement(import_ChevronRight.default, null))), view === "day" && /* @__PURE__ */ import_react14.default.createElement(PickerDays, { ownerState }), view === "month" && /* @__PURE__ */ import_react14.default.createElement(PickerMonths, { ownerState }));
|
|
1525
1624
|
});
|
|
1526
1625
|
Calendar.displayName = "Calendar";
|
|
1527
1626
|
|
|
@@ -1529,31 +1628,31 @@ Calendar.displayName = "Calendar";
|
|
|
1529
1628
|
var Calendar_default = Calendar;
|
|
1530
1629
|
|
|
1531
1630
|
// src/components/Card/Card.tsx
|
|
1532
|
-
var
|
|
1533
|
-
var
|
|
1534
|
-
var MotionCard = (0,
|
|
1631
|
+
var import_joy20 = require("@mui/joy");
|
|
1632
|
+
var import_framer_motion14 = require("framer-motion");
|
|
1633
|
+
var MotionCard = (0, import_framer_motion14.motion)(import_joy20.Card);
|
|
1535
1634
|
var Card = MotionCard;
|
|
1536
1635
|
Card.displayName = "Card";
|
|
1537
|
-
var MotionCardContent = (0,
|
|
1636
|
+
var MotionCardContent = (0, import_framer_motion14.motion)(import_joy20.CardContent);
|
|
1538
1637
|
var CardContent = MotionCardContent;
|
|
1539
1638
|
CardContent.displayName = "CardContent";
|
|
1540
|
-
var MotionCardCover = (0,
|
|
1639
|
+
var MotionCardCover = (0, import_framer_motion14.motion)(import_joy20.CardCover);
|
|
1541
1640
|
var CardCover = MotionCardCover;
|
|
1542
1641
|
CardCover.displayName = "CardCover";
|
|
1543
|
-
var MotionCardActions = (0,
|
|
1642
|
+
var MotionCardActions = (0, import_framer_motion14.motion)(import_joy20.CardActions);
|
|
1544
1643
|
var CardActions = MotionCardActions;
|
|
1545
1644
|
CardActions.displayName = "CardActions";
|
|
1546
|
-
var MotionCardOverflow = (0,
|
|
1645
|
+
var MotionCardOverflow = (0, import_framer_motion14.motion)(import_joy20.CardOverflow);
|
|
1547
1646
|
var CardOverflow = MotionCardOverflow;
|
|
1548
1647
|
CardOverflow.displayName = "CardOverflow";
|
|
1549
1648
|
|
|
1550
1649
|
// src/components/Checkbox/Checkbox.tsx
|
|
1551
|
-
var
|
|
1552
|
-
var
|
|
1553
|
-
var
|
|
1554
|
-
var MotionCheckbox = (0,
|
|
1650
|
+
var import_react15 = __toESM(require("react"));
|
|
1651
|
+
var import_joy21 = require("@mui/joy");
|
|
1652
|
+
var import_framer_motion15 = require("framer-motion");
|
|
1653
|
+
var MotionCheckbox = (0, import_framer_motion15.motion)(import_joy21.Checkbox);
|
|
1555
1654
|
var Checkbox = (props) => {
|
|
1556
|
-
return /* @__PURE__ */
|
|
1655
|
+
return /* @__PURE__ */ import_react15.default.createElement(MotionCheckbox, { ...props });
|
|
1557
1656
|
};
|
|
1558
1657
|
Checkbox.displayName = "Checkbox";
|
|
1559
1658
|
|
|
@@ -1561,9 +1660,9 @@ Checkbox.displayName = "Checkbox";
|
|
|
1561
1660
|
var Checkbox_default = Checkbox;
|
|
1562
1661
|
|
|
1563
1662
|
// src/components/Container/Container.tsx
|
|
1564
|
-
var
|
|
1565
|
-
var
|
|
1566
|
-
var ContainerRoot = (0,
|
|
1663
|
+
var import_joy22 = require("@mui/joy");
|
|
1664
|
+
var import_react16 = __toESM(require("react"));
|
|
1665
|
+
var ContainerRoot = (0, import_joy22.styled)("div", {
|
|
1567
1666
|
name: "Container",
|
|
1568
1667
|
slot: "root",
|
|
1569
1668
|
shouldForwardProp: (prop) => prop !== "maxWidth" && prop !== "overrideBreakpoint"
|
|
@@ -1588,25 +1687,24 @@ var ContainerRoot = (0, import_joy21.styled)("div", {
|
|
|
1588
1687
|
paddingRight: theme.breakpoints.values[overrideBreakpoint] >= theme.breakpoints.values.lg ? theme.spacing(8) : theme.spacing(4)
|
|
1589
1688
|
} : null
|
|
1590
1689
|
]);
|
|
1591
|
-
var Container = (0,
|
|
1592
|
-
return /* @__PURE__ */
|
|
1690
|
+
var Container = (0, import_react16.forwardRef)(function Container2(props, ref) {
|
|
1691
|
+
return /* @__PURE__ */ import_react16.default.createElement(ContainerRoot, { ref, ...props });
|
|
1593
1692
|
});
|
|
1594
1693
|
Container.displayName = "Container";
|
|
1595
1694
|
|
|
1596
1695
|
// src/components/CurrencyInput/CurrencyInput.tsx
|
|
1597
|
-
var
|
|
1598
|
-
var import_intl_messageformat2 = require("intl-messageformat");
|
|
1696
|
+
var import_react18 = __toESM(require("react"));
|
|
1599
1697
|
var import_react_number_format = require("react-number-format");
|
|
1600
1698
|
|
|
1601
1699
|
// src/components/Input/Input.tsx
|
|
1602
|
-
var
|
|
1603
|
-
var
|
|
1604
|
-
var
|
|
1700
|
+
var import_react17 = __toESM(require("react"));
|
|
1701
|
+
var import_joy23 = require("@mui/joy");
|
|
1702
|
+
var import_framer_motion16 = require("framer-motion");
|
|
1605
1703
|
var import_Close2 = __toESM(require("@mui/icons-material/Close"));
|
|
1606
1704
|
var import_Visibility = __toESM(require("@mui/icons-material/Visibility"));
|
|
1607
1705
|
var import_VisibilityOff = __toESM(require("@mui/icons-material/VisibilityOff"));
|
|
1608
|
-
var MotionInput = (0,
|
|
1609
|
-
var Input =
|
|
1706
|
+
var MotionInput = (0, import_framer_motion16.motion)(import_joy23.Input);
|
|
1707
|
+
var Input = import_react17.default.forwardRef((props, ref) => {
|
|
1610
1708
|
const {
|
|
1611
1709
|
label,
|
|
1612
1710
|
helperText,
|
|
@@ -1629,11 +1727,11 @@ var Input = import_react16.default.forwardRef((props, ref) => {
|
|
|
1629
1727
|
if (type === "password" && innerProps.endDecorator) {
|
|
1630
1728
|
console.warn('Input: endDecorator is not supported when type="password"');
|
|
1631
1729
|
}
|
|
1632
|
-
const [passwordVisible, setPasswordVisible] = (0,
|
|
1730
|
+
const [passwordVisible, setPasswordVisible] = (0, import_react17.useState)(false);
|
|
1633
1731
|
const [value, setValue] = useControlledState(
|
|
1634
1732
|
props.value,
|
|
1635
1733
|
props.defaultValue,
|
|
1636
|
-
(0,
|
|
1734
|
+
(0, import_react17.useCallback)(
|
|
1637
1735
|
(value2) => {
|
|
1638
1736
|
onChange?.({
|
|
1639
1737
|
/**
|
|
@@ -1659,7 +1757,7 @@ var Input = import_react16.default.forwardRef((props, ref) => {
|
|
|
1659
1757
|
const actualType = type === "password" && passwordVisible ? "text" : type;
|
|
1660
1758
|
const isPasswordType = type === "password";
|
|
1661
1759
|
const showPasswordToggle = isPasswordType && !disableTogglePasswordButton;
|
|
1662
|
-
const input = /* @__PURE__ */
|
|
1760
|
+
const input = /* @__PURE__ */ import_react17.default.createElement(
|
|
1663
1761
|
MotionInput,
|
|
1664
1762
|
{
|
|
1665
1763
|
value,
|
|
@@ -1674,7 +1772,7 @@ var Input = import_react16.default.forwardRef((props, ref) => {
|
|
|
1674
1772
|
...innerProps.slotProps
|
|
1675
1773
|
},
|
|
1676
1774
|
...innerProps,
|
|
1677
|
-
endDecorator: isPasswordType ? showPasswordToggle ? /* @__PURE__ */
|
|
1775
|
+
endDecorator: isPasswordType ? showPasswordToggle ? /* @__PURE__ */ import_react17.default.createElement(Stack_default, { gap: 1, direction: "row" }, /* @__PURE__ */ import_react17.default.createElement(
|
|
1678
1776
|
IconButton_default,
|
|
1679
1777
|
{
|
|
1680
1778
|
onMouseDown: (e) => e.preventDefault(),
|
|
@@ -1682,19 +1780,19 @@ var Input = import_react16.default.forwardRef((props, ref) => {
|
|
|
1682
1780
|
disabled,
|
|
1683
1781
|
"aria-label": passwordVisible ? "Hide password" : "Show password"
|
|
1684
1782
|
},
|
|
1685
|
-
passwordVisible ? /* @__PURE__ */
|
|
1686
|
-
)) : null : enableClearable ? /* @__PURE__ */
|
|
1783
|
+
passwordVisible ? /* @__PURE__ */ import_react17.default.createElement(import_VisibilityOff.default, null) : /* @__PURE__ */ import_react17.default.createElement(import_Visibility.default, null)
|
|
1784
|
+
)) : null : enableClearable ? /* @__PURE__ */ import_react17.default.createElement(Stack_default, { gap: 1, direction: "row" }, innerProps.endDecorator, value && /* @__PURE__ */ import_react17.default.createElement(
|
|
1687
1785
|
IconButton_default,
|
|
1688
1786
|
{
|
|
1689
1787
|
onMouseDown: (e) => e.preventDefault(),
|
|
1690
1788
|
onClick: handleClear,
|
|
1691
1789
|
"aria-label": "Clear"
|
|
1692
1790
|
},
|
|
1693
|
-
/* @__PURE__ */
|
|
1791
|
+
/* @__PURE__ */ import_react17.default.createElement(import_Close2.default, null)
|
|
1694
1792
|
)) : innerProps.endDecorator
|
|
1695
1793
|
}
|
|
1696
1794
|
);
|
|
1697
|
-
return /* @__PURE__ */
|
|
1795
|
+
return /* @__PURE__ */ import_react17.default.createElement(
|
|
1698
1796
|
FormControl_default,
|
|
1699
1797
|
{
|
|
1700
1798
|
required,
|
|
@@ -1705,9 +1803,9 @@ var Input = import_react16.default.forwardRef((props, ref) => {
|
|
|
1705
1803
|
sx,
|
|
1706
1804
|
className
|
|
1707
1805
|
},
|
|
1708
|
-
label && /* @__PURE__ */
|
|
1806
|
+
label && /* @__PURE__ */ import_react17.default.createElement(FormLabel_default, null, label),
|
|
1709
1807
|
input,
|
|
1710
|
-
helperText && /* @__PURE__ */
|
|
1808
|
+
helperText && /* @__PURE__ */ import_react17.default.createElement(FormHelperText_default, null, helperText)
|
|
1711
1809
|
);
|
|
1712
1810
|
});
|
|
1713
1811
|
Input.displayName = "Input";
|
|
@@ -1716,10 +1814,9 @@ Input.displayName = "Input";
|
|
|
1716
1814
|
var Input_default = Input;
|
|
1717
1815
|
|
|
1718
1816
|
// src/components/CurrencyInput/CurrencyInput.tsx
|
|
1719
|
-
var
|
|
1817
|
+
var import_joy24 = require("@mui/joy");
|
|
1720
1818
|
|
|
1721
1819
|
// src/components/CurrencyInput/hooks/use-currency-setting.ts
|
|
1722
|
-
var import_intl_messageformat = __toESM(require("intl-messageformat"));
|
|
1723
1820
|
var CURRENCY_DECIMAL_MAP = {
|
|
1724
1821
|
AED: 2,
|
|
1725
1822
|
ALL: 2,
|
|
@@ -1864,9 +1961,10 @@ var CURRENCY_DECIMAL_MAP = {
|
|
|
1864
1961
|
};
|
|
1865
1962
|
var useCurrencySetting = (props) => {
|
|
1866
1963
|
const { currency = "USD", placeholder } = props;
|
|
1867
|
-
const
|
|
1868
|
-
|
|
1869
|
-
|
|
1964
|
+
const parts = new Intl.NumberFormat("en-US", { style: "currency", currency }).formatToParts(1000.01);
|
|
1965
|
+
const symbol = parts.find((p) => p.type === "currency")?.value ?? "$";
|
|
1966
|
+
const thousandSeparator = parts.find((p) => p.type === "group")?.value ?? ",";
|
|
1967
|
+
const decimalSeparator = parts.find((p) => p.type === "decimal")?.value;
|
|
1870
1968
|
const decimalScale = CURRENCY_DECIMAL_MAP[currency];
|
|
1871
1969
|
return {
|
|
1872
1970
|
symbol: `${symbol} `,
|
|
@@ -1879,9 +1977,9 @@ var useCurrencySetting = (props) => {
|
|
|
1879
1977
|
};
|
|
1880
1978
|
|
|
1881
1979
|
// src/components/CurrencyInput/CurrencyInput.tsx
|
|
1882
|
-
var TextMaskAdapter =
|
|
1980
|
+
var TextMaskAdapter = import_react18.default.forwardRef(function TextMaskAdapter2(props, ref) {
|
|
1883
1981
|
const { onChange, ...innerProps } = props;
|
|
1884
|
-
return /* @__PURE__ */
|
|
1982
|
+
return /* @__PURE__ */ import_react18.default.createElement(
|
|
1885
1983
|
import_react_number_format.NumericFormat,
|
|
1886
1984
|
{
|
|
1887
1985
|
...innerProps,
|
|
@@ -1896,13 +1994,13 @@ var TextMaskAdapter = import_react17.default.forwardRef(function TextMaskAdapter
|
|
|
1896
1994
|
}
|
|
1897
1995
|
);
|
|
1898
1996
|
});
|
|
1899
|
-
var CurrencyInputRoot = (0,
|
|
1997
|
+
var CurrencyInputRoot = (0, import_joy24.styled)(Input_default, {
|
|
1900
1998
|
name: "CurrencyInput",
|
|
1901
1999
|
slot: "root",
|
|
1902
2000
|
overridesResolver: (props, styles) => styles.root
|
|
1903
2001
|
})({});
|
|
1904
|
-
var CurrencyInput =
|
|
1905
|
-
const props = (0,
|
|
2002
|
+
var CurrencyInput = import_react18.default.forwardRef(function CurrencyInput2(inProps, ref) {
|
|
2003
|
+
const props = (0, import_joy24.useThemeProps)({ props: inProps, name: "CurrencyInput" });
|
|
1906
2004
|
const {
|
|
1907
2005
|
currency = "USD",
|
|
1908
2006
|
name,
|
|
@@ -1922,28 +2020,28 @@ var CurrencyInput = import_react17.default.forwardRef(function CurrencyInput2(in
|
|
|
1922
2020
|
const [_value, setValue] = useControlledState(
|
|
1923
2021
|
props.value,
|
|
1924
2022
|
props.defaultValue,
|
|
1925
|
-
(0,
|
|
2023
|
+
(0, import_react18.useCallback)((value2) => onChange?.({ target: { name, value: value2 } }), [onChange, name])
|
|
1926
2024
|
);
|
|
1927
|
-
const value = (0,
|
|
2025
|
+
const value = (0, import_react18.useMemo)(() => {
|
|
1928
2026
|
if (_value && useMinorUnit) {
|
|
1929
2027
|
return _value / Math.pow(10, decimalScale);
|
|
1930
2028
|
}
|
|
1931
2029
|
return _value;
|
|
1932
2030
|
}, [_value, useMinorUnit, decimalScale]);
|
|
1933
|
-
const max = (0,
|
|
2031
|
+
const max = (0, import_react18.useMemo)(() => {
|
|
1934
2032
|
if (props.max && useMinorUnit) {
|
|
1935
2033
|
return props.max / Math.pow(10, decimalScale);
|
|
1936
2034
|
}
|
|
1937
2035
|
return props.max;
|
|
1938
2036
|
}, [props.max, useMinorUnit, decimalScale]);
|
|
1939
|
-
const [isOverLimit, setIsOverLimit] = (0,
|
|
1940
|
-
const handleChange = (0,
|
|
2037
|
+
const [isOverLimit, setIsOverLimit] = (0, import_react18.useState)(!!max && !!value && value > max);
|
|
2038
|
+
const handleChange = (0, import_react18.useCallback)(
|
|
1941
2039
|
(event) => {
|
|
1942
2040
|
if (event.target.value === "") {
|
|
1943
2041
|
setValue(void 0);
|
|
1944
2042
|
return;
|
|
1945
2043
|
}
|
|
1946
|
-
const amount = useMinorUnit ? Number(event.target.value?.replace(decimalSeparator, "")) : Number(event.target.value);
|
|
2044
|
+
const amount = useMinorUnit ? Number(decimalSeparator ? event.target.value?.replace(decimalSeparator, "") : event.target.value) : Number(event.target.value);
|
|
1947
2045
|
if (!!max && Number(event.target.value) > max) {
|
|
1948
2046
|
setIsOverLimit(true);
|
|
1949
2047
|
} else {
|
|
@@ -1953,7 +2051,7 @@ var CurrencyInput = import_react17.default.forwardRef(function CurrencyInput2(in
|
|
|
1953
2051
|
},
|
|
1954
2052
|
[decimalSeparator, max, useMinorUnit, setValue]
|
|
1955
2053
|
);
|
|
1956
|
-
return /* @__PURE__ */
|
|
2054
|
+
return /* @__PURE__ */ import_react18.default.createElement(
|
|
1957
2055
|
CurrencyInputRoot,
|
|
1958
2056
|
{
|
|
1959
2057
|
...innerProps,
|
|
@@ -1966,9 +2064,7 @@ var CurrencyInput = import_react17.default.forwardRef(function CurrencyInput2(in
|
|
|
1966
2064
|
required,
|
|
1967
2065
|
color: error || isOverLimit ? "danger" : props.color,
|
|
1968
2066
|
label,
|
|
1969
|
-
helperText: isOverLimit ?
|
|
1970
|
-
amount: max
|
|
1971
|
-
}) : helperText,
|
|
2067
|
+
helperText: isOverLimit ? `limit: ${new Intl.NumberFormat("en-US", { style: "currency", currency }).format(max)}` : helperText,
|
|
1972
2068
|
slotProps: {
|
|
1973
2069
|
input: {
|
|
1974
2070
|
component: TextMaskAdapter,
|
|
@@ -2115,19 +2211,29 @@ function getTextAlign(props) {
|
|
|
2115
2211
|
var numberFormatter = (value) => "Intl" in window ? new Intl.NumberFormat().format(value) : value;
|
|
2116
2212
|
|
|
2117
2213
|
// src/components/DataTable/styled.tsx
|
|
2118
|
-
var
|
|
2119
|
-
var
|
|
2120
|
-
var
|
|
2214
|
+
var import_react19 = __toESM(require("react"));
|
|
2215
|
+
var import_joy25 = require("@mui/joy");
|
|
2216
|
+
var import_framer_motion17 = require("framer-motion");
|
|
2121
2217
|
var import_ArrowUpwardRounded = __toESM(require("@mui/icons-material/ArrowUpwardRounded"));
|
|
2122
|
-
var EllipsisDiv = (0,
|
|
2218
|
+
var EllipsisDiv = (0, import_joy25.styled)("div", {
|
|
2123
2219
|
name: "DataTable",
|
|
2124
|
-
slot: "textEllipsis"
|
|
2125
|
-
|
|
2126
|
-
|
|
2127
|
-
|
|
2128
|
-
|
|
2129
|
-
|
|
2130
|
-
|
|
2220
|
+
slot: "textEllipsis",
|
|
2221
|
+
shouldForwardProp: (prop) => prop !== "lineClamp"
|
|
2222
|
+
})(
|
|
2223
|
+
({ lineClamp }) => lineClamp && lineClamp > 1 ? {
|
|
2224
|
+
overflow: "hidden",
|
|
2225
|
+
display: "-webkit-box !important",
|
|
2226
|
+
WebkitBoxOrient: "vertical",
|
|
2227
|
+
WebkitLineClamp: lineClamp,
|
|
2228
|
+
whiteSpace: "normal",
|
|
2229
|
+
overflowWrap: "anywhere"
|
|
2230
|
+
} : {
|
|
2231
|
+
overflow: "hidden",
|
|
2232
|
+
textOverflow: "ellipsis",
|
|
2233
|
+
whiteSpace: "nowrap"
|
|
2234
|
+
}
|
|
2235
|
+
);
|
|
2236
|
+
var OverlayWrapper = (0, import_joy25.styled)("tr", {
|
|
2131
2237
|
name: "DataTable",
|
|
2132
2238
|
slot: "overlayWrapper"
|
|
2133
2239
|
})({
|
|
@@ -2142,7 +2248,7 @@ var OverlayWrapper = (0, import_joy24.styled)("tr", {
|
|
|
2142
2248
|
border: "none !important"
|
|
2143
2249
|
}
|
|
2144
2250
|
});
|
|
2145
|
-
var VirtualizedTableBody = (0,
|
|
2251
|
+
var VirtualizedTableBody = (0, import_joy25.styled)("tbody", {
|
|
2146
2252
|
name: "DataTable",
|
|
2147
2253
|
slot: "tableBody"
|
|
2148
2254
|
})({
|
|
@@ -2151,21 +2257,21 @@ var VirtualizedTableBody = (0, import_joy24.styled)("tbody", {
|
|
|
2151
2257
|
display: "block",
|
|
2152
2258
|
height: "0.01em"
|
|
2153
2259
|
},
|
|
2154
|
-
[`& .${
|
|
2260
|
+
[`& .${import_joy25.buttonClasses.root}`]: {
|
|
2155
2261
|
"--Button-minHeight": "26px",
|
|
2156
2262
|
"--Button-paddingBlock": "0.25rem",
|
|
2157
2263
|
lineHeight: 1,
|
|
2158
2264
|
marginTop: "-2px",
|
|
2159
2265
|
marginBottom: "-2px"
|
|
2160
2266
|
},
|
|
2161
|
-
[`& .${
|
|
2267
|
+
[`& .${import_joy25.iconButtonClasses.root}`]: {
|
|
2162
2268
|
"--IconButton-size": "26px",
|
|
2163
2269
|
verticalAlign: "middle",
|
|
2164
2270
|
marginTop: "-2px",
|
|
2165
2271
|
marginBottom: "-2px"
|
|
2166
2272
|
}
|
|
2167
2273
|
});
|
|
2168
|
-
var StyledTableRow = (0,
|
|
2274
|
+
var StyledTableRow = (0, import_joy25.styled)("tr", {
|
|
2169
2275
|
name: "DataTable",
|
|
2170
2276
|
slot: "tableRow",
|
|
2171
2277
|
shouldForwardProp: (prop) => prop !== "striped"
|
|
@@ -2184,17 +2290,17 @@ var StyledTableRow = (0, import_joy24.styled)("tr", {
|
|
|
2184
2290
|
}
|
|
2185
2291
|
}
|
|
2186
2292
|
}));
|
|
2187
|
-
var Asterisk = (0,
|
|
2293
|
+
var Asterisk = (0, import_joy25.styled)("span", {
|
|
2188
2294
|
name: "DataTable",
|
|
2189
2295
|
slot: "headCellAsterisk"
|
|
2190
2296
|
})(({ theme }) => ({
|
|
2191
2297
|
color: "var(--ceed-palette-danger-500)",
|
|
2192
2298
|
marginLeft: theme.spacing(0.5)
|
|
2193
2299
|
}));
|
|
2194
|
-
var StyledTh = (0,
|
|
2300
|
+
var StyledTh = (0, import_joy25.styled)(import_framer_motion17.motion.th)(({ theme }) => ({
|
|
2195
2301
|
boxShadow: "1px 0 var(--TableCell-borderColor)"
|
|
2196
2302
|
}));
|
|
2197
|
-
var StyledTd = (0,
|
|
2303
|
+
var StyledTd = (0, import_joy25.styled)("td")(({ theme }) => ({
|
|
2198
2304
|
transition: `box-shadow 0.3s`,
|
|
2199
2305
|
"&:not(.is-last-left):not(.is-last-right)": {
|
|
2200
2306
|
boxShadow: "1px 0 var(--TableCell-borderColor)"
|
|
@@ -2210,9 +2316,9 @@ var StyledTd = (0, import_joy24.styled)("td")(({ theme }) => ({
|
|
|
2210
2316
|
}
|
|
2211
2317
|
}
|
|
2212
2318
|
}));
|
|
2213
|
-
var MotionSortIcon = (0,
|
|
2214
|
-
var DefaultLoadingOverlay = () => /* @__PURE__ */
|
|
2215
|
-
var Resizer = (ref, targetRef = ref) => /* @__PURE__ */
|
|
2319
|
+
var MotionSortIcon = (0, import_framer_motion17.motion)(import_ArrowUpwardRounded.default);
|
|
2320
|
+
var DefaultLoadingOverlay = () => /* @__PURE__ */ import_react19.default.createElement(import_joy25.LinearProgress, { value: 8, variant: "plain" });
|
|
2321
|
+
var Resizer = (ref, targetRef = ref) => /* @__PURE__ */ import_react19.default.createElement(
|
|
2216
2322
|
Box_default,
|
|
2217
2323
|
{
|
|
2218
2324
|
sx: {
|
|
@@ -2249,24 +2355,24 @@ var import_joy32 = require("@mui/joy");
|
|
|
2249
2355
|
var import_framer_motion21 = require("framer-motion");
|
|
2250
2356
|
|
|
2251
2357
|
// src/components/DatePicker/DatePicker.tsx
|
|
2252
|
-
var
|
|
2358
|
+
var import_react20 = __toESM(require("react"));
|
|
2253
2359
|
var import_react_imask = require("react-imask");
|
|
2254
2360
|
var import_CalendarToday = __toESM(require("@mui/icons-material/CalendarToday"));
|
|
2255
|
-
var
|
|
2361
|
+
var import_joy28 = require("@mui/joy");
|
|
2256
2362
|
var import_base3 = require("@mui/base");
|
|
2257
2363
|
|
|
2258
2364
|
// src/components/Sheet/Sheet.tsx
|
|
2259
|
-
var
|
|
2260
|
-
var Sheet =
|
|
2365
|
+
var import_joy26 = require("@mui/joy");
|
|
2366
|
+
var Sheet = import_joy26.Sheet;
|
|
2261
2367
|
|
|
2262
2368
|
// src/components/Sheet/index.ts
|
|
2263
2369
|
var Sheet_default = Sheet;
|
|
2264
2370
|
|
|
2265
2371
|
// src/components/DialogActions/DialogActions.tsx
|
|
2266
|
-
var
|
|
2267
|
-
var
|
|
2268
|
-
var MotionDialogActions = (0,
|
|
2269
|
-
var StyledDialogActions = (0,
|
|
2372
|
+
var import_joy27 = require("@mui/joy");
|
|
2373
|
+
var import_framer_motion18 = require("framer-motion");
|
|
2374
|
+
var MotionDialogActions = (0, import_framer_motion18.motion)(import_joy27.DialogActions);
|
|
2375
|
+
var StyledDialogActions = (0, import_joy27.styled)(MotionDialogActions)(({ theme }) => ({
|
|
2270
2376
|
padding: theme.spacing(2),
|
|
2271
2377
|
gap: theme.spacing(2),
|
|
2272
2378
|
flexDirection: "row",
|
|
@@ -2279,7 +2385,7 @@ DialogActions.displayName = "DialogActions";
|
|
|
2279
2385
|
var DialogActions_default = DialogActions;
|
|
2280
2386
|
|
|
2281
2387
|
// src/components/DatePicker/DatePicker.tsx
|
|
2282
|
-
var CalendarButton = (0,
|
|
2388
|
+
var CalendarButton = (0, import_joy28.styled)(IconButton_default, {
|
|
2283
2389
|
name: "DatePicker",
|
|
2284
2390
|
slot: "calendarButton"
|
|
2285
2391
|
})(({ theme }) => ({
|
|
@@ -2289,13 +2395,13 @@ var CalendarButton = (0, import_joy27.styled)(IconButton_default, {
|
|
|
2289
2395
|
outline: `${theme.getCssVar("focus-thickness")} solid ${theme.getCssVar("palette-focusVisible")}`
|
|
2290
2396
|
}
|
|
2291
2397
|
}));
|
|
2292
|
-
var StyledPopper = (0,
|
|
2398
|
+
var StyledPopper = (0, import_joy28.styled)(import_base3.Popper, {
|
|
2293
2399
|
name: "DatePicker",
|
|
2294
2400
|
slot: "popper"
|
|
2295
2401
|
})(({ theme }) => ({
|
|
2296
2402
|
zIndex: theme.zIndex.tooltip
|
|
2297
2403
|
}));
|
|
2298
|
-
var CalendarSheet = (0,
|
|
2404
|
+
var CalendarSheet = (0, import_joy28.styled)(Sheet_default, {
|
|
2299
2405
|
name: "DatePicker",
|
|
2300
2406
|
slot: "sheet",
|
|
2301
2407
|
overridesResolver: (props, styles) => styles.root
|
|
@@ -2304,7 +2410,7 @@ var CalendarSheet = (0, import_joy27.styled)(Sheet_default, {
|
|
|
2304
2410
|
boxShadow: theme.shadow.md,
|
|
2305
2411
|
borderRadius: theme.radius.md
|
|
2306
2412
|
}));
|
|
2307
|
-
var DatePickerRoot = (0,
|
|
2413
|
+
var DatePickerRoot = (0, import_joy28.styled)("div", {
|
|
2308
2414
|
name: "DatePicker",
|
|
2309
2415
|
slot: "root",
|
|
2310
2416
|
overridesResolver: (props, styles) => styles.root
|
|
@@ -2361,9 +2467,9 @@ function parseDate(dateString, format) {
|
|
|
2361
2467
|
var formatToPattern = (format) => {
|
|
2362
2468
|
return format.replace(/YYYY/g, "Y").replace(/MM/g, "M").replace(/DD/g, "D").replace(/[^YMD\s]/g, (match) => `${match}\``);
|
|
2363
2469
|
};
|
|
2364
|
-
var TextMaskAdapter3 =
|
|
2470
|
+
var TextMaskAdapter3 = import_react20.default.forwardRef(function TextMaskAdapter4(props, ref) {
|
|
2365
2471
|
const { onChange, format, ...other } = props;
|
|
2366
|
-
return /* @__PURE__ */
|
|
2472
|
+
return /* @__PURE__ */ import_react20.default.createElement(
|
|
2367
2473
|
import_react_imask.IMaskInput,
|
|
2368
2474
|
{
|
|
2369
2475
|
...other,
|
|
@@ -2398,8 +2504,8 @@ var TextMaskAdapter3 = import_react19.default.forwardRef(function TextMaskAdapte
|
|
|
2398
2504
|
}
|
|
2399
2505
|
);
|
|
2400
2506
|
});
|
|
2401
|
-
var DatePicker = (0,
|
|
2402
|
-
const props = (0,
|
|
2507
|
+
var DatePicker = (0, import_react20.forwardRef)((inProps, ref) => {
|
|
2508
|
+
const props = (0, import_joy28.useThemeProps)({ props: inProps, name: "DatePicker" });
|
|
2403
2509
|
const {
|
|
2404
2510
|
onChange,
|
|
2405
2511
|
disabled,
|
|
@@ -2423,24 +2529,24 @@ var DatePicker = (0, import_react19.forwardRef)((inProps, ref) => {
|
|
|
2423
2529
|
shouldDisableDate,
|
|
2424
2530
|
...innerProps
|
|
2425
2531
|
} = props;
|
|
2426
|
-
const innerRef = (0,
|
|
2427
|
-
const buttonRef = (0,
|
|
2532
|
+
const innerRef = (0, import_react20.useRef)(null);
|
|
2533
|
+
const buttonRef = (0, import_react20.useRef)(null);
|
|
2428
2534
|
const [value, setValue] = useControlledState(
|
|
2429
2535
|
props.value,
|
|
2430
2536
|
props.defaultValue || "",
|
|
2431
|
-
(0,
|
|
2537
|
+
(0, import_react20.useCallback)((value2) => onChange?.({ target: { name: props.name, value: value2 } }), [props.name, onChange])
|
|
2432
2538
|
);
|
|
2433
|
-
const [displayValue, setDisplayValue] = (0,
|
|
2539
|
+
const [displayValue, setDisplayValue] = (0, import_react20.useState)(
|
|
2434
2540
|
() => value ? formatValueString(parseDate(value, format), displayFormat) : ""
|
|
2435
2541
|
);
|
|
2436
|
-
const [anchorEl, setAnchorEl] = (0,
|
|
2542
|
+
const [anchorEl, setAnchorEl] = (0, import_react20.useState)(null);
|
|
2437
2543
|
const open = Boolean(anchorEl);
|
|
2438
|
-
(0,
|
|
2544
|
+
(0, import_react20.useEffect)(() => {
|
|
2439
2545
|
if (!anchorEl) {
|
|
2440
2546
|
innerRef.current?.blur();
|
|
2441
2547
|
}
|
|
2442
2548
|
}, [anchorEl, innerRef]);
|
|
2443
|
-
(0,
|
|
2549
|
+
(0, import_react20.useEffect)(() => {
|
|
2444
2550
|
if (value === "") {
|
|
2445
2551
|
setDisplayValue("");
|
|
2446
2552
|
return;
|
|
@@ -2450,8 +2556,8 @@ var DatePicker = (0, import_react19.forwardRef)((inProps, ref) => {
|
|
|
2450
2556
|
setDisplayValue(formattedValue);
|
|
2451
2557
|
}
|
|
2452
2558
|
}, [displayFormat, displayValue, format, value]);
|
|
2453
|
-
(0,
|
|
2454
|
-
const handleChange = (0,
|
|
2559
|
+
(0, import_react20.useImperativeHandle)(ref, () => innerRef.current, [innerRef]);
|
|
2560
|
+
const handleChange = (0, import_react20.useCallback)(
|
|
2455
2561
|
(event) => {
|
|
2456
2562
|
const value2 = event.target.value;
|
|
2457
2563
|
setDisplayValue(value2 ? formatValueString(parseDate(value2, format), displayFormat) : value2);
|
|
@@ -2459,7 +2565,7 @@ var DatePicker = (0, import_react19.forwardRef)((inProps, ref) => {
|
|
|
2459
2565
|
},
|
|
2460
2566
|
[displayFormat, format, setValue]
|
|
2461
2567
|
);
|
|
2462
|
-
const handleDisplayInputChange = (0,
|
|
2568
|
+
const handleDisplayInputChange = (0, import_react20.useCallback)(
|
|
2463
2569
|
(event) => {
|
|
2464
2570
|
if (event.target.value === "") {
|
|
2465
2571
|
handleChange({
|
|
@@ -2484,7 +2590,7 @@ var DatePicker = (0, import_react19.forwardRef)((inProps, ref) => {
|
|
|
2484
2590
|
},
|
|
2485
2591
|
[displayFormat, format, handleChange, props.name]
|
|
2486
2592
|
);
|
|
2487
|
-
const handleCalendarToggle = (0,
|
|
2593
|
+
const handleCalendarToggle = (0, import_react20.useCallback)(
|
|
2488
2594
|
(event) => {
|
|
2489
2595
|
setAnchorEl(anchorEl ? null : event.currentTarget);
|
|
2490
2596
|
setTimeout(() => {
|
|
@@ -2493,7 +2599,7 @@ var DatePicker = (0, import_react19.forwardRef)((inProps, ref) => {
|
|
|
2493
2599
|
},
|
|
2494
2600
|
[anchorEl, setAnchorEl, innerRef]
|
|
2495
2601
|
);
|
|
2496
|
-
const handleInputMouseDown = (0,
|
|
2602
|
+
const handleInputMouseDown = (0, import_react20.useCallback)(
|
|
2497
2603
|
(event) => {
|
|
2498
2604
|
if (inputReadOnly) {
|
|
2499
2605
|
event.preventDefault();
|
|
@@ -2502,7 +2608,7 @@ var DatePicker = (0, import_react19.forwardRef)((inProps, ref) => {
|
|
|
2502
2608
|
},
|
|
2503
2609
|
[inputReadOnly, buttonRef]
|
|
2504
2610
|
);
|
|
2505
|
-
return /* @__PURE__ */
|
|
2611
|
+
return /* @__PURE__ */ import_react20.default.createElement(DatePickerRoot, null, /* @__PURE__ */ import_react20.default.createElement(import_base3.FocusTrap, { open: true }, /* @__PURE__ */ import_react20.default.createElement(import_react20.default.Fragment, null, /* @__PURE__ */ import_react20.default.createElement(
|
|
2506
2612
|
Input_default,
|
|
2507
2613
|
{
|
|
2508
2614
|
...innerProps,
|
|
@@ -2530,7 +2636,7 @@ var DatePicker = (0, import_react19.forwardRef)((inProps, ref) => {
|
|
|
2530
2636
|
},
|
|
2531
2637
|
className,
|
|
2532
2638
|
sx,
|
|
2533
|
-
endDecorator: /* @__PURE__ */
|
|
2639
|
+
endDecorator: /* @__PURE__ */ import_react20.default.createElement(
|
|
2534
2640
|
CalendarButton,
|
|
2535
2641
|
{
|
|
2536
2642
|
ref: buttonRef,
|
|
@@ -2542,13 +2648,13 @@ var DatePicker = (0, import_react19.forwardRef)((inProps, ref) => {
|
|
|
2542
2648
|
"aria-expanded": open,
|
|
2543
2649
|
disabled
|
|
2544
2650
|
},
|
|
2545
|
-
/* @__PURE__ */
|
|
2651
|
+
/* @__PURE__ */ import_react20.default.createElement(import_CalendarToday.default, null)
|
|
2546
2652
|
),
|
|
2547
2653
|
label,
|
|
2548
2654
|
helperText,
|
|
2549
2655
|
readOnly: readOnly || inputReadOnly
|
|
2550
2656
|
}
|
|
2551
|
-
), open && /* @__PURE__ */
|
|
2657
|
+
), open && /* @__PURE__ */ import_react20.default.createElement(import_base3.ClickAwayListener, { onClickAway: () => setAnchorEl(null) }, /* @__PURE__ */ import_react20.default.createElement(
|
|
2552
2658
|
StyledPopper,
|
|
2553
2659
|
{
|
|
2554
2660
|
id: "date-picker-popper",
|
|
@@ -2567,7 +2673,7 @@ var DatePicker = (0, import_react19.forwardRef)((inProps, ref) => {
|
|
|
2567
2673
|
"aria-label": "Calendar Tooltip",
|
|
2568
2674
|
"aria-expanded": open
|
|
2569
2675
|
},
|
|
2570
|
-
/* @__PURE__ */
|
|
2676
|
+
/* @__PURE__ */ import_react20.default.createElement(CalendarSheet, { tabIndex: -1, role: "presentation" }, /* @__PURE__ */ import_react20.default.createElement(
|
|
2571
2677
|
Calendar_default,
|
|
2572
2678
|
{
|
|
2573
2679
|
value: value && !Number.isNaN(parseDate(value, format).getTime()) ? [parseDate(value, format), void 0] : void 0,
|
|
@@ -2586,14 +2692,14 @@ var DatePicker = (0, import_react19.forwardRef)((inProps, ref) => {
|
|
|
2586
2692
|
disablePast,
|
|
2587
2693
|
shouldDisableDate: shouldDisableDate ? (date) => shouldDisableDate(formatValueString(date, format)) : void 0
|
|
2588
2694
|
}
|
|
2589
|
-
), !hideClearButton && /* @__PURE__ */
|
|
2695
|
+
), !hideClearButton && /* @__PURE__ */ import_react20.default.createElement(
|
|
2590
2696
|
DialogActions_default,
|
|
2591
2697
|
{
|
|
2592
2698
|
sx: {
|
|
2593
2699
|
p: 1
|
|
2594
2700
|
}
|
|
2595
2701
|
},
|
|
2596
|
-
/* @__PURE__ */
|
|
2702
|
+
/* @__PURE__ */ import_react20.default.createElement(
|
|
2597
2703
|
Button_default,
|
|
2598
2704
|
{
|
|
2599
2705
|
size,
|
|
@@ -2619,10 +2725,10 @@ var DatePicker = (0, import_react19.forwardRef)((inProps, ref) => {
|
|
|
2619
2725
|
var DatePicker_default = DatePicker;
|
|
2620
2726
|
|
|
2621
2727
|
// src/components/Textarea/Textarea.tsx
|
|
2622
|
-
var
|
|
2623
|
-
var
|
|
2624
|
-
var
|
|
2625
|
-
var MotionTextarea = (0,
|
|
2728
|
+
var import_react21 = __toESM(require("react"));
|
|
2729
|
+
var import_joy29 = require("@mui/joy");
|
|
2730
|
+
var import_framer_motion19 = require("framer-motion");
|
|
2731
|
+
var MotionTextarea = (0, import_framer_motion19.motion)(import_joy29.Textarea);
|
|
2626
2732
|
var Textarea = (props) => {
|
|
2627
2733
|
const {
|
|
2628
2734
|
label,
|
|
@@ -2639,7 +2745,7 @@ var Textarea = (props) => {
|
|
|
2639
2745
|
className,
|
|
2640
2746
|
...innerProps
|
|
2641
2747
|
} = props;
|
|
2642
|
-
const textarea = /* @__PURE__ */
|
|
2748
|
+
const textarea = /* @__PURE__ */ import_react21.default.createElement(
|
|
2643
2749
|
MotionTextarea,
|
|
2644
2750
|
{
|
|
2645
2751
|
required,
|
|
@@ -2651,7 +2757,7 @@ var Textarea = (props) => {
|
|
|
2651
2757
|
...innerProps
|
|
2652
2758
|
}
|
|
2653
2759
|
);
|
|
2654
|
-
return /* @__PURE__ */
|
|
2760
|
+
return /* @__PURE__ */ import_react21.default.createElement(
|
|
2655
2761
|
FormControl_default,
|
|
2656
2762
|
{
|
|
2657
2763
|
required,
|
|
@@ -2662,9 +2768,9 @@ var Textarea = (props) => {
|
|
|
2662
2768
|
sx,
|
|
2663
2769
|
className
|
|
2664
2770
|
},
|
|
2665
|
-
label && /* @__PURE__ */
|
|
2771
|
+
label && /* @__PURE__ */ import_react21.default.createElement(FormLabel_default, null, label),
|
|
2666
2772
|
textarea,
|
|
2667
|
-
helperText && /* @__PURE__ */
|
|
2773
|
+
helperText && /* @__PURE__ */ import_react21.default.createElement(FormHelperText_default, null, helperText)
|
|
2668
2774
|
);
|
|
2669
2775
|
};
|
|
2670
2776
|
Textarea.displayName = "Textarea";
|
|
@@ -2673,10 +2779,10 @@ Textarea.displayName = "Textarea";
|
|
|
2673
2779
|
var Textarea_default = Textarea;
|
|
2674
2780
|
|
|
2675
2781
|
// src/components/Select/Select.tsx
|
|
2676
|
-
var
|
|
2677
|
-
var
|
|
2678
|
-
var
|
|
2679
|
-
var MotionOption = (0,
|
|
2782
|
+
var import_react22 = __toESM(require("react"));
|
|
2783
|
+
var import_joy30 = require("@mui/joy");
|
|
2784
|
+
var import_framer_motion20 = require("framer-motion");
|
|
2785
|
+
var MotionOption = (0, import_framer_motion20.motion)(import_joy30.Option);
|
|
2680
2786
|
var Option = MotionOption;
|
|
2681
2787
|
var secondaryTextLevelMap2 = {
|
|
2682
2788
|
sm: "body-xs",
|
|
@@ -2699,7 +2805,7 @@ function Select(props) {
|
|
|
2699
2805
|
className,
|
|
2700
2806
|
...innerProps
|
|
2701
2807
|
} = props;
|
|
2702
|
-
const options = (0,
|
|
2808
|
+
const options = (0, import_react22.useMemo)(
|
|
2703
2809
|
() => props.options.map((option) => {
|
|
2704
2810
|
if (option.hasOwnProperty("value") && option.hasOwnProperty("label")) {
|
|
2705
2811
|
return option;
|
|
@@ -2724,15 +2830,15 @@ function Select(props) {
|
|
|
2724
2830
|
};
|
|
2725
2831
|
onChange?.(newEvent, newValue);
|
|
2726
2832
|
};
|
|
2727
|
-
const optionMap = (0,
|
|
2833
|
+
const optionMap = (0, import_react22.useMemo)(() => {
|
|
2728
2834
|
const map = /* @__PURE__ */ new Map();
|
|
2729
2835
|
options.forEach((option) => {
|
|
2730
2836
|
map.set(option.value, option);
|
|
2731
2837
|
});
|
|
2732
2838
|
return map;
|
|
2733
2839
|
}, [options]);
|
|
2734
|
-
const select = /* @__PURE__ */
|
|
2735
|
-
|
|
2840
|
+
const select = /* @__PURE__ */ import_react22.default.createElement(
|
|
2841
|
+
import_joy30.Select,
|
|
2736
2842
|
{
|
|
2737
2843
|
...innerProps,
|
|
2738
2844
|
required,
|
|
@@ -2748,9 +2854,9 @@ function Select(props) {
|
|
|
2748
2854
|
return optionMap.get(selected.value)?.label;
|
|
2749
2855
|
}
|
|
2750
2856
|
},
|
|
2751
|
-
options.map((option) => /* @__PURE__ */
|
|
2857
|
+
options.map((option) => /* @__PURE__ */ import_react22.default.createElement(Option, { key: option.value, value: option.value, disabled: option.disabled }, option.secondaryText ? /* @__PURE__ */ import_react22.default.createElement(import_joy30.ListItemContent, { sx: { gap: 0.5 } }, /* @__PURE__ */ import_react22.default.createElement(import_joy30.Typography, { level: "inherit" }, option.label), /* @__PURE__ */ import_react22.default.createElement(import_joy30.Typography, { level: secondaryTextLevelMap2[size ?? "md"], textColor: "text.tertiary" }, option.secondaryText)) : option.label))
|
|
2752
2858
|
);
|
|
2753
|
-
return /* @__PURE__ */
|
|
2859
|
+
return /* @__PURE__ */ import_react22.default.createElement(
|
|
2754
2860
|
FormControl_default,
|
|
2755
2861
|
{
|
|
2756
2862
|
required,
|
|
@@ -2761,9 +2867,9 @@ function Select(props) {
|
|
|
2761
2867
|
sx,
|
|
2762
2868
|
className
|
|
2763
2869
|
},
|
|
2764
|
-
label && /* @__PURE__ */
|
|
2870
|
+
label && /* @__PURE__ */ import_react22.default.createElement(FormLabel_default, null, label),
|
|
2765
2871
|
select,
|
|
2766
|
-
helperText && /* @__PURE__ */
|
|
2872
|
+
helperText && /* @__PURE__ */ import_react22.default.createElement(FormHelperText_default, null, helperText)
|
|
2767
2873
|
);
|
|
2768
2874
|
}
|
|
2769
2875
|
Select.displayName = "Select";
|
|
@@ -2774,19 +2880,6 @@ var Select_default = Select;
|
|
|
2774
2880
|
// src/components/DataTable/components.tsx
|
|
2775
2881
|
var import_joy33 = require("@mui/joy");
|
|
2776
2882
|
|
|
2777
|
-
// src/components/Tooltip/Tooltip.tsx
|
|
2778
|
-
var import_react22 = __toESM(require("react"));
|
|
2779
|
-
var import_joy30 = require("@mui/joy");
|
|
2780
|
-
var import_framer_motion20 = require("framer-motion");
|
|
2781
|
-
var MotionTooltip = (0, import_framer_motion20.motion)(import_joy30.Tooltip);
|
|
2782
|
-
var Tooltip = (props) => {
|
|
2783
|
-
return /* @__PURE__ */ import_react22.default.createElement(MotionTooltip, { ...props });
|
|
2784
|
-
};
|
|
2785
|
-
Tooltip.displayName = "Tooltip";
|
|
2786
|
-
|
|
2787
|
-
// src/components/Tooltip/index.ts
|
|
2788
|
-
var Tooltip_default = Tooltip;
|
|
2789
|
-
|
|
2790
2883
|
// src/components/InfoSign/InfoSign.tsx
|
|
2791
2884
|
var import_react23 = __toESM(require("react"));
|
|
2792
2885
|
var import_joy31 = require("@mui/joy");
|
|
@@ -2821,21 +2914,22 @@ function InfoSign(props) {
|
|
|
2821
2914
|
var InfoSign_default = InfoSign;
|
|
2822
2915
|
|
|
2823
2916
|
// src/components/DataTable/components.tsx
|
|
2824
|
-
var TextEllipsis = ({ children }) => {
|
|
2917
|
+
var TextEllipsis = ({ children, lineClamp }) => {
|
|
2825
2918
|
const textRef = (0, import_react24.useRef)(null);
|
|
2826
2919
|
const [showTooltip, setShowTooltip] = (0, import_react24.useState)(false);
|
|
2827
2920
|
(0, import_react24.useLayoutEffect)(() => {
|
|
2828
2921
|
const element = textRef.current;
|
|
2829
|
-
if (element)
|
|
2830
|
-
|
|
2831
|
-
|
|
2832
|
-
|
|
2833
|
-
|
|
2834
|
-
|
|
2835
|
-
|
|
2836
|
-
|
|
2837
|
-
|
|
2838
|
-
|
|
2922
|
+
if (!element) return;
|
|
2923
|
+
const checkTruncation = () => {
|
|
2924
|
+
const isTruncated = lineClamp && lineClamp > 1 ? element.scrollHeight > element.clientHeight + 1 : element.scrollWidth > element.clientWidth;
|
|
2925
|
+
setShowTooltip(isTruncated);
|
|
2926
|
+
};
|
|
2927
|
+
checkTruncation();
|
|
2928
|
+
const ro = new ResizeObserver(checkTruncation);
|
|
2929
|
+
ro.observe(element);
|
|
2930
|
+
return () => ro.disconnect();
|
|
2931
|
+
}, [children, lineClamp]);
|
|
2932
|
+
return /* @__PURE__ */ import_react24.default.createElement(Tooltip_default, { title: showTooltip ? children : "", placement: "top", onClick: (e) => e.stopPropagation() }, /* @__PURE__ */ import_react24.default.createElement(EllipsisDiv, { ref: textRef, lineClamp }, children));
|
|
2839
2933
|
};
|
|
2840
2934
|
var CellTextEllipsis = ({ children }) => {
|
|
2841
2935
|
const textRef = (0, import_react24.useRef)(null);
|
|
@@ -2886,7 +2980,8 @@ var HeadCell = (props) => {
|
|
|
2886
2980
|
pinnedEndPosition,
|
|
2887
2981
|
headerRef,
|
|
2888
2982
|
tableColRef,
|
|
2889
|
-
headerClassName
|
|
2983
|
+
headerClassName,
|
|
2984
|
+
headerLineClamp
|
|
2890
2985
|
} = props;
|
|
2891
2986
|
const theme = (0, import_joy32.useTheme)();
|
|
2892
2987
|
const ref = headerRef;
|
|
@@ -2980,7 +3075,7 @@ var HeadCell = (props) => {
|
|
|
2980
3075
|
initial: "initial",
|
|
2981
3076
|
className: computedHeaderClassName
|
|
2982
3077
|
},
|
|
2983
|
-
/* @__PURE__ */ import_react24.default.createElement(Stack_default, { gap: 1, direction: "row", justifyContent: textAlign, alignItems: "center" }, textAlign === "end" && sortIcon, textAlign === "end" && infoSign, /* @__PURE__ */ import_react24.default.createElement(TextEllipsis,
|
|
3078
|
+
/* @__PURE__ */ import_react24.default.createElement(Stack_default, { gap: 1, direction: "row", justifyContent: textAlign, alignItems: "center", sx: { minWidth: 0 } }, textAlign === "end" && sortIcon, textAlign === "end" && infoSign, /* @__PURE__ */ import_react24.default.createElement(TextEllipsis, { lineClamp: headerLineClamp }, headerName ?? field, editMode && required && /* @__PURE__ */ import_react24.default.createElement(Asterisk, null, "*")), textAlign === "start" && infoSign, textAlign === "start" && sortIcon),
|
|
2984
3079
|
resizer
|
|
2985
3080
|
);
|
|
2986
3081
|
};
|
|
@@ -5968,28 +6063,191 @@ var MotionRadioGroup = (0, import_framer_motion27.motion)(import_joy54.RadioGrou
|
|
|
5968
6063
|
var RadioGroup = MotionRadioGroup;
|
|
5969
6064
|
RadioGroup.displayName = "RadioGroup";
|
|
5970
6065
|
|
|
5971
|
-
// src/components/
|
|
6066
|
+
// src/components/RadioTileGroup/RadioTileGroup.tsx
|
|
5972
6067
|
var import_react44 = __toESM(require("react"));
|
|
6068
|
+
var import_joy55 = require("@mui/joy");
|
|
6069
|
+
var RadioTileGroupRoot = (0, import_joy55.styled)(RadioGroup, {
|
|
6070
|
+
name: "RadioTileGroup",
|
|
6071
|
+
slot: "root",
|
|
6072
|
+
shouldForwardProp: (prop) => prop !== "flex" && prop !== "columns"
|
|
6073
|
+
})(({ theme, flex, columns }) => ({
|
|
6074
|
+
flexDirection: "row",
|
|
6075
|
+
gap: theme.spacing(2),
|
|
6076
|
+
...flex && { flex: 1 },
|
|
6077
|
+
...columns && {
|
|
6078
|
+
display: "grid",
|
|
6079
|
+
gridTemplateColumns: `repeat(${columns}, 1fr)`
|
|
6080
|
+
},
|
|
6081
|
+
[`& .${import_joy55.sheetClasses.root}.${import_joy55.radioClasses.disabled}`]: {
|
|
6082
|
+
borderColor: theme.palette.neutral.outlinedDisabledBorder
|
|
6083
|
+
},
|
|
6084
|
+
[`& .${import_joy55.radioClasses.root}`]: {
|
|
6085
|
+
[`& .${import_joy55.radioClasses.action}`]: {
|
|
6086
|
+
borderRadius: theme.radius.md
|
|
6087
|
+
},
|
|
6088
|
+
[`&.${import_joy55.radioClasses.checked}`]: {
|
|
6089
|
+
[`& .${import_joy55.radioClasses.action}`]: {
|
|
6090
|
+
inset: -1,
|
|
6091
|
+
border: "2px solid",
|
|
6092
|
+
borderColor: theme.palette.primary.outlinedColor
|
|
6093
|
+
},
|
|
6094
|
+
[`&.${import_joy55.radioClasses.disabled}`]: {
|
|
6095
|
+
[`& .${import_joy55.radioClasses.action}`]: {
|
|
6096
|
+
borderColor: theme.palette.neutral.outlinedBorder
|
|
6097
|
+
}
|
|
6098
|
+
}
|
|
6099
|
+
}
|
|
6100
|
+
}
|
|
6101
|
+
}));
|
|
6102
|
+
var RadioTileSheet = (0, import_joy55.styled)(Sheet, {
|
|
6103
|
+
name: "RadioTileGroup",
|
|
6104
|
+
slot: "tile",
|
|
6105
|
+
shouldForwardProp: (prop) => prop !== "disabled" && prop !== "size" && prop !== "flex" && prop !== "textAlign"
|
|
6106
|
+
})(({
|
|
6107
|
+
theme,
|
|
6108
|
+
disabled,
|
|
6109
|
+
size = "sm",
|
|
6110
|
+
flex,
|
|
6111
|
+
textAlign
|
|
6112
|
+
}) => {
|
|
6113
|
+
const px = { sm: theme.spacing(3), md: theme.spacing(3), lg: theme.spacing(4) }[size];
|
|
6114
|
+
const py = { sm: theme.spacing(3), md: theme.spacing(4), lg: theme.spacing(4) }[size];
|
|
6115
|
+
return {
|
|
6116
|
+
borderRadius: theme.radius.md,
|
|
6117
|
+
display: "flex",
|
|
6118
|
+
gap: { sm: theme.spacing(2), md: theme.spacing(3), lg: theme.spacing(4) }[size],
|
|
6119
|
+
padding: `${py} ${px}`,
|
|
6120
|
+
// NOTE: Radio에도 Label과의 정렬을 맞추기 위해 중복 코드가 있지만 Icon과 RadioButton 의 정렬도 일치시켜야 해서 코드가 중복으로 존재할수밖에 없다.
|
|
6121
|
+
flexDirection: textAlign === "start" ? "row-reverse" : "column-reverse",
|
|
6122
|
+
justifyContent: textAlign === "start" ? "space-between" : "center",
|
|
6123
|
+
alignItems: "center",
|
|
6124
|
+
...flex ? { flex: 1 } : {},
|
|
6125
|
+
...disabled ? { borderColor: theme.palette.neutral.outlinedDisabledBorder } : {
|
|
6126
|
+
":hover": {
|
|
6127
|
+
backgroundColor: theme.palette.neutral.outlinedHoverBg
|
|
6128
|
+
},
|
|
6129
|
+
":active": {
|
|
6130
|
+
backgroundColor: theme.palette.neutral.outlinedActiveBg
|
|
6131
|
+
}
|
|
6132
|
+
}
|
|
6133
|
+
};
|
|
6134
|
+
});
|
|
6135
|
+
function RadioTileGroup(props) {
|
|
6136
|
+
const {
|
|
6137
|
+
options,
|
|
6138
|
+
value,
|
|
6139
|
+
defaultValue,
|
|
6140
|
+
onChange,
|
|
6141
|
+
name,
|
|
6142
|
+
disabled: allDisabled,
|
|
6143
|
+
sx,
|
|
6144
|
+
className,
|
|
6145
|
+
useIndicator,
|
|
6146
|
+
textAlign = "center",
|
|
6147
|
+
size = "sm",
|
|
6148
|
+
flex,
|
|
6149
|
+
columns,
|
|
6150
|
+
label,
|
|
6151
|
+
helperText,
|
|
6152
|
+
error,
|
|
6153
|
+
required
|
|
6154
|
+
} = props;
|
|
6155
|
+
const radioGroup = /* @__PURE__ */ import_react44.default.createElement(
|
|
6156
|
+
RadioTileGroupRoot,
|
|
6157
|
+
{
|
|
6158
|
+
overlay: true,
|
|
6159
|
+
name,
|
|
6160
|
+
value,
|
|
6161
|
+
defaultValue,
|
|
6162
|
+
onChange,
|
|
6163
|
+
flex,
|
|
6164
|
+
columns
|
|
6165
|
+
},
|
|
6166
|
+
options.map((option) => /* @__PURE__ */ import_react44.default.createElement(
|
|
6167
|
+
RadioTileSheet,
|
|
6168
|
+
{
|
|
6169
|
+
key: option.value,
|
|
6170
|
+
variant: "outlined",
|
|
6171
|
+
disabled: allDisabled ?? option.disabled,
|
|
6172
|
+
size,
|
|
6173
|
+
flex,
|
|
6174
|
+
textAlign
|
|
6175
|
+
},
|
|
6176
|
+
/* @__PURE__ */ import_react44.default.createElement(
|
|
6177
|
+
Radio,
|
|
6178
|
+
{
|
|
6179
|
+
id: `${option.value}`,
|
|
6180
|
+
value: option.value,
|
|
6181
|
+
label: option.label,
|
|
6182
|
+
disableIcon: !useIndicator,
|
|
6183
|
+
disabled: allDisabled ?? option.disabled,
|
|
6184
|
+
size,
|
|
6185
|
+
slotProps: {
|
|
6186
|
+
root: {
|
|
6187
|
+
sx: {
|
|
6188
|
+
width: "100%",
|
|
6189
|
+
flexDirection: textAlign === "start" ? "row-reverse" : "column-reverse",
|
|
6190
|
+
justifyContent: textAlign === "start" ? "space-between" : "center",
|
|
6191
|
+
alignItems: "center",
|
|
6192
|
+
gap: { sm: 2, md: 3, lg: 4 }[size]
|
|
6193
|
+
}
|
|
6194
|
+
},
|
|
6195
|
+
label: ({ disabled }) => ({
|
|
6196
|
+
sx: (theme) => ({
|
|
6197
|
+
...theme.typography[{ sm: "body-sm", md: "body-md", lg: "body-lg" }[size]],
|
|
6198
|
+
color: disabled ? theme.palette.neutral.outlinedDisabledColor : theme.palette.neutral.outlinedColor
|
|
6199
|
+
})
|
|
6200
|
+
})
|
|
6201
|
+
}
|
|
6202
|
+
}
|
|
6203
|
+
),
|
|
6204
|
+
option.startDecorator && /* @__PURE__ */ import_react44.default.createElement(
|
|
6205
|
+
Box_default,
|
|
6206
|
+
{
|
|
6207
|
+
sx: {
|
|
6208
|
+
zIndex: 2,
|
|
6209
|
+
// HACK: Radio의 overlay가 decorator를 덮어버리기 때문에 문제 예방을 위해 적용해야 한다.
|
|
6210
|
+
width: { sm: "20px", md: "24px", lg: "24px" }[size],
|
|
6211
|
+
height: { sm: "20px", md: "24px", lg: "24px" }[size],
|
|
6212
|
+
color: "inherit",
|
|
6213
|
+
"& > .MuiSvgIcon-root": {
|
|
6214
|
+
width: "inherit",
|
|
6215
|
+
height: "inherit",
|
|
6216
|
+
fill: "currentColor",
|
|
6217
|
+
color: "inherit"
|
|
6218
|
+
}
|
|
6219
|
+
}
|
|
6220
|
+
},
|
|
6221
|
+
option.startDecorator
|
|
6222
|
+
)
|
|
6223
|
+
))
|
|
6224
|
+
);
|
|
6225
|
+
return /* @__PURE__ */ import_react44.default.createElement(FormControl_default, { required, disabled: allDisabled, error, size, sx, className }, label && /* @__PURE__ */ import_react44.default.createElement(FormLabel_default, null, label), radioGroup, helperText && /* @__PURE__ */ import_react44.default.createElement(FormHelperText_default, null, helperText));
|
|
6226
|
+
}
|
|
6227
|
+
RadioTileGroup.displayName = "RadioTileGroup";
|
|
6228
|
+
|
|
6229
|
+
// src/components/RadioList/RadioList.tsx
|
|
6230
|
+
var import_react45 = __toESM(require("react"));
|
|
5973
6231
|
function RadioList(props) {
|
|
5974
6232
|
const { items, ...innerProps } = props;
|
|
5975
|
-
return /* @__PURE__ */
|
|
6233
|
+
return /* @__PURE__ */ import_react45.default.createElement(RadioGroup, { ...innerProps }, items.map((item) => /* @__PURE__ */ import_react45.default.createElement(Radio, { key: `${item.value}`, value: item.value, label: item.label })));
|
|
5976
6234
|
}
|
|
5977
6235
|
RadioList.displayName = "RadioList";
|
|
5978
6236
|
|
|
5979
6237
|
// src/components/Stepper/Stepper.tsx
|
|
5980
|
-
var
|
|
5981
|
-
var
|
|
6238
|
+
var import_react46 = __toESM(require("react"));
|
|
6239
|
+
var import_joy56 = require("@mui/joy");
|
|
5982
6240
|
var import_Check = __toESM(require("@mui/icons-material/Check"));
|
|
5983
6241
|
var import_framer_motion28 = require("framer-motion");
|
|
5984
|
-
var Step = (0,
|
|
6242
|
+
var Step = (0, import_joy56.styled)(import_joy56.Step)({});
|
|
5985
6243
|
Step.displayName = "Step";
|
|
5986
|
-
var StepIndicator = (0,
|
|
6244
|
+
var StepIndicator = (0, import_joy56.styled)(import_joy56.StepIndicator)({});
|
|
5987
6245
|
StepIndicator.displayName = "StepIndicator";
|
|
5988
|
-
var StyledStepper = (0,
|
|
6246
|
+
var StyledStepper = (0, import_joy56.styled)(import_joy56.Stepper)(({ theme }) => ({
|
|
5989
6247
|
"--StepIndicator-size": "24px",
|
|
5990
6248
|
"--Step-gap": theme.spacing(2),
|
|
5991
6249
|
"--joy-palette-success-solidBg": "var(--joy-palette-success-400)",
|
|
5992
|
-
[`& .${
|
|
6250
|
+
[`& .${import_joy56.stepIndicatorClasses.root}`]: {
|
|
5993
6251
|
fontSize: "var(--ceed-fontSize-xs)"
|
|
5994
6252
|
}
|
|
5995
6253
|
}));
|
|
@@ -6006,31 +6264,31 @@ function Stepper(props) {
|
|
|
6006
6264
|
stepOrientation = "horizontal"
|
|
6007
6265
|
} = props;
|
|
6008
6266
|
const effectiveStepOrientation = orientation === "vertical" ? "horizontal" : stepOrientation;
|
|
6009
|
-
return /* @__PURE__ */
|
|
6267
|
+
return /* @__PURE__ */ import_react46.default.createElement(
|
|
6010
6268
|
MotionStepper,
|
|
6011
6269
|
{
|
|
6012
6270
|
orientation,
|
|
6013
6271
|
sx: (theme) => ({
|
|
6014
6272
|
"--StepIndicator-size": "24px",
|
|
6015
6273
|
"--Step-gap": theme.spacing(2),
|
|
6016
|
-
[`& .${
|
|
6274
|
+
[`& .${import_joy56.stepIndicatorClasses.root}`]: {
|
|
6017
6275
|
fontSize: "var(--ceed-fontSize-xs)"
|
|
6018
6276
|
},
|
|
6019
|
-
[`& .${
|
|
6277
|
+
[`& .${import_joy56.stepClasses.completed}`]: {
|
|
6020
6278
|
"&::after": { bgcolor: activeLineColor },
|
|
6021
|
-
[`& .${
|
|
6279
|
+
[`& .${import_joy56.stepIndicatorClasses.root}`]: {
|
|
6022
6280
|
bgcolor: activeColor
|
|
6023
6281
|
}
|
|
6024
6282
|
},
|
|
6025
|
-
[`& .${
|
|
6283
|
+
[`& .${import_joy56.stepClasses.active}`]: {
|
|
6026
6284
|
"&::after": { bgcolor: inactiveLineColor },
|
|
6027
|
-
[`& .${
|
|
6285
|
+
[`& .${import_joy56.stepIndicatorClasses.root}`]: {
|
|
6028
6286
|
bgcolor: activeColor
|
|
6029
6287
|
}
|
|
6030
6288
|
},
|
|
6031
|
-
[`& .${
|
|
6289
|
+
[`& .${import_joy56.stepClasses.disabled}`]: {
|
|
6032
6290
|
"&::after": { bgcolor: inactiveLineColor },
|
|
6033
|
-
[`& .${
|
|
6291
|
+
[`& .${import_joy56.stepIndicatorClasses.root}`]: {
|
|
6034
6292
|
bgcolor: theme.vars.palette.background.surface,
|
|
6035
6293
|
borderColor: theme.vars.palette.neutral.outlinedBorder,
|
|
6036
6294
|
borderWidth: "1px",
|
|
@@ -6045,23 +6303,23 @@ function Stepper(props) {
|
|
|
6045
6303
|
const completed = activeStep > i + 1;
|
|
6046
6304
|
const disabled = activeStep < i + 1;
|
|
6047
6305
|
const hasContent = step.label || step.extraContent;
|
|
6048
|
-
return /* @__PURE__ */
|
|
6306
|
+
return /* @__PURE__ */ import_react46.default.createElement(
|
|
6049
6307
|
Step,
|
|
6050
6308
|
{
|
|
6051
6309
|
key: `step-${i}`,
|
|
6052
|
-
indicator: /* @__PURE__ */
|
|
6310
|
+
indicator: /* @__PURE__ */ import_react46.default.createElement(StepIndicator, { variant: disabled ? "outlined" : "solid", color: disabled ? "neutral" : "primary" }, completed ? /* @__PURE__ */ import_react46.default.createElement(import_Check.default, null) : step.indicatorContent),
|
|
6053
6311
|
active,
|
|
6054
6312
|
completed,
|
|
6055
6313
|
disabled,
|
|
6056
6314
|
orientation: effectiveStepOrientation
|
|
6057
6315
|
},
|
|
6058
|
-
hasContent && /* @__PURE__ */
|
|
6316
|
+
hasContent && /* @__PURE__ */ import_react46.default.createElement(
|
|
6059
6317
|
Stack_default,
|
|
6060
6318
|
{
|
|
6061
6319
|
sx: orientation === "horizontal" && effectiveStepOrientation === "vertical" ? { alignItems: "center" } : {}
|
|
6062
6320
|
},
|
|
6063
|
-
step.label && /* @__PURE__ */
|
|
6064
|
-
step.extraContent && /* @__PURE__ */
|
|
6321
|
+
step.label && /* @__PURE__ */ import_react46.default.createElement(Typography_default, { level: "title-sm" }, step.label),
|
|
6322
|
+
step.extraContent && /* @__PURE__ */ import_react46.default.createElement(Typography_default, { level: "body-xs" }, step.extraContent)
|
|
6065
6323
|
)
|
|
6066
6324
|
);
|
|
6067
6325
|
})
|
|
@@ -6070,11 +6328,11 @@ function Stepper(props) {
|
|
|
6070
6328
|
Stepper.displayName = "Stepper";
|
|
6071
6329
|
|
|
6072
6330
|
// src/components/Switch/Switch.tsx
|
|
6073
|
-
var
|
|
6074
|
-
var
|
|
6331
|
+
var import_react47 = __toESM(require("react"));
|
|
6332
|
+
var import_joy57 = require("@mui/joy");
|
|
6075
6333
|
var import_framer_motion29 = require("framer-motion");
|
|
6076
|
-
var MotionSwitch = (0, import_framer_motion29.motion)(
|
|
6077
|
-
var StyledThumb = (0,
|
|
6334
|
+
var MotionSwitch = (0, import_framer_motion29.motion)(import_joy57.Switch);
|
|
6335
|
+
var StyledThumb = (0, import_joy57.styled)(import_framer_motion29.motion.div)({
|
|
6078
6336
|
"--Icon-fontSize": "calc(var(--Switch-thumbSize) * 0.75)",
|
|
6079
6337
|
display: "inline-flex",
|
|
6080
6338
|
justifyContent: "center",
|
|
@@ -6087,19 +6345,19 @@ var StyledThumb = (0, import_joy56.styled)(import_framer_motion29.motion.div)({
|
|
|
6087
6345
|
boxShadow: "var(--Switch-thumbShadow)",
|
|
6088
6346
|
color: "var(--Switch-thumbColor)",
|
|
6089
6347
|
backgroundColor: "var(--Switch-thumbBackground)",
|
|
6090
|
-
[`&.${
|
|
6348
|
+
[`&.${import_joy57.switchClasses.checked}`]: {
|
|
6091
6349
|
left: "unset",
|
|
6092
6350
|
right: "var(--Switch-thumbOffset)"
|
|
6093
6351
|
}
|
|
6094
6352
|
});
|
|
6095
|
-
var Thumb = (props) => /* @__PURE__ */
|
|
6353
|
+
var Thumb = (props) => /* @__PURE__ */ import_react47.default.createElement(StyledThumb, { ...props, layout: true, transition: spring });
|
|
6096
6354
|
var spring = {
|
|
6097
6355
|
type: "spring",
|
|
6098
6356
|
stiffness: 700,
|
|
6099
6357
|
damping: 30
|
|
6100
6358
|
};
|
|
6101
6359
|
var Switch = (props) => {
|
|
6102
|
-
return /* @__PURE__ */
|
|
6360
|
+
return /* @__PURE__ */ import_react47.default.createElement(
|
|
6103
6361
|
MotionSwitch,
|
|
6104
6362
|
{
|
|
6105
6363
|
...props,
|
|
@@ -6113,32 +6371,32 @@ var Switch = (props) => {
|
|
|
6113
6371
|
Switch.displayName = "Switch";
|
|
6114
6372
|
|
|
6115
6373
|
// src/components/Tabs/Tabs.tsx
|
|
6116
|
-
var
|
|
6117
|
-
var
|
|
6118
|
-
var StyledTabs = (0,
|
|
6374
|
+
var import_react48 = __toESM(require("react"));
|
|
6375
|
+
var import_joy58 = require("@mui/joy");
|
|
6376
|
+
var StyledTabs = (0, import_joy58.styled)(import_joy58.Tabs)(({ theme }) => ({
|
|
6119
6377
|
backgroundColor: theme.palette.background.body
|
|
6120
6378
|
}));
|
|
6121
6379
|
var Tabs = StyledTabs;
|
|
6122
6380
|
Tabs.displayName = "Tabs";
|
|
6123
|
-
var StyledTab = (0,
|
|
6381
|
+
var StyledTab = (0, import_joy58.styled)(import_joy58.Tab)(({ theme }) => ({
|
|
6124
6382
|
gap: theme.spacing(2),
|
|
6125
|
-
[`&:not(.${
|
|
6383
|
+
[`&:not(.${import_joy58.tabClasses.selected})`]: {
|
|
6126
6384
|
color: theme.palette.neutral[700]
|
|
6127
6385
|
},
|
|
6128
|
-
[`&.${
|
|
6386
|
+
[`&.${import_joy58.tabClasses.variantPlain}`]: {
|
|
6129
6387
|
backgroundColor: theme.palette.background.body
|
|
6130
6388
|
}
|
|
6131
6389
|
}));
|
|
6132
|
-
var Tab = (0,
|
|
6133
|
-
return /* @__PURE__ */
|
|
6390
|
+
var Tab = (0, import_react48.forwardRef)(function Tab2({ startDecorator, endDecorator, children, ...props }, ref) {
|
|
6391
|
+
return /* @__PURE__ */ import_react48.default.createElement(StyledTab, { ...props, ref }, startDecorator, children, endDecorator);
|
|
6134
6392
|
});
|
|
6135
6393
|
Tab.displayName = "Tab";
|
|
6136
|
-
var TabList =
|
|
6137
|
-
var TabPanel =
|
|
6394
|
+
var TabList = import_joy58.TabList;
|
|
6395
|
+
var TabPanel = import_joy58.TabPanel;
|
|
6138
6396
|
|
|
6139
6397
|
// src/components/ThemeProvider/ThemeProvider.tsx
|
|
6140
|
-
var
|
|
6141
|
-
var
|
|
6398
|
+
var import_react49 = __toESM(require("react"));
|
|
6399
|
+
var import_joy59 = require("@mui/joy");
|
|
6142
6400
|
var colorScheme = {
|
|
6143
6401
|
palette: {
|
|
6144
6402
|
danger: {
|
|
@@ -6191,7 +6449,7 @@ var colorScheme = {
|
|
|
6191
6449
|
}
|
|
6192
6450
|
}
|
|
6193
6451
|
};
|
|
6194
|
-
var defaultTheme = (0,
|
|
6452
|
+
var defaultTheme = (0, import_joy59.extendTheme)({
|
|
6195
6453
|
cssVarPrefix: "ceed",
|
|
6196
6454
|
spacing: 4,
|
|
6197
6455
|
breakpoints: {
|
|
@@ -6243,7 +6501,7 @@ var defaultTheme = (0, import_joy58.extendTheme)({
|
|
|
6243
6501
|
},
|
|
6244
6502
|
styleOverrides: {
|
|
6245
6503
|
root: {
|
|
6246
|
-
[`.${
|
|
6504
|
+
[`.${import_joy59.inputClasses.root}`]: {
|
|
6247
6505
|
// NOTE: placeholder char 를 텍스트로 표시하므로 동일한 너비를 가지는 mono font 를 사용해야 이질감이 없다.
|
|
6248
6506
|
"font-family": "monospace"
|
|
6249
6507
|
}
|
|
@@ -6256,7 +6514,7 @@ var defaultTheme = (0, import_joy58.extendTheme)({
|
|
|
6256
6514
|
},
|
|
6257
6515
|
styleOverrides: {
|
|
6258
6516
|
root: {
|
|
6259
|
-
[`.${
|
|
6517
|
+
[`.${import_joy59.inputClasses.root}`]: {
|
|
6260
6518
|
// NOTE: placeholder char 를 텍스트로 표시하므로 동일한 너비를 가지는 mono font 를 사용해야 이질감이 없다.
|
|
6261
6519
|
"font-family": "monospace"
|
|
6262
6520
|
}
|
|
@@ -6269,7 +6527,7 @@ var defaultTheme = (0, import_joy58.extendTheme)({
|
|
|
6269
6527
|
},
|
|
6270
6528
|
styleOverrides: {
|
|
6271
6529
|
root: {
|
|
6272
|
-
[`.${
|
|
6530
|
+
[`.${import_joy59.inputClasses.root}`]: {
|
|
6273
6531
|
// NOTE: placeholder char 를 텍스트로 표시하므로 동일한 너비를 가지는 mono font 를 사용해야 이질감이 없다.
|
|
6274
6532
|
"font-family": "monospace"
|
|
6275
6533
|
}
|
|
@@ -6282,7 +6540,7 @@ var defaultTheme = (0, import_joy58.extendTheme)({
|
|
|
6282
6540
|
},
|
|
6283
6541
|
styleOverrides: {
|
|
6284
6542
|
root: {
|
|
6285
|
-
[`.${
|
|
6543
|
+
[`.${import_joy59.inputClasses.root}`]: {
|
|
6286
6544
|
// NOTE: placeholder char 를 텍스트로 표시하므로 동일한 너비를 가지는 mono font 를 사용해야 이질감이 없다.
|
|
6287
6545
|
"font-family": "monospace"
|
|
6288
6546
|
}
|
|
@@ -6295,7 +6553,7 @@ var defaultTheme = (0, import_joy58.extendTheme)({
|
|
|
6295
6553
|
},
|
|
6296
6554
|
styleOverrides: {
|
|
6297
6555
|
root: {
|
|
6298
|
-
[`.${
|
|
6556
|
+
[`.${import_joy59.inputClasses.root}`]: {
|
|
6299
6557
|
// NOTE: placeholder char 를 텍스트로 표시하므로 동일한 너비를 가지는 mono font 를 사용해야 이질감이 없다.
|
|
6300
6558
|
"font-family": "monospace"
|
|
6301
6559
|
}
|
|
@@ -6337,7 +6595,7 @@ var defaultTheme = (0, import_joy58.extendTheme)({
|
|
|
6337
6595
|
outline: `${theme.palette.primary[500]} solid 2px`,
|
|
6338
6596
|
outlineOffset: "-2px"
|
|
6339
6597
|
},
|
|
6340
|
-
[`& .${
|
|
6598
|
+
[`& .${import_joy59.checkboxClasses.root}`]: {
|
|
6341
6599
|
verticalAlign: "middle"
|
|
6342
6600
|
}
|
|
6343
6601
|
})
|
|
@@ -6387,13 +6645,13 @@ var defaultTheme = (0, import_joy58.extendTheme)({
|
|
|
6387
6645
|
});
|
|
6388
6646
|
function ThemeProvider(props) {
|
|
6389
6647
|
const theme = props.theme || defaultTheme;
|
|
6390
|
-
return /* @__PURE__ */
|
|
6648
|
+
return /* @__PURE__ */ import_react49.default.createElement(import_react49.default.Fragment, null, /* @__PURE__ */ import_react49.default.createElement(import_joy59.CssVarsProvider, { theme }, /* @__PURE__ */ import_react49.default.createElement(import_joy59.CssBaseline, null), props.children));
|
|
6391
6649
|
}
|
|
6392
6650
|
ThemeProvider.displayName = "ThemeProvider";
|
|
6393
6651
|
|
|
6394
6652
|
// src/components/Uploader/Uploader.tsx
|
|
6395
|
-
var
|
|
6396
|
-
var
|
|
6653
|
+
var import_react50 = __toESM(require("react"));
|
|
6654
|
+
var import_joy60 = require("@mui/joy");
|
|
6397
6655
|
var import_CloudUploadRounded = __toESM(require("@mui/icons-material/CloudUploadRounded"));
|
|
6398
6656
|
var import_UploadFileRounded = __toESM(require("@mui/icons-material/UploadFileRounded"));
|
|
6399
6657
|
var import_ClearRounded = __toESM(require("@mui/icons-material/ClearRounded"));
|
|
@@ -6415,7 +6673,7 @@ var esmFiles = {
|
|
|
6415
6673
|
"@atlaskit/pragmatic-drag-and-drop/dist/esm/entry-point/prevent-unhandled.js"
|
|
6416
6674
|
)
|
|
6417
6675
|
};
|
|
6418
|
-
var VisuallyHiddenInput = (0,
|
|
6676
|
+
var VisuallyHiddenInput = (0, import_joy60.styled)(import_joy60.Input)({
|
|
6419
6677
|
width: "1px",
|
|
6420
6678
|
height: "1px",
|
|
6421
6679
|
overflow: "hidden",
|
|
@@ -6424,18 +6682,18 @@ var VisuallyHiddenInput = (0, import_joy59.styled)(import_joy59.Input)({
|
|
|
6424
6682
|
clipPath: "inset(50%)",
|
|
6425
6683
|
position: "absolute"
|
|
6426
6684
|
});
|
|
6427
|
-
var PreviewRoot = (0,
|
|
6685
|
+
var PreviewRoot = (0, import_joy60.styled)(Stack_default, {
|
|
6428
6686
|
name: "Uploader",
|
|
6429
6687
|
slot: "PreviewRoot"
|
|
6430
6688
|
})({});
|
|
6431
|
-
var UploadCard = (0,
|
|
6689
|
+
var UploadCard = (0, import_joy60.styled)(Card, {
|
|
6432
6690
|
name: "Uploader",
|
|
6433
6691
|
slot: "UploadCard"
|
|
6434
6692
|
})(({ theme }) => ({
|
|
6435
6693
|
padding: theme.spacing(2.5),
|
|
6436
6694
|
border: `1px solid ${theme.palette.neutral.outlinedBorder}`
|
|
6437
6695
|
}));
|
|
6438
|
-
var UploadFileIcon = (0,
|
|
6696
|
+
var UploadFileIcon = (0, import_joy60.styled)(import_UploadFileRounded.default, {
|
|
6439
6697
|
name: "Uploader",
|
|
6440
6698
|
slot: "UploadFileIcon"
|
|
6441
6699
|
})(({ theme }) => ({
|
|
@@ -6443,7 +6701,7 @@ var UploadFileIcon = (0, import_joy59.styled)(import_UploadFileRounded.default,
|
|
|
6443
6701
|
width: "32px",
|
|
6444
6702
|
height: "32px"
|
|
6445
6703
|
}));
|
|
6446
|
-
var ClearIcon2 = (0,
|
|
6704
|
+
var ClearIcon2 = (0, import_joy60.styled)(import_ClearRounded.default, {
|
|
6447
6705
|
name: "Uploader",
|
|
6448
6706
|
slot: "ClearIcon"
|
|
6449
6707
|
})(({ theme }) => ({
|
|
@@ -6469,7 +6727,7 @@ var getFileSize = (n) => {
|
|
|
6469
6727
|
};
|
|
6470
6728
|
var Preview = (props) => {
|
|
6471
6729
|
const { files, uploaded, onDelete } = props;
|
|
6472
|
-
return /* @__PURE__ */
|
|
6730
|
+
return /* @__PURE__ */ import_react50.default.createElement(PreviewRoot, { gap: 1 }, [...uploaded, ...files].map((file) => /* @__PURE__ */ import_react50.default.createElement(UploadCard, { key: file.name, size: "sm", color: "neutral" }, /* @__PURE__ */ import_react50.default.createElement(Stack_default, { direction: "row", alignItems: "center", gap: 2 }, /* @__PURE__ */ import_react50.default.createElement(UploadFileIcon, null), /* @__PURE__ */ import_react50.default.createElement(Stack_default, { flex: "1", sx: { overflow: "hidden" } }, /* @__PURE__ */ import_react50.default.createElement(
|
|
6473
6731
|
Typography_default,
|
|
6474
6732
|
{
|
|
6475
6733
|
level: "body-sm",
|
|
@@ -6481,15 +6739,15 @@ var Preview = (props) => {
|
|
|
6481
6739
|
}
|
|
6482
6740
|
},
|
|
6483
6741
|
file.name
|
|
6484
|
-
), !!file.size && /* @__PURE__ */
|
|
6742
|
+
), !!file.size && /* @__PURE__ */ import_react50.default.createElement(Typography_default, { level: "body-xs", fontWeight: "300", lineHeight: "1.33", textColor: "text.tertiary" }, getFileSize(file.size))), /* @__PURE__ */ import_react50.default.createElement(IconButton_default, { onClick: () => onDelete?.(file) }, /* @__PURE__ */ import_react50.default.createElement(ClearIcon2, null))))));
|
|
6485
6743
|
};
|
|
6486
|
-
var UploaderRoot = (0,
|
|
6744
|
+
var UploaderRoot = (0, import_joy60.styled)(Stack_default, {
|
|
6487
6745
|
name: "Uploader",
|
|
6488
6746
|
slot: "root"
|
|
6489
6747
|
})(({ theme }) => ({
|
|
6490
6748
|
gap: theme.spacing(2)
|
|
6491
6749
|
}));
|
|
6492
|
-
var FileDropZone = (0,
|
|
6750
|
+
var FileDropZone = (0, import_joy60.styled)(Sheet_default, {
|
|
6493
6751
|
name: "Uploader",
|
|
6494
6752
|
slot: "dropZone",
|
|
6495
6753
|
shouldForwardProp: (prop) => prop !== "error" && prop !== "disabled"
|
|
@@ -6510,7 +6768,7 @@ var FileDropZone = (0, import_joy59.styled)(Sheet_default, {
|
|
|
6510
6768
|
}
|
|
6511
6769
|
})
|
|
6512
6770
|
);
|
|
6513
|
-
var UploaderIcon = (0,
|
|
6771
|
+
var UploaderIcon = (0, import_joy60.styled)(import_CloudUploadRounded.default, {
|
|
6514
6772
|
name: "Uploader",
|
|
6515
6773
|
slot: "iconContainer",
|
|
6516
6774
|
shouldForwardProp: (prop) => prop !== "error" && prop !== "disabled"
|
|
@@ -6524,7 +6782,7 @@ var UploaderIcon = (0, import_joy59.styled)(import_CloudUploadRounded.default, {
|
|
|
6524
6782
|
}
|
|
6525
6783
|
})
|
|
6526
6784
|
);
|
|
6527
|
-
var Uploader =
|
|
6785
|
+
var Uploader = import_react50.default.memo(
|
|
6528
6786
|
(props) => {
|
|
6529
6787
|
const {
|
|
6530
6788
|
accept,
|
|
@@ -6541,14 +6799,14 @@ var Uploader = import_react49.default.memo(
|
|
|
6541
6799
|
error: errorProp,
|
|
6542
6800
|
helperText: helperTextProp
|
|
6543
6801
|
} = props;
|
|
6544
|
-
const dropZoneRef = (0,
|
|
6545
|
-
const inputRef = (0,
|
|
6546
|
-
const [errorText, setErrorText] = (0,
|
|
6547
|
-
const [files, setFiles] = (0,
|
|
6548
|
-
const [uploaded, setUploaded] = (0,
|
|
6549
|
-
const [previewState, setPreviewState] = (0,
|
|
6550
|
-
const accepts = (0,
|
|
6551
|
-
const parsedAccepts = (0,
|
|
6802
|
+
const dropZoneRef = (0, import_react50.useRef)(null);
|
|
6803
|
+
const inputRef = (0, import_react50.useRef)(null);
|
|
6804
|
+
const [errorText, setErrorText] = (0, import_react50.useState)();
|
|
6805
|
+
const [files, setFiles] = (0, import_react50.useState)([]);
|
|
6806
|
+
const [uploaded, setUploaded] = (0, import_react50.useState)(props.uploaded || []);
|
|
6807
|
+
const [previewState, setPreviewState] = (0, import_react50.useState)("idle");
|
|
6808
|
+
const accepts = (0, import_react50.useMemo)(() => accept.split(",").map((accept2) => accept2.trim()), [accept]);
|
|
6809
|
+
const parsedAccepts = (0, import_react50.useMemo)(
|
|
6552
6810
|
() => accepts.flatMap((type) => {
|
|
6553
6811
|
if (["image/*", "video/*", "audio/*"].includes(type)) {
|
|
6554
6812
|
return ALL_EXTENSIONS_BY_TYPE[type];
|
|
@@ -6557,7 +6815,7 @@ var Uploader = import_react49.default.memo(
|
|
|
6557
6815
|
}),
|
|
6558
6816
|
[accepts]
|
|
6559
6817
|
);
|
|
6560
|
-
const helperText = (0,
|
|
6818
|
+
const helperText = (0, import_react50.useMemo)(() => {
|
|
6561
6819
|
if (helperTextProp) {
|
|
6562
6820
|
return helperTextProp;
|
|
6563
6821
|
}
|
|
@@ -6587,12 +6845,12 @@ var Uploader = import_react49.default.memo(
|
|
|
6587
6845
|
}
|
|
6588
6846
|
return helperTexts.join(", ");
|
|
6589
6847
|
}, [accepts, maxFileTotalSize, maxCount, helperTextProp]);
|
|
6590
|
-
const error = (0,
|
|
6591
|
-
const showDropZone = (0,
|
|
6848
|
+
const error = (0, import_react50.useMemo)(() => !!errorText || errorProp, [errorProp, errorText]);
|
|
6849
|
+
const showDropZone = (0, import_react50.useMemo)(
|
|
6592
6850
|
() => !maxCount || maxCount && [...uploaded, ...files].length !== maxCount,
|
|
6593
6851
|
[files, maxCount, uploaded]
|
|
6594
6852
|
);
|
|
6595
|
-
const addFiles = (0,
|
|
6853
|
+
const addFiles = (0, import_react50.useCallback)(
|
|
6596
6854
|
(uploads) => {
|
|
6597
6855
|
try {
|
|
6598
6856
|
const types = parsedAccepts.map((type) => type.replace(".", "")) || [];
|
|
@@ -6637,7 +6895,7 @@ var Uploader = import_react49.default.memo(
|
|
|
6637
6895
|
},
|
|
6638
6896
|
[files, uploaded, maxCount, parsedAccepts, maxFileSize, maxFileTotalSize, name, onChange]
|
|
6639
6897
|
);
|
|
6640
|
-
(0,
|
|
6898
|
+
(0, import_react50.useEffect)(() => {
|
|
6641
6899
|
if (!dropZoneRef.current || disabled) {
|
|
6642
6900
|
return;
|
|
6643
6901
|
}
|
|
@@ -6675,7 +6933,7 @@ var Uploader = import_react49.default.memo(
|
|
|
6675
6933
|
);
|
|
6676
6934
|
return () => cleanup?.();
|
|
6677
6935
|
}, [disabled, addFiles]);
|
|
6678
|
-
(0,
|
|
6936
|
+
(0, import_react50.useEffect)(() => {
|
|
6679
6937
|
if (inputRef.current && minCount) {
|
|
6680
6938
|
if (files.length < minCount) {
|
|
6681
6939
|
inputRef.current.setCustomValidity(`At least ${minCount} files are required.`);
|
|
@@ -6684,14 +6942,14 @@ var Uploader = import_react49.default.memo(
|
|
|
6684
6942
|
}
|
|
6685
6943
|
}
|
|
6686
6944
|
}, [inputRef, files, minCount]);
|
|
6687
|
-
const handleFileChanged = (0,
|
|
6945
|
+
const handleFileChanged = (0, import_react50.useCallback)(
|
|
6688
6946
|
(event) => {
|
|
6689
6947
|
const files2 = Array.from(event.target.files || []);
|
|
6690
6948
|
addFiles(files2);
|
|
6691
6949
|
},
|
|
6692
6950
|
[addFiles]
|
|
6693
6951
|
);
|
|
6694
|
-
const handleDeleteFile = (0,
|
|
6952
|
+
const handleDeleteFile = (0, import_react50.useCallback)(
|
|
6695
6953
|
(deletedFile) => {
|
|
6696
6954
|
if (deletedFile instanceof File) {
|
|
6697
6955
|
setFiles((current) => {
|
|
@@ -6711,10 +6969,10 @@ var Uploader = import_react49.default.memo(
|
|
|
6711
6969
|
},
|
|
6712
6970
|
[name, onChange, onDelete]
|
|
6713
6971
|
);
|
|
6714
|
-
const handleUploaderButtonClick = (0,
|
|
6972
|
+
const handleUploaderButtonClick = (0, import_react50.useCallback)(() => {
|
|
6715
6973
|
inputRef.current?.click();
|
|
6716
6974
|
}, []);
|
|
6717
|
-
const uploader = /* @__PURE__ */
|
|
6975
|
+
const uploader = /* @__PURE__ */ import_react50.default.createElement(
|
|
6718
6976
|
FileDropZone,
|
|
6719
6977
|
{
|
|
6720
6978
|
state: previewState,
|
|
@@ -6723,8 +6981,8 @@ var Uploader = import_react49.default.memo(
|
|
|
6723
6981
|
ref: dropZoneRef,
|
|
6724
6982
|
onClick: handleUploaderButtonClick
|
|
6725
6983
|
},
|
|
6726
|
-
/* @__PURE__ */
|
|
6727
|
-
/* @__PURE__ */
|
|
6984
|
+
/* @__PURE__ */ import_react50.default.createElement(Stack_default, { alignItems: "center", gap: 1 }, /* @__PURE__ */ import_react50.default.createElement(UploaderIcon, { state: previewState, error: !!(error || errorText), disabled })),
|
|
6985
|
+
/* @__PURE__ */ import_react50.default.createElement(
|
|
6728
6986
|
VisuallyHiddenInput,
|
|
6729
6987
|
{
|
|
6730
6988
|
disabled,
|
|
@@ -6747,7 +7005,7 @@ var Uploader = import_react49.default.memo(
|
|
|
6747
7005
|
}
|
|
6748
7006
|
)
|
|
6749
7007
|
);
|
|
6750
|
-
return /* @__PURE__ */
|
|
7008
|
+
return /* @__PURE__ */ import_react50.default.createElement(UploaderRoot, null, showDropZone && /* @__PURE__ */ import_react50.default.createElement(FormControl_default, { size, error: !!(error || errorText), disabled, required: !!minCount }, label && /* @__PURE__ */ import_react50.default.createElement(FormLabel_default, null, label), uploader, /* @__PURE__ */ import_react50.default.createElement(FormHelperText_default, null, /* @__PURE__ */ import_react50.default.createElement(Stack_default, null, errorText && /* @__PURE__ */ import_react50.default.createElement("div", null, errorText), /* @__PURE__ */ import_react50.default.createElement("div", null, helperText)))), [...uploaded, ...files].length > 0 && /* @__PURE__ */ import_react50.default.createElement(Preview, { files, uploaded, onDelete: handleDeleteFile }));
|
|
6751
7009
|
}
|
|
6752
7010
|
);
|
|
6753
7011
|
Uploader.displayName = "Uploader";
|