shared-design-system 1.97.0 → 1.98.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.
|
@@ -2,10 +2,10 @@ import { jsx as _jsx, jsxs as _jsxs, Fragment as _Fragment } from "react/jsx-run
|
|
|
2
2
|
import { useState, useEffect } from 'react';
|
|
3
3
|
import { tokens } from '../tokens';
|
|
4
4
|
const ICON_MAP = {
|
|
5
|
-
success: (
|
|
6
|
-
error: (_jsxs("svg", { width: "
|
|
7
|
-
warning: (_jsxs("svg", { width: "
|
|
8
|
-
info: (_jsxs("svg", { width: "
|
|
5
|
+
success: (_jsxs("svg", { width: "48", height: "48", viewBox: "0 0 24 24", fill: "none", stroke: "currentColor", strokeWidth: "2.5", strokeLinecap: "round", strokeLinejoin: "round", children: [_jsx("path", { d: "M22 11.08V12a10 10 0 1 1-5.93-9.14" }), _jsx("polyline", { points: "22 4 12 14.01 9 11.01" })] })),
|
|
6
|
+
error: (_jsxs("svg", { width: "48", height: "48", viewBox: "0 0 24 24", fill: "none", stroke: "currentColor", strokeWidth: "2.5", strokeLinecap: "round", strokeLinejoin: "round", children: [_jsx("circle", { cx: "12", cy: "12", r: "10" }), _jsx("line", { x1: "15", y1: "9", x2: "9", y2: "15" }), _jsx("line", { x1: "9", y1: "9", x2: "15", y2: "15" })] })),
|
|
7
|
+
warning: (_jsxs("svg", { width: "48", height: "48", viewBox: "0 0 24 24", fill: "none", stroke: "currentColor", strokeWidth: "2.5", strokeLinecap: "round", strokeLinejoin: "round", children: [_jsx("path", { d: "M10.29 3.86L1.82 18a2 2 0 0 0 1.71 3h16.94a2 2 0 0 0 1.71-3L13.71 3.86a2 2 0 0 0-3.42 0z" }), _jsx("line", { x1: "12", y1: "9", x2: "12", y2: "13" }), _jsx("line", { x1: "12", y1: "17", x2: "12.01", y2: "17" })] })),
|
|
8
|
+
info: (_jsxs("svg", { width: "48", height: "48", viewBox: "0 0 24 24", fill: "none", stroke: "currentColor", strokeWidth: "2.5", strokeLinecap: "round", strokeLinejoin: "round", children: [_jsx("circle", { cx: "12", cy: "12", r: "10" }), _jsx("line", { x1: "12", y1: "16", x2: "12", y2: "12" }), _jsx("line", { x1: "12", y1: "8", x2: "12.01", y2: "8" })] })),
|
|
9
9
|
};
|
|
10
10
|
const COLOR_MAP = {
|
|
11
11
|
success: tokens.color.success,
|
|
@@ -13,22 +13,49 @@ const COLOR_MAP = {
|
|
|
13
13
|
warning: tokens.color.warning,
|
|
14
14
|
info: tokens.color.info,
|
|
15
15
|
};
|
|
16
|
-
|
|
16
|
+
const BG_MAP = {
|
|
17
|
+
success: tokens.color.successBg,
|
|
18
|
+
error: tokens.color.dangerBg,
|
|
19
|
+
warning: tokens.color.warningBg,
|
|
20
|
+
info: tokens.color.infoBg,
|
|
21
|
+
};
|
|
22
|
+
import { Button } from './Button';
|
|
23
|
+
export const MessageItem = ({ content, type = 'info', visible, onManualClose }) => {
|
|
24
|
+
const color = COLOR_MAP[type];
|
|
25
|
+
const bg = BG_MAP[type];
|
|
17
26
|
return (_jsxs("div", { style: {
|
|
18
|
-
padding: '
|
|
27
|
+
padding: '40px 32px 32px',
|
|
19
28
|
backgroundColor: tokens.color.white,
|
|
20
|
-
borderRadius: tokens.radius
|
|
21
|
-
boxShadow: '
|
|
29
|
+
borderRadius: tokens.radius['2xl'],
|
|
30
|
+
boxShadow: '0 25px 50px -12px rgba(0, 0, 0, 0.25)',
|
|
22
31
|
display: 'flex',
|
|
32
|
+
flexDirection: 'column',
|
|
23
33
|
alignItems: 'center',
|
|
24
|
-
gap: '
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
transform: visible ? '
|
|
34
|
+
gap: '28px',
|
|
35
|
+
width: '400px',
|
|
36
|
+
maxWidth: 'calc(100vw - 48px)',
|
|
37
|
+
transform: visible ? 'scale(1)' : 'scale(0.8)',
|
|
28
38
|
opacity: visible ? 1 : 0,
|
|
29
|
-
transition: 'all 0.3s cubic-bezier(0.
|
|
39
|
+
transition: 'all 0.3s cubic-bezier(0.34, 1.56, 0.64, 1)',
|
|
30
40
|
pointerEvents: 'auto',
|
|
31
|
-
|
|
41
|
+
textAlign: 'center',
|
|
42
|
+
}, children: [_jsx("div", { style: {
|
|
43
|
+
color,
|
|
44
|
+
backgroundColor: bg,
|
|
45
|
+
display: 'flex',
|
|
46
|
+
justifyContent: 'center',
|
|
47
|
+
alignItems: 'center',
|
|
48
|
+
width: '88px',
|
|
49
|
+
height: '88px',
|
|
50
|
+
borderRadius: '50%',
|
|
51
|
+
border: `4px solid ${color}20`,
|
|
52
|
+
}, children: ICON_MAP[type] }), _jsx("div", { style: {
|
|
53
|
+
fontSize: tokens.font.lg,
|
|
54
|
+
fontWeight: tokens.font.weightBold,
|
|
55
|
+
color: tokens.color.slate800,
|
|
56
|
+
lineHeight: 1.5,
|
|
57
|
+
wordBreak: 'break-word',
|
|
58
|
+
}, children: content }), _jsx(Button, { variant: type === 'error' ? 'danger' : 'primary', onClick: onManualClose, style: { minWidth: '100px' }, children: "X\u00E1c nh\u1EADn" })] }));
|
|
32
59
|
};
|
|
33
60
|
// ─── Message Manager (Singleton) ─────────────────────────────────────────────
|
|
34
61
|
let messageInstance = null;
|
|
@@ -45,25 +72,42 @@ export const MessageProvider = ({ children }) => {
|
|
|
45
72
|
add: (content, type, duration = 3000) => {
|
|
46
73
|
const id = Date.now();
|
|
47
74
|
setMessages(prev => [...prev, { id, content, type, visible: true }]);
|
|
48
|
-
|
|
75
|
+
const close = () => {
|
|
49
76
|
setMessages(prev => prev.map(m => m.id === id ? { ...m, visible: false } : m));
|
|
50
77
|
setTimeout(() => {
|
|
51
78
|
setMessages(prev => prev.filter(m => m.id !== id));
|
|
52
79
|
}, 300);
|
|
53
|
-
}
|
|
80
|
+
};
|
|
81
|
+
if (duration > 0) {
|
|
82
|
+
setTimeout(close, duration);
|
|
83
|
+
}
|
|
84
|
+
return close; // Return close function if needed
|
|
54
85
|
}
|
|
55
86
|
};
|
|
56
87
|
}, []);
|
|
88
|
+
const handleManualClose = (id) => {
|
|
89
|
+
setMessages(prev => prev.map(m => m.id === id ? { ...m, visible: false } : m));
|
|
90
|
+
setTimeout(() => {
|
|
91
|
+
setMessages(prev => prev.filter(m => m.id !== id));
|
|
92
|
+
}, 300);
|
|
93
|
+
};
|
|
94
|
+
const hasVisibleMessages = messages.some(m => m.visible);
|
|
57
95
|
return (_jsxs(_Fragment, { children: [children, _jsx("div", { style: {
|
|
58
96
|
position: 'fixed',
|
|
59
|
-
top:
|
|
60
|
-
left:
|
|
61
|
-
|
|
97
|
+
top: 0,
|
|
98
|
+
left: 0,
|
|
99
|
+
right: 0,
|
|
100
|
+
bottom: 0,
|
|
62
101
|
zIndex: 9999,
|
|
63
|
-
pointerEvents: 'none',
|
|
102
|
+
pointerEvents: hasVisibleMessages ? 'auto' : 'none',
|
|
64
103
|
display: 'flex',
|
|
65
104
|
flexDirection: 'column',
|
|
66
105
|
alignItems: 'center',
|
|
67
|
-
|
|
106
|
+
justifyContent: 'center',
|
|
107
|
+
gap: '16px',
|
|
108
|
+
backgroundColor: hasVisibleMessages ? 'rgba(15, 23, 42, 0.4)' : 'transparent',
|
|
109
|
+
backdropFilter: hasVisibleMessages ? 'blur(4px)' : 'none',
|
|
110
|
+
transition: 'all 0.3s ease',
|
|
111
|
+
}, children: messages.map(m => (_jsx(MessageItem, { ...m, onManualClose: () => handleManualClose(m.id) }, m.id))) })] }));
|
|
68
112
|
};
|
|
69
113
|
//# sourceMappingURL=Message.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Message.js","sourceRoot":"","sources":["../../../src/components/Message.tsx"],"names":[],"mappings":";AAAA,OAAc,EAAE,QAAQ,EAAE,SAAS,EAAE,MAAM,OAAO,CAAC;AACnD,OAAO,EAAE,MAAM,EAAE,MAAM,WAAW,CAAC;AAWnC,MAAM,QAAQ,GAAyC;IACrD,OAAO,EAAE,CACP,
|
|
1
|
+
{"version":3,"file":"Message.js","sourceRoot":"","sources":["../../../src/components/Message.tsx"],"names":[],"mappings":"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"}
|