remix-validated-form 4.1.4-beta.0 → 4.1.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 (52) hide show
  1. package/.turbo/turbo-build.log +2 -2
  2. package/browser/ValidatedForm.js +31 -36
  3. package/browser/hooks.js +13 -16
  4. package/browser/internal/customState.d.ts +105 -0
  5. package/browser/internal/customState.js +46 -0
  6. package/browser/internal/getInputProps.js +4 -14
  7. package/browser/internal/hooks.d.ts +14 -15
  8. package/browser/internal/hooks.js +37 -39
  9. package/browser/internal/logic/elementUtils.d.ts +3 -0
  10. package/browser/internal/logic/elementUtils.js +3 -0
  11. package/browser/internal/logic/setInputValueInForm.js +9 -52
  12. package/browser/internal/setFieldValue.d.ts +0 -0
  13. package/browser/internal/setFieldValue.js +0 -0
  14. package/browser/internal/setFormValues.d.ts +0 -0
  15. package/browser/internal/setFormValues.js +0 -0
  16. package/browser/internal/state.d.ts +339 -238
  17. package/browser/internal/state.js +59 -72
  18. package/browser/internal/watch.d.ts +18 -0
  19. package/browser/internal/watch.js +122 -0
  20. package/browser/unreleased/formStateHooks.d.ts +39 -0
  21. package/browser/unreleased/formStateHooks.js +54 -0
  22. package/browser/userFacingFormContext.js +9 -23
  23. package/build/ValidatedForm.js +30 -35
  24. package/build/hooks.js +11 -14
  25. package/build/internal/getInputProps.js +4 -14
  26. package/build/internal/hooks.d.ts +14 -15
  27. package/build/internal/hooks.js +39 -41
  28. package/build/internal/logic/elementUtils.d.ts +3 -0
  29. package/build/internal/logic/elementUtils.js +9 -0
  30. package/build/internal/logic/setInputValueInForm.js +12 -55
  31. package/build/internal/setFormValues.d.ts +0 -0
  32. package/build/internal/setFormValues.js +0 -0
  33. package/build/internal/state/controlledFields.js +11 -2
  34. package/build/internal/state.d.ts +339 -238
  35. package/build/internal/state.js +61 -77
  36. package/build/internal/watch.d.ts +20 -0
  37. package/build/internal/watch.js +126 -0
  38. package/build/unreleased/formStateHooks.d.ts +39 -0
  39. package/build/unreleased/formStateHooks.js +59 -0
  40. package/build/userFacingFormContext.js +9 -23
  41. package/package.json +1 -2
  42. package/src/ValidatedForm.tsx +48 -52
  43. package/src/hooks.ts +15 -26
  44. package/src/internal/getInputProps.ts +4 -14
  45. package/src/internal/hooks.ts +60 -72
  46. package/src/internal/hydratable.ts +28 -0
  47. package/src/internal/logic/getCheckboxChecked.ts +10 -0
  48. package/src/internal/logic/getRadioChecked.ts +7 -0
  49. package/src/internal/state/atomUtils.ts +13 -0
  50. package/src/internal/state.ts +99 -177
  51. package/src/unreleased/formStateHooks.ts +113 -0
  52. package/src/userFacingFormContext.ts +14 -53
@@ -1,269 +1,370 @@
1
1
  import { FieldErrors, TouchedFields } from "../validation/types";
2
+ import { InternalFormId } from "./state/atomUtils";
2
3
  export declare const ATOM_SCOPE: unique symbol;
