@uxf/form 1.0.0-beta.158 → 1.0.0-beta.160

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 (46) hide show
  1. package/avatar-file-input/avatar-file-input.js +6 -3
  2. package/avatar-file-input/avatar-file-input.stories.js +2 -2
  3. package/checkbox-button/checkbox-button.js +6 -3
  4. package/checkbox-button/checkbox-button.stories.js +2 -2
  5. package/checkbox-input/checkbox-input.js +6 -3
  6. package/checkbox-input/checkbox-input.stories.js +2 -2
  7. package/color-radio-group/color-radio-group.js +6 -3
  8. package/color-radio-group/color-radio-group.stories.js +2 -2
  9. package/combobox/combobox.js +6 -3
  10. package/combobox/combobox.stories.js +2 -2
  11. package/date-picker-input/date-picker-input.js +8 -5
  12. package/date-picker-input/date-picker-input.stories.js +2 -2
  13. package/dropzone/dropzone-input.js +7 -4
  14. package/dropzone/dropzone.stories.js +2 -2
  15. package/file-input/file-input.js +6 -3
  16. package/file-input/file-input.stories.js +2 -2
  17. package/form/form.d.ts +9 -12
  18. package/form/form.js +9 -39
  19. package/form/form.stories.js +10 -7
  20. package/form-id-context/form-id-context.d.ts +3 -0
  21. package/form-id-context/form-id-context.js +8 -0
  22. package/form-id-context/index.d.ts +1 -0
  23. package/form-id-context/index.js +17 -0
  24. package/gps-input/gps-input.js +7 -4
  25. package/gps-input/gps-input.stories.js +2 -2
  26. package/multi-combobox/multi-combobox.js +6 -3
  27. package/multi-combobox/multi-combobox.stories.js +2 -2
  28. package/multi-select/multi-select.js +6 -3
  29. package/multi-select/multi-select.stories.js +2 -2
  30. package/number-input/number-input.js +6 -3
  31. package/number-input/number-input.stories.js +2 -2
  32. package/package.json +2 -2
  33. package/radio-group/radio-group.js +6 -3
  34. package/radio-group/radio-group.stories.js +2 -2
  35. package/select/select.js +6 -3
  36. package/select/select.stories.js +8 -2
  37. package/storybook/{form.d.ts → storybook-form.d.ts} +1 -1
  38. package/storybook/{form.js → storybook-form.js} +5 -4
  39. package/text-input/text-input.js +8 -5
  40. package/text-input/text-input.stories.js +2 -2
  41. package/textarea/textarea.js +6 -3
  42. package/textarea/textarea.stories.js +2 -2
  43. package/time-picker-input/time-picker-input.js +8 -5
  44. package/time-picker-input/time-picker-input.stories.js +2 -2
  45. package/toggle/toggle.js +6 -3
  46. package/toggle/toggle.stories.js +2 -2
@@ -32,6 +32,7 @@ const react_hook_form_1 = require("react-hook-form");
32
32
  const react_1 = __importStar(require("react"));
33
33
  const coordinate_parser_1 = __importDefault(require("coordinate-parser"));
34
34
  const tooltip_1 = require("@uxf/ui/tooltip");
