strapi-plugin-magic-mail 2.3.10 → 2.4.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.
- package/dist/_chunks/{App-BMaJu77a.js → App-58t1-H0G.js} +895 -534
- package/dist/_chunks/{App-DxiMl-Zd.mjs → App-ClJVoU2s.mjs} +896 -535
- package/dist/_chunks/PluginSettings-D2BUUHY1.js +376 -0
- package/dist/_chunks/PluginSettings-ywPWZVt0.mjs +374 -0
- package/dist/_chunks/{Settings-BSFLpt0H.js → Settings-CPPrGxLm.js} +38 -82
- package/dist/_chunks/{Settings-Ca5UE3c1.mjs → Settings-Cc-hhoLA.mjs} +39 -83
- package/dist/_chunks/StyledButtons-M7vUd2N4.js +435 -0
- package/dist/_chunks/StyledButtons-nt2C730e.mjs +434 -0
- package/dist/_chunks/{de-YhjDItIL.js → de-CF2ItE3Z.js} +1 -1
- package/dist/_chunks/{de-CpIQf94q.mjs → de-CwbYw2jT.mjs} +1 -1
- package/dist/_chunks/{en-BcdTnA2-.js → en-CK6UpShS.js} +1 -1
- package/dist/_chunks/{en-BHmOVzsP.mjs → en-ZRmfU4qX.mjs} +1 -1
- package/dist/admin/index.js +16 -7
- package/dist/admin/index.mjs +16 -7
- package/dist/server/index.js +298 -54
- package/dist/server/index.mjs +298 -54
- package/package.json +8 -8
|
@@ -1,12 +1,10 @@
|
|
|
1
1
|
import { jsx, jsxs } from "react/jsx-runtime";
|
|
2
2
|
import { useState, useEffect } from "react";
|
|
3
|
-
import { Loader, Box, Alert, Flex, Typography,
|
|
3
|
+
import { Loader, Box, Alert, Flex, Typography, Badge, Accordion } from "@strapi/design-system";
|
|
4
4
|
import { useFetchClient, useNotification } from "@strapi/strapi/admin";
|
|
5
5
|
import { ArrowPathIcon, DocumentDuplicateIcon, ArrowDownTrayIcon, UserIcon, ShieldCheckIcon, SparklesIcon, ChartBarIcon } from "@heroicons/react/24/outline";
|
|
6
6
|
import styled, { css, keyframes } from "styled-components";
|
|
7
|
-
|
|
8
|
-
borderRadius: { lg: "12px" }
|
|
9
|
-
};
|
|
7
|
+
import { S as SecondaryButton, W as WhiteOutlineButton } from "./StyledButtons-nt2C730e.mjs";
|
|
10
8
|
const fadeIn = keyframes`
|
|
11
9
|
from { opacity: 0; transform: translateY(10px); }
|
|
12
10
|
to { opacity: 1; transform: translateY(0); }
|
|
@@ -30,7 +28,7 @@ const StickySaveBar = styled(Box)`
|
|
|
30
28
|
`;
|
|
31
29
|
const LicenseKeyBanner = styled(Box)`
|
|
32
30
|
background: linear-gradient(135deg, #0EA5E9 0%, #A855F7 100%);
|
|
33
|
-
border-radius:
|
|
31
|
+
border-radius: 12px;
|
|
34
32
|
padding: 28px 32px;
|
|
35
33
|
color: white;
|
|
36
34
|
position: relative;
|
|
@@ -68,7 +66,7 @@ const LoaderContainer = styled(Flex)`
|
|
|
68
66
|
flex-direction: column;
|
|
69
67
|
gap: 16px;
|
|
70
68
|
`;
|
|
71
|
-
const
|
|
69
|
+
const LicenseDetailsPage = () => {
|
|
72
70
|
const { get } = useFetchClient();
|
|
73
71
|
const { toggleNotification } = useNotification();
|
|
74
72
|
const [loading, setLoading] = useState(true);
|
|
@@ -110,27 +108,27 @@ const LicensePage = () => {
|
|
|
110
108
|
const lastName = data2.lastName || "";
|
|
111
109
|
const fullName = `${firstName} ${lastName}`.trim() || "N/A";
|
|
112
110
|
const content = `MagicMail - Email Business Suite - License Key
|
|
113
|
-
|
|
111
|
+
===============================================
|
|
114
112
|
|
|
115
113
|
License Key: ${licenseKey}
|
|
116
114
|
|
|
117
115
|
License Holder Information:
|
|
118
|
-
|
|
116
|
+
----------------------------------------------
|
|
119
117
|
Name: ${fullName}
|
|
120
118
|
Email: ${email}
|
|
121
119
|
|
|
122
120
|
License Status:
|
|
123
|
-
|
|
121
|
+
----------------------------------------------
|
|
124
122
|
Status: ${data2.isActive ? "ACTIVE" : "INACTIVE"}
|
|
125
123
|
Expires: ${data2.expiresAt ? new Date(data2.expiresAt).toLocaleDateString() : "Never"}
|
|
126
124
|
|
|
127
125
|
Features:
|
|
128
|
-
|
|
126
|
+
----------------------------------------------
|
|
129
127
|
Premium: ${data2.features?.premium ? "Enabled" : "Disabled"}
|
|
130
128
|
Advanced: ${data2.features?.advanced ? "Enabled" : "Disabled"}
|
|
131
129
|
Enterprise: ${data2.features?.enterprise ? "Enabled" : "Disabled"}
|
|
132
130
|
|
|
133
|
-
|
|
131
|
+
===============================================
|
|
134
132
|
Generated: ${(/* @__PURE__ */ new Date()).toLocaleString()}
|
|
135
133
|
`;
|
|
136
134
|
const blob = new Blob([content], { type: "text/plain" });
|
|
@@ -172,17 +170,10 @@ Generated: ${(/* @__PURE__ */ new Date()).toLocaleString()}
|
|
|
172
170
|
/* @__PURE__ */ jsx(Typography, { variant: "epsilon", textColor: "neutral600", children: "View your MagicMail plugin license" })
|
|
173
171
|
] }),
|
|
174
172
|
/* @__PURE__ */ jsx(
|
|
175
|
-
|
|
173
|
+
SecondaryButton,
|
|
176
174
|
{
|
|
177
|
-
startIcon: /* @__PURE__ */ jsx(ArrowPathIcon, { style: { width:
|
|
175
|
+
startIcon: /* @__PURE__ */ jsx(ArrowPathIcon, { style: { width: 18, height: 18 } }),
|
|
178
176
|
onClick: fetchLicenseStatus,
|
|
179
|
-
size: "L",
|
|
180
|
-
style: {
|
|
181
|
-
background: "linear-gradient(135deg, #0EA5E9 0%, #A855F7 100%)",
|
|
182
|
-
color: "white",
|
|
183
|
-
fontWeight: "600",
|
|
184
|
-
border: "none"
|
|
185
|
-
},
|
|
186
177
|
children: "Refresh Status"
|
|
187
178
|
}
|
|
188
179
|
)
|
|
@@ -195,34 +186,20 @@ Generated: ${(/* @__PURE__ */ new Date()).toLocaleString()}
|
|
|
195
186
|
/* @__PURE__ */ jsx(Typography, { style: { color: "white", fontFamily: "monospace", fontSize: "28px", fontWeight: "bold", wordBreak: "break-all", marginBottom: "16px" }, children: data.licenseKey }),
|
|
196
187
|
/* @__PURE__ */ jsxs(Flex, { gap: 2, children: [
|
|
197
188
|
/* @__PURE__ */ jsx(
|
|
198
|
-
|
|
189
|
+
WhiteOutlineButton,
|
|
199
190
|
{
|
|
200
191
|
onClick: handleCopyLicenseKey,
|
|
201
192
|
startIcon: /* @__PURE__ */ jsx(DocumentDuplicateIcon, { style: { width: 16, height: 16 } }),
|
|
202
193
|
size: "S",
|
|
203
|
-
variant: "secondary",
|
|
204
|
-
style: {
|
|
205
|
-
backgroundColor: "rgba(255,255,255,0.2)",
|
|
206
|
-
color: "white",
|
|
207
|
-
border: "1px solid rgba(255,255,255,0.3)",
|
|
208
|
-
fontWeight: "600"
|
|
209
|
-
},
|
|
210
194
|
children: "Copy Key"
|
|
211
195
|
}
|
|
212
196
|
),
|
|
213
197
|
/* @__PURE__ */ jsx(
|
|
214
|
-
|
|
198
|
+
WhiteOutlineButton,
|
|
215
199
|
{
|
|
216
200
|
onClick: handleDownloadLicenseKey,
|
|
217
201
|
startIcon: /* @__PURE__ */ jsx(ArrowDownTrayIcon, { style: { width: 16, height: 16 } }),
|
|
218
202
|
size: "S",
|
|
219
|
-
variant: "secondary",
|
|
220
|
-
style: {
|
|
221
|
-
backgroundColor: "rgba(255,255,255,0.2)",
|
|
222
|
-
color: "white",
|
|
223
|
-
border: "1px solid rgba(255,255,255,0.3)",
|
|
224
|
-
fontWeight: "600"
|
|
225
|
-
},
|
|
226
203
|
children: "Download as TXT"
|
|
227
204
|
}
|
|
228
205
|
)
|
|
@@ -282,15 +259,10 @@ Generated: ${(/* @__PURE__ */ new Date()).toLocaleString()}
|
|
|
282
259
|
{
|
|
283
260
|
backgroundColor: data.features?.premium ? "success100" : "neutral100",
|
|
284
261
|
textColor: data.features?.premium ? "success700" : "neutral600",
|
|
285
|
-
style: {
|
|
286
|
-
fontSize: "13px",
|
|
287
|
-
fontWeight: "700",
|
|
288
|
-
padding: "8px 16px",
|
|
289
|
-
border: data.features?.premium ? "2px solid #dcfce7" : "2px solid #e5e7eb"
|
|
290
|
-
},
|
|
262
|
+
style: { fontSize: "13px", fontWeight: "700", padding: "8px 16px" },
|
|
291
263
|
children: [
|
|
292
|
-
data.features?.premium ? "
|
|
293
|
-
" PREMIUM
|
|
264
|
+
data.features?.premium ? "[OK]" : "[X]",
|
|
265
|
+
" PREMIUM"
|
|
294
266
|
]
|
|
295
267
|
}
|
|
296
268
|
),
|
|
@@ -299,15 +271,10 @@ Generated: ${(/* @__PURE__ */ new Date()).toLocaleString()}
|
|
|
299
271
|
{
|
|
300
272
|
backgroundColor: data.features?.advanced ? "primary100" : "neutral100",
|
|
301
273
|
textColor: data.features?.advanced ? "primary700" : "neutral600",
|
|
302
|
-
style: {
|
|
303
|
-
fontSize: "13px",
|
|
304
|
-
fontWeight: "700",
|
|
305
|
-
padding: "8px 16px",
|
|
306
|
-
border: data.features?.advanced ? "2px solid #bae6fd" : "2px solid #e5e7eb"
|
|
307
|
-
},
|
|
274
|
+
style: { fontSize: "13px", fontWeight: "700", padding: "8px 16px" },
|
|
308
275
|
children: [
|
|
309
|
-
data.features?.advanced ? "
|
|
310
|
-
" ADVANCED
|
|
276
|
+
data.features?.advanced ? "[OK]" : "[X]",
|
|
277
|
+
" ADVANCED"
|
|
311
278
|
]
|
|
312
279
|
}
|
|
313
280
|
),
|
|
@@ -316,48 +283,37 @@ Generated: ${(/* @__PURE__ */ new Date()).toLocaleString()}
|
|
|
316
283
|
{
|
|
317
284
|
backgroundColor: data.features?.enterprise ? "secondary100" : "neutral100",
|
|
318
285
|
textColor: data.features?.enterprise ? "secondary700" : "neutral600",
|
|
319
|
-
style: {
|
|
320
|
-
fontSize: "13px",
|
|
321
|
-
fontWeight: "700",
|
|
322
|
-
padding: "8px 16px",
|
|
323
|
-
border: data.features?.enterprise ? "2px solid #ddd6fe" : "2px solid #e5e7eb"
|
|
324
|
-
},
|
|
286
|
+
style: { fontSize: "13px", fontWeight: "700", padding: "8px 16px" },
|
|
325
287
|
children: [
|
|
326
|
-
data.features?.enterprise ? "
|
|
327
|
-
" ENTERPRISE
|
|
288
|
+
data.features?.enterprise ? "[OK]" : "[X]",
|
|
289
|
+
" ENTERPRISE"
|
|
328
290
|
]
|
|
329
291
|
}
|
|
330
292
|
)
|
|
331
293
|
] }),
|
|
332
|
-
data.features?.premium && /* @__PURE__ */ jsxs(Box, { marginBottom: 5, padding: 5, background: "success50", hasRadius: true,
|
|
333
|
-
/* @__PURE__ */ jsx(Typography, { variant: "delta", fontWeight: "bold", textColor: "success700", style: { marginBottom: "16px"
|
|
294
|
+
data.features?.premium && /* @__PURE__ */ jsxs(Box, { marginBottom: 5, padding: 5, background: "success50", hasRadius: true, children: [
|
|
295
|
+
/* @__PURE__ */ jsx(Typography, { variant: "delta", fontWeight: "bold", textColor: "success700", style: { marginBottom: "16px" }, children: "Premium Features Active" }),
|
|
334
296
|
/* @__PURE__ */ jsxs(Flex, { direction: "column", gap: 2, children: [
|
|
335
|
-
/* @__PURE__ */ jsx(Typography, { variant: "omega", textColor: "success700",
|
|
336
|
-
/* @__PURE__ */ jsx(Typography, { variant: "omega", textColor: "success700",
|
|
337
|
-
/* @__PURE__ */ jsx(Typography, { variant: "omega", textColor: "success700",
|
|
338
|
-
/* @__PURE__ */ jsx(Typography, { variant: "omega", textColor: "success700",
|
|
339
|
-
/* @__PURE__ */ jsx(Typography, { variant: "omega", textColor: "success700", style: { fontSize: "14px", display: "flex", alignItems: "center", gap: "8px" }, children: "✓ Smart Routing Rules (Unlimited)" }),
|
|
340
|
-
/* @__PURE__ */ jsx(Typography, { variant: "omega", textColor: "success700", style: { fontSize: "14px", display: "flex", alignItems: "center", gap: "8px" }, children: "✓ Email Analytics Dashboard" })
|
|
297
|
+
/* @__PURE__ */ jsx(Typography, { variant: "omega", textColor: "success700", children: "[OK] Gmail OAuth 2.0" }),
|
|
298
|
+
/* @__PURE__ */ jsx(Typography, { variant: "omega", textColor: "success700", children: "[OK] Microsoft 365 OAuth" }),
|
|
299
|
+
/* @__PURE__ */ jsx(Typography, { variant: "omega", textColor: "success700", children: "[OK] Smart Routing Rules" }),
|
|
300
|
+
/* @__PURE__ */ jsx(Typography, { variant: "omega", textColor: "success700", children: "[OK] Email Analytics" })
|
|
341
301
|
] })
|
|
342
302
|
] }),
|
|
343
|
-
data.features?.advanced && /* @__PURE__ */ jsxs(Box, { marginBottom: 5, padding: 5, background: "primary50", hasRadius: true,
|
|
344
|
-
/* @__PURE__ */ jsx(Typography, { variant: "delta", fontWeight: "bold", textColor: "primary700", style: { marginBottom: "16px"
|
|
303
|
+
data.features?.advanced && /* @__PURE__ */ jsxs(Box, { marginBottom: 5, padding: 5, background: "primary50", hasRadius: true, children: [
|
|
304
|
+
/* @__PURE__ */ jsx(Typography, { variant: "delta", fontWeight: "bold", textColor: "primary700", style: { marginBottom: "16px" }, children: "Advanced Features Active" }),
|
|
345
305
|
/* @__PURE__ */ jsxs(Flex, { direction: "column", gap: 2, children: [
|
|
346
|
-
/* @__PURE__ */ jsx(Typography, { variant: "omega", textColor: "primary700",
|
|
347
|
-
/* @__PURE__ */ jsx(Typography, { variant: "omega", textColor: "primary700",
|
|
348
|
-
/* @__PURE__ */ jsx(Typography, { variant: "omega", textColor: "primary700",
|
|
349
|
-
/* @__PURE__ */ jsx(Typography, { variant: "omega", textColor: "primary700", style: { fontSize: "14px", display: "flex", alignItems: "center", gap: "8px" }, children: "✓ List-Unsubscribe Headers (GDPR)" }),
|
|
350
|
-
/* @__PURE__ */ jsx(Typography, { variant: "omega", textColor: "primary700", style: { fontSize: "14px", display: "flex", alignItems: "center", gap: "8px" }, children: "✓ Enhanced Security Validation" })
|
|
306
|
+
/* @__PURE__ */ jsx(Typography, { variant: "omega", textColor: "primary700", children: "[OK] DKIM Signing" }),
|
|
307
|
+
/* @__PURE__ */ jsx(Typography, { variant: "omega", textColor: "primary700", children: "[OK] Email Designer" }),
|
|
308
|
+
/* @__PURE__ */ jsx(Typography, { variant: "omega", textColor: "primary700", children: "[OK] List-Unsubscribe Headers" })
|
|
351
309
|
] })
|
|
352
310
|
] }),
|
|
353
|
-
data.features?.enterprise && /* @__PURE__ */ jsxs(Box, { padding: 5, background: "secondary50", hasRadius: true,
|
|
354
|
-
/* @__PURE__ */ jsx(Typography, { variant: "delta", fontWeight: "bold", textColor: "secondary700", style: { marginBottom: "16px"
|
|
311
|
+
data.features?.enterprise && /* @__PURE__ */ jsxs(Box, { padding: 5, background: "secondary50", hasRadius: true, children: [
|
|
312
|
+
/* @__PURE__ */ jsx(Typography, { variant: "delta", fontWeight: "bold", textColor: "secondary700", style: { marginBottom: "16px" }, children: "Enterprise Features Active" }),
|
|
355
313
|
/* @__PURE__ */ jsxs(Flex, { direction: "column", gap: 2, children: [
|
|
356
|
-
/* @__PURE__ */ jsx(Typography, { variant: "omega", textColor: "secondary700",
|
|
357
|
-
/* @__PURE__ */ jsx(Typography, { variant: "omega", textColor: "secondary700",
|
|
358
|
-
/* @__PURE__ */ jsx(Typography, { variant: "omega", textColor: "secondary700",
|
|
359
|
-
/* @__PURE__ */ jsx(Typography, { variant: "omega", textColor: "secondary700", style: { fontSize: "14px", display: "flex", alignItems: "center", gap: "8px" }, children: "✓ Advanced Rate Limiting" }),
|
|
360
|
-
/* @__PURE__ */ jsx(Typography, { variant: "omega", textColor: "secondary700", style: { fontSize: "14px", display: "flex", alignItems: "center", gap: "8px" }, children: "✓ Priority Support" })
|
|
314
|
+
/* @__PURE__ */ jsx(Typography, { variant: "omega", textColor: "secondary700", children: "[OK] Multi-tenant Management" }),
|
|
315
|
+
/* @__PURE__ */ jsx(Typography, { variant: "omega", textColor: "secondary700", children: "[OK] Compliance Reports" }),
|
|
316
|
+
/* @__PURE__ */ jsx(Typography, { variant: "omega", textColor: "secondary700", children: "[OK] Priority Support" })
|
|
361
317
|
] })
|
|
362
318
|
] })
|
|
363
319
|
] }) })
|
|
@@ -392,5 +348,5 @@ Generated: ${(/* @__PURE__ */ new Date()).toLocaleString()}
|
|
|
392
348
|
] });
|
|
393
349
|
};
|
|
394
350
|
export {
|
|
395
|
-
|
|
351
|
+
LicenseDetailsPage as default
|
|
396
352
|
};
|
|
@@ -0,0 +1,435 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
const styled = require("styled-components");
|
|
3
|
+
const designSystem = require("@strapi/design-system");
|
|
4
|
+
const _interopDefault = (e) => e && e.__esModule ? e : { default: e };
|
|
5
|
+
const styled__default = /* @__PURE__ */ _interopDefault(styled);
|
|
6
|
+
const GradientButton = styled__default.default(designSystem.Button)`
|
|
7
|
+
&& {
|
|
8
|
+
background: linear-gradient(135deg, #0EA5E9 0%, #A855F7 100%);
|
|
9
|
+
color: white;
|
|
10
|
+
font-weight: 600;
|
|
11
|
+
border: none;
|
|
12
|
+
padding: 10px 20px;
|
|
13
|
+
min-height: 40px;
|
|
14
|
+
transition: all 0.2s ease;
|
|
15
|
+
|
|
16
|
+
&:hover:not(:disabled) {
|
|
17
|
+
background: linear-gradient(135deg, #0284C7 0%, #9333EA 100%);
|
|
18
|
+
transform: translateY(-1px);
|
|
19
|
+
box-shadow: 0 4px 12px rgba(14, 165, 233, 0.3);
|
|
20
|
+
}
|
|
21
|
+
|
|
22
|
+
&:active:not(:disabled) {
|
|
23
|
+
transform: translateY(0);
|
|
24
|
+
}
|
|
25
|
+
|
|
26
|
+
&:disabled {
|
|
27
|
+
opacity: 0.6;
|
|
28
|
+
cursor: not-allowed;
|
|
29
|
+
}
|
|
30
|
+
}
|
|
31
|
+
`;
|
|
32
|
+
const SecondaryButton = styled__default.default(designSystem.Button)`
|
|
33
|
+
&& {
|
|
34
|
+
background: white;
|
|
35
|
+
color: #7C3AED;
|
|
36
|
+
font-weight: 600;
|
|
37
|
+
border: 2px solid transparent;
|
|
38
|
+
background-image: linear-gradient(white, white), linear-gradient(135deg, #0EA5E9 0%, #A855F7 100%);
|
|
39
|
+
background-origin: border-box;
|
|
40
|
+
background-clip: padding-box, border-box;
|
|
41
|
+
padding: 10px 20px;
|
|
42
|
+
min-height: 40px;
|
|
43
|
+
transition: all 0.2s ease;
|
|
44
|
+
|
|
45
|
+
&:hover:not(:disabled) {
|
|
46
|
+
background: linear-gradient(135deg, #0EA5E9 0%, #A855F7 100%);
|
|
47
|
+
background-clip: padding-box;
|
|
48
|
+
color: white;
|
|
49
|
+
transform: translateY(-1px);
|
|
50
|
+
box-shadow: 0 4px 12px rgba(168, 85, 247, 0.3);
|
|
51
|
+
}
|
|
52
|
+
|
|
53
|
+
&:active:not(:disabled) {
|
|
54
|
+
transform: translateY(0);
|
|
55
|
+
}
|
|
56
|
+
|
|
57
|
+
&:disabled {
|
|
58
|
+
opacity: 0.6;
|
|
59
|
+
cursor: not-allowed;
|
|
60
|
+
}
|
|
61
|
+
}
|
|
62
|
+
`;
|
|
63
|
+
const TertiaryButton = styled__default.default(designSystem.Button)`
|
|
64
|
+
&& {
|
|
65
|
+
background: transparent;
|
|
66
|
+
color: ${(props) => props.theme.colors.neutral600};
|
|
67
|
+
font-weight: 500;
|
|
68
|
+
border: 1px solid ${(props) => props.theme.colors.neutral200};
|
|
69
|
+
padding: 10px 20px;
|
|
70
|
+
min-height: 40px;
|
|
71
|
+
transition: all 0.2s ease;
|
|
72
|
+
|
|
73
|
+
&:hover:not(:disabled) {
|
|
74
|
+
background: ${(props) => props.theme.colors.neutral100};
|
|
75
|
+
border-color: ${(props) => props.theme.colors.neutral300};
|
|
76
|
+
color: ${(props) => props.theme.colors.neutral800};
|
|
77
|
+
}
|
|
78
|
+
|
|
79
|
+
&:disabled {
|
|
80
|
+
opacity: 0.6;
|
|
81
|
+
cursor: not-allowed;
|
|
82
|
+
}
|
|
83
|
+
}
|
|
84
|
+
`;
|
|
85
|
+
const DangerButton = styled__default.default(designSystem.Button)`
|
|
86
|
+
&& {
|
|
87
|
+
background: #FEE2E2;
|
|
88
|
+
color: #DC2626;
|
|
89
|
+
font-weight: 600;
|
|
90
|
+
border: 1px solid #FECACA;
|
|
91
|
+
padding: 10px 20px;
|
|
92
|
+
min-height: 40px;
|
|
93
|
+
transition: all 0.2s ease;
|
|
94
|
+
|
|
95
|
+
&:hover:not(:disabled) {
|
|
96
|
+
background: #DC2626;
|
|
97
|
+
color: white;
|
|
98
|
+
border-color: #DC2626;
|
|
99
|
+
}
|
|
100
|
+
|
|
101
|
+
&:disabled {
|
|
102
|
+
opacity: 0.6;
|
|
103
|
+
cursor: not-allowed;
|
|
104
|
+
}
|
|
105
|
+
}
|
|
106
|
+
`;
|
|
107
|
+
styled__default.default(designSystem.Button)`
|
|
108
|
+
&& {
|
|
109
|
+
background: linear-gradient(135deg, #10B981 0%, #059669 100%);
|
|
110
|
+
color: white;
|
|
111
|
+
font-weight: 600;
|
|
112
|
+
border: none;
|
|
113
|
+
padding: 10px 20px;
|
|
114
|
+
min-height: 40px;
|
|
115
|
+
transition: all 0.2s ease;
|
|
116
|
+
|
|
117
|
+
&:hover:not(:disabled) {
|
|
118
|
+
background: linear-gradient(135deg, #059669 0%, #047857 100%);
|
|
119
|
+
transform: translateY(-1px);
|
|
120
|
+
box-shadow: 0 4px 12px rgba(16, 185, 129, 0.3);
|
|
121
|
+
}
|
|
122
|
+
|
|
123
|
+
&:disabled {
|
|
124
|
+
opacity: 0.6;
|
|
125
|
+
cursor: not-allowed;
|
|
126
|
+
}
|
|
127
|
+
}
|
|
128
|
+
`;
|
|
129
|
+
const IconButton = styled__default.default(designSystem.Button)`
|
|
130
|
+
&& {
|
|
131
|
+
background: linear-gradient(135deg, #F8FAFC 0%, #F1F5F9 100%);
|
|
132
|
+
color: #64748B;
|
|
133
|
+
border: 1px solid #E2E8F0;
|
|
134
|
+
padding: 8px;
|
|
135
|
+
min-width: 38px;
|
|
136
|
+
min-height: 38px;
|
|
137
|
+
width: 38px;
|
|
138
|
+
height: 38px;
|
|
139
|
+
border-radius: 10px;
|
|
140
|
+
display: flex;
|
|
141
|
+
align-items: center;
|
|
142
|
+
justify-content: center;
|
|
143
|
+
transition: all 0.2s ease;
|
|
144
|
+
box-shadow: 0 1px 2px rgba(0, 0, 0, 0.04);
|
|
145
|
+
|
|
146
|
+
svg {
|
|
147
|
+
width: 18px;
|
|
148
|
+
height: 18px;
|
|
149
|
+
}
|
|
150
|
+
|
|
151
|
+
&:hover:not(:disabled) {
|
|
152
|
+
background: linear-gradient(135deg, #0EA5E9 0%, #0284C7 100%);
|
|
153
|
+
border-color: #0EA5E9;
|
|
154
|
+
color: white;
|
|
155
|
+
transform: translateY(-1px);
|
|
156
|
+
box-shadow: 0 4px 12px rgba(14, 165, 233, 0.25);
|
|
157
|
+
}
|
|
158
|
+
|
|
159
|
+
&:disabled {
|
|
160
|
+
opacity: 0.6;
|
|
161
|
+
cursor: not-allowed;
|
|
162
|
+
}
|
|
163
|
+
}
|
|
164
|
+
`;
|
|
165
|
+
const IconButtonDanger = styled__default.default(designSystem.Button)`
|
|
166
|
+
&& {
|
|
167
|
+
background: linear-gradient(135deg, #FEF2F2 0%, #FEE2E2 100%);
|
|
168
|
+
color: #EF4444;
|
|
169
|
+
border: 1px solid #FECACA;
|
|
170
|
+
padding: 8px;
|
|
171
|
+
min-width: 38px;
|
|
172
|
+
min-height: 38px;
|
|
173
|
+
width: 38px;
|
|
174
|
+
height: 38px;
|
|
175
|
+
border-radius: 10px;
|
|
176
|
+
display: flex;
|
|
177
|
+
align-items: center;
|
|
178
|
+
justify-content: center;
|
|
179
|
+
transition: all 0.2s ease;
|
|
180
|
+
box-shadow: 0 1px 2px rgba(0, 0, 0, 0.04);
|
|
181
|
+
|
|
182
|
+
svg {
|
|
183
|
+
width: 18px;
|
|
184
|
+
height: 18px;
|
|
185
|
+
}
|
|
186
|
+
|
|
187
|
+
&:hover:not(:disabled) {
|
|
188
|
+
background: linear-gradient(135deg, #EF4444 0%, #DC2626 100%);
|
|
189
|
+
border-color: #EF4444;
|
|
190
|
+
color: white;
|
|
191
|
+
transform: translateY(-1px);
|
|
192
|
+
box-shadow: 0 4px 12px rgba(239, 68, 68, 0.3);
|
|
193
|
+
}
|
|
194
|
+
|
|
195
|
+
&:disabled {
|
|
196
|
+
opacity: 0.6;
|
|
197
|
+
cursor: not-allowed;
|
|
198
|
+
}
|
|
199
|
+
}
|
|
200
|
+
`;
|
|
201
|
+
const IconButtonPrimary = styled__default.default(designSystem.Button)`
|
|
202
|
+
&& {
|
|
203
|
+
background: linear-gradient(135deg, #F0F9FF 0%, #E0F2FE 100%);
|
|
204
|
+
color: #0EA5E9;
|
|
205
|
+
border: 1px solid #BAE6FD;
|
|
206
|
+
padding: 8px;
|
|
207
|
+
min-width: 38px;
|
|
208
|
+
min-height: 38px;
|
|
209
|
+
width: 38px;
|
|
210
|
+
height: 38px;
|
|
211
|
+
border-radius: 10px;
|
|
212
|
+
display: flex;
|
|
213
|
+
align-items: center;
|
|
214
|
+
justify-content: center;
|
|
215
|
+
transition: all 0.2s ease;
|
|
216
|
+
box-shadow: 0 1px 2px rgba(0, 0, 0, 0.04);
|
|
217
|
+
|
|
218
|
+
svg {
|
|
219
|
+
width: 18px;
|
|
220
|
+
height: 18px;
|
|
221
|
+
}
|
|
222
|
+
|
|
223
|
+
&:hover:not(:disabled) {
|
|
224
|
+
background: linear-gradient(135deg, #0EA5E9 0%, #0284C7 100%);
|
|
225
|
+
border-color: #0EA5E9;
|
|
226
|
+
color: white;
|
|
227
|
+
transform: translateY(-1px);
|
|
228
|
+
box-shadow: 0 4px 12px rgba(14, 165, 233, 0.3);
|
|
229
|
+
}
|
|
230
|
+
|
|
231
|
+
&:disabled {
|
|
232
|
+
opacity: 0.6;
|
|
233
|
+
cursor: not-allowed;
|
|
234
|
+
}
|
|
235
|
+
}
|
|
236
|
+
`;
|
|
237
|
+
const IconButtonSuccess = styled__default.default(designSystem.Button)`
|
|
238
|
+
&& {
|
|
239
|
+
background: linear-gradient(135deg, #F0FDF4 0%, #DCFCE7 100%);
|
|
240
|
+
color: #22C55E;
|
|
241
|
+
border: 1px solid #BBF7D0;
|
|
242
|
+
padding: 8px;
|
|
243
|
+
min-width: 38px;
|
|
244
|
+
min-height: 38px;
|
|
245
|
+
width: 38px;
|
|
246
|
+
height: 38px;
|
|
247
|
+
border-radius: 10px;
|
|
248
|
+
display: flex;
|
|
249
|
+
align-items: center;
|
|
250
|
+
justify-content: center;
|
|
251
|
+
transition: all 0.2s ease;
|
|
252
|
+
box-shadow: 0 1px 2px rgba(0, 0, 0, 0.04);
|
|
253
|
+
|
|
254
|
+
svg {
|
|
255
|
+
width: 18px;
|
|
256
|
+
height: 18px;
|
|
257
|
+
}
|
|
258
|
+
|
|
259
|
+
&:hover:not(:disabled) {
|
|
260
|
+
background: linear-gradient(135deg, #22C55E 0%, #16A34A 100%);
|
|
261
|
+
border-color: #22C55E;
|
|
262
|
+
color: white;
|
|
263
|
+
transform: translateY(-1px);
|
|
264
|
+
box-shadow: 0 4px 12px rgba(34, 197, 94, 0.3);
|
|
265
|
+
}
|
|
266
|
+
|
|
267
|
+
&:disabled {
|
|
268
|
+
opacity: 0.6;
|
|
269
|
+
cursor: not-allowed;
|
|
270
|
+
}
|
|
271
|
+
}
|
|
272
|
+
`;
|
|
273
|
+
styled__default.default(designSystem.Button)`
|
|
274
|
+
&& {
|
|
275
|
+
background: linear-gradient(135deg, #FFFBEB 0%, #FEF3C7 100%);
|
|
276
|
+
color: #F59E0B;
|
|
277
|
+
border: 1px solid #FDE68A;
|
|
278
|
+
padding: 8px;
|
|
279
|
+
min-width: 38px;
|
|
280
|
+
min-height: 38px;
|
|
281
|
+
width: 38px;
|
|
282
|
+
height: 38px;
|
|
283
|
+
border-radius: 10px;
|
|
284
|
+
display: flex;
|
|
285
|
+
align-items: center;
|
|
286
|
+
justify-content: center;
|
|
287
|
+
transition: all 0.2s ease;
|
|
288
|
+
box-shadow: 0 1px 2px rgba(0, 0, 0, 0.04);
|
|
289
|
+
|
|
290
|
+
svg {
|
|
291
|
+
width: 18px;
|
|
292
|
+
height: 18px;
|
|
293
|
+
}
|
|
294
|
+
|
|
295
|
+
&:hover:not(:disabled) {
|
|
296
|
+
background: linear-gradient(135deg, #F59E0B 0%, #D97706 100%);
|
|
297
|
+
border-color: #F59E0B;
|
|
298
|
+
color: white;
|
|
299
|
+
transform: translateY(-1px);
|
|
300
|
+
box-shadow: 0 4px 12px rgba(245, 158, 11, 0.3);
|
|
301
|
+
}
|
|
302
|
+
|
|
303
|
+
&:disabled {
|
|
304
|
+
opacity: 0.6;
|
|
305
|
+
cursor: not-allowed;
|
|
306
|
+
}
|
|
307
|
+
}
|
|
308
|
+
`;
|
|
309
|
+
const IconButtonPurple = styled__default.default(designSystem.Button)`
|
|
310
|
+
&& {
|
|
311
|
+
background: linear-gradient(135deg, #FAF5FF 0%, #F3E8FF 100%);
|
|
312
|
+
color: #A855F7;
|
|
313
|
+
border: 1px solid #E9D5FF;
|
|
314
|
+
padding: 8px;
|
|
315
|
+
min-width: 38px;
|
|
316
|
+
min-height: 38px;
|
|
317
|
+
width: 38px;
|
|
318
|
+
height: 38px;
|
|
319
|
+
border-radius: 10px;
|
|
320
|
+
display: flex;
|
|
321
|
+
align-items: center;
|
|
322
|
+
justify-content: center;
|
|
323
|
+
transition: all 0.2s ease;
|
|
324
|
+
box-shadow: 0 1px 2px rgba(0, 0, 0, 0.04);
|
|
325
|
+
|
|
326
|
+
svg {
|
|
327
|
+
width: 18px;
|
|
328
|
+
height: 18px;
|
|
329
|
+
}
|
|
330
|
+
|
|
331
|
+
&:hover:not(:disabled) {
|
|
332
|
+
background: linear-gradient(135deg, #A855F7 0%, #9333EA 100%);
|
|
333
|
+
border-color: #A855F7;
|
|
334
|
+
color: white;
|
|
335
|
+
transform: translateY(-1px);
|
|
336
|
+
box-shadow: 0 4px 12px rgba(168, 85, 247, 0.3);
|
|
337
|
+
}
|
|
338
|
+
|
|
339
|
+
&:disabled {
|
|
340
|
+
opacity: 0.6;
|
|
341
|
+
cursor: not-allowed;
|
|
342
|
+
}
|
|
343
|
+
}
|
|
344
|
+
`;
|
|
345
|
+
const CTAButton = styled__default.default(designSystem.Button)`
|
|
346
|
+
&& {
|
|
347
|
+
background: linear-gradient(135deg, #0EA5E9 0%, #A855F7 100%);
|
|
348
|
+
color: white;
|
|
349
|
+
font-weight: 700;
|
|
350
|
+
font-size: 1rem;
|
|
351
|
+
border: none;
|
|
352
|
+
padding: 14px 28px;
|
|
353
|
+
min-height: 52px;
|
|
354
|
+
border-radius: 12px;
|
|
355
|
+
transition: all 0.2s ease;
|
|
356
|
+
box-shadow: 0 4px 14px rgba(14, 165, 233, 0.25);
|
|
357
|
+
|
|
358
|
+
&:hover:not(:disabled) {
|
|
359
|
+
background: linear-gradient(135deg, #0284C7 0%, #9333EA 100%);
|
|
360
|
+
transform: translateY(-2px);
|
|
361
|
+
box-shadow: 0 6px 20px rgba(14, 165, 233, 0.35);
|
|
362
|
+
}
|
|
363
|
+
|
|
364
|
+
&:active:not(:disabled) {
|
|
365
|
+
transform: translateY(0);
|
|
366
|
+
}
|
|
367
|
+
|
|
368
|
+
&:disabled {
|
|
369
|
+
opacity: 0.6;
|
|
370
|
+
cursor: not-allowed;
|
|
371
|
+
}
|
|
372
|
+
}
|
|
373
|
+
`;
|
|
374
|
+
styled__default.default(designSystem.Button)`
|
|
375
|
+
&& {
|
|
376
|
+
background: transparent;
|
|
377
|
+
color: #0EA5E9;
|
|
378
|
+
font-weight: 500;
|
|
379
|
+
border: none;
|
|
380
|
+
padding: 4px 8px;
|
|
381
|
+
min-height: auto;
|
|
382
|
+
text-decoration: underline;
|
|
383
|
+
transition: all 0.2s ease;
|
|
384
|
+
|
|
385
|
+
&:hover:not(:disabled) {
|
|
386
|
+
color: #0284C7;
|
|
387
|
+
text-decoration: none;
|
|
388
|
+
}
|
|
389
|
+
|
|
390
|
+
&:disabled {
|
|
391
|
+
opacity: 0.6;
|
|
392
|
+
cursor: not-allowed;
|
|
393
|
+
}
|
|
394
|
+
}
|
|
395
|
+
`;
|
|
396
|
+
const WhiteOutlineButton = styled__default.default(designSystem.Button)`
|
|
397
|
+
&& {
|
|
398
|
+
background: rgba(255, 255, 255, 0.15);
|
|
399
|
+
color: white;
|
|
400
|
+
font-weight: 600;
|
|
401
|
+
border: 2px solid rgba(255, 255, 255, 0.4);
|
|
402
|
+
padding: 8px 16px;
|
|
403
|
+
min-height: 38px;
|
|
404
|
+
border-radius: 8px;
|
|
405
|
+
backdrop-filter: blur(4px);
|
|
406
|
+
transition: all 0.2s ease;
|
|
407
|
+
|
|
408
|
+
&:hover:not(:disabled) {
|
|
409
|
+
background: rgba(255, 255, 255, 0.25);
|
|
410
|
+
border-color: rgba(255, 255, 255, 0.6);
|
|
411
|
+
transform: translateY(-1px);
|
|
412
|
+
box-shadow: 0 4px 12px rgba(0, 0, 0, 0.15);
|
|
413
|
+
}
|
|
414
|
+
|
|
415
|
+
&:active:not(:disabled) {
|
|
416
|
+
transform: translateY(0);
|
|
417
|
+
}
|
|
418
|
+
|
|
419
|
+
&:disabled {
|
|
420
|
+
opacity: 0.6;
|
|
421
|
+
cursor: not-allowed;
|
|
422
|
+
}
|
|
423
|
+
}
|
|
424
|
+
`;
|
|
425
|
+
exports.CTAButton = CTAButton;
|
|
426
|
+
exports.DangerButton = DangerButton;
|
|
427
|
+
exports.GradientButton = GradientButton;
|
|
428
|
+
exports.IconButton = IconButton;
|
|
429
|
+
exports.IconButtonDanger = IconButtonDanger;
|
|
430
|
+
exports.IconButtonPrimary = IconButtonPrimary;
|
|
431
|
+
exports.IconButtonPurple = IconButtonPurple;
|
|
432
|
+
exports.IconButtonSuccess = IconButtonSuccess;
|
|
433
|
+
exports.SecondaryButton = SecondaryButton;
|
|
434
|
+
exports.TertiaryButton = TertiaryButton;
|
|
435
|
+
exports.WhiteOutlineButton = WhiteOutlineButton;
|