@ceed/cds 1.6.0 → 1.7.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/index.d.ts CHANGED
@@ -1,2 +1,2 @@
1
1
  export { useTheme, useColorScheme, useThemeProps, ButtonGroup, alertClasses, boxClasses, buttonClasses, checkboxClasses, dividerClasses, iconButtonClasses, inputClasses, menuClasses, menuButtonClasses, menuItemClasses, optionClasses, radioClasses, radioGroupClasses, selectClasses, switchClasses, tableClasses, textareaClasses, typographyClasses, formControlClasses, formLabelClasses, formHelperTextClasses, gridClasses, stackClasses, sheetClasses, modalClasses, modalCloseClasses, modalDialogClasses, modalOverflowClasses, dialogTitleClasses, dialogContentClasses, dialogActionsClasses, tooltipClasses, tabsClasses, tabListClasses, tabPanelClasses, accordionClasses, accordionDetailsClasses, accordionGroupClasses as accordionsClasses, accordionSummaryClasses, AutocompleteListbox, AutocompleteOption, autocompleteClasses, autocompleteListboxClasses, autocompleteOptionClasses, avatarClasses, avatarGroupClasses, AspectRatio, aspectRatioClasses, Badge, badgeClasses, breadcrumbsClasses, Card, cardClasses, CardActions, cardActionsClasses, CardContent, cardContentClasses, CardCover, cardCoverClasses, CardOverflow, cardOverflowClasses, Chip, chipClasses, CircularProgress, circularProgressClasses, drawerClasses, LinearProgress, linearProgressClasses, List, listClasses, ListDivider, listDividerClasses, ListItem, listItemClasses, ListItemButton, listItemButtonClasses, ListItemContent, listItemContentClasses, ListItemDecorator, listItemDecoratorClasses, ListSubheader, listSubheaderClasses, Link, linkClasses, Slider, sliderClasses, stepClasses, StepButton, stepButtonClasses, stepperClasses, Skeleton, skeletonClasses, styled, } from "@mui/joy";
