@saas-ui/forms 3.0.0-alpha.2 → 3.0.0-alpha.20

Sign up to get free protection for your applications and to get access to all the features.
package/CHANGELOG.md CHANGED
@@ -1,5 +1,166 @@
1
1
  # @saas-ui/forms
2
2
 
3
+ ## 3.0.0-alpha.20
4
+
5
+ ### Patch Changes
6
+
7
+ - Updated dependencies [f85d493]
8
+ - Updated dependencies [f85d493]
9
+ - @saas-ui/react@3.0.0-alpha.20
10
+ - @saas-ui/core@3.0.0-alpha.6
11
+
12
+ ## 3.0.0-alpha.19
13
+
14
+ ### Patch Changes
15
+
16
+ - 38082d4: Improved horizontal field styles
17
+ - Updated dependencies [ba3b566]
18
+ - Updated dependencies [38082d4]
19
+ - Updated dependencies [ba3b566]
20
+ - Updated dependencies [ba3b566]
21
+ - Updated dependencies [3a73bc8]
22
+ - Updated dependencies [ba3b566]
23
+ - Updated dependencies [727b902]
24
+ - @saas-ui/react@3.0.0-alpha.19
25
+
26
+ ## 3.0.0-alpha.18
27
+
28
+ ### Patch Changes
29
+
30
+ - Updated dependencies [eb02362]
31
+ - Updated dependencies [e7fe684]
32
+ - Updated dependencies [eb02362]
33
+ - Updated dependencies [eb02362]
34
+ - @saas-ui/react@3.0.0-alpha.18
35
+ - @saas-ui/core@3.0.0-alpha.5
36
+
37
+ ## 3.0.0-alpha.17
38
+
39
+ ### Patch Changes
40
+
41
+ - Updated dependencies [a2ef175]
42
+ - @saas-ui/react@3.0.0-alpha.17
43
+
44
+ ## 3.0.0-alpha.16
45
+
46
+ ### Patch Changes
47
+
48
+ - Updated dependencies [205580d]
49
+ - Updated dependencies [205580d]
50
+ - @saas-ui/react@3.0.0-alpha.16
51
+
52
+ ## 3.0.0-alpha.15
53
+
54
+ ### Patch Changes
55
+
56
+ - Updated dependencies [2285040]
57
+ - Updated dependencies [2285040]
58
+ - @saas-ui/react@3.0.0-alpha.15
59
+
60
+ ## 3.0.0-alpha.14
61
+
62
+ ### Patch Changes
63
+
64
+ - Updated dependencies [0067207]
65
+ - Updated dependencies [0067207]
66
+ - @saas-ui/react@3.0.0-alpha.14
67
+
68
+ ## 3.0.0-alpha.13
69
+
70
+ ### Major Changes
71
+
72
+ - b51aff9: BREAKING: getBaseField should now return props and Component
73
+
74
+ ### Patch Changes
75
+
76
+ - b51aff9: Improved prop handling of base field
77
+ - Updated dependencies [b51aff9]
78
+ - Updated dependencies [b51aff9]
79
+ - @saas-ui/react@3.0.0-alpha.13
80
+
81
+ ## 3.0.0-alpha.12
82
+
83
+ ### Patch Changes
84
+
85
+ - Updated dependencies [61ce1b5]
86
+ - @saas-ui/react@3.0.0-alpha.12
87
+
88
+ ## 3.0.0-alpha.11
89
+
90
+ ### Patch Changes
91
+
92
+ - Updated dependencies [19309d4]
93
+ - Updated dependencies [19309d4]
94
+ - @saas-ui/react@3.0.0-alpha.11
95
+
96
+ ## 3.0.0-alpha.10
97
+
98
+ ### Patch Changes
99
+
100
+ - Updated dependencies [212a7e6]
101
+ - Updated dependencies [942e9a0]
102
+ - Updated dependencies [212a7e6]
103
+ - Updated dependencies [65fac53]
104
+ - @saas-ui/react@3.0.0-alpha.10
105
+
106
+ ## 3.0.0-alpha.9
107
+
108
+ ### Patch Changes
109
+
110
+ - Updated dependencies [f0f5ab0]
111
+ - @saas-ui/react@3.0.0-alpha.9
112
+
113
+ ## 3.0.0-alpha.8
114
+
115
+ ### Patch Changes
116
+
117
+ - Updated dependencies [64e680e]
118
+ - Updated dependencies [64e680e]
119
+ - @saas-ui/react@3.0.0-alpha.8
120
+
121
+ ## 3.0.0-alpha.7
122
+
123
+ ### Patch Changes
124
+
125
+ - Updated dependencies [8e760c5]
126
+ - @saas-ui/react@3.0.0-alpha.7
127
+
128
+ ## 3.0.0-alpha.6
129
+
130
+ ### Minor Changes
131
+
132
+ - 95c8652: Update to Chakra UI 3.2.1
133
+
134
+ ### Patch Changes
135
+
136
+ - Updated dependencies [95c8652]
137
+ - @saas-ui/react@3.0.0-alpha.6
138
+ - @saas-ui/core@3.0.0-alpha.4
139
+
140
+ ## 3.0.0-alpha.5
141
+
142
+ ### Patch Changes
143
+
144
+ - Updated dependencies [e9fec88]
145
+ - Updated dependencies [f62c3d6]
146
+ - @saas-ui/react@3.0.0-alpha.5
147
+
148
+ ## 3.0.0-alpha.4
149
+
150
+ ### Patch Changes
151
+
152
+ - Updated dependencies [7808a76]
153
+ - @saas-ui/react@3.0.0-alpha.4
154
+
155
+ ## 3.0.0-alpha.3
156
+
157
+ ### Patch Changes
158
+
159
+ - cee2e9c: Removed chakra ui dependency of core package
160
+ - Updated dependencies [cee2e9c]
161
+ - @saas-ui/core@3.0.0-alpha.3
162
+ - @saas-ui/react@3.0.0-alpha.3
163
+
3
164
  ## 3.0.0-alpha.2
