@uxf/form 1.0.0-beta.146 → 1.0.0-beta.148

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 (39) hide show
  1. package/avatar-file-input/avatar-file-input.d.ts +4 -0
  2. package/avatar-file-input/avatar-file-input.js +6 -1
  3. package/checkbox-button/checkbox-button.d.ts +4 -0
  4. package/checkbox-button/checkbox-button.js +6 -1
  5. package/checkbox-input/checkbox-input.d.ts +4 -0
  6. package/checkbox-input/checkbox-input.js +6 -1
  7. package/color-radio-group/color-radio-group.d.ts +5 -1
  8. package/color-radio-group/color-radio-group.js +7 -3
  9. package/combobox/combobox.d.ts +5 -1
  10. package/combobox/combobox.js +6 -1
  11. package/date-picker-input/date-picker-input.d.ts +4 -0
  12. package/date-picker-input/date-picker-input.js +3 -1
  13. package/dropzone/dropzone-input.d.ts +5 -0
  14. package/dropzone/dropzone-input.js +6 -1
  15. package/dropzone/dropzone-list.d.ts +7 -1
  16. package/dropzone/dropzone-list.js +6 -1
  17. package/file-input/file-input.d.ts +4 -0
  18. package/file-input/file-input.js +6 -1
  19. package/gps-input/gps-input.d.ts +4 -0
  20. package/gps-input/gps-input.js +10 -7
  21. package/multi-combobox/multi-combobox.d.ts +5 -1
  22. package/multi-combobox/multi-combobox.js +6 -1
  23. package/multi-select/multi-select.d.ts +5 -1
  24. package/multi-select/multi-select.js +6 -1
  25. package/number-input/number-input.d.ts +4 -0
  26. package/number-input/number-input.js +6 -1
  27. package/package.json +2 -2
  28. package/radio-group/radio-group.d.ts +5 -1
  29. package/radio-group/radio-group.js +7 -3
  30. package/select/select.d.ts +5 -1
  31. package/select/select.js +6 -1
  32. package/text-input/text-input.d.ts +5 -1
  33. package/text-input/text-input.js +6 -1
  34. package/textarea/textarea.d.ts +4 -0
  35. package/textarea/textarea.js +6 -1
  36. package/time-picker-input/time-picker-input.d.ts +5 -0
  37. package/time-picker-input/time-picker-input.js +6 -4
  38. package/toggle/toggle.d.ts +5 -0
  39. package/toggle/toggle.js +7 -2
@@ -1,10 +1,14 @@
1
1
  /// <reference types="react" />
2
2
  import { AvatarFileInputProps as UIAvatarFileInputProps } from "@uxf/ui/avatar-file-input";
3
3
  import { FieldValues, UseControllerProps } from "react-hook-form";
4
+ import { FileResponse, FormControlProps } from "@uxf/ui/types";
5
+ type OnChangeHandler = FormControlProps<FileResponse | null>["onChange"];
4
6
  export type AvatarFileInputProps<FormData extends FieldValues> = UseControllerProps<FormData> & Omit<UIAvatarFileInputProps, "isInvalid" | "onChange" | "value"> & {
7
+ onChange?: OnChangeHandler;
5
8
  requiredMessage?: string;
6
9
  };
7
10
  export declare function AvatarFileInput<FormData extends FieldValues>(props: AvatarFileInputProps<FormData>): JSX.Element;
8
11
  export declare namespace AvatarFileInput {
9
12
  var displayName: string;
10
13
  }
14
+ export {};
@@ -24,7 +24,12 @@ function AvatarFileInput(props) {
24
24
  field.onBlur();
25
25
  (_a = props.onBlur) === null || _a === void 0 ? void 0 : _a.call(props, event);
26
26
  };
27
- return (react_1.default.createElement(avatar_file_input_1.AvatarFileInput, { accept: props.accept, className: props.className, form: props.form, helperText: (_c = (_b = fieldState.error) === null || _b === void 0 ? void 0 : _b.message) !== null && _c !== void 0 ? _c : props.helperText, id: props.id, isDisabled: props.isDisabled, isInvalid: !!fieldState.error, isReadOnly: props.isReadOnly, isRequired: props.isRequired, label: props.label, name: field.name, onBlur: onBlur, onChange: field.onChange, onFocus: props.onFocus, onUploadError: props.onUploadError, onUploadFile: props.onUploadFile, ref: field.ref, value: field.value }));
27
+ const onChange = (value, event) => {
28
+ var _a;
29
+ field.onChange(value);
30
+ (_a = props.onChange) === null || _a === void 0 ? void 0 : _a.call(props, value, event);
31
+ };
32
+ return (react_1.default.createElement(avatar_file_input_1.AvatarFileInput, { accept: props.accept, className: props.className, form: props.form, helperText: (_c = (_b = fieldState.error) === null || _b === void 0 ? void 0 : _b.message) !== null && _c !== void 0 ? _c : props.helperText, id: props.id, isDisabled: props.isDisabled, isInvalid: !!fieldState.error, isReadOnly: props.isReadOnly, isRequired: props.isRequired, label: props.label, name: field.name, onBlur: onBlur, onChange: onChange, onFocus: props.onFocus, onUploadError: props.onUploadError, onUploadFile: props.onUploadFile, ref: field.ref, value: field.value }));
28
33
  }
29
34
  exports.AvatarFileInput = AvatarFileInput;
30
35
  AvatarFileInput.displayName = "UxfFormAvatarFileInput";
@@ -1,11 +1,15 @@
1
1
  /// <reference types="react" />
2
2
  import { CheckboxButtonProps as UICheckboxButtonProps } from "@uxf/ui/checkbox-button";
3
3
  import { FieldValues, UseControllerProps } from "react-hook-form";
4
+ import { FormControlProps } from "@uxf/ui/types";
5
+ type OnChangeHandler = FormControlProps<boolean | undefined>["onChange"];
4
6
  export type ComboProps<FormData extends FieldValues> = UseControllerProps<FormData> & Omit<UICheckboxButtonProps, "isInvalid" | "name" | "onChange" | "value"> & {
5
7
  nullable?: boolean;
8
+ onChange?: OnChangeHandler;
6
9
  requiredMessage?: string;
7
10
  };
8
11
  export declare function CheckboxButton<FormData extends Record<string, any>>(props: ComboProps<FormData>): JSX.Element;
9
12
  export declare namespace CheckboxButton {
10
13
  var displayName: string;
11
14
  }
15
+ export {};
@@ -24,7 +24,12 @@ function CheckboxButton(props) {
24
24
  field.onBlur();
25
25
  (_a = props.onBlur) === null || _a === void 0 ? void 0 : _a.call(props, event);
26
26
  };
27
- return (react_1.default.createElement(checkbox_button_1.CheckboxButton, { className: props.className, isDisabled: props.isDisabled, isInvalid: !!fieldState.error, isReadOnly: props.isReadOnly, isRequired: props.isRequired, label: props.label, name: field.name, onBlur: onBlur, onChange: (value) => field.onChange(value), onFocus: props.onFocus, ref: field.ref, value: (_b = field.value) !== null && _b !== void 0 ? _b : (!props.nullable ? false : undefined) }));
27
+ const onChange = (value, event) => {
28
+ var _a;
29
+ field.onChange(value);
30
+ (_a = props.onChange) === null || _a === void 0 ? void 0 : _a.call(props, value, event);
31
+ };
32
+ return (react_1.default.createElement(checkbox_button_1.CheckboxButton, { className: props.className, isDisabled: props.isDisabled, isInvalid: !!fieldState.error, isReadOnly: props.isReadOnly, isRequired: props.isRequired, label: props.label, name: field.name, onBlur: onBlur, onChange: onChange, onFocus: props.onFocus, ref: field.ref, value: (_b = field.value) !== null && _b !== void 0 ? _b : (!props.nullable ? false : undefined) }));
28
33
  }
29
34
  exports.CheckboxButton = CheckboxButton;
