remix-validated-form 4.2.0 → 4.4.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 (181) hide show
  1. package/.turbo/turbo-build.log +15 -9
  2. package/README.md +1 -0
  3. package/browser/ValidatedForm.js +16 -26
  4. package/browser/hooks.d.ts +2 -0
  5. package/browser/hooks.js +20 -9
  6. package/browser/internal/MultiValueMap.d.ts +2 -0
  7. package/browser/internal/MultiValueMap.js +4 -0
  8. package/browser/internal/getInputProps.js +2 -1
  9. package/browser/internal/hooks.d.ts +20 -9
  10. package/browser/internal/hooks.js +32 -23
  11. package/browser/internal/logic/getRadioChecked.js +10 -0
  12. package/browser/internal/reset.d.ts +28 -0
  13. package/browser/internal/reset.js +13 -0
  14. package/browser/internal/state/cleanup.d.ts +2 -0
  15. package/browser/internal/state/cleanup.js +6 -0
  16. package/browser/internal/state/controlledFieldStore.d.ts +24 -0
  17. package/browser/internal/state/controlledFieldStore.js +57 -0
  18. package/browser/internal/state/controlledFields.d.ts +6 -62
  19. package/browser/internal/state/controlledFields.js +36 -63
  20. package/browser/internal/state/createFormStore.d.ts +40 -0
  21. package/browser/internal/state/createFormStore.js +83 -0
  22. package/browser/internal/state/storeFamily.d.ts +9 -0
  23. package/browser/internal/state/storeFamily.js +18 -0
  24. package/browser/internal/state/storeHooks.d.ts +5 -0
  25. package/browser/internal/state/storeHooks.js +10 -0
  26. package/browser/internal/state.d.ts +0 -27
  27. package/browser/internal/state.js +0 -5
  28. package/browser/unreleased/formStateHooks.d.ts +15 -0
  29. package/browser/unreleased/formStateHooks.js +23 -14
  30. package/browser/userFacingFormContext.d.ts +8 -0
  31. package/browser/userFacingFormContext.js +5 -4
  32. package/dist/remix-validated-form.cjs.js +17 -0
  33. package/dist/remix-validated-form.es.js +2844 -0
  34. package/dist/remix-validated-form.umd.js +17 -0
  35. package/{build → dist/types}/ValidatedForm.d.ts +0 -0
  36. package/{build → dist/types}/hooks.d.ts +2 -0
  37. package/{build → dist/types}/index.d.ts +0 -0
  38. package/{build → dist/types}/internal/MultiValueMap.d.ts +2 -0
  39. package/{build → dist/types}/internal/constants.d.ts +0 -0
  40. package/{build → dist/types}/internal/flatten.d.ts +0 -0
  41. package/{build → dist/types}/internal/formContext.d.ts +0 -0
  42. package/{build → dist/types}/internal/getInputProps.d.ts +0 -0
  43. package/dist/types/internal/hooks.d.ts +32 -0
  44. package/{build → dist/types}/internal/hydratable.d.ts +0 -0
  45. package/{build → dist/types}/internal/logic/getCheckboxChecked.d.ts +0 -0
  46. package/{build → dist/types}/internal/logic/getRadioChecked.d.ts +0 -0
  47. package/dist/types/internal/state/cleanup.d.ts +2 -0
  48. package/dist/types/internal/state/controlledFieldStore.d.ts +24 -0
  49. package/dist/types/internal/state/controlledFields.d.ts +6 -0
  50. package/dist/types/internal/state/createFormStore.d.ts +40 -0
  51. package/dist/types/internal/state/storeFamily.d.ts +9 -0
  52. package/dist/types/internal/state/storeHooks.d.ts +5 -0
  53. package/{build → dist/types}/internal/submissionCallbacks.d.ts +0 -0
  54. package/{build → dist/types}/internal/util.d.ts +0 -0
  55. package/{build → dist/types}/server.d.ts +0 -0
  56. package/{build → dist/types}/unreleased/formStateHooks.d.ts +15 -0
  57. package/{build → dist/types}/userFacingFormContext.d.ts +8 -0
  58. package/{build → dist/types}/validation/createValidator.d.ts +0 -0
  59. package/{build → dist/types}/validation/types.d.ts +0 -0
  60. package/package.json +11 -9
  61. package/src/ValidatedForm.tsx +25 -43
  62. package/src/hooks.ts +29 -17
  63. package/src/internal/MultiValueMap.ts +6 -0
  64. package/src/internal/getInputProps.test.ts +251 -0
  65. package/src/internal/getInputProps.ts +2 -1
  66. package/src/internal/hooks.ts +69 -45
  67. package/src/internal/logic/getRadioChecked.ts +11 -0
  68. package/src/internal/state/cleanup.ts +8 -0
  69. package/src/internal/state/controlledFieldStore.ts +91 -0
  70. package/src/internal/state/controlledFields.ts +78 -0
  71. package/src/internal/state/createFormStore.ts +152 -0
  72. package/src/internal/state/storeFamily.ts +24 -0
  73. package/src/internal/state/storeHooks.ts +22 -0
  74. package/src/unreleased/formStateHooks.ts +50 -27
  75. package/src/userFacingFormContext.ts +17 -5
  76. package/src/validation/validation.test.ts +304 -0
  77. package/tsconfig.json +4 -1
  78. package/vite.config.ts +7 -0
  79. package/.turbo/turbo-test.log +0 -11
  80. package/browser/components.d.ts +0 -7
  81. package/browser/components.js +0 -10
  82. package/browser/internal/SingleTypeMultiValueMap.d.ts +0 -9
  83. package/browser/internal/SingleTypeMultiValueMap.js +0 -41
  84. package/browser/internal/customState.d.ts +0 -105
  85. package/browser/internal/customState.js +0 -46
  86. package/browser/internal/hooks-valtio.d.ts +0 -18
  87. package/browser/internal/hooks-valtio.js +0 -110
  88. package/browser/internal/hooks-zustand.d.ts +0 -16
  89. package/browser/internal/hooks-zustand.js +0 -100
  90. package/browser/internal/immerMiddleware.d.ts +0 -6
  91. package/browser/internal/immerMiddleware.js +0 -7
  92. package/browser/internal/logic/elementUtils.d.ts +0 -3
  93. package/browser/internal/logic/elementUtils.js +0 -3
  94. package/browser/internal/logic/getCheckboxChecked copy.d.ts +0 -1
  95. package/browser/internal/logic/getCheckboxChecked copy.js +0 -9
  96. package/browser/internal/logic/setFieldValue.d.ts +0 -1
  97. package/browser/internal/logic/setFieldValue.js +0 -40
  98. package/browser/internal/logic/setInputValueInForm.d.ts +0 -1
  99. package/browser/internal/logic/setInputValueInForm.js +0 -77
  100. package/browser/internal/setFieldValue.d.ts +0 -20
  101. package/browser/internal/setFieldValue.js +0 -83
  102. package/browser/internal/setFormValues.d.ts +0 -2
  103. package/browser/internal/setFormValues.js +0 -26
  104. package/browser/internal/state/setFieldValue.d.ts +0 -0
  105. package/browser/internal/state/setFieldValue.js +0 -1
  106. package/browser/internal/state-valtio.d.ts +0 -62
  107. package/browser/internal/state-valtio.js +0 -69
  108. package/browser/internal/state-zustand.d.ts +0 -47
  109. package/browser/internal/state-zustand.js +0 -85
  110. package/browser/internal/test.d.ts +0 -0
  111. package/browser/internal/test.js +0 -15
  112. package/browser/internal/useMultiValueMap.d.ts +0 -1
  113. package/browser/internal/useMultiValueMap.js +0 -11
  114. package/browser/internal/watch.d.ts +0 -18
  115. package/browser/internal/watch.js +0 -122
  116. package/browser/lowLevelHooks.d.ts +0 -0
  117. package/browser/lowLevelHooks.js +0 -1
  118. package/browser/test-data/testFormData.d.ts +0 -15
  119. package/browser/test-data/testFormData.js +0 -46
  120. package/browser/types.d.ts +0 -1
  121. package/browser/types.js +0 -1
  122. package/browser/validation/validation.test.d.ts +0 -1
  123. package/browser/validation/validation.test.js +0 -274
  124. package/browser/validation/withYup.d.ts +0 -6
  125. package/browser/validation/withYup.js +0 -40
  126. package/browser/validation/withZod.d.ts +0 -6
  127. package/browser/validation/withZod.js +0 -50
  128. package/build/ValidatedForm.js +0 -257
  129. package/build/hooks.js +0 -79
  130. package/build/index.js +0 -18
  131. package/build/internal/MultiValueMap.js +0 -44
  132. package/build/internal/SingleTypeMultiValueMap.d.ts +0 -8
  133. package/build/internal/SingleTypeMultiValueMap.js +0 -45
  134. package/build/internal/constants.js +0 -7
  135. package/build/internal/flatten.js +0 -14
  136. package/build/internal/formContext.js +0 -5
  137. package/build/internal/getInputProps.js +0 -57
  138. package/build/internal/hooks-valtio.d.ts +0 -18
  139. package/build/internal/hooks-valtio.js +0 -128
  140. package/build/internal/hooks-zustand.d.ts +0 -16
  141. package/build/internal/hooks-zustand.js +0 -117
  142. package/build/internal/hooks.d.ts +0 -21
  143. package/build/internal/hooks.js +0 -128
  144. package/build/internal/hydratable.js +0 -17
  145. package/build/internal/immerMiddleware.d.ts +0 -6
  146. package/build/internal/immerMiddleware.js +0 -14
  147. package/build/internal/logic/elementUtils.d.ts +0 -3
  148. package/build/internal/logic/elementUtils.js +0 -9
  149. package/build/internal/logic/getCheckboxChecked.js +0 -13
  150. package/build/internal/logic/getRadioChecked.js +0 -9
  151. package/build/internal/logic/setFieldValue.d.ts +0 -1
  152. package/build/internal/logic/setFieldValue.js +0 -47
  153. package/build/internal/logic/setInputValueInForm.d.ts +0 -1
  154. package/build/internal/logic/setInputValueInForm.js +0 -84
  155. package/build/internal/setFormValues.d.ts +0 -2
  156. package/build/internal/setFormValues.js +0 -33
  157. package/build/internal/state/atomUtils.d.ts +0 -38
  158. package/build/internal/state/atomUtils.js +0 -13
  159. package/build/internal/state/controlledFields.d.ts +0 -62
  160. package/build/internal/state/controlledFields.js +0 -85
  161. package/build/internal/state-valtio.d.ts +0 -62
  162. package/build/internal/state-valtio.js +0 -83
  163. package/build/internal/state-zustand.d.ts +0 -47
  164. package/build/internal/state-zustand.js +0 -91
  165. package/build/internal/state.d.ts +0 -370
  166. package/build/internal/state.js +0 -76
  167. package/build/internal/submissionCallbacks.js +0 -17
  168. package/build/internal/test.d.ts +0 -1
  169. package/build/internal/test.js +0 -12
  170. package/build/internal/util.js +0 -41
  171. package/build/internal/watch.d.ts +0 -20
  172. package/build/internal/watch.js +0 -126
  173. package/build/server.js +0 -32
  174. package/build/types.d.ts +0 -1
  175. package/build/types.js +0 -2
  176. package/build/unreleased/formStateHooks.js +0 -59
  177. package/build/userFacingFormContext.js +0 -30
  178. package/build/validation/createValidator.js +0 -45
  179. package/build/validation/types.js +0 -2
  180. package/src/internal/state/atomUtils.ts +0 -13
  181. package/src/internal/state.ts +0 -132
