@mamrp/components 1.2.0 → 1.2.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.
package/dist/index.d.mts CHANGED
@@ -262,6 +262,22 @@ type FormInputNumberProps<T extends FieldValues> = {
262
262
  } & TextFieldProps;
263
263
  declare const FormInputNumber: <T extends FieldValues>({ name, control, label, inputRef, onKeyDown, endAdornment, thousandSeparator, startAdornment, onChangeHandler, valueHandler, allowLeadingZeros, allowNegative, maxLength, isLoading, rules, data, borderColor, placeholder, decimalScale, autoComplete, textAlign, borderless, ...rest }: FormInputNumberProps<T>) => React__default.JSX.Element;
264
264
 
265
+ type FormInputTextProps$1<T extends FieldValues> = {
266
+ control: Control<T>;
267
+ name: Path<T>;
268
+ label?: string;
269
+ maxLength?: number;
270
+ readOnly?: boolean;
271
+ rules?: any;
272
+ size?: "medium" | "small";
273
+ disabled?: boolean;
274
+ multiline?: boolean;
275
+ isLoading?: boolean;
276
+ onBlurHandler?: any;
277
+ rows?: number;
278
+ } & TextFieldProps;
279
+ declare const FormInputText: <T extends FieldValues>({ name, control, label, maxLength, readOnly, rules, size, disabled, multiline, isLoading, onBlurHandler, rows, ...rest }: FormInputTextProps$1<T>) => React__default.JSX.Element;
280
+
265
281
  type FormInputTextProps<T extends FieldValues> = {
266
282
  control: Control<T>;
267
283
  name: Path<T>;
@@ -275,8 +291,11 @@ type FormInputTextProps<T extends FieldValues> = {
275
291
  isLoading?: boolean;
276
292
  onBlurHandler?: any;
277
293
  rows?: number;
294
+ groupEvery?: number;
295
+ groupSeparator?: string;
296
+ formatPattern?: string;
278
297
  } & TextFieldProps;
279
- declare const FormInputText: <T extends FieldValues>({ name, control, label, maxLength, readOnly, rules, size, disabled, multiline, isLoading, onBlurHandler, rows, ...rest }: FormInputTextProps<T>) => React__default.JSX.Element;
298
+ declare const PatternTextField: <T extends FieldValues>({ name, control, label, maxLength, readOnly, rules, size, disabled, multiline, isLoading, onBlurHandler, rows, groupEvery, groupSeparator, formatPattern, ...rest }: FormInputTextProps<T>) => React__default.JSX.Element;
280
299
 
281
300
  type UploadImageProps<T extends FieldValues> = {
282
301
  placeholder: string;
@@ -322,4 +341,4 @@ interface DraggablePaperProps extends PaperProps {
322
341
  }
323
342
  declare function DraggablePaper({ handle, cancel, ...props }: DraggablePaperProps): React.JSX.Element;
324
343
 
325
- 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, DraggablePaper, 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 };
344
+ 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, DraggablePaper, FormInputNumber, FormInputText, HorizontalStepper, LicensePlate, JalaliDatePicker as MobileDateTimePicker, ConfirmationDialog as Modal, NestedSelect as NestedSelectort, NoResult, PaginationList, PatternTextField, RadioButton, SearchLicensePlate, MultipleSelectChip as Selector, SkeletonCard, SonarSpinner, SwitchButton, Table, UploadImage };
package/dist/index.d.ts CHANGED
@@ -262,6 +262,22 @@ type FormInputNumberProps<T extends FieldValues> = {
262
262
  } & TextFieldProps;
263
263
  declare const FormInputNumber: <T extends FieldValues>({ name, control, label, inputRef, onKeyDown, endAdornment, thousandSeparator, startAdornment, onChangeHandler, valueHandler, allowLeadingZeros, allowNegative, maxLength, isLoading, rules, data, borderColor, placeholder, decimalScale, autoComplete, textAlign, borderless, ...rest }: FormInputNumberProps<T>) => React__default.JSX.Element;
