@uxf/form 11.31.2 → 11.32.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 (50) hide show
  1. package/avatar-file-input/avatar-file-input.js +5 -5
  2. package/avatar-file-input/avatar-file-input.stories.js +1 -2
  3. package/checkbox-button/checkbox-button.js +5 -5
  4. package/checkbox-button/checkbox-button.stories.js +5 -6
  5. package/checkbox-input/checkbox-input.js +5 -5
  6. package/checkbox-input/checkbox-input.stories.js +5 -6
  7. package/color-radio-group/color-radio-group.js +5 -5
  8. package/color-radio-group/color-radio-group.stories.js +1 -2
  9. package/combobox/combobox.js +7 -5
  10. package/combobox/combobox.stories.js +6 -7
  11. package/date-picker-input/date-picker-input.js +7 -7
  12. package/date-picker-input/date-picker-input.stories.js +2 -3
  13. package/date-range-picker-input/date-range-picker-input.js +7 -7
  14. package/date-range-picker-input/date-range-picker-input.stories.js +4 -5
  15. package/datetime-picker-input/datetime-picker-input.js +7 -7
  16. package/datetime-picker-input/datetime-picker-input.stories.js +5 -6
  17. package/dropzone/dropzone-input.js +6 -6
  18. package/dropzone/dropzone-list.js +2 -3
  19. package/dropzone/dropzone.stories.js +9 -11
  20. package/file-input/file-input.js +5 -5
  21. package/file-input/file-input.stories.js +3 -4
  22. package/form/form.js +1 -2
  23. package/form/form.stories.js +4 -6
  24. package/form-id-context/form-id-context.d.ts +0 -1
  25. package/gps-input/gps-input.js +8 -7
  26. package/gps-input/gps-input.stories.js +3 -4
  27. package/multi-combobox/multi-combobox.js +7 -5
  28. package/multi-combobox/multi-combobox.stories.js +3 -4
  29. package/multi-select/multi-select.js +5 -5
  30. package/multi-select/multi-select.stories.js +2 -3
  31. package/number-input/number-input.js +5 -5
  32. package/number-input/number-input.stories.js +5 -6
  33. package/package.json +8 -8
  34. package/password-input/password-input.js +6 -6
  35. package/password-input/password-input.stories.js +3 -4
  36. package/radio-group/radio-group.js +5 -5
  37. package/radio-group/radio-group.stories.js +1 -2
  38. package/readmes.d.ts +0 -1
  39. package/select/select.js +5 -5
  40. package/select/select.stories.js +4 -5
  41. package/storybook/form-data-printer.js +1 -2
  42. package/storybook/storybook-form.js +2 -3
  43. package/text-input/text-input.js +5 -5
  44. package/text-input/text-input.stories.js +6 -7
  45. package/textarea/textarea.js +5 -5
  46. package/textarea/textarea.stories.js +3 -4
  47. package/time-picker-input/time-picker-input.js +7 -7
  48. package/time-picker-input/time-picker-input.stories.js +1 -2
  49. package/toggle/toggle.js +5 -5
  50. package/toggle/toggle.stories.js +4 -5
@@ -3,7 +3,7 @@ var __importDefault = (this && this.__importDefault) || function (mod) {
3
3
  return (mod && mod.__esModule) ? mod : { "default": mod };
4
4
  };
5
5
  Object.defineProperty(exports, "__esModule", { value: true });
6
- exports.DropzoneList = void 0;
6
+ exports.DropzoneList = DropzoneList;
7
7
  const dropzone_1 = require("@uxf/ui/dropzone");
8
8
  const react_1 = __importDefault(require("react"));
9
9
  const react_hook_form_1 = require("react-hook-form");
@@ -17,7 +17,6 @@ function DropzoneList(props) {
17
17
  field.onChange(value);
18
18
  (_a = props.onChange) === null || _a === void 0 ? void 0 : _a.call(props, value, event);
19
19
  };
20
- return (react_1.default.createElement(dropzone_1.Dropzone.List, { className: props.className, errorText: props.errorText, isDownloadableOnClick: props.isDownloadableOnClick, onChange: onChange, onRemoveConfirm: props.onRemoveConfirm, renderItem: props.renderItem, style: props.style, value: field.value, name: props.name }));
20
+ return (react_1.default.createElement(dropzone_1.Dropzone.List, { className: props.className, errorText: props.errorText, isDownloadableOnClick: props.isDownloadableOnClick, name: props.name, onChange: onChange, onRemoveConfirm: props.onRemoveConfirm, renderItem: props.renderItem, style: props.style, value: field.value }));
21
21
  }
22
- exports.DropzoneList = DropzoneList;
23
22
  DropzoneList.displayName = "UxfFormDropzoneList";
@@ -3,7 +3,7 @@ var __importDefault = (this && this.__importDefault) || function (mod) {
3
3
  return (mod && mod.__esModule) ? mod : { "default": mod };
4
4
  };
5
5
  Object.defineProperty(exports, "__esModule", { value: true });
6
- exports.Default = void 0;
6
+ exports.Default = Default;
7
7
  const button_1 = require("@uxf/ui/button");
8
8
  const message_1 = require("@uxf/ui/message");
9
9
  const get_dropzone_state_1 = require("@uxf/ui/utils/get-dropzone-state");
@@ -57,15 +57,13 @@ function Default() {
57
57
  };
