@uxf/ui 11.25.0 → 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.
@@ -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: "white" }, (_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: "error", disabled: props.isDisabled, onClick: onRemoveFile, size: "sm", variant: "white" }, (_f = props.removeFileLabel) !== null && _f !== void 0 ? _f : "Remove avatar"))))))));
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
- outlined: true;
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
- white: true;
26
- success: true;
32
+ positive: true;
33
+ negative: true;
27
34
  warning: true;
28
- error: true;
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
  ```
@@ -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
- 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"}`, isIconButton && "uxf-button--icon-button", isFullWidth && "uxf-button--full-width", className),
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
  });
@@ -1,2 +1,3 @@
1
1
  import React from "react";
2
+ export declare function Basic(): React.JSX.Element;
2
3
  export declare function Default(): React.JSX.Element;
@@ -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
- white: true;
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
- success: true;
19
- error: true;
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: "outlined", onClick: onClick }, "First"),
27
- react_1.default.createElement(button_1.Button, { size: "sm", variant: "outlined", onClick: onClick }, "Second"),
28
- react_1.default.createElement(button_1.Button, { size: "sm", variant: "outlined", onClick: onClick }, "Third")),
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: "outlined", onClick: onClick }, "Button with tooltip")),
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: "outlined", onClick: onClick }, "Second")),
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: "outlined", onClick: onClick }, "Third")))));
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: "outlined", buttons: [
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: "white", buttons: [
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: "success" },
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: "xs", color: "error", variant: "outlined", buttons: [
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: "success" },
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: "xs", color: "success", buttons: [
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: "error" },
53
- { icon: "user", label: "Second item", color: "success", size: "default" },
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: "outlined", color: "default" } })));
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: "white", ...props.prevButtonProps },
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: "white", ...props.nextButtonProps },
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
- @apply inline-flex items-center justify-center rounded-md font-medium shadow-sm transition-colors
9
- focus:outline-none focus-visible:ring-2 focus-visible:ring-offset-2;
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
- @apply h-6;
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
- @apply flex w-full flex-row justify-center;
57
+ display: flex;
58
+ justify-content: center;
59
+ width: 100%;
21
60
  }
22
61
 
23
- &.is-disabled {
24
- @apply pointer-events-none;
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
- @apply ml-0;
73
+ margin-left: 0;
30
74
  }
31
75
  }
32
76
 
33
- &.is-loading {
34
- @apply pointer-events-none;
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: 20px;
86
+ height: var(--uxf-button-loading-size);
43
87
  margin-left: 8px;
44
- width: 20px;
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
- @apply hidden;
96
+ display: none;
53
97
  }
54
98
  }
55
99
 
