@ayseaistudio/ui-components 2.3.1 → 3.0.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.
Files changed (52) hide show
  1. package/dist/ChatMessageLeft/ChatMessageLeft.d.ts +16 -0
  2. package/dist/ChatMessageLeft/ChatMessageLeft.js +11 -0
  3. package/dist/ChatMessageLeft/index.d.ts +1 -0
  4. package/dist/ChatMessageLeft/index.js +1 -0
  5. package/dist/ChatMessageLeft/style.css +69 -0
  6. package/dist/ChatMessageRight/ChatMessageRight.d.ts +21 -0
  7. package/dist/ChatMessageRight/ChatMessageRight.js +13 -0
  8. package/dist/ChatMessageRight/index.d.ts +1 -0
  9. package/dist/ChatMessageRight/index.js +1 -0
  10. package/dist/ChatMessageRight/style.css +87 -0
  11. package/dist/LabelCheckbox/LabelCheckbox.d.ts +25 -0
  12. package/dist/LabelCheckbox/LabelCheckbox.js +45 -0
  13. package/dist/LabelCheckbox/index.d.ts +1 -0
  14. package/dist/LabelCheckbox/index.js +1 -0
  15. package/dist/LabelCheckbox/style.css +94 -0
  16. package/dist/Player/Player.d.ts +24 -0
  17. package/dist/Player/Player.js +72 -0
  18. package/dist/Player/index.d.ts +1 -0
  19. package/dist/Player/index.js +1 -0
  20. package/dist/Player/style.css +32 -0
  21. package/dist/ProfileButton/ProfileButton.js +1 -1
  22. package/dist/Radio/Radio.d.ts +19 -0
  23. package/dist/Radio/Radio.js +46 -0
  24. package/dist/Radio/index.d.ts +1 -0
  25. package/dist/Radio/index.js +1 -0
  26. package/dist/Radio/style.css +215 -0
  27. package/dist/SingleSlider/SingleSlider.d.ts +2 -1
  28. package/dist/SingleSlider/SingleSlider.js +2 -2
  29. package/dist/SingleSlider/style.css +22 -0
  30. package/dist/Strikethrough/Strikethrough.d.ts +20 -0
  31. package/dist/Strikethrough/Strikethrough.js +48 -0
  32. package/dist/Strikethrough/index.d.ts +1 -0
  33. package/dist/Strikethrough/index.js +1 -0
  34. package/dist/Strikethrough/style.css +366 -0
  35. package/dist/Switch/Switch.d.ts +17 -0
  36. package/dist/Switch/Switch.js +31 -0
  37. package/dist/Switch/index.d.ts +1 -0
  38. package/dist/Switch/index.js +1 -0
  39. package/dist/Switch/style.css +151 -0
  40. package/dist/SwitchButton/SwitchButton.d.ts +19 -0
  41. package/dist/SwitchButton/SwitchButton.js +63 -0
  42. package/dist/SwitchButton/index.d.ts +1 -0
  43. package/dist/SwitchButton/index.js +1 -0
  44. package/dist/SwitchButton/style.css +17 -0
  45. package/dist/TabButton/TabButton.d.ts +27 -0
  46. package/dist/TabButton/TabButton.js +22 -0
  47. package/dist/TabButton/index.d.ts +1 -0
  48. package/dist/TabButton/index.js +1 -0
  49. package/dist/TabButton/style.css +134 -0
  50. package/dist/index.d.ts +9 -0
  51. package/dist/index.js +9 -0
  52. package/package.json +1 -1
