@ceed/cds 1.34.1 → 1.36.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (118) hide show
  1. package/dist/components/Accordions/Accordions.d.ts +1 -0
  2. package/dist/components/Alert/Alert.d.ts +5 -5
  3. package/dist/components/Autocomplete/Autocomplete.d.ts +2 -2
  4. package/dist/components/Avatar/Avatar.d.ts +7 -17
  5. package/dist/components/Box/Box.d.ts +1 -0
  6. package/dist/components/Breadcrumbs/Breadcrumbs.d.ts +6 -5
  7. package/dist/components/Button/Button.d.ts +3 -2
  8. package/dist/components/Calendar/Calendar.d.ts +1 -0
  9. package/dist/components/Card/Card.d.ts +1 -0
  10. package/dist/components/Checkbox/Checkbox.d.ts +1 -0
  11. package/dist/components/Chip/Chip.d.ts +1 -0
  12. package/dist/components/Container/Container.d.ts +6 -1
  13. package/dist/components/CurrencyInput/CurrencyInput.d.ts +1 -1
  14. package/dist/components/DialogActions/DialogActions.d.ts +1 -0
  15. package/dist/components/DialogContent/DialogContent.d.ts +1 -0
  16. package/dist/components/DialogFrame/DialogFrame.d.ts +1 -1
  17. package/dist/components/DialogTitle/DialogTitle.d.ts +1 -0
  18. package/dist/components/Divider/Divider.d.ts +1 -0
  19. package/dist/components/Drawer/Drawer.d.ts +1 -0
  20. package/dist/components/Dropdown/Dropdown.d.ts +28 -1
  21. package/dist/components/FormControl/FormControl.d.ts +1 -0
  22. package/dist/components/FormHelperText/FormHelperText.d.ts +1 -0
  23. package/dist/components/FormLabel/FormLabel.d.ts +1 -0
  24. package/dist/components/Grid/Grid.d.ts +1 -0
  25. package/dist/components/IconButton/IconButton.d.ts +3 -2
  26. package/dist/components/IconMenuButton/IconMenuButton.d.ts +7 -6
  27. package/dist/components/InfoSign/InfoSign.d.ts +3 -2
  28. package/dist/components/Input/Input.d.ts +8 -22
  29. package/dist/components/InsetDrawer/InsetDrawer.d.ts +1 -0
  30. package/dist/components/Markdown/Markdown.d.ts +9 -24
  31. package/dist/components/Menu/Menu.d.ts +2 -1
  32. package/dist/components/MenuButton/MenuButton.d.ts +10 -8
  33. package/dist/components/Modal/Modal.d.ts +4 -2
  34. package/dist/components/NavigationGroup/NavigationGroup.d.ts +3 -2
  35. package/dist/components/NavigationItem/NavigationItem.d.ts +3 -2
  36. package/dist/components/Navigator/Navigator.d.ts +5 -4
  37. package/dist/components/Pagination/Pagination.d.ts +1 -1
  38. package/dist/components/Radio/Radio.d.ts +1 -0
  39. package/dist/components/RadioList/RadioList.d.ts +3 -2
  40. package/dist/components/Select/Select.d.ts +20 -10
  41. package/dist/components/Sheet/Sheet.d.ts +1 -0
  42. package/dist/components/Stack/Stack.d.ts +1 -0
  43. package/dist/components/Stepper/Stepper.d.ts +2 -1
  44. package/dist/components/Switch/Switch.d.ts +1 -0
  45. package/dist/components/Table/Table.d.ts +7 -5
  46. package/dist/components/Tabs/Tabs.d.ts +1 -0
  47. package/dist/components/Textarea/Textarea.d.ts +8 -20
  48. package/dist/components/Tooltip/Tooltip.d.ts +1 -0
  49. package/dist/components/Typography/Typography.d.ts +1 -0
  50. package/dist/components/Uploader/Uploader.d.ts +18 -17
  51. package/dist/components/data-display/Avatar.md +60 -72
  52. package/dist/components/data-display/Badge.md +197 -181
  53. package/dist/components/data-display/Chip.md +164 -142
  54. package/dist/components/data-display/DataTable.md +843 -338
  55. package/dist/components/data-display/InfoSign.md +1 -3
  56. package/dist/components/data-display/Markdown.md +93 -125
  57. package/dist/components/data-display/Table.md +1453 -1007
  58. package/dist/components/data-display/Typography.md +113 -116
  59. package/dist/components/feedback/Alert.md +80 -86
  60. package/dist/components/feedback/CircularProgress.md +32 -36
  61. package/dist/components/feedback/Dialog.md +25 -17
  62. package/dist/components/feedback/Modal.md +296 -264
  63. package/dist/components/feedback/Skeleton.md +125 -89
  64. package/dist/components/index.d.ts +62 -2
  65. package/dist/components/inputs/Autocomplete.md +191 -95
  66. package/dist/components/inputs/Button.md +83 -83
  67. package/dist/components/inputs/ButtonGroup.md +195 -185
  68. package/dist/components/inputs/Calendar.md +25 -28
  69. package/dist/components/inputs/Checkbox.md +11 -29
  70. package/dist/components/inputs/CurrencyInput.md +4 -4
  71. package/dist/components/inputs/DatePicker.md +229 -110
  72. package/dist/components/inputs/DateRangePicker.md +248 -137
  73. package/dist/components/inputs/FilterableCheckboxGroup.md +115 -55
  74. package/dist/components/inputs/FormControl.md +75 -69
  75. package/dist/components/inputs/IconButton.md +229 -205
  76. package/dist/components/inputs/Input.md +131 -98
  77. package/dist/components/inputs/MonthPicker.md +186 -84
  78. package/dist/components/inputs/MonthRangePicker.md +73 -49
  79. package/dist/components/inputs/PercentageInput.md +15 -31
  80. package/dist/components/inputs/RadioButton.md +320 -256
  81. package/dist/components/inputs/RadioList.md +66 -50
  82. package/dist/components/inputs/RadioTileGroup.md +287 -170
  83. package/dist/components/inputs/SearchBar.md +82 -60
  84. package/dist/components/inputs/Select.md +184 -120
  85. package/dist/components/inputs/Slider.md +153 -102
  86. package/dist/components/inputs/Switch.md +193 -138
  87. package/dist/components/inputs/Textarea.md +15 -20
  88. package/dist/components/inputs/Uploader/Uploader.md +68 -39
  89. package/dist/components/layout/Box.md +841 -662
  90. package/dist/components/layout/Container.md +3 -11
  91. package/dist/components/layout/Grid.md +480 -394
  92. package/dist/components/layout/Stack.md +739 -566
  93. package/dist/components/navigation/Breadcrumbs.md +4 -4
  94. package/dist/components/navigation/Drawer.md +34 -25
  95. package/dist/components/navigation/Dropdown.md +745 -408
  96. package/dist/components/navigation/IconMenuButton.md +14 -6
  97. package/dist/components/navigation/InsetDrawer.md +8 -13
  98. package/dist/components/navigation/Link.md +1 -2
  99. package/dist/components/navigation/Menu.md +623 -502
  100. package/dist/components/navigation/MenuButton.md +18 -10
  101. package/dist/components/navigation/NavigationGroup.md +19 -50
  102. package/dist/components/navigation/NavigationItem.md +6 -6
  103. package/dist/components/navigation/Navigator.md +26 -28
  104. package/dist/components/navigation/Pagination.md +86 -75
  105. package/dist/components/navigation/Stepper.md +2 -12
  106. package/dist/components/navigation/Tabs.md +48 -36
  107. package/dist/components/surfaces/Accordions.md +89 -172
  108. package/dist/components/surfaces/Card.md +1094 -709
  109. package/dist/components/surfaces/Divider.md +562 -412
  110. package/dist/components/surfaces/Sheet.md +700 -518
  111. package/dist/guides/ThemeProvider.md +8 -8
  112. package/dist/index.browser.js +4 -4
  113. package/dist/index.browser.js.map +4 -4
  114. package/dist/index.cjs +1074 -1033
  115. package/dist/index.d.ts +2 -1
  116. package/dist/index.js +720 -671
  117. package/framer/index.js +1 -1
  118. package/package.json +32 -35
package/dist/index.js CHANGED
@@ -630,7 +630,7 @@ Box.displayName = "Box";
630
630
  var Box_default = Box;
631
631
 
632
632
  // src/components/Breadcrumbs/Breadcrumbs.tsx
633
- import React8 from "react";
633
+ import React9 from "react";
634
634
  import {
635
635
  Breadcrumbs as JoyBreadcrumbs,
636
636
  Link as JoyLink,
@@ -652,7 +652,34 @@ var MenuItem = JoyMenuItem;
652
652
  var Menu_default = Menu;
653
653
 
654
654
  // src/components/Dropdown/Dropdown.tsx
655
- import { Dropdown } from "@mui/joy";
655
+ import React8, { createContext, useCallback as useCallback3, useMemo as useMemo3, useState as useState2 } from "react";
656
+ import { Dropdown as JoyDropdown } from "@mui/joy";
657
+ import { MenuButton } from "@mui/joy";
658
+ import { useMenuButton } from "@mui/base/useMenuButton";
659
+ var DropdownNestedRegistryContext = createContext(null);
660
+ function Dropdown({ open: openProp, defaultOpen = false, onOpenChange, ...rest }) {
661
+ const [nestedCount, setNestedCount] = useState2(0);
662
+ const [open, setOpen] = useControlledState(openProp, defaultOpen);
663
+ const registry = useMemo3(
664
+ () => ({
665
+ register: () => setNestedCount((c) => c + 1),
666
+ unregister: () => setNestedCount((c) => Math.max(0, c - 1))
667
+ }),
668
+ []
669
+ );
670
+ const handleOpenChange = useCallback3(
671
+ (event, isOpen) => {
672
+ if (nestedCount > 0 && !isOpen && event?.type === "blur") {
673
+ return;
674
+ }
675
+ setOpen(isOpen);
676
+ onOpenChange?.(event, isOpen);
677
+ },
678
+ [nestedCount, setOpen, onOpenChange]
679
+ );
680
+ return /* @__PURE__ */ React8.createElement(DropdownNestedRegistryContext.Provider, { value: registry }, /* @__PURE__ */ React8.createElement(JoyDropdown, { open, onOpenChange: handleOpenChange, ...rest }));
681
+ }
682
+ Dropdown.displayName = "Dropdown";
656
683
 
657
684
  // src/components/Dropdown/index.ts
658
685
  var Dropdown_default = Dropdown;
@@ -673,29 +700,29 @@ function Breadcrumbs(props) {
673
700
  } = props;
674
701
  const Crumb = (props2) => {
675
702
  if (props2.type === "link" && Link4) {
676
- return /* @__PURE__ */ React8.createElement(Link4, { to: props2.linkHref, href: props2.linkHref, ...linkProps }, props2.label);
703
+ return /* @__PURE__ */ React9.createElement(Link4, { to: props2.linkHref, href: props2.linkHref, ...linkProps }, props2.label);
677
704
  } else {
678
- return /* @__PURE__ */ React8.createElement(Typography_default, null, props2.label);
705
+ return /* @__PURE__ */ React9.createElement(Typography_default, null, props2.label);
679
706
  }
680
707
  };
681
708
  if (!collapsed) {
682
- return /* @__PURE__ */ React8.createElement(JoyBreadcrumbs, { size, slots: restSlots, slotProps: restSlotProps, ...innerProps }, crumbs.map((crumb, index) => /* @__PURE__ */ React8.createElement(Crumb, { key: `breadcrumb-${index}`, ...crumb })));
709
+ return /* @__PURE__ */ React9.createElement(JoyBreadcrumbs, { size, slots: restSlots, slotProps: restSlotProps, ...innerProps }, crumbs.map((crumb, index) => /* @__PURE__ */ React9.createElement(Crumb, { key: `breadcrumb-${index}`, ...crumb })));
683
710
  }
684
711
  const _endCrumbCount = Math.max(1, endCrumbCount);
685
- const frontCrumbs = crumbs.slice(0, startCrumbCount).map((crumb) => /* @__PURE__ */ React8.createElement(Crumb, { key: `breadcrumb-${crumb.label}`, ...crumb }));
686
- const backCrumbs = (startCrumbCount + _endCrumbCount > crumbs.length ? crumbs.slice(startCrumbCount) : crumbs.slice(-_endCrumbCount)).map((crumb) => /* @__PURE__ */ React8.createElement(Crumb, { key: `breadcrumb-${crumb.label}`, ...crumb }));
687
- const collapsedCrumbs = crumbs.slice(startCrumbCount, -_endCrumbCount).map((crumb) => /* @__PURE__ */ React8.createElement(MenuItem, { key: `breadcrumb-${crumb.label}` }, /* @__PURE__ */ React8.createElement(Crumb, { ...crumb })));
688
- return /* @__PURE__ */ React8.createElement(JoyBreadcrumbs, { size, slots: restSlots, slotProps: restSlotProps, ...innerProps }, frontCrumbs, collapsedCrumbs.length && /* @__PURE__ */ React8.createElement(Dropdown_default, null, /* @__PURE__ */ React8.createElement(JoyMenuButton, { size, variant: "plain" }, "..."), /* @__PURE__ */ React8.createElement(Menu_default, { size }, collapsedCrumbs)), backCrumbs);
712
+ const frontCrumbs = crumbs.slice(0, startCrumbCount).map((crumb) => /* @__PURE__ */ React9.createElement(Crumb, { key: `breadcrumb-${crumb.label}`, ...crumb }));
713
+ const backCrumbs = (startCrumbCount + _endCrumbCount > crumbs.length ? crumbs.slice(startCrumbCount) : crumbs.slice(-_endCrumbCount)).map((crumb) => /* @__PURE__ */ React9.createElement(Crumb, { key: `breadcrumb-${crumb.label}`, ...crumb }));
714
+ const collapsedCrumbs = crumbs.slice(startCrumbCount, -_endCrumbCount).map((crumb) => /* @__PURE__ */ React9.createElement(MenuItem, { key: `breadcrumb-${crumb.label}` }, /* @__PURE__ */ React9.createElement(Crumb, { ...crumb })));
715
+ return /* @__PURE__ */ React9.createElement(JoyBreadcrumbs, { size, slots: restSlots, slotProps: restSlotProps, ...innerProps }, frontCrumbs, collapsedCrumbs.length && /* @__PURE__ */ React9.createElement(Dropdown_default, null, /* @__PURE__ */ React9.createElement(JoyMenuButton, { size, variant: "plain" }, "..."), /* @__PURE__ */ React9.createElement(Menu_default, { size }, collapsedCrumbs)), backCrumbs);
689
716
  }
690
717
  Breadcrumbs.displayName = "Breadcrumbs";
691
718
 
692
719
  // src/components/Button/Button.tsx
693
- import React9, { forwardRef as forwardRef3 } from "react";
720
+ import React10, { forwardRef as forwardRef3 } from "react";
694
721
  import { Button as JoyButton } from "@mui/joy";
695
722
  import { motion as motion11 } from "framer-motion";
696
723
  var MotionButton = motion11(JoyButton);
697
724
  var Button = forwardRef3(({ ...props }, ref) => {
698
- return /* @__PURE__ */ React9.createElement(MotionButton, { ref, ...props });
725
+ return /* @__PURE__ */ React10.createElement(MotionButton, { ref, ...props });
699
726
  });
700
727
  Button.displayName = "Button";
701
728
 
@@ -703,19 +730,19 @@ Button.displayName = "Button";
703
730
  var Button_default = Button;
704
731
 
705
732
  // src/components/Calendar/Calendar.tsx
706
- import React12, { Fragment, forwardRef as forwardRef4, useCallback as useCallback5, useEffect as useEffect3, useMemo as useMemo4, useRef as useRef3, useState as useState4 } from "react";
733
+ import React13, { Fragment, forwardRef as forwardRef4, useCallback as useCallback6, useEffect as useEffect3, useMemo as useMemo5, useRef as useRef3, useState as useState5 } from "react";
707
734
  import { styled as styled5 } from "@mui/joy";
708
735
  import ChevronLeftIcon from "@mui/icons-material/ChevronLeft";
709
736
  import ChevronRightIcon from "@mui/icons-material/ChevronRight";
710
737
  import { AnimatePresence, motion as motion13 } from "framer-motion";
711
738
 
712
739
  // src/components/Tooltip/Tooltip.tsx
713
- import React10 from "react";
740
+ import React11 from "react";
714
741
  import { Tooltip as JoyTooltip } from "@mui/joy";
715
742
  import { motion as motion12 } from "framer-motion";
716
743
  var MotionTooltip = motion12(JoyTooltip);
717
744
  var Tooltip = (props) => {
718
- return /* @__PURE__ */ React10.createElement(MotionTooltip, { ...props });
745
+ return /* @__PURE__ */ React11.createElement(MotionTooltip, { ...props });
719
746
  };
720
747
  Tooltip.displayName = "Tooltip";
721
748
 
@@ -797,43 +824,43 @@ var isSameMonth = (date1, date2) => {
797
824
  };
798
825
 
799
826
  // src/components/Calendar/hooks/use-calendar-props.ts
800
- import { useCallback as useCallback3, useMemo as useMemo3, useState as useState2 } from "react";
827
+ import { useCallback as useCallback4, useMemo as useMemo4, useState as useState3 } from "react";
801
828
  import { useThemeProps as useThemeProps2 } from "@mui/joy";
802
829
  var resolveView = (view, views) => {
803
830
  return views.includes(view) ? view : views[0];
804
831
  };