35
+ const form_id_context_1 = require("../form-id-context");
35
36
  const SUPPORTED_FORMATS = (react_1.default.createElement("div", null,
36
37
  "40.123, -74.123",
37
38
  react_1.default.createElement("br", null),
@@ -85,7 +86,9 @@ const SUPPORTED_FORMATS_TOOLTIP = (react_1.default.createElement("span", { class
85
86
  const EMPTY_HELPER_TEXT = "Zadejte souřadnice.";
86
87
  const NOT_VALID_HELPER_TEXT = "Souřadnice nejsou validní";
87
88
  function GpsInput(props) {
88
- var _a, _b, _c;
89
+ var _a, _b, _c, _d;
90
+ const formId = (0, form_id_context_1.useFormIdContext)();
91
+ const id = (_a = props.id) !== null && _a !== void 0 ? _a : `${formId}__${props.name}`;
89
92
  const [visualValue, setVisualValue] = (0, react_1.useState)("");
90
93
  const [coordsFormatError, setCoordsFormatError] = (0, react_1.useState)(false);
91
94
  const { field, fieldState } = (0, react_hook_form_1.useController)({
@@ -93,9 +96,9 @@ function GpsInput(props) {
93
96
  defaultValue: props.defaultValue,
94
97
  name: props.name,
95
98
  rules: {
96
- ...((_a = props.rules) !== null && _a !== void 0 ? _a : {}),
99
+ ...((_b = props.rules) !== null && _b !== void 0 ? _b : {}),
97
100
  validate: {
98
- ...((_c = (_b = props.rules) === null || _b === void 0 ? void 0 : _b.validate) !== null && _c !== void 0 ? _c : {}),
101
+ ...((_d = (_c = props.rules) === null || _c === void 0 ? void 0 : _c.validate) !== null && _d !== void 0 ? _d : {}),
99
102
  req: (value) => {
100
103
  var _a;
101
104
  return props.isRequired && value === undefined
@@ -144,7 +147,7 @@ function GpsInput(props) {
144
147
  : EMPTY_HELPER_TEXT,
145
148
  " ",
146
149
  SUPPORTED_FORMATS_TOOLTIP));
147
- return (react_1.default.createElement(text_input_1.TextInput, { autoComplete: props.autoComplete, className: props.className, enterKeyHint: props.enterKeyHint, form: props.form, helperText: composedHelperText, hiddenLabel: props.hiddenLabel, id: props.id, inputMode: props.inputMode, isDisabled: props.isDisabled, isInvalid: (!!fieldState.error && !field.value) || coordsFormatError, isReadOnly: props.isReadOnly, isRequired: props.isRequired, label: props.label, leftAddon: props.leftAddon, leftElement: props.leftElement, maxLength: props.maxLength, minLength: props.minLength, name: field.name, onBlur: onBlur, onChange: onChange, onFocus: props.onFocus, onKeyDown: props.onKeyDown, placeholder: props.placeholder, ref: field.ref, rightAddon: props.rightAddon, rightElement: props.rightElement, size: props.size, type: "text", value: visualValue, variant: props.variant }));
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 }));
148
151
  }
149
152
  exports.GpsInput = GpsInput;
150
153
  GpsInput.displayName = "UxfFormGpsInput";
@@ -6,7 +6,7 @@ Object.defineProperty(exports, "__esModule", { value: true });
6
6
  exports.Default = void 0;
7
7
  const react_1 = __importDefault(require("react"));
8
8
  const gps_input_1 = require("./gps-input");
9
- const form_1 = require("../storybook/form");
9
+ const storybook_form_1 = require("../storybook/storybook-form");
10
10
  const button_1 = require("@uxf/ui/button");
11
11
  exports.default = {
12
12
  title: "Form/GpsInput",
@@ -17,7 +17,7 @@ function Default() {
17
17
  react_1.default.createElement(gps_input_1.GpsInput, { placeholder: "Zadejte sou\u0159adnice...", label: "GPS", name: "gps", control: control }),
18
18
  react_1.default.createElement(gps_input_1.GpsInput, { placeholder: "Zadejte sou\u0159adnice...", label: "GPS", name: "gps-required", control: control, isRequired: true }),
19
19
  react_1.default.createElement(button_1.Button, { type: "submit" }, "Submit")));
20
- return (react_1.default.createElement(form_1.Form, null, ({ control }) => (react_1.default.createElement("div", { className: "flex flex-col lg:flex-row" },
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: "light space-y-2 p-20 lg:w-1/2" }, storyFormGpsInputs(control)),
22
22
  react_1.default.createElement("div", { className: "dark space-y-2 bg-gray-900 p-20 lg:w-1/2" }, storyFormGpsInputs(control))))));
23
23
  }
@@ -7,15 +7,18 @@ exports.MultiCombobox = void 0;
7
7
  const multi_combobox_1 = require("@uxf/ui/multi-combobox");
8
8
  const react_1 = __importDefault(require("react"));
9
9
  const react_hook_form_1 = require("react-hook-form");
10
+ const form_id_context_1 = require("../form-id-context");
10
11
  function MultiCombobox(props) {
11
- var _a, _b, _c, _d;
12
+ var _a, _b, _c, _d, _e;
13
+ const formId = (0, form_id_context_1.useFormIdContext)();
14
+ const id = (_a = props.id) !== null && _a !== void 0 ? _a : `${formId}__${props.name}`;
12
15
  const { field, fieldState } = (0, react_hook_form_1.useController)({
13
16
  control: props.control,
14
17
  defaultValue: props.defaultValue,
15
18
  name: props.name,
16
19
  rules: {
17
20
  required: props.isRequired ? props.requiredMessage || "Toto pole je povinné" : undefined,
18
- ...((_a = props.rules) !== null && _a !== void 0 ? _a : {}),
21
+ ...((_b = props.rules) !== null && _b !== void 0 ? _b : {}),
19
22
  },
20
23
  shouldUnregister: props.shouldUnregister,
21
24
  });
@@ -29,7 +32,7 @@ function MultiCombobox(props) {
29
32
  field.onChange(value);
30
33
  (_a = props.onChange) === null || _a === void 0 ? void 0 : _a.call(props, value, event);
31
34
  };
32
- return (react_1.default.createElement(multi_combobox_1.MultiCombobox, { className: props.className, dropdownPlacement: props.dropdownPlacement, helperText: (_c = (_b = fieldState.error) === null || _b === void 0 ? void 0 : _b.message) !== null && _c !== void 0 ? _c : props.helperText, hiddenLabel: props.hiddenLabel, id: props.id, isDisabled: ((_d = props.options) === null || _d === void 0 ? void 0 : _d.length) === 0 || props.isDisabled, isInvalid: !!fieldState.error, isReadOnly: props.isReadOnly, isRequired: props.isRequired, label: props.label, loadOptions: props.loadOptions, name: field.name, onBlur: onBlur, onChange: onChange, onFocus: props.onFocus, options: props.options, placeholder: props.placeholder, ref: field.ref, value: field.value, withCheckboxes: props.withCheckboxes }));
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 }));
33
36
  }
34
37
  exports.MultiCombobox = MultiCombobox;
35
38
  MultiCombobox.displayName = "UxfFormMultiCombobox";
@@ -6,7 +6,7 @@ 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 form_1 = require("../storybook/form");
9
+ const storybook_form_1 = require("../storybook/storybook-form");
10
10
  const multi_combobox_1 = require("./multi-combobox");
11
11
  exports.default = {
12
12
  title: "Form/MultiCombobox",
@@ -30,7 +30,7 @@ function Default() {
30
30
  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..." }),
31
31
  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..." }),
32
32
  react_1.default.createElement(button_1.Button, { type: "submit" }, "Submit")));
33
- return (react_1.default.createElement(form_1.Form, { defaultValues: {
33
+ return (react_1.default.createElement(storybook_form_1.StorybookForm, { defaultValues: {
34
34
  combobox1: [
35
35
  { id: "one", label: "Option one" },
36
36
  { id: "two", label: "Option two" },
@@ -7,15 +7,18 @@ exports.MultiSelect = void 0;
7
7
  const multi_select_1 = require("@uxf/ui/multi-select");
8
8
  const react_1 = __importDefault(require("react"));
9
9
  const react_hook_form_1 = require("react-hook-form");
10
+ const form_id_context_1 = require("../form-id-context");
10
11
  function MultiSelect(props) {
11
- var _a, _b, _c;
12
+ var _a, _b, _c, _d;
13
+ const formId = (0, form_id_context_1.useFormIdContext)();
14
+ const id = (_a = props.id) !== null && _a !== void 0 ? _a : `${formId}__${props.name}`;
12
15
  const { field, fieldState } = (0, react_hook_form_1.useController)({
13
16
  control: props.control,
14
17
  defaultValue: props.defaultValue,
15
18
  name: props.name,
16
19
  rules: {
17
20
  required: props.isRequired ? props.requiredMessage || "Toto pole je povinné" : undefined,
18
- ...((_a = props.rules) !== null && _a !== void 0 ? _a : {}),
21
+ ...((_b = props.rules) !== null && _b !== void 0 ? _b : {}),
19
22
  },
20
23
  shouldUnregister: props.shouldUnregister,
21
24
  });
@@ -29,7 +32,7 @@ function MultiSelect(props) {
29
32
  field.onChange(value);
30
33
  (_a = props.onChange) === null || _a === void 0 ? void 0 : _a.call(props, value, event);
31
34
  };
32
- return (react_1.default.createElement(multi_select_1.MultiSelect, { className: props.className, dropdownPlacement: props.dropdownPlacement, helperText: (_c = (_b = fieldState.error) === null || _b === void 0 ? void 0 : _b.message) !== null && _c !== void 0 ? _c : props.helperText, hiddenLabel: props.hiddenLabel, id: props.id, isDisabled: props.options.length === 0 || props.isDisabled, isInvalid: !!fieldState.error, isReadOnly: props.isReadOnly, isRequired: props.isRequired, label: props.label, name: field.name, onBlur: onBlur, onChange: onChange, onFocus: props.onFocus, options: props.options, placeholder: props.placeholder, ref: field.ref, value: field.value, withPopover: props.withPopover }));
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 }));
33
36
  }
34
37
  exports.MultiSelect = MultiSelect;
35
38
  MultiSelect.displayName = "UxfFormMultiSelect";
@@ -6,7 +6,7 @@ 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 form_1 = require("../storybook/form");
9
+ const storybook_form_1 = require("../storybook/storybook-form");
10
10
  const multi_select_1 = require("./multi-select");
11
11
  exports.default = {
12
12
  title: "Form/MultiSelect",
@@ -25,7 +25,7 @@ function Default() {
25
25
  react_1.default.createElement(multi_select_1.MultiSelect, { control: control, helperText: "Vyberte pros\u00EDm jednu nebo v\u00EDce mo\u017Enost\u00ED", id: "form-multi-select", label: "MultiSelect form", name: "multi-select", options: options, placeholder: "Vyberte..." }),
26
26
  react_1.default.createElement(multi_select_1.MultiSelect, { control: control, id: "form-multi-select", label: "MultiSelect with popover", name: "multi-select-with-popover", options: options, placeholder: "Vyberte...", withPopover: true }),
27
27
  react_1.default.createElement(button_1.Button, { type: "submit" }, "Submit")));
28
- return (react_1.default.createElement(form_1.Form, { defaultValues: {
28
+ return (react_1.default.createElement(storybook_form_1.StorybookForm, { defaultValues: {
29
29
  "multi-select": [
30
30
  { id: "one", label: "Option one" },
31
31
  { id: "two", label: "Option two" },
@@ -7,8 +7,11 @@ exports.NumberInput = void 0;
7
7
  const text_input_1 = require("@uxf/ui/text-input");
8
8
  const react_hook_form_1 = require("react-hook-form");
9
9
  const react_1 = __importDefault(require("react"));
10
+ const form_id_context_1 = require("../form-id-context");
10
11
  function NumberInput(props) {
11
- var _a, _b, _c, _d;
12
+ var _a, _b, _c, _d, _e;
13
+ const formId = (0, form_id_context_1.useFormIdContext)();
14
+ const id = (_a = props.id) !== null && _a !== void 0 ? _a : `${formId}__${props.name}`;
12
15
  const { field, fieldState } = (0, react_hook_form_1.useController)({
13
16
  control: props.control,
14
17
  defaultValue: props.defaultValue,
@@ -27,7 +30,7 @@ function NumberInput(props) {
27
30
  }
28
31
  : undefined,
29
32
  required: props.isRequired ? props.requiredMessage || "Toto pole je povinné" : undefined,
30
- ...((_a = props.rules) !== null && _a !== void 0 ? _a : {}),
33
+ ...((_b = props.rules) !== null && _b !== void 0 ? _b : {}),
31
34
  },
32
35
  shouldUnregister: props.shouldUnregister,
33
36
  });
@@ -48,7 +51,7 @@ function NumberInput(props) {
48
51
  field.onChange(value);
49
52
  (_a = props.onChange) === null || _a === void 0 ? void 0 : _a.call(props, value, event);
50
53
  };
51
- return (react_1.default.createElement(text_input_1.TextInput, { autoComplete: props.autoComplete, className: props.className, enterKeyHint: props.enterKeyHint, form: props.form, helperText: (_c = (_b = fieldState.error) === null || _b === void 0 ? void 0 : _b.message) !== null && _c !== void 0 ? _c : props.helperText, hiddenLabel: props.hiddenLabel, id: props.id, inputMode: props.decimalPlaces ? "decimal" : "numeric", isDisabled: props.isDisabled, isInvalid: !!fieldState.error, isReadOnly: props.isReadOnly, isRequired: props.isRequired, label: props.label, leftAddon: props.leftAddon, leftElement: props.leftElement, name: field.name, onBlur: onBlur, onChange: onChange, onFocus: props.onFocus, onKeyDown: onKeyDown, pattern: props.pattern, placeholder: props.placeholder, step: props.decimalPlaces ? Number(0).toFixed(props.decimalPlaces - 1) + "1" : props.step, ref: field.ref, rightAddon: props.rightAddon, rightElement: props.rightElement, size: props.size, type: "number", value: (_d = field.value) !== null && _d !== void 0 ? _d : "", variant: props.variant }));
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 }));
52
55
  }
53
56
  exports.NumberInput = NumberInput;
54
57
  NumberInput.displayName = "UxfFormNumberInput";
@@ -6,7 +6,7 @@ Object.defineProperty(exports, "__esModule", { value: true });
6
6
  exports.Default = void 0;
7
7
  const react_1 = __importDefault(require("react"));
8
8
  const number_input_1 = require("./number-input");
9
- const form_1 = require("../storybook/form");
9
+ const storybook_form_1 = require("../storybook/storybook-form");
10
10
  const button_1 = require("@uxf/ui/button");
11
11
  exports.default = {
12
12
  title: "Form/NumberInput",
@@ -19,7 +19,7 @@ function Default() {
19
19
  react_1.default.createElement(number_input_1.NumberInput, { label: "Dec\u00EDmal input", name: "decimal", decimalPlaces: 3, control: control }),
20
20
  react_1.default.createElement(number_input_1.NumberInput, { label: "max50 input", name: "max50", max: 50, control: control }),
21
21
  react_1.default.createElement(button_1.Button, { type: "submit" }, "Submit")));
22
- return (react_1.default.createElement(form_1.Form, null, ({ control }) => (react_1.default.createElement("div", { className: "flex flex-col lg:flex-row" },
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: "light space-y-2 p-20 lg:w-1/2" }, storyFormNumberInputs(control)),
24
24
  react_1.default.createElement("div", { className: "dark space-y-2 bg-gray-900 p-20 lg:w-1/2" }, storyFormNumberInputs(control))))));
25
25
  }
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@uxf/form",
3
- "version": "1.0.0-beta.158",
3
+ "version": "1.0.0-beta.160",
4
4
  "description": "",
5
5
  "publishConfig": {
6
6
  "access": "public"
@@ -13,7 +13,7 @@
13
13
  "author": "UX Fans s.r.o",
14
14
  "license": "MIT",
15
15
  "dependencies": {
16
- "@uxf/ui": "^1.0.0-beta.158",
16
+ "@uxf/ui": "^1.0.0-beta.160",
17
17
  "react-hook-form": "^7.43.9",
18
18
  "coordinate-parser": "^1.0.7"
19
19
  }
@@ -7,15 +7,18 @@ exports.RadioGroup = void 0;
7
7
  const radio_group_1 = require("@uxf/ui/radio-group");
8
8
  const react_1 = __importDefault(require("react"));
9
9
  const react_hook_form_1 = require("react-hook-form");
10
+ const form_id_context_1 = require("../form-id-context");
10
11
  function RadioGroup(props) {
11
- var _a, _b, _c, _d;
12
+ var _a, _b, _c, _d, _e;
13
+ const formId = (0, form_id_context_1.useFormIdContext)();
14
+ const id = (_a = props.id) !== null && _a !== void 0 ? _a : `${formId}__${props.name}`;
12
15
  const { field, fieldState } = (0, react_hook_form_1.useController)({
13
16
  control: props.control,
14
17
  defaultValue: props.defaultValue,
15
18
  name: props.name,
16
19
  rules: {
17
20
  required: props.isRequired ? props.requiredMessage || "Toto pole je povinné" : undefined,
18
- ...((_a = props.rules) !== null && _a !== void 0 ? _a : {}),
21
+ ...((_b = props.rules) !== null && _b !== void 0 ? _b : {}),
19
22
  },
20
23
  shouldUnregister: props.shouldUnregister,
21
24
  });
@@ -29,7 +32,7 @@ function RadioGroup(props) {
29
32
  field.onChange(value);
30
33
  (_a = props.onChange) === null || _a === void 0 ? void 0 : _a.call(props, value, event);
31
34
  };
32
- return (react_1.default.createElement(radio_group_1.RadioGroup, { className: props.className, forceColumn: props.forceColumn, helperText: (_c = (_b = fieldState.error) === null || _b === void 0 ? void 0 : _b.message) !== null && _c !== void 0 ? _c : props.helperText, hiddenLabel: props.hiddenLabel, id: props.id, isDisabled: props.options.length === 0 || props.isDisabled, isInvalid: !!fieldState.error, isReadOnly: props.isReadOnly, isRequired: props.isRequired, label: props.label, name: field.name, onBlur: onBlur, onChange: onChange, onFocus: props.onFocus, options: props.options, ref: field.ref, style: props.style, value: (_d = field.value) !== null && _d !== void 0 ? _d : null, variant: props.variant }));
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 }));
33
36
  }
34
37
  exports.RadioGroup = RadioGroup;
35
38
  RadioGroup.displayName = "UxfFormRadioGroup";
@@ -6,7 +6,7 @@ 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 form_1 = require("../storybook/form");
9
+ const storybook_form_1 = require("../storybook/storybook-form");
10
10
  const index_1 = require("./index");
11
11
  exports.default = {
12
12
  title: "Form/RadioGroup",
@@ -33,7 +33,7 @@ function Default() {
33
33
  react_1.default.createElement(index_1.RadioGroup, { control: control, helperText: "Choose one option", id: "radio-group", label: "Radio group form with helper text", name: "radio-group-helper-text", options: options }),
34
34
  react_1.default.createElement(index_1.RadioGroup, { control: control, id: "radio-group", label: "Radio group form with variant button", name: "radio-group-button", options: options, variant: "radioButton" }),
35
35
  react_1.default.createElement(button_1.Button, { type: "submit" }, "Submit")));
36
- return (react_1.default.createElement(form_1.Form, null, ({ control }) => (react_1.default.createElement("div", { className: "flex flex-col lg:flex-row" },
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: "light space-y-2 p-20 lg:w-1/2" }, storyFormRadioGroup(control)),
38
38
  react_1.default.createElement("div", { className: "dark space-y-2 bg-gray-900 p-20 lg:w-1/2" }, storyFormRadioGroup(control))))));
39
39
  }
package/select/select.js CHANGED
@@ -7,15 +7,18 @@ exports.Select = void 0;
7
7
  const select_1 = require("@uxf/ui/select");
8
8
  const react_hook_form_1 = require("react-hook-form");
9
9
  const react_1 = __importDefault(require("react"));
10
+ const form_id_context_1 = require("../form-id-context");
10
11
  function Select(props) {
11
- var _a, _b, _c;
12
+ var _a, _b, _c, _d;
13
+ const formId = (0, form_id_context_1.useFormIdContext)();
14
+ const id = (_a = props.id) !== null && _a !== void 0 ? _a : `${formId}__${props.name}`;
12
15
  const { field, fieldState } = (0, react_hook_form_1.useController)({
13
16
  control: props.control,
14
17
  defaultValue: props.defaultValue,
15
18
  name: props.name,
16
19
  rules: {
17
20
  required: props.isRequired ? props.requiredMessage || "Toto pole je povinné" : undefined,
18
- ...((_a = props.rules) !== null && _a !== void 0 ? _a : {}),
21
+ ...((_b = props.rules) !== null && _b !== void 0 ? _b : {}),
19
22
  },
20
23
  shouldUnregister: props.shouldUnregister,
21
24
  });
@@ -29,7 +32,7 @@ function Select(props) {
29
32
  field.onChange(value);
30
33
  (_a = props.onChange) === null || _a === void 0 ? void 0 : _a.call(props, value, event);
31
34
  };
32
- return (react_1.default.createElement(select_1.Select, { className: props.className, dropdownPlacement: props.dropdownPlacement, forwardRef: field.ref, helperText: (_c = (_b = fieldState.error) === null || _b === void 0 ? void 0 : _b.message) !== null && _c !== void 0 ? _c : props.helperText, hiddenLabel: props.hiddenLabel, id: props.id, isClearable: props.isClearable, isDisabled: props.options.length === 0 || props.isDisabled, isInvalid: !!fieldState.error, isReadOnly: props.isReadOnly, isRequired: props.isRequired, label: props.label, name: field.name, onBlur: onBlur, onChange: onChange, onFocus: props.onFocus, options: props.options, placeholder: props.placeholder, value: field.value }));
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 }));
33
36
  }
34
37
  exports.Select = Select;
35
38
  Select.displayName = "UxfFormSelect";
@@ -6,7 +6,7 @@ Object.defineProperty(exports, "__esModule", { value: true });
6
6
  exports.Default = void 0;
7
7
  const react_1 = __importDefault(require("react"));
8
8
  const select_1 = require("./select");
9
- const form_1 = require("../storybook/form");
9
+ const storybook_form_1 = require("../storybook/storybook-form");
10
10
  const button_1 = require("@uxf/ui/button");
11
11
  exports.default = {
12
12
  title: "Form/Select",
@@ -17,6 +17,11 @@ const options = [
17
17
  { id: "two", label: "Option two" },
18
18
  { id: "three", label: "Option three" },
19
19
  ];
20
+ const numberOptions = [
21
+ { id: 0, label: "Option zero" },
22
+ { id: 1, label: "Option one" },
23
+ { id: 2, label: "Option two" },
24
+ ];
20
25
  function Default() {
21
26
  const storyFormSelects = (control) => (react_1.default.createElement("div", { className: "space-y-4" },
22
27
  react_1.default.createElement(select_1.Select, { label: "Select form", name: "select", control: control, placeholder: "placeholder", options: options, id: "form-select", isClearable: true }),
@@ -24,8 +29,9 @@ function Default() {
24
29
  react_1.default.createElement(select_1.Select, { label: "Select form with helper text", name: "select-helper-text", control: control, placeholder: "placeholder", options: options, id: "form-select", helperText: "Choose one option" }),
25
30
  react_1.default.createElement(select_1.Select, { label: "Select form with dropdown top", dropdownPlacement: "top", name: "select-dropdown-top", control: control, placeholder: "placeholder", options: options, id: "form-select" }),
26
31
  react_1.default.createElement(select_1.Select, { label: "Select form clearable", name: "select-dropdown-clearable", control: control, placeholder: "placeholder", options: options, id: "form-select", isClearable: true }),
32
+ react_1.default.createElement(select_1.Select, { label: "Select form with number options", name: "select-dropdown-number", control: control, placeholder: "placeholder", options: numberOptions, id: "form-select", isClearable: true }),
27
33
  react_1.default.createElement(button_1.Button, { type: "submit" }, "Submit")));
28
- return (react_1.default.createElement(form_1.Form, null, ({ control }) => (react_1.default.createElement("div", { className: "flex flex-col lg:flex-row" },
34
+ return (react_1.default.createElement(storybook_form_1.StorybookForm, null, ({ control }) => (react_1.default.createElement("div", { className: "flex flex-col lg:flex-row" },
29
35
  react_1.default.createElement("div", { className: "light space-y-2 p-20 lg:w-1/2" }, storyFormSelects(control)),
30
36
  react_1.default.createElement("div", { className: "dark space-y-2 bg-gray-900 p-20 lg:w-1/2" }, storyFormSelects(control))))));
31
37
  }
@@ -3,5 +3,5 @@ import { UseFormProps, UseFormReturn } from "react-hook-form";
3
3
  interface FormProps extends UseFormProps {
4
4
  children: (form: UseFormReturn) => ReactNode;
5
5
  }
6
- export declare function Form(props: FormProps): JSX.Element;
6
+ export declare function StorybookForm(props: FormProps): JSX.Element;
7
7
  export {};
@@ -3,19 +3,20 @@ 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.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
10
  const form_data_printer_1 = require("./form-data-printer");
11
- function Form(props) {
11
+ const form_1 = require("../form");
12
+ function StorybookForm(props) {
12
13
  const form = (0, react_hook_form_1.useForm)(props);
13
14
  return (
14
15
  // eslint-disable-next-line no-console
15
- react_1.default.createElement("form", { onSubmit: form.handleSubmit(console.log) },
16
+ react_1.default.createElement(form_1.Form, { formApi: form, id: "storybook-form", onSubmit: console.log },
16
17
  props.children(form),
17
18
  react_1.default.createElement("div", { className: "my-4" },
18
19
  react_1.default.createElement(form_data_printer_1.FormDataPrinter, { control: form.control })),
19
20
  react_1.default.createElement(button_1.Button, { type: "submit" }, "Submit")));
20
21
  }
21
- exports.Form = Form;
22
+ exports.StorybookForm = StorybookForm;
@@ -7,10 +7,13 @@ exports.TextInput = void 0;
7
7
  const text_input_1 = require("@uxf/ui/text-input");
8
8
  const react_hook_form_1 = require("react-hook-form");
9
9
  const react_1 = __importDefault(require("react"));
10
+ const form_id_context_1 = require("../form-id-context");
10
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,}))$/;
11
12
  const PHONE_REGEXP = /^(\+)?[\d\s]*$/;
12
13
  function TextInput(props) {
13
- var _a, _b, _c, _d, _e, _f;
14
+ var _a, _b, _c, _d, _e, _f, _g;
15
+ const formId = (0, form_id_context_1.useFormIdContext)();
16
+ const id = (_a = props.id) !== null && _a !== void 0 ? _a : `${formId}__${props.name}`;
14
17
  const { field, fieldState } = (0, react_hook_form_1.useController)({
15
18
  control: props.control,
16
19
  defaultValue: props.defaultValue,
@@ -20,15 +23,15 @@ function TextInput(props) {
20
23
  pattern: props.type === "email"
21
24
  ? {
22
25
  value: EMAIL_REGEXP,
23
- message: (_a = props.invalidEmailMessage) !== null && _a !== void 0 ? _a : "E-mail by měl být ve\xa0formátu: info@email.cz",
26
+ message: (_b = props.invalidEmailMessage) !== null && _b !== void 0 ? _b : "E-mail by měl být ve\xa0formátu: info@email.cz",
24
27
  }
25
28
  : props.type === "tel"
26
29
  ? {
27
30
  value: PHONE_REGEXP,
28
- message: (_b = props.invalidPhoneMessage) !== null && _b !== void 0 ? _b : "Zadaný telefon není ve správném formátu",
31
+ message: (_c = props.invalidPhoneMessage) !== null && _c !== void 0 ? _c : "Zadaný telefon není ve správném formátu",
29
32
  }
30
33
  : undefined,
31
- ...((_c = props.rules) !== null && _c !== void 0 ? _c : {}),
34
+ ...((_d = props.rules) !== null && _d !== void 0 ? _d : {}),
32
35
  },
33
36
  shouldUnregister: props.shouldUnregister,
34
37
  });
@@ -42,7 +45,7 @@ function TextInput(props) {
42
45
  field.onChange(value);
43
46
  (_a = props.onChange) === null || _a === void 0 ? void 0 : _a.call(props, value, event);
44
47
  };
45
- return (react_1.default.createElement(text_input_1.TextInput, { autoComplete: props.autoComplete, className: props.className, enterKeyHint: props.enterKeyHint, form: props.form, helperText: (_e = (_d = fieldState.error) === null || _d === void 0 ? void 0 : _d.message) !== null && _e !== void 0 ? _e : props.helperText, hiddenLabel: props.hiddenLabel, id: props.id, inputMode: props.inputMode, isDisabled: props.isDisabled, isInvalid: !!fieldState.error, isReadOnly: props.isReadOnly, isRequired: props.isRequired, label: props.label, leftAddon: props.leftAddon, leftElement: props.leftElement, maxLength: props.maxLength, minLength: props.minLength, name: field.name, onBlur: onBlur, onChange: onChange, onFocus: props.onFocus, onKeyDown: props.onKeyDown, placeholder: props.placeholder, ref: field.ref, rightAddon: props.rightAddon, rightElement: props.rightElement, size: props.size, type: props.type, value: (_f = field.value) !== null && _f !== void 0 ? _f : "", variant: props.variant }));
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 }));
46
49
  }
47
50
  exports.TextInput = TextInput;
48
51
  TextInput.displayName = "UxfFormTextInput";
@@ -6,7 +6,7 @@ Object.defineProperty(exports, "__esModule", { value: true });
6
6
  exports.Default = void 0;
7
7
  const react_1 = __importDefault(require("react"));
8
8
  const text_input_1 = require("./text-input");
9
- const form_1 = require("../storybook/form");
9
+ const storybook_form_1 = require("../storybook/storybook-form");
10
10
  const button_1 = require("@uxf/ui/button");
11
11
  exports.default = {
12
12
  title: "Form/TextInput",
@@ -20,7 +20,7 @@ function Default() {
20
20
  react_1.default.createElement(text_input_1.TextInput, { placeholder: "Zadejte...", label: "Phone required input", name: "phone", type: "tel", control: control, isRequired: true }),
21
21
  react_1.default.createElement(text_input_1.TextInput, { placeholder: "Zadejte...", label: "Password input", name: "password", type: "password", control: control }),
22
22
  react_1.default.createElement(button_1.Button, { type: "submit" }, "Submit")));
23
- return (react_1.default.createElement(form_1.Form, null, ({ control }) => (react_1.default.createElement("div", { className: "flex flex-col lg:flex-row" },
23
+ return (react_1.default.createElement(storybook_form_1.StorybookForm, null, ({ control }) => (react_1.default.createElement("div", { className: "flex flex-col lg:flex-row" },
24
24
  react_1.default.createElement("div", { className: "light space-y-2 p-20 lg:w-1/2" }, storyFormTextInputs(control)),
25
25
  react_1.default.createElement("div", { className: "dark space-y-2 bg-gray-900 p-20 lg:w-1/2" }, storyFormTextInputs(control))))));
26
26
  }
@@ -27,15 +27,18 @@ exports.Textarea = void 0;
27
27
  const textarea_1 = require("@uxf/ui/textarea");
28
28
  const react_hook_form_1 = require("react-hook-form");
29
29
  const react_1 = __importStar(require("react"));
30
+ const form_id_context_1 = require("../form-id-context");
30
31
  function Textarea(props) {
31
- var _a, _b, _c;
32
+ var _a, _b, _c, _d;
33
+ const formId = (0, form_id_context_1.useFormIdContext)();
34
+ const id = (_a = props.id) !== null && _a !== void 0 ? _a : `${formId}__${props.name}`;
32
35
  const { field, fieldState } = (0, react_hook_form_1.useController)({
33
36
  control: props.control,
34
37
  defaultValue: props.defaultValue,
35
38
  name: props.name,
36
39
  rules: {
37
40
  required: props.isRequired ? props.requiredMessage || "Toto pole je povinné" : undefined,
38
- ...((_a = props.rules) !== null && _a !== void 0 ? _a : {}),
41
+ ...((_b = props.rules) !== null && _b !== void 0 ? _b : {}),
39
42
  },
40
43
  shouldUnregister: props.shouldUnregister,
41
44
  });
@@ -49,7 +52,7 @@ function Textarea(props) {
49
52
  field.onChange(value);
50
53
  (_a = props.onChange) === null || _a === void 0 ? void 0 : _a.call(props, value, event);
51
54
  };
52
- return (react_1.default.createElement(textarea_1.Textarea, { autoComplete: props.autoComplete, className: props.className, disableAutoHeight: props.disableAutoHeight, form: props.form, helperText: (_c = (_b = fieldState.error) === null || _b === void 0 ? void 0 : _b.message) !== null && _c !== void 0 ? _c : props.helperText, hiddenLabel: props.hiddenLabel, id: props.id, isDisabled: props.isDisabled, isInvalid: !!fieldState.error, isReadOnly: props.isReadOnly, isRequired: props.isRequired, label: props.label, maxLength: props.maxLength, minLength: props.minLength, name: field.name, onBlur: onBlur, onChange: onChange, onFocus: props.onFocus, placeholder: props.placeholder, ref: field.ref, rows: props.rows, value: field.value || "" }));
55
+ return (react_1.default.createElement(textarea_1.Textarea, { autoComplete: props.autoComplete, className: props.className, disableAutoHeight: props.disableAutoHeight, 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, isDisabled: props.isDisabled, isInvalid: !!fieldState.error, isReadOnly: props.isReadOnly, isRequired: props.isRequired, label: props.label, maxLength: props.maxLength, minLength: props.minLength, name: field.name, onBlur: onBlur, onChange: onChange, onFocus: props.onFocus, placeholder: props.placeholder, ref: field.ref, rows: props.rows, value: field.value || "" }));
53
56
  }
54
57
  exports.Textarea = Textarea;
55
58
  Textarea.displayName = "UxfFormTextarea";
@@ -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 react_1 = __importDefault(require("react"));
8
- const form_1 = require("../storybook/form");
8
+ const storybook_form_1 = require("../storybook/storybook-form");
9
9
  const textarea_1 = require("./textarea");
10
10
  const button_1 = require("@uxf/ui/button");
11
11
  exports.default = {
@@ -17,7 +17,7 @@ function Default() {
17
17
  react_1.default.createElement(textarea_1.Textarea, { label: "Textarea", name: "textarea", control: control, placeholder: "placeholder", form: "form-textarea" }),
18
18
  react_1.default.createElement(textarea_1.Textarea, { label: "Textarea required", name: "textarea-required", control: control, placeholder: "placeholder", form: "form-textarea", isRequired: true }),
19
19
  react_1.default.createElement(button_1.Button, { type: "submit" }, "Submit")));
20
- return (react_1.default.createElement(form_1.Form, null, ({ control }) => (react_1.default.createElement("div", { className: "flex flex-col lg:flex-row" },
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: "light space-y-2 p-20 lg:w-1/2" }, storyFormTextAreas(control)),
22
22
  react_1.default.createElement("div", { className: "dark space-y-2 bg-gray-900 p-20 lg:w-1/2" }, storyFormTextAreas(control))))));
23
23
  }
@@ -33,17 +33,20 @@ const react_1 = __importDefault(require("react"));
33
33
  const dayjs_1 = __importStar(require("dayjs"));
34
34
  const time_picker_input_2 = require("@uxf/ui/time-picker-input/time-picker-input");
35
35
  const customParseFormat_1 = __importDefault(require("dayjs/plugin/customParseFormat"));
36
+ const form_id_context_1 = require("../form-id-context");
36
37
  (0, dayjs_1.extend)(customParseFormat_1.default);
37
38
  const OUTPUT_TIME_FORMAT = "HH:mm:ss";
38
39
  function TimePickerInput(props) {
39
- var _a, _b, _c, _d, _e, _f;
40
+ var _a, _b, _c, _d, _e, _f, _g;
41
+ const formId = (0, form_id_context_1.useFormIdContext)();
42
+ const id = (_a = props.id) !== null && _a !== void 0 ? _a : `${formId}__${props.name}`;
40
43
  const { field, fieldState } = (0, react_hook_form_1.useController)({
41
44
  control: props.control,
42
45
  defaultValue: props.defaultValue,
43
46
  name: props.name,
44
47
  rules: {
45
48
  required: props.isRequired ? props.requiredMessage || "Toto pole je povinné" : undefined,
46
- ...((_a = props.rules) !== null && _a !== void 0 ? _a : {}),
49
+ ...((_b = props.rules) !== null && _b !== void 0 ? _b : {}),
47
50
  validate: {
48
51
  validTime: (value) => {
49
52
  if (!value) {
@@ -53,9 +56,9 @@ function TimePickerInput(props) {
53
56
  return "Čas musí být ve formátu H:mm.";
54
57
  }
55
58
  },
56
- ...(typeof ((_b = props.rules) === null || _b === void 0 ? void 0 : _b.validate) === "function"
59
+ ...(typeof ((_c = props.rules) === null || _c === void 0 ? void 0 : _c.validate) === "function"
57
60
  ? { custom: props.rules.validate }
58
- : (_d = (_c = props.rules) === null || _c === void 0 ? void 0 : _c.validate) !== null && _d !== void 0 ? _d : {}),
61
+ : (_e = (_d = props.rules) === null || _d === void 0 ? void 0 : _d.validate) !== null && _e !== void 0 ? _e : {}),
59
62
  },
60
63
  },
61
64
  shouldUnregister: props.shouldUnregister,
@@ -77,7 +80,7 @@ function TimePickerInput(props) {
77
80
  };
78
81
  const parsedTime = (0, dayjs_1.default)(field.value, OUTPUT_TIME_FORMAT, true);
79
82
  const value = field.value ? (parsedTime.isValid() ? parsedTime.format(time_picker_input_2.DISPLAY_TIME_FORMAT) : field.value) : null;
80
- return (react_1.default.createElement(time_picker_input_1.TimePickerInput, { 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, 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: value !== null && value !== void 0 ? value : null, variant: props.variant }));
83
+ 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: value !== null && value !== void 0 ? value : null, variant: props.variant }));
81
84
  }
82
85
  exports.TimePickerInput = TimePickerInput;
83
86
  TimePickerInput.displayName = "UxfFormTimePickerInput";
@@ -6,7 +6,7 @@ Object.defineProperty(exports, "__esModule", { value: true });
6
6
  exports.Default = void 0;
7
7
  const react_1 = __importDefault(require("react"));
8
8
  const time_picker_input_1 = require("./time-picker-input");
9
- const form_1 = require("../storybook/form");
9
+ const storybook_form_1 = require("../storybook/storybook-form");
10
10
  const button_1 = require("@uxf/ui/button");
11
11
  exports.default = {
12
12
  title: "Form/TimePickerInput",
@@ -16,7 +16,7 @@ function Default() {
16
16
  const storyFormDatePickers = (control) => (react_1.default.createElement("div", { className: "space-y-4" },
17
17
  react_1.default.createElement(time_picker_input_1.TimePickerInput, { label: "Default time picker", name: "default", control: control, isClearable: true }),
18
18
  react_1.default.createElement(button_1.Button, { type: "submit" }, "Submit")));
19
- return (react_1.default.createElement(form_1.Form, null, ({ control }) => (react_1.default.createElement("div", { className: "flex flex-col lg:flex-row" },
19
+ return (react_1.default.createElement(storybook_form_1.StorybookForm, null, ({ control }) => (react_1.default.createElement("div", { className: "flex flex-col lg:flex-row" },
20
20
  react_1.default.createElement("div", { className: "light space-y-2 p-20 lg:w-1/2" }, storyFormDatePickers(control)),
21
21
  react_1.default.createElement("div", { className: "dark space-y-2 bg-gray-900 p-20 text-white lg:w-1/2" }, storyFormDatePickers(control))))));
22
22
  }
package/toggle/toggle.js CHANGED
@@ -7,15 +7,18 @@ exports.Toggle = void 0;
7
7
  const toggle_1 = require("@uxf/ui/toggle");
8
8
  const react_hook_form_1 = require("react-hook-form");
9
9
  const react_1 = __importDefault(require("react"));
10
+ const form_id_context_1 = require("../form-id-context");
10
11
  function Toggle(props) {
11
- var _a, _b;
12
+ var _a, _b, _c;
13
+ const formId = (0, form_id_context_1.useFormIdContext)();
14
+ const id = (_a = props.id) !== null && _a !== void 0 ? _a : `${formId}__${props.name}`;
12
15
  const { field, fieldState } = (0, react_hook_form_1.useController)({
13
16
  control: props.control,
14
17
  defaultValue: props.defaultValue,
15
18
  name: props.name,
16
19
  rules: {
17
20
  required: props.isRequired ? props.requiredMessage || "Toto pole je povinné" : undefined,
18
- ...((_a = props.rules) !== null && _a !== void 0 ? _a : {}),
21
+ ...((_b = props.rules) !== null && _b !== void 0 ? _b : {}),
19
22
  },
20
23
  shouldUnregister: props.shouldUnregister,
21
24
  });
@@ -29,7 +32,7 @@ function Toggle(props) {
29
32
  field.onChange(value);
30
33
  (_a = props.onChange) === null || _a === void 0 ? void 0 : _a.call(props, value, event);
31
34
  };
32
- return (react_1.default.createElement(toggle_1.Toggle, { className: props.className, hiddenLabel: props.hiddenLabel, isDisabled: props.isDisabled, isInvalid: !!fieldState.error, isReadOnly: props.isReadOnly, isRequired: props.isRequired, label: props.label, name: field.name, onBlur: onBlur, onChange: onChange, onFocus: props.onFocus, ref: field.ref, value: (_b = field.value) !== null && _b !== void 0 ? _b : (!props.nullable ? false : undefined) }));
35
+ return (react_1.default.createElement(toggle_1.Toggle, { className: props.className, hiddenLabel: props.hiddenLabel, 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) }));
33
36
  }
34
37
  exports.Toggle = Toggle;
35
38
  Toggle.displayName = "UxfFormToggle";