@ceed/cds 1.40.3-next.5 → 1.40.3

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/dist/index.cjs CHANGED
@@ -344,7 +344,7 @@ function Alert(inProps) {
344
344
  Alert.displayName = "Alert";
345
345
 
346
346
  // src/components/Autocomplete/Autocomplete.tsx
347
- var import_react7 = __toESM(require("react"));
347
+ var import_react6 = __toESM(require("react"));
348
348
  var import_joy10 = require("@mui/joy");
349
349
  var import_base = require("@mui/base");
350
350
  var import_Close = __toESM(require("@mui/icons-material/Close"));
@@ -441,37 +441,6 @@ function useControlledState(controlledValue, defaultValue, onChange) {
441
441
  return [displayValue, handleChange, isControlled];
442
442
  }
443
443
 
444
- // src/libs/slot-props.ts
445
- var import_react6 = require("react");
446
- function assignRef(ref, value) {
447
- if (typeof ref === "function") ref(value);
448
- else if (ref) ref.current = value;
449
- }
450
- function mergeRefs(...refs) {
451
- const live = refs.filter((r) => r != null);
452
- if (live.length === 0) return void 0;
453
- if (live.length === 1) return live[0];
454
- return (value) => live.forEach((r) => assignRef(r, value));
455
- }
456
- function useMergedRef(a, b) {
457
- return (0, import_react6.useMemo)(() => mergeRefs(a, b), [a, b]);
458
- }
459
- function useSlotRef(slotProp, ref) {
460
- const isFunctionForm = typeof slotProp === "function";
461
- const slotRef = isFunctionForm ? void 0 : slotProp?.ref;
462
- const mergedRef = useMergedRef(slotRef, ref);
463
- return (0, import_react6.useMemo)(() => {
464
- if (isFunctionForm) {
465
- return ((ownerState) => {
466
- const resolved = slotProp(ownerState) ?? {};
467
- const merged = mergeRefs(resolved.ref, ref);
468
- return merged ? { ...resolved, ref: merged } : { ...resolved };
469
- });
470
- }
471
- return mergedRef ? { ...slotProp, ref: mergedRef } : { ...slotProp };
472
- }, [isFunctionForm, slotProp, mergedRef, ref]);
473
- }
474
-
475
444
  // src/components/Autocomplete/Autocomplete.tsx
476
445
  var AutocompletePopper = (0, import_joy10.styled)(import_base2.Popper, {
477
446
  name: "Autocomplete",
@@ -484,7 +453,7 @@ var itemHeightMap = {
484
453
  md: { default: 36, secondary: 55 },
485
454
  lg: { default: 44, secondary: 65 }
486
455
  };
487
- var AutocompleteListBox = import_react7.default.forwardRef((props, ref) => {
456
+ var AutocompleteListBox = import_react6.default.forwardRef((props, ref) => {
488
457
  const {
489
458
  anchorEl,
490
459
  open,
@@ -494,13 +463,13 @@ var AutocompleteListBox = import_react7.default.forwardRef((props, ref) => {
494
463
  ownerState: { loading, size: fontSize = "md" },
495
464
  ...innerProps
496
465
  } = props;
497
- const parentRef = (0, import_react7.useRef)(null);
466
+ const parentRef = (0, import_react6.useRef)(null);
498
467
  const isGrouped = children[0].every((child) => child.hasOwnProperty("group"));
499
- const itemHeight = (0, import_react7.useMemo)(() => {
468
+ const itemHeight = (0, import_react6.useMemo)(() => {
500
469
  const heights = itemHeightMap[fontSize ?? "md"];
501
470
  return hasSecondaryText ? heights.secondary : heights.default;
502
471
  }, [fontSize, hasSecondaryText]);
503
- const renderTargets = (0, import_react7.useMemo)(() => {
472
+ const renderTargets = (0, import_react6.useMemo)(() => {
504
473
  if (loading) {
505
474
  return [children[1]];
506
475
  }
@@ -509,7 +478,7 @@ var AutocompleteListBox = import_react7.default.forwardRef((props, ref) => {
509
478
  }
510
479
  if (isGrouped) {
511
480
  return children[0].flatMap((child) => [
512
- /* @__PURE__ */ import_react7.default.createElement(import_joy10.ListSubheader, { key: child.key, component: "li" }, child.group),
481
+ /* @__PURE__ */ import_react6.default.createElement(import_joy10.ListSubheader, { key: child.key, component: "li" }, child.group),
513
482
  ...child.children
514
483
  ]);
515
484
  }
@@ -523,12 +492,12 @@ var AutocompleteListBox = import_react7.default.forwardRef((props, ref) => {
523
492
  overscan: 5
524
493
  });
525
494
  const items = virtualizer.getVirtualItems();
526
- (0, import_react7.useEffect)(() => {
495
+ (0, import_react6.useEffect)(() => {
527
496
  if (open) {
528
497
  virtualizer.measure();
529
498
  }
530
499
  }, [open, virtualizer]);
531
- return /* @__PURE__ */ import_react7.default.createElement(AutocompletePopper, { ref, anchorEl, open, modifiers }, /* @__PURE__ */ import_react7.default.createElement(import_joy10.AutocompleteListbox, { ...innerProps, size: fontSize }, /* @__PURE__ */ import_react7.default.createElement("div", { ref: parentRef, style: { overflow: "auto" } }, /* @__PURE__ */ import_react7.default.createElement(
500
+ return /* @__PURE__ */ import_react6.default.createElement(AutocompletePopper, { ref, anchorEl, open, modifiers }, /* @__PURE__ */ import_react6.default.createElement(import_joy10.AutocompleteListbox, { ...innerProps, size: fontSize }, /* @__PURE__ */ import_react6.default.createElement("div", { ref: parentRef, style: { overflow: "auto" } }, /* @__PURE__ */ import_react6.default.createElement(
532
501
  "div",
533
502
  {
534
503
  style: {
@@ -537,7 +506,7 @@ var AutocompleteListBox = import_react7.default.forwardRef((props, ref) => {
537
506
  }
538
507
  },
539
508
  items.map(
540
- ({ index, size, start, key }) => import_react7.default.cloneElement(renderTargets[index], {
509
+ ({ index, size, start, key }) => import_react6.default.cloneElement(renderTargets[index], {
541
510
  key,
542
511
  style: {
543
512
  position: "absolute",
@@ -549,7 +518,7 @@ var AutocompleteListBox = import_react7.default.forwardRef((props, ref) => {
549
518
  transform: `translateY(${start}px)`,
550
519
  overflow: "visible"
551
520
  },
552
- children: /* @__PURE__ */ import_react7.default.createElement(
521
+ children: /* @__PURE__ */ import_react6.default.createElement(
553
522
  "div",
554
523
  {
555
524
  style: {
@@ -592,7 +561,7 @@ var autocompleteFilterOptions = (0, import_base.createFilterOptions)({
592
561
  }
593
562
  });
594
563
  var getOptionLabel = (option) => `${option.label ?? ""}`;
595
- function AutocompleteInner(props, ref) {
564
+ function Autocomplete(props) {
596
565
  const {
597
566
  label,
598
567
  error,
@@ -611,7 +580,7 @@ function AutocompleteInner(props, ref) {
611
580
  const [rawValue, setValue] = useControlledState(
612
581
  props.value,
613
582
  props.defaultValue ?? null,
614
- (0, import_react7.useCallback)(
583
+ (0, import_react6.useCallback)(
615
584
  (value2) => onChange?.({
616
585
  target: {
617
586
  value: value2,
@@ -622,7 +591,7 @@ function AutocompleteInner(props, ref) {
622
591
  )
623
592
  );
624
593
  const _value = rawValue ?? (props.multiple ? EMPTY_MULTIPLE_VALUE : "");
625
- const options = (0, import_react7.useMemo)(
594
+ const options = (0, import_react6.useMemo)(
626
595
  () => props.options.map((option) => {
627
596
  if (typeof option !== "object") {
628
597
  return {
@@ -634,19 +603,19 @@ function AutocompleteInner(props, ref) {
634
603
  }),
635
604
  [props.options]
636
605
  );
637
- const optionMap = (0, import_react7.useMemo)(() => {
606
+ const optionMap = (0, import_react6.useMemo)(() => {
638
607
  const map = /* @__PURE__ */ new Map();
639
608
  options.forEach((option) => {
640
609
  map.set(option.value, option);
641
610
  });
642
611
  return map;
643
612
  }, [options]);
644
- const value = (0, import_react7.useMemo)(() => {
613
+ const value = (0, import_react6.useMemo)(() => {
645
614
  if (props.loading) {
646
615
  return {
647
616
  value: "",
648
617
  label: "",
649
- startDecorator: /* @__PURE__ */ import_react7.default.createElement(import_joy10.CircularProgress, { size: "sm", color: "neutral", variant: "plain", thickness: 3 })
618
+ startDecorator: /* @__PURE__ */ import_react6.default.createElement(import_joy10.CircularProgress, { size: "sm", color: "neutral", variant: "plain", thickness: 3 })
650
619
  };
651
620
  }
652
621
  if (Array.isArray(_value)) {
@@ -654,33 +623,31 @@ function AutocompleteInner(props, ref) {
654
623
  }
655
624
  return optionMap.get(_value);
656
625
  }, [_value, optionMap, props.loading]);
657
- const applySize = (0, import_react7.useCallback)(
626
+ const applySize = (0, import_react6.useCallback)(
658
627
  (node) => {
659
- return import_react7.default.isValidElement(node) && !props.loading ? import_react7.default.cloneElement(node, { ...{ size } }) : node;
628
+ return import_react6.default.isValidElement(node) && !props.loading ? import_react6.default.cloneElement(node, { ...{ size } }) : node;
660
629
  },
661
630
  [size, props.loading]
662
631
  );
663
- const startDecorator = (0, import_react7.useMemo)(
632
+ const startDecorator = (0, import_react6.useMemo)(
664
633
  () => applySize(value?.startDecorator || props.startDecorator),
665
634
  [value, applySize, props.startDecorator]
666
635
  );
667
- const endDecorator = (0, import_react7.useMemo)(
636
+ const endDecorator = (0, import_react6.useMemo)(
668
637
  () => applySize(value?.endDecorator || props.endDecorator),
669
638
  [value, applySize, props.endDecorator]
670
639
  );
671
- const inputSlotProps = useSlotRef(props.slotProps?.input, ref);
672
- const slotProps = (0, import_react7.useMemo)(
640
+ const slotProps = (0, import_react6.useMemo)(
673
641
  () => ({
674
642
  ...props.slotProps,
675
643
  listbox: {
676
644
  ...props.slotProps?.listbox,
677
645
  hasSecondaryText: options.some((opt) => opt.secondaryText)
678
- },
679
- input: inputSlotProps
646
+ }
680
647
  }),
681
- [options, props.slotProps, inputSlotProps]
648
+ [options, props.slotProps]
682
649
  );
683
- const handleChange = (0, import_react7.useCallback)(
650
+ const handleChange = (0, import_react6.useCallback)(
684
651
  (event, value2) => {
685
652
  const newValue = value2;
686
653
  const _value2 = Array.isArray(newValue) ? newValue.map((value3) => value3.value) : newValue?.value;
@@ -697,7 +664,7 @@ function AutocompleteInner(props, ref) {
697
664
  },
698
665
  [onChangeComplete, setValue, optionMap]
699
666
  );
700
- const autocomplete = /* @__PURE__ */ import_react7.default.createElement(
667
+ const autocomplete = /* @__PURE__ */ import_react6.default.createElement(
701
668
  import_joy10.Autocomplete,
702
669
  {
703
670
  ...innerProps,
@@ -712,10 +679,10 @@ function AutocompleteInner(props, ref) {
712
679
  endDecorator,
713
680
  getOptionLabel,
714
681
  renderTags: (tags, getTagProps) => tags.map((tag, index) => {
715
- const { onClick, key, ...rest } = getTagProps({ index });
682
+ const { onClick, ...rest } = getTagProps({ index });
716
683
  return applySize(
717
- /* @__PURE__ */ import_react7.default.createElement(Chip_default, { key, color: "primary", ...rest }, /* @__PURE__ */ import_react7.default.createElement(Stack_default, { direction: "row", alignItems: "center", gap: 2, py: 0.5 }, tag.value, applySize(
718
- /* @__PURE__ */ import_react7.default.createElement(AutocompleteTagDelete, { color: "primary", variant: "soft", onClick }, /* @__PURE__ */ import_react7.default.createElement(import_Close.default, null))
684
+ /* @__PURE__ */ import_react6.default.createElement(Chip_default, { color: "primary", ...rest }, /* @__PURE__ */ import_react6.default.createElement(Stack_default, { direction: "row", alignItems: "center", gap: 2, py: 0.5 }, tag.value, applySize(
685
+ /* @__PURE__ */ import_react6.default.createElement(AutocompleteTagDelete, { color: "primary", variant: "soft", onClick }, /* @__PURE__ */ import_react6.default.createElement(import_Close.default, null))
719
686
  )))
720
687
  );
721
688
  }),
@@ -724,33 +691,30 @@ function AutocompleteInner(props, ref) {
724
691
  },
725
692
  slotProps,
726
693
  filterOptions: autocompleteFilterOptions,
727
- renderOption: (props2, option) => {
728
- const { key, ...optionProps } = props2;
729
- return /* @__PURE__ */ import_react7.default.createElement(import_joy10.AutocompleteOption, { key, ...optionProps }, option.startDecorator && /* @__PURE__ */ import_react7.default.createElement(
730
- import_joy10.ListItemDecorator,
731
- {
732
- sx: (theme) => ({
733
- marginInlineEnd: `var(--Input-gap, ${theme.spacing(1)})`
734
- })
735
- },
736
- applySize(option.startDecorator)
737
- ), option.secondaryText ? /* @__PURE__ */ import_react7.default.createElement(import_joy10.ListItemContent, { sx: { gap: 0.5 } }, /* @__PURE__ */ import_react7.default.createElement(import_joy10.Typography, { level: "inherit" }, applySize(option.label)), /* @__PURE__ */ import_react7.default.createElement(import_joy10.Typography, { level: secondaryTextLevelMap[size ?? "md"], textColor: "text.tertiary" }, option.secondaryText)) : (
738
- // TODO: haulla에서 사용할 때, label을 ReactNode로 넘기면 에러가 발생함....
739
- applySize(option.label)
740
- ), option.endDecorator && /* @__PURE__ */ import_react7.default.createElement(
741
- import_joy10.ListItemDecorator,
742
- {
743
- sx: (theme) => ({
744
- marginInlineStart: `var(--Input-gap, ${theme.spacing(1)})`
745
- })
746
- },
747
- applySize(option.endDecorator)
748
- ));
749
- },
694
+ renderOption: (props2, option) => /* @__PURE__ */ import_react6.default.createElement(import_joy10.AutocompleteOption, { ...props2 }, option.startDecorator && /* @__PURE__ */ import_react6.default.createElement(
695
+ import_joy10.ListItemDecorator,
696
+ {
697
+ sx: (theme) => ({
698
+ marginInlineEnd: `var(--Input-gap, ${theme.spacing(1)})`
699
+ })
700
+ },
701
+ applySize(option.startDecorator)
702
+ ), option.secondaryText ? /* @__PURE__ */ import_react6.default.createElement(import_joy10.ListItemContent, { sx: { gap: 0.5 } }, /* @__PURE__ */ import_react6.default.createElement(import_joy10.Typography, { level: "inherit" }, applySize(option.label)), /* @__PURE__ */ import_react6.default.createElement(import_joy10.Typography, { level: secondaryTextLevelMap[size ?? "md"], textColor: "text.tertiary" }, option.secondaryText)) : (
703
+ // TODO: haulla에서 사용할 때, label을 ReactNode로 넘기면 에러가 발생함....
704
+ applySize(option.label)
705
+ ), option.endDecorator && /* @__PURE__ */ import_react6.default.createElement(
706
+ import_joy10.ListItemDecorator,
707
+ {
708
+ sx: (theme) => ({
709
+ marginInlineStart: `var(--Input-gap, ${theme.spacing(1)})`
710
+ })
711
+ },
712
+ applySize(option.endDecorator)
713
+ )),
750
714
  renderGroup: (params) => params
751
715
  }
752
716
  );
753
- return /* @__PURE__ */ import_react7.default.createElement(
717
+ return /* @__PURE__ */ import_react6.default.createElement(
754
718
  FormControl_default,
755
719
  {
756
720
  required,
@@ -761,19 +725,18 @@ function AutocompleteInner(props, ref) {
761
725
  sx,
762
726
  className
763
727
  },
764
- label && /* @__PURE__ */ import_react7.default.createElement(FormLabel_default, null, label),
728
+ label && /* @__PURE__ */ import_react6.default.createElement(FormLabel_default, null, label),
765
729
  autocomplete,
766
- helperText && /* @__PURE__ */ import_react7.default.createElement(FormHelperText_default, null, helperText)
730
+ helperText && /* @__PURE__ */ import_react6.default.createElement(FormHelperText_default, null, helperText)
767
731
  );
768
732
  }
769
- var Autocomplete = import_react7.default.forwardRef(AutocompleteInner);
770
733
  Autocomplete.displayName = "Autocomplete";
771
734
 
772
735
  // src/components/Autocomplete/index.ts
773
736
  var Autocomplete_default = Autocomplete;
774
737
 
775
738
  // src/components/Avatar/Avatar.tsx
776
- var import_react8 = __toESM(require("react"));
739
+ var import_react7 = __toESM(require("react"));
777
740
  var import_joy11 = require("@mui/joy");
778
741
  var StyledAvatar = (0, import_joy11.styled)(import_joy11.Avatar, {
779
742
  name: "Avatar",
@@ -795,19 +758,19 @@ var defaultGetInitial = (name) => {
795
758
  return (firstName.charAt(0) + lastName.charAt(0)).toUpperCase();
796
759
  }
797
760
  };
798
- var Avatar = (0, import_react8.forwardRef)(function Avatar2(inProps, ref) {
761
+ var Avatar = (0, import_react7.forwardRef)(function Avatar2(inProps, ref) {
799
762
  const props = (0, import_joy11.useThemeProps)({
800
763
  props: inProps,
801
764
  name: "Avatar"
802
765
  });
803
766
  const { children, getInitial = defaultGetInitial, ...inheritProps } = props;
804
- const calcChildren = (0, import_react8.useMemo)(() => {
767
+ const calcChildren = (0, import_react7.useMemo)(() => {
805
768
  if (typeof children === "string") {
806
769
  return getInitial?.(children) ?? "";
807
770
  }
808
771
  return children;
809
772
  }, [children, getInitial]);
810
- return /* @__PURE__ */ import_react8.default.createElement(StyledAvatar, { ...inheritProps, children: calcChildren, ref });
773
+ return /* @__PURE__ */ import_react7.default.createElement(StyledAvatar, { ...inheritProps, children: calcChildren, ref });
811
774
  });
812
775
 
813
776
  // src/components/Box/Box.tsx
@@ -821,16 +784,16 @@ Box.displayName = "Box";
821
784
  var Box_default = Box;
822
785
 
823
786
  // src/components/Breadcrumbs/Breadcrumbs.tsx
824
- var import_react11 = __toESM(require("react"));
787
+ var import_react10 = __toESM(require("react"));
825
788
  var import_joy16 = require("@mui/joy");
826
789
 
827
790
  // src/components/Menu/Menu.tsx
828
- var import_react9 = __toESM(require("react"));
791
+ var import_react8 = __toESM(require("react"));
829
792
  var import_joy13 = require("@mui/joy");
830
793
  var import_framer_motion10 = require("framer-motion");
831
794
  var MotionMenu = (0, import_framer_motion10.motion)(import_joy13.Menu);
832
795
  var Menu = (props) => {
833
- return /* @__PURE__ */ import_react9.default.createElement(MotionMenu, { ...props });
796
+ return /* @__PURE__ */ import_react8.default.createElement(MotionMenu, { ...props });
834
797
  };
835
798
  Menu.displayName = "Menu";
836
799
  var MenuItem = import_joy13.MenuItem;
@@ -839,22 +802,22 @@ var MenuItem = import_joy13.MenuItem;
839
802
  var Menu_default = Menu;
840
803
 
841
804
  // src/components/Dropdown/Dropdown.tsx
842
- var import_react10 = __toESM(require("react"));
805
+ var import_react9 = __toESM(require("react"));
843
806
  var import_joy14 = require("@mui/joy");
844
807
  var import_joy15 = require("@mui/joy");
845
808
  var import_useMenuButton = require("@mui/base/useMenuButton");
846
- var DropdownNestedRegistryContext = (0, import_react10.createContext)(null);
809
+ var DropdownNestedRegistryContext = (0, import_react9.createContext)(null);
847
810
  function Dropdown({ open: openProp, defaultOpen = false, onOpenChange, ...rest }) {
848
- const [nestedCount, setNestedCount] = (0, import_react10.useState)(0);
811
+ const [nestedCount, setNestedCount] = (0, import_react9.useState)(0);
849
812
  const [open, setOpen] = useControlledState(openProp, defaultOpen);
850
- const registry = (0, import_react10.useMemo)(
813
+ const registry = (0, import_react9.useMemo)(
851
814
  () => ({
852
815
  register: () => setNestedCount((c) => c + 1),
853
816
  unregister: () => setNestedCount((c) => Math.max(0, c - 1))
854
817
  }),
855
818
  []
856
819
  );
857
- const handleOpenChange = (0, import_react10.useCallback)(
820
+ const handleOpenChange = (0, import_react9.useCallback)(
858
821
  (event, isOpen) => {
859
822
  if (nestedCount > 0 && !isOpen && event?.type === "blur") {
860
823
  return;
@@ -864,7 +827,7 @@ function Dropdown({ open: openProp, defaultOpen = false, onOpenChange, ...rest }
864
827
  },
865
828
  [nestedCount, setOpen, onOpenChange]
866
829
  );
867
- return /* @__PURE__ */ import_react10.default.createElement(DropdownNestedRegistryContext.Provider, { value: registry }, /* @__PURE__ */ import_react10.default.createElement(import_joy14.Dropdown, { open, onOpenChange: handleOpenChange, ...rest }));
830
+ return /* @__PURE__ */ import_react9.default.createElement(DropdownNestedRegistryContext.Provider, { value: registry }, /* @__PURE__ */ import_react9.default.createElement(import_joy14.Dropdown, { open, onOpenChange: handleOpenChange, ...rest }));
868
831
  }
869
832
  Dropdown.displayName = "Dropdown";
870
833
 
@@ -887,29 +850,29 @@ function Breadcrumbs(props) {
887
850
  } = props;
888
851
  const Crumb = (props2) => {
889
852
  if (props2.type === "link" && Link4) {
890
- return /* @__PURE__ */ import_react11.default.createElement(Link4, { to: props2.linkHref, href: props2.linkHref, ...linkProps }, props2.label);
853
+ return /* @__PURE__ */ import_react10.default.createElement(Link4, { to: props2.linkHref, href: props2.linkHref, ...linkProps }, props2.label);
891
854
  } else {
892
- return /* @__PURE__ */ import_react11.default.createElement(Typography_default, null, props2.label);
855
+ return /* @__PURE__ */ import_react10.default.createElement(Typography_default, null, props2.label);
893
856
  }
894
857
  };
895
858
  if (!collapsed) {
896
- return /* @__PURE__ */ import_react11.default.createElement(import_joy16.Breadcrumbs, { size, slots: restSlots, slotProps: restSlotProps, ...innerProps }, crumbs.map((crumb, index) => /* @__PURE__ */ import_react11.default.createElement(Crumb, { key: `breadcrumb-${index}`, ...crumb })));
859
+ return /* @__PURE__ */ import_react10.default.createElement(import_joy16.Breadcrumbs, { size, slots: restSlots, slotProps: restSlotProps, ...innerProps }, crumbs.map((crumb, index) => /* @__PURE__ */ import_react10.default.createElement(Crumb, { key: `breadcrumb-${index}`, ...crumb })));
897
860
  }
898
861
  const _endCrumbCount = Math.max(1, endCrumbCount);
899
- const frontCrumbs = crumbs.slice(0, startCrumbCount).map((crumb) => /* @__PURE__ */ import_react11.default.createElement(Crumb, { key: `breadcrumb-${crumb.label}`, ...crumb }));
900
- const backCrumbs = (startCrumbCount + _endCrumbCount > crumbs.length ? crumbs.slice(startCrumbCount) : crumbs.slice(-_endCrumbCount)).map((crumb) => /* @__PURE__ */ import_react11.default.createElement(Crumb, { key: `breadcrumb-${crumb.label}`, ...crumb }));
901
- const collapsedCrumbs = crumbs.slice(startCrumbCount, -_endCrumbCount).map((crumb) => /* @__PURE__ */ import_react11.default.createElement(MenuItem, { key: `breadcrumb-${crumb.label}` }, /* @__PURE__ */ import_react11.default.createElement(Crumb, { ...crumb })));
902
- return /* @__PURE__ */ import_react11.default.createElement(import_joy16.Breadcrumbs, { size, slots: restSlots, slotProps: restSlotProps, ...innerProps }, frontCrumbs, collapsedCrumbs.length && /* @__PURE__ */ import_react11.default.createElement(Dropdown_default, null, /* @__PURE__ */ import_react11.default.createElement(import_joy16.MenuButton, { size, variant: "plain" }, "..."), /* @__PURE__ */ import_react11.default.createElement(Menu_default, { size }, collapsedCrumbs)), backCrumbs);
862
+ const frontCrumbs = crumbs.slice(0, startCrumbCount).map((crumb) => /* @__PURE__ */ import_react10.default.createElement(Crumb, { key: `breadcrumb-${crumb.label}`, ...crumb }));
863
+ const backCrumbs = (startCrumbCount + _endCrumbCount > crumbs.length ? crumbs.slice(startCrumbCount) : crumbs.slice(-_endCrumbCount)).map((crumb) => /* @__PURE__ */ import_react10.default.createElement(Crumb, { key: `breadcrumb-${crumb.label}`, ...crumb }));
864
+ const collapsedCrumbs = crumbs.slice(startCrumbCount, -_endCrumbCount).map((crumb) => /* @__PURE__ */ import_react10.default.createElement(MenuItem, { key: `breadcrumb-${crumb.label}` }, /* @__PURE__ */ import_react10.default.createElement(Crumb, { ...crumb })));
865
+ return /* @__PURE__ */ import_react10.default.createElement(import_joy16.Breadcrumbs, { size, slots: restSlots, slotProps: restSlotProps, ...innerProps }, frontCrumbs, collapsedCrumbs.length && /* @__PURE__ */ import_react10.default.createElement(Dropdown_default, null, /* @__PURE__ */ import_react10.default.createElement(import_joy16.MenuButton, { size, variant: "plain" }, "..."), /* @__PURE__ */ import_react10.default.createElement(Menu_default, { size }, collapsedCrumbs)), backCrumbs);
903
866
  }
904
867
  Breadcrumbs.displayName = "Breadcrumbs";
905
868
 
906
869
  // src/components/Button/Button.tsx
907
- var import_react12 = __toESM(require("react"));
870
+ var import_react11 = __toESM(require("react"));
908
871
  var import_joy17 = require("@mui/joy");
909
872
  var import_framer_motion11 = require("framer-motion");
910
873
  var MotionButton = (0, import_framer_motion11.motion)(import_joy17.Button);
911
- var Button = (0, import_react12.forwardRef)(({ ...props }, ref) => {
912
- return /* @__PURE__ */ import_react12.default.createElement(MotionButton, { ref, ...props });
874
+ var Button = (0, import_react11.forwardRef)(({ ...props }, ref) => {
875
+ return /* @__PURE__ */ import_react11.default.createElement(MotionButton, { ref, ...props });
913
876
  });
914
877
  Button.displayName = "Button";
915
878
 
@@ -917,19 +880,19 @@ Button.displayName = "Button";
917
880
  var Button_default = Button;
918
881
 
919
882
  // src/components/Calendar/Calendar.tsx
920
- var import_react16 = __toESM(require("react"));
883
+ var import_react15 = __toESM(require("react"));
921
884
  var import_joy20 = require("@mui/joy");
922
885
  var import_ChevronLeft = __toESM(require("@mui/icons-material/ChevronLeft"));
923
886
  var import_ChevronRight = __toESM(require("@mui/icons-material/ChevronRight"));
924
887
  var import_framer_motion13 = require("framer-motion");
925
888
 
926
889
  // src/components/Tooltip/Tooltip.tsx
927
- var import_react13 = __toESM(require("react"));
890
+ var import_react12 = __toESM(require("react"));
928
891
  var import_joy18 = require("@mui/joy");
929
892
  var import_framer_motion12 = require("framer-motion");
930
893
  var MotionTooltip = (0, import_framer_motion12.motion)(import_joy18.Tooltip);
931
894
  var Tooltip = (props) => {
932
- return /* @__PURE__ */ import_react13.default.createElement(MotionTooltip, { ...props });
895
+ return /* @__PURE__ */ import_react12.default.createElement(MotionTooltip, { ...props });
933
896
  };
934
897
  Tooltip.displayName = "Tooltip";
935
898
 
@@ -1011,43 +974,43 @@ var isSameMonth = (date1, date2) => {
1011
974
  };
1012
975
 
1013
976
  // src/components/Calendar/hooks/use-calendar-props.ts
1014
- var import_react14 = require("react");
977
+ var import_react13 = require("react");
1015
978
  var import_joy19 = require("@mui/joy");
1016
979
  var resolveView = (view, views) => {
1017
980
  return views.includes(view) ? view : views[0];
1018
981
  };
1019
982
  var useCalendarProps = (inProps) => {
1020
- const [uncontrolledView, setUncontrolledView] = (0, import_react14.useState)(
983
+ const [uncontrolledView, setUncontrolledView] = (0, import_react13.useState)(
1021
984
  () => resolveView(inProps.view || "day", inProps.views || ["day", "month"])
1022
985
  );
1023
- const [uncontrolledValue, setUncontrolledValue] = (0, import_react14.useState)(
986
+ const [uncontrolledValue, setUncontrolledValue] = (0, import_react13.useState)(
1024
987
  inProps.defaultValue
1025
988
  );
1026
- const [viewMonth, setViewMonth] = (0, import_react14.useState)(() => {
989
+ const [viewMonth, setViewMonth] = (0, import_react13.useState)(() => {
1027
990
  const today = /* @__PURE__ */ new Date();
1028
991
  today.setDate(1);
1029
992
  today.setHours(0, 0, 0, 0);
1030
993
  return inProps.value?.[0] || inProps.defaultValue?.[0] || today;
1031
994
  });
1032
- const [[page, direction], setPage] = (0, import_react14.useState)([0, 0]);
995
+ const [[page, direction], setPage] = (0, import_react13.useState)([0, 0]);
1033
996
  const resolvedView = inProps.view ?? uncontrolledView;
1034
- const resolvedMinDate = (0, import_react14.useMemo)(() => {
997
+ const resolvedMinDate = (0, import_react13.useMemo)(() => {
1035
998
  const minDate = inProps.minDate || /* @__PURE__ */ new Date(0);
1036
999
  minDate.setHours(0, 0, 0, 0);
1037
1000
  return minDate;
1038
1001
  }, [inProps.minDate]);
1039
- const resolvedMaxDate = (0, import_react14.useMemo)(() => {
1002
+ const resolvedMaxDate = (0, import_react13.useMemo)(() => {
1040
1003
  const maxDate = inProps.maxDate || /* @__PURE__ */ new Date(864e13);
1041
1004
  maxDate.setHours(0, 0, 0, 0);
1042
1005
  return maxDate;
1043
1006
  }, [inProps.maxDate]);
1044
- const paginate = (0, import_react14.useCallback)(
1007
+ const paginate = (0, import_react13.useCallback)(
1045
1008
  (newDirection) => {
1046
1009
  setPage([page + newDirection, newDirection]);
1047
1010
  },
1048
1011
  [page]
1049
1012
  );
1050
- const handleViewMonthChange = (0, import_react14.useCallback)(
1013
+ const handleViewMonthChange = (0, import_react13.useCallback)(
1051
1014
  (newMonth) => {
1052
1015
  setViewMonth(newMonth);
1053
1016
  if (resolvedView === "month") {
@@ -1095,22 +1058,22 @@ var useCalendarProps = (inProps) => {
1095
1058
  },
1096
1059
  name: "Calendar"
1097
1060
  });
1098
- const ownerState = (0, import_react14.useMemo)(() => ({ ...props, viewMonth, direction }), [props, viewMonth, direction]);
1061
+ const ownerState = (0, import_react13.useMemo)(() => ({ ...props, viewMonth, direction }), [props, viewMonth, direction]);
1099
1062
  return [props, ownerState];
1100
1063
  };
1101
1064
 
1102
1065
  // src/components/Calendar/hooks/use-calendar.ts
1103
- var import_react15 = require("react");
1066
+ var import_react14 = require("react");
1104
1067
  var useCalendar = (ownerState) => {
1105
- const [localHoverDay, setLocalHoverDay] = (0, import_react15.useState)(null);
1106
- const [localHoverMonth, setLocalHoverMonth] = (0, import_react15.useState)(null);
1068
+ const [localHoverDay, setLocalHoverDay] = (0, import_react14.useState)(null);
1069
+ const [localHoverMonth, setLocalHoverMonth] = (0, import_react14.useState)(null);
1107
1070
  const hoverDay = ownerState.hoverDay !== void 0 ? ownerState.hoverDay : localHoverDay;
1108
1071
  const setHoverDay = ownerState.onHoverDayChange ?? setLocalHoverDay;
1109
1072
  const hoverMonth = ownerState.hoverMonth !== void 0 ? ownerState.hoverMonth : localHoverMonth;
1110
1073
  const setHoverMonth = ownerState.onHoverMonthChange ?? setLocalHoverMonth;
1111
1074
  return {
1112
1075
  calendarTitle: ownerState.view === "month" ? getYearName(ownerState.viewMonth, ownerState.locale || "default") : getMonthName(ownerState.viewMonth, ownerState.locale || "default"),
1113
- onPrev: (0, import_react15.useCallback)(() => {
1076
+ onPrev: (0, import_react14.useCallback)(() => {
1114
1077
  if (ownerState.view === "day") {
1115
1078
  const currentDate = new Date(ownerState.viewMonth || /* @__PURE__ */ new Date());
1116
1079
  const currentYear = currentDate.getFullYear();
@@ -1127,7 +1090,7 @@ var useCalendar = (ownerState) => {
1127
1090
  ownerState.onMonthChange?.(prevYear);
1128
1091
  }
1129
1092
  }, [ownerState.onMonthChange, ownerState.viewMonth, ownerState.view]),
1130
- onNext: (0, import_react15.useCallback)(() => {
1093
+ onNext: (0, import_react14.useCallback)(() => {
1131
1094
  if (ownerState.view === "day") {
1132
1095
  const currentDate = new Date(ownerState.viewMonth || /* @__PURE__ */ new Date());
1133
1096
  const currentYear = currentDate.getFullYear();
@@ -1144,7 +1107,7 @@ var useCalendar = (ownerState) => {
1144
1107
  ownerState.onMonthChange?.(nextYear);
1145
1108
  }
1146
1109
  }, [ownerState.onMonthChange, ownerState.viewMonth, ownerState.view]),
1147
- getDayCellProps: (0, import_react15.useCallback)(
1110
+ getDayCellProps: (0, import_react14.useCallback)(
1148
1111
  (day) => {
1149
1112
  const thisDay = new Date(ownerState.viewMonth || /* @__PURE__ */ new Date());
1150
1113
  thisDay.setHours(0, 0, 0, 0);
@@ -1159,7 +1122,7 @@ var useCalendar = (ownerState) => {
1159
1122
  },
1160
1123
  [ownerState.rangeSelection, ownerState.value, ownerState.viewMonth, hoverDay]
1161
1124
  ),
1162
- getMonthCellProps: (0, import_react15.useCallback)(
1125
+ getMonthCellProps: (0, import_react14.useCallback)(
1163
1126
  (monthIndex) => {
1164
1127
  const thisMonth = new Date(ownerState.viewMonth || /* @__PURE__ */ new Date());
1165
1128
  thisMonth.setDate(1);
@@ -1176,7 +1139,7 @@ var useCalendar = (ownerState) => {
1176
1139
  },
1177
1140
  [ownerState.rangeSelection, ownerState.value, ownerState.viewMonth, hoverMonth]
1178
1141
  ),
1179
- getPickerDayProps: (0, import_react15.useCallback)(
1142
+ getPickerDayProps: (0, import_react14.useCallback)(
1180
1143
  (day) => {
1181
1144
  const thisDay = new Date(ownerState.viewMonth || /* @__PURE__ */ new Date());
1182
1145
  thisDay.setHours(0, 0, 0, 0);
@@ -1230,7 +1193,7 @@ var useCalendar = (ownerState) => {
1230
1193
  hoverDay
1231
1194
  ]
1232
1195
  ),
1233
- getPickerMonthProps: (0, import_react15.useCallback)(
1196
+ getPickerMonthProps: (0, import_react14.useCallback)(
1234
1197
  (monthIndex) => {
1235
1198
  const thisMonth = new Date(ownerState.viewMonth || /* @__PURE__ */ new Date());
1236
1199
  thisMonth.setDate(1);
@@ -1527,9 +1490,9 @@ var swipePower = (offset, velocity) => {
1527
1490
  var PickerDays = (props) => {
1528
1491
  const { ownerState } = props;
1529
1492
  const { getPickerDayProps, getDayCellProps } = useCalendar(ownerState);
1530
- const calendarDates = (0, import_react16.useMemo)(() => getCalendarDates(ownerState.viewMonth), [ownerState.viewMonth]);
1531
- const weekdayNames = (0, import_react16.useMemo)(() => getWeekdayNames(ownerState.locale || "default"), [ownerState.locale]);
1532
- return /* @__PURE__ */ import_react16.default.createElement(CalendarViewContainer, { calendarType: "datePicker" }, /* @__PURE__ */ import_react16.default.createElement(import_framer_motion13.AnimatePresence, { initial: false, custom: ownerState.direction }, /* @__PURE__ */ import_react16.default.createElement(
1493
+ const calendarDates = (0, import_react15.useMemo)(() => getCalendarDates(ownerState.viewMonth), [ownerState.viewMonth]);
1494
+ const weekdayNames = (0, import_react15.useMemo)(() => getWeekdayNames(ownerState.locale || "default"), [ownerState.locale]);
1495
+ return /* @__PURE__ */ import_react15.default.createElement(CalendarViewContainer, { calendarType: "datePicker" }, /* @__PURE__ */ import_react15.default.createElement(import_framer_motion13.AnimatePresence, { initial: false, custom: ownerState.direction }, /* @__PURE__ */ import_react15.default.createElement(
1533
1496
  CalendarViewTable,
1534
1497
  {
1535
1498
  key: `${ownerState.viewMonth.toString()}_${ownerState.direction}`,
@@ -1558,10 +1521,10 @@ var PickerDays = (props) => {
1558
1521
  }
1559
1522
  }
1560
1523
  },
1561
- /* @__PURE__ */ import_react16.default.createElement(CalendarWeekHeaderContainer, null, /* @__PURE__ */ import_react16.default.createElement("tr", null, weekdayNames.map((name, i) => /* @__PURE__ */ import_react16.default.createElement(import_react16.Fragment, { key: `${ownerState.viewMonth}_${name}_${i}` }, /* @__PURE__ */ import_react16.default.createElement("th", null, /* @__PURE__ */ import_react16.default.createElement(Typography_default, { level: "body-xs", textAlign: "center" }, name)), i < 6 && /* @__PURE__ */ import_react16.default.createElement("th", { style: { width: 4 }, "aria-hidden": "true", "aria-description": "cell-gap" }))))),
1562
- /* @__PURE__ */ import_react16.default.createElement(CalendarDayPickerContainer, null, calendarDates.map((weekDates, rowIndex) => /* @__PURE__ */ import_react16.default.createElement(import_react16.Fragment, { key: `${ownerState.viewMonth}_${rowIndex}` }, /* @__PURE__ */ import_react16.default.createElement("tr", null, weekDates.map(
1563
- (date, i) => date ? /* @__PURE__ */ import_react16.default.createElement(import_react16.Fragment, { key: `${ownerState.viewMonth}_${date}_${i}` }, /* @__PURE__ */ import_react16.default.createElement(CalendarDayCell, { ...getDayCellProps(date) }, /* @__PURE__ */ import_react16.default.createElement(CalendarDay, { size: "sm", variant: "plain", color: "neutral", ...getPickerDayProps(date) }, date)), i < 6 && /* @__PURE__ */ import_react16.default.createElement("td", { "aria-hidden": "true", "aria-description": "cell-gap" })) : /* @__PURE__ */ import_react16.default.createElement(import_react16.Fragment, { key: `${ownerState.viewMonth}_${i}` }, /* @__PURE__ */ import_react16.default.createElement("td", null), i < 6 && /* @__PURE__ */ import_react16.default.createElement("td", { "aria-hidden": "true", "aria-description": "cell-gap" }))
1564
- )), rowIndex < calendarDates.length - 1 && /* @__PURE__ */ import_react16.default.createElement("tr", { "aria-hidden": "true", "aria-description": "row-gap" }, /* @__PURE__ */ import_react16.default.createElement("td", { colSpan: 13, style: { height: 4 } })))))
1524
+ /* @__PURE__ */ import_react15.default.createElement(CalendarWeekHeaderContainer, null, /* @__PURE__ */ import_react15.default.createElement("tr", null, weekdayNames.map((name, i) => /* @__PURE__ */ import_react15.default.createElement(import_react15.Fragment, { key: `${ownerState.viewMonth}_${name}_${i}` }, /* @__PURE__ */ import_react15.default.createElement("th", null, /* @__PURE__ */ import_react15.default.createElement(Typography_default, { level: "body-xs", textAlign: "center" }, name)), i < 6 && /* @__PURE__ */ import_react15.default.createElement("th", { style: { width: 4 }, "aria-hidden": "true", "aria-description": "cell-gap" }))))),
1525
+ /* @__PURE__ */ import_react15.default.createElement(CalendarDayPickerContainer, null, calendarDates.map((weekDates, rowIndex) => /* @__PURE__ */ import_react15.default.createElement(import_react15.Fragment, { key: `${ownerState.viewMonth}_${rowIndex}` }, /* @__PURE__ */ import_react15.default.createElement("tr", null, weekDates.map(
1526
+ (date, i) => date ? /* @__PURE__ */ import_react15.default.createElement(import_react15.Fragment, { key: `${ownerState.viewMonth}_${date}_${i}` }, /* @__PURE__ */ import_react15.default.createElement(CalendarDayCell, { ...getDayCellProps(date) }, /* @__PURE__ */ import_react15.default.createElement(CalendarDay, { size: "sm", variant: "plain", color: "neutral", ...getPickerDayProps(date) }, date)), i < 6 && /* @__PURE__ */ import_react15.default.createElement("td", { "aria-hidden": "true", "aria-description": "cell-gap" })) : /* @__PURE__ */ import_react15.default.createElement(import_react15.Fragment, { key: `${ownerState.viewMonth}_${i}` }, /* @__PURE__ */ import_react15.default.createElement("td", null), i < 6 && /* @__PURE__ */ import_react15.default.createElement("td", { "aria-hidden": "true", "aria-description": "cell-gap" }))
1527
+ )), rowIndex < calendarDates.length - 1 && /* @__PURE__ */ import_react15.default.createElement("tr", { "aria-hidden": "true", "aria-description": "row-gap" }, /* @__PURE__ */ import_react15.default.createElement("td", { colSpan: 13, style: { height: 4 } })))))
1565
1528
  )));
1566
1529
  };
1567
1530
  var PickerMonths = (props) => {
@@ -1578,7 +1541,7 @@ var PickerMonths = (props) => {
1578
1541
  [[]]
1579
1542
  );
1580
1543
  const isMonthPicker = !ownerState.views?.find((view) => view === "day");
1581
- return /* @__PURE__ */ import_react16.default.createElement(CalendarViewContainer, { calendarType: isMonthPicker ? "monthPicker" : "datePicker" }, /* @__PURE__ */ import_react16.default.createElement(import_framer_motion13.AnimatePresence, { initial: false, custom: ownerState.direction }, /* @__PURE__ */ import_react16.default.createElement(
1544
+ return /* @__PURE__ */ import_react15.default.createElement(CalendarViewContainer, { calendarType: isMonthPicker ? "monthPicker" : "datePicker" }, /* @__PURE__ */ import_react15.default.createElement(import_framer_motion13.AnimatePresence, { initial: false, custom: ownerState.direction }, /* @__PURE__ */ import_react15.default.createElement(
1582
1545
  CalendarViewTable,
1583
1546
  {
1584
1547
  key: `${ownerState.viewMonth.getFullYear()}_${ownerState.direction}`,
@@ -1607,16 +1570,16 @@ var PickerMonths = (props) => {
1607
1570
  }
1608
1571
  }
1609
1572
  },
1610
- /* @__PURE__ */ import_react16.default.createElement("tbody", null, chunkedMonths.map((months, i) => /* @__PURE__ */ import_react16.default.createElement(import_react16.Fragment, { key: months.join("_") }, /* @__PURE__ */ import_react16.default.createElement("tr", null, months.map((monthIndex, j) => /* @__PURE__ */ import_react16.default.createElement(import_react16.Fragment, { key: monthIndex }, /* @__PURE__ */ import_react16.default.createElement(CalendarMonthCell, { ...getMonthCellProps(monthIndex) }, /* @__PURE__ */ import_react16.default.createElement(CalendarMonth, { size: "sm", variant: "plain", color: "neutral", ...getPickerMonthProps(monthIndex) }, getMonthNameFromIndex(monthIndex, ownerState.locale))), j < 3 && /* @__PURE__ */ import_react16.default.createElement("td", { style: { width: 4 }, "aria-hidden": "true", "aria-description": "cell-gap" })))), i < chunkedMonths.length - 1 && /* @__PURE__ */ import_react16.default.createElement("tr", { "aria-hidden": "true", "aria-description": "row-gap" }, /* @__PURE__ */ import_react16.default.createElement("td", { colSpan: 7, style: { height: 4 } })))))
1573
+ /* @__PURE__ */ import_react15.default.createElement("tbody", null, chunkedMonths.map((months, i) => /* @__PURE__ */ import_react15.default.createElement(import_react15.Fragment, { key: months.join("_") }, /* @__PURE__ */ import_react15.default.createElement("tr", null, months.map((monthIndex, j) => /* @__PURE__ */ import_react15.default.createElement(import_react15.Fragment, { key: monthIndex }, /* @__PURE__ */ import_react15.default.createElement(CalendarMonthCell, { ...getMonthCellProps(monthIndex) }, /* @__PURE__ */ import_react15.default.createElement(CalendarMonth, { size: "sm", variant: "plain", color: "neutral", ...getPickerMonthProps(monthIndex) }, getMonthNameFromIndex(monthIndex, ownerState.locale))), j < 3 && /* @__PURE__ */ import_react15.default.createElement("td", { style: { width: 4 }, "aria-hidden": "true", "aria-description": "cell-gap" })))), i < chunkedMonths.length - 1 && /* @__PURE__ */ import_react15.default.createElement("tr", { "aria-hidden": "true", "aria-description": "row-gap" }, /* @__PURE__ */ import_react15.default.createElement("td", { colSpan: 7, style: { height: 4 } })))))
1611
1574
  )));
1612
1575
  };
1613
1576
  var PlainPickerDays = ({ ownerState }) => {
1614
1577
  const { getPickerDayProps, getDayCellProps } = useCalendar(ownerState);
1615
- const calendarDates = (0, import_react16.useMemo)(() => getCalendarDates(ownerState.viewMonth), [ownerState.viewMonth]);
1616
- const weekdayNames = (0, import_react16.useMemo)(() => getWeekdayNames(ownerState.locale || "default"), [ownerState.locale]);
1617
- return /* @__PURE__ */ import_react16.default.createElement(StaticCalendarViewTable, null, /* @__PURE__ */ import_react16.default.createElement(CalendarWeekHeaderContainer, null, /* @__PURE__ */ import_react16.default.createElement("tr", null, weekdayNames.map((name, i) => /* @__PURE__ */ import_react16.default.createElement(import_react16.Fragment, { key: `${ownerState.viewMonth}_${name}_${i}` }, /* @__PURE__ */ import_react16.default.createElement("th", null, /* @__PURE__ */ import_react16.default.createElement(Typography_default, { level: "body-xs", textAlign: "center" }, name)), i < 6 && /* @__PURE__ */ import_react16.default.createElement("th", { style: { width: 4 }, "aria-hidden": "true", "aria-description": "cell-gap" }))))), /* @__PURE__ */ import_react16.default.createElement(CalendarDayPickerContainer, null, calendarDates.map((weekDates, rowIndex) => /* @__PURE__ */ import_react16.default.createElement(import_react16.Fragment, { key: `${ownerState.viewMonth}_${rowIndex}` }, /* @__PURE__ */ import_react16.default.createElement("tr", null, weekDates.map(
1618
- (date, i) => date ? /* @__PURE__ */ import_react16.default.createElement(import_react16.Fragment, { key: `${ownerState.viewMonth}_${date}_${i}` }, /* @__PURE__ */ import_react16.default.createElement(CalendarDayCell, { ...getDayCellProps(date) }, /* @__PURE__ */ import_react16.default.createElement(CalendarDay, { size: "sm", variant: "plain", color: "neutral", ...getPickerDayProps(date) }, date)), i < 6 && /* @__PURE__ */ import_react16.default.createElement("td", { "aria-hidden": "true", "aria-description": "cell-gap" })) : /* @__PURE__ */ import_react16.default.createElement(import_react16.Fragment, { key: `${ownerState.viewMonth}_${i}` }, /* @__PURE__ */ import_react16.default.createElement("td", null), i < 6 && /* @__PURE__ */ import_react16.default.createElement("td", { "aria-hidden": "true", "aria-description": "cell-gap" }))
1619
- )), rowIndex < calendarDates.length - 1 && /* @__PURE__ */ import_react16.default.createElement("tr", { "aria-hidden": "true", "aria-description": "row-gap" }, /* @__PURE__ */ import_react16.default.createElement("td", { colSpan: 13, style: { height: 4 } }))))));
1578
+ const calendarDates = (0, import_react15.useMemo)(() => getCalendarDates(ownerState.viewMonth), [ownerState.viewMonth]);
1579
+ const weekdayNames = (0, import_react15.useMemo)(() => getWeekdayNames(ownerState.locale || "default"), [ownerState.locale]);
1580
+ return /* @__PURE__ */ import_react15.default.createElement(StaticCalendarViewTable, null, /* @__PURE__ */ import_react15.default.createElement(CalendarWeekHeaderContainer, null, /* @__PURE__ */ import_react15.default.createElement("tr", null, weekdayNames.map((name, i) => /* @__PURE__ */ import_react15.default.createElement(import_react15.Fragment, { key: `${ownerState.viewMonth}_${name}_${i}` }, /* @__PURE__ */ import_react15.default.createElement("th", null, /* @__PURE__ */ import_react15.default.createElement(Typography_default, { level: "body-xs", textAlign: "center" }, name)), i < 6 && /* @__PURE__ */ import_react15.default.createElement("th", { style: { width: 4 }, "aria-hidden": "true", "aria-description": "cell-gap" }))))), /* @__PURE__ */ import_react15.default.createElement(CalendarDayPickerContainer, null, calendarDates.map((weekDates, rowIndex) => /* @__PURE__ */ import_react15.default.createElement(import_react15.Fragment, { key: `${ownerState.viewMonth}_${rowIndex}` }, /* @__PURE__ */ import_react15.default.createElement("tr", null, weekDates.map(
1581
+ (date, i) => date ? /* @__PURE__ */ import_react15.default.createElement(import_react15.Fragment, { key: `${ownerState.viewMonth}_${date}_${i}` }, /* @__PURE__ */ import_react15.default.createElement(CalendarDayCell, { ...getDayCellProps(date) }, /* @__PURE__ */ import_react15.default.createElement(CalendarDay, { size: "sm", variant: "plain", color: "neutral", ...getPickerDayProps(date) }, date)), i < 6 && /* @__PURE__ */ import_react15.default.createElement("td", { "aria-hidden": "true", "aria-description": "cell-gap" })) : /* @__PURE__ */ import_react15.default.createElement(import_react15.Fragment, { key: `${ownerState.viewMonth}_${i}` }, /* @__PURE__ */ import_react15.default.createElement("td", null), i < 6 && /* @__PURE__ */ import_react15.default.createElement("td", { "aria-hidden": "true", "aria-description": "cell-gap" }))
1582
+ )), rowIndex < calendarDates.length - 1 && /* @__PURE__ */ import_react15.default.createElement("tr", { "aria-hidden": "true", "aria-description": "row-gap" }, /* @__PURE__ */ import_react15.default.createElement("td", { colSpan: 13, style: { height: 4 } }))))));
1620
1583
  };
1621
1584
  var MultiMonthPickerDays = ({
1622
1585
  panels,
@@ -1635,7 +1598,7 @@ var MultiMonthPickerDays = ({
1635
1598
  })
1636
1599
  };
1637
1600
  const key = `${panels[0].viewMonth.toISOString()}_${direction}`;
1638
- return /* @__PURE__ */ import_react16.default.createElement("div", { style: { position: "relative", overflow: "hidden", minHeight: "250px" } }, /* @__PURE__ */ import_react16.default.createElement(import_framer_motion13.AnimatePresence, { initial: false, custom: direction }, /* @__PURE__ */ import_react16.default.createElement(
1601
+ return /* @__PURE__ */ import_react15.default.createElement("div", { style: { position: "relative", overflow: "hidden", minHeight: "250px" } }, /* @__PURE__ */ import_react15.default.createElement(import_framer_motion13.AnimatePresence, { initial: false, custom: direction }, /* @__PURE__ */ import_react15.default.createElement(
1639
1602
  import_framer_motion13.motion.div,
1640
1603
  {
1641
1604
  key,
@@ -1665,7 +1628,7 @@ var MultiMonthPickerDays = ({
1665
1628
  },
1666
1629
  style: { display: "flex", gap: `${CALENDAR_PANEL_GAP}px`, top: 0, left: 0, width: "100%" }
1667
1630
  },
1668
- panels.map((panelOwnerState) => /* @__PURE__ */ import_react16.default.createElement(
1631
+ panels.map((panelOwnerState) => /* @__PURE__ */ import_react15.default.createElement(
1669
1632
  "div",
1670
1633
  {
1671
1634
  key: panelOwnerState.viewMonth.toISOString(),
@@ -1677,7 +1640,7 @@ var MultiMonthPickerDays = ({
1677
1640
  boxSizing: "border-box"
1678
1641
  }
1679
1642
  },
1680
- /* @__PURE__ */ import_react16.default.createElement(PlainPickerDays, { ownerState: panelOwnerState })
1643
+ /* @__PURE__ */ import_react15.default.createElement(PlainPickerDays, { ownerState: panelOwnerState })
1681
1644
  ))
1682
1645
  )));
1683
1646
  };
@@ -1694,7 +1657,7 @@ var CalendarPanel = ({
1694
1657
  const showPrev = panelIndex === 0;
1695
1658
  const showNext = panelIndex === totalPanels - 1;
1696
1659
  const title = ownerState.view === "month" ? getYearName(ownerState.viewMonth, ownerState.locale || "default") : getMonthName(ownerState.viewMonth, ownerState.locale || "default");
1697
- return /* @__PURE__ */ import_react16.default.createElement("div", { style: { flex: 1, maxWidth: `${CALENDAR_PANEL_WIDTH}px` } }, /* @__PURE__ */ import_react16.default.createElement(CalendarHeader, null, /* @__PURE__ */ import_react16.default.createElement(
1660
+ return /* @__PURE__ */ import_react15.default.createElement("div", { style: { flex: 1, maxWidth: `${CALENDAR_PANEL_WIDTH}px` } }, /* @__PURE__ */ import_react15.default.createElement(CalendarHeader, null, /* @__PURE__ */ import_react15.default.createElement(
1698
1661
  IconButton_default,
1699
1662
  {
1700
1663
  size: "sm",
@@ -1702,8 +1665,8 @@ var CalendarPanel = ({
1702
1665
  "aria-label": `Previous ${ownerState.view === "day" ? "Month" : "Year"}`,
1703
1666
  style: { visibility: showPrev ? "visible" : "hidden" }
1704
1667
  },
1705
- /* @__PURE__ */ import_react16.default.createElement(import_ChevronLeft.default, null)
1706
- ), /* @__PURE__ */ import_react16.default.createElement(
1668
+ /* @__PURE__ */ import_react15.default.createElement(import_ChevronLeft.default, null)
1669
+ ), /* @__PURE__ */ import_react15.default.createElement(
1707
1670
  Tooltip_default,
1708
1671
  {
1709
1672
  title: monthViewHintMessage,
@@ -1715,7 +1678,7 @@ var CalendarPanel = ({
1715
1678
  disableTouchListener: true,
1716
1679
  variant: "solid"
1717
1680
  },
1718
- /* @__PURE__ */ import_react16.default.createElement(
1681
+ /* @__PURE__ */ import_react15.default.createElement(
1719
1682
  CalendarSwitchViewButton,
1720
1683
  {
1721
1684
  ownerState,
@@ -1726,7 +1689,7 @@ var CalendarPanel = ({
1726
1689
  },
1727
1690
  title
1728
1691
  )
1729
- ), /* @__PURE__ */ import_react16.default.createElement(
1692
+ ), /* @__PURE__ */ import_react15.default.createElement(
1730
1693
  IconButton_default,
1731
1694
  {
1732
1695
  size: "sm",
@@ -1734,10 +1697,10 @@ var CalendarPanel = ({
1734
1697
  "aria-label": `Next ${ownerState.view === "day" ? "Month" : "Year"}`,
1735
1698
  style: { visibility: showNext ? "visible" : "hidden" }
1736
1699
  },
1737
- /* @__PURE__ */ import_react16.default.createElement(import_ChevronRight.default, null)
1700
+ /* @__PURE__ */ import_react15.default.createElement(import_ChevronRight.default, null)
1738
1701
  )));
1739
1702
  };
1740
- var Calendar = (0, import_react16.forwardRef)((inProps, ref) => {
1703
+ var Calendar = (0, import_react15.forwardRef)((inProps, ref) => {
1741
1704
  const [props, ownerState] = useCalendarProps(inProps);
1742
1705
  const {
1743
1706
  value,
@@ -1753,44 +1716,42 @@ var Calendar = (0, import_react16.forwardRef)((inProps, ref) => {
1753
1716
  maxDate,
1754
1717
  disableFuture,
1755
1718
  disablePast,
1756
- shouldDisableDate,
1757
- slots,
1758
1719
  numberOfMonths,
1759
1720
  ...others
1760
1721
  } = props;
1761
1722
  const { calendarTitle, onPrev, onNext } = useCalendar(ownerState);
1762
- const [isMonthViewAssistHintOpen, setIsMonthViewAssistHintOpen] = (0, import_react16.useState)(false);
1763
- const monthNavClickTimestampsRef = (0, import_react16.useRef)([]);
1764
- const monthViewAssistHintShownInSessionRef = (0, import_react16.useRef)(false);
1765
- const monthViewAssistHintTimeoutRef = (0, import_react16.useRef)(null);
1766
- const [hoverDay, setHoverDay] = (0, import_react16.useState)(null);
1767
- const [hoverMonth, setHoverMonth] = (0, import_react16.useState)(null);
1723
+ const [isMonthViewAssistHintOpen, setIsMonthViewAssistHintOpen] = (0, import_react15.useState)(false);
1724
+ const monthNavClickTimestampsRef = (0, import_react15.useRef)([]);
1725
+ const monthViewAssistHintShownInSessionRef = (0, import_react15.useRef)(false);
1726
+ const monthViewAssistHintTimeoutRef = (0, import_react15.useRef)(null);
1727
+ const [hoverDay, setHoverDay] = (0, import_react15.useState)(null);
1728
+ const [hoverMonth, setHoverMonth] = (0, import_react15.useState)(null);
1768
1729
  const resolvedNumberOfMonths = numberOfMonths ?? 1;
1769
1730
  const hasEndDate = Boolean(value?.[1]);
1770
1731
  const isRangeHintEligible = Boolean(rangeSelection && !hasEndDate);
1771
1732
  const isHintEligible = Boolean(view === "day" && (!rangeSelection || isRangeHintEligible));
1772
1733
  const monthViewHintMessage = MONTH_VIEW_HINT_MESSAGE;
1773
- (0, import_react16.useEffect)(() => {
1734
+ (0, import_react15.useEffect)(() => {
1774
1735
  if (!isHintEligible) {
1775
1736
  monthNavClickTimestampsRef.current = [];
1776
1737
  setIsMonthViewAssistHintOpen(false);
1777
1738
  }
1778
1739
  }, [isHintEligible]);
1779
- (0, import_react16.useEffect)(() => {
1740
+ (0, import_react15.useEffect)(() => {
1780
1741
  return () => {
1781
1742
  if (monthViewAssistHintTimeoutRef.current) {
1782
1743
  clearTimeout(monthViewAssistHintTimeoutRef.current);
1783
1744
  }
1784
1745
  };
1785
1746
  }, []);
1786
- const closeMonthViewAssistHint = (0, import_react16.useCallback)(() => {
1747
+ const closeMonthViewAssistHint = (0, import_react15.useCallback)(() => {
1787
1748
  if (monthViewAssistHintTimeoutRef.current) {
1788
1749
  clearTimeout(monthViewAssistHintTimeoutRef.current);
1789
1750
  monthViewAssistHintTimeoutRef.current = null;
1790
1751
  }
1791
1752
  setIsMonthViewAssistHintOpen(false);
1792
1753
  }, []);
1793
- const showMonthViewAssistHint = (0, import_react16.useCallback)(() => {
1754
+ const showMonthViewAssistHint = (0, import_react15.useCallback)(() => {
1794
1755
  const now = Date.now();
1795
1756
  if (monthViewAssistHintShownInSessionRef.current) return;
1796
1757
  if (now - lastMonthViewAssistHintShownAt < MONTH_VIEW_HINT_COOLDOWN_MS) return;
@@ -1805,7 +1766,7 @@ var Calendar = (0, import_react16.forwardRef)((inProps, ref) => {
1805
1766
  monthViewAssistHintTimeoutRef.current = null;
1806
1767
  }, MONTH_VIEW_HINT_DURATION_MS);
1807
1768
  }, []);
1808
- const trackFastMonthNavigation = (0, import_react16.useCallback)(() => {
1769
+ const trackFastMonthNavigation = (0, import_react15.useCallback)(() => {
1809
1770
  if (!isHintEligible) return;
1810
1771
  const now = Date.now();
1811
1772
  monthNavClickTimestampsRef.current = [
@@ -1816,15 +1777,15 @@ var Calendar = (0, import_react16.forwardRef)((inProps, ref) => {
1816
1777
  showMonthViewAssistHint();
1817
1778
  }
1818
1779
  }, [isHintEligible, showMonthViewAssistHint]);
1819
- const handlePrevClick = (0, import_react16.useCallback)(() => {
1780
+ const handlePrevClick = (0, import_react15.useCallback)(() => {
1820
1781
  onPrev();
1821
1782
  trackFastMonthNavigation();
1822
1783
  }, [onPrev, trackFastMonthNavigation]);
1823
- const handleNextClick = (0, import_react16.useCallback)(() => {
1784
+ const handleNextClick = (0, import_react15.useCallback)(() => {
1824
1785
  onNext();
1825
1786
  trackFastMonthNavigation();
1826
1787
  }, [onNext, trackFastMonthNavigation]);
1827
- const handleSwitchViewClick = (0, import_react16.useCallback)(() => {
1788
+ const handleSwitchViewClick = (0, import_react15.useCallback)(() => {
1828
1789
  closeMonthViewAssistHint();
1829
1790
  onViewChange?.();
1830
1791
  }, [closeMonthViewAssistHint, onViewChange]);
@@ -1844,9 +1805,9 @@ var Calendar = (0, import_react16.forwardRef)((inProps, ref) => {
1844
1805
  onHoverMonthChange: setHoverMonth
1845
1806
  };
1846
1807
  });
1847
- return /* @__PURE__ */ import_react16.default.createElement(CalendarRoot, { ref, ...others, style: { maxWidth: `${maxWidth}px` } }, view === "month" ? (
1808
+ return /* @__PURE__ */ import_react15.default.createElement(CalendarRoot, { ref, ...others, style: { maxWidth: `${maxWidth}px` } }, view === "month" ? (
1848
1809
  // Month view: single header + single month grid (consistent with single-month path)
1849
- /* @__PURE__ */ import_react16.default.createElement(import_react16.default.Fragment, null, /* @__PURE__ */ import_react16.default.createElement(CalendarHeader, null, /* @__PURE__ */ import_react16.default.createElement(IconButton_default, { size: "sm", onClick: handlePrevClick, "aria-label": "Previous Year" }, /* @__PURE__ */ import_react16.default.createElement(import_ChevronLeft.default, null)), /* @__PURE__ */ import_react16.default.createElement(
1810
+ /* @__PURE__ */ import_react15.default.createElement(import_react15.default.Fragment, null, /* @__PURE__ */ import_react15.default.createElement(CalendarHeader, null, /* @__PURE__ */ import_react15.default.createElement(IconButton_default, { size: "sm", onClick: handlePrevClick, "aria-label": "Previous Year" }, /* @__PURE__ */ import_react15.default.createElement(import_ChevronLeft.default, null)), /* @__PURE__ */ import_react15.default.createElement(
1850
1811
  Tooltip_default,
1851
1812
  {
1852
1813
  title: monthViewHintMessage,
@@ -1858,7 +1819,7 @@ var Calendar = (0, import_react16.forwardRef)((inProps, ref) => {
1858
1819
  disableTouchListener: true,
1859
1820
  variant: "solid"
1860
1821
  },
1861
- /* @__PURE__ */ import_react16.default.createElement(
1822
+ /* @__PURE__ */ import_react15.default.createElement(
1862
1823
  CalendarSwitchViewButton,
1863
1824
  {
1864
1825
  ownerState,
@@ -1869,8 +1830,8 @@ var Calendar = (0, import_react16.forwardRef)((inProps, ref) => {
1869
1830
  },
1870
1831
  calendarTitle
1871
1832
  )
1872
- ), /* @__PURE__ */ import_react16.default.createElement(IconButton_default, { size: "sm", onClick: handleNextClick, "aria-label": "Next Year" }, /* @__PURE__ */ import_react16.default.createElement(import_ChevronRight.default, null))), /* @__PURE__ */ import_react16.default.createElement(PickerMonths, { ownerState }))
1873
- ) : /* @__PURE__ */ import_react16.default.createElement(import_react16.default.Fragment, null, /* @__PURE__ */ import_react16.default.createElement(CalendarMultiContainer, null, panels.map((panelOwnerState, i) => /* @__PURE__ */ import_react16.default.createElement(
1833
+ ), /* @__PURE__ */ import_react15.default.createElement(IconButton_default, { size: "sm", onClick: handleNextClick, "aria-label": "Next Year" }, /* @__PURE__ */ import_react15.default.createElement(import_ChevronRight.default, null))), /* @__PURE__ */ import_react15.default.createElement(PickerMonths, { ownerState }))
1834
+ ) : /* @__PURE__ */ import_react15.default.createElement(import_react15.default.Fragment, null, /* @__PURE__ */ import_react15.default.createElement(CalendarMultiContainer, null, panels.map((panelOwnerState, i) => /* @__PURE__ */ import_react15.default.createElement(
1874
1835
  CalendarPanel,
1875
1836
  {
1876
1837
  key: panelOwnerState.viewMonth.toISOString(),
@@ -1883,7 +1844,7 @@ var Calendar = (0, import_react16.forwardRef)((inProps, ref) => {
1883
1844
  isMonthViewAssistHintOpen,
1884
1845
  monthViewHintMessage
1885
1846
  }
1886
- ))), /* @__PURE__ */ import_react16.default.createElement(
1847
+ ))), /* @__PURE__ */ import_react15.default.createElement(
1887
1848
  MultiMonthPickerDays,
1888
1849
  {
1889
1850
  panels,
@@ -1892,7 +1853,7 @@ var Calendar = (0, import_react16.forwardRef)((inProps, ref) => {
1892
1853
  }
1893
1854
  )));
1894
1855
  }
1895
- return /* @__PURE__ */ import_react16.default.createElement(CalendarRoot, { ref, ...others, style: { maxWidth: `${maxWidth}px` } }, /* @__PURE__ */ import_react16.default.createElement(CalendarHeader, null, /* @__PURE__ */ import_react16.default.createElement(IconButton_default, { size: "sm", onClick: handlePrevClick, "aria-label": `Previous ${view === "day" ? "Month" : "Year"}` }, /* @__PURE__ */ import_react16.default.createElement(import_ChevronLeft.default, null)), /* @__PURE__ */ import_react16.default.createElement(
1856
+ return /* @__PURE__ */ import_react15.default.createElement(CalendarRoot, { ref, ...others, style: { maxWidth: `${maxWidth}px` } }, /* @__PURE__ */ import_react15.default.createElement(CalendarHeader, null, /* @__PURE__ */ import_react15.default.createElement(IconButton_default, { size: "sm", onClick: handlePrevClick, "aria-label": `Previous ${view === "day" ? "Month" : "Year"}` }, /* @__PURE__ */ import_react15.default.createElement(import_ChevronLeft.default, null)), /* @__PURE__ */ import_react15.default.createElement(
1896
1857
  Tooltip_default,
1897
1858
  {
1898
1859
  title: monthViewHintMessage,
@@ -1904,7 +1865,7 @@ var Calendar = (0, import_react16.forwardRef)((inProps, ref) => {
1904
1865
  disableTouchListener: true,
1905
1866
  variant: "solid"
1906
1867
  },
1907
- /* @__PURE__ */ import_react16.default.createElement(
1868
+ /* @__PURE__ */ import_react15.default.createElement(
1908
1869
  CalendarSwitchViewButton,
1909
1870
  {
1910
1871
  ownerState,
@@ -1915,7 +1876,7 @@ var Calendar = (0, import_react16.forwardRef)((inProps, ref) => {
1915
1876
  },
1916
1877
  calendarTitle
1917
1878
  )
1918
- ), /* @__PURE__ */ import_react16.default.createElement(IconButton_default, { size: "sm", onClick: handleNextClick, "aria-label": `Next ${view === "day" ? "Month" : "Year"}` }, /* @__PURE__ */ import_react16.default.createElement(import_ChevronRight.default, null))), view === "day" && /* @__PURE__ */ import_react16.default.createElement(PickerDays, { ownerState }), view === "month" && /* @__PURE__ */ import_react16.default.createElement(PickerMonths, { ownerState }));
1879
+ ), /* @__PURE__ */ import_react15.default.createElement(IconButton_default, { size: "sm", onClick: handleNextClick, "aria-label": `Next ${view === "day" ? "Month" : "Year"}` }, /* @__PURE__ */ import_react15.default.createElement(import_ChevronRight.default, null))), view === "day" && /* @__PURE__ */ import_react15.default.createElement(PickerDays, { ownerState }), view === "month" && /* @__PURE__ */ import_react15.default.createElement(PickerMonths, { ownerState }));
1919
1880
  });
1920
1881
  Calendar.displayName = "Calendar";
1921
1882
 
@@ -1942,12 +1903,12 @@ var CardOverflow = MotionCardOverflow;
1942
1903
  CardOverflow.displayName = "CardOverflow";
1943
1904
 
1944
1905
  // src/components/Checkbox/Checkbox.tsx
1945
- var import_react17 = __toESM(require("react"));
1906
+ var import_react16 = __toESM(require("react"));
1946
1907
  var import_joy22 = require("@mui/joy");
1947
1908
  var import_framer_motion15 = require("framer-motion");
1948
1909
  var MotionCheckbox = (0, import_framer_motion15.motion)(import_joy22.Checkbox);
1949
1910
  var Checkbox = (props) => {
1950
- return /* @__PURE__ */ import_react17.default.createElement(MotionCheckbox, { ...props });
1911
+ return /* @__PURE__ */ import_react16.default.createElement(MotionCheckbox, { ...props });
1951
1912
  };
1952
1913
  Checkbox.displayName = "Checkbox";
1953
1914
 
@@ -1956,7 +1917,7 @@ var Checkbox_default = Checkbox;
1956
1917
 
1957
1918
  // src/components/Container/Container.tsx
1958
1919
  var import_joy23 = require("@mui/joy");
1959
- var import_react18 = __toESM(require("react"));
1920
+ var import_react17 = __toESM(require("react"));
1960
1921
  var ContainerRoot = (0, import_joy23.styled)("div", {
1961
1922
  name: "Container",
1962
1923
  slot: "root",
@@ -1982,24 +1943,24 @@ var ContainerRoot = (0, import_joy23.styled)("div", {
1982
1943
  paddingRight: theme.breakpoints.values[overrideBreakpoint] >= theme.breakpoints.values.lg ? theme.spacing(8) : theme.spacing(4)
1983
1944
  } : null
1984
1945
  ]);
1985
- var Container = (0, import_react18.forwardRef)(function Container2(props, ref) {
1986
- return /* @__PURE__ */ import_react18.default.createElement(ContainerRoot, { ref, ...props });
1946
+ var Container = (0, import_react17.forwardRef)(function Container2(props, ref) {
1947
+ return /* @__PURE__ */ import_react17.default.createElement(ContainerRoot, { ref, ...props });
1987
1948
  });
1988
1949
  Container.displayName = "Container";
1989
1950
 
1990
1951
  // src/components/CurrencyInput/CurrencyInput.tsx
1991
- var import_react20 = __toESM(require("react"));
1952
+ var import_react19 = __toESM(require("react"));
1992
1953
  var import_react_number_format = require("react-number-format");
1993
1954
 
1994
1955
  // src/components/Input/Input.tsx
1995
- var import_react19 = __toESM(require("react"));
1956
+ var import_react18 = __toESM(require("react"));
1996
1957
  var import_joy24 = require("@mui/joy");
1997
1958
  var import_framer_motion16 = require("framer-motion");
1998
1959
  var import_Close2 = __toESM(require("@mui/icons-material/Close"));
1999
1960
  var import_Visibility = __toESM(require("@mui/icons-material/Visibility"));
2000
1961
  var import_VisibilityOff = __toESM(require("@mui/icons-material/VisibilityOff"));
2001
1962
  var MotionInput = (0, import_framer_motion16.motion)(import_joy24.Input);
2002
- var Input = import_react19.default.forwardRef((props, ref) => {
1963
+ var Input = import_react18.default.forwardRef((props, ref) => {
2003
1964
  const {
2004
1965
  label,
2005
1966
  helperText,
@@ -2026,11 +1987,11 @@ var Input = import_react19.default.forwardRef((props, ref) => {
2026
1987
  if (type === "password" && innerProps.endDecorator) {
2027
1988
  console.warn('Input: endDecorator is not supported when type="password"');
2028
1989
  }
2029
- const [passwordVisible, setPasswordVisible] = (0, import_react19.useState)(false);
1990
+ const [passwordVisible, setPasswordVisible] = (0, import_react18.useState)(false);
2030
1991
  const [value, setValue] = useControlledState(
2031
1992
  valueProp,
2032
1993
  defaultValueProp ?? null,
2033
- (0, import_react19.useCallback)(
1994
+ (0, import_react18.useCallback)(
2034
1995
  (value2) => {
2035
1996
  onChange?.({
2036
1997
  /**
@@ -2057,7 +2018,7 @@ var Input = import_react19.default.forwardRef((props, ref) => {
2057
2018
  const actualType = type === "password" && passwordVisible ? "text" : type;
2058
2019
  const isPasswordType = type === "password";
2059
2020
  const showPasswordToggle = isPasswordType && !disableTogglePasswordButton;
2060
- const input = /* @__PURE__ */ import_react19.default.createElement(
2021
+ const input = /* @__PURE__ */ import_react18.default.createElement(
2061
2022
  MotionInput,
2062
2023
  {
2063
2024
  value: displayValue ?? "",
@@ -2072,7 +2033,7 @@ var Input = import_react19.default.forwardRef((props, ref) => {
2072
2033
  ...innerProps.slotProps
2073
2034
  },
2074
2035
  ...innerProps,
2075
- endDecorator: isPasswordType ? showPasswordToggle ? /* @__PURE__ */ import_react19.default.createElement(Stack_default, { gap: 1, direction: "row" }, /* @__PURE__ */ import_react19.default.createElement(
2036
+ endDecorator: isPasswordType ? showPasswordToggle ? /* @__PURE__ */ import_react18.default.createElement(Stack_default, { gap: 1, direction: "row" }, /* @__PURE__ */ import_react18.default.createElement(
2076
2037
  IconButton_default,
2077
2038
  {
2078
2039
  onMouseDown: (e) => e.preventDefault(),
@@ -2080,19 +2041,19 @@ var Input = import_react19.default.forwardRef((props, ref) => {
2080
2041
  disabled,
2081
2042
  "aria-label": passwordVisible ? "Hide password" : "Show password"
2082
2043
  },
2083
- passwordVisible ? /* @__PURE__ */ import_react19.default.createElement(import_VisibilityOff.default, null) : /* @__PURE__ */ import_react19.default.createElement(import_Visibility.default, null)
2084
- )) : null : enableClearable ? /* @__PURE__ */ import_react19.default.createElement(Stack_default, { gap: 1, direction: "row" }, innerProps.endDecorator, displayValue && /* @__PURE__ */ import_react19.default.createElement(
2044
+ passwordVisible ? /* @__PURE__ */ import_react18.default.createElement(import_VisibilityOff.default, null) : /* @__PURE__ */ import_react18.default.createElement(import_Visibility.default, null)
2045
+ )) : null : enableClearable ? /* @__PURE__ */ import_react18.default.createElement(Stack_default, { gap: 1, direction: "row" }, innerProps.endDecorator, displayValue && /* @__PURE__ */ import_react18.default.createElement(
2085
2046
  IconButton_default,
2086
2047
  {
2087
2048
  onMouseDown: (e) => e.preventDefault(),
2088
2049
  onClick: handleClear,
2089
2050
  "aria-label": "Clear"
2090
2051
  },
2091
- /* @__PURE__ */ import_react19.default.createElement(import_Close2.default, null)
2052
+ /* @__PURE__ */ import_react18.default.createElement(import_Close2.default, null)
2092
2053
  )) : innerProps.endDecorator
2093
2054
  }
2094
2055
  );
2095
- return /* @__PURE__ */ import_react19.default.createElement(
2056
+ return /* @__PURE__ */ import_react18.default.createElement(
2096
2057
  FormControl_default,
2097
2058
  {
2098
2059
  required,
@@ -2103,9 +2064,9 @@ var Input = import_react19.default.forwardRef((props, ref) => {
2103
2064
  sx,
2104
2065
  className
2105
2066
  },
2106
- label && /* @__PURE__ */ import_react19.default.createElement(FormLabel_default, null, label),
2067
+ label && /* @__PURE__ */ import_react18.default.createElement(FormLabel_default, null, label),
2107
2068
  input,
2108
- helperText && /* @__PURE__ */ import_react19.default.createElement(FormHelperText_default, null, helperText)
2069
+ helperText && /* @__PURE__ */ import_react18.default.createElement(FormHelperText_default, null, helperText)
2109
2070
  );
2110
2071
  });
2111
2072
  Input.displayName = "Input";
@@ -2277,9 +2238,9 @@ var useCurrencySetting = (props) => {
2277
2238
  };
2278
2239
 
2279
2240
  // src/components/CurrencyInput/CurrencyInput.tsx
2280
- var TextMaskAdapter = import_react20.default.forwardRef(function TextMaskAdapter2(props, ref) {
2241
+ var TextMaskAdapter = import_react19.default.forwardRef(function TextMaskAdapter2(props, ref) {
2281
2242
  const { onChange, ...innerProps } = props;
2282
- return /* @__PURE__ */ import_react20.default.createElement(
2243
+ return /* @__PURE__ */ import_react19.default.createElement(
2283
2244
  import_react_number_format.NumericFormat,
2284
2245
  {
2285
2246
  ...innerProps,
@@ -2299,7 +2260,7 @@ var CurrencyInputRoot = (0, import_joy25.styled)(Input_default, {
2299
2260
  slot: "root",
2300
2261
  overridesResolver: (props, styles) => styles.root
2301
2262
  })({});
2302
- var CurrencyInput = import_react20.default.forwardRef(function CurrencyInput2(inProps, ref) {
2263
+ var CurrencyInput = import_react19.default.forwardRef(function CurrencyInput2(inProps, ref) {
2303
2264
  const props = (0, import_joy25.useThemeProps)({ props: inProps, name: "CurrencyInput" });
2304
2265
  const {
2305
2266
  currency = "USD",
@@ -2320,22 +2281,22 @@ var CurrencyInput = import_react20.default.forwardRef(function CurrencyInput2(in
2320
2281
  const [_value, setValue] = useControlledState(
2321
2282
  props.value,
2322
2283
  props.defaultValue ?? null,
2323
- (0, import_react20.useCallback)((value2) => onChange?.({ target: { name, value: value2 } }), [onChange, name])
2284
+ (0, import_react19.useCallback)((value2) => onChange?.({ target: { name, value: value2 } }), [onChange, name])
2324
2285
  );
2325
- const value = (0, import_react20.useMemo)(() => {
2286
+ const value = (0, import_react19.useMemo)(() => {
2326
2287
  if (_value && useMinorUnit) {
2327
2288
  return _value / Math.pow(10, decimalScale);
2328
2289
  }
2329
2290
  return _value;
2330
2291
  }, [_value, useMinorUnit, decimalScale]);
2331
- const max = (0, import_react20.useMemo)(() => {
2292
+ const max = (0, import_react19.useMemo)(() => {
2332
2293
  if (props.max && useMinorUnit) {
2333
2294
  return props.max / Math.pow(10, decimalScale);
2334
2295
  }
2335
2296
  return props.max;
2336
2297
  }, [props.max, useMinorUnit, decimalScale]);
2337
- const isOverLimit = (0, import_react20.useMemo)(() => max != null && value != null && value > max, [max, value]);
2338
- const handleChange = (0, import_react20.useCallback)(
2298
+ const isOverLimit = (0, import_react19.useMemo)(() => max != null && value != null && value > max, [max, value]);
2299
+ const handleChange = (0, import_react19.useCallback)(
2339
2300
  (event) => {
2340
2301
  if (event.target.value === "") {
2341
2302
  setValue(null);
@@ -2346,7 +2307,7 @@ var CurrencyInput = import_react20.default.forwardRef(function CurrencyInput2(in
2346
2307
  },
2347
2308
  [decimalSeparator, useMinorUnit, setValue]
2348
2309
  );
2349
- return /* @__PURE__ */ import_react20.default.createElement(
2310
+ return /* @__PURE__ */ import_react19.default.createElement(
2350
2311
  CurrencyInputRoot,
2351
2312
  {
2352
2313
  ...innerProps,
@@ -2383,7 +2344,7 @@ var CurrencyInput = import_react20.default.forwardRef(function CurrencyInput2(in
2383
2344
  var CurrencyInput_default = CurrencyInput;
2384
2345
 
2385
2346
  // src/components/DataTable/DataTable.tsx
2386
- var import_react30 = __toESM(require("react"));
2347
+ var import_react29 = __toESM(require("react"));
2387
2348
  var import_react_virtual2 = require("@tanstack/react-virtual");
2388
2349
 
2389
2350
  // src/libs/text-measurer.ts
@@ -2611,12 +2572,9 @@ function computeAutoFitWidth(params) {
2611
2572
  if (!isNaN(maxPx) && maxPx > 0) finalWidth = Math.min(finalWidth, maxPx);
2612
2573
  return finalWidth;
2613
2574
  }
2614
- function getHeaderCellId(tableId, columnId) {
2615
- return `${tableId}_header_${columnId}`.trim();
2616
- }
2617
2575
 
2618
2576
  // src/components/DataTable/styled.tsx
2619
- var import_react21 = __toESM(require("react"));
2577
+ var import_react20 = __toESM(require("react"));
2620
2578
  var import_joy26 = require("@mui/joy");
2621
2579
  var import_framer_motion17 = require("framer-motion");
2622
2580
  var import_ArrowUpwardRounded = __toESM(require("@mui/icons-material/ArrowUpwardRounded"));
@@ -2722,9 +2680,9 @@ var StyledTd = (0, import_joy26.styled)("td")(({ theme }) => ({
2722
2680
  }
2723
2681
  }));
2724
2682
  var MotionSortIcon = (0, import_framer_motion17.motion)(import_ArrowUpwardRounded.default);
2725
- var DefaultLoadingOverlay = () => /* @__PURE__ */ import_react21.default.createElement(import_joy26.LinearProgress, { value: 8, variant: "plain" });
2726
- var DefaultNoRowsOverlay = () => /* @__PURE__ */ import_react21.default.createElement(import_joy26.Typography, { level: "body-sm", textColor: "text.tertiary" }, "No rows");
2727
- var Resizer = (ref, targetRef = ref, onResizeStateChange, onAutoFit) => /* @__PURE__ */ import_react21.default.createElement(
2683
+ var DefaultLoadingOverlay = () => /* @__PURE__ */ import_react20.default.createElement(import_joy26.LinearProgress, { value: 8, variant: "plain" });
2684
+ var DefaultNoRowsOverlay = () => /* @__PURE__ */ import_react20.default.createElement(import_joy26.Typography, { level: "body-sm", textColor: "text.tertiary" }, "No rows");
2685
+ var Resizer = (ref, targetRef = ref, onResizeStateChange, onAutoFit) => /* @__PURE__ */ import_react20.default.createElement(
2728
2686
  Box_default,
2729
2687
  {
2730
2688
  sx: {
@@ -2801,12 +2759,12 @@ var Resizer = (ref, targetRef = ref, onResizeStateChange, onAutoFit) => /* @__PU
2801
2759
  );
2802
2760
 
2803
2761
  // src/components/DataTable/components.tsx
2804
- var import_react26 = __toESM(require("react"));
2762
+ var import_react25 = __toESM(require("react"));
2805
2763
  var import_joy33 = require("@mui/joy");
2806
2764
  var import_framer_motion21 = require("framer-motion");
2807
2765
 
2808
2766
  // src/components/DatePicker/DatePicker.tsx
2809
- var import_react22 = __toESM(require("react"));
2767
+ var import_react21 = __toESM(require("react"));
2810
2768
  var import_react_imask = require("react-imask");
2811
2769
  var import_CalendarToday = __toESM(require("@mui/icons-material/CalendarToday"));
2812
2770
  var import_joy29 = require("@mui/joy");
@@ -2959,9 +2917,9 @@ function parseDate(dateString, format) {
2959
2917
  var formatToPattern = (format) => {
2960
2918
  return format.replace(/YYYY/g, "Y").replace(/MM/g, "M").replace(/DD/g, "D").replace(/[^YMD\s]/g, (match) => `${match}\``);
2961
2919
  };
2962
- var TextMaskAdapter3 = import_react22.default.forwardRef(function TextMaskAdapter4(props, ref) {
2920
+ var TextMaskAdapter3 = import_react21.default.forwardRef(function TextMaskAdapter4(props, ref) {
2963
2921
  const { onChange, format, ...other } = props;
2964
- return /* @__PURE__ */ import_react22.default.createElement(
2922
+ return /* @__PURE__ */ import_react21.default.createElement(
2965
2923
  import_react_imask.IMaskInput,
2966
2924
  {
2967
2925
  ...other,
@@ -2996,7 +2954,7 @@ var TextMaskAdapter3 = import_react22.default.forwardRef(function TextMaskAdapte
2996
2954
  }
2997
2955
  );
2998
2956
  });
2999
- var DatePicker = (0, import_react22.forwardRef)((inProps, ref) => {
2957
+ var DatePicker = (0, import_react21.forwardRef)((inProps, ref) => {
3000
2958
  const props = (0, import_joy29.useThemeProps)({ props: inProps, name: "DatePicker" });
3001
2959
  const {
3002
2960
  onChange,
@@ -3023,29 +2981,29 @@ var DatePicker = (0, import_react22.forwardRef)((inProps, ref) => {
3023
2981
  presets,
3024
2982
  ...innerProps
3025
2983
  } = props;
3026
- const innerRef = (0, import_react22.useRef)(null);
3027
- const buttonRef = (0, import_react22.useRef)(null);
2984
+ const innerRef = (0, import_react21.useRef)(null);
2985
+ const buttonRef = (0, import_react21.useRef)(null);
3028
2986
  const [rawValue, setValue] = useControlledState(
3029
2987
  props.value,
3030
2988
  props.defaultValue ?? null,
3031
- (0, import_react22.useCallback)(
2989
+ (0, import_react21.useCallback)(
3032
2990
  (value2) => onChange?.({ target: { name: props.name, value: value2 ?? "" } }),
3033
2991
  [props.name, onChange]
3034
2992
  )
3035
2993
  );
3036
2994
  const value = rawValue ?? "";
3037
2995
  const isAlphabeticDisplay = hasAlphabeticMonth(displayFormat);
3038
- const [displayValue, setDisplayValue] = (0, import_react22.useState)(
2996
+ const [displayValue, setDisplayValue] = (0, import_react21.useState)(
3039
2997
  () => value ? formatValueString(parseDate(value, format), displayFormat, locale) : ""
3040
2998
  );
3041
- const [anchorEl, setAnchorEl] = (0, import_react22.useState)(null);
2999
+ const [anchorEl, setAnchorEl] = (0, import_react21.useState)(null);
3042
3000
  const open = Boolean(anchorEl);
3043
- (0, import_react22.useEffect)(() => {
3001
+ (0, import_react21.useEffect)(() => {
3044
3002
  if (!anchorEl) {
3045
3003
  innerRef.current?.blur();
3046
3004
  }
3047
3005
  }, [anchorEl, innerRef]);
3048
- (0, import_react22.useEffect)(() => {
3006
+ (0, import_react21.useEffect)(() => {
3049
3007
  if (value === "") {
3050
3008
  setDisplayValue("");
3051
3009
  return;
@@ -3055,8 +3013,8 @@ var DatePicker = (0, import_react22.forwardRef)((inProps, ref) => {
3055
3013
  setDisplayValue(formattedValue);
3056
3014
  }
3057
3015
  }, [displayFormat, displayValue, format, locale, value]);
3058
- (0, import_react22.useImperativeHandle)(ref, () => innerRef.current, [innerRef]);
3059
- const handleChange = (0, import_react22.useCallback)(
3016
+ (0, import_react21.useImperativeHandle)(ref, () => innerRef.current, [innerRef]);
3017
+ const handleChange = (0, import_react21.useCallback)(
3060
3018
  (event) => {
3061
3019
  const value2 = event.target.value;
3062
3020
  setDisplayValue(value2 ? formatValueString(parseDate(value2, format), displayFormat, locale) : value2);
@@ -3064,7 +3022,7 @@ var DatePicker = (0, import_react22.forwardRef)((inProps, ref) => {
3064
3022
  },
3065
3023
  [displayFormat, format, locale, setValue]
3066
3024
  );
3067
- const handleDisplayInputChange = (0, import_react22.useCallback)(
3025
+ const handleDisplayInputChange = (0, import_react21.useCallback)(
3068
3026
  (event) => {
3069
3027
  if (event.target.value === "") {
3070
3028
  handleChange({
@@ -3089,7 +3047,7 @@ var DatePicker = (0, import_react22.forwardRef)((inProps, ref) => {
3089
3047
  },
3090
3048
  [displayFormat, format, handleChange, props.name]
3091
3049
  );
3092
- const handleCalendarToggle = (0, import_react22.useCallback)(
3050
+ const handleCalendarToggle = (0, import_react21.useCallback)(
3093
3051
  (event) => {
3094
3052
  setAnchorEl(anchorEl ? null : event.currentTarget);
3095
3053
  setTimeout(() => {
@@ -3098,7 +3056,7 @@ var DatePicker = (0, import_react22.forwardRef)((inProps, ref) => {
3098
3056
  },
3099
3057
  [anchorEl, setAnchorEl, innerRef]
3100
3058
  );
3101
- const handleInputMouseDown = (0, import_react22.useCallback)(
3059
+ const handleInputMouseDown = (0, import_react21.useCallback)(
3102
3060
  (event) => {
3103
3061
  if (inputReadOnly || isAlphabeticDisplay) {
3104
3062
  event.preventDefault();
@@ -3107,7 +3065,7 @@ var DatePicker = (0, import_react22.forwardRef)((inProps, ref) => {
3107
3065
  },
3108
3066
  [inputReadOnly, isAlphabeticDisplay, buttonRef]
3109
3067
  );
3110
- const handleInputClick = (0, import_react22.useCallback)(
3068
+ const handleInputClick = (0, import_react21.useCallback)(
3111
3069
  (event) => {
3112
3070
  if (inputReadOnly && !readOnly) {
3113
3071
  handleCalendarToggle(event);
@@ -3115,7 +3073,7 @@ var DatePicker = (0, import_react22.forwardRef)((inProps, ref) => {
3115
3073
  },
3116
3074
  [inputReadOnly, readOnly, handleCalendarToggle]
3117
3075
  );
3118
- const handlePresetClick = (0, import_react22.useCallback)(
3076
+ const handlePresetClick = (0, import_react21.useCallback)(
3119
3077
  (presetValue) => {
3120
3078
  handleChange({
3121
3079
  target: {
@@ -3127,7 +3085,7 @@ var DatePicker = (0, import_react22.forwardRef)((inProps, ref) => {
3127
3085
  },
3128
3086
  [handleChange, props.name]
3129
3087
  );
3130
- const isPresetDisabled = (0, import_react22.useCallback)(
3088
+ const isPresetDisabled = (0, import_react21.useCallback)(
3131
3089
  (presetValue) => {
3132
3090
  try {
3133
3091
  const date = parseDate(presetValue, format);
@@ -3144,7 +3102,7 @@ var DatePicker = (0, import_react22.forwardRef)((inProps, ref) => {
3144
3102
  },
3145
3103
  [format, minDate, maxDate, disableFuture, disablePast, shouldDisableDate]
3146
3104
  );
3147
- return /* @__PURE__ */ import_react22.default.createElement(DatePickerRoot, { sx, className }, /* @__PURE__ */ import_react22.default.createElement(import_base3.FocusTrap, { open: true }, /* @__PURE__ */ import_react22.default.createElement(import_react22.default.Fragment, null, /* @__PURE__ */ import_react22.default.createElement(
3105
+ return /* @__PURE__ */ import_react21.default.createElement(DatePickerRoot, { sx, className }, /* @__PURE__ */ import_react21.default.createElement(import_base3.FocusTrap, { open: true }, /* @__PURE__ */ import_react21.default.createElement(import_react21.default.Fragment, null, /* @__PURE__ */ import_react21.default.createElement(
3148
3106
  Input_default,
3149
3107
  {
3150
3108
  ...innerProps,
@@ -3171,7 +3129,7 @@ var DatePicker = (0, import_react22.forwardRef)((inProps, ref) => {
3171
3129
  }
3172
3130
  },
3173
3131
  sx: { width: "100%" },
3174
- endDecorator: /* @__PURE__ */ import_react22.default.createElement(
3132
+ endDecorator: /* @__PURE__ */ import_react21.default.createElement(
3175
3133
  CalendarButton,
3176
3134
  {
3177
3135
  ref: buttonRef,
@@ -3183,13 +3141,13 @@ var DatePicker = (0, import_react22.forwardRef)((inProps, ref) => {
3183
3141
  "aria-expanded": open,
3184
3142
  disabled
3185
3143
  },
3186
- /* @__PURE__ */ import_react22.default.createElement(import_CalendarToday.default, null)
3144
+ /* @__PURE__ */ import_react21.default.createElement(import_CalendarToday.default, null)
3187
3145
  ),
3188
3146
  label,
3189
3147
  helperText,
3190
3148
  readOnly: readOnly || inputReadOnly || isAlphabeticDisplay
3191
3149
  }
3192
- ), open && /* @__PURE__ */ import_react22.default.createElement(import_base3.ClickAwayListener, { onClickAway: () => setAnchorEl(null) }, /* @__PURE__ */ import_react22.default.createElement(
3150
+ ), open && /* @__PURE__ */ import_react21.default.createElement(import_base3.ClickAwayListener, { onClickAway: () => setAnchorEl(null) }, /* @__PURE__ */ import_react21.default.createElement(
3193
3151
  StyledPopper,
3194
3152
  {
3195
3153
  id: "date-picker-popper",
@@ -3208,7 +3166,7 @@ var DatePicker = (0, import_react22.forwardRef)((inProps, ref) => {
3208
3166
  "aria-label": "Calendar Tooltip",
3209
3167
  "aria-expanded": open
3210
3168
  },
3211
- /* @__PURE__ */ import_react22.default.createElement(CalendarSheet, { tabIndex: -1, role: "presentation" }, /* @__PURE__ */ import_react22.default.createElement(CalendarSheetContent, null, /* @__PURE__ */ import_react22.default.createElement(CalendarSection, null, /* @__PURE__ */ import_react22.default.createElement(
3169
+ /* @__PURE__ */ import_react21.default.createElement(CalendarSheet, { tabIndex: -1, role: "presentation" }, /* @__PURE__ */ import_react21.default.createElement(CalendarSheetContent, null, /* @__PURE__ */ import_react21.default.createElement(CalendarSection, null, /* @__PURE__ */ import_react21.default.createElement(
3212
3170
  Calendar_default,
3213
3171
  {
3214
3172
  value: value && !Number.isNaN(parseDate(value, format).getTime()) ? [parseDate(value, format), void 0] : void 0,
@@ -3228,14 +3186,14 @@ var DatePicker = (0, import_react22.forwardRef)((inProps, ref) => {
3228
3186
  shouldDisableDate: shouldDisableDate ? (date) => shouldDisableDate(formatValueString(date, format)) : void 0,
3229
3187
  locale
3230
3188
  }
3231
- ), !hideClearButton && /* @__PURE__ */ import_react22.default.createElement(
3189
+ ), !hideClearButton && /* @__PURE__ */ import_react21.default.createElement(
3232
3190
  DialogActions_default,
3233
3191
  {
3234
3192
  sx: {
3235
3193
  p: 1
3236
3194
  }
3237
3195
  },
3238
- /* @__PURE__ */ import_react22.default.createElement(
3196
+ /* @__PURE__ */ import_react21.default.createElement(
3239
3197
  Button_default,
3240
3198
  {
3241
3199
  size,
@@ -3253,9 +3211,9 @@ var DatePicker = (0, import_react22.forwardRef)((inProps, ref) => {
3253
3211
  },
3254
3212
  "Clear"
3255
3213
  )
3256
- )), presets && presets.length > 0 && /* @__PURE__ */ import_react22.default.createElement(PresetPanel, null, presets.map((preset) => {
3214
+ )), presets && presets.length > 0 && /* @__PURE__ */ import_react21.default.createElement(PresetPanel, null, presets.map((preset) => {
3257
3215
  const disabled2 = isPresetDisabled(preset.value);
3258
- return /* @__PURE__ */ import_react22.default.createElement(
3216
+ return /* @__PURE__ */ import_react21.default.createElement(
3259
3217
  PresetItem,
3260
3218
  {
3261
3219
  key: preset.label,
@@ -3276,11 +3234,11 @@ var DatePicker = (0, import_react22.forwardRef)((inProps, ref) => {
3276
3234
  var DatePicker_default = DatePicker;
3277
3235
 
3278
3236
  // src/components/Textarea/Textarea.tsx
3279
- var import_react23 = __toESM(require("react"));
3237
+ var import_react22 = __toESM(require("react"));
3280
3238
  var import_joy30 = require("@mui/joy");
3281
3239
  var import_framer_motion19 = require("framer-motion");
3282
3240
  var MotionTextarea = (0, import_framer_motion19.motion)(import_joy30.Textarea);
3283
- var TextareaBase = (props) => {
3241
+ var Textarea = (props) => {
3284
3242
  const {
3285
3243
  label,
3286
3244
  error,
@@ -3296,7 +3254,7 @@ var TextareaBase = (props) => {
3296
3254
  className,
3297
3255
  ...innerProps
3298
3256
  } = props;
3299
- const textarea = /* @__PURE__ */ import_react23.default.createElement(
3257
+ const textarea = /* @__PURE__ */ import_react22.default.createElement(
3300
3258
  MotionTextarea,
3301
3259
  {
3302
3260
  required,
@@ -3308,7 +3266,7 @@ var TextareaBase = (props) => {
3308
3266
  ...innerProps
3309
3267
  }
3310
3268
  );
3311
- return /* @__PURE__ */ import_react23.default.createElement(
3269
+ return /* @__PURE__ */ import_react22.default.createElement(
3312
3270
  FormControl_default,
3313
3271
  {
3314
3272
  required,
@@ -3319,22 +3277,18 @@ var TextareaBase = (props) => {
3319
3277
  sx,
3320
3278
  className
3321
3279
  },
3322
- label && /* @__PURE__ */ import_react23.default.createElement(FormLabel_default, null, label),
3280
+ label && /* @__PURE__ */ import_react22.default.createElement(FormLabel_default, null, label),
3323
3281
  textarea,
3324
- helperText && /* @__PURE__ */ import_react23.default.createElement(FormHelperText_default, null, helperText)
3282
+ helperText && /* @__PURE__ */ import_react22.default.createElement(FormHelperText_default, null, helperText)
3325
3283
  );
3326
3284
  };
3327
- var Textarea = import_react23.default.forwardRef((props, ref) => {
3328
- const textareaSlotProps = useSlotRef(props.slotProps?.textarea, ref);
3329
- return /* @__PURE__ */ import_react23.default.createElement(TextareaBase, { ...props, slotProps: { ...props.slotProps, textarea: textareaSlotProps } });
3330
- });
3331
3285
  Textarea.displayName = "Textarea";
3332
3286
 
3333
3287
  // src/components/Textarea/index.ts
3334
3288
  var Textarea_default = Textarea;
3335
3289
 
3336
3290
  // src/components/Select/Select.tsx
3337
- var import_react24 = __toESM(require("react"));
3291
+ var import_react23 = __toESM(require("react"));
3338
3292
  var import_joy31 = require("@mui/joy");
3339
3293
  var import_framer_motion20 = require("framer-motion");
3340
3294
  var MotionOption = (0, import_framer_motion20.motion)(import_joy31.Option);
@@ -3345,7 +3299,7 @@ var secondaryTextLevelMap2 = {
3345
3299
  lg: "body-md"
3346
3300
  };
3347
3301
  Option.displayName = "Option";
3348
- function SelectInner(props, ref) {
3302
+ function Select(props) {
3349
3303
  const {
3350
3304
  label,
3351
3305
  helperText,
@@ -3371,7 +3325,7 @@ function SelectInner(props, ref) {
3371
3325
  formHelperText: formHelperTextProps,
3372
3326
  ...joySlotProps
3373
3327
  } = slotProps ?? {};
3374
- const options = (0, import_react24.useMemo)(
3328
+ const options = (0, import_react23.useMemo)(
3375
3329
  () => props.options.map((option) => {
3376
3330
  if (option.hasOwnProperty("value") && option.hasOwnProperty("label")) {
3377
3331
  return option;
@@ -3396,15 +3350,14 @@ function SelectInner(props, ref) {
3396
3350
  };
3397
3351
  onChange?.(newEvent, newValue);
3398
3352
  };
3399
- const optionMap = (0, import_react24.useMemo)(() => {
3353
+ const optionMap = (0, import_react23.useMemo)(() => {
3400
3354
  const map = /* @__PURE__ */ new Map();
3401
3355
  options.forEach((option) => {
3402
3356
  map.set(option.value, option);
3403
3357
  });
3404
3358
  return map;
3405
3359
  }, [options]);
3406
- const buttonSlotProps = useSlotRef(joySlotProps.button, ref);
3407
- const select = /* @__PURE__ */ import_react24.default.createElement(
3360
+ const select = /* @__PURE__ */ import_react23.default.createElement(
3408
3361
  import_joy31.Select,
3409
3362
  {
3410
3363
  ...innerProps,
@@ -3412,7 +3365,7 @@ function SelectInner(props, ref) {
3412
3365
  disabled,
3413
3366
  size,
3414
3367
  color: error ? "danger" : color,
3415
- slotProps: { ...joySlotProps, button: buttonSlotProps },
3368
+ slotProps: joySlotProps,
3416
3369
  onChange: handleChange,
3417
3370
  renderValue: (selected) => {
3418
3371
  if (!selected) return null;
@@ -3422,9 +3375,9 @@ function SelectInner(props, ref) {
3422
3375
  return optionMap.get(selected.value)?.label;
3423
3376
  }
3424
3377
  },
3425
- options.map((option) => /* @__PURE__ */ import_react24.default.createElement(Option, { key: option.value, value: option.value, disabled: option.disabled }, option.secondaryText ? /* @__PURE__ */ import_react24.default.createElement(import_joy31.ListItemContent, { sx: { gap: 0.5 } }, /* @__PURE__ */ import_react24.default.createElement(import_joy31.Typography, { level: "inherit" }, option.label), /* @__PURE__ */ import_react24.default.createElement(import_joy31.Typography, { level: secondaryTextLevelMap2[size ?? "md"], textColor: "text.tertiary" }, option.secondaryText)) : option.label))
3378
+ options.map((option) => /* @__PURE__ */ import_react23.default.createElement(Option, { key: option.value, value: option.value, disabled: option.disabled }, option.secondaryText ? /* @__PURE__ */ import_react23.default.createElement(import_joy31.ListItemContent, { sx: { gap: 0.5 } }, /* @__PURE__ */ import_react23.default.createElement(import_joy31.Typography, { level: "inherit" }, option.label), /* @__PURE__ */ import_react23.default.createElement(import_joy31.Typography, { level: secondaryTextLevelMap2[size ?? "md"], textColor: "text.tertiary" }, option.secondaryText)) : option.label))
3426
3379
  );
3427
- return /* @__PURE__ */ import_react24.default.createElement(
3380
+ return /* @__PURE__ */ import_react23.default.createElement(
3428
3381
  FormControl_default,
3429
3382
  {
3430
3383
  required,
@@ -3437,12 +3390,11 @@ function SelectInner(props, ref) {
3437
3390
  className,
3438
3391
  ...formControlProps
3439
3392
  },
3440
- label && /* @__PURE__ */ import_react24.default.createElement(FormLabel_default, { ...formLabelProps }, label),
3393
+ label && /* @__PURE__ */ import_react23.default.createElement(FormLabel_default, { ...formLabelProps }, label),
3441
3394
  select,
3442
- helperText && /* @__PURE__ */ import_react24.default.createElement(FormHelperText_default, { ...formHelperTextProps }, helperText)
3395
+ helperText && /* @__PURE__ */ import_react23.default.createElement(FormHelperText_default, { ...formHelperTextProps }, helperText)
3443
3396
  );
3444
3397
  }
3445
- var Select = import_react24.default.forwardRef(SelectInner);
3446
3398
  Select.displayName = "Select";
3447
3399
 
3448
3400
  // src/components/Select/index.ts
@@ -3452,7 +3404,7 @@ var Select_default = Select;
3452
3404
  var import_joy34 = require("@mui/joy");
3453
3405
 
3454
3406
  // src/components/InfoSign/InfoSign.tsx
3455
- var import_react25 = __toESM(require("react"));
3407
+ var import_react24 = __toESM(require("react"));
3456
3408
  var import_joy32 = require("@mui/joy");
3457
3409
  var import_Info = __toESM(require("@mui/icons-material/Info"));
3458
3410
  var InfoIcon = (0, import_joy32.styled)(import_Info.default, {
@@ -3465,7 +3417,7 @@ var InfoIcon = (0, import_joy32.styled)(import_Info.default, {
3465
3417
  }));
3466
3418
  function InfoSign(props) {
3467
3419
  const { message, placement } = props;
3468
- return /* @__PURE__ */ import_react25.default.createElement(
3420
+ return /* @__PURE__ */ import_react24.default.createElement(
3469
3421
  Tooltip_default,
3470
3422
  {
3471
3423
  arrow: true,
@@ -3475,9 +3427,9 @@ function InfoSign(props) {
3475
3427
  maxWidth: "320px"
3476
3428
  }
3477
3429
  },
3478
- title: message?.split("\n").map((line, i) => /* @__PURE__ */ import_react25.default.createElement("div", { key: `info-sign-${i}` }, line))
3430
+ title: message?.split("\n").map((line, i) => /* @__PURE__ */ import_react24.default.createElement("div", { key: `info-sign-${i}` }, line))
3479
3431
  },
3480
- /* @__PURE__ */ import_react25.default.createElement(InfoIcon, null)
3432
+ /* @__PURE__ */ import_react24.default.createElement(InfoIcon, null)
3481
3433
  );
3482
3434
  }
3483
3435
 
@@ -3490,9 +3442,9 @@ var TextEllipsis = ({
3490
3442
  lineClamp,
3491
3443
  ...rest
3492
3444
  }) => {
3493
- const textRef = (0, import_react26.useRef)(null);
3494
- const [showTooltip, setShowTooltip] = (0, import_react26.useState)(false);
3495
- (0, import_react26.useLayoutEffect)(() => {
3445
+ const textRef = (0, import_react25.useRef)(null);
3446
+ const [showTooltip, setShowTooltip] = (0, import_react25.useState)(false);
3447
+ (0, import_react25.useLayoutEffect)(() => {
3496
3448
  const element = textRef.current;
3497
3449
  if (!element) return;
3498
3450
  const checkTruncation = () => {
@@ -3504,21 +3456,21 @@ var TextEllipsis = ({
3504
3456
  ro.observe(element);
3505
3457
  return () => ro.disconnect();
3506
3458
  }, [children, lineClamp]);
3507
- return /* @__PURE__ */ import_react26.default.createElement(Tooltip_default, { title: showTooltip ? children : "", placement: "top" }, /* @__PURE__ */ import_react26.default.createElement(EllipsisDiv, { ref: textRef, lineClamp, ...rest }, children));
3459
+ return /* @__PURE__ */ import_react25.default.createElement(Tooltip_default, { title: showTooltip ? children : "", placement: "top" }, /* @__PURE__ */ import_react25.default.createElement(EllipsisDiv, { ref: textRef, lineClamp, ...rest }, children));
3508
3460
  };
3509
3461
  var CellTextEllipsis = ({ children }) => {
3510
- const textRef = (0, import_react26.useRef)(null);
3511
- const [showTooltip, setShowTooltip] = (0, import_react26.useState)(false);
3512
- (0, import_react26.useLayoutEffect)(() => {
3462
+ const textRef = (0, import_react25.useRef)(null);
3463
+ const [showTooltip, setShowTooltip] = (0, import_react25.useState)(false);
3464
+ (0, import_react25.useLayoutEffect)(() => {
3513
3465
  const element = textRef.current;
3514
3466
  if (element) {
3515
3467
  const isTextTruncated = element.scrollWidth > element.clientWidth;
3516
3468
  setShowTooltip(isTextTruncated);
3517
3469
  }
3518
3470
  }, [children]);
3519
- const content = /* @__PURE__ */ import_react26.default.createElement(EllipsisDiv, { ref: textRef }, children);
3471
+ const content = /* @__PURE__ */ import_react25.default.createElement(EllipsisDiv, { ref: textRef }, children);
3520
3472
  if (showTooltip) {
3521
- return /* @__PURE__ */ import_react26.default.createElement(
3473
+ return /* @__PURE__ */ import_react25.default.createElement(
3522
3474
  Tooltip_default,
3523
3475
  {
3524
3476
  title: children,
@@ -3557,32 +3509,34 @@ var HeadCell = (props) => {
3557
3509
  tableColRef,
3558
3510
  headerClassName,
3559
3511
  headerLineClamp,
3560
- onAutoFit,
3561
- columnId
3512
+ onAutoFit
3562
3513
  } = props;
3563
3514
  const theme = (0, import_joy33.useTheme)();
3564
3515
  const ref = headerRef;
3565
3516
  const colRef = tableColRef;
3566
- const localRef = (0, import_react26.useRef)(null);
3567
- (0, import_react26.useLayoutEffect)(() => {
3517
+ const localRef = (0, import_react25.useRef)(null);
3518
+ (0, import_react25.useLayoutEffect)(() => {
3568
3519
  ref.current = localRef.current;
3569
3520
  }, [ref]);
3570
- const [isHovered, setIsHovered] = (0, import_react26.useState)(false);
3521
+ const [isHovered, setIsHovered] = (0, import_react25.useState)(false);
3571
3522
  const sortable = type === "actions" ? false : _sortable;
3572
- const headId = (0, import_react26.useMemo)(() => getHeaderCellId(tableId, columnId ?? field), [tableId, columnId, field]);
3573
- const isResizingRef = (0, import_react26.useRef)(false);
3574
- const resizer = (0, import_react26.useMemo)(
3523
+ const headId = (0, import_react25.useMemo)(
3524
+ () => `${tableId}_header_${headerName ?? field}`.trim(),
3525
+ [tableId, headerName, field]
3526
+ );
3527
+ const isResizingRef = (0, import_react25.useRef)(false);
3528
+ const resizer = (0, import_react25.useMemo)(
3575
3529
  () => resizable ?? true ? Resizer(
3576
3530
  ref,
3577
3531
  colRef,
3578
3532
  (isResizing) => {
3579
3533
  isResizingRef.current = isResizing;
3580
3534
  },
3581
- onAutoFit ? () => onAutoFit(columnId ?? String(field)) : void 0
3535
+ onAutoFit ? () => onAutoFit(field) : void 0
3582
3536
  ) : null,
3583
- [resizable, ref, colRef, onAutoFit, columnId, field]
3537
+ [resizable, ref, colRef, onAutoFit, field]
3584
3538
  );
3585
- const style = (0, import_react26.useMemo)(
3539
+ const style = (0, import_react25.useMemo)(
3586
3540
  () => ({
3587
3541
  width,
3588
3542
  minWidth: minWidth ?? "50px",
@@ -3600,10 +3554,10 @@ var HeadCell = (props) => {
3600
3554
  );
3601
3555
  const textAlign = getTextAlign(props);
3602
3556
  const initialSort = sortOrder[0];
3603
- const sortIcon = (0, import_react26.useMemo)(() => {
3557
+ const sortIcon = (0, import_react25.useMemo)(() => {
3604
3558
  const isSorted = !!sort;
3605
3559
  const isVisible = sortable && (isSorted || isHovered);
3606
- return /* @__PURE__ */ import_react26.default.createElement(import_framer_motion21.AnimatePresence, { mode: "wait" }, isVisible && /* @__PURE__ */ import_react26.default.createElement(
3560
+ return /* @__PURE__ */ import_react25.default.createElement(import_framer_motion21.AnimatePresence, { mode: "wait" }, isVisible && /* @__PURE__ */ import_react25.default.createElement(
3607
3561
  MotionSortIcon,
3608
3562
  {
3609
3563
  key: "sort-icon",
@@ -3631,21 +3585,21 @@ var HeadCell = (props) => {
3631
3585
  }
3632
3586
  ));
3633
3587
  }, [headId, initialSort, sort, sortable, isHovered]);
3634
- const infoSign = (0, import_react26.useMemo)(
3635
- () => description ? /* @__PURE__ */ import_react26.default.createElement(InfoSign_default, { message: description, placement: "bottom" }) : null,
3588
+ const infoSign = (0, import_react25.useMemo)(
3589
+ () => description ? /* @__PURE__ */ import_react25.default.createElement(InfoSign_default, { message: description, placement: "bottom" }) : null,
3636
3590
  [description]
3637
3591
  );
3638
- const params = (0, import_react26.useMemo)(
3592
+ const params = (0, import_react25.useMemo)(
3639
3593
  () => ({
3640
3594
  field
3641
3595
  }),
3642
3596
  [field]
3643
3597
  );
3644
- const computedHeaderClassName = (0, import_react26.useMemo)(
3598
+ const computedHeaderClassName = (0, import_react25.useMemo)(
3645
3599
  () => (typeof headerClassName === "function" ? headerClassName(params) : headerClassName) || void 0,
3646
3600
  [headerClassName, params]
3647
3601
  );
3648
- return /* @__PURE__ */ import_react26.default.createElement(
3602
+ return /* @__PURE__ */ import_react25.default.createElement(
3649
3603
  StyledTh,
3650
3604
  {
3651
3605
  id: headId,
@@ -3654,7 +3608,7 @@ var HeadCell = (props) => {
3654
3608
  ref: localRef,
3655
3609
  key: field,
3656
3610
  style,
3657
- onClick: (0, import_react26.useCallback)(
3611
+ onClick: (0, import_react25.useCallback)(
3658
3612
  (e) => {
3659
3613
  if (isResizingRef.current) return;
3660
3614
  if (!(e.target instanceof Element) || !e.currentTarget.contains(e.target)) return;
@@ -3668,7 +3622,7 @@ var HeadCell = (props) => {
3668
3622
  initial: "initial",
3669
3623
  className: computedHeaderClassName
3670
3624
  },
3671
- /* @__PURE__ */ import_react26.default.createElement(Stack_default, { gap: 1, direction: "row", justifyContent: textAlign, alignItems: "center", sx: { minWidth: 0 } }, textAlign === "end" && sortIcon, textAlign === "end" && infoSign, /* @__PURE__ */ import_react26.default.createElement(TextEllipsis, { lineClamp: headerLineClamp, "data-slot": "header-text" }, headerName ?? field, editMode && required && /* @__PURE__ */ import_react26.default.createElement(Asterisk, null, "*")), textAlign === "start" && infoSign, textAlign === "start" && sortIcon),
3625
+ /* @__PURE__ */ import_react25.default.createElement(Stack_default, { gap: 1, direction: "row", justifyContent: textAlign, alignItems: "center", sx: { minWidth: 0 } }, textAlign === "end" && sortIcon, textAlign === "end" && infoSign, /* @__PURE__ */ import_react25.default.createElement(TextEllipsis, { lineClamp: headerLineClamp, "data-slot": "header-text" }, headerName ?? field, editMode && required && /* @__PURE__ */ import_react25.default.createElement(Asterisk, null, "*")), textAlign === "start" && infoSign, textAlign === "start" && sortIcon),
3672
3626
  resizer
3673
3627
  );
3674
3628
  };
@@ -3693,9 +3647,9 @@ var BodyCell = (props) => {
3693
3647
  onCellEditStop
3694
3648
  } = props;
3695
3649
  const theme = (0, import_joy33.useTheme)();
3696
- const [value, setValue] = (0, import_react26.useState)(row[field]);
3697
- const cellRef = (0, import_react26.useRef)(null);
3698
- const params = (0, import_react26.useMemo)(
3650
+ const [value, setValue] = (0, import_react25.useState)(row[field]);
3651
+ const cellRef = (0, import_react25.useRef)(null);
3652
+ const params = (0, import_react25.useMemo)(
3699
3653
  () => ({
3700
3654
  row,
3701
3655
  value,
@@ -3704,20 +3658,20 @@ var BodyCell = (props) => {
3704
3658
  }),
3705
3659
  [row, rowId, value, field]
3706
3660
  );
3707
- const editMode = (0, import_react26.useMemo)(
3661
+ const editMode = (0, import_react25.useMemo)(
3708
3662
  () => !!(props.editMode && (typeof isCellEditable === "function" ? isCellEditable(params) : isCellEditable ?? true)),
3709
3663
  [props.editMode, isCellEditable, params]
3710
3664
  );
3711
3665
  const propsComponentProps = "componentProps" in props ? props.componentProps : null;
3712
3666
  const hasComponentProps = "componentProps" in props;
3713
- const componentProps = (0, import_react26.useMemo)(
3667
+ const componentProps = (0, import_react25.useMemo)(
3714
3668
  () => ({
3715
3669
  ...hasComponentProps && (typeof propsComponentProps === "function" ? propsComponentProps(params) : propsComponentProps || {}),
3716
3670
  size: "sm"
3717
3671
  }),
3718
3672
  [hasComponentProps, propsComponentProps, params]
3719
3673
  );
3720
- const editModeComponentProps = (0, import_react26.useMemo)(
3674
+ const editModeComponentProps = (0, import_react25.useMemo)(
3721
3675
  () => ({
3722
3676
  ...componentProps,
3723
3677
  onChange: (e) => {
@@ -3779,25 +3733,25 @@ var BodyCell = (props) => {
3779
3733
  }),
3780
3734
  [params, row, field, value, componentProps, type, onCellEditStop, onCellEditStart]
3781
3735
  );
3782
- const MemoizedRenderEditCell = (0, import_react26.useMemo)(() => renderEditCell ? (0, import_react26.memo)(renderEditCell) : null, [renderEditCell]);
3783
- const MemoizedRenderCell = (0, import_react26.useMemo)(() => renderCell ? (0, import_react26.memo)(renderCell) : null, [renderCell]);
3784
- const EditModeComponent = (0, import_react26.useMemo)(() => {
3736
+ const MemoizedRenderEditCell = (0, import_react25.useMemo)(() => renderEditCell ? (0, import_react25.memo)(renderEditCell) : null, [renderEditCell]);
3737
+ const MemoizedRenderCell = (0, import_react25.useMemo)(() => renderCell ? (0, import_react25.memo)(renderCell) : null, [renderCell]);
3738
+ const EditModeComponent = (0, import_react25.useMemo)(() => {
3785
3739
  if (MemoizedRenderEditCell) {
3786
- return (0, import_react26.createElement)(MemoizedRenderEditCell, params);
3740
+ return (0, import_react25.createElement)(MemoizedRenderEditCell, params);
3787
3741
  }
3788
3742
  return {
3789
- date: /* @__PURE__ */ import_react26.default.createElement(DatePicker_default, { value, ...editModeComponentProps }),
3790
- currency: /* @__PURE__ */ import_react26.default.createElement(
3743
+ date: /* @__PURE__ */ import_react25.default.createElement(DatePicker_default, { value, ...editModeComponentProps }),
3744
+ currency: /* @__PURE__ */ import_react25.default.createElement(
3791
3745
  CurrencyInput_default,
3792
3746
  {
3793
3747
  value,
3794
3748
  ...editModeComponentProps
3795
3749
  }
3796
3750
  ),
3797
- number: /* @__PURE__ */ import_react26.default.createElement(Input_default, { value, type: "number", ...editModeComponentProps }),
3798
- text: /* @__PURE__ */ import_react26.default.createElement(Input_default, { value, type: "text", ...editModeComponentProps }),
3799
- longText: /* @__PURE__ */ import_react26.default.createElement(Textarea_default, { value, ...editModeComponentProps }),
3800
- autocomplete: /* @__PURE__ */ import_react26.default.createElement(
3751
+ number: /* @__PURE__ */ import_react25.default.createElement(Input_default, { value, type: "number", ...editModeComponentProps }),
3752
+ text: /* @__PURE__ */ import_react25.default.createElement(Input_default, { value, type: "text", ...editModeComponentProps }),
3753
+ longText: /* @__PURE__ */ import_react25.default.createElement(Textarea_default, { value, ...editModeComponentProps }),
3754
+ autocomplete: /* @__PURE__ */ import_react25.default.createElement(
3801
3755
  Autocomplete_default,
3802
3756
  {
3803
3757
  value,
@@ -3805,7 +3759,7 @@ var BodyCell = (props) => {
3805
3759
  ...editModeComponentProps
3806
3760
  }
3807
3761
  ),
3808
- select: /* @__PURE__ */ import_react26.default.createElement(
3762
+ select: /* @__PURE__ */ import_react25.default.createElement(
3809
3763
  Select_default,
3810
3764
  {
3811
3765
  value,
@@ -3816,13 +3770,13 @@ var BodyCell = (props) => {
3816
3770
  }[type || "text"];
3817
3771
  }, [value, editModeComponentProps, type, MemoizedRenderEditCell, params]);
3818
3772
  const linkComponentFromProps = props.component;
3819
- const ReadModeComponent = (0, import_react26.useMemo)(() => {
3773
+ const ReadModeComponent = (0, import_react25.useMemo)(() => {
3820
3774
  if (MemoizedRenderCell) {
3821
- return (0, import_react26.createElement)(MemoizedRenderCell, params);
3775
+ return (0, import_react25.createElement)(MemoizedRenderCell, params);
3822
3776
  }
3823
3777
  const innerText = value;
3824
3778
  const typedComponent = {
3825
- link: import_react26.default.createElement(linkComponentFromProps || import_joy34.Link, {
3779
+ link: import_react25.default.createElement(linkComponentFromProps || import_joy34.Link, {
3826
3780
  children: innerText,
3827
3781
  ...componentProps
3828
3782
  })
@@ -3830,27 +3784,27 @@ var BodyCell = (props) => {
3830
3784
  return typedComponent || innerText;
3831
3785
  }, [value, MemoizedRenderCell, params, type, componentProps, linkComponentFromProps]);
3832
3786
  const getActions = props.getActions;
3833
- const CellComponent = (0, import_react26.useMemo)(() => {
3787
+ const CellComponent = (0, import_react25.useMemo)(() => {
3834
3788
  if (type === "actions") {
3835
- return /* @__PURE__ */ import_react26.default.createElement(Stack_default, { direction: "row", gap: 1, justifyContent: "center", alignItems: "center" }, getActions?.(params));
3789
+ return /* @__PURE__ */ import_react25.default.createElement(Stack_default, { direction: "row", gap: 1, justifyContent: "center", alignItems: "center" }, getActions?.(params));
3836
3790
  }
3837
3791
  return editMode && EditModeComponent ? EditModeComponent : ReadModeComponent;
3838
3792
  }, [type, getActions, params, editMode, EditModeComponent, ReadModeComponent]);
3839
- const showTooltip = (0, import_react26.useMemo)(() => noWrap && type === "longText", [noWrap, type]);
3793
+ const showTooltip = (0, import_react25.useMemo)(() => noWrap && type === "longText", [noWrap, type]);
3840
3794
  const isBoundary = props.isLastStartPinnedColumn || props.isLastEndPinnedColumn;
3841
- const computedCellClassName = (0, import_react26.useMemo)(
3795
+ const computedCellClassName = (0, import_react25.useMemo)(
3842
3796
  () => (typeof cellClassName === "function" ? cellClassName(params) : cellClassName) || "",
3843
3797
  [cellClassName, params]
3844
3798
  );
3845
- (0, import_react26.useEffect)(() => {
3799
+ (0, import_react25.useEffect)(() => {
3846
3800
  setValue(row[field]);
3847
3801
  }, [row, field]);
3848
- return /* @__PURE__ */ import_react26.default.createElement(
3802
+ return /* @__PURE__ */ import_react25.default.createElement(
3849
3803
  StyledTd,
3850
3804
  {
3851
3805
  ref: cellRef,
3852
3806
  key: field,
3853
- headers: getHeaderCellId(tableId, props.columnId ?? field),
3807
+ headers: `${tableId}_header_${props.headerName ?? field}`,
3854
3808
  sx: {
3855
3809
  textAlign: getTextAlign({ type }),
3856
3810
  verticalAlign: editMode ? "top" : "middle",
@@ -3862,16 +3816,16 @@ var BodyCell = (props) => {
3862
3816
  },
3863
3817
  className: [isLastStartPinnedColumn && "is-last-left", isLastEndPinnedColumn && "is-last-right", computedCellClassName].filter(Boolean).join(" ") || ""
3864
3818
  },
3865
- (0, import_react26.useMemo)(
3866
- () => showTooltip ? /* @__PURE__ */ import_react26.default.createElement(CellTextEllipsis, null, CellComponent) : CellComponent,
3819
+ (0, import_react25.useMemo)(
3820
+ () => showTooltip ? /* @__PURE__ */ import_react25.default.createElement(CellTextEllipsis, null, CellComponent) : CellComponent,
3867
3821
  [CellComponent, showTooltip]
3868
3822
  )
3869
3823
  );
3870
3824
  };
3871
- var BodyRow = (0, import_react26.memo)(
3825
+ var BodyRow = (0, import_react25.memo)(
3872
3826
  (props) => {
3873
3827
  const { tableId, columns, rowId, editMode, noWrap, row } = props;
3874
- return /* @__PURE__ */ import_react26.default.createElement(import_react26.default.Fragment, null, columns.map((column, i) => /* @__PURE__ */ import_react26.default.createElement(
3828
+ return /* @__PURE__ */ import_react25.default.createElement(import_react25.default.Fragment, null, columns.map((column, i) => /* @__PURE__ */ import_react25.default.createElement(
3875
3829
  BodyCell,
3876
3830
  {
3877
3831
  key: `${rowId}_${column.field.toString()}_${i}`,
@@ -3904,7 +3858,7 @@ var StyledTableRow2 = (0, import_joy33.styled)("tr", {
3904
3858
  }
3905
3859
  }
3906
3860
  }));
3907
- var VirtualizedTableRow = (0, import_react26.memo)(StyledTableRow2, (prevProps, nextProps) => {
3861
+ var VirtualizedTableRow = (0, import_react25.memo)(StyledTableRow2, (prevProps, nextProps) => {
3908
3862
  return prevProps.striped === nextProps.striped && prevProps.style?.height === nextProps.style?.height && prevProps.style?.transform === nextProps.style?.transform && // @ts-ignore
3909
3863
  prevProps["data-row-id"] === nextProps["data-row-id"] && // @ts-ignore
3910
3864
  prevProps["data-index"] === nextProps["data-index"] && prevProps.tabIndex === nextProps.tabIndex && prevProps["aria-checked"] === nextProps["aria-checked"] && // Track column structure changes (e.g. isCellEditable toggled, columns added/removed)
@@ -3915,46 +3869,36 @@ var VirtualizedTableRow = (0, import_react26.memo)(StyledTableRow2, (prevProps,
3915
3869
  });
3916
3870
 
3917
3871
  // src/components/DataTable/hooks.ts
3918
- var import_react27 = require("react");
3919
- function useColumnWidths(columnsById) {
3920
- const [widths, setWidths] = (0, import_react27.useState)({});
3921
- const roRef = (0, import_react27.useRef)();
3922
- (0, import_react27.useLayoutEffect)(() => {
3872
+ var import_react26 = require("react");
3873
+ function useColumnWidths(columnsByField) {
3874
+ const [widths, setWidths] = (0, import_react26.useState)({});
3875
+ const roRef = (0, import_react26.useRef)();
3876
+ (0, import_react26.useLayoutEffect)(() => {
3923
3877
  if (roRef.current) roRef.current.disconnect();
3924
3878
  roRef.current = new ResizeObserver((entries) => {
3879
+ let changed = false;
3925
3880
  setWidths((prev) => {
3926
- let changed = false;
3927
3881
  const next = { ...prev };
3928
3882
  entries.forEach((entry) => {
3929
- const columnId = entry.target.dataset.hdsColumnId;
3883
+ const field = entry.target.dataset.field;
3930
3884
  const w = Math.round(entry.target.getBoundingClientRect().width);
3931
- if (w === 0) return;
3932
- if (next[columnId] !== w) {
3933
- next[columnId] = w;
3885
+ if (next[field] !== w) {
3886
+ next[field] = w;
3934
3887
  changed = true;
3935
3888
  }
3936
3889
  });
3937
3890
  return changed ? next : prev;
3938
3891
  });
3939
3892
  });
3940
- const measured = {};
3941
- Object.entries(columnsById).forEach(([columnId, def]) => {
3893
+ Object.entries(columnsByField).forEach(([field, def]) => {
3942
3894
  const el = def.headerRef.current;
3943
3895
  if (el) {
3944
- el.dataset.hdsColumnId = columnId;
3945
- el.dataset.field = String(def.field);
3946
- const w = Math.round(el.getBoundingClientRect().width);
3947
- if (w > 0) measured[columnId] = w;
3896
+ el.dataset.field = field;
3948
3897
  roRef.current.observe(el);
3949
3898
  }
3950
3899
  });
3951
- setWidths((prev) => {
3952
- const keys = Object.keys(measured);
3953
- const same = keys.length === Object.keys(prev).length && keys.every((key) => prev[key] === measured[key]);
3954
- return same ? prev : measured;
3955
- });
3956
3900
  return () => roRef.current?.disconnect();
3957
- }, [columnsById]);
3901
+ }, [columnsByField]);
3958
3902
  return widths;
3959
3903
  }
3960
3904
  function useDataTableRenderer({
@@ -3986,40 +3930,33 @@ function useDataTableRenderer({
3986
3930
  "You cannot use both `pinnedColumns` and `columnGroupingModel` at the same time. Please choose one of them."
3987
3931
  );
3988
3932
  }
3989
- const onSelectionModelChangeRef = (0, import_react27.useRef)(onSelectionModelChange);
3933
+ const onSelectionModelChangeRef = (0, import_react26.useRef)(onSelectionModelChange);
3990
3934
  onSelectionModelChangeRef.current = onSelectionModelChange;
3991
- const [focusedRowId, setFocusedRowId] = (0, import_react27.useState)(null);
3992
- const [selectionAnchor, setSelectionAnchor] = (0, import_react27.useState)(null);
3935
+ const [focusedRowId, setFocusedRowId] = (0, import_react26.useState)(null);
3936
+ const [selectionAnchor, setSelectionAnchor] = (0, import_react26.useState)(null);
3993
3937
  const [sortModel, setSortModel] = useControlledState(
3994
3938
  controlledSortModel,
3995
3939
  initialState?.sorting?.sortModel ?? [],
3996
- (0, import_react27.useCallback)((sortModel2) => onSortModelChange?.(sortModel2), [onSortModelChange])
3940
+ (0, import_react26.useCallback)((sortModel2) => onSortModelChange?.(sortModel2), [onSortModelChange])
3997
3941
  );
3998
3942
  const [visibilityModel] = useControlledState(
3999
3943
  columnVisibilityModel,
4000
3944
  initialState?.columns?.columnVisibilityModel ?? {},
4001
- (0, import_react27.useCallback)(
3945
+ (0, import_react26.useCallback)(
4002
3946
  (model) => onColumnVisibilityModelChange?.(model),
4003
3947
  [onColumnVisibilityModelChange]
4004
3948
  )
4005
3949
  );
4006
- const reorderedColumns = (0, import_react27.useMemo)(() => {
3950
+ const reorderedColumns = (0, import_react26.useMemo)(() => {
4007
3951
  if (!columnGroupingModel) return columnsProp;
4008
3952
  return reorderColumnsByGroupingModel(columnsProp, columnGroupingModel);
4009
3953
  }, [columnsProp, columnGroupingModel]);
4010
- const visibleColumnIndexes = (0, import_react27.useMemo)(
4011
- () => reorderedColumns.reduce((acc, col, index) => {
4012
- if (visibilityModel[col.field] !== false) acc.push(index);
4013
- return acc;
4014
- }, []),
3954
+ const visibleColumns = (0, import_react26.useMemo)(
3955
+ () => reorderedColumns.filter((col) => visibilityModel[col.field] !== false),
4015
3956
  [reorderedColumns, visibilityModel]
4016
3957
  );
4017
- const visibleColumns = (0, import_react27.useMemo)(
4018
- () => visibleColumnIndexes.map((index) => reorderedColumns[index]),
4019
- [visibleColumnIndexes, reorderedColumns]
4020
- );
4021
- const visibleFieldSet = (0, import_react27.useMemo)(() => new Set(visibleColumns.map((c) => c.field)), [visibleColumns]);
4022
- const tableMinWidth = (0, import_react27.useMemo)(() => {
3958
+ const visibleFieldSet = (0, import_react26.useMemo)(() => new Set(visibleColumns.map((c) => c.field)), [visibleColumns]);
3959
+ const tableMinWidth = (0, import_react26.useMemo)(() => {
4023
3960
  const DEFAULT_MIN = 50;
4024
3961
  let total = checkboxSelection ? 40 : 0;
4025
3962
  for (const col of visibleColumns) {
@@ -4027,7 +3964,7 @@ function useDataTableRenderer({
4027
3964
  }
4028
3965
  return total;
4029
3966
  }, [visibleColumns, checkboxSelection]);
4030
- const allColumnsByField = (0, import_react27.useMemo)(
3967
+ const allColumnsByField = (0, import_react26.useMemo)(
4031
3968
  () => reorderedColumns.reduce(
4032
3969
  (acc, curr) => ({
4033
3970
  ...acc,
@@ -4037,39 +3974,21 @@ function useDataTableRenderer({
4037
3974
  ),
4038
3975
  [reorderedColumns]
4039
3976
  );
4040
- const allColumnIds = (0, import_react27.useMemo)(() => {
4041
- const taken = new Set(reorderedColumns.map((column) => String(column.field)));
4042
- const assigned = /* @__PURE__ */ new Set();
4043
- return reorderedColumns.map((column) => {
4044
- const field = String(column.field);
4045
- if (!assigned.has(field)) {
4046
- assigned.add(field);
4047
- return field;
4048
- }
4049
- let n = 2;
4050
- while (taken.has(`${field}__${n}`)) n += 1;
4051
- taken.add(`${field}__${n}`);
4052
- return `${field}__${n}`;
4053
- });
4054
- }, [reorderedColumns]);
4055
- const columnIds = (0, import_react27.useMemo)(
4056
- () => visibleColumnIndexes.map((index) => allColumnIds[index]),
4057
- [visibleColumnIndexes, allColumnIds]
4058
- );
4059
- const visibleColumnsById = (0, import_react27.useMemo)(
4060
- () => Object.fromEntries(
4061
- visibleColumns.map((column, index) => [
4062
- columnIds[index],
4063
- {
4064
- ...column,
4065
- headerRef: (0, import_react27.createRef)(),
4066
- tableColRef: (0, import_react27.createRef)()
3977
+ const visibleColumnsByField = (0, import_react26.useMemo)(
3978
+ () => visibleColumns.reduce(
3979
+ (acc, curr) => ({
3980
+ ...acc,
3981
+ [curr.field]: {
3982
+ ...curr,
3983
+ headerRef: (0, import_react26.createRef)(),
3984
+ tableColRef: (0, import_react26.createRef)()
4067
3985
  }
4068
- ])
3986
+ }),
3987
+ {}
4069
3988
  ),
4070
- [visibleColumns, columnIds]
3989
+ [visibleColumns]
4071
3990
  );
4072
- const sortComparator = (0, import_react27.useCallback)(
3991
+ const sortComparator = (0, import_react26.useCallback)(
4073
3992
  (rowA, rowB) => {
4074
3993
  for (const sort of sortModel) {
4075
3994
  const { field, sort: direction } = sort;
@@ -4098,33 +4017,33 @@ function useDataTableRenderer({
4098
4017
  },
4099
4018
  [sortModel, allColumnsByField]
4100
4019
  );
4101
- const rows = (0, import_react27.useMemo)(
4020
+ const rows = (0, import_react26.useMemo)(
4102
4021
  () => sortModel.length ? [..._rows].sort(sortComparator) : _rows,
4103
4022
  [_rows, sortModel, sortComparator]
4104
4023
  );
4105
- const sortOrder = (0, import_react27.useMemo)(
4024
+ const sortOrder = (0, import_react26.useMemo)(
4106
4025
  () => Array.from(new Set(_sortOrder || ["asc", "desc", null])),
4107
4026
  [_sortOrder]
4108
4027
  );
4109
- const [page, setPage] = (0, import_react27.useState)(paginationModel?.page || 1);
4028
+ const [page, setPage] = (0, import_react26.useState)(paginationModel?.page || 1);
4110
4029
  const pageSize = paginationModel?.pageSize || 20;
4111
- const getId = (0, import_react27.useCallback)(
4030
+ const getId = (0, import_react26.useCallback)(
4112
4031
  (row, index) => _getId?.(row) ?? row.id ?? `${(index || 0) + (page - 1) * pageSize}`,
4113
4032
  [_getId, page, pageSize]
4114
4033
  );
4115
- const selectedModelSet = (0, import_react27.useMemo)(() => new Set(selectionModel || []), [selectionModel]);
4116
- const dataInPage = (0, import_react27.useMemo)(
4034
+ const selectedModelSet = (0, import_react26.useMemo)(() => new Set(selectionModel || []), [selectionModel]);
4035
+ const dataInPage = (0, import_react26.useMemo)(
4117
4036
  () => !pagination || paginationMode === "server" ? rows : rows.slice((page - 1) * pageSize, (page - 1) * pageSize + pageSize),
4118
4037
  [rows, page, pageSize, paginationMode, pagination]
4119
4038
  );
4120
- const selectableDataInPage = (0, import_react27.useMemo)(
4039
+ const selectableDataInPage = (0, import_react26.useMemo)(
4121
4040
  () => dataInPage.filter((row, i) => {
4122
4041
  if (!isRowSelectable) return true;
4123
4042
  return isRowSelectable({ row, id: getId(row, i) });
4124
4043
  }),
4125
4044
  [dataInPage, isRowSelectable, getId]
4126
4045
  );
4127
- const handleRangeSelection = (0, import_react27.useCallback)(
4046
+ const handleRangeSelection = (0, import_react26.useCallback)(
4128
4047
  (anchor, targetIndex) => {
4129
4048
  const startIndex = Math.min(anchor.rowIndex, targetIndex);
4130
4049
  const endIndex = Math.max(anchor.rowIndex, targetIndex);
@@ -4147,60 +4066,51 @@ function useDataTableRenderer({
4147
4066
  },
4148
4067
  [dataInPage, getId, isRowSelectable, selectionModel, onSelectionModelChange]
4149
4068
  );
4150
- const isAllSelected = (0, import_react27.useMemo)(
4069
+ const isAllSelected = (0, import_react26.useMemo)(
4151
4070
  () => selectableDataInPage.length > 0 && selectableDataInPage.every((row, i) => selectedModelSet.has(getId(row, i))),
4152
4071
  [selectableDataInPage, selectedModelSet, getId]
4153
4072
  );
4154
4073
  const rowCount = totalRowsProp || rows.length;
4155
- const selectableRowCount = (0, import_react27.useMemo)(() => {
4074
+ const selectableRowCount = (0, import_react26.useMemo)(() => {
4156
4075
  if (!isRowSelectable) return rowCount;
4157
4076
  return rows.filter((row, i) => isRowSelectable({ row, id: getId(row, i) })).length;
4158
4077
  }, [rows, isRowSelectable, getId, rowCount]);
4159
- const isTotalSelected = (0, import_react27.useMemo)(
4078
+ const isTotalSelected = (0, import_react26.useMemo)(
4160
4079
  () => _isTotalSelected ?? (selectableRowCount > 0 && (selectionModel?.length || 0) === selectableRowCount),
4161
4080
  [_isTotalSelected, selectionModel, selectableRowCount]
4162
4081
  );
4163
- const columnWidths = useColumnWidths(visibleColumnsById);
4164
- const measuredWidthByField = (0, import_react27.useMemo)(
4165
- () => Object.fromEntries(
4166
- Object.entries(visibleColumnsById).map(([columnId, column]) => [column.field, columnWidths[columnId]])
4167
- ),
4168
- [visibleColumnsById, columnWidths]
4169
- );
4170
- const getWidth = (0, import_react27.useCallback)(
4171
- // 반환값은 pinned offset으로 더해지므로 반드시 숫자여야 한다. width/minWidth는 '500px' 같은 문자열.
4172
- (f) => measuredWidthByField[f] ?? parsePxValue(allColumnsByField[f]?.width) ?? // Column prop 으로 지정된 width
4173
- parsePxValue(allColumnsByField[f]?.minWidth) ?? 0,
4174
- [measuredWidthByField, allColumnsByField]
4082
+ const columnWidths = useColumnWidths(visibleColumnsByField);
4083
+ const getWidth = (0, import_react26.useCallback)(
4084
+ (f) => columnWidths[f] ?? allColumnsByField[f]?.width ?? // Column prop 으로 지정된 width
4085
+ allColumnsByField[f]?.minWidth ?? 0,
4086
+ [columnWidths, allColumnsByField]
4175
4087
  );
4176
- const processedColumnGroups = (0, import_react27.useMemo)(() => {
4088
+ const processedColumnGroups = (0, import_react26.useMemo)(() => {
4177
4089
  if (!columnGroupingModel) return null;
4178
4090
  return calculateColumnGroups(columnGroupingModel, visibleColumns, visibleFieldSet);
4179
4091
  }, [columnGroupingModel, visibleColumns, visibleFieldSet]);
4180
- const effectivePinnedLeft = (0, import_react27.useMemo)(
4092
+ const effectivePinnedLeft = (0, import_react26.useMemo)(
4181
4093
  () => pinnedColumns?.left?.filter((f) => visibleFieldSet.has(f)),
4182
4094
  [pinnedColumns?.left, visibleFieldSet]
4183
4095
  );
4184
- const effectivePinnedRight = (0, import_react27.useMemo)(
4096
+ const effectivePinnedRight = (0, import_react26.useMemo)(
4185
4097
  () => pinnedColumns?.right?.filter((f) => visibleFieldSet.has(f)),
4186
4098
  [pinnedColumns?.right, visibleFieldSet]
4187
4099
  );
4188
4100
  const inferredFieldsKey = JSON.stringify(Object.keys(rows[0] || {}));
4189
- const inferredFields = (0, import_react27.useMemo)(() => JSON.parse(inferredFieldsKey), [inferredFieldsKey]);
4190
- const columns = (0, import_react27.useMemo)(() => {
4101
+ const inferredFields = (0, import_react26.useMemo)(() => JSON.parse(inferredFieldsKey), [inferredFieldsKey]);
4102
+ const columns = (0, import_react26.useMemo)(() => {
4191
4103
  const baseColumns = visibleColumns.length > 0 ? visibleColumns : reorderedColumns.length > 0 ? [] : inferredFields.map((key) => ({
4192
4104
  field: key
4193
4105
  }));
4194
- return baseColumns.map((column, index) => {
4195
- const columnId = columnIds[index] ?? String(column.field);
4106
+ return baseColumns.map((column) => {
4196
4107
  const isLeftPinned = effectivePinnedLeft?.includes(column.field);
4197
4108
  const isRightPinned = effectivePinnedRight?.includes(column.field);
4198
4109
  const isPinned = isLeftPinned || isRightPinned;
4199
4110
  return {
4200
4111
  ...column,
4201
- columnId,
4202
- headerRef: visibleColumnsById[columnId]?.headerRef,
4203
- tableColRef: visibleColumnsById[columnId]?.tableColRef,
4112
+ headerRef: visibleColumnsByField[column.field]?.headerRef,
4113
+ tableColRef: visibleColumnsByField[column.field]?.tableColRef,
4204
4114
  isCellEditable: editMode && (typeof column.isCellEditable === "function" ? column.isCellEditable : column.isCellEditable ?? true),
4205
4115
  sort: sortModel.find((sort) => sort.field === column.field)?.sort,
4206
4116
  sortOrder: allColumnsByField[column.field]?.sortOrder || sortOrder,
@@ -4217,22 +4127,21 @@ function useDataTableRenderer({
4217
4127
  inferredFields,
4218
4128
  effectivePinnedLeft,
4219
4129
  effectivePinnedRight,
4220
- columnIds,
4221
- visibleColumnsById,
4130
+ visibleColumnsByField,
4222
4131
  allColumnsByField,
4223
4132
  editMode,
4224
4133
  sortModel,
4225
4134
  sortOrder,
4226
4135
  getWidth
4227
4136
  ]);
4228
- const handlePageChange = (0, import_react27.useCallback)(
4137
+ const handlePageChange = (0, import_react26.useCallback)(
4229
4138
  (newPage) => {
4230
4139
  setPage(newPage);
4231
4140
  onPaginationModelChange?.({ page: newPage, pageSize });
4232
4141
  },
4233
4142
  [onPaginationModelChange, pageSize]
4234
4143
  );
4235
- const handleSortChange = (0, import_react27.useCallback)(
4144
+ const handleSortChange = (0, import_react26.useCallback)(
4236
4145
  (props) => {
4237
4146
  const { field, currentSort, multiple } = props;
4238
4147
  const column = allColumnsByField[field];
@@ -4255,37 +4164,38 @@ function useDataTableRenderer({
4255
4164
  },
4256
4165
  [sortOrder, allColumnsByField, sortModel, setSortModel]
4257
4166
  );
4258
- (0, import_react27.useEffect)(() => {
4167
+ (0, import_react26.useEffect)(() => {
4259
4168
  if (!paginationModel) {
4260
4169
  handlePageChange(1);
4261
4170
  }
4262
4171
  }, [rowCount, handlePageChange, paginationModel]);
4263
- (0, import_react27.useEffect)(() => {
4172
+ (0, import_react26.useEffect)(() => {
4264
4173
  const lastPage = Math.max(1, Math.ceil(rowCount / pageSize));
4265
4174
  if (page > lastPage) {
4266
4175
  handlePageChange(lastPage);
4267
4176
  }
4268
4177
  }, [page, rowCount, pageSize, handlePageChange]);
4269
- (0, import_react27.useEffect)(() => {
4178
+ (0, import_react26.useEffect)(() => {
4270
4179
  onSelectionModelChangeRef.current?.([]);
4271
4180
  setSelectionAnchor(null);
4272
4181
  }, [page]);
4273
- const prevRowsRef = (0, import_react27.useRef)(_rows);
4274
- (0, import_react27.useEffect)(() => {
4182
+ const prevRowsRef = (0, import_react26.useRef)(_rows);
4183
+ (0, import_react26.useEffect)(() => {
4275
4184
  if (prevRowsRef.current !== _rows) {
4276
4185
  setSelectionAnchor(null);
4277
4186
  prevRowsRef.current = _rows;
4278
4187
  }
4279
4188
  }, [_rows]);
4280
- const handleAutoFit = (0, import_react27.useCallback)(
4281
- (columnId) => {
4282
- const colDef = visibleColumnsById[columnId];
4189
+ const handleAutoFit = (0, import_react26.useCallback)(
4190
+ (field) => {
4191
+ const colDef = visibleColumnsByField[field];
4283
4192
  if (!colDef?.headerRef.current) return;
4284
- const columnType = "type" in colDef ? colDef.type : void 0;
4193
+ const column = allColumnsByField[field];
4194
+ const columnType = column && "type" in column ? column.type : void 0;
4285
4195
  if (columnType === "actions") return;
4286
4196
  const optimalWidth = computeAutoFitWidth({
4287
4197
  headerEl: colDef.headerRef.current,
4288
- field: colDef.field,
4198
+ field,
4289
4199
  dataInPage
4290
4200
  });
4291
4201
  if (optimalWidth == null) return;
@@ -4293,7 +4203,7 @@ function useDataTableRenderer({
4293
4203
  colDef.headerRef.current.style.width = widthPx;
4294
4204
  if (colDef.tableColRef.current) colDef.tableColRef.current.style.width = widthPx;
4295
4205
  },
4296
- [visibleColumnsById, dataInPage]
4206
+ [visibleColumnsByField, allColumnsByField, dataInPage]
4297
4207
  );
4298
4208
  return {
4299
4209
  rowCount,
@@ -4309,8 +4219,8 @@ function useDataTableRenderer({
4309
4219
  handleAutoFit,
4310
4220
  isAllSelected,
4311
4221
  isTotalSelected,
4312
- isSelectedRow: (0, import_react27.useCallback)((model) => selectedModelSet.has(model), [selectedModelSet]),
4313
- isRowSelectable: (0, import_react27.useCallback)(
4222
+ isSelectedRow: (0, import_react26.useCallback)((model) => selectedModelSet.has(model), [selectedModelSet]),
4223
+ isRowSelectable: (0, import_react26.useCallback)(
4314
4224
  (rowId, row) => {
4315
4225
  if (!isRowSelectable) return true;
4316
4226
  return isRowSelectable({ row, id: rowId });
@@ -4318,13 +4228,13 @@ function useDataTableRenderer({
4318
4228
  [isRowSelectable]
4319
4229
  ),
4320
4230
  focusedRowId,
4321
- onRowFocus: (0, import_react27.useCallback)((rowId) => {
4231
+ onRowFocus: (0, import_react26.useCallback)((rowId) => {
4322
4232
  setFocusedRowId(rowId);
4323
4233
  }, []),
4324
- onAllCheckboxChange: (0, import_react27.useCallback)(() => {
4234
+ onAllCheckboxChange: (0, import_react26.useCallback)(() => {
4325
4235
  onSelectionModelChange?.(isAllSelected ? [] : selectableDataInPage.map(getId));
4326
4236
  }, [isAllSelected, selectableDataInPage, onSelectionModelChange, getId]),
4327
- onCheckboxChange: (0, import_react27.useCallback)(
4237
+ onCheckboxChange: (0, import_react26.useCallback)(
4328
4238
  (event, selectedModel) => {
4329
4239
  const isShiftClick = "shiftKey" in event && event.shiftKey;
4330
4240
  const rowIndex = dataInPage.findIndex((row, i) => getId(row, i) === selectedModel);
@@ -4358,7 +4268,7 @@ function useDataTableRenderer({
4358
4268
  columns,
4359
4269
  tableMinWidth,
4360
4270
  processedColumnGroups,
4361
- onTotalSelect: (0, import_react27.useCallback)(() => {
4271
+ onTotalSelect: (0, import_react26.useCallback)(() => {
4362
4272
  const selectableRows = rows.filter((row, i) => {
4363
4273
  if (!isRowSelectable) return true;
4364
4274
  return isRowSelectable({ row, id: getId(row, i) });
@@ -4372,11 +4282,11 @@ function useDataTableRenderer({
4372
4282
  }
4373
4283
 
4374
4284
  // src/components/Table/Table.tsx
4375
- var import_react28 = __toESM(require("react"));
4285
+ var import_react27 = __toESM(require("react"));
4376
4286
  var import_joy35 = require("@mui/joy");
4377
4287
  var Table = (props) => {
4378
4288
  const { children, ...inheritProps } = props;
4379
- return /* @__PURE__ */ import_react28.default.createElement(import_joy35.Table, { ...inheritProps }, children);
4289
+ return /* @__PURE__ */ import_react27.default.createElement(import_joy35.Table, { ...inheritProps }, children);
4380
4290
  };
4381
4291
  Table.displayName = "Table";
4382
4292
  function TableHead(props) {
@@ -4387,7 +4297,7 @@ function TableHead(props) {
4387
4297
  slots: { checkbox: RenderCheckbox = Checkbox_default } = {},
4388
4298
  slotProps: { checkbox: checkboxProps = {} } = {}
4389
4299
  } = props;
4390
- return /* @__PURE__ */ import_react28.default.createElement("thead", null, /* @__PURE__ */ import_react28.default.createElement("tr", null, showCheckbox && /* @__PURE__ */ import_react28.default.createElement(
4300
+ return /* @__PURE__ */ import_react27.default.createElement("thead", null, /* @__PURE__ */ import_react27.default.createElement("tr", null, showCheckbox && /* @__PURE__ */ import_react27.default.createElement(
4391
4301
  "th",
4392
4302
  {
4393
4303
  style: {
@@ -4395,8 +4305,8 @@ function TableHead(props) {
4395
4305
  textAlign: "center"
4396
4306
  }
4397
4307
  },
4398
- /* @__PURE__ */ import_react28.default.createElement(RenderCheckbox, { onChange: onCheckboxChange, ...checkboxProps })
4399
- ), headCells.map((headCell) => /* @__PURE__ */ import_react28.default.createElement(
4308
+ /* @__PURE__ */ import_react27.default.createElement(RenderCheckbox, { onChange: onCheckboxChange, ...checkboxProps })
4309
+ ), headCells.map((headCell) => /* @__PURE__ */ import_react27.default.createElement(
4400
4310
  "th",
4401
4311
  {
4402
4312
  key: headCell.label,
@@ -4421,15 +4331,15 @@ function TableBody(props) {
4421
4331
  slots: { checkbox: RenderCheckbox = Checkbox_default } = {},
4422
4332
  slotProps: { checkbox: checkboxProps = {} } = {}
4423
4333
  } = props;
4424
- return /* @__PURE__ */ import_react28.default.createElement("tbody", null, rows.map((row, rowIndex) => /* @__PURE__ */ import_react28.default.createElement("tr", { key: `table-row-${rowIndex}` }, showCheckbox && /* @__PURE__ */ import_react28.default.createElement(
4334
+ return /* @__PURE__ */ import_react27.default.createElement("tbody", null, rows.map((row, rowIndex) => /* @__PURE__ */ import_react27.default.createElement("tr", { key: `table-row-${rowIndex}` }, showCheckbox && /* @__PURE__ */ import_react27.default.createElement(
4425
4335
  "td",
4426
4336
  {
4427
4337
  style: {
4428
4338
  textAlign: "center"
4429
4339
  }
4430
4340
  },
4431
- /* @__PURE__ */ import_react28.default.createElement(RenderCheckbox, { onChange: (event) => onCheckboxChange?.(event, rowIndex), ...checkboxProps })
4432
- ), cellOrder.map((cellKey) => /* @__PURE__ */ import_react28.default.createElement(
4341
+ /* @__PURE__ */ import_react27.default.createElement(RenderCheckbox, { onChange: (event) => onCheckboxChange?.(event, rowIndex), ...checkboxProps })
4342
+ ), cellOrder.map((cellKey) => /* @__PURE__ */ import_react27.default.createElement(
4433
4343
  "td",
4434
4344
  {
4435
4345
  key: cellKey,
@@ -4443,7 +4353,7 @@ function TableBody(props) {
4443
4353
  TableBody.displayName = "TableBody";
4444
4354
 
4445
4355
  // src/components/Pagination/Pagination.tsx
4446
- var import_react29 = __toESM(require("react"));
4356
+ var import_react28 = __toESM(require("react"));
4447
4357
  var import_ChevronLeftRounded = __toESM(require("@mui/icons-material/ChevronLeftRounded"));
4448
4358
  var import_ChevronRightRounded = __toESM(require("@mui/icons-material/ChevronRightRounded"));
4449
4359
  var import_FirstPageRounded = __toESM(require("@mui/icons-material/FirstPageRounded"));
@@ -4513,7 +4423,7 @@ function Pagination(inProps) {
4513
4423
  const [paginationModel, setPaginationModel] = useControlledState(
4514
4424
  _paginationModel,
4515
4425
  defaultPaginationModel,
4516
- (0, import_react29.useCallback)(
4426
+ (0, import_react28.useCallback)(
4517
4427
  (newPage) => {
4518
4428
  onPageChange(newPage.page);
4519
4429
  },
@@ -4529,7 +4439,7 @@ function Pagination(inProps) {
4529
4439
  const afterPages = [paginationModel.page + 1, paginationModel.page + 2].filter((p) => p <= lastPage - 1);
4530
4440
  const isMoreAfterPages = lastPage > 1 && paginationModel.page < lastPage - 3;
4531
4441
  const isMoreBeforePages = lastPage > 1 && paginationModel.page > 4;
4532
- (0, import_react29.useEffect)(() => {
4442
+ (0, import_react28.useEffect)(() => {
4533
4443
  if (paginationModel.page > lastPage) {
4534
4444
  setPaginationModel({ ...paginationModel, page: lastPage });
4535
4445
  }
@@ -4539,7 +4449,7 @@ function Pagination(inProps) {
4539
4449
  value: `${i + 1}`
4540
4450
  }));
4541
4451
  if (variant === "compact") {
4542
- return /* @__PURE__ */ import_react29.default.createElement(PaginationRoot, { ...innerProps }, /* @__PURE__ */ import_react29.default.createElement(PaginationContainer, { direction: "row", size, alignItems: "center" }, /* @__PURE__ */ import_react29.default.createElement(Stack_default, { direction: "row" }, /* @__PURE__ */ import_react29.default.createElement(
4452
+ return /* @__PURE__ */ import_react28.default.createElement(PaginationRoot, { ...innerProps }, /* @__PURE__ */ import_react28.default.createElement(PaginationContainer, { direction: "row", size, alignItems: "center" }, /* @__PURE__ */ import_react28.default.createElement(Stack_default, { direction: "row" }, /* @__PURE__ */ import_react28.default.createElement(
4543
4453
  PaginationIconButton,
4544
4454
  {
4545
4455
  size,
@@ -4549,8 +4459,8 @@ function Pagination(inProps) {
4549
4459
  disabled: paginationModel.page === firstPage,
4550
4460
  "aria-label": "First page"
4551
4461
  },
4552
- /* @__PURE__ */ import_react29.default.createElement(import_FirstPageRounded.default, null)
4553
- ), /* @__PURE__ */ import_react29.default.createElement(
4462
+ /* @__PURE__ */ import_react28.default.createElement(import_FirstPageRounded.default, null)
4463
+ ), /* @__PURE__ */ import_react28.default.createElement(
4554
4464
  PaginationIconButton,
4555
4465
  {
4556
4466
  size,
@@ -4560,8 +4470,8 @@ function Pagination(inProps) {
4560
4470
  disabled: paginationModel.page === firstPage,
4561
4471
  "aria-label": "Previous page"
4562
4472
  },
4563
- /* @__PURE__ */ import_react29.default.createElement(import_ChevronLeftRounded.default, null)
4564
- )), /* @__PURE__ */ import_react29.default.createElement(
4473
+ /* @__PURE__ */ import_react28.default.createElement(import_ChevronLeftRounded.default, null)
4474
+ )), /* @__PURE__ */ import_react28.default.createElement(
4565
4475
  Autocomplete_default,
4566
4476
  {
4567
4477
  size,
@@ -4580,7 +4490,7 @@ function Pagination(inProps) {
4580
4490
  }[size]
4581
4491
  }
4582
4492
  }
4583
- ), /* @__PURE__ */ import_react29.default.createElement(
4493
+ ), /* @__PURE__ */ import_react28.default.createElement(
4584
4494
  Typography_default,
4585
4495
  {
4586
4496
  level: `body-${size}`,
@@ -4591,7 +4501,7 @@ function Pagination(inProps) {
4591
4501
  },
4592
4502
  "/ ",
4593
4503
  lastPage
4594
- ), /* @__PURE__ */ import_react29.default.createElement(Stack_default, { direction: "row" }, /* @__PURE__ */ import_react29.default.createElement(
4504
+ ), /* @__PURE__ */ import_react28.default.createElement(Stack_default, { direction: "row" }, /* @__PURE__ */ import_react28.default.createElement(
4595
4505
  PaginationIconButton,
4596
4506
  {
4597
4507
  size,
@@ -4601,8 +4511,8 @@ function Pagination(inProps) {
4601
4511
  disabled: paginationModel.page === lastPage,
4602
4512
  "aria-label": "Next page"
4603
4513
  },
4604
- /* @__PURE__ */ import_react29.default.createElement(import_ChevronRightRounded.default, null)
4605
- ), /* @__PURE__ */ import_react29.default.createElement(
4514
+ /* @__PURE__ */ import_react28.default.createElement(import_ChevronRightRounded.default, null)
4515
+ ), /* @__PURE__ */ import_react28.default.createElement(
4606
4516
  PaginationIconButton,
4607
4517
  {
4608
4518
  size,
@@ -4612,10 +4522,10 @@ function Pagination(inProps) {
4612
4522
  disabled: paginationModel.page === lastPage,
4613
4523
  "aria-label": "Last page"
4614
4524
  },
4615
- /* @__PURE__ */ import_react29.default.createElement(import_LastPageRounded.default, null)
4525
+ /* @__PURE__ */ import_react28.default.createElement(import_LastPageRounded.default, null)
4616
4526
  ))));
4617
4527
  }
4618
- return /* @__PURE__ */ import_react29.default.createElement(PaginationRoot, { ...innerProps }, /* @__PURE__ */ import_react29.default.createElement(PaginationContainer, { direction: "row", size, alignItems: "center" }, /* @__PURE__ */ import_react29.default.createElement(
4528
+ return /* @__PURE__ */ import_react28.default.createElement(PaginationRoot, { ...innerProps }, /* @__PURE__ */ import_react28.default.createElement(PaginationContainer, { direction: "row", size, alignItems: "center" }, /* @__PURE__ */ import_react28.default.createElement(
4619
4529
  PaginationIconButton,
4620
4530
  {
4621
4531
  size,
@@ -4625,8 +4535,8 @@ function Pagination(inProps) {
4625
4535
  disabled: paginationModel.page === firstPage,
4626
4536
  "aria-label": "Previous page"
4627
4537
  },
4628
- /* @__PURE__ */ import_react29.default.createElement(import_ChevronLeftRounded.default, null)
4629
- ), paginationModel.page !== firstPage && /* @__PURE__ */ import_react29.default.createElement(PaginationButton, { size, variant: "plain", color: "neutral", onClick: () => handlePageChange(firstPage) }, firstPage), isMoreBeforePages && /* @__PURE__ */ import_react29.default.createElement(
4538
+ /* @__PURE__ */ import_react28.default.createElement(import_ChevronLeftRounded.default, null)
4539
+ ), paginationModel.page !== firstPage && /* @__PURE__ */ import_react28.default.createElement(PaginationButton, { size, variant: "plain", color: "neutral", onClick: () => handlePageChange(firstPage) }, firstPage), isMoreBeforePages && /* @__PURE__ */ import_react28.default.createElement(
4630
4540
  PaginationButton,
4631
4541
  {
4632
4542
  size,
@@ -4636,7 +4546,7 @@ function Pagination(inProps) {
4636
4546
  "aria-label": "More previous pages"
4637
4547
  },
4638
4548
  "..."
4639
- ), beforePages.map((p) => /* @__PURE__ */ import_react29.default.createElement(PaginationButton, { key: p, size, variant: "plain", color: "neutral", onClick: () => handlePageChange(p) }, p)), /* @__PURE__ */ import_react29.default.createElement(PaginationButton, { active: "active", size, "aria-current": "page" }, paginationModel.page), afterPages.map((p) => /* @__PURE__ */ import_react29.default.createElement(PaginationButton, { key: p, size, variant: "plain", color: "neutral", onClick: () => handlePageChange(p) }, p)), isMoreAfterPages && /* @__PURE__ */ import_react29.default.createElement(
4549
+ ), beforePages.map((p) => /* @__PURE__ */ import_react28.default.createElement(PaginationButton, { key: p, size, variant: "plain", color: "neutral", onClick: () => handlePageChange(p) }, p)), /* @__PURE__ */ import_react28.default.createElement(PaginationButton, { active: "active", size, "aria-current": "page" }, paginationModel.page), afterPages.map((p) => /* @__PURE__ */ import_react28.default.createElement(PaginationButton, { key: p, size, variant: "plain", color: "neutral", onClick: () => handlePageChange(p) }, p)), isMoreAfterPages && /* @__PURE__ */ import_react28.default.createElement(
4640
4550
  PaginationButton,
4641
4551
  {
4642
4552
  size,
@@ -4646,7 +4556,7 @@ function Pagination(inProps) {
4646
4556
  onClick: () => handlePageChange(paginationModel.page + 3)
4647
4557
  },
4648
4558
  "..."
4649
- ), paginationModel.page !== lastPage && /* @__PURE__ */ import_react29.default.createElement(PaginationButton, { size, variant: "plain", color: "neutral", onClick: () => handlePageChange(lastPage) }, lastPage), /* @__PURE__ */ import_react29.default.createElement(
4559
+ ), paginationModel.page !== lastPage && /* @__PURE__ */ import_react28.default.createElement(PaginationButton, { size, variant: "plain", color: "neutral", onClick: () => handlePageChange(lastPage) }, lastPage), /* @__PURE__ */ import_react28.default.createElement(
4650
4560
  PaginationIconButton,
4651
4561
  {
4652
4562
  size,
@@ -4656,7 +4566,7 @@ function Pagination(inProps) {
4656
4566
  disabled: paginationModel.page === lastPage,
4657
4567
  "aria-label": "Next page"
4658
4568
  },
4659
- /* @__PURE__ */ import_react29.default.createElement(import_ChevronRightRounded.default, null)
4569
+ /* @__PURE__ */ import_react28.default.createElement(import_ChevronRightRounded.default, null)
4660
4570
  )));
4661
4571
  }
4662
4572
  Pagination.displayName = "Pagination";
@@ -4730,9 +4640,9 @@ function Component(props, apiRef) {
4730
4640
  isTotalSelected: ___________,
4731
4641
  ...innerProps
4732
4642
  } = props;
4733
- const tableId = (0, import_react30.useId)();
4734
- const parentRef = (0, import_react30.useRef)(null);
4735
- const tableBodyRef = (0, import_react30.useRef)(null);
4643
+ const tableId = (0, import_react29.useId)();
4644
+ const parentRef = (0, import_react29.useRef)(null);
4645
+ const tableBodyRef = (0, import_react29.useRef)(null);
4736
4646
  const {
4737
4647
  columns,
4738
4648
  processedColumnGroups,
@@ -4768,10 +4678,10 @@ function Component(props, apiRef) {
4768
4678
  measureElement: (element) => element.clientHeight,
4769
4679
  overscan: 10
4770
4680
  });
4771
- const paginationModel = (0, import_react30.useMemo)(() => ({ page, pageSize }), [page, pageSize]);
4681
+ const paginationModel = (0, import_react29.useMemo)(() => ({ page, pageSize }), [page, pageSize]);
4772
4682
  const columnsKey = getObjectVersion(columns);
4773
- const headerCheckboxElement = (0, import_react30.useMemo)(
4774
- () => /* @__PURE__ */ import_react30.default.createElement(
4683
+ const headerCheckboxElement = (0, import_react29.useMemo)(
4684
+ () => /* @__PURE__ */ import_react29.default.createElement(
4775
4685
  RenderCheckbox,
4776
4686
  {
4777
4687
  onChange: onAllCheckboxChange,
@@ -4796,20 +4706,20 @@ function Component(props, apiRef) {
4796
4706
  const showNoRowsOverlay = !loading && rowCount === 0;
4797
4707
  const showFillerColumn = columns.length > 0 && columns.every((c) => !!c.width);
4798
4708
  const totalColCount = Math.max(1, columns.length + (checkboxSelection ? 1 : 0) + (showFillerColumn ? 1 : 0));
4799
- const getRowClickHandler = (0, import_react30.useCallback)(
4709
+ const getRowClickHandler = (0, import_react29.useCallback)(
4800
4710
  (row, rowId) => (e) => {
4801
4711
  onRowClick?.({ row, rowId }, e);
4802
4712
  checkboxSelection && !disableSelectionOnClick && isRowSelectableCheck(rowId, row) && onCheckboxChange(e, rowId);
4803
4713
  },
4804
4714
  [onRowClick, checkboxSelection, disableSelectionOnClick, onCheckboxChange, isRowSelectableCheck]
4805
4715
  );
4806
- const getRowFocusHandler = (0, import_react30.useCallback)(
4716
+ const getRowFocusHandler = (0, import_react29.useCallback)(
4807
4717
  (rowId) => () => {
4808
4718
  onRowFocus(rowId);
4809
4719
  },
4810
4720
  [onRowFocus]
4811
4721
  );
4812
- const getCheckboxClickHandler = (0, import_react30.useCallback)(
4722
+ const getCheckboxClickHandler = (0, import_react29.useCallback)(
4813
4723
  (rowId, row) => (e) => {
4814
4724
  e.stopPropagation();
4815
4725
  if (isRowSelectableCheck(rowId, row)) {
@@ -4819,7 +4729,7 @@ function Component(props, apiRef) {
4819
4729
  },
4820
4730
  [onCheckboxChange, isRowSelectableCheck, onRowFocus]
4821
4731
  );
4822
- const handleTableKeyDown = (0, import_react30.useCallback)(
4732
+ const handleTableKeyDown = (0, import_react29.useCallback)(
4823
4733
  (e) => {
4824
4734
  const supportedKeys = ["ArrowUp", "ArrowDown", " ", "Home", "End", "PageUp", "PageDown"];
4825
4735
  if (!supportedKeys.includes(e.key)) return;
@@ -4909,7 +4819,7 @@ function Component(props, apiRef) {
4909
4819
  virtualizer
4910
4820
  ]
4911
4821
  );
4912
- (0, import_react30.useImperativeHandle)(apiRef, () => ({
4822
+ (0, import_react29.useImperativeHandle)(apiRef, () => ({
4913
4823
  getRowIndexRelativeToVisibleRows(rowId) {
4914
4824
  return dataInPage.findIndex((row) => String(getId(row)) === rowId);
4915
4825
  },
@@ -4925,7 +4835,7 @@ function Component(props, apiRef) {
4925
4835
  });
4926
4836
  }
4927
4837
  }));
4928
- return /* @__PURE__ */ import_react30.default.createElement(
4838
+ return /* @__PURE__ */ import_react29.default.createElement(
4929
4839
  Box_default,
4930
4840
  {
4931
4841
  sx: {
@@ -4935,7 +4845,7 @@ function Component(props, apiRef) {
4935
4845
  flexDirection: "column"
4936
4846
  }
4937
4847
  },
4938
- (!!checkboxSelection || !!Toolbar) && /* @__PURE__ */ import_react30.default.createElement(
4848
+ (!!checkboxSelection || !!Toolbar) && /* @__PURE__ */ import_react29.default.createElement(
4939
4849
  Stack_default,
4940
4850
  {
4941
4851
  direction: "row",
@@ -4945,10 +4855,10 @@ function Component(props, apiRef) {
4945
4855
  justifyContent: "space-between",
4946
4856
  alignItems: "center"
4947
4857
  },
4948
- !!checkboxSelection && /* @__PURE__ */ import_react30.default.createElement(Stack_default, { direction: "row", spacing: 1 }, !isAllSelected && /* @__PURE__ */ import_react30.default.createElement(Typography_default, { level: "body-xs" }, numberFormatter(selectionModel?.length || 0), " items selected"), isAllSelected && !isTotalSelected && /* @__PURE__ */ import_react30.default.createElement(Stack_default, { direction: "row", spacing: 1, alignItems: "center" }, /* @__PURE__ */ import_react30.default.createElement(Typography_default, { level: "body-xs" }, "All ", numberFormatter(selectionModel?.length || 0), " items on this page are selected."), /* @__PURE__ */ import_react30.default.createElement(Button_default, { size: "sm", variant: "plain", onClick: onTotalSelect }, "Select all ", numberFormatter(selectableRowCount), " items")), isTotalSelected && /* @__PURE__ */ import_react30.default.createElement(Stack_default, { direction: "row", spacing: 1, alignItems: "center" }, /* @__PURE__ */ import_react30.default.createElement(Typography_default, { level: "body-xs" }, "All ", numberFormatter(selectableRowCount), " items are selected."), /* @__PURE__ */ import_react30.default.createElement(Button_default, { size: "sm", variant: "plain", color: "danger", onClick: onTotalSelect }, "Cancel"))),
4949
- Toolbar && /* @__PURE__ */ import_react30.default.createElement(Toolbar, { ...toolbarProps || {} })
4858
+ !!checkboxSelection && /* @__PURE__ */ import_react29.default.createElement(Stack_default, { direction: "row", spacing: 1 }, !isAllSelected && /* @__PURE__ */ import_react29.default.createElement(Typography_default, { level: "body-xs" }, numberFormatter(selectionModel?.length || 0), " items selected"), isAllSelected && !isTotalSelected && /* @__PURE__ */ import_react29.default.createElement(Stack_default, { direction: "row", spacing: 1, alignItems: "center" }, /* @__PURE__ */ import_react29.default.createElement(Typography_default, { level: "body-xs" }, "All ", numberFormatter(selectionModel?.length || 0), " items on this page are selected."), /* @__PURE__ */ import_react29.default.createElement(Button_default, { size: "sm", variant: "plain", onClick: onTotalSelect }, "Select all ", numberFormatter(selectableRowCount), " items")), isTotalSelected && /* @__PURE__ */ import_react29.default.createElement(Stack_default, { direction: "row", spacing: 1, alignItems: "center" }, /* @__PURE__ */ import_react29.default.createElement(Typography_default, { level: "body-xs" }, "All ", numberFormatter(selectableRowCount), " items are selected."), /* @__PURE__ */ import_react29.default.createElement(Button_default, { size: "sm", variant: "plain", color: "danger", onClick: onTotalSelect }, "Cancel"))),
4859
+ Toolbar && /* @__PURE__ */ import_react29.default.createElement(Toolbar, { ...toolbarProps || {} })
4950
4860
  ),
4951
- /* @__PURE__ */ import_react30.default.createElement(
4861
+ /* @__PURE__ */ import_react29.default.createElement(
4952
4862
  Sheet_default,
4953
4863
  {
4954
4864
  variant: "outlined",
@@ -4969,24 +4879,24 @@ function Component(props, apiRef) {
4969
4879
  ref: parentRef,
4970
4880
  ...backgroundProps
4971
4881
  },
4972
- /* @__PURE__ */ import_react30.default.createElement(Table, { ...innerProps, sx: { ...innerProps.sx, minWidth: tableMinWidth } }, /* @__PURE__ */ import_react30.default.createElement("colgroup", null, checkboxSelection && /* @__PURE__ */ import_react30.default.createElement(
4882
+ /* @__PURE__ */ import_react29.default.createElement(Table, { ...innerProps, sx: { ...innerProps.sx, minWidth: tableMinWidth } }, /* @__PURE__ */ import_react29.default.createElement("colgroup", null, checkboxSelection && /* @__PURE__ */ import_react29.default.createElement(
4973
4883
  "col",
4974
4884
  {
4975
4885
  style: {
4976
4886
  width: "40px"
4977
4887
  }
4978
4888
  }
4979
- ), columns.map((c) => /* @__PURE__ */ import_react30.default.createElement(
4889
+ ), columns.map((c) => /* @__PURE__ */ import_react29.default.createElement(
4980
4890
  "col",
4981
4891
  {
4982
4892
  ref: c.tableColRef,
4983
- key: c.columnId,
4893
+ key: `${c.field.toString()}_${c.width}`,
4984
4894
  style: {
4985
4895
  width: c.width,
4986
4896
  minWidth: c.minWidth ?? "50px"
4987
4897
  }
4988
4898
  }
4989
- )), showFillerColumn && /* @__PURE__ */ import_react30.default.createElement("col", { style: { minWidth: 0 } })), /* @__PURE__ */ import_react30.default.createElement("thead", null, processedColumnGroups && processedColumnGroups.groups.length > 0 && processedColumnGroups.groups.map((levelGroups, level) => /* @__PURE__ */ import_react30.default.createElement("tr", { key: `group-level-${level}` }, checkboxSelection && level === 0 && /* @__PURE__ */ import_react30.default.createElement(
4899
+ )), showFillerColumn && /* @__PURE__ */ import_react29.default.createElement("col", { style: { minWidth: 0 } })), /* @__PURE__ */ import_react29.default.createElement("thead", null, processedColumnGroups && processedColumnGroups.groups.length > 0 && processedColumnGroups.groups.map((levelGroups, level) => /* @__PURE__ */ import_react29.default.createElement("tr", { key: `group-level-${level}` }, checkboxSelection && level === 0 && /* @__PURE__ */ import_react29.default.createElement(
4990
4900
  "th",
4991
4901
  {
4992
4902
  rowSpan: processedColumnGroups.maxLevel + 2,
@@ -4997,12 +4907,12 @@ function Component(props, apiRef) {
4997
4907
  }
4998
4908
  },
4999
4909
  headerCheckboxElement
5000
- ), level > 0 && Array.from({ length: levelGroups[0]?.startIndex || 0 }).map((_2, i) => /* @__PURE__ */ import_react30.default.createElement("th", { key: `empty-${level}-${i}` })), levelGroups.filter((g) => g.colspan > 0).map((group, groupIndex) => {
4910
+ ), level > 0 && Array.from({ length: levelGroups[0]?.startIndex || 0 }).map((_2, i) => /* @__PURE__ */ import_react29.default.createElement("th", { key: `empty-${level}-${i}` })), levelGroups.filter((g) => g.colspan > 0).map((group, groupIndex) => {
5001
4911
  const nextGroup = levelGroups[groupIndex + 1];
5002
4912
  const emptyCells = nextGroup ? nextGroup.startIndex - (group.startIndex + group.colspan) : columns.length - (group.startIndex + group.colspan);
5003
4913
  const params = { groupId: group.groupId };
5004
4914
  const computedHeaderClassName = group.headerClassName ? typeof group.headerClassName === "function" ? group.headerClassName(params) : group.headerClassName : void 0;
5005
- return /* @__PURE__ */ import_react30.default.createElement(import_react30.Fragment, { key: group.groupId }, /* @__PURE__ */ import_react30.default.createElement(
4915
+ return /* @__PURE__ */ import_react29.default.createElement(import_react29.Fragment, { key: group.groupId }, /* @__PURE__ */ import_react29.default.createElement(
5006
4916
  "th",
5007
4917
  {
5008
4918
  colSpan: group.colspan,
@@ -5014,14 +4924,14 @@ function Component(props, apiRef) {
5014
4924
  className: computedHeaderClassName
5015
4925
  },
5016
4926
  group.headerName ?? group.groupId
5017
- ), emptyCells > 0 && Array.from({ length: emptyCells }).map((_2, i) => /* @__PURE__ */ import_react30.default.createElement("th", { key: `empty-between-${level}-${groupIndex}-${i}`, colSpan: 1 })));
5018
- }), showFillerColumn && level === 0 && /* @__PURE__ */ import_react30.default.createElement(
4927
+ ), emptyCells > 0 && Array.from({ length: emptyCells }).map((_2, i) => /* @__PURE__ */ import_react29.default.createElement("th", { key: `empty-between-${level}-${groupIndex}-${i}`, colSpan: 1 })));
4928
+ }), showFillerColumn && level === 0 && /* @__PURE__ */ import_react29.default.createElement(
5019
4929
  "th",
5020
4930
  {
5021
4931
  "aria-hidden": "true",
5022
4932
  rowSpan: processedColumnGroups.maxLevel + 2
5023
4933
  }
5024
- ))), /* @__PURE__ */ import_react30.default.createElement("tr", null, (!processedColumnGroups || processedColumnGroups.groups.length === 0) && checkboxSelection && /* @__PURE__ */ import_react30.default.createElement(
4934
+ ))), /* @__PURE__ */ import_react29.default.createElement("tr", null, (!processedColumnGroups || processedColumnGroups.groups.length === 0) && checkboxSelection && /* @__PURE__ */ import_react29.default.createElement(
5025
4935
  "th",
5026
4936
  {
5027
4937
  style: {
@@ -5032,7 +4942,7 @@ function Component(props, apiRef) {
5032
4942
  headerCheckboxElement
5033
4943
  ), columns.map((c, i) => (
5034
4944
  // @ts-ignore
5035
- /* @__PURE__ */ import_react30.default.createElement(
4945
+ /* @__PURE__ */ import_react29.default.createElement(
5036
4946
  HeadCell2,
5037
4947
  {
5038
4948
  tableId,
@@ -5044,7 +4954,7 @@ function Component(props, apiRef) {
5044
4954
  ...c
5045
4955
  }
5046
4956
  )
5047
- )), showFillerColumn && (!processedColumnGroups || processedColumnGroups.groups.length === 0) && /* @__PURE__ */ import_react30.default.createElement("th", { "aria-hidden": "true" }))), /* @__PURE__ */ import_react30.default.createElement(
4957
+ )), showFillerColumn && (!processedColumnGroups || processedColumnGroups.groups.length === 0) && /* @__PURE__ */ import_react29.default.createElement("th", { "aria-hidden": "true" }))), /* @__PURE__ */ import_react29.default.createElement(
5048
4958
  VirtualizedTableBody,
5049
4959
  {
5050
4960
  ref: tableBodyRef,
@@ -5055,7 +4965,7 @@ function Component(props, apiRef) {
5055
4965
  role: "rowgroup",
5056
4966
  "aria-label": "DataTableBody"
5057
4967
  },
5058
- !!loading && /* @__PURE__ */ import_react30.default.createElement(OverlayWrapper, null, /* @__PURE__ */ import_react30.default.createElement(
4968
+ !!loading && /* @__PURE__ */ import_react29.default.createElement(OverlayWrapper, null, /* @__PURE__ */ import_react29.default.createElement(
5059
4969
  "td",
5060
4970
  {
5061
4971
  style: {
@@ -5064,7 +4974,7 @@ function Component(props, apiRef) {
5064
4974
  overflow: "visible"
5065
4975
  }
5066
4976
  },
5067
- /* @__PURE__ */ import_react30.default.createElement(
4977
+ /* @__PURE__ */ import_react29.default.createElement(
5068
4978
  Box_default,
5069
4979
  {
5070
4980
  sx: {
@@ -5074,10 +4984,10 @@ function Component(props, apiRef) {
5074
4984
  right: 0
5075
4985
  }
5076
4986
  },
5077
- /* @__PURE__ */ import_react30.default.createElement(LoadingOverlay, null)
4987
+ /* @__PURE__ */ import_react29.default.createElement(LoadingOverlay, null)
5078
4988
  )
5079
4989
  )),
5080
- showNoRowsOverlay && /* @__PURE__ */ import_react30.default.createElement("tr", null, /* @__PURE__ */ import_react30.default.createElement("td", { colSpan: totalColCount, style: { border: "none" } }, /* @__PURE__ */ import_react30.default.createElement(
4990
+ showNoRowsOverlay && /* @__PURE__ */ import_react29.default.createElement("tr", null, /* @__PURE__ */ import_react29.default.createElement("td", { colSpan: totalColCount, style: { border: "none" } }, /* @__PURE__ */ import_react29.default.createElement(
5081
4991
  Box_default,
5082
4992
  {
5083
4993
  sx: {
@@ -5087,14 +4997,14 @@ function Component(props, apiRef) {
5087
4997
  minHeight: "150px"
5088
4998
  }
5089
4999
  },
5090
- /* @__PURE__ */ import_react30.default.createElement(NoRowsOverlay, { ...noRowsOverlayProps })
5000
+ /* @__PURE__ */ import_react29.default.createElement(NoRowsOverlay, { ...noRowsOverlayProps })
5091
5001
  ))),
5092
5002
  virtualizedItems.map((virtualizedRow, index) => {
5093
5003
  const rowIndex = virtualizedRow.index;
5094
5004
  const row = dataInPage[rowIndex];
5095
5005
  const rowId = getId(row, rowIndex);
5096
5006
  const striped = stripe && (stripe === "even" && (rowIndex + 1) % 2 === 0 || stripe === "odd" && (rowIndex + 1) % 2 === 1);
5097
- return /* @__PURE__ */ import_react30.default.createElement(
5007
+ return /* @__PURE__ */ import_react29.default.createElement(
5098
5008
  VirtualizedTableRow,
5099
5009
  {
5100
5010
  key: virtualizedRow.key,
@@ -5114,7 +5024,7 @@ function Component(props, apiRef) {
5114
5024
  transform: `translateY(${virtualizedRow.start - index * virtualizedRow.size}px)`
5115
5025
  }
5116
5026
  },
5117
- checkboxSelection && /* @__PURE__ */ import_react30.default.createElement(
5027
+ checkboxSelection && /* @__PURE__ */ import_react29.default.createElement(
5118
5028
  "th",
5119
5029
  {
5120
5030
  scope: "row",
@@ -5122,7 +5032,7 @@ function Component(props, apiRef) {
5122
5032
  textAlign: "center"
5123
5033
  }
5124
5034
  },
5125
- /* @__PURE__ */ import_react30.default.createElement(
5035
+ /* @__PURE__ */ import_react29.default.createElement(
5126
5036
  RenderCheckbox,
5127
5037
  {
5128
5038
  onClick: getCheckboxClickHandler(rowId, row),
@@ -5133,7 +5043,7 @@ function Component(props, apiRef) {
5133
5043
  }
5134
5044
  )
5135
5045
  ),
5136
- /* @__PURE__ */ import_react30.default.createElement(
5046
+ /* @__PURE__ */ import_react29.default.createElement(
5137
5047
  BodyRow2,
5138
5048
  {
5139
5049
  tableId,
@@ -5144,12 +5054,12 @@ function Component(props, apiRef) {
5144
5054
  noWrap: props.noWrap
5145
5055
  }
5146
5056
  ),
5147
- showFillerColumn && /* @__PURE__ */ import_react30.default.createElement("td", { "aria-hidden": "true" })
5057
+ showFillerColumn && /* @__PURE__ */ import_react29.default.createElement("td", { "aria-hidden": "true" })
5148
5058
  );
5149
5059
  })
5150
- ), Footer && /* @__PURE__ */ import_react30.default.createElement(Footer, null))
5060
+ ), Footer && /* @__PURE__ */ import_react29.default.createElement(Footer, null))
5151
5061
  ),
5152
- pagination && /* @__PURE__ */ import_react30.default.createElement(
5062
+ pagination && /* @__PURE__ */ import_react29.default.createElement(
5153
5063
  Pagination_default,
5154
5064
  {
5155
5065
  pt: 2,
@@ -5162,11 +5072,11 @@ function Component(props, apiRef) {
5162
5072
  )
5163
5073
  );
5164
5074
  }
5165
- var DataTable = (0, import_react30.forwardRef)(Component);
5075
+ var DataTable = (0, import_react29.forwardRef)(Component);
5166
5076
  DataTable.displayName = "DataTable";
5167
5077
 
5168
5078
  // src/components/DateRangePicker/DateRangePicker.tsx
5169
- var import_react31 = __toESM(require("react"));
5079
+ var import_react30 = __toESM(require("react"));
5170
5080
  var import_react_imask2 = require("react-imask");
5171
5081
  var import_CalendarToday2 = __toESM(require("@mui/icons-material/CalendarToday"));
5172
5082
  var import_joy37 = require("@mui/joy");
@@ -5308,9 +5218,9 @@ var parseDates = (str, format) => {
5308
5218
  var formatToPattern2 = (format) => {
5309
5219
  return `${format} - ${format}`.replace(/YYYY/g, "Y").replace(/MM/g, "M").replace(/DD/g, "D").replace(/[^YMD\s]/g, (match) => `${match}\``);
5310
5220
  };
5311
- var TextMaskAdapter5 = import_react31.default.forwardRef(function TextMaskAdapter6(props, ref) {
5221
+ var TextMaskAdapter5 = import_react30.default.forwardRef(function TextMaskAdapter6(props, ref) {
5312
5222
  const { onChange, format, ...other } = props;
5313
- return /* @__PURE__ */ import_react31.default.createElement(
5223
+ return /* @__PURE__ */ import_react30.default.createElement(
5314
5224
  import_react_imask2.IMaskInput,
5315
5225
  {
5316
5226
  ...other,
@@ -5344,7 +5254,7 @@ var TextMaskAdapter5 = import_react31.default.forwardRef(function TextMaskAdapte
5344
5254
  }
5345
5255
  );
5346
5256
  });
5347
- var DateRangePicker = (0, import_react31.forwardRef)((inProps, ref) => {
5257
+ var DateRangePicker = (0, import_react30.forwardRef)((inProps, ref) => {
5348
5258
  const props = (0, import_joy37.useThemeProps)({ props: inProps, name: "DateRangePicker" });
5349
5259
  const {
5350
5260
  onChange,
@@ -5371,28 +5281,28 @@ var DateRangePicker = (0, import_react31.forwardRef)((inProps, ref) => {
5371
5281
  numberOfMonths,
5372
5282
  ...innerProps
5373
5283
  } = props;
5374
- const innerRef = (0, import_react31.useRef)(null);
5375
- const buttonRef = (0, import_react31.useRef)(null);
5284
+ const innerRef = (0, import_react30.useRef)(null);
5285
+ const buttonRef = (0, import_react30.useRef)(null);
5376
5286
  const [rawValue, setValue] = useControlledState(
5377
5287
  props.value,
5378
5288
  props.defaultValue ?? null,
5379
- (0, import_react31.useCallback)(
5289
+ (0, import_react30.useCallback)(
5380
5290
  (value2) => onChange?.({ target: { name: props.name, value: value2 ?? "" } }),
5381
5291
  [props.name, onChange]
5382
5292
  )
5383
5293
  );
5384
5294
  const value = rawValue ?? "";
5385
5295
  const isAlphabeticDisplay = hasAlphabeticMonth2(displayFormat);
5386
- const [displayValue, setDisplayValue] = (0, import_react31.useState)(
5296
+ const [displayValue, setDisplayValue] = (0, import_react30.useState)(
5387
5297
  () => value ? formatValueString2(parseDates(value, format), displayFormat, locale) : ""
5388
5298
  );
5389
- const [anchorEl, setAnchorEl] = (0, import_react31.useState)(null);
5299
+ const [anchorEl, setAnchorEl] = (0, import_react30.useState)(null);
5390
5300
  const open = Boolean(anchorEl);
5391
- const calendarValue = (0, import_react31.useMemo)(
5301
+ const calendarValue = (0, import_react30.useMemo)(
5392
5302
  () => value ? parseDates(value, format) : void 0,
5393
5303
  [value, format]
5394
5304
  );
5395
- (0, import_react31.useEffect)(() => {
5305
+ (0, import_react30.useEffect)(() => {
5396
5306
  if (value) {
5397
5307
  try {
5398
5308
  const dates = parseDates(value, format);
@@ -5404,13 +5314,13 @@ var DateRangePicker = (0, import_react31.forwardRef)((inProps, ref) => {
5404
5314
  setDisplayValue("");
5405
5315
  }
5406
5316
  }, [displayFormat, locale, value, format]);
5407
- (0, import_react31.useEffect)(() => {
5317
+ (0, import_react30.useEffect)(() => {
5408
5318
  if (!anchorEl) {
5409
5319
  innerRef.current?.blur();
5410
5320
  }
5411
5321
  }, [anchorEl, innerRef]);
5412
- (0, import_react31.useImperativeHandle)(ref, () => innerRef.current, [innerRef]);
5413
- const handleChange = (0, import_react31.useCallback)(
5322
+ (0, import_react30.useImperativeHandle)(ref, () => innerRef.current, [innerRef]);
5323
+ const handleChange = (0, import_react30.useCallback)(
5414
5324
  (event) => {
5415
5325
  const value2 = event.target.value;
5416
5326
  setDisplayValue(value2 ? formatValueString2(parseDates(value2, format), displayFormat, locale) : value2);
@@ -5418,7 +5328,7 @@ var DateRangePicker = (0, import_react31.forwardRef)((inProps, ref) => {
5418
5328
  },
5419
5329
  [displayFormat, format, locale, setValue]
5420
5330
  );
5421
- const handleDisplayInputChange = (0, import_react31.useCallback)(
5331
+ const handleDisplayInputChange = (0, import_react30.useCallback)(
5422
5332
  (event) => {
5423
5333
  if (event.target.value === "") {
5424
5334
  handleChange({
@@ -5443,14 +5353,14 @@ var DateRangePicker = (0, import_react31.forwardRef)((inProps, ref) => {
5443
5353
  },
5444
5354
  [displayFormat, format, handleChange, props.name]
5445
5355
  );
5446
- const handleCalendarToggle = (0, import_react31.useCallback)(
5356
+ const handleCalendarToggle = (0, import_react30.useCallback)(
5447
5357
  (event) => {
5448
5358
  setAnchorEl(anchorEl ? null : event.currentTarget);
5449
5359
  innerRef.current?.focus();
5450
5360
  },
5451
5361
  [anchorEl, setAnchorEl, innerRef]
5452
5362
  );
5453
- const handleCalendarChange = (0, import_react31.useCallback)(
5363
+ const handleCalendarChange = (0, import_react30.useCallback)(
5454
5364
  ([date1, date2]) => {
5455
5365
  if (!date1 || !date2) return;
5456
5366
  const formattedValue = formatValueString2([date1, date2], format);
@@ -5464,7 +5374,7 @@ var DateRangePicker = (0, import_react31.forwardRef)((inProps, ref) => {
5464
5374
  },
5465
5375
  [props.value, props.name, onChange, setValue, setAnchorEl, format, displayFormat, locale]
5466
5376
  );
5467
- const handleInputMouseDown = (0, import_react31.useCallback)(
5377
+ const handleInputMouseDown = (0, import_react30.useCallback)(
5468
5378
  (event) => {
5469
5379
  if (inputReadOnly || isAlphabeticDisplay) {
5470
5380
  event.preventDefault();
@@ -5473,7 +5383,7 @@ var DateRangePicker = (0, import_react31.forwardRef)((inProps, ref) => {
5473
5383
  },
5474
5384
  [inputReadOnly, isAlphabeticDisplay, buttonRef]
5475
5385
  );
5476
- const handleInputClick = (0, import_react31.useCallback)(
5386
+ const handleInputClick = (0, import_react30.useCallback)(
5477
5387
  (event) => {
5478
5388
  if (inputReadOnly && !readOnly) {
5479
5389
  handleCalendarToggle(event);
@@ -5481,7 +5391,7 @@ var DateRangePicker = (0, import_react31.forwardRef)((inProps, ref) => {
5481
5391
  },
5482
5392
  [inputReadOnly, readOnly, handleCalendarToggle]
5483
5393
  );
5484
- const handlePresetClick = (0, import_react31.useCallback)(
5394
+ const handlePresetClick = (0, import_react30.useCallback)(
5485
5395
  (presetValue) => {
5486
5396
  if (props.value !== void 0) {
5487
5397
  onChange?.({ target: { name: props.name, value: presetValue } });
@@ -5494,7 +5404,7 @@ var DateRangePicker = (0, import_react31.forwardRef)((inProps, ref) => {
5494
5404
  },
5495
5405
  [props.value, props.name, onChange, setValue, setAnchorEl, format, displayFormat, locale]
5496
5406
  );
5497
- const isPresetDisabled = (0, import_react31.useCallback)(
5407
+ const isPresetDisabled = (0, import_react30.useCallback)(
5498
5408
  (presetValue) => {
5499
5409
  try {
5500
5410
  const dates = parseDates(presetValue, format);
@@ -5513,7 +5423,7 @@ var DateRangePicker = (0, import_react31.forwardRef)((inProps, ref) => {
5513
5423
  },
5514
5424
  [format, minDate, maxDate, disableFuture, disablePast]
5515
5425
  );
5516
- return /* @__PURE__ */ import_react31.default.createElement(DateRangePickerRoot, { sx, className }, /* @__PURE__ */ import_react31.default.createElement(import_base4.FocusTrap, { open: true }, /* @__PURE__ */ import_react31.default.createElement(import_react31.default.Fragment, null, /* @__PURE__ */ import_react31.default.createElement(
5426
+ return /* @__PURE__ */ import_react30.default.createElement(DateRangePickerRoot, { sx, className }, /* @__PURE__ */ import_react30.default.createElement(import_base4.FocusTrap, { open: true }, /* @__PURE__ */ import_react30.default.createElement(import_react30.default.Fragment, null, /* @__PURE__ */ import_react30.default.createElement(
5517
5427
  Input_default,
5518
5428
  {
5519
5429
  ...innerProps,
@@ -5540,7 +5450,7 @@ var DateRangePicker = (0, import_react31.forwardRef)((inProps, ref) => {
5540
5450
  },
5541
5451
  error,
5542
5452
  sx: { width: "100%" },
5543
- endDecorator: /* @__PURE__ */ import_react31.default.createElement(
5453
+ endDecorator: /* @__PURE__ */ import_react30.default.createElement(
5544
5454
  CalendarButton2,
5545
5455
  {
5546
5456
  ref: buttonRef,
@@ -5552,13 +5462,13 @@ var DateRangePicker = (0, import_react31.forwardRef)((inProps, ref) => {
5552
5462
  "aria-expanded": open,
5553
5463
  disabled
5554
5464
  },
5555
- /* @__PURE__ */ import_react31.default.createElement(import_CalendarToday2.default, null)
5465
+ /* @__PURE__ */ import_react30.default.createElement(import_CalendarToday2.default, null)
5556
5466
  ),
5557
5467
  label,
5558
5468
  helperText,
5559
5469
  readOnly: readOnly || inputReadOnly || isAlphabeticDisplay
5560
5470
  }
5561
- ), open && /* @__PURE__ */ import_react31.default.createElement(import_base4.ClickAwayListener, { onClickAway: () => setAnchorEl(null) }, /* @__PURE__ */ import_react31.default.createElement(
5471
+ ), open && /* @__PURE__ */ import_react30.default.createElement(import_base4.ClickAwayListener, { onClickAway: () => setAnchorEl(null) }, /* @__PURE__ */ import_react30.default.createElement(
5562
5472
  StyledPopper2,
5563
5473
  {
5564
5474
  id: "date-range-picker-popper",
@@ -5577,7 +5487,7 @@ var DateRangePicker = (0, import_react31.forwardRef)((inProps, ref) => {
5577
5487
  "aria-label": "Calendar Tooltip",
5578
5488
  "aria-expanded": open
5579
5489
  },
5580
- /* @__PURE__ */ import_react31.default.createElement(CalendarSheet2, { tabIndex: -1, role: "presentation" }, /* @__PURE__ */ import_react31.default.createElement(CalendarSheetContent2, null, /* @__PURE__ */ import_react31.default.createElement(CalendarSection2, { style: { width: "auto" } }, /* @__PURE__ */ import_react31.default.createElement(
5490
+ /* @__PURE__ */ import_react30.default.createElement(CalendarSheet2, { tabIndex: -1, role: "presentation" }, /* @__PURE__ */ import_react30.default.createElement(CalendarSheetContent2, null, /* @__PURE__ */ import_react30.default.createElement(CalendarSection2, { style: { width: "auto" } }, /* @__PURE__ */ import_react30.default.createElement(
5581
5491
  Calendar_default,
5582
5492
  {
5583
5493
  rangeSelection: true,
@@ -5590,14 +5500,14 @@ var DateRangePicker = (0, import_react31.forwardRef)((inProps, ref) => {
5590
5500
  locale,
5591
5501
  numberOfMonths
5592
5502
  }
5593
- ), !hideClearButton && /* @__PURE__ */ import_react31.default.createElement(
5503
+ ), !hideClearButton && /* @__PURE__ */ import_react30.default.createElement(
5594
5504
  DialogActions_default,
5595
5505
  {
5596
5506
  sx: {
5597
5507
  p: 1
5598
5508
  }
5599
5509
  },
5600
- /* @__PURE__ */ import_react31.default.createElement(
5510
+ /* @__PURE__ */ import_react30.default.createElement(
5601
5511
  Button_default,
5602
5512
  {
5603
5513
  size,
@@ -5611,9 +5521,9 @@ var DateRangePicker = (0, import_react31.forwardRef)((inProps, ref) => {
5611
5521
  },
5612
5522
  "Clear"
5613
5523
  )
5614
- )), presets && presets.length > 0 && /* @__PURE__ */ import_react31.default.createElement(PresetPanel2, null, presets.map((preset) => {
5524
+ )), presets && presets.length > 0 && /* @__PURE__ */ import_react30.default.createElement(PresetPanel2, null, presets.map((preset) => {
5615
5525
  const disabled2 = isPresetDisabled(preset.value);
5616
- return /* @__PURE__ */ import_react31.default.createElement(
5526
+ return /* @__PURE__ */ import_react30.default.createElement(
5617
5527
  PresetItem2,
5618
5528
  {
5619
5529
  key: preset.label,
@@ -5632,7 +5542,7 @@ var DateRangePicker = (0, import_react31.forwardRef)((inProps, ref) => {
5632
5542
  DateRangePicker.displayName = "DateRangePicker";
5633
5543
 
5634
5544
  // src/components/Drawer/Drawer.tsx
5635
- var import_react32 = __toESM(require("react"));
5545
+ var import_react31 = __toESM(require("react"));
5636
5546
  var import_joy38 = require("@mui/joy");
5637
5547
  var import_framer_motion22 = require("framer-motion");
5638
5548
  var MotionDrawer = (0, import_framer_motion22.motion)(import_joy38.Drawer);
@@ -5650,7 +5560,7 @@ var StyledDrawer = (0, import_joy38.styled)(MotionDrawer)(({ theme, size = "md"
5650
5560
  }));
5651
5561
  var Drawer = (props) => {
5652
5562
  const { children, ...innerProps } = props;
5653
- return /* @__PURE__ */ import_react32.default.createElement(StyledDrawer, { ...innerProps }, children);
5563
+ return /* @__PURE__ */ import_react31.default.createElement(StyledDrawer, { ...innerProps }, children);
5654
5564
  };
5655
5565
  Drawer.displayName = "Drawer";
5656
5566
 
@@ -5681,10 +5591,10 @@ DialogTitle.displayName = "DialogTitle";
5681
5591
  var DialogTitle_default = DialogTitle;
5682
5592
 
5683
5593
  // src/components/DialogFrame/DialogFrame.tsx
5684
- var import_react34 = __toESM(require("react"));
5594
+ var import_react33 = __toESM(require("react"));
5685
5595
 
5686
5596
  // src/components/Modal/Modal.tsx
5687
- var import_react33 = __toESM(require("react"));
5597
+ var import_react32 = __toESM(require("react"));
5688
5598
  var import_joy41 = require("@mui/joy");
5689
5599
  var import_framer_motion25 = require("framer-motion");
5690
5600
  var MotionModal = (0, import_framer_motion25.motion)(import_joy41.Modal);
@@ -5699,10 +5609,10 @@ var ModalClose = import_joy41.ModalClose;
5699
5609
  var MotionModalOverflow = (0, import_framer_motion25.motion)(import_joy41.ModalOverflow);
5700
5610
  var ModalOverflow = MotionModalOverflow;
5701
5611
  ModalOverflow.displayName = "ModalOverflow";
5702
- var ModalFrame = import_react33.default.forwardRef((props, ref) => {
5612
+ function ModalFrame(props) {
5703
5613
  const { title, children, titleStartDecorator, onClose, ...innerProps } = props;
5704
- return /* @__PURE__ */ import_react33.default.createElement(StyledModalDialog, { ref, ...innerProps }, /* @__PURE__ */ import_react33.default.createElement(ModalClose, { onClick: onClose }), /* @__PURE__ */ import_react33.default.createElement(DialogTitle_default, null, titleStartDecorator, title), /* @__PURE__ */ import_react33.default.createElement(DialogContent_default, null, children));
5705
- });
5614
+ return /* @__PURE__ */ import_react32.default.createElement(StyledModalDialog, { ...innerProps }, /* @__PURE__ */ import_react32.default.createElement(ModalClose, { onClick: onClose }), /* @__PURE__ */ import_react32.default.createElement(DialogTitle_default, null, titleStartDecorator, title), /* @__PURE__ */ import_react32.default.createElement(DialogContent_default, null, children));
5615
+ }
5706
5616
  ModalFrame.displayName = "ModalFrame";
5707
5617
 
5708
5618
  // src/components/DialogFrame/DialogFrame.tsx
@@ -5713,20 +5623,20 @@ var StyledDialogFrame = (0, import_joy42.styled)(ModalDialog, {
5713
5623
  })({
5714
5624
  padding: 0
5715
5625
  });
5716
- var DialogFrame = import_react34.default.forwardRef((props, ref) => {
5626
+ var DialogFrame = import_react33.default.forwardRef((props, ref) => {
5717
5627
  const { title, children, actions, fullscreen, onSubmit, ...innerProps } = props;
5718
5628
  const formProps = onSubmit ? { component: "form", onSubmit } : void 0;
5719
- return /* @__PURE__ */ import_react34.default.createElement(StyledDialogFrame, { layout: fullscreen ? "fullscreen" : "center", ref, ...formProps, ...innerProps }, /* @__PURE__ */ import_react34.default.createElement(DialogTitle_default, null, title), /* @__PURE__ */ import_react34.default.createElement(DialogContent_default, null, children), /* @__PURE__ */ import_react34.default.createElement(DialogActions_default, null, actions));
5629
+ return /* @__PURE__ */ import_react33.default.createElement(StyledDialogFrame, { layout: fullscreen ? "fullscreen" : "center", ref, ...formProps, ...innerProps }, /* @__PURE__ */ import_react33.default.createElement(DialogTitle_default, null, title), /* @__PURE__ */ import_react33.default.createElement(DialogContent_default, null, children), /* @__PURE__ */ import_react33.default.createElement(DialogActions_default, null, actions));
5720
5630
  });
5721
5631
  DialogFrame.displayName = "DialogFrame";
5722
5632
 
5723
5633
  // src/components/Divider/Divider.tsx
5724
- var import_react35 = __toESM(require("react"));
5634
+ var import_react34 = __toESM(require("react"));
5725
5635
  var import_joy43 = require("@mui/joy");
5726
5636
  var import_framer_motion26 = require("framer-motion");
5727
5637
  var MotionDivider = (0, import_framer_motion26.motion)(import_joy43.Divider);
5728
5638
  var Divider = (props) => {
5729
- return /* @__PURE__ */ import_react35.default.createElement(MotionDivider, { ...props });
5639
+ return /* @__PURE__ */ import_react34.default.createElement(MotionDivider, { ...props });
5730
5640
  };
5731
5641
  Divider.displayName = "Divider";
5732
5642
 
@@ -5747,16 +5657,16 @@ var InsetDrawer = (0, import_joy44.styled)(import_joy44.Drawer)(({ theme }) => (
5747
5657
  }));
5748
5658
 
5749
5659
  // src/components/FilterableCheckboxGroup/FilterableCheckboxGroup.tsx
5750
- var import_react36 = __toESM(require("react"));
5660
+ var import_react35 = __toESM(require("react"));
5751
5661
  var import_Search = __toESM(require("@mui/icons-material/Search"));
5752
5662
  var import_joy45 = require("@mui/joy");
5753
5663
  var import_react_virtual3 = require("@tanstack/react-virtual");
5754
5664
  var EMPTY_VALUE = [];
5755
5665
  function LabelWithTooltip(props) {
5756
5666
  const { label, size } = props;
5757
- const labelContentRef = (0, import_react36.useRef)(null);
5758
- const [isOverflowing, setIsOverflowing] = (0, import_react36.useState)(false);
5759
- const labelContent = /* @__PURE__ */ import_react36.default.createElement(
5667
+ const labelContentRef = (0, import_react35.useRef)(null);
5668
+ const [isOverflowing, setIsOverflowing] = (0, import_react35.useState)(false);
5669
+ const labelContent = /* @__PURE__ */ import_react35.default.createElement(
5760
5670
  "span",
5761
5671
  {
5762
5672
  ref: labelContentRef,
@@ -5772,14 +5682,14 @@ function LabelWithTooltip(props) {
5772
5682
  },
5773
5683
  label
5774
5684
  );
5775
- (0, import_react36.useEffect)(() => {
5685
+ (0, import_react35.useEffect)(() => {
5776
5686
  const element = labelContentRef.current;
5777
5687
  if (element) {
5778
5688
  setIsOverflowing(element.scrollWidth > element.clientWidth);
5779
5689
  }
5780
5690
  }, [label]);
5781
5691
  if (isOverflowing) {
5782
- return /* @__PURE__ */ import_react36.default.createElement(Tooltip_default, { variant: "solid", size, title: label, placement: "bottom-start" }, labelContent);
5692
+ return /* @__PURE__ */ import_react35.default.createElement(Tooltip_default, { variant: "solid", size, title: label, placement: "bottom-start" }, labelContent);
5783
5693
  }
5784
5694
  return labelContent;
5785
5695
  }
@@ -5797,22 +5707,22 @@ function FilterableCheckboxGroup(inProps) {
5797
5707
  maxHeight = 300,
5798
5708
  disabled
5799
5709
  } = props;
5800
- const [searchTerm, setSearchTerm] = (0, import_react36.useState)("");
5801
- const [sortedOptions, setSortedOptions] = (0, import_react36.useState)(options);
5710
+ const [searchTerm, setSearchTerm] = (0, import_react35.useState)("");
5711
+ const [sortedOptions, setSortedOptions] = (0, import_react35.useState)(options);
5802
5712
  const [rawValue, setInternalValue] = useControlledState(
5803
5713
  value,
5804
5714
  value ?? EMPTY_VALUE,
5805
- (0, import_react36.useCallback)((newValue) => onChange?.(newValue ?? []), [onChange])
5715
+ (0, import_react35.useCallback)((newValue) => onChange?.(newValue ?? []), [onChange])
5806
5716
  );
5807
5717
  const internalValue = rawValue ?? EMPTY_VALUE;
5808
- const parentRef = (0, import_react36.useRef)(null);
5809
- const isInitialSortRef = (0, import_react36.useRef)(false);
5810
- const prevOptionsRef = (0, import_react36.useRef)([...options]);
5811
- const filteredOptions = (0, import_react36.useMemo)(() => {
5718
+ const parentRef = (0, import_react35.useRef)(null);
5719
+ const isInitialSortRef = (0, import_react35.useRef)(false);
5720
+ const prevOptionsRef = (0, import_react35.useRef)([...options]);
5721
+ const filteredOptions = (0, import_react35.useMemo)(() => {
5812
5722
  if (!searchTerm) return sortedOptions;
5813
5723
  return sortedOptions.filter((option) => option.label.toLowerCase().includes(searchTerm.toLowerCase()));
5814
5724
  }, [sortedOptions, searchTerm]);
5815
- const itemSize = (0, import_react36.useMemo)(() => {
5725
+ const itemSize = (0, import_react35.useMemo)(() => {
5816
5726
  switch (size) {
5817
5727
  case "sm":
5818
5728
  return 28;
@@ -5830,7 +5740,7 @@ function FilterableCheckboxGroup(inProps) {
5830
5740
  overscan: 5
5831
5741
  });
5832
5742
  const items = virtualizer.getVirtualItems();
5833
- (0, import_react36.useEffect)(() => {
5743
+ (0, import_react35.useEffect)(() => {
5834
5744
  const optionsChanged = prevOptionsRef.current.length !== options.length || prevOptionsRef.current.some(
5835
5745
  (prevOption, index) => prevOption.value !== options[index]?.value || prevOption.label !== options[index]?.label || prevOption.disabled !== options[index]?.disabled
5836
5746
  );
@@ -5856,13 +5766,13 @@ function FilterableCheckboxGroup(inProps) {
5856
5766
  }
5857
5767
  }
5858
5768
  }, [options, value]);
5859
- (0, import_react36.useEffect)(() => {
5769
+ (0, import_react35.useEffect)(() => {
5860
5770
  virtualizer.measure();
5861
5771
  }, [virtualizer, filteredOptions, size]);
5862
- const handleSearchChange = (0, import_react36.useCallback)((event) => {
5772
+ const handleSearchChange = (0, import_react35.useCallback)((event) => {
5863
5773
  setSearchTerm(event.target.value);
5864
5774
  }, []);
5865
- const handleCheckboxChange = (0, import_react36.useCallback)(
5775
+ const handleCheckboxChange = (0, import_react35.useCallback)(
5866
5776
  (optionValue) => (event) => {
5867
5777
  const checked = event.target.checked;
5868
5778
  const newValue = checked ? [...internalValue, optionValue] : internalValue.filter((v) => v !== optionValue);
@@ -5870,7 +5780,7 @@ function FilterableCheckboxGroup(inProps) {
5870
5780
  },
5871
5781
  [internalValue, setInternalValue]
5872
5782
  );
5873
- const handleSelectAll = (0, import_react36.useCallback)(
5783
+ const handleSelectAll = (0, import_react35.useCallback)(
5874
5784
  (event) => {
5875
5785
  const checked = event.target.checked;
5876
5786
  const enabledOptions = filteredOptions.filter((option) => !option.disabled);
@@ -5886,10 +5796,10 @@ function FilterableCheckboxGroup(inProps) {
5886
5796
  },
5887
5797
  [filteredOptions, internalValue, setInternalValue]
5888
5798
  );
5889
- const enabledFilteredOptions = (0, import_react36.useMemo)(() => filteredOptions.filter((option) => !option.disabled), [filteredOptions]);
5799
+ const enabledFilteredOptions = (0, import_react35.useMemo)(() => filteredOptions.filter((option) => !option.disabled), [filteredOptions]);
5890
5800
  const isAllSelected = enabledFilteredOptions.length > 0 && enabledFilteredOptions.every((option) => internalValue.includes(option.value));
5891
5801
  const isIndeterminate = !isAllSelected && enabledFilteredOptions.some((option) => internalValue.includes(option.value));
5892
- return /* @__PURE__ */ import_react36.default.createElement("div", { style: { width: "100%" } }, /* @__PURE__ */ import_react36.default.createElement(
5802
+ return /* @__PURE__ */ import_react35.default.createElement("div", { style: { width: "100%" } }, /* @__PURE__ */ import_react35.default.createElement(
5893
5803
  Input_default,
5894
5804
  {
5895
5805
  label,
@@ -5902,9 +5812,9 @@ function FilterableCheckboxGroup(inProps) {
5902
5812
  onChange: handleSearchChange,
5903
5813
  size,
5904
5814
  disabled,
5905
- endDecorator: /* @__PURE__ */ import_react36.default.createElement(import_Search.default, null)
5815
+ endDecorator: /* @__PURE__ */ import_react35.default.createElement(import_Search.default, null)
5906
5816
  }
5907
- ), filteredOptions.length === 0 ? /* @__PURE__ */ import_react36.default.createElement(Typography_default, { level: `body-${size}`, textColor: "neutral.softDisabledColor", padding: "20px 12px", textAlign: "center" }, "No options found.") : /* @__PURE__ */ import_react36.default.createElement(
5817
+ ), filteredOptions.length === 0 ? /* @__PURE__ */ import_react35.default.createElement(Typography_default, { level: `body-${size}`, textColor: "neutral.softDisabledColor", padding: "20px 12px", textAlign: "center" }, "No options found.") : /* @__PURE__ */ import_react35.default.createElement(
5908
5818
  "div",
5909
5819
  {
5910
5820
  ref: parentRef,
@@ -5915,7 +5825,7 @@ function FilterableCheckboxGroup(inProps) {
5915
5825
  marginTop: "8px"
5916
5826
  }
5917
5827
  },
5918
- !searchTerm && /* @__PURE__ */ import_react36.default.createElement(
5828
+ !searchTerm && /* @__PURE__ */ import_react35.default.createElement(
5919
5829
  Checkbox_default,
5920
5830
  {
5921
5831
  label: "Select all",
@@ -5932,7 +5842,7 @@ function FilterableCheckboxGroup(inProps) {
5932
5842
  sx: { width: "100%", height: itemSize }
5933
5843
  }
5934
5844
  ),
5935
- /* @__PURE__ */ import_react36.default.createElement(
5845
+ /* @__PURE__ */ import_react35.default.createElement(
5936
5846
  Stack_default,
5937
5847
  {
5938
5848
  sx: {
@@ -5942,11 +5852,11 @@ function FilterableCheckboxGroup(inProps) {
5942
5852
  },
5943
5853
  items.map((virtualRow) => {
5944
5854
  const option = filteredOptions[virtualRow.index];
5945
- return /* @__PURE__ */ import_react36.default.createElement(
5855
+ return /* @__PURE__ */ import_react35.default.createElement(
5946
5856
  Checkbox_default,
5947
5857
  {
5948
5858
  key: virtualRow.key,
5949
- label: /* @__PURE__ */ import_react36.default.createElement(LabelWithTooltip, { label: option.label, size }),
5859
+ label: /* @__PURE__ */ import_react35.default.createElement(LabelWithTooltip, { label: option.label, size }),
5950
5860
  checked: internalValue.includes(option.value),
5951
5861
  onChange: handleCheckboxChange(option.value),
5952
5862
  size,
@@ -5977,12 +5887,9 @@ FilterableCheckboxGroup.displayName = "FilterableCheckboxGroup";
5977
5887
  var import_joy46 = require("@mui/joy");
5978
5888
 
5979
5889
  // src/components/IconMenuButton/IconMenuButton.tsx
5980
- var import_react37 = __toESM(require("react"));
5890
+ var import_react36 = __toESM(require("react"));
5981
5891
  var import_joy47 = require("@mui/joy");
5982
- var MenuButtonRootSlot = import_react37.default.forwardRef(function MenuButtonRootSlot2({ as, ...rest }, ref) {
5983
- return /* @__PURE__ */ import_react37.default.createElement(import_joy47.IconButton, { ...rest, component: as ?? "button", ref });
5984
- });
5985
- function IconMenuButtonInner(props, ref) {
5892
+ function IconMenuButton(props) {
5986
5893
  const {
5987
5894
  size,
5988
5895
  icon,
@@ -5993,10 +5900,8 @@ function IconMenuButtonInner(props, ref) {
5993
5900
  variant = "plain",
5994
5901
  placement = "bottom"
5995
5902
  } = props;
5996
- const { ref: buttonComponentRef, ...buttonComponentProps } = props.buttonComponentProps ?? {};
5997
- const mergedButtonRef = useMergedRef(buttonComponentRef, ref);
5998
5903
  if (!items.length) {
5999
- return /* @__PURE__ */ import_react37.default.createElement(
5904
+ return /* @__PURE__ */ import_react36.default.createElement(
6000
5905
  import_joy47.IconButton,
6001
5906
  {
6002
5907
  component: props.buttonComponent ?? "button",
@@ -6005,16 +5910,15 @@ function IconMenuButtonInner(props, ref) {
6005
5910
  color,
6006
5911
  disabled,
6007
5912
  loading,
6008
- ...buttonComponentProps,
6009
- ref: mergedButtonRef
5913
+ ...props.buttonComponentProps ?? {}
6010
5914
  },
6011
5915
  icon
6012
5916
  );
6013
5917
  }
6014
- return /* @__PURE__ */ import_react37.default.createElement(Dropdown_default, null, /* @__PURE__ */ import_react37.default.createElement(
5918
+ return /* @__PURE__ */ import_react36.default.createElement(Dropdown_default, null, /* @__PURE__ */ import_react36.default.createElement(
6015
5919
  import_joy47.MenuButton,
6016
5920
  {
6017
- slots: { root: MenuButtonRootSlot },
5921
+ slots: { root: import_joy47.IconButton },
6018
5922
  slotProps: {
6019
5923
  root: {
6020
5924
  component: props.buttonComponent ?? "button",
@@ -6023,27 +5927,24 @@ function IconMenuButtonInner(props, ref) {
6023
5927
  color,
6024
5928
  disabled,
6025
5929
  loading,
6026
- ...buttonComponentProps,
6027
- // Joy의 useSlot이 내부 ref와 이 ref를 합쳐준다. 위 no-items 분기와 같은 경로로 ref를 넘긴다.
6028
- ref: mergedButtonRef
5930
+ ...props.buttonComponentProps ?? {}
6029
5931
  }
6030
5932
  }
6031
5933
  },
6032
5934
  icon
6033
- ), /* @__PURE__ */ import_react37.default.createElement(Menu, { placement, size }, items.map((i) => /* @__PURE__ */ import_react37.default.createElement(MenuItem, { key: i.text, component: i.component, ...i.componentProps ?? {} }, i.text))));
5935
+ ), /* @__PURE__ */ import_react36.default.createElement(Menu, { placement, size }, items.map((i) => /* @__PURE__ */ import_react36.default.createElement(MenuItem, { key: i.text, component: i.component, ...i.componentProps ?? {} }, i.text))));
6034
5936
  }
6035
- var IconMenuButton = import_react37.default.forwardRef(IconMenuButtonInner);
6036
5937
  IconMenuButton.displayName = "IconMenuButton";
6037
5938
 
6038
5939
  // src/components/Markdown/Markdown.tsx
6039
- var import_react38 = __toESM(require("react"));
5940
+ var import_react37 = __toESM(require("react"));
6040
5941
  var import_joy48 = require("@mui/joy");
6041
5942
  var import_joy49 = require("@mui/joy");
6042
5943
  var import_remark_gfm = __toESM(require("remark-gfm"));
6043
- var LazyReactMarkdown = (0, import_react38.lazy)(() => import("react-markdown"));
5944
+ var LazyReactMarkdown = (0, import_react37.lazy)(() => import("react-markdown"));
6044
5945
  var Markdown = (props) => {
6045
- const [rehypeAccent2, setRehypeAccent] = (0, import_react38.useState)(null);
6046
- (0, import_react38.useEffect)(() => {
5946
+ const [rehypeAccent2, setRehypeAccent] = (0, import_react37.useState)(null);
5947
+ (0, import_react37.useEffect)(() => {
6047
5948
  const loadRehypeAccent = async () => {
6048
5949
  const module2 = await Promise.resolve().then(() => (init_rehype_accent(), rehype_accent_exports));
6049
5950
  setRehypeAccent(() => module2.rehypeAccent);
@@ -6065,8 +5966,8 @@ var Markdown = (props) => {
6065
5966
  if (!rehypeAccent2) {
6066
5967
  return null;
6067
5968
  }
6068
- return /* @__PURE__ */ import_react38.default.createElement(Typography, { component: "div", color, textColor, level: defaultLevel, ...innerProps }, /* @__PURE__ */ import_react38.default.createElement(
6069
- import_react38.Suspense,
5969
+ return /* @__PURE__ */ import_react37.default.createElement(Typography, { component: "div", color, textColor, level: defaultLevel, ...innerProps }, /* @__PURE__ */ import_react37.default.createElement(
5970
+ import_react37.Suspense,
6070
5971
  {
6071
5972
  fallback: (
6072
5973
  // While in the fallback state, prevent browser auto-translation (e.g. Chrome/Google Translate)
@@ -6074,10 +5975,10 @@ var Markdown = (props) => {
6074
5975
  // swaps the fallback for the real content via insertBefore; if the browser has mutated the DOM
6075
5976
  // in the meantime, the reference node's parent changes and React throws a DOMException
6076
5977
  // ("Failed to execute 'insertBefore' on 'Node'"), crashing the subtree. (cf. facebook/react#11538)
6077
- fallback || /* @__PURE__ */ import_react38.default.createElement(Typography, { translate: "no", className: "notranslate" }, /* @__PURE__ */ import_react38.default.createElement(import_joy48.Skeleton, null, content || ""))
5978
+ fallback || /* @__PURE__ */ import_react37.default.createElement(Typography, { translate: "no", className: "notranslate" }, /* @__PURE__ */ import_react37.default.createElement(import_joy48.Skeleton, null, content || ""))
6078
5979
  )
6079
5980
  },
6080
- /* @__PURE__ */ import_react38.default.createElement(
5981
+ /* @__PURE__ */ import_react37.default.createElement(
6081
5982
  LazyReactMarkdown,
6082
5983
  {
6083
5984
  ...markdownOptions,
@@ -6085,17 +5986,17 @@ var Markdown = (props) => {
6085
5986
  rehypePlugins: [[rehypeAccent2, { accentColor }]],
6086
5987
  remarkPlugins: [import_remark_gfm.default],
6087
5988
  components: {
6088
- a: ({ children, href }) => /* @__PURE__ */ import_react38.default.createElement(import_joy49.Link, { href, target: defaultLinkAction }, children),
6089
- hr: () => /* @__PURE__ */ import_react38.default.createElement(Divider, { sx: { display: "block" } }),
6090
- b: ({ children }) => /* @__PURE__ */ import_react38.default.createElement(Typography, { component: "strong", fontWeight: boldFontWeight || "lg" }, children),
6091
- strong: ({ children }) => /* @__PURE__ */ import_react38.default.createElement(Typography, { component: "strong", fontWeight: boldFontWeight || "lg" }, children),
5989
+ a: ({ children, href }) => /* @__PURE__ */ import_react37.default.createElement(import_joy49.Link, { href, target: defaultLinkAction }, children),
5990
+ hr: () => /* @__PURE__ */ import_react37.default.createElement(Divider, { sx: { display: "block" } }),
5991
+ b: ({ children }) => /* @__PURE__ */ import_react37.default.createElement(Typography, { component: "strong", fontWeight: boldFontWeight || "lg" }, children),
5992
+ strong: ({ children }) => /* @__PURE__ */ import_react37.default.createElement(Typography, { component: "strong", fontWeight: boldFontWeight || "lg" }, children),
6092
5993
  // Table components
6093
- table: ({ children }) => /* @__PURE__ */ import_react38.default.createElement(Sheet, { variant: "outlined", sx: { display: "block", borderRadius: "sm", overflow: "auto" } }, /* @__PURE__ */ import_react38.default.createElement(Table, { size: "sm" }, children)),
5994
+ table: ({ children }) => /* @__PURE__ */ import_react37.default.createElement(Sheet, { variant: "outlined", sx: { display: "block", borderRadius: "sm", overflow: "auto" } }, /* @__PURE__ */ import_react37.default.createElement(Table, { size: "sm" }, children)),
6094
5995
  // Code components
6095
5996
  code: ({ children, className }) => {
6096
5997
  const isBlock = className?.startsWith("language-");
6097
5998
  if (isBlock) {
6098
- return /* @__PURE__ */ import_react38.default.createElement(
5999
+ return /* @__PURE__ */ import_react37.default.createElement(
6099
6000
  Typography,
6100
6001
  {
6101
6002
  component: "code",
@@ -6109,7 +6010,7 @@ var Markdown = (props) => {
6109
6010
  children
6110
6011
  );
6111
6012
  }
6112
- return /* @__PURE__ */ import_react38.default.createElement(
6013
+ return /* @__PURE__ */ import_react37.default.createElement(
6113
6014
  Typography,
6114
6015
  {
6115
6016
  component: "code",
@@ -6124,7 +6025,7 @@ var Markdown = (props) => {
6124
6025
  children
6125
6026
  );
6126
6027
  },
6127
- pre: ({ children }) => /* @__PURE__ */ import_react38.default.createElement(
6028
+ pre: ({ children }) => /* @__PURE__ */ import_react37.default.createElement(
6128
6029
  Sheet,
6129
6030
  {
6130
6031
  variant: "soft",
@@ -6142,12 +6043,12 @@ var Markdown = (props) => {
6142
6043
  // Task list checkbox
6143
6044
  input: ({ checked, type }) => {
6144
6045
  if (type === "checkbox") {
6145
- return /* @__PURE__ */ import_react38.default.createElement(Checkbox, { checked, disabled: true, size: "sm", sx: { mr: 1 } });
6046
+ return /* @__PURE__ */ import_react37.default.createElement(Checkbox, { checked, disabled: true, size: "sm", sx: { mr: 1 } });
6146
6047
  }
6147
- return /* @__PURE__ */ import_react38.default.createElement("input", { checked, type });
6048
+ return /* @__PURE__ */ import_react37.default.createElement("input", { checked, type });
6148
6049
  },
6149
6050
  // Blockquote
6150
- blockquote: ({ children }) => /* @__PURE__ */ import_react38.default.createElement(
6051
+ blockquote: ({ children }) => /* @__PURE__ */ import_react37.default.createElement(
6151
6052
  Sheet,
6152
6053
  {
6153
6054
  variant: "soft",
@@ -6156,12 +6057,12 @@ var Markdown = (props) => {
6156
6057
  children
6157
6058
  ),
6158
6059
  // Image
6159
- img: ({ src, alt }) => /* @__PURE__ */ import_react38.default.createElement("img", { src, alt, style: { maxWidth: "100%", borderRadius: "4px" } }),
6060
+ img: ({ src, alt }) => /* @__PURE__ */ import_react37.default.createElement("img", { src, alt, style: { maxWidth: "100%", borderRadius: "4px" } }),
6160
6061
  // Text style components
6161
- em: ({ children }) => /* @__PURE__ */ import_react38.default.createElement(Typography, { component: "em", sx: { fontStyle: "italic" } }, children),
6162
- del: ({ children }) => /* @__PURE__ */ import_react38.default.createElement(Typography, { component: "del", sx: { textDecoration: "line-through" } }, children),
6062
+ em: ({ children }) => /* @__PURE__ */ import_react37.default.createElement(Typography, { component: "em", sx: { fontStyle: "italic" } }, children),
6063
+ del: ({ children }) => /* @__PURE__ */ import_react37.default.createElement(Typography, { component: "del", sx: { textDecoration: "line-through" } }, children),
6163
6064
  // Span for accent color (from rehype-accent plugin)
6164
- span: ({ children, node }) => /* @__PURE__ */ import_react38.default.createElement(Typography, { component: "span", textColor: node?.properties?.textColor }, children),
6065
+ span: ({ children, node }) => /* @__PURE__ */ import_react37.default.createElement(Typography, { component: "span", textColor: node?.properties?.textColor }, children),
6165
6066
  ...markdownOptions?.components
6166
6067
  }
6167
6068
  }
@@ -6171,7 +6072,7 @@ var Markdown = (props) => {
6171
6072
  Markdown.displayName = "Markdown";
6172
6073
 
6173
6074
  // src/components/MenuButton/MenuButton.tsx
6174
- var import_react39 = __toESM(require("react"));
6075
+ var import_react38 = __toESM(require("react"));
6175
6076
  var import_joy50 = require("@mui/joy");
6176
6077
  var import_ExpandMore = __toESM(require("@mui/icons-material/ExpandMore"));
6177
6078
  function MenuButton2(props) {
@@ -6189,7 +6090,7 @@ function MenuButton2(props) {
6189
6090
  placement = "bottom"
6190
6091
  } = props;
6191
6092
  if (!items.length) {
6192
- return /* @__PURE__ */ import_react39.default.createElement(
6093
+ return /* @__PURE__ */ import_react38.default.createElement(
6193
6094
  import_joy50.Button,
6194
6095
  {
6195
6096
  component: props.buttonComponent ?? "button",
@@ -6200,12 +6101,12 @@ function MenuButton2(props) {
6200
6101
  loading,
6201
6102
  startDecorator,
6202
6103
  ...props.buttonComponentProps ?? {},
6203
- endDecorator: showIcon ? /* @__PURE__ */ import_react39.default.createElement(import_react39.default.Fragment, null, endDecorator, /* @__PURE__ */ import_react39.default.createElement(import_ExpandMore.default, null)) : /* @__PURE__ */ import_react39.default.createElement(import_react39.default.Fragment, null, endDecorator)
6104
+ endDecorator: showIcon ? /* @__PURE__ */ import_react38.default.createElement(import_react38.default.Fragment, null, endDecorator, /* @__PURE__ */ import_react38.default.createElement(import_ExpandMore.default, null)) : /* @__PURE__ */ import_react38.default.createElement(import_react38.default.Fragment, null, endDecorator)
6204
6105
  },
6205
6106
  buttonText
6206
6107
  );
6207
6108
  }
6208
- return /* @__PURE__ */ import_react39.default.createElement(Dropdown_default, null, /* @__PURE__ */ import_react39.default.createElement(
6109
+ return /* @__PURE__ */ import_react38.default.createElement(Dropdown_default, null, /* @__PURE__ */ import_react38.default.createElement(
6209
6110
  import_joy50.MenuButton,
6210
6111
  {
6211
6112
  component: props.buttonComponent ?? "button",
@@ -6216,15 +6117,15 @@ function MenuButton2(props) {
6216
6117
  loading,
6217
6118
  startDecorator,
6218
6119
  ...props.buttonComponentProps ?? {},
6219
- endDecorator: showIcon ? /* @__PURE__ */ import_react39.default.createElement(import_react39.default.Fragment, null, endDecorator, /* @__PURE__ */ import_react39.default.createElement(import_ExpandMore.default, null)) : /* @__PURE__ */ import_react39.default.createElement(import_react39.default.Fragment, null, endDecorator)
6120
+ endDecorator: showIcon ? /* @__PURE__ */ import_react38.default.createElement(import_react38.default.Fragment, null, endDecorator, /* @__PURE__ */ import_react38.default.createElement(import_ExpandMore.default, null)) : /* @__PURE__ */ import_react38.default.createElement(import_react38.default.Fragment, null, endDecorator)
6220
6121
  },
6221
6122
  buttonText
6222
- ), /* @__PURE__ */ import_react39.default.createElement(Menu, { placement, size }, items.map((i) => /* @__PURE__ */ import_react39.default.createElement(MenuItem, { key: i.text, component: i.component, ...i.componentProps ?? {} }, i.text))));
6123
+ ), /* @__PURE__ */ import_react38.default.createElement(Menu, { placement, size }, items.map((i) => /* @__PURE__ */ import_react38.default.createElement(MenuItem, { key: i.text, component: i.component, ...i.componentProps ?? {} }, i.text))));
6223
6124
  }
6224
6125
  MenuButton2.displayName = "MenuButton";
6225
6126
 
6226
6127
  // src/components/MonthPicker/MonthPicker.tsx
6227
- var import_react40 = __toESM(require("react"));
6128
+ var import_react39 = __toESM(require("react"));
6228
6129
  var import_CalendarToday3 = __toESM(require("@mui/icons-material/CalendarToday"));
6229
6130
  var import_joy51 = require("@mui/joy");
6230
6131
  var import_base5 = require("@mui/base");
@@ -6280,7 +6181,7 @@ function parseDate3(dateString, format) {
6280
6181
  const result = new Date(year, month, day);
6281
6182
  return result;
6282
6183
  }
6283
- var MonthPicker = (0, import_react40.forwardRef)((inProps, ref) => {
6184
+ var MonthPicker = (0, import_react39.forwardRef)((inProps, ref) => {
6284
6185
  const props = (0, import_joy51.useThemeProps)({ props: inProps, name: "MonthPicker" });
6285
6186
  const {
6286
6187
  onChange,
@@ -6307,18 +6208,18 @@ var MonthPicker = (0, import_react40.forwardRef)((inProps, ref) => {
6307
6208
  locale,
6308
6209
  ...innerProps
6309
6210
  } = props;
6310
- const innerRef = (0, import_react40.useRef)(null);
6311
- const buttonRef = (0, import_react40.useRef)(null);
6211
+ const innerRef = (0, import_react39.useRef)(null);
6212
+ const buttonRef = (0, import_react39.useRef)(null);
6312
6213
  const [rawValue, setValue, isControlled] = useControlledState(
6313
6214
  props.value,
6314
6215
  props.defaultValue ?? null,
6315
- (0, import_react40.useCallback)(
6216
+ (0, import_react39.useCallback)(
6316
6217
  (value2) => onChange?.({ target: { name: props.name, value: value2 ?? "" } }),
6317
6218
  [props.name, onChange]
6318
6219
  )
6319
6220
  );
6320
6221
  const value = rawValue ?? "";
6321
- const getFormattedDisplayValue = (0, import_react40.useCallback)(
6222
+ const getFormattedDisplayValue = (0, import_react39.useCallback)(
6322
6223
  (inputValue) => {
6323
6224
  if (!inputValue) return "";
6324
6225
  try {
@@ -6329,19 +6230,19 @@ var MonthPicker = (0, import_react40.forwardRef)((inProps, ref) => {
6329
6230
  },
6330
6231
  [format, displayFormat, locale]
6331
6232
  );
6332
- const [displayValue, setDisplayValue] = (0, import_react40.useState)(() => getFormattedDisplayValue(value));
6333
- const [anchorEl, setAnchorEl] = (0, import_react40.useState)(null);
6233
+ const [displayValue, setDisplayValue] = (0, import_react39.useState)(() => getFormattedDisplayValue(value));
6234
+ const [anchorEl, setAnchorEl] = (0, import_react39.useState)(null);
6334
6235
  const open = Boolean(anchorEl);
6335
- (0, import_react40.useEffect)(() => {
6236
+ (0, import_react39.useEffect)(() => {
6336
6237
  if (!anchorEl) {
6337
6238
  innerRef.current?.blur();
6338
6239
  }
6339
6240
  }, [anchorEl, innerRef]);
6340
- (0, import_react40.useImperativeHandle)(ref, () => innerRef.current, [innerRef]);
6341
- (0, import_react40.useEffect)(() => {
6241
+ (0, import_react39.useImperativeHandle)(ref, () => innerRef.current, [innerRef]);
6242
+ (0, import_react39.useEffect)(() => {
6342
6243
  setDisplayValue(getFormattedDisplayValue(value));
6343
6244
  }, [value, getFormattedDisplayValue]);
6344
- const handleChange = (0, import_react40.useCallback)(
6245
+ const handleChange = (0, import_react39.useCallback)(
6345
6246
  (event) => {
6346
6247
  const newValue = event.target.value;
6347
6248
  setValue(newValue);
@@ -6351,21 +6252,21 @@ var MonthPicker = (0, import_react40.forwardRef)((inProps, ref) => {
6351
6252
  },
6352
6253
  [setValue, getFormattedDisplayValue, isControlled]
6353
6254
  );
6354
- const handleCalendarToggle = (0, import_react40.useCallback)(
6255
+ const handleCalendarToggle = (0, import_react39.useCallback)(
6355
6256
  (event) => {
6356
6257
  setAnchorEl(anchorEl ? null : event.currentTarget);
6357
6258
  innerRef.current?.focus();
6358
6259
  },
6359
6260
  [anchorEl, setAnchorEl, innerRef]
6360
6261
  );
6361
- const handleInputMouseDown = (0, import_react40.useCallback)(
6262
+ const handleInputMouseDown = (0, import_react39.useCallback)(
6362
6263
  (event) => {
6363
6264
  event.preventDefault();
6364
6265
  buttonRef.current?.focus();
6365
6266
  },
6366
6267
  [buttonRef]
6367
6268
  );
6368
- return /* @__PURE__ */ import_react40.default.createElement(MonthPickerRoot, null, /* @__PURE__ */ import_react40.default.createElement(import_base5.FocusTrap, { open: true }, /* @__PURE__ */ import_react40.default.createElement(import_react40.default.Fragment, null, /* @__PURE__ */ import_react40.default.createElement(
6269
+ return /* @__PURE__ */ import_react39.default.createElement(MonthPickerRoot, null, /* @__PURE__ */ import_react39.default.createElement(import_base5.FocusTrap, { open: true }, /* @__PURE__ */ import_react39.default.createElement(import_react39.default.Fragment, null, /* @__PURE__ */ import_react39.default.createElement(
6369
6270
  Input_default,
6370
6271
  {
6371
6272
  ...innerProps,
@@ -6395,7 +6296,7 @@ var MonthPicker = (0, import_react40.forwardRef)((inProps, ref) => {
6395
6296
  // NOTE: placeholder char 를 텍스트로 표시하므로 동일한 너비를 가지는 mono font 를 사용해야 이질감이 없다.
6396
6297
  fontFamily: "monospace"
6397
6298
  },
6398
- endDecorator: /* @__PURE__ */ import_react40.default.createElement(
6299
+ endDecorator: /* @__PURE__ */ import_react39.default.createElement(
6399
6300
  IconButton_default,
6400
6301
  {
6401
6302
  ref: buttonRef,
@@ -6407,12 +6308,12 @@ var MonthPicker = (0, import_react40.forwardRef)((inProps, ref) => {
6407
6308
  "aria-expanded": open,
6408
6309
  disabled
6409
6310
  },
6410
- /* @__PURE__ */ import_react40.default.createElement(import_CalendarToday3.default, null)
6311
+ /* @__PURE__ */ import_react39.default.createElement(import_CalendarToday3.default, null)
6411
6312
  ),
6412
6313
  label,
6413
6314
  helperText
6414
6315
  }
6415
- ), open && /* @__PURE__ */ import_react40.default.createElement(import_base5.ClickAwayListener, { onClickAway: () => setAnchorEl(null) }, /* @__PURE__ */ import_react40.default.createElement(
6316
+ ), open && /* @__PURE__ */ import_react39.default.createElement(import_base5.ClickAwayListener, { onClickAway: () => setAnchorEl(null) }, /* @__PURE__ */ import_react39.default.createElement(
6416
6317
  StyledPopper3,
6417
6318
  {
6418
6319
  id: "month-picker-popper",
@@ -6431,7 +6332,7 @@ var MonthPicker = (0, import_react40.forwardRef)((inProps, ref) => {
6431
6332
  "aria-label": "Calendar Tooltip",
6432
6333
  "aria-expanded": open
6433
6334
  },
6434
- /* @__PURE__ */ import_react40.default.createElement(CalendarSheet3, { tabIndex: -1, role: "presentation" }, /* @__PURE__ */ import_react40.default.createElement(
6335
+ /* @__PURE__ */ import_react39.default.createElement(CalendarSheet3, { tabIndex: -1, role: "presentation" }, /* @__PURE__ */ import_react39.default.createElement(
6435
6336
  Calendar_default,
6436
6337
  {
6437
6338
  view: "month",
@@ -6452,14 +6353,14 @@ var MonthPicker = (0, import_react40.forwardRef)((inProps, ref) => {
6452
6353
  disablePast,
6453
6354
  locale
6454
6355
  }
6455
- ), /* @__PURE__ */ import_react40.default.createElement(
6356
+ ), /* @__PURE__ */ import_react39.default.createElement(
6456
6357
  DialogActions_default,
6457
6358
  {
6458
6359
  sx: {
6459
6360
  p: 1
6460
6361
  }
6461
6362
  },
6462
- /* @__PURE__ */ import_react40.default.createElement(
6363
+ /* @__PURE__ */ import_react39.default.createElement(
6463
6364
  Button_default,
6464
6365
  {
6465
6366
  size,
@@ -6482,7 +6383,7 @@ var MonthPicker = (0, import_react40.forwardRef)((inProps, ref) => {
6482
6383
  });
6483
6384
 
6484
6385
  // src/components/MonthRangePicker/MonthRangePicker.tsx
6485
- var import_react41 = __toESM(require("react"));
6386
+ var import_react40 = __toESM(require("react"));
6486
6387
  var import_react_imask3 = require("react-imask");
6487
6388
  var import_CalendarToday4 = __toESM(require("@mui/icons-material/CalendarToday"));
6488
6389
  var import_joy52 = require("@mui/joy");
@@ -6543,9 +6444,9 @@ var parseDates2 = (str) => {
6543
6444
  var formatToPattern3 = (format) => {
6544
6445
  return `${format} - ${format}`.replace(/YYYY/g, "Y").replace(/MM/g, "m").replace(/[^YMm\s]/g, (match) => `${match}\``);
6545
6446
  };
6546
- var TextMaskAdapter7 = import_react41.default.forwardRef(function TextMaskAdapter8(props, ref) {
6447
+ var TextMaskAdapter7 = import_react40.default.forwardRef(function TextMaskAdapter8(props, ref) {
6547
6448
  const { onChange, format, ...other } = props;
6548
- return /* @__PURE__ */ import_react41.default.createElement(
6449
+ return /* @__PURE__ */ import_react40.default.createElement(
6549
6450
  import_react_imask3.IMaskInput,
6550
6451
  {
6551
6452
  ...other,
@@ -6573,7 +6474,7 @@ var TextMaskAdapter7 = import_react41.default.forwardRef(function TextMaskAdapte
6573
6474
  }
6574
6475
  );
6575
6476
  });
6576
- var MonthRangePicker = (0, import_react41.forwardRef)((inProps, ref) => {
6477
+ var MonthRangePicker = (0, import_react40.forwardRef)((inProps, ref) => {
6577
6478
  const props = (0, import_joy52.useThemeProps)({ props: inProps, name: "MonthRangePicker" });
6578
6479
  const {
6579
6480
  onChange,
@@ -6597,24 +6498,24 @@ var MonthRangePicker = (0, import_react41.forwardRef)((inProps, ref) => {
6597
6498
  } = props;
6598
6499
  const displayFormat = displayFormatProp ?? format;
6599
6500
  const isAlphabeticDisplay = hasAlphabeticMonth3(displayFormat);
6600
- const innerRef = (0, import_react41.useRef)(null);
6601
- const buttonRef = (0, import_react41.useRef)(null);
6501
+ const innerRef = (0, import_react40.useRef)(null);
6502
+ const buttonRef = (0, import_react40.useRef)(null);
6602
6503
  const [rawValue, setValue] = useControlledState(
6603
6504
  props.value,
6604
6505
  props.defaultValue ?? null,
6605
- (0, import_react41.useCallback)(
6506
+ (0, import_react40.useCallback)(
6606
6507
  (value2) => onChange?.({ target: { name: props.name, value: value2 ?? "" } }),
6607
6508
  [props.name, onChange]
6608
6509
  )
6609
6510
  );
6610
6511
  const value = rawValue ?? "";
6611
- const [displayValue, setDisplayValue] = (0, import_react41.useState)(
6512
+ const [displayValue, setDisplayValue] = (0, import_react40.useState)(
6612
6513
  () => value ? formatValueString4(parseDates2(value), displayFormat, locale) : ""
6613
6514
  );
6614
- const [anchorEl, setAnchorEl] = (0, import_react41.useState)(null);
6515
+ const [anchorEl, setAnchorEl] = (0, import_react40.useState)(null);
6615
6516
  const open = Boolean(anchorEl);
6616
- const calendarValue = (0, import_react41.useMemo)(() => value ? parseDates2(value) : void 0, [value]);
6617
- (0, import_react41.useEffect)(() => {
6517
+ const calendarValue = (0, import_react40.useMemo)(() => value ? parseDates2(value) : void 0, [value]);
6518
+ (0, import_react40.useEffect)(() => {
6618
6519
  if (value) {
6619
6520
  try {
6620
6521
  const dates = parseDates2(value);
@@ -6626,13 +6527,13 @@ var MonthRangePicker = (0, import_react41.forwardRef)((inProps, ref) => {
6626
6527
  setDisplayValue("");
6627
6528
  }
6628
6529
  }, [displayFormat, locale, value]);
6629
- (0, import_react41.useEffect)(() => {
6530
+ (0, import_react40.useEffect)(() => {
6630
6531
  if (!anchorEl) {
6631
6532
  innerRef.current?.blur();
6632
6533
  }
6633
6534
  }, [anchorEl, innerRef]);
6634
- (0, import_react41.useImperativeHandle)(ref, () => innerRef.current, [innerRef]);
6635
- const handleChange = (0, import_react41.useCallback)(
6535
+ (0, import_react40.useImperativeHandle)(ref, () => innerRef.current, [innerRef]);
6536
+ const handleChange = (0, import_react40.useCallback)(
6636
6537
  (event) => {
6637
6538
  setDisplayValue(
6638
6539
  event.target.value ? formatValueString4(parseDates2(event.target.value), displayFormat, locale) : ""
@@ -6641,7 +6542,7 @@ var MonthRangePicker = (0, import_react41.forwardRef)((inProps, ref) => {
6641
6542
  },
6642
6543
  [displayFormat, locale, setValue]
6643
6544
  );
6644
- const handleInputMouseDown = (0, import_react41.useCallback)(
6545
+ const handleInputMouseDown = (0, import_react40.useCallback)(
6645
6546
  (event) => {
6646
6547
  if (isAlphabeticDisplay) {
6647
6548
  event.preventDefault();
@@ -6650,14 +6551,14 @@ var MonthRangePicker = (0, import_react41.forwardRef)((inProps, ref) => {
6650
6551
  },
6651
6552
  [isAlphabeticDisplay, buttonRef]
6652
6553
  );
6653
- const handleCalendarToggle = (0, import_react41.useCallback)(
6554
+ const handleCalendarToggle = (0, import_react40.useCallback)(
6654
6555
  (event) => {
6655
6556
  setAnchorEl(anchorEl ? null : event.currentTarget);
6656
6557
  innerRef.current?.focus();
6657
6558
  },
6658
6559
  [anchorEl, setAnchorEl, innerRef]
6659
6560
  );
6660
- const handleCalendarChange = (0, import_react41.useCallback)(
6561
+ const handleCalendarChange = (0, import_react40.useCallback)(
6661
6562
  ([date1, date2]) => {
6662
6563
  if (!date1 || !date2) return;
6663
6564
  const formattedValue = formatValueString4([date1, date2], format);
@@ -6667,7 +6568,7 @@ var MonthRangePicker = (0, import_react41.forwardRef)((inProps, ref) => {
6667
6568
  },
6668
6569
  [setValue, setAnchorEl, format, displayFormat, locale]
6669
6570
  );
6670
- return /* @__PURE__ */ import_react41.default.createElement(MonthRangePickerRoot, null, /* @__PURE__ */ import_react41.default.createElement(import_base6.FocusTrap, { open: true }, /* @__PURE__ */ import_react41.default.createElement(import_react41.default.Fragment, null, /* @__PURE__ */ import_react41.default.createElement(
6571
+ return /* @__PURE__ */ import_react40.default.createElement(MonthRangePickerRoot, null, /* @__PURE__ */ import_react40.default.createElement(import_base6.FocusTrap, { open: true }, /* @__PURE__ */ import_react40.default.createElement(import_react40.default.Fragment, null, /* @__PURE__ */ import_react40.default.createElement(
6671
6572
  Input_default,
6672
6573
  {
6673
6574
  ...innerProps,
@@ -6697,7 +6598,7 @@ var MonthRangePicker = (0, import_react41.forwardRef)((inProps, ref) => {
6697
6598
  // NOTE: placeholder char 를 텍스트로 표시하므로 동일한 너비를 가지는 mono font 를 사용해야 이질감이 없다.
6698
6599
  fontFamily: "monospace"
6699
6600
  },
6700
- endDecorator: /* @__PURE__ */ import_react41.default.createElement(
6601
+ endDecorator: /* @__PURE__ */ import_react40.default.createElement(
6701
6602
  IconButton_default,
6702
6603
  {
6703
6604
  ref: buttonRef,
@@ -6708,12 +6609,12 @@ var MonthRangePicker = (0, import_react41.forwardRef)((inProps, ref) => {
6708
6609
  "aria-haspopup": "dialog",
6709
6610
  "aria-expanded": open
6710
6611
  },
6711
- /* @__PURE__ */ import_react41.default.createElement(import_CalendarToday4.default, null)
6612
+ /* @__PURE__ */ import_react40.default.createElement(import_CalendarToday4.default, null)
6712
6613
  ),
6713
6614
  label,
6714
6615
  helperText
6715
6616
  }
6716
- ), open && /* @__PURE__ */ import_react41.default.createElement(import_base6.ClickAwayListener, { onClickAway: () => setAnchorEl(null) }, /* @__PURE__ */ import_react41.default.createElement(
6617
+ ), open && /* @__PURE__ */ import_react40.default.createElement(import_base6.ClickAwayListener, { onClickAway: () => setAnchorEl(null) }, /* @__PURE__ */ import_react40.default.createElement(
6717
6618
  StyledPopper4,
6718
6619
  {
6719
6620
  id: "month-range-picker-popper",
@@ -6732,7 +6633,7 @@ var MonthRangePicker = (0, import_react41.forwardRef)((inProps, ref) => {
6732
6633
  "aria-label": "Calendar Tooltip",
6733
6634
  "aria-expanded": open
6734
6635
  },
6735
- /* @__PURE__ */ import_react41.default.createElement(CalendarSheet4, { tabIndex: -1, role: "presentation" }, /* @__PURE__ */ import_react41.default.createElement(
6636
+ /* @__PURE__ */ import_react40.default.createElement(CalendarSheet4, { tabIndex: -1, role: "presentation" }, /* @__PURE__ */ import_react40.default.createElement(
6736
6637
  Calendar_default,
6737
6638
  {
6738
6639
  view: "month",
@@ -6746,14 +6647,14 @@ var MonthRangePicker = (0, import_react41.forwardRef)((inProps, ref) => {
6746
6647
  disablePast,
6747
6648
  locale
6748
6649
  }
6749
- ), /* @__PURE__ */ import_react41.default.createElement(
6650
+ ), /* @__PURE__ */ import_react40.default.createElement(
6750
6651
  DialogActions_default,
6751
6652
  {
6752
6653
  sx: {
6753
6654
  p: 1
6754
6655
  }
6755
6656
  },
6756
- /* @__PURE__ */ import_react41.default.createElement(
6657
+ /* @__PURE__ */ import_react40.default.createElement(
6757
6658
  Button_default,
6758
6659
  {
6759
6660
  size,
@@ -6772,7 +6673,7 @@ var MonthRangePicker = (0, import_react41.forwardRef)((inProps, ref) => {
6772
6673
  MonthRangePicker.displayName = "MonthRangePicker";
6773
6674
 
6774
6675
  // src/components/NavigationGroup/NavigationGroup.tsx
6775
- var import_react42 = __toESM(require("react"));
6676
+ var import_react41 = __toESM(require("react"));
6776
6677
  var import_joy53 = require("@mui/joy");
6777
6678
  var AccordionSummary2 = (0, import_joy53.styled)(import_joy53.AccordionSummary, {
6778
6679
  name: "NavigationGroup",
@@ -6796,11 +6697,11 @@ var AccordionDetails2 = (0, import_joy53.styled)(import_joy53.AccordionDetails,
6796
6697
  }));
6797
6698
  function NavigationGroup(props) {
6798
6699
  const { title, children, startDecorator, level, ...rest } = props;
6799
- return /* @__PURE__ */ import_react42.default.createElement(import_joy53.Accordion, { ...rest }, /* @__PURE__ */ import_react42.default.createElement(AccordionSummary2, { useIcon: !!startDecorator, level }, /* @__PURE__ */ import_react42.default.createElement(import_joy53.Stack, { direction: "row", gap: 4 }, startDecorator, title)), /* @__PURE__ */ import_react42.default.createElement(AccordionDetails2, null, children));
6700
+ return /* @__PURE__ */ import_react41.default.createElement(import_joy53.Accordion, { ...rest }, /* @__PURE__ */ import_react41.default.createElement(AccordionSummary2, { useIcon: !!startDecorator, level }, /* @__PURE__ */ import_react41.default.createElement(import_joy53.Stack, { direction: "row", gap: 4 }, startDecorator, title)), /* @__PURE__ */ import_react41.default.createElement(AccordionDetails2, null, children));
6800
6701
  }
6801
6702
 
6802
6703
  // src/components/NavigationItem/NavigationItem.tsx
6803
- var import_react43 = __toESM(require("react"));
6704
+ var import_react42 = __toESM(require("react"));
6804
6705
  var import_joy54 = require("@mui/joy");
6805
6706
  var ListItemButton = (0, import_joy54.styled)(import_joy54.ListItemButton, {
6806
6707
  name: "NavigationItem",
@@ -6829,7 +6730,7 @@ function NavigationItem(props) {
6829
6730
  const handleClick = () => {
6830
6731
  onClick?.(id);
6831
6732
  };
6832
- return /* @__PURE__ */ import_react43.default.createElement(import_joy54.ListItem, { ...rest }, /* @__PURE__ */ import_react43.default.createElement(
6733
+ return /* @__PURE__ */ import_react42.default.createElement(import_joy54.ListItem, { ...rest }, /* @__PURE__ */ import_react42.default.createElement(
6833
6734
  ListItemButton,
6834
6735
  {
6835
6736
  level,
@@ -6838,21 +6739,21 @@ function NavigationItem(props) {
6838
6739
  "aria-current": selected,
6839
6740
  onClick: handleClick
6840
6741
  },
6841
- startDecorator && /* @__PURE__ */ import_react43.default.createElement(import_joy54.ListItemDecorator, null, startDecorator),
6742
+ startDecorator && /* @__PURE__ */ import_react42.default.createElement(import_joy54.ListItemDecorator, null, startDecorator),
6842
6743
  children
6843
6744
  ));
6844
6745
  }
6845
6746
 
6846
6747
  // src/components/Navigator/Navigator.tsx
6847
- var import_react44 = __toESM(require("react"));
6748
+ var import_react43 = __toESM(require("react"));
6848
6749
  function Navigator(props) {
6849
6750
  const { items, level = 0, onSelect } = props;
6850
6751
  const handleItemClick = (id) => {
6851
6752
  onSelect?.(id);
6852
6753
  };
6853
- return /* @__PURE__ */ import_react44.default.createElement("div", null, items.map((item, index) => {
6754
+ return /* @__PURE__ */ import_react43.default.createElement("div", null, items.map((item, index) => {
6854
6755
  if (item.type === "item") {
6855
- return /* @__PURE__ */ import_react44.default.createElement(
6756
+ return /* @__PURE__ */ import_react43.default.createElement(
6856
6757
  NavigationItem,
6857
6758
  {
6858
6759
  key: item.id,
@@ -6865,7 +6766,7 @@ function Navigator(props) {
6865
6766
  item.title
6866
6767
  );
6867
6768
  } else if (item.type === "group") {
6868
- return /* @__PURE__ */ import_react44.default.createElement(
6769
+ return /* @__PURE__ */ import_react43.default.createElement(
6869
6770
  NavigationGroup,
6870
6771
  {
6871
6772
  key: `${item.title}-${index}`,
@@ -6883,16 +6784,16 @@ function Navigator(props) {
6883
6784
  Navigator.displayName = "Navigator";
6884
6785
 
6885
6786
  // src/components/PercentageInput/PercentageInput.tsx
6886
- var import_react45 = __toESM(require("react"));
6787
+ var import_react44 = __toESM(require("react"));
6887
6788
  var import_react_number_format2 = require("react-number-format");
6888
6789
  var import_joy55 = require("@mui/joy");
6889
6790
  var padDecimal = (value, decimalScale) => {
6890
6791
  const [integer, decimal = ""] = `${value}`.split(".");
6891
6792
  return Number(`${integer}${decimal.padEnd(decimalScale, "0")}`);
6892
6793
  };
6893
- var TextMaskAdapter9 = import_react45.default.forwardRef(function TextMaskAdapter10(props, ref) {
6794
+ var TextMaskAdapter9 = import_react44.default.forwardRef(function TextMaskAdapter10(props, ref) {
6894
6795
  const { onChange, min, max, ...innerProps } = props;
6895
- return /* @__PURE__ */ import_react45.default.createElement(
6796
+ return /* @__PURE__ */ import_react44.default.createElement(
6896
6797
  import_react_number_format2.NumericFormat,
6897
6798
  {
6898
6799
  ...innerProps,
@@ -6917,7 +6818,7 @@ var PercentageInputRoot = (0, import_joy55.styled)(Input_default, {
6917
6818
  slot: "Root",
6918
6819
  overridesResolver: (props, styles) => styles.root
6919
6820
  })({});
6920
- var PercentageInput = import_react45.default.forwardRef(
6821
+ var PercentageInput = import_react44.default.forwardRef(
6921
6822
  function PercentageInput2(inProps, ref) {
6922
6823
  const props = (0, import_joy55.useThemeProps)({ props: inProps, name: "PercentageInput" });
6923
6824
  const {
@@ -6940,19 +6841,19 @@ var PercentageInput = import_react45.default.forwardRef(
6940
6841
  const [_value, setValue] = useControlledState(
6941
6842
  props.value,
6942
6843
  props.defaultValue ?? null,
6943
- (0, import_react45.useCallback)((value2) => onChange?.({ target: { name, value: value2 } }), [onChange, name])
6844
+ (0, import_react44.useCallback)((value2) => onChange?.({ target: { name, value: value2 } }), [onChange, name])
6944
6845
  );
6945
- const value = (0, import_react45.useMemo)(() => {
6846
+ const value = (0, import_react44.useMemo)(() => {
6946
6847
  if (_value && useMinorUnit) {
6947
6848
  return _value / Math.pow(10, maxDecimalScale);
6948
6849
  }
6949
6850
  return _value;
6950
6851
  }, [_value, useMinorUnit, maxDecimalScale]);
6951
- const internalError = (0, import_react45.useMemo)(
6852
+ const internalError = (0, import_react44.useMemo)(
6952
6853
  () => value != null && (max != null && value > max || min != null && value < min),
6953
6854
  [max, min, value]
6954
6855
  );
6955
- const handleChange = (0, import_react45.useCallback)(
6856
+ const handleChange = (0, import_react44.useCallback)(
6956
6857
  (event) => {
6957
6858
  if (event.target.value === "") {
6958
6859
  setValue(null);
@@ -6964,7 +6865,7 @@ var PercentageInput = import_react45.default.forwardRef(
6964
6865
  },
6965
6866
  [setValue, useMinorUnit, maxDecimalScale]
6966
6867
  );
6967
- return /* @__PURE__ */ import_react45.default.createElement(
6868
+ return /* @__PURE__ */ import_react44.default.createElement(
6968
6869
  PercentageInputRoot,
6969
6870
  {
6970
6871
  ...innerProps,
@@ -7005,7 +6906,7 @@ var RadioGroup = MotionRadioGroup;
7005
6906
  RadioGroup.displayName = "RadioGroup";
7006
6907
 
7007
6908
  // src/components/RadioTileGroup/RadioTileGroup.tsx
7008
- var import_react46 = __toESM(require("react"));
6909
+ var import_react45 = __toESM(require("react"));
7009
6910
  var import_joy57 = require("@mui/joy");
7010
6911
  var RadioTileGroupRoot = (0, import_joy57.styled)(RadioGroup, {
7011
6912
  name: "RadioTileGroup",
@@ -7093,7 +6994,7 @@ function RadioTileGroup(props) {
7093
6994
  error,
7094
6995
  required
7095
6996
  } = props;
7096
- const radioGroup = /* @__PURE__ */ import_react46.default.createElement(
6997
+ const radioGroup = /* @__PURE__ */ import_react45.default.createElement(
7097
6998
  RadioTileGroupRoot,
7098
6999
  {
7099
7000
  overlay: true,
@@ -7104,7 +7005,7 @@ function RadioTileGroup(props) {
7104
7005
  flex,
7105
7006
  columns
7106
7007
  },
7107
- options.map((option) => /* @__PURE__ */ import_react46.default.createElement(
7008
+ options.map((option) => /* @__PURE__ */ import_react45.default.createElement(
7108
7009
  RadioTileSheet,
7109
7010
  {
7110
7011
  key: option.value,
@@ -7114,7 +7015,7 @@ function RadioTileGroup(props) {
7114
7015
  flex,
7115
7016
  textAlign
7116
7017
  },
7117
- /* @__PURE__ */ import_react46.default.createElement(
7018
+ /* @__PURE__ */ import_react45.default.createElement(
7118
7019
  Radio,
7119
7020
  {
7120
7021
  id: `${option.value}`,
@@ -7143,7 +7044,7 @@ function RadioTileGroup(props) {
7143
7044
  }
7144
7045
  }
7145
7046
  ),
7146
- option.startDecorator && /* @__PURE__ */ import_react46.default.createElement(
7047
+ option.startDecorator && /* @__PURE__ */ import_react45.default.createElement(
7147
7048
  Box_default,
7148
7049
  {
7149
7050
  sx: {
@@ -7164,15 +7065,15 @@ function RadioTileGroup(props) {
7164
7065
  )
7165
7066
  ))
7166
7067
  );
7167
- return /* @__PURE__ */ import_react46.default.createElement(FormControl_default, { required, disabled: allDisabled, error, size, sx, className }, label && /* @__PURE__ */ import_react46.default.createElement(FormLabel_default, null, label), radioGroup, helperText && /* @__PURE__ */ import_react46.default.createElement(FormHelperText_default, null, helperText));
7068
+ return /* @__PURE__ */ import_react45.default.createElement(FormControl_default, { required, disabled: allDisabled, error, size, sx, className }, label && /* @__PURE__ */ import_react45.default.createElement(FormLabel_default, null, label), radioGroup, helperText && /* @__PURE__ */ import_react45.default.createElement(FormHelperText_default, null, helperText));
7168
7069
  }
7169
7070
  RadioTileGroup.displayName = "RadioTileGroup";
7170
7071
 
7171
7072
  // src/components/RadioList/RadioList.tsx
7172
- var import_react47 = __toESM(require("react"));
7073
+ var import_react46 = __toESM(require("react"));
7173
7074
  function RadioList(props) {
7174
7075
  const { items, ...innerProps } = props;
7175
- return /* @__PURE__ */ import_react47.default.createElement(RadioGroup, { ...innerProps }, items.map((item) => /* @__PURE__ */ import_react47.default.createElement(Radio, { key: `${item.value}`, value: item.value, label: item.label })));
7076
+ return /* @__PURE__ */ import_react46.default.createElement(RadioGroup, { ...innerProps }, items.map((item) => /* @__PURE__ */ import_react46.default.createElement(Radio, { key: `${item.value}`, value: item.value, label: item.label })));
7176
7077
  }
7177
7078
  RadioList.displayName = "RadioList";
7178
7079
 
@@ -7263,7 +7164,7 @@ var SearchBar = React44.forwardRef(function SearchBar2(inProps, ref) {
7263
7164
  SearchBar.displayName = "SearchBar";
7264
7165
 
7265
7166
  // src/components/Stepper/Stepper.tsx
7266
- var import_react48 = __toESM(require("react"));
7167
+ var import_react47 = __toESM(require("react"));
7267
7168
  var import_joy58 = require("@mui/joy");
7268
7169
  var import_Check = __toESM(require("@mui/icons-material/Check"));
7269
7170
  var import_framer_motion28 = require("framer-motion");
@@ -7292,7 +7193,7 @@ function Stepper(props) {
7292
7193
  stepOrientation = "horizontal"
7293
7194
  } = props;
7294
7195
  const effectiveStepOrientation = orientation === "vertical" ? "horizontal" : stepOrientation;
7295
- return /* @__PURE__ */ import_react48.default.createElement(
7196
+ return /* @__PURE__ */ import_react47.default.createElement(
7296
7197
  MotionStepper,
7297
7198
  {
7298
7199
  orientation,
@@ -7331,23 +7232,23 @@ function Stepper(props) {
7331
7232
  const completed = activeStep > i + 1;
7332
7233
  const disabled = activeStep < i + 1;
7333
7234
  const hasContent = step.label || step.extraContent;
7334
- return /* @__PURE__ */ import_react48.default.createElement(
7235
+ return /* @__PURE__ */ import_react47.default.createElement(
7335
7236
  Step,
7336
7237
  {
7337
7238
  key: `step-${i}`,
7338
- indicator: /* @__PURE__ */ import_react48.default.createElement(StepIndicator, { variant: disabled ? "outlined" : "solid", color: disabled ? "neutral" : "primary" }, completed ? /* @__PURE__ */ import_react48.default.createElement(import_Check.default, null) : step.indicatorContent),
7239
+ indicator: /* @__PURE__ */ import_react47.default.createElement(StepIndicator, { variant: disabled ? "outlined" : "solid", color: disabled ? "neutral" : "primary" }, completed ? /* @__PURE__ */ import_react47.default.createElement(import_Check.default, null) : step.indicatorContent),
7339
7240
  active,
7340
7241
  completed,
7341
7242
  disabled,
7342
7243
  orientation: effectiveStepOrientation
7343
7244
  },
7344
- hasContent && /* @__PURE__ */ import_react48.default.createElement(
7245
+ hasContent && /* @__PURE__ */ import_react47.default.createElement(
7345
7246
  Stack_default,
7346
7247
  {
7347
7248
  sx: orientation === "horizontal" && effectiveStepOrientation === "vertical" ? { alignItems: "center" } : {}
7348
7249
  },
7349
- step.label && /* @__PURE__ */ import_react48.default.createElement(Typography_default, { level: "title-sm" }, step.label),
7350
- step.extraContent && /* @__PURE__ */ import_react48.default.createElement(Typography_default, { level: "body-xs" }, step.extraContent)
7250
+ step.label && /* @__PURE__ */ import_react47.default.createElement(Typography_default, { level: "title-sm" }, step.label),
7251
+ step.extraContent && /* @__PURE__ */ import_react47.default.createElement(Typography_default, { level: "body-xs" }, step.extraContent)
7351
7252
  )
7352
7253
  );
7353
7254
  })
@@ -7356,7 +7257,7 @@ function Stepper(props) {
7356
7257
  Stepper.displayName = "Stepper";
7357
7258
 
7358
7259
  // src/components/Switch/Switch.tsx
7359
- var import_react49 = __toESM(require("react"));
7260
+ var import_react48 = __toESM(require("react"));
7360
7261
  var import_joy59 = require("@mui/joy");
7361
7262
  var import_framer_motion29 = require("framer-motion");
7362
7263
  var MotionSwitch = (0, import_framer_motion29.motion)(import_joy59.Switch);
@@ -7378,14 +7279,14 @@ var StyledThumb = (0, import_joy59.styled)(import_framer_motion29.motion.div)({
7378
7279
  right: "var(--Switch-thumbOffset)"
7379
7280
  }
7380
7281
  });
7381
- var Thumb = (props) => /* @__PURE__ */ import_react49.default.createElement(StyledThumb, { ...props, layout: true, transition: spring });
7282
+ var Thumb = (props) => /* @__PURE__ */ import_react48.default.createElement(StyledThumb, { ...props, layout: true, transition: spring });
7382
7283
  var spring = {
7383
7284
  type: "spring",
7384
7285
  stiffness: 700,
7385
7286
  damping: 30
7386
7287
  };
7387
7288
  var Switch = (props) => {
7388
- return /* @__PURE__ */ import_react49.default.createElement(
7289
+ return /* @__PURE__ */ import_react48.default.createElement(
7389
7290
  MotionSwitch,
7390
7291
  {
7391
7292
  ...props,
@@ -7399,7 +7300,7 @@ var Switch = (props) => {
7399
7300
  Switch.displayName = "Switch";
7400
7301
 
7401
7302
  // src/components/Tabs/Tabs.tsx
7402
- var import_react50 = __toESM(require("react"));
7303
+ var import_react49 = __toESM(require("react"));
7403
7304
  var import_joy60 = require("@mui/joy");
7404
7305
  var StyledTabs = (0, import_joy60.styled)(import_joy60.Tabs)(({ theme }) => ({
7405
7306
  backgroundColor: theme.palette.background.body
@@ -7415,15 +7316,15 @@ var StyledTab = (0, import_joy60.styled)(import_joy60.Tab)(({ theme }) => ({
7415
7316
  backgroundColor: theme.palette.background.body
7416
7317
  }
7417
7318
  }));
7418
- var Tab = (0, import_react50.forwardRef)(function Tab2({ startDecorator, endDecorator, children, ...props }, ref) {
7419
- return /* @__PURE__ */ import_react50.default.createElement(StyledTab, { ...props, ref }, startDecorator, children, endDecorator);
7319
+ var Tab = (0, import_react49.forwardRef)(function Tab2({ startDecorator, endDecorator, children, ...props }, ref) {
7320
+ return /* @__PURE__ */ import_react49.default.createElement(StyledTab, { ...props, ref }, startDecorator, children, endDecorator);
7420
7321
  });
7421
7322
  Tab.displayName = "Tab";
7422
7323
  var TabList = import_joy60.TabList;
7423
7324
  var TabPanel = import_joy60.TabPanel;
7424
7325
 
7425
7326
  // src/components/ThemeProvider/ThemeProvider.tsx
7426
- var import_react51 = __toESM(require("react"));
7327
+ var import_react50 = __toESM(require("react"));
7427
7328
  var import_joy61 = require("@mui/joy");
7428
7329
  var colorScheme = {
7429
7330
  palette: {
@@ -7689,12 +7590,12 @@ var defaultTheme = (0, import_joy61.extendTheme)({
7689
7590
  });
7690
7591
  function ThemeProvider(props) {
7691
7592
  const theme = props.theme || defaultTheme;
7692
- return /* @__PURE__ */ import_react51.default.createElement(import_react51.default.Fragment, null, /* @__PURE__ */ import_react51.default.createElement(import_joy61.CssVarsProvider, { theme }, /* @__PURE__ */ import_react51.default.createElement(import_joy61.CssBaseline, null), props.children));
7593
+ return /* @__PURE__ */ import_react50.default.createElement(import_react50.default.Fragment, null, /* @__PURE__ */ import_react50.default.createElement(import_joy61.CssVarsProvider, { theme }, /* @__PURE__ */ import_react50.default.createElement(import_joy61.CssBaseline, null), props.children));
7693
7594
  }
7694
7595
  ThemeProvider.displayName = "ThemeProvider";
7695
7596
 
7696
7597
  // src/components/Uploader/Uploader.tsx
7697
- var import_react52 = __toESM(require("react"));
7598
+ var import_react51 = __toESM(require("react"));
7698
7599
  var import_joy62 = require("@mui/joy");
7699
7600
  var import_CloudUploadRounded = __toESM(require("@mui/icons-material/CloudUploadRounded"));
7700
7601
  var import_UploadFileRounded = __toESM(require("@mui/icons-material/UploadFileRounded"));
@@ -7757,7 +7658,7 @@ var getFileSize = (n) => {
7757
7658
  };
7758
7659
  var Preview = (props) => {
7759
7660
  const { files, uploaded, onDelete } = props;
7760
- return /* @__PURE__ */ import_react52.default.createElement(PreviewRoot, { gap: 1 }, [...uploaded, ...files].map((file) => /* @__PURE__ */ import_react52.default.createElement(UploadCard, { key: file.name, size: "sm", color: "neutral" }, /* @__PURE__ */ import_react52.default.createElement(Stack_default, { direction: "row", alignItems: "center", gap: 2 }, /* @__PURE__ */ import_react52.default.createElement(UploadFileIcon, null), /* @__PURE__ */ import_react52.default.createElement(Stack_default, { flex: "1", sx: { overflow: "hidden" } }, /* @__PURE__ */ import_react52.default.createElement(
7661
+ return /* @__PURE__ */ import_react51.default.createElement(PreviewRoot, { gap: 1 }, [...uploaded, ...files].map((file) => /* @__PURE__ */ import_react51.default.createElement(UploadCard, { key: file.name, size: "sm", color: "neutral" }, /* @__PURE__ */ import_react51.default.createElement(Stack_default, { direction: "row", alignItems: "center", gap: 2 }, /* @__PURE__ */ import_react51.default.createElement(UploadFileIcon, null), /* @__PURE__ */ import_react51.default.createElement(Stack_default, { flex: "1", sx: { overflow: "hidden" } }, /* @__PURE__ */ import_react51.default.createElement(
7761
7662
  Typography_default,
7762
7663
  {
7763
7664
  level: "body-sm",
@@ -7769,7 +7670,7 @@ var Preview = (props) => {
7769
7670
  }
7770
7671
  },
7771
7672
  file.name
7772
- ), !!file.size && /* @__PURE__ */ import_react52.default.createElement(Typography_default, { level: "body-xs", fontWeight: "300", lineHeight: "1.33", textColor: "text.tertiary" }, getFileSize(file.size))), /* @__PURE__ */ import_react52.default.createElement(IconButton_default, { onClick: () => onDelete?.(file) }, /* @__PURE__ */ import_react52.default.createElement(ClearIcon2, null))))));
7673
+ ), !!file.size && /* @__PURE__ */ import_react51.default.createElement(Typography_default, { level: "body-xs", fontWeight: "300", lineHeight: "1.33", textColor: "text.tertiary" }, getFileSize(file.size))), /* @__PURE__ */ import_react51.default.createElement(IconButton_default, { onClick: () => onDelete?.(file) }, /* @__PURE__ */ import_react51.default.createElement(ClearIcon2, null))))));
7773
7674
  };
7774
7675
  var UploaderRoot = (0, import_joy62.styled)(Stack_default, {
7775
7676
  name: "Uploader",
@@ -7812,7 +7713,7 @@ var UploaderIcon = (0, import_joy62.styled)(import_CloudUploadRounded.default, {
7812
7713
  }
7813
7714
  })
7814
7715
  );
7815
- var Uploader = import_react52.default.memo((props) => {
7716
+ var Uploader = import_react51.default.memo((props) => {
7816
7717
  const {
7817
7718
  accept,
7818
7719
  minCount,
@@ -7828,14 +7729,14 @@ var Uploader = import_react52.default.memo((props) => {
7828
7729
  error: errorProp,
7829
7730
  helperText: helperTextProp
7830
7731
  } = props;
7831
- const dropZoneRef = (0, import_react52.useRef)(null);
7832
- const inputRef = (0, import_react52.useRef)(null);
7833
- const [errorText, setErrorText] = (0, import_react52.useState)();
7834
- const [files, setFiles] = (0, import_react52.useState)([]);
7835
- const [uploaded, setUploaded] = (0, import_react52.useState)(props.uploaded || []);
7836
- const [previewState, setPreviewState] = (0, import_react52.useState)("idle");
7837
- const accepts = (0, import_react52.useMemo)(() => accept.split(",").map((accept2) => accept2.trim()), [accept]);
7838
- const parsedAccepts = (0, import_react52.useMemo)(
7732
+ const dropZoneRef = (0, import_react51.useRef)(null);
7733
+ const inputRef = (0, import_react51.useRef)(null);
7734
+ const [errorText, setErrorText] = (0, import_react51.useState)();
7735
+ const [files, setFiles] = (0, import_react51.useState)([]);
7736
+ const [uploaded, setUploaded] = (0, import_react51.useState)(props.uploaded || []);
7737
+ const [previewState, setPreviewState] = (0, import_react51.useState)("idle");
7738
+ const accepts = (0, import_react51.useMemo)(() => accept.split(",").map((accept2) => accept2.trim()), [accept]);
7739
+ const parsedAccepts = (0, import_react51.useMemo)(
7839
7740
  () => accepts.flatMap((type) => {
7840
7741
  if (["image/*", "video/*", "audio/*"].includes(type)) {
7841
7742
  return ALL_EXTENSIONS_BY_TYPE[type];
@@ -7844,7 +7745,7 @@ var Uploader = import_react52.default.memo((props) => {
7844
7745
  }),
7845
7746
  [accepts]
7846
7747
  );
7847
- const helperText = (0, import_react52.useMemo)(() => {
7748
+ const helperText = (0, import_react51.useMemo)(() => {
7848
7749
  if (helperTextProp) {
7849
7750
  return helperTextProp;
7850
7751
  }
@@ -7874,12 +7775,12 @@ var Uploader = import_react52.default.memo((props) => {
7874
7775
  }
7875
7776
  return helperTexts.join(", ");
7876
7777
  }, [accepts, maxFileTotalSize, maxCount, helperTextProp]);
7877
- const error = (0, import_react52.useMemo)(() => !!errorText || errorProp, [errorProp, errorText]);
7878
- const showDropZone = (0, import_react52.useMemo)(
7778
+ const error = (0, import_react51.useMemo)(() => !!errorText || errorProp, [errorProp, errorText]);
7779
+ const showDropZone = (0, import_react51.useMemo)(
7879
7780
  () => !maxCount || maxCount && [...uploaded, ...files].length !== maxCount,
7880
7781
  [files, maxCount, uploaded]
7881
7782
  );
7882
- const addFiles = (0, import_react52.useCallback)(
7783
+ const addFiles = (0, import_react51.useCallback)(
7883
7784
  (uploads) => {
7884
7785
  try {
7885
7786
  const types = parsedAccepts.map((type) => type.replace(".", "")) || [];
@@ -7924,7 +7825,7 @@ var Uploader = import_react52.default.memo((props) => {
7924
7825
  },
7925
7826
  [files, uploaded, maxCount, parsedAccepts, maxFileSize, maxFileTotalSize, name, onChange]
7926
7827
  );
7927
- (0, import_react52.useEffect)(() => {
7828
+ (0, import_react51.useEffect)(() => {
7928
7829
  if (!dropZoneRef.current || disabled) {
7929
7830
  return;
7930
7831
  }
@@ -7952,7 +7853,7 @@ var Uploader = import_react52.default.memo((props) => {
7952
7853
  })
7953
7854
  );
7954
7855
  }, [disabled, addFiles]);
7955
- (0, import_react52.useEffect)(() => {
7856
+ (0, import_react51.useEffect)(() => {
7956
7857
  if (inputRef.current && minCount) {
7957
7858
  if (files.length < minCount) {
7958
7859
  inputRef.current.setCustomValidity(`At least ${minCount} files are required.`);
@@ -7961,14 +7862,14 @@ var Uploader = import_react52.default.memo((props) => {
7961
7862
  }
7962
7863
  }
7963
7864
  }, [inputRef, files, minCount]);
7964
- const handleFileChanged = (0, import_react52.useCallback)(
7865
+ const handleFileChanged = (0, import_react51.useCallback)(
7965
7866
  (event) => {
7966
7867
  const files2 = Array.from(event.target.files || []);
7967
7868
  addFiles(files2);
7968
7869
  },
7969
7870
  [addFiles]
7970
7871
  );
7971
- const handleDeleteFile = (0, import_react52.useCallback)(
7872
+ const handleDeleteFile = (0, import_react51.useCallback)(
7972
7873
  (deletedFile) => {
7973
7874
  if (deletedFile instanceof File) {
7974
7875
  setFiles((current) => {
@@ -7988,10 +7889,10 @@ var Uploader = import_react52.default.memo((props) => {
7988
7889
  },
7989
7890
  [name, onChange, onDelete]
7990
7891
  );
7991
- const handleUploaderButtonClick = (0, import_react52.useCallback)(() => {
7892
+ const handleUploaderButtonClick = (0, import_react51.useCallback)(() => {
7992
7893
  inputRef.current?.click();
7993
7894
  }, []);
7994
- const uploader = /* @__PURE__ */ import_react52.default.createElement(
7895
+ const uploader = /* @__PURE__ */ import_react51.default.createElement(
7995
7896
  FileDropZone,
7996
7897
  {
7997
7898
  state: previewState,
@@ -8000,8 +7901,8 @@ var Uploader = import_react52.default.memo((props) => {
8000
7901
  ref: dropZoneRef,
8001
7902
  onClick: handleUploaderButtonClick
8002
7903
  },
8003
- /* @__PURE__ */ import_react52.default.createElement(Stack_default, { alignItems: "center", gap: 1 }, /* @__PURE__ */ import_react52.default.createElement(UploaderIcon, { state: previewState, error: !!(error || errorText), disabled })),
8004
- /* @__PURE__ */ import_react52.default.createElement(
7904
+ /* @__PURE__ */ import_react51.default.createElement(Stack_default, { alignItems: "center", gap: 1 }, /* @__PURE__ */ import_react51.default.createElement(UploaderIcon, { state: previewState, error: !!(error || errorText), disabled })),
7905
+ /* @__PURE__ */ import_react51.default.createElement(
8005
7906
  VisuallyHiddenInput,
8006
7907
  {
8007
7908
  disabled,
@@ -8024,6 +7925,6 @@ var Uploader = import_react52.default.memo((props) => {
8024
7925
  }
8025
7926
  )
8026
7927
  );
8027
- return /* @__PURE__ */ import_react52.default.createElement(UploaderRoot, null, showDropZone && /* @__PURE__ */ import_react52.default.createElement(FormControl_default, { size, error: !!(error || errorText), disabled, required: !!minCount }, label && /* @__PURE__ */ import_react52.default.createElement(FormLabel_default, null, label), uploader, /* @__PURE__ */ import_react52.default.createElement(FormHelperText_default, null, /* @__PURE__ */ import_react52.default.createElement(Stack_default, null, errorText && /* @__PURE__ */ import_react52.default.createElement("div", null, errorText), /* @__PURE__ */ import_react52.default.createElement("div", null, helperText)))), [...uploaded, ...files].length > 0 && /* @__PURE__ */ import_react52.default.createElement(Preview, { files, uploaded, onDelete: handleDeleteFile }));
7928
+ return /* @__PURE__ */ import_react51.default.createElement(UploaderRoot, null, showDropZone && /* @__PURE__ */ import_react51.default.createElement(FormControl_default, { size, error: !!(error || errorText), disabled, required: !!minCount }, label && /* @__PURE__ */ import_react51.default.createElement(FormLabel_default, null, label), uploader, /* @__PURE__ */ import_react51.default.createElement(FormHelperText_default, null, /* @__PURE__ */ import_react51.default.createElement(Stack_default, null, errorText && /* @__PURE__ */ import_react51.default.createElement("div", null, errorText), /* @__PURE__ */ import_react51.default.createElement("div", null, helperText)))), [...uploaded, ...files].length > 0 && /* @__PURE__ */ import_react51.default.createElement(Preview, { files, uploaded, onDelete: handleDeleteFile }));
8028
7929
  });
8029
7930
  Uploader.displayName = "Uploader";