4
165
 
5
166
  ### Minor Changes
package/dist/index.d.mts CHANGED
@@ -1,6 +1,6 @@
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 { RecipeProps, SimpleGridProps, InputProps, TextareaProps, SystemStyleObject, 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
6
  import { FieldValues, FieldPath, UseFormReturn as UseFormReturn$1, UseFieldArrayReturn, UseFormProps, WatchObserver, SubmitHandler, SubmitErrorHandler, ResolverOptions, ResolverResult, RegisterOptions, FormProviderProps as FormProviderProps$1 } from 'react-hook-form';
@@ -19,13 +19,13 @@ interface FormLayoutOptions {
19
19
  columns?: SimpleGridProps['columns'];
20
20
  gap?: SimpleGridProps['gap'];
21
21
  }
22
- interface FormLayoutProps extends RecipeProps<'formLayout'>, FormLayoutOptions, Omit<HTMLChakraProps<'div'>, 'columns'> {
22
+ interface FormLayoutProps extends RecipeProps<'suiFormLayout'>, SimpleGridProps {
23
23
  }
24
24
  /**
25
25
  * Create consistent field spacing and positioning.
26
26
  *
27
27
  * Renders form items in a `SimpleGrid`
28
- * @see https://chakra-ui.com/docs/layout/simple-grid
28
+ * @see https://chakra-ui.com/docs/components/simple-grid
29
29
  *
30
30
  * @see https://saas-ui.dev/docs/components/forms/form
31
31
  */
@@ -46,7 +46,10 @@ declare const TextareaField: React__default.FC<Omit<BaseFieldProps<react_hook_fo
46
46
  interface SwitchFieldProps extends SwitchProps {
47
47
  type: 'switch';
48
48
  }
49
- interface SelectFieldProps extends Omit<Select.RootProps<FieldOption>, 'collection'> {
49
+ interface SelectFieldProps<Multiple extends boolean = boolean> extends Omit<Select.RootProps<FieldOption>, 'collection' | 'value' | 'multiple' | 'onChange' | 'onValueChange'> {
50
+ multiple?: Multiple;
51
+ value?: Multiple extends true ? Array<string> : string;
52
+ onChange?: (value: Multiple extends true ? Array<string> : string) => void;
50
53
  options: FieldOptions;
51
54
  placeholder?: string;
52
55
  triggerProps?: Select.TriggerProps;
@@ -80,7 +83,7 @@ declare const defaultFieldTypes: {
80
83
  checkbox: React__default.FC<Omit<BaseFieldProps<react_hook_form.FieldValues, string>, keyof CheckboxFieldProps> & CheckboxFieldProps>;
81
84
  radio: React__default.FC<Omit<BaseFieldProps<react_hook_form.FieldValues, string>, keyof RadioFieldProps> & RadioFieldProps>;
82
85
  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>;
86
+ select: React__default.FC<Omit<BaseFieldProps<react_hook_form.FieldValues, string>, keyof SelectFieldProps<boolean>> & SelectFieldProps<boolean>>;
84
87
  switch: React__default.FC<Omit<BaseFieldProps<react_hook_form.FieldValues, string>, keyof SwitchFieldProps> & SwitchFieldProps>;
85
88
  textarea: React__default.FC<Omit<BaseFieldProps<react_hook_form.FieldValues, string>, keyof TextareaFieldProps> & TextareaFieldProps>;
86
89
  };
@@ -336,8 +339,14 @@ interface BaseFieldProps<TFieldValues extends FieldValues = FieldValues, TName e
336
339
  children?: React.ReactNode;
337
340
  }
338
341
  type GetBaseField<TProps extends object = object> = () => {
339
- extraProps: string[];
340
- BaseField: React.FC<Omit<BaseFieldProps, 'name'> & {
342
+ /**
343
+ * Extra props to pass to the component
344
+ */
345
+ props: Array<Extract<keyof TProps, string>>;
346
+ /**
347
+ * The component to render
348
+ */
349
+ Component: React.FC<Omit<BaseFieldProps, 'name'> & {
341
350
  name: string;
342
351
  children: React.ReactNode;
343
352
  } & TProps>;
@@ -529,9 +538,9 @@ interface FieldsProps<TSchema = any> {
529
538
  }
530
539
  declare const AutoFields: React$1.FC<FieldsProps>;
531
540
 
532
- interface FieldsContextValue {
533
- fields: Record<string, React__default.FC<any>>;
534
- getBaseField?: GetBaseField<any>;
541
+ interface FieldsContextValue<TFields = any, TBaseFieldProps extends object = object> {
542
+ fields: Record<string, React__default.FC<TFields>>;
543
+ getBaseField?: GetBaseField<TBaseFieldProps>;
535
544
  }
536
545
  declare const FieldsProvider: React__default.FC<{
537
546
  value: FieldsContextValue;
@@ -581,17 +590,21 @@ interface WatchFieldProps<Value = unknown, TFieldValues extends FieldValues = Fi
581
590
  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;
582
591
 
583
592
  declare const useBaseField: (props: BaseFieldProps) => {
584
- controlProps: Pick<BaseFieldProps<react_hook_form.FieldValues, string>, never>;
593
+ rootProps: Omit<BaseFieldProps<react_hook_form.FieldValues, string>, "name" | "label" | "hideLabel" | "help" | "rules" | "type" | "placeholder" | "children">;
585
594
  error: any;
586
595
  touched: any;
587
596
  name: string;
588
597
  label?: string | undefined;
589
598
  hideLabel?: boolean | undefined;
590
599
  help?: string | undefined;
600
+ rules?: Omit<react_hook_form.RegisterOptions<react_hook_form.FieldValues, string>, "disabled" | "setValueAs" | "valueAsNumber" | "valueAsDate"> | undefined;
601
+ type?: string | undefined;
602
+ placeholder?: string | undefined;
603
+ children?: React$1.ReactNode;
591
604
  };
592
605
  /**
593
606
  * The default BaseField component
594
- * Composes the Chakra UI FormControl component, with FormLabel, FormHelperText and FormErrorMessage.
607
+ * Composes the Chakra UI Field component, with Label, HelperText and ErrorText.
595
608
  */
596
609
  declare const BaseField: React$1.FC<BaseFieldProps>;
597
610
 
package/dist/index.d.ts CHANGED
@@ -1,6 +1,6 @@
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 { RecipeProps, SimpleGridProps, InputProps, TextareaProps, SystemStyleObject, 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
6
  import { FieldValues, FieldPath, UseFormReturn as UseFormReturn$1, UseFieldArrayReturn, UseFormProps, WatchObserver, SubmitHandler, SubmitErrorHandler, ResolverOptions, ResolverResult, RegisterOptions, FormProviderProps as FormProviderProps$1 } from 'react-hook-form';
@@ -19,13 +19,13 @@ interface FormLayoutOptions {
19
19
  columns?: SimpleGridProps['columns'];
20
20
  gap?: SimpleGridProps['gap'];
21
21
  }
22
- interface FormLayoutProps extends RecipeProps<'formLayout'>, FormLayoutOptions, Omit<HTMLChakraProps<'div'>, 'columns'> {
22
+ interface FormLayoutProps extends RecipeProps<'suiFormLayout'>, SimpleGridProps {
23
23
  }
24
24
  /**
25
25
  * Create consistent field spacing and positioning.
26
26
  *
27
27
  * Renders form items in a `SimpleGrid`
28
- * @see https://chakra-ui.com/docs/layout/simple-grid
28
+ * @see https://chakra-ui.com/docs/components/simple-grid
29
29
  *
30
30
  * @see https://saas-ui.dev/docs/components/forms/form
31
31
  */
@@ -46,7 +46,10 @@ declare const TextareaField: React__default.FC<Omit<BaseFieldProps<react_hook_fo
46
46
  interface SwitchFieldProps extends SwitchProps {
47
47
  type: 'switch';
48
48
  }
49
- interface SelectFieldProps extends Omit<Select.RootProps<FieldOption>, 'collection'> {
49
+ interface SelectFieldProps<Multiple extends boolean = boolean> extends Omit<Select.RootProps<FieldOption>, 'collection' | 'value' | 'multiple' | 'onChange' | 'onValueChange'> {
50
+ multiple?: Multiple;
51
+ value?: Multiple extends true ? Array<string> : string;
52
+ onChange?: (value: Multiple extends true ? Array<string> : string) => void;
50
53
  options: FieldOptions;
51
54
  placeholder?: string;
52
55
  triggerProps?: Select.TriggerProps;
@@ -80,7 +83,7 @@ declare const defaultFieldTypes: {
80
83
  checkbox: React__default.FC<Omit<BaseFieldProps<react_hook_form.FieldValues, string>, keyof CheckboxFieldProps> & CheckboxFieldProps>;
81
84
  radio: React__default.FC<Omit<BaseFieldProps<react_hook_form.FieldValues, string>, keyof RadioFieldProps> & RadioFieldProps>;
82
85
  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>;
86
+ select: React__default.FC<Omit<BaseFieldProps<react_hook_form.FieldValues, string>, keyof SelectFieldProps<boolean>> & SelectFieldProps<boolean>>;
84
87
  switch: React__default.FC<Omit<BaseFieldProps<react_hook_form.FieldValues, string>, keyof SwitchFieldProps> & SwitchFieldProps>;
85
88
  textarea: React__default.FC<Omit<BaseFieldProps<react_hook_form.FieldValues, string>, keyof TextareaFieldProps> & TextareaFieldProps>;
86
89
  };
@@ -336,8 +339,14 @@ interface BaseFieldProps<TFieldValues extends FieldValues = FieldValues, TName e
336
339
  children?: React.ReactNode;
337
340
  }
338
341
  type GetBaseField<TProps extends object = object> = () => {
339
- extraProps: string[];
340
- BaseField: React.FC<Omit<BaseFieldProps, 'name'> & {
342
+ /**
343
+ * Extra props to pass to the component
344
+ */
345
+ props: Array<Extract<keyof TProps, string>>;
346
+ /**
347
+ * The component to render
348
+ */
349
+ Component: React.FC<Omit<BaseFieldProps, 'name'> & {
341
350
  name: string;
342
351
  children: React.ReactNode;
343
352
  } & TProps>;
@@ -529,9 +538,9 @@ interface FieldsProps<TSchema = any> {
529
538
  }
530
539
  declare const AutoFields: React$1.FC<FieldsProps>;
531
540
 
532
- interface FieldsContextValue {
533
- fields: Record<string, React__default.FC<any>>;
534
- getBaseField?: GetBaseField<any>;
541
+ interface FieldsContextValue<TFields = any, TBaseFieldProps extends object = object> {
542
+ fields: Record<string, React__default.FC<TFields>>;
543
+ getBaseField?: GetBaseField<TBaseFieldProps>;
535
544
  }
536
545
  declare const FieldsProvider: React__default.FC<{
537
546
  value: FieldsContextValue;
@@ -581,17 +590,21 @@ interface WatchFieldProps<Value = unknown, TFieldValues extends FieldValues = Fi
581
590
  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;
582
591
 
583
592
  declare const useBaseField: (props: BaseFieldProps) => {
584
- controlProps: Pick<BaseFieldProps<react_hook_form.FieldValues, string>, never>;
593
+ rootProps: Omit<BaseFieldProps<react_hook_form.FieldValues, string>, "name" | "label" | "hideLabel" | "help" | "rules" | "type" | "placeholder" | "children">;
585
594
  error: any;
586
595
  touched: any;
587
596
  name: string;
588
597
  label?: string | undefined;
589
598
  hideLabel?: boolean | undefined;
590
599
  help?: string | undefined;
600
+ rules?: Omit<react_hook_form.RegisterOptions<react_hook_form.FieldValues, string>, "disabled" | "setValueAs" | "valueAsNumber" | "valueAsDate"> | undefined;
601
+ type?: string | undefined;
602
+ placeholder?: string | undefined;
603
+ children?: React$1.ReactNode;
591
604
  };
592
605
  /**
593
606
  * The default BaseField component
594
- * Composes the Chakra UI FormControl component, with FormLabel, FormHelperText and FormErrorMessage.
607
+ * Composes the Chakra UI Field component, with Label, HelperText and ErrorText.
595
608
  */
596
609
  declare const BaseField: React$1.FC<BaseFieldProps>;
597
610