@mamrp/components 1.0.7 → 1.0.10

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.d.mts CHANGED
@@ -192,14 +192,6 @@ interface HorizontalStepperProps {
192
192
  }
193
193
  declare function HorizontalStepper({ steps, currentStep, setCurrentStep, }: HorizontalStepperProps): React.JSX.Element;
194
194
 
195
- type SwitchWithIconsProps = {
196
- checked: boolean;
197
- handleChange: (event: React__default.ChangeEvent<HTMLInputElement>) => void;
198
- iconChecked: React__default.ReactNode;
199
- iconUnchecked: React__default.ReactNode;
200
- };
201
- declare const SwitchWithIcons: React__default.FC<SwitchWithIconsProps>;
202
-
203
195
  interface StateType {
204
196
  page: number;
205
197
  pageSize: number;
@@ -282,4 +274,21 @@ declare function Page({ data, }: {
282
274
  }];
283
275
  }): React.JSX.Element;
284
276
 
285
- export { Page as Accordion, AdvancedSearchButton, ConfirmationDialog$1 as ConfirmationDialog, CustomCheckbox, CustomTimePicker, DateFilter, DateFilterRange, JalaliDatePicker$2 as DatePicker, JalaliDatePicker$1 as DateTimePicker, JalaliDateTimeRangePicker as DateTimeRangePicker, FormInputNumber, FormInputText, HorizontalStepper, LicensePlate, JalaliDatePicker as MobileDateTimePicker, ConfirmationDialog as Modal, NestedSelect as NestedSelectort, NoResult, PaginationList, RadioButton, SearchLicensePlate, MultipleSelectChip as Selector, SkeletonCard, SonarSpinner, SwitchWithIcons as SwitchButton, Table, UploadImage };
277
+ type SwitchButtonProps = {
278
+ checked: boolean;
279
+ handleChange: (event: React__default.ChangeEvent<HTMLInputElement>) => void;
280
+ iconChecked?: React__default.ReactNode;
281
+ iconUnchecked?: React__default.ReactNode;
282
+ };
283
+ declare const SwitchButton: React__default.FC<SwitchButtonProps>;
284
+
285
+ type ConnectToBasculeButtonProps = {
286
+ baudRate: number;
287
+ dataBits?: number;
288
+ stopBits?: number;
289
+ parity?: "none" | "even" | "odd";
290
+ flowControl?: "none" | "hardware";
291
+ };
292
+ declare const ConnectToBasculeButton: React__default.FC<ConnectToBasculeButtonProps>;
293
+
294
+ export { Page as Accordion, AdvancedSearchButton, ConfirmationDialog$1 as ConfirmationDialog, ConnectToBasculeButton, CustomCheckbox, CustomTimePicker, DateFilter, DateFilterRange, JalaliDatePicker$2 as DatePicker, JalaliDatePicker$1 as DateTimePicker, JalaliDateTimeRangePicker as DateTimeRangePicker, FormInputNumber, FormInputText, HorizontalStepper, LicensePlate, JalaliDatePicker as MobileDateTimePicker, ConfirmationDialog as Modal, NestedSelect as NestedSelectort, NoResult, PaginationList, RadioButton, SearchLicensePlate, MultipleSelectChip as Selector, SkeletonCard, SonarSpinner, SwitchButton, Table, UploadImage };
package/dist/index.d.ts CHANGED
@@ -192,14 +192,6 @@ interface HorizontalStepperProps {
192
192
  }
193
193
  declare function HorizontalStepper({ steps, currentStep, setCurrentStep, }: HorizontalStepperProps): React.JSX.Element;
194
194
 
195
- type SwitchWithIconsProps = {
196
- checked: boolean;
197
- handleChange: (event: React__default.ChangeEvent<HTMLInputElement>) => void;
198
- iconChecked: React__default.ReactNode;
199
- iconUnchecked: React__default.ReactNode;
200
- };
201
- declare const SwitchWithIcons: React__default.FC<SwitchWithIconsProps>;
202
-
203
195
  interface StateType {
204
196
  page: number;
205
197
  pageSize: number;
@@ -282,4 +274,21 @@ declare function Page({ data, }: {
282
274
  }];
283
275
  }): React.JSX.Element;
284
276
 
