@saas-ui/forms 3.0.0-next.4 → 3.0.0-next.40

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.
package/LICENSE ADDED
@@ -0,0 +1,21 @@
1
+ MIT License
2
+
3
+ Copyright (c) 2021 Eelco Wiersma
4
+
5
+ Permission is hereby granted, free of charge, to any person obtaining a copy
6
+ of this software and associated documentation files (the "Software"), to deal
7
+ in the Software without restriction, including without limitation the rights
8
+ to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
9
+ copies of the Software, and to permit persons to whom the Software is
10
+ furnished to do so, subject to the following conditions:
11
+
12
+ The above copyright notice and this permission notice shall be included in all
13
+ copies or substantial portions of the Software.
14
+
15
+ THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
16
+ IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
17
+ FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
18
+ AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
19
+ LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
20
+ OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
21
+ SOFTWARE.
package/dist/index.d.mts CHANGED
@@ -4,7 +4,7 @@ import { SimpleGridProps, RecipeProps, InputProps, SystemStyleObject, TextareaPr
4
4
  import { MaybeRenderProp } from '@saas-ui/core/utils';
5
5
  import * as react_hook_form from 'react-hook-form';
6
6
  import { FieldValues, FieldPath, UseFormReturn as UseFormReturn$2, UseFieldArrayReturn, UseFormProps as UseFormProps$1, WatchObserver, SubmitHandler, SubmitErrorHandler, ResolverOptions, ResolverResult, RegisterOptions, useForm as useForm$1, DefaultValues, FormProviderProps as FormProviderProps$1 } from 'react-hook-form';
7
- export { ArrayPath, BatchFieldArrayUpdate, BrowserNativeObject, ChangeHandler, Control, Controller, ControllerFieldState, ControllerProps, ControllerRenderProps, CriteriaMode, CustomElement, DeepMap, DeepPartial, DeepPartialSkipArrayKey, DeepRequired, DefaultValues, DelayCallback, EmptyObject, ErrorOption, EventType, ExtractObjects, FieldArray, FieldArrayMethodProps, FieldArrayPath, FieldArrayPathValue, FieldArrayWithId, Field as FieldDef, FieldElement, FieldError, FieldErrors, FieldErrorsImpl, FieldName, FieldNamesMarkedBoolean, FieldPath, FieldPathByValue, FieldPathValue, FieldPathValues, FieldRefs, FieldValue, FieldValues, FormProviderProps, FormState, FormStateProxy, FormStateSubjectRef, GetIsDirty, InternalFieldErrors, InternalFieldName, InternalNameSet, IsAny, IsFlatObject, KeepStateOptions, LiteralUnion, Message, Mode, MultipleFieldErrors, Names, NativeFieldValue, NestedValue, NonUndefined, Noop, Primitive, ReadFormState, Ref, RefCallBack, RegisterOptions, Resolver, ResolverError, ResolverOptions, ResolverResult, ResolverSuccess, SetFieldValue, SetValueConfig, Subjects, SubmitErrorHandler, SubmitHandler, TriggerConfig, UnpackNestedValue, UseControllerProps, UseControllerReturn, UseFieldArrayProps, UseFieldArrayReturn, UseFormClearErrors, UseFormGetValues, UseFormHandleSubmit, UseFormRegister, UseFormRegisterReturn, UseFormReset, UseFormResetField, UseFormSetError, UseFormSetFocus, UseFormSetValue, UseFormStateProps, UseFormStateReturn, UseFormTrigger, UseFormUnregister, UseFormWatch, UseWatchProps, Validate, ValidateResult, ValidationMode, ValidationRule, ValidationValue, ValidationValueMessage, WatchInternal, WatchObserver, appendErrors, useController, useFieldArray, useFormState, useWatch } from 'react-hook-form';
7
+ export { ArrayPath, BatchFieldArrayUpdate, BrowserNativeObject, ChangeHandler, Control, Controller, ControllerFieldState, ControllerProps, ControllerRenderProps, CriteriaMode, CustomElement, DeepMap, DeepPartial, DeepPartialSkipArrayKey, DeepRequired, DefaultValues, DelayCallback, EmptyObject, ErrorOption, EventType, ExtractObjects, FieldArray, FieldArrayMethodProps, FieldArrayPath, FieldArrayPathValue, FieldArrayWithId, Field as FieldDef, FieldElement, FieldError, FieldErrors, FieldErrorsImpl, FieldName, FieldNamesMarkedBoolean, FieldPath, FieldPathByValue, FieldPathValue, FieldPathValues, FieldRefs, FieldValue, FieldValues, FormProviderProps, FormState, FormStateProxy, FormStateSubjectRef, GetIsDirty, InternalFieldErrors, InternalFieldName, InternalNameSet, IsAny, IsFlatObject, KeepStateOptions, LiteralUnion, Message, Mode, MultipleFieldErrors, Names, NativeFieldValue, NestedValue, NonUndefined, Noop, Primitive, ReadFormState, Ref, RefCallBack, RegisterOptions, Resolver, ResolverError, ResolverOptions, ResolverResult, ResolverSuccess, SetFieldValue, SetValueConfig, Subjects, SubmitErrorHandler, SubmitHandler, TriggerConfig, UseControllerProps, UseControllerReturn, UseFieldArrayProps, UseFieldArrayReturn, UseFormClearErrors, UseFormGetValues, UseFormHandleSubmit, UseFormRegister, UseFormRegisterReturn, UseFormReset, UseFormResetField, UseFormSetError, UseFormSetFocus, UseFormSetValue, UseFormStateProps, UseFormStateReturn, UseFormTrigger, UseFormUnregister, UseFormWatch, UseWatchProps, Validate, ValidateResult, ValidationMode, ValidationRule, ValidationValue, ValidationValueMessage, WatchInternal, WatchObserver, appendErrors, useController, useFieldArray, useFormState, useWatch } from 'react-hook-form';
8
8
  import { CheckboxProps } from '@saas-ui/react/checkbox';
9
9
  import { NumberInputProps } from '@saas-ui/react/number-input';
10
10
  import { PasswordInputProps } from '@saas-ui/react/password-input';
@@ -13,8 +13,9 @@ import { RadioGroup } from '@saas-ui/react/radio-group';
13
13
  import { Select } from '@saas-ui/react/select';
14
14
  import { SwitchProps } from '@saas-ui/react/switch';
15
15
  import * as react_jsx_runtime from 'react/jsx-runtime';
16
- import { UseStepperReturn } from '@saas-ui/core';
17
16
  import { ButtonProps } from '@saas-ui/react/button';
17
+ import { StandardSchemaV1 } from '@standard-schema/spec';
18
+ export { StandardSchemaV1 } from '@standard-schema/spec';
18
19
  import { z } from 'zod';
19
20
 
20
21
  interface FormLayoutOptions {
@@ -38,13 +39,13 @@ interface InputFieldProps extends InputProps {
38
39
  startElement?: React__default.ReactNode;
39
40
  endElement?: React__default.ReactNode;
40
41
  }
41
- declare const InputField: React__default.FC<Omit<BaseFieldProps<react_hook_form.FieldValues, string>, keyof InputFieldProps> & InputFieldProps>;
42
+ declare const InputField: React__default.ForwardRefExoticComponent<Omit<BaseFieldProps<react_hook_form.FieldValues, string>, keyof InputFieldProps> & InputFieldProps & React__default.RefAttributes<HTMLInputElement>>;
42
43
  interface NumberInputFieldProps extends NumberInputProps {
43
44
  type: 'number';
44
45
  }
45
46
  interface TextareaFieldProps extends TextareaProps {
46
47
  }
47
- declare const TextareaField: React__default.FC<Omit<BaseFieldProps<react_hook_form.FieldValues, string>, keyof TextareaFieldProps> & TextareaFieldProps>;
48
+ declare const TextareaField: React__default.ForwardRefExoticComponent<Omit<BaseFieldProps<react_hook_form.FieldValues, string>, keyof TextareaFieldProps> & TextareaFieldProps & React__default.RefAttributes<HTMLTextAreaElement>>;
48
49
  interface SwitchFieldProps extends SwitchProps {
49
50
  type: 'switch';
50
51
  }
@@ -57,9 +58,10 @@ interface SelectFieldProps<Multiple extends boolean = boolean> extends Omit<Sele
57
58
  triggerProps?: Select.TriggerProps;
58
59
  contentProps?: Select.ContentProps;
59
60
  }
60
- interface CheckboxFieldProps extends CheckboxProps {
61
+ interface CheckboxFieldProps extends Omit<CheckboxProps, 'value'> {
61
62
  type: 'checkbox';
62
63
  label?: string;
64
+ value?: boolean;
63
65
  }
64
66
  interface RadioFieldProps extends RadioGroup.RootProps {
65
67
  type: 'radio';
@@ -75,19 +77,19 @@ interface PinFieldProps extends Omit<PinInputProps, 'type' | 'value' | 'onChange
75
77
  onChange?: (value: string) => void;
76
78
  }
77
79
  declare const defaultFieldTypes: {
78
- text: React__default.FC<Omit<BaseFieldProps<react_hook_form.FieldValues, string>, keyof InputFieldProps> & InputFieldProps>;
79
- email: React__default.FC<Omit<BaseFieldProps<react_hook_form.FieldValues, string>, keyof InputFieldProps> & InputFieldProps>;
80
- url: React__default.FC<Omit<BaseFieldProps<react_hook_form.FieldValues, string>, keyof InputFieldProps> & InputFieldProps>;
81
- phone: React__default.FC<Omit<BaseFieldProps<react_hook_form.FieldValues, string>, keyof InputFieldProps> & InputFieldProps>;
82
- time: React__default.FC<Omit<BaseFieldProps<react_hook_form.FieldValues, string>, keyof InputFieldProps> & InputFieldProps>;
83
- number: React__default.FC<Omit<BaseFieldProps<react_hook_form.FieldValues, string>, keyof NumberInputFieldProps> & NumberInputFieldProps>;
84
- pin: React__default.FC<Omit<BaseFieldProps<react_hook_form.FieldValues, string>, keyof PinFieldProps> & PinFieldProps>;
85
- checkbox: React__default.FC<Omit<BaseFieldProps<react_hook_form.FieldValues, string>, keyof CheckboxFieldProps> & CheckboxFieldProps>;
86
- radio: React__default.FC<Omit<BaseFieldProps<react_hook_form.FieldValues, string>, keyof RadioFieldProps> & RadioFieldProps>;
87
- password: React__default.FC<Omit<BaseFieldProps<react_hook_form.FieldValues, string>, keyof PasswordInputProps> & PasswordInputProps>;
88
- select: React__default.FC<Omit<BaseFieldProps<react_hook_form.FieldValues, string>, keyof SelectFieldProps<boolean>> & SelectFieldProps<boolean>>;
89
- switch: React__default.FC<Omit<BaseFieldProps<react_hook_form.FieldValues, string>, keyof SwitchFieldProps> & SwitchFieldProps>;
90
- textarea: React__default.FC<Omit<BaseFieldProps<react_hook_form.FieldValues, string>, keyof TextareaFieldProps> & TextareaFieldProps>;
80
+ text: React__default.ForwardRefExoticComponent<Omit<BaseFieldProps<react_hook_form.FieldValues, string>, keyof InputFieldProps> & InputFieldProps & React__default.RefAttributes<HTMLInputElement>>;
81
+ email: React__default.ForwardRefExoticComponent<Omit<BaseFieldProps<react_hook_form.FieldValues, string>, keyof InputFieldProps> & InputFieldProps & React__default.RefAttributes<HTMLInputElement>>;
82
+ url: React__default.ForwardRefExoticComponent<Omit<BaseFieldProps<react_hook_form.FieldValues, string>, keyof InputFieldProps> & InputFieldProps & React__default.RefAttributes<HTMLInputElement>>;
83
+ phone: React__default.ForwardRefExoticComponent<Omit<BaseFieldProps<react_hook_form.FieldValues, string>, keyof InputFieldProps> & InputFieldProps & React__default.RefAttributes<HTMLInputElement>>;
84
+ time: React__default.ForwardRefExoticComponent<Omit<BaseFieldProps<react_hook_form.FieldValues, string>, keyof InputFieldProps> & InputFieldProps & React__default.RefAttributes<HTMLInputElement>>;
85
+ number: React__default.ForwardRefExoticComponent<Omit<BaseFieldProps<react_hook_form.FieldValues, string>, keyof NumberInputFieldProps> & NumberInputFieldProps & React__default.RefAttributes<HTMLInputElement>>;
86
+ pin: React__default.ForwardRefExoticComponent<Omit<BaseFieldProps<react_hook_form.FieldValues, string>, keyof PinFieldProps> & PinFieldProps & React__default.RefAttributes<HTMLInputElement>>;
87
+ checkbox: React__default.ForwardRefExoticComponent<Omit<BaseFieldProps<react_hook_form.FieldValues, string>, keyof CheckboxFieldProps> & CheckboxFieldProps & React__default.RefAttributes<HTMLInputElement>>;
88
+ radio: React__default.ForwardRefExoticComponent<Omit<BaseFieldProps<react_hook_form.FieldValues, string>, keyof RadioFieldProps> & RadioFieldProps & React__default.RefAttributes<HTMLInputElement>>;
89
+ password: React__default.ForwardRefExoticComponent<Omit<BaseFieldProps<react_hook_form.FieldValues, string>, keyof PasswordInputProps> & PasswordInputProps & React__default.RefAttributes<HTMLInputElement>>;
90
+ select: React__default.ForwardRefExoticComponent<Omit<BaseFieldProps<react_hook_form.FieldValues, string>, keyof SelectFieldProps<boolean>> & SelectFieldProps<boolean> & React__default.RefAttributes<HTMLDivElement>>;
91
+ switch: React__default.ForwardRefExoticComponent<Omit<BaseFieldProps<react_hook_form.FieldValues, string>, keyof SwitchFieldProps> & SwitchFieldProps & React__default.RefAttributes<HTMLInputElement>>;
92
+ textarea: React__default.ForwardRefExoticComponent<Omit<BaseFieldProps<react_hook_form.FieldValues, string>, keyof TextareaFieldProps> & TextareaFieldProps & React__default.RefAttributes<HTMLTextAreaElement>>;
91
93
  };
92
94
  type DefaultFields = typeof defaultFieldTypes;
93
95
 
@@ -272,57 +274,6 @@ type FormComponent = (<TSchema = unknown, TFieldValues extends FieldValues = Fie
272
274
  };
273
275
  type GetResolver = <TFieldValues extends FieldValues, TContext extends object>(schema: unknown) => (values: TFieldValues, context: TContext | undefined, options: ResolverOptions<TFieldValues>) => ResolverResult<TFieldValues> | Promise<ResolverResult<TFieldValues>>;
274
276
 
275
- type FormStepSubmitHandler<TFieldValues extends FieldValues = FieldValues> = (data: TFieldValues, stepper: UseStepperReturn) => Promise<void>;
276
- type StepName<T extends {
277
- [k: number]: {
278
- readonly name: string;
279
- };
280
- }> = T[number]['name'];
281
- interface StepFormRenderContext<TSteps extends StepsOptions<any> = StepsOptions<any>, TFieldValues extends FieldValues = FieldValues, TContext extends object = object, TFieldTypes = FieldProps<TFieldValues>> extends UseStepFormReturn<TFieldValues> {
282
- Field: React$1.FC<TFieldTypes & React$1.RefAttributes<FocusableElement>>;
283
- FormStep: React$1.FC<FormStepProps<StepName<TSteps>>>;
284
- DisplayIf: React$1.FC<DisplayIfProps<TFieldValues>>;
285
- ArrayField: React$1.FC<ArrayFieldProps<TFieldValues> & React$1.RefAttributes<UseArrayFieldReturn>>;
286
- ObjectField: React$1.FC<ObjectFieldProps<TFieldValues>>;
287
- }
288
- interface UseStepFormReturn<TFieldValues extends FieldValues = FieldValues> extends UseStepperReturn {
289
- getFormProps(): {
290
- onSubmit: SubmitHandler<TFieldValues>;
291
- schema?: any;
292
- resolver?: any;
293
- };
294
- updateStep(step: any): void;
295
- steps: Record<string, any>;
296
- }
297
-
298
- type StepsOptions<TSchema, TName extends string = string> = {
299
- /**
300
- * The step name
301
- */
302
- name: TName;
303
- /**
304
- * Schema
305
- */
306
- schema?: TSchema;
307
- }[];
308
- interface FormStepOptions<TName extends string = string> {
309
- /**
310
- * The step name
311
- */
312
- name: TName;
313
- /**
314
- * Schema
315
- */
316
- schema?: any;
317
- /**
318
- * Hook Form Resolver
319
- */
320
- resolver?: any;
321
- }
322
- interface FormStepProps<TName extends string = string> extends FormStepOptions<TName>, Omit<HTMLChakraProps<'div'>, 'onSubmit'> {
323
- onSubmit?: FormStepSubmitHandler;
324
- }
325
-
326
277
  interface SubmitButtonProps extends ButtonProps {
327
278
  /**
328
279
  * Disable the submit button if the form is untouched.
@@ -386,6 +337,26 @@ interface BaseFieldProps<TFieldValues extends FieldValues = FieldValues, TName e
386
337
  * The input placeholder
387
338
  */
388
339
  placeholder?: string;
340
+ /**
341
+ * Whether the field is invalid
342
+ */
343
+ invalid?: boolean;
344
+ /**
345
+ * Whether the field is required
346
+ */
347
+ required?: boolean;
348
+ /**
349
+ * Whether the field is disabled
350
+ */
351
+ disabled?: boolean;
352
+ /**
353
+ * Whether the field is read-only
354
+ */
355
+ readOnly?: boolean;
356
+ /**
357
+ * Orientation of the field
358
+ */
359
+ orientation?: 'horizontal' | 'vertical';
389
360
  /**
390
361
  * React children
391
362
  */
@@ -436,7 +407,6 @@ type WithFields<TFormProps extends FormProps$1<any, any, any, any, any>, FieldDe
436
407
  submit?: SubmitButtonProps;
437
408
  } & ExtraOverrides;
438
409
  } : never;
439
- type StepFormChildren<FieldDefs, TSteps extends StepsOptions<any> = StepsOptions<any>, TFieldValues extends FieldValues = FieldValues, TContext extends object = object> = MaybeRenderProp<StepFormRenderContext<TSteps, TFieldValues, TContext, MergeFieldProps<FieldDefs extends never ? DefaultFields : ShallowMerge<DefaultFields, FieldDefs>, TFieldValues>>>;
440
410
 
441
411
  interface ArrayFieldButtonProps extends ButtonProps$1 {
442
412
  }
@@ -554,27 +524,33 @@ type FormType<FieldDefs, ExtraProps = object, ExtraFieldProps extends object = o
554
524
  };
