@uxf/ui 11.75.1 → 11.77.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (38) hide show
  1. package/_input-with-popover/input-with-popover.d.ts +2 -0
  2. package/_input-with-popover/input-with-popover.js +1 -1
  3. package/checkbox-input/checkbox-input.d.ts +1 -0
  4. package/checkbox-input/checkbox-input.js +6 -3
  5. package/checkbox-input/checkbox-input.stories.js +6 -7
  6. package/combobox/combobox.d.ts +1 -0
  7. package/combobox/combobox.js +3 -1
  8. package/combobox/combobox.stories.js +4 -4
  9. package/date-picker-input/date-picker-input.d.ts +1 -0
  10. package/date-picker-input/date-picker-input.js +3 -2
  11. package/date-picker-input/date-picker-input.stories.js +10 -10
  12. package/datetime-picker-input/datetime-picker-input.d.ts +1 -0
  13. package/datetime-picker-input/datetime-picker-input.js +3 -2
  14. package/datetime-picker-input/datetime-picker-input.stories.js +8 -9
  15. package/dropzone/dropzone-input.d.ts +1 -0
  16. package/dropzone/dropzone-input.js +5 -2
  17. package/dropzone/dropzone.stories.js +3 -3
  18. package/form-component/form-component.d.ts +1 -0
  19. package/form-component/form-component.js +1 -1
  20. package/multi-combobox/multi-combobox.d.ts +1 -0
  21. package/multi-combobox/multi-combobox.js +3 -2
  22. package/multi-combobox/multi-combobox.stories.d.ts +0 -1
  23. package/multi-combobox/multi-combobox.stories.js +10 -27
  24. package/multi-select/multi-select.d.ts +1 -0
  25. package/multi-select/multi-select.js +3 -2
  26. package/multi-select/multi-select.stories.d.ts +0 -1
  27. package/multi-select/multi-select.stories.js +7 -22
  28. package/package.json +1 -1
  29. package/radio-group/radio-group.d.ts +1 -0
  30. package/radio-group/radio-group.js +4 -3
  31. package/select/select.d.ts +1 -0
  32. package/select/select.js +3 -1
  33. package/text-input/text-input.d.ts +1 -0
  34. package/text-input/text-input.js +3 -2
  35. package/textarea/textarea.d.ts +1 -0
  36. package/textarea/textarea.js +3 -2
  37. package/toggle/toggle.d.ts +1 -0
  38. package/toggle/toggle.js +3 -2
@@ -21,5 +21,7 @@ export interface InputWithPopoverProps<ValueType = string> extends FormControlPr
21
21
  rightAddon?: ReactNode;
22
22
  rightElement?: ReactNode;
23
23
  triggerElement: ReactNode;
24
+ "data-component"?: string;
25
+ "data-name"?: string;
24
26
  }
25
27
  export declare const _InputWithPopover: React.ForwardRefExoticComponent<InputWithPopoverProps<string> & React.RefAttributes<HTMLInputElement>>;
@@ -73,7 +73,7 @@ exports._InputWithPopover = (0, react_3.forwardRef)((props, ref) => {
73
73
  });
74
74
  const isInteractive = !props.isDisabled && !props.isReadOnly;
75
75
  const showRemoveButton = Boolean(props.value && isInteractive && props.isClearable);
