@saas-ui/forms 2.0.0-next.14 → 2.0.0-next.16

Sign up to get free protection for your applications and to get access to all the features.
@@ -1,340 +1,9 @@
1
- import * as _chakra_ui_checkbox_dist_checkbox from '@chakra-ui/checkbox/dist/checkbox';
2
- import * as _chakra_ui_switch_dist_switch from '@chakra-ui/switch/dist/switch';
3
- import * as _chakra_ui_textarea_dist_textarea from '@chakra-ui/textarea/dist/textarea';
4
- import * as react_hook_form from 'react-hook-form';
5
- import { FieldValues, FieldPath, RegisterOptions, UseFormReturn, UseFormProps, UseFieldArrayReturn, WatchObserver, SubmitHandler, SubmitErrorHandler } from 'react-hook-form';
6
- import * as react from 'react';
7
- import react__default from 'react';
8
- import * as _chakra_ui_system_dist_system_types from '@chakra-ui/system/dist/system.types';
9
- import { ButtonProps, InputProps, RadioGroupProps, MenuProps, SelectProps as SelectProps$1, UsePinInputProps, SystemProps, FormControlProps, HTMLChakraProps, NumberInputProps as NumberInputProps$1, StackDirection, MenuItemOptionProps, ResponsiveValue, TextareaProps, SwitchProps, CheckboxProps, RadioProps } from '@chakra-ui/react';
10
- import { FocusableElement } from '@chakra-ui/utils';
11
- import { MaybeRenderProp } from '@chakra-ui/react-utils';
12
- import * as zod from 'zod';
13
- import { z } from 'zod';
14
- import * as _saas_ui_forms from '@saas-ui/forms';
15
- import { FieldProps as FieldProps$1, FormProps as FormProps$1, CreateFormProps } from '@saas-ui/forms';
1
+ import { FieldProps, FieldValues, WithFields, FormProps, CreateFormProps } from '@saas-ui/forms';
2
+ import * as z from 'zod';
3
+ import { z as z$1 } from 'zod';
16
4
  import { zodResolver } from '@hookform/resolvers/zod';
17
5
  export { zodResolver } from '@hookform/resolvers/zod';
18
6
 
