@uxf/ui 10.0.0-beta.41 → 10.0.0-beta.48
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.
- package/_select-base/_select-base.d.ts +1 -1
- package/_select-base/_select-base.js +2 -2
- package/combobox/combobox.d.ts +1 -1
- package/combobox/combobox.stories.js +5 -1
- package/file-input/file-input.d.ts +1 -0
- package/file-input/file-input.js +1 -1
- package/multi-combobox/multi-combobox.stories.js +4 -1
- package/multi-select/_multi-select-base.js +2 -2
- package/multi-select/multi-select.stories.js +4 -1
- package/package.json +1 -1
- package/select/select.d.ts +1 -1
- package/select/select.stories.js +7 -1
|
@@ -28,7 +28,7 @@ export interface SelectBaseProps<Value, Option> extends FormControlProps<Value |
|
|
|
28
28
|
label: ReactNode;
|
|
29
29
|
options?: Option[];
|
|
30
30
|
placeholder?: string;
|
|
31
|
-
renderOption?: (option: Option) => ReactNode;
|
|
31
|
+
renderOption?: (option: Option, isSelected: boolean) => ReactNode;
|
|
32
32
|
size?: keyof InputGroupSizes;
|
|
33
33
|
variant?: keyof InputGroupVariants;
|
|
34
34
|
leftAddon?: ReactNode;
|
|
@@ -54,9 +54,9 @@ const Options = (props) => {
|
|
|
54
54
|
var _a, _b;
|
|
55
55
|
const HUIComponent = props.HUIComponent;
|
|
56
56
|
return (react_2.default.createElement(HUIComponent.Options, { className: (0, cx_1.cx)("uxf-dropdown", `uxf-dropdown--size-${(_a = props.size) !== null && _a !== void 0 ? _a : "default"}`, `uxf-dropdown--variant-${(_b = props.variant) !== null && _b !== void 0 ? _b : "default"}`, props.placement === "bottom" && "uxf-dropdown--bottom", props.placement === "top" && "uxf-dropdown--top"), ref: props.forwardRef, static: true, style: props.style }, props.options && props.options.length > 0 ? (props.options.map((option) => {
|
|
57
|
-
var _a
|
|
57
|
+
var _a;
|
|
58
58
|
const optionKey = (_a = props.keyExtractor) === null || _a === void 0 ? void 0 : _a.call(props, option);
|
|
59
|
-
return (react_2.default.createElement(HUIComponent.Option, { className: (optionState) => (0, cx_1.cx)("uxf-dropdown__item", optionState.active && classes_1.CLASSES.IS_ACTIVE, optionState.disabled && classes_1.CLASSES.IS_DISABLED, optionState.selected && classes_1.CLASSES.IS_SELECTED), key: optionKey !== null && optionKey !== void 0 ? optionKey : option.id, value: option }, (
|
|
59
|
+
return (react_2.default.createElement(HUIComponent.Option, { className: (optionState) => (0, cx_1.cx)("uxf-dropdown__item", optionState.active && classes_1.CLASSES.IS_ACTIVE, optionState.disabled && classes_1.CLASSES.IS_DISABLED, optionState.selected && classes_1.CLASSES.IS_SELECTED), key: optionKey !== null && optionKey !== void 0 ? optionKey : option.id, value: option }, (optionState) => { var _a, _b; return (_b = (_a = props.renderOption) === null || _a === void 0 ? void 0 : _a.call(props, option, optionState.selected)) !== null && _b !== void 0 ? _b : option.label; }));
|
|
60
60
|
})) : (react_2.default.createElement("div", { className: "uxf-dropdown__empty-wrapper" }, props.emptyMessage))));
|
|
61
61
|
};
|
|
62
62
|
Options.displayName = "UxfUiSelectBaseOptions";
|
package/combobox/combobox.d.ts
CHANGED
|
@@ -14,7 +14,7 @@ export interface ComboboxProps<ValueId = SelectBaseValueId, Option = ComboboxOpt
|
|
|
14
14
|
loadOptions?: (query: string) => Promise<Option[]>;
|
|
15
15
|
noQueryMessage?: string;
|
|
16
16
|
notFoundMessage?: string;
|
|
17
|
-
renderOption?: (option: Option) => ReactNode;
|
|
17
|
+
renderOption?: (option: Option, isSelected: boolean) => ReactNode;
|
|
18
18
|
}
|
|
19
19
|
export declare const Combobox: {
|
|
20
20
|
<ValueId = SelectBaseValueId, Option = ComboboxOption<ValueId>, Value = Option>(props: ComboboxProps<ValueId, Option, Value>): React.JSX.Element;
|
|
@@ -52,7 +52,11 @@ function Default() {
|
|
|
52
52
|
react_1.default.createElement(index_1.Combobox, { id: "combobox-1", label: "Combobox", name: "combobox", onChange: onChange, options: options, placeholder: "Vyberte...", value: value }),
|
|
53
53
|
react_1.default.createElement(index_1.Combobox, { helperText: "Start typing to see options...", id: "combobox-1", label: "Combobox with helper text", name: "combobox", onChange: onChange, options: options, placeholder: "Vyberte...", value: value }),
|
|
54
54
|
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 }),
|
|
55
|
-
react_1.default.createElement(index_1.Combobox, { dropdownPlacement: "top", id: "combobox-1", label: "Combobox with dropdown top", name: "combobox", onChange: onChange, options: options, placeholder: "Vyberte...", isClearable: true, value: value })
|
|
55
|
+
react_1.default.createElement(index_1.Combobox, { dropdownPlacement: "top", id: "combobox-1", label: "Combobox with dropdown top", name: "combobox", onChange: onChange, options: options, placeholder: "Vyberte...", isClearable: true, value: value }),
|
|
56
|
+
react_1.default.createElement(index_1.Combobox, { id: "combobox-render", label: "RenderOption", name: "combobox", onChange: onChange, options: options, placeholder: "Vyberte...", isClearable: true, value: value, renderOption: (option, isSelected) => (react_1.default.createElement(react_1.default.Fragment, null,
|
|
57
|
+
"Option: ",
|
|
58
|
+
option.label,
|
|
59
|
+
isSelected && " (selected)")) })));
|
|
56
60
|
return (react_1.default.createElement("div", { className: "flex flex-col lg:flex-row" },
|
|
57
61
|
react_1.default.createElement("div", { className: "light space-y-2 p-20 lg:w-1/2" }, storyComboboxes),
|
|
58
62
|
react_1.default.createElement("div", { className: "dark space-y-2 bg-gray-900 p-20 lg:w-1/2" }, storyComboboxes)));
|
|
@@ -5,6 +5,7 @@ import { FileInputBaseProps } from "../_file-input-base";
|
|
|
5
5
|
export interface FileInputProps extends FileInputBaseProps, Clearable {
|
|
6
6
|
helperText?: ReactNode;
|
|
7
7
|
label?: ReactNode;
|
|
8
|
+
hiddenLabel?: boolean;
|
|
8
9
|
placeholder?: string;
|
|
9
10
|
size?: keyof InputGroupSizes;
|
|
10
11
|
variant?: keyof InputGroupVariants;
|
package/file-input/file-input.js
CHANGED
|
@@ -63,7 +63,7 @@ exports.FileInput = (0, react_1.forwardRef)((props, ref) => {
|
|
|
63
63
|
setIsUploading(false);
|
|
64
64
|
}
|
|
65
65
|
};
|
|
66
|
-
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 },
|
|
66
|
+
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 },
|
|
67
67
|
react_1.default.createElement(react_1.default.Fragment, null,
|
|
68
68
|
react_1.default.createElement(_file_input_base_1._FileInputBase, { accept: props.accept, "aria-describedby": errorId, "aria-invalid": props.isInvalid, className: "uxf-file-input__input", form: props.form, id: id, isDisabled: props.isDisabled || isUploading, isInvalid: props.isInvalid, isReadOnly: props.isReadOnly, isRequired: props.isRequired, name: props.name, onBlur: input.onBlur, onChange: onChange, onFocus: input.onFocus, onUploadError: props.onUploadError, onUploadFile: props.onUploadFile, ref: ref, value: props.value }),
|
|
69
69
|
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-${(_a = props.size) !== null && _a !== void 0 ? _a : "default"}`, `uxf-input--variant-${(_b = props.variant) !== null && _b !== void 0 ? _b : "default"}`), htmlFor: id },
|
|
@@ -57,7 +57,10 @@ function Default() {
|
|
|
57
57
|
react_1.default.createElement(multi_combobox_1.MultiCombobox, { id: "multi-combobox-4", label: "MultiCombobox with popup and checkboxes", name: "multi-combobox", onChange: onChange, options: options, placeholder: "Vyberte...", value: value, withCheckboxes: true, withPopover: true }),
|
|
58
58
|
react_1.default.createElement(multi_combobox_1.MultiCombobox, { helperText: "Start typing to see options...", id: "multi-combobox-5", label: "MultiCombobox with helper text", name: "multi-combobox", onChange: onChange, options: options, placeholder: "Vyberte...", value: value }),
|
|
59
59
|
react_1.default.createElement(multi_combobox_1.MultiCombobox, { helperText: "Error message", id: "multi-combobox-6", isInvalid: true, isRequired: true, label: "MultiCombobox invalid", name: "multi-combobox", onChange: onChange, options: options, placeholder: "Vyberte...", value: value }),
|
|
60
|
-
react_1.default.createElement(multi_combobox_1.MultiCombobox, { dropdownPlacement: "top", id: "multi-combobox-7", label: "MultiCombobox with dropdown top", name: "multi-combobox", onChange: onChange, options: options, placeholder: "Vyberte...", value: value })
|
|
60
|
+
react_1.default.createElement(multi_combobox_1.MultiCombobox, { dropdownPlacement: "top", id: "multi-combobox-7", label: "MultiCombobox with dropdown top", name: "multi-combobox", onChange: onChange, options: options, placeholder: "Vyberte...", value: value }),
|
|
61
|
+
react_1.default.createElement(multi_combobox_1.MultiCombobox, { id: "multi-combobox-8", label: "MultiCombobox with renderOption", name: "multi-combobox", onChange: onChange, options: options, placeholder: "Vyberte...", value: value, renderOption: (option) => react_1.default.createElement(react_1.default.Fragment, null,
|
|
62
|
+
"Option: ",
|
|
63
|
+
option.label) })));
|
|
61
64
|
return (react_1.default.createElement("div", { className: "flex flex-col lg:flex-row" },
|
|
62
65
|
react_1.default.createElement("div", { className: "light space-y-2 p-20 lg:w-1/2" }, storyComboboxes),
|
|
63
66
|
react_1.default.createElement("div", { className: "dark space-y-2 bg-gray-900 p-20 lg:w-1/2" }, storyComboboxes)));
|
|
@@ -64,9 +64,9 @@ exports._MultiSelectBase = (0, react_2.forwardRef)((props, ref) => {
|
|
|
64
64
|
react_2.default.createElement(icon_1.Icon, { className: (0, cx_1.cx)("uxf-select-base__arrow-icon", renderProps.open && classes_1.CLASSES.IS_OPEN), name: iconName })),
|
|
65
65
|
renderProps.open && (react_2.default.createElement(react_3.FloatingPortal, null,
|
|
66
66
|
react_2.default.createElement(react_1.Listbox.Options, { className: (0, cx_1.cx)("uxf-dropdown", `uxf-dropdown--size-${(_a = props.size) !== null && _a !== void 0 ? _a : "default"}`, `uxf-dropdown--variant-${(_b = props.variant) !== null && _b !== void 0 ? _b : "default"}`, dropdown.placement === "bottom" && "uxf-dropdown--bottom", dropdown.placement === "top" && "uxf-dropdown--top"), ref: dropdown.refs.setFloating, static: true, style: dropdown.floatingStyles }, filteredOptions.map((option) => {
|
|
67
|
-
var _a;
|
|
67
|
+
var _a, _b, _c;
|
|
68
68
|
const optionKey = (_a = props.keyExtractor) === null || _a === void 0 ? void 0 : _a.call(props, option);
|
|
69
|
-
return (react_2.default.createElement(react_1.Listbox.Option, { className: (optionState) => (0, cx_1.cx)("uxf-dropdown__item uxf-multi-select__dropdown-item", optionState.active && classes_1.CLASSES.IS_ACTIVE, optionState.disabled && classes_1.CLASSES.IS_DISABLED, optionState.selected && classes_1.CLASSES.IS_SELECTED), key: optionKey !== null && optionKey !== void 0 ? optionKey : option.id, value: option },
|
|
69
|
+
return (react_2.default.createElement(react_1.Listbox.Option, { className: (optionState) => (0, cx_1.cx)("uxf-dropdown__item uxf-multi-select__dropdown-item", optionState.active && classes_1.CLASSES.IS_ACTIVE, optionState.disabled && classes_1.CLASSES.IS_DISABLED, optionState.selected && classes_1.CLASSES.IS_SELECTED), key: optionKey !== null && optionKey !== void 0 ? optionKey : option.id, value: option }, (_c = (_b = props.renderOption) === null || _b === void 0 ? void 0 : _b.call(props, option)) !== null && _c !== void 0 ? _c : option.label));
|
|
70
70
|
})))),
|
|
71
71
|
props.helperText && withoutPopover && (react_2.default.createElement("div", { className: (0, cx_1.cx)("uxf-helper-text", props.isInvalid && classes_1.CLASSES.IS_INVALID), id: props.errorId }, props.helperText))));
|
|
72
72
|
return (react_2.default.createElement(react_2.default.Fragment, null, withoutPopover ? (react_2.default.createElement(react_2.default.Fragment, null,
|
|
@@ -52,7 +52,10 @@ const Default = () => {
|
|
|
52
52
|
});
|
|
53
53
|
const component = (react_1.default.createElement(react_1.default.Fragment, null,
|
|
54
54
|
react_1.default.createElement(index_1.MultiSelect, { 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 }),
|
|
55
|
-
react_1.default.createElement(index_1.MultiSelect, { id: "multi-select-2", label: "MultiSelect with popover", name: "multi-select", onChange: onChange, options: options, placeholder: "Vyberte...", value: value, withPopover: true })
|
|
55
|
+
react_1.default.createElement(index_1.MultiSelect, { id: "multi-select-2", label: "MultiSelect with popover", name: "multi-select", onChange: onChange, options: options, placeholder: "Vyberte...", value: value, withPopover: true }),
|
|
56
|
+
react_1.default.createElement(index_1.MultiSelect, { id: "multi-select-3", label: "MultiSelect with renderOption", name: "multi-select", onChange: onChange, options: options, placeholder: "Vyberte...", value: value, renderOption: (option) => react_1.default.createElement(react_1.default.Fragment, null,
|
|
57
|
+
"Option: ",
|
|
58
|
+
option.label) })));
|
|
56
59
|
return (react_1.default.createElement("div", { className: "flex flex-col lg:flex-row" },
|
|
57
60
|
react_1.default.createElement("div", { className: "light space-y-2 p-20 lg:w-1/2" }, component),
|
|
58
61
|
react_1.default.createElement("div", { className: "dark space-y-2 bg-gray-900 p-20 lg:w-1/2" }, component)));
|
package/package.json
CHANGED
package/select/select.d.ts
CHANGED
|
@@ -13,7 +13,7 @@ export interface SelectProps<ValueId = SelectValue, Option = SelectOption<ValueI
|
|
|
13
13
|
noQueryMessage?: string;
|
|
14
14
|
notFoundMessage?: string;
|
|
15
15
|
options: Option[];
|
|
16
|
-
renderOption?: (option: Option) => ReactNode;
|
|
16
|
+
renderOption?: (option: Option, isSelected: boolean) => ReactNode;
|
|
17
17
|
renderSelectedOption?: (option: Option) => ReactNode;
|
|
18
18
|
}
|
|
19
19
|
export declare const Select: {
|
package/select/select.stories.js
CHANGED
|
@@ -64,7 +64,13 @@ function Default() {
|
|
|
64
64
|
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 }),
|
|
65
65
|
react_1.default.createElement(index_1.Select, { label: "Size sm", onChange: onChange, options: options, placeholder: "Vyberte...", value: value, size: "small" }),
|
|
66
66
|
react_1.default.createElement(index_1.Select, { label: "Size default", onChange: onChange, options: options, placeholder: "Vyberte...", value: value }),
|
|
67
|
-
react_1.default.createElement(index_1.Select, { label: "Size lg", onChange: onChange, options: options, placeholder: "Vyberte...", value: value, size: "large" })
|
|
67
|
+
react_1.default.createElement(index_1.Select, { label: "Size lg", onChange: onChange, options: options, placeholder: "Vyberte...", value: value, size: "large" }),
|
|
68
|
+
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,
|
|
69
|
+
"Option: ",
|
|
70
|
+
option.label,
|
|
71
|
+
isSelected && " (selected)")), renderSelectedOption: (option) => react_1.default.createElement(react_1.default.Fragment, null,
|
|
72
|
+
"Selected: ",
|
|
73
|
+
option.label) })));
|
|
68
74
|
return (react_1.default.createElement("div", { className: "flex flex-col lg:flex-row" },
|
|
69
75
|
react_1.default.createElement("div", { className: "light space-y-2 p-20 lg:w-1/2" }, storySelects),
|
|
70
76
|
react_1.default.createElement("div", { className: "dark space-y-2 bg-gray-900 p-20 lg:w-1/2" }, storySelects)));
|