oneslash-design-system 1.2.11 → 1.2.13
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/.claude/settings.local.json +9 -0
- package/.eslintrc.json +3 -0
- package/components/alert.tsx +132 -0
- package/components/button.tsx +120 -0
- package/components/checkBox.tsx +60 -0
- package/components/emptyBox.tsx +33 -0
- package/components/iconButton.tsx +103 -0
- package/components/loadingScreen.tsx +30 -0
- package/components/menu.tsx +35 -0
- package/components/menuItem.tsx +117 -0
- package/components/modal.tsx +85 -0
- package/components/navigation.tsx +27 -0
- package/components/popover.tsx +69 -0
- package/components/radioGroup.tsx +50 -0
- package/components/select.tsx +253 -0
- package/components/tab.tsx +85 -0
- package/components/tableCell.tsx +15 -0
- package/components/tableContainer.tsx +15 -0
- package/components/tableHeader.tsx +15 -0
- package/components/tableHeaderCell.tsx +15 -0
- package/components/tableRow.tsx +15 -0
- package/components/tabsContainer.tsx +23 -0
- package/components/tag.tsx +81 -0
- package/components/textField.tsx +116 -0
- package/components/textarea.tsx +120 -0
- package/components/timeStamp.tsx +65 -0
- package/components/tooltip.tsx +66 -0
- package/components/userImage.tsx +64 -0
- package/designTokens.js +234 -0
- package/dist/components/loadingScreen.jsx +2 -2
- package/dist/components/menuItem.d.ts +2 -8
- package/dist/components/menuItem.jsx +14 -34
- package/dist/components/tag.d.ts +2 -1
- package/dist/components/tag.jsx +22 -22
- package/index.css +8 -0
- package/index.ts +21 -0
- package/next.config.mjs +4 -0
- package/package.json +4 -28
- package/postcss.config.mjs +8 -0
- package/tailwind.config.ts +232 -0
- package/tsconfig.json +37 -0
- package/dist/tsconfig.tsbuildinfo +0 -1
package/designTokens.js
ADDED
|
@@ -0,0 +1,234 @@
|
|
|
1
|
+
// design tokens definitions
|
|
2
|
+
module.exports = {
|
|
3
|
+
colors: {
|
|
4
|
+
// light
|
|
5
|
+
light:{
|
|
6
|
+
text:{
|
|
7
|
+
primary: '#000000',
|
|
8
|
+
secondary: '#6D6D6D',
|
|
9
|
+
disabled: '#9E9E9E',
|
|
10
|
+
contrast: '#ffffff',
|
|
11
|
+
},
|
|
12
|
+
accent:{
|
|
13
|
+
main: '#EEAE03',
|
|
14
|
+
dark: '#CE8602',
|
|
15
|
+
light: '#FFDD43',
|
|
16
|
+
contrast: '#000000',
|
|
17
|
+
},
|
|
18
|
+
primary:{
|
|
19
|
+
main: '#454545',
|
|
20
|
+
dark: '#262626',
|
|
21
|
+
light: '#888888',
|
|
22
|
+
},
|
|
23
|
+
secondary:{
|
|
24
|
+
main: '#B0B0B0',
|
|
25
|
+
dark: '#888888',
|
|
26
|
+
light: '#D1D1D1',
|
|
27
|
+
},
|
|
28
|
+
error:{
|
|
29
|
+
main: '#D32F2F',
|
|
30
|
+
dark: '#B22323',
|
|
31
|
+
light: '#F27777',
|
|
32
|
+
},
|
|
33
|
+
warning:{
|
|
34
|
+
main: '#EF6C00',
|
|
35
|
+
dark: '#CC5302',
|
|
36
|
+
light: '#FFA732',
|
|
37
|
+
},
|
|
38
|
+
info:{
|
|
39
|
+
main: '#0087D4',
|
|
40
|
+
dark: '#006BAB',
|
|
41
|
+
light: '#2CC1FF',
|
|
42
|
+
},
|
|
43
|
+
success:{
|
|
44
|
+
main: '#328736',
|
|
45
|
+
dark: '#2A6B2D',
|
|
46
|
+
light: '#67C16B',
|
|
47
|
+
},
|
|
48
|
+
background:{
|
|
49
|
+
default: '#e8e8e8',
|
|
50
|
+
accent100:'#f1f1f1',
|
|
51
|
+
accent200:'#f7f7f7',
|
|
52
|
+
accent300:'#FFFFFF',
|
|
53
|
+
},
|
|
54
|
+
action:{
|
|
55
|
+
active: '#888888',
|
|
56
|
+
hover: '#F3F3F3',
|
|
57
|
+
selected: '#E3E3E3',
|
|
58
|
+
disabledBackground: '#D1D1D1',
|
|
59
|
+
disabled: '#B0B0B0',
|
|
60
|
+
},
|
|
61
|
+
actionBackground:{
|
|
62
|
+
enabled: '#FFFFFF',
|
|
63
|
+
hovered: '#FFFFFF',
|
|
64
|
+
selected: '#FFFFFF',
|
|
65
|
+
disabled: '#EEEEEE',
|
|
66
|
+
},
|
|
67
|
+
actionOutlinedBorder:{
|
|
68
|
+
enabled: '#888888',
|
|
69
|
+
hovered: '#CDCDCD',
|
|
70
|
+
selected: '#E8E8E8',
|
|
71
|
+
disabled: '#B0B0B0',
|
|
72
|
+
},
|
|
73
|
+
misc:{
|
|
74
|
+
divider: '#D1D1D1',
|
|
75
|
+
},
|
|
76
|
+
},
|
|
77
|
+
|
|
78
|
+
// dark
|
|
79
|
+
dark:{
|
|
80
|
+
text:{
|
|
81
|
+
primary: '#eeeeee',
|
|
82
|
+
secondary: '#B0B0B0',
|
|
83
|
+
disabled: '#6D6D6D',
|
|
84
|
+
contrast: '#000000',
|
|
85
|
+
},
|
|
86
|
+
accent:{
|
|
87
|
+
main: '#FFCD29',
|
|
88
|
+
dark: '#CE8602',
|
|
89
|
+
light: '#FFDD43',
|
|
90
|
+
contrast: '#000000',
|
|
91
|
+
},
|
|
92
|
+
primary:{
|
|
93
|
+
main: '#D5D5D5',
|
|
94
|
+
dark: '#E9E9E9',
|
|
95
|
+
light: '#9A9A9A',
|
|
96
|
+
},
|
|
97
|
+
secondary:{
|
|
98
|
+
main: '#4F4F4F',
|
|
99
|
+
dark: '#454545',
|
|
100
|
+
light: '#6D6D6D',
|
|
101
|
+
},
|
|
102
|
+
error:{
|
|
103
|
+
main: '#E74C4C',
|
|
104
|
+
dark: '#B22323',
|
|
105
|
+
light: '#F27777',
|
|
106
|
+
},
|
|
107
|
+
warning:{
|
|
108
|
+
main: '#FF8C0A',
|
|
109
|
+
dark: '#CC5302',
|
|
110
|
+
light: '#FFA732',
|
|
111
|
+
},
|
|
112
|
+
info:{
|
|
113
|
+
main: '#00AFFF',
|
|
114
|
+
dark: '#006BAB',
|
|
115
|
+
light: '#2CC1FF',
|
|
116
|
+
},
|
|
117
|
+
success:{
|
|
118
|
+
main: '#42A547',
|
|
119
|
+
dark: '#2A6B2D',
|
|
120
|
+
light: '#67C16B',
|
|
121
|
+
},
|
|
122
|
+
background:{
|
|
123
|
+
default: '#262626',
|
|
124
|
+
accent100:'#333333',
|
|
125
|
+
accent200:'#454545',
|
|
126
|
+
accent300:'#4F4F4F',
|
|
127
|
+
},
|
|
128
|
+
action:{
|
|
129
|
+
active: '#171717',
|
|
130
|
+
hover: '#3D3D3D',
|
|
131
|
+
selected: '#4E4E4E',
|
|
132
|
+
disabledBackground: '#3C3C3C',
|
|
133
|
+
disabled: '#383838',
|
|
134
|
+
},
|
|
135
|
+
actionBackground:{
|
|
136
|
+
enabled: '#FFFFFF',
|
|
137
|
+
hovered: '#FFFFFF',
|
|
138
|
+
selected: '#FFFFFF',
|
|
139
|
+
disabled: '#383838',
|
|
140
|
+
},
|
|
141
|
+
actionOutlinedBorder:{
|
|
142
|
+
enabled: '#7B7B7B',
|
|
143
|
+
hovered: '#2F2F2F',
|
|
144
|
+
selected: '#404040',
|
|
145
|
+
disabled: '#383838',
|
|
146
|
+
},
|
|
147
|
+
misc:{
|
|
148
|
+
divider: '#404040',
|
|
149
|
+
},
|
|
150
|
+
},
|
|
151
|
+
},
|
|
152
|
+
|
|
153
|
+
spacing: {
|
|
154
|
+
small: '4px',
|
|
155
|
+
medium: '8px',
|
|
156
|
+
large: '16px',
|
|
157
|
+
},
|
|
158
|
+
|
|
159
|
+
typography: {
|
|
160
|
+
family: 'Inter, sans-serif',
|
|
161
|
+
h1: {
|
|
162
|
+
weight: '300',
|
|
163
|
+
size: '96px',
|
|
164
|
+
lineHeight: '120%',
|
|
165
|
+
letterSpacing: '-1.5px',
|
|
166
|
+
},
|
|
167
|
+
h2: {
|
|
168
|
+
weight: '300',
|
|
169
|
+
size: '60px',
|
|
170
|
+
lineHeight: '120%',
|
|
171
|
+
letterSpacing: '-0.5px',
|
|
172
|
+
},
|
|
173
|
+
h3: {
|
|
174
|
+
weight: '400',
|
|
175
|
+
size: '48px',
|
|
176
|
+
lineHeight: '120%',
|
|
177
|
+
letterSpacing: '0px',
|
|
178
|
+
},
|
|
179
|
+
h4: {
|
|
180
|
+
weight: '400',
|
|
181
|
+
size: '34px',
|
|
182
|
+
lineHeight: '120%',
|
|
183
|
+
letterSpacing: '0.3px',
|
|
184
|
+
},
|
|
185
|
+
h5: {
|
|
186
|
+
weight: '400',
|
|
187
|
+
size: '24px',
|
|
188
|
+
lineHeight: '120%',
|
|
189
|
+
letterSpacing: '0px',
|
|
190
|
+
},
|
|
191
|
+
h6: {
|
|
192
|
+
weight: '500',
|
|
193
|
+
size: '20px',
|
|
194
|
+
lineHeight: '150%',
|
|
195
|
+
letterSpacing: '0.2px',
|
|
196
|
+
},
|
|
197
|
+
subtitle1: {
|
|
198
|
+
weight: '500',
|
|
199
|
+
size: '16px',
|
|
200
|
+
lineHeight: '150%',
|
|
201
|
+
letterSpacing: '0.2px',
|
|
202
|
+
},
|
|
203
|
+
subtitle2: {
|
|
204
|
+
weight: '500',
|
|
205
|
+
size: '14px',
|
|
206
|
+
lineHeight: '150%',
|
|
207
|
+
letterSpacing: '0.1px',
|
|
208
|
+
},
|
|
209
|
+
body1: {
|
|
210
|
+
weight: '400',
|
|
211
|
+
size: '16px',
|
|
212
|
+
lineHeight: '150%',
|
|
213
|
+
letterSpacing: '0.2px',
|
|
214
|
+
},
|
|
215
|
+
body2: {
|
|
216
|
+
weight: '400',
|
|
217
|
+
size: '14px',
|
|
218
|
+
lineHeight: '150%',
|
|
219
|
+
letterSpacing: '0.2px',
|
|
220
|
+
},
|
|
221
|
+
caption: {
|
|
222
|
+
weight: '400',
|
|
223
|
+
size: '12px',
|
|
224
|
+
lineHeight: '150%',
|
|
225
|
+
letterSpacing: '0.5px',
|
|
226
|
+
},
|
|
227
|
+
alignments: {
|
|
228
|
+
left: 'left',
|
|
229
|
+
center: 'center',
|
|
230
|
+
right: 'right',
|
|
231
|
+
justify: 'justify',
|
|
232
|
+
},
|
|
233
|
+
},
|
|
234
|
+
};
|
|
@@ -2,7 +2,7 @@
|
|
|
2
2
|
import React from 'react';
|
|
3
3
|
export default function LoadingScreen() {
|
|
4
4
|
return (<div className="flex justify-center items-center h-full w-full min-h-[200px]">
|
|
5
|
-
<div className="w-12 h-12 border-4 border-t-transparent border-light-
|
|
5
|
+
<div className="w-12 h-12 border-4 border-t-transparent border-light-accent-main rounded-full animate-spin"></div>
|
|
6
6
|
</div>);
|
|
7
7
|
}
|
|
8
8
|
;
|
|
@@ -14,6 +14,6 @@ export function LoadingSmall(_a) {
|
|
|
14
14
|
small: 'w-5 h-5 border-2', // 20px, slightly thinner border
|
|
15
15
|
};
|
|
16
16
|
return (<div className="flex justify-center items-center">
|
|
17
|
-
<div className={"border-t-transparent border-light-
|
|
17
|
+
<div className={"border-t-transparent border-light-accent-main rounded-full animate-spin ".concat(spinnerSizeClasses[size])}/>
|
|
18
18
|
</div>);
|
|
19
19
|
}
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import
|
|
1
|
+
import { JSX } from 'react';
|
|
2
2
|
interface MenuItemProps {
|
|
3
3
|
href?: string;
|
|
4
4
|
iconName?: string;
|
|
@@ -8,12 +8,6 @@ interface MenuItemProps {
|
|
|
8
8
|
isSelected?: boolean;
|
|
9
9
|
onClick?: any;
|
|
10
10
|
className?: string;
|
|
11
|
-
size?: 'medium' | 'large';
|
|
12
|
-
tag?: {
|
|
13
|
-
label: React.ReactNode;
|
|
14
|
-
iconName?: string;
|
|
15
|
-
};
|
|
16
|
-
iconRight?: string;
|
|
17
11
|
}
|
|
18
|
-
export default function MenuItem({ href, iconName, userHandle, userImgUrl, label, isSelected, onClick, className,
|
|
12
|
+
export default function MenuItem({ href, iconName, userHandle, userImgUrl, label, isSelected, onClick, className, }: MenuItemProps): JSX.Element;
|
|
19
13
|
export {};
|
|
@@ -38,12 +38,10 @@ var __generator = (this && this.__generator) || function (thisArg, body) {
|
|
|
38
38
|
import React, { useState, useEffect, useCallback } from 'react';
|
|
39
39
|
import NextLink from 'next/link';
|
|
40
40
|
import UserImage from './userImage';
|
|
41
|
-
import Tag from './tag';
|
|
42
41
|
export default function MenuItem(_a) {
|
|
43
42
|
var _this = this;
|
|
44
|
-
var href = _a.href, iconName = _a.iconName, userHandle = _a.userHandle, userImgUrl = _a.userImgUrl, label = _a.label, isSelected = _a.isSelected, onClick = _a.onClick, _b = _a.className, className = _b === void 0 ? '' : _b
|
|
45
|
-
var
|
|
46
|
-
var _e = useState(null), IconRight = _e[0], setIconRight = _e[1];
|
|
43
|
+
var href = _a.href, iconName = _a.iconName, userHandle = _a.userHandle, userImgUrl = _a.userImgUrl, label = _a.label, isSelected = _a.isSelected, onClick = _a.onClick, _b = _a.className, className = _b === void 0 ? '' : _b;
|
|
44
|
+
var _c = useState(null), IconLeft = _c[0], setIconLeft = _c[1];
|
|
47
45
|
var loadIcon = useCallback(function (iconName) { return __awaiter(_this, void 0, void 0, function () {
|
|
48
46
|
var module_1, IconComponent, error_1;
|
|
49
47
|
return __generator(this, function (_a) {
|
|
@@ -69,47 +67,29 @@ export default function MenuItem(_a) {
|
|
|
69
67
|
}); }, []);
|
|
70
68
|
useEffect(function () {
|
|
71
69
|
var fetchIcon = function () { return __awaiter(_this, void 0, void 0, function () {
|
|
72
|
-
var _a
|
|
73
|
-
return __generator(this, function (
|
|
74
|
-
switch (
|
|
70
|
+
var _a;
|
|
71
|
+
return __generator(this, function (_b) {
|
|
72
|
+
switch (_b.label) {
|
|
75
73
|
case 0:
|
|
76
74
|
if (!iconName) return [3 /*break*/, 2];
|
|
77
75
|
_a = setIconLeft;
|
|
78
76
|
return [4 /*yield*/, loadIcon(iconName)];
|
|
79
77
|
case 1:
|
|
80
|
-
_a.apply(void 0, [
|
|
81
|
-
|
|
82
|
-
case 2:
|
|
83
|
-
if (!iconRight) return [3 /*break*/, 4];
|
|
84
|
-
_b = setIconRight;
|
|
85
|
-
return [4 /*yield*/, loadIcon(iconRight)];
|
|
86
|
-
case 3:
|
|
87
|
-
_b.apply(void 0, [_c.sent()]);
|
|
88
|
-
_c.label = 4;
|
|
89
|
-
case 4: return [2 /*return*/];
|
|
78
|
+
_a.apply(void 0, [_b.sent()]);
|
|
79
|
+
_b.label = 2;
|
|
80
|
+
case 2: return [2 /*return*/];
|
|
90
81
|
}
|
|
91
82
|
});
|
|
92
83
|
}); };
|
|
93
84
|
fetchIcon();
|
|
94
|
-
}, [iconName,
|
|
95
|
-
|
|
96
|
-
var iconSize = size === 'large' ? 'w-6 h-6' : 'w-5 h-5';
|
|
97
|
-
var labelClass = size === 'large' ? 'text-body1' : 'text-body2';
|
|
98
|
-
var tagSize = size === 'large' ? 'medium' : 'small';
|
|
99
|
-
var content = (<div className={"\n flex items-center p-2 rounded-[8px] cursor-pointer justify-between transition-colors duration-200 ease-in-out\n ".concat(isSelected
|
|
85
|
+
}, [iconName, loadIcon]);
|
|
86
|
+
var content = (<div className={"\n flex items-center space-x-2 p-2 rounded-[8px] cursor-pointer justify-start transition-colors duration-200 ease-in-out\n ".concat(isSelected
|
|
100
87
|
? 'bg-light-background-accent300 dark:bg-dark-background-accent300 hover:bg-light-background-accent200 dark:hover:bg-dark-background-accent200'
|
|
101
88
|
: 'hover:bg-light-background-accent200 hover:dark:bg-dark-background-accent200', "\n ").concat(className, "\n ")} style={{ width: '100%' }} onClick={onClick}>
|
|
102
|
-
{
|
|
103
|
-
<
|
|
104
|
-
{
|
|
105
|
-
|
|
106
|
-
{label}
|
|
107
|
-
</span>
|
|
108
|
-
{tag && (<Tag variant="contained" size={tagSize} label={tag.label} iconName={tag.iconName}/>)}
|
|
109
|
-
</div>
|
|
110
|
-
|
|
111
|
-
{/* Right icon aligned to the right */}
|
|
112
|
-
{IconRight && (<IconRight className={"".concat(iconSize, " text-light-text-secondary dark:text-dark-text-secondary flex-shrink-0")}/>)}
|
|
89
|
+
{userImgUrl ? (<UserImage userHandle={userHandle || ''} userImgUrl={userImgUrl}/>) : (IconLeft && (<IconLeft className="w-6 h-6 text-light-text-secondary dark:text-dark-text-secondary"/>))}
|
|
90
|
+
<span className="whitespace-nowrap text-body1 px-2 text-light-text-primary dark:text-dark-text-primary">
|
|
91
|
+
{label}
|
|
92
|
+
</span>
|
|
113
93
|
</div>);
|
|
114
94
|
return href ? <NextLink href={href}>{content}</NextLink> : content;
|
|
115
95
|
}
|
package/dist/components/tag.d.ts
CHANGED
|
@@ -7,6 +7,7 @@ interface TagProps {
|
|
|
7
7
|
label: React.ReactNode;
|
|
8
8
|
iconName?: keyof typeof HeroIcons;
|
|
9
9
|
onClick?: React.MouseEventHandler<HTMLDivElement>;
|
|
10
|
+
color?: 'default' | 'info';
|
|
10
11
|
}
|
|
11
|
-
export default function Tag({ variant, size, state, label, iconName, onClick, }: TagProps): JSX.Element;
|
|
12
|
+
export default function Tag({ variant, size, state, label, iconName, onClick, color, }: TagProps): JSX.Element;
|
|
12
13
|
export {};
|
package/dist/components/tag.jsx
CHANGED
|
@@ -2,9 +2,9 @@
|
|
|
2
2
|
import React, { useState, useEffect } from 'react';
|
|
3
3
|
import * as HeroIcons from '@heroicons/react/24/outline';
|
|
4
4
|
export default function Tag(_a) {
|
|
5
|
-
var variant = _a.variant, size = _a.size, _b = _a.state, state = _b === void 0 ? 'enabled' : _b, label = _a.label, iconName = _a.iconName, onClick = _a.onClick;
|
|
6
|
-
var
|
|
7
|
-
var
|
|
5
|
+
var variant = _a.variant, size = _a.size, _b = _a.state, state = _b === void 0 ? 'enabled' : _b, label = _a.label, iconName = _a.iconName, onClick = _a.onClick, _c = _a.color, color = _c === void 0 ? 'default' : _c;
|
|
6
|
+
var _d = useState(false), isHovered = _d[0], setIsHovered = _d[1];
|
|
7
|
+
var _e = useState(null), Icon = _e[0], setIcon = _e[1];
|
|
8
8
|
// Load icon directly from HeroIcons
|
|
9
9
|
useEffect(function () {
|
|
10
10
|
if (iconName) {
|
|
@@ -13,30 +13,30 @@ export default function Tag(_a) {
|
|
|
13
13
|
}, [iconName]);
|
|
14
14
|
// Size and padding
|
|
15
15
|
var sizeClasses = size === 'medium' ? 'text-body2 px-2 py-1' : 'text-caption px-2 py-[3px]';
|
|
16
|
-
// Selected state styles
|
|
17
|
-
var isSelected = state === 'selected';
|
|
18
16
|
// Background color
|
|
19
|
-
var bgClasses =
|
|
20
|
-
?
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
17
|
+
var bgClasses = variant === 'contained'
|
|
18
|
+
? (color === 'info'
|
|
19
|
+
? 'bg-light-info-main dark:bg-dark-info-main'
|
|
20
|
+
: 'bg-light-background-accent300 dark:bg-dark-background-accent300')
|
|
21
|
+
: '';
|
|
24
22
|
// Font color
|
|
25
|
-
var fontClasses =
|
|
26
|
-
? '
|
|
23
|
+
var fontClasses = variant === 'textOnly'
|
|
24
|
+
? (color === 'info'
|
|
25
|
+
? 'text-light-info-main dark:text-dark-info-main'
|
|
26
|
+
: 'text-light-text-primary dark:text-dark-text-primary')
|
|
27
27
|
: 'text-light-text-primary dark:text-dark-text-primary';
|
|
28
|
-
// Border
|
|
29
|
-
var borderClasses =
|
|
30
|
-
? 'border border-light-
|
|
31
|
-
:
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
28
|
+
// Border for contained variant
|
|
29
|
+
var borderClasses = variant === 'contained'
|
|
30
|
+
? 'border border-light-misc-divider dark:border-dark-misc-divider'
|
|
31
|
+
: '';
|
|
32
|
+
// State and hover
|
|
33
|
+
var stateClasses = state === 'selected'
|
|
34
|
+
? 'bg-light-accent-main dark:bg-dark-accent-main text-white'
|
|
35
|
+
: 'cursor-pointer';
|
|
36
|
+
var hoverClasses = variant === 'contained' && isHovered
|
|
36
37
|
? 'bg-light-background-accent200 dark:bg-dark-background-accent200'
|
|
37
38
|
: '';
|
|
38
|
-
|
|
39
|
-
return (<div className={"\n flex items-center space-x-1 rounded-full\n ".concat(sizeClasses, " ").concat(bgClasses, " ").concat(fontClasses, " ").concat(borderClasses, " ").concat(hoverClasses, " ").concat(cursorClass, "\n transition-colors duration-200 ease-in-out\n ")} onMouseEnter={function () { return onClick && setIsHovered(true); }} onMouseLeave={function () { return onClick && setIsHovered(false); }} onClick={onClick}>
|
|
39
|
+
return (<div className={"\n flex items-center space-x-1 rounded-full \n ".concat(sizeClasses, " ").concat(bgClasses, " ").concat(fontClasses, " ").concat(borderClasses, " ").concat(stateClasses, " ").concat(hoverClasses, "\n transition-colors duration-200 ease-in-out\n ")} onMouseEnter={function () { return setIsHovered(true); }} onMouseLeave={function () { return setIsHovered(false); }} onClick={onClick}>
|
|
40
40
|
{Icon && <Icon className="w-4 h-4"/>}
|
|
41
41
|
<span>{label}</span>
|
|
42
42
|
</div>);
|
package/index.css
ADDED
package/index.ts
ADDED
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
import './index.css';
|
|
2
|
+
import './designTokens';
|
|
3
|
+
|
|
4
|
+
export * from './components/alert';
|
|
5
|
+
export * from './components/button';
|
|
6
|
+
export * from './components/checkBox';
|
|
7
|
+
export * from './components/emptyBox';
|
|
8
|
+
export * from './components/iconButton';
|
|
9
|
+
export * from './components/loadingScreen';
|
|
10
|
+
export * from './components/menu';
|
|
11
|
+
export * from './components/menuItem';
|
|
12
|
+
export * from './components/modal';
|
|
13
|
+
export * from './components/navigation';
|
|
14
|
+
export * from './components/popover';
|
|
15
|
+
export * from './components/select';
|
|
16
|
+
export * from './components/tab';
|
|
17
|
+
export * from './components/tag';
|
|
18
|
+
export * from './components/textField';
|
|
19
|
+
export * from './components/timeStamp'
|
|
20
|
+
export * from './components/tooltip';
|
|
21
|
+
export * from './components/userImage';
|
package/next.config.mjs
ADDED
package/package.json
CHANGED
|
@@ -1,46 +1,25 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "oneslash-design-system",
|
|
3
3
|
"description": "A design system for the Oneslash projects",
|
|
4
|
-
"version": "1.2.
|
|
4
|
+
"version": "1.2.13",
|
|
5
5
|
"private": false,
|
|
6
6
|
"main": "./dist/index.js",
|
|
7
7
|
"types": "./dist/index.d.ts",
|
|
8
|
-
"exports": {
|
|
9
|
-
".": {
|
|
10
|
-
"types": "./dist/index.d.ts",
|
|
11
|
-
"default": "./dist/index.js"
|
|
12
|
-
},
|
|
13
|
-
"./components/*": {
|
|
14
|
-
"types": "./dist/components/*.d.ts",
|
|
15
|
-
"default": "./dist/components/*.jsx"
|
|
16
|
-
},
|
|
17
|
-
"./designTokens": {
|
|
18
|
-
"types": "./dist/designTokens.d.ts",
|
|
19
|
-
"default": "./dist/designTokens.js"
|
|
20
|
-
},
|
|
21
|
-
"./styles": "./dist/output.css",
|
|
22
|
-
"./dist/*": "./dist/*"
|
|
23
|
-
},
|
|
24
|
-
"files": [
|
|
25
|
-
"dist"
|
|
26
|
-
],
|
|
27
8
|
"scripts": {
|
|
28
9
|
"dev": "next dev",
|
|
29
10
|
"build": "tsc && postcss index.css -o dist/output.css",
|
|
30
11
|
"build:css": "postcss index.css -o dist/output.css",
|
|
31
|
-
"watch": "tsc --watch",
|
|
32
12
|
"start": "next start",
|
|
33
13
|
"lint": "next lint"
|
|
34
14
|
},
|
|
35
15
|
"dependencies": {
|
|
36
16
|
"@heroicons/react": "^2.2.0",
|
|
37
17
|
"@popperjs/core": "^2.11.8",
|
|
18
|
+
"next": "14.2.13",
|
|
19
|
+
"react": "^18",
|
|
20
|
+
"react-dom": "^18",
|
|
38
21
|
"react-popper": "^2.3.0"
|
|
39
22
|
},
|
|
40
|
-
"peerDependencies": {
|
|
41
|
-
"react": "^18 || ^19",
|
|
42
|
-
"react-dom": "^18 || ^19"
|
|
43
|
-
},
|
|
44
23
|
"devDependencies": {
|
|
45
24
|
"@types/node": "20.16.10",
|
|
46
25
|
"@types/react": "18.3.10",
|
|
@@ -48,11 +27,8 @@
|
|
|
48
27
|
"autoprefixer": "^10.4.20",
|
|
49
28
|
"eslint": "^8",
|
|
50
29
|
"eslint-config-next": "14.2.13",
|
|
51
|
-
"next": "14.2.13",
|
|
52
30
|
"postcss": "^8",
|
|
53
31
|
"postcss-cli": "^11.0.0",
|
|
54
|
-
"react": "^18",
|
|
55
|
-
"react-dom": "^18",
|
|
56
32
|
"tailwind-scrollbar": "^3.1.0",
|
|
57
33
|
"tailwindcss": "^3.4.1",
|
|
58
34
|
"typescript": "5.6.2"
|