@tanstack/react-form 0.0.4 → 0.0.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 (37) hide show
  1. package/build/cjs/Field.js +2 -5
  2. package/build/cjs/Field.js.map +1 -1
  3. package/build/cjs/createFormFactory.js +32 -0
  4. package/build/cjs/createFormFactory.js.map +1 -0
  5. package/build/cjs/formContext.js +1 -5
  6. package/build/cjs/formContext.js.map +1 -1
  7. package/build/cjs/index.js +14 -9
  8. package/build/cjs/index.js.map +1 -1
  9. package/build/cjs/useField.js +4 -12
  10. package/build/cjs/useField.js.map +1 -1
  11. package/build/cjs/useForm.js +6 -31
  12. package/build/cjs/useForm.js.map +1 -1
  13. package/build/esm/index.js +24 -50
  14. package/build/esm/index.js.map +1 -1
  15. package/build/stats-html.html +1 -1
  16. package/build/stats-react.json +145 -107
  17. package/build/types/form-core/src/FieldApi.d.ts +21 -10
  18. package/build/types/form-core/src/FormApi.d.ts +12 -12
  19. package/build/types/form-core/src/utils.d.ts +10 -10
  20. package/build/types/index.d.ts +22 -10
  21. package/build/types/react-form/src/Field.d.ts +3 -3
  22. package/build/types/react-form/src/createFormFactory.d.ts +9 -0
  23. package/build/types/react-form/src/formContext.d.ts +1 -1
  24. package/build/types/react-form/src/index.d.ts +10 -4
  25. package/build/types/react-form/src/useField.d.ts +9 -3
  26. package/build/types/react-form/src/useForm.d.ts +5 -3
  27. package/build/umd/index.development.js +24 -54
  28. package/build/umd/index.development.js.map +1 -1
  29. package/build/umd/index.production.js +2 -2
  30. package/build/umd/index.production.js.map +1 -1
  31. package/package.json +2 -2
  32. package/src/Field.tsx +2 -3
  33. package/src/createFormFactory.ts +22 -0
  34. package/src/formContext.ts +1 -5
  35. package/src/index.ts +35 -4
  36. package/src/useField.ts +13 -17
  37. package/src/useForm.tsx +11 -43
@@ -11,11 +11,11 @@
11
11
  "children": [
12
12
  {
13
13
  "name": "@tanstack+store@0.0.1-beta.84/node_modules/@tanstack/store/build/esm/index.js",
14
- "uid": "8485-45"
14
+ "uid": "dff6-47"
15
15
  },
16
16
  {
17
17
  "name": "@tanstack+react-store@0.0.1-beta.84_react-dom@18.2.0_react@18.2.0/node_modules/@tanstack/react-store/build/esm/index.js",
18
- "uid": "8485-51"
18
+ "uid": "dff6-53"
19
19
  }
20
20
  ]
21
21
  },
@@ -24,29 +24,33 @@
24
24
  "children": [
25
25
  {
26
26
  "name": "form-core/build/esm/index.js",
27
- "uid": "8485-47"
27
+ "uid": "dff6-49"
28
28
  },
29
29
  {
30
30
  "name": "react-form/src",
31
31
  "children": [
32
32
  {
33
- "uid": "8485-53",
33
+ "uid": "dff6-55",
34
34
  "name": "formContext.ts"
35
35
  },
36
36
  {
37
- "uid": "8485-55",
37
+ "uid": "dff6-57",
38
38
  "name": "useField.ts"
39
39
  },
40
40
  {
41
- "uid": "8485-57",
41
+ "uid": "dff6-59",
42
42
  "name": "Field.tsx"
43
43
  },
44
44
  {
45
- "uid": "8485-59",
45
+ "uid": "dff6-61",
46
46
  "name": "useForm.tsx"
47
47
  },
48
48
  {
49
- "uid": "8485-61",
49
+ "uid": "dff6-63",
50
+ "name": "createFormFactory.ts"
51
+ },
52
+ {
53
+ "uid": "dff6-65",
50
54
  "name": "index.ts"
51
55
  }
52
56
  ]
@@ -54,7 +58,7 @@
54
58
  ]
55
59
  },
56
60
  {
57
- "uid": "8485-49",
61
+ "uid": "dff6-51",
58
62
  "name": "\u0000rollupPluginBabelHelpers.js"
59
63
  }
