@rovela-ai/sdk 0.1.7 → 0.1.8
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/emails/templates/base.d.ts +5 -1
- package/dist/emails/templates/base.d.ts.map +1 -1
- package/dist/emails/templates/base.js +107 -13
- package/dist/emails/templates/base.js.map +1 -1
- package/dist/emails/templates/email-verification.js +1 -1
- package/dist/emails/templates/email-verification.js.map +1 -1
- package/dist/emails/templates/order-cancelled.js +1 -1
- package/dist/emails/templates/order-cancelled.js.map +1 -1
- package/dist/emails/templates/order-confirmation.js +5 -5
- package/dist/emails/templates/order-confirmation.js.map +1 -1
- package/dist/emails/templates/order-delivered.js +1 -1
- package/dist/emails/templates/order-delivered.js.map +1 -1
- package/dist/emails/templates/order-shipped.js +1 -1
- package/dist/emails/templates/order-shipped.js.map +1 -1
- package/dist/emails/templates/password-reset.js +1 -1
- package/dist/emails/templates/password-reset.js.map +1 -1
- package/package.json +1 -1
|
@@ -3,10 +3,14 @@
|
|
|
3
3
|
*
|
|
4
4
|
* Base email layout used by all email templates.
|
|
5
5
|
* Provides consistent styling and structure.
|
|
6
|
+
*
|
|
7
|
+
* Theme colors are loaded from the store's blueprint at module init.
|
|
8
|
+
* Falls back to default colors if blueprint is not available.
|
|
6
9
|
*/
|
|
7
10
|
import type { EmailConfig } from '../types';
|
|
8
11
|
declare const STYLES: {
|
|
9
|
-
readonly fontFamily:
|
|
12
|
+
readonly fontFamily: string;
|
|
13
|
+
readonly fontName: string;
|
|
10
14
|
readonly backgroundColor: "#F7F7F7";
|
|
11
15
|
readonly cardBackground: "#FFFFFF";
|
|
12
16
|
readonly cardBorder: "#E8DFD3";
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"base.d.ts","sourceRoot":"","sources":["../../../src/emails/templates/base.ts"],"names":[],"mappings":"AAAA
|
|
1
|
+
{"version":3,"file":"base.d.ts","sourceRoot":"","sources":["../../../src/emails/templates/base.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AAEH,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,UAAU,CAAA;AAkH3C,QAAA,MAAM,MAAM;;;;;;;;;;;CAWF,CAAA;AA0DV,MAAM,WAAW,iBAAiB;IAChC,MAAM,EAAE,WAAW,CAAA;IACnB,KAAK,EAAE,MAAM,CAAA;IACb,OAAO,EAAE,MAAM,CAAA;CAChB;AAED;;;;;;;;;;;;GAYG;AACH,wBAAgB,UAAU,CAAC,EAAE,MAAM,EAAE,KAAK,EAAE,OAAO,EAAE,EAAE,iBAAiB,GAAG,MAAM,CAiChF;AAMD;;GAEG;AACH,wBAAgB,aAAa,CAAC,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,GAAG,MAAM,CAUhE;AAED;;GAEG;AACH,wBAAgB,OAAO,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM,CAE5C;AAED;;GAEG;AACH,wBAAgB,SAAS,CAAC,IAAI,EAAE,MAAM,EAAE,YAAY,GAAE,MAAe,GAAG,MAAM,CAE7E;AAED;;GAEG;AACH,wBAAgB,OAAO,CAAC,OAAO,EAAE,MAAM,GAAG,MAAM,CAQ/C;AAED;;GAEG;AACH,wBAAgB,YAAY,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM,CAKjD;AAED;;GAEG;AACH,wBAAgB,SAAS,CACvB,KAAK,EAAE,MAAM,EACb,OAAO,EAAE,KAAK,CAAC;IAAE,KAAK,EAAE,MAAM,CAAC;IAAC,KAAK,EAAE,MAAM,CAAA;CAAE,CAAC,GAC/C,MAAM,CAiBR;AAMD;;GAEG;AACH,wBAAgB,WAAW,CAAC,IAAI,EAAE,MAAM,EAAE,KAAK,CAAC,EAAE,MAAM,GAAG,MAAM,CAahE;AAMD;;GAEG;AACH,wBAAgB,YAAY,CAC1B,KAAK,EAAE,MAAM,EACb,KAAK,EAAE,MAAM,EACb,OAAO,GAAE;IACP,UAAU,CAAC,EAAE,MAAM,CAAA;IACnB,SAAS,CAAC,EAAE,MAAM,CAAA;IAClB,SAAS,CAAC,EAAE,OAAO,CAAA;IACnB,YAAY,CAAC,EAAE,OAAO,CAAA;CAClB,GACL,MAAM,CAmBR;AAED;;GAEG;AACH,wBAAgB,eAAe,CAC7B,IAAI,EAAE;IAAE,KAAK,EAAE,MAAM,CAAC;IAAC,KAAK,EAAE,MAAM,CAAA;CAAE,EACtC,KAAK,EAAE;IAAE,KAAK,EAAE,MAAM,CAAC;IAAC,KAAK,EAAE,MAAM,CAAA;CAAE,EACvC,YAAY,CAAC,EAAE,OAAO,GACrB,MAAM,CAeR;AAED;;GAEG;AACH,wBAAgB,YAAY,CAAC,OAAO,EAAE,MAAM,GAAG,MAAM,CAMpD;AAED;;GAEG;AACH,wBAAgB,eAAe,CAAC,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,GAAG,MAAM,CAUlE;AAED;;GAEG;AACH,wBAAgB,cAAc,CAAC,KAAK,EAAE,MAAM,EAAE,WAAW,EAAE,MAAM,GAAG,MAAM,CASzE;AAED;;GAEG;AACH,wBAAgB,cAAc,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM,CAEnD;AAGD,OAAO,EAAE,MAAM,EAAE,CAAA"}
|
|
@@ -4,6 +4,9 @@
|
|
|
4
4
|
*
|
|
5
5
|
* Base email layout used by all email templates.
|
|
6
6
|
* Provides consistent styling and structure.
|
|
7
|
+
*
|
|
8
|
+
* Theme colors are loaded from the store's blueprint at module init.
|
|
9
|
+
* Falls back to default colors if blueprint is not available.
|
|
7
10
|
*/
|
|
8
11
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
9
12
|
exports.STYLES = void 0;
|
|
@@ -23,18 +26,100 @@ exports.addressSection = addressSection;
|
|
|
23
26
|
exports.sectionHeading = sectionHeading;
|
|
24
27
|
const utils_1 = require("../utils");
|
|
25
28
|
// =============================================================================
|
|
29
|
+
// Theme Loading
|
|
30
|
+
// =============================================================================
|
|
31
|
+
/**
|
|
32
|
+
* Default email colors (Rovela brand colors as fallback)
|
|
33
|
+
*/
|
|
34
|
+
const DEFAULT_COLORS = {
|
|
35
|
+
primary: '#0CAF7D',
|
|
36
|
+
neutral50: '#FBF8F5',
|
|
37
|
+
neutral200: '#E8DFD3',
|
|
38
|
+
neutral500: '#78716C',
|
|
39
|
+
neutral800: '#1C1917',
|
|
40
|
+
neutral900: '#0A0A0A',
|
|
41
|
+
};
|
|
42
|
+
/**
|
|
43
|
+
* Default email typography
|
|
44
|
+
*/
|
|
45
|
+
const DEFAULT_TYPOGRAPHY = {
|
|
46
|
+
fontFamily: "'Plus Jakarta Sans', system-ui, sans-serif",
|
|
47
|
+
fontName: 'Plus Jakarta Sans',
|
|
48
|
+
};
|
|
49
|
+
/**
|
|
50
|
+
* Build a CSS font-family string from font config.
|
|
51
|
+
*/
|
|
52
|
+
function buildFontFamily(fontName, fallback) {
|
|
53
|
+
const name = fontName || DEFAULT_TYPOGRAPHY.fontName;
|
|
54
|
+
const fallbacks = fallback?.join(', ') || 'system-ui, sans-serif';
|
|
55
|
+
return `'${name}', ${fallbacks}`;
|
|
56
|
+
}
|
|
57
|
+
/**
|
|
58
|
+
* Load theme from blueprint.
|
|
59
|
+
* Called once at module initialization.
|
|
60
|
+
*/
|
|
61
|
+
function loadTheme() {
|
|
62
|
+
try {
|
|
63
|
+
// Dynamic import to avoid circular dependencies and allow graceful fallback
|
|
64
|
+
// eslint-disable-next-line @typescript-eslint/no-require-imports
|
|
65
|
+
const { getTheme } = require('../../core/config');
|
|
66
|
+
const theme = getTheme();
|
|
67
|
+
// Load colors
|
|
68
|
+
const colors = {
|
|
69
|
+
primary: theme.colors?.primary?.[600] || DEFAULT_COLORS.primary,
|
|
70
|
+
neutral50: theme.colors?.neutral?.[50] || DEFAULT_COLORS.neutral50,
|
|
71
|
+
neutral200: theme.colors?.neutral?.[200] || DEFAULT_COLORS.neutral200,
|
|
72
|
+
neutral500: theme.colors?.neutral?.[500] || DEFAULT_COLORS.neutral500,
|
|
73
|
+
neutral800: theme.colors?.neutral?.[800] || DEFAULT_COLORS.neutral800,
|
|
74
|
+
neutral900: theme.colors?.neutral?.[900] || DEFAULT_COLORS.neutral900,
|
|
75
|
+
};
|
|
76
|
+
// Load typography - use body font for emails
|
|
77
|
+
const fontName = theme.typography?.body?.name || DEFAULT_TYPOGRAPHY.fontName;
|
|
78
|
+
const fontFamily = buildFontFamily(theme.typography?.body?.name, theme.typography?.body?.fallback);
|
|
79
|
+
return { colors, fontFamily, fontName };
|
|
80
|
+
}
|
|
81
|
+
catch {
|
|
82
|
+
// Blueprint not available - use defaults
|
|
83
|
+
// This is expected during build time or in test environments
|
|
84
|
+
return {
|
|
85
|
+
colors: DEFAULT_COLORS,
|
|
86
|
+
fontFamily: DEFAULT_TYPOGRAPHY.fontFamily,
|
|
87
|
+
fontName: DEFAULT_TYPOGRAPHY.fontName,
|
|
88
|
+
};
|
|
89
|
+
}
|
|
90
|
+
}
|
|
91
|
+
// Load theme once at module init
|
|
92
|
+
const loadedTheme = loadTheme();
|
|
93
|
+
// =============================================================================
|
|
94
|
+
// Color Utilities
|
|
95
|
+
// =============================================================================
|
|
96
|
+
/**
|
|
97
|
+
* Convert hex color to rgba with opacity.
|
|
98
|
+
* Used for translucent backgrounds and borders.
|
|
99
|
+
*/
|
|
100
|
+
function hexToRgba(hex, opacity) {
|
|
101
|
+
const result = /^#?([a-f\d]{2})([a-f\d]{2})([a-f\d]{2})$/i.exec(hex);
|
|
102
|
+
if (!result)
|
|
103
|
+
return `rgba(0, 0, 0, ${opacity})`;
|
|
104
|
+
const r = parseInt(result[1], 16);
|
|
105
|
+
const g = parseInt(result[2], 16);
|
|
106
|
+
const b = parseInt(result[3], 16);
|
|
107
|
+
return `rgba(${r}, ${g}, ${b}, ${opacity})`;
|
|
108
|
+
}
|
|
109
|
+
// =============================================================================
|
|
26
110
|
// Styles
|
|
27
111
|
// =============================================================================
|
|
28
112
|
const STYLES = {
|
|
29
|
-
fontFamily:
|
|
113
|
+
fontFamily: loadedTheme.fontFamily,
|
|
114
|
+
fontName: loadedTheme.fontName,
|
|
30
115
|
backgroundColor: '#F7F7F7',
|
|
31
116
|
cardBackground: '#FFFFFF',
|
|
32
|
-
cardBorder:
|
|
33
|
-
footerBackground:
|
|
34
|
-
primaryColor:
|
|
35
|
-
textPrimary:
|
|
36
|
-
textSecondary:
|
|
37
|
-
textMuted:
|
|
117
|
+
cardBorder: loadedTheme.colors.neutral200,
|
|
118
|
+
footerBackground: loadedTheme.colors.neutral50,
|
|
119
|
+
primaryColor: loadedTheme.colors.primary,
|
|
120
|
+
textPrimary: loadedTheme.colors.neutral900,
|
|
121
|
+
textSecondary: loadedTheme.colors.neutral500,
|
|
122
|
+
textMuted: loadedTheme.colors.neutral800,
|
|
38
123
|
};
|
|
39
124
|
exports.STYLES = STYLES;
|
|
40
125
|
// =============================================================================
|
|
@@ -42,10 +127,16 @@ exports.STYLES = STYLES;
|
|
|
42
127
|
// =============================================================================
|
|
43
128
|
/**
|
|
44
129
|
* Render the email header with logo.
|
|
130
|
+
* When no logo is provided, returns a spacer row for consistent top padding.
|
|
45
131
|
*/
|
|
46
132
|
function renderHeader(logoUrl) {
|
|
47
133
|
if (!logoUrl) {
|
|
48
|
-
|
|
134
|
+
// Return a spacer row for top padding when no logo
|
|
135
|
+
return `
|
|
136
|
+
<tr>
|
|
137
|
+
<td style="padding-top: 48px;"></td>
|
|
138
|
+
</tr>
|
|
139
|
+
`;
|
|
49
140
|
}
|
|
50
141
|
return `
|
|
51
142
|
<tr>
|
|
@@ -91,6 +182,9 @@ function renderFooter(config) {
|
|
|
91
182
|
* ```
|
|
92
183
|
*/
|
|
93
184
|
function baseLayout({ config, title, content }) {
|
|
185
|
+
// Build Google Fonts URL with dynamic font name
|
|
186
|
+
const fontNameEncoded = STYLES.fontName.replace(/ /g, '+');
|
|
187
|
+
const googleFontsUrl = `https://fonts.googleapis.com/css2?family=${fontNameEncoded}:wght@400;500;600;700&display=swap`;
|
|
94
188
|
return `<!DOCTYPE html>
|
|
95
189
|
<html lang="en">
|
|
96
190
|
<head>
|
|
@@ -99,7 +193,7 @@ function baseLayout({ config, title, content }) {
|
|
|
99
193
|
<title>${(0, utils_1.escapeHtml)(title)}</title>
|
|
100
194
|
<link rel="preconnect" href="https://fonts.googleapis.com">
|
|
101
195
|
<link rel="preconnect" href="https://fonts.gstatic.com" crossorigin>
|
|
102
|
-
<link href="
|
|
196
|
+
<link href="${googleFontsUrl}" rel="stylesheet">
|
|
103
197
|
</head>
|
|
104
198
|
<body style="margin: 0; padding: 0; font-family: ${STYLES.fontFamily}; background-color: ${STYLES.backgroundColor};">
|
|
105
199
|
<table width="100%" cellpadding="0" cellspacing="0" style="background-color: ${STYLES.backgroundColor}; padding: 40px 0;">
|
|
@@ -200,7 +294,7 @@ function statusBadge(text, emoji) {
|
|
|
200
294
|
<table width="100%" cellpadding="0" cellspacing="0">
|
|
201
295
|
<tr>
|
|
202
296
|
<td align="center" style="padding: 0 48px 24px 48px;">
|
|
203
|
-
<div style="display: inline-block; padding: 8px 16px; background-color:
|
|
297
|
+
<div style="display: inline-block; padding: 8px 16px; background-color: ${hexToRgba(STYLES.primaryColor, 0.1)}; border-radius: 9999px; border: 1px solid ${hexToRgba(STYLES.primaryColor, 0.3)};">
|
|
204
298
|
<span style="font-family: ${STYLES.fontFamily}; font-size: 14px; font-weight: 600; color: ${STYLES.primaryColor};">${(0, utils_1.escapeHtml)(displayText)}</span>
|
|
205
299
|
</div>
|
|
206
300
|
</td>
|
|
@@ -216,7 +310,7 @@ function statusBadge(text, emoji) {
|
|
|
216
310
|
*/
|
|
217
311
|
function labeledValue(label, value, options = {}) {
|
|
218
312
|
const { valueColor = STYLES.textPrimary, valueSize = '18px', borderTop = false, borderBottom = false, } = options;
|
|
219
|
-
const borderTopStyle = borderTop ?
|
|
313
|
+
const borderTopStyle = borderTop ? `padding-top: 16px; border-top: 1px solid ${STYLES.cardBorder};` : '';
|
|
220
314
|
const borderBottomStyle = borderBottom ? 'padding-bottom: 16px;' : '';
|
|
221
315
|
return `
|
|
222
316
|
<tr>
|
|
@@ -250,7 +344,7 @@ function labeledValueRow(left, right, borderBottom) {
|
|
|
250
344
|
*/
|
|
251
345
|
function highlightBox(content) {
|
|
252
346
|
return `
|
|
253
|
-
<div style="padding: 20px; background-color:
|
|
347
|
+
<div style="padding: 20px; background-color: ${hexToRgba(STYLES.primaryColor, 0.05)}; border-radius: 12px; border: 1px solid ${hexToRgba(STYLES.primaryColor, 0.2)}; margin-bottom: 32px;">
|
|
254
348
|
${content}
|
|
255
349
|
</div>
|
|
256
350
|
`;
|
|
@@ -263,7 +357,7 @@ function secondaryButton(text, href) {
|
|
|
263
357
|
<table width="100%" cellpadding="0" cellspacing="0">
|
|
264
358
|
<tr>
|
|
265
359
|
<td align="center">
|
|
266
|
-
<a href="${(0, utils_1.escapeHtml)(href)}" style="display: inline-block; padding: 12px 32px; background-color: transparent; color: ${STYLES.primaryColor}; text-decoration: none; border-radius: 12px; border: 1px solid
|
|
360
|
+
<a href="${(0, utils_1.escapeHtml)(href)}" style="display: inline-block; padding: 12px 32px; background-color: transparent; color: ${STYLES.primaryColor}; text-decoration: none; border-radius: 12px; border: 1px solid ${hexToRgba(STYLES.primaryColor, 0.3)}; font-family: ${STYLES.fontFamily}; font-size: 16px; font-weight: 600;">${(0, utils_1.escapeHtml)(text)}</a>
|
|
267
361
|
</td>
|
|
268
362
|
</tr>
|
|
269
363
|
</table>
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"base.js","sourceRoot":"","sources":["../../../src/emails/templates/base.ts"],"names":[],"mappings":";AAAA
|
|
1
|
+
{"version":3,"file":"base.js","sourceRoot":"","sources":["../../../src/emails/templates/base.ts"],"names":[],"mappings":";AAAA;;;;;;;;GAQG;;;AA4MH,gCAiCC;AASD,sCAUC;AAKD,0BAEC;AAKD,8BAEC;AAKD,0BAQC;AAKD,oCAKC;AAKD,8BAoBC;AASD,kCAaC;AASD,oCA4BC;AAKD,0CAmBC;AAKD,oCAMC;AAKD,0CAUC;AAKD,wCASC;AAKD,wCAEC;AA7bD,oCAAqC;AAErC,gFAAgF;AAChF,gBAAgB;AAChB,gFAAgF;AAEhF;;GAEG;AACH,MAAM,cAAc,GAAG;IACrB,OAAO,EAAE,SAAS;IAClB,SAAS,EAAE,SAAS;IACpB,UAAU,EAAE,SAAS;IACrB,UAAU,EAAE,SAAS;IACrB,UAAU,EAAE,SAAS;IACrB,UAAU,EAAE,SAAS;CACb,CAAA;AAEV;;GAEG;AACH,MAAM,kBAAkB,GAAG;IACzB,UAAU,EAAE,4CAA4C;IACxD,QAAQ,EAAE,mBAAmB;CACrB,CAAA;AAEV;;GAEG;AACH,SAAS,eAAe,CACtB,QAA4B,EAC5B,QAA8B;IAE9B,MAAM,IAAI,GAAG,QAAQ,IAAI,kBAAkB,CAAC,QAAQ,CAAA;IACpD,MAAM,SAAS,GAAG,QAAQ,EAAE,IAAI,CAAC,IAAI,CAAC,IAAI,uBAAuB,CAAA;IACjE,OAAO,IAAI,IAAI,MAAM,SAAS,EAAE,CAAA;AAClC,CAAC;AAWD;;;GAGG;AACH,SAAS,SAAS;IAChB,IAAI,CAAC;QACH,4EAA4E;QAC5E,iEAAiE;QACjE,MAAM,EAAE,QAAQ,EAAE,GAAG,OAAO,CAAC,mBAAmB,CAAC,CAAA;QACjD,MAAM,KAAK,GAAG,QAAQ,EAAE,CAAA;QAExB,cAAc;QACd,MAAM,MAAM,GAAG;YACb,OAAO,EAAE,KAAK,CAAC,MAAM,EAAE,OAAO,EAAE,CAAC,GAAG,CAAC,IAAI,cAAc,CAAC,OAAO;YAC/D,SAAS,EAAE,KAAK,CAAC,MAAM,EAAE,OAAO,EAAE,CAAC,EAAE,CAAC,IAAI,cAAc,CAAC,SAAS;YAClE,UAAU,EAAE,KAAK,CAAC,MAAM,EAAE,OAAO,EAAE,CAAC,GAAG,CAAC,IAAI,cAAc,CAAC,UAAU;YACrE,UAAU,EAAE,KAAK,CAAC,MAAM,EAAE,OAAO,EAAE,CAAC,GAAG,CAAC,IAAI,cAAc,CAAC,UAAU;YACrE,UAAU,EAAE,KAAK,CAAC,MAAM,EAAE,OAAO,EAAE,CAAC,GAAG,CAAC,IAAI,cAAc,CAAC,UAAU;YACrE,UAAU,EAAE,KAAK,CAAC,MAAM,EAAE,OAAO,EAAE,CAAC,GAAG,CAAC,IAAI,cAAc,CAAC,UAAU;SACtE,CAAA;QAED,6CAA6C;QAC7C,MAAM,QAAQ,GAAG,KAAK,CAAC,UAAU,EAAE,IAAI,EAAE,IAAI,IAAI,kBAAkB,CAAC,QAAQ,CAAA;QAC5E,MAAM,UAAU,GAAG,eAAe,CAChC,KAAK,CAAC,UAAU,EAAE,IAAI,EAAE,IAAI,EAC5B,KAAK,CAAC,UAAU,EAAE,IAAI,EAAE,QAAQ,CACjC,CAAA;QAED,OAAO,EAAE,MAAM,EAAE,UAAU,EAAE,QAAQ,EAAE,CAAA;IACzC,CAAC;IAAC,MAAM,CAAC;QACP,yCAAyC;QACzC,6DAA6D;QAC7D,OAAO;YACL,MAAM,EAAE,cAAc;YACtB,UAAU,EAAE,kBAAkB,CAAC,UAAU;YACzC,QAAQ,EAAE,kBAAkB,CAAC,QAAQ;SACtC,CAAA;IACH,CAAC;AACH,CAAC;AAED,iCAAiC;AACjC,MAAM,WAAW,GAAG,SAAS,EAAE,CAAA;AAE/B,gFAAgF;AAChF,kBAAkB;AAClB,gFAAgF;AAEhF;;;GAGG;AACH,SAAS,SAAS,CAAC,GAAW,EAAE,OAAe;IAC7C,MAAM,MAAM,GAAG,2CAA2C,CAAC,IAAI,CAAC,GAAG,CAAC,CAAA;IACpE,IAAI,CAAC,MAAM;QAAE,OAAO,iBAAiB,OAAO,GAAG,CAAA;IAE/C,MAAM,CAAC,GAAG,QAAQ,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAA;IACjC,MAAM,CAAC,GAAG,QAAQ,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAA;IACjC,MAAM,CAAC,GAAG,QAAQ,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAA;IAEjC,OAAO,QAAQ,CAAC,KAAK,CAAC,KAAK,CAAC,KAAK,OAAO,GAAG,CAAA;AAC7C,CAAC;AAED,gFAAgF;AAChF,SAAS;AACT,gFAAgF;AAEhF,MAAM,MAAM,GAAG;IACb,UAAU,EAAE,WAAW,CAAC,UAAU;IAClC,QAAQ,EAAE,WAAW,CAAC,QAAQ;IAC9B,eAAe,EAAE,SAAS;IAC1B,cAAc,EAAE,SAAS;IACzB,UAAU,EAAE,WAAW,CAAC,MAAM,CAAC,UAAU;IACzC,gBAAgB,EAAE,WAAW,CAAC,MAAM,CAAC,SAAS;IAC9C,YAAY,EAAE,WAAW,CAAC,MAAM,CAAC,OAAO;IACxC,WAAW,EAAE,WAAW,CAAC,MAAM,CAAC,UAAU;IAC1C,aAAa,EAAE,WAAW,CAAC,MAAM,CAAC,UAAU;IAC5C,SAAS,EAAE,WAAW,CAAC,MAAM,CAAC,UAAU;CAChC,CAAA;AAoUD,wBAAM;AAlUf,gFAAgF;AAChF,oBAAoB;AACpB,gFAAgF;AAEhF;;;GAGG;AACH,SAAS,YAAY,CAAC,OAAe;IACnC,IAAI,CAAC,OAAO,EAAE,CAAC;QACb,mDAAmD;QACnD,OAAO;;;;GAIR,CAAA;IACD,CAAC;IAED,OAAO;;;oBAGW,IAAA,kBAAU,EAAC,OAAO,CAAC;;;GAGpC,CAAA;AACH,CAAC;AAED;;GAEG;AACH,SAAS,YAAY,CAAC,MAAmB;IACvC,OAAO;;yDAEgD,MAAM,CAAC,gBAAgB,2BAA2B,MAAM,CAAC,UAAU;oDACxE,MAAM,CAAC,UAAU,iEAAiE,MAAM,CAAC,SAAS;YAC1I,IAAA,kBAAU,EAAC,MAAM,CAAC,SAAS,CAAC;;UAG9B,MAAM,CAAC,YAAY;QACjB,CAAC,CAAC,8CAA8C,MAAM,CAAC,UAAU,iEAAiE,MAAM,CAAC,aAAa;cACpJ,IAAA,kBAAU,EAAC,MAAM,CAAC,YAAY,CAAC;eAC9B;QACH,CAAC,CAAC,EACN;4CACoC,MAAM,CAAC,UAAU,iEAAiE,MAAM,CAAC,aAAa;qDAC7F,IAAA,kBAAU,EAAC,MAAM,CAAC,YAAY,CAAC,mBAAmB,MAAM,CAAC,YAAY,+CAA+C,IAAA,kBAAU,EAAC,MAAM,CAAC,YAAY,CAAC;;;;GAIrM,CAAA;AACH,CAAC;AAYD;;;;;;;;;;;;GAYG;AACH,SAAgB,UAAU,CAAC,EAAE,MAAM,EAAE,KAAK,EAAE,OAAO,EAAqB;IACtE,gDAAgD;IAChD,MAAM,eAAe,GAAG,MAAM,CAAC,QAAQ,CAAC,OAAO,CAAC,IAAI,EAAE,GAAG,CAAC,CAAA;IAC1D,MAAM,cAAc,GAAG,4CAA4C,eAAe,oCAAoC,CAAA;IAEtH,OAAO;;;;;WAKE,IAAA,kBAAU,EAAC,KAAK,CAAC;;;gBAGZ,cAAc;;mDAEqB,MAAM,CAAC,UAAU,uBAAuB,MAAM,CAAC,eAAe;iFAChC,MAAM,CAAC,eAAe;;;sFAGjB,MAAM,CAAC,cAAc,8DAA8D,MAAM,CAAC,UAAU;YAC9K,YAAY,CAAC,MAAM,CAAC,OAAO,CAAC;;;gBAGxB,OAAO;;;YAGX,YAAY,CAAC,MAAM,CAAC;;;;;;QAMxB,CAAA;AACR,CAAC;AAED,gFAAgF;AAChF,oBAAoB;AACpB,gFAAgF;AAEhF;;GAEG;AACH,SAAgB,aAAa,CAAC,IAAY,EAAE,IAAY;IACtD,OAAO;;;;qBAIY,IAAA,kBAAU,EAAC,IAAI,CAAC,yEAAyE,MAAM,CAAC,YAAY,8EAA8E,MAAM,CAAC,UAAU,yCAAyC,IAAA,kBAAU,EAAC,IAAI,CAAC;;;;GAItR,CAAA;AACH,CAAC;AAED;;GAEG;AACH,SAAgB,OAAO,CAAC,IAAY;IAClC,OAAO,+CAA+C,MAAM,CAAC,UAAU,+CAA+C,MAAM,CAAC,WAAW,4CAA4C,IAAA,kBAAU,EAAC,IAAI,CAAC,OAAO,CAAA;AAC7M,CAAC;AAED;;GAEG;AACH,SAAgB,SAAS,CAAC,IAAY,EAAE,eAAuB,MAAM;IACnE,OAAO,yBAAyB,YAAY,oBAAoB,MAAM,CAAC,UAAU,mEAAmE,MAAM,CAAC,aAAa,MAAM,IAAI,MAAM,CAAA;AAC1L,CAAC;AAED;;GAEG;AACH,SAAgB,OAAO,CAAC,OAAe;IACrC,OAAO;mDAC0C,MAAM,CAAC,gBAAgB,4CAA4C,MAAM,CAAC,UAAU;0CAC7F,MAAM,CAAC,UAAU,iEAAiE,MAAM,CAAC,aAAa;UACtI,OAAO;;;GAGd,CAAA;AACH,CAAC;AAED;;GAEG;AACH,SAAgB,YAAY,CAAC,IAAY;IACvC,OAAO,OAAO,CAAC;;eAEF,IAAA,kBAAU,EAAC,IAAI,CAAC,mBAAmB,MAAM,CAAC,YAAY,oDAAoD,IAAA,kBAAU,EAAC,IAAI,CAAC;GACtI,CAAC,CAAA;AACJ,CAAC;AAED;;GAEG;AACH,SAAgB,SAAS,CACvB,KAAa,EACb,OAAgD;IAEhD,MAAM,WAAW,GAAG,OAAO;SACxB,GAAG,CACF,CAAC,CAAC,EAAE,EAAE,CAAC;kDACqC,MAAM,CAAC,UAAU,iEAAiE,MAAM,CAAC,aAAa;gCACxH,MAAM,CAAC,SAAS,MAAM,IAAA,kBAAU,EAAC,CAAC,CAAC,KAAK,CAAC,cAAc,IAAA,kBAAU,EAAC,CAAC,CAAC,KAAK,CAAC;;KAErG,CACA;SACA,IAAI,CAAC,EAAE,CAAC,CAAA;IAEX,OAAO;mDAC0C,MAAM,CAAC,gBAAgB,4CAA4C,MAAM,CAAC,UAAU;oDACnF,MAAM,CAAC,UAAU,+CAA+C,MAAM,CAAC,WAAW,MAAM,IAAA,kBAAU,EAAC,KAAK,CAAC;QACrJ,WAAW;;GAEhB,CAAA;AACH,CAAC;AAED,gFAAgF;AAChF,gBAAgB;AAChB,gFAAgF;AAEhF;;GAEG;AACH,SAAgB,WAAW,CAAC,IAAY,EAAE,KAAc;IACtD,MAAM,WAAW,GAAG,KAAK,CAAC,CAAC,CAAC,GAAG,KAAK,IAAI,IAAI,EAAE,CAAC,CAAC,CAAC,KAAK,IAAI,EAAE,CAAA;IAC5D,OAAO;;;;oFAI2E,SAAS,CAAC,MAAM,CAAC,YAAY,EAAE,GAAG,CAAC,8CAA8C,SAAS,CAAC,MAAM,CAAC,YAAY,EAAE,GAAG,CAAC;wCAChK,MAAM,CAAC,UAAU,+CAA+C,MAAM,CAAC,YAAY,MAAM,IAAA,kBAAU,EAAC,WAAW,CAAC;;;;;GAKrJ,CAAA;AACH,CAAC;AAED,gFAAgF;AAChF,0BAA0B;AAC1B,gFAAgF;AAEhF;;GAEG;AACH,SAAgB,YAAY,CAC1B,KAAa,EACb,KAAa,EACb,UAKI,EAAE;IAEN,MAAM,EACJ,UAAU,GAAG,MAAM,CAAC,WAAW,EAC/B,SAAS,GAAG,MAAM,EAClB,SAAS,GAAG,KAAK,EACjB,YAAY,GAAG,KAAK,GACrB,GAAG,OAAO,CAAA;IAEX,MAAM,cAAc,GAAG,SAAS,CAAC,CAAC,CAAC,4CAA4C,MAAM,CAAC,UAAU,GAAG,CAAC,CAAC,CAAC,EAAE,CAAA;IACxG,MAAM,iBAAiB,GAAG,YAAY,CAAC,CAAC,CAAC,uBAAuB,CAAC,CAAC,CAAC,EAAE,CAAA;IAErE,OAAO;;mBAEU,cAAc,IAAI,iBAAiB;oDACF,MAAM,CAAC,UAAU,+CAA+C,MAAM,CAAC,aAAa,yDAAyD,IAAA,kBAAU,EAAC,KAAK,CAAC;4CACtK,MAAM,CAAC,UAAU,gBAAgB,SAAS,8BAA8B,UAAU,MAAM,IAAA,kBAAU,EAAC,KAAK,CAAC;;;GAGlJ,CAAA;AACH,CAAC;AAED;;GAEG;AACH,SAAgB,eAAe,CAC7B,IAAsC,EACtC,KAAuC,EACvC,YAAsB;IAEtB,MAAM,WAAW,GAAG,YAAY,CAAC,CAAC,CAAC,uBAAuB,CAAC,CAAC,CAAC,EAAE,CAAA;IAE/D,OAAO;;mBAEU,WAAW;oDACsB,MAAM,CAAC,UAAU,+CAA+C,MAAM,CAAC,aAAa,yDAAyD,IAAA,kBAAU,EAAC,IAAI,CAAC,KAAK,CAAC;4CAC3K,MAAM,CAAC,UAAU,+CAA+C,MAAM,CAAC,WAAW,MAAM,IAAA,kBAAU,EAAC,IAAI,CAAC,KAAK,CAAC;;iCAEzH,WAAW;oDACQ,MAAM,CAAC,UAAU,+CAA+C,MAAM,CAAC,aAAa,yDAAyD,IAAA,kBAAU,EAAC,KAAK,CAAC,KAAK,CAAC;4CAC5K,MAAM,CAAC,UAAU,+CAA+C,MAAM,CAAC,WAAW,MAAM,IAAA,kBAAU,EAAC,KAAK,CAAC,KAAK,CAAC;;;GAGxJ,CAAA;AACH,CAAC;AAED;;GAEG;AACH,SAAgB,YAAY,CAAC,OAAe;IAC1C,OAAO;mDAC0C,SAAS,CAAC,MAAM,CAAC,YAAY,EAAE,IAAI,CAAC,4CAA4C,SAAS,CAAC,MAAM,CAAC,YAAY,EAAE,GAAG,CAAC;QAC9J,OAAO;;GAEZ,CAAA;AACH,CAAC;AAED;;GAEG;AACH,SAAgB,eAAe,CAAC,IAAY,EAAE,IAAY;IACxD,OAAO;;;;qBAIY,IAAA,kBAAU,EAAC,IAAI,CAAC,6FAA6F,MAAM,CAAC,YAAY,mEAAmE,SAAS,CAAC,MAAM,CAAC,YAAY,EAAE,GAAG,CAAC,kBAAkB,MAAM,CAAC,UAAU,yCAAyC,IAAA,kBAAU,EAAC,IAAI,CAAC;;;;GAIpV,CAAA;AACH,CAAC;AAED;;GAEG;AACH,SAAgB,cAAc,CAAC,KAAa,EAAE,WAAmB;IAC/D,OAAO;;oDAE2C,MAAM,CAAC,UAAU,+CAA+C,MAAM,CAAC,WAAW,MAAM,IAAA,kBAAU,EAAC,KAAK,CAAC;0CACnH,MAAM,CAAC,UAAU,iEAAiE,MAAM,CAAC,aAAa;UACtI,WAAW;;;GAGlB,CAAA;AACH,CAAC;AAED;;GAEG;AACH,SAAgB,cAAc,CAAC,IAAY;IACzC,OAAO,+CAA+C,MAAM,CAAC,UAAU,+CAA+C,MAAM,CAAC,WAAW,MAAM,IAAA,kBAAU,EAAC,IAAI,CAAC,OAAO,CAAA;AACvK,CAAC"}
|
|
@@ -35,7 +35,7 @@ function renderEmailVerification(data) {
|
|
|
35
35
|
|
|
36
36
|
${(0, base_1.primaryButton)('Verify Email Address', data.verificationLink)}
|
|
37
37
|
|
|
38
|
-
${(0, base_1.paragraph)(`This link will expire in ${(0, utils_1.escapeHtml)(data.expiryTime)} hours for security reasons.`, '24px')}
|
|
38
|
+
${(0, base_1.paragraph)(`This link will expire in ${(0, utils_1.escapeHtml)(data.expiryTime)} ${data.expiryTime === '1' ? 'hour' : 'hours'} for security reasons.`, '24px')}
|
|
39
39
|
|
|
40
40
|
${(0, base_1.paragraph)("If you didn't create an account with us, you can safely ignore this email.", '24px')}
|
|
41
41
|
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"email-verification.js","sourceRoot":"","sources":["../../../src/emails/templates/email-verification.ts"],"names":[],"mappings":";AAAA;;;;GAIG;;AA4BH,0DA+BC;AAKD,kEAEC;AA/DD,oCAAqC;AACrC,iCAMe;AAEf;;;;;;;;;;;;;;;GAeG;AACH,SAAgB,uBAAuB,CAAC,IAA2B;IACjE,MAAM,OAAO,GAAG;MACZ,IAAA,cAAO,EAAC,2BAA2B,CAAC;;MAEpC,IAAA,gBAAS,EAAC,MAAM,IAAA,kBAAU,EAAC,IAAI,CAAC,YAAY,CAAC,GAAG,CAAC;;MAEjD,IAAA,gBAAS,EACT,8BAA8B,IAAA,kBAAU,EAAC,IAAI,CAAC,MAAM,CAAC,SAAS,CAAC,oHAAoH,EACnL,MAAM,CACP;;MAEC,IAAA,oBAAa,EAAC,sBAAsB,EAAE,IAAI,CAAC,gBAAgB,CAAC;;MAE5D,IAAA,gBAAS,EACT,4BAA4B,IAAA,kBAAU,EAAC,IAAI,CAAC,UAAU,CAAC,
|
|
1
|
+
{"version":3,"file":"email-verification.js","sourceRoot":"","sources":["../../../src/emails/templates/email-verification.ts"],"names":[],"mappings":";AAAA;;;;GAIG;;AA4BH,0DA+BC;AAKD,kEAEC;AA/DD,oCAAqC;AACrC,iCAMe;AAEf;;;;;;;;;;;;;;;GAeG;AACH,SAAgB,uBAAuB,CAAC,IAA2B;IACjE,MAAM,OAAO,GAAG;MACZ,IAAA,cAAO,EAAC,2BAA2B,CAAC;;MAEpC,IAAA,gBAAS,EAAC,MAAM,IAAA,kBAAU,EAAC,IAAI,CAAC,YAAY,CAAC,GAAG,CAAC;;MAEjD,IAAA,gBAAS,EACT,8BAA8B,IAAA,kBAAU,EAAC,IAAI,CAAC,MAAM,CAAC,SAAS,CAAC,oHAAoH,EACnL,MAAM,CACP;;MAEC,IAAA,oBAAa,EAAC,sBAAsB,EAAE,IAAI,CAAC,gBAAgB,CAAC;;MAE5D,IAAA,gBAAS,EACT,4BAA4B,IAAA,kBAAU,EAAC,IAAI,CAAC,UAAU,CAAC,IAAI,IAAI,CAAC,UAAU,KAAK,GAAG,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,OAAO,wBAAwB,EAC7H,MAAM,CACP;;MAEC,IAAA,gBAAS,EACT,4EAA4E,EAC5E,MAAM,CACP;;MAEC,IAAA,mBAAY,EAAC,IAAI,CAAC,gBAAgB,CAAC;GACtC,CAAA;IAED,OAAO,IAAA,iBAAU,EAAC;QAChB,MAAM,EAAE,IAAI,CAAC,MAAM;QACnB,KAAK,EAAE,2BAA2B;QAClC,OAAO;KACR,CAAC,CAAA;AACJ,CAAC;AAED;;GAEG;AACH,SAAgB,2BAA2B,CAAC,SAAiB;IAC3D,OAAO,+BAA+B,SAAS,EAAE,CAAA;AACnD,CAAC"}
|
|
@@ -37,7 +37,7 @@ function renderOrderCancelled(data) {
|
|
|
37
37
|
: '';
|
|
38
38
|
// Order details box
|
|
39
39
|
const orderDetailsBox = `
|
|
40
|
-
<div style="padding: 24px; background-color:
|
|
40
|
+
<div style="padding: 24px; background-color: ${base_1.STYLES.footerBackground}; border-radius: 16px; border: 1px solid ${base_1.STYLES.cardBorder}; margin-bottom: 32px;">
|
|
41
41
|
<table width="100%" cellpadding="0" cellspacing="0">
|
|
42
42
|
${(0, base_1.labeledValue)('Order Number', `#${data.orderNumber}`, {
|
|
43
43
|
valueSize: '16px',
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"order-cancelled.js","sourceRoot":"","sources":["../../../src/emails/templates/order-cancelled.ts"],"names":[],"mappings":";AAAA;;;;GAIG;;AAoCH,oDAyDC;AAKD,4DAKC;AApGD,oCAAqC;AACrC,iCAQe;AAEf,gFAAgF;AAChF,gBAAgB;AAChB,gFAAgF;AAEhF;;;;;;;;;;;;;;;;;GAiBG;AACH,SAAgB,oBAAoB,CAAC,IAAwB;IAC3D,iCAAiC;IACjC,MAAM,UAAU,GAAG,IAAI,CAAC,kBAAkB;QACxC,CAAC,CAAC,IAAI,IAAA,kBAAU,EAAC,IAAI,CAAC,kBAAkB,CAAC,EAAE;QAC3C,CAAC,CAAC,EAAE,CAAA;IAEN,oBAAoB;IACpB,MAAM,eAAe,GAAG
|
|
1
|
+
{"version":3,"file":"order-cancelled.js","sourceRoot":"","sources":["../../../src/emails/templates/order-cancelled.ts"],"names":[],"mappings":";AAAA;;;;GAIG;;AAoCH,oDAyDC;AAKD,4DAKC;AApGD,oCAAqC;AACrC,iCAQe;AAEf,gFAAgF;AAChF,gBAAgB;AAChB,gFAAgF;AAEhF;;;;;;;;;;;;;;;;;GAiBG;AACH,SAAgB,oBAAoB,CAAC,IAAwB;IAC3D,iCAAiC;IACjC,MAAM,UAAU,GAAG,IAAI,CAAC,kBAAkB;QACxC,CAAC,CAAC,IAAI,IAAA,kBAAU,EAAC,IAAI,CAAC,kBAAkB,CAAC,EAAE;QAC3C,CAAC,CAAC,EAAE,CAAA;IAEN,oBAAoB;IACpB,MAAM,eAAe,GAAG;mDACyB,aAAM,CAAC,gBAAgB,4CAA4C,aAAM,CAAC,UAAU;;UAE7H,IAAA,mBAAY,EAAC,cAAc,EAAE,IAAI,IAAI,CAAC,WAAW,EAAE,EAAE;QACrD,SAAS,EAAE,MAAM;QACjB,YAAY,EAAE,IAAI;KACnB,CAAC;UACA,IAAA,mBAAY,EAAC,cAAc,EAAE,IAAI,CAAC,gBAAgB,EAAE;QACpD,SAAS,EAAE,MAAM;QACjB,SAAS,EAAE,IAAI;KAChB,CAAC;;;GAGP,CAAA;IAED,yBAAyB;IACzB,MAAM,aAAa,GAAG,IAAA,mBAAY,EAAC;kDACa,aAAM,CAAC,UAAU,+CAA+C,aAAM,CAAC,WAAW;wCAC5F,aAAM,CAAC,UAAU,iEAAiE,aAAM,CAAC,aAAa;QACtI,IAAA,kBAAU,EAAC,IAAI,CAAC,aAAa,CAAC;;GAEnC,CAAC,CAAA;IAEF,MAAM,OAAO,GAAG;MACZ,IAAA,cAAO,EAAC,iBAAiB,CAAC;;MAE1B,IAAA,gBAAS,EAAC,MAAM,IAAA,kBAAU,EAAC,IAAI,CAAC,YAAY,CAAC,GAAG,CAAC;;MAEjD,IAAA,gBAAS,EACT,eAAe,IAAA,kBAAU,EAAC,IAAI,CAAC,WAAW,CAAC,oCAAoC,UAAU,EAAE,EAC3F,MAAM,CACP;;MAEC,eAAe;;MAEf,aAAa;;MAEb,IAAA,gBAAS,EACT,4GAA4G,EAC5G,MAAM,CACP;;MAEC,IAAA,oBAAa,EAAC,mBAAmB,EAAE,IAAI,CAAC,MAAM,CAAC,OAAO,CAAC;GAC1D,CAAA;IAED,OAAO,IAAA,iBAAU,EAAC;QAChB,MAAM,EAAE,IAAI,CAAC,MAAM;QACnB,KAAK,EAAE,sBAAsB,IAAI,CAAC,WAAW,EAAE;QAC/C,OAAO;KACR,CAAC,CAAA;AACJ,CAAC;AAED;;GAEG;AACH,SAAgB,wBAAwB,CACtC,SAAiB,EACjB,WAAmB;IAEnB,OAAO,sBAAsB,WAAW,MAAM,SAAS,EAAE,CAAA;AAC3D,CAAC"}
|
|
@@ -15,7 +15,7 @@ const base_1 = require("./base");
|
|
|
15
15
|
function renderOrderItem(item) {
|
|
16
16
|
const imageHtml = item.imageUrl
|
|
17
17
|
? `<td width="80" style="padding-right: 16px;">
|
|
18
|
-
<img src="${(0, utils_1.escapeHtml)(item.imageUrl)}" alt="${(0, utils_1.escapeHtml)(item.name)}" style="width: 80px; height: 80px; border-radius: 8px; object-fit: cover; border: 1px solid
|
|
18
|
+
<img src="${(0, utils_1.escapeHtml)(item.imageUrl)}" alt="${(0, utils_1.escapeHtml)(item.name)}" style="width: 80px; height: 80px; border-radius: 8px; object-fit: cover; border: 1px solid ${base_1.STYLES.cardBorder};" />
|
|
19
19
|
</td>`
|
|
20
20
|
: '';
|
|
21
21
|
return `
|
|
@@ -39,7 +39,7 @@ function renderOrderItems(items) {
|
|
|
39
39
|
// =============================================================================
|
|
40
40
|
function renderOrderSummary(data) {
|
|
41
41
|
return `
|
|
42
|
-
<div style="padding: 24px; background-color:
|
|
42
|
+
<div style="padding: 24px; background-color: ${base_1.STYLES.footerBackground}; border-radius: 16px; border: 1px solid ${base_1.STYLES.cardBorder}; margin-bottom: 32px;">
|
|
43
43
|
<table width="100%" cellpadding="0" cellspacing="0">
|
|
44
44
|
<tr>
|
|
45
45
|
<td style="padding-bottom: 8px;">
|
|
@@ -66,10 +66,10 @@ function renderOrderSummary(data) {
|
|
|
66
66
|
</td>
|
|
67
67
|
</tr>
|
|
68
68
|
<tr>
|
|
69
|
-
<td style="padding-top: 16px; border-top: 1px solid
|
|
69
|
+
<td style="padding-top: 16px; border-top: 1px solid ${base_1.STYLES.cardBorder};">
|
|
70
70
|
<p style="margin: 0; font-family: ${base_1.STYLES.fontFamily}; font-size: 18px; font-weight: 700; color: ${base_1.STYLES.textPrimary};">Total</p>
|
|
71
71
|
</td>
|
|
72
|
-
<td align="right" style="padding-top: 16px; border-top: 1px solid
|
|
72
|
+
<td align="right" style="padding-top: 16px; border-top: 1px solid ${base_1.STYLES.cardBorder};">
|
|
73
73
|
<p style="margin: 0; font-family: ${base_1.STYLES.fontFamily}; font-size: 18px; font-weight: 700; color: ${base_1.STYLES.textPrimary};">${(0, utils_1.escapeHtml)(data.total)}</p>
|
|
74
74
|
</td>
|
|
75
75
|
</tr>
|
|
@@ -109,7 +109,7 @@ function renderOrderConfirmation(data) {
|
|
|
109
109
|
const badge = (0, base_1.statusBadge)('Order Confirmed');
|
|
110
110
|
// Order details box
|
|
111
111
|
const orderDetailsBox = `
|
|
112
|
-
<div style="padding: 24px; background-color:
|
|
112
|
+
<div style="padding: 24px; background-color: ${base_1.STYLES.footerBackground}; border-radius: 16px; border: 1px solid ${base_1.STYLES.cardBorder}; margin-bottom: 32px;">
|
|
113
113
|
<table width="100%" cellpadding="0" cellspacing="0">
|
|
114
114
|
${(0, base_1.labeledValueRow)({ label: 'Order Number', value: `#${data.orderNumber}` }, { label: 'Order Date', value: data.orderDate }, true)}
|
|
115
115
|
${(0, base_1.labeledValue)('Payment Status', data.paymentStatus, {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"order-confirmation.js","sourceRoot":"","sources":["../../../src/emails/templates/order-confirmation.ts"],"names":[],"mappings":";AAAA;;;;GAIG;;AA4HH,0DAsDC;AAKD,kEAKC;AAzLD,oCAAwD;AACxD,iCAWe;AAEf,gFAAgF;AAChF,uBAAuB;AACvB,gFAAgF;AAEhF,SAAS,eAAe,CAAC,IAAoB;IAC3C,MAAM,SAAS,GAAG,IAAI,CAAC,QAAQ;QAC7B,CAAC,CAAC;oBACc,IAAA,kBAAU,EAAC,IAAI,CAAC,QAAQ,CAAC,UAAU,IAAA,kBAAU,EAAC,IAAI,CAAC,IAAI,CAAC;
|
|
1
|
+
{"version":3,"file":"order-confirmation.js","sourceRoot":"","sources":["../../../src/emails/templates/order-confirmation.ts"],"names":[],"mappings":"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"}
|
|
@@ -35,7 +35,7 @@ function renderOrderDelivered(data) {
|
|
|
35
35
|
const badge = (0, base_1.statusBadge)('Delivered');
|
|
36
36
|
// Delivery details box
|
|
37
37
|
const deliveryDetailsBox = `
|
|
38
|
-
<div style="padding: 24px; background-color:
|
|
38
|
+
<div style="padding: 24px; background-color: ${base_1.STYLES.footerBackground}; border-radius: 16px; border: 1px solid ${base_1.STYLES.cardBorder}; margin-bottom: 32px;">
|
|
39
39
|
<table width="100%" cellpadding="0" cellspacing="0">
|
|
40
40
|
${(0, base_1.labeledValue)('Order Number', `#${data.orderNumber}`, { borderBottom: true })}
|
|
41
41
|
${(0, base_1.labeledValue)('Delivered On', data.deliveryDate, {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"order-delivered.js","sourceRoot":"","sources":["../../../src/emails/templates/order-delivered.ts"],"names":[],"mappings":";AAAA;;;;GAIG;;AAuCH,oDA0DC;AAKD,4DAKC;AAxGD,oCAAqC;AACrC,iCAUe;AAEf,gFAAgF;AAChF,gBAAgB;AAChB,gFAAgF;AAEhF;;;;;;;;;;;;;;;;;;GAkBG;AACH,SAAgB,oBAAoB,CAAC,IAAwB;IAC3D,MAAM,KAAK,GAAG,IAAA,kBAAW,EAAC,WAAW,CAAC,CAAA;IAEtC,uBAAuB;IACvB,MAAM,kBAAkB,GAAG
|
|
1
|
+
{"version":3,"file":"order-delivered.js","sourceRoot":"","sources":["../../../src/emails/templates/order-delivered.ts"],"names":[],"mappings":";AAAA;;;;GAIG;;AAuCH,oDA0DC;AAKD,4DAKC;AAxGD,oCAAqC;AACrC,iCAUe;AAEf,gFAAgF;AAChF,gBAAgB;AAChB,gFAAgF;AAEhF;;;;;;;;;;;;;;;;;;GAkBG;AACH,SAAgB,oBAAoB,CAAC,IAAwB;IAC3D,MAAM,KAAK,GAAG,IAAA,kBAAW,EAAC,WAAW,CAAC,CAAA;IAEtC,uBAAuB;IACvB,MAAM,kBAAkB,GAAG;mDACsB,aAAM,CAAC,gBAAgB,4CAA4C,aAAM,CAAC,UAAU;;UAE7H,IAAA,mBAAY,EAAC,cAAc,EAAE,IAAI,IAAI,CAAC,WAAW,EAAE,EAAE,EAAE,YAAY,EAAE,IAAI,EAAE,CAAC;UAC5E,IAAA,mBAAY,EAAC,cAAc,EAAE,IAAI,CAAC,YAAY,EAAE;QAChD,UAAU,EAAE,aAAM,CAAC,YAAY;QAC/B,SAAS,EAAE,IAAI;QACf,YAAY,EAAE,IAAI;KACnB,CAAC;UACA,IAAA,mBAAY,EAAC,cAAc,EAAE,IAAI,CAAC,gBAAgB,EAAE;QACpD,SAAS,EAAE,MAAM;QACjB,SAAS,EAAE,IAAI;KAChB,CAAC;;;GAGP,CAAA;IAED,mBAAmB;IACnB,MAAM,eAAe,GAAG,IAAA,mBAAY,EAAC;kDACW,aAAM,CAAC,UAAU,+CAA+C,aAAM,CAAC,WAAW;iDACnF,aAAM,CAAC,UAAU,iEAAiE,aAAM,CAAC,aAAa;;;;;;qBAMlI,IAAA,kBAAU,EAAC,IAAI,CAAC,SAAS,CAAC,yEAAyE,aAAM,CAAC,YAAY,8EAA8E,aAAM,CAAC,UAAU;;;;GAIvO,CAAC,CAAA;IAEF,MAAM,OAAO,GAAG;MACZ,KAAK;MACL,IAAA,cAAO,EAAC,gCAAgC,CAAC;;iDAEE,aAAM,CAAC,UAAU,mEAAmE,aAAM,CAAC,aAAa;WAC9I,IAAA,kBAAU,EAAC,IAAI,CAAC,YAAY,CAAC;;;MAGlC,kBAAkB;;MAElB,eAAe;;MAEf,IAAA,gBAAS,EAAC,uCAAuC,EAAE,MAAM,CAAC;;MAE1D,IAAA,sBAAe,EAAC,qBAAqB,EAAE,IAAI,CAAC,eAAe,CAAC;GAC/D,CAAA;IAED,OAAO,IAAA,iBAAU,EAAC;QAChB,MAAM,EAAE,IAAI,CAAC,MAAM;QACnB,KAAK,EAAE,sBAAsB,IAAI,CAAC,WAAW,EAAE;QAC/C,OAAO;KACR,CAAC,CAAA;AACJ,CAAC;AAED;;GAEG;AACH,SAAgB,wBAAwB,CACtC,SAAiB,EACjB,WAAmB;IAEnB,OAAO,oCAAoC,WAAW,MAAM,SAAS,EAAE,CAAA;AACzE,CAAC"}
|
|
@@ -36,7 +36,7 @@ function renderOrderShipped(data) {
|
|
|
36
36
|
const badge = (0, base_1.statusBadge)('Order Shipped', '📦');
|
|
37
37
|
// Tracking info box
|
|
38
38
|
const trackingInfoBox = `
|
|
39
|
-
<div style="padding: 24px; background-color:
|
|
39
|
+
<div style="padding: 24px; background-color: ${base_1.STYLES.footerBackground}; border-radius: 16px; border: 1px solid ${base_1.STYLES.cardBorder}; margin-bottom: 32px;">
|
|
40
40
|
<table width="100%" cellpadding="0" cellspacing="0">
|
|
41
41
|
${(0, base_1.labeledValue)('Order Number', `#${data.orderNumber}`, { borderBottom: true })}
|
|
42
42
|
${(0, base_1.labeledValue)('Tracking Number', data.trackingNumber, {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"order-shipped.js","sourceRoot":"","sources":["../../../src/emails/templates/order-shipped.ts"],"names":[],"mappings":";AAAA;;;;GAIG;;AAuCH,gDAiDC;AAKD,wDAKC;AA/FD,oCAAwD;AACxD,iCASe;AAEf,gFAAgF;AAChF,gBAAgB;AAChB,gFAAgF;AAEhF;;;;;;;;;;;;;;;;;;;GAmBG;AACH,SAAgB,kBAAkB,CAAC,IAAsB;IACvD,MAAM,KAAK,GAAG,IAAA,kBAAW,EAAC,eAAe,EAAE,IAAI,CAAC,CAAA;IAEhD,oBAAoB;IACpB,MAAM,eAAe,GAAG
|
|
1
|
+
{"version":3,"file":"order-shipped.js","sourceRoot":"","sources":["../../../src/emails/templates/order-shipped.ts"],"names":[],"mappings":";AAAA;;;;GAIG;;AAuCH,gDAiDC;AAKD,wDAKC;AA/FD,oCAAwD;AACxD,iCASe;AAEf,gFAAgF;AAChF,gBAAgB;AAChB,gFAAgF;AAEhF;;;;;;;;;;;;;;;;;;;GAmBG;AACH,SAAgB,kBAAkB,CAAC,IAAsB;IACvD,MAAM,KAAK,GAAG,IAAA,kBAAW,EAAC,eAAe,EAAE,IAAI,CAAC,CAAA;IAEhD,oBAAoB;IACpB,MAAM,eAAe,GAAG;mDACyB,aAAM,CAAC,gBAAgB,4CAA4C,aAAM,CAAC,UAAU;;UAE7H,IAAA,mBAAY,EAAC,cAAc,EAAE,IAAI,IAAI,CAAC,WAAW,EAAE,EAAE,EAAE,YAAY,EAAE,IAAI,EAAE,CAAC;UAC5E,IAAA,mBAAY,EAAC,iBAAiB,EAAE,IAAI,CAAC,cAAc,EAAE;QACrD,UAAU,EAAE,aAAM,CAAC,YAAY;QAC/B,SAAS,EAAE,IAAI;QACf,YAAY,EAAE,IAAI;KACnB,CAAC;UACA,IAAA,mBAAY,EAAC,SAAS,EAAE,IAAI,CAAC,WAAW,EAAE;QAC1C,SAAS,EAAE,MAAM;QACjB,SAAS,EAAE,IAAI;KAChB,CAAC;;;GAGP,CAAA;IAED,mCAAmC;IACnC,MAAM,oBAAoB,GAAG,IAAA,mBAAY,EAAC;gDACI,aAAM,CAAC,UAAU,+CAA+C,aAAM,CAAC,aAAa;wCAC5F,aAAM,CAAC,UAAU,+CAA+C,aAAM,CAAC,YAAY,0BAA0B,IAAA,kBAAU,EAAC,IAAI,CAAC,qBAAqB,CAAC;GACxL,CAAC,CAAA;IAEF,MAAM,OAAO,GAAG;MACZ,KAAK;MACL,IAAA,cAAO,EAAC,2BAA2B,CAAC;;iDAEO,aAAM,CAAC,UAAU,mEAAmE,aAAM,CAAC,aAAa;WAC9I,IAAA,kBAAU,EAAC,IAAI,CAAC,YAAY,CAAC;;;MAGlC,eAAe;;MAEf,oBAAoB;;MAEpB,IAAA,qBAAc,EAAC,aAAa,EAAE,IAAA,yBAAiB,EAAC,IAAI,CAAC,eAAe,CAAC,CAAC;;MAEtE,IAAA,oBAAa,EAAC,oBAAoB,EAAE,IAAI,CAAC,WAAW,CAAC;GACxD,CAAA;IAED,OAAO,IAAA,iBAAU,EAAC;QAChB,MAAM,EAAE,IAAI,CAAC,MAAM;QACnB,KAAK,EAAE,6BAA6B,IAAI,CAAC,WAAW,EAAE;QACtD,OAAO;KACR,CAAC,CAAA;AACJ,CAAC;AAED;;GAEG;AACH,SAAgB,sBAAsB,CACpC,SAAiB,EACjB,WAAmB;IAEnB,OAAO,6BAA6B,WAAW,MAAM,SAAS,EAAE,CAAA;AAClE,CAAC"}
|
|
@@ -34,7 +34,7 @@ function renderPasswordResetEmail(data) {
|
|
|
34
34
|
|
|
35
35
|
${(0, base_1.primaryButton)('Reset Password', data.resetLink)}
|
|
36
36
|
|
|
37
|
-
${(0, base_1.paragraph)(`This link will expire in ${(0, utils_1.escapeHtml)(data.expiryTime)} hours for security reasons.`)}
|
|
37
|
+
${(0, base_1.paragraph)(`This link will expire in ${(0, utils_1.escapeHtml)(data.expiryTime)} ${data.expiryTime === '1' ? 'hour' : 'hours'} for security reasons.`)}
|
|
38
38
|
|
|
39
39
|
${(0, base_1.paragraph)("If you didn't request a password reset, you can safely ignore this email. Your password will remain unchanged.", '24px')}
|
|
40
40
|
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"password-reset.js","sourceRoot":"","sources":["../../../src/emails/templates/password-reset.ts"],"names":[],"mappings":";AAAA;;;;GAIG;;AA2BH,4DA8BC;AAKD,0DAEC;AA7DD,oCAAqC;AACrC,iCAMe;AAEf;;;;;;;;;;;;;;GAcG;AACH,SAAgB,wBAAwB,CAAC,IAA4B;IACnE,MAAM,OAAO,GAAG;MACZ,IAAA,cAAO,EAAC,qBAAqB,CAAC;;MAE9B,IAAA,gBAAS,EAAC,MAAM,IAAA,kBAAU,EAAC,IAAI,CAAC,YAAY,CAAC,GAAG,CAAC;;MAEjD,IAAA,gBAAS,EACT,gGAAgG,EAChG,MAAM,CACP;;MAEC,IAAA,oBAAa,EAAC,gBAAgB,EAAE,IAAI,CAAC,SAAS,CAAC;;MAE/C,IAAA,gBAAS,EACT,4BAA4B,IAAA,kBAAU,EAAC,IAAI,CAAC,UAAU,CAAC,
|
|
1
|
+
{"version":3,"file":"password-reset.js","sourceRoot":"","sources":["../../../src/emails/templates/password-reset.ts"],"names":[],"mappings":";AAAA;;;;GAIG;;AA2BH,4DA8BC;AAKD,0DAEC;AA7DD,oCAAqC;AACrC,iCAMe;AAEf;;;;;;;;;;;;;;GAcG;AACH,SAAgB,wBAAwB,CAAC,IAA4B;IACnE,MAAM,OAAO,GAAG;MACZ,IAAA,cAAO,EAAC,qBAAqB,CAAC;;MAE9B,IAAA,gBAAS,EAAC,MAAM,IAAA,kBAAU,EAAC,IAAI,CAAC,YAAY,CAAC,GAAG,CAAC;;MAEjD,IAAA,gBAAS,EACT,gGAAgG,EAChG,MAAM,CACP;;MAEC,IAAA,oBAAa,EAAC,gBAAgB,EAAE,IAAI,CAAC,SAAS,CAAC;;MAE/C,IAAA,gBAAS,EACT,4BAA4B,IAAA,kBAAU,EAAC,IAAI,CAAC,UAAU,CAAC,IAAI,IAAI,CAAC,UAAU,KAAK,GAAG,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,OAAO,wBAAwB,CAC9H;;MAEC,IAAA,gBAAS,EACT,gHAAgH,EAChH,MAAM,CACP;;MAEC,IAAA,mBAAY,EAAC,IAAI,CAAC,SAAS,CAAC;GAC/B,CAAA;IAED,OAAO,IAAA,iBAAU,EAAC;QAChB,MAAM,EAAE,IAAI,CAAC,MAAM;QACnB,KAAK,EAAE,qBAAqB;QAC5B,OAAO;KACR,CAAC,CAAA;AACJ,CAAC;AAED;;GAEG;AACH,SAAgB,uBAAuB,CAAC,SAAiB;IACvD,OAAO,yBAAyB,SAAS,EAAE,CAAA;AAC7C,CAAC"}
|