@uxf/ui 11.11.0 → 11.11.3

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 (61) hide show
  1. package/_input-with-popover/input-with-popover.js +1 -1
  2. package/_select-base/_select-base.d.ts +2 -1
  3. package/_select-base/_select-base.js +1 -1
  4. package/avatar-file-input/avatar-file-input.js +1 -1
  5. package/avatar-file-input/avatar-file-input.stories.js +3 -3
  6. package/calendar/calendar.d.ts +1 -1
  7. package/checkbox/checkbox.stories.js +4 -4
  8. package/checkbox-button/checkbox-button.stories.js +3 -3
  9. package/checkbox-input/checkbox-input.js +2 -2
  10. package/checkbox-input/checkbox-input.stories.js +5 -5
  11. package/color-radio/color-radio.stories.js +6 -6
  12. package/color-radio-group/color-radio-group.js +1 -1
  13. package/color-radio-group/color-radio-group.stories.js +1 -1
  14. package/combobox/combobox.js +1 -1
  15. package/date-picker/date-picker-content.d.ts +2 -1
  16. package/date-picker/date-picker-content.js +2 -2
  17. package/date-picker/date-picker.d.ts +2 -1
  18. package/date-picker/date-picker.js +1 -1
  19. package/date-picker-input/date-picker-input.d.ts +2 -1
  20. package/date-picker-input/date-picker-input.js +1 -1
  21. package/date-range-picker/date-range-picker-content.d.ts +2 -1
  22. package/date-range-picker/date-range-picker-content.js +2 -2
  23. package/date-range-picker/date-range-picker.d.ts +2 -1
  24. package/date-range-picker/date-range-picker.js +1 -1
  25. package/date-range-picker-input/date-range-picker-input.d.ts +2 -1
  26. package/date-range-picker-input/date-range-picker-input.js +1 -1
  27. package/dropzone/dropzone-input.d.ts +2 -1
  28. package/dropzone/dropzone-input.js +1 -1
  29. package/dropzone/dropzone-list.d.ts +3 -1
  30. package/dropzone/dropzone-list.js +2 -2
  31. package/dropzone/dropzone.stories.js +7 -7
  32. package/file-input/file-input.js +1 -1
  33. package/file-input/file-input.stories.js +3 -3
  34. package/form-component/form-component.d.ts +1 -0
  35. package/form-component/form-component.js +1 -1
  36. package/form-component/form-component.stories.js +4 -4
  37. package/input/input-element.d.ts +2 -1
  38. package/input/input-element.js +1 -1
  39. package/input/input.d.ts +2 -1
  40. package/input/input.js +1 -1
  41. package/input/input.stories.js +9 -9
  42. package/multi-combobox/_multi-combobox-base.js +2 -2
  43. package/multi-combobox/multi-combobox.js +2 -2
  44. package/multi-combobox/types.d.ts +2 -1
  45. package/multi-select/multi-select.js +2 -2
  46. package/multi-select/multi-select.stories.js +1 -1
  47. package/multi-select/types.d.ts +2 -1
  48. package/package.json +5 -5
  49. package/radio/radio.stories.js +8 -8
  50. package/radio-group/radio-group.js +1 -1
  51. package/radio-group/radio-group.stories.js +5 -5
  52. package/select/select.js +1 -1
  53. package/select/select.stories.js +11 -11
  54. package/text-input/text-input.d.ts +2 -1
  55. package/text-input/text-input.js +2 -2
  56. package/text-input/text-input.stories.js +1 -1
  57. package/textarea/textarea.d.ts +2 -2
  58. package/textarea/textarea.js +2 -2
  59. package/textarea/textarea.stories.js +4 -4
  60. package/toggle/toggle.stories.js +4 -4
  61. package/types/form-control-props.d.ts +1 -1
@@ -71,7 +71,7 @@ exports._InputWithPopover = (0, react_3.forwardRef)((props, ref) => {
71
71
  });
72
72
  const isInteractive = !props.isDisabled && !props.isReadOnly;
73
73
  const showRemoveButton = !!(props.value && isInteractive && props.isClearable);
