@mantine/form 9.0.0-alpha.4 → 9.0.0-alpha.6

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 (169) hide show
  1. package/cjs/FormProvider/FormProvider.cjs +26 -21
  2. package/cjs/FormProvider/FormProvider.cjs.map +1 -1
  3. package/cjs/_virtual/_rolldown/runtime.cjs +24 -0
  4. package/cjs/actions/actions.cjs +86 -117
  5. package/cjs/actions/actions.cjs.map +1 -1
  6. package/cjs/form-index.cjs +5 -5
  7. package/cjs/form-index.cjs.map +1 -1
  8. package/cjs/get-input-on-change/get-input-on-change.cjs +15 -25
  9. package/cjs/get-input-on-change/get-input-on-change.cjs.map +1 -1
  10. package/cjs/get-status/get-status.cjs +11 -11
  11. package/cjs/get-status/get-status.cjs.map +1 -1
  12. package/cjs/hooks/use-form-errors/filter-errors/filter-errors.cjs +11 -15
  13. package/cjs/hooks/use-form-errors/filter-errors/filter-errors.cjs.map +1 -1
  14. package/cjs/hooks/use-form-errors/use-form-errors.cjs +39 -48
  15. package/cjs/hooks/use-form-errors/use-form-errors.cjs.map +1 -1
  16. package/cjs/hooks/use-form-list/use-form-list.cjs +47 -51
  17. package/cjs/hooks/use-form-list/use-form-list.cjs.map +1 -1
  18. package/cjs/hooks/use-form-status/use-form-status.cjs +95 -128
  19. package/cjs/hooks/use-form-status/use-form-status.cjs.map +1 -1
  20. package/cjs/hooks/use-form-validating/use-form-validating.cjs +49 -51
  21. package/cjs/hooks/use-form-validating/use-form-validating.cjs.map +1 -1
  22. package/cjs/hooks/use-form-values/use-form-values.cjs +92 -107
  23. package/cjs/hooks/use-form-values/use-form-values.cjs.map +1 -1
  24. package/cjs/hooks/use-form-watch/use-form-watch.cjs +39 -57
  25. package/cjs/hooks/use-form-watch/use-form-watch.cjs.map +1 -1
  26. package/cjs/index.cjs +35 -38
  27. package/cjs/lists/change-error-indices.cjs +34 -41
  28. package/cjs/lists/change-error-indices.cjs.map +1 -1
  29. package/cjs/lists/clear-list-state.cjs +11 -15
  30. package/cjs/lists/clear-list-state.cjs.map +1 -1
  31. package/cjs/lists/reorder-errors.cjs +30 -32
  32. package/cjs/lists/reorder-errors.cjs.map +1 -1
  33. package/cjs/paths/get-data-path.cjs +6 -6
  34. package/cjs/paths/get-data-path.cjs.map +1 -1
  35. package/cjs/paths/get-path.cjs +14 -19
  36. package/cjs/paths/get-path.cjs.map +1 -1
  37. package/cjs/paths/get-splitted-path.cjs +7 -9
  38. package/cjs/paths/get-splitted-path.cjs.map +1 -1
  39. package/cjs/paths/insert-path.cjs +12 -15
  40. package/cjs/paths/insert-path.cjs.map +1 -1
  41. package/cjs/paths/remove-path.cjs +10 -17
  42. package/cjs/paths/remove-path.cjs.map +1 -1
  43. package/cjs/paths/reorder-path.cjs +14 -17
  44. package/cjs/paths/reorder-path.cjs.map +1 -1
  45. package/cjs/paths/replace-path.cjs +13 -18
  46. package/cjs/paths/replace-path.cjs.map +1 -1
  47. package/cjs/paths/set-path.cjs +22 -26
  48. package/cjs/paths/set-path.cjs.map +1 -1
  49. package/cjs/schema-resolver.cjs +24 -0
  50. package/cjs/schema-resolver.cjs.map +1 -0
  51. package/cjs/use-field.cjs +94 -131
  52. package/cjs/use-field.cjs.map +1 -1
  53. package/cjs/use-form.cjs +295 -379
  54. package/cjs/use-form.cjs.map +1 -1
  55. package/cjs/validate/get-rule-for-path.cjs +16 -24
  56. package/cjs/validate/get-rule-for-path.cjs.map +1 -1
  57. package/cjs/validate/should-validate-on-change.cjs +10 -17
  58. package/cjs/validate/should-validate-on-change.cjs.map +1 -1
  59. package/cjs/validate/validate-field-value.cjs +58 -54
  60. package/cjs/validate/validate-field-value.cjs.map +1 -1
  61. package/cjs/validate/validate-values.cjs +77 -108
  62. package/cjs/validate/validate-values.cjs.map +1 -1
  63. package/cjs/validators/has-length/has-length.cjs +17 -27
  64. package/cjs/validators/has-length/has-length.cjs.map +1 -1
  65. package/cjs/validators/is-email/is-email.cjs +7 -8
  66. package/cjs/validators/is-email/is-email.cjs.map +1 -1
  67. package/cjs/validators/is-in-range/is-in-range.cjs +13 -19
  68. package/cjs/validators/is-in-range/is-in-range.cjs.map +1 -1
  69. package/cjs/validators/is-json-string/is-json-string.cjs +15 -17
  70. package/cjs/validators/is-json-string/is-json-string.cjs.map +1 -1
  71. package/cjs/validators/is-not-empty/is-not-empty.cjs +13 -21
  72. package/cjs/validators/is-not-empty/is-not-empty.cjs.map +1 -1
  73. package/cjs/validators/is-not-empty-html/is-not-empty-html.cjs +11 -13
  74. package/cjs/validators/is-not-empty-html/is-not-empty-html.cjs.map +1 -1
  75. package/cjs/validators/is-one-of/is-one-of.cjs +9 -9
  76. package/cjs/validators/is-one-of/is-one-of.cjs.map +1 -1
  77. package/cjs/validators/is-url/is-url.cjs +25 -33
  78. package/cjs/validators/is-url/is-url.cjs.map +1 -1
  79. package/cjs/validators/matches/matches.cjs +10 -12
  80. package/cjs/validators/matches/matches.cjs.map +1 -1
  81. package/cjs/validators/matches-field/matches-field.cjs +10 -12
  82. package/cjs/validators/matches-field/matches-field.cjs.map +1 -1
  83. package/esm/FormProvider/FormProvider.mjs +25 -19
  84. package/esm/FormProvider/FormProvider.mjs.map +1 -1
  85. package/esm/actions/actions.mjs +85 -114
  86. package/esm/actions/actions.mjs.map +1 -1
  87. package/esm/form-index.mjs +5 -3
  88. package/esm/form-index.mjs.map +1 -1
  89. package/esm/get-input-on-change/get-input-on-change.mjs +15 -23
  90. package/esm/get-input-on-change/get-input-on-change.mjs.map +1 -1
  91. package/esm/get-status/get-status.mjs +11 -9
  92. package/esm/get-status/get-status.mjs.map +1 -1
  93. package/esm/hooks/use-form-errors/filter-errors/filter-errors.mjs +11 -13
  94. package/esm/hooks/use-form-errors/filter-errors/filter-errors.mjs.map +1 -1
  95. package/esm/hooks/use-form-errors/use-form-errors.mjs +38 -46
  96. package/esm/hooks/use-form-errors/use-form-errors.mjs.map +1 -1
  97. package/esm/hooks/use-form-list/use-form-list.mjs +46 -49
  98. package/esm/hooks/use-form-list/use-form-list.mjs.map +1 -1
  99. package/esm/hooks/use-form-status/use-form-status.mjs +93 -122
  100. package/esm/hooks/use-form-status/use-form-status.mjs.map +1 -1
  101. package/esm/hooks/use-form-validating/use-form-validating.mjs +48 -49
  102. package/esm/hooks/use-form-validating/use-form-validating.mjs.map +1 -1
  103. package/esm/hooks/use-form-values/use-form-values.mjs +91 -105
  104. package/esm/hooks/use-form-values/use-form-values.mjs.map +1 -1
  105. package/esm/hooks/use-form-watch/use-form-watch.mjs +38 -55
  106. package/esm/hooks/use-form-watch/use-form-watch.mjs.map +1 -1
  107. package/esm/index.mjs +18 -17
  108. package/esm/lists/change-error-indices.mjs +34 -39
  109. package/esm/lists/change-error-indices.mjs.map +1 -1
  110. package/esm/lists/clear-list-state.mjs +11 -13
  111. package/esm/lists/clear-list-state.mjs.map +1 -1
  112. package/esm/lists/reorder-errors.mjs +30 -30
  113. package/esm/lists/reorder-errors.mjs.map +1 -1
  114. package/esm/paths/get-data-path.mjs +6 -4
  115. package/esm/paths/get-data-path.mjs.map +1 -1
  116. package/esm/paths/get-path.mjs +14 -17
  117. package/esm/paths/get-path.mjs.map +1 -1
  118. package/esm/paths/get-splitted-path.mjs +7 -7
  119. package/esm/paths/get-splitted-path.mjs.map +1 -1
  120. package/esm/paths/insert-path.mjs +12 -13
  121. package/esm/paths/insert-path.mjs.map +1 -1
  122. package/esm/paths/remove-path.mjs +10 -15
  123. package/esm/paths/remove-path.mjs.map +1 -1
  124. package/esm/paths/reorder-path.mjs +14 -15
  125. package/esm/paths/reorder-path.mjs.map +1 -1
  126. package/esm/paths/replace-path.mjs +13 -16
  127. package/esm/paths/replace-path.mjs.map +1 -1
  128. package/esm/paths/set-path.mjs +21 -24
  129. package/esm/paths/set-path.mjs.map +1 -1
  130. package/esm/schema-resolver.mjs +24 -0
  131. package/esm/schema-resolver.mjs.map +1 -0
  132. package/esm/use-field.mjs +93 -129
  133. package/esm/use-field.mjs.map +1 -1
  134. package/esm/use-form.mjs +294 -377
  135. package/esm/use-form.mjs.map +1 -1
  136. package/esm/validate/get-rule-for-path.mjs +16 -22
  137. package/esm/validate/get-rule-for-path.mjs.map +1 -1
  138. package/esm/validate/should-validate-on-change.mjs +10 -15
  139. package/esm/validate/should-validate-on-change.mjs.map +1 -1
  140. package/esm/validate/validate-field-value.mjs +58 -52
  141. package/esm/validate/validate-field-value.mjs.map +1 -1
  142. package/esm/validate/validate-values.mjs +77 -106
  143. package/esm/validate/validate-values.mjs.map +1 -1
  144. package/esm/validators/has-length/has-length.mjs +17 -25
  145. package/esm/validators/has-length/has-length.mjs.map +1 -1
  146. package/esm/validators/is-email/is-email.mjs +7 -6
  147. package/esm/validators/is-email/is-email.mjs.map +1 -1
  148. package/esm/validators/is-in-range/is-in-range.mjs +13 -17
  149. package/esm/validators/is-in-range/is-in-range.mjs.map +1 -1
  150. package/esm/validators/is-json-string/is-json-string.mjs +15 -15
  151. package/esm/validators/is-json-string/is-json-string.mjs.map +1 -1
  152. package/esm/validators/is-not-empty/is-not-empty.mjs +13 -19
  153. package/esm/validators/is-not-empty/is-not-empty.mjs.map +1 -1
  154. package/esm/validators/is-not-empty-html/is-not-empty-html.mjs +11 -11
  155. package/esm/validators/is-not-empty-html/is-not-empty-html.mjs.map +1 -1
  156. package/esm/validators/is-one-of/is-one-of.mjs +9 -7
  157. package/esm/validators/is-one-of/is-one-of.mjs.map +1 -1
  158. package/esm/validators/is-url/is-url.mjs +25 -31
  159. package/esm/validators/is-url/is-url.mjs.map +1 -1
  160. package/esm/validators/matches/matches.mjs +10 -10
  161. package/esm/validators/matches/matches.mjs.map +1 -1
  162. package/esm/validators/matches-field/matches-field.mjs +10 -10
  163. package/esm/validators/matches-field/matches-field.mjs.map +1 -1
  164. package/lib/index.d.mts +1 -0
  165. package/lib/index.d.ts +1 -0
  166. package/lib/schema-resolver.d.ts +5 -0
  167. package/package.json +6 -2
  168. package/cjs/index.cjs.map +0 -1
  169. package/esm/index.mjs.map +0 -1