805
832
  var useCalendarProps = (inProps) => {
806
- const [uncontrolledView, setUncontrolledView] = useState2(
833
+ const [uncontrolledView, setUncontrolledView] = useState3(
807
834
  () => resolveView(inProps.view || "day", inProps.views || ["day", "month"])
808
835
  );
809
- const [uncontrolledValue, setUncontrolledValue] = useState2(
836
+ const [uncontrolledValue, setUncontrolledValue] = useState3(
810
837
  inProps.defaultValue
811
838
  );
812
- const [viewMonth, setViewMonth] = useState2(() => {
839
+ const [viewMonth, setViewMonth] = useState3(() => {
813
840
  const today = /* @__PURE__ */ new Date();
814
841
  today.setDate(1);
815
842
  today.setHours(0, 0, 0, 0);
816
843
  return inProps.value?.[0] || inProps.defaultValue?.[0] || today;
817
844
  });
818
- const [[page, direction], setPage] = useState2([0, 0]);
845
+ const [[page, direction], setPage] = useState3([0, 0]);
819
846
  const resolvedView = inProps.view ?? uncontrolledView;
820
- const resolvedMinDate = useMemo3(() => {
847
+ const resolvedMinDate = useMemo4(() => {
821
848
  const minDate = inProps.minDate || /* @__PURE__ */ new Date(0);
822
849
  minDate.setHours(0, 0, 0, 0);
823
850
  return minDate;
824
851
  }, [inProps.minDate]);
825
- const resolvedMaxDate = useMemo3(() => {
852
+ const resolvedMaxDate = useMemo4(() => {
826
853
  const maxDate = inProps.maxDate || /* @__PURE__ */ new Date(864e13);
827
854
  maxDate.setHours(0, 0, 0, 0);
828
855
  return maxDate;
829
856
  }, [inProps.maxDate]);
830
- const paginate = useCallback3(
857
+ const paginate = useCallback4(
831
858
  (newDirection) => {
832
859
  setPage([page + newDirection, newDirection]);
833
860
  },
834
861
  [page]
835
862
  );
836
- const handleViewMonthChange = useCallback3(
863
+ const handleViewMonthChange = useCallback4(
837
864
  (newMonth) => {
838
865
  setViewMonth(newMonth);
839
866
  if (resolvedView === "month") {
@@ -881,22 +908,22 @@ var useCalendarProps = (inProps) => {
881
908
  },
882
909
  name: "Calendar"
883
910
  });
884
- const ownerState = useMemo3(() => ({ ...props, viewMonth, direction }), [props, viewMonth, direction]);
911
+ const ownerState = useMemo4(() => ({ ...props, viewMonth, direction }), [props, viewMonth, direction]);
885
912
  return [props, ownerState];
886
913
  };
887
914
 
888
915
  // src/components/Calendar/hooks/use-calendar.ts
889
- import { useCallback as useCallback4, useState as useState3 } from "react";
916
+ import { useCallback as useCallback5, useState as useState4 } from "react";
890
917
  var useCalendar = (ownerState) => {
891
- const [localHoverDay, setLocalHoverDay] = useState3(null);
892
- const [localHoverMonth, setLocalHoverMonth] = useState3(null);
918
+ const [localHoverDay, setLocalHoverDay] = useState4(null);
919
+ const [localHoverMonth, setLocalHoverMonth] = useState4(null);
893
920
  const hoverDay = ownerState.hoverDay !== void 0 ? ownerState.hoverDay : localHoverDay;
894
921
  const setHoverDay = ownerState.onHoverDayChange ?? setLocalHoverDay;
895
922
  const hoverMonth = ownerState.hoverMonth !== void 0 ? ownerState.hoverMonth : localHoverMonth;
896
923
  const setHoverMonth = ownerState.onHoverMonthChange ?? setLocalHoverMonth;
897
924
  return {
898
925
  calendarTitle: ownerState.view === "month" ? getYearName(ownerState.viewMonth, ownerState.locale || "default") : getMonthName(ownerState.viewMonth, ownerState.locale || "default"),
899
- onPrev: useCallback4(() => {
926
+ onPrev: useCallback5(() => {
900
927
  if (ownerState.view === "day") {
901
928
  const currentDate = new Date(ownerState.viewMonth || /* @__PURE__ */ new Date());
902
929
  const currentYear = currentDate.getFullYear();
@@ -913,7 +940,7 @@ var useCalendar = (ownerState) => {
913
940
  ownerState.onMonthChange?.(prevYear);
914
941
  }
915
942
  }, [ownerState.onMonthChange, ownerState.viewMonth, ownerState.view]),
916
- onNext: useCallback4(() => {
943
+ onNext: useCallback5(() => {
917
944
  if (ownerState.view === "day") {
918
945
  const currentDate = new Date(ownerState.viewMonth || /* @__PURE__ */ new Date());
919
946
  const currentYear = currentDate.getFullYear();
@@ -930,7 +957,7 @@ var useCalendar = (ownerState) => {
930
957
  ownerState.onMonthChange?.(nextYear);
931
958
  }
932
959
  }, [ownerState.onMonthChange, ownerState.viewMonth, ownerState.view]),
933
- getDayCellProps: useCallback4(
960
+ getDayCellProps: useCallback5(
934
961
  (day) => {
935
962
  const thisDay = new Date(ownerState.viewMonth || /* @__PURE__ */ new Date());
936
963
  thisDay.setHours(0, 0, 0, 0);
@@ -945,7 +972,7 @@ var useCalendar = (ownerState) => {
945
972
  },
946
973
  [ownerState.rangeSelection, ownerState.value, ownerState.viewMonth, hoverDay]
947
974
  ),
948
- getMonthCellProps: useCallback4(
975
+ getMonthCellProps: useCallback5(
949
976
  (monthIndex) => {
950
977
  const thisMonth = new Date(ownerState.viewMonth || /* @__PURE__ */ new Date());
951
978
  thisMonth.setDate(1);
@@ -962,7 +989,7 @@ var useCalendar = (ownerState) => {
962
989
  },
963
990
  [ownerState.rangeSelection, ownerState.value, ownerState.viewMonth, hoverMonth]
964
991
  ),
965
- getPickerDayProps: useCallback4(
992
+ getPickerDayProps: useCallback5(
966
993
  (day) => {
967
994
  const thisDay = new Date(ownerState.viewMonth || /* @__PURE__ */ new Date());
968
995
  thisDay.setHours(0, 0, 0, 0);
@@ -1016,7 +1043,7 @@ var useCalendar = (ownerState) => {
1016
1043
  hoverDay
1017
1044
  ]
1018
1045
  ),
1019
- getPickerMonthProps: useCallback4(
1046
+ getPickerMonthProps: useCallback5(
1020
1047
  (monthIndex) => {
1021
1048
  const thisMonth = new Date(ownerState.viewMonth || /* @__PURE__ */ new Date());
1022
1049
  thisMonth.setDate(1);
@@ -1313,9 +1340,9 @@ var swipePower = (offset, velocity) => {
1313
1340
  var PickerDays = (props) => {
1314
1341
  const { ownerState } = props;
1315
1342
  const { getPickerDayProps, getDayCellProps } = useCalendar(ownerState);
1316
- const calendarDates = useMemo4(() => getCalendarDates(ownerState.viewMonth), [ownerState.viewMonth]);
1317
- const weekdayNames = useMemo4(() => getWeekdayNames(ownerState.locale || "default"), [ownerState.locale]);
1318
- return /* @__PURE__ */ React12.createElement(CalendarViewContainer, { calendarType: "datePicker" }, /* @__PURE__ */ React12.createElement(AnimatePresence, { initial: false, custom: ownerState.direction }, /* @__PURE__ */ React12.createElement(
1343
+ const calendarDates = useMemo5(() => getCalendarDates(ownerState.viewMonth), [ownerState.viewMonth]);
1344
+ const weekdayNames = useMemo5(() => getWeekdayNames(ownerState.locale || "default"), [ownerState.locale]);
1345
+ return /* @__PURE__ */ React13.createElement(CalendarViewContainer, { calendarType: "datePicker" }, /* @__PURE__ */ React13.createElement(AnimatePresence, { initial: false, custom: ownerState.direction }, /* @__PURE__ */ React13.createElement(
1319
1346
  CalendarViewTable,
1320
1347
  {
1321
1348
  key: `${ownerState.viewMonth.toString()}_${ownerState.direction}`,
@@ -1344,10 +1371,10 @@ var PickerDays = (props) => {
1344
1371
  }
1345
1372
  }
1346
1373
  },
1347
- /* @__PURE__ */ React12.createElement(CalendarWeekHeaderContainer, null, /* @__PURE__ */ React12.createElement("tr", null, weekdayNames.map((name, i) => /* @__PURE__ */ React12.createElement(Fragment, { key: `${ownerState.viewMonth}_${name}_${i}` }, /* @__PURE__ */ React12.createElement("th", null, /* @__PURE__ */ React12.createElement(Typography_default, { level: "body-xs", textAlign: "center" }, name)), i < 6 && /* @__PURE__ */ React12.createElement("th", { style: { width: 4 }, "aria-hidden": "true", "aria-description": "cell-gap" }))))),
1348
- /* @__PURE__ */ React12.createElement(CalendarDayPickerContainer, null, calendarDates.map((weekDates, rowIndex) => /* @__PURE__ */ React12.createElement(Fragment, { key: `${ownerState.viewMonth}_${rowIndex}` }, /* @__PURE__ */ React12.createElement("tr", null, weekDates.map(
1349
- (date, i) => date ? /* @__PURE__ */ React12.createElement(Fragment, { key: `${ownerState.viewMonth}_${date}_${i}` }, /* @__PURE__ */ React12.createElement(CalendarDayCell, { ...getDayCellProps(date) }, /* @__PURE__ */ React12.createElement(CalendarDay, { size: "sm", variant: "plain", color: "neutral", ...getPickerDayProps(date) }, date)), i < 6 && /* @__PURE__ */ React12.createElement("td", { "aria-hidden": "true", "aria-description": "cell-gap" })) : /* @__PURE__ */ React12.createElement(Fragment, { key: `${ownerState.viewMonth}_${i}` }, /* @__PURE__ */ React12.createElement("td", null), i < 6 && /* @__PURE__ */ React12.createElement("td", { "aria-hidden": "true", "aria-description": "cell-gap" }))
1350
- )), rowIndex < calendarDates.length - 1 && /* @__PURE__ */ React12.createElement("tr", { "aria-hidden": "true", "aria-description": "row-gap" }, /* @__PURE__ */ React12.createElement("td", { colSpan: 13, style: { height: 4 } })))))
1374
+ /* @__PURE__ */ React13.createElement(CalendarWeekHeaderContainer, null, /* @__PURE__ */ React13.createElement("tr", null, weekdayNames.map((name, i) => /* @__PURE__ */ React13.createElement(Fragment, { key: `${ownerState.viewMonth}_${name}_${i}` }, /* @__PURE__ */ React13.createElement("th", null, /* @__PURE__ */ React13.createElement(Typography_default, { level: "body-xs", textAlign: "center" }, name)), i < 6 && /* @__PURE__ */ React13.createElement("th", { style: { width: 4 }, "aria-hidden": "true", "aria-description": "cell-gap" }))))),
1375
+ /* @__PURE__ */ React13.createElement(CalendarDayPickerContainer, null, calendarDates.map((weekDates, rowIndex) => /* @__PURE__ */ React13.createElement(Fragment, { key: `${ownerState.viewMonth}_${rowIndex}` }, /* @__PURE__ */ React13.createElement("tr", null, weekDates.map(
1376
+ (date, i) => date ? /* @__PURE__ */ React13.createElement(Fragment, { key: `${ownerState.viewMonth}_${date}_${i}` }, /* @__PURE__ */ React13.createElement(CalendarDayCell, { ...getDayCellProps(date) }, /* @__PURE__ */ React13.createElement(CalendarDay, { size: "sm", variant: "plain", color: "neutral", ...getPickerDayProps(date) }, date)), i < 6 && /* @__PURE__ */ React13.createElement("td", { "aria-hidden": "true", "aria-description": "cell-gap" })) : /* @__PURE__ */ React13.createElement(Fragment, { key: `${ownerState.viewMonth}_${i}` }, /* @__PURE__ */ React13.createElement("td", null), i < 6 && /* @__PURE__ */ React13.createElement("td", { "aria-hidden": "true", "aria-description": "cell-gap" }))
1377
+ )), rowIndex < calendarDates.length - 1 && /* @__PURE__ */ React13.createElement("tr", { "aria-hidden": "true", "aria-description": "row-gap" }, /* @__PURE__ */ React13.createElement("td", { colSpan: 13, style: { height: 4 } })))))
1351
1378
  )));
1352
1379
  };
1353
1380
  var PickerMonths = (props) => {
@@ -1364,7 +1391,7 @@ var PickerMonths = (props) => {
1364
1391
  [[]]
1365
1392
  );
1366
1393
  const isMonthPicker = !ownerState.views?.find((view) => view === "day");
1367
- return /* @__PURE__ */ React12.createElement(CalendarViewContainer, { calendarType: isMonthPicker ? "monthPicker" : "datePicker" }, /* @__PURE__ */ React12.createElement(AnimatePresence, { initial: false, custom: ownerState.direction }, /* @__PURE__ */ React12.createElement(
1394
+ return /* @__PURE__ */ React13.createElement(CalendarViewContainer, { calendarType: isMonthPicker ? "monthPicker" : "datePicker" }, /* @__PURE__ */ React13.createElement(AnimatePresence, { initial: false, custom: ownerState.direction }, /* @__PURE__ */ React13.createElement(
1368
1395
  CalendarViewTable,
1369
1396
  {
1370
1397
  key: `${ownerState.viewMonth.getFullYear()}_${ownerState.direction}`,
@@ -1393,16 +1420,16 @@ var PickerMonths = (props) => {
1393
1420
  }
1394
1421
  }
1395
1422
  },
1396
- /* @__PURE__ */ React12.createElement("tbody", null, chunkedMonths.map((months, i) => /* @__PURE__ */ React12.createElement(Fragment, { key: months.join("_") }, /* @__PURE__ */ React12.createElement("tr", null, months.map((monthIndex, j) => /* @__PURE__ */ React12.createElement(Fragment, { key: monthIndex }, /* @__PURE__ */ React12.createElement(CalendarMonthCell, { ...getMonthCellProps(monthIndex) }, /* @__PURE__ */ React12.createElement(CalendarMonth, { size: "sm", variant: "plain", color: "neutral", ...getPickerMonthProps(monthIndex) }, getMonthNameFromIndex(monthIndex, ownerState.locale))), j < 3 && /* @__PURE__ */ React12.createElement("td", { style: { width: 4 }, "aria-hidden": "true", "aria-description": "cell-gap" })))), i < chunkedMonths.length - 1 && /* @__PURE__ */ React12.createElement("tr", { "aria-hidden": "true", "aria-description": "row-gap" }, /* @__PURE__ */ React12.createElement("td", { colSpan: 7, style: { height: 4 } })))))
1423
+ /* @__PURE__ */ React13.createElement("tbody", null, chunkedMonths.map((months, i) => /* @__PURE__ */ React13.createElement(Fragment, { key: months.join("_") }, /* @__PURE__ */ React13.createElement("tr", null, months.map((monthIndex, j) => /* @__PURE__ */ React13.createElement(Fragment, { key: monthIndex }, /* @__PURE__ */ React13.createElement(CalendarMonthCell, { ...getMonthCellProps(monthIndex) }, /* @__PURE__ */ React13.createElement(CalendarMonth, { size: "sm", variant: "plain", color: "neutral", ...getPickerMonthProps(monthIndex) }, getMonthNameFromIndex(monthIndex, ownerState.locale))), j < 3 && /* @__PURE__ */ React13.createElement("td", { style: { width: 4 }, "aria-hidden": "true", "aria-description": "cell-gap" })))), i < chunkedMonths.length - 1 && /* @__PURE__ */ React13.createElement("tr", { "aria-hidden": "true", "aria-description": "row-gap" }, /* @__PURE__ */ React13.createElement("td", { colSpan: 7, style: { height: 4 } })))))
1397
1424
  )));
1398
1425
  };
1399
1426
  var PlainPickerDays = ({ ownerState }) => {
1400
1427
  const { getPickerDayProps, getDayCellProps } = useCalendar(ownerState);
1401
- const calendarDates = useMemo4(() => getCalendarDates(ownerState.viewMonth), [ownerState.viewMonth]);
1402
- const weekdayNames = useMemo4(() => getWeekdayNames(ownerState.locale || "default"), [ownerState.locale]);
1403
- return /* @__PURE__ */ React12.createElement(StaticCalendarViewTable, null, /* @__PURE__ */ React12.createElement(CalendarWeekHeaderContainer, null, /* @__PURE__ */ React12.createElement("tr", null, weekdayNames.map((name, i) => /* @__PURE__ */ React12.createElement(Fragment, { key: `${ownerState.viewMonth}_${name}_${i}` }, /* @__PURE__ */ React12.createElement("th", null, /* @__PURE__ */ React12.createElement(Typography_default, { level: "body-xs", textAlign: "center" }, name)), i < 6 && /* @__PURE__ */ React12.createElement("th", { style: { width: 4 }, "aria-hidden": "true", "aria-description": "cell-gap" }))))), /* @__PURE__ */ React12.createElement(CalendarDayPickerContainer, null, calendarDates.map((weekDates, rowIndex) => /* @__PURE__ */ React12.createElement(Fragment, { key: `${ownerState.viewMonth}_${rowIndex}` }, /* @__PURE__ */ React12.createElement("tr", null, weekDates.map(
1404
- (date, i) => date ? /* @__PURE__ */ React12.createElement(Fragment, { key: `${ownerState.viewMonth}_${date}_${i}` }, /* @__PURE__ */ React12.createElement(CalendarDayCell, { ...getDayCellProps(date) }, /* @__PURE__ */ React12.createElement(CalendarDay, { size: "sm", variant: "plain", color: "neutral", ...getPickerDayProps(date) }, date)), i < 6 && /* @__PURE__ */ React12.createElement("td", { "aria-hidden": "true", "aria-description": "cell-gap" })) : /* @__PURE__ */ React12.createElement(Fragment, { key: `${ownerState.viewMonth}_${i}` }, /* @__PURE__ */ React12.createElement("td", null), i < 6 && /* @__PURE__ */ React12.createElement("td", { "aria-hidden": "true", "aria-description": "cell-gap" }))
1405
- )), rowIndex < calendarDates.length - 1 && /* @__PURE__ */ React12.createElement("tr", { "aria-hidden": "true", "aria-description": "row-gap" }, /* @__PURE__ */ React12.createElement("td", { colSpan: 13, style: { height: 4 } }))))));
1428
+ const calendarDates = useMemo5(() => getCalendarDates(ownerState.viewMonth), [ownerState.viewMonth]);
1429
+ const weekdayNames = useMemo5(() => getWeekdayNames(ownerState.locale || "default"), [ownerState.locale]);
1430
+ return /* @__PURE__ */ React13.createElement(StaticCalendarViewTable, null, /* @__PURE__ */ React13.createElement(CalendarWeekHeaderContainer, null, /* @__PURE__ */ React13.createElement("tr", null, weekdayNames.map((name, i) => /* @__PURE__ */ React13.createElement(Fragment, { key: `${ownerState.viewMonth}_${name}_${i}` }, /* @__PURE__ */ React13.createElement("th", null, /* @__PURE__ */ React13.createElement(Typography_default, { level: "body-xs", textAlign: "center" }, name)), i < 6 && /* @__PURE__ */ React13.createElement("th", { style: { width: 4 }, "aria-hidden": "true", "aria-description": "cell-gap" }))))), /* @__PURE__ */ React13.createElement(CalendarDayPickerContainer, null, calendarDates.map((weekDates, rowIndex) => /* @__PURE__ */ React13.createElement(Fragment, { key: `${ownerState.viewMonth}_${rowIndex}` }, /* @__PURE__ */ React13.createElement("tr", null, weekDates.map(
1431
+ (date, i) => date ? /* @__PURE__ */ React13.createElement(Fragment, { key: `${ownerState.viewMonth}_${date}_${i}` }, /* @__PURE__ */ React13.createElement(CalendarDayCell, { ...getDayCellProps(date) }, /* @__PURE__ */ React13.createElement(CalendarDay, { size: "sm", variant: "plain", color: "neutral", ...getPickerDayProps(date) }, date)), i < 6 && /* @__PURE__ */ React13.createElement("td", { "aria-hidden": "true", "aria-description": "cell-gap" })) : /* @__PURE__ */ React13.createElement(Fragment, { key: `${ownerState.viewMonth}_${i}` }, /* @__PURE__ */ React13.createElement("td", null), i < 6 && /* @__PURE__ */ React13.createElement("td", { "aria-hidden": "true", "aria-description": "cell-gap" }))
1432
+ )), rowIndex < calendarDates.length - 1 && /* @__PURE__ */ React13.createElement("tr", { "aria-hidden": "true", "aria-description": "row-gap" }, /* @__PURE__ */ React13.createElement("td", { colSpan: 13, style: { height: 4 } }))))));
1406
1433
  };
1407
1434
  var MultiMonthPickerDays = ({
1408
1435
  panels,
@@ -1421,7 +1448,7 @@ var MultiMonthPickerDays = ({
1421
1448
  })
1422
1449
  };
1423
1450
  const key = `${panels[0].viewMonth.toISOString()}_${direction}`;
1424
- return /* @__PURE__ */ React12.createElement("div", { style: { position: "relative", overflow: "hidden", minHeight: "250px" } }, /* @__PURE__ */ React12.createElement(AnimatePresence, { initial: false, custom: direction }, /* @__PURE__ */ React12.createElement(
1451
+ return /* @__PURE__ */ React13.createElement("div", { style: { position: "relative", overflow: "hidden", minHeight: "250px" } }, /* @__PURE__ */ React13.createElement(AnimatePresence, { initial: false, custom: direction }, /* @__PURE__ */ React13.createElement(
1425
1452
  motion13.div,
1426
1453
  {
1427
1454
  key,
@@ -1451,7 +1478,7 @@ var MultiMonthPickerDays = ({
1451
1478
  },
1452
1479
  style: { display: "flex", gap: `${CALENDAR_PANEL_GAP}px`, top: 0, left: 0, width: "100%" }
1453
1480
  },
1454
- panels.map((panelOwnerState) => /* @__PURE__ */ React12.createElement(
1481
+ panels.map((panelOwnerState) => /* @__PURE__ */ React13.createElement(
1455
1482
  "div",
1456
1483
  {
1457
1484
  key: panelOwnerState.viewMonth.toISOString(),
@@ -1463,7 +1490,7 @@ var MultiMonthPickerDays = ({
1463
1490
  boxSizing: "border-box"
1464
1491
  }
1465
1492
  },
1466
- /* @__PURE__ */ React12.createElement(PlainPickerDays, { ownerState: panelOwnerState })
1493
+ /* @__PURE__ */ React13.createElement(PlainPickerDays, { ownerState: panelOwnerState })
1467
1494
  ))
1468
1495
  )));
1469
1496
  };
@@ -1480,7 +1507,7 @@ var CalendarPanel = ({
1480
1507
  const showPrev = panelIndex === 0;
1481
1508
  const showNext = panelIndex === totalPanels - 1;
1482
1509
  const title = ownerState.view === "month" ? getYearName(ownerState.viewMonth, ownerState.locale || "default") : getMonthName(ownerState.viewMonth, ownerState.locale || "default");
1483
- return /* @__PURE__ */ React12.createElement("div", { style: { flex: 1, maxWidth: `${CALENDAR_PANEL_WIDTH}px` } }, /* @__PURE__ */ React12.createElement(CalendarHeader, null, /* @__PURE__ */ React12.createElement(
1510
+ return /* @__PURE__ */ React13.createElement("div", { style: { flex: 1, maxWidth: `${CALENDAR_PANEL_WIDTH}px` } }, /* @__PURE__ */ React13.createElement(CalendarHeader, null, /* @__PURE__ */ React13.createElement(
1484
1511
  IconButton_default,
1485
1512
  {
1486
1513
  size: "sm",
@@ -1488,8 +1515,8 @@ var CalendarPanel = ({
1488
1515
  "aria-label": `Previous ${ownerState.view === "day" ? "Month" : "Year"}`,
1489
1516
  style: { visibility: showPrev ? "visible" : "hidden" }
1490
1517
  },
1491
- /* @__PURE__ */ React12.createElement(ChevronLeftIcon, null)
1492
- ), /* @__PURE__ */ React12.createElement(
1518
+ /* @__PURE__ */ React13.createElement(ChevronLeftIcon, null)
1519
+ ), /* @__PURE__ */ React13.createElement(
1493
1520
  Tooltip_default,
1494
1521
  {
1495
1522
  title: monthViewHintMessage,
@@ -1501,7 +1528,7 @@ var CalendarPanel = ({
1501
1528
  disableTouchListener: true,
1502
1529
  variant: "solid"
1503
1530
  },
1504
- /* @__PURE__ */ React12.createElement(
1531
+ /* @__PURE__ */ React13.createElement(
1505
1532
  CalendarSwitchViewButton,
1506
1533
  {
1507
1534
  ownerState,
@@ -1512,7 +1539,7 @@ var CalendarPanel = ({
1512
1539
  },
1513
1540
  title
1514
1541
  )
1515
- ), /* @__PURE__ */ React12.createElement(
1542
+ ), /* @__PURE__ */ React13.createElement(
1516
1543
  IconButton_default,
1517
1544
  {
1518
1545
  size: "sm",
@@ -1520,7 +1547,7 @@ var CalendarPanel = ({
1520
1547
  "aria-label": `Next ${ownerState.view === "day" ? "Month" : "Year"}`,
1521
1548
  style: { visibility: showNext ? "visible" : "hidden" }
1522
1549
  },
1523
- /* @__PURE__ */ React12.createElement(ChevronRightIcon, null)
1550
+ /* @__PURE__ */ React13.createElement(ChevronRightIcon, null)
1524
1551
  )));
1525
1552
  };
1526
1553
  var Calendar = forwardRef4((inProps, ref) => {
@@ -1543,12 +1570,12 @@ var Calendar = forwardRef4((inProps, ref) => {
1543
1570
  ...others
1544
1571
  } = props;
1545
1572
  const { calendarTitle, onPrev, onNext } = useCalendar(ownerState);
1546
- const [isMonthViewAssistHintOpen, setIsMonthViewAssistHintOpen] = useState4(false);
1573
+ const [isMonthViewAssistHintOpen, setIsMonthViewAssistHintOpen] = useState5(false);
1547
1574
  const monthNavClickTimestampsRef = useRef3([]);
1548
1575
  const monthViewAssistHintShownInSessionRef = useRef3(false);
1549
1576
  const monthViewAssistHintTimeoutRef = useRef3(null);
1550
- const [hoverDay, setHoverDay] = useState4(null);
1551
- const [hoverMonth, setHoverMonth] = useState4(null);
1577
+ const [hoverDay, setHoverDay] = useState5(null);
1578
+ const [hoverMonth, setHoverMonth] = useState5(null);
1552
1579
  const resolvedNumberOfMonths = numberOfMonths ?? 1;
1553
1580
  const hasEndDate = Boolean(value?.[1]);
1554
1581
  const isRangeHintEligible = Boolean(rangeSelection && !hasEndDate);
@@ -1567,14 +1594,14 @@ var Calendar = forwardRef4((inProps, ref) => {
1567
1594
  }
1568
1595
  };
1569
1596
  }, []);
1570
- const closeMonthViewAssistHint = useCallback5(() => {
1597
+ const closeMonthViewAssistHint = useCallback6(() => {
1571
1598
  if (monthViewAssistHintTimeoutRef.current) {
1572
1599
  clearTimeout(monthViewAssistHintTimeoutRef.current);
1573
1600
  monthViewAssistHintTimeoutRef.current = null;
1574
1601
  }
1575
1602
  setIsMonthViewAssistHintOpen(false);
1576
1603
  }, []);
1577
- const showMonthViewAssistHint = useCallback5(() => {
1604
+ const showMonthViewAssistHint = useCallback6(() => {
1578
1605
  const now = Date.now();
1579
1606
  if (monthViewAssistHintShownInSessionRef.current) return;
1580
1607
  if (now - lastMonthViewAssistHintShownAt < MONTH_VIEW_HINT_COOLDOWN_MS) return;
@@ -1589,7 +1616,7 @@ var Calendar = forwardRef4((inProps, ref) => {
1589
1616
  monthViewAssistHintTimeoutRef.current = null;
1590
1617
  }, MONTH_VIEW_HINT_DURATION_MS);
1591
1618
  }, []);
1592
- const trackFastMonthNavigation = useCallback5(() => {
1619
+ const trackFastMonthNavigation = useCallback6(() => {
1593
1620
  if (!isHintEligible) return;
1594
1621
  const now = Date.now();
1595
1622
  monthNavClickTimestampsRef.current = [
@@ -1600,15 +1627,15 @@ var Calendar = forwardRef4((inProps, ref) => {
1600
1627
  showMonthViewAssistHint();
1601
1628
  }
1602
1629
  }, [isHintEligible, showMonthViewAssistHint]);
1603
- const handlePrevClick = useCallback5(() => {
1630
+ const handlePrevClick = useCallback6(() => {
1604
1631
  onPrev();
1605
1632
  trackFastMonthNavigation();
1606
1633
  }, [onPrev, trackFastMonthNavigation]);
1607
- const handleNextClick = useCallback5(() => {
1634
+ const handleNextClick = useCallback6(() => {
1608
1635
  onNext();
1609
1636
  trackFastMonthNavigation();
1610
1637
  }, [onNext, trackFastMonthNavigation]);
1611
- const handleSwitchViewClick = useCallback5(() => {
1638
+ const handleSwitchViewClick = useCallback6(() => {
1612
1639
  closeMonthViewAssistHint();
1613
1640
  onViewChange?.();
1614
1641
  }, [closeMonthViewAssistHint, onViewChange]);
@@ -1628,9 +1655,9 @@ var Calendar = forwardRef4((inProps, ref) => {
1628
1655
  onHoverMonthChange: setHoverMonth
1629
1656
  };
1630
1657
  });
1631
- return /* @__PURE__ */ React12.createElement(CalendarRoot, { ref, ...others, style: { maxWidth: `${maxWidth}px` } }, view === "month" ? (
1658
+ return /* @__PURE__ */ React13.createElement(CalendarRoot, { ref, ...others, style: { maxWidth: `${maxWidth}px` } }, view === "month" ? (
1632
1659
  // Month view: single header + single month grid (consistent with single-month path)
1633
- /* @__PURE__ */ React12.createElement(React12.Fragment, null, /* @__PURE__ */ React12.createElement(CalendarHeader, null, /* @__PURE__ */ React12.createElement(IconButton_default, { size: "sm", onClick: handlePrevClick, "aria-label": "Previous Year" }, /* @__PURE__ */ React12.createElement(ChevronLeftIcon, null)), /* @__PURE__ */ React12.createElement(
1660
+ /* @__PURE__ */ React13.createElement(React13.Fragment, null, /* @__PURE__ */ React13.createElement(CalendarHeader, null, /* @__PURE__ */ React13.createElement(IconButton_default, { size: "sm", onClick: handlePrevClick, "aria-label": "Previous Year" }, /* @__PURE__ */ React13.createElement(ChevronLeftIcon, null)), /* @__PURE__ */ React13.createElement(
1634
1661
  Tooltip_default,
1635
1662
  {
1636
1663
  title: monthViewHintMessage,
@@ -1642,7 +1669,7 @@ var Calendar = forwardRef4((inProps, ref) => {
1642
1669
  disableTouchListener: true,
1643
1670
  variant: "solid"
1644
1671
  },
1645
- /* @__PURE__ */ React12.createElement(
1672
+ /* @__PURE__ */ React13.createElement(
1646
1673
  CalendarSwitchViewButton,
1647
1674
  {
1648
1675
  ownerState,
@@ -1653,8 +1680,8 @@ var Calendar = forwardRef4((inProps, ref) => {
1653
1680
  },
1654
1681
  calendarTitle
1655
1682
  )
1656
- ), /* @__PURE__ */ React12.createElement(IconButton_default, { size: "sm", onClick: handleNextClick, "aria-label": "Next Year" }, /* @__PURE__ */ React12.createElement(ChevronRightIcon, null))), /* @__PURE__ */ React12.createElement(PickerMonths, { ownerState }))
1657
- ) : /* @__PURE__ */ React12.createElement(React12.Fragment, null, /* @__PURE__ */ React12.createElement(CalendarMultiContainer, null, panels.map((panelOwnerState, i) => /* @__PURE__ */ React12.createElement(
1683
+ ), /* @__PURE__ */ React13.createElement(IconButton_default, { size: "sm", onClick: handleNextClick, "aria-label": "Next Year" }, /* @__PURE__ */ React13.createElement(ChevronRightIcon, null))), /* @__PURE__ */ React13.createElement(PickerMonths, { ownerState }))
1684
+ ) : /* @__PURE__ */ React13.createElement(React13.Fragment, null, /* @__PURE__ */ React13.createElement(CalendarMultiContainer, null, panels.map((panelOwnerState, i) => /* @__PURE__ */ React13.createElement(
1658
1685
  CalendarPanel,
1659
1686
  {
1660
1687
  key: panelOwnerState.viewMonth.toISOString(),
@@ -1667,7 +1694,7 @@ var Calendar = forwardRef4((inProps, ref) => {
1667
1694
  isMonthViewAssistHintOpen,
1668
1695
  monthViewHintMessage
1669
1696
  }
1670
- ))), /* @__PURE__ */ React12.createElement(
1697
+ ))), /* @__PURE__ */ React13.createElement(
1671
1698
  MultiMonthPickerDays,
1672
1699
  {
1673
1700
  panels,
@@ -1676,7 +1703,7 @@ var Calendar = forwardRef4((inProps, ref) => {
1676
1703
  }
1677
1704
  )));
1678
1705
  }
1679
- return /* @__PURE__ */ React12.createElement(CalendarRoot, { ref, ...others, style: { maxWidth: `${maxWidth}px` } }, /* @__PURE__ */ React12.createElement(CalendarHeader, null, /* @__PURE__ */ React12.createElement(IconButton_default, { size: "sm", onClick: handlePrevClick, "aria-label": `Previous ${view === "day" ? "Month" : "Year"}` }, /* @__PURE__ */ React12.createElement(ChevronLeftIcon, null)), /* @__PURE__ */ React12.createElement(
1706
+ return /* @__PURE__ */ React13.createElement(CalendarRoot, { ref, ...others, style: { maxWidth: `${maxWidth}px` } }, /* @__PURE__ */ React13.createElement(CalendarHeader, null, /* @__PURE__ */ React13.createElement(IconButton_default, { size: "sm", onClick: handlePrevClick, "aria-label": `Previous ${view === "day" ? "Month" : "Year"}` }, /* @__PURE__ */ React13.createElement(ChevronLeftIcon, null)), /* @__PURE__ */ React13.createElement(
1680
1707
  Tooltip_default,
1681
1708
  {
1682
1709
  title: monthViewHintMessage,
@@ -1688,7 +1715,7 @@ var Calendar = forwardRef4((inProps, ref) => {
1688
1715
  disableTouchListener: true,
1689
1716
  variant: "solid"
1690
1717
  },
1691
- /* @__PURE__ */ React12.createElement(
1718
+ /* @__PURE__ */ React13.createElement(
1692
1719
  CalendarSwitchViewButton,
1693
1720
  {
1694
1721
  ownerState,
@@ -1699,7 +1726,7 @@ var Calendar = forwardRef4((inProps, ref) => {
1699
1726
  },
1700
1727
  calendarTitle
1701
1728
  )
1702
- ), /* @__PURE__ */ React12.createElement(IconButton_default, { size: "sm", onClick: handleNextClick, "aria-label": `Next ${view === "day" ? "Month" : "Year"}` }, /* @__PURE__ */ React12.createElement(ChevronRightIcon, null))), view === "day" && /* @__PURE__ */ React12.createElement(PickerDays, { ownerState }), view === "month" && /* @__PURE__ */ React12.createElement(PickerMonths, { ownerState }));
1729
+ ), /* @__PURE__ */ React13.createElement(IconButton_default, { size: "sm", onClick: handleNextClick, "aria-label": `Next ${view === "day" ? "Month" : "Year"}` }, /* @__PURE__ */ React13.createElement(ChevronRightIcon, null))), view === "day" && /* @__PURE__ */ React13.createElement(PickerDays, { ownerState }), view === "month" && /* @__PURE__ */ React13.createElement(PickerMonths, { ownerState }));
1703
1730
  });
1704
1731
  Calendar.displayName = "Calendar";
1705
1732
 
@@ -1732,12 +1759,12 @@ var CardOverflow = MotionCardOverflow;
1732
1759
  CardOverflow.displayName = "CardOverflow";
1733
1760
 
1734
1761
  // src/components/Checkbox/Checkbox.tsx
1735
- import React13 from "react";
1762
+ import React14 from "react";
1736
1763
  import { Checkbox as JoyCheckbox } from "@mui/joy";
1737
1764
  import { motion as motion15 } from "framer-motion";
1738
1765
  var MotionCheckbox = motion15(JoyCheckbox);
1739
1766
  var Checkbox = (props) => {
1740
- return /* @__PURE__ */ React13.createElement(MotionCheckbox, { ...props });
1767
+ return /* @__PURE__ */ React14.createElement(MotionCheckbox, { ...props });
1741
1768
  };
1742
1769
  Checkbox.displayName = "Checkbox";
1743
1770
 
@@ -1746,7 +1773,7 @@ var Checkbox_default = Checkbox;
1746
1773
 
1747
1774
  // src/components/Container/Container.tsx
1748
1775
  import { styled as styled6 } from "@mui/joy";
1749
- import React14, { forwardRef as forwardRef5 } from "react";
1776
+ import React15, { forwardRef as forwardRef5 } from "react";
1750
1777
  var ContainerRoot = styled6("div", {
1751
1778
  name: "Container",
1752
1779
  slot: "root",
@@ -1773,23 +1800,23 @@ var ContainerRoot = styled6("div", {
1773
1800
  } : null
1774
1801
  ]);
1775
1802
  var Container = forwardRef5(function Container2(props, ref) {
1776
- return /* @__PURE__ */ React14.createElement(ContainerRoot, { ref, ...props });
1803
+ return /* @__PURE__ */ React15.createElement(ContainerRoot, { ref, ...props });
1777
1804
  });
1778
1805
  Container.displayName = "Container";
1779
1806
 
1780
1807
  // src/components/CurrencyInput/CurrencyInput.tsx
1781
- import React16, { useCallback as useCallback7, useMemo as useMemo5, useState as useState6 } from "react";
1808
+ import React17, { useCallback as useCallback8, useMemo as useMemo6, useState as useState7 } from "react";
1782
1809
  import { NumericFormat } from "react-number-format";
1783
1810
 
1784
1811
  // src/components/Input/Input.tsx
1785
- import React15, { useCallback as useCallback6, useState as useState5 } from "react";
1812
+ import React16, { useCallback as useCallback7, useState as useState6 } from "react";
1786
1813
  import { Input as JoyInput } from "@mui/joy";
1787
1814
  import { motion as motion16 } from "framer-motion";
1788
1815
  import ClearIcon from "@mui/icons-material/Close";
1789
1816
  import VisibilityIcon from "@mui/icons-material/Visibility";
1790
1817
  import VisibilityOffIcon from "@mui/icons-material/VisibilityOff";
1791
1818
  var MotionInput = motion16(JoyInput);
1792
- var Input = React15.forwardRef((props, ref) => {
1819
+ var Input = React16.forwardRef((props, ref) => {
1793
1820
  const {
1794
1821
  label,
1795
1822
  helperText,
@@ -1812,11 +1839,11 @@ var Input = React15.forwardRef((props, ref) => {
1812
1839
  if (type === "password" && innerProps.endDecorator) {
1813
1840
  console.warn('Input: endDecorator is not supported when type="password"');
1814
1841
  }
1815
- const [passwordVisible, setPasswordVisible] = useState5(false);
1842
+ const [passwordVisible, setPasswordVisible] = useState6(false);
1816
1843
  const [value, setValue] = useControlledState(
1817
1844
  props.value,
1818
1845
  props.defaultValue,
1819
- useCallback6(
1846
+ useCallback7(
1820
1847
  (value2) => {
1821
1848
  onChange?.({
1822
1849
  /**
@@ -1842,7 +1869,7 @@ var Input = React15.forwardRef((props, ref) => {
1842
1869
  const actualType = type === "password" && passwordVisible ? "text" : type;
1843
1870
  const isPasswordType = type === "password";
1844
1871
  const showPasswordToggle = isPasswordType && !disableTogglePasswordButton;
1845
- const input = /* @__PURE__ */ React15.createElement(
1872
+ const input = /* @__PURE__ */ React16.createElement(
1846
1873
  MotionInput,
1847
1874
  {
1848
1875
  value,
@@ -1857,7 +1884,7 @@ var Input = React15.forwardRef((props, ref) => {
1857
1884
  ...innerProps.slotProps
1858
1885
  },
1859
1886
  ...innerProps,
1860
- endDecorator: isPasswordType ? showPasswordToggle ? /* @__PURE__ */ React15.createElement(Stack_default, { gap: 1, direction: "row" }, /* @__PURE__ */ React15.createElement(
1887
+ endDecorator: isPasswordType ? showPasswordToggle ? /* @__PURE__ */ React16.createElement(Stack_default, { gap: 1, direction: "row" }, /* @__PURE__ */ React16.createElement(
1861
1888
  IconButton_default,
1862
1889
  {
1863
1890
  onMouseDown: (e) => e.preventDefault(),
@@ -1865,19 +1892,19 @@ var Input = React15.forwardRef((props, ref) => {
1865
1892
  disabled,
1866
1893
  "aria-label": passwordVisible ? "Hide password" : "Show password"
1867
1894
  },
1868
- passwordVisible ? /* @__PURE__ */ React15.createElement(VisibilityOffIcon, null) : /* @__PURE__ */ React15.createElement(VisibilityIcon, null)
1869
- )) : null : enableClearable ? /* @__PURE__ */ React15.createElement(Stack_default, { gap: 1, direction: "row" }, innerProps.endDecorator, value && /* @__PURE__ */ React15.createElement(
1895
+ passwordVisible ? /* @__PURE__ */ React16.createElement(VisibilityOffIcon, null) : /* @__PURE__ */ React16.createElement(VisibilityIcon, null)
1896
+ )) : null : enableClearable ? /* @__PURE__ */ React16.createElement(Stack_default, { gap: 1, direction: "row" }, innerProps.endDecorator, value && /* @__PURE__ */ React16.createElement(
1870
1897
  IconButton_default,
1871
1898
  {
1872
1899
  onMouseDown: (e) => e.preventDefault(),
1873
1900
  onClick: handleClear,
1874
1901
  "aria-label": "Clear"
1875
1902
  },
1876
- /* @__PURE__ */ React15.createElement(ClearIcon, null)
1903
+ /* @__PURE__ */ React16.createElement(ClearIcon, null)
1877
1904
  )) : innerProps.endDecorator
1878
1905
  }
1879
1906
  );
1880
- return /* @__PURE__ */ React15.createElement(
1907
+ return /* @__PURE__ */ React16.createElement(
1881
1908
  FormControl_default,
1882
1909
  {
1883
1910
  required,
@@ -1888,9 +1915,9 @@ var Input = React15.forwardRef((props, ref) => {
1888
1915
  sx,
1889
1916
  className
1890
1917
  },
1891
- label && /* @__PURE__ */ React15.createElement(FormLabel_default, null, label),
1918
+ label && /* @__PURE__ */ React16.createElement(FormLabel_default, null, label),
1892
1919
  input,
1893
- helperText && /* @__PURE__ */ React15.createElement(FormHelperText_default, null, helperText)
1920
+ helperText && /* @__PURE__ */ React16.createElement(FormHelperText_default, null, helperText)
1894
1921
  );
1895
1922
  });
1896
1923
  Input.displayName = "Input";
@@ -2062,9 +2089,9 @@ var useCurrencySetting = (props) => {
2062
2089
  };
2063
2090
 
2064
2091
  // src/components/CurrencyInput/CurrencyInput.tsx
2065
- var TextMaskAdapter = React16.forwardRef(function TextMaskAdapter2(props, ref) {
2092
+ var TextMaskAdapter = React17.forwardRef(function TextMaskAdapter2(props, ref) {
2066
2093
  const { onChange, ...innerProps } = props;
2067
- return /* @__PURE__ */ React16.createElement(
2094
+ return /* @__PURE__ */ React17.createElement(
2068
2095
  NumericFormat,
2069
2096
  {
2070
2097
  ...innerProps,
@@ -2084,7 +2111,7 @@ var CurrencyInputRoot = styled7(Input_default, {
2084
2111
  slot: "root",
2085
2112
  overridesResolver: (props, styles) => styles.root
2086
2113
  })({});
2087
- var CurrencyInput = React16.forwardRef(function CurrencyInput2(inProps, ref) {
2114
+ var CurrencyInput = React17.forwardRef(function CurrencyInput2(inProps, ref) {
2088
2115
  const props = useThemeProps3({ props: inProps, name: "CurrencyInput" });
2089
2116
  const {
2090
2117
  currency = "USD",
@@ -2105,22 +2132,22 @@ var CurrencyInput = React16.forwardRef(function CurrencyInput2(inProps, ref) {
2105
2132
  const [_value, setValue] = useControlledState(
2106
2133
  props.value,
2107
2134
  props.defaultValue,
2108
- useCallback7((value2) => onChange?.({ target: { name, value: value2 } }), [onChange, name])
2135
+ useCallback8((value2) => onChange?.({ target: { name, value: value2 } }), [onChange, name])
2109
2136
  );
2110
- const value = useMemo5(() => {
2137
+ const value = useMemo6(() => {
2111
2138
  if (_value && useMinorUnit) {
2112
2139
  return _value / Math.pow(10, decimalScale);
2113
2140
  }
2114
2141
  return _value;
2115
2142
  }, [_value, useMinorUnit, decimalScale]);
2116
- const max = useMemo5(() => {
2143
+ const max = useMemo6(() => {
2117
2144
  if (props.max && useMinorUnit) {
2118
2145
  return props.max / Math.pow(10, decimalScale);
2119
2146
  }
2120
2147
  return props.max;
2121
2148
  }, [props.max, useMinorUnit, decimalScale]);
2122
- const [isOverLimit, setIsOverLimit] = useState6(!!max && !!value && value > max);
2123
- const handleChange = useCallback7(
2149
+ const [isOverLimit, setIsOverLimit] = useState7(!!max && !!value && value > max);
2150
+ const handleChange = useCallback8(
2124
2151
  (event) => {
2125
2152
  if (event.target.value === "") {
2126
2153
  setValue(void 0);
@@ -2136,7 +2163,7 @@ var CurrencyInput = React16.forwardRef(function CurrencyInput2(inProps, ref) {
2136
2163
  },
2137
2164
  [decimalSeparator, max, useMinorUnit, setValue]
2138
2165
  );
2139
- return /* @__PURE__ */ React16.createElement(
2166
+ return /* @__PURE__ */ React17.createElement(
2140
2167
  CurrencyInputRoot,
2141
2168
  {
2142
2169
  ...innerProps,
@@ -2173,9 +2200,9 @@ var CurrencyInput = React16.forwardRef(function CurrencyInput2(inProps, ref) {
2173
2200
  var CurrencyInput_default = CurrencyInput;
2174
2201
 
2175
2202
  // src/components/DataTable/DataTable.tsx
2176
- import React25, {
2177
- useCallback as useCallback12,
2178
- useMemo as useMemo10,
2203
+ import React26, {
2204
+ useCallback as useCallback13,
2205
+ useMemo as useMemo11,
2179
2206
  useRef as useRef7,
2180
2207
  useId,
2181
2208
  forwardRef as forwardRef7,
@@ -2411,7 +2438,7 @@ function computeAutoFitWidth(params) {
2411
2438
  }
2412
2439
 
2413
2440
  // src/components/DataTable/styled.tsx
2414
- import React17 from "react";
2441
+ import React18 from "react";
2415
2442
  import { styled as styled8, LinearProgress, buttonClasses, iconButtonClasses, Typography as Typography3 } from "@mui/joy";
2416
2443
  import { motion as motion17 } from "framer-motion";
2417
2444
  import SortIcon from "@mui/icons-material/ArrowUpwardRounded";
@@ -2517,9 +2544,9 @@ var StyledTd = styled8("td")(({ theme }) => ({
2517
2544
  }
2518
2545
  }));
2519
2546
  var MotionSortIcon = motion17(SortIcon);
2520
- var DefaultLoadingOverlay = () => /* @__PURE__ */ React17.createElement(LinearProgress, { value: 8, variant: "plain" });
2521
- var DefaultNoRowsOverlay = () => /* @__PURE__ */ React17.createElement(Typography3, { level: "body-sm", textColor: "text.tertiary" }, "No rows");
2522
- var Resizer = (ref, targetRef = ref, onResizeStateChange, onAutoFit) => /* @__PURE__ */ React17.createElement(
2547
+ var DefaultLoadingOverlay = () => /* @__PURE__ */ React18.createElement(LinearProgress, { value: 8, variant: "plain" });
2548
+ var DefaultNoRowsOverlay = () => /* @__PURE__ */ React18.createElement(Typography3, { level: "body-sm", textColor: "text.tertiary" }, "No rows");
2549
+ var Resizer = (ref, targetRef = ref, onResizeStateChange, onAutoFit) => /* @__PURE__ */ React18.createElement(
2523
2550
  Box_default,
2524
2551
  {
2525
2552
  sx: {
@@ -2596,12 +2623,12 @@ var Resizer = (ref, targetRef = ref, onResizeStateChange, onAutoFit) => /* @__PU
2596
2623
  );
2597
2624
 
2598
2625
  // src/components/DataTable/components.tsx
2599
- import React22, {
2626
+ import React23, {
2600
2627
  useRef as useRef5,
2601
- useState as useState8,
2628
+ useState as useState9,
2602
2629
  useLayoutEffect,
2603
- useMemo as useMemo8,
2604
- useCallback as useCallback9,
2630
+ useMemo as useMemo9,
2631
+ useCallback as useCallback10,
2605
2632
  useEffect as useEffect5,
2606
2633
  memo,
2607
2634
  createElement
@@ -2610,7 +2637,7 @@ import { styled as styled12, useTheme } from "@mui/joy";
2610
2637
  import { AnimatePresence as AnimatePresence2 } from "framer-motion";
2611
2638
 
2612
2639
  // src/components/DatePicker/DatePicker.tsx
2613
- import React18, { forwardRef as forwardRef6, useCallback as useCallback8, useEffect as useEffect4, useImperativeHandle, useRef as useRef4, useState as useState7 } from "react";
2640
+ import React19, { forwardRef as forwardRef6, useCallback as useCallback9, useEffect as useEffect4, useImperativeHandle, useRef as useRef4, useState as useState8 } from "react";
2614
2641
  import { IMaskInput, IMask } from "react-imask";
2615
2642
  import CalendarTodayIcon from "@mui/icons-material/CalendarToday";
2616
2643
  import { styled as styled10, useThemeProps as useThemeProps4 } from "@mui/joy";
@@ -2763,9 +2790,9 @@ function parseDate(dateString, format) {
2763
2790
  var formatToPattern = (format) => {
2764
2791
  return format.replace(/YYYY/g, "Y").replace(/MM/g, "M").replace(/DD/g, "D").replace(/[^YMD\s]/g, (match) => `${match}\``);
2765
2792
  };
2766
- var TextMaskAdapter3 = React18.forwardRef(function TextMaskAdapter4(props, ref) {
2793
+ var TextMaskAdapter3 = React19.forwardRef(function TextMaskAdapter4(props, ref) {
2767
2794
  const { onChange, format, ...other } = props;
2768
- return /* @__PURE__ */ React18.createElement(
2795
+ return /* @__PURE__ */ React19.createElement(
2769
2796
  IMaskInput,
2770
2797
  {
2771
2798
  ...other,
@@ -2832,13 +2859,13 @@ var DatePicker = forwardRef6((inProps, ref) => {
2832
2859
  const [value, setValue] = useControlledState(
2833
2860
  props.value,
2834
2861
  props.defaultValue || "",
2835
- useCallback8((value2) => onChange?.({ target: { name: props.name, value: value2 } }), [props.name, onChange])
2862
+ useCallback9((value2) => onChange?.({ target: { name: props.name, value: value2 } }), [props.name, onChange])
2836
2863
  );
2837
2864
  const isAlphabeticDisplay = hasAlphabeticMonth(displayFormat);
2838
- const [displayValue, setDisplayValue] = useState7(
2865
+ const [displayValue, setDisplayValue] = useState8(
2839
2866
  () => value ? formatValueString(parseDate(value, format), displayFormat, locale) : ""
2840
2867
  );
2841
- const [anchorEl, setAnchorEl] = useState7(null);
2868
+ const [anchorEl, setAnchorEl] = useState8(null);
2842
2869
  const open = Boolean(anchorEl);
2843
2870
  useEffect4(() => {
2844
2871
  if (!anchorEl) {
@@ -2856,7 +2883,7 @@ var DatePicker = forwardRef6((inProps, ref) => {
2856
2883
  }
2857
2884
  }, [displayFormat, displayValue, format, locale, value]);
2858
2885
  useImperativeHandle(ref, () => innerRef.current, [innerRef]);
2859
- const handleChange = useCallback8(
2886
+ const handleChange = useCallback9(
2860
2887
  (event) => {
2861
2888
  const value2 = event.target.value;
2862
2889
  setDisplayValue(value2 ? formatValueString(parseDate(value2, format), displayFormat, locale) : value2);
@@ -2864,7 +2891,7 @@ var DatePicker = forwardRef6((inProps, ref) => {
2864
2891
  },
2865
2892
  [displayFormat, format, locale, setValue]
2866
2893
  );
2867
- const handleDisplayInputChange = useCallback8(
2894
+ const handleDisplayInputChange = useCallback9(
2868
2895
  (event) => {
2869
2896
  if (event.target.value === "") {
2870
2897
  handleChange({
@@ -2889,7 +2916,7 @@ var DatePicker = forwardRef6((inProps, ref) => {
2889
2916
  },
2890
2917
  [displayFormat, format, handleChange, props.name]
2891
2918
  );
2892
- const handleCalendarToggle = useCallback8(
2919
+ const handleCalendarToggle = useCallback9(
2893
2920
  (event) => {
2894
2921
  setAnchorEl(anchorEl ? null : event.currentTarget);
2895
2922
  setTimeout(() => {
@@ -2898,7 +2925,7 @@ var DatePicker = forwardRef6((inProps, ref) => {
2898
2925
  },
2899
2926
  [anchorEl, setAnchorEl, innerRef]
2900
2927
  );
2901
- const handleInputMouseDown = useCallback8(
2928
+ const handleInputMouseDown = useCallback9(
2902
2929
  (event) => {
2903
2930
  if (inputReadOnly || isAlphabeticDisplay) {
2904
2931
  event.preventDefault();
@@ -2907,7 +2934,7 @@ var DatePicker = forwardRef6((inProps, ref) => {
2907
2934
  },
2908
2935
  [inputReadOnly, isAlphabeticDisplay, buttonRef]
2909
2936
  );
2910
- const handlePresetClick = useCallback8(
2937
+ const handlePresetClick = useCallback9(
2911
2938
  (presetValue) => {
2912
2939
  handleChange({
2913
2940
  target: {
@@ -2919,7 +2946,7 @@ var DatePicker = forwardRef6((inProps, ref) => {
2919
2946
  },
2920
2947
  [handleChange, props.name]
2921
2948
  );
2922
- const isPresetDisabled = useCallback8(
2949
+ const isPresetDisabled = useCallback9(
2923
2950
  (presetValue) => {
2924
2951
  try {
2925
2952
  const date = parseDate(presetValue, format);
@@ -2936,7 +2963,7 @@ var DatePicker = forwardRef6((inProps, ref) => {
2936
2963
  },
2937
2964
  [format, minDate, maxDate, disableFuture, disablePast, shouldDisableDate]
2938
2965
  );
2939
- return /* @__PURE__ */ React18.createElement(DatePickerRoot, null, /* @__PURE__ */ React18.createElement(FocusTrap, { open: true }, /* @__PURE__ */ React18.createElement(React18.Fragment, null, /* @__PURE__ */ React18.createElement(
2966
+ return /* @__PURE__ */ React19.createElement(DatePickerRoot, null, /* @__PURE__ */ React19.createElement(FocusTrap, { open: true }, /* @__PURE__ */ React19.createElement(React19.Fragment, null, /* @__PURE__ */ React19.createElement(
2940
2967
  Input_default,
2941
2968
  {
2942
2969
  ...innerProps,
@@ -2963,7 +2990,7 @@ var DatePicker = forwardRef6((inProps, ref) => {
2963
2990
  },
2964
2991
  className,
2965
2992
  sx,
2966
- endDecorator: /* @__PURE__ */ React18.createElement(
2993
+ endDecorator: /* @__PURE__ */ React19.createElement(
2967
2994
  CalendarButton,
2968
2995
  {
2969
2996
  ref: buttonRef,
@@ -2975,13 +3002,13 @@ var DatePicker = forwardRef6((inProps, ref) => {
2975
3002
  "aria-expanded": open,
2976
3003
  disabled
2977
3004
  },
2978
- /* @__PURE__ */ React18.createElement(CalendarTodayIcon, null)
3005
+ /* @__PURE__ */ React19.createElement(CalendarTodayIcon, null)
2979
3006
  ),
2980
3007
  label,
2981
3008
  helperText,
2982
3009
  readOnly: readOnly || inputReadOnly || isAlphabeticDisplay
2983
3010
  }
2984
- ), open && /* @__PURE__ */ React18.createElement(ClickAwayListener, { onClickAway: () => setAnchorEl(null) }, /* @__PURE__ */ React18.createElement(
3011
+ ), open && /* @__PURE__ */ React19.createElement(ClickAwayListener, { onClickAway: () => setAnchorEl(null) }, /* @__PURE__ */ React19.createElement(
2985
3012
  StyledPopper,
2986
3013
  {
2987
3014
  id: "date-picker-popper",
@@ -3000,7 +3027,7 @@ var DatePicker = forwardRef6((inProps, ref) => {
3000
3027
  "aria-label": "Calendar Tooltip",
3001
3028
  "aria-expanded": open
3002
3029
  },
3003
- /* @__PURE__ */ React18.createElement(CalendarSheet, { tabIndex: -1, role: "presentation" }, /* @__PURE__ */ React18.createElement(CalendarSheetContent, null, /* @__PURE__ */ React18.createElement(CalendarSection, null, /* @__PURE__ */ React18.createElement(
3030
+ /* @__PURE__ */ React19.createElement(CalendarSheet, { tabIndex: -1, role: "presentation" }, /* @__PURE__ */ React19.createElement(CalendarSheetContent, null, /* @__PURE__ */ React19.createElement(CalendarSection, null, /* @__PURE__ */ React19.createElement(
3004
3031
  Calendar_default,
3005
3032
  {
3006
3033
  value: value && !Number.isNaN(parseDate(value, format).getTime()) ? [parseDate(value, format), void 0] : void 0,
@@ -3020,14 +3047,14 @@ var DatePicker = forwardRef6((inProps, ref) => {
3020
3047
  shouldDisableDate: shouldDisableDate ? (date) => shouldDisableDate(formatValueString(date, format)) : void 0,
3021
3048
  locale
3022
3049
  }
3023
- ), !hideClearButton && /* @__PURE__ */ React18.createElement(
3050
+ ), !hideClearButton && /* @__PURE__ */ React19.createElement(
3024
3051
  DialogActions_default,
3025
3052
  {
3026
3053
  sx: {
3027
3054
  p: 1
3028
3055
  }
3029
3056
  },
3030
- /* @__PURE__ */ React18.createElement(
3057
+ /* @__PURE__ */ React19.createElement(
3031
3058
  Button_default,
3032
3059
  {
3033
3060
  size,
@@ -3045,9 +3072,9 @@ var DatePicker = forwardRef6((inProps, ref) => {
3045
3072
  },
3046
3073
  "Clear"
3047
3074
  )
3048
- )), presets && presets.length > 0 && /* @__PURE__ */ React18.createElement(PresetPanel, null, presets.map((preset) => {
3075
+ )), presets && presets.length > 0 && /* @__PURE__ */ React19.createElement(PresetPanel, null, presets.map((preset) => {
3049
3076
  const disabled2 = isPresetDisabled(preset.value);
3050
- return /* @__PURE__ */ React18.createElement(
3077
+ return /* @__PURE__ */ React19.createElement(
3051
3078
  PresetItem,
3052
3079
  {
3053
3080
  key: preset.label,
@@ -3068,7 +3095,7 @@ var DatePicker = forwardRef6((inProps, ref) => {
3068
3095
  var DatePicker_default = DatePicker;
3069
3096
 
3070
3097
  // src/components/Textarea/Textarea.tsx
3071
- import React19 from "react";
3098
+ import React20 from "react";
3072
3099
  import { Textarea as JoyTextarea } from "@mui/joy";
3073
3100
  import { motion as motion19 } from "framer-motion";
3074
3101
  var MotionTextarea = motion19(JoyTextarea);
@@ -3088,7 +3115,7 @@ var Textarea = (props) => {
3088
3115
  className,
3089
3116
  ...innerProps
3090
3117
  } = props;
3091
- const textarea = /* @__PURE__ */ React19.createElement(
3118
+ const textarea = /* @__PURE__ */ React20.createElement(
3092
3119
  MotionTextarea,
3093
3120
  {
3094
3121
  required,
@@ -3100,7 +3127,7 @@ var Textarea = (props) => {
3100
3127
  ...innerProps
3101
3128
  }
3102
3129
  );
3103
- return /* @__PURE__ */ React19.createElement(
3130
+ return /* @__PURE__ */ React20.createElement(
3104
3131
  FormControl_default,
3105
3132
  {
3106
3133
  required,
@@ -3111,9 +3138,9 @@ var Textarea = (props) => {
3111
3138
  sx,
3112
3139
  className
3113
3140
  },
3114
- label && /* @__PURE__ */ React19.createElement(FormLabel_default, null, label),
3141
+ label && /* @__PURE__ */ React20.createElement(FormLabel_default, null, label),
3115
3142
  textarea,
3116
- helperText && /* @__PURE__ */ React19.createElement(FormHelperText_default, null, helperText)
3143
+ helperText && /* @__PURE__ */ React20.createElement(FormHelperText_default, null, helperText)
3117
3144
  );
3118
3145
  };
3119
3146
  Textarea.displayName = "Textarea";
@@ -3122,8 +3149,13 @@ Textarea.displayName = "Textarea";
3122
3149
  var Textarea_default = Textarea;
3123
3150
 
3124
3151
  // src/components/Select/Select.tsx
3125
- import React20, { useMemo as useMemo7 } from "react";
3126
- import { Select as JoySelect, Option as JoyOption, ListItemContent as ListItemContent2, Typography as Typography4 } from "@mui/joy";
3152
+ import React21, { useMemo as useMemo8 } from "react";
3153
+ import {
3154
+ Select as JoySelect,
3155
+ Option as JoyOption,
3156
+ ListItemContent as ListItemContent2,
3157
+ Typography as Typography4
3158
+ } from "@mui/joy";
3127
3159
  import { motion as motion20 } from "framer-motion";
3128
3160
  var MotionOption = motion20(JoyOption);
3129
3161
  var Option = MotionOption;
@@ -3143,12 +3175,23 @@ function Select(props) {
3143
3175
  disabled,
3144
3176
  required,
3145
3177
  onChange,
3178
+ // NOTE: id 를 FormControl 에 넘겨 htmlFor/labelId(`${id}-label`)를 결정론적으로 만든다.
3179
+ // Joy FormControl context 가 FormLabel(id) ↔ Select button(aria-labelledby)을 자동 결선하므로,
3180
+ // 외부에서 useId 로 라벨/버튼 ARIA 를 수동 결합할 필요가 없다.
3181
+ id,
3182
+ slotProps,
3146
3183
  // NOTE: 스타일 관련된 props는 최상위 엘리먼트에 적용한다.
3147
3184
  sx,
3148
3185
  className,
3149
3186
  ...innerProps
3150
3187
  } = props;
3151
- const options = useMemo7(
3188
+ const {
3189
+ formControl: formControlProps,
3190
+ formLabel: formLabelProps,
3191
+ formHelperText: formHelperTextProps,
3192
+ ...joySlotProps
3193
+ } = slotProps ?? {};
3194
+ const options = useMemo8(
3152
3195
  () => props.options.map((option) => {
3153
3196
  if (option.hasOwnProperty("value") && option.hasOwnProperty("label")) {
3154
3197
  return option;
@@ -3173,14 +3216,14 @@ function Select(props) {
3173
3216
  };
3174
3217
  onChange?.(newEvent, newValue);
3175
3218
  };
3176
- const optionMap = useMemo7(() => {
3219
+ const optionMap = useMemo8(() => {
3177
3220
  const map = /* @__PURE__ */ new Map();
3178
3221
  options.forEach((option) => {
3179
3222
  map.set(option.value, option);
3180
3223
  });
3181
3224
  return map;
3182
3225
  }, [options]);
3183
- const select = /* @__PURE__ */ React20.createElement(
3226
+ const select = /* @__PURE__ */ React21.createElement(
3184
3227
  JoySelect,
3185
3228
  {
3186
3229
  ...innerProps,
@@ -3188,6 +3231,7 @@ function Select(props) {
3188
3231
  disabled,
3189
3232
  size,
3190
3233
  color: error ? "danger" : color,
3234
+ slotProps: joySlotProps,
3191
3235
  onChange: handleChange,
3192
3236
  renderValue: (selected) => {
3193
3237
  if (!selected) return null;
@@ -3197,9 +3241,9 @@ function Select(props) {
3197
3241
  return optionMap.get(selected.value)?.label;
3198
3242
  }
3199
3243
  },
3200
- options.map((option) => /* @__PURE__ */ React20.createElement(Option, { key: option.value, value: option.value, disabled: option.disabled }, option.secondaryText ? /* @__PURE__ */ React20.createElement(ListItemContent2, { sx: { gap: 0.5 } }, /* @__PURE__ */ React20.createElement(Typography4, { level: "inherit" }, option.label), /* @__PURE__ */ React20.createElement(Typography4, { level: secondaryTextLevelMap2[size ?? "md"], textColor: "text.tertiary" }, option.secondaryText)) : option.label))
3244
+ options.map((option) => /* @__PURE__ */ React21.createElement(Option, { key: option.value, value: option.value, disabled: option.disabled }, option.secondaryText ? /* @__PURE__ */ React21.createElement(ListItemContent2, { sx: { gap: 0.5 } }, /* @__PURE__ */ React21.createElement(Typography4, { level: "inherit" }, option.label), /* @__PURE__ */ React21.createElement(Typography4, { level: secondaryTextLevelMap2[size ?? "md"], textColor: "text.tertiary" }, option.secondaryText)) : option.label))
3201
3245
  );
3202
- return /* @__PURE__ */ React20.createElement(
3246
+ return /* @__PURE__ */ React21.createElement(
3203
3247
  FormControl_default,
3204
3248
  {
3205
3249
  required,
@@ -3207,12 +3251,14 @@ function Select(props) {
3207
3251
  size,
3208
3252
  color,
3209
3253
  error,
3254
+ id,
3210
3255
  sx,
3211
- className
3256
+ className,
3257
+ ...formControlProps
3212
3258
  },
3213
- label && /* @__PURE__ */ React20.createElement(FormLabel_default, null, label),
3259
+ label && /* @__PURE__ */ React21.createElement(FormLabel_default, { ...formLabelProps }, label),
3214
3260
  select,
3215
- helperText && /* @__PURE__ */ React20.createElement(FormHelperText_default, null, helperText)
3261
+ helperText && /* @__PURE__ */ React21.createElement(FormHelperText_default, { ...formHelperTextProps }, helperText)
3216
3262
  );
3217
3263
  }
3218
3264
  Select.displayName = "Select";
@@ -3224,7 +3270,7 @@ var Select_default = Select;
3224
3270
  import { Link } from "@mui/joy";
3225
3271
 
3226
3272
  // src/components/InfoSign/InfoSign.tsx
3227
- import React21 from "react";
3273
+ import React22 from "react";
3228
3274
  import { styled as styled11, tooltipClasses } from "@mui/joy";
3229
3275
  import MuiInfoIcon from "@mui/icons-material/Info";
3230
3276
  var InfoIcon = styled11(MuiInfoIcon, {
@@ -3237,7 +3283,7 @@ var InfoIcon = styled11(MuiInfoIcon, {
3237
3283
  }));
3238
3284
  function InfoSign(props) {
3239
3285
  const { message, placement } = props;
3240
- return /* @__PURE__ */ React21.createElement(
3286
+ return /* @__PURE__ */ React22.createElement(
3241
3287
  Tooltip_default,
3242
3288
  {
3243
3289
  arrow: true,
@@ -3247,9 +3293,9 @@ function InfoSign(props) {
3247
3293
  maxWidth: "320px"
3248
3294
  }
3249
3295
  },
3250
- title: message?.split("\n").map((line, i) => /* @__PURE__ */ React21.createElement("div", { key: `info-sign-${i}` }, line))
3296
+ title: message?.split("\n").map((line, i) => /* @__PURE__ */ React22.createElement("div", { key: `info-sign-${i}` }, line))
3251
3297
  },
3252
- /* @__PURE__ */ React21.createElement(InfoIcon, null)
3298
+ /* @__PURE__ */ React22.createElement(InfoIcon, null)
3253
3299
  );
3254
3300
  }
3255
3301
 
@@ -3263,7 +3309,7 @@ var TextEllipsis = ({
3263
3309
  ...rest
3264
3310
  }) => {
3265
3311
  const textRef = useRef5(null);
3266
- const [showTooltip, setShowTooltip] = useState8(false);
3312
+ const [showTooltip, setShowTooltip] = useState9(false);
3267
3313
  useLayoutEffect(() => {
3268
3314
  const element = textRef.current;
3269
3315
  if (!element) return;
@@ -3276,11 +3322,11 @@ var TextEllipsis = ({
3276
3322
  ro.observe(element);
3277
3323
  return () => ro.disconnect();
3278
3324
  }, [children, lineClamp]);
3279
- return /* @__PURE__ */ React22.createElement(Tooltip_default, { title: showTooltip ? children : "", placement: "top" }, /* @__PURE__ */ React22.createElement(EllipsisDiv, { ref: textRef, lineClamp, ...rest }, children));
3325
+ return /* @__PURE__ */ React23.createElement(Tooltip_default, { title: showTooltip ? children : "", placement: "top" }, /* @__PURE__ */ React23.createElement(EllipsisDiv, { ref: textRef, lineClamp, ...rest }, children));
3280
3326
  };
3281
3327
  var CellTextEllipsis = ({ children }) => {
3282
3328
  const textRef = useRef5(null);
3283
- const [showTooltip, setShowTooltip] = useState8(false);
3329
+ const [showTooltip, setShowTooltip] = useState9(false);
3284
3330
  useLayoutEffect(() => {
3285
3331
  const element = textRef.current;
3286
3332
  if (element) {
@@ -3288,9 +3334,9 @@ var CellTextEllipsis = ({ children }) => {
3288
3334
  setShowTooltip(isTextTruncated);
3289
3335
  }
3290
3336
  }, [children]);
3291
- const content = /* @__PURE__ */ React22.createElement(EllipsisDiv, { ref: textRef }, children);
3337
+ const content = /* @__PURE__ */ React23.createElement(EllipsisDiv, { ref: textRef }, children);
3292
3338
  if (showTooltip) {
3293
- return /* @__PURE__ */ React22.createElement(
3339
+ return /* @__PURE__ */ React23.createElement(
3294
3340
  Tooltip_default,
3295
3341
  {
3296
3342
  title: children,
@@ -3338,14 +3384,14 @@ var HeadCell = (props) => {
3338
3384
  useLayoutEffect(() => {
3339
3385
  ref.current = localRef.current;
3340
3386
  }, [ref]);
3341
- const [isHovered, setIsHovered] = useState8(false);
3387
+ const [isHovered, setIsHovered] = useState9(false);
3342
3388
  const sortable = type === "actions" ? false : _sortable;
3343
- const headId = useMemo8(
3389
+ const headId = useMemo9(
3344
3390
  () => `${tableId}_header_${headerName ?? field}`.trim(),
3345
3391
  [tableId, headerName, field]
3346
3392
  );
3347
3393
  const isResizingRef = useRef5(false);
3348
- const resizer = useMemo8(
3394
+ const resizer = useMemo9(
3349
3395
  () => resizable ?? true ? Resizer(
3350
3396
  ref,
3351
3397
  colRef,
@@ -3356,7 +3402,7 @@ var HeadCell = (props) => {
3356
3402
  ) : null,
3357
3403
  [resizable, ref, colRef, onAutoFit, field]
3358
3404
  );
3359
- const style = useMemo8(
3405
+ const style = useMemo9(
3360
3406
  () => ({
3361
3407
  width,
3362
3408
  minWidth: minWidth ?? "50px",
@@ -3374,10 +3420,10 @@ var HeadCell = (props) => {
3374
3420
  );
3375
3421
  const textAlign = getTextAlign(props);
3376
3422
  const initialSort = sortOrder[0];
3377
- const sortIcon = useMemo8(() => {
3423
+ const sortIcon = useMemo9(() => {
3378
3424
  const isSorted = !!sort;
3379
3425
  const isVisible = sortable && (isSorted || isHovered);
3380
- return /* @__PURE__ */ React22.createElement(AnimatePresence2, { mode: "wait" }, isVisible && /* @__PURE__ */ React22.createElement(
3426
+ return /* @__PURE__ */ React23.createElement(AnimatePresence2, { mode: "wait" }, isVisible && /* @__PURE__ */ React23.createElement(
3381
3427
  MotionSortIcon,
3382
3428
  {
3383
3429
  key: "sort-icon",
@@ -3405,21 +3451,21 @@ var HeadCell = (props) => {
3405
3451
  }
3406
3452
  ));
3407
3453
  }, [headId, initialSort, sort, sortable, isHovered]);
3408
- const infoSign = useMemo8(
3409
- () => description ? /* @__PURE__ */ React22.createElement(InfoSign_default, { message: description, placement: "bottom" }) : null,
3454
+ const infoSign = useMemo9(
3455
+ () => description ? /* @__PURE__ */ React23.createElement(InfoSign_default, { message: description, placement: "bottom" }) : null,
3410
3456
  [description]
3411
3457
  );
3412
- const params = useMemo8(
3458
+ const params = useMemo9(
3413
3459
  () => ({
3414
3460
  field
3415
3461
  }),
3416
3462
  [field]
3417
3463
  );
3418
- const computedHeaderClassName = useMemo8(
3464
+ const computedHeaderClassName = useMemo9(
3419
3465
  () => (typeof headerClassName === "function" ? headerClassName(params) : headerClassName) || void 0,
3420
3466
  [headerClassName, params]
3421
3467
  );
3422
- return /* @__PURE__ */ React22.createElement(
3468
+ return /* @__PURE__ */ React23.createElement(
3423
3469
  StyledTh,
3424
3470
  {
3425
3471
  id: headId,
@@ -3428,7 +3474,7 @@ var HeadCell = (props) => {
3428
3474
  ref: localRef,
3429
3475
  key: field,
3430
3476
  style,
3431
- onClick: useCallback9(
3477
+ onClick: useCallback10(
3432
3478
  (e) => {
3433
3479
  if (isResizingRef.current) return;
3434
3480
  if (!(e.target instanceof Element) || !e.currentTarget.contains(e.target)) return;
@@ -3442,7 +3488,7 @@ var HeadCell = (props) => {
3442
3488
  initial: "initial",
3443
3489
  className: computedHeaderClassName
3444
3490
  },
3445
- /* @__PURE__ */ React22.createElement(Stack_default, { gap: 1, direction: "row", justifyContent: textAlign, alignItems: "center", sx: { minWidth: 0 } }, textAlign === "end" && sortIcon, textAlign === "end" && infoSign, /* @__PURE__ */ React22.createElement(TextEllipsis, { lineClamp: headerLineClamp, "data-slot": "header-text" }, headerName ?? field, editMode && required && /* @__PURE__ */ React22.createElement(Asterisk, null, "*")), textAlign === "start" && infoSign, textAlign === "start" && sortIcon),
3491
+ /* @__PURE__ */ React23.createElement(Stack_default, { gap: 1, direction: "row", justifyContent: textAlign, alignItems: "center", sx: { minWidth: 0 } }, textAlign === "end" && sortIcon, textAlign === "end" && infoSign, /* @__PURE__ */ React23.createElement(TextEllipsis, { lineClamp: headerLineClamp, "data-slot": "header-text" }, headerName ?? field, editMode && required && /* @__PURE__ */ React23.createElement(Asterisk, null, "*")), textAlign === "start" && infoSign, textAlign === "start" && sortIcon),
3446
3492
  resizer
3447
3493
  );
3448
3494
  };
@@ -3467,9 +3513,9 @@ var BodyCell = (props) => {
3467
3513
  onCellEditStop
3468
3514
  } = props;
3469
3515
  const theme = useTheme();
3470
- const [value, setValue] = useState8(row[field]);
3516
+ const [value, setValue] = useState9(row[field]);
3471
3517
  const cellRef = useRef5(null);
3472
- const params = useMemo8(
3518
+ const params = useMemo9(
3473
3519
  () => ({
3474
3520
  row,
3475
3521
  value,
@@ -3478,20 +3524,20 @@ var BodyCell = (props) => {
3478
3524
  }),
3479
3525
  [row, rowId, value, field]
3480
3526
  );
3481
- const editMode = useMemo8(
3527
+ const editMode = useMemo9(
3482
3528
  () => !!(props.editMode && (typeof isCellEditable === "function" ? isCellEditable(params) : isCellEditable ?? true)),
3483
3529
  [props.editMode, isCellEditable, params]
3484
3530
  );
3485
3531
  const propsComponentProps = "componentProps" in props ? props.componentProps : null;
3486
3532
  const hasComponentProps = "componentProps" in props;
3487
- const componentProps = useMemo8(
3533
+ const componentProps = useMemo9(
3488
3534
  () => ({
3489
3535
  ...hasComponentProps && (typeof propsComponentProps === "function" ? propsComponentProps(params) : propsComponentProps || {}),
3490
3536
  size: "sm"
3491
3537
  }),
3492
3538
  [hasComponentProps, propsComponentProps, params]
3493
3539
  );
3494
- const editModeComponentProps = useMemo8(
3540
+ const editModeComponentProps = useMemo9(
3495
3541
  () => ({
3496
3542
  ...componentProps,
3497
3543
  onChange: (e) => {
@@ -3553,25 +3599,25 @@ var BodyCell = (props) => {
3553
3599
  }),
3554
3600
  [params, row, field, value, componentProps, type, onCellEditStop, onCellEditStart]
3555
3601
  );
3556
- const MemoizedRenderEditCell = useMemo8(() => renderEditCell ? memo(renderEditCell) : null, [renderEditCell]);
3557
- const MemoizedRenderCell = useMemo8(() => renderCell ? memo(renderCell) : null, [renderCell]);
3558
- const EditModeComponent = useMemo8(() => {
3602
+ const MemoizedRenderEditCell = useMemo9(() => renderEditCell ? memo(renderEditCell) : null, [renderEditCell]);
3603
+ const MemoizedRenderCell = useMemo9(() => renderCell ? memo(renderCell) : null, [renderCell]);
3604
+ const EditModeComponent = useMemo9(() => {
3559
3605
  if (MemoizedRenderEditCell) {
3560
3606
  return createElement(MemoizedRenderEditCell, params);
3561
3607
  }
3562
3608
  return {
3563
- date: /* @__PURE__ */ React22.createElement(DatePicker_default, { value, ...editModeComponentProps }),
3564
- currency: /* @__PURE__ */ React22.createElement(
3609
+ date: /* @__PURE__ */ React23.createElement(DatePicker_default, { value, ...editModeComponentProps }),
3610
+ currency: /* @__PURE__ */ React23.createElement(
3565
3611
  CurrencyInput_default,
3566
3612
  {
3567
3613
  value,
3568
3614
  ...editModeComponentProps
3569
3615
  }
3570
3616
  ),
3571
- number: /* @__PURE__ */ React22.createElement(Input_default, { value, type: "number", ...editModeComponentProps }),
3572
- text: /* @__PURE__ */ React22.createElement(Input_default, { value, type: "text", ...editModeComponentProps }),
3573
- longText: /* @__PURE__ */ React22.createElement(Textarea_default, { value, ...editModeComponentProps }),
3574
- autocomplete: /* @__PURE__ */ React22.createElement(
3617
+ number: /* @__PURE__ */ React23.createElement(Input_default, { value, type: "number", ...editModeComponentProps }),
3618
+ text: /* @__PURE__ */ React23.createElement(Input_default, { value, type: "text", ...editModeComponentProps }),
3619
+ longText: /* @__PURE__ */ React23.createElement(Textarea_default, { value, ...editModeComponentProps }),
3620
+ autocomplete: /* @__PURE__ */ React23.createElement(
3575
3621
  Autocomplete_default,
3576
3622
  {
3577
3623
  value,
@@ -3579,7 +3625,7 @@ var BodyCell = (props) => {
3579
3625
  ...editModeComponentProps
3580
3626
  }
3581
3627
  ),
3582
- select: /* @__PURE__ */ React22.createElement(
3628
+ select: /* @__PURE__ */ React23.createElement(
3583
3629
  Select_default,
3584
3630
  {
3585
3631
  value,
@@ -3590,13 +3636,13 @@ var BodyCell = (props) => {
3590
3636
  }[type || "text"];
3591
3637
  }, [value, editModeComponentProps, type, MemoizedRenderEditCell, params]);
3592
3638
  const linkComponentFromProps = props.component;
3593
- const ReadModeComponent = useMemo8(() => {
3639
+ const ReadModeComponent = useMemo9(() => {
3594
3640
  if (MemoizedRenderCell) {
3595
3641
  return createElement(MemoizedRenderCell, params);
3596
3642
  }
3597
3643
  const innerText = value;
3598
3644
  const typedComponent = {
3599
- link: React22.createElement(linkComponentFromProps || Link, {
3645
+ link: React23.createElement(linkComponentFromProps || Link, {
3600
3646
  children: innerText,
3601
3647
  ...componentProps
3602
3648
  })
@@ -3604,22 +3650,22 @@ var BodyCell = (props) => {
3604
3650
  return typedComponent || innerText;
3605
3651
  }, [value, MemoizedRenderCell, params, type, componentProps, linkComponentFromProps]);
3606
3652
  const getActions = props.getActions;
3607
- const CellComponent = useMemo8(() => {
3653
+ const CellComponent = useMemo9(() => {
3608
3654
  if (type === "actions") {
3609
- return /* @__PURE__ */ React22.createElement(Stack_default, { direction: "row", gap: 1, justifyContent: "center", alignItems: "center" }, getActions?.(params));
3655
+ return /* @__PURE__ */ React23.createElement(Stack_default, { direction: "row", gap: 1, justifyContent: "center", alignItems: "center" }, getActions?.(params));
3610
3656
  }
3611
3657
  return editMode && EditModeComponent ? EditModeComponent : ReadModeComponent;
3612
3658
  }, [type, getActions, params, editMode, EditModeComponent, ReadModeComponent]);
3613
- const showTooltip = useMemo8(() => noWrap && type === "longText", [noWrap, type]);
3659
+ const showTooltip = useMemo9(() => noWrap && type === "longText", [noWrap, type]);
3614
3660
  const isBoundary = props.isLastStartPinnedColumn || props.isLastEndPinnedColumn;
3615
- const computedCellClassName = useMemo8(
3661
+ const computedCellClassName = useMemo9(
3616
3662
  () => (typeof cellClassName === "function" ? cellClassName(params) : cellClassName) || "",
3617
3663
  [cellClassName, params]
3618
3664
  );
3619
3665
  useEffect5(() => {
3620
3666
  setValue(row[field]);
3621
3667
  }, [row, field]);
3622
- return /* @__PURE__ */ React22.createElement(
3668
+ return /* @__PURE__ */ React23.createElement(
3623
3669
  StyledTd,
3624
3670
  {
3625
3671
  ref: cellRef,
@@ -3636,8 +3682,8 @@ var BodyCell = (props) => {
3636
3682
  },
3637
3683
  className: [isLastStartPinnedColumn && "is-last-left", isLastEndPinnedColumn && "is-last-right", computedCellClassName].filter(Boolean).join(" ") || ""
3638
3684
  },
3639
- useMemo8(
3640
- () => showTooltip ? /* @__PURE__ */ React22.createElement(CellTextEllipsis, null, CellComponent) : CellComponent,
3685
+ useMemo9(
3686
+ () => showTooltip ? /* @__PURE__ */ React23.createElement(CellTextEllipsis, null, CellComponent) : CellComponent,
3641
3687
  [CellComponent, showTooltip]
3642
3688
  )
3643
3689
  );
@@ -3645,7 +3691,7 @@ var BodyCell = (props) => {
3645
3691
  var BodyRow = memo(
3646
3692
  (props) => {
3647
3693
  const { tableId, columns, rowId, editMode, noWrap, row } = props;
3648
- return /* @__PURE__ */ React22.createElement(React22.Fragment, null, columns.map((column, i) => /* @__PURE__ */ React22.createElement(
3694
+ return /* @__PURE__ */ React23.createElement(React23.Fragment, null, columns.map((column, i) => /* @__PURE__ */ React23.createElement(
3649
3695
  BodyCell,
3650
3696
  {
3651
3697
  key: `${rowId}_${column.field.toString()}_${i}`,
@@ -3689,9 +3735,9 @@ var VirtualizedTableRow = memo(StyledTableRow2, (prevProps, nextProps) => {
3689
3735
  });
3690
3736
 
3691
3737
  // src/components/DataTable/hooks.ts
3692
- import { useState as useState9, useLayoutEffect as useLayoutEffect2, useRef as useRef6, useMemo as useMemo9, useCallback as useCallback10, useEffect as useEffect6, createRef } from "react";
3738
+ import { useState as useState10, useLayoutEffect as useLayoutEffect2, useRef as useRef6, useMemo as useMemo10, useCallback as useCallback11, useEffect as useEffect6, createRef } from "react";
3693
3739
  function useColumnWidths(columnsByField) {
3694
- const [widths, setWidths] = useState9({});
3740
+ const [widths, setWidths] = useState10({});
3695
3741
  const roRef = useRef6();
3696
3742
  useLayoutEffect2(() => {
3697
3743
  if (roRef.current) roRef.current.disconnect();
@@ -3752,31 +3798,31 @@ function useDataTableRenderer({
3752
3798
  }
3753
3799
  const onSelectionModelChangeRef = useRef6(onSelectionModelChange);
3754
3800
  onSelectionModelChangeRef.current = onSelectionModelChange;
3755
- const [focusedRowId, setFocusedRowId] = useState9(null);
3756
- const [selectionAnchor, setSelectionAnchor] = useState9(null);
3801
+ const [focusedRowId, setFocusedRowId] = useState10(null);
3802
+ const [selectionAnchor, setSelectionAnchor] = useState10(null);
3757
3803
  const [sortModel, setSortModel] = useControlledState(
3758
3804
  controlledSortModel,
3759
3805
  initialState?.sorting?.sortModel ?? [],
3760
- useCallback10((sortModel2) => onSortModelChange?.(sortModel2), [onSortModelChange])
3806
+ useCallback11((sortModel2) => onSortModelChange?.(sortModel2), [onSortModelChange])
3761
3807
  );
3762
3808
  const [visibilityModel] = useControlledState(
3763
3809
  columnVisibilityModel,
3764
3810
  initialState?.columns?.columnVisibilityModel ?? {},
3765
- useCallback10(
3811
+ useCallback11(
3766
3812
  (model) => onColumnVisibilityModelChange?.(model),
3767
3813
  [onColumnVisibilityModelChange]
3768
3814
  )
3769
3815
  );
3770
- const reorderedColumns = useMemo9(() => {
3816
+ const reorderedColumns = useMemo10(() => {
3771
3817
  if (!columnGroupingModel) return columnsProp;
3772
3818
  return reorderColumnsByGroupingModel(columnsProp, columnGroupingModel);
3773
3819
  }, [columnsProp, columnGroupingModel]);
3774
- const visibleColumns = useMemo9(
3820
+ const visibleColumns = useMemo10(
3775
3821
  () => reorderedColumns.filter((col) => visibilityModel[col.field] !== false),
3776
3822
  [reorderedColumns, visibilityModel]
3777
3823
  );
3778
- const visibleFieldSet = useMemo9(() => new Set(visibleColumns.map((c) => c.field)), [visibleColumns]);
3779
- const tableMinWidth = useMemo9(() => {
3824
+ const visibleFieldSet = useMemo10(() => new Set(visibleColumns.map((c) => c.field)), [visibleColumns]);
3825
+ const tableMinWidth = useMemo10(() => {
3780
3826
  const DEFAULT_MIN = 50;
3781
3827
  let total = checkboxSelection ? 40 : 0;
3782
3828
  for (const col of visibleColumns) {
@@ -3784,7 +3830,7 @@ function useDataTableRenderer({
3784
3830
  }
3785
3831
  return total;
3786
3832
  }, [visibleColumns, checkboxSelection]);
3787
- const allColumnsByField = useMemo9(
3833
+ const allColumnsByField = useMemo10(
3788
3834
  () => reorderedColumns.reduce(
3789
3835
  (acc, curr) => ({
3790
3836
  ...acc,
@@ -3794,7 +3840,7 @@ function useDataTableRenderer({
3794
3840
  ),
3795
3841
  [reorderedColumns]
3796
3842
  );
3797
- const visibleColumnsByField = useMemo9(
3843
+ const visibleColumnsByField = useMemo10(
3798
3844
  () => visibleColumns.reduce(
3799
3845
  (acc, curr) => ({
3800
3846
  ...acc,
@@ -3808,7 +3854,7 @@ function useDataTableRenderer({
3808
3854
  ),
3809
3855
  [visibleColumns]
3810
3856
  );
3811
- const sortComparator = useCallback10(
3857
+ const sortComparator = useCallback11(
3812
3858
  (rowA, rowB) => {
3813
3859
  for (const sort of sortModel) {
3814
3860
  const { field, sort: direction } = sort;
@@ -3837,33 +3883,33 @@ function useDataTableRenderer({
3837
3883
  },
3838
3884
  [sortModel, allColumnsByField]
3839
3885
  );
3840
- const rows = useMemo9(
3886
+ const rows = useMemo10(
3841
3887
  () => sortModel.length ? [..._rows].sort(sortComparator) : _rows,
3842
3888
  [_rows, sortModel, sortComparator]
3843
3889
  );
3844
- const sortOrder = useMemo9(
3890
+ const sortOrder = useMemo10(
3845
3891
  () => Array.from(new Set(_sortOrder || ["asc", "desc", null])),
3846
3892
  [_sortOrder]
3847
3893
  );
3848
- const [page, setPage] = useState9(paginationModel?.page || 1);
3894
+ const [page, setPage] = useState10(paginationModel?.page || 1);
3849
3895
  const pageSize = paginationModel?.pageSize || 20;
3850
- const getId = useCallback10(
3896
+ const getId = useCallback11(
3851
3897
  (row, index) => _getId?.(row) ?? row.id ?? `${(index || 0) + (page - 1) * pageSize}`,
3852
3898
  [_getId, page, pageSize]
3853
3899
  );
3854
- const selectedModelSet = useMemo9(() => new Set(selectionModel || []), [selectionModel]);
3855
- const dataInPage = useMemo9(
3900
+ const selectedModelSet = useMemo10(() => new Set(selectionModel || []), [selectionModel]);
3901
+ const dataInPage = useMemo10(
3856
3902
  () => !pagination || paginationMode === "server" ? rows : rows.slice((page - 1) * pageSize, (page - 1) * pageSize + pageSize),
3857
3903
  [rows, page, pageSize, paginationMode, pagination]
3858
3904
  );
3859
- const selectableDataInPage = useMemo9(
3905
+ const selectableDataInPage = useMemo10(
3860
3906
  () => dataInPage.filter((row, i) => {
3861
3907
  if (!isRowSelectable) return true;
3862
3908
  return isRowSelectable({ row, id: getId(row, i) });
3863
3909
  }),
3864
3910
  [dataInPage, isRowSelectable, getId]
3865
3911
  );
3866
- const handleRangeSelection = useCallback10(
3912
+ const handleRangeSelection = useCallback11(
3867
3913
  (anchor, targetIndex) => {
3868
3914
  const startIndex = Math.min(anchor.rowIndex, targetIndex);
3869
3915
  const endIndex = Math.max(anchor.rowIndex, targetIndex);
@@ -3886,38 +3932,38 @@ function useDataTableRenderer({
3886
3932
  },
3887
3933
  [dataInPage, getId, isRowSelectable, selectionModel, onSelectionModelChange]
3888
3934
  );
3889
- const isAllSelected = useMemo9(
3935
+ const isAllSelected = useMemo10(
3890
3936
  () => selectableDataInPage.length > 0 && selectableDataInPage.every((row, i) => selectedModelSet.has(getId(row, i))),
3891
3937
  [selectableDataInPage, selectedModelSet, getId]
3892
3938
  );
3893
3939
  const rowCount = totalRowsProp || rows.length;
3894
- const selectableRowCount = useMemo9(() => {
3940
+ const selectableRowCount = useMemo10(() => {
3895
3941
  if (!isRowSelectable) return rowCount;
3896
3942
  return rows.filter((row, i) => isRowSelectable({ row, id: getId(row, i) })).length;
3897
3943
  }, [rows, isRowSelectable, getId, rowCount]);
3898
- const isTotalSelected = useMemo9(
3944
+ const isTotalSelected = useMemo10(
3899
3945
  () => _isTotalSelected ?? (selectableRowCount > 0 && (selectionModel?.length || 0) === selectableRowCount),
3900
3946
  [_isTotalSelected, selectionModel, selectableRowCount]
3901
3947
  );
3902
3948
  const columnWidths = useColumnWidths(visibleColumnsByField);
3903
- const getWidth = useCallback10(
3949
+ const getWidth = useCallback11(
3904
3950
  (f) => columnWidths[f] ?? allColumnsByField[f]?.width ?? // Column prop 으로 지정된 width
3905
3951
  allColumnsByField[f]?.minWidth ?? 0,
3906
3952
  [columnWidths, allColumnsByField]
3907
3953
  );
3908
- const processedColumnGroups = useMemo9(() => {
3954
+ const processedColumnGroups = useMemo10(() => {
3909
3955
  if (!columnGroupingModel) return null;
3910
3956
  return calculateColumnGroups(columnGroupingModel, visibleColumns, visibleFieldSet);
3911
3957
  }, [columnGroupingModel, visibleColumns, visibleFieldSet]);
3912
- const effectivePinnedLeft = useMemo9(
3958
+ const effectivePinnedLeft = useMemo10(
3913
3959
  () => pinnedColumns?.left?.filter((f) => visibleFieldSet.has(f)),
3914
3960
  [pinnedColumns?.left, visibleFieldSet]
3915
3961
  );
3916
- const effectivePinnedRight = useMemo9(
3962
+ const effectivePinnedRight = useMemo10(
3917
3963
  () => pinnedColumns?.right?.filter((f) => visibleFieldSet.has(f)),
3918
3964
  [pinnedColumns?.right, visibleFieldSet]
3919
3965
  );
3920
- const columns = useMemo9(() => {
3966
+ const columns = useMemo10(() => {
3921
3967
  const baseColumns = visibleColumns.length > 0 ? visibleColumns : reorderedColumns.length > 0 ? [] : Object.keys(rows[0] || {}).map((key) => ({
3922
3968
  field: key
3923
3969
  }));
@@ -3952,14 +3998,14 @@ function useDataTableRenderer({
3952
3998
  sortOrder,
3953
3999
  getWidth
3954
4000
  ]);
3955
- const handlePageChange = useCallback10(
4001
+ const handlePageChange = useCallback11(
3956
4002
  (newPage) => {
3957
4003
  setPage(newPage);
3958
4004
  onPaginationModelChange?.({ page: newPage, pageSize });
3959
4005
  },
3960
4006
  [onPaginationModelChange, pageSize]
3961
4007
  );
3962
- const handleSortChange = useCallback10(
4008
+ const handleSortChange = useCallback11(
3963
4009
  (props) => {
3964
4010
  const { field, currentSort, multiple } = props;
3965
4011
  const column = allColumnsByField[field];
@@ -4004,7 +4050,7 @@ function useDataTableRenderer({
4004
4050
  prevRowsRef.current = _rows;
4005
4051
  }
4006
4052
  }, [_rows]);
4007
- const handleAutoFit = useCallback10(
4053
+ const handleAutoFit = useCallback11(
4008
4054
  (field) => {
4009
4055
  const colDef = visibleColumnsByField[field];
4010
4056
  if (!colDef?.headerRef.current) return;
@@ -4037,8 +4083,8 @@ function useDataTableRenderer({
4037
4083
  handleAutoFit,
4038
4084
  isAllSelected,
4039
4085
  isTotalSelected,
4040
- isSelectedRow: useCallback10((model) => selectedModelSet.has(model), [selectedModelSet]),
4041
- isRowSelectable: useCallback10(
4086
+ isSelectedRow: useCallback11((model) => selectedModelSet.has(model), [selectedModelSet]),
4087
+ isRowSelectable: useCallback11(
4042
4088
  (rowId, row) => {
4043
4089
  if (!isRowSelectable) return true;
4044
4090
  return isRowSelectable({ row, id: rowId });
@@ -4046,13 +4092,13 @@ function useDataTableRenderer({
4046
4092
  [isRowSelectable]
4047
4093
  ),
4048
4094
  focusedRowId,
4049
- onRowFocus: useCallback10((rowId) => {
4095
+ onRowFocus: useCallback11((rowId) => {
4050
4096
  setFocusedRowId(rowId);
4051
4097
  }, []),
4052
- onAllCheckboxChange: useCallback10(() => {
4098
+ onAllCheckboxChange: useCallback11(() => {
4053
4099
  onSelectionModelChange?.(isAllSelected ? [] : selectableDataInPage.map(getId));
4054
4100
  }, [isAllSelected, selectableDataInPage, onSelectionModelChange, getId]),
4055
- onCheckboxChange: useCallback10(
4101
+ onCheckboxChange: useCallback11(
4056
4102
  (event, selectedModel) => {
4057
4103
  const isShiftClick = "shiftKey" in event && event.shiftKey;
4058
4104
  const rowIndex = dataInPage.findIndex((row, i) => getId(row, i) === selectedModel);
@@ -4086,7 +4132,7 @@ function useDataTableRenderer({
4086
4132
  columns,
4087
4133
  tableMinWidth,
4088
4134
  processedColumnGroups,
4089
- onTotalSelect: useCallback10(() => {
4135
+ onTotalSelect: useCallback11(() => {
4090
4136
  const selectableRows = rows.filter((row, i) => {
4091
4137
  if (!isRowSelectable) return true;
4092
4138
  return isRowSelectable({ row, id: getId(row, i) });
@@ -4100,11 +4146,11 @@ function useDataTableRenderer({
4100
4146
  }
4101
4147
 
4102
4148
  // src/components/Table/Table.tsx
4103
- import React23 from "react";
4149
+ import React24 from "react";
4104
4150
  import { Table as JoyTable } from "@mui/joy";
4105
4151
  var Table = (props) => {
4106
4152
  const { children, ...inheritProps } = props;
4107
- return /* @__PURE__ */ React23.createElement(JoyTable, { ...inheritProps }, children);
4153
+ return /* @__PURE__ */ React24.createElement(JoyTable, { ...inheritProps }, children);
4108
4154
  };
4109
4155
  Table.displayName = "Table";
4110
4156
  function TableHead(props) {
@@ -4115,7 +4161,7 @@ function TableHead(props) {
4115
4161
  slots: { checkbox: RenderCheckbox = Checkbox_default } = {},
4116
4162
  slotProps: { checkbox: checkboxProps = {} } = {}
4117
4163
  } = props;
4118
- return /* @__PURE__ */ React23.createElement("thead", null, /* @__PURE__ */ React23.createElement("tr", null, showCheckbox && /* @__PURE__ */ React23.createElement(
4164
+ return /* @__PURE__ */ React24.createElement("thead", null, /* @__PURE__ */ React24.createElement("tr", null, showCheckbox && /* @__PURE__ */ React24.createElement(
4119
4165
  "th",
4120
4166
  {
4121
4167
  style: {
@@ -4123,8 +4169,8 @@ function TableHead(props) {
4123
4169
  textAlign: "center"
4124
4170
  }
4125
4171
  },
4126
- /* @__PURE__ */ React23.createElement(RenderCheckbox, { onChange: onCheckboxChange, ...checkboxProps })
4127
- ), headCells.map((headCell) => /* @__PURE__ */ React23.createElement(
4172
+ /* @__PURE__ */ React24.createElement(RenderCheckbox, { onChange: onCheckboxChange, ...checkboxProps })
4173
+ ), headCells.map((headCell) => /* @__PURE__ */ React24.createElement(
4128
4174
  "th",
4129
4175
  {
4130
4176
  key: headCell.label,
@@ -4149,15 +4195,15 @@ function TableBody(props) {
4149
4195
  slots: { checkbox: RenderCheckbox = Checkbox_default } = {},
4150
4196
  slotProps: { checkbox: checkboxProps = {} } = {}
4151
4197
  } = props;
4152
- return /* @__PURE__ */ React23.createElement("tbody", null, rows.map((row, rowIndex) => /* @__PURE__ */ React23.createElement("tr", { key: `table-row-${rowIndex}` }, showCheckbox && /* @__PURE__ */ React23.createElement(
4198
+ return /* @__PURE__ */ React24.createElement("tbody", null, rows.map((row, rowIndex) => /* @__PURE__ */ React24.createElement("tr", { key: `table-row-${rowIndex}` }, showCheckbox && /* @__PURE__ */ React24.createElement(
4153
4199
  "td",
4154
4200
  {
4155
4201
  style: {
4156
4202
  textAlign: "center"
4157
4203
  }
4158
4204
  },
4159
- /* @__PURE__ */ React23.createElement(RenderCheckbox, { onChange: (event) => onCheckboxChange?.(event, rowIndex), ...checkboxProps })
4160
- ), cellOrder.map((cellKey) => /* @__PURE__ */ React23.createElement(
4205
+ /* @__PURE__ */ React24.createElement(RenderCheckbox, { onChange: (event) => onCheckboxChange?.(event, rowIndex), ...checkboxProps })
4206
+ ), cellOrder.map((cellKey) => /* @__PURE__ */ React24.createElement(
4161
4207
  "td",
4162
4208
  {
4163
4209
  key: cellKey,
@@ -4171,7 +4217,7 @@ function TableBody(props) {
4171
4217
  TableBody.displayName = "TableBody";
4172
4218
 
4173
4219
  // src/components/Pagination/Pagination.tsx
4174
- import React24, { useCallback as useCallback11, useEffect as useEffect7 } from "react";
4220
+ import React25, { useCallback as useCallback12, useEffect as useEffect7 } from "react";
4175
4221
  import PreviousIcon from "@mui/icons-material/ChevronLeftRounded";
4176
4222
  import NextIcon from "@mui/icons-material/ChevronRightRounded";
4177
4223
  import FirstPageIcon from "@mui/icons-material/FirstPageRounded";
@@ -4240,7 +4286,7 @@ function Pagination(props) {
4240
4286
  const [paginationModel, setPaginationModel] = useControlledState(
4241
4287
  _paginationModel,
4242
4288
  defaultPaginationModel,
4243
- useCallback11(
4289
+ useCallback12(
4244
4290
  (newPage) => {
4245
4291
  onPageChange(newPage.page);
4246
4292
  },
@@ -4266,7 +4312,7 @@ function Pagination(props) {
4266
4312
  value: `${i + 1}`
4267
4313
  }));
4268
4314
  if (variant === "compact") {
4269
- return /* @__PURE__ */ React24.createElement(PaginationRoot, { ...innerProps }, /* @__PURE__ */ React24.createElement(PaginationContainer, { direction: "row", size, alignItems: "center" }, /* @__PURE__ */ React24.createElement(Stack_default, { direction: "row" }, /* @__PURE__ */ React24.createElement(
4315
+ return /* @__PURE__ */ React25.createElement(PaginationRoot, { ...innerProps }, /* @__PURE__ */ React25.createElement(PaginationContainer, { direction: "row", size, alignItems: "center" }, /* @__PURE__ */ React25.createElement(Stack_default, { direction: "row" }, /* @__PURE__ */ React25.createElement(
4270
4316
  PaginationIconButton,
4271
4317
  {
4272
4318
  size,
@@ -4276,8 +4322,8 @@ function Pagination(props) {
4276
4322
  disabled: paginationModel.page === firstPage,
4277
4323
  "aria-label": "First page"
4278
4324
  },
4279
- /* @__PURE__ */ React24.createElement(FirstPageIcon, null)
4280
- ), /* @__PURE__ */ React24.createElement(
4325
+ /* @__PURE__ */ React25.createElement(FirstPageIcon, null)
4326
+ ), /* @__PURE__ */ React25.createElement(
4281
4327
  PaginationIconButton,
4282
4328
  {
4283
4329
  size,
@@ -4287,8 +4333,8 @@ function Pagination(props) {
4287
4333
  disabled: paginationModel.page === firstPage,
4288
4334
  "aria-label": "Previous page"
4289
4335
  },
4290
- /* @__PURE__ */ React24.createElement(PreviousIcon, null)
4291
- )), /* @__PURE__ */ React24.createElement(
4336
+ /* @__PURE__ */ React25.createElement(PreviousIcon, null)
4337
+ )), /* @__PURE__ */ React25.createElement(
4292
4338
  Autocomplete_default,
4293
4339
  {
4294
4340
  size,
@@ -4307,7 +4353,7 @@ function Pagination(props) {
4307
4353
  }[size]
4308
4354
  }
4309
4355
  }
4310
- ), /* @__PURE__ */ React24.createElement(
4356
+ ), /* @__PURE__ */ React25.createElement(
4311
4357
  Typography_default,
4312
4358
  {
4313
4359
  level: `body-${size}`,
@@ -4318,7 +4364,7 @@ function Pagination(props) {
4318
4364
  },
4319
4365
  "/ ",
4320
4366
  lastPage
4321
- ), /* @__PURE__ */ React24.createElement(Stack_default, { direction: "row" }, /* @__PURE__ */ React24.createElement(
4367
+ ), /* @__PURE__ */ React25.createElement(Stack_default, { direction: "row" }, /* @__PURE__ */ React25.createElement(
4322
4368
  PaginationIconButton,
4323
4369
  {
4324
4370
  size,
@@ -4328,8 +4374,8 @@ function Pagination(props) {
4328
4374
  disabled: paginationModel.page === lastPage,
4329
4375
  "aria-label": "Next page"
4330
4376
  },
4331
- /* @__PURE__ */ React24.createElement(NextIcon, null)
4332
- ), /* @__PURE__ */ React24.createElement(
4377
+ /* @__PURE__ */ React25.createElement(NextIcon, null)
4378
+ ), /* @__PURE__ */ React25.createElement(
4333
4379
  PaginationIconButton,
4334
4380
  {
4335
4381
  size,
@@ -4339,10 +4385,10 @@ function Pagination(props) {
4339
4385
  disabled: paginationModel.page === lastPage,
4340
4386
  "aria-label": "Last page"
4341
4387
  },
4342
- /* @__PURE__ */ React24.createElement(LastPageIcon, null)
4388
+ /* @__PURE__ */ React25.createElement(LastPageIcon, null)
4343
4389
  ))));
4344
4390
  }
4345
- return /* @__PURE__ */ React24.createElement(PaginationRoot, { ...innerProps }, /* @__PURE__ */ React24.createElement(PaginationContainer, { direction: "row", size, alignItems: "center" }, /* @__PURE__ */ React24.createElement(
4391
+ return /* @__PURE__ */ React25.createElement(PaginationRoot, { ...innerProps }, /* @__PURE__ */ React25.createElement(PaginationContainer, { direction: "row", size, alignItems: "center" }, /* @__PURE__ */ React25.createElement(
4346
4392
  PaginationIconButton,
4347
4393
  {
4348
4394
  size,
@@ -4352,8 +4398,8 @@ function Pagination(props) {
4352
4398
  disabled: paginationModel.page === firstPage,
4353
4399
  "aria-label": "Previous page"
4354
4400
  },
4355
- /* @__PURE__ */ React24.createElement(PreviousIcon, null)
4356
- ), paginationModel.page !== firstPage && /* @__PURE__ */ React24.createElement(PaginationButton, { size, variant: "plain", color: "neutral", onClick: () => handlePageChange(firstPage) }, firstPage), isMoreBeforePages && /* @__PURE__ */ React24.createElement(
4401
+ /* @__PURE__ */ React25.createElement(PreviousIcon, null)
4402
+ ), paginationModel.page !== firstPage && /* @__PURE__ */ React25.createElement(PaginationButton, { size, variant: "plain", color: "neutral", onClick: () => handlePageChange(firstPage) }, firstPage), isMoreBeforePages && /* @__PURE__ */ React25.createElement(
4357
4403
  PaginationButton,
4358
4404
  {
4359
4405
  size,
@@ -4363,7 +4409,7 @@ function Pagination(props) {
4363
4409
  "aria-label": "More previous pages"
4364
4410
  },
4365
4411
  "..."
4366
- ), beforePages.map((p) => /* @__PURE__ */ React24.createElement(PaginationButton, { key: p, size, variant: "plain", color: "neutral", onClick: () => handlePageChange(p) }, p)), /* @__PURE__ */ React24.createElement(PaginationButton, { active: "active", size, "aria-current": "page" }, paginationModel.page), afterPages.map((p) => /* @__PURE__ */ React24.createElement(PaginationButton, { key: p, size, variant: "plain", color: "neutral", onClick: () => handlePageChange(p) }, p)), isMoreAfterPages && /* @__PURE__ */ React24.createElement(
4412
+ ), beforePages.map((p) => /* @__PURE__ */ React25.createElement(PaginationButton, { key: p, size, variant: "plain", color: "neutral", onClick: () => handlePageChange(p) }, p)), /* @__PURE__ */ React25.createElement(PaginationButton, { active: "active", size, "aria-current": "page" }, paginationModel.page), afterPages.map((p) => /* @__PURE__ */ React25.createElement(PaginationButton, { key: p, size, variant: "plain", color: "neutral", onClick: () => handlePageChange(p) }, p)), isMoreAfterPages && /* @__PURE__ */ React25.createElement(
4367
4413
  PaginationButton,
4368
4414
  {
4369
4415
  size,
@@ -4373,7 +4419,7 @@ function Pagination(props) {
4373
4419
  onClick: () => handlePageChange(paginationModel.page + 3)
4374
4420
  },
4375
4421
  "..."
4376
- ), paginationModel.page !== lastPage && /* @__PURE__ */ React24.createElement(PaginationButton, { size, variant: "plain", color: "neutral", onClick: () => handlePageChange(lastPage) }, lastPage), /* @__PURE__ */ React24.createElement(
4422
+ ), paginationModel.page !== lastPage && /* @__PURE__ */ React25.createElement(PaginationButton, { size, variant: "plain", color: "neutral", onClick: () => handlePageChange(lastPage) }, lastPage), /* @__PURE__ */ React25.createElement(
4377
4423
  PaginationIconButton,
4378
4424
  {
4379
4425
  size,
@@ -4383,7 +4429,7 @@ function Pagination(props) {
4383
4429
  disabled: paginationModel.page === lastPage,
4384
4430
  "aria-label": "Next page"
4385
4431
  },
4386
- /* @__PURE__ */ React24.createElement(NextIcon, null)
4432
+ /* @__PURE__ */ React25.createElement(NextIcon, null)
4387
4433
  )));
4388
4434
  }
4389
4435
  Pagination.displayName = "Pagination";
@@ -4495,10 +4541,10 @@ function Component(props, apiRef) {
4495
4541
  measureElement: (element) => element.clientHeight,
4496
4542
  overscan: 10
4497
4543
  });
4498
- const paginationModel = useMemo10(() => ({ page, pageSize }), [page, pageSize]);
4544
+ const paginationModel = useMemo11(() => ({ page, pageSize }), [page, pageSize]);
4499
4545
  const columnsKey = getObjectVersion(columns);
4500
- const headerCheckboxElement = useMemo10(
4501
- () => /* @__PURE__ */ React25.createElement(
4546
+ const headerCheckboxElement = useMemo11(
4547
+ () => /* @__PURE__ */ React26.createElement(
4502
4548
  RenderCheckbox,
4503
4549
  {
4504
4550
  onChange: onAllCheckboxChange,
@@ -4522,20 +4568,20 @@ function Component(props, apiRef) {
4522
4568
  const virtualizedItems = virtualizer.getVirtualItems();
4523
4569
  const showNoRowsOverlay = !loading && rowCount === 0;
4524
4570
  const totalColCount = Math.max(1, columns.length + (checkboxSelection ? 1 : 0));
4525
- const getRowClickHandler = useCallback12(
4571
+ const getRowClickHandler = useCallback13(
4526
4572
  (row, rowId) => (e) => {
4527
4573
  onRowClick?.({ row, rowId }, e);
4528
4574
  checkboxSelection && !disableSelectionOnClick && isRowSelectableCheck(rowId, row) && onCheckboxChange(e, rowId);
4529
4575
  },
4530
4576
  [onRowClick, checkboxSelection, disableSelectionOnClick, onCheckboxChange, isRowSelectableCheck]
4531
4577
  );
4532
- const getRowFocusHandler = useCallback12(
4578
+ const getRowFocusHandler = useCallback13(
4533
4579
  (rowId) => () => {
4534
4580
  onRowFocus(rowId);
4535
4581
  },
4536
4582
  [onRowFocus]
4537
4583
  );
4538
- const getCheckboxClickHandler = useCallback12(
4584
+ const getCheckboxClickHandler = useCallback13(
4539
4585
  (rowId, row) => (e) => {
4540
4586
  e.stopPropagation();
4541
4587
  if (isRowSelectableCheck(rowId, row)) {
@@ -4545,7 +4591,7 @@ function Component(props, apiRef) {
4545
4591
  },
4546
4592
  [onCheckboxChange, isRowSelectableCheck, onRowFocus]
4547
4593
  );
4548
- const handleTableKeyDown = useCallback12(
4594
+ const handleTableKeyDown = useCallback13(
4549
4595
  (e) => {
4550
4596
  const supportedKeys = ["ArrowUp", "ArrowDown", " ", "Home", "End", "PageUp", "PageDown"];
4551
4597
  if (!supportedKeys.includes(e.key)) return;
@@ -4651,7 +4697,7 @@ function Component(props, apiRef) {
4651
4697
  });
4652
4698
  }
4653
4699
  }));
4654
- return /* @__PURE__ */ React25.createElement(
4700
+ return /* @__PURE__ */ React26.createElement(
4655
4701
  Box_default,
4656
4702
  {
4657
4703
  sx: {
@@ -4661,7 +4707,7 @@ function Component(props, apiRef) {
4661
4707
  flexDirection: "column"
4662
4708
  }
4663
4709
  },
4664
- (!!checkboxSelection || !!Toolbar) && /* @__PURE__ */ React25.createElement(
4710
+ (!!checkboxSelection || !!Toolbar) && /* @__PURE__ */ React26.createElement(
4665
4711
  Stack_default,
4666
4712
  {
4667
4713
  direction: "row",
@@ -4671,10 +4717,10 @@ function Component(props, apiRef) {
4671
4717
  justifyContent: "space-between",
4672
4718
  alignItems: "center"
4673
4719
  },
4674
- !!checkboxSelection && /* @__PURE__ */ React25.createElement(Stack_default, { direction: "row", spacing: 1 }, !isAllSelected && /* @__PURE__ */ React25.createElement(Typography_default, { level: "body-xs" }, numberFormatter(selectionModel?.length || 0), " items selected"), isAllSelected && !isTotalSelected && /* @__PURE__ */ React25.createElement(Stack_default, { direction: "row", spacing: 1, alignItems: "center" }, /* @__PURE__ */ React25.createElement(Typography_default, { level: "body-xs" }, "All ", numberFormatter(selectionModel?.length || 0), " items on this page are selected."), /* @__PURE__ */ React25.createElement(Button_default, { size: "sm", variant: "plain", onClick: onTotalSelect }, "Select all ", numberFormatter(selectableRowCount), " items")), isTotalSelected && /* @__PURE__ */ React25.createElement(Stack_default, { direction: "row", spacing: 1, alignItems: "center" }, /* @__PURE__ */ React25.createElement(Typography_default, { level: "body-xs" }, "All ", numberFormatter(selectableRowCount), " items are selected."), /* @__PURE__ */ React25.createElement(Button_default, { size: "sm", variant: "plain", color: "danger", onClick: onTotalSelect }, "Cancel"))),
4675
- Toolbar && /* @__PURE__ */ React25.createElement(Toolbar, { ...toolbarProps || {} })
4720
+ !!checkboxSelection && /* @__PURE__ */ React26.createElement(Stack_default, { direction: "row", spacing: 1 }, !isAllSelected && /* @__PURE__ */ React26.createElement(Typography_default, { level: "body-xs" }, numberFormatter(selectionModel?.length || 0), " items selected"), isAllSelected && !isTotalSelected && /* @__PURE__ */ React26.createElement(Stack_default, { direction: "row", spacing: 1, alignItems: "center" }, /* @__PURE__ */ React26.createElement(Typography_default, { level: "body-xs" }, "All ", numberFormatter(selectionModel?.length || 0), " items on this page are selected."), /* @__PURE__ */ React26.createElement(Button_default, { size: "sm", variant: "plain", onClick: onTotalSelect }, "Select all ", numberFormatter(selectableRowCount), " items")), isTotalSelected && /* @__PURE__ */ React26.createElement(Stack_default, { direction: "row", spacing: 1, alignItems: "center" }, /* @__PURE__ */ React26.createElement(Typography_default, { level: "body-xs" }, "All ", numberFormatter(selectableRowCount), " items are selected."), /* @__PURE__ */ React26.createElement(Button_default, { size: "sm", variant: "plain", color: "danger", onClick: onTotalSelect }, "Cancel"))),
4721
+ Toolbar && /* @__PURE__ */ React26.createElement(Toolbar, { ...toolbarProps || {} })
4676
4722
  ),
4677
- /* @__PURE__ */ React25.createElement(
4723
+ /* @__PURE__ */ React26.createElement(
4678
4724
  Sheet_default,
4679
4725
  {
4680
4726
  variant: "outlined",
@@ -4695,14 +4741,14 @@ function Component(props, apiRef) {
4695
4741
  ref: parentRef,
4696
4742
  ...backgroundProps
4697
4743
  },
4698
- /* @__PURE__ */ React25.createElement(Table, { ...innerProps, sx: { ...innerProps.sx, minWidth: tableMinWidth } }, /* @__PURE__ */ React25.createElement("colgroup", null, checkboxSelection && /* @__PURE__ */ React25.createElement(
4744
+ /* @__PURE__ */ React26.createElement(Table, { ...innerProps, sx: { ...innerProps.sx, minWidth: tableMinWidth } }, /* @__PURE__ */ React26.createElement("colgroup", null, checkboxSelection && /* @__PURE__ */ React26.createElement(
4699
4745
  "col",
4700
4746
  {
4701
4747
  style: {
4702
4748
  width: "40px"
4703
4749
  }
4704
4750
  }
4705
- ), columns.map((c) => /* @__PURE__ */ React25.createElement(
4751
+ ), columns.map((c) => /* @__PURE__ */ React26.createElement(
4706
4752
  "col",
4707
4753
  {
4708
4754
  ref: c.tableColRef,
@@ -4712,7 +4758,7 @@ function Component(props, apiRef) {
4712
4758
  minWidth: c.minWidth ?? "50px"
4713
4759
  }
4714
4760
  }
4715
- ))), /* @__PURE__ */ React25.createElement("thead", null, processedColumnGroups && processedColumnGroups.groups.length > 0 && processedColumnGroups.groups.map((levelGroups, level) => /* @__PURE__ */ React25.createElement("tr", { key: `group-level-${level}` }, checkboxSelection && level === 0 && /* @__PURE__ */ React25.createElement(
4761
+ ))), /* @__PURE__ */ React26.createElement("thead", null, processedColumnGroups && processedColumnGroups.groups.length > 0 && processedColumnGroups.groups.map((levelGroups, level) => /* @__PURE__ */ React26.createElement("tr", { key: `group-level-${level}` }, checkboxSelection && level === 0 && /* @__PURE__ */ React26.createElement(
4716
4762
  "th",
4717
4763
  {
4718
4764
  rowSpan: processedColumnGroups.maxLevel + 2,
@@ -4723,12 +4769,12 @@ function Component(props, apiRef) {
4723
4769
  }
4724
4770
  },
4725
4771
  headerCheckboxElement
4726
- ), level > 0 && Array.from({ length: levelGroups[0]?.startIndex || 0 }).map((_2, i) => /* @__PURE__ */ React25.createElement("th", { key: `empty-${level}-${i}` })), levelGroups.filter((g) => g.colspan > 0).map((group, groupIndex) => {
4772
+ ), level > 0 && Array.from({ length: levelGroups[0]?.startIndex || 0 }).map((_2, i) => /* @__PURE__ */ React26.createElement("th", { key: `empty-${level}-${i}` })), levelGroups.filter((g) => g.colspan > 0).map((group, groupIndex) => {
4727
4773
  const nextGroup = levelGroups[groupIndex + 1];
4728
4774
  const emptyCells = nextGroup ? nextGroup.startIndex - (group.startIndex + group.colspan) : columns.length - (group.startIndex + group.colspan);
4729
4775
  const params = { groupId: group.groupId };
4730
4776
  const computedHeaderClassName = group.headerClassName ? typeof group.headerClassName === "function" ? group.headerClassName(params) : group.headerClassName : void 0;
4731
- return /* @__PURE__ */ React25.createElement(Fragment2, { key: group.groupId }, /* @__PURE__ */ React25.createElement(
4777
+ return /* @__PURE__ */ React26.createElement(Fragment2, { key: group.groupId }, /* @__PURE__ */ React26.createElement(
4732
4778
  "th",
4733
4779
  {
4734
4780
  colSpan: group.colspan,
@@ -4740,8 +4786,8 @@ function Component(props, apiRef) {
4740
4786
  className: computedHeaderClassName
4741
4787
  },
4742
4788
  group.headerName ?? group.groupId
4743
- ), emptyCells > 0 && Array.from({ length: emptyCells }).map((_2, i) => /* @__PURE__ */ React25.createElement("th", { key: `empty-between-${level}-${groupIndex}-${i}`, colSpan: 1 })));
4744
- }))), /* @__PURE__ */ React25.createElement("tr", null, (!processedColumnGroups || processedColumnGroups.groups.length === 0) && checkboxSelection && /* @__PURE__ */ React25.createElement(
4789
+ ), emptyCells > 0 && Array.from({ length: emptyCells }).map((_2, i) => /* @__PURE__ */ React26.createElement("th", { key: `empty-between-${level}-${groupIndex}-${i}`, colSpan: 1 })));
4790
+ }))), /* @__PURE__ */ React26.createElement("tr", null, (!processedColumnGroups || processedColumnGroups.groups.length === 0) && checkboxSelection && /* @__PURE__ */ React26.createElement(
4745
4791
  "th",
4746
4792
  {
4747
4793
  style: {
@@ -4752,7 +4798,7 @@ function Component(props, apiRef) {
4752
4798
  headerCheckboxElement
4753
4799
  ), columns.map((c, i) => (
4754
4800
  // @ts-ignore
4755
- /* @__PURE__ */ React25.createElement(
4801
+ /* @__PURE__ */ React26.createElement(
4756
4802
  HeadCell2,
4757
4803
  {
4758
4804
  tableId,
@@ -4764,7 +4810,7 @@ function Component(props, apiRef) {
4764
4810
  ...c
4765
4811
  }
4766
4812
  )
4767
- )))), /* @__PURE__ */ React25.createElement(
4813
+ )))), /* @__PURE__ */ React26.createElement(
4768
4814
  VirtualizedTableBody,
4769
4815
  {
4770
4816
  ref: tableBodyRef,
@@ -4775,7 +4821,7 @@ function Component(props, apiRef) {
4775
4821
  role: "rowgroup",
4776
4822
  "aria-label": "DataTableBody"
4777
4823
  },
4778
- !!loading && /* @__PURE__ */ React25.createElement(OverlayWrapper, null, /* @__PURE__ */ React25.createElement(
4824
+ !!loading && /* @__PURE__ */ React26.createElement(OverlayWrapper, null, /* @__PURE__ */ React26.createElement(
4779
4825
  "td",
4780
4826
  {
4781
4827
  style: {
@@ -4784,7 +4830,7 @@ function Component(props, apiRef) {
4784
4830
  overflow: "visible"
4785
4831
  }
4786
4832
  },
4787
- /* @__PURE__ */ React25.createElement(
4833
+ /* @__PURE__ */ React26.createElement(
4788
4834
  Box_default,
4789
4835
  {
4790
4836
  sx: {
@@ -4794,10 +4840,10 @@ function Component(props, apiRef) {
4794
4840
  right: 0
4795
4841
  }
4796
4842
  },
4797
- /* @__PURE__ */ React25.createElement(LoadingOverlay, null)
4843
+ /* @__PURE__ */ React26.createElement(LoadingOverlay, null)
4798
4844
  )
4799
4845
  )),
4800
- showNoRowsOverlay && /* @__PURE__ */ React25.createElement("tr", null, /* @__PURE__ */ React25.createElement("td", { colSpan: totalColCount, style: { border: "none" } }, /* @__PURE__ */ React25.createElement(
4846
+ showNoRowsOverlay && /* @__PURE__ */ React26.createElement("tr", null, /* @__PURE__ */ React26.createElement("td", { colSpan: totalColCount, style: { border: "none" } }, /* @__PURE__ */ React26.createElement(
4801
4847
  Box_default,
4802
4848
  {
4803
4849
  sx: {
@@ -4807,14 +4853,14 @@ function Component(props, apiRef) {
4807
4853
  minHeight: "150px"
4808
4854
  }
4809
4855
  },
4810
- /* @__PURE__ */ React25.createElement(NoRowsOverlay, { ...noRowsOverlayProps })
4856
+ /* @__PURE__ */ React26.createElement(NoRowsOverlay, { ...noRowsOverlayProps })
4811
4857
  ))),
4812
4858
  virtualizedItems.map((virtualizedRow, index) => {
4813
4859
  const rowIndex = virtualizedRow.index;
4814
4860
  const row = dataInPage[rowIndex];
4815
4861
  const rowId = getId(row, rowIndex);
4816
4862
  const striped = stripe && (stripe === "even" && (rowIndex + 1) % 2 === 0 || stripe === "odd" && (rowIndex + 1) % 2 === 1);
4817
- return /* @__PURE__ */ React25.createElement(
4863
+ return /* @__PURE__ */ React26.createElement(
4818
4864
  VirtualizedTableRow,
4819
4865
  {
4820
4866
  key: virtualizedRow.key,
@@ -4834,7 +4880,7 @@ function Component(props, apiRef) {
4834
4880
  transform: `translateY(${virtualizedRow.start - index * virtualizedRow.size}px)`
4835
4881
  }
4836
4882
  },
4837
- checkboxSelection && /* @__PURE__ */ React25.createElement(
4883
+ checkboxSelection && /* @__PURE__ */ React26.createElement(
4838
4884
  "th",
4839
4885
  {
4840
4886
  scope: "row",
@@ -4842,7 +4888,7 @@ function Component(props, apiRef) {
4842
4888
  textAlign: "center"
4843
4889
  }
4844
4890
  },
4845
- /* @__PURE__ */ React25.createElement(
4891
+ /* @__PURE__ */ React26.createElement(
4846
4892
  RenderCheckbox,
4847
4893
  {
4848
4894
  onClick: getCheckboxClickHandler(rowId, row),
@@ -4853,7 +4899,7 @@ function Component(props, apiRef) {
4853
4899
  }
4854
4900
  )
4855
4901
  ),
4856
- /* @__PURE__ */ React25.createElement(
4902
+ /* @__PURE__ */ React26.createElement(
4857
4903
  BodyRow2,
4858
4904
  {
4859
4905
  tableId,
@@ -4866,9 +4912,9 @@ function Component(props, apiRef) {
4866
4912
  )
4867
4913
  );
4868
4914
  })
4869
- ), Footer && /* @__PURE__ */ React25.createElement(Footer, null))
4915
+ ), Footer && /* @__PURE__ */ React26.createElement(Footer, null))
4870
4916
  ),
4871
- pagination && /* @__PURE__ */ React25.createElement(
4917
+ pagination && /* @__PURE__ */ React26.createElement(
4872
4918
  Pagination_default,
4873
4919
  {
4874
4920
  pt: 2,
@@ -4885,7 +4931,7 @@ var DataTable = forwardRef7(Component);
4885
4931
  DataTable.displayName = "DataTable";
4886
4932
 
4887
4933
  // src/components/DateRangePicker/DateRangePicker.tsx
4888
- import React26, { forwardRef as forwardRef8, useCallback as useCallback13, useEffect as useEffect8, useImperativeHandle as useImperativeHandle3, useMemo as useMemo11, useRef as useRef8, useState as useState10 } from "react";
4934
+ import React27, { forwardRef as forwardRef8, useCallback as useCallback14, useEffect as useEffect8, useImperativeHandle as useImperativeHandle3, useMemo as useMemo12, useRef as useRef8, useState as useState11 } from "react";
4889
4935
  import { IMaskInput as IMaskInput2, IMask as IMask2 } from "react-imask";
4890
4936
  import CalendarTodayIcon2 from "@mui/icons-material/CalendarToday";
4891
4937
  import { styled as styled14, useThemeProps as useThemeProps5 } from "@mui/joy";
@@ -5027,9 +5073,9 @@ var parseDates = (str, format) => {
5027
5073
  var formatToPattern2 = (format) => {
5028
5074
  return `${format} - ${format}`.replace(/YYYY/g, "Y").replace(/MM/g, "M").replace(/DD/g, "D").replace(/[^YMD\s]/g, (match) => `${match}\``);
5029
5075
  };
5030
- var TextMaskAdapter5 = React26.forwardRef(function TextMaskAdapter6(props, ref) {
5076
+ var TextMaskAdapter5 = React27.forwardRef(function TextMaskAdapter6(props, ref) {
5031
5077
  const { onChange, format, ...other } = props;
5032
- return /* @__PURE__ */ React26.createElement(
5078
+ return /* @__PURE__ */ React27.createElement(
5033
5079
  IMaskInput2,
5034
5080
  {
5035
5081
  ...other,
@@ -5095,15 +5141,15 @@ var DateRangePicker = forwardRef8((inProps, ref) => {
5095
5141
  const [value, setValue] = useControlledState(
5096
5142
  props.value,
5097
5143
  props.defaultValue || "",
5098
- useCallback13((value2) => onChange?.({ target: { name: props.name, value: value2 } }), [props.name, onChange])
5144
+ useCallback14((value2) => onChange?.({ target: { name: props.name, value: value2 } }), [props.name, onChange])
5099
5145
  );
5100
5146
  const isAlphabeticDisplay = hasAlphabeticMonth2(displayFormat);
5101
- const [displayValue, setDisplayValue] = useState10(
5147
+ const [displayValue, setDisplayValue] = useState11(
5102
5148
  () => value ? formatValueString2(parseDates(value, format), displayFormat, locale) : ""
5103
5149
  );
5104
- const [anchorEl, setAnchorEl] = useState10(null);
5150
+ const [anchorEl, setAnchorEl] = useState11(null);
5105
5151
  const open = Boolean(anchorEl);
5106
- const calendarValue = useMemo11(
5152
+ const calendarValue = useMemo12(
5107
5153
  () => value ? parseDates(value, format) : void 0,
5108
5154
  [value, format]
5109
5155
  );
@@ -5125,7 +5171,7 @@ var DateRangePicker = forwardRef8((inProps, ref) => {
5125
5171
  }
5126
5172
  }, [anchorEl, innerRef]);
5127
5173
  useImperativeHandle3(ref, () => innerRef.current, [innerRef]);
5128
- const handleChange = useCallback13(
5174
+ const handleChange = useCallback14(
5129
5175
  (event) => {
5130
5176
  const value2 = event.target.value;
5131
5177
  setDisplayValue(value2 ? formatValueString2(parseDates(value2, format), displayFormat, locale) : value2);
@@ -5133,7 +5179,7 @@ var DateRangePicker = forwardRef8((inProps, ref) => {
5133
5179
  },
5134
5180
  [displayFormat, format, locale, setValue]
5135
5181
  );
5136
- const handleDisplayInputChange = useCallback13(
5182
+ const handleDisplayInputChange = useCallback14(
5137
5183
  (event) => {
5138
5184
  if (event.target.value === "") {
5139
5185
  handleChange({
@@ -5158,14 +5204,14 @@ var DateRangePicker = forwardRef8((inProps, ref) => {
5158
5204
  },
5159
5205
  [displayFormat, format, handleChange, props.name]
5160
5206
  );
5161
- const handleCalendarToggle = useCallback13(
5207
+ const handleCalendarToggle = useCallback14(
5162
5208
  (event) => {
5163
5209
  setAnchorEl(anchorEl ? null : event.currentTarget);
5164
5210
  innerRef.current?.focus();
5165
5211
  },
5166
5212
  [anchorEl, setAnchorEl, innerRef]
5167
5213
  );
5168
- const handleCalendarChange = useCallback13(
5214
+ const handleCalendarChange = useCallback14(
5169
5215
  ([date1, date2]) => {
5170
5216
  if (!date1 || !date2) return;
5171
5217
  const formattedValue = formatValueString2([date1, date2], format);
@@ -5179,7 +5225,7 @@ var DateRangePicker = forwardRef8((inProps, ref) => {
5179
5225
  },
5180
5226
  [props.value, props.name, onChange, setValue, setAnchorEl, format, displayFormat, locale]
5181
5227
  );
5182
- const handleInputMouseDown = useCallback13(
5228
+ const handleInputMouseDown = useCallback14(
5183
5229
  (event) => {
5184
5230
  if (inputReadOnly || isAlphabeticDisplay) {
5185
5231
  event.preventDefault();
@@ -5188,7 +5234,7 @@ var DateRangePicker = forwardRef8((inProps, ref) => {
5188
5234
  },
5189
5235
  [inputReadOnly, isAlphabeticDisplay, buttonRef]
5190
5236
  );
5191
- const handlePresetClick = useCallback13(
5237
+ const handlePresetClick = useCallback14(
5192
5238
  (presetValue) => {
5193
5239
  if (props.value !== void 0) {
5194
5240
  onChange?.({ target: { name: props.name, value: presetValue } });
@@ -5201,7 +5247,7 @@ var DateRangePicker = forwardRef8((inProps, ref) => {
5201
5247
  },
5202
5248
  [props.value, props.name, onChange, setValue, setAnchorEl, format, displayFormat, locale]
5203
5249
  );
5204
- const isPresetDisabled = useCallback13(
5250
+ const isPresetDisabled = useCallback14(
5205
5251
  (presetValue) => {
5206
5252
  try {
5207
5253
  const dates = parseDates(presetValue, format);
@@ -5220,7 +5266,7 @@ var DateRangePicker = forwardRef8((inProps, ref) => {
5220
5266
  },
5221
5267
  [format, minDate, maxDate, disableFuture, disablePast]
5222
5268
  );
5223
- return /* @__PURE__ */ React26.createElement(DateRangePickerRoot, null, /* @__PURE__ */ React26.createElement(FocusTrap2, { open: true }, /* @__PURE__ */ React26.createElement(React26.Fragment, null, /* @__PURE__ */ React26.createElement(
5269
+ return /* @__PURE__ */ React27.createElement(DateRangePickerRoot, null, /* @__PURE__ */ React27.createElement(FocusTrap2, { open: true }, /* @__PURE__ */ React27.createElement(React27.Fragment, null, /* @__PURE__ */ React27.createElement(
5224
5270
  Input_default,
5225
5271
  {
5226
5272
  ...innerProps,
@@ -5247,7 +5293,7 @@ var DateRangePicker = forwardRef8((inProps, ref) => {
5247
5293
  error,
5248
5294
  className,
5249
5295
  sx,
5250
- endDecorator: /* @__PURE__ */ React26.createElement(
5296
+ endDecorator: /* @__PURE__ */ React27.createElement(
5251
5297
  CalendarButton2,
5252
5298
  {
5253
5299
  ref: buttonRef,
@@ -5259,13 +5305,13 @@ var DateRangePicker = forwardRef8((inProps, ref) => {
5259
5305
  "aria-expanded": open,
5260
5306
  disabled
5261
5307
  },
5262
- /* @__PURE__ */ React26.createElement(CalendarTodayIcon2, null)
5308
+ /* @__PURE__ */ React27.createElement(CalendarTodayIcon2, null)
5263
5309
  ),
5264
5310
  label,
5265
5311
  helperText,
5266
5312
  readOnly: readOnly || inputReadOnly || isAlphabeticDisplay
5267
5313
  }
5268
- ), open && /* @__PURE__ */ React26.createElement(ClickAwayListener2, { onClickAway: () => setAnchorEl(null) }, /* @__PURE__ */ React26.createElement(
5314
+ ), open && /* @__PURE__ */ React27.createElement(ClickAwayListener2, { onClickAway: () => setAnchorEl(null) }, /* @__PURE__ */ React27.createElement(
5269
5315
  StyledPopper2,
5270
5316
  {
5271
5317
  id: "date-range-picker-popper",
@@ -5284,7 +5330,7 @@ var DateRangePicker = forwardRef8((inProps, ref) => {
5284
5330
  "aria-label": "Calendar Tooltip",
5285
5331
  "aria-expanded": open
5286
5332
  },
5287
- /* @__PURE__ */ React26.createElement(CalendarSheet2, { tabIndex: -1, role: "presentation" }, /* @__PURE__ */ React26.createElement(CalendarSheetContent2, null, /* @__PURE__ */ React26.createElement(CalendarSection2, { style: { width: "auto" } }, /* @__PURE__ */ React26.createElement(
5333
+ /* @__PURE__ */ React27.createElement(CalendarSheet2, { tabIndex: -1, role: "presentation" }, /* @__PURE__ */ React27.createElement(CalendarSheetContent2, null, /* @__PURE__ */ React27.createElement(CalendarSection2, { style: { width: "auto" } }, /* @__PURE__ */ React27.createElement(
5288
5334
  Calendar_default,
5289
5335
  {
5290
5336
  rangeSelection: true,
@@ -5297,14 +5343,14 @@ var DateRangePicker = forwardRef8((inProps, ref) => {
5297
5343
  locale,
5298
5344
  numberOfMonths
5299
5345
  }
5300
- ), !hideClearButton && /* @__PURE__ */ React26.createElement(
5346
+ ), !hideClearButton && /* @__PURE__ */ React27.createElement(
5301
5347
  DialogActions_default,
5302
5348
  {
5303
5349
  sx: {
5304
5350
  p: 1
5305
5351
  }
5306
5352
  },
5307
- /* @__PURE__ */ React26.createElement(
5353
+ /* @__PURE__ */ React27.createElement(
5308
5354
  Button_default,
5309
5355
  {
5310
5356
  size,
@@ -5318,9 +5364,9 @@ var DateRangePicker = forwardRef8((inProps, ref) => {
5318
5364
  },
5319
5365
  "Clear"
5320
5366
  )
5321
- )), presets && presets.length > 0 && /* @__PURE__ */ React26.createElement(PresetPanel2, null, presets.map((preset) => {
5367
+ )), presets && presets.length > 0 && /* @__PURE__ */ React27.createElement(PresetPanel2, null, presets.map((preset) => {
5322
5368
  const disabled2 = isPresetDisabled(preset.value);
5323
- return /* @__PURE__ */ React26.createElement(
5369
+ return /* @__PURE__ */ React27.createElement(
5324
5370
  PresetItem2,
5325
5371
  {
5326
5372
  key: preset.label,
@@ -5339,7 +5385,7 @@ var DateRangePicker = forwardRef8((inProps, ref) => {
5339
5385
  DateRangePicker.displayName = "DateRangePicker";
5340
5386
 
5341
5387
  // src/components/Drawer/Drawer.tsx
5342
- import React27 from "react";
5388
+ import React28 from "react";
5343
5389
  import { Drawer as JoyDrawer, styled as styled15, drawerClasses } from "@mui/joy";
5344
5390
  import { motion as motion21 } from "framer-motion";
5345
5391
  var MotionDrawer = motion21(JoyDrawer);
@@ -5357,7 +5403,7 @@ var StyledDrawer = styled15(MotionDrawer)(({ theme, size = "md" }) => ({
5357
5403
  }));
5358
5404
  var Drawer = (props) => {
5359
5405
  const { children, ...innerProps } = props;
5360
- return /* @__PURE__ */ React27.createElement(StyledDrawer, { ...innerProps }, children);
5406
+ return /* @__PURE__ */ React28.createElement(StyledDrawer, { ...innerProps }, children);
5361
5407
  };
5362
5408
  Drawer.displayName = "Drawer";
5363
5409
 
@@ -5388,10 +5434,10 @@ DialogTitle.displayName = "DialogTitle";
5388
5434
  var DialogTitle_default = DialogTitle;
5389
5435
 
5390
5436
  // src/components/DialogFrame/DialogFrame.tsx
5391
- import React29 from "react";
5437
+ import React30 from "react";
5392
5438
 
5393
5439
  // src/components/Modal/Modal.tsx
5394
- import React28 from "react";
5440
+ import React29 from "react";
5395
5441
  import {
5396
5442
  Modal as JoyModal,
5397
5443
  ModalDialog as JoyModalDialog,
@@ -5414,7 +5460,7 @@ var ModalOverflow = MotionModalOverflow;
5414
5460
  ModalOverflow.displayName = "ModalOverflow";
5415
5461
  function ModalFrame(props) {
5416
5462
  const { title, children, titleStartDecorator, onClose, ...innerProps } = props;
5417
- return /* @__PURE__ */ React28.createElement(StyledModalDialog, { ...innerProps }, /* @__PURE__ */ React28.createElement(ModalClose, { onClick: onClose }), /* @__PURE__ */ React28.createElement(DialogTitle_default, null, titleStartDecorator, title), /* @__PURE__ */ React28.createElement(DialogContent_default, null, children));
5463
+ return /* @__PURE__ */ React29.createElement(StyledModalDialog, { ...innerProps }, /* @__PURE__ */ React29.createElement(ModalClose, { onClick: onClose }), /* @__PURE__ */ React29.createElement(DialogTitle_default, null, titleStartDecorator, title), /* @__PURE__ */ React29.createElement(DialogContent_default, null, children));
5418
5464
  }
5419
5465
  ModalFrame.displayName = "ModalFrame";
5420
5466
 
@@ -5426,19 +5472,19 @@ var StyledDialogFrame = styled19(ModalDialog, {
5426
5472
  })({
5427
5473
  padding: 0
5428
5474
  });
5429
- var DialogFrame = React29.forwardRef((props, ref) => {
5475
+ var DialogFrame = React30.forwardRef((props, ref) => {
5430
5476
  const { title, children, actions, fullscreen, ...innerProps } = props;
5431
- return /* @__PURE__ */ React29.createElement(StyledDialogFrame, { layout: fullscreen ? "fullscreen" : "center", ref, ...innerProps }, /* @__PURE__ */ React29.createElement(DialogTitle_default, null, title), /* @__PURE__ */ React29.createElement(DialogContent_default, null, children), /* @__PURE__ */ React29.createElement(DialogActions_default, null, actions));
5477
+ return /* @__PURE__ */ React30.createElement(StyledDialogFrame, { layout: fullscreen ? "fullscreen" : "center", ref, ...innerProps }, /* @__PURE__ */ React30.createElement(DialogTitle_default, null, title), /* @__PURE__ */ React30.createElement(DialogContent_default, null, children), /* @__PURE__ */ React30.createElement(DialogActions_default, null, actions));
5432
5478
  });
5433
5479
  DialogFrame.displayName = "DialogFrame";
5434
5480
 
5435
5481
  // src/components/Divider/Divider.tsx
5436
- import React30 from "react";
5482
+ import React31 from "react";
5437
5483
  import { Divider as JoyDivider } from "@mui/joy";
5438
5484
  import { motion as motion25 } from "framer-motion";
5439
5485
  var MotionDivider = motion25(JoyDivider);
5440
5486
  var Divider = (props) => {
5441
- return /* @__PURE__ */ React30.createElement(MotionDivider, { ...props });
5487
+ return /* @__PURE__ */ React31.createElement(MotionDivider, { ...props });
5442
5488
  };
5443
5489
  Divider.displayName = "Divider";
5444
5490
 
@@ -5459,14 +5505,14 @@ var InsetDrawer = styled20(JoyDrawer2)(({ theme }) => ({
5459
5505
  }));
5460
5506
 
5461
5507
  // src/components/FilterableCheckboxGroup/FilterableCheckboxGroup.tsx
5462
- import React31, { useCallback as useCallback14, useEffect as useEffect9, useMemo as useMemo12, useRef as useRef9, useState as useState11 } from "react";
5508
+ import React32, { useCallback as useCallback15, useEffect as useEffect9, useMemo as useMemo13, useRef as useRef9, useState as useState12 } from "react";
5463
5509
  import SearchIcon from "@mui/icons-material/Search";
5464
5510
  import { useVirtualizer as useVirtualizer3 } from "@tanstack/react-virtual";
5465
5511
  function LabelWithTooltip(props) {
5466
5512
  const { label, size } = props;
5467
5513
  const labelContentRef = useRef9(null);
5468
- const [isOverflowing, setIsOverflowing] = useState11(false);
5469
- const labelContent = /* @__PURE__ */ React31.createElement(
5514
+ const [isOverflowing, setIsOverflowing] = useState12(false);
5515
+ const labelContent = /* @__PURE__ */ React32.createElement(
5470
5516
  "span",
5471
5517
  {
5472
5518
  ref: labelContentRef,
@@ -5489,7 +5535,7 @@ function LabelWithTooltip(props) {
5489
5535
  }
5490
5536
  }, [label]);
5491
5537
  if (isOverflowing) {
5492
- return /* @__PURE__ */ React31.createElement(Tooltip_default, { variant: "solid", size, title: label, placement: "bottom-start" }, labelContent);
5538
+ return /* @__PURE__ */ React32.createElement(Tooltip_default, { variant: "solid", size, title: label, placement: "bottom-start" }, labelContent);
5493
5539
  }
5494
5540
  return labelContent;
5495
5541
  }
@@ -5506,21 +5552,21 @@ function FilterableCheckboxGroup(props) {
5506
5552
  maxHeight = 300,
5507
5553
  disabled
5508
5554
  } = props;
5509
- const [searchTerm, setSearchTerm] = useState11("");
5510
- const [sortedOptions, setSortedOptions] = useState11(options);
5555
+ const [searchTerm, setSearchTerm] = useState12("");
5556
+ const [sortedOptions, setSortedOptions] = useState12(options);
5511
5557
  const [internalValue, setInternalValue] = useControlledState(
5512
5558
  value,
5513
5559
  value ?? [],
5514
- useCallback14((newValue) => onChange?.(newValue), [onChange])
5560
+ useCallback15((newValue) => onChange?.(newValue), [onChange])
5515
5561
  );
5516
5562
  const parentRef = useRef9(null);
5517
5563
  const isInitialSortRef = useRef9(false);
5518
5564
  const prevOptionsRef = useRef9([...options]);
5519
- const filteredOptions = useMemo12(() => {
5565
+ const filteredOptions = useMemo13(() => {
5520
5566
  if (!searchTerm) return sortedOptions;
5521
5567
  return sortedOptions.filter((option) => option.label.toLowerCase().includes(searchTerm.toLowerCase()));
5522
5568
  }, [sortedOptions, searchTerm]);
5523
- const itemSize = useMemo12(() => {
5569
+ const itemSize = useMemo13(() => {
5524
5570
  switch (size) {
5525
5571
  case "sm":
5526
5572
  return 28;
@@ -5567,10 +5613,10 @@ function FilterableCheckboxGroup(props) {
5567
5613
  useEffect9(() => {
5568
5614
  virtualizer.measure();
5569
5615
  }, [virtualizer, filteredOptions, size]);
5570
- const handleSearchChange = useCallback14((event) => {
5616
+ const handleSearchChange = useCallback15((event) => {
5571
5617
  setSearchTerm(event.target.value);
5572
5618
  }, []);
5573
- const handleCheckboxChange = useCallback14(
5619
+ const handleCheckboxChange = useCallback15(
5574
5620
  (optionValue) => (event) => {
5575
5621
  const checked = event.target.checked;
5576
5622
  const newValue = checked ? [...internalValue, optionValue] : internalValue.filter((v) => v !== optionValue);
@@ -5578,7 +5624,7 @@ function FilterableCheckboxGroup(props) {
5578
5624
  },
5579
5625
  [internalValue, setInternalValue]
5580
5626
  );
5581
- const handleSelectAll = useCallback14(
5627
+ const handleSelectAll = useCallback15(
5582
5628
  (event) => {
5583
5629
  const checked = event.target.checked;
5584
5630
  const enabledOptions = filteredOptions.filter((option) => !option.disabled);
@@ -5594,10 +5640,10 @@ function FilterableCheckboxGroup(props) {
5594
5640
  },
5595
5641
  [filteredOptions, internalValue, setInternalValue]
5596
5642
  );
5597
- const enabledFilteredOptions = useMemo12(() => filteredOptions.filter((option) => !option.disabled), [filteredOptions]);
5643
+ const enabledFilteredOptions = useMemo13(() => filteredOptions.filter((option) => !option.disabled), [filteredOptions]);
5598
5644
  const isAllSelected = enabledFilteredOptions.length > 0 && enabledFilteredOptions.every((option) => internalValue.includes(option.value));
5599
5645
  const isIndeterminate = !isAllSelected && enabledFilteredOptions.some((option) => internalValue.includes(option.value));
5600
- return /* @__PURE__ */ React31.createElement("div", { style: { width: "100%" } }, /* @__PURE__ */ React31.createElement(
5646
+ return /* @__PURE__ */ React32.createElement("div", { style: { width: "100%" } }, /* @__PURE__ */ React32.createElement(
5601
5647
  Input_default,
5602
5648
  {
5603
5649
  label,
@@ -5610,9 +5656,9 @@ function FilterableCheckboxGroup(props) {
5610
5656
  onChange: handleSearchChange,
5611
5657
  size,
5612
5658
  disabled,
5613
- endDecorator: /* @__PURE__ */ React31.createElement(SearchIcon, null)
5659
+ endDecorator: /* @__PURE__ */ React32.createElement(SearchIcon, null)
5614
5660
  }
5615
- ), filteredOptions.length === 0 ? /* @__PURE__ */ React31.createElement(Typography_default, { level: `body-${size}`, textColor: "neutral.softDisabledColor", padding: "20px 12px", textAlign: "center" }, "No options found.") : /* @__PURE__ */ React31.createElement(
5661
+ ), filteredOptions.length === 0 ? /* @__PURE__ */ React32.createElement(Typography_default, { level: `body-${size}`, textColor: "neutral.softDisabledColor", padding: "20px 12px", textAlign: "center" }, "No options found.") : /* @__PURE__ */ React32.createElement(
5616
5662
  "div",
5617
5663
  {
5618
5664
  ref: parentRef,
@@ -5623,7 +5669,7 @@ function FilterableCheckboxGroup(props) {
5623
5669
  marginTop: "8px"
5624
5670
  }
5625
5671
  },
5626
- !searchTerm && /* @__PURE__ */ React31.createElement(
5672
+ !searchTerm && /* @__PURE__ */ React32.createElement(
5627
5673
  Checkbox_default,
5628
5674
  {
5629
5675
  label: "Select all",
@@ -5640,7 +5686,7 @@ function FilterableCheckboxGroup(props) {
5640
5686
  sx: { width: "100%", height: itemSize }
5641
5687
  }
5642
5688
  ),
5643
- /* @__PURE__ */ React31.createElement(
5689
+ /* @__PURE__ */ React32.createElement(
5644
5690
  Stack_default,
5645
5691
  {
5646
5692
  sx: {
@@ -5650,11 +5696,11 @@ function FilterableCheckboxGroup(props) {
5650
5696
  },
5651
5697
  items.map((virtualRow) => {
5652
5698
  const option = filteredOptions[virtualRow.index];
5653
- return /* @__PURE__ */ React31.createElement(
5699
+ return /* @__PURE__ */ React32.createElement(
5654
5700
  Checkbox_default,
5655
5701
  {
5656
5702
  key: virtualRow.key,
5657
- label: /* @__PURE__ */ React31.createElement(LabelWithTooltip, { label: option.label, size }),
5703
+ label: /* @__PURE__ */ React32.createElement(LabelWithTooltip, { label: option.label, size }),
5658
5704
  checked: internalValue.includes(option.value),
5659
5705
  onChange: handleCheckboxChange(option.value),
5660
5706
  size,
@@ -5685,8 +5731,11 @@ FilterableCheckboxGroup.displayName = "FilterableCheckboxGroup";
5685
5731
  import { Grid } from "@mui/joy";
5686
5732
 
5687
5733
  // src/components/IconMenuButton/IconMenuButton.tsx
5688
- import React32 from "react";
5689
- import { MenuButton as JoyMenuButton2, IconButton as JoyIconButton2 } from "@mui/joy";
5734
+ import React33 from "react";
5735
+ import {
5736
+ MenuButton as JoyMenuButton2,
5737
+ IconButton as JoyIconButton2
5738
+ } from "@mui/joy";
5690
5739
  function IconMenuButton(props) {
5691
5740
  const {
5692
5741
  size,
@@ -5699,7 +5748,7 @@ function IconMenuButton(props) {
5699
5748
  placement = "bottom"
5700
5749
  } = props;
5701
5750
  if (!items.length) {
5702
- return /* @__PURE__ */ React32.createElement(
5751
+ return /* @__PURE__ */ React33.createElement(
5703
5752
  JoyIconButton2,
5704
5753
  {
5705
5754
  component: props.buttonComponent ?? "button",
@@ -5713,7 +5762,7 @@ function IconMenuButton(props) {
5713
5762
  icon
5714
5763
  );
5715
5764
  }
5716
- return /* @__PURE__ */ React32.createElement(Dropdown_default, null, /* @__PURE__ */ React32.createElement(
5765
+ return /* @__PURE__ */ React33.createElement(Dropdown_default, null, /* @__PURE__ */ React33.createElement(
5717
5766
  JoyMenuButton2,
5718
5767
  {
5719
5768
  slots: { root: JoyIconButton2 },
@@ -5730,18 +5779,18 @@ function IconMenuButton(props) {
5730
5779
  }
5731
5780
  },
5732
5781
  icon
5733
- ), /* @__PURE__ */ React32.createElement(Menu, { placement, size }, items.map((i) => /* @__PURE__ */ React32.createElement(MenuItem, { key: i.text, component: i.component, ...i.componentProps ?? {} }, i.text))));
5782
+ ), /* @__PURE__ */ React33.createElement(Menu, { placement, size }, items.map((i) => /* @__PURE__ */ React33.createElement(MenuItem, { key: i.text, component: i.component, ...i.componentProps ?? {} }, i.text))));
5734
5783
  }
5735
5784
  IconMenuButton.displayName = "IconMenuButton";
5736
5785
 
5737
5786
  // src/components/Markdown/Markdown.tsx
5738
- import React33, { lazy, Suspense, useEffect as useEffect10, useState as useState12 } from "react";
5787
+ import React34, { lazy, Suspense, useEffect as useEffect10, useState as useState13 } from "react";
5739
5788
  import { Skeleton } from "@mui/joy";
5740
5789
  import { Link as Link2 } from "@mui/joy";
5741
5790
  import remarkGfm from "remark-gfm";
5742
5791
  var LazyReactMarkdown = lazy(() => import("react-markdown"));
5743
5792
  var Markdown = (props) => {
5744
- const [rehypeAccent, setRehypeAccent] = useState12(null);
5793
+ const [rehypeAccent, setRehypeAccent] = useState13(null);
5745
5794
  useEffect10(() => {
5746
5795
  const loadRehypeAccent = async () => {
5747
5796
  const module = await import("./chunks/rehype-accent-FZRUD7VI.js");
@@ -5764,12 +5813,12 @@ var Markdown = (props) => {
5764
5813
  if (!rehypeAccent) {
5765
5814
  return null;
5766
5815
  }
5767
- return /* @__PURE__ */ React33.createElement(Typography, { component: "div", color, textColor, level: defaultLevel, ...innerProps }, /* @__PURE__ */ React33.createElement(
5816
+ return /* @__PURE__ */ React34.createElement(Typography, { component: "div", color, textColor, level: defaultLevel, ...innerProps }, /* @__PURE__ */ React34.createElement(
5768
5817
  Suspense,
5769
5818
  {
5770
- fallback: fallback || /* @__PURE__ */ React33.createElement(Typography, null, /* @__PURE__ */ React33.createElement(Skeleton, null, content || ""))
5819
+ fallback: fallback || /* @__PURE__ */ React34.createElement(Typography, null, /* @__PURE__ */ React34.createElement(Skeleton, null, content || ""))
5771
5820
  },
5772
- /* @__PURE__ */ React33.createElement(
5821
+ /* @__PURE__ */ React34.createElement(
5773
5822
  LazyReactMarkdown,
5774
5823
  {
5775
5824
  ...markdownOptions,
@@ -5777,17 +5826,17 @@ var Markdown = (props) => {
5777
5826
  rehypePlugins: [[rehypeAccent, { accentColor }]],
5778
5827
  remarkPlugins: [remarkGfm],
5779
5828
  components: {
5780
- a: ({ children, href }) => /* @__PURE__ */ React33.createElement(Link2, { href, target: defaultLinkAction }, children),
5781
- hr: () => /* @__PURE__ */ React33.createElement(Divider, { sx: { display: "block" } }),
5782
- b: ({ children }) => /* @__PURE__ */ React33.createElement(Typography, { component: "strong", fontWeight: boldFontWeight || "lg" }, children),
5783
- strong: ({ children }) => /* @__PURE__ */ React33.createElement(Typography, { component: "strong", fontWeight: boldFontWeight || "lg" }, children),
5829
+ a: ({ children, href }) => /* @__PURE__ */ React34.createElement(Link2, { href, target: defaultLinkAction }, children),
5830
+ hr: () => /* @__PURE__ */ React34.createElement(Divider, { sx: { display: "block" } }),
5831
+ b: ({ children }) => /* @__PURE__ */ React34.createElement(Typography, { component: "strong", fontWeight: boldFontWeight || "lg" }, children),
5832
+ strong: ({ children }) => /* @__PURE__ */ React34.createElement(Typography, { component: "strong", fontWeight: boldFontWeight || "lg" }, children),
5784
5833
  // Table components
5785
- table: ({ children }) => /* @__PURE__ */ React33.createElement(Sheet, { variant: "outlined", sx: { display: "block", borderRadius: "sm", overflow: "auto" } }, /* @__PURE__ */ React33.createElement(Table, { size: "sm" }, children)),
5834
+ table: ({ children }) => /* @__PURE__ */ React34.createElement(Sheet, { variant: "outlined", sx: { display: "block", borderRadius: "sm", overflow: "auto" } }, /* @__PURE__ */ React34.createElement(Table, { size: "sm" }, children)),
5786
5835
  // Code components
5787
5836
  code: ({ children, className }) => {
5788
5837
  const isBlock = className?.startsWith("language-");
5789
5838
  if (isBlock) {
5790
- return /* @__PURE__ */ React33.createElement(
5839
+ return /* @__PURE__ */ React34.createElement(
5791
5840
  Typography,
5792
5841
  {
5793
5842
  component: "code",
@@ -5801,7 +5850,7 @@ var Markdown = (props) => {
5801
5850
  children
5802
5851
  );
5803
5852
  }
5804
- return /* @__PURE__ */ React33.createElement(
5853
+ return /* @__PURE__ */ React34.createElement(
5805
5854
  Typography,
5806
5855
  {
5807
5856
  component: "code",
@@ -5816,7 +5865,7 @@ var Markdown = (props) => {
5816
5865
  children
5817
5866
  );
5818
5867
  },
5819
- pre: ({ children }) => /* @__PURE__ */ React33.createElement(
5868
+ pre: ({ children }) => /* @__PURE__ */ React34.createElement(
5820
5869
  Sheet,
5821
5870
  {
5822
5871
  variant: "soft",
@@ -5834,12 +5883,12 @@ var Markdown = (props) => {
5834
5883
  // Task list checkbox
5835
5884
  input: ({ checked, type }) => {
5836
5885
  if (type === "checkbox") {
5837
- return /* @__PURE__ */ React33.createElement(Checkbox, { checked, disabled: true, size: "sm", sx: { mr: 1 } });
5886
+ return /* @__PURE__ */ React34.createElement(Checkbox, { checked, disabled: true, size: "sm", sx: { mr: 1 } });
5838
5887
  }
5839
- return /* @__PURE__ */ React33.createElement("input", { checked, type });
5888
+ return /* @__PURE__ */ React34.createElement("input", { checked, type });
5840
5889
  },
5841
5890
  // Blockquote
5842
- blockquote: ({ children }) => /* @__PURE__ */ React33.createElement(
5891
+ blockquote: ({ children }) => /* @__PURE__ */ React34.createElement(
5843
5892
  Sheet,
5844
5893
  {
5845
5894
  variant: "soft",
@@ -5848,12 +5897,12 @@ var Markdown = (props) => {
5848
5897
  children
5849
5898
  ),
5850
5899
  // Image
5851
- img: ({ src, alt }) => /* @__PURE__ */ React33.createElement("img", { src, alt, style: { maxWidth: "100%", borderRadius: "4px" } }),
5900
+ img: ({ src, alt }) => /* @__PURE__ */ React34.createElement("img", { src, alt, style: { maxWidth: "100%", borderRadius: "4px" } }),
5852
5901
  // Text style components
5853
- em: ({ children }) => /* @__PURE__ */ React33.createElement(Typography, { component: "em", sx: { fontStyle: "italic" } }, children),
5854
- del: ({ children }) => /* @__PURE__ */ React33.createElement(Typography, { component: "del", sx: { textDecoration: "line-through" } }, children),
5902
+ em: ({ children }) => /* @__PURE__ */ React34.createElement(Typography, { component: "em", sx: { fontStyle: "italic" } }, children),
5903
+ del: ({ children }) => /* @__PURE__ */ React34.createElement(Typography, { component: "del", sx: { textDecoration: "line-through" } }, children),
5855
5904
  // Span for accent color (from rehype-accent plugin)
5856
- span: ({ children, node }) => /* @__PURE__ */ React33.createElement(Typography, { component: "span", textColor: node?.properties?.textColor }, children),
5905
+ span: ({ children, node }) => /* @__PURE__ */ React34.createElement(Typography, { component: "span", textColor: node?.properties?.textColor }, children),
5857
5906
  ...markdownOptions?.components
5858
5907
  }
5859
5908
  }
@@ -5863,10 +5912,10 @@ var Markdown = (props) => {
5863
5912
  Markdown.displayName = "Markdown";
5864
5913
 
5865
5914
  // src/components/MenuButton/MenuButton.tsx
5866
- import React34 from "react";
5915
+ import React35 from "react";
5867
5916
  import { MenuButton as JoyMenuButton3, Button as JoyButton2 } from "@mui/joy";
5868
5917
  import ExpandMoreIcon from "@mui/icons-material/ExpandMore";
5869
- function MenuButton(props) {
5918
+ function MenuButton2(props) {
5870
5919
  const {
5871
5920
  size,
5872
5921
  buttonText,
@@ -5881,7 +5930,7 @@ function MenuButton(props) {
5881
5930
  placement = "bottom"
5882
5931
  } = props;
5883
5932
  if (!items.length) {
5884
- return /* @__PURE__ */ React34.createElement(
5933
+ return /* @__PURE__ */ React35.createElement(
5885
5934
  JoyButton2,
5886
5935
  {
5887
5936
  component: props.buttonComponent ?? "button",
@@ -5892,12 +5941,12 @@ function MenuButton(props) {
5892
5941
  loading,
5893
5942
  startDecorator,
5894
5943
  ...props.buttonComponentProps ?? {},
5895
- endDecorator: showIcon ? /* @__PURE__ */ React34.createElement(React34.Fragment, null, endDecorator, /* @__PURE__ */ React34.createElement(ExpandMoreIcon, null)) : /* @__PURE__ */ React34.createElement(React34.Fragment, null, endDecorator)
5944
+ endDecorator: showIcon ? /* @__PURE__ */ React35.createElement(React35.Fragment, null, endDecorator, /* @__PURE__ */ React35.createElement(ExpandMoreIcon, null)) : /* @__PURE__ */ React35.createElement(React35.Fragment, null, endDecorator)
5896
5945
  },
5897
5946
  buttonText
5898
5947
  );
5899
5948
  }
5900
- return /* @__PURE__ */ React34.createElement(Dropdown_default, null, /* @__PURE__ */ React34.createElement(
5949
+ return /* @__PURE__ */ React35.createElement(Dropdown_default, null, /* @__PURE__ */ React35.createElement(
5901
5950
  JoyMenuButton3,
5902
5951
  {
5903
5952
  component: props.buttonComponent ?? "button",
@@ -5908,15 +5957,15 @@ function MenuButton(props) {
5908
5957
  loading,
5909
5958
  startDecorator,
5910
5959
  ...props.buttonComponentProps ?? {},
5911
- endDecorator: showIcon ? /* @__PURE__ */ React34.createElement(React34.Fragment, null, endDecorator, /* @__PURE__ */ React34.createElement(ExpandMoreIcon, null)) : /* @__PURE__ */ React34.createElement(React34.Fragment, null, endDecorator)
5960
+ endDecorator: showIcon ? /* @__PURE__ */ React35.createElement(React35.Fragment, null, endDecorator, /* @__PURE__ */ React35.createElement(ExpandMoreIcon, null)) : /* @__PURE__ */ React35.createElement(React35.Fragment, null, endDecorator)
5912
5961
  },
5913
5962
  buttonText
5914
- ), /* @__PURE__ */ React34.createElement(Menu, { placement, size }, items.map((i) => /* @__PURE__ */ React34.createElement(MenuItem, { key: i.text, component: i.component, ...i.componentProps ?? {} }, i.text))));
5963
+ ), /* @__PURE__ */ React35.createElement(Menu, { placement, size }, items.map((i) => /* @__PURE__ */ React35.createElement(MenuItem, { key: i.text, component: i.component, ...i.componentProps ?? {} }, i.text))));
5915
5964
  }
5916
- MenuButton.displayName = "MenuButton";
5965
+ MenuButton2.displayName = "MenuButton";
5917
5966
 
5918
5967
  // src/components/MonthPicker/MonthPicker.tsx
5919
- import React35, { forwardRef as forwardRef9, useCallback as useCallback15, useEffect as useEffect11, useImperativeHandle as useImperativeHandle4, useRef as useRef10, useState as useState13 } from "react";
5968
+ import React36, { forwardRef as forwardRef9, useCallback as useCallback16, useEffect as useEffect11, useImperativeHandle as useImperativeHandle4, useRef as useRef10, useState as useState14 } from "react";
5920
5969
  import CalendarTodayIcon3 from "@mui/icons-material/CalendarToday";
5921
5970
  import { styled as styled21, useThemeProps as useThemeProps6 } from "@mui/joy";
5922
5971
  import { FocusTrap as FocusTrap3, ClickAwayListener as ClickAwayListener3, Popper as Popper4 } from "@mui/base";
@@ -6004,9 +6053,9 @@ var MonthPicker = forwardRef9((inProps, ref) => {
6004
6053
  const [value, setValue, isControlled] = useControlledState(
6005
6054
  props.value,
6006
6055
  props.defaultValue || "",
6007
- useCallback15((value2) => onChange?.({ target: { name: props.name, value: value2 } }), [props.name, onChange])
6056
+ useCallback16((value2) => onChange?.({ target: { name: props.name, value: value2 } }), [props.name, onChange])
6008
6057
  );
6009
- const getFormattedDisplayValue = useCallback15(
6058
+ const getFormattedDisplayValue = useCallback16(
6010
6059
  (inputValue) => {
6011
6060
  if (!inputValue) return "";
6012
6061
  try {
@@ -6017,8 +6066,8 @@ var MonthPicker = forwardRef9((inProps, ref) => {
6017
6066
  },
6018
6067
  [format, displayFormat, locale]
6019
6068
  );
6020
- const [displayValue, setDisplayValue] = useState13(() => getFormattedDisplayValue(value));
6021
- const [anchorEl, setAnchorEl] = useState13(null);
6069
+ const [displayValue, setDisplayValue] = useState14(() => getFormattedDisplayValue(value));
6070
+ const [anchorEl, setAnchorEl] = useState14(null);
6022
6071
  const open = Boolean(anchorEl);
6023
6072
  useEffect11(() => {
6024
6073
  if (!anchorEl) {
@@ -6029,7 +6078,7 @@ var MonthPicker = forwardRef9((inProps, ref) => {
6029
6078
  useEffect11(() => {
6030
6079
  setDisplayValue(getFormattedDisplayValue(value));
6031
6080
  }, [value, getFormattedDisplayValue]);
6032
- const handleChange = useCallback15(
6081
+ const handleChange = useCallback16(
6033
6082
  (event) => {
6034
6083
  const newValue = event.target.value;
6035
6084
  setValue(newValue);
@@ -6039,21 +6088,21 @@ var MonthPicker = forwardRef9((inProps, ref) => {
6039
6088
  },
6040
6089
  [setValue, getFormattedDisplayValue, isControlled]
6041
6090
  );
6042
- const handleCalendarToggle = useCallback15(
6091
+ const handleCalendarToggle = useCallback16(
6043
6092
  (event) => {
6044
6093
  setAnchorEl(anchorEl ? null : event.currentTarget);
6045
6094
  innerRef.current?.focus();
6046
6095
  },
6047
6096
  [anchorEl, setAnchorEl, innerRef]
6048
6097
  );
6049
- const handleInputMouseDown = useCallback15(
6098
+ const handleInputMouseDown = useCallback16(
6050
6099
  (event) => {
6051
6100
  event.preventDefault();
6052
6101
  buttonRef.current?.focus();
6053
6102
  },
6054
6103
  [buttonRef]
6055
6104
  );
6056
- return /* @__PURE__ */ React35.createElement(MonthPickerRoot, null, /* @__PURE__ */ React35.createElement(FocusTrap3, { open: true }, /* @__PURE__ */ React35.createElement(React35.Fragment, null, /* @__PURE__ */ React35.createElement(
6105
+ return /* @__PURE__ */ React36.createElement(MonthPickerRoot, null, /* @__PURE__ */ React36.createElement(FocusTrap3, { open: true }, /* @__PURE__ */ React36.createElement(React36.Fragment, null, /* @__PURE__ */ React36.createElement(
6057
6106
  Input_default,
6058
6107
  {
6059
6108
  ...innerProps,
@@ -6083,7 +6132,7 @@ var MonthPicker = forwardRef9((inProps, ref) => {
6083
6132
  // NOTE: placeholder char 를 텍스트로 표시하므로 동일한 너비를 가지는 mono font 를 사용해야 이질감이 없다.
6084
6133
  fontFamily: "monospace"
6085
6134
  },
6086
- endDecorator: /* @__PURE__ */ React35.createElement(
6135
+ endDecorator: /* @__PURE__ */ React36.createElement(
6087
6136
  IconButton_default,
6088
6137
  {
6089
6138
  ref: buttonRef,
@@ -6095,12 +6144,12 @@ var MonthPicker = forwardRef9((inProps, ref) => {
6095
6144
  "aria-expanded": open,
6096
6145
  disabled
6097
6146
  },
6098
- /* @__PURE__ */ React35.createElement(CalendarTodayIcon3, null)
6147
+ /* @__PURE__ */ React36.createElement(CalendarTodayIcon3, null)
6099
6148
  ),
6100
6149
  label,
6101
6150
  helperText
6102
6151
  }
6103
- ), open && /* @__PURE__ */ React35.createElement(ClickAwayListener3, { onClickAway: () => setAnchorEl(null) }, /* @__PURE__ */ React35.createElement(
6152
+ ), open && /* @__PURE__ */ React36.createElement(ClickAwayListener3, { onClickAway: () => setAnchorEl(null) }, /* @__PURE__ */ React36.createElement(
6104
6153
  StyledPopper3,
6105
6154
  {
6106
6155
  id: "month-picker-popper",
@@ -6119,7 +6168,7 @@ var MonthPicker = forwardRef9((inProps, ref) => {
6119
6168
  "aria-label": "Calendar Tooltip",
6120
6169
  "aria-expanded": open
6121
6170
  },
6122
- /* @__PURE__ */ React35.createElement(CalendarSheet3, { tabIndex: -1, role: "presentation" }, /* @__PURE__ */ React35.createElement(
6171
+ /* @__PURE__ */ React36.createElement(CalendarSheet3, { tabIndex: -1, role: "presentation" }, /* @__PURE__ */ React36.createElement(
6123
6172
  Calendar_default,
6124
6173
  {
6125
6174
  view: "month",
@@ -6140,14 +6189,14 @@ var MonthPicker = forwardRef9((inProps, ref) => {
6140
6189
  disablePast,
6141
6190
  locale
6142
6191
  }
6143
- ), /* @__PURE__ */ React35.createElement(
6192
+ ), /* @__PURE__ */ React36.createElement(
6144
6193
  DialogActions_default,
6145
6194
  {
6146
6195
  sx: {
6147
6196
  p: 1
6148
6197
  }
6149
6198
  },
6150
- /* @__PURE__ */ React35.createElement(
6199
+ /* @__PURE__ */ React36.createElement(
6151
6200
  Button_default,
6152
6201
  {
6153
6202
  size,
@@ -6170,7 +6219,7 @@ var MonthPicker = forwardRef9((inProps, ref) => {
6170
6219
  });
6171
6220
 
6172
6221
  // src/components/MonthRangePicker/MonthRangePicker.tsx
6173
- import React36, { forwardRef as forwardRef10, useCallback as useCallback16, useEffect as useEffect12, useImperativeHandle as useImperativeHandle5, useMemo as useMemo13, useRef as useRef11, useState as useState14 } from "react";
6222
+ import React37, { forwardRef as forwardRef10, useCallback as useCallback17, useEffect as useEffect12, useImperativeHandle as useImperativeHandle5, useMemo as useMemo14, useRef as useRef11, useState as useState15 } from "react";
6174
6223
  import { IMaskInput as IMaskInput3, IMask as IMask3 } from "react-imask";
6175
6224
  import CalendarTodayIcon4 from "@mui/icons-material/CalendarToday";
6176
6225
  import { styled as styled22, useThemeProps as useThemeProps7 } from "@mui/joy";
@@ -6231,9 +6280,9 @@ var parseDates2 = (str) => {
6231
6280
  var formatToPattern3 = (format) => {
6232
6281
  return `${format} - ${format}`.replace(/YYYY/g, "Y").replace(/MM/g, "m").replace(/[^YMm\s]/g, (match) => `${match}\``);
6233
6282
  };
6234
- var TextMaskAdapter7 = React36.forwardRef(function TextMaskAdapter8(props, ref) {
6283
+ var TextMaskAdapter7 = React37.forwardRef(function TextMaskAdapter8(props, ref) {
6235
6284
  const { onChange, format, ...other } = props;
6236
- return /* @__PURE__ */ React36.createElement(
6285
+ return /* @__PURE__ */ React37.createElement(
6237
6286
  IMaskInput3,
6238
6287
  {
6239
6288
  ...other,
@@ -6290,14 +6339,14 @@ var MonthRangePicker = forwardRef10((inProps, ref) => {
6290
6339
  const [value, setValue] = useControlledState(
6291
6340
  props.value,
6292
6341
  props.defaultValue || "",
6293
- useCallback16((value2) => onChange?.({ target: { name: props.name, value: value2 } }), [props.name, onChange])
6342
+ useCallback17((value2) => onChange?.({ target: { name: props.name, value: value2 } }), [props.name, onChange])
6294
6343
  );
6295
- const [displayValue, setDisplayValue] = useState14(
6344
+ const [displayValue, setDisplayValue] = useState15(
6296
6345
  () => value ? formatValueString4(parseDates2(value), displayFormat, locale) : ""
6297
6346
  );
6298
- const [anchorEl, setAnchorEl] = useState14(null);
6347
+ const [anchorEl, setAnchorEl] = useState15(null);
6299
6348
  const open = Boolean(anchorEl);
6300
- const calendarValue = useMemo13(() => value ? parseDates2(value) : void 0, [value]);
6349
+ const calendarValue = useMemo14(() => value ? parseDates2(value) : void 0, [value]);
6301
6350
  useEffect12(() => {
6302
6351
  if (value) {
6303
6352
  try {
@@ -6316,7 +6365,7 @@ var MonthRangePicker = forwardRef10((inProps, ref) => {
6316
6365
  }
6317
6366
  }, [anchorEl, innerRef]);
6318
6367
  useImperativeHandle5(ref, () => innerRef.current, [innerRef]);
6319
- const handleChange = useCallback16(
6368
+ const handleChange = useCallback17(
6320
6369
  (event) => {
6321
6370
  setDisplayValue(
6322
6371
  event.target.value ? formatValueString4(parseDates2(event.target.value), displayFormat, locale) : ""
@@ -6325,7 +6374,7 @@ var MonthRangePicker = forwardRef10((inProps, ref) => {
6325
6374
  },
6326
6375
  [displayFormat, locale, setValue]
6327
6376
  );
6328
- const handleInputMouseDown = useCallback16(
6377
+ const handleInputMouseDown = useCallback17(
6329
6378
  (event) => {
6330
6379
  if (isAlphabeticDisplay) {
6331
6380
  event.preventDefault();
@@ -6334,14 +6383,14 @@ var MonthRangePicker = forwardRef10((inProps, ref) => {
6334
6383
  },
6335
6384
  [isAlphabeticDisplay, buttonRef]
6336
6385
  );
6337
- const handleCalendarToggle = useCallback16(
6386
+ const handleCalendarToggle = useCallback17(
6338
6387
  (event) => {
6339
6388
  setAnchorEl(anchorEl ? null : event.currentTarget);
6340
6389
  innerRef.current?.focus();
6341
6390
  },
6342
6391
  [anchorEl, setAnchorEl, innerRef]
6343
6392
  );
6344
- const handleCalendarChange = useCallback16(
6393
+ const handleCalendarChange = useCallback17(
6345
6394
  ([date1, date2]) => {
6346
6395
  if (!date1 || !date2) return;
6347
6396
  const formattedValue = formatValueString4([date1, date2], format);
@@ -6351,7 +6400,7 @@ var MonthRangePicker = forwardRef10((inProps, ref) => {
6351
6400
  },
6352
6401
  [setValue, setAnchorEl, format, displayFormat, locale]
6353
6402
  );
6354
- return /* @__PURE__ */ React36.createElement(MonthRangePickerRoot, null, /* @__PURE__ */ React36.createElement(FocusTrap4, { open: true }, /* @__PURE__ */ React36.createElement(React36.Fragment, null, /* @__PURE__ */ React36.createElement(
6403
+ return /* @__PURE__ */ React37.createElement(MonthRangePickerRoot, null, /* @__PURE__ */ React37.createElement(FocusTrap4, { open: true }, /* @__PURE__ */ React37.createElement(React37.Fragment, null, /* @__PURE__ */ React37.createElement(
6355
6404
  Input_default,
6356
6405
  {
6357
6406
  ...innerProps,
@@ -6381,7 +6430,7 @@ var MonthRangePicker = forwardRef10((inProps, ref) => {
6381
6430
  // NOTE: placeholder char 를 텍스트로 표시하므로 동일한 너비를 가지는 mono font 를 사용해야 이질감이 없다.
6382
6431
  fontFamily: "monospace"
6383
6432
  },
6384
- endDecorator: /* @__PURE__ */ React36.createElement(
6433
+ endDecorator: /* @__PURE__ */ React37.createElement(
6385
6434
  IconButton_default,
6386
6435
  {
6387
6436
  ref: buttonRef,
@@ -6392,12 +6441,12 @@ var MonthRangePicker = forwardRef10((inProps, ref) => {
6392
6441
  "aria-haspopup": "dialog",
6393
6442
  "aria-expanded": open
6394
6443
  },
6395
- /* @__PURE__ */ React36.createElement(CalendarTodayIcon4, null)
6444
+ /* @__PURE__ */ React37.createElement(CalendarTodayIcon4, null)
6396
6445
  ),
6397
6446
  label,
6398
6447
  helperText
6399
6448
  }
6400
- ), open && /* @__PURE__ */ React36.createElement(ClickAwayListener4, { onClickAway: () => setAnchorEl(null) }, /* @__PURE__ */ React36.createElement(
6449
+ ), open && /* @__PURE__ */ React37.createElement(ClickAwayListener4, { onClickAway: () => setAnchorEl(null) }, /* @__PURE__ */ React37.createElement(
6401
6450
  StyledPopper4,
6402
6451
  {
6403
6452
  id: "month-range-picker-popper",
@@ -6416,7 +6465,7 @@ var MonthRangePicker = forwardRef10((inProps, ref) => {
6416
6465
  "aria-label": "Calendar Tooltip",
6417
6466
  "aria-expanded": open
6418
6467
  },
6419
- /* @__PURE__ */ React36.createElement(CalendarSheet4, { tabIndex: -1, role: "presentation" }, /* @__PURE__ */ React36.createElement(
6468
+ /* @__PURE__ */ React37.createElement(CalendarSheet4, { tabIndex: -1, role: "presentation" }, /* @__PURE__ */ React37.createElement(
6420
6469
  Calendar_default,
6421
6470
  {
6422
6471
  view: "month",
@@ -6430,14 +6479,14 @@ var MonthRangePicker = forwardRef10((inProps, ref) => {
6430
6479
  disablePast,
6431
6480
  locale
6432
6481
  }
6433
- ), /* @__PURE__ */ React36.createElement(
6482
+ ), /* @__PURE__ */ React37.createElement(
6434
6483
  DialogActions_default,
6435
6484
  {
6436
6485
  sx: {
6437
6486
  p: 1
6438
6487
  }
6439
6488
  },
6440
- /* @__PURE__ */ React36.createElement(
6489
+ /* @__PURE__ */ React37.createElement(
6441
6490
  Button_default,
6442
6491
  {
6443
6492
  size,
@@ -6456,7 +6505,7 @@ var MonthRangePicker = forwardRef10((inProps, ref) => {
6456
6505
  MonthRangePicker.displayName = "MonthRangePicker";
6457
6506
 
6458
6507
  // src/components/NavigationGroup/NavigationGroup.tsx
6459
- import React37 from "react";
6508
+ import React38 from "react";
6460
6509
  import {
6461
6510
  Accordion as JoyAccordion2,
6462
6511
  AccordionSummary as JoyAccordionSummary2,
@@ -6487,11 +6536,11 @@ var AccordionDetails2 = styled23(JoyAccordionDetails2, {
6487
6536
  }));
6488
6537
  function NavigationGroup(props) {
6489
6538
  const { title, children, startDecorator, level, ...rest } = props;
6490
- return /* @__PURE__ */ React37.createElement(JoyAccordion2, { ...rest }, /* @__PURE__ */ React37.createElement(AccordionSummary2, { useIcon: !!startDecorator, level }, /* @__PURE__ */ React37.createElement(Stack2, { direction: "row", gap: 4 }, startDecorator, title)), /* @__PURE__ */ React37.createElement(AccordionDetails2, null, children));
6539
+ return /* @__PURE__ */ React38.createElement(JoyAccordion2, { ...rest }, /* @__PURE__ */ React38.createElement(AccordionSummary2, { useIcon: !!startDecorator, level }, /* @__PURE__ */ React38.createElement(Stack2, { direction: "row", gap: 4 }, startDecorator, title)), /* @__PURE__ */ React38.createElement(AccordionDetails2, null, children));
6491
6540
  }
6492
6541
 
6493
6542
  // src/components/NavigationItem/NavigationItem.tsx
6494
- import React38 from "react";
6543
+ import React39 from "react";
6495
6544
  import {
6496
6545
  ListItem as JoyListItem,
6497
6546
  ListItemButton as JoyListItemButton,
@@ -6526,7 +6575,7 @@ function NavigationItem(props) {
6526
6575
  const handleClick = () => {
6527
6576
  onClick?.(id);
6528
6577
  };
6529
- return /* @__PURE__ */ React38.createElement(JoyListItem, { ...rest }, /* @__PURE__ */ React38.createElement(
6578
+ return /* @__PURE__ */ React39.createElement(JoyListItem, { ...rest }, /* @__PURE__ */ React39.createElement(
6530
6579
  ListItemButton,
6531
6580
  {
6532
6581
  level,
@@ -6535,21 +6584,21 @@ function NavigationItem(props) {
6535
6584
  "aria-current": selected,
6536
6585
  onClick: handleClick
6537
6586
  },
6538
- startDecorator && /* @__PURE__ */ React38.createElement(JoyListItemDecorator, null, startDecorator),
6587
+ startDecorator && /* @__PURE__ */ React39.createElement(JoyListItemDecorator, null, startDecorator),
6539
6588
  children
6540
6589
  ));
6541
6590
  }
6542
6591
 
6543
6592
  // src/components/Navigator/Navigator.tsx
6544
- import React39 from "react";
6593
+ import React40 from "react";
6545
6594
  function Navigator(props) {
6546
6595
  const { items, level = 0, onSelect } = props;
6547
6596
  const handleItemClick = (id) => {
6548
6597
  onSelect?.(id);
6549
6598
  };
6550
- return /* @__PURE__ */ React39.createElement("div", null, items.map((item, index) => {
6599
+ return /* @__PURE__ */ React40.createElement("div", null, items.map((item, index) => {
6551
6600
  if (item.type === "item") {
6552
- return /* @__PURE__ */ React39.createElement(
6601
+ return /* @__PURE__ */ React40.createElement(
6553
6602
  NavigationItem,
6554
6603
  {
6555
6604
  key: item.id,
@@ -6562,7 +6611,7 @@ function Navigator(props) {
6562
6611
  item.title
6563
6612
  );
6564
6613
  } else if (item.type === "group") {
6565
- return /* @__PURE__ */ React39.createElement(
6614
+ return /* @__PURE__ */ React40.createElement(
6566
6615
  NavigationGroup,
6567
6616
  {
6568
6617
  key: `${item.title}-${index}`,
@@ -6580,16 +6629,16 @@ function Navigator(props) {
6580
6629
  Navigator.displayName = "Navigator";
6581
6630
 
6582
6631
  // src/components/PercentageInput/PercentageInput.tsx
6583
- import React40, { useCallback as useCallback17, useMemo as useMemo14, useState as useState15 } from "react";
6632
+ import React41, { useCallback as useCallback18, useMemo as useMemo15, useState as useState16 } from "react";
6584
6633
  import { NumericFormat as NumericFormat2 } from "react-number-format";
6585
6634
  import { styled as styled25, useThemeProps as useThemeProps8 } from "@mui/joy";
6586
6635
  var padDecimal = (value, decimalScale) => {
6587
6636
  const [integer, decimal = ""] = `${value}`.split(".");
6588
6637
  return Number(`${integer}${decimal.padEnd(decimalScale, "0")}`);
6589
6638
  };
6590
- var TextMaskAdapter9 = React40.forwardRef(function TextMaskAdapter10(props, ref) {
6639
+ var TextMaskAdapter9 = React41.forwardRef(function TextMaskAdapter10(props, ref) {
6591
6640
  const { onChange, min, max, ...innerProps } = props;
6592
- return /* @__PURE__ */ React40.createElement(
6641
+ return /* @__PURE__ */ React41.createElement(
6593
6642
  NumericFormat2,
6594
6643
  {
6595
6644
  ...innerProps,
@@ -6614,7 +6663,7 @@ var PercentageInputRoot = styled25(Input_default, {
6614
6663
  slot: "Root",
6615
6664
  overridesResolver: (props, styles) => styles.root
6616
6665
  })({});
6617
- var PercentageInput = React40.forwardRef(
6666
+ var PercentageInput = React41.forwardRef(
6618
6667
  function PercentageInput2(inProps, ref) {
6619
6668
  const props = useThemeProps8({ props: inProps, name: "PercentageInput" });
6620
6669
  const {
@@ -6637,18 +6686,18 @@ var PercentageInput = React40.forwardRef(
6637
6686
  const [_value, setValue] = useControlledState(
6638
6687
  props.value,
6639
6688
  props.defaultValue,
6640
- useCallback17((value2) => onChange?.({ target: { name, value: value2 } }), [onChange, name])
6689
+ useCallback18((value2) => onChange?.({ target: { name, value: value2 } }), [onChange, name])
6641
6690
  );
6642
- const [internalError, setInternalError] = useState15(
6691
+ const [internalError, setInternalError] = useState16(
6643
6692
  max && _value && _value > max || min && _value && _value < min
6644
6693
  );
6645
- const value = useMemo14(() => {
6694
+ const value = useMemo15(() => {
6646
6695
  if (_value && useMinorUnit) {
6647
6696
  return _value / Math.pow(10, maxDecimalScale);
6648
6697
  }
6649
6698
  return _value;
6650
6699
  }, [_value, useMinorUnit, maxDecimalScale]);
6651
- const handleChange = useCallback17(
6700
+ const handleChange = useCallback18(
6652
6701
  (event) => {
6653
6702
  if (event.target.value === "") {
6654
6703
  setValue(void 0);
@@ -6665,7 +6714,7 @@ var PercentageInput = React40.forwardRef(
6665
6714
  },
6666
6715
  [setValue, useMinorUnit, maxDecimalScale, min, max]
6667
6716
  );
6668
- return /* @__PURE__ */ React40.createElement(
6717
+ return /* @__PURE__ */ React41.createElement(
6669
6718
  PercentageInputRoot,
6670
6719
  {
6671
6720
  ...innerProps,
@@ -6706,7 +6755,7 @@ var RadioGroup = MotionRadioGroup;
6706
6755
  RadioGroup.displayName = "RadioGroup";
6707
6756
 
6708
6757
  // src/components/RadioTileGroup/RadioTileGroup.tsx
6709
- import React41 from "react";
6758
+ import React42 from "react";
6710
6759
  import { styled as styled26, radioClasses, sheetClasses } from "@mui/joy";
6711
6760
  var RadioTileGroupRoot = styled26(RadioGroup, {
6712
6761
  name: "RadioTileGroup",
@@ -6794,7 +6843,7 @@ function RadioTileGroup(props) {
6794
6843
  error,
6795
6844
  required
6796
6845
  } = props;
6797
- const radioGroup = /* @__PURE__ */ React41.createElement(
6846
+ const radioGroup = /* @__PURE__ */ React42.createElement(
6798
6847
  RadioTileGroupRoot,
6799
6848
  {
6800
6849
  overlay: true,
@@ -6805,7 +6854,7 @@ function RadioTileGroup(props) {
6805
6854
  flex,
6806
6855
  columns
6807
6856
  },
6808
- options.map((option) => /* @__PURE__ */ React41.createElement(
6857
+ options.map((option) => /* @__PURE__ */ React42.createElement(
6809
6858
  RadioTileSheet,
6810
6859
  {
6811
6860
  key: option.value,
@@ -6815,7 +6864,7 @@ function RadioTileGroup(props) {
6815
6864
  flex,
6816
6865
  textAlign
6817
6866
  },
6818
- /* @__PURE__ */ React41.createElement(
6867
+ /* @__PURE__ */ React42.createElement(
6819
6868
  Radio,
6820
6869
  {
6821
6870
  id: `${option.value}`,
@@ -6843,7 +6892,7 @@ function RadioTileGroup(props) {
6843
6892
  }
6844
6893
  }
6845
6894
  ),
6846
- option.startDecorator && /* @__PURE__ */ React41.createElement(
6895
+ option.startDecorator && /* @__PURE__ */ React42.createElement(
6847
6896
  Box_default,
6848
6897
  {
6849
6898
  sx: {
@@ -6864,20 +6913,20 @@ function RadioTileGroup(props) {
6864
6913
  )
6865
6914
  ))
6866
6915
  );
6867
- return /* @__PURE__ */ React41.createElement(FormControl_default, { required, disabled: allDisabled, error, size, sx, className }, label && /* @__PURE__ */ React41.createElement(FormLabel_default, null, label), radioGroup, helperText && /* @__PURE__ */ React41.createElement(FormHelperText_default, null, helperText));
6916
+ return /* @__PURE__ */ React42.createElement(FormControl_default, { required, disabled: allDisabled, error, size, sx, className }, label && /* @__PURE__ */ React42.createElement(FormLabel_default, null, label), radioGroup, helperText && /* @__PURE__ */ React42.createElement(FormHelperText_default, null, helperText));
6868
6917
  }
6869
6918
  RadioTileGroup.displayName = "RadioTileGroup";
6870
6919
 
6871
6920
  // src/components/RadioList/RadioList.tsx
6872
- import React42 from "react";
6921
+ import React43 from "react";
6873
6922
  function RadioList(props) {
6874
6923
  const { items, ...innerProps } = props;
6875
- return /* @__PURE__ */ React42.createElement(RadioGroup, { ...innerProps }, items.map((item) => /* @__PURE__ */ React42.createElement(Radio, { key: `${item.value}`, value: item.value, label: item.label })));
6924
+ return /* @__PURE__ */ React43.createElement(RadioGroup, { ...innerProps }, items.map((item) => /* @__PURE__ */ React43.createElement(Radio, { key: `${item.value}`, value: item.value, label: item.label })));
6876
6925
  }
6877
6926
  RadioList.displayName = "RadioList";
6878
6927
 
6879
6928
  // src/components/SearchBar/SearchBar.tsx
6880
- import * as React43 from "react";
6929
+ import * as React44 from "react";
6881
6930
  import { styled as styled27, useThemeProps as useThemeProps9 } from "@mui/joy/styles";
6882
6931
  import Box2 from "@mui/joy/Box";
6883
6932
  import SearchRoundedIcon from "@mui/icons-material/SearchRounded";
@@ -6897,11 +6946,11 @@ var SearchBarRoot = styled27(Box2, {
6897
6946
  overflow: "hidden",
6898
6947
  flexShrink: 0
6899
6948
  }));
6900
- var SearchBar = React43.forwardRef(function SearchBar2(inProps, ref) {
6949
+ var SearchBar = React44.forwardRef(function SearchBar2(inProps, ref) {
6901
6950
  const props = useThemeProps9({ props: inProps, name: "SearchBar" });
6902
6951
  const { showSelect = false, options, placeholder: placeholderProp, value, onChange, onSearch, ...other } = props;
6903
- const [selectVal, setSelectVal] = React43.useState(options?.[0]?.value ?? "");
6904
- const [isHovered, setIsHovered] = React43.useState(false);
6952
+ const [selectVal, setSelectVal] = React44.useState(options?.[0]?.value ?? "");
6953
+ const [isHovered, setIsHovered] = React44.useState(false);
6905
6954
  const ownerState = { showSelect };
6906
6955
  const selectedOption = options?.find((o) => o.value === selectVal);
6907
6956
  const placeholder = placeholderProp ?? selectedOption?.placeholder ?? "";
@@ -6916,7 +6965,7 @@ var SearchBar = React43.forwardRef(function SearchBar2(inProps, ref) {
6916
6965
  handleSearch();
6917
6966
  }
6918
6967
  };
6919
- return /* @__PURE__ */ React43.createElement(SearchBarRoot, { ref, ownerState, ...other }, showSelect && options && /* @__PURE__ */ React43.createElement(React43.Fragment, null, /* @__PURE__ */ React43.createElement(
6968
+ return /* @__PURE__ */ React44.createElement(SearchBarRoot, { ref, ownerState, ...other }, showSelect && options && /* @__PURE__ */ React44.createElement(React44.Fragment, null, /* @__PURE__ */ React44.createElement(
6920
6969
  Select,
6921
6970
  {
6922
6971
  variant: "plain",
@@ -6932,7 +6981,7 @@ var SearchBar = React43.forwardRef(function SearchBar2(inProps, ref) {
6932
6981
  }
6933
6982
  }
6934
6983
  }
6935
- ), /* @__PURE__ */ React43.createElement(Divider, { orientation: "vertical", sx: { height: (theme) => theme.spacing(4), alignSelf: "center" } })), /* @__PURE__ */ React43.createElement(
6984
+ ), /* @__PURE__ */ React44.createElement(Divider, { orientation: "vertical", sx: { height: (theme) => theme.spacing(4), alignSelf: "center" } })), /* @__PURE__ */ React44.createElement(
6936
6985
  Input,
6937
6986
  {
6938
6987
  variant: "plain",
@@ -6945,7 +6994,7 @@ var SearchBar = React43.forwardRef(function SearchBar2(inProps, ref) {
6945
6994
  sx: { flex: 1, minWidth: 0 },
6946
6995
  onMouseEnter: () => setIsHovered(true),
6947
6996
  onMouseLeave: () => setIsHovered(false),
6948
- endDecorator: isHovered && value ? /* @__PURE__ */ React43.createElement(
6997
+ endDecorator: isHovered && value ? /* @__PURE__ */ React44.createElement(
6949
6998
  IconButton,
6950
6999
  {
6951
7000
  variant: "plain",
@@ -6955,15 +7004,15 @@ var SearchBar = React43.forwardRef(function SearchBar2(inProps, ref) {
6955
7004
  onClick: handleClear,
6956
7005
  "aria-label": "Clear"
6957
7006
  },
6958
- /* @__PURE__ */ React43.createElement(CloseRoundedIcon, null)
7007
+ /* @__PURE__ */ React44.createElement(CloseRoundedIcon, null)
6959
7008
  ) : void 0
6960
7009
  }
6961
- ), /* @__PURE__ */ React43.createElement(IconButton, { variant: "plain", size: "sm", color: "neutral", onClick: handleSearch, "aria-label": "Search" }, /* @__PURE__ */ React43.createElement(SearchRoundedIcon, null)));
7010
+ ), /* @__PURE__ */ React44.createElement(IconButton, { variant: "plain", size: "sm", color: "neutral", onClick: handleSearch, "aria-label": "Search" }, /* @__PURE__ */ React44.createElement(SearchRoundedIcon, null)));
6962
7011
  });
6963
7012
  SearchBar.displayName = "SearchBar";
6964
7013
 
6965
7014
  // src/components/Stepper/Stepper.tsx
6966
- import React44 from "react";
7015
+ import React45 from "react";
6967
7016
  import {
6968
7017
  Stepper as JoyStepper,
6969
7018
  Step as JoyStep,
@@ -6999,7 +7048,7 @@ function Stepper(props) {
6999
7048
  stepOrientation = "horizontal"
7000
7049
  } = props;
7001
7050
  const effectiveStepOrientation = orientation === "vertical" ? "horizontal" : stepOrientation;
7002
- return /* @__PURE__ */ React44.createElement(
7051
+ return /* @__PURE__ */ React45.createElement(
7003
7052
  MotionStepper,
7004
7053
  {
7005
7054
  orientation,
@@ -7038,23 +7087,23 @@ function Stepper(props) {
7038
7087
  const completed = activeStep > i + 1;
7039
7088
  const disabled = activeStep < i + 1;
7040
7089
  const hasContent = step.label || step.extraContent;
7041
- return /* @__PURE__ */ React44.createElement(
7090
+ return /* @__PURE__ */ React45.createElement(
7042
7091
  Step,
7043
7092
  {
7044
7093
  key: `step-${i}`,
7045
- indicator: /* @__PURE__ */ React44.createElement(StepIndicator, { variant: disabled ? "outlined" : "solid", color: disabled ? "neutral" : "primary" }, completed ? /* @__PURE__ */ React44.createElement(CheckIcon, null) : step.indicatorContent),
7094
+ indicator: /* @__PURE__ */ React45.createElement(StepIndicator, { variant: disabled ? "outlined" : "solid", color: disabled ? "neutral" : "primary" }, completed ? /* @__PURE__ */ React45.createElement(CheckIcon, null) : step.indicatorContent),
7046
7095
  active,
7047
7096
  completed,
7048
7097
  disabled,
7049
7098
  orientation: effectiveStepOrientation
7050
7099
  },
7051
- hasContent && /* @__PURE__ */ React44.createElement(
7100
+ hasContent && /* @__PURE__ */ React45.createElement(
7052
7101
  Stack_default,
7053
7102
  {
7054
7103
  sx: orientation === "horizontal" && effectiveStepOrientation === "vertical" ? { alignItems: "center" } : {}
7055
7104
  },
7056
- step.label && /* @__PURE__ */ React44.createElement(Typography_default, { level: "title-sm" }, step.label),
7057
- step.extraContent && /* @__PURE__ */ React44.createElement(Typography_default, { level: "body-xs" }, step.extraContent)
7105
+ step.label && /* @__PURE__ */ React45.createElement(Typography_default, { level: "title-sm" }, step.label),
7106
+ step.extraContent && /* @__PURE__ */ React45.createElement(Typography_default, { level: "body-xs" }, step.extraContent)
7058
7107
  )
7059
7108
  );
7060
7109
  })
@@ -7063,7 +7112,7 @@ function Stepper(props) {
7063
7112
  Stepper.displayName = "Stepper";
7064
7113
 
7065
7114
  // src/components/Switch/Switch.tsx
7066
- import React45 from "react";
7115
+ import React46 from "react";
7067
7116
  import { Switch as JoySwitch, styled as styled29, switchClasses } from "@mui/joy";
7068
7117
  import { motion as motion28 } from "framer-motion";
7069
7118
  var MotionSwitch = motion28(JoySwitch);
@@ -7085,14 +7134,14 @@ var StyledThumb = styled29(motion28.div)({
7085
7134
  right: "var(--Switch-thumbOffset)"
7086
7135
  }
7087
7136
  });
7088
- var Thumb = (props) => /* @__PURE__ */ React45.createElement(StyledThumb, { ...props, layout: true, transition: spring });
7137
+ var Thumb = (props) => /* @__PURE__ */ React46.createElement(StyledThumb, { ...props, layout: true, transition: spring });
7089
7138
  var spring = {
7090
7139
  type: "spring",
7091
7140
  stiffness: 700,
7092
7141
  damping: 30
7093
7142
  };
7094
7143
  var Switch = (props) => {
7095
- return /* @__PURE__ */ React45.createElement(
7144
+ return /* @__PURE__ */ React46.createElement(
7096
7145
  MotionSwitch,
7097
7146
  {
7098
7147
  ...props,
@@ -7106,7 +7155,7 @@ var Switch = (props) => {
7106
7155
  Switch.displayName = "Switch";
7107
7156
 
7108
7157
  // src/components/Tabs/Tabs.tsx
7109
- import React46, { forwardRef as forwardRef12 } from "react";
7158
+ import React47, { forwardRef as forwardRef12 } from "react";
7110
7159
  import {
7111
7160
  Tabs as JoyTabs,
7112
7161
  Tab as JoyTab,
@@ -7130,14 +7179,14 @@ var StyledTab = styled30(JoyTab)(({ theme }) => ({
7130
7179
  }
7131
7180
  }));
7132
7181
  var Tab = forwardRef12(function Tab2({ startDecorator, endDecorator, children, ...props }, ref) {
7133
- return /* @__PURE__ */ React46.createElement(StyledTab, { ...props, ref }, startDecorator, children, endDecorator);
7182
+ return /* @__PURE__ */ React47.createElement(StyledTab, { ...props, ref }, startDecorator, children, endDecorator);
7134
7183
  });
7135
7184
  Tab.displayName = "Tab";
7136
7185
  var TabList = JoyTabList;
7137
7186
  var TabPanel = JoyTabPanel;
7138
7187
 
7139
7188
  // src/components/ThemeProvider/ThemeProvider.tsx
7140
- import React47 from "react";
7189
+ import React48 from "react";
7141
7190
  import {
7142
7191
  CssBaseline,
7143
7192
  CssVarsProvider,
@@ -7394,12 +7443,12 @@ var defaultTheme = extendTheme({
7394
7443
  });
7395
7444
  function ThemeProvider(props) {
7396
7445
  const theme = props.theme || defaultTheme;
7397
- return /* @__PURE__ */ React47.createElement(React47.Fragment, null, /* @__PURE__ */ React47.createElement(CssVarsProvider, { theme }, /* @__PURE__ */ React47.createElement(CssBaseline, null), props.children));
7446
+ return /* @__PURE__ */ React48.createElement(React48.Fragment, null, /* @__PURE__ */ React48.createElement(CssVarsProvider, { theme }, /* @__PURE__ */ React48.createElement(CssBaseline, null), props.children));
7398
7447
  }
7399
7448
  ThemeProvider.displayName = "ThemeProvider";
7400
7449
 
7401
7450
  // src/components/Uploader/Uploader.tsx
7402
- import React48, { useCallback as useCallback18, useEffect as useEffect13, useMemo as useMemo15, useRef as useRef12, useState as useState17 } from "react";
7451
+ import React49, { useCallback as useCallback19, useEffect as useEffect13, useMemo as useMemo16, useRef as useRef12, useState as useState18 } from "react";
7403
7452
  import { styled as styled31, Input as Input2 } from "@mui/joy";
7404
7453
  import MuiFileUploadIcon from "@mui/icons-material/CloudUploadRounded";
7405
7454
  import MuiUploadFileIcon from "@mui/icons-material/UploadFileRounded";
@@ -7476,7 +7525,7 @@ var getFileSize = (n) => {
7476
7525
  };
7477
7526
  var Preview = (props) => {
7478
7527
  const { files, uploaded, onDelete } = props;
7479
- return /* @__PURE__ */ React48.createElement(PreviewRoot, { gap: 1 }, [...uploaded, ...files].map((file) => /* @__PURE__ */ React48.createElement(UploadCard, { key: file.name, size: "sm", color: "neutral" }, /* @__PURE__ */ React48.createElement(Stack_default, { direction: "row", alignItems: "center", gap: 2 }, /* @__PURE__ */ React48.createElement(UploadFileIcon, null), /* @__PURE__ */ React48.createElement(Stack_default, { flex: "1", sx: { overflow: "hidden" } }, /* @__PURE__ */ React48.createElement(
7528
+ return /* @__PURE__ */ React49.createElement(PreviewRoot, { gap: 1 }, [...uploaded, ...files].map((file) => /* @__PURE__ */ React49.createElement(UploadCard, { key: file.name, size: "sm", color: "neutral" }, /* @__PURE__ */ React49.createElement(Stack_default, { direction: "row", alignItems: "center", gap: 2 }, /* @__PURE__ */ React49.createElement(UploadFileIcon, null), /* @__PURE__ */ React49.createElement(Stack_default, { flex: "1", sx: { overflow: "hidden" } }, /* @__PURE__ */ React49.createElement(
7480
7529
  Typography_default,
7481
7530
  {
7482
7531
  level: "body-sm",
@@ -7488,7 +7537,7 @@ var Preview = (props) => {
7488
7537
  }
7489
7538
  },
7490
7539
  file.name
7491
- ), !!file.size && /* @__PURE__ */ React48.createElement(Typography_default, { level: "body-xs", fontWeight: "300", lineHeight: "1.33", textColor: "text.tertiary" }, getFileSize(file.size))), /* @__PURE__ */ React48.createElement(IconButton_default, { onClick: () => onDelete?.(file) }, /* @__PURE__ */ React48.createElement(ClearIcon2, null))))));
7540
+ ), !!file.size && /* @__PURE__ */ React49.createElement(Typography_default, { level: "body-xs", fontWeight: "300", lineHeight: "1.33", textColor: "text.tertiary" }, getFileSize(file.size))), /* @__PURE__ */ React49.createElement(IconButton_default, { onClick: () => onDelete?.(file) }, /* @__PURE__ */ React49.createElement(ClearIcon2, null))))));
7492
7541
  };
7493
7542
  var UploaderRoot = styled31(Stack_default, {
7494
7543
  name: "Uploader",
@@ -7531,232 +7580,230 @@ var UploaderIcon = styled31(MuiFileUploadIcon, {
7531
7580
  }
7532
7581
  })
7533
7582
  );
7534
- var Uploader = React48.memo(
7535
- (props) => {
7536
- const {
7537
- accept,
7538
- minCount,
7539
- maxCount,
7540
- name,
7541
- size,
7542
- maxFileSize,
7543
- maxFileTotalSize,
7544
- onChange,
7545
- label,
7546
- disabled,
7547
- onDelete,
7548
- error: errorProp,
7549
- helperText: helperTextProp
7550
- } = props;
7551
- const dropZoneRef = useRef12(null);
7552
- const inputRef = useRef12(null);
7553
- const [errorText, setErrorText] = useState17();
7554
- const [files, setFiles] = useState17([]);
7555
- const [uploaded, setUploaded] = useState17(props.uploaded || []);
7556
- const [previewState, setPreviewState] = useState17("idle");
7557
- const accepts = useMemo15(() => accept.split(",").map((accept2) => accept2.trim()), [accept]);
7558
- const parsedAccepts = useMemo15(
7559
- () => accepts.flatMap((type) => {
7560
- if (["image/*", "video/*", "audio/*"].includes(type)) {
7561
- return ALL_EXTENSIONS_BY_TYPE[type];
7562
- }
7563
- return type;
7564
- }),
7565
- [accepts]
7566
- );
7567
- const helperText = useMemo15(() => {
7568
- if (helperTextProp) {
7569
- return helperTextProp;
7583
+ var Uploader = React49.memo((props) => {
7584
+ const {
7585
+ accept,
7586
+ minCount,
7587
+ maxCount,
7588
+ name,
7589
+ size,
7590
+ maxFileSize,
7591
+ maxFileTotalSize,
7592
+ onChange,
7593
+ label,
7594
+ disabled,
7595
+ onDelete,
7596
+ error: errorProp,
7597
+ helperText: helperTextProp
7598
+ } = props;
7599
+ const dropZoneRef = useRef12(null);
7600
+ const inputRef = useRef12(null);
7601
+ const [errorText, setErrorText] = useState18();
7602
+ const [files, setFiles] = useState18([]);
7603
+ const [uploaded, setUploaded] = useState18(props.uploaded || []);
7604
+ const [previewState, setPreviewState] = useState18("idle");
7605
+ const accepts = useMemo16(() => accept.split(",").map((accept2) => accept2.trim()), [accept]);
7606
+ const parsedAccepts = useMemo16(
7607
+ () => accepts.flatMap((type) => {
7608
+ if (["image/*", "video/*", "audio/*"].includes(type)) {
7609
+ return ALL_EXTENSIONS_BY_TYPE[type];
7570
7610
  }
7571
- const [allAcceptedTypes, acceptedTypes] = [
7572
- accepts.filter((accept2) => ["image/*", "video/*", "audio/*"].includes(accept2)).map((accept2) => {
7573
- const [type] = accept2.split("/");
7574
- return type.toLowerCase();
7575
- }),
7576
- accepts.filter((accept2) => !["image/*", "video/*", "audio/*"].includes(accept2)).map((accept2) => {
7577
- const [extensionOrType, subType] = accept2.split("/");
7578
- if (!subType) {
7579
- return extensionOrType.toUpperCase().replace(".", "");
7611
+ return type;
7612
+ }),
7613
+ [accepts]
7614
+ );
7615
+ const helperText = useMemo16(() => {
7616
+ if (helperTextProp) {
7617
+ return helperTextProp;
7618
+ }
7619
+ const [allAcceptedTypes, acceptedTypes] = [
7620
+ accepts.filter((accept2) => ["image/*", "video/*", "audio/*"].includes(accept2)).map((accept2) => {
7621
+ const [type] = accept2.split("/");
7622
+ return type.toLowerCase();
7623
+ }),
7624
+ accepts.filter((accept2) => !["image/*", "video/*", "audio/*"].includes(accept2)).map((accept2) => {
7625
+ const [extensionOrType, subType] = accept2.split("/");
7626
+ if (!subType) {
7627
+ return extensionOrType.toUpperCase().replace(".", "");
7628
+ }
7629
+ return subType.toUpperCase();
7630
+ })
7631
+ ];
7632
+ const helperTexts = [];
7633
+ if (allAcceptedTypes.length > 0) {
7634
+ helperTexts.push(`Any ${allAcceptedTypes.join(", ")} file`);
7635
+ }
7636
+ if (acceptedTypes.length > 0) {
7637
+ helperTexts.push(acceptedTypes.join(", "));
7638
+ }
7639
+ helperTexts.push(`Maximum ${getFileSize(maxFileTotalSize)}`);
7640
+ if (maxCount) {
7641
+ helperTexts.push(`Up to ${maxCount} ${maxCount === 1 ? "file" : "files"}`);
7642
+ }
7643
+ return helperTexts.join(", ");
7644
+ }, [accepts, maxFileTotalSize, maxCount, helperTextProp]);
7645
+ const error = useMemo16(() => !!errorText || errorProp, [errorProp, errorText]);
7646
+ const showDropZone = useMemo16(
7647
+ () => !maxCount || maxCount && [...uploaded, ...files].length !== maxCount,
7648
+ [files, maxCount, uploaded]
7649
+ );
7650
+ const addFiles = useCallback19(
7651
+ (uploads) => {
7652
+ try {
7653
+ const types = parsedAccepts.map((type) => type.replace(".", "")) || [];
7654
+ const fileExtension = new RegExp(`${types.join("|")}`);
7655
+ uploads.forEach((file) => {
7656
+ const ext = file.name.split(".").pop() || "";
7657
+ if (!fileExtension.test(ext)) {
7658
+ throw new Error("Please upload the correct file type.");
7580
7659
  }
7581
- return subType.toUpperCase();
7582
- })
7583
- ];
7584
- const helperTexts = [];
7585
- if (allAcceptedTypes.length > 0) {
7586
- helperTexts.push(`Any ${allAcceptedTypes.join(", ")} file`);
7587
- }
7588
- if (acceptedTypes.length > 0) {
7589
- helperTexts.push(acceptedTypes.join(", "));
7590
- }
7591
- helperTexts.push(`Maximum ${getFileSize(maxFileTotalSize)}`);
7592
- if (maxCount) {
7593
- helperTexts.push(`Up to ${maxCount} ${maxCount === 1 ? "file" : "files"}`);
7594
- }
7595
- return helperTexts.join(", ");
7596
- }, [accepts, maxFileTotalSize, maxCount, helperTextProp]);
7597
- const error = useMemo15(() => !!errorText || errorProp, [errorProp, errorText]);
7598
- const showDropZone = useMemo15(
7599
- () => !maxCount || maxCount && [...uploaded, ...files].length !== maxCount,
7600
- [files, maxCount, uploaded]
7601
- );
7602
- const addFiles = useCallback18(
7603
- (uploads) => {
7604
- try {
7605
- const types = parsedAccepts.map((type) => type.replace(".", "")) || [];
7606
- const fileExtension = new RegExp(`${types.join("|")}`);
7660
+ });
7661
+ if (maxFileSize) {
7607
7662
  uploads.forEach((file) => {
7608
- const ext = file.name.split(".").pop() || "";
7609
- if (!fileExtension.test(ext)) {
7610
- throw new Error("Please upload the correct file type.");
7663
+ if (file.size > maxFileSize) {
7664
+ throw new Error(
7665
+ `One or more files exceeded the maximum file size. Each file size must be ${getFileSize(
7666
+ maxFileSize
7667
+ )} or less.`
7668
+ );
7611
7669
  }
7612
7670
  });
7613
- if (maxFileSize) {
7614
- uploads.forEach((file) => {
7615
- if (file.size > maxFileSize) {
7616
- throw new Error(
7617
- `One or more files exceeded the maximum file size. Each file size must be ${getFileSize(
7618
- maxFileSize
7619
- )} or less.`
7620
- );
7621
- }
7622
- });
7623
- }
7624
- const totalFileSize = [...files, ...uploads].reduce((acc, file) => acc + file.size, 0);
7625
- if (totalFileSize > maxFileTotalSize) {
7626
- throw new Error(`The total file size exceeds the maximum limit.`);
7627
- }
7628
- const newFiles = [...files, ...uploads];
7629
- if (maxCount && [...uploaded, ...newFiles].length > maxCount) {
7630
- throw new Error(`Exceeded the maximum number of files.`);
7671
+ }
7672
+ const totalFileSize = [...files, ...uploads].reduce((acc, file) => acc + file.size, 0);
7673
+ if (totalFileSize > maxFileTotalSize) {
7674
+ throw new Error(`The total file size exceeds the maximum limit.`);
7675
+ }
7676
+ const newFiles = [...files, ...uploads];
7677
+ if (maxCount && [...uploaded, ...newFiles].length > maxCount) {
7678
+ throw new Error(`Exceeded the maximum number of files.`);
7679
+ }
7680
+ onChange?.({
7681
+ target: {
7682
+ name,
7683
+ value: newFiles
7631
7684
  }
7685
+ });
7686
+ setFiles(newFiles);
7687
+ setErrorText(void 0);
7688
+ } catch (error2) {
7689
+ const err = error2;
7690
+ setErrorText(err.message);
7691
+ }
7692
+ },
7693
+ [files, uploaded, maxCount, parsedAccepts, maxFileSize, maxFileTotalSize, name, onChange]
7694
+ );
7695
+ useEffect13(() => {
7696
+ if (!dropZoneRef.current || disabled) {
7697
+ return;
7698
+ }
7699
+ let cleanup;
7700
+ Promise.all([esmFiles.combine, esmFiles.adapter, esmFiles.file, esmFiles.preventUnhandled]).then(
7701
+ ([combineModule, adapterModule, fileModule, preventUnhandledModule]) => {
7702
+ const { combine } = combineModule;
7703
+ const { dropTargetForExternal, monitorForExternal } = adapterModule;
7704
+ const { containsFiles, getFiles } = fileModule;
7705
+ const { preventUnhandled } = preventUnhandledModule;
7706
+ cleanup = combine(
7707
+ dropTargetForExternal({
7708
+ element: dropZoneRef.current,
7709
+ canDrop: containsFiles,
7710
+ onDragEnter: () => setPreviewState("over"),
7711
+ onDragLeave: () => setPreviewState("potential"),
7712
+ onDrop: async ({ source }) => {
7713
+ const files2 = await getFiles({ source });
7714
+ addFiles(files2);
7715
+ }
7716
+ }),
7717
+ monitorForExternal({
7718
+ canMonitor: containsFiles,
7719
+ onDragStart: () => {
7720
+ setPreviewState("potential");
7721
+ preventUnhandled.start();
7722
+ },
7723
+ onDrop: () => {
7724
+ setPreviewState("idle");
7725
+ preventUnhandled.stop();
7726
+ }
7727
+ })
7728
+ );
7729
+ }
7730
+ );
7731
+ return () => cleanup?.();
7732
+ }, [disabled, addFiles]);
7733
+ useEffect13(() => {
7734
+ if (inputRef.current && minCount) {
7735
+ if (files.length < minCount) {
7736
+ inputRef.current.setCustomValidity(`At least ${minCount} files are required.`);
7737
+ } else {
7738
+ inputRef.current.setCustomValidity("");
7739
+ }
7740
+ }
7741
+ }, [inputRef, files, minCount]);
7742
+ const handleFileChanged = useCallback19(
7743
+ (event) => {
7744
+ const files2 = Array.from(event.target.files || []);
7745
+ addFiles(files2);
7746
+ },
7747
+ [addFiles]
7748
+ );
7749
+ const handleDeleteFile = useCallback19(
7750
+ (deletedFile) => {
7751
+ if (deletedFile instanceof File) {
7752
+ setFiles((current) => {
7632
7753
  onChange?.({
7633
7754
  target: {
7634
7755
  name,
7635
- value: newFiles
7756
+ value: current.filter((file) => file !== deletedFile)
7636
7757
  }
7637
7758
  });
7638
- setFiles(newFiles);
7639
- setErrorText(void 0);
7640
- } catch (error2) {
7641
- const err = error2;
7642
- setErrorText(err.message);
7643
- }
7644
- },
7645
- [files, uploaded, maxCount, parsedAccepts, maxFileSize, maxFileTotalSize, name, onChange]
7646
- );
7647
- useEffect13(() => {
7648
- if (!dropZoneRef.current || disabled) {
7649
- return;
7650
- }
7651
- let cleanup;
7652
- Promise.all([esmFiles.combine, esmFiles.adapter, esmFiles.file, esmFiles.preventUnhandled]).then(
7653
- ([combineModule, adapterModule, fileModule, preventUnhandledModule]) => {
7654
- const { combine } = combineModule;
7655
- const { dropTargetForExternal, monitorForExternal } = adapterModule;
7656
- const { containsFiles, getFiles } = fileModule;
7657
- const { preventUnhandled } = preventUnhandledModule;
7658
- cleanup = combine(
7659
- dropTargetForExternal({
7660
- element: dropZoneRef.current,
7661
- canDrop: containsFiles,
7662
- onDragEnter: () => setPreviewState("over"),
7663
- onDragLeave: () => setPreviewState("potential"),
7664
- onDrop: async ({ source }) => {
7665
- const files2 = await getFiles({ source });
7666
- addFiles(files2);
7667
- }
7668
- }),
7669
- monitorForExternal({
7670
- canMonitor: containsFiles,
7671
- onDragStart: () => {
7672
- setPreviewState("potential");
7673
- preventUnhandled.start();
7674
- },
7675
- onDrop: () => {
7676
- setPreviewState("idle");
7677
- preventUnhandled.stop();
7678
- }
7679
- })
7680
- );
7681
- }
7682
- );
7683
- return () => cleanup?.();
7684
- }, [disabled, addFiles]);
7685
- useEffect13(() => {
7686
- if (inputRef.current && minCount) {
7687
- if (files.length < minCount) {
7688
- inputRef.current.setCustomValidity(`At least ${minCount} files are required.`);
7689
- } else {
7690
- inputRef.current.setCustomValidity("");
7691
- }
7759
+ return current.filter((file) => file !== deletedFile);
7760
+ });
7761
+ } else {
7762
+ setUploaded((uploaded2) => uploaded2.filter((file) => file.id !== deletedFile.id));
7763
+ onDelete?.(deletedFile);
7692
7764
  }
7693
- }, [inputRef, files, minCount]);
7694
- const handleFileChanged = useCallback18(
7695
- (event) => {
7696
- const files2 = Array.from(event.target.files || []);
7697
- addFiles(files2);
7698
- },
7699
- [addFiles]
7700
- );
7701
- const handleDeleteFile = useCallback18(
7702
- (deletedFile) => {
7703
- if (deletedFile instanceof File) {
7704
- setFiles((current) => {
7705
- onChange?.({
7706
- target: {
7707
- name,
7708
- value: current.filter((file) => file !== deletedFile)
7709
- }
7710
- });
7711
- return current.filter((file) => file !== deletedFile);
7712
- });
7713
- } else {
7714
- setUploaded((uploaded2) => uploaded2.filter((file) => file.id !== deletedFile.id));
7715
- onDelete?.(deletedFile);
7716
- }
7717
- setErrorText(void 0);
7718
- },
7719
- [name, onChange, onDelete]
7720
- );
7721
- const handleUploaderButtonClick = useCallback18(() => {
7722
- inputRef.current?.click();
7723
- }, []);
7724
- const uploader = /* @__PURE__ */ React48.createElement(
7725
- FileDropZone,
7765
+ setErrorText(void 0);
7766
+ },
7767
+ [name, onChange, onDelete]
7768
+ );
7769
+ const handleUploaderButtonClick = useCallback19(() => {
7770
+ inputRef.current?.click();
7771
+ }, []);
7772
+ const uploader = /* @__PURE__ */ React49.createElement(
7773
+ FileDropZone,
7774
+ {
7775
+ state: previewState,
7776
+ error: !!(error || errorText),
7777
+ disabled,
7778
+ ref: dropZoneRef,
7779
+ onClick: handleUploaderButtonClick
7780
+ },
7781
+ /* @__PURE__ */ React49.createElement(Stack_default, { alignItems: "center", gap: 1 }, /* @__PURE__ */ React49.createElement(UploaderIcon, { state: previewState, error: !!(error || errorText), disabled })),
7782
+ /* @__PURE__ */ React49.createElement(
7783
+ VisuallyHiddenInput,
7726
7784
  {
7727
- state: previewState,
7728
- error: !!(error || errorText),
7729
7785
  disabled,
7730
- ref: dropZoneRef,
7731
- onClick: handleUploaderButtonClick
7732
- },
7733
- /* @__PURE__ */ React48.createElement(Stack_default, { alignItems: "center", gap: 1 }, /* @__PURE__ */ React48.createElement(UploaderIcon, { state: previewState, error: !!(error || errorText), disabled })),
7734
- /* @__PURE__ */ React48.createElement(
7735
- VisuallyHiddenInput,
7736
- {
7737
- disabled,
7738
- required: !!minCount,
7739
- onInvalid: (e) => {
7740
- if (minCount && files.length < minCount) {
7741
- setErrorText(`Please choose ${minCount} ${minCount === 1 ? "file" : "files"} to upload.`);
7742
- }
7743
- },
7744
- slotProps: {
7745
- input: {
7746
- multiple: true,
7747
- accept: parsedAccepts.join(","),
7748
- type: "file",
7749
- ref: inputRef,
7750
- role: "button",
7751
- onChange: handleFileChanged
7752
- }
7786
+ required: !!minCount,
7787
+ onInvalid: (e) => {
7788
+ if (minCount && files.length < minCount) {
7789
+ setErrorText(`Please choose ${minCount} ${minCount === 1 ? "file" : "files"} to upload.`);
7790
+ }
7791
+ },
7792
+ slotProps: {
7793
+ input: {
7794
+ multiple: true,
7795
+ accept: parsedAccepts.join(","),
7796
+ type: "file",
7797
+ ref: inputRef,
7798
+ role: "button",
7799
+ onChange: handleFileChanged
7753
7800
  }
7754
7801
  }
7755
- )
7756
- );
7757
- return /* @__PURE__ */ React48.createElement(UploaderRoot, null, showDropZone && /* @__PURE__ */ React48.createElement(FormControl_default, { size, error: !!(error || errorText), disabled, required: !!minCount }, label && /* @__PURE__ */ React48.createElement(FormLabel_default, null, label), uploader, /* @__PURE__ */ React48.createElement(FormHelperText_default, null, /* @__PURE__ */ React48.createElement(Stack_default, null, errorText && /* @__PURE__ */ React48.createElement("div", null, errorText), /* @__PURE__ */ React48.createElement("div", null, helperText)))), [...uploaded, ...files].length > 0 && /* @__PURE__ */ React48.createElement(Preview, { files, uploaded, onDelete: handleDeleteFile }));
7758
- }
7759
- );
7802
+ }
7803
+ )
7804
+ );
7805
+ return /* @__PURE__ */ React49.createElement(UploaderRoot, null, showDropZone && /* @__PURE__ */ React49.createElement(FormControl_default, { size, error: !!(error || errorText), disabled, required: !!minCount }, label && /* @__PURE__ */ React49.createElement(FormLabel_default, null, label), uploader, /* @__PURE__ */ React49.createElement(FormHelperText_default, null, /* @__PURE__ */ React49.createElement(Stack_default, null, errorText && /* @__PURE__ */ React49.createElement("div", null, errorText), /* @__PURE__ */ React49.createElement("div", null, helperText)))), [...uploaded, ...files].length > 0 && /* @__PURE__ */ React49.createElement(Preview, { files, uploaded, onDelete: handleDeleteFile }));
7806
+ });
7760
7807
  Uploader.displayName = "Uploader";
7761
7808
  export {
7762
7809
  Accordion,
@@ -7817,7 +7864,8 @@ export {
7817
7864
  ListSubheader,
7818
7865
  Markdown,
7819
7866
  Menu,
7820
- MenuButton,
7867
+ MenuButton2 as MenuButton,
7868
+ MenuButton as MenuButtonTrigger,
7821
7869
  MenuItem,
7822
7870
  Modal,
7823
7871
  ModalClose,
@@ -7932,6 +7980,7 @@ export {
7932
7980
  tooltipClasses2 as tooltipClasses,
7933
7981
  typographyClasses,
7934
7982
  useColorScheme,
7983
+ useMenuButton,
7935
7984
  useTheme2 as useTheme,
7936
7985
  useThemeProps10 as useThemeProps
7937
7986
  };