react-native-mantine 0.7.0 → 0.9.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (81) hide show
  1. package/README.md +37 -5
  2. package/lib/commonjs/components/Group/index.js.map +1 -1
  3. package/lib/commonjs/components/Radio/index.js +62 -6
  4. package/lib/commonjs/components/Radio/index.js.map +1 -1
  5. package/lib/commonjs/components/Switch/index.js +6 -2
  6. package/lib/commonjs/components/Switch/index.js.map +1 -1
  7. package/lib/commonjs/hooks/index.js +28 -0
  8. package/lib/commonjs/hooks/index.js.map +1 -0
  9. package/lib/commonjs/hooks/use-form/index.js +40 -0
  10. package/lib/commonjs/hooks/use-form/index.js.map +1 -0
  11. package/lib/commonjs/hooks/use-form/types.js +2 -0
  12. package/lib/commonjs/hooks/use-form/types.js.map +1 -0
  13. package/lib/commonjs/hooks/use-form/useForm.js +418 -0
  14. package/lib/commonjs/hooks/use-form/useForm.js.map +1 -0
  15. package/lib/commonjs/hooks/use-form/validators.js +135 -0
  16. package/lib/commonjs/hooks/use-form/validators.js.map +1 -0
  17. package/lib/commonjs/index.js +11 -0
  18. package/lib/commonjs/index.js.map +1 -1
  19. package/lib/module/components/Group/index.js.map +1 -1
  20. package/lib/module/components/Radio/index.js +64 -8
  21. package/lib/module/components/Radio/index.js.map +1 -1
  22. package/lib/module/components/Switch/index.js +6 -2
  23. package/lib/module/components/Switch/index.js.map +1 -1
  24. package/lib/module/hooks/index.js +5 -0
  25. package/lib/module/hooks/index.js.map +1 -0
  26. package/lib/module/hooks/use-form/index.js +6 -0
  27. package/lib/module/hooks/use-form/index.js.map +1 -0
  28. package/lib/module/hooks/use-form/types.js +2 -0
  29. package/lib/module/hooks/use-form/types.js.map +1 -0
  30. package/lib/module/hooks/use-form/useForm.js +414 -0
  31. package/lib/module/hooks/use-form/useForm.js.map +1 -0
  32. package/lib/module/hooks/use-form/validators.js +122 -0
  33. package/lib/module/hooks/use-form/validators.js.map +1 -0
  34. package/lib/module/index.js +1 -0
  35. package/lib/module/index.js.map +1 -1
  36. package/lib/typescript/commonjs/src/components/Group/index.d.ts +1 -0
  37. package/lib/typescript/commonjs/src/components/Group/index.d.ts.map +1 -1
  38. package/lib/typescript/commonjs/src/components/Radio/index.d.ts +22 -1
  39. package/lib/typescript/commonjs/src/components/Radio/index.d.ts.map +1 -1
  40. package/lib/typescript/commonjs/src/components/Switch/index.d.ts +3 -3
  41. package/lib/typescript/commonjs/src/components/Switch/index.d.ts.map +1 -1
  42. package/lib/typescript/commonjs/src/hooks/index.d.ts +3 -0
  43. package/lib/typescript/commonjs/src/hooks/index.d.ts.map +1 -0
  44. package/lib/typescript/commonjs/src/hooks/use-form/index.d.ts +4 -0
  45. package/lib/typescript/commonjs/src/hooks/use-form/index.d.ts.map +1 -0
  46. package/lib/typescript/commonjs/src/hooks/use-form/types.d.ts +119 -0
  47. package/lib/typescript/commonjs/src/hooks/use-form/types.d.ts.map +1 -0
  48. package/lib/typescript/commonjs/src/hooks/use-form/useForm.d.ts +30 -0
  49. package/lib/typescript/commonjs/src/hooks/use-form/useForm.d.ts.map +1 -0
  50. package/lib/typescript/commonjs/src/hooks/use-form/validators.d.ts +41 -0
  51. package/lib/typescript/commonjs/src/hooks/use-form/validators.d.ts.map +1 -0
  52. package/lib/typescript/commonjs/src/index.d.ts +1 -0
  53. package/lib/typescript/commonjs/src/index.d.ts.map +1 -1
  54. package/lib/typescript/module/src/components/Group/index.d.ts +1 -0
  55. package/lib/typescript/module/src/components/Group/index.d.ts.map +1 -1
  56. package/lib/typescript/module/src/components/Radio/index.d.ts +22 -1
  57. package/lib/typescript/module/src/components/Radio/index.d.ts.map +1 -1
  58. package/lib/typescript/module/src/components/Switch/index.d.ts +3 -3
  59. package/lib/typescript/module/src/components/Switch/index.d.ts.map +1 -1
  60. package/lib/typescript/module/src/hooks/index.d.ts +3 -0
  61. package/lib/typescript/module/src/hooks/index.d.ts.map +1 -0
  62. package/lib/typescript/module/src/hooks/use-form/index.d.ts +4 -0
  63. package/lib/typescript/module/src/hooks/use-form/index.d.ts.map +1 -0
  64. package/lib/typescript/module/src/hooks/use-form/types.d.ts +119 -0
  65. package/lib/typescript/module/src/hooks/use-form/types.d.ts.map +1 -0
  66. package/lib/typescript/module/src/hooks/use-form/useForm.d.ts +30 -0
  67. package/lib/typescript/module/src/hooks/use-form/useForm.d.ts.map +1 -0
  68. package/lib/typescript/module/src/hooks/use-form/validators.d.ts +41 -0
  69. package/lib/typescript/module/src/hooks/use-form/validators.d.ts.map +1 -0
  70. package/lib/typescript/module/src/index.d.ts +1 -0
  71. package/lib/typescript/module/src/index.d.ts.map +1 -1
  72. package/package.json +1 -1
  73. package/src/components/Group/index.tsx +1 -0
  74. package/src/components/Radio/index.tsx +99 -8
  75. package/src/components/Switch/index.tsx +10 -6
  76. package/src/hooks/index.ts +2 -0
  77. package/src/hooks/use-form/index.ts +3 -0
  78. package/src/hooks/use-form/types.ts +169 -0
  79. package/src/hooks/use-form/useForm.ts +436 -0
  80. package/src/hooks/use-form/validators.ts +143 -0
  81. package/src/index.tsx +1 -0