74
- return (react_3.default.createElement(form_component_1.FormComponent, { className: rootClassName, errorId: error.errorId, form: props.form, helperText: props.helperText, hiddenLabel: props.hiddenLabel, inputId: id, isRequired: props.isRequired, label: props.label },
74
+ return (react_3.default.createElement(form_component_1.FormComponent, { className: rootClassName, errorId: error.errorId, form: props.form, helperText: props.helperText, hiddenLabel: props.hiddenLabel, inputId: id, isRequired: props.isRequired, label: props.label, name: props.name },
75
75
  react_3.default.createElement(react_2.Popover, { as: react_3.Fragment }, (renderProps) => (react_3.default.createElement(react_3.default.Fragment, null,
76
76
  react_3.default.createElement(input_1.Input, { inputFocus: input, size: props.size, variant: props.variant, wrapperRef: floatingPopover.refs.setReference },
77
77
  props.leftAddon && react_3.default.createElement(input_1.Input.LeftAddon, null, props.leftAddon),
@@ -3,7 +3,7 @@ import type { Combobox as HUICombobox, Listbox as HUIListbox } from "@headlessui
3
3
  import { IconsSet } from "@uxf/ui/icon/theme";
4
4
  import { InputGroupSizes, InputGroupVariants } from "@uxf/ui/input/theme";
5
5
  import { Clearable, FormControlProps } from "@uxf/ui/types";
6
- import React, { ReactElement, ReactNode, Ref } from "react";
6
+ import React, { CSSProperties, ReactElement, ReactNode, Ref } from "react";
7
7
  export type SelectBaseValueId = number | string;
8
8
  export type SelectBaseValue<ValueId = SelectBaseValueId> = {
9
9
  id: ValueId;
@@ -33,6 +33,7 @@ export interface SelectBaseProps<Value, Option> extends FormControlProps<Value |
33
33
  placeholder?: string;
34
34
  renderOption?: (option: Option, isSelected: boolean) => ReactNode;
35
35
  size?: keyof InputGroupSizes;
36
+ style?: CSSProperties;
36
37
  variant?: keyof InputGroupVariants;
37
38
  leftAddon?: ReactNode;
38
39
  leftElement?: ReactNode;
@@ -82,7 +82,7 @@ const _SelectBase = (props) => {
82
82
  const dropdown = (0, use_dropdown_1.useDropdown)((_b = props.dropdownPlacement) !== null && _b !== void 0 ? _b : "bottom", (_c = props.dropdownMatchesInputWidth) !== null && _c !== void 0 ? _c : true, props.dropdownStrategy);
83
83
  const stableRef = (0, react_2.useMemo)(() => (0, composeRefs_1.composeRefs)(innerRef, props.forwardRef, dropdown.refs.setReference), [dropdown.refs.setReference, props.forwardRef]);
84
84
  const HUIComponent = props.HUIComponent;
85
- return (react_2.default.createElement(HUIComponent, { as: "div", by: "id", className: (0, cx_1.cx)("uxf-form-component uxf-select-base", props.isInvalid && classes_1.CLASSES.IS_INVALID, props.isRequired && classes_1.CLASSES.IS_REQUIRED, props.isReadOnly && classes_1.CLASSES.IS_READONLY, props.isDisabled && classes_1.CLASSES.IS_DISABLED, props.className), "data-testid": id, disabled: props.isDisabled || props.isReadOnly, onChange: props.onChange, value: props.value }, (renderProps) => (react_2.default.createElement(react_2.default.Fragment, null,
85
+ return (react_2.default.createElement(HUIComponent, { as: "div", by: "id", className: (0, cx_1.cx)("uxf-form-component uxf-select-base", props.isInvalid && classes_1.CLASSES.IS_INVALID, props.isRequired && classes_1.CLASSES.IS_REQUIRED, props.isReadOnly && classes_1.CLASSES.IS_READONLY, props.isDisabled && classes_1.CLASSES.IS_DISABLED, props.className), "data-testid": id, disabled: props.isDisabled || props.isReadOnly, onChange: props.onChange, style: props.style, value: props.value }, (renderProps) => (react_2.default.createElement(react_2.default.Fragment, null,
86
86
  react_2.default.createElement("div", { className: "uxf-form-component__label" },
87
87
  react_2.default.createElement(HUIComponent.Label, { as: label_1.Label, isHidden: props.hiddenLabel, onClick: props.isDisabled || props.isReadOnly ? undefined : input.focus }, props.label)),
88
88
  react_2.default.createElement("div", { className: "uxf-form-component__input" },
@@ -53,7 +53,7 @@ exports.AvatarFileInput = (0, react_1.forwardRef)((props, ref) => {
53
53
  inputNode.value = "";
54
54
  }
55
55
  };
56
- return (react_1.default.createElement(form_component_1.FormComponent, { className: rootClassName, errorId: props.id, helperText: props.helperText, hiddenLabel: props.hiddenLabel, inputId: id, label: props.label },
56
+ return (react_1.default.createElement(form_component_1.FormComponent, { className: rootClassName, errorId: props.id, helperText: props.helperText, hiddenLabel: props.hiddenLabel, inputId: id, label: props.label, name: props.name },
57
57
  react_1.default.createElement("div", { className: "uxf-avatar-file-input__inner-wrapper" },
58
58
  react_1.default.createElement("div", { className: (0, cx_1.cx)("uxf-avatar-file-input__input", stateClassName), onClick: onSelectFile },
59
59
  react_1.default.createElement(_file_input_base_1._FileInputBase, { accept: (_c = props.accept) !== null && _c !== void 0 ? _c : "image/*", "aria-describedby": errorId, "aria-invalid": props.isInvalid, className: "uxf-avatar-file-input__input-element", form: props.form, id: id, isDisabled: props.isDisabled, isFocused: props.isFocused, isInvalid: props.isInvalid, isReadOnly: props.isReadOnly, isRequired: props.isRequired, maxFileSize: props.maxFileSize, name: props.name, onBlur: input.onBlur, onFocus: input.onFocus, onChange: props.onChange, onUploadError: props.onUploadError, onUploadFile: props.onUploadFile, ref: (0, composeRefs_1.composeRefs)(innerRef, ref), value: props.value }),
@@ -42,8 +42,8 @@ function Default() {
42
42
  console.log("Upload error", err);
43
43
  };
44
44
  return (react_1.default.createElement("div", { className: "space-y-4 p-20" },
45
- react_1.default.createElement(index_1.AvatarFileInput, { label: "Nahrajte fotku", onChange: onChange, onUploadError: onUploadError, onUploadFile: upload_file_mock_1.uploadFile, value: value, variant: "square" }),
46
- react_1.default.createElement(index_1.AvatarFileInput, { isDisabled: true, onChange: onChange, onUploadError: onUploadError, onUploadFile: upload_file_mock_1.uploadFile, value: value, variant: "square" }),
47
- react_1.default.createElement(index_1.AvatarFileInput, { id: "afi", isInvalid: true, label: "Vyberte Avatar", onChange: onChange, onUploadError: onUploadError, onUploadFile: upload_file_mock_1.uploadFile, value: value })));
45
+ react_1.default.createElement(index_1.AvatarFileInput, { label: "Nahrajte fotku", onChange: onChange, onUploadError: onUploadError, onUploadFile: upload_file_mock_1.uploadFile, value: value, variant: "square", name: "avatar-input" }),
46
+ react_1.default.createElement(index_1.AvatarFileInput, { isDisabled: true, onChange: onChange, onUploadError: onUploadError, onUploadFile: upload_file_mock_1.uploadFile, value: value, variant: "square", name: "avatar-input-disabled" }),
47
+ react_1.default.createElement(index_1.AvatarFileInput, { id: "afi", isInvalid: true, label: "Vyberte Avatar", onChange: onChange, onUploadError: onUploadError, onUploadFile: upload_file_mock_1.uploadFile, value: value, name: "avatar-input-isInvalid" })));
48
48
  }
49
49
  exports.Default = Default;
@@ -2,8 +2,8 @@ import { UseDatePickerReturnType } from "@uxf/datepicker/hooks/use-date-picker";
2
2
  import { UseDateRangePickerReturnType } from "@uxf/datepicker/hooks/use-date-range-picker";
3
3
  import React from "react";
4
4
  export interface CalendarProps {
5
- datePickerProps: UseDatePickerReturnType | UseDateRangePickerReturnType;
6
5
  className?: string;
6
+ datePickerProps: UseDatePickerReturnType | UseDateRangePickerReturnType;
7
7
  month?: number;
8
8
  onChange?: (data: Date | null) => void;
9
9
  selectedDate?: Date | null;
@@ -35,10 +35,10 @@ function Default() {
35
35
  const [checked, setChecked] = (0, react_1.useState)(true);
36
36
  const onChange = (0, action_1.action)("onChange", () => setChecked((prev) => !prev));
37
37
  const checkboxes = (react_1.default.createElement(react_1.default.Fragment, null,
38
- react_1.default.createElement(checkbox_1.Checkbox, { onChange: onChange, value: checked }),
39
- react_1.default.createElement(checkbox_1.Checkbox, { isDisabled: true, onChange: onChange, value: checked }),
40
- react_1.default.createElement(checkbox_1.Checkbox, { isInvalid: true, onChange: onChange, value: checked }),
41
- react_1.default.createElement(checkbox_1.Checkbox, { onChange: onChange, value: checked, size: "lg" })));
38
+ react_1.default.createElement(checkbox_1.Checkbox, { onChange: onChange, value: checked, name: "checkbox" }),
39
+ react_1.default.createElement(checkbox_1.Checkbox, { isDisabled: true, onChange: onChange, value: checked, name: "checkbox-disabled" }),
40
+ react_1.default.createElement(checkbox_1.Checkbox, { isInvalid: true, onChange: onChange, value: checked, name: "checkbox-invalid" }),
41
+ react_1.default.createElement(checkbox_1.Checkbox, { onChange: onChange, value: checked, size: "lg", name: "checkbox-size-lg" })));
42
42
  return (react_1.default.createElement("div", { className: "flex" },
43
43
  react_1.default.createElement("div", { className: "flex flex-col gap-4 p-20" }, checkboxes)));
44
44
  }
@@ -36,8 +36,8 @@ function Default() {
36
36
  const onChange = (0, action_1.action)("onChange", () => setChecked((prev) => !prev));
37
37
  return (react_1.default.createElement("div", { className: "flex" },
38
38
  react_1.default.createElement("div", { className: "flex flex-col gap-4 p-20" },
39
- react_1.default.createElement(index_1.CheckboxButton, { label: "Opravdu?", onChange: onChange, value: checked }),
40
- react_1.default.createElement(index_1.CheckboxButton, { label: "Opravdu?", isDisabled: true, onChange: onChange, value: checked }),
41
- react_1.default.createElement(index_1.CheckboxButton, { label: "Opravdu?", isInvalid: true, onChange: onChange, value: checked }))));
39
+ react_1.default.createElement(index_1.CheckboxButton, { label: "Opravdu?", onChange: onChange, value: checked, name: "checkbox-button" }),
40
+ react_1.default.createElement(index_1.CheckboxButton, { label: "Opravdu?", isDisabled: true, onChange: onChange, value: checked, name: "checkbox-button-disabled" }),
41
+ react_1.default.createElement(index_1.CheckboxButton, { label: "Opravdu?", isInvalid: true, onChange: onChange, value: checked, name: "checkbox-button-invalid" }))));
42
42
  }
43
43
  exports.Default = Default;
@@ -33,8 +33,8 @@ exports.CheckboxInput = (0, react_2.forwardRef)((props, ref) => {
33
33
  const id = (_a = props.id) !== null && _a !== void 0 ? _a : generatedId;
34
34
  const errorId = props.isInvalid ? `${id}--error-message` : undefined;
35
35
  return (react_2.default.createElement(react_1.Switch.Group, null,
36
- react_2.default.createElement("div", { className: `uxf-checkbox-input__wrapper ${(_b = props.className) !== null && _b !== void 0 ? _b : ""}` },
37
- react_2.default.createElement(react_1.Switch, { as: react_2.Fragment, checked: props.value, name: props.name, onChange: props.onChange }, ({ checked }) => (react_2.default.createElement(checkbox_1.Checkbox, { className: "uxf-checkbox-input", id: props.id, indeterminate: props.indeterminate, isDisabled: props.isDisabled, isFocused: props.isFocused, isInvalid: props.isInvalid, isReadOnly: props.isReadOnly, isRequired: props.isRequired, onChange: props.onChange, ref: ref, size: props.size, style: props.style, value: checked }))),
36
+ react_2.default.createElement("div", { className: `uxf-checkbox-input__wrapper ${(_b = props.className) !== null && _b !== void 0 ? _b : ""}`, style: props.style },
37
+ react_2.default.createElement(react_1.Switch, { as: react_2.Fragment, checked: props.value, name: props.name, onChange: props.onChange }, ({ checked }) => (react_2.default.createElement(checkbox_1.Checkbox, { className: "uxf-checkbox-input", id: props.id, indeterminate: props.indeterminate, isDisabled: props.isDisabled, isFocused: props.isFocused, isInvalid: props.isInvalid, isReadOnly: props.isReadOnly, isRequired: props.isRequired, onChange: props.onChange, ref: ref, size: props.size, value: checked, name: props.name }))),
38
38
  react_2.default.createElement(react_1.Switch.Label, { className: `uxf-checkbox-input__label ${props.hiddenLabel ? "uxf-checkbox-input__label--hidden" : ""}` },
39
39
  react_2.default.createElement("span", { className: "uxf-checkbox-input__label--text" }, props.label),
40
40
  react_2.default.createElement("span", { id: errorId, className: "uxf-checkbox-input__label--subtitle" }, props.helperText)))));
@@ -35,11 +35,11 @@ function Default() {
35
35
  const [checked, setChecked] = (0, react_1.useState)(true);
36
36
  const onChange = (0, action_1.action)("onChange", () => setChecked((prev) => !prev));
37
37
  const checkboxes = (react_1.default.createElement(react_1.default.Fragment, null,
38
- react_1.default.createElement(checkbox_input_1.CheckboxInput, { label: "Opravdu?", onChange: onChange, value: checked }),
39
- react_1.default.createElement(checkbox_input_1.CheckboxInput, { label: "Opravdu?", isDisabled: true, onChange: onChange, value: checked }),
40
- react_1.default.createElement(checkbox_input_1.CheckboxInput, { label: "Opravdu?", isInvalid: true, onChange: onChange, value: checked }),
41
- react_1.default.createElement(checkbox_input_1.CheckboxInput, { label: "Opravdu? (size lg)", onChange: onChange, value: checked, size: "lg" }),
42
- react_1.default.createElement(checkbox_input_1.CheckboxInput, { label: "hidden label", hiddenLabel: true, onChange: onChange, value: checked, size: "lg" })));
38
+ react_1.default.createElement(checkbox_input_1.CheckboxInput, { label: "Opravdu?", onChange: onChange, value: checked, name: "checkbox-input" }),
39
+ react_1.default.createElement(checkbox_input_1.CheckboxInput, { label: "Opravdu?", isDisabled: true, onChange: onChange, value: checked, name: "checkbox-input-disabled" }),
40
+ react_1.default.createElement(checkbox_input_1.CheckboxInput, { label: "Opravdu?", isInvalid: true, onChange: onChange, value: checked, name: "checkbox-input-invalid" }),
41
+ react_1.default.createElement(checkbox_input_1.CheckboxInput, { label: "Opravdu? (size lg)", onChange: onChange, value: checked, size: "lg", name: "checkbox-input-lg" }),
42
+ react_1.default.createElement(checkbox_input_1.CheckboxInput, { label: "hidden label", hiddenLabel: true, onChange: onChange, value: checked, size: "lg", name: "checkbox-input-hidden-label-lg" })));
43
43
  return (react_1.default.createElement("div", { className: "flex" },
44
44
  react_1.default.createElement("div", { className: "flex flex-col gap-4 p-20" }, checkboxes)));
45
45
  }
@@ -14,16 +14,16 @@ function Default() {
14
14
  const radios = (react_1.default.createElement("div", { className: "dark:text-white" },
15
15
  react_1.default.createElement("div", { className: "mb-2 mt-4 font-semibold" }, "Default"),
16
16
  react_1.default.createElement("div", { className: "flex flex-row gap-4" },
17
- react_1.default.createElement(color_radio_1.ColorRadio, { checked: false, color: "#ff0000", colorLabel: "Red", value: 1 }),
18
- react_1.default.createElement(color_radio_1.ColorRadio, { checked: true, color: "#cc0000", colorLabel: "Red", value: 2 })),
17
+ react_1.default.createElement(color_radio_1.ColorRadio, { checked: false, color: "#ff0000", colorLabel: "Red", value: 1, name: "value-1" }),
18
+ react_1.default.createElement(color_radio_1.ColorRadio, { checked: true, color: "#cc0000", colorLabel: "Red", value: 2, name: "value-2" })),
19
19
  react_1.default.createElement("div", { className: "mb-2 mt-4 font-semibold" }, "Invalid"),
20
20
  react_1.default.createElement("div", { className: "flex flex-row gap-4" },
21
- react_1.default.createElement(color_radio_1.ColorRadio, { checked: false, color: "#ff0000", colorLabel: "Red", isInvalid: true, value: 1 }),
22
- react_1.default.createElement(color_radio_1.ColorRadio, { checked: true, color: "#ff0000", colorLabel: "Red", isInvalid: true, value: 2 })),
21
+ react_1.default.createElement(color_radio_1.ColorRadio, { checked: false, color: "#ff0000", colorLabel: "Red", isInvalid: true, value: 1, name: "value-1" }),
22
+ react_1.default.createElement(color_radio_1.ColorRadio, { checked: true, color: "#ff0000", colorLabel: "Red", isInvalid: true, value: 2, name: "value-2" })),
23
23
  react_1.default.createElement("div", { className: "mb-2 mt-4 font-semibold" }, "Disabled"),
24
24
  react_1.default.createElement("div", { className: "flex flex-row gap-4" },
25
- react_1.default.createElement(color_radio_1.ColorRadio, { checked: false, color: "#ff0000", colorLabel: "Red", isDisabled: true, value: 1 }),
26
- react_1.default.createElement(color_radio_1.ColorRadio, { checked: true, color: "#ff0000", colorLabel: "Red", isDisabled: true, value: 2 }))));
25
+ react_1.default.createElement(color_radio_1.ColorRadio, { checked: false, color: "#ff0000", colorLabel: "Red", isDisabled: true, value: 1, name: "value-1" }),
26
+ react_1.default.createElement(color_radio_1.ColorRadio, { checked: true, color: "#ff0000", colorLabel: "Red", isDisabled: true, value: 2, name: "value-2" }))));
27
27
  return (react_1.default.createElement("div", { className: "flex" },
28
28
  react_1.default.createElement("div", { className: "p-20 " }, radios)));
29
29
  }
@@ -42,7 +42,7 @@ exports.ColorRadioGroup = (0, react_2.forwardRef)((props, ref) => {
42
42
  react_2.default.createElement("div", { className: "uxf-form-component__input" },
43
43
  react_2.default.createElement("div", { className: "uxf-color-radio-group__options-wrapper" }, props.options.map((option) => {
44
44
  const optionStyle = { "--option-color": option.value };
45
- return (react_2.default.createElement(react_1.RadioGroup.Option, { className: (0, cx_1.cx)("uxf-color-radio-group__option", props.isDisabled && classes_1.CLASSES.IS_DISABLED), key: option.value.toString(), value: option.value, style: optionStyle }, (o) => (react_2.default.createElement(color_radio_1.ColorRadio, { checked: o.checked, isDisabled: props.isDisabled || o.disabled, colorLabel: option.label, color: option.value, ref: o.checked ? innerRef : undefined, value: option.value }))));
45
+ return (react_2.default.createElement(react_1.RadioGroup.Option, { className: (0, cx_1.cx)("uxf-color-radio-group__option", props.isDisabled && classes_1.CLASSES.IS_DISABLED), key: option.value.toString(), value: option.value, style: optionStyle }, (o) => (react_2.default.createElement(color_radio_1.ColorRadio, { checked: o.checked, isDisabled: props.isDisabled || o.disabled, colorLabel: option.label, color: option.value, ref: o.checked ? innerRef : undefined, value: option.value, name: props.name }))));
46
46
  })),
47
47
  props.helperText && (react_2.default.createElement("div", { className: (0, cx_1.cx)("uxf-helper-text", props.isInvalid && classes_1.CLASSES.IS_INVALID), id: errorId }, props.helperText)))));
48
48
  });
@@ -74,6 +74,6 @@ function Default() {
74
74
  const onChange = (0, action_1.action)("onChange", setValue);
75
75
  return (react_1.default.createElement("div", { className: "flex" },
76
76
  react_1.default.createElement("div", { className: "w-1/2 p-20" },
77
- react_1.default.createElement(index_1.ColorRadioGroup, { id: "radiogroup", label: "Light Color Radio group", onChange: onChange, options: options, value: value }))));
77
+ react_1.default.createElement(index_1.ColorRadioGroup, { id: "radiogroup", label: "Light Color Radio group", onChange: onChange, options: options, value: value, name: "color-radio-button" }))));
78
78
  }
79
79
  exports.Default = Default;
@@ -43,7 +43,7 @@ const Combobox = (props) => {
43
43
  const onInputChange = (event) => setQuery(event.target.value);
44
44
  const displayValue = (item) => { var _a; return (_a = item === null || item === void 0 ? void 0 : item.label) !== null && _a !== void 0 ? _a : ""; };
45
45
  const selectedOption = (_d = props.value) !== null && _d !== void 0 ? _d : null;
46
- return (react_2.default.createElement(_select_base_1._SelectBase, { HUIComponent: react_1.Combobox, className: props.className, customInputElementDisplayName: react_1.Combobox.Input.displayName, dropdownClassName: props.dropdownClassName, dropdownMatchesInputWidth: props.dropdownMatchesInputWidth, dropdownPlacement: props.dropdownPlacement, dropdownStrategy: props.dropdownStrategy, emptyMessage: emptyMessage, forwardRef: props.forwardRef, helperText: props.helperText, hiddenLabel: props.hiddenLabel, iconName: props.iconName, id: props.id, isClearable: props.isClearable, isDisabled: props.isDisabled, isFocused: props.isFocused, isInvalid: props.isInvalid, isReadOnly: props.isReadOnly, isRequired: props.isRequired, keyExtractor: props.keyExtractor, label: props.label, leftAddon: props.leftAddon, leftElement: props.leftElement, name: props.name, onBlur: props.onBlur, onChange: onChange, onFocus: props.onFocus, onOptionsUnmount: clearQuery, options: filteredData, placeholder: props.placeholder, renderOption: props.renderOption, rightAddon: props.rightAddon, rightElement: props.rightElement, size: props.size, value: selectedOption, variant: props.variant },
46
+ return (react_2.default.createElement(_select_base_1._SelectBase, { HUIComponent: react_1.Combobox, className: props.className, customInputElementDisplayName: react_1.Combobox.Input.displayName, dropdownClassName: props.dropdownClassName, dropdownMatchesInputWidth: props.dropdownMatchesInputWidth, dropdownPlacement: props.dropdownPlacement, dropdownStrategy: props.dropdownStrategy, emptyMessage: emptyMessage, forwardRef: props.forwardRef, helperText: props.helperText, hiddenLabel: props.hiddenLabel, iconName: props.iconName, id: props.id, isClearable: props.isClearable, isDisabled: props.isDisabled, isFocused: props.isFocused, isInvalid: props.isInvalid, isReadOnly: props.isReadOnly, isRequired: props.isRequired, keyExtractor: props.keyExtractor, label: props.label, leftAddon: props.leftAddon, leftElement: props.leftElement, name: props.name, onBlur: props.onBlur, onChange: onChange, onFocus: props.onFocus, onOptionsUnmount: clearQuery, options: filteredData, placeholder: props.placeholder, renderOption: props.renderOption, rightAddon: props.rightAddon, rightElement: props.rightElement, size: props.size, style: props.style, value: selectedOption, variant: props.variant },
47
47
  react_2.default.createElement(react_1.Combobox.Input, { autoComplete: "off", className: "uxf-input__element", displayValue: displayValue, onBlur: props.onBlur, onChange: onInputChange, placeholder: props.placeholder, type: "text" })));
48
48
  };
49
49
  exports.Combobox = Combobox;
@@ -1,5 +1,6 @@
1
- import { FC, PropsWithChildren, ReactNode } from "react";
1
+ import { CSSProperties, FC, PropsWithChildren, ReactNode } from "react";
2
2
  export interface DatePickerContentProps {
3
3
  bottomContent?: ReactNode;
4
+ style?: CSSProperties;
4
5
  }
5
6
  export declare const DatePickerContent: FC<PropsWithChildren<DatePickerContentProps>>;
@@ -46,8 +46,8 @@ const DatePickerContent = (props) => {
46
46
  month: activeMonths.map((month) => (react_1.default.createElement(date_picker_month_1.DatePickerMonth, { key: `${month.year}-${month.month}`, setViewMode: setViewMode }))),
47
47
  year: react_1.default.createElement(date_picker_year_1.DatePickerYear, { onMonthSelect: (date) => onMonthSelect(date), onYearSelect: onYearSelect }),
48
48
  decade: react_1.default.createElement(date_picker_decade_1.DatePickerDecade, { onYearSelect: (date) => onDecadeYearSelect(date) }),
49
- }), [onMonthSelect, onYearSelect, onDecadeYearSelect, setViewMode, activeMonths]);
50
- return (react_1.default.createElement("div", { className: "uxf-date-picker" },
49
+ }), [activeMonths, onYearSelect, onMonthSelect, onDecadeYearSelect]);
50
+ return (react_1.default.createElement("div", { className: "uxf-date-picker", style: props.style },
51
51
  props.children,
52
52
  datePickerComponents[viewMode],
53
53
  props.bottomContent && react_1.default.createElement("div", { className: "uxf-date-picker__bottom-content" }, props.bottomContent)));
@@ -1,6 +1,6 @@
1
1
  import { OnDateChangeType } from "@uxf/datepicker/hooks/use-date-picker";
2
2
  import { DatesConfig } from "@uxf/datepicker/utils/types";
3
- import { FC, ReactNode } from "react";
3
+ import { CSSProperties, FC, ReactNode } from "react";
4
4
  export interface DatePickerProps {
5
5
  bottomContent?: ReactNode;
6
6
  closePopoverHandler?: () => void;
@@ -10,6 +10,7 @@ export interface DatePickerProps {
10
10
  onChange: (data: OnDateChangeType) => void;
11
11
  preventScroll?: boolean;
12
12
  selectedDate: Date | null;
13
+ style?: CSSProperties;
13
14
  /** @deprecated */
14
15
  unavailableDates?: Date[];
15
16
  }
@@ -24,7 +24,7 @@ const DatePicker = (props) => {
24
24
  unavailableDates: props.unavailableDates,
25
25
  });
26
26
  return (react_1.default.createElement(date_picker_context_1.DatePickerContext.Provider, { value: datePickerProps },
27
- react_1.default.createElement(date_picker_content_1.DatePickerContent, { bottomContent: props.bottomContent })));
27
+ react_1.default.createElement(date_picker_content_1.DatePickerContent, { bottomContent: props.bottomContent, style: props.style })));
28
28
  };
29
29
  exports.DatePicker = DatePicker;
30
30
  exports.DatePicker.displayName = "UxfUiDatePicker";
@@ -1,5 +1,5 @@
1
1
  import { DatesConfig } from "@uxf/datepicker/utils/types";
2
- import React, { ReactNode } from "react";
2
+ import React, { CSSProperties, ReactNode } from "react";
3
3
  import { InputWithPopoverProps } from "../_input-with-popover";
4
4
  export declare const ALLOWED_DATE_FORMAT: string[];
5
5
  export declare const DISPLAY_DATE_FORMAT = "D. M. YYYY";
@@ -12,6 +12,7 @@ export interface DatePickerInputProps extends Omit<InputWithPopoverProps<string
12
12
  maxDate?: string;
13
13
  minDate?: string;
14
14
  placeholder?: string;
15
+ style?: CSSProperties;
15
16
  triggerElement?: ReactNode;
16
17
  /** @deprecated */
17
18
  unavailableDates?: Date[];
@@ -82,6 +82,6 @@ exports.DatePickerInput = (0, react_1.forwardRef)((props, ref) => {
82
82
  const selectedDate = getSelectedDate(props.value);
83
83
  const parsedMinDate = getBoundaryDate(props.minDate);
84
84
  const parsedMaxDate = getBoundaryDate(props.maxDate);
85
- return (react_1.default.createElement(_input_with_popover_1._InputWithPopover, { ...props, className: className, onChange: onInputChange, placeholder: (_c = props.placeholder) !== null && _c !== void 0 ? _c : (0, dayjs_1.default)().format(displayDateFormat), ref: ref, value: value, triggerElement: (_d = props.triggerElement) !== null && _d !== void 0 ? _d : react_1.default.createElement(icon_1.Icon, { name: "calendar", size: 20 }) }, ({ close }) => (react_1.default.createElement(date_picker_1.DatePicker, { bottomContent: props.bottomContent, closePopoverHandler: close, datesConfig: props.datesConfig, maxDate: parsedMaxDate, minDate: parsedMinDate, onChange: onDatePickerChange, preventScroll: true, selectedDate: selectedDate, unavailableDates: props.unavailableDates }))));
85
+ return (react_1.default.createElement(_input_with_popover_1._InputWithPopover, { ...props, className: className, onChange: onInputChange, placeholder: (_c = props.placeholder) !== null && _c !== void 0 ? _c : (0, dayjs_1.default)().format(displayDateFormat), ref: ref, value: value, triggerElement: (_d = props.triggerElement) !== null && _d !== void 0 ? _d : react_1.default.createElement(icon_1.Icon, { name: "calendar", size: 20 }) }, ({ close }) => (react_1.default.createElement(date_picker_1.DatePicker, { bottomContent: props.bottomContent, closePopoverHandler: close, datesConfig: props.datesConfig, maxDate: parsedMaxDate, minDate: parsedMinDate, onChange: onDatePickerChange, preventScroll: true, selectedDate: selectedDate, style: props.style, unavailableDates: props.unavailableDates }))));
86
86
  });
87
87
  exports.DatePickerInput.displayName = "UxfUiDatePickerInput";
@@ -1,5 +1,6 @@
1
- import { FC, PropsWithChildren, ReactNode } from "react";
1
+ import { CSSProperties, FC, PropsWithChildren, ReactNode } from "react";
2
2
  export interface DateRangePickerContentProps {
3
3
  bottomContent?: ReactNode;
4
+ style?: CSSProperties;
4
5
  }
5
6
  export declare const DateRangePickerContent: FC<PropsWithChildren<DateRangePickerContentProps>>;
@@ -46,8 +46,8 @@ const DateRangePickerContent = (props) => {
46
46
  month: (react_1.default.createElement("div", { className: "uxf-date-range-picker__months" }, activeMonths.map((activeMonth) => (react_1.default.createElement(date_range_picker_month_1.DateRangePickerMonth, { key: `${activeMonth.year}-${activeMonth.month}`, month: activeMonth.month, setViewMode: setViewMode, year: activeMonth.year }))))),
47
47
  year: react_1.default.createElement(date_range_picker_year_1.DateRangePickerYear, { onMonthSelect: (date) => onMonthSelect(date), onYearSelect: onYearSelect }),
48
48
  decade: react_1.default.createElement(date_range_picker_decade_1.DateRangePickerDecade, { onYearSelect: (date) => onDecadeYearSelect(date) }),
49
- }), [onMonthSelect, onYearSelect, onDecadeYearSelect, setViewMode, activeMonths]);
50
- return (react_1.default.createElement("div", { className: `uxf-date-range-picker ${activeMonths.length > 1 ? "uxf-date-range-picker--multi-month" : ""}` },
49
+ }), [activeMonths, onYearSelect, onMonthSelect, onDecadeYearSelect]);
50
+ return (react_1.default.createElement("div", { className: `uxf-date-range-picker ${activeMonths.length > 1 ? "uxf-date-range-picker--multi-month" : ""}`, style: props.style },
51
51
  props.children,
52
52
  datePickerComponents[viewMode],
53
53
  props.bottomContent && react_1.default.createElement("div", { className: "uxf-date-range-picker__bottom-content" }, props.bottomContent)));
@@ -1,5 +1,5 @@
1
1
  import { DatesConfig } from "@uxf/datepicker/utils/types";
2
- import { FC, PropsWithChildren, ReactNode } from "react";
2
+ import { CSSProperties, FC, PropsWithChildren, ReactNode } from "react";
3
3
  import { DateRangePickerValueType } from "./types";
4
4
  export interface DateRangePickerProps {
5
5
  bottomContent?: ReactNode;
@@ -8,6 +8,7 @@ export interface DateRangePickerProps {
8
8
  numberOfMonths?: number;
9
9
  onChange: (data: DateRangePickerValueType) => void;
10
10
  selectedDates: DateRangePickerValueType;
11
+ style?: CSSProperties;
11
12
  /** @deprecated */
12
13
  unavailableDates?: Date[];
13
14
  }
@@ -46,7 +46,7 @@ const DateRangePicker = (props) => {
46
46
  unavailableDates: props.unavailableDates,
47
47
  });
48
48
  return (react_1.default.createElement(date_range_picker_context_1.DateRangePickerContext.Provider, { value: dateRangePickerProps },
49
- react_1.default.createElement(date_range_picker_content_1.DateRangePickerContent, { bottomContent: props.bottomContent })));
49
+ react_1.default.createElement(date_range_picker_content_1.DateRangePickerContent, { bottomContent: props.bottomContent, style: props.style })));
50
50
  };