3
- export declare type FormState = {
4
- hydrated: boolean;
5
- fieldErrors?: FieldErrors;
6
- isSubmitting: boolean;
7
- hasBeenSubmitted: boolean;
8
- touchedFields: TouchedFields;
4
+ export declare type SyncedFormProps = {
9
5
  formId?: string;
10
6
  action?: string;
11
7
  subaction?: string;
12
- defaultValues?: {
8
+ defaultValues: {
13
9
  [fieldName: string]: any;
14
10
  };
15
11
  validateField: (fieldName: string) => Promise<string | null>;
16
12
  registerReceiveFocus: (fieldName: string, handler: () => void) => () => void;
17
13
  };
18
- export declare type FormAtom = ReturnType<typeof formRegistry>;
19
- export declare type FieldState = {
20
- touched: boolean;
21
- defaultValue?: any;
22
- error?: string;
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;
23
40
  };
24
- export declare const formRegistry: {
25
- (param: string | symbol): import("jotai").WritableAtom<FormState, FormState | ((draft: import("immer/dist/internal").WritableDraft<FormState>) => void), void>;
26
- remove(param: string | symbol): void;
27
- setShouldRemove(shouldRemove: ((createdAt: number, param: string | symbol) => boolean) | null): void;
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;
28
67
  };
29
- export declare const fieldErrorAtom: (name: string) => (formAtom: FormAtom) => import("jotai").Atom<string | undefined>;
30
- export declare const fieldTouchedAtom: (name: string) => (formAtom: FormAtom) => import("jotai").Atom<boolean>;
31
- export declare const fieldDefaultValueAtom: (name: string) => (formAtom: FormAtom) => import("jotai").Atom<any>;
32
- export declare const formSelectorAtom: <T>(selector: (state: FormState) => T) => (formAtom: FormAtom) => import("jotai").Atom<T>;
33
- export declare const fieldErrorsAtom: (formAtom: FormAtom) => import("jotai").Atom<FieldErrors | undefined>;
34
- export declare const touchedFieldsAtom: (formAtom: FormAtom) => import("jotai").Atom<TouchedFields>;
35
- export declare const actionAtom: (formAtom: FormAtom) => import("jotai").Atom<string | undefined>;
36
- export declare const hasBeenSubmittedAtom: (formAtom: FormAtom) => import("jotai").Atom<boolean>;
37
- export declare const validateFieldAtom: (formAtom: FormAtom) => import("jotai").Atom<(fieldName: string) => Promise<string | null>>;
38
- export declare const registerReceiveFocusAtom: (formAtom: FormAtom) => import("jotai").Atom<(fieldName: string, handler: () => void) => () => void>;
39
- export declare const isSubmittingAtom: (formAtom: FormAtom) => import("jotai").Atom<boolean>;
40
- export declare const defaultValuesAtom: (formAtom: FormAtom) => import("jotai").Atom<{
41
- [fieldName: string]: any;
42
- } | undefined>;
43
- export declare const isValidAtom: (formAtom: FormAtom) => import("jotai").Atom<boolean>;
44
- export declare const isHydratedAtom: (formAtom: FormAtom) => import("jotai").Atom<boolean>;
45
- export declare type FieldAtomArgs = {
46
- name: string;
47
- formAtom: FormAtom;
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;
48
94
  };
49
- export declare const clearErrorAtom: import("jotai").Atom<null> & {
50
- write: (get: {
51
- <Value>(atom: import("jotai").Atom<Value | Promise<Value>>): Value;
52
- <Value_1>(atom: import("jotai").Atom<Promise<Value_1>>): Value_1;
53
- <Value_2>(atom: import("jotai").Atom<Value_2>): Value_2 extends Promise<infer V> ? V : Value_2;
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;
54
116
  } & {
55
- <Value_3>(atom: import("jotai").Atom<Value_3 | Promise<Value_3>>, options: {
56
- unstable_promise: true;
57
- }): Value_3 | Promise<Value_3>;
58
- <Value_4>(atom: import("jotai").Atom<Promise<Value_4>>, options: {
59
- unstable_promise: true;
60
- }): Value_4 | Promise<Value_4>;
61
- <Value_5>(atom: import("jotai").Atom<Value_5>, options: {
62
- unstable_promise: true;
63
- }): (Value_5 extends Promise<infer V> ? V : Value_5) | Promise<Value_5 extends Promise<infer V> ? V : Value_5>;
64
- }, set: {
65
- <Value_6, Result extends void | Promise<void>>(atom: import("jotai").WritableAtom<Value_6, undefined, Result>): Result;
66
- <Value_7, Update, Result_1 extends void | Promise<void>>(atom: import("jotai").WritableAtom<Value_7, Update, Result_1>, update: Update): Result_1;
67
- }, update: FieldAtomArgs) => void;
68
- onMount?: (<S extends (update: FieldAtomArgs) => void>(setAtom: S) => void | (() => void)) | undefined;
69
- } & {
70
- init: null;
117
+ init: FieldErrors;
118
+ };
119
+ remove(param: InternalFormId): void;
120
+ setShouldRemove(shouldRemove: ((createdAt: number, param: InternalFormId) => boolean) | null): void;
71
121
  };
72
- export declare const addErrorAtom: import("jotai").Atom<null> & {
73
- write: (get: {
74
- <Value>(atom: import("jotai").Atom<Value | Promise<Value>>): Value;
75
- <Value_1>(atom: import("jotai").Atom<Promise<Value_1>>): Value_1;
76
- <Value_2>(atom: import("jotai").Atom<Value_2>): Value_2 extends Promise<infer V> ? V : Value_2;
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;
77
143
  } & {
78
- <Value_3>(atom: import("jotai").Atom<Value_3 | Promise<Value_3>>, options: {
79
- unstable_promise: true;
80
- }): Value_3 | Promise<Value_3>;
81
- <Value_4>(atom: import("jotai").Atom<Promise<Value_4>>, options: {
82
- unstable_promise: true;
83
- }): Value_4 | Promise<Value_4>;
84
- <Value_5>(atom: import("jotai").Atom<Value_5>, options: {
85
- unstable_promise: true;
86
- }): (Value_5 extends Promise<infer V> ? V : Value_5) | Promise<Value_5 extends Promise<infer V> ? V : Value_5>;
87
- }, set: {
88
- <Value_6, Result extends void | Promise<void>>(atom: import("jotai").WritableAtom<Value_6, undefined, Result>): Result;
89
- <Value_7, Update, Result_1 extends void | Promise<void>>(atom: import("jotai").WritableAtom<Value_7, Update, Result_1>, update: Update): Result_1;
90
- }, update: FieldAtomArgs & {
91
- error: string;
92
- }) => void;
93
- onMount?: (<S extends (update: FieldAtomArgs & {
94
- error: string;
95
- }) => void>(setAtom: S) => void | (() => void)) | undefined;
96
- } & {
97
- init: null;
144
+ init: TouchedFields;
145
+ };
146
+ remove(param: InternalFormId): void;
147
+ setShouldRemove(shouldRemove: ((createdAt: number, param: InternalFormId) => boolean) | null): void;
98
148
  };