58
58
  return (react_1.default.createElement(storybook_form_1.StorybookForm, { defaultValues: { dropzone: DUMMY_FILES } }, ({ control, watch }) => {
59
59
  const { status } = (0, get_dropzone_state_1.getDropzoneState)(watch("dropzone"));
60
- return (react_1.default.createElement(react_1.default.Fragment, null,
61
- react_1.default.createElement("div", { className: "flex flex-col lg:flex-row" },
62
- react_1.default.createElement("div", { className: "space-y-2 p-20 lg:w-1/2" },
63
- react_1.default.createElement("div", { className: "space-y-8" },
64
- react_1.default.createElement(index_1.Dropzone, { accept: {
65
- "image/png": [".png"],
66
- }, control: control, helperText: "Allow multiple files, 1MB max file size, only .png", isDisabled: status === "UPLOADING", isRequired: true, label: "Use drag and drop or click to upload", name: "dropzone", onUploadError: onUploadError, onUploadFile: upload_file_mock_1.uploadFile, maxFileSize: 1024 * 1024 }),
67
- react_1.default.createElement(button_1.Button, { type: "submit" }, "Submit"),
68
- react_1.default.createElement(index_1.Dropzone.List, { control: control, errorText: "Oops, n\u011Bco se pokazilo", name: "dropzone", onRemoveConfirm: onRemoveConfirm }))))));
60
+ return (react_1.default.createElement("div", { className: "flex flex-col lg:flex-row" },
61
+ react_1.default.createElement("div", { className: "space-y-2 p-20 lg:w-1/2" },
62
+ react_1.default.createElement("div", { className: "space-y-8" },
63
+ react_1.default.createElement(index_1.Dropzone, { accept: {
64
+ "image/png": [".png"],
65
+ }, control: control, helperText: "Allow multiple files, 1MB max file size, only .png", isDisabled: status === "UPLOADING", isRequired: true, label: "Use drag and drop or click to upload", maxFileSize: 1024 * 1024, name: "dropzone", onUploadError: onUploadError, onUploadFile: upload_file_mock_1.uploadFile }),
66
+ react_1.default.createElement(button_1.Button, { type: "submit" }, "Submit"),
67
+ react_1.default.createElement(index_1.Dropzone.List, { control: control, errorText: "Oops, n\u011Bco se pokazilo", name: "dropzone", onRemoveConfirm: onRemoveConfirm })))));
69
68
  }));
70
69
  }
71
- exports.Default = Default;
@@ -3,13 +3,14 @@ var __importDefault = (this && this.__importDefault) || function (mod) {
3
3
  return (mod && mod.__esModule) ? mod : { "default": mod };
4
4
  };
5
5
  Object.defineProperty(exports, "__esModule", { value: true });
6
- exports.FileInput = void 0;
6
+ exports.FileInput = FileInput;
7
+ const is_not_nil_1 = require("@uxf/core/utils/is-not-nil");
7
8
  const file_input_1 = require("@uxf/ui/file-input");
8
9
  const react_1 = __importDefault(require("react"));
9
10
  const react_hook_form_1 = require("react-hook-form");
10
11
  const form_id_context_1 = require("../form-id-context");
11
12
  function FileInput(props) {
12
- var _a, _b, _c, _d;
13
+ var _a, _b, _c;
13
14
  const formId = (0, form_id_context_1.useFormIdContext)();
14
15
  const id = (_a = props.id) !== null && _a !== void 0 ? _a : `${formId}__${props.name}`;
15
16
  const { field, fieldState } = (0, react_hook_form_1.useController)({
@@ -17,7 +18,7 @@ function FileInput(props) {
17
18
  name: props.name,
18
19
  rules: {
19
20
  required: props.isRequired ? props.requiredMessage || "Toto pole je povinné" : undefined,
20
- ...((_b = props.rules) !== null && _b !== void 0 ? _b : {}),
21
+ ...props.rules,
21
22
  },
22
23
  shouldUnregister: props.shouldUnregister,
23
24
  });
@@ -31,7 +32,6 @@ function FileInput(props) {
31
32
  field.onChange(value);
32
33
  (_a = props.onChange) === null || _a === void 0 ? void 0 : _a.call(props, value, event);
33
34
  };
34
- 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, maxFileSize: props.maxFileSize, 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 }));
35
+ 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, hiddenLabel: props.hiddenLabel, id: id, isClearable: props.isClearable, isDisabled: props.isDisabled, isInvalid: (0, is_not_nil_1.isNotNil)(fieldState.error), isReadOnly: props.isReadOnly, isRequired: props.isRequired, label: props.label, maxFileSize: props.maxFileSize, 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, uploadButtonLabel: props.uploadButtonLabel, value: field.value, variant: props.variant }));
35
36
  }
36
- exports.FileInput = FileInput;
37
37
  FileInput.displayName = "FileInput";
@@ -3,7 +3,7 @@ var __importDefault = (this && this.__importDefault) || function (mod) {
3
3
  return (mod && mod.__esModule) ? mod : { "default": mod };
4
4
  };
5
5
  Object.defineProperty(exports, "__esModule", { value: true });
6
- exports.Default = void 0;
6
+ exports.Default = Default;
7
7
  const button_1 = require("@uxf/ui/button");
8
8
  const upload_file_mock_1 = require("@uxf/ui/utils/mocks/upload-file.mock");
9
9
  const react_1 = __importDefault(require("react"));
@@ -22,11 +22,10 @@ const DUMMY_FILE = {
22
22
  };
23
23
  function Default() {
24
24
  const storyFormFileInputs = (control, mode) => (react_1.default.createElement("div", { className: "space-y-4" },
25
- 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, isClearable: true, label: "Default file input", name: `default-${mode}`, onUploadFile: upload_file_mock_1.uploadFile, placeholder: "Nahraj soubor" }),
26
26
  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 }),
27
- react_1.default.createElement(file_input_1.FileInput, { control: control, label: "Custom button label", name: `default-${mode}`, onUploadFile: upload_file_mock_1.uploadFile, isClearable: true, placeholder: "Nahrajte soubor", uploadButtonLabel: "Nahrajte dokument" }),
27
+ react_1.default.createElement(file_input_1.FileInput, { control: control, isClearable: true, label: "Custom button label", name: `default-${mode}`, onUploadFile: upload_file_mock_1.uploadFile, placeholder: "Nahrajte soubor", uploadButtonLabel: "Nahrajte dokument" }),
28
28
  react_1.default.createElement(button_1.Button, { type: "submit" }, "Submit")));
29
29
  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" },
30
30
  react_1.default.createElement("div", { className: "space-y-2 p-20 lg:w-1/2" }, storyFormFileInputs(control, "light"))))));
31
31
  }
32
- exports.Default = Default;
package/form/form.js CHANGED
@@ -3,7 +3,7 @@ var __importDefault = (this && this.__importDefault) || function (mod) {
3
3
  return (mod && mod.__esModule) ? mod : { "default": mod };
4
4
  };
5
5
  Object.defineProperty(exports, "__esModule", { value: true });
6
- exports.Form = void 0;
6
+ exports.Form = Form;
7
7
  const sr_only_1 = require("@uxf/styles/mixins/sr-only");
8
8
  const react_1 = __importDefault(require("react"));
9
9
  const react_hook_form_1 = require("react-hook-form");
@@ -16,5 +16,4 @@ function Form(props) {
16
16
  props.children,
17
17
  !props.omitSubmitInput && react_1.default.createElement("input", { style: sr_only_1.srOnly, type: "submit" })))));
18
18
  }
19
- exports.Form = Form;
20
19
  Form.displayName = "UxfForm";