30
35
  CheckboxButton.displayName = "UxfFormCheckboxButton";
@@ -1,11 +1,15 @@
1
1
  /// <reference types="react" />
2
2
  import { CheckboxInputProps as UICheckboxInputProps } from "@uxf/ui/checkbox-input";
3
3
  import { FieldValues, UseControllerProps } from "react-hook-form";
4
+ import { FormControlProps } from "@uxf/ui/types";
5
+ type OnChangeHandler = FormControlProps<boolean | undefined>["onChange"];
4
6
  export type ComboProps<FormData extends FieldValues> = UseControllerProps<FormData> & Omit<UICheckboxInputProps, "isInvalid" | "name" | "onChange" | "value"> & {
5
7
  nullable?: boolean;
8
+ onChange?: OnChangeHandler;
6
9
  requiredMessage?: string;
7
10
  };
8
11
  export declare function CheckboxInput<FormData extends Record<string, any>>(props: ComboProps<FormData>): JSX.Element;
9
12
  export declare namespace CheckboxInput {
10
13
  var displayName: string;
11
14
  }
15
+ export {};
@@ -24,7 +24,12 @@ function CheckboxInput(props) {
24
24
  field.onBlur();
25
25
  (_a = props.onBlur) === null || _a === void 0 ? void 0 : _a.call(props, event);
26
26
  };
27
- return (react_1.default.createElement(checkbox_input_1.CheckboxInput, { className: props.className, isDisabled: props.isDisabled, isInvalid: !!fieldState.error, isReadOnly: props.isReadOnly, isRequired: props.isRequired, label: props.label, name: field.name, onBlur: onBlur, onChange: field.onChange, onFocus: props.onFocus, ref: field.ref, value: (_b = field.value) !== null && _b !== void 0 ? _b : (!props.nullable ? false : undefined) }));
27
+ const onChange = (value, event) => {
28
+ var _a;
29
+ field.onChange(value);
30
+ (_a = props.onChange) === null || _a === void 0 ? void 0 : _a.call(props, value, event);
31
+ };
32
+ return (react_1.default.createElement(checkbox_input_1.CheckboxInput, { className: props.className, isDisabled: props.isDisabled, isInvalid: !!fieldState.error, isReadOnly: props.isReadOnly, isRequired: props.isRequired, label: props.label, name: field.name, onBlur: onBlur, onChange: onChange, onFocus: props.onFocus, ref: field.ref, value: (_b = field.value) !== null && _b !== void 0 ? _b : (!props.nullable ? false : undefined) }));
28
33
  }
29
34
  exports.CheckboxInput = CheckboxInput;
30
35
  CheckboxInput.displayName = "UxfFormCheckboxInput";
@@ -1,10 +1,14 @@
1
1
  /// <reference types="react" />
2
- import { ColorRadioGroupProps as UIColorRadioGroupProps } from "@uxf/ui/color-radio-group";
2
+ import { ColorRadioGroupOptionValue, ColorRadioGroupProps as UIColorRadioGroupProps } from "@uxf/ui/color-radio-group";
3
3
  import { FieldValues, UseControllerProps } from "react-hook-form";
4
+ import { FormControlProps } from "@uxf/ui/types";
5
+ type OnChangeHandler = FormControlProps<ColorRadioGroupOptionValue | null>["onChange"];
4
6
  export type ColorRadioGroupProps<FormData extends FieldValues> = UseControllerProps<FormData> & Omit<UIColorRadioGroupProps, "isInvalid" | "name" | "onChange" | "value"> & {
7
+ onChange?: OnChangeHandler;
5
8
  requiredMessage?: string;
6
9
  };
7
10
  export declare function ColorRadioGroup<FormData extends Record<string, any>>(props: ColorRadioGroupProps<FormData>): JSX.Element;
8
11
  export declare namespace ColorRadioGroup {
9
12
  var displayName: string;
10
13
  }
14
+ export {};
@@ -8,7 +8,7 @@ const color_radio_group_1 = require("@uxf/ui/color-radio-group");
8
8
  const react_1 = __importDefault(require("react"));
9
9
  const react_hook_form_1 = require("react-hook-form");