60
64
  ]
@@ -63,300 +67,334 @@
63
67
  "isRoot": true
64
68
  },
65
69
  "nodeParts": {
66
- "8485-45": {
70
+ "dff6-47": {
67
71
  "renderedLength": 1288,
68
72
  "gzipLength": 497,
69
73
  "brotliLength": 0,
70
- "mainUid": "8485-44"
74
+ "mainUid": "dff6-46"
71
75
  },
72
- "8485-47": {
73
- "renderedLength": 23393,
74
- "gzipLength": 5130,
76
+ "dff6-49": {
77
+ "renderedLength": 23394,
78
+ "gzipLength": 5131,
75
79
  "brotliLength": 0,
76
- "mainUid": "8485-46"
80
+ "mainUid": "dff6-48"
77
81
  },
78
- "8485-49": {
82
+ "dff6-51": {
79
83
  "renderedLength": 431,
80
84
  "gzipLength": 240,
81
85
  "brotliLength": 0,
82
- "mainUid": "8485-48"
86
+ "mainUid": "dff6-50"
83
87
  },
84
- "8485-51": {
88
+ "dff6-53": {
85
89
  "renderedLength": 978,
86
90
  "gzipLength": 456,
87
91
  "brotliLength": 0,
88
- "mainUid": "8485-50"
92
+ "mainUid": "dff6-52"
93
+ },
94
+ "dff6-55": {
95
+ "renderedLength": 296,
96
+ "gzipLength": 200,
97
+ "brotliLength": 0,
98
+ "mainUid": "dff6-54"
89
99
  },
90
- "8485-53": {
91
- "renderedLength": 369,
92
- "gzipLength": 218,
100
+ "dff6-57": {
101
+ "renderedLength": 610,
102
+ "gzipLength": 324,
93
103
  "brotliLength": 0,
94
- "mainUid": "8485-52"
104
+ "mainUid": "dff6-56"
95
105
  },
96
- "8485-55": {
97
- "renderedLength": 850,
98
- "gzipLength": 417,
106
+ "dff6-59": {
107
+ "renderedLength": 320,
108
+ "gzipLength": 203,
99
109
  "brotliLength": 0,
100
- "mainUid": "8485-54"
110
+ "mainUid": "dff6-58"
101
111
  },
102
- "8485-57": {
103
- "renderedLength": 370,
104
- "gzipLength": 227,
112
+ "dff6-61": {
113
+ "renderedLength": 1264,
114
+ "gzipLength": 486,
105
115
  "brotliLength": 0,
106
- "mainUid": "8485-56"
116
+ "mainUid": "dff6-60"
107
117
  },
108
- "8485-59": {
109
- "renderedLength": 2160,
110
- "gzipLength": 767,
118
+ "dff6-63": {
119
+ "renderedLength": 242,
120
+ "gzipLength": 153,
111
121
  "brotliLength": 0,
112
- "mainUid": "8485-58"
122
+ "mainUid": "dff6-62"
113
123
  },
114
- "8485-61": {
124
+ "dff6-65": {
115
125
  "renderedLength": 0,
116
126
  "gzipLength": 0,
117
127
  "brotliLength": 0,
118
- "mainUid": "8485-60"
128
+ "mainUid": "dff6-64"
119
129
  }
120
130
  },
121
131
  "nodeMetas": {
122
- "8485-44": {
132
+ "dff6-46": {
123
133
  "id": "/node_modules/.pnpm/@tanstack+store@0.0.1-beta.84/node_modules/@tanstack/store/build/esm/index.js",
124
134
  "moduleParts": {
125
- "index.production.js": "8485-45"
135
+ "index.production.js": "dff6-47"
126
136
  },
127
137
  "imported": [],
128
138
  "importedBy": [
129
139
  {
130
- "uid": "8485-46"
140
+ "uid": "dff6-48"
131
141
  },
132
142
  {
133
- "uid": "8485-50"
143
+ "uid": "dff6-52"
134
144
  }
135
145
  ]
136
146
  },
137
- "8485-46": {
147
+ "dff6-48": {
138
148
  "id": "/packages/form-core/build/esm/index.js",
139
149
  "moduleParts": {
140
- "index.production.js": "8485-47"
150
+ "index.production.js": "dff6-49"
141
151
  },
142
152
  "imported": [
143
153
  {
144
- "uid": "8485-44"
154
+ "uid": "dff6-46"
145
155
  }
146
156
  ],
147
157
  "importedBy": [
148
158
  {
149
- "uid": "8485-60"
159
+ "uid": "dff6-64"
150
160
  },
151
161
  {
152
- "uid": "8485-58"
162
+ "uid": "dff6-60"
153
163
  },
154
164
  {
155
- "uid": "8485-56"
165
+ "uid": "dff6-58"
156
166
  },
157
167
  {
158
- "uid": "8485-54"
168
+ "uid": "dff6-56"
159
169
  }
160
170
  ]
161
171
  },
162
- "8485-48": {
172
+ "dff6-50": {
163
173
  "id": "\u0000rollupPluginBabelHelpers.js",
164
174
  "moduleParts": {
165
- "index.production.js": "8485-49"
175
+ "index.production.js": "dff6-51"
166
176
  },
167
177
  "imported": [],
168
178
  "importedBy": [
169
179
  {
170
- "uid": "8485-58"
171
- },
172
- {
173
- "uid": "8485-56"
180
+ "uid": "dff6-60"
174
181
  }
175
182
  ]
176
183
  },
177
- "8485-50": {
184
+ "dff6-52": {
178
185
  "id": "/node_modules/.pnpm/@tanstack+react-store@0.0.1-beta.84_react-dom@18.2.0_react@18.2.0/node_modules/@tanstack/react-store/build/esm/index.js",
179
186
  "moduleParts": {
180
- "index.production.js": "8485-51"
187
+ "index.production.js": "dff6-53"
181
188
  },
182
189
  "imported": [
183
190
  {
184
- "uid": "8485-63"
191
+ "uid": "dff6-67"
185
192
  },
186
193
  {
187
- "uid": "8485-44"
194
+ "uid": "dff6-46"
188
195
  }
189
196
  ],
190
197
  "importedBy": [
191
198
  {
192
- "uid": "8485-58"
199
+ "uid": "dff6-60"
193
200
  },
194
201
  {
195
- "uid": "8485-54"
202
+ "uid": "dff6-56"
196
203
  }
197
204
  ]
198
205
  },
199
- "8485-52": {
206
+ "dff6-54": {
200
207
  "id": "/packages/react-form/src/formContext.ts",
201
208
  "moduleParts": {
202
- "index.production.js": "8485-53"
209
+ "index.production.js": "dff6-55"
203
210
  },
204
211
  "imported": [
205
212
  {
206
- "uid": "8485-62"
213
+ "uid": "dff6-66"
207
214
  }
208
215
  ],
209
216
  "importedBy": [
210
217
  {
211
- "uid": "8485-58"
218
+ "uid": "dff6-60"
212
219
  },
213
220
  {
214
- "uid": "8485-54"
221
+ "uid": "dff6-56"
215
222
  }
216
223
  ]
217
224
  },
218
- "8485-54": {
225
+ "dff6-56": {
219
226
  "id": "/packages/react-form/src/useField.ts",
220
227
  "moduleParts": {
221
- "index.production.js": "8485-55"
228
+ "index.production.js": "dff6-57"
222
229
  },
223
230
  "imported": [
224
231
  {
225
- "uid": "8485-62"
232
+ "uid": "dff6-66"
226
233
  },
227
234
  {
228
- "uid": "8485-50"
235
+ "uid": "dff6-52"
229
236
  },
230
237
  {
231
- "uid": "8485-46"
238
+ "uid": "dff6-48"
232
239
  },
233
240
  {
234
- "uid": "8485-52"
241
+ "uid": "dff6-54"
235
242
  }
236
243
  ],
237
244
  "importedBy": [
238
245
  {
239
- "uid": "8485-60"
246
+ "uid": "dff6-64"
247
+ },
248
+ {
249
+ "uid": "dff6-60"
240
250
  },
241
251
  {
242
- "uid": "8485-58"
252
+ "uid": "dff6-58"
243
253
  },
244
254
  {
245
- "uid": "8485-56"
255
+ "uid": "dff6-62"
246
256
  }
247
257
  ]
248
258
  },
249
- "8485-56": {
259
+ "dff6-58": {
250
260
  "id": "/packages/react-form/src/Field.tsx",
251
261
  "moduleParts": {
252
- "index.production.js": "8485-57"
262
+ "index.production.js": "dff6-59"
253
263
  },
254
264
  "imported": [
255
265
  {
256
- "uid": "8485-48"
266
+ "uid": "dff6-66"
257
267
  },
258
268
  {
259
- "uid": "8485-62"
269
+ "uid": "dff6-48"
260
270
  },
261
271
  {
262
- "uid": "8485-46"
263
- },
264
- {
265
- "uid": "8485-54"
272
+ "uid": "dff6-56"
266
273
  }
267
274
  ],
268
275
  "importedBy": [
269
276
  {
270
- "uid": "8485-60"
277
+ "uid": "dff6-64"
278
+ },
279
+ {
280
+ "uid": "dff6-60"
271
281
  },
272
282
  {
273
- "uid": "8485-58"
283
+ "uid": "dff6-62"
274
284
  }
275
285
  ]
276
286
  },
277
- "8485-58": {
287
+ "dff6-60": {
278
288
  "id": "/packages/react-form/src/useForm.tsx",
279
289
  "moduleParts": {
280
- "index.production.js": "8485-59"
290
+ "index.production.js": "dff6-61"
281
291
  },
282
292
  "imported": [
283
293
  {
284
- "uid": "8485-48"
294
+ "uid": "dff6-50"
285
295
  },
286
296
  {
287
- "uid": "8485-46"
297
+ "uid": "dff6-48"
288
298
  },
289
299
  {
290
- "uid": "8485-50"
300
+ "uid": "dff6-52"
291
301
  },
292
302
  {
293
- "uid": "8485-62"
303
+ "uid": "dff6-66"
294
304
  },
295
305
  {
296
- "uid": "8485-56"
306
+ "uid": "dff6-58"
297
307
  },
298
308
  {
299
- "uid": "8485-54"
309
+ "uid": "dff6-56"
300
310
  },
301
311
  {
302
- "uid": "8485-52"
312
+ "uid": "dff6-54"
303
313
  }
304
314
  ],
305
315
  "importedBy": [
306
316
  {
307
- "uid": "8485-60"
317
+ "uid": "dff6-64"
318
+ },
319
+ {
320
+ "uid": "dff6-62"
308
321
  }
309
322
  ]
310
323
  },
311
- "8485-60": {
324
+ "dff6-62": {
325
+ "id": "/packages/react-form/src/createFormFactory.ts",
326
+ "moduleParts": {
327
+ "index.production.js": "dff6-63"
328
+ },
329
+ "imported": [
330
+ {
331
+ "uid": "dff6-56"
332
+ },
333
+ {
334
+ "uid": "dff6-60"
335
+ },
336
+ {
337
+ "uid": "dff6-58"
338
+ }
339
+ ],
340
+ "importedBy": [
341
+ {
342
+ "uid": "dff6-64"
343
+ }
344
+ ]
345
+ },
346
+ "dff6-64": {
312
347
  "id": "/packages/react-form/src/index.ts",
313
348
  "moduleParts": {
314
- "index.production.js": "8485-61"
349
+ "index.production.js": "dff6-65"
315
350
  },
316
351
  "imported": [
317
352
  {
318
- "uid": "8485-46"
353
+ "uid": "dff6-48"
354
+ },
355
+ {
356
+ "uid": "dff6-60"
319
357
  },
320
358
  {
321
- "uid": "8485-58"
359
+ "uid": "dff6-58"
322
360
  },
323
361
  {
324
- "uid": "8485-56"
362
+ "uid": "dff6-56"
325
363
  },
326
364
  {
327
- "uid": "8485-54"
365
+ "uid": "dff6-62"
328
366
  }
329
367
  ],
330
368
  "importedBy": [],
331
369
  "isEntry": true
332
370
  },
333
- "8485-62": {
371
+ "dff6-66": {
334
372
  "id": "react",
335
373
  "moduleParts": {},
336
374
  "imported": [],
337
375
  "importedBy": [
338
376
  {
339
- "uid": "8485-58"
377
+ "uid": "dff6-60"
340
378
  },
341
379
  {
342
- "uid": "8485-56"
380
+ "uid": "dff6-58"
343
381
  },
344
382
  {
345
- "uid": "8485-54"
383
+ "uid": "dff6-56"
346
384
  },
347
385
  {
348
- "uid": "8485-52"
386
+ "uid": "dff6-54"
349
387
  }
350
388
  ],
351
389
  "isExternal": true
352
390
  },
353
- "8485-63": {
391
+ "dff6-67": {
354
392
  "id": "use-sync-external-store/shim/with-selector",
355
393
  "moduleParts": {},
356
394
  "imported": [],
357
395
  "importedBy": [
358
396
  {
359
- "uid": "8485-50"
397
+ "uid": "dff6-52"
360
398
  }
361
399
  ],
362
400
  "isExternal": true
@@ -1,11 +1,10 @@
1
1
  import type { DeepKeys, DeepValue, RequiredByKey, Updater } from './utils';
2
2
  import type { FormApi, ValidationError } from './FormApi';
3
3
  import { Store } from '@tanstack/store';
4
- export declare type ValidationCause = 'change' | 'blur' | 'submit';
5
- export declare type FieldOptions<TData, TFormData> = {
4
+ export type ValidationCause = 'change' | 'blur' | 'submit';
5
+ export interface FieldOptions<TData, TFormData> {
6
6
  name: unknown extends TFormData ? string : DeepKeys<TFormData>;
7
7
  defaultValue?: TData;
8
- form?: FormApi<TFormData>;
9
8
  validate?: (value: TData, fieldApi: FieldApi<TData, TFormData>) => ValidationError;
10
9
  validateAsync?: (value: TData, fieldApi: FieldApi<TData, TFormData>) => ValidationError | Promise<ValidationError>;
11
10
  validatePristine?: boolean;
@@ -13,23 +12,35 @@ export declare type FieldOptions<TData, TFormData> = {
13
12
  validateAsyncOn?: ValidationCause;
14
13
  validateAsyncDebounceMs?: number;
15
14
  defaultMeta?: Partial<FieldMeta>;
15
+ }
16
+ export type FieldApiOptions<TData, TFormData> = FieldOptions<TData, TFormData> & {
17
+ form: FormApi<TFormData>;
16
18
  };
17
- export declare type FieldMeta = {
19
+ export type FieldMeta = {
18
20
  isTouched: boolean;
19
21
  touchedError?: ValidationError;
20
22
  error?: ValidationError;
21
23
  isValidating: boolean;
22
24
  };
23
- export declare type ChangeProps<TData> = {
25
+ export type UserChangeProps<TData> = {
24
26
  onChange?: (updater: Updater<TData>) => void;
25
27
  onBlur?: (event: any) => void;
26
28
  };
27
- export declare type InputProps = {
29
+ export type UserInputProps = {
28
30
  onChange?: (event: any) => void;
29
31
  onBlur?: (event: any) => void;
30
32
  };
31
- export declare type FieldApiOptions<TData, TFormData> = RequiredByKey<FieldOptions<TData, TFormData>, 'form'>;
32
- export declare type FieldState<TData> = {
33
+ export type ChangeProps<TData> = {
34
+ value: TData;
35
+ onChange: (updater: Updater<TData>) => void;
36
+ onBlur: (event: any) => void;
37
+ };
38
+ export type InputProps = {
39
+ value: string;
40
+ onChange: (event: any) => void;
41
+ onBlur: (event: any) => void;
42
+ };
43
+ export type FieldState<TData> = {
33
44
  value: TData;
34
45
  meta: FieldMeta;
35
46
  };
@@ -62,6 +73,6 @@ export declare class FieldApi<TData, TFormData> {
62
73
  validateAsync: (value?: TData) => Promise<ValidationError>;
63
74
  shouldValidate: (isAsync: boolean, cause?: ValidationCause) => boolean;
64
75
  validate: (cause?: ValidationCause, value?: TData) => Promise<ValidationError>;
65
- getChangeProps: <T extends ChangeProps<any>>(props?: T) => ChangeProps<TData> & Omit<T, keyof ChangeProps<TData>>;
66
- getInputProps: <T extends InputProps>(props?: T) => InputProps & Omit<T, keyof InputProps>;
76
+ getChangeProps: <T extends UserChangeProps<any>>(props?: T) => ChangeProps<TData> & Omit<T, keyof ChangeProps<TData>>;
77
+ getInputProps: <T extends UserInputProps>(props?: T) => InputProps & Omit<T, keyof InputProps>;
67
78
  }
@@ -1,31 +1,34 @@
1
- import type { FormEvent } from 'react';
2
1
  import { Store } from '@tanstack/store';
3
2
  import type { DeepKeys, DeepValue, Updater } from './utils';
4
3
  import type { FieldApi, FieldMeta, ValidationCause } from './FieldApi';
5
- export declare type FormOptions<TData> = {
4
+ export interface Register {
5
+ }
6
+ export type FormSubmitEvent = Register extends {
7
+ FormSubmitEvent: infer E;
8
+ } ? E : Event;
9
+ export type FormOptions<TData> = {
6
10
  defaultValues?: TData;
7
11
  defaultState?: Partial<FormState<TData>>;
8
12
  onSubmit?: (values: TData, formApi: FormApi<TData>) => void;
9
13
  onInvalidSubmit?: (values: TData, formApi: FormApi<TData>) => void;
10
14
  validate?: (values: TData, formApi: FormApi<TData>) => Promise<any>;
11
- debugForm?: boolean;
12
15
  defaultValidatePristine?: boolean;
13
16
  defaultValidateOn?: ValidationCause;
14
17
  defaultValidateAsyncOn?: ValidationCause;
15
18
  defaultValidateAsyncDebounceMs?: number;
16
19
  };
17
- export declare type FieldInfo<TFormData> = {
20
+ export type FieldInfo<TFormData> = {
18
21
  instances: Record<string, FieldApi<any, TFormData>>;
19
22
  } & ValidationMeta;
20
- export declare type ValidationMeta = {
23
+ export type ValidationMeta = {
21
24
  validationCount?: number;
22
25
  validationAsyncCount?: number;
23
26
  validationPromise?: Promise<ValidationError>;
24
27
  validationResolve?: (error: ValidationError) => void;
25
28
  validationReject?: (error: unknown) => void;
26
29
  };
27
- export declare type ValidationError = undefined | false | null | string;
28
- export declare type FormState<TData> = {
30
+ export type ValidationError = undefined | false | null | string;
31
+ export type FormState<TData> = {
29
32
  values: TData;
30
33
  isFormValidating: boolean;
31
34
  formValidationCount: number;
@@ -42,7 +45,6 @@ export declare type FormState<TData> = {
42
45
  canSubmit: boolean;
43
46
  submissionAttempts: number;
44
47
  };
45
- export declare function getDefaultFormState<TData>(defaultState: Partial<FormState<TData>>): FormState<TData>;
46
48
  export declare class FormApi<TFormData> {
47
49
  options: FormOptions<TFormData>;
48
50
  store: Store<FormState<TFormData>>;
@@ -55,14 +57,12 @@ export declare class FormApi<TFormData> {
55
57
  reset: () => void;
56
58
  validateAllFields: () => Promise<ValidationError[]>;
57
59
  validateForm: () => Promise<ValidationError>;
58
- handleSubmit: (e: FormEvent & {
59
- __handled?: boolean;
60
- }) => Promise<void>;
60
+ handleSubmit: (e: FormSubmitEvent) => Promise<void>;
61
61
  getFieldValue: <TField extends DeepKeys<TFormData>>(field: TField) => DeepValue<TFormData, TField>;
62
62
  getFieldMeta: <TField extends DeepKeys<TFormData>>(field: TField) => FieldMeta;
63
63
  getFieldInfo: <TField extends DeepKeys<TFormData>>(field: TField) => Record<DeepKeys<TFormData>, FieldInfo<TFormData>>[TField];
64
64
  setFieldMeta: <TField extends DeepKeys<TFormData>>(field: TField, updater: Updater<FieldMeta>) => void;
65
- setFieldValue: <TField extends DeepKeys<TFormData>>(field: TField, updater: Updater<DeepValue<TFormData, TField>, DeepValue<TFormData, TField>>, opts?: {
65
+ setFieldValue: <TField extends DeepKeys<TFormData>>(field: TField, updater: Updater<DeepValue<TFormData, TField>>, opts?: {
66
66
  touch?: boolean;
67
67
  }) => void;
68
68
  pushFieldValue: <TField extends DeepKeys<TFormData>>(field: TField, value: DeepValue<TFormData, TField>, opts?: {
@@ -1,16 +1,16 @@
1
- export declare type UpdaterFn<TInput, TOutput = TInput> = (input: TInput) => TOutput;
2
- export declare type Updater<TInput, TOutput = TInput> = TOutput | UpdaterFn<TInput, TOutput>;
1
+ export type UpdaterFn<TInput, TOutput = TInput> = (input: TInput) => TOutput;
2
+ export type Updater<TInput, TOutput = TInput> = TOutput | UpdaterFn<TInput, TOutput>;
3
3
  export declare function functionalUpdate<TInput, TOutput = TInput>(updater: Updater<TInput, TOutput>, input: TInput): TOutput;
4
4
  export declare function getBy(obj: any, path: any): any;
5
5
  export declare function setBy(obj: any, _path: any, updater: Updater<any>): any;
6
- export declare type RequiredByKey<T, K extends keyof T> = Omit<T, K> & Required<Pick<T, K>>;
7
- declare type ComputeRange<N extends number, Result extends Array<unknown> = []> = Result['length'] extends N ? Result : ComputeRange<N, [...Result, Result['length']]>;
8
- declare type Index40 = ComputeRange<40>[number];
9
- declare type IsTuple<T> = T extends readonly any[] & {
6
+ export type RequiredByKey<T, K extends keyof T> = Omit<T, K> & Required<Pick<T, K>>;
7
+ type ComputeRange<N extends number, Result extends Array<unknown> = []> = Result['length'] extends N ? Result : ComputeRange<N, [...Result, Result['length']]>;
8
+ type Index40 = ComputeRange<40>[number];
9
+ type IsTuple<T> = T extends readonly any[] & {
10
10
  length: infer Length;
11
11
  } ? Length extends Index40 ? T : never : never;
12
- declare type AllowedIndexes<Tuple extends ReadonlyArray<any>, Keys extends number = never> = Tuple extends readonly [] ? Keys : Tuple extends readonly [infer _, ...infer Tail] ? AllowedIndexes<Tail, Keys | Tail['length']> : Keys;
13
- export declare type DeepKeys<T> = unknown extends T ? keyof T : object extends T ? string : T extends readonly any[] & IsTuple<T> ? AllowedIndexes<T> | DeepKeysPrefix<T, AllowedIndexes<T>> : T extends any[] ? never & 'Dynamic length array indexing is not supported' : T extends Date ? never : T extends object ? (keyof T & string) | DeepKeysPrefix<T, keyof T> : never;
14
- declare type DeepKeysPrefix<T, TPrefix> = TPrefix extends keyof T & (number | string) ? `${TPrefix}.${DeepKeys<T[TPrefix]> & string}` : never;
15
- export declare type DeepValue<T, TProp> = T extends Record<string | number, any> ? TProp extends `${infer TBranch}.${infer TDeepProp}` ? DeepValue<T[TBranch], TDeepProp> : T[TProp & string] : never;
12
+ type AllowedIndexes<Tuple extends ReadonlyArray<any>, Keys extends number = never> = Tuple extends readonly [] ? Keys : Tuple extends readonly [infer _, ...infer Tail] ? AllowedIndexes<Tail, Keys | Tail['length']> : Keys;
13
+ export type DeepKeys<T> = unknown extends T ? keyof T : object extends T ? string : T extends readonly any[] & IsTuple<T> ? AllowedIndexes<T> | DeepKeysPrefix<T, AllowedIndexes<T>> : T extends any[] ? never & 'Dynamic length array indexing is not supported' : T extends Date ? never : T extends object ? (keyof T & string) | DeepKeysPrefix<T, keyof T> : never;
14
+ type DeepKeysPrefix<T, TPrefix> = TPrefix extends keyof T & (number | string) ? `${TPrefix}.${DeepKeys<T[TPrefix]> & string}` : never;
15
+ export type DeepValue<T, TProp> = T extends Record<string | number, any> ? TProp extends `${infer TBranch}.${infer TDeepProp}` ? DeepValue<T[TBranch], TDeepProp> : T[TProp & string] : never;
16
16
  export {};