51
51
  exports.DateRangePicker = DateRangePicker;
52
52
  exports.DateRangePicker.displayName = "UxfUiDatePicker";
@@ -1,5 +1,5 @@
1
1
  import { DatesConfig } from "@uxf/datepicker/utils/types";
2
- import React, { ReactNode } from "react";
2
+ import React, { CSSProperties, ReactNode } from "react";
3
3
  import { InputWithPopoverProps } from "../_input-with-popover";
4
4
  export declare const ALLOWED_DATE_FORMAT: string[];
5
5
  export declare const DISPLAY_DATE_FORMAT = "D. M. YYYY";
@@ -13,6 +13,7 @@ export interface DateRangePickerInputProps extends Omit<InputWithPopoverProps<st
13
13
  datesConfig?: DatesConfig[];
14
14
  numberOfMonths?: number;
15
15
  placeholder?: string;
16
+ style?: CSSProperties;
16
17
  triggerElement?: ReactNode;
17
18
  /** @deprecated */
18
19
  unavailableDates?: Date[];
@@ -57,6 +57,6 @@ exports.DateRangePickerInput = (0, react_1.forwardRef)((props, ref) => {
57
57
  const selectedDates = props.value
58
58
  ? { from: parsedFrom.isValid() ? parsedFrom.toDate() : null, to: parsedTo.isValid() ? parsedTo.toDate() : null }
59
59
  : null;
60
- return (react_1.default.createElement(_input_with_popover_1._InputWithPopover, { ...restProps, placeholder: props.placeholder || "Vyberte datum...", ref: ref, triggerElement: (_a = props.triggerElement) !== null && _a !== void 0 ? _a : react_1.default.createElement(icon_1.Icon, { name: "calendar", size: 20 }), value: (_b = props.value) !== null && _b !== void 0 ? _b : "" }, ({ close }) => (react_1.default.createElement(date_range_picker_1.DateRangePicker, { bottomContent: props.bottomContent, closePopoverHandler: close, datesConfig: props.datesConfig, numberOfMonths: numberOfMonths, onChange: onDatePickerChange, selectedDates: selectedDates, unavailableDates: props.unavailableDates }))));
60
+ return (react_1.default.createElement(_input_with_popover_1._InputWithPopover, { ...restProps, placeholder: props.placeholder || "Vyberte datum...", ref: ref, triggerElement: (_a = props.triggerElement) !== null && _a !== void 0 ? _a : react_1.default.createElement(icon_1.Icon, { name: "calendar", size: 20 }), value: (_b = props.value) !== null && _b !== void 0 ? _b : "" }, ({ close }) => (react_1.default.createElement(date_range_picker_1.DateRangePicker, { bottomContent: props.bottomContent, closePopoverHandler: close, datesConfig: props.datesConfig, numberOfMonths: numberOfMonths, onChange: onDatePickerChange, selectedDates: selectedDates, style: props.style, unavailableDates: props.unavailableDates }))));
61
61
  });
62
62
  exports.DateRangePickerInput.displayName = "UxfUiDatePickerInput";
@@ -1,5 +1,5 @@
1
1
  import { FileResponse, FormControlProps, UploadOptions } from "@uxf/ui/types";
2
- import React, { ReactNode } from "react";
2
+ import React, { CSSProperties, ReactNode } from "react";
3
3
  import { IconName } from "../icon/types";
4
4
  import { Accept, DropzoneFile } from "./types";
5
5
  export interface DropzoneInputProps extends FormControlProps<DropzoneFile[] | undefined> {
@@ -16,5 +16,6 @@ export interface DropzoneInputProps extends FormControlProps<DropzoneFile[] | un
16
16
  noDrag?: boolean;
17
17
  onUploadError?: (err: unknown) => void;
18
18
  onUploadFile: (file: File, options?: UploadOptions) => Promise<FileResponse>;
19
+ style?: CSSProperties;
19
20
  }
