@ultraviolet/form 6.0.0-beta.9 → 6.0.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.
- package/README.md +5 -6
- package/dist/components/CheckboxField/index.d.ts +1 -1
- package/dist/components/CheckboxField/index.js +25 -21
- package/dist/components/CheckboxGroupField/index.d.ts +4 -4
- package/dist/components/CheckboxGroupField/index.js +50 -35
- package/dist/components/DateInputField/index.d.ts +1 -1
- package/dist/components/DateInputField/index.js +52 -41
- package/dist/components/Form/index.d.ts +1 -1
- package/dist/components/Form/index.js +15 -11
- package/dist/components/KeyValueField/index.d.ts +1 -1
- package/dist/components/KeyValueField/index.js +75 -27
- package/dist/components/NumberInputField/index.d.ts +1 -1
- package/dist/components/NumberInputField/index.js +29 -19
- package/dist/components/RadioField/index.d.ts +1 -1
- package/dist/components/RadioField/index.js +25 -20
- package/dist/components/RadioGroupField/index.d.ts +4 -3
- package/dist/components/RadioGroupField/index.js +21 -13
- package/dist/components/SelectInputField/index.d.ts +1 -1
- package/dist/components/SelectInputField/index.js +28 -17
- package/dist/components/SelectableCardField/index.d.ts +1 -1
- package/dist/components/SelectableCardField/index.js +40 -29
- package/dist/components/SelectableCardGroupField/index.d.ts +1 -1
- package/dist/components/SelectableCardGroupField/index.js +34 -21
- package/dist/components/SelectableCardOptionGroupField/index.d.ts +2 -2
- package/dist/components/SelectableCardOptionGroupField/index.js +26 -22
- package/dist/components/SliderField/index.d.ts +1 -1
- package/dist/components/SliderField/index.js +38 -24
- package/dist/components/Submit/index.d.ts +1 -1
- package/dist/components/Submit/index.js +18 -6
- package/dist/components/SubmitErrorAlert/index.d.ts +1 -1
- package/dist/components/SubmitErrorAlert/index.js +3 -7
- package/dist/components/SwitchButtonField/index.d.ts +4 -3
- package/dist/components/SwitchButtonField/index.js +24 -11
- package/dist/components/TagInputField/index.d.ts +1 -1
- package/dist/components/TagInputField/index.js +21 -14
- package/dist/components/TextAreaField/index.d.ts +1 -1
- package/dist/components/TextAreaField/index.js +35 -27
- package/dist/components/TextInputField/index.d.ts +1 -1
- package/dist/components/TextInputField/index.js +36 -20
- package/dist/components/TimeInputField/index.d.ts +1 -1
- package/dist/components/TimeInputField/index.js +27 -17
- package/dist/components/ToggleField/index.d.ts +1 -1
- package/dist/components/ToggleField/index.js +27 -16
- package/dist/components/ToggleGroupField/index.d.ts +4 -4
- package/dist/components/ToggleGroupField/index.js +61 -0
- package/dist/components/UnitInputField/index.d.ts +1 -1
- package/dist/components/UnitInputField/index.js +27 -23
- package/dist/components/VerificationCodeField/index.d.ts +1 -1
- package/dist/components/VerificationCodeField/index.js +18 -13
- package/dist/components/index.d.ts +1 -0
- package/dist/hooks/useOnFieldChange.js +4 -5
- package/dist/index.js +2 -0
- package/dist/providers/ErrorContext/index.d.ts +1 -1
- package/dist/providers/ErrorContext/index.js +21 -18
- package/dist/utils/validateRegex.js +3 -1
- package/package.json +10 -15
- package/dist/components/CheckboxField/index.cjs +0 -55
- package/dist/components/CheckboxGroupField/index.cjs +0 -80
- package/dist/components/DateInputField/index.cjs +0 -85
- package/dist/components/Form/defaultErrors.cjs +0 -22
- package/dist/components/Form/index.cjs +0 -35
- package/dist/components/KeyValueField/index.cjs +0 -60
- package/dist/components/NumberInputField/index.cjs +0 -59
- package/dist/components/RadioField/index.cjs +0 -64
- package/dist/components/RadioGroupField/index.cjs +0 -45
- package/dist/components/SelectInputField/index.cjs +0 -50
- package/dist/components/SelectableCardField/index.cjs +0 -66
- package/dist/components/SelectableCardGroupField/index.cjs +0 -55
- package/dist/components/SelectableCardOptionGroupField/index.cjs +0 -59
- package/dist/components/SliderField/index.cjs +0 -76
- package/dist/components/Submit/index.cjs +0 -25
- package/dist/components/SubmitErrorAlert/index.cjs +0 -15
- package/dist/components/SwitchButtonField/index.cjs +0 -35
- package/dist/components/TagInputField/index.cjs +0 -51
- package/dist/components/TextAreaField/index.cjs +0 -84
- package/dist/components/TextInputField/index.cjs +0 -62
- package/dist/components/TimeInputField/index.cjs +0 -46
- package/dist/components/ToggleField/index.cjs +0 -55
- package/dist/components/UnitInputField/index.cjs +0 -58
- package/dist/components/VerificationCodeField/index.cjs +0 -48
- package/dist/hooks/useOnFieldChange.cjs +0 -21
- package/dist/index.cjs +0 -78
- package/dist/providers/ErrorContext/index.cjs +0 -34
- package/dist/utils/validateRegex.cjs +0 -4
- package/dist/validators/isInteger.cjs +0 -12
- package/dist/validators/maxDate.cjs +0 -4
- package/dist/validators/minDate.cjs +0 -4
|
@@ -1,13 +1,9 @@
|
|
|
1
1
|
"use client";
|
|
2
|
-
import { jsx } from "
|
|
2
|
+
import { jsx } from "react/jsx-runtime";
|
|
3
3
|
import { Alert } from "@ultraviolet/ui";
|
|
4
4
|
import { useFormState } from "react-hook-form";
|
|
5
|
-
const SubmitErrorAlert = ({
|
|
6
|
-
|
|
7
|
-
}) => {
|
|
8
|
-
const {
|
|
9
|
-
errors
|
|
10
|
-
} = useFormState();
|
|
5
|
+
const SubmitErrorAlert = ({ className }) => {
|
|
6
|
+
const { errors } = useFormState();
|
|
11
7
|
return errors?.root?.["submit"]?.message ? /* @__PURE__ */ jsx(Alert, { className, sentiment: "danger", children: errors.root["submit"].message }) : null;
|
|
12
8
|
};
|
|
13
9
|
export {
|
|
@@ -6,13 +6,14 @@ type SwitchButtonFieldProps<TFieldValues extends FieldValues, TFieldName extends
|
|
|
6
6
|
name: FieldPath<TFieldValues>;
|
|
7
7
|
};
|
|
8
8
|
declare const SwitchButtonField: {
|
|
9
|
-
<TFieldValues extends FieldValues, TFieldName extends FieldPath<TFieldValues> = FieldPath<TFieldValues>>({ name, size, control, shouldUnregister, onBlur, onChange, onFocus, tooltip, className, ...props }: SwitchButtonFieldProps<TFieldValues, TFieldName>): import("
|
|
10
|
-
Option: ({ value, children, "data-testid": dataTestId, disabled, tooltip, }: {
|
|
9
|
+
<TFieldValues extends FieldValues, TFieldName extends FieldPath<TFieldValues> = FieldPath<TFieldValues>>({ name, size, control, shouldUnregister, onBlur, onChange, onFocus, tooltip, className, ...props }: SwitchButtonFieldProps<TFieldValues, TFieldName>): import("react/jsx-runtime").JSX.Element;
|
|
10
|
+
Option: ({ value, children, "data-testid": dataTestId, disabled, tooltip, style, }: {
|
|
11
11
|
value: string;
|
|
12
12
|
children: import("react").ReactNode;
|
|
13
13
|
"data-testid"?: string;
|
|
14
14
|
disabled?: boolean;
|
|
15
15
|
tooltip?: string;
|
|
16
|
-
|
|
16
|
+
style?: import("react").CSSProperties;
|
|
17
|
+
}) => import("react/jsx-runtime").JSX.Element;
|
|
17
18
|
};
|
|
18
19
|
export { SwitchButtonField };
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
"use client";
|
|
2
|
-
import { jsx } from "
|
|
2
|
+
import { jsx } from "react/jsx-runtime";
|
|
3
3
|
import { SwitchButton } from "@ultraviolet/ui";
|
|
4
4
|
import { useController } from "react-hook-form";
|
|
5
5
|
const SwitchButtonField = ({
|
|
@@ -14,20 +14,33 @@ const SwitchButtonField = ({
|
|
|
14
14
|
className,
|
|
15
15
|
...props
|
|
16
16
|
}) => {
|
|
17
|
-
const {
|
|
18
|
-
field
|
|
19
|
-
} = useController({
|
|
17
|
+
const { field } = useController({
|
|
20
18
|
control,
|
|
21
19
|
name,
|
|
22
20
|
shouldUnregister
|
|
23
21
|
});
|
|
24
|
-
return /* @__PURE__ */ jsx(
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
22
|
+
return /* @__PURE__ */ jsx(
|
|
23
|
+
SwitchButton,
|
|
24
|
+
{
|
|
25
|
+
...props,
|
|
26
|
+
className,
|
|
27
|
+
name,
|
|
28
|
+
onBlur: (event) => {
|
|
29
|
+
field.onBlur();
|
|
30
|
+
onBlur?.(event);
|
|
31
|
+
},
|
|
32
|
+
onChange: (event) => {
|
|
33
|
+
field.onChange(event);
|
|
34
|
+
onChange?.(
|
|
35
|
+
event.target
|
|
36
|
+
);
|
|
37
|
+
},
|
|
38
|
+
onFocus,
|
|
39
|
+
size,
|
|
40
|
+
tooltip,
|
|
41
|
+
value: field.value
|
|
42
|
+
}
|
|
43
|
+
);
|
|
31
44
|
};
|
|
32
45
|
SwitchButtonField.Option = SwitchButton.Option;
|
|
33
46
|
export {
|
|
@@ -5,4 +5,4 @@ import type { BaseFieldProps } from '../../types';
|
|
|
5
5
|
export type TagInputFieldProps<TFieldValues extends FieldValues, TFieldName extends FieldPath<TFieldValues>> = BaseFieldProps<TFieldValues, TFieldName> & Omit<ComponentProps<typeof TagInput>, 'name' | 'onChange' | 'value'> & {
|
|
6
6
|
regex?: (RegExp | RegExp[])[];
|
|
7
7
|
};
|
|
8
|
-
export declare const TagInputField: <TFieldValues extends FieldValues, TFieldName extends FieldPath<TFieldValues> = FieldPath<TFieldValues>>({ regex: regexes, control, name, onChange, required, shouldUnregister, label, validate, "aria-label": ariaLabel, ...props }: TagInputFieldProps<TFieldValues, TFieldName>) => import("
|
|
8
|
+
export declare const TagInputField: <TFieldValues extends FieldValues, TFieldName extends FieldPath<TFieldValues> = FieldPath<TFieldValues>>({ regex: regexes, control, name, onChange, required, shouldUnregister, label, validate, "aria-label": ariaLabel, ...props }: TagInputFieldProps<TFieldValues, TFieldName>) => import("react/jsx-runtime").JSX.Element;
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
"use client";
|
|
2
|
-
import { jsx } from "
|
|
2
|
+
import { jsx } from "react/jsx-runtime";
|
|
3
3
|
import { TagInput } from "@ultraviolet/ui";
|
|
4
4
|
import { useController } from "react-hook-form";
|
|
5
5
|
import { validateRegex } from "../../utils/validateRegex.js";
|
|
@@ -16,14 +16,10 @@ const TagInputField = ({
|
|
|
16
16
|
"aria-label": ariaLabel,
|
|
17
17
|
...props
|
|
18
18
|
}) => {
|
|
19
|
-
const {
|
|
20
|
-
getError
|
|
21
|
-
} = useErrors();
|
|
19
|
+
const { getError } = useErrors();
|
|
22
20
|
const {
|
|
23
21
|
field,
|
|
24
|
-
fieldState: {
|
|
25
|
-
error
|
|
26
|
-
}
|
|
22
|
+
fieldState: { error }
|
|
27
23
|
} = useController({
|
|
28
24
|
control,
|
|
29
25
|
name,
|
|
@@ -38,13 +34,24 @@ const TagInputField = ({
|
|
|
38
34
|
}
|
|
39
35
|
}
|
|
40
36
|
});
|
|
41
|
-
return /* @__PURE__ */ jsx(
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
|
|
37
|
+
return /* @__PURE__ */ jsx(
|
|
38
|
+
TagInput,
|
|
39
|
+
{
|
|
40
|
+
...props,
|
|
41
|
+
"aria-label": ariaLabel,
|
|
42
|
+
error: getError(
|
|
43
|
+
{ label: label ?? ariaLabel ?? name, regex: regexes },
|
|
44
|
+
error
|
|
45
|
+
),
|
|
46
|
+
label,
|
|
47
|
+
name: field.name,
|
|
48
|
+
onChange: (newTags) => {
|
|
49
|
+
field.onChange(newTags);
|
|
50
|
+
onChange?.(newTags);
|
|
51
|
+
},
|
|
52
|
+
value: field.value
|
|
53
|
+
}
|
|
54
|
+
);
|
|
48
55
|
};
|
|
49
56
|
export {
|
|
50
57
|
TagInputField
|
|
@@ -9,4 +9,4 @@ export type TextAreaFieldProps<TFieldValues extends FieldValues, TFieldName exte
|
|
|
9
9
|
/**
|
|
10
10
|
* This component offers a form field based on Ultraviolet UI TextArea component
|
|
11
11
|
*/
|
|
12
|
-
export declare const TextAreaField: <TFieldValues extends FieldValues, TFieldName extends FieldPath<TFieldValues> = FieldPath<TFieldValues>>({ control, label, onChange, minLength, maxLength, name, onBlur, onKeyDown, required, regex: regexes, submitOnEnter, validate, "aria-label": ariaLabel, ...props }: TextAreaFieldProps<TFieldValues, TFieldName>) => import("
|
|
12
|
+
export declare const TextAreaField: <TFieldValues extends FieldValues, TFieldName extends FieldPath<TFieldValues> = FieldPath<TFieldValues>>({ control, label, onChange, minLength, maxLength, name, onBlur, onKeyDown, required, regex: regexes, submitOnEnter, validate, "aria-label": ariaLabel, ...props }: TextAreaFieldProps<TFieldValues, TFieldName>) => import("react/jsx-runtime").JSX.Element;
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
"use client";
|
|
2
|
-
import { jsx } from "
|
|
2
|
+
import { jsx } from "react/jsx-runtime";
|
|
3
3
|
import { TextArea } from "@ultraviolet/ui";
|
|
4
4
|
import { useController } from "react-hook-form";
|
|
5
5
|
import { validateRegex } from "../../utils/validateRegex.js";
|
|
@@ -20,14 +20,10 @@ const TextAreaField = ({
|
|
|
20
20
|
"aria-label": ariaLabel,
|
|
21
21
|
...props
|
|
22
22
|
}) => {
|
|
23
|
-
const {
|
|
24
|
-
getError
|
|
25
|
-
} = useErrors();
|
|
23
|
+
const { getError } = useErrors();
|
|
26
24
|
const {
|
|
27
25
|
field,
|
|
28
|
-
fieldState: {
|
|
29
|
-
error
|
|
30
|
-
}
|
|
26
|
+
fieldState: { error }
|
|
31
27
|
} = useController({
|
|
32
28
|
control,
|
|
33
29
|
name,
|
|
@@ -47,9 +43,7 @@ const TextAreaField = ({
|
|
|
47
43
|
if (submitOnEnter && event.key === "Enter" && !event.shiftKey) {
|
|
48
44
|
event.preventDefault();
|
|
49
45
|
event.stopPropagation();
|
|
50
|
-
const {
|
|
51
|
-
form
|
|
52
|
-
} = event.currentTarget;
|
|
46
|
+
const { form } = event.currentTarget;
|
|
53
47
|
if (form) {
|
|
54
48
|
const submitEvent = new Event("submit", {
|
|
55
49
|
bubbles: true,
|
|
@@ -61,23 +55,37 @@ const TextAreaField = ({
|
|
|
61
55
|
onKeyDown?.(event);
|
|
62
56
|
}
|
|
63
57
|
};
|
|
64
|
-
return /* @__PURE__ */ jsx(
|
|
65
|
-
|
|
66
|
-
|
|
67
|
-
|
|
68
|
-
|
|
69
|
-
|
|
70
|
-
|
|
71
|
-
|
|
72
|
-
|
|
73
|
-
|
|
74
|
-
|
|
75
|
-
|
|
76
|
-
|
|
77
|
-
|
|
78
|
-
|
|
79
|
-
|
|
80
|
-
|
|
58
|
+
return /* @__PURE__ */ jsx(
|
|
59
|
+
TextArea,
|
|
60
|
+
{
|
|
61
|
+
...props,
|
|
62
|
+
error: getError(
|
|
63
|
+
{
|
|
64
|
+
label: label ?? ariaLabel ?? name,
|
|
65
|
+
maxLength,
|
|
66
|
+
minLength,
|
|
67
|
+
regex: regexes,
|
|
68
|
+
value: field.value
|
|
69
|
+
},
|
|
70
|
+
error
|
|
71
|
+
),
|
|
72
|
+
maxLength,
|
|
73
|
+
minLength,
|
|
74
|
+
name,
|
|
75
|
+
onBlur: (event) => {
|
|
76
|
+
onBlur?.(event);
|
|
77
|
+
field.onBlur();
|
|
78
|
+
},
|
|
79
|
+
onChange: (event) => {
|
|
80
|
+
field.onChange(event);
|
|
81
|
+
onChange?.(event);
|
|
82
|
+
},
|
|
83
|
+
onKeyDown: onKeyDownHandler,
|
|
84
|
+
required,
|
|
85
|
+
value: field.value,
|
|
86
|
+
...label ? { label } : { "aria-label": ariaLabel }
|
|
87
|
+
}
|
|
88
|
+
);
|
|
81
89
|
};
|
|
82
90
|
export {
|
|
83
91
|
TextAreaField
|
|
@@ -8,5 +8,5 @@ type TextInputFieldProps<TFieldValues extends FieldValues, TFieldName extends Fi
|
|
|
8
8
|
/**
|
|
9
9
|
* This component offers a form field based on Ultraviolet UI TextInput component
|
|
10
10
|
*/
|
|
11
|
-
export declare const TextInputField: <TFieldValues extends FieldValues, TFieldName extends FieldPath<TFieldValues> = FieldPath<TFieldValues>>({ regex: regexes, onChange, label, required, name, onBlur, minLength, maxLength, "aria-label": ariaLabel, shouldUnregister, validate, control, ...props }: TextInputFieldProps<TFieldValues, TFieldName>) => import("
|
|
11
|
+
export declare const TextInputField: <TFieldValues extends FieldValues, TFieldName extends FieldPath<TFieldValues> = FieldPath<TFieldValues>>({ regex: regexes, onChange, label, required, name, onBlur, minLength, maxLength, "aria-label": ariaLabel, shouldUnregister, validate, control, ...props }: TextInputFieldProps<TFieldValues, TFieldName>) => import("react/jsx-runtime").JSX.Element;
|
|
12
12
|
export {};
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
"use client";
|
|
2
|
-
import { jsx } from "
|
|
2
|
+
import { jsx } from "react/jsx-runtime";
|
|
3
3
|
import { TextInput } from "@ultraviolet/ui";
|
|
4
4
|
import { useController } from "react-hook-form";
|
|
5
5
|
import { validateRegex } from "../../utils/validateRegex.js";
|
|
@@ -19,14 +19,10 @@ const TextInputField = ({
|
|
|
19
19
|
control,
|
|
20
20
|
...props
|
|
21
21
|
}) => {
|
|
22
|
-
const {
|
|
23
|
-
getError
|
|
24
|
-
} = useErrors();
|
|
22
|
+
const { getError } = useErrors();
|
|
25
23
|
const {
|
|
26
24
|
field,
|
|
27
|
-
fieldState: {
|
|
28
|
-
error
|
|
29
|
-
}
|
|
25
|
+
fieldState: { error }
|
|
30
26
|
} = useController({
|
|
31
27
|
control,
|
|
32
28
|
name,
|
|
@@ -43,19 +39,39 @@ const TextInputField = ({
|
|
|
43
39
|
},
|
|
44
40
|
shouldUnregister
|
|
45
41
|
});
|
|
46
|
-
return /* @__PURE__ */ jsx(
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
|
|
51
|
-
|
|
52
|
-
|
|
53
|
-
|
|
54
|
-
|
|
55
|
-
|
|
56
|
-
|
|
57
|
-
|
|
58
|
-
|
|
42
|
+
return /* @__PURE__ */ jsx(
|
|
43
|
+
TextInput,
|
|
44
|
+
{
|
|
45
|
+
...props,
|
|
46
|
+
"aria-label": ariaLabel,
|
|
47
|
+
error: getError(
|
|
48
|
+
{
|
|
49
|
+
label: label ?? ariaLabel ?? name,
|
|
50
|
+
maxLength,
|
|
51
|
+
minLength,
|
|
52
|
+
regex: regexes,
|
|
53
|
+
value: field.value
|
|
54
|
+
},
|
|
55
|
+
error
|
|
56
|
+
),
|
|
57
|
+
label,
|
|
58
|
+
maxLength,
|
|
59
|
+
minLength,
|
|
60
|
+
name,
|
|
61
|
+
onBlur: (event) => {
|
|
62
|
+
onBlur?.(event);
|
|
63
|
+
field.onBlur();
|
|
64
|
+
},
|
|
65
|
+
onChange: (event) => {
|
|
66
|
+
field.onChange(event);
|
|
67
|
+
onChange?.(
|
|
68
|
+
event.target.value
|
|
69
|
+
);
|
|
70
|
+
},
|
|
71
|
+
required,
|
|
72
|
+
value: field.value === void 0 ? "" : field.value
|
|
73
|
+
}
|
|
74
|
+
);
|
|
59
75
|
};
|
|
60
76
|
export {
|
|
61
77
|
TextInputField
|
|
@@ -7,5 +7,5 @@ type TimeInputFieldProps<TFieldValues extends FieldValues, TFieldName extends Fi
|
|
|
7
7
|
* This component offers a form field based on Ultraviolet UI TimeInput component
|
|
8
8
|
* @experimental This component is experimental and may be subject to breaking changes in the future.
|
|
9
9
|
*/
|
|
10
|
-
export declare const TimeInputField: <TFieldValues extends FieldValues, TFieldName extends FieldPath<TFieldValues> = FieldPath<TFieldValues>>({ onChange, label, required, name, onBlur, "aria-label": ariaLabel, shouldUnregister, control, ...props }: TimeInputFieldProps<TFieldValues, TFieldName>) => import("
|
|
10
|
+
export declare const TimeInputField: <TFieldValues extends FieldValues, TFieldName extends FieldPath<TFieldValues> = FieldPath<TFieldValues>>({ onChange, label, required, name, onBlur, "aria-label": ariaLabel, shouldUnregister, control, ...props }: TimeInputFieldProps<TFieldValues, TFieldName>) => import("react/jsx-runtime").JSX.Element;
|
|
11
11
|
export {};
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
"use client";
|
|
2
|
-
import { jsx } from "
|
|
2
|
+
import { jsx } from "react/jsx-runtime";
|
|
3
3
|
import { TimeInput } from "@ultraviolet/ui";
|
|
4
4
|
import { useController } from "react-hook-form";
|
|
5
5
|
import { useErrors } from "../../providers/ErrorContext/index.js";
|
|
@@ -14,14 +14,10 @@ const TimeInputField = ({
|
|
|
14
14
|
control,
|
|
15
15
|
...props
|
|
16
16
|
}) => {
|
|
17
|
-
const {
|
|
18
|
-
getError
|
|
19
|
-
} = useErrors();
|
|
17
|
+
const { getError } = useErrors();
|
|
20
18
|
const {
|
|
21
19
|
field,
|
|
22
|
-
fieldState: {
|
|
23
|
-
error
|
|
24
|
-
}
|
|
20
|
+
fieldState: { error }
|
|
25
21
|
} = useController({
|
|
26
22
|
control,
|
|
27
23
|
name,
|
|
@@ -30,16 +26,30 @@ const TimeInputField = ({
|
|
|
30
26
|
},
|
|
31
27
|
shouldUnregister
|
|
32
28
|
});
|
|
33
|
-
return /* @__PURE__ */ jsx(
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
|
|
29
|
+
return /* @__PURE__ */ jsx(
|
|
30
|
+
TimeInput,
|
|
31
|
+
{
|
|
32
|
+
...props,
|
|
33
|
+
error: getError(
|
|
34
|
+
{
|
|
35
|
+
label: label ?? ariaLabel ?? name,
|
|
36
|
+
value: field.value
|
|
37
|
+
},
|
|
38
|
+
error
|
|
39
|
+
),
|
|
40
|
+
label,
|
|
41
|
+
onBlur: (event) => {
|
|
42
|
+
onBlur?.(event);
|
|
43
|
+
field.onBlur();
|
|
44
|
+
},
|
|
45
|
+
onChange: (value) => {
|
|
46
|
+
field.onChange(value);
|
|
47
|
+
onChange?.(value);
|
|
48
|
+
},
|
|
49
|
+
required,
|
|
50
|
+
value: field.value
|
|
51
|
+
}
|
|
52
|
+
);
|
|
43
53
|
};
|
|
44
54
|
export {
|
|
45
55
|
TimeInputField
|
|
@@ -6,5 +6,5 @@ type ToggleFieldProps<TFieldValues extends FieldValues, TFieldName extends Field
|
|
|
6
6
|
parse?: (value: boolean) => PathValue<TFieldValues, TFieldName>;
|
|
7
7
|
format?: (value: PathValue<TFieldValues, TFieldName>) => boolean;
|
|
8
8
|
};
|
|
9
|
-
export declare const ToggleField: <TFieldValues extends FieldValues, TFieldName extends FieldPath<TFieldValues> = FieldPath<TFieldValues>>({ label, name, control, onChange, required, parse, format, shouldUnregister, validate, "aria-label": ariaLabel, ...props }: ToggleFieldProps<TFieldValues, TFieldName>) => import("
|
|
9
|
+
export declare const ToggleField: <TFieldValues extends FieldValues, TFieldName extends FieldPath<TFieldValues> = FieldPath<TFieldValues>>({ label, name, control, onChange, required, parse, format, shouldUnregister, validate, "aria-label": ariaLabel, ...props }: ToggleFieldProps<TFieldValues, TFieldName>) => import("react/jsx-runtime").JSX.Element;
|
|
10
10
|
export {};
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
"use client";
|
|
2
|
-
import { jsx } from "
|
|
2
|
+
import { jsx } from "react/jsx-runtime";
|
|
3
3
|
import { Toggle } from "@ultraviolet/ui";
|
|
4
4
|
import { useController } from "react-hook-form";
|
|
5
5
|
import { useErrors } from "../../providers/ErrorContext/index.js";
|
|
@@ -18,9 +18,7 @@ const ToggleField = ({
|
|
|
18
18
|
}) => {
|
|
19
19
|
const {
|
|
20
20
|
field,
|
|
21
|
-
fieldState: {
|
|
22
|
-
error
|
|
23
|
-
}
|
|
21
|
+
fieldState: { error }
|
|
24
22
|
} = useController({
|
|
25
23
|
control,
|
|
26
24
|
name,
|
|
@@ -30,25 +28,38 @@ const ToggleField = ({
|
|
|
30
28
|
},
|
|
31
29
|
shouldUnregister
|
|
32
30
|
});
|
|
33
|
-
const {
|
|
34
|
-
getError
|
|
35
|
-
} = useErrors();
|
|
31
|
+
const { getError } = useErrors();
|
|
36
32
|
const transformedValue = () => {
|
|
37
33
|
if (format) {
|
|
38
34
|
return format(field.value);
|
|
39
35
|
}
|
|
40
36
|
return field.value;
|
|
41
37
|
};
|
|
42
|
-
return /* @__PURE__ */ jsx(
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
|
|
38
|
+
return /* @__PURE__ */ jsx(
|
|
39
|
+
Toggle,
|
|
40
|
+
{
|
|
41
|
+
...props,
|
|
42
|
+
checked: transformedValue(),
|
|
43
|
+
error: getError(
|
|
44
|
+
{ label: typeof label === "string" ? label : ariaLabel ?? name },
|
|
45
|
+
error
|
|
46
|
+
),
|
|
47
|
+
label,
|
|
48
|
+
name: field.name,
|
|
49
|
+
onChange: (event) => {
|
|
50
|
+
if (parse) {
|
|
51
|
+
field.onChange(parse(event.target.checked));
|
|
52
|
+
} else {
|
|
53
|
+
field.onChange(event);
|
|
54
|
+
}
|
|
55
|
+
onChange?.(
|
|
56
|
+
event.target.checked
|
|
57
|
+
);
|
|
58
|
+
},
|
|
59
|
+
ref: field.ref,
|
|
60
|
+
required
|
|
49
61
|
}
|
|
50
|
-
|
|
51
|
-
}, ref: field.ref, required });
|
|
62
|
+
);
|
|
52
63
|
};
|
|
53
64
|
export {
|
|
54
65
|
ToggleField
|
|
@@ -4,8 +4,8 @@ import type { FieldPath, FieldValues } from 'react-hook-form';
|
|
|
4
4
|
import type { BaseFieldProps } from '../../types';
|
|
5
5
|
type ToggleGroupFieldProps<TFieldValues extends FieldValues, TFieldName extends FieldPath<TFieldValues>> = BaseFieldProps<TFieldValues, TFieldName> & Omit<ComponentProps<typeof ToggleGroup>, 'value' | 'onChange'>;
|
|
6
6
|
export declare const ToggleGroupField: {
|
|
7
|
-
<TFieldValues extends FieldValues, TFieldName extends FieldPath<TFieldValues> = FieldPath<TFieldValues>>({ legend, control, onChange, error: customError, name, required, shouldUnregister, validate, ...props }: ToggleGroupFieldProps<TFieldValues, TFieldName>): import("
|
|
8
|
-
Toggle: ({ disabled, name, value, label, helper, error, className, "data-testid": dataTestId, }: Omit<{
|
|
7
|
+
<TFieldValues extends FieldValues, TFieldName extends FieldPath<TFieldValues> = FieldPath<TFieldValues>>({ legend, control, onChange, error: customError, name, required, shouldUnregister, validate, ...props }: ToggleGroupFieldProps<TFieldValues, TFieldName>): import("react/jsx-runtime").JSX.Element;
|
|
8
|
+
Toggle: ({ disabled, name, value, label, helper, error, className, "data-testid": dataTestId, style, }: Omit<{
|
|
9
9
|
id?: string;
|
|
10
10
|
checked?: boolean;
|
|
11
11
|
name?: string;
|
|
@@ -21,8 +21,8 @@ export declare const ToggleGroupField: {
|
|
|
21
21
|
required?: boolean;
|
|
22
22
|
error?: boolean | string;
|
|
23
23
|
'data-testid'?: string;
|
|
24
|
-
} & Pick<import("react").InputHTMLAttributes<HTMLInputElement>, "value"> & import("react").RefAttributes<HTMLInputElement>, "required" | "onChange" | "checked"> & {
|
|
24
|
+
} & Pick<import("react").InputHTMLAttributes<HTMLInputElement>, "value" | "style"> & import("react").RefAttributes<HTMLInputElement>, "required" | "onChange" | "checked"> & {
|
|
25
25
|
value: string;
|
|
26
|
-
}) => import("
|
|
26
|
+
}) => import("react/jsx-runtime").JSX.Element;
|
|
27
27
|
};
|
|
28
28
|
export {};
|
|
@@ -0,0 +1,61 @@
|
|
|
1
|
+
"use client";
|
|
2
|
+
import { jsx } from "react/jsx-runtime";
|
|
3
|
+
import { ToggleGroup } from "@ultraviolet/ui";
|
|
4
|
+
import { useController } from "react-hook-form";
|
|
5
|
+
import { useErrors } from "../../providers/ErrorContext/index.js";
|
|
6
|
+
const ToggleGroupField = ({
|
|
7
|
+
legend = "",
|
|
8
|
+
control,
|
|
9
|
+
onChange,
|
|
10
|
+
error: customError,
|
|
11
|
+
name,
|
|
12
|
+
required = false,
|
|
13
|
+
shouldUnregister = false,
|
|
14
|
+
validate,
|
|
15
|
+
...props
|
|
16
|
+
}) => {
|
|
17
|
+
const { getError } = useErrors();
|
|
18
|
+
const {
|
|
19
|
+
field,
|
|
20
|
+
fieldState: { error }
|
|
21
|
+
} = useController({
|
|
22
|
+
control,
|
|
23
|
+
name,
|
|
24
|
+
rules: {
|
|
25
|
+
validate: {
|
|
26
|
+
...required ? { required: (value2) => value2.length > 0 } : void 0,
|
|
27
|
+
...validate
|
|
28
|
+
}
|
|
29
|
+
},
|
|
30
|
+
shouldUnregister
|
|
31
|
+
});
|
|
32
|
+
const value = field.value;
|
|
33
|
+
return /* @__PURE__ */ jsx(
|
|
34
|
+
ToggleGroup,
|
|
35
|
+
{
|
|
36
|
+
...props,
|
|
37
|
+
error: customError ?? getError({ label: legend }, error),
|
|
38
|
+
legend,
|
|
39
|
+
name: field.name,
|
|
40
|
+
onChange: (event) => {
|
|
41
|
+
if (value.includes(event.currentTarget.value)) {
|
|
42
|
+
const newValue = value.filter(
|
|
43
|
+
(currentValue) => currentValue !== event.currentTarget.value
|
|
44
|
+
);
|
|
45
|
+
field.onChange(newValue);
|
|
46
|
+
onChange?.(newValue);
|
|
47
|
+
} else {
|
|
48
|
+
const newValue = [...value, event.currentTarget.value];
|
|
49
|
+
field.onChange(newValue);
|
|
50
|
+
onChange?.(newValue);
|
|
51
|
+
}
|
|
52
|
+
},
|
|
53
|
+
required,
|
|
54
|
+
value
|
|
55
|
+
}
|
|
56
|
+
);
|
|
57
|
+
};
|
|
58
|
+
ToggleGroupField.Toggle = ToggleGroup.Toggle;
|
|
59
|
+
export {
|
|
60
|
+
ToggleGroupField
|
|
61
|
+
};
|
|
@@ -5,5 +5,5 @@ import type { BaseFieldProps } from '../../types';
|
|
|
5
5
|
type UnitInputFieldProps<TFieldValues extends FieldValues, TFieldName extends FieldPath<TFieldValues>> = BaseFieldProps<TFieldValues, TFieldName> & Omit<ComponentProps<typeof UnitInput>, 'value' | 'onChange' | 'label'> & {
|
|
6
6
|
optionName?: string;
|
|
7
7
|
};
|
|
8
|
-
export declare const UnitInputField: <TFieldValues extends FieldValues, TFieldName extends FieldPath<TFieldValues> = FieldPath<TFieldValues>>({ name, max, min, onChange, onChangeUnitValue, label, required, shouldUnregister, validate, control, optionName, ...props }: UnitInputFieldProps<TFieldValues, TFieldName>) => import("
|
|
8
|
+
export declare const UnitInputField: <TFieldValues extends FieldValues, TFieldName extends FieldPath<TFieldValues> = FieldPath<TFieldValues>>({ name, max, min, onChange, onChangeUnitValue, label, required, shouldUnregister, validate, control, optionName, ...props }: UnitInputFieldProps<TFieldValues, TFieldName>) => import("react/jsx-runtime").JSX.Element;
|
|
9
9
|
export {};
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
"use client";
|
|
2
|
-
import { jsx } from "
|
|
2
|
+
import { jsx } from "react/jsx-runtime";
|
|
3
3
|
import { UnitInput } from "@ultraviolet/ui";
|
|
4
4
|
import { useController } from "react-hook-form";
|
|
5
5
|
import { useErrors } from "../../providers/ErrorContext/index.js";
|
|
@@ -17,22 +17,13 @@ const UnitInputField = ({
|
|
|
17
17
|
optionName,
|
|
18
18
|
...props
|
|
19
19
|
}) => {
|
|
20
|
-
const {
|
|
21
|
-
|
|
22
|
-
} = useErrors();
|
|
23
|
-
const {
|
|
24
|
-
field: unitField
|
|
25
|
-
} = useController({
|
|
20
|
+
const { getError } = useErrors();
|
|
21
|
+
const { field: unitField } = useController({
|
|
26
22
|
name: optionName ?? `${name}-unit`,
|
|
27
|
-
rules: {
|
|
28
|
-
required
|
|
29
|
-
},
|
|
23
|
+
rules: { required },
|
|
30
24
|
shouldUnregister
|
|
31
25
|
});
|
|
32
|
-
const {
|
|
33
|
-
field: valueField,
|
|
34
|
-
fieldState: valueFieldState
|
|
35
|
-
} = useController({
|
|
26
|
+
const { field: valueField, fieldState: valueFieldState } = useController({
|
|
36
27
|
control,
|
|
37
28
|
name,
|
|
38
29
|
rules: {
|
|
@@ -43,15 +34,28 @@ const UnitInputField = ({
|
|
|
43
34
|
},
|
|
44
35
|
shouldUnregister
|
|
45
36
|
});
|
|
46
|
-
return /* @__PURE__ */ jsx(
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
|
|
51
|
-
|
|
52
|
-
|
|
53
|
-
|
|
54
|
-
|
|
37
|
+
return /* @__PURE__ */ jsx(
|
|
38
|
+
UnitInput,
|
|
39
|
+
{
|
|
40
|
+
...props,
|
|
41
|
+
error: getError({ label }, valueFieldState.error),
|
|
42
|
+
label,
|
|
43
|
+
max,
|
|
44
|
+
min,
|
|
45
|
+
name,
|
|
46
|
+
onChange: (event) => {
|
|
47
|
+
valueField.onChange(event);
|
|
48
|
+
onChange?.(event);
|
|
49
|
+
},
|
|
50
|
+
onChangeUnitValue: (event) => {
|
|
51
|
+
unitField.onChange(event);
|
|
52
|
+
onChangeUnitValue?.(event);
|
|
53
|
+
},
|
|
54
|
+
required,
|
|
55
|
+
unitValue: unitField.value,
|
|
56
|
+
value: valueField.value
|
|
57
|
+
}
|
|
58
|
+
);
|
|
55
59
|
};
|
|
56
60
|
export {
|
|
57
61
|
UnitInputField
|
|
@@ -3,5 +3,5 @@ import type { ComponentProps } from 'react';
|
|
|
3
3
|
import type { FieldPath, FieldValues } from 'react-hook-form';
|
|
4
4
|
import type { BaseFieldProps } from '../../types';
|
|
5
5
|
type VerificationCodeFieldProps<TFieldValues extends FieldValues, TFieldName extends FieldPath<TFieldValues>> = BaseFieldProps<TFieldValues, TFieldName> & Omit<ComponentProps<typeof VerificationCode>, 'value'>;
|
|
6
|
-
export declare const VerificationCodeField: <TFieldValues extends FieldValues, TName extends FieldPath<TFieldValues> = FieldPath<TFieldValues>>({ fields, inputId, label, name, onChange, required, validate, ...props }: VerificationCodeFieldProps<TFieldValues, TName>) => import("
|
|
6
|
+
export declare const VerificationCodeField: <TFieldValues extends FieldValues, TName extends FieldPath<TFieldValues> = FieldPath<TFieldValues>>({ fields, inputId, label, name, onChange, required, validate, ...props }: VerificationCodeFieldProps<TFieldValues, TName>) => import("react/jsx-runtime").JSX.Element;
|
|
7
7
|
export {};
|