@@ -3,7 +3,7 @@ var __importDefault = (this && this.__importDefault) || function (mod) {
3
3
  return (mod && mod.__esModule) ? mod : { "default": mod };
4
4
  };
5
5
  Object.defineProperty(exports, "__esModule", { value: true });
6
- exports.Default = void 0;
6
+ exports.Default = Default;
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");
@@ -18,9 +18,7 @@ function Default() {
18
18
  return (
19
19
  // eslint-disable-next-line no-console
20
20
  react_1.default.createElement(form_1.Form, { formApi: formApi, id: "form", onSubmit: console.log },
21
- react_1.default.createElement(react_1.default.Fragment, null,
22
- react_1.default.createElement("div", { className: "mb-4 space-y-4 p-4" },
23
- react_1.default.createElement(text_input_1.TextInput, { label: "Default input", name: "default", control: formApi.control, isRequired: true }),
24
- react_1.default.createElement(button_1.Button, { type: "submit" }, "Submit")))));
21
+ react_1.default.createElement("div", { className: "mb-4 space-y-4 p-4" },
22
+ react_1.default.createElement(text_input_1.TextInput, { control: formApi.control, isRequired: true, label: "Default input", name: "default" }),
23
+ react_1.default.createElement(button_1.Button, { type: "submit" }, "Submit"))));
25
24
  }
26
- exports.Default = Default;
@@ -1,3 +1,2 @@
1
- /// <reference types="react" />
2
1
  export declare const FormIdContextProvider: import("react").Provider<string | null>;
3
2
  export declare const useFormIdContext: () => string | null;
@@ -26,7 +26,8 @@ var __importDefault = (this && this.__importDefault) || function (mod) {
26
26
  return (mod && mod.__esModule) ? mod : { "default": mod };
27
27
  };
28
28
  Object.defineProperty(exports, "__esModule", { value: true });
29
- exports.GpsInput = void 0;
29
+ exports.GpsInput = GpsInput;
30
+ const is_not_nil_1 = require("@uxf/core/utils/is-not-nil");
30
31
  const text_input_1 = require("@uxf/ui/text-input");
31
32
  const tooltip_1 = require("@uxf/ui/tooltip");
32
33
  const coordinate_parser_1 = __importDefault(require("coordinate-parser"));
@@ -86,7 +87,7 @@ const SUPPORTED_FORMATS_TOOLTIP = (react_1.default.createElement("span", { class
86
87
  const EMPTY_HELPER_TEXT = "Zadejte souřadnice.";
87
88
  const NOT_VALID_HELPER_TEXT = "Souřadnice nejsou validní";
88
89
  function GpsInput(props) {
89
- var _a, _b, _c, _d;
90
+ var _a, _b;
90
91
  const formId = (0, form_id_context_1.useFormIdContext)();
91
92
  const id = (_a = props.id) !== null && _a !== void 0 ? _a : `${formId}__${props.name}`;
92
93
  const [visualValue, setVisualValue] = (0, react_1.useState)("");
@@ -95,13 +96,13 @@ function GpsInput(props) {
95
96
  control: props.control,
96
97
  name: props.name,
97
98
  rules: {
98
- ...((_b = props.rules) !== null && _b !== void 0 ? _b : {}),
99
+ ...props.rules,
99
100
  validate: {
100
- ...((_d = (_c = props.rules) === null || _c === void 0 ? void 0 : _c.validate) !== null && _d !== void 0 ? _d : {}),
101
+ ...(_b = props.rules) === null || _b === void 0 ? void 0 : _b.validate,
101
102
  req: (value) => {
102
103
  var _a;
103
104
  return props.isRequired && value === undefined
104
- ? (_a = props.requiredMessage) !== null && _a !== void 0 ? _a : "Toto pole je povinné"
105
+ ? ((_a = props.requiredMessage) !== null && _a !== void 0 ? _a : "Toto pole je povinné")
105
106
  : undefined;
106
107
  },
107
108
  format: (value) => {
@@ -129,6 +130,7 @@ function GpsInput(props) {
129
130
  setCoordsFormatError(false);
130
131
  field.onChange({ lat: coords.getLatitude(), lng: coords.getLongitude() });
131
132
  (_a = props.onChange) === null || _a === void 0 ? void 0 : _a.call(props, value, event);
133
+ // eslint-disable-next-line @typescript-eslint/no-unused-vars
132
134
  }
133
135
  catch (e) {
134
136
  setCoordsFormatError(true);
@@ -146,7 +148,6 @@ function GpsInput(props) {
146
148
  : EMPTY_HELPER_TEXT,
147
149
  " ",
148
150
  SUPPORTED_FORMATS_TOOLTIP));
149
- 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, style: props.style, type: "text", value: visualValue, variant: props.variant }));
151
+ 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: ((0, is_not_nil_1.isNotNil)(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, style: props.style, type: "text", value: visualValue, variant: props.variant }));
150
152
  }
151
- exports.GpsInput = GpsInput;
152
153
  GpsInput.displayName = "UxfFormGpsInput";
@@ -3,7 +3,7 @@ var __importDefault = (this && this.__importDefault) || function (mod) {
3
3
  return (mod && mod.__esModule) ? mod : { "default": mod };
4
4
  };
5
5
  Object.defineProperty(exports, "__esModule", { value: true });
6
- exports.Default = void 0;
6
+ exports.Default = Default;
7
7
  const button_1 = require("@uxf/ui/button");
8
8
  const react_1 = __importDefault(require("react"));
9
9
  const storybook_form_1 = require("../storybook/storybook-form");
@@ -14,10 +14,9 @@ exports.default = {
14
14
  };
15
15
  function Default() {
16
16
  const storyFormGpsInputs = (control) => (react_1.default.createElement("div", { className: "space-y-4" },
17
- react_1.default.createElement(gps_input_1.GpsInput, { placeholder: "Zadejte sou\u0159adnice...", label: "GPS", name: "gps", control: control }),
18
- react_1.default.createElement(gps_input_1.GpsInput, { placeholder: "Zadejte sou\u0159adnice...", label: "GPS", name: "gps-required", control: control, isRequired: true }),
17
+ react_1.default.createElement(gps_input_1.GpsInput, { control: control, label: "GPS", name: "gps", placeholder: "Zadejte sou\u0159adnice..." }),
18
+ react_1.default.createElement(gps_input_1.GpsInput, { control: control, isRequired: true, label: "GPS", name: "gps-required", placeholder: "Zadejte sou\u0159adnice..." }),
19
19
  react_1.default.createElement(button_1.Button, { type: "submit" }, "Submit")));
20
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
21
  react_1.default.createElement("div", { className: "space-y-2 p-20 lg:w-1/2" }, storyFormGpsInputs(control))))));