99
- export declare const setFieldErrorsAtom: import("jotai").Atom<null> & {
100
- write: (get: {
101
- <Value>(atom: import("jotai").Atom<Value | Promise<Value>>): Value;
102
- <Value_1>(atom: import("jotai").Atom<Promise<Value_1>>): Value_1;
103
- <Value_2>(atom: import("jotai").Atom<Value_2>): Value_2 extends Promise<infer V> ? V : Value_2;
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;
104
170
  } & {
105
- <Value_3>(atom: import("jotai").Atom<Value_3 | Promise<Value_3>>, options: {
106
- unstable_promise: true;
107
- }): Value_3 | Promise<Value_3>;
108
- <Value_4>(atom: import("jotai").Atom<Promise<Value_4>>, options: {
109
- unstable_promise: true;
110
- }): Value_4 | Promise<Value_4>;
111
- <Value_5>(atom: import("jotai").Atom<Value_5>, options: {
112
- unstable_promise: true;
113
- }): (Value_5 extends Promise<infer V> ? V : Value_5) | Promise<Value_5 extends Promise<infer V> ? V : Value_5>;
114
- }, set: {
115
- <Value_6, Result extends void | Promise<void>>(atom: import("jotai").WritableAtom<Value_6, undefined, Result>): Result;
116
- <Value_7, Update, Result_1 extends void | Promise<void>>(atom: import("jotai").WritableAtom<Value_7, Update, Result_1>, update: Update): Result_1;
117
- }, update: {
118
- fieldErrors: FieldErrors;
119
- formAtom: FormAtom;
120
- }) => void;
121
- onMount?: (<S extends (update: {
122
- fieldErrors: FieldErrors;
123
- formAtom: FormAtom;
124
- }) => void>(setAtom: S) => void | (() => void)) | undefined;
125
- } & {
126
- init: null;
171
+ init: SyncedFormProps;
172
+ };
173
+ remove(param: InternalFormId): void;
174
+ setShouldRemove(shouldRemove: ((createdAt: number, param: InternalFormId) => boolean) | null): void;
127
175
  };