285
- export { Page as Accordion, AdvancedSearchButton, ConfirmationDialog$1 as ConfirmationDialog, CustomCheckbox, CustomTimePicker, DateFilter, DateFilterRange, JalaliDatePicker$2 as DatePicker, JalaliDatePicker$1 as DateTimePicker, JalaliDateTimeRangePicker as DateTimeRangePicker, FormInputNumber, FormInputText, HorizontalStepper, LicensePlate, JalaliDatePicker as MobileDateTimePicker, ConfirmationDialog as Modal, NestedSelect as NestedSelectort, NoResult, PaginationList, RadioButton, SearchLicensePlate, MultipleSelectChip as Selector, SkeletonCard, SonarSpinner, SwitchWithIcons as SwitchButton, Table, UploadImage };
277
+ type SwitchButtonProps = {
278
+ checked: boolean;
279
+ handleChange: (event: React__default.ChangeEvent<HTMLInputElement>) => void;
280
+ iconChecked?: React__default.ReactNode;
281
+ iconUnchecked?: React__default.ReactNode;
282
+ };
283
+ declare const SwitchButton: React__default.FC<SwitchButtonProps>;
284
+
285
+ type ConnectToBasculeButtonProps = {
286
+ baudRate: number;
287
+ dataBits?: number;
288
+ stopBits?: number;
289
+ parity?: "none" | "even" | "odd";
290
+ flowControl?: "none" | "hardware";
291
+ };
292
+ declare const ConnectToBasculeButton: React__default.FC<ConnectToBasculeButtonProps>;
293
+
294
+ export { Page as Accordion, AdvancedSearchButton, ConfirmationDialog$1 as ConfirmationDialog, ConnectToBasculeButton, CustomCheckbox, CustomTimePicker, DateFilter, DateFilterRange, JalaliDatePicker$2 as DatePicker, JalaliDatePicker$1 as DateTimePicker, JalaliDateTimeRangePicker as DateTimeRangePicker, FormInputNumber, FormInputText, HorizontalStepper, LicensePlate, JalaliDatePicker as MobileDateTimePicker, ConfirmationDialog as Modal, NestedSelect as NestedSelectort, NoResult, PaginationList, RadioButton, SearchLicensePlate, MultipleSelectChip as Selector, SkeletonCard, SonarSpinner, SwitchButton, Table, UploadImage };
package/dist/index.js CHANGED
@@ -33,6 +33,7 @@ __export(src_exports, {
33
33
  Accordion: () => Page,
34
34
  AdvancedSearchButton: () => AdvancedSearchButton,
35
35
  ConfirmationDialog: () => ConfirmationDialog,
36
+ ConnectToBasculeButton: () => bascule_connection_button_default,
36
37
  CustomCheckbox: () => CustomCheckbox,
37
38
  CustomTimePicker: () => CustomTimePicker,
38
39
  DateFilter: () => DateFilter,
@@ -2991,88 +2992,12 @@ function HorizontalStepper({
2991
2992
  )))));
2992
2993
  }
2993
2994
 
2994
- // src/switch-button/index.tsx
2995
- var import_material19 = require("@mui/material");
2996
- var import_system7 = require("@mui/system");
2997
- var import_react19 = __toESM(require("react"));
2998
- var CustomSwitch = (0, import_system7.styled)(import_material19.Switch)(({ theme }) => ({
2999
- "& .MuiSwitch-switchBase.Mui-checked": {
3000
- color: theme.palette.primary.main
3001
- },
3002
- "& .MuiSwitch-switchBase": {
3003
- color: "#757575"
3004
- },
3005
- "& .MuiSwitch-track": {
3006
- backgroundColor: "#E0E0E0"
3007
- },
3008
- "& .MuiSwitch-track.Mui-checked": {
3009
- backgroundColor: theme.palette.primary.light
3010
- }
3011
- }));
3012
- var BoxContainer = (0, import_system7.styled)(import_material19.Box)(({ theme }) => ({
3013
- display: "flex",
3014
- alignItems: "center",
3015
- padding: "5px",
3016
- backgroundColor: "#fafafa",
3017
- borderRadius: "10px",
3018
- transition: "all 0.3s ease",
3019
- "&:hover": {
3020
- backgroundColor: theme.palette.action.hover
3021
- },
3022
- // Conditionally apply smaller padding for mobile devices
3023
- "@media (max-width:700px)": {
3024
- padding: "0px"
3025
- // Smaller padding for mobile
3026
- }
3027
- }));
3028
- var LabelContainer = (0, import_system7.styled)("div")({
3029
- display: "flex",
3030
- alignItems: "center",
3031
- justifyContent: "center",
3032
- fontSize: "16px",
3033
- fontWeight: "100",
3034
- color: "#333",
3035
- marginLeft: "8px",
3036
- transition: "all 0.2s ease",
3037
- // Conditionally apply smaller font size and margin for mobile devices
3038
- "@media (max-width:700px)": {
3039
- fontSize: "14px",
3040
- // Smaller font size for mobile
3041
- marginLeft: "2px",
3042
- // Smaller margin for mobile
3043
- marginRight: "0px"
3044
- // Smaller
3045
- }
3046
- });
3047
- var SwitchWithIcons = ({
3048
- checked,
3049
- handleChange,
3050
- iconChecked,
3051
- iconUnchecked
3052
- }) => {
3053
- return /* @__PURE__ */ import_react19.default.createElement(BoxContainer, null, /* @__PURE__ */ import_react19.default.createElement(
3054
- import_material19.FormControlLabel,
3055
- {
3056
- control: /* @__PURE__ */ import_react19.default.createElement(
3057
- CustomSwitch,
3058
- {
3059
- checked,
3060
- onChange: handleChange,
3061
- name: "switch"
3062
- }
3063
- ),
3064
- label: /* @__PURE__ */ import_react19.default.createElement(LabelContainer, null, checked ? iconChecked ? iconChecked : /* @__PURE__ */ import_react19.default.createElement("div", { style: { fontSize: 22, color: "#4CAF50" } }, "\u2714") : iconUnchecked ? iconUnchecked : /* @__PURE__ */ import_react19.default.createElement("div", { style: { fontSize: 20, color: "#757575" } }, "\u2718"))
3065
- }
3066
- ));
3067
- };
3068
- var switch_button_default = SwitchWithIcons;
3069
-
3070
2995
  // src/table/index.tsx