@@ -1,83 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.setFieldErrors = exports.reset = exports.setTouched = exports.addError = exports.clearError = exports.sync = exports.endSubmit = exports.startSubmit = exports.useFormData = exports.unregisterFormSlice = exports.registerFormSlice = exports.state = void 0;
4
- const valtio_1 = require("valtio");
5
- exports.state = (0, valtio_1.proxy)({ forms: {} });
6
- const registerFormSlice = (formId, { registerReceiveFocus, setFieldValueForForm, validateField, action, defaultValues, subaction, }) => {
7
- exports.state.forms[formId] = {
8
- hydrated: true,
9
- defaultValues: defaultValues !== null && defaultValues !== void 0 ? defaultValues : {},
10
- fieldErrors: {},
11
- hasBeenSubmitted: false,
12
- isSubmitting: false,
13
- touchedFields: {},
14
- registerReceiveFocus,
15
- setFieldValue: setFieldValueForForm,
16
- validateField,
17
- action,
18
- subaction,
19
- };
20
- };
21
- exports.registerFormSlice = registerFormSlice;
22
- const unregisterFormSlice = (formId) => {
23
- delete exports.state.forms[formId];
24
- };
25
- exports.unregisterFormSlice = unregisterFormSlice;
26
- const unhydratedFormState = {
27
- hydrated: false,
28
- fieldErrors: {},
29
- isSubmitting: false,
30
- hasBeenSubmitted: false,
31
- touchedFields: {},
32
- defaultValues: {},
33
- validateField: () => Promise.resolve(null),
34
- registerReceiveFocus: () => () => { },
35
- setFieldValue: () => { },
36
- };
37
- const useFormData = (formId) => {
38
- var _a;
39
- const snapshot = (0, valtio_1.useSnapshot)(exports.state);
40
- return (_a = snapshot.forms[formId]) !== null && _a !== void 0 ? _a : unhydratedFormState;
41
- };
42
- exports.useFormData = useFormData;
43
- const startSubmit = (formId) => {
44
- exports.state.forms[formId].isSubmitting = true;
45
- exports.state.forms[formId].hasBeenSubmitted = true;
46
- };
47
- exports.startSubmit = startSubmit;
48
- const endSubmit = (formId) => {
49
- exports.state.forms[formId].isSubmitting = false;
50
- };
51
- exports.endSubmit = endSubmit;
52
- const sync = (formId, { defaultValues, action, subaction, registerReceiveFocus, validateField, setFieldValueForForm, }) => {
53
- exports.state.forms[formId].defaultValues = defaultValues !== null && defaultValues !== void 0 ? defaultValues : {};
54
- exports.state.forms[formId].action = action;
55
- exports.state.forms[formId].subaction = subaction;
56
- exports.state.forms[formId].registerReceiveFocus = registerReceiveFocus;
57
- exports.state.forms[formId].validateField = validateField;
58
- exports.state.forms[formId].hydrated = true;
59
- exports.state.forms[formId].setFieldValue = setFieldValueForForm;
60
- };
61
- exports.sync = sync;
62
- const clearError = (formId, fieldName) => {
63
- delete exports.state.forms[formId].fieldErrors[fieldName];
64
- };
65
- exports.clearError = clearError;
66
- const addError = (formId, fieldName, error) => {
67
- exports.state.forms[formId].fieldErrors[fieldName] = error;
68
- };
69
- exports.addError = addError;
70
- const setTouched = (formId, fieldName, touched) => {
71
- exports.state.forms[formId].touchedFields[fieldName] = touched;
72
- };
73
- exports.setTouched = setTouched;
74
- const reset = (formId) => {
75
- exports.state.forms[formId].fieldErrors = {};
76
- exports.state.forms[formId].touchedFields = {};
77
- exports.state.forms[formId].hasBeenSubmitted = false;
78
- };
79
- exports.reset = reset;
80
- const setFieldErrors = (formId, fieldErrors) => {
81
- exports.state.forms[formId].fieldErrors = fieldErrors;
82
- };
83
- exports.setFieldErrors = setFieldErrors;
@@ -1,47 +0,0 @@
1
- import { FieldErrors, TouchedFields } from "..";
2
- export declare type InternalFormState = {
3
- hydrated: boolean;
4
- fieldErrors: FieldErrors;
5
- isSubmitting: boolean;
6
- hasBeenSubmitted: boolean;
7
- touchedFields: TouchedFields;
8
- action?: string;
9
- subaction?: string;
10
- defaultValues: {
11
- [fieldName: string]: any;
12
- };
13
- validateField: (fieldName: string) => Promise<string | null>;
14
- registerReceiveFocus: (fieldName: string, handler: () => void) => () => void;
15
- setFieldValue: (fieldName: string, value: unknown) => void;
16
- };
17
- declare type Helpers = {
18
- startSubmit: () => void;
19
- endSubmit: () => void;
20
- sync: (args: SyncFormArgs) => void;
21
- clearError: (name: string) => void;
22
- addError: (name: string, error: string) => void;
23
- setTouched: (name: string, touched: boolean) => void;
24
- reset: () => void;
25
- setFieldErrors: (fieldErrors: FieldErrors) => void;
26
- register: (init: SyncFormArgs) => void;
27
- unregister: () => void;
28
- };
29
- declare type SyncFormArgs = {
30
- defaultValues?: {
31
- [fieldName: string]: any;
32
- };
33
- action?: string;
34
- subaction?: string;
35
- validateField: InternalFormState["validateField"];
36
- registerReceiveFocus: InternalFormState["registerReceiveFocus"];
37
- setFieldValueForForm: InternalFormState["setFieldValue"];
38
- };
39
- declare type StoreState = {
40
- forms: {
41
- [formId: string | symbol]: InternalFormState;
42
- };
43
- form: (formId: string | symbol) => InternalFormState;
44
- helpers: (formId: string | symbol) => Helpers;
45
- };
46
- export declare const useStore: import("zustand").UseBoundStore<StoreState, import("zustand").StoreApi<StoreState>>;
47
- export {};
@@ -1,91 +0,0 @@
1
- "use strict";
2
- var __importDefault = (this && this.__importDefault) || function (mod) {
3
- return (mod && mod.__esModule) ? mod : { "default": mod };
4
- };
5
- Object.defineProperty(exports, "__esModule", { value: true });
6
- exports.useStore = void 0;
7
- const zustand_1 = __importDefault(require("zustand"));
8
- const immerMiddleware_1 = require("./immerMiddleware");
9
- const unhydratedFormState = {
10
- hydrated: false,
11
- fieldErrors: {},
12
- isSubmitting: false,
13
- hasBeenSubmitted: false,
14
- touchedFields: {},
15
- defaultValues: {},
16
- validateField: () => Promise.resolve(null),
17
- registerReceiveFocus: () => () => { },
18
- setFieldValue: () => { },
19
- // clearError: () => {},
20
- // addError: () => {},
21
- // setTouched: () => {},
22
- // reset: () => {},
23
- // startSubmit: () => {},
24
- // endSubmit: () => {},
25
- // sync: () => {},
26
- // setFieldErrors: () => {},
27
- };
28
- exports.useStore = (0, zustand_1.default)((0, immerMiddleware_1.immer)((set, get) => ({
29
- forms: {},
30
- form: (formId) => { var _a; return (_a = get().forms[formId]) !== null && _a !== void 0 ? _a : unhydratedFormState; },
31
- helpers: (formId) => ({
32
- clearError: (name) => set((state) => {
33
- delete state.forms[formId].fieldErrors[name];
34
- }),
35
- addError: (name, error) => set((state) => {
36
- state.forms[formId].fieldErrors[name] = error;
37
- }),
38
- setTouched: (name, touched) => set((state) => {
39
- state.forms[formId].touchedFields[name] = touched;
40
- }),
41
- reset: () => set((state) => {
42
- state.forms[formId].fieldErrors = {};
43
- state.forms[formId].touchedFields = {};
44
- state.forms[formId].hasBeenSubmitted = false;
45
- }),
46
- startSubmit: () => set((state) => {
47
- state.forms[formId].hasBeenSubmitted = true;
48
- state.forms[formId].isSubmitting = true;
49
- }),
50
- endSubmit: () => set((state) => {
51
- state.forms[formId].isSubmitting = false;
52
- }),
53
- setFieldErrors: (fieldErrors) => {
54
- set((state) => {
55
- state.forms[formId].fieldErrors = fieldErrors;
56
- });
57
- },
58
- sync: ({ defaultValues, action, subaction, validateField, registerReceiveFocus, setFieldValueForForm, }) => set((state) => {
59
- state.forms[formId].defaultValues = defaultValues !== null && defaultValues !== void 0 ? defaultValues : {};
60
- state.forms[formId].action = action;
61
- state.forms[formId].subaction = subaction;
62
- state.forms[formId].registerReceiveFocus = registerReceiveFocus;
63
- state.forms[formId].validateField = validateField;
64
- state.forms[formId].hydrated = true;
65
- state.forms[formId].setFieldValue = setFieldValueForForm;
66
- }),
67
- unregister: () => {
68
- set((state) => {
69
- delete state.forms[formId];
70
- });
71
- },
72
- register: ({ defaultValues, action, subaction, validateField, registerReceiveFocus, setFieldValueForForm, }) => {
73
- set((state) => {
74
- state.forms[formId] = {
75
- defaultValues: defaultValues !== null && defaultValues !== void 0 ? defaultValues : {},
76
- setFieldValue: setFieldValueForForm,
77
- registerReceiveFocus,
78
- validateField,
79
- action,
80
- subaction,
81
- hydrated: true,
82
- fieldErrors: {},
83
- isSubmitting: false,
84
- hasBeenSubmitted: false,
85
- touchedFields: {},
86
- // helpers
87
- };
88
- });
89
- },
90
- }),
91
- })));
@@ -1,370 +0,0 @@
1
- import { FieldErrors, TouchedFields } from "../validation/types";
2
- import { InternalFormId } from "./state/atomUtils";
3
- export declare const ATOM_SCOPE: unique symbol;
4
- export declare type SyncedFormProps = {
5
- formId?: string;
6
- action?: string;
7
- subaction?: string;
8
- defaultValues: {
9
- [fieldName: string]: any;
10
- };
11
- validateField: (fieldName: string) => Promise<string | null>;
12
- registerReceiveFocus: (fieldName: string, handler: () => void) => () => void;
13
- };
14
- export declare const isHydratedAtom: {
15
- (param: InternalFormId): import("jotai").Atom<boolean> & {
16
- write: (get: {
17
- <Value>(atom: import("jotai").Atom<Value | Promise<Value>>): Value;
18
- <Value_1>(atom: import("jotai").Atom<Promise<Value_1>>): Value_1;
19
- <Value_2>(atom: import("jotai").Atom<Value_2>): Value_2 extends Promise<infer V> ? V : Value_2;
20
- } & {
21
- <Value_3>(atom: import("jotai").Atom<Value_3 | Promise<Value_3>>, options: {
22
- unstable_promise: true;
23
- }): Value_3 | Promise<Value_3>;
24
- <Value_4>(atom: import("jotai").Atom<Promise<Value_4>>, options: {
25
- unstable_promise: true;
26
- }): Value_4 | Promise<Value_4>;
27
- <Value_5>(atom: import("jotai").Atom<Value_5>, options: {
28
- unstable_promise: true;
29
- }): (Value_5 extends Promise<infer V> ? V : Value_5) | Promise<Value_5 extends Promise<infer V> ? V : Value_5>;
30
- }, set: {
31
- <Value_6, Result extends void | Promise<void>>(atom: import("jotai").WritableAtom<Value_6, undefined, Result>): Result;
32
- <Value_7, Update, Result_1 extends void | Promise<void>>(atom: import("jotai").WritableAtom<Value_7, Update, Result_1>, update: Update): Result_1;
33
- }, update: boolean | ((prev: boolean) => boolean)) => void;
34
- onMount?: (<S extends (update: boolean | ((prev: boolean) => boolean)) => void>(setAtom: S) => void | (() => void)) | undefined;
35
- } & {
36
- init: boolean;
37
- };
38
- remove(param: InternalFormId): void;
39
- setShouldRemove(shouldRemove: ((createdAt: number, param: InternalFormId) => boolean) | null): void;
40
- };
41
- export declare const isSubmittingAtom: {
42
- (param: InternalFormId): import("jotai").Atom<boolean> & {
43
- write: (get: {
44
- <Value>(atom: import("jotai").Atom<Value | Promise<Value>>): Value;
45
- <Value_1>(atom: import("jotai").Atom<Promise<Value_1>>): Value_1;
46
- <Value_2>(atom: import("jotai").Atom<Value_2>): Value_2 extends Promise<infer V> ? V : Value_2;
47
- } & {
48
- <Value_3>(atom: import("jotai").Atom<Value_3 | Promise<Value_3>>, options: {
49
- unstable_promise: true;
50
- }): Value_3 | Promise<Value_3>;
51
- <Value_4>(atom: import("jotai").Atom<Promise<Value_4>>, options: {
52
- unstable_promise: true;
53
- }): Value_4 | Promise<Value_4>;
54
- <Value_5>(atom: import("jotai").Atom<Value_5>, options: {
55
- unstable_promise: true;
56
- }): (Value_5 extends Promise<infer V> ? V : Value_5) | Promise<Value_5 extends Promise<infer V> ? V : Value_5>;
57
- }, set: {
58
- <Value_6, Result extends void | Promise<void>>(atom: import("jotai").WritableAtom<Value_6, undefined, Result>): Result;
59
- <Value_7, Update, Result_1 extends void | Promise<void>>(atom: import("jotai").WritableAtom<Value_7, Update, Result_1>, update: Update): Result_1;
60
- }, update: boolean | ((prev: boolean) => boolean)) => void;
61
- onMount?: (<S extends (update: boolean | ((prev: boolean) => boolean)) => void>(setAtom: S) => void | (() => void)) | undefined;
62
- } & {
63
- init: boolean;
64
- };
65
- remove(param: InternalFormId): void;
66
- setShouldRemove(shouldRemove: ((createdAt: number, param: InternalFormId) => boolean) | null): void;
67
- };
68
- export declare const hasBeenSubmittedAtom: {
69
- (param: InternalFormId): import("jotai").Atom<boolean> & {
70
- write: (get: {
71
- <Value>(atom: import("jotai").Atom<Value | Promise<Value>>): Value;
72
- <Value_1>(atom: import("jotai").Atom<Promise<Value_1>>): Value_1;
73
- <Value_2>(atom: import("jotai").Atom<Value_2>): Value_2 extends Promise<infer V> ? V : Value_2;
74
- } & {
75
- <Value_3>(atom: import("jotai").Atom<Value_3 | Promise<Value_3>>, options: {
76
- unstable_promise: true;
77
- }): Value_3 | Promise<Value_3>;
78
- <Value_4>(atom: import("jotai").Atom<Promise<Value_4>>, options: {
79
- unstable_promise: true;
80
- }): Value_4 | Promise<Value_4>;
81
- <Value_5>(atom: import("jotai").Atom<Value_5>, options: {
82
- unstable_promise: true;
83
- }): (Value_5 extends Promise<infer V> ? V : Value_5) | Promise<Value_5 extends Promise<infer V> ? V : Value_5>;
84
- }, set: {
85
- <Value_6, Result extends void | Promise<void>>(atom: import("jotai").WritableAtom<Value_6, undefined, Result>): Result;
86
- <Value_7, Update, Result_1 extends void | Promise<void>>(atom: import("jotai").WritableAtom<Value_7, Update, Result_1>, update: Update): Result_1;
87
- }, update: boolean | ((prev: boolean) => boolean)) => void;
88
- onMount?: (<S extends (update: boolean | ((prev: boolean) => boolean)) => void>(setAtom: S) => void | (() => void)) | undefined;
89
- } & {
90
- init: boolean;
91
- };
92
- remove(param: InternalFormId): void;
93
- setShouldRemove(shouldRemove: ((createdAt: number, param: InternalFormId) => boolean) | null): void;
94
- };
95
- export declare const fieldErrorsAtom: {
96
- (param: InternalFormId): import("jotai").Atom<FieldErrors> & {
97
- write: (get: {
98
- <Value>(atom: import("jotai").Atom<Value | Promise<Value>>): Value;
99
- <Value_1>(atom: import("jotai").Atom<Promise<Value_1>>): Value_1;
100
- <Value_2>(atom: import("jotai").Atom<Value_2>): Value_2 extends Promise<infer V> ? V : Value_2;
101
- } & {
102
- <Value_3>(atom: import("jotai").Atom<Value_3 | Promise<Value_3>>, options: {
103
- unstable_promise: true;
104
- }): Value_3 | Promise<Value_3>;
105
- <Value_4>(atom: import("jotai").Atom<Promise<Value_4>>, options: {
106
- unstable_promise: true;
107
- }): Value_4 | Promise<Value_4>;
108
- <Value_5>(atom: import("jotai").Atom<Value_5>, options: {
109
- unstable_promise: true;
110
- }): (Value_5 extends Promise<infer V> ? V : Value_5) | Promise<Value_5 extends Promise<infer V> ? V : Value_5>;
111
- }, set: {
112
- <Value_6, Result extends void | Promise<void>>(atom: import("jotai").WritableAtom<Value_6, undefined, Result>): Result;
113
- <Value_7, Update, Result_1 extends void | Promise<void>>(atom: import("jotai").WritableAtom<Value_7, Update, Result_1>, update: Update): Result_1;
114
- }, update: FieldErrors | ((prev: FieldErrors) => FieldErrors)) => void;
115
- onMount?: (<S extends (update: FieldErrors | ((prev: FieldErrors) => FieldErrors)) => void>(setAtom: S) => void | (() => void)) | undefined;
116
- } & {
117
- init: FieldErrors;
118
- };
119
- remove(param: InternalFormId): void;
120
- setShouldRemove(shouldRemove: ((createdAt: number, param: InternalFormId) => boolean) | null): void;
121
- };
122
- export declare const touchedFieldsAtom: {
123
- (param: InternalFormId): import("jotai").Atom<TouchedFields> & {
124
- write: (get: {
125
- <Value>(atom: import("jotai").Atom<Value | Promise<Value>>): Value;
126
- <Value_1>(atom: import("jotai").Atom<Promise<Value_1>>): Value_1;
127
- <Value_2>(atom: import("jotai").Atom<Value_2>): Value_2 extends Promise<infer V> ? V : Value_2;
128
- } & {
129
- <Value_3>(atom: import("jotai").Atom<Value_3 | Promise<Value_3>>, options: {
130
- unstable_promise: true;
131
- }): Value_3 | Promise<Value_3>;
132
- <Value_4>(atom: import("jotai").Atom<Promise<Value_4>>, options: {
133
- unstable_promise: true;
134
- }): Value_4 | Promise<Value_4>;
135
- <Value_5>(atom: import("jotai").Atom<Value_5>, options: {
136
- unstable_promise: true;
137
- }): (Value_5 extends Promise<infer V> ? V : Value_5) | Promise<Value_5 extends Promise<infer V> ? V : Value_5>;
138
- }, set: {
139
- <Value_6, Result extends void | Promise<void>>(atom: import("jotai").WritableAtom<Value_6, undefined, Result>): Result;
140
- <Value_7, Update, Result_1 extends void | Promise<void>>(atom: import("jotai").WritableAtom<Value_7, Update, Result_1>, update: Update): Result_1;
141
- }, update: TouchedFields | ((prev: TouchedFields) => TouchedFields)) => void;
142
- onMount?: (<S extends (update: TouchedFields | ((prev: TouchedFields) => TouchedFields)) => void>(setAtom: S) => void | (() => void)) | undefined;
143
- } & {
144
- init: TouchedFields;
145
- };
146
- remove(param: InternalFormId): void;
147
- setShouldRemove(shouldRemove: ((createdAt: number, param: InternalFormId) => boolean) | null): void;
148
- };
149
- export declare const formPropsAtom: {
150
- (param: InternalFormId): import("jotai").Atom<SyncedFormProps> & {
151
- write: (get: {
152
- <Value>(atom: import("jotai").Atom<Value | Promise<Value>>): Value;
153
- <Value_1>(atom: import("jotai").Atom<Promise<Value_1>>): Value_1;
154
- <Value_2>(atom: import("jotai").Atom<Value_2>): Value_2 extends Promise<infer V> ? V : Value_2;
155
- } & {
156
- <Value_3>(atom: import("jotai").Atom<Value_3 | Promise<Value_3>>, options: {
157
- unstable_promise: true;
158
- }): Value_3 | Promise<Value_3>;
159
- <Value_4>(atom: import("jotai").Atom<Promise<Value_4>>, options: {
160
- unstable_promise: true;
161
- }): Value_4 | Promise<Value_4>;
162
- <Value_5>(atom: import("jotai").Atom<Value_5>, options: {
163
- unstable_promise: true;
164
- }): (Value_5 extends Promise<infer V> ? V : Value_5) | Promise<Value_5 extends Promise<infer V> ? V : Value_5>;
165
- }, set: {
166
- <Value_6, Result extends void | Promise<void>>(atom: import("jotai").WritableAtom<Value_6, undefined, Result>): Result;
167
- <Value_7, Update, Result_1 extends void | Promise<void>>(atom: import("jotai").WritableAtom<Value_7, Update, Result_1>, update: Update): Result_1;
168
- }, update: SyncedFormProps | ((prev: SyncedFormProps) => SyncedFormProps)) => void;
169
- onMount?: (<S extends (update: SyncedFormProps | ((prev: SyncedFormProps) => SyncedFormProps)) => void>(setAtom: S) => void | (() => void)) | undefined;
170
- } & {
171
- init: SyncedFormProps;
172
- };
173
- remove(param: InternalFormId): void;
174
- setShouldRemove(shouldRemove: ((createdAt: number, param: InternalFormId) => boolean) | null): void;
175
- };
176
- export declare const formElementAtom: {
177
- (param: InternalFormId): import("jotai").Atom<HTMLFormElement | null> & {
178
- write: (get: {
179
- <Value>(atom: import("jotai").Atom<Value | Promise<Value>>): Value;
180
- <Value_1>(atom: import("jotai").Atom<Promise<Value_1>>): Value_1;
181
- <Value_2>(atom: import("jotai").Atom<Value_2>): Value_2 extends Promise<infer V> ? V : Value_2;
182
- } & {
183
- <Value_3>(atom: import("jotai").Atom<Value_3 | Promise<Value_3>>, options: {
184
- unstable_promise: true;
185
- }): Value_3 | Promise<Value_3>;
186
- <Value_4>(atom: import("jotai").Atom<Promise<Value_4>>, options: {
187
- unstable_promise: true;
188
- }): Value_4 | Promise<Value_4>;
189
- <Value_5>(atom: import("jotai").Atom<Value_5>, options: {
190
- unstable_promise: true;
191
- }): (Value_5 extends Promise<infer V> ? V : Value_5) | Promise<Value_5 extends Promise<infer V> ? V : Value_5>;
192
- }, set: {
193
- <Value_6, Result extends void | Promise<void>>(atom: import("jotai").WritableAtom<Value_6, undefined, Result>): Result;
194
- <Value_7, Update, Result_1 extends void | Promise<void>>(atom: import("jotai").WritableAtom<Value_7, Update, Result_1>, update: Update): Result_1;
195
- }, update: HTMLFormElement | ((prev: HTMLFormElement | null) => HTMLFormElement | null) | null) => void;
196
- onMount?: (<S extends (update: HTMLFormElement | ((prev: HTMLFormElement | null) => HTMLFormElement | null) | null) => void>(setAtom: S) => void | (() => void)) | undefined;
197
- } & {
198
- init: HTMLFormElement | null;
199
- };
200
- remove(param: InternalFormId): void;
201
- setShouldRemove(shouldRemove: ((createdAt: number, param: InternalFormId) => boolean) | null): void;
202
- };
203
- export declare const cleanupFormState: (formId: InternalFormId) => void;
204
- export declare const isValidAtom: {
205
- (param: InternalFormId): import("jotai").Atom<boolean>;
206
- remove(param: InternalFormId): void;
207
- setShouldRemove(shouldRemove: ((createdAt: number, param: InternalFormId) => boolean) | null): void;
208
- };
209
- export declare const resetAtom: {
210
- (param: InternalFormId): import("jotai").Atom<null> & {
211
- write: (get: {
212
- <Value>(atom: import("jotai").Atom<Value | Promise<Value>>): Value;
213
- <Value_1>(atom: import("jotai").Atom<Promise<Value_1>>): Value_1;
214
- <Value_2>(atom: import("jotai").Atom<Value_2>): Value_2 extends Promise<infer V> ? V : Value_2;
215
- } & {
216
- <Value_3>(atom: import("jotai").Atom<Value_3 | Promise<Value_3>>, options: {
217
- unstable_promise: true;
218
- }): Value_3 | Promise<Value_3>;
219
- <Value_4>(atom: import("jotai").Atom<Promise<Value_4>>, options: {
220
- unstable_promise: true;
221
- }): Value_4 | Promise<Value_4>;
222
- <Value_5>(atom: import("jotai").Atom<Value_5>, options: {
223
- unstable_promise: true;
224
- }): (Value_5 extends Promise<infer V> ? V : Value_5) | Promise<Value_5 extends Promise<infer V> ? V : Value_5>;
225
- }, set: {
226
- <Value_6, Result extends void | Promise<void>>(atom: import("jotai").WritableAtom<Value_6, undefined, Result>): Result;
227
- <Value_7, Update, Result_1 extends void | Promise<void>>(atom: import("jotai").WritableAtom<Value_7, Update, Result_1>, update: Update): Result_1;
228
- }, update: unknown) => void;
229
- onMount?: (<S extends (update?: unknown) => void>(setAtom: S) => void | (() => void)) | undefined;
230
- } & {
231
- init: null;
232
- };
233
- remove(param: InternalFormId): void;
234
- setShouldRemove(shouldRemove: ((createdAt: number, param: InternalFormId) => boolean) | null): void;
235
- };
236
- export declare const startSubmitAtom: {
237
- (param: InternalFormId): import("jotai").Atom<null> & {
238
- write: (get: {
239
- <Value>(atom: import("jotai").Atom<Value | Promise<Value>>): Value;
240
- <Value_1>(atom: import("jotai").Atom<Promise<Value_1>>): Value_1;
241
- <Value_2>(atom: import("jotai").Atom<Value_2>): Value_2 extends Promise<infer V> ? V : Value_2;
242
- } & {
243
- <Value_3>(atom: import("jotai").Atom<Value_3 | Promise<Value_3>>, options: {
244
- unstable_promise: true;
245
- }): Value_3 | Promise<Value_3>;
246
- <Value_4>(atom: import("jotai").Atom<Promise<Value_4>>, options: {
247
- unstable_promise: true;
248
- }): Value_4 | Promise<Value_4>;
249
- <Value_5>(atom: import("jotai").Atom<Value_5>, options: {
250
- unstable_promise: true;
251
- }): (Value_5 extends Promise<infer V> ? V : Value_5) | Promise<Value_5 extends Promise<infer V> ? V : Value_5>;
252
- }, set: {
253
- <Value_6, Result extends void | Promise<void>>(atom: import("jotai").WritableAtom<Value_6, undefined, Result>): Result;
254
- <Value_7, Update, Result_1 extends void | Promise<void>>(atom: import("jotai").WritableAtom<Value_7, Update, Result_1>, update: Update): Result_1;
255
- }, update: unknown) => void;
256
- onMount?: (<S extends (update?: unknown) => void>(setAtom: S) => void | (() => void)) | undefined;
257
- } & {
258
- init: null;
259
- };
260
- remove(param: InternalFormId): void;
261
- setShouldRemove(shouldRemove: ((createdAt: number, param: InternalFormId) => boolean) | null): void;
262
- };
263
- export declare const endSubmitAtom: {
264
- (param: InternalFormId): import("jotai").Atom<null> & {
265
- write: (get: {
266
- <Value>(atom: import("jotai").Atom<Value | Promise<Value>>): Value;
267
- <Value_1>(atom: import("jotai").Atom<Promise<Value_1>>): Value_1;
268
- <Value_2>(atom: import("jotai").Atom<Value_2>): Value_2 extends Promise<infer V> ? V : Value_2;
269
- } & {
270
- <Value_3>(atom: import("jotai").Atom<Value_3 | Promise<Value_3>>, options: {
271
- unstable_promise: true;
272
- }): Value_3 | Promise<Value_3>;
273
- <Value_4>(atom: import("jotai").Atom<Promise<Value_4>>, options: {
274
- unstable_promise: true;
275
- }): Value_4 | Promise<Value_4>;
276
- <Value_5>(atom: import("jotai").Atom<Value_5>, options: {
277
- unstable_promise: true;
278
- }): (Value_5 extends Promise<infer V> ? V : Value_5) | Promise<Value_5 extends Promise<infer V> ? V : Value_5>;
279
- }, set: {
280
- <Value_6, Result extends void | Promise<void>>(atom: import("jotai").WritableAtom<Value_6, undefined, Result>): Result;
281
- <Value_7, Update, Result_1 extends void | Promise<void>>(atom: import("jotai").WritableAtom<Value_7, Update, Result_1>, update: Update): Result_1;
282
- }, update: unknown) => void;
283
- onMount?: (<S extends (update?: unknown) => void>(setAtom: S) => void | (() => void)) | undefined;
284
- } & {
285
- init: null;
286
- };
287
- remove(param: InternalFormId): void;
288
- setShouldRemove(shouldRemove: ((createdAt: number, param: InternalFormId) => boolean) | null): void;
289
- };
290
- export declare const setTouchedAtom: {
291
- (param: InternalFormId): import("jotai").Atom<null> & {
292
- write: (get: {
293
- <Value>(atom: import("jotai").Atom<Value | Promise<Value>>): Value;
294
- <Value_1>(atom: import("jotai").Atom<Promise<Value_1>>): Value_1;
295
- <Value_2>(atom: import("jotai").Atom<Value_2>): Value_2 extends Promise<infer V> ? V : Value_2;
296
- } & {
297
- <Value_3>(atom: import("jotai").Atom<Value_3 | Promise<Value_3>>, options: {
298
- unstable_promise: true;
299
- }): Value_3 | Promise<Value_3>;
300
- <Value_4>(atom: import("jotai").Atom<Promise<Value_4>>, options: {
301
- unstable_promise: true;
302
- }): Value_4 | Promise<Value_4>;
303
- <Value_5>(atom: import("jotai").Atom<Value_5>, options: {
304
- unstable_promise: true;
305
- }): (Value_5 extends Promise<infer V> ? V : Value_5) | Promise<Value_5 extends Promise<infer V> ? V : Value_5>;
306
- }, set: {
307
- <Value_6, Result extends void | Promise<void>>(atom: import("jotai").WritableAtom<Value_6, undefined, Result>): Result;
308
- <Value_7, Update, Result_1 extends void | Promise<void>>(atom: import("jotai").WritableAtom<Value_7, Update, Result_1>, update: Update): Result_1;
309
- }, update: {
310
- field: string;
311
- touched: boolean;
312
- }) => void;
313
- onMount?: (<S extends (update: {
314
- field: string;
315
- touched: boolean;
316
- }) => void>(setAtom: S) => void | (() => void)) | undefined;
317
- } & {
318
- init: null;
319
- };
320
- remove(param: InternalFormId): void;
321
- setShouldRemove(shouldRemove: ((createdAt: number, param: InternalFormId) => boolean) | null): void;
322
- };
323
- export declare const setFieldErrorAtom: {
324
- (param: InternalFormId): import("jotai").Atom<null> & {
325
- write: (get: {
326
- <Value>(atom: import("jotai").Atom<Value | Promise<Value>>): Value;
327
- <Value_1>(atom: import("jotai").Atom<Promise<Value_1>>): Value_1;
328
- <Value_2>(atom: import("jotai").Atom<Value_2>): Value_2 extends Promise<infer V> ? V : Value_2;
329
- } & {
330
- <Value_3>(atom: import("jotai").Atom<Value_3 | Promise<Value_3>>, options: {
331
- unstable_promise: true;
332
- }): Value_3 | Promise<Value_3>;
333
- <Value_4>(atom: import("jotai").Atom<Promise<Value_4>>, options: {
334
- unstable_promise: true;
335
- }): Value_4 | Promise<Value_4>;
336
- <Value_5>(atom: import("jotai").Atom<Value_5>, options: {
337
- unstable_promise: true;
338
- }): (Value_5 extends Promise<infer V> ? V : Value_5) | Promise<Value_5 extends Promise<infer V> ? V : Value_5>;
339
- }, set: {
340
- <Value_6, Result extends void | Promise<void>>(atom: import("jotai").WritableAtom<Value_6, undefined, Result>): Result;
341
- <Value_7, Update, Result_1 extends void | Promise<void>>(atom: import("jotai").WritableAtom<Value_7, Update, Result_1>, update: Update): Result_1;
342
- }, update: {
343
- field: string;
344
- error: string | undefined;
345
- }) => void;
346
- onMount?: (<S extends (update: {
347
- field: string;
348
- error: string | undefined;
349
- }) => void>(setAtom: S) => void | (() => void)) | undefined;
350
- } & {
351
- init: null;
352
- };
353
- remove(param: InternalFormId): void;
354
- setShouldRemove(shouldRemove: ((createdAt: number, param: InternalFormId) => boolean) | null): void;
355
- };
356
- export declare const fieldTouchedAtom: {
357
- (param: import("./state/atomUtils").FieldAtomKey): import("jotai").WritableAtom<boolean, boolean, void>;
358
- remove(param: import("./state/atomUtils").FieldAtomKey): void;
359
- setShouldRemove(shouldRemove: ((createdAt: number, param: import("./state/atomUtils").FieldAtomKey) => boolean) | null): void;
360
- };
361
- export declare const fieldErrorAtom: {
362
- (param: import("./state/atomUtils").FieldAtomKey): import("jotai").WritableAtom<string, string | undefined, void>;
363
- remove(param: import("./state/atomUtils").FieldAtomKey): void;
364
- setShouldRemove(shouldRemove: ((createdAt: number, param: import("./state/atomUtils").FieldAtomKey) => boolean) | null): void;
365
- };
366
- export declare const fieldDefaultValueAtom: {
367
- (param: import("./state/atomUtils").FieldAtomKey): import("jotai").Atom<any>;
368
- remove(param: import("./state/atomUtils").FieldAtomKey): void;
369
- setShouldRemove(shouldRemove: ((createdAt: number, param: import("./state/atomUtils").FieldAtomKey) => boolean) | null): void;
370
- };