@@ -0,0 +1,17 @@
1
+ import PropTypes from "prop-types";
2
+ import "./style.css";
3
+ interface Props {
4
+ size?: "large" | "medium" | "small";
5
+ status?: "off" | "on";
6
+ color?: "black" | "blue" | "lime" | "mauve";
7
+ className?: any;
8
+ }
9
+ export declare const Switch: {
10
+ ({ size, status, color, className, }: Props): React.JSX.Element;
11
+ propTypes: {
12
+ size: PropTypes.Requireable<string>;
13
+ status: PropTypes.Requireable<string>;
14
+ color: PropTypes.Requireable<string>;
15
+ };
16
+ };
17
+ export {};
@@ -0,0 +1,31 @@
1
+ import { jsx as _jsx } from "react/jsx-runtime";
2
+ import PropTypes from "prop-types";
3
+ import { useReducer } from "react";
4
+ import "./style.css";
5
+ export const Switch = ({ size, status, color, className, }) => {
6
+ const [state, dispatch] = useReducer(reducer, {
7
+ size: size || "large",
8
+ status: status || "off",
9
+ color: color || "black",
10
+ });
11
+ return (_jsx("div", { className: `switch ${state.size} ${state.status} ${state.color} ${className || ""}`, onClick: () => {
12
+ dispatch("click");
13
+ }, children: _jsx("div", { className: "switch-button" }) }));
14
+ };
15
+ function reducer(state, action) {
16
+ const type = typeof action === "string" ? action : action?.type;
17
+ switch (type) {
18
+ case "click":
19
+ return {
20
+ ...state,
21
+ status: state.status === "on" ? "off" : "on",
22
+ };
23
+ default:
24
+ return state;
25
+ }
26
+ }
27
+ Switch.propTypes = {
28
+ size: PropTypes.oneOf(["large", "medium", "small"]),
29
+ status: PropTypes.oneOf(["off", "on"]),
30
+ color: PropTypes.oneOf(["black", "blue", "lime", "mauve"]),
31
+ };
@@ -0,0 +1 @@
1
+ export { Switch } from "./Switch";
@@ -0,0 +1 @@
1
+ export { Switch } from "./Switch";
@@ -0,0 +1,151 @@
1
+ .switch {
2
+ align-items: center;
3
+ border-radius: 96px;
4
+ display: flex;
5
+ padding: 4px;
6
+ position: relative;
7
+ border: 1px solid transparent;
8
+ }
9
+
10
+ .switch * {
11
+ cursor: pointer;
12
+ }
13
+
14
+ .switch .switch-button {
15
+ position: absolute;
16
+ left: 4px;
17
+ top: 50%;
18
+ transform: translate(0, -50%);
19
+ transition: transform 200ms ease, background-color 200ms ease, box-shadow 200ms ease;
20
+ }
21
+
22
+ .switch.large {
23
+ width: 56px;
24
+ height: 32px;
25
+ }
26
+
27
+ .switch.off {
28
+ border: 1px solid transparent;
29
+ box-shadow: inset 0px 0px 4px 0px #0000001a;
30
+ }
31
+
32
+ /* Smooth background transitions on track */
33
+ .switch {
34
+ transition: background-color 200ms ease, box-shadow 200ms ease, border-color 200ms ease;
35
+ }
36
+
37
+ .switch.small {
38
+ width: 32px;
39
+ height: 320px;
40
+ }
41
+
42
+ .switch.medium {
43
+ width: 40px;
44
+ height: 24px;
45
+ }
46
+
47
+ .switch.on {
48
+ box-shadow: inset 0px 0px 4px #0000001a;
49
+ border-color: transparent;
50
+ }
51
+
52
+ .switch.on.black {
53
+ background-color: #454545;
54
+ }
55
+
56
+ .switch.mauve.off {
57
+ background-color: #a931ec1a;
58
+ border-color: #a931ec0d;
59
+ }
60
+
61
+ .switch.blue.on {
62
+ background-color: #8361f1;
63
+ }
64
+
65
+ .switch.black.off {
66
+ background-color: #e7e7e7;
67
+ border-color: #2424240d;
68
+ }
69
+
70
+ .switch.lime.on {
71
+ background-color: #98d317;
72
+ }
73
+
74
+ .switch.mauve.on {
75
+ background-color: #bc53f9;
76
+ }
77
+
78
+ .switch.blue.off {
79
+ background-color: #7240e71a;
80
+ border-color: #7240e70d;
81
+ }
82
+
83
+ .switch.lime.off {
84
+ background-color: #71a30d1a;
85
+ border-color: #71a30d0d;
86
+ }
87
+
88
+ .switch.large .switch-button {
89
+ border-radius: 12px;
90
+ height: 24px;
91
+ width: 24px;
92
+ }
93
+
94
+ /* Slide distances for each size */
95
+ .switch.large.on .switch-button {
96
+ transform: translate(24px, -50%);
97
+ }
98
+
99
+ .switch.small .switch-button {
100
+ border-radius: 6px;
101
+ height: 12px;
102
+ width: 12px;
103
+ }
104
+
105
+ .switch.small.on .switch-button {
106
+ transform: translate(12px, -50%);
107
+ }
108
+
109
+ .switch.black .switch-button {
110
+ background-color: #f1f1f1;
111
+ }
112
+
113
+ .switch.medium .switch-button {
114
+ border-radius: 8px;
115
+ height: 16px;
116
+ width: 16px;
117
+ }
118
+
119
+ .switch.medium.on .switch-button {
120
+ transform: translate(16px, -50%);
121
+ }
122
+
123
+ .switch.mauve.off .switch-button {
124
+ background-color: #bc53f9;
125
+ }
126
+
127
+ .switch.blue.on .switch-button {
128
+ background-color: #f4f3ff;
129
+ }
130
+
131
+ .switch.black.off .switch-button {
132
+ border: 1px solid;
133
+ border-color: #2424240d;
134
+ box-shadow: var(--drop-shadow-low);
135
+ }
136
+
137
+ .switch.lime.on .switch-button {
138
+ background-color: #f9fee7;
139
+ }
140
+
141
+ .switch.mauve.on .switch-button {
142
+ background-color: #fbf5ff;
143
+ }
144
+
145
+ .switch.blue.off .switch-button {
146
+ background-color: #8361f1;
147
+ }
148
+
149
+ .switch.lime.off .switch-button {
150
+ background-color: #98d317;
151
+ }
@@ -0,0 +1,19 @@
1
+ import PropTypes from "prop-types";
2
+ import "./style.css";
3
+ interface Props {
4
+ size: "large" | "medium" | "small";
5
+ color: "black" | "blue" | "lime" | "mauve";
6
+ switch1: "ON" | "OFF";
7
+ className: any;
8
+ text?: string;
9
+ onClick?: () => void;
10
+ }
11
+ export declare const SwitchButton: {
12
+ ({ size, color, switch1, className, text, onClick, }: Props): React.JSX.Element;
13
+ propTypes: {
14
+ size: PropTypes.Requireable<string>;
15
+ color: PropTypes.Requireable<string>;
16
+ switch1: PropTypes.Requireable<string>;
17
+ };
18
+ };
19
+ export {};
@@ -0,0 +1,63 @@
1
+ import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
2
+ import PropTypes from "prop-types";
3
+ import { useReducer } from "react";
4
+ import "./style.css";
5
+ import { Switch } from "../Switch/Switch";
6
+ import { Label } from "../Label/Label";
7
+ export const SwitchButton = ({ size, color, switch1, className, text, onClick, }) => {
8
+ const [state, dispatch] = useReducer(reducer, {
9
+ size: size || "large",
10
+ color: color || "black",
11
+ switch2: switch1 || "OFF",
12
+ hovered: false,
13
+ });
14
+ return (_jsxs("div", { className: `switch-button size-2-${state.size} ${state.switch2} color-0-${state.color} ${className || ""}`, onClick: () => {
15
+ onClick && onClick();
16
+ dispatch("click");
17
+ }, onMouseEnter: () => {
18
+ dispatch("mouse_enter");
19
+ }, onMouseLeave: () => {
20
+ dispatch("mouse_leave");
21
+ }, children: [_jsx(Switch, { className: "switch-instance", color: state.color === "lime"
22
+ ? "lime"
23
+ : state.color === "mauve"
24
+ ? "mauve"
25
+ : state.color === "blue"
26
+ ? "blue"
27
+ : "black", size: state.size === "medium"
28
+ ? "medium"
29
+ : state.size === "small"
30
+ ? "small"
31
+ : "large", status: state.switch2 === "ON" ? "on" : "off" }), text && (_jsx(Label, { bold: "off", className: "label-instance", color: "black", size: state.size === "medium"
32
+ ? "medium"
33
+ : state.size === "small"
34
+ ? "small"
35
+ : "large", spacing: "on", stroke: "off", text: text, version: state.switch2 === "ON" ? "primary" : "secondary" }))] }));
36
+ };
37
+ function reducer(state, action) {
38
+ const type = typeof action === "string" ? action : action?.type;
39
+ switch (type) {
40
+ case "click":
41
+ return {
42
+ ...state,
43
+ switch2: state.switch2 === "ON" ? "OFF" : "ON",
44
+ };
45
+ case "mouse_enter":
46
+ return {
47
+ ...state,
48
+ hovered: true,
49
+ };
50
+ case "mouse_leave":
51
+ return {
52
+ ...state,
53
+ hovered: false,
54
+ };
55
+ default:
56
+ return state;
57
+ }
58
+ }
59
+ SwitchButton.propTypes = {
60
+ size: PropTypes.oneOf(["large", "medium", "small"]),
61
+ color: PropTypes.oneOf(["black", "blue", "lime", "mauve"]),
62
+ switch1: PropTypes.oneOf(["ON", "OFF"]),
63
+ };
@@ -0,0 +1 @@
1
+ export { SwitchButton } from "./SwitchButton";
@@ -0,0 +1 @@
1
+ export { SwitchButton } from "./SwitchButton";
@@ -0,0 +1,17 @@
1
+ .switch-button {
2
+ align-items: center;
3
+ display: inline-flex;
4
+ position: relative;
5
+ }
6
+
7
+ .switch-button * {
8
+ cursor: pointer;
9
+ }
10
+
11
+ .switch-button .label-instance {
12
+ flex: 0 0 auto !important;
13
+ }
14
+
15
+ .switch-button.size-2-large {
16
+ gap: 4px;
17
+ }
@@ -0,0 +1,27 @@
1
+ import PropTypes from "prop-types";
2
+ import "./style.css";
3
+ interface Props {
4
+ text: string;
5
+ leftIcon?: React.JSX.Element;
6
+ rightIcon?: React.JSX.Element;
7
+ size: "large" | "medium" | "small";
8
+ status: "selected" | "default";
9
+ align: "left-align" | "center-align";
10
+ version: "no-background";
11
+ className: any;
12
+ onClick: () => void;
13
+ }
14
+ export declare const TabButton: {
15
+ ({ text, size, status, align, version, className, leftIcon, rightIcon, onClick, }: Props): React.JSX.Element;
16
+ propTypes: {
17
+ text: PropTypes.Requireable<string>;
18
+ withLeftIcon: PropTypes.Requireable<boolean>;
19
+ withText: PropTypes.Requireable<boolean>;
20
+ withRightIcon: PropTypes.Requireable<boolean>;
21
+ size: PropTypes.Requireable<string>;
22
+ status: PropTypes.Requireable<string>;
23
+ align: PropTypes.Requireable<string>;
24
+ version: PropTypes.Requireable<string>;
25
+ };
26
+ };
27
+ export {};
@@ -0,0 +1,22 @@
1
+ import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
2
+ import PropTypes from "prop-types";
3
+ import { useEffect, useState } from "react";
4
+ import "./style.css";
5
+ export const TabButton = ({ text, size, status, align, version, className, leftIcon, rightIcon, onClick, }) => {
6
+ const [isSelected, setIsSelected] = useState(status === "selected");
7
+ useEffect(() => {
8
+ setIsSelected(status === "selected");
9
+ }, [status]);
10
+ const currentStatus = isSelected ? "selected" : "default";
11
+ return (_jsxs("div", { className: `tab-button ${size} ${align} ${currentStatus} ${version} ${className}`, onMouseEnter: () => setIsSelected(true), onMouseLeave: () => setIsSelected(false), onClick: onClick, children: [leftIcon && (_jsx("span", { className: `${size === "medium" ? "class" : (size === "small") ? "class-2" : "class-3"}`, style: { color: currentStatus === "selected" ? "#3D3D3D" : "#6D6D6D" }, children: leftIcon })), text && _jsx("div", { className: "button", children: text }), rightIcon && (_jsx("span", { className: `${size === "large" ? "class-3" : (size === "small" && align === "center-align") ? "class-2" : align === "left-align" && size === "medium" ? "class-4" : align === "left-align" && size === "small" ? "class-5" : "class"}`, style: { color: currentStatus === "selected" ? "#3D3D3D" : "#6D6D6D" }, children: rightIcon }))] }));
12
+ };
13
+ TabButton.propTypes = {
14
+ text: PropTypes.string,
15
+ withLeftIcon: PropTypes.bool,
16
+ withText: PropTypes.bool,
17
+ withRightIcon: PropTypes.bool,
18
+ size: PropTypes.oneOf(["large", "medium", "small"]),
19
+ status: PropTypes.oneOf(["selected", "default"]),
20
+ align: PropTypes.oneOf(["left-align", "center-align"]),
21
+ version: PropTypes.oneOf(["no-background"]),
22
+ };
@@ -0,0 +1 @@
1
+ export { TabButton } from "./TabButton";
@@ -0,0 +1 @@
1
+ export { TabButton } from "./TabButton";
@@ -0,0 +1,134 @@
1
+ .tab-button {
2
+ align-items: center;
3
+ position: relative;
4
+ }
5
+
6
+ .tab-button .class {
7
+ height: 20px !important;
8
+ position: relative !important;
9
+ width: 20px !important;
10
+ }
11
+
12
+ .tab-button .class-2 {
13
+ height: 16px !important;
14
+ position: relative !important;
15
+ width: 16px !important;
16
+ }
17
+
18
+ .tab-button .class-3 {
19
+ height: 24px !important;
20
+ position: relative !important;
21
+ width: 24px !important;
22
+ }
23
+
24
+ .tab-button .button {
25
+ align-items: center;
26
+ display: flex;
27
+ justify-content: center;
28
+ margin-top: -1.00px;
29
+ position: relative;
30
+ }
31
+
32
+ .tab-button .class-4 {
33
+ height: 20px !important;
34
+ margin-right: -1.00px !important;
35
+ position: relative !important;
36
+ width: 20px !important;
37
+ }
38
+
39
+ .tab-button .class-5 {
40
+ height: 16px !important;
41
+ margin-right: -1.00px !important;
42
+ position: relative !important;
43
+ width: 16px !important;
44
+ }
45
+
46
+ .tab-button.large {
47
+ display: inline-flex;
48
+ gap: 6px;
49
+ justify-content: center;
50
+ min-width: 44px;
51
+ padding: 12px;
52
+ }
53
+
54
+ .tab-button.center-align {
55
+ display: inline-flex;
56
+ justify-content: center;
57
+ }
58
+
59
+ .tab-button.small {
60
+ gap: 4px;
61
+ padding: 6px;
62
+ }
63
+
64
+ .tab-button.medium {
65
+ gap: 4px;
66
+ padding: 8px;
67
+ }
68
+
69
+ .tab-button.medium.left-align {
70
+ display: flex;
71
+ top: 272px;
72
+ width: 107px;
73
+ }
74
+
75
+ .tab-button.small.left-align {
76
+ display: flex;
77
+ width: 95px;
78
+ }
79
+
80
+ .tab-button.large .button {
81
+ font-family: var(--h6-medium-font-family);
82
+ font-size: var(--h6-medium-font-size);
83
+ font-style: var(--h6-medium-font-style);
84
+ font-weight: var(--h6-medium-font-weight);
85
+ letter-spacing: var(--h6-medium-letter-spacing);
86
+ line-height: var(--h6-medium-line-height);
87
+ }
88
+
89
+ .tab-button.center-align .button {
90
+ text-align: center;
91
+ }
92
+
93
+ .tab-button.small .button {
94
+ font-family: var(--b1-medium-font-family);
95
+ font-size: var(--b1-medium-font-size);
96
+ font-style: var(--b1-medium-font-style);
97
+ font-weight: var(--b1-medium-font-weight);
98
+ letter-spacing: var(--b1-medium-letter-spacing);
99
+ line-height: var(--b1-medium-line-height);
100
+ white-space: nowrap;
101
+ width: fit-content;
102
+ }
103
+
104
+ .tab-button.default .button {
105
+ color: #6d6d6d;
106
+ }
107
+
108
+ .tab-button.medium .button {
109
+ font-family: var(--b1-medium-font-family);
110
+ font-size: var(--b1-medium-font-size);
111
+ font-style: var(--b1-medium-font-style);
112
+ font-weight: var(--b1-medium-font-weight);
113
+ letter-spacing: var(--b1-medium-letter-spacing);
114
+ line-height: var(--b1-medium-line-height);
115
+ white-space: nowrap;
116
+ width: fit-content;
117
+ }
118
+
119
+ .tab-button.selected .button {
120
+ color: #3d3d3d;
121
+ }
122
+
123
+ .tab-button.default.left-align .button {
124
+ white-space: nowrap;
125
+ width: fit-content;
126
+ }
127
+
128
+ .tab-button.large.selected .button {
129
+ flex: 1;
130
+ }
131
+
132
+ .tab-button.center-align.large .button {
133
+ flex: 1;
134
+ }
package/dist/index.d.ts CHANGED
@@ -21,3 +21,12 @@ export { CalendarYearDay } from "./CalendarYearDay/CalendarYearDay";
21
21
  export { MultipleAvatar } from "./MultipleAvatar/MultipleAvatar";