@@ -1,34 +1,28 @@
1
- 'use client';
1
+ "use client";
2
+ //#region packages/@mantine/form/src/validators/is-url/is-url.ts
2
3
  function isUrl(optionsOrError, error) {
3
- let _options = {};
4
- let _error;
5
- if (optionsOrError !== null && optionsOrError !== void 0 && typeof optionsOrError === "object" && !Array.isArray(optionsOrError) && ("protocols" in optionsOrError || "allowLocalhost" in optionsOrError)) {
6
- _options = optionsOrError;
7
- _error = error || true;
8
- } else {
9
- _error = optionsOrError || true;
10
- }
11
- const protocols = _options.protocols ?? ["http", "https"];
12
- const allowLocalhost = _options.allowLocalhost ?? false;
13
- return (value) => {
14
- if (typeof value !== "string") {
15
- return _error;
16
- }
17
- try {
18
- const url = new URL(value);
19
- const protocol = url.protocol.replace(":", "");
20
- if (!protocols.includes(protocol)) {
21
- return _error;
22
- }
23
- if (!allowLocalhost && url.hostname === "localhost") {
24
- return _error;
25
- }
26
- return null;
27
- } catch {
28
- return _error;
29
- }
30
- };
4
+ let _options = {};
5
+ let _error;
6
+ if (optionsOrError !== null && optionsOrError !== void 0 && typeof optionsOrError === "object" && !Array.isArray(optionsOrError) && ("protocols" in optionsOrError || "allowLocalhost" in optionsOrError)) {
7
+ _options = optionsOrError;
8
+ _error = error || true;
9
+ } else _error = optionsOrError || true;
10
+ const protocols = _options.protocols ?? ["http", "https"];
11
+ const allowLocalhost = _options.allowLocalhost ?? false;
12
+ return (value) => {
13
+ if (typeof value !== "string") return _error;
14
+ try {
15
+ const url = new URL(value);
16
+ const protocol = url.protocol.replace(":", "");
17
+ if (!protocols.includes(protocol)) return _error;
18
+ if (!allowLocalhost && url.hostname === "localhost") return _error;
19
+ return null;
20
+ } catch {
21
+ return _error;
22
+ }
23
+ };
31
24
  }