555
525
  declare function createForm<FieldDefs, TGetBaseField extends GetBaseField<any> = GetBaseField<any>>({ resolver, fieldResolver, fields, getBaseField, }?: CreateFormProps<FieldDefs, TGetBaseField>): FormType<FieldDefs, object, TGetBaseField extends GetBaseField<infer ExtraFieldProps extends object> ? ExtraFieldProps : object, object>;
556
526
 
557
- interface UseFormProps<TFieldValues extends FieldValues, TContext extends object> extends UseFormProps$1<TFieldValues, TContext> {
527
+ interface UseFormProps<TFieldValues extends FieldValues, TContext = any, TTransformedValues = TFieldValues> extends UseFormProps$1<TFieldValues, TContext, TTransformedValues> {
528
+ schema?: StandardSchemaV1<TFieldValues, TTransformedValues>;
529
+ onSubmit: SubmitHandler<TTransformedValues>;
530
+ onInvalid?: SubmitErrorHandler<FieldValues>;
558
531
  }
559
- interface UseFormReturn$1<TFieldValues extends FieldValues, TContext extends object> extends UseFormReturn$2<TFieldValues, TContext> {
532
+ interface UseFormReturn$1<TFieldValues extends FieldValues = FieldValues, TContext = any, TTransformedValues = TFieldValues> extends UseFormReturn$2<TFieldValues, TContext, TTransformedValues> {
560
533
  Form: React.FC<Omit<FormProps<TFieldValues, TContext>, 'form'>>;
561
534
  Field: React.FC<FieldProps<TFieldValues>>;
562
535
  DisplayIf: React.FC<DisplayIfProps<TFieldValues>>;
563
536
  ArrayField: React.FC<ArrayFieldProps<TFieldValues> & React.RefAttributes<UseArrayFieldReturn>>;
564
537
  ObjectField: React.FC<ObjectFieldProps<TFieldValues>>;
565
538
  }
566
- declare function useForm<TFieldValues extends FieldValues, TContext extends object>(props?: UseFormProps<TFieldValues, TContext>): UseFormReturn$1<TFieldValues, TContext>;
567
- interface FormProps<TFieldValues extends FieldValues = FieldValues, TContext extends object = object> extends HTMLChakraProps<'form'> {
539
+ declare function useForm<TFieldValues extends FieldValues = FieldValues, TContext = any, TTransformedValues = TFieldValues>(props: UseFormProps<TFieldValues, TContext, TTransformedValues>): UseFormReturn$1<TFieldValues, TContext, TTransformedValues>;
540
+ interface FormProps<TFieldValues extends FieldValues = FieldValues, TContext = any, TTransformedValues = TFieldValues> extends HTMLChakraProps<'form'> {
568
541
  children: React.ReactNode;
569
- form: ReturnType<typeof useForm$1<TFieldValues, TContext>>;
570
- onSubmit: (data: any) => void;
571
- onError?: (errors: any) => void;
542
+ form: ReturnType<typeof useForm$1<TFieldValues, TContext, TTransformedValues>>;
572
543
  }
573
544
  interface UseZodFormProps<TSchema extends z.AnyZodObject | z.ZodEffects<z.AnyZodObject> = z.AnyZodObject, TFieldValues extends InferObjectSchema<TSchema> = InferObjectSchema<TSchema>, TContext extends object = object> extends Omit<UseFormProps$1<TFieldValues, TContext>, 'defaultValues'> {
574
545
  schema: TSchema;
575
- defaultValues?: DefaultValues<InferObjectSchema<TSchema>> | AsyncDefaultValues<InferObjectSchema<TSchema>>;
546
+ onSubmit: SubmitHandler<TFieldValues>;
547
+ onInvalid?: SubmitErrorHandler<FieldValues>;
548
+ defaultValues?: DefaultValues<TFieldValues> | AsyncDefaultValues<TFieldValues>;
576
549
  }
577
- declare function useZodForm<TSchema extends z.AnyZodObject | z.ZodEffects<z.AnyZodObject> = z.AnyZodObject, TFieldValues extends InferObjectSchema<TSchema> = InferObjectSchema<TSchema>, TContext extends object = object>(props: UseZodFormProps<TSchema, TFieldValues, TContext>): UseFormReturn$1<InferObjectSchema<TSchema>, TContext>;
550
+ /**
551
+ * @deprecated Use useForm instead, which supports standard schema out of the box.
552
+ */
553
+ declare function useZodForm<TSchema extends z.AnyZodObject | z.ZodEffects<z.AnyZodObject> = z.AnyZodObject, TFieldValues extends InferObjectSchema<TSchema> = InferObjectSchema<TSchema>, TContext extends object = object>(props: UseZodFormProps<TSchema, TFieldValues, TContext>): UseFormReturn$1<TFieldValues, TContext, TFieldValues>;
578
554
  type InferObjectSchema<T extends z.ZodTypeAny | z.ZodEffects<z.ZodTypeAny>> = T extends z.ZodEffects<infer TSchema> ? z.infer<TSchema> : z.infer<T>;
579
555
  type AsyncDefaultValues<TFieldValues> = (payload?: unknown) => Promise<TFieldValues>;
580
556
 
@@ -649,11 +625,12 @@ declare const useFormContext: <TFieldValues extends FieldValues = FieldValues, T
649
625
  formState: react_hook_form.FormState<TFieldValues>;
650
626
  resetField: react_hook_form.UseFormResetField<TFieldValues>;
651
627
  reset: react_hook_form.UseFormReset<TFieldValues>;
652
- handleSubmit: react_hook_form.UseFormHandleSubmit<TFieldValues, undefined>;
628
+ handleSubmit: react_hook_form.UseFormHandleSubmit<TFieldValues, TFieldValues>;
653
629
  unregister: react_hook_form.UseFormUnregister<TFieldValues>;
654
- control: react_hook_form.Control<TFieldValues, TContext>;
630
+ control: react_hook_form.Control<TFieldValues, TContext, TFieldValues>;
655
631
  register: react_hook_form.UseFormRegister<TFieldValues>;
656
632
  setFocus: react_hook_form.UseFormSetFocus<TFieldValues>;
633
+ subscribe: react_hook_form.UseFromSubscribe<TFieldValues>;
657
634
  };
658
635
  type UseFormReturn<TFieldValues extends FieldValues = FieldValues, TContext = any, TSchema = any> = ReturnType<typeof useFormContext<TFieldValues, TContext, TSchema>>;
659
636
  declare const FormProvider: <TFieldValues extends FieldValues = FieldValues, TContext = any, TSchema = any>(props: FormProviderProps<TFieldValues, TContext, TSchema>) => react_jsx_runtime.JSX.Element;
@@ -707,7 +684,7 @@ interface ControlProps {
707
684
  * @param options.isControlled Set this to true if this is a controlled field.
708
685
  * @param options.hideLabel Hide the field label, for example for the checkbox field.
709
686
  */
710
- declare const createField: <TType = unknown, TProps extends object = object>(component: ForwardRefRenderFunction<TType, PropsWithoutRef<TProps & ControlProps>>, options?: CreateFieldOptions) => React__default.FC<Omit<BaseFieldProps<react_hook_form.FieldValues, string>, keyof TProps> & TProps>;
687
+ declare const createField: <TType = unknown, TProps extends object = object>(component: ForwardRefRenderFunction<TType, PropsWithoutRef<TProps & ControlProps>>, options?: CreateFieldOptions) => React__default.ForwardRefExoticComponent<Omit<BaseFieldProps<react_hook_form.FieldValues, string>, keyof TProps> & TProps & React__default.RefAttributes<TType>>;
711
688
 
712
689
  /**
713
690
  * Form component.
@@ -716,4 +693,4 @@ declare const createField: <TType = unknown, TProps extends object = object>(com
716
693
  */
717
694
  declare const Form: FormType<unknown, object, any, object>;
718
695
 
719
- export { ArrayField, ArrayFieldAddButton, type ArrayFieldButtonProps, ArrayFieldContainer, type ArrayFieldContainerProps, type ArrayFieldOptions, type ArrayFieldPath, type ArrayFieldProps, ArrayFieldProvider, ArrayFieldRemoveButton, ArrayFieldRow, ArrayFieldRowContainer, ArrayFieldRowFields, type ArrayFieldRowFieldsProps, ArrayFieldRowProvider, ArrayFieldRows, type ArrayFieldRowsProps, AutoFields, BaseField, type BaseFieldProps, Form$1 as BaseForm, type CreateFieldOptions, type CreateFormProps, type DefaultFieldOverrides, type DefaultFields, DisplayField, type DisplayFieldProps, DisplayIf, type DisplayIfProps, Field, type FieldOption, type FieldOptions, type FieldOverrides, type FieldProps, type FieldResolver, type FieldRules, type FieldsProps, FieldsProvider, Form, type FormChildren, type FormComponent, FormLayout, type FormLayoutProps, FormLegend, type FormProps$1 as FormProps, FormProvider, type FormRenderContext, type FormType, FormValue, type GetBaseField, type GetFieldResolver, InputField, type InputFieldProps, type MergeFieldProps, ObjectField, type ObjectFieldProps, type ObjectSchema, type ShallowMerge, type StepFormChildren, SubmitButton, type SubmitButtonProps, TextareaField, type TextareaFieldProps, type UseArrayFieldReturn, type UseArrayFieldRowProps, type UseArrayFieldRowReturn, type UseFormProps, type UseFormReturn$1 as UseFormReturn, type UseZodFormProps, type ValueOf, WatchField, type WatchFieldProps, type WithFields, createField, createForm, defaultFieldTypes, objectFieldResolver, useArrayField, useArrayFieldAddButton, useArrayFieldContext, useArrayFieldRemoveButton, useArrayFieldRow, useArrayFieldRowContext, useBaseField, useField, useForm, useFormContext, useZodForm };
696
+ export { ArrayField, ArrayFieldAddButton, type ArrayFieldButtonProps, ArrayFieldContainer, type ArrayFieldContainerProps, type ArrayFieldOptions, type ArrayFieldPath, type ArrayFieldProps, ArrayFieldProvider, ArrayFieldRemoveButton, ArrayFieldRow, ArrayFieldRowContainer, ArrayFieldRowFields, type ArrayFieldRowFieldsProps, ArrayFieldRowProvider, ArrayFieldRows, type ArrayFieldRowsProps, AutoFields, BaseField, type BaseFieldProps, Form$1 as BaseForm, type CreateFieldOptions, type CreateFormProps, type DefaultFieldOverrides, type DefaultFields, DisplayField, type DisplayFieldProps, DisplayIf, type DisplayIfProps, Field, type FieldOption, type FieldOptions, type FieldOverrides, type FieldProps, type FieldResolver, type FieldRules, type FieldsProps, FieldsProvider, Form, type FormChildren, type FormComponent, FormLayout, type FormLayoutProps, FormLegend, type FormProps$1 as FormProps, FormProvider, type FormRenderContext, type FormType, FormValue, type GetBaseField, type GetFieldResolver, InputField, type InputFieldProps, type MergeFieldProps, ObjectField, type ObjectFieldProps, type ObjectSchema, type ShallowMerge, SubmitButton, type SubmitButtonProps, TextareaField, type TextareaFieldProps, type UseArrayFieldReturn, type UseArrayFieldRowProps, type UseArrayFieldRowReturn, type UseFormProps, type UseFormReturn$1 as UseFormReturn, type UseZodFormProps, type ValueOf, WatchField, type WatchFieldProps, type WithFields, createField, createForm, defaultFieldTypes, objectFieldResolver, useArrayField, useArrayFieldAddButton, useArrayFieldContext, useArrayFieldRemoveButton, useArrayFieldRow, useArrayFieldRowContext, useBaseField, useField, useForm, useFormContext, useZodForm };
package/dist/index.d.ts CHANGED
@@ -4,7 +4,7 @@ import { SimpleGridProps, RecipeProps, InputProps, SystemStyleObject, TextareaPr
4
4
  import { MaybeRenderProp } from '@saas-ui/core/utils';
5
5
  import * as react_hook_form from 'react-hook-form';
6
6
  import { FieldValues, FieldPath, UseFormReturn as UseFormReturn$2, UseFieldArrayReturn, UseFormProps as UseFormProps$1, WatchObserver, SubmitHandler, SubmitErrorHandler, ResolverOptions, ResolverResult, RegisterOptions, useForm as useForm$1, DefaultValues, FormProviderProps as FormProviderProps$1 } from 'react-hook-form';
7
- export { ArrayPath, BatchFieldArrayUpdate, BrowserNativeObject, ChangeHandler, Control, Controller, ControllerFieldState, ControllerProps, ControllerRenderProps, CriteriaMode, CustomElement, DeepMap, DeepPartial, DeepPartialSkipArrayKey, DeepRequired, DefaultValues, DelayCallback, EmptyObject, ErrorOption, EventType, ExtractObjects, FieldArray, FieldArrayMethodProps, FieldArrayPath, FieldArrayPathValue, FieldArrayWithId, Field as FieldDef, FieldElement, FieldError, FieldErrors, FieldErrorsImpl, FieldName, FieldNamesMarkedBoolean, FieldPath, FieldPathByValue, FieldPathValue, FieldPathValues, FieldRefs, FieldValue, FieldValues, FormProviderProps, FormState, FormStateProxy, FormStateSubjectRef, GetIsDirty, InternalFieldErrors, InternalFieldName, InternalNameSet, IsAny, IsFlatObject, KeepStateOptions, LiteralUnion, Message, Mode, MultipleFieldErrors, Names, NativeFieldValue, NestedValue, NonUndefined, Noop, Primitive, ReadFormState, Ref, RefCallBack, RegisterOptions, Resolver, ResolverError, ResolverOptions, ResolverResult, ResolverSuccess, SetFieldValue, SetValueConfig, Subjects, SubmitErrorHandler, SubmitHandler, TriggerConfig, UnpackNestedValue, UseControllerProps, UseControllerReturn, UseFieldArrayProps, UseFieldArrayReturn, UseFormClearErrors, UseFormGetValues, UseFormHandleSubmit, UseFormRegister, UseFormRegisterReturn, UseFormReset, UseFormResetField, UseFormSetError, UseFormSetFocus, UseFormSetValue, UseFormStateProps, UseFormStateReturn, UseFormTrigger, UseFormUnregister, UseFormWatch, UseWatchProps, Validate, ValidateResult, ValidationMode, ValidationRule, ValidationValue, ValidationValueMessage, WatchInternal, WatchObserver, appendErrors, useController, useFieldArray, useFormState, useWatch } from 'react-hook-form';
7
+ export { ArrayPath, BatchFieldArrayUpdate, BrowserNativeObject, ChangeHandler, Control, Controller, ControllerFieldState, ControllerProps, ControllerRenderProps, CriteriaMode, CustomElement, DeepMap, DeepPartial, DeepPartialSkipArrayKey, DeepRequired, DefaultValues, DelayCallback, EmptyObject, ErrorOption, EventType, ExtractObjects, FieldArray, FieldArrayMethodProps, FieldArrayPath, FieldArrayPathValue, FieldArrayWithId, Field as FieldDef, FieldElement, FieldError, FieldErrors, FieldErrorsImpl, FieldName, FieldNamesMarkedBoolean, FieldPath, FieldPathByValue, FieldPathValue, FieldPathValues, FieldRefs, FieldValue, FieldValues, FormProviderProps, FormState, FormStateProxy, FormStateSubjectRef, GetIsDirty, InternalFieldErrors, InternalFieldName, InternalNameSet, IsAny, IsFlatObject, KeepStateOptions, LiteralUnion, Message, Mode, MultipleFieldErrors, Names, NativeFieldValue, NestedValue, NonUndefined, Noop, Primitive, ReadFormState, Ref, RefCallBack, RegisterOptions, Resolver, ResolverError, ResolverOptions, ResolverResult, ResolverSuccess, SetFieldValue, SetValueConfig, Subjects, SubmitErrorHandler, SubmitHandler, TriggerConfig, UseControllerProps, UseControllerReturn, UseFieldArrayProps, UseFieldArrayReturn, UseFormClearErrors, UseFormGetValues, UseFormHandleSubmit, UseFormRegister, UseFormRegisterReturn, UseFormReset, UseFormResetField, UseFormSetError, UseFormSetFocus, UseFormSetValue, UseFormStateProps, UseFormStateReturn, UseFormTrigger, UseFormUnregister, UseFormWatch, UseWatchProps, Validate, ValidateResult, ValidationMode, ValidationRule, ValidationValue, ValidationValueMessage, WatchInternal, WatchObserver, appendErrors, useController, useFieldArray, useFormState, useWatch } from 'react-hook-form';
8
8
  import { CheckboxProps } from '@saas-ui/react/checkbox';
9
9
  import { NumberInputProps } from '@saas-ui/react/number-input';
10
10
  import { PasswordInputProps } from '@saas-ui/react/password-input';
@@ -13,8 +13,9 @@ import { RadioGroup } from '@saas-ui/react/radio-group';
13
13
  import { Select } from '@saas-ui/react/select';
14
14
  import { SwitchProps } from '@saas-ui/react/switch';
15
15
  import * as react_jsx_runtime from 'react/jsx-runtime';
16
- import { UseStepperReturn } from '@saas-ui/core';
17
16
  import { ButtonProps } from '@saas-ui/react/button';
17
+ import { StandardSchemaV1 } from '@standard-schema/spec';
18
+ export { StandardSchemaV1 } from '@standard-schema/spec';
18
19
  import { z } from 'zod';
19
20
 
20
21
  interface FormLayoutOptions {
@@ -38,13 +39,13 @@ interface InputFieldProps extends InputProps {
38
39
  startElement?: React__default.ReactNode;
39
40
  endElement?: React__default.ReactNode;
40
41
  }
41
- declare const InputField: React__default.FC<Omit<BaseFieldProps<react_hook_form.FieldValues, string>, keyof InputFieldProps> & InputFieldProps>;
42
+ declare const InputField: React__default.ForwardRefExoticComponent<Omit<BaseFieldProps<react_hook_form.FieldValues, string>, keyof InputFieldProps> & InputFieldProps & React__default.RefAttributes<HTMLInputElement>>;
42
43
  interface NumberInputFieldProps extends NumberInputProps {
43
44
  type: 'number';
44
45
  }
45
46
  interface TextareaFieldProps extends TextareaProps {
46
47
  }
47
- declare const TextareaField: React__default.FC<Omit<BaseFieldProps<react_hook_form.FieldValues, string>, keyof TextareaFieldProps> & TextareaFieldProps>;
48
+ declare const TextareaField: React__default.ForwardRefExoticComponent<Omit<BaseFieldProps<react_hook_form.FieldValues, string>, keyof TextareaFieldProps> & TextareaFieldProps & React__default.RefAttributes<HTMLTextAreaElement>>;
48
49
  interface SwitchFieldProps extends SwitchProps {
49
50
  type: 'switch';
50
51
  }
@@ -57,9 +58,10 @@ interface SelectFieldProps<Multiple extends boolean = boolean> extends Omit<Sele
57
58
  triggerProps?: Select.TriggerProps;
58
59
  contentProps?: Select.ContentProps;
59
60
  }
60
- interface CheckboxFieldProps extends CheckboxProps {
61
+ interface CheckboxFieldProps extends Omit<CheckboxProps, 'value'> {
61
62
  type: 'checkbox';
62
63
  label?: string;
64
+ value?: boolean;
63
65
  }
64
66
  interface RadioFieldProps extends RadioGroup.RootProps {
65
67
  type: 'radio';
@@ -75,19 +77,19 @@ interface PinFieldProps extends Omit<PinInputProps, 'type' | 'value' | 'onChange
75
77
  onChange?: (value: string) => void;
76
78
  }
77
79
  declare const defaultFieldTypes: {
78
- text: React__default.FC<Omit<BaseFieldProps<react_hook_form.FieldValues, string>, keyof InputFieldProps> & InputFieldProps>;
79
- email: React__default.FC<Omit<BaseFieldProps<react_hook_form.FieldValues, string>, keyof InputFieldProps> & InputFieldProps>;
80
- url: React__default.FC<Omit<BaseFieldProps<react_hook_form.FieldValues, string>, keyof InputFieldProps> & InputFieldProps>;
81
- phone: React__default.FC<Omit<BaseFieldProps<react_hook_form.FieldValues, string>, keyof InputFieldProps> & InputFieldProps>;
82
- time: React__default.FC<Omit<BaseFieldProps<react_hook_form.FieldValues, string>, keyof InputFieldProps> & InputFieldProps>;
83
- number: React__default.FC<Omit<BaseFieldProps<react_hook_form.FieldValues, string>, keyof NumberInputFieldProps> & NumberInputFieldProps>;
84
- pin: React__default.FC<Omit<BaseFieldProps<react_hook_form.FieldValues, string>, keyof PinFieldProps> & PinFieldProps>;
85
- checkbox: React__default.FC<Omit<BaseFieldProps<react_hook_form.FieldValues, string>, keyof CheckboxFieldProps> & CheckboxFieldProps>;
86
- radio: React__default.FC<Omit<BaseFieldProps<react_hook_form.FieldValues, string>, keyof RadioFieldProps> & RadioFieldProps>;
87
- password: React__default.FC<Omit<BaseFieldProps<react_hook_form.FieldValues, string>, keyof PasswordInputProps> & PasswordInputProps>;
88
- select: React__default.FC<Omit<BaseFieldProps<react_hook_form.FieldValues, string>, keyof SelectFieldProps<boolean>> & SelectFieldProps<boolean>>;
89
- switch: React__default.FC<Omit<BaseFieldProps<react_hook_form.FieldValues, string>, keyof SwitchFieldProps> & SwitchFieldProps>;
90
- textarea: React__default.FC<Omit<BaseFieldProps<react_hook_form.FieldValues, string>, keyof TextareaFieldProps> & TextareaFieldProps>;
80
+ text: React__default.ForwardRefExoticComponent<Omit<BaseFieldProps<react_hook_form.FieldValues, string>, keyof InputFieldProps> & InputFieldProps & React__default.RefAttributes<HTMLInputElement>>;
81
+ email: React__default.ForwardRefExoticComponent<Omit<BaseFieldProps<react_hook_form.FieldValues, string>, keyof InputFieldProps> & InputFieldProps & React__default.RefAttributes<HTMLInputElement>>;
82
+ url: React__default.ForwardRefExoticComponent<Omit<BaseFieldProps<react_hook_form.FieldValues, string>, keyof InputFieldProps> & InputFieldProps & React__default.RefAttributes<HTMLInputElement>>;
83
+ phone: React__default.ForwardRefExoticComponent<Omit<BaseFieldProps<react_hook_form.FieldValues, string>, keyof InputFieldProps> & InputFieldProps & React__default.RefAttributes<HTMLInputElement>>;
84
+ time: React__default.ForwardRefExoticComponent<Omit<BaseFieldProps<react_hook_form.FieldValues, string>, keyof InputFieldProps> & InputFieldProps & React__default.RefAttributes<HTMLInputElement>>;
85
+ number: React__default.ForwardRefExoticComponent<Omit<BaseFieldProps<react_hook_form.FieldValues, string>, keyof NumberInputFieldProps> & NumberInputFieldProps & React__default.RefAttributes<HTMLInputElement>>;
86
+ pin: React__default.ForwardRefExoticComponent<Omit<BaseFieldProps<react_hook_form.FieldValues, string>, keyof PinFieldProps> & PinFieldProps & React__default.RefAttributes<HTMLInputElement>>;
87
+ checkbox: React__default.ForwardRefExoticComponent<Omit<BaseFieldProps<react_hook_form.FieldValues, string>, keyof CheckboxFieldProps> & CheckboxFieldProps & React__default.RefAttributes<HTMLInputElement>>;
88
+ radio: React__default.ForwardRefExoticComponent<Omit<BaseFieldProps<react_hook_form.FieldValues, string>, keyof RadioFieldProps> & RadioFieldProps & React__default.RefAttributes<HTMLInputElement>>;
89
+ password: React__default.ForwardRefExoticComponent<Omit<BaseFieldProps<react_hook_form.FieldValues, string>, keyof PasswordInputProps> & PasswordInputProps & React__default.RefAttributes<HTMLInputElement>>;
90
+ select: React__default.ForwardRefExoticComponent<Omit<BaseFieldProps<react_hook_form.FieldValues, string>, keyof SelectFieldProps<boolean>> & SelectFieldProps<boolean> & React__default.RefAttributes<HTMLDivElement>>;
91
+ switch: React__default.ForwardRefExoticComponent<Omit<BaseFieldProps<react_hook_form.FieldValues, string>, keyof SwitchFieldProps> & SwitchFieldProps & React__default.RefAttributes<HTMLInputElement>>;
92
+ textarea: React__default.ForwardRefExoticComponent<Omit<BaseFieldProps<react_hook_form.FieldValues, string>, keyof TextareaFieldProps> & TextareaFieldProps & React__default.RefAttributes<HTMLTextAreaElement>>;
91
93
  };
92
94
  type DefaultFields = typeof defaultFieldTypes;
93
95
 
@@ -272,57 +274,6 @@ type FormComponent = (<TSchema = unknown, TFieldValues extends FieldValues = Fie
272
274
  };
273
275
  type GetResolver = <TFieldValues extends FieldValues, TContext extends object>(schema: unknown) => (values: TFieldValues, context: TContext | undefined, options: ResolverOptions<TFieldValues>) => ResolverResult<TFieldValues> | Promise<ResolverResult<TFieldValues>>;
274
276
 
275
- type FormStepSubmitHandler<TFieldValues extends FieldValues = FieldValues> = (data: TFieldValues, stepper: UseStepperReturn) => Promise<void>;
276
- type StepName<T extends {
277
- [k: number]: {
278
- readonly name: string;
279
- };
280
- }> = T[number]['name'];
281
- interface StepFormRenderContext<TSteps extends StepsOptions<any> = StepsOptions<any>, TFieldValues extends FieldValues = FieldValues, TContext extends object = object, TFieldTypes = FieldProps<TFieldValues>> extends UseStepFormReturn<TFieldValues> {
282
- Field: React$1.FC<TFieldTypes & React$1.RefAttributes<FocusableElement>>;
283
- FormStep: React$1.FC<FormStepProps<StepName<TSteps>>>;
284
- DisplayIf: React$1.FC<DisplayIfProps<TFieldValues>>;
285
- ArrayField: React$1.FC<ArrayFieldProps<TFieldValues> & React$1.RefAttributes<UseArrayFieldReturn>>;
286
- ObjectField: React$1.FC<ObjectFieldProps<TFieldValues>>;
287
- }
288
- interface UseStepFormReturn<TFieldValues extends FieldValues = FieldValues> extends UseStepperReturn {
289
- getFormProps(): {
290
- onSubmit: SubmitHandler<TFieldValues>;
291
- schema?: any;
292
- resolver?: any;
293
- };
294
- updateStep(step: any): void;
295
- steps: Record<string, any>;
296
- }
297
-
298
- type StepsOptions<TSchema, TName extends string = string> = {
299
- /**
300
- * The step name
301
- */
302
- name: TName;
303
- /**
304
- * Schema
305
- */
306
- schema?: TSchema;
307
- }[];
308
- interface FormStepOptions<TName extends string = string> {
309
- /**
310
- * The step name
311
- */
312
- name: TName;
313
- /**
314
- * Schema
315
- */
316
- schema?: any;
317
- /**
318
- * Hook Form Resolver
319
- */
320
- resolver?: any;
321
- }
322
- interface FormStepProps<TName extends string = string> extends FormStepOptions<TName>, Omit<HTMLChakraProps<'div'>, 'onSubmit'> {
323
- onSubmit?: FormStepSubmitHandler;
324
- }
325
-
326
277
  interface SubmitButtonProps extends ButtonProps {
327
278
  /**
328
279
  * Disable the submit button if the form is untouched.
@@ -386,6 +337,26 @@ interface BaseFieldProps<TFieldValues extends FieldValues = FieldValues, TName e
386
337
  * The input placeholder
387
338
  */
388
339
  placeholder?: string;
340
+ /**
341
+ * Whether the field is invalid
342
+ */
343
+ invalid?: boolean;
344
+ /**
345
+ * Whether the field is required
346
+ */
347
+ required?: boolean;
348
+ /**
349
+ * Whether the field is disabled
350
+ */
351
+ disabled?: boolean;
352
+ /**
353
+ * Whether the field is read-only
354
+ */
355
+ readOnly?: boolean;
356
+ /**
357
+ * Orientation of the field
358
+ */
359
+ orientation?: 'horizontal' | 'vertical';
389
360
  /**
390
361
  * React children
391
362
  */
@@ -436,7 +407,6 @@ type WithFields<TFormProps extends FormProps$1<any, any, any, any, any>, FieldDe
436
407
  submit?: SubmitButtonProps;
437
408
  } & ExtraOverrides;
438
409
  } : never;
439
- type StepFormChildren<FieldDefs, TSteps extends StepsOptions<any> = StepsOptions<any>, TFieldValues extends FieldValues = FieldValues, TContext extends object = object> = MaybeRenderProp<StepFormRenderContext<TSteps, TFieldValues, TContext, MergeFieldProps<FieldDefs extends never ? DefaultFields : ShallowMerge<DefaultFields, FieldDefs>, TFieldValues>>>;
440
410
 
441
411
  interface ArrayFieldButtonProps extends ButtonProps$1 {
442
412
  }
@@ -554,27 +524,33 @@ type FormType<FieldDefs, ExtraProps = object, ExtraFieldProps extends object = o
554
524
  };
555
525
  declare function createForm<FieldDefs, TGetBaseField extends GetBaseField<any> = GetBaseField<any>>({ resolver, fieldResolver, fields, getBaseField, }?: CreateFormProps<FieldDefs, TGetBaseField>): FormType<FieldDefs, object, TGetBaseField extends GetBaseField<infer ExtraFieldProps extends object> ? ExtraFieldProps : object, object>;
556
526
 
557
- interface UseFormProps<TFieldValues extends FieldValues, TContext extends object> extends UseFormProps$1<TFieldValues, TContext> {
527
+ interface UseFormProps<TFieldValues extends FieldValues, TContext = any, TTransformedValues = TFieldValues> extends UseFormProps$1<TFieldValues, TContext, TTransformedValues> {
528
+ schema?: StandardSchemaV1<TFieldValues, TTransformedValues>;
529
+ onSubmit: SubmitHandler<TTransformedValues>;
530
+ onInvalid?: SubmitErrorHandler<FieldValues>;
558
531
  }
559
- interface UseFormReturn$1<TFieldValues extends FieldValues, TContext extends object> extends UseFormReturn$2<TFieldValues, TContext> {
532
+ interface UseFormReturn$1<TFieldValues extends FieldValues = FieldValues, TContext = any, TTransformedValues = TFieldValues> extends UseFormReturn$2<TFieldValues, TContext, TTransformedValues> {
560
533
  Form: React.FC<Omit<FormProps<TFieldValues, TContext>, 'form'>>;
561
534
  Field: React.FC<FieldProps<TFieldValues>>;
562
535
  DisplayIf: React.FC<DisplayIfProps<TFieldValues>>;
563
536
  ArrayField: React.FC<ArrayFieldProps<TFieldValues> & React.RefAttributes<UseArrayFieldReturn>>;
564
537
  ObjectField: React.FC<ObjectFieldProps<TFieldValues>>;
565
538
  }
566
- declare function useForm<TFieldValues extends FieldValues, TContext extends object>(props?: UseFormProps<TFieldValues, TContext>): UseFormReturn$1<TFieldValues, TContext>;
567
- interface FormProps<TFieldValues extends FieldValues = FieldValues, TContext extends object = object> extends HTMLChakraProps<'form'> {
539
+ declare function useForm<TFieldValues extends FieldValues = FieldValues, TContext = any, TTransformedValues = TFieldValues>(props: UseFormProps<TFieldValues, TContext, TTransformedValues>): UseFormReturn$1<TFieldValues, TContext, TTransformedValues>;
540
+ interface FormProps<TFieldValues extends FieldValues = FieldValues, TContext = any, TTransformedValues = TFieldValues> extends HTMLChakraProps<'form'> {
568
541
  children: React.ReactNode;
569
- form: ReturnType<typeof useForm$1<TFieldValues, TContext>>;
570
- onSubmit: (data: any) => void;
571
- onError?: (errors: any) => void;
542
+ form: ReturnType<typeof useForm$1<TFieldValues, TContext, TTransformedValues>>;
572
543
  }
573
544
  interface UseZodFormProps<TSchema extends z.AnyZodObject | z.ZodEffects<z.AnyZodObject> = z.AnyZodObject, TFieldValues extends InferObjectSchema<TSchema> = InferObjectSchema<TSchema>, TContext extends object = object> extends Omit<UseFormProps$1<TFieldValues, TContext>, 'defaultValues'> {
574
545
  schema: TSchema;
575
- defaultValues?: DefaultValues<InferObjectSchema<TSchema>> | AsyncDefaultValues<InferObjectSchema<TSchema>>;
546
+ onSubmit: SubmitHandler<TFieldValues>;
547
+ onInvalid?: SubmitErrorHandler<FieldValues>;
548
+ defaultValues?: DefaultValues<TFieldValues> | AsyncDefaultValues<TFieldValues>;
576
549
  }
577
- declare function useZodForm<TSchema extends z.AnyZodObject | z.ZodEffects<z.AnyZodObject> = z.AnyZodObject, TFieldValues extends InferObjectSchema<TSchema> = InferObjectSchema<TSchema>, TContext extends object = object>(props: UseZodFormProps<TSchema, TFieldValues, TContext>): UseFormReturn$1<InferObjectSchema<TSchema>, TContext>;
550
+ /**
551
+ * @deprecated Use useForm instead, which supports standard schema out of the box.
552
+ */
553
+ declare function useZodForm<TSchema extends z.AnyZodObject | z.ZodEffects<z.AnyZodObject> = z.AnyZodObject, TFieldValues extends InferObjectSchema<TSchema> = InferObjectSchema<TSchema>, TContext extends object = object>(props: UseZodFormProps<TSchema, TFieldValues, TContext>): UseFormReturn$1<TFieldValues, TContext, TFieldValues>;
578
554
  type InferObjectSchema<T extends z.ZodTypeAny | z.ZodEffects<z.ZodTypeAny>> = T extends z.ZodEffects<infer TSchema> ? z.infer<TSchema> : z.infer<T>;
579
555
  type AsyncDefaultValues<TFieldValues> = (payload?: unknown) => Promise<TFieldValues>;
580
556
 
@@ -649,11 +625,12 @@ declare const useFormContext: <TFieldValues extends FieldValues = FieldValues, T
649
625
  formState: react_hook_form.FormState<TFieldValues>;
650
626
  resetField: react_hook_form.UseFormResetField<TFieldValues>;
651
627
  reset: react_hook_form.UseFormReset<TFieldValues>;
652
- handleSubmit: react_hook_form.UseFormHandleSubmit<TFieldValues, undefined>;
628
+ handleSubmit: react_hook_form.UseFormHandleSubmit<TFieldValues, TFieldValues>;
653
629
  unregister: react_hook_form.UseFormUnregister<TFieldValues>;
654
- control: react_hook_form.Control<TFieldValues, TContext>;
630
+ control: react_hook_form.Control<TFieldValues, TContext, TFieldValues>;
655
631
  register: react_hook_form.UseFormRegister<TFieldValues>;
656
632
  setFocus: react_hook_form.UseFormSetFocus<TFieldValues>;
633
+ subscribe: react_hook_form.UseFromSubscribe<TFieldValues>;
657
634
  };
658
635
  type UseFormReturn<TFieldValues extends FieldValues = FieldValues, TContext = any, TSchema = any> = ReturnType<typeof useFormContext<TFieldValues, TContext, TSchema>>;
659
636
  declare const FormProvider: <TFieldValues extends FieldValues = FieldValues, TContext = any, TSchema = any>(props: FormProviderProps<TFieldValues, TContext, TSchema>) => react_jsx_runtime.JSX.Element;
@@ -707,7 +684,7 @@ interface ControlProps {
707
684
  * @param options.isControlled Set this to true if this is a controlled field.
708
685
  * @param options.hideLabel Hide the field label, for example for the checkbox field.
709
686
  */
710
- declare const createField: <TType = unknown, TProps extends object = object>(component: ForwardRefRenderFunction<TType, PropsWithoutRef<TProps & ControlProps>>, options?: CreateFieldOptions) => React__default.FC<Omit<BaseFieldProps<react_hook_form.FieldValues, string>, keyof TProps> & TProps>;
687
+ declare const createField: <TType = unknown, TProps extends object = object>(component: ForwardRefRenderFunction<TType, PropsWithoutRef<TProps & ControlProps>>, options?: CreateFieldOptions) => React__default.ForwardRefExoticComponent<Omit<BaseFieldProps<react_hook_form.FieldValues, string>, keyof TProps> & TProps & React__default.RefAttributes<TType>>;
711
688
 
712
689
  /**
713
690
  * Form component.
@@ -716,4 +693,4 @@ declare const createField: <TType = unknown, TProps extends object = object>(com
716
693
  */
717
694
  declare const Form: FormType<unknown, object, any, object>;
718
695
 
719
- export { ArrayField, ArrayFieldAddButton, type ArrayFieldButtonProps, ArrayFieldContainer, type ArrayFieldContainerProps, type ArrayFieldOptions, type ArrayFieldPath, type ArrayFieldProps, ArrayFieldProvider, ArrayFieldRemoveButton, ArrayFieldRow, ArrayFieldRowContainer, ArrayFieldRowFields, type ArrayFieldRowFieldsProps, ArrayFieldRowProvider, ArrayFieldRows, type ArrayFieldRowsProps, AutoFields, BaseField, type BaseFieldProps, Form$1 as BaseForm, type CreateFieldOptions, type CreateFormProps, type DefaultFieldOverrides, type DefaultFields, DisplayField, type DisplayFieldProps, DisplayIf, type DisplayIfProps, Field, type FieldOption, type FieldOptions, type FieldOverrides, type FieldProps, type FieldResolver, type FieldRules, type FieldsProps, FieldsProvider, Form, type FormChildren, type FormComponent, FormLayout, type FormLayoutProps, FormLegend, type FormProps$1 as FormProps, FormProvider, type FormRenderContext, type FormType, FormValue, type GetBaseField, type GetFieldResolver, InputField, type InputFieldProps, type MergeFieldProps, ObjectField, type ObjectFieldProps, type ObjectSchema, type ShallowMerge, type StepFormChildren, SubmitButton, type SubmitButtonProps, TextareaField, type TextareaFieldProps, type UseArrayFieldReturn, type UseArrayFieldRowProps, type UseArrayFieldRowReturn, type UseFormProps, type UseFormReturn$1 as UseFormReturn, type UseZodFormProps, type ValueOf, WatchField, type WatchFieldProps, type WithFields, createField, createForm, defaultFieldTypes, objectFieldResolver, useArrayField, useArrayFieldAddButton, useArrayFieldContext, useArrayFieldRemoveButton, useArrayFieldRow, useArrayFieldRowContext, useBaseField, useField, useForm, useFormContext, useZodForm };
696
+ export { ArrayField, ArrayFieldAddButton, type ArrayFieldButtonProps, ArrayFieldContainer, type ArrayFieldContainerProps, type ArrayFieldOptions, type ArrayFieldPath, type ArrayFieldProps, ArrayFieldProvider, ArrayFieldRemoveButton, ArrayFieldRow, ArrayFieldRowContainer, ArrayFieldRowFields, type ArrayFieldRowFieldsProps, ArrayFieldRowProvider, ArrayFieldRows, type ArrayFieldRowsProps, AutoFields, BaseField, type BaseFieldProps, Form$1 as BaseForm, type CreateFieldOptions, type CreateFormProps, type DefaultFieldOverrides, type DefaultFields, DisplayField, type DisplayFieldProps, DisplayIf, type DisplayIfProps, Field, type FieldOption, type FieldOptions, type FieldOverrides, type FieldProps, type FieldResolver, type FieldRules, type FieldsProps, FieldsProvider, Form, type FormChildren, type FormComponent, FormLayout, type FormLayoutProps, FormLegend, type FormProps$1 as FormProps, FormProvider, type FormRenderContext, type FormType, FormValue, type GetBaseField, type GetFieldResolver, InputField, type InputFieldProps, type MergeFieldProps, ObjectField, type ObjectFieldProps, type ObjectSchema, type ShallowMerge, SubmitButton, type SubmitButtonProps, TextareaField, type TextareaFieldProps, type UseArrayFieldReturn, type UseArrayFieldRowProps, type UseArrayFieldRowReturn, type UseFormProps, type UseFormReturn$1 as UseFormReturn, type UseZodFormProps, type ValueOf, WatchField, type WatchFieldProps, type WithFields, createField, createForm, defaultFieldTypes, objectFieldResolver, useArrayField, useArrayFieldAddButton, useArrayFieldContext, useArrayFieldRemoveButton, useArrayFieldRow, useArrayFieldRowContext, useBaseField, useField, useForm, useFormContext, useZodForm };