@cwncollab-org/mui-component-kit 0.2.4 → 0.3.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/README.md CHANGED
@@ -722,6 +722,257 @@ function MyForm() {
722
722
  The RadioGroup component also accepts all standard MUI RadioGroup props except `name`, `value`, and `defaultValue` which are managed by the form field.
723
723
 
724
724
 
725
+ ### MaskedTextField Component
726
+
727
+ The MaskedTextField component provides input masking functionality, built on top of MUI's TextField component and `react-imask` library, integrated with TanStack Form. This component is useful for formatting user input such as phone numbers, credit card numbers, social security numbers, and other structured data.
728
+
729
+ ```tsx
730
+ import { useAppForm } from '@cwncollab-org/component-kit'
731
+ import { z } from 'zod'
732
+
733
+ // Define your form schema
734
+ const formSchema = z.object({
735
+ phone: z.string().min(1, 'Phone number is required'),
736
+ ssn: z.string().min(1, 'SSN is required'),
737
+ creditCard: z.string().min(1, 'Credit card number is required'),
738
+ zipCode: z.string().min(1, 'ZIP code is required'),
739
+ date: z.string().min(1, 'Date is required'),
740
+ })
741
+
742
+ function MyForm() {
743
+ const form = useAppForm({
744
+ defaultValues: {
745
+ phone: '',
746
+ ssn: '',
747
+ creditCard: '',
748
+ zipCode: '',
749
+ date: '',
750
+ },
751
+ validators: {
752
+ onSubmit: formSchema,
753
+ },
754
+ onSubmit: ({ value }) => {
755
+ console.log('Form values:', value)
756
+ },
757
+ })
758
+
759
+ return (
760
+ <>
761
+ {/* Phone number mask */}
762
+ <form.AppField
763
+ name="phone"
764
+ children={field => (
765
+ <field.MaskedTextField
766
+ mask="(000) 000-0000"
767
+ label="Phone Number"
768
+ labelBehavior="shrink"
769
+ size="small"
770
+ fullWidth
771
+ placeholder="(123) 456-7890"
772
+ />
773
+ )}
774
+ />
775
+
776
+ {/* Social Security Number mask */}
777
+ <form.AppField
778
+ name="ssn"
779
+ children={field => (
780
+ <field.MaskedTextField
781
+ mask="000-00-0000"
782
+ label="Social Security Number"
783
+ labelBehavior="shrink"
784
+ size="small"
785
+ fullWidth
786
+ placeholder="123-45-6789"
787
+ />
788
+ )}
789
+ />
790
+
791
+ {/* Credit Card Number mask */}
792
+ <form.AppField
793
+ name="creditCard"
794
+ children={field => (
795
+ <field.MaskedTextField
796
+ mask="0000 0000 0000 0000"
797
+ label="Credit Card Number"
798
+ labelBehavior="shrink"
799
+ size="small"
800
+ fullWidth
801
+ placeholder="1234 5678 9012 3456"
802
+ />
803
+ )}
804
+ />
805
+
806
+ {/* ZIP Code mask */}
807
+ <form.AppField
808
+ name="zipCode"
809
+ children={field => (
810
+ <field.MaskedTextField
811
+ mask="00000"
812
+ label="ZIP Code"
813
+ labelBehavior="shrink"
814
+ size="small"
815
+ placeholder="12345"
816
+ />
817
+ )}
818
+ />
819
+
820
+ {/* Date mask */}
821
+ <form.AppField
822
+ name="date"
823
+ children={field => (
824
+ <field.MaskedTextField
825
+ mask="00/00/0000"
826
+ label="Date (MM/DD/YYYY)"
827
+ labelBehavior="shrink"
828
+ size="small"
829
+ fullWidth
830
+ placeholder="12/31/2023"
831
+ />
832
+ )}
833
+ />
834
+
835
+ {/* SubscribeMaskedTextField automatically disables during form submission */}
836
+ <form.AppField
837
+ name="phone"
838
+ children={field => (
839
+ <field.SubscribeMaskedTextField
840
+ mask="(000) 000-0000"
841
+ label="Phone Number"
842
+ labelBehavior="auto"
843
+ size="small"
844
+ fullWidth
845
+ placeholder="(123) 456-7890"
846
+ />
847
+ )}
848
+ />
849
+ </>
850
+ )
851
+ }
852
+ ```
853
+
854
+ #### Advanced Masking Examples
855
+
856
+ ```tsx
857
+ // Custom mask patterns
858
+ function AdvancedMaskingExamples() {
859
+ const form = useAppForm({
860
+ defaultValues: {
861
+ license: '',
862
+ time: '',
863
+ currency: '',
864
+ alphanumeric: '',
865
+ ipAddress: '',
866
+ },
867
+ onSubmit: ({ value }) => {
868
+ console.log('Advanced mask values:', value)
869
+ },
870
+ })
871
+
872
+ return (
873
+ <>
874
+ {/* License plate (letters and numbers) */}
875
+ <form.AppField
876
+ name="license"
877
+ children={field => (
878
+ <field.MaskedTextField
879
+ mask="aaa-0000"
880
+ label="License Plate"
881
+ labelBehavior="shrink"
882
+ size="small"
883
+ fullWidth
884
+ placeholder="ABC-1234"
885
+ />
886
+ )}
887
+ />
888
+
889
+ {/* Time format */}
890
+ <form.AppField
891
+ name="time"
892
+ children={field => (
893
+ <field.MaskedTextField
894
+ mask="00:00"
895
+ label="Time (24h format)"
896
+ labelBehavior="shrink"
897
+ size="small"
898
+ placeholder="14:30"
899
+ />
900
+ )}
901
+ />
902
+
903
+ {/* Mixed alphanumeric */}
904
+ <form.AppField
905
+ name="alphanumeric"
906
+ children={field => (
907
+ <field.MaskedTextField
908
+ mask="aa00aa"
909
+ label="Product Code"
910
+ labelBehavior="shrink"
911
+ size="small"
912
+ placeholder="AB12CD"
913
+ />
914
+ )}
915
+ />
916
+
917
+ {/* IP Address */}
918
+ <form.AppField
919
+ name="ipAddress"
920
+ children={field => (
921
+ <field.MaskedTextField
922
+ mask="000.000.000.000"
923
+ label="IP Address"
924
+ labelBehavior="shrink"
925
+ size="small"
926
+ fullWidth
927
+ placeholder="192.168.1.1"
928
+ />
929
+ )}
930
+ />
931
+ </>
932
+ )
933
+ }
934
+ ```
935
+
936
+ #### MaskedTextField Props
937
+
938
+ | Prop | Type | Default | Description |
939
+ |------|------|---------|-------------|
940
+ | `mask` | `IMaskInputProps['mask']` | - | The mask pattern to apply to the input |
941
+ | `label` | `string` | - | The label text for the text field |
942
+ | `labelBehavior` | `'auto' \| 'shrink' \| 'static'` | `'auto'` | How the label should behave |
943
+ | `size` | `'small' \| 'medium'` | `'medium'` | The size of the text field |
944
+ | `fullWidth` | `boolean` | `false` | Whether the text field should take full width |
945
+ | `placeholder` | `string` | - | Placeholder text when the field is empty |
946
+ | `disabled` | `boolean` | `false` | Whether the text field is disabled |
947
+ | `required` | `boolean` | `false` | Whether the text field is required |
948
+ | `slotProps` | `object` | - | Props for underlying MUI components |
949
+
950
+ The MaskedTextField component accepts all standard MUI TextField props and forwards them to the underlying TextField component.
951
+
952
+ **Mask Patterns:**
953
+ - `0` - any digit (0-9)
954
+ - `a` - any letter (a-z, A-Z)
955
+ - `*` - any character
956
+ - `[]` - make input optional (example: `[00]` for optional digits)
957
+ - `{}` - include fixed part in unmasked value
958
+ - ``` - prevent symbols shift back
959
+ - `\\` - escape character to treat definition characters as fixed (example: `\\0` treats 0 as literal)
960
+
961
+ **Label Behaviors:**
962
+ - `'auto'`: Default MUI behavior - label floats when focused or has value
963
+ - `'shrink'`: Label is always in the shrunk (floating) position
964
+ - `'static'`: Label appears as a static label above the input
965
+
966
+ **Advanced Masking:**
967
+ The current MaskedTextField component supports basic mask patterns. For more advanced masking scenarios like currency formatting, custom validation, or nested patterns with custom definitions and blocks, you would need to extend the component or use IMask directly.
968
+
969
+ **Available Mask Patterns:**
970
+ The component currently supports simple string patterns where each character in the mask string represents a constraint for the corresponding input character.
971
+
972
+ **SubscribeMaskedTextField:**
973
+ The `SubscribeMaskedTextField` component has the same props as `MaskedTextField` but automatically disables the field when the form is submitting, providing better UX during form submission.
974
+
975
+
725
976
  ### Common Dialog Patterns
726
977
 
727
978
  Here are some common dialog patterns you can implement using the component kit:
@@ -0,0 +1,11 @@
1
+ import { IMaskInputProps } from 'react-imask';
2
+ export type MaskedInputProps = {
3
+ mask: IMaskInputProps<HTMLInputElement>['mask'];
4
+ pattern?: string;
5
+ definitions?: Record<string, RegExp>;
6
+ blocks?: Record<string, any>;
7
+ value?: string;
8
+ onChange?: (value: string) => void;
9
+ };
10
+ export declare function MaskedInput(props: MaskedInputProps): import("react/jsx-runtime").JSX.Element;
11
+ //# sourceMappingURL=MaskedInput.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"MaskedInput.d.ts","sourceRoot":"","sources":["../../src/lib/form/MaskedInput.tsx"],"names":[],"mappings":"AAAA,OAAO,EAAc,eAAe,EAAE,MAAM,aAAa,CAAA;AAIzD,MAAM,MAAM,gBAAgB,GAAG;IAC7B,IAAI,EAAE,eAAe,CAAC,gBAAgB,CAAC,CAAC,MAAM,CAAC,CAAA;IAC/C,OAAO,CAAC,EAAE,MAAM,CAAA;IAChB,WAAW,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAA;IACpC,MAAM,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,CAAA;IAC5B,KAAK,CAAC,EAAE,MAAM,CAAA;IACd,QAAQ,CAAC,EAAE,CAAC,KAAK,EAAE,MAAM,KAAK,IAAI,CAAA;CACnC,CAAA;AA0BD,wBAAgB,WAAW,CAAC,KAAK,EAAE,gBAAgB,2CAiBlD"}
@@ -0,0 +1,18 @@
1
+ import { jsx as _jsx } from "react/jsx-runtime";
2
+ import { IMaskInput } from 'react-imask';
3
+ import { Input as MuiInput } from '@mui/material';
4
+ import React from 'react';
5
+ const TextMaskCustom = React.forwardRef(function TextMaskCustom(props, ref) {
6
+ const { onChange, ...other } = props;
7
+ return (_jsx(IMaskInput, { ...other, inputRef: ref, onAccept: (value) => onChange({ target: { name: props.name, value } }), overwrite: true }));
8
+ });
9
+ export function MaskedInput(props) {
10
+ const { mask, value, onChange, definitions, blocks, pattern } = props;
11
+ return (_jsx(MuiInput, { value: value, onChange: e => onChange?.(e.target.value), name: 'maskedInput', inputComponent: TextMaskCustom, inputProps: {
12
+ mask: mask,
13
+ definitions: definitions,
14
+ blocks: blocks,
15
+ pattern: pattern,
16
+ } }));
17
+ }
18
+ //# sourceMappingURL=MaskedInput.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"MaskedInput.js","sourceRoot":"","sources":["../../src/lib/form/MaskedInput.tsx"],"names":[],"mappings":";AAAA,OAAO,EAAE,UAAU,EAAmB,MAAM,aAAa,CAAA;AACzD,OAAO,EAAE,KAAK,IAAI,QAAQ,EAAE,MAAM,eAAe,CAAA;AACjD,OAAO,KAAK,MAAM,OAAO,CAAA;AAmBzB,MAAM,cAAc,GAAG,KAAK,CAAC,UAAU,CACrC,SAAS,cAAc,CAAC,KAAK,EAAE,GAAG;IAChC,MAAM,EAAE,QAAQ,EAAE,GAAG,KAAK,EAAE,GAAG,KAAK,CAAA;IACpC,OAAO,CACL,KAAC,UAAU,OACJ,KAAa,EAClB,QAAQ,EAAE,GAAG,EACb,QAAQ,EAAE,CAAC,KAAU,EAAE,EAAE,CACvB,QAAQ,CAAC,EAAE,MAAM,EAAE,EAAE,IAAI,EAAE,KAAK,CAAC,IAAI,EAAE,KAAK,EAAE,EAAE,CAAC,EAEnD,SAAS,SACT,CACH,CAAA;AACH,CAAC,CACF,CAAA;AAED,MAAM,UAAU,WAAW,CAAC,KAAuB;IACjD,MAAM,EAAE,IAAI,EAAE,KAAK,EAAE,QAAQ,EAAE,WAAW,EAAE,MAAM,EAAE,OAAO,EAAE,GAAG,KAAK,CAAA;IAErE,OAAO,CACL,KAAC,QAAQ,IACP,KAAK,EAAE,KAAK,EACZ,QAAQ,EAAE,CAAC,CAAC,EAAE,CAAC,QAAQ,EAAE,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,EACzC,IAAI,EAAC,aAAa,EAClB,cAAc,EAAE,cAAqB,EACrC,UAAU,EAAE;YACV,IAAI,EAAE,IAAI;YACV,WAAW,EAAE,WAAW;YACxB,MAAM,EAAE,MAAM;YACd,OAAO,EAAE,OAAO;SACjB,GACD,CACH,CAAA;AACH,CAAC"}
@@ -0,0 +1,10 @@
1
+ import { IMaskInputProps } from 'react-imask';
2
+ import { TextFieldProps } from './TextField';
3
+ export type MaskedTextFieldProps = Omit<TextFieldProps, 'slotProps'> & {
4
+ mask: IMaskInputProps<HTMLInputElement>['mask'];
5
+ slotProps?: Omit<TextFieldProps['slotProps'], 'input'> & {
6
+ input?: Omit<TextFieldProps['slotProps'], 'input'>;
7
+ };
8
+ };
9
+ export declare function MaskedTextField(props: MaskedTextFieldProps): import("react/jsx-runtime").JSX.Element;
10
+ //# sourceMappingURL=MaskedTextField.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"MaskedTextField.d.ts","sourceRoot":"","sources":["../../src/lib/form/MaskedTextField.tsx"],"names":[],"mappings":"AACA,OAAO,EAAE,eAAe,EAAE,MAAM,aAAa,CAAA;AAC7C,OAAO,EAAa,cAAc,EAAE,MAAM,aAAa,CAAA;AAGvD,MAAM,MAAM,oBAAoB,GAAG,IAAI,CAAC,cAAc,EAAE,WAAW,CAAC,GAAG;IACrE,IAAI,EAAE,eAAe,CAAC,gBAAgB,CAAC,CAAC,MAAM,CAAC,CAAA;IAC/C,SAAS,CAAC,EAAE,IAAI,CAAC,cAAc,CAAC,WAAW,CAAC,EAAE,OAAO,CAAC,GAAG;QACvD,KAAK,CAAC,EAAE,IAAI,CAAC,cAAc,CAAC,WAAW,CAAC,EAAE,OAAO,CAAC,CAAA;KACnD,CAAA;CACF,CAAA;AAmBD,wBAAgB,eAAe,CAAC,KAAK,EAAE,oBAAoB,2CAkB1D"}
@@ -0,0 +1,22 @@
1
+ import { jsx as _jsx } from "react/jsx-runtime";
2
+ import React from 'react';
3
+ import { TextField } from './TextField';
4
+ import { IMaskInput } from 'react-imask';
5
+ const MaskedInputAdapter = React.forwardRef(function MaskedInputAdapter(props, ref) {
6
+ const { onChange, mask, ...other } = props;
7
+ return (_jsx(IMaskInput, { ...other, mask: mask, inputRef: ref, onAccept: (value) => onChange({ target: { name: props.name, value } }), overwrite: true }));
8
+ });
9
+ export function MaskedTextField(props) {
10
+ const { mask, slotProps, ...rest } = props;
11
+ return (_jsx(TextField, { ...rest, slotProps: {
12
+ ...slotProps,
13
+ input: {
14
+ inputComponent: MaskedInputAdapter,
15
+ inputProps: {
16
+ mask: mask,
17
+ },
18
+ ...slotProps?.input,
19
+ },
20
+ } }));
21
+ }
22
+ //# sourceMappingURL=MaskedTextField.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"MaskedTextField.js","sourceRoot":"","sources":["../../src/lib/form/MaskedTextField.tsx"],"names":[],"mappings":";AAAA,OAAO,KAAK,MAAM,OAAO,CAAA;AAEzB,OAAO,EAAE,SAAS,EAAkB,MAAM,aAAa,CAAA;AACvD,OAAO,EAAE,UAAU,EAAE,MAAM,aAAa,CAAA;AASxC,MAAM,kBAAkB,GAAG,KAAK,CAAC,UAAU,CACzC,SAAS,kBAAkB,CAAC,KAAK,EAAE,GAAG;IACpC,MAAM,EAAE,QAAQ,EAAE,IAAI,EAAE,GAAG,KAAK,EAAE,GAAG,KAAK,CAAA;IAC1C,OAAO,CACL,KAAC,UAAU,OACL,KAAK,EACT,IAAI,EAAE,IAAI,EACV,QAAQ,EAAE,GAAG,EACb,QAAQ,EAAE,CAAC,KAAU,EAAE,EAAE,CACvB,QAAQ,CAAC,EAAE,MAAM,EAAE,EAAE,IAAI,EAAE,KAAK,CAAC,IAAI,EAAE,KAAK,EAAE,EAAE,CAAC,EAEnD,SAAS,SACT,CACH,CAAA;AACH,CAAC,CACF,CAAA;AAED,MAAM,UAAU,eAAe,CAAC,KAA2B;IACzD,MAAM,EAAE,IAAI,EAAE,SAAS,EAAE,GAAG,IAAI,EAAE,GAAG,KAAK,CAAA;IAE1C,OAAO,CACL,KAAC,SAAS,OACJ,IAAI,EACR,SAAS,EAAE;YACT,GAAG,SAAS;YACZ,KAAK,EAAE;gBACL,cAAc,EAAE,kBAAyB;gBACzC,UAAU,EAAE;oBACV,IAAI,EAAE,IAAI;iBACX;gBACD,GAAG,SAAS,EAAE,KAAK;aACpB;SACF,GACD,CACH,CAAA;AACH,CAAC"}
@@ -0,0 +1,4 @@
1
+ import { MaskedTextFieldProps } from './MaskedTextField';
2
+ export type SubscribeMaskedTextFieldProps = MaskedTextFieldProps;
3
+ export declare function SubscribeMaskedTextField(props: SubscribeMaskedTextFieldProps): import("react/jsx-runtime").JSX.Element;
4
+ //# sourceMappingURL=SubscribeMaskedTextField.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"SubscribeMaskedTextField.d.ts","sourceRoot":"","sources":["../../src/lib/form/SubscribeMaskedTextField.tsx"],"names":[],"mappings":"AAAA,OAAO,EAAmB,oBAAoB,EAAE,MAAM,mBAAmB,CAAA;AAGzE,MAAM,MAAM,6BAA6B,GAAG,oBAAoB,CAAA;AAEhE,wBAAgB,wBAAwB,CAAC,KAAK,EAAE,6BAA6B,2CAY5E"}
@@ -0,0 +1,9 @@
1
+ import { jsx as _jsx } from "react/jsx-runtime";
2
+ import { MaskedTextField } from './MaskedTextField';
3
+ import { useFormContext } from './formContext';
4
+ export function SubscribeMaskedTextField(props) {
5
+ const form = useFormContext();
6
+ const { disabled, ...rest } = props;
7
+ return (_jsx(form.Subscribe, { selector: state => state.isSubmitting, children: isSubmitting => (_jsx(MaskedTextField, { disabled: isSubmitting || disabled, ...rest })) }));
8
+ }
9
+ //# sourceMappingURL=SubscribeMaskedTextField.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"SubscribeMaskedTextField.js","sourceRoot":"","sources":["../../src/lib/form/SubscribeMaskedTextField.tsx"],"names":[],"mappings":";AAAA,OAAO,EAAE,eAAe,EAAwB,MAAM,mBAAmB,CAAA;AACzE,OAAO,EAAE,cAAc,EAAE,MAAM,eAAe,CAAA;AAI9C,MAAM,UAAU,wBAAwB,CAAC,KAAoC;IAC3E,MAAM,IAAI,GAAG,cAAc,EAAE,CAAA;IAE7B,MAAM,EAAE,QAAQ,EAAE,GAAG,IAAI,EAAE,GAAG,KAAK,CAAA;IAEnC,OAAO,CACL,KAAC,IAAI,CAAC,SAAS,IAAC,QAAQ,EAAE,KAAK,CAAC,EAAE,CAAC,KAAK,CAAC,YAAY,YAClD,YAAY,CAAC,EAAE,CAAC,CACf,KAAC,eAAe,IAAC,QAAQ,EAAE,YAAY,IAAI,QAAQ,KAAM,IAAI,GAAI,CAClE,GACc,CAClB,CAAA;AACH,CAAC"}
@@ -15,6 +15,8 @@ import { SubscribeDatePicker } from './SubscribeDatePicker';
15
15
  import { SubscribeTimePicker } from './SubscribeTimePicker';
16
16
  import { RadioGroup } from './RadioGroup';
17
17
  import { SubscribeRadioGroup } from './SubscribeRadioGroup';
18
+ import { MaskedTextField } from './MaskedTextField';
19
+ import { SubscribeMaskedTextField } from './SubscribeMaskedTextField';
18
20
  export declare const useAppForm: <TFormData, TOnMount extends import("@tanstack/form-core").FormValidateOrFn<TFormData> | undefined, TOnChange extends import("@tanstack/form-core").FormValidateOrFn<TFormData> | undefined, TOnChangeAsync extends import("@tanstack/form-core").FormAsyncValidateOrFn<TFormData> | undefined, TOnBlur extends import("@tanstack/form-core").FormValidateOrFn<TFormData> | undefined, TOnBlurAsync extends import("@tanstack/form-core").FormAsyncValidateOrFn<TFormData> | undefined, TOnSubmit extends import("@tanstack/form-core").FormValidateOrFn<TFormData> | undefined, TOnSubmitAsync extends import("@tanstack/form-core").FormAsyncValidateOrFn<TFormData> | undefined, TOnServer extends import("@tanstack/form-core").FormAsyncValidateOrFn<TFormData> | undefined, TSubmitMeta>(props: import("@tanstack/form-core").FormOptions<TFormData, TOnMount, TOnChange, TOnChangeAsync, TOnBlur, TOnBlurAsync, TOnSubmit, TOnSubmitAsync, TOnServer, TSubmitMeta>) => import("@tanstack/form-core").FormApi<TFormData, TOnMount, TOnChange, TOnChangeAsync, TOnBlur, TOnBlurAsync, TOnSubmit, TOnSubmitAsync, TOnServer, TSubmitMeta> & import("@tanstack/react-form").ReactFormApi<TFormData, TOnMount, TOnChange, TOnChangeAsync, TOnBlur, TOnBlurAsync, TOnSubmit, TOnSubmitAsync, TOnServer, TSubmitMeta> & NoInfer<{
19
21
  readonly SubscribeButton: typeof SubscribeButton;
20
22
  }> & {
@@ -23,12 +25,14 @@ export declare const useAppForm: <TFormData, TOnMount extends import("@tanstack/
23
25
  readonly TextField: typeof TextField;
24
26
  readonly Checkbox: typeof Checkbox;
25
27
  readonly Select: typeof Select;
28
+ readonly MaskedTextField: typeof MaskedTextField;
26
29
  readonly MultiSelect: typeof MultiSelect;
27
30
  readonly RadioGroup: typeof RadioGroup;
28
31
  readonly DatePicker: typeof DatePicker;
29
32
  readonly TimePicker: typeof TimePicker;
30
33
  readonly SubscribeAutocomplete: typeof SubscribeAutocomplete;
31
34
  readonly SubscribeTextField: typeof SubscribeTextField;
35
+ readonly SubscribeMaskedTextField: typeof SubscribeMaskedTextField;
32
36
  readonly SubscribeSelect: typeof SubscribeSelect;
33
37
  readonly SubscribeMultiSelect: typeof SubscribeMultiSelect;
34
38
  readonly SubscribeCheckbox: typeof SubscribeCheckbox;
@@ -42,12 +46,14 @@ export declare const useAppForm: <TFormData, TOnMount extends import("@tanstack/
42
46
  readonly TextField: typeof TextField;
43
47
  readonly Checkbox: typeof Checkbox;
44
48
  readonly Select: typeof Select;
49
+ readonly MaskedTextField: typeof MaskedTextField;
45
50
  readonly MultiSelect: typeof MultiSelect;
46
51
  readonly RadioGroup: typeof RadioGroup;
47
52
  readonly DatePicker: typeof DatePicker;
48
53
  readonly TimePicker: typeof TimePicker;
49
54
  readonly SubscribeAutocomplete: typeof SubscribeAutocomplete;
50
55
  readonly SubscribeTextField: typeof SubscribeTextField;
56
+ readonly SubscribeMaskedTextField: typeof SubscribeMaskedTextField;
51
57
  readonly SubscribeSelect: typeof SubscribeSelect;
52
58
  readonly SubscribeMultiSelect: typeof SubscribeMultiSelect;
53
59
  readonly SubscribeCheckbox: typeof SubscribeCheckbox;
@@ -65,12 +71,14 @@ export declare const useAppForm: <TFormData, TOnMount extends import("@tanstack/
65
71
  readonly TextField: typeof TextField;
66
72
  readonly Checkbox: typeof Checkbox;
67
73
  readonly Select: typeof Select;
74
+ readonly MaskedTextField: typeof MaskedTextField;
68
75
  readonly MultiSelect: typeof MultiSelect;
69
76
  readonly RadioGroup: typeof RadioGroup;
70
77
  readonly DatePicker: typeof DatePicker;
71
78
  readonly TimePicker: typeof TimePicker;
72
79
  readonly SubscribeAutocomplete: typeof SubscribeAutocomplete;
73
80
  readonly SubscribeTextField: typeof SubscribeTextField;
81
+ readonly SubscribeMaskedTextField: typeof SubscribeMaskedTextField;
74
82
  readonly SubscribeSelect: typeof SubscribeSelect;
75
83
  readonly SubscribeMultiSelect: typeof SubscribeMultiSelect;
76
84
  readonly SubscribeCheckbox: typeof SubscribeCheckbox;
@@ -1 +1 @@
1
- {"version":3,"file":"formHooks.d.ts","sourceRoot":"","sources":["../../src/lib/form/formHooks.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,YAAY,EAAE,MAAM,gBAAgB,CAAA;AAC7C,OAAO,EAAE,SAAS,EAAE,MAAM,aAAa,CAAA;AACvC,OAAO,EAAE,QAAQ,EAAE,MAAM,YAAY,CAAA;AACrC,OAAO,EAAE,MAAM,EAAE,MAAM,UAAU,CAAA;AACjC,OAAO,EAAE,UAAU,EAAE,MAAM,cAAc,CAAA;AACzC,OAAO,EAAE,UAAU,EAAE,MAAM,cAAc,CAAA;AAEzC,OAAO,EAAE,eAAe,EAAE,MAAM,mBAAmB,CAAA;AACnD,OAAO,EAAE,WAAW,EAAE,MAAM,eAAe,CAAA;AAC3C,OAAO,EAAE,qBAAqB,EAAE,MAAM,yBAAyB,CAAA;AAC/D,OAAO,EAAE,kBAAkB,EAAE,MAAM,sBAAsB,CAAA;AACzD,OAAO,EAAE,eAAe,EAAE,MAAM,mBAAmB,CAAA;AACnD,OAAO,EAAE,oBAAoB,EAAE,MAAM,wBAAwB,CAAA;AAC7D,OAAO,EAAE,iBAAiB,EAAE,MAAM,qBAAqB,CAAA;AACvD,OAAO,EAAE,mBAAmB,EAAE,MAAM,uBAAuB,CAAA;AAC3D,OAAO,EAAE,mBAAmB,EAAE,MAAM,uBAAuB,CAAA;AAC3D,OAAO,EAAE,UAAU,EAAE,MAAM,cAAc,CAAA;AACzC,OAAO,EAAE,mBAAmB,EAAE,MAAM,uBAAuB,CAAA;AAE3D,eAAO,MAAQ,UAAU;;;;;;;;;;;;;;;;;;;;;;GAAE,QAAQ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;kCAsBjC,CAAA"}
1
+ {"version":3,"file":"formHooks.d.ts","sourceRoot":"","sources":["../../src/lib/form/formHooks.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,YAAY,EAAE,MAAM,gBAAgB,CAAA;AAC7C,OAAO,EAAE,SAAS,EAAE,MAAM,aAAa,CAAA;AACvC,OAAO,EAAE,QAAQ,EAAE,MAAM,YAAY,CAAA;AACrC,OAAO,EAAE,MAAM,EAAE,MAAM,UAAU,CAAA;AACjC,OAAO,EAAE,UAAU,EAAE,MAAM,cAAc,CAAA;AACzC,OAAO,EAAE,UAAU,EAAE,MAAM,cAAc,CAAA;AAEzC,OAAO,EAAE,eAAe,EAAE,MAAM,mBAAmB,CAAA;AACnD,OAAO,EAAE,WAAW,EAAE,MAAM,eAAe,CAAA;AAC3C,OAAO,EAAE,qBAAqB,EAAE,MAAM,yBAAyB,CAAA;AAC/D,OAAO,EAAE,kBAAkB,EAAE,MAAM,sBAAsB,CAAA;AACzD,OAAO,EAAE,eAAe,EAAE,MAAM,mBAAmB,CAAA;AACnD,OAAO,EAAE,oBAAoB,EAAE,MAAM,wBAAwB,CAAA;AAC7D,OAAO,EAAE,iBAAiB,EAAE,MAAM,qBAAqB,CAAA;AACvD,OAAO,EAAE,mBAAmB,EAAE,MAAM,uBAAuB,CAAA;AAC3D,OAAO,EAAE,mBAAmB,EAAE,MAAM,uBAAuB,CAAA;AAC3D,OAAO,EAAE,UAAU,EAAE,MAAM,cAAc,CAAA;AACzC,OAAO,EAAE,mBAAmB,EAAE,MAAM,uBAAuB,CAAA;AAC3D,OAAO,EAAE,eAAe,EAAE,MAAM,mBAAmB,CAAA;AACnD,OAAO,EAAE,wBAAwB,EAAE,MAAM,4BAA4B,CAAA;AAErE,eAAO,MAAQ,UAAU;;;;;;;;;;;;;;;;;;;;;;;;GAAE,QAAQ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;kCAwBjC,CAAA"}
@@ -17,6 +17,8 @@ import { SubscribeDatePicker } from './SubscribeDatePicker';
17
17
  import { SubscribeTimePicker } from './SubscribeTimePicker';
18
18
  import { RadioGroup } from './RadioGroup';
19
19
  import { SubscribeRadioGroup } from './SubscribeRadioGroup';
20
+ import { MaskedTextField } from './MaskedTextField';
21
+ import { SubscribeMaskedTextField } from './SubscribeMaskedTextField';
20
22
  export const { useAppForm, withForm } = createFormHook({
21
23
  fieldContext,
22
24
  formContext,
@@ -25,12 +27,14 @@ export const { useAppForm, withForm } = createFormHook({
25
27
  TextField,
26
28
  Checkbox,
27
29
  Select,
30
+ MaskedTextField,
28
31
  MultiSelect,
29
32
  RadioGroup,
30
33
  DatePicker,
31
34
  TimePicker,
32
35
  SubscribeAutocomplete,
33
36
  SubscribeTextField,
37
+ SubscribeMaskedTextField,
34
38
  SubscribeSelect,
35
39
  SubscribeMultiSelect,
36
40
  SubscribeCheckbox,
@@ -1 +1 @@
1
- {"version":3,"file":"formHooks.js","sourceRoot":"","sources":["../../src/lib/form/formHooks.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,cAAc,EAAE,MAAM,sBAAsB,CAAA;AACrD,OAAO,EAAE,YAAY,EAAE,MAAM,gBAAgB,CAAA;AAC7C,OAAO,EAAE,SAAS,EAAE,MAAM,aAAa,CAAA;AACvC,OAAO,EAAE,QAAQ,EAAE,MAAM,YAAY,CAAA;AACrC,OAAO,EAAE,MAAM,EAAE,MAAM,UAAU,CAAA;AACjC,OAAO,EAAE,UAAU,EAAE,MAAM,cAAc,CAAA;AACzC,OAAO,EAAE,UAAU,EAAE,MAAM,cAAc,CAAA;AACzC,OAAO,EAAE,YAAY,EAAE,WAAW,EAAE,MAAM,eAAe,CAAA;AACzD,OAAO,EAAE,eAAe,EAAE,MAAM,mBAAmB,CAAA;AACnD,OAAO,EAAE,WAAW,EAAE,MAAM,eAAe,CAAA;AAC3C,OAAO,EAAE,qBAAqB,EAAE,MAAM,yBAAyB,CAAA;AAC/D,OAAO,EAAE,kBAAkB,EAAE,MAAM,sBAAsB,CAAA;AACzD,OAAO,EAAE,eAAe,EAAE,MAAM,mBAAmB,CAAA;AACnD,OAAO,EAAE,oBAAoB,EAAE,MAAM,wBAAwB,CAAA;AAC7D,OAAO,EAAE,iBAAiB,EAAE,MAAM,qBAAqB,CAAA;AACvD,OAAO,EAAE,mBAAmB,EAAE,MAAM,uBAAuB,CAAA;AAC3D,OAAO,EAAE,mBAAmB,EAAE,MAAM,uBAAuB,CAAA;AAC3D,OAAO,EAAE,UAAU,EAAE,MAAM,cAAc,CAAA;AACzC,OAAO,EAAE,mBAAmB,EAAE,MAAM,uBAAuB,CAAA;AAE3D,MAAM,CAAC,MAAM,EAAE,UAAU,EAAE,QAAQ,EAAE,GAAG,cAAc,CAAC;IACrD,YAAY;IACZ,WAAW;IACX,eAAe,EAAE;QACf,YAAY;QACZ,SAAS;QACT,QAAQ;QACR,MAAM;QACN,WAAW;QACX,UAAU;QACV,UAAU;QACV,UAAU;QACV,qBAAqB;QACrB,kBAAkB;QAClB,eAAe;QACf,oBAAoB;QACpB,iBAAiB;QACjB,mBAAmB;QACnB,mBAAmB;QACnB,mBAAmB;KACpB;IACD,cAAc,EAAE,EAAE,eAAe,EAAE;CACpC,CAAC,CAAA"}
1
+ {"version":3,"file":"formHooks.js","sourceRoot":"","sources":["../../src/lib/form/formHooks.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,cAAc,EAAE,MAAM,sBAAsB,CAAA;AACrD,OAAO,EAAE,YAAY,EAAE,MAAM,gBAAgB,CAAA;AAC7C,OAAO,EAAE,SAAS,EAAE,MAAM,aAAa,CAAA;AACvC,OAAO,EAAE,QAAQ,EAAE,MAAM,YAAY,CAAA;AACrC,OAAO,EAAE,MAAM,EAAE,MAAM,UAAU,CAAA;AACjC,OAAO,EAAE,UAAU,EAAE,MAAM,cAAc,CAAA;AACzC,OAAO,EAAE,UAAU,EAAE,MAAM,cAAc,CAAA;AACzC,OAAO,EAAE,YAAY,EAAE,WAAW,EAAE,MAAM,eAAe,CAAA;AACzD,OAAO,EAAE,eAAe,EAAE,MAAM,mBAAmB,CAAA;AACnD,OAAO,EAAE,WAAW,EAAE,MAAM,eAAe,CAAA;AAC3C,OAAO,EAAE,qBAAqB,EAAE,MAAM,yBAAyB,CAAA;AAC/D,OAAO,EAAE,kBAAkB,EAAE,MAAM,sBAAsB,CAAA;AACzD,OAAO,EAAE,eAAe,EAAE,MAAM,mBAAmB,CAAA;AACnD,OAAO,EAAE,oBAAoB,EAAE,MAAM,wBAAwB,CAAA;AAC7D,OAAO,EAAE,iBAAiB,EAAE,MAAM,qBAAqB,CAAA;AACvD,OAAO,EAAE,mBAAmB,EAAE,MAAM,uBAAuB,CAAA;AAC3D,OAAO,EAAE,mBAAmB,EAAE,MAAM,uBAAuB,CAAA;AAC3D,OAAO,EAAE,UAAU,EAAE,MAAM,cAAc,CAAA;AACzC,OAAO,EAAE,mBAAmB,EAAE,MAAM,uBAAuB,CAAA;AAC3D,OAAO,EAAE,eAAe,EAAE,MAAM,mBAAmB,CAAA;AACnD,OAAO,EAAE,wBAAwB,EAAE,MAAM,4BAA4B,CAAA;AAErE,MAAM,CAAC,MAAM,EAAE,UAAU,EAAE,QAAQ,EAAE,GAAG,cAAc,CAAC;IACrD,YAAY;IACZ,WAAW;IACX,eAAe,EAAE;QACf,YAAY;QACZ,SAAS;QACT,QAAQ;QACR,MAAM;QACN,eAAe;QACf,WAAW;QACX,UAAU;QACV,UAAU;QACV,UAAU;QACV,qBAAqB;QACrB,kBAAkB;QAClB,wBAAwB;QACxB,eAAe;QACf,oBAAoB;QACpB,iBAAiB;QACjB,mBAAmB;QACnB,mBAAmB;QACnB,mBAAmB;KACpB;IACD,cAAc,EAAE,EAAE,eAAe,EAAE;CACpC,CAAC,CAAA"}
@@ -15,4 +15,7 @@ export { type SubscribeRadioGroupProps } from './SubscribeRadioGroup';
15
15
  export { type SubscribeSelectProps } from './SubscribeSelect';
16
16
  export { type SubscribeTextFieldProps } from './SubscribeTextField';
17
17
  export { type SubscribeTimePickerProps } from './SubscribeTimePicker';
18
+ export { MaskedInput, type MaskedInputProps } from './MaskedInput';
19
+ export { MaskedTextField, type MaskedTextFieldProps } from './MaskedTextField';
20
+ export { SubscribeMaskedTextField, type SubscribeMaskedTextFieldProps, } from './SubscribeMaskedTextField';
18
21
  //# sourceMappingURL=index.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/lib/form/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,QAAQ,EAAE,MAAM,aAAa,CAAA;AAClD,OAAO,EAAE,KAAK,iBAAiB,EAAE,MAAM,gBAAgB,CAAA;AACvD,OAAO,EAAE,KAAK,aAAa,EAAE,MAAM,YAAY,CAAA;AAC/C,OAAO,EAAE,KAAK,eAAe,EAAE,MAAM,cAAc,CAAA;AACnD,OAAO,EAAE,KAAK,gBAAgB,EAAE,MAAM,eAAe,CAAA;AACrD,OAAO,EAAE,KAAK,eAAe,EAAE,MAAM,cAAc,CAAA;AACnD,OAAO,EAAE,KAAK,WAAW,EAAE,MAAM,UAAU,CAAA;AAC3C,OAAO,EAAE,KAAK,cAAc,EAAE,MAAM,aAAa,CAAA;AACjD,OAAO,EAAE,KAAK,eAAe,EAAE,MAAM,cAAc,CAAA;AACnD,OAAO,EAAE,KAAK,0BAA0B,EAAE,MAAM,yBAAyB,CAAA;AACzE,OAAO,EAAE,KAAK,sBAAsB,EAAE,MAAM,qBAAqB,CAAA;AACjE,OAAO,EAAE,KAAK,wBAAwB,EAAE,MAAM,uBAAuB,CAAA;AACrE,OAAO,EAAE,KAAK,yBAAyB,EAAE,MAAM,wBAAwB,CAAA;AACvE,OAAO,EAAE,KAAK,wBAAwB,EAAE,MAAM,uBAAuB,CAAA;AACrE,OAAO,EAAE,KAAK,oBAAoB,EAAE,MAAM,mBAAmB,CAAA;AAC7D,OAAO,EAAE,KAAK,uBAAuB,EAAE,MAAM,sBAAsB,CAAA;AACnE,OAAO,EAAE,KAAK,wBAAwB,EAAE,MAAM,uBAAuB,CAAA"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/lib/form/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,QAAQ,EAAE,MAAM,aAAa,CAAA;AAClD,OAAO,EAAE,KAAK,iBAAiB,EAAE,MAAM,gBAAgB,CAAA;AACvD,OAAO,EAAE,KAAK,aAAa,EAAE,MAAM,YAAY,CAAA;AAC/C,OAAO,EAAE,KAAK,eAAe,EAAE,MAAM,cAAc,CAAA;AACnD,OAAO,EAAE,KAAK,gBAAgB,EAAE,MAAM,eAAe,CAAA;AACrD,OAAO,EAAE,KAAK,eAAe,EAAE,MAAM,cAAc,CAAA;AACnD,OAAO,EAAE,KAAK,WAAW,EAAE,MAAM,UAAU,CAAA;AAC3C,OAAO,EAAE,KAAK,cAAc,EAAE,MAAM,aAAa,CAAA;AACjD,OAAO,EAAE,KAAK,eAAe,EAAE,MAAM,cAAc,CAAA;AACnD,OAAO,EAAE,KAAK,0BAA0B,EAAE,MAAM,yBAAyB,CAAA;AACzE,OAAO,EAAE,KAAK,sBAAsB,EAAE,MAAM,qBAAqB,CAAA;AACjE,OAAO,EAAE,KAAK,wBAAwB,EAAE,MAAM,uBAAuB,CAAA;AACrE,OAAO,EAAE,KAAK,yBAAyB,EAAE,MAAM,wBAAwB,CAAA;AACvE,OAAO,EAAE,KAAK,wBAAwB,EAAE,MAAM,uBAAuB,CAAA;AACrE,OAAO,EAAE,KAAK,oBAAoB,EAAE,MAAM,mBAAmB,CAAA;AAC7D,OAAO,EAAE,KAAK,uBAAuB,EAAE,MAAM,sBAAsB,CAAA;AACnE,OAAO,EAAE,KAAK,wBAAwB,EAAE,MAAM,uBAAuB,CAAA;AACrE,OAAO,EAAE,WAAW,EAAE,KAAK,gBAAgB,EAAE,MAAM,eAAe,CAAA;AAClE,OAAO,EAAE,eAAe,EAAE,KAAK,oBAAoB,EAAE,MAAM,mBAAmB,CAAA;AAC9E,OAAO,EACL,wBAAwB,EACxB,KAAK,6BAA6B,GACnC,MAAM,4BAA4B,CAAA"}
@@ -1,2 +1,5 @@
1
1
  export { useAppForm, withForm } from './formHooks';
2
+ export { MaskedInput } from './MaskedInput';
3
+ export { MaskedTextField } from './MaskedTextField';
4
+ export { SubscribeMaskedTextField, } from './SubscribeMaskedTextField';
2
5
  //# sourceMappingURL=index.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/lib/form/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,QAAQ,EAAE,MAAM,aAAa,CAAA"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/lib/form/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,QAAQ,EAAE,MAAM,aAAa,CAAA;AAiBlD,OAAO,EAAE,WAAW,EAAyB,MAAM,eAAe,CAAA;AAClE,OAAO,EAAE,eAAe,EAA6B,MAAM,mBAAmB,CAAA;AAC9E,OAAO,EACL,wBAAwB,GAEzB,MAAM,4BAA4B,CAAA"}
package/dist/index.d.ts CHANGED
@@ -1,5 +1,5 @@
1
1
  export { DialogsProvider, DialogCloseButton, useDialogs, type DialogProps, type DialogResult, } from './dialogs';
2
- export { useAppForm, withForm, type CheckboxProps, type DatePickerProps, type MultiSelectProps, type SelectProps, type TextFieldProps, type TimePickerProps, type SubscribeCheckboxProps, type SubscribeDatePickerProps, type SubscribeMultiSelectProps, type SubscribeSelectProps, type SubscribeTextFieldProps, type SubscribeTimePickerProps, } from './form';
2
+ export { useAppForm, withForm, type CheckboxProps, type DatePickerProps, type MultiSelectProps, type SelectProps, type TextFieldProps, type TimePickerProps, type SubscribeCheckboxProps, type SubscribeDatePickerProps, type SubscribeMultiSelectProps, type SubscribeSelectProps, type SubscribeTextFieldProps, type SubscribeTimePickerProps, MaskedInput, type MaskedInputProps, MaskedTextField, type MaskedTextFieldProps, SubscribeMaskedTextField, type SubscribeMaskedTextFieldProps, } from './form';
3
3
  export { RouterTab, TabLabel, useRouterTabsValue } from './tabs';
4
4
  export { useMaterialRouterTable, tableSearchSchema } from './table';
5
5
  export { useConfirmDialog, useConfirmDeleteDialog } from './common-dialogs';
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/lib/index.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,eAAe,EACf,iBAAiB,EACjB,UAAU,EACV,KAAK,WAAW,EAChB,KAAK,YAAY,GAClB,MAAM,WAAW,CAAA;AAClB,OAAO,EACL,UAAU,EACV,QAAQ,EACR,KAAK,aAAa,EAClB,KAAK,eAAe,EACpB,KAAK,gBAAgB,EACrB,KAAK,WAAW,EAChB,KAAK,cAAc,EACnB,KAAK,eAAe,EACpB,KAAK,sBAAsB,EAC3B,KAAK,wBAAwB,EAC7B,KAAK,yBAAyB,EAC9B,KAAK,oBAAoB,EACzB,KAAK,uBAAuB,EAC5B,KAAK,wBAAwB,GAC9B,MAAM,QAAQ,CAAA;AACf,OAAO,EAAE,SAAS,EAAE,QAAQ,EAAE,kBAAkB,EAAE,MAAM,QAAQ,CAAA;AAChE,OAAO,EAAE,sBAAsB,EAAE,iBAAiB,EAAE,MAAM,SAAS,CAAA;AACnE,OAAO,EAAE,gBAAgB,EAAE,sBAAsB,EAAE,MAAM,kBAAkB,CAAA"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/lib/index.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,eAAe,EACf,iBAAiB,EACjB,UAAU,EACV,KAAK,WAAW,EAChB,KAAK,YAAY,GAClB,MAAM,WAAW,CAAA;AAClB,OAAO,EACL,UAAU,EACV,QAAQ,EACR,KAAK,aAAa,EAClB,KAAK,eAAe,EACpB,KAAK,gBAAgB,EACrB,KAAK,WAAW,EAChB,KAAK,cAAc,EACnB,KAAK,eAAe,EACpB,KAAK,sBAAsB,EAC3B,KAAK,wBAAwB,EAC7B,KAAK,yBAAyB,EAC9B,KAAK,oBAAoB,EACzB,KAAK,uBAAuB,EAC5B,KAAK,wBAAwB,EAC7B,WAAW,EACX,KAAK,gBAAgB,EACrB,eAAe,EACf,KAAK,oBAAoB,EACzB,wBAAwB,EACxB,KAAK,6BAA6B,GACnC,MAAM,QAAQ,CAAA;AACf,OAAO,EAAE,SAAS,EAAE,QAAQ,EAAE,kBAAkB,EAAE,MAAM,QAAQ,CAAA;AAChE,OAAO,EAAE,sBAAsB,EAAE,iBAAiB,EAAE,MAAM,SAAS,CAAA;AACnE,OAAO,EAAE,gBAAgB,EAAE,sBAAsB,EAAE,MAAM,kBAAkB,CAAA"}
package/dist/index.js CHANGED
@@ -1,5 +1,5 @@
1
1
  export { DialogsProvider, DialogCloseButton, useDialogs, } from './dialogs';
2
- export { useAppForm, withForm, } from './form';
2
+ export { useAppForm, withForm, MaskedInput, MaskedTextField, SubscribeMaskedTextField, } from './form';
3
3
  export { RouterTab, TabLabel, useRouterTabsValue } from './tabs';
4
4
  export { useMaterialRouterTable, tableSearchSchema } from './table';
5
5
  export { useConfirmDialog, useConfirmDeleteDialog } from './common-dialogs';
package/dist/index.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/lib/index.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,eAAe,EACf,iBAAiB,EACjB,UAAU,GAGX,MAAM,WAAW,CAAA;AAClB,OAAO,EACL,UAAU,EACV,QAAQ,GAaT,MAAM,QAAQ,CAAA;AACf,OAAO,EAAE,SAAS,EAAE,QAAQ,EAAE,kBAAkB,EAAE,MAAM,QAAQ,CAAA;AAChE,OAAO,EAAE,sBAAsB,EAAE,iBAAiB,EAAE,MAAM,SAAS,CAAA;AACnE,OAAO,EAAE,gBAAgB,EAAE,sBAAsB,EAAE,MAAM,kBAAkB,CAAA"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/lib/index.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,eAAe,EACf,iBAAiB,EACjB,UAAU,GAGX,MAAM,WAAW,CAAA;AAClB,OAAO,EACL,UAAU,EACV,QAAQ,EAaR,WAAW,EAEX,eAAe,EAEf,wBAAwB,GAEzB,MAAM,QAAQ,CAAA;AACf,OAAO,EAAE,SAAS,EAAE,QAAQ,EAAE,kBAAkB,EAAE,MAAM,QAAQ,CAAA;AAChE,OAAO,EAAE,sBAAsB,EAAE,iBAAiB,EAAE,MAAM,SAAS,CAAA;AACnE,OAAO,EAAE,gBAAgB,EAAE,sBAAsB,EAAE,MAAM,kBAAkB,CAAA"}
package/package.json CHANGED
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "name": "@cwncollab-org/mui-component-kit",
3
3
  "private": false,
4
- "version": "0.2.4",
4
+ "version": "0.3.1",
5
5
  "type": "module",
6
6
  "main": "./dist/index.js",
7
7
  "module": "./dist/index.js",
@@ -43,7 +43,8 @@
43
43
  "@tanstack/react-router": "^1.116.0",
44
44
  "@tanstack/react-table": "^8.21.3",
45
45
  "dayjs": "^1.11.13",
46
- "material-react-table": "^3.2.1"
46
+ "material-react-table": "^3.2.1",
47
+ "react-imask": "^7.6.1"
47
48
  },
48
49
  "devDependencies": {
49
50
  "@eslint/js": "^9.22.0",