22
22
  export { Profile } from "./Profile/Profile";
23
23
  export { ProfileSelector } from "./ProfileSelector/ProfileSelector";
24
+ export { ChatMessageLeft } from "./ChatMessageLeft/ChatMessageLeft";
25
+ export { ChatMessageRight } from "./ChatMessageRight/ChatMessageRight";
26
+ export { LabelCheckbox } from "./LabelCheckbox/LabelCheckbox";
27
+ export { Player } from "./Player/Player";
28
+ export { Radio } from "./Radio/Radio";
29
+ export { Strikethrough } from "./Strikethrough/Strikethrough";
30
+ export { Switch } from "./Switch/Switch";
31
+ export { SwitchButton } from "./SwitchButton/SwitchButton";
32
+ export { TabButton } from "./TabButton/TabButton";
package/dist/index.js CHANGED
@@ -21,3 +21,12 @@ export { CalendarYearDay } from "./CalendarYearDay/CalendarYearDay";
21
21
  export { MultipleAvatar } from "./MultipleAvatar/MultipleAvatar";
22
22
  export { Profile } from "./Profile/Profile";
23
23
  export { ProfileSelector } from "./ProfileSelector/ProfileSelector";
24
+ export { ChatMessageLeft } from "./ChatMessageLeft/ChatMessageLeft";
25
+ export { ChatMessageRight } from "./ChatMessageRight/ChatMessageRight";
26
+ export { LabelCheckbox } from "./LabelCheckbox/LabelCheckbox";
27
+ export { Player } from "./Player/Player";
28
+ export { Radio } from "./Radio/Radio";
29
+ export { Strikethrough } from "./Strikethrough/Strikethrough";
30
+ export { Switch } from "./Switch/Switch";
31
+ export { SwitchButton } from "./SwitchButton/SwitchButton";
32
+ export { TabButton } from "./TabButton/TabButton";
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@ayseaistudio/ui-components",
3
- "version": "2.3.1",
3
+ "version": "3.0.0",
4
4
  "main": "dist/index.js",
5
5
  "module": "dist/index.js",
6
6
  "types": "dist/index.d.ts",