@saas-ui/forms 3.0.0-alpha.9 → 3.0.0-next.0

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 CHANGED
@@ -1,98 +1,114 @@
1
1
  # @saas-ui/forms
2
2
 
3
- ## 3.0.0-alpha.9
3
+ ## 3.0.0-next.0
4
4
 
5
- ### Patch Changes
6
-
7
- - Updated dependencies [f0f5ab0]
8
- - @saas-ui/react@3.0.0-alpha.9
9
-
10
- ## 3.0.0-alpha.8
11
-
12
- ### Patch Changes
13
-
14
- - Updated dependencies [64e680e]
15
- - Updated dependencies [64e680e]
16
- - @saas-ui/react@3.0.0-alpha.8
17
-
18
- ## 3.0.0-alpha.7
19
-
20
- ### Patch Changes
21
-
22
- - Updated dependencies [8e760c5]
23
- - @saas-ui/react@3.0.0-alpha.7
5
+ ### Major Changes
24
6
 
25
- ## 3.0.0-alpha.6
7
+ - 78e70fb: New useForm hook that returns typed form components
8
+ - 550e5a6: Upgrade to Chakra v3
9
+ - b51aff9: BREAKING: getBaseField should now return props and Component
26
10
 
27
11
  ### Minor Changes
28
12
 
29
13
  - 95c8652: Update to Chakra UI 3.2.1
14
+ - 6459de4: Removed src exports and files from packages
30
15
 
31
16
  ### Patch Changes
32
17
 
33
- - Updated dependencies [95c8652]
34
- - @saas-ui/react@3.0.0-alpha.6
35
- - @saas-ui/core@3.0.0-alpha.4
36
-
37
- ## 3.0.0-alpha.5
38
-
39
- ### Patch Changes
40
-
18
+ - 38082d4: Improved horizontal field styles
19
+ - b51aff9: Improved prop handling of base field
20
+ - cee2e9c: Removed chakra ui dependency of core package
21
+ - 56b0623: Update with upstream changes
22
+ - Updated dependencies [ba3b566]
41
23
  - Updated dependencies [e9fec88]
24
+ - Updated dependencies [2285040]
25
+ - Updated dependencies [64e680e]
26
+ - Updated dependencies [53716c5]
27
+ - Updated dependencies [5115e8f]
28
+ - Updated dependencies [212a7e6]
29
+ - Updated dependencies [38082d4]
30
+ - Updated dependencies [8d8ffaa]
31
+ - Updated dependencies [c680574]
32
+ - Updated dependencies [c680574]
42
33
  - Updated dependencies [f62c3d6]
43
- - @saas-ui/react@3.0.0-alpha.5
44
-
45
- ## 3.0.0-alpha.4
46
-
47
- ### Patch Changes
48
-
34
+ - Updated dependencies [942e9a0]
35
+ - Updated dependencies [f85d493]
36
+ - Updated dependencies [8d8ffaa]
37
+ - Updated dependencies [a2ef175]
38
+ - Updated dependencies [eb02362]
39
+ - Updated dependencies [53716c5]
40
+ - Updated dependencies [205580d]
49
41
  - Updated dependencies [7808a76]
50
- - @saas-ui/react@3.0.0-alpha.4
51
-
52
- ## 3.0.0-alpha.3
53
-
54
- ### Patch Changes
55
-
56
- - cee2e9c: Removed chakra ui dependency of core package
42
+ - Updated dependencies [e7fe684]
43
+ - Updated dependencies [f85d493]
44
+ - Updated dependencies [c680574]
45
+ - Updated dependencies [c680574]
46
+ - Updated dependencies [b51aff9]
47
+ - Updated dependencies [212a7e6]
48
+ - Updated dependencies [550e5a6]
49
+ - Updated dependencies [ce8c247]
50
+ - Updated dependencies [19309d4]
51
+ - Updated dependencies [ce8c247]
52
+ - Updated dependencies [ce8c247]
53
+ - Updated dependencies [c680574]
54
+ - Updated dependencies [ba3b566]
55
+ - Updated dependencies [95c8652]
56
+ - Updated dependencies [6a8bf46]
57
+ - Updated dependencies [eb02362]
58
+ - Updated dependencies [ac2d80d]
59
+ - Updated dependencies [0067207]
60
+ - Updated dependencies [b51aff9]
57
61
  - Updated dependencies [cee2e9c]