19
- interface SubmitButtonProps extends ButtonProps {
20
- /**
21
- * Disable the submit button if the form is untouched.
22
- *
23
- * Change the default behavior by updating
24
- * `SubmitButton.defaultProps.disableIfUntouched`
25
- */
26
- disableIfUntouched?: boolean;
27
- /**
28
- * Disable the submit button if the form is invalid.
29
- *
30
- * Change the default behavior by updating
31
- * `SubmitButton.defaultProps.disableIfInvalid`
32
- */
33
- disableIfInvalid?: boolean;
34
- }
35
-
36
- interface NumberInputOptions {
37
- /**
38
- * Hide the stepper.
39
- */
40
- hideStepper?: boolean;
41
- /**
42
- * Render a custom increment icon.
43
- */
44
- incrementIcon?: react.ReactNode;
45
- /**
46
- * Render a custom decrement icon.
47
- */
48
- decrementIcon?: react.ReactNode;
49
- }
50
- interface NumberInputProps extends NumberInputProps$1, NumberInputOptions {
51
- }
52
-
53
- interface PasswordOptions {
54
- viewIcon?: react__default.ReactNode;
55
- viewOffIcon?: react__default.ReactNode;
56
- leftAddon?: react__default.ReactNode;
57
- }
58
- interface PasswordInputProps extends InputProps, PasswordOptions {
59
- }
60
-
61
- interface RadioOption extends Omit<RadioProps, 'value' | 'label'>, FieldOption {
62
- }
63
- type RadioOptions = FieldOptions<RadioOption>;
64
- interface RadioInputOptions {
65
- options: RadioOptions;
66
- spacing?: SystemProps['margin'];
67
- direction?: StackDirection;
68
- }
69
- interface RadioInputProps extends Omit<RadioGroupProps, 'children'>, RadioInputOptions {
70
- }
71
-
72
- interface SelectOptions {
73
- /**
74
- * The name of the input field in a native form.
75
- */
76
- name: string;
77
- /**
78
- * The value of the select field.
79
- */
80
- value?: string | string[];
81
- /**
82
- * The initial value of the select field.
83
- */
84
- defaultValue?: string | string[];
85
- /**
86
- * The callback invoked when the value of the select field changes.
87
- * @param value The value of the select field.
88
- */
89
- onChange?: (value: string | string[]) => void;
90
- /**
91
- * The placeholder text when there's no value.
92
- */
93
- placeholder?: string;
94
- /**
95
- * If `true`, the select will be disabled.
96
- */
97
- isDisabled?: boolean;
98
- /**
99
- * An array of options
100
- * If you leave this empty the children prop will be rendered.
101
- */
102
- options?: FieldOptions<SelectOption>;
103
- /**
104
- * Enable multiple select.
105
- */
106
- multiple?: boolean;
107
- /**
108
- * The function used to render the value of the select field.
109
- * @param value The value of the select field.
110
- * @returns The rendered value.
111
- */
112
- renderValue?: (value: string | string[]) => react__default.ReactNode;
113
- }
114
-
115
- interface SelectProps extends Omit<MenuProps, 'children'>, SelectOptions {
116
- }
117
- interface SelectOption extends Omit<MenuItemOptionProps, 'value'>, FieldOption {
118
- }
119
- /**
120
- * An option in a select list
121
- *
122
- * @see https://saas-ui.dev/docs/components/forms/select
123
- */
124
- declare const SelectOption: _chakra_ui_system_dist_system_types.ComponentWithAs<"button", MenuItemOptionProps>;
125
-
126
- interface Option$1 {
127
- value: string;
128
- label?: string;
129
- }
130
- interface NativeSelectOptions {
131
- options?: Option$1[];
132
- }
133
- interface NativeSelectProps extends SelectProps$1, NativeSelectOptions {
134
- }
135
-
136
- interface InputFieldProps extends InputProps {
137
- type?: string;
138
- leftAddon?: react.ReactNode;
139
- rightAddon?: react.ReactNode;
140
- }
141
- interface NumberInputFieldProps extends NumberInputProps {
142
- type: 'number';
143
- }
144
- interface PinFieldProps extends Omit<UsePinInputProps, 'type'> {
145
- pinLength?: number;
146
- pinType?: 'alphanumeric' | 'number';
147
- spacing?: SystemProps['margin'];
148
- }
149
- declare const defaultFieldTypes: {
150
- text: react.FC<InputFieldProps & BaseFieldProps<react_hook_form.FieldValues, string>>;
151
- email: react.FC<InputFieldProps & BaseFieldProps<react_hook_form.FieldValues, string>>;
152
- url: react.FC<InputFieldProps & BaseFieldProps<react_hook_form.FieldValues, string>>;
153
- phone: react.FC<InputFieldProps & BaseFieldProps<react_hook_form.FieldValues, string>>;
154
- number: react.FC<NumberInputFieldProps & BaseFieldProps<react_hook_form.FieldValues, string>>;
155
- password: react.FC<PasswordInputProps & BaseFieldProps<react_hook_form.FieldValues, string>>;
156
- textarea: react.FC<TextareaProps & BaseFieldProps<react_hook_form.FieldValues, string>>;
157
- switch: react.FC<SwitchProps & BaseFieldProps<react_hook_form.FieldValues, string>>;
158
- select: react.FC<SelectProps & BaseFieldProps<react_hook_form.FieldValues, string>>;
159
- checkbox: react.FC<CheckboxProps & BaseFieldProps<react_hook_form.FieldValues, string>>;
160
- radio: react.FC<RadioInputProps & BaseFieldProps<react_hook_form.FieldValues, string>>;
161
- pin: react.FC<PinFieldProps & BaseFieldProps<react_hook_form.FieldValues, string>>;
162
- 'native-select': react.FC<NativeSelectProps & BaseFieldProps<react_hook_form.FieldValues, string>>;
163
- };
164
- type DefaultFields = typeof defaultFieldTypes;
165
-
166
- type FieldOption = {
167
- label?: string;
168
- value: string;
169
- };
170
- type FieldOptions<TOption extends FieldOption = FieldOption> = Array<string> | Array<TOption>;
171
- type ValueOf<T> = T[keyof T];
172
- type ShallowMerge<A, B> = Omit<A, keyof B> & B;
173
- type Split<S extends string, D extends string> = string extends S ? string[] : S extends '' ? [] : S extends `${infer T}${D}${infer U}` ? [T, ...Split<U, D>] : [S];
174
- type MapPath<T extends string[]> = T extends [infer U, ...infer R] ? U extends string ? `${U extends `${number}` ? '$' : U}${R[0] extends string ? '.' : ''}${R extends string[] ? MapPath<R> : ''}` : '' : '';
175
- type TransformPath<T extends string> = MapPath<Split<T, '.'>>;
176
- type ArrayFieldPath<Name extends string> = Name extends string ? TransformPath<Name> : never;
177
- interface BaseFieldProps<TFieldValues extends FieldValues = FieldValues, TName extends FieldPath<TFieldValues> = FieldPath<TFieldValues>> extends Omit<FormControlProps, 'label' | 'type'> {
178
- /**
179
- * The field name
180
- */
181
- name: TName | ArrayFieldPath<TName>;
182
- /**
183
- * The field label
184
- */
185
- label?: string;
186
- /**
187
- * Hide the field label
188
- */
189
- hideLabel?: boolean;
190
- /**
191
- * Field help text
192
- */
193
- help?: string;
194
- /**
195
- * React hook form rules
196
- */
197
- rules?: Omit<RegisterOptions<TFieldValues, TName>, 'valueAsNumber' | 'valueAsDate' | 'setValueAs' | 'disabled'>;
198
- /**
199
- * Build-in types:
200
- * text, number, password, textarea, select, native-select, checkbox, radio, switch, pin
201
- *
202
- * Will default to a text field if there is no matching type.
203
- */
204
- type?: string;
205
- /**
206
- * The input placeholder
207
- */
208
- placeholder?: string;
209
- }
210
- type MergeFieldProps<FieldDefs, TFieldValues extends FieldValues = FieldValues, TName extends FieldPath<TFieldValues> = FieldPath<TFieldValues>> = ValueOf<{
211
- [K in keyof FieldDefs]: FieldDefs[K] extends React.FC<infer Props> ? {
212
- type?: K;
213
- } & ShallowMerge<Props, BaseFieldProps<TFieldValues, TName>> : never;
214
- }>;
215
- type FieldProps<TFieldValues extends FieldValues = FieldValues> = MergeFieldProps<DefaultFields, TFieldValues>;
216
- type DefaultFieldOverrides = {
217
- submit?: SubmitButtonProps;
218
- [key: string]: any;
219
- };
220
-
221
- type FieldResolver = {
222
- getFields(): BaseFieldProps[];
223
- getNestedFields(name: string): BaseFieldProps[];
224
- };
225
-
226
- interface DisplayIfProps<TFieldValues extends FieldValues = FieldValues, TName extends FieldPath<TFieldValues> = FieldPath<TFieldValues>> {
227
- children: react.ReactElement;
228
- name: TName;
229
- defaultValue?: unknown;
230
- isDisabled?: boolean;
231
- isExact?: boolean;
232
- condition?: (value: unknown, context: UseFormReturn<TFieldValues>) => boolean;
233
- }
234
-
235
- interface UseArrayFieldReturn extends UseFieldArrayReturn {
236
- /**
237
- * The array field name
238
- */
239
- name: string;
240
- /**
241
- * The default value for new items
242
- */
243
- defaultValue: Record<string, any>;
244
- /**
245
- * Min amount of items
246
- */
247
- min?: number;
248
- /**
249
- * Max amount of items
250
- */
251
- max?: number;
252
- }
253
- interface ArrayFieldOptions<TFieldValues extends FieldValues = FieldValues, TName extends FieldPath<TFieldValues> = FieldPath<TFieldValues>> {
254
- /**
255
- * The field name
256
- */
257
- name: TName;
258
- /**
259
- * Default value for new values in the array
260
- */
261
- defaultValue?: Record<string, any>;
262
- /**
263
- * Default key name for rows, change this if your data uses a different 'id' field
264
- * @default "id"
265
- */
266
- keyName?: string;
267
- min?: number;
268
- max?: number;
269
- }
270
- interface ArrayFieldProps<TFieldValues extends FieldValues = FieldValues, TName extends FieldPath<TFieldValues> = FieldPath<TFieldValues>> extends ArrayFieldOptions<TFieldValues, TName>, Omit<BaseFieldProps<TFieldValues, TName>, 'name' | 'defaultValue' | 'children'> {
271
- children: MaybeRenderProp<ArrayField[]>;
272
- }
273
- interface ArrayField {
274
- id: string;
275
- [key: string]: unknown;
276
- }
277
- /**
278
- * The wrapper component that composes the default ArrayField functionality.
279
- *
280
- * @see Docs https://saas-ui.dev/docs/components/forms/array-field
281
- */
282
- declare const ArrayField: ((props: ArrayFieldProps & {
283
- ref?: react.ForwardedRef<UseArrayFieldReturn>;
284
- }) => react.ReactElement) & {
285
- displayName: string;
286
- };
287
-
288
- interface ObjectFieldProps<TFieldValues extends FieldValues = FieldValues, TName extends FieldPath<TFieldValues> = FieldPath<TFieldValues>> extends BaseFieldProps {
289
- name: TName;
290
- children: react.ReactNode;
291
- columns?: ResponsiveValue<number>;
292
- spacing?: ResponsiveValue<string | number>;
293
- }
294
-
295
- interface FormRenderContext<TFieldValues extends FieldValues = FieldValues, TContext extends object = object, TFieldTypes = FieldProps<TFieldValues>> extends UseFormReturn<TFieldValues, TContext> {
296
- Field: react.FC<TFieldTypes & react.RefAttributes<FocusableElement>>;
297
- DisplayIf: react.FC<DisplayIfProps<TFieldValues>>;
298
- ArrayField: react.FC<ArrayFieldProps<TFieldValues> & react.RefAttributes<UseArrayFieldReturn>>;
299
- ObjectField: react.FC<ObjectFieldProps<TFieldValues>>;
300
- }
301
- interface FormOptions<TFieldValues extends FieldValues = FieldValues, TContext extends object = object, TSchema = any, TFieldTypes = FieldProps<TFieldValues>> {
302
- /**
303
- * The form schema.
304
- */
305
- schema?: TSchema;
306
- /**
307
- * Triggers when any of the field change.
308
- */
309
- onChange?: WatchObserver<TFieldValues>;
310
- /**
311
- * The submit handler.
312
- */
313
- onSubmit: SubmitHandler<TFieldValues>;
314
- /**
315
- * Triggers when there are validation errors.
316
- */
317
- onError?: SubmitErrorHandler<TFieldValues>;
318
- /**
319
- * The Hook Form state ref.
320
- */
321
- formRef?: react.RefObject<UseFormReturn<TFieldValues, TContext>>;
322
- /**
323
- * The form children, can be a render prop or a ReactNode.
324
- */
325
- children?: MaybeRenderProp<FormRenderContext<TFieldValues, TContext, TFieldTypes>>;
326
- /**
327
- * The field resolver, used to resolve the fields from schemas.
328
- */
329
- fieldResolver?: FieldResolver;
330
- /**
331
- * Field overrides
332
- */
333
- fields?: DefaultFieldOverrides;
334
- }
335
- interface FormProps<TFieldValues extends FieldValues = FieldValues, TContext extends object = object, TSchema = any, TFieldTypes = FieldProps<TFieldValues>> extends UseFormProps<TFieldValues, TContext>, Omit<HTMLChakraProps<'form'>, 'children' | 'onChange' | 'onSubmit' | 'onError'>, FormOptions<TFieldValues, TContext, TSchema, TFieldTypes> {
336
- }
337
-
338
7
  type Options = {
339
8
  min?: number;
340
9
  max?: number;
@@ -345,11 +14,11 @@ type Options = {
345
14
  * @param schema The Yup schema
346
15
  * @returns {FieldProps[]}
347
16
  */
348
- declare const getFieldsFromSchema: (schema: zod.ZodTypeAny) => FieldProps$1[];
349
- declare const getNestedSchema: (schema: zod.ZodTypeAny, path: string) => any;
350
- declare const zodFieldResolver: <T extends zod.ZodTypeAny>(schema: T) => {
351
- getFields(): FieldProps$1[];
352
- getNestedFields(name: string): FieldProps$1[];
17
+ declare const getFieldsFromSchema: (schema: z.ZodTypeAny) => FieldProps[];
18
+ declare const getNestedSchema: (schema: z.ZodTypeAny, path: string) => any;
19
+ declare const zodFieldResolver: <T extends z.ZodTypeAny>(schema: T) => {
20
+ getFields(): FieldProps[];
21
+ getNestedFields(name: string): FieldProps[];
353
22
  };
354
23
  interface ZodMeta {
355
24
  label: string;
@@ -363,246 +32,15 @@ interface CreateZodFormProps<FieldDefs> extends CreateFormProps<FieldDefs> {
363
32
  schemaOptions?: ResolverArgs[1];
364
33
  resolverOptions?: ResolverArgs[2];
365
34
  }
366
- declare const createZodForm: <FieldDefs>(options?: CreateZodFormProps<FieldDefs> | undefined) => <TSchema extends z.AnyZodObject = z.AnyZodObject, TContext extends object = object>(props: Omit<FormProps$1<z.TypeOf<TSchema>, TContext, TSchema, _saas_ui_forms.FieldProps<z.TypeOf<TSchema>>>, "children" | "fields"> & {
367
- children?: react.ReactNode | ((props: _saas_ui_forms.FormRenderContext<z.TypeOf<TSchema>, TContext, ((FieldDefs extends never ? {
368
- text: react.FC<_saas_ui_forms.InputFieldProps & _saas_ui_forms.BaseFieldProps<_saas_ui_forms.FieldValues, string>>;
369
- email: react.FC<_saas_ui_forms.InputFieldProps & _saas_ui_forms.BaseFieldProps<_saas_ui_forms.FieldValues, string>>;
370
- url: react.FC<_saas_ui_forms.InputFieldProps & _saas_ui_forms.BaseFieldProps<_saas_ui_forms.FieldValues, string>>;
371
- phone: react.FC<_saas_ui_forms.InputFieldProps & _saas_ui_forms.BaseFieldProps<_saas_ui_forms.FieldValues, string>>;
372
- number: react.FC<_saas_ui_forms.NumberInputFieldProps & _saas_ui_forms.BaseFieldProps<_saas_ui_forms.FieldValues, string>>;
373
- password: react.FC<_saas_ui_forms.PasswordInputProps & _saas_ui_forms.BaseFieldProps<_saas_ui_forms.FieldValues, string>>;
374
- textarea: react.FC<_chakra_ui_textarea_dist_textarea.TextareaProps & _saas_ui_forms.BaseFieldProps<_saas_ui_forms.FieldValues, string>>;
375
- switch: react.FC<_chakra_ui_switch_dist_switch.SwitchProps & _saas_ui_forms.BaseFieldProps<_saas_ui_forms.FieldValues, string>>;
376
- select: react.FC<_saas_ui_forms.SelectProps & _saas_ui_forms.BaseFieldProps<_saas_ui_forms.FieldValues, string>>;
377
- checkbox: react.FC<_chakra_ui_checkbox_dist_checkbox.CheckboxProps & _saas_ui_forms.BaseFieldProps<_saas_ui_forms.FieldValues, string>>;
378
- radio: react.FC<_saas_ui_forms.RadioInputProps & _saas_ui_forms.BaseFieldProps<_saas_ui_forms.FieldValues, string>>;
379
- pin: react.FC<_saas_ui_forms.PinFieldProps & _saas_ui_forms.BaseFieldProps<_saas_ui_forms.FieldValues, string>>;
380
- 'native-select': react.FC<_saas_ui_forms.NativeSelectProps & _saas_ui_forms.BaseFieldProps<_saas_ui_forms.FieldValues, string>>;
381
- } : Omit<{
382
- text: react.FC<_saas_ui_forms.InputFieldProps & _saas_ui_forms.BaseFieldProps<_saas_ui_forms.FieldValues, string>>;
383
- email: react.FC<_saas_ui_forms.InputFieldProps & _saas_ui_forms.BaseFieldProps<_saas_ui_forms.FieldValues, string>>;
384
- url: react.FC<_saas_ui_forms.InputFieldProps & _saas_ui_forms.BaseFieldProps<_saas_ui_forms.FieldValues, string>>;
385
- phone: react.FC<_saas_ui_forms.InputFieldProps & _saas_ui_forms.BaseFieldProps<_saas_ui_forms.FieldValues, string>>;
386
- number: react.FC<_saas_ui_forms.NumberInputFieldProps & _saas_ui_forms.BaseFieldProps<_saas_ui_forms.FieldValues, string>>;
387
- password: react.FC<_saas_ui_forms.PasswordInputProps & _saas_ui_forms.BaseFieldProps<_saas_ui_forms.FieldValues, string>>;
388
- textarea: react.FC<_chakra_ui_textarea_dist_textarea.TextareaProps & _saas_ui_forms.BaseFieldProps<_saas_ui_forms.FieldValues, string>>;
389
- switch: react.FC<_chakra_ui_switch_dist_switch.SwitchProps & _saas_ui_forms.BaseFieldProps<_saas_ui_forms.FieldValues, string>>;
390
- select: react.FC<_saas_ui_forms.SelectProps & _saas_ui_forms.BaseFieldProps<_saas_ui_forms.FieldValues, string>>;
391
- checkbox: react.FC<_chakra_ui_checkbox_dist_checkbox.CheckboxProps & _saas_ui_forms.BaseFieldProps<_saas_ui_forms.FieldValues, string>>;
392
- radio: react.FC<_saas_ui_forms.RadioInputProps & _saas_ui_forms.BaseFieldProps<_saas_ui_forms.FieldValues, string>>;
393
- pin: react.FC<_saas_ui_forms.PinFieldProps & _saas_ui_forms.BaseFieldProps<_saas_ui_forms.FieldValues, string>>;
394
- 'native-select': react.FC<_saas_ui_forms.NativeSelectProps & _saas_ui_forms.BaseFieldProps<_saas_ui_forms.FieldValues, string>>;
395
- }, keyof FieldDefs> & FieldDefs) extends infer T ? { [K in keyof T]: (FieldDefs extends never ? {
396
- text: react.FC<_saas_ui_forms.InputFieldProps & _saas_ui_forms.BaseFieldProps<_saas_ui_forms.FieldValues, string>>;
397
- email: react.FC<_saas_ui_forms.InputFieldProps & _saas_ui_forms.BaseFieldProps<_saas_ui_forms.FieldValues, string>>;
398
- url: react.FC<_saas_ui_forms.InputFieldProps & _saas_ui_forms.BaseFieldProps<_saas_ui_forms.FieldValues, string>>;
399
- phone: react.FC<_saas_ui_forms.InputFieldProps & _saas_ui_forms.BaseFieldProps<_saas_ui_forms.FieldValues, string>>;
400
- number: react.FC<_saas_ui_forms.NumberInputFieldProps & _saas_ui_forms.BaseFieldProps<_saas_ui_forms.FieldValues, string>>;
401
- password: react.FC<_saas_ui_forms.PasswordInputProps & _saas_ui_forms.BaseFieldProps<_saas_ui_forms.FieldValues, string>>;
402
- textarea: react.FC<_chakra_ui_textarea_dist_textarea.TextareaProps & _saas_ui_forms.BaseFieldProps<_saas_ui_forms.FieldValues, string>>;
403
- switch: react.FC<_chakra_ui_switch_dist_switch.SwitchProps & _saas_ui_forms.BaseFieldProps<_saas_ui_forms.FieldValues, string>>;
404
- select: react.FC<_saas_ui_forms.SelectProps & _saas_ui_forms.BaseFieldProps<_saas_ui_forms.FieldValues, string>>;
405
- checkbox: react.FC<_chakra_ui_checkbox_dist_checkbox.CheckboxProps & _saas_ui_forms.BaseFieldProps<_saas_ui_forms.FieldValues, string>>;
406
- radio: react.FC<_saas_ui_forms.RadioInputProps & _saas_ui_forms.BaseFieldProps<_saas_ui_forms.FieldValues, string>>;
407
- pin: react.FC<_saas_ui_forms.PinFieldProps & _saas_ui_forms.BaseFieldProps<_saas_ui_forms.FieldValues, string>>;
408
- 'native-select': react.FC<_saas_ui_forms.NativeSelectProps & _saas_ui_forms.BaseFieldProps<_saas_ui_forms.FieldValues, string>>;
409
- } : Omit<{
410
- text: react.FC<_saas_ui_forms.InputFieldProps & _saas_ui_forms.BaseFieldProps<_saas_ui_forms.FieldValues, string>>;
411
- email: react.FC<_saas_ui_forms.InputFieldProps & _saas_ui_forms.BaseFieldProps<_saas_ui_forms.FieldValues, string>>;
412
- url: react.FC<_saas_ui_forms.InputFieldProps & _saas_ui_forms.BaseFieldProps<_saas_ui_forms.FieldValues, string>>;
413
- phone: react.FC<_saas_ui_forms.InputFieldProps & _saas_ui_forms.BaseFieldProps<_saas_ui_forms.FieldValues, string>>;
414
- number: react.FC<_saas_ui_forms.NumberInputFieldProps & _saas_ui_forms.BaseFieldProps<_saas_ui_forms.FieldValues, string>>;
415
- password: react.FC<_saas_ui_forms.PasswordInputProps & _saas_ui_forms.BaseFieldProps<_saas_ui_forms.FieldValues, string>>;
416
- textarea: react.FC<_chakra_ui_textarea_dist_textarea.TextareaProps & _saas_ui_forms.BaseFieldProps<_saas_ui_forms.FieldValues, string>>;
417
- switch: react.FC<_chakra_ui_switch_dist_switch.SwitchProps & _saas_ui_forms.BaseFieldProps<_saas_ui_forms.FieldValues, string>>;
418
- select: react.FC<_saas_ui_forms.SelectProps & _saas_ui_forms.BaseFieldProps<_saas_ui_forms.FieldValues, string>>;
419
- checkbox: react.FC<_chakra_ui_checkbox_dist_checkbox.CheckboxProps & _saas_ui_forms.BaseFieldProps<_saas_ui_forms.FieldValues, string>>;
420
- radio: react.FC<_saas_ui_forms.RadioInputProps & _saas_ui_forms.BaseFieldProps<_saas_ui_forms.FieldValues, string>>;
421
- pin: react.FC<_saas_ui_forms.PinFieldProps & _saas_ui_forms.BaseFieldProps<_saas_ui_forms.FieldValues, string>>;
422
- 'native-select': react.FC<_saas_ui_forms.NativeSelectProps & _saas_ui_forms.BaseFieldProps<_saas_ui_forms.FieldValues, string>>;
423
- }, keyof FieldDefs> & FieldDefs)[K] extends react.FC<infer Props> ? {
424
- type?: K | undefined;
425
- } & Omit<Props, keyof _saas_ui_forms.BaseFieldProps<TFieldValues, TName>> & _saas_ui_forms.BaseFieldProps<z.TypeOf<TSchema>, react_hook_form.Path<z.TypeOf<TSchema>>> : never; } : never)[keyof (FieldDefs extends never ? {
426
- text: react.FC<_saas_ui_forms.InputFieldProps & _saas_ui_forms.BaseFieldProps<_saas_ui_forms.FieldValues, string>>;
427
- email: react.FC<_saas_ui_forms.InputFieldProps & _saas_ui_forms.BaseFieldProps<_saas_ui_forms.FieldValues, string>>;
428
- url: react.FC<_saas_ui_forms.InputFieldProps & _saas_ui_forms.BaseFieldProps<_saas_ui_forms.FieldValues, string>>;
429
- phone: react.FC<_saas_ui_forms.InputFieldProps & _saas_ui_forms.BaseFieldProps<_saas_ui_forms.FieldValues, string>>;
430
- number: react.FC<_saas_ui_forms.NumberInputFieldProps & _saas_ui_forms.BaseFieldProps<_saas_ui_forms.FieldValues, string>>;
431
- password: react.FC<_saas_ui_forms.PasswordInputProps & _saas_ui_forms.BaseFieldProps<_saas_ui_forms.FieldValues, string>>;
432
- textarea: react.FC<_chakra_ui_textarea_dist_textarea.TextareaProps & _saas_ui_forms.BaseFieldProps<_saas_ui_forms.FieldValues, string>>;
433
- switch: react.FC<_chakra_ui_switch_dist_switch.SwitchProps & _saas_ui_forms.BaseFieldProps<_saas_ui_forms.FieldValues, string>>;
434
- select: react.FC<_saas_ui_forms.SelectProps & _saas_ui_forms.BaseFieldProps<_saas_ui_forms.FieldValues, string>>;
435
- checkbox: react.FC<_chakra_ui_checkbox_dist_checkbox.CheckboxProps & _saas_ui_forms.BaseFieldProps<_saas_ui_forms.FieldValues, string>>;
436
- radio: react.FC<_saas_ui_forms.RadioInputProps & _saas_ui_forms.BaseFieldProps<_saas_ui_forms.FieldValues, string>>;
437
- pin: react.FC<_saas_ui_forms.PinFieldProps & _saas_ui_forms.BaseFieldProps<_saas_ui_forms.FieldValues, string>>;
438
- 'native-select': react.FC<_saas_ui_forms.NativeSelectProps & _saas_ui_forms.BaseFieldProps<_saas_ui_forms.FieldValues, string>>;
439
- } : Omit<{
440
- text: react.FC<_saas_ui_forms.InputFieldProps & _saas_ui_forms.BaseFieldProps<_saas_ui_forms.FieldValues, string>>;
441
- email: react.FC<_saas_ui_forms.InputFieldProps & _saas_ui_forms.BaseFieldProps<_saas_ui_forms.FieldValues, string>>;
442
- url: react.FC<_saas_ui_forms.InputFieldProps & _saas_ui_forms.BaseFieldProps<_saas_ui_forms.FieldValues, string>>;
443
- phone: react.FC<_saas_ui_forms.InputFieldProps & _saas_ui_forms.BaseFieldProps<_saas_ui_forms.FieldValues, string>>;
444
- number: react.FC<_saas_ui_forms.NumberInputFieldProps & _saas_ui_forms.BaseFieldProps<_saas_ui_forms.FieldValues, string>>;
445
- password: react.FC<_saas_ui_forms.PasswordInputProps & _saas_ui_forms.BaseFieldProps<_saas_ui_forms.FieldValues, string>>;
446
- textarea: react.FC<_chakra_ui_textarea_dist_textarea.TextareaProps & _saas_ui_forms.BaseFieldProps<_saas_ui_forms.FieldValues, string>>;
447
- switch: react.FC<_chakra_ui_switch_dist_switch.SwitchProps & _saas_ui_forms.BaseFieldProps<_saas_ui_forms.FieldValues, string>>;
448
- select: react.FC<_saas_ui_forms.SelectProps & _saas_ui_forms.BaseFieldProps<_saas_ui_forms.FieldValues, string>>;
449
- checkbox: react.FC<_chakra_ui_checkbox_dist_checkbox.CheckboxProps & _saas_ui_forms.BaseFieldProps<_saas_ui_forms.FieldValues, string>>;
450
- radio: react.FC<_saas_ui_forms.RadioInputProps & _saas_ui_forms.BaseFieldProps<_saas_ui_forms.FieldValues, string>>;
451
- pin: react.FC<_saas_ui_forms.PinFieldProps & _saas_ui_forms.BaseFieldProps<_saas_ui_forms.FieldValues, string>>;
452
- 'native-select': react.FC<_saas_ui_forms.NativeSelectProps & _saas_ui_forms.BaseFieldProps<_saas_ui_forms.FieldValues, string>>;
453
- }, keyof FieldDefs> & FieldDefs)]>) => react.ReactNode);
454
- fields?: ({ [K_1 in react_hook_form.Path<z.TypeOf<TSchema>> | (react_hook_form.Path<z.TypeOf<TSchema>> extends infer T_1 ? T_1 extends react_hook_form.Path<z.TypeOf<TSchema>> ? T_1 extends string ? (string extends T_1 ? (T_1 & string)[] : T_1 extends infer T_2 ? T_2 extends T_1 ? T_2 extends "" ? [] : T_2 extends `${infer T_3}.${infer U}` ? [T_3, ...string extends U ? (U & string)[] : U extends "" ? [] : U extends `${infer T_3}.${infer U}` ? [T_3, ...string extends U ? (U & string)[] : U extends "" ? [] : U extends `${infer T_3}.${infer U}` ? [T_3, ...string extends U ? (U & string)[] : U extends "" ? [] : U extends `${infer T_3}.${infer U}` ? [T_3, ...string extends U ? (U & string)[] : U extends "" ? [] : U extends `${infer T_3}.${infer U}` ? [T_3, ...string extends U ? (U & string)[] : U extends "" ? [] : U extends `${infer T_3}.${infer U}` ? [T_3, ...string extends U ? (U & string)[] : U extends "" ? [] : U extends `${infer T_3}.${infer U}` ? [T_3, ...string extends U ? (U & string)[] : U extends "" ? [] : U extends `${infer T_3}.${infer U}` ? [T_3, ...string extends U ? (U & string)[] : U extends "" ? [] : U extends `${infer T_3}.${infer U}` ? [T_3, ...string extends U ? (U & string)[] : U extends "" ? [] : U extends `${infer T_3}.${infer U}` ? [T_3, ...string extends U ? (U & string)[] : U extends "" ? [] : U extends `${infer T_3}.${infer U}` ? [T_3, ...any] : [U]] : [U]] : [U]] : [U]] : [U]] : [U]] : [U]] : [U]] : [U]] : [U]] : [T_2] : never : never) extends infer T_4 ? T_4 extends (string extends T_1 ? (T_1 & string)[] : T_1 extends infer T_15 ? T_15 extends T_1 ? T_15 extends "" ? [] : T_15 extends `${infer T_3}.${infer U}` ? [T_3, ...string extends U ? (U & string)[] : U extends "" ? [] : U extends `${infer T_3}.${infer U}` ? [T_3, ...string extends U ? (U & string)[] : U extends "" ? [] : U extends `${infer T_3}.${infer U}` ? [T_3, ...string extends U ? (U & string)[] : U extends "" ? [] : U extends `${infer T_3}.${infer U}` ? [T_3, ...string extends U ? (U & string)[] : U extends "" ? [] : U extends `${infer T_3}.${infer U}` ? [T_3, ...string extends U ? (U & string)[] : U extends "" ? [] : U extends `${infer T_3}.${infer U}` ? [T_3, ...string extends U ? (U & string)[] : U extends "" ? [] : U extends `${infer T_3}.${infer U}` ? [T_3, ...string extends U ? (U & string)[] : U extends "" ? [] : U extends `${infer T_3}.${infer U}` ? [T_3, ...string extends U ? (U & string)[] : U extends "" ? [] : U extends `${infer T_3}.${infer U}` ? [T_3, ...string extends U ? (U & string)[] : U extends "" ? [] : U extends `${infer T_3}.${infer U}` ? [T_3, ...string extends U ? (U & string)[] : U extends "" ? [] : U extends `${infer T_3}.${infer U}` ? [T_3, ...any] : [U]] : [U]] : [U]] : [U]] : [U]] : [U]] : [U]] : [U]] : [U]] : [U]] : [T_15] : never : never) ? T_4 extends [infer U_1, ...infer R] ? U_1 extends string ? `${U_1 extends `${number}` ? "$" : U_1}${R[0] extends string ? "." : ""}${R extends string[] ? R extends infer T_5 ? T_5 extends R ? T_5 extends [infer U_1, ...infer R] ? U_1 extends string ? `${U_1 extends `${number}` ? "$" : U_1}${R[0] extends string ? "." : ""}${R extends string[] ? R extends infer T_6 ? T_6 extends R ? T_6 extends [infer U_1, ...infer R] ? U_1 extends string ? `${U_1 extends `${number}` ? "$" : U_1}${R[0] extends string ? "." : ""}${R extends string[] ? R extends infer T_7 ? T_7 extends R ? T_7 extends [infer U_1, ...infer R] ? U_1 extends string ? `${U_1 extends `${number}` ? "$" : U_1}${R[0] extends string ? "." : ""}${R extends string[] ? R extends infer T_8 ? T_8 extends R ? T_8 extends [infer U_1, ...infer R] ? U_1 extends string ? `${U_1 extends `${number}` ? "$" : U_1}${R[0] extends string ? "." : ""}${R extends string[] ? R extends infer T_9 ? T_9 extends R ? T_9 extends [infer U_1, ...infer R] ? U_1 extends string ? `${U_1 extends `${number}` ? "$" : U_1}${R[0] extends string ? "." : ""}${R extends string[] ? R extends infer T_10 ? T_10 extends R ? T_10 extends [infer U_1, ...infer R] ? U_1 extends string ? `${U_1 extends `${number}` ? "$" : U_1}${R[0] extends string ? "." : ""}${R extends string[] ? R extends infer T_11 ? T_11 extends R ? T_11 extends [infer U_1, ...infer R] ? U_1 extends string ? `${U_1 extends `${number}` ? "$" : U_1}${R[0] extends string ? "." : ""}${R extends string[] ? R extends infer T_12 ? T_12 extends R ? T_12 extends [infer U_1, ...infer R] ? U_1 extends string ? `${U_1 extends `${number}` ? "$" : U_1}${R[0] extends string ? "." : ""}${R extends string[] ? R extends infer T_13 ? T_13 extends R ? T_13 extends [infer U_1, ...infer R] ? U_1 extends string ? `${U_1 extends `${number}` ? "$" : U_1}${R[0] extends string ? "." : ""}${R extends string[] ? R extends infer T_14 ? T_14 extends R ? T_14 extends [infer U_1, ...infer R] ? U_1 extends string ? `${U_1 extends `${number}` ? "$" : U_1}${R[0] extends string ? "." : ""}${R extends string[] ? any : ""}` : "" : "" : never : never : ""}` : "" : "" : never : never : ""}` : "" : "" : never : never : ""}` : "" : "" : never : never : ""}` : "" : "" : never : never : ""}` : "" : "" : never : never : ""}` : "" : "" : never : never : ""}` : "" : "" : never : never : ""}` : "" : "" : never : never : ""}` : "" : "" : never : never : ""}` : "" : "" : never : never : never : never : never)]?: Omit<((FieldDefs extends never ? {
455
- text: react.FC<_saas_ui_forms.InputFieldProps & _saas_ui_forms.BaseFieldProps<_saas_ui_forms.FieldValues, string>>;
456
- email: react.FC<_saas_ui_forms.InputFieldProps & _saas_ui_forms.BaseFieldProps<_saas_ui_forms.FieldValues, string>>;
457
- url: react.FC<_saas_ui_forms.InputFieldProps & _saas_ui_forms.BaseFieldProps<_saas_ui_forms.FieldValues, string>>;
458
- phone: react.FC<_saas_ui_forms.InputFieldProps & _saas_ui_forms.BaseFieldProps<_saas_ui_forms.FieldValues, string>>;
459
- number: react.FC<_saas_ui_forms.NumberInputFieldProps & _saas_ui_forms.BaseFieldProps<_saas_ui_forms.FieldValues, string>>;
460
- password: react.FC<_saas_ui_forms.PasswordInputProps & _saas_ui_forms.BaseFieldProps<_saas_ui_forms.FieldValues, string>>;
461
- textarea: react.FC<_chakra_ui_textarea_dist_textarea.TextareaProps & _saas_ui_forms.BaseFieldProps<_saas_ui_forms.FieldValues, string>>;
462
- switch: react.FC<_chakra_ui_switch_dist_switch.SwitchProps & _saas_ui_forms.BaseFieldProps<_saas_ui_forms.FieldValues, string>>;
463
- select: react.FC<_saas_ui_forms.SelectProps & _saas_ui_forms.BaseFieldProps<_saas_ui_forms.FieldValues, string>>;
464
- checkbox: react.FC<_chakra_ui_checkbox_dist_checkbox.CheckboxProps & _saas_ui_forms.BaseFieldProps<_saas_ui_forms.FieldValues, string>>;
465
- radio: react.FC<_saas_ui_forms.RadioInputProps & _saas_ui_forms.BaseFieldProps<_saas_ui_forms.FieldValues, string>>;
466
- pin: react.FC<_saas_ui_forms.PinFieldProps & _saas_ui_forms.BaseFieldProps<_saas_ui_forms.FieldValues, string>>;
467
- 'native-select': react.FC<_saas_ui_forms.NativeSelectProps & _saas_ui_forms.BaseFieldProps<_saas_ui_forms.FieldValues, string>>;
468
- } : Omit<{
469
- text: react.FC<_saas_ui_forms.InputFieldProps & _saas_ui_forms.BaseFieldProps<_saas_ui_forms.FieldValues, string>>;
470
- email: react.FC<_saas_ui_forms.InputFieldProps & _saas_ui_forms.BaseFieldProps<_saas_ui_forms.FieldValues, string>>;
471
- url: react.FC<_saas_ui_forms.InputFieldProps & _saas_ui_forms.BaseFieldProps<_saas_ui_forms.FieldValues, string>>;
472
- phone: react.FC<_saas_ui_forms.InputFieldProps & _saas_ui_forms.BaseFieldProps<_saas_ui_forms.FieldValues, string>>;
473
- number: react.FC<_saas_ui_forms.NumberInputFieldProps & _saas_ui_forms.BaseFieldProps<_saas_ui_forms.FieldValues, string>>;
474
- password: react.FC<_saas_ui_forms.PasswordInputProps & _saas_ui_forms.BaseFieldProps<_saas_ui_forms.FieldValues, string>>;
475
- textarea: react.FC<_chakra_ui_textarea_dist_textarea.TextareaProps & _saas_ui_forms.BaseFieldProps<_saas_ui_forms.FieldValues, string>>;
476
- switch: react.FC<_chakra_ui_switch_dist_switch.SwitchProps & _saas_ui_forms.BaseFieldProps<_saas_ui_forms.FieldValues, string>>;
477
- select: react.FC<_saas_ui_forms.SelectProps & _saas_ui_forms.BaseFieldProps<_saas_ui_forms.FieldValues, string>>;
478
- checkbox: react.FC<_chakra_ui_checkbox_dist_checkbox.CheckboxProps & _saas_ui_forms.BaseFieldProps<_saas_ui_forms.FieldValues, string>>;
479
- radio: react.FC<_saas_ui_forms.RadioInputProps & _saas_ui_forms.BaseFieldProps<_saas_ui_forms.FieldValues, string>>;
480
- pin: react.FC<_saas_ui_forms.PinFieldProps & _saas_ui_forms.BaseFieldProps<_saas_ui_forms.FieldValues, string>>;
481
- 'native-select': react.FC<_saas_ui_forms.NativeSelectProps & _saas_ui_forms.BaseFieldProps<_saas_ui_forms.FieldValues, string>>;
482
- }, keyof FieldDefs> & FieldDefs) extends infer T_16 ? { [K_2 in keyof T_16]: (FieldDefs extends never ? {
483
- text: react.FC<_saas_ui_forms.InputFieldProps & _saas_ui_forms.BaseFieldProps<_saas_ui_forms.FieldValues, string>>;
484
- email: react.FC<_saas_ui_forms.InputFieldProps & _saas_ui_forms.BaseFieldProps<_saas_ui_forms.FieldValues, string>>;
485
- url: react.FC<_saas_ui_forms.InputFieldProps & _saas_ui_forms.BaseFieldProps<_saas_ui_forms.FieldValues, string>>;
486
- phone: react.FC<_saas_ui_forms.InputFieldProps & _saas_ui_forms.BaseFieldProps<_saas_ui_forms.FieldValues, string>>;
487
- number: react.FC<_saas_ui_forms.NumberInputFieldProps & _saas_ui_forms.BaseFieldProps<_saas_ui_forms.FieldValues, string>>;
488
- password: react.FC<_saas_ui_forms.PasswordInputProps & _saas_ui_forms.BaseFieldProps<_saas_ui_forms.FieldValues, string>>;
489
- textarea: react.FC<_chakra_ui_textarea_dist_textarea.TextareaProps & _saas_ui_forms.BaseFieldProps<_saas_ui_forms.FieldValues, string>>;
490
- switch: react.FC<_chakra_ui_switch_dist_switch.SwitchProps & _saas_ui_forms.BaseFieldProps<_saas_ui_forms.FieldValues, string>>;
491
- select: react.FC<_saas_ui_forms.SelectProps & _saas_ui_forms.BaseFieldProps<_saas_ui_forms.FieldValues, string>>;
492
- checkbox: react.FC<_chakra_ui_checkbox_dist_checkbox.CheckboxProps & _saas_ui_forms.BaseFieldProps<_saas_ui_forms.FieldValues, string>>;
493
- radio: react.FC<_saas_ui_forms.RadioInputProps & _saas_ui_forms.BaseFieldProps<_saas_ui_forms.FieldValues, string>>;
494
- pin: react.FC<_saas_ui_forms.PinFieldProps & _saas_ui_forms.BaseFieldProps<_saas_ui_forms.FieldValues, string>>;
495
- 'native-select': react.FC<_saas_ui_forms.NativeSelectProps & _saas_ui_forms.BaseFieldProps<_saas_ui_forms.FieldValues, string>>;
496
- } : Omit<{
497
- text: react.FC<_saas_ui_forms.InputFieldProps & _saas_ui_forms.BaseFieldProps<_saas_ui_forms.FieldValues, string>>;
498
- email: react.FC<_saas_ui_forms.InputFieldProps & _saas_ui_forms.BaseFieldProps<_saas_ui_forms.FieldValues, string>>;
499
- url: react.FC<_saas_ui_forms.InputFieldProps & _saas_ui_forms.BaseFieldProps<_saas_ui_forms.FieldValues, string>>;
500
- phone: react.FC<_saas_ui_forms.InputFieldProps & _saas_ui_forms.BaseFieldProps<_saas_ui_forms.FieldValues, string>>;
501
- number: react.FC<_saas_ui_forms.NumberInputFieldProps & _saas_ui_forms.BaseFieldProps<_saas_ui_forms.FieldValues, string>>;
502
- password: react.FC<_saas_ui_forms.PasswordInputProps & _saas_ui_forms.BaseFieldProps<_saas_ui_forms.FieldValues, string>>;
503
- textarea: react.FC<_chakra_ui_textarea_dist_textarea.TextareaProps & _saas_ui_forms.BaseFieldProps<_saas_ui_forms.FieldValues, string>>;
504
- switch: react.FC<_chakra_ui_switch_dist_switch.SwitchProps & _saas_ui_forms.BaseFieldProps<_saas_ui_forms.FieldValues, string>>;
505
- select: react.FC<_saas_ui_forms.SelectProps & _saas_ui_forms.BaseFieldProps<_saas_ui_forms.FieldValues, string>>;
506
- checkbox: react.FC<_chakra_ui_checkbox_dist_checkbox.CheckboxProps & _saas_ui_forms.BaseFieldProps<_saas_ui_forms.FieldValues, string>>;
507
- radio: react.FC<_saas_ui_forms.RadioInputProps & _saas_ui_forms.BaseFieldProps<_saas_ui_forms.FieldValues, string>>;
508
- pin: react.FC<_saas_ui_forms.PinFieldProps & _saas_ui_forms.BaseFieldProps<_saas_ui_forms.FieldValues, string>>;
509
- 'native-select': react.FC<_saas_ui_forms.NativeSelectProps & _saas_ui_forms.BaseFieldProps<_saas_ui_forms.FieldValues, string>>;
510
- }, keyof FieldDefs> & FieldDefs)[K_2] extends react.FC<infer Props> ? {
511
- type?: K_2 | undefined;
512
- } & Omit<Props, keyof _saas_ui_forms.BaseFieldProps<TFieldValues, TName>> & _saas_ui_forms.BaseFieldProps<z.TypeOf<TSchema>, react_hook_form.Path<z.TypeOf<TSchema>>> : never; } : never)[keyof (FieldDefs extends never ? {
513
- text: react.FC<_saas_ui_forms.InputFieldProps & _saas_ui_forms.BaseFieldProps<_saas_ui_forms.FieldValues, string>>;
514
- email: react.FC<_saas_ui_forms.InputFieldProps & _saas_ui_forms.BaseFieldProps<_saas_ui_forms.FieldValues, string>>;
515
- url: react.FC<_saas_ui_forms.InputFieldProps & _saas_ui_forms.BaseFieldProps<_saas_ui_forms.FieldValues, string>>;
516
- phone: react.FC<_saas_ui_forms.InputFieldProps & _saas_ui_forms.BaseFieldProps<_saas_ui_forms.FieldValues, string>>;
517
- number: react.FC<_saas_ui_forms.NumberInputFieldProps & _saas_ui_forms.BaseFieldProps<_saas_ui_forms.FieldValues, string>>;
518
- password: react.FC<_saas_ui_forms.PasswordInputProps & _saas_ui_forms.BaseFieldProps<_saas_ui_forms.FieldValues, string>>;
519
- textarea: react.FC<_chakra_ui_textarea_dist_textarea.TextareaProps & _saas_ui_forms.BaseFieldProps<_saas_ui_forms.FieldValues, string>>;
520
- switch: react.FC<_chakra_ui_switch_dist_switch.SwitchProps & _saas_ui_forms.BaseFieldProps<_saas_ui_forms.FieldValues, string>>;
521
- select: react.FC<_saas_ui_forms.SelectProps & _saas_ui_forms.BaseFieldProps<_saas_ui_forms.FieldValues, string>>;
522
- checkbox: react.FC<_chakra_ui_checkbox_dist_checkbox.CheckboxProps & _saas_ui_forms.BaseFieldProps<_saas_ui_forms.FieldValues, string>>;
523
- radio: react.FC<_saas_ui_forms.RadioInputProps & _saas_ui_forms.BaseFieldProps<_saas_ui_forms.FieldValues, string>>;
524
- pin: react.FC<_saas_ui_forms.PinFieldProps & _saas_ui_forms.BaseFieldProps<_saas_ui_forms.FieldValues, string>>;
525
- 'native-select': react.FC<_saas_ui_forms.NativeSelectProps & _saas_ui_forms.BaseFieldProps<_saas_ui_forms.FieldValues, string>>;
526
- } : Omit<{
527
- text: react.FC<_saas_ui_forms.InputFieldProps & _saas_ui_forms.BaseFieldProps<_saas_ui_forms.FieldValues, string>>;
528
- email: react.FC<_saas_ui_forms.InputFieldProps & _saas_ui_forms.BaseFieldProps<_saas_ui_forms.FieldValues, string>>;
529
- url: react.FC<_saas_ui_forms.InputFieldProps & _saas_ui_forms.BaseFieldProps<_saas_ui_forms.FieldValues, string>>;
530
- phone: react.FC<_saas_ui_forms.InputFieldProps & _saas_ui_forms.BaseFieldProps<_saas_ui_forms.FieldValues, string>>;
531
- number: react.FC<_saas_ui_forms.NumberInputFieldProps & _saas_ui_forms.BaseFieldProps<_saas_ui_forms.FieldValues, string>>;
532
- password: react.FC<_saas_ui_forms.PasswordInputProps & _saas_ui_forms.BaseFieldProps<_saas_ui_forms.FieldValues, string>>;
533
- textarea: react.FC<_chakra_ui_textarea_dist_textarea.TextareaProps & _saas_ui_forms.BaseFieldProps<_saas_ui_forms.FieldValues, string>>;
534
- switch: react.FC<_chakra_ui_switch_dist_switch.SwitchProps & _saas_ui_forms.BaseFieldProps<_saas_ui_forms.FieldValues, string>>;
535
- select: react.FC<_saas_ui_forms.SelectProps & _saas_ui_forms.BaseFieldProps<_saas_ui_forms.FieldValues, string>>;
536
- checkbox: react.FC<_chakra_ui_checkbox_dist_checkbox.CheckboxProps & _saas_ui_forms.BaseFieldProps<_saas_ui_forms.FieldValues, string>>;
537
- radio: react.FC<_saas_ui_forms.RadioInputProps & _saas_ui_forms.BaseFieldProps<_saas_ui_forms.FieldValues, string>>;
538
- pin: react.FC<_saas_ui_forms.PinFieldProps & _saas_ui_forms.BaseFieldProps<_saas_ui_forms.FieldValues, string>>;
539
- 'native-select': react.FC<_saas_ui_forms.NativeSelectProps & _saas_ui_forms.BaseFieldProps<_saas_ui_forms.FieldValues, string>>;
540
- }, keyof FieldDefs> & FieldDefs)], "name"> | undefined; } & {
541
- submit?: _saas_ui_forms.SubmitButtonProps | undefined;
542
- }) | undefined;
543
- } & {
544
- ref?: react.ForwardedRef<HTMLFormElement> | undefined;
545
- }) => React.ReactElement;
35
+ type ZodFormType<FieldDefs, ExtraProps = object, ExtraOverrides = object, Type extends 'zod' = 'zod'> = (<TFieldValues extends FieldValues = FieldValues, // placeholder
36
+ TContext extends object = object, TSchema extends z$1.AnyZodObject = z$1.AnyZodObject>(props: WithFields<FormProps<z$1.infer<TSchema>, TContext, TSchema>, FieldDefs, ExtraOverrides> & {
37
+ ref?: React.ForwardedRef<HTMLFormElement>;
38
+ } & ExtraProps) => React.ReactElement) & {
39
+ displayName?: string;
40
+ id?: string;
41
+ };
42
+ declare const createZodForm: <FieldDefs>(options?: CreateZodFormProps<FieldDefs> | undefined) => ZodFormType<FieldDefs, object, object, "zod">;
546
43
 
547
- declare const Form: <TSchema extends zod.AnyZodObject = zod.AnyZodObject, TContext extends object = object>(props: Omit<FormProps<zod.TypeOf<TSchema>, TContext, TSchema, FieldProps<zod.TypeOf<TSchema>>>, "children" | "fields"> & {
548
- children?: react.ReactNode | ((props: FormRenderContext<zod.TypeOf<TSchema>, TContext, ({
549
- type?: "number" | undefined;
550
- } & Omit<NumberInputFieldProps & BaseFieldProps<react_hook_form.FieldValues, string>, keyof BaseFieldProps<TFieldValues, TName>> & BaseFieldProps<zod.TypeOf<TSchema>, react_hook_form.Path<zod.TypeOf<TSchema>>>) | ({
551
- type?: "text" | undefined;
552
- } & Omit<InputFieldProps & BaseFieldProps<react_hook_form.FieldValues, string>, keyof BaseFieldProps<TFieldValues, TName>> & BaseFieldProps<zod.TypeOf<TSchema>, react_hook_form.Path<zod.TypeOf<TSchema>>>) | ({
553
- type?: "email" | undefined;
554
- } & Omit<InputFieldProps & BaseFieldProps<react_hook_form.FieldValues, string>, keyof BaseFieldProps<TFieldValues, TName>> & BaseFieldProps<zod.TypeOf<TSchema>, react_hook_form.Path<zod.TypeOf<TSchema>>>) | ({
555
- type?: "url" | undefined;
556
- } & Omit<InputFieldProps & BaseFieldProps<react_hook_form.FieldValues, string>, keyof BaseFieldProps<TFieldValues, TName>> & BaseFieldProps<zod.TypeOf<TSchema>, react_hook_form.Path<zod.TypeOf<TSchema>>>) | ({
557
- type?: "phone" | undefined;
558
- } & Omit<InputFieldProps & BaseFieldProps<react_hook_form.FieldValues, string>, keyof BaseFieldProps<TFieldValues, TName>> & BaseFieldProps<zod.TypeOf<TSchema>, react_hook_form.Path<zod.TypeOf<TSchema>>>) | ({
559
- type?: "password" | undefined;
560
- } & Omit<PasswordInputProps & BaseFieldProps<react_hook_form.FieldValues, string>, keyof BaseFieldProps<TFieldValues, TName>> & BaseFieldProps<zod.TypeOf<TSchema>, react_hook_form.Path<zod.TypeOf<TSchema>>>) | ({
561
- type?: "textarea" | undefined;
562
- } & Omit<_chakra_ui_textarea_dist_textarea.TextareaProps & BaseFieldProps<react_hook_form.FieldValues, string>, keyof BaseFieldProps<TFieldValues, TName>> & BaseFieldProps<zod.TypeOf<TSchema>, react_hook_form.Path<zod.TypeOf<TSchema>>>) | ({
563
- type?: "switch" | undefined;
564
- } & Omit<_chakra_ui_switch_dist_switch.SwitchProps & BaseFieldProps<react_hook_form.FieldValues, string>, keyof BaseFieldProps<TFieldValues, TName>> & BaseFieldProps<zod.TypeOf<TSchema>, react_hook_form.Path<zod.TypeOf<TSchema>>>) | ({
565
- type?: "select" | undefined;
566
- } & Omit<SelectProps & BaseFieldProps<react_hook_form.FieldValues, string>, keyof BaseFieldProps<TFieldValues, TName>> & BaseFieldProps<zod.TypeOf<TSchema>, react_hook_form.Path<zod.TypeOf<TSchema>>>) | ({
567
- type?: "checkbox" | undefined;
568
- } & Omit<_chakra_ui_checkbox_dist_checkbox.CheckboxProps & BaseFieldProps<react_hook_form.FieldValues, string>, keyof BaseFieldProps<TFieldValues, TName>> & BaseFieldProps<zod.TypeOf<TSchema>, react_hook_form.Path<zod.TypeOf<TSchema>>>) | ({
569
- type?: "radio" | undefined;
570
- } & Omit<RadioInputProps & BaseFieldProps<react_hook_form.FieldValues, string>, keyof BaseFieldProps<TFieldValues, TName>> & BaseFieldProps<zod.TypeOf<TSchema>, react_hook_form.Path<zod.TypeOf<TSchema>>>) | ({
571
- type?: "pin" | undefined;
572
- } & Omit<PinFieldProps & BaseFieldProps<react_hook_form.FieldValues, string>, keyof BaseFieldProps<TFieldValues, TName>> & BaseFieldProps<zod.TypeOf<TSchema>, react_hook_form.Path<zod.TypeOf<TSchema>>>) | ({
573
- type?: "native-select" | undefined;
574
- } & Omit<NativeSelectProps & BaseFieldProps<react_hook_form.FieldValues, string>, keyof BaseFieldProps<TFieldValues, TName>> & BaseFieldProps<zod.TypeOf<TSchema>, react_hook_form.Path<zod.TypeOf<TSchema>>>)>) => react.ReactNode);
575
- fields?: ({ [K in react_hook_form.Path<zod.TypeOf<TSchema>> | (react_hook_form.Path<zod.TypeOf<TSchema>> extends infer T ? T extends react_hook_form.Path<zod.TypeOf<TSchema>> ? T extends string ? (string extends T ? (T & string)[] : T extends infer T_1 ? T_1 extends T ? T_1 extends "" ? [] : T_1 extends `${infer T_2}.${infer U}` ? [T_2, ...string extends U ? (U & string)[] : U extends "" ? [] : U extends `${infer T_2}.${infer U}` ? [T_2, ...string extends U ? (U & string)[] : U extends "" ? [] : U extends `${infer T_2}.${infer U}` ? [T_2, ...string extends U ? (U & string)[] : U extends "" ? [] : U extends `${infer T_2}.${infer U}` ? [T_2, ...string extends U ? (U & string)[] : U extends "" ? [] : U extends `${infer T_2}.${infer U}` ? [T_2, ...string extends U ? (U & string)[] : U extends "" ? [] : U extends `${infer T_2}.${infer U}` ? [T_2, ...string extends U ? (U & string)[] : U extends "" ? [] : U extends `${infer T_2}.${infer U}` ? [T_2, ...string extends U ? (U & string)[] : U extends "" ? [] : U extends `${infer T_2}.${infer U}` ? [T_2, ...string extends U ? (U & string)[] : U extends "" ? [] : U extends `${infer T_2}.${infer U}` ? [T_2, ...string extends U ? (U & string)[] : U extends "" ? [] : U extends `${infer T_2}.${infer U}` ? [T_2, ...string extends U ? (U & string)[] : U extends "" ? [] : U extends `${infer T_2}.${infer U}` ? [T_2, ...any] : [U]] : [U]] : [U]] : [U]] : [U]] : [U]] : [U]] : [U]] : [U]] : [U]] : [T_1] : never : never) extends infer T_3 ? T_3 extends (string extends T ? (T & string)[] : T extends infer T_14 ? T_14 extends T ? T_14 extends "" ? [] : T_14 extends `${infer T_2}.${infer U}` ? [T_2, ...string extends U ? (U & string)[] : U extends "" ? [] : U extends `${infer T_2}.${infer U}` ? [T_2, ...string extends U ? (U & string)[] : U extends "" ? [] : U extends `${infer T_2}.${infer U}` ? [T_2, ...string extends U ? (U & string)[] : U extends "" ? [] : U extends `${infer T_2}.${infer U}` ? [T_2, ...string extends U ? (U & string)[] : U extends "" ? [] : U extends `${infer T_2}.${infer U}` ? [T_2, ...string extends U ? (U & string)[] : U extends "" ? [] : U extends `${infer T_2}.${infer U}` ? [T_2, ...string extends U ? (U & string)[] : U extends "" ? [] : U extends `${infer T_2}.${infer U}` ? [T_2, ...string extends U ? (U & string)[] : U extends "" ? [] : U extends `${infer T_2}.${infer U}` ? [T_2, ...string extends U ? (U & string)[] : U extends "" ? [] : U extends `${infer T_2}.${infer U}` ? [T_2, ...string extends U ? (U & string)[] : U extends "" ? [] : U extends `${infer T_2}.${infer U}` ? [T_2, ...string extends U ? (U & string)[] : U extends "" ? [] : U extends `${infer T_2}.${infer U}` ? [T_2, ...any] : [U]] : [U]] : [U]] : [U]] : [U]] : [U]] : [U]] : [U]] : [U]] : [U]] : [T_14] : never : never) ? T_3 extends [infer U_1, ...infer R] ? U_1 extends string ? `${U_1 extends `${number}` ? "$" : U_1}${R[0] extends string ? "." : ""}${R extends string[] ? R extends infer T_4 ? T_4 extends R ? T_4 extends [infer U_1, ...infer R] ? U_1 extends string ? `${U_1 extends `${number}` ? "$" : U_1}${R[0] extends string ? "." : ""}${R extends string[] ? R extends infer T_5 ? T_5 extends R ? T_5 extends [infer U_1, ...infer R] ? U_1 extends string ? `${U_1 extends `${number}` ? "$" : U_1}${R[0] extends string ? "." : ""}${R extends string[] ? R extends infer T_6 ? T_6 extends R ? T_6 extends [infer U_1, ...infer R] ? U_1 extends string ? `${U_1 extends `${number}` ? "$" : U_1}${R[0] extends string ? "." : ""}${R extends string[] ? R extends infer T_7 ? T_7 extends R ? T_7 extends [infer U_1, ...infer R] ? U_1 extends string ? `${U_1 extends `${number}` ? "$" : U_1}${R[0] extends string ? "." : ""}${R extends string[] ? R extends infer T_8 ? T_8 extends R ? T_8 extends [infer U_1, ...infer R] ? U_1 extends string ? `${U_1 extends `${number}` ? "$" : U_1}${R[0] extends string ? "." : ""}${R extends string[] ? R extends infer T_9 ? T_9 extends R ? T_9 extends [infer U_1, ...infer R] ? U_1 extends string ? `${U_1 extends `${number}` ? "$" : U_1}${R[0] extends string ? "." : ""}${R extends string[] ? R extends infer T_10 ? T_10 extends R ? T_10 extends [infer U_1, ...infer R] ? U_1 extends string ? `${U_1 extends `${number}` ? "$" : U_1}${R[0] extends string ? "." : ""}${R extends string[] ? R extends infer T_11 ? T_11 extends R ? T_11 extends [infer U_1, ...infer R] ? U_1 extends string ? `${U_1 extends `${number}` ? "$" : U_1}${R[0] extends string ? "." : ""}${R extends string[] ? R extends infer T_12 ? T_12 extends R ? T_12 extends [infer U_1, ...infer R] ? U_1 extends string ? `${U_1 extends `${number}` ? "$" : U_1}${R[0] extends string ? "." : ""}${R extends string[] ? R extends infer T_13 ? T_13 extends R ? T_13 extends [infer U_1, ...infer R] ? U_1 extends string ? `${U_1 extends `${number}` ? "$" : U_1}${R[0] extends string ? "." : ""}${R extends string[] ? any : ""}` : "" : "" : never : never : ""}` : "" : "" : never : never : ""}` : "" : "" : never : never : ""}` : "" : "" : never : never : ""}` : "" : "" : never : never : ""}` : "" : "" : never : never : ""}` : "" : "" : never : never : ""}` : "" : "" : never : never : ""}` : "" : "" : never : never : ""}` : "" : "" : never : never : ""}` : "" : "" : never : never : never : never : never)]?: Omit<({
576
- type?: "number" | undefined;
577
- } & Omit<NumberInputFieldProps & BaseFieldProps<react_hook_form.FieldValues, string>, keyof BaseFieldProps<TFieldValues, TName>> & BaseFieldProps<zod.TypeOf<TSchema>, react_hook_form.Path<zod.TypeOf<TSchema>>>) | ({
578
- type?: "text" | undefined;
579
- } & Omit<InputFieldProps & BaseFieldProps<react_hook_form.FieldValues, string>, keyof BaseFieldProps<TFieldValues, TName>> & BaseFieldProps<zod.TypeOf<TSchema>, react_hook_form.Path<zod.TypeOf<TSchema>>>) | ({
580
- type?: "email" | undefined;
581
- } & Omit<InputFieldProps & BaseFieldProps<react_hook_form.FieldValues, string>, keyof BaseFieldProps<TFieldValues, TName>> & BaseFieldProps<zod.TypeOf<TSchema>, react_hook_form.Path<zod.TypeOf<TSchema>>>) | ({
582
- type?: "url" | undefined;
583
- } & Omit<InputFieldProps & BaseFieldProps<react_hook_form.FieldValues, string>, keyof BaseFieldProps<TFieldValues, TName>> & BaseFieldProps<zod.TypeOf<TSchema>, react_hook_form.Path<zod.TypeOf<TSchema>>>) | ({
584
- type?: "phone" | undefined;
585
- } & Omit<InputFieldProps & BaseFieldProps<react_hook_form.FieldValues, string>, keyof BaseFieldProps<TFieldValues, TName>> & BaseFieldProps<zod.TypeOf<TSchema>, react_hook_form.Path<zod.TypeOf<TSchema>>>) | ({
586
- type?: "password" | undefined;
587
- } & Omit<PasswordInputProps & BaseFieldProps<react_hook_form.FieldValues, string>, keyof BaseFieldProps<TFieldValues, TName>> & BaseFieldProps<zod.TypeOf<TSchema>, react_hook_form.Path<zod.TypeOf<TSchema>>>) | ({
588
- type?: "textarea" | undefined;
589
- } & Omit<_chakra_ui_textarea_dist_textarea.TextareaProps & BaseFieldProps<react_hook_form.FieldValues, string>, keyof BaseFieldProps<TFieldValues, TName>> & BaseFieldProps<zod.TypeOf<TSchema>, react_hook_form.Path<zod.TypeOf<TSchema>>>) | ({
590
- type?: "switch" | undefined;
591
- } & Omit<_chakra_ui_switch_dist_switch.SwitchProps & BaseFieldProps<react_hook_form.FieldValues, string>, keyof BaseFieldProps<TFieldValues, TName>> & BaseFieldProps<zod.TypeOf<TSchema>, react_hook_form.Path<zod.TypeOf<TSchema>>>) | ({
592
- type?: "select" | undefined;
593
- } & Omit<SelectProps & BaseFieldProps<react_hook_form.FieldValues, string>, keyof BaseFieldProps<TFieldValues, TName>> & BaseFieldProps<zod.TypeOf<TSchema>, react_hook_form.Path<zod.TypeOf<TSchema>>>) | ({
594
- type?: "checkbox" | undefined;
595
- } & Omit<_chakra_ui_checkbox_dist_checkbox.CheckboxProps & BaseFieldProps<react_hook_form.FieldValues, string>, keyof BaseFieldProps<TFieldValues, TName>> & BaseFieldProps<zod.TypeOf<TSchema>, react_hook_form.Path<zod.TypeOf<TSchema>>>) | ({
596
- type?: "radio" | undefined;
597
- } & Omit<RadioInputProps & BaseFieldProps<react_hook_form.FieldValues, string>, keyof BaseFieldProps<TFieldValues, TName>> & BaseFieldProps<zod.TypeOf<TSchema>, react_hook_form.Path<zod.TypeOf<TSchema>>>) | ({
598
- type?: "pin" | undefined;
599
- } & Omit<PinFieldProps & BaseFieldProps<react_hook_form.FieldValues, string>, keyof BaseFieldProps<TFieldValues, TName>> & BaseFieldProps<zod.TypeOf<TSchema>, react_hook_form.Path<zod.TypeOf<TSchema>>>) | ({
600
- type?: "native-select" | undefined;
601
- } & Omit<NativeSelectProps & BaseFieldProps<react_hook_form.FieldValues, string>, keyof BaseFieldProps<TFieldValues, TName>> & BaseFieldProps<zod.TypeOf<TSchema>, react_hook_form.Path<zod.TypeOf<TSchema>>>), "name"> | undefined; } & {
602
- submit?: SubmitButtonProps | undefined;
603
- }) | undefined;
604
- } & {
605
- ref?: react.ForwardedRef<HTMLFormElement> | undefined;
606
- }) => react.ReactElement<any, string | react.JSXElementConstructor<any>>;
44
+ declare const Form: ZodFormType<unknown, object, object, "zod">;
607
45
 
608
- export { Form, Options, ZodMeta, createZodForm, getFieldsFromSchema, getNestedSchema, zodFieldResolver, zodMeta, zodParseMeta };
46
+ export { Form, Options, ZodFormType, ZodMeta, createZodForm, getFieldsFromSchema, getNestedSchema, zodFieldResolver, zodMeta, zodParseMeta };