@ultraviolet/form 2.6.2 → 2.7.1

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.
@@ -4,6 +4,7 @@ import { jsx } from '@emotion/react/jsx-runtime';
4
4
  import { useErrors } from '../../providers/ErrorContext/index.js';
5
5
 
6
6
  const CheckboxField = ({
7
+ id,
7
8
  name,
8
9
  label,
9
10
  size,
@@ -19,7 +20,6 @@ const CheckboxField = ({
19
20
  helper,
20
21
  tooltip,
21
22
  'data-testid': dataTestId,
22
- value,
23
23
  shouldUnregister = false
24
24
  }) => {
25
25
  const {
@@ -40,9 +40,10 @@ const CheckboxField = ({
40
40
  }
41
41
  });
42
42
  return jsx(Checkbox, {
43
+ id: id,
43
44
  name: field.name,
44
45
  onChange: event => {
45
- field.onChange(value ? [...(field.value ?? []), value] : event.target.checked);
46
+ field.onChange(event.target.checked);
46
47
  onChange?.(event.target.checked);
47
48
  },
48
49
  onBlur: event => {
@@ -53,7 +54,7 @@ const CheckboxField = ({
53
54
  size: size,
54
55
  progress: progress,
55
56
  disabled: field.disabled,
56
- checked: Array.isArray(field.value) ? field.value.includes(value) : !!field.value,
57
+ checked: !!field.value,
57
58
  error: getError({
58
59
  label: label ?? ''
59
60
  }, error),
@@ -63,7 +64,6 @@ const CheckboxField = ({
63
64
  "data-testid": dataTestId,
64
65
  helper: helper,
65
66
  tooltip: tooltip,
66
- value: value,
67
67
  children: children
68
68
  });
69
69
  };
@@ -3,6 +3,9 @@ import { useController } from 'react-hook-form';
3
3
  import { jsx } from '@emotion/react/jsx-runtime';
4
4
  import { useErrors } from '../../providers/ErrorContext/index.js';
5
5
 
6
+ /**
7
+ * @deprecated This component is deprecated, use `NumberInputFieldV2` instead.
8
+ */
6
9
  const NumberInputField = ({
7
10
  disabled,
8
11
  maxValue,
@@ -3,6 +3,9 @@ import { useController } from 'react-hook-form';
3
3
  import { jsx } from '@emotion/react/jsx-runtime';
4
4
  import { useErrors } from '../../providers/ErrorContext/index.js';
5
5
 
6
+ /**
7
+ * @deprecated This component is deprecated, use `RadioGroupField` instead.
8
+ */
6
9
  const RadioField = ({
7
10
  className,
8
11
  'data-testid': dataTestId,
@@ -3,6 +3,9 @@ import { useController } from 'react-hook-form';
3
3
  import { jsx } from '@emotion/react/jsx-runtime';
4
4
  import { useErrors } from '../../providers/ErrorContext/index.js';
5
5
 
6
+ /**
7
+ * @deprecated This component is deprecated, please use `TextInputFieldV2` instead
8
+ */
6
9
  const TextInputField = ({
7
10
  autoCapitalize,
8
11
  autoComplete,
@@ -16,6 +16,7 @@ const TextInputField = ({
16
16
  helper,
17
17
  label,
18
18
  labelDescription,
19
+ loading,
19
20
  onChange,
20
21
  minLength,
21
22
  maxLength,
@@ -68,6 +69,7 @@ const TextInputField = ({
68
69
  }, error),
69
70
  helper: helper,
70
71
  label: label,
72
+ loading: loading,
71
73
  labelDescription: labelDescription,
72
74
  minLength: minLength,
73
75
  maxLength: maxLength,
package/dist/index.d.ts CHANGED
@@ -42,11 +42,11 @@ type BaseFieldProps<TFieldValues extends FieldValues, TName extends FieldPath<TF
42
42
  shouldUnregister?: UseControllerProps<TFieldValues, TName>['shouldUnregister'];
43
43
  };
44
44
 
45
- type CheckboxFieldProps<TFieldValues extends FieldValues, TName extends FieldPath<TFieldValues>> = BaseFieldProps<TFieldValues, TName> & Partial<Pick<ComponentProps<typeof Checkbox>, 'disabled' | 'onBlur' | 'onFocus' | 'progress' | 'size' | 'data-testid' | 'helper' | 'tooltip'>> & {
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
46
  className?: string;
47
47
  children?: ReactNode;
48
48
  };
49
- declare const CheckboxField: <TFieldValues extends FieldValues, TName extends FieldPath<TFieldValues> = FieldPath<TFieldValues>>({ name, label, size, progress, disabled, required, className, children, onChange, onBlur, onFocus, rules, helper, tooltip, "data-testid": dataTestId, value, shouldUnregister, }: CheckboxFieldProps<TFieldValues, TName>) => _emotion_react_jsx_runtime.JSX.Element;
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
50
 
51
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
52
  declare const CheckboxGroupField: {
@@ -63,7 +63,7 @@ declare const CheckboxGroupField: {
63
63
  required?: boolean | undefined;
64
64
  'data-testid'?: string | undefined;
65
65
  tooltip?: string | undefined;
66
- } & Pick<react.InputHTMLAttributes<HTMLInputElement>, "value" | "onChange" | "onBlur" | "onFocus" | "name" | "autoFocus" | "id"> & (({
66
+ } & Pick<react.InputHTMLAttributes<HTMLInputElement>, "value" | "onChange" | "onBlur" | "name" | "onFocus" | "autoFocus" | "id"> & (({
67
67
  "aria-label"?: undefined;
68
68
  } & {
69
69
  children: react.ReactNode;
@@ -151,6 +151,9 @@ declare const Form: <TFormValues extends FieldValues>({ children, methods: metho
151
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
152
  className?: string;
153
153
  };
154
+ /**
155
+ * @deprecated This component is deprecated, use `RadioGroupField` instead.
156
+ */
154
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;
155
158
 
156
159
  type SelectOption = {
@@ -251,6 +254,9 @@ type NumberInputValueFieldProps<TFieldValues extends FieldValues, TName extends
251
254
  onBlur?: FocusEventHandler<HTMLInputElement>;
252
255
  onFocus?: FocusEventHandler<HTMLInputElement>;
253
256
  };
257
+ /**
258
+ * @deprecated This component is deprecated, use `NumberInputFieldV2` instead.
259
+ */
254
260
  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;
255
261
 
256
262
  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'>> & {
@@ -284,6 +290,9 @@ type TextInputFieldProps$1<TFieldValues extends FieldValues, TName extends Field
284
290
  formatOnBlur?: boolean;
285
291
  innerRef?: Ref<HTMLInputElement>;
286
292
  };
293
+ /**
294
+ * @deprecated This component is deprecated, please use `TextInputFieldV2` instead
295
+ */
287
296
  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;
288
297
 
289
298
  type TextInputFieldProps<TFieldValues extends FieldValues, TName extends FieldPath<TFieldValues>> = BaseFieldProps<TFieldValues, TName> & Omit<ComponentProps<typeof TextInputV2>, 'value' | 'error' | 'name' | 'onChange'> & {
@@ -292,7 +301,7 @@ type TextInputFieldProps<TFieldValues extends FieldValues, TName extends FieldPa
292
301
  /**
293
302
  * This component offers a form field based on Ultraviolet UI TextInputV2 component
294
303
  */
295
- declare const TextInputField: <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, success, tooltip, type, validate, regex: regexes, }: TextInputFieldProps<TFieldValues, TName>) => _emotion_react_jsx_runtime.JSX.Element;
304
+ declare const TextInputField: <TFieldValues extends FieldValues, TName extends FieldPath<TFieldValues> = FieldPath<TFieldValues>>({ autoFocus, clearable, className, tabIndex, "data-testid": dataTestId, disabled, helper, label, labelDescription, loading, onChange, minLength, maxLength, name, onFocus, onBlur, placeholder, readOnly, required, success, tooltip, type, validate, regex: regexes, }: TextInputFieldProps<TFieldValues, TName>) => _emotion_react_jsx_runtime.JSX.Element;
296
305
 
297
306
  type TimeFieldProps<TFieldValues extends FieldValues, TName extends FieldPath<TFieldValues>> = BaseFieldProps<TFieldValues, TName> & Omit<ComponentProps<typeof TimeInput>, 'onChange'> & {
298
307
  name: string;
@@ -325,24 +334,22 @@ type RadioGroupFieldProps<TFieldValues extends FieldValues, TName extends FieldP
325
334
  };
326
335
  declare const RadioGroupField: {
327
336
  <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;
328
- Radio: ({ onFocus, onBlur, disabled, error, name, value, label, helper, className, autoFocus, onKeyDown, "data-testid": dataTestId, }: {
337
+ Radio: ({ onFocus, onBlur, disabled, error, name, value, label, helper, className, autoFocus, onKeyDown, "data-testid": dataTestId, }: Omit<({
338
+ error?: react.ReactNode;
339
+ checked?: boolean | undefined;
329
340
  value: string | number;
330
- onBlur?: react.FocusEventHandler<HTMLInputElement> | undefined;
331
- disabled?: boolean | undefined;
341
+ helper?: react.ReactNode;
332
342
  className?: string | undefined;
333
- ref?: react.Ref<HTMLInputElement> | undefined;
334
- onFocus?: react.FocusEventHandler<HTMLInputElement> | undefined;
335
- name?: string | undefined;
336
- autoFocus?: boolean | undefined;
337
- id?: string | undefined;
338
- 'aria-label'?: string | undefined;
339
- label?: react.ReactNode;
340
343
  'data-testid'?: string | undefined;
341
- helper?: react.ReactNode;
342
344
  tooltip?: string | undefined;
343
- error?: react.ReactNode;
344
- key?: react.Key | null | undefined;
345
- onKeyDown?: react.KeyboardEventHandler<HTMLInputElement> | undefined;
345
+ } & Required<Pick<react.InputHTMLAttributes<HTMLInputElement>, "onChange">> & Pick<react.InputHTMLAttributes<HTMLInputElement>, "required" | "onBlur" | "disabled" | "name" | "onFocus" | "autoFocus" | "id" | "onKeyDown"> & ({
346
+ 'aria-label': string;
347
+ label?: undefined;
348
+ } | {
349
+ 'aria-label'?: undefined;
350
+ label: react.ReactNode;
351
+ })) & react.RefAttributes<HTMLInputElement>, "required" | "onChange" | "checked"> & {
352
+ name?: string | undefined;
346
353
  }) => _emotion_react_jsx_runtime.JSX.Element;
347
354
  };
348
355
 
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@ultraviolet/form",
3
- "version": "2.6.2",
3
+ "version": "2.7.1",
4
4
  "description": "Ultraviolet Form",
5
5
  "homepage": "https://github.com/scaleway/ultraviolet#readme",
6
6
  "repository": {
@@ -53,7 +53,7 @@
53
53
  "@emotion/styled": "11.11.0",
54
54
  "react-select": "5.8.0",
55
55
  "react-hook-form": "7.50.1",
56
- "@ultraviolet/ui": "1.36.0"
56
+ "@ultraviolet/ui": "1.37.1"
57
57
  },
58
58
  "scripts": {
59
59
  "build": "rollup -c ../../rollup.config.mjs",