10
10
  function ColorRadioGroup(props) {
11
- var _a, _b, _c;
11
+ var _a, _b, _c, _d;
12
12
  const { field, fieldState } = (0, react_hook_form_1.useController)({
13
13
  control: props.control,
14
14
  defaultValue: props.defaultValue,
@@ -24,8 +24,12 @@ function ColorRadioGroup(props) {
24
24
  field.onBlur();
25
25
  (_a = props.onBlur) === null || _a === void 0 ? void 0 : _a.call(props, event);
26
26
  };
27
- const onChange = (value) => field.onChange(value);
28
- return (react_1.default.createElement(color_radio_group_1.ColorRadioGroup, { className: props.className, helperText: (_c = (_b = fieldState.error) === null || _b === void 0 ? void 0 : _b.message) !== null && _c !== void 0 ? _c : props.helperText, hiddenLabel: props.hiddenLabel, id: props.id, isDisabled: props.options.length === 0 || props.isDisabled, isInvalid: !!fieldState.error, isReadOnly: props.isReadOnly, isRequired: props.isRequired, label: props.label, name: field.name, onBlur: onBlur, onChange: onChange, onFocus: props.onFocus, options: props.options, ref: field.ref, style: props.style, value: field.value }));
27
+ const onChange = (value, event) => {
28
+ var _a;
29
+ field.onChange(value);
30
+ (_a = props.onChange) === null || _a === void 0 ? void 0 : _a.call(props, value, event);
31
+ };
32
+ return (react_1.default.createElement(color_radio_group_1.ColorRadioGroup, { className: props.className, helperText: (_c = (_b = fieldState.error) === null || _b === void 0 ? void 0 : _b.message) !== null && _c !== void 0 ? _c : props.helperText, hiddenLabel: props.hiddenLabel, id: props.id, isDisabled: props.options.length === 0 || props.isDisabled, isInvalid: !!fieldState.error, isReadOnly: props.isReadOnly, isRequired: props.isRequired, label: props.label, name: field.name, onBlur: onBlur, onChange: onChange, onFocus: props.onFocus, options: props.options, ref: field.ref, style: props.style, value: (_d = field.value) !== null && _d !== void 0 ? _d : null }));
29
33
  }
30
34
  exports.ColorRadioGroup = ColorRadioGroup;
31
35
  ColorRadioGroup.displayName = "UxfFormColorRadioGroup";
@@ -1,10 +1,14 @@
1
1
  /// <reference types="react" />
2
- import { ComboboxProps as UIComboboxProps } from "@uxf/ui/combobox";
2
+ import { ComboboxProps as UIComboboxProps, ComboboxValue } from "@uxf/ui/combobox";
3
3
  import { FieldValues, UseControllerProps } from "react-hook-form";
4
+ import { FormControlProps } from "@uxf/ui/types";
5
+ type OnChangeHandler = FormControlProps<ComboboxValue | null>["onChange"];
4
6
  export type ComboProps<FormData extends FieldValues> = UseControllerProps<FormData> & Omit<UIComboboxProps, "isInvalid" | "name" | "onChange" | "value"> & {
7
+ onChange?: OnChangeHandler;
5
8
  requiredMessage?: string;
6
9
  };
7
10
  export declare function Combobox<FormData extends Record<string, any>>(props: ComboProps<FormData>): JSX.Element;
8
11
  export declare namespace Combobox {
9
12
  var displayName: string;
10
13
  }
14
+ export {};
@@ -24,7 +24,12 @@ function Combobox(props) {
24
24
  field.onBlur();
25
25
  (_a = props.onBlur) === null || _a === void 0 ? void 0 : _a.call(props, event);
26
26
  };
27
- return (react_1.default.createElement(combobox_1.Combobox, { className: props.className, dropdownPlacement: props.dropdownPlacement, forwardRef: field.ref, helperText: (_c = (_b = fieldState.error) === null || _b === void 0 ? void 0 : _b.message) !== null && _c !== void 0 ? _c : props.helperText, hiddenLabel: props.hiddenLabel, id: props.id, isClearable: props.isClearable, isDisabled: ((_d = props.options) === null || _d === void 0 ? void 0 : _d.length) === 0 || props.isDisabled, isInvalid: !!fieldState.error, isReadOnly: props.isReadOnly, isRequired: props.isRequired, label: props.label, loadOptions: props.loadOptions, name: field.name, onBlur: onBlur, onChange: field.onChange, onFocus: props.onFocus, options: props.options, placeholder: props.placeholder, value: field.value }));
27
+ const onChange = (value, event) => {
28
+ var _a;
29
+ field.onChange(value);
30
+ (_a = props.onChange) === null || _a === void 0 ? void 0 : _a.call(props, value, event);
31
+ };
32
+ return (react_1.default.createElement(combobox_1.Combobox, { className: props.className, dropdownPlacement: props.dropdownPlacement, forwardRef: field.ref, helperText: (_c = (_b = fieldState.error) === null || _b === void 0 ? void 0 : _b.message) !== null && _c !== void 0 ? _c : props.helperText, hiddenLabel: props.hiddenLabel, id: props.id, isClearable: props.isClearable, isDisabled: ((_d = props.options) === null || _d === void 0 ? void 0 : _d.length) === 0 || props.isDisabled, isInvalid: !!fieldState.error, isReadOnly: props.isReadOnly, isRequired: props.isRequired, label: props.label, loadOptions: props.loadOptions, name: field.name, onBlur: onBlur, onChange: onChange, onFocus: props.onFocus, options: props.options, placeholder: props.placeholder, value: field.value }));
28
33
  }
29
34
  exports.Combobox = Combobox;
30
35
  Combobox.displayName = "UxfFormCombobox";
@@ -1,10 +1,14 @@
1
1
  /// <reference types="react" />
2
2
  import { DatePickerInputProps as UIDatePickerInputProps } from "@uxf/ui/date-picker-input";
3
3
  import { FieldValues, UseControllerProps } from "react-hook-form";
4
+ import { FormControlProps } from "@uxf/ui/types";
5
+ type OnChangeHandler = FormControlProps<Date | null>["onChange"];
4
6
  export type DatePickerInputProps<FormData extends FieldValues> = UseControllerProps<FormData> & Omit<UIDatePickerInputProps, "isInvalid" | "max" | "min" | "pattern" | "step" | "name" | "onChange" | "value"> & {
7
+ onChange?: OnChangeHandler;
5
8
  requiredMessage?: string;
6
9
  };
7
10
  export declare function DatePickerInput<FormData extends FieldValues>(props: DatePickerInputProps<FormData>): JSX.Element;
8
11
  export declare namespace DatePickerInput {
9
12
  var displayName: string;
10
13
  }
14
+ export {};
@@ -25,8 +25,10 @@ function DatePickerInput(props) {
25
25
  field.onBlur();
26
26
  (_a = props.onBlur) === null || _a === void 0 ? void 0 : _a.call(props, event);
27
27
  };
28
- const onChange = (value) => {
28
+ const onChange = (value, event) => {
29
+ var _a;
29
30
  field.onChange(value ? (0, dayjs_1.default)(value).format("YYYY-MM-DD") : null);
31
+ (_a = props.onChange) === null || _a === void 0 ? void 0 : _a.call(props, value, event);
30
32
  };
31
33
  return (react_1.default.createElement(date_picker_input_1.DatePickerInput, { className: props.className, form: props.form, helperText: (_c = (_b = fieldState.error) === null || _b === void 0 ? void 0 : _b.message) !== null && _c !== void 0 ? _c : props.helperText, hiddenLabel: props.hiddenLabel, id: props.id, isClearable: props.isClearable, isDisabled: props.isDisabled, isInvalid: !!fieldState.error, isReadOnly: props.isReadOnly, isRequired: props.isRequired, label: props.label, leftAddon: props.leftAddon, leftElement: props.leftElement, name: field.name, onBlur: onBlur, onChange: onChange, onFocus: props.onFocus, placeholder: props.placeholder, ref: field.ref, rightAddon: props.rightAddon, rightElement: props.rightElement, size: props.size, value: field.value, variant: props.variant }));
32
34
  }
@@ -1,11 +1,16 @@
1
1
  /// <reference types="react" />
2
2
  import { DropzoneInputProps as UIDropzoneProps } from "@uxf/ui/dropzone";
3
+ import { DropzoneFile } from "@uxf/ui/dropzone/types";
3
4
  import { FieldValues, UseControllerProps } from "react-hook-form";
5
+ import { FormControlProps } from "@uxf/ui/types";
6
+ type OnChangeHandler = FormControlProps<DropzoneFile[] | undefined>["onChange"];
4
7
  export type DropzoneProps<FormData extends FieldValues> = UseControllerProps<FormData> & Omit<UIDropzoneProps, "onChange" | "value"> & {
5
8
  minFilesCount?: number;
9
+ onChange?: OnChangeHandler;
6
10
  requiredMessage?: string;
7
11
  };
8
12
  export declare function DropzoneInput<FormData extends FieldValues>(props: DropzoneProps<FormData>): JSX.Element;
9
13
  export declare namespace DropzoneInput {
10
14
  var displayName: string;
11
15
  }
16
+ export {};
@@ -44,7 +44,12 @@ function DropzoneInput(props) {
44
44
  },
45
45
  shouldUnregister: props.shouldUnregister,
46
46
  });
47
- return (react_1.default.createElement(dropzone_1.Dropzone, { helperText: ((_c = fieldState.error) === null || _c === void 0 ? void 0 : _c.message) || props.helperText, isDisabled: props.isDisabled, isInvalid: !!fieldState.error, isRequired: props.isRequired, label: props.label, maxFileSize: props.maxFileSize, maxFilesCount: props.maxFilesCount, minFileSize: props.minFileSize, noClick: props.noClick, noDrag: props.noDrag, onChange: field.onChange, onUploadError: props.onUploadError, onUploadFile: props.onUploadFile, ref: field.ref, value: field.value }));
47
+ const onChange = (value, event) => {
48
+ var _a;
49
+ field.onChange(value);
50
+ (_a = props.onChange) === null || _a === void 0 ? void 0 : _a.call(props, value, event);
51
+ };
52
+ return (react_1.default.createElement(dropzone_1.Dropzone, { helperText: ((_c = fieldState.error) === null || _c === void 0 ? void 0 : _c.message) || props.helperText, isDisabled: props.isDisabled, isInvalid: !!fieldState.error, isRequired: props.isRequired, label: props.label, maxFileSize: props.maxFileSize, maxFilesCount: props.maxFilesCount, minFileSize: props.minFileSize, noClick: props.noClick, noDrag: props.noDrag, onChange: onChange, onUploadError: props.onUploadError, onUploadFile: props.onUploadFile, ref: field.ref, value: field.value }));
48
53
  }
49
54
  exports.DropzoneInput = DropzoneInput;
50
55
  DropzoneInput.displayName = "UxfFormDropzoneInput";
@@ -1,8 +1,14 @@
1
1
  /// <reference types="react" />
2
2
  import { DropzoneListProps as UIDropzoneListProps } from "@uxf/ui/dropzone";
3
3
  import { FieldValues, UseControllerProps } from "react-hook-form";
4
- export type DropzoneListProps<FormData extends FieldValues> = Pick<UseControllerProps<FormData>, "control" | "name"> & Pick<UIDropzoneListProps, "errorText" | "onAbortWarning" | "onRemoveWarning" | "renderItem">;
4
+ import { FormControlProps } from "@uxf/ui/types";
5
+ import { DropzoneFile } from "@uxf/ui/dropzone/types";
6
+ type OnChangeHandler = FormControlProps<DropzoneFile[] | undefined>["onChange"];
7
+ export interface DropzoneListProps<FormData extends FieldValues> extends Pick<UseControllerProps<FormData>, "control" | "name">, Pick<UIDropzoneListProps, "errorText" | "onAbortWarning" | "onRemoveWarning" | "renderItem"> {
8
+ onChange?: OnChangeHandler;
9
+ }
5
10
  export declare function DropzoneList<FormData extends FieldValues>(props: DropzoneListProps<FormData>): JSX.Element;
