@uxf/ui 11.32.0 → 11.33.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.
- package/button/button.d.ts +1 -3
- package/button/button.js +2 -2
- package/button/button.stories.js +8 -3
- package/button-list/button-list.d.ts +1 -0
- package/button-list/button-list.js +3 -3
- package/css/button-list.css +1 -1
- package/css/colors.css +5 -0
- package/css/dialog.css +1 -0
- package/css/modal-header.css +4 -4
- package/date-range-picker/date-range-picker.d.ts +1 -1
- package/date-range-picker/date-range-picker.stories.js +2 -1
- package/date-range-picker-input/date-range-picker-input.js +1 -1
- package/package.json +2 -2
- package/time-picker/time-picker.d.ts +1 -1
- package/time-picker/time-picker.stories.js +2 -2
- package/time-picker-input/time-picker-input.js +1 -1
package/button/button.d.ts
CHANGED
|
@@ -5,14 +5,12 @@ import { NextLink } from "./next-link";
|
|
|
5
5
|
export type ButtonVariant = keyof ButtonVariants;
|
|
6
6
|
export type ButtonSize = keyof ButtonSizes;
|
|
7
7
|
export type ButtonColor = keyof ButtonColors;
|
|
8
|
-
export interface ButtonProps extends Omit<AnchorHTMLAttributes<HTMLAnchorElement>, "type">,
|
|
8
|
+
export interface ButtonProps extends Omit<AnchorHTMLAttributes<HTMLAnchorElement>, "type">, UseAnchorProps {
|
|
9
9
|
as?: NextLink | "a";
|
|
10
10
|
color?: ButtonColor;
|
|
11
11
|
isFullWidth?: boolean;
|
|
12
12
|
isIconButton?: boolean;
|
|
13
13
|
size?: ButtonSize;
|
|
14
14
|
variant?: ButtonVariant;
|
|
15
|
-
isLoading?: boolean;
|
|
16
|
-
isDisabled?: boolean;
|
|
17
15
|
}
|
|
18
16
|
export declare const Button: React.ForwardRefExoticComponent<ButtonProps & React.RefAttributes<HTMLAnchorElement>>;
|
package/button/button.js
CHANGED
|
@@ -33,8 +33,8 @@ exports.Button = (0, react_1.forwardRef)((props, ref) => {
|
|
|
33
33
|
const Component = as;
|
|
34
34
|
const anchorProps = (0, use_anchor_props_1.useAnchorProps)({
|
|
35
35
|
...restProps,
|
|
36
|
-
|
|
37
|
-
|
|
36
|
+
isDisabled,
|
|
37
|
+
isLoading,
|
|
38
38
|
className: (0, cx_1.cx)("uxf-button", `uxf-button--color-${color !== null && color !== void 0 ? color : "default"}`, `uxf-button--size-${size !== null && size !== void 0 ? size : "default"}`, `uxf-button--variant-${variant !== null && variant !== void 0 ? variant : "default"}`, isDisabled && "uxf-button--is-disabled", isLoading && "uxf-button--is-loading", isIconButton && "uxf-button--icon-button", isFullWidth && "uxf-button--full-width", className),
|
|
39
39
|
});
|
|
40
40
|
return (react_1.default.createElement(Component, { ref: ref, ...anchorProps }, typeof props.children === "string" ? (react_1.default.createElement("span", { className: "uxf-button__text" }, props.children)) : (props.children)));
|
package/button/button.stories.js
CHANGED
|
@@ -29,7 +29,10 @@ const button_1 = require("@uxf/ui/button");
|
|
|
29
29
|
const icon_1 = require("@uxf/ui/icon");
|
|
30
30
|
const storybook_config_1 = require("@uxf/ui/utils/storybook-config");
|
|
31
31
|
const react_1 = __importStar(require("react"));
|
|
32
|
+
const toggle_1 = require("../toggle");
|
|
32
33
|
function Basic() {
|
|
34
|
+
const [isDisabled, setIsDisabled] = (0, react_1.useState)(false);
|
|
35
|
+
const [isLoading, setIsLoading] = (0, react_1.useState)(false);
|
|
33
36
|
const config = (0, storybook_config_1.useStorybookConfig)("Button");
|
|
34
37
|
// eslint-disable-next-line no-console
|
|
35
38
|
const onClick = console.log;
|
|
@@ -37,7 +40,9 @@ function Basic() {
|
|
|
37
40
|
const gridTemplateColumns = `repeat(${gridColumnsCount}, 180px)`;
|
|
38
41
|
return (react_1.default.createElement("div", { className: "p-4" },
|
|
39
42
|
react_1.default.createElement("div", { className: "grid gap-3 p-4", style: { gridTemplateColumns } },
|
|
40
|
-
react_1.default.createElement("div", null
|
|
43
|
+
react_1.default.createElement("div", null,
|
|
44
|
+
react_1.default.createElement(toggle_1.Toggle, { className: "p-0", label: "Disabled", name: "is-disabled", onChange: (value) => setIsDisabled(Boolean(value)), size: "sm", value: isDisabled }),
|
|
45
|
+
react_1.default.createElement(toggle_1.Toggle, { className: "p-0 pt-2", label: "Loading", name: "is-loading", onChange: (value) => setIsLoading(Boolean(value)), size: "sm", value: isLoading })),
|
|
41
46
|
config.variants.map((variant) => (react_1.default.createElement("div", { className: "border-b border-blue-500 pb-2 text-center text-xs text-gray-400", key: variant, style: { gridColumn: "span 4" } },
|
|
42
47
|
"variant=",
|
|
43
48
|
variant))),
|
|
@@ -51,8 +56,8 @@ function Basic() {
|
|
|
51
56
|
"color=",
|
|
52
57
|
color),
|
|
53
58
|
config.variants.map((variant) => (react_1.default.createElement(react_1.Fragment, { key: variant }, config.sizes.map((size) => (react_1.default.createElement("div", { className: "flex items-center justify-center gap-2", key: `${size}${color}${variant}` },
|
|
54
|
-
react_1.default.createElement(button_1.Button, { color: color, onClick: onClick, size: size, variant: variant }, "Button"),
|
|
55
|
-
react_1.default.createElement(button_1.Button, { color: color, isIconButton: true, onClick: onClick, size: size, variant: variant },
|
|
59
|
+
react_1.default.createElement(button_1.Button, { color: color, isDisabled: isDisabled, isLoading: isLoading, onClick: onClick, size: size, variant: variant }, "Button"),
|
|
60
|
+
react_1.default.createElement(button_1.Button, { color: color, isDisabled: isDisabled, isIconButton: true, isLoading: isLoading, onClick: onClick, size: size, variant: variant },
|
|
56
61
|
react_1.default.createElement(icon_1.Icon, { name: "triangle-exclamation" }))))))))))))));
|
|
57
62
|
}
|
|
58
63
|
function Default() {
|
|
@@ -9,6 +9,7 @@ export type SingleButtonProps = Omit<ButtonProps, "children"> & {
|
|
|
9
9
|
export interface ButtonListProps {
|
|
10
10
|
buttons: SingleButtonProps[];
|
|
11
11
|
className?: string;
|
|
12
|
+
classNameDropdown?: string;
|
|
12
13
|
openButton?: SingleButtonProps;
|
|
13
14
|
visibleButtonsCount: number;
|
|
14
15
|
color?: ButtonProps["color"];
|
|
@@ -39,7 +39,7 @@ const MenuButton = (0, react_3.forwardRef)((props, ref) => {
|
|
|
39
39
|
const { variant, color, isIconButton, isFullWidth, size, icon, label, className, ...restProps } = props;
|
|
40
40
|
const anchorProps = (0, use_anchor_props_1.useAnchorProps)({
|
|
41
41
|
...restProps,
|
|
42
|
-
className: (0, cx_1.cx)("uxf-button-list__menu-button", className),
|
|
42
|
+
className: (0, cx_1.cx)("uxf-button-list__menu-button", `uxf-button-list__menu-button--variant-${variant}`, className),
|
|
43
43
|
});
|
|
44
44
|
return (react_3.default.createElement("a", { ref: ref, ...anchorProps },
|
|
45
45
|
icon && react_3.default.createElement(icon_1.Icon, { className: "uxf-button-list__menu-button-icon", name: icon }),
|
|
@@ -73,9 +73,9 @@ const ButtonList = (props) => {
|
|
|
73
73
|
openButtonIcon && (react_3.default.createElement(icon_1.Icon, { className: "uxf-button-list__open-button-icon", name: openButtonIcon })),
|
|
74
74
|
openButtonLabel && (react_3.default.createElement("span", { className: "uxf-button-list__open-button-label" }, openButtonLabel))),
|
|
75
75
|
open && (react_3.default.createElement(react_1.FloatingPortal, null,
|
|
76
|
-
react_3.default.createElement(react_2.Menu.Items, { className: "uxf-button-list__menu-items", ref: dropdown.refs.setFloating, style: dropdown.floatingStyles }, restButtons.map((button, index) => {
|
|
76
|
+
react_3.default.createElement(react_2.Menu.Items, { className: (0, cx_1.cx)("uxf-button-list__menu-items", props.classNameDropdown), ref: dropdown.refs.setFloating, style: dropdown.floatingStyles }, restButtons.map((button, index) => {
|
|
77
77
|
var _a, _b, _c;
|
|
78
|
-
return (react_3.default.createElement(react_2.Menu.Item, { key: index },
|
|
78
|
+
return (react_3.default.createElement(react_2.Menu.Item, { disabled: button.isDisabled, key: index },
|
|
79
79
|
react_3.default.createElement(MenuButton, { ...button, color: (_a = button.color) !== null && _a !== void 0 ? _a : props.color, size: (_b = button.size) !== null && _b !== void 0 ? _b : props.size, variant: (_c = button.variant) !== null && _c !== void 0 ? _c : props.variant })));
|
|
80
80
|
}))))));
|
|
81
81
|
}))));
|
package/css/button-list.css
CHANGED
|
@@ -24,7 +24,7 @@
|
|
|
24
24
|
}
|
|
25
25
|
|
|
26
26
|
&__menu-button {
|
|
27
|
-
@apply is-hoverable:
|
|
27
|
+
@apply is-hoverable:cursor-pointer flex space-x-3 px-3 py-2 text-sm text-black hover:text-gray-800;
|
|
28
28
|
|
|
29
29
|
:root .dark & {
|
|
30
30
|
@apply text-white hover:text-gray-200;
|
package/css/colors.css
CHANGED
|
@@ -5,6 +5,7 @@
|
|
|
5
5
|
--uxf-color-base-border-border: #e5e7eb;
|
|
6
6
|
--uxf-color-base-surface-main: #fff;
|
|
7
7
|
--uxf-color-base-surface-main-hover: #f3f4f6;
|
|
8
|
+
--uxf-color-base-surface-background: #f9fafb;
|
|
8
9
|
--uxf-color-base-surface-input-disabled: #f3f4f6;
|
|
9
10
|
--uxf-color-base-surface-disabled: #d2d6db;
|
|
10
11
|
--uxf-color-base-surface-inverted-main: #ffffff14;
|
|
@@ -50,8 +51,10 @@
|
|
|
50
51
|
/** base */
|
|
51
52
|
--uxf-color-base-border-inverted: #3842501f;
|
|
52
53
|
--uxf-color-base-border-input: #384250;
|
|
54
|
+
--uxf-color-base-border-border: #e5e7eb1f;
|
|
53
55
|
--uxf-color-base-surface-main: #111927;
|
|
54
56
|
--uxf-color-base-surface-main-hover: #1f2a37;
|
|
57
|
+
--uxf-color-base-surface-background: #1f2a37;
|
|
55
58
|
--uxf-color-base-surface-input-disabled: #4d5761;
|
|
56
59
|
--uxf-color-base-surface-disabled: #d2d6db;
|
|
57
60
|
--uxf-color-base-surface-inverted-main: #20293914;
|
|
@@ -84,6 +87,8 @@
|
|
|
84
87
|
--uxf-color-warning-border: #dc6803;
|
|
85
88
|
--uxf-color-warning-surface-default: #fdb022;
|
|
86
89
|
--uxf-color-warning-surface-default-hover: #fec84b;
|
|
90
|
+
--uxf-color-warning-surface-muted: #93370c;
|
|
91
|
+
--uxf-color-warning-icon-on-muted: #fec84b;
|
|
87
92
|
|
|
88
93
|
/** info */
|
|
89
94
|
--uxf-color-info-text: #b3b8db;
|
package/css/dialog.css
CHANGED
package/css/modal-header.css
CHANGED
|
@@ -1,18 +1,18 @@
|
|
|
1
1
|
:root {
|
|
2
2
|
/** modal header variables */
|
|
3
|
-
--uxf-modal-header-background-color: var(--uxf-color-base-surface-main);
|
|
4
|
-
--uxf-modal-header-border-color: var(--uxf-color-base-border-border);
|
|
5
3
|
--uxf-modal-header-border-width: theme("borderWidth.DEFAULT");
|
|
6
4
|
--uxf-modal-header-description-font-size: theme("fontSize.caption");
|
|
7
5
|
--uxf-modal-header-description-font-weight: theme("fontWeight.normal");
|
|
8
|
-
--uxf-modal-header-description-text-color: var(--uxf-color-base-text-low-emphasis);
|
|
9
6
|
--uxf-modal-header-title-font-size: 18px;
|
|
10
7
|
--uxf-modal-header-title-font-weight: theme("fontWeight.semibold");
|
|
11
8
|
--uxf-modal-header-title-line-height: 1.3333;
|
|
12
|
-
--uxf-modal-header-title-text-color: var(--uxf-color-base-text-high-emphasis);
|
|
13
9
|
}
|
|
14
10
|
|
|
15
11
|
.uxf-modal-header {
|
|
12
|
+
--uxf-modal-header-background-color: var(--uxf-color-base-surface-main);
|
|
13
|
+
--uxf-modal-header-border-color: var(--uxf-color-base-border-border);
|
|
14
|
+
--uxf-modal-header-description-text-color: var(--uxf-color-base-text-low-emphasis);
|
|
15
|
+
--uxf-modal-header-title-text-color: var(--uxf-color-base-text-high-emphasis);
|
|
16
16
|
--uxf-icon-color: var(--uxf-modal-header-title-text-color);
|
|
17
17
|
|
|
18
18
|
background-color: var(--uxf-modal-header-background-color);
|
|
@@ -3,10 +3,10 @@ import { CSSProperties, FC, PropsWithChildren, ReactNode } from "react";
|
|
|
3
3
|
import { DateRangePickerValueType } from "./types";
|
|
4
4
|
export interface DateRangePickerProps {
|
|
5
5
|
bottomContent?: ReactNode;
|
|
6
|
-
closePopoverHandler: () => void;
|
|
7
6
|
datesConfig?: DatesConfig[];
|
|
8
7
|
numberOfMonths?: number;
|
|
9
8
|
onChange: (data: DateRangePickerValueType) => void;
|
|
9
|
+
onClosePopover: () => void;
|
|
10
10
|
selectedDates: DateRangePickerValueType;
|
|
11
11
|
style?: CSSProperties;
|
|
12
12
|
/** @deprecated */
|
|
@@ -24,6 +24,7 @@ var __importStar = (this && this.__importStar) || function (mod) {
|
|
|
24
24
|
};
|
|
25
25
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
26
26
|
exports.Default = Default;
|
|
27
|
+
const noop_1 = require("@uxf/core/utils/noop");
|
|
27
28
|
const react_1 = __importStar(require("react"));
|
|
28
29
|
const action_1 = require("../utils/action");
|
|
29
30
|
const date_range_picker_1 = require("./date-range-picker");
|
|
@@ -34,6 +35,6 @@ exports.default = {
|
|
|
34
35
|
function Default() {
|
|
35
36
|
const [value, setValue] = (0, react_1.useState)(null);
|
|
36
37
|
const onChange = (0, action_1.action)("onChange", setValue);
|
|
37
|
-
const testDatePickers = react_1.default.createElement(date_range_picker_1.DateRangePicker, {
|
|
38
|
+
const testDatePickers = react_1.default.createElement(date_range_picker_1.DateRangePicker, { onChange: onChange, onClosePopover: noop_1.noop, selectedDates: value });
|
|
38
39
|
return react_1.default.createElement("div", { className: "max-w-screen-sm space-y-4 rounded p-8" }, testDatePickers);
|
|
39
40
|
}
|
|
@@ -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,
|
|
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, datesConfig: props.datesConfig, numberOfMonths: numberOfMonths, onChange: onDatePickerChange, onClosePopover: close, selectedDates: selectedDates, style: props.style, unavailableDates: props.unavailableDates }))));
|
|
61
61
|
});
|
|
62
62
|
exports.DateRangePickerInput.displayName = "UxfUiDatePickerInput";
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@uxf/ui",
|
|
3
|
-
"version": "11.
|
|
3
|
+
"version": "11.33.0",
|
|
4
4
|
"description": "",
|
|
5
5
|
"publishConfig": {
|
|
6
6
|
"access": "public"
|
|
@@ -18,7 +18,7 @@
|
|
|
18
18
|
"@floating-ui/react": "0.26.23",
|
|
19
19
|
"@headlessui/react": "1.7.14",
|
|
20
20
|
"@uxf/core": "11.32.0",
|
|
21
|
-
"@uxf/core-react": "11.
|
|
21
|
+
"@uxf/core-react": "11.33.0",
|
|
22
22
|
"@uxf/datepicker": "11.32.0",
|
|
23
23
|
"@uxf/styles": "11.32.0",
|
|
24
24
|
"color2k": "2.0.3",
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import { OnTimeChangeType, TimeType } from "@uxf/datepicker/hooks/use-time-picker";
|
|
2
2
|
import { FC } from "react";
|
|
3
3
|
export interface TimePickerProps {
|
|
4
|
-
|
|
4
|
+
onClosePopover?: () => void;
|
|
5
5
|
onChange: (data: OnTimeChangeType) => void;
|
|
6
6
|
preventScroll?: boolean;
|
|
7
7
|
selectedTime: TimeType | null;
|
|
@@ -24,6 +24,7 @@ var __importStar = (this && this.__importStar) || function (mod) {
|
|
|
24
24
|
};
|
|
25
25
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
26
26
|
exports.Default = Default;
|
|
27
|
+
const noop_1 = require("@uxf/core/utils/noop");
|
|
27
28
|
const react_1 = __importStar(require("react"));
|
|
28
29
|
const action_1 = require("../utils/action");
|
|
29
30
|
const time_picker_1 = require("./time-picker");
|
|
@@ -34,7 +35,6 @@ exports.default = {
|
|
|
34
35
|
function Default() {
|
|
35
36
|
const [value, setValue] = (0, react_1.useState)(null);
|
|
36
37
|
const onChange = (0, action_1.action)("onChange", setValue);
|
|
37
|
-
const
|
|
38
|
-
const testTimePickers = react_1.default.createElement(time_picker_1.TimePicker, { closePopoverHandler: onClose, onChange: onChange, selectedTime: value });
|
|
38
|
+
const testTimePickers = react_1.default.createElement(time_picker_1.TimePicker, { onChange: onChange, onClosePopover: noop_1.noop, selectedTime: value });
|
|
39
39
|
return react_1.default.createElement("div", { className: "max-w-screen-sm space-y-4 rounded p-8" }, testTimePickers);
|
|
40
40
|
}
|
|
@@ -77,6 +77,6 @@ exports.TimePickerInput = (0, react_1.forwardRef)((props, ref) => {
|
|
|
77
77
|
}, [onChange]);
|
|
78
78
|
const value = getValue(props.value);
|
|
79
79
|
const selectedTime = getSelectedTime(props.value);
|
|
80
|
-
return (react_1.default.createElement(_input_with_popover_1._InputWithPopover, { ...props, className: className, onChange: onInputChange, placeholder: (_a = props.placeholder) !== null && _a !== void 0 ? _a : (0, dayjs_1.default)().format(exports.DISPLAY_TIME_FORMAT), ref: ref, triggerElement: (_b = props.triggerElement) !== null && _b !== void 0 ? _b : react_1.default.createElement(icon_1.Icon, { name: "clock", size: 20 }), value: value }, ({ close }) => (0, is_not_nil_1.isNotNil)(props.CustomTimePicker) ? (react_1.default.createElement(props.CustomTimePicker, { onChange: props.onChange, onClose: close, value: (0, is_time_string_1.isTimeString)(props.value) ? props.value : null })) : (react_1.default.createElement(time_picker_1.TimePicker, {
|
|
80
|
+
return (react_1.default.createElement(_input_with_popover_1._InputWithPopover, { ...props, className: className, onChange: onInputChange, placeholder: (_a = props.placeholder) !== null && _a !== void 0 ? _a : (0, dayjs_1.default)().format(exports.DISPLAY_TIME_FORMAT), ref: ref, triggerElement: (_b = props.triggerElement) !== null && _b !== void 0 ? _b : react_1.default.createElement(icon_1.Icon, { name: "clock", size: 20 }), value: value }, ({ close }) => (0, is_not_nil_1.isNotNil)(props.CustomTimePicker) ? (react_1.default.createElement(props.CustomTimePicker, { onChange: props.onChange, onClose: close, value: (0, is_time_string_1.isTimeString)(props.value) ? props.value : null })) : (react_1.default.createElement(time_picker_1.TimePicker, { onChange: onTimePickerChange, onClosePopover: close, preventScroll: true, selectedTime: selectedTime }))));
|
|
81
81
|
});
|
|
82
82
|
exports.TimePickerInput.displayName = "UxfUiTimePickerInput";
|