3071
- var import_material20 = require("@mui/material");
2996
+ var import_material19 = require("@mui/material");
3072
2997
  var import_Skeleton = __toESM(require("@mui/material/Skeleton"));
3073
2998
  var import_styles = require("@mui/material/styles");
3074
2999
  var import_x_data_grid = require("@mui/x-data-grid");
3075
- var import_react20 = __toESM(require("react"));
3000
+ var import_react19 = __toESM(require("react"));
3076
3001
  var ScrollableContainer = (0, import_styles.styled)("div")({
3077
3002
  width: "100%",
3078
3003
  overflowX: "auto"
@@ -3098,7 +3023,7 @@ var Table = ({
3098
3023
  fontSize,
3099
3024
  ...rest
3100
3025
  }) => {
3101
- const [sortModel, setSortModel] = import_react20.default.useState([]);
3026
+ const [sortModel, setSortModel] = import_react19.default.useState([]);
3102
3027
  const handleSetQueryOptions = (options) => {
3103
3028
  if (!Array.isArray(options)) return;
3104
3029
  const formattedOptions = options.reduce((acc, item) => {
@@ -3108,7 +3033,7 @@ var Table = ({
3108
3033
  }, {});
3109
3034
  setsortQuery && setsortQuery(formattedOptions);
3110
3035
  };
3111
- (0, import_react20.useEffect)(() => {
3036
+ (0, import_react19.useEffect)(() => {
3112
3037
  if (sortQuery && Object.keys(sortQuery).length > 0) {
3113
3038
  const queryKey = Object.keys(sortQuery)[0];
3114
3039
  if (sortFieldMapping) {
@@ -3126,7 +3051,7 @@ var Table = ({
3126
3051
  setSortModel([]);
3127
3052
  }
3128
3053
  }, [sortQuery]);
3129
- const handleSortModelChange = import_react20.default.useCallback(
3054
+ const handleSortModelChange = import_react19.default.useCallback(
3130
3055
  (sortModel2) => {
3131
3056
  handleSetQueryOptions(
3132
3057
  sortModel2.map((item) => ({
@@ -3166,7 +3091,7 @@ var Table = ({
3166
3091
  // Connect paginationModel to DataGrid
3167
3092
  }
3168
3093
  };
3169
- return /* @__PURE__ */ import_react20.default.createElement(ScrollableContainer, null, /* @__PURE__ */ import_react20.default.createElement(
3094
+ return /* @__PURE__ */ import_react19.default.createElement(ScrollableContainer, null, /* @__PURE__ */ import_react19.default.createElement(
3170
3095
  import_x_data_grid.DataGrid,
3171
3096
  {
3172
3097
  rows,
@@ -3211,14 +3136,14 @@ var Table = ({
3211
3136
  noRowsLabel: "\u0647\u06CC\u0686 \u062F\u0627\u062F\u0647\u200C\u0627\u06CC \u06CC\u0627\u0641\u062A \u0646\u0634\u062F!",
3212
3137
  noResultsOverlayLabel: "\u0647\u06CC\u0686 \u062F\u0627\u062F\u0647\u200C\u0627\u06CC \u06CC\u0627\u0641\u062A \u0646\u0634\u062F!",
3213
3138
  MuiTablePagination: {
3214
- labelDisplayedRows: ({ from, to, count }) => loading ? /* @__PURE__ */ import_react20.default.createElement(import_react20.default.Fragment, null, /* @__PURE__ */ import_react20.default.createElement(
3139
+ labelDisplayedRows: ({ from, to, count }) => loading ? /* @__PURE__ */ import_react19.default.createElement(import_react19.default.Fragment, null, /* @__PURE__ */ import_react19.default.createElement(
3215
3140
  import_Skeleton.default,
3216
3141
  {
3217
3142
  variant: "text",
3218
3143
  width: 30,
3219
3144
  style: { display: "inline-block" }
3220
3145
  }
3221
- ), " ", /* @__PURE__ */ import_react20.default.createElement(
3146
+ ), " ", /* @__PURE__ */ import_react19.default.createElement(
3222
3147
  import_Skeleton.default,
3223
3148
  {
3224
3149
  variant: "text",
@@ -3227,7 +3152,7 @@ var Table = ({
3227
3152
  }
3228
3153
  )) : `${from} - ${!isNaN(to) ? to : "..."} \u0627\u0632 ${count !== void 0 ? count : "..."}`
3229
3154
  },
3230
- footerRowSelected: (count) => /* @__PURE__ */ import_react20.default.createElement(import_material20.Typography, null, "\u0633\u0637\u0631 \u0647\u0627\u06CC \u0627\u0646\u062A\u062E\u0627\u0628 \u0634\u062F\u0647 : ", count)
3155
+ 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)
3231
3156
  },
3232
3157
  ...rest
3233
3158
  }
@@ -3237,12 +3162,12 @@ var table_default = Table;
3237
3162
 
3238
3163
  // src/text-field/number-type/index.tsx
3239
3164
  var import_TextField2 = __toESM(require("@mui/material/TextField"));
3240
- var import_react21 = require("react");
3165
+ var import_react20 = require("react");
3241
3166
  var import_react_hook_form11 = require("react-hook-form");
3242
3167
  var import_react_number_format = require("react-number-format");
3243
3168
  var import_CircularProgress2 = __toESM(require("@mui/material/CircularProgress"));
3244
3169
  var import_InputAdornment = __toESM(require("@mui/material/InputAdornment"));
3245
- var import_react22 = __toESM(require("react"));
3170
+ var import_react21 = __toESM(require("react"));
3246
3171
  var FormInputNumber = ({
3247
3172
  name,
3248
3173
  control,
@@ -3260,13 +3185,13 @@ var FormInputNumber = ({
3260
3185
  decimalScale = 2,
3261
3186
  ...rest
3262
3187
  }) => {
3263
- return /* @__PURE__ */ import_react22.default.createElement(
3188
+ return /* @__PURE__ */ import_react21.default.createElement(
3264
3189
  import_react_hook_form11.Controller,
3265
3190
  {
3266
3191
  rules,
3267
3192
  name,
3268
3193
  control,
3269
- render: ({ field: { onChange, value, ref }, fieldState: { error } }) => /* @__PURE__ */ import_react22.default.createElement(
3194
+ render: ({ field: { onChange, value, ref }, fieldState: { error } }) => /* @__PURE__ */ import_react21.default.createElement(
3270
3195
  import_TextField2.default,
3271
3196
  {
3272
3197
  disabled: isLoading,
@@ -3306,7 +3231,7 @@ var FormInputNumber = ({
3306
3231
  maxLength,
3307
3232
  decimalScale
3308
3233
  },
3309
- endAdornment: isLoading ? /* @__PURE__ */ import_react22.default.createElement(import_InputAdornment.default, { position: "end" }, /* @__PURE__ */ import_react22.default.createElement(import_CircularProgress2.default, { size: 20 })) : null,
3234
+ endAdornment: isLoading ? /* @__PURE__ */ import_react21.default.createElement(import_InputAdornment.default, { position: "end" }, /* @__PURE__ */ import_react21.default.createElement(import_CircularProgress2.default, { size: 20 })) : null,
3310
3235
  startAdornment
3311
3236
  },
3312
3237
  ...rest
@@ -3315,7 +3240,7 @@ var FormInputNumber = ({
3315
3240
  }
3316
3241
  );
3317
3242
  };
3318
- var NumericFormatCustom = (0, import_react21.forwardRef)(
3243
+ var NumericFormatCustom = (0, import_react20.forwardRef)(
3319
3244
  function NumericFormatCustom2(props, ref) {
3320
3245
  const {
3321
3246
  onChange,
@@ -3326,7 +3251,7 @@ var NumericFormatCustom = (0, import_react21.forwardRef)(
3326
3251
  decimalScale,
3327
3252
  ...other
3328
3253
  } = props;
3329
- return /* @__PURE__ */ import_react22.default.createElement(
3254
+ return /* @__PURE__ */ import_react21.default.createElement(
3330
3255
  import_react_number_format.NumericFormat,
3331
3256
  {
3332
3257
  ...other,
@@ -3357,7 +3282,7 @@ var number_type_default = FormInputNumber;
3357
3282
  var import_CircularProgress3 = __toESM(require("@mui/material/CircularProgress"));
3358
3283
  var import_InputAdornment2 = __toESM(require("@mui/material/InputAdornment"));
3359
3284
  var import_TextField3 = __toESM(require("@mui/material/TextField"));
3360
- var import_react23 = __toESM(require("react"));
3285
+ var import_react22 = __toESM(require("react"));
3361
3286
  var import_react_hook_form12 = require("react-hook-form");
3362
3287
  var FormInputText = ({
3363
3288
  name,
@@ -3374,13 +3299,13 @@ var FormInputText = ({
3374
3299
  rows,
3375
3300
  ...rest
3376
3301
  }) => {
3377
- return /* @__PURE__ */ import_react23.default.createElement(
3302
+ return /* @__PURE__ */ import_react22.default.createElement(
3378
3303
  import_react_hook_form12.Controller,
3379
3304
  {
3380
3305
  name,
3381
3306
  control,
3382
3307
  rules,
3383
- render: ({ field: { onChange, value, ref }, fieldState: { error } }) => /* @__PURE__ */ import_react23.default.createElement(
3308
+ render: ({ field: { onChange, value, ref }, fieldState: { error } }) => /* @__PURE__ */ import_react22.default.createElement(
3384
3309
  import_TextField3.default,
3385
3310
  {
3386
3311
  disabled: disabled || isLoading,
@@ -3400,7 +3325,7 @@ var FormInputText = ({
3400
3325
  readOnly
3401
3326
  },
3402
3327
  InputProps: {
3403
- endAdornment: isLoading ? /* @__PURE__ */ import_react23.default.createElement(import_InputAdornment2.default, { position: "end" }, /* @__PURE__ */ import_react23.default.createElement(import_CircularProgress3.default, { size: 20 })) : null
3328
+ endAdornment: isLoading ? /* @__PURE__ */ import_react22.default.createElement(import_InputAdornment2.default, { position: "end" }, /* @__PURE__ */ import_react22.default.createElement(import_CircularProgress3.default, { size: 20 })) : null
3404
3329
  },
3405
3330
  InputLabelProps: { shrink: true },
3406
3331
  inputRef: ref,
@@ -3413,9 +3338,9 @@ var FormInputText = ({
3413
3338
  var text_type_default = FormInputText;
3414
3339
 
3415
3340
  // src/upload-image/index.tsx
3416
- var import_react24 = __toESM(require("react"));
3341
+ var import_react23 = __toESM(require("react"));
3417
3342
  var import_react_hook_form13 = require("react-hook-form");
3418
- var import_material21 = require("@mui/material");
3343
+ var import_material20 = require("@mui/material");
3419
3344
  var import_gr = require("react-icons/gr");
3420
3345
  var import_md5 = require("react-icons/md");
3421
3346
  var import_image3 = __toESM(require("next/image"));
@@ -3488,12 +3413,12 @@ var UploadImage = ({
3488
3413
  }
3489
3414
  }
3490
3415
  };
3491
- return /* @__PURE__ */ import_react24.default.createElement(
3416
+ return /* @__PURE__ */ import_react23.default.createElement(
3492
3417
  import_react_hook_form13.Controller,
3493
3418
  {
3494
3419
  name,
3495
3420
  control,
3496
- render: ({ field }) => /* @__PURE__ */ import_react24.default.createElement(import_react24.default.Fragment, null, /* @__PURE__ */ import_react24.default.createElement(
3421
+ render: ({ field }) => /* @__PURE__ */ import_react23.default.createElement(import_react23.default.Fragment, null, /* @__PURE__ */ import_react23.default.createElement(
3497
3422
  "label",
3498
3423
  {
3499
3424
  htmlFor: "file-upload",
@@ -3513,7 +3438,7 @@ var UploadImage = ({
3513
3438
  overflow: "hidden"
3514
3439
  }
3515
3440
  },
3516
- selectedImage ? /* @__PURE__ */ import_react24.default.createElement(
3441
+ selectedImage ? /* @__PURE__ */ import_react23.default.createElement(
3517
3442
  import_image3.default,
3518
3443
  {
3519
3444
  src: selectedImage,
@@ -3521,14 +3446,14 @@ var UploadImage = ({
3521
3446
  fill: true,
3522
3447
  objectFit: imageFit
3523
3448
  }
3524
- ) : /* @__PURE__ */ import_react24.default.createElement(
3525
- import_material21.Stack,
3449
+ ) : /* @__PURE__ */ import_react23.default.createElement(
3450
+ import_material20.Stack,
3526
3451
  {
3527
3452
  spacing: allowGallery ? 2 : 0,
3528
3453
  sx: { pt: allowGallery ? 2 : 0 }
3529
3454
  },
3530
- /* @__PURE__ */ import_react24.default.createElement(
3531
- import_material21.Box,
3455
+ /* @__PURE__ */ import_react23.default.createElement(
3456
+ import_material20.Box,
3532
3457
  {
3533
3458
  sx: {
3534
3459
  display: "flex",
@@ -3537,31 +3462,31 @@ var UploadImage = ({
3537
3462
  gap: 1.5
3538
3463
  }
3539
3464
  },
3540
- /* @__PURE__ */ import_react24.default.createElement(import_material21.Box, { sx: { paddingBottom: "0.5rem" } }, /* @__PURE__ */ import_react24.default.createElement(import_gr.GrUpload, null)),
3465
+ /* @__PURE__ */ import_react23.default.createElement(import_material20.Box, { sx: { paddingBottom: "0.5rem" } }, /* @__PURE__ */ import_react23.default.createElement(import_gr.GrUpload, null)),
3541
3466
  placeholder
3542
3467
  ),
3543
- allowGallery && /* @__PURE__ */ import_react24.default.createElement(import_material21.Stack, { spacing: 1.5 }, /* @__PURE__ */ import_react24.default.createElement(
3544
- import_material21.Button,
3468
+ allowGallery && /* @__PURE__ */ import_react23.default.createElement(import_material20.Stack, { spacing: 1.5 }, /* @__PURE__ */ import_react23.default.createElement(
3469
+ import_material20.Button,
3545
3470
  {
3546
3471
  sx: { width: "9rem" },
3547
3472
  variant: "outlined",
3548
3473
  color: "info",
3549
- startIcon: /* @__PURE__ */ import_react24.default.createElement(import_md5.MdOutlineCameraAlt, { size: 16 }),
3474
+ startIcon: /* @__PURE__ */ import_react23.default.createElement(import_md5.MdOutlineCameraAlt, { size: 16 }),
3550
3475
  onClick: () => document.getElementById("camera-upload")?.click()
3551
3476
  },
3552
3477
  "\u0628\u0627\u0631\u06AF\u0630\u0627\u0631\u06CC \u0627\u0632 \u062F\u0648\u0631\u0628\u06CC\u0646"
3553
- ), /* @__PURE__ */ import_react24.default.createElement(
3554
- import_material21.Button,
3478
+ ), /* @__PURE__ */ import_react23.default.createElement(
3479
+ import_material20.Button,
3555
3480
  {
3556
3481
  sx: { width: "9rem" },
3557
3482
  variant: "outlined",
3558
3483
  color: "info",
3559
- startIcon: /* @__PURE__ */ import_react24.default.createElement(import_gr.GrGallery, { size: 16 }),
3484
+ startIcon: /* @__PURE__ */ import_react23.default.createElement(import_gr.GrGallery, { size: 16 }),
3560
3485
  onClick: () => document.getElementById("gallery-upload")?.click()
3561
3486
  },
3562
3487
  "\u0628\u0627\u0631\u06AF\u0630\u0627\u0631\u06CC \u0627\u0632 \u06AF\u0627\u0644\u0631\u06CC"
3563
3488
  )),
3564
- !allowGallery && /* @__PURE__ */ import_react24.default.createElement(
3489
+ !allowGallery && /* @__PURE__ */ import_react23.default.createElement(
3565
3490
  "input",
3566
3491
  {
3567
3492
  id: "file-upload",
@@ -3576,7 +3501,7 @@ var UploadImage = ({
3576
3501
  }
3577
3502
  )
3578
3503
  )
3579
- ), /* @__PURE__ */ import_react24.default.createElement(
3504
+ ), /* @__PURE__ */ import_react23.default.createElement(
3580
3505
  "input",
3581
3506
  {
3582
3507
  id: "gallery-upload",
@@ -3588,7 +3513,7 @@ var UploadImage = ({
3588
3513
  },
3589
3514
  style: { display: "none" }
3590
3515
  }
3591
- ), /* @__PURE__ */ import_react24.default.createElement(
3516
+ ), /* @__PURE__ */ import_react23.default.createElement(
3592
3517
  "input",
3593
3518
  {
3594
3519
  id: "camera-upload",
@@ -3601,13 +3526,13 @@ var UploadImage = ({
3601
3526
  },
3602
3527
  style: { display: "none" }
3603
3528
  }
3604
- ), selectedImage && /* @__PURE__ */ import_react24.default.createElement(
3605
- import_material21.Box,
3529
+ ), selectedImage && /* @__PURE__ */ import_react23.default.createElement(
3530
+ import_material20.Box,
3606
3531
  {
3607
3532
  sx: { display: "flex", justifyContent: "center", marginTop: 2 }
3608
3533
  },
3609
- /* @__PURE__ */ import_react24.default.createElement(
3610
- import_material21.Button,
3534
+ /* @__PURE__ */ import_react23.default.createElement(
3535
+ import_material20.Button,
3611
3536
  {
3612
3537
  onClick: () => {
3613
3538
  setSelectedImage(null);
@@ -3626,7 +3551,7 @@ var UploadImage = ({
3626
3551
  },
3627
3552
  "\u062D\u0630\u0641 \u062A\u0635\u0648\u06CC\u0631"
3628
3553
  )
3629
- ), errors[name] && /* @__PURE__ */ import_react24.default.createElement(import_material21.Typography, { color: "error", variant: "body2", sx: { mt: 1.5, ml: 1 } }, String(errors[name]?.message || "")))
3554
+ ), errors[name] && /* @__PURE__ */ import_react23.default.createElement(import_material20.Typography, { color: "error", variant: "body2", sx: { mt: 1.5, ml: 1 } }, String(errors[name]?.message || "")))
3630
3555
  }
3631
3556
  );
3632
3557
  };
@@ -3638,8 +3563,8 @@ var import_io2 = require("react-icons/io");
3638
3563
  var import_Accordion = __toESM(require("@mui/material/Accordion"));
3639
3564
  var import_AccordionSummary = __toESM(require("@mui/material/AccordionSummary"));
3640
3565
  var import_AccordionDetails = __toESM(require("@mui/material/AccordionDetails"));
3641
- var import_material22 = require("@mui/material");
3642
- var import_react25 = require("react");
3566
+ var import_material21 = require("@mui/material");
3567
+ var import_react24 = require("react");
3643
3568
  function Page({
3644
3569
  data
3645
3570
  }) {
@@ -3669,7 +3594,7 @@ function Page({
3669
3594
  padding: theme.spacing(2),
3670
3595
  borderTop: "1px solid rgba(0, 0, 0, .125)"
3671
3596
  }));
3672
- const [expanded, setExpanded] = (0, import_react25.useState)("");
3597
+ const [expanded, setExpanded] = (0, import_react24.useState)("");
3673
3598
  const handleChange = (panel) => (event, newExpanded) => {
3674
3599
  setExpanded(newExpanded ? panel : false);
3675
3600
  };
@@ -3693,17 +3618,149 @@ function Page({
3693
3618
  }
3694
3619
  }
3695
3620
  },
3696
- /* @__PURE__ */ React.createElement(import_material22.Typography, { component: "span" }, item.title)
3621
+ /* @__PURE__ */ React.createElement(import_material21.Typography, { component: "span" }, item.title)
3697
3622
  ),
3698
3623
  /* @__PURE__ */ React.createElement(AccordionDetails, null, item.body)
3699
3624
  );
3700
3625
  }));
3701
3626
  }
3627
+
3628
+ // src/switch-button/index.tsx
3629
+ var import_material22 = require("@mui/material");
3630
+ var import_system7 = require("@mui/system");
3631
+ var import_react25 = __toESM(require("react"));
3632
+ var import_pi = require("react-icons/pi");
3633
+ var import_material23 = require("@mui/material");
3634
+ var SwitchButton = ({
3635
+ checked,
3636
+ handleChange,
3637
+ iconChecked,
3638
+ iconUnchecked
3639
+ }) => {
3640
+ const theme = (0, import_material23.useTheme)();
3641
+ const isDarkMode = theme.palette.mode === "dark";
3642
+ const CustomSwitch = (0, import_system7.styled)(import_material22.Switch)(({ theme: theme2 }) => ({
3643
+ "& .MuiSwitch-switchBase.Mui-checked": {
3644
+ color: theme2.palette.primary.main
3645
+ },
3646
+ "& .MuiSwitch-switchBase": {
3647
+ color: isDarkMode ? "rgba(220,220,220,1)" : "rgba(188,188,188,1)"
3648
+ },
3649
+ "& .MuiSwitch-track": {
3650
+ // backgroundColor: "rgba(160,160,160, 0.1)",
3651
+ backgroundColor: "#fff",
3652
+ border: isDarkMode ? "2px solid white" : "2px solid rgba(80,80,80, 1)"
3653
+ }
3654
+ }));
3655
+ const BoxContainer = (0, import_system7.styled)(import_material22.Box)(({ theme: theme2 }) => ({
3656
+ display: "flex",
3657
+ alignItems: "center",
3658
+ backgroundColor: "rgba(188,188,188, 0.1)",
3659
+ border: "2px solid rgba(200,200,200, 1)",
3660
+ borderRadius: 10,
3661
+ transition: "all 0.3s ease",
3662
+ paddingTop: theme2.spacing(0.1),
3663
+ paddingBottom: theme2.spacing(0.1),
3664
+ paddingLeft: theme2.spacing(1)
3665
+ }));
3666
+ const LabelContainer = (0, import_system7.styled)("div")({
3667
+ transition: "all 0.2s ease",
3668
+ color: isDarkMode ? "rgba(220,220,220, 1)" : "rgba(160,160,160, 1)"
3669
+ });
3670
+ return /* @__PURE__ */ import_react25.default.createElement(BoxContainer, null, /* @__PURE__ */ import_react25.default.createElement(
3671
+ import_material22.FormControlLabel,
3672
+ {
3673
+ control: /* @__PURE__ */ import_react25.default.createElement(
3674
+ CustomSwitch,
3675
+ {
3676
+ checked,
3677
+ onChange: handleChange,
3678
+ name: "switch"
3679
+ }
3680
+ ),
3681
+ label: /* @__PURE__ */ import_react25.default.createElement(LabelContainer, null, checked ? iconChecked ? iconChecked : /* @__PURE__ */ import_react25.default.createElement(import_pi.PiTableDuotone, { size: 30 }) : iconUnchecked ? iconUnchecked : /* @__PURE__ */ import_react25.default.createElement(import_pi.PiCardsDuotone, { size: 30 }))
3682
+ }
3683
+ ));
3684
+ };
3685
+ var switch_button_default = SwitchButton;
3686
+
3687
+ // src/bascule-connection-button/index.tsx
3688
+ var import_material24 = require("@mui/material");
3689
+ var import_react26 = __toESM(require("react"));
3690
+ var import_react_hot_toast = __toESM(require("react-hot-toast"));
3691
+ var import_pi2 = require("react-icons/pi");
3692
+ var ConnectToBasculeButton = ({
3693
+ baudRate,
3694
+ dataBits = 8,
3695
+ stopBits = 1,
3696
+ parity = "none",
3697
+ flowControl = "none"
3698
+ }) => {
3699
+ const [connected, setConnected] = (0, import_react26.useState)(false);
3700
+ const portRef = (0, import_react26.useRef)(null);
3701
+ const connectToBascule = async () => {
3702
+ if (!("serial" in navigator)) {
3703
+ import_react_hot_toast.default.error("Web Serial API \u062A\u0648\u0633\u0637 \u0627\u06CC\u0646 \u0645\u0631\u0648\u0631\u06AF\u0631 \u067E\u0634\u062A\u06CC\u0628\u0627\u0646\u06CC \u0646\u0645\u06CC\u200C\u0634\u0648\u062F.");
3704
+ return;
3705
+ }
3706
+ try {
3707
+ const serial = navigator.serial;
3708
+ const port = await serial.requestPort();
3709
+ await port.open({ baudRate, dataBits, stopBits, parity, flowControl });
3710
+ portRef.current = port;
3711
+ setConnected(true);
3712
+ import_react_hot_toast.default.success("\u0627\u062A\u0635\u0627\u0644 \u0628\u0647 \u0628\u0627\u0633\u06A9\u0648\u0644 \u0628\u0627 \u0645\u0648\u0641\u0642\u06CC\u062A \u0627\u0646\u062C\u0627\u0645 \u0634\u062F.");
3713
+ } catch (error) {
3714
+ console.error(error);
3715
+ import_react_hot_toast.default.error("\u062E\u0637\u0627 \u062F\u0631 \u0627\u062A\u0635\u0627\u0644 \u0628\u0647 \u0628\u0627\u0633\u06A9\u0648\u0644. \u0644\u0637\u0641\u0627\u064B \u062F\u0648\u0628\u0627\u0631\u0647 \u062A\u0644\u0627\u0634 \u06A9\u0646\u06CC\u062F.");
3716
+ }
3717
+ };
3718
+ return /* @__PURE__ */ import_react26.default.createElement(import_react26.default.Fragment, null, /* @__PURE__ */ import_react26.default.createElement("style", null, `
3719
+ @keyframes jumpAnimation {
3720
+ 0% { transform: translateY(1px); }
3721
+ 12.5% { transform: translateY(-2px); }
3722
+ 25% { transform: translateY(1px); }
3723
+ 37.5% { transform: translateY(-2px); }
3724
+ 50% { transform: translateY(0); }
3725
+ 100% { transform: translateY(0); }
3726
+ }
3727
+ `), /* @__PURE__ */ import_react26.default.createElement(
3728
+ import_material24.Button,
3729
+ {
3730
+ variant: "contained",
3731
+ onClick: connectToBascule,
3732
+ disabled: connected,
3733
+ sx: { minWidth: "11rem" }
3734
+ },
3735
+ /* @__PURE__ */ import_react26.default.createElement(
3736
+ import_material24.Box,
3737
+ {
3738
+ sx: {
3739
+ display: "flex",
3740
+ alignItems: "center",
3741
+ gap: 1,
3742
+ fontSize: 16
3743
+ }
3744
+ },
3745
+ connected ? /* @__PURE__ */ import_react26.default.createElement(import_react26.default.Fragment, null, "\u0645\u062A\u0635\u0644 \u0628\u0647 \u0628\u0627\u0633\u06A9\u0648\u0644", /* @__PURE__ */ import_react26.default.createElement(import_pi2.PiPlugsConnected, { size: 20 })) : /* @__PURE__ */ import_react26.default.createElement(import_react26.default.Fragment, null, "\u0627\u062A\u0635\u0627\u0644 \u0628\u0647 \u0628\u0627\u0633\u06A9\u0648\u0644", /* @__PURE__ */ import_react26.default.createElement(
3746
+ import_pi2.PiPlugs,
3747
+ {
3748
+ size: 20,
3749
+ style: {
3750
+ animation: "jumpAnimation 2s ease-in-out infinite"
3751
+ }
3752
+ }
3753
+ ))
3754
+ )
3755
+ ));
3756
+ };
3757
+ var bascule_connection_button_default = ConnectToBasculeButton;
3702
3758
  // Annotate the CommonJS export names for ESM import in node:
3703
3759
  0 && (module.exports = {
3704
3760
  Accordion,
3705
3761
  AdvancedSearchButton,
3706
3762
  ConfirmationDialog,
3763
+ ConnectToBasculeButton,
3707
3764
  CustomCheckbox,
3708
3765
  CustomTimePicker,
3709
3766
  DateFilter,