22
22
  }
23
- exports.Default = Default;
@@ -3,15 +3,17 @@ var __importDefault = (this && this.__importDefault) || function (mod) {
3
3
  return (mod && mod.__esModule) ? mod : { "default": mod };
4
4
  };
5
5
  Object.defineProperty(exports, "__esModule", { value: true });
6
- exports.MultiCombobox = void 0;
6
+ exports.MultiCombobox = MultiCombobox;
7
+ const empty_array_1 = require("@uxf/core/constants/empty-array");
7
8
  const is_empty_1 = require("@uxf/core/utils/is-empty");
8
9
  const is_nil_1 = require("@uxf/core/utils/is-nil");
10
+ const is_not_nil_1 = require("@uxf/core/utils/is-not-nil");
9
11
  const multi_combobox_1 = require("@uxf/ui/multi-combobox");
10
12
  const react_1 = __importDefault(require("react"));
11
13
  const react_hook_form_1 = require("react-hook-form");
12
14
  const form_id_context_1 = require("../form-id-context");
13
15
  function MultiCombobox(props) {
14
- var _a, _b, _c, _d, _e;
16
+ var _a, _b, _c, _d;
15
17
  const formId = (0, form_id_context_1.useFormIdContext)();
16
18
  const id = (_a = props.id) !== null && _a !== void 0 ? _a : `${formId}__${props.name}`;
17
19
  const { field, fieldState } = (0, react_hook_form_1.useController)({
@@ -19,7 +21,7 @@ function MultiCombobox(props) {
19
21
  name: props.name,
20
22
  rules: {
21
23
  required: props.isRequired ? props.requiredMessage || "Toto pole je povinné" : undefined,
22
- ...((_b = props.rules) !== null && _b !== void 0 ? _b : {}),
24
+ ...props.rules,
23
25
  },
24
26
  shouldUnregister: props.shouldUnregister,
25
27
  });
@@ -33,7 +35,7 @@ function MultiCombobox(props) {
33
35
  field.onChange(value);
34
36
  (_a = props.onChange) === null || _a === void 0 ? void 0 : _a.call(props, value, event);
35
37
  };
36
- return (react_1.default.createElement(multi_combobox_1.MultiCombobox, { allOptionsSelectedMessage: props.allOptionsSelectedMessage, className: props.className, dropdownClassName: props.dropdownClassName, dropdownMatchesInputWidth: props.dropdownMatchesInputWidth, dropdownMaxHeight: props.dropdownMaxHeight, dropdownPlacement: props.dropdownPlacement, dropdownStrategy: props.dropdownStrategy, 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, iconName: props.iconName, id: id, inputArrow: props.inputArrow, isDisabled: ((0, is_nil_1.isNil)(props.loadOptions) && (0, is_empty_1.isEmpty)((_e = props.options) !== null && _e !== void 0 ? _e : [])) || 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, noOptionsMessage: props.noOptionsMessage, noQueryMessage: props.noQueryMessage, notFoundMessage: props.notFoundMessage, onBlur: onBlur, onChange: onChange, onFocus: props.onFocus, options: props.options, placeholder: props.placeholder, ref: field.ref, renderOption: props.renderOption, rightAddon: props.rightAddon, rightElement: props.rightElement, size: props.size, style: props.style, value: field.value, variant: props.variant, withCheckboxes: props.withCheckboxes }));
38
+ const isDisabled = ((0, is_nil_1.isNil)(props.loadOptions) && (0, is_empty_1.isEmpty)((_b = props.options) !== null && _b !== void 0 ? _b : empty_array_1.EMPTY_ARRAY)) || props.isDisabled;
39
+ return (react_1.default.createElement(multi_combobox_1.MultiCombobox, { allOptionsSelectedMessage: props.allOptionsSelectedMessage, className: props.className, dropdownClassName: props.dropdownClassName, dropdownMatchesInputWidth: props.dropdownMatchesInputWidth, dropdownMaxHeight: props.dropdownMaxHeight, dropdownPlacement: props.dropdownPlacement, dropdownStrategy: props.dropdownStrategy, 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, iconName: props.iconName, id: id, inputArrow: props.inputArrow, isDisabled: isDisabled, isInvalid: (0, is_not_nil_1.isNotNil)(fieldState.error), isReadOnly: props.isReadOnly, isRequired: props.isRequired, label: props.label, leftAddon: props.leftAddon, leftElement: props.leftElement, loadOptions: props.loadOptions, name: field.name, noOptionsMessage: props.noOptionsMessage, noQueryMessage: props.noQueryMessage, notFoundMessage: props.notFoundMessage, onBlur: onBlur, onChange: onChange, onFocus: props.onFocus, options: props.options, placeholder: props.placeholder, ref: field.ref, renderOption: props.renderOption, rightAddon: props.rightAddon, rightElement: props.rightElement, size: props.size, style: props.style, value: field.value, variant: props.variant, withCheckboxes: props.withCheckboxes }));
37
40
  }
38
- exports.MultiCombobox = MultiCombobox;
39
41
  MultiCombobox.displayName = "UxfFormMultiCombobox";
@@ -3,7 +3,7 @@ var __importDefault = (this && this.__importDefault) || function (mod) {
3
3
  return (mod && mod.__esModule) ? mod : { "default": mod };
4
4
  };
5
5
  Object.defineProperty(exports, "__esModule", { value: true });
6
- exports.Default = void 0;
6
+ exports.Default = Default;
7
7
  const button_1 = require("@uxf/ui/button");
8
8
  const react_1 = __importDefault(require("react"));
9
9
  const storybook_form_1 = require("../storybook/storybook-form");
@@ -33,8 +33,8 @@ function Default() {
33
33
  react_1.default.createElement(multi_combobox_1.MultiCombobox, { control: control, helperText: "Za\u010Dn\u011Bte ps\u00E1t pro vyhled\u00E1v\u00E1n\u00ED...", id: "form-combobox", isRequired: true, label: "Combobox form required", name: "combobox-required", options: options, placeholder: "Vyberte..." }),
34
34
  react_1.default.createElement(multi_combobox_1.MultiCombobox, { control: control, id: "form-combobox", isDisabled: true, label: "Combobox form disabled", name: "combobox-disabled", options: options, placeholder: "Vyberte..." }),
35
35
  react_1.default.createElement(multi_combobox_1.MultiCombobox, { control: control, dropdownPlacement: "top", id: "form-combobox", label: "Combobox form with dropdown top", name: "select-dropdown-top", options: options, placeholder: "Vyberte..." }),
36
- react_1.default.createElement(multi_combobox_1.MultiCombobox, { control: control, dropdownPlacement: "top", id: "form-combobox", label: "Combobox async", name: "select-dropdown-async", loadOptions: (query) => Promise.resolve(options.filter((option) => !query || option.label.toLowerCase().includes(query.toLowerCase()))), placeholder: "Vyberte..." }),
37
- react_1.default.createElement(multi_combobox_1.MultiCombobox, { control: control, dropdownPlacement: "top", id: "form-combobox", label: "Combobox async with default values", name: "select-dropdown-async-default", loadOptions: (query) => Promise.resolve(options.filter((option) => !query || option.label.toLowerCase().includes(query.toLowerCase()))), placeholder: "Vyberte..." }),
36
+ react_1.default.createElement(multi_combobox_1.MultiCombobox, { control: control, dropdownPlacement: "top", id: "form-combobox", label: "Combobox async", loadOptions: (query) => Promise.resolve(options.filter((option) => !query || option.label.toLowerCase().includes(query.toLowerCase()))), name: "select-dropdown-async", placeholder: "Vyberte..." }),
37
+ react_1.default.createElement(multi_combobox_1.MultiCombobox, { control: control, dropdownPlacement: "top", id: "form-combobox", label: "Combobox async with default values", loadOptions: (query) => Promise.resolve(options.filter((option) => !query || option.label.toLowerCase().includes(query.toLowerCase()))), name: "select-dropdown-async-default", placeholder: "Vyberte..." }),
38
38
  react_1.default.createElement(button_1.Button, { type: "submit" }, "Submit")));