6
11
  export declare namespace DropzoneList {
7
12
  var displayName: string;
8
13
  }
14
+ export {};
@@ -12,7 +12,12 @@ function DropzoneList(props) {
12
12
  control: props.control,
13
13
  name: props.name,
14
14
  });
15
- return (react_1.default.createElement(dropzone_1.Dropzone.List, { errorText: props.errorText, onAbortWarning: props.onAbortWarning, onChange: field.onChange, onRemoveWarning: props.onRemoveWarning, renderItem: props.renderItem, value: field.value }));
15
+ const onChange = (value, event) => {
16
+ var _a;
17
+ field.onChange(value);
18
+ (_a = props.onChange) === null || _a === void 0 ? void 0 : _a.call(props, value, event);
19
+ };
20
+ return (react_1.default.createElement(dropzone_1.Dropzone.List, { errorText: props.errorText, onAbortWarning: props.onAbortWarning, onChange: onChange, onRemoveWarning: props.onRemoveWarning, renderItem: props.renderItem, value: field.value }));
16
21
  }
17
22
  exports.DropzoneList = DropzoneList;
18
23
  DropzoneList.displayName = "UxfFormDropzoneList";
@@ -1,10 +1,14 @@
1
1
  /// <reference types="react" />
2
2
  import { FileInputProps as UIFileInputProps } from "@uxf/ui/file-input";
3
3
  import { FieldValues, UseControllerProps } from "react-hook-form";
4
+ import { FileResponse, FormControlProps } from "@uxf/ui/types";
5
+ type OnChangeHandler = FormControlProps<FileResponse | null>["onChange"];
4
6
  export type FileInputProps<FormData extends FieldValues> = UseControllerProps<FormData> & Omit<UIFileInputProps, "isInvalid" | "onChange" | "value"> & {
7
+ onChange?: OnChangeHandler;
5
8
  requiredMessage?: string;
6
9
  };
7
10
  export declare function FileInput<FormData extends FieldValues>(props: FileInputProps<FormData>): JSX.Element;
8
11
  export declare namespace FileInput {
9
12
  var displayName: string;
10
13
  }
14
+ export {};
@@ -24,7 +24,12 @@ function FileInput(props) {
24
24
  field.onBlur();
25
25
  (_a = props.onBlur) === null || _a === void 0 ? void 0 : _a.call(props, event);
26
26
  };
27
- return (react_1.default.createElement(file_input_1.FileInput, { accept: props.accept, className: props.className, form: props.form, helperText: (_c = (_b = fieldState.error) === null || _b === void 0 ? void 0 : _b.message) !== null && _c !== void 0 ? _c : props.helperText, id: props.id, isClearable: props.isClearable, isDisabled: props.isDisabled, isInvalid: !!fieldState.error, isReadOnly: props.isReadOnly, isRequired: props.isRequired, label: props.label, name: field.name, onBlur: onBlur, onChange: field.onChange, onFocus: props.onFocus, onUploadError: props.onUploadError, onUploadFile: props.onUploadFile, ref: field.ref, size: props.size, value: field.value, variant: props.variant }));
27
+ const onChange = (value, event) => {
28
+ var _a;
29
+ field.onChange(value);
30
+ (_a = props.onChange) === null || _a === void 0 ? void 0 : _a.call(props, value, event);
31
+ };
32
+ return (react_1.default.createElement(file_input_1.FileInput, { accept: props.accept, className: props.className, form: props.form, helperText: (_c = (_b = fieldState.error) === null || _b === void 0 ? void 0 : _b.message) !== null && _c !== void 0 ? _c : props.helperText, id: props.id, isClearable: props.isClearable, isDisabled: props.isDisabled, isInvalid: !!fieldState.error, isReadOnly: props.isReadOnly, isRequired: props.isRequired, label: props.label, name: field.name, onBlur: onBlur, onChange: onChange, onFocus: props.onFocus, onUploadError: props.onUploadError, onUploadFile: props.onUploadFile, ref: field.ref, size: props.size, value: field.value, variant: props.variant }));
28
33
  }
29
34
  exports.FileInput = FileInput;
30
35
  FileInput.displayName = "FileInput";
@@ -1,14 +1,18 @@
1
1
  /// <reference types="react" />
2
2
  import { TextInputProps as UITextInputProps } from "@uxf/ui/text-input";
3
3
  import { FieldValues, UseControllerProps } from "react-hook-form";
4
+ import { FormControlProps } from "@uxf/ui/types";
4
5
  export type Gps = {
5
6
  lat: number;
6
7
  lng: number;
7
8
  };
9
+ type OnChangeHandler = FormControlProps<string>["onChange"];
8
10
  export type GpsInputProps<FormData extends FieldValues> = UseControllerProps<FormData> & Omit<UITextInputProps, "isInvalid" | "max" | "min" | "pattern" | "step" | "name" | "onChange" | "value" | "type"> & {
11
+ onChange?: OnChangeHandler;
9
12
  requiredMessage?: string;
10
13
  };
11
14
  export declare function GpsInput<FormData extends Record<string, Gps | null | undefined>>(props: GpsInputProps<FormData>): JSX.Element;
12
15
  export declare namespace GpsInput {
13
16
  var displayName: string;
14
17
  }
18
+ export {};
@@ -114,23 +114,26 @@ function GpsInput(props) {
114
114
  setVisualValue(`${field.value.lat}N, ${field.value.lng}E`);
115
115
  }
116
116
  }, [field.value, visualValue]);
