@uxf/ui 1.0.0-beta.59 → 1.0.0-beta.60
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/avatar.d.ts +5 -0
- package/avatar/avatar.js +14 -0
- package/avatar/avatar.stories.d.ts +7 -0
- package/avatar/avatar.stories.js +21 -0
- package/avatar/index.d.ts +1 -0
- package/avatar/index.js +5 -0
- package/badge/badge.d.ts +7 -0
- package/badge/badge.js +15 -0
- package/badge/badge.stories.d.ts +7 -0
- package/badge/badge.stories.js +39 -0
- package/badge/index.d.ts +1 -0
- package/badge/index.js +5 -0
- package/badge/theme.d.ts +5 -0
- package/badge/theme.js +2 -0
- package/button/button.d.ts +1 -0
- package/button/button.js +2 -2
- package/button/button.stories.js +9 -5
- package/checkbox/checkbox.d.ts +2 -2
- package/checkbox/checkbox.js +6 -4
- package/checkbox/checkbox.stories.js +2 -2
- package/checkbox-button/checkbox-button.d.ts +8 -0
- package/checkbox-button/checkbox-button.js +21 -0
- package/checkbox-button/checkbox-button.stories.d.ts +7 -0
- package/checkbox-button/checkbox-button.stories.js +57 -0
- package/checkbox-button/index.d.ts +1 -0
- package/checkbox-button/index.js +17 -0
- package/combobox/combobox.stories.js +8 -5
- package/config/icons-config.d.ts +1 -1
- package/config/icons-config.js +1 -1
- package/config/icons.d.ts +10 -0
- package/config/icons.js +2 -0
- package/css/avatar.css +15 -0
- package/css/badge.css +23 -0
- package/css/button.css +23 -3
- package/css/checkbox-button.css +99 -0
- package/css/checkbox.css +24 -6
- package/css/combobox.css +56 -6
- package/css/date-picker-input.css +123 -0
- package/css/date-picker.css +34 -0
- package/css/dropdown.css +9 -1
- package/css/flash-messages.css +20 -0
- package/css/input.css +16 -7
- package/css/list-item.css +24 -0
- package/css/radio-group.css +8 -8
- package/css/radio.css +5 -5
- package/css/select.css +36 -3
- package/css/tabs.css +104 -0
- package/css/text-link.css +12 -0
- package/css/textarea.css +6 -2
- package/css/toggle.css +4 -4
- package/date-picker-input/date-picker-day.d.ts +8 -0
- package/date-picker-input/date-picker-day.js +63 -0
- package/date-picker-input/date-picker-decade.d.ts +6 -0
- package/date-picker-input/date-picker-decade.js +68 -0
- package/date-picker-input/date-picker-input.d.ts +20 -0
- package/date-picker-input/date-picker-input.js +60 -0
- package/date-picker-input/date-picker-input.stories.d.ts +7 -0
- package/date-picker-input/date-picker-input.stories.js +45 -0
- package/date-picker-input/date-picker-month.d.ts +7 -0
- package/date-picker-input/date-picker-month.js +63 -0
- package/date-picker-input/date-picker-provider.d.ts +8 -0
- package/date-picker-input/date-picker-provider.js +26 -0
- package/date-picker-input/date-picker-year.d.ts +7 -0
- package/date-picker-input/date-picker-year.js +73 -0
- package/date-picker-input/date-picker.d.ts +3 -0
- package/date-picker-input/date-picker.js +53 -0
- package/date-picker-input/index.d.ts +3 -0
- package/date-picker-input/index.js +19 -0
- package/date-picker-input/types.d.ts +5 -0
- package/date-picker-input/types.js +2 -0
- package/flash-messages/flash-message.d.ts +16 -0
- package/flash-messages/flash-message.js +46 -0
- package/flash-messages/flash-messages-service.d.ts +5 -0
- package/flash-messages/flash-messages-service.js +15 -0
- package/flash-messages/flash-messages.d.ts +8 -0
- package/flash-messages/flash-messages.js +55 -0
- package/flash-messages/flash-messages.stories.d.ts +7 -0
- package/flash-messages/flash-messages.stories.js +31 -0
- package/flash-messages/theme.d.ts +4 -0
- package/flash-messages/theme.js +2 -0
- package/icon/icon.stories.js +2 -2
- package/list-item/index.d.ts +1 -0
- package/list-item/index.js +5 -0
- package/list-item/list-item.d.ts +7 -0
- package/list-item/list-item.js +23 -0
- package/list-item/list-item.stories.d.ts +7 -0
- package/list-item/list-item.stories.js +28 -0
- package/package.json +2 -1
- package/select/select.stories.js +10 -7
- package/tabs/index.d.ts +1 -0
- package/tabs/index.js +5 -0
- package/tabs/tabs.d.ts +7 -0
- package/tabs/tabs.js +64 -0
- package/tabs/tabs.stories.d.ts +7 -0
- package/tabs/tabs.stories.js +33 -0
- package/text-link/index.d.ts +1 -0
- package/text-link/index.js +5 -0
- package/text-link/text-link.d.ts +5 -0
- package/text-link/text-link.js +19 -0
- package/text-link/text-link.stories.d.ts +7 -0
- package/text-link/text-link.stories.js +24 -0
- package/utils/icons-config.js +10 -0
- package/utils/localized-dayjs.d.ts +2 -0
- package/utils/localized-dayjs.js +34 -0
package/avatar/avatar.js
ADDED
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
3
|
+
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
4
|
+
};
|
|
5
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
6
|
+
exports.Avatar = void 0;
|
|
7
|
+
const cx_1 = require("@uxf/core/utils/cx");
|
|
8
|
+
const react_1 = __importDefault(require("react"));
|
|
9
|
+
const forwardRef_1 = require("@uxf/core/utils/forwardRef");
|
|
10
|
+
const icon_1 = require("../icon");
|
|
11
|
+
exports.Avatar = (0, forwardRef_1.forwardRef)("Avatar", (props, ref) => {
|
|
12
|
+
const avatarClassName = (0, cx_1.cx)("uxf-avatar", props.className);
|
|
13
|
+
return (react_1.default.createElement("div", { ref: ref, className: avatarClassName }, props.src ? react_1.default.createElement("img", { alt: "", className: "uxf-avatar__image", src: props.src }) : react_1.default.createElement(icon_1.Icon, { name: "user", size: 16 })));
|
|
14
|
+
});
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
import React from "react";
|
|
2
|
+
declare const _default: {
|
|
3
|
+
title: string;
|
|
4
|
+
component: React.ForwardRefExoticComponent<import("./avatar").AvatarProps & React.RefAttributes<HTMLDivElement>>;
|
|
5
|
+
};
|
|
6
|
+
export default _default;
|
|
7
|
+
export declare function Default(): JSX.Element;
|
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
3
|
+
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
4
|
+
};
|
|
5
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
6
|
+
exports.Default = void 0;
|
|
7
|
+
const react_1 = __importDefault(require("react"));
|
|
8
|
+
const avatar_1 = require("./avatar");
|
|
9
|
+
exports.default = {
|
|
10
|
+
title: "UI/Avatar",
|
|
11
|
+
component: avatar_1.Avatar,
|
|
12
|
+
};
|
|
13
|
+
function Default() {
|
|
14
|
+
const testAvatars = (react_1.default.createElement(react_1.default.Fragment, null,
|
|
15
|
+
react_1.default.createElement(avatar_1.Avatar, { src: "https://i.picsum.photos/id/1062/5092/3395.jpg?hmac=o9m7qeU51uOLfXvepXcTrk2ZPiSBJEkiiOp-Qvxja-k" }),
|
|
16
|
+
react_1.default.createElement(avatar_1.Avatar, null)));
|
|
17
|
+
return (react_1.default.createElement(react_1.default.Fragment, null,
|
|
18
|
+
react_1.default.createElement("div", { className: "light flex items-center space-x-4 rounded bg-white p-8" }, testAvatars),
|
|
19
|
+
react_1.default.createElement("div", { className: "dark flex items-center space-x-4 rounded bg-gray-900 p-8 text-white" }, testAvatars)));
|
|
20
|
+
}
|
|
21
|
+
exports.Default = Default;
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export { Avatar } from "./avatar";
|
package/avatar/index.js
ADDED
package/badge/badge.d.ts
ADDED
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
import React, { HTMLAttributes } from "react";
|
|
2
|
+
import { BadgeSizes } from "@uxf/ui/badge/theme";
|
|
3
|
+
export declare type BadgeSize = keyof BadgeSizes;
|
|
4
|
+
export interface BadgeProps extends HTMLAttributes<HTMLDivElement> {
|
|
5
|
+
size?: BadgeSize;
|
|
6
|
+
}
|
|
7
|
+
export declare const Badge: React.ForwardRefExoticComponent<BadgeProps & React.RefAttributes<HTMLDivElement>>;
|
package/badge/badge.js
ADDED
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
3
|
+
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
4
|
+
};
|
|
5
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
6
|
+
exports.Badge = void 0;
|
|
7
|
+
const cx_1 = require("@uxf/core/utils/cx");
|
|
8
|
+
const react_1 = __importDefault(require("react"));
|
|
9
|
+
const forwardRef_1 = require("@uxf/core/utils/forwardRef");
|
|
10
|
+
exports.Badge = (0, forwardRef_1.forwardRef)("Badge", (props, ref) => {
|
|
11
|
+
var _a;
|
|
12
|
+
const badgeClassName = (0, cx_1.cx)("uxf-badge", `uxf-badge--size-${(_a = props.size) !== null && _a !== void 0 ? _a : "medium"}`, props.className);
|
|
13
|
+
return (react_1.default.createElement("div", { ref: ref, className: badgeClassName },
|
|
14
|
+
react_1.default.createElement("span", null, props.children)));
|
|
15
|
+
});
|
|
@@ -0,0 +1,39 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
3
|
+
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
4
|
+
};
|
|
5
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
6
|
+
exports.Default = void 0;
|
|
7
|
+
const react_1 = __importDefault(require("react"));
|
|
8
|
+
const badge_1 = require("./badge");
|
|
9
|
+
const icon_1 = require("../icon");
|
|
10
|
+
exports.default = {
|
|
11
|
+
title: "UI/Badge",
|
|
12
|
+
component: badge_1.Badge,
|
|
13
|
+
};
|
|
14
|
+
function Default() {
|
|
15
|
+
const testBadges = (react_1.default.createElement(react_1.default.Fragment, null,
|
|
16
|
+
react_1.default.createElement(badge_1.Badge, { size: "small" }, "5"),
|
|
17
|
+
react_1.default.createElement(badge_1.Badge, { size: "small" }, "12"),
|
|
18
|
+
react_1.default.createElement(badge_1.Badge, { size: "small" }, "123"),
|
|
19
|
+
react_1.default.createElement(badge_1.Badge, { size: "small" }, "1234"),
|
|
20
|
+
react_1.default.createElement(badge_1.Badge, null, "5"),
|
|
21
|
+
react_1.default.createElement(badge_1.Badge, null, "12"),
|
|
22
|
+
react_1.default.createElement(badge_1.Badge, null, "123"),
|
|
23
|
+
react_1.default.createElement(badge_1.Badge, null, "1234"),
|
|
24
|
+
react_1.default.createElement(badge_1.Badge, { size: "large" }, "5"),
|
|
25
|
+
react_1.default.createElement(badge_1.Badge, { size: "large" }, "12"),
|
|
26
|
+
react_1.default.createElement(badge_1.Badge, { size: "large" }, "123"),
|
|
27
|
+
react_1.default.createElement(badge_1.Badge, { size: "large" }, "1234"),
|
|
28
|
+
react_1.default.createElement(react_1.default.Fragment, null,
|
|
29
|
+
react_1.default.createElement(badge_1.Badge, { size: "small" },
|
|
30
|
+
react_1.default.createElement(icon_1.Icon, { name: "check", size: 12 })),
|
|
31
|
+
react_1.default.createElement(badge_1.Badge, null,
|
|
32
|
+
react_1.default.createElement(icon_1.Icon, { name: "check", size: 16 })),
|
|
33
|
+
react_1.default.createElement(badge_1.Badge, { size: "large" },
|
|
34
|
+
react_1.default.createElement(icon_1.Icon, { name: "check", size: 24 })))));
|
|
35
|
+
return (react_1.default.createElement(react_1.default.Fragment, null,
|
|
36
|
+
react_1.default.createElement("div", { className: "light flex items-center space-x-4 rounded bg-white p-8" }, testBadges),
|
|
37
|
+
react_1.default.createElement("div", { className: "dark flex items-center space-x-4 rounded bg-gray-900 p-8 text-white" }, testBadges)));
|
|
38
|
+
}
|
|
39
|
+
exports.Default = Default;
|
package/badge/index.d.ts
ADDED
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export { Badge } from "./badge";
|
package/badge/index.js
ADDED
package/badge/theme.d.ts
ADDED
package/badge/theme.js
ADDED
package/button/button.d.ts
CHANGED
|
@@ -9,5 +9,6 @@ export interface ButtonProps extends Omit<AnchorHTMLAttributes<HTMLAnchorElement
|
|
|
9
9
|
isFullWidth?: boolean;
|
|
10
10
|
size?: ButtonSize;
|
|
11
11
|
variant?: ButtonVariant;
|
|
12
|
+
iconButton?: boolean;
|
|
12
13
|
}
|
|
13
14
|
export declare const Button: React.ForwardRefExoticComponent<ButtonProps & React.RefAttributes<HTMLAnchorElement>>;
|
package/button/button.js
CHANGED
|
@@ -10,10 +10,10 @@ const react_1 = __importDefault(require("react"));
|
|
|
10
10
|
const forwardRef_1 = require("@uxf/core/utils/forwardRef");
|
|
11
11
|
exports.Button = (0, forwardRef_1.forwardRef)("Button", (props, ref) => {
|
|
12
12
|
// eslint-disable-next-line react/destructuring-assignment
|
|
13
|
-
const { color, isFullWidth, size, variant, className, ...restProps } = props;
|
|
13
|
+
const { color, iconButton, isFullWidth, size, variant, className, ...restProps } = props;
|
|
14
14
|
const anchorProps = (0, useAnchorProps_1.useAnchorProps)({
|
|
15
15
|
...restProps,
|
|
16
|
-
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"}`, isFullWidth && "uxf-button--full-width", className),
|
|
16
|
+
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"}`, iconButton && "uxf-button--icon-button", isFullWidth && "uxf-button--full-width", className),
|
|
17
17
|
});
|
|
18
18
|
return (react_1.default.createElement("a", { ref: ref, ...anchorProps },
|
|
19
19
|
typeof props.children === "string" ? (react_1.default.createElement("span", { className: "uxf-button__text" }, props.children)) : (props.children),
|
package/button/button.stories.js
CHANGED
|
@@ -27,14 +27,15 @@ exports.Default = void 0;
|
|
|
27
27
|
const react_1 = __importStar(require("react"));
|
|
28
28
|
const button_1 = require("@uxf/ui/button");
|
|
29
29
|
const storybook_config_1 = require("@uxf/ui/utils/storybook-config");
|
|
30
|
+
const icon_1 = require("@uxf/ui/icon");
|
|
30
31
|
exports.default = {
|
|
31
32
|
title: "UI/Button",
|
|
32
33
|
component: button_1.Button,
|
|
33
34
|
};
|
|
34
35
|
function Default() {
|
|
35
36
|
const config = (0, storybook_config_1.useStorybookConfig)("Button");
|
|
36
|
-
const allButtons = (react_1.default.createElement(react_1.default.Fragment, null, config.variants.map((variant) => (react_1.default.createElement(react_1.Fragment, { key: variant }, config.colors.map((color) => (react_1.default.createElement(react_1.Fragment, { key: color }, config.sizes.map((size) => (react_1.default.createElement("div", { key: `${size}${color}${variant}`, className: "pb-4" },
|
|
37
|
-
react_1.default.createElement("div", { className: "
|
|
37
|
+
const allButtons = (react_1.default.createElement(react_1.default.Fragment, null, config.variants.map((variant) => (react_1.default.createElement(react_1.Fragment, { key: variant }, config.colors.map((color) => (react_1.default.createElement(react_1.Fragment, { key: color }, config.sizes.map((size) => (react_1.default.createElement("div", { key: `${size}${color}${variant}`, className: "space-y-2 pb-4" },
|
|
38
|
+
react_1.default.createElement("div", { className: "text-sm" },
|
|
38
39
|
"Variant: ",
|
|
39
40
|
react_1.default.createElement("span", { className: "font-semibold" }, variant),
|
|
40
41
|
", Color:",
|
|
@@ -43,10 +44,13 @@ function Default() {
|
|
|
43
44
|
", Size:",
|
|
44
45
|
" ",
|
|
45
46
|
react_1.default.createElement("span", { className: "font-semibold" }, size)),
|
|
46
|
-
react_1.default.createElement("div", { className: "
|
|
47
|
+
react_1.default.createElement("div", { className: "flex flex-row gap-2" },
|
|
47
48
|
react_1.default.createElement(button_1.Button, { color: color, onClick: () => void null, size: size, variant: variant }, "Default"),
|
|
48
|
-
react_1.default.createElement(button_1.Button, { color: color, loading: true, size: size, variant: variant }, "Loading"),
|
|
49
|
-
react_1.default.createElement(button_1.Button, { color: color, disabled: true, size: size, variant: variant }, "Disabled")
|
|
49
|
+
react_1.default.createElement(button_1.Button, { color: color, loading: true, onClick: () => void null, size: size, variant: variant }, "Loading"),
|
|
50
|
+
react_1.default.createElement(button_1.Button, { color: color, disabled: true, onClick: () => void null, size: size, variant: variant }, "Disabled"),
|
|
51
|
+
react_1.default.createElement(button_1.Button, { color: color, iconButton: true, onClick: () => void null, size: size, variant: variant },
|
|
52
|
+
react_1.default.createElement(icon_1.Icon, { name: "check", size: size === "xs" || size === "sm" ? 16 : 24 }))),
|
|
53
|
+
react_1.default.createElement(button_1.Button, { className: "w-[200px]", color: color, onClick: () => void null, size: size, variant: variant }, "Custom width"),
|
|
50
54
|
react_1.default.createElement(button_1.Button, { color: color, isFullWidth: true, onClick: () => void null, size: size, variant: variant }, "Full width"))))))))))));
|
|
51
55
|
return (react_1.default.createElement("div", { className: "flex flex-col space-x-8 lg:flex-row" },
|
|
52
56
|
react_1.default.createElement("div", { className: "light space-y-2 rounded bg-white p-8" }, allButtons),
|
package/checkbox/checkbox.d.ts
CHANGED
|
@@ -1,9 +1,9 @@
|
|
|
1
|
-
import React, { CSSProperties } from "react";
|
|
1
|
+
import React, { CSSProperties, ReactNode } from "react";
|
|
2
2
|
import { FormControlProps } from "../types";
|
|
3
3
|
export interface CheckboxProps extends FormControlProps<boolean> {
|
|
4
4
|
className?: string;
|
|
5
5
|
indeterminate?: boolean;
|
|
6
|
-
label:
|
|
6
|
+
label: ReactNode;
|
|
7
7
|
style?: Partial<CSSProperties>;
|
|
8
8
|
}
|
|
9
9
|
export declare const Checkbox: React.ForwardRefExoticComponent<CheckboxProps & React.RefAttributes<HTMLButtonElement>>;
|
package/checkbox/checkbox.js
CHANGED
|
@@ -14,8 +14,10 @@ function CheckIcon() {
|
|
|
14
14
|
react_2.default.createElement("path", { d: "M13.333 4 6 11.333 2.667 8", stroke: "currentColor", strokeLinecap: "round", strokeLinejoin: "round", strokeWidth: "2" })));
|
|
15
15
|
}
|
|
16
16
|
exports.Checkbox = (0, forwardRef_1.forwardRef)("Checkbox", (props, ref) => {
|
|
17
|
-
return (react_2.default.createElement(react_1.Switch
|
|
18
|
-
react_2.default.createElement("
|
|
19
|
-
|
|
20
|
-
|
|
17
|
+
return (react_2.default.createElement(react_1.Switch.Group, null,
|
|
18
|
+
react_2.default.createElement("div", { className: "uxf-checkbox__wrapper" },
|
|
19
|
+
react_2.default.createElement(react_1.Switch, { checked: props.value, className: (0, cx_1.cx)(props.value && classes_1.CLASSES.IS_SELECTED, props.isDisabled && classes_1.CLASSES.IS_DISABLED, props.isInvalid && classes_1.CLASSES.IS_INVALID, "uxf-checkbox", props.className), disabled: props.isDisabled, onChange: props.onChange, ref: ref, style: props.style },
|
|
20
|
+
react_2.default.createElement("span", { className: "uxf-checkbox__icon" },
|
|
21
|
+
react_2.default.createElement(CheckIcon, null))),
|
|
22
|
+
react_2.default.createElement(react_1.Switch.Label, { className: "uxf-checkbox__label" }, props.label))));
|
|
21
23
|
});
|
|
@@ -33,7 +33,7 @@ exports.default = {
|
|
|
33
33
|
function Default() {
|
|
34
34
|
const [checked, setChecked] = (0, react_1.useState)(true);
|
|
35
35
|
return (react_1.default.createElement("div", { className: "flex" },
|
|
36
|
-
react_1.default.createElement("div", { className: "light flex gap-4 p-20" },
|
|
36
|
+
react_1.default.createElement("div", { className: "light flex flex-col gap-4 p-20" },
|
|
37
37
|
react_1.default.createElement(index_1.Checkbox, { label: "Opravdu?", onChange: () => {
|
|
38
38
|
setChecked((prev) => !prev);
|
|
39
39
|
}, value: checked }),
|
|
@@ -43,7 +43,7 @@ function Default() {
|
|
|
43
43
|
react_1.default.createElement(index_1.Checkbox, { label: "Opravdu?", isInvalid: true, onChange: () => {
|
|
44
44
|
setChecked((prev) => !prev);
|
|
45
45
|
}, value: checked })),
|
|
46
|
-
react_1.default.createElement("div", { className: "dark flex gap-4 bg-gray-900 p-20" },
|
|
46
|
+
react_1.default.createElement("div", { className: "dark flex flex-col gap-4 bg-gray-900 p-20" },
|
|
47
47
|
react_1.default.createElement(index_1.Checkbox, { label: "Opravdu?", onChange: () => {
|
|
48
48
|
setChecked((prev) => !prev);
|
|
49
49
|
}, value: checked }),
|
|
@@ -0,0 +1,8 @@
|
|
|
1
|
+
import React, { CSSProperties, ReactNode } from "react";
|
|
2
|
+
import { FormControlProps } from "../types";
|
|
3
|
+
export interface CheckboxButtonProps extends FormControlProps<boolean> {
|
|
4
|
+
className?: string;
|
|
5
|
+
label: ReactNode;
|
|
6
|
+
style?: Partial<CSSProperties>;
|
|
7
|
+
}
|
|
8
|
+
export declare const CheckboxButton: React.ForwardRefExoticComponent<CheckboxButtonProps & React.RefAttributes<HTMLButtonElement>>;
|
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
3
|
+
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
4
|
+
};
|
|
5
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
6
|
+
exports.CheckboxButton = void 0;
|
|
7
|
+
const react_1 = require("@headlessui/react");
|
|
8
|
+
const react_2 = __importDefault(require("react"));
|
|
9
|
+
const cx_1 = require("@uxf/core/utils/cx");
|
|
10
|
+
const classes_1 = require("@uxf/core/constants/classes");
|
|
11
|
+
const forwardRef_1 = require("@uxf/core/utils/forwardRef");
|
|
12
|
+
function CheckIcon() {
|
|
13
|
+
return (react_2.default.createElement("svg", { fill: "none", viewBox: "0 0 16 16" },
|
|
14
|
+
react_2.default.createElement("path", { d: "M13.333 4 6 11.333 2.667 8", stroke: "currentColor", strokeLinecap: "round", strokeLinejoin: "round", strokeWidth: "2" })));
|
|
15
|
+
}
|
|
16
|
+
exports.CheckboxButton = (0, forwardRef_1.forwardRef)("CheckboxButton", (props, ref) => {
|
|
17
|
+
return (react_2.default.createElement(react_1.Switch, { checked: props.value, className: (0, cx_1.cx)(props.value && classes_1.CLASSES.IS_SELECTED, props.isDisabled && classes_1.CLASSES.IS_DISABLED, props.isInvalid && classes_1.CLASSES.IS_INVALID, "uxf-checkbox-button", props.className), disabled: props.isDisabled, onChange: props.onChange, ref: ref, style: props.style },
|
|
18
|
+
react_2.default.createElement("span", { className: "uxf-checkbox-button__label" }, props.label),
|
|
19
|
+
react_2.default.createElement("span", { className: "uxf-checkbox-button__icon" },
|
|
20
|
+
react_2.default.createElement(CheckIcon, null))));
|
|
21
|
+
});
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
import React from "react";
|
|
2
|
+
declare const _default: {
|
|
3
|
+
title: string;
|
|
4
|
+
component: React.ForwardRefExoticComponent<import("./checkbox-button").CheckboxButtonProps & React.RefAttributes<HTMLButtonElement>>;
|
|
5
|
+
};
|
|
6
|
+
export default _default;
|
|
7
|
+
export declare function Default(): JSX.Element;
|
|
@@ -0,0 +1,57 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
|
|
3
|
+
if (k2 === undefined) k2 = k;
|
|
4
|
+
var desc = Object.getOwnPropertyDescriptor(m, k);
|
|
5
|
+
if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
|
|
6
|
+
desc = { enumerable: true, get: function() { return m[k]; } };
|
|
7
|
+
}
|
|
8
|
+
Object.defineProperty(o, k2, desc);
|
|
9
|
+
}) : (function(o, m, k, k2) {
|
|
10
|
+
if (k2 === undefined) k2 = k;
|
|
11
|
+
o[k2] = m[k];
|
|
12
|
+
}));
|
|
13
|
+
var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
|
|
14
|
+
Object.defineProperty(o, "default", { enumerable: true, value: v });
|
|
15
|
+
}) : function(o, v) {
|
|
16
|
+
o["default"] = v;
|
|
17
|
+
});
|
|
18
|
+
var __importStar = (this && this.__importStar) || function (mod) {
|
|
19
|
+
if (mod && mod.__esModule) return mod;
|
|
20
|
+
var result = {};
|
|
21
|
+
if (mod != null) for (var k in mod) if (k !== "default" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);
|
|
22
|
+
__setModuleDefault(result, mod);
|
|
23
|
+
return result;
|
|
24
|
+
};
|
|
25
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
26
|
+
exports.Default = void 0;
|
|
27
|
+
const index_1 = require("./index");
|
|
28
|
+
const react_1 = __importStar(require("react"));
|
|
29
|
+
exports.default = {
|
|
30
|
+
title: "UI/CheckboxButton",
|
|
31
|
+
component: index_1.CheckboxButton,
|
|
32
|
+
};
|
|
33
|
+
function Default() {
|
|
34
|
+
const [checked, setChecked] = (0, react_1.useState)(true);
|
|
35
|
+
return (react_1.default.createElement("div", { className: "flex" },
|
|
36
|
+
react_1.default.createElement("div", { className: "light flex flex-col gap-4 p-20" },
|
|
37
|
+
react_1.default.createElement(index_1.CheckboxButton, { label: "Opravdu?", onChange: () => {
|
|
38
|
+
setChecked((prev) => !prev);
|
|
39
|
+
}, value: checked }),
|
|
40
|
+
react_1.default.createElement(index_1.CheckboxButton, { label: "Opravdu?", isDisabled: true, onChange: () => {
|
|
41
|
+
setChecked((prev) => !prev);
|
|
42
|
+
}, value: checked }),
|
|
43
|
+
react_1.default.createElement(index_1.CheckboxButton, { label: "Opravdu?", isInvalid: true, onChange: () => {
|
|
44
|
+
setChecked((prev) => !prev);
|
|
45
|
+
}, value: checked })),
|
|
46
|
+
react_1.default.createElement("div", { className: "dark flex flex-col gap-4 bg-gray-900 p-20" },
|
|
47
|
+
react_1.default.createElement(index_1.CheckboxButton, { label: "Opravdu?", onChange: () => {
|
|
48
|
+
setChecked((prev) => !prev);
|
|
49
|
+
}, value: checked }),
|
|
50
|
+
react_1.default.createElement(index_1.CheckboxButton, { label: "Opravdu?", isDisabled: true, onChange: () => {
|
|
51
|
+
setChecked((prev) => !prev);
|
|
52
|
+
}, value: checked }),
|
|
53
|
+
react_1.default.createElement(index_1.CheckboxButton, { label: "Opravdu?", isInvalid: true, onChange: () => {
|
|
54
|
+
setChecked((prev) => !prev);
|
|
55
|
+
}, value: checked }))));
|
|
56
|
+
}
|
|
57
|
+
exports.Default = Default;
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export * from "./checkbox-button";
|
|
@@ -0,0 +1,17 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
|
|
3
|
+
if (k2 === undefined) k2 = k;
|
|
4
|
+
var desc = Object.getOwnPropertyDescriptor(m, k);
|
|
5
|
+
if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
|
|
6
|
+
desc = { enumerable: true, get: function() { return m[k]; } };
|
|
7
|
+
}
|
|
8
|
+
Object.defineProperty(o, k2, desc);
|
|
9
|
+
}) : (function(o, m, k, k2) {
|
|
10
|
+
if (k2 === undefined) k2 = k;
|
|
11
|
+
o[k2] = m[k];
|
|
12
|
+
}));
|
|
13
|
+
var __exportStar = (this && this.__exportStar) || function(m, exports) {
|
|
14
|
+
for (var p in m) if (p !== "default" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);
|
|
15
|
+
};
|
|
16
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
17
|
+
__exportStar(require("./checkbox-button"), exports);
|
|
@@ -46,11 +46,14 @@ function Default() {
|
|
|
46
46
|
console.log("Select value: ", v);
|
|
47
47
|
setValue(v);
|
|
48
48
|
};
|
|
49
|
-
|
|
50
|
-
react_1.default.createElement(index_1.Combobox, { id: "combobox-1", label: "Combobox", name: "combobox", onChange: handleChange, options: options, value: value }),
|
|
51
|
-
react_1.default.createElement(index_1.Combobox, { helperText: "Start typing to see options...", id: "combobox-1", label: "Combobox with helper text", name: "combobox", onChange: handleChange, options: options, value: value }),
|
|
52
|
-
react_1.default.createElement(index_1.Combobox, { helperText: "Error message", id: "combobox-1", isInvalid: true, isRequired: true, label: "Combobox invalid", name: "combobox", onChange: handleChange, options: options, value: value }),
|
|
53
|
-
react_1.default.createElement(index_1.Combobox, { dropdownPlacement: "top", id: "combobox-1", label: "Combobox with dropdown top", name: "combobox", onChange: handleChange, options: options, value: value })));
|
|
49
|
+
const storyComboboxes = (react_1.default.createElement("div", { className: "space-y-8" },
|
|
50
|
+
react_1.default.createElement(index_1.Combobox, { id: "combobox-1", label: "Combobox", name: "combobox", onChange: handleChange, options: options, placeholder: "Vyberte ..", value: value }),
|
|
51
|
+
react_1.default.createElement(index_1.Combobox, { helperText: "Start typing to see options...", id: "combobox-1", label: "Combobox with helper text", name: "combobox", onChange: handleChange, options: options, placeholder: "Vyberte ..", value: value }),
|
|
52
|
+
react_1.default.createElement(index_1.Combobox, { helperText: "Error message", id: "combobox-1", isInvalid: true, isRequired: true, label: "Combobox invalid", name: "combobox", onChange: handleChange, options: options, placeholder: "Vyberte ..", value: value }),
|
|
53
|
+
react_1.default.createElement(index_1.Combobox, { dropdownPlacement: "top", id: "combobox-1", label: "Combobox with dropdown top", name: "combobox", onChange: handleChange, options: options, placeholder: "Vyberte ..", value: value })));
|
|
54
|
+
return (react_1.default.createElement("div", { className: "flex flex-col lg:flex-row" },
|
|
55
|
+
react_1.default.createElement("div", { className: "light space-y-2 p-20 lg:w-1/2" }, storyComboboxes),
|
|
56
|
+
react_1.default.createElement("div", { className: "dark space-y-2 bg-gray-900 p-20 lg:w-1/2" }, storyComboboxes)));
|
|
54
57
|
}
|
|
55
58
|
exports.Default = Default;
|
|
56
59
|
function ComponentStructure() {
|
package/config/icons-config.d.ts
CHANGED
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
export declare const ICONS_VERSION = "
|
|
1
|
+
export declare const ICONS_VERSION = "1666328849970";
|
|
2
2
|
export declare const ICON_SPRITE = "/.storybook/static-assets/icons-generated/_icon-sprite.svg";
|
package/config/icons-config.js
CHANGED
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
3
|
exports.ICON_SPRITE = exports.ICONS_VERSION = void 0;
|
|
4
|
-
exports.ICONS_VERSION = "
|
|
4
|
+
exports.ICONS_VERSION = "1666328849970";
|
|
5
5
|
exports.ICON_SPRITE = "/.storybook/static-assets/icons-generated/_icon-sprite.svg";
|
package/config/icons.d.ts
CHANGED
|
@@ -1,4 +1,8 @@
|
|
|
1
1
|
export declare const ICONS: {
|
|
2
|
+
readonly calendar: {
|
|
3
|
+
readonly w: 448;
|
|
4
|
+
readonly h: 512;
|
|
5
|
+
};
|
|
2
6
|
readonly camera: {
|
|
3
7
|
readonly w: 512;
|
|
4
8
|
readonly h: 512;
|
|
@@ -27,6 +31,10 @@ export declare const ICONS: {
|
|
|
27
31
|
readonly w: 512;
|
|
28
32
|
readonly h: 512;
|
|
29
33
|
};
|
|
34
|
+
readonly user: {
|
|
35
|
+
readonly w: 448;
|
|
36
|
+
readonly h: 512;
|
|
37
|
+
};
|
|
30
38
|
readonly xmarkLarge: {
|
|
31
39
|
readonly w: 448;
|
|
32
40
|
readonly h: 512;
|
|
@@ -35,6 +43,7 @@ export declare const ICONS: {
|
|
|
35
43
|
export declare type IconsType = keyof typeof ICONS;
|
|
36
44
|
declare module "@uxf/ui/icon/theme" {
|
|
37
45
|
interface IconsSet {
|
|
46
|
+
calendar: true;
|
|
38
47
|
camera: true;
|
|
39
48
|
caretDown: true;
|
|
40
49
|
check: true;
|
|
@@ -42,6 +51,7 @@ declare module "@uxf/ui/icon/theme" {
|
|
|
42
51
|
chevronLeft: true;
|
|
43
52
|
chevronRight: true;
|
|
44
53
|
chevronUp: true;
|
|
54
|
+
user: true;
|
|
45
55
|
xmarkLarge: true;
|
|
46
56
|
}
|
|
47
57
|
}
|
package/config/icons.js
CHANGED
|
@@ -3,6 +3,7 @@
|
|
|
3
3
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
4
4
|
exports.ICONS = void 0;
|
|
5
5
|
exports.ICONS = {
|
|
6
|
+
calendar: { w: 448, h: 512 },
|
|
6
7
|
camera: { w: 512, h: 512 },
|
|
7
8
|
caretDown: { w: 320, h: 512 },
|
|
8
9
|
check: { w: 512, h: 512 },
|
|
@@ -10,5 +11,6 @@ exports.ICONS = {
|
|
|
10
11
|
chevronLeft: { w: 384, h: 512 },
|
|
11
12
|
chevronRight: { w: 384, h: 512 },
|
|
12
13
|
chevronUp: { w: 512, h: 512 },
|
|
14
|
+
user: { w: 448, h: 512 },
|
|
13
15
|
xmarkLarge: { w: 448, h: 512 },
|
|
14
16
|
};
|
package/css/avatar.css
ADDED
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
.uxf-avatar {
|
|
2
|
+
@apply relative inline-flex items-center justify-center h-10 w-10 rounded-full;
|
|
3
|
+
|
|
4
|
+
&__image {
|
|
5
|
+
@apply absolute left-0 top-0 block h-full w-full rounded-inherit object-cover;
|
|
6
|
+
}
|
|
7
|
+
|
|
8
|
+
:root .light & {
|
|
9
|
+
@apply text-gray-700 bg-gray-200;
|
|
10
|
+
}
|
|
11
|
+
|
|
12
|
+
:root .dark & {
|
|
13
|
+
@apply text-gray-200 bg-gray-800;
|
|
14
|
+
}
|
|
15
|
+
}
|
package/css/badge.css
ADDED
|
@@ -0,0 +1,23 @@
|
|
|
1
|
+
.uxf-badge {
|
|
2
|
+
@apply inline-flex items-center justify-center font-bold;
|
|
3
|
+
|
|
4
|
+
&--size-small {
|
|
5
|
+
@apply h-6 min-w-[24px] text-sm rounded-[12px] px-1.5;
|
|
6
|
+
}
|
|
7
|
+
|
|
8
|
+
&--size-medium {
|
|
9
|
+
@apply h-8 min-w-[32px] text-base rounded-[16px] px-2;
|
|
10
|
+
}
|
|
11
|
+
|
|
12
|
+
&--size-large {
|
|
13
|
+
@apply h-10 min-w-[40px] text-lg rounded-[20px] px-2;
|
|
14
|
+
}
|
|
15
|
+
|
|
16
|
+
:root .light & {
|
|
17
|
+
@apply text-white bg-primary-500;
|
|
18
|
+
}
|
|
19
|
+
|
|
20
|
+
:root .dark & {
|
|
21
|
+
@apply text-gray-900 bg-white;
|
|
22
|
+
}
|
|
23
|
+
}
|
package/css/button.css
CHANGED
|
@@ -5,7 +5,7 @@
|
|
|
5
5
|
}
|
|
6
6
|
|
|
7
7
|
.uxf-button {
|
|
8
|
-
@apply inline-flex items-center rounded-lg before:rounded-lg font-
|
|
8
|
+
@apply inline-flex items-center justify-center text-center rounded-lg before:rounded-lg font-semibold
|
|
9
9
|
focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-offset-2 relative cursor-pointer transition before:transition;
|
|
10
10
|
|
|
11
11
|
&__text {
|
|
@@ -42,6 +42,10 @@
|
|
|
42
42
|
width: 14px;
|
|
43
43
|
height: 14px;
|
|
44
44
|
}
|
|
45
|
+
|
|
46
|
+
&.uxf-button--icon-button {
|
|
47
|
+
@apply p-0 h-7 w-7;
|
|
48
|
+
}
|
|
45
49
|
}
|
|
46
50
|
|
|
47
51
|
&--size-sm {
|
|
@@ -51,18 +55,34 @@
|
|
|
51
55
|
width: 16px;
|
|
52
56
|
height: 16px;
|
|
53
57
|
}
|
|
58
|
+
|
|
59
|
+
&.uxf-button--icon-button {
|
|
60
|
+
@apply p-0 h-8 w-8;
|
|
61
|
+
}
|
|
54
62
|
}
|
|
55
63
|
|
|
56
64
|
&--size-default {
|
|
57
65
|
@apply px-4 py-3 text-base;
|
|
66
|
+
|
|
67
|
+
&.uxf-button--icon-button {
|
|
68
|
+
@apply p-0 h-12 w-12;
|
|
69
|
+
}
|
|
58
70
|
}
|
|
59
71
|
|
|
60
72
|
&--size-lg {
|
|
61
73
|
@apply px-8 py-5 text-base;
|
|
74
|
+
|
|
75
|
+
&.uxf-button--icon-button {
|
|
76
|
+
@apply p-0 h-16 w-16;
|
|
77
|
+
}
|
|
62
78
|
}
|
|
63
79
|
|
|
64
80
|
&--size-xl {
|
|
65
81
|
@apply px-10 py-6 text-base;
|
|
82
|
+
|
|
83
|
+
&.uxf-button--icon-button {
|
|
84
|
+
@apply p-0 h-[72px] w-[72px];
|
|
85
|
+
}
|
|
66
86
|
}
|
|
67
87
|
|
|
68
88
|
&--variant-outlined {
|
|
@@ -185,7 +205,7 @@
|
|
|
185
205
|
@apply before:border-transparent;
|
|
186
206
|
|
|
187
207
|
:root .light & {
|
|
188
|
-
@apply hover:bg-
|
|
208
|
+
@apply hover:bg-gray-200 focus-visible:ring-primary-500 focus-visible:ring-offset-white;
|
|
189
209
|
|
|
190
210
|
&.is-disabled {
|
|
191
211
|
@apply text-gray-400;
|
|
@@ -193,7 +213,7 @@
|
|
|
193
213
|
}
|
|
194
214
|
|
|
195
215
|
:root .dark & {
|
|
196
|
-
@apply hover:bg-
|
|
216
|
+
@apply hover:bg-gray-800 focus-visible:ring-primary-500 focus-visible:ring-offset-gray-900;
|
|
197
217
|
|
|
198
218
|
&.is-disabled {
|
|
199
219
|
@apply text-gray-600;
|