39
39
  return (react_1.default.createElement(storybook_form_1.StorybookForm, { defaultValues: {
40
40
  combobox1: [
@@ -52,4 +52,3 @@ function Default() {
52
52
  } }, ({ control }) => (react_1.default.createElement("div", { className: "flex flex-col lg:flex-row" },
53
53
  react_1.default.createElement("div", { className: "space-y-2 p-20 lg:w-1/2" }, storyFormComboboxes(control))))));
54
54
  }
55
- exports.Default = Default;
@@ -3,14 +3,15 @@ var __importDefault = (this && this.__importDefault) || function (mod) {
3
3
  return (mod && mod.__esModule) ? mod : { "default": mod };
4
4
  };
5
5
  Object.defineProperty(exports, "__esModule", { value: true });
6
- exports.MultiSelect = void 0;
6
+ exports.MultiSelect = MultiSelect;
7
7
  const is_empty_1 = require("@uxf/core/utils/is-empty");
8
+ const is_not_nil_1 = require("@uxf/core/utils/is-not-nil");
8
9
  const multi_select_1 = require("@uxf/ui/multi-select");
9
10
  const react_1 = __importDefault(require("react"));
10
11
  const react_hook_form_1 = require("react-hook-form");
11
12
  const form_id_context_1 = require("../form-id-context");
12
13
  function MultiSelect(props) {
13
- var _a, _b, _c, _d;
14
+ var _a, _b, _c;
14
15
  const formId = (0, form_id_context_1.useFormIdContext)();
15
16
  const id = (_a = props.id) !== null && _a !== void 0 ? _a : `${formId}__${props.name}`;
16
17
  const { field, fieldState } = (0, react_hook_form_1.useController)({
@@ -18,7 +19,7 @@ function MultiSelect(props) {
18
19
  name: props.name,
19
20
  rules: {
20
21
  required: props.isRequired ? props.requiredMessage || "Toto pole je povinné" : undefined,
21
- ...((_b = props.rules) !== null && _b !== void 0 ? _b : {}),
22
+ ...props.rules,
22
23
  },
23
24
  shouldUnregister: props.shouldUnregister,
24
25
  });
@@ -32,7 +33,6 @@ function MultiSelect(props) {
32
33
  field.onChange(value);
33
34
  (_a = props.onChange) === null || _a === void 0 ? void 0 : _a.call(props, value, event);
34
35
  };
35
- return (react_1.default.createElement(multi_select_1.MultiSelect, { allOptionsSelectedMessage: props.allOptionsSelectedMessage, className: props.className, dropdownClassName: props.dropdownClassName, dropdownMatchesInputWidth: props.dropdownMatchesInputWidth, dropdownMaxHeight: props.dropdownMaxHeight, dropdownPlacement: props.dropdownPlacement, dropdownStrategy: props.dropdownStrategy, 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, iconName: props.iconName, id: id, inputArrow: props.inputArrow, isDisabled: (0, is_empty_1.isEmpty)(props.options) || props.isDisabled, isInvalid: !!fieldState.error, isReadOnly: props.isReadOnly, isRequired: props.isRequired, label: props.label, leftAddon: props.leftAddon, leftElement: props.leftElement, name: field.name, noOptionsMessage: props.noOptionsMessage, onBlur: onBlur, onChange: onChange, onFocus: props.onFocus, options: props.options, placeholder: props.placeholder, ref: field.ref, renderOption: props.renderOption, rightAddon: props.rightAddon, rightElement: props.rightElement, size: props.size, style: props.style, value: field.value, variant: props.variant, withCheckboxes: props.withCheckboxes }));
36
+ return (react_1.default.createElement(multi_select_1.MultiSelect, { allOptionsSelectedMessage: props.allOptionsSelectedMessage, className: props.className, dropdownClassName: props.dropdownClassName, dropdownMatchesInputWidth: props.dropdownMatchesInputWidth, dropdownMaxHeight: props.dropdownMaxHeight, dropdownPlacement: props.dropdownPlacement, dropdownStrategy: props.dropdownStrategy, 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, iconName: props.iconName, id: id, inputArrow: props.inputArrow, isDisabled: (0, is_empty_1.isEmpty)(props.options) || props.isDisabled, isInvalid: (0, is_not_nil_1.isNotNil)(fieldState.error), isReadOnly: props.isReadOnly, isRequired: props.isRequired, label: props.label, leftAddon: props.leftAddon, leftElement: props.leftElement, name: field.name, noOptionsMessage: props.noOptionsMessage, onBlur: onBlur, onChange: onChange, onFocus: props.onFocus, options: props.options, placeholder: props.placeholder, ref: field.ref, renderOption: props.renderOption, rightAddon: props.rightAddon, rightElement: props.rightElement, size: props.size, style: props.style, value: field.value, variant: props.variant, withCheckboxes: props.withCheckboxes }));
36
37
  }
37
- exports.MultiSelect = MultiSelect;
38
38
  MultiSelect.displayName = "UxfFormMultiSelect";
@@ -3,7 +3,7 @@ var __importDefault = (this && this.__importDefault) || function (mod) {
3
3
  return (mod && mod.__esModule) ? mod : { "default": mod };
4
4
  };
5
5
  Object.defineProperty(exports, "__esModule", { value: true });
6
- exports.Default = void 0;
6
+ exports.Default = Default;
7
7
  const button_1 = require("@uxf/ui/button");
8
8
  const react_1 = __importDefault(require("react"));
9
9
  const storybook_form_1 = require("../storybook/storybook-form");
@@ -28,7 +28,7 @@ const options = [
28
28
  ];
29
29
  function Default() {
30
30
  const storyFormMultiSelect = (control) => (react_1.default.createElement("div", { className: "space-y-8" },
31
- react_1.default.createElement(multi_select_1.MultiSelect, { control: control, dropdownMaxHeight: 350, helperText: "Vyberte pros\u00EDm jednu nebo v\u00EDce mo\u017Enost\u00ED", id: "form-multi-select", label: "MultiSelect with disabled option", name: "multi-select-with-disabled", isRequired: true, options: options, placeholder: "Vyberte..." }),
31
+ react_1.default.createElement(multi_select_1.MultiSelect, { control: control, dropdownMaxHeight: 350, helperText: "Vyberte pros\u00EDm jednu nebo v\u00EDce mo\u017Enost\u00ED", id: "form-multi-select", isRequired: true, label: "MultiSelect with disabled option", name: "multi-select-with-disabled", options: options, placeholder: "Vyberte..." }),
32
32
  react_1.default.createElement(multi_select_1.MultiSelect, { control: control, id: "form-multi-select", label: "MultiSelect", name: "multi-select", options: options, placeholder: "Vyberte..." }),
33
33
  react_1.default.createElement(multi_select_1.MultiSelect, { control: control, id: "form-multi-select-required", label: "MultiSelect required", name: "multi-select-required", options: options, placeholder: "Vyberte..." }),
34
34
  react_1.default.createElement(button_1.Button, { type: "submit" }, "Submit")));
@@ -45,4 +45,3 @@ function Default() {
45
45
  } }, ({ control }) => (react_1.default.createElement("div", { className: "flex flex-col lg:flex-row" },
46
46
  react_1.default.createElement("div", { className: "space-y-2 p-20 lg:w-1/2" }, storyFormMultiSelect(control))))));
