@saas-ui/forms 3.0.0-next.2 → 3.0.0-next.21
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/CHANGELOG.md +149 -0
- package/dist/index.d.mts +56 -28
- package/dist/index.d.ts +56 -28
- package/dist/index.js +55 -44
- package/dist/index.js.map +1 -1
- package/dist/index.mjs +55 -44
- package/dist/index.mjs.map +1 -1
- package/dist/yup/index.js +4 -6
- package/dist/yup/index.js.map +1 -1
- package/dist/yup/index.mjs +4 -6
- package/dist/yup/index.mjs.map +1 -1
- package/dist/zod/index.js +7 -9
- package/dist/zod/index.js.map +1 -1
- package/dist/zod/index.mjs +7 -9
- package/dist/zod/index.mjs.map +1 -1
- package/package.json +7 -10
package/CHANGELOG.md
CHANGED
@@ -1,5 +1,154 @@
|
|
1
1
|
# @saas-ui/forms
|
2
2
|
|
3
|
+
## 3.0.0-next.21
|
4
|
+
|
5
|
+
### Patch Changes
|
6
|
+
|
7
|
+
- Updated dependencies [b48ad37]
|
8
|
+
- @saas-ui/react@3.0.0-next.21
|
9
|
+
|
10
|
+
## 3.0.0-next.20
|
11
|
+
|
12
|
+
### Minor Changes
|
13
|
+
|
14
|
+
- f18c762: useForm now supports standard schema, with support for zod, valibot, arktype and more.
|
15
|
+
|
16
|
+
### Patch Changes
|
17
|
+
|
18
|
+
- Updated dependencies [729b57d]
|
19
|
+
- @saas-ui/react@3.0.0-next.20
|
20
|
+
|
21
|
+
## 3.0.0-next.19
|
22
|
+
|
23
|
+
### Patch Changes
|
24
|
+
|
25
|
+
- Updated dependencies
|
26
|
+
- @saas-ui/react@3.0.0-next.19
|
27
|
+
|
28
|
+
## 3.0.0-next.18
|
29
|
+
|
30
|
+
### Patch Changes
|
31
|
+
|
32
|
+
- Updated dependencies
|
33
|
+
- @saas-ui/react@3.0.0-next.18
|
34
|
+
|
35
|
+
## 3.0.0-next.17
|
36
|
+
|
37
|
+
### Patch Changes
|
38
|
+
|
39
|
+
- Updated dependencies [d87c2ac]
|
40
|
+
- @saas-ui/react@3.0.0-next.17
|
41
|
+
- @saas-ui/core@3.0.0-next.4
|
42
|
+
|
43
|
+
## 3.0.0-next.16
|
44
|
+
|
45
|
+
### Patch Changes
|
46
|
+
|
47
|
+
- @saas-ui/core@3.0.0-next.3
|
48
|
+
- @saas-ui/react@3.0.0-next.16
|
49
|
+
|
50
|
+
## 3.0.0-next.15
|
51
|
+
|
52
|
+
### Patch Changes
|
53
|
+
|
54
|
+
- Updated dependencies [d4fb186]
|
55
|
+
- Updated dependencies [a169eb7]
|
56
|
+
- Updated dependencies [d4fb186]
|
57
|
+
- @saas-ui/react@3.0.0-next.15
|
58
|
+
|
59
|
+
## 3.0.0-next.14
|
60
|
+
|
61
|
+
### Minor Changes
|
62
|
+
|
63
|
+
- 546dca1: BREAKING: Form onSubmit prop moved to useForm, Form onSubmit now accepts the native onSubmit handler and will override the build in form handler.
|
64
|
+
- 546dca1: BREAKING: Form onError moved to useForm and renamed to onInvalid
|
65
|
+
|
66
|
+
### Patch Changes
|
67
|
+
|
68
|
+
- Updated dependencies [78d7999]
|
69
|
+
- Updated dependencies [042ec4f]
|
70
|
+
- @saas-ui/react@3.0.0-next.14
|
71
|
+
|
72
|
+
## 3.0.0-next.13
|
73
|
+
|
74
|
+
### Patch Changes
|
75
|
+
|
76
|
+
- Updated dependencies [f995ba3]
|
77
|
+
- @saas-ui/react@3.0.0-next.13
|
78
|
+
|
79
|
+
## 3.0.0-next.12
|
80
|
+
|
81
|
+
### Patch Changes
|
82
|
+
|
83
|
+
- 2afe09f: Fixed missing ref prop on form field type
|
84
|
+
- Updated dependencies [2afe09f]
|
85
|
+
- @saas-ui/react@3.0.0-next.12
|
86
|
+
|
87
|
+
## 3.0.0-next.11
|
88
|
+
|
89
|
+
### Patch Changes
|
90
|
+
|
91
|
+
- Updated dependencies [dae627e]
|
92
|
+
- @saas-ui/core@3.0.0-next.2
|
93
|
+
- @saas-ui/react@3.0.0-next.11
|
94
|
+
|
95
|
+
## 3.0.0-next.10
|
96
|
+
|
97
|
+
### Patch Changes
|
98
|
+
|
99
|
+
- Updated dependencies
|
100
|
+
- @saas-ui/react@3.0.0-next.10
|
101
|
+
|
102
|
+
## 3.0.0-next.9
|
103
|
+
|
104
|
+
### Patch Changes
|
105
|
+
|
106
|
+
- Updated dependencies
|
107
|
+
- @saas-ui/react@3.0.0-next.9
|
108
|
+
|
109
|
+
## 3.0.0-next.8
|
110
|
+
|
111
|
+
### Patch Changes
|
112
|
+
|
113
|
+
- Updated dependencies
|
114
|
+
- @saas-ui/react@3.0.0-next.8
|
115
|
+
|
116
|
+
## 3.0.0-next.7
|
117
|
+
|
118
|
+
### Patch Changes
|
119
|
+
|
120
|
+
- Updated dependencies
|
121
|
+
- @saas-ui/react@3.0.0-next.7
|
122
|
+
|
123
|
+
## 3.0.0-next.6
|
124
|
+
|
125
|
+
### Patch Changes
|
126
|
+
|
127
|
+
- Updated dependencies
|
128
|
+
- @saas-ui/react@3.0.0-next.6
|
129
|
+
|
130
|
+
## 3.0.0-next.5
|
131
|
+
|
132
|
+
### Patch Changes
|
133
|
+
|
134
|
+
- Updated dependencies
|
135
|
+
- @saas-ui/react@3.0.0-next.5
|
136
|
+
|
137
|
+
## 3.0.0-next.4
|
138
|
+
|
139
|
+
### Patch Changes
|
140
|
+
|
141
|
+
- Updated dependencies [e86d242]
|
142
|
+
- @saas-ui/react@3.0.0-next.4
|
143
|
+
|
144
|
+
## 3.0.0-next.3
|
145
|
+
|
146
|
+
### Patch Changes
|
147
|
+
|
148
|
+
- Updated dependencies [860649d]
|
149
|
+
- @saas-ui/react@3.0.0-next.3
|
150
|
+
- @saas-ui/core@3.0.0-next.1
|
151
|
+
|
3
152
|
## 3.0.0-next.2
|
4
153
|
|
5
154
|
### Patch Changes
|
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';
|
@@ -15,6 +15,7 @@ import { SwitchProps } from '@saas-ui/react/switch';
|
|
15
15
|
import * as react_jsx_runtime from 'react/jsx-runtime';
|
16
16
|
import { UseStepperReturn } from '@saas-ui/core';
|
17
17
|
import { ButtonProps } from '@saas-ui/react/button';
|
18
|
+
import { 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
|
}
|
@@ -75,19 +76,19 @@ interface PinFieldProps extends Omit<PinInputProps, 'type' | 'value' | 'onChange
|
|
75
76
|
onChange?: (value: string) => void;
|
76
77
|
}
|
77
78
|
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.
|
79
|
+
text: React__default.ForwardRefExoticComponent<Omit<BaseFieldProps<react_hook_form.FieldValues, string>, keyof InputFieldProps> & InputFieldProps & React__default.RefAttributes<HTMLInputElement>>;
|
80
|
+
email: React__default.ForwardRefExoticComponent<Omit<BaseFieldProps<react_hook_form.FieldValues, string>, keyof InputFieldProps> & InputFieldProps & React__default.RefAttributes<HTMLInputElement>>;
|
81
|
+
url: React__default.ForwardRefExoticComponent<Omit<BaseFieldProps<react_hook_form.FieldValues, string>, keyof InputFieldProps> & InputFieldProps & React__default.RefAttributes<HTMLInputElement>>;
|
82
|
+
phone: React__default.ForwardRefExoticComponent<Omit<BaseFieldProps<react_hook_form.FieldValues, string>, keyof InputFieldProps> & InputFieldProps & React__default.RefAttributes<HTMLInputElement>>;
|
83
|
+
time: React__default.ForwardRefExoticComponent<Omit<BaseFieldProps<react_hook_form.FieldValues, string>, keyof InputFieldProps> & InputFieldProps & React__default.RefAttributes<HTMLInputElement>>;
|
84
|
+
number: React__default.ForwardRefExoticComponent<Omit<BaseFieldProps<react_hook_form.FieldValues, string>, keyof NumberInputFieldProps> & NumberInputFieldProps & React__default.RefAttributes<HTMLInputElement>>;
|
85
|
+
pin: React__default.ForwardRefExoticComponent<Omit<BaseFieldProps<react_hook_form.FieldValues, string>, keyof PinFieldProps> & PinFieldProps & React__default.RefAttributes<HTMLInputElement>>;
|
86
|
+
checkbox: React__default.ForwardRefExoticComponent<Omit<BaseFieldProps<react_hook_form.FieldValues, string>, keyof CheckboxFieldProps> & CheckboxFieldProps & React__default.RefAttributes<HTMLInputElement>>;
|
87
|
+
radio: React__default.ForwardRefExoticComponent<Omit<BaseFieldProps<react_hook_form.FieldValues, string>, keyof RadioFieldProps> & RadioFieldProps & React__default.RefAttributes<HTMLInputElement>>;
|
88
|
+
password: React__default.ForwardRefExoticComponent<Omit<BaseFieldProps<react_hook_form.FieldValues, string>, keyof PasswordInputProps> & PasswordInputProps & React__default.RefAttributes<HTMLInputElement>>;
|
89
|
+
select: React__default.ForwardRefExoticComponent<Omit<BaseFieldProps<react_hook_form.FieldValues, string>, keyof SelectFieldProps<boolean>> & SelectFieldProps<boolean> & React__default.RefAttributes<HTMLDivElement>>;
|
90
|
+
switch: React__default.ForwardRefExoticComponent<Omit<BaseFieldProps<react_hook_form.FieldValues, string>, keyof SwitchFieldProps> & SwitchFieldProps & React__default.RefAttributes<HTMLInputElement>>;
|
91
|
+
textarea: React__default.ForwardRefExoticComponent<Omit<BaseFieldProps<react_hook_form.FieldValues, string>, keyof TextareaFieldProps> & TextareaFieldProps & React__default.RefAttributes<HTMLTextAreaElement>>;
|
91
92
|
};
|
92
93
|
type DefaultFields = typeof defaultFieldTypes;
|
93
94
|
|
@@ -386,6 +387,26 @@ interface BaseFieldProps<TFieldValues extends FieldValues = FieldValues, TName e
|
|
386
387
|
* The input placeholder
|
387
388
|
*/
|
388
389
|
placeholder?: string;
|
390
|
+
/**
|
391
|
+
* Whether the field is invalid
|
392
|
+
*/
|
393
|
+
invalid?: boolean;
|
394
|
+
/**
|
395
|
+
* Whether the field is required
|
396
|
+
*/
|
397
|
+
required?: boolean;
|
398
|
+
/**
|
399
|
+
* Whether the field is disabled
|
400
|
+
*/
|
401
|
+
disabled?: boolean;
|
402
|
+
/**
|
403
|
+
* Whether the field is read-only
|
404
|
+
*/
|
405
|
+
readOnly?: boolean;
|
406
|
+
/**
|
407
|
+
* Orientation of the field
|
408
|
+
*/
|
409
|
+
orientation?: 'horizontal' | 'vertical';
|
389
410
|
/**
|
390
411
|
* React children
|
391
412
|
*/
|
@@ -554,27 +575,33 @@ type FormType<FieldDefs, ExtraProps = object, ExtraFieldProps extends object = o
|
|
554
575
|
};
|
555
576
|
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
577
|
|
557
|
-
interface UseFormProps<TFieldValues extends FieldValues, TContext
|
578
|
+
interface UseFormProps<TFieldValues extends FieldValues, TContext = any, TTransformedValues = TFieldValues> extends UseFormProps$1<TFieldValues, TContext, TTransformedValues> {
|
579
|
+
schema?: StandardSchemaV1<TFieldValues, TTransformedValues>;
|
580
|
+
onSubmit: SubmitHandler<TTransformedValues>;
|
581
|
+
onInvalid?: SubmitErrorHandler<FieldValues>;
|
558
582
|
}
|
559
|
-
interface UseFormReturn$1<TFieldValues extends FieldValues, TContext
|
583
|
+
interface UseFormReturn$1<TFieldValues extends FieldValues = FieldValues, TContext = any, TTransformedValues = TFieldValues> extends UseFormReturn$2<TFieldValues, TContext, TTransformedValues> {
|
560
584
|
Form: React.FC<Omit<FormProps<TFieldValues, TContext>, 'form'>>;
|
561
585
|
Field: React.FC<FieldProps<TFieldValues>>;
|
562
586
|
DisplayIf: React.FC<DisplayIfProps<TFieldValues>>;
|
563
587
|
ArrayField: React.FC<ArrayFieldProps<TFieldValues> & React.RefAttributes<UseArrayFieldReturn>>;
|
564
588
|
ObjectField: React.FC<ObjectFieldProps<TFieldValues>>;
|
565
589
|
}
|
566
|
-
declare function useForm<TFieldValues extends FieldValues, TContext
|
567
|
-
interface FormProps<TFieldValues extends FieldValues = FieldValues, TContext
|
590
|
+
declare function useForm<TFieldValues extends FieldValues = FieldValues, TContext = any, TTransformedValues = TFieldValues>(props: UseFormProps<TFieldValues, TContext, TTransformedValues>): UseFormReturn$1<TFieldValues, TContext, TTransformedValues>;
|
591
|
+
interface FormProps<TFieldValues extends FieldValues = FieldValues, TContext = any, TTransformedValues = TFieldValues> extends HTMLChakraProps<'form'> {
|
568
592
|
children: React.ReactNode;
|
569
|
-
form: ReturnType<typeof useForm$1<TFieldValues, TContext>>;
|
570
|
-
onSubmit: (data: any) => void;
|
571
|
-
onError?: (errors: any) => void;
|
593
|
+
form: ReturnType<typeof useForm$1<TFieldValues, TContext, TTransformedValues>>;
|
572
594
|
}
|
573
595
|
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
596
|
schema: TSchema;
|
575
|
-
|
597
|
+
onSubmit: SubmitHandler<TFieldValues>;
|
598
|
+
onInvalid?: SubmitErrorHandler<FieldValues>;
|
599
|
+
defaultValues?: DefaultValues<TFieldValues> | AsyncDefaultValues<TFieldValues>;
|
576
600
|
}
|
577
|
-
|
601
|
+
/**
|
602
|
+
* @deprecated Use useForm instead, which supports standard schema out of the box.
|
603
|
+
*/
|
604
|
+
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
605
|
type InferObjectSchema<T extends z.ZodTypeAny | z.ZodEffects<z.ZodTypeAny>> = T extends z.ZodEffects<infer TSchema> ? z.infer<TSchema> : z.infer<T>;
|
579
606
|
type AsyncDefaultValues<TFieldValues> = (payload?: unknown) => Promise<TFieldValues>;
|
580
607
|
|
@@ -649,11 +676,12 @@ declare const useFormContext: <TFieldValues extends FieldValues = FieldValues, T
|
|
649
676
|
formState: react_hook_form.FormState<TFieldValues>;
|
650
677
|
resetField: react_hook_form.UseFormResetField<TFieldValues>;
|
651
678
|
reset: react_hook_form.UseFormReset<TFieldValues>;
|
652
|
-
handleSubmit: react_hook_form.UseFormHandleSubmit<TFieldValues,
|
679
|
+
handleSubmit: react_hook_form.UseFormHandleSubmit<TFieldValues, TFieldValues>;
|
653
680
|
unregister: react_hook_form.UseFormUnregister<TFieldValues>;
|
654
|
-
control: react_hook_form.Control<TFieldValues, TContext>;
|
681
|
+
control: react_hook_form.Control<TFieldValues, TContext, TFieldValues>;
|
655
682
|
register: react_hook_form.UseFormRegister<TFieldValues>;
|
656
683
|
setFocus: react_hook_form.UseFormSetFocus<TFieldValues>;
|
684
|
+
subscribe: react_hook_form.UseFromSubscribe<TFieldValues>;
|
657
685
|
};
|
658
686
|
type UseFormReturn<TFieldValues extends FieldValues = FieldValues, TContext = any, TSchema = any> = ReturnType<typeof useFormContext<TFieldValues, TContext, TSchema>>;
|
659
687
|
declare const FormProvider: <TFieldValues extends FieldValues = FieldValues, TContext = any, TSchema = any>(props: FormProviderProps<TFieldValues, TContext, TSchema>) => react_jsx_runtime.JSX.Element;
|
@@ -707,7 +735,7 @@ interface ControlProps {
|
|
707
735
|
* @param options.isControlled Set this to true if this is a controlled field.
|
708
736
|
* @param options.hideLabel Hide the field label, for example for the checkbox field.
|
709
737
|
*/
|
710
|
-
declare const createField: <TType = unknown, TProps extends object = object>(component: ForwardRefRenderFunction<TType, PropsWithoutRef<TProps & ControlProps>>, options?: CreateFieldOptions) => React__default.
|
738
|
+
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
739
|
|
712
740
|
/**
|
713
741
|
* Form component.
|
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';
|
@@ -15,6 +15,7 @@ import { SwitchProps } from '@saas-ui/react/switch';
|
|
15
15
|
import * as react_jsx_runtime from 'react/jsx-runtime';
|
16
16
|
import { UseStepperReturn } from '@saas-ui/core';
|
17
17
|
import { ButtonProps } from '@saas-ui/react/button';
|
18
|
+
import { 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
|
}
|
@@ -75,19 +76,19 @@ interface PinFieldProps extends Omit<PinInputProps, 'type' | 'value' | 'onChange
|
|
75
76
|
onChange?: (value: string) => void;
|
76
77
|
}
|
77
78
|
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.
|
79
|
+
text: React__default.ForwardRefExoticComponent<Omit<BaseFieldProps<react_hook_form.FieldValues, string>, keyof InputFieldProps> & InputFieldProps & React__default.RefAttributes<HTMLInputElement>>;
|
80
|
+
email: React__default.ForwardRefExoticComponent<Omit<BaseFieldProps<react_hook_form.FieldValues, string>, keyof InputFieldProps> & InputFieldProps & React__default.RefAttributes<HTMLInputElement>>;
|
81
|
+
url: React__default.ForwardRefExoticComponent<Omit<BaseFieldProps<react_hook_form.FieldValues, string>, keyof InputFieldProps> & InputFieldProps & React__default.RefAttributes<HTMLInputElement>>;
|
82
|
+
phone: React__default.ForwardRefExoticComponent<Omit<BaseFieldProps<react_hook_form.FieldValues, string>, keyof InputFieldProps> & InputFieldProps & React__default.RefAttributes<HTMLInputElement>>;
|
83
|
+
time: React__default.ForwardRefExoticComponent<Omit<BaseFieldProps<react_hook_form.FieldValues, string>, keyof InputFieldProps> & InputFieldProps & React__default.RefAttributes<HTMLInputElement>>;
|
84
|
+
number: React__default.ForwardRefExoticComponent<Omit<BaseFieldProps<react_hook_form.FieldValues, string>, keyof NumberInputFieldProps> & NumberInputFieldProps & React__default.RefAttributes<HTMLInputElement>>;
|
85
|
+
pin: React__default.ForwardRefExoticComponent<Omit<BaseFieldProps<react_hook_form.FieldValues, string>, keyof PinFieldProps> & PinFieldProps & React__default.RefAttributes<HTMLInputElement>>;
|
86
|
+
checkbox: React__default.ForwardRefExoticComponent<Omit<BaseFieldProps<react_hook_form.FieldValues, string>, keyof CheckboxFieldProps> & CheckboxFieldProps & React__default.RefAttributes<HTMLInputElement>>;
|
87
|
+
radio: React__default.ForwardRefExoticComponent<Omit<BaseFieldProps<react_hook_form.FieldValues, string>, keyof RadioFieldProps> & RadioFieldProps & React__default.RefAttributes<HTMLInputElement>>;
|
88
|
+
password: React__default.ForwardRefExoticComponent<Omit<BaseFieldProps<react_hook_form.FieldValues, string>, keyof PasswordInputProps> & PasswordInputProps & React__default.RefAttributes<HTMLInputElement>>;
|
89
|
+
select: React__default.ForwardRefExoticComponent<Omit<BaseFieldProps<react_hook_form.FieldValues, string>, keyof SelectFieldProps<boolean>> & SelectFieldProps<boolean> & React__default.RefAttributes<HTMLDivElement>>;
|
90
|
+
switch: React__default.ForwardRefExoticComponent<Omit<BaseFieldProps<react_hook_form.FieldValues, string>, keyof SwitchFieldProps> & SwitchFieldProps & React__default.RefAttributes<HTMLInputElement>>;
|
91
|
+
textarea: React__default.ForwardRefExoticComponent<Omit<BaseFieldProps<react_hook_form.FieldValues, string>, keyof TextareaFieldProps> & TextareaFieldProps & React__default.RefAttributes<HTMLTextAreaElement>>;
|
91
92
|
};
|
92
93
|
type DefaultFields = typeof defaultFieldTypes;
|
93
94
|
|
@@ -386,6 +387,26 @@ interface BaseFieldProps<TFieldValues extends FieldValues = FieldValues, TName e
|
|
386
387
|
* The input placeholder
|
387
388
|
*/
|
388
389
|
placeholder?: string;
|
390
|
+
/**
|
391
|
+
* Whether the field is invalid
|
392
|
+
*/
|
393
|
+
invalid?: boolean;
|
394
|
+
/**
|
395
|
+
* Whether the field is required
|
396
|
+
*/
|
397
|
+
required?: boolean;
|
398
|
+
/**
|
399
|
+
* Whether the field is disabled
|
400
|
+
*/
|
401
|
+
disabled?: boolean;
|
402
|
+
/**
|
403
|
+
* Whether the field is read-only
|
404
|
+
*/
|
405
|
+
readOnly?: boolean;
|
406
|
+
/**
|
407
|
+
* Orientation of the field
|
408
|
+
*/
|
409
|
+
orientation?: 'horizontal' | 'vertical';
|
389
410
|
/**
|
390
411
|
* React children
|
391
412
|
*/
|
@@ -554,27 +575,33 @@ type FormType<FieldDefs, ExtraProps = object, ExtraFieldProps extends object = o
|
|
554
575
|
};
|
555
576
|
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
577
|
|
557
|
-
interface UseFormProps<TFieldValues extends FieldValues, TContext
|
578
|
+
interface UseFormProps<TFieldValues extends FieldValues, TContext = any, TTransformedValues = TFieldValues> extends UseFormProps$1<TFieldValues, TContext, TTransformedValues> {
|
579
|
+
schema?: StandardSchemaV1<TFieldValues, TTransformedValues>;
|
580
|
+
onSubmit: SubmitHandler<TTransformedValues>;
|
581
|
+
onInvalid?: SubmitErrorHandler<FieldValues>;
|
558
582
|
}
|
559
|
-
interface UseFormReturn$1<TFieldValues extends FieldValues, TContext
|
583
|
+
interface UseFormReturn$1<TFieldValues extends FieldValues = FieldValues, TContext = any, TTransformedValues = TFieldValues> extends UseFormReturn$2<TFieldValues, TContext, TTransformedValues> {
|
560
584
|
Form: React.FC<Omit<FormProps<TFieldValues, TContext>, 'form'>>;
|
561
585
|
Field: React.FC<FieldProps<TFieldValues>>;
|
562
586
|
DisplayIf: React.FC<DisplayIfProps<TFieldValues>>;
|
563
587
|
ArrayField: React.FC<ArrayFieldProps<TFieldValues> & React.RefAttributes<UseArrayFieldReturn>>;
|
564
588
|
ObjectField: React.FC<ObjectFieldProps<TFieldValues>>;
|
565
589
|
}
|
566
|
-
declare function useForm<TFieldValues extends FieldValues, TContext
|
567
|
-
interface FormProps<TFieldValues extends FieldValues = FieldValues, TContext
|
590
|
+
declare function useForm<TFieldValues extends FieldValues = FieldValues, TContext = any, TTransformedValues = TFieldValues>(props: UseFormProps<TFieldValues, TContext, TTransformedValues>): UseFormReturn$1<TFieldValues, TContext, TTransformedValues>;
|
591
|
+
interface FormProps<TFieldValues extends FieldValues = FieldValues, TContext = any, TTransformedValues = TFieldValues> extends HTMLChakraProps<'form'> {
|
568
592
|
children: React.ReactNode;
|
569
|
-
form: ReturnType<typeof useForm$1<TFieldValues, TContext>>;
|
570
|
-
onSubmit: (data: any) => void;
|
571
|
-
onError?: (errors: any) => void;
|
593
|
+
form: ReturnType<typeof useForm$1<TFieldValues, TContext, TTransformedValues>>;
|
572
594
|
}
|
573
595
|
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
596
|
schema: TSchema;
|
575
|
-
|
597
|
+
onSubmit: SubmitHandler<TFieldValues>;
|
598
|
+
onInvalid?: SubmitErrorHandler<FieldValues>;
|
599
|
+
defaultValues?: DefaultValues<TFieldValues> | AsyncDefaultValues<TFieldValues>;
|
576
600
|
}
|
577
|
-
|
601
|
+
/**
|
602
|
+
* @deprecated Use useForm instead, which supports standard schema out of the box.
|
603
|
+
*/
|
604
|
+
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
605
|
type InferObjectSchema<T extends z.ZodTypeAny | z.ZodEffects<z.ZodTypeAny>> = T extends z.ZodEffects<infer TSchema> ? z.infer<TSchema> : z.infer<T>;
|
579
606
|
type AsyncDefaultValues<TFieldValues> = (payload?: unknown) => Promise<TFieldValues>;
|
580
607
|
|
@@ -649,11 +676,12 @@ declare const useFormContext: <TFieldValues extends FieldValues = FieldValues, T
|
|
649
676
|
formState: react_hook_form.FormState<TFieldValues>;
|
650
677
|
resetField: react_hook_form.UseFormResetField<TFieldValues>;
|
651
678
|
reset: react_hook_form.UseFormReset<TFieldValues>;
|
652
|
-
handleSubmit: react_hook_form.UseFormHandleSubmit<TFieldValues,
|
679
|
+
handleSubmit: react_hook_form.UseFormHandleSubmit<TFieldValues, TFieldValues>;
|
653
680
|
unregister: react_hook_form.UseFormUnregister<TFieldValues>;
|
654
|
-
control: react_hook_form.Control<TFieldValues, TContext>;
|
681
|
+
control: react_hook_form.Control<TFieldValues, TContext, TFieldValues>;
|
655
682
|
register: react_hook_form.UseFormRegister<TFieldValues>;
|
656
683
|
setFocus: react_hook_form.UseFormSetFocus<TFieldValues>;
|
684
|
+
subscribe: react_hook_form.UseFromSubscribe<TFieldValues>;
|
657
685
|
};
|
658
686
|
type UseFormReturn<TFieldValues extends FieldValues = FieldValues, TContext = any, TSchema = any> = ReturnType<typeof useFormContext<TFieldValues, TContext, TSchema>>;
|
659
687
|
declare const FormProvider: <TFieldValues extends FieldValues = FieldValues, TContext = any, TSchema = any>(props: FormProviderProps<TFieldValues, TContext, TSchema>) => react_jsx_runtime.JSX.Element;
|
@@ -707,7 +735,7 @@ interface ControlProps {
|
|
707
735
|
* @param options.isControlled Set this to true if this is a controlled field.
|
708
736
|
* @param options.hideLabel Hide the field label, for example for the checkbox field.
|
709
737
|
*/
|
710
|
-
declare const createField: <TType = unknown, TProps extends object = object>(component: ForwardRefRenderFunction<TType, PropsWithoutRef<TProps & ControlProps>>, options?: CreateFieldOptions) => React__default.
|
738
|
+
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
739
|
|
712
740
|
/**
|
713
741
|
* Form component.
|