56
- &--size-xs {
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
- @apply px-3 text-sm leading-none;
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
- &.is-loading::after {
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
- @apply px-4 text-base;
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
- @apply px-6 text-base;
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
- &--variant-outlined {
135
- @apply border bg-white;
123
+ /* VARIANTS */
136
124
 
137
- :root .dark & {
138
- @apply bg-lightHigh;
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
- @apply focus-visible:ring-primary border-primary text-primary is-hoverable:border-primary-700 is-hoverable:text-primary-700;
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-success {
150
- @apply focus-visible:ring-success border-success text-success is-hoverable:border-success-700 is-hoverable:text-success-700;
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
- :root .dark & {
153
- @apply border-success text-success is-hoverable:border-success-300 is-hoverable:text-success-300;
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
- @apply focus-visible:ring-warning border-warning text-warning is-hoverable:border-warning-700 is-hoverable:text-warning-700;
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
- :root .dark & {
161
- @apply border-warning text-warning is-hoverable:border-warning-300 is-hoverable:text-warning-300;
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-error {
166
- @apply focus-visible:ring-error border-error text-error is-hoverable:border-error-700 is-hoverable:text-error-700;
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
- :root .dark & {
169
- @apply border-error text-error is-hoverable:border-error-300 is-hoverable:text-error-300;
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
- @apply text-lightLow border-gray-300 bg-gray-300;
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-default {
183
- @apply text-white;
170
+ &--variant-secondary {
171
+ --uxf-button-background-color-hover: var(--uxf-color-base-surface-main-hover);
184
172
 
185
- :root .dark & {
186
- @apply focus-visible:ring-offset-gray-900;
187
- }
173
+ border-style: solid;
174
+ border-width: 1px;
188
175
 
189
176
  &.uxf-button--color-default {
190
- @apply focus-visible:ring-primary bg-primary is-hoverable:bg-primary-700;
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-success {
206
- @apply focus-visible:ring-success bg-success is-hoverable:bg-success-700;
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-error {
222
- @apply focus-visible:ring-error bg-error is-hoverable:bg-error-700;
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
- @apply focus-visible:ring-warning bg-warning is-hoverable:bg-warning-700;
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
- &--variant-white {
255
- @apply focus-visible:ring-primary border-lightBorder text-lightMedium is-hoverable:bg-gray-100 border bg-white;
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
- &.is-disabled {
262
- @apply text-lightLow;
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
- @apply border-darkBorder text-darkLow;
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
- @apply shadow-none;
224
+ --uxf-button-background-color-hover: var(--uxf-color-base-surface-main-hover);
272
225
 
273
- &.uxf-button--color-default {
274
- @apply text-lightMedium is-hoverable:text-lightHigh;
226
+ box-shadow: none;
275
227
 
276
- :root .dark & {
277
- @apply text-darkMedium is-hoverable:text-darkHigh;
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-success {
282
- @apply text-success is-hoverable:text-success-700;
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-error {
290
- @apply text-error is-hoverable:text-error-700;
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
- @apply text-warning is-hoverable:text-warning-700;
241
+ --uxf-button-text-color: var(--uxf-color-warning-text);
242
+ }
299
243
 
300
- :root .dark & {
301
- @apply is-hoverable:text-warning-300;
302
- }
244
+ &.uxf-button--color-info {
245
+ --uxf-button-text-color: var(--uxf-color-info-text);
303
246
  }
304
247
 
305
- &.is-disabled {
306
- @apply text-lightLow;
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
- @apply text-darkLow;
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
  }
@@ -1,11 +1,13 @@
1
1
  .uxf-datetime-picker {
2
2
  &__tabs {
3
- @apply mx-auto mb-4 w-fit;
3
+ width: 100%;
4
4
  }
5
5
 
6
6
  &__tab {
7
- @apply text-body2 px-3 py-0;
7
+ @apply text-body2;
8
8
 
9
- height: theme("inputSize.xs");
9
+ flex-grow: 1;
10
+ height: theme("inputSize.default");
11
+ padding: 0 theme("spacing.3");
10
12
  }
11
13
  }
@@ -81,14 +81,15 @@ const DatetimePicker = (props) => {
81
81
  }, [onChange, tmpDate]);
82
82
  const selectedDate = getSelectedDate(props.value);
83
83
  const selectedTime = getSelectedTime(props.value);
84
- return (react_1.default.createElement("div", { className: "uxf-tabs uxf-tabs--grow" },
85
- react_1.default.createElement("div", { className: "uxf-tabs__tab-list__wrapper uxf-tabs__tab-list__wrapper--segmented uxf-datetime-picker__tabs" },
86
- react_1.default.createElement("div", { className: (0, cx_1.cx)("uxf-tabs__tab-list", `uxf-tabs__tab-list--segmented`) },
87
- react_1.default.createElement("button", { className: (0, cx_1.cx)("uxf-tabs__tab uxf-tabs__tab--segmented uxf-datetime-picker__tab", selectedTab === "date" && classes_1.CLASSES.IS_ACTIVE), onClick: () => setSelectedTab("date") }, "Datum"),
88
- react_1.default.createElement("button", { className: (0, cx_1.cx)("uxf-tabs__tab uxf-tabs__tab--segmented uxf-datetime-picker__tab", selectedTab === "time" && classes_1.CLASSES.IS_ACTIVE), onClick: () => setSelectedTab("time") }, "\u010Cas"))),
84
+ return (react_1.default.createElement("div", { className: "uxf-tabs uxf-tabs--variant-segmented uxf-tabs--horizontal" },
85
+ react_1.default.createElement("div", { className: "uxf-tabs__button-list uxf-tabs__button-list--variant-segmented uxf-tabs__button-list--horizontal uxf-datetime-picker__tabs" },
86
+ react_1.default.createElement("button", { className: (0, cx_1.cx)("uxf-tabs__button uxf-tabs__button--variant-segmented uxf-tabs__button--horizontal uxf-datetime-picker__tab", selectedTab === "date" && classes_1.CLASSES.IS_ACTIVE), onClick: () => setSelectedTab("date") }, "Datum"),
87
+ react_1.default.createElement("button", { className: (0, cx_1.cx)("uxf-tabs__button uxf-tabs__button--variant-segmented uxf-tabs__button--horizontal uxf-datetime-picker__tab", selectedTab === "time" && classes_1.CLASSES.IS_ACTIVE), onClick: () => setSelectedTab("time") }, "\u010Cas")),
89
88
  react_1.default.createElement("div", { className: "uxf-tabs__panels" },
90
- selectedTab === "date" && (react_1.default.createElement(date_picker_1.DatePicker, { bottomContent: props.bottomContent, maxDate: props.maxDate, minDate: props.minDate, onChange: onDatePickerChange, onMonthChange: props.onMonthChange, preventScroll: true, selectedDate: selectedDate, unavailableDates: props.unavailableDates })),
91
- selectedTab === "time" && react_1.default.createElement(time_picker_1.TimePicker, { onChange: onTimePickerChange, selectedTime: selectedTime }))));
89
+ selectedTab === "date" && (react_1.default.createElement("div", { className: "uxf-tabs__panel" },
90
+ react_1.default.createElement(date_picker_1.DatePicker, { bottomContent: props.bottomContent, maxDate: props.maxDate, minDate: props.minDate, onChange: onDatePickerChange, onMonthChange: props.onMonthChange, preventScroll: true, selectedDate: selectedDate, unavailableDates: props.unavailableDates }))),
91
+ selectedTab === "time" && (react_1.default.createElement("div", { className: "uxf-tabs__panel" },
92
+ react_1.default.createElement(time_picker_1.TimePicker, { onChange: onTimePickerChange, selectedTime: selectedTime }))))));
92
93
  };
93
94
  exports.DatetimePicker = DatetimePicker;
94
95
  exports.DatetimePicker.displayName = "UxfUiDatePicker";
@@ -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: "success", title: "Test" }, "Click me"),
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: "error",
12
+ error: "negative",
13
13
  warning: "warning",
14
- success: "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: "white", isFullWidth: isCentered, onClick: onCancelClick }, props.cancelLabel),
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;
@@ -1,7 +1,2 @@
1
1
  import React from "react";
2
- declare const _default: {
3
- title: string;
4
- component: React.ForwardRefExoticComponent<React.RefAttributes<import("./message").MessageRef>>;
5
- };
6
- export default _default;
7
2
  export declare function Default(): React.JSX.Element;
@@ -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)("Button");
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
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@uxf/ui",
3
- "version": "11.25.0",
3
+ "version": "11.27.0",
4
4
  "description": "",
5
5
  "publishConfig": {
6
6
  "access": "public"
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("./color-radio/README.md"));
17
- const README_md_10 = __importDefault(require("./color-radio-group/README.md"));
18
- const README_md_11 = __importDefault(require("./combobox/README.md"));
19
- const README_md_12 = __importDefault(require("./date-picker/README.md"));
20
- const README_md_13 = __importDefault(require("./date-picker-input/README.md"));
21
- const README_md_14 = __importDefault(require("./date-range-picker/README.md"));
22
- const README_md_15 = __importDefault(require("./date-range-picker-input/README.md"));
23
- const README_md_16 = __importDefault(require("./datetime-picker/README.md"));
24
- const README_md_17 = __importDefault(require("./datetime-picker-input/README.md"));
25
- const README_md_18 = __importDefault(require("./dialog/README.md"));
26
- const README_md_19 = __importDefault(require("./dropdown/README.md"));
27
- const README_md_20 = __importDefault(require("./dropzone/README.md"));
28
- const README_md_21 = __importDefault(require("./error-message/README.md"));
29
- const README_md_22 = __importDefault(require("./file-input/README.md"));
30
- const README_md_23 = __importDefault(require("./flash-messages/README.md"));
31
- const README_md_24 = __importDefault(require("./form-component/README.md"));
32
- const README_md_25 = __importDefault(require("./checkbox/README.md"));
33
- const README_md_26 = __importDefault(require("./checkbox-button/README.md"));
34
- const README_md_27 = __importDefault(require("./checkbox-input/README.md"));
35
- const README_md_28 = __importDefault(require("./chip/README.md"));
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
- "color-radio": README_md_9.default,
73
- "color-radio-group": README_md_10.default,
74
- "combobox": README_md_11.default,
75
- "date-picker": README_md_12.default,
76
- "date-picker-input": README_md_13.default,
77
- "date-range-picker": README_md_14.default,
78
- "date-range-picker-input": README_md_15.default,
79
- "datetime-picker": README_md_16.default,
80
- "datetime-picker-input": README_md_17.default,
81
- "dialog": README_md_18.default,
82
- "dropdown": README_md_19.default,
83
- "dropzone": README_md_20.default,
84
- "error-message": README_md_21.default,
85
- "file-input": README_md_22.default,
86
- "flash-messages": README_md_23.default,
87
- "form-component": README_md_24.default,
88
- "checkbox": README_md_25.default,
89
- "checkbox-button": README_md_26.default,
90
- "checkbox-input": README_md_27.default,
91
- "chip": README_md_28.default,
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: "white" },
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: ["xs", "sm", "default", "lg", "xl"],
35
- colors: ["default", "success", "error", "warning"],
36
- variants: ["default", "outlined", "white", "text"],
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