@uxf/ui 11.25.1 → 11.27.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/avatar-file-input/avatar-file-input.js +2 -2
- package/button/README.md +13 -42
- package/button/button.d.ts +7 -1
- package/button/button.js +5 -1
- package/button/button.stories.d.ts +1 -0
- package/button/button.stories.js +26 -1
- package/button/theme.d.ts +5 -5
- package/button-group/button-group.stories.js +6 -6
- package/button-list/button-list.stories.js +9 -9
- package/calendar/calendar-navigation.js +2 -2
- package/components.d.ts +20 -20
- package/components.js +20 -20
- package/css/button.css +151 -201
- package/dropdown/dropdown.stories.js +1 -1
- package/message/message-content.js +3 -3
- package/message/message.stories.d.ts +0 -5
- package/message/message.stories.js +1 -6
- package/package.json +1 -1
- package/readmes.d.ts +4 -4
- package/readmes.js +40 -40
- package/text-input/text-input.stories.js +1 -1
- package/utils/storybook-config.d.ts +3 -0
- package/utils/storybook-config.js +6 -3
|
@@ -63,7 +63,7 @@ exports.AvatarFileInput = (0, react_1.forwardRef)((props, ref) => {
|
|
|
63
63
|
onSelectFile,
|
|
64
64
|
onRemoveFile,
|
|
65
65
|
})) : (react_1.default.createElement("div", { className: "uxf-avatar-file-input__controls-buttons" },
|
|
66
|
-
react_1.default.createElement(button_1.Button, { className: "uxf-avatar-file-input__controls-button uxf-avatar-file-input__controls-button--select", disabled: props.isDisabled, onClick: onSelectFile, size: "sm", variant: "
|
|
67
|
-
!!props.value && !props.isDisabled && (react_1.default.createElement(button_1.Button, { className: "uxf-avatar-file-input__controls-button uxf-avatar-file-input__controls-button--remove", color: "
|
|
66
|
+
react_1.default.createElement(button_1.Button, { className: "uxf-avatar-file-input__controls-button uxf-avatar-file-input__controls-button--select", disabled: props.isDisabled, onClick: onSelectFile, size: "sm", variant: "secondary" }, (_e = props.selectFileLabel) !== null && _e !== void 0 ? _e : "Upload image"),
|
|
67
|
+
!!props.value && !props.isDisabled && (react_1.default.createElement(button_1.Button, { className: "uxf-avatar-file-input__controls-button uxf-avatar-file-input__controls-button--remove", color: "negative", disabled: props.isDisabled, onClick: onRemoveFile, size: "sm", variant: "secondary" }, (_f = props.removeFileLabel) !== null && _f !== void 0 ? _f : "Remove avatar"))))))));
|
|
68
68
|
});
|
|
69
69
|
exports.AvatarFileInput.displayName = "UxfUiAvatarFileInput";
|
package/button/README.md
CHANGED
|
@@ -1,5 +1,13 @@
|
|
|
1
1
|
# Button
|
|
2
2
|
|
|
3
|
+
[Figma](https://www.figma.com/design/InhbHrNUhDGbBvRDRonXsD/Vent-UI?node-id=4497-14244&t=7WrAFKP6MF42zYC6-4)
|
|
4
|
+
|
|
5
|
+
## Css dependencies
|
|
6
|
+
|
|
7
|
+
```css
|
|
8
|
+
@import url("@uxf/ui/css/colors.css");
|
|
9
|
+
```
|
|
10
|
+
|
|
3
11
|
### Props configuration
|
|
4
12
|
|
|
5
13
|
```tsx
|
|
@@ -8,12 +16,11 @@
|
|
|
8
16
|
declare module "@uxf/ui/icon/theme" {
|
|
9
17
|
export interface ButtonVariants {
|
|
10
18
|
default: true;
|
|
11
|
-
|
|
19
|
+
secondary: true;
|
|
12
20
|
text: true;
|
|
13
21
|
}
|
|
14
22
|
|
|
15
23
|
export interface ButtonSizes {
|
|
16
|
-
xs: true;
|
|
17
24
|
sm: true;
|
|
18
25
|
default: true;
|
|
19
26
|
lg: true;
|
|
@@ -22,47 +29,11 @@ declare module "@uxf/ui/icon/theme" {
|
|
|
22
29
|
|
|
23
30
|
export interface ButtonColors {
|
|
24
31
|
default: true;
|
|
25
|
-
|
|
26
|
-
|
|
32
|
+
positive: true;
|
|
33
|
+
negative: true;
|
|
27
34
|
warning: true;
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
}
|
|
31
|
-
```
|
|
32
|
-
|
|
33
|
-
## Css
|
|
34
|
-
|
|
35
|
-
```css
|
|
36
|
-
// button.css
|
|
37
|
-
|
|
38
|
-
.uxf-button {
|
|
39
|
-
|
|
40
|
-
&__text {
|
|
41
|
-
|
|
42
|
-
}
|
|
43
|
-
|
|
44
|
-
&.is-disabled {
|
|
45
|
-
|
|
46
|
-
}
|
|
47
|
-
|
|
48
|
-
&.is-loading {
|
|
49
|
-
|
|
50
|
-
}
|
|
51
|
-
|
|
52
|
-
&--full-width {
|
|
53
|
-
|
|
54
|
-
}
|
|
55
|
-
|
|
56
|
-
&--icon-button {
|
|
57
|
-
|
|
58
|
-
}
|
|
59
|
-
|
|
60
|
-
&--size-{{ size }} {
|
|
61
|
-
|
|
62
|
-
}
|
|
63
|
-
|
|
64
|
-
&--variant-{{ variant }} {
|
|
65
|
-
|
|
35
|
+
info: true;
|
|
36
|
+
inverted: true;
|
|
66
37
|
}
|
|
67
38
|
}
|
|
68
39
|
```
|
package/button/button.d.ts
CHANGED
|
@@ -5,12 +5,18 @@ 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">, UseAnchorProps {
|
|
8
|
+
export interface ButtonProps extends Omit<AnchorHTMLAttributes<HTMLAnchorElement>, "type">, Omit<UseAnchorProps, "disabled" | "loading"> {
|
|
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
|
+
/** @deprecated use isLoading */
|
|
16
|
+
loading?: boolean;
|
|
17
|
+
isLoading?: boolean;
|
|
18
|
+
/** @deprecated use isDisabled */
|
|
19
|
+
disabled?: boolean;
|
|
20
|
+
isDisabled?: boolean;
|
|
15
21
|
}
|
|
16
22
|
export declare const Button: React.ForwardRefExoticComponent<ButtonProps & React.RefAttributes<HTMLAnchorElement>>;
|
package/button/button.js
CHANGED
|
@@ -31,9 +31,13 @@ exports.Button = (0, react_1.forwardRef)((props, ref) => {
|
|
|
31
31
|
// eslint-disable-next-line react/destructuring-assignment
|
|
32
32
|
const { as = "a", color, isIconButton, isFullWidth, size, variant, className, ...restProps } = props;
|
|
33
33
|
const Component = as;
|
|
34
|
+
const isDisabled = props.isDisabled || props.disabled;
|
|
35
|
+
const isLoading = props.isLoading || props.loading;
|
|
34
36
|
const anchorProps = (0, use_anchor_props_1.useAnchorProps)({
|
|
35
37
|
...restProps,
|
|
36
|
-
|
|
38
|
+
disabled: isDisabled,
|
|
39
|
+
loading: isLoading,
|
|
40
|
+
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),
|
|
37
41
|
});
|
|
38
42
|
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)));
|
|
39
43
|
});
|
package/button/button.stories.js
CHANGED
|
@@ -23,11 +23,36 @@ var __importStar = (this && this.__importStar) || function (mod) {
|
|
|
23
23
|
return result;
|
|
24
24
|
};
|
|
25
25
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
26
|
-
exports.Default = void 0;
|
|
26
|
+
exports.Default = exports.Basic = void 0;
|
|
27
27
|
const button_1 = require("@uxf/ui/button");
|
|
28
28
|
const icon_1 = require("@uxf/ui/icon");
|
|
29
29
|
const storybook_config_1 = require("@uxf/ui/utils/storybook-config");
|
|
30
30
|
const react_1 = __importStar(require("react"));
|
|
31
|
+
function Basic() {
|
|
32
|
+
const config = (0, storybook_config_1.useStorybookConfig)("Button");
|
|
33
|
+
// eslint-disable-next-line no-console
|
|
34
|
+
const onClick = console.log;
|
|
35
|
+
const gridColumnsCount = config.variants.length * config.sizes.length + 1;
|
|
36
|
+
const gridTemplateColumns = `repeat(${gridColumnsCount}, 100px)`;
|
|
37
|
+
return (react_1.default.createElement("div", { className: "p-4" },
|
|
38
|
+
react_1.default.createElement("div", { className: "grid gap-3 p-4", style: { gridTemplateColumns } },
|
|
39
|
+
react_1.default.createElement("div", null),
|
|
40
|
+
config.variants.map((variant) => (react_1.default.createElement("div", { key: variant, style: { gridColumn: "span 4" }, className: "border-b border-blue-500 pb-2 text-center text-xs text-gray-400" },
|
|
41
|
+
"variant=",
|
|
42
|
+
variant))),
|
|
43
|
+
react_1.default.createElement("div", null),
|
|
44
|
+
config.variants.flatMap((variant) => config.sizes.map((size) => (react_1.default.createElement("div", { key: variant, className: "text-center text-xs text-gray-400" },
|
|
45
|
+
"size=",
|
|
46
|
+
size))))),
|
|
47
|
+
config.colors.map((color) => (react_1.default.createElement("div", { className: color === "inverted" ? "bg-[#1F2A37] dark:bg-white" : undefined, key: color },
|
|
48
|
+
react_1.default.createElement("div", { className: "grid gap-3 py-2", style: { gridTemplateColumns } },
|
|
49
|
+
react_1.default.createElement("div", { className: "flex items-center text-center text-xs text-gray-400" },
|
|
50
|
+
"color=",
|
|
51
|
+
color),
|
|
52
|
+
config.variants.map((variant) => (react_1.default.createElement(react_1.Fragment, { key: variant }, config.sizes.map((size) => (react_1.default.createElement("div", { key: `${size}${color}${variant}`, className: "flex items-center justify-center" },
|
|
53
|
+
react_1.default.createElement(button_1.Button, { color: color, onClick: onClick, size: size, variant: variant }, "Button")))))))))))));
|
|
54
|
+
}
|
|
55
|
+
exports.Basic = Basic;
|
|
31
56
|
function Default() {
|
|
32
57
|
const config = (0, storybook_config_1.useStorybookConfig)("Button");
|
|
33
58
|
// eslint-disable-next-line no-console
|
package/button/theme.d.ts
CHANGED
|
@@ -1,12 +1,10 @@
|
|
|
1
1
|
export interface ButtonVariants {
|
|
2
2
|
default: true;
|
|
3
|
-
|
|
4
|
-
outlined: true;
|
|
3
|
+
secondary: true;
|
|
5
4
|
text: true;
|
|
6
5
|
}
|
|
7
6
|
export type ButtonVariant = keyof ButtonVariants;
|
|
8
7
|
export interface ButtonSizes {
|
|
9
|
-
xs: true;
|
|
10
8
|
sm: true;
|
|
11
9
|
default: true;
|
|
12
10
|
lg: true;
|
|
@@ -15,8 +13,10 @@ export interface ButtonSizes {
|
|
|
15
13
|
export type ButtonSize = keyof ButtonSizes;
|
|
16
14
|
export interface ButtonColors {
|
|
17
15
|
default: true;
|
|
18
|
-
|
|
19
|
-
|
|
16
|
+
positive: true;
|
|
17
|
+
negative: true;
|
|
20
18
|
warning: true;
|
|
19
|
+
info: true;
|
|
20
|
+
inverted: true;
|
|
21
21
|
}
|
|
22
22
|
export type ButtonColor = keyof ButtonColors;
|
|
@@ -23,16 +23,16 @@ const Default = () => {
|
|
|
23
23
|
react_1.default.createElement(button_1.Button, { isIconButton: true, onClick: onClick },
|
|
24
24
|
react_1.default.createElement(icon_1.Icon, { name: "check", size: 16 }))),
|
|
25
25
|
react_1.default.createElement(index_1.ButtonGroup, null,
|
|
26
|
-
react_1.default.createElement(button_1.Button, { size: "sm", variant: "
|
|
27
|
-
react_1.default.createElement(button_1.Button, { size: "sm", variant: "
|
|
28
|
-
react_1.default.createElement(button_1.Button, { size: "sm", variant: "
|
|
26
|
+
react_1.default.createElement(button_1.Button, { size: "sm", variant: "secondary", onClick: onClick }, "First"),
|
|
27
|
+
react_1.default.createElement(button_1.Button, { size: "sm", variant: "secondary", onClick: onClick }, "Second"),
|
|
28
|
+
react_1.default.createElement(button_1.Button, { size: "sm", variant: "secondary", onClick: onClick }, "Third")),
|
|
29
29
|
react_1.default.createElement(index_1.ButtonGroup, null,
|
|
30
30
|
react_1.default.createElement(tooltip_1.Tooltip, { content: "Tooltip" },
|
|
31
|
-
react_1.default.createElement(button_1.Button, { size: "sm", variant: "
|
|
31
|
+
react_1.default.createElement(button_1.Button, { size: "sm", variant: "secondary", onClick: onClick }, "Button with tooltip")),
|
|
32
32
|
react_1.default.createElement(tooltip_1.Tooltip, { content: "Tooltip" },
|
|
33
|
-
react_1.default.createElement(button_1.Button, { size: "sm", variant: "
|
|
33
|
+
react_1.default.createElement(button_1.Button, { size: "sm", variant: "secondary", onClick: onClick }, "Second")),
|
|
34
34
|
react_1.default.createElement(tooltip_1.Tooltip, { content: "Tooltip" },
|
|
35
|
-
react_1.default.createElement(button_1.Button, { size: "sm", variant: "
|
|
35
|
+
react_1.default.createElement(button_1.Button, { size: "sm", variant: "secondary", onClick: onClick }, "Third")))));
|
|
36
36
|
return (react_1.default.createElement("div", { className: "flex flex-col lg:flex-row" },
|
|
37
37
|
react_1.default.createElement("div", { className: "space-y-2 p-20 lg:w-1/2" }, component)));
|
|
38
38
|
};
|
|
@@ -12,7 +12,7 @@ exports.default = {
|
|
|
12
12
|
};
|
|
13
13
|
const Default = () => {
|
|
14
14
|
const component = (react_1.default.createElement(react_1.default.Fragment, null,
|
|
15
|
-
react_1.default.createElement(index_1.ButtonList, { menuMaxHeight: 350, visibleButtonsCount: 0, variant: "
|
|
15
|
+
react_1.default.createElement(index_1.ButtonList, { menuMaxHeight: 350, visibleButtonsCount: 0, variant: "secondary", buttons: [
|
|
16
16
|
{ label: "First item" },
|
|
17
17
|
{ label: "Second item" },
|
|
18
18
|
{ label: "Third item" },
|
|
@@ -25,7 +25,7 @@ const Default = () => {
|
|
|
25
25
|
{ label: "Tenth item" },
|
|
26
26
|
{ label: "Eleventh item" },
|
|
27
27
|
] }),
|
|
28
|
-
react_1.default.createElement(index_1.ButtonList, { visibleButtonsCount: 4, variant: "
|
|
28
|
+
react_1.default.createElement(index_1.ButtonList, { visibleButtonsCount: 4, variant: "secondary", buttons: [
|
|
29
29
|
{ label: "First item" },
|
|
30
30
|
{ label: "Second item" },
|
|
31
31
|
{ label: "Third item" },
|
|
@@ -34,27 +34,27 @@ const Default = () => {
|
|
|
34
34
|
react_1.default.createElement(index_1.ButtonList, { visibleButtonsCount: 2, buttons: [
|
|
35
35
|
// eslint-disable-next-line no-console
|
|
36
36
|
{ label: "First item", onClick: console.log },
|
|
37
|
-
{ label: "Second item", color: "
|
|
37
|
+
{ label: "Second item", color: "positive" },
|
|
38
38
|
{ label: "Third item" },
|
|
39
39
|
// eslint-disable-next-line no-console
|
|
40
40
|
{ label: "Fourth item", onClick: console.log },
|
|
41
41
|
] }),
|
|
42
|
-
react_1.default.createElement(index_1.ButtonList, { visibleButtonsCount: 1, size: "
|
|
42
|
+
react_1.default.createElement(index_1.ButtonList, { visibleButtonsCount: 1, size: "sm", color: "negative", variant: "secondary", buttons: [
|
|
43
43
|
// eslint-disable-next-line no-console
|
|
44
44
|
{ icon: "check", label: "First item", onClick: console.log },
|
|
45
|
-
{ icon: "user", label: "Second item", color: "
|
|
45
|
+
{ icon: "user", label: "Second item", color: "positive" },
|
|
46
46
|
{ icon: "cloud", label: "Third item" },
|
|
47
47
|
// eslint-disable-next-line no-console
|
|
48
48
|
{ icon: "xmarkLarge", label: "Fourth item", onClick: console.log },
|
|
49
49
|
], openButton: {} }),
|
|
50
|
-
react_1.default.createElement(index_1.ButtonList, { visibleButtonsCount: 3, size: "
|
|
50
|
+
react_1.default.createElement(index_1.ButtonList, { visibleButtonsCount: 3, size: "sm", color: "positive", buttons: [
|
|
51
51
|
// eslint-disable-next-line no-console
|
|
52
|
-
{ icon: "check", label: "First item", onClick: console.log, color: "
|
|
53
|
-
{ icon: "user", label: "Second item", color: "
|
|
52
|
+
{ icon: "check", label: "First item", onClick: console.log, color: "negative" },
|
|
53
|
+
{ icon: "user", label: "Second item", color: "positive", size: "default" },
|
|
54
54
|
{ icon: "cloud", label: "Third item" },
|
|
55
55
|
// eslint-disable-next-line no-console
|
|
56
56
|
{ icon: "xmarkLarge", label: "Fourth item", onClick: console.log },
|
|
57
|
-
], openButton: { variant: "
|
|
57
|
+
], openButton: { variant: "secondary", color: "default" } })));
|
|
58
58
|
return (react_1.default.createElement("div", { className: "flex flex-col lg:flex-row" },
|
|
59
59
|
react_1.default.createElement("div", { className: "space-y-2 p-20 lg:w-1/2" }, component)));
|
|
60
60
|
};
|
|
@@ -9,10 +9,10 @@ const button_1 = require("../button");
|
|
|
9
9
|
const icon_1 = require("../icon");
|
|
10
10
|
const CalendarNavigation = (props) => {
|
|
11
11
|
return (react_1.default.createElement("div", { className: "uxf-calendar-navigation" },
|
|
12
|
-
react_1.default.createElement(button_1.Button, { isIconButton: true, size: "sm", variant: "
|
|
12
|
+
react_1.default.createElement(button_1.Button, { isIconButton: true, size: "sm", variant: "secondary", ...props.prevButtonProps },
|
|
13
13
|
react_1.default.createElement(icon_1.Icon, { name: "arrow-left", size: 16 })),
|
|
14
14
|
props.selectButtonProps.onClick ? (react_1.default.createElement(button_1.Button, { variant: "text", size: "sm", color: "default", ...props.selectButtonProps })) : (react_1.default.createElement("p", { className: "uxf-calendar-navigation__title" }, props.selectButtonProps.children)),
|
|
15
|
-
react_1.default.createElement(button_1.Button, { isIconButton: true, size: "sm", variant: "
|
|
15
|
+
react_1.default.createElement(button_1.Button, { isIconButton: true, size: "sm", variant: "secondary", ...props.nextButtonProps },
|
|
16
16
|
react_1.default.createElement(icon_1.Icon, { name: "arrow-right", size: 16 }))));
|
|
17
17
|
};
|
|
18
18
|
exports.CalendarNavigation = CalendarNavigation;
|
package/components.d.ts
CHANGED
|
@@ -6,6 +6,10 @@ import * as buttonStories from "./button/button.stories";
|
|
|
6
6
|
import * as buttonGroupStories from "./button-group/button-group.stories";
|
|
7
7
|
import * as buttonListStories from "./button-list/button-list.stories";
|
|
8
8
|
import * as calendarStories from "./calendar/calendar.stories";
|
|
9
|
+
import * as checkboxStories from "./checkbox/checkbox.stories";
|
|
10
|
+
import * as checkboxButtonStories from "./checkbox-button/checkbox-button.stories";
|
|
11
|
+
import * as checkboxInputStories from "./checkbox-input/checkbox-input.stories";
|
|
12
|
+
import * as chipStories from "./chip/chip.stories";
|
|
9
13
|
import * as colorRadioStories from "./color-radio/color-radio.stories";
|
|
10
14
|
import * as colorRadioGroupStories from "./color-radio-group/color-radio-group.stories";
|
|
11
15
|
import * as comboboxStories from "./combobox/combobox.stories";
|
|
@@ -22,10 +26,6 @@ import * as errorMessageStories from "./error-message/error-message.stories";
|
|
|
22
26
|
import * as fileInputStories from "./file-input/file-input.stories";
|
|
23
27
|
import * as flashMessagesStories from "./flash-messages/flash-messages.stories";
|
|
24
28
|
import * as formComponentStories from "./form-component/form-component.stories";
|
|
25
|
-
import * as checkboxStories from "./checkbox/checkbox.stories";
|
|
26
|
-
import * as checkboxButtonStories from "./checkbox-button/checkbox-button.stories";
|
|
27
|
-
import * as checkboxInputStories from "./checkbox-input/checkbox-input.stories";
|
|
28
|
-
import * as chipStories from "./chip/chip.stories";
|
|
29
29
|
import * as iconStories from "./icon/icon.stories";
|
|
30
30
|
import * as imageGalleryStories from "./image-gallery/image-gallery.stories";
|
|
31
31
|
import * as inputStories from "./input/input.stories";
|
|
@@ -86,6 +86,22 @@ export declare const components: {
|
|
|
86
86
|
readonly title: "Calendar";
|
|
87
87
|
readonly stories: typeof calendarStories;
|
|
88
88
|
};
|
|
89
|
+
readonly checkbox: {
|
|
90
|
+
readonly title: "Checkbox";
|
|
91
|
+
readonly stories: typeof checkboxStories;
|
|
92
|
+
};
|
|
93
|
+
readonly "checkbox-button": {
|
|
94
|
+
readonly title: "CheckboxButton";
|
|
95
|
+
readonly stories: typeof checkboxButtonStories;
|
|
96
|
+
};
|
|
97
|
+
readonly "checkbox-input": {
|
|
98
|
+
readonly title: "CheckboxInput";
|
|
99
|
+
readonly stories: typeof checkboxInputStories;
|
|
100
|
+
};
|
|
101
|
+
readonly chip: {
|
|
102
|
+
readonly title: "Chip";
|
|
103
|
+
readonly stories: typeof chipStories;
|
|
104
|
+
};
|
|
89
105
|
readonly "color-radio": {
|
|
90
106
|
readonly title: "ColorRadio";
|
|
91
107
|
readonly stories: typeof colorRadioStories;
|
|
@@ -150,22 +166,6 @@ export declare const components: {
|
|
|
150
166
|
readonly title: "FormComponent";
|
|
151
167
|
readonly stories: typeof formComponentStories;
|
|
152
168
|
};
|
|
153
|
-
readonly checkbox: {
|
|
154
|
-
readonly title: "Checkbox";
|
|
155
|
-
readonly stories: typeof checkboxStories;
|
|
156
|
-
};
|
|
157
|
-
readonly "checkbox-button": {
|
|
158
|
-
readonly title: "CheckboxButton";
|
|
159
|
-
readonly stories: typeof checkboxButtonStories;
|
|
160
|
-
};
|
|
161
|
-
readonly "checkbox-input": {
|
|
162
|
-
readonly title: "CheckboxInput";
|
|
163
|
-
readonly stories: typeof checkboxInputStories;
|
|
164
|
-
};
|
|
165
|
-
readonly chip: {
|
|
166
|
-
readonly title: "Chip";
|
|
167
|
-
readonly stories: typeof chipStories;
|
|
168
|
-
};
|
|
169
169
|
readonly icon: {
|
|
170
170
|
readonly title: "Icon";
|
|
171
171
|
readonly stories: typeof iconStories;
|
package/components.js
CHANGED
|
@@ -33,6 +33,10 @@ const buttonStories = __importStar(require("./button/button.stories"));
|
|
|
33
33
|
const buttonGroupStories = __importStar(require("./button-group/button-group.stories"));
|
|
34
34
|
const buttonListStories = __importStar(require("./button-list/button-list.stories"));
|
|
35
35
|
const calendarStories = __importStar(require("./calendar/calendar.stories"));
|
|
36
|
+
const checkboxStories = __importStar(require("./checkbox/checkbox.stories"));
|
|
37
|
+
const checkboxButtonStories = __importStar(require("./checkbox-button/checkbox-button.stories"));
|
|
38
|
+
const checkboxInputStories = __importStar(require("./checkbox-input/checkbox-input.stories"));
|
|
39
|
+
const chipStories = __importStar(require("./chip/chip.stories"));
|
|
36
40
|
const colorRadioStories = __importStar(require("./color-radio/color-radio.stories"));
|
|
37
41
|
const colorRadioGroupStories = __importStar(require("./color-radio-group/color-radio-group.stories"));
|
|
38
42
|
const comboboxStories = __importStar(require("./combobox/combobox.stories"));
|
|
@@ -49,10 +53,6 @@ const errorMessageStories = __importStar(require("./error-message/error-message.
|
|
|
49
53
|
const fileInputStories = __importStar(require("./file-input/file-input.stories"));
|
|
50
54
|
const flashMessagesStories = __importStar(require("./flash-messages/flash-messages.stories"));
|
|
51
55
|
const formComponentStories = __importStar(require("./form-component/form-component.stories"));
|
|
52
|
-
const checkboxStories = __importStar(require("./checkbox/checkbox.stories"));
|
|
53
|
-
const checkboxButtonStories = __importStar(require("./checkbox-button/checkbox-button.stories"));
|
|
54
|
-
const checkboxInputStories = __importStar(require("./checkbox-input/checkbox-input.stories"));
|
|
55
|
-
const chipStories = __importStar(require("./chip/chip.stories"));
|
|
56
56
|
const iconStories = __importStar(require("./icon/icon.stories"));
|
|
57
57
|
const imageGalleryStories = __importStar(require("./image-gallery/image-gallery.stories"));
|
|
58
58
|
const inputStories = __importStar(require("./input/input.stories"));
|
|
@@ -113,6 +113,22 @@ exports.components = {
|
|
|
113
113
|
title: "Calendar",
|
|
114
114
|
stories: calendarStories
|
|
115
115
|
},
|
|
116
|
+
"checkbox": {
|
|
117
|
+
title: "Checkbox",
|
|
118
|
+
stories: checkboxStories
|
|
119
|
+
},
|
|
120
|
+
"checkbox-button": {
|
|
121
|
+
title: "CheckboxButton",
|
|
122
|
+
stories: checkboxButtonStories
|
|
123
|
+
},
|
|
124
|
+
"checkbox-input": {
|
|
125
|
+
title: "CheckboxInput",
|
|
126
|
+
stories: checkboxInputStories
|
|
127
|
+
},
|
|
128
|
+
"chip": {
|
|
129
|
+
title: "Chip",
|
|
130
|
+
stories: chipStories
|
|
131
|
+
},
|
|
116
132
|
"color-radio": {
|
|
117
133
|
title: "ColorRadio",
|
|
118
134
|
stories: colorRadioStories
|
|
@@ -177,22 +193,6 @@ exports.components = {
|
|
|
177
193
|
title: "FormComponent",
|
|
178
194
|
stories: formComponentStories
|
|
179
195
|
},
|
|
180
|
-
"checkbox": {
|
|
181
|
-
title: "Checkbox",
|
|
182
|
-
stories: checkboxStories
|
|
183
|
-
},
|
|
184
|
-
"checkbox-button": {
|
|
185
|
-
title: "CheckboxButton",
|
|
186
|
-
stories: checkboxButtonStories
|
|
187
|
-
},
|
|
188
|
-
"checkbox-input": {
|
|
189
|
-
title: "CheckboxInput",
|
|
190
|
-
stories: checkboxInputStories
|
|
191
|
-
},
|
|
192
|
-
"chip": {
|
|
193
|
-
title: "Chip",
|
|
194
|
-
stories: chipStories
|
|
195
|
-
},
|
|
196
196
|
"icon": {
|
|
197
197
|
title: "Icon",
|
|
198
198
|
stories: iconStories
|
package/css/button.css
CHANGED
|
@@ -1,3 +1,16 @@
|
|
|
1
|
+
:root {
|
|
2
|
+
/** button variables */
|
|
3
|
+
--uxf-button-height: theme("inputSize.default");
|
|
4
|
+
--uxf-button-border-radius: theme("borderRadius.md");
|
|
5
|
+
--uxf-button-font-size: theme("fontSize.sm");
|
|
6
|
+
--uxf-button-icon-size: theme("spacing.6");
|
|
7
|
+
--uxf-button-loading-size: theme("spacing.6");
|
|
8
|
+
--uxf-button-px: theme("spacing.4");
|
|
9
|
+
--uxf-button-border-color: initial;
|
|
10
|
+
--uxf-button-background-color: initial;
|
|
11
|
+
--uxf-button-text-color: initial;
|
|
12
|
+
}
|
|
13
|
+
|
|
1
14
|
@keyframes spinner {
|
|
2
15
|
to {
|
|
3
16
|
transform: rotate(360deg);
|
|
@@ -5,11 +18,35 @@
|
|
|
5
18
|
}
|
|
6
19
|
|
|
7
20
|
.uxf-button {
|
|
8
|
-
|
|
9
|
-
|
|
21
|
+
align-items: center;
|
|
22
|
+
background-color: var(--uxf-button-background-color);
|
|
23
|
+
border-color: var(--uxf-button-border-color);
|
|
24
|
+
border-radius: var(--uxf-button-border-radius);
|
|
25
|
+
color: var(--uxf-button-text-color);
|
|
26
|
+
display: inline-flex;
|
|
27
|
+
font-size: var(--uxf-button-font-size);
|
|
28
|
+
font-weight: theme("fontWeight.medium");
|
|
29
|
+
height: var(--uxf-button-height);
|
|
30
|
+
justify-content: center;
|
|
31
|
+
padding: 0 var(--uxf-button-px);
|
|
32
|
+
|
|
33
|
+
@apply shadow-sm transition-colors;
|
|
34
|
+
|
|
35
|
+
&:focus-visible {
|
|
36
|
+
@apply ring-2 ring-offset-2;
|
|
37
|
+
}
|
|
38
|
+
|
|
39
|
+
&:focus {
|
|
40
|
+
outline: none;
|
|
41
|
+
}
|
|
42
|
+
|
|
43
|
+
&:hover {
|
|
44
|
+
background-color: var(--uxf-button-background-color-hover);
|
|
45
|
+
}
|
|
10
46
|
|
|
11
47
|
.uxf-icon {
|
|
12
|
-
|
|
48
|
+
height: var(--uxf-button-icon-size);
|
|
49
|
+
width: var(--uxf-button-icon-size);
|
|
13
50
|
}
|
|
14
51
|
|
|
15
52
|
&__text {
|
|
@@ -17,21 +54,28 @@
|
|
|
17
54
|
}
|
|
18
55
|
|
|
19
56
|
&--full-width {
|
|
20
|
-
|
|
57
|
+
display: flex;
|
|
58
|
+
justify-content: center;
|
|
59
|
+
width: 100%;
|
|
21
60
|
}
|
|
22
61
|
|
|
23
|
-
|
|
24
|
-
|
|
62
|
+
&--icon-button {
|
|
63
|
+
padding: 0;
|
|
64
|
+
width: var(--uxf-button-height);
|
|
65
|
+
}
|
|
66
|
+
|
|
67
|
+
&--is-disabled {
|
|
68
|
+
pointer-events: none;
|
|
25
69
|
}
|
|
26
70
|
|
|
27
71
|
&.uxf-button--icon-button.is-loading {
|
|
28
72
|
&::after {
|
|
29
|
-
|
|
73
|
+
margin-left: 0;
|
|
30
74
|
}
|
|
31
75
|
}
|
|
32
76
|
|
|
33
|
-
|
|
34
|
-
|
|
77
|
+
&--is-loading {
|
|
78
|
+
pointer-events: none;
|
|
35
79
|
|
|
36
80
|
&::after {
|
|
37
81
|
animation: spinner 0.8s linear infinite;
|
|
@@ -39,9 +83,9 @@
|
|
|
39
83
|
border-right: 2px solid transparent;
|
|
40
84
|
border-top: 2px solid;
|
|
41
85
|
content: "";
|
|
42
|
-
height:
|
|
86
|
+
height: var(--uxf-button-loading-size);
|
|
43
87
|
margin-left: 8px;
|
|
44
|
-
width:
|
|
88
|
+
width: var(--uxf-button-loading-size);
|
|
45
89
|
}
|
|
46
90
|
|
|
47
91
|
&.uxf-button--icon-button::after {
|
|
@@ -49,265 +93,171 @@
|
|
|
49
93
|
}
|
|
50
94
|
|
|
51
95
|
.uxf-icon {
|
|
52
|
-
|
|
96
|
+
display: none;
|
|
53
97
|
}
|
|
54
98
|
}
|
|
55
99
|
|
|
56
|
-
|
|
57
|
-
@apply rounded px-2.5 text-xs;
|
|
58
|
-
|
|
59
|
-
height: theme("inputSize.xs");
|
|
60
|
-
|
|
61
|
-
&.is-loading::after {
|
|
62
|
-
height: 14px;
|
|
63
|
-
width: 14px;
|
|
64
|
-
}
|
|
65
|
-
|
|
66
|
-
&.uxf-button--icon-button {
|
|
67
|
-
@apply p-0;
|
|
68
|
-
|
|
69
|
-
width: theme("inputSize.xs");
|
|
70
|
-
}
|
|
71
|
-
|
|
72
|
-
.uxf-icon {
|
|
73
|
-
@apply h-4 w-4;
|
|
74
|
-
}
|
|
75
|
-
}
|
|
100
|
+
/* SIZES */
|
|
76
101
|
|
|
77
102
|
&--size-sm {
|
|
78
|
-
|
|
79
|
-
|
|
80
|
-
height: theme("inputSize.sm");
|
|
103
|
+
--uxf-button-px: theme("spacing.3");
|
|
104
|
+
--uxf-button-font-size: theme("fontSize.sm");
|
|
105
|
+
--uxf-button-height: theme("inputSize.sm");
|
|
106
|
+
--uxf-button-loading-size: theme("spacing.4");
|
|
107
|
+
--uxf-button-icon-size: theme("spacing.4");
|
|
81
108
|
|
|
82
|
-
|
|
83
|
-
height: 16px;
|
|
84
|
-
width: 16px;
|
|
85
|
-
}
|
|
86
|
-
|
|
87
|
-
&.uxf-button--icon-button {
|
|
88
|
-
@apply p-0;
|
|
89
|
-
|
|
90
|
-
width: theme("inputSize.sm");
|
|
91
|
-
}
|
|
92
|
-
|
|
93
|
-
.uxf-icon {
|
|
94
|
-
@apply h-4 w-4;
|
|
95
|
-
}
|
|
96
|
-
}
|
|
97
|
-
|
|
98
|
-
&--size-default {
|
|
99
|
-
@apply px-4 text-sm;
|
|
100
|
-
|
|
101
|
-
height: theme("inputSize.default");
|
|
102
|
-
|
|
103
|
-
&.uxf-button--icon-button {
|
|
104
|
-
width: theme("inputSize.default");
|
|
105
|
-
|
|
106
|
-
@apply p-0;
|
|
107
|
-
}
|
|
109
|
+
line-height: 1;
|
|
108
110
|
}
|
|
109
111
|
|
|
110
112
|
&--size-lg {
|
|
111
|
-
|
|
112
|
-
|
|
113
|
-
height: theme("inputSize.lg");
|
|
114
|
-
|
|
115
|
-
&.uxf-button--icon-button {
|
|
116
|
-
width: theme("inputSize.lg");
|
|
117
|
-
|
|
118
|
-
@apply p-0;
|
|
119
|
-
}
|
|
113
|
+
--uxf-button-font-size: theme("fontSize.base");
|
|
114
|
+
--uxf-button-height: theme("inputSize.lg");
|
|
120
115
|
}
|
|
121
116
|
|
|
122
117
|
&--size-xl {
|
|
123
|
-
|
|
124
|
-
|
|
125
|
-
height: theme("inputSize.xl");
|
|
126
|
-
|
|
127
|
-
&.uxf-button--icon-button {
|
|
128
|
-
@apply p-0;
|
|
129
|
-
|
|
130
|
-
width: theme("inputSize.xl");
|
|
131
|
-
}
|
|
118
|
+
--uxf-button-px: theme("spacing.6");
|
|
119
|
+
--uxf-button-font-size: theme("fontSize.base");
|
|
120
|
+
--uxf-button-height: theme("inputSize.xl");
|
|
132
121
|
}
|
|
133
122
|
|
|
134
|
-
|
|
135
|
-
@apply border bg-white;
|
|
123
|
+
/* VARIANTS */
|
|
136
124
|
|
|
137
|
-
|
|
138
|
-
|
|
139
|
-
}
|
|
125
|
+
&--variant-default {
|
|
126
|
+
--uxf-button-text-color: var(--uxf-color-base-text-inverted-high-emphasis);
|
|
140
127
|
|
|
141
128
|
&.uxf-button--color-default {
|
|
142
|
-
|
|
143
|
-
|
|
144
|
-
:root .dark & {
|
|
145
|
-
@apply border-primary text-primary is-hoverable:border-primary-300 is-hoverable:text-primary-300;
|
|
146
|
-
}
|
|
129
|
+
--uxf-button-background-color: var(--uxf-color-primary-surface-default);
|
|
130
|
+
--uxf-button-background-color-hover: var(--uxf-color-primary-surface-default-hover);
|
|
147
131
|
}
|
|
148
132
|
|
|
149
|
-
&.uxf-button--color-
|
|
150
|
-
|
|
133
|
+
&.uxf-button--color-positive {
|
|
134
|
+
--uxf-button-background-color: var(--uxf-color-positive-surface-default);
|
|
135
|
+
--uxf-button-background-color-hover: var(--uxf-color-positive-surface-default-hover);
|
|
136
|
+
}
|
|
151
137
|
|
|
152
|
-
|
|
153
|
-
|
|
154
|
-
|
|
138
|
+
&.uxf-button--color-negative {
|
|
139
|
+
--uxf-button-background-color: var(--uxf-color-negative-surface-default);
|
|
140
|
+
--uxf-button-background-color-hover: var(--uxf-color-negative-surface-default-hover);
|
|
155
141
|
}
|
|
156
142
|
|
|
157
143
|
&.uxf-button--color-warning {
|
|
158
|
-
|
|
144
|
+
--uxf-button-background-color: var(--uxf-color-warning-surface-default);
|
|
145
|
+
--uxf-button-background-color-hover: var(--uxf-color-warning-surface-default-hover);
|
|
146
|
+
}
|
|
159
147
|
|
|
160
|
-
|
|
161
|
-
|
|
162
|
-
|
|
148
|
+
&.uxf-button--color-info {
|
|
149
|
+
--uxf-button-background-color: var(--uxf-color-info-surface-default);
|
|
150
|
+
--uxf-button-background-color-hover: var(--uxf-color-info-surface-default-hover);
|
|
163
151
|
}
|
|
164
152
|
|
|
165
|
-
&.uxf-button--color-
|
|
166
|
-
|
|
153
|
+
&.uxf-button--color-inverted {
|
|
154
|
+
--uxf-button-background-color: var(--uxf-color-base-surface-main);
|
|
155
|
+
--uxf-button-background-color-hover: var(--uxf-color-base-surface-main-hover);
|
|
156
|
+
--uxf-button-text-color: var(--uxf-color-base-text-high-emphasis);
|
|
167
157
|
|
|
168
|
-
|
|
169
|
-
|
|
158
|
+
&.is-disabled {
|
|
159
|
+
--uxf-button-background-color: var(--uxf-color-base-surface-input-disabled);
|
|
160
|
+
--uxf-button-text-color: var(--uxf-color-base-text-disabled);
|
|
170
161
|
}
|
|
171
162
|
}
|
|
172
163
|
|
|
173
|
-
&.is-disabled {
|
|
174
|
-
|
|
175
|
-
|
|
176
|
-
:root .dark & {
|
|
177
|
-
@apply text-darkLow border-gray-700 bg-gray-700;
|
|
178
|
-
}
|
|
164
|
+
&.uxf-button--is-disabled {
|
|
165
|
+
--uxf-button-text-color: theme("colors.white");
|
|
166
|
+
--uxf-button-background-color: var(--uxf-color-base-surface-disabled);
|
|
179
167
|
}
|
|
180
168
|
}
|
|
181
169
|
|
|
182
|
-
&--variant-
|
|
183
|
-
|
|
170
|
+
&--variant-secondary {
|
|
171
|
+
--uxf-button-background-color-hover: var(--uxf-color-base-surface-main-hover);
|
|
184
172
|
|
|
185
|
-
:
|
|
186
|
-
|
|
187
|
-
}
|
|
173
|
+
border-style: solid;
|
|
174
|
+
border-width: 1px;
|
|
188
175
|
|
|
189
176
|
&.uxf-button--color-default {
|
|
190
|
-
|
|
191
|
-
|
|
192
|
-
:root .dark & {
|
|
193
|
-
@apply bg-primary is-hoverable:bg-primary-400;
|
|
194
|
-
}
|
|
195
|
-
|
|
196
|
-
&.is-disabled {
|
|
197
|
-
@apply text-lightLow bg-gray-300;
|
|
198
|
-
|
|
199
|
-
:root .dark & {
|
|
200
|
-
@apply bg-gray-600 text-gray-400;
|
|
201
|
-
}
|
|
202
|
-
}
|
|
177
|
+
--uxf-button-border-color: var(--uxf-color-base-border-input);
|
|
178
|
+
--uxf-button-text-color: var(--uxf-color-base-text-high-emphasis);
|
|
203
179
|
}
|
|
204
180
|
|
|
205
|
-
&.uxf-button--color-
|
|
206
|
-
|
|
207
|
-
|
|
208
|
-
:root .dark & {
|
|
209
|
-
@apply bg-success is-hoverable:bg-success-400;
|
|
210
|
-
}
|
|
211
|
-
|
|
212
|
-
&.is-disabled {
|
|
213
|
-
@apply text-lightLow bg-gray-300;
|
|
214
|
-
|
|
215
|
-
:root .dark & {
|
|
216
|
-
@apply bg-gray-600 text-gray-400;
|
|
217
|
-
}
|
|
218
|
-
}
|
|
181
|
+
&.uxf-button--color-positive {
|
|
182
|
+
--uxf-button-border-color: var(--uxf-color-positive-border);
|
|
183
|
+
--uxf-button-text-color: var(--uxf-color-positive-text);
|
|
219
184
|
}
|
|
220
185
|
|
|
221
|
-
&.uxf-button--color-
|
|
222
|
-
|
|
223
|
-
|
|
224
|
-
:root .dark & {
|
|
225
|
-
@apply bg-error is-hoverable:bg-error-400;
|
|
226
|
-
}
|
|
227
|
-
|
|
228
|
-
&.is-disabled {
|
|
229
|
-
@apply text-lightLow bg-gray-300;
|
|
230
|
-
|
|
231
|
-
:root .dark & {
|
|
232
|
-
@apply bg-gray-600 text-gray-400;
|
|
233
|
-
}
|
|
234
|
-
}
|
|
186
|
+
&.uxf-button--color-negative {
|
|
187
|
+
--uxf-button-border-color: var(--uxf-color-negative-border);
|
|
188
|
+
--uxf-button-text-color: var(--uxf-color-negative-text);
|
|
235
189
|
}
|
|
236
190
|
|
|
237
191
|
&.uxf-button--color-warning {
|
|
238
|
-
|
|
239
|
-
|
|
240
|
-
:root .dark & {
|
|
241
|
-
@apply bg-warning is-hoverable:bg-warning-400;
|
|
242
|
-
}
|
|
243
|
-
|
|
244
|
-
&.is-disabled {
|
|
245
|
-
@apply text-lightLow bg-gray-300;
|
|
246
|
-
|
|
247
|
-
:root .dark & {
|
|
248
|
-
@apply bg-gray-600 text-gray-400;
|
|
249
|
-
}
|
|
250
|
-
}
|
|
192
|
+
--uxf-button-border-color: var(--uxf-color-warning-border);
|
|
193
|
+
--uxf-button-text-color: var(--uxf-color-warning-text);
|
|
251
194
|
}
|
|
252
|
-
}
|
|
253
195
|
|
|
254
|
-
|
|
255
|
-
|
|
256
|
-
|
|
257
|
-
:root .dark & {
|
|
258
|
-
@apply border-darkBorder bg-lightHigh text-darkMedium is-hoverable:bg-gray-800 is-hoverable:text-darkHigh;
|
|
196
|
+
&.uxf-button--color-info {
|
|
197
|
+
--uxf-button-border-color: var(--uxf-color-info-border);
|
|
198
|
+
--uxf-button-text-color: var(--uxf-color-info-text);
|
|
259
199
|
}
|
|
260
200
|
|
|
261
|
-
&.
|
|
262
|
-
|
|
201
|
+
&.uxf-button--color-inverted {
|
|
202
|
+
--uxf-button-border-color: var(--uxf-color-base-border-inverted);
|
|
203
|
+
--uxf-button-text-color: var(--uxf-color-base-text-inverted-high-emphasis);
|
|
204
|
+
--uxf-button-background-color-hover: #ffffff1f;
|
|
205
|
+
|
|
206
|
+
&.uxf-button--is-disabled {
|
|
207
|
+
--uxf-button-border-color: var(--uxf-color-base-surface-disabled);
|
|
208
|
+
--uxf-button-background-color: var(--uxf-color-base-surface-disabled);
|
|
209
|
+
}
|
|
263
210
|
|
|
264
211
|
:root .dark & {
|
|
265
|
-
|
|
212
|
+
--uxf-button-background-color-hover: #d2d6db2f;
|
|
266
213
|
}
|
|
267
214
|
}
|
|
215
|
+
|
|
216
|
+
&.uxf-button--is-disabled {
|
|
217
|
+
--uxf-button-border-color: var(--uxf-color-base-border-input);
|
|
218
|
+
--uxf-button-text-color: var(--uxf-color-base-text-disabled);
|
|
219
|
+
--uxf-button-background-color: var(--uxf-color-base-surface-input-disabled);
|
|
220
|
+
}
|
|
268
221
|
}
|
|
269
222
|
|
|
270
223
|
&--variant-text {
|
|
271
|
-
|
|
224
|
+
--uxf-button-background-color-hover: var(--uxf-color-base-surface-main-hover);
|
|
272
225
|
|
|
273
|
-
|
|
274
|
-
@apply text-lightMedium is-hoverable:text-lightHigh;
|
|
226
|
+
box-shadow: none;
|
|
275
227
|
|
|
276
|
-
|
|
277
|
-
|
|
278
|
-
}
|
|
228
|
+
&.uxf-button--color-default {
|
|
229
|
+
--uxf-button-text-color: var(--uxf-color-base-text-high-emphasis);
|
|
279
230
|
}
|
|
280
231
|
|
|
281
|
-
&.uxf-button--color-
|
|
282
|
-
|
|
283
|
-
|
|
284
|
-
:root .dark & {
|
|
285
|
-
@apply is-hoverable:text-success-300;
|
|
286
|
-
}
|
|
232
|
+
&.uxf-button--color-positive {
|
|
233
|
+
--uxf-button-text-color: var(--uxf-color-positive-text);
|
|
287
234
|
}
|
|
288
235
|
|
|
289
|
-
&.uxf-button--color-
|
|
290
|
-
|
|
291
|
-
|
|
292
|
-
:root .dark & {
|
|
293
|
-
@apply is-hoverable:text-error-300;
|
|
294
|
-
}
|
|
236
|
+
&.uxf-button--color-negative {
|
|
237
|
+
--uxf-button-text-color: var(--uxf-color-negative-text);
|
|
295
238
|
}
|
|
296
239
|
|
|
297
240
|
&.uxf-button--color-warning {
|
|
298
|
-
|
|
241
|
+
--uxf-button-text-color: var(--uxf-color-warning-text);
|
|
242
|
+
}
|
|
299
243
|
|
|
300
|
-
|
|
301
|
-
|
|
302
|
-
}
|
|
244
|
+
&.uxf-button--color-info {
|
|
245
|
+
--uxf-button-text-color: var(--uxf-color-info-text);
|
|
303
246
|
}
|
|
304
247
|
|
|
305
|
-
|
|
306
|
-
|
|
248
|
+
/** TODO @vejvis - UX musí doladit inverted button... teď je to strašnej hack */
|
|
249
|
+
&.uxf-button--color-inverted {
|
|
250
|
+
--uxf-button-text-color: var(--uxf-color-base-text-inverted-high-emphasis);
|
|
251
|
+
--uxf-button-background-color-hover: #ffffff1f;
|
|
307
252
|
|
|
308
253
|
:root .dark & {
|
|
309
|
-
|
|
254
|
+
--uxf-button-background-color-hover: #d2d6db2f;
|
|
255
|
+
--uxf-button-text-color: #d2d6db;
|
|
310
256
|
}
|
|
311
257
|
}
|
|
258
|
+
|
|
259
|
+
&.uxf-button--is-disabled {
|
|
260
|
+
--uxf-button-text-color: var(--uxf-color-base-text-disabled);
|
|
261
|
+
}
|
|
312
262
|
}
|
|
313
263
|
}
|
|
@@ -21,7 +21,7 @@ const testDropdownItems = [
|
|
|
21
21
|
function Default() {
|
|
22
22
|
const storyDropdown = (react_2.default.createElement(react_2.default.Fragment, null,
|
|
23
23
|
react_2.default.createElement(react_1.Menu, { as: "div", className: "relative" },
|
|
24
|
-
react_2.default.createElement(react_1.Menu.Button, { as: button_1.Button, color: "
|
|
24
|
+
react_2.default.createElement(react_1.Menu.Button, { as: button_1.Button, color: "positive", title: "Test" }, "Click me"),
|
|
25
25
|
react_2.default.createElement(react_1.Menu.Items, { as: index_1.Dropdown.Items }, testDropdownItems.map((item) => (react_2.default.createElement(react_1.Menu.Item, { key: item.id }, ({ active }) => (react_2.default.createElement(index_1.Dropdown.Item, { className: `first-letter:uppercase ${active ? classes_1.CLASSES.IS_ACTIVE : ""}` }, item.title)))))))));
|
|
26
26
|
return (react_2.default.createElement("div", { className: "flex" },
|
|
27
27
|
react_2.default.createElement("div", { className: "grow gap-4 p-4" }, storyDropdown)));
|
|
@@ -9,9 +9,9 @@ const alert_bubble_1 = require("../alert-bubble");
|
|
|
9
9
|
const button_1 = require("../button");
|
|
10
10
|
const BUTTON_COLOR = {
|
|
11
11
|
default: "default",
|
|
12
|
-
error: "
|
|
12
|
+
error: "negative",
|
|
13
13
|
warning: "warning",
|
|
14
|
-
success: "
|
|
14
|
+
success: "positive",
|
|
15
15
|
};
|
|
16
16
|
const MessageContent = (props) => {
|
|
17
17
|
var _a, _b, _c;
|
|
@@ -34,7 +34,7 @@ const MessageContent = (props) => {
|
|
|
34
34
|
react_1.default.createElement("p", { className: "uxf-message__description" }, props.description)),
|
|
35
35
|
props.children),
|
|
36
36
|
react_1.default.createElement("div", { className: "uxf-message__buttons-wrapper" },
|
|
37
|
-
react_1.default.createElement(button_1.Button, { className: "uxf-message__cancel-button", variant: "
|
|
37
|
+
react_1.default.createElement(button_1.Button, { className: "uxf-message__cancel-button", variant: "secondary", isFullWidth: isCentered, onClick: onCancelClick }, props.cancelLabel),
|
|
38
38
|
props.onAccept ? (react_1.default.createElement(button_1.Button, { className: "uxf-message__accept-button", color: BUTTON_COLOR[props.color], isFullWidth: isCentered, onClick: onAcceptClick }, (_c = props.acceptLabel) !== null && _c !== void 0 ? _c : "Ok")) : null)));
|
|
39
39
|
};
|
|
40
40
|
exports.MessageContent = MessageContent;
|
|
@@ -7,12 +7,7 @@ exports.Default = void 0;
|
|
|
7
7
|
const button_1 = require("@uxf/ui/button");
|
|
8
8
|
const react_1 = __importDefault(require("react"));
|
|
9
9
|
const storybook_config_1 = require("../utils/storybook-config");
|
|
10
|
-
const message_1 = require("./message");
|
|
11
10
|
const message_service_1 = require("./message-service");
|
|
12
|
-
exports.default = {
|
|
13
|
-
title: "UI/Message",
|
|
14
|
-
component: message_1.Message,
|
|
15
|
-
};
|
|
16
11
|
const getConfirmForSize = (variant, colors) => {
|
|
17
12
|
const confirmTypes = colors.map((color) => (react_1.default.createElement("div", { className: "space-y-2", key: color },
|
|
18
13
|
react_1.default.createElement(button_1.Button, { isFullWidth: true, onClick: () => message_service_1.MessageService.openConfirm({
|
|
@@ -66,7 +61,7 @@ const getConfirmForSize = (variant, colors) => {
|
|
|
66
61
|
react_1.default.createElement("div", { className: "flex w-full flex-col gap-2" }, confirmTypes)));
|
|
67
62
|
};
|
|
68
63
|
function Default() {
|
|
69
|
-
const config = (0, storybook_config_1.useStorybookConfig)("
|
|
64
|
+
const config = (0, storybook_config_1.useStorybookConfig)("Message");
|
|
70
65
|
return (react_1.default.createElement("div", { className: "flex justify-center lg:flex-row dark:text-white" },
|
|
71
66
|
react_1.default.createElement("div", { className: "space-y-4 rounded p-10" },
|
|
72
67
|
react_1.default.createElement("div", { className: "uxf-typo-h5" }, "default"),
|
package/package.json
CHANGED
package/readmes.d.ts
CHANGED
|
@@ -9,6 +9,10 @@ export declare const readmes: {
|
|
|
9
9
|
readonly "button-group": typeof alertBubbleReadme;
|
|
10
10
|
readonly "button-list": typeof alertBubbleReadme;
|
|
11
11
|
readonly calendar: typeof alertBubbleReadme;
|
|
12
|
+
readonly checkbox: typeof alertBubbleReadme;
|
|
13
|
+
readonly "checkbox-button": typeof alertBubbleReadme;
|
|
14
|
+
readonly "checkbox-input": typeof alertBubbleReadme;
|
|
15
|
+
readonly chip: typeof alertBubbleReadme;
|
|
12
16
|
readonly "color-radio": typeof alertBubbleReadme;
|
|
13
17
|
readonly "color-radio-group": typeof alertBubbleReadme;
|
|
14
18
|
readonly combobox: typeof alertBubbleReadme;
|
|
@@ -25,10 +29,6 @@ export declare const readmes: {
|
|
|
25
29
|
readonly "file-input": typeof alertBubbleReadme;
|
|
26
30
|
readonly "flash-messages": typeof alertBubbleReadme;
|
|
27
31
|
readonly "form-component": typeof alertBubbleReadme;
|
|
28
|
-
readonly checkbox: typeof alertBubbleReadme;
|
|
29
|
-
readonly "checkbox-button": typeof alertBubbleReadme;
|
|
30
|
-
readonly "checkbox-input": typeof alertBubbleReadme;
|
|
31
|
-
readonly chip: typeof alertBubbleReadme;
|
|
32
32
|
readonly icon: typeof alertBubbleReadme;
|
|
33
33
|
readonly "image-gallery": typeof alertBubbleReadme;
|
|
34
34
|
readonly input: typeof alertBubbleReadme;
|
package/readmes.js
CHANGED
|
@@ -13,26 +13,26 @@ const README_md_5 = __importDefault(require("./button/README.md"));
|
|
|
13
13
|
const README_md_6 = __importDefault(require("./button-group/README.md"));
|
|
14
14
|
const README_md_7 = __importDefault(require("./button-list/README.md"));
|
|
15
15
|
const README_md_8 = __importDefault(require("./calendar/README.md"));
|
|
16
|
-
const README_md_9 = __importDefault(require("./
|
|
17
|
-
const README_md_10 = __importDefault(require("./
|
|
18
|
-
const README_md_11 = __importDefault(require("./
|
|
19
|
-
const README_md_12 = __importDefault(require("./
|
|
20
|
-
const README_md_13 = __importDefault(require("./
|
|
21
|
-
const README_md_14 = __importDefault(require("./
|
|
22
|
-
const README_md_15 = __importDefault(require("./
|
|
23
|
-
const README_md_16 = __importDefault(require("./
|
|
24
|
-
const README_md_17 = __importDefault(require("./
|
|
25
|
-
const README_md_18 = __importDefault(require("./
|
|
26
|
-
const README_md_19 = __importDefault(require("./
|
|
27
|
-
const README_md_20 = __importDefault(require("./
|
|
28
|
-
const README_md_21 = __importDefault(require("./
|
|
29
|
-
const README_md_22 = __importDefault(require("./
|
|
30
|
-
const README_md_23 = __importDefault(require("./
|
|
31
|
-
const README_md_24 = __importDefault(require("./
|
|
32
|
-
const README_md_25 = __importDefault(require("./
|
|
33
|
-
const README_md_26 = __importDefault(require("./
|
|
34
|
-
const README_md_27 = __importDefault(require("./
|
|
35
|
-
const README_md_28 = __importDefault(require("./
|
|
16
|
+
const README_md_9 = __importDefault(require("./checkbox/README.md"));
|
|
17
|
+
const README_md_10 = __importDefault(require("./checkbox-button/README.md"));
|
|
18
|
+
const README_md_11 = __importDefault(require("./checkbox-input/README.md"));
|
|
19
|
+
const README_md_12 = __importDefault(require("./chip/README.md"));
|
|
20
|
+
const README_md_13 = __importDefault(require("./color-radio/README.md"));
|
|
21
|
+
const README_md_14 = __importDefault(require("./color-radio-group/README.md"));
|
|
22
|
+
const README_md_15 = __importDefault(require("./combobox/README.md"));
|
|
23
|
+
const README_md_16 = __importDefault(require("./date-picker/README.md"));
|
|
24
|
+
const README_md_17 = __importDefault(require("./date-picker-input/README.md"));
|
|
25
|
+
const README_md_18 = __importDefault(require("./date-range-picker/README.md"));
|
|
26
|
+
const README_md_19 = __importDefault(require("./date-range-picker-input/README.md"));
|
|
27
|
+
const README_md_20 = __importDefault(require("./datetime-picker/README.md"));
|
|
28
|
+
const README_md_21 = __importDefault(require("./datetime-picker-input/README.md"));
|
|
29
|
+
const README_md_22 = __importDefault(require("./dialog/README.md"));
|
|
30
|
+
const README_md_23 = __importDefault(require("./dropdown/README.md"));
|
|
31
|
+
const README_md_24 = __importDefault(require("./dropzone/README.md"));
|
|
32
|
+
const README_md_25 = __importDefault(require("./error-message/README.md"));
|
|
33
|
+
const README_md_26 = __importDefault(require("./file-input/README.md"));
|
|
34
|
+
const README_md_27 = __importDefault(require("./flash-messages/README.md"));
|
|
35
|
+
const README_md_28 = __importDefault(require("./form-component/README.md"));
|
|
36
36
|
const README_md_29 = __importDefault(require("./icon/README.md"));
|
|
37
37
|
const README_md_30 = __importDefault(require("./image-gallery/README.md"));
|
|
38
38
|
const README_md_31 = __importDefault(require("./input/README.md"));
|
|
@@ -69,26 +69,26 @@ exports.readmes = {
|
|
|
69
69
|
"button-group": README_md_6.default,
|
|
70
70
|
"button-list": README_md_7.default,
|
|
71
71
|
"calendar": README_md_8.default,
|
|
72
|
-
"
|
|
73
|
-
"
|
|
74
|
-
"
|
|
75
|
-
"
|
|
76
|
-
"
|
|
77
|
-
"
|
|
78
|
-
"
|
|
79
|
-
"
|
|
80
|
-
"
|
|
81
|
-
"
|
|
82
|
-
"
|
|
83
|
-
"
|
|
84
|
-
"
|
|
85
|
-
"
|
|
86
|
-
"
|
|
87
|
-
"
|
|
88
|
-
"
|
|
89
|
-
"
|
|
90
|
-
"
|
|
91
|
-
"
|
|
72
|
+
"checkbox": README_md_9.default,
|
|
73
|
+
"checkbox-button": README_md_10.default,
|
|
74
|
+
"checkbox-input": README_md_11.default,
|
|
75
|
+
"chip": README_md_12.default,
|
|
76
|
+
"color-radio": README_md_13.default,
|
|
77
|
+
"color-radio-group": README_md_14.default,
|
|
78
|
+
"combobox": README_md_15.default,
|
|
79
|
+
"date-picker": README_md_16.default,
|
|
80
|
+
"date-picker-input": README_md_17.default,
|
|
81
|
+
"date-range-picker": README_md_18.default,
|
|
82
|
+
"date-range-picker-input": README_md_19.default,
|
|
83
|
+
"datetime-picker": README_md_20.default,
|
|
84
|
+
"datetime-picker-input": README_md_21.default,
|
|
85
|
+
"dialog": README_md_22.default,
|
|
86
|
+
"dropdown": README_md_23.default,
|
|
87
|
+
"dropzone": README_md_24.default,
|
|
88
|
+
"error-message": README_md_25.default,
|
|
89
|
+
"file-input": README_md_26.default,
|
|
90
|
+
"flash-messages": README_md_27.default,
|
|
91
|
+
"form-component": README_md_28.default,
|
|
92
92
|
"icon": README_md_29.default,
|
|
93
93
|
"image-gallery": README_md_30.default,
|
|
94
94
|
"input": README_md_31.default,
|
|
@@ -53,7 +53,7 @@ function Default() {
|
|
|
53
53
|
react_1.default.createElement(text_input_1.TextInput, { name: "readOnly", label: "Read only input", value: value, onChange: onChange, helperText: "Error helper text", leftAddon: "https://", rightAddon: ".cz", leftElement: "\uD83C\uDF37", rightElement: "\uD83D\uDD14", placeholder: "Some beautiful placeholder...", isReadOnly: true }),
|
|
54
54
|
react_1.default.createElement(text_input_1.TextInput, { name: "disabled", label: "Disabled input", value: value, onChange: onChange, helperText: "Error helper text", leftAddon: "https://", rightAddon: ".cz", leftElement: "\uD83C\uDF37", rightElement: "\uD83D\uDD14", placeholder: "Some beautiful placeholder...", isDisabled: true }),
|
|
55
55
|
react_1.default.createElement(text_input_1.TextInput, { name: "defaultHtmlTime", label: "Default html time input", value: timeValue, onChange: onTimeChange, placeholder: "Some beautiful placeholder...", type: "time" }),
|
|
56
|
-
react_1.default.createElement(text_input_1.TextInput, { name: "copyToClipboard", label: "Copy to clipboard input", leftAddon: "I can be copied!", onChange: onChange, placeholder: "Some beautiful placeholder...", rightAddon: react_1.default.createElement(button_1.Button, { className: "size-full rounded-l-none border-none", disabled: value === "", onClick: onCopy, variant: "
|
|
56
|
+
react_1.default.createElement(text_input_1.TextInput, { name: "copyToClipboard", label: "Copy to clipboard input", leftAddon: "I can be copied!", onChange: onChange, placeholder: "Some beautiful placeholder...", rightAddon: react_1.default.createElement(button_1.Button, { className: "size-full rounded-l-none border-none", disabled: value === "", onClick: onCopy, variant: "secondary" },
|
|
57
57
|
react_1.default.createElement(icon_1.Icon, { className: "w-4", name: "copy" })), value: value })));
|
|
58
58
|
}
|
|
59
59
|
exports.Default = Default;
|
|
@@ -30,6 +30,9 @@ export interface StorybookConfig {
|
|
|
30
30
|
colors: LozengeColor[];
|
|
31
31
|
variants: LozengeVariant[];
|
|
32
32
|
};
|
|
33
|
+
Message: {
|
|
34
|
+
colors: MessageColor[];
|
|
35
|
+
};
|
|
33
36
|
Select: any;
|
|
34
37
|
}
|
|
35
38
|
export declare function useStorybookConfig<T extends keyof StorybookConfig>(key: T): StorybookConfig[T];
|
|
@@ -31,9 +31,9 @@ exports.defaultConfig = {
|
|
|
31
31
|
colors: ["default", "success", "error", "warning"],
|
|
32
32
|
},
|
|
33
33
|
Button: {
|
|
34
|
-
sizes: ["
|
|
35
|
-
colors: ["default", "
|
|
36
|
-
variants: ["default", "
|
|
34
|
+
sizes: ["sm", "default", "lg", "xl"],
|
|
35
|
+
colors: ["default", "positive", "negative", "warning", "info", "inverted"],
|
|
36
|
+
variants: ["default", "secondary", "text"],
|
|
37
37
|
},
|
|
38
38
|
Confirm: {
|
|
39
39
|
colors: ["default", "success", "error", "warning"],
|
|
@@ -49,6 +49,9 @@ exports.defaultConfig = {
|
|
|
49
49
|
colors: ["blue", "default", "green", "indigo", "orange", "red"],
|
|
50
50
|
variants: ["default", "muted"],
|
|
51
51
|
},
|
|
52
|
+
Message: {
|
|
53
|
+
colors: ["default", "success", "warning", "error"],
|
|
54
|
+
},
|
|
52
55
|
Select: {},
|
|
53
56
|
};
|
|
54
57
|
// Context
|