@ceed/ads 1.29.0 → 1.30.0-next.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (64) hide show
  1. package/dist/components/CurrencyInput/CurrencyInput.d.ts +1 -1
  2. package/dist/components/CurrencyInput/hooks/use-currency-setting.d.ts +2 -2
  3. package/dist/components/DataTable/hooks.d.ts +2 -1
  4. package/dist/components/DataTable/utils.d.ts +1 -0
  5. package/dist/components/ProfileMenu/ProfileMenu.d.ts +1 -1
  6. package/dist/components/SearchBar/SearchBar.d.ts +21 -0
  7. package/dist/components/SearchBar/index.d.ts +3 -0
  8. package/dist/components/data-display/Badge.md +39 -71
  9. package/dist/components/data-display/DataTable.md +1 -1
  10. package/dist/components/data-display/InfoSign.md +98 -74
  11. package/dist/components/data-display/Typography.md +97 -363
  12. package/dist/components/feedback/Dialog.md +62 -76
  13. package/dist/components/feedback/Modal.md +44 -259
  14. package/dist/components/feedback/llms.txt +0 -2
  15. package/dist/components/index.d.ts +2 -0
  16. package/dist/components/inputs/Autocomplete.md +107 -356
  17. package/dist/components/inputs/ButtonGroup.md +106 -115
  18. package/dist/components/inputs/Calendar.md +459 -98
  19. package/dist/components/inputs/CurrencyInput.md +5 -183
  20. package/dist/components/inputs/DatePicker.md +431 -108
  21. package/dist/components/inputs/DateRangePicker.md +492 -131
  22. package/dist/components/inputs/FilterMenu.md +19 -169
  23. package/dist/components/inputs/FilterableCheckboxGroup.md +23 -123
  24. package/dist/components/inputs/IconButton.md +88 -137
  25. package/dist/components/inputs/Input.md +0 -5
  26. package/dist/components/inputs/MonthPicker.md +422 -95
  27. package/dist/components/inputs/MonthRangePicker.md +466 -89
  28. package/dist/components/inputs/PercentageInput.md +16 -185
  29. package/dist/components/inputs/RadioButton.md +35 -163
  30. package/dist/components/inputs/RadioTileGroup.md +61 -150
  31. package/dist/components/inputs/SearchBar.md +44 -0
  32. package/dist/components/inputs/Select.md +326 -222
  33. package/dist/components/inputs/Switch.md +376 -136
  34. package/dist/components/inputs/Textarea.md +10 -213
  35. package/dist/components/inputs/Uploader/Uploader.md +66 -145
  36. package/dist/components/inputs/llms.txt +1 -3
  37. package/dist/components/navigation/Breadcrumbs.md +322 -80
  38. package/dist/components/navigation/Dropdown.md +221 -92
  39. package/dist/components/navigation/IconMenuButton.md +502 -40
  40. package/dist/components/navigation/InsetDrawer.md +738 -68
  41. package/dist/components/navigation/Link.md +298 -39
  42. package/dist/components/navigation/Menu.md +285 -92
  43. package/dist/components/navigation/MenuButton.md +448 -55
  44. package/dist/components/navigation/Pagination.md +338 -47
  45. package/dist/components/navigation/ProfileMenu.md +268 -45
  46. package/dist/components/navigation/Stepper.md +28 -160
  47. package/dist/components/navigation/Tabs.md +316 -57
  48. package/dist/components/surfaces/Sheet.md +334 -151
  49. package/dist/index.browser.js +15 -13
  50. package/dist/index.browser.js.map +4 -4
  51. package/dist/index.cjs +313 -291
  52. package/dist/index.d.ts +1 -1
  53. package/dist/index.js +450 -372
  54. package/dist/llms.txt +1 -8
  55. package/framer/index.js +1 -1
  56. package/package.json +16 -15
  57. package/dist/chunks/rehype-accent-FZRUD7VI.js +0 -39
  58. package/dist/components/feedback/CircularProgress.md +0 -257
  59. package/dist/components/feedback/Skeleton.md +0 -280
  60. package/dist/components/inputs/FormControl.md +0 -361
  61. package/dist/components/inputs/RadioList.md +0 -241
  62. package/dist/components/inputs/Slider.md +0 -334
  63. package/dist/guides/ThemeProvider.md +0 -116
  64. package/dist/guides/llms.txt +0 -9