47
47
  }
48
- exports.Default = Default;
@@ -3,13 +3,14 @@ var __importDefault = (this && this.__importDefault) || function (mod) {
3
3
  return (mod && mod.__esModule) ? mod : { "default": mod };
4
4
  };
5
5
  Object.defineProperty(exports, "__esModule", { value: true });
6
- exports.NumberInput = void 0;
6
+ exports.NumberInput = NumberInput;
7
+ const is_not_nil_1 = require("@uxf/core/utils/is-not-nil");
7
8
  const text_input_1 = require("@uxf/ui/text-input");
8
9
  const react_1 = __importDefault(require("react"));
9
10
  const react_hook_form_1 = require("react-hook-form");
10
11
  const form_id_context_1 = require("../form-id-context");
11
12
  function NumberInput(props) {
12
- var _a, _b, _c, _d, _e, _f, _g;
13
+ var _a, _b, _c, _d, _e, _f;
13
14
  const formId = (0, form_id_context_1.useFormIdContext)();
14
15
  const id = (_a = props.id) !== null && _a !== void 0 ? _a : `${formId}__${props.name}`;
15
16
  const { field, fieldState } = (0, react_hook_form_1.useController)({
@@ -29,7 +30,7 @@ function NumberInput(props) {
29
30
  }
30
31
  : undefined,
31
32
  required: props.isRequired ? props.requiredMessage || "Toto pole je povinné" : undefined,
32
- ...((_d = props.rules) !== null && _d !== void 0 ? _d : {}),
33
+ ...props.rules,
33
34
  },
34
35
  shouldUnregister: props.shouldUnregister,
35
36
  });
@@ -63,7 +64,6 @@ function NumberInput(props) {
63
64
  field.onChange(returnValue);
64
65
  (_a = props.onChange) === null || _a === void 0 ? void 0 : _a.call(props, returnValue, event);
65
66
  };
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: (_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.decimalPlaces ? "decimal" : "numeric", isDisabled: props.isDisabled, isInvalid: !!fieldState.error, isReadOnly: props.isReadOnly, isRequired: props.isRequired, label: props.label, leftAddon: props.leftAddon, leftElement: props.leftElement, max: props.max, min: props.min, 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, style: props.style, type: "number", value: (_g = field.value) !== null && _g !== void 0 ? _g : "", variant: props.variant }));
67
+ 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: (_e = (_d = fieldState.error) === null || _d === void 0 ? void 0 : _d.message) !== null && _e !== void 0 ? _e : props.helperText, hiddenLabel: props.hiddenLabel, id: id, inputMode: props.decimalPlaces ? "decimal" : "numeric", isDisabled: props.isDisabled, isInvalid: (0, is_not_nil_1.isNotNil)(fieldState.error), isReadOnly: props.isReadOnly, isRequired: props.isRequired, label: props.label, leftAddon: props.leftAddon, leftElement: props.leftElement, max: props.max, min: props.min, name: field.name, onBlur: onBlur, onChange: onChange, onFocus: props.onFocus, onKeyDown: onKeyDown, pattern: props.pattern, placeholder: props.placeholder, ref: field.ref, rightAddon: props.rightAddon, rightElement: props.rightElement, size: props.size, step: props.decimalPlaces ? Number(0).toFixed(props.decimalPlaces - 1) + "1" : props.step, style: props.style, type: "number", value: (_f = field.value) !== null && _f !== void 0 ? _f : "", variant: props.variant }));
67
68
  }
68
- exports.NumberInput = NumberInput;
69
69
  NumberInput.displayName = "UxfFormNumberInput";
@@ -3,7 +3,7 @@ var __importDefault = (this && this.__importDefault) || function (mod) {
3
3
  return (mod && mod.__esModule) ? mod : { "default": mod };
4
4
  };