117
- const handleChange = (value) => {
117
+ const onBlur = (event) => {
118
+ var _a;
119
+ field.onBlur();
120
+ (_a = props.onBlur) === null || _a === void 0 ? void 0 : _a.call(props, event);
121
+ };
122
+ const onChange = (value, event) => {
123
+ var _a, _b;
118
124
  setVisualValue(value);
119
125
  try {
120
126
  const coords = new coordinate_parser_1.default(value);
121
127
  setCoordsFormatError(false);
122
128
  field.onChange({ lat: coords.getLatitude(), lng: coords.getLongitude() });
129
+ (_a = props.onChange) === null || _a === void 0 ? void 0 : _a.call(props, value, event);
123
130
  }
124
131
  catch (e) {
125
132
  setCoordsFormatError(true);
126
133
  field.onChange(null);
134
+ (_b = props.onChange) === null || _b === void 0 ? void 0 : _b.call(props, value, event);
127
135
  }
128
136
  };
129
- const onBlur = (event) => {
130
- var _a;
131
- field.onBlur();
132
- (_a = props.onBlur) === null || _a === void 0 ? void 0 : _a.call(props, event);
133
- };
134
137
  const composedHelperText = (react_1.default.createElement(react_1.default.Fragment, null,
135
138
  fieldState.error && !coordsFormatError && !field.value
136
139
  ? `${fieldState.error.message}`
@@ -141,7 +144,7 @@ function GpsInput(props) {
141
144
  : EMPTY_HELPER_TEXT,
142
145
  " ",
143
146
  SUPPORTED_FORMATS_TOOLTIP));
144
- return (react_1.default.createElement(text_input_1.TextInput, { autoComplete: props.autoComplete, className: props.className, enterKeyHint: props.enterKeyHint, form: props.form, helperText: composedHelperText, hiddenLabel: props.hiddenLabel, id: props.id, inputMode: props.inputMode, isDisabled: props.isDisabled, isInvalid: (!!fieldState.error && !field.value) || coordsFormatError, isReadOnly: props.isReadOnly, isRequired: props.isRequired, label: props.label, leftAddon: props.leftAddon, leftElement: props.leftElement, maxLength: props.maxLength, minLength: props.minLength, name: field.name, onBlur: onBlur, onChange: handleChange, onFocus: props.onFocus, onKeyDown: props.onKeyDown, placeholder: props.placeholder, ref: field.ref, rightAddon: props.rightAddon, rightElement: props.rightElement, size: props.size, type: "text", value: visualValue, variant: props.variant }));
147
+ return (react_1.default.createElement(text_input_1.TextInput, { autoComplete: props.autoComplete, className: props.className, enterKeyHint: props.enterKeyHint, form: props.form, helperText: composedHelperText, hiddenLabel: props.hiddenLabel, id: props.id, inputMode: props.inputMode, isDisabled: props.isDisabled, isInvalid: (!!fieldState.error && !field.value) || coordsFormatError, isReadOnly: props.isReadOnly, isRequired: props.isRequired, label: props.label, leftAddon: props.leftAddon, leftElement: props.leftElement, maxLength: props.maxLength, minLength: props.minLength, name: field.name, onBlur: onBlur, onChange: onChange, onFocus: props.onFocus, onKeyDown: props.onKeyDown, placeholder: props.placeholder, ref: field.ref, rightAddon: props.rightAddon, rightElement: props.rightElement, size: props.size, type: "text", value: visualValue, variant: props.variant }));
145
148
  }
146
149
  exports.GpsInput = GpsInput;
147
150
  GpsInput.displayName = "UxfFormGpsInput";
@@ -1,10 +1,14 @@
1
1
  /// <reference types="react" />
2
- import { MultiComboboxProps as UIMultiComboboxProps } from "@uxf/ui/multi-combobox";
2
+ import { MultiComboboxOption, MultiComboboxProps as UIMultiComboboxProps } from "@uxf/ui/multi-combobox";
3
3
  import { FieldValues, UseControllerProps } from "react-hook-form";
4
+ import { FormControlProps } from "@uxf/ui/types";
5
+ type OnChangeHandler = FormControlProps<MultiComboboxOption[] | null>["onChange"];
4
6
  export type ComboProps<FormData extends FieldValues> = UseControllerProps<FormData> & Omit<UIMultiComboboxProps, "isInvalid" | "name" | "onChange" | "value"> & {
7
+ onChange?: OnChangeHandler;
5
8
  requiredMessage?: string;
6
9
  };
7
10
  export declare function MultiCombobox<FormData extends Record<string, any>>(props: ComboProps<FormData>): JSX.Element;
8
11
  export declare namespace MultiCombobox {
9
12
  var displayName: string;
10
13
  }
14
+ export {};
@@ -24,7 +24,12 @@ function MultiCombobox(props) {
24
24
  field.onBlur();
25
25
  (_a = props.onBlur) === null || _a === void 0 ? void 0 : _a.call(props, event);
26
26
  };
27
- return (react_1.default.createElement(multi_combobox_1.MultiCombobox, { className: props.className, dropdownPlacement: props.dropdownPlacement, helperText: (_c = (_b = fieldState.error) === null || _b === void 0 ? void 0 : _b.message) !== null && _c !== void 0 ? _c : props.helperText, hiddenLabel: props.hiddenLabel, id: props.id, isDisabled: ((_d = props.options) === null || _d === void 0 ? void 0 : _d.length) === 0 || props.isDisabled, isInvalid: !!fieldState.error, isReadOnly: props.isReadOnly, isRequired: props.isRequired, label: props.label, loadOptions: props.loadOptions, name: field.name, onBlur: onBlur, onChange: (value) => field.onChange(value), onFocus: props.onFocus, options: props.options, placeholder: props.placeholder, ref: field.ref, value: field.value, withCheckboxes: props.withCheckboxes }));
27
+ const onChange = (value, event) => {
28
+ var _a;
29
+ field.onChange(value);
30
+ (_a = props.onChange) === null || _a === void 0 ? void 0 : _a.call(props, value, event);
31
+ };
32
+ return (react_1.default.createElement(multi_combobox_1.MultiCombobox, { className: props.className, dropdownPlacement: props.dropdownPlacement, helperText: (_c = (_b = fieldState.error) === null || _b === void 0 ? void 0 : _b.message) !== null && _c !== void 0 ? _c : props.helperText, hiddenLabel: props.hiddenLabel, id: props.id, isDisabled: ((_d = props.options) === null || _d === void 0 ? void 0 : _d.length) === 0 || props.isDisabled, isInvalid: !!fieldState.error, isReadOnly: props.isReadOnly, isRequired: props.isRequired, label: props.label, loadOptions: props.loadOptions, name: field.name, onBlur: onBlur, onChange: onChange, onFocus: props.onFocus, options: props.options, placeholder: props.placeholder, ref: field.ref, value: field.value, withCheckboxes: props.withCheckboxes }));
28
33
  }
29
34
  exports.MultiCombobox = MultiCombobox;
30
35
  MultiCombobox.displayName = "UxfFormMultiCombobox";
@@ -1,10 +1,14 @@
1
1
  /// <reference types="react" />
2
- import { MultiSelectProps as UIMultiSelectProps } from "@uxf/ui/multi-select";
2
+ import { MultiSelectOption, MultiSelectProps as UIMultiSelectProps } from "@uxf/ui/multi-select";
3
3
  import { FieldValues, UseControllerProps } from "react-hook-form";
4
+ import { FormControlProps } from "@uxf/ui/types";
5
+ type OnChangeHandler = FormControlProps<MultiSelectOption[] | null>["onChange"];
4
6
  export type ComboProps<FormData extends FieldValues> = UseControllerProps<FormData> & Omit<UIMultiSelectProps, "isInvalid" | "name" | "onChange" | "value"> & {
7
+ onChange?: OnChangeHandler;
5
8
  requiredMessage?: string;
6
9
  };
7
10
  export declare function MultiSelect<FormData extends Record<string, any>>(props: ComboProps<FormData>): JSX.Element;
8
11
  export declare namespace MultiSelect {
9
12
  var displayName: string;
10
13
  }
14
+ export {};
@@ -24,7 +24,12 @@ function MultiSelect(props) {
24
24
  field.onBlur();
25
25
  (_a = props.onBlur) === null || _a === void 0 ? void 0 : _a.call(props, event);
26
26
  };
27
- return (react_1.default.createElement(multi_select_1.MultiSelect, { className: props.className, dropdownPlacement: props.dropdownPlacement, helperText: (_c = (_b = fieldState.error) === null || _b === void 0 ? void 0 : _b.message) !== null && _c !== void 0 ? _c : props.helperText, hiddenLabel: props.hiddenLabel, id: props.id, isDisabled: props.options.length === 0 || props.isDisabled, isInvalid: !!fieldState.error, isReadOnly: props.isReadOnly, isRequired: props.isRequired, label: props.label, name: field.name, onBlur: onBlur, onChange: (value) => field.onChange(value), onFocus: props.onFocus, options: props.options, placeholder: props.placeholder, ref: field.ref, value: field.value, withPopover: props.withPopover }));
27
+ const onChange = (value, event) => {
28
+ var _a;
29
+ field.onChange(value);
30
+ (_a = props.onChange) === null || _a === void 0 ? void 0 : _a.call(props, value, event);
31
+ };
32
+ return (react_1.default.createElement(multi_select_1.MultiSelect, { className: props.className, dropdownPlacement: props.dropdownPlacement, helperText: (_c = (_b = fieldState.error) === null || _b === void 0 ? void 0 : _b.message) !== null && _c !== void 0 ? _c : props.helperText, hiddenLabel: props.hiddenLabel, id: props.id, isDisabled: props.options.length === 0 || props.isDisabled, isInvalid: !!fieldState.error, isReadOnly: props.isReadOnly, isRequired: props.isRequired, label: props.label, name: field.name, onBlur: onBlur, onChange: onChange, onFocus: props.onFocus, options: props.options, placeholder: props.placeholder, ref: field.ref, value: field.value, withPopover: props.withPopover }));
28
33
  }
29
34
  exports.MultiSelect = MultiSelect;
