@ultraviolet/form 2.13.2 → 2.13.3

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.
Files changed (73) hide show
  1. package/dist/components/CheckboxField/index.d.ts +10 -0
  2. package/dist/components/CheckboxField/index.js +40 -41
  3. package/dist/components/CheckboxGroupField/index.d.ts +32 -0
  4. package/dist/components/CheckboxGroupField/index.js +59 -53
  5. package/dist/components/DateField/index.d.ts +16 -0
  6. package/dist/components/DateField/index.js +53 -58
  7. package/dist/components/Form/defaultErrors.d.ts +2 -0
  8. package/dist/components/Form/defaultErrors.js +20 -19
  9. package/dist/components/Form/index.d.ts +69 -0
  10. package/dist/components/Form/index.js +52 -57
  11. package/dist/components/KeyValueField/index.d.ts +33 -0
  12. package/dist/components/KeyValueField/index.js +61 -60
  13. package/dist/components/NumberInputField/index.d.ts +13 -0
  14. package/dist/components/NumberInputField/index.js +39 -45
  15. package/dist/components/NumberInputFieldV2/index.d.ts +11 -0
  16. package/dist/components/NumberInputFieldV2/index.js +45 -51
  17. package/dist/components/RadioField/index.d.ts +12 -0
  18. package/dist/components/RadioField/index.js +36 -42
  19. package/dist/components/RadioGroupField/index.d.ts +28 -0
  20. package/dist/components/RadioGroupField/index.js +31 -32
  21. package/dist/components/SelectInputField/index.d.ts +82 -0
  22. package/dist/components/SelectInputField/index.js +90 -83
  23. package/dist/components/SelectInputFieldV2/index.d.ts +7 -0
  24. package/dist/components/SelectInputFieldV2/index.js +60 -60
  25. package/dist/components/SelectableCardField/index.d.ts +9 -0
  26. package/dist/components/SelectableCardField/index.js +49 -44
  27. package/dist/components/SelectableCardGroupField/index.d.ts +42 -0
  28. package/dist/components/SelectableCardGroupField/index.js +42 -41
  29. package/dist/components/Submit/index.d.ts +17 -0
  30. package/dist/components/Submit/index.js +27 -27
  31. package/dist/components/SubmitErrorAlert/index.d.ts +3 -0
  32. package/dist/components/SubmitErrorAlert/index.js +9 -17
  33. package/dist/components/TagInputField/index.d.ts +6 -0
  34. package/dist/components/TagInputField/index.js +35 -38
  35. package/dist/components/TextAreaField/index.d.ts +11 -0
  36. package/dist/components/TextAreaField/index.js +57 -56
  37. package/dist/components/TextInputField/index.d.ts +18 -0
  38. package/dist/components/TextInputField/index.js +82 -81
  39. package/dist/components/TextInputFieldV2/index.d.ts +12 -0
  40. package/dist/components/TextInputFieldV2/index.js +73 -72
  41. package/dist/components/TimeField/index.d.ts +9 -0
  42. package/dist/components/TimeField/index.js +51 -49
  43. package/dist/components/ToggleField/index.d.ts +10 -0
  44. package/dist/components/ToggleField/index.js +32 -31
  45. package/dist/components/ToggleGroupField/index.d.ts +26 -0
  46. package/dist/components/index.d.ts +22 -0
  47. package/dist/constants.d.ts +1 -0
  48. package/dist/constants.js +4 -3
  49. package/dist/hooks/index.d.ts +5 -0
  50. package/dist/hooks/useField.d.ts +34 -0
  51. package/dist/hooks/useField.js +7 -30
  52. package/dist/hooks/useFieldArray.d.ts +21 -0
  53. package/dist/hooks/useFieldArray.js +9 -22
  54. package/dist/hooks/useForm.d.ts +23 -0
  55. package/dist/hooks/useForm.js +8 -25
  56. package/dist/hooks/useFormState.d.ts +39 -0
  57. package/dist/hooks/useFormState.js +6 -23
  58. package/dist/hooks/useOnFieldChange.d.ts +3 -0
  59. package/dist/hooks/useOnFieldChange.js +10 -11
  60. package/dist/index.d.ts +7 -555
  61. package/dist/index.js +66 -29
  62. package/dist/mocks/index.d.ts +1 -0
  63. package/dist/mocks/mockErrors.d.ts +3 -0
  64. package/dist/providers/ErrorContext/index.d.ts +14 -0
  65. package/dist/providers/ErrorContext/index.js +30 -29
  66. package/dist/providers/index.d.ts +1 -0
  67. package/dist/types.d.ts +32 -0
  68. package/dist/validators/index.d.ts +5 -0
  69. package/dist/validators/maxDate.d.ts +1 -0
  70. package/dist/validators/maxDate.js +4 -3
  71. package/dist/validators/minDate.d.ts +1 -0
  72. package/dist/validators/minDate.js +4 -3
  73. package/package.json +11 -5