128
- export declare const setTouchedAtom: import("jotai").Atom<null> & {
129
- write: (get: {
130
- <Value>(atom: import("jotai").Atom<Value | Promise<Value>>): Value;
131
- <Value_1>(atom: import("jotai").Atom<Promise<Value_1>>): Value_1;
132
- <Value_2>(atom: import("jotai").Atom<Value_2>): Value_2 extends Promise<infer V> ? V : Value_2;
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;
133
197
  } & {
134
- <Value_3>(atom: import("jotai").Atom<Value_3 | Promise<Value_3>>, options: {
135
- unstable_promise: true;
136
- }): Value_3 | Promise<Value_3>;
137
- <Value_4>(atom: import("jotai").Atom<Promise<Value_4>>, options: {
138
- unstable_promise: true;
139
- }): Value_4 | Promise<Value_4>;
140
- <Value_5>(atom: import("jotai").Atom<Value_5>, options: {
141
- unstable_promise: true;
142
- }): (Value_5 extends Promise<infer V> ? V : Value_5) | Promise<Value_5 extends Promise<infer V> ? V : Value_5>;
143
- }, set: {
144
- <Value_6, Result extends void | Promise<void>>(atom: import("jotai").WritableAtom<Value_6, undefined, Result>): Result;
145
- <Value_7, Update, Result_1 extends void | Promise<void>>(atom: import("jotai").WritableAtom<Value_7, Update, Result_1>, update: Update): Result_1;
146
- }, update: FieldAtomArgs & {
147
- touched: boolean;
148
- }) => void;
149
- onMount?: (<S extends (update: FieldAtomArgs & {
150
- touched: boolean;
151
- }) => void>(setAtom: S) => void | (() => void)) | undefined;
152
- } & {
153
- init: null;
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;
154
208
  };
155
- export declare const resetAtom: import("jotai").Atom<null> & {
156
- write: (get: {
157
- <Value>(atom: import("jotai").Atom<Value | Promise<Value>>): Value;
158
- <Value_1>(atom: import("jotai").Atom<Promise<Value_1>>): Value_1;
159
- <Value_2>(atom: import("jotai").Atom<Value_2>): Value_2 extends Promise<infer V> ? V : Value_2;
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;
160
230
  } & {
161
- <Value_3>(atom: import("jotai").Atom<Value_3 | Promise<Value_3>>, options: {
162
- unstable_promise: true;
163
- }): Value_3 | Promise<Value_3>;
164
- <Value_4>(atom: import("jotai").Atom<Promise<Value_4>>, options: {
165
- unstable_promise: true;
166
- }): Value_4 | Promise<Value_4>;
167
- <Value_5>(atom: import("jotai").Atom<Value_5>, options: {
168
- unstable_promise: true;
169
- }): (Value_5 extends Promise<infer V> ? V : Value_5) | Promise<Value_5 extends Promise<infer V> ? V : Value_5>;
170
- }, set: {
171
- <Value_6, Result extends void | Promise<void>>(atom: import("jotai").WritableAtom<Value_6, undefined, Result>): Result;
172
- <Value_7, Update, Result_1 extends void | Promise<void>>(atom: import("jotai").WritableAtom<Value_7, Update, Result_1>, update: Update): Result_1;
173
- }, update: {
174
- formAtom: FormAtom;
175
- }) => void;
176
- onMount?: (<S extends (update: {
177
- formAtom: FormAtom;
178
- }) => void>(setAtom: S) => void | (() => void)) | undefined;
179
- } & {
180
- init: null;
231
+ init: null;
232
+ };
233
+ remove(param: InternalFormId): void;
234
+ setShouldRemove(shouldRemove: ((createdAt: number, param: InternalFormId) => boolean) | null): void;
181
235
  };
182
- export declare const startSubmitAtom: import("jotai").Atom<null> & {
183
- write: (get: {
184
- <Value>(atom: import("jotai").Atom<Value | Promise<Value>>): Value;
185
- <Value_1>(atom: import("jotai").Atom<Promise<Value_1>>): Value_1;
186
- <Value_2>(atom: import("jotai").Atom<Value_2>): Value_2 extends Promise<infer V> ? V : Value_2;
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;
187
257
  } & {
188
- <Value_3>(atom: import("jotai").Atom<Value_3 | Promise<Value_3>>, options: {
189
- unstable_promise: true;
190
- }): Value_3 | Promise<Value_3>;
191
- <Value_4>(atom: import("jotai").Atom<Promise<Value_4>>, options: {
192
- unstable_promise: true;
193
- }): Value_4 | Promise<Value_4>;
194
- <Value_5>(atom: import("jotai").Atom<Value_5>, options: {
195
- unstable_promise: true;
196
- }): (Value_5 extends Promise<infer V> ? V : Value_5) | Promise<Value_5 extends Promise<infer V> ? V : Value_5>;
197
- }, set: {
198
- <Value_6, Result extends void | Promise<void>>(atom: import("jotai").WritableAtom<Value_6, undefined, Result>): Result;
199
- <Value_7, Update, Result_1 extends void | Promise<void>>(atom: import("jotai").WritableAtom<Value_7, Update, Result_1>, update: Update): Result_1;
200
- }, update: {
201
- formAtom: FormAtom;
202
- }) => void;
203
- onMount?: (<S extends (update: {
204
- formAtom: FormAtom;
205
- }) => void>(setAtom: S) => void | (() => void)) | undefined;
206
- } & {
207
- init: null;
258
+ init: null;
259
+ };
260
+ remove(param: InternalFormId): void;
261
+ setShouldRemove(shouldRemove: ((createdAt: number, param: InternalFormId) => boolean) | null): void;
208
262
  };