30
35
  MultiSelect.displayName = "UxfFormMultiSelect";
@@ -1,11 +1,15 @@
1
1
  /// <reference types="react" />
2
2
  import { TextInputProps as UITextInputProps } from "@uxf/ui/text-input";
3
3
  import { FieldValues, UseControllerProps } from "react-hook-form";
4
+ import { FormControlProps } from "@uxf/ui/types";
5
+ type OnChangeHandler = FormControlProps<string>["onChange"];
4
6
  export type NumberInputProps<FormData extends FieldValues> = UseControllerProps<FormData> & Omit<UITextInputProps, "inputMode" | "isInvalid" | "maxLength" | "minLength" | "name" | "onChange" | "value" | "type"> & {
5
7
  decimalPlaces?: number;
8
+ onChange?: OnChangeHandler;
6
9
  requiredMessage?: string;
7
10
  };
8
11
  export declare function NumberInput<FormData extends FieldValues>(props: NumberInputProps<FormData>): JSX.Element;
9
12
  export declare namespace NumberInput {
10
13
  var displayName: string;
11
14
  }
15
+ export {};
@@ -43,7 +43,12 @@ function NumberInput(props) {
43
43
  }
44
44
  (_a = props.onKeyDown) === null || _a === void 0 ? void 0 : _a.call(props, event);
45
45
  };
46
- return (react_1.default.createElement(text_input_1.TextInput, { autoComplete: props.autoComplete, className: props.className, enterKeyHint: props.enterKeyHint, form: props.form, helperText: (_c = (_b = fieldState.error) === null || _b === void 0 ? void 0 : _b.message) !== null && _c !== void 0 ? _c : props.helperText, hiddenLabel: props.hiddenLabel, id: props.id, inputMode: props.decimalPlaces ? "decimal" : "numeric", isDisabled: props.isDisabled, isInvalid: !!fieldState.error, isReadOnly: props.isReadOnly, isRequired: props.isRequired, label: props.label, leftAddon: props.leftAddon, leftElement: props.leftElement, name: field.name, onBlur: onBlur, onChange: field.onChange, onFocus: props.onFocus, onKeyDown: onKeyDown, pattern: props.pattern, placeholder: props.placeholder, step: props.decimalPlaces ? Number(0).toFixed(props.decimalPlaces - 1) + "1" : props.step, ref: field.ref, rightAddon: props.rightAddon, rightElement: props.rightElement, size: props.size, type: "number", value: (_d = field.value) !== null && _d !== void 0 ? _d : "", variant: props.variant }));
46
+ const onChange = (value, event) => {
47
+ var _a;
48
+ field.onChange(value);
49
+ (_a = props.onChange) === null || _a === void 0 ? void 0 : _a.call(props, value, event);
50
+ };
51
+ return (react_1.default.createElement(text_input_1.TextInput, { autoComplete: props.autoComplete, className: props.className, enterKeyHint: props.enterKeyHint, form: props.form, helperText: (_c = (_b = fieldState.error) === null || _b === void 0 ? void 0 : _b.message) !== null && _c !== void 0 ? _c : props.helperText, hiddenLabel: props.hiddenLabel, id: props.id, inputMode: props.decimalPlaces ? "decimal" : "numeric", isDisabled: props.isDisabled, isInvalid: !!fieldState.error, isReadOnly: props.isReadOnly, isRequired: props.isRequired, label: props.label, leftAddon: props.leftAddon, leftElement: props.leftElement, name: field.name, onBlur: onBlur, onChange: onChange, onFocus: props.onFocus, onKeyDown: onKeyDown, pattern: props.pattern, placeholder: props.placeholder, step: props.decimalPlaces ? Number(0).toFixed(props.decimalPlaces - 1) + "1" : props.step, ref: field.ref, rightAddon: props.rightAddon, rightElement: props.rightElement, size: props.size, type: "number", value: (_d = field.value) !== null && _d !== void 0 ? _d : "", variant: props.variant }));
47
52
  }
48
53
  exports.NumberInput = NumberInput;
49
54
  NumberInput.displayName = "UxfFormNumberInput";
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@uxf/form",
3
- "version": "1.0.0-beta.146",
3
+ "version": "1.0.0-beta.148",
4
4
  "description": "",