package/dist/index.d.ts CHANGED
@@ -1,555 +1,7 @@
1
- import * as _emotion_react_jsx_runtime from '@emotion/react/jsx-runtime';
2
- import { Checkbox, CheckboxGroup, DateInput, Radio, SelectInput, SelectableCard, NumberInput, NumberInputV2, TagInput, TextArea, TextInput, TextInputV2, TimeInput, Toggle, Button, RadioGroup, SelectableCardGroup, SelectInputV2 } from '@ultraviolet/ui';
3
- import * as react from 'react';
4
- import { ComponentProps, ReactNode, FocusEvent, ForwardedRef, FocusEventHandler, Ref, JSX } from 'react';
5
- import * as react_hook_form from 'react-hook-form';
6
- import { FieldValues, FieldPath, Validate, PathValue, Path, UseControllerProps, FieldError, UseFormReturn, DefaultValues, FieldErrors, FieldArrayPath, Control, FieldPathValue, DeepPartial, ArrayPath, FieldArray } from 'react-hook-form';
7
- export { ArrayPath, Control, ControllerRenderProps, DeepPartial, FieldArray, FieldArrayPath, FieldArrayPathValue, FieldErrors, FieldPath, FieldPathByValue, FieldPathValue, FieldPathValues, FieldValues, Path, PathValue, UseFieldArrayMove, UseFieldArrayRemove, UseFormReturn, UseFormSetValue, useController, useFieldArray, useForm, useFormContext, useFormState, useWatch } from 'react-hook-form';
8
- import { CSSObject, Theme, css } from '@emotion/react';
9
- import Select, { OptionProps, GroupBase, Props, CommonProps } from 'react-select';
10
-
11
- declare const FORM_ERROR = "FINAL_FORM/form-error";
12
-
13
- type MetaField = {
14
- min?: number | string;
15
- max?: number | string;
16
- minLength?: number;
17
- maxLength?: number;
18
- regex?: (RegExp | RegExp[])[];
19
- minDate?: Date;
20
- maxDate?: Date;
21
- label: string;
22
- value?: string | number;
23
- };
24
- type RequiredErrors = {
25
- [key in FieldError['type']]: (params: MetaField) => string;
26
- };
27
- type FormErrors = {
28
- [key in 'required' | 'min' | 'max' | 'minLength' | 'maxLength' | 'pattern' | 'minDate' | 'maxDate']: RequiredErrors[key];
29
- };
30
- type BaseFieldProps<TFieldValues extends FieldValues, TName extends FieldPath<TFieldValues>> = {
31
- name: TName;
32
- required?: boolean;
33
- /**
34
- * @deprecated use rules props instead
35
- */
36
- validate?: Validate<PathValue<TFieldValues, Path<TFieldValues>>, TFieldValues>;
37
- rules?: UseControllerProps<TFieldValues>['rules'];
38
- defaultValue?: PathValue<TFieldValues, Path<TFieldValues>>;
39
- label?: string;
40
- value?: PathValue<TFieldValues, Path<TFieldValues>>;
41
- onChange?: (value?: PathValue<TFieldValues, TName>) => void;
42
- shouldUnregister?: UseControllerProps<TFieldValues, TName>['shouldUnregister'];
43
- };
44
-
45
- type CheckboxFieldProps<TFieldValues extends FieldValues, TName extends FieldPath<TFieldValues>> = Omit<BaseFieldProps<TFieldValues, TName>, 'value'> & Partial<Pick<ComponentProps<typeof Checkbox>, 'id' | 'disabled' | 'onBlur' | 'onFocus' | 'progress' | 'size' | 'data-testid' | 'helper' | 'tooltip'>> & {
46
- className?: string;
47
- children?: ReactNode;
48
- };
49
- declare const CheckboxField: <TFieldValues extends FieldValues, TName extends FieldPath<TFieldValues> = FieldPath<TFieldValues>>({ id, name, label, size, progress, disabled, required, className, children, onChange, onBlur, onFocus, rules, helper, tooltip, "data-testid": dataTestId, shouldUnregister, }: CheckboxFieldProps<TFieldValues, TName>) => _emotion_react_jsx_runtime.JSX.Element;
50
-
51
- type CheckboxGroupFieldProps<TFieldValues extends FieldValues, TName extends FieldPath<TFieldValues>> = BaseFieldProps<TFieldValues, TName> & Partial<Pick<ComponentProps<typeof CheckboxGroup>, 'className' | 'helper' | 'required' | 'direction' | 'children' | 'error' | 'legend'>> & Required<Pick<ComponentProps<typeof CheckboxGroup>, 'legend'>>;
52
- declare const CheckboxGroupField: {
53
- <TFieldValues extends FieldValues, TName extends FieldPath<TFieldValues> = FieldPath<TFieldValues>>({ legend, className, helper, direction, children, onChange, label, error: customError, name, required, shouldUnregister, rules, }: CheckboxGroupFieldProps<TFieldValues, TName>): _emotion_react_jsx_runtime.JSX.Element;
54
- Checkbox: ({ onFocus, onBlur, disabled, error, name, value, children, helper, className, autoFocus, "data-testid": dataTestId, required, }: Omit<({
55
- error?: react.ReactNode;
56
- size?: number | undefined;
57
- progress?: boolean | undefined;
58
- helper?: react.ReactNode;
59
- disabled?: boolean | undefined;
60
- checked?: boolean | "indeterminate" | undefined;
61
- className?: string | undefined;
62
- "data-visibility"?: string | undefined;
63
- required?: boolean | undefined;
64
- 'data-testid'?: string | undefined;
65
- tooltip?: string | undefined;
66
- } & Pick<react.InputHTMLAttributes<HTMLInputElement>, "value" | "onChange" | "onBlur" | "name" | "onFocus" | "autoFocus" | "id" | "tabIndex"> & (({
67
- "aria-label"?: undefined;
68
- } & {
69
- children: react.ReactNode;
70
- }) | ({
71
- children?: undefined;
72
- } & {
73
- 'aria-label': string;
74
- }))) & react.RefAttributes<HTMLInputElement>, "onChange" | "checked"> & {
75
- value: string;
76
- }) => _emotion_react_jsx_runtime.JSX.Element;
77
- };
78
-
79
- type DateFieldProps<TFieldValues extends FieldValues, TName extends FieldPath<TFieldValues>> = BaseFieldProps<TFieldValues, TName> & Omit<ComponentProps<typeof DateInput>, 'maxDate' | 'minDate' | 'disabled' | 'required' | 'locale' | 'name' | 'onChange' | 'onFocus' | 'onBlur' | 'autoFocus' | 'stardDate' | 'endDate'> & {
80
- maxDate?: Date;
81
- minDate?: Date;
82
- disabled?: boolean;
83
- required?: boolean;
84
- locale?: string;
85
- onBlur?: (event: FocusEvent<HTMLElement>) => void;
86
- onFocus?: (value: FocusEvent<HTMLElement>) => void;
87
- autoFocus?: boolean;
88
- };
89
- declare const DateField: <TFieldValues extends FieldValues, TName extends FieldPath<TFieldValues> = FieldPath<TFieldValues>>({ required, name, label, format, locale, maxDate, minDate, disabled, onChange, onBlur, onFocus, rules, autoFocus, excludeDates, selectsRange, "data-testid": dataTestId, shouldUnregister, }: DateFieldProps<TFieldValues, TName>) => _emotion_react_jsx_runtime.JSX.Element;
90
-
91
- type Without<T, U> = {
92
- [P in Exclude<keyof T, keyof U>]?: never;
93
- };
94
- type SingleXOR<T, U> = T | U extends object ? (Without<T, U> & U) | (Without<U, T> & T) : T | U;
95
- type XOR<T extends unknown[]> = T extends [infer Only] ? Only : T extends [infer A, infer B, ...infer Rest] ? XOR<[SingleXOR<A, B>, ...Rest]> : never;
96
- type FormStateReturn<TFormValues extends FieldValues> = {
97
- values: TFormValues;
98
- hasValidationErrors: boolean;
99
- errors: FieldErrors<TFormValues>;
100
- submitting: boolean;
101
- pristine: boolean;
102
- handleSubmit: () => Promise<void>;
103
- submitError: boolean;
104
- valid: boolean;
105
- form: {
106
- change: UseFormReturn<TFormValues>['setValue'];
107
- reset: UseFormReturn<TFormValues>['reset'];
108
- submit: () => Promise<void>;
109
- };
110
- };
111
- type OnRawSubmitReturn = {
112
- [FORM_ERROR]?: string;
113
- } | undefined | null | string | void | boolean | number;
114
- type FormProps<TFormValues extends FieldValues = FieldValues> = {
115
- children?: ((props: FormStateReturn<TFormValues>) => ReactNode) | ReactNode;
116
- errors: FormErrors;
117
- name?: string;
118
- onRawSubmit: (data: TFormValues, formState: {
119
- reset: UseFormReturn<TFormValues>['reset'];
120
- resetFieldState: UseFormReturn<TFormValues>['resetField'];
121
- restart: () => void;
122
- change: UseFormReturn<TFormValues>['setValue'];
123
- }) => Promise<OnRawSubmitReturn> | OnRawSubmitReturn;
124
- } & XOR<[
125
- {
126
- /**
127
- * @deprecated Use the `methods` prop with [useForm](https://www.react-hook-form.com/api/useform/) instead.
128
- *
129
- * @example
130
- * ```tsx
131
- * const methods = useForm({
132
- * defaultValues,
133
- * mode: 'onChange'
134
- * })
135
- *
136
- * return (
137
- * <Form methods={methods} onRawSubmit={handleSubmit} errors={formErrors}>
138
- * // ...
139
- * </Form>
140
- * )
141
- * ```
142
- */
143
- initialValues?: DefaultValues<TFormValues>;
144
- },
145
- {
146
- methods: UseFormReturn<TFormValues>;
147
- }
148
- ]>;
149
- declare const Form: <TFormValues extends FieldValues>({ children, methods: methodsProp, initialValues, errors, onRawSubmit, name, }: FormProps<TFormValues>) => _emotion_react_jsx_runtime.JSX.Element;
150
-
151
- type RadioFieldProps<TFieldValues extends FieldValues, TName extends FieldPath<TFieldValues>> = Omit<BaseFieldProps<TFieldValues, TName>, 'label'> & Partial<Pick<ComponentProps<typeof Radio>, 'disabled' | 'id' | 'onBlur' | 'onFocus' | 'data-testid' | 'tooltip' | 'label'>> & {
152
- className?: string;
153
- };
154
- /**
155
- * @deprecated This component is deprecated, use `RadioGroupField` instead.
156
- */
157
- declare const RadioField: <TFieldValues extends FieldValues, TName extends FieldPath<TFieldValues> = FieldPath<TFieldValues>>({ className, "data-testid": dataTestId, disabled, id, name, onBlur, label, onChange, onFocus, required, value, rules, tooltip, shouldUnregister, }: RadioFieldProps<TFieldValues, TName>) => _emotion_react_jsx_runtime.JSX.Element;
158
-
159
- type SelectOption = {
160
- value: string;
161
- label: ReactNode;
162
- disabled?: boolean;
163
- description?: string;
164
- inlineDescription?: string;
165
- };
166
- type WithSelectProps = {
167
- selectProps: SelectProps;
168
- };
169
- type SelectStyleProps = {
170
- error?: string;
171
- /**
172
- * Custom styles of the SelectInput. See [React select documentation](https://react-select.com/styles)
173
- */
174
- customStyle: (state: SelectProps & WithSelectProps) => Record<string, CSSObject>;
175
- animation?: string;
176
- /**
177
- * Time of the animation
178
- */
179
- animationDuration?: number;
180
- /**
181
- * Show/hide the label inside the component
182
- */
183
- noTopLabel?: boolean;
184
- theme: Theme;
185
- };
186
- type StyledContainerProps = {
187
- isDisabled?: boolean;
188
- additionalStyles?: Parameters<typeof css>[0];
189
- };
190
- type SelectProps = StyledContainerProps & Omit<Props<SelectOption>, 'value'> & CommonProps<SelectOption, boolean, GroupBase<SelectOption>> & {
191
- value?: string | SelectOption;
192
- checked?: boolean;
193
- error?: string;
194
- labelId?: string;
195
- required?: boolean;
196
- time?: boolean;
197
- };
198
- type StateManagedSelect = typeof Select;
199
- type SelectInputProps = Partial<SelectProps & SelectStyleProps & Pick<ComponentProps<typeof SelectInput>, 'data-testid'> & {
200
- /**
201
- * Name of the animation
202
- */
203
- animation?: string;
204
- /**
205
- * Play the animation when the value change
206
- */
207
- animationOnChange?: boolean;
208
- disabled?: boolean;
209
- readOnly?: boolean;
210
- innerRef?: ForwardedRef<StateManagedSelect>;
211
- /**
212
- * Custom components of the SelectInput. See [React select documentation](https://react-select.com/components)
213
- */
214
- customComponents?: SelectProps['components'];
215
- children: ReactNode;
216
- emptyState?: ComponentProps<Select>['noOptionsMessage'];
217
- }>;
218
- /**
219
- * @deprecated This component is deprecated, please use `SelectInputFieldV2` instead
220
- */
221
- type SelectInputFieldProps<TFieldValues extends FieldValues, TName extends FieldPath<TFieldValues>> = Omit<BaseFieldProps<TFieldValues, TName>, 'onChange'> & Partial<Pick<SelectInputProps, 'animation' | 'animationDuration' | 'animationOnChange' | 'children' | 'className' | 'disabled' | 'error' | 'id' | 'inputId' | 'isClearable' | 'isLoading' | 'isSearchable' | 'menuPortalTarget' | 'onBlur' | 'onChange' | 'onFocus' | 'options' | 'placeholder' | 'readOnly' | 'required' | 'value' | 'noTopLabel' | 'emptyState' | 'customStyle' | 'data-testid'>> & {
222
- multiple?: boolean;
223
- parse?: (value: unknown, name?: string) => unknown;
224
- format?: (value: unknown, name: string) => unknown;
225
- maxLength?: number;
226
- minLength?: number;
227
- };
228
- declare const SelectInputField: {
229
- <TFieldValues extends FieldValues, TName extends FieldPath<TFieldValues> = FieldPath<TFieldValues>>({ animation, animationDuration, animationOnChange, children, className, disabled, format: formatProp, id, inputId, isClearable, isLoading, isSearchable, label, maxLength, menuPortalTarget, minLength, multiple, name, onBlur, onChange, onFocus, options: optionsProp, parse: parseProp, placeholder, readOnly, required, rules, noTopLabel, emptyState, customStyle, shouldUnregister, "data-testid": dataTestId, }: SelectInputFieldProps<TFieldValues, TName>): _emotion_react_jsx_runtime.JSX.Element;
230
- Option: (props: Partial<OptionProps<{
231
- value: string;
232
- label: ReactNode;
233
- disabled?: boolean | undefined;
234
- description?: string | undefined;
235
- inlineDescription?: string | undefined;
236
- }, boolean, GroupBase<{
237
- value: string;
238
- label: ReactNode;
239
- disabled?: boolean | undefined;
240
- description?: string | undefined;
241
- inlineDescription?: string | undefined;
242
- }>> & {
243
- value: string;
244
- label: ReactNode;
245
- disabled?: boolean | undefined;
246
- description?: string | undefined;
247
- inlineDescription?: string | undefined;
248
- }>) => react.JSX.Element;
249
- };
250
-
251
- type SelectableCardFieldProps<TFieldValues extends FieldValues, TName extends FieldPath<TFieldValues>> = Omit<BaseFieldProps<TFieldValues, TName>, 'label' | 'onChange'> & Partial<Pick<ComponentProps<typeof SelectableCard>, 'disabled' | 'onBlur' | 'onChange' | 'onFocus' | 'showTick' | 'type' | 'id' | 'children' | 'tooltip' | 'label' | 'data-testid'>> & {
252
- className?: string;
253
- };
254
- declare const SelectableCardField: <TFieldValues extends FieldValues, TName extends FieldPath<TFieldValues> = FieldPath<TFieldValues>>({ name, value, onChange, showTick, type, disabled, children, className, onFocus, onBlur, required, tooltip, id, label, rules, shouldUnregister, "data-testid": dataTestId, }: SelectableCardFieldProps<TFieldValues, TName>) => _emotion_react_jsx_runtime.JSX.Element;
255
-
256
- type NumberInputValueFieldProps<TFieldValues extends FieldValues, TName extends FieldPath<TFieldValues>> = BaseFieldProps<TFieldValues, TName> & Partial<Pick<ComponentProps<typeof NumberInput>, 'disabled' | 'maxValue' | 'minValue' | 'onMaxCrossed' | 'onMinCrossed' | 'size' | 'step' | 'text' | 'className'>> & {
257
- onBlur?: FocusEventHandler<HTMLInputElement>;
258
- onFocus?: FocusEventHandler<HTMLInputElement>;
259
- };
260
- /**
261
- * @deprecated This component is deprecated, use `NumberInputFieldV2` instead.
262
- */
263
- declare const NumberInputField: <TFieldValues extends FieldValues, TName extends FieldPath<TFieldValues> = FieldPath<TFieldValues>>({ disabled, maxValue, minValue, name, onChange, onBlur, onFocus, onMaxCrossed, onMinCrossed, required, size, step, text, rules, className, label, shouldUnregister, }: NumberInputValueFieldProps<TFieldValues, TName>) => _emotion_react_jsx_runtime.JSX.Element;
264
-
265
- type NumberInputV2Props<TFieldValues extends FieldValues, TName extends FieldPath<TFieldValues>> = BaseFieldProps<TFieldValues, TName> & Partial<Pick<ComponentProps<typeof NumberInputV2>, 'disabled' | 'id' | 'onBlur' | 'onChange' | 'onFocus' | 'value' | 'data-testid' | 'label' | 'tooltip' | 'unit' | 'size' | 'step' | 'className' | 'placeholder' | 'error' | 'success' | 'helper' | 'labelDescription' | 'aria-label' | 'autoFocus' | 'readOnly' | 'min' | 'max'>> & {
266
- className?: string;
267
- name: string;
268
- required?: boolean;
269
- };
270
- declare const NumberInputFieldV2: <TFieldValues extends FieldValues, TName extends FieldPath<TFieldValues> = FieldPath<TFieldValues>>({ disabled, max, min, name, onChange, onBlur, size, step, unit, tooltip, className, label, labelDescription, id, placeholder, success, helper, rules, "aria-label": ariaLabel, "data-testid": dataTestId, required, autoFocus, readOnly, shouldUnregister, }: NumberInputV2Props<TFieldValues, TName>) => _emotion_react_jsx_runtime.JSX.Element;
271
-
272
- declare const SubmitErrorAlert: ({ className }: {
273
- className?: string;
274
- }) => _emotion_react_jsx_runtime.JSX.Element | null;
275
-
276
- type TagInputFieldProps<TFieldValues extends FieldValues, TName extends FieldPath<TFieldValues>> = BaseFieldProps<TFieldValues, TName> & Partial<Pick<ComponentProps<typeof TagInput>, 'variant' | 'placeholder' | 'disabled' | 'className' | 'id' | 'data-testid' | 'clearable' | 'label' | 'labelDescription' | 'size' | 'success' | 'readOnly' | 'tooltip'>>;
277
- declare const TagInputField: <TFieldValues extends FieldValues, TName extends FieldPath<TFieldValues> = FieldPath<TFieldValues>>({ className, disabled, id, name, onChange, placeholder, required, rules, variant, shouldUnregister, "data-testid": dataTestId, clearable, label, labelDescription, size, success, readOnly, tooltip, }: TagInputFieldProps<TFieldValues, TName>) => _emotion_react_jsx_runtime.JSX.Element;
278
-
279
- type TextAreaFieldProps<TFieldValues extends FieldValues, TName extends FieldPath<TFieldValues>> = BaseFieldProps<TFieldValues, TName> & Omit<ComponentProps<typeof TextArea>, 'value' | 'error' | 'name' | 'onChange'> & {
280
- regex?: (RegExp | RegExp[])[];
281
- };
282
- /**
283
- * This component offers a form field based on Ultraviolet UI TextArea component
284
- */
285
- declare const TextAreaField: <TFieldValues extends FieldValues, TName extends FieldPath<TFieldValues> = FieldPath<TFieldValues>>({ autoFocus, clearable, className, tabIndex, "data-testid": dataTestId, disabled, helper, label, labelDescription, onChange, minLength, maxLength, name, onFocus, onBlur, placeholder, readOnly, required, rows, success, tooltip, validate, regex: regexes, }: TextAreaFieldProps<TFieldValues, TName>) => _emotion_react_jsx_runtime.JSX.Element;
286
-
287
- type TextInputFieldProps$1<TFieldValues extends FieldValues, TName extends FieldPath<TFieldValues>> = BaseFieldProps<TFieldValues, TName> & Partial<Pick<ComponentProps<typeof TextInput>, 'autoCapitalize' | 'autoComplete' | 'autoCorrect' | 'autoFocus' | 'autoSave' | 'cols' | 'disabled' | 'fillAvailable' | 'generated' | 'id' | 'multiline' | 'notice' | 'onBlur' | 'onFocus' | 'onKeyDown' | 'onKeyUp' | 'placeholder' | 'random' | 'readOnly' | 'resizable' | 'rows' | 'type' | 'noTopLabel' | 'unit' | 'valid' | 'size' | 'maxLength' | 'minLength' | 'min' | 'max' | 'data-testid'>> & {
288
- className?: string;
289
- regex?: (RegExp | RegExp[])[];
290
- format?: (value: unknown) => PathValue<TFieldValues, Path<TFieldValues>>;
291
- parse?: (value: string) => PathValue<TFieldValues, Path<TFieldValues>>;
292
- customError?: string;
293
- formatOnBlur?: boolean;
294
- innerRef?: Ref<HTMLInputElement>;
295
- };
296
- /**
297
- * @deprecated This component is deprecated, please use `TextInputFieldV2` instead
298
- */
299
- declare const TextInputField$1: <TFieldValues extends FieldValues, TName extends FieldPath<TFieldValues> = FieldPath<TFieldValues>>({ autoCapitalize, autoComplete, autoCorrect, autoFocus, autoSave, className, cols, disabled, fillAvailable, generated, id, label, multiline, name, noTopLabel, notice, onChange, onFocus, onKeyDown, onKeyUp, onBlur, placeholder, random, readOnly, required, resizable, rows, type, unit, size, rules, valid, parse, format, formatOnBlur, regex: regexes, min, max, minLength, maxLength, validate, defaultValue, customError, innerRef, shouldUnregister, "data-testid": dataTestId, }: TextInputFieldProps$1<TFieldValues, TName>) => _emotion_react_jsx_runtime.JSX.Element;
300
-
301
- type TextInputFieldProps<TFieldValues extends FieldValues, TName extends FieldPath<TFieldValues>> = BaseFieldProps<TFieldValues, TName> & Omit<ComponentProps<typeof TextInputV2>, 'value' | 'error' | 'name' | 'onChange'> & {
302
- regex?: (RegExp | RegExp[])[];
303
- };
304
- /**
305
- * This component offers a form field based on Ultraviolet UI TextInputV2 component
306
- */
307
- declare const TextInputField: <TFieldValues extends FieldValues, TName extends FieldPath<TFieldValues> = FieldPath<TFieldValues>>({ validate, regex: regexes, id, className, tabIndex, onChange, placeholder, disabled, readOnly, success, helper, tooltip, label, autoFocus, required, "data-testid": dataTestId, name, onFocus, onBlur, clearable, labelDescription, type, prefix, suffix, size, loading, onRandomize, minLength, maxLength, "aria-labelledby": ariaLabelledBy, "aria-label": ariaLabel, autoComplete, }: TextInputFieldProps<TFieldValues, TName>) => _emotion_react_jsx_runtime.JSX.Element;
308
-
309
- type TimeFieldProps<TFieldValues extends FieldValues, TName extends FieldPath<TFieldValues>> = BaseFieldProps<TFieldValues, TName> & Omit<ComponentProps<typeof TimeInput>, 'onChange'> & {
310
- name: string;
311
- };
312
- declare const TimeField: <TFieldValues extends FieldValues, TName extends FieldPath<TFieldValues> = FieldPath<TFieldValues>>({ required, name, schedule, placeholder, disabled, readOnly, onBlur, onFocus, onChange, isLoading, isClearable, inputId, id, animation, animationDuration, animationOnChange, className, isSearchable, rules, options, "data-testid": dataTestId, shouldUnregister, noTopLabel, }: TimeFieldProps<TFieldValues, TName>) => _emotion_react_jsx_runtime.JSX.Element;
313
-
314
- type ToggleFieldProps<TFieldValues extends FieldValues, TName extends FieldPath<TFieldValues>> = Omit<BaseFieldProps<TFieldValues, TName>, 'label'> & Pick<ComponentProps<typeof Toggle>, 'disabled' | 'label' | 'onChange' | 'size' | 'tooltip' | 'labelPosition' | 'className' | 'data-testid'> & {
315
- parse?: (value: boolean) => any;
316
- format?: (value: any) => boolean;
317
- };
318
- declare const ToggleField: <TFieldValues extends FieldValues, TName extends FieldPath<TFieldValues> = FieldPath<TFieldValues>>({ className, disabled, label, name, onChange, required, size, tooltip, rules, labelPosition, parse, format, "data-testid": dataTestId, shouldUnregister, }: ToggleFieldProps<TFieldValues, TName>) => _emotion_react_jsx_runtime.JSX.Element;
319
-
320
- type SubmitProps = {
321
- children?: ReactNode;
322
- className?: string;
323
- disabled?: boolean;
324
- icon?: ComponentProps<typeof Button>['icon'];
325
- iconPosition?: ComponentProps<typeof Button>['iconPosition'];
326
- size?: ComponentProps<typeof Button>['size'];
327
- variant?: ComponentProps<typeof Button>['variant'];
328
- sentiment?: ComponentProps<typeof Button>['sentiment'];
329
- tooltip?: ComponentProps<typeof Button>['tooltip'];
330
- fullWidth?: ComponentProps<typeof Button>['fullWidth'];
331
- onClick?: ComponentProps<typeof Button>['onClick'];
332
- };
333
- declare const Submit: ({ children, className, disabled, icon, iconPosition, size, variant, sentiment, tooltip, fullWidth, onClick, }: SubmitProps) => _emotion_react_jsx_runtime.JSX.Element;
334
-
335
- type RadioGroupFieldProps<TFieldValues extends FieldValues, TName extends FieldPath<TFieldValues>> = BaseFieldProps<TFieldValues, TName> & Partial<Pick<ComponentProps<typeof RadioGroup>, 'legend' | 'children' | 'error' | 'helper' | 'direction'>> & {
336
- className?: string;
337
- };
338
- declare const RadioGroupField: {
339
- <TFieldValues extends FieldValues, TName extends FieldPath<TFieldValues> = FieldPath<TFieldValues>>({ className, legend, name, onChange, required, rules, children, label, error: customError, helper, direction, shouldUnregister, }: RadioGroupFieldProps<TFieldValues, TName>): JSX.Element;
340
- Radio: ({ onFocus, onBlur, disabled, error, name, value, label, helper, className, autoFocus, onKeyDown, "data-testid": dataTestId, }: Omit<({
341
- error?: react.ReactNode;
342
- checked?: boolean | undefined;
343
- value: string | number;
344
- helper?: react.ReactNode;
345
- className?: string | undefined;
346
- 'data-testid'?: string | undefined;
347
- tooltip?: string | undefined;
348
- } & Required<Pick<react.InputHTMLAttributes<HTMLInputElement>, "onChange">> & (Pick<react.InputHTMLAttributes<HTMLInputElement>, "required" | "onBlur" | "disabled" | "name" | "onFocus" | "autoFocus" | "id" | "onKeyDown"> & ({
349
- 'aria-label': string;
350
- label?: undefined;
351
- } | {
352
- 'aria-label'?: undefined;
353
- label: react.ReactNode;
354
- }))) & react.RefAttributes<HTMLInputElement>, "required" | "onChange" | "checked"> & {
355
- name?: string | undefined;
356
- }) => _emotion_react_jsx_runtime.JSX.Element;
357
- };
358
-
359
- type InputKeyProps = {
360
- label: ComponentProps<typeof TextInputField>['label'];
361
- required?: ComponentProps<typeof TextInputField>['required'];
362
- regex?: ComponentProps<typeof TextInputField>['regex'];
363
- };
364
- type InputValueProps = {
365
- type?: ComponentProps<typeof TextInputField>['type'];
366
- placeholder?: ComponentProps<typeof TextInputField>['placeholder'];
367
- } & InputKeyProps;
368
- type AddButtonProps = {
369
- name: ComponentProps<typeof Button>['children'];
370
- fullWidth?: ComponentProps<typeof Button>['fullWidth'];
371
- tooltip?: string;
372
- maxSizeReachedTooltip?: string;
373
- };
374
- type KeyValueFieldProps<TFieldValues extends FieldValues, TFieldArrayName extends FieldArrayPath<TFieldValues>> = {
375
- name: TFieldArrayName;
376
- inputKey: InputKeyProps;
377
- inputValue: InputValueProps;
378
- addButton: AddButtonProps;
379
- maxSize?: number;
380
- readonly?: boolean;
381
- control?: Control<TFieldValues>;
382
- };
383
- /**
384
- * A React component that allows users to manage key-value pairs
385
- */
386
- declare const KeyValueField: <TFieldValues extends FieldValues = FieldValues, TFieldArrayName extends FieldArrayPath<TFieldValues> = FieldArrayPath<TFieldValues>>({ name, inputKey, inputValue, addButton, maxSize, readonly, control, }: KeyValueFieldProps<TFieldValues, TFieldArrayName>) => _emotion_react_jsx_runtime.JSX.Element;
387
-
388
- type SelectableCardGroupFieldProps<TFieldValues extends FieldValues, TName extends FieldPath<TFieldValues>> = BaseFieldProps<TFieldValues, TName> & Omit<BaseFieldProps<TFieldValues, TName>, 'label' | 'onChange'> & Partial<Pick<ComponentProps<typeof SelectableCardGroup>, 'helper' | 'error' | 'columns' | 'children' | 'showTick' | 'type' | 'className' | 'onChange'>> & Pick<ComponentProps<typeof SelectableCardGroup>, 'legend'>;
389
- declare const SelectableCardGroupField: {
390
- <TFieldValues extends FieldValues, TName extends FieldPath<TFieldValues> = FieldPath<TFieldValues>>({ className, legend, name, onChange, required, rules, children, label, error: customError, helper, columns, showTick, type, shouldUnregister, }: SelectableCardGroupFieldProps<TFieldValues, TName>): JSX.Element;
391
- Card: ({ value, disabled, children, className, isError, onFocus, onBlur, tooltip, id, label, "data-testid": dataTestId, }: {
392
- value: string | number;
393
- onBlur?: react.FocusEventHandler<HTMLInputElement> | undefined;
394
- disabled?: boolean | undefined;
395
- children?: react.ReactNode | (({ disabled, checked, }: Pick<{
396
- name?: string | undefined;
397
- children?: react.ReactNode | any;
398
- value: string | number;
399
- onChange: react.ChangeEventHandler<HTMLInputElement>;
400
- showTick?: boolean | undefined;
401
- type?: "checkbox" | "radio" | undefined;
402
- disabled?: boolean | undefined;
403
- checked?: boolean | undefined;
404
- className?: string | undefined;
405
- isError?: boolean | undefined;
406
- onFocus?: react.FocusEventHandler<HTMLInputElement> | undefined;
407
- onBlur?: react.FocusEventHandler<HTMLInputElement> | undefined;
408
- id?: string | undefined;
409
- tooltip?: string | undefined;
410
- label?: react.ReactNode;
411
- 'data-testid'?: string | undefined;
412
- }, "disabled" | "checked">) => react.ReactNode);
413
- className?: string | undefined;
414
- ref?: react.LegacyRef<HTMLDivElement> | undefined;
415
- name?: string | undefined;
416
- label?: react.ReactNode;
417
- onFocus?: react.FocusEventHandler<HTMLInputElement> | undefined;
418
- id?: string | undefined;
419
- 'data-testid'?: string | undefined;
420
- tooltip?: string | undefined;
421
- key?: react.Key | null | undefined;
422
- isError?: boolean | undefined;
423
- }) => _emotion_react_jsx_runtime.JSX.Element;
424
- };
425
-
426
- type SelectInputFieldV2Props<TFieldValues extends FieldValues, TName extends FieldPath<TFieldValues>> = BaseFieldProps<TFieldValues, TName> & Pick<ComponentProps<typeof SelectInputV2>, 'placeholder' | 'placeholderSearch' | 'label' | 'helper' | 'options' | 'emptyState' | 'searchable' | 'readOnly' | 'clearable' | 'size' | 'multiselect' | 'required' | 'descriptionDirection' | 'footer' | 'labelDescription' | 'success' | 'loadMore' | 'isLoading' | 'selectAll' | 'selectAllGroup' | 'autofocus' | 'data-testid' | 'onChange' | 'id' | 'onBlur' | 'aria-label' | 'className' | 'onFocus' | 'optionalInfoPlacement' | 'disabled'>;
427
- declare const SelectInputFieldV2: <TFieldValues extends FieldValues, TName extends FieldPath<TFieldValues> = FieldPath<TFieldValues>>({ autofocus, className, id, label, onFocus, onBlur, placeholder, readOnly, required, size, "data-testid": dataTestId, disabled, placeholderSearch, helper, options, emptyState, onChange, searchable, clearable, multiselect, descriptionDirection, footer, labelDescription, success, loadMore, isLoading, selectAll, selectAllGroup, name, "aria-label": ariaLabel, optionalInfoPlacement, rules, shouldUnregister, }: SelectInputFieldV2Props<TFieldValues, TName>) => _emotion_react_jsx_runtime.JSX.Element;
428
-
429
- type ErrorContextValue = {
430
- errors: RequiredErrors;
431
- getError: (meta: MetaField, error?: FieldError) => string | undefined;
432
- };
433
- type ErrorProviderProps = {
434
- children: ReactNode;
435
- errors: RequiredErrors;
436
- };
437
- declare const ErrorProvider: ({ children, errors }: ErrorProviderProps) => _emotion_react_jsx_runtime.JSX.Element;
438
- declare const useErrors: () => ErrorContextValue;
439
-
440
- type CallbackFn<TFieldValues extends FieldValues, TFieldName extends FieldPath<TFieldValues>> = (value: FieldPathValue<TFieldValues, TFieldName>, values: DeepPartial<TFieldValues>) => void | Promise<void>;
441
- declare const useOnFieldChange: <TFieldValues extends FieldValues, TFieldName extends FieldPath<TFieldValues>>(fieldName: TFieldName, callback: CallbackFn<TFieldValues, TFieldName>, enabled?: boolean) => void;
442
-
443
- type UseFormStateParams = {
444
- subscription?: Record<string, boolean>;
445
- };
446
- /**
447
- * @deprecated Use [useForm](https://www.react-hook-form.com/api/useform/), [useFormContext](https://www.react-hook-form.com/api/useformcontext/) or [useWatch](https://www.react-hook-form.com/api/usewatch/) to get values. Use [useFormState](https://www.react-hook-form.com/api/useformstate/) to get form states.
448
- *
449
- * @example
450
- * ```tsx
451
- * const Input = () {
452
- * const username = useWatch({
453
- * name: 'username'
454
- * })
455
- *
456
- * const { isValid } = useFormState()
457
- * }
458
- * ```
459
-
460
- */
461
- declare const useFormStateDeprecated: <TFieldValues extends FieldValues>(_params?: UseFormStateParams) => {
462
- dirtySinceLastSubmit: boolean;
463
- submitErrors: (Record<string, Partial<{
464
- type: string | number;
465
- message: string;
466
- }>> & Partial<{
467
- type: string | number;
468
- message: string;
469
- }>) | undefined;
470
- values: TFieldValues;
471
- hasValidationErrors: boolean;
472
- pristine: boolean;
473
- errors: react_hook_form.FieldErrors<TFieldValues>;
474
- initialValues: Readonly<react_hook_form.DeepPartial<TFieldValues>> | undefined;
475
- touched: Partial<Readonly<react_hook_form.DeepMap<react_hook_form.DeepPartial<TFieldValues>, boolean>>>;
476
- submitting: boolean;
477
- invalid: boolean;
478
- valid: boolean;
479
- };
480
-
481
- type Options$1<TFieldValues extends FieldValues> = {
482
- subscription?: Record<string, boolean>;
483
- validate?: Validate<FieldPathValue<TFieldValues, Path<TFieldValues>>, TFieldValues>;
484
- };
485
- /**
486
- * @deprecated Use [useForm](https://www.react-hook-form.com/api/useform/), [useFormContext](https://www.react-hook-form.com/api/useformcontext/) or [useWatch](https://www.react-hook-form.com/api/usewatch/) to get values. Use [useFormState](https://www.react-hook-form.com/api/useformstate/) to get fields states.
487
- *
488
- * @example
489
- * ```tsx
490
- * const Input = () {
491
- * const username = useWatch({
492
- * name: 'username'
493
- * })
494
- *
495
- * const { errors } = useFormState()
496
- *
497
- * console.log(errors.username)
498
- * }
499
- * ```
500
- */
501
- declare const useFieldDeprecated: <T, TFieldValues extends FieldValues = FieldValues, TFieldName extends FieldPath<TFieldValues> = FieldPath<TFieldValues>>(name: TFieldName, options?: Options$1<TFieldValues>) => {
502
- input: {
503
- value: T;
504
- onChange: (...event: any[]) => void;
505
- };
506
- meta: {
507
- error: string | undefined;
508
- touched: boolean;
509
- invalid: boolean;
510
- dirty: boolean;
511
- };
512
- };
513
-
514
- /**
515
- * @deprecated Use [useFormContext](https://www.react-hook-form.com/api/useformcontext/)
516
- *
517
- * @example
518
- * ```tsx
519
- * const Input = () {
520
- * const { setValue } = useFormContext()
521
- *
522
- * setValue('username', 'John Wick')
523
- * }
524
- * ```
525
- */
526
- declare const useFormDeprecated: <TFieldValues extends FieldValues>() => {
527
- change: react_hook_form.UseFormSetValue<TFieldValues>;
528
- resetFieldState: react_hook_form.UseFormResetField<TFieldValues>;
529
- getFieldState: react_hook_form.UseFormGetFieldState<TFieldValues>;
530
- batch: (callback: () => void) => void;
531
- restart: react_hook_form.UseFormReset<TFieldValues>;
532
- reset: react_hook_form.UseFormReset<TFieldValues>;
533
- submit: (e?: react.BaseSyntheticEvent<object, any, any> | undefined) => Promise<void>;
534
- };
535
-
536
- type Options<TFieldValues extends FieldValues> = {
537
- validate?: Validate<FieldArray<TFieldValues>[], TFieldValues>;
538
- subscription?: Record<string, boolean>;
539
- };
540
- /**
541
- * @deprecated Use [useFieldArray](https://www.react-hook-form.com/api/usefieldarray/)
542
- */
543
- declare const useFieldArrayDeprecated: <T, TFieldValues extends FieldValues = FieldValues>(name: ArrayPath<TFieldValues>, options?: Options<TFieldValues>) => {
544
- fields: {
545
- push: react_hook_form.UseFieldArrayAppend<TFieldValues, ArrayPath<TFieldValues>>;
546
- value: T[];
547
- remove: react_hook_form.UseFieldArrayRemove;
548
- update: react_hook_form.UseFieldArrayUpdate<TFieldValues, ArrayPath<TFieldValues>>;
549
- map: (callback: (name: string, index: number) => ReactNode) => ReactNode[];
550
- move: react_hook_form.UseFieldArrayMove;
551
- length: number;
552
- };
553
- };
554
-
555
- export { type BaseFieldProps, CheckboxField, CheckboxGroupField, DateField, ErrorProvider, FORM_ERROR, Form, type FormErrors, type FormProps, KeyValueField, NumberInputField, NumberInputFieldV2, RadioField, RadioGroupField, SelectInputField, SelectInputFieldV2, SelectableCardField, SelectableCardGroupField, Submit, SubmitErrorAlert, TagInputField, TextAreaField, TextInputField$1 as TextInputField, TextInputField as TextInputFieldV2, TimeField, ToggleField, useErrors, useFieldArrayDeprecated, useFieldDeprecated, useFormDeprecated, useFormStateDeprecated, useOnFieldChange };
1
+ export { FORM_ERROR } from './constants';
2
+ export * from './components';
3
+ export type { BaseFieldProps, FormErrors } from './types';
4
+ export { useErrors, ErrorProvider } from './providers/ErrorContext';
5
+ export { useFormStateDeprecated, useFieldDeprecated, useFormDeprecated, useFieldArrayDeprecated, useOnFieldChange, } from './hooks';
6
+ export { useForm, useFieldArray, useWatch, useController, useFormState, useFormContext, } from 'react-hook-form';
7
+ export type { UseFieldArrayMove, DeepPartial, UseFormSetValue, UseFormReturn, ControllerRenderProps, PathValue, FieldValues, FieldPath, FieldErrors, Path, UseFieldArrayRemove, ArrayPath, FieldArrayPath, FieldPathValues, FieldArray, FieldPathValue, FieldArrayPathValue, FieldPathByValue, Control, } from 'react-hook-form';