@ceed/ads 1.41.3-next.1 → 1.41.3-next.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
@@ -347,7 +347,7 @@ function Alert(inProps) {
347
347
  Alert.displayName = "Alert";
348
348
 
349
349
  // src/components/Autocomplete/Autocomplete.tsx
350
- var import_react6 = __toESM(require("react"));
350
+ var import_react7 = __toESM(require("react"));
351
351
  var import_joy10 = require("@mui/joy");
352
352
  var import_base = require("@mui/base");
353
353
  var import_Close = __toESM(require("@mui/icons-material/Close"));
@@ -439,6 +439,37 @@ function useControlledState(controlledValue, defaultValue, onChange) {
439
439
  return [displayValue, handleChange, isControlled];
440
440
  }
441
441
 
442
+ // src/libs/slot-props.ts
443
+ var import_react6 = require("react");
444
+ function assignRef(ref, value) {
445
+ if (typeof ref === "function") ref(value);
446
+ else if (ref) ref.current = value;
447
+ }
448
+ function mergeRefs(...refs) {
449
+ const live = refs.filter((r) => r != null);
450
+ if (live.length === 0) return void 0;
451
+ if (live.length === 1) return live[0];
452
+ return (value) => live.forEach((r) => assignRef(r, value));
453
+ }
454
+ function useMergedRef(a, b) {
455
+ return (0, import_react6.useMemo)(() => mergeRefs(a, b), [a, b]);
456
+ }
457
+ function useSlotRef(slotProp, ref) {
458
+ const isFunctionForm = typeof slotProp === "function";
459
+ const slotRef = isFunctionForm ? void 0 : slotProp?.ref;
460
+ const mergedRef = useMergedRef(slotRef, ref);
461
+ return (0, import_react6.useMemo)(() => {
462
+ if (isFunctionForm) {
463
+ return ((ownerState) => {
464
+ const resolved = slotProp(ownerState);
465
+ const merged = mergeRefs(resolved.ref, ref);
466
+ return merged ? { ...resolved, ref: merged } : { ...resolved };
467
+ });
468
+ }
469
+ return mergedRef ? { ...slotProp, ref: mergedRef } : { ...slotProp };
470
+ }, [isFunctionForm, slotProp, mergedRef, ref]);
471
+ }
472
+
442
473
  // src/components/Autocomplete/Autocomplete.tsx
443
474
  var AutocompletePopper = (0, import_joy10.styled)(import_base2.Popper, {
444
475
  name: "Autocomplete",
@@ -451,7 +482,7 @@ var itemHeightMap = {
451
482
  md: { default: 36, secondary: 55 },
452
483
  lg: { default: 44, secondary: 65 }
453
484
  };
454
- var AutocompleteListBox = import_react6.default.forwardRef((props, ref) => {
485
+ var AutocompleteListBox = import_react7.default.forwardRef((props, ref) => {
455
486
  const {
456
487
  anchorEl,
457
488
  open,
@@ -461,13 +492,13 @@ var AutocompleteListBox = import_react6.default.forwardRef((props, ref) => {
461
492
  ownerState: { loading, size: fontSize },
462
493
  ...innerProps
463
494
  } = props;
464
- const parentRef = (0, import_react6.useRef)(null);
495
+ const parentRef = (0, import_react7.useRef)(null);
465
496
  const isGrouped = children[0].every((child) => child.hasOwnProperty("group"));
466
- const itemHeight = (0, import_react6.useMemo)(() => {
497
+ const itemHeight = (0, import_react7.useMemo)(() => {
467
498
  const heights = itemHeightMap[fontSize ?? "md"];
468
499
  return hasSecondaryText ? heights.secondary : heights.default;
469
500
  }, [fontSize, hasSecondaryText]);
470
- const renderTargets = (0, import_react6.useMemo)(() => {
501
+ const renderTargets = (0, import_react7.useMemo)(() => {
471
502
  if (loading) {
472
503
  return [children[1]];
473
504
  }
@@ -476,7 +507,7 @@ var AutocompleteListBox = import_react6.default.forwardRef((props, ref) => {
476
507
  }
477
508
  if (isGrouped) {
478
509
  return children[0].flatMap((child) => [
479
- /* @__PURE__ */ import_react6.default.createElement(import_joy10.ListSubheader, { key: child.key, component: "li" }, child.group),
510
+ /* @__PURE__ */ import_react7.default.createElement(import_joy10.ListSubheader, { key: child.key, component: "li" }, child.group),
480
511
  ...child.children
481
512
  ]);
482
513
  }
@@ -490,12 +521,12 @@ var AutocompleteListBox = import_react6.default.forwardRef((props, ref) => {
490
521
  overscan: 5
491
522
  });
492
523
  const items = virtualizer.getVirtualItems();
493
- (0, import_react6.useEffect)(() => {
524
+ (0, import_react7.useEffect)(() => {
494
525
  if (open) {
495
526
  virtualizer.measure();
496
527
  }
497
528
  }, [open, virtualizer]);
498
- 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(
529
+ 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(
499
530
  "div",
500
531
  {
501
532
  style: {
@@ -504,7 +535,7 @@ var AutocompleteListBox = import_react6.default.forwardRef((props, ref) => {
504
535
  }
505
536
  },
506
537
  items.map(
507
- ({ index, size, start, key }) => import_react6.default.cloneElement(renderTargets[index], {
538
+ ({ index, size, start, key }) => import_react7.default.cloneElement(renderTargets[index], {
508
539
  key,
509
540
  style: {
510
541
  position: "absolute",
@@ -516,7 +547,7 @@ var AutocompleteListBox = import_react6.default.forwardRef((props, ref) => {
516
547
  transform: `translateY(${start}px)`,
517
548
  overflow: "visible"
518
549
  },
519
- children: /* @__PURE__ */ import_react6.default.createElement(
550
+ children: /* @__PURE__ */ import_react7.default.createElement(
520
551
  "div",
521
552
  {
522
553
  style: {
@@ -559,7 +590,7 @@ var autocompleteFilterOptions = (0, import_base.createFilterOptions)({
559
590
  }
560
591
  });
561
592
  var getOptionLabel = (option) => `${option.label ?? ""}`;
562
- function Autocomplete(props) {
593
+ function AutocompleteInner(props, ref) {
563
594
  const {
564
595
  label,
565
596
  error,
@@ -578,7 +609,7 @@ function Autocomplete(props) {
578
609
  const [rawValue, setValue] = useControlledState(
579
610
  props.value,
580
611
  props.defaultValue ?? null,
581
- (0, import_react6.useCallback)(
612
+ (0, import_react7.useCallback)(
582
613
  (value2) => onChange?.({
583
614
  target: {
584
615
  value: value2,
@@ -589,7 +620,7 @@ function Autocomplete(props) {
589
620
  )
590
621
  );
591
622
  const _value = rawValue ?? (props.multiple ? EMPTY_MULTIPLE_VALUE : "");
592
- const options = (0, import_react6.useMemo)(
623
+ const options = (0, import_react7.useMemo)(
593
624
  () => props.options.map((option) => {
594
625
  if (typeof option !== "object") {
595
626
  return {
@@ -601,19 +632,19 @@ function Autocomplete(props) {
601
632
  }),
602
633
  [props.options]
603
634
  );
604
- const optionMap = (0, import_react6.useMemo)(() => {
635
+ const optionMap = (0, import_react7.useMemo)(() => {
605
636
  const map = /* @__PURE__ */ new Map();
606
637
  options.forEach((option) => {
607
638
  map.set(option.value, option);
608
639
  });
609
640
  return map;
610
641
  }, [options]);
611
- const value = (0, import_react6.useMemo)(() => {
642
+ const value = (0, import_react7.useMemo)(() => {
612
643
  if (props.loading) {
613
644
  return {
614
645
  value: "",
615
646
  label: "",
616
- startDecorator: /* @__PURE__ */ import_react6.default.createElement(import_joy10.CircularProgress, { size: "sm", color: "neutral", variant: "plain", thickness: 3 })
647
+ startDecorator: /* @__PURE__ */ import_react7.default.createElement(import_joy10.CircularProgress, { size: "sm", color: "neutral", variant: "plain", thickness: 3 })
617
648
  };
618
649
  }
619
650
  if (Array.isArray(_value)) {
@@ -621,31 +652,33 @@ function Autocomplete(props) {
621
652
  }
622
653
  return optionMap.get(_value);
623
654
  }, [_value, optionMap, props.loading]);
624
- const applySize = (0, import_react6.useCallback)(
655
+ const applySize = (0, import_react7.useCallback)(
625
656
  (node) => {
626
- return import_react6.default.isValidElement(node) && !props.loading ? import_react6.default.cloneElement(node, { ...{ size } }) : node;
657
+ return import_react7.default.isValidElement(node) && !props.loading ? import_react7.default.cloneElement(node, { ...{ size } }) : node;
627
658
  },
628
659
  [size, props.loading]
629
660
  );
630
- const startDecorator = (0, import_react6.useMemo)(
661
+ const startDecorator = (0, import_react7.useMemo)(
631
662
  () => applySize(value?.startDecorator || props.startDecorator),
632
663
  [value, applySize, props.startDecorator]
633
664
  );
634
- const endDecorator = (0, import_react6.useMemo)(
665
+ const endDecorator = (0, import_react7.useMemo)(
635
666
  () => applySize(value?.endDecorator || props.endDecorator),
636
667
  [value, applySize, props.endDecorator]
637
668
  );
638
- const slotProps = (0, import_react6.useMemo)(
669
+ const inputSlotProps = useSlotRef(props.slotProps?.input, ref);
670
+ const slotProps = (0, import_react7.useMemo)(
639
671
  () => ({
640
672
  ...props.slotProps,
641
673
  listbox: {
642
674
  ...props.slotProps?.listbox,
643
675
  hasSecondaryText: options.some((opt) => opt.secondaryText)
644
- }
676
+ },
677
+ input: inputSlotProps
645
678
  }),
646
- [options, props.slotProps]
679
+ [options, props.slotProps, inputSlotProps]
647
680
  );
648
- const handleChange = (0, import_react6.useCallback)(
681
+ const handleChange = (0, import_react7.useCallback)(
649
682
  (event, value2) => {
650
683
  const newValue = value2;
651
684
  const _value2 = Array.isArray(newValue) ? newValue.map((value3) => value3.value) : newValue?.value;
@@ -662,7 +695,7 @@ function Autocomplete(props) {
662
695
  },
663
696
  [onChangeComplete, setValue, optionMap]
664
697
  );
665
- const autocomplete = /* @__PURE__ */ import_react6.default.createElement(
698
+ const autocomplete = /* @__PURE__ */ import_react7.default.createElement(
666
699
  import_joy10.Autocomplete,
667
700
  {
668
701
  ...innerProps,
@@ -677,10 +710,10 @@ function Autocomplete(props) {
677
710
  endDecorator,
678
711
  getOptionLabel,
679
712
  renderTags: (tags, getTagProps) => tags.map((tag, index) => {
680
- const { onClick, ...rest } = getTagProps({ index });
713
+ const { onClick, key, ...rest } = getTagProps({ index });
681
714
  return applySize(
682
- /* @__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(
683
- /* @__PURE__ */ import_react6.default.createElement(AutocompleteTagDelete, { color: "primary", variant: "soft", onClick, size }, /* @__PURE__ */ import_react6.default.createElement(import_Close.default, null))
715
+ /* @__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(
716
+ /* @__PURE__ */ import_react7.default.createElement(AutocompleteTagDelete, { color: "primary", variant: "soft", onClick, size }, /* @__PURE__ */ import_react7.default.createElement(import_Close.default, null))
684
717
  )))
685
718
  );
686
719
  }),
@@ -689,30 +722,33 @@ function Autocomplete(props) {
689
722
  },
690
723
  slotProps,
691
724
  filterOptions: autocompleteFilterOptions,
692
- renderOption: (props2, option) => /* @__PURE__ */ import_react6.default.createElement(import_joy10.AutocompleteOption, { ...props2 }, option.startDecorator && /* @__PURE__ */ import_react6.default.createElement(
693
- import_joy10.ListItemDecorator,
694
- {
695
- sx: (theme) => ({
696
- marginInlineEnd: `var(--Input-gap, ${theme.spacing(1)})`
697
- })
698
- },
699
- applySize(option.startDecorator)
700
- ), 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)) : (
701
- // TODO: haulla에서 사용할 때, label을 ReactNode로 넘기면 에러가 발생함....
702
- applySize(option.label)
703
- ), option.endDecorator && /* @__PURE__ */ import_react6.default.createElement(
704
- import_joy10.ListItemDecorator,
705
- {
706
- sx: (theme) => ({
707
- marginInlineStart: `var(--Input-gap, ${theme.spacing(1)})`
708
- })
709
- },
710
- applySize(option.endDecorator)
711
- )),
725
+ renderOption: (props2, option) => {
726
+ const { key, ...optionProps } = props2;
727
+ return /* @__PURE__ */ import_react7.default.createElement(import_joy10.AutocompleteOption, { key, ...optionProps }, option.startDecorator && /* @__PURE__ */ import_react7.default.createElement(
728
+ import_joy10.ListItemDecorator,
729
+ {
730
+ sx: (theme) => ({
731
+ marginInlineEnd: `var(--Input-gap, ${theme.spacing(1)})`
732
+ })
733
+ },
734
+ applySize(option.startDecorator)
735
+ ), 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)) : (
736
+ // TODO: haulla에서 사용할 때, label을 ReactNode로 넘기면 에러가 발생함....
737
+ applySize(option.label)
738
+ ), option.endDecorator && /* @__PURE__ */ import_react7.default.createElement(
739
+ import_joy10.ListItemDecorator,
740
+ {
741
+ sx: (theme) => ({
742
+ marginInlineStart: `var(--Input-gap, ${theme.spacing(1)})`
743
+ })
744
+ },
745
+ applySize(option.endDecorator)
746
+ ));
747
+ },
712
748
  renderGroup: (params) => params
713
749
  }
714
750
  );
715
- return /* @__PURE__ */ import_react6.default.createElement(
751
+ return /* @__PURE__ */ import_react7.default.createElement(
716
752
  FormControl_default,
717
753
  {
718
754
  required,
@@ -723,18 +759,19 @@ function Autocomplete(props) {
723
759
  sx,
724
760
  className
725
761
  },
726
- label && /* @__PURE__ */ import_react6.default.createElement(FormLabel_default, null, label),
762
+ label && /* @__PURE__ */ import_react7.default.createElement(FormLabel_default, null, label),
727
763
  autocomplete,
728
- helperText && /* @__PURE__ */ import_react6.default.createElement(FormHelperText_default, null, helperText)
764
+ helperText && /* @__PURE__ */ import_react7.default.createElement(FormHelperText_default, null, helperText)
729
765
  );
730
766
  }
767
+ var Autocomplete = import_react7.default.forwardRef(AutocompleteInner);
731
768
  Autocomplete.displayName = "Autocomplete";
732
769
 
733
770
  // src/components/Autocomplete/index.ts
734
771
  var Autocomplete_default = Autocomplete;
735
772
 
736
773
  // src/components/Avatar/Avatar.tsx
737
- var import_react7 = __toESM(require("react"));
774
+ var import_react8 = __toESM(require("react"));
738
775
  var import_joy11 = require("@mui/joy");
739
776
  var StyledAvatar = (0, import_joy11.styled)(import_joy11.Avatar, {
740
777
  name: "Avatar",
@@ -756,19 +793,19 @@ var defaultGetInitial = (name) => {
756
793
  return (firstName.charAt(0) + lastName.charAt(0)).toUpperCase();
757
794
  }
758
795
  };
759
- var Avatar = (0, import_react7.forwardRef)(function Avatar2(inProps, ref) {
796
+ var Avatar = (0, import_react8.forwardRef)(function Avatar2(inProps, ref) {
760
797
  const props = (0, import_joy11.useThemeProps)({
761
798
  props: inProps,
762
799
  name: "Avatar"
763
800
  });
764
801
  const { children, getInitial = defaultGetInitial, ...inheritProps } = props;
765
- const calcChildren = (0, import_react7.useMemo)(() => {
802
+ const calcChildren = (0, import_react8.useMemo)(() => {
766
803
  if (typeof children === "string") {
767
804
  return getInitial?.(children) ?? "";
768
805
  }
769
806
  return children;
770
807
  }, [children, getInitial]);
771
- return /* @__PURE__ */ import_react7.default.createElement(StyledAvatar, { ...inheritProps, children: calcChildren, ref });
808
+ return /* @__PURE__ */ import_react8.default.createElement(StyledAvatar, { ...inheritProps, children: calcChildren, ref });
772
809
  });
773
810
 
774
811
  // src/components/Box/Box.tsx
@@ -782,16 +819,16 @@ Box.displayName = "Box";
782
819
  var Box_default = Box;
783
820
 
784
821
  // src/components/Breadcrumbs/Breadcrumbs.tsx
785
- var import_react10 = __toESM(require("react"));
822
+ var import_react11 = __toESM(require("react"));
786
823
  var import_joy16 = require("@mui/joy");
787
824
 
788
825
  // src/components/Menu/Menu.tsx
789
- var import_react8 = __toESM(require("react"));
826
+ var import_react9 = __toESM(require("react"));
790
827
  var import_joy13 = require("@mui/joy");
791
828
  var import_framer_motion10 = require("framer-motion");
792
829
  var MotionMenu = (0, import_framer_motion10.motion)(import_joy13.Menu);
793
830
  var Menu = (props) => {
794
- return /* @__PURE__ */ import_react8.default.createElement(MotionMenu, { ...props });
831
+ return /* @__PURE__ */ import_react9.default.createElement(MotionMenu, { ...props });
795
832
  };
796
833
  Menu.displayName = "Menu";
797
834
  var MenuItem = import_joy13.MenuItem;
@@ -800,22 +837,22 @@ var MenuItem = import_joy13.MenuItem;
800
837
  var Menu_default = Menu;
801
838
 
802
839
  // src/components/Dropdown/Dropdown.tsx
803
- var import_react9 = __toESM(require("react"));
840
+ var import_react10 = __toESM(require("react"));
804
841
  var import_joy14 = require("@mui/joy");
805
842
  var import_joy15 = require("@mui/joy");
806
843
  var import_useMenuButton = require("@mui/base/useMenuButton");
807
- var DropdownNestedRegistryContext = (0, import_react9.createContext)(null);
844
+ var DropdownNestedRegistryContext = (0, import_react10.createContext)(null);
808
845
  function Dropdown({ open: openProp, defaultOpen = false, onOpenChange, ...rest }) {
809
- const [nestedCount, setNestedCount] = (0, import_react9.useState)(0);
846
+ const [nestedCount, setNestedCount] = (0, import_react10.useState)(0);
810
847
  const [open, setOpen] = useControlledState(openProp, defaultOpen);
811
- const registry = (0, import_react9.useMemo)(
848
+ const registry = (0, import_react10.useMemo)(
812
849
  () => ({
813
850
  register: () => setNestedCount((c) => c + 1),
814
851
  unregister: () => setNestedCount((c) => Math.max(0, c - 1))
815
852
  }),
816
853
  []
817
854
  );
818
- const handleOpenChange = (0, import_react9.useCallback)(
855
+ const handleOpenChange = (0, import_react10.useCallback)(
819
856
  (event, isOpen) => {
820
857
  if (nestedCount > 0 && !isOpen && event?.type === "blur") {
821
858
  return;
@@ -825,7 +862,7 @@ function Dropdown({ open: openProp, defaultOpen = false, onOpenChange, ...rest }
825
862
  },
826
863
  [nestedCount, setOpen, onOpenChange]
827
864
  );
828
- return /* @__PURE__ */ import_react9.default.createElement(DropdownNestedRegistryContext.Provider, { value: registry }, /* @__PURE__ */ import_react9.default.createElement(import_joy14.Dropdown, { open, onOpenChange: handleOpenChange, ...rest }));
865
+ return /* @__PURE__ */ import_react10.default.createElement(DropdownNestedRegistryContext.Provider, { value: registry }, /* @__PURE__ */ import_react10.default.createElement(import_joy14.Dropdown, { open, onOpenChange: handleOpenChange, ...rest }));
829
866
  }
830
867
  Dropdown.displayName = "Dropdown";
831
868
 
@@ -848,29 +885,29 @@ function Breadcrumbs(props) {
848
885
  } = props;
849
886
  const Crumb = (props2) => {
850
887
  if (props2.type === "link" && Link4) {
851
- return /* @__PURE__ */ import_react10.default.createElement(Link4, { to: props2.linkHref, href: props2.linkHref, ...linkProps }, props2.label);
888
+ return /* @__PURE__ */ import_react11.default.createElement(Link4, { to: props2.linkHref, href: props2.linkHref, ...linkProps }, props2.label);
852
889
  } else {
853
- return /* @__PURE__ */ import_react10.default.createElement(Typography_default, null, props2.label);
890
+ return /* @__PURE__ */ import_react11.default.createElement(Typography_default, null, props2.label);
854
891
  }
855
892
  };
856
893
  if (!collapsed) {
857
- 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 })));
894
+ 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 })));
858
895
  }
859
896
  const _endCrumbCount = Math.max(1, endCrumbCount);
860
- const frontCrumbs = crumbs.slice(0, startCrumbCount).map((crumb) => /* @__PURE__ */ import_react10.default.createElement(Crumb, { key: `breadcrumb-${crumb.label}`, ...crumb }));
861
- 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 }));
862
- 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 })));
863
- 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);
897
+ const frontCrumbs = crumbs.slice(0, startCrumbCount).map((crumb) => /* @__PURE__ */ import_react11.default.createElement(Crumb, { key: `breadcrumb-${crumb.label}`, ...crumb }));
898
+ 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 }));
899
+ 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 })));
900
+ 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);
864
901
  }
865
902
  Breadcrumbs.displayName = "Breadcrumbs";
866
903
 
867
904
  // src/components/Button/Button.tsx
868
- var import_react11 = __toESM(require("react"));
905
+ var import_react12 = __toESM(require("react"));
869
906
  var import_joy17 = require("@mui/joy");
870
907
  var import_framer_motion11 = require("framer-motion");
871
908
  var MotionButton = (0, import_framer_motion11.motion)(import_joy17.Button);
872
- var Button = (0, import_react11.forwardRef)(({ ...props }, ref) => {
873
- return /* @__PURE__ */ import_react11.default.createElement(MotionButton, { ref, ...props });
909
+ var Button = (0, import_react12.forwardRef)(({ ...props }, ref) => {
910
+ return /* @__PURE__ */ import_react12.default.createElement(MotionButton, { ref, ...props });
874
911
  });
875
912
  Button.displayName = "Button";
876
913
 
@@ -878,19 +915,19 @@ Button.displayName = "Button";
878
915
  var Button_default = Button;
879
916
 
880
917
  // src/components/Calendar/Calendar.tsx
881
- var import_react15 = __toESM(require("react"));
918
+ var import_react16 = __toESM(require("react"));
882
919
  var import_joy20 = require("@mui/joy");
883
920
  var import_ChevronLeft = __toESM(require("@mui/icons-material/ChevronLeft"));
884
921
  var import_ChevronRight = __toESM(require("@mui/icons-material/ChevronRight"));
885
922
  var import_framer_motion13 = require("framer-motion");
886
923
 
887
924
  // src/components/Tooltip/Tooltip.tsx
888
- var import_react12 = __toESM(require("react"));
925
+ var import_react13 = __toESM(require("react"));
889
926
  var import_joy18 = require("@mui/joy");
890
927
  var import_framer_motion12 = require("framer-motion");
891
928
  var MotionTooltip = (0, import_framer_motion12.motion)(import_joy18.Tooltip);
892
929
  var Tooltip = (props) => {
893
- return /* @__PURE__ */ import_react12.default.createElement(MotionTooltip, { ...props });
930
+ return /* @__PURE__ */ import_react13.default.createElement(MotionTooltip, { ...props });
894
931
  };
895
932
  Tooltip.displayName = "Tooltip";
896
933
 
@@ -972,43 +1009,43 @@ var isSameMonth = (date1, date2) => {
972
1009
  };
973
1010
 
974
1011
  // src/components/Calendar/hooks/use-calendar-props.ts
975
- var import_react13 = require("react");
1012
+ var import_react14 = require("react");
976
1013
  var import_joy19 = require("@mui/joy");
977
1014
  var resolveView = (view, views) => {
978
1015
  return views.includes(view) ? view : views[0];
979
1016
  };
980
1017
  var useCalendarProps = (inProps) => {
981
- const [uncontrolledView, setUncontrolledView] = (0, import_react13.useState)(
1018
+ const [uncontrolledView, setUncontrolledView] = (0, import_react14.useState)(
982
1019
  () => resolveView(inProps.view || "day", inProps.views || ["day", "month"])
983
1020
  );
984
- const [uncontrolledValue, setUncontrolledValue] = (0, import_react13.useState)(
1021
+ const [uncontrolledValue, setUncontrolledValue] = (0, import_react14.useState)(
985
1022
  inProps.defaultValue
986
1023
  );
987
- const [viewMonth, setViewMonth] = (0, import_react13.useState)(() => {
1024
+ const [viewMonth, setViewMonth] = (0, import_react14.useState)(() => {
988
1025
  const today = /* @__PURE__ */ new Date();
989
1026
  today.setDate(1);
990
1027
  today.setHours(0, 0, 0, 0);
991
1028
  return inProps.value?.[0] || inProps.defaultValue?.[0] || today;
992
1029
  });
993
- const [[page, direction], setPage] = (0, import_react13.useState)([0, 0]);
1030
+ const [[page, direction], setPage] = (0, import_react14.useState)([0, 0]);
994
1031
  const resolvedView = inProps.view ?? uncontrolledView;
995
- const resolvedMinDate = (0, import_react13.useMemo)(() => {
1032
+ const resolvedMinDate = (0, import_react14.useMemo)(() => {
996
1033
  const minDate = inProps.minDate || /* @__PURE__ */ new Date(0);
997
1034
  minDate.setHours(0, 0, 0, 0);
998
1035
  return minDate;
999
1036
  }, [inProps.minDate]);
1000
- const resolvedMaxDate = (0, import_react13.useMemo)(() => {
1037
+ const resolvedMaxDate = (0, import_react14.useMemo)(() => {
1001
1038
  const maxDate = inProps.maxDate || /* @__PURE__ */ new Date(864e13);
1002
1039
  maxDate.setHours(0, 0, 0, 0);
1003
1040
  return maxDate;
1004
1041
  }, [inProps.maxDate]);
1005
- const paginate = (0, import_react13.useCallback)(
1042
+ const paginate = (0, import_react14.useCallback)(
1006
1043
  (newDirection) => {
1007
1044
  setPage([page + newDirection, newDirection]);
1008
1045
  },
1009
1046
  [page]
1010
1047
  );
1011
- const handleViewMonthChange = (0, import_react13.useCallback)(
1048
+ const handleViewMonthChange = (0, import_react14.useCallback)(
1012
1049
  (newMonth) => {
1013
1050
  setViewMonth(newMonth);
1014
1051
  if (resolvedView === "month") {
@@ -1056,22 +1093,22 @@ var useCalendarProps = (inProps) => {
1056
1093
  },
1057
1094
  name: "Calendar"
1058
1095
  });
1059
- const ownerState = (0, import_react13.useMemo)(() => ({ ...props, viewMonth, direction }), [props, viewMonth, direction]);
1096
+ const ownerState = (0, import_react14.useMemo)(() => ({ ...props, viewMonth, direction }), [props, viewMonth, direction]);
1060
1097
  return [props, ownerState];
1061
1098
  };
1062
1099
 
1063
1100
  // src/components/Calendar/hooks/use-calendar.ts
1064
- var import_react14 = require("react");
1101
+ var import_react15 = require("react");
1065
1102
  var useCalendar = (ownerState) => {
1066
- const [localHoverDay, setLocalHoverDay] = (0, import_react14.useState)(null);
1067
- const [localHoverMonth, setLocalHoverMonth] = (0, import_react14.useState)(null);
1103
+ const [localHoverDay, setLocalHoverDay] = (0, import_react15.useState)(null);
1104
+ const [localHoverMonth, setLocalHoverMonth] = (0, import_react15.useState)(null);
1068
1105
  const hoverDay = ownerState.hoverDay !== void 0 ? ownerState.hoverDay : localHoverDay;
1069
1106
  const setHoverDay = ownerState.onHoverDayChange ?? setLocalHoverDay;
1070
1107
  const hoverMonth = ownerState.hoverMonth !== void 0 ? ownerState.hoverMonth : localHoverMonth;
1071
1108
  const setHoverMonth = ownerState.onHoverMonthChange ?? setLocalHoverMonth;
1072
1109
  return {
1073
1110
  calendarTitle: ownerState.view === "month" ? getYearName(ownerState.viewMonth, ownerState.locale || "default") : getMonthName(ownerState.viewMonth, ownerState.locale || "default"),
1074
- onPrev: (0, import_react14.useCallback)(() => {
1111
+ onPrev: (0, import_react15.useCallback)(() => {
1075
1112
  if (ownerState.view === "day") {
1076
1113
  const currentDate = new Date(ownerState.viewMonth || /* @__PURE__ */ new Date());
1077
1114
  const currentYear = currentDate.getFullYear();
@@ -1088,7 +1125,7 @@ var useCalendar = (ownerState) => {
1088
1125
  ownerState.onMonthChange?.(prevYear);
1089
1126
  }
1090
1127
  }, [ownerState.onMonthChange, ownerState.viewMonth, ownerState.view]),
1091
- onNext: (0, import_react14.useCallback)(() => {
1128
+ onNext: (0, import_react15.useCallback)(() => {
1092
1129
  if (ownerState.view === "day") {
1093
1130
  const currentDate = new Date(ownerState.viewMonth || /* @__PURE__ */ new Date());
1094
1131
  const currentYear = currentDate.getFullYear();
@@ -1105,7 +1142,7 @@ var useCalendar = (ownerState) => {
1105
1142
  ownerState.onMonthChange?.(nextYear);
1106
1143
  }
1107
1144
  }, [ownerState.onMonthChange, ownerState.viewMonth, ownerState.view]),
1108
- getDayCellProps: (0, import_react14.useCallback)(
1145
+ getDayCellProps: (0, import_react15.useCallback)(
1109
1146
  (day) => {
1110
1147
  const thisDay = new Date(ownerState.viewMonth || /* @__PURE__ */ new Date());
1111
1148
  thisDay.setHours(0, 0, 0, 0);
@@ -1120,7 +1157,7 @@ var useCalendar = (ownerState) => {
1120
1157
  },
1121
1158
  [ownerState.rangeSelection, ownerState.value, ownerState.viewMonth, hoverDay]
1122
1159
  ),
1123
- getMonthCellProps: (0, import_react14.useCallback)(
1160
+ getMonthCellProps: (0, import_react15.useCallback)(
1124
1161
  (monthIndex) => {
1125
1162
  const thisMonth = new Date(ownerState.viewMonth || /* @__PURE__ */ new Date());
1126
1163
  thisMonth.setDate(1);
@@ -1137,7 +1174,7 @@ var useCalendar = (ownerState) => {
1137
1174
  },
1138
1175
  [ownerState.rangeSelection, ownerState.value, ownerState.viewMonth, hoverMonth]
1139
1176
  ),
1140
- getPickerDayProps: (0, import_react14.useCallback)(
1177
+ getPickerDayProps: (0, import_react15.useCallback)(
1141
1178
  (day) => {
1142
1179
  const thisDay = new Date(ownerState.viewMonth || /* @__PURE__ */ new Date());
1143
1180
  thisDay.setHours(0, 0, 0, 0);
@@ -1191,7 +1228,7 @@ var useCalendar = (ownerState) => {
1191
1228
  hoverDay
1192
1229
  ]
1193
1230
  ),
1194
- getPickerMonthProps: (0, import_react14.useCallback)(
1231
+ getPickerMonthProps: (0, import_react15.useCallback)(
1195
1232
  (monthIndex) => {
1196
1233
  const thisMonth = new Date(ownerState.viewMonth || /* @__PURE__ */ new Date());
1197
1234
  thisMonth.setDate(1);
@@ -1488,9 +1525,9 @@ var swipePower = (offset, velocity) => {
1488
1525
  var PickerDays = (props) => {
1489
1526
  const { ownerState } = props;
1490
1527
  const { getPickerDayProps, getDayCellProps } = useCalendar(ownerState);
1491
- const calendarDates = (0, import_react15.useMemo)(() => getCalendarDates(ownerState.viewMonth), [ownerState.viewMonth]);
1492
- const weekdayNames = (0, import_react15.useMemo)(() => getWeekdayNames(ownerState.locale || "default"), [ownerState.locale]);
1493
- 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(
1528
+ const calendarDates = (0, import_react16.useMemo)(() => getCalendarDates(ownerState.viewMonth), [ownerState.viewMonth]);
1529
+ const weekdayNames = (0, import_react16.useMemo)(() => getWeekdayNames(ownerState.locale || "default"), [ownerState.locale]);
1530
+ 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(
1494
1531
  CalendarViewTable,
1495
1532
  {
1496
1533
  key: `${ownerState.viewMonth.toString()}_${ownerState.direction}`,
@@ -1519,10 +1556,10 @@ var PickerDays = (props) => {
1519
1556
  }
1520
1557
  }
1521
1558
  },
1522
- /* @__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" }))))),
1523
- /* @__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(
1524
- (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" }))
1525
- )), 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 } })))))
1559
+ /* @__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" }))))),
1560
+ /* @__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(
1561
+ (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" }))
1562
+ )), 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 } })))))
1526
1563
  )));
1527
1564
  };
1528
1565
  var PickerMonths = (props) => {
@@ -1539,7 +1576,7 @@ var PickerMonths = (props) => {
1539
1576
  [[]]
1540
1577
  );
1541
1578
  const isMonthPicker = !ownerState.views?.find((view) => view === "day");
1542
- 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(
1579
+ 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(
1543
1580
  CalendarViewTable,
1544
1581
  {
1545
1582
  key: `${ownerState.viewMonth.getFullYear()}_${ownerState.direction}`,
@@ -1568,16 +1605,16 @@ var PickerMonths = (props) => {
1568
1605
  }
1569
1606
  }
1570
1607
  },
1571
- /* @__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 } })))))
1608
+ /* @__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 } })))))
1572
1609
  )));
1573
1610
  };
1574
1611
  var PlainPickerDays = ({ ownerState }) => {
1575
1612
  const { getPickerDayProps, getDayCellProps } = useCalendar(ownerState);
1576
- const calendarDates = (0, import_react15.useMemo)(() => getCalendarDates(ownerState.viewMonth), [ownerState.viewMonth]);
1577
- const weekdayNames = (0, import_react15.useMemo)(() => getWeekdayNames(ownerState.locale || "default"), [ownerState.locale]);
1578
- 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(
1579
- (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" }))
1580
- )), 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 } }))))));
1613
+ const calendarDates = (0, import_react16.useMemo)(() => getCalendarDates(ownerState.viewMonth), [ownerState.viewMonth]);
1614
+ const weekdayNames = (0, import_react16.useMemo)(() => getWeekdayNames(ownerState.locale || "default"), [ownerState.locale]);
1615
+ 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(
1616
+ (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" }))
1617
+ )), 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 } }))))));
1581
1618
  };
1582
1619
  var MultiMonthPickerDays = ({
1583
1620
  panels,
@@ -1596,7 +1633,7 @@ var MultiMonthPickerDays = ({
1596
1633
  })
1597
1634
  };
1598
1635
  const key = `${panels[0].viewMonth.toISOString()}_${direction}`;
1599
- 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(
1636
+ 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(
1600
1637
  import_framer_motion13.motion.div,
1601
1638
  {
1602
1639
  key,
@@ -1626,7 +1663,7 @@ var MultiMonthPickerDays = ({
1626
1663
  },
1627
1664
  style: { display: "flex", gap: `${CALENDAR_PANEL_GAP}px`, top: 0, left: 0, width: "100%" }
1628
1665
  },
1629
- panels.map((panelOwnerState) => /* @__PURE__ */ import_react15.default.createElement(
1666
+ panels.map((panelOwnerState) => /* @__PURE__ */ import_react16.default.createElement(
1630
1667
  "div",
1631
1668
  {
1632
1669
  key: panelOwnerState.viewMonth.toISOString(),
@@ -1638,7 +1675,7 @@ var MultiMonthPickerDays = ({
1638
1675
  boxSizing: "border-box"
1639
1676
  }
1640
1677
  },
1641
- /* @__PURE__ */ import_react15.default.createElement(PlainPickerDays, { ownerState: panelOwnerState })
1678
+ /* @__PURE__ */ import_react16.default.createElement(PlainPickerDays, { ownerState: panelOwnerState })
1642
1679
  ))
1643
1680
  )));
1644
1681
  };
@@ -1655,7 +1692,7 @@ var CalendarPanel = ({
1655
1692
  const showPrev = panelIndex === 0;
1656
1693
  const showNext = panelIndex === totalPanels - 1;
1657
1694
  const title = ownerState.view === "month" ? getYearName(ownerState.viewMonth, ownerState.locale || "default") : getMonthName(ownerState.viewMonth, ownerState.locale || "default");
1658
- 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(
1695
+ 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(
1659
1696
  IconButton_default,
1660
1697
  {
1661
1698
  size: "sm",
@@ -1663,8 +1700,8 @@ var CalendarPanel = ({
1663
1700
  "aria-label": `Previous ${ownerState.view === "day" ? "Month" : "Year"}`,
1664
1701
  style: { visibility: showPrev ? "visible" : "hidden" }
1665
1702
  },
1666
- /* @__PURE__ */ import_react15.default.createElement(import_ChevronLeft.default, null)
1667
- ), /* @__PURE__ */ import_react15.default.createElement(
1703
+ /* @__PURE__ */ import_react16.default.createElement(import_ChevronLeft.default, null)
1704
+ ), /* @__PURE__ */ import_react16.default.createElement(
1668
1705
  Tooltip_default,
1669
1706
  {
1670
1707
  title: monthViewHintMessage,
@@ -1676,7 +1713,7 @@ var CalendarPanel = ({
1676
1713
  disableTouchListener: true,
1677
1714
  variant: "solid"
1678
1715
  },
1679
- /* @__PURE__ */ import_react15.default.createElement(
1716
+ /* @__PURE__ */ import_react16.default.createElement(
1680
1717
  CalendarSwitchViewButton,
1681
1718
  {
1682
1719
  ownerState,
@@ -1687,7 +1724,7 @@ var CalendarPanel = ({
1687
1724
  },
1688
1725
  title
1689
1726
  )
1690
- ), /* @__PURE__ */ import_react15.default.createElement(
1727
+ ), /* @__PURE__ */ import_react16.default.createElement(
1691
1728
  IconButton_default,
1692
1729
  {
1693
1730
  size: "sm",
@@ -1695,10 +1732,10 @@ var CalendarPanel = ({
1695
1732
  "aria-label": `Next ${ownerState.view === "day" ? "Month" : "Year"}`,
1696
1733
  style: { visibility: showNext ? "visible" : "hidden" }
1697
1734
  },
1698
- /* @__PURE__ */ import_react15.default.createElement(import_ChevronRight.default, null)
1735
+ /* @__PURE__ */ import_react16.default.createElement(import_ChevronRight.default, null)
1699
1736
  )));
1700
1737
  };
1701
- var Calendar = (0, import_react15.forwardRef)((inProps, ref) => {
1738
+ var Calendar = (0, import_react16.forwardRef)((inProps, ref) => {
1702
1739
  const [props, ownerState] = useCalendarProps(inProps);
1703
1740
  const {
1704
1741
  value,
@@ -1718,38 +1755,38 @@ var Calendar = (0, import_react15.forwardRef)((inProps, ref) => {
1718
1755
  ...others
1719
1756
  } = props;
1720
1757
  const { calendarTitle, onPrev, onNext } = useCalendar(ownerState);
1721
- const [isMonthViewAssistHintOpen, setIsMonthViewAssistHintOpen] = (0, import_react15.useState)(false);
1722
- const monthNavClickTimestampsRef = (0, import_react15.useRef)([]);
1723
- const monthViewAssistHintShownInSessionRef = (0, import_react15.useRef)(false);
1724
- const monthViewAssistHintTimeoutRef = (0, import_react15.useRef)(null);
1725
- const [hoverDay, setHoverDay] = (0, import_react15.useState)(null);
1726
- const [hoverMonth, setHoverMonth] = (0, import_react15.useState)(null);
1758
+ const [isMonthViewAssistHintOpen, setIsMonthViewAssistHintOpen] = (0, import_react16.useState)(false);
1759
+ const monthNavClickTimestampsRef = (0, import_react16.useRef)([]);
1760
+ const monthViewAssistHintShownInSessionRef = (0, import_react16.useRef)(false);
1761
+ const monthViewAssistHintTimeoutRef = (0, import_react16.useRef)(null);
1762
+ const [hoverDay, setHoverDay] = (0, import_react16.useState)(null);
1763
+ const [hoverMonth, setHoverMonth] = (0, import_react16.useState)(null);
1727
1764
  const resolvedNumberOfMonths = numberOfMonths ?? 1;
1728
1765
  const hasEndDate = Boolean(value?.[1]);
1729
1766
  const isRangeHintEligible = Boolean(rangeSelection && !hasEndDate);
1730
1767
  const isHintEligible = Boolean(view === "day" && (!rangeSelection || isRangeHintEligible));
1731
1768
  const monthViewHintMessage = MONTH_VIEW_HINT_MESSAGE;
1732
- (0, import_react15.useEffect)(() => {
1769
+ (0, import_react16.useEffect)(() => {
1733
1770
  if (!isHintEligible) {
1734
1771
  monthNavClickTimestampsRef.current = [];
1735
1772
  setIsMonthViewAssistHintOpen(false);
1736
1773
  }
1737
1774
  }, [isHintEligible]);
1738
- (0, import_react15.useEffect)(() => {
1775
+ (0, import_react16.useEffect)(() => {
1739
1776
  return () => {
1740
1777
  if (monthViewAssistHintTimeoutRef.current) {
1741
1778
  clearTimeout(monthViewAssistHintTimeoutRef.current);
1742
1779
  }
1743
1780
  };
1744
1781
  }, []);
1745
- const closeMonthViewAssistHint = (0, import_react15.useCallback)(() => {
1782
+ const closeMonthViewAssistHint = (0, import_react16.useCallback)(() => {
1746
1783
  if (monthViewAssistHintTimeoutRef.current) {
1747
1784
  clearTimeout(monthViewAssistHintTimeoutRef.current);
1748
1785
  monthViewAssistHintTimeoutRef.current = null;
1749
1786
  }
1750
1787
  setIsMonthViewAssistHintOpen(false);
1751
1788
  }, []);
1752
- const showMonthViewAssistHint = (0, import_react15.useCallback)(() => {
1789
+ const showMonthViewAssistHint = (0, import_react16.useCallback)(() => {
1753
1790
  const now = Date.now();
1754
1791
  if (monthViewAssistHintShownInSessionRef.current) return;
1755
1792
  if (now - lastMonthViewAssistHintShownAt < MONTH_VIEW_HINT_COOLDOWN_MS) return;
@@ -1764,7 +1801,7 @@ var Calendar = (0, import_react15.forwardRef)((inProps, ref) => {
1764
1801
  monthViewAssistHintTimeoutRef.current = null;
1765
1802
  }, MONTH_VIEW_HINT_DURATION_MS);
1766
1803
  }, []);
1767
- const trackFastMonthNavigation = (0, import_react15.useCallback)(() => {
1804
+ const trackFastMonthNavigation = (0, import_react16.useCallback)(() => {
1768
1805
  if (!isHintEligible) return;
1769
1806
  const now = Date.now();
1770
1807
  monthNavClickTimestampsRef.current = [
@@ -1775,15 +1812,15 @@ var Calendar = (0, import_react15.forwardRef)((inProps, ref) => {
1775
1812
  showMonthViewAssistHint();
1776
1813
  }
1777
1814
  }, [isHintEligible, showMonthViewAssistHint]);
1778
- const handlePrevClick = (0, import_react15.useCallback)(() => {
1815
+ const handlePrevClick = (0, import_react16.useCallback)(() => {
1779
1816
  onPrev();
1780
1817
  trackFastMonthNavigation();
1781
1818
  }, [onPrev, trackFastMonthNavigation]);
1782
- const handleNextClick = (0, import_react15.useCallback)(() => {
1819
+ const handleNextClick = (0, import_react16.useCallback)(() => {
1783
1820
  onNext();
1784
1821
  trackFastMonthNavigation();
1785
1822
  }, [onNext, trackFastMonthNavigation]);
1786
- const handleSwitchViewClick = (0, import_react15.useCallback)(() => {
1823
+ const handleSwitchViewClick = (0, import_react16.useCallback)(() => {
1787
1824
  closeMonthViewAssistHint();
1788
1825
  onViewChange?.();
1789
1826
  }, [closeMonthViewAssistHint, onViewChange]);
@@ -1803,9 +1840,9 @@ var Calendar = (0, import_react15.forwardRef)((inProps, ref) => {
1803
1840
  onHoverMonthChange: setHoverMonth
1804
1841
  };
1805
1842
  });
1806
- return /* @__PURE__ */ import_react15.default.createElement(CalendarRoot, { ref, ...others, style: { maxWidth: `${maxWidth}px` } }, view === "month" ? (
1843
+ return /* @__PURE__ */ import_react16.default.createElement(CalendarRoot, { ref, ...others, style: { maxWidth: `${maxWidth}px` } }, view === "month" ? (
1807
1844
  // Month view: single header + single month grid (consistent with single-month path)
1808
- /* @__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(
1845
+ /* @__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(
1809
1846
  Tooltip_default,
1810
1847
  {
1811
1848
  title: monthViewHintMessage,
@@ -1817,7 +1854,7 @@ var Calendar = (0, import_react15.forwardRef)((inProps, ref) => {
1817
1854
  disableTouchListener: true,
1818
1855
  variant: "solid"
1819
1856
  },
1820
- /* @__PURE__ */ import_react15.default.createElement(
1857
+ /* @__PURE__ */ import_react16.default.createElement(
1821
1858
  CalendarSwitchViewButton,
1822
1859
  {
1823
1860
  ownerState,
@@ -1828,8 +1865,8 @@ var Calendar = (0, import_react15.forwardRef)((inProps, ref) => {
1828
1865
  },
1829
1866
  calendarTitle
1830
1867
  )
1831
- ), /* @__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 }))
1832
- ) : /* @__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(
1868
+ ), /* @__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 }))
1869
+ ) : /* @__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
1870
  CalendarPanel,
1834
1871
  {
1835
1872
  key: panelOwnerState.viewMonth.toISOString(),
@@ -1842,7 +1879,7 @@ var Calendar = (0, import_react15.forwardRef)((inProps, ref) => {
1842
1879
  isMonthViewAssistHintOpen,
1843
1880
  monthViewHintMessage
1844
1881
  }
1845
- ))), /* @__PURE__ */ import_react15.default.createElement(
1882
+ ))), /* @__PURE__ */ import_react16.default.createElement(
1846
1883
  MultiMonthPickerDays,
1847
1884
  {
1848
1885
  panels,
@@ -1851,7 +1888,7 @@ var Calendar = (0, import_react15.forwardRef)((inProps, ref) => {
1851
1888
  }
1852
1889
  )));
1853
1890
  }
1854
- 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(
1891
+ 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(
1855
1892
  Tooltip_default,
1856
1893
  {
1857
1894
  title: monthViewHintMessage,
@@ -1863,7 +1900,7 @@ var Calendar = (0, import_react15.forwardRef)((inProps, ref) => {
1863
1900
  disableTouchListener: true,
1864
1901
  variant: "solid"
1865
1902
  },
1866
- /* @__PURE__ */ import_react15.default.createElement(
1903
+ /* @__PURE__ */ import_react16.default.createElement(
1867
1904
  CalendarSwitchViewButton,
1868
1905
  {
1869
1906
  ownerState,
@@ -1874,7 +1911,7 @@ var Calendar = (0, import_react15.forwardRef)((inProps, ref) => {
1874
1911
  },
1875
1912
  calendarTitle
1876
1913
  )
1877
- ), /* @__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 }));
1914
+ ), /* @__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 }));
1878
1915
  });
1879
1916
  Calendar.displayName = "Calendar";
1880
1917
 
@@ -1901,12 +1938,12 @@ var CardOverflow = MotionCardOverflow;
1901
1938
  CardOverflow.displayName = "CardOverflow";
1902
1939
 
1903
1940
  // src/components/Checkbox/Checkbox.tsx
1904
- var import_react16 = __toESM(require("react"));
1941
+ var import_react17 = __toESM(require("react"));
1905
1942
  var import_joy22 = require("@mui/joy");
1906
1943
  var import_framer_motion15 = require("framer-motion");
1907
1944
  var MotionCheckbox = (0, import_framer_motion15.motion)(import_joy22.Checkbox);
1908
1945
  var Checkbox = (props) => {
1909
- return /* @__PURE__ */ import_react16.default.createElement(MotionCheckbox, { ...props });
1946
+ return /* @__PURE__ */ import_react17.default.createElement(MotionCheckbox, { ...props });
1910
1947
  };
1911
1948
  Checkbox.displayName = "Checkbox";
1912
1949
 
@@ -1915,7 +1952,7 @@ var Checkbox_default = Checkbox;
1915
1952
 
1916
1953
  // src/components/Container/Container.tsx
1917
1954
  var import_joy23 = require("@mui/joy");
1918
- var import_react17 = __toESM(require("react"));
1955
+ var import_react18 = __toESM(require("react"));
1919
1956
  var ContainerRoot = (0, import_joy23.styled)("div", {
1920
1957
  name: "Container",
1921
1958
  slot: "root",
@@ -1941,24 +1978,24 @@ var ContainerRoot = (0, import_joy23.styled)("div", {
1941
1978
  paddingRight: theme.breakpoints.values[overrideBreakpoint] >= theme.breakpoints.values.lg ? theme.spacing(8) : theme.spacing(4)
1942
1979
  } : null
1943
1980
  ]);
1944
- var Container = (0, import_react17.forwardRef)(function Container2(props, ref) {
1945
- return /* @__PURE__ */ import_react17.default.createElement(ContainerRoot, { ref, ...props });
1981
+ var Container = (0, import_react18.forwardRef)(function Container2(props, ref) {
1982
+ return /* @__PURE__ */ import_react18.default.createElement(ContainerRoot, { ref, ...props });
1946
1983
  });
1947
1984
  Container.displayName = "Container";
1948
1985
 
1949
1986
  // src/components/CurrencyInput/CurrencyInput.tsx
1950
- var import_react19 = __toESM(require("react"));
1987
+ var import_react20 = __toESM(require("react"));
1951
1988
  var import_react_number_format = require("react-number-format");
1952
1989
 
1953
1990
  // src/components/Input/Input.tsx
1954
- var import_react18 = __toESM(require("react"));
1991
+ var import_react19 = __toESM(require("react"));
1955
1992
  var import_joy24 = require("@mui/joy");
1956
1993
  var import_framer_motion16 = require("framer-motion");
1957
1994
  var import_Close2 = __toESM(require("@mui/icons-material/Close"));
1958
1995
  var import_Visibility = __toESM(require("@mui/icons-material/Visibility"));
1959
1996
  var import_VisibilityOff = __toESM(require("@mui/icons-material/VisibilityOff"));
1960
1997
  var MotionInput = (0, import_framer_motion16.motion)(import_joy24.Input);
1961
- var Input = import_react18.default.forwardRef((props, ref) => {
1998
+ var Input = import_react19.default.forwardRef((props, ref) => {
1962
1999
  const {
1963
2000
  label,
1964
2001
  helperText,
@@ -1985,11 +2022,11 @@ var Input = import_react18.default.forwardRef((props, ref) => {
1985
2022
  if (type === "password" && innerProps.endDecorator) {
1986
2023
  console.warn('Input: endDecorator is not supported when type="password"');
1987
2024
  }
1988
- const [passwordVisible, setPasswordVisible] = (0, import_react18.useState)(false);
2025
+ const [passwordVisible, setPasswordVisible] = (0, import_react19.useState)(false);
1989
2026
  const [value, setValue] = useControlledState(
1990
2027
  valueProp,
1991
2028
  defaultValueProp ?? null,
1992
- (0, import_react18.useCallback)(
2029
+ (0, import_react19.useCallback)(
1993
2030
  (value2) => {
1994
2031
  onChange?.({
1995
2032
  /**
@@ -2016,7 +2053,7 @@ var Input = import_react18.default.forwardRef((props, ref) => {
2016
2053
  const actualType = type === "password" && passwordVisible ? "text" : type;
2017
2054
  const isPasswordType = type === "password";
2018
2055
  const showPasswordToggle = isPasswordType && !disableTogglePasswordButton;
2019
- const input = /* @__PURE__ */ import_react18.default.createElement(
2056
+ const input = /* @__PURE__ */ import_react19.default.createElement(
2020
2057
  MotionInput,
2021
2058
  {
2022
2059
  value: displayValue ?? "",
@@ -2031,7 +2068,7 @@ var Input = import_react18.default.forwardRef((props, ref) => {
2031
2068
  ...innerProps.slotProps
2032
2069
  },
2033
2070
  ...innerProps,
2034
- endDecorator: isPasswordType ? showPasswordToggle ? /* @__PURE__ */ import_react18.default.createElement(Stack_default, { gap: 1, direction: "row" }, /* @__PURE__ */ import_react18.default.createElement(
2071
+ endDecorator: isPasswordType ? showPasswordToggle ? /* @__PURE__ */ import_react19.default.createElement(Stack_default, { gap: 1, direction: "row" }, /* @__PURE__ */ import_react19.default.createElement(
2035
2072
  IconButton_default,
2036
2073
  {
2037
2074
  onMouseDown: (e) => e.preventDefault(),
@@ -2039,19 +2076,19 @@ var Input = import_react18.default.forwardRef((props, ref) => {
2039
2076
  disabled,
2040
2077
  "aria-label": passwordVisible ? "Hide password" : "Show password"
2041
2078
  },
2042
- passwordVisible ? /* @__PURE__ */ import_react18.default.createElement(import_VisibilityOff.default, null) : /* @__PURE__ */ import_react18.default.createElement(import_Visibility.default, null)
2043
- )) : null : enableClearable ? /* @__PURE__ */ import_react18.default.createElement(Stack_default, { gap: 1, direction: "row" }, innerProps.endDecorator, displayValue && /* @__PURE__ */ import_react18.default.createElement(
2079
+ passwordVisible ? /* @__PURE__ */ import_react19.default.createElement(import_VisibilityOff.default, null) : /* @__PURE__ */ import_react19.default.createElement(import_Visibility.default, null)
2080
+ )) : null : enableClearable ? /* @__PURE__ */ import_react19.default.createElement(Stack_default, { gap: 1, direction: "row" }, innerProps.endDecorator, displayValue && /* @__PURE__ */ import_react19.default.createElement(
2044
2081
  IconButton_default,
2045
2082
  {
2046
2083
  onMouseDown: (e) => e.preventDefault(),
2047
2084
  onClick: handleClear,
2048
2085
  "aria-label": "Clear"
2049
2086
  },
2050
- /* @__PURE__ */ import_react18.default.createElement(import_Close2.default, null)
2087
+ /* @__PURE__ */ import_react19.default.createElement(import_Close2.default, null)
2051
2088
  )) : innerProps.endDecorator
2052
2089
  }
2053
2090
  );
2054
- return /* @__PURE__ */ import_react18.default.createElement(
2091
+ return /* @__PURE__ */ import_react19.default.createElement(
2055
2092
  FormControl_default,
2056
2093
  {
2057
2094
  required,
@@ -2062,9 +2099,9 @@ var Input = import_react18.default.forwardRef((props, ref) => {
2062
2099
  sx,
2063
2100
  className
2064
2101
  },
2065
- label && /* @__PURE__ */ import_react18.default.createElement(FormLabel_default, null, label),
2102
+ label && /* @__PURE__ */ import_react19.default.createElement(FormLabel_default, null, label),
2066
2103
  input,
2067
- helperText && /* @__PURE__ */ import_react18.default.createElement(FormHelperText_default, null, helperText)
2104
+ helperText && /* @__PURE__ */ import_react19.default.createElement(FormHelperText_default, null, helperText)
2068
2105
  );
2069
2106
  });
2070
2107
  Input.displayName = "Input";
@@ -2236,9 +2273,9 @@ var useCurrencySetting = (props) => {
2236
2273
  };
2237
2274
 
2238
2275
  // src/components/CurrencyInput/CurrencyInput.tsx
2239
- var TextMaskAdapter = import_react19.default.forwardRef(function TextMaskAdapter2(props, ref) {
2276
+ var TextMaskAdapter = import_react20.default.forwardRef(function TextMaskAdapter2(props, ref) {
2240
2277
  const { onChange, ...innerProps } = props;
2241
- return /* @__PURE__ */ import_react19.default.createElement(
2278
+ return /* @__PURE__ */ import_react20.default.createElement(
2242
2279
  import_react_number_format.NumericFormat,
2243
2280
  {
2244
2281
  ...innerProps,
@@ -2258,7 +2295,7 @@ var CurrencyInputRoot = (0, import_joy25.styled)(Input_default, {
2258
2295
  slot: "root",
2259
2296
  overridesResolver: (props, styles) => styles.root
2260
2297
  })({});
2261
- var CurrencyInput = import_react19.default.forwardRef(function CurrencyInput2(inProps, ref) {
2298
+ var CurrencyInput = import_react20.default.forwardRef(function CurrencyInput2(inProps, ref) {
2262
2299
  const props = (0, import_joy25.useThemeProps)({ props: inProps, name: "CurrencyInput" });
2263
2300
  const {
2264
2301
  currency = "USD",
@@ -2279,22 +2316,22 @@ var CurrencyInput = import_react19.default.forwardRef(function CurrencyInput2(in
2279
2316
  const [_value, setValue] = useControlledState(
2280
2317
  props.value,
2281
2318
  props.defaultValue ?? null,
2282
- (0, import_react19.useCallback)((value2) => onChange?.({ target: { name, value: value2 } }), [onChange, name])
2319
+ (0, import_react20.useCallback)((value2) => onChange?.({ target: { name, value: value2 } }), [onChange, name])
2283
2320
  );
2284
- const value = (0, import_react19.useMemo)(() => {
2321
+ const value = (0, import_react20.useMemo)(() => {
2285
2322
  if (_value && useMinorUnit) {
2286
2323
  return _value / Math.pow(10, decimalScale);
2287
2324
  }
2288
2325
  return _value;
2289
2326
  }, [_value, useMinorUnit, decimalScale]);
2290
- const max = (0, import_react19.useMemo)(() => {
2327
+ const max = (0, import_react20.useMemo)(() => {
2291
2328
  if (props.max && useMinorUnit) {
2292
2329
  return props.max / Math.pow(10, decimalScale);
2293
2330
  }
2294
2331
  return props.max;
2295
2332
  }, [props.max, useMinorUnit, decimalScale]);
2296
- const isOverLimit = (0, import_react19.useMemo)(() => max != null && value != null && value > max, [max, value]);
2297
- const handleChange = (0, import_react19.useCallback)(
2333
+ const isOverLimit = (0, import_react20.useMemo)(() => max != null && value != null && value > max, [max, value]);
2334
+ const handleChange = (0, import_react20.useCallback)(
2298
2335
  (event) => {
2299
2336
  if (event.target.value === "") {
2300
2337
  setValue(null);
@@ -2305,7 +2342,7 @@ var CurrencyInput = import_react19.default.forwardRef(function CurrencyInput2(in
2305
2342
  },
2306
2343
  [decimalSeparator, useMinorUnit, setValue]
2307
2344
  );
2308
- return /* @__PURE__ */ import_react19.default.createElement(
2345
+ return /* @__PURE__ */ import_react20.default.createElement(
2309
2346
  CurrencyInputRoot,
2310
2347
  {
2311
2348
  ...innerProps,
@@ -2342,7 +2379,7 @@ var CurrencyInput = import_react19.default.forwardRef(function CurrencyInput2(in
2342
2379
  var CurrencyInput_default = CurrencyInput;
2343
2380
 
2344
2381
  // src/components/DataTable/DataTable.tsx
2345
- var import_react29 = __toESM(require("react"));
2382
+ var import_react30 = __toESM(require("react"));
2346
2383
  var import_react_virtual2 = require("@tanstack/react-virtual");
2347
2384
 
2348
2385
  // src/libs/text-measurer.ts
@@ -2570,9 +2607,12 @@ function computeAutoFitWidth(params) {
2570
2607
  if (!isNaN(maxPx) && maxPx > 0) finalWidth = Math.min(finalWidth, maxPx);
2571
2608
  return finalWidth;
2572
2609
  }
2610
+ function getHeaderCellId(tableId, columnId) {
2611
+ return `${tableId}_header_${columnId}`.trim();
2612
+ }
2573
2613
 
2574
2614
  // src/components/DataTable/styled.tsx
2575
- var import_react20 = __toESM(require("react"));
2615
+ var import_react21 = __toESM(require("react"));
2576
2616
  var import_joy26 = require("@mui/joy");
2577
2617
  var import_framer_motion17 = require("framer-motion");
2578
2618
  var import_ArrowUpwardRounded = __toESM(require("@mui/icons-material/ArrowUpwardRounded"));
@@ -2678,9 +2718,9 @@ var StyledTd = (0, import_joy26.styled)("td")(({ theme }) => ({
2678
2718
  }
2679
2719
  }));
2680
2720
  var MotionSortIcon = (0, import_framer_motion17.motion)(import_ArrowUpwardRounded.default);
2681
- var DefaultLoadingOverlay = () => /* @__PURE__ */ import_react20.default.createElement(import_joy26.LinearProgress, { value: 8, variant: "plain" });
2682
- var DefaultNoRowsOverlay = () => /* @__PURE__ */ import_react20.default.createElement(import_joy26.Typography, { level: "body-sm", textColor: "text.tertiary" }, "No rows");
2683
- var Resizer = (ref, targetRef = ref, onResizeStateChange, onAutoFit) => /* @__PURE__ */ import_react20.default.createElement(
2721
+ var DefaultLoadingOverlay = () => /* @__PURE__ */ import_react21.default.createElement(import_joy26.LinearProgress, { value: 8, variant: "plain" });
2722
+ var DefaultNoRowsOverlay = () => /* @__PURE__ */ import_react21.default.createElement(import_joy26.Typography, { level: "body-sm", textColor: "text.tertiary" }, "No rows");
2723
+ var Resizer = (ref, targetRef = ref, onResizeStateChange, onAutoFit) => /* @__PURE__ */ import_react21.default.createElement(
2684
2724
  Box_default,
2685
2725
  {
2686
2726
  sx: {
@@ -2757,12 +2797,12 @@ var Resizer = (ref, targetRef = ref, onResizeStateChange, onAutoFit) => /* @__PU
2757
2797
  );
2758
2798
 
2759
2799
  // src/components/DataTable/components.tsx
2760
- var import_react25 = __toESM(require("react"));
2800
+ var import_react26 = __toESM(require("react"));
2761
2801
  var import_joy33 = require("@mui/joy");
2762
2802
  var import_framer_motion21 = require("framer-motion");
2763
2803
 
2764
2804
  // src/components/DatePicker/DatePicker.tsx
2765
- var import_react21 = __toESM(require("react"));
2805
+ var import_react22 = __toESM(require("react"));
2766
2806
  var import_react_imask = require("react-imask");
2767
2807
  var import_CalendarToday = __toESM(require("@mui/icons-material/CalendarToday"));
2768
2808
  var import_joy29 = require("@mui/joy");
@@ -2915,9 +2955,9 @@ function parseDate(dateString, format) {
2915
2955
  var formatToPattern = (format) => {
2916
2956
  return format.replace(/YYYY/g, "Y").replace(/MM/g, "M").replace(/DD/g, "D").replace(/[^YMD\s]/g, (match) => `${match}\``);
2917
2957
  };
2918
- var TextMaskAdapter3 = import_react21.default.forwardRef(function TextMaskAdapter4(props, ref) {
2958
+ var TextMaskAdapter3 = import_react22.default.forwardRef(function TextMaskAdapter4(props, ref) {
2919
2959
  const { onChange, format, ...other } = props;
2920
- return /* @__PURE__ */ import_react21.default.createElement(
2960
+ return /* @__PURE__ */ import_react22.default.createElement(
2921
2961
  import_react_imask.IMaskInput,
2922
2962
  {
2923
2963
  ...other,
@@ -2952,7 +2992,7 @@ var TextMaskAdapter3 = import_react21.default.forwardRef(function TextMaskAdapte
2952
2992
  }
2953
2993
  );
2954
2994
  });
2955
- var DatePicker = (0, import_react21.forwardRef)((inProps, ref) => {
2995
+ var DatePicker = (0, import_react22.forwardRef)((inProps, ref) => {
2956
2996
  const props = (0, import_joy29.useThemeProps)({ props: inProps, name: "DatePicker" });
2957
2997
  const {
2958
2998
  onChange,
@@ -2979,29 +3019,29 @@ var DatePicker = (0, import_react21.forwardRef)((inProps, ref) => {
2979
3019
  presets,
2980
3020
  ...innerProps
2981
3021
  } = props;
2982
- const innerRef = (0, import_react21.useRef)(null);
2983
- const buttonRef = (0, import_react21.useRef)(null);
3022
+ const innerRef = (0, import_react22.useRef)(null);
3023
+ const buttonRef = (0, import_react22.useRef)(null);
2984
3024
  const [rawValue, setValue] = useControlledState(
2985
3025
  props.value,
2986
3026
  props.defaultValue ?? null,
2987
- (0, import_react21.useCallback)(
3027
+ (0, import_react22.useCallback)(
2988
3028
  (value2) => onChange?.({ target: { name: props.name, value: value2 ?? "" } }),
2989
3029
  [props.name, onChange]
2990
3030
  )
2991
3031
  );
2992
3032
  const value = rawValue ?? "";
2993
3033
  const isAlphabeticDisplay = hasAlphabeticMonth(displayFormat);
2994
- const [displayValue, setDisplayValue] = (0, import_react21.useState)(
3034
+ const [displayValue, setDisplayValue] = (0, import_react22.useState)(
2995
3035
  () => value ? formatValueString(parseDate(value, format), displayFormat, locale) : ""
2996
3036
  );
2997
- const [anchorEl, setAnchorEl] = (0, import_react21.useState)(null);
3037
+ const [anchorEl, setAnchorEl] = (0, import_react22.useState)(null);
2998
3038
  const open = Boolean(anchorEl);
2999
- (0, import_react21.useEffect)(() => {
3039
+ (0, import_react22.useEffect)(() => {
3000
3040
  if (!anchorEl) {
3001
3041
  innerRef.current?.blur();
3002
3042
  }
3003
3043
  }, [anchorEl, innerRef]);
3004
- (0, import_react21.useEffect)(() => {
3044
+ (0, import_react22.useEffect)(() => {
3005
3045
  if (value === "") {
3006
3046
  setDisplayValue("");
3007
3047
  return;
@@ -3011,8 +3051,8 @@ var DatePicker = (0, import_react21.forwardRef)((inProps, ref) => {
3011
3051
  setDisplayValue(formattedValue);
3012
3052
  }
3013
3053
  }, [displayFormat, displayValue, format, locale, value]);
3014
- (0, import_react21.useImperativeHandle)(ref, () => innerRef.current, [innerRef]);
3015
- const handleChange = (0, import_react21.useCallback)(
3054
+ (0, import_react22.useImperativeHandle)(ref, () => innerRef.current, [innerRef]);
3055
+ const handleChange = (0, import_react22.useCallback)(
3016
3056
  (event) => {
3017
3057
  const value2 = event.target.value;
3018
3058
  setDisplayValue(value2 ? formatValueString(parseDate(value2, format), displayFormat, locale) : value2);
@@ -3020,7 +3060,7 @@ var DatePicker = (0, import_react21.forwardRef)((inProps, ref) => {
3020
3060
  },
3021
3061
  [displayFormat, format, locale, setValue]
3022
3062
  );
3023
- const handleDisplayInputChange = (0, import_react21.useCallback)(
3063
+ const handleDisplayInputChange = (0, import_react22.useCallback)(
3024
3064
  (event) => {
3025
3065
  if (event.target.value === "") {
3026
3066
  handleChange({
@@ -3045,7 +3085,7 @@ var DatePicker = (0, import_react21.forwardRef)((inProps, ref) => {
3045
3085
  },
3046
3086
  [displayFormat, format, handleChange, props.name]
3047
3087
  );
3048
- const handleCalendarToggle = (0, import_react21.useCallback)(
3088
+ const handleCalendarToggle = (0, import_react22.useCallback)(
3049
3089
  (event) => {
3050
3090
  setAnchorEl(anchorEl ? null : event.currentTarget);
3051
3091
  setTimeout(() => {
@@ -3054,7 +3094,7 @@ var DatePicker = (0, import_react21.forwardRef)((inProps, ref) => {
3054
3094
  },
3055
3095
  [anchorEl, setAnchorEl, innerRef]
3056
3096
  );
3057
- const handleInputMouseDown = (0, import_react21.useCallback)(
3097
+ const handleInputMouseDown = (0, import_react22.useCallback)(
3058
3098
  (event) => {
3059
3099
  if (inputReadOnly || isAlphabeticDisplay) {
3060
3100
  event.preventDefault();
@@ -3063,7 +3103,7 @@ var DatePicker = (0, import_react21.forwardRef)((inProps, ref) => {
3063
3103
  },
3064
3104
  [inputReadOnly, isAlphabeticDisplay, buttonRef]
3065
3105
  );
3066
- const handleInputClick = (0, import_react21.useCallback)(
3106
+ const handleInputClick = (0, import_react22.useCallback)(
3067
3107
  (event) => {
3068
3108
  if (inputReadOnly && !readOnly) {
3069
3109
  handleCalendarToggle(event);
@@ -3071,7 +3111,7 @@ var DatePicker = (0, import_react21.forwardRef)((inProps, ref) => {
3071
3111
  },
3072
3112
  [inputReadOnly, readOnly, handleCalendarToggle]
3073
3113
  );
3074
- const handlePresetClick = (0, import_react21.useCallback)(
3114
+ const handlePresetClick = (0, import_react22.useCallback)(
3075
3115
  (presetValue) => {
3076
3116
  handleChange({
3077
3117
  target: {
@@ -3083,7 +3123,7 @@ var DatePicker = (0, import_react21.forwardRef)((inProps, ref) => {
3083
3123
  },
3084
3124
  [handleChange, props.name]
3085
3125
  );
3086
- const isPresetDisabled = (0, import_react21.useCallback)(
3126
+ const isPresetDisabled = (0, import_react22.useCallback)(
3087
3127
  (presetValue) => {
3088
3128
  try {
3089
3129
  const date = parseDate(presetValue, format);
@@ -3100,7 +3140,7 @@ var DatePicker = (0, import_react21.forwardRef)((inProps, ref) => {
3100
3140
  },
3101
3141
  [format, minDate, maxDate, disableFuture, disablePast, shouldDisableDate]
3102
3142
  );
3103
- 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(
3143
+ 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(
3104
3144
  Input_default,
3105
3145
  {
3106
3146
  ...innerProps,
@@ -3127,7 +3167,7 @@ var DatePicker = (0, import_react21.forwardRef)((inProps, ref) => {
3127
3167
  }
3128
3168
  },
3129
3169
  sx: { width: "100%" },
3130
- endDecorator: /* @__PURE__ */ import_react21.default.createElement(
3170
+ endDecorator: /* @__PURE__ */ import_react22.default.createElement(
3131
3171
  CalendarButton,
3132
3172
  {
3133
3173
  ref: buttonRef,
@@ -3139,13 +3179,13 @@ var DatePicker = (0, import_react21.forwardRef)((inProps, ref) => {
3139
3179
  "aria-expanded": open,
3140
3180
  disabled
3141
3181
  },
3142
- /* @__PURE__ */ import_react21.default.createElement(import_CalendarToday.default, null)
3182
+ /* @__PURE__ */ import_react22.default.createElement(import_CalendarToday.default, null)
3143
3183
  ),
3144
3184
  label,
3145
3185
  helperText,
3146
3186
  readOnly: readOnly || inputReadOnly || isAlphabeticDisplay
3147
3187
  }
3148
- ), open && /* @__PURE__ */ import_react21.default.createElement(import_base3.ClickAwayListener, { onClickAway: () => setAnchorEl(null) }, /* @__PURE__ */ import_react21.default.createElement(
3188
+ ), open && /* @__PURE__ */ import_react22.default.createElement(import_base3.ClickAwayListener, { onClickAway: () => setAnchorEl(null) }, /* @__PURE__ */ import_react22.default.createElement(
3149
3189
  StyledPopper,
3150
3190
  {
3151
3191
  id: "date-picker-popper",
@@ -3164,7 +3204,7 @@ var DatePicker = (0, import_react21.forwardRef)((inProps, ref) => {
3164
3204
  "aria-label": "Calendar Tooltip",
3165
3205
  "aria-expanded": open
3166
3206
  },
3167
- /* @__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(
3207
+ /* @__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(
3168
3208
  Calendar_default,
3169
3209
  {
3170
3210
  value: value && !Number.isNaN(parseDate(value, format).getTime()) ? [parseDate(value, format), void 0] : void 0,
@@ -3184,14 +3224,14 @@ var DatePicker = (0, import_react21.forwardRef)((inProps, ref) => {
3184
3224
  shouldDisableDate: shouldDisableDate ? (date) => shouldDisableDate(formatValueString(date, format)) : void 0,
3185
3225
  locale
3186
3226
  }
3187
- ), !hideClearButton && /* @__PURE__ */ import_react21.default.createElement(
3227
+ ), !hideClearButton && /* @__PURE__ */ import_react22.default.createElement(
3188
3228
  DialogActions_default,
3189
3229
  {
3190
3230
  sx: {
3191
3231
  p: 1
3192
3232
  }
3193
3233
  },
3194
- /* @__PURE__ */ import_react21.default.createElement(
3234
+ /* @__PURE__ */ import_react22.default.createElement(
3195
3235
  Button_default,
3196
3236
  {
3197
3237
  size,
@@ -3209,9 +3249,9 @@ var DatePicker = (0, import_react21.forwardRef)((inProps, ref) => {
3209
3249
  },
3210
3250
  "Clear"
3211
3251
  )
3212
- )), presets && presets.length > 0 && /* @__PURE__ */ import_react21.default.createElement(PresetPanel, null, presets.map((preset) => {
3252
+ )), presets && presets.length > 0 && /* @__PURE__ */ import_react22.default.createElement(PresetPanel, null, presets.map((preset) => {
3213
3253
  const disabled2 = isPresetDisabled(preset.value);
3214
- return /* @__PURE__ */ import_react21.default.createElement(
3254
+ return /* @__PURE__ */ import_react22.default.createElement(
3215
3255
  PresetItem,
3216
3256
  {
3217
3257
  key: preset.label,
@@ -3232,11 +3272,11 @@ var DatePicker = (0, import_react21.forwardRef)((inProps, ref) => {
3232
3272
  var DatePicker_default = DatePicker;
3233
3273
 
3234
3274
  // src/components/Textarea/Textarea.tsx
3235
- var import_react22 = __toESM(require("react"));
3275
+ var import_react23 = __toESM(require("react"));
3236
3276
  var import_joy30 = require("@mui/joy");
3237
3277
  var import_framer_motion19 = require("framer-motion");
3238
3278
  var MotionTextarea = (0, import_framer_motion19.motion)(import_joy30.Textarea);
3239
- var Textarea = (props) => {
3279
+ var TextareaBase = (props) => {
3240
3280
  const {
3241
3281
  label,
3242
3282
  error,
@@ -3252,7 +3292,7 @@ var Textarea = (props) => {
3252
3292
  className,
3253
3293
  ...innerProps
3254
3294
  } = props;
3255
- const textarea = /* @__PURE__ */ import_react22.default.createElement(
3295
+ const textarea = /* @__PURE__ */ import_react23.default.createElement(
3256
3296
  MotionTextarea,
3257
3297
  {
3258
3298
  required,
@@ -3264,7 +3304,7 @@ var Textarea = (props) => {
3264
3304
  ...innerProps
3265
3305
  }
3266
3306
  );
3267
- return /* @__PURE__ */ import_react22.default.createElement(
3307
+ return /* @__PURE__ */ import_react23.default.createElement(
3268
3308
  FormControl_default,
3269
3309
  {
3270
3310
  required,
@@ -3275,18 +3315,22 @@ var Textarea = (props) => {
3275
3315
  sx,
3276
3316
  className
3277
3317
  },
3278
- label && /* @__PURE__ */ import_react22.default.createElement(FormLabel_default, null, label),
3318
+ label && /* @__PURE__ */ import_react23.default.createElement(FormLabel_default, null, label),
3279
3319
  textarea,
3280
- helperText && /* @__PURE__ */ import_react22.default.createElement(FormHelperText_default, null, helperText)
3320
+ helperText && /* @__PURE__ */ import_react23.default.createElement(FormHelperText_default, null, helperText)
3281
3321
  );
3282
3322
  };
3323
+ var Textarea = import_react23.default.forwardRef((props, ref) => {
3324
+ const textareaSlotProps = useSlotRef(props.slotProps?.textarea, ref);
3325
+ return /* @__PURE__ */ import_react23.default.createElement(TextareaBase, { ...props, slotProps: { ...props.slotProps, textarea: textareaSlotProps } });
3326
+ });
3283
3327
  Textarea.displayName = "Textarea";
3284
3328
 
3285
3329
  // src/components/Textarea/index.ts
3286
3330
  var Textarea_default = Textarea;
3287
3331
 
3288
3332
  // src/components/Select/Select.tsx
3289
- var import_react23 = __toESM(require("react"));
3333
+ var import_react24 = __toESM(require("react"));
3290
3334
  var import_joy31 = require("@mui/joy");
3291
3335
  var import_framer_motion20 = require("framer-motion");
3292
3336
  var MotionOption = (0, import_framer_motion20.motion)(import_joy31.Option);
@@ -3297,7 +3341,7 @@ var secondaryTextLevelMap2 = {
3297
3341
  lg: "body-md"
3298
3342
  };
3299
3343
  Option.displayName = "Option";
3300
- function Select(props) {
3344
+ function SelectInner(props, ref) {
3301
3345
  const {
3302
3346
  label,
3303
3347
  helperText,
@@ -3323,7 +3367,7 @@ function Select(props) {
3323
3367
  formHelperText: formHelperTextProps,
3324
3368
  ...joySlotProps
3325
3369
  } = slotProps ?? {};
3326
- const options = (0, import_react23.useMemo)(
3370
+ const options = (0, import_react24.useMemo)(
3327
3371
  () => props.options.map((option) => {
3328
3372
  if (option.hasOwnProperty("value") && option.hasOwnProperty("label")) {
3329
3373
  return option;
@@ -3348,14 +3392,15 @@ function Select(props) {
3348
3392
  };
3349
3393
  onChange?.(newEvent, newValue);
3350
3394
  };
3351
- const optionMap = (0, import_react23.useMemo)(() => {
3395
+ const optionMap = (0, import_react24.useMemo)(() => {
3352
3396
  const map = /* @__PURE__ */ new Map();
3353
3397
  options.forEach((option) => {
3354
3398
  map.set(option.value, option);
3355
3399
  });
3356
3400
  return map;
3357
3401
  }, [options]);
3358
- const select = /* @__PURE__ */ import_react23.default.createElement(
3402
+ const buttonSlotProps = useSlotRef(joySlotProps.button, ref);
3403
+ const select = /* @__PURE__ */ import_react24.default.createElement(
3359
3404
  import_joy31.Select,
3360
3405
  {
3361
3406
  ...innerProps,
@@ -3363,7 +3408,7 @@ function Select(props) {
3363
3408
  disabled,
3364
3409
  size,
3365
3410
  color: error ? "danger" : color,
3366
- slotProps: joySlotProps,
3411
+ slotProps: { ...joySlotProps, button: buttonSlotProps },
3367
3412
  onChange: handleChange,
3368
3413
  renderValue: (selected) => {
3369
3414
  if (!selected) return null;
@@ -3373,9 +3418,9 @@ function Select(props) {
3373
3418
  return optionMap.get(selected.value)?.label;
3374
3419
  }
3375
3420
  },
3376
- 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))
3421
+ 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))
3377
3422
  );
3378
- return /* @__PURE__ */ import_react23.default.createElement(
3423
+ return /* @__PURE__ */ import_react24.default.createElement(
3379
3424
  FormControl_default,
3380
3425
  {
3381
3426
  required,
@@ -3388,11 +3433,12 @@ function Select(props) {
3388
3433
  className,
3389
3434
  ...formControlProps
3390
3435
  },
3391
- label && /* @__PURE__ */ import_react23.default.createElement(FormLabel_default, { ...formLabelProps }, label),
3436
+ label && /* @__PURE__ */ import_react24.default.createElement(FormLabel_default, { ...formLabelProps }, label),
3392
3437
  select,
3393
- helperText && /* @__PURE__ */ import_react23.default.createElement(FormHelperText_default, { ...formHelperTextProps }, helperText)
3438
+ helperText && /* @__PURE__ */ import_react24.default.createElement(FormHelperText_default, { ...formHelperTextProps }, helperText)
3394
3439
  );
3395
3440
  }
3441
+ var Select = import_react24.default.forwardRef(SelectInner);
3396
3442
  Select.displayName = "Select";
3397
3443
 
3398
3444
  // src/components/Select/index.ts
@@ -3402,7 +3448,7 @@ var Select_default = Select;
3402
3448
  var import_joy34 = require("@mui/joy");
3403
3449
 
3404
3450
  // src/components/InfoSign/InfoSign.tsx
3405
- var import_react24 = __toESM(require("react"));
3451
+ var import_react25 = __toESM(require("react"));
3406
3452
  var import_joy32 = require("@mui/joy");
3407
3453
  var import_Info = __toESM(require("@mui/icons-material/Info"));
3408
3454
  var InfoIcon = (0, import_joy32.styled)(import_Info.default, {
@@ -3415,7 +3461,7 @@ var InfoIcon = (0, import_joy32.styled)(import_Info.default, {
3415
3461
  }));
3416
3462
  function InfoSign(props) {
3417
3463
  const { message, placement } = props;
3418
- return /* @__PURE__ */ import_react24.default.createElement(
3464
+ return /* @__PURE__ */ import_react25.default.createElement(
3419
3465
  Tooltip_default,
3420
3466
  {
3421
3467
  arrow: true,
@@ -3425,9 +3471,9 @@ function InfoSign(props) {
3425
3471
  maxWidth: "320px"
3426
3472
  }
3427
3473
  },
3428
- title: message?.split("\n").map((line, i) => /* @__PURE__ */ import_react24.default.createElement("div", { key: `info-sign-${i}` }, line))
3474
+ title: message?.split("\n").map((line, i) => /* @__PURE__ */ import_react25.default.createElement("div", { key: `info-sign-${i}` }, line))
3429
3475
  },
3430
- /* @__PURE__ */ import_react24.default.createElement(InfoIcon, null)
3476
+ /* @__PURE__ */ import_react25.default.createElement(InfoIcon, null)
3431
3477
  );
3432
3478
  }
3433
3479
 
@@ -3440,9 +3486,9 @@ var TextEllipsis = ({
3440
3486
  lineClamp,
3441
3487
  ...rest
3442
3488
  }) => {
3443
- const textRef = (0, import_react25.useRef)(null);
3444
- const [showTooltip, setShowTooltip] = (0, import_react25.useState)(false);
3445
- (0, import_react25.useLayoutEffect)(() => {
3489
+ const textRef = (0, import_react26.useRef)(null);
3490
+ const [showTooltip, setShowTooltip] = (0, import_react26.useState)(false);
3491
+ (0, import_react26.useLayoutEffect)(() => {
3446
3492
  const element = textRef.current;
3447
3493
  if (!element) return;
3448
3494
  const checkTruncation = () => {
@@ -3454,21 +3500,21 @@ var TextEllipsis = ({
3454
3500
  ro.observe(element);
3455
3501
  return () => ro.disconnect();
3456
3502
  }, [children, lineClamp]);
3457
- return /* @__PURE__ */ import_react25.default.createElement(Tooltip_default, { title: showTooltip ? children : "", placement: "top" }, /* @__PURE__ */ import_react25.default.createElement(EllipsisDiv, { ref: textRef, lineClamp, ...rest }, children));
3503
+ return /* @__PURE__ */ import_react26.default.createElement(Tooltip_default, { title: showTooltip ? children : "", placement: "top" }, /* @__PURE__ */ import_react26.default.createElement(EllipsisDiv, { ref: textRef, lineClamp, ...rest }, children));
3458
3504
  };
3459
3505
  var CellTextEllipsis = ({ children }) => {
3460
- const textRef = (0, import_react25.useRef)(null);
3461
- const [showTooltip, setShowTooltip] = (0, import_react25.useState)(false);
3462
- (0, import_react25.useLayoutEffect)(() => {
3506
+ const textRef = (0, import_react26.useRef)(null);
3507
+ const [showTooltip, setShowTooltip] = (0, import_react26.useState)(false);
3508
+ (0, import_react26.useLayoutEffect)(() => {
3463
3509
  const element = textRef.current;
3464
3510
  if (element) {
3465
3511
  const isTextTruncated = element.scrollWidth > element.clientWidth;
3466
3512
  setShowTooltip(isTextTruncated);
3467
3513
  }
3468
3514
  }, [children]);
3469
- const content = /* @__PURE__ */ import_react25.default.createElement(EllipsisDiv, { ref: textRef }, children);
3515
+ const content = /* @__PURE__ */ import_react26.default.createElement(EllipsisDiv, { ref: textRef }, children);
3470
3516
  if (showTooltip) {
3471
- return /* @__PURE__ */ import_react25.default.createElement(
3517
+ return /* @__PURE__ */ import_react26.default.createElement(
3472
3518
  Tooltip_default,
3473
3519
  {
3474
3520
  title: children,
@@ -3507,34 +3553,32 @@ var HeadCell = (props) => {
3507
3553
  tableColRef,
3508
3554
  headerClassName,
3509
3555
  headerLineClamp,
3510
- onAutoFit
3556
+ onAutoFit,
3557
+ columnId
3511
3558
  } = props;
3512
3559
  const theme = (0, import_joy33.useTheme)();
3513
3560
  const ref = headerRef;
3514
3561
  const colRef = tableColRef;
3515
- const localRef = (0, import_react25.useRef)(null);
3516
- (0, import_react25.useLayoutEffect)(() => {
3562
+ const localRef = (0, import_react26.useRef)(null);
3563
+ (0, import_react26.useLayoutEffect)(() => {
3517
3564
  ref.current = localRef.current;
3518
3565
  }, [ref]);
3519
- const [isHovered, setIsHovered] = (0, import_react25.useState)(false);
3566
+ const [isHovered, setIsHovered] = (0, import_react26.useState)(false);
3520
3567
  const sortable = type === "actions" ? false : _sortable;
3521
- const headId = (0, import_react25.useMemo)(
3522
- () => `${tableId}_header_${headerName ?? field}`.trim(),
3523
- [tableId, headerName, field]
3524
- );
3525
- const isResizingRef = (0, import_react25.useRef)(false);
3526
- const resizer = (0, import_react25.useMemo)(
3568
+ const headId = (0, import_react26.useMemo)(() => getHeaderCellId(tableId, columnId ?? field), [tableId, columnId, field]);
3569
+ const isResizingRef = (0, import_react26.useRef)(false);
3570
+ const resizer = (0, import_react26.useMemo)(
3527
3571
  () => resizable ?? true ? Resizer(
3528
3572
  ref,
3529
3573
  colRef,
3530
3574
  (isResizing) => {
3531
3575
  isResizingRef.current = isResizing;
3532
3576
  },
3533
- onAutoFit ? () => onAutoFit(field) : void 0
3577
+ onAutoFit ? () => onAutoFit(columnId ?? String(field)) : void 0
3534
3578
  ) : null,
3535
- [resizable, ref, colRef, onAutoFit, field]
3579
+ [resizable, ref, colRef, onAutoFit, columnId, field]
3536
3580
  );
3537
- const style = (0, import_react25.useMemo)(
3581
+ const style = (0, import_react26.useMemo)(
3538
3582
  () => ({
3539
3583
  width,
3540
3584
  minWidth: minWidth ?? "50px",
@@ -3552,10 +3596,10 @@ var HeadCell = (props) => {
3552
3596
  );
3553
3597
  const textAlign = getTextAlign(props);
3554
3598
  const initialSort = sortOrder[0];
3555
- const sortIcon = (0, import_react25.useMemo)(() => {
3599
+ const sortIcon = (0, import_react26.useMemo)(() => {
3556
3600
  const isSorted = !!sort;
3557
3601
  const isVisible = sortable && (isSorted || isHovered);
3558
- return /* @__PURE__ */ import_react25.default.createElement(import_framer_motion21.AnimatePresence, { mode: "wait" }, isVisible && /* @__PURE__ */ import_react25.default.createElement(
3602
+ return /* @__PURE__ */ import_react26.default.createElement(import_framer_motion21.AnimatePresence, { mode: "wait" }, isVisible && /* @__PURE__ */ import_react26.default.createElement(
3559
3603
  MotionSortIcon,
3560
3604
  {
3561
3605
  key: "sort-icon",
@@ -3583,21 +3627,21 @@ var HeadCell = (props) => {
3583
3627
  }
3584
3628
  ));
3585
3629
  }, [headId, initialSort, sort, sortable, isHovered]);
3586
- const infoSign = (0, import_react25.useMemo)(
3587
- () => description ? /* @__PURE__ */ import_react25.default.createElement(InfoSign_default, { message: description, placement: "bottom" }) : null,
3630
+ const infoSign = (0, import_react26.useMemo)(
3631
+ () => description ? /* @__PURE__ */ import_react26.default.createElement(InfoSign_default, { message: description, placement: "bottom" }) : null,
3588
3632
  [description]
3589
3633
  );
3590
- const params = (0, import_react25.useMemo)(
3634
+ const params = (0, import_react26.useMemo)(
3591
3635
  () => ({
3592
3636
  field
3593
3637
  }),
3594
3638
  [field]
3595
3639
  );
3596
- const computedHeaderClassName = (0, import_react25.useMemo)(
3640
+ const computedHeaderClassName = (0, import_react26.useMemo)(
3597
3641
  () => (typeof headerClassName === "function" ? headerClassName(params) : headerClassName) || void 0,
3598
3642
  [headerClassName, params]
3599
3643
  );
3600
- return /* @__PURE__ */ import_react25.default.createElement(
3644
+ return /* @__PURE__ */ import_react26.default.createElement(
3601
3645
  StyledTh,
3602
3646
  {
3603
3647
  id: headId,
@@ -3606,7 +3650,7 @@ var HeadCell = (props) => {
3606
3650
  ref: localRef,
3607
3651
  key: field,
3608
3652
  style,
3609
- onClick: (0, import_react25.useCallback)(
3653
+ onClick: (0, import_react26.useCallback)(
3610
3654
  (e) => {
3611
3655
  if (isResizingRef.current) return;
3612
3656
  if (!(e.target instanceof Element) || !e.currentTarget.contains(e.target)) return;
@@ -3620,7 +3664,7 @@ var HeadCell = (props) => {
3620
3664
  initial: "initial",
3621
3665
  className: computedHeaderClassName
3622
3666
  },
3623
- /* @__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),
3667
+ /* @__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),
3624
3668
  resizer
3625
3669
  );
3626
3670
  };
@@ -3645,9 +3689,9 @@ var BodyCell = (props) => {
3645
3689
  onCellEditStop
3646
3690
  } = props;
3647
3691
  const theme = (0, import_joy33.useTheme)();
3648
- const [value, setValue] = (0, import_react25.useState)(row[field]);
3649
- const cellRef = (0, import_react25.useRef)(null);
3650
- const params = (0, import_react25.useMemo)(
3692
+ const [value, setValue] = (0, import_react26.useState)(row[field]);
3693
+ const cellRef = (0, import_react26.useRef)(null);
3694
+ const params = (0, import_react26.useMemo)(
3651
3695
  () => ({
3652
3696
  row,
3653
3697
  value,
@@ -3656,20 +3700,20 @@ var BodyCell = (props) => {
3656
3700
  }),
3657
3701
  [row, rowId, value, field]
3658
3702
  );
3659
- const editMode = (0, import_react25.useMemo)(
3703
+ const editMode = (0, import_react26.useMemo)(
3660
3704
  () => !!(props.editMode && (typeof isCellEditable === "function" ? isCellEditable(params) : isCellEditable ?? true)),
3661
3705
  [props.editMode, isCellEditable, params]
3662
3706
  );
3663
3707
  const propsComponentProps = "componentProps" in props ? props.componentProps : null;
3664
3708
  const hasComponentProps = "componentProps" in props;
3665
- const componentProps = (0, import_react25.useMemo)(
3709
+ const componentProps = (0, import_react26.useMemo)(
3666
3710
  () => ({
3667
3711
  ...hasComponentProps && (typeof propsComponentProps === "function" ? propsComponentProps(params) : propsComponentProps || {}),
3668
3712
  size: "sm"
3669
3713
  }),
3670
3714
  [hasComponentProps, propsComponentProps, params]
3671
3715
  );
3672
- const editModeComponentProps = (0, import_react25.useMemo)(
3716
+ const editModeComponentProps = (0, import_react26.useMemo)(
3673
3717
  () => ({
3674
3718
  ...componentProps,
3675
3719
  onChange: (e) => {
@@ -3731,25 +3775,25 @@ var BodyCell = (props) => {
3731
3775
  }),
3732
3776
  [params, row, field, value, componentProps, type, onCellEditStop, onCellEditStart]
3733
3777
  );
3734
- const MemoizedRenderEditCell = (0, import_react25.useMemo)(() => renderEditCell ? (0, import_react25.memo)(renderEditCell) : null, [renderEditCell]);
3735
- const MemoizedRenderCell = (0, import_react25.useMemo)(() => renderCell ? (0, import_react25.memo)(renderCell) : null, [renderCell]);
3736
- const EditModeComponent = (0, import_react25.useMemo)(() => {
3778
+ const MemoizedRenderEditCell = (0, import_react26.useMemo)(() => renderEditCell ? (0, import_react26.memo)(renderEditCell) : null, [renderEditCell]);
3779
+ const MemoizedRenderCell = (0, import_react26.useMemo)(() => renderCell ? (0, import_react26.memo)(renderCell) : null, [renderCell]);
3780
+ const EditModeComponent = (0, import_react26.useMemo)(() => {
3737
3781
  if (MemoizedRenderEditCell) {
3738
- return (0, import_react25.createElement)(MemoizedRenderEditCell, params);
3782
+ return (0, import_react26.createElement)(MemoizedRenderEditCell, params);
3739
3783
  }
3740
3784
  return {
3741
- date: /* @__PURE__ */ import_react25.default.createElement(DatePicker_default, { value, ...editModeComponentProps }),
3742
- currency: /* @__PURE__ */ import_react25.default.createElement(
3785
+ date: /* @__PURE__ */ import_react26.default.createElement(DatePicker_default, { value, ...editModeComponentProps }),
3786
+ currency: /* @__PURE__ */ import_react26.default.createElement(
3743
3787
  CurrencyInput_default,
3744
3788
  {
3745
3789
  value,
3746
3790
  ...editModeComponentProps
3747
3791
  }
3748
3792
  ),
3749
- number: /* @__PURE__ */ import_react25.default.createElement(Input_default, { value, type: "number", ...editModeComponentProps }),
3750
- text: /* @__PURE__ */ import_react25.default.createElement(Input_default, { value, type: "text", ...editModeComponentProps }),
3751
- longText: /* @__PURE__ */ import_react25.default.createElement(Textarea_default, { value, ...editModeComponentProps }),
3752
- autocomplete: /* @__PURE__ */ import_react25.default.createElement(
3793
+ number: /* @__PURE__ */ import_react26.default.createElement(Input_default, { value, type: "number", ...editModeComponentProps }),
3794
+ text: /* @__PURE__ */ import_react26.default.createElement(Input_default, { value, type: "text", ...editModeComponentProps }),
3795
+ longText: /* @__PURE__ */ import_react26.default.createElement(Textarea_default, { value, ...editModeComponentProps }),
3796
+ autocomplete: /* @__PURE__ */ import_react26.default.createElement(
3753
3797
  Autocomplete_default,
3754
3798
  {
3755
3799
  value,
@@ -3757,7 +3801,7 @@ var BodyCell = (props) => {
3757
3801
  ...editModeComponentProps
3758
3802
  }
3759
3803
  ),
3760
- select: /* @__PURE__ */ import_react25.default.createElement(
3804
+ select: /* @__PURE__ */ import_react26.default.createElement(
3761
3805
  Select_default,
3762
3806
  {
3763
3807
  value,
@@ -3768,13 +3812,13 @@ var BodyCell = (props) => {
3768
3812
  }[type || "text"];
3769
3813
  }, [value, editModeComponentProps, type, MemoizedRenderEditCell, params]);
3770
3814
  const linkComponentFromProps = props.component;
3771
- const ReadModeComponent = (0, import_react25.useMemo)(() => {
3815
+ const ReadModeComponent = (0, import_react26.useMemo)(() => {
3772
3816
  if (MemoizedRenderCell) {
3773
- return (0, import_react25.createElement)(MemoizedRenderCell, params);
3817
+ return (0, import_react26.createElement)(MemoizedRenderCell, params);
3774
3818
  }
3775
3819
  const innerText = value;
3776
3820
  const typedComponent = {
3777
- link: import_react25.default.createElement(linkComponentFromProps || import_joy34.Link, {
3821
+ link: import_react26.default.createElement(linkComponentFromProps || import_joy34.Link, {
3778
3822
  children: innerText,
3779
3823
  ...componentProps
3780
3824
  })
@@ -3782,27 +3826,27 @@ var BodyCell = (props) => {
3782
3826
  return typedComponent || innerText;
3783
3827
  }, [value, MemoizedRenderCell, params, type, componentProps, linkComponentFromProps]);
3784
3828
  const getActions = props.getActions;
3785
- const CellComponent = (0, import_react25.useMemo)(() => {
3829
+ const CellComponent = (0, import_react26.useMemo)(() => {
3786
3830
  if (type === "actions") {
3787
- return /* @__PURE__ */ import_react25.default.createElement(Stack_default, { direction: "row", gap: 1, justifyContent: "center", alignItems: "center" }, getActions?.(params));
3831
+ return /* @__PURE__ */ import_react26.default.createElement(Stack_default, { direction: "row", gap: 1, justifyContent: "center", alignItems: "center" }, getActions?.(params));
3788
3832
  }
3789
3833
  return editMode && EditModeComponent ? EditModeComponent : ReadModeComponent;
3790
3834
  }, [type, getActions, params, editMode, EditModeComponent, ReadModeComponent]);
3791
- const showTooltip = (0, import_react25.useMemo)(() => noWrap && type === "longText", [noWrap, type]);
3835
+ const showTooltip = (0, import_react26.useMemo)(() => noWrap && type === "longText", [noWrap, type]);
3792
3836
  const isBoundary = props.isLastStartPinnedColumn || props.isLastEndPinnedColumn;
3793
- const computedCellClassName = (0, import_react25.useMemo)(
3837
+ const computedCellClassName = (0, import_react26.useMemo)(
3794
3838
  () => (typeof cellClassName === "function" ? cellClassName(params) : cellClassName) || "",
3795
3839
  [cellClassName, params]
3796
3840
  );
3797
- (0, import_react25.useEffect)(() => {
3841
+ (0, import_react26.useEffect)(() => {
3798
3842
  setValue(row[field]);
3799
3843
  }, [row, field]);
3800
- return /* @__PURE__ */ import_react25.default.createElement(
3844
+ return /* @__PURE__ */ import_react26.default.createElement(
3801
3845
  StyledTd,
3802
3846
  {
3803
3847
  ref: cellRef,
3804
3848
  key: field,
3805
- headers: `${tableId}_header_${props.headerName ?? field}`,
3849
+ headers: getHeaderCellId(tableId, props.columnId ?? field),
3806
3850
  sx: {
3807
3851
  textAlign: getTextAlign({ type }),
3808
3852
  verticalAlign: editMode ? "top" : "middle",
@@ -3814,16 +3858,16 @@ var BodyCell = (props) => {
3814
3858
  },
3815
3859
  className: [isLastStartPinnedColumn && "is-last-left", isLastEndPinnedColumn && "is-last-right", computedCellClassName].filter(Boolean).join(" ") || ""
3816
3860
  },
3817
- (0, import_react25.useMemo)(
3818
- () => showTooltip ? /* @__PURE__ */ import_react25.default.createElement(CellTextEllipsis, null, CellComponent) : CellComponent,
3861
+ (0, import_react26.useMemo)(
3862
+ () => showTooltip ? /* @__PURE__ */ import_react26.default.createElement(CellTextEllipsis, null, CellComponent) : CellComponent,
3819
3863
  [CellComponent, showTooltip]
3820
3864
  )
3821
3865
  );
3822
3866
  };
3823
- var BodyRow = (0, import_react25.memo)(
3867
+ var BodyRow = (0, import_react26.memo)(
3824
3868
  (props) => {
3825
3869
  const { tableId, columns, rowId, editMode, noWrap, row } = props;
3826
- return /* @__PURE__ */ import_react25.default.createElement(import_react25.default.Fragment, null, columns.map((column, i) => /* @__PURE__ */ import_react25.default.createElement(
3870
+ return /* @__PURE__ */ import_react26.default.createElement(import_react26.default.Fragment, null, columns.map((column, i) => /* @__PURE__ */ import_react26.default.createElement(
3827
3871
  BodyCell,
3828
3872
  {
3829
3873
  key: `${rowId}_${column.field.toString()}_${i}`,
@@ -3856,7 +3900,7 @@ var StyledTableRow2 = (0, import_joy33.styled)("tr", {
3856
3900
  }
3857
3901
  }
3858
3902
  }));
3859
- var VirtualizedTableRow = (0, import_react25.memo)(StyledTableRow2, (prevProps, nextProps) => {
3903
+ var VirtualizedTableRow = (0, import_react26.memo)(StyledTableRow2, (prevProps, nextProps) => {
3860
3904
  return prevProps.striped === nextProps.striped && prevProps.style?.height === nextProps.style?.height && prevProps.style?.transform === nextProps.style?.transform && // @ts-ignore
3861
3905
  prevProps["data-row-id"] === nextProps["data-row-id"] && // @ts-ignore
3862
3906
  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)
@@ -3867,36 +3911,46 @@ var VirtualizedTableRow = (0, import_react25.memo)(StyledTableRow2, (prevProps,
3867
3911
  });
3868
3912
 
3869
3913
  // src/components/DataTable/hooks.ts
3870
- var import_react26 = require("react");
3871
- function useColumnWidths(columnsByField) {
3872
- const [widths, setWidths] = (0, import_react26.useState)({});
3873
- const roRef = (0, import_react26.useRef)();
3874
- (0, import_react26.useLayoutEffect)(() => {
3914
+ var import_react27 = require("react");
3915
+ function useColumnWidths(columnsById) {
3916
+ const [widths, setWidths] = (0, import_react27.useState)({});
3917
+ const roRef = (0, import_react27.useRef)();
3918
+ (0, import_react27.useLayoutEffect)(() => {
3875
3919
  if (roRef.current) roRef.current.disconnect();
3876
3920
  roRef.current = new ResizeObserver((entries) => {
3877
- let changed = false;
3878
3921
  setWidths((prev) => {
3922
+ let changed = false;
3879
3923
  const next = { ...prev };
3880
3924
  entries.forEach((entry) => {
3881
- const field = entry.target.dataset.field;
3925
+ const columnId = entry.target.dataset.hdsColumnId;
3882
3926
  const w = Math.round(entry.target.getBoundingClientRect().width);
3883
- if (next[field] !== w) {
3884
- next[field] = w;
3927
+ if (w === 0) return;
3928
+ if (next[columnId] !== w) {
3929
+ next[columnId] = w;
3885
3930
  changed = true;
3886
3931
  }
3887
3932
  });
3888
3933
  return changed ? next : prev;
3889
3934
  });
3890
3935
  });
3891
- Object.entries(columnsByField).forEach(([field, def]) => {
3936
+ const measured = {};
3937
+ Object.entries(columnsById).forEach(([columnId, def]) => {
3892
3938
  const el = def.headerRef.current;
3893
3939
  if (el) {
3894
- el.dataset.field = field;
3940
+ el.dataset.hdsColumnId = columnId;
3941
+ el.dataset.field = String(def.field);
3942
+ const w = Math.round(el.getBoundingClientRect().width);
3943
+ if (w > 0) measured[columnId] = w;
3895
3944
  roRef.current.observe(el);
3896
3945
  }
3897
3946
  });
3947
+ setWidths((prev) => {
3948
+ const keys = Object.keys(measured);
3949
+ const same = keys.length === Object.keys(prev).length && keys.every((key) => prev[key] === measured[key]);
3950
+ return same ? prev : measured;
3951
+ });
3898
3952
  return () => roRef.current?.disconnect();
3899
- }, [columnsByField]);
3953
+ }, [columnsById]);
3900
3954
  return widths;
3901
3955
  }
3902
3956
  function useDataTableRenderer({
@@ -3928,33 +3982,33 @@ function useDataTableRenderer({
3928
3982
  "You cannot use both `pinnedColumns` and `columnGroupingModel` at the same time. Please choose one of them."
3929
3983
  );
3930
3984
  }
3931
- const onSelectionModelChangeRef = (0, import_react26.useRef)(onSelectionModelChange);
3985
+ const onSelectionModelChangeRef = (0, import_react27.useRef)(onSelectionModelChange);
3932
3986
  onSelectionModelChangeRef.current = onSelectionModelChange;
3933
- const [focusedRowId, setFocusedRowId] = (0, import_react26.useState)(null);
3934
- const [selectionAnchor, setSelectionAnchor] = (0, import_react26.useState)(null);
3987
+ const [focusedRowId, setFocusedRowId] = (0, import_react27.useState)(null);
3988
+ const [selectionAnchor, setSelectionAnchor] = (0, import_react27.useState)(null);
3935
3989
  const [sortModel, setSortModel] = useControlledState(
3936
3990
  controlledSortModel,
3937
3991
  initialState?.sorting?.sortModel ?? [],
3938
- (0, import_react26.useCallback)((sortModel2) => onSortModelChange?.(sortModel2), [onSortModelChange])
3992
+ (0, import_react27.useCallback)((sortModel2) => onSortModelChange?.(sortModel2), [onSortModelChange])
3939
3993
  );
3940
3994
  const [visibilityModel] = useControlledState(
3941
3995
  columnVisibilityModel,
3942
3996
  initialState?.columns?.columnVisibilityModel ?? {},
3943
- (0, import_react26.useCallback)(
3997
+ (0, import_react27.useCallback)(
3944
3998
  (model) => onColumnVisibilityModelChange?.(model),
3945
3999
  [onColumnVisibilityModelChange]
3946
4000
  )
3947
4001
  );
3948
- const reorderedColumns = (0, import_react26.useMemo)(() => {
4002
+ const reorderedColumns = (0, import_react27.useMemo)(() => {
3949
4003
  if (!columnGroupingModel) return columnsProp;
3950
4004
  return reorderColumnsByGroupingModel(columnsProp, columnGroupingModel);
3951
4005
  }, [columnsProp, columnGroupingModel]);
3952
- const visibleColumns = (0, import_react26.useMemo)(
4006
+ const visibleColumns = (0, import_react27.useMemo)(
3953
4007
  () => reorderedColumns.filter((col) => visibilityModel[col.field] !== false),
3954
4008
  [reorderedColumns, visibilityModel]
3955
4009
  );
3956
- const visibleFieldSet = (0, import_react26.useMemo)(() => new Set(visibleColumns.map((c) => c.field)), [visibleColumns]);
3957
- const tableMinWidth = (0, import_react26.useMemo)(() => {
4010
+ const visibleFieldSet = (0, import_react27.useMemo)(() => new Set(visibleColumns.map((c) => c.field)), [visibleColumns]);
4011
+ const tableMinWidth = (0, import_react27.useMemo)(() => {
3958
4012
  const DEFAULT_MIN = 50;
3959
4013
  let total = checkboxSelection ? 40 : 0;
3960
4014
  for (const col of visibleColumns) {
@@ -3962,7 +4016,7 @@ function useDataTableRenderer({
3962
4016
  }
3963
4017
  return total;
3964
4018
  }, [visibleColumns, checkboxSelection]);
3965
- const allColumnsByField = (0, import_react26.useMemo)(
4019
+ const allColumnsByField = (0, import_react27.useMemo)(
3966
4020
  () => reorderedColumns.reduce(
3967
4021
  (acc, curr) => ({
3968
4022
  ...acc,
@@ -3972,21 +4026,42 @@ function useDataTableRenderer({
3972
4026
  ),
3973
4027
  [reorderedColumns]
3974
4028
  );
3975
- const visibleColumnsByField = (0, import_react26.useMemo)(
3976
- () => visibleColumns.reduce(
3977
- (acc, curr) => ({
3978
- ...acc,
3979
- [curr.field]: {
3980
- ...curr,
3981
- headerRef: (0, import_react26.createRef)(),
3982
- tableColRef: (0, import_react26.createRef)()
4029
+ const columnIdByColumn = (0, import_react27.useMemo)(() => {
4030
+ const taken = new Set(reorderedColumns.map((column) => String(column.field)));
4031
+ const assigned = /* @__PURE__ */ new Set();
4032
+ const ids = /* @__PURE__ */ new Map();
4033
+ reorderedColumns.forEach((column) => {
4034
+ const field = String(column.field);
4035
+ if (!assigned.has(field)) {
4036
+ assigned.add(field);
4037
+ ids.set(column, field);
4038
+ return;
4039
+ }
4040
+ let n = 2;
4041
+ while (taken.has(`${field}__${n}`)) n += 1;
4042
+ taken.add(`${field}__${n}`);
4043
+ ids.set(column, `${field}__${n}`);
4044
+ });
4045
+ return ids;
4046
+ }, [reorderedColumns]);
4047
+ const columnIds = (0, import_react27.useMemo)(
4048
+ () => visibleColumns.map((column) => columnIdByColumn.get(column) ?? String(column.field)),
4049
+ [visibleColumns, columnIdByColumn]
4050
+ );
4051
+ const visibleColumnsById = (0, import_react27.useMemo)(
4052
+ () => Object.fromEntries(
4053
+ visibleColumns.map((column, index) => [
4054
+ columnIds[index],
4055
+ {
4056
+ ...column,
4057
+ headerRef: (0, import_react27.createRef)(),
4058
+ tableColRef: (0, import_react27.createRef)()
3983
4059
  }
3984
- }),
3985
- {}
4060
+ ])
3986
4061
  ),
3987
- [visibleColumns]
4062
+ [visibleColumns, columnIds]
3988
4063
  );
3989
- const sortComparator = (0, import_react26.useCallback)(
4064
+ const sortComparator = (0, import_react27.useCallback)(
3990
4065
  (rowA, rowB) => {
3991
4066
  for (const sort of sortModel) {
3992
4067
  const { field, sort: direction } = sort;
@@ -4015,33 +4090,33 @@ function useDataTableRenderer({
4015
4090
  },
4016
4091
  [sortModel, allColumnsByField]
4017
4092
  );
4018
- const rows = (0, import_react26.useMemo)(
4093
+ const rows = (0, import_react27.useMemo)(
4019
4094
  () => sortModel.length ? [..._rows].sort(sortComparator) : _rows,
4020
4095
  [_rows, sortModel, sortComparator]
4021
4096
  );
4022
- const sortOrder = (0, import_react26.useMemo)(
4097
+ const sortOrder = (0, import_react27.useMemo)(
4023
4098
  () => Array.from(new Set(_sortOrder || ["asc", "desc", null])),
4024
4099
  [_sortOrder]
4025
4100
  );
4026
- const [page, setPage] = (0, import_react26.useState)(paginationModel?.page || 1);
4101
+ const [page, setPage] = (0, import_react27.useState)(paginationModel?.page || 1);
4027
4102
  const pageSize = paginationModel?.pageSize || 20;
4028
- const getId = (0, import_react26.useCallback)(
4103
+ const getId = (0, import_react27.useCallback)(
4029
4104
  (row, index) => _getId?.(row) ?? row.id ?? `${(index || 0) + (page - 1) * pageSize}`,
4030
4105
  [_getId, page, pageSize]
4031
4106
  );
4032
- const selectedModelSet = (0, import_react26.useMemo)(() => new Set(selectionModel || []), [selectionModel]);
4033
- const dataInPage = (0, import_react26.useMemo)(
4107
+ const selectedModelSet = (0, import_react27.useMemo)(() => new Set(selectionModel || []), [selectionModel]);
4108
+ const dataInPage = (0, import_react27.useMemo)(
4034
4109
  () => !pagination || paginationMode === "server" ? rows : rows.slice((page - 1) * pageSize, (page - 1) * pageSize + pageSize),
4035
4110
  [rows, page, pageSize, paginationMode, pagination]
4036
4111
  );
4037
- const selectableDataInPage = (0, import_react26.useMemo)(
4112
+ const selectableDataInPage = (0, import_react27.useMemo)(
4038
4113
  () => dataInPage.filter((row, i) => {
4039
4114
  if (!isRowSelectable) return true;
4040
4115
  return isRowSelectable({ row, id: getId(row, i) });
4041
4116
  }),
4042
4117
  [dataInPage, isRowSelectable, getId]
4043
4118
  );
4044
- const handleRangeSelection = (0, import_react26.useCallback)(
4119
+ const handleRangeSelection = (0, import_react27.useCallback)(
4045
4120
  (anchor, targetIndex) => {
4046
4121
  const startIndex = Math.min(anchor.rowIndex, targetIndex);
4047
4122
  const endIndex = Math.max(anchor.rowIndex, targetIndex);
@@ -4064,51 +4139,60 @@ function useDataTableRenderer({
4064
4139
  },
4065
4140
  [dataInPage, getId, isRowSelectable, selectionModel, onSelectionModelChange]
4066
4141
  );
4067
- const isAllSelected = (0, import_react26.useMemo)(
4142
+ const isAllSelected = (0, import_react27.useMemo)(
4068
4143
  () => selectableDataInPage.length > 0 && selectableDataInPage.every((row, i) => selectedModelSet.has(getId(row, i))),
4069
4144
  [selectableDataInPage, selectedModelSet, getId]
4070
4145
  );
4071
4146
  const rowCount = totalRowsProp || rows.length;
4072
- const selectableRowCount = (0, import_react26.useMemo)(() => {
4147
+ const selectableRowCount = (0, import_react27.useMemo)(() => {
4073
4148
  if (!isRowSelectable) return rowCount;
4074
4149
  return rows.filter((row, i) => isRowSelectable({ row, id: getId(row, i) })).length;
4075
4150
  }, [rows, isRowSelectable, getId, rowCount]);
4076
- const isTotalSelected = (0, import_react26.useMemo)(
4151
+ const isTotalSelected = (0, import_react27.useMemo)(
4077
4152
  () => _isTotalSelected ?? (selectableRowCount > 0 && (selectionModel?.length || 0) === selectableRowCount),
4078
4153
  [_isTotalSelected, selectionModel, selectableRowCount]
4079
4154
  );
4080
- const columnWidths = useColumnWidths(visibleColumnsByField);
4081
- const getWidth = (0, import_react26.useCallback)(
4082
- (f) => columnWidths[f] ?? allColumnsByField[f]?.width ?? // Column prop 으로 지정된 width
4083
- allColumnsByField[f]?.minWidth ?? 0,
4084
- [columnWidths, allColumnsByField]
4155
+ const columnWidths = useColumnWidths(visibleColumnsById);
4156
+ const measuredWidthByField = (0, import_react27.useMemo)(
4157
+ () => Object.fromEntries(
4158
+ Object.entries(visibleColumnsById).map(([columnId, column]) => [column.field, columnWidths[columnId]])
4159
+ ),
4160
+ [visibleColumnsById, columnWidths]
4161
+ );
4162
+ const getWidth = (0, import_react27.useCallback)(
4163
+ // 반환값은 pinned offset으로 더해지므로 반드시 숫자여야 한다. width/minWidth는 '500px' 같은 문자열.
4164
+ (f) => measuredWidthByField[f] ?? parsePxValue(allColumnsByField[f]?.width) ?? // Column prop 으로 지정된 width
4165
+ parsePxValue(allColumnsByField[f]?.minWidth) ?? 0,
4166
+ [measuredWidthByField, allColumnsByField]
4085
4167
  );
4086
- const processedColumnGroups = (0, import_react26.useMemo)(() => {
4168
+ const processedColumnGroups = (0, import_react27.useMemo)(() => {
4087
4169
  if (!columnGroupingModel) return null;
4088
4170
  return calculateColumnGroups(columnGroupingModel, visibleColumns, visibleFieldSet);
4089
4171
  }, [columnGroupingModel, visibleColumns, visibleFieldSet]);
4090
- const effectivePinnedLeft = (0, import_react26.useMemo)(
4172
+ const effectivePinnedLeft = (0, import_react27.useMemo)(
4091
4173
  () => pinnedColumns?.left?.filter((f) => visibleFieldSet.has(f)),
4092
4174
  [pinnedColumns?.left, visibleFieldSet]
4093
4175
  );
4094
- const effectivePinnedRight = (0, import_react26.useMemo)(
4176
+ const effectivePinnedRight = (0, import_react27.useMemo)(
4095
4177
  () => pinnedColumns?.right?.filter((f) => visibleFieldSet.has(f)),
4096
4178
  [pinnedColumns?.right, visibleFieldSet]
4097
4179
  );
4098
4180
  const inferredFieldsKey = JSON.stringify(Object.keys(rows[0] || {}));
4099
- const inferredFields = (0, import_react26.useMemo)(() => JSON.parse(inferredFieldsKey), [inferredFieldsKey]);
4100
- const columns = (0, import_react26.useMemo)(() => {
4181
+ const inferredFields = (0, import_react27.useMemo)(() => JSON.parse(inferredFieldsKey), [inferredFieldsKey]);
4182
+ const columns = (0, import_react27.useMemo)(() => {
4101
4183
  const baseColumns = visibleColumns.length > 0 ? visibleColumns : reorderedColumns.length > 0 ? [] : inferredFields.map((key) => ({
4102
4184
  field: key
4103
4185
  }));
4104
- return baseColumns.map((column) => {
4186
+ return baseColumns.map((column, index) => {
4187
+ const columnId = columnIds[index] ?? String(column.field);
4105
4188
  const isLeftPinned = effectivePinnedLeft?.includes(column.field);
4106
4189
  const isRightPinned = effectivePinnedRight?.includes(column.field);
4107
4190
  const isPinned = isLeftPinned || isRightPinned;
4108
4191
  return {
4109
4192
  ...column,
4110
- headerRef: visibleColumnsByField[column.field]?.headerRef,
4111
- tableColRef: visibleColumnsByField[column.field]?.tableColRef,
4193
+ columnId,
4194
+ headerRef: visibleColumnsById[columnId]?.headerRef,
4195
+ tableColRef: visibleColumnsById[columnId]?.tableColRef,
4112
4196
  isCellEditable: editMode && (typeof column.isCellEditable === "function" ? column.isCellEditable : column.isCellEditable ?? true),
4113
4197
  sort: sortModel.find((sort) => sort.field === column.field)?.sort,
4114
4198
  sortOrder: allColumnsByField[column.field]?.sortOrder || sortOrder,
@@ -4125,21 +4209,22 @@ function useDataTableRenderer({
4125
4209
  inferredFields,
4126
4210
  effectivePinnedLeft,
4127
4211
  effectivePinnedRight,
4128
- visibleColumnsByField,
4212
+ columnIds,
4213
+ visibleColumnsById,
4129
4214
  allColumnsByField,
4130
4215
  editMode,
4131
4216
  sortModel,
4132
4217
  sortOrder,
4133
4218
  getWidth
4134
4219
  ]);
4135
- const handlePageChange = (0, import_react26.useCallback)(
4220
+ const handlePageChange = (0, import_react27.useCallback)(
4136
4221
  (newPage) => {
4137
4222
  setPage(newPage);
4138
4223
  onPaginationModelChange?.({ page: newPage, pageSize });
4139
4224
  },
4140
4225
  [onPaginationModelChange, pageSize]
4141
4226
  );
4142
- const handleSortChange = (0, import_react26.useCallback)(
4227
+ const handleSortChange = (0, import_react27.useCallback)(
4143
4228
  (props) => {
4144
4229
  const { field, currentSort, multiple } = props;
4145
4230
  const column = allColumnsByField[field];
@@ -4162,38 +4247,37 @@ function useDataTableRenderer({
4162
4247
  },
4163
4248
  [sortOrder, allColumnsByField, sortModel, setSortModel]
4164
4249
  );
4165
- (0, import_react26.useEffect)(() => {
4250
+ (0, import_react27.useEffect)(() => {
4166
4251
  if (!paginationModel) {
4167
4252
  handlePageChange(1);
4168
4253
  }
4169
4254
  }, [rowCount, handlePageChange, paginationModel]);
4170
- (0, import_react26.useEffect)(() => {
4255
+ (0, import_react27.useEffect)(() => {
4171
4256
  const lastPage = Math.max(1, Math.ceil(rowCount / pageSize));
4172
4257
  if (page > lastPage) {
4173
4258
  handlePageChange(lastPage);
4174
4259
  }
4175
4260
  }, [page, rowCount, pageSize, handlePageChange]);
4176
- (0, import_react26.useEffect)(() => {
4261
+ (0, import_react27.useEffect)(() => {
4177
4262
  onSelectionModelChangeRef.current?.([]);
4178
4263
  setSelectionAnchor(null);
4179
4264
  }, [page]);
4180
- const prevRowsRef = (0, import_react26.useRef)(_rows);
4181
- (0, import_react26.useEffect)(() => {
4265
+ const prevRowsRef = (0, import_react27.useRef)(_rows);
4266
+ (0, import_react27.useEffect)(() => {
4182
4267
  if (prevRowsRef.current !== _rows) {
4183
4268
  setSelectionAnchor(null);
4184
4269
  prevRowsRef.current = _rows;
4185
4270
  }
4186
4271
  }, [_rows]);
4187
- const handleAutoFit = (0, import_react26.useCallback)(
4188
- (field) => {
4189
- const colDef = visibleColumnsByField[field];
4272
+ const handleAutoFit = (0, import_react27.useCallback)(
4273
+ (columnId) => {
4274
+ const colDef = visibleColumnsById[columnId];
4190
4275
  if (!colDef?.headerRef.current) return;
4191
- const column = allColumnsByField[field];
4192
- const columnType = column && "type" in column ? column.type : void 0;
4276
+ const columnType = "type" in colDef ? colDef.type : void 0;
4193
4277
  if (columnType === "actions") return;
4194
4278
  const optimalWidth = computeAutoFitWidth({
4195
4279
  headerEl: colDef.headerRef.current,
4196
- field,
4280
+ field: colDef.field,
4197
4281
  dataInPage
4198
4282
  });
4199
4283
  if (optimalWidth == null) return;
@@ -4201,7 +4285,7 @@ function useDataTableRenderer({
4201
4285
  colDef.headerRef.current.style.width = widthPx;
4202
4286
  if (colDef.tableColRef.current) colDef.tableColRef.current.style.width = widthPx;
4203
4287
  },
4204
- [visibleColumnsByField, allColumnsByField, dataInPage]
4288
+ [visibleColumnsById, dataInPage]
4205
4289
  );
4206
4290
  return {
4207
4291
  rowCount,
@@ -4217,8 +4301,8 @@ function useDataTableRenderer({
4217
4301
  handleAutoFit,
4218
4302
  isAllSelected,
4219
4303
  isTotalSelected,
4220
- isSelectedRow: (0, import_react26.useCallback)((model) => selectedModelSet.has(model), [selectedModelSet]),
4221
- isRowSelectable: (0, import_react26.useCallback)(
4304
+ isSelectedRow: (0, import_react27.useCallback)((model) => selectedModelSet.has(model), [selectedModelSet]),
4305
+ isRowSelectable: (0, import_react27.useCallback)(
4222
4306
  (rowId, row) => {
4223
4307
  if (!isRowSelectable) return true;
4224
4308
  return isRowSelectable({ row, id: rowId });
@@ -4226,13 +4310,13 @@ function useDataTableRenderer({
4226
4310
  [isRowSelectable]
4227
4311
  ),
4228
4312
  focusedRowId,
4229
- onRowFocus: (0, import_react26.useCallback)((rowId) => {
4313
+ onRowFocus: (0, import_react27.useCallback)((rowId) => {
4230
4314
  setFocusedRowId(rowId);
4231
4315
  }, []),
4232
- onAllCheckboxChange: (0, import_react26.useCallback)(() => {
4316
+ onAllCheckboxChange: (0, import_react27.useCallback)(() => {
4233
4317
  onSelectionModelChange?.(isAllSelected ? [] : selectableDataInPage.map(getId));
4234
4318
  }, [isAllSelected, selectableDataInPage, onSelectionModelChange, getId]),
4235
- onCheckboxChange: (0, import_react26.useCallback)(
4319
+ onCheckboxChange: (0, import_react27.useCallback)(
4236
4320
  (event, selectedModel) => {
4237
4321
  const isShiftClick = "shiftKey" in event && event.shiftKey;
4238
4322
  const rowIndex = dataInPage.findIndex((row, i) => getId(row, i) === selectedModel);
@@ -4266,7 +4350,7 @@ function useDataTableRenderer({
4266
4350
  columns,
4267
4351
  tableMinWidth,
4268
4352
  processedColumnGroups,
4269
- onTotalSelect: (0, import_react26.useCallback)(() => {
4353
+ onTotalSelect: (0, import_react27.useCallback)(() => {
4270
4354
  const selectableRows = rows.filter((row, i) => {
4271
4355
  if (!isRowSelectable) return true;
4272
4356
  return isRowSelectable({ row, id: getId(row, i) });
@@ -4280,11 +4364,11 @@ function useDataTableRenderer({
4280
4364
  }
4281
4365
 
4282
4366
  // src/components/Table/Table.tsx
4283
- var import_react27 = __toESM(require("react"));
4367
+ var import_react28 = __toESM(require("react"));
4284
4368
  var import_joy35 = require("@mui/joy");
4285
4369
  var Table = (props) => {
4286
4370
  const { children, ...inheritProps } = props;
4287
- return /* @__PURE__ */ import_react27.default.createElement(import_joy35.Table, { ...inheritProps }, children);
4371
+ return /* @__PURE__ */ import_react28.default.createElement(import_joy35.Table, { ...inheritProps }, children);
4288
4372
  };
4289
4373
  Table.displayName = "Table";
4290
4374
  function TableHead(props) {
@@ -4295,7 +4379,7 @@ function TableHead(props) {
4295
4379
  slots: { checkbox: RenderCheckbox = Checkbox_default } = {},
4296
4380
  slotProps: { checkbox: checkboxProps = {} } = {}
4297
4381
  } = props;
4298
- return /* @__PURE__ */ import_react27.default.createElement("thead", null, /* @__PURE__ */ import_react27.default.createElement("tr", null, showCheckbox && /* @__PURE__ */ import_react27.default.createElement(
4382
+ return /* @__PURE__ */ import_react28.default.createElement("thead", null, /* @__PURE__ */ import_react28.default.createElement("tr", null, showCheckbox && /* @__PURE__ */ import_react28.default.createElement(
4299
4383
  "th",
4300
4384
  {
4301
4385
  style: {
@@ -4303,8 +4387,8 @@ function TableHead(props) {
4303
4387
  textAlign: "center"
4304
4388
  }
4305
4389
  },
4306
- /* @__PURE__ */ import_react27.default.createElement(RenderCheckbox, { onChange: onCheckboxChange, ...checkboxProps })
4307
- ), headCells.map((headCell) => /* @__PURE__ */ import_react27.default.createElement(
4390
+ /* @__PURE__ */ import_react28.default.createElement(RenderCheckbox, { onChange: onCheckboxChange, ...checkboxProps })
4391
+ ), headCells.map((headCell) => /* @__PURE__ */ import_react28.default.createElement(
4308
4392
  "th",
4309
4393
  {
4310
4394
  key: headCell.label,
@@ -4329,15 +4413,15 @@ function TableBody(props) {
4329
4413
  slots: { checkbox: RenderCheckbox = Checkbox_default } = {},
4330
4414
  slotProps: { checkbox: checkboxProps = {} } = {}
4331
4415
  } = props;
4332
- 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(
4416
+ 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(
4333
4417
  "td",
4334
4418
  {
4335
4419
  style: {
4336
4420
  textAlign: "center"
4337
4421
  }
4338
4422
  },
4339
- /* @__PURE__ */ import_react27.default.createElement(RenderCheckbox, { onChange: (event) => onCheckboxChange?.(event, rowIndex), ...checkboxProps })
4340
- ), cellOrder.map((cellKey) => /* @__PURE__ */ import_react27.default.createElement(
4423
+ /* @__PURE__ */ import_react28.default.createElement(RenderCheckbox, { onChange: (event) => onCheckboxChange?.(event, rowIndex), ...checkboxProps })
4424
+ ), cellOrder.map((cellKey) => /* @__PURE__ */ import_react28.default.createElement(
4341
4425
  "td",
4342
4426
  {
4343
4427
  key: cellKey,
@@ -4351,7 +4435,7 @@ function TableBody(props) {
4351
4435
  TableBody.displayName = "TableBody";
4352
4436
 
4353
4437
  // src/components/Pagination/Pagination.tsx
4354
- var import_react28 = __toESM(require("react"));
4438
+ var import_react29 = __toESM(require("react"));
4355
4439
  var import_ChevronLeftRounded = __toESM(require("@mui/icons-material/ChevronLeftRounded"));
4356
4440
  var import_ChevronRightRounded = __toESM(require("@mui/icons-material/ChevronRightRounded"));
4357
4441
  var import_FirstPageRounded = __toESM(require("@mui/icons-material/FirstPageRounded"));
@@ -4421,7 +4505,7 @@ function Pagination(inProps) {
4421
4505
  const [paginationModel, setPaginationModel] = useControlledState(
4422
4506
  _paginationModel,
4423
4507
  defaultPaginationModel,
4424
- (0, import_react28.useCallback)(
4508
+ (0, import_react29.useCallback)(
4425
4509
  (newPage) => {
4426
4510
  onPageChange(newPage.page);
4427
4511
  },
@@ -4437,7 +4521,7 @@ function Pagination(inProps) {
4437
4521
  const afterPages = [paginationModel.page + 1, paginationModel.page + 2].filter((p) => p <= lastPage - 1);
4438
4522
  const isMoreAfterPages = lastPage > 1 && paginationModel.page < lastPage - 3;
4439
4523
  const isMoreBeforePages = lastPage > 1 && paginationModel.page > 4;
4440
- (0, import_react28.useEffect)(() => {
4524
+ (0, import_react29.useEffect)(() => {
4441
4525
  if (paginationModel.page > lastPage) {
4442
4526
  setPaginationModel({ ...paginationModel, page: lastPage });
4443
4527
  }
@@ -4447,7 +4531,7 @@ function Pagination(inProps) {
4447
4531
  value: `${i + 1}`
4448
4532
  }));
4449
4533
  if (variant === "compact") {
4450
- 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(
4534
+ 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(
4451
4535
  PaginationIconButton,
4452
4536
  {
4453
4537
  size,
@@ -4457,8 +4541,8 @@ function Pagination(inProps) {
4457
4541
  disabled: paginationModel.page === firstPage,
4458
4542
  "aria-label": "First page"
4459
4543
  },
4460
- /* @__PURE__ */ import_react28.default.createElement(import_FirstPageRounded.default, null)
4461
- ), /* @__PURE__ */ import_react28.default.createElement(
4544
+ /* @__PURE__ */ import_react29.default.createElement(import_FirstPageRounded.default, null)
4545
+ ), /* @__PURE__ */ import_react29.default.createElement(
4462
4546
  PaginationIconButton,
4463
4547
  {
4464
4548
  size,
@@ -4468,8 +4552,8 @@ function Pagination(inProps) {
4468
4552
  disabled: paginationModel.page === firstPage,
4469
4553
  "aria-label": "Previous page"
4470
4554
  },
4471
- /* @__PURE__ */ import_react28.default.createElement(import_ChevronLeftRounded.default, null)
4472
- )), /* @__PURE__ */ import_react28.default.createElement(
4555
+ /* @__PURE__ */ import_react29.default.createElement(import_ChevronLeftRounded.default, null)
4556
+ )), /* @__PURE__ */ import_react29.default.createElement(
4473
4557
  Autocomplete_default,
4474
4558
  {
4475
4559
  size,
@@ -4488,7 +4572,7 @@ function Pagination(inProps) {
4488
4572
  }[size]
4489
4573
  }
4490
4574
  }
4491
- ), /* @__PURE__ */ import_react28.default.createElement(
4575
+ ), /* @__PURE__ */ import_react29.default.createElement(
4492
4576
  Typography_default,
4493
4577
  {
4494
4578
  level: `body-${size}`,
@@ -4499,7 +4583,7 @@ function Pagination(inProps) {
4499
4583
  },
4500
4584
  "/ ",
4501
4585
  lastPage
4502
- ), /* @__PURE__ */ import_react28.default.createElement(Stack_default, { direction: "row" }, /* @__PURE__ */ import_react28.default.createElement(
4586
+ ), /* @__PURE__ */ import_react29.default.createElement(Stack_default, { direction: "row" }, /* @__PURE__ */ import_react29.default.createElement(
4503
4587
  PaginationIconButton,
4504
4588
  {
4505
4589
  size,
@@ -4509,8 +4593,8 @@ function Pagination(inProps) {
4509
4593
  disabled: paginationModel.page === lastPage,
4510
4594
  "aria-label": "Next page"
4511
4595
  },
4512
- /* @__PURE__ */ import_react28.default.createElement(import_ChevronRightRounded.default, null)
4513
- ), /* @__PURE__ */ import_react28.default.createElement(
4596
+ /* @__PURE__ */ import_react29.default.createElement(import_ChevronRightRounded.default, null)
4597
+ ), /* @__PURE__ */ import_react29.default.createElement(
4514
4598
  PaginationIconButton,
4515
4599
  {
4516
4600
  size,
@@ -4520,10 +4604,10 @@ function Pagination(inProps) {
4520
4604
  disabled: paginationModel.page === lastPage,
4521
4605
  "aria-label": "Last page"
4522
4606
  },
4523
- /* @__PURE__ */ import_react28.default.createElement(import_LastPageRounded.default, null)
4607
+ /* @__PURE__ */ import_react29.default.createElement(import_LastPageRounded.default, null)
4524
4608
  ))));
4525
4609
  }
4526
- return /* @__PURE__ */ import_react28.default.createElement(PaginationRoot, { ...innerProps }, /* @__PURE__ */ import_react28.default.createElement(PaginationContainer, { direction: "row", size, alignItems: "center" }, /* @__PURE__ */ import_react28.default.createElement(
4610
+ return /* @__PURE__ */ import_react29.default.createElement(PaginationRoot, { ...innerProps }, /* @__PURE__ */ import_react29.default.createElement(PaginationContainer, { direction: "row", size, alignItems: "center" }, /* @__PURE__ */ import_react29.default.createElement(
4527
4611
  PaginationIconButton,
4528
4612
  {
4529
4613
  size,
@@ -4533,8 +4617,8 @@ function Pagination(inProps) {
4533
4617
  disabled: paginationModel.page === firstPage,
4534
4618
  "aria-label": "Previous page"
4535
4619
  },
4536
- /* @__PURE__ */ import_react28.default.createElement(import_ChevronLeftRounded.default, null)
4537
- ), paginationModel.page !== firstPage && /* @__PURE__ */ import_react28.default.createElement(PaginationButton, { size, variant: "plain", color: "neutral", onClick: () => handlePageChange(firstPage) }, firstPage), isMoreBeforePages && /* @__PURE__ */ import_react28.default.createElement(
4620
+ /* @__PURE__ */ import_react29.default.createElement(import_ChevronLeftRounded.default, null)
4621
+ ), 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
4622
  PaginationButton,
4539
4623
  {
4540
4624
  size,
@@ -4544,7 +4628,7 @@ function Pagination(inProps) {
4544
4628
  "aria-label": "More previous pages"
4545
4629
  },
4546
4630
  "..."
4547
- ), 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: "true", 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(
4631
+ ), 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: "true", 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(
4548
4632
  PaginationButton,
4549
4633
  {
4550
4634
  size,
@@ -4554,7 +4638,7 @@ function Pagination(inProps) {
4554
4638
  onClick: () => handlePageChange(paginationModel.page + 3)
4555
4639
  },
4556
4640
  "..."
4557
- ), paginationModel.page !== lastPage && /* @__PURE__ */ import_react28.default.createElement(PaginationButton, { size, variant: "plain", color: "neutral", onClick: () => handlePageChange(lastPage) }, lastPage), /* @__PURE__ */ import_react28.default.createElement(
4641
+ ), paginationModel.page !== lastPage && /* @__PURE__ */ import_react29.default.createElement(PaginationButton, { size, variant: "plain", color: "neutral", onClick: () => handlePageChange(lastPage) }, lastPage), /* @__PURE__ */ import_react29.default.createElement(
4558
4642
  PaginationIconButton,
4559
4643
  {
4560
4644
  size,
@@ -4564,7 +4648,7 @@ function Pagination(inProps) {
4564
4648
  disabled: paginationModel.page === lastPage,
4565
4649
  "aria-label": "Next page"
4566
4650
  },
4567
- /* @__PURE__ */ import_react28.default.createElement(import_ChevronRightRounded.default, null)
4651
+ /* @__PURE__ */ import_react29.default.createElement(import_ChevronRightRounded.default, null)
4568
4652
  )));
4569
4653
  }
4570
4654
  Pagination.displayName = "Pagination";
@@ -4638,9 +4722,9 @@ function Component(props, apiRef) {
4638
4722
  isTotalSelected: ___________,
4639
4723
  ...innerProps
4640
4724
  } = props;
4641
- const tableId = (0, import_react29.useId)();
4642
- const parentRef = (0, import_react29.useRef)(null);
4643
- const tableBodyRef = (0, import_react29.useRef)(null);
4725
+ const tableId = (0, import_react30.useId)();
4726
+ const parentRef = (0, import_react30.useRef)(null);
4727
+ const tableBodyRef = (0, import_react30.useRef)(null);
4644
4728
  const {
4645
4729
  columns,
4646
4730
  processedColumnGroups,
@@ -4676,10 +4760,10 @@ function Component(props, apiRef) {
4676
4760
  measureElement: (element) => element.clientHeight,
4677
4761
  overscan: 10
4678
4762
  });
4679
- const paginationModel = (0, import_react29.useMemo)(() => ({ page, pageSize }), [page, pageSize]);
4763
+ const paginationModel = (0, import_react30.useMemo)(() => ({ page, pageSize }), [page, pageSize]);
4680
4764
  const columnsKey = getObjectVersion(columns);
4681
- const headerCheckboxElement = (0, import_react29.useMemo)(
4682
- () => /* @__PURE__ */ import_react29.default.createElement(
4765
+ const headerCheckboxElement = (0, import_react30.useMemo)(
4766
+ () => /* @__PURE__ */ import_react30.default.createElement(
4683
4767
  RenderCheckbox,
4684
4768
  {
4685
4769
  onChange: onAllCheckboxChange,
@@ -4704,20 +4788,20 @@ function Component(props, apiRef) {
4704
4788
  const showNoRowsOverlay = !loading && rowCount === 0;
4705
4789
  const showFillerColumn = columns.length > 0 && columns.every((c) => !!c.width);
4706
4790
  const totalColCount = Math.max(1, columns.length + (checkboxSelection ? 1 : 0) + (showFillerColumn ? 1 : 0));
4707
- const getRowClickHandler = (0, import_react29.useCallback)(
4791
+ const getRowClickHandler = (0, import_react30.useCallback)(
4708
4792
  (row, rowId) => (e) => {
4709
4793
  onRowClick?.({ row, rowId }, e);
4710
4794
  checkboxSelection && !disableSelectionOnClick && isRowSelectableCheck(rowId, row) && onCheckboxChange(e, rowId);
4711
4795
  },
4712
4796
  [onRowClick, checkboxSelection, disableSelectionOnClick, onCheckboxChange, isRowSelectableCheck]
4713
4797
  );
4714
- const getRowFocusHandler = (0, import_react29.useCallback)(
4798
+ const getRowFocusHandler = (0, import_react30.useCallback)(
4715
4799
  (rowId) => () => {
4716
4800
  onRowFocus(rowId);
4717
4801
  },
4718
4802
  [onRowFocus]
4719
4803
  );
4720
- const getCheckboxClickHandler = (0, import_react29.useCallback)(
4804
+ const getCheckboxClickHandler = (0, import_react30.useCallback)(
4721
4805
  (rowId, row) => (e) => {
4722
4806
  e.stopPropagation();
4723
4807
  if (isRowSelectableCheck(rowId, row)) {
@@ -4727,7 +4811,7 @@ function Component(props, apiRef) {
4727
4811
  },
4728
4812
  [onCheckboxChange, isRowSelectableCheck, onRowFocus]
4729
4813
  );
4730
- const handleTableKeyDown = (0, import_react29.useCallback)(
4814
+ const handleTableKeyDown = (0, import_react30.useCallback)(
4731
4815
  (e) => {
4732
4816
  const supportedKeys = ["ArrowUp", "ArrowDown", " ", "Home", "End", "PageUp", "PageDown"];
4733
4817
  if (!supportedKeys.includes(e.key)) return;
@@ -4817,7 +4901,7 @@ function Component(props, apiRef) {
4817
4901
  virtualizer
4818
4902
  ]
4819
4903
  );
4820
- (0, import_react29.useImperativeHandle)(apiRef, () => ({
4904
+ (0, import_react30.useImperativeHandle)(apiRef, () => ({
4821
4905
  getRowIndexRelativeToVisibleRows(rowId) {
4822
4906
  return dataInPage.findIndex((row) => String(getId(row)) === rowId);
4823
4907
  },
@@ -4833,7 +4917,7 @@ function Component(props, apiRef) {
4833
4917
  });
4834
4918
  }
4835
4919
  }));
4836
- return /* @__PURE__ */ import_react29.default.createElement(
4920
+ return /* @__PURE__ */ import_react30.default.createElement(
4837
4921
  Box_default,
4838
4922
  {
4839
4923
  sx: {
@@ -4843,7 +4927,7 @@ function Component(props, apiRef) {
4843
4927
  flexDirection: "column"
4844
4928
  }
4845
4929
  },
4846
- (!!checkboxSelection || !!Toolbar) && /* @__PURE__ */ import_react29.default.createElement(
4930
+ (!!checkboxSelection || !!Toolbar) && /* @__PURE__ */ import_react30.default.createElement(
4847
4931
  Stack_default,
4848
4932
  {
4849
4933
  direction: "row",
@@ -4853,10 +4937,10 @@ function Component(props, apiRef) {
4853
4937
  justifyContent: "space-between",
4854
4938
  alignItems: "center"
4855
4939
  },
4856
- !!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"))),
4857
- Toolbar && /* @__PURE__ */ import_react29.default.createElement(Toolbar, { ...toolbarProps || {} })
4940
+ !!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"))),
4941
+ Toolbar && /* @__PURE__ */ import_react30.default.createElement(Toolbar, { ...toolbarProps || {} })
4858
4942
  ),
4859
- /* @__PURE__ */ import_react29.default.createElement(
4943
+ /* @__PURE__ */ import_react30.default.createElement(
4860
4944
  Sheet_default,
4861
4945
  {
4862
4946
  variant: "outlined",
@@ -4877,24 +4961,24 @@ function Component(props, apiRef) {
4877
4961
  ref: parentRef,
4878
4962
  ...backgroundProps
4879
4963
  },
4880
- /* @__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(
4964
+ /* @__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(
4881
4965
  "col",
4882
4966
  {
4883
4967
  style: {
4884
4968
  width: "40px"
4885
4969
  }
4886
4970
  }
4887
- ), columns.map((c) => /* @__PURE__ */ import_react29.default.createElement(
4971
+ ), columns.map((c) => /* @__PURE__ */ import_react30.default.createElement(
4888
4972
  "col",
4889
4973
  {
4890
4974
  ref: c.tableColRef,
4891
- key: `${c.field.toString()}_${c.width}`,
4975
+ key: c.columnId,
4892
4976
  style: {
4893
4977
  width: c.width,
4894
4978
  minWidth: c.minWidth ?? "50px"
4895
4979
  }
4896
4980
  }
4897
- )), 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(
4981
+ )), 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(
4898
4982
  "th",
4899
4983
  {
4900
4984
  rowSpan: processedColumnGroups.maxLevel + 2,
@@ -4905,12 +4989,12 @@ function Component(props, apiRef) {
4905
4989
  }
4906
4990
  },
4907
4991
  headerCheckboxElement
4908
- ), 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) => {
4992
+ ), 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) => {
4909
4993
  const nextGroup = levelGroups[groupIndex + 1];
4910
4994
  const emptyCells = nextGroup ? nextGroup.startIndex - (group.startIndex + group.colspan) : columns.length - (group.startIndex + group.colspan);
4911
4995
  const params = { groupId: group.groupId };
4912
4996
  const computedHeaderClassName = group.headerClassName ? typeof group.headerClassName === "function" ? group.headerClassName(params) : group.headerClassName : void 0;
4913
- return /* @__PURE__ */ import_react29.default.createElement(import_react29.Fragment, { key: group.groupId }, /* @__PURE__ */ import_react29.default.createElement(
4997
+ return /* @__PURE__ */ import_react30.default.createElement(import_react30.Fragment, { key: group.groupId }, /* @__PURE__ */ import_react30.default.createElement(
4914
4998
  "th",
4915
4999
  {
4916
5000
  colSpan: group.colspan,
@@ -4922,14 +5006,14 @@ function Component(props, apiRef) {
4922
5006
  className: computedHeaderClassName
4923
5007
  },
4924
5008
  group.headerName ?? group.groupId
4925
- ), emptyCells > 0 && Array.from({ length: emptyCells }).map((_2, i) => /* @__PURE__ */ import_react29.default.createElement("th", { key: `empty-between-${level}-${groupIndex}-${i}`, colSpan: 1 })));
4926
- }), showFillerColumn && level === 0 && /* @__PURE__ */ import_react29.default.createElement(
5009
+ ), emptyCells > 0 && Array.from({ length: emptyCells }).map((_2, i) => /* @__PURE__ */ import_react30.default.createElement("th", { key: `empty-between-${level}-${groupIndex}-${i}`, colSpan: 1 })));
5010
+ }), showFillerColumn && level === 0 && /* @__PURE__ */ import_react30.default.createElement(
4927
5011
  "th",
4928
5012
  {
4929
5013
  "aria-hidden": "true",
4930
5014
  rowSpan: processedColumnGroups.maxLevel + 2
4931
5015
  }
4932
- ))), /* @__PURE__ */ import_react29.default.createElement("tr", null, (!processedColumnGroups || processedColumnGroups.groups.length === 0) && checkboxSelection && /* @__PURE__ */ import_react29.default.createElement(
5016
+ ))), /* @__PURE__ */ import_react30.default.createElement("tr", null, (!processedColumnGroups || processedColumnGroups.groups.length === 0) && checkboxSelection && /* @__PURE__ */ import_react30.default.createElement(
4933
5017
  "th",
4934
5018
  {
4935
5019
  style: {
@@ -4940,7 +5024,7 @@ function Component(props, apiRef) {
4940
5024
  headerCheckboxElement
4941
5025
  ), columns.map((c, i) => (
4942
5026
  // @ts-ignore
4943
- /* @__PURE__ */ import_react29.default.createElement(
5027
+ /* @__PURE__ */ import_react30.default.createElement(
4944
5028
  HeadCell2,
4945
5029
  {
4946
5030
  tableId,
@@ -4952,7 +5036,7 @@ function Component(props, apiRef) {
4952
5036
  ...c
4953
5037
  }
4954
5038
  )
4955
- )), showFillerColumn && (!processedColumnGroups || processedColumnGroups.groups.length === 0) && /* @__PURE__ */ import_react29.default.createElement("th", { "aria-hidden": "true" }))), /* @__PURE__ */ import_react29.default.createElement(
5039
+ )), showFillerColumn && (!processedColumnGroups || processedColumnGroups.groups.length === 0) && /* @__PURE__ */ import_react30.default.createElement("th", { "aria-hidden": "true" }))), /* @__PURE__ */ import_react30.default.createElement(
4956
5040
  VirtualizedTableBody,
4957
5041
  {
4958
5042
  ref: tableBodyRef,
@@ -4963,7 +5047,7 @@ function Component(props, apiRef) {
4963
5047
  role: "rowgroup",
4964
5048
  "aria-label": "DataTableBody"
4965
5049
  },
4966
- !!loading && /* @__PURE__ */ import_react29.default.createElement(OverlayWrapper, null, /* @__PURE__ */ import_react29.default.createElement(
5050
+ !!loading && /* @__PURE__ */ import_react30.default.createElement(OverlayWrapper, null, /* @__PURE__ */ import_react30.default.createElement(
4967
5051
  "td",
4968
5052
  {
4969
5053
  style: {
@@ -4972,7 +5056,7 @@ function Component(props, apiRef) {
4972
5056
  overflow: "visible"
4973
5057
  }
4974
5058
  },
4975
- /* @__PURE__ */ import_react29.default.createElement(
5059
+ /* @__PURE__ */ import_react30.default.createElement(
4976
5060
  Box_default,
4977
5061
  {
4978
5062
  sx: {
@@ -4982,10 +5066,10 @@ function Component(props, apiRef) {
4982
5066
  right: 0
4983
5067
  }
4984
5068
  },
4985
- /* @__PURE__ */ import_react29.default.createElement(LoadingOverlay, null)
5069
+ /* @__PURE__ */ import_react30.default.createElement(LoadingOverlay, null)
4986
5070
  )
4987
5071
  )),
4988
- showNoRowsOverlay && /* @__PURE__ */ import_react29.default.createElement("tr", null, /* @__PURE__ */ import_react29.default.createElement("td", { colSpan: totalColCount, style: { border: "none" } }, /* @__PURE__ */ import_react29.default.createElement(
5072
+ showNoRowsOverlay && /* @__PURE__ */ import_react30.default.createElement("tr", null, /* @__PURE__ */ import_react30.default.createElement("td", { colSpan: totalColCount, style: { border: "none" } }, /* @__PURE__ */ import_react30.default.createElement(
4989
5073
  Box_default,
4990
5074
  {
4991
5075
  sx: {
@@ -4995,14 +5079,14 @@ function Component(props, apiRef) {
4995
5079
  minHeight: "150px"
4996
5080
  }
4997
5081
  },
4998
- /* @__PURE__ */ import_react29.default.createElement(NoRowsOverlay, { ...noRowsOverlayProps })
5082
+ /* @__PURE__ */ import_react30.default.createElement(NoRowsOverlay, { ...noRowsOverlayProps })
4999
5083
  ))),
5000
5084
  virtualizedItems.map((virtualizedRow, index) => {
5001
5085
  const rowIndex = virtualizedRow.index;
5002
5086
  const row = dataInPage[rowIndex];
5003
5087
  const rowId = getId(row, rowIndex);
5004
5088
  const striped = stripe && (stripe === "even" && (rowIndex + 1) % 2 === 0 || stripe === "odd" && (rowIndex + 1) % 2 === 1);
5005
- return /* @__PURE__ */ import_react29.default.createElement(
5089
+ return /* @__PURE__ */ import_react30.default.createElement(
5006
5090
  VirtualizedTableRow,
5007
5091
  {
5008
5092
  key: virtualizedRow.key,
@@ -5022,7 +5106,7 @@ function Component(props, apiRef) {
5022
5106
  transform: `translateY(${virtualizedRow.start - index * virtualizedRow.size}px)`
5023
5107
  }
5024
5108
  },
5025
- checkboxSelection && /* @__PURE__ */ import_react29.default.createElement(
5109
+ checkboxSelection && /* @__PURE__ */ import_react30.default.createElement(
5026
5110
  "th",
5027
5111
  {
5028
5112
  scope: "row",
@@ -5030,7 +5114,7 @@ function Component(props, apiRef) {
5030
5114
  textAlign: "center"
5031
5115
  }
5032
5116
  },
5033
- /* @__PURE__ */ import_react29.default.createElement(
5117
+ /* @__PURE__ */ import_react30.default.createElement(
5034
5118
  RenderCheckbox,
5035
5119
  {
5036
5120
  onClick: getCheckboxClickHandler(rowId, row),
@@ -5041,7 +5125,7 @@ function Component(props, apiRef) {
5041
5125
  }
5042
5126
  )
5043
5127
  ),
5044
- /* @__PURE__ */ import_react29.default.createElement(
5128
+ /* @__PURE__ */ import_react30.default.createElement(
5045
5129
  BodyRow2,
5046
5130
  {
5047
5131
  tableId,
@@ -5052,12 +5136,12 @@ function Component(props, apiRef) {
5052
5136
  noWrap: props.noWrap
5053
5137
  }
5054
5138
  ),
5055
- showFillerColumn && /* @__PURE__ */ import_react29.default.createElement("td", { "aria-hidden": "true" })
5139
+ showFillerColumn && /* @__PURE__ */ import_react30.default.createElement("td", { "aria-hidden": "true" })
5056
5140
  );
5057
5141
  })
5058
- ), Footer && /* @__PURE__ */ import_react29.default.createElement(Footer, null))
5142
+ ), Footer && /* @__PURE__ */ import_react30.default.createElement(Footer, null))
5059
5143
  ),
5060
- pagination && /* @__PURE__ */ import_react29.default.createElement(
5144
+ pagination && /* @__PURE__ */ import_react30.default.createElement(
5061
5145
  Pagination_default,
5062
5146
  {
5063
5147
  pt: 2,
@@ -5070,11 +5154,11 @@ function Component(props, apiRef) {
5070
5154
  )
5071
5155
  );
5072
5156
  }
5073
- var DataTable = (0, import_react29.forwardRef)(Component);
5157
+ var DataTable = (0, import_react30.forwardRef)(Component);
5074
5158
  DataTable.displayName = "DataTable";
5075
5159
 
5076
5160
  // src/components/DateRangePicker/DateRangePicker.tsx
5077
- var import_react30 = __toESM(require("react"));
5161
+ var import_react31 = __toESM(require("react"));
5078
5162
  var import_react_imask2 = require("react-imask");
5079
5163
  var import_CalendarToday2 = __toESM(require("@mui/icons-material/CalendarToday"));
5080
5164
  var import_joy37 = require("@mui/joy");
@@ -5216,9 +5300,9 @@ var parseDates = (str, format) => {
5216
5300
  var formatToPattern2 = (format) => {
5217
5301
  return `${format} - ${format}`.replace(/YYYY/g, "Y").replace(/MM/g, "M").replace(/DD/g, "D").replace(/[^YMD\s]/g, (match) => `${match}\``);
5218
5302
  };
5219
- var TextMaskAdapter5 = import_react30.default.forwardRef(function TextMaskAdapter6(props, ref) {
5303
+ var TextMaskAdapter5 = import_react31.default.forwardRef(function TextMaskAdapter6(props, ref) {
5220
5304
  const { onChange, format, ...other } = props;
5221
- return /* @__PURE__ */ import_react30.default.createElement(
5305
+ return /* @__PURE__ */ import_react31.default.createElement(
5222
5306
  import_react_imask2.IMaskInput,
5223
5307
  {
5224
5308
  ...other,
@@ -5252,7 +5336,7 @@ var TextMaskAdapter5 = import_react30.default.forwardRef(function TextMaskAdapte
5252
5336
  }
5253
5337
  );
5254
5338
  });
5255
- var DateRangePicker = (0, import_react30.forwardRef)((inProps, ref) => {
5339
+ var DateRangePicker = (0, import_react31.forwardRef)((inProps, ref) => {
5256
5340
  const props = (0, import_joy37.useThemeProps)({ props: inProps, name: "DateRangePicker" });
5257
5341
  const {
5258
5342
  onChange,
@@ -5279,28 +5363,28 @@ var DateRangePicker = (0, import_react30.forwardRef)((inProps, ref) => {
5279
5363
  numberOfMonths,
5280
5364
  ...innerProps
5281
5365
  } = props;
5282
- const innerRef = (0, import_react30.useRef)(null);
5283
- const buttonRef = (0, import_react30.useRef)(null);
5366
+ const innerRef = (0, import_react31.useRef)(null);
5367
+ const buttonRef = (0, import_react31.useRef)(null);
5284
5368
  const [rawValue, setValue] = useControlledState(
5285
5369
  props.value,
5286
5370
  props.defaultValue ?? null,
5287
- (0, import_react30.useCallback)(
5371
+ (0, import_react31.useCallback)(
5288
5372
  (value2) => onChange?.({ target: { name: props.name, value: value2 ?? "" } }),
5289
5373
  [props.name, onChange]
5290
5374
  )
5291
5375
  );
5292
5376
  const value = rawValue ?? "";
5293
5377
  const isAlphabeticDisplay = hasAlphabeticMonth2(displayFormat);
5294
- const [displayValue, setDisplayValue] = (0, import_react30.useState)(
5378
+ const [displayValue, setDisplayValue] = (0, import_react31.useState)(
5295
5379
  () => value ? formatValueString2(parseDates(value, format), displayFormat, locale) : ""
5296
5380
  );
5297
- const [anchorEl, setAnchorEl] = (0, import_react30.useState)(null);
5381
+ const [anchorEl, setAnchorEl] = (0, import_react31.useState)(null);
5298
5382
  const open = Boolean(anchorEl);
5299
- const calendarValue = (0, import_react30.useMemo)(
5383
+ const calendarValue = (0, import_react31.useMemo)(
5300
5384
  () => value ? parseDates(value, format) : void 0,
5301
5385
  [value, format]
5302
5386
  );
5303
- (0, import_react30.useEffect)(() => {
5387
+ (0, import_react31.useEffect)(() => {
5304
5388
  if (value) {
5305
5389
  try {
5306
5390
  const dates = parseDates(value, format);
@@ -5312,13 +5396,13 @@ var DateRangePicker = (0, import_react30.forwardRef)((inProps, ref) => {
5312
5396
  setDisplayValue("");
5313
5397
  }
5314
5398
  }, [displayFormat, locale, value, format]);
5315
- (0, import_react30.useEffect)(() => {
5399
+ (0, import_react31.useEffect)(() => {
5316
5400
  if (!anchorEl) {
5317
5401
  innerRef.current?.blur();
5318
5402
  }
5319
5403
  }, [anchorEl, innerRef]);
5320
- (0, import_react30.useImperativeHandle)(ref, () => innerRef.current, [innerRef]);
5321
- const handleChange = (0, import_react30.useCallback)(
5404
+ (0, import_react31.useImperativeHandle)(ref, () => innerRef.current, [innerRef]);
5405
+ const handleChange = (0, import_react31.useCallback)(
5322
5406
  (event) => {
5323
5407
  const value2 = event.target.value;
5324
5408
  setDisplayValue(value2 ? formatValueString2(parseDates(value2, format), displayFormat, locale) : value2);
@@ -5326,7 +5410,7 @@ var DateRangePicker = (0, import_react30.forwardRef)((inProps, ref) => {
5326
5410
  },
5327
5411
  [displayFormat, format, locale, setValue]
5328
5412
  );
5329
- const handleDisplayInputChange = (0, import_react30.useCallback)(
5413
+ const handleDisplayInputChange = (0, import_react31.useCallback)(
5330
5414
  (event) => {
5331
5415
  if (event.target.value === "") {
5332
5416
  handleChange({
@@ -5351,14 +5435,14 @@ var DateRangePicker = (0, import_react30.forwardRef)((inProps, ref) => {
5351
5435
  },
5352
5436
  [displayFormat, format, handleChange, props.name]
5353
5437
  );
5354
- const handleCalendarToggle = (0, import_react30.useCallback)(
5438
+ const handleCalendarToggle = (0, import_react31.useCallback)(
5355
5439
  (event) => {
5356
5440
  setAnchorEl(anchorEl ? null : event.currentTarget);
5357
5441
  innerRef.current?.focus();
5358
5442
  },
5359
5443
  [anchorEl, setAnchorEl, innerRef]
5360
5444
  );
5361
- const handleCalendarChange = (0, import_react30.useCallback)(
5445
+ const handleCalendarChange = (0, import_react31.useCallback)(
5362
5446
  ([date1, date2]) => {
5363
5447
  if (!date1 || !date2) return;
5364
5448
  const formattedValue = formatValueString2([date1, date2], format);
@@ -5372,7 +5456,7 @@ var DateRangePicker = (0, import_react30.forwardRef)((inProps, ref) => {
5372
5456
  },
5373
5457
  [props.value, props.name, onChange, setValue, setAnchorEl, format, displayFormat, locale]
5374
5458
  );
5375
- const handleInputMouseDown = (0, import_react30.useCallback)(
5459
+ const handleInputMouseDown = (0, import_react31.useCallback)(
5376
5460
  (event) => {
5377
5461
  if (inputReadOnly || isAlphabeticDisplay) {
5378
5462
  event.preventDefault();
@@ -5381,7 +5465,7 @@ var DateRangePicker = (0, import_react30.forwardRef)((inProps, ref) => {
5381
5465
  },
5382
5466
  [inputReadOnly, isAlphabeticDisplay, buttonRef]
5383
5467
  );
5384
- const handleInputClick = (0, import_react30.useCallback)(
5468
+ const handleInputClick = (0, import_react31.useCallback)(
5385
5469
  (event) => {
5386
5470
  if (inputReadOnly && !readOnly) {
5387
5471
  handleCalendarToggle(event);
@@ -5389,7 +5473,7 @@ var DateRangePicker = (0, import_react30.forwardRef)((inProps, ref) => {
5389
5473
  },
5390
5474
  [inputReadOnly, readOnly, handleCalendarToggle]
5391
5475
  );
5392
- const handlePresetClick = (0, import_react30.useCallback)(
5476
+ const handlePresetClick = (0, import_react31.useCallback)(
5393
5477
  (presetValue) => {
5394
5478
  if (props.value !== void 0) {
5395
5479
  onChange?.({ target: { name: props.name, value: presetValue } });
@@ -5402,7 +5486,7 @@ var DateRangePicker = (0, import_react30.forwardRef)((inProps, ref) => {
5402
5486
  },
5403
5487
  [props.value, props.name, onChange, setValue, setAnchorEl, format, displayFormat, locale]
5404
5488
  );
5405
- const isPresetDisabled = (0, import_react30.useCallback)(
5489
+ const isPresetDisabled = (0, import_react31.useCallback)(
5406
5490
  (presetValue) => {
5407
5491
  try {
5408
5492
  const dates = parseDates(presetValue, format);
@@ -5421,7 +5505,7 @@ var DateRangePicker = (0, import_react30.forwardRef)((inProps, ref) => {
5421
5505
  },
5422
5506
  [format, minDate, maxDate, disableFuture, disablePast]
5423
5507
  );
5424
- 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(
5508
+ 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(
5425
5509
  Input_default,
5426
5510
  {
5427
5511
  ...innerProps,
@@ -5448,7 +5532,7 @@ var DateRangePicker = (0, import_react30.forwardRef)((inProps, ref) => {
5448
5532
  },
5449
5533
  error,
5450
5534
  sx: { width: "100%" },
5451
- endDecorator: /* @__PURE__ */ import_react30.default.createElement(
5535
+ endDecorator: /* @__PURE__ */ import_react31.default.createElement(
5452
5536
  CalendarButton2,
5453
5537
  {
5454
5538
  ref: buttonRef,
@@ -5460,13 +5544,13 @@ var DateRangePicker = (0, import_react30.forwardRef)((inProps, ref) => {
5460
5544
  "aria-expanded": open,
5461
5545
  disabled
5462
5546
  },
5463
- /* @__PURE__ */ import_react30.default.createElement(import_CalendarToday2.default, null)
5547
+ /* @__PURE__ */ import_react31.default.createElement(import_CalendarToday2.default, null)
5464
5548
  ),
5465
5549
  label,
5466
5550
  helperText,
5467
5551
  readOnly: readOnly || inputReadOnly || isAlphabeticDisplay
5468
5552
  }
5469
- ), open && /* @__PURE__ */ import_react30.default.createElement(import_base4.ClickAwayListener, { onClickAway: () => setAnchorEl(null) }, /* @__PURE__ */ import_react30.default.createElement(
5553
+ ), open && /* @__PURE__ */ import_react31.default.createElement(import_base4.ClickAwayListener, { onClickAway: () => setAnchorEl(null) }, /* @__PURE__ */ import_react31.default.createElement(
5470
5554
  StyledPopper2,
5471
5555
  {
5472
5556
  id: "date-range-picker-popper",
@@ -5485,7 +5569,7 @@ var DateRangePicker = (0, import_react30.forwardRef)((inProps, ref) => {
5485
5569
  "aria-label": "Calendar Tooltip",
5486
5570
  "aria-expanded": open
5487
5571
  },
5488
- /* @__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(
5572
+ /* @__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(
5489
5573
  Calendar_default,
5490
5574
  {
5491
5575
  rangeSelection: true,
@@ -5498,14 +5582,14 @@ var DateRangePicker = (0, import_react30.forwardRef)((inProps, ref) => {
5498
5582
  locale,
5499
5583
  numberOfMonths
5500
5584
  }
5501
- ), !hideClearButton && /* @__PURE__ */ import_react30.default.createElement(
5585
+ ), !hideClearButton && /* @__PURE__ */ import_react31.default.createElement(
5502
5586
  DialogActions_default,
5503
5587
  {
5504
5588
  sx: {
5505
5589
  p: 1
5506
5590
  }
5507
5591
  },
5508
- /* @__PURE__ */ import_react30.default.createElement(
5592
+ /* @__PURE__ */ import_react31.default.createElement(
5509
5593
  Button_default,
5510
5594
  {
5511
5595
  size,
@@ -5519,9 +5603,9 @@ var DateRangePicker = (0, import_react30.forwardRef)((inProps, ref) => {
5519
5603
  },
5520
5604
  "Clear"
5521
5605
  )
5522
- )), presets && presets.length > 0 && /* @__PURE__ */ import_react30.default.createElement(PresetPanel2, null, presets.map((preset) => {
5606
+ )), presets && presets.length > 0 && /* @__PURE__ */ import_react31.default.createElement(PresetPanel2, null, presets.map((preset) => {
5523
5607
  const disabled2 = isPresetDisabled(preset.value);
5524
- return /* @__PURE__ */ import_react30.default.createElement(
5608
+ return /* @__PURE__ */ import_react31.default.createElement(
5525
5609
  PresetItem2,
5526
5610
  {
5527
5611
  key: preset.label,
@@ -5566,10 +5650,10 @@ DialogTitle.displayName = "DialogTitle";
5566
5650
  var DialogTitle_default = DialogTitle;
5567
5651
 
5568
5652
  // src/components/DialogFrame/DialogFrame.tsx
5569
- var import_react32 = __toESM(require("react"));
5653
+ var import_react33 = __toESM(require("react"));
5570
5654
 
5571
5655
  // src/components/Modal/Modal.tsx
5572
- var import_react31 = __toESM(require("react"));
5656
+ var import_react32 = __toESM(require("react"));
5573
5657
  var import_joy40 = require("@mui/joy");
5574
5658
  var import_framer_motion24 = require("framer-motion");
5575
5659
  var MotionModal = (0, import_framer_motion24.motion)(import_joy40.Modal);
@@ -5584,10 +5668,10 @@ var ModalClose = import_joy40.ModalClose;
5584
5668
  var MotionModalOverflow = (0, import_framer_motion24.motion)(import_joy40.ModalOverflow);
5585
5669
  var ModalOverflow = MotionModalOverflow;
5586
5670
  ModalOverflow.displayName = "ModalOverflow";
5587
- function ModalFrame(props) {
5671
+ var ModalFrame = import_react32.default.forwardRef((props, ref) => {
5588
5672
  const { title, children, titleStartDecorator, onClose, ...innerProps } = props;
5589
- return /* @__PURE__ */ import_react31.default.createElement(StyledModalDialog, { ...innerProps }, /* @__PURE__ */ import_react31.default.createElement(ModalClose, { onClick: onClose }), /* @__PURE__ */ import_react31.default.createElement(DialogTitle_default, null, titleStartDecorator, title), /* @__PURE__ */ import_react31.default.createElement(DialogContent_default, null, children));
5590
- }
5673
+ return /* @__PURE__ */ import_react32.default.createElement(StyledModalDialog, { ref, ...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));
5674
+ });
5591
5675
  ModalFrame.displayName = "ModalFrame";
5592
5676
 
5593
5677
  // src/components/DialogFrame/DialogFrame.tsx
@@ -5598,20 +5682,20 @@ var StyledDialogFrame = (0, import_joy41.styled)(ModalDialog, {
5598
5682
  })({
5599
5683
  padding: 0
5600
5684
  });
5601
- var DialogFrame = import_react32.default.forwardRef((props, ref) => {
5685
+ var DialogFrame = import_react33.default.forwardRef((props, ref) => {
5602
5686
  const { title, children, actions, fullscreen, onSubmit, ...innerProps } = props;
5603
5687
  const formProps = onSubmit ? { component: "form", onSubmit } : void 0;
5604
- return /* @__PURE__ */ import_react32.default.createElement(StyledDialogFrame, { layout: fullscreen ? "fullscreen" : "center", ref, ...formProps, ...innerProps }, /* @__PURE__ */ import_react32.default.createElement(DialogTitle_default, null, title), /* @__PURE__ */ import_react32.default.createElement(DialogContent_default, null, children), /* @__PURE__ */ import_react32.default.createElement(DialogActions_default, null, actions));
5688
+ 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));
5605
5689
  });
5606
5690
  DialogFrame.displayName = "DialogFrame";
5607
5691
 
5608
5692
  // src/components/Divider/Divider.tsx
5609
- var import_react33 = __toESM(require("react"));
5693
+ var import_react34 = __toESM(require("react"));
5610
5694
  var import_joy42 = require("@mui/joy");
5611
5695
  var import_framer_motion25 = require("framer-motion");
5612
5696
  var MotionDivider = (0, import_framer_motion25.motion)(import_joy42.Divider);
5613
5697
  var Divider = (props) => {
5614
- return /* @__PURE__ */ import_react33.default.createElement(MotionDivider, { ...props });
5698
+ return /* @__PURE__ */ import_react34.default.createElement(MotionDivider, { ...props });
5615
5699
  };
5616
5700
  Divider.displayName = "Divider";
5617
5701
 
@@ -5632,16 +5716,16 @@ var InsetDrawer = (0, import_joy43.styled)(import_joy43.Drawer)(({ theme }) => (
5632
5716
  }));
5633
5717
 
5634
5718
  // src/components/FilterableCheckboxGroup/FilterableCheckboxGroup.tsx
5635
- var import_react34 = __toESM(require("react"));
5719
+ var import_react35 = __toESM(require("react"));
5636
5720
  var import_Search = __toESM(require("@mui/icons-material/Search"));
5637
5721
  var import_joy44 = require("@mui/joy");
5638
5722
  var import_react_virtual3 = require("@tanstack/react-virtual");
5639
5723
  var EMPTY_VALUE = [];
5640
5724
  function LabelWithTooltip(props) {
5641
5725
  const { label, size } = props;
5642
- const labelContentRef = (0, import_react34.useRef)(null);
5643
- const [isOverflowing, setIsOverflowing] = (0, import_react34.useState)(false);
5644
- const labelContent = /* @__PURE__ */ import_react34.default.createElement(
5726
+ const labelContentRef = (0, import_react35.useRef)(null);
5727
+ const [isOverflowing, setIsOverflowing] = (0, import_react35.useState)(false);
5728
+ const labelContent = /* @__PURE__ */ import_react35.default.createElement(
5645
5729
  "span",
5646
5730
  {
5647
5731
  ref: labelContentRef,
@@ -5657,14 +5741,14 @@ function LabelWithTooltip(props) {
5657
5741
  },
5658
5742
  label
5659
5743
  );
5660
- (0, import_react34.useEffect)(() => {
5744
+ (0, import_react35.useEffect)(() => {
5661
5745
  const element = labelContentRef.current;
5662
5746
  if (element) {
5663
5747
  setIsOverflowing(element.scrollWidth > element.clientWidth);
5664
5748
  }
5665
5749
  }, [label]);
5666
5750
  if (isOverflowing) {
5667
- return /* @__PURE__ */ import_react34.default.createElement(Tooltip_default, { variant: "solid", size, title: label, placement: "bottom-start" }, labelContent);
5751
+ return /* @__PURE__ */ import_react35.default.createElement(Tooltip_default, { variant: "solid", size, title: label, placement: "bottom-start" }, labelContent);
5668
5752
  }
5669
5753
  return labelContent;
5670
5754
  }
@@ -5682,22 +5766,22 @@ function FilterableCheckboxGroup(inProps) {
5682
5766
  maxHeight = 300,
5683
5767
  disabled
5684
5768
  } = props;
5685
- const [searchTerm, setSearchTerm] = (0, import_react34.useState)("");
5686
- const [sortedOptions, setSortedOptions] = (0, import_react34.useState)(options);
5769
+ const [searchTerm, setSearchTerm] = (0, import_react35.useState)("");
5770
+ const [sortedOptions, setSortedOptions] = (0, import_react35.useState)(options);
5687
5771
  const [rawValue, setInternalValue] = useControlledState(
5688
5772
  value,
5689
5773
  value ?? EMPTY_VALUE,
5690
- (0, import_react34.useCallback)((newValue) => onChange?.(newValue ?? []), [onChange])
5774
+ (0, import_react35.useCallback)((newValue) => onChange?.(newValue ?? []), [onChange])
5691
5775
  );
5692
5776
  const internalValue = rawValue ?? EMPTY_VALUE;
5693
- const parentRef = (0, import_react34.useRef)(null);
5694
- const isInitialSortRef = (0, import_react34.useRef)(false);
5695
- const prevOptionsRef = (0, import_react34.useRef)([...options]);
5696
- const filteredOptions = (0, import_react34.useMemo)(() => {
5777
+ const parentRef = (0, import_react35.useRef)(null);
5778
+ const isInitialSortRef = (0, import_react35.useRef)(false);
5779
+ const prevOptionsRef = (0, import_react35.useRef)([...options]);
5780
+ const filteredOptions = (0, import_react35.useMemo)(() => {
5697
5781
  if (!searchTerm) return sortedOptions;
5698
5782
  return sortedOptions.filter((option) => option.label.toLowerCase().includes(searchTerm.toLowerCase()));
5699
5783
  }, [sortedOptions, searchTerm]);
5700
- const itemSize = (0, import_react34.useMemo)(() => {
5784
+ const itemSize = (0, import_react35.useMemo)(() => {
5701
5785
  switch (size) {
5702
5786
  case "sm":
5703
5787
  return 28;
@@ -5715,7 +5799,7 @@ function FilterableCheckboxGroup(inProps) {
5715
5799
  overscan: 5
5716
5800
  });
5717
5801
  const items = virtualizer.getVirtualItems();
5718
- (0, import_react34.useEffect)(() => {
5802
+ (0, import_react35.useEffect)(() => {
5719
5803
  const optionsChanged = prevOptionsRef.current.length !== options.length || prevOptionsRef.current.some(
5720
5804
  (prevOption, index) => prevOption.value !== options[index]?.value || prevOption.label !== options[index]?.label || prevOption.disabled !== options[index]?.disabled
5721
5805
  );
@@ -5741,13 +5825,13 @@ function FilterableCheckboxGroup(inProps) {
5741
5825
  }
5742
5826
  }
5743
5827
  }, [options, value]);
5744
- (0, import_react34.useEffect)(() => {
5828
+ (0, import_react35.useEffect)(() => {
5745
5829
  virtualizer.measure();
5746
5830
  }, [virtualizer, filteredOptions, size]);
5747
- const handleSearchChange = (0, import_react34.useCallback)((event) => {
5831
+ const handleSearchChange = (0, import_react35.useCallback)((event) => {
5748
5832
  setSearchTerm(event.target.value);
5749
5833
  }, []);
5750
- const handleCheckboxChange = (0, import_react34.useCallback)(
5834
+ const handleCheckboxChange = (0, import_react35.useCallback)(
5751
5835
  (optionValue) => (event) => {
5752
5836
  const checked = event.target.checked;
5753
5837
  const newValue = checked ? [...internalValue, optionValue] : internalValue.filter((v) => v !== optionValue);
@@ -5755,7 +5839,7 @@ function FilterableCheckboxGroup(inProps) {
5755
5839
  },
5756
5840
  [internalValue, setInternalValue]
5757
5841
  );
5758
- const handleSelectAll = (0, import_react34.useCallback)(
5842
+ const handleSelectAll = (0, import_react35.useCallback)(
5759
5843
  (event) => {
5760
5844
  const checked = event.target.checked;
5761
5845
  const enabledOptions = filteredOptions.filter((option) => !option.disabled);
@@ -5771,10 +5855,10 @@ function FilterableCheckboxGroup(inProps) {
5771
5855
  },
5772
5856
  [filteredOptions, internalValue, setInternalValue]
5773
5857
  );
5774
- const enabledFilteredOptions = (0, import_react34.useMemo)(() => filteredOptions.filter((option) => !option.disabled), [filteredOptions]);
5858
+ const enabledFilteredOptions = (0, import_react35.useMemo)(() => filteredOptions.filter((option) => !option.disabled), [filteredOptions]);
5775
5859
  const isAllSelected = enabledFilteredOptions.length > 0 && enabledFilteredOptions.every((option) => internalValue.includes(option.value));
5776
5860
  const isIndeterminate = !isAllSelected && enabledFilteredOptions.some((option) => internalValue.includes(option.value));
5777
- return /* @__PURE__ */ import_react34.default.createElement("div", { style: { width: "100%" } }, /* @__PURE__ */ import_react34.default.createElement(
5861
+ return /* @__PURE__ */ import_react35.default.createElement("div", { style: { width: "100%" } }, /* @__PURE__ */ import_react35.default.createElement(
5778
5862
  Input_default,
5779
5863
  {
5780
5864
  label,
@@ -5787,9 +5871,9 @@ function FilterableCheckboxGroup(inProps) {
5787
5871
  onChange: handleSearchChange,
5788
5872
  size,
5789
5873
  disabled,
5790
- endDecorator: /* @__PURE__ */ import_react34.default.createElement(import_Search.default, null)
5874
+ endDecorator: /* @__PURE__ */ import_react35.default.createElement(import_Search.default, null)
5791
5875
  }
5792
- ), filteredOptions.length === 0 ? /* @__PURE__ */ import_react34.default.createElement(Typography_default, { level: `body-${size}`, textColor: "neutral.softDisabledColor", padding: "20px 12px", textAlign: "center" }, "No options found.") : /* @__PURE__ */ import_react34.default.createElement(
5876
+ ), 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(
5793
5877
  "div",
5794
5878
  {
5795
5879
  ref: parentRef,
@@ -5800,7 +5884,7 @@ function FilterableCheckboxGroup(inProps) {
5800
5884
  marginTop: "8px"
5801
5885
  }
5802
5886
  },
5803
- !searchTerm && /* @__PURE__ */ import_react34.default.createElement(
5887
+ !searchTerm && /* @__PURE__ */ import_react35.default.createElement(
5804
5888
  Checkbox_default,
5805
5889
  {
5806
5890
  label: "Select all",
@@ -5817,7 +5901,7 @@ function FilterableCheckboxGroup(inProps) {
5817
5901
  sx: { width: "100%", height: itemSize }
5818
5902
  }
5819
5903
  ),
5820
- /* @__PURE__ */ import_react34.default.createElement(
5904
+ /* @__PURE__ */ import_react35.default.createElement(
5821
5905
  Stack_default,
5822
5906
  {
5823
5907
  sx: {
@@ -5827,11 +5911,11 @@ function FilterableCheckboxGroup(inProps) {
5827
5911
  },
5828
5912
  items.map((virtualRow) => {
5829
5913
  const option = filteredOptions[virtualRow.index];
5830
- return /* @__PURE__ */ import_react34.default.createElement(
5914
+ return /* @__PURE__ */ import_react35.default.createElement(
5831
5915
  Checkbox_default,
5832
5916
  {
5833
5917
  key: virtualRow.key,
5834
- label: /* @__PURE__ */ import_react34.default.createElement(LabelWithTooltip, { label: option.label, size }),
5918
+ label: /* @__PURE__ */ import_react35.default.createElement(LabelWithTooltip, { label: option.label, size }),
5835
5919
  checked: internalValue.includes(option.value),
5836
5920
  onChange: handleCheckboxChange(option.value),
5837
5921
  size,
@@ -5859,16 +5943,16 @@ function FilterableCheckboxGroup(inProps) {
5859
5943
  FilterableCheckboxGroup.displayName = "FilterableCheckboxGroup";
5860
5944
 
5861
5945
  // src/components/FilterMenu/FilterMenu.tsx
5862
- var import_react47 = __toESM(require("react"));
5946
+ var import_react48 = __toESM(require("react"));
5863
5947
  var import_joy58 = require("@mui/joy");
5864
5948
 
5865
5949
  // src/components/FilterMenu/components/CheckboxGroup.tsx
5866
- var import_react35 = __toESM(require("react"));
5950
+ var import_react36 = __toESM(require("react"));
5867
5951
  var import_joy45 = require("@mui/joy");
5868
5952
  function CheckboxGroup(props) {
5869
5953
  const { id, label, options, value, onChange, hidden } = props;
5870
5954
  const [internalValue, setInternalValue] = useControlledState(value, [], onChange);
5871
- const handleCheckboxChange = (0, import_react35.useCallback)(
5955
+ const handleCheckboxChange = (0, import_react36.useCallback)(
5872
5956
  (optionValue) => (event) => {
5873
5957
  const checked = event.target.checked;
5874
5958
  let newValue;
@@ -5884,7 +5968,7 @@ function CheckboxGroup(props) {
5884
5968
  if (hidden) {
5885
5969
  return null;
5886
5970
  }
5887
- return /* @__PURE__ */ import_react35.default.createElement(import_joy45.Stack, { spacing: 3, role: "group", "aria-labelledby": id }, !!label && /* @__PURE__ */ import_react35.default.createElement(Typography_default, { id, level: "title-sm", component: "label", textColor: "text.tertiary" }, label), options.map((option) => /* @__PURE__ */ import_react35.default.createElement(
5971
+ return /* @__PURE__ */ import_react36.default.createElement(import_joy45.Stack, { spacing: 3, role: "group", "aria-labelledby": id }, !!label && /* @__PURE__ */ import_react36.default.createElement(Typography_default, { id, level: "title-sm", component: "label", textColor: "text.tertiary" }, label), options.map((option) => /* @__PURE__ */ import_react36.default.createElement(
5888
5972
  Checkbox_default,
5889
5973
  {
5890
5974
  key: `${id}-${option.value}`,
@@ -5897,12 +5981,12 @@ function CheckboxGroup(props) {
5897
5981
  CheckboxGroup.displayName = "CheckboxGroup";
5898
5982
 
5899
5983
  // src/components/FilterMenu/components/FilterableCheckboxGroup.tsx
5900
- var import_react36 = __toESM(require("react"));
5984
+ var import_react37 = __toESM(require("react"));
5901
5985
  var import_joy46 = require("@mui/joy");
5902
5986
  function FilterableCheckboxGroup2(props) {
5903
5987
  const { id, label, options, value, onChange, hidden, placeholder, maxHeight } = props;
5904
5988
  const [internalValue, setInternalValue] = useControlledState(value, [], onChange);
5905
- const handleChange = (0, import_react36.useCallback)(
5989
+ const handleChange = (0, import_react37.useCallback)(
5906
5990
  (newValue) => {
5907
5991
  setInternalValue(newValue);
5908
5992
  },
@@ -5911,7 +5995,7 @@ function FilterableCheckboxGroup2(props) {
5911
5995
  if (hidden) {
5912
5996
  return null;
5913
5997
  }
5914
- return /* @__PURE__ */ import_react36.default.createElement(import_joy46.Stack, { spacing: 3, role: "group", "aria-labelledby": id }, !!label && /* @__PURE__ */ import_react36.default.createElement(Typography_default, { id, level: "title-sm", component: "label", textColor: "text.tertiary" }, label), /* @__PURE__ */ import_react36.default.createElement(
5998
+ return /* @__PURE__ */ import_react37.default.createElement(import_joy46.Stack, { spacing: 3, role: "group", "aria-labelledby": id }, !!label && /* @__PURE__ */ import_react37.default.createElement(Typography_default, { id, level: "title-sm", component: "label", textColor: "text.tertiary" }, label), /* @__PURE__ */ import_react37.default.createElement(
5915
5999
  FilterableCheckboxGroup,
5916
6000
  {
5917
6001
  value: internalValue ?? [],
@@ -5926,7 +6010,7 @@ function FilterableCheckboxGroup2(props) {
5926
6010
  FilterableCheckboxGroup2.displayName = "FilterableCheckboxGroup";
5927
6011
 
5928
6012
  // src/components/FilterMenu/components/RadioGroup.tsx
5929
- var import_react37 = __toESM(require("react"));
6013
+ var import_react38 = __toESM(require("react"));
5930
6014
 
5931
6015
  // src/components/Radio/Radio.tsx
5932
6016
  var import_joy47 = require("@mui/joy");
@@ -5943,7 +6027,7 @@ var import_joy48 = require("@mui/joy");
5943
6027
  function RadioGroup2(props) {
5944
6028
  const { id, label, options, value, onChange, hidden } = props;
5945
6029
  const [internalValue, setInternalValue] = useControlledState(value, value ?? "", onChange);
5946
- const handleRadioChange = (0, import_react37.useCallback)(
6030
+ const handleRadioChange = (0, import_react38.useCallback)(
5947
6031
  (event) => {
5948
6032
  const newValue = event.target.value;
5949
6033
  const option = options.find((opt) => opt.value.toString() === newValue);
@@ -5955,12 +6039,12 @@ function RadioGroup2(props) {
5955
6039
  if (hidden) {
5956
6040
  return null;
5957
6041
  }
5958
- return /* @__PURE__ */ import_react37.default.createElement(import_joy48.Stack, { spacing: 3, role: "group", "aria-labelledby": id }, !!label && /* @__PURE__ */ import_react37.default.createElement(import_joy48.Stack, { spacing: 1 }, /* @__PURE__ */ import_react37.default.createElement(Typography_default, { id, level: "title-sm", component: "label", textColor: "text.tertiary" }, label)), /* @__PURE__ */ import_react37.default.createElement(RadioGroup, { name: id, value: internalValue?.toString(), onChange: handleRadioChange }, options.map((option) => /* @__PURE__ */ import_react37.default.createElement(Radio, { key: `${id}-${option.value}`, value: option.value.toString(), label: option.label }))));
6042
+ return /* @__PURE__ */ import_react38.default.createElement(import_joy48.Stack, { spacing: 3, role: "group", "aria-labelledby": id }, !!label && /* @__PURE__ */ import_react38.default.createElement(import_joy48.Stack, { spacing: 1 }, /* @__PURE__ */ import_react38.default.createElement(Typography_default, { id, level: "title-sm", component: "label", textColor: "text.tertiary" }, label)), /* @__PURE__ */ import_react38.default.createElement(RadioGroup, { name: id, value: internalValue?.toString(), onChange: handleRadioChange }, options.map((option) => /* @__PURE__ */ import_react38.default.createElement(Radio, { key: `${id}-${option.value}`, value: option.value.toString(), label: option.label }))));
5959
6043
  }
5960
6044
  RadioGroup2.displayName = "RadioGroup";
5961
6045
 
5962
6046
  // src/components/FilterMenu/components/DateRange.tsx
5963
- var import_react38 = __toESM(require("react"));
6047
+ var import_react39 = __toESM(require("react"));
5964
6048
  var import_joy49 = require("@mui/joy");
5965
6049
  function DateRange(props) {
5966
6050
  const {
@@ -5978,8 +6062,8 @@ function DateRange(props) {
5978
6062
  hideClearButton
5979
6063
  } = props;
5980
6064
  const [internalValue, setInternalValue] = useControlledState(value, null, onChange);
5981
- const [selectedOption, setSelectedOption] = (0, import_react38.useState)("all-time");
5982
- const dateRangeOptions = (0, import_react38.useMemo)(
6065
+ const [selectedOption, setSelectedOption] = (0, import_react39.useState)("all-time");
6066
+ const dateRangeOptions = (0, import_react39.useMemo)(
5983
6067
  () => [
5984
6068
  { label: "All Time", value: "all-time" },
5985
6069
  { label: "This Month", value: "this-month" },
@@ -5989,7 +6073,7 @@ function DateRange(props) {
5989
6073
  ],
5990
6074
  []
5991
6075
  );
5992
- const getDateRangeForOption = (0, import_react38.useCallback)(
6076
+ const getDateRangeForOption = (0, import_react39.useCallback)(
5993
6077
  (option) => {
5994
6078
  const now = /* @__PURE__ */ new Date();
5995
6079
  const currentYear = now.getFullYear();
@@ -6028,7 +6112,7 @@ function DateRange(props) {
6028
6112
  },
6029
6113
  [internalValue]
6030
6114
  );
6031
- const determineOptionFromValue = (0, import_react38.useCallback)(
6115
+ const determineOptionFromValue = (0, import_react39.useCallback)(
6032
6116
  (value2) => {
6033
6117
  if (!value2) {
6034
6118
  return "all-time";
@@ -6044,17 +6128,17 @@ function DateRange(props) {
6044
6128
  },
6045
6129
  [getDateRangeForOption]
6046
6130
  );
6047
- const customDateRangeValue = (0, import_react38.useMemo)(() => {
6131
+ const customDateRangeValue = (0, import_react39.useMemo)(() => {
6048
6132
  if (selectedOption === "custom" && internalValue) {
6049
6133
  return `${internalValue[0]} - ${internalValue[1]}`;
6050
6134
  }
6051
6135
  return "";
6052
6136
  }, [selectedOption, internalValue]);
6053
- (0, import_react38.useEffect)(() => {
6137
+ (0, import_react39.useEffect)(() => {
6054
6138
  const newOption = determineOptionFromValue(internalValue);
6055
6139
  setSelectedOption(newOption);
6056
6140
  }, [internalValue, determineOptionFromValue]);
6057
- const handleOptionChange = (0, import_react38.useCallback)(
6141
+ const handleOptionChange = (0, import_react39.useCallback)(
6058
6142
  (event) => {
6059
6143
  const newOption = event.target.value;
6060
6144
  setSelectedOption(newOption);
@@ -6063,7 +6147,7 @@ function DateRange(props) {
6063
6147
  },
6064
6148
  [getDateRangeForOption, setInternalValue]
6065
6149
  );
6066
- const handleCustomDateChange = (0, import_react38.useCallback)(
6150
+ const handleCustomDateChange = (0, import_react39.useCallback)(
6067
6151
  (event) => {
6068
6152
  const dateRangeString = event.target.value;
6069
6153
  if (dateRangeString && dateRangeString.includes(" - ")) {
@@ -6084,7 +6168,7 @@ function DateRange(props) {
6084
6168
  if (hidden) {
6085
6169
  return null;
6086
6170
  }
6087
- return /* @__PURE__ */ import_react38.default.createElement(import_joy49.Stack, { spacing: 3, role: "group", "aria-labelledby": id }, !!label && /* @__PURE__ */ import_react38.default.createElement(Typography_default, { id, level: "title-sm", component: "label", textColor: "text.tertiary" }, label), /* @__PURE__ */ import_react38.default.createElement(RadioGroup, { name: `${id}-options`, value: selectedOption, onChange: handleOptionChange }, dateRangeOptions.map((option) => /* @__PURE__ */ import_react38.default.createElement(Radio, { key: `${id}-${option.value}`, value: option.value, label: option.label }))), selectedOption === "custom" && /* @__PURE__ */ import_react38.default.createElement(
6171
+ return /* @__PURE__ */ import_react39.default.createElement(import_joy49.Stack, { spacing: 3, role: "group", "aria-labelledby": id }, !!label && /* @__PURE__ */ import_react39.default.createElement(Typography_default, { id, level: "title-sm", component: "label", textColor: "text.tertiary" }, label), /* @__PURE__ */ import_react39.default.createElement(RadioGroup, { name: `${id}-options`, value: selectedOption, onChange: handleOptionChange }, dateRangeOptions.map((option) => /* @__PURE__ */ import_react39.default.createElement(Radio, { key: `${id}-${option.value}`, value: option.value, label: option.label }))), selectedOption === "custom" && /* @__PURE__ */ import_react39.default.createElement(
6088
6172
  DateRangePicker,
6089
6173
  {
6090
6174
  value: customDateRangeValue,
@@ -6103,11 +6187,11 @@ function DateRange(props) {
6103
6187
  DateRange.displayName = "DateRange";
6104
6188
 
6105
6189
  // src/components/FilterMenu/components/MonthRange.tsx
6106
- var import_react40 = __toESM(require("react"));
6190
+ var import_react41 = __toESM(require("react"));
6107
6191
  var import_joy51 = require("@mui/joy");
6108
6192
 
6109
6193
  // src/components/MonthRangePicker/MonthRangePicker.tsx
6110
- var import_react39 = __toESM(require("react"));
6194
+ var import_react40 = __toESM(require("react"));
6111
6195
  var import_react_imask3 = require("react-imask");
6112
6196
  var import_CalendarToday3 = __toESM(require("@mui/icons-material/CalendarToday"));
6113
6197
  var import_joy50 = require("@mui/joy");
@@ -6168,9 +6252,9 @@ var parseDates2 = (str) => {
6168
6252
  var formatToPattern3 = (format) => {
6169
6253
  return `${format} - ${format}`.replace(/YYYY/g, "Y").replace(/MM/g, "m").replace(/[^YMm\s]/g, (match) => `${match}\``);
6170
6254
  };
6171
- var TextMaskAdapter7 = import_react39.default.forwardRef(function TextMaskAdapter8(props, ref) {
6255
+ var TextMaskAdapter7 = import_react40.default.forwardRef(function TextMaskAdapter8(props, ref) {
6172
6256
  const { onChange, format, ...other } = props;
6173
- return /* @__PURE__ */ import_react39.default.createElement(
6257
+ return /* @__PURE__ */ import_react40.default.createElement(
6174
6258
  import_react_imask3.IMaskInput,
6175
6259
  {
6176
6260
  ...other,
@@ -6198,7 +6282,7 @@ var TextMaskAdapter7 = import_react39.default.forwardRef(function TextMaskAdapte
6198
6282
  }
6199
6283
  );
6200
6284
  });
6201
- var MonthRangePicker = (0, import_react39.forwardRef)((inProps, ref) => {
6285
+ var MonthRangePicker = (0, import_react40.forwardRef)((inProps, ref) => {
6202
6286
  const props = (0, import_joy50.useThemeProps)({ props: inProps, name: "MonthRangePicker" });
6203
6287
  const {
6204
6288
  onChange,
@@ -6222,24 +6306,24 @@ var MonthRangePicker = (0, import_react39.forwardRef)((inProps, ref) => {
6222
6306
  } = props;
6223
6307
  const displayFormat = displayFormatProp ?? format;
6224
6308
  const isAlphabeticDisplay = hasAlphabeticMonth3(displayFormat);
6225
- const innerRef = (0, import_react39.useRef)(null);
6226
- const buttonRef = (0, import_react39.useRef)(null);
6309
+ const innerRef = (0, import_react40.useRef)(null);
6310
+ const buttonRef = (0, import_react40.useRef)(null);
6227
6311
  const [rawValue, setValue] = useControlledState(
6228
6312
  props.value,
6229
6313
  props.defaultValue ?? null,
6230
- (0, import_react39.useCallback)(
6314
+ (0, import_react40.useCallback)(
6231
6315
  (value2) => onChange?.({ target: { name: props.name, value: value2 ?? "" } }),
6232
6316
  [props.name, onChange]
6233
6317
  )
6234
6318
  );
6235
6319
  const value = rawValue ?? "";
6236
- const [displayValue, setDisplayValue] = (0, import_react39.useState)(
6320
+ const [displayValue, setDisplayValue] = (0, import_react40.useState)(
6237
6321
  () => value ? formatValueString3(parseDates2(value), displayFormat, locale) : ""
6238
6322
  );
6239
- const [anchorEl, setAnchorEl] = (0, import_react39.useState)(null);
6323
+ const [anchorEl, setAnchorEl] = (0, import_react40.useState)(null);
6240
6324
  const open = Boolean(anchorEl);
6241
- const calendarValue = (0, import_react39.useMemo)(() => value ? parseDates2(value) : void 0, [value]);
6242
- (0, import_react39.useEffect)(() => {
6325
+ const calendarValue = (0, import_react40.useMemo)(() => value ? parseDates2(value) : void 0, [value]);
6326
+ (0, import_react40.useEffect)(() => {
6243
6327
  if (value) {
6244
6328
  try {
6245
6329
  const dates = parseDates2(value);
@@ -6251,13 +6335,13 @@ var MonthRangePicker = (0, import_react39.forwardRef)((inProps, ref) => {
6251
6335
  setDisplayValue("");
6252
6336
  }
6253
6337
  }, [displayFormat, locale, value]);
6254
- (0, import_react39.useEffect)(() => {
6338
+ (0, import_react40.useEffect)(() => {
6255
6339
  if (!anchorEl) {
6256
6340
  innerRef.current?.blur();
6257
6341
  }
6258
6342
  }, [anchorEl, innerRef]);
6259
- (0, import_react39.useImperativeHandle)(ref, () => innerRef.current, [innerRef]);
6260
- const handleChange = (0, import_react39.useCallback)(
6343
+ (0, import_react40.useImperativeHandle)(ref, () => innerRef.current, [innerRef]);
6344
+ const handleChange = (0, import_react40.useCallback)(
6261
6345
  (event) => {
6262
6346
  setDisplayValue(
6263
6347
  event.target.value ? formatValueString3(parseDates2(event.target.value), displayFormat, locale) : ""
@@ -6266,7 +6350,7 @@ var MonthRangePicker = (0, import_react39.forwardRef)((inProps, ref) => {
6266
6350
  },
6267
6351
  [displayFormat, locale, setValue]
6268
6352
  );
6269
- const handleInputMouseDown = (0, import_react39.useCallback)(
6353
+ const handleInputMouseDown = (0, import_react40.useCallback)(
6270
6354
  (event) => {
6271
6355
  if (isAlphabeticDisplay) {
6272
6356
  event.preventDefault();
@@ -6275,14 +6359,14 @@ var MonthRangePicker = (0, import_react39.forwardRef)((inProps, ref) => {
6275
6359
  },
6276
6360
  [isAlphabeticDisplay, buttonRef]
6277
6361
  );
6278
- const handleCalendarToggle = (0, import_react39.useCallback)(
6362
+ const handleCalendarToggle = (0, import_react40.useCallback)(
6279
6363
  (event) => {
6280
6364
  setAnchorEl(anchorEl ? null : event.currentTarget);
6281
6365
  innerRef.current?.focus();
6282
6366
  },
6283
6367
  [anchorEl, setAnchorEl, innerRef]
6284
6368
  );
6285
- const handleCalendarChange = (0, import_react39.useCallback)(
6369
+ const handleCalendarChange = (0, import_react40.useCallback)(
6286
6370
  ([date1, date2]) => {
6287
6371
  if (!date1 || !date2) return;
6288
6372
  const formattedValue = formatValueString3([date1, date2], format);
@@ -6292,7 +6376,7 @@ var MonthRangePicker = (0, import_react39.forwardRef)((inProps, ref) => {
6292
6376
  },
6293
6377
  [setValue, setAnchorEl, format, displayFormat, locale]
6294
6378
  );
6295
- return /* @__PURE__ */ import_react39.default.createElement(MonthRangePickerRoot, null, /* @__PURE__ */ import_react39.default.createElement(import_base5.FocusTrap, { open: true }, /* @__PURE__ */ import_react39.default.createElement(import_react39.default.Fragment, null, /* @__PURE__ */ import_react39.default.createElement(
6379
+ return /* @__PURE__ */ import_react40.default.createElement(MonthRangePickerRoot, 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(
6296
6380
  Input_default,
6297
6381
  {
6298
6382
  ...innerProps,
@@ -6322,7 +6406,7 @@ var MonthRangePicker = (0, import_react39.forwardRef)((inProps, ref) => {
6322
6406
  // NOTE: placeholder char 를 텍스트로 표시하므로 동일한 너비를 가지는 mono font 를 사용해야 이질감이 없다.
6323
6407
  fontFamily: "monospace"
6324
6408
  },
6325
- endDecorator: /* @__PURE__ */ import_react39.default.createElement(
6409
+ endDecorator: /* @__PURE__ */ import_react40.default.createElement(
6326
6410
  IconButton_default,
6327
6411
  {
6328
6412
  ref: buttonRef,
@@ -6333,12 +6417,12 @@ var MonthRangePicker = (0, import_react39.forwardRef)((inProps, ref) => {
6333
6417
  "aria-haspopup": "dialog",
6334
6418
  "aria-expanded": open
6335
6419
  },
6336
- /* @__PURE__ */ import_react39.default.createElement(import_CalendarToday3.default, null)
6420
+ /* @__PURE__ */ import_react40.default.createElement(import_CalendarToday3.default, null)
6337
6421
  ),
6338
6422
  label,
6339
6423
  helperText
6340
6424
  }
6341
- ), open && /* @__PURE__ */ import_react39.default.createElement(import_base5.ClickAwayListener, { onClickAway: () => setAnchorEl(null) }, /* @__PURE__ */ import_react39.default.createElement(
6425
+ ), open && /* @__PURE__ */ import_react40.default.createElement(import_base5.ClickAwayListener, { onClickAway: () => setAnchorEl(null) }, /* @__PURE__ */ import_react40.default.createElement(
6342
6426
  StyledPopper3,
6343
6427
  {
6344
6428
  id: "month-range-picker-popper",
@@ -6357,7 +6441,7 @@ var MonthRangePicker = (0, import_react39.forwardRef)((inProps, ref) => {
6357
6441
  "aria-label": "Calendar Tooltip",
6358
6442
  "aria-expanded": open
6359
6443
  },
6360
- /* @__PURE__ */ import_react39.default.createElement(CalendarSheet3, { tabIndex: -1, role: "presentation" }, /* @__PURE__ */ import_react39.default.createElement(
6444
+ /* @__PURE__ */ import_react40.default.createElement(CalendarSheet3, { tabIndex: -1, role: "presentation" }, /* @__PURE__ */ import_react40.default.createElement(
6361
6445
  Calendar_default,
6362
6446
  {
6363
6447
  view: "month",
@@ -6371,14 +6455,14 @@ var MonthRangePicker = (0, import_react39.forwardRef)((inProps, ref) => {
6371
6455
  disablePast,
6372
6456
  locale
6373
6457
  }
6374
- ), /* @__PURE__ */ import_react39.default.createElement(
6458
+ ), /* @__PURE__ */ import_react40.default.createElement(
6375
6459
  DialogActions_default,
6376
6460
  {
6377
6461
  sx: {
6378
6462
  p: 1
6379
6463
  }
6380
6464
  },
6381
- /* @__PURE__ */ import_react39.default.createElement(
6465
+ /* @__PURE__ */ import_react40.default.createElement(
6382
6466
  Button_default,
6383
6467
  {
6384
6468
  size,
@@ -6413,11 +6497,11 @@ function MonthRange(props) {
6413
6497
  locale
6414
6498
  } = props;
6415
6499
  const [internalValue, setInternalValue] = useControlledState(value, null, onChange);
6416
- const pickerValue = (0, import_react40.useMemo)(
6500
+ const pickerValue = (0, import_react41.useMemo)(
6417
6501
  () => internalValue ? `${internalValue[0]} - ${internalValue[1]}` : "",
6418
6502
  [internalValue]
6419
6503
  );
6420
- const handleChange = (0, import_react40.useCallback)(
6504
+ const handleChange = (0, import_react41.useCallback)(
6421
6505
  (event) => {
6422
6506
  const rangeString = event.target.value;
6423
6507
  if (rangeString && rangeString.includes(" - ")) {
@@ -6434,7 +6518,7 @@ function MonthRange(props) {
6434
6518
  if (hidden) {
6435
6519
  return null;
6436
6520
  }
6437
- return /* @__PURE__ */ import_react40.default.createElement(import_joy51.Stack, { spacing: 3, role: "group", "aria-labelledby": id }, !!label && /* @__PURE__ */ import_react40.default.createElement(Typography_default, { id, level: "title-sm", component: "label", textColor: "text.tertiary" }, label), /* @__PURE__ */ import_react40.default.createElement(
6521
+ return /* @__PURE__ */ import_react41.default.createElement(import_joy51.Stack, { spacing: 3, role: "group", "aria-labelledby": id }, !!label && /* @__PURE__ */ import_react41.default.createElement(Typography_default, { id, level: "title-sm", component: "label", textColor: "text.tertiary" }, label), /* @__PURE__ */ import_react41.default.createElement(
6438
6522
  MonthRangePicker,
6439
6523
  {
6440
6524
  value: pickerValue,
@@ -6452,12 +6536,12 @@ function MonthRange(props) {
6452
6536
  MonthRange.displayName = "MonthRange";
6453
6537
 
6454
6538
  // src/components/FilterMenu/components/CurrencyInput.tsx
6455
- var import_react41 = __toESM(require("react"));
6539
+ var import_react42 = __toESM(require("react"));
6456
6540
  var import_joy52 = require("@mui/joy");
6457
6541
  function CurrencyInput3(props) {
6458
6542
  const { id, label, value, onChange, hidden, max, placeholder, useMinorUnit, currency = "USD" } = props;
6459
6543
  const [internalValue, setInternalValue] = useControlledState(value, value, onChange);
6460
- const handleCurrencyChange = (0, import_react41.useCallback)(
6544
+ const handleCurrencyChange = (0, import_react42.useCallback)(
6461
6545
  (event) => {
6462
6546
  const newValue = event.target.value ?? void 0;
6463
6547
  setInternalValue(newValue);
@@ -6467,7 +6551,7 @@ function CurrencyInput3(props) {
6467
6551
  if (hidden) {
6468
6552
  return null;
6469
6553
  }
6470
- return /* @__PURE__ */ import_react41.default.createElement(import_joy52.Stack, { spacing: 3, role: "group", "aria-labelledby": id }, !!label && /* @__PURE__ */ import_react41.default.createElement(Typography_default, { id, level: "title-sm", component: "label", textColor: "text.tertiary" }, label), /* @__PURE__ */ import_react41.default.createElement(
6554
+ return /* @__PURE__ */ import_react42.default.createElement(import_joy52.Stack, { spacing: 3, role: "group", "aria-labelledby": id }, !!label && /* @__PURE__ */ import_react42.default.createElement(Typography_default, { id, level: "title-sm", component: "label", textColor: "text.tertiary" }, label), /* @__PURE__ */ import_react42.default.createElement(
6471
6555
  CurrencyInput,
6472
6556
  {
6473
6557
  value: internalValue,
@@ -6483,14 +6567,14 @@ function CurrencyInput3(props) {
6483
6567
  CurrencyInput3.displayName = "CurrencyInput";
6484
6568
 
6485
6569
  // src/components/FilterMenu/components/CurrencyRange.tsx
6486
- var import_react42 = __toESM(require("react"));
6570
+ var import_react43 = __toESM(require("react"));
6487
6571
  var import_joy53 = require("@mui/joy");
6488
6572
  function CurrencyRange(props) {
6489
6573
  const { id, label, value, onChange, hidden, max, placeholder, useMinorUnit, currency = "USD" } = props;
6490
6574
  const [internalValue, setInternalValue] = useControlledState(value, null, onChange);
6491
6575
  const minValue = internalValue?.[0];
6492
6576
  const maxValue = internalValue?.[1];
6493
- const handleMinChange = (0, import_react42.useCallback)(
6577
+ const handleMinChange = (0, import_react43.useCallback)(
6494
6578
  (event) => {
6495
6579
  const newMinValue = event.target.value ?? void 0;
6496
6580
  const currentMaxValue = maxValue;
@@ -6504,7 +6588,7 @@ function CurrencyRange(props) {
6504
6588
  },
6505
6589
  [maxValue, setInternalValue]
6506
6590
  );
6507
- const handleMaxChange = (0, import_react42.useCallback)(
6591
+ const handleMaxChange = (0, import_react43.useCallback)(
6508
6592
  (event) => {
6509
6593
  const newMaxValue = event.target.value ?? void 0;
6510
6594
  const currentMinValue = minValue;
@@ -6521,7 +6605,7 @@ function CurrencyRange(props) {
6521
6605
  if (hidden) {
6522
6606
  return null;
6523
6607
  }
6524
- return /* @__PURE__ */ import_react42.default.createElement(import_joy53.Stack, { spacing: 3, role: "group", "aria-labelledby": id }, !!label && /* @__PURE__ */ import_react42.default.createElement(Typography_default, { id, level: "title-sm", component: "label", textColor: "text.tertiary" }, label), /* @__PURE__ */ import_react42.default.createElement(import_joy53.Stack, { direction: "row", spacing: 2, alignItems: "flex-end" }, /* @__PURE__ */ import_react42.default.createElement(
6608
+ return /* @__PURE__ */ import_react43.default.createElement(import_joy53.Stack, { spacing: 3, role: "group", "aria-labelledby": id }, !!label && /* @__PURE__ */ import_react43.default.createElement(Typography_default, { id, level: "title-sm", component: "label", textColor: "text.tertiary" }, label), /* @__PURE__ */ import_react43.default.createElement(import_joy53.Stack, { direction: "row", spacing: 2, alignItems: "flex-end" }, /* @__PURE__ */ import_react43.default.createElement(
6525
6609
  CurrencyInput,
6526
6610
  {
6527
6611
  label: "Minimum",
@@ -6534,7 +6618,7 @@ function CurrencyRange(props) {
6534
6618
  "aria-labelledby": label ? id : void 0,
6535
6619
  "aria-label": "Minimum amount"
6536
6620
  }
6537
- ), /* @__PURE__ */ import_react42.default.createElement(
6621
+ ), /* @__PURE__ */ import_react43.default.createElement(
6538
6622
  CurrencyInput,
6539
6623
  {
6540
6624
  label: "Maximum",
@@ -6552,20 +6636,20 @@ function CurrencyRange(props) {
6552
6636
  CurrencyRange.displayName = "CurrencyRange";
6553
6637
 
6554
6638
  // src/components/FilterMenu/components/PercentageInput.tsx
6555
- var import_react44 = __toESM(require("react"));
6639
+ var import_react45 = __toESM(require("react"));
6556
6640
  var import_joy55 = require("@mui/joy");
6557
6641
 
6558
6642
  // src/components/PercentageInput/PercentageInput.tsx
6559
- var import_react43 = __toESM(require("react"));
6643
+ var import_react44 = __toESM(require("react"));
6560
6644
  var import_react_number_format2 = require("react-number-format");
6561
6645
  var import_joy54 = require("@mui/joy");
6562
6646
  var padDecimal = (value, decimalScale) => {
6563
6647
  const [integer, decimal = ""] = `${value}`.split(".");
6564
6648
  return Number(`${integer}${decimal.padEnd(decimalScale, "0")}`);
6565
6649
  };
6566
- var TextMaskAdapter9 = import_react43.default.forwardRef(function TextMaskAdapter10(props, ref) {
6650
+ var TextMaskAdapter9 = import_react44.default.forwardRef(function TextMaskAdapter10(props, ref) {
6567
6651
  const { onChange, min, max, ...innerProps } = props;
6568
- return /* @__PURE__ */ import_react43.default.createElement(
6652
+ return /* @__PURE__ */ import_react44.default.createElement(
6569
6653
  import_react_number_format2.NumericFormat,
6570
6654
  {
6571
6655
  ...innerProps,
@@ -6590,7 +6674,7 @@ var PercentageInputRoot = (0, import_joy54.styled)(Input_default, {
6590
6674
  slot: "Root",
6591
6675
  overridesResolver: (props, styles) => styles.root
6592
6676
  })({});
6593
- var PercentageInput = import_react43.default.forwardRef(
6677
+ var PercentageInput = import_react44.default.forwardRef(
6594
6678
  function PercentageInput2(inProps, ref) {
6595
6679
  const props = (0, import_joy54.useThemeProps)({ props: inProps, name: "PercentageInput" });
6596
6680
  const {
@@ -6613,19 +6697,19 @@ var PercentageInput = import_react43.default.forwardRef(
6613
6697
  const [_value, setValue] = useControlledState(
6614
6698
  props.value,
6615
6699
  props.defaultValue ?? null,
6616
- (0, import_react43.useCallback)((value2) => onChange?.({ target: { name, value: value2 } }), [onChange, name])
6700
+ (0, import_react44.useCallback)((value2) => onChange?.({ target: { name, value: value2 } }), [onChange, name])
6617
6701
  );
6618
- const value = (0, import_react43.useMemo)(() => {
6702
+ const value = (0, import_react44.useMemo)(() => {
6619
6703
  if (_value && useMinorUnit) {
6620
6704
  return _value / Math.pow(10, maxDecimalScale);
6621
6705
  }
6622
6706
  return _value;
6623
6707
  }, [_value, useMinorUnit, maxDecimalScale]);
6624
- const internalError = (0, import_react43.useMemo)(
6708
+ const internalError = (0, import_react44.useMemo)(
6625
6709
  () => value != null && (max != null && value > max || min != null && value < min),
6626
6710
  [max, min, value]
6627
6711
  );
6628
- const handleChange = (0, import_react43.useCallback)(
6712
+ const handleChange = (0, import_react44.useCallback)(
6629
6713
  (event) => {
6630
6714
  if (event.target.value === "") {
6631
6715
  setValue(null);
@@ -6637,7 +6721,7 @@ var PercentageInput = import_react43.default.forwardRef(
6637
6721
  },
6638
6722
  [setValue, useMinorUnit, maxDecimalScale]
6639
6723
  );
6640
- return /* @__PURE__ */ import_react43.default.createElement(
6724
+ return /* @__PURE__ */ import_react44.default.createElement(
6641
6725
  PercentageInputRoot,
6642
6726
  {
6643
6727
  ...innerProps,
@@ -6684,7 +6768,7 @@ var PercentageInput3 = ({
6684
6768
  if (hidden) {
6685
6769
  return null;
6686
6770
  }
6687
- return /* @__PURE__ */ import_react44.default.createElement(import_joy55.Stack, { spacing: 3, role: "group", "aria-labelledby": id }, !!label && /* @__PURE__ */ import_react44.default.createElement(import_joy55.Typography, { id, level: "title-sm", component: "label", textColor: "text.tertiary" }, label), /* @__PURE__ */ import_react44.default.createElement(
6771
+ return /* @__PURE__ */ import_react45.default.createElement(import_joy55.Stack, { spacing: 3, role: "group", "aria-labelledby": id }, !!label && /* @__PURE__ */ import_react45.default.createElement(import_joy55.Typography, { id, level: "title-sm", component: "label", textColor: "text.tertiary" }, label), /* @__PURE__ */ import_react45.default.createElement(
6688
6772
  PercentageInput,
6689
6773
  {
6690
6774
  value: _value,
@@ -6699,7 +6783,7 @@ var PercentageInput3 = ({
6699
6783
  };
6700
6784
 
6701
6785
  // src/components/FilterMenu/components/PercentageRange.tsx
6702
- var import_react45 = __toESM(require("react"));
6786
+ var import_react46 = __toESM(require("react"));
6703
6787
  var import_joy56 = require("@mui/joy");
6704
6788
  function PercentageRange(props) {
6705
6789
  const { id, label, value, onChange, hidden, useMinorUnit, maxDecimalScale, min, max } = props;
@@ -6710,7 +6794,7 @@ function PercentageRange(props) {
6710
6794
  );
6711
6795
  const minValue = internalValue?.[0];
6712
6796
  const maxValue = internalValue?.[1];
6713
- const handleMinChange = (0, import_react45.useCallback)(
6797
+ const handleMinChange = (0, import_react46.useCallback)(
6714
6798
  (event) => {
6715
6799
  const newMinValue = event.target.value ?? void 0;
6716
6800
  const currentMaxValue = maxValue;
@@ -6722,7 +6806,7 @@ function PercentageRange(props) {
6722
6806
  },
6723
6807
  [maxValue, setInternalValue]
6724
6808
  );
6725
- const handleMaxChange = (0, import_react45.useCallback)(
6809
+ const handleMaxChange = (0, import_react46.useCallback)(
6726
6810
  (event) => {
6727
6811
  const newMaxValue = event.target.value ?? void 0;
6728
6812
  const currentMinValue = minValue;
@@ -6737,7 +6821,7 @@ function PercentageRange(props) {
6737
6821
  if (hidden) {
6738
6822
  return null;
6739
6823
  }
6740
- return /* @__PURE__ */ import_react45.default.createElement(import_joy56.Stack, { spacing: 3, role: "group", "aria-labelledby": id }, !!label && /* @__PURE__ */ import_react45.default.createElement(Typography_default, { id, level: "title-sm", component: "label", textColor: "text.tertiary" }, label), /* @__PURE__ */ import_react45.default.createElement(import_joy56.Stack, { direction: "row", spacing: 2, alignItems: "flex-end" }, /* @__PURE__ */ import_react45.default.createElement(
6824
+ return /* @__PURE__ */ import_react46.default.createElement(import_joy56.Stack, { spacing: 3, role: "group", "aria-labelledby": id }, !!label && /* @__PURE__ */ import_react46.default.createElement(Typography_default, { id, level: "title-sm", component: "label", textColor: "text.tertiary" }, label), /* @__PURE__ */ import_react46.default.createElement(import_joy56.Stack, { direction: "row", spacing: 2, alignItems: "flex-end" }, /* @__PURE__ */ import_react46.default.createElement(
6741
6825
  PercentageInput,
6742
6826
  {
6743
6827
  label: "Minimum",
@@ -6751,7 +6835,7 @@ function PercentageRange(props) {
6751
6835
  "aria-label": "Minimum percentage",
6752
6836
  placeholder: "0%"
6753
6837
  }
6754
- ), /* @__PURE__ */ import_react45.default.createElement(
6838
+ ), /* @__PURE__ */ import_react46.default.createElement(
6755
6839
  PercentageInput,
6756
6840
  {
6757
6841
  label: "Maximum",
@@ -6770,13 +6854,13 @@ function PercentageRange(props) {
6770
6854
  PercentageRange.displayName = "PercentageRange";
6771
6855
 
6772
6856
  // src/components/FilterMenu/components/Autocomplete.tsx
6773
- var import_react46 = __toESM(require("react"));
6857
+ var import_react47 = __toESM(require("react"));
6774
6858
  var import_joy57 = require("@mui/joy");
6775
6859
  function Autocomplete2(props) {
6776
6860
  const { id, label, value, onChange, options, multiple, hidden, placeholder } = props;
6777
6861
  const [internalValue, setInternalValue] = useControlledState(value, void 0, onChange);
6778
6862
  const autocompleteValue = typeof internalValue === "string" || typeof internalValue === "number" ? String(internalValue) : void 0;
6779
- const handleChange = (0, import_react46.useCallback)(
6863
+ const handleChange = (0, import_react47.useCallback)(
6780
6864
  (event) => {
6781
6865
  const val = event.target.value ?? void 0;
6782
6866
  if (val) {
@@ -6791,7 +6875,7 @@ function Autocomplete2(props) {
6791
6875
  if (hidden) {
6792
6876
  return null;
6793
6877
  }
6794
- return /* @__PURE__ */ import_react46.default.createElement(import_joy57.Stack, { spacing: 3, role: "group", "aria-labelledby": id }, !!label && /* @__PURE__ */ import_react46.default.createElement(Typography_default, { id, level: "title-sm", component: "label", textColor: "text.tertiary" }, label), /* @__PURE__ */ import_react46.default.createElement(
6878
+ return /* @__PURE__ */ import_react47.default.createElement(import_joy57.Stack, { spacing: 3, role: "group", "aria-labelledby": id }, !!label && /* @__PURE__ */ import_react47.default.createElement(Typography_default, { id, level: "title-sm", component: "label", textColor: "text.tertiary" }, label), /* @__PURE__ */ import_react47.default.createElement(
6795
6879
  Autocomplete,
6796
6880
  {
6797
6881
  value: autocompleteValue,
@@ -6826,13 +6910,13 @@ function FilterMenu(props) {
6826
6910
  void 0
6827
6911
  // onChange는 Apply 버튼에서만 호출
6828
6912
  );
6829
- const dropdownRegistry = (0, import_react47.useContext)(DropdownNestedRegistryContext);
6830
- (0, import_react47.useEffect)(() => {
6913
+ const dropdownRegistry = (0, import_react48.useContext)(DropdownNestedRegistryContext);
6914
+ (0, import_react48.useEffect)(() => {
6831
6915
  if (!dropdownRegistry) return void 0;
6832
6916
  dropdownRegistry.register();
6833
6917
  return () => dropdownRegistry.unregister();
6834
6918
  }, [dropdownRegistry]);
6835
- const handleFilterChange = (0, import_react47.useCallback)(
6919
+ const handleFilterChange = (0, import_react48.useCallback)(
6836
6920
  (filterId, value) => {
6837
6921
  setInternalValues((prev) => ({
6838
6922
  ...prev,
@@ -6841,17 +6925,17 @@ function FilterMenu(props) {
6841
6925
  },
6842
6926
  [setInternalValues]
6843
6927
  );
6844
- const handleApply = (0, import_react47.useCallback)(() => {
6928
+ const handleApply = (0, import_react48.useCallback)(() => {
6845
6929
  onChange?.(internalValues);
6846
6930
  onClose?.();
6847
6931
  }, [onChange, onClose, internalValues]);
6848
- const handleClear = (0, import_react47.useCallback)(() => {
6932
+ const handleClear = (0, import_react48.useCallback)(() => {
6849
6933
  const clearedValues = resetValues || {};
6850
6934
  setInternalValues(clearedValues);
6851
6935
  onChange?.(clearedValues);
6852
6936
  onClose?.();
6853
6937
  }, [resetValues, setInternalValues, onChange, onClose]);
6854
- return /* @__PURE__ */ import_react47.default.createElement(
6938
+ return /* @__PURE__ */ import_react48.default.createElement(
6855
6939
  ModalDialog,
6856
6940
  {
6857
6941
  sx: {
@@ -6861,9 +6945,9 @@ function FilterMenu(props) {
6861
6945
  top: "initial"
6862
6946
  }
6863
6947
  },
6864
- /* @__PURE__ */ import_react47.default.createElement(DialogContent, { sx: { paddingTop: 5 } }, /* @__PURE__ */ import_react47.default.createElement(import_joy58.Stack, { spacing: 6 }, filters?.map((filter) => {
6948
+ /* @__PURE__ */ import_react48.default.createElement(DialogContent, { sx: { paddingTop: 5 } }, /* @__PURE__ */ import_react48.default.createElement(import_joy58.Stack, { spacing: 6 }, filters?.map((filter) => {
6865
6949
  const FilterComponent = componentMap[filter.type];
6866
- return FilterComponent ? /* @__PURE__ */ import_react47.default.createElement(
6950
+ return FilterComponent ? /* @__PURE__ */ import_react48.default.createElement(
6867
6951
  FilterComponent,
6868
6952
  {
6869
6953
  key: filter.id,
@@ -6875,13 +6959,13 @@ function FilterMenu(props) {
6875
6959
  }
6876
6960
  ) : null;
6877
6961
  }))),
6878
- /* @__PURE__ */ import_react47.default.createElement(DialogActions, { sx: { justifyContent: "space-between" } }, useClear && filters?.length === 1 && /* @__PURE__ */ import_react47.default.createElement(import_joy58.Button, { variant: "plain", color: "neutral", onClick: handleClear }, "Clear"), useReset && !useClear && /* @__PURE__ */ import_react47.default.createElement(import_joy58.Button, { variant: "plain", color: "neutral", onClick: handleClear }, "Reset"), /* @__PURE__ */ import_react47.default.createElement(import_joy58.Button, { variant: "solid", color: "primary", onClick: handleApply }, "Apply"))
6962
+ /* @__PURE__ */ import_react48.default.createElement(DialogActions, { sx: { justifyContent: "space-between" } }, useClear && filters?.length === 1 && /* @__PURE__ */ import_react48.default.createElement(import_joy58.Button, { variant: "plain", color: "neutral", onClick: handleClear }, "Clear"), useReset && !useClear && /* @__PURE__ */ import_react48.default.createElement(import_joy58.Button, { variant: "plain", color: "neutral", onClick: handleClear }, "Reset"), /* @__PURE__ */ import_react48.default.createElement(import_joy58.Button, { variant: "solid", color: "primary", onClick: handleApply }, "Apply"))
6879
6963
  );
6880
6964
  }
6881
6965
  FilterMenu.displayName = "FilterMenu";
6882
6966
 
6883
6967
  // src/components/Uploader/Uploader.tsx
6884
- var import_react48 = __toESM(require("react"));
6968
+ var import_react49 = __toESM(require("react"));
6885
6969
  var import_joy59 = require("@mui/joy");
6886
6970
  var import_CloudUploadRounded = __toESM(require("@mui/icons-material/CloudUploadRounded"));
6887
6971
  var import_UploadFileRounded = __toESM(require("@mui/icons-material/UploadFileRounded"));
@@ -6944,7 +7028,7 @@ var getFileSize = (n) => {
6944
7028
  };
6945
7029
  var Preview = (props) => {
6946
7030
  const { files, uploaded, onDelete } = props;
6947
- return /* @__PURE__ */ import_react48.default.createElement(PreviewRoot, { gap: 1 }, [...uploaded, ...files].map((file) => /* @__PURE__ */ import_react48.default.createElement(UploadCard, { key: file.name, size: "sm", color: "neutral" }, /* @__PURE__ */ import_react48.default.createElement(Stack_default, { direction: "row", alignItems: "center", gap: 2 }, /* @__PURE__ */ import_react48.default.createElement(UploadFileIcon, null), /* @__PURE__ */ import_react48.default.createElement(Stack_default, { flex: "1", sx: { overflow: "hidden" } }, /* @__PURE__ */ import_react48.default.createElement(
7031
+ return /* @__PURE__ */ import_react49.default.createElement(PreviewRoot, { gap: 1 }, [...uploaded, ...files].map((file) => /* @__PURE__ */ import_react49.default.createElement(UploadCard, { key: file.name, size: "sm", color: "neutral" }, /* @__PURE__ */ import_react49.default.createElement(Stack_default, { direction: "row", alignItems: "center", gap: 2 }, /* @__PURE__ */ import_react49.default.createElement(UploadFileIcon, null), /* @__PURE__ */ import_react49.default.createElement(Stack_default, { flex: "1", sx: { overflow: "hidden" } }, /* @__PURE__ */ import_react49.default.createElement(
6948
7032
  Typography_default,
6949
7033
  {
6950
7034
  level: "body-sm",
@@ -6956,7 +7040,7 @@ var Preview = (props) => {
6956
7040
  }
6957
7041
  },
6958
7042
  file.name
6959
- ), !!file.size && /* @__PURE__ */ import_react48.default.createElement(Typography_default, { level: "body-xs", fontWeight: "300", lineHeight: "1.33", textColor: "text.tertiary" }, getFileSize(file.size))), /* @__PURE__ */ import_react48.default.createElement(IconButton_default, { onClick: () => onDelete?.(file) }, /* @__PURE__ */ import_react48.default.createElement(ClearIcon2, null))))));
7043
+ ), !!file.size && /* @__PURE__ */ import_react49.default.createElement(Typography_default, { level: "body-xs", fontWeight: "300", lineHeight: "1.33", textColor: "text.tertiary" }, getFileSize(file.size))), /* @__PURE__ */ import_react49.default.createElement(IconButton_default, { onClick: () => onDelete?.(file) }, /* @__PURE__ */ import_react49.default.createElement(ClearIcon2, null))))));
6960
7044
  };
6961
7045
  var UploaderRoot = (0, import_joy59.styled)(Stack_default, {
6962
7046
  name: "Uploader",
@@ -6999,7 +7083,7 @@ var UploaderIcon = (0, import_joy59.styled)(import_CloudUploadRounded.default, {
6999
7083
  }
7000
7084
  })
7001
7085
  );
7002
- var Uploader = import_react48.default.memo((props) => {
7086
+ var Uploader = import_react49.default.memo((props) => {
7003
7087
  const {
7004
7088
  accept,
7005
7089
  minCount,
@@ -7015,14 +7099,14 @@ var Uploader = import_react48.default.memo((props) => {
7015
7099
  error: errorProp,
7016
7100
  helperText: helperTextProp
7017
7101
  } = props;
7018
- const dropZoneRef = (0, import_react48.useRef)(null);
7019
- const inputRef = (0, import_react48.useRef)(null);
7020
- const [errorText, setErrorText] = (0, import_react48.useState)();
7021
- const [files, setFiles] = (0, import_react48.useState)([]);
7022
- const [uploaded, setUploaded] = (0, import_react48.useState)(props.uploaded || []);
7023
- const [previewState, setPreviewState] = (0, import_react48.useState)("idle");
7024
- const accepts = (0, import_react48.useMemo)(() => accept.split(",").map((accept2) => accept2.trim()), [accept]);
7025
- const parsedAccepts = (0, import_react48.useMemo)(
7102
+ const dropZoneRef = (0, import_react49.useRef)(null);
7103
+ const inputRef = (0, import_react49.useRef)(null);
7104
+ const [errorText, setErrorText] = (0, import_react49.useState)();
7105
+ const [files, setFiles] = (0, import_react49.useState)([]);
7106
+ const [uploaded, setUploaded] = (0, import_react49.useState)(props.uploaded || []);
7107
+ const [previewState, setPreviewState] = (0, import_react49.useState)("idle");
7108
+ const accepts = (0, import_react49.useMemo)(() => accept.split(",").map((accept2) => accept2.trim()), [accept]);
7109
+ const parsedAccepts = (0, import_react49.useMemo)(
7026
7110
  () => accepts.flatMap((type) => {
7027
7111
  if (["image/*", "video/*", "audio/*"].includes(type)) {
7028
7112
  return ALL_EXTENSIONS_BY_TYPE[type];
@@ -7031,7 +7115,7 @@ var Uploader = import_react48.default.memo((props) => {
7031
7115
  }),
7032
7116
  [accepts]
7033
7117
  );
7034
- const helperText = (0, import_react48.useMemo)(() => {
7118
+ const helperText = (0, import_react49.useMemo)(() => {
7035
7119
  if (helperTextProp) {
7036
7120
  return helperTextProp;
7037
7121
  }
@@ -7061,12 +7145,12 @@ var Uploader = import_react48.default.memo((props) => {
7061
7145
  }
7062
7146
  return helperTexts.join(", ");
7063
7147
  }, [accepts, maxFileTotalSize, maxCount, helperTextProp]);
7064
- const error = (0, import_react48.useMemo)(() => !!errorText || errorProp, [errorProp, errorText]);
7065
- const showDropZone = (0, import_react48.useMemo)(
7148
+ const error = (0, import_react49.useMemo)(() => !!errorText || errorProp, [errorProp, errorText]);
7149
+ const showDropZone = (0, import_react49.useMemo)(
7066
7150
  () => !maxCount || maxCount && [...uploaded, ...files].length !== maxCount,
7067
7151
  [files, maxCount, uploaded]
7068
7152
  );
7069
- const addFiles = (0, import_react48.useCallback)(
7153
+ const addFiles = (0, import_react49.useCallback)(
7070
7154
  (uploads) => {
7071
7155
  try {
7072
7156
  const types = parsedAccepts.map((type) => type.replace(".", "")) || [];
@@ -7111,7 +7195,7 @@ var Uploader = import_react48.default.memo((props) => {
7111
7195
  },
7112
7196
  [files, uploaded, maxCount, parsedAccepts, maxFileSize, maxFileTotalSize, name, onChange]
7113
7197
  );
7114
- (0, import_react48.useEffect)(() => {
7198
+ (0, import_react49.useEffect)(() => {
7115
7199
  if (!dropZoneRef.current || disabled) {
7116
7200
  return;
7117
7201
  }
@@ -7139,7 +7223,7 @@ var Uploader = import_react48.default.memo((props) => {
7139
7223
  })
7140
7224
  );
7141
7225
  }, [disabled, addFiles]);
7142
- (0, import_react48.useEffect)(() => {
7226
+ (0, import_react49.useEffect)(() => {
7143
7227
  if (inputRef.current && minCount) {
7144
7228
  if (files.length < minCount) {
7145
7229
  inputRef.current.setCustomValidity(`At least ${minCount} files are required.`);
@@ -7148,14 +7232,14 @@ var Uploader = import_react48.default.memo((props) => {
7148
7232
  }
7149
7233
  }
7150
7234
  }, [inputRef, files, minCount]);
7151
- const handleFileChanged = (0, import_react48.useCallback)(
7235
+ const handleFileChanged = (0, import_react49.useCallback)(
7152
7236
  (event) => {
7153
7237
  const files2 = Array.from(event.target.files || []);
7154
7238
  addFiles(files2);
7155
7239
  },
7156
7240
  [addFiles]
7157
7241
  );
7158
- const handleDeleteFile = (0, import_react48.useCallback)(
7242
+ const handleDeleteFile = (0, import_react49.useCallback)(
7159
7243
  (deletedFile) => {
7160
7244
  if (deletedFile instanceof File) {
7161
7245
  setFiles((current) => {
@@ -7175,10 +7259,10 @@ var Uploader = import_react48.default.memo((props) => {
7175
7259
  },
7176
7260
  [name, onChange, onDelete]
7177
7261
  );
7178
- const handleUploaderButtonClick = (0, import_react48.useCallback)(() => {
7262
+ const handleUploaderButtonClick = (0, import_react49.useCallback)(() => {
7179
7263
  inputRef.current?.click();
7180
7264
  }, []);
7181
- const uploader = /* @__PURE__ */ import_react48.default.createElement(
7265
+ const uploader = /* @__PURE__ */ import_react49.default.createElement(
7182
7266
  FileDropZone,
7183
7267
  {
7184
7268
  state: previewState,
@@ -7187,8 +7271,8 @@ var Uploader = import_react48.default.memo((props) => {
7187
7271
  ref: dropZoneRef,
7188
7272
  onClick: handleUploaderButtonClick
7189
7273
  },
7190
- /* @__PURE__ */ import_react48.default.createElement(Stack_default, { alignItems: "center", gap: 1 }, /* @__PURE__ */ import_react48.default.createElement(UploaderIcon, { state: previewState, error: !!(error || errorText), disabled })),
7191
- /* @__PURE__ */ import_react48.default.createElement(
7274
+ /* @__PURE__ */ import_react49.default.createElement(Stack_default, { alignItems: "center", gap: 1 }, /* @__PURE__ */ import_react49.default.createElement(UploaderIcon, { state: previewState, error: !!(error || errorText), disabled })),
7275
+ /* @__PURE__ */ import_react49.default.createElement(
7192
7276
  VisuallyHiddenInput,
7193
7277
  {
7194
7278
  disabled,
@@ -7211,7 +7295,7 @@ var Uploader = import_react48.default.memo((props) => {
7211
7295
  }
7212
7296
  )
7213
7297
  );
7214
- return /* @__PURE__ */ import_react48.default.createElement(UploaderRoot, null, showDropZone && /* @__PURE__ */ import_react48.default.createElement(FormControl_default, { size, error: !!(error || errorText), disabled, required: !!minCount }, label && /* @__PURE__ */ import_react48.default.createElement(FormLabel_default, null, label), uploader, /* @__PURE__ */ import_react48.default.createElement(FormHelperText_default, null, /* @__PURE__ */ import_react48.default.createElement(Stack_default, null, errorText && /* @__PURE__ */ import_react48.default.createElement("div", null, errorText), /* @__PURE__ */ import_react48.default.createElement("div", null, helperText)))), [...uploaded, ...files].length > 0 && /* @__PURE__ */ import_react48.default.createElement(Preview, { files, uploaded, onDelete: handleDeleteFile }));
7298
+ return /* @__PURE__ */ import_react49.default.createElement(UploaderRoot, null, showDropZone && /* @__PURE__ */ import_react49.default.createElement(FormControl_default, { size, error: !!(error || errorText), disabled, required: !!minCount }, label && /* @__PURE__ */ import_react49.default.createElement(FormLabel_default, null, label), uploader, /* @__PURE__ */ import_react49.default.createElement(FormHelperText_default, null, /* @__PURE__ */ import_react49.default.createElement(Stack_default, null, errorText && /* @__PURE__ */ import_react49.default.createElement("div", null, errorText), /* @__PURE__ */ import_react49.default.createElement("div", null, helperText)))), [...uploaded, ...files].length > 0 && /* @__PURE__ */ import_react49.default.createElement(Preview, { files, uploaded, onDelete: handleDeleteFile }));
7215
7299
  });
7216
7300
  Uploader.displayName = "Uploader";
7217
7301
 
@@ -7219,9 +7303,12 @@ Uploader.displayName = "Uploader";
7219
7303
  var import_joy60 = require("@mui/joy");
7220
7304
 
7221
7305
  // src/components/IconMenuButton/IconMenuButton.tsx
7222
- var import_react49 = __toESM(require("react"));
7306
+ var import_react50 = __toESM(require("react"));
7223
7307
  var import_joy61 = require("@mui/joy");
7224
- function IconMenuButton(props) {
7308
+ var MenuButtonRootSlot = import_react50.default.forwardRef(function MenuButtonRootSlot2({ as, ...rest }, ref) {
7309
+ return /* @__PURE__ */ import_react50.default.createElement(import_joy61.IconButton, { ...rest, component: as ?? "button", ref });
7310
+ });
7311
+ function IconMenuButtonInner(props, ref) {
7225
7312
  const {
7226
7313
  size,
7227
7314
  icon,
@@ -7232,8 +7319,10 @@ function IconMenuButton(props) {
7232
7319
  variant = "plain",
7233
7320
  placement = "bottom"
7234
7321
  } = props;
7322
+ const { ref: buttonComponentRef, ...buttonComponentProps } = props.buttonComponentProps ?? {};
7323
+ const mergedButtonRef = useMergedRef(buttonComponentRef, ref);
7235
7324
  if (!items.length) {
7236
- return /* @__PURE__ */ import_react49.default.createElement(
7325
+ return /* @__PURE__ */ import_react50.default.createElement(
7237
7326
  import_joy61.IconButton,
7238
7327
  {
7239
7328
  component: props.buttonComponent ?? "button",
@@ -7242,15 +7331,16 @@ function IconMenuButton(props) {
7242
7331
  color,
7243
7332
  disabled,
7244
7333
  loading,
7245
- ...props.buttonComponentProps ?? {}
7334
+ ...buttonComponentProps,
7335
+ ref: mergedButtonRef
7246
7336
  },
7247
7337
  icon
7248
7338
  );
7249
7339
  }
7250
- return /* @__PURE__ */ import_react49.default.createElement(Dropdown_default, null, /* @__PURE__ */ import_react49.default.createElement(
7340
+ return /* @__PURE__ */ import_react50.default.createElement(Dropdown_default, null, /* @__PURE__ */ import_react50.default.createElement(
7251
7341
  import_joy61.MenuButton,
7252
7342
  {
7253
- slots: { root: import_joy61.IconButton },
7343
+ slots: { root: MenuButtonRootSlot },
7254
7344
  slotProps: {
7255
7345
  root: {
7256
7346
  component: props.buttonComponent ?? "button",
@@ -7259,24 +7349,27 @@ function IconMenuButton(props) {
7259
7349
  color,
7260
7350
  disabled,
7261
7351
  loading,
7262
- ...props.buttonComponentProps ?? {}
7352
+ ...buttonComponentProps,
7353
+ // Joy의 useSlot이 내부 ref와 이 ref를 합쳐준다. 위 no-items 분기와 같은 경로로 ref를 넘긴다.
7354
+ ref: mergedButtonRef
7263
7355
  }
7264
7356
  }
7265
7357
  },
7266
7358
  icon
7267
- ), /* @__PURE__ */ import_react49.default.createElement(Menu, { placement, size }, items.map((i) => /* @__PURE__ */ import_react49.default.createElement(MenuItem, { key: i.text, component: i.component, ...i.componentProps ?? {} }, i.text))));
7359
+ ), /* @__PURE__ */ import_react50.default.createElement(Menu, { placement, size }, items.map((i) => /* @__PURE__ */ import_react50.default.createElement(MenuItem, { key: i.text, component: i.component, ...i.componentProps ?? {} }, i.text))));
7268
7360
  }
7361
+ var IconMenuButton = import_react50.default.forwardRef(IconMenuButtonInner);
7269
7362
  IconMenuButton.displayName = "IconMenuButton";
7270
7363
 
7271
7364
  // src/components/Markdown/Markdown.tsx
7272
- var import_react50 = __toESM(require("react"));
7365
+ var import_react51 = __toESM(require("react"));
7273
7366
  var import_joy62 = require("@mui/joy");
7274
7367
  var import_joy63 = require("@mui/joy");
7275
7368
  var import_remark_gfm = __toESM(require("remark-gfm"));
7276
- var LazyReactMarkdown = (0, import_react50.lazy)(() => import("react-markdown"));
7369
+ var LazyReactMarkdown = (0, import_react51.lazy)(() => import("react-markdown"));
7277
7370
  var Markdown = (props) => {
7278
- const [rehypeAccent2, setRehypeAccent] = (0, import_react50.useState)(null);
7279
- (0, import_react50.useEffect)(() => {
7371
+ const [rehypeAccent2, setRehypeAccent] = (0, import_react51.useState)(null);
7372
+ (0, import_react51.useEffect)(() => {
7280
7373
  const loadRehypeAccent = async () => {
7281
7374
  const module2 = await Promise.resolve().then(() => (init_rehype_accent(), rehype_accent_exports));
7282
7375
  setRehypeAccent(() => module2.rehypeAccent);
@@ -7298,8 +7391,8 @@ var Markdown = (props) => {
7298
7391
  if (!rehypeAccent2) {
7299
7392
  return null;
7300
7393
  }
7301
- return /* @__PURE__ */ import_react50.default.createElement(Typography, { component: "div", color, textColor, level: defaultLevel, ...innerProps }, /* @__PURE__ */ import_react50.default.createElement(
7302
- import_react50.Suspense,
7394
+ return /* @__PURE__ */ import_react51.default.createElement(Typography, { component: "div", color, textColor, level: defaultLevel, ...innerProps }, /* @__PURE__ */ import_react51.default.createElement(
7395
+ import_react51.Suspense,
7303
7396
  {
7304
7397
  fallback: (
7305
7398
  // While in the fallback state, prevent browser auto-translation (e.g. Chrome/Google Translate)
@@ -7307,10 +7400,10 @@ var Markdown = (props) => {
7307
7400
  // swaps the fallback for the real content via insertBefore; if the browser has mutated the DOM
7308
7401
  // in the meantime, the reference node's parent changes and React throws a DOMException
7309
7402
  // ("Failed to execute 'insertBefore' on 'Node'"), crashing the subtree. (cf. facebook/react#11538)
7310
- fallback || /* @__PURE__ */ import_react50.default.createElement(Typography, { translate: "no", className: "notranslate" }, /* @__PURE__ */ import_react50.default.createElement(import_joy62.Skeleton, null, content || ""))
7403
+ fallback || /* @__PURE__ */ import_react51.default.createElement(Typography, { translate: "no", className: "notranslate" }, /* @__PURE__ */ import_react51.default.createElement(import_joy62.Skeleton, null, content || ""))
7311
7404
  )
7312
7405
  },
7313
- /* @__PURE__ */ import_react50.default.createElement(
7406
+ /* @__PURE__ */ import_react51.default.createElement(
7314
7407
  LazyReactMarkdown,
7315
7408
  {
7316
7409
  ...markdownOptions,
@@ -7318,17 +7411,17 @@ var Markdown = (props) => {
7318
7411
  rehypePlugins: [[rehypeAccent2, { accentColor }]],
7319
7412
  remarkPlugins: [import_remark_gfm.default],
7320
7413
  components: {
7321
- a: ({ children, href }) => /* @__PURE__ */ import_react50.default.createElement(import_joy63.Link, { href, target: defaultLinkAction }, children),
7322
- hr: () => /* @__PURE__ */ import_react50.default.createElement(Divider, { sx: { display: "block" } }),
7323
- b: ({ children }) => /* @__PURE__ */ import_react50.default.createElement(Typography, { component: "strong", fontWeight: boldFontWeight || "lg" }, children),
7324
- strong: ({ children }) => /* @__PURE__ */ import_react50.default.createElement(Typography, { component: "strong", fontWeight: boldFontWeight || "lg" }, children),
7414
+ a: ({ children, href }) => /* @__PURE__ */ import_react51.default.createElement(import_joy63.Link, { href, target: defaultLinkAction }, children),
7415
+ hr: () => /* @__PURE__ */ import_react51.default.createElement(Divider, { sx: { display: "block" } }),
7416
+ b: ({ children }) => /* @__PURE__ */ import_react51.default.createElement(Typography, { component: "strong", fontWeight: boldFontWeight || "lg" }, children),
7417
+ strong: ({ children }) => /* @__PURE__ */ import_react51.default.createElement(Typography, { component: "strong", fontWeight: boldFontWeight || "lg" }, children),
7325
7418
  // Table components
7326
- table: ({ children }) => /* @__PURE__ */ import_react50.default.createElement(Sheet, { variant: "outlined", sx: { display: "block", borderRadius: "sm", overflow: "auto" } }, /* @__PURE__ */ import_react50.default.createElement(Table, { size: "sm" }, children)),
7419
+ table: ({ children }) => /* @__PURE__ */ import_react51.default.createElement(Sheet, { variant: "outlined", sx: { display: "block", borderRadius: "sm", overflow: "auto" } }, /* @__PURE__ */ import_react51.default.createElement(Table, { size: "sm" }, children)),
7327
7420
  // Code components
7328
7421
  code: ({ children, className }) => {
7329
7422
  const isBlock = className?.startsWith("language-");
7330
7423
  if (isBlock) {
7331
- return /* @__PURE__ */ import_react50.default.createElement(
7424
+ return /* @__PURE__ */ import_react51.default.createElement(
7332
7425
  Typography,
7333
7426
  {
7334
7427
  component: "code",
@@ -7342,7 +7435,7 @@ var Markdown = (props) => {
7342
7435
  children
7343
7436
  );
7344
7437
  }
7345
- return /* @__PURE__ */ import_react50.default.createElement(
7438
+ return /* @__PURE__ */ import_react51.default.createElement(
7346
7439
  Typography,
7347
7440
  {
7348
7441
  component: "code",
@@ -7357,7 +7450,7 @@ var Markdown = (props) => {
7357
7450
  children
7358
7451
  );
7359
7452
  },
7360
- pre: ({ children }) => /* @__PURE__ */ import_react50.default.createElement(
7453
+ pre: ({ children }) => /* @__PURE__ */ import_react51.default.createElement(
7361
7454
  Sheet,
7362
7455
  {
7363
7456
  variant: "soft",
@@ -7375,12 +7468,12 @@ var Markdown = (props) => {
7375
7468
  // Task list checkbox
7376
7469
  input: ({ checked, type }) => {
7377
7470
  if (type === "checkbox") {
7378
- return /* @__PURE__ */ import_react50.default.createElement(Checkbox, { checked, disabled: true, size: "sm", sx: { mr: 1 } });
7471
+ return /* @__PURE__ */ import_react51.default.createElement(Checkbox, { checked, disabled: true, size: "sm", sx: { mr: 1 } });
7379
7472
  }
7380
- return /* @__PURE__ */ import_react50.default.createElement("input", { checked, type });
7473
+ return /* @__PURE__ */ import_react51.default.createElement("input", { checked, type });
7381
7474
  },
7382
7475
  // Blockquote
7383
- blockquote: ({ children }) => /* @__PURE__ */ import_react50.default.createElement(
7476
+ blockquote: ({ children }) => /* @__PURE__ */ import_react51.default.createElement(
7384
7477
  Sheet,
7385
7478
  {
7386
7479
  variant: "soft",
@@ -7389,12 +7482,12 @@ var Markdown = (props) => {
7389
7482
  children
7390
7483
  ),
7391
7484
  // Image
7392
- img: ({ src, alt }) => /* @__PURE__ */ import_react50.default.createElement("img", { src, alt, style: { maxWidth: "100%", borderRadius: "4px" } }),
7485
+ img: ({ src, alt }) => /* @__PURE__ */ import_react51.default.createElement("img", { src, alt, style: { maxWidth: "100%", borderRadius: "4px" } }),
7393
7486
  // Text style components
7394
- em: ({ children }) => /* @__PURE__ */ import_react50.default.createElement(Typography, { component: "em", sx: { fontStyle: "italic" } }, children),
7395
- del: ({ children }) => /* @__PURE__ */ import_react50.default.createElement(Typography, { component: "del", sx: { textDecoration: "line-through" } }, children),
7487
+ em: ({ children }) => /* @__PURE__ */ import_react51.default.createElement(Typography, { component: "em", sx: { fontStyle: "italic" } }, children),
7488
+ del: ({ children }) => /* @__PURE__ */ import_react51.default.createElement(Typography, { component: "del", sx: { textDecoration: "line-through" } }, children),
7396
7489
  // Span for accent color (from rehype-accent plugin)
7397
- span: ({ children, node }) => /* @__PURE__ */ import_react50.default.createElement(Typography, { component: "span", textColor: node?.properties?.textColor }, children),
7490
+ span: ({ children, node }) => /* @__PURE__ */ import_react51.default.createElement(Typography, { component: "span", textColor: node?.properties?.textColor }, children),
7398
7491
  ...markdownOptions?.components
7399
7492
  }
7400
7493
  }
@@ -7404,7 +7497,7 @@ var Markdown = (props) => {
7404
7497
  Markdown.displayName = "Markdown";
7405
7498
 
7406
7499
  // src/components/MenuButton/MenuButton.tsx
7407
- var import_react51 = __toESM(require("react"));
7500
+ var import_react52 = __toESM(require("react"));
7408
7501
  var import_joy64 = require("@mui/joy");
7409
7502
  var import_ExpandMore = __toESM(require("@mui/icons-material/ExpandMore"));
7410
7503
  function MenuButton2(props) {
@@ -7422,7 +7515,7 @@ function MenuButton2(props) {
7422
7515
  placement = "bottom"
7423
7516
  } = props;
7424
7517
  if (!items.length) {
7425
- return /* @__PURE__ */ import_react51.default.createElement(
7518
+ return /* @__PURE__ */ import_react52.default.createElement(
7426
7519
  import_joy64.Button,
7427
7520
  {
7428
7521
  component: props.buttonComponent ?? "button",
@@ -7433,12 +7526,12 @@ function MenuButton2(props) {
7433
7526
  loading,
7434
7527
  startDecorator,
7435
7528
  ...props.buttonComponentProps ?? {},
7436
- endDecorator: showIcon ? /* @__PURE__ */ import_react51.default.createElement(import_react51.default.Fragment, null, endDecorator, /* @__PURE__ */ import_react51.default.createElement(import_ExpandMore.default, null)) : /* @__PURE__ */ import_react51.default.createElement(import_react51.default.Fragment, null, endDecorator)
7529
+ endDecorator: showIcon ? /* @__PURE__ */ import_react52.default.createElement(import_react52.default.Fragment, null, endDecorator, /* @__PURE__ */ import_react52.default.createElement(import_ExpandMore.default, null)) : /* @__PURE__ */ import_react52.default.createElement(import_react52.default.Fragment, null, endDecorator)
7437
7530
  },
7438
7531
  buttonText
7439
7532
  );
7440
7533
  }
7441
- return /* @__PURE__ */ import_react51.default.createElement(Dropdown_default, null, /* @__PURE__ */ import_react51.default.createElement(
7534
+ return /* @__PURE__ */ import_react52.default.createElement(Dropdown_default, null, /* @__PURE__ */ import_react52.default.createElement(
7442
7535
  import_joy64.MenuButton,
7443
7536
  {
7444
7537
  component: props.buttonComponent ?? "button",
@@ -7449,15 +7542,15 @@ function MenuButton2(props) {
7449
7542
  loading,
7450
7543
  startDecorator,
7451
7544
  ...props.buttonComponentProps ?? {},
7452
- endDecorator: showIcon ? /* @__PURE__ */ import_react51.default.createElement(import_react51.default.Fragment, null, endDecorator, /* @__PURE__ */ import_react51.default.createElement(import_ExpandMore.default, null)) : /* @__PURE__ */ import_react51.default.createElement(import_react51.default.Fragment, null, endDecorator)
7545
+ endDecorator: showIcon ? /* @__PURE__ */ import_react52.default.createElement(import_react52.default.Fragment, null, endDecorator, /* @__PURE__ */ import_react52.default.createElement(import_ExpandMore.default, null)) : /* @__PURE__ */ import_react52.default.createElement(import_react52.default.Fragment, null, endDecorator)
7453
7546
  },
7454
7547
  buttonText
7455
- ), /* @__PURE__ */ import_react51.default.createElement(Menu, { placement, size }, items.map((i) => /* @__PURE__ */ import_react51.default.createElement(MenuItem, { key: i.text, component: i.component, ...i.componentProps ?? {} }, i.text))));
7548
+ ), /* @__PURE__ */ import_react52.default.createElement(Menu, { placement, size }, items.map((i) => /* @__PURE__ */ import_react52.default.createElement(MenuItem, { key: i.text, component: i.component, ...i.componentProps ?? {} }, i.text))));
7456
7549
  }
7457
7550
  MenuButton2.displayName = "MenuButton";
7458
7551
 
7459
7552
  // src/components/MonthPicker/MonthPicker.tsx
7460
- var import_react52 = __toESM(require("react"));
7553
+ var import_react53 = __toESM(require("react"));
7461
7554
  var import_CalendarToday4 = __toESM(require("@mui/icons-material/CalendarToday"));
7462
7555
  var import_joy65 = require("@mui/joy");
7463
7556
  var import_base6 = require("@mui/base");
@@ -7513,7 +7606,7 @@ function parseDate4(dateString, format) {
7513
7606
  const result = new Date(year, month, day);
7514
7607
  return result;
7515
7608
  }
7516
- var MonthPicker = (0, import_react52.forwardRef)((inProps, ref) => {
7609
+ var MonthPicker = (0, import_react53.forwardRef)((inProps, ref) => {
7517
7610
  const props = (0, import_joy65.useThemeProps)({ props: inProps, name: "MonthPicker" });
7518
7611
  const {
7519
7612
  onChange,
@@ -7540,18 +7633,18 @@ var MonthPicker = (0, import_react52.forwardRef)((inProps, ref) => {
7540
7633
  locale,
7541
7634
  ...innerProps
7542
7635
  } = props;
7543
- const innerRef = (0, import_react52.useRef)(null);
7544
- const buttonRef = (0, import_react52.useRef)(null);
7636
+ const innerRef = (0, import_react53.useRef)(null);
7637
+ const buttonRef = (0, import_react53.useRef)(null);
7545
7638
  const [rawValue, setValue, isControlled] = useControlledState(
7546
7639
  props.value,
7547
7640
  props.defaultValue ?? null,
7548
- (0, import_react52.useCallback)(
7641
+ (0, import_react53.useCallback)(
7549
7642
  (value2) => onChange?.({ target: { name: props.name, value: value2 ?? "" } }),
7550
7643
  [props.name, onChange]
7551
7644
  )
7552
7645
  );
7553
7646
  const value = rawValue ?? "";
7554
- const getFormattedDisplayValue = (0, import_react52.useCallback)(
7647
+ const getFormattedDisplayValue = (0, import_react53.useCallback)(
7555
7648
  (inputValue) => {
7556
7649
  if (!inputValue) return "";
7557
7650
  try {
@@ -7562,19 +7655,19 @@ var MonthPicker = (0, import_react52.forwardRef)((inProps, ref) => {
7562
7655
  },
7563
7656
  [format, displayFormat, locale]
7564
7657
  );
7565
- const [displayValue, setDisplayValue] = (0, import_react52.useState)(() => getFormattedDisplayValue(value));
7566
- const [anchorEl, setAnchorEl] = (0, import_react52.useState)(null);
7658
+ const [displayValue, setDisplayValue] = (0, import_react53.useState)(() => getFormattedDisplayValue(value));
7659
+ const [anchorEl, setAnchorEl] = (0, import_react53.useState)(null);
7567
7660
  const open = Boolean(anchorEl);
7568
- (0, import_react52.useEffect)(() => {
7661
+ (0, import_react53.useEffect)(() => {
7569
7662
  if (!anchorEl) {
7570
7663
  innerRef.current?.blur();
7571
7664
  }
7572
7665
  }, [anchorEl, innerRef]);
7573
- (0, import_react52.useImperativeHandle)(ref, () => innerRef.current, [innerRef]);
7574
- (0, import_react52.useEffect)(() => {
7666
+ (0, import_react53.useImperativeHandle)(ref, () => innerRef.current, [innerRef]);
7667
+ (0, import_react53.useEffect)(() => {
7575
7668
  setDisplayValue(getFormattedDisplayValue(value));
7576
7669
  }, [value, getFormattedDisplayValue]);
7577
- const handleChange = (0, import_react52.useCallback)(
7670
+ const handleChange = (0, import_react53.useCallback)(
7578
7671
  (event) => {
7579
7672
  const newValue = event.target.value;
7580
7673
  setValue(newValue);
@@ -7584,21 +7677,21 @@ var MonthPicker = (0, import_react52.forwardRef)((inProps, ref) => {
7584
7677
  },
7585
7678
  [setValue, getFormattedDisplayValue, isControlled]
7586
7679
  );
7587
- const handleCalendarToggle = (0, import_react52.useCallback)(
7680
+ const handleCalendarToggle = (0, import_react53.useCallback)(
7588
7681
  (event) => {
7589
7682
  setAnchorEl(anchorEl ? null : event.currentTarget);
7590
7683
  innerRef.current?.focus();
7591
7684
  },
7592
7685
  [anchorEl, setAnchorEl, innerRef]
7593
7686
  );
7594
- const handleInputMouseDown = (0, import_react52.useCallback)(
7687
+ const handleInputMouseDown = (0, import_react53.useCallback)(
7595
7688
  (event) => {
7596
7689
  event.preventDefault();
7597
7690
  buttonRef.current?.focus();
7598
7691
  },
7599
7692
  [buttonRef]
7600
7693
  );
7601
- return /* @__PURE__ */ import_react52.default.createElement(MonthPickerRoot, null, /* @__PURE__ */ import_react52.default.createElement(import_base6.FocusTrap, { open: true }, /* @__PURE__ */ import_react52.default.createElement(import_react52.default.Fragment, null, /* @__PURE__ */ import_react52.default.createElement(
7694
+ return /* @__PURE__ */ import_react53.default.createElement(MonthPickerRoot, null, /* @__PURE__ */ import_react53.default.createElement(import_base6.FocusTrap, { open: true }, /* @__PURE__ */ import_react53.default.createElement(import_react53.default.Fragment, null, /* @__PURE__ */ import_react53.default.createElement(
7602
7695
  Input_default,
7603
7696
  {
7604
7697
  ...innerProps,
@@ -7628,7 +7721,7 @@ var MonthPicker = (0, import_react52.forwardRef)((inProps, ref) => {
7628
7721
  // NOTE: placeholder char 를 텍스트로 표시하므로 동일한 너비를 가지는 mono font 를 사용해야 이질감이 없다.
7629
7722
  fontFamily: "monospace"
7630
7723
  },
7631
- endDecorator: /* @__PURE__ */ import_react52.default.createElement(
7724
+ endDecorator: /* @__PURE__ */ import_react53.default.createElement(
7632
7725
  IconButton_default,
7633
7726
  {
7634
7727
  ref: buttonRef,
@@ -7640,12 +7733,12 @@ var MonthPicker = (0, import_react52.forwardRef)((inProps, ref) => {
7640
7733
  "aria-expanded": open,
7641
7734
  disabled
7642
7735
  },
7643
- /* @__PURE__ */ import_react52.default.createElement(import_CalendarToday4.default, null)
7736
+ /* @__PURE__ */ import_react53.default.createElement(import_CalendarToday4.default, null)
7644
7737
  ),
7645
7738
  label,
7646
7739
  helperText
7647
7740
  }
7648
- ), open && /* @__PURE__ */ import_react52.default.createElement(import_base6.ClickAwayListener, { onClickAway: () => setAnchorEl(null) }, /* @__PURE__ */ import_react52.default.createElement(
7741
+ ), open && /* @__PURE__ */ import_react53.default.createElement(import_base6.ClickAwayListener, { onClickAway: () => setAnchorEl(null) }, /* @__PURE__ */ import_react53.default.createElement(
7649
7742
  StyledPopper4,
7650
7743
  {
7651
7744
  id: "month-picker-popper",
@@ -7664,7 +7757,7 @@ var MonthPicker = (0, import_react52.forwardRef)((inProps, ref) => {
7664
7757
  "aria-label": "Calendar Tooltip",
7665
7758
  "aria-expanded": open
7666
7759
  },
7667
- /* @__PURE__ */ import_react52.default.createElement(CalendarSheet4, { tabIndex: -1, role: "presentation" }, /* @__PURE__ */ import_react52.default.createElement(
7760
+ /* @__PURE__ */ import_react53.default.createElement(CalendarSheet4, { tabIndex: -1, role: "presentation" }, /* @__PURE__ */ import_react53.default.createElement(
7668
7761
  Calendar_default,
7669
7762
  {
7670
7763
  view: "month",
@@ -7685,14 +7778,14 @@ var MonthPicker = (0, import_react52.forwardRef)((inProps, ref) => {
7685
7778
  disablePast,
7686
7779
  locale
7687
7780
  }
7688
- ), /* @__PURE__ */ import_react52.default.createElement(
7781
+ ), /* @__PURE__ */ import_react53.default.createElement(
7689
7782
  DialogActions_default,
7690
7783
  {
7691
7784
  sx: {
7692
7785
  p: 1
7693
7786
  }
7694
7787
  },
7695
- /* @__PURE__ */ import_react52.default.createElement(
7788
+ /* @__PURE__ */ import_react53.default.createElement(
7696
7789
  Button_default,
7697
7790
  {
7698
7791
  size,
@@ -7715,7 +7808,7 @@ var MonthPicker = (0, import_react52.forwardRef)((inProps, ref) => {
7715
7808
  });
7716
7809
 
7717
7810
  // src/components/NavigationGroup/NavigationGroup.tsx
7718
- var import_react53 = __toESM(require("react"));
7811
+ var import_react54 = __toESM(require("react"));
7719
7812
  var import_joy66 = require("@mui/joy");
7720
7813
  var AccordionSummary2 = (0, import_joy66.styled)(import_joy66.AccordionSummary, {
7721
7814
  name: "NavigationGroup",
@@ -7739,11 +7832,11 @@ var AccordionDetails2 = (0, import_joy66.styled)(import_joy66.AccordionDetails,
7739
7832
  }));
7740
7833
  function NavigationGroup(props) {
7741
7834
  const { title, children, startDecorator, level, ...rest } = props;
7742
- return /* @__PURE__ */ import_react53.default.createElement(import_joy66.Accordion, { ...rest }, /* @__PURE__ */ import_react53.default.createElement(AccordionSummary2, { useIcon: !!startDecorator, level }, /* @__PURE__ */ import_react53.default.createElement(import_joy66.Stack, { direction: "row", gap: 4 }, startDecorator, title)), /* @__PURE__ */ import_react53.default.createElement(AccordionDetails2, null, children));
7835
+ return /* @__PURE__ */ import_react54.default.createElement(import_joy66.Accordion, { ...rest }, /* @__PURE__ */ import_react54.default.createElement(AccordionSummary2, { useIcon: !!startDecorator, level }, /* @__PURE__ */ import_react54.default.createElement(import_joy66.Stack, { direction: "row", gap: 4 }, startDecorator, title)), /* @__PURE__ */ import_react54.default.createElement(AccordionDetails2, null, children));
7743
7836
  }
7744
7837
 
7745
7838
  // src/components/NavigationItem/NavigationItem.tsx
7746
- var import_react54 = __toESM(require("react"));
7839
+ var import_react55 = __toESM(require("react"));
7747
7840
  var import_joy67 = require("@mui/joy");
7748
7841
  var ListItemButton = (0, import_joy67.styled)(import_joy67.ListItemButton, {
7749
7842
  name: "NavigationItem",
@@ -7772,7 +7865,7 @@ function NavigationItem(props) {
7772
7865
  const handleClick = () => {
7773
7866
  onClick?.(id);
7774
7867
  };
7775
- return /* @__PURE__ */ import_react54.default.createElement(import_joy67.ListItem, { ...rest }, /* @__PURE__ */ import_react54.default.createElement(
7868
+ return /* @__PURE__ */ import_react55.default.createElement(import_joy67.ListItem, { ...rest }, /* @__PURE__ */ import_react55.default.createElement(
7776
7869
  ListItemButton,
7777
7870
  {
7778
7871
  level,
@@ -7781,21 +7874,21 @@ function NavigationItem(props) {
7781
7874
  "aria-current": selected,
7782
7875
  onClick: handleClick
7783
7876
  },
7784
- startDecorator && /* @__PURE__ */ import_react54.default.createElement(import_joy67.ListItemDecorator, null, startDecorator),
7877
+ startDecorator && /* @__PURE__ */ import_react55.default.createElement(import_joy67.ListItemDecorator, null, startDecorator),
7785
7878
  children
7786
7879
  ));
7787
7880
  }
7788
7881
 
7789
7882
  // src/components/Navigator/Navigator.tsx
7790
- var import_react55 = __toESM(require("react"));
7883
+ var import_react56 = __toESM(require("react"));
7791
7884
  function Navigator(props) {
7792
7885
  const { items, level = 0, onSelect } = props;
7793
7886
  const handleItemClick = (id) => {
7794
7887
  onSelect?.(id);
7795
7888
  };
7796
- return /* @__PURE__ */ import_react55.default.createElement("div", null, items.map((item, index) => {
7889
+ return /* @__PURE__ */ import_react56.default.createElement("div", null, items.map((item, index) => {
7797
7890
  if (item.type === "item") {
7798
- return /* @__PURE__ */ import_react55.default.createElement(
7891
+ return /* @__PURE__ */ import_react56.default.createElement(
7799
7892
  NavigationItem,
7800
7893
  {
7801
7894
  key: item.id,
@@ -7808,7 +7901,7 @@ function Navigator(props) {
7808
7901
  item.title
7809
7902
  );
7810
7903
  } else if (item.type === "group") {
7811
- return /* @__PURE__ */ import_react55.default.createElement(
7904
+ return /* @__PURE__ */ import_react56.default.createElement(
7812
7905
  NavigationGroup,
7813
7906
  {
7814
7907
  key: `${item.title}-${index}`,
@@ -7826,7 +7919,7 @@ function Navigator(props) {
7826
7919
  Navigator.displayName = "Navigator";
7827
7920
 
7828
7921
  // src/components/ProfileMenu/ProfileMenu.tsx
7829
- var import_react56 = __toESM(require("react"));
7922
+ var import_react57 = __toESM(require("react"));
7830
7923
  var import_joy68 = require("@mui/joy");
7831
7924
  var import_base7 = require("@mui/base");
7832
7925
  var import_ArrowDropDown = __toESM(require("@mui/icons-material/ArrowDropDown"));
@@ -7836,9 +7929,9 @@ var StyledProfileCard = (0, import_joy68.styled)(import_joy3.Stack, {
7836
7929
  })({});
7837
7930
  function ProfileCard(props) {
7838
7931
  const { children, chip, caption, size } = props;
7839
- const captionLevel = (0, import_react56.useMemo)(() => size === "sm" ? "body-xs" : "body-sm", [size]);
7840
- const nameLevel = (0, import_react56.useMemo)(() => size === "sm" ? "body-sm" : "body-md", [size]);
7841
- return /* @__PURE__ */ import_react56.default.createElement(StyledProfileCard, { px: 4, py: 2 }, /* @__PURE__ */ import_react56.default.createElement(import_joy3.Stack, { direction: "row", gap: 2 }, /* @__PURE__ */ import_react56.default.createElement(Typography, { level: nameLevel, fontWeight: "bold", textColor: "text.primary" }, children), chip && /* @__PURE__ */ import_react56.default.createElement(Chip, { size, color: "neutral", variant: "outlined" }, chip)), caption && /* @__PURE__ */ import_react56.default.createElement(Typography, { level: captionLevel, textColor: "text.tertiary" }, caption));
7932
+ const captionLevel = (0, import_react57.useMemo)(() => size === "sm" ? "body-xs" : "body-sm", [size]);
7933
+ const nameLevel = (0, import_react57.useMemo)(() => size === "sm" ? "body-sm" : "body-md", [size]);
7934
+ return /* @__PURE__ */ import_react57.default.createElement(StyledProfileCard, { px: 4, py: 2 }, /* @__PURE__ */ import_react57.default.createElement(import_joy3.Stack, { direction: "row", gap: 2 }, /* @__PURE__ */ import_react57.default.createElement(Typography, { level: nameLevel, fontWeight: "bold", textColor: "text.primary" }, children), chip && /* @__PURE__ */ import_react57.default.createElement(Chip, { size, color: "neutral", variant: "outlined" }, chip)), caption && /* @__PURE__ */ import_react57.default.createElement(Typography, { level: captionLevel, textColor: "text.tertiary" }, caption));
7842
7935
  }
7843
7936
  ProfileCard.displayName = "ProfileCard";
7844
7937
  var StyledProfileMenuButton = (0, import_joy68.styled)(import_joy68.MenuButton, {
@@ -7850,16 +7943,16 @@ var StyledProfileMenuButton = (0, import_joy68.styled)(import_joy68.MenuButton,
7850
7943
  }));
7851
7944
  function ProfileMenuButton(props) {
7852
7945
  const { size = "sm", src, alt, children, getInitial, ...innerProps } = props;
7853
- return /* @__PURE__ */ import_react56.default.createElement(
7946
+ return /* @__PURE__ */ import_react57.default.createElement(
7854
7947
  StyledProfileMenuButton,
7855
7948
  {
7856
7949
  variant: "plain",
7857
7950
  color: "neutral",
7858
7951
  size,
7859
- endDecorator: /* @__PURE__ */ import_react56.default.createElement(import_ArrowDropDown.default, null),
7952
+ endDecorator: /* @__PURE__ */ import_react57.default.createElement(import_ArrowDropDown.default, null),
7860
7953
  ...innerProps
7861
7954
  },
7862
- /* @__PURE__ */ import_react56.default.createElement(Avatar, { variant: "soft", color: "primary", size, src, alt, getInitial }, children)
7955
+ /* @__PURE__ */ import_react57.default.createElement(Avatar, { variant: "soft", color: "primary", size, src, alt, getInitial }, children)
7863
7956
  );
7864
7957
  }
7865
7958
  ProfileMenuButton.displayName = "ProfileMenuButton";
@@ -7879,9 +7972,9 @@ function ProfileMenu(inProps) {
7879
7972
  const [open, setOpen] = useControlledState(
7880
7973
  _open,
7881
7974
  defaultOpen ?? false,
7882
- (0, import_react56.useCallback)((value) => onOpenChange?.(value), [onOpenChange])
7975
+ (0, import_react57.useCallback)((value) => onOpenChange?.(value), [onOpenChange])
7883
7976
  );
7884
- return /* @__PURE__ */ import_react56.default.createElement(import_base7.ClickAwayListener, { onClickAway: () => setOpen(false) }, /* @__PURE__ */ import_react56.default.createElement("div", null, /* @__PURE__ */ import_react56.default.createElement(import_joy68.Dropdown, { open }, /* @__PURE__ */ import_react56.default.createElement(
7977
+ return /* @__PURE__ */ import_react57.default.createElement(import_base7.ClickAwayListener, { onClickAway: () => setOpen(false) }, /* @__PURE__ */ import_react57.default.createElement("div", null, /* @__PURE__ */ import_react57.default.createElement(import_joy68.Dropdown, { open }, /* @__PURE__ */ import_react57.default.createElement(
7885
7978
  ProfileMenuButton,
7886
7979
  {
7887
7980
  size,
@@ -7891,7 +7984,7 @@ function ProfileMenu(inProps) {
7891
7984
  getInitial
7892
7985
  },
7893
7986
  profile.name
7894
- ), /* @__PURE__ */ import_react56.default.createElement(ProfileMenuRoot, { size, placement: "bottom-end", ...innerProps, onClose: () => setOpen(false) }, /* @__PURE__ */ import_react56.default.createElement(ProfileCard, { size, caption: profile.caption, chip: profile.chip }, profile.name), !!menuItems.length && /* @__PURE__ */ import_react56.default.createElement(import_joy68.ListDivider, null), menuItems.map(({ label, ...menuProps }) => /* @__PURE__ */ import_react56.default.createElement(
7987
+ ), /* @__PURE__ */ import_react57.default.createElement(ProfileMenuRoot, { size, placement: "bottom-end", ...innerProps, onClose: () => setOpen(false) }, /* @__PURE__ */ import_react57.default.createElement(ProfileCard, { size, caption: profile.caption, chip: profile.chip }, profile.name), !!menuItems.length && /* @__PURE__ */ import_react57.default.createElement(import_joy68.ListDivider, null), menuItems.map(({ label, ...menuProps }) => /* @__PURE__ */ import_react57.default.createElement(
7895
7988
  MenuItem,
7896
7989
  {
7897
7990
  key: label,
@@ -7907,7 +8000,7 @@ function ProfileMenu(inProps) {
7907
8000
  ProfileMenu.displayName = "ProfileMenu";
7908
8001
 
7909
8002
  // src/components/RadioTileGroup/RadioTileGroup.tsx
7910
- var import_react57 = __toESM(require("react"));
8003
+ var import_react58 = __toESM(require("react"));
7911
8004
  var import_joy69 = require("@mui/joy");
7912
8005
  var RadioTileGroupRoot = (0, import_joy69.styled)(RadioGroup, {
7913
8006
  name: "RadioTileGroup",
@@ -7995,7 +8088,7 @@ function RadioTileGroup(props) {
7995
8088
  error,
7996
8089
  required
7997
8090
  } = props;
7998
- const radioGroup = /* @__PURE__ */ import_react57.default.createElement(
8091
+ const radioGroup = /* @__PURE__ */ import_react58.default.createElement(
7999
8092
  RadioTileGroupRoot,
8000
8093
  {
8001
8094
  overlay: true,
@@ -8006,7 +8099,7 @@ function RadioTileGroup(props) {
8006
8099
  flex,
8007
8100
  columns
8008
8101
  },
8009
- options.map((option) => /* @__PURE__ */ import_react57.default.createElement(
8102
+ options.map((option) => /* @__PURE__ */ import_react58.default.createElement(
8010
8103
  RadioTileSheet,
8011
8104
  {
8012
8105
  key: option.value,
@@ -8016,7 +8109,7 @@ function RadioTileGroup(props) {
8016
8109
  flex,
8017
8110
  textAlign
8018
8111
  },
8019
- /* @__PURE__ */ import_react57.default.createElement(
8112
+ /* @__PURE__ */ import_react58.default.createElement(
8020
8113
  Radio,
8021
8114
  {
8022
8115
  id: `${option.value}`,
@@ -8045,7 +8138,7 @@ function RadioTileGroup(props) {
8045
8138
  }
8046
8139
  }
8047
8140
  ),
8048
- option.startDecorator && /* @__PURE__ */ import_react57.default.createElement(
8141
+ option.startDecorator && /* @__PURE__ */ import_react58.default.createElement(
8049
8142
  Box_default,
8050
8143
  {
8051
8144
  sx: {
@@ -8066,15 +8159,15 @@ function RadioTileGroup(props) {
8066
8159
  )
8067
8160
  ))
8068
8161
  );
8069
- return /* @__PURE__ */ import_react57.default.createElement(FormControl_default, { required, disabled: allDisabled, error, size, sx, className }, label && /* @__PURE__ */ import_react57.default.createElement(FormLabel_default, null, label), radioGroup, helperText && /* @__PURE__ */ import_react57.default.createElement(FormHelperText_default, null, helperText));
8162
+ return /* @__PURE__ */ import_react58.default.createElement(FormControl_default, { required, disabled: allDisabled, error, size, sx, className }, label && /* @__PURE__ */ import_react58.default.createElement(FormLabel_default, null, label), radioGroup, helperText && /* @__PURE__ */ import_react58.default.createElement(FormHelperText_default, null, helperText));
8070
8163
  }
8071
8164
  RadioTileGroup.displayName = "RadioTileGroup";
8072
8165
 
8073
8166
  // src/components/RadioList/RadioList.tsx
8074
- var import_react58 = __toESM(require("react"));
8167
+ var import_react59 = __toESM(require("react"));
8075
8168
  function RadioList(props) {
8076
8169
  const { items, ...innerProps } = props;
8077
- return /* @__PURE__ */ import_react58.default.createElement(RadioGroup, { ...innerProps }, items.map((item) => /* @__PURE__ */ import_react58.default.createElement(Radio, { key: `${item.value}`, value: item.value, label: item.label })));
8170
+ return /* @__PURE__ */ import_react59.default.createElement(RadioGroup, { ...innerProps }, items.map((item) => /* @__PURE__ */ import_react59.default.createElement(Radio, { key: `${item.value}`, value: item.value, label: item.label })));
8078
8171
  }
8079
8172
  RadioList.displayName = "RadioList";
8080
8173
 
@@ -8165,7 +8258,7 @@ var SearchBar = React56.forwardRef(function SearchBar2(inProps, ref) {
8165
8258
  SearchBar.displayName = "SearchBar";
8166
8259
 
8167
8260
  // src/components/Stepper/Stepper.tsx
8168
- var import_react59 = __toESM(require("react"));
8261
+ var import_react60 = __toESM(require("react"));
8169
8262
  var import_joy70 = require("@mui/joy");
8170
8263
  var import_Check = __toESM(require("@mui/icons-material/Check"));
8171
8264
  var import_framer_motion27 = require("framer-motion");
@@ -8194,7 +8287,7 @@ function Stepper(props) {
8194
8287
  stepOrientation = "horizontal"
8195
8288
  } = props;
8196
8289
  const effectiveStepOrientation = orientation === "vertical" ? "horizontal" : stepOrientation;
8197
- return /* @__PURE__ */ import_react59.default.createElement(
8290
+ return /* @__PURE__ */ import_react60.default.createElement(
8198
8291
  MotionStepper,
8199
8292
  {
8200
8293
  orientation,
@@ -8233,23 +8326,23 @@ function Stepper(props) {
8233
8326
  const completed = activeStep > i + 1;
8234
8327
  const disabled = activeStep < i + 1;
8235
8328
  const hasContent = step.label || step.extraContent;
8236
- return /* @__PURE__ */ import_react59.default.createElement(
8329
+ return /* @__PURE__ */ import_react60.default.createElement(
8237
8330
  Step,
8238
8331
  {
8239
8332
  key: `step-${i}`,
8240
- indicator: /* @__PURE__ */ import_react59.default.createElement(StepIndicator, { variant: disabled ? "outlined" : "solid", color: disabled ? "neutral" : "primary" }, completed ? /* @__PURE__ */ import_react59.default.createElement(import_Check.default, null) : step.indicatorContent),
8333
+ indicator: /* @__PURE__ */ import_react60.default.createElement(StepIndicator, { variant: disabled ? "outlined" : "solid", color: disabled ? "neutral" : "primary" }, completed ? /* @__PURE__ */ import_react60.default.createElement(import_Check.default, null) : step.indicatorContent),
8241
8334
  active,
8242
8335
  completed,
8243
8336
  disabled,
8244
8337
  orientation: effectiveStepOrientation
8245
8338
  },
8246
- hasContent && /* @__PURE__ */ import_react59.default.createElement(
8339
+ hasContent && /* @__PURE__ */ import_react60.default.createElement(
8247
8340
  Stack_default,
8248
8341
  {
8249
8342
  sx: orientation === "horizontal" && effectiveStepOrientation === "vertical" ? { alignItems: "center" } : {}
8250
8343
  },
8251
- step.label && /* @__PURE__ */ import_react59.default.createElement(Typography_default, { level: "title-sm" }, step.label),
8252
- step.extraContent && /* @__PURE__ */ import_react59.default.createElement(Typography_default, { level: "body-xs" }, step.extraContent)
8344
+ step.label && /* @__PURE__ */ import_react60.default.createElement(Typography_default, { level: "title-sm" }, step.label),
8345
+ step.extraContent && /* @__PURE__ */ import_react60.default.createElement(Typography_default, { level: "body-xs" }, step.extraContent)
8253
8346
  )
8254
8347
  );
8255
8348
  })
@@ -8258,7 +8351,7 @@ function Stepper(props) {
8258
8351
  Stepper.displayName = "Stepper";
8259
8352
 
8260
8353
  // src/components/Switch/Switch.tsx
8261
- var import_react60 = __toESM(require("react"));
8354
+ var import_react61 = __toESM(require("react"));
8262
8355
  var import_joy71 = require("@mui/joy");
8263
8356
  var import_framer_motion28 = require("framer-motion");
8264
8357
  var MotionSwitch = (0, import_framer_motion28.motion)(import_joy71.Switch);
@@ -8280,14 +8373,14 @@ var StyledThumb = (0, import_joy71.styled)(import_framer_motion28.motion.div)({
8280
8373
  right: "var(--Switch-thumbOffset)"
8281
8374
  }
8282
8375
  });
8283
- var Thumb = (props) => /* @__PURE__ */ import_react60.default.createElement(StyledThumb, { ...props, layout: true, transition: spring });
8376
+ var Thumb = (props) => /* @__PURE__ */ import_react61.default.createElement(StyledThumb, { ...props, layout: true, transition: spring });
8284
8377
  var spring = {
8285
8378
  type: "spring",
8286
8379
  stiffness: 700,
8287
8380
  damping: 30
8288
8381
  };
8289
8382
  var Switch = (props) => {
8290
- return /* @__PURE__ */ import_react60.default.createElement(
8383
+ return /* @__PURE__ */ import_react61.default.createElement(
8291
8384
  MotionSwitch,
8292
8385
  {
8293
8386
  ...props,
@@ -8301,7 +8394,7 @@ var Switch = (props) => {
8301
8394
  Switch.displayName = "Switch";
8302
8395
 
8303
8396
  // src/components/Tabs/Tabs.tsx
8304
- var import_react61 = __toESM(require("react"));
8397
+ var import_react62 = __toESM(require("react"));
8305
8398
  var import_joy72 = require("@mui/joy");
8306
8399
  var StyledTabs = (0, import_joy72.styled)(import_joy72.Tabs)(({ theme }) => ({
8307
8400
  backgroundColor: theme.palette.background.body
@@ -8317,15 +8410,15 @@ var StyledTab = (0, import_joy72.styled)(import_joy72.Tab)(({ theme }) => ({
8317
8410
  backgroundColor: theme.palette.background.body
8318
8411
  }
8319
8412
  }));
8320
- var Tab = (0, import_react61.forwardRef)(function Tab2({ startDecorator, endDecorator, children, ...props }, ref) {
8321
- return /* @__PURE__ */ import_react61.default.createElement(StyledTab, { ...props, ref }, startDecorator, children, endDecorator);
8413
+ var Tab = (0, import_react62.forwardRef)(function Tab2({ startDecorator, endDecorator, children, ...props }, ref) {
8414
+ return /* @__PURE__ */ import_react62.default.createElement(StyledTab, { ...props, ref }, startDecorator, children, endDecorator);
8322
8415
  });
8323
8416
  Tab.displayName = "Tab";
8324
8417
  var TabList = import_joy72.TabList;
8325
8418
  var TabPanel = import_joy72.TabPanel;
8326
8419
 
8327
8420
  // src/components/ThemeProvider/ThemeProvider.tsx
8328
- var import_react62 = __toESM(require("react"));
8421
+ var import_react63 = __toESM(require("react"));
8329
8422
  var import_joy73 = require("@mui/joy");
8330
8423
  var colorScheme = {
8331
8424
  palette: {
@@ -8722,6 +8815,6 @@ var defaultTheme = (0, import_joy73.extendTheme)({
8722
8815
  });
8723
8816
  function ThemeProvider(props) {
8724
8817
  const theme = props.theme || defaultTheme;
8725
- return /* @__PURE__ */ import_react62.default.createElement(import_react62.default.Fragment, null, /* @__PURE__ */ import_react62.default.createElement(import_joy73.CssVarsProvider, { theme }, /* @__PURE__ */ import_react62.default.createElement(import_joy73.CssBaseline, null), props.children));
8818
+ return /* @__PURE__ */ import_react63.default.createElement(import_react63.default.Fragment, null, /* @__PURE__ */ import_react63.default.createElement(import_joy73.CssVarsProvider, { theme }, /* @__PURE__ */ import_react63.default.createElement(import_joy73.CssBaseline, null), props.children));
8726
8819
  }
8727
8820
  ThemeProvider.displayName = "ThemeProvider";