5
5
  "publishConfig": {
6
6
  "access": "public"
@@ -13,7 +13,7 @@
13
13
  "author": "UX Fans s.r.o",
14
14
  "license": "MIT",
15
15
  "dependencies": {
16
- "@uxf/ui": "^1.0.0-beta.146",
16
+ "@uxf/ui": "^1.0.0-beta.148",
17
17
  "react-hook-form": "latest",
18
18
  "coordinate-parser": "^1.0.7"
19
19
  }
@@ -1,10 +1,14 @@
1
1
  /// <reference types="react" />
2
- import { RadioGroupProps as UIRadioGroupProps } from "@uxf/ui/radio-group";
2
+ import { RadioGroupOptionValue, RadioGroupProps as UIRadioGroupProps } from "@uxf/ui/radio-group";
3
3
  import { FieldValues, UseControllerProps } from "react-hook-form";
4
+ import { FormControlProps } from "@uxf/ui/types";
5
+ type OnChangeHandler = FormControlProps<RadioGroupOptionValue | null>["onChange"];
4
6
  export type RadioGroupProps<FormData extends FieldValues> = UseControllerProps<FormData> & Omit<UIRadioGroupProps, "isInvalid" | "name" | "onChange" | "value"> & {
7
+ onChange?: OnChangeHandler;
5
8
  requiredMessage?: string;
6
9
  };
7
10
  export declare function RadioGroup<FormData extends Record<string, any>>(props: RadioGroupProps<FormData>): JSX.Element;
8
11
  export declare namespace RadioGroup {
9
12
  var displayName: string;
10
13
  }
14
+ export {};
@@ -8,7 +8,7 @@ const radio_group_1 = require("@uxf/ui/radio-group");
8
8
  const react_1 = __importDefault(require("react"));
9
9
  const react_hook_form_1 = require("react-hook-form");
10
10
  function RadioGroup(props) {
11
- var _a, _b, _c;
11
+ var _a, _b, _c, _d;
12
12
  const { field, fieldState } = (0, react_hook_form_1.useController)({
13
13
  control: props.control,
14
14
  defaultValue: props.defaultValue,
@@ -24,8 +24,12 @@ function RadioGroup(props) {
24
24
  field.onBlur();
25
25
  (_a = props.onBlur) === null || _a === void 0 ? void 0 : _a.call(props, event);
26
26
  };
27
- const onChange = (value) => field.onChange(value);
28
- return (react_1.default.createElement(radio_group_1.RadioGroup, { className: props.className, forceColumn: props.forceColumn, helperText: (_c = (_b = fieldState.error) === null || _b === void 0 ? void 0 : _b.message) !== null && _c !== void 0 ? _c : props.helperText, hiddenLabel: props.hiddenLabel, id: props.id, isDisabled: props.options.length === 0 || props.isDisabled, isInvalid: !!fieldState.error, isReadOnly: props.isReadOnly, isRequired: props.isRequired, label: props.label, name: field.name, onBlur: onBlur, onChange: onChange, onFocus: props.onFocus, options: props.options, ref: field.ref, style: props.style, value: field.value, variant: props.variant }));
27
+ const onChange = (value, event) => {
28
+ var _a;
29
+ field.onChange(value);
30
+ (_a = props.onChange) === null || _a === void 0 ? void 0 : _a.call(props, value, event);
31
+ };
32
+ return (react_1.default.createElement(radio_group_1.RadioGroup, { className: props.className, forceColumn: props.forceColumn, helperText: (_c = (_b = fieldState.error) === null || _b === void 0 ? void 0 : _b.message) !== null && _c !== void 0 ? _c : props.helperText, hiddenLabel: props.hiddenLabel, id: props.id, isDisabled: props.options.length === 0 || props.isDisabled, isInvalid: !!fieldState.error, isReadOnly: props.isReadOnly, isRequired: props.isRequired, label: props.label, name: field.name, onBlur: onBlur, onChange: onChange, onFocus: props.onFocus, options: props.options, ref: field.ref, style: props.style, value: (_d = field.value) !== null && _d !== void 0 ? _d : null, variant: props.variant }));
29
33
  }
30
34
  exports.RadioGroup = RadioGroup;
31
35
  RadioGroup.displayName = "UxfFormRadioGroup";
@@ -1,10 +1,14 @@
1
1
  /// <reference types="react" />
2
- import { SelectProps as UISelectProps } from "@uxf/ui/select";
2
+ import { SelectProps as UISelectProps, SelectValue } from "@uxf/ui/select";
3
3
  import { FieldValues, UseControllerProps } from "react-hook-form";
4
+ import { FormControlProps } from "@uxf/ui/types";
5
+ type OnChangeHandler = FormControlProps<SelectValue | null>["onChange"];
4
6
  export type SelectProps<FormData extends FieldValues> = UseControllerProps<FormData> & Omit<UISelectProps, "isInvalid" | "name" | "onChange" | "value"> & {
7
+ onChange?: OnChangeHandler;
5
8
  requiredMessage?: string;
6
9
  };
7
10
  export declare function Select<FormData extends Record<string, any>>(props: SelectProps<FormData>): JSX.Element;
8
11
  export declare namespace Select {
9
12
  var displayName: string;
10
13
  }
14
+ export {};
package/select/select.js CHANGED
@@ -24,7 +24,12 @@ function Select(props) {
24
24
  field.onBlur();
25
25
  (_a = props.onBlur) === null || _a === void 0 ? void 0 : _a.call(props, event);
26
26
  };
27
- return (react_1.default.createElement(select_1.Select, { className: props.className, dropdownPlacement: props.dropdownPlacement, forwardRef: field.ref, helperText: (_c = (_b = fieldState.error) === null || _b === void 0 ? void 0 : _b.message) !== null && _c !== void 0 ? _c : props.helperText, hiddenLabel: props.hiddenLabel, id: props.id, isClearable: props.isClearable, isDisabled: props.options.length === 0 || props.isDisabled, isInvalid: !!fieldState.error, isReadOnly: props.isReadOnly, isRequired: props.isRequired, label: props.label, name: field.name, onBlur: onBlur, onChange: field.onChange, onFocus: props.onFocus, options: props.options, placeholder: props.placeholder, value: field.value }));
27
+ const onChange = (value, event) => {
28
+ var _a;
29
+ field.onChange(value);
30
+ (_a = props.onChange) === null || _a === void 0 ? void 0 : _a.call(props, value, event);
31
+ };
32
+ return (react_1.default.createElement(select_1.Select, { className: props.className, dropdownPlacement: props.dropdownPlacement, forwardRef: field.ref, helperText: (_c = (_b = fieldState.error) === null || _b === void 0 ? void 0 : _b.message) !== null && _c !== void 0 ? _c : props.helperText, hiddenLabel: props.hiddenLabel, id: props.id, isClearable: props.isClearable, isDisabled: props.options.length === 0 || props.isDisabled, isInvalid: !!fieldState.error, isReadOnly: props.isReadOnly, isRequired: props.isRequired, label: props.label, name: field.name, onBlur: onBlur, onChange: onChange, onFocus: props.onFocus, options: props.options, placeholder: props.placeholder, value: field.value }));
28
33
  }
29
34
  exports.Select = Select;
30
35
  Select.displayName = "UxfFormSelect";
@@ -1,7 +1,10 @@
1
1
  /// <reference types="react" />
2
2
  import { TextInputProps as UITextInputProps } from "@uxf/ui/text-input";
3
3
  import { FieldValues, UseControllerProps } from "react-hook-form";
4
+ import { FormControlProps } from "@uxf/ui/types";
5
+ type OnChangeHandler = FormControlProps<string>["onChange"];
4
6
  export type TextInputProps<FormData extends FieldValues> = UseControllerProps<FormData> & Omit<UITextInputProps, "isInvalid" | "max" | "min" | "pattern" | "step" | "name" | "onChange" | "value" | "type"> & {
7
+ onChange?: OnChangeHandler;
5
8
  requiredMessage?: string;
6
9
  } & ({
7
10
  type: "email";
@@ -12,11 +15,12 @@ export type TextInputProps<FormData extends FieldValues> = UseControllerProps<Fo
12
15
  invalidEmailMessage?: never;
13
16
  invalidPhoneMessage?: string;
14
17
  } | {
15
- type?: "password" | "search" | "text" | "url";
16
18
  invalidEmailMessage?: never;
17
19
  invalidPhoneMessage?: never;
20
+ type?: "password" | "search" | "text" | "url";
18
21
  });
19
22
  export declare function TextInput<FormData extends FieldValues>(props: TextInputProps<FormData>): JSX.Element;
20
23
  export declare namespace TextInput {
21
24
  var displayName: string;
22
25
  }
26
+ export {};
@@ -37,7 +37,12 @@ function TextInput(props) {
37
37
  field.onBlur();
38
38
  (_a = props.onBlur) === null || _a === void 0 ? void 0 : _a.call(props, event);
39
39
  };
40
- return (react_1.default.createElement(text_input_1.TextInput, { autoComplete: props.autoComplete, className: props.className, enterKeyHint: props.enterKeyHint, form: props.form, helperText: (_e = (_d = fieldState.error) === null || _d === void 0 ? void 0 : _d.message) !== null && _e !== void 0 ? _e : props.helperText, hiddenLabel: props.hiddenLabel, id: props.id, inputMode: props.inputMode, isDisabled: props.isDisabled, isInvalid: !!fieldState.error, isReadOnly: props.isReadOnly, isRequired: props.isRequired, label: props.label, leftAddon: props.leftAddon, leftElement: props.leftElement, maxLength: props.maxLength, minLength: props.minLength, name: field.name, onBlur: onBlur, onChange: field.onChange, onFocus: props.onFocus, onKeyDown: props.onKeyDown, placeholder: props.placeholder, ref: field.ref, rightAddon: props.rightAddon, rightElement: props.rightElement, size: props.size, type: props.type, value: (_f = field.value) !== null && _f !== void 0 ? _f : "", variant: props.variant }));
40
+ const onChange = (value, event) => {
41
+ var _a;
42
+ field.onChange(value);
43
+ (_a = props.onChange) === null || _a === void 0 ? void 0 : _a.call(props, value, event);
44
+ };
45
+ return (react_1.default.createElement(text_input_1.TextInput, { autoComplete: props.autoComplete, className: props.className, enterKeyHint: props.enterKeyHint, form: props.form, helperText: (_e = (_d = fieldState.error) === null || _d === void 0 ? void 0 : _d.message) !== null && _e !== void 0 ? _e : props.helperText, hiddenLabel: props.hiddenLabel, id: props.id, inputMode: props.inputMode, isDisabled: props.isDisabled, isInvalid: !!fieldState.error, isReadOnly: props.isReadOnly, isRequired: props.isRequired, label: props.label, leftAddon: props.leftAddon, leftElement: props.leftElement, maxLength: props.maxLength, minLength: props.minLength, name: field.name, onBlur: onBlur, onChange: onChange, onFocus: props.onFocus, onKeyDown: props.onKeyDown, placeholder: props.placeholder, ref: field.ref, rightAddon: props.rightAddon, rightElement: props.rightElement, size: props.size, type: props.type, value: (_f = field.value) !== null && _f !== void 0 ? _f : "", variant: props.variant }));
41
46
  }
42
47
  exports.TextInput = TextInput;
43
48
  TextInput.displayName = "UxfFormTextInput";
@@ -1,10 +1,14 @@
1
1
  /// <reference types="react" />
2
2
  import { TextareaProps as UITextareaProps } from "@uxf/ui/textarea";
3
3
  import { FieldValues, UseControllerProps } from "react-hook-form";
4
+ import { FormControlProps } from "@uxf/ui/types";
5
+ type OnChangeHandler = FormControlProps<string, HTMLTextAreaElement>["onChange"];
4
6
  export type TextareaProps<FormData extends FieldValues> = UseControllerProps<FormData> & Omit<UITextareaProps, "isInvalid" | "name" | "onChange" | "value"> & {
7
+ onChange?: OnChangeHandler;
5
8
  requiredMessage?: string;
6
9
  };
7
10
  export declare function Textarea<FormData extends Record<string, any>>(props: TextareaProps<FormData>): JSX.Element;
8
11
  export declare namespace Textarea {
9
12
  var displayName: string;
10
13
  }
14
+ export {};
@@ -44,7 +44,12 @@ function Textarea(props) {
44
44
  field.onBlur();
45
45
  (_a = props.onBlur) === null || _a === void 0 ? void 0 : _a.call(props, e);
46
46
  }, [field, props]);
