@uxf/form 10.0.0-beta.9 → 10.0.0

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 (63) hide show
  1. package/avatar-file-input/avatar-file-input.d.ts +1 -1
  2. package/avatar-file-input/avatar-file-input.js +1 -1
  3. package/avatar-file-input/avatar-file-input.stories.js +3 -3
  4. package/checkbox-button/checkbox-button.d.ts +2 -2
  5. package/checkbox-button/checkbox-button.js +1 -1
  6. package/checkbox-input/checkbox-input.d.ts +1 -1
  7. package/checkbox-input/checkbox-input.js +1 -1
  8. package/checkbox-input/checkbox-input.stories.js +1 -1
  9. package/color-radio-group/color-radio-group.d.ts +1 -1
  10. package/combobox/combobox.d.ts +3 -3
  11. package/combobox/combobox.js +2 -2
  12. package/combobox/combobox.stories.js +1 -1
  13. package/date-picker-input/date-picker-input.js +2 -2
  14. package/date-picker-input/date-picker-input.stories.js +3 -3
  15. package/date-range-picker-input/date-range-picker-input.d.ts +11 -0
  16. package/date-range-picker-input/date-range-picker-input.js +104 -0
  17. package/date-range-picker-input/date-range-picker-input.stories.d.ts +8 -0
  18. package/date-range-picker-input/date-range-picker-input.stories.js +24 -0
  19. package/date-range-picker-input/index.d.ts +1 -0
  20. package/date-range-picker-input/index.js +17 -0
  21. package/datetime-picker-input/datetime-picker-input.js +4 -4
  22. package/datetime-picker-input/datetime-picker-input.stories.js +3 -3
  23. package/dropzone/dropzone-input.d.ts +1 -1
  24. package/dropzone/dropzone-input.js +1 -1
  25. package/dropzone/dropzone-list.d.ts +2 -2
  26. package/dropzone/dropzone.stories.js +2 -2
  27. package/file-input/file-input.d.ts +1 -1
  28. package/file-input/file-input.js +1 -1
  29. package/file-input/file-input.stories.js +3 -3
  30. package/form/form.stories.js +1 -1
  31. package/gps-input/gps-input.d.ts +2 -2
  32. package/gps-input/gps-input.js +4 -4
  33. package/gps-input/gps-input.stories.js +2 -2
  34. package/multi-combobox/multi-combobox.d.ts +1 -1
  35. package/multi-combobox/multi-combobox.js +1 -1
  36. package/multi-combobox/multi-combobox.stories.js +6 -2
  37. package/multi-select/multi-select.d.ts +1 -1
  38. package/multi-select/multi-select.js +1 -1
  39. package/multi-select/multi-select.stories.js +1 -1
  40. package/number-input/number-input.d.ts +3 -5
  41. package/number-input/number-input.js +18 -6
  42. package/number-input/number-input.stories.js +2 -2
  43. package/package.json +15 -4
  44. package/radio-group/radio-group.d.ts +3 -3
  45. package/radio-group/radio-group.js +1 -1
  46. package/radio-group/radio-group.stories.js +3 -3
  47. package/select/select.d.ts +3 -3
  48. package/select/select.js +2 -2
  49. package/select/select.stories.js +2 -2
  50. package/storybook/form-data-printer.js +1 -1
  51. package/storybook/storybook-form.js +1 -1
  52. package/text-input/text-input.d.ts +2 -2
  53. package/text-input/text-input.js +2 -2
  54. package/text-input/text-input.stories.js +2 -2
  55. package/textarea/textarea.d.ts +2 -2
  56. package/textarea/textarea.js +1 -1
  57. package/textarea/textarea.stories.js +1 -1
  58. package/time-picker-input/time-picker-input.d.ts +2 -2
  59. package/time-picker-input/time-picker-input.js +3 -3
  60. package/time-picker-input/time-picker-input.stories.js +3 -3
  61. package/toggle/toggle.d.ts +2 -2
  62. package/toggle/toggle.js +1 -1
  63. package/toggle/toggle.stories.js +1 -1
@@ -1,7 +1,7 @@
1
1
  import { AvatarFileInputProps as UIAvatarFileInputProps } from "@uxf/ui/avatar-file-input";
2
+ import { FileResponse, FormControlProps } from "@uxf/ui/types";
2
3
  import React from "react";
3
4
  import { FieldValues, UseControllerProps } from "react-hook-form";
4
- import { FileResponse, FormControlProps } from "@uxf/ui/types";
5
5
  type OnChangeHandler = FormControlProps<FileResponse | null>["onChange"];
6
6
  export type AvatarFileInputProps<FormData extends FieldValues> = UseControllerProps<FormData> & Omit<UIAvatarFileInputProps, "isInvalid" | "onChange" | "value"> & {
7
7
  onChange?: OnChangeHandler;
@@ -32,7 +32,7 @@ function AvatarFileInput(props) {
32
32
  field.onChange(value);
33
33
  (_a = props.onChange) === null || _a === void 0 ? void 0 : _a.call(props, value, event);
34
34
  };
35
- return (react_1.default.createElement(avatar_file_input_1.AvatarFileInput, { accept: props.accept, className: props.className, form: props.form, helperText: (_d = (_c = fieldState.error) === null || _c === void 0 ? void 0 : _c.message) !== null && _d !== void 0 ? _d : props.helperText, id: 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 }));
35
+ return (react_1.default.createElement(avatar_file_input_1.AvatarFileInput, { accept: props.accept, className: props.className, form: props.form, helperText: (_d = (_c = fieldState.error) === null || _c === void 0 ? void 0 : _c.message) !== null && _d !== void 0 ? _d : props.helperText, id: 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, variant: props.variant }));
36
36
  }
37
37
  exports.AvatarFileInput = AvatarFileInput;
38
38
  AvatarFileInput.displayName = "UxfFormAvatarFileInput";