5
5
  Object.defineProperty(exports, "__esModule", { value: true });
6
- exports.Default = void 0;
6
+ exports.Default = Default;
7
7
  const button_1 = require("@uxf/ui/button");
8
8
  const react_1 = __importDefault(require("react"));
9
9
  const storybook_form_1 = require("../storybook/storybook-form");
@@ -14,12 +14,11 @@ exports.default = {
14
14
  };
15
15
  function Default() {
16
16
  const storyFormNumberInputs = (control) => (react_1.default.createElement("div", { className: "light mb-4 space-y-4 p-4" },
17
- react_1.default.createElement(number_input_1.NumberInput, { label: "Default input", name: "default", control: control }),
18
- react_1.default.createElement(number_input_1.NumberInput, { label: "Required input", name: "required", control: control, isRequired: true }),
19
- react_1.default.createElement(number_input_1.NumberInput, { label: "Dec\u00EDmal input", name: "decimal", decimalPlaces: 3, control: control }),
20
- react_1.default.createElement(number_input_1.NumberInput, { label: "max50 input", name: "max50", max: 50, control: control }),
17
+ react_1.default.createElement(number_input_1.NumberInput, { control: control, label: "Default input", name: "default" }),
18
+ react_1.default.createElement(number_input_1.NumberInput, { control: control, isRequired: true, label: "Required input", name: "required" }),
19
+ react_1.default.createElement(number_input_1.NumberInput, { control: control, decimalPlaces: 3, label: "Dec\u00EDmal input", name: "decimal" }),
20
+ react_1.default.createElement(number_input_1.NumberInput, { control: control, label: "max50 input", max: 50, name: "max50" }),
21
21
  react_1.default.createElement(button_1.Button, { type: "submit" }, "Submit")));
22
22
  return (react_1.default.createElement(storybook_form_1.StorybookForm, null, ({ control }) => (react_1.default.createElement("div", { className: "flex flex-col lg:flex-row" },
23
23
  react_1.default.createElement("div", { className: "space-y-2 p-20 lg:w-1/2" }, storyFormNumberInputs(control))))));
24
24
  }
25
- exports.Default = Default;
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@uxf/form",
3
- "version": "11.31.2",
3
+ "version": "11.32.0",
4
4
  "description": "",
5
5
  "publishConfig": {
6
6
  "access": "public"
@@ -15,19 +15,19 @@
15
15
  },
16
16
  "license": "MIT",
17
17
  "dependencies": {
18
- "@uxf/ui": "11.31.0",
18
+ "@uxf/ui": "11.32.0",
19
19
  "coordinate-parser": "1.0.7",
20
- "dayjs": "1.11.10",
21
- "react-hook-form": "7.51.0"
20
+ "dayjs": "1.11.13",
21
+ "react-hook-form": "7.53.0"
22
22
  },
23
23
  "peerDependencies": {
24
24
  "react": ">=18.2.0",
25
25
  "react-dom": ">=18.2.0"
26
26
  },
27
27
  "devDependencies": {
28
- "@types/react": "18.2.63",
29
- "@types/react-dom": "18.2.19",
30
- "react": "18.2.0",
31
- "react-dom": "18.2.0"
28
+ "@types/react": "18.3.5",
29
+ "@types/react-dom": "18.3.0",
30
+ "react": "18.3.1",
31
+ "react-dom": "18.3.1"
32
32
  }
33
33
  }
@@ -23,10 +23,11 @@ var __importStar = (this && this.__importStar) || function (mod) {
23
23
  return result;
24
24
  };
25
25
  Object.defineProperty(exports, "__esModule", { value: true });
26
- exports.PasswordInput = void 0;
26
+ exports.PasswordInput = PasswordInput;
27
27
  const use_on_unmount_1 = require("@uxf/core-react/hooks/use-on-unmount");
28
28
  const compose_refs_1 = require("@uxf/core-react/utils/compose-refs");
29
29
  const is_nil_1 = require("@uxf/core/utils/is-nil");
30
+ const is_not_nil_1 = require("@uxf/core/utils/is-not-nil");
30
31
  const button_1 = require("@uxf/ui/button");
31
32
  const icon_1 = require("@uxf/ui/icon");
32
33
  const text_input_1 = require("@uxf/ui/text-input");
@@ -55,7 +56,7 @@ function usePasswordVisibility() {
55
56
  return { isVisible, inputRef, onToggle: visibilityChangeHandler };
56
57
  }
57
58
  function PasswordInput(props) {
58
- var _a, _b, _c, _d, _e, _f, _g;
59
+ var _a, _b, _c, _d, _e, _f;
59
60
  const formId = (0, form_id_context_1.useFormIdContext)();
60
61
  const id = (_a = props.id) !== null && _a !== void 0 ? _a : `${formId}__${props.name}`;
61
62
  const { field, fieldState } = (0, react_hook_form_1.useController)({
@@ -71,7 +72,7 @@ function PasswordInput(props) {
71
72
  }
72
73
  : undefined,
73
74
  required: props.isRequired ? props.requiredMessage || "Toto pole je povinné" : undefined,
74
- ...((_b = props.rules) !== null && _b !== void 0 ? _b : {}),
75
+ ...props.rules,
75
76
  },
76
77
  });
77
78
  const passwordVisibility = usePasswordVisibility();
@@ -86,8 +87,7 @@ function PasswordInput(props) {
86
87
  field.onChange(value);
87
88
  (_a = props.onChange) === null || _a === void 0 ? void 0 : _a.call(props, value, event);
88
89
  };