58
- - @saas-ui/core@3.0.0-alpha.3
59
- - @saas-ui/react@3.0.0-alpha.3
60
-
61
- ## 3.0.0-alpha.2
62
-
63
- ### Minor Changes
64
-
65
- - 6459de4: Removed src exports and files from packages
66
-
67
- ### Patch Changes
68
-
62
+ - Updated dependencies [205580d]
63
+ - Updated dependencies [ba3b566]
64
+ - Updated dependencies [8e760c5]
65
+ - Updated dependencies [56b0623]
66
+ - Updated dependencies [6a8bf46]
67
+ - Updated dependencies [15e093e]
68
+ - Updated dependencies [8d8ffaa]
69
+ - Updated dependencies [c680574]
70
+ - Updated dependencies [8ac704a]
71
+ - Updated dependencies [6f9f04d]
72
+ - Updated dependencies [eb02362]
69
73
  - Updated dependencies [6459de4]
70
- - @saas-ui/react@3.0.0-alpha.2
71
- - @saas-ui/core@3.0.0-alpha.2
72
-
73
- ## 3.0.0-alpha.1
74
+ - Updated dependencies [56b0623]
75
+ - Updated dependencies [c51e12c]
76
+ - Updated dependencies [0067207]
77
+ - Updated dependencies [0f49a18]
78
+ - Updated dependencies [8d8ffaa]
79
+ - Updated dependencies [65fac53]
80
+ - Updated dependencies [61ce1b5]
81
+ - Updated dependencies [3a73bc8]
82
+ - Updated dependencies [9d47676]
83
+ - Updated dependencies [64e680e]
84
+ - Updated dependencies [2285040]
85
+ - Updated dependencies [ba3b566]
86
+ - Updated dependencies [8d8ffaa]
87
+ - Updated dependencies [f0f5ab0]
88
+ - Updated dependencies [19309d4]
89
+ - Updated dependencies [727b902]
90
+ - @saas-ui/react@3.0.0-next.0
91
+ - @saas-ui/core@3.0.0-next.0
74
92
 
75
- ### Major Changes
93
+ ## 2.11.0
76
94
 
77
- - 550e5a6: Upgrade to Chakra v3
95
+ ### Minor Changes
78
96
 
79
- ### Patch Changes
97
+ - 091fd38: Exported additional types from `index.ts` to make them accessible for external use, improving type coverage and usability.
80
98
 
81
- - Updated dependencies [550e5a6]
82
- - @saas-ui/react@3.0.0-alpha.1
83
- - @saas-ui/core@3.0.0-alpha.1
99
+ ## 2.10.0
84
100
 
85
- ## 3.0.0-alpha.0
101
+ ### Minor Changes
86
102
 
87
- ### Major Changes
103
+ - eb53116: Added support for ZodEffects schema to Form
88
104
 
89
- - v3 alpha release
105
+ ## 2.9.1
90
106
 
91
107
  ### Patch Changes
92
108
 
93
- - Updated dependencies
94
- - @saas-ui/react@3.0.0-alpha.0
95
- - @saas-ui/core@3.0.0-alpha.0
109
+ - 862937a: Bump chakra version
110
+ - Updated dependencies [862937a]
111
+ - @saas-ui/core@2.8.1
96
112
 
97
113
  ## 2.9.0
98
114
 
package/dist/index.d.mts CHANGED
@@ -1,10 +1,10 @@
1
1
  import * as React$1 from 'react';
2
2
  import React__default, { ForwardRefRenderFunction, PropsWithoutRef } from 'react';
3
- import { RecipeProps, HTMLChakraProps, SimpleGridProps, InputProps, TextareaProps, SystemStyleObject, Field as Field$1, ButtonProps as ButtonProps$1 } from '@chakra-ui/react';
3
+ import { SimpleGridProps, RecipeProps, InputProps, SystemStyleObject, TextareaProps, Field as Field$1, HTMLChakraProps, ButtonProps as ButtonProps$1 } from '@chakra-ui/react';
4
4
  import { MaybeRenderProp } from '@saas-ui/core/utils';