@@ -0,0 +1,122 @@
1
+ "use strict";
2
+
3
+ /**
4
+ * Built-in validators
5
+ */
6
+
7
+ /**
8
+ * Validates that a value is not empty
9
+ */
10
+ export const isNotEmpty = (message = 'This field is required') => {
11
+ return value => {
12
+ if (value === null || value === undefined || value === '') {
13
+ return message;
14
+ }
15
+ if (Array.isArray(value) && value.length === 0) {
16
+ return message;
17
+ }
18
+ if (typeof value === 'string' && value.trim().length === 0) {
19
+ return message;
20
+ }
21
+ return null;
22
+ };
23
+ };
24
+
25
+ /**
26
+ * Validates minimum length
27
+ */
28
+ export const minLength = (min, message) => {
29
+ return value => {
30
+ if (!value) return null;
31
+ if (value.length < min) {
32
+ return message || `Must be at least ${min} characters`;
33
+ }
34
+ return null;
35
+ };
36
+ };
37
+
38
+ /**
39
+ * Validates maximum length
40
+ */
41
+ export const maxLength = (max, message) => {
42
+ return value => {
43
+ if (!value) return null;
44
+ if (value.length > max) {
45
+ return message || `Must be at most ${max} characters`;
46
+ }
47
+ return null;
48
+ };
49
+ };
50
+
51
+ /**
52
+ * Validates that value matches a pattern
53
+ */
54
+ export const matches = (pattern, message = 'Invalid format') => {
55
+ return value => {
56
+ if (!value) return null;
57
+ if (!pattern.test(value)) {
58
+ return message;
59
+ }
60
+ return null;
61
+ };
62
+ };
63
+
64
+ /**
65
+ * Validates email format
66
+ */
67
+ export const isEmail = (message = 'Invalid email') => {
68
+ const emailRegex = /^[^\s@]+@[^\s@]+\.[^\s@]+$/;
69
+ return matches(emailRegex, message);
70
+ };
71
+
72
+ /**
73
+ * Validates minimum value
74
+ */
75
+ export const min = (minValue, message) => {
76
+ return value => {
77
+ if (value === null || value === undefined) return null;
78
+ if (value < minValue) {
79
+ return message || `Must be at least ${minValue}`;
80
+ }
81
+ return null;
82
+ };
83
+ };
84
+
85
+ /**
86
+ * Validates maximum value
87
+ */
88
+ export const max = (maxValue, message) => {
89
+ return value => {
90
+ if (value === null || value === undefined) return null;
91
+ if (value > maxValue) {
92
+ return message || `Must be at most ${maxValue}`;
93
+ }
94
+ return null;
95
+ };
96
+ };
97
+
98
+ /**
99
+ * Validates that value is in a range
100
+ */
101
+ export const inRange = (minValue, maxValue, message) => {
102
+ return value => {
103
+ if (value === null || value === undefined) return null;
104
+ if (value < minValue || value > maxValue) {
105
+ return message || `Must be between ${minValue} and ${maxValue}`;
106
+ }
107
+ return null;
108
+ };
109
+ };
110
+
111
+ /**
112
+ * Validates that value is in a list
113
+ */
114
+ export const isInArray = (array, message = 'Invalid value') => {
115
+ return value => {
116
+ if (!array.includes(value)) {
117
+ return message;
118
+ }
119
+ return null;
120
+ };
121
+ };
122
+ //# sourceMappingURL=validators.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"names":["isNotEmpty","message","value","undefined","Array","isArray","length","trim","minLength","min","maxLength","max","matches","pattern","test","isEmail","emailRegex","minValue","maxValue","inRange","isInArray","array","includes"],"sourceRoot":"../../../../src","sources":["hooks/use-form/validators.ts"],"mappings":"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","ignoreList":[]}
@@ -2,4 +2,5 @@
2
2
 
3
3
  export * from "./theme/index.js";
4
4
  export * from "./components/index.js";
5
+ export * from "./hooks/index.js";
5
6
  //# sourceMappingURL=index.js.map
@@ -1 +1 @@
1
- {"version":3,"names":[],"sourceRoot":"../../src","sources":["index.tsx"],"mappings":";;AAAA,cAAc,kBAAS;AACvB,cAAc,uBAAc","ignoreList":[]}
1
+ {"version":3,"names":[],"sourceRoot":"../../src","sources":["index.tsx"],"mappings":";;AAAA,cAAc,kBAAS;AACvB,cAAc,uBAAc;AAC5B,cAAc,kBAAS","ignoreList":[]}
@@ -1,3 +1,4 @@
1
+ import type React from 'react';
1
2
  import type { ViewProps } from '../BoxView';