32
-
25
+ //#endregion
33
26
  export { isUrl };
34
- //# sourceMappingURL=is-url.mjs.map
27
+
28
+ //# sourceMappingURL=is-url.mjs.map
@@ -1 +1 @@
1
- {"version":3,"file":"is-url.mjs","sources":["../../../src/validators/is-url/is-url.ts"],"sourcesContent":["interface IsUrlOptions {\n protocols?: string[];\n allowLocalhost?: boolean;\n}\n\nexport function isUrl(error?: React.ReactNode): (value: unknown) => React.ReactNode;\nexport function isUrl(\n options: IsUrlOptions,\n error?: React.ReactNode\n): (value: unknown) => React.ReactNode;\nexport function isUrl(optionsOrError?: IsUrlOptions | React.ReactNode, error?: React.ReactNode) {\n let _options: IsUrlOptions = {};\n let _error: React.ReactNode;\n\n if (\n optionsOrError !== null &&\n optionsOrError !== undefined &&\n typeof optionsOrError === 'object' &&\n !Array.isArray(optionsOrError) &&\n ('protocols' in optionsOrError || 'allowLocalhost' in optionsOrError)\n ) {\n _options = optionsOrError as IsUrlOptions;\n _error = error || true;\n } else {\n _error = (optionsOrError as React.ReactNode) || true;\n }\n\n const protocols = _options.protocols ?? ['http', 'https'];\n const allowLocalhost = _options.allowLocalhost ?? false;\n\n return (value: unknown): React.ReactNode => {\n if (typeof value !== 'string') {\n return _error;\n }\n\n try {\n const url = new URL(value);\n const protocol = url.protocol.replace(':', '');\n\n if (!protocols.includes(protocol)) {\n return _error;\n }\n\n if (!allowLocalhost && url.hostname === 'localhost') {\n return _error;\n }\n\n return null;\n } catch {\n return _error;\n }\n };\n}\n"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"is-url.mjs","names":[],"sources":["../../../src/validators/is-url/is-url.ts"],"sourcesContent":["interface IsUrlOptions {\n protocols?: string[];\n allowLocalhost?: boolean;\n}\n\nexport function isUrl(error?: React.ReactNode): (value: unknown) => React.ReactNode;\nexport function isUrl(\n options: IsUrlOptions,\n error?: React.ReactNode\n): (value: unknown) => React.ReactNode;\nexport function isUrl(optionsOrError?: IsUrlOptions | React.ReactNode, error?: React.ReactNode) {\n let _options: IsUrlOptions = {};\n let _error: React.ReactNode;\n\n if (\n optionsOrError !== null &&\n optionsOrError !== undefined &&\n typeof optionsOrError === 'object' &&\n !Array.isArray(optionsOrError) &&\n ('protocols' in optionsOrError || 'allowLocalhost' in optionsOrError)\n ) {\n _options = optionsOrError as IsUrlOptions;\n _error = error || true;\n } else {\n _error = (optionsOrError as React.ReactNode) || true;\n }\n\n const protocols = _options.protocols ?? ['http', 'https'];\n const allowLocalhost = _options.allowLocalhost ?? false;\n\n return (value: unknown): React.ReactNode => {\n if (typeof value !== 'string') {\n return _error;\n }\n\n try {\n const url = new URL(value);\n const protocol = url.protocol.replace(':', '');\n\n if (!protocols.includes(protocol)) {\n return _error;\n }\n\n if (!allowLocalhost && url.hostname === 'localhost') {\n return _error;\n }\n\n return null;\n } catch {\n return _error;\n }\n };\n}\n"],"mappings":";;AAUA,SAAgB,MAAM,gBAAiD,OAAyB;CAC9F,IAAI,WAAyB,EAAE;CAC/B,IAAI;AAEJ,KACE,mBAAmB,QACnB,mBAAmB,KAAA,KACnB,OAAO,mBAAmB,YAC1B,CAAC,MAAM,QAAQ,eAAe,KAC7B,eAAe,kBAAkB,oBAAoB,iBACtD;AACA,aAAW;AACX,WAAS,SAAS;OAElB,UAAU,kBAAsC;CAGlD,MAAM,YAAY,SAAS,aAAa,CAAC,QAAQ,QAAQ;CACzD,MAAM,iBAAiB,SAAS,kBAAkB;AAElD,SAAQ,UAAoC;AAC1C,MAAI,OAAO,UAAU,SACnB,QAAO;AAGT,MAAI;GACF,MAAM,MAAM,IAAI,IAAI,MAAM;GAC1B,MAAM,WAAW,IAAI,SAAS,QAAQ,KAAK,GAAG;AAE9C,OAAI,CAAC,UAAU,SAAS,SAAS,CAC/B,QAAO;AAGT,OAAI,CAAC,kBAAkB,IAAI,aAAa,YACtC,QAAO;AAGT,UAAO;UACD;AACN,UAAO"}
@@ -1,13 +1,13 @@
1
- 'use client';
1
+ "use client";
2
+ //#region packages/@mantine/form/src/validators/matches/matches.ts
2
3
  function matches(regexp, error) {
3
- const _error = error || true;
4
- return (value) => {
5
- if (typeof value !== "string") {
6
- return _error;
7
- }
8
- return regexp.test(value) ? null : _error;
9
- };
4
+ const _error = error || true;
5
+ return (value) => {
6
+ if (typeof value !== "string") return _error;
7
+ return regexp.test(value) ? null : _error;
8
+ };
10
9
  }
11
-
10
+ //#endregion
12
11
  export { matches };
13
- //# sourceMappingURL=matches.mjs.map
12
+
13
+ //# sourceMappingURL=matches.mjs.map
@@ -1 +1 @@
1
- {"version":3,"file":"matches.mjs","sources":["../../../src/validators/matches/matches.ts"],"sourcesContent":["export function matches(regexp: RegExp, error?: React.ReactNode) {\n const _error = error || true;\n\n return (value: unknown): React.ReactNode => {\n if (typeof value !== 'string') {\n return _error;\n }\n\n return regexp.test(value) ? null : _error;\n };\n}\n"],"names":[],"mappings":";AAAO,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAS,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAQ,CAAA,CAAA,CAAA,CAAA,CAAA,GAAgB,KAAA,CAAA,CAAyB,CAAA;AAC/D,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAM,CAAA,CAAA,CAAA,CAAA,CAAA,IAAS,CAAA,CAAA,CAAA,CAAA,CAAA,IAAS,CAAA,CAAA,CAAA,CAAA,CAAA;AAExB,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAO,CAAC,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAoC,CAAA;AAC1C,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAI,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAO,CAAA,CAAA,CAAA,CAAA,MAAU,QAAA,CAAA,CAAU,CAAA;AAC7B,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,OAAO,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA;AAAA,CAAA,CAAA,CAAA,CACT,CAAA;AAEA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAO,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAO,CAAA,CAAA,CAAA,CAAA,CAAK,KAAK,CAAA,CAAA,CAAA,CAAI,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAO,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA;AAAA,CAAA,CACrC,CAAA,CAAA;AACF,CAAA;;"}
1
+ {"version":3,"file":"matches.mjs","names":[],"sources":["../../../src/validators/matches/matches.ts"],"sourcesContent":["export function matches(regexp: RegExp, error?: React.ReactNode) {\n const _error = error || true;\n\n return (value: unknown): React.ReactNode => {\n if (typeof value !== 'string') {\n return _error;\n }\n\n return regexp.test(value) ? null : _error;\n };\n}\n"],"mappings":";;AAAA,SAAgB,QAAQ,QAAgB,OAAyB;CAC/D,MAAM,SAAS,SAAS;AAExB,SAAQ,UAAoC;AAC1C,MAAI,OAAO,UAAU,SACnB,QAAO;AAGT,SAAO,OAAO,KAAK,MAAM,GAAG,OAAO"}
@@ -1,13 +1,13 @@
1
- 'use client';
1
+ "use client";
2
+ //#region packages/@mantine/form/src/validators/matches-field/matches-field.ts
2
3
  function matchesField(field, error) {
3
- const _error = error || true;
4
- return (value, values) => {
5
- if (!values || !(field in values)) {
6
- return _error;
7
- }
8
- return value === values[field] ? null : _error;
9
- };
4
+ const _error = error || true;
5
+ return (value, values) => {
6
+ if (!values || !(field in values)) return _error;
7
+ return value === values[field] ? null : _error;
8
+ };
10
9
  }
11
-
10
+ //#endregion
12
11
  export { matchesField };
13
- //# sourceMappingURL=matches-field.mjs.map
12
+
13
+ //# sourceMappingURL=matches-field.mjs.map
@@ -1 +1 @@
1
- {"version":3,"file":"matches-field.mjs","sources":["../../../src/validators/matches-field/matches-field.ts"],"sourcesContent":["export function matchesField<T>(field: keyof T, error?: React.ReactNode) {\n const _error = error || true;\n\n return (value: unknown, values: T): React.ReactNode => {\n if (!values || !(field in (values as any))) {\n return _error;\n }\n\n return value === values[field] ? null : _error;\n };\n}\n"],"names":[],"mappings":";AAAO,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAS,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAgB,CAAA,CAAA,CAAA,CAAA,GAAgB,KAAA,CAAA,CAAyB,CAAA;AACvE,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAM,CAAA,CAAA,CAAA,CAAA,CAAA,IAAS,CAAA,CAAA,CAAA,CAAA,CAAA,IAAS,CAAA,CAAA,CAAA,CAAA,CAAA;AAExB,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAO,CAAC,CAAA,CAAA,CAAA,CAAA,GAAgB,MAAA,CAAA,CAAA,CAAA,CAAA,CAA+B,CAAA;AACrD,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAI,CAAC,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAU,EAAE,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAU,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAiB,CAAA;AAC1C,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,OAAO,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA;AAAA,CAAA,CAAA,CAAA,CACT,CAAA;AAEA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAO,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAU,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAO,KAAK,CAAA,CAAA,CAAA,CAAI,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAO,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA;AAAA,CAAA,CAC1C,CAAA,CAAA;AACF,CAAA;;"}
1
+ {"version":3,"file":"matches-field.mjs","names":[],"sources":["../../../src/validators/matches-field/matches-field.ts"],"sourcesContent":["export function matchesField<T>(field: keyof T, error?: React.ReactNode) {\n const _error = error || true;\n\n return (value: unknown, values: T): React.ReactNode => {\n if (!values || !(field in (values as any))) {\n return _error;\n }\n\n return value === values[field] ? null : _error;\n };\n}\n"],"mappings":";;AAAA,SAAgB,aAAgB,OAAgB,OAAyB;CACvE,MAAM,SAAS,SAAS;AAExB,SAAQ,OAAgB,WAA+B;AACrD,MAAI,CAAC,UAAU,EAAE,SAAU,QACzB,QAAO;AAGT,SAAO,UAAU,OAAO,SAAS,OAAO"}
package/lib/index.d.mts CHANGED
@@ -4,6 +4,7 @@ export { createFormActions } from './actions/index.js';
4
4
  export { FORM_INDEX } from './form-index.js';
5
5
  export * from './validators/index.js';
6
6
  export { useField } from './use-field.js';
7
+ export { schemaResolver } from './schema-resolver.js';
7
8
  export { formRootRule } from './validate/validate-values.js';
8
9
  export type * from './types';
9
10
  export type { UseFieldInput, UseFieldReturnType } from './use-field';
package/lib/index.d.ts CHANGED
@@ -4,6 +4,7 @@ export { createFormActions } from './actions/index.js';
4
4
  export { FORM_INDEX } from './form-index.js';
5
5
  export * from './validators/index.js';
6
6
  export { useField } from './use-field.js';
7
+ export { schemaResolver } from './schema-resolver.js';
7
8
  export { formRootRule } from './validate/validate-values.js';
8
9
  export type * from './types';
9
10
  export type { UseFieldInput, UseFieldReturnType } from './use-field';
@@ -0,0 +1,5 @@
1
+ import type { StandardSchemaV1 } from '@standard-schema/spec';
2
+ import type { FormErrors } from './types';
3
+ export declare function schemaResolver<Sync extends boolean = false>(schema: StandardSchemaV1, _options?: {
4
+ sync?: Sync;
5
+ }): Sync extends true ? (values: any) => FormErrors : (values: any) => Promise<FormErrors>;
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@mantine/form",
3
- "version": "9.0.0-alpha.4",
3
+ "version": "9.0.0-alpha.6",
4
4
  "description": "Mantine form management library",
5
5
  "homepage": "https://mantine.dev",
6
6
  "license": "MIT",
@@ -32,10 +32,14 @@
32
32
  "directory": "packages/@mantine/form"
33
33
  },
34
34
  "peerDependencies": {
35
- "react": "^18.x || ^19.x"
35
+ "react": "^19.2.0"
36
36
  },
37
37
  "dependencies": {
38
+ "@standard-schema/spec": "^1.1.0",
38
39
  "fast-deep-equal": "^3.1.3",
39
40
  "klona": "^2.0.6"
41
+ },
42
+ "devDependencies": {
43
+ "zod": "^4.3.6"
40
44
  }
41
45
  }
package/cjs/index.cjs.map DELETED
@@ -1 +0,0 @@
1
- {"version":3,"file":"index.cjs","sources":[],"sourcesContent":[],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;"}
package/esm/index.mjs.map DELETED
@@ -1 +0,0 @@
1
- {"version":3,"file":"index.mjs","sources":[],"sourcesContent":[],"names":[],"mappings":";;;;;;;;;;;;;;;"}