5
5
  import * as react_hook_form from 'react-hook-form';
6
- import { FieldValues, FieldPath, UseFormReturn as UseFormReturn$1, UseFieldArrayReturn, UseFormProps, WatchObserver, SubmitHandler, SubmitErrorHandler, ResolverOptions, ResolverResult, RegisterOptions, 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, UseFormProps, UseFormRegister, UseFormRegisterReturn, UseFormReset, UseFormResetField, UseFormReturn, UseFormSetError, UseFormSetFocus, UseFormSetValue, UseFormStateProps, UseFormStateReturn, UseFormTrigger, UseFormUnregister, UseFormWatch, UseWatchProps, Validate, ValidateResult, ValidationMode, ValidationRule, ValidationValue, ValidationValueMessage, WatchInternal, WatchObserver, appendErrors, useController, useFieldArray, useForm, useFormState, useWatch } from 'react-hook-form';
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';
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,19 +13,21 @@ import { RadioGroupProps } from '@saas-ui/react/radio';
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';
16
17
  import { ButtonProps } from '@saas-ui/react/button';
18
+ import { z } from 'zod';
17
19
 
18
20
  interface FormLayoutOptions {
19
21
  columns?: SimpleGridProps['columns'];
20
22
  gap?: SimpleGridProps['gap'];
21
23
  }