20
21
  export declare const DropzoneInput: React.ForwardRefExoticComponent<DropzoneInputProps & React.RefAttributes<HTMLDivElement>>;
@@ -125,7 +125,7 @@ exports.DropzoneInput = (0, react_1.forwardRef)((props, ref) => {
125
125
  const labelOnCLick = (e) => {
126
126
  e.stopPropagation();
127
127
  };
128
- return (react_1.default.createElement("div", { className: `uxf-dropzone ${(_a = props.className) !== null && _a !== void 0 ? _a : ""}` },
128
+ return (react_1.default.createElement("div", { className: `uxf-dropzone ${(_a = props.className) !== null && _a !== void 0 ? _a : ""}`, style: props.style },
129
129
  react_1.default.createElement("label", { ...getRootProps({
130
130
  className: (0, cx_1.cx)("uxf-dropzone__label", props.isInvalid && classes_1.CLASSES.IS_INVALID, props.isDisabled && classes_1.CLASSES.IS_DISABLED, props.noClick && "cursor-auto"),
131
131
  onClick: labelOnCLick,
@@ -1,10 +1,12 @@
1
1
  import { FormControlProps } from "@uxf/ui/types";
2
- import { FC, ReactNode } from "react";
2
+ import { CSSProperties, FC, ReactNode } from "react";
3
3
  import { DropzoneFile } from "./types";
4
4
  export interface DropzoneListProps extends FormControlProps<DropzoneFile[] | undefined> {
5
5
  className?: string;
6
6
  errorText?: string;
7
+ isDownloadableOnClick?: boolean;
7
8
  onRemoveConfirm?: (file: DropzoneFile) => Promise<boolean>;
8
9
  renderItem?: (file: DropzoneFile) => ReactNode;
10
+ style?: CSSProperties;
9
11
  }
10
12
  export declare const DropzoneList: FC<DropzoneListProps>;
@@ -65,14 +65,14 @@ const DropzoneList = (props) => {
65
65
  if (((_a = props.value) === null || _a === void 0 ? void 0 : _a.length) === 0) {
66
66
  return null;
67
67
  }
68
- return (react_1.default.createElement("ul", { className: `uxf-dropzone-list ${(_b = props.className) !== null && _b !== void 0 ? _b : ""}` }, (_c = props.value) === null || _c === void 0 ? void 0 : _c.map((file) => {
68
+ return (react_1.default.createElement("ul", { className: `uxf-dropzone-list ${(_b = props.className) !== null && _b !== void 0 ? _b : ""}`, style: props.style }, (_c = props.value) === null || _c === void 0 ? void 0 : _c.map((file) => {
69
69
  var _a, _b, _c;
70
70
  const isUploading = file.id < 0 && !file.error;
71
71
  return ((_b = (_a = props.renderItem) === null || _a === void 0 ? void 0 : _a.call(props, file)) !== null && _b !== void 0 ? _b : (react_1.default.createElement("li", { className: "uxf-dropzone-list__item-wrapper", key: file.id },
72
72
  react_1.default.createElement("div", { className: (0, cx_1.cx)("uxf-dropzone-list__item", !!file.error && classes_1.CLASSES.IS_INVALID) },
73
73
  react_1.default.createElement("div", { className: "uxf-dropzone-list__item__block" },
74
74
  react_1.default.createElement(icon_1.Icon, { className: "uxf-dropzone-list__item__block__icon", name: (0, get_file_icon_1.getIconNameFromFileExtension)(file.extension.toLowerCase()) }),
75
- (context === null || context === void 0 ? void 0 : context.domain) && file.id > 0 ? (react_1.default.createElement("a", { className: "uxf-dropzone-list__item__block__file-name-link", href: (0, get_file_url_1.getFileUrl)(context.domain, file), target: "_blank", rel: "noreferrer noopenner" }, file.name)) : (react_1.default.createElement("span", { className: "uxf-dropzone-list__item__block__file-name" }, file.name))),
75
+ (context === null || context === void 0 ? void 0 : context.domain) && file.id > 0 ? (react_1.default.createElement("a", { className: "uxf-dropzone-list__item__block__file-name-link", download: props.isDownloadableOnClick ? file.name : undefined, href: (0, get_file_url_1.getFileUrl)(context.domain, file), rel: !props.isDownloadableOnClick ? "noreferrer noopenner" : undefined, target: !props.isDownloadableOnClick ? "_blank" : undefined }, file.name)) : (react_1.default.createElement("span", { className: "uxf-dropzone-list__item__block__file-name" }, file.name))),
76
76
  react_1.default.createElement("div", { className: "uxf-dropzone-list__item__block" },
77
77
  isUploading ? (react_1.default.createElement(loader_1.Loader, { size: "sm" })) : (!file.error &&
78
78
  ((_c = file.originalFile) === null || _c === void 0 ? void 0 : _c.size) && (react_1.default.createElement("span", { className: "uxf-dropzone-list__item__block__file-size" }, formatBytes(file.originalFile.size)))),
@@ -57,14 +57,14 @@ function Default() {
57
57
  });
58
58
  };
59
59
  const storyDropzone = (react_1.default.createElement("div", { className: "space-y-2" },
60
- react_1.default.createElement(index_1.Dropzone, { helperText: "Disabled drag 'n' drop", label: "Use drag and drop or click to upload", noDrag: true, onChange: onChange, onUploadFile: upload_file_mock_1.uploadFile, value: files }),
61
- react_1.default.createElement(index_1.Dropzone, { helperText: "Disabled onClick upload", label: react_1.default.createElement("span", { className: "bg-primary-600 rounded-lg px-4 py-2 font-bold text-white" }, "JSX label"), noClick: true, onChange: onChange, onUploadFile: upload_file_mock_1.uploadFile, value: files }),
62
- react_1.default.createElement(index_1.Dropzone, { accept: { "image/*": [] }, label: "Only images upload", onChange: onChange, onUploadFile: upload_file_mock_1.uploadFile, value: files }),
63
- react_1.default.createElement(index_1.Dropzone, { label: "Single file upload", maxFilesCount: 1, onChange: onChange, onUploadFile: upload_file_mock_1.uploadFile, value: files }),
64
- react_1.default.createElement(index_1.Dropzone, { isDisabled: true, label: "Disabled dropzone", onChange: onChange, onUploadFile: upload_file_mock_1.uploadFile, value: files }),
65
- react_1.default.createElement(index_1.Dropzone.List, { errorText: "Chyba p\u0159i nahr\u00E1v\u00E1n\u00ED souboru", onChange: onChange, onRemoveConfirm: onRemoveConfirm, value: files }),
60
+ react_1.default.createElement(index_1.Dropzone, { helperText: "Disabled drag 'n' drop", label: "Use drag and drop or click to upload", noDrag: true, onChange: onChange, onUploadFile: upload_file_mock_1.uploadFile, value: files, name: "dropzone-disabled-drag-and-drop" }),
61
+ react_1.default.createElement(index_1.Dropzone, { helperText: "Disabled onClick upload", label: react_1.default.createElement("span", { className: "bg-primary-600 rounded-lg px-4 py-2 font-bold text-white" }, "JSX label"), noClick: true, onChange: onChange, onUploadFile: upload_file_mock_1.uploadFile, value: files, name: "dropzone-disabled-click" }),
62
+ react_1.default.createElement(index_1.Dropzone, { accept: { "image/*": [] }, label: "Only images upload", onChange: onChange, onUploadFile: upload_file_mock_1.uploadFile, value: files, name: "dropzone-only-images" }),
63
+ react_1.default.createElement(index_1.Dropzone, { label: "Single file upload", maxFilesCount: 1, onChange: onChange, onUploadFile: upload_file_mock_1.uploadFile, value: files, name: "dropzone-single-file" }),
64
+ react_1.default.createElement(index_1.Dropzone, { isDisabled: true, label: "Disabled dropzone", onChange: onChange, onUploadFile: upload_file_mock_1.uploadFile, value: files, name: "dropzone-disabled" }),
65
+ react_1.default.createElement(index_1.Dropzone.List, { errorText: "Chyba p\u0159i nahr\u00E1v\u00E1n\u00ED souboru", onChange: onChange, onRemoveConfirm: onRemoveConfirm, value: files, name: "dropzone-error-message" }),
66
66
  react_1.default.createElement(index_1.Dropzone.List, { onChange: onChange, onRemoveConfirm: onRemoveConfirm, renderItem: (file) => (react_1.default.createElement("li", { key: file.id },
67
- react_1.default.createElement("pre", null, JSON.stringify(file, null, 4)))), value: files })));
67
+ react_1.default.createElement("pre", null, JSON.stringify(file, null, 4)))), value: files, name: "dropzone-list" })));
68
68
  return (react_1.default.createElement(context_1.UiContextProvider, { value: (0, get_provider_config_1.getProviderConfig)() },
69
69
  react_1.default.createElement("div", { className: "flex flex-col lg:flex-row" },
70
70
  react_1.default.createElement("div", { className: "space-y-2 p-20 lg:w-1/2" }, storyDropzone))));
@@ -60,7 +60,7 @@ exports.FileInput = (0, react_1.forwardRef)((props, ref) => {
60
60
  }
61
61
  props.onChange(value, event);
62
62
  };
63
- return (react_1.default.createElement(form_component_1.FormComponent, { className: (0, cx_1.cx)(input.focused && classes_1.CLASSES.IS_FOCUSED, props.isDisabled && classes_1.CLASSES.IS_DISABLED, props.isInvalid && classes_1.CLASSES.IS_INVALID, props.isReadOnly && classes_1.CLASSES.IS_READONLY), errorId: errorId, form: props.form, helperText: props.helperText, inputId: id, isRequired: props.isRequired, label: props.label, hiddenLabel: props.hiddenLabel },
63
+ return (react_1.default.createElement(form_component_1.FormComponent, { className: (0, cx_1.cx)(input.focused && classes_1.CLASSES.IS_FOCUSED, props.isDisabled && classes_1.CLASSES.IS_DISABLED, props.isInvalid && classes_1.CLASSES.IS_INVALID, props.isReadOnly && classes_1.CLASSES.IS_READONLY), errorId: errorId, form: props.form, helperText: props.helperText, inputId: id, isRequired: props.isRequired, label: props.label, hiddenLabel: props.hiddenLabel, name: props.name },
64
64
  react_1.default.createElement(react_1.default.Fragment, null,
65
65
  react_1.default.createElement(_file_input_base_1._FileInputBase, { accept: props.accept, "aria-describedby": errorId, "aria-invalid": props.isInvalid, className: `uxf-file-input__input ${(_a = props.className) !== null && _a !== void 0 ? _a : ""}`, form: props.form, id: id, isDisabled: props.isDisabled || isUploading, isInvalid: props.isInvalid, isReadOnly: props.isReadOnly, isRequired: props.isRequired, maxFileSize: props.maxFileSize, name: props.name, onBlur: input.onBlur, onChange: onChange, onFocus: input.onFocus, onUploadError: props.onUploadError, onUploadFile: onUploadFile, ref: (0, composeRefs_1.composeRefs)(ref, innerRef), value: props.value }),
66
66
  react_1.default.createElement("label", { className: (0, cx_1.cx)("uxf-input", "uxf-file-input__label", input.focused && classes_1.CLASSES.IS_FOCUSED, (props.isDisabled || props.isReadOnly) && classes_1.CLASSES.IS_DISABLED, props.isInvalid && classes_1.CLASSES.IS_INVALID, isUploading && classes_1.CLASSES.IS_LOADING, isUploading && "uxf-file-input__label--has-right-addon", `uxf-input--size-${(_b = props.size) !== null && _b !== void 0 ? _b : "default"}`, `uxf-input--variant-${(_c = props.variant) !== null && _c !== void 0 ? _c : "default"}`), htmlFor: id },
@@ -40,9 +40,9 @@ function Default() {
40
40
  console.log("Upload error", err);
41
41
  };
42
42
  const storyFileInputs = (react_1.default.createElement("div", { className: "space-y-2" },
43
- react_1.default.createElement(index_1.FileInput, { label: "Default file input", onChange: onChange, onUploadError: onUploadError, onUploadFile: upload_file_mock_1.uploadFile, value: value }),
44
- react_1.default.createElement(index_1.FileInput, { helperText: "Error file input", id: "error-file-input", isInvalid: true, label: "Error file input", onChange: onChange, onUploadError: onUploadError, onUploadFile: upload_file_mock_1.uploadFile, value: value, isClearable: true }),
45
- react_1.default.createElement(index_1.FileInput, { helperText: "Readonly/disabled file input", label: "Readonly/disabled file input", isReadOnly: true, isDisabled: true, onChange: onChange, onUploadError: onUploadError, onUploadFile: upload_file_mock_1.uploadFile, value: value })));
43
+ react_1.default.createElement(index_1.FileInput, { label: "Default file input", onChange: onChange, onUploadError: onUploadError, onUploadFile: upload_file_mock_1.uploadFile, value: value, name: "file-input" }),
44
+ react_1.default.createElement(index_1.FileInput, { helperText: "Error file input", id: "error-file-input", isInvalid: true, label: "Error file input", onChange: onChange, onUploadError: onUploadError, onUploadFile: upload_file_mock_1.uploadFile, value: value, isClearable: true, name: "file-input-error-message" }),
45
+ react_1.default.createElement(index_1.FileInput, { helperText: "Readonly/disabled file input", label: "Readonly/disabled file input", isReadOnly: true, isDisabled: true, onChange: onChange, onUploadError: onUploadError, onUploadFile: upload_file_mock_1.uploadFile, value: value, name: "file-input-read-only" })));
46
46
  return (react_1.default.createElement(react_1.default.Fragment, null,
47
47
  react_1.default.createElement("div", { className: "space-y-2 p-20" }, storyFileInputs)));
48
48
  }
@@ -9,5 +9,6 @@ export interface FormComponentProps {
9
9
  inputId: string;
10
10
  isRequired?: boolean;
11
11
  label?: ReactNode;
12
+ name: string;
12
13
  }
13
14
  export declare const FormComponent: React.ForwardRefExoticComponent<FormComponentProps & React.RefAttributes<HTMLDivElement>>;
@@ -31,7 +31,7 @@ const label_1 = require("../label");
31
31
  exports.FormComponent = (0, react_1.forwardRef)((props, ref) => {
32
32
  var _a;
33
33
  const helperTextClassName = (0, cx_1.cx)("uxf-helper-text", props.errorId && classes_1.CLASSES.IS_INVALID);
34
- return (react_1.default.createElement("div", { className: `uxf-form-component ${(_a = props.className) !== null && _a !== void 0 ? _a : ""}`, ref: ref },
34
+ return (react_1.default.createElement("div", { className: `uxf-form-component ${(_a = props.className) !== null && _a !== void 0 ? _a : ""}`, ref: ref, "data-name": props.name },
35
35
  react_1.default.createElement("div", { className: "uxf-form-component__label" },
36
36
  react_1.default.createElement(label_1.Label, { isHidden: props.hiddenLabel, isRequired: props.isRequired, htmlFor: props.inputId, form: props.form }, props.label)),
37
37
  react_1.default.createElement("div", { className: "uxf-form-component__input" },
@@ -13,13 +13,13 @@ exports.default = {
13
13
  };
14
14
  function Default() {
15
15
  return (react_1.default.createElement("div", { className: "space-y-4" },
16
- react_1.default.createElement(form_component_1.FormComponent, { inputId: "default", helperText: "helper text", label: "Default" },
16
+ react_1.default.createElement(form_component_1.FormComponent, { inputId: "default", helperText: "helper text", label: "Default", name: "form-component" },
17
17
  react_1.default.createElement("div", null, "Default")),
18
- react_1.default.createElement(form_component_1.FormComponent, { inputId: "default", helperText: "helper text", label: "Default", isRequired: true },
18
+ react_1.default.createElement(form_component_1.FormComponent, { inputId: "default", helperText: "helper text", label: "Default", isRequired: true, name: "form-component-required" },
19
19
  react_1.default.createElement("div", null, "Is required")),
20
- react_1.default.createElement(form_component_1.FormComponent, { inputId: "error", helperText: "helper text", label: "Default", errorId: "error--error", isRequired: true },
20
+ react_1.default.createElement(form_component_1.FormComponent, { inputId: "error", helperText: "helper text", label: "Default", errorId: "error--error", isRequired: true, name: "form-component-invalid" },
21
21
  react_1.default.createElement("div", null, "Is invalid")),
22
- react_1.default.createElement(form_component_1.FormComponent, { inputId: "error", helperText: "helper text", label: "Default", errorId: "error--error", hiddenLabel: true },
22
+ react_1.default.createElement(form_component_1.FormComponent, { inputId: "error", helperText: "helper text", label: "Default", errorId: "error--error", hiddenLabel: true, name: "form-component-hidden-label" },
23
23
  react_1.default.createElement("div", null, "hidden label"))));
24
24
  }
25
25
  exports.Default = Default;
@@ -1,5 +1,5 @@
1
1
  import { FormControlProps } from "@uxf/ui/types/form-control-props";
2
- import React, { KeyboardEventHandler } from "react";
2
+ import React, { CSSProperties, KeyboardEventHandler } from "react";
3
3
  type InputMode = "none" | "text" | "tel" | "url" | "email" | "numeric" | "decimal" | "search" | undefined;
4
4
  export interface InputElementProps extends FormControlProps<string> {
5
5
  "aria-describedby"?: string;
@@ -18,6 +18,7 @@ export interface InputElementProps extends FormControlProps<string> {
18
18
  min?: number | string;
19
19
  pattern?: string;
20
20
  step?: number | string;
21
+ style?: CSSProperties;
21
22
  }
22
23
  export declare const InputElement: React.ForwardRefExoticComponent<InputElementProps & React.RefAttributes<HTMLInputElement>>;
23
24
  export {};
@@ -28,6 +28,6 @@ const react_1 = __importStar(require("react"));
28
28
  exports.InputElement = (0, react_1.forwardRef)((props, ref) => {
29
29
  const onChange = (event) => props.onChange(event.target.value, event);
30
30
  const filteredProps = Object.fromEntries(Object.entries(props).filter((p) => p[0].startsWith("aria-") || p[0].startsWith("data-")));
31
- return (react_1.default.createElement("input", { ...filteredProps, "aria-describedby": props["aria-describedby"], "aria-invalid": props.isInvalid, autoComplete: props.autoComplete, autoFocus: props.autoFocus, className: "uxf-input__element", disabled: props.isDisabled, form: props.form, id: props.id, inputMode: props.inputMode, max: props.max, maxLength: props.maxLength, min: props.min, minLength: props.minLength, name: props.name, onBlur: props.onBlur, onChange: onChange, onFocus: props.onFocus, onKeyDown: props.onKeyDown, pattern: props.pattern, placeholder: props.placeholder, readOnly: props.isReadOnly, ref: ref, step: props.step, tabIndex: props.isReadOnly ? -1 : undefined, type: props.type, value: props.value }));
31
+ return (react_1.default.createElement("input", { ...filteredProps, "aria-describedby": props["aria-describedby"], "aria-invalid": props.isInvalid, autoComplete: props.autoComplete, autoFocus: props.autoFocus, className: "uxf-input__element", disabled: props.isDisabled, form: props.form, id: props.id, inputMode: props.inputMode, max: props.max, maxLength: props.maxLength, min: props.min, minLength: props.minLength, name: props.name, onBlur: props.onBlur, onChange: onChange, onFocus: props.onFocus, onKeyDown: props.onKeyDown, pattern: props.pattern, placeholder: props.placeholder, readOnly: props.isReadOnly, ref: ref, step: props.step, style: props.style, tabIndex: props.isReadOnly ? -1 : undefined, type: props.type, value: props.value }));
32
32
  });
33
33
  exports.InputElement.displayName = "UxfUiInputElement";
package/input/input.d.ts CHANGED
@@ -1,6 +1,6 @@
1
1
  import { useInputFocus } from "@uxf/core/hooks/useInputFocus";
2
2
  import { InputGroupSizes, InputGroupVariants } from "@uxf/ui/input/theme";
3
- import React, { ReactNode, Ref } from "react";
3
+ import React, { CSSProperties, ReactNode, Ref } from "react";
4
4
  export interface InputProps {
5
5
  children: ReactNode;
6
6
  customInputElementDisplayName?: string;
@@ -8,6 +8,7 @@ export interface InputProps {
8
8
  inputFocus?: ReturnType<typeof useInputFocus>;
9
9
  variant?: keyof InputGroupVariants;
10
10
  size?: keyof InputGroupSizes;
11
+ style?: CSSProperties;
11
12
  isDisabled?: boolean;
12
13
  isFocused?: boolean;
13
14
  isInvalid?: boolean;
package/input/input.js CHANGED
@@ -48,7 +48,7 @@ exports.Input = (0, react_1.forwardRef)((props, ref) => {
48
48
  const rightElement = getChildrenById(children, "UxfUiInputRightElement");
49
49
  const input = (0, useInputFocus_1.useInputFocus)(inputRef, (_a = inputFocus === null || inputFocus === void 0 ? void 0 : inputFocus.onBlur) !== null && _a !== void 0 ? _a : mainInput === null || mainInput === void 0 ? void 0 : mainInput.props.onBlur, (_b = inputFocus === null || inputFocus === void 0 ? void 0 : inputFocus.onFocus) !== null && _b !== void 0 ? _b : mainInput === null || mainInput === void 0 ? void 0 : mainInput.props.onFocus);
50
50
  const inputGroupClasses = (0, cx_1.cx)("uxf-input", leftAddon && "uxf-input--has-left-addon", leftElement && "uxf-input--has-left-element", rightElement && "uxf-input--has-right-element", rightAddon && "uxf-input--has-right-addon", isApplicable(isFocused, mainInput === null || mainInput === void 0 ? void 0 : mainInput.props.isFocused, inputFocus === null || inputFocus === void 0 ? void 0 : inputFocus.focused, input.focused) && classes_1.CLASSES.IS_FOCUSED, isApplicable(isInvalid, mainInput === null || mainInput === void 0 ? void 0 : mainInput.props.isInvalid) && classes_1.CLASSES.IS_INVALID, isApplicable(isDisabled, mainInput === null || mainInput === void 0 ? void 0 : mainInput.props.isDisabled) && classes_1.CLASSES.IS_DISABLED, isApplicable(isReadOnly, mainInput === null || mainInput === void 0 ? void 0 : mainInput.props.isReadOnly) && classes_1.CLASSES.IS_READONLY, `uxf-input--size-${size !== null && size !== void 0 ? size : "default"}`, `uxf-input--variant-${variant !== null && variant !== void 0 ? variant : "default"}`, className);
51
- return (react_1.default.createElement("div", { className: inputGroupClasses, ref: wrapperRef, tabIndex: tabIndex },
51
+ return (react_1.default.createElement("div", { className: inputGroupClasses, ref: wrapperRef, style: props.style, tabIndex: tabIndex },
52
52
  leftAddon,
53
53
  react_1.default.createElement("div", { className: "uxf-input__wrapper", onClick: input.focus, ...restProps },
54
54
  leftElement,
@@ -44,26 +44,26 @@ function Default() {
44
44
  react_1.default.createElement(input_1.Input, null,
45
45
  react_1.default.createElement(input_1.Input.LeftAddon, null, "InputLeftAddon"),
46
46
  react_1.default.createElement(input_1.Input.LeftElement, null, "InputLeftElement"),
47
- react_1.default.createElement(input_1.Input.Element, { value: value, onChange: onChange, placeholder: "Placeholder", isInvalid: isInvalid }),
47
+ react_1.default.createElement(input_1.Input.Element, { value: value, onChange: onChange, placeholder: "Placeholder", isInvalid: isInvalid, name: "input-element-1" }),
48
48
  react_1.default.createElement(input_1.Input.RightElement, null, "InputRightElement"),
49
49
  react_1.default.createElement(input_1.Input.RightAddon, null, "InputRightAddon")),
50
50
  react_1.default.createElement(input_1.Input, null,
51
51
  react_1.default.createElement(input_1.Input.LeftAddon, null, "https://"),
52
- react_1.default.createElement(input_1.Input.Element, { value: value, onChange: onChange, placeholder: "Placeholder", isInvalid: isInvalid }),
52
+ react_1.default.createElement(input_1.Input.Element, { value: value, onChange: onChange, placeholder: "Placeholder", isInvalid: isInvalid, name: "input-element-2" }),
53
53
  react_1.default.createElement(input_1.Input.RightAddon, null, ".uxf.cz")),
54
54
  react_1.default.createElement(input_1.Input, null,
55
- react_1.default.createElement(input_1.Input.Element, { value: value, onChange: onChange, placeholder: "Placeholder", isInvalid: isInvalid }),
55
+ react_1.default.createElement(input_1.Input.Element, { value: value, onChange: onChange, placeholder: "Placeholder", isInvalid: isInvalid, name: "input-element-3" }),
56
56
  react_1.default.createElement(input_1.Input.RightAddon, null, ".test.cz")),
57
57
  react_1.default.createElement(input_1.Input, null,
58
58
  react_1.default.createElement(input_1.Input.LeftElement, null, "\uD83C\uDF37"),
59
- react_1.default.createElement(input_1.Input.Element, { value: value, onChange: onChange, placeholder: "Placeholder", isInvalid: isInvalid }),
59
+ react_1.default.createElement(input_1.Input.Element, { value: value, onChange: onChange, placeholder: "Placeholder", isInvalid: isInvalid, name: "input-element-4" }),
60
60
  react_1.default.createElement(input_1.Input.RightElement, null, "\uD83D\uDD14")),
61
61
  react_1.default.createElement(input_1.Input, null,
62
- react_1.default.createElement(input_1.Input.Element, { value: value, onChange: onChange, placeholder: "Placeholder", isInvalid: isInvalid })),
62
+ react_1.default.createElement(input_1.Input.Element, { value: value, onChange: onChange, placeholder: "Placeholder", isInvalid: isInvalid, name: "input-element-5" })),
63
63
  react_1.default.createElement(input_1.Input, null,
64
- react_1.default.createElement(input_1.Input.Element, { value: value, onChange: onChange, placeholder: "Disabled", isInvalid: isInvalid, isDisabled: true })),
64
+ react_1.default.createElement(input_1.Input.Element, { value: value, onChange: onChange, placeholder: "Disabled", isInvalid: isInvalid, isDisabled: true, name: "input-element-6" })),
65
65
  react_1.default.createElement(input_1.Input, null,
66
- react_1.default.createElement(input_1.Input.Element, { value: value, onChange: onChange, placeholder: "Read Only", isInvalid: isInvalid, isReadOnly: true }))));
66
+ react_1.default.createElement(input_1.Input.Element, { value: value, onChange: onChange, placeholder: "Read Only", isInvalid: isInvalid, isReadOnly: true, name: "input-element-7" }))));
67
67
  const onInvalidChange = (e) => setInvalid(e.target.checked);
68
68
  return (react_1.default.createElement(react_1.default.Fragment, null,
69
69
  react_1.default.createElement("input", { type: "checkbox", checked: isInvalid, onChange: onInvalidChange }),
@@ -77,7 +77,7 @@ function Sizes() {
77
77
  return (react_1.default.createElement("div", { className: "space-y-4" }, config.sizes.map((size) => (react_1.default.createElement(input_1.Input, { key: size, size: size },
78
78
  react_1.default.createElement(input_1.Input.LeftAddon, null, "LeftAddon"),
79
79
  react_1.default.createElement(input_1.Input.LeftElement, null, "\uD83C\uDF37"),
80
- react_1.default.createElement(input_1.Input.Element, { value: value, onChange: onChange, placeholder: size }),
80
+ react_1.default.createElement(input_1.Input.Element, { value: value, onChange: onChange, placeholder: size, name: `input-element-size-${size}` }),
81
81
  react_1.default.createElement(input_1.Input.RightElement, null, "\uD83D\uDD14"),
82
82
  react_1.default.createElement(input_1.Input.RightAddon, null, "RightAddon"))))));
83
83
  }
@@ -88,7 +88,7 @@ function ComponentStructure() {
88
88
  react_1.default.createElement(input_1.Input, null,
89
89
  react_1.default.createElement(input_1.Input.LeftAddon, null, "Left addon"),
90
90
  react_1.default.createElement(input_1.Input.LeftElement, null, "Left element"),
91
- react_1.default.createElement(input_1.Input.Element, { value: value, onChange: onChange }),
91
+ react_1.default.createElement(input_1.Input.Element, { value: value, onChange: onChange, name: "input-element-component-structure" }),
92
92
  react_1.default.createElement(input_1.Input.RightElement, null, "Right element"),
93
93
  react_1.default.createElement(input_1.Input.RightAddon, null, "Right addon"))));
94
94
  }
@@ -53,7 +53,7 @@ function handleInputKeyDownRecursion(selectedOptions, onRemove) {
53
53
  }
54
54
  }
55
55
  const OptionElement = (props) => {
56
- return (react_3.default.createElement(react_2.Combobox.Option, { className: (optionState) => (0, cx_1.cx)("uxf-dropdown__item", optionState.active && props.withoutPopover && classes_1.CLASSES.IS_ACTIVE, optionState.disabled && classes_1.CLASSES.IS_DISABLED, optionState.selected && classes_1.CLASSES.IS_SELECTED), disabled: props.option.disabled, value: props.option }, (optionState) => (react_3.default.createElement(react_3.default.Fragment, null, props.withCheckboxes ? (react_3.default.createElement(checkbox_input_1.CheckboxInput, { isDisabled: optionState.disabled, isFocused: optionState.active, label: props.label, onChange: props.handleCheckboxChange, value: optionState.selected })) : (props.label)))));
56
+ return (react_3.default.createElement(react_2.Combobox.Option, { className: (optionState) => (0, cx_1.cx)("uxf-dropdown__item", optionState.active && props.withoutPopover && classes_1.CLASSES.IS_ACTIVE, optionState.disabled && classes_1.CLASSES.IS_DISABLED, optionState.selected && classes_1.CLASSES.IS_SELECTED), disabled: props.option.disabled, value: props.option }, (optionState) => (react_3.default.createElement(react_3.default.Fragment, null, props.withCheckboxes ? (react_3.default.createElement(checkbox_input_1.CheckboxInput, { isDisabled: optionState.disabled, isFocused: optionState.active, label: props.label, onChange: props.handleCheckboxChange, value: optionState.selected, name: props.option.id.toString() })) : (props.label)))));
57
57
  };
58
58
  OptionElement.displayName = "UxfUiMultiComboboxOption";
59
59
  exports._MultiComboboxBase = (0, react_3.forwardRef)((props, ref) => {
@@ -114,7 +114,7 @@ exports._MultiComboboxBase = (0, react_3.forwardRef)((props, ref) => {
114
114
  var _a;
115
115
  (_a = props.onBlur) === null || _a === void 0 ? void 0 : _a.call(props, e);
116
116
  };
117
- return (react_3.default.createElement(react_2.Combobox, { as: "div", by: "id", className: (0, cx_1.cx)(withoutPopover && "uxf-form-component", "uxf-multi-combobox", props.isInvalid && classes_1.CLASSES.IS_INVALID, props.isRequired && classes_1.CLASSES.IS_REQUIRED, props.isReadOnly && classes_1.CLASSES.IS_READONLY, props.isDisabled && classes_1.CLASSES.IS_DISABLED, props.className), disabled: props.isDisabled || props.isReadOnly, multiple: true, onChange: handleComboboxValueChange, value: selectedOptions }, (renderProps) => {
117
+ return (react_3.default.createElement(react_2.Combobox, { as: "div", by: "id", className: (0, cx_1.cx)(withoutPopover && "uxf-form-component", "uxf-multi-combobox", props.isInvalid && classes_1.CLASSES.IS_INVALID, props.isRequired && classes_1.CLASSES.IS_REQUIRED, props.isReadOnly && classes_1.CLASSES.IS_READONLY, props.isDisabled && classes_1.CLASSES.IS_DISABLED, props.className), disabled: props.isDisabled || props.isReadOnly, multiple: true, onChange: handleComboboxValueChange, style: props.style, value: selectedOptions }, (renderProps) => {
118
118
  var _a, _b;
119
119
  const inputElement = (react_3.default.createElement(react_3.default.Fragment, null,
120
120
  react_3.default.createElement(react_2.Combobox.Button, { "aria-invalid": props.isInvalid, "aria-describedby": props.errorId, as: "div", className: (0, cx_1.cx)("uxf-multi-combobox__button", (renderProps.open || input.focused) && classes_1.CLASSES.IS_FOCUSED, renderProps.disabled && classes_1.CLASSES.IS_DISABLED, props.isReadOnly && classes_1.CLASSES.IS_READONLY, props.isInvalid && classes_1.CLASSES.IS_INVALID, dropdown.placement === "bottom" && `${classes_1.CLASSES.IS_OPEN}--bottom`, dropdown.placement === "top" && `${classes_1.CLASSES.IS_OPEN}--top`, renderProps.open && classes_1.CLASSES.IS_OPEN), onBlur: input.onBlur, onFocus: input.onFocus, ref: stableRef },
@@ -53,8 +53,8 @@ exports.MultiCombobox = (0, react_2.forwardRef)((props, ref) => {
53
53
  if (!props.withPopover) {
54
54
  return react_2.default.createElement(_multi_combobox_base_1._MultiComboboxBase, { ...props, errorId: errorId, ref: ref });
55
55
  }
56
- return (react_2.default.createElement(form_component_1.FormComponent, { className: (0, cx_1.cx)(props.isDisabled && classes_1.CLASSES.IS_DISABLED, props.isInvalid && classes_1.CLASSES.IS_INVALID, props.isReadOnly && classes_1.CLASSES.IS_READONLY), errorId: errorId, form: props.form, helperText: props.helperText, inputId: fakeInputId, isRequired: props.isRequired, label: props.label },
57
- react_2.default.createElement(react_1.Popover, { className: (0, cx_1.cx)("uxf-multi-combobox", props.isInvalid && classes_1.CLASSES.IS_INVALID, props.isRequired && classes_1.CLASSES.IS_REQUIRED, props.isReadOnly && classes_1.CLASSES.IS_READONLY, props.isDisabled && classes_1.CLASSES.IS_DISABLED, props.className) }, (popoverRenderProps) => (react_2.default.createElement(react_2.default.Fragment, null,
56
+ return (react_2.default.createElement(form_component_1.FormComponent, { className: (0, cx_1.cx)(props.isDisabled && classes_1.CLASSES.IS_DISABLED, props.isInvalid && classes_1.CLASSES.IS_INVALID, props.isReadOnly && classes_1.CLASSES.IS_READONLY), errorId: errorId, form: props.form, helperText: props.helperText, inputId: fakeInputId, isRequired: props.isRequired, label: props.label, name: props.name },
57
+ react_2.default.createElement(react_1.Popover, { className: (0, cx_1.cx)("uxf-multi-combobox", props.isInvalid && classes_1.CLASSES.IS_INVALID, props.isRequired && classes_1.CLASSES.IS_REQUIRED, props.isReadOnly && classes_1.CLASSES.IS_READONLY, props.isDisabled && classes_1.CLASSES.IS_DISABLED, props.className), style: props.style }, (popoverRenderProps) => (react_2.default.createElement(react_2.default.Fragment, null,
58
58
  react_2.default.createElement(react_1.Popover.Button, { className: (0, cx_1.cx)("uxf-multi-combobox__button uxf-multi-combobox__button--with-popover", popoverRenderProps.open && classes_1.CLASSES.IS_OPEN, props.isReadOnly && classes_1.CLASSES.IS_READONLY, props.isInvalid && classes_1.CLASSES.IS_INVALID), id: fakeInputId, onKeyDown: handlePopoverButtonKeyPress, ref: fakeInputRef },
59
59
  react_2.default.createElement("span", { className: (0, cx_1.cx)("uxf-multi-combobox__input uxf-multi-combobox__input--with-popover", selectedOptions.length === 0 &&
60
60
  "uxf-multi-combobox__input-placeholder--with-popover") }, selectedOptions.length > 0
@@ -1,6 +1,6 @@
1
1
  import { Placement, Strategy } from "@floating-ui/react";
2
2
  import { InputGroupSizes, InputGroupVariants } from "@uxf/ui/input/theme";
3
- import { ReactNode } from "react";
3
+ import { CSSProperties, ReactNode } from "react";
4
4
  import { ChipColor } from "../chip";
5
5
  import { IconsSet } from "../icon/theme";
6
6
  import { FormControlProps } from "../types";
@@ -36,6 +36,7 @@ export interface MultiComboboxProps<ValueId = MultiComboboxValueId, Option = Mul
36
36
  rightAddon?: ReactNode;
37
37
  rightElement?: ReactNode;
38
38
  size?: keyof InputGroupSizes;
39
+ style?: CSSProperties;
39
40
  variant?: keyof InputGroupVariants;
40
41
  withCheckboxes?: boolean;
41
42
  withPopover?: boolean;
@@ -41,8 +41,8 @@ exports.MultiSelect = (0, react_2.forwardRef)((props, ref) => {
41
41
  if (!props.withPopover) {
42
42
  return react_2.default.createElement(_multi_select_base_1._MultiSelectBase, { ...props, errorId: errorId, id: id, ref: ref });
43
43
  }
44
- return (react_2.default.createElement(form_component_1.FormComponent, { className: (0, cx_1.cx)(props.isDisabled && classes_1.CLASSES.IS_DISABLED, props.isInvalid && classes_1.CLASSES.IS_INVALID, props.isReadOnly && classes_1.CLASSES.IS_READONLY), errorId: errorId, form: props.form, helperText: props.helperText, inputId: id, isRequired: props.isRequired, label: props.label },
45
- react_2.default.createElement(react_1.Popover, { className: (0, cx_1.cx)("uxf-multi-combobox", props.isInvalid && classes_1.CLASSES.IS_INVALID, props.isRequired && classes_1.CLASSES.IS_REQUIRED, props.isReadOnly && classes_1.CLASSES.IS_READONLY, props.isDisabled && classes_1.CLASSES.IS_DISABLED, props.className) }, (popoverRenderProps) => (react_2.default.createElement(react_2.default.Fragment, null,
44
+ return (react_2.default.createElement(form_component_1.FormComponent, { className: (0, cx_1.cx)(props.isDisabled && classes_1.CLASSES.IS_DISABLED, props.isInvalid && classes_1.CLASSES.IS_INVALID, props.isReadOnly && classes_1.CLASSES.IS_READONLY), errorId: errorId, form: props.form, helperText: props.helperText, inputId: id, isRequired: props.isRequired, label: props.label, name: props.name },
45
+ react_2.default.createElement(react_1.Popover, { className: (0, cx_1.cx)("uxf-multi-combobox", props.isInvalid && classes_1.CLASSES.IS_INVALID, props.isRequired && classes_1.CLASSES.IS_REQUIRED, props.isReadOnly && classes_1.CLASSES.IS_READONLY, props.isDisabled && classes_1.CLASSES.IS_DISABLED, props.className), style: props.style }, (popoverRenderProps) => (react_2.default.createElement(react_2.default.Fragment, null,
46
46
  react_2.default.createElement(react_1.Popover.Button, { className: (0, cx_1.cx)("uxf-multi-combobox__button uxf-multi-combobox__button--with-popover", popoverRenderProps.open && classes_1.CLASSES.IS_OPEN, props.isReadOnly && classes_1.CLASSES.IS_READONLY, props.isInvalid && classes_1.CLASSES.IS_INVALID) },
47
47
  react_2.default.createElement("span", { className: (0, cx_1.cx)("uxf-multi-combobox__input uxf-multi-combobox__input--with-popover", selectedOptions.length === 0 &&
48
48
  "uxf-multi-combobox__input-placeholder--with-popover") }, selectedOptions.length > 0
@@ -63,6 +63,6 @@ exports.Default = Default;
63
63
  function ComponentStructure() {
64
64
  const [value, onChange] = (0, react_1.useState)(null);
65
65
  return (react_1.default.createElement(component_structure_analyzer_1.default, null,
66
- react_1.default.createElement(index_1.MultiSelect, { options: options, onChange: onChange, value: value })));
66
+ react_1.default.createElement(index_1.MultiSelect, { options: options, onChange: onChange, value: value, name: "multi-select-component-structure" })));
67
67
  }
68
68
  exports.ComponentStructure = ComponentStructure;
@@ -1,6 +1,6 @@
1
1
  import { Placement, Strategy } from "@floating-ui/react";
2
2
  import { InputGroupSizes, InputGroupVariants } from "@uxf/ui/input/theme";
3
- import { ReactNode } from "react";
3
+ import { CSSProperties, ReactNode } from "react";
4
4
  import { ChipColor } from "../chip";
5
5
  import { IconsSet } from "../icon/theme";
6
6
  import { FormControlProps } from "../types";
@@ -26,6 +26,7 @@ export interface MultiSelectProps<ValueId = MultiSelectValueId, Option = MultiSe
26
26
  placeholder?: string;
27
27
  renderOption?: (option: Option) => ReactNode;
28
28
  size?: keyof InputGroupSizes;
29
+ style?: CSSProperties;
29
30
  variant?: keyof InputGroupVariants;
30
31
  withPopover?: boolean;
31
32
  }
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@uxf/ui",
3
- "version": "11.11.0",
3
+ "version": "11.11.3",
4
4
  "description": "",
5
5
  "publishConfig": {
6
6
  "access": "public"
@@ -17,9 +17,9 @@
17
17
  "dependencies": {
18
18
  "@floating-ui/react": "0.26.9",
19
19
  "@headlessui/react": "1.7.14",
20
- "@uxf/core": "11.10.0",
21
- "@uxf/datepicker": "11.10.0",
22
- "@uxf/styles": "11.10.0",
20
+ "@uxf/core": "11.11.3",
21
+ "@uxf/datepicker": "11.11.3",
22
+ "@uxf/styles": "11.11.3",
23
23
  "color2k": "2.0.3",
24
24
  "dayjs": "1.11.10",
25
25
  "jump.js": "1.0.2",
@@ -32,7 +32,7 @@
32
32
  },
33
33
  "devDependencies": {
34
34
  "@types/jump.js": "1.0.6",
35
- "@types/react": "18.2.57",
35
+ "@types/react": "18.2.63",
36
36
  "@types/react-dom": "18.2.19"
37
37
  }
38
38
  }
@@ -14,20 +14,20 @@ function Default() {
14
14
  const radios = (react_1.default.createElement("div", { className: "dark:text-white" },
15
15
  react_1.default.createElement("div", { className: "mb-2 mt-4 font-semibold" }, "Default"),
16
16
  react_1.default.createElement("div", { className: "flex flex-row gap-4" },
17
- react_1.default.createElement(index_1.Radio, { checked: false, value: 1 }),
18
- react_1.default.createElement(index_1.Radio, { checked: true, value: 2 })),
17
+ react_1.default.createElement(index_1.Radio, { checked: false, value: 1, name: "radio-1" }),
18
+ react_1.default.createElement(index_1.Radio, { checked: true, value: 2, name: "radio-2" })),
19
19
  react_1.default.createElement("div", { className: "mb-2 mt-4 font-semibold" }, "Invalid"),
20
20
  react_1.default.createElement("div", { className: "flex flex-row gap-4" },
21
- react_1.default.createElement(index_1.Radio, { checked: false, isInvalid: true, value: 1 }),
22
- react_1.default.createElement(index_1.Radio, { checked: true, isInvalid: true, value: 2 })),
21
+ react_1.default.createElement(index_1.Radio, { checked: false, isInvalid: true, value: 1, name: "radio-invalid-1" }),
22
+ react_1.default.createElement(index_1.Radio, { checked: true, isInvalid: true, value: 2, name: "radio-invalid-2" })),
23
23
  react_1.default.createElement("div", { className: "mb-2 mt-4 font-semibold" }, "Disabled"),
24
24
  react_1.default.createElement("div", { className: "flex flex-row gap-4" },
25
- react_1.default.createElement(index_1.Radio, { checked: false, isDisabled: true, value: 1 }),
26
- react_1.default.createElement(index_1.Radio, { checked: true, isDisabled: true, value: 2 })),
25
+ react_1.default.createElement(index_1.Radio, { checked: false, isDisabled: true, value: 1, name: "radio-disabled-1" }),
26
+ react_1.default.createElement(index_1.Radio, { checked: true, isDisabled: true, value: 2, name: "radio-disabled-2" })),
27
27
  react_1.default.createElement("div", { className: "mb-2 mt-4 font-semibold" }, "size lg"),
28
28
  react_1.default.createElement("div", { className: "flex flex-row gap-4" },
29
- react_1.default.createElement(index_1.Radio, { checked: false, size: "lg", value: 1 }),
30
- react_1.default.createElement(index_1.Radio, { checked: true, size: "lg", value: 2 }))));
29
+ react_1.default.createElement(index_1.Radio, { checked: false, size: "lg", value: 1, name: "radio-size-lg-1" }),
30
+ react_1.default.createElement(index_1.Radio, { checked: true, size: "lg", value: 2, name: "radio-size-lg-2" }))));
31
31
  return (react_1.default.createElement("div", { className: "flex" },
32
32
  react_1.default.createElement("div", { className: "p-20" }, radios)));
33
33
  }
@@ -45,7 +45,7 @@ exports.RadioGroup = (0, react_2.forwardRef)((props, ref) => {
45
45
  react_2.default.createElement("div", { className: "uxf-form-component__input" },
46
46
  react_2.default.createElement("div", { className: "uxf-radio-group__options-wrapper" }, props.options.map((option) => (react_2.default.createElement(react_1.RadioGroup.Option, { className: (0, cx_1.cx)("uxf-radio-group__option", props.isDisabled && classes_1.CLASSES.IS_DISABLED), disabled: option.disabled, key: option.id.toString(), value: option.id }, (o) => (react_2.default.createElement("div", { className: (0, cx_1.cx)("uxf-radio-group__option-wrapper", o.checked && classes_1.CLASSES.IS_SELECTED) },
47
47
  react_2.default.createElement("span", { className: "uxf-radio-group__option-label" }, option.label),
48
- react_2.default.createElement(radio_1.Radio, { checked: o.checked, isDisabled: props.isDisabled || o.disabled, isInvalid: props.isInvalid, ref: o.checked ? innerRef : undefined, size: radioSize, value: option.id }))))))),
48
+ react_2.default.createElement(radio_1.Radio, { checked: o.checked, isDisabled: props.isDisabled || o.disabled, isInvalid: props.isInvalid, ref: o.checked ? innerRef : undefined, size: radioSize, value: option.id, name: props.name }))))))),
49
49
  props.helperText && (react_2.default.createElement("div", { className: (0, cx_1.cx)("uxf-helper-text", props.isInvalid && classes_1.CLASSES.IS_INVALID), id: errorId }, props.helperText)))));
50
50
  });
51
51
  exports.RadioGroup.displayName = "UxfUiRadioGroup";
@@ -49,11 +49,11 @@ function Default() {
49
49
  const [value, setValue] = (0, react_1.useState)(options[0].id);
50
50
  const onChange = (0, action_1.action)("onChange", setValue);
51
51
  const testRadioGroups = (react_1.default.createElement("div", { className: "space-y-10" },
52
- react_1.default.createElement(index_1.RadioGroup, { id: "radiogroup", label: "Light Radio group", onChange: onChange, options: options, value: value }),
53
- react_1.default.createElement(index_1.RadioGroup, { id: "radiogroup", label: "Radio group variant radio button", onChange: onChange, options: options, value: value, variant: "radioButton" }),
54
- react_1.default.createElement(index_1.RadioGroup, { hiddenLabel: true, id: "radiogroup", label: "Radio group variant row with hidden label", onChange: onChange, options: options, value: value, variant: "row" }),
55
- react_1.default.createElement(index_1.RadioGroup, { id: "radiogroup", label: "Radio group variant column, radioSize default", onChange: onChange, options: options, value: value, variant: "column", radioSize: "default" }),
56
- react_1.default.createElement(index_1.RadioGroup, { id: "radiogroup", label: "Radio group variant row, radioSize lg", onChange: onChange, options: options, value: value, variant: "row", radioSize: "lg" })));
52
+ react_1.default.createElement(index_1.RadioGroup, { id: "radiogroup", label: "Light Radio group", onChange: onChange, options: options, value: value, name: "radio-group-light" }),
53
+ react_1.default.createElement(index_1.RadioGroup, { id: "radiogroup", label: "Radio group variant radio button", onChange: onChange, options: options, value: value, variant: "radioButton", name: "radio-group" }),
54
+ react_1.default.createElement(index_1.RadioGroup, { hiddenLabel: true, id: "radiogroup", label: "Radio group variant row with hidden label", onChange: onChange, options: options, value: value, variant: "row", name: "radio-group-hidden-label" }),
55
+ react_1.default.createElement(index_1.RadioGroup, { id: "radiogroup", label: "Radio group variant column, radioSize default", onChange: onChange, options: options, value: value, variant: "column", radioSize: "default", name: "radio-group-variant-column" }),
56
+ react_1.default.createElement(index_1.RadioGroup, { id: "radiogroup", label: "Radio group variant row, radioSize lg", onChange: onChange, options: options, value: value, variant: "row", radioSize: "lg", name: "radio-group-variant-row" })));
57
57
  return (react_1.default.createElement(react_1.default.Fragment, null,
58
58
  react_1.default.createElement("div", { className: "rounded p-8" }, testRadioGroups)));
59
59
  }
package/select/select.js CHANGED
@@ -12,7 +12,7 @@ const Select = (props) => {
12
12
  var _a, _b, _c, _d;
13
13
  const onChange = (v) => { var _a; return props.onChange((_a = v === null || v === void 0 ? void 0 : v.id) !== null && _a !== void 0 ? _a : null); };
14
14
  const selectedOption = (_a = props.options.find((option) => option.id === props.value)) !== null && _a !== void 0 ? _a : null;
15
- return (react_2.default.createElement(_select_base_1._SelectBase, { HUIComponent: react_1.Listbox, className: `uxf-select ${(_b = props.className) !== null && _b !== void 0 ? _b : ""}`, customInputElementDisplayName: react_1.Listbox.Button.displayName, dropdownClassName: props.dropdownClassName, dropdownMatchesInputWidth: props.dropdownMatchesInputWidth, dropdownPlacement: props.dropdownPlacement, dropdownStrategy: props.dropdownStrategy, emptyMessage: "", forwardRef: props.forwardRef, helperText: props.helperText, hiddenLabel: props.hiddenLabel, iconName: props.iconName, id: props.id, isClearable: props.isClearable, isDisabled: props.isDisabled, isFocused: props.isFocused, isInvalid: props.isInvalid, isReadOnly: props.isReadOnly, isRequired: props.isRequired, keyExtractor: props.keyExtractor, label: props.label, leftAddon: props.leftAddon, leftElement: props.leftElement, name: props.name, onBlur: props.onBlur, onChange: onChange, onFocus: props.onFocus, options: props.options, placeholder: props.placeholder, renderOption: props.renderOption, rightAddon: props.rightAddon, rightElement: props.rightElement, size: props.size, value: selectedOption, variant: props.variant },
15
+ return (react_2.default.createElement(_select_base_1._SelectBase, { HUIComponent: react_1.Listbox, className: `uxf-select ${(_b = props.className) !== null && _b !== void 0 ? _b : ""}`, customInputElementDisplayName: react_1.Listbox.Button.displayName, dropdownClassName: props.dropdownClassName, dropdownMatchesInputWidth: props.dropdownMatchesInputWidth, dropdownPlacement: props.dropdownPlacement, dropdownStrategy: props.dropdownStrategy, emptyMessage: "", forwardRef: props.forwardRef, helperText: props.helperText, hiddenLabel: props.hiddenLabel, iconName: props.iconName, id: props.id, isClearable: props.isClearable, isDisabled: props.isDisabled, isFocused: props.isFocused, isInvalid: props.isInvalid, isReadOnly: props.isReadOnly, isRequired: props.isRequired, keyExtractor: props.keyExtractor, label: props.label, leftAddon: props.leftAddon, leftElement: props.leftElement, name: props.name, onBlur: props.onBlur, onChange: onChange, onFocus: props.onFocus, options: props.options, placeholder: props.placeholder, renderOption: props.renderOption, rightAddon: props.rightAddon, rightElement: props.rightElement, size: props.size, style: props.style, value: selectedOption, variant: props.variant },
16
16
  react_2.default.createElement(react_1.Listbox.Button, { className: `uxf-input__element ${!(selectedOption === null || selectedOption === void 0 ? void 0 : selectedOption.label) && classes_1.CLASSES.IS_EMPTY}` },
17
17
  react_2.default.createElement("span", { className: "uxf-input__element-text" }, selectedOption
18
18
  ? (_d = (_c = props.renderSelectedOption) === null || _c === void 0 ? void 0 : _c.call(props, selectedOption)) !== null && _d !== void 0 ? _d : selectedOption.label
@@ -51,22 +51,22 @@ function Default() {
51
51
  setValue(v);
52
52
  });
53
53
  return (react_1.default.createElement("div", { className: "flex flex-col gap-2" },
54
- react_1.default.createElement(index_1.Select, { helperText: "Helper text", label: "Default select", onChange: onChange, options: options, placeholder: "Vyberte...", value: value }),
55
- react_1.default.createElement(index_1.Select, { helperText: "Helper text", isInvalid: true, label: "Invalid select", onChange: onChange, options: options, placeholder: "Vyberte...", value: value, isClearable: true }),
56
- react_1.default.createElement(index_1.Select, { helperText: "Helper text", isDisabled: true, label: "Disabled select", onChange: onChange, options: options, placeholder: "Vyberte...", value: value }),
57
- react_1.default.createElement(index_1.Select, { helperText: "Helper text", isReadOnly: true, label: "Read only select", onChange: onChange, options: options, placeholder: "Vyberte...", value: value }),
58
- react_1.default.createElement(index_1.Select, { helperText: "Helper text", isRequired: true, label: "Required select", onChange: onChange, options: options, placeholder: "Vyberte...", value: value }),
59
- react_1.default.createElement(index_1.Select, { dropdownPlacement: "top", isRequired: true, label: "Select with dropdown top", onChange: onChange, options: options, placeholder: "Vyberte...", value: value }),
60
- react_1.default.createElement(index_1.Select, { helperText: "Helper text of Select with hidden label", hiddenLabel: true, label: "Hidden label", onChange: onChange, options: options, placeholder: "Vyberte...", value: value }),
61
- react_1.default.createElement(index_1.Select, { label: "Size sm", onChange: onChange, options: options, placeholder: "Vyberte...", value: value, size: "small" }),
62
- react_1.default.createElement(index_1.Select, { label: "Size default", onChange: onChange, options: options, placeholder: "Vyberte...", value: value }),
63
- react_1.default.createElement(index_1.Select, { label: "Size lg", onChange: onChange, options: options, placeholder: "Vyberte...", value: value, size: "large" }),
54
+ react_1.default.createElement(index_1.Select, { helperText: "Helper text", label: "Default select", onChange: onChange, options: options, placeholder: "Vyberte...", value: value, name: "select" }),
55
+ react_1.default.createElement(index_1.Select, { helperText: "Helper text", isInvalid: true, label: "Invalid select", onChange: onChange, options: options, placeholder: "Vyberte...", value: value, isClearable: true, name: "select-invalid" }),
56
+ react_1.default.createElement(index_1.Select, { helperText: "Helper text", isDisabled: true, label: "Disabled select", onChange: onChange, options: options, placeholder: "Vyberte...", value: value, name: "select-disabled" }),
57
+ react_1.default.createElement(index_1.Select, { helperText: "Helper text", isReadOnly: true, label: "Read only select", onChange: onChange, options: options, placeholder: "Vyberte...", value: value, name: "select-read-only" }),
58
+ react_1.default.createElement(index_1.Select, { helperText: "Helper text", isRequired: true, label: "Required select", onChange: onChange, options: options, placeholder: "Vyberte...", value: value, name: "select-required" }),
59
+ react_1.default.createElement(index_1.Select, { dropdownPlacement: "top", isRequired: true, label: "Select with dropdown top", onChange: onChange, options: options, placeholder: "Vyberte...", value: value, name: "select-required-dropdown-top" }),
60
+ react_1.default.createElement(index_1.Select, { helperText: "Helper text of Select with hidden label", hiddenLabel: true, label: "Hidden label", onChange: onChange, options: options, placeholder: "Vyberte...", value: value, name: "select-hidden-label" }),
61
+ react_1.default.createElement(index_1.Select, { label: "Size sm", onChange: onChange, options: options, placeholder: "Vyberte...", value: value, size: "small", name: "select-size-sm" }),
62
+ react_1.default.createElement(index_1.Select, { label: "Size default", onChange: onChange, options: options, placeholder: "Vyberte...", value: value, name: "select-size-default" }),
63
+ react_1.default.createElement(index_1.Select, { label: "Size lg", onChange: onChange, options: options, placeholder: "Vyberte...", value: value, size: "large", name: "select-size-lg" }),
64
64
  react_1.default.createElement(index_1.Select, { label: "RenderOption & RenderSelectedOption", onChange: onChange, options: options, placeholder: "Vyberte...", value: value, renderOption: (option, isSelected) => (react_1.default.createElement(react_1.default.Fragment, null,
65
65
  "Option: ",
66
66
  option.label,
67
67
  isSelected && " (selected)")), renderSelectedOption: (option) => react_1.default.createElement(react_1.default.Fragment, null,
68
68
  "Selected: ",
69
- option.label) })));
69
+ option.label), name: "select-render-option" })));
70
70
  }
71
71
  exports.Default = Default;
72
72
  function ComponentStructure() {
@@ -1,6 +1,6 @@
1
1
  import { InputProps } from "@uxf/ui/input/input";
2
2
  import { FormControlProps } from "@uxf/ui/types";
3
- import React, { KeyboardEventHandler, ReactNode } from "react";
3
+ import React, { CSSProperties, KeyboardEventHandler, ReactNode } from "react";
4
4
  type EnterKeyHint = "enter" | "done" | "go" | "next" | "previous" | "search" | "send" | undefined;
5
5
  type InputMode = "none" | "text" | "tel" | "url" | "email" | "numeric" | "decimal" | "search" | undefined;
6
6
  export interface TextInputProps extends FormControlProps<string>, Pick<InputProps, "size" | "variant"> {
@@ -27,6 +27,7 @@ export interface TextInputProps extends FormControlProps<string>, Pick<InputProp
27
27
  min?: number | string;
28
28
  pattern?: string;
29
29
  step?: number | string;
30
+ style?: CSSProperties;
30
31
  }
31
32
  export declare const TextInput: React.ForwardRefExoticComponent<TextInputProps & React.RefAttributes<HTMLInputElement>>;
32
33
  export {};
@@ -39,8 +39,8 @@ exports.TextInput = (0, react_1.forwardRef)((props, ref) => {
39
39
  const id = (_a = props.id) !== null && _a !== void 0 ? _a : generatedId;
40
40
  const errorId = props.isInvalid ? `${id}--error-message` : undefined;
41
41
  const rootClassName = (0, cx_1.cx)("uxf-text-input", ((_b = props.isFocused) !== null && _b !== void 0 ? _b : input.focused) && classes_1.CLASSES.IS_FOCUSED, props.isDisabled && classes_1.CLASSES.IS_DISABLED, props.isInvalid && classes_1.CLASSES.IS_INVALID, props.isReadOnly && classes_1.CLASSES.IS_READONLY, props.isRequired && classes_1.CLASSES.IS_REQUIRED, props.className);
42
- return (react_1.default.createElement(form_component_1.FormComponent, { className: rootClassName, errorId: errorId, form: props.form, helperText: props.helperText, hiddenLabel: props.hiddenLabel, inputId: id, isRequired: props.isRequired, label: props.label },
43
- react_1.default.createElement(input_1.Input, { inputFocus: input, size: props.size, variant: props.variant },
42
+ return (react_1.default.createElement(form_component_1.FormComponent, { className: rootClassName, errorId: errorId, form: props.form, helperText: props.helperText, hiddenLabel: props.hiddenLabel, inputId: id, isRequired: props.isRequired, label: props.label, name: props.name },
43
+ react_1.default.createElement(input_1.Input, { inputFocus: input, size: props.size, style: props.style, variant: props.variant },
44
44
  props.leftAddon && react_1.default.createElement(input_1.Input.LeftAddon, null, props.leftAddon),
45
45
  props.leftElement && react_1.default.createElement(input_1.Input.LeftElement, null, props.leftElement),
46
46
  react_1.default.createElement(input_1.Input.Element, { "aria-describedby": errorId, autoComplete: props.autoComplete, autoFocus: props.autoFocus, form: props.form, id: id, inputMode: props.inputMode, isDisabled: props.isDisabled, isInvalid: props.isInvalid, isReadOnly: props.isReadOnly, isRequired: props.isRequired, max: props.max, maxLength: props.maxLength, min: props.min, minLength: props.minLength, name: props.name, onChange: props.onChange, onKeyDown: props.onKeyDown, pattern: props.pattern, placeholder: props.placeholder, ref: (0, composeRefs_1.composeRefs)(innerRef, ref), step: props.step, type: props.type, value: props.value }),
@@ -60,6 +60,6 @@ exports.Default = Default;
60
60
  function ComponentStructure() {
61
61
  const [value, onChange] = (0, react_1.useState)("");
62
62
  return (react_1.default.createElement(component_structure_analyzer_1.default, null,
63
- react_1.default.createElement(text_input_1.TextInput, { label: "Label", placeholder: "Placeholder", leftElement: "\uD83C\uDF37", rightElement: "\uD83D\uDD14", leftAddon: "https://", rightAddon: ".cz", value: value, onChange: onChange, isInvalid: false, helperText: "Helper text" })));
63
+ react_1.default.createElement(text_input_1.TextInput, { label: "Label", placeholder: "Placeholder", leftElement: "\uD83C\uDF37", rightElement: "\uD83D\uDD14", leftAddon: "https://", rightAddon: ".cz", value: value, onChange: onChange, isInvalid: false, helperText: "Helper text", name: "text-input" })));
64
64
  }
65
65
  exports.ComponentStructure = ComponentStructure;
@@ -1,4 +1,4 @@
1
- import React, { ReactNode } from "react";
1
+ import React, { CSSProperties, ReactNode } from "react";
2
2
  import { FormControlProps } from "../types";
3
3
  export interface TextareaProps extends FormControlProps<string, HTMLTextAreaElement> {
4
4
  autoComplete?: string;
@@ -11,8 +11,8 @@ export interface TextareaProps extends FormControlProps<string, HTMLTextAreaElem
11
11
  label?: ReactNode;
12
12
  maxLength?: number | undefined;
13
13
  minLength?: number | undefined;
14
- name?: string;
15
14
  placeholder?: string;
16
15
  rows?: number;
16
+ style?: CSSProperties;
17
17
  }
18
18
  export declare const Textarea: React.ForwardRefExoticComponent<TextareaProps & React.RefAttributes<HTMLTextAreaElement>>;
@@ -66,8 +66,8 @@ exports.Textarea = (0, react_1.forwardRef)((props, ref) => {
66
66
  };
67
67
  }, [props.disableAutoHeight, latestRows]);
68
68
  const onWrapperClick = () => { var _a; return (_a = innerRef.current) === null || _a === void 0 ? void 0 : _a.focus(); };
69
- return (react_1.default.createElement(form_component_1.FormComponent, { className: rootClassName, errorId: errorId, form: props.form, helperText: props.helperText, hiddenLabel: props.hiddenLabel, inputId: id, isRequired: props.isRequired, label: props.label },
70
- react_1.default.createElement("div", { className: "uxf-textarea__wrapper", onClick: onWrapperClick },
69
+ return (react_1.default.createElement(form_component_1.FormComponent, { className: rootClassName, errorId: errorId, form: props.form, helperText: props.helperText, hiddenLabel: props.hiddenLabel, inputId: id, isRequired: props.isRequired, label: props.label, name: props.name },
70
+ react_1.default.createElement("div", { className: "uxf-textarea__wrapper", onClick: onWrapperClick, style: props.style },
71
71
  react_1.default.createElement("textarea", { "aria-describedby": errorId, "aria-invalid": props.isInvalid, autoComplete: props.autoComplete, className: "uxf-textarea__element", disabled: props.isDisabled, form: props.form, id: id, maxLength: props.maxLength, minLength: props.minLength, name: props.name, onBlur: input.onBlur, onChange: (event) => props.onChange(event.target.value, event), onFocus: input.onFocus, placeholder: props.placeholder, readOnly: props.isReadOnly, rows: props.rows, ref: (0, composeRefs_1.composeRefs)(innerRef, ref), required: props.isRequired, value: props.value }))));
72
72
  });
73
73
  exports.Textarea.displayName = "UxfUiTextarea";
@@ -35,10 +35,10 @@ function Default() {
35
35
  const [value, setValue] = (0, react_1.useState)("test");
36
36
  const onChange = (0, action_1.action)("onChange", setValue);
37
37
  const storyTextAreas = (react_1.default.createElement("div", { className: "space-y-2" },
38
- react_1.default.createElement(index_1.Textarea, { id: "textarea", label: "Textarea", onChange: onChange, placeholder: "Placeholder text...", value: value }),
39
- react_1.default.createElement(index_1.Textarea, { id: "textarea-readonly", label: "Readonly", isReadOnly: true, onChange: onChange, value: value }),
40
- react_1.default.createElement(index_1.Textarea, { isDisabled: true, id: "textarea-disabled", label: "Textarea disabled", onChange: onChange, value: value }),
41
- react_1.default.createElement(index_1.Textarea, { id: "textarea-rows10", isInvalid: true, label: "Textarea rows = 10, invalid", placeholder: "Placeholder text....", rows: 10, onChange: onChange, value: value })));
38
+ react_1.default.createElement(index_1.Textarea, { id: "textarea", label: "Textarea", onChange: onChange, placeholder: "Placeholder text...", value: value, name: "text-area" }),
39
+ react_1.default.createElement(index_1.Textarea, { id: "textarea-readonly", label: "Readonly", isReadOnly: true, onChange: onChange, value: value, name: "text-area-read-only" }),
40
+ react_1.default.createElement(index_1.Textarea, { isDisabled: true, id: "textarea-disabled", label: "Textarea disabled", onChange: onChange, value: value, name: "text-area-diabled" }),
41
+ react_1.default.createElement(index_1.Textarea, { id: "textarea-rows10", isInvalid: true, label: "Textarea rows = 10, invalid", placeholder: "Placeholder text....", rows: 10, onChange: onChange, value: value, name: "text-area-invalid" })));
42
42
  return (react_1.default.createElement(react_1.default.Fragment, null,
43
43
  react_1.default.createElement("div", { className: "space-y-2 p-20" }, storyTextAreas)));
44
44
  }
@@ -35,10 +35,10 @@ function Default() {
35
35
  const [checked, setChecked] = (0, react_1.useState)(true);
36
36
  const onChange = (0, action_1.action)("onChange", () => setChecked((prev) => !prev));
37
37
  const storyToggles = (react_1.default.createElement(react_1.default.Fragment, null,
38
- react_1.default.createElement(index_1.Toggle, { label: "Opravdu?", onChange: onChange, value: checked }),
39
- react_1.default.createElement(index_1.Toggle, { label: "Opravdu?", onChange: onChange, value: checked, isDisabled: true }),
40
- react_1.default.createElement(index_1.Toggle, { label: "Opravdu?", onChange: onChange, value: checked, hiddenLabel: true }),
41
- react_1.default.createElement(index_1.Toggle, { label: "Opravdu? (reversed)", onChange: onChange, value: checked, variant: "reversed" })));
38
+ react_1.default.createElement(index_1.Toggle, { label: "Opravdu?", onChange: onChange, value: checked, name: "toggle" }),
39
+ react_1.default.createElement(index_1.Toggle, { label: "Opravdu?", onChange: onChange, value: checked, isDisabled: true, name: "toggle-disabled" }),
40
+ react_1.default.createElement(index_1.Toggle, { label: "Opravdu?", onChange: onChange, value: checked, hiddenLabel: true, name: "toggle-hidden-label" }),
41
+ react_1.default.createElement(index_1.Toggle, { label: "Opravdu? (reversed)", onChange: onChange, value: checked, variant: "reversed", name: "toggle-reversed" })));
42
42
  return (react_1.default.createElement("div", { className: "flex" },
43
43
  react_1.default.createElement("div", { className: "w-1/2 gap-4 p-20" }, storyToggles)));
44
44
  }
@@ -4,7 +4,7 @@ export interface FormControlProps<ValueType, ElementType = HTMLInputElement, Res
4
4
  onChange: (value: ValueType, event?: ChangeEvent<ElementType>, ...args: RestParams) => void;
5
5
  onBlur?: FocusEventHandler<ElementType>;
6
6
  onFocus?: FocusEventHandler<ElementType>;
7
- name?: string;
7
+ name: string;
8
8
  /**
9
9
  * @about
10
10
  * The input element will be disabled.