264
264
 
265
+ type FormInputTextProps$1<T extends FieldValues> = {
266
+ control: Control<T>;
267
+ name: Path<T>;
268
+ label?: string;
269
+ maxLength?: number;
270
+ readOnly?: boolean;
271
+ rules?: any;
272
+ size?: "medium" | "small";
273
+ disabled?: boolean;
274
+ multiline?: boolean;
275
+ isLoading?: boolean;
276
+ onBlurHandler?: any;
277
+ rows?: number;
278
+ } & TextFieldProps;
279
+ declare const FormInputText: <T extends FieldValues>({ name, control, label, maxLength, readOnly, rules, size, disabled, multiline, isLoading, onBlurHandler, rows, ...rest }: FormInputTextProps$1<T>) => React__default.JSX.Element;
280
+
265
281
  type FormInputTextProps<T extends FieldValues> = {
266
282
  control: Control<T>;
267
283
  name: Path<T>;
@@ -275,8 +291,11 @@ type FormInputTextProps<T extends FieldValues> = {
275
291
  isLoading?: boolean;
276
292
  onBlurHandler?: any;
277
293
  rows?: number;
294
+ groupEvery?: number;
295
+ groupSeparator?: string;
296
+ formatPattern?: string;
278
297
  } & TextFieldProps;
279
- declare const FormInputText: <T extends FieldValues>({ name, control, label, maxLength, readOnly, rules, size, disabled, multiline, isLoading, onBlurHandler, rows, ...rest }: FormInputTextProps<T>) => React__default.JSX.Element;
298
+ declare const PatternTextField: <T extends FieldValues>({ name, control, label, maxLength, readOnly, rules, size, disabled, multiline, isLoading, onBlurHandler, rows, groupEvery, groupSeparator, formatPattern, ...rest }: FormInputTextProps<T>) => React__default.JSX.Element;
280
299
 
281
300
  type UploadImageProps<T extends FieldValues> = {
282
301
  placeholder: string;
@@ -322,4 +341,4 @@ interface DraggablePaperProps extends PaperProps {
322
341
  }
323
342
  declare function DraggablePaper({ handle, cancel, ...props }: DraggablePaperProps): React.JSX.Element;
324
343
 
325
- 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, DraggablePaper, 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 };
344
+ 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, DraggablePaper, FormInputNumber, FormInputText, HorizontalStepper, LicensePlate, JalaliDatePicker as MobileDateTimePicker, ConfirmationDialog as Modal, NestedSelect as NestedSelectort, NoResult, PaginationList, PatternTextField, RadioButton, SearchLicensePlate, MultipleSelectChip as Selector, SkeletonCard, SonarSpinner, SwitchButton, Table, UploadImage };
package/dist/index.js CHANGED
@@ -51,6 +51,7 @@ __export(src_exports, {
51
51
  NestedSelectort: () => selector_default,
52
52
  NoResult: () => NoResult,
53
53
  PaginationList: () => PaginationList,
54
+ PatternTextField: () => number_pattern_input_default,
54
55
  RadioButton: () => RadioButton,
55
56
  SearchLicensePlate: () => SearchLicensePlate,
56
57
  Selector: () => MultipleSelectChip,
@@ -3516,9 +3517,107 @@ var FormInputText = ({
3516
3517
  };
3517
3518
  var text_type_default = FormInputText;
3518
3519
 
3519
- // src/upload-image/index.tsx
3520
+ // src/text-field/number-pattern-input/index.tsx
3521
+ var import_CircularProgress4 = __toESM(require("@mui/material/CircularProgress"));
3522
+ var import_InputAdornment3 = __toESM(require("@mui/material/InputAdornment"));
3523
+ var import_TextField4 = __toESM(require("@mui/material/TextField"));
3520
3524
  var import_react23 = __toESM(require("react"));
3521
3525
  var import_react_hook_form13 = require("react-hook-form");
3526
+ var import_react_number_format2 = require("react-number-format");
3527
+ var PatternTextField = ({
3528
+ name,
3529
+ control,
3530
+ label,
3531
+ maxLength,
3532
+ readOnly,
3533
+ rules,
3534
+ size = "small",
3535
+ disabled = false,
3536
+ multiline,
3537
+ isLoading,
3538
+ onBlurHandler,
3539
+ rows,
3540
+ groupEvery,
3541
+ groupSeparator = "-",
3542
+ formatPattern,
3543
+ ...rest
3544
+ }) => {
3545
+ const isNumericMode = !!groupEvery;
3546
+ const formatValue = (val) => {
3547
+ if (!val) return "";
3548
+ const raw = isNumericMode ? val.replace(/\D/g, "") : val;
3549
+ if (groupEvery) {
3550
+ return raw.match(new RegExp(`.{1,${groupEvery}}`, "g"))?.join(groupSeparator) || "";
3551
+ }
3552
+ return val;
3553
+ };
3554
+ return /* @__PURE__ */ import_react23.default.createElement(
3555
+ import_react_hook_form13.Controller,
3556
+ {
3557
+ name,
3558
+ control,
3559
+ rules,
3560
+ render: ({ field: { onChange, value, ref }, fieldState: { error } }) => /* @__PURE__ */ import_react23.default.createElement(
3561
+ import_TextField4.default,
3562
+ {
3563
+ ...rest,
3564
+ disabled: disabled || isLoading,
3565
+ helperText: error?.message || null,
3566
+ multiline,
3567
+ size,
3568
+ rows: rows || void 0,
3569
+ error: !!error,
3570
+ value: formatValue(value?.toString() || ""),
3571
+ onChange: (e) => {
3572
+ let newRaw = e.target.value;
3573
+ if (isNumericMode) newRaw = newRaw.replace(/\D/g, "");
3574
+ if (!maxLength || newRaw.length <= maxLength) onChange(newRaw);
3575
+ },
3576
+ fullWidth: true,
3577
+ label,
3578
+ variant: "outlined",
3579
+ inputProps: { ...rest.inputProps, readOnly },
3580
+ InputProps: {
3581
+ inputComponent: formatPattern ? PatternFormatCustom : void 0,
3582
+ inputProps: {
3583
+ format: formatPattern
3584
+ // 👈 الگوی نمایش
3585
+ },
3586
+ endAdornment: isLoading ? /* @__PURE__ */ import_react23.default.createElement(import_InputAdornment3.default, { position: "end" }, /* @__PURE__ */ import_react23.default.createElement(import_CircularProgress4.default, { size: 20 })) : null
3587
+ },
3588
+ InputLabelProps: { shrink: true },
3589
+ inputRef: ref
3590
+ }
3591
+ )
3592
+ }
3593
+ );
3594
+ };
3595
+ var PatternFormatCustom = (0, import_react23.forwardRef)(
3596
+ function PatternFormatCustom2(props, ref) {
3597
+ const { onChange, format, ...other } = props;
3598
+ return /* @__PURE__ */ import_react23.default.createElement(
3599
+ import_react_number_format2.PatternFormat,
3600
+ {
3601
+ ...other,
3602
+ getInputRef: ref,
3603
+ format,
3604
+ onValueChange: (values) => {
3605
+ onChange({
3606
+ target: {
3607
+ name: props.name,
3608
+ value: values.value
3609
+ }
3610
+ });
3611
+ }
3612
+ }
3613
+ );
3614
+ }
3615
+ );
3616
+ var number_pattern_input_default = PatternTextField;
3617
+
3618
+ // src/upload-image/index.tsx
3619
+ var import_react24 = __toESM(require("react"));
3620
+ var import_react_hook_form14 = require("react-hook-form");
3522
3621
  var import_material21 = require("@mui/material");
3523
3622
  var import_gr = require("react-icons/gr");
3524
3623
  var import_md5 = require("react-icons/md");
@@ -3592,12 +3691,12 @@ var UploadImage = ({
3592
3691
  }
3593
3692
  }
3594
3693
  };
3595
- return /* @__PURE__ */ import_react23.default.createElement(
3596
- import_react_hook_form13.Controller,
3694
+ return /* @__PURE__ */ import_react24.default.createElement(
3695
+ import_react_hook_form14.Controller,
3597
3696
  {
3598
3697
  name,
3599
3698
  control,
3600
- render: ({ field }) => /* @__PURE__ */ import_react23.default.createElement(import_react23.default.Fragment, null, /* @__PURE__ */ import_react23.default.createElement(
3699
+ render: ({ field }) => /* @__PURE__ */ import_react24.default.createElement(import_react24.default.Fragment, null, /* @__PURE__ */ import_react24.default.createElement(
3601
3700
  "label",
3602
3701
  {
3603
3702
  htmlFor: "file-upload",
@@ -3617,7 +3716,7 @@ var UploadImage = ({
3617
3716
  overflow: "hidden"
3618
3717
  }
3619
3718
  },
3620
- selectedImage ? /* @__PURE__ */ import_react23.default.createElement(
3719
+ selectedImage ? /* @__PURE__ */ import_react24.default.createElement(
3621
3720
  import_image3.default,
3622
3721
  {
3623
3722
  src: selectedImage,
@@ -3625,13 +3724,13 @@ var UploadImage = ({
3625
3724
  fill: true,
3626
3725
  objectFit: imageFit
3627
3726
  }
3628
- ) : /* @__PURE__ */ import_react23.default.createElement(
3727
+ ) : /* @__PURE__ */ import_react24.default.createElement(
3629
3728
  import_material21.Stack,
3630
3729
  {
3631
3730
  spacing: allowGallery ? 2 : 0,
3632
3731
  sx: { pt: allowGallery ? 2 : 0 }
3633
3732
  },
3634
- /* @__PURE__ */ import_react23.default.createElement(
3733
+ /* @__PURE__ */ import_react24.default.createElement(
3635
3734
  import_material21.Box,
3636
3735
  {
3637
3736
  sx: {
@@ -3641,31 +3740,31 @@ var UploadImage = ({
3641
3740
  gap: 1.5
3642
3741
  }
3643
3742
  },
3644
- /* @__PURE__ */ import_react23.default.createElement(import_material21.Box, { sx: { paddingBottom: "0.5rem" } }, /* @__PURE__ */ import_react23.default.createElement(import_gr.GrUpload, null)),
3743
+ /* @__PURE__ */ import_react24.default.createElement(import_material21.Box, { sx: { paddingBottom: "0.5rem" } }, /* @__PURE__ */ import_react24.default.createElement(import_gr.GrUpload, null)),
3645
3744
  placeholder
3646
3745
  ),
3647
- allowGallery && /* @__PURE__ */ import_react23.default.createElement(import_material21.Stack, { spacing: 1.5 }, /* @__PURE__ */ import_react23.default.createElement(
3746
+ allowGallery && /* @__PURE__ */ import_react24.default.createElement(import_material21.Stack, { spacing: 1.5 }, /* @__PURE__ */ import_react24.default.createElement(
3648
3747
  import_material21.Button,
3649
3748
  {
3650
3749
  sx: { width: "9rem" },
3651
3750
  variant: "outlined",
3652
3751
  color: "info",
3653
- startIcon: /* @__PURE__ */ import_react23.default.createElement(import_md5.MdOutlineCameraAlt, { size: 16 }),
3752
+ startIcon: /* @__PURE__ */ import_react24.default.createElement(import_md5.MdOutlineCameraAlt, { size: 16 }),
3654
3753
  onClick: () => document.getElementById("camera-upload")?.click()
3655
3754
  },
3656
3755
  "\u062F\u0648\u0631\u0628\u06CC\u0646"
3657
- ), /* @__PURE__ */ import_react23.default.createElement(
3756
+ ), /* @__PURE__ */ import_react24.default.createElement(
3658
3757
  import_material21.Button,
3659
3758
  {
3660
3759
  sx: { width: "9rem" },
3661
3760
  variant: "outlined",
3662
3761
  color: "info",
3663
- startIcon: /* @__PURE__ */ import_react23.default.createElement(import_gr.GrGallery, { size: 16 }),
3762
+ startIcon: /* @__PURE__ */ import_react24.default.createElement(import_gr.GrGallery, { size: 16 }),
3664
3763
  onClick: () => document.getElementById("gallery-upload")?.click()
3665
3764
  },
3666
3765
  "\u06AF\u0627\u0644\u0631\u06CC"
3667
3766
  )),
3668
- !allowGallery && /* @__PURE__ */ import_react23.default.createElement(
3767
+ !allowGallery && /* @__PURE__ */ import_react24.default.createElement(
3669
3768
  "input",
3670
3769
  {
3671
3770
  id: "file-upload",
@@ -3680,7 +3779,7 @@ var UploadImage = ({
3680
3779
  }
3681
3780
  )
3682
3781
  )
3683
- ), /* @__PURE__ */ import_react23.default.createElement(
3782
+ ), /* @__PURE__ */ import_react24.default.createElement(
3684
3783
  "input",
3685
3784
  {
3686
3785
  id: "gallery-upload",
@@ -3692,7 +3791,7 @@ var UploadImage = ({
3692
3791
  },
3693
3792
  style: { display: "none" }
3694
3793
  }
3695
- ), /* @__PURE__ */ import_react23.default.createElement(
3794
+ ), /* @__PURE__ */ import_react24.default.createElement(
3696
3795
  "input",
3697
3796
  {
3698
3797
  id: "camera-upload",
@@ -3705,12 +3804,12 @@ var UploadImage = ({
3705
3804
  },
3706
3805
  style: { display: "none" }
3707
3806
  }
3708
- ), selectedImage && /* @__PURE__ */ import_react23.default.createElement(
3807
+ ), selectedImage && /* @__PURE__ */ import_react24.default.createElement(
3709
3808
  import_material21.Box,
3710
3809
  {
3711
3810
  sx: { display: "flex", justifyContent: "center", marginTop: 2 }
3712
3811
  },
3713
- /* @__PURE__ */ import_react23.default.createElement(
3812
+ /* @__PURE__ */ import_react24.default.createElement(
3714
3813
  import_material21.Button,
3715
3814
  {
3716
3815
  onClick: () => {
@@ -3730,7 +3829,7 @@ var UploadImage = ({
3730
3829
  },
3731
3830
  "\u062D\u0630\u0641 \u062A\u0635\u0648\u06CC\u0631"
3732
3831
  )
3733
- ), errors[name] && /* @__PURE__ */ import_react23.default.createElement(import_material21.Typography, { color: "error", variant: "body2", sx: { mt: 1.5, ml: 1 } }, String(errors[name]?.message || "")))
3832
+ ), errors[name] && /* @__PURE__ */ import_react24.default.createElement(import_material21.Typography, { color: "error", variant: "body2", sx: { mt: 1.5, ml: 1 } }, String(errors[name]?.message || "")))
3734
3833
  }
3735
3834
  );
3736
3835
  };
@@ -3743,7 +3842,7 @@ var import_Accordion = __toESM(require("@mui/material/Accordion"));
3743
3842
  var import_AccordionSummary = __toESM(require("@mui/material/AccordionSummary"));
3744
3843
  var import_AccordionDetails = __toESM(require("@mui/material/AccordionDetails"));
3745
3844
  var import_material22 = require("@mui/material");
3746
- var import_react24 = require("react");
3845
+ var import_react25 = require("react");
3747
3846
  function Page({
3748
3847
  data
3749
3848
  }) {
@@ -3773,7 +3872,7 @@ function Page({
3773
3872
  padding: theme2.spacing(2),
3774
3873
  borderTop: "1px solid rgba(0, 0, 0, .125)"
3775
3874
  }));
3776
- const [expanded, setExpanded] = (0, import_react24.useState)("");
3875
+ const [expanded, setExpanded] = (0, import_react25.useState)("");
3777
3876
  const handleChange = (panel) => (event, newExpanded) => {
3778
3877
  setExpanded(newExpanded ? panel : false);
3779
3878
  };
@@ -3807,7 +3906,7 @@ function Page({
3807
3906
  // src/switch-button/index.tsx
3808
3907
  var import_material23 = require("@mui/material");
3809
3908
  var import_system8 = require("@mui/system");
3810
- var import_react25 = __toESM(require("react"));
3909
+ var import_react26 = __toESM(require("react"));
3811
3910
  var import_pi = require("react-icons/pi");
3812
3911
  var import_material24 = require("@mui/material");
3813
3912
  var SwitchButton = ({
@@ -3846,10 +3945,10 @@ var SwitchButton = ({
3846
3945
  transition: "all 0.2s ease",
3847
3946
  color: isDarkMode ? "rgba(220,220,220, 1)" : "rgba(160,160,160, 1)"
3848
3947
  });
3849
- return /* @__PURE__ */ import_react25.default.createElement(BoxContainer, null, /* @__PURE__ */ import_react25.default.createElement(
3948
+ return /* @__PURE__ */ import_react26.default.createElement(BoxContainer, null, /* @__PURE__ */ import_react26.default.createElement(
3850
3949
  import_material23.FormControlLabel,
3851
3950
  {
3852
- control: /* @__PURE__ */ import_react25.default.createElement(
3951
+ control: /* @__PURE__ */ import_react26.default.createElement(
3853
3952
  CustomSwitch,
3854
3953
  {
3855
3954
  checked,
@@ -3857,7 +3956,7 @@ var SwitchButton = ({
3857
3956
  name: "switch"
3858
3957
  }
3859
3958
  ),
3860
- 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 }))
3959
+ label: /* @__PURE__ */ import_react26.default.createElement(LabelContainer, null, checked ? iconChecked ? iconChecked : /* @__PURE__ */ import_react26.default.createElement(import_pi.PiTableDuotone, { size: 30 }) : iconUnchecked ? iconUnchecked : /* @__PURE__ */ import_react26.default.createElement(import_pi.PiCardsDuotone, { size: 30 }))
3861
3960
  }
3862
3961
  ));
3863
3962
  };
@@ -3865,7 +3964,7 @@ var switch_button_default = SwitchButton;
3865
3964
 
3866
3965
  // src/bascule-connection-button/index.tsx
3867
3966
  var import_material25 = require("@mui/material");
3868
- var import_react26 = __toESM(require("react"));
3967
+ var import_react27 = __toESM(require("react"));
3869
3968
  var import_react_hot_toast = __toESM(require("react-hot-toast"));
3870
3969
  var import_pi2 = require("react-icons/pi");
3871
3970
  var ConnectToBasculeButton = ({
@@ -3875,8 +3974,8 @@ var ConnectToBasculeButton = ({
3875
3974
  parity = "none",
3876
3975
  flowControl = "none"
3877
3976
  }) => {
3878
- const [connected, setConnected] = (0, import_react26.useState)(false);
3879
- const portRef = (0, import_react26.useRef)(null);
3977
+ const [connected, setConnected] = (0, import_react27.useState)(false);
3978
+ const portRef = (0, import_react27.useRef)(null);
3880
3979
  const connectToBascule = async () => {
3881
3980
  if (!("serial" in navigator)) {
3882
3981
  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.");
@@ -3894,7 +3993,7 @@ var ConnectToBasculeButton = ({
3894
3993
  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.");
3895
3994
  }
3896
3995
  };
3897
- return /* @__PURE__ */ import_react26.default.createElement(import_react26.default.Fragment, null, /* @__PURE__ */ import_react26.default.createElement("style", null, `
3996
+ return /* @__PURE__ */ import_react27.default.createElement(import_react27.default.Fragment, null, /* @__PURE__ */ import_react27.default.createElement("style", null, `
3898
3997
  @keyframes jumpAnimation {
3899
3998
  0% { transform: translateY(1px); }
3900
3999
  12.5% { transform: translateY(-2px); }
@@ -3903,7 +4002,7 @@ var ConnectToBasculeButton = ({
3903
4002
  50% { transform: translateY(0); }
3904
4003
  100% { transform: translateY(0); }
3905
4004
  }
3906
- `), /* @__PURE__ */ import_react26.default.createElement(
4005
+ `), /* @__PURE__ */ import_react27.default.createElement(
3907
4006
  import_material25.Button,
3908
4007
  {
3909
4008
  variant: "contained",
@@ -3911,7 +4010,7 @@ var ConnectToBasculeButton = ({
3911
4010
  disabled: connected,
3912
4011
  sx: { minWidth: "11rem" }
3913
4012
  },
3914
- /* @__PURE__ */ import_react26.default.createElement(
4013
+ /* @__PURE__ */ import_react27.default.createElement(
3915
4014
  import_material25.Box,
3916
4015
  {
3917
4016
  sx: {
@@ -3921,7 +4020,7 @@ var ConnectToBasculeButton = ({
3921
4020
  fontSize: 16
3922
4021
  }
3923
4022
  },
3924
- 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(
4023
+ connected ? /* @__PURE__ */ import_react27.default.createElement(import_react27.default.Fragment, null, "\u0645\u062A\u0635\u0644 \u0628\u0647 \u0628\u0627\u0633\u06A9\u0648\u0644", /* @__PURE__ */ import_react27.default.createElement(import_pi2.PiPlugsConnected, { size: 20 })) : /* @__PURE__ */ import_react27.default.createElement(import_react27.default.Fragment, null, "\u0627\u062A\u0635\u0627\u0644 \u0628\u0647 \u0628\u0627\u0633\u06A9\u0648\u0644", /* @__PURE__ */ import_react27.default.createElement(
3925
4024
  import_pi2.PiPlugs,
3926
4025
  {
3927
4026
  size: 20,
@@ -3937,14 +4036,14 @@ var bascule_connection_button_default = ConnectToBasculeButton;
3937
4036
 
3938
4037
  // src/draggable-paper/index.tsx
3939
4038
  var import_material26 = require("@mui/material");
3940
- var import_react27 = require("react");
4039
+ var import_react28 = require("react");
3941
4040
  var import_react_draggable = __toESM(require("react-draggable"));
3942
4041
  function DraggablePaper({
3943
4042
  handle = "#draggable-dialog",
3944
4043
  cancel = '[class*="MuiDialogContent-root"]',
3945
4044
  ...props
3946
4045
  }) {
3947
- const nodeRef = (0, import_react27.useRef)(null);
4046
+ const nodeRef = (0, import_react28.useRef)(null);
3948
4047
  return /* @__PURE__ */ React.createElement(
3949
4048
  import_react_draggable.default,
3950
4049
  {
@@ -3980,6 +4079,7 @@ function DraggablePaper({
3980
4079
  NestedSelectort,
3981
4080
  NoResult,
3982
4081
  PaginationList,
4082
+ PatternTextField,
3983
4083
  RadioButton,
3984
4084
  SearchLicensePlate,
3985
4085
  Selector,