@ceed/ads 1.6.0 → 1.7.1-next.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/dist/index.js CHANGED
@@ -2960,13 +2960,17 @@ var VirtualizedTableBody = styled12("tbody", {
2960
2960
  },
2961
2961
  // NOTE: 테이블 안에 버튼을 넣을 때 버튼의 높이가 테이블의 높이를 넘어가지 않도록 설정
2962
2962
  [`& .${buttonClasses.root}`]: {
2963
- "--Button-minHeight": "20px",
2963
+ "--Button-minHeight": "26px",
2964
2964
  "--Button-paddingBlock": "0.25rem",
2965
- lineHeight: 1
2965
+ lineHeight: 1,
2966
+ marginTop: "-2px",
2967
+ marginBottom: "-2px"
2966
2968
  },
2967
2969
  [`& .${iconButtonClasses.root}`]: {
2968
- "--IconButton-size": "21px",
2969
- verticalAlign: "middle"
2970
+ "--IconButton-size": "26px",
2971
+ verticalAlign: "middle",
2972
+ marginTop: "-2px",
2973
+ marginBottom: "-2px"
2970
2974
  }
2971
2975
  });
2972
2976
  var StyledTableRow = styled12("tr", {
@@ -3030,13 +3034,14 @@ var HeadCell = (props) => {
3030
3034
  stickyHeader,
3031
3035
  resizable,
3032
3036
  field,
3037
+ type,
3033
3038
  tableId,
3034
3039
  headerName,
3035
3040
  required,
3036
3041
  editMode,
3037
3042
  sort,
3038
3043
  onSortChange,
3039
- sortable = true,
3044
+ sortable: _sortable = true,
3040
3045
  sortOrder,
3041
3046
  description,
3042
3047
  isPinned,
@@ -3046,6 +3051,7 @@ var HeadCell = (props) => {
3046
3051
  } = props;
3047
3052
  const theme = useTheme();
3048
3053
  const ref = headerRef;
3054
+ const sortable = type === "actions" ? false : _sortable;
3049
3055
  const headId = useMemo8(
3050
3056
  () => `${tableId}_header_${headerName ?? field}`.trim(),
3051
3057
  [tableId, headerName, field]
@@ -3184,10 +3190,10 @@ var BodyCell = (props) => {
3184
3190
  );
3185
3191
  const componentProps = useMemo8(
3186
3192
  () => ({
3187
- ...typeof props.componentProps === "function" ? props.componentProps(params) : props.componentProps || {},
3193
+ ..."componentProps" in props && (typeof props.componentProps === "function" ? props.componentProps(params) : props.componentProps || {}),
3188
3194
  size: "sm"
3189
3195
  }),
3190
- [props.componentProps, params]
3196
+ ["componentProps" in props ? props.componentProps : null, params]
3191
3197
  );
3192
3198
  const editModeComponentProps = useMemo8(
3193
3199
  () => ({
@@ -3336,10 +3342,27 @@ var BodyCell = (props) => {
3336
3342
  }[type || "text"];
3337
3343
  return typedComponent || innerText;
3338
3344
  }, [value, renderCell, params, type, componentProps]);
3339
- const CellComponent = useMemo8(
3340
- () => editMode && EditModeComponent ? EditModeComponent : ReadModeComponent,
3341
- [editMode, EditModeComponent, ReadModeComponent]
3342
- );
3345
+ const CellComponent = useMemo8(() => {
3346
+ if (type === "actions") {
3347
+ return /* @__PURE__ */ React23.createElement(
3348
+ Stack_default,
3349
+ {
3350
+ direction: "row",
3351
+ gap: 1,
3352
+ justifyContent: "center",
3353
+ alignItems: "center"
3354
+ },
3355
+ props.getActions?.(params)
3356
+ );
3357
+ }
3358
+ return editMode && EditModeComponent ? EditModeComponent : ReadModeComponent;
3359
+ }, [
3360
+ type,
3361
+ props.getActions,
3362
+ editMode,
3363
+ EditModeComponent,
3364
+ ReadModeComponent
3365
+ ]);
3343
3366
  const showTooltip = useMemo8(
3344
3367
  () => noWrap && type === "longText",
3345
3368
  [noWrap, type]
@@ -4847,8 +4870,69 @@ Uploader.displayName = "Uploader";
4847
4870
  // src/components/Grid/Grid.tsx
4848
4871
  import { Grid } from "@mui/joy";
4849
4872
 
4873
+ // src/components/IconMenuButton/IconMenuButton.tsx
4874
+ import React29 from "react";
4875
+ import {
4876
+ MenuButton as JoyMenuButton2,
4877
+ IconButton as JoyIconButton2
4878
+ } from "@mui/joy";
4879
+ function IconMenuButton(props) {
4880
+ const {
4881
+ size,
4882
+ icon,
4883
+ items = [],
4884
+ disabled,
4885
+ loading,
4886
+ color = "neutral",
4887
+ variant = "plain",
4888
+ placement = "bottom"
4889
+ } = props;
4890
+ if (!items.length) {
4891
+ return /* @__PURE__ */ React29.createElement(
4892
+ JoyIconButton2,
4893
+ {
4894
+ component: props.buttonComponent ?? "button",
4895
+ size,
4896
+ variant,
4897
+ color,
4898
+ disabled,
4899
+ loading,
4900
+ ...props.buttonComponentProps ?? {}
4901
+ },
4902
+ icon
4903
+ );
4904
+ }
4905
+ return /* @__PURE__ */ React29.createElement(Dropdown_default, null, /* @__PURE__ */ React29.createElement(
4906
+ JoyMenuButton2,
4907
+ {
4908
+ slots: { root: JoyIconButton2 },
4909
+ slotProps: {
4910
+ root: {
4911
+ component: props.buttonComponent ?? "button",
4912
+ size,
4913
+ variant,
4914
+ color,
4915
+ disabled,
4916
+ loading,
4917
+ ...props.buttonComponentProps ?? {}
4918
+ }
4919
+ }
4920
+ },
4921
+ icon
4922
+ ), /* @__PURE__ */ React29.createElement(Menu, { placement, size }, items.map((i) => /* @__PURE__ */ React29.createElement(
4923
+ MenuItem,
4924
+ {
4925
+ key: i.text,
4926
+ component: i.component,
4927
+ ...i.componentProps ?? {}
4928
+ },
4929
+ i.text
4930
+ ))));
4931
+ }
4932
+ IconMenuButton.displayName = "IconMenuButton";
4933
+
4850
4934
  // src/components/Markdown/Markdown.tsx
4851
- import React29, { lazy, Suspense, useEffect as useEffect8, useState as useState9 } from "react";
4935
+ import React30, { lazy, Suspense, useEffect as useEffect8, useState as useState9 } from "react";
4852
4936
  import { Skeleton } from "@mui/joy";
4853
4937
  import { Link as Link2 } from "@mui/joy";
4854
4938
  import remarkGfm from "remark-gfm";
@@ -4877,7 +4961,7 @@ var Markdown = (props) => {
4877
4961
  if (!rehypeAccent2) {
4878
4962
  return null;
4879
4963
  }
4880
- return /* @__PURE__ */ React29.createElement(
4964
+ return /* @__PURE__ */ React30.createElement(
4881
4965
  Typography,
4882
4966
  {
4883
4967
  component: "div",
@@ -4886,12 +4970,12 @@ var Markdown = (props) => {
4886
4970
  level: defaultLevel,
4887
4971
  ...innerProps
4888
4972
  },
4889
- /* @__PURE__ */ React29.createElement(
4973
+ /* @__PURE__ */ React30.createElement(
4890
4974
  Suspense,
4891
4975
  {
4892
- fallback: fallback || /* @__PURE__ */ React29.createElement(Typography, null, /* @__PURE__ */ React29.createElement(Skeleton, null, content || ""))
4976
+ fallback: fallback || /* @__PURE__ */ React30.createElement(Typography, null, /* @__PURE__ */ React30.createElement(Skeleton, null, content || ""))
4893
4977
  },
4894
- /* @__PURE__ */ React29.createElement(
4978
+ /* @__PURE__ */ React30.createElement(
4895
4979
  LazyReactMarkdown,
4896
4980
  {
4897
4981
  ...markdownOptions,
@@ -4899,11 +4983,11 @@ var Markdown = (props) => {
4899
4983
  rehypePlugins: [[rehypeAccent2, { accentColor }]],
4900
4984
  remarkPlugins: [remarkGfm],
4901
4985
  components: {
4902
- h1: ({ children }) => /* @__PURE__ */ React29.createElement(Typography, { color, textColor, level: "h1" }, children),
4903
- h2: ({ children }) => /* @__PURE__ */ React29.createElement(Typography, { color, textColor, level: "h2" }, children),
4904
- h3: ({ children }) => /* @__PURE__ */ React29.createElement(Typography, { color, textColor, level: "h3" }, children),
4905
- h4: ({ children }) => /* @__PURE__ */ React29.createElement(Typography, { color, textColor, level: "h4" }, children),
4906
- p: ({ children, node }) => /* @__PURE__ */ React29.createElement(
4986
+ h1: ({ children }) => /* @__PURE__ */ React30.createElement(Typography, { color, textColor, level: "h1" }, children),
4987
+ h2: ({ children }) => /* @__PURE__ */ React30.createElement(Typography, { color, textColor, level: "h2" }, children),
4988
+ h3: ({ children }) => /* @__PURE__ */ React30.createElement(Typography, { color, textColor, level: "h3" }, children),
4989
+ h4: ({ children }) => /* @__PURE__ */ React30.createElement(Typography, { color, textColor, level: "h4" }, children),
4990
+ p: ({ children, node }) => /* @__PURE__ */ React30.createElement(
4907
4991
  Typography,
4908
4992
  {
4909
4993
  color,
@@ -4913,10 +4997,10 @@ var Markdown = (props) => {
4913
4997
  },
4914
4998
  children
4915
4999
  ),
4916
- a: ({ children, href }) => /* @__PURE__ */ React29.createElement(Link2, { href, target: defaultLinkAction }, children),
4917
- hr: () => /* @__PURE__ */ React29.createElement(Divider, null),
4918
- b: ({ children }) => /* @__PURE__ */ React29.createElement(Typography, { fontWeight: boldFontWeight }, children),
4919
- strong: ({ children }) => /* @__PURE__ */ React29.createElement(Typography, { fontWeight: boldFontWeight }, children),
5000
+ a: ({ children, href }) => /* @__PURE__ */ React30.createElement(Link2, { href, target: defaultLinkAction }, children),
5001
+ hr: () => /* @__PURE__ */ React30.createElement(Divider, null),
5002
+ b: ({ children }) => /* @__PURE__ */ React30.createElement(Typography, { fontWeight: boldFontWeight }, children),
5003
+ strong: ({ children }) => /* @__PURE__ */ React30.createElement(Typography, { fontWeight: boldFontWeight }, children),
4920
5004
  ...markdownOptions?.components
4921
5005
  }
4922
5006
  }
@@ -4927,9 +5011,9 @@ var Markdown = (props) => {
4927
5011
  Markdown.displayName = "Markdown";
4928
5012
 
4929
5013
  // src/components/MenuButton/MenuButton.tsx
4930
- import React30 from "react";
5014
+ import React31 from "react";
4931
5015
  import {
4932
- MenuButton as JoyMenuButton2,
5016
+ MenuButton as JoyMenuButton3,
4933
5017
  Button as JoyButton2
4934
5018
  } from "@mui/joy";
4935
5019
  import ExpandMoreIcon from "@mui/icons-material/ExpandMore";
@@ -4948,7 +5032,7 @@ function MenuButton(props) {
4948
5032
  placement = "bottom"
4949
5033
  } = props;
4950
5034
  if (!items.length) {
4951
- return /* @__PURE__ */ React30.createElement(
5035
+ return /* @__PURE__ */ React31.createElement(
4952
5036
  JoyButton2,
4953
5037
  {
4954
5038
  component: props.buttonComponent ?? "button",
@@ -4959,13 +5043,13 @@ function MenuButton(props) {
4959
5043
  loading,
4960
5044
  startDecorator,
4961
5045
  ...props.buttonComponentProps ?? {},
4962
- endDecorator: showIcon ? /* @__PURE__ */ React30.createElement(React30.Fragment, null, endDecorator, /* @__PURE__ */ React30.createElement(ExpandMoreIcon, null)) : /* @__PURE__ */ React30.createElement(React30.Fragment, null, endDecorator)
5046
+ endDecorator: showIcon ? /* @__PURE__ */ React31.createElement(React31.Fragment, null, endDecorator, /* @__PURE__ */ React31.createElement(ExpandMoreIcon, null)) : /* @__PURE__ */ React31.createElement(React31.Fragment, null, endDecorator)
4963
5047
  },
4964
5048
  buttonText
4965
5049
  );
4966
5050
  }
4967
- return /* @__PURE__ */ React30.createElement(Dropdown_default, null, /* @__PURE__ */ React30.createElement(
4968
- JoyMenuButton2,
5051
+ return /* @__PURE__ */ React31.createElement(Dropdown_default, null, /* @__PURE__ */ React31.createElement(
5052
+ JoyMenuButton3,
4969
5053
  {
4970
5054
  component: props.buttonComponent ?? "button",
4971
5055
  size,
@@ -4975,10 +5059,10 @@ function MenuButton(props) {
4975
5059
  loading,
4976
5060
  startDecorator,
4977
5061
  ...props.buttonComponentProps ?? {},
4978
- endDecorator: showIcon ? /* @__PURE__ */ React30.createElement(React30.Fragment, null, endDecorator, /* @__PURE__ */ React30.createElement(ExpandMoreIcon, null)) : /* @__PURE__ */ React30.createElement(React30.Fragment, null, endDecorator)
5062
+ endDecorator: showIcon ? /* @__PURE__ */ React31.createElement(React31.Fragment, null, endDecorator, /* @__PURE__ */ React31.createElement(ExpandMoreIcon, null)) : /* @__PURE__ */ React31.createElement(React31.Fragment, null, endDecorator)
4979
5063
  },
4980
5064
  buttonText
4981
- ), /* @__PURE__ */ React30.createElement(Menu, { placement, size }, items.map((i) => /* @__PURE__ */ React30.createElement(
5065
+ ), /* @__PURE__ */ React31.createElement(Menu, { placement, size }, items.map((i) => /* @__PURE__ */ React31.createElement(
4982
5066
  MenuItem,
4983
5067
  {
4984
5068
  key: i.text,
@@ -4991,7 +5075,7 @@ function MenuButton(props) {
4991
5075
  MenuButton.displayName = "MenuButton";
4992
5076
 
4993
5077
  // src/components/MonthPicker/MonthPicker.tsx
4994
- import React31, {
5078
+ import React32, {
4995
5079
  forwardRef as forwardRef9,
4996
5080
  useCallback as useCallback12,
4997
5081
  useEffect as useEffect9,
@@ -5146,7 +5230,7 @@ var MonthPicker = forwardRef9(
5146
5230
  },
5147
5231
  [buttonRef]
5148
5232
  );
5149
- return /* @__PURE__ */ React31.createElement(MonthPickerRoot, null, /* @__PURE__ */ React31.createElement(FocusTrap3, { open: true }, /* @__PURE__ */ React31.createElement(React31.Fragment, null, /* @__PURE__ */ React31.createElement(
5233
+ return /* @__PURE__ */ React32.createElement(MonthPickerRoot, null, /* @__PURE__ */ React32.createElement(FocusTrap3, { open: true }, /* @__PURE__ */ React32.createElement(React32.Fragment, null, /* @__PURE__ */ React32.createElement(
5150
5234
  Input_default,
5151
5235
  {
5152
5236
  ...innerProps,
@@ -5176,7 +5260,7 @@ var MonthPicker = forwardRef9(
5176
5260
  // NOTE: placeholder char 를 텍스트로 표시하므로 동일한 너비를 가지는 mono font 를 사용해야 이질감이 없다.
5177
5261
  fontFamily: "monospace"
5178
5262
  },
5179
- endDecorator: /* @__PURE__ */ React31.createElement(
5263
+ endDecorator: /* @__PURE__ */ React32.createElement(
5180
5264
  IconButton_default,
5181
5265
  {
5182
5266
  ref: buttonRef,
@@ -5188,12 +5272,12 @@ var MonthPicker = forwardRef9(
5188
5272
  "aria-expanded": open,
5189
5273
  disabled
5190
5274
  },
5191
- /* @__PURE__ */ React31.createElement(CalendarTodayIcon3, null)
5275
+ /* @__PURE__ */ React32.createElement(CalendarTodayIcon3, null)
5192
5276
  ),
5193
5277
  label,
5194
5278
  helperText
5195
5279
  }
5196
- ), open && /* @__PURE__ */ React31.createElement(ClickAwayListener3, { onClickAway: () => setAnchorEl(null) }, /* @__PURE__ */ React31.createElement(
5280
+ ), open && /* @__PURE__ */ React32.createElement(ClickAwayListener3, { onClickAway: () => setAnchorEl(null) }, /* @__PURE__ */ React32.createElement(
5197
5281
  StyledPopper3,
5198
5282
  {
5199
5283
  id: "month-picker-popper",
@@ -5212,7 +5296,7 @@ var MonthPicker = forwardRef9(
5212
5296
  "aria-label": "Calendar Tooltip",
5213
5297
  "aria-expanded": open
5214
5298
  },
5215
- /* @__PURE__ */ React31.createElement(CalendarSheet3, { tabIndex: -1, role: "presentation" }, /* @__PURE__ */ React31.createElement(
5299
+ /* @__PURE__ */ React32.createElement(CalendarSheet3, { tabIndex: -1, role: "presentation" }, /* @__PURE__ */ React32.createElement(
5216
5300
  Calendar_default,
5217
5301
  {
5218
5302
  view: "month",
@@ -5233,14 +5317,14 @@ var MonthPicker = forwardRef9(
5233
5317
  disablePast,
5234
5318
  locale
5235
5319
  }
5236
- ), /* @__PURE__ */ React31.createElement(
5320
+ ), /* @__PURE__ */ React32.createElement(
5237
5321
  DialogActions_default,
5238
5322
  {
5239
5323
  sx: {
5240
5324
  p: 1
5241
5325
  }
5242
5326
  },
5243
- /* @__PURE__ */ React31.createElement(
5327
+ /* @__PURE__ */ React32.createElement(
5244
5328
  Button_default,
5245
5329
  {
5246
5330
  size,
@@ -5264,7 +5348,7 @@ var MonthPicker = forwardRef9(
5264
5348
  );
5265
5349
 
5266
5350
  // src/components/MonthRangePicker/MonthRangePicker.tsx
5267
- import React32, {
5351
+ import React33, {
5268
5352
  forwardRef as forwardRef10,
5269
5353
  useCallback as useCallback13,
5270
5354
  useEffect as useEffect10,
@@ -5330,10 +5414,10 @@ var parseDates2 = (str) => {
5330
5414
  var formatToPattern3 = (format) => {
5331
5415
  return `${format} - ${format}`.replace(/YYYY/g, "Y").replace(/MM/g, "m").replace(/[^YMm\s]/g, (match) => `${match}\``);
5332
5416
  };
5333
- var TextMaskAdapter7 = React32.forwardRef(
5417
+ var TextMaskAdapter7 = React33.forwardRef(
5334
5418
  function TextMaskAdapter8(props, ref) {
5335
5419
  const { onChange, format, ...other } = props;
5336
- return /* @__PURE__ */ React32.createElement(
5420
+ return /* @__PURE__ */ React33.createElement(
5337
5421
  IMaskInput3,
5338
5422
  {
5339
5423
  ...other,
@@ -5427,7 +5511,7 @@ var MonthRangePicker = forwardRef10(
5427
5511
  },
5428
5512
  [setValue, setAnchorEl, format]
5429
5513
  );
5430
- return /* @__PURE__ */ React32.createElement(MonthRangePickerRoot, null, /* @__PURE__ */ React32.createElement(FocusTrap4, { open: true }, /* @__PURE__ */ React32.createElement(React32.Fragment, null, /* @__PURE__ */ React32.createElement(
5514
+ return /* @__PURE__ */ React33.createElement(MonthRangePickerRoot, null, /* @__PURE__ */ React33.createElement(FocusTrap4, { open: true }, /* @__PURE__ */ React33.createElement(React33.Fragment, null, /* @__PURE__ */ React33.createElement(
5431
5515
  Input_default,
5432
5516
  {
5433
5517
  ...innerProps,
@@ -5449,7 +5533,7 @@ var MonthRangePicker = forwardRef10(
5449
5533
  // NOTE: placeholder char 를 텍스트로 표시하므로 동일한 너비를 가지는 mono font 를 사용해야 이질감이 없다.
5450
5534
  fontFamily: "monospace"
5451
5535
  },
5452
- endDecorator: /* @__PURE__ */ React32.createElement(
5536
+ endDecorator: /* @__PURE__ */ React33.createElement(
5453
5537
  IconButton_default,
5454
5538
  {
5455
5539
  variant: "plain",
@@ -5459,12 +5543,12 @@ var MonthRangePicker = forwardRef10(
5459
5543
  "aria-haspopup": "dialog",
5460
5544
  "aria-expanded": open
5461
5545
  },
5462
- /* @__PURE__ */ React32.createElement(CalendarTodayIcon4, null)
5546
+ /* @__PURE__ */ React33.createElement(CalendarTodayIcon4, null)
5463
5547
  ),
5464
5548
  label,
5465
5549
  helperText
5466
5550
  }
5467
- ), open && /* @__PURE__ */ React32.createElement(ClickAwayListener4, { onClickAway: () => setAnchorEl(null) }, /* @__PURE__ */ React32.createElement(
5551
+ ), open && /* @__PURE__ */ React33.createElement(ClickAwayListener4, { onClickAway: () => setAnchorEl(null) }, /* @__PURE__ */ React33.createElement(
5468
5552
  StyledPopper4,
5469
5553
  {
5470
5554
  id: "month-range-picker-popper",
@@ -5483,7 +5567,7 @@ var MonthRangePicker = forwardRef10(
5483
5567
  "aria-label": "Calendar Tooltip",
5484
5568
  "aria-expanded": open
5485
5569
  },
5486
- /* @__PURE__ */ React32.createElement(CalendarSheet4, { tabIndex: -1, role: "presentation" }, /* @__PURE__ */ React32.createElement(
5570
+ /* @__PURE__ */ React33.createElement(CalendarSheet4, { tabIndex: -1, role: "presentation" }, /* @__PURE__ */ React33.createElement(
5487
5571
  Calendar_default,
5488
5572
  {
5489
5573
  view: "month",
@@ -5496,14 +5580,14 @@ var MonthRangePicker = forwardRef10(
5496
5580
  disableFuture,
5497
5581
  disablePast
5498
5582
  }
5499
- ), /* @__PURE__ */ React32.createElement(
5583
+ ), /* @__PURE__ */ React33.createElement(
5500
5584
  DialogActions_default,
5501
5585
  {
5502
5586
  sx: {
5503
5587
  p: 1
5504
5588
  }
5505
5589
  },
5506
- /* @__PURE__ */ React32.createElement(
5590
+ /* @__PURE__ */ React33.createElement(
5507
5591
  Button_default,
5508
5592
  {
5509
5593
  size,
@@ -5523,7 +5607,7 @@ var MonthRangePicker = forwardRef10(
5523
5607
  MonthRangePicker.displayName = "MonthRangePicker";
5524
5608
 
5525
5609
  // src/components/NavigationGroup/NavigationGroup.tsx
5526
- import React33 from "react";
5610
+ import React34 from "react";
5527
5611
  import {
5528
5612
  Accordion as JoyAccordion2,
5529
5613
  AccordionSummary as JoyAccordionSummary2,
@@ -5554,11 +5638,11 @@ var AccordionDetails2 = styled22(JoyAccordionDetails2, {
5554
5638
  }));
5555
5639
  function NavigationGroup(props) {
5556
5640
  const { title, children, startDecorator, level, ...rest } = props;
5557
- 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));
5641
+ 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));
5558
5642
  }
5559
5643
 
5560
5644
  // src/components/NavigationItem/NavigationItem.tsx
5561
- import React34 from "react";
5645
+ import React35 from "react";
5562
5646
  import {
5563
5647
  ListItem as JoyListItem,
5564
5648
  ListItemButton as JoyListItemButton,
@@ -5593,7 +5677,7 @@ function NavigationItem(props) {
5593
5677
  const handleClick = () => {
5594
5678
  onClick?.(id);
5595
5679
  };
5596
- return /* @__PURE__ */ React34.createElement(JoyListItem, { ...rest }, /* @__PURE__ */ React34.createElement(
5680
+ return /* @__PURE__ */ React35.createElement(JoyListItem, { ...rest }, /* @__PURE__ */ React35.createElement(
5597
5681
  ListItemButton,
5598
5682
  {
5599
5683
  level,
@@ -5602,21 +5686,21 @@ function NavigationItem(props) {
5602
5686
  "aria-current": selected,
5603
5687
  onClick: handleClick
5604
5688
  },
5605
- startDecorator && /* @__PURE__ */ React34.createElement(JoyListItemDecorator, null, startDecorator),
5689
+ startDecorator && /* @__PURE__ */ React35.createElement(JoyListItemDecorator, null, startDecorator),
5606
5690
  children
5607
5691
  ));
5608
5692
  }
5609
5693
 
5610
5694
  // src/components/Navigator/Navigator.tsx
5611
- import React35 from "react";
5695
+ import React36 from "react";
5612
5696
  function Navigator(props) {
5613
5697
  const { items, level = 0, onSelect } = props;
5614
5698
  const handleItemClick = (id) => {
5615
5699
  onSelect?.(id);
5616
5700
  };
5617
- return /* @__PURE__ */ React35.createElement("div", null, items.map((item, index) => {
5701
+ return /* @__PURE__ */ React36.createElement("div", null, items.map((item, index) => {
5618
5702
  if (item.type === "item") {
5619
- return /* @__PURE__ */ React35.createElement(
5703
+ return /* @__PURE__ */ React36.createElement(
5620
5704
  NavigationItem,
5621
5705
  {
5622
5706
  key: item.id,
@@ -5629,7 +5713,7 @@ function Navigator(props) {
5629
5713
  item.title
5630
5714
  );
5631
5715
  } else if (item.type === "group") {
5632
- return /* @__PURE__ */ React35.createElement(
5716
+ return /* @__PURE__ */ React36.createElement(
5633
5717
  NavigationGroup,
5634
5718
  {
5635
5719
  key: index,
@@ -5647,17 +5731,17 @@ function Navigator(props) {
5647
5731
  Navigator.displayName = "Navigator";
5648
5732
 
5649
5733
  // src/components/PercentageInput/PercentageInput.tsx
5650
- import React36, { useCallback as useCallback14, useMemo as useMemo12, useState as useState12 } from "react";
5734
+ import React37, { useCallback as useCallback14, useMemo as useMemo12, useState as useState12 } from "react";
5651
5735
  import { NumericFormat as NumericFormat2 } from "react-number-format";
5652
5736
  import { styled as styled24, useThemeProps as useThemeProps8 } from "@mui/joy";
5653
5737
  var padDecimal = (value, decimalScale) => {
5654
5738
  const [integer, decimal = ""] = `${value}`.split(".");
5655
5739
  return Number(`${integer}${decimal.padEnd(decimalScale, "0")}`);
5656
5740
  };
5657
- var TextMaskAdapter9 = React36.forwardRef(
5741
+ var TextMaskAdapter9 = React37.forwardRef(
5658
5742
  function TextMaskAdapter10(props, ref) {
5659
5743
  const { onChange, min, max, ...innerProps } = props;
5660
- return /* @__PURE__ */ React36.createElement(
5744
+ return /* @__PURE__ */ React37.createElement(
5661
5745
  NumericFormat2,
5662
5746
  {
5663
5747
  ...innerProps,
@@ -5683,7 +5767,7 @@ var PercentageInputRoot = styled24(Input_default, {
5683
5767
  slot: "Root",
5684
5768
  overridesResolver: (props, styles) => styles.root
5685
5769
  })({});
5686
- var PercentageInput = React36.forwardRef(function PercentageInput2(inProps, ref) {
5770
+ var PercentageInput = React37.forwardRef(function PercentageInput2(inProps, ref) {
5687
5771
  const props = useThemeProps8({ props: inProps, name: "PercentageInput" });
5688
5772
  const {
5689
5773
  name,
@@ -5736,7 +5820,7 @@ var PercentageInput = React36.forwardRef(function PercentageInput2(inProps, ref)
5736
5820
  },
5737
5821
  [setValue, useMinorUnit, maxDecimalScale, min, max]
5738
5822
  );
5739
- return /* @__PURE__ */ React36.createElement(
5823
+ return /* @__PURE__ */ React37.createElement(
5740
5824
  PercentageInputRoot,
5741
5825
  {
5742
5826
  ...innerProps,
@@ -5766,7 +5850,7 @@ var PercentageInput = React36.forwardRef(function PercentageInput2(inProps, ref)
5766
5850
  PercentageInput.displayName = "PercentageInput";
5767
5851
 
5768
5852
  // src/components/ProfileMenu/ProfileMenu.tsx
5769
- import React37, { useCallback as useCallback15, useMemo as useMemo13 } from "react";
5853
+ import React38, { useCallback as useCallback15, useMemo as useMemo13 } from "react";
5770
5854
  import {
5771
5855
  Dropdown as Dropdown2,
5772
5856
  ListDivider,
@@ -5790,7 +5874,7 @@ function ProfileCard(props) {
5790
5874
  () => size === "sm" ? "body-sm" : "body-md",
5791
5875
  [size]
5792
5876
  );
5793
- return /* @__PURE__ */ React37.createElement(StyledProfileCard, { px: 4, py: 2 }, /* @__PURE__ */ React37.createElement(Stack, { direction: "row", gap: 2 }, /* @__PURE__ */ React37.createElement(
5877
+ return /* @__PURE__ */ React38.createElement(StyledProfileCard, { px: 4, py: 2 }, /* @__PURE__ */ React38.createElement(Stack, { direction: "row", gap: 2 }, /* @__PURE__ */ React38.createElement(
5794
5878
  Typography,
5795
5879
  {
5796
5880
  level: nameLevel,
@@ -5798,7 +5882,7 @@ function ProfileCard(props) {
5798
5882
  textColor: "text.primary"
5799
5883
  },
5800
5884
  children
5801
- ), chip && /* @__PURE__ */ React37.createElement(Chip, { size, color: "neutral", variant: "outlined" }, chip)), caption && /* @__PURE__ */ React37.createElement(Typography, { level: captionLevel, textColor: "text.tertiary" }, caption));
5885
+ ), chip && /* @__PURE__ */ React38.createElement(Chip, { size, color: "neutral", variant: "outlined" }, chip)), caption && /* @__PURE__ */ React38.createElement(Typography, { level: captionLevel, textColor: "text.tertiary" }, caption));
5802
5886
  }
5803
5887
  ProfileCard.displayName = "ProfileCard";
5804
5888
  var StyledProfileMenuButton = styled25(MenuButton2, {
@@ -5810,16 +5894,16 @@ var StyledProfileMenuButton = styled25(MenuButton2, {
5810
5894
  }));
5811
5895
  function ProfileMenuButton(props) {
5812
5896
  const { size = "md", src, alt, children, getInitial, ...innerProps } = props;
5813
- return /* @__PURE__ */ React37.createElement(
5897
+ return /* @__PURE__ */ React38.createElement(
5814
5898
  StyledProfileMenuButton,
5815
5899
  {
5816
5900
  variant: "plain",
5817
5901
  color: "neutral",
5818
5902
  size,
5819
- endDecorator: /* @__PURE__ */ React37.createElement(DropdownIcon, null),
5903
+ endDecorator: /* @__PURE__ */ React38.createElement(DropdownIcon, null),
5820
5904
  ...innerProps
5821
5905
  },
5822
- /* @__PURE__ */ React37.createElement(
5906
+ /* @__PURE__ */ React38.createElement(
5823
5907
  Avatar,
5824
5908
  {
5825
5909
  variant: "soft",
@@ -5860,7 +5944,7 @@ function ProfileMenu(props) {
5860
5944
  defaultOpen ?? false,
5861
5945
  useCallback15((value) => onOpenChange?.(value), [onOpenChange])
5862
5946
  );
5863
- return /* @__PURE__ */ React37.createElement(ClickAwayListener5, { onClickAway: () => setOpen(false) }, /* @__PURE__ */ React37.createElement("div", null, /* @__PURE__ */ React37.createElement(Dropdown2, { open }, /* @__PURE__ */ React37.createElement(
5947
+ return /* @__PURE__ */ React38.createElement(ClickAwayListener5, { onClickAway: () => setOpen(false) }, /* @__PURE__ */ React38.createElement("div", null, /* @__PURE__ */ React38.createElement(Dropdown2, { open }, /* @__PURE__ */ React38.createElement(
5864
5948
  ProfileMenuButton,
5865
5949
  {
5866
5950
  size,
@@ -5870,7 +5954,7 @@ function ProfileMenu(props) {
5870
5954
  getInitial
5871
5955
  },
5872
5956
  profile.name
5873
- ), /* @__PURE__ */ React37.createElement(
5957
+ ), /* @__PURE__ */ React38.createElement(
5874
5958
  ProfileMenuRoot,
5875
5959
  {
5876
5960
  size,
@@ -5878,7 +5962,7 @@ function ProfileMenu(props) {
5878
5962
  ...innerProps,
5879
5963
  onClose: () => setOpen(false)
5880
5964
  },
5881
- /* @__PURE__ */ React37.createElement(
5965
+ /* @__PURE__ */ React38.createElement(
5882
5966
  ProfileCard,
5883
5967
  {
5884
5968
  size,
@@ -5887,8 +5971,8 @@ function ProfileMenu(props) {
5887
5971
  },
5888
5972
  profile.name
5889
5973
  ),
5890
- !!menuItems.length && /* @__PURE__ */ React37.createElement(ListDivider, null),
5891
- menuItems.map(({ label, ...menuProps }) => /* @__PURE__ */ React37.createElement(
5974
+ !!menuItems.length && /* @__PURE__ */ React38.createElement(ListDivider, null),
5975
+ menuItems.map(({ label, ...menuProps }) => /* @__PURE__ */ React38.createElement(
5892
5976
  MenuItem,
5893
5977
  {
5894
5978
  ...menuProps,
@@ -5914,15 +5998,15 @@ var RadioGroup = MotionRadioGroup;
5914
5998
  RadioGroup.displayName = "RadioGroup";
5915
5999
 
5916
6000
  // src/components/RadioList/RadioList.tsx
5917
- import React38 from "react";
6001
+ import React39 from "react";
5918
6002
  function RadioList(props) {
5919
6003
  const { items, ...innerProps } = props;
5920
- return /* @__PURE__ */ React38.createElement(RadioGroup, { ...innerProps }, items.map((item) => /* @__PURE__ */ React38.createElement(Radio, { key: `${item.value}`, value: item.value, label: item.label })));
6004
+ return /* @__PURE__ */ React39.createElement(RadioGroup, { ...innerProps }, items.map((item) => /* @__PURE__ */ React39.createElement(Radio, { key: `${item.value}`, value: item.value, label: item.label })));
5921
6005
  }
5922
6006
  RadioList.displayName = "RadioList";
5923
6007
 
5924
6008
  // src/components/Stepper/Stepper.tsx
5925
- import React39 from "react";
6009
+ import React40 from "react";
5926
6010
  import {
5927
6011
  Stepper as JoyStepper,
5928
6012
  Step as JoyStep,
@@ -5955,7 +6039,7 @@ function Stepper(props) {
5955
6039
  inactiveLineColor = "neutral.300",
5956
6040
  activeStep
5957
6041
  } = props;
5958
- return /* @__PURE__ */ React39.createElement(
6042
+ return /* @__PURE__ */ React40.createElement(
5959
6043
  MotionStepper,
5960
6044
  {
5961
6045
  sx: (theme) => ({
@@ -5989,15 +6073,15 @@ function Stepper(props) {
5989
6073
  const completed = activeStep > i + 1;
5990
6074
  const disabled = activeStep < i + 1;
5991
6075
  const hasContent = step.label || step.extraContent;
5992
- return /* @__PURE__ */ React39.createElement(
6076
+ return /* @__PURE__ */ React40.createElement(
5993
6077
  Step,
5994
6078
  {
5995
- indicator: /* @__PURE__ */ React39.createElement(StepIndicator, { variant: "solid", color: "primary" }, completed ? /* @__PURE__ */ React39.createElement(CheckIcon, null) : step.indicatorContent),
6079
+ indicator: /* @__PURE__ */ React40.createElement(StepIndicator, { variant: "solid", color: "primary" }, completed ? /* @__PURE__ */ React40.createElement(CheckIcon, null) : step.indicatorContent),
5996
6080
  active,
5997
6081
  completed,
5998
6082
  disabled
5999
6083
  },
6000
- 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))
6084
+ hasContent && /* @__PURE__ */ React40.createElement(Stack_default, null, step.label && /* @__PURE__ */ React40.createElement(Typography_default, { level: "title-sm" }, step.label), step.extraContent && /* @__PURE__ */ React40.createElement(Typography_default, { level: "body-xs" }, step.extraContent))
6001
6085
  );
6002
6086
  })
6003
6087
  );
@@ -6005,7 +6089,7 @@ function Stepper(props) {
6005
6089
  Stepper.displayName = "Stepper";
6006
6090
 
6007
6091
  // src/components/Switch/Switch.tsx
6008
- import React40 from "react";
6092
+ import React41 from "react";
6009
6093
  import {
6010
6094
  Switch as JoySwitch,
6011
6095
  styled as styled27,
@@ -6031,14 +6115,14 @@ var StyledThumb = styled27(motion28.div)({
6031
6115
  right: "var(--Switch-thumbOffset)"
6032
6116
  }
6033
6117
  });
6034
- var Thumb = (props) => /* @__PURE__ */ React40.createElement(StyledThumb, { ...props, layout: true, transition: spring });
6118
+ var Thumb = (props) => /* @__PURE__ */ React41.createElement(StyledThumb, { ...props, layout: true, transition: spring });
6035
6119
  var spring = {
6036
6120
  type: "spring",
6037
6121
  stiffness: 700,
6038
6122
  damping: 30
6039
6123
  };
6040
6124
  var Switch = (props) => {
6041
- return /* @__PURE__ */ React40.createElement(
6125
+ return /* @__PURE__ */ React41.createElement(
6042
6126
  MotionSwitch,
6043
6127
  {
6044
6128
  ...props,
@@ -6052,7 +6136,7 @@ var Switch = (props) => {
6052
6136
  Switch.displayName = "Switch";
6053
6137
 
6054
6138
  // src/components/Tabs/Tabs.tsx
6055
- import React41, { forwardRef as forwardRef11 } from "react";
6139
+ import React42, { forwardRef as forwardRef11 } from "react";
6056
6140
  import {
6057
6141
  Tabs as JoyTabs,
6058
6142
  Tab as JoyTab,
@@ -6076,14 +6160,14 @@ var StyledTab = styled28(JoyTab)(({ theme }) => ({
6076
6160
  }
6077
6161
  }));
6078
6162
  var Tab = forwardRef11(function Tab2({ startDecorator, endDecorator, children, ...props }, ref) {
6079
- return /* @__PURE__ */ React41.createElement(StyledTab, { ...props, ref }, startDecorator, children, endDecorator);
6163
+ return /* @__PURE__ */ React42.createElement(StyledTab, { ...props, ref }, startDecorator, children, endDecorator);
6080
6164
  });
6081
6165
  Tab.displayName = "Tab";
6082
6166
  var TabList = JoyTabList;
6083
6167
  var TabPanel = JoyTabPanel;
6084
6168
 
6085
6169
  // src/components/ThemeProvider/ThemeProvider.tsx
6086
- import React42 from "react";
6170
+ import React43 from "react";
6087
6171
  import {
6088
6172
  CssBaseline,
6089
6173
  CssVarsProvider,
@@ -6353,7 +6437,7 @@ var defaultTheme = extendTheme({
6353
6437
  });
6354
6438
  function ThemeProvider(props) {
6355
6439
  const theme = props.theme || defaultTheme;
6356
- return /* @__PURE__ */ React42.createElement(React42.Fragment, null, /* @__PURE__ */ React42.createElement(CssVarsProvider, { theme }, /* @__PURE__ */ React42.createElement(CssBaseline, null), props.children));
6440
+ return /* @__PURE__ */ React43.createElement(React43.Fragment, null, /* @__PURE__ */ React43.createElement(CssVarsProvider, { theme }, /* @__PURE__ */ React43.createElement(CssBaseline, null), props.children));
6357
6441
  }
6358
6442
  ThemeProvider.displayName = "ThemeProvider";
6359
6443
  export {
@@ -6400,6 +6484,7 @@ export {
6400
6484
  FormLabel,
6401
6485
  Grid,
6402
6486
  IconButton,
6487
+ IconMenuButton,
6403
6488
  InfoSign,
6404
6489
  Input,
6405
6490
  InsetDrawer,