209
- export declare const endSubmitAtom: import("jotai").Atom<null> & {
210
- write: (get: {
211
- <Value>(atom: import("jotai").Atom<Value | Promise<Value>>): Value;
212
- <Value_1>(atom: import("jotai").Atom<Promise<Value_1>>): Value_1;
213
- <Value_2>(atom: import("jotai").Atom<Value_2>): Value_2 extends Promise<infer V> ? V : Value_2;
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;
214
284
  } & {
215
- <Value_3>(atom: import("jotai").Atom<Value_3 | Promise<Value_3>>, options: {
216
- unstable_promise: true;
217
- }): Value_3 | Promise<Value_3>;
218
- <Value_4>(atom: import("jotai").Atom<Promise<Value_4>>, options: {
219
- unstable_promise: true;
220
- }): Value_4 | Promise<Value_4>;
221
- <Value_5>(atom: import("jotai").Atom<Value_5>, options: {
222
- unstable_promise: true;
223
- }): (Value_5 extends Promise<infer V> ? V : Value_5) | Promise<Value_5 extends Promise<infer V> ? V : Value_5>;
224
- }, set: {
225
- <Value_6, Result extends void | Promise<void>>(atom: import("jotai").WritableAtom<Value_6, undefined, Result>): Result;
226
- <Value_7, Update, Result_1 extends void | Promise<void>>(atom: import("jotai").WritableAtom<Value_7, Update, Result_1>, update: Update): Result_1;
227
- }, update: {
228
- formAtom: FormAtom;
229
- }) => void;
230
- onMount?: (<S extends (update: {
231
- formAtom: FormAtom;
232
- }) => void>(setAtom: S) => void | (() => void)) | undefined;
233
- } & {
234
- init: null;
285
+ init: null;
286
+ };
287
+ remove(param: InternalFormId): void;
288
+ setShouldRemove(shouldRemove: ((createdAt: number, param: InternalFormId) => boolean) | null): void;
235
289
  };
236
- declare type SyncFormContextArgs = {
237
- defaultValues?: {
238
- [fieldName: string]: any;
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;
239
319
  };
240
- action?: string;
241
- subaction?: string;
242
- validateField: FormState["validateField"];
243
- registerReceiveFocus: FormState["registerReceiveFocus"];
244
- formAtom: FormAtom;
320
+ remove(param: InternalFormId): void;
321
+ setShouldRemove(shouldRemove: ((createdAt: number, param: InternalFormId) => boolean) | null): void;
245
322
  };
246
- export declare const syncFormContextAtom: import("jotai").Atom<null> & {
247
- write: (get: {
248
- <Value>(atom: import("jotai").Atom<Value | Promise<Value>>): Value;
249
- <Value_1>(atom: import("jotai").Atom<Promise<Value_1>>): Value_1;
250
- <Value_2>(atom: import("jotai").Atom<Value_2>): Value_2 extends Promise<infer V> ? V : Value_2;
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;
251
350
  } & {
252
- <Value_3>(atom: import("jotai").Atom<Value_3 | Promise<Value_3>>, options: {
253
- unstable_promise: true;
254
- }): Value_3 | Promise<Value_3>;
255
- <Value_4>(atom: import("jotai").Atom<Promise<Value_4>>, options: {
256
- unstable_promise: true;
257
- }): Value_4 | Promise<Value_4>;
258
- <Value_5>(atom: import("jotai").Atom<Value_5>, options: {
259
- unstable_promise: true;
260
- }): (Value_5 extends Promise<infer V> ? V : Value_5) | Promise<Value_5 extends Promise<infer V> ? V : Value_5>;
261
- }, set: {
262
- <Value_6, Result extends void | Promise<void>>(atom: import("jotai").WritableAtom<Value_6, undefined, Result>): Result;
263
- <Value_7, Update, Result_1 extends void | Promise<void>>(atom: import("jotai").WritableAtom<Value_7, Update, Result_1>, update: Update): Result_1;
264
- }, update: SyncFormContextArgs) => void;
265
- onMount?: (<S extends (update: SyncFormContextArgs) => void>(setAtom: S) => void | (() => void)) | undefined;
266
- } & {
267
- init: null;
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;
268
370
  };
269
- export {};