@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 +21 -0
- package/dist/index.d.mts +60 -83
- package/dist/index.d.ts +60 -83
- package/dist/index.js +55 -21
- package/dist/index.js.map +1 -1
- package/dist/index.mjs +56 -22
- package/dist/index.mjs.map +1 -1
- package/package.json +25 -25
- package/CHANGELOG.md +0 -1722
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,
|
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.
|
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.
|
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.
|
79
|
-
email: React__default.
|
80
|
-
url: React__default.
|
81
|
-
phone: React__default.
|
82
|
-
time: React__default.
|
83
|
-
number: React__default.
|
84
|
-
pin: React__default.
|
85
|
-
checkbox: React__default.
|
86
|
-
radio: React__default.
|
87
|
-
password: React__default.
|
88
|
-
select: React__default.
|
89
|
-
switch: React__default.
|
90
|
-
textarea: React__default.
|
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
|
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
|
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
|
567
|
-
interface FormProps<TFieldValues extends FieldValues = FieldValues, TContext
|
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
|
-
|
546
|
+
onSubmit: SubmitHandler<TFieldValues>;
|
547
|
+
onInvalid?: SubmitErrorHandler<FieldValues>;
|
548
|
+
defaultValues?: DefaultValues<TFieldValues> | AsyncDefaultValues<TFieldValues>;
|
576
549
|
}
|
577
|
-
|
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,
|
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.
|
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,
|
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,
|
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.
|
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.
|
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.
|
79
|
-
email: React__default.
|
80
|
-
url: React__default.
|
81
|
-
phone: React__default.
|
82
|
-
time: React__default.
|
83
|
-
number: React__default.
|
84
|
-
pin: React__default.
|
85
|
-
checkbox: React__default.
|
86
|
-
radio: React__default.
|
87
|
-
password: React__default.
|
88
|
-
select: React__default.
|
89
|
-
switch: React__default.
|
90
|
-
textarea: React__default.
|
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
|
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
|
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
|
567
|
-
interface FormProps<TFieldValues extends FieldValues = FieldValues, TContext
|
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
|
-
|
546
|
+
onSubmit: SubmitHandler<TFieldValues>;
|
547
|
+
onInvalid?: SubmitErrorHandler<FieldValues>;
|
548
|
+
defaultValues?: DefaultValues<TFieldValues> | AsyncDefaultValues<TFieldValues>;
|
576
549
|
}
|
577
|
-
|
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,
|
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.
|
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,
|
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 };
|