package/dist/index.cjs CHANGED
@@ -160,6 +160,7 @@ __export(index_exports, {
160
160
  RadioGroup: () => RadioGroup,
161
161
  RadioList: () => RadioList,
162
162
  RadioTileGroup: () => RadioTileGroup,
163
+ SearchBar: () => SearchBar,
163
164
  Select: () => Select,
164
165
  Sheet: () => Sheet,
165
166
  Skeleton: () => import_joy71.Skeleton,
@@ -841,24 +842,11 @@ Button.displayName = "Button";
841
842
  var Button_default = Button;
842
843
 
843
844
  // src/components/Calendar/Calendar.tsx
844
- var import_react14 = __toESM(require("react"));
845
- var import_joy19 = require("@mui/joy");
845
+ var import_react13 = __toESM(require("react"));
846
+ var import_joy18 = require("@mui/joy");
846
847
  var import_ChevronLeft = __toESM(require("@mui/icons-material/ChevronLeft"));
847
848
  var import_ChevronRight = __toESM(require("@mui/icons-material/ChevronRight"));
848
- var import_framer_motion13 = require("framer-motion");
849
-
850
- // src/components/Tooltip/Tooltip.tsx
851
- var import_react11 = __toESM(require("react"));
852
- var import_joy17 = require("@mui/joy");
853
849
  var import_framer_motion12 = require("framer-motion");
854
- var MotionTooltip = (0, import_framer_motion12.motion)(import_joy17.Tooltip);
855
- var Tooltip = (props) => {
856
- return /* @__PURE__ */ import_react11.default.createElement(MotionTooltip, { ...props });
857
- };
858
- Tooltip.displayName = "Tooltip";
859
-
860
- // src/components/Tooltip/index.ts
861
- var Tooltip_default = Tooltip;
862
850
 
863
851
  // src/components/Calendar/utils/index.ts
864
852
  var getCalendarDates = (date) => {
@@ -932,43 +920,43 @@ var isSameMonth = (date1, date2) => {
932
920
  };
933
921
 
934
922
  // src/components/Calendar/hooks/use-calendar-props.ts
935
- var import_react12 = require("react");
936
- var import_joy18 = require("@mui/joy");
923
+ var import_react11 = require("react");
924
+ var import_joy17 = require("@mui/joy");
937
925
  var resolveView = (view, views) => {
938
926
  return views.includes(view) ? view : views[0];
939
927
  };
940
928
  var useCalendarProps = (inProps) => {
941
- const [uncontrolledView, setUncontrolledView] = (0, import_react12.useState)(
929
+ const [uncontrolledView, setUncontrolledView] = (0, import_react11.useState)(
942
930
  () => resolveView(inProps.view || "day", inProps.views || ["day", "month"])
943
931
  );
944
- const [uncontrolledValue, setUncontrolledValue] = (0, import_react12.useState)(
932
+ const [uncontrolledValue, setUncontrolledValue] = (0, import_react11.useState)(
945
933
  inProps.defaultValue
946
934
  );
947
- const [viewMonth, setViewMonth] = (0, import_react12.useState)(() => {
935
+ const [viewMonth, setViewMonth] = (0, import_react11.useState)(() => {
948
936
  const today = /* @__PURE__ */ new Date();
949
937
  today.setDate(1);
950
938
  today.setHours(0, 0, 0, 0);
951
939
  return inProps.value?.[0] || inProps.defaultValue?.[0] || today;
952
940
  });
953
- const [[page, direction], setPage] = (0, import_react12.useState)([0, 0]);
941
+ const [[page, direction], setPage] = (0, import_react11.useState)([0, 0]);
954
942
  const resolvedView = inProps.view ?? uncontrolledView;
955
- const resolvedMinDate = (0, import_react12.useMemo)(() => {
943
+ const resolvedMinDate = (0, import_react11.useMemo)(() => {
956
944
  const minDate = inProps.minDate || /* @__PURE__ */ new Date(0);
957
945
  minDate.setHours(0, 0, 0, 0);
958
946
  return minDate;
959
947
  }, [inProps.minDate]);
960
- const resolvedMaxDate = (0, import_react12.useMemo)(() => {
948
+ const resolvedMaxDate = (0, import_react11.useMemo)(() => {
961
949
  const maxDate = inProps.maxDate || /* @__PURE__ */ new Date(864e13);
962
950
  maxDate.setHours(0, 0, 0, 0);
963
951
  return maxDate;
964
952
  }, [inProps.maxDate]);
965
- const paginate = (0, import_react12.useCallback)(
953
+ const paginate = (0, import_react11.useCallback)(
966
954
  (newDirection) => {
967
955
  setPage([page + newDirection, newDirection]);
968
956
  },
969
957
  [page]
970
958
  );
971
- const handleViewMonthChange = (0, import_react12.useCallback)(
959
+ const handleViewMonthChange = (0, import_react11.useCallback)(
972
960
  (newMonth) => {
973
961
  setViewMonth(newMonth);
974
962
  if (resolvedView === "month") {
@@ -982,7 +970,7 @@ var useCalendarProps = (inProps) => {
982
970
  },
983
971
  [resolvedView, inProps, viewMonth, paginate]
984
972
  );
985
- const props = (0, import_joy18.useThemeProps)({
973
+ const props = (0, import_joy17.useThemeProps)({
986
974
  props: {
987
975
  locale: "default",
988
976
  views: ["day", "month"],
@@ -1016,18 +1004,18 @@ var useCalendarProps = (inProps) => {
1016
1004
  },
1017
1005
  name: "Calendar"
1018
1006
  });
1019
- const ownerState = (0, import_react12.useMemo)(() => ({ ...props, viewMonth, direction }), [props, viewMonth, direction]);
1007
+ const ownerState = (0, import_react11.useMemo)(() => ({ ...props, viewMonth, direction }), [props, viewMonth, direction]);
1020
1008
  return [props, ownerState];
1021
1009
  };
1022
1010
 
1023
1011
  // src/components/Calendar/hooks/use-calendar.ts
1024
- var import_react13 = require("react");
1012
+ var import_react12 = require("react");
1025
1013
  var useCalendar = (ownerState) => {
1026
- const [hoverDay, setHoverDay] = (0, import_react13.useState)(null);
1027
- const [hoverMonth, setHoverMonth] = (0, import_react13.useState)(null);
1014
+ const [hoverDay, setHoverDay] = (0, import_react12.useState)(null);
1015
+ const [hoverMonth, setHoverMonth] = (0, import_react12.useState)(null);
1028
1016
  return {
1029
1017
  calendarTitle: ownerState.view === "month" ? getYearName(ownerState.viewMonth, ownerState.locale || "default") : getMonthName(ownerState.viewMonth, ownerState.locale || "default"),
1030
- onPrev: (0, import_react13.useCallback)(() => {
1018
+ onPrev: (0, import_react12.useCallback)(() => {
1031
1019
  if (ownerState.view === "day") {
1032
1020
  const currentDate = new Date(ownerState.viewMonth || /* @__PURE__ */ new Date());
1033
1021
  const currentYear = currentDate.getFullYear();
@@ -1044,7 +1032,7 @@ var useCalendar = (ownerState) => {
1044
1032
  ownerState.onMonthChange?.(prevYear);
1045
1033
  }
1046
1034
  }, [ownerState.onMonthChange, ownerState.viewMonth, ownerState.view]),
1047
- onNext: (0, import_react13.useCallback)(() => {
1035
+ onNext: (0, import_react12.useCallback)(() => {
1048
1036
  if (ownerState.view === "day") {
1049
1037
  const currentDate = new Date(ownerState.viewMonth || /* @__PURE__ */ new Date());
1050
1038
  const currentYear = currentDate.getFullYear();
@@ -1061,7 +1049,7 @@ var useCalendar = (ownerState) => {
1061
1049
  ownerState.onMonthChange?.(nextYear);
1062
1050
  }
1063
1051
  }, [ownerState.onMonthChange, ownerState.viewMonth, ownerState.view]),
1064
- getDayCellProps: (0, import_react13.useCallback)(
1052
+ getDayCellProps: (0, import_react12.useCallback)(
1065
1053
  (day) => {
1066
1054
  const thisDay = new Date(ownerState.viewMonth || /* @__PURE__ */ new Date());
1067
1055
  thisDay.setHours(0, 0, 0, 0);
@@ -1076,7 +1064,7 @@ var useCalendar = (ownerState) => {
1076
1064
  },
1077
1065
  [ownerState.rangeSelection, ownerState.value, ownerState.viewMonth, hoverDay]
1078
1066
  ),
1079
- getMonthCellProps: (0, import_react13.useCallback)(
1067
+ getMonthCellProps: (0, import_react12.useCallback)(
1080
1068
  (monthIndex) => {
1081
1069
  const thisMonth = new Date(ownerState.viewMonth || /* @__PURE__ */ new Date());
1082
1070
  thisMonth.setDate(1);
@@ -1093,7 +1081,7 @@ var useCalendar = (ownerState) => {
1093
1081
  },
1094
1082
  [ownerState.rangeSelection, ownerState.value, ownerState.viewMonth, hoverMonth]
1095
1083
  ),
1096
- getPickerDayProps: (0, import_react13.useCallback)(
1084
+ getPickerDayProps: (0, import_react12.useCallback)(
1097
1085
  (day) => {
1098
1086
  const thisDay = new Date(ownerState.viewMonth || /* @__PURE__ */ new Date());
1099
1087
  thisDay.setHours(0, 0, 0, 0);
@@ -1147,7 +1135,7 @@ var useCalendar = (ownerState) => {
1147
1135
  hoverDay
1148
1136
  ]
1149
1137
  ),
1150
- getPickerMonthProps: (0, import_react13.useCallback)(
1138
+ getPickerMonthProps: (0, import_react12.useCallback)(
1151
1139
  (monthIndex) => {
1152
1140
  const thisMonth = new Date(ownerState.viewMonth || /* @__PURE__ */ new Date());
1153
1141
  thisMonth.setDate(1);
@@ -1217,19 +1205,13 @@ var useCalendar = (ownerState) => {
1217
1205
  };
1218
1206
 
1219
1207
  // src/components/Calendar/Calendar.tsx
1220
- var MONTH_VIEW_HINT_MESSAGE = "Click the month title to view all months.";
1221
- var MONTH_NAV_CLICK_WINDOW_MS = 1200;
1222
- var MONTH_NAV_CLICK_THRESHOLD = 3;
1223
- var MONTH_VIEW_HINT_DURATION_MS = 5e3;
1224
- var MONTH_VIEW_HINT_COOLDOWN_MS = 3e4;
1225
- var lastMonthViewAssistHintShownAt = 0;
1226
- var CalendarRoot = (0, import_joy19.styled)("div", {
1208
+ var CalendarRoot = (0, import_joy18.styled)("div", {
1227
1209
  name: "Calendar",
1228
1210
  slot: "root"
1229
1211
  })({
1230
1212
  maxWidth: "264px"
1231
1213
  });
1232
- var CalendarHeader = (0, import_joy19.styled)("div", {
1214
+ var CalendarHeader = (0, import_joy18.styled)("div", {
1233
1215
  name: "Calendar",
1234
1216
  slot: "calendarHeader"
1235
1217
  })(({ theme }) => ({
@@ -1238,7 +1220,7 @@ var CalendarHeader = (0, import_joy19.styled)("div", {
1238
1220
  alignItems: "center",
1239
1221
  padding: theme.spacing(2)
1240
1222
  }));
1241
- var CalendarViewContainer = (0, import_joy19.styled)("div", {
1223
+ var CalendarViewContainer = (0, import_joy18.styled)("div", {
1242
1224
  name: "Calendar",
1243
1225
  slot: "viewContainer",
1244
1226
  shouldForwardProp: (prop) => prop !== "calendarType"
@@ -1249,7 +1231,7 @@ var CalendarViewContainer = (0, import_joy19.styled)("div", {
1249
1231
  overflow: "hidden",
1250
1232
  minHeight: calendarType === "datePicker" ? "250px" : "unset"
1251
1233
  }));
1252
- var CalendarViewTable = (0, import_joy19.styled)(import_framer_motion13.motion.table, {
1234
+ var CalendarViewTable = (0, import_joy18.styled)(import_framer_motion12.motion.table, {
1253
1235
  name: "Calendar",
1254
1236
  slot: "viewTable"
1255
1237
  })(({ theme }) => ({
@@ -1262,15 +1244,15 @@ var CalendarViewTable = (0, import_joy19.styled)(import_framer_motion13.motion.t
1262
1244
  paddingBottom: theme.spacing(2)
1263
1245
  }
1264
1246
  }));
1265
- var CalendarWeekHeaderContainer = (0, import_joy19.styled)("thead", {
1247
+ var CalendarWeekHeaderContainer = (0, import_joy18.styled)("thead", {
1266
1248
  name: "Calendar",
1267
1249
  slot: "weekHeaderContainer"
1268
1250
  })({});
1269
- var CalendarDayPickerContainer = (0, import_joy19.styled)("tbody", {
1251
+ var CalendarDayPickerContainer = (0, import_joy18.styled)("tbody", {
1270
1252
  name: "Calendar",
1271
1253
  slot: "dayPickerContainer"
1272
1254
  })({});
1273
- var CalendarSwitchViewButton = (0, import_joy19.styled)(Button_default, {
1255
+ var CalendarSwitchViewButton = (0, import_joy18.styled)(Button_default, {
1274
1256
  name: "Calendar",
1275
1257
  slot: "switchViewButton"
1276
1258
  })(({ ownerState }) => [
@@ -1278,7 +1260,7 @@ var CalendarSwitchViewButton = (0, import_joy19.styled)(Button_default, {
1278
1260
  pointerEvents: "none"
1279
1261
  }
1280
1262
  ]);
1281
- var CalendarDayCell = (0, import_joy19.styled)("td", {
1263
+ var CalendarDayCell = (0, import_joy18.styled)("td", {
1282
1264
  name: "Calendar",
1283
1265
  slot: "dayCell"
1284
1266
  })(({ theme }) => ({
@@ -1300,7 +1282,7 @@ var CalendarDayCell = (0, import_joy19.styled)("td", {
1300
1282
  }
1301
1283
  }
1302
1284
  }));
1303
- var CalendarMonthCell = (0, import_joy19.styled)("td", {
1285
+ var CalendarMonthCell = (0, import_joy18.styled)("td", {
1304
1286
  name: "Calendar",
1305
1287
  slot: "monthCell"
1306
1288
  })(({ theme }) => ({
@@ -1322,7 +1304,7 @@ var CalendarMonthCell = (0, import_joy19.styled)("td", {
1322
1304
  }
1323
1305
  }
1324
1306
  }));
1325
- var CalendarMonth = (0, import_joy19.styled)(Button_default, {
1307
+ var CalendarMonth = (0, import_joy18.styled)(Button_default, {
1326
1308
  name: "Calendar",
1327
1309
  slot: "month",
1328
1310
  shouldForwardProp: (prop) => prop !== "isSelected"
@@ -1357,7 +1339,7 @@ var CalendarMonth = (0, import_joy19.styled)(Button_default, {
1357
1339
  backgroundColor: theme.palette.neutral.solidDisabledBg
1358
1340
  }
1359
1341
  ]);
1360
- var CalendarDay = (0, import_joy19.styled)(Button_default, {
1342
+ var CalendarDay = (0, import_joy18.styled)(Button_default, {
1361
1343
  name: "Calendar",
1362
1344
  slot: "day",
1363
1345
  shouldForwardProp: (prop) => !["isToday", "isSelected"].includes(prop)
@@ -1427,9 +1409,9 @@ var swipePower = (offset, velocity) => {
1427
1409
  var PickerDays = (props) => {
1428
1410
  const { ownerState } = props;
1429
1411
  const { getPickerDayProps, getDayCellProps } = useCalendar(ownerState);
1430
- const calendarDates = (0, import_react14.useMemo)(() => getCalendarDates(ownerState.viewMonth), [ownerState.viewMonth]);
1431
- const weekdayNames = (0, import_react14.useMemo)(() => getWeekdayNames(ownerState.locale || "default"), [ownerState.locale]);
1432
- return /* @__PURE__ */ import_react14.default.createElement(CalendarViewContainer, { calendarType: "datePicker" }, /* @__PURE__ */ import_react14.default.createElement(import_framer_motion13.AnimatePresence, { initial: false, custom: ownerState.direction }, /* @__PURE__ */ import_react14.default.createElement(
1412
+ const calendarDates = (0, import_react13.useMemo)(() => getCalendarDates(ownerState.viewMonth), [ownerState.viewMonth]);
1413
+ const weekdayNames = (0, import_react13.useMemo)(() => getWeekdayNames(ownerState.locale || "default"), [ownerState.locale]);
1414
+ return /* @__PURE__ */ import_react13.default.createElement(CalendarViewContainer, { calendarType: "datePicker" }, /* @__PURE__ */ import_react13.default.createElement(import_framer_motion12.AnimatePresence, { initial: false, custom: ownerState.direction }, /* @__PURE__ */ import_react13.default.createElement(
1433
1415
  CalendarViewTable,
1434
1416
  {
1435
1417
  key: `${ownerState.viewMonth.toString()}_${ownerState.direction}`,
@@ -1458,10 +1440,10 @@ var PickerDays = (props) => {
1458
1440
  }
1459
1441
  }
1460
1442
  },
1461
- /* @__PURE__ */ import_react14.default.createElement(CalendarWeekHeaderContainer, null, /* @__PURE__ */ import_react14.default.createElement("tr", null, weekdayNames.map((name, i) => /* @__PURE__ */ import_react14.default.createElement(import_react14.Fragment, { key: `${ownerState.viewMonth}_${name}_${i}` }, /* @__PURE__ */ import_react14.default.createElement("th", null, /* @__PURE__ */ import_react14.default.createElement(Typography_default, { level: "body-xs", textAlign: "center" }, name)), i < 6 && /* @__PURE__ */ import_react14.default.createElement("th", { style: { width: 4 }, "aria-hidden": "true", "aria-description": "cell-gap" }))))),
1462
- /* @__PURE__ */ import_react14.default.createElement(CalendarDayPickerContainer, null, calendarDates.map((weekDates, rowIndex) => /* @__PURE__ */ import_react14.default.createElement(import_react14.Fragment, { key: `${ownerState.viewMonth}_${rowIndex}` }, /* @__PURE__ */ import_react14.default.createElement("tr", null, weekDates.map(
1463
- (date, i) => date ? /* @__PURE__ */ import_react14.default.createElement(import_react14.Fragment, { key: `${ownerState.viewMonth}_${date}_${i}` }, /* @__PURE__ */ import_react14.default.createElement(CalendarDayCell, { ...getDayCellProps(date) }, /* @__PURE__ */ import_react14.default.createElement(CalendarDay, { size: "sm", variant: "plain", color: "neutral", ...getPickerDayProps(date) }, date)), i < 6 && /* @__PURE__ */ import_react14.default.createElement("td", { "aria-hidden": "true", "aria-description": "cell-gap" })) : /* @__PURE__ */ import_react14.default.createElement(import_react14.Fragment, { key: `${ownerState.viewMonth}_${i}` }, /* @__PURE__ */ import_react14.default.createElement("td", null), i < 6 && /* @__PURE__ */ import_react14.default.createElement("td", { "aria-hidden": "true", "aria-description": "cell-gap" }))
1464
- )), rowIndex < calendarDates.length - 1 && /* @__PURE__ */ import_react14.default.createElement("tr", { "aria-hidden": "true", "aria-description": "row-gap" }, /* @__PURE__ */ import_react14.default.createElement("td", { colSpan: 13, style: { height: 4 } })))))
1443
+ /* @__PURE__ */ import_react13.default.createElement(CalendarWeekHeaderContainer, null, /* @__PURE__ */ import_react13.default.createElement("tr", null, weekdayNames.map((name, i) => /* @__PURE__ */ import_react13.default.createElement(import_react13.Fragment, { key: `${ownerState.viewMonth}_${name}_${i}` }, /* @__PURE__ */ import_react13.default.createElement("th", null, /* @__PURE__ */ import_react13.default.createElement(Typography_default, { level: "body-xs", textAlign: "center" }, name)), i < 6 && /* @__PURE__ */ import_react13.default.createElement("th", { style: { width: 4 }, "aria-hidden": "true", "aria-description": "cell-gap" }))))),
1444
+ /* @__PURE__ */ import_react13.default.createElement(CalendarDayPickerContainer, null, calendarDates.map((weekDates, rowIndex) => /* @__PURE__ */ import_react13.default.createElement(import_react13.Fragment, { key: `${ownerState.viewMonth}_${rowIndex}` }, /* @__PURE__ */ import_react13.default.createElement("tr", null, weekDates.map(
1445
+ (date, i) => date ? /* @__PURE__ */ import_react13.default.createElement(import_react13.Fragment, { key: `${ownerState.viewMonth}_${date}_${i}` }, /* @__PURE__ */ import_react13.default.createElement(CalendarDayCell, { ...getDayCellProps(date) }, /* @__PURE__ */ import_react13.default.createElement(CalendarDay, { size: "sm", variant: "plain", color: "neutral", ...getPickerDayProps(date) }, date)), i < 6 && /* @__PURE__ */ import_react13.default.createElement("td", { "aria-hidden": "true", "aria-description": "cell-gap" })) : /* @__PURE__ */ import_react13.default.createElement(import_react13.Fragment, { key: `${ownerState.viewMonth}_${i}` }, /* @__PURE__ */ import_react13.default.createElement("td", null), i < 6 && /* @__PURE__ */ import_react13.default.createElement("td", { "aria-hidden": "true", "aria-description": "cell-gap" }))
1446
+ )), rowIndex < calendarDates.length - 1 && /* @__PURE__ */ import_react13.default.createElement("tr", { "aria-hidden": "true", "aria-description": "row-gap" }, /* @__PURE__ */ import_react13.default.createElement("td", { colSpan: 13, style: { height: 4 } })))))
1465
1447
  )));
1466
1448
  };
1467
1449
  var PickerMonths = (props) => {
@@ -1478,7 +1460,7 @@ var PickerMonths = (props) => {
1478
1460
  [[]]
1479
1461
  );
1480
1462
  const isMonthPicker = !ownerState.views?.find((view) => view === "day");
1481
- return /* @__PURE__ */ import_react14.default.createElement(CalendarViewContainer, { calendarType: isMonthPicker ? "monthPicker" : "datePicker" }, /* @__PURE__ */ import_react14.default.createElement(import_framer_motion13.AnimatePresence, { initial: false, custom: ownerState.direction }, /* @__PURE__ */ import_react14.default.createElement(
1463
+ return /* @__PURE__ */ import_react13.default.createElement(CalendarViewContainer, { calendarType: isMonthPicker ? "monthPicker" : "datePicker" }, /* @__PURE__ */ import_react13.default.createElement(import_framer_motion12.AnimatePresence, { initial: false, custom: ownerState.direction }, /* @__PURE__ */ import_react13.default.createElement(
1482
1464
  CalendarViewTable,
1483
1465
  {
1484
1466
  key: `${ownerState.viewMonth.getFullYear()}_${ownerState.direction}`,
@@ -1507,10 +1489,10 @@ var PickerMonths = (props) => {
1507
1489
  }
1508
1490
  }
1509
1491
  },
1510
- /* @__PURE__ */ import_react14.default.createElement("tbody", null, chunkedMonths.map((months, i) => /* @__PURE__ */ import_react14.default.createElement(import_react14.Fragment, { key: months.join("_") }, /* @__PURE__ */ import_react14.default.createElement("tr", null, months.map((monthIndex, j) => /* @__PURE__ */ import_react14.default.createElement(import_react14.Fragment, { key: monthIndex }, /* @__PURE__ */ import_react14.default.createElement(CalendarMonthCell, { ...getMonthCellProps(monthIndex) }, /* @__PURE__ */ import_react14.default.createElement(CalendarMonth, { size: "sm", variant: "plain", color: "neutral", ...getPickerMonthProps(monthIndex) }, getMonthNameFromIndex(monthIndex, ownerState.locale))), j < 3 && /* @__PURE__ */ import_react14.default.createElement("td", { style: { width: 4 }, "aria-hidden": "true", "aria-description": "cell-gap" })))), i < chunkedMonths.length - 1 && /* @__PURE__ */ import_react14.default.createElement("tr", { "aria-hidden": "true", "aria-description": "row-gap" }, /* @__PURE__ */ import_react14.default.createElement("td", { colSpan: 7, style: { height: 4 } })))))
1492
+ /* @__PURE__ */ import_react13.default.createElement("tbody", null, chunkedMonths.map((months, i) => /* @__PURE__ */ import_react13.default.createElement(import_react13.Fragment, { key: months.join("_") }, /* @__PURE__ */ import_react13.default.createElement("tr", null, months.map((monthIndex, j) => /* @__PURE__ */ import_react13.default.createElement(import_react13.Fragment, { key: monthIndex }, /* @__PURE__ */ import_react13.default.createElement(CalendarMonthCell, { ...getMonthCellProps(monthIndex) }, /* @__PURE__ */ import_react13.default.createElement(CalendarMonth, { size: "sm", variant: "plain", color: "neutral", ...getPickerMonthProps(monthIndex) }, getMonthNameFromIndex(monthIndex, ownerState.locale))), j < 3 && /* @__PURE__ */ import_react13.default.createElement("td", { style: { width: 4 }, "aria-hidden": "true", "aria-description": "cell-gap" })))), i < chunkedMonths.length - 1 && /* @__PURE__ */ import_react13.default.createElement("tr", { "aria-hidden": "true", "aria-description": "row-gap" }, /* @__PURE__ */ import_react13.default.createElement("td", { colSpan: 7, style: { height: 4 } })))))
1511
1493
  )));
1512
1494
  };
1513
- var Calendar = (0, import_react14.forwardRef)((inProps, ref) => {
1495
+ var Calendar = (0, import_react13.forwardRef)((inProps, ref) => {
1514
1496
  const [props, ownerState] = useCalendarProps(inProps);
1515
1497
  const {
1516
1498
  value,
@@ -1529,96 +1511,17 @@ var Calendar = (0, import_react14.forwardRef)((inProps, ref) => {
1529
1511
  ...others
1530
1512
  } = props;
1531
1513
  const { calendarTitle, onPrev, onNext } = useCalendar(ownerState);
1532
- const [isMonthViewAssistHintOpen, setIsMonthViewAssistHintOpen] = (0, import_react14.useState)(false);
1533
- const monthNavClickTimestampsRef = (0, import_react14.useRef)([]);
1534
- const monthViewAssistHintShownInSessionRef = (0, import_react14.useRef)(false);
1535
- const monthViewAssistHintTimeoutRef = (0, import_react14.useRef)(null);
1536
- const hasEndDate = Boolean(value?.[1]);
1537
- const isRangeHintEligible = Boolean(rangeSelection && !hasEndDate);
1538
- const isHintEligible = Boolean(view === "day" && (!rangeSelection || isRangeHintEligible));
1539
- const monthViewHintMessage = MONTH_VIEW_HINT_MESSAGE;
1540
- (0, import_react14.useEffect)(() => {
1541
- if (!isHintEligible) {
1542
- monthNavClickTimestampsRef.current = [];
1543
- setIsMonthViewAssistHintOpen(false);
1544
- }
1545
- }, [isHintEligible]);
1546
- (0, import_react14.useEffect)(() => {
1547
- return () => {
1548
- if (monthViewAssistHintTimeoutRef.current) {
1549
- clearTimeout(monthViewAssistHintTimeoutRef.current);
1550
- }
1551
- };
1552
- }, []);
1553
- const closeMonthViewAssistHint = (0, import_react14.useCallback)(() => {
1554
- if (monthViewAssistHintTimeoutRef.current) {
1555
- clearTimeout(monthViewAssistHintTimeoutRef.current);
1556
- monthViewAssistHintTimeoutRef.current = null;
1557
- }
1558
- setIsMonthViewAssistHintOpen(false);
1559
- }, []);
1560
- const showMonthViewAssistHint = (0, import_react14.useCallback)(() => {
1561
- const now = Date.now();
1562
- if (monthViewAssistHintShownInSessionRef.current) return;
1563
- if (now - lastMonthViewAssistHintShownAt < MONTH_VIEW_HINT_COOLDOWN_MS) return;
1564
- monthViewAssistHintShownInSessionRef.current = true;
1565
- lastMonthViewAssistHintShownAt = now;
1566
- setIsMonthViewAssistHintOpen(true);
1567
- if (monthViewAssistHintTimeoutRef.current) {
1568
- clearTimeout(monthViewAssistHintTimeoutRef.current);
1569
- }
1570
- monthViewAssistHintTimeoutRef.current = setTimeout(() => {
1571
- setIsMonthViewAssistHintOpen(false);
1572
- monthViewAssistHintTimeoutRef.current = null;
1573
- }, MONTH_VIEW_HINT_DURATION_MS);
1574
- }, []);
1575
- const trackFastMonthNavigation = (0, import_react14.useCallback)(() => {
1576
- if (!isHintEligible) return;
1577
- const now = Date.now();
1578
- monthNavClickTimestampsRef.current = [
1579
- ...monthNavClickTimestampsRef.current.filter((timestamp) => now - timestamp <= MONTH_NAV_CLICK_WINDOW_MS),
1580
- now
1581
- ];
1582
- if (monthNavClickTimestampsRef.current.length >= MONTH_NAV_CLICK_THRESHOLD) {
1583
- showMonthViewAssistHint();
1584
- }
1585
- }, [isHintEligible, showMonthViewAssistHint]);
1586
- const handlePrevClick = (0, import_react14.useCallback)(() => {
1587
- onPrev();
1588
- trackFastMonthNavigation();
1589
- }, [onPrev, trackFastMonthNavigation]);
1590
- const handleNextClick = (0, import_react14.useCallback)(() => {
1591
- onNext();
1592
- trackFastMonthNavigation();
1593
- }, [onNext, trackFastMonthNavigation]);
1594
- const handleSwitchViewClick = (0, import_react14.useCallback)(() => {
1595
- closeMonthViewAssistHint();
1596
- onViewChange?.();
1597
- }, [closeMonthViewAssistHint, onViewChange]);
1598
- return /* @__PURE__ */ import_react14.default.createElement(CalendarRoot, { ref, ...others }, /* @__PURE__ */ import_react14.default.createElement(CalendarHeader, null, /* @__PURE__ */ import_react14.default.createElement(IconButton_default, { size: "sm", onClick: handlePrevClick, "aria-label": `Previous ${view === "day" ? "Month" : "Year"}` }, /* @__PURE__ */ import_react14.default.createElement(import_ChevronLeft.default, null)), /* @__PURE__ */ import_react14.default.createElement(
1599
- Tooltip_default,
1514
+ return /* @__PURE__ */ import_react13.default.createElement(CalendarRoot, { ref, ...others }, /* @__PURE__ */ import_react13.default.createElement(CalendarHeader, null, /* @__PURE__ */ import_react13.default.createElement(IconButton_default, { size: "sm", onClick: onPrev, "aria-label": `Previous ${view === "day" ? "Month" : "Year"}` }, /* @__PURE__ */ import_react13.default.createElement(import_ChevronLeft.default, null)), /* @__PURE__ */ import_react13.default.createElement(
1515
+ CalendarSwitchViewButton,
1600
1516
  {
1601
- title: monthViewHintMessage,
1602
- arrow: true,
1603
- open: isMonthViewAssistHintOpen,
1604
- placement: "bottom",
1605
- disableFocusListener: true,
1606
- disableHoverListener: true,
1607
- disableTouchListener: true,
1608
- variant: "solid"
1517
+ ownerState,
1518
+ variant: "plain",
1519
+ color: "neutral",
1520
+ onClick: onViewChange,
1521
+ "aria-label": "Switch Calendar View"
1609
1522
  },
1610
- /* @__PURE__ */ import_react14.default.createElement(
1611
- CalendarSwitchViewButton,
1612
- {
1613
- ownerState,
1614
- variant: "plain",
1615
- color: "neutral",
1616
- onClick: handleSwitchViewClick,
1617
- "aria-label": "Switch Calendar View"
1618
- },
1619
- calendarTitle
1620
- )
1621
- ), /* @__PURE__ */ import_react14.default.createElement(IconButton_default, { size: "sm", onClick: handleNextClick, "aria-label": `Next ${view === "day" ? "Month" : "Year"}` }, /* @__PURE__ */ import_react14.default.createElement(import_ChevronRight.default, null))), view === "day" && /* @__PURE__ */ import_react14.default.createElement(PickerDays, { ownerState }), view === "month" && /* @__PURE__ */ import_react14.default.createElement(PickerMonths, { ownerState }));
1523
+ calendarTitle
1524
+ ), /* @__PURE__ */ import_react13.default.createElement(IconButton_default, { size: "sm", onClick: onNext, "aria-label": `Next ${view === "day" ? "Month" : "Year"}` }, /* @__PURE__ */ import_react13.default.createElement(import_ChevronRight.default, null))), view === "day" && /* @__PURE__ */ import_react13.default.createElement(PickerDays, { ownerState }), view === "month" && /* @__PURE__ */ import_react13.default.createElement(PickerMonths, { ownerState }));
1622
1525
  });
1623
1526
  Calendar.displayName = "Calendar";
1624
1527
 
@@ -1626,31 +1529,31 @@ Calendar.displayName = "Calendar";
1626
1529
  var Calendar_default = Calendar;
1627
1530
 
1628
1531
  // src/components/Card/Card.tsx
1629
- var import_joy20 = require("@mui/joy");
1630
- var import_framer_motion14 = require("framer-motion");
1631
- var MotionCard = (0, import_framer_motion14.motion)(import_joy20.Card);
1532
+ var import_joy19 = require("@mui/joy");
1533
+ var import_framer_motion13 = require("framer-motion");
1534
+ var MotionCard = (0, import_framer_motion13.motion)(import_joy19.Card);
1632
1535
  var Card = MotionCard;
1633
1536
  Card.displayName = "Card";
1634
- var MotionCardContent = (0, import_framer_motion14.motion)(import_joy20.CardContent);
1537
+ var MotionCardContent = (0, import_framer_motion13.motion)(import_joy19.CardContent);
1635
1538
  var CardContent = MotionCardContent;
1636
1539
  CardContent.displayName = "CardContent";
1637
- var MotionCardCover = (0, import_framer_motion14.motion)(import_joy20.CardCover);
1540
+ var MotionCardCover = (0, import_framer_motion13.motion)(import_joy19.CardCover);
1638
1541
  var CardCover = MotionCardCover;
1639
1542
  CardCover.displayName = "CardCover";
1640
- var MotionCardActions = (0, import_framer_motion14.motion)(import_joy20.CardActions);
1543
+ var MotionCardActions = (0, import_framer_motion13.motion)(import_joy19.CardActions);
1641
1544
  var CardActions = MotionCardActions;
1642
1545
  CardActions.displayName = "CardActions";
1643
- var MotionCardOverflow = (0, import_framer_motion14.motion)(import_joy20.CardOverflow);
1546
+ var MotionCardOverflow = (0, import_framer_motion13.motion)(import_joy19.CardOverflow);
1644
1547
  var CardOverflow = MotionCardOverflow;
1645
1548
  CardOverflow.displayName = "CardOverflow";
1646
1549
 
1647
1550
  // src/components/Checkbox/Checkbox.tsx
1648
- var import_react15 = __toESM(require("react"));
1649
- var import_joy21 = require("@mui/joy");
1650
- var import_framer_motion15 = require("framer-motion");
1651
- var MotionCheckbox = (0, import_framer_motion15.motion)(import_joy21.Checkbox);
1551
+ var import_react14 = __toESM(require("react"));
1552
+ var import_joy20 = require("@mui/joy");
1553
+ var import_framer_motion14 = require("framer-motion");
1554
+ var MotionCheckbox = (0, import_framer_motion14.motion)(import_joy20.Checkbox);
1652
1555
  var Checkbox = (props) => {
1653
- return /* @__PURE__ */ import_react15.default.createElement(MotionCheckbox, { ...props });
1556
+ return /* @__PURE__ */ import_react14.default.createElement(MotionCheckbox, { ...props });
1654
1557
  };
1655
1558
  Checkbox.displayName = "Checkbox";
1656
1559
 
@@ -1658,9 +1561,9 @@ Checkbox.displayName = "Checkbox";
1658
1561
  var Checkbox_default = Checkbox;
1659
1562
 
1660
1563
  // src/components/Container/Container.tsx
1661
- var import_joy22 = require("@mui/joy");
1662
- var import_react16 = __toESM(require("react"));
1663
- var ContainerRoot = (0, import_joy22.styled)("div", {
1564
+ var import_joy21 = require("@mui/joy");
1565
+ var import_react15 = __toESM(require("react"));
1566
+ var ContainerRoot = (0, import_joy21.styled)("div", {
1664
1567
  name: "Container",
1665
1568
  slot: "root",
1666
1569
  shouldForwardProp: (prop) => prop !== "maxWidth" && prop !== "overrideBreakpoint"
@@ -1685,24 +1588,25 @@ var ContainerRoot = (0, import_joy22.styled)("div", {
1685
1588
  paddingRight: theme.breakpoints.values[overrideBreakpoint] >= theme.breakpoints.values.lg ? theme.spacing(8) : theme.spacing(4)
1686
1589
  } : null
1687
1590
  ]);
1688
- var Container = (0, import_react16.forwardRef)(function Container2(props, ref) {
1689
- return /* @__PURE__ */ import_react16.default.createElement(ContainerRoot, { ref, ...props });
1591
+ var Container = (0, import_react15.forwardRef)(function Container2(props, ref) {
1592
+ return /* @__PURE__ */ import_react15.default.createElement(ContainerRoot, { ref, ...props });
1690
1593
  });
1691
1594
  Container.displayName = "Container";
1692
1595
 
1693
1596
  // src/components/CurrencyInput/CurrencyInput.tsx
1694
- var import_react18 = __toESM(require("react"));
1597
+ var import_react17 = __toESM(require("react"));
1598
+ var import_intl_messageformat2 = require("intl-messageformat");
1695
1599
  var import_react_number_format = require("react-number-format");
1696
1600
 
1697
1601
  // src/components/Input/Input.tsx
1698
- var import_react17 = __toESM(require("react"));
1699
- var import_joy23 = require("@mui/joy");
1700
- var import_framer_motion16 = require("framer-motion");
1602
+ var import_react16 = __toESM(require("react"));
1603
+ var import_joy22 = require("@mui/joy");
1604
+ var import_framer_motion15 = require("framer-motion");
1701
1605
  var import_Close2 = __toESM(require("@mui/icons-material/Close"));
1702
1606
  var import_Visibility = __toESM(require("@mui/icons-material/Visibility"));
1703
1607
  var import_VisibilityOff = __toESM(require("@mui/icons-material/VisibilityOff"));
1704
- var MotionInput = (0, import_framer_motion16.motion)(import_joy23.Input);
1705
- var Input = import_react17.default.forwardRef((props, ref) => {
1608
+ var MotionInput = (0, import_framer_motion15.motion)(import_joy22.Input);
1609
+ var Input = import_react16.default.forwardRef((props, ref) => {
1706
1610
  const {
1707
1611
  label,
1708
1612
  helperText,
@@ -1725,11 +1629,11 @@ var Input = import_react17.default.forwardRef((props, ref) => {
1725
1629
  if (type === "password" && innerProps.endDecorator) {
1726
1630
  console.warn('Input: endDecorator is not supported when type="password"');
1727
1631
  }
1728
- const [passwordVisible, setPasswordVisible] = (0, import_react17.useState)(false);
1632
+ const [passwordVisible, setPasswordVisible] = (0, import_react16.useState)(false);
1729
1633
  const [value, setValue] = useControlledState(
1730
1634
  props.value,
1731
1635
  props.defaultValue,
1732
- (0, import_react17.useCallback)(
1636
+ (0, import_react16.useCallback)(
1733
1637
  (value2) => {
1734
1638
  onChange?.({
1735
1639
  /**
@@ -1755,7 +1659,7 @@ var Input = import_react17.default.forwardRef((props, ref) => {
1755
1659
  const actualType = type === "password" && passwordVisible ? "text" : type;
1756
1660
  const isPasswordType = type === "password";
1757
1661
  const showPasswordToggle = isPasswordType && !disableTogglePasswordButton;
1758
- const input = /* @__PURE__ */ import_react17.default.createElement(
1662
+ const input = /* @__PURE__ */ import_react16.default.createElement(
1759
1663
  MotionInput,
1760
1664
  {
1761
1665
  value,
@@ -1770,7 +1674,7 @@ var Input = import_react17.default.forwardRef((props, ref) => {
1770
1674
  ...innerProps.slotProps
1771
1675
  },
1772
1676
  ...innerProps,
1773
- endDecorator: isPasswordType ? showPasswordToggle ? /* @__PURE__ */ import_react17.default.createElement(Stack_default, { gap: 1, direction: "row" }, /* @__PURE__ */ import_react17.default.createElement(
1677
+ endDecorator: isPasswordType ? showPasswordToggle ? /* @__PURE__ */ import_react16.default.createElement(Stack_default, { gap: 1, direction: "row" }, /* @__PURE__ */ import_react16.default.createElement(
1774
1678
  IconButton_default,
1775
1679
  {
1776
1680
  onMouseDown: (e) => e.preventDefault(),
@@ -1778,19 +1682,19 @@ var Input = import_react17.default.forwardRef((props, ref) => {
1778
1682
  disabled,
1779
1683
  "aria-label": passwordVisible ? "Hide password" : "Show password"
1780
1684
  },
1781
- passwordVisible ? /* @__PURE__ */ import_react17.default.createElement(import_VisibilityOff.default, null) : /* @__PURE__ */ import_react17.default.createElement(import_Visibility.default, null)
1782
- )) : null : enableClearable ? /* @__PURE__ */ import_react17.default.createElement(Stack_default, { gap: 1, direction: "row" }, innerProps.endDecorator, value && /* @__PURE__ */ import_react17.default.createElement(
1685
+ passwordVisible ? /* @__PURE__ */ import_react16.default.createElement(import_VisibilityOff.default, null) : /* @__PURE__ */ import_react16.default.createElement(import_Visibility.default, null)
1686
+ )) : null : enableClearable ? /* @__PURE__ */ import_react16.default.createElement(Stack_default, { gap: 1, direction: "row" }, innerProps.endDecorator, value && /* @__PURE__ */ import_react16.default.createElement(
1783
1687
  IconButton_default,
1784
1688
  {
1785
1689
  onMouseDown: (e) => e.preventDefault(),
1786
1690
  onClick: handleClear,
1787
1691
  "aria-label": "Clear"
1788
1692
  },
1789
- /* @__PURE__ */ import_react17.default.createElement(import_Close2.default, null)
1693
+ /* @__PURE__ */ import_react16.default.createElement(import_Close2.default, null)
1790
1694
  )) : innerProps.endDecorator
1791
1695
  }
1792
1696
  );
1793
- return /* @__PURE__ */ import_react17.default.createElement(
1697
+ return /* @__PURE__ */ import_react16.default.createElement(
1794
1698
  FormControl_default,
1795
1699
  {
1796
1700
  required,
@@ -1801,9 +1705,9 @@ var Input = import_react17.default.forwardRef((props, ref) => {
1801
1705
  sx,
1802
1706
  className
1803
1707
  },
1804
- label && /* @__PURE__ */ import_react17.default.createElement(FormLabel_default, null, label),
1708
+ label && /* @__PURE__ */ import_react16.default.createElement(FormLabel_default, null, label),
1805
1709
  input,
1806
- helperText && /* @__PURE__ */ import_react17.default.createElement(FormHelperText_default, null, helperText)
1710
+ helperText && /* @__PURE__ */ import_react16.default.createElement(FormHelperText_default, null, helperText)
1807
1711
  );
1808
1712
  });
1809
1713
  Input.displayName = "Input";
@@ -1812,9 +1716,10 @@ Input.displayName = "Input";
1812
1716
  var Input_default = Input;
1813
1717
 
1814
1718
  // src/components/CurrencyInput/CurrencyInput.tsx
1815
- var import_joy24 = require("@mui/joy");
1719
+ var import_joy23 = require("@mui/joy");
1816
1720
 
1817
1721
  // src/components/CurrencyInput/hooks/use-currency-setting.ts
1722
+ var import_intl_messageformat = __toESM(require("intl-messageformat"));
1818
1723
  var CURRENCY_DECIMAL_MAP = {
1819
1724
  AED: 2,
1820
1725
  ALL: 2,
@@ -1959,10 +1864,9 @@ var CURRENCY_DECIMAL_MAP = {
1959
1864
  };
1960
1865
  var useCurrencySetting = (props) => {
1961
1866
  const { currency = "USD", placeholder } = props;
1962
- const parts = new Intl.NumberFormat("en-US", { style: "currency", currency }).formatToParts(1000.01);
1963
- const symbol = parts.find((p) => p.type === "currency")?.value ?? "$";
1964
- const thousandSeparator = parts.find((p) => p.type === "group")?.value ?? ",";
1965
- const decimalSeparator = parts.find((p) => p.type === "decimal")?.value;
1867
+ const [symbol, thousandSeparator, decimalSeparator, ...rest] = new import_intl_messageformat.default(
1868
+ `{amount, number, ::currency/${currency} unit-width-narrow}`
1869
+ ).format({ amount: 1e3 }).toString().replace(/\d/g, "").split("");
1966
1870
  const decimalScale = CURRENCY_DECIMAL_MAP[currency];
1967
1871
  return {
1968
1872
  symbol: `${symbol} `,
@@ -1975,9 +1879,9 @@ var useCurrencySetting = (props) => {
1975
1879
  };
1976
1880
 
1977
1881
  // src/components/CurrencyInput/CurrencyInput.tsx
1978
- var TextMaskAdapter = import_react18.default.forwardRef(function TextMaskAdapter2(props, ref) {
1882
+ var TextMaskAdapter = import_react17.default.forwardRef(function TextMaskAdapter2(props, ref) {
1979
1883
  const { onChange, ...innerProps } = props;
1980
- return /* @__PURE__ */ import_react18.default.createElement(
1884
+ return /* @__PURE__ */ import_react17.default.createElement(
1981
1885
  import_react_number_format.NumericFormat,
1982
1886
  {
1983
1887
  ...innerProps,
@@ -1992,13 +1896,13 @@ var TextMaskAdapter = import_react18.default.forwardRef(function TextMaskAdapter
1992
1896
  }
1993
1897
  );
1994
1898
  });
1995
- var CurrencyInputRoot = (0, import_joy24.styled)(Input_default, {
1899
+ var CurrencyInputRoot = (0, import_joy23.styled)(Input_default, {
1996
1900
  name: "CurrencyInput",
1997
1901
  slot: "root",
1998
1902
  overridesResolver: (props, styles) => styles.root
1999
1903
  })({});
2000
- var CurrencyInput = import_react18.default.forwardRef(function CurrencyInput2(inProps, ref) {
2001
- const props = (0, import_joy24.useThemeProps)({ props: inProps, name: "CurrencyInput" });
1904
+ var CurrencyInput = import_react17.default.forwardRef(function CurrencyInput2(inProps, ref) {
1905
+ const props = (0, import_joy23.useThemeProps)({ props: inProps, name: "CurrencyInput" });
2002
1906
  const {
2003
1907
  currency = "USD",
2004
1908
  name,
@@ -2018,28 +1922,28 @@ var CurrencyInput = import_react18.default.forwardRef(function CurrencyInput2(in
2018
1922
  const [_value, setValue] = useControlledState(
2019
1923
  props.value,
2020
1924
  props.defaultValue,
2021
- (0, import_react18.useCallback)((value2) => onChange?.({ target: { name, value: value2 } }), [onChange, name])
1925
+ (0, import_react17.useCallback)((value2) => onChange?.({ target: { name, value: value2 } }), [onChange, name])
2022
1926
  );
2023
- const value = (0, import_react18.useMemo)(() => {
1927
+ const value = (0, import_react17.useMemo)(() => {
2024
1928
  if (_value && useMinorUnit) {
2025
1929
  return _value / Math.pow(10, decimalScale);
2026
1930
  }
2027
1931
  return _value;
2028
1932
  }, [_value, useMinorUnit, decimalScale]);
2029
- const max = (0, import_react18.useMemo)(() => {
1933
+ const max = (0, import_react17.useMemo)(() => {
2030
1934
  if (props.max && useMinorUnit) {
2031
1935
  return props.max / Math.pow(10, decimalScale);
2032
1936
  }
2033
1937
  return props.max;
2034
1938
  }, [props.max, useMinorUnit, decimalScale]);
2035
- const [isOverLimit, setIsOverLimit] = (0, import_react18.useState)(!!max && !!value && value > max);
2036
- const handleChange = (0, import_react18.useCallback)(
1939
+ const [isOverLimit, setIsOverLimit] = (0, import_react17.useState)(!!max && !!value && value > max);
1940
+ const handleChange = (0, import_react17.useCallback)(
2037
1941
  (event) => {
2038
1942
  if (event.target.value === "") {
2039
1943
  setValue(void 0);
2040
1944
  return;
2041
1945
  }
2042
- const amount = useMinorUnit ? Number(decimalSeparator ? event.target.value?.replace(decimalSeparator, "") : event.target.value) : Number(event.target.value);
1946
+ const amount = useMinorUnit ? Number(event.target.value?.replace(decimalSeparator, "")) : Number(event.target.value);
2043
1947
  if (!!max && Number(event.target.value) > max) {
2044
1948
  setIsOverLimit(true);
2045
1949
  } else {
@@ -2049,7 +1953,7 @@ var CurrencyInput = import_react18.default.forwardRef(function CurrencyInput2(in
2049
1953
  },
2050
1954
  [decimalSeparator, max, useMinorUnit, setValue]
2051
1955
  );
2052
- return /* @__PURE__ */ import_react18.default.createElement(
1956
+ return /* @__PURE__ */ import_react17.default.createElement(
2053
1957
  CurrencyInputRoot,
2054
1958
  {
2055
1959
  ...innerProps,
@@ -2062,7 +1966,9 @@ var CurrencyInput = import_react18.default.forwardRef(function CurrencyInput2(in
2062
1966
  required,
2063
1967
  color: error || isOverLimit ? "danger" : props.color,
2064
1968
  label,
2065
- helperText: isOverLimit ? `limit: ${new Intl.NumberFormat("en-US", { style: "currency", currency }).format(max)}` : helperText,
1969
+ helperText: isOverLimit ? new import_intl_messageformat2.IntlMessageFormat(`limit: {amount, number, ::currency/${currency} unit-width-narrow}`).format({
1970
+ amount: max
1971
+ }) : helperText,
2066
1972
  slotProps: {
2067
1973
  input: {
2068
1974
  component: TextMaskAdapter,
@@ -2236,6 +2142,15 @@ function calculateColumnGroups(columnGroupingModel, columns, visibleFields) {
2236
2142
  const correctedMaxLevel = filteredGroupsByLevel.length > 0 ? filteredGroupsByLevel.length - 1 : -1;
2237
2143
  return { groups: filteredGroupsByLevel, maxLevel: correctedMaxLevel, fieldsInGroupingModel };
2238
2144
  }
2145
+ function parsePxValue(value) {
2146
+ if (!value) return null;
2147
+ const trimmed = value.trim();
2148
+ if (trimmed.endsWith("px")) {
2149
+ const num = parseFloat(trimmed);
2150
+ return isNaN(num) ? null : num;
2151
+ }
2152
+ return null;
2153
+ }
2239
2154
  function getTextAlign(props) {
2240
2155
  return !props.editMode && ["number", "date", "currency"].includes(props.type || "") ? "end" : "start";
2241
2156
  }
@@ -2307,11 +2222,11 @@ function computeAutoFitWidth(params) {
2307
2222
  }
2308
2223
 
2309
2224
  // src/components/DataTable/styled.tsx
2310
- var import_react19 = __toESM(require("react"));
2311
- var import_joy25 = require("@mui/joy");
2312
- var import_framer_motion17 = require("framer-motion");
2225
+ var import_react18 = __toESM(require("react"));
2226
+ var import_joy24 = require("@mui/joy");
2227
+ var import_framer_motion16 = require("framer-motion");
2313
2228
  var import_ArrowUpwardRounded = __toESM(require("@mui/icons-material/ArrowUpwardRounded"));
2314
- var EllipsisDiv = (0, import_joy25.styled)("div", {
2229
+ var EllipsisDiv = (0, import_joy24.styled)("div", {
2315
2230
  name: "DataTable",
2316
2231
  slot: "textEllipsis",
2317
2232
  shouldForwardProp: (prop) => prop !== "lineClamp"
@@ -2329,7 +2244,7 @@ var EllipsisDiv = (0, import_joy25.styled)("div", {
2329
2244
  whiteSpace: "nowrap"
2330
2245
  }
2331
2246
  );
2332
- var OverlayWrapper = (0, import_joy25.styled)("tr", {
2247
+ var OverlayWrapper = (0, import_joy24.styled)("tr", {
2333
2248
  name: "DataTable",
2334
2249
  slot: "overlayWrapper"
2335
2250
  })({
@@ -2344,7 +2259,7 @@ var OverlayWrapper = (0, import_joy25.styled)("tr", {
2344
2259
  border: "none !important"
2345
2260
  }
2346
2261
  });
2347
- var VirtualizedTableBody = (0, import_joy25.styled)("tbody", {
2262
+ var VirtualizedTableBody = (0, import_joy24.styled)("tbody", {
2348
2263
  name: "DataTable",
2349
2264
  slot: "tableBody"
2350
2265
  })({
@@ -2353,21 +2268,21 @@ var VirtualizedTableBody = (0, import_joy25.styled)("tbody", {
2353
2268
  display: "block",
2354
2269
  height: "0.01em"
2355
2270
  },
2356
- [`& .${import_joy25.buttonClasses.root}`]: {
2271
+ [`& .${import_joy24.buttonClasses.root}`]: {
2357
2272
  "--Button-minHeight": "26px",
2358
2273
  "--Button-paddingBlock": "0.25rem",
2359
2274
  lineHeight: 1,
2360
2275
  marginTop: "-2px",
2361
2276
  marginBottom: "-2px"
2362
2277
  },
2363
- [`& .${import_joy25.iconButtonClasses.root}`]: {
2278
+ [`& .${import_joy24.iconButtonClasses.root}`]: {
2364
2279
  "--IconButton-size": "26px",
2365
2280
  verticalAlign: "middle",
2366
2281
  marginTop: "-2px",
2367
2282
  marginBottom: "-2px"
2368
2283
  }
2369
2284
  });
2370
- var StyledTableRow = (0, import_joy25.styled)("tr", {
2285
+ var StyledTableRow = (0, import_joy24.styled)("tr", {
2371
2286
  name: "DataTable",
2372
2287
  slot: "tableRow",
2373
2288
  shouldForwardProp: (prop) => prop !== "striped"
@@ -2386,17 +2301,17 @@ var StyledTableRow = (0, import_joy25.styled)("tr", {
2386
2301
  }
2387
2302
  }
2388
2303
  }));
2389
- var Asterisk = (0, import_joy25.styled)("span", {
2304
+ var Asterisk = (0, import_joy24.styled)("span", {
2390
2305
  name: "DataTable",
2391
2306
  slot: "headCellAsterisk"
2392
2307
  })(({ theme }) => ({
2393
2308
  color: "var(--ceed-palette-danger-500)",
2394
2309
  marginLeft: theme.spacing(0.5)
2395
2310
  }));
2396
- var StyledTh = (0, import_joy25.styled)(import_framer_motion17.motion.th)(({ theme }) => ({
2311
+ var StyledTh = (0, import_joy24.styled)(import_framer_motion16.motion.th)(({ theme }) => ({
2397
2312
  boxShadow: "1px 0 var(--TableCell-borderColor)"
2398
2313
  }));
2399
- var StyledTd = (0, import_joy25.styled)("td")(({ theme }) => ({
2314
+ var StyledTd = (0, import_joy24.styled)("td")(({ theme }) => ({
2400
2315
  transition: `box-shadow 0.3s`,
2401
2316
  "&:not(.is-last-left):not(.is-last-right)": {
2402
2317
  boxShadow: "1px 0 var(--TableCell-borderColor)"
@@ -2412,10 +2327,10 @@ var StyledTd = (0, import_joy25.styled)("td")(({ theme }) => ({
2412
2327
  }
2413
2328
  }
2414
2329
  }));
2415
- var MotionSortIcon = (0, import_framer_motion17.motion)(import_ArrowUpwardRounded.default);
2416
- var DefaultLoadingOverlay = () => /* @__PURE__ */ import_react19.default.createElement(import_joy25.LinearProgress, { value: 8, variant: "plain" });
2417
- var DefaultNoRowsOverlay = () => /* @__PURE__ */ import_react19.default.createElement(import_joy25.Typography, { level: "body-sm", textColor: "text.tertiary" }, "No rows");
2418
- var Resizer = (ref, targetRef = ref, onResizeStateChange, onAutoFit) => /* @__PURE__ */ import_react19.default.createElement(
2330
+ var MotionSortIcon = (0, import_framer_motion16.motion)(import_ArrowUpwardRounded.default);
2331
+ var DefaultLoadingOverlay = () => /* @__PURE__ */ import_react18.default.createElement(import_joy24.LinearProgress, { value: 8, variant: "plain" });
2332
+ var DefaultNoRowsOverlay = () => /* @__PURE__ */ import_react18.default.createElement(import_joy24.Typography, { level: "body-sm", textColor: "text.tertiary" }, "No rows");
2333
+ var Resizer = (ref, targetRef = ref, onResizeStateChange, onAutoFit) => /* @__PURE__ */ import_react18.default.createElement(
2419
2334
  Box_default,
2420
2335
  {
2421
2336
  sx: {
@@ -2497,24 +2412,24 @@ var import_joy32 = require("@mui/joy");
2497
2412
  var import_framer_motion21 = require("framer-motion");
2498
2413
 
2499
2414
  // src/components/DatePicker/DatePicker.tsx
2500
- var import_react20 = __toESM(require("react"));
2415
+ var import_react19 = __toESM(require("react"));
2501
2416
  var import_react_imask = require("react-imask");
2502
2417
  var import_CalendarToday = __toESM(require("@mui/icons-material/CalendarToday"));
2503
- var import_joy28 = require("@mui/joy");
2418
+ var import_joy27 = require("@mui/joy");
2504
2419
  var import_base3 = require("@mui/base");
2505
2420
 
2506
2421
  // src/components/Sheet/Sheet.tsx
2507
- var import_joy26 = require("@mui/joy");
2508
- var Sheet = import_joy26.Sheet;
2422
+ var import_joy25 = require("@mui/joy");
2423
+ var Sheet = import_joy25.Sheet;
2509
2424
 
2510
2425
  // src/components/Sheet/index.ts
2511
2426
  var Sheet_default = Sheet;
2512
2427
 
2513
2428
  // src/components/DialogActions/DialogActions.tsx
2514
- var import_joy27 = require("@mui/joy");
2515
- var import_framer_motion18 = require("framer-motion");
2516
- var MotionDialogActions = (0, import_framer_motion18.motion)(import_joy27.DialogActions);
2517
- var StyledDialogActions = (0, import_joy27.styled)(MotionDialogActions)(({ theme }) => ({
2429
+ var import_joy26 = require("@mui/joy");
2430
+ var import_framer_motion17 = require("framer-motion");
2431
+ var MotionDialogActions = (0, import_framer_motion17.motion)(import_joy26.DialogActions);
2432
+ var StyledDialogActions = (0, import_joy26.styled)(MotionDialogActions)(({ theme }) => ({
2518
2433
  padding: theme.spacing(2),
2519
2434
  gap: theme.spacing(2),
2520
2435
  flexDirection: "row",
@@ -2527,7 +2442,7 @@ DialogActions.displayName = "DialogActions";
2527
2442
  var DialogActions_default = DialogActions;
2528
2443
 
2529
2444
  // src/components/DatePicker/DatePicker.tsx
2530
- var CalendarButton = (0, import_joy28.styled)(IconButton_default, {
2445
+ var CalendarButton = (0, import_joy27.styled)(IconButton_default, {
2531
2446
  name: "DatePicker",
2532
2447
  slot: "calendarButton"
2533
2448
  })(({ theme }) => ({
@@ -2537,13 +2452,13 @@ var CalendarButton = (0, import_joy28.styled)(IconButton_default, {
2537
2452
  outline: `${theme.getCssVar("focus-thickness")} solid ${theme.getCssVar("palette-focusVisible")}`
2538
2453
  }
2539
2454
  }));
2540
- var StyledPopper = (0, import_joy28.styled)(import_base3.Popper, {
2455
+ var StyledPopper = (0, import_joy27.styled)(import_base3.Popper, {
2541
2456
  name: "DatePicker",
2542
2457
  slot: "popper"
2543
2458
  })(({ theme }) => ({
2544
2459
  zIndex: theme.zIndex.tooltip
2545
2460
  }));
2546
- var CalendarSheet = (0, import_joy28.styled)(Sheet_default, {
2461
+ var CalendarSheet = (0, import_joy27.styled)(Sheet_default, {
2547
2462
  name: "DatePicker",
2548
2463
  slot: "sheet",
2549
2464
  overridesResolver: (props, styles) => styles.root
@@ -2552,7 +2467,7 @@ var CalendarSheet = (0, import_joy28.styled)(Sheet_default, {
2552
2467
  boxShadow: theme.shadow.md,
2553
2468
  borderRadius: theme.radius.md
2554
2469
  }));
2555
- var DatePickerRoot = (0, import_joy28.styled)("div", {
2470
+ var DatePickerRoot = (0, import_joy27.styled)("div", {
2556
2471
  name: "DatePicker",
2557
2472
  slot: "root",
2558
2473
  overridesResolver: (props, styles) => styles.root
@@ -2609,9 +2524,9 @@ function parseDate(dateString, format) {
2609
2524
  var formatToPattern = (format) => {
2610
2525
  return format.replace(/YYYY/g, "Y").replace(/MM/g, "M").replace(/DD/g, "D").replace(/[^YMD\s]/g, (match) => `${match}\``);
2611
2526
  };
2612
- var TextMaskAdapter3 = import_react20.default.forwardRef(function TextMaskAdapter4(props, ref) {
2527
+ var TextMaskAdapter3 = import_react19.default.forwardRef(function TextMaskAdapter4(props, ref) {
2613
2528
  const { onChange, format, ...other } = props;
2614
- return /* @__PURE__ */ import_react20.default.createElement(
2529
+ return /* @__PURE__ */ import_react19.default.createElement(
2615
2530
  import_react_imask.IMaskInput,
2616
2531
  {
2617
2532
  ...other,
@@ -2646,8 +2561,8 @@ var TextMaskAdapter3 = import_react20.default.forwardRef(function TextMaskAdapte
2646
2561
  }
2647
2562
  );
2648
2563
  });
2649
- var DatePicker = (0, import_react20.forwardRef)((inProps, ref) => {
2650
- const props = (0, import_joy28.useThemeProps)({ props: inProps, name: "DatePicker" });
2564
+ var DatePicker = (0, import_react19.forwardRef)((inProps, ref) => {
2565
+ const props = (0, import_joy27.useThemeProps)({ props: inProps, name: "DatePicker" });
2651
2566
  const {
2652
2567
  onChange,
2653
2568
  disabled,
@@ -2671,24 +2586,24 @@ var DatePicker = (0, import_react20.forwardRef)((inProps, ref) => {
2671
2586
  shouldDisableDate,
2672
2587
  ...innerProps
2673
2588
  } = props;
2674
- const innerRef = (0, import_react20.useRef)(null);
2675
- const buttonRef = (0, import_react20.useRef)(null);
2589
+ const innerRef = (0, import_react19.useRef)(null);
2590
+ const buttonRef = (0, import_react19.useRef)(null);
2676
2591
  const [value, setValue] = useControlledState(
2677
2592
  props.value,
2678
2593
  props.defaultValue || "",
2679
- (0, import_react20.useCallback)((value2) => onChange?.({ target: { name: props.name, value: value2 } }), [props.name, onChange])
2594
+ (0, import_react19.useCallback)((value2) => onChange?.({ target: { name: props.name, value: value2 } }), [props.name, onChange])
2680
2595
  );
2681
- const [displayValue, setDisplayValue] = (0, import_react20.useState)(
2596
+ const [displayValue, setDisplayValue] = (0, import_react19.useState)(
2682
2597
  () => value ? formatValueString(parseDate(value, format), displayFormat) : ""
2683
2598
  );
2684
- const [anchorEl, setAnchorEl] = (0, import_react20.useState)(null);
2599
+ const [anchorEl, setAnchorEl] = (0, import_react19.useState)(null);
2685
2600
  const open = Boolean(anchorEl);
2686
- (0, import_react20.useEffect)(() => {
2601
+ (0, import_react19.useEffect)(() => {
2687
2602
  if (!anchorEl) {
2688
2603
  innerRef.current?.blur();
2689
2604
  }
2690
2605
  }, [anchorEl, innerRef]);
2691
- (0, import_react20.useEffect)(() => {
2606
+ (0, import_react19.useEffect)(() => {
2692
2607
  if (value === "") {
2693
2608
  setDisplayValue("");
2694
2609
  return;
@@ -2698,8 +2613,8 @@ var DatePicker = (0, import_react20.forwardRef)((inProps, ref) => {
2698
2613
  setDisplayValue(formattedValue);
2699
2614
  }
2700
2615
  }, [displayFormat, displayValue, format, value]);
2701
- (0, import_react20.useImperativeHandle)(ref, () => innerRef.current, [innerRef]);
2702
- const handleChange = (0, import_react20.useCallback)(
2616
+ (0, import_react19.useImperativeHandle)(ref, () => innerRef.current, [innerRef]);
2617
+ const handleChange = (0, import_react19.useCallback)(
2703
2618
  (event) => {
2704
2619
  const value2 = event.target.value;
2705
2620
  setDisplayValue(value2 ? formatValueString(parseDate(value2, format), displayFormat) : value2);
@@ -2707,7 +2622,7 @@ var DatePicker = (0, import_react20.forwardRef)((inProps, ref) => {
2707
2622
  },
2708
2623
  [displayFormat, format, setValue]
2709
2624
  );
2710
- const handleDisplayInputChange = (0, import_react20.useCallback)(
2625
+ const handleDisplayInputChange = (0, import_react19.useCallback)(
2711
2626
  (event) => {
2712
2627
  if (event.target.value === "") {
2713
2628
  handleChange({
@@ -2732,7 +2647,7 @@ var DatePicker = (0, import_react20.forwardRef)((inProps, ref) => {
2732
2647
  },
2733
2648
  [displayFormat, format, handleChange, props.name]
2734
2649
  );
2735
- const handleCalendarToggle = (0, import_react20.useCallback)(
2650
+ const handleCalendarToggle = (0, import_react19.useCallback)(
2736
2651
  (event) => {
2737
2652
  setAnchorEl(anchorEl ? null : event.currentTarget);
2738
2653
  setTimeout(() => {
@@ -2741,7 +2656,7 @@ var DatePicker = (0, import_react20.forwardRef)((inProps, ref) => {
2741
2656
  },
2742
2657
  [anchorEl, setAnchorEl, innerRef]
2743
2658
  );
2744
- const handleInputMouseDown = (0, import_react20.useCallback)(
2659
+ const handleInputMouseDown = (0, import_react19.useCallback)(
2745
2660
  (event) => {
2746
2661
  if (inputReadOnly) {
2747
2662
  event.preventDefault();
@@ -2750,7 +2665,7 @@ var DatePicker = (0, import_react20.forwardRef)((inProps, ref) => {
2750
2665
  },
2751
2666
  [inputReadOnly, buttonRef]
2752
2667
  );
2753
- return /* @__PURE__ */ import_react20.default.createElement(DatePickerRoot, null, /* @__PURE__ */ import_react20.default.createElement(import_base3.FocusTrap, { open: true }, /* @__PURE__ */ import_react20.default.createElement(import_react20.default.Fragment, null, /* @__PURE__ */ import_react20.default.createElement(
2668
+ return /* @__PURE__ */ import_react19.default.createElement(DatePickerRoot, null, /* @__PURE__ */ import_react19.default.createElement(import_base3.FocusTrap, { open: true }, /* @__PURE__ */ import_react19.default.createElement(import_react19.default.Fragment, null, /* @__PURE__ */ import_react19.default.createElement(
2754
2669
  Input_default,
2755
2670
  {
2756
2671
  ...innerProps,
@@ -2778,7 +2693,7 @@ var DatePicker = (0, import_react20.forwardRef)((inProps, ref) => {
2778
2693
  },
2779
2694
  className,
2780
2695
  sx,
2781
- endDecorator: /* @__PURE__ */ import_react20.default.createElement(
2696
+ endDecorator: /* @__PURE__ */ import_react19.default.createElement(
2782
2697
  CalendarButton,
2783
2698
  {
2784
2699
  ref: buttonRef,
@@ -2790,13 +2705,13 @@ var DatePicker = (0, import_react20.forwardRef)((inProps, ref) => {
2790
2705
  "aria-expanded": open,
2791
2706
  disabled
2792
2707
  },
2793
- /* @__PURE__ */ import_react20.default.createElement(import_CalendarToday.default, null)
2708
+ /* @__PURE__ */ import_react19.default.createElement(import_CalendarToday.default, null)
2794
2709
  ),
2795
2710
  label,
2796
2711
  helperText,
2797
2712
  readOnly: readOnly || inputReadOnly
2798
2713
  }
2799
- ), open && /* @__PURE__ */ import_react20.default.createElement(import_base3.ClickAwayListener, { onClickAway: () => setAnchorEl(null) }, /* @__PURE__ */ import_react20.default.createElement(
2714
+ ), open && /* @__PURE__ */ import_react19.default.createElement(import_base3.ClickAwayListener, { onClickAway: () => setAnchorEl(null) }, /* @__PURE__ */ import_react19.default.createElement(
2800
2715
  StyledPopper,
2801
2716
  {
2802
2717
  id: "date-picker-popper",
@@ -2815,7 +2730,7 @@ var DatePicker = (0, import_react20.forwardRef)((inProps, ref) => {
2815
2730
  "aria-label": "Calendar Tooltip",
2816
2731
  "aria-expanded": open
2817
2732
  },
2818
- /* @__PURE__ */ import_react20.default.createElement(CalendarSheet, { tabIndex: -1, role: "presentation" }, /* @__PURE__ */ import_react20.default.createElement(
2733
+ /* @__PURE__ */ import_react19.default.createElement(CalendarSheet, { tabIndex: -1, role: "presentation" }, /* @__PURE__ */ import_react19.default.createElement(
2819
2734
  Calendar_default,
2820
2735
  {
2821
2736
  value: value && !Number.isNaN(parseDate(value, format).getTime()) ? [parseDate(value, format), void 0] : void 0,
@@ -2834,14 +2749,14 @@ var DatePicker = (0, import_react20.forwardRef)((inProps, ref) => {
2834
2749
  disablePast,
2835
2750
  shouldDisableDate: shouldDisableDate ? (date) => shouldDisableDate(formatValueString(date, format)) : void 0
2836
2751
  }
2837
- ), !hideClearButton && /* @__PURE__ */ import_react20.default.createElement(
2752
+ ), !hideClearButton && /* @__PURE__ */ import_react19.default.createElement(
2838
2753
  DialogActions_default,
2839
2754
  {
2840
2755
  sx: {
2841
2756
  p: 1
2842
2757
  }
2843
2758
  },
2844
- /* @__PURE__ */ import_react20.default.createElement(
2759
+ /* @__PURE__ */ import_react19.default.createElement(
2845
2760
  Button_default,
2846
2761
  {
2847
2762
  size,
@@ -2867,10 +2782,10 @@ var DatePicker = (0, import_react20.forwardRef)((inProps, ref) => {
2867
2782
  var DatePicker_default = DatePicker;
2868
2783
 
2869
2784
  // src/components/Textarea/Textarea.tsx
2870
- var import_react21 = __toESM(require("react"));
2871
- var import_joy29 = require("@mui/joy");
2872
- var import_framer_motion19 = require("framer-motion");
2873
- var MotionTextarea = (0, import_framer_motion19.motion)(import_joy29.Textarea);
2785
+ var import_react20 = __toESM(require("react"));
2786
+ var import_joy28 = require("@mui/joy");
2787
+ var import_framer_motion18 = require("framer-motion");
2788
+ var MotionTextarea = (0, import_framer_motion18.motion)(import_joy28.Textarea);
2874
2789
  var Textarea = (props) => {
2875
2790
  const {
2876
2791
  label,
@@ -2887,7 +2802,7 @@ var Textarea = (props) => {
2887
2802
  className,
2888
2803
  ...innerProps
2889
2804
  } = props;
2890
- const textarea = /* @__PURE__ */ import_react21.default.createElement(
2805
+ const textarea = /* @__PURE__ */ import_react20.default.createElement(
2891
2806
  MotionTextarea,
2892
2807
  {
2893
2808
  required,
@@ -2899,7 +2814,7 @@ var Textarea = (props) => {
2899
2814
  ...innerProps
2900
2815
  }
2901
2816
  );
2902
- return /* @__PURE__ */ import_react21.default.createElement(
2817
+ return /* @__PURE__ */ import_react20.default.createElement(
2903
2818
  FormControl_default,
2904
2819
  {
2905
2820
  required,
@@ -2910,9 +2825,9 @@ var Textarea = (props) => {
2910
2825
  sx,
2911
2826
  className
2912
2827
  },
2913
- label && /* @__PURE__ */ import_react21.default.createElement(FormLabel_default, null, label),
2828
+ label && /* @__PURE__ */ import_react20.default.createElement(FormLabel_default, null, label),
2914
2829
  textarea,
2915
- helperText && /* @__PURE__ */ import_react21.default.createElement(FormHelperText_default, null, helperText)
2830
+ helperText && /* @__PURE__ */ import_react20.default.createElement(FormHelperText_default, null, helperText)
2916
2831
  );
2917
2832
  };
2918
2833
  Textarea.displayName = "Textarea";
@@ -2921,10 +2836,10 @@ Textarea.displayName = "Textarea";
2921
2836
  var Textarea_default = Textarea;
2922
2837
 
2923
2838
  // src/components/Select/Select.tsx
2924
- var import_react22 = __toESM(require("react"));
2925
- var import_joy30 = require("@mui/joy");
2926
- var import_framer_motion20 = require("framer-motion");
2927
- var MotionOption = (0, import_framer_motion20.motion)(import_joy30.Option);
2839
+ var import_react21 = __toESM(require("react"));
2840
+ var import_joy29 = require("@mui/joy");
2841
+ var import_framer_motion19 = require("framer-motion");
2842
+ var MotionOption = (0, import_framer_motion19.motion)(import_joy29.Option);
2928
2843
  var Option = MotionOption;
2929
2844
  var secondaryTextLevelMap2 = {
2930
2845
  sm: "body-xs",
@@ -2947,7 +2862,7 @@ function Select(props) {
2947
2862
  className,
2948
2863
  ...innerProps
2949
2864
  } = props;
2950
- const options = (0, import_react22.useMemo)(
2865
+ const options = (0, import_react21.useMemo)(
2951
2866
  () => props.options.map((option) => {
2952
2867
  if (option.hasOwnProperty("value") && option.hasOwnProperty("label")) {
2953
2868
  return option;
@@ -2972,15 +2887,15 @@ function Select(props) {
2972
2887
  };
2973
2888
  onChange?.(newEvent, newValue);
2974
2889
  };
2975
- const optionMap = (0, import_react22.useMemo)(() => {
2890
+ const optionMap = (0, import_react21.useMemo)(() => {
2976
2891
  const map = /* @__PURE__ */ new Map();
2977
2892
  options.forEach((option) => {
2978
2893
  map.set(option.value, option);
2979
2894
  });
2980
2895
  return map;
2981
2896
  }, [options]);
2982
- const select = /* @__PURE__ */ import_react22.default.createElement(
2983
- import_joy30.Select,
2897
+ const select = /* @__PURE__ */ import_react21.default.createElement(
2898
+ import_joy29.Select,
2984
2899
  {
2985
2900
  ...innerProps,
2986
2901
  required,
@@ -2996,9 +2911,9 @@ function Select(props) {
2996
2911
  return optionMap.get(selected.value)?.label;
2997
2912
  }
2998
2913
  },
2999
- options.map((option) => /* @__PURE__ */ import_react22.default.createElement(Option, { key: option.value, value: option.value, disabled: option.disabled }, option.secondaryText ? /* @__PURE__ */ import_react22.default.createElement(import_joy30.ListItemContent, { sx: { gap: 0.5 } }, /* @__PURE__ */ import_react22.default.createElement(import_joy30.Typography, { level: "inherit" }, option.label), /* @__PURE__ */ import_react22.default.createElement(import_joy30.Typography, { level: secondaryTextLevelMap2[size ?? "md"], textColor: "text.tertiary" }, option.secondaryText)) : option.label))
2914
+ options.map((option) => /* @__PURE__ */ import_react21.default.createElement(Option, { key: option.value, value: option.value, disabled: option.disabled }, option.secondaryText ? /* @__PURE__ */ import_react21.default.createElement(import_joy29.ListItemContent, { sx: { gap: 0.5 } }, /* @__PURE__ */ import_react21.default.createElement(import_joy29.Typography, { level: "inherit" }, option.label), /* @__PURE__ */ import_react21.default.createElement(import_joy29.Typography, { level: secondaryTextLevelMap2[size ?? "md"], textColor: "text.tertiary" }, option.secondaryText)) : option.label))
3000
2915
  );
3001
- return /* @__PURE__ */ import_react22.default.createElement(
2916
+ return /* @__PURE__ */ import_react21.default.createElement(
3002
2917
  FormControl_default,
3003
2918
  {
3004
2919
  required,
@@ -3009,9 +2924,9 @@ function Select(props) {
3009
2924
  sx,
3010
2925
  className
3011
2926
  },
3012
- label && /* @__PURE__ */ import_react22.default.createElement(FormLabel_default, null, label),
2927
+ label && /* @__PURE__ */ import_react21.default.createElement(FormLabel_default, null, label),
3013
2928
  select,
3014
- helperText && /* @__PURE__ */ import_react22.default.createElement(FormHelperText_default, null, helperText)
2929
+ helperText && /* @__PURE__ */ import_react21.default.createElement(FormHelperText_default, null, helperText)
3015
2930
  );
3016
2931
  }
3017
2932
  Select.displayName = "Select";
@@ -3022,6 +2937,19 @@ var Select_default = Select;
3022
2937
  // src/components/DataTable/components.tsx
3023
2938
  var import_joy33 = require("@mui/joy");
3024
2939
 
2940
+ // src/components/Tooltip/Tooltip.tsx
2941
+ var import_react22 = __toESM(require("react"));
2942
+ var import_joy30 = require("@mui/joy");
2943
+ var import_framer_motion20 = require("framer-motion");
2944
+ var MotionTooltip = (0, import_framer_motion20.motion)(import_joy30.Tooltip);
2945
+ var Tooltip = (props) => {
2946
+ return /* @__PURE__ */ import_react22.default.createElement(MotionTooltip, { ...props });
2947
+ };
2948
+ Tooltip.displayName = "Tooltip";
2949
+
2950
+ // src/components/Tooltip/index.ts
2951
+ var Tooltip_default = Tooltip;
2952
+
3025
2953
  // src/components/InfoSign/InfoSign.tsx
3026
2954
  var import_react23 = __toESM(require("react"));
3027
2955
  var import_joy31 = require("@mui/joy");
@@ -3535,7 +3463,8 @@ function useDataTableRenderer({
3535
3463
  isRowSelectable,
3536
3464
  columnGroupingModel,
3537
3465
  columnVisibilityModel,
3538
- onColumnVisibilityModelChange
3466
+ onColumnVisibilityModelChange,
3467
+ checkboxSelection
3539
3468
  }) {
3540
3469
  if (pinnedColumns && columnGroupingModel) {
3541
3470
  throw new Error(
@@ -3568,6 +3497,14 @@ function useDataTableRenderer({
3568
3497
  [reorderedColumns, visibilityModel]
3569
3498
  );
3570
3499
  const visibleFieldSet = (0, import_react25.useMemo)(() => new Set(visibleColumns.map((c) => c.field)), [visibleColumns]);
3500
+ const tableMinWidth = (0, import_react25.useMemo)(() => {
3501
+ const DEFAULT_MIN = 50;
3502
+ let total = checkboxSelection ? 40 : 0;
3503
+ for (const col of visibleColumns) {
3504
+ total += parsePxValue(col.minWidth) ?? parsePxValue(col.width) ?? DEFAULT_MIN;
3505
+ }
3506
+ return total;
3507
+ }, [visibleColumns, checkboxSelection]);
3571
3508
  const allColumnsByField = (0, import_react25.useMemo)(
3572
3509
  () => reorderedColumns.reduce(
3573
3510
  (acc, curr) => ({
@@ -3868,6 +3805,7 @@ function useDataTableRenderer({
3868
3805
  ]
3869
3806
  ),
3870
3807
  columns,
3808
+ tableMinWidth,
3871
3809
  processedColumnGroups,
3872
3810
  onTotalSelect: (0, import_react25.useCallback)(() => {
3873
3811
  const selectableRows = rows.filter((row, i) => {
@@ -4257,6 +4195,7 @@ function Component(props, apiRef) {
4257
4195
  onTotalSelect,
4258
4196
  HeadCell: HeadCell2,
4259
4197
  BodyRow: BodyRow2,
4198
+ tableMinWidth,
4260
4199
  // For keyboard selection
4261
4200
  selectionAnchor,
4262
4201
  setSelectionAnchor
@@ -4446,7 +4385,7 @@ function Component(props, apiRef) {
4446
4385
  ref: parentRef,
4447
4386
  ...backgroundProps
4448
4387
  },
4449
- /* @__PURE__ */ import_react28.default.createElement(Table, { ...innerProps }, /* @__PURE__ */ import_react28.default.createElement("colgroup", null, checkboxSelection && /* @__PURE__ */ import_react28.default.createElement(
4388
+ /* @__PURE__ */ import_react28.default.createElement(Table, { ...innerProps, sx: { ...innerProps.sx, minWidth: tableMinWidth } }, /* @__PURE__ */ import_react28.default.createElement("colgroup", null, checkboxSelection && /* @__PURE__ */ import_react28.default.createElement(
4450
4389
  "col",
4451
4390
  {
4452
4391
  style: {
@@ -4459,7 +4398,8 @@ function Component(props, apiRef) {
4459
4398
  ref: c.tableColRef,
4460
4399
  key: `${c.field.toString()}_${c.width}`,
4461
4400
  style: {
4462
- width: c.width
4401
+ width: c.width,
4402
+ minWidth: c.minWidth ?? "50px"
4463
4403
  }
4464
4404
  }
4465
4405
  ))), /* @__PURE__ */ import_react28.default.createElement("thead", null, processedColumnGroups && processedColumnGroups.groups.length > 0 && processedColumnGroups.groups.map((levelGroups, level) => /* @__PURE__ */ import_react28.default.createElement("tr", { key: `group-level-${level}` }, checkboxSelection && level === 0 && /* @__PURE__ */ import_react28.default.createElement(
@@ -7444,8 +7384,90 @@ function RadioList(props) {
7444
7384
  }
7445
7385
  RadioList.displayName = "RadioList";
7446
7386
 
7447
- // src/components/Stepper/Stepper.tsx
7387
+ // src/components/SearchBar/SearchBar.tsx
7448
7388
  var import_react57 = __toESM(require("react"));
7389
+ var import_SearchRounded = __toESM(require("@mui/icons-material/SearchRounded"));
7390
+ var import_CloseRounded = __toESM(require("@mui/icons-material/CloseRounded"));
7391
+ function SearchBar(props) {
7392
+ const { hideSelect = false, options, value, onChange, onSearch } = props;
7393
+ const [selectVal, setSelectVal] = (0, import_react57.useState)(options?.[0]?.value ?? "");
7394
+ const [isHovered, setIsHovered] = (0, import_react57.useState)(false);
7395
+ const selectedOption = options?.find((o) => o.value === selectVal);
7396
+ const placeholder = selectedOption?.placeholder ?? "";
7397
+ const handleSearch = () => {
7398
+ onSearch?.({ selectValue: hideSelect ? void 0 : selectVal, inputValue: value });
7399
+ };
7400
+ const handleClear = () => {
7401
+ onChange("");
7402
+ };
7403
+ const handleKeyDown = (e) => {
7404
+ if (e.key === "Enter") {
7405
+ handleSearch();
7406
+ }
7407
+ };
7408
+ return /* @__PURE__ */ import_react57.default.createElement(
7409
+ import_joy3.Stack,
7410
+ {
7411
+ direction: "row",
7412
+ sx: {
7413
+ width: hideSelect ? "220px" : "300px",
7414
+ bgcolor: "background.surface",
7415
+ borderRadius: "sm",
7416
+ border: 1,
7417
+ borderColor: "neutral.outlinedBorder"
7418
+ }
7419
+ },
7420
+ !hideSelect && options && /* @__PURE__ */ import_react57.default.createElement(import_react57.default.Fragment, null, /* @__PURE__ */ import_react57.default.createElement(
7421
+ Select,
7422
+ {
7423
+ variant: "plain",
7424
+ size: "sm",
7425
+ color: "neutral",
7426
+ value: selectVal,
7427
+ options,
7428
+ onChange: (_, newValue) => setSelectVal(newValue),
7429
+ sx: { flex: 1, maxWidth: "110px" },
7430
+ slotProps: {
7431
+ button: {
7432
+ style: { display: "block", overflow: "hidden", textOverflow: "ellipsis", whiteSpace: "nowrap" }
7433
+ }
7434
+ }
7435
+ }
7436
+ ), /* @__PURE__ */ import_react57.default.createElement(Divider, { orientation: "vertical", sx: { height: "16px", alignSelf: "center" } })),
7437
+ /* @__PURE__ */ import_react57.default.createElement(
7438
+ Input,
7439
+ {
7440
+ variant: "plain",
7441
+ size: "sm",
7442
+ color: "neutral",
7443
+ placeholder,
7444
+ value,
7445
+ onChange: (e) => onChange(e.target.value),
7446
+ onKeyDown: handleKeyDown,
7447
+ sx: { flex: 1, minWidth: 0 },
7448
+ onMouseEnter: () => setIsHovered(true),
7449
+ onMouseLeave: () => setIsHovered(false),
7450
+ endDecorator: isHovered && value ? /* @__PURE__ */ import_react57.default.createElement(
7451
+ IconButton,
7452
+ {
7453
+ variant: "plain",
7454
+ size: "sm",
7455
+ color: "neutral",
7456
+ onMouseDown: (e) => e.preventDefault(),
7457
+ onClick: handleClear,
7458
+ "aria-label": "Clear"
7459
+ },
7460
+ /* @__PURE__ */ import_react57.default.createElement(import_CloseRounded.default, null)
7461
+ ) : void 0
7462
+ }
7463
+ ),
7464
+ /* @__PURE__ */ import_react57.default.createElement(IconButton, { variant: "plain", size: "sm", color: "neutral", onClick: handleSearch, "aria-label": "Search" }, /* @__PURE__ */ import_react57.default.createElement(import_SearchRounded.default, null))
7465
+ );
7466
+ }
7467
+ SearchBar.displayName = "SearchBar";
7468
+
7469
+ // src/components/Stepper/Stepper.tsx
7470
+ var import_react58 = __toESM(require("react"));
7449
7471
  var import_joy67 = require("@mui/joy");
7450
7472
  var import_Check = __toESM(require("@mui/icons-material/Check"));
7451
7473
  var import_framer_motion27 = require("framer-motion");
@@ -7474,7 +7496,7 @@ function Stepper(props) {
7474
7496
  stepOrientation = "horizontal"
7475
7497
  } = props;
7476
7498
  const effectiveStepOrientation = orientation === "vertical" ? "horizontal" : stepOrientation;
7477
- return /* @__PURE__ */ import_react57.default.createElement(
7499
+ return /* @__PURE__ */ import_react58.default.createElement(
7478
7500
  MotionStepper,
7479
7501
  {
7480
7502
  orientation,
@@ -7513,23 +7535,23 @@ function Stepper(props) {
7513
7535
  const completed = activeStep > i + 1;
7514
7536
  const disabled = activeStep < i + 1;
7515
7537
  const hasContent = step.label || step.extraContent;
7516
- return /* @__PURE__ */ import_react57.default.createElement(
7538
+ return /* @__PURE__ */ import_react58.default.createElement(
7517
7539
  Step,
7518
7540
  {
7519
7541
  key: `step-${i}`,
7520
- indicator: /* @__PURE__ */ import_react57.default.createElement(StepIndicator, { variant: disabled ? "outlined" : "solid", color: disabled ? "neutral" : "primary" }, completed ? /* @__PURE__ */ import_react57.default.createElement(import_Check.default, null) : step.indicatorContent),
7542
+ indicator: /* @__PURE__ */ import_react58.default.createElement(StepIndicator, { variant: disabled ? "outlined" : "solid", color: disabled ? "neutral" : "primary" }, completed ? /* @__PURE__ */ import_react58.default.createElement(import_Check.default, null) : step.indicatorContent),
7521
7543
  active,
7522
7544
  completed,
7523
7545
  disabled,
7524
7546
  orientation: effectiveStepOrientation
7525
7547
  },
7526
- hasContent && /* @__PURE__ */ import_react57.default.createElement(
7548
+ hasContent && /* @__PURE__ */ import_react58.default.createElement(
7527
7549
  Stack_default,
7528
7550
  {
7529
7551
  sx: orientation === "horizontal" && effectiveStepOrientation === "vertical" ? { alignItems: "center" } : {}
7530
7552
  },
7531
- step.label && /* @__PURE__ */ import_react57.default.createElement(Typography_default, { level: "title-sm" }, step.label),
7532
- step.extraContent && /* @__PURE__ */ import_react57.default.createElement(Typography_default, { level: "body-xs" }, step.extraContent)
7553
+ step.label && /* @__PURE__ */ import_react58.default.createElement(Typography_default, { level: "title-sm" }, step.label),
7554
+ step.extraContent && /* @__PURE__ */ import_react58.default.createElement(Typography_default, { level: "body-xs" }, step.extraContent)
7533
7555
  )
7534
7556
  );
7535
7557
  })
@@ -7538,7 +7560,7 @@ function Stepper(props) {
7538
7560
  Stepper.displayName = "Stepper";
7539
7561
 
7540
7562
  // src/components/Switch/Switch.tsx
7541
- var import_react58 = __toESM(require("react"));
7563
+ var import_react59 = __toESM(require("react"));
7542
7564
  var import_joy68 = require("@mui/joy");
7543
7565
  var import_framer_motion28 = require("framer-motion");
7544
7566
  var MotionSwitch = (0, import_framer_motion28.motion)(import_joy68.Switch);
@@ -7560,14 +7582,14 @@ var StyledThumb = (0, import_joy68.styled)(import_framer_motion28.motion.div)({
7560
7582
  right: "var(--Switch-thumbOffset)"
7561
7583
  }
7562
7584
  });
7563
- var Thumb = (props) => /* @__PURE__ */ import_react58.default.createElement(StyledThumb, { ...props, layout: true, transition: spring });
7585
+ var Thumb = (props) => /* @__PURE__ */ import_react59.default.createElement(StyledThumb, { ...props, layout: true, transition: spring });
7564
7586
  var spring = {
7565
7587
  type: "spring",
7566
7588
  stiffness: 700,
7567
7589
  damping: 30
7568
7590
  };
7569
7591
  var Switch = (props) => {
7570
- return /* @__PURE__ */ import_react58.default.createElement(
7592
+ return /* @__PURE__ */ import_react59.default.createElement(
7571
7593
  MotionSwitch,
7572
7594
  {
7573
7595
  ...props,
@@ -7581,7 +7603,7 @@ var Switch = (props) => {
7581
7603
  Switch.displayName = "Switch";
7582
7604
 
7583
7605
  // src/components/Tabs/Tabs.tsx
7584
- var import_react59 = __toESM(require("react"));
7606
+ var import_react60 = __toESM(require("react"));
7585
7607
  var import_joy69 = require("@mui/joy");
7586
7608
  var StyledTabs = (0, import_joy69.styled)(import_joy69.Tabs)(({ theme }) => ({
7587
7609
  backgroundColor: theme.palette.background.body
@@ -7597,15 +7619,15 @@ var StyledTab = (0, import_joy69.styled)(import_joy69.Tab)(({ theme }) => ({
7597
7619
  backgroundColor: theme.palette.background.body
7598
7620
  }
7599
7621
  }));
7600
- var Tab = (0, import_react59.forwardRef)(function Tab2({ startDecorator, endDecorator, children, ...props }, ref) {
7601
- return /* @__PURE__ */ import_react59.default.createElement(StyledTab, { ...props, ref }, startDecorator, children, endDecorator);
7622
+ var Tab = (0, import_react60.forwardRef)(function Tab2({ startDecorator, endDecorator, children, ...props }, ref) {
7623
+ return /* @__PURE__ */ import_react60.default.createElement(StyledTab, { ...props, ref }, startDecorator, children, endDecorator);
7602
7624
  });
7603
7625
  Tab.displayName = "Tab";
7604
7626
  var TabList = import_joy69.TabList;
7605
7627
  var TabPanel = import_joy69.TabPanel;
7606
7628
 
7607
7629
  // src/components/ThemeProvider/ThemeProvider.tsx
7608
- var import_react60 = __toESM(require("react"));
7630
+ var import_react61 = __toESM(require("react"));
7609
7631
  var import_joy70 = require("@mui/joy");
7610
7632
  var colorScheme = {
7611
7633
  palette: {
@@ -7884,6 +7906,6 @@ var defaultTheme = (0, import_joy70.extendTheme)({
7884
7906
  });
7885
7907
  function ThemeProvider(props) {
7886
7908
  const theme = props.theme || defaultTheme;
7887
- return /* @__PURE__ */ import_react60.default.createElement(import_react60.default.Fragment, null, /* @__PURE__ */ import_react60.default.createElement(import_joy70.CssVarsProvider, { theme }, /* @__PURE__ */ import_react60.default.createElement(import_joy70.CssBaseline, null), props.children));
7909
+ return /* @__PURE__ */ import_react61.default.createElement(import_react61.default.Fragment, null, /* @__PURE__ */ import_react61.default.createElement(import_joy70.CssVarsProvider, { theme }, /* @__PURE__ */ import_react61.default.createElement(import_joy70.CssBaseline, null), props.children));
7888
7910
  }
7889
7911
  ThemeProvider.displayName = "ThemeProvider";