@@ -5,7 +5,7 @@ var __importDefault = (this && this.__importDefault) || function (mod) {
5
5
  Object.defineProperty(exports, "__esModule", { value: true });
6
6
  exports.Default = void 0;
7
7
  const button_1 = require("@uxf/ui/button");
8
- const uploadFIle_mock_1 = require("@uxf/ui/utils/mocks/uploadFIle.mock");
8
+ const upload_file_mock_1 = require("@uxf/ui/utils/mocks/upload-file.mock");
9
9
  const react_1 = __importDefault(require("react"));
10
10
  const storybook_form_1 = require("../storybook/storybook-form");
11
11
  const avatar_file_input_1 = require("./avatar-file-input");
@@ -15,8 +15,8 @@ exports.default = {
15
15
  };
16
16
  function Default() {
17
17
  const storyFormAvatarFileInputs = (control, mode) => (react_1.default.createElement("div", { className: "space-y-4" },
18
- react_1.default.createElement(avatar_file_input_1.AvatarFileInput, { control: control, label: "Default file input", name: `default-${mode}`, onUploadFile: uploadFIle_mock_1.uploadFile }),
19
- react_1.default.createElement(avatar_file_input_1.AvatarFileInput, { control: control, id: `required-${mode}`, isRequired: true, label: "Required file input", name: `required-${mode}`, onUploadFile: uploadFIle_mock_1.uploadFile }),
18
+ react_1.default.createElement(avatar_file_input_1.AvatarFileInput, { control: control, label: "Default file input", name: `default-${mode}`, onUploadFile: upload_file_mock_1.uploadFile }),
19
+ react_1.default.createElement(avatar_file_input_1.AvatarFileInput, { control: control, id: `required-${mode}`, isRequired: true, label: "Required file input", name: `required-${mode}`, onUploadFile: upload_file_mock_1.uploadFile }),
20
20
  react_1.default.createElement(button_1.Button, { type: "submit" }, "Submit")));
21
21
  return (react_1.default.createElement(storybook_form_1.StorybookForm, null, ({ control }) => (react_1.default.createElement("div", { className: "flex flex-col lg:flex-row" },
22
22
  react_1.default.createElement("div", { className: "light space-y-2 p-20 lg:w-1/2" }, storyFormAvatarFileInputs(control, "light")),
@@ -1,7 +1,7 @@
1
1
  import { CheckboxButtonProps as UICheckboxButtonProps } from "@uxf/ui/checkbox-button";
2
- import { FieldValues, UseControllerProps } from "react-hook-form";
3
- import React from "react";
4
2
  import { FormControlProps } from "@uxf/ui/types";
3
+ import React from "react";
4
+ import { FieldValues, UseControllerProps } from "react-hook-form";
5
5
  type OnChangeHandler = FormControlProps<boolean | undefined>["onChange"];
6
6
  export type ComboProps<FormData extends FieldValues> = UseControllerProps<FormData> & Omit<UICheckboxButtonProps, "isInvalid" | "name" | "onChange" | "value"> & {
7
7
  nullable?: boolean;
@@ -5,8 +5,8 @@ var __importDefault = (this && this.__importDefault) || function (mod) {
5
5
  Object.defineProperty(exports, "__esModule", { value: true });
6
6
  exports.CheckboxButton = void 0;
7
7
  const checkbox_button_1 = require("@uxf/ui/checkbox-button");
8
- const react_hook_form_1 = require("react-hook-form");
9
8
  const react_1 = __importDefault(require("react"));
9
+ const react_hook_form_1 = require("react-hook-form");
10
10
  const form_id_context_1 = require("../form-id-context");
11
11
  function CheckboxButton(props) {
12
12
  var _a, _b, _c;
@@ -1,7 +1,7 @@
1
1
  import { CheckboxInputProps as UICheckboxInputProps } from "@uxf/ui/checkbox-input";
2
+ import { FormControlProps } from "@uxf/ui/types";
2
3
  import React from "react";
3
4
  import { FieldValues, UseControllerProps } from "react-hook-form";
4
- import { FormControlProps } from "@uxf/ui/types";
5
5
  type OnChangeHandler = FormControlProps<boolean | undefined>["onChange"];
6
6
  export type ComboProps<FormData extends FieldValues> = UseControllerProps<FormData> & Omit<UICheckboxInputProps, "isInvalid" | "name" | "onChange" | "value"> & {
7
7
  nullable?: boolean;
@@ -32,7 +32,7 @@ function CheckboxInput(props) {
32
32
  field.onChange(value);
33
33
  (_a = props.onChange) === null || _a === void 0 ? void 0 : _a.call(props, value, event);
34
34
  };
35
- return (react_1.default.createElement(checkbox_input_1.CheckboxInput, { className: props.className, id: 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, ref: field.ref, value: (_c = field.value) !== null && _c !== void 0 ? _c : (!props.nullable ? false : undefined) }));
35
+ return (react_1.default.createElement(checkbox_input_1.CheckboxInput, { className: props.className, id: 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, ref: field.ref, size: props.size, value: (_c = field.value) !== null && _c !== void 0 ? _c : (!props.nullable ? false : undefined) }));
36
36
  }
37
37
  exports.CheckboxInput = CheckboxInput;
38
38
  CheckboxInput.displayName = "UxfFormCheckboxInput";
@@ -4,10 +4,10 @@ var __importDefault = (this && this.__importDefault) || function (mod) {
4
4
  };
5
5
  Object.defineProperty(exports, "__esModule", { value: true });
6
6
  exports.Default = void 0;
7
+ const button_1 = require("@uxf/ui/button");
7
8
  const react_1 = __importDefault(require("react"));
8
9
  const storybook_form_1 = require("../storybook/storybook-form");
9
10
  const checkbox_input_1 = require("./checkbox-input");
10
- const button_1 = require("@uxf/ui/button");
11
11
  exports.default = {
12
12
  title: "Form/CheckboxInput",
13
13
  component: checkbox_input_1.CheckboxInput,
@@ -1,7 +1,7 @@
1
1
  import { ColorRadioGroupOptionValue, ColorRadioGroupProps as UIColorRadioGroupProps } from "@uxf/ui/color-radio-group";
2
+ import { FormControlProps } from "@uxf/ui/types";
2
3
  import React from "react";
3
4
  import { FieldValues, UseControllerProps } from "react-hook-form";
4
- import { FormControlProps } from "@uxf/ui/types";
5
5
  type OnChangeHandler = FormControlProps<ColorRadioGroupOptionValue | null>["onChange"];
6
6
  export type ColorRadioGroupProps<FormData extends FieldValues> = UseControllerProps<FormData> & Omit<UIColorRadioGroupProps, "isInvalid" | "name" | "onChange" | "value"> & {
7
7
  onChange?: OnChangeHandler;
@@ -1,7 +1,7 @@
1
- import { ComboboxProps as UIComboboxProps, ComboboxValue } from "@uxf/ui/combobox";
2
- import { FieldValues, UseControllerProps } from "react-hook-form";
3
- import React from "react";
1
+ import { ComboboxValue, ComboboxProps as UIComboboxProps } from "@uxf/ui/combobox";
4
2
  import { FormControlProps } from "@uxf/ui/types";
3
+ import React from "react";
4
+ import { FieldValues, UseControllerProps } from "react-hook-form";
5
5
  type OnChangeHandler = FormControlProps<ComboboxValue | null>["onChange"];
6
6
  export type ComboProps<FormData extends FieldValues> = UseControllerProps<FormData> & Omit<UIComboboxProps, "isInvalid" | "name" | "onChange" | "value"> & {
7
7
  onChange?: OnChangeHandler;
@@ -5,8 +5,8 @@ var __importDefault = (this && this.__importDefault) || function (mod) {
5
5
  Object.defineProperty(exports, "__esModule", { value: true });
6
6
  exports.Combobox = void 0;
7
7
  const combobox_1 = require("@uxf/ui/combobox");
8
- const react_hook_form_1 = require("react-hook-form");
9
8
  const react_1 = __importDefault(require("react"));
9
+ const react_hook_form_1 = require("react-hook-form");
10
10
  const form_id_context_1 = require("../form-id-context");
11
11
  function Combobox(props) {
12
12
  var _a, _b, _c, _d, _e, _f;
@@ -32,7 +32,7 @@ function Combobox(props) {
32
32
  field.onChange(value);
33
33
  (_a = props.onChange) === null || _a === void 0 ? void 0 : _a.call(props, value, event);
34
34
  };
35
- return (react_1.default.createElement(combobox_1.Combobox, { className: props.className, dropdownPlacement: props.dropdownPlacement, forwardRef: field.ref, helperText: (_d = (_c = fieldState.error) === null || _c === void 0 ? void 0 : _c.message) !== null && _d !== void 0 ? _d : props.helperText, hiddenLabel: props.hiddenLabel, id: id, isClearable: props.isClearable, isDisabled: ((_e = props.options) === null || _e === void 0 ? void 0 : _e.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: (_f = field.value) !== null && _f !== void 0 ? _f : null }));
35
+ return (react_1.default.createElement(combobox_1.Combobox, { className: props.className, dropdownPlacement: props.dropdownPlacement, forwardRef: field.ref, helperText: (_d = (_c = fieldState.error) === null || _c === void 0 ? void 0 : _c.message) !== null && _d !== void 0 ? _d : props.helperText, hiddenLabel: props.hiddenLabel, iconName: props.iconName, id: id, isClearable: props.isClearable, isDisabled: ((_e = props.options) === null || _e === void 0 ? void 0 : _e.length) === 0 || props.isDisabled, isInvalid: !!fieldState.error, isReadOnly: props.isReadOnly, isRequired: props.isRequired, label: props.label, leftAddon: props.leftAddon, leftElement: props.leftElement, loadOptions: props.loadOptions, name: field.name, noQueryMessage: props.noQueryMessage, notFoundMessage: props.notFoundMessage, onBlur: onBlur, onChange: onChange, onFocus: props.onFocus, options: props.options, placeholder: props.placeholder, renderOption: props.renderOption, rightAddon: props.rightAddon, rightElement: props.rightElement, value: (_f = field.value) !== null && _f !== void 0 ? _f : null }));
36
36
  }
37
37
  exports.Combobox = Combobox;
38
38
  Combobox.displayName = "UxfFormCombobox";
@@ -4,10 +4,10 @@ var __importDefault = (this && this.__importDefault) || function (mod) {
4
4
  };
5
5
  Object.defineProperty(exports, "__esModule", { value: true });
6
6
  exports.Default = void 0;
7
+ const button_1 = require("@uxf/ui/button");
7
8
  const react_1 = __importDefault(require("react"));
8
9
  const storybook_form_1 = require("../storybook/storybook-form");
9
10
  const combobox_1 = require("./combobox");
10
- const button_1 = require("@uxf/ui/button");
11
11
  exports.default = {
12
12
  title: "Form/Combobox",
13
13
  component: combobox_1.Combobox,
@@ -29,9 +29,9 @@ Object.defineProperty(exports, "__esModule", { value: true });
29
29
  exports.DatePickerInput = void 0;
30
30
  const date_picker_input_1 = require("@uxf/ui/date-picker-input");
31
31
  const dayjs_1 = __importStar(require("dayjs"));
32
+ const customParseFormat_1 = __importDefault(require("dayjs/plugin/customParseFormat"));
32
33
  const react_1 = __importDefault(require("react"));
33
34
  const react_hook_form_1 = require("react-hook-form");
34
- const customParseFormat_1 = __importDefault(require("dayjs/plugin/customParseFormat"));
35
35
  const form_id_context_1 = require("../form-id-context");
36
36
  (0, dayjs_1.extend)(customParseFormat_1.default);
37
37
  function DatePickerInput(props) {
@@ -82,7 +82,7 @@ function DatePickerInput(props) {
82
82
  field.onChange(value);
83
83
  (_a = props.onChange) === null || _a === void 0 ? void 0 : _a.call(props, value, event);
84
84
  };
85
- return (react_1.default.createElement(date_picker_input_1.DatePickerInput, { minDate: props.minDate, maxDate: props.maxDate, className: props.className, form: props.form, helperText: (_g = (_f = fieldState.error) === null || _f === void 0 ? void 0 : _f.message) !== null && _g !== void 0 ? _g : props.helperText, hiddenLabel: props.hiddenLabel, id: 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, popoverPlacement: props.popoverPlacement, popoverStrategy: props.popoverStrategy, ref: field.ref, rightAddon: props.rightAddon, rightElement: props.rightElement, size: props.size, triggerElement: props.triggerElement, value: field.value, variant: props.variant }));
85
+ return (react_1.default.createElement(date_picker_input_1.DatePickerInput, { autoFocus: props.autoFocus, bottomContent: props.bottomContent, className: props.className, form: props.form, helperText: (_g = (_f = fieldState.error) === null || _f === void 0 ? void 0 : _f.message) !== null && _g !== void 0 ? _g : props.helperText, hiddenLabel: props.hiddenLabel, id: 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, maxDate: props.maxDate, minDate: props.minDate, name: field.name, onBlur: onBlur, onChange: onChange, onFocus: props.onFocus, placeholder: props.placeholder, popoverPlacement: props.popoverPlacement, popoverStrategy: props.popoverStrategy, ref: field.ref, rightAddon: props.rightAddon, rightElement: props.rightElement, size: props.size, triggerElement: props.triggerElement, unavailableDates: props.unavailableDates, value: field.value, variant: props.variant }));
86
86
  }
87
87
  exports.DatePickerInput = DatePickerInput;
88
88
  DatePickerInput.displayName = "UxfFormDatePickerInput";
@@ -4,11 +4,11 @@ var __importDefault = (this && this.__importDefault) || function (mod) {
4
4
  };
5
5
  Object.defineProperty(exports, "__esModule", { value: true });
6
6
  exports.Default = void 0;
7
- const react_1 = __importDefault(require("react"));
8
- const date_picker_input_1 = require("./date-picker-input");
9
- const storybook_form_1 = require("../storybook/storybook-form");
10
7
  const button_1 = require("@uxf/ui/button");
11
8
  const dayjs_1 = __importDefault(require("dayjs"));
9
+ const react_1 = __importDefault(require("react"));
10
+ const storybook_form_1 = require("../storybook/storybook-form");
11
+ const date_picker_input_1 = require("./date-picker-input");
12
12
  exports.default = {
13
13
  title: "Form/DatePickerInput",
14
14
  component: date_picker_input_1.DatePickerInput,
@@ -0,0 +1,11 @@
1
+ import { DateRangePickerInputProps as UIDateRangePickerInputProps } from "@uxf/ui/date-range-picker-input";
2
+ import React from "react";
3
+ import { FieldValues, UseControllerProps } from "react-hook-form";
4
+ export type DateRangePickerInputProps<FormData extends FieldValues> = UseControllerProps<FormData> & Omit<UIDateRangePickerInputProps, "isInvalid" | "max" | "min" | "pattern" | "step" | "name" | "onChange" | "value"> & {
5
+ onChange?: UIDateRangePickerInputProps["onChange"];
6
+ requiredMessage?: string;
7
+ };
8
+ export declare function DateRangePickerInput<FormData extends FieldValues>(props: DateRangePickerInputProps<FormData>): React.JSX.Element;
9
+ export declare namespace DateRangePickerInput {
10
+ var displayName: string;
11
+ }
@@ -0,0 +1,104 @@
1
+ "use strict";
2
+ var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
3
+ if (k2 === undefined) k2 = k;
4
+ var desc = Object.getOwnPropertyDescriptor(m, k);
5
+ if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
6
+ desc = { enumerable: true, get: function() { return m[k]; } };
7
+ }
8
+ Object.defineProperty(o, k2, desc);
9
+ }) : (function(o, m, k, k2) {
10
+ if (k2 === undefined) k2 = k;
11
+ o[k2] = m[k];
12
+ }));
13
+ var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
14
+ Object.defineProperty(o, "default", { enumerable: true, value: v });
15
+ }) : function(o, v) {
16
+ o["default"] = v;
17
+ });
18
+ var __importStar = (this && this.__importStar) || function (mod) {
19
+ if (mod && mod.__esModule) return mod;
20
+ var result = {};
21
+ if (mod != null) for (var k in mod) if (k !== "default" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);
22
+ __setModuleDefault(result, mod);
23
+ return result;
24
+ };
25
+ var __importDefault = (this && this.__importDefault) || function (mod) {
26
+ return (mod && mod.__esModule) ? mod : { "default": mod };
27
+ };
28
+ Object.defineProperty(exports, "__esModule", { value: true });
29
+ exports.DateRangePickerInput = void 0;
30
+ const date_range_picker_input_1 = require("@uxf/ui/date-range-picker-input");
31
+ const date_range_picker_input_2 = require("@uxf/ui/date-range-picker-input/date-range-picker-input");
32
+ const dayjs_1 = __importStar(require("dayjs"));
33
+ const customParseFormat_1 = __importDefault(require("dayjs/plugin/customParseFormat"));
34
+ const react_1 = __importDefault(require("react"));
35
+ const react_hook_form_1 = require("react-hook-form");
36
+ (0, dayjs_1.extend)(customParseFormat_1.default);
37
+ const OUTPUT_DATE_FORMAT = "YYYY-MM-DD";
38
+ function DateRangePickerInput(props) {
39
+ var _a, _b, _c, _d, _e, _f;
40
+ const { field, fieldState } = (0, react_hook_form_1.useController)({
41
+ control: props.control,
42
+ defaultValue: props.defaultValue,
43
+ name: props.name,
44
+ rules: {
45
+ required: props.isRequired ? props.requiredMessage || "Toto pole je povinné" : undefined,
46
+ ...((_a = props.rules) !== null && _a !== void 0 ? _a : {}),
47
+ validate: {
48
+ validDate: (value) => {
49
+ if (!value) {
50
+ return;
51
+ }
52
+ const { from, to } = (0, date_range_picker_input_2.splitValueToRange)(value);
53
+ const fromIsValid = (0, dayjs_1.default)(from, date_range_picker_input_2.ALLOWED_DATE_FORMAT, true).isValid();
54
+ const toIsValid = (0, dayjs_1.default)(to, date_range_picker_input_2.ALLOWED_DATE_FORMAT, true).isValid();
55
+ if (!fromIsValid || !toIsValid) {
56
+ return "Rozsah musí být ve formátu D. M. YYYY. - D. M. YYYY.";
57
+ }
58
+ if ((0, dayjs_1.default)(from).isAfter((0, dayjs_1.default)(to), "day")) {
59
+ return "Koncové datum nemůže předcházet počátečnímu datu.";
60
+ }
61
+ },
62
+ ...(typeof ((_b = props.rules) === null || _b === void 0 ? void 0 : _b.validate) === "function"
63
+ ? { custom: props.rules.validate }
64
+ : (_d = (_c = props.rules) === null || _c === void 0 ? void 0 : _c.validate) !== null && _d !== void 0 ? _d : {}),
65
+ },
66
+ },
67
+ shouldUnregister: props.shouldUnregister,
68
+ });
69
+ const onBlur = (event) => {
70
+ var _a;
71
+ field.onBlur();
72
+ (_a = props.onBlur) === null || _a === void 0 ? void 0 : _a.call(props, event);
73
+ };
74
+ const onChange = (value, event) => {
75
+ var _a;
76
+ if (value) {
77
+ const { from, to } = (0, date_range_picker_input_2.splitValueToRange)(value);
78
+ const fromIsValid = (0, dayjs_1.default)(from, date_range_picker_input_2.ALLOWED_DATE_FORMAT, true).isValid();
79
+ const toIsValid = (0, dayjs_1.default)(to, date_range_picker_input_2.ALLOWED_DATE_FORMAT, true).isValid();
80
+ if (fromIsValid || toIsValid) {
81
+ field.onChange((fromIsValid ? (0, dayjs_1.default)(from, date_range_picker_input_2.ALLOWED_DATE_FORMAT, true).format(OUTPUT_DATE_FORMAT) : from) +
82
+ date_range_picker_input_2.SEPARATOR +
83
+ (toIsValid ? (0, dayjs_1.default)(to, date_range_picker_input_2.ALLOWED_DATE_FORMAT, true).format(OUTPUT_DATE_FORMAT) : to));
84
+ }
85
+ }
86
+ else {
87
+ field.onChange(value);
88
+ }
89
+ (_a = props.onChange) === null || _a === void 0 ? void 0 : _a.call(props, value, event);
90
+ };
91
+ const { from: fieldFrom, to: fieldTo } = (0, date_range_picker_input_2.splitValueToRange)(field.value);
92
+ const parsedFrom = (0, dayjs_1.default)(fieldFrom, date_range_picker_input_2.ALLOWED_DATE_FORMAT, true);
93
+ const parsedTo = (0, dayjs_1.default)(fieldTo, date_range_picker_input_2.ALLOWED_DATE_FORMAT, true);
94
+ const value = field.value
95
+ ? parsedFrom.isValid() || parsedTo.isValid()
96
+ ? (parsedFrom.isValid() ? parsedFrom.format(date_range_picker_input_2.DISPLAY_DATE_FORMAT) : fieldFrom) +
97
+ date_range_picker_input_2.SEPARATOR +
98
+ (parsedTo.isValid() ? parsedTo.format(date_range_picker_input_2.DISPLAY_DATE_FORMAT) : fieldTo)
99
+ : field.value
100
+ : null;
101
+ return (react_1.default.createElement(date_range_picker_input_1.DateRangePickerInput, { autoFocus: props.autoFocus, className: props.className, form: props.form, helperText: (_f = (_e = fieldState.error) === null || _e === void 0 ? void 0 : _e.message) !== null && _f !== void 0 ? _f : 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, numberOfMonths: props.numberOfMonths, onBlur: onBlur, onChange: onChange, onFocus: props.onFocus, placeholder: props.placeholder, popoverPlacement: props.popoverPlacement, popoverStrategy: props.popoverStrategy, ref: field.ref, rightAddon: props.rightAddon, rightElement: props.rightElement, size: props.size, triggerElement: props.triggerElement, unavailableDates: props.unavailableDates, value: value, variant: props.variant }));
102
+ }
103
+ exports.DateRangePickerInput = DateRangePickerInput;
104
+ DateRangePickerInput.displayName = "UxfFormDateRangePickerInput";
@@ -0,0 +1,8 @@
1
+ import React from "react";
2
+ import { DateRangePickerInput } from "./date-range-picker-input";
3
+ declare const _default: {
4
+ title: string;
5
+ component: typeof DateRangePickerInput;
6
+ };
7
+ export default _default;
8
+ export declare function Default(): React.JSX.Element;
@@ -0,0 +1,24 @@
1
+ "use strict";
2
+ var __importDefault = (this && this.__importDefault) || function (mod) {
3
+ return (mod && mod.__esModule) ? mod : { "default": mod };
4
+ };
5
+ Object.defineProperty(exports, "__esModule", { value: true });
6
+ exports.Default = void 0;
7
+ const button_1 = require("@uxf/ui/button");
8
+ const react_1 = __importDefault(require("react"));
9
+ const storybook_form_1 = require("../storybook/storybook-form");
10
+ const date_range_picker_input_1 = require("./date-range-picker-input");
11
+ exports.default = {
12
+ title: "Form/DateRangePickerInput",
13
+ component: date_range_picker_input_1.DateRangePickerInput,
14
+ };
15
+ function Default() {
16
+ const storyFormDatePickers = (control) => (react_1.default.createElement("div", { className: "space-y-4" },
17
+ react_1.default.createElement(date_range_picker_input_1.DateRangePickerInput, { label: "Default date range picker", name: "default", control: control, isClearable: true, isRequired: true }),
18
+ react_1.default.createElement(date_range_picker_input_1.DateRangePickerInput, { label: "Date range picker with two months", name: "twomonths", numberOfMonths: 2, control: control, isClearable: true, isRequired: true }),
19
+ react_1.default.createElement(button_1.Button, { type: "submit" }, "Submit")));
20
+ return (react_1.default.createElement(storybook_form_1.StorybookForm, null, ({ control }) => (react_1.default.createElement("div", { className: "flex flex-col lg:flex-row" },
21
+ react_1.default.createElement("div", { className: "light space-y-2 p-20 lg:w-1/2" }, storyFormDatePickers(control)),
22
+ react_1.default.createElement("div", { className: "dark space-y-2 bg-gray-900 p-20 text-white lg:w-1/2" }, storyFormDatePickers(control))))));
23
+ }
24
+ exports.Default = Default;
@@ -0,0 +1 @@
1
+ export * from "./date-range-picker-input";
@@ -0,0 +1,17 @@
1
+ "use strict";
2
+ var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
3
+ if (k2 === undefined) k2 = k;
4
+ var desc = Object.getOwnPropertyDescriptor(m, k);
5
+ if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
6
+ desc = { enumerable: true, get: function() { return m[k]; } };
7
+ }
8
+ Object.defineProperty(o, k2, desc);
9
+ }) : (function(o, m, k, k2) {
10
+ if (k2 === undefined) k2 = k;
11
+ o[k2] = m[k];
12
+ }));
13
+ var __exportStar = (this && this.__exportStar) || function(m, exports) {
14
+ for (var p in m) if (p !== "default" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);
15
+ };
16
+ Object.defineProperty(exports, "__esModule", { value: true });
17
+ __exportStar(require("./date-range-picker-input"), exports);
@@ -27,14 +27,14 @@ var __importDefault = (this && this.__importDefault) || function (mod) {
27
27
  };
28
28
  Object.defineProperty(exports, "__esModule", { value: true });
29
29
  exports.DatetimePickerInput = void 0;
30
+ const date_picker_input_1 = require("@uxf/ui/date-picker-input");
31
+ const datetime_picker_1 = require("@uxf/ui/datetime-picker");
30
32
  const datetime_picker_input_1 = require("@uxf/ui/datetime-picker-input");
31
33
  const dayjs_1 = __importStar(require("dayjs"));
34
+ const customParseFormat_1 = __importDefault(require("dayjs/plugin/customParseFormat"));
32
35
  const react_1 = __importDefault(require("react"));
33
36
  const react_hook_form_1 = require("react-hook-form");
34
- const customParseFormat_1 = __importDefault(require("dayjs/plugin/customParseFormat"));
35
37
  const form_id_context_1 = require("../form-id-context");
36
- const datetime_picker_1 = require("@uxf/ui/datetime-picker");
37
- const date_picker_input_1 = require("@uxf/ui/date-picker-input");
38
38
  (0, dayjs_1.extend)(customParseFormat_1.default);
39
39
  function DatetimePickerInput(props) {
40
40
  var _a, _b, _c, _d, _e, _f, _g;
@@ -84,7 +84,7 @@ function DatetimePickerInput(props) {
84
84
  field.onChange(value);
85
85
  (_a = props.onChange) === null || _a === void 0 ? void 0 : _a.call(props, value, event);
86
86
  };
87
- return (react_1.default.createElement(datetime_picker_input_1.DatetimePickerInput, { minDate: props.minDate, maxDate: props.maxDate, className: props.className, form: props.form, helperText: (_g = (_f = fieldState.error) === null || _f === void 0 ? void 0 : _f.message) !== null && _g !== void 0 ? _g : props.helperText, hiddenLabel: props.hiddenLabel, id: 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, popoverPlacement: props.popoverPlacement, popoverStrategy: props.popoverStrategy, ref: field.ref, rightAddon: props.rightAddon, rightElement: props.rightElement, size: props.size, triggerElement: props.triggerElement, value: field.value, variant: props.variant }));
87
+ return (react_1.default.createElement(datetime_picker_input_1.DatetimePickerInput, { autoFocus: props.autoFocus, className: props.className, form: props.form, helperText: (_g = (_f = fieldState.error) === null || _f === void 0 ? void 0 : _f.message) !== null && _g !== void 0 ? _g : props.helperText, hiddenLabel: props.hiddenLabel, id: 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, maxDate: props.maxDate, minDate: props.minDate, name: field.name, onBlur: onBlur, onChange: onChange, onFocus: props.onFocus, placeholder: props.placeholder, popoverPlacement: props.popoverPlacement, popoverStrategy: props.popoverStrategy, ref: field.ref, rightAddon: props.rightAddon, rightElement: props.rightElement, size: props.size, triggerElement: props.triggerElement, unavailableDates: props.unavailableDates, value: field.value, variant: props.variant }));
88
88
  }
89
89
  exports.DatetimePickerInput = DatetimePickerInput;
90
90
  DatetimePickerInput.displayName = "UxfFormDatePickerInput";
@@ -4,11 +4,11 @@ var __importDefault = (this && this.__importDefault) || function (mod) {
4
4
  };
5
5
  Object.defineProperty(exports, "__esModule", { value: true });
6
6
  exports.Default = void 0;
7
- const react_1 = __importDefault(require("react"));
8
- const datetime_picker_input_1 = require("./datetime-picker-input");
9
- const storybook_form_1 = require("../storybook/storybook-form");
10
7
  const button_1 = require("@uxf/ui/button");
11
8
  const dayjs_1 = __importDefault(require("dayjs"));
9
+ const react_1 = __importDefault(require("react"));
10
+ const storybook_form_1 = require("../storybook/storybook-form");
11
+ const datetime_picker_input_1 = require("./datetime-picker-input");
12
12
  exports.default = {
13
13
  title: "Form/DatetimePickerInput",
14
14
  component: datetime_picker_input_1.DatetimePickerInput,
@@ -1,8 +1,8 @@
1
1
  import { DropzoneInputProps as UIDropzoneProps } from "@uxf/ui/dropzone";
2
2
  import { DropzoneFile } from "@uxf/ui/dropzone/types";
3
+ import { FormControlProps } from "@uxf/ui/types";
3
4
  import React from "react";
4
5
  import { FieldValues, UseControllerProps } from "react-hook-form";
5
- import { FormControlProps } from "@uxf/ui/types";
6
6
  type OnChangeHandler = FormControlProps<DropzoneFile[] | undefined>["onChange"];
7
7
  export type DropzoneProps<FormData extends FieldValues> = UseControllerProps<FormData> & Omit<UIDropzoneProps, "onChange" | "value"> & {
8
8
  minFilesCount?: number;
@@ -52,7 +52,7 @@ function DropzoneInput(props) {
52
52
  field.onChange(value);
53
53
  (_a = props.onChange) === null || _a === void 0 ? void 0 : _a.call(props, value, event);
54
54
  };
55
- return (react_1.default.createElement(dropzone_1.Dropzone, { helperText: ((_d = fieldState.error) === null || _d === void 0 ? void 0 : _d.message) || props.helperText, id: id, 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 }));
55
+ return (react_1.default.createElement(dropzone_1.Dropzone, { helperText: ((_d = fieldState.error) === null || _d === void 0 ? void 0 : _d.message) || props.helperText, id: id, 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, icon: props.icon }));
56
56
  }
57
57
  exports.DropzoneInput = DropzoneInput;
58
58
  DropzoneInput.displayName = "UxfFormDropzoneInput";
@@ -1,8 +1,8 @@
1
1
  import { DropzoneListProps as UIDropzoneListProps } from "@uxf/ui/dropzone";
2
+ import { DropzoneFile } from "@uxf/ui/dropzone/types";
3
+ import { FormControlProps } from "@uxf/ui/types";
2
4
  import React from "react";
3
5
  import { FieldValues, UseControllerProps } from "react-hook-form";
4
- import { FormControlProps } from "@uxf/ui/types";
5
- import { DropzoneFile } from "@uxf/ui/dropzone/types";
6
6
  type OnChangeHandler = FormControlProps<DropzoneFile[] | undefined>["onChange"];
7
7
  export interface DropzoneListProps<FormData extends FieldValues> extends Pick<UseControllerProps<FormData>, "control" | "name">, Pick<UIDropzoneListProps, "errorText" | "onAbortWarning" | "onRemoveWarning" | "renderItem"> {
8
8
  onChange?: OnChangeHandler;
@@ -5,7 +5,7 @@ var __importDefault = (this && this.__importDefault) || function (mod) {
5
5
  Object.defineProperty(exports, "__esModule", { value: true });
6
6
  exports.Default = void 0;
7
7
  const button_1 = require("@uxf/ui/button");
8
- const uploadFIle_mock_1 = require("@uxf/ui/utils/mocks/uploadFIle.mock");
8
+ const upload_file_mock_1 = require("@uxf/ui/utils/mocks/upload-file.mock");
9
9
  const react_1 = __importDefault(require("react"));
10
10
  const storybook_form_1 = require("../storybook/storybook-form");
11
11
  const index_1 = require("./index");
@@ -31,7 +31,7 @@ const DUMMY_FILES = [
31
31
  ];
32
32
  function Default() {
33
33
  const storyFormDropzone = (control) => (react_1.default.createElement("div", { className: "space-y-8" },
34
- react_1.default.createElement(index_1.Dropzone, { control: control, helperText: "Allow multiple files", isRequired: true, label: "Use drag and drop or click to upload", name: "dropzone", onUploadFile: uploadFIle_mock_1.uploadFile }),
34
+ react_1.default.createElement(index_1.Dropzone, { control: control, helperText: "Allow multiple files", isRequired: true, label: "Use drag and drop or click to upload", name: "dropzone", onUploadFile: upload_file_mock_1.uploadFile }),
35
35
  react_1.default.createElement(button_1.Button, { type: "submit" }, "Submit"),
36
36
  react_1.default.createElement(index_1.Dropzone.List, { control: control, errorText: "Oops, n\u011Bco se pokazilo", name: "dropzone", onAbortWarning: "Opravdu chcete zru\u0161it nahr\u00E1v\u00E1n\u00ED?", onRemoveWarning: "Opravdu chcete smazat soubor?" })));
37
37
  return (react_1.default.createElement(storybook_form_1.StorybookForm, { defaultValues: { dropzone: DUMMY_FILES } }, ({ control }) => (react_1.default.createElement(react_1.default.Fragment, null,
@@ -1,7 +1,7 @@
1
1
  import { FileInputProps as UIFileInputProps } from "@uxf/ui/file-input";
2
+ import { FileResponse, FormControlProps } from "@uxf/ui/types";
2
3
  import React from "react";
3
4
  import { FieldValues, UseControllerProps } from "react-hook-form";
4
- import { FileResponse, FormControlProps } from "@uxf/ui/types";
5
5
  type OnChangeHandler = FormControlProps<FileResponse | null>["onChange"];
6
6
  export type FileInputProps<FormData extends FieldValues> = UseControllerProps<FormData> & Omit<UIFileInputProps, "isInvalid" | "onChange" | "value"> & {
7
7
  onChange?: OnChangeHandler;
@@ -32,7 +32,7 @@ function FileInput(props) {
32
32
  field.onChange(value);
33
33
  (_a = props.onChange) === null || _a === void 0 ? void 0 : _a.call(props, value, event);
34
34
  };
35
- return (react_1.default.createElement(file_input_1.FileInput, { accept: props.accept, className: props.className, form: props.form, helperText: (_d = (_c = fieldState.error) === null || _c === void 0 ? void 0 : _c.message) !== null && _d !== void 0 ? _d : props.helperText, id: 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, placeholder: props.placeholder, ref: field.ref, size: props.size, value: field.value, variant: props.variant }));
35
+ return (react_1.default.createElement(file_input_1.FileInput, { accept: props.accept, className: props.className, form: props.form, helperText: (_d = (_c = fieldState.error) === null || _c === void 0 ? void 0 : _c.message) !== null && _d !== void 0 ? _d : props.helperText, id: id, isClearable: props.isClearable, isDisabled: props.isDisabled, isInvalid: !!fieldState.error, isReadOnly: props.isReadOnly, isRequired: props.isRequired, label: props.label, hiddenLabel: props.hiddenLabel, name: field.name, onBlur: onBlur, onChange: onChange, onFocus: props.onFocus, onUploadError: props.onUploadError, onUploadFile: props.onUploadFile, placeholder: props.placeholder, ref: field.ref, size: props.size, value: field.value, variant: props.variant, uploadButtonLabel: props.uploadButtonLabel }));
36
36
  }
37
37
  exports.FileInput = FileInput;
38
38
  FileInput.displayName = "FileInput";
@@ -5,7 +5,7 @@ var __importDefault = (this && this.__importDefault) || function (mod) {
5
5
  Object.defineProperty(exports, "__esModule", { value: true });
6
6
  exports.Default = void 0;
7
7
  const button_1 = require("@uxf/ui/button");
8
- const uploadFIle_mock_1 = require("@uxf/ui/utils/mocks/uploadFIle.mock");
8
+ const upload_file_mock_1 = require("@uxf/ui/utils/mocks/upload-file.mock");
9
9
  const react_1 = __importDefault(require("react"));
10
10
  const storybook_form_1 = require("../storybook/storybook-form");
11
11
  const file_input_1 = require("./file-input");
@@ -21,8 +21,8 @@ const DUMMY_FILE = {
21
21
  };
22
22
  function Default() {
23
23
  const storyFormFileInputs = (control, mode) => (react_1.default.createElement("div", { className: "space-y-4" },
24
- react_1.default.createElement(file_input_1.FileInput, { control: control, label: "Default file input", name: `default-${mode}`, onUploadFile: uploadFIle_mock_1.uploadFile, isClearable: true, placeholder: "Nahraj soubor" }),
25
- react_1.default.createElement(file_input_1.FileInput, { control: control, id: `required-${mode}`, isRequired: true, label: "Required file input", name: `required-${mode}`, onUploadFile: uploadFIle_mock_1.uploadFile }),
24
+ react_1.default.createElement(file_input_1.FileInput, { control: control, label: "Default file input", name: `default-${mode}`, onUploadFile: upload_file_mock_1.uploadFile, isClearable: true, placeholder: "Nahraj soubor" }),
25
+ react_1.default.createElement(file_input_1.FileInput, { control: control, id: `required-${mode}`, isRequired: true, label: "Required file input", name: `required-${mode}`, onUploadFile: upload_file_mock_1.uploadFile }),
26
26
  react_1.default.createElement(button_1.Button, { type: "submit" }, "Submit")));
27
27
  return (react_1.default.createElement(storybook_form_1.StorybookForm, { defaultValues: { "default-light": DUMMY_FILE } }, ({ control }) => (react_1.default.createElement("div", { className: "flex flex-col lg:flex-row" },
28
28
  react_1.default.createElement("div", { className: "light space-y-2 p-20 lg:w-1/2" }, storyFormFileInputs(control, "light")),
@@ -6,9 +6,9 @@ Object.defineProperty(exports, "__esModule", { value: true });
6
6
  exports.Default = void 0;
7
7
  const button_1 = require("@uxf/ui/button");
8
8
  const react_1 = __importDefault(require("react"));
9
+ const react_hook_form_1 = require("react-hook-form");
9
10
  const text_input_1 = require("../text-input");
10
11
  const form_1 = require("./form");
11
- const react_hook_form_1 = require("react-hook-form");
12
12
  exports.default = {
13
13
  title: "Form/Form",
14
14
  component: form_1.Form,
@@ -1,7 +1,7 @@
1
1
  import { TextInputProps as UITextInputProps } from "@uxf/ui/text-input";
2
- import { FieldValues, UseControllerProps } from "react-hook-form";
3
- import React from "react";
4
2
  import { FormControlProps } from "@uxf/ui/types";
3
+ import React from "react";
4
+ import { FieldValues, UseControllerProps } from "react-hook-form";
5
5
  export type Gps = {
6
6
  lat: number;
7
7
  lng: number;
@@ -28,10 +28,10 @@ var __importDefault = (this && this.__importDefault) || function (mod) {
28
28
  Object.defineProperty(exports, "__esModule", { value: true });
29
29
  exports.GpsInput = void 0;
30
30
  const text_input_1 = require("@uxf/ui/text-input");
31
- const react_hook_form_1 = require("react-hook-form");
32
- const react_1 = __importStar(require("react"));
33
- const coordinate_parser_1 = __importDefault(require("coordinate-parser"));
34
31
  const tooltip_1 = require("@uxf/ui/tooltip");
32
+ const coordinate_parser_1 = __importDefault(require("coordinate-parser"));
33
+ const react_1 = __importStar(require("react"));
34
+ const react_hook_form_1 = require("react-hook-form");
35
35
  const form_id_context_1 = require("../form-id-context");
36
36
  const SUPPORTED_FORMATS = (react_1.default.createElement("div", null,
37
37
  "40.123, -74.123",
@@ -147,7 +147,7 @@ function GpsInput(props) {
147
147
  : EMPTY_HELPER_TEXT,
148
148
  " ",
149
149
  SUPPORTED_FORMATS_TOOLTIP));
150
- 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: 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 }));
150
+ return (react_1.default.createElement(text_input_1.TextInput, { autoComplete: props.autoComplete, autoFocus: props.autoFocus, className: props.className, enterKeyHint: props.enterKeyHint, form: props.form, helperText: composedHelperText, hiddenLabel: props.hiddenLabel, id: 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 }));
151
151
  }
152
152
  exports.GpsInput = GpsInput;
153
153
  GpsInput.displayName = "UxfFormGpsInput";
@@ -4,10 +4,10 @@ var __importDefault = (this && this.__importDefault) || function (mod) {
4
4
  };
5
5
  Object.defineProperty(exports, "__esModule", { value: true });
6
6
  exports.Default = void 0;
7
+ const button_1 = require("@uxf/ui/button");
7
8
  const react_1 = __importDefault(require("react"));
8
- const gps_input_1 = require("./gps-input");
9
9
  const storybook_form_1 = require("../storybook/storybook-form");
10
- const button_1 = require("@uxf/ui/button");
10
+ const gps_input_1 = require("./gps-input");
11
11
  exports.default = {
12
12
  title: "Form/GpsInput",
13
13
  component: gps_input_1.GpsInput,
@@ -1,7 +1,7 @@
1
1
  import { MultiComboboxOption, MultiComboboxProps as UIMultiComboboxProps } from "@uxf/ui/multi-combobox";
2
+ import { FormControlProps } from "@uxf/ui/types";
2
3
  import React from "react";
3
4
  import { FieldValues, UseControllerProps } from "react-hook-form";
4
- import { FormControlProps } from "@uxf/ui/types";
5
5
  type OnChangeHandler = FormControlProps<MultiComboboxOption[] | null>["onChange"];
6
6
  export type ComboProps<FormData extends FieldValues> = UseControllerProps<FormData> & Omit<UIMultiComboboxProps, "isInvalid" | "name" | "onChange" | "value"> & {
7
7
  onChange?: OnChangeHandler;
@@ -32,7 +32,7 @@ function MultiCombobox(props) {
32
32
  field.onChange(value);
33
33
  (_a = props.onChange) === null || _a === void 0 ? void 0 : _a.call(props, value, event);
34
34
  };
35
- return (react_1.default.createElement(multi_combobox_1.MultiCombobox, { className: props.className, dropdownPlacement: props.dropdownPlacement, helperText: (_d = (_c = fieldState.error) === null || _c === void 0 ? void 0 : _c.message) !== null && _d !== void 0 ? _d : props.helperText, hiddenLabel: props.hiddenLabel, id: id, isDisabled: ((_e = props.options) === null || _e === void 0 ? void 0 : _e.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 }));
35
+ return (react_1.default.createElement(multi_combobox_1.MultiCombobox, { className: props.className, dropdownPlacement: props.dropdownPlacement, helperText: (_d = (_c = fieldState.error) === null || _c === void 0 ? void 0 : _c.message) !== null && _d !== void 0 ? _d : props.helperText, hiddenLabel: props.hiddenLabel, iconName: props.iconName, id: id, isDisabled: ((_e = props.options) === null || _e === void 0 ? void 0 : _e.length) === 0 || props.isDisabled, isInvalid: !!fieldState.error, isReadOnly: props.isReadOnly, isRequired: props.isRequired, label: props.label, leftAddon: props.leftAddon, leftElement: props.leftElement, loadOptions: props.loadOptions, name: field.name, noQueryMessage: props.noQueryMessage, notFoundMessage: props.notFoundMessage, onBlur: onBlur, onChange: onChange, onFocus: props.onFocus, options: props.options, placeholder: props.placeholder, ref: field.ref, rightAddon: props.rightAddon, rightElement: props.rightElement, value: field.value, withCheckboxes: props.withCheckboxes }));
36
36
  }
37
37
  exports.MultiCombobox = MultiCombobox;
38
38
  MultiCombobox.displayName = "UxfFormMultiCombobox";
@@ -14,9 +14,9 @@ exports.default = {
14
14
  };
15
15
  const options = [
16
16
  { id: "one", label: "Option one", color: "red" },
17
- { id: "two", label: "Option two", color: "blue" },
17
+ { id: "two", label: "Option two", color: "blue", disabled: true },
18
18
  { id: "three", label: "Option three", color: "green" },
19
- { id: "four", label: "Option four" },
19
+ { id: "four", label: "Option four disabled", disabled: true },
20
20
  { id: "five", label: "Option five" },
21
21
  { id: "six", label: "Option six" },
22
22
  ];
@@ -35,6 +35,10 @@ function Default() {
35
35
  { id: "one", label: "Option one" },
36
36
  { id: "two", label: "Option two" },
37
37
  ],
38
+ "combobox-with-checkboxes": [
39
+ { id: "one", label: "Option one" },
40
+ { id: "two", label: "Option two", disabled: true },
41
+ ],
38
42
  "select-dropdown-async-default": [
39
43
  { id: "one", label: "Option one" },
40
44
  { id: "two", label: "Option two" },
@@ -1,7 +1,7 @@
1
1
  import { MultiSelectOption, MultiSelectProps as UIMultiSelectProps } from "@uxf/ui/multi-select";
2
+ import { FormControlProps } from "@uxf/ui/types";
2
3
  import React from "react";
3
4
  import { FieldValues, UseControllerProps } from "react-hook-form";
4
- import { FormControlProps } from "@uxf/ui/types";
5
5
  type OnChangeHandler = FormControlProps<MultiSelectOption[] | null>["onChange"];
6
6
  export type ComboProps<FormData extends FieldValues> = UseControllerProps<FormData> & Omit<UIMultiSelectProps, "isInvalid" | "name" | "onChange" | "value"> & {
7
7
  onChange?: OnChangeHandler;
@@ -32,7 +32,7 @@ function MultiSelect(props) {
32
32
  field.onChange(value);
33
33
  (_a = props.onChange) === null || _a === void 0 ? void 0 : _a.call(props, value, event);
34
34
  };
35
- return (react_1.default.createElement(multi_select_1.MultiSelect, { className: props.className, dropdownPlacement: props.dropdownPlacement, helperText: (_d = (_c = fieldState.error) === null || _c === void 0 ? void 0 : _c.message) !== null && _d !== void 0 ? _d : props.helperText, hiddenLabel: props.hiddenLabel, id: 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 }));
35
+ return (react_1.default.createElement(multi_select_1.MultiSelect, { className: props.className, dropdownPlacement: props.dropdownPlacement, helperText: (_d = (_c = fieldState.error) === null || _c === void 0 ? void 0 : _c.message) !== null && _d !== void 0 ? _d : props.helperText, hiddenLabel: props.hiddenLabel, iconName: props.iconName, id: 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 }));
36
36
  }
37
37
  exports.MultiSelect = MultiSelect;
38
38
  MultiSelect.displayName = "UxfFormMultiSelect";
@@ -17,7 +17,7 @@ const options = [
17
17
  { id: "two", label: "Option two", color: "blue" },
18
18
  { id: "three", label: "Option three", color: "green" },
19
19
  { id: "four", label: "Option four" },
20
- { id: "five", label: "Option five" },
20
+ { id: "five", label: "Option five disabled", disabled: true },
21
21
  { id: "six", label: "Option six" },
22
22
  ];
23
23
  function Default() {
@@ -1,15 +1,13 @@
1
1
  import { TextInputProps as UITextInputProps } from "@uxf/ui/text-input";
2
- import { FieldValues, UseControllerProps } from "react-hook-form";
3
- import React from "react";
4
2
  import { FormControlProps } from "@uxf/ui/types";
5
- type OnChangeHandler = FormControlProps<string>["onChange"];
3
+ import React from "react";
4
+ import { FieldValues, UseControllerProps } from "react-hook-form";
6
5
  export type NumberInputProps<FormData extends FieldValues> = UseControllerProps<FormData> & Omit<UITextInputProps, "inputMode" | "isInvalid" | "maxLength" | "minLength" | "name" | "onChange" | "value" | "type"> & {
7
6
  decimalPlaces?: number;
8
- onChange?: OnChangeHandler;
7
+ onChange?: FormControlProps<number>["onChange"];
9
8
  requiredMessage?: string;
10
9
  };
11
10
  export declare function NumberInput<FormData extends FieldValues>(props: NumberInputProps<FormData>): React.JSX.Element;
12
11
  export declare namespace NumberInput {
13
12
  var displayName: string;
14
13
  }
15
- export {};
@@ -5,8 +5,8 @@ var __importDefault = (this && this.__importDefault) || function (mod) {
5
5
  Object.defineProperty(exports, "__esModule", { value: true });
6
6
  exports.NumberInput = void 0;
7
7
  const text_input_1 = require("@uxf/ui/text-input");
8
- const react_hook_form_1 = require("react-hook-form");
9
8
  const react_1 = __importDefault(require("react"));
9
+ const react_hook_form_1 = require("react-hook-form");
10
10
  const form_id_context_1 = require("../form-id-context");
11
11
  function NumberInput(props) {
12
12
  var _a, _b, _c, _d, _e;
@@ -41,17 +41,29 @@ function NumberInput(props) {
41
41
  };
42
42
  const onKeyDown = (event) => {
43
43
  var _a;
44
- if (event.key === "e") {
45
- event.preventDefault();
44
+ // Allow special keys
45
+ const specialKeys = ["Backspace", "Delete", "ArrowLeft", "ArrowRight", "ArrowUp", "ArrowDown"];
46
+ // Allow keys for copy/paste/select/cut
47
+ const controlKeys = ["v", "V", "c", "C", "x", "X", "a", "A"];
48
+ // Allow digits and decimal point (.,)
49
+ const allowedDigits = /[0-9+\-.,]/;
50
+ const key = event.key;
51
+ // Check if the key is allowed
52
+ if (!specialKeys.includes(key) && !allowedDigits.test(key)) {
53
+ // Check if Ctrl or Command key is pressed along with control key
54
+ if (!(event.ctrlKey || event.metaKey) || !controlKeys.includes(key)) {
55
+ event.preventDefault();
56
+ }
46
57
  }
47
58
  (_a = props.onKeyDown) === null || _a === void 0 ? void 0 : _a.call(props, event);
48
59
  };
49
60
  const onChange = (value, event) => {
50
61
  var _a;
51
- field.onChange(value);
52
- (_a = props.onChange) === null || _a === void 0 ? void 0 : _a.call(props, value, event);
62
+ const parsedValue = props.decimalPlaces ? parseFloat(value) : parseInt(value, 10);
63
+ field.onChange(parsedValue);
64
+ (_a = props.onChange) === null || _a === void 0 ? void 0 : _a.call(props, parsedValue, event);
53
65
  };
54
- return (react_1.default.createElement(text_input_1.TextInput, { autoComplete: props.autoComplete, className: props.className, enterKeyHint: props.enterKeyHint, form: props.form, helperText: (_d = (_c = fieldState.error) === null || _c === void 0 ? void 0 : _c.message) !== null && _d !== void 0 ? _d : props.helperText, hiddenLabel: props.hiddenLabel, id: 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: (_e = field.value) !== null && _e !== void 0 ? _e : "", variant: props.variant }));
66
+ return (react_1.default.createElement(text_input_1.TextInput, { autoComplete: props.autoComplete, autoFocus: props.autoFocus, className: props.className, enterKeyHint: props.enterKeyHint, form: props.form, helperText: (_d = (_c = fieldState.error) === null || _c === void 0 ? void 0 : _c.message) !== null && _d !== void 0 ? _d : props.helperText, hiddenLabel: props.hiddenLabel, id: 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: (_e = field.value) !== null && _e !== void 0 ? _e : "", variant: props.variant }));
55
67
  }
56
68
  exports.NumberInput = NumberInput;
57
69
  NumberInput.displayName = "UxfFormNumberInput";
@@ -4,10 +4,10 @@ var __importDefault = (this && this.__importDefault) || function (mod) {
4
4
  };
5
5
  Object.defineProperty(exports, "__esModule", { value: true });
6
6
  exports.Default = void 0;
7
+ const button_1 = require("@uxf/ui/button");
7
8
  const react_1 = __importDefault(require("react"));
8
- const number_input_1 = require("./number-input");
9
9
  const storybook_form_1 = require("../storybook/storybook-form");
10
- const button_1 = require("@uxf/ui/button");
10
+ const number_input_1 = require("./number-input");
11
11
  exports.default = {
12
12
  title: "Form/NumberInput",
13
13
  component: number_input_1.NumberInput,
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@uxf/form",
3
- "version": "10.0.0-beta.9",
3
+ "version": "10.0.0",
4
4
  "description": "",
5
5
  "publishConfig": {
6
6
  "access": "public"
@@ -12,8 +12,19 @@
12
12
  "author": "UX Fans s.r.o",
13
13
  "license": "MIT",
14
14
  "dependencies": {
15
- "@uxf/ui": "10.0.0-beta.9",
16
- "react-hook-form": "7.44.3",
17
- "coordinate-parser": "1.0.7"
15
+ "@uxf/ui": "10.0.0",
16
+ "coordinate-parser": "1.0.7",
17
+ "dayjs": "1.11.10",
18
+ "react-hook-form": "7.47.0"
19
+ },
20
+ "peerDependencies": {
21
+ "react": ">=18.2.0",
22
+ "react-dom": ">=18.2.0"
23
+ },
24
+ "devDependencies": {
25
+ "@types/react": "18.2.27",
26
+ "@types/react-dom": "18.2.12",
27
+ "react": "18.2.0",
28
+ "react-dom": "18.2.0"
18
29
  }
19
30
  }
@@ -1,8 +1,8 @@
1
- import { RadioGroupOptionValue, RadioGroupProps as UIRadioGroupProps } from "@uxf/ui/radio-group";
1
+ import { RadioGroupOptionValueId, RadioGroupProps as UIRadioGroupProps } from "@uxf/ui/radio-group";
2
+ import { FormControlProps } from "@uxf/ui/types";
2
3
  import React from "react";
3
4
  import { FieldValues, UseControllerProps } from "react-hook-form";
4
- import { FormControlProps } from "@uxf/ui/types";
5
- type OnChangeHandler = FormControlProps<RadioGroupOptionValue | null>["onChange"];
5
+ type OnChangeHandler = FormControlProps<RadioGroupOptionValueId | null>["onChange"];
6
6
  export type RadioGroupProps<FormData extends FieldValues> = UseControllerProps<FormData> & Omit<UIRadioGroupProps, "isInvalid" | "name" | "onChange" | "value"> & {
7
7
  onChange?: OnChangeHandler;
8
8
  requiredMessage?: string;
@@ -32,7 +32,7 @@ function RadioGroup(props) {
32
32
  field.onChange(value);
33
33
  (_a = props.onChange) === null || _a === void 0 ? void 0 : _a.call(props, value, event);
34
34
  };
35
- return (react_1.default.createElement(radio_group_1.RadioGroup, { className: props.className, forceColumn: props.forceColumn, helperText: (_d = (_c = fieldState.error) === null || _c === void 0 ? void 0 : _c.message) !== null && _d !== void 0 ? _d : props.helperText, hiddenLabel: props.hiddenLabel, id: 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: (_e = field.value) !== null && _e !== void 0 ? _e : null, variant: props.variant }));
35
+ return (react_1.default.createElement(radio_group_1.RadioGroup, { className: props.className, forceColumn: props.forceColumn, helperText: (_d = (_c = fieldState.error) === null || _c === void 0 ? void 0 : _c.message) !== null && _d !== void 0 ? _d : props.helperText, hiddenLabel: props.hiddenLabel, id: id, isDisabled: props.options.length === 0 || props.isDisabled, isFocused: props.isFocused, 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, radioSize: props.radioSize, ref: field.ref, style: props.style, value: (_e = field.value) !== null && _e !== void 0 ? _e : null, variant: props.variant }));
36
36
  }
37
37
  exports.RadioGroup = RadioGroup;
38
38
  RadioGroup.displayName = "UxfFormRadioGroup";
@@ -14,15 +14,15 @@ exports.default = {
14
14
  };
15
15
  const options = [
16
16
  {
17
- value: "1",
17
+ id: "1",
18
18
  label: "Radio one",
19
19
  },
20
20
  {
21
- value: "2",
21
+ id: "2",
22
22
  label: "Radio two",
23
23
  },
24
24
  {
25
- value: "3",
25
+ id: "3",
26
26
  label: "Radio three-sixty",
27
27
  },
28
28
  ];
@@ -1,7 +1,7 @@
1
- import { SelectProps as UISelectProps, SelectValue } from "@uxf/ui/select";
2
- import { FieldValues, UseControllerProps } from "react-hook-form";
3
- import React from "react";
1
+ import { SelectValue, SelectProps as UISelectProps } from "@uxf/ui/select";
4
2
  import { FormControlProps } from "@uxf/ui/types";
3
+ import React from "react";
4
+ import { FieldValues, UseControllerProps } from "react-hook-form";
5
5
  type OnChangeHandler = FormControlProps<SelectValue | null>["onChange"];
6
6
  export type SelectProps<FormData extends FieldValues> = UseControllerProps<FormData> & Omit<UISelectProps, "isInvalid" | "name" | "onChange" | "value"> & {
7
7
  onChange?: OnChangeHandler;
package/select/select.js CHANGED
@@ -5,8 +5,8 @@ var __importDefault = (this && this.__importDefault) || function (mod) {
5
5
  Object.defineProperty(exports, "__esModule", { value: true });
6
6
  exports.Select = void 0;
7
7
  const select_1 = require("@uxf/ui/select");
8
- const react_hook_form_1 = require("react-hook-form");
9
8
  const react_1 = __importDefault(require("react"));
9
+ const react_hook_form_1 = require("react-hook-form");
10
10
  const form_id_context_1 = require("../form-id-context");
11
11
  function Select(props) {
12
12
  var _a, _b, _c, _d;
@@ -32,7 +32,7 @@ function Select(props) {
32
32
  field.onChange(value);
33
33
  (_a = props.onChange) === null || _a === void 0 ? void 0 : _a.call(props, value, event);
34
34
  };
35
- return (react_1.default.createElement(select_1.Select, { className: props.className, dropdownPlacement: props.dropdownPlacement, forwardRef: field.ref, helperText: (_d = (_c = fieldState.error) === null || _c === void 0 ? void 0 : _c.message) !== null && _d !== void 0 ? _d : props.helperText, hiddenLabel: props.hiddenLabel, id: 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 }));
35
+ return (react_1.default.createElement(select_1.Select, { className: props.className, dropdownPlacement: props.dropdownPlacement, forwardRef: field.ref, helperText: (_d = (_c = fieldState.error) === null || _c === void 0 ? void 0 : _c.message) !== null && _d !== void 0 ? _d : props.helperText, hiddenLabel: props.hiddenLabel, iconName: props.iconName, id: 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, renderOption: props.renderOption, renderSelectedOption: props.renderSelectedOption, value: field.value }));
36
36
  }
37
37
  exports.Select = Select;
38
38
  Select.displayName = "UxfFormSelect";
@@ -4,10 +4,10 @@ var __importDefault = (this && this.__importDefault) || function (mod) {
4
4
  };
5
5
  Object.defineProperty(exports, "__esModule", { value: true });
6
6
  exports.Default = void 0;
7
+ const button_1 = require("@uxf/ui/button");
7
8
  const react_1 = __importDefault(require("react"));
8
- const select_1 = require("./select");
9
9
  const storybook_form_1 = require("../storybook/storybook-form");
10
- const button_1 = require("@uxf/ui/button");
10
+ const select_1 = require("./select");
11
11
  exports.default = {
12
12
  title: "Form/Select",
13
13
  component: select_1.Select,
@@ -4,8 +4,8 @@ var __importDefault = (this && this.__importDefault) || function (mod) {
4
4
  };
5
5
  Object.defineProperty(exports, "__esModule", { value: true });
6
6
  exports.FormDataPrinter = void 0;
7
- const react_hook_form_1 = require("react-hook-form");
8
7
  const react_1 = __importDefault(require("react"));
8
+ const react_hook_form_1 = require("react-hook-form");
9
9
  function FormDataPrinter(props) {
10
10
  const data = (0, react_hook_form_1.useWatch)({ control: props.control });
11
11
  return react_1.default.createElement("pre", { className: "bg-gray-100 p-2 text-sm" }, JSON.stringify(data, null, " "));
@@ -7,8 +7,8 @@ exports.StorybookForm = void 0;
7
7
  const button_1 = require("@uxf/ui/button");
8
8
  const react_1 = __importDefault(require("react"));
9
9
  const react_hook_form_1 = require("react-hook-form");
10
- const form_data_printer_1 = require("./form-data-printer");
11
10
  const form_1 = require("../form");
11
+ const form_data_printer_1 = require("./form-data-printer");
12
12
  function StorybookForm(props) {
13
13
  const form = (0, react_hook_form_1.useForm)(props);
14
14
  return (
@@ -1,7 +1,7 @@
1
1
  import { TextInputProps as UITextInputProps } from "@uxf/ui/text-input";
2
- import { FieldValues, UseControllerProps } from "react-hook-form";
3
- import React from "react";
4
2
  import { FormControlProps } from "@uxf/ui/types";
3
+ import React from "react";
4
+ import { FieldValues, UseControllerProps } from "react-hook-form";
5
5
  type OnChangeHandler = FormControlProps<string>["onChange"];
6
6
  export type TextInputProps<FormData extends FieldValues> = UseControllerProps<FormData> & Omit<UITextInputProps, "isInvalid" | "max" | "min" | "pattern" | "step" | "name" | "onChange" | "value" | "type"> & {
7
7
  onChange?: OnChangeHandler;
@@ -5,8 +5,8 @@ var __importDefault = (this && this.__importDefault) || function (mod) {
5
5
  Object.defineProperty(exports, "__esModule", { value: true });
6
6
  exports.TextInput = void 0;
7
7
  const text_input_1 = require("@uxf/ui/text-input");
8
- const react_hook_form_1 = require("react-hook-form");
9
8
  const react_1 = __importDefault(require("react"));
9
+ const react_hook_form_1 = require("react-hook-form");
10
10
  const form_id_context_1 = require("../form-id-context");
11
11
  const EMAIL_REGEXP = /^(([^<>()[\]\\.,;:\s@À-ÖÙ-öù-ÿĀ-žḀ-ỿ"]+(\.[^<>()[\]\\.,;:\s@À-ÖÙ-öù-ÿĀ-žḀ-ỿ"]+)*)|(".+"))@((\[[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}])|(([a-zA-Z\-0-9]+\.)+[a-zA-Z]{2,}))$/;
12
12
  const PHONE_REGEXP = /^(\+)?[\d\s]*$/;
@@ -45,7 +45,7 @@ function TextInput(props) {
45
45
  field.onChange(value);
46
46
  (_a = props.onChange) === null || _a === void 0 ? void 0 : _a.call(props, value, event);
47
47
  };
48
- return (react_1.default.createElement(text_input_1.TextInput, { autoComplete: props.autoComplete, className: props.className, enterKeyHint: props.enterKeyHint, form: props.form, helperText: (_f = (_e = fieldState.error) === null || _e === void 0 ? void 0 : _e.message) !== null && _f !== void 0 ? _f : props.helperText, hiddenLabel: props.hiddenLabel, id: 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: (_g = field.value) !== null && _g !== void 0 ? _g : "", variant: props.variant }));
48
+ return (react_1.default.createElement(text_input_1.TextInput, { autoComplete: props.autoComplete, autoFocus: props.autoFocus, className: props.className, enterKeyHint: props.enterKeyHint, form: props.form, helperText: (_f = (_e = fieldState.error) === null || _e === void 0 ? void 0 : _e.message) !== null && _f !== void 0 ? _f : props.helperText, hiddenLabel: props.hiddenLabel, id: 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: (_g = field.value) !== null && _g !== void 0 ? _g : "", variant: props.variant }));
49
49
  }
50
50
  exports.TextInput = TextInput;
51
51
  TextInput.displayName = "UxfFormTextInput";
@@ -4,10 +4,10 @@ var __importDefault = (this && this.__importDefault) || function (mod) {
4
4
  };
5
5
  Object.defineProperty(exports, "__esModule", { value: true });
6
6
  exports.Default = void 0;
7
+ const button_1 = require("@uxf/ui/button");
7
8
  const react_1 = __importDefault(require("react"));
8
- const text_input_1 = require("./text-input");
9
9
  const storybook_form_1 = require("../storybook/storybook-form");
10
- const button_1 = require("@uxf/ui/button");
10
+ const text_input_1 = require("./text-input");
11
11
  exports.default = {
12
12
  title: "Form/TextInput",
13
13
  component: text_input_1.TextInput,
@@ -1,7 +1,7 @@
1
1
  import { TextareaProps as UITextareaProps } from "@uxf/ui/textarea";
2
- import { FieldValues, UseControllerProps } from "react-hook-form";
3
- import React from "react";
4
2
  import { FormControlProps } from "@uxf/ui/types";
3
+ import React from "react";
4
+ import { FieldValues, UseControllerProps } from "react-hook-form";
5
5
  type OnChangeHandler = FormControlProps<string, HTMLTextAreaElement>["onChange"];
6
6
  export type TextareaProps<FormData extends FieldValues> = UseControllerProps<FormData> & Omit<UITextareaProps, "isInvalid" | "name" | "onChange" | "value"> & {
7
7
  onChange?: OnChangeHandler;
@@ -25,8 +25,8 @@ var __importStar = (this && this.__importStar) || function (mod) {
25
25
  Object.defineProperty(exports, "__esModule", { value: true });
26
26
  exports.Textarea = void 0;
27
27
  const textarea_1 = require("@uxf/ui/textarea");
28
- const react_hook_form_1 = require("react-hook-form");
29
28
  const react_1 = __importStar(require("react"));
29
+ const react_hook_form_1 = require("react-hook-form");
30
30
  const form_id_context_1 = require("../form-id-context");
31
31
  function Textarea(props) {
32
32
  var _a, _b, _c, _d;
@@ -4,10 +4,10 @@ var __importDefault = (this && this.__importDefault) || function (mod) {
4
4
  };
5
5
  Object.defineProperty(exports, "__esModule", { value: true });
6
6
  exports.Default = void 0;
7
+ const button_1 = require("@uxf/ui/button");
7
8
  const react_1 = __importDefault(require("react"));
8
9
  const storybook_form_1 = require("../storybook/storybook-form");
9
10
  const textarea_1 = require("./textarea");
10
- const button_1 = require("@uxf/ui/button");
11
11
  exports.default = {
12
12
  title: "Form/Textarea",
13
13
  component: textarea_1.Textarea,
@@ -1,7 +1,7 @@
1
+ import { DatePickerInputProps as UIDatePickerInputProps } from "@uxf/ui/date-picker-input";
1
2
  import { TimePickerInputProps as UITimePickerInputProps } from "@uxf/ui/time-picker-input";
2
- import { FieldValues, UseControllerProps } from "react-hook-form";
3
3
  import React from "react";
4
- import { DatePickerInputProps as UIDatePickerInputProps } from "@uxf/ui/date-picker-input";
4
+ import { FieldValues, UseControllerProps } from "react-hook-form";
5
5
  export type TimePickerInputProps<FormData extends FieldValues> = UseControllerProps<FormData> & Omit<UITimePickerInputProps, "isInvalid" | "max" | "min" | "pattern" | "step" | "name" | "onChange" | "value"> & {
6
6
  onChange?: UIDatePickerInputProps["onChange"];
7
7
  requiredMessage?: string;
@@ -28,10 +28,10 @@ var __importDefault = (this && this.__importDefault) || function (mod) {
28
28
  Object.defineProperty(exports, "__esModule", { value: true });
29
29
  exports.TimePickerInput = void 0;
30
30
  const time_picker_input_1 = require("@uxf/ui/time-picker-input");
31
- const react_hook_form_1 = require("react-hook-form");
32
- const react_1 = __importDefault(require("react"));
33
31
  const dayjs_1 = __importStar(require("dayjs"));
34
32
  const customParseFormat_1 = __importDefault(require("dayjs/plugin/customParseFormat"));
33
+ const react_1 = __importDefault(require("react"));
34
+ const react_hook_form_1 = require("react-hook-form");
35
35
  const form_id_context_1 = require("../form-id-context");
36
36
  (0, dayjs_1.extend)(customParseFormat_1.default);
37
37
  function TimePickerInput(props) {
@@ -71,7 +71,7 @@ function TimePickerInput(props) {
71
71
  field.onChange(value);
72
72
  (_a = props.onChange) === null || _a === void 0 ? void 0 : _a.call(props, value, event);
73
73
  };
74
- return (react_1.default.createElement(time_picker_input_1.TimePickerInput, { className: props.className, form: props.form, helperText: (_g = (_f = fieldState.error) === null || _f === void 0 ? void 0 : _f.message) !== null && _g !== void 0 ? _g : props.helperText, hiddenLabel: props.hiddenLabel, id: 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, popoverPlacement: props.popoverPlacement, popoverStrategy: props.popoverStrategy, ref: field.ref, rightAddon: props.rightAddon, rightElement: props.rightElement, size: props.size, triggerElement: props.triggerElement, value: field.value, variant: props.variant }));
74
+ return (react_1.default.createElement(time_picker_input_1.TimePickerInput, { autoFocus: props.autoFocus, className: props.className, form: props.form, helperText: (_g = (_f = fieldState.error) === null || _f === void 0 ? void 0 : _f.message) !== null && _g !== void 0 ? _g : props.helperText, hiddenLabel: props.hiddenLabel, id: 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, popoverPlacement: props.popoverPlacement, popoverStrategy: props.popoverStrategy, ref: field.ref, rightAddon: props.rightAddon, rightElement: props.rightElement, size: props.size, triggerElement: props.triggerElement, value: field.value, variant: props.variant }));
75
75
  }
76
76
  exports.TimePickerInput = TimePickerInput;
77
77
  TimePickerInput.displayName = "UxfFormTimePickerInput";
@@ -4,11 +4,11 @@ var __importDefault = (this && this.__importDefault) || function (mod) {
4
4
  };
5
5
  Object.defineProperty(exports, "__esModule", { value: true });
6
6
  exports.Default = void 0;
7
- const react_1 = __importDefault(require("react"));
8
- const time_picker_input_1 = require("./time-picker-input");
9
- const storybook_form_1 = require("../storybook/storybook-form");
10
7
  const button_1 = require("@uxf/ui/button");
11
8
  const dayjs_1 = __importDefault(require("dayjs"));
9
+ const react_1 = __importDefault(require("react"));
10
+ const storybook_form_1 = require("../storybook/storybook-form");
11
+ const time_picker_input_1 = require("./time-picker-input");
12
12
  exports.default = {
13
13
  title: "Form/TimePickerInput",
14
14
  component: time_picker_input_1.TimePickerInput,
@@ -1,7 +1,7 @@
1
1
  import { ToggleProps as UIToggleProps } from "@uxf/ui/toggle";
2
- import { FieldValues, UseControllerProps } from "react-hook-form";
3
- import React from "react";
4
2
  import { FormControlProps } from "@uxf/ui/types";
3
+ import React from "react";
4
+ import { FieldValues, UseControllerProps } from "react-hook-form";
5
5
  type OnChangeHandler = FormControlProps<boolean | undefined>["onChange"];
6
6
  export type ComboProps<FormData extends FieldValues> = UseControllerProps<FormData> & Omit<UIToggleProps, "isInvalid" | "name" | "onChange" | "value"> & {
7
7
  nullable?: boolean;
package/toggle/toggle.js CHANGED
@@ -5,8 +5,8 @@ var __importDefault = (this && this.__importDefault) || function (mod) {
5
5
  Object.defineProperty(exports, "__esModule", { value: true });
6
6
  exports.Toggle = void 0;
7
7
  const toggle_1 = require("@uxf/ui/toggle");
8
- const react_hook_form_1 = require("react-hook-form");
9
8
  const react_1 = __importDefault(require("react"));
9
+ const react_hook_form_1 = require("react-hook-form");
10
10
  const form_id_context_1 = require("../form-id-context");
11
11
  function Toggle(props) {
12
12
  var _a, _b, _c;
@@ -4,10 +4,10 @@ var __importDefault = (this && this.__importDefault) || function (mod) {
4
4
  };
5
5
  Object.defineProperty(exports, "__esModule", { value: true });
6
6
  exports.Default = void 0;
7
+ const button_1 = require("@uxf/ui/button");
7
8
  const react_1 = __importDefault(require("react"));
8
9
  const storybook_form_1 = require("../storybook/storybook-form");
9
10
  const toggle_1 = require("./toggle");
10
- const button_1 = require("@uxf/ui/button");
11
11
  exports.default = {
12
12
  title: "Form/Toggle",
13
13
  component: toggle_1.Toggle,