2
- export { Autocomplete, Accordion, Alert, Accordions, AccordionDetails, AccordionSummary, Avatar, AvatarGroup, Box, Breadcrumbs, Button, Calendar, Checkbox, Container, CurrencyInput, DataTable, DatePicker, DateRangePicker, DialogActions, DialogContent, DialogTitle, DialogFrame, Divider, Drawer, Dropdown, extendTheme, InsetDrawer, FormControl, FormHelperText, FormLabel, Grid, IconButton, InfoSign, Input, Markdown, Menu, MenuButton, MenuItem, Modal, ModalClose, ModalDialog, ModalOverflow, ModalFrame, MonthPicker, MonthRangePicker, NavigationGroup, NavigationItem, Navigator, Pagination, PercentageInput, Radio, RadioGroup, RadioList, Select, Step, StepIndicator, Stepper, Option, Sheet, Stack, Switch, theme, Table, TableHead, TableBody, Tabs, Tab, TabList, TabPanel, Textarea, ThemeProvider, Tooltip, Typography, Uploader, } from "./components";
2
+ export { Autocomplete, Accordion, Alert, Accordions, AccordionDetails, AccordionSummary, Avatar, AvatarGroup, Box, Breadcrumbs, Button, Calendar, Checkbox, Container, CurrencyInput, DataTable, DatePicker, DateRangePicker, DialogActions, DialogContent, DialogTitle, DialogFrame, Divider, Drawer, Dropdown, extendTheme, InsetDrawer, FormControl, FormHelperText, FormLabel, Grid, IconButton, IconMenuButton, InfoSign, Input, Markdown, Menu, MenuButton, MenuItem, Modal, ModalClose, ModalDialog, ModalOverflow, ModalFrame, MonthPicker, MonthRangePicker, NavigationGroup, NavigationItem, Navigator, Pagination, PercentageInput, Radio, RadioGroup, RadioList, Select, Step, StepIndicator, Stepper, Option, Sheet, Stack, Switch, theme, Table, TableHead, TableBody, Tabs, Tab, TabList, TabPanel, Textarea, ThemeProvider, Tooltip, Typography, Uploader, } from "./components";
package/dist/index.js CHANGED
@@ -4418,8 +4418,69 @@ var InsetDrawer = styled19(JoyDrawer2)(({ theme }) => ({
4418
4418
  // src/components/Grid/Grid.tsx
4419
4419
  import { Grid } from "@mui/joy";
4420
4420
 
4421
+ // src/components/IconMenuButton/IconMenuButton.tsx
4422
+ import React29 from "react";
4423
+ import {
4424
+ MenuButton as JoyMenuButton2,
4425
+ IconButton as JoyIconButton2
4426
+ } from "@mui/joy";
4427
+ function IconMenuButton(props) {
4428
+ const {
4429
+ size,
4430
+ icon,
4431
+ items = [],
4432
+ disabled,
4433
+ loading,
4434
+ color = "neutral",
4435
+ variant = "plain",
4436
+ placement = "bottom"
4437
+ } = props;
4438
+ if (!items.length) {
4439
+ return /* @__PURE__ */ React29.createElement(
4440
+ JoyIconButton2,
4441
+ {
4442
+ component: props.buttonComponent ?? "button",
4443
+ size,
4444
+ variant,
4445
+ color,
4446
+ disabled,
4447
+ loading,
4448
+ ...props.buttonComponentProps ?? {}
4449
+ },
4450
+ icon
4451
+ );
4452
+ }
4453
+ return /* @__PURE__ */ React29.createElement(Dropdown_default, null, /* @__PURE__ */ React29.createElement(
4454
+ JoyMenuButton2,
4455
+ {
4456
+ slots: { root: JoyIconButton2 },
4457
+ slotProps: {
4458
+ root: {
4459
+ component: props.buttonComponent ?? "button",
4460
+ size,
4461
+ variant,
4462
+ color,
4463
+ disabled,
4464
+ loading,
4465
+ ...props.buttonComponentProps ?? {}
4466
+ }
4467
+ }
4468
+ },
4469
+ icon
4470
+ ), /* @__PURE__ */ React29.createElement(Menu, { placement, size }, items.map((i) => /* @__PURE__ */ React29.createElement(
4471
+ MenuItem,
4472
+ {
4473
+ key: i.text,
4474
+ component: i.component,
4475
+ ...i.componentProps ?? {}
4476
+ },
4477
+ i.text
4478
+ ))));
4479
+ }
4480
+ IconMenuButton.displayName = "IconMenuButton";
4481
+
4421
4482
  // src/components/Markdown/Markdown.tsx
4422
- import React29, { lazy, Suspense, useEffect as useEffect7, useState as useState8 } from "react";
4483
+ import React30, { lazy, Suspense, useEffect as useEffect7, useState as useState8 } from "react";
4423
4484
  import { Skeleton } from "@mui/joy";
4424
4485
  import { Link as Link2 } from "@mui/joy";
4425
4486
  import remarkGfm from "remark-gfm";
@@ -4448,7 +4509,7 @@ var Markdown = (props) => {
4448
4509
  if (!rehypeAccent2) {
4449
4510
  return null;
4450
4511
  }
4451
- return /* @__PURE__ */ React29.createElement(
4512
+ return /* @__PURE__ */ React30.createElement(
4452
4513
  Typography,
4453
4514
  {
4454
4515
  component: "div",
@@ -4457,12 +4518,12 @@ var Markdown = (props) => {
4457
4518
  level: defaultLevel,
4458
4519
  ...innerProps
4459
4520
  },
4460
- /* @__PURE__ */ React29.createElement(
4521
+ /* @__PURE__ */ React30.createElement(
4461
4522
  Suspense,
4462
4523
  {
4463
- fallback: fallback || /* @__PURE__ */ React29.createElement(Typography, null, /* @__PURE__ */ React29.createElement(Skeleton, null, content || ""))
4524
+ fallback: fallback || /* @__PURE__ */ React30.createElement(Typography, null, /* @__PURE__ */ React30.createElement(Skeleton, null, content || ""))
4464
4525
  },
4465
- /* @__PURE__ */ React29.createElement(
4526
+ /* @__PURE__ */ React30.createElement(
4466
4527
  LazyReactMarkdown,
4467
4528
  {
4468
4529
  ...markdownOptions,
@@ -4470,11 +4531,11 @@ var Markdown = (props) => {
4470
4531
  rehypePlugins: [[rehypeAccent2, { accentColor }]],
4471
4532
  remarkPlugins: [remarkGfm],
4472
4533
  components: {
4473
- h1: ({ children }) => /* @__PURE__ */ React29.createElement(Typography, { color, textColor, level: "h1" }, children),
4474
- h2: ({ children }) => /* @__PURE__ */ React29.createElement(Typography, { color, textColor, level: "h2" }, children),
4475
- h3: ({ children }) => /* @__PURE__ */ React29.createElement(Typography, { color, textColor, level: "h3" }, children),
4476
- h4: ({ children }) => /* @__PURE__ */ React29.createElement(Typography, { color, textColor, level: "h4" }, children),
4477
- p: ({ children, node }) => /* @__PURE__ */ React29.createElement(
4534
+ h1: ({ children }) => /* @__PURE__ */ React30.createElement(Typography, { color, textColor, level: "h1" }, children),
4535
+ h2: ({ children }) => /* @__PURE__ */ React30.createElement(Typography, { color, textColor, level: "h2" }, children),
4536
+ h3: ({ children }) => /* @__PURE__ */ React30.createElement(Typography, { color, textColor, level: "h3" }, children),
4537
+ h4: ({ children }) => /* @__PURE__ */ React30.createElement(Typography, { color, textColor, level: "h4" }, children),
4538
+ p: ({ children, node }) => /* @__PURE__ */ React30.createElement(
4478
4539
  Typography,
4479
4540
  {
4480
4541
  color,
@@ -4484,10 +4545,10 @@ var Markdown = (props) => {
4484
4545
  },
4485
4546
  children
4486
4547
  ),
4487
- a: ({ children, href }) => /* @__PURE__ */ React29.createElement(Link2, { href, target: defaultLinkAction }, children),
4488
- hr: () => /* @__PURE__ */ React29.createElement(Divider, null),
4489
- b: ({ children }) => /* @__PURE__ */ React29.createElement(Typography, { fontWeight: boldFontWeight }, children),
4490
- strong: ({ children }) => /* @__PURE__ */ React29.createElement(Typography, { fontWeight: boldFontWeight }, children),
4548
+ a: ({ children, href }) => /* @__PURE__ */ React30.createElement(Link2, { href, target: defaultLinkAction }, children),
4549
+ hr: () => /* @__PURE__ */ React30.createElement(Divider, null),
4550
+ b: ({ children }) => /* @__PURE__ */ React30.createElement(Typography, { fontWeight: boldFontWeight }, children),
4551
+ strong: ({ children }) => /* @__PURE__ */ React30.createElement(Typography, { fontWeight: boldFontWeight }, children),
4491
4552
  ...markdownOptions?.components
4492
4553
  }
4493
4554
  }
@@ -4498,9 +4559,9 @@ var Markdown = (props) => {
4498
4559
  Markdown.displayName = "Markdown";
4499
4560
 
4500
4561
  // src/components/MenuButton/MenuButton.tsx
4501
- import React30 from "react";
4562
+ import React31 from "react";
4502
4563
  import {
4503
- MenuButton as JoyMenuButton2,
4564
+ MenuButton as JoyMenuButton3,
4504
4565
  Button as JoyButton2
4505
4566
  } from "@mui/joy";
4506
4567
  import ExpandMoreIcon from "@mui/icons-material/ExpandMore";
@@ -4519,7 +4580,7 @@ function MenuButton(props) {
4519
4580
  placement = "bottom"
4520
4581
  } = props;
4521
4582
  if (!items.length) {
4522
- return /* @__PURE__ */ React30.createElement(
4583
+ return /* @__PURE__ */ React31.createElement(
4523
4584
  JoyButton2,
4524
4585
  {
4525
4586
  component: props.buttonComponent ?? "button",
@@ -4530,13 +4591,13 @@ function MenuButton(props) {
4530
4591
  loading,
4531
4592
  startDecorator,
4532
4593
  ...props.buttonComponentProps ?? {},
4533
- endDecorator: showIcon ? /* @__PURE__ */ React30.createElement(React30.Fragment, null, endDecorator, /* @__PURE__ */ React30.createElement(ExpandMoreIcon, null)) : /* @__PURE__ */ React30.createElement(React30.Fragment, null, endDecorator)
4594
+ endDecorator: showIcon ? /* @__PURE__ */ React31.createElement(React31.Fragment, null, endDecorator, /* @__PURE__ */ React31.createElement(ExpandMoreIcon, null)) : /* @__PURE__ */ React31.createElement(React31.Fragment, null, endDecorator)
4534
4595
  },
4535
4596
  buttonText
4536
4597
  );
4537
4598
  }
4538
- return /* @__PURE__ */ React30.createElement(Dropdown_default, null, /* @__PURE__ */ React30.createElement(
4539
- JoyMenuButton2,
4599
+ return /* @__PURE__ */ React31.createElement(Dropdown_default, null, /* @__PURE__ */ React31.createElement(
4600
+ JoyMenuButton3,
4540
4601
  {
4541
4602
  component: props.buttonComponent ?? "button",
4542
4603
  size,
@@ -4546,10 +4607,10 @@ function MenuButton(props) {
4546
4607
  loading,
4547
4608
  startDecorator,
4548
4609
  ...props.buttonComponentProps ?? {},
4549
- endDecorator: showIcon ? /* @__PURE__ */ React30.createElement(React30.Fragment, null, endDecorator, /* @__PURE__ */ React30.createElement(ExpandMoreIcon, null)) : /* @__PURE__ */ React30.createElement(React30.Fragment, null, endDecorator)
4610
+ endDecorator: showIcon ? /* @__PURE__ */ React31.createElement(React31.Fragment, null, endDecorator, /* @__PURE__ */ React31.createElement(ExpandMoreIcon, null)) : /* @__PURE__ */ React31.createElement(React31.Fragment, null, endDecorator)
4550
4611
  },
4551
4612
  buttonText
4552
- ), /* @__PURE__ */ React30.createElement(Menu, { placement, size }, items.map((i) => /* @__PURE__ */ React30.createElement(
4613
+ ), /* @__PURE__ */ React31.createElement(Menu, { placement, size }, items.map((i) => /* @__PURE__ */ React31.createElement(
4553
4614
  MenuItem,
4554
4615
  {
4555
4616
  key: i.text,
@@ -4562,7 +4623,7 @@ function MenuButton(props) {
4562
4623
  MenuButton.displayName = "MenuButton";
4563
4624
 
4564
4625
  // src/components/MonthPicker/MonthPicker.tsx
4565
- import React31, {
4626
+ import React32, {
4566
4627
  forwardRef as forwardRef9,
4567
4628
  useCallback as useCallback11,
4568
4629
  useEffect as useEffect8,
@@ -4717,7 +4778,7 @@ var MonthPicker = forwardRef9(
4717
4778
  },
4718
4779
  [buttonRef]
4719
4780
  );
4720
- return /* @__PURE__ */ React31.createElement(MonthPickerRoot, null, /* @__PURE__ */ React31.createElement(FocusTrap3, { open: true }, /* @__PURE__ */ React31.createElement(React31.Fragment, null, /* @__PURE__ */ React31.createElement(
4781
+ return /* @__PURE__ */ React32.createElement(MonthPickerRoot, null, /* @__PURE__ */ React32.createElement(FocusTrap3, { open: true }, /* @__PURE__ */ React32.createElement(React32.Fragment, null, /* @__PURE__ */ React32.createElement(
4721
4782
  Input_default,
4722
4783
  {
4723
4784
  ...innerProps,
@@ -4747,7 +4808,7 @@ var MonthPicker = forwardRef9(
4747
4808
  // NOTE: placeholder char 를 텍스트로 표시하므로 동일한 너비를 가지는 mono font 를 사용해야 이질감이 없다.
4748
4809
  fontFamily: "monospace"
4749
4810
  },
4750
- endDecorator: /* @__PURE__ */ React31.createElement(
4811
+ endDecorator: /* @__PURE__ */ React32.createElement(
4751
4812
  IconButton_default,
4752
4813
  {
4753
4814
  ref: buttonRef,
@@ -4759,12 +4820,12 @@ var MonthPicker = forwardRef9(
4759
4820
  "aria-expanded": open,
4760
4821
  disabled
4761
4822
  },
4762
- /* @__PURE__ */ React31.createElement(CalendarTodayIcon3, null)
4823
+ /* @__PURE__ */ React32.createElement(CalendarTodayIcon3, null)
4763
4824
  ),
4764
4825
  label,
4765
4826
  helperText
4766
4827
  }
4767
- ), open && /* @__PURE__ */ React31.createElement(ClickAwayListener3, { onClickAway: () => setAnchorEl(null) }, /* @__PURE__ */ React31.createElement(
4828
+ ), open && /* @__PURE__ */ React32.createElement(ClickAwayListener3, { onClickAway: () => setAnchorEl(null) }, /* @__PURE__ */ React32.createElement(
4768
4829
  StyledPopper3,
4769
4830
  {
4770
4831
  id: "month-picker-popper",
@@ -4783,7 +4844,7 @@ var MonthPicker = forwardRef9(
4783
4844
  "aria-label": "Calendar Tooltip",
4784
4845
  "aria-expanded": open
4785
4846
  },
4786
- /* @__PURE__ */ React31.createElement(CalendarSheet3, { tabIndex: -1, role: "presentation" }, /* @__PURE__ */ React31.createElement(
4847
+ /* @__PURE__ */ React32.createElement(CalendarSheet3, { tabIndex: -1, role: "presentation" }, /* @__PURE__ */ React32.createElement(
4787
4848
  Calendar_default,
4788
4849
  {
4789
4850
  view: "month",
@@ -4804,14 +4865,14 @@ var MonthPicker = forwardRef9(
4804
4865
  disablePast,
4805
4866
  locale
4806
4867
  }
4807
- ), /* @__PURE__ */ React31.createElement(
4868
+ ), /* @__PURE__ */ React32.createElement(
4808
4869
  DialogActions_default,
4809
4870
  {
4810
4871
  sx: {
4811
4872
  p: 1
4812
4873
  }
4813
4874
  },
4814
- /* @__PURE__ */ React31.createElement(
4875
+ /* @__PURE__ */ React32.createElement(
4815
4876
  Button_default,
4816
4877
  {
4817
4878
  size,
@@ -4835,7 +4896,7 @@ var MonthPicker = forwardRef9(
4835
4896
  );
4836
4897
 
4837
4898
  // src/components/MonthRangePicker/MonthRangePicker.tsx
4838
- import React32, {
4899
+ import React33, {
4839
4900
  forwardRef as forwardRef10,
4840
4901
  useCallback as useCallback12,
4841
4902
  useEffect as useEffect9,
@@ -4901,10 +4962,10 @@ var parseDates2 = (str) => {
4901
4962
  var formatToPattern3 = (format) => {
4902
4963
  return `${format} - ${format}`.replace(/YYYY/g, "Y").replace(/MM/g, "m").replace(/[^YMm\s]/g, (match) => `${match}\``);
4903
4964
  };
4904
- var TextMaskAdapter7 = React32.forwardRef(
4965
+ var TextMaskAdapter7 = React33.forwardRef(
4905
4966
  function TextMaskAdapter8(props, ref) {
4906
4967
  const { onChange, format, ...other } = props;
4907
- return /* @__PURE__ */ React32.createElement(
4968
+ return /* @__PURE__ */ React33.createElement(
4908
4969
  IMaskInput3,
4909
4970
  {
4910
4971
  ...other,
@@ -4998,7 +5059,7 @@ var MonthRangePicker = forwardRef10(
4998
5059
  },
4999
5060
  [setValue, setAnchorEl, format]
5000
5061
  );
5001
- return /* @__PURE__ */ React32.createElement(MonthRangePickerRoot, null, /* @__PURE__ */ React32.createElement(FocusTrap4, { open: true }, /* @__PURE__ */ React32.createElement(React32.Fragment, null, /* @__PURE__ */ React32.createElement(
5062
+ return /* @__PURE__ */ React33.createElement(MonthRangePickerRoot, null, /* @__PURE__ */ React33.createElement(FocusTrap4, { open: true }, /* @__PURE__ */ React33.createElement(React33.Fragment, null, /* @__PURE__ */ React33.createElement(
5002
5063
  Input_default,
5003
5064
  {
5004
5065
  ...innerProps,
@@ -5020,7 +5081,7 @@ var MonthRangePicker = forwardRef10(
5020
5081
  // NOTE: placeholder char 를 텍스트로 표시하므로 동일한 너비를 가지는 mono font 를 사용해야 이질감이 없다.
5021
5082
  fontFamily: "monospace"
5022
5083
  },
5023
- endDecorator: /* @__PURE__ */ React32.createElement(
5084
+ endDecorator: /* @__PURE__ */ React33.createElement(
5024
5085
  IconButton_default,
5025
5086
  {
5026
5087
  variant: "plain",
@@ -5030,12 +5091,12 @@ var MonthRangePicker = forwardRef10(
5030
5091
  "aria-haspopup": "dialog",
5031
5092
  "aria-expanded": open
5032
5093
  },
5033
- /* @__PURE__ */ React32.createElement(CalendarTodayIcon4, null)
5094
+ /* @__PURE__ */ React33.createElement(CalendarTodayIcon4, null)
5034
5095
  ),
5035
5096
  label,
5036
5097
  helperText
5037
5098
  }
5038
- ), open && /* @__PURE__ */ React32.createElement(ClickAwayListener4, { onClickAway: () => setAnchorEl(null) }, /* @__PURE__ */ React32.createElement(
5099
+ ), open && /* @__PURE__ */ React33.createElement(ClickAwayListener4, { onClickAway: () => setAnchorEl(null) }, /* @__PURE__ */ React33.createElement(
5039
5100
  StyledPopper4,
5040
5101
  {
5041
5102
  id: "month-range-picker-popper",
@@ -5054,7 +5115,7 @@ var MonthRangePicker = forwardRef10(
5054
5115
  "aria-label": "Calendar Tooltip",
5055
5116
  "aria-expanded": open
5056
5117
  },
5057
- /* @__PURE__ */ React32.createElement(CalendarSheet4, { tabIndex: -1, role: "presentation" }, /* @__PURE__ */ React32.createElement(
5118
+ /* @__PURE__ */ React33.createElement(CalendarSheet4, { tabIndex: -1, role: "presentation" }, /* @__PURE__ */ React33.createElement(
5058
5119
  Calendar_default,
5059
5120
  {
5060
5121
  view: "month",
@@ -5067,14 +5128,14 @@ var MonthRangePicker = forwardRef10(
5067
5128
  disableFuture,
5068
5129
  disablePast
5069
5130
  }
5070
- ), /* @__PURE__ */ React32.createElement(
5131
+ ), /* @__PURE__ */ React33.createElement(
5071
5132
  DialogActions_default,
5072
5133
  {
5073
5134
  sx: {
5074
5135
  p: 1
5075
5136
  }
5076
5137
  },
5077
- /* @__PURE__ */ React32.createElement(
5138
+ /* @__PURE__ */ React33.createElement(
5078
5139
  Button_default,
5079
5140
  {
5080
5141
  size,
@@ -5094,7 +5155,7 @@ var MonthRangePicker = forwardRef10(
5094
5155
  MonthRangePicker.displayName = "MonthRangePicker";
5095
5156
 
5096
5157
  // src/components/NavigationGroup/NavigationGroup.tsx
5097
- import React33 from "react";
5158
+ import React34 from "react";
5098
5159
  import {
5099
5160
  Accordion as JoyAccordion2,
5100
5161
  AccordionSummary as JoyAccordionSummary2,
@@ -5125,11 +5186,11 @@ var AccordionDetails2 = styled22(JoyAccordionDetails2, {
5125
5186
  }));
5126
5187
  function NavigationGroup(props) {
5127
5188
  const { title, children, startDecorator, level, ...rest } = props;
5128
- return /* @__PURE__ */ React33.createElement(JoyAccordion2, { ...rest }, /* @__PURE__ */ React33.createElement(AccordionSummary2, { useIcon: !!startDecorator, level }, /* @__PURE__ */ React33.createElement(Stack2, { direction: "row", gap: 4 }, startDecorator, title)), /* @__PURE__ */ React33.createElement(AccordionDetails2, null, children));
5189
+ return /* @__PURE__ */ React34.createElement(JoyAccordion2, { ...rest }, /* @__PURE__ */ React34.createElement(AccordionSummary2, { useIcon: !!startDecorator, level }, /* @__PURE__ */ React34.createElement(Stack2, { direction: "row", gap: 4 }, startDecorator, title)), /* @__PURE__ */ React34.createElement(AccordionDetails2, null, children));
5129
5190
  }
5130
5191
 
5131
5192
  // src/components/NavigationItem/NavigationItem.tsx
5132
- import React34 from "react";
5193
+ import React35 from "react";
5133
5194
  import {
5134
5195
  ListItem as JoyListItem,
5135
5196
  ListItemButton as JoyListItemButton,
@@ -5164,7 +5225,7 @@ function NavigationItem(props) {
5164
5225
  const handleClick = () => {
5165
5226
  onClick?.(id);
5166
5227
  };
5167
- return /* @__PURE__ */ React34.createElement(JoyListItem, { ...rest }, /* @__PURE__ */ React34.createElement(
5228
+ return /* @__PURE__ */ React35.createElement(JoyListItem, { ...rest }, /* @__PURE__ */ React35.createElement(
5168
5229
  ListItemButton,
5169
5230
  {
5170
5231
  level,
@@ -5173,21 +5234,21 @@ function NavigationItem(props) {
5173
5234
  "aria-current": selected,
5174
5235
  onClick: handleClick
5175
5236
  },
5176
- startDecorator && /* @__PURE__ */ React34.createElement(JoyListItemDecorator, null, startDecorator),
5237
+ startDecorator && /* @__PURE__ */ React35.createElement(JoyListItemDecorator, null, startDecorator),
5177
5238
  children
5178
5239
  ));
5179
5240
  }
5180
5241
 
5181
5242
  // src/components/Navigator/Navigator.tsx
5182
- import React35 from "react";
5243
+ import React36 from "react";
5183
5244
  function Navigator(props) {
5184
5245
  const { items, level = 0, onSelect } = props;
5185
5246
  const handleItemClick = (id) => {
5186
5247
  onSelect?.(id);
5187
5248
  };
5188
- return /* @__PURE__ */ React35.createElement("div", null, items.map((item, index) => {
5249
+ return /* @__PURE__ */ React36.createElement("div", null, items.map((item, index) => {
5189
5250
  if (item.type === "item") {
5190
- return /* @__PURE__ */ React35.createElement(
5251
+ return /* @__PURE__ */ React36.createElement(
5191
5252
  NavigationItem,
5192
5253
  {
5193
5254
  key: item.id,
@@ -5200,7 +5261,7 @@ function Navigator(props) {
5200
5261
  item.title
5201
5262
  );
5202
5263
  } else if (item.type === "group") {
5203
- return /* @__PURE__ */ React35.createElement(
5264
+ return /* @__PURE__ */ React36.createElement(
5204
5265
  NavigationGroup,
5205
5266
  {
5206
5267
  key: index,
@@ -5218,17 +5279,17 @@ function Navigator(props) {
5218
5279
  Navigator.displayName = "Navigator";
5219
5280
 
5220
5281
  // src/components/PercentageInput/PercentageInput.tsx
5221
- import React36, { useCallback as useCallback13, useMemo as useMemo11, useState as useState11 } from "react";
5282
+ import React37, { useCallback as useCallback13, useMemo as useMemo11, useState as useState11 } from "react";
5222
5283
  import { NumericFormat as NumericFormat2 } from "react-number-format";
5223
5284
  import { styled as styled24, useThemeProps as useThemeProps8 } from "@mui/joy";
5224
5285
  var padDecimal = (value, decimalScale) => {
5225
5286
  const [integer, decimal = ""] = `${value}`.split(".");
5226
5287
  return Number(`${integer}${decimal.padEnd(decimalScale, "0")}`);
5227
5288
  };
5228
- var TextMaskAdapter9 = React36.forwardRef(
5289
+ var TextMaskAdapter9 = React37.forwardRef(
5229
5290
  function TextMaskAdapter10(props, ref) {
5230
5291
  const { onChange, min, max, ...innerProps } = props;
5231
- return /* @__PURE__ */ React36.createElement(
5292
+ return /* @__PURE__ */ React37.createElement(
5232
5293
  NumericFormat2,
5233
5294
  {
5234
5295
  ...innerProps,
@@ -5254,7 +5315,7 @@ var PercentageInputRoot = styled24(Input_default, {
5254
5315
  slot: "Root",
5255
5316
  overridesResolver: (props, styles) => styles.root
5256
5317
  })({});
5257
- var PercentageInput = React36.forwardRef(function PercentageInput2(inProps, ref) {
5318
+ var PercentageInput = React37.forwardRef(function PercentageInput2(inProps, ref) {
5258
5319
  const props = useThemeProps8({ props: inProps, name: "PercentageInput" });
5259
5320
  const {
5260
5321
  name,
@@ -5307,7 +5368,7 @@ var PercentageInput = React36.forwardRef(function PercentageInput2(inProps, ref)
5307
5368
  },
5308
5369
  [setValue, useMinorUnit, maxDecimalScale, min, max]
5309
5370
  );
5310
- return /* @__PURE__ */ React36.createElement(
5371
+ return /* @__PURE__ */ React37.createElement(
5311
5372
  PercentageInputRoot,
5312
5373
  {
5313
5374
  ...innerProps,
@@ -5347,15 +5408,15 @@ var RadioGroup = MotionRadioGroup;
5347
5408
  RadioGroup.displayName = "RadioGroup";
5348
5409
 
5349
5410
  // src/components/RadioList/RadioList.tsx
5350
- import React37 from "react";
5411
+ import React38 from "react";
5351
5412
  function RadioList(props) {
5352
5413
  const { items, ...innerProps } = props;
5353
- return /* @__PURE__ */ React37.createElement(RadioGroup, { ...innerProps }, items.map((item) => /* @__PURE__ */ React37.createElement(Radio, { key: `${item.value}`, value: item.value, label: item.label })));
5414
+ return /* @__PURE__ */ React38.createElement(RadioGroup, { ...innerProps }, items.map((item) => /* @__PURE__ */ React38.createElement(Radio, { key: `${item.value}`, value: item.value, label: item.label })));
5354
5415
  }
5355
5416
  RadioList.displayName = "RadioList";
5356
5417
 
5357
5418
  // src/components/Stepper/Stepper.tsx
5358
- import React38 from "react";
5419
+ import React39 from "react";
5359
5420
  import {
5360
5421
  Stepper as JoyStepper,
5361
5422
  Step as JoyStep,
@@ -5388,7 +5449,7 @@ function Stepper(props) {
5388
5449
  inactiveLineColor = "neutral.300",
5389
5450
  activeStep
5390
5451
  } = props;
5391
- return /* @__PURE__ */ React38.createElement(
5452
+ return /* @__PURE__ */ React39.createElement(
5392
5453
  MotionStepper,
5393
5454
  {
5394
5455
  sx: (theme) => ({
@@ -5422,15 +5483,15 @@ function Stepper(props) {
5422
5483
  const completed = activeStep > i + 1;
5423
5484
  const disabled = activeStep < i + 1;
5424
5485
  const hasContent = step.label || step.extraContent;
5425
- return /* @__PURE__ */ React38.createElement(
5486
+ return /* @__PURE__ */ React39.createElement(
5426
5487
  Step,
5427
5488
  {
5428
- indicator: /* @__PURE__ */ React38.createElement(StepIndicator, { variant: "solid", color: "primary" }, completed ? /* @__PURE__ */ React38.createElement(CheckIcon, null) : step.indicatorContent),
5489
+ indicator: /* @__PURE__ */ React39.createElement(StepIndicator, { variant: "solid", color: "primary" }, completed ? /* @__PURE__ */ React39.createElement(CheckIcon, null) : step.indicatorContent),
5429
5490
  active,
5430
5491
  completed,
5431
5492
  disabled
5432
5493
  },
5433
- hasContent && /* @__PURE__ */ React38.createElement(Stack_default, null, step.label && /* @__PURE__ */ React38.createElement(Typography_default, { level: "title-sm" }, step.label), step.extraContent && /* @__PURE__ */ React38.createElement(Typography_default, { level: "body-xs" }, step.extraContent))
5494
+ hasContent && /* @__PURE__ */ React39.createElement(Stack_default, null, step.label && /* @__PURE__ */ React39.createElement(Typography_default, { level: "title-sm" }, step.label), step.extraContent && /* @__PURE__ */ React39.createElement(Typography_default, { level: "body-xs" }, step.extraContent))
5434
5495
  );
5435
5496
  })
5436
5497
  );
@@ -5438,7 +5499,7 @@ function Stepper(props) {
5438
5499
  Stepper.displayName = "Stepper";
5439
5500
 
5440
5501
  // src/components/Switch/Switch.tsx
5441
- import React39 from "react";
5502
+ import React40 from "react";
5442
5503
  import {
5443
5504
  Switch as JoySwitch,
5444
5505
  styled as styled26,
@@ -5464,14 +5525,14 @@ var StyledThumb = styled26(motion29.div)({
5464
5525
  right: "var(--Switch-thumbOffset)"
5465
5526
  }
5466
5527
  });
5467
- var Thumb = (props) => /* @__PURE__ */ React39.createElement(StyledThumb, { ...props, layout: true, transition: spring });
5528
+ var Thumb = (props) => /* @__PURE__ */ React40.createElement(StyledThumb, { ...props, layout: true, transition: spring });
5468
5529
  var spring = {
5469
5530
  type: "spring",
5470
5531
  stiffness: 700,
5471
5532
  damping: 30
5472
5533
  };
5473
5534
  var Switch = (props) => {
5474
- return /* @__PURE__ */ React39.createElement(
5535
+ return /* @__PURE__ */ React40.createElement(
5475
5536
  MotionSwitch,
5476
5537
  {
5477
5538
  ...props,
@@ -5485,7 +5546,7 @@ var Switch = (props) => {
5485
5546
  Switch.displayName = "Switch";
5486
5547
 
5487
5548
  // src/components/Tabs/Tabs.tsx
5488
- import React40, { forwardRef as forwardRef11 } from "react";
5549
+ import React41, { forwardRef as forwardRef11 } from "react";
5489
5550
  import {
5490
5551
  Tabs as JoyTabs,
5491
5552
  Tab as JoyTab,
@@ -5509,14 +5570,14 @@ var StyledTab = styled27(JoyTab)(({ theme }) => ({
5509
5570
  }
5510
5571
  }));
5511
5572
  var Tab = forwardRef11(function Tab2({ startDecorator, endDecorator, children, ...props }, ref) {
5512
- return /* @__PURE__ */ React40.createElement(StyledTab, { ...props, ref }, startDecorator, children, endDecorator);
5573
+ return /* @__PURE__ */ React41.createElement(StyledTab, { ...props, ref }, startDecorator, children, endDecorator);
5513
5574
  });
5514
5575
  Tab.displayName = "Tab";
5515
5576
  var TabList = JoyTabList;
5516
5577
  var TabPanel = JoyTabPanel;
5517
5578
 
5518
5579
  // src/components/ThemeProvider/ThemeProvider.tsx
5519
- import React41 from "react";
5580
+ import React42 from "react";
5520
5581
  import {
5521
5582
  CssBaseline,
5522
5583
  CssVarsProvider,
@@ -5772,12 +5833,12 @@ var defaultTheme = extendTheme({
5772
5833
  });
5773
5834
  function ThemeProvider(props) {
5774
5835
  const theme = props.theme || defaultTheme;
5775
- return /* @__PURE__ */ React41.createElement(React41.Fragment, null, /* @__PURE__ */ React41.createElement(CssVarsProvider, { theme }, /* @__PURE__ */ React41.createElement(CssBaseline, null), props.children));
5836
+ return /* @__PURE__ */ React42.createElement(React42.Fragment, null, /* @__PURE__ */ React42.createElement(CssVarsProvider, { theme }, /* @__PURE__ */ React42.createElement(CssBaseline, null), props.children));
5776
5837
  }
5777
5838
  ThemeProvider.displayName = "ThemeProvider";
5778
5839
 
5779
5840
  // src/components/Uploader/Uploader.tsx
5780
- import React42, {
5841
+ import React43, {
5781
5842
  useCallback as useCallback14,
5782
5843
  useEffect as useEffect10,
5783
5844
  useMemo as useMemo12,
@@ -5901,7 +5962,7 @@ var getFileSize = (n) => {
5901
5962
  };
5902
5963
  var Preview = (props) => {
5903
5964
  const { files, uploaded, onDelete } = props;
5904
- return /* @__PURE__ */ React42.createElement(PreviewRoot, { gap: 1 }, [...uploaded, ...files].map((file) => /* @__PURE__ */ React42.createElement(UploadCard, { key: file.name, size: "sm", color: "neutral" }, /* @__PURE__ */ React42.createElement(Stack_default, { direction: "row", alignItems: "center", gap: 2 }, /* @__PURE__ */ React42.createElement(UploadFileIcon, null), /* @__PURE__ */ React42.createElement(Stack_default, { flex: "1" }, /* @__PURE__ */ React42.createElement(Typography_default, { level: "body-sm", textColor: "common.black" }, file.name), !!file.size && /* @__PURE__ */ React42.createElement(
5965
+ return /* @__PURE__ */ React43.createElement(PreviewRoot, { gap: 1 }, [...uploaded, ...files].map((file) => /* @__PURE__ */ React43.createElement(UploadCard, { key: file.name, size: "sm", color: "neutral" }, /* @__PURE__ */ React43.createElement(Stack_default, { direction: "row", alignItems: "center", gap: 2 }, /* @__PURE__ */ React43.createElement(UploadFileIcon, null), /* @__PURE__ */ React43.createElement(Stack_default, { flex: "1" }, /* @__PURE__ */ React43.createElement(Typography_default, { level: "body-sm", textColor: "common.black" }, file.name), !!file.size && /* @__PURE__ */ React43.createElement(
5905
5966
  Typography_default,
5906
5967
  {
5907
5968
  level: "body-xs",
@@ -5910,7 +5971,7 @@ var Preview = (props) => {
5910
5971
  textColor: "text.tertiary"
5911
5972
  },
5912
5973
  getFileSize(file.size)
5913
- )), /* @__PURE__ */ React42.createElement(IconButton_default, { onClick: () => onDelete?.(file) }, /* @__PURE__ */ React42.createElement(ClearIcon2, null))))));
5974
+ )), /* @__PURE__ */ React43.createElement(IconButton_default, { onClick: () => onDelete?.(file) }, /* @__PURE__ */ React43.createElement(ClearIcon2, null))))));
5914
5975
  };
5915
5976
  var UploaderRoot = styled28(Stack_default, {
5916
5977
  name: "Uploader",
@@ -5947,7 +6008,7 @@ var UploaderIcon = styled28(MuiFileUploadIcon, {
5947
6008
  height: "32px"
5948
6009
  })
5949
6010
  );
5950
- var Uploader = React42.memo(
6011
+ var Uploader = React43.memo(
5951
6012
  (props) => {
5952
6013
  const {
5953
6014
  accept,
@@ -6172,7 +6233,7 @@ var Uploader = React42.memo(
6172
6233
  const handleUploaderButtonClick = useCallback14(() => {
6173
6234
  inputRef.current?.click();
6174
6235
  }, []);
6175
- const uploader = /* @__PURE__ */ React42.createElement(
6236
+ const uploader = /* @__PURE__ */ React43.createElement(
6176
6237
  FileDropZone,
6177
6238
  {
6178
6239
  state: previewState,
@@ -6180,8 +6241,8 @@ var Uploader = React42.memo(
6180
6241
  ref: dropZoneRef,
6181
6242
  onClick: handleUploaderButtonClick
6182
6243
  },
6183
- /* @__PURE__ */ React42.createElement(Stack_default, { alignItems: "center", gap: 1 }, /* @__PURE__ */ React42.createElement(UploaderIcon, { state: previewState, error: !!(error || errorText) })),
6184
- /* @__PURE__ */ React42.createElement(
6244
+ /* @__PURE__ */ React43.createElement(Stack_default, { alignItems: "center", gap: 1 }, /* @__PURE__ */ React43.createElement(UploaderIcon, { state: previewState, error: !!(error || errorText) })),
6245
+ /* @__PURE__ */ React43.createElement(
6185
6246
  VisuallyHiddenInput,
6186
6247
  {
6187
6248
  disabled,
@@ -6206,7 +6267,7 @@ var Uploader = React42.memo(
6206
6267
  }
6207
6268
  )
6208
6269
  );
6209
- return /* @__PURE__ */ React42.createElement(UploaderRoot, null, showDropZone && /* @__PURE__ */ React42.createElement(
6270
+ return /* @__PURE__ */ React43.createElement(UploaderRoot, null, showDropZone && /* @__PURE__ */ React43.createElement(
6210
6271
  FormControl_default,
6211
6272
  {
6212
6273
  size,
@@ -6214,10 +6275,10 @@ var Uploader = React42.memo(
6214
6275
  disabled,
6215
6276
  required: !!minCount
6216
6277
  },
6217
- label && /* @__PURE__ */ React42.createElement(FormLabel_default, null, label),
6278
+ label && /* @__PURE__ */ React43.createElement(FormLabel_default, null, label),
6218
6279
  uploader,
6219
- /* @__PURE__ */ React42.createElement(FormHelperText_default, null, /* @__PURE__ */ React42.createElement(Stack_default, null, errorText && /* @__PURE__ */ React42.createElement("div", null, errorText), /* @__PURE__ */ React42.createElement("div", null, helperText)))
6220
- ), [...uploaded, ...files].length > 0 && /* @__PURE__ */ React42.createElement(
6280
+ /* @__PURE__ */ React43.createElement(FormHelperText_default, null, /* @__PURE__ */ React43.createElement(Stack_default, null, errorText && /* @__PURE__ */ React43.createElement("div", null, errorText), /* @__PURE__ */ React43.createElement("div", null, helperText)))
6281
+ ), [...uploaded, ...files].length > 0 && /* @__PURE__ */ React43.createElement(
6221
6282
  Preview,
6222
6283
  {
6223
6284
  files,
@@ -6271,6 +6332,7 @@ export {
6271
6332
  FormLabel,
6272
6333
  Grid,
6273
6334
  IconButton,
6335
+ IconMenuButton,
6274
6336
  InfoSign,
6275
6337
  Input,
6276
6338
  InsetDrawer,