@@ -129,7 +129,8 @@ export default function App() {
129129``` typescript  copy
130130export  type  UseFormReturn <
131131  TFieldValues  extends  FieldValues  =  FieldValues ,
132-   TContext  =  any 
132+   TContext  =  any ,
133+   TTransformedValues  extends  FieldValues  |  undefined  =  undefined ,
133134> =  {
134135  watch:  UseFormWatch <TFieldValues >
135136  getValues:  UseFormGetValues <TFieldValues >
@@ -238,16 +239,24 @@ export default function App() {
238239```typescript copy
239240export type UseFormProps<
240241  TFieldValues extends FieldValues = FieldValues,
241-   TContext extends object = object
242+   TContext extends object = object,
243+   TTransformedValues extends FieldValues | undefined = undefined,
242244> = Partial<{
243245  mode: Mode 
244-   reValidateMode : Mode 
245-   defaultValues : DeepPartial < TFieldValues > 
246+   disabled : boolean 
247+   reValidateMode : Exclude < Mode , ' onTouched' ' all' 
248+   defaultValues: DefaultValues < TFieldValues >  |  AsyncDefaultValues < TFieldValues > 
249+   values : TFieldValues 
250+   errors : FieldErrors < TFieldValues > 
251+   resetOptions : Parameters < UseFormReset < TFieldValues >> [1 ]
246252  resolver : Resolver < TFieldValues , TContext>
247253  context: TContext 
248254  shouldFocusError : boolean 
249255  shouldUnregister : boolean 
250-   criteriaMode : " firstError" |  " all" 
256+   shouldUseNativeValidation : boolean 
257+   progressive : boolean 
258+   criteriaMode : CriteriaMode 
259+   delayError : number 
251260}> 
252261` ` ` 
253262
@@ -261,37 +270,14 @@ export type UseFieldArrayReturn<
261270  TFieldArrayName  extends  FieldArrayPath < TFieldValues >  =  FieldArrayPath < TFieldValues > ,
262271  TKeyName  extends  string  =  " id" 
263272>  =  {
264-   swap : (indexA :  number , indexB :  number ) =>  void 
265-   move : (indexA :  number , indexB :  number ) =>  void 
266-   prepend : (
267-     value : 
268-       |  Partial <FieldArray <TFieldValues , TFieldArrayName >>
269-       |  Partial <FieldArray <TFieldValues , TFieldArrayName >>[],
270-     options ? :  FieldArrayMethodProps 
271-   ) =>  void 
272-   append : (
273-     value : 
274-       |  Partial <FieldArray <TFieldValues , TFieldArrayName >>
275-       |  Partial <FieldArray <TFieldValues , TFieldArrayName >>[],
276-     options ? :  FieldArrayMethodProps 
277-   ) =>  void 
278-   remove : (index ? :  number  |  number []) =>  void 
279-   insert : (
280-     index :  number ,
281-     value : 
282-       |  Partial <FieldArray <TFieldValues , TFieldArrayName >>
283-       |  Partial <FieldArray <TFieldValues , TFieldArrayName >>[],
284-     options ? :  FieldArrayMethodProps 
285-   ) =>  void 
286-   update : (
287-     index :  number ,
288-     value :  Partial <FieldArray <TFieldValues , TFieldArrayName >>
289-   ) =>  void 
290-   replace : (
291-     value : 
292-       |  Partial <FieldArray <TFieldValues , TFieldArrayName >>
293-       |  Partial <FieldArray <TFieldValues , TFieldArrayName >>[]
294-   ) =>  void 
273+   swap: UseFieldArraySwap 
274+   move : UseFieldArrayMove 
275+   prepend : UseFieldArrayPrepend < TFieldValues , TFieldArrayName>
276+   append: UseFieldArrayAppend < TFieldValues , TFieldArrayName>
277+   remove: UseFieldArrayRemove 
278+   insert : UseFieldArrayInsert < TFieldValues , TFieldArrayName>
279+   update: UseFieldArrayUpdate < TFieldValues , TFieldArrayName>
280+   replace: UseFieldArrayReplace < TFieldValues , TFieldArrayName>
295281  fields: FieldArrayWithId < TFieldValues , TFieldArrayName , TKeyName>[]
296282}
297283```
@@ -302,16 +288,25 @@ export type UseFieldArrayReturn<
302288
303289```typescript copy
304290export type UseFieldArrayProps<
305-   TKeyName extends string = "id",
306-   TControl extends Control = Control
291+   TFieldValues extends FieldValues = FieldValues,
292+   TFieldArrayName extends FieldArrayPath<TFieldValues> = FieldArrayPath<TFieldValues>,
293+   TKeyName extends string = 'id',
307294> = {
308-   name: string 
295+   name: TFieldArrayName 
309296  keyName ?:  TKeyName 
310-   control ?:  TControl 
311-   rules ?:  Pick < 
297+   control ?:  Control < TFieldValues > 
298+   rules ?:  {
299+     validate?
300+       | Validate<FieldArray<TFieldValues , TFieldArrayName>[], TFieldValues>
301+       | Record<
302+           string,
303+           Validate<FieldArray<TFieldValues, TFieldArrayName>[], TFieldValues>
304+         >
305+   } & Pick<
312306    RegisterOptions<TFieldValues>,
313-     " maxLength" " minLength" " validate "  |  " required" 
307+     ' maxLength'  | ' minLength'  | ' required' 
314308  >
309+   shouldUnregister?: boolean 
315310}
316311` ` ` 
317312
@@ -347,6 +342,7 @@ export type UseControllerProps<
347342  shouldUnregister?: boolean 
348343  defaultValue ?:  FieldPathValue < TFieldValues , TName>
349344  control?: Control < TFieldValues > 
345+   disabled ?:  boolean 
350346}
351347` ` ` 
352348
@@ -356,7 +352,8 @@ export type UseControllerProps<
356352
357353` ` ` typescript  copy 
358354export  type  FieldError  =  {
359-   type: string 
355+   type: LiteralUnion < keyof  RegisterOptions , string>
356+   root?: FieldError 
360357  ref ?:  Ref 
361358  types ?:  MultipleFieldErrors 
362359  message ?:  Message 
@@ -383,10 +380,13 @@ export type FieldErrors<T extends FieldValues = FieldValues> = Partial<
383380
384381` ` ` typescript  copy 
385382export  type  Field  =  {
386-   ref: Ref 
387-   mutationWatcher ?:  MutationWatcher 
388-   options ?:  RadioOrCheckboxOption []
389- } &  RegisterOptions 
383+   _f: {
384+     ref: Ref 
385+     name : InternalFieldName 
386+     refs ?:  HTMLInputElement []
387+     mount ?:  boolean 
388+   } &  RegisterOptions 
389+ }
390390` ` ` 
391391
392392--- 
@@ -406,15 +406,14 @@ export type FieldPath<TFieldValues extends FieldValues> = Path<TFieldValues>
406406This type will return union with all available paths that match the passed value 
407407
408408` ` ` typescript  copy 
409- function  Field<
410-   TFieldValues  extends  FieldValues ,
411-   TPath  extends  FieldPathByValue <TFieldValues , Date >
412- >({ control , name  }:  { control:  Control <TFieldValues >; name:  TPath  }) {
413-   const =  useController ({
414-     control ,
415-     name ,
416-   })
417- }
409+ export  type  FieldPathByValue < TFieldValues  extends  FieldValues , TValue >  =  {
410+   [Key  in  FieldPath < TFieldValues > ]: FieldPathValue < 
411+     TFieldValues ,
412+     Key 
413+   > extends TValue 
414+     ? Key 
415+     : never 
416+ }[FieldPath < TFieldValues > ]
418417` ` ` 
419418
420419--- 
@@ -432,39 +431,68 @@ export type FieldValues = Record<string, any>
432431` ` ` typescript  copy 
433432export  type  FieldArrayWithId < 
434433  TFieldValues  extends  FieldValues  =  FieldValues ,
435-   TFieldArrayName  extends  FieldArrayPath < TFieldValues >  =  FieldArrayPath < TFieldValues > ,
436-   TKeyName  extends  string  =  " id" 
434+   TFieldArrayName  extends 
435+     FieldArrayPath < TFieldValues >  =  FieldArrayPath < TFieldValues > ,
436+   TKeyName  extends  string  =  ' id' 
437437>  =  FieldArray < TFieldValues , TFieldArrayName >  &  Record < TKeyName , string > 
438+ 
438439` ` ` 
439440
440441--- 
441442
442443## \< /> Mode {#Mode} 
443444
444445` ` ` typescript  copy 
445- export  type  Mode  =  {
446-   onBlur: " onBlur" 
447-   onChange : " onChange" 
448-   onSubmit : " onSubmit" 
449-   onTouched : " onTouched" 
450-   all : " all" 
451- }
446+ export  type  ValidationMode  =  typeof  VALIDATION_MODE 
447+ 
448+ export  type  Mode  =  keyof  ValidationMode 
452449` ` ` 
453450
454451--- 
455452
456453## \< /> RegisterOptions {#RegisterOptions} 
457454
458455` ` ` typescript  copy 
459- export  type  RegisterOptions  =  Partial <{
456+ export  type  RegisterOptions < 
457+   TFieldValues  extends  FieldValues  =  FieldValues ,
458+   TFieldName  extends  FieldPath < TFieldValues >  =  FieldPath < TFieldValues > ,
459+ >  =  Partial <{
460460  required:  Message  |  ValidationRule <boolean >
461461  min:  ValidationRule <number  |  string >
462462  max:  ValidationRule <number  |  string >
463-   maxLength:  ValidationRule <number  |  string >
464-   minLength:  ValidationRule <number  |  string >
465-   pattern:  ValidationRule <RegExp >
466-   validate:  Validate  |  Record <string , Validate >
467- }>
463+   maxLength:  ValidationRule <number >
464+   minLength:  ValidationRule <number >
465+   validate: 
466+     |  Validate <FieldPathValue <TFieldValues , TFieldName >, TFieldValues >
467+     |  Record <
468+         string ,
469+         Validate <FieldPathValue <TFieldValues , TFieldName >, TFieldValues >
470+       >
471+   value :  FieldPathValue <TFieldValues , TFieldName >
472+   setValueAs :  (value :  any ) =>  any 
473+   shouldUnregister ?:  boolean 
474+   onChange ?:  (event :  any ) =>  void 
475+   onBlur ?:  (event :  any ) =>  void 
476+   disabled :  boolean 
477+   deps :  FieldPath <TFieldValues > |  FieldPath <TFieldValues >[]
478+ }> & 
479+   (
480+     |  {
481+         pattern?: ValidationRule < RegExp > 
482+         valueAsNumber ?:  false 
483+         valueAsDate ?:  false 
484+       }
485+     |  {
486+         pattern?: undefined 
487+         valueAsNumber ?:  false 
488+         valueAsDate ?:  true 
489+       }
490+     |  {
491+         pattern?: undefined 
492+         valueAsNumber ?:  true 
493+         valueAsDate ?:  false 
494+       }
495+   )
468496` ` ` 
469497
470498--- 
@@ -474,14 +502,14 @@ export type RegisterOptions = Partial<{
474502` ` ` typescript  copy 
475503export  type  FormStateProxy < TFieldValues  extends  FieldValues  =  FieldValues >  =  {
476504  isDirty: boolean 
477-   dirtyFields :  Dirtied < TFieldValues > 
478-   isSubmitted :  boolean 
479-   submitCount :  number 
480-   touched :  FieldNames < TFieldValues > 
481-   isSubmitting : boolean 
505+   isValidating :  boolean 
506+   dirtyFields :  FieldNamesMarkedBoolean < TFieldValues > 
507+   touchedFields :  FieldNamesMarkedBoolean < TFieldValues > 
508+   validatingFields :  FieldNamesMarkedBoolean < TFieldValues > 
509+   errors : boolean 
482510  isValid : boolean 
483-   errors : FieldErrors < TFieldValues > 
484511}
512+ 
485513` ` ` 
486514
487515--- 
0 commit comments