2
3
  export declare const Group: ({ children, position, style, align, alignCenter, alignBottom, noWrap, spacing, ...rest }: ViewProps & {
3
4
  position?: string;
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../../../src/components/Group/index.tsx"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,YAAY,CAAC;AAE5C,eAAO,MAAM,KAAK,GAAI,0FAUnB,SAAS,GAAG;IACb,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,KAAK,CAAC,EAAE,OAAO,GAAG,QAAQ,GAAG,KAAK,GAAG,UAAU,GAAG,SAAS,CAAC;IAC5D,WAAW,CAAC,EAAE,OAAO,CAAC;IACtB,WAAW,CAAC,EAAE,OAAO,CAAC;IACtB,MAAM,CAAC,EAAE,OAAO,CAAC;IACjB,OAAO,CAAC,EAAE,MAAM,CAAC;CAClB,KAAG,KAAK,CAAC,YA4CT,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../../../src/components/Group/index.tsx"],"names":[],"mappings":"AACA,OAAO,KAAK,KAAK,MAAM,OAAO,CAAC;AAG/B,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,YAAY,CAAC;AAE5C,eAAO,MAAM,KAAK,GAAI,0FAUnB,SAAS,GAAG;IACb,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,KAAK,CAAC,EAAE,OAAO,GAAG,QAAQ,GAAG,KAAK,GAAG,UAAU,GAAG,SAAS,CAAC;IAC5D,WAAW,CAAC,EAAE,OAAO,CAAC;IACtB,WAAW,CAAC,EAAE,OAAO,CAAC;IACtB,MAAM,CAAC,EAAE,OAAO,CAAC;IACjB,OAAO,CAAC,EAAE,MAAM,CAAC;CAClB,KAAG,KAAK,CAAC,YA4CT,CAAC"}
@@ -1,4 +1,5 @@
1
1
  import React from 'react';
2
+ import { View } from 'react-native';
2
3
  import type { DefaultProps, MantineColor, MantineSize } from '../../theme/types';