89
- 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.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, pattern: props.pattern, placeholder: props.placeholder, ref: inputRef, rightAddon: props.rightAddon, rightElement: (_f = (_e = props.renderVisibilitySetter) === null || _e === void 0 ? void 0 : _e.call(props, passwordVisibility.isVisible, passwordVisibility.onToggle)) !== null && _f !== void 0 ? _f : (react_1.default.createElement(button_1.Button, { onClick: passwordVisibility.onToggle, size: "sm", variant: "text" },
90
- react_1.default.createElement(icon_1.Icon, { size: 20, name: passwordVisibility.isVisible ? "eye-slash" : "eye" }))), size: props.size, style: props.style, type: passwordVisibility.isVisible ? "text" : "password", value: (_g = field.value) !== null && _g !== void 0 ? _g : "", variant: props.variant }));
90
+ 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: (_c = (_b = fieldState.error) === null || _b === void 0 ? void 0 : _b.message) !== null && _c !== void 0 ? _c : props.helperText, hiddenLabel: props.hiddenLabel, id: id, inputMode: props.inputMode, isDisabled: props.isDisabled, isInvalid: (0, is_not_nil_1.isNotNil)(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, pattern: props.pattern, placeholder: props.placeholder, ref: inputRef, rightAddon: props.rightAddon, rightElement: (_e = (_d = props.renderVisibilitySetter) === null || _d === void 0 ? void 0 : _d.call(props, passwordVisibility.isVisible, passwordVisibility.onToggle)) !== null && _e !== void 0 ? _e : (react_1.default.createElement(button_1.Button, { onClick: passwordVisibility.onToggle, size: "sm", variant: "text" },
91
+ react_1.default.createElement(icon_1.Icon, { name: passwordVisibility.isVisible ? "eye-slash" : "eye", size: 20 }))), size: props.size, style: props.style, type: passwordVisibility.isVisible ? "text" : "password", value: (_f = field.value) !== null && _f !== void 0 ? _f : "", variant: props.variant }));
91
92
  }
92
- exports.PasswordInput = PasswordInput;
93
93
  PasswordInput.displayName = "UxfFormPasswordInput";
@@ -3,7 +3,7 @@ var __importDefault = (this && this.__importDefault) || function (mod) {
3
3
  return (mod && mod.__esModule) ? mod : { "default": mod };
4
4
  };
5
5
  Object.defineProperty(exports, "__esModule", { value: true });
6
- exports.Default = void 0;
6
+ exports.Default = Default;
7
7
  const button_1 = require("@uxf/ui/button");
8
8
  const react_1 = __importDefault(require("react"));
9
9
  const storybook_form_1 = require("../storybook/storybook-form");
@@ -15,10 +15,9 @@ exports.default = {
15
15
  function Default() {
16
16
  const storyFormPasswordInputs = (control) => (react_1.default.createElement("div", { className: "mb-4 space-y-4 p-4" },
17
17
  react_1.default.createElement(password_input_1.PasswordInput, { control: control, label: "Default input", name: "default" }),
18
- react_1.default.createElement(password_input_1.PasswordInput, { control: control, label: "Min length 8", minLength: 12, name: "minLength", isRequired: true }),
19
- react_1.default.createElement(password_input_1.PasswordInput, { control: control, label: "Required input", name: "required", isRequired: true }),
18
+ react_1.default.createElement(password_input_1.PasswordInput, { control: control, isRequired: true, label: "Min length 8", minLength: 12, name: "minLength" }),
19
+ react_1.default.createElement(password_input_1.PasswordInput, { control: control, isRequired: true, label: "Required input", name: "required" }),
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: "space-y-2 p-20 lg:w-1/2" }, storyFormPasswordInputs(control))))));
23
23
  }
24
- exports.Default = Default;
@@ -3,13 +3,14 @@ var __importDefault = (this && this.__importDefault) || function (mod) {
3
3
  return (mod && mod.__esModule) ? mod : { "default": mod };
4
4
  };
5
5
  Object.defineProperty(exports, "__esModule", { value: true });
6
- exports.RadioGroup = void 0;
6
+ exports.RadioGroup = RadioGroup;
7
+ const is_not_nil_1 = require("@uxf/core/utils/is-not-nil");
7
8
  const radio_group_1 = require("@uxf/ui/radio-group");
8
9
  const react_1 = __importDefault(require("react"));
9
10
  const react_hook_form_1 = require("react-hook-form");
10
11
  const form_id_context_1 = require("../form-id-context");
11
12
  function RadioGroup(props) {
12
- var _a, _b, _c, _d, _e;
13
+ var _a, _b, _c, _d;
13
14
  const formId = (0, form_id_context_1.useFormIdContext)();
14
15
  const id = (_a = props.id) !== null && _a !== void 0 ? _a : `${formId}__${props.name}`;
15
16
  const { field, fieldState } = (0, react_hook_form_1.useController)({
@@ -17,7 +18,7 @@ function RadioGroup(props) {
17
18
  name: props.name,
18
19
  rules: {
19
20
  required: props.isRequired ? props.requiredMessage || "Toto pole je povinné" : undefined,
20
- ...((_b = props.rules) !== null && _b !== void 0 ? _b : {}),
21
+ ...props.rules,
21
22
  },
22
23
  shouldUnregister: props.shouldUnregister,
23
24
  });
@@ -31,7 +32,6 @@ function RadioGroup(props) {
31
32
  field.onChange(value);
32
33
  (_a = props.onChange) === null || _a === void 0 ? void 0 : _a.call(props, value, event);
33
34
  };
34
- 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, radioSize: props.radioSize, 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: (_c = (_b = fieldState.error) === null || _b === void 0 ? void 0 : _b.message) !== null && _c !== void 0 ? _c : props.helperText, hiddenLabel: props.hiddenLabel, id: id, isDisabled: props.options.length === 0 || props.isDisabled, isInvalid: (0, is_not_nil_1.isNotNil)(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: (_d = field.value) !== null && _d !== void 0 ? _d : null, variant: props.variant }));
35
36
  }
36
- exports.RadioGroup = RadioGroup;
37
37
  RadioGroup.displayName = "UxfFormRadioGroup";
@@ -3,7 +3,7 @@ var __importDefault = (this && this.__importDefault) || function (mod) {
3
3
  return (mod && mod.__esModule) ? mod : { "default": mod };
4
4
  };
5
5
  Object.defineProperty(exports, "__esModule", { value: true });
6
- exports.Default = void 0;
6
+ exports.Default = Default;
7
7
  const button_1 = require("@uxf/ui/button");
8
8
  const react_1 = __importDefault(require("react"));
9
9
  const storybook_form_1 = require("../storybook/storybook-form");
@@ -36,4 +36,3 @@ function Default() {
36
36
  return (react_1.default.createElement(storybook_form_1.StorybookForm, null, ({ control }) => (react_1.default.createElement("div", { className: "flex flex-col lg:flex-row" },
37
37
  react_1.default.createElement("div", { className: "space-y-2 p-20 lg:w-1/2" }, storyFormRadioGroup(control))))));
38
38
  }
39
- exports.Default = Default;
package/readmes.d.ts CHANGED
@@ -1,4 +1,3 @@
1
- /// <reference types="mdx" />
2
1
  import avatarFileInputReadme from "./avatar-file-input/README.md";
3
2
  export declare const readmes: {
4
3
  readonly "avatar-file-input": typeof avatarFileInputReadme;