47
- return (react_1.default.createElement(textarea_1.Textarea, { autoComplete: props.autoComplete, className: props.className, disableAutoHeight: props.disableAutoHeight, form: props.form, helperText: (_c = (_b = fieldState.error) === null || _b === void 0 ? void 0 : _b.message) !== null && _c !== void 0 ? _c : props.helperText, hiddenLabel: props.hiddenLabel, id: props.id, isDisabled: props.isDisabled, isInvalid: !!fieldState.error, isReadOnly: props.isReadOnly, isRequired: props.isRequired, label: props.label, maxLength: props.maxLength, minLength: props.minLength, name: field.name, onBlur: onBlur, onChange: field.onChange, onFocus: props.onFocus, placeholder: props.placeholder, ref: field.ref, rows: props.rows, value: field.value || "" }));
47
+ const onChange = (value, event) => {
48
+ var _a;
49
+ field.onChange(value);
50
+ (_a = props.onChange) === null || _a === void 0 ? void 0 : _a.call(props, value, event);
51
+ };
52
+ return (react_1.default.createElement(textarea_1.Textarea, { autoComplete: props.autoComplete, className: props.className, disableAutoHeight: props.disableAutoHeight, form: props.form, helperText: (_c = (_b = fieldState.error) === null || _b === void 0 ? void 0 : _b.message) !== null && _c !== void 0 ? _c : props.helperText, hiddenLabel: props.hiddenLabel, id: props.id, isDisabled: props.isDisabled, isInvalid: !!fieldState.error, isReadOnly: props.isReadOnly, isRequired: props.isRequired, label: props.label, maxLength: props.maxLength, minLength: props.minLength, name: field.name, onBlur: onBlur, onChange: onChange, onFocus: props.onFocus, placeholder: props.placeholder, ref: field.ref, rows: props.rows, value: field.value || "" }));
48
53
  }
49
54
  exports.Textarea = Textarea;
50
55
  Textarea.displayName = "UxfFormTextarea";
@@ -1,7 +1,11 @@
1
1
  /// <reference types="react" />
2
2
  import { TimePickerInputProps as UITimePickerInputProps } from "@uxf/ui/time-picker-input";
3
3
  import { FieldValues, UseControllerProps } from "react-hook-form";
4
+ import { TimeType } from "@uxf/datepicker/hooks/use-time-picker";
5
+ import { FormControlProps } from "@uxf/ui/types";
6
+ type OnChangeHandler = FormControlProps<TimeType | null>["onChange"];
4
7
  export type TimePickerInputProps<FormData extends FieldValues> = UseControllerProps<FormData> & Omit<UITimePickerInputProps, "isInvalid" | "max" | "min" | "pattern" | "step" | "name" | "onChange" | "value"> & {
8
+ onChange?: OnChangeHandler;
5
9
  requiredMessage?: string;
6
10
  stringValue?: boolean;
7
11
  };
@@ -9,3 +13,4 @@ export declare function TimePickerInput<FormData extends FieldValues>(props: Tim
9
13
  export declare namespace TimePickerInput {
10
14
  var displayName: string;
11
15
  }
16
+ export {};
@@ -25,13 +25,15 @@ function TimePickerInput(props) {
25
25
  field.onBlur();
26
26
  (_a = props.onBlur) === null || _a === void 0 ? void 0 : _a.call(props, event);
27
27
  };
28
- const onChange = (val) => {
29
- if (props.stringValue && val !== null) {
30
- field.onChange((0, dayjs_1.default)().set("hour", val.hour).set("minute", val.minute).set("second", 0).format("HH:mm:ss"));
28
+ const onChange = (value, event) => {
29
+ var _a;
30
+ if (props.stringValue && value !== null) {
31
+ field.onChange((0, dayjs_1.default)().set("hour", value.hour).set("minute", value.minute).set("second", 0).format("HH:mm:ss"));
31
32
  }
32
33
  else {
33
- field.onChange(val);
34
+ field.onChange(value);
34
35
  }
36
+ (_a = props.onChange) === null || _a === void 0 ? void 0 : _a.call(props, value, event);
35
37
  };
36
38
  const value = props.stringValue
37
39
  ? field.value
@@ -1,10 +1,15 @@
1
1
  /// <reference types="react" />
2
2
  import { ToggleProps as UIToggleProps } from "@uxf/ui/toggle";
3
3
  import { FieldValues, UseControllerProps } from "react-hook-form";
4
+ import { FormControlProps } from "@uxf/ui/types";
5
+ type OnChangeHandler = FormControlProps<boolean | undefined>["onChange"];
4
6
  export type ComboProps<FormData extends FieldValues> = UseControllerProps<FormData> & Omit<UIToggleProps, "isInvalid" | "name" | "onChange" | "value"> & {
7
+ nullable?: boolean;
8
+ onChange?: OnChangeHandler;
5
9
  requiredMessage?: string;
6
10
  };
7
11
  export declare function Toggle<FormData extends Record<string, any>>(props: ComboProps<FormData>): JSX.Element;
8
12
  export declare namespace Toggle {
9
13
  var displayName: string;
10
14
  }
15
+ export {};
package/toggle/toggle.js CHANGED
@@ -8,7 +8,7 @@ const toggle_1 = require("@uxf/ui/toggle");
8
8
  const react_hook_form_1 = require("react-hook-form");
9
9
  const react_1 = __importDefault(require("react"));
10
10
  function Toggle(props) {
11
- var _a;
11
+ var _a, _b;
12
12
  const { field, fieldState } = (0, react_hook_form_1.useController)({
13
13
  control: props.control,
14
14
  defaultValue: props.defaultValue,
@@ -24,7 +24,12 @@ function Toggle(props) {
24
24
  field.onBlur();
25
25
  (_a = props.onBlur) === null || _a === void 0 ? void 0 : _a.call(props, event);
26
26
  };
27
- return (react_1.default.createElement(toggle_1.Toggle, { className: props.className, hiddenLabel: props.hiddenLabel, isDisabled: props.isDisabled, isInvalid: !!fieldState.error, isReadOnly: props.isReadOnly, isRequired: props.isRequired, label: props.label, name: field.name, onBlur: onBlur, onChange: (value) => field.onChange(value), onFocus: props.onFocus, ref: field.ref, value: field.value }));
27
+ const onChange = (value, event) => {
28
+ var _a;
29
+ field.onChange(value);
30
+ (_a = props.onChange) === null || _a === void 0 ? void 0 : _a.call(props, value, event);
31
+ };
32
+ return (react_1.default.createElement(toggle_1.Toggle, { className: props.className, hiddenLabel: props.hiddenLabel, isDisabled: props.isDisabled, isInvalid: !!fieldState.error, isReadOnly: props.isReadOnly, isRequired: props.isRequired, label: props.label, name: field.name, onBlur: onBlur, onChange: onChange, onFocus: props.onFocus, ref: field.ref, value: (_b = field.value) !== null && _b !== void 0 ? _b : (!props.nullable ? false : undefined) }));
28
33
  }
29
34
  exports.Toggle = Toggle;
30
35
  Toggle.displayName = "UxfFormToggle";