3
4
  export interface RadioProps extends DefaultProps {
4
5
  /** Radio label */
@@ -20,5 +21,25 @@ export interface RadioProps extends DefaultProps {
20
21
  /** Wrapper style */
21
22
  wrapperStyle?: any;
22
23
  }
23
- export declare const Radio: React.ForwardRefExoticComponent<RadioProps & React.RefAttributes<any>>;
24
+ export interface RadioGroupProps {
25
+ /** Current selected value */
26
+ value?: string;
27
+ /** Called when value changes */
28
+ onChange?: (value: string) => void;
29
+ /** Radio group children */
30
+ children: React.ReactNode;
31
+ /** Radio group name for accessibility */
32
+ name?: string;
33
+ /** Radio size for all children */
34
+ size?: MantineSize;
35
+ /** Radio color for all children */
36
+ color?: MantineColor;
37
+ /** Wrapper style */
38
+ style?: any;
39
+ /** Spacing between radio buttons */
40
+ spacing?: number;
41
+ }
42
+ export declare const Radio: React.ForwardRefExoticComponent<RadioProps & React.RefAttributes<any>> & {
43
+ Group: React.ForwardRefExoticComponent<RadioGroupProps & React.RefAttributes<View>>;
44
+ };
24
45
  //# sourceMappingURL=index.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../../../src/components/Radio/index.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAwC,MAAM,OAAO,CAAC;AAI7D,OAAO,KAAK,EAAE,YAAY,EAAE,YAAY,EAAE,WAAW,EAAE,MAAM,mBAAmB,CAAC;AAKjF,MAAM,WAAW,UAAW,SAAQ,YAAY;IAC9C,kBAAkB;IAClB,KAAK,CAAC,EAAE,KAAK,CAAC,SAAS,CAAC;IAExB,iBAAiB;IACjB,IAAI,CAAC,EAAE,WAAW,CAAC;IAEnB,6BAA6B;IAC7B,KAAK,CAAC,EAAE,YAAY,CAAC;IAErB,kBAAkB;IAClB,KAAK,CAAC,EAAE,MAAM,CAAC;IAEf,oBAAoB;IACpB,OAAO,CAAC,EAAE,OAAO,CAAC;IAElB,sCAAsC;IACtC,QAAQ,CAAC,EAAE,CAAC,KAAK,EAAE,MAAM,KAAK,IAAI,CAAC;IAEnC,qBAAqB;IACrB,QAAQ,CAAC,EAAE,OAAO,CAAC;IAEnB,wBAAwB;IACxB,KAAK,CAAC,EAAE,GAAG,CAAC;IAEZ,oBAAoB;IACpB,YAAY,CAAC,EAAE,GAAG,CAAC;CACpB;AAqED,eAAO,MAAM,KAAK,wEA6DhB,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../../../src/components/Radio/index.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAmE,MAAM,OAAO,CAAC;AACxF,OAAO,EAAuB,IAAI,EAAE,MAAM,cAAc,CAAC;AAGzD,OAAO,KAAK,EAAE,YAAY,EAAE,YAAY,EAAE,WAAW,EAAE,MAAM,mBAAmB,CAAC;AAKjF,MAAM,WAAW,UAAW,SAAQ,YAAY;IAC9C,kBAAkB;IAClB,KAAK,CAAC,EAAE,KAAK,CAAC,SAAS,CAAC;IAExB,iBAAiB;IACjB,IAAI,CAAC,EAAE,WAAW,CAAC;IAEnB,6BAA6B;IAC7B,KAAK,CAAC,EAAE,YAAY,CAAC;IAErB,kBAAkB;IAClB,KAAK,CAAC,EAAE,MAAM,CAAC;IAEf,oBAAoB;IACpB,OAAO,CAAC,EAAE,OAAO,CAAC;IAElB,sCAAsC;IACtC,QAAQ,CAAC,EAAE,CAAC,KAAK,EAAE,MAAM,KAAK,IAAI,CAAC;IAEnC,qBAAqB;IACrB,QAAQ,CAAC,EAAE,OAAO,CAAC;IAEnB,wBAAwB;IACxB,KAAK,CAAC,EAAE,GAAG,CAAC;IAEZ,oBAAoB;IACpB,YAAY,CAAC,EAAE,GAAG,CAAC;CACpB;AAED,MAAM,WAAW,eAAe;IAC9B,6BAA6B;IAC7B,KAAK,CAAC,EAAE,MAAM,CAAC;IAEf,gCAAgC;IAChC,QAAQ,CAAC,EAAE,CAAC,KAAK,EAAE,MAAM,KAAK,IAAI,CAAC;IAEnC,2BAA2B;IAC3B,QAAQ,EAAE,KAAK,CAAC,SAAS,CAAC;IAE1B,yCAAyC;IACzC,IAAI,CAAC,EAAE,MAAM,CAAC;IAEd,kCAAkC;IAClC,IAAI,CAAC,EAAE,WAAW,CAAC;IAEnB,mCAAmC;IACnC,KAAK,CAAC,EAAE,YAAY,CAAC;IAErB,oBAAoB;IACpB,KAAK,CAAC,EAAE,GAAG,CAAC;IAEZ,oCAAoC;IACpC,OAAO,CAAC,EAAE,MAAM,CAAC;CAClB;AAmMD,eAAO,MAAM,KAAK;;CAEhB,CAAC"}
@@ -9,12 +9,12 @@ export interface SwitchProps extends DefaultProps {
9
9
  color?: MantineColor;
10
10
  /** Label position */
11
11
  labelPosition?: 'left' | 'right';
12
- /** Checked state */
12
+ /** Checked state (controlled component) */
13
13
  checked?: boolean;
14
- /** Default checked state */
15
- defaultChecked?: boolean;
16
14
  /** Called when switch state changes */
17
15
  onChange?: (value: boolean) => void;
16
+ /** Disabled state */
17
+ disabled?: boolean;
18
18
  /** Additional styles */
19
19
  style?: any;
20
20
  /** Wrapper style */
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../../../src/components/Switch/index.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAqB,MAAM,OAAO,CAAC;AAI1C,OAAO,KAAK,EAAE,YAAY,EAAE,YAAY,EAAE,WAAW,EAAE,MAAM,mBAAmB,CAAC;AAIjF,MAAM,WAAW,WAAY,SAAQ,YAAY;IAC/C,mBAAmB;IACnB,KAAK,CAAC,EAAE,KAAK,CAAC,SAAS,CAAC;IAExB,kBAAkB;IAClB,IAAI,CAAC,EAAE,WAAW,CAAC;IAEnB,8BAA8B;IAC9B,KAAK,CAAC,EAAE,YAAY,CAAC;IAErB,qBAAqB;IACrB,aAAa,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC;IAEjC,oBAAoB;IACpB,OAAO,CAAC,EAAE,OAAO,CAAC;IAElB,4BAA4B;IAC5B,cAAc,CAAC,EAAE,OAAO,CAAC;IAEzB,uCAAuC;IACvC,QAAQ,CAAC,EAAE,CAAC,KAAK,EAAE,OAAO,KAAK,IAAI,CAAC;IAEpC,wBAAwB;IACxB,KAAK,CAAC,EAAE,GAAG,CAAC;IAEZ,oBAAoB;IACpB,YAAY,CAAC,EAAE,GAAG,CAAC;CACpB;AAgDD,eAAO,MAAM,MAAM,yEA4DjB,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../../../src/components/Switch/index.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAqB,MAAM,OAAO,CAAC;AAI1C,OAAO,KAAK,EAAE,YAAY,EAAE,YAAY,EAAE,WAAW,EAAE,MAAM,mBAAmB,CAAC;AAIjF,MAAM,WAAW,WAAY,SAAQ,YAAY;IAC/C,mBAAmB;IACnB,KAAK,CAAC,EAAE,KAAK,CAAC,SAAS,CAAC;IAExB,kBAAkB;IAClB,IAAI,CAAC,EAAE,WAAW,CAAC;IAEnB,8BAA8B;IAC9B,KAAK,CAAC,EAAE,YAAY,CAAC;IAErB,qBAAqB;IACrB,aAAa,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC;IAEjC,2CAA2C;IAC3C,OAAO,CAAC,EAAE,OAAO,CAAC;IAElB,uCAAuC;IACvC,QAAQ,CAAC,EAAE,CAAC,KAAK,EAAE,OAAO,KAAK,IAAI,CAAC;IAEpC,qBAAqB;IACrB,QAAQ,CAAC,EAAE,OAAO,CAAC;IAEnB,wBAAwB;IACxB,KAAK,CAAC,EAAE,GAAG,CAAC;IAEZ,oBAAoB;IACpB,YAAY,CAAC,EAAE,GAAG,CAAC;CACpB;AAgDD,eAAO,MAAM,MAAM,yEAgEjB,CAAC"}
@@ -0,0 +1,3 @@
1
+ export * from './useCachedResources';
2
+ export * from './use-form';
3
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../../src/hooks/index.ts"],"names":[],"mappings":"AAAA,cAAc,sBAAsB,CAAC;AACrC,cAAc,YAAY,CAAC"}
@@ -0,0 +1,4 @@
1
+ export { useForm } from './useForm';
2
+ export * from './types';
3
+ export * from './validators';
4
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../../../src/hooks/use-form/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AACpC,cAAc,SAAS,CAAC;AACxB,cAAc,cAAc,CAAC"}
@@ -0,0 +1,119 @@
1
+ /**
2
+ * Form field validation function
3
+ */
4
+ export type FormValidator<T> = (value: T) => string | null;
5
+ /**
6
+ * Form validation rules
7
+ */
8
+ export type FormValidationRules<Values> = {
9
+ [K in keyof Values]?: FormValidator<Values[K]> | FormValidator<Values[K]>[];
10
+ };
11
+ /**
12
+ * Form errors
13
+ */
14
+ export type FormErrors<Values = Record<string, any>> = Partial<Record<keyof Values, string>>;
15
+ /**
16
+ * Form touched state
17
+ */
18
+ export type FormTouched<Values = Record<string, any>> = Partial<Record<keyof Values, boolean>>;
19
+ /**
20
+ * Form dirty state
21
+ */
22
+ export type FormDirty<Values = Record<string, any>> = Partial<Record<keyof Values, boolean>>;
23
+ /**
24
+ * Form field status
25
+ */
26
+ export interface FormFieldStatus {
27
+ hasError: boolean;
28
+ isTouched: boolean;
29
+ isDirty: boolean;
30
+ }
31
+ /**
32
+ * Props to be spread on input components
33
+ */
34
+ export interface FormInputProps<T = any> {
35
+ value: T;
36
+ onChange?: (value: T) => void;
37
+ onChangeText?: (text: string) => void;
38
+ error?: string;
39
+ onBlur?: () => void;
40
+ }
41
+ /**
42
+ * Form submit handler
43
+ */
44
+ export type FormSubmitHandler<Values> = (values: Values, event?: any) => void | Promise<void>;
45
+ /**
46
+ * useForm hook input parameters
47
+ */
48
+ export interface UseFormInput<Values = Record<string, any>> {
49
+ /** Initial form values */
50
+ initialValues?: Values;
51
+ /** Initial form errors */
52
+ initialErrors?: FormErrors<Values>;
53
+ /** Initial touched state */
54
+ initialTouched?: FormTouched<Values>;
55
+ /** Initial dirty state */
56
+ initialDirty?: FormDirty<Values>;
57
+ /** Form validation rules */
58
+ validate?: FormValidationRules<Values>;
59
+ /** Clear input error on change */
60
+ clearInputErrorOnChange?: boolean;
61
+ /** Validate input on change */
62
+ validateInputOnChange?: boolean;
63
+ /** Validate input on blur */
64
+ validateInputOnBlur?: boolean;
65
+ /** Transform values before submit */
66
+ transformValues?: (values: Values) => any;
67
+ }
68
+ /**
69
+ * useForm hook return type
70
+ */
71
+ export interface UseFormReturnType<Values = Record<string, any>> {
72
+ /** Current form values */
73
+ values: Values;
74
+ /** Current form errors */
75
+ errors: FormErrors<Values>;
76
+ /** Current touched state */
77
+ touched: FormTouched<Values>;
78
+ /** Current dirty state */
79
+ dirty: FormDirty<Values>;
80
+ /** Set a single field value */
81
+ setFieldValue: <K extends keyof Values>(field: K, value: Values[K]) => void;
82
+ /** Set multiple values */
83
+ setValues: (values: Partial<Values>) => void;
84
+ /** Set a single field error */
85
+ setFieldError: <K extends keyof Values>(field: K, error: string | null) => void;
86
+ /** Set multiple errors */
87
+ setErrors: (errors: FormErrors<Values>) => void;
88
+ /** Clear a specific field error */
89
+ clearFieldError: <K extends keyof Values>(field: K) => void;
90
+ /** Clear all errors */
91
+ clearErrors: () => void;
92
+ /** Reset form to initial values */
93
+ reset: () => void;
94
+ /** Validate a specific field */
95
+ validateField: <K extends keyof Values>(field: K) => boolean;
96
+ /** Validate entire form */
97
+ validate: () => boolean;
98
+ /** Check if form is valid */
99
+ isValid: () => boolean;
100
+ /** Check if form is dirty */
101
+ isDirty: () => boolean;
102
+ /** Get field status */
103
+ getFieldStatus: <K extends keyof Values>(field: K) => FormFieldStatus;
104
+ /** Get props to spread on input component */
105
+ getInputProps: <K extends keyof Values>(field: K, options?: {
106
+ type?: 'input' | 'checkbox' | 'radio' | 'select';
107
+ withError?: boolean;
108
+ withFocus?: boolean;
109
+ }) => FormInputProps<Values[K]>;
110
+ /** Handle form submit */
111
+ onSubmit: (handleSubmit: FormSubmitHandler<Values>) => (event?: any) => void | Promise<void>;
112
+ /** Reset touched state */
113
+ resetTouched: () => void;
114
+ /** Reset dirty state */
115
+ resetDirty: () => void;
116
+ /** Mark field as touched */
117
+ setFieldTouched: <K extends keyof Values>(field: K, touched?: boolean) => void;
118
+ }
119
+ //# sourceMappingURL=types.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../../../../src/hooks/use-form/types.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,30 @@
1
+ import type { UseFormInput, UseFormReturnType } from './types';
2
+ /**
3
+ * Form state management hook for React Native
4
+ *
5
+ * @example
6
+ * ```tsx
7
+ * const form = useForm({
8
+ * initialValues: {
9
+ * email: '',
10
+ * password: '',
11
+ * },
12
+ * validate: {
13
+ * email: isEmail('Invalid email'),
14
+ * password: minLength(6, 'Password must be at least 6 characters'),
15
+ * },
16
+ * });
17
+ *
18
+ * return (
19
+ * <View>
20
+ * <TextInput {...form.getInputProps('email')} />
21
+ * <TextInput {...form.getInputProps('password')} />
22
+ * <Button onPress={form.onSubmit((values) => console.log(values))}>
23
+ * Submit
24
+ * </Button>
25
+ * </View>
26
+ * );
27
+ * ```
28
+ */
29
+ export declare function useForm<Values extends Record<string, any> = Record<string, any>>({ initialValues, initialErrors, initialTouched, initialDirty, validate: validationRules, clearInputErrorOnChange, validateInputOnChange, validateInputOnBlur, transformValues, }?: UseFormInput<Values>): UseFormReturnType<Values>;
30
+ //# sourceMappingURL=useForm.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"useForm.d.ts","sourceRoot":"","sources":["../../../../../../src/hooks/use-form/useForm.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAQV,YAAY,EACZ,iBAAiB,EAClB,MAAM,SAAS,CAAC;AA4DjB;;;;;;;;;;;;;;;;;;;;;;;;;;GA0BG;AACH,wBAAgB,OAAO,CAAC,MAAM,SAAS,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,GAAG,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,EAAE,EAChF,aAA4B,EAC5B,aAAkB,EAClB,cAAmB,EACnB,YAAiB,EACjB,QAAQ,EAAE,eAAe,EACzB,uBAA8B,EAC9B,qBAA6B,EAC7B,mBAA2B,EAC3B,eAA4C,GAC7C,GAAE,YAAY,CAAC,MAAM,CAAM,GAAG,iBAAiB,CAAC,MAAM,CAAC,CAuUvD"}
@@ -0,0 +1,41 @@
1
+ import type { FormValidator } from './types';
2
+ /**
3
+ * Built-in validators
4
+ */
5
+ /**
6
+ * Validates that a value is not empty
7
+ */
8
+ export declare const isNotEmpty: (message?: string) => FormValidator<any>;
9
+ /**
10
+ * Validates minimum length
11
+ */
12
+ export declare const minLength: (min: number, message?: string) => FormValidator<string>;
13
+ /**
14
+ * Validates maximum length
15
+ */
16
+ export declare const maxLength: (max: number, message?: string) => FormValidator<string>;
17
+ /**
18
+ * Validates that value matches a pattern
19
+ */
20
+ export declare const matches: (pattern: RegExp, message?: string) => FormValidator<string>;
21
+ /**
22
+ * Validates email format
23
+ */
24
+ export declare const isEmail: (message?: string) => FormValidator<string>;
25
+ /**
26
+ * Validates minimum value
27
+ */
28
+ export declare const min: (minValue: number, message?: string) => FormValidator<number>;
29
+ /**
30
+ * Validates maximum value
31
+ */
32
+ export declare const max: (maxValue: number, message?: string) => FormValidator<number>;
33
+ /**
34
+ * Validates that value is in a range
35
+ */
36
+ export declare const inRange: (minValue: number, maxValue: number, message?: string) => FormValidator<number>;
37
+ /**
38
+ * Validates that value is in a list
39
+ */
40
+ export declare const isInArray: <T>(array: T[], message?: string) => FormValidator<T>;
41
+ //# sourceMappingURL=validators.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"validators.d.ts","sourceRoot":"","sources":["../../../../../../src/hooks/use-form/validators.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,SAAS,CAAC;AAE7C;;GAEG;AAEH;;GAEG;AACH,eAAO,MAAM,UAAU,GAAI,gBAAkC,KAAG,aAAa,CAAC,GAAG,CAahF,CAAC;AAEF;;GAEG;AACH,eAAO,MAAM,SAAS,GACpB,KAAK,MAAM,EACX,UAAU,MAAM,KACf,aAAa,CAAC,MAAM,CAQtB,CAAC;AAEF;;GAEG;AACH,eAAO,MAAM,SAAS,GACpB,KAAK,MAAM,EACX,UAAU,MAAM,KACf,aAAa,CAAC,MAAM,CAQtB,CAAC;AAEF;;GAEG;AACH,eAAO,MAAM,OAAO,GAClB,SAAS,MAAM,EACf,gBAA0B,KACzB,aAAa,CAAC,MAAM,CAQtB,CAAC;AAEF;;GAEG;AACH,eAAO,MAAM,OAAO,GAAI,gBAAyB,KAAG,aAAa,CAAC,MAAM,CAGvE,CAAC;AAEF;;GAEG;AACH,eAAO,MAAM,GAAG,GACd,UAAU,MAAM,EAChB,UAAU,MAAM,KACf,aAAa,CAAC,MAAM,CAQtB,CAAC;AAEF;;GAEG;AACH,eAAO,MAAM,GAAG,GACd,UAAU,MAAM,EAChB,UAAU,MAAM,KACf,aAAa,CAAC,MAAM,CAQtB,CAAC;AAEF;;GAEG;AACH,eAAO,MAAM,OAAO,GAClB,UAAU,MAAM,EAChB,UAAU,MAAM,EAChB,UAAU,MAAM,KACf,aAAa,CAAC,MAAM,CAQtB,CAAC;AAEF;;GAEG;AACH,eAAO,MAAM,SAAS,GAAI,CAAC,EACzB,OAAO,CAAC,EAAE,EACV,gBAAyB,KACxB,aAAa,CAAC,CAAC,CAOjB,CAAC"}
@@ -1,5 +1,6 @@
1
1
  export * from './theme';
2
2
  export * from './components';
3
+ export * from './hooks';
3
4
  export type * from './theme/theme';
4
5
  export type * from './theme/types';
5
6
  //# sourceMappingURL=index.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../src/index.tsx"],"names":[],"mappings":"AAAA,cAAc,SAAS,CAAC;AACxB,cAAc,cAAc,CAAC;AAC7B,mBAAmB,eAAe,CAAC;AACnC,mBAAmB,eAAe,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../src/index.tsx"],"names":[],"mappings":"AAAA,cAAc,SAAS,CAAC;AACxB,cAAc,cAAc,CAAC;AAC7B,cAAc,SAAS,CAAC;AACxB,mBAAmB,eAAe,CAAC;AACnC,mBAAmB,eAAe,CAAC"}
@@ -1,3 +1,4 @@
1
+ import type React from 'react';
1
2
  import type { ViewProps } from '../BoxView';
2
3
  export declare const Group: ({ children, position, style, align, alignCenter, alignBottom, noWrap, spacing, ...rest }: ViewProps & {
3
4
  position?: string;
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../../../src/components/Group/index.tsx"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,YAAY,CAAC;AAE5C,eAAO,MAAM,KAAK,GAAI,0FAUnB,SAAS,GAAG;IACb,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,KAAK,CAAC,EAAE,OAAO,GAAG,QAAQ,GAAG,KAAK,GAAG,UAAU,GAAG,SAAS,CAAC;IAC5D,WAAW,CAAC,EAAE,OAAO,CAAC;IACtB,WAAW,CAAC,EAAE,OAAO,CAAC;IACtB,MAAM,CAAC,EAAE,OAAO,CAAC;IACjB,OAAO,CAAC,EAAE,MAAM,CAAC;CAClB,KAAG,KAAK,CAAC,YA4CT,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../../../src/components/Group/index.tsx"],"names":[],"mappings":"AACA,OAAO,KAAK,KAAK,MAAM,OAAO,CAAC;AAG/B,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,YAAY,CAAC;AAE5C,eAAO,MAAM,KAAK,GAAI,0FAUnB,SAAS,GAAG;IACb,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,KAAK,CAAC,EAAE,OAAO,GAAG,QAAQ,GAAG,KAAK,GAAG,UAAU,GAAG,SAAS,CAAC;IAC5D,WAAW,CAAC,EAAE,OAAO,CAAC;IACtB,WAAW,CAAC,EAAE,OAAO,CAAC;IACtB,MAAM,CAAC,EAAE,OAAO,CAAC;IACjB,OAAO,CAAC,EAAE,MAAM,CAAC;CAClB,KAAG,KAAK,CAAC,YA4CT,CAAC"}
@@ -1,4 +1,5 @@
1
1
  import React from 'react';
2
+ import { View } from 'react-native';
2
3
  import type { DefaultProps, MantineColor, MantineSize } from '../../theme/types';
3
4
  export interface RadioProps extends DefaultProps {
4
5
  /** Radio label */
@@ -20,5 +21,25 @@ export interface RadioProps extends DefaultProps {
20
21
  /** Wrapper style */
21
22
  wrapperStyle?: any;
22
23
  }
23
- export declare const Radio: React.ForwardRefExoticComponent<RadioProps & React.RefAttributes<any>>;
24
+ export interface RadioGroupProps {
25
+ /** Current selected value */
26
+ value?: string;
27
+ /** Called when value changes */
28
+ onChange?: (value: string) => void;
29
+ /** Radio group children */
30
+ children: React.ReactNode;
31
+ /** Radio group name for accessibility */
32
+ name?: string;
33
+ /** Radio size for all children */
34
+ size?: MantineSize;
35
+ /** Radio color for all children */
36
+ color?: MantineColor;
37
+ /** Wrapper style */
38
+ style?: any;
39
+ /** Spacing between radio buttons */
40
+ spacing?: number;
41
+ }
42
+ export declare const Radio: React.ForwardRefExoticComponent<RadioProps & React.RefAttributes<any>> & {
43
+ Group: React.ForwardRefExoticComponent<RadioGroupProps & React.RefAttributes<View>>;
44
+ };
24
45
  //# sourceMappingURL=index.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../../../src/components/Radio/index.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAwC,MAAM,OAAO,CAAC;AAI7D,OAAO,KAAK,EAAE,YAAY,EAAE,YAAY,EAAE,WAAW,EAAE,MAAM,mBAAmB,CAAC;AAKjF,MAAM,WAAW,UAAW,SAAQ,YAAY;IAC9C,kBAAkB;IAClB,KAAK,CAAC,EAAE,KAAK,CAAC,SAAS,CAAC;IAExB,iBAAiB;IACjB,IAAI,CAAC,EAAE,WAAW,CAAC;IAEnB,6BAA6B;IAC7B,KAAK,CAAC,EAAE,YAAY,CAAC;IAErB,kBAAkB;IAClB,KAAK,CAAC,EAAE,MAAM,CAAC;IAEf,oBAAoB;IACpB,OAAO,CAAC,EAAE,OAAO,CAAC;IAElB,sCAAsC;IACtC,QAAQ,CAAC,EAAE,CAAC,KAAK,EAAE,MAAM,KAAK,IAAI,CAAC;IAEnC,qBAAqB;IACrB,QAAQ,CAAC,EAAE,OAAO,CAAC;IAEnB,wBAAwB;IACxB,KAAK,CAAC,EAAE,GAAG,CAAC;IAEZ,oBAAoB;IACpB,YAAY,CAAC,EAAE,GAAG,CAAC;CACpB;AAqED,eAAO,MAAM,KAAK,wEA6DhB,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../../../src/components/Radio/index.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAmE,MAAM,OAAO,CAAC;AACxF,OAAO,EAAuB,IAAI,EAAE,MAAM,cAAc,CAAC;AAGzD,OAAO,KAAK,EAAE,YAAY,EAAE,YAAY,EAAE,WAAW,EAAE,MAAM,mBAAmB,CAAC;AAKjF,MAAM,WAAW,UAAW,SAAQ,YAAY;IAC9C,kBAAkB;IAClB,KAAK,CAAC,EAAE,KAAK,CAAC,SAAS,CAAC;IAExB,iBAAiB;IACjB,IAAI,CAAC,EAAE,WAAW,CAAC;IAEnB,6BAA6B;IAC7B,KAAK,CAAC,EAAE,YAAY,CAAC;IAErB,kBAAkB;IAClB,KAAK,CAAC,EAAE,MAAM,CAAC;IAEf,oBAAoB;IACpB,OAAO,CAAC,EAAE,OAAO,CAAC;IAElB,sCAAsC;IACtC,QAAQ,CAAC,EAAE,CAAC,KAAK,EAAE,MAAM,KAAK,IAAI,CAAC;IAEnC,qBAAqB;IACrB,QAAQ,CAAC,EAAE,OAAO,CAAC;IAEnB,wBAAwB;IACxB,KAAK,CAAC,EAAE,GAAG,CAAC;IAEZ,oBAAoB;IACpB,YAAY,CAAC,EAAE,GAAG,CAAC;CACpB;AAED,MAAM,WAAW,eAAe;IAC9B,6BAA6B;IAC7B,KAAK,CAAC,EAAE,MAAM,CAAC;IAEf,gCAAgC;IAChC,QAAQ,CAAC,EAAE,CAAC,KAAK,EAAE,MAAM,KAAK,IAAI,CAAC;IAEnC,2BAA2B;IAC3B,QAAQ,EAAE,KAAK,CAAC,SAAS,CAAC;IAE1B,yCAAyC;IACzC,IAAI,CAAC,EAAE,MAAM,CAAC;IAEd,kCAAkC;IAClC,IAAI,CAAC,EAAE,WAAW,CAAC;IAEnB,mCAAmC;IACnC,KAAK,CAAC,EAAE,YAAY,CAAC;IAErB,oBAAoB;IACpB,KAAK,CAAC,EAAE,GAAG,CAAC;IAEZ,oCAAoC;IACpC,OAAO,CAAC,EAAE,MAAM,CAAC;CAClB;AAmMD,eAAO,MAAM,KAAK;;CAEhB,CAAC"}
@@ -9,12 +9,12 @@ export interface SwitchProps extends DefaultProps {
9
9
  color?: MantineColor;
10
10
  /** Label position */
11
11
  labelPosition?: 'left' | 'right';
12
- /** Checked state */
12
+ /** Checked state (controlled component) */
13
13
  checked?: boolean;
14
- /** Default checked state */
15
- defaultChecked?: boolean;
16
14
  /** Called when switch state changes */
17
15
  onChange?: (value: boolean) => void;
16
+ /** Disabled state */
17
+ disabled?: boolean;
18
18
  /** Additional styles */
19
19
  style?: any;
20
20
  /** Wrapper style */
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../../../src/components/Switch/index.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAqB,MAAM,OAAO,CAAC;AAI1C,OAAO,KAAK,EAAE,YAAY,EAAE,YAAY,EAAE,WAAW,EAAE,MAAM,mBAAmB,CAAC;AAIjF,MAAM,WAAW,WAAY,SAAQ,YAAY;IAC/C,mBAAmB;IACnB,KAAK,CAAC,EAAE,KAAK,CAAC,SAAS,CAAC;IAExB,kBAAkB;IAClB,IAAI,CAAC,EAAE,WAAW,CAAC;IAEnB,8BAA8B;IAC9B,KAAK,CAAC,EAAE,YAAY,CAAC;IAErB,qBAAqB;IACrB,aAAa,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC;IAEjC,oBAAoB;IACpB,OAAO,CAAC,EAAE,OAAO,CAAC;IAElB,4BAA4B;IAC5B,cAAc,CAAC,EAAE,OAAO,CAAC;IAEzB,uCAAuC;IACvC,QAAQ,CAAC,EAAE,CAAC,KAAK,EAAE,OAAO,KAAK,IAAI,CAAC;IAEpC,wBAAwB;IACxB,KAAK,CAAC,EAAE,GAAG,CAAC;IAEZ,oBAAoB;IACpB,YAAY,CAAC,EAAE,GAAG,CAAC;CACpB;AAgDD,eAAO,MAAM,MAAM,yEA4DjB,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../../../src/components/Switch/index.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAqB,MAAM,OAAO,CAAC;AAI1C,OAAO,KAAK,EAAE,YAAY,EAAE,YAAY,EAAE,WAAW,EAAE,MAAM,mBAAmB,CAAC;AAIjF,MAAM,WAAW,WAAY,SAAQ,YAAY;IAC/C,mBAAmB;IACnB,KAAK,CAAC,EAAE,KAAK,CAAC,SAAS,CAAC;IAExB,kBAAkB;IAClB,IAAI,CAAC,EAAE,WAAW,CAAC;IAEnB,8BAA8B;IAC9B,KAAK,CAAC,EAAE,YAAY,CAAC;IAErB,qBAAqB;IACrB,aAAa,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC;IAEjC,2CAA2C;IAC3C,OAAO,CAAC,EAAE,OAAO,CAAC;IAElB,uCAAuC;IACvC,QAAQ,CAAC,EAAE,CAAC,KAAK,EAAE,OAAO,KAAK,IAAI,CAAC;IAEpC,qBAAqB;IACrB,QAAQ,CAAC,EAAE,OAAO,CAAC;IAEnB,wBAAwB;IACxB,KAAK,CAAC,EAAE,GAAG,CAAC;IAEZ,oBAAoB;IACpB,YAAY,CAAC,EAAE,GAAG,CAAC;CACpB;AAgDD,eAAO,MAAM,MAAM,yEAgEjB,CAAC"}
@@ -0,0 +1,3 @@
1
+ export * from './useCachedResources';
2
+ export * from './use-form';
3
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../../src/hooks/index.ts"],"names":[],"mappings":"AAAA,cAAc,sBAAsB,CAAC;AACrC,cAAc,YAAY,CAAC"}
@@ -0,0 +1,4 @@
1
+ export { useForm } from './useForm';
2
+ export * from './types';
3
+ export * from './validators';
4
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../../../src/hooks/use-form/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AACpC,cAAc,SAAS,CAAC;AACxB,cAAc,cAAc,CAAC"}