unicorn-design-system 1.0.0 → 1.0.1

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.
@@ -0,0 +1,119 @@
1
+ import React from 'react';
2
+
3
+ interface ButtonProps extends React.ButtonHTMLAttributes<HTMLButtonElement> {
4
+ variant?: 'primary' | 'secondary' | 'success' | 'danger';
5
+ size?: 'sm' | 'md' | 'lg';
6
+ }
7
+ declare const Button: React.ForwardRefExoticComponent<ButtonProps & React.RefAttributes<HTMLButtonElement>>;
8
+
9
+ interface CardProps extends React.HTMLAttributes<HTMLDivElement> {
10
+ variant?: 'default' | 'elevated' | 'flat';
11
+ padding?: 'sm' | 'md' | 'lg';
12
+ }
13
+ declare const Card: React.ForwardRefExoticComponent<CardProps & React.RefAttributes<HTMLDivElement>>;
14
+
15
+ interface BadgeProps extends React.HTMLAttributes<HTMLSpanElement> {
16
+ variant?: 'primary' | 'success' | 'warning' | 'danger';
17
+ }
18
+ declare const Badge: React.ForwardRefExoticComponent<BadgeProps & React.RefAttributes<HTMLSpanElement>>;
19
+
20
+ interface InputProps extends React.InputHTMLAttributes<HTMLInputElement> {
21
+ label?: string;
22
+ error?: string;
23
+ }
24
+ declare const Input: React.ForwardRefExoticComponent<InputProps & React.RefAttributes<HTMLInputElement>>;
25
+
26
+ interface ModalProps {
27
+ isOpen: boolean;
28
+ onClose: () => void;
29
+ title?: string;
30
+ children: React.ReactNode;
31
+ footer?: React.ReactNode;
32
+ }
33
+ declare const Modal: React.FC<ModalProps>;
34
+
35
+ interface AlertProps {
36
+ type?: 'info' | 'success' | 'warning' | 'error';
37
+ title?: string;
38
+ message: string;
39
+ closable?: boolean;
40
+ onClose?: () => void;
41
+ action?: React.ReactNode;
42
+ }
43
+ declare const Alert: React.FC<AlertProps>;
44
+
45
+ declare const colors: {
46
+ primary: {
47
+ 50: string;
48
+ 100: string;
49
+ 500: string;
50
+ 600: string;
51
+ 700: string;
52
+ };
53
+ success: {
54
+ 500: string;
55
+ 600: string;
56
+ 700: string;
57
+ };
58
+ warning: {
59
+ 500: string;
60
+ 600: string;
61
+ 700: string;
62
+ };
63
+ danger: {
64
+ 500: string;
65
+ 600: string;
66
+ 700: string;
67
+ };
68
+ gray: {
69
+ 50: string;
70
+ 100: string;
71
+ 200: string;
72
+ 500: string;
73
+ 900: string;
74
+ };
75
+ };
76
+
77
+ declare const typography: {
78
+ fontFamily: {
79
+ primary: string;
80
+ mono: string;
81
+ };
82
+ fontSize: {
83
+ xs: string;
84
+ sm: string;
85
+ base: string;
86
+ lg: string;
87
+ xl: string;
88
+ '2xl': string;
89
+ '3xl': string;
90
+ };
91
+ fontWeight: {
92
+ regular: number;
93
+ medium: number;
94
+ semibold: number;
95
+ bold: number;
96
+ };
97
+ };
98
+
99
+ declare const spacing: {
100
+ xs: string;
101
+ sm: string;
102
+ md: string;
103
+ lg: string;
104
+ xl: string;
105
+ '2xl': string;
106
+ };
107
+ declare const borderRadius: {
108
+ sm: string;
109
+ md: string;
110
+ lg: string;
111
+ xl: string;
112
+ };
113
+ declare const shadows: {
114
+ sm: string;
115
+ md: string;
116
+ lg: string;
117
+ };
118
+
119
+ export { Alert, type AlertProps, Badge, type BadgeProps, Button, type ButtonProps, Card, type CardProps, Input, type InputProps, Modal, type ModalProps, borderRadius, colors, shadows, spacing, typography };
package/dist/index.d.ts CHANGED
@@ -1,15 +1,119 @@
1
- export { Button } from './components/Button';
2
- export type { ButtonProps } from './components/Button';
3
- export { Card } from './components/Card';
4
- export type { CardProps } from './components/Card';
5
- export { Badge } from './components/Badge';
6
- export type { BadgeProps } from './components/Badge';
7
- export { Input } from './components/Input';
8
- export type { InputProps } from './components/Input';
9
- export { Modal } from './components/Modal';
10
- export type { ModalProps } from './components/Modal';
11
- export { Alert } from './components/Alert';
12
- export type { AlertProps } from './components/Alert';
13
- export { colors } from './tokens/colors';
14
- export { typography } from './tokens/typography';
15
- export { spacing, borderRadius, shadows } from './tokens/spacing';
1
+ import React from 'react';
2
+
3
+ interface ButtonProps extends React.ButtonHTMLAttributes<HTMLButtonElement> {
4
+ variant?: 'primary' | 'secondary' | 'success' | 'danger';
5
+ size?: 'sm' | 'md' | 'lg';
6
+ }
7
+ declare const Button: React.ForwardRefExoticComponent<ButtonProps & React.RefAttributes<HTMLButtonElement>>;
8
+
9
+ interface CardProps extends React.HTMLAttributes<HTMLDivElement> {
10
+ variant?: 'default' | 'elevated' | 'flat';
11
+ padding?: 'sm' | 'md' | 'lg';
12
+ }
13
+ declare const Card: React.ForwardRefExoticComponent<CardProps & React.RefAttributes<HTMLDivElement>>;
14
+
15
+ interface BadgeProps extends React.HTMLAttributes<HTMLSpanElement> {
16
+ variant?: 'primary' | 'success' | 'warning' | 'danger';
17
+ }
18
+ declare const Badge: React.ForwardRefExoticComponent<BadgeProps & React.RefAttributes<HTMLSpanElement>>;
19
+
20
+ interface InputProps extends React.InputHTMLAttributes<HTMLInputElement> {
21
+ label?: string;
22
+ error?: string;
23
+ }
24
+ declare const Input: React.ForwardRefExoticComponent<InputProps & React.RefAttributes<HTMLInputElement>>;
25
+
26
+ interface ModalProps {
27
+ isOpen: boolean;
28
+ onClose: () => void;
29
+ title?: string;
30
+ children: React.ReactNode;
31
+ footer?: React.ReactNode;
32
+ }
33
+ declare const Modal: React.FC<ModalProps>;
34
+
35
+ interface AlertProps {
36
+ type?: 'info' | 'success' | 'warning' | 'error';
37
+ title?: string;
38
+ message: string;
39
+ closable?: boolean;
40
+ onClose?: () => void;
41
+ action?: React.ReactNode;
42
+ }
43
+ declare const Alert: React.FC<AlertProps>;
44
+
45
+ declare const colors: {
46
+ primary: {
47
+ 50: string;
48
+ 100: string;
49
+ 500: string;
50
+ 600: string;
51
+ 700: string;
52
+ };
53
+ success: {
54
+ 500: string;
55
+ 600: string;
56
+ 700: string;
57
+ };
58
+ warning: {
59
+ 500: string;
60
+ 600: string;
61
+ 700: string;
62
+ };
63
+ danger: {
64
+ 500: string;
65
+ 600: string;
66
+ 700: string;
67
+ };
68
+ gray: {
69
+ 50: string;
70
+ 100: string;
71
+ 200: string;
72
+ 500: string;
73
+ 900: string;
74
+ };
75
+ };
76
+
77
+ declare const typography: {
78
+ fontFamily: {
79
+ primary: string;
80
+ mono: string;
81
+ };
82
+ fontSize: {
83
+ xs: string;
84
+ sm: string;
85
+ base: string;
86
+ lg: string;
87
+ xl: string;
88
+ '2xl': string;
89
+ '3xl': string;
90
+ };
91
+ fontWeight: {
92
+ regular: number;
93
+ medium: number;
94
+ semibold: number;
95
+ bold: number;
96
+ };
97
+ };
98
+
99
+ declare const spacing: {
100
+ xs: string;
101
+ sm: string;
102
+ md: string;
103
+ lg: string;
104
+ xl: string;
105
+ '2xl': string;
106
+ };
107
+ declare const borderRadius: {
108
+ sm: string;
109
+ md: string;
110
+ lg: string;
111
+ xl: string;
112
+ };
113
+ declare const shadows: {
114
+ sm: string;
115
+ md: string;
116
+ lg: string;
117
+ };
118
+
119
+ export { Alert, type AlertProps, Badge, type BadgeProps, Button, type ButtonProps, Card, type CardProps, Input, type InputProps, Modal, type ModalProps, borderRadius, colors, shadows, spacing, typography };
package/dist/index.js CHANGED
@@ -1,11 +1,366 @@
1
- // Export all components
2
- export { Button } from './components/Button';
3
- export { Card } from './components/Card';
4
- export { Badge } from './components/Badge';
5
- export { Input } from './components/Input';
6
- export { Modal } from './components/Modal';
7
- export { Alert } from './components/Alert';
8
- // Export all tokens
9
- export { colors } from './tokens/colors';
10
- export { typography } from './tokens/typography';
11
- export { spacing, borderRadius, shadows } from './tokens/spacing';
1
+ "use strict";
2
+ var __create = Object.create;
3
+ var __defProp = Object.defineProperty;
4
+ var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
5
+ var __getOwnPropNames = Object.getOwnPropertyNames;
6
+ var __getProtoOf = Object.getPrototypeOf;
7
+ var __hasOwnProp = Object.prototype.hasOwnProperty;
8
+ var __export = (target, all) => {
9
+ for (var name in all)
10
+ __defProp(target, name, { get: all[name], enumerable: true });
11
+ };
12
+ var __copyProps = (to, from, except, desc) => {
13
+ if (from && typeof from === "object" || typeof from === "function") {
14
+ for (let key of __getOwnPropNames(from))
15
+ if (!__hasOwnProp.call(to, key) && key !== except)
16
+ __defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });
17
+ }
18
+ return to;
19
+ };
20
+ var __toESM = (mod, isNodeMode, target) => (target = mod != null ? __create(__getProtoOf(mod)) : {}, __copyProps(
21
+ // If the importer is in node compatibility mode or this is not an ESM
22
+ // file that has been converted to a CommonJS file using a Babel-
23
+ // compatible transform (i.e. "__esModule" has not been set), then set
24
+ // "default" to the CommonJS "module.exports" for node compatibility.
25
+ isNodeMode || !mod || !mod.__esModule ? __defProp(target, "default", { value: mod, enumerable: true }) : target,
26
+ mod
27
+ ));
28
+ var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
29
+
30
+ // src/index.ts
31
+ var index_exports = {};
32
+ __export(index_exports, {
33
+ Alert: () => Alert,
34
+ Badge: () => Badge,
35
+ Button: () => Button,
36
+ Card: () => Card,
37
+ Input: () => Input,
38
+ Modal: () => Modal,
39
+ borderRadius: () => borderRadius,
40
+ colors: () => colors,
41
+ shadows: () => shadows,
42
+ spacing: () => spacing,
43
+ typography: () => typography
44
+ });
45
+ module.exports = __toCommonJS(index_exports);
46
+
47
+ // src/components/Button.tsx
48
+ var import_react = __toESM(require("react"));
49
+ var import_jsx_runtime = require("react/jsx-runtime");
50
+ var Button = import_react.default.forwardRef(
51
+ ({ variant = "primary", size = "md", className, children, ...props }, ref) => {
52
+ const variants = {
53
+ primary: "bg-blue-600 text-white hover:bg-blue-700",
54
+ secondary: "bg-gray-200 text-gray-900 hover:bg-gray-300",
55
+ success: "bg-emerald-600 text-white hover:bg-emerald-700",
56
+ danger: "bg-red-600 text-white hover:bg-red-700"
57
+ };
58
+ const sizes = {
59
+ sm: "px-3 py-1.5 text-sm",
60
+ md: "px-4 py-2 text-base",
61
+ lg: "px-6 py-3 text-lg"
62
+ };
63
+ return /* @__PURE__ */ (0, import_jsx_runtime.jsx)(
64
+ "button",
65
+ {
66
+ ref,
67
+ className: `
68
+ rounded-lg font-semibold transition-colors
69
+ ${variants[variant]}
70
+ ${sizes[size]}
71
+ ${className || ""}
72
+ `,
73
+ ...props,
74
+ children
75
+ }
76
+ );
77
+ }
78
+ );
79
+ Button.displayName = "Button";
80
+
81
+ // src/components/Card.tsx
82
+ var import_react2 = __toESM(require("react"));
83
+ var import_jsx_runtime2 = require("react/jsx-runtime");
84
+ var Card = import_react2.default.forwardRef(
85
+ ({ variant = "default", padding = "lg", className, children, ...props }, ref) => {
86
+ const variants = {
87
+ default: "bg-white border border-gray-200 shadow-sm",
88
+ elevated: "bg-white shadow-lg",
89
+ flat: "bg-gray-50 border border-gray-100"
90
+ };
91
+ const paddings = {
92
+ sm: "p-2",
93
+ md: "p-4",
94
+ lg: "p-6"
95
+ };
96
+ return /* @__PURE__ */ (0, import_jsx_runtime2.jsx)(
97
+ "div",
98
+ {
99
+ ref,
100
+ className: `
101
+ rounded-lg transition-all
102
+ ${variants[variant]}
103
+ ${paddings[padding]}
104
+ ${className || ""}
105
+ `,
106
+ ...props,
107
+ children
108
+ }
109
+ );
110
+ }
111
+ );
112
+ Card.displayName = "Card";
113
+
114
+ // src/components/Badge.tsx
115
+ var import_react3 = __toESM(require("react"));
116
+ var import_jsx_runtime3 = require("react/jsx-runtime");
117
+ var Badge = import_react3.default.forwardRef(
118
+ ({ variant = "primary", className, children, ...props }, ref) => {
119
+ const variants = {
120
+ primary: "bg-blue-100 text-blue-800",
121
+ success: "bg-emerald-100 text-emerald-800",
122
+ warning: "bg-amber-100 text-amber-800",
123
+ danger: "bg-red-100 text-red-800"
124
+ };
125
+ return /* @__PURE__ */ (0, import_jsx_runtime3.jsx)(
126
+ "span",
127
+ {
128
+ ref,
129
+ className: `
130
+ inline-flex px-3 py-1.5 rounded-full text-sm font-semibold
131
+ ${variants[variant]}
132
+ ${className || ""}
133
+ `,
134
+ ...props,
135
+ children
136
+ }
137
+ );
138
+ }
139
+ );
140
+ Badge.displayName = "Badge";
141
+
142
+ // src/components/Input.tsx
143
+ var import_react4 = __toESM(require("react"));
144
+ var import_jsx_runtime4 = require("react/jsx-runtime");
145
+ var Input = import_react4.default.forwardRef(
146
+ ({ label, error, className, ...props }, ref) => {
147
+ return /* @__PURE__ */ (0, import_jsx_runtime4.jsxs)("div", { className: "w-full", children: [
148
+ label && /* @__PURE__ */ (0, import_jsx_runtime4.jsx)("label", { className: "block text-sm font-semibold mb-2", children: label }),
149
+ /* @__PURE__ */ (0, import_jsx_runtime4.jsx)(
150
+ "input",
151
+ {
152
+ ref,
153
+ className: `
154
+ w-full px-4 py-2 border rounded-lg
155
+ focus:outline-none focus:ring-2 focus:ring-blue-500
156
+ ${error ? "border-red-500" : "border-gray-300"}
157
+ ${className || ""}
158
+ `,
159
+ ...props
160
+ }
161
+ ),
162
+ error && /* @__PURE__ */ (0, import_jsx_runtime4.jsx)("p", { className: "text-sm text-red-600 mt-1", children: error })
163
+ ] });
164
+ }
165
+ );
166
+ Input.displayName = "Input";
167
+
168
+ // src/components/Modal.tsx
169
+ var import_jsx_runtime5 = require("react/jsx-runtime");
170
+ var Modal = ({
171
+ isOpen,
172
+ onClose,
173
+ title,
174
+ children,
175
+ footer
176
+ }) => {
177
+ if (!isOpen) return null;
178
+ return /* @__PURE__ */ (0, import_jsx_runtime5.jsxs)(import_jsx_runtime5.Fragment, { children: [
179
+ /* @__PURE__ */ (0, import_jsx_runtime5.jsx)("div", { className: "fixed inset-0 bg-black bg-opacity-50 z-40", onClick: onClose }),
180
+ /* @__PURE__ */ (0, import_jsx_runtime5.jsx)("div", { className: "fixed inset-0 z-50 flex items-center justify-center", children: /* @__PURE__ */ (0, import_jsx_runtime5.jsxs)("div", { className: "bg-white rounded-lg shadow-2xl max-w-md w-full mx-4", children: [
181
+ title && /* @__PURE__ */ (0, import_jsx_runtime5.jsx)("div", { className: "p-6 border-b border-gray-200", children: /* @__PURE__ */ (0, import_jsx_runtime5.jsx)("h2", { className: "text-xl font-bold", children: title }) }),
182
+ /* @__PURE__ */ (0, import_jsx_runtime5.jsx)("div", { className: "p-6", children }),
183
+ footer && /* @__PURE__ */ (0, import_jsx_runtime5.jsx)("div", { className: "p-6 border-t border-gray-200 bg-gray-50", children: footer })
184
+ ] }) })
185
+ ] });
186
+ };
187
+
188
+ // src/components/Alert.tsx
189
+ var import_jsx_runtime6 = require("react/jsx-runtime");
190
+ var Alert = ({
191
+ type = "info",
192
+ title,
193
+ message,
194
+ closable,
195
+ onClose,
196
+ action
197
+ }) => {
198
+ const typeStyles = {
199
+ info: {
200
+ container: "bg-primary-50 border-primary-100",
201
+ icon: "text-primary-600"
202
+ },
203
+ success: {
204
+ container: "bg-emerald-50 border-emerald-500",
205
+ icon: "text-emerald-600"
206
+ },
207
+ warning: {
208
+ container: "bg-amber-50 border-amber-500",
209
+ icon: "text-amber-600"
210
+ },
211
+ error: {
212
+ container: "bg-red-50 border-red-500",
213
+ icon: "text-red-600"
214
+ }
215
+ };
216
+ const currentStyle = typeStyles[type];
217
+ return /* @__PURE__ */ (0, import_jsx_runtime6.jsxs)(
218
+ "div",
219
+ {
220
+ className: `flex w-full max-w-[480px] p-[12px] gap-3 rounded-[4px] border border-l-4 ${currentStyle.container} ${type === "info" ? "border-l-primary-100" : ""}`,
221
+ style: type === "info" ? {
222
+ border: "1px solid #D4E5FF",
223
+ // Explicitly matching the CSS provided for info
224
+ background: "#ECF4FF"
225
+ } : {},
226
+ children: [
227
+ /* @__PURE__ */ (0, import_jsx_runtime6.jsxs)("div", { className: "shrink-0 pt-0.5", children: [
228
+ type === "info" && /* @__PURE__ */ (0, import_jsx_runtime6.jsx)(
229
+ "svg",
230
+ {
231
+ xmlns: "http://www.w3.org/2000/svg",
232
+ viewBox: "0 0 24 24",
233
+ fill: "currentColor",
234
+ className: `w-5 h-5 ${currentStyle.icon}`,
235
+ children: /* @__PURE__ */ (0, import_jsx_runtime6.jsx)(
236
+ "path",
237
+ {
238
+ fillRule: "evenodd",
239
+ d: "M2.25 12c0-5.385 4.365-9.75 9.75-9.75s9.75 4.365 9.75 9.75-4.365 9.75-9.75 9.75S2.25 17.385 2.25 12ZM12 8.25a.75.75 0 0 1 .75.75v3.75a.75.75 0 0 1-1.5 0V9a.75.75 0 0 1 .75-.75Zm0 8.25a.75.75 0 1 0 0-1.5.75.75 0 0 0 0 1.5Z",
240
+ clipRule: "evenodd"
241
+ }
242
+ )
243
+ }
244
+ ),
245
+ type !== "info" && /* @__PURE__ */ (0, import_jsx_runtime6.jsx)("span", { className: "text-xl", children: "\u2139\uFE0F" })
246
+ ] }),
247
+ /* @__PURE__ */ (0, import_jsx_runtime6.jsxs)("div", { className: "flex flex-col gap-[10px] w-full", children: [
248
+ /* @__PURE__ */ (0, import_jsx_runtime6.jsxs)("div", { className: "flex justify-between items-start gap-2", children: [
249
+ title && /* @__PURE__ */ (0, import_jsx_runtime6.jsx)("h3", { className: "text-base font-bold text-gray-900 leading-tight", children: title }),
250
+ closable && /* @__PURE__ */ (0, import_jsx_runtime6.jsx)(
251
+ "button",
252
+ {
253
+ onClick: onClose,
254
+ className: "text-gray-400 hover:text-gray-600 transition-colors p-0.5 rounded focus:outline-none focus:ring-2 focus:ring-primary-500",
255
+ "aria-label": "Close alert",
256
+ children: /* @__PURE__ */ (0, import_jsx_runtime6.jsx)(
257
+ "svg",
258
+ {
259
+ xmlns: "http://www.w3.org/2000/svg",
260
+ viewBox: "0 0 20 20",
261
+ fill: "currentColor",
262
+ className: "w-5 h-5",
263
+ children: /* @__PURE__ */ (0, import_jsx_runtime6.jsx)("path", { d: "M6.28 5.22a.75.75 0 0 0-1.06 1.06L8.94 10l-3.72 3.72a.75.75 0 1 0 1.06 1.06L10 11.06l3.72 3.72a.75.75 0 1 0 1.06-1.06L11.06 10l3.72-3.72a.75.75 0 0 0-1.06-1.06L10 8.94 6.28 5.22Z" })
264
+ }
265
+ )
266
+ }
267
+ )
268
+ ] }),
269
+ /* @__PURE__ */ (0, import_jsx_runtime6.jsx)("p", { className: "text-sm text-gray-600 leading-normal", children: message }),
270
+ action && /* @__PURE__ */ (0, import_jsx_runtime6.jsx)("div", { children: action })
271
+ ] })
272
+ ]
273
+ }
274
+ );
275
+ };
276
+
277
+ // src/tokens/colors.ts
278
+ var colors = {
279
+ primary: {
280
+ 50: "#ECF4FF",
281
+ 100: "#D4E5FF",
282
+ 500: "#2A6ECC",
283
+ 600: "#235ABD",
284
+ 700: "#1C45AE"
285
+ },
286
+ success: {
287
+ 500: "#00995A",
288
+ 600: "#007A4A",
289
+ 700: "#005C3A"
290
+ },
291
+ warning: {
292
+ 500: "#F9B02A",
293
+ 600: "#E8A100",
294
+ 700: "#D69200"
295
+ },
296
+ danger: {
297
+ 500: "#FA5858",
298
+ 600: "#E84545",
299
+ 700: "#D63232"
300
+ },
301
+ gray: {
302
+ 50: "#F9FAFB",
303
+ 100: "#F3F4F6",
304
+ 200: "#E5E7EB",
305
+ 500: "#6B7280",
306
+ 900: "#111827"
307
+ }
308
+ };
309
+
310
+ // src/tokens/typography.ts
311
+ var typography = {
312
+ fontFamily: {
313
+ primary: "Poppins, -apple-system, BlinkMacSystemFont, sans-serif",
314
+ mono: '"Roboto Mono", monospace'
315
+ },
316
+ fontSize: {
317
+ xs: "10px",
318
+ sm: "12px",
319
+ base: "14px",
320
+ lg: "16px",
321
+ xl: "18px",
322
+ "2xl": "20px",
323
+ "3xl": "24px"
324
+ },
325
+ fontWeight: {
326
+ regular: 400,
327
+ medium: 500,
328
+ semibold: 600,
329
+ bold: 700
330
+ }
331
+ };
332
+
333
+ // src/tokens/spacing.ts
334
+ var spacing = {
335
+ xs: "4px",
336
+ sm: "8px",
337
+ md: "12px",
338
+ lg: "16px",
339
+ xl: "24px",
340
+ "2xl": "32px"
341
+ };
342
+ var borderRadius = {
343
+ sm: "4px",
344
+ md: "6px",
345
+ lg: "8px",
346
+ xl: "12px"
347
+ };
348
+ var shadows = {
349
+ sm: "0 1px 2px 0 rgba(0, 0, 0, 0.05)",
350
+ md: "0 4px 6px -1px rgba(0, 0, 0, 0.1)",
351
+ lg: "0 10px 15px -3px rgba(0, 0, 0, 0.1)"
352
+ };
353
+ // Annotate the CommonJS export names for ESM import in node:
354
+ 0 && (module.exports = {
355
+ Alert,
356
+ Badge,
357
+ Button,
358
+ Card,
359
+ Input,
360
+ Modal,
361
+ borderRadius,
362
+ colors,
363
+ shadows,
364
+ spacing,
365
+ typography
366
+ });
package/dist/index.mjs ADDED
@@ -0,0 +1,319 @@
1
+ // src/components/Button.tsx
2
+ import React from "react";
3
+ import { jsx } from "react/jsx-runtime";
4
+ var Button = React.forwardRef(
5
+ ({ variant = "primary", size = "md", className, children, ...props }, ref) => {
6
+ const variants = {
7
+ primary: "bg-blue-600 text-white hover:bg-blue-700",
8
+ secondary: "bg-gray-200 text-gray-900 hover:bg-gray-300",
9
+ success: "bg-emerald-600 text-white hover:bg-emerald-700",
10
+ danger: "bg-red-600 text-white hover:bg-red-700"
11
+ };
12
+ const sizes = {
13
+ sm: "px-3 py-1.5 text-sm",
14
+ md: "px-4 py-2 text-base",
15
+ lg: "px-6 py-3 text-lg"
16
+ };
17
+ return /* @__PURE__ */ jsx(
18
+ "button",
19
+ {
20
+ ref,
21
+ className: `
22
+ rounded-lg font-semibold transition-colors
23
+ ${variants[variant]}
24
+ ${sizes[size]}
25
+ ${className || ""}
26
+ `,
27
+ ...props,
28
+ children
29
+ }
30
+ );
31
+ }
32
+ );
33
+ Button.displayName = "Button";
34
+
35
+ // src/components/Card.tsx
36
+ import React2 from "react";
37
+ import { jsx as jsx2 } from "react/jsx-runtime";
38
+ var Card = React2.forwardRef(
39
+ ({ variant = "default", padding = "lg", className, children, ...props }, ref) => {
40
+ const variants = {
41
+ default: "bg-white border border-gray-200 shadow-sm",
42
+ elevated: "bg-white shadow-lg",
43
+ flat: "bg-gray-50 border border-gray-100"
44
+ };
45
+ const paddings = {
46
+ sm: "p-2",
47
+ md: "p-4",
48
+ lg: "p-6"
49
+ };
50
+ return /* @__PURE__ */ jsx2(
51
+ "div",
52
+ {
53
+ ref,
54
+ className: `
55
+ rounded-lg transition-all
56
+ ${variants[variant]}
57
+ ${paddings[padding]}
58
+ ${className || ""}
59
+ `,
60
+ ...props,
61
+ children
62
+ }
63
+ );
64
+ }
65
+ );
66
+ Card.displayName = "Card";
67
+
68
+ // src/components/Badge.tsx
69
+ import React3 from "react";
70
+ import { jsx as jsx3 } from "react/jsx-runtime";
71
+ var Badge = React3.forwardRef(
72
+ ({ variant = "primary", className, children, ...props }, ref) => {
73
+ const variants = {
74
+ primary: "bg-blue-100 text-blue-800",
75
+ success: "bg-emerald-100 text-emerald-800",
76
+ warning: "bg-amber-100 text-amber-800",
77
+ danger: "bg-red-100 text-red-800"
78
+ };
79
+ return /* @__PURE__ */ jsx3(
80
+ "span",
81
+ {
82
+ ref,
83
+ className: `
84
+ inline-flex px-3 py-1.5 rounded-full text-sm font-semibold
85
+ ${variants[variant]}
86
+ ${className || ""}
87
+ `,
88
+ ...props,
89
+ children
90
+ }
91
+ );
92
+ }
93
+ );
94
+ Badge.displayName = "Badge";
95
+
96
+ // src/components/Input.tsx
97
+ import React4 from "react";
98
+ import { jsx as jsx4, jsxs } from "react/jsx-runtime";
99
+ var Input = React4.forwardRef(
100
+ ({ label, error, className, ...props }, ref) => {
101
+ return /* @__PURE__ */ jsxs("div", { className: "w-full", children: [
102
+ label && /* @__PURE__ */ jsx4("label", { className: "block text-sm font-semibold mb-2", children: label }),
103
+ /* @__PURE__ */ jsx4(
104
+ "input",
105
+ {
106
+ ref,
107
+ className: `
108
+ w-full px-4 py-2 border rounded-lg
109
+ focus:outline-none focus:ring-2 focus:ring-blue-500
110
+ ${error ? "border-red-500" : "border-gray-300"}
111
+ ${className || ""}
112
+ `,
113
+ ...props
114
+ }
115
+ ),
116
+ error && /* @__PURE__ */ jsx4("p", { className: "text-sm text-red-600 mt-1", children: error })
117
+ ] });
118
+ }
119
+ );
120
+ Input.displayName = "Input";
121
+
122
+ // src/components/Modal.tsx
123
+ import { Fragment, jsx as jsx5, jsxs as jsxs2 } from "react/jsx-runtime";
124
+ var Modal = ({
125
+ isOpen,
126
+ onClose,
127
+ title,
128
+ children,
129
+ footer
130
+ }) => {
131
+ if (!isOpen) return null;
132
+ return /* @__PURE__ */ jsxs2(Fragment, { children: [
133
+ /* @__PURE__ */ jsx5("div", { className: "fixed inset-0 bg-black bg-opacity-50 z-40", onClick: onClose }),
134
+ /* @__PURE__ */ jsx5("div", { className: "fixed inset-0 z-50 flex items-center justify-center", children: /* @__PURE__ */ jsxs2("div", { className: "bg-white rounded-lg shadow-2xl max-w-md w-full mx-4", children: [
135
+ title && /* @__PURE__ */ jsx5("div", { className: "p-6 border-b border-gray-200", children: /* @__PURE__ */ jsx5("h2", { className: "text-xl font-bold", children: title }) }),
136
+ /* @__PURE__ */ jsx5("div", { className: "p-6", children }),
137
+ footer && /* @__PURE__ */ jsx5("div", { className: "p-6 border-t border-gray-200 bg-gray-50", children: footer })
138
+ ] }) })
139
+ ] });
140
+ };
141
+
142
+ // src/components/Alert.tsx
143
+ import { jsx as jsx6, jsxs as jsxs3 } from "react/jsx-runtime";
144
+ var Alert = ({
145
+ type = "info",
146
+ title,
147
+ message,
148
+ closable,
149
+ onClose,
150
+ action
151
+ }) => {
152
+ const typeStyles = {
153
+ info: {
154
+ container: "bg-primary-50 border-primary-100",
155
+ icon: "text-primary-600"
156
+ },
157
+ success: {
158
+ container: "bg-emerald-50 border-emerald-500",
159
+ icon: "text-emerald-600"
160
+ },
161
+ warning: {
162
+ container: "bg-amber-50 border-amber-500",
163
+ icon: "text-amber-600"
164
+ },
165
+ error: {
166
+ container: "bg-red-50 border-red-500",
167
+ icon: "text-red-600"
168
+ }
169
+ };
170
+ const currentStyle = typeStyles[type];
171
+ return /* @__PURE__ */ jsxs3(
172
+ "div",
173
+ {
174
+ className: `flex w-full max-w-[480px] p-[12px] gap-3 rounded-[4px] border border-l-4 ${currentStyle.container} ${type === "info" ? "border-l-primary-100" : ""}`,
175
+ style: type === "info" ? {
176
+ border: "1px solid #D4E5FF",
177
+ // Explicitly matching the CSS provided for info
178
+ background: "#ECF4FF"
179
+ } : {},
180
+ children: [
181
+ /* @__PURE__ */ jsxs3("div", { className: "shrink-0 pt-0.5", children: [
182
+ type === "info" && /* @__PURE__ */ jsx6(
183
+ "svg",
184
+ {
185
+ xmlns: "http://www.w3.org/2000/svg",
186
+ viewBox: "0 0 24 24",
187
+ fill: "currentColor",
188
+ className: `w-5 h-5 ${currentStyle.icon}`,
189
+ children: /* @__PURE__ */ jsx6(
190
+ "path",
191
+ {
192
+ fillRule: "evenodd",
193
+ d: "M2.25 12c0-5.385 4.365-9.75 9.75-9.75s9.75 4.365 9.75 9.75-4.365 9.75-9.75 9.75S2.25 17.385 2.25 12ZM12 8.25a.75.75 0 0 1 .75.75v3.75a.75.75 0 0 1-1.5 0V9a.75.75 0 0 1 .75-.75Zm0 8.25a.75.75 0 1 0 0-1.5.75.75 0 0 0 0 1.5Z",
194
+ clipRule: "evenodd"
195
+ }
196
+ )
197
+ }
198
+ ),
199
+ type !== "info" && /* @__PURE__ */ jsx6("span", { className: "text-xl", children: "\u2139\uFE0F" })
200
+ ] }),
201
+ /* @__PURE__ */ jsxs3("div", { className: "flex flex-col gap-[10px] w-full", children: [
202
+ /* @__PURE__ */ jsxs3("div", { className: "flex justify-between items-start gap-2", children: [
203
+ title && /* @__PURE__ */ jsx6("h3", { className: "text-base font-bold text-gray-900 leading-tight", children: title }),
204
+ closable && /* @__PURE__ */ jsx6(
205
+ "button",
206
+ {
207
+ onClick: onClose,
208
+ className: "text-gray-400 hover:text-gray-600 transition-colors p-0.5 rounded focus:outline-none focus:ring-2 focus:ring-primary-500",
209
+ "aria-label": "Close alert",
210
+ children: /* @__PURE__ */ jsx6(
211
+ "svg",
212
+ {
213
+ xmlns: "http://www.w3.org/2000/svg",
214
+ viewBox: "0 0 20 20",
215
+ fill: "currentColor",
216
+ className: "w-5 h-5",
217
+ children: /* @__PURE__ */ jsx6("path", { d: "M6.28 5.22a.75.75 0 0 0-1.06 1.06L8.94 10l-3.72 3.72a.75.75 0 1 0 1.06 1.06L10 11.06l3.72 3.72a.75.75 0 1 0 1.06-1.06L11.06 10l3.72-3.72a.75.75 0 0 0-1.06-1.06L10 8.94 6.28 5.22Z" })
218
+ }
219
+ )
220
+ }
221
+ )
222
+ ] }),
223
+ /* @__PURE__ */ jsx6("p", { className: "text-sm text-gray-600 leading-normal", children: message }),
224
+ action && /* @__PURE__ */ jsx6("div", { children: action })
225
+ ] })
226
+ ]
227
+ }
228
+ );
229
+ };
230
+
231
+ // src/tokens/colors.ts
232
+ var colors = {
233
+ primary: {
234
+ 50: "#ECF4FF",
235
+ 100: "#D4E5FF",
236
+ 500: "#2A6ECC",
237
+ 600: "#235ABD",
238
+ 700: "#1C45AE"
239
+ },
240
+ success: {
241
+ 500: "#00995A",
242
+ 600: "#007A4A",
243
+ 700: "#005C3A"
244
+ },
245
+ warning: {
246
+ 500: "#F9B02A",
247
+ 600: "#E8A100",
248
+ 700: "#D69200"
249
+ },
250
+ danger: {
251
+ 500: "#FA5858",
252
+ 600: "#E84545",
253
+ 700: "#D63232"
254
+ },
255
+ gray: {
256
+ 50: "#F9FAFB",
257
+ 100: "#F3F4F6",
258
+ 200: "#E5E7EB",
259
+ 500: "#6B7280",
260
+ 900: "#111827"
261
+ }
262
+ };
263
+
264
+ // src/tokens/typography.ts
265
+ var typography = {
266
+ fontFamily: {
267
+ primary: "Poppins, -apple-system, BlinkMacSystemFont, sans-serif",
268
+ mono: '"Roboto Mono", monospace'
269
+ },
270
+ fontSize: {
271
+ xs: "10px",
272
+ sm: "12px",
273
+ base: "14px",
274
+ lg: "16px",
275
+ xl: "18px",
276
+ "2xl": "20px",
277
+ "3xl": "24px"
278
+ },
279
+ fontWeight: {
280
+ regular: 400,
281
+ medium: 500,
282
+ semibold: 600,
283
+ bold: 700
284
+ }
285
+ };
286
+
287
+ // src/tokens/spacing.ts
288
+ var spacing = {
289
+ xs: "4px",
290
+ sm: "8px",
291
+ md: "12px",
292
+ lg: "16px",
293
+ xl: "24px",
294
+ "2xl": "32px"
295
+ };
296
+ var borderRadius = {
297
+ sm: "4px",
298
+ md: "6px",
299
+ lg: "8px",
300
+ xl: "12px"
301
+ };
302
+ var shadows = {
303
+ sm: "0 1px 2px 0 rgba(0, 0, 0, 0.05)",
304
+ md: "0 4px 6px -1px rgba(0, 0, 0, 0.1)",
305
+ lg: "0 10px 15px -3px rgba(0, 0, 0, 0.1)"
306
+ };
307
+ export {
308
+ Alert,
309
+ Badge,
310
+ Button,
311
+ Card,
312
+ Input,
313
+ Modal,
314
+ borderRadius,
315
+ colors,
316
+ shadows,
317
+ spacing,
318
+ typography
319
+ };
package/package.json CHANGED
@@ -1,14 +1,14 @@
1
1
  {
2
2
  "name": "unicorn-design-system",
3
- "version": "1.0.0",
3
+ "version": "1.0.1",
4
4
  "description": "🦄 Beautiful React components and design tokens",
5
5
  "main": "dist/index.js",
6
- "module": "dist/index.esm.js",
6
+ "module": "dist/index.mjs",
7
7
  "types": "dist/index.d.ts",
8
8
  "exports": {
9
9
  ".": {
10
10
  "types": "./dist/index.d.ts",
11
- "import": "./dist/index.esm.js",
11
+ "import": "./dist/index.mjs",
12
12
  "require": "./dist/index.js"
13
13
  },
14
14
  "./styles": "./dist/styles.css"
@@ -19,8 +19,8 @@
19
19
  "LICENSE"
20
20
  ],
21
21
  "scripts": {
22
- "build": "tsc",
23
- "dev": "tsc --watch"
22
+ "build": "tsup src/index.ts --format cjs,esm --dts --clean",
23
+ "dev": "tsup src/index.ts --format cjs,esm --dts --watch"
24
24
  },
25
25
  "keywords": [
26
26
  "react",
@@ -38,6 +38,7 @@
38
38
  "devDependencies": {
39
39
  "@types/react": "^18.2.0",
40
40
  "@types/react-dom": "^18.2.0",
41
+ "tsup": "^8.5.1",
41
42
  "typescript": "^5.3.0"
42
43
  }
43
44
  }
@@ -1,10 +0,0 @@
1
- import React from 'react';
2
- export interface AlertProps {
3
- type?: 'info' | 'success' | 'warning' | 'error';
4
- title?: string;
5
- message: string;
6
- closable?: boolean;
7
- onClose?: () => void;
8
- }
9
- export declare const Alert: React.FC<AlertProps>;
10
- export default Alert;
@@ -1,11 +0,0 @@
1
- import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
2
- export const Alert = ({ type = 'info', title, message, closable, onClose, }) => {
3
- const types = {
4
- info: 'bg-cyan-50 border-l-4 border-cyan-500 text-cyan-900',
5
- success: 'bg-emerald-50 border-l-4 border-emerald-500 text-emerald-900',
6
- warning: 'bg-amber-50 border-l-4 border-amber-500 text-amber-900',
7
- error: 'bg-red-50 border-l-4 border-red-500 text-red-900',
8
- };
9
- return (_jsxs("div", { className: `p-4 rounded-lg ${types[type]}`, children: [title && _jsx("h3", { className: "font-semibold mb-1", children: title }), _jsx("p", { className: "text-sm", children: message }), closable && (_jsx("button", { onClick: onClose, className: "ml-auto text-sm font-semibold hover:opacity-70", children: "\u2715" }))] }));
10
- };
11
- export default Alert;
@@ -1,6 +0,0 @@
1
- import React from 'react';
2
- export interface BadgeProps extends React.HTMLAttributes<HTMLSpanElement> {
3
- variant?: 'primary' | 'success' | 'warning' | 'danger';
4
- }
5
- export declare const Badge: React.ForwardRefExoticComponent<BadgeProps & React.RefAttributes<HTMLSpanElement>>;
6
- export default Badge;
@@ -1,17 +0,0 @@
1
- import { jsx as _jsx } from "react/jsx-runtime";
2
- import React from 'react';
3
- export const Badge = React.forwardRef(({ variant = 'primary', className, children, ...props }, ref) => {
4
- const variants = {
5
- primary: 'bg-blue-100 text-blue-800',
6
- success: 'bg-emerald-100 text-emerald-800',
7
- warning: 'bg-amber-100 text-amber-800',
8
- danger: 'bg-red-100 text-red-800',
9
- };
10
- return (_jsx("span", { ref: ref, className: `
11
- inline-flex px-3 py-1.5 rounded-full text-sm font-semibold
12
- ${variants[variant]}
13
- ${className || ''}
14
- `, ...props, children: children }));
15
- });
16
- Badge.displayName = 'Badge';
17
- export default Badge;
@@ -1,7 +0,0 @@
1
- import React from 'react';
2
- export interface ButtonProps extends React.ButtonHTMLAttributes<HTMLButtonElement> {
3
- variant?: 'primary' | 'secondary' | 'success' | 'danger';
4
- size?: 'sm' | 'md' | 'lg';
5
- }
6
- export declare const Button: React.ForwardRefExoticComponent<ButtonProps & React.RefAttributes<HTMLButtonElement>>;
7
- export default Button;
@@ -1,23 +0,0 @@
1
- import { jsx as _jsx } from "react/jsx-runtime";
2
- import React from 'react';
3
- export const Button = React.forwardRef(({ variant = 'primary', size = 'md', className, children, ...props }, ref) => {
4
- const variants = {
5
- primary: 'bg-blue-600 text-white hover:bg-blue-700',
6
- secondary: 'bg-gray-200 text-gray-900 hover:bg-gray-300',
7
- success: 'bg-emerald-600 text-white hover:bg-emerald-700',
8
- danger: 'bg-red-600 text-white hover:bg-red-700',
9
- };
10
- const sizes = {
11
- sm: 'px-3 py-1.5 text-sm',
12
- md: 'px-4 py-2 text-base',
13
- lg: 'px-6 py-3 text-lg',
14
- };
15
- return (_jsx("button", { ref: ref, className: `
16
- rounded-lg font-semibold transition-colors
17
- ${variants[variant]}
18
- ${sizes[size]}
19
- ${className || ''}
20
- `, ...props, children: children }));
21
- });
22
- Button.displayName = 'Button';
23
- export default Button;
@@ -1,7 +0,0 @@
1
- import React from 'react';
2
- export interface CardProps extends React.HTMLAttributes<HTMLDivElement> {
3
- variant?: 'default' | 'elevated' | 'flat';
4
- padding?: 'sm' | 'md' | 'lg';
5
- }
6
- export declare const Card: React.ForwardRefExoticComponent<CardProps & React.RefAttributes<HTMLDivElement>>;
7
- export default Card;
@@ -1,22 +0,0 @@
1
- import { jsx as _jsx } from "react/jsx-runtime";
2
- import React from 'react';
3
- export const Card = React.forwardRef(({ variant = 'default', padding = 'lg', className, children, ...props }, ref) => {
4
- const variants = {
5
- default: 'bg-white border border-gray-200 shadow-sm',
6
- elevated: 'bg-white shadow-lg',
7
- flat: 'bg-gray-50 border border-gray-100',
8
- };
9
- const paddings = {
10
- sm: 'p-2',
11
- md: 'p-4',
12
- lg: 'p-6',
13
- };
14
- return (_jsx("div", { ref: ref, className: `
15
- rounded-lg transition-all
16
- ${variants[variant]}
17
- ${paddings[padding]}
18
- ${className || ''}
19
- `, ...props, children: children }));
20
- });
21
- Card.displayName = 'Card';
22
- export default Card;
@@ -1,7 +0,0 @@
1
- import React from 'react';
2
- export interface InputProps extends React.InputHTMLAttributes<HTMLInputElement> {
3
- label?: string;
4
- error?: string;
5
- }
6
- export declare const Input: React.ForwardRefExoticComponent<InputProps & React.RefAttributes<HTMLInputElement>>;
7
- export default Input;
@@ -1,12 +0,0 @@
1
- import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
2
- import React from 'react';
3
- export const Input = React.forwardRef(({ label, error, className, ...props }, ref) => {
4
- return (_jsxs("div", { className: "w-full", children: [label && _jsx("label", { className: "block text-sm font-semibold mb-2", children: label }), _jsx("input", { ref: ref, className: `
5
- w-full px-4 py-2 border rounded-lg
6
- focus:outline-none focus:ring-2 focus:ring-blue-500
7
- ${error ? 'border-red-500' : 'border-gray-300'}
8
- ${className || ''}
9
- `, ...props }), error && _jsx("p", { className: "text-sm text-red-600 mt-1", children: error })] }));
10
- });
11
- Input.displayName = 'Input';
12
- export default Input;
@@ -1,10 +0,0 @@
1
- import React from 'react';
2
- export interface ModalProps {
3
- isOpen: boolean;
4
- onClose: () => void;
5
- title?: string;
6
- children: React.ReactNode;
7
- footer?: React.ReactNode;
8
- }
9
- export declare const Modal: React.FC<ModalProps>;
10
- export default Modal;
@@ -1,7 +0,0 @@
1
- import { jsx as _jsx, jsxs as _jsxs, Fragment as _Fragment } from "react/jsx-runtime";
2
- export const Modal = ({ isOpen, onClose, title, children, footer, }) => {
3
- if (!isOpen)
4
- return null;
5
- return (_jsxs(_Fragment, { children: [_jsx("div", { className: "fixed inset-0 bg-black bg-opacity-50 z-40", onClick: onClose }), _jsx("div", { className: "fixed inset-0 z-50 flex items-center justify-center", children: _jsxs("div", { className: "bg-white rounded-lg shadow-2xl max-w-md w-full mx-4", children: [title && (_jsx("div", { className: "p-6 border-b border-gray-200", children: _jsx("h2", { className: "text-xl font-bold", children: title }) })), _jsx("div", { className: "p-6", children: children }), footer && _jsx("div", { className: "p-6 border-t border-gray-200 bg-gray-50", children: footer })] }) })] }));
6
- };
7
- export default Modal;
@@ -1,29 +0,0 @@
1
- export declare const colors: {
2
- primary: {
3
- 500: string;
4
- 600: string;
5
- 700: string;
6
- };
7
- success: {
8
- 500: string;
9
- 600: string;
10
- 700: string;
11
- };
12
- warning: {
13
- 500: string;
14
- 600: string;
15
- 700: string;
16
- };
17
- danger: {
18
- 500: string;
19
- 600: string;
20
- 700: string;
21
- };
22
- gray: {
23
- 50: string;
24
- 100: string;
25
- 200: string;
26
- 500: string;
27
- 900: string;
28
- };
29
- };
@@ -1,29 +0,0 @@
1
- export const colors = {
2
- primary: {
3
- 500: '#2A6ECC',
4
- 600: '#235ABD',
5
- 700: '#1C45AE',
6
- },
7
- success: {
8
- 500: '#00995A',
9
- 600: '#007A4A',
10
- 700: '#005C3A',
11
- },
12
- warning: {
13
- 500: '#F9B02A',
14
- 600: '#E8A100',
15
- 700: '#D69200',
16
- },
17
- danger: {
18
- 500: '#FA5858',
19
- 600: '#E84545',
20
- 700: '#D63232',
21
- },
22
- gray: {
23
- 50: '#F9FAFB',
24
- 100: '#F3F4F6',
25
- 200: '#E5E7EB',
26
- 500: '#6B7280',
27
- 900: '#111827',
28
- },
29
- };
@@ -1,19 +0,0 @@
1
- export declare const spacing: {
2
- xs: string;
3
- sm: string;
4
- md: string;
5
- lg: string;
6
- xl: string;
7
- '2xl': string;
8
- };
9
- export declare const borderRadius: {
10
- sm: string;
11
- md: string;
12
- lg: string;
13
- xl: string;
14
- };
15
- export declare const shadows: {
16
- sm: string;
17
- md: string;
18
- lg: string;
19
- };
@@ -1,19 +0,0 @@
1
- export const spacing = {
2
- xs: '4px',
3
- sm: '8px',
4
- md: '12px',
5
- lg: '16px',
6
- xl: '24px',
7
- '2xl': '32px',
8
- };
9
- export const borderRadius = {
10
- sm: '4px',
11
- md: '6px',
12
- lg: '8px',
13
- xl: '12px',
14
- };
15
- export const shadows = {
16
- sm: '0 1px 2px 0 rgba(0, 0, 0, 0.05)',
17
- md: '0 4px 6px -1px rgba(0, 0, 0, 0.1)',
18
- lg: '0 10px 15px -3px rgba(0, 0, 0, 0.1)',
19
- };
@@ -1,21 +0,0 @@
1
- export declare const typography: {
2
- fontFamily: {
3
- primary: string;
4
- mono: string;
5
- };
6
- fontSize: {
7
- xs: string;
8
- sm: string;
9
- base: string;
10
- lg: string;
11
- xl: string;
12
- '2xl': string;
13
- '3xl': string;
14
- };
15
- fontWeight: {
16
- regular: number;
17
- medium: number;
18
- semibold: number;
19
- bold: number;
20
- };
21
- };
@@ -1,21 +0,0 @@
1
- export const typography = {
2
- fontFamily: {
3
- primary: 'Poppins, -apple-system, BlinkMacSystemFont, sans-serif',
4
- mono: '"Roboto Mono", monospace',
5
- },
6
- fontSize: {
7
- xs: '10px',
8
- sm: '12px',
9
- base: '14px',
10
- lg: '16px',
11
- xl: '18px',
12
- '2xl': '20px',
13
- '3xl': '24px',
14
- },
15
- fontWeight: {
16
- regular: 400,
17
- medium: 500,
18
- semibold: 600,
19
- bold: 700,
20
- },
21
- };