22
- interface FormLayoutProps extends RecipeProps<'formLayout'>, FormLayoutOptions, Omit<HTMLChakraProps<'div'>, 'columns'> {
24
+ interface FormLayoutProps extends RecipeProps<'suiFormLayout'>, SimpleGridProps {
23
25
  }
24
26
  /**
25
27
  * Create consistent field spacing and positioning.
26
28
  *
27
29
  * Renders form items in a `SimpleGrid`
28
- * @see https://chakra-ui.com/docs/layout/simple-grid
30
+ * @see https://chakra-ui.com/docs/components/simple-grid
29
31
  *
30
32
  * @see https://saas-ui.dev/docs/components/forms/form
31
33
  */
@@ -46,7 +48,10 @@ declare const TextareaField: React__default.FC<Omit<BaseFieldProps<react_hook_fo
46
48
  interface SwitchFieldProps extends SwitchProps {
47
49
  type: 'switch';
48
50
  }
49
- interface SelectFieldProps extends Omit<Select.RootProps<FieldOption>, 'collection'> {
51
+ interface SelectFieldProps<Multiple extends boolean = boolean> extends Omit<Select.RootProps<FieldOption>, 'collection' | 'value' | 'multiple' | 'onChange' | 'onValueChange'> {
52
+ multiple?: Multiple;
53
+ value?: Multiple extends true ? Array<string> : string;
54
+ onChange?: (value: Multiple extends true ? Array<string> : string) => void;
50
55
  options: FieldOptions;
51
56
  placeholder?: string;
52
57
  triggerProps?: Select.TriggerProps;
@@ -80,7 +85,7 @@ declare const defaultFieldTypes: {
80
85
  checkbox: React__default.FC<Omit<BaseFieldProps<react_hook_form.FieldValues, string>, keyof CheckboxFieldProps> & CheckboxFieldProps>;
81
86
  radio: React__default.FC<Omit<BaseFieldProps<react_hook_form.FieldValues, string>, keyof RadioFieldProps> & RadioFieldProps>;
82
87
  password: React__default.FC<Omit<BaseFieldProps<react_hook_form.FieldValues, string>, keyof PasswordInputProps> & PasswordInputProps>;
83
- select: React__default.FC<Omit<BaseFieldProps<react_hook_form.FieldValues, string>, keyof SelectFieldProps> & SelectFieldProps>;
88
+ select: React__default.FC<Omit<BaseFieldProps<react_hook_form.FieldValues, string>, keyof SelectFieldProps<boolean>> & SelectFieldProps<boolean>>;
84
89
  switch: React__default.FC<Omit<BaseFieldProps<react_hook_form.FieldValues, string>, keyof SwitchFieldProps> & SwitchFieldProps>;
85
90
  textarea: React__default.FC<Omit<BaseFieldProps<react_hook_form.FieldValues, string>, keyof TextareaFieldProps> & TextareaFieldProps>;
86
91
  };
@@ -92,8 +97,8 @@ interface DisplayIfProps<TFieldValues extends FieldValues = FieldValues, TName e
92
97
  defaultValue?: unknown;
93
98
  isDisabled?: boolean;
94
99
  isExact?: boolean;
95
- condition?: (value: unknown, context: UseFormReturn$1<TFieldValues>) => boolean;
96
- onToggle?: (conditionMatched: boolean, context: UseFormReturn$1<TFieldValues>) => void;
100
+ condition?: (value: unknown, context: UseFormReturn$2<TFieldValues>) => boolean;
101
+ onToggle?: (conditionMatched: boolean, context: UseFormReturn$2<TFieldValues>) => void;
97
102
  }
98
103
  /**
99
104
  * Conditionally render parts of a form.
@@ -101,7 +106,7 @@ interface DisplayIfProps<TFieldValues extends FieldValues = FieldValues, TName e
101
106
  * @see Docs https://saas-ui.dev/docs/components/forms/form
102
107
  */
103
108
  declare const DisplayIf: {
104
- <TFieldValues extends FieldValues = FieldValues, TName extends FieldPath<TFieldValues> = FieldPath<TFieldValues>>({ children, name, defaultValue, isDisabled, isExact, condition, onToggle, }: DisplayIfProps<TFieldValues, TName>): React$1.ReactElement<any, string | React$1.JSXElementConstructor<any>> | null;
109
+ <TFieldValues extends FieldValues = FieldValues, TName extends FieldPath<TFieldValues> = FieldPath<TFieldValues>>({ children, name, defaultValue, isDisabled, isExact, condition, onToggle, }: DisplayIfProps<TFieldValues, TName>): React$1.ReactElement<unknown, string | React$1.JSXElementConstructor<any>> | null;
105
110
  displayName: string;
106
111
  };
107
112
 
@@ -212,7 +217,7 @@ declare const useArrayFieldAddButton: () => {
212
217
  isDisabled: boolean;
213
218
  };
214
219
 
215
- interface FormRenderContext<TFieldValues extends FieldValues = FieldValues, TContext extends object = object, TFieldTypes = FieldProps<TFieldValues>> extends UseFormReturn$1<TFieldValues, TContext> {
220
+ interface FormRenderContext<TFieldValues extends FieldValues = FieldValues, TContext extends object = object, TFieldTypes = FieldProps<TFieldValues>> extends UseFormReturn$2<TFieldValues, TContext> {
216
221
  Field: React__default.FC<TFieldTypes & React__default.RefAttributes<FocusableElement>>;
217
222
  DisplayIf: React__default.FC<DisplayIfProps<TFieldValues>>;
218
223
  ArrayField: React__default.FC<ArrayFieldProps<TFieldValues> & React__default.RefAttributes<UseArrayFieldReturn>>;
@@ -238,7 +243,7 @@ interface FormOptions<TSchema = unknown, TFieldValues extends FieldValues = Fiel
238
243
  /**
239
244
  * The Hook Form state ref.
240
245
  */
241
- formRef?: React__default.Ref<UseFormReturn$1<TFieldValues, TContext>>;
246
+ formRef?: React__default.Ref<UseFormReturn$2<TFieldValues, TContext>>;
242
247
  /**
243
248
  * The form children, can be a render prop or a ReactNode.
244
249
  */
@@ -252,7 +257,7 @@ interface FormOptions<TSchema = unknown, TFieldValues extends FieldValues = Fiel
252
257
  */
253
258
  fields?: DefaultFieldOverrides;
254
259
  }
255
- interface FormProps<TSchema = unknown, TFieldValues extends FieldValues = FieldValues, TContext extends object = object, TExtraFieldProps extends object = object, TFieldTypes = FieldProps<TFieldValues, TExtraFieldProps>> extends UseFormProps<TFieldValues, TContext>, Omit<HTMLChakraProps<'form'>, 'children' | 'onChange' | 'onSubmit' | 'onError'>, FormOptions<TSchema, TFieldValues, TContext, TExtraFieldProps, TFieldTypes> {
260
+ interface FormProps$1<TSchema = unknown, TFieldValues extends FieldValues = FieldValues, TContext extends object = object, TExtraFieldProps extends object = object, TFieldTypes = FieldProps<TFieldValues, TExtraFieldProps>> extends UseFormProps$1<TFieldValues, TContext>, Omit<HTMLChakraProps<'form'>, 'children' | 'onChange' | 'onSubmit' | 'onError'>, FormOptions<TSchema, TFieldValues, TContext, TExtraFieldProps, TFieldTypes> {
256
261
  }
257
262
  /**
258
263
  * The wrapper component provides context, state, and focus management.
@@ -260,12 +265,63 @@ interface FormProps<TSchema = unknown, TFieldValues extends FieldValues = FieldV
260
265
  * @see Docs https://saas-ui.dev/docs/components/forms/form
261
266
  */
262
267
  declare const Form$1: FormComponent;
263
- type FormComponent = (<TSchema = unknown, TFieldValues extends FieldValues = FieldValues, TContext extends object = object, TExtraFieldProps extends object = object, TFieldTypes = FieldProps<TFieldValues>>(props: FormProps<TSchema, TFieldValues, TContext, TExtraFieldProps, TFieldTypes> & {
268
+ type FormComponent = (<TSchema = unknown, TFieldValues extends FieldValues = FieldValues, TContext extends object = object, TExtraFieldProps extends object = object, TFieldTypes = FieldProps<TFieldValues>>(props: FormProps$1<TSchema, TFieldValues, TContext, TExtraFieldProps, TFieldTypes> & {
264
269
  ref?: React__default.ForwardedRef<HTMLFormElement>;
265
270
  }) => React__default.ReactElement) & {
266
271
  displayName?: string;
267
272
  };
268
- type GetResolver = <TFieldValues extends FieldValues, TContext extends object>(schema: unknown) => (values: TFieldValues, context: TContext | undefined, options: ResolverOptions<TFieldValues>) => Promise<ResolverResult<TFieldValues>>;
273
+ type GetResolver = <TFieldValues extends FieldValues, TContext extends object>(schema: unknown) => (values: TFieldValues, context: TContext | undefined, options: ResolverOptions<TFieldValues>) => ResolverResult<TFieldValues> | Promise<ResolverResult<TFieldValues>>;
274
+
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
+ }
269
325
 
270
326
  interface SubmitButtonProps extends ButtonProps {
271
327
  /**
@@ -336,8 +392,14 @@ interface BaseFieldProps<TFieldValues extends FieldValues = FieldValues, TName e
336
392
  children?: React.ReactNode;
337
393
  }
338
394
  type GetBaseField<TProps extends object = object> = () => {
339
- extraProps: string[];
340
- BaseField: React.FC<Omit<BaseFieldProps, 'name'> & {
395
+ /**
396
+ * Extra props to pass to the component
397
+ */
398
+ props: Array<Extract<keyof TProps, string>>;
399
+ /**
400
+ * The component to render
401
+ */
402
+ Component: React.FC<Omit<BaseFieldProps, 'name'> & {
341
403
  name: string;
342
404
  children: React.ReactNode;
343
405
  } & TProps>;
@@ -368,12 +430,13 @@ type FieldOverrides<FieldDefs, TFieldValues extends FieldValues = FieldValues, T
368
430
  type?: 'array';
369
431
  } & Omit<ArrayFieldProps<TFieldValues>, 'name' | 'children'>);
370
432
  };
371
- type WithFields<TFormProps extends FormProps<any, any, any, any, any>, FieldDefs, ExtraOverrides = object> = TFormProps extends FormProps<infer _TSchema, infer TFieldValues, infer TContext, infer TExtraFieldProps> ? Omit<TFormProps, 'children' | 'fields'> & {
433
+ type WithFields<TFormProps extends FormProps$1<any, any, any, any, any>, FieldDefs, ExtraOverrides = object> = TFormProps extends FormProps$1<infer _TSchema, infer TFieldValues, infer TContext, infer TExtraFieldProps> ? Omit<TFormProps, 'children' | 'fields'> & {
372
434
  children?: FormChildren<FieldDefs, TFieldValues, TContext, TExtraFieldProps>;
373
435
  fields?: FieldOverrides<FieldDefs, TFieldValues> & {
374
436
  submit?: SubmitButtonProps;
375
437
  } & ExtraOverrides;
376
438
  } : 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>>>;
377
440
 
378
441
  interface ArrayFieldButtonProps extends ButtonProps$1 {
379
442
  }
@@ -483,7 +546,7 @@ interface CreateFormProps<FieldDefs, TGetBaseField extends GetBaseField = GetBas
483
546
  fields?: FieldDefs extends Record<string, React__default.FC<any>> ? FieldDefs : never;
484
547
  getBaseField?: TGetBaseField;
485
548
  }
486
- type FormType<FieldDefs, ExtraProps = object, ExtraFieldProps extends object = object, ExtraOverrides = object> = (<TSchema = unknown, TFieldValues extends FieldValues = FieldValues, TContext extends object = object>(props: WithFields<FormProps<TSchema, TFieldValues, TContext, ExtraFieldProps>, FieldDefs, ExtraOverrides> & {
549
+ type FormType<FieldDefs, ExtraProps = object, ExtraFieldProps extends object = object, ExtraOverrides = object> = (<TSchema = unknown, TFieldValues extends FieldValues = FieldValues, TContext extends object = object>(props: WithFields<FormProps$1<TSchema, TFieldValues, TContext, ExtraFieldProps>, FieldDefs, ExtraOverrides> & {
487
550
  ref?: React__default.ForwardedRef<HTMLFormElement>;
488
551
  } & ExtraProps) => React__default.ReactElement) & {
489
552
  displayName?: string;
@@ -491,6 +554,30 @@ type FormType<FieldDefs, ExtraProps = object, ExtraFieldProps extends object = o
491
554
  };
492
555
  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>;
493
556
 
557
+ interface UseFormProps<TFieldValues extends FieldValues, TContext extends object> extends UseFormProps$1<TFieldValues, TContext> {
558
+ }
559
+ interface UseFormReturn$1<TFieldValues extends FieldValues, TContext extends object> extends UseFormReturn$2<TFieldValues, TContext> {
560
+ Form: React.FC<Omit<FormProps<TFieldValues, TContext>, 'form'>>;
561
+ Field: React.FC<FieldProps<TFieldValues>>;
562
+ DisplayIf: React.FC<DisplayIfProps<TFieldValues>>;
563
+ ArrayField: React.FC<ArrayFieldProps<TFieldValues> & React.RefAttributes<UseArrayFieldReturn>>;
564
+ ObjectField: React.FC<ObjectFieldProps<TFieldValues>>;
565
+ }
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'> {
568
+ children: React.ReactNode;
569
+ form: ReturnType<typeof useForm$1<TFieldValues, TContext>>;
570
+ onSubmit: (data: any) => void;
571
+ onError?: (errors: any) => void;
572
+ }
573
+ 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
+ schema: TSchema;
575
+ defaultValues?: DefaultValues<InferObjectSchema<TSchema>> | AsyncDefaultValues<InferObjectSchema<TSchema>>;
576
+ }
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>;
578
+ type InferObjectSchema<T extends z.ZodTypeAny | z.ZodEffects<z.ZodTypeAny>> = T extends z.ZodEffects<infer TSchema> ? z.infer<TSchema> : z.infer<T>;
579
+ type AsyncDefaultValues<TFieldValues> = (payload?: unknown) => Promise<TFieldValues>;
580
+
494
581
  interface DisplayFieldProps<TFieldValues extends FieldValues = FieldValues, TName extends FieldPath<TFieldValues> = FieldPath<TFieldValues>> extends Omit<Field$1.RootProps, 'type' | 'onChange' | 'defaultValue'> {
495
582
  name: TName | ArrayFieldPath<TName>;
496
583
  label?: string;
@@ -529,9 +616,9 @@ interface FieldsProps<TSchema = any> {
529
616
  }
530
617
  declare const AutoFields: React$1.FC<FieldsProps>;
531
618
 
532
- interface FieldsContextValue {
533
- fields: Record<string, React__default.FC<any>>;
534
- getBaseField?: GetBaseField<any>;
619
+ interface FieldsContextValue<TFields = any, TBaseFieldProps extends object = object> {
620
+ fields: Record<string, React__default.FC<TFields>>;
621
+ getBaseField?: GetBaseField<TBaseFieldProps>;
535
622
  }
536
623
  declare const FieldsProvider: React__default.FC<{
537
624
  value: FieldsContextValue;
@@ -578,20 +665,24 @@ interface WatchFieldProps<Value = unknown, TFieldValues extends FieldValues = Fi
578
665
  isExact?: boolean;
579
666
  children: (value: Value, form: UseFormReturn<TFieldValues, TContext>) => React.ReactElement | void;
580
667
  }
581
- declare const WatchField: <Value = unknown, TFieldValues extends FieldValues = FieldValues, TContext extends object = object>(props: WatchFieldProps<Value, TFieldValues, TContext>) => React$1.ReactElement<any, string | React$1.JSXElementConstructor<any>> | null;
668
+ declare const WatchField: <Value = unknown, TFieldValues extends FieldValues = FieldValues, TContext extends object = object>(props: WatchFieldProps<Value, TFieldValues, TContext>) => React$1.ReactElement<unknown, string | React$1.JSXElementConstructor<any>> | null;
582
669
 
583
670
  declare const useBaseField: (props: BaseFieldProps) => {
584
- controlProps: Pick<BaseFieldProps<react_hook_form.FieldValues, string>, never>;
671
+ rootProps: Omit<BaseFieldProps<react_hook_form.FieldValues, string>, "name" | "label" | "hideLabel" | "help" | "rules" | "type" | "placeholder" | "children">;
585
672
  error: any;
586
673
  touched: any;
587
674
  name: string;
588
675
  label?: string | undefined;
589
676
  hideLabel?: boolean | undefined;
590
677
  help?: string | undefined;
678
+ rules?: Omit<react_hook_form.RegisterOptions<react_hook_form.FieldValues, string>, "disabled" | "setValueAs" | "valueAsNumber" | "valueAsDate"> | undefined;
679
+ type?: string | undefined;
680
+ placeholder?: string | undefined;
681
+ children?: React$1.ReactNode;
591
682
  };
592
683
  /**
593
684
  * The default BaseField component
594
- * Composes the Chakra UI FormControl component, with FormLabel, FormHelperText and FormErrorMessage.
685
+ * Composes the Chakra UI Field component, with Label, HelperText and ErrorText.
595
686
  */
596
687
  declare const BaseField: React$1.FC<BaseFieldProps>;
597
688
 
@@ -625,4 +716,4 @@ declare const createField: <TType = unknown, TProps extends object = object>(com
625
716
  */
626
717
  declare const Form: FormType<unknown, object, any, object>;
627
718
 
628
- export { ArrayField, ArrayFieldAddButton, type ArrayFieldButtonProps, ArrayFieldContainer, type ArrayFieldContainerProps, type ArrayFieldOptions, 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 FieldOptions, type FieldProps, type FieldResolver, type FieldRules, type FieldsProps, FieldsProvider, Form, type FormComponent, FormLayout, type FormLayoutProps, FormLegend, type FormProps, FormProvider, type FormRenderContext, type FormType, FormValue, type GetBaseField, type GetFieldResolver, InputField, type InputFieldProps, ObjectField, type ObjectFieldProps, type ObjectSchema, SubmitButton, type SubmitButtonProps, TextareaField, type TextareaFieldProps, type UseArrayFieldReturn, type UseArrayFieldRowProps, type UseArrayFieldRowReturn, WatchField, type WatchFieldProps, type WithFields, createField, createForm, defaultFieldTypes, objectFieldResolver, useArrayField, useArrayFieldAddButton, useArrayFieldContext, useArrayFieldRemoveButton, useArrayFieldRow, useArrayFieldRowContext, useBaseField, useField, useFormContext };
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 };