@mamrp/components 1.0.25 → 1.0.29

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/dist/index.js CHANGED
@@ -139,7 +139,7 @@ function LicensePlate({
139
139
  readOnly = true,
140
140
  size
141
141
  }) {
142
- const theme = (0, import_material.useTheme)();
142
+ const theme2 = (0, import_material.useTheme)();
143
143
  const [open, setOpen] = (0, import_react.useState)(false);
144
144
  const [selectedValue, setSelectedValue] = (0, import_react.useState)("");
145
145
  const [inputValues, setInputValues] = (0, import_react.useState)({
@@ -266,7 +266,7 @@ function LicensePlate({
266
266
  maxLength: 2,
267
267
  placeholder: "- -",
268
268
  style: {
269
- color: theme.palette.text.primary,
269
+ color: theme2.palette.text.primary,
270
270
  width: "24px",
271
271
  textAlign: "center",
272
272
  backgroundColor: "transparent",
@@ -316,7 +316,7 @@ function LicensePlate({
316
316
  maxLength: 3,
317
317
  placeholder: "-",
318
318
  style: {
319
- color: theme.palette.text.primary,
319
+ color: theme2.palette.text.primary,
320
320
  width: "28px",
321
321
  textAlign: "center",
322
322
  backgroundColor: "transparent",
@@ -418,7 +418,7 @@ function LicensePlate({
418
418
  maxLength: 3,
419
419
  placeholder: "- - -",
420
420
  style: {
421
- color: theme.palette.text.primary,
421
+ color: theme2.palette.text.primary,
422
422
  width: "40px",
423
423
  // w-10
424
424
  textAlign: "center",
@@ -465,7 +465,7 @@ function LicensePlate({
465
465
  maxLength: 2,
466
466
  placeholder: "- -",
467
467
  style: {
468
- color: theme.palette.text.primary,
468
+ color: theme2.palette.text.primary,
469
469
  width: "24px",
470
470
  textAlign: "center",
471
471
  backgroundColor: "transparent",
@@ -765,7 +765,7 @@ function AdvancedSearchButton({
765
765
  paddingY,
766
766
  fontSize
767
767
  }) {
768
- const theme = (0, import_material4.useTheme)();
768
+ const theme2 = (0, import_material4.useTheme)();
769
769
  return /* @__PURE__ */ import_react3.default.createElement(
770
770
  import_material4.Button,
771
771
  {
@@ -775,7 +775,7 @@ function AdvancedSearchButton({
775
775
  },
776
776
  startIcon: /* @__PURE__ */ import_react3.default.createElement(AnimatedIcon, { isShowFilter }),
777
777
  sx: {
778
- color: theme.palette.text.primary ?? color,
778
+ color: theme2.palette.text.primary ?? color,
779
779
  borderRadius,
780
780
  paddingY,
781
781
  fontSize
@@ -868,7 +868,7 @@ var import_DialogActions = __toESM(require("@mui/material/DialogActions"));
868
868
  var import_DialogContent2 = __toESM(require("@mui/material/DialogContent"));
869
869
  var import_DialogTitle2 = __toESM(require("@mui/material/DialogTitle"));
870
870
  var import_material7 = require("@mui/material");
871
- var import_fa2 = require("react-icons/fa");
871
+ var import_go = require("react-icons/go");
872
872
  var import_md = require("react-icons/md");
873
873
  function ConfirmationDialog({
874
874
  open,
@@ -893,13 +893,7 @@ function ConfirmationDialog({
893
893
  alignItems: "center",
894
894
  gap: 1
895
895
  },
896
- /* @__PURE__ */ React7.createElement(
897
- import_fa2.FaRegTrashAlt,
898
- {
899
- style: { color: iconColor },
900
- size: isMobile ? 18 : 20
901
- }
902
- ),
896
+ /* @__PURE__ */ React7.createElement(import_go.GoTrash, { style: { color: iconColor }, size: isMobile ? 18 : 20 }),
903
897
  headerText
904
898
  ), /* @__PURE__ */ React7.createElement(
905
899
  import_material7.IconButton,
@@ -910,7 +904,7 @@ function ConfirmationDialog({
910
904
  position: "absolute",
911
905
  right: 8,
912
906
  top: 8,
913
- color: (theme) => theme.palette.grey[500]
907
+ color: (theme2) => theme2.palette.grey[500]
914
908
  }
915
909
  },
916
910
  /* @__PURE__ */ React7.createElement(import_md.MdClose, null)
@@ -954,7 +948,7 @@ function ConfirmationDialog({
954
948
  variant: "contained",
955
949
  color,
956
950
  sx: { minWidth: "120px" },
957
- startIcon: isLoading ? /* @__PURE__ */ React7.createElement(import_material7.CircularProgress, { sx: { color: "white" }, size: 20 }) : /* @__PURE__ */ React7.createElement(import_fa2.FaRegTrashAlt, { size: 16 })
951
+ startIcon: isLoading ? /* @__PURE__ */ React7.createElement(import_material7.CircularProgress, { sx: { color: "white" }, size: 20 }) : /* @__PURE__ */ React7.createElement(import_go.GoTrash, { size: 16 })
958
952
  },
959
953
  actionTitle
960
954
  ),
@@ -1023,7 +1017,7 @@ var TimePickerComponent = ({
1023
1017
  autoRefresh,
1024
1018
  disabled = false
1025
1019
  }) => {
1026
- const theme = (0, import_material8.useTheme)();
1020
+ const theme2 = (0, import_material8.useTheme)();
1027
1021
  const initialHour = value ? parseInt(value.split(":")[0]) : null;
1028
1022
  const initialMinute = value ? parseInt(value.split(":")[1]) : null;
1029
1023
  const [isModalOpen, setIsModalOpen] = (0, import_react6.useState)(false);
@@ -1120,7 +1114,7 @@ var TimePickerComponent = ({
1120
1114
  },
1121
1115
  InputProps: {
1122
1116
  ...!disabled && {
1123
- endAdornment: /* @__PURE__ */ React.createElement(import_material8.InputAdornment, { position: "end" }, /* @__PURE__ */ React.createElement(import_Tooltip.default, { title: "\u0627\u0646\u062A\u062E\u0627\u0628 \u0632\u0645\u0627\u0646" }, /* @__PURE__ */ React.createElement(import_material8.IconButton, { onClick: () => setIsModalOpen(true) }, /* @__PURE__ */ React.createElement(import_common.Clock, { size: 22, color: theme.palette.text.primary }))))
1117
+ endAdornment: /* @__PURE__ */ React.createElement(import_material8.InputAdornment, { position: "end" }, /* @__PURE__ */ React.createElement(import_Tooltip.default, { title: "\u0627\u0646\u062A\u062E\u0627\u0628 \u0632\u0645\u0627\u0646" }, /* @__PURE__ */ React.createElement(import_material8.IconButton, { onClick: () => setIsModalOpen(true) }, /* @__PURE__ */ React.createElement(import_common.Clock, { size: 22, color: theme2.palette.text.primary }))))
1124
1118
  }
1125
1119
  },
1126
1120
  sx: { width: fullwidth ? "100%" : "8rem" },
@@ -1154,7 +1148,7 @@ var TimePickerComponent = ({
1154
1148
  position: "absolute",
1155
1149
  right: 8,
1156
1150
  top: 8,
1157
- color: (theme2) => theme2.palette.grey[500]
1151
+ color: (theme3) => theme3.palette.grey[500]
1158
1152
  }
1159
1153
  },
1160
1154
  /* @__PURE__ */ React.createElement(import_md2.MdClose, null)
@@ -1228,7 +1222,7 @@ var import_system = require("@mui/system");
1228
1222
  var import_moment = __toESM(require("moment"));
1229
1223
  var import_react8 = require("react");
1230
1224
  var import_react_hook_form5 = require("react-hook-form");
1231
- var import_fa4 = require("react-icons/fa");
1225
+ var import_fa3 = require("react-icons/fa");
1232
1226
  var yup = __toESM(require("yup"));
1233
1227
 
1234
1228
  // src/date-picker/index.tsx
@@ -1238,7 +1232,7 @@ var import_x_date_pickers = require("@mui/x-date-pickers");
1238
1232
  var import_AdapterMomentJalaali = require("@mui/x-date-pickers/AdapterMomentJalaali");
1239
1233
  var import_dayjs = __toESM(require("dayjs"));
1240
1234
  var import_moment_jalaali = __toESM(require("moment-jalaali"));
1241
- var import_fa3 = require("moment/locale/fa");
1235
+ var import_fa2 = require("moment/locale/fa");
1242
1236
  var import_react7 = __toESM(require("react"));
1243
1237
  var import_react_hook_form4 = require("react-hook-form");
1244
1238
  import_moment_jalaali.default.locale("fa");
@@ -1495,7 +1489,7 @@ function DateFilterRange({ FromDate, ToDate }) {
1495
1489
  onClick: () => handleDate("forward", "time"),
1496
1490
  disabled: isNextDisabled || isNextDisabledTime
1497
1491
  },
1498
- /* @__PURE__ */ React.createElement(import_fa4.FaChevronRight, { size: 30 })
1492
+ /* @__PURE__ */ React.createElement(import_fa3.FaChevronRight, { size: 30 })
1499
1493
  )), /* @__PURE__ */ React.createElement(import_Grid2.default, { size: { xs: 7, sm: 8, md: 8, lg: 6 } }, /* @__PURE__ */ React.createElement(date_picker_default, { name: "time", control, label: "\u062A\u0627\u0631\u06CC\u062E \u0627\u0632", maxDate: (0, import_moment.default)(watch("time2")), align: "center", persian: true, clear: false, size: isSmMobile ? "small" : "medium" })), /* @__PURE__ */ React.createElement(import_Grid2.default, { size: 2, display: "flex", justifyContent: "end" }, /* @__PURE__ */ React.createElement(
1500
1494
  import_Button2.default,
1501
1495
  {
@@ -1507,7 +1501,7 @@ function DateFilterRange({ FromDate, ToDate }) {
1507
1501
  },
1508
1502
  onClick: () => handleDate("backward", "time")
1509
1503
  },
1510
- /* @__PURE__ */ React.createElement(import_fa4.FaChevronLeft, { size: 30 })
1504
+ /* @__PURE__ */ React.createElement(import_fa3.FaChevronLeft, { size: 30 })
1511
1505
  ))), /* @__PURE__ */ React.createElement(import_Grid2.default, { container: true, size: 12, width: !isMobile ? "50%" : "100%", alignItems: "center", justifyContent: "space-between" }, /* @__PURE__ */ React.createElement(import_Grid2.default, { size: 2, justifyContent: "start" }, /* @__PURE__ */ React.createElement(
1512
1506
  import_Button2.default,
1513
1507
  {
@@ -1520,7 +1514,7 @@ function DateFilterRange({ FromDate, ToDate }) {
1520
1514
  onClick: () => handleDate("forward", "time2"),
1521
1515
  disabled: isNextDisabledTime2
1522
1516
  },
1523
- /* @__PURE__ */ React.createElement(import_fa4.FaChevronRight, { size: 30 })
1517
+ /* @__PURE__ */ React.createElement(import_fa3.FaChevronRight, { size: 30 })
1524
1518
  )), /* @__PURE__ */ React.createElement(import_Grid2.default, { size: { xs: 7, sm: 8, md: 8, lg: 6 } }, /* @__PURE__ */ React.createElement(date_picker_default, { name: "time2", control, label: "\u062A\u0627\u0631\u06CC\u062E \u062A\u0627", minDate: (0, import_moment.default)(watch("time")), persian: true, align: "center", clear: false, size: isSmMobile ? "small" : "medium" })), /* @__PURE__ */ React.createElement(import_Grid2.default, { size: 2, display: "flex", justifyContent: "end" }, /* @__PURE__ */ React.createElement(
1525
1519
  import_Button2.default,
1526
1520
  {
@@ -1533,7 +1527,7 @@ function DateFilterRange({ FromDate, ToDate }) {
1533
1527
  onClick: () => handleDate("backward", "time2"),
1534
1528
  disabled: isLastDisabledTime
1535
1529
  },
1536
- /* @__PURE__ */ React.createElement(import_fa4.FaChevronLeft, { size: 30 })
1530
+ /* @__PURE__ */ React.createElement(import_fa3.FaChevronLeft, { size: 30 })
1537
1531
  )))), /* @__PURE__ */ React.createElement(import_Grid2.default, { container: true, size: 12 }, /* @__PURE__ */ React.createElement(import_Grid2.default, { size: 12 })));
1538
1532
  }
1539
1533
 
@@ -1546,7 +1540,7 @@ var import_moment2 = __toESM(require("moment"));
1546
1540
  var import_react9 = __toESM(require("react"));
1547
1541
  var import_react10 = require("react");
1548
1542
  var import_react_hook_form6 = require("react-hook-form");
1549
- var import_fa5 = require("react-icons/fa");
1543
+ var import_fa4 = require("react-icons/fa");
1550
1544
  var yup2 = __toESM(require("yup"));
1551
1545
  var nowUTC2 = import_moment2.default.utc();
1552
1546
  var dateTimeWithIranTime3 = nowUTC2;
@@ -1600,7 +1594,7 @@ function DateFilter({ setHandler }) {
1600
1594
  onClick: () => handleDate("forward"),
1601
1595
  disabled: isNextDisabled
1602
1596
  },
1603
- /* @__PURE__ */ import_react9.default.createElement(import_fa5.FaChevronRight, { size: 30 })
1597
+ /* @__PURE__ */ import_react9.default.createElement(import_fa4.FaChevronRight, { size: 30 })
1604
1598
  )), /* @__PURE__ */ import_react9.default.createElement(import_Grid22.default, { size: { xs: 7, sm: 8, md: 8, lg: 6 } }, /* @__PURE__ */ import_react9.default.createElement(date_picker_default, { name: "time", control, label: "", persian: true, clear: false, align: "center", size: isSmMobile ? "small" : "medium" })), /* @__PURE__ */ import_react9.default.createElement(import_Grid22.default, { size: 2, display: "flex", justifyContent: "end" }, /* @__PURE__ */ import_react9.default.createElement(
1605
1599
  import_Button3.default,
1606
1600
  {
@@ -1612,7 +1606,7 @@ function DateFilter({ setHandler }) {
1612
1606
  },
1613
1607
  onClick: () => handleDate("backward")
1614
1608
  },
1615
- /* @__PURE__ */ import_react9.default.createElement(import_fa5.FaChevronLeft, { size: 30 })
1609
+ /* @__PURE__ */ import_react9.default.createElement(import_fa4.FaChevronLeft, { size: 30 })
1616
1610
  )))), /* @__PURE__ */ import_react9.default.createElement(import_Grid22.default, { container: true, size: 12 }, /* @__PURE__ */ import_react9.default.createElement(import_Grid22.default, { size: 12 })));
1617
1611
  }
1618
1612
 
@@ -2613,7 +2607,7 @@ function ConfirmationDialog2({
2613
2607
  position: "absolute",
2614
2608
  right: 8,
2615
2609
  top: 8,
2616
- color: (theme) => theme.palette.grey[500]
2610
+ color: (theme2) => theme2.palette.grey[500]
2617
2611
  }
2618
2612
  },
2619
2613
  /* @__PURE__ */ React14.createElement(import_md3.MdClose, null)
@@ -2666,7 +2660,7 @@ function NoResult({
2666
2660
  description,
2667
2661
  sx = {}
2668
2662
  }) {
2669
- const theme = (0, import_material15.useTheme)();
2663
+ const theme2 = (0, import_material15.useTheme)();
2670
2664
  return /* @__PURE__ */ import_react16.default.createElement(
2671
2665
  import_material15.Card,
2672
2666
  {
@@ -2674,7 +2668,7 @@ function NoResult({
2674
2668
  width: "100%",
2675
2669
  minWidth: 300,
2676
2670
  borderRadius: "12px",
2677
- border: `1px solid ${theme.palette.secondary.light}`
2671
+ border: `1px solid ${theme2.palette.secondary.light}`
2678
2672
  }
2679
2673
  },
2680
2674
  /* @__PURE__ */ import_react16.default.createElement(
@@ -2707,7 +2701,7 @@ var import_material16 = require("@mui/material");
2707
2701
  var import_Stack = __toESM(require("@mui/material/Stack"));
2708
2702
  var import_system5 = require("@mui/system");
2709
2703
  var React16 = __toESM(require("react"));
2710
- var import_fa6 = require("react-icons/fa");
2704
+ var import_fa5 = require("react-icons/fa");
2711
2705
  function PaginationList({
2712
2706
  currentPage,
2713
2707
  setCurrentPage,
@@ -2751,7 +2745,7 @@ function PaginationList({
2751
2745
  justifyContent: "center"
2752
2746
  },
2753
2747
  size: "large",
2754
- startIcon: /* @__PURE__ */ React16.createElement(import_fa6.FaChevronRight, null)
2748
+ startIcon: /* @__PURE__ */ React16.createElement(import_fa5.FaChevronRight, null)
2755
2749
  },
2756
2750
  "\u0642\u0628\u0644\u06CC",
2757
2751
  " "
@@ -2792,7 +2786,7 @@ function PaginationList({
2792
2786
  justifyContent: "center"
2793
2787
  },
2794
2788
  size: "large",
2795
- endIcon: /* @__PURE__ */ React16.createElement(import_fa6.FaChevronLeft, null)
2789
+ endIcon: /* @__PURE__ */ React16.createElement(import_fa5.FaChevronLeft, null)
2796
2790
  },
2797
2791
  "\u0628\u0639\u062F\u06CC",
2798
2792
  " "
@@ -2808,46 +2802,87 @@ var import_RadioGroup = __toESM(require("@mui/material/RadioGroup"));
2808
2802
  var import_FormControlLabel = __toESM(require("@mui/material/FormControlLabel"));
2809
2803
  var import_FormControl = __toESM(require("@mui/material/FormControl"));
2810
2804
  var import_FormLabel = __toESM(require("@mui/material/FormLabel"));
2811
- function RadioButton({ name, label, options, control }) {
2812
- return /* @__PURE__ */ React17.createElement(React17.Fragment, null, /* @__PURE__ */ React17.createElement(import_FormControl.default, { sx: {
2813
- display: "flex",
2814
- flexDirection: "row",
2815
- alignItems: "center",
2816
- justifyContent: "start"
2817
- } }, /* @__PURE__ */ React17.createElement(import_FormLabel.default, { id: `${name}-label` }, label), /* @__PURE__ */ React17.createElement(
2818
- import_react_hook_form10.Controller,
2805
+ var import_material17 = require("@mui/material");
2806
+ var import_theme = __toESM(require("@mamrp/layout/theme"));
2807
+ var import_system6 = require("@mui/system");
2808
+ function RadioButton({
2809
+ name,
2810
+ label,
2811
+ options,
2812
+ control,
2813
+ align = "start",
2814
+ disabledBoarder,
2815
+ direction = "row"
2816
+ }) {
2817
+ return /* @__PURE__ */ React17.createElement(React17.Fragment, null, /* @__PURE__ */ React17.createElement(
2818
+ import_FormControl.default,
2819
2819
  {
2820
- name,
2821
- control,
2822
- render: ({ field }) => /* @__PURE__ */ React17.createElement(
2823
- import_RadioGroup.default,
2824
- {
2825
- ...field,
2826
- "aria-labelledby": `${name}-label`,
2827
- value: field.value,
2828
- sx: {
2829
- display: "flex",
2830
- flexDirection: "row",
2831
- marginLeft: 5
2832
- }
2833
- },
2834
- options.map((option) => /* @__PURE__ */ React17.createElement(
2835
- import_FormControlLabel.default,
2820
+ sx: {
2821
+ display: "flex",
2822
+ flexDirection: direction,
2823
+ alignItems: "center",
2824
+ justifyContent: "start"
2825
+ }
2826
+ },
2827
+ /* @__PURE__ */ React17.createElement(
2828
+ import_react_hook_form10.Controller,
2829
+ {
2830
+ name,
2831
+ control,
2832
+ render: ({ field, fieldState: { error } }) => /* @__PURE__ */ React17.createElement(import_system6.Box, { display: "flex", width: "100%", flexDirection: "column" }, label && /* @__PURE__ */ React17.createElement(
2833
+ import_FormLabel.default,
2836
2834
  {
2837
- key: option.value,
2838
- value: option.value,
2839
- control: /* @__PURE__ */ React17.createElement(import_Radio.default, { id: option.id }),
2840
- label: option.name
2841
- }
2842
- ))
2843
- )
2844
- }
2845
- )));
2835
+ id: `${name}-label`,
2836
+ sx: {
2837
+ position: "absolute",
2838
+ top: -10,
2839
+ left: 15,
2840
+ px: 0.5,
2841
+ // به‌جای background رنگی، این باعث میشه کمی فضا بدیم
2842
+ backgroundColor: "background.paper",
2843
+ // استفاده از theme برای همخوانی با زمینه
2844
+ color: error?.message ? import_theme.default.CustomComponents.RadioButton.errorColor : import_theme.default.CustomComponents.RadioButton.textColor,
2845
+ fontSize: 15,
2846
+ zIndex: 1
2847
+ }
2848
+ },
2849
+ label
2850
+ ), /* @__PURE__ */ React17.createElement(
2851
+ import_RadioGroup.default,
2852
+ {
2853
+ ...field,
2854
+ "aria-labelledby": `${name}-label`,
2855
+ value: field.value,
2856
+ sx: {
2857
+ width: "100%",
2858
+ p: 0.8,
2859
+ px: 1,
2860
+ borderRadius: 3,
2861
+ display: "flex",
2862
+ justifyContent: align,
2863
+ flexDirection: "row",
2864
+ border: disabledBoarder ? "" : `${import_theme.default.CustomComponents.RadioButton.borderSize}px solid`,
2865
+ borderColor: error?.message ? import_theme.default.CustomComponents.RadioButton.errorColor : import_theme.default.CustomComponents.RadioButton.borderColor
2866
+ }
2867
+ },
2868
+ options.map((option) => /* @__PURE__ */ React17.createElement(
2869
+ import_FormControlLabel.default,
2870
+ {
2871
+ key: option.value,
2872
+ value: option.value,
2873
+ control: /* @__PURE__ */ React17.createElement(import_Radio.default, { id: option.id }),
2874
+ label: option.name
2875
+ }
2876
+ ))
2877
+ ), error?.message && /* @__PURE__ */ React17.createElement(import_material17.Typography, { color: "error", fontSize: import_theme.default.CustomComponents.RadioButton.errorFontSize, ml: 2 }, error?.message))
2878
+ }
2879
+ )
2880
+ ));
2846
2881
  }
2847
2882
 
2848
2883
  // src/selector/index.tsx
2849
2884
  var import_md4 = require("react-icons/md");
2850
- var import_material17 = require("@mui/material");
2885
+ var import_material18 = require("@mui/material");
2851
2886
  var import_react17 = __toESM(require("react"));
2852
2887
  var backendResponse = {
2853
2888
  value: {
@@ -2917,7 +2952,7 @@ var NestedSelect = () => {
2917
2952
  (child) => selectedItem?.id === child.id
2918
2953
  );
2919
2954
  return /* @__PURE__ */ import_react17.default.createElement("div", { key: item.id }, /* @__PURE__ */ import_react17.default.createElement(
2920
- import_material17.MenuItem,
2955
+ import_material18.MenuItem,
2921
2956
  {
2922
2957
  onClick: (e) => {
2923
2958
  e.stopPropagation();
@@ -2926,10 +2961,10 @@ var NestedSelect = () => {
2926
2961
  disabled: isAnyChildSelected,
2927
2962
  sx: { pl: level * 2 }
2928
2963
  },
2929
- /* @__PURE__ */ import_react17.default.createElement(import_material17.Checkbox, { checked: isParentSelected }),
2930
- /* @__PURE__ */ import_react17.default.createElement(import_material17.ListItemText, { primary: item.title }),
2964
+ /* @__PURE__ */ import_react17.default.createElement(import_material18.Checkbox, { checked: isParentSelected }),
2965
+ /* @__PURE__ */ import_react17.default.createElement(import_material18.ListItemText, { primary: item.title }),
2931
2966
  item.children && item.children.length > 0 && /* @__PURE__ */ import_react17.default.createElement(
2932
- import_material17.IconButton,
2967
+ import_material18.IconButton,
2933
2968
  {
2934
2969
  size: "small",
2935
2970
  onClick: (e) => {
@@ -2939,11 +2974,11 @@ var NestedSelect = () => {
2939
2974
  },
2940
2975
  openMenus[item.id] ? /* @__PURE__ */ import_react17.default.createElement(import_md4.MdKeyboardArrowLeft, null) : /* @__PURE__ */ import_react17.default.createElement(import_md4.MdKeyboardArrowRight, null)
2941
2976
  )
2942
- ), item.children && item.children.length > 0 && /* @__PURE__ */ import_react17.default.createElement(import_material17.Collapse, { in: openMenus[item.id], timeout: "auto", unmountOnExit: true }, /* @__PURE__ */ import_react17.default.createElement(import_material17.List, { component: "div", disablePadding: true }, renderMenuItems(item.children, level + 1))));
2977
+ ), item.children && item.children.length > 0 && /* @__PURE__ */ import_react17.default.createElement(import_material18.Collapse, { in: openMenus[item.id], timeout: "auto", unmountOnExit: true }, /* @__PURE__ */ import_react17.default.createElement(import_material18.List, { component: "div", disablePadding: true }, renderMenuItems(item.children, level + 1))));
2943
2978
  });
2944
2979
  };
2945
- return /* @__PURE__ */ import_react17.default.createElement(import_material17.FormControl, { fullWidth: true, variant: "outlined" }, /* @__PURE__ */ import_react17.default.createElement(import_material17.InputLabel, { shrink: true }, "\u062F\u0633\u062A\u0647 \u0628\u0646\u062F\u06CC *"), /* @__PURE__ */ import_react17.default.createElement(
2946
- import_material17.Select,
2980
+ return /* @__PURE__ */ import_react17.default.createElement(import_material18.FormControl, { fullWidth: true, variant: "outlined" }, /* @__PURE__ */ import_react17.default.createElement(import_material18.InputLabel, { shrink: true }, "\u062F\u0633\u062A\u0647 \u0628\u0646\u062F\u06CC *"), /* @__PURE__ */ import_react17.default.createElement(
2981
+ import_material18.Select,
2947
2982
  {
2948
2983
  label: "\u062F\u0633\u062A\u0647 \u0628\u0646\u062F\u06CC *",
2949
2984
  value: selectedItem?.id || "",
@@ -2951,7 +2986,7 @@ var NestedSelect = () => {
2951
2986
  open: menuOpen,
2952
2987
  onOpen: () => setMenuOpen(true),
2953
2988
  onClose: () => setMenuOpen(false),
2954
- renderValue: (selected) => selectedItem ? /* @__PURE__ */ import_react17.default.createElement(import_material17.Typography, null, selectedItem.title) : " "
2989
+ renderValue: (selected) => selectedItem ? /* @__PURE__ */ import_react17.default.createElement(import_material18.Typography, null, selectedItem.title) : " "
2955
2990
  },
2956
2991
  renderMenuItems(backendResponse.value.data)
2957
2992
  ));
@@ -2959,10 +2994,10 @@ var NestedSelect = () => {
2959
2994
  var selector_default = NestedSelect;
2960
2995
 
2961
2996
  // src/spinner/sonar/index.tsx
2962
- var import_material18 = require("@mui/material");
2963
- var import_system6 = require("@mui/system");
2997
+ var import_material19 = require("@mui/material");
2998
+ var import_system7 = require("@mui/system");
2964
2999
  var import_react18 = __toESM(require("react"));
2965
- var radarAnimation = import_system6.keyframes`
3000
+ var radarAnimation = import_system7.keyframes`
2966
3001
  0% {
2967
3002
  background: inherit;
2968
3003
  transform: scale(0);
@@ -2974,8 +3009,8 @@ var radarAnimation = import_system6.keyframes`
2974
3009
  }
2975
3010
  `;
2976
3011
  function SonarSpinner({ children }) {
2977
- return /* @__PURE__ */ import_react18.default.createElement(import_react18.default.Fragment, null, /* @__PURE__ */ import_react18.default.createElement(import_material18.Box, { className: "absolute w-[30px] h-[30px] rounded-full bg-white z-10 flex items-center justify-center" }, children), /* @__PURE__ */ import_react18.default.createElement(
2978
- import_material18.Box,
3012
+ return /* @__PURE__ */ import_react18.default.createElement(import_react18.default.Fragment, null, /* @__PURE__ */ import_react18.default.createElement(import_material19.Box, { className: "absolute w-[30px] h-[30px] rounded-full bg-white z-10 flex items-center justify-center" }, children), /* @__PURE__ */ import_react18.default.createElement(
3013
+ import_material19.Box,
2979
3014
  {
2980
3015
  className: "root",
2981
3016
  sx: {
@@ -2988,7 +3023,7 @@ function SonarSpinner({ children }) {
2988
3023
  }
2989
3024
  },
2990
3025
  /* @__PURE__ */ import_react18.default.createElement(
2991
- import_material18.Box,
3026
+ import_material19.Box,
2992
3027
  {
2993
3028
  className: "radar",
2994
3029
  sx: {
@@ -3006,7 +3041,7 @@ function SonarSpinner({ children }) {
3006
3041
  }
3007
3042
  },
3008
3043
  /* @__PURE__ */ import_react18.default.createElement(
3009
- import_material18.Box,
3044
+ import_material19.Box,
3010
3045
  {
3011
3046
  className: "sonar",
3012
3047
  sx: {
@@ -3020,7 +3055,7 @@ function SonarSpinner({ children }) {
3020
3055
  }
3021
3056
  ),
3022
3057
  /* @__PURE__ */ import_react18.default.createElement(
3023
- import_material18.Box,
3058
+ import_material19.Box,
3024
3059
  {
3025
3060
  className: "sonar delayed",
3026
3061
  sx: {
@@ -3070,7 +3105,7 @@ function HorizontalStepper({
3070
3105
  }
3071
3106
 
3072
3107
  // src/table/index.tsx
3073
- var import_material19 = require("@mui/material");
3108
+ var import_material20 = require("@mui/material");
3074
3109
  var import_Skeleton = __toESM(require("@mui/material/Skeleton"));
3075
3110
  var import_styles = require("@mui/material/styles");
3076
3111
  var import_x_data_grid = require("@mui/x-data-grid");
@@ -3239,7 +3274,7 @@ var Table = ({
3239
3274
  }
3240
3275
  )) : `${from} - ${!isNaN(to) ? to : "..."} \u0627\u0632 ${count !== void 0 ? count : "..."}`
3241
3276
  },
3242
- footerRowSelected: (count) => /* @__PURE__ */ import_react19.default.createElement(import_material19.Typography, null, "\u0633\u0637\u0631 \u0647\u0627\u06CC \u0627\u0646\u062A\u062E\u0627\u0628 \u0634\u062F\u0647 : ", count)
3277
+ footerRowSelected: (count) => /* @__PURE__ */ import_react19.default.createElement(import_material20.Typography, null, "\u0633\u0637\u0631 \u0647\u0627\u06CC \u0627\u0646\u062A\u062E\u0627\u0628 \u0634\u062F\u0647 : ", count)
3243
3278
  },
3244
3279
  ...rest
3245
3280
  }
@@ -3444,7 +3479,7 @@ var text_type_default = FormInputText;
3444
3479
  // src/upload-image/index.tsx
3445
3480
  var import_react23 = __toESM(require("react"));
3446
3481
  var import_react_hook_form13 = require("react-hook-form");
3447
- var import_material20 = require("@mui/material");
3482
+ var import_material21 = require("@mui/material");
3448
3483
  var import_gr = require("react-icons/gr");
3449
3484
  var import_md5 = require("react-icons/md");
3450
3485
  var import_image3 = __toESM(require("next/image"));
@@ -3551,13 +3586,13 @@ var UploadImage = ({
3551
3586
  objectFit: imageFit
3552
3587
  }
3553
3588
  ) : /* @__PURE__ */ import_react23.default.createElement(
3554
- import_material20.Stack,
3589
+ import_material21.Stack,
3555
3590
  {
3556
3591
  spacing: allowGallery ? 2 : 0,
3557
3592
  sx: { pt: allowGallery ? 2 : 0 }
3558
3593
  },
3559
3594
  /* @__PURE__ */ import_react23.default.createElement(
3560
- import_material20.Box,
3595
+ import_material21.Box,
3561
3596
  {
3562
3597
  sx: {
3563
3598
  display: "flex",
@@ -3566,11 +3601,11 @@ var UploadImage = ({
3566
3601
  gap: 1.5
3567
3602
  }
3568
3603
  },
3569
- /* @__PURE__ */ import_react23.default.createElement(import_material20.Box, { sx: { paddingBottom: "0.5rem" } }, /* @__PURE__ */ import_react23.default.createElement(import_gr.GrUpload, null)),
3604
+ /* @__PURE__ */ import_react23.default.createElement(import_material21.Box, { sx: { paddingBottom: "0.5rem" } }, /* @__PURE__ */ import_react23.default.createElement(import_gr.GrUpload, null)),
3570
3605
  placeholder
3571
3606
  ),
3572
- allowGallery && /* @__PURE__ */ import_react23.default.createElement(import_material20.Stack, { spacing: 1.5 }, /* @__PURE__ */ import_react23.default.createElement(
3573
- import_material20.Button,
3607
+ allowGallery && /* @__PURE__ */ import_react23.default.createElement(import_material21.Stack, { spacing: 1.5 }, /* @__PURE__ */ import_react23.default.createElement(
3608
+ import_material21.Button,
3574
3609
  {
3575
3610
  sx: { width: "9rem" },
3576
3611
  variant: "outlined",
@@ -3580,7 +3615,7 @@ var UploadImage = ({
3580
3615
  },
3581
3616
  "\u0628\u0627\u0631\u06AF\u0630\u0627\u0631\u06CC \u0627\u0632 \u062F\u0648\u0631\u0628\u06CC\u0646"
3582
3617
  ), /* @__PURE__ */ import_react23.default.createElement(
3583
- import_material20.Button,
3618
+ import_material21.Button,
3584
3619
  {
3585
3620
  sx: { width: "9rem" },
3586
3621
  variant: "outlined",
@@ -3631,12 +3666,12 @@ var UploadImage = ({
3631
3666
  style: { display: "none" }
3632
3667
  }
3633
3668
  ), selectedImage && /* @__PURE__ */ import_react23.default.createElement(
3634
- import_material20.Box,
3669
+ import_material21.Box,
3635
3670
  {
3636
3671
  sx: { display: "flex", justifyContent: "center", marginTop: 2 }
3637
3672
  },
3638
3673
  /* @__PURE__ */ import_react23.default.createElement(
3639
- import_material20.Button,
3674
+ import_material21.Button,
3640
3675
  {
3641
3676
  onClick: () => {
3642
3677
  setSelectedImage(null);
@@ -3655,7 +3690,7 @@ var UploadImage = ({
3655
3690
  },
3656
3691
  "\u062D\u0630\u0641 \u062A\u0635\u0648\u06CC\u0631"
3657
3692
  )
3658
- ), errors[name] && /* @__PURE__ */ import_react23.default.createElement(import_material20.Typography, { color: "error", variant: "body2", sx: { mt: 1.5, ml: 1 } }, String(errors[name]?.message || "")))
3693
+ ), errors[name] && /* @__PURE__ */ import_react23.default.createElement(import_material21.Typography, { color: "error", variant: "body2", sx: { mt: 1.5, ml: 1 } }, String(errors[name]?.message || "")))
3659
3694
  }
3660
3695
  );
3661
3696
  };
@@ -3667,13 +3702,13 @@ var import_io2 = require("react-icons/io");
3667
3702
  var import_Accordion = __toESM(require("@mui/material/Accordion"));
3668
3703
  var import_AccordionSummary = __toESM(require("@mui/material/AccordionSummary"));
3669
3704
  var import_AccordionDetails = __toESM(require("@mui/material/AccordionDetails"));
3670
- var import_material21 = require("@mui/material");
3705
+ var import_material22 = require("@mui/material");
3671
3706
  var import_react24 = require("react");
3672
3707
  function Page({
3673
3708
  data
3674
3709
  }) {
3675
- const Accordion = (0, import_styles2.styled)((props) => /* @__PURE__ */ React.createElement(import_Accordion.default, { disableGutters: true, elevation: 0, square: true, ...props }))(({ theme }) => ({
3676
- border: `1px solid ${theme.palette.divider}`,
3710
+ const Accordion = (0, import_styles2.styled)((props) => /* @__PURE__ */ React.createElement(import_Accordion.default, { disableGutters: true, elevation: 0, square: true, ...props }))(({ theme: theme2 }) => ({
3711
+ border: `1px solid ${theme2.palette.divider}`,
3677
3712
  "&:not(:last-child)": {
3678
3713
  borderBottom: 0
3679
3714
  },
@@ -3681,21 +3716,21 @@ function Page({
3681
3716
  display: "none"
3682
3717
  }
3683
3718
  }));
3684
- const AccordionSummary = (0, import_styles2.styled)((props) => /* @__PURE__ */ React.createElement(import_AccordionSummary.default, { expandIcon: /* @__PURE__ */ React.createElement(import_io2.IoIosArrowForward, null), ...props }))(({ theme }) => ({
3719
+ const AccordionSummary = (0, import_styles2.styled)((props) => /* @__PURE__ */ React.createElement(import_AccordionSummary.default, { expandIcon: /* @__PURE__ */ React.createElement(import_io2.IoIosArrowForward, null), ...props }))(({ theme: theme2 }) => ({
3685
3720
  backgroundColor: "rgba(0, 0, 0, .03)",
3686
3721
  flexDirection: "row-reverse",
3687
3722
  [`& .${import_AccordionSummary.accordionSummaryClasses.expandIconWrapper}.${import_AccordionSummary.accordionSummaryClasses.expanded}`]: {
3688
3723
  transform: "rotate(90deg)"
3689
3724
  },
3690
3725
  [`& .${import_AccordionSummary.accordionSummaryClasses.content}`]: {
3691
- marginLeft: theme.spacing(1)
3726
+ marginLeft: theme2.spacing(1)
3692
3727
  },
3693
- ...theme.applyStyles("dark", {
3728
+ ...theme2.applyStyles("dark", {
3694
3729
  backgroundColor: "rgba(255, 255, 255, .05)"
3695
3730
  })
3696
3731
  }));
3697
- const AccordionDetails = (0, import_styles2.styled)(import_AccordionDetails.default)(({ theme }) => ({
3698
- padding: theme.spacing(2),
3732
+ const AccordionDetails = (0, import_styles2.styled)(import_AccordionDetails.default)(({ theme: theme2 }) => ({
3733
+ padding: theme2.spacing(2),
3699
3734
  borderTop: "1px solid rgba(0, 0, 0, .125)"
3700
3735
  }));
3701
3736
  const [expanded, setExpanded] = (0, import_react24.useState)("");
@@ -3722,7 +3757,7 @@ function Page({
3722
3757
  }
3723
3758
  }
3724
3759
  },
3725
- /* @__PURE__ */ React.createElement(import_material21.Typography, { component: "span" }, item.title)
3760
+ /* @__PURE__ */ React.createElement(import_material22.Typography, { component: "span" }, item.title)
3726
3761
  ),
3727
3762
  /* @__PURE__ */ React.createElement(AccordionDetails, null, item.body)
3728
3763
  );
@@ -3730,22 +3765,22 @@ function Page({
3730
3765
  }
3731
3766
 
3732
3767
  // src/switch-button/index.tsx
3733
- var import_material22 = require("@mui/material");
3734
- var import_system7 = require("@mui/system");
3768
+ var import_material23 = require("@mui/material");
3769
+ var import_system8 = require("@mui/system");
3735
3770
  var import_react25 = __toESM(require("react"));
3736
3771
  var import_pi = require("react-icons/pi");
3737
- var import_material23 = require("@mui/material");
3772
+ var import_material24 = require("@mui/material");
3738
3773
  var SwitchButton = ({
3739
3774
  checked,
3740
3775
  handleChange,
3741
3776
  iconChecked,
3742
3777
  iconUnchecked
3743
3778
  }) => {
3744
- const theme = (0, import_material23.useTheme)();
3745
- const isDarkMode = theme.palette.mode === "dark";
3746
- const CustomSwitch = (0, import_system7.styled)(import_material22.Switch)(({ theme: theme2 }) => ({
3779
+ const theme2 = (0, import_material24.useTheme)();
3780
+ const isDarkMode = theme2.palette.mode === "dark";
3781
+ const CustomSwitch = (0, import_system8.styled)(import_material23.Switch)(({ theme: theme3 }) => ({
3747
3782
  "& .MuiSwitch-switchBase.Mui-checked": {
3748
- color: theme2.palette.primary.main
3783
+ color: theme3.palette.primary.main
3749
3784
  },
3750
3785
  "& .MuiSwitch-switchBase": {
3751
3786
  color: isDarkMode ? "rgba(220,220,220,1)" : "rgba(188,188,188,1)"
@@ -3756,23 +3791,23 @@ var SwitchButton = ({
3756
3791
  border: isDarkMode ? "2px solid white" : "2px solid rgba(80,80,80, 1)"
3757
3792
  }
3758
3793
  }));
3759
- const BoxContainer = (0, import_system7.styled)(import_material22.Box)(({ theme: theme2 }) => ({
3794
+ const BoxContainer = (0, import_system8.styled)(import_material23.Box)(({ theme: theme3 }) => ({
3760
3795
  display: "flex",
3761
3796
  alignItems: "center",
3762
3797
  backgroundColor: "rgba(188,188,188, 0.1)",
3763
3798
  border: "2px solid rgba(200,200,200, 1)",
3764
3799
  borderRadius: 10,
3765
3800
  transition: "all 0.3s ease",
3766
- paddingTop: theme2.spacing(0.1),
3767
- paddingBottom: theme2.spacing(0.1),
3768
- paddingLeft: theme2.spacing(1)
3801
+ paddingTop: theme3.spacing(0.1),
3802
+ paddingBottom: theme3.spacing(0.1),
3803
+ paddingLeft: theme3.spacing(1)
3769
3804
  }));
3770
- const LabelContainer = (0, import_system7.styled)("div")({
3805
+ const LabelContainer = (0, import_system8.styled)("div")({
3771
3806
  transition: "all 0.2s ease",
3772
3807
  color: isDarkMode ? "rgba(220,220,220, 1)" : "rgba(160,160,160, 1)"
3773
3808
  });
3774
3809
  return /* @__PURE__ */ import_react25.default.createElement(BoxContainer, null, /* @__PURE__ */ import_react25.default.createElement(
3775
- import_material22.FormControlLabel,
3810
+ import_material23.FormControlLabel,
3776
3811
  {
3777
3812
  control: /* @__PURE__ */ import_react25.default.createElement(
3778
3813
  CustomSwitch,
@@ -3789,7 +3824,7 @@ var SwitchButton = ({
3789
3824
  var switch_button_default = SwitchButton;
3790
3825
 
3791
3826
  // src/bascule-connection-button/index.tsx
3792
- var import_material24 = require("@mui/material");
3827
+ var import_material25 = require("@mui/material");
3793
3828
  var import_react26 = __toESM(require("react"));
3794
3829
  var import_react_hot_toast = __toESM(require("react-hot-toast"));
3795
3830
  var import_pi2 = require("react-icons/pi");
@@ -3829,7 +3864,7 @@ var ConnectToBasculeButton = ({
3829
3864
  100% { transform: translateY(0); }
3830
3865
  }
3831
3866
  `), /* @__PURE__ */ import_react26.default.createElement(
3832
- import_material24.Button,
3867
+ import_material25.Button,
3833
3868
  {
3834
3869
  variant: "contained",
3835
3870
  onClick: connectToBascule,
@@ -3837,7 +3872,7 @@ var ConnectToBasculeButton = ({
3837
3872
  sx: { minWidth: "11rem" }
3838
3873
  },
3839
3874
  /* @__PURE__ */ import_react26.default.createElement(
3840
- import_material24.Box,
3875
+ import_material25.Box,
3841
3876
  {
3842
3877
  sx: {
3843
3878
  display: "flex",