76
- 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 },
76
+ return (react_3.default.createElement(form_component_1.FormComponent, { className: rootClassName, "data-component": props["data-component"], "data-name": props["data-name"], errorId: error.errorId, form: props.form, helperText: props.helperText, hiddenLabel: props.hiddenLabel, inputId: id, isRequired: props.isRequired, label: props.label, name: props.name },
77
77
  react_3.default.createElement(react_2.Popover, { as: react_3.Fragment }, (renderProps) => (react_3.default.createElement(react_3.default.Fragment, null,
78
78
  react_3.default.createElement(input_1.Input, { inputFocus: input, inputGroupRef: floatingPopover.refs.setReference, ref: (0, compose_refs_1.composeRefs)(innerRef, ref), size: props.size, variant: props.variant },
79
79
  props.leftAddon && react_3.default.createElement(input_1.Input.LeftAddon, null, props.leftAddon),
@@ -11,4 +11,5 @@ export interface CheckboxInputProps extends FormControlProps<boolean | undefined
11
11
  style?: CSSProperties;
12
12
  helperText?: ReactNode;
13
13
  }
14
+ export declare const CHECKBOX_INPUT_COMPONENT_NAME = "checkboxInput";
14
15
  export declare const CheckboxInput: React.ForwardRefExoticComponent<CheckboxInputProps & React.RefAttributes<HTMLDivElement>>;
@@ -24,17 +24,20 @@ var __importStar = (this && this.__importStar) || function (mod) {
24
24
  return result;
25
25
  };
26
26
  Object.defineProperty(exports, "__esModule", { value: true });
27
- exports.CheckboxInput = void 0;
27
+ exports.CheckboxInput = exports.CHECKBOX_INPUT_COMPONENT_NAME = void 0;
28
28
  const react_1 = require("@headlessui/react");
29
+ const classes_1 = require("@uxf/core/constants/classes");
30
+ const cx_1 = require("@uxf/core/utils/cx");
29
31
  const checkbox_1 = require("@uxf/ui/checkbox");
30
32
  const react_2 = __importStar(require("react"));
33
+ exports.CHECKBOX_INPUT_COMPONENT_NAME = "checkboxInput";
31
34
  exports.CheckboxInput = (0, react_2.forwardRef)((props, ref) => {
32
- var _a, _b;
35
+ var _a;
33
36
  const generatedId = (0, react_2.useId)();
34
37
  const id = (_a = props.id) !== null && _a !== void 0 ? _a : generatedId;
35
38
  const errorId = props.isInvalid ? `${id}--error-message` : undefined;
36
39
  return (react_2.default.createElement(react_1.Switch.Group, null,
37
- react_2.default.createElement("div", { className: `uxf-checkbox-input__wrapper ${(_b = props.className) !== null && _b !== void 0 ? _b : ""}`, "data-name": props.name, style: props.style },
40
+ react_2.default.createElement("div", { className: (0, cx_1.cx)("uxf-checkbox-input__wrapper", 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), "data-component": exports.CHECKBOX_INPUT_COMPONENT_NAME, "data-name": props.name, style: props.style },
38
41
  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, name: props.name, onChange: props.onChange, ref: ref, size: props.size, value: checked }))),
39
42
  react_2.default.createElement(react_1.Switch.Label, { className: `uxf-checkbox-input__label ${props.hiddenLabel ? "uxf-checkbox-input__label--hidden" : ""}` },
40
43
  react_2.default.createElement("span", { className: "uxf-checkbox-input__label--text" }, props.label),
@@ -30,11 +30,10 @@ const checkbox_input_1 = require("./checkbox-input");
30
30
  function Default() {
31
31
  const [isChecked, setIsChecked] = (0, react_1.useState)(true);
32
32
  const onChange = (0, action_1.action)("onChange", () => setIsChecked((prev) => !prev));
33
- return (react_1.default.createElement("div", { className: "flex" },
34
- react_1.default.createElement("div", { className: "flex flex-col gap-4 p-20" },
35
- react_1.default.createElement(checkbox_input_1.CheckboxInput, { label: "Opravdu?", name: "checkbox-input", onChange: onChange, value: isChecked }),
36
- react_1.default.createElement(checkbox_input_1.CheckboxInput, { isDisabled: true, label: "Opravdu?", name: "checkbox-input-disabled", onChange: onChange, value: isChecked }),
37
- react_1.default.createElement(checkbox_input_1.CheckboxInput, { isInvalid: true, label: "Opravdu?", name: "checkbox-input-invalid", onChange: onChange, value: isChecked }),
38
- react_1.default.createElement(checkbox_input_1.CheckboxInput, { label: "Opravdu? (size lg)", name: "checkbox-input-lg", onChange: onChange, size: "lg", value: isChecked }),
39
- react_1.default.createElement(checkbox_input_1.CheckboxInput, { hiddenLabel: true, label: "hidden label", name: "checkbox-input-hidden-label-lg", onChange: onChange, size: "lg", value: isChecked }))));
33
+ return (react_1.default.createElement("div", { className: "space-y-4 p-8" },
34
+ react_1.default.createElement(checkbox_input_1.CheckboxInput, { label: "Default", name: "default", onChange: onChange, value: isChecked }),
35
+ react_1.default.createElement(checkbox_input_1.CheckboxInput, { isDisabled: true, label: "Disabled", name: "disabled", onChange: onChange, value: isChecked }),
36
+ react_1.default.createElement(checkbox_input_1.CheckboxInput, { isInvalid: true, label: "Invalid", name: "invalid", onChange: onChange, value: isChecked }),
37
+ react_1.default.createElement(checkbox_input_1.CheckboxInput, { label: "Large", name: "large", onChange: onChange, size: "lg", value: isChecked }),
38
+ react_1.default.createElement(checkbox_input_1.CheckboxInput, { hiddenLabel: true, label: "Hidden label", name: "hidden-label", onChange: onChange, value: isChecked })));
40
39
  }
@@ -45,6 +45,7 @@ export interface ComboboxProps<Id = ComboboxValueId, Option = ComboboxOption<Id>
45
45
  inputRef?: Ref<HTMLInputElement> | undefined;
46
46
  inputWrapperRef?: Ref<ComboboxTypeRef> | undefined;
47
47
  }
48
+ export declare const COMBOBOX_COMPONENT_NAME = "combobox";
48
49
  export declare function Combobox<Id = ComboboxValueId, Option = ComboboxOption<Id>, Value = Option>(props: ComboboxProps<Id, Option, Value>): React.JSX.Element;
49
50
  export declare namespace Combobox {
50
51
  var displayName: string;
@@ -24,6 +24,7 @@ var __importStar = (this && this.__importStar) || function (mod) {
24
24
  return result;
25
25
  };
26
26
  Object.defineProperty(exports, "__esModule", { value: true });
27
+ exports.COMBOBOX_COMPONENT_NAME = void 0;
27
28
  exports.Combobox = Combobox;
28
29
  const react_1 = require("@floating-ui/react");
29
30
  const react_2 = require("@headlessui/react");
@@ -59,6 +60,7 @@ function Options(props) {
59
60
  })) : (react_3.default.createElement("div", { className: "uxf-dropdown__empty-wrapper" }, props.emptyMessage))));
60
61
  }
61
62
  Options.displayName = "UxfUiComboboxOptions";
63
+ exports.COMBOBOX_COMPONENT_NAME = "combobox";
62
64
  // eslint-disable-next-line complexity
63
65
  function Combobox(props) {
64
66
  var _a, _b, _c, _d, _e, _f, _g, _h, _j;
@@ -86,7 +88,7 @@ function Combobox(props) {
86
88
  const dropdown = (0, use_dropdown_1.useDropdown)((_h = props.dropdownPlacement) !== null && _h !== void 0 ? _h : "bottom", (_j = props.dropdownMatchesInputWidth) !== null && _j !== void 0 ? _j : true, props.dropdownMaxHeight, props.dropdownStrategy);
87
89
  const stableRef = (0, react_3.useMemo)(() => (0, compose_refs_1.composeRefs)(innerRef, props.inputGroupRef, dropdown.refs.setReference), [dropdown.refs.setReference, props.inputGroupRef]);
88
90
  const isNotInteractive = props.isDisabled || props.isReadOnly;
89
- return (react_3.default.createElement(react_2.Combobox, { as: "div", by: "id", className: (0, cx_1.cx)("uxf-form-component uxf-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), "data-name": props.name, disabled: isNotInteractive, form: props.form, name: props.name, onChange: onChange, style: props.style, value: selectedOption }, (renderProps) => (react_3.default.createElement(react_3.default.Fragment, null,
91
+ return (react_3.default.createElement(react_2.Combobox, { as: "div", by: "id", className: (0, cx_1.cx)("uxf-form-component uxf-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), "data-component": exports.COMBOBOX_COMPONENT_NAME, "data-name": props.name, disabled: isNotInteractive, form: props.form, name: props.name, onChange: onChange, style: props.style, value: selectedOption }, (renderProps) => (react_3.default.createElement(react_3.default.Fragment, null,
90
92
  react_3.default.createElement("div", { className: "uxf-form-component__label" },
91
93
  react_3.default.createElement(react_2.Combobox.Label, { as: label_1.Label, isHidden: props.hiddenLabel, isRequired: props.isRequired, onClick: isNotInteractive ? undefined : input.focus }, props.label)),
92
94
  react_3.default.createElement("div", { className: "uxf-form-component__input" },
@@ -38,10 +38,10 @@ function SynchronousOptions() {
38
38
  const [value, setValue] = (0, react_1.useState)(null);
39
39
  const onChange = (0, action_1.action)("onChange", setValue);
40
40
  return (react_1.default.createElement("div", { className: "space-y-4 p-4" },
41
- react_1.default.createElement(index_1.Combobox, { helperText: "Start typing to see options...", id: "combobox-1", label: "Combobox", name: "combobox", onChange: onChange, options: OPTIONS, placeholder: "Vyberte...", value: value }),
42
- react_1.default.createElement(index_1.Combobox, { helperText: "Error message", id: "combobox-1", isInvalid: true, isRequired: true, label: "Combobox invalid", name: "combobox", onChange: onChange, options: OPTIONS, placeholder: "Vyberte...", value: value }),
43
- react_1.default.createElement(index_1.Combobox, { dropdownPlacement: "top", id: "combobox-1", isClearable: true, label: "Combobox with dropdown top", name: "combobox", onChange: onChange, options: OPTIONS, placeholder: "Vyberte...", value: value }),
44
- react_1.default.createElement(index_1.Combobox, { id: "combobox-render", isClearable: true, label: "RenderOption", name: "combobox", onChange: onChange, options: OPTIONS, placeholder: "Vyberte...", renderOption: (option, isSelected) => (react_1.default.createElement(react_1.default.Fragment, null,
41
+ react_1.default.createElement(index_1.Combobox, { helperText: "Helper text", isClearable: true, label: "Default", name: "default", onChange: onChange, options: OPTIONS, placeholder: "Placeholder", value: value }),
42
+ react_1.default.createElement(index_1.Combobox, { helperText: "Helper text", isInvalid: true, isRequired: true, label: "Invalid", name: "Invalid", onChange: onChange, options: OPTIONS, placeholder: "Placeholder", value: value }),
43
+ react_1.default.createElement(index_1.Combobox, { dropdownPlacement: "top", isClearable: true, label: "Dropdown top", name: "dropdown-top", onChange: onChange, options: OPTIONS, value: value }),
44
+ react_1.default.createElement(index_1.Combobox, { isClearable: true, label: "RenderOption", name: "render-option", onChange: onChange, options: OPTIONS, renderOption: (option, isSelected) => (react_1.default.createElement(react_1.default.Fragment, null,
45
45
  "Option: ",
46
46
  option.label,
47
47
  isSelected && " (selected)")), value: value })));
@@ -20,4 +20,5 @@ export interface DatePickerInputProps extends Omit<InputWithPopoverProps<string
20
20
  /** @deprecated */
21
21
  unavailableDates?: Date[];
22
22
  }
23
+ export declare const DATE_PICKER_INPUT_COMPONENT_NAME = "datePickerInput";
23
24
  export declare const DatePickerInput: React.ForwardRefExoticComponent<DatePickerInputProps & React.RefAttributes<HTMLInputElement>>;
@@ -27,7 +27,7 @@ var __importDefault = (this && this.__importDefault) || function (mod) {
27
27
  return (mod && mod.__esModule) ? mod : { "default": mod };
28
28
  };
29
29
  Object.defineProperty(exports, "__esModule", { value: true });
30
- exports.DatePickerInput = exports.OUTPUT_DATE_FORMAT = exports.DISPLAY_DATE_FORMAT = exports.ALLOWED_DATE_FORMAT = void 0;
30
+ exports.DatePickerInput = exports.DATE_PICKER_INPUT_COMPONENT_NAME = exports.OUTPUT_DATE_FORMAT = exports.DISPLAY_DATE_FORMAT = exports.ALLOWED_DATE_FORMAT = void 0;
31
31
  const cx_1 = require("@uxf/core/utils/cx");
32
32
  const dayjs_1 = __importStar(require("dayjs"));
33
33
  const customParseFormat_1 = __importDefault(require("dayjs/plugin/customParseFormat"));
@@ -60,6 +60,7 @@ function getBoundaryDate(value) {
60
60
  }
61
61
  return undefined;
62
62
  }
63
+ exports.DATE_PICKER_INPUT_COMPONENT_NAME = "datePickerInput";
63
64
  exports.DatePickerInput = (0, react_1.forwardRef)((props, ref) => {
64
65
  var _a, _b, _c;
65
66
  const onChange = props.onChange;
@@ -83,6 +84,6 @@ exports.DatePickerInput = (0, react_1.forwardRef)((props, ref) => {
83
84
  const selectedDate = getSelectedDate(props.value);
84
85
  const parsedMinDate = getBoundaryDate(props.minDate);
85
86
  const parsedMaxDate = getBoundaryDate(props.maxDate);
86
- return (react_1.default.createElement(_input_with_popover_1._InputWithPopover, { ...props, className: className, onChange: onInputChange, placeholder: props.placeholder, ref: ref, triggerElement: (_c = props.triggerElement) !== null && _c !== void 0 ? _c : react_1.default.createElement(icon_1.Icon, { name: "calendar", size: 20 }), value: value }, ({ close }) => (react_1.default.createElement(date_picker_1.DatePicker, { bottomContent: props.bottomContent, closePopoverHandler: close, customButtonTitles: props.customButtonTitles, datesConfig: props.datesConfig, maxDate: parsedMaxDate, minDate: parsedMinDate, onChange: onDatePickerChange, onMonthChange: props.onMonthChange, preventScroll: true, selectedDate: selectedDate, style: props.style, unavailableDates: props.unavailableDates }))));
87
+ return (react_1.default.createElement(_input_with_popover_1._InputWithPopover, { ...props, className: className, "data-component": exports.DATE_PICKER_INPUT_COMPONENT_NAME, "data-name": props.name, onChange: onInputChange, placeholder: props.placeholder, ref: ref, triggerElement: (_c = props.triggerElement) !== null && _c !== void 0 ? _c : react_1.default.createElement(icon_1.Icon, { name: "calendar", size: 20 }), value: value }, ({ close }) => (react_1.default.createElement(date_picker_1.DatePicker, { bottomContent: props.bottomContent, closePopoverHandler: close, customButtonTitles: props.customButtonTitles, datesConfig: props.datesConfig, maxDate: parsedMaxDate, minDate: parsedMinDate, onChange: onDatePickerChange, onMonthChange: props.onMonthChange, preventScroll: true, selectedDate: selectedDate, style: props.style, unavailableDates: props.unavailableDates }))));
87
88
  });
88
89
  exports.DatePickerInput.displayName = "UxfUiDatePickerInput";
@@ -31,7 +31,8 @@ const date_picker_input_1 = require("./date-picker-input");
31
31
  function Default() {
32
32
  const [date, setDate] = (0, react_1.useState)(null);
33
33
  const onChange = (0, action_1.action)("onChange", setDate);
34
- const testDatePickers = (react_1.default.createElement(react_1.default.Fragment, null,
34
+ return (react_1.default.createElement("div", { className: "space-y-4 p-8" },
35
+ react_1.default.createElement(date_picker_input_1.DatePickerInput, { helperText: "Helper text", isClearable: true, label: "Default", name: "default", onChange: onChange, placeholder: "Placeholder", value: date }),
35
36
  react_1.default.createElement(date_picker_input_1.DatePickerInput, { customButtonTitles: {
36
37
  selectMonth: "Select month",
37
38
  selectYear: "Select year",
@@ -41,15 +42,14 @@ function Default() {
41
42
  prevDecade: "Previous decade",
42
43
  nextYear: "Next year",
43
44
  prevYear: "Previous year",
44
- }, id: "date-test", isClearable: true, label: "Datum \u010Dehokoliv, vlastn\u00ED titly", name: "date", onChange: onChange, placeholder: "Zadejte datum...", value: date }),
45
- react_1.default.createElement(date_picker_input_1.DatePickerInput, { id: "date-test", isClearable: true, label: "Datum \u010Dehokoliv vlastn\u00ED ikona", name: "date", onChange: onChange, triggerElement: react_1.default.createElement(icon_1.Icon, { name: "camera", size: 20 }), value: date }),
46
- react_1.default.createElement(date_picker_input_1.DatePickerInput, { id: "date-test-disabled", isDisabled: true, label: "Datum disabled", name: "date-disabled", onChange: onChange, value: date }),
47
- react_1.default.createElement(date_picker_input_1.DatePickerInput, { id: "date-test-readonly", isReadOnly: true, label: "Datum readonly", name: "date-readonly", onChange: onChange, value: date }),
48
- react_1.default.createElement(date_picker_input_1.DatePickerInput, { id: "date-test-invalid", isClearable: true, isInvalid: true, label: "Datum invalid", name: "date-invalid", onChange: onChange, value: date }),
49
- react_1.default.createElement(date_picker_input_1.DatePickerInput, { id: "date-test-invalid", isClearable: true, label: "Min/max", maxDate: "2023-06-12", minDate: "2023-06-06", name: "date-invalid", onChange: onChange, placeholder: "", value: date }),
50
- react_1.default.createElement(date_picker_input_1.DatePickerInput, { allowedDateFormats: ["MM/DD/YYYY", "M/D/YYYY"], displayDateFormat: "MM/DD/YYYY", id: "date-custom-format", isClearable: true, label: "Datum s vlastn\u00EDm form\u00E1tem (US)", name: "date", onChange: onChange, value: date }),
45
+ }, label: "Custom titles", name: "custom-titles", onChange: onChange, value: date }),
46
+ react_1.default.createElement(date_picker_input_1.DatePickerInput, { isClearable: true, label: "Triger element", name: "trigger-element", onChange: onChange, triggerElement: react_1.default.createElement(icon_1.Icon, { name: "camera", size: 20 }), value: date }),
47
+ react_1.default.createElement(date_picker_input_1.DatePickerInput, { isDisabled: true, label: "Disabled", name: "disabled", onChange: onChange, value: date }),
48
+ react_1.default.createElement(date_picker_input_1.DatePickerInput, { isReadOnly: true, label: "ReadOnly", name: "readonly", onChange: onChange, value: date }),
49
+ react_1.default.createElement(date_picker_input_1.DatePickerInput, { isInvalid: true, label: "Invalid", name: "invalid", onChange: onChange, value: date }),
50
+ react_1.default.createElement(date_picker_input_1.DatePickerInput, { isClearable: true, label: "Min/Max validation", maxDate: "2023-06-12", minDate: "2023-06-06", name: "min-max-validation", onChange: onChange, value: date }),
51
+ react_1.default.createElement(date_picker_input_1.DatePickerInput, { allowedDateFormats: ["MM/DD/YYYY", "M/D/YYYY"], displayDateFormat: "MM/DD/YYYY", label: "Date with custom format (US)", name: "custom-date-format", onChange: onChange, value: date }),
51
52
  react_1.default.createElement(date_picker_input_1.DatePickerInput, { bottomContent: react_1.default.createElement("div", null,
52
53
  "Bottom content",
53
- react_1.default.createElement("p", null, "Here can goes anything")), id: "date-test", isClearable: true, label: "With bottom content", name: "date", onChange: onChange, placeholder: "Zadejte datum...", value: date })));
54
- return react_1.default.createElement("div", { className: "max-w-screen-sm space-y-4 rounded p-8" }, testDatePickers);
54
+ react_1.default.createElement("p", null, "Here can goes anything")), label: "Bottom content", name: "bottom-content", onChange: onChange, value: date })));
55
55
  }
@@ -17,5 +17,6 @@ export interface DatetimePickerInputProps extends Omit<InputWithPopoverProps<str
17
17
  bottomContent?: ReactNode;
18
18
  CustomDatetimePicker?: (props: DatetimePickerProps) => ReactNode;
19
19
  }
20
+ export declare const DATETIME_PICKER_INPUT_COMPONENT_NAME = "datetimePickerInput";
20
21
  export declare const DatetimePickerInput: React.ForwardRefExoticComponent<DatetimePickerInputProps & React.RefAttributes<HTMLInputElement>>;
21
22
  export {};
@@ -27,7 +27,7 @@ var __importDefault = (this && this.__importDefault) || function (mod) {
27
27
  return (mod && mod.__esModule) ? mod : { "default": mod };
28
28
  };
29
29
  Object.defineProperty(exports, "__esModule", { value: true });
30
- exports.DatetimePickerInput = exports.BOUNDARY_DATE_FORMAT = exports.DISPLAY_DATETIME_FORMAT = exports.ALLOWED_DATETIME_FORMAT = void 0;
30
+ exports.DatetimePickerInput = exports.DATETIME_PICKER_INPUT_COMPONENT_NAME = exports.BOUNDARY_DATE_FORMAT = exports.DISPLAY_DATETIME_FORMAT = exports.ALLOWED_DATETIME_FORMAT = void 0;
31
31
  const cx_1 = require("@uxf/core/utils/cx");
32
32
  const is_not_nil_1 = require("@uxf/core/utils/is-not-nil");
33
33
  const dayjs_1 = __importStar(require("dayjs"));
@@ -64,6 +64,7 @@ function getBoundaryDate(value) {
64
64
  }
65
65
  return undefined;
66
66
  }
67
+ exports.DATETIME_PICKER_INPUT_COMPONENT_NAME = "datetimePickerInput";
67
68
  exports.DatetimePickerInput = (0, react_1.forwardRef)((props, ref) => {
68
69
  var _a;
69
70
  const onChange = props.onChange;
@@ -80,6 +81,6 @@ exports.DatetimePickerInput = (0, react_1.forwardRef)((props, ref) => {
80
81
  const value = getValue(props.value); // hodnota zobrazená v textinputu (human readable)
81
82
  const parsedMinDate = getBoundaryDate(props.minDate);
82
83
  const parsedMaxDate = getBoundaryDate(props.maxDate);
83
- return (react_1.default.createElement(_input_with_popover_1._InputWithPopover, { ...props, className: className, onChange: onInputChange, placeholder: props.placeholder, ref: ref, triggerElement: (_a = props.triggerElement) !== null && _a !== void 0 ? _a : react_1.default.createElement(icon_1.Icon, { name: "calendar", size: 20 }), value: value }, ({ close }) => (0, is_not_nil_1.isNotNil)(props.CustomDatetimePicker) ? (react_1.default.createElement(props.CustomDatetimePicker, { onChange: onChange, onClose: close, value: (0, get_datetime_string_1.getDatetimeString)(props.value) })) : (react_1.default.createElement(datetime_picker_1.DatetimePicker, { bottomContent: props.bottomContent, closePopoverHandler: close, maxDate: parsedMaxDate, minDate: parsedMinDate, onChange: onChange, unavailableDates: props.unavailableDates, value: props.value }))));
84
+ return (react_1.default.createElement(_input_with_popover_1._InputWithPopover, { ...props, className: className, "data-component": exports.DATETIME_PICKER_INPUT_COMPONENT_NAME, "data-name": props.name, onChange: onInputChange, placeholder: props.placeholder, ref: ref, triggerElement: (_a = props.triggerElement) !== null && _a !== void 0 ? _a : react_1.default.createElement(icon_1.Icon, { name: "calendar", size: 20 }), value: value }, ({ close }) => (0, is_not_nil_1.isNotNil)(props.CustomDatetimePicker) ? (react_1.default.createElement(props.CustomDatetimePicker, { onChange: onChange, onClose: close, value: (0, get_datetime_string_1.getDatetimeString)(props.value) })) : (react_1.default.createElement(datetime_picker_1.DatetimePicker, { bottomContent: props.bottomContent, closePopoverHandler: close, maxDate: parsedMaxDate, minDate: parsedMinDate, onChange: onChange, unavailableDates: props.unavailableDates, value: props.value }))));
84
85
  });
85
86
  exports.DatetimePickerInput.displayName = "UxfUiDatePickerInput";
@@ -31,15 +31,14 @@ const datetime_picker_input_1 = require("./datetime-picker-input");
31
31
  function Default() {
32
32
  const [date, setDate] = (0, react_1.useState)(null);
33
33
  const onChange = (0, action_1.action)("onChange", setDate);
34
- const testDatePickers = (react_1.default.createElement(react_1.default.Fragment, null,
35
- react_1.default.createElement(datetime_picker_input_1.DatetimePickerInput, { id: "date-test", isClearable: true, label: "Datum a \u010Das \u010Dehokoliv", name: "date", onChange: onChange, placeholder: "Zadejte datum...", value: date }),
36
- react_1.default.createElement(datetime_picker_input_1.DatetimePickerInput, { id: "date-test", isClearable: true, label: "Datum a \u010Das \u010Dehokoliv vlastn\u00ED ikona", name: "date", onChange: onChange, triggerElement: react_1.default.createElement(icon_1.Icon, { name: "camera", size: 20 }), value: date }),
37
- react_1.default.createElement(datetime_picker_input_1.DatetimePickerInput, { id: "date-test-disabled", isDisabled: true, label: "Datum a \u010Das disabled", name: "date-disabled", onChange: onChange, value: date }),
38
- react_1.default.createElement(datetime_picker_input_1.DatetimePickerInput, { id: "date-test-readonly", isReadOnly: true, label: "Datum a \u010Das readonly", name: "date-readonly", onChange: onChange, value: date }),
39
- react_1.default.createElement(datetime_picker_input_1.DatetimePickerInput, { id: "date-test-invalid", isClearable: true, isInvalid: true, label: "Datum a \u010Das invalid", name: "date-invalid", onChange: onChange, value: date }),
40
- react_1.default.createElement(datetime_picker_input_1.DatetimePickerInput, { id: "date-test-invalid", isClearable: true, label: "min/max-validate", maxDate: "2023-06-26", minDate: "2023-06-13", name: "min/max", onChange: onChange, placeholder: "", value: date }),
34
+ return (react_1.default.createElement("div", { className: "space-y-4 p-8" },
35
+ react_1.default.createElement(datetime_picker_input_1.DatetimePickerInput, { isClearable: true, label: "Default", name: "default", onChange: onChange, placeholder: "Zadejte datum...", value: date }),
36
+ react_1.default.createElement(datetime_picker_input_1.DatetimePickerInput, { isClearable: true, label: "Trigger element", name: "trigger-element", onChange: onChange, triggerElement: react_1.default.createElement(icon_1.Icon, { name: "camera", size: 20 }), value: date }),
37
+ react_1.default.createElement(datetime_picker_input_1.DatetimePickerInput, { isDisabled: true, label: "Disabled", name: "disabled", onChange: onChange, value: date }),
38
+ react_1.default.createElement(datetime_picker_input_1.DatetimePickerInput, { isReadOnly: true, label: "ReadOnly", name: "readonly", onChange: onChange, value: date }),
39
+ react_1.default.createElement(datetime_picker_input_1.DatetimePickerInput, { isClearable: true, isInvalid: true, label: "Invalid", name: "invalid", onChange: onChange, value: date }),
40
+ react_1.default.createElement(datetime_picker_input_1.DatetimePickerInput, { isClearable: true, label: "Min/Max validation", maxDate: "2023-06-26", minDate: "2023-06-13", name: "min-max-validation", onChange: onChange, value: date }),
41
41
  react_1.default.createElement(datetime_picker_input_1.DatetimePickerInput, { bottomContent: react_1.default.createElement("div", null,
42
42
  "Bottom content",
43
- react_1.default.createElement("p", null, "Here can goes anything")), id: "date-test", isClearable: true, label: "With bottom content", name: "date", onChange: onChange, placeholder: "Zadejte datum...", value: date })));
44
- return react_1.default.createElement("div", { className: "max-w-screen-sm space-y-4 rounded p-8" }, testDatePickers);
43
+ react_1.default.createElement("p", null, "Here can goes anything")), isClearable: true, label: "Bottom content", name: "bottom-content", onChange: onChange, value: date })));
45
44
  }
@@ -21,4 +21,5 @@ export interface DropzoneInputProps extends FormControlProps<DropzoneFile[] | un
21
21
  onUploadError?: (err: unknown) => void;
22
22
  style?: CSSProperties;
23
23
  }
24
+ export declare const DROPZONE_COMPONENT_NAME = "dropzone";
24
25
  export declare const DropzoneInput: React.ForwardRefExoticComponent<DropzoneInputProps & React.RefAttributes<HTMLDivElement>>;
@@ -24,7 +24,7 @@ var __importStar = (this && this.__importStar) || function (mod) {
24
24
  return result;
25
25
  };
26
26
  Object.defineProperty(exports, "__esModule", { value: true });
27
- exports.DropzoneInput = void 0;
27
+ exports.DropzoneInput = exports.DROPZONE_COMPONENT_NAME = void 0;
28
28
  const compose_refs_1 = require("@uxf/core-react/utils/compose-refs");
29
29
  const classes_1 = require("@uxf/core/constants/classes");
30
30
  const cx_1 = require("@uxf/core/utils/cx");
@@ -32,6 +32,7 @@ const is_not_nil_1 = require("@uxf/core/utils/is-not-nil");
32
32
  const react_1 = __importStar(require("react"));
33
33
  const react_dropzone_1 = require("react-dropzone");
34
34
  const icon_1 = require("../icon");
35
+ const get_dropzone_state_1 = require("../utils/get-dropzone-state");
35
36
  function fileToFileResponse(file) {
36
37
  return {
37
38
  id: -Math.round(Math.random() * 100000000),
@@ -67,6 +68,7 @@ function fileRejectedHandler(err, dropzoneFile, onValuesChange, values, onUpload
67
68
  }
68
69
  return null;
69
70
  }
71
+ exports.DROPZONE_COMPONENT_NAME = "dropzone";
70
72
  exports.DropzoneInput = (0, react_1.forwardRef)((props, ref) => {
71
73
  var _a, _b;
72
74
  const refValue = (0, react_1.useRef)();
@@ -127,7 +129,8 @@ exports.DropzoneInput = (0, react_1.forwardRef)((props, ref) => {
127
129
  const labelOnCLick = (e) => {
128
130
  e.stopPropagation();
129
131
  };
130
- return (react_1.default.createElement("div", { className: `uxf-dropzone ${(_a = props.className) !== null && _a !== void 0 ? _a : ""}`, style: props.style },
132
+ const dropzoneState = (0, get_dropzone_state_1.getDropzoneState)((_a = props.value) !== null && _a !== void 0 ? _a : []);
133
+ return (react_1.default.createElement("div", { className: (0, cx_1.cx)("uxf-dropzone", 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), "data-component": exports.DROPZONE_COMPONENT_NAME, "data-name": props.name, "data-state": dropzoneState.status, style: props.style },
131
134
  react_1.default.createElement("label", { ...getRootProps({
132
135
  className: (0, cx_1.cx)("uxf-dropzone__label", props.isInvalid && classes_1.CLASSES.IS_INVALID, props.isDisabled && classes_1.CLASSES.IS_DISABLED, props.isNotClickable && "cursor-auto"),
133
136
  onClick: labelOnCLick,
@@ -53,11 +53,11 @@ function Default() {
53
53
  react_1.default.createElement("div", { className: "flex items-center" },
54
54
  react_1.default.createElement(toggle_1.Toggle, { label: "Limit file size", name: "file-size-limit", onChange: () => setIsFileSizeLimited((prev) => !prev), value: isFileSizeLimited }),
55
55
  react_1.default.createElement(text_input_1.TextInput, { className: "w-28", name: "limit-file-size", onChange: (value) => setFileSizeLimit(parseInt(value, 10)), rightElement: "MB", type: "number", value: fileSizeLimit.toString() })),
56
- react_1.default.createElement(index_1.Dropzone, { accept: hasOnlyImagesAllowed ? { "image/*": [] } : undefined, isDisabled: isDisabled, label: "Use drag and drop or click to upload", maxFileSize: isFileSizeLimited ? fileSizeLimit * MB_SIZE : undefined, maxFilesCount: isFileCountLimited ? fileCountLimit : undefined, name: "dropzone-disabled-drag-and-drop", onChange: onChange, onDropRejected: (fileRejections) => (0, handle_rejected_files_1.handleRejectedFiles)(fileRejections, fileCountLimit), onUploadFile: upload_file_mock_1.uploadFile, value: files }),
57
- react_1.default.createElement(index_1.Dropzone.List, { className: "mt-6", errorText: "Chyba p\u0159i nahr\u00E1v\u00E1n\u00ED souboru", isDisabled: isDisabled, name: "dropzone-error-message", onChange: onChange, onRemoveConfirm: onRemoveConfirm, value: files }),
56
+ react_1.default.createElement(index_1.Dropzone, { accept: hasOnlyImagesAllowed ? { "image/*": [] } : undefined, isDisabled: isDisabled, label: "Use drag and drop or click to upload", maxFileSize: isFileSizeLimited ? fileSizeLimit * MB_SIZE : undefined, maxFilesCount: isFileCountLimited ? fileCountLimit : undefined, name: "default", onChange: onChange, onDropRejected: (fileRejections) => (0, handle_rejected_files_1.handleRejectedFiles)(fileRejections, fileCountLimit), onUploadFile: upload_file_mock_1.uploadFile, value: files }),
57
+ react_1.default.createElement(index_1.Dropzone.List, { className: "mt-6", errorText: "Chyba p\u0159i nahr\u00E1v\u00E1n\u00ED souboru", isDisabled: isDisabled, name: "default", onChange: onChange, onRemoveConfirm: onRemoveConfirm, value: files }),
58
58
  react_1.default.createElement(show_1.Show, { when: (0, is_not_empty_1.isNotEmpty)(files) },
59
59
  react_1.default.createElement("div", { className: "mt-6" },
60
60
  react_1.default.createElement("p", null, "File response:"),
61
- react_1.default.createElement(index_1.Dropzone.List, { className: "max-w-full bg-gray-200 p-4", name: "dropzone-list", onChange: onChange, onRemoveConfirm: onRemoveConfirm, renderItem: (file) => (react_1.default.createElement("li", { className: "max-w-full", key: file.id },
61
+ react_1.default.createElement(index_1.Dropzone.List, { className: "max-w-full bg-gray-200 p-4", name: "default", onChange: onChange, onRemoveConfirm: onRemoveConfirm, renderItem: (file) => (react_1.default.createElement("li", { className: "max-w-full", key: file.id },
62
62
  react_1.default.createElement("pre", { className: "whitespace-pre-wrap break-all" }, JSON.stringify(file, null, 4)))), value: files })))));
63
63
  }
@@ -2,6 +2,7 @@ import React, { ReactElement, ReactNode } from "react";
2
2
  export interface FormComponentProps {
3
3
  children?: ReactElement;
4
4
  className?: string;
5
+ "data-component"?: string;
5
6
  errorId?: string;
6
7
  form?: string;
7
8
  helperText?: ReactNode;
@@ -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 : ""}`, "data-name": props.name, ref: ref },
34
+ return (react_1.default.createElement("div", { className: `uxf-form-component ${(_a = props.className) !== null && _a !== void 0 ? _a : ""}`, "data-component": props["data-component"], "data-name": props.name, ref: ref },
35
35
  react_1.default.createElement("div", { className: "uxf-form-component__label" },
36
36
  react_1.default.createElement(label_1.Label, { form: props.form, htmlFor: props.inputId, isHidden: props.hiddenLabel, isRequired: props.isRequired }, props.label)),
37
37
  react_1.default.createElement("div", { className: "uxf-form-component__input" },
@@ -1,3 +1,4 @@
1
1
  import React from "react";
2
2
  import { MultiComboboxOption, MultiComboboxProps, MultiComboboxValueId } from "./types";
3
+ export declare const MULTI_COMBOBOX_COMPONENT_NAME = "multiCombobox";
3
4
  export declare const MultiCombobox: React.ForwardRefExoticComponent<MultiComboboxProps<MultiComboboxValueId, MultiComboboxOption<MultiComboboxValueId>> & React.RefAttributes<HTMLInputElement>>;
@@ -24,7 +24,7 @@ var __importStar = (this && this.__importStar) || function (mod) {
24
24
  return result;
25
25
  };
26
26
  Object.defineProperty(exports, "__esModule", { value: true });
27
- exports.MultiCombobox = void 0;
27
+ exports.MultiCombobox = exports.MULTI_COMBOBOX_COMPONENT_NAME = void 0;
28
28
  const react_1 = require("@floating-ui/react");
29
29
  const react_2 = require("@headlessui/react");
30
30
  const show_1 = require("@uxf/core-react/components/show");
@@ -90,6 +90,7 @@ function useMultiComboboxOptions(query, props) {
90
90
  filteredOptions,
91
91
  };
92
92
  }
93
+ exports.MULTI_COMBOBOX_COMPONENT_NAME = "multiCombobox";
93
94
  exports.MultiCombobox = (0, react_3.forwardRef)((props, ref) => {
94
95
  var _a, _b, _c, _d, _e, _f, _g;
95
96
  const t = (0, translations_1.useUxfTranslation)();
@@ -150,7 +151,7 @@ exports.MultiCombobox = (0, react_3.forwardRef)((props, ref) => {
150
151
  (_a = props.onBlur) === null || _a === void 0 ? void 0 : _a.call(props, e);
151
152
  };
152
153
  const isNotInteractive = props.isDisabled || props.isReadOnly;
153
- return (react_3.default.createElement(react_2.Combobox, { as: "div", by: "id", className: (0, cx_1.cx)("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), "data-name": props.name, disabled: isNotInteractive, form: props.form, multiple: true, name: props.name, onChange: changeHandler, style: props.style, value: selectedOptions }, (renderProps) => {
154
+ return (react_3.default.createElement(react_2.Combobox, { as: "div", by: "id", className: (0, cx_1.cx)("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), "data-component": exports.MULTI_COMBOBOX_COMPONENT_NAME, "data-name": props.name, disabled: isNotInteractive, form: props.form, multiple: true, name: props.name, onChange: changeHandler, style: props.style, value: selectedOptions }, (renderProps) => {
154
155
  var _a, _b;
155
156
  return (react_3.default.createElement(react_3.default.Fragment, null,
156
157
  react_3.default.createElement("div", { className: "uxf-form-component__label" },
@@ -1,4 +1,3 @@
1
1
  import React from "react";
2
2
  export declare function Default(): React.JSX.Element;
3
3
  export declare function Async(): React.JSX.Element;
4
- export declare function ComponentStructure(): React.JSX.Element;
@@ -22,16 +22,11 @@ var __importStar = (this && this.__importStar) || function (mod) {
22
22
  __setModuleDefault(result, mod);
23
23
  return result;
24
24
  };
25
- var __importDefault = (this && this.__importDefault) || function (mod) {
26
- return (mod && mod.__esModule) ? mod : { "default": mod };
27
- };
28
25
  Object.defineProperty(exports, "__esModule", { value: true });
29
26
  exports.Default = Default;
30
27
  exports.Async = Async;
31
- exports.ComponentStructure = ComponentStructure;
32
28
  const react_1 = __importStar(require("react"));
33
29
  const action_1 = require("../utils/action");
34
- const component_structure_analyzer_1 = __importDefault(require("../utils/component-structure-analyzer"));
35
30
  const multi_combobox_1 = require("./multi-combobox");
36
31
  const options = [
37
32
  { id: "one", label: "Option red", color: "red" },
@@ -54,20 +49,15 @@ function Default() {
54
49
  console.log("Select values: ", v);
55
50
  setValue(v);
56
51
  });
57
- const storyComboboxes = (react_1.default.createElement("div", { className: "space-y-8" },
58
- react_1.default.createElement(multi_combobox_1.MultiCombobox, { dropdownMaxHeight: 350, id: "multi-combobox-1", label: "MultiCombobox", name: "multi-combobox", onChange: onChange, options: options, placeholder: "Vyberte pros\u00EDm jednu nebo v\u00EDce mo\u017Enost\u00ED", value: value }),
59
- react_1.default.createElement(multi_combobox_1.MultiCombobox, { id: "multi-combobox-2", label: "MultiCombobox with checkboxes", name: "multi-combobox", onChange: onChange, options: options, placeholder: "Vyberte...", value: value, withCheckboxes: true }),
60
- react_1.default.createElement(multi_combobox_1.MultiCombobox, { helperText: "Start typing to see options...", id: "multi-combobox-3", label: "MultiCombobox with helper text", name: "multi-combobox", onChange: onChange, options: options, placeholder: "Vyberte...", value: value }),
61
- react_1.default.createElement(multi_combobox_1.MultiCombobox, { helperText: "Error message", id: "multi-combobox-4", isInvalid: true, isRequired: true, label: "MultiCombobox invalid", name: "multi-combobox-invalid", onChange: onChange, options: options, placeholder: "Vyberte...", value: value }),
62
- react_1.default.createElement(multi_combobox_1.MultiCombobox, { dropdownPlacement: "top", id: "multi-combobox-5", label: "MultiCombobox with dropdown top", name: "multi-combobox", onChange: onChange, options: options, placeholder: "Vyberte...", value: value }),
63
- react_1.default.createElement(multi_combobox_1.MultiCombobox, { id: "multi-combobox-6", label: "MultiCombobox with renderOption", name: "multi-combobox", onChange: onChange, options: options, placeholder: "Vyberte...", renderOption: (option) => react_1.default.createElement(react_1.default.Fragment, null,
52
+ return (react_1.default.createElement("div", { className: "space-y-4 p-4" },
53
+ react_1.default.createElement(multi_combobox_1.MultiCombobox, { helperText: "Helper text", label: "Default", name: "default", onChange: onChange, options: options, placeholder: "Placeholder", value: value }),
54
+ react_1.default.createElement(multi_combobox_1.MultiCombobox, { label: "With checkboxes", name: "with-checkboxes", onChange: onChange, options: options, value: value, withCheckboxes: true }),
55
+ react_1.default.createElement(multi_combobox_1.MultiCombobox, { helperText: "Invalid", isInvalid: true, isRequired: true, label: "Invalid", name: "invalid", onChange: onChange, options: options, value: value }),
56
+ react_1.default.createElement(multi_combobox_1.MultiCombobox, { dropdownPlacement: "top", label: "Dropdown top", name: "dropdown-top", onChange: onChange, options: options, value: value }),
57
+ react_1.default.createElement(multi_combobox_1.MultiCombobox, { label: "RenderOptions", name: "render-options", onChange: onChange, options: options, renderOption: (option) => react_1.default.createElement(react_1.default.Fragment, null,
64
58
  "Option: ",
65
59
  option.label), value: value }),
66
- react_1.default.createElement(multi_combobox_1.MultiCombobox, { id: "multi-combobox-disabled", isDisabled: true, label: "MultiCombobox disabled", name: "multi-combobox-disabled", onChange: onChange, options: options, placeholder: "Vyberte...", renderOption: (option) => react_1.default.createElement(react_1.default.Fragment, null,
67
- "Option: ",
68
- option.label), value: value })));
69
- return (react_1.default.createElement("div", { className: "flex flex-col lg:flex-row" },
70
- react_1.default.createElement("div", { className: "space-y-2 p-20 lg:w-1/2" }, storyComboboxes)));
60
+ react_1.default.createElement(multi_combobox_1.MultiCombobox, { isDisabled: true, label: "Disabled", name: "Disabled", onChange: onChange, options: options, value: value })));
71
61
  }
72
62
  function Async() {
73
63
  const [value, setValue] = (0, react_1.useState)(null);
@@ -76,14 +66,7 @@ function Async() {
76
66
  console.log("Select values: ", v);
77
67
  setValue(v);
78
68
  });
79
- const loadOptions = (query) => Promise.resolve(options.filter((option) => !query || option.label.toLowerCase().includes(query.toLowerCase())));
80
- const storyComboboxes = (react_1.default.createElement("div", { className: "space-y-8" },
81
- react_1.default.createElement(multi_combobox_1.MultiCombobox, { id: "multi-combobox-async-1", label: "MultiCombobox", loadOptions: loadOptions, name: "multi-combobox", onChange: onChange, placeholder: "Vyberte...", value: value })));
82
- return (react_1.default.createElement("div", { className: "flex flex-col lg:flex-row" },
83
- react_1.default.createElement("div", { className: "space-y-2 p-20 lg:w-1/2" }, storyComboboxes)));
84
- }
85
- function ComponentStructure() {
86
- const [value, onChange] = (0, react_1.useState)(null);
87
- return (react_1.default.createElement(component_structure_analyzer_1.default, null,
88
- react_1.default.createElement(multi_combobox_1.MultiCombobox, { helperText: "Start typing to see options...", id: "multi-combobox-structure", label: "MultiCombobox with helper text", name: "multi-combobox", onChange: onChange, options: options, value: value })));
69
+ const loadOptions = (query) => new Promise((resolve) => setTimeout(() => resolve(options.filter((option) => !query || option.label.toLowerCase().includes(query.toLowerCase()))), 500));
70
+ return (react_1.default.createElement("div", { className: "p-4" },
71
+ react_1.default.createElement(multi_combobox_1.MultiCombobox, { label: "Async", loadOptions: loadOptions, name: "async", onChange: onChange, value: value })));
89
72
  }
@@ -1,3 +1,4 @@
1
1
  import React from "react";
2
2
  import { MultiSelectOption, MultiSelectProps, MultiSelectValueId } from "./types";
3
+ export declare const MULTI_SELECT_COMPONENT_NAME = "multiSelect";
3
4
  export declare const MultiSelect: React.ForwardRefExoticComponent<MultiSelectProps<MultiSelectValueId, MultiSelectOption<MultiSelectValueId>> & React.RefAttributes<HTMLDivElement>>;
@@ -24,7 +24,7 @@ var __importStar = (this && this.__importStar) || function (mod) {
24
24
  return result;
25
25
  };
26
26
  Object.defineProperty(exports, "__esModule", { value: true });
27
- exports.MultiSelect = void 0;
27
+ exports.MultiSelect = exports.MULTI_SELECT_COMPONENT_NAME = void 0;
28
28
  const react_1 = require("@floating-ui/react");
29
29
  const react_2 = require("@headlessui/react");
30
30
  const show_1 = require("@uxf/core-react/components/show");
@@ -72,6 +72,7 @@ function Options(props) {
72
72
  })) : (react_3.default.createElement("div", { className: "uxf-dropdown__empty-wrapper" }, props.emptyMessage))));
73
73
  }
74
74
  Options.displayName = "UxfUiMultiSelectOptions";
75
+ exports.MULTI_SELECT_COMPONENT_NAME = "multiSelect";
75
76
  exports.MultiSelect = (0, react_3.forwardRef)((props, ref) => {
76
77
  var _a, _b, _c, _d, _e, _f;
77
78
  const t = (0, translations_1.useUxfTranslation)();
@@ -112,7 +113,7 @@ exports.MultiSelect = (0, react_3.forwardRef)((props, ref) => {
112
113
  ? ((_e = props.allOptionsSelectedMessage) !== null && _e !== void 0 ? _e : t("uxf-ui-multi-select:all-options-selected"))
113
114
  : ((_f = props.noOptionsMessage) !== null && _f !== void 0 ? _f : t("uxf-ui-multi-select:no-options-message"));
114
115
  const isNotInteractive = props.isDisabled || props.isReadOnly;
115
- return (react_3.default.createElement(react_2.Listbox, { as: "div", className: (0, cx_1.cx)("uxf-form-component uxf-multi-select", 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-name": props.name, disabled: isNotInteractive, form: props.form, multiple: true, name: props.name, onChange: props.onChange, value: selectedOptions }, (renderProps) => {
116
+ return (react_3.default.createElement(react_2.Listbox, { as: "div", className: (0, cx_1.cx)("uxf-form-component uxf-multi-select", 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-component": exports.MULTI_SELECT_COMPONENT_NAME, "data-name": props.name, disabled: isNotInteractive, form: props.form, multiple: true, name: props.name, onChange: props.onChange, value: selectedOptions }, (renderProps) => {
116
117
  var _a, _b;
117
118
  return (react_3.default.createElement(react_3.default.Fragment, null,
118
119
  react_3.default.createElement("div", { className: "uxf-form-component__label" },
@@ -1,3 +1,2 @@
1
1
  import React from "react";
2
2
  export declare function Default(): React.JSX.Element;
3
- export declare function ComponentStructure(): React.JSX.Element;
@@ -22,13 +22,8 @@ var __importStar = (this && this.__importStar) || function (mod) {
22
22
  __setModuleDefault(result, mod);
23
23
  return result;
24
24
  };
25
- var __importDefault = (this && this.__importDefault) || function (mod) {
26
- return (mod && mod.__esModule) ? mod : { "default": mod };
27
- };
28
25
  Object.defineProperty(exports, "__esModule", { value: true });
29
26
  exports.Default = Default;
30
- exports.ComponentStructure = ComponentStructure;
31
- const component_structure_analyzer_1 = __importDefault(require("@uxf/ui/utils/component-structure-analyzer"));
32
27
  const react_1 = __importStar(require("react"));
33
28
  const action_1 = require("../utils/action");
34
29
  const multi_select_1 = require("./multi-select");
@@ -53,23 +48,13 @@ function Default() {
53
48
  console.log("Select values: ", v);
54
49
  setValue(v);
55
50
  });
56
- const component = (react_1.default.createElement("div", { className: "space-y-8" },
57
- react_1.default.createElement(multi_select_1.MultiSelect, { dropdownMaxHeight: 350, id: "multi-select-1", label: "MultiSelect", name: "multi-select", onChange: onChange, options: options, placeholder: "Vyberte pros\u00EDm jednu nebo v\u00EDce mo\u017Enost\u00ED", value: value }),
58
- react_1.default.createElement(multi_select_1.MultiSelect, { id: "multi-select-2", label: "MultiSelect with checkboxes", name: "multi-select", onChange: onChange, options: options, placeholder: "Vyberte...", value: value, withCheckboxes: true }),
59
- react_1.default.createElement(multi_select_1.MultiSelect, { helperText: "Start typing to see options...", id: "multi-select-3", label: "MultiSelect with helper text", name: "multi-select", onChange: onChange, options: options, placeholder: "Vyberte...", value: value }),
60
- react_1.default.createElement(multi_select_1.MultiSelect, { helperText: "Error message", id: "multi-select-4", isInvalid: true, isRequired: true, label: "MultiSelect invalid", name: "multi-select-invalid", onChange: onChange, options: options, placeholder: "Vyberte...", value: value }),
61
- react_1.default.createElement(multi_select_1.MultiSelect, { dropdownPlacement: "top", id: "multi-select-5", label: "MultiSelect with dropdown top", name: "multi-select", onChange: onChange, options: options, placeholder: "Vyberte...", value: value }),
62
- react_1.default.createElement(multi_select_1.MultiSelect, { id: "multi-select-6", label: "MultiSelect with renderOption", name: "multi-select", onChange: onChange, options: options, placeholder: "Vyberte...", renderOption: (option) => react_1.default.createElement(react_1.default.Fragment, null,
51
+ return (react_1.default.createElement("div", { className: "space-y-6 p-8" },
52
+ react_1.default.createElement(multi_select_1.MultiSelect, { dropdownMaxHeight: 350, helperText: "Helper text", label: "Default", name: "default", onChange: onChange, options: options, placeholder: "Placeholder", value: value }),
53
+ react_1.default.createElement(multi_select_1.MultiSelect, { label: "With checkboxes", name: "with-checkboxes", onChange: onChange, options: options, value: value, withCheckboxes: true }),
54
+ react_1.default.createElement(multi_select_1.MultiSelect, { helperText: "Error message", isInvalid: true, isRequired: true, label: "Invalid", name: "invalid", onChange: onChange, options: options, value: value }),
55
+ react_1.default.createElement(multi_select_1.MultiSelect, { dropdownPlacement: "top", label: "Dropdown top", name: "dropdown-top", onChange: onChange, options: options, value: value }),
56
+ react_1.default.createElement(multi_select_1.MultiSelect, { label: "RenderOptions", name: "render-options", onChange: onChange, options: options, renderOption: (option) => react_1.default.createElement(react_1.default.Fragment, null,
63
57
  "Option: ",
64
58
  option.label), value: value }),
65
- react_1.default.createElement(multi_select_1.MultiSelect, { id: "multi-select-disabled", isDisabled: true, label: "MultiSelect disabled", name: "multi-select-disabled", onChange: onChange, options: options, placeholder: "Vyberte...", renderOption: (option) => react_1.default.createElement(react_1.default.Fragment, null,
66
- "Option: ",
67
- option.label), value: value })));
68
- return (react_1.default.createElement("div", { className: "flex flex-col lg:flex-row" },
69
- react_1.default.createElement("div", { className: "space-y-2 p-20 lg:w-1/2" }, component)));
70
- }
71
- function ComponentStructure() {
72
- const [value, onChange] = (0, react_1.useState)(null);
73
- return (react_1.default.createElement(component_structure_analyzer_1.default, null,
74
- react_1.default.createElement(multi_select_1.MultiSelect, { helperText: "Start typing to see options...", id: "multi-select-structure", label: "MultiSelect with helper text", name: "multi-select-structure", onChange: onChange, options: options, value: value })));
59
+ react_1.default.createElement(multi_select_1.MultiSelect, { isDisabled: true, label: "Disabled", name: "disabled", onChange: onChange, options: options, value: value })));
75
60
  }
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@uxf/ui",
3
- "version": "11.75.1",
3
+ "version": "11.77.0",
4
4
  "description": "",
5
5
  "publishConfig": {
6
6
  "access": "public"
@@ -20,4 +20,5 @@ export interface RadioGroupProps extends FormControlProps<RadioGroupOptionValueI
20
20
  style?: CSSProperties;
21
21
  variant?: RadioGroupVariant;
22
22
  }
23
+ export declare const RADIO_GROUP_COMPONENT_NAME = "radioGroup";
23
24
  export declare const RadioGroup: React.ForwardRefExoticComponent<RadioGroupProps & React.RefAttributes<HTMLLabelElement>>;
@@ -23,7 +23,7 @@ var __importStar = (this && this.__importStar) || function (mod) {
23
23
  return result;
24
24
  };
25
25
  Object.defineProperty(exports, "__esModule", { value: true });
26
- exports.RadioGroup = void 0;
26
+ exports.RadioGroup = exports.RADIO_GROUP_COMPONENT_NAME = void 0;
27
27
  const react_1 = require("@headlessui/react");
28
28
  const classes_1 = require("@uxf/core/constants/classes");
29
29
  const cx_1 = require("@uxf/core/utils/cx");
@@ -31,6 +31,7 @@ const radio_1 = require("@uxf/ui/radio");
31
31
  const react_2 = __importStar(require("react"));
32
32
  const use_input_submit_1 = require("../hooks/use-input-submit");
33
33
  const label_1 = require("../label");
34
+ exports.RADIO_GROUP_COMPONENT_NAME = "radioGroup";
34
35
  exports.RadioGroup = (0, react_2.forwardRef)((props, ref) => {
35
36
  var _a, _b;
36
37
  const innerRef = (0, react_2.useRef)(null);
@@ -38,8 +39,8 @@ exports.RadioGroup = (0, react_2.forwardRef)((props, ref) => {
38
39
  const errorId = props.isInvalid ? `${props.id}--errormessage` : undefined;
39
40
  const variant = (_a = props.variant) !== null && _a !== void 0 ? _a : "list";
40
41
  const radioSize = (_b = props.radioSize) !== null && _b !== void 0 ? _b : "default";
41
- const rootClassName = (0, cx_1.cx)("uxf-form-component uxf-radio-group", `uxf-radio-group--${variant}`, props.isDisabled && classes_1.CLASSES.IS_DISABLED, props.isInvalid && classes_1.CLASSES.IS_INVALID, props.className);
42
- return (react_2.default.createElement(react_1.RadioGroup, { className: rootClassName, "data-name": props.name, disabled: props.isDisabled, id: props.id, onChange: props.onChange, style: props.style, value: props.value },
42
+ const rootClassName = (0, cx_1.cx)("uxf-form-component uxf-radio-group", `uxf-radio-group--${variant}`, 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);
43
+ return (react_2.default.createElement(react_1.RadioGroup, { className: rootClassName, "data-component": exports.RADIO_GROUP_COMPONENT_NAME, "data-name": props.name, disabled: props.isDisabled, id: props.id, onChange: props.onChange, style: props.style, value: props.value },
43
44
  react_2.default.createElement("div", { className: "uxf-form-component__label" },
44
45
  react_2.default.createElement(react_1.RadioGroup.Label, { as: label_1.Label, className: "uxf-radio-group__label", isHidden: props.hiddenLabel, isRequired: props.isRequired, ref: ref }, props.label)),
45
46
  react_2.default.createElement("div", { className: "uxf-form-component__input" },
@@ -41,6 +41,7 @@ export interface SelectProps<Value = SelectValue, Option = SelectOption<Value>>
41
41
  inputRef?: Ref<HTMLButtonElement> | undefined;
42
42
  inputWrapperRef?: Ref<SelectTypeRef> | undefined;
43
43
  }
44
+ export declare const SELECT_COMPONENT_NAME = "select";
44
45
  export declare function Select<Value = SelectValue, Option = SelectOption<Value>>(props: SelectProps<Value, Option>): React.JSX.Element;
45
46
  export declare namespace Select {
46
47
  var displayName: string;
package/select/select.js CHANGED
@@ -24,6 +24,7 @@ var __importStar = (this && this.__importStar) || function (mod) {
24
24
  return result;
25
25
  };
26
26
  Object.defineProperty(exports, "__esModule", { value: true });
27
+ exports.SELECT_COMPONENT_NAME = void 0;
27
28
  exports.Select = Select;
28
29
  const react_1 = require("@floating-ui/react");
29
30
  const react_2 = require("@headlessui/react");
@@ -61,6 +62,7 @@ const SelectedValue = (0, react_3.forwardRef)((props, ref) => {
61
62
  react_3.default.createElement("span", { className: "uxf-input__element-text" }, props.children)));
62
63
  });
63
64
  SelectedValue.displayName = "UxUiSelectSelectedValue";
65
+ exports.SELECT_COMPONENT_NAME = "select";
64
66
  function Select(props) {
65
67
  var _a, _b, _c, _d, _e;
66
68
  const t = (0, translations_1.useUxfTranslation)();
@@ -76,7 +78,7 @@ function Select(props) {
76
78
  const value = selectedOption;
77
79
  const emptyMessage = (_e = props.noOptionsMessage) !== null && _e !== void 0 ? _e : t("uxf-ui-select:no-options-message");
78
80
  const isNotInteractive = props.isDisabled || props.isReadOnly;
79
- return (react_3.default.createElement(react_2.Listbox, { as: "div", by: "id", className: (0, cx_1.cx)("uxf-form-component uxf-select", 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-name": props.name, disabled: isNotInteractive, form: props.form, name: props.name, onChange: onChange, style: props.style, value: value }, (renderProps) => {
81
+ return (react_3.default.createElement(react_2.Listbox, { as: "div", by: "id", className: (0, cx_1.cx)("uxf-form-component uxf-select", 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-component": exports.SELECT_COMPONENT_NAME, "data-name": props.name, disabled: isNotInteractive, form: props.form, name: props.name, onChange: onChange, style: props.style, value: value }, (renderProps) => {
80
82
  var _a, _b, _c;
81
83
  return (react_3.default.createElement(react_3.default.Fragment, null,
82
84
  react_3.default.createElement("div", { className: "uxf-form-component__label" },
@@ -29,5 +29,6 @@ export interface TextInputProps extends FormControlProps<string>, Pick<InputProp
29
29
  step?: number | string;
30
30
  style?: CSSProperties;
31
31
  }
32
+ export declare const TEXT_INPUT_COMPONENT_NAME = "textInput";
32
33
  export declare const TextInput: React.ForwardRefExoticComponent<TextInputProps & React.RefAttributes<HTMLInputElement>>;
33
34
  export {};
@@ -24,7 +24,7 @@ var __importStar = (this && this.__importStar) || function (mod) {
24
24
  return result;
25
25
  };
26
26
  Object.defineProperty(exports, "__esModule", { value: true });
27
- exports.TextInput = void 0;
27
+ exports.TextInput = exports.TEXT_INPUT_COMPONENT_NAME = void 0;
28
28
  const use_input_focus_1 = require("@uxf/core-react/hooks/use-input-focus");
29
29
  const compose_refs_1 = require("@uxf/core-react/utils/compose-refs");
30
30
  const classes_1 = require("@uxf/core/constants/classes");
@@ -32,6 +32,7 @@ const cx_1 = require("@uxf/core/utils/cx");
32
32
  const input_1 = require("@uxf/ui/input");
33
33
  const react_1 = __importStar(require("react"));
34
34
  const form_component_1 = require("../form-component");
35
+ exports.TEXT_INPUT_COMPONENT_NAME = "textInput";
35
36
  exports.TextInput = (0, react_1.forwardRef)((props, ref) => {
36
37
  var _a, _b;
37
38
  const innerRef = (0, react_1.useRef)(null);
@@ -40,7 +41,7 @@ exports.TextInput = (0, react_1.forwardRef)((props, ref) => {
40
41
  const id = (_a = props.id) !== null && _a !== void 0 ? _a : generatedId;
41
42
  const errorId = props.isInvalid ? `${id}--error-message` : undefined;
42
43
  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);
43
- 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 },
44
+ return (react_1.default.createElement(form_component_1.FormComponent, { className: rootClassName, "data-component": exports.TEXT_INPUT_COMPONENT_NAME, errorId: errorId, form: props.form, helperText: props.helperText, hiddenLabel: props.hiddenLabel, inputId: id, isRequired: props.isRequired, label: props.label, name: props.name },
44
45
  react_1.default.createElement(input_1.Input, { inputFocus: input, ref: (0, compose_refs_1.composeRefs)(innerRef, ref), size: props.size, style: props.style, variant: props.variant },
45
46
  props.leftAddon && react_1.default.createElement(input_1.Input.LeftAddon, null, props.leftAddon),
46
47
  props.leftElement && react_1.default.createElement(input_1.Input.LeftElement, null, props.leftElement),
@@ -15,4 +15,5 @@ export interface TextareaProps extends FormControlProps<string, HTMLTextAreaElem
15
15
  rows?: number;
16
16
  style?: CSSProperties;
17
17
  }
18
+ export declare const TEXTAREA_COMPONENT_NAME = "textarea";
18
19
  export declare const Textarea: React.ForwardRefExoticComponent<TextareaProps & React.RefAttributes<HTMLTextAreaElement>>;
@@ -24,7 +24,7 @@ var __importStar = (this && this.__importStar) || function (mod) {
24
24
  return result;
25
25
  };
26
26
  Object.defineProperty(exports, "__esModule", { value: true });
27
- exports.Textarea = void 0;
27
+ exports.Textarea = exports.TEXTAREA_COMPONENT_NAME = void 0;
28
28
  const use_input_focus_1 = require("@uxf/core-react/hooks/use-input-focus");
29
29
  const use_isomorphic_layout_effect_1 = require("@uxf/core-react/hooks/use-isomorphic-layout-effect");
30
30
  const compose_refs_1 = require("@uxf/core-react/utils/compose-refs");
@@ -33,6 +33,7 @@ const adjust_textarea_height_1 = require("@uxf/core/utils/adjust-textarea-height
33
33
  const cx_1 = require("@uxf/core/utils/cx");
34
34
  const react_1 = __importStar(require("react"));
35
35
  const form_component_1 = require("../form-component");
36
+ exports.TEXTAREA_COMPONENT_NAME = "textarea";
36
37
  exports.Textarea = (0, react_1.forwardRef)((props, ref) => {
37
38
  var _a, _b, _c;
38
39
  const innerRef = (0, react_1.useRef)(null);
@@ -52,7 +53,7 @@ exports.Textarea = (0, react_1.forwardRef)((props, ref) => {
52
53
  const cleanup = (0, adjust_textarea_height_1.adjustTextareaHeight)(node, rows);
53
54
  return () => cleanup();
54
55
  }, [props.disableAutoHeight, rows]);
55
- 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 },
56
+ return (react_1.default.createElement(form_component_1.FormComponent, { className: rootClassName, "data-component": exports.TEXTAREA_COMPONENT_NAME, errorId: errorId, form: props.form, helperText: props.helperText, hiddenLabel: props.hiddenLabel, inputId: id, isRequired: props.isRequired, label: props.label, name: props.name },
56
57
  react_1.default.createElement("div", { className: "uxf-textarea__wrapper", onClick: focusTextareaOnWrapperClick, style: props.style },
57
58
  react_1.default.createElement("textarea", { "aria-describedby": errorId, "aria-invalid": props.isInvalid, autoComplete: props.autoComplete, className: (0, cx_1.cx)("uxf-textarea__element", !props.disableAutoHeight && rows >= 1 && "uxf-textarea__element--is-auto-height-enabled"), disabled: props.isDisabled, form: props.form, id: id, maxLength: props.maxLength, minLength: props.minLength, name: props.name, onBlur: input.onBlur, onChange: handleChange, onFocus: input.onFocus, placeholder: props.placeholder, readOnly: props.isReadOnly, ref: (0, compose_refs_1.composeRefs)(innerRef, ref), required: props.isRequired, rows: rows, value: props.value }))));
58
59
  });
@@ -10,4 +10,5 @@ export interface ToggleProps extends FormControlProps<boolean | undefined> {
10
10
  style?: CSSProperties;
11
11
  variant?: ToggleVariant;
12
12
  }
13
+ export declare const TOGGLE_COMPONENT_NAME = "toggle";
13
14
  export declare const Toggle: React.ForwardRefExoticComponent<ToggleProps & React.RefAttributes<HTMLButtonElement>>;
package/toggle/toggle.js CHANGED
@@ -23,15 +23,16 @@ var __importStar = (this && this.__importStar) || function (mod) {
23
23
  return result;
24
24
  };
25
25
  Object.defineProperty(exports, "__esModule", { value: true });
26
- exports.Toggle = void 0;
26
+ exports.Toggle = exports.TOGGLE_COMPONENT_NAME = void 0;
27
27
  const react_1 = require("@headlessui/react");
28
28
  const classes_1 = require("@uxf/core/constants/classes");
29
29
  const cx_1 = require("@uxf/core/utils/cx");
30
30
  const react_2 = __importStar(require("react"));
31
+ exports.TOGGLE_COMPONENT_NAME = "toggle";
31
32
  exports.Toggle = (0, react_2.forwardRef)((props, ref) => {
32
33
  var _a, _b, _c, _d;
33
34
  return (react_2.default.createElement(react_1.Switch.Group, null,
34
- react_2.default.createElement("div", { className: (0, cx_1.cx)("uxf-toggle__wrapper", `uxf-toggle__wrapper--${(_a = props.variant) !== null && _a !== void 0 ? _a : "default"}`, `uxf-toggle__wrapper--size-${(_b = props.size) !== null && _b !== void 0 ? _b : "default"}`, props.hiddenLabel && "uxf-toggle__wrapper--hiddenLabel", props.className), "data-name": props.name },
35
+ react_2.default.createElement("div", { className: (0, cx_1.cx)("uxf-toggle__wrapper", `uxf-toggle__wrapper--${(_a = props.variant) !== null && _a !== void 0 ? _a : "default"}`, `uxf-toggle__wrapper--size-${(_b = props.size) !== null && _b !== void 0 ? _b : "default"}`, props.hiddenLabel && "uxf-toggle__wrapper--hiddenLabel", 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), "data-component": exports.TOGGLE_COMPONENT_NAME, "data-name": props.name },
35
36
  react_2.default.createElement(react_1.Switch, { checked: props.value, 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, props.value && classes_1.CLASSES.IS_SELECTED, "uxf-toggle", `uxf-toggle--${(_c = props.variant) !== null && _c !== void 0 ? _c : "default"}`, `uxf-toggle--size-${(_d = props.size) !== null && _d !== void 0 ? _d : "default"}`), disabled: props.isDisabled, id: props.id, name: props.name, onChange: props.onChange, ref: ref, style: props.style },
36
37
  react_2.default.createElement("span", { className: "uxf-toggle__inner" })),
37
38
  react_2.default.createElement(react_1.Switch.Label, { className: "uxf-toggle__label", hidden: props.hiddenLabel }, props.label))));