@rovela-ai/sdk 0.13.1 → 0.14.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.
Files changed (59) hide show
  1. package/dist/admin/api/emails.d.ts +17 -0
  2. package/dist/admin/api/emails.d.ts.map +1 -0
  3. package/dist/admin/api/emails.js +214 -0
  4. package/dist/admin/api/emails.js.map +1 -0
  5. package/dist/admin/components/AdminNav.d.ts.map +1 -1
  6. package/dist/admin/components/AdminNav.js +1 -0
  7. package/dist/admin/components/AdminNav.js.map +1 -1
  8. package/dist/admin/components/EmailsManager.d.ts +5 -0
  9. package/dist/admin/components/EmailsManager.d.ts.map +1 -0
  10. package/dist/admin/components/EmailsManager.js +306 -0
  11. package/dist/admin/components/EmailsManager.js.map +1 -0
  12. package/dist/admin/components/index.d.ts +2 -0
  13. package/dist/admin/components/index.d.ts.map +1 -1
  14. package/dist/admin/components/index.js +1 -0
  15. package/dist/admin/components/index.js.map +1 -1
  16. package/dist/admin/index.d.ts +1 -1
  17. package/dist/admin/index.d.ts.map +1 -1
  18. package/dist/admin/index.js +1 -1
  19. package/dist/admin/index.js.map +1 -1
  20. package/dist/core/db/queries.d.ts +26 -3
  21. package/dist/core/db/queries.d.ts.map +1 -1
  22. package/dist/core/db/queries.js +124 -0
  23. package/dist/core/db/queries.js.map +1 -1
  24. package/dist/core/db/schema.d.ts +173 -1
  25. package/dist/core/db/schema.d.ts.map +1 -1
  26. package/dist/core/db/schema.js +22 -0
  27. package/dist/core/db/schema.js.map +1 -1
  28. package/dist/emails/config.d.ts.map +1 -1
  29. package/dist/emails/config.js +5 -0
  30. package/dist/emails/config.js.map +1 -1
  31. package/dist/emails/index.d.ts +6 -0
  32. package/dist/emails/index.d.ts.map +1 -1
  33. package/dist/emails/index.js +4 -0
  34. package/dist/emails/index.js.map +1 -1
  35. package/dist/emails/overrides.d.ts +40 -0
  36. package/dist/emails/overrides.d.ts.map +1 -0
  37. package/dist/emails/overrides.js +70 -0
  38. package/dist/emails/overrides.js.map +1 -0
  39. package/dist/emails/registry.d.ts +40 -0
  40. package/dist/emails/registry.d.ts.map +1 -0
  41. package/dist/emails/registry.js +270 -0
  42. package/dist/emails/registry.js.map +1 -0
  43. package/dist/emails/send/auth.d.ts.map +1 -1
  44. package/dist/emails/send/auth.js +38 -3
  45. package/dist/emails/send/auth.js.map +1 -1
  46. package/dist/emails/send/orders.d.ts.map +1 -1
  47. package/dist/emails/send/orders.js +86 -6
  48. package/dist/emails/send/orders.js.map +1 -1
  49. package/dist/emails/templates/base.d.ts +30 -12
  50. package/dist/emails/templates/base.d.ts.map +1 -1
  51. package/dist/emails/templates/base.js +51 -8
  52. package/dist/emails/templates/base.js.map +1 -1
  53. package/dist/emails/theme.d.ts +65 -0
  54. package/dist/emails/theme.d.ts.map +1 -0
  55. package/dist/emails/theme.js +173 -0
  56. package/dist/emails/theme.js.map +1 -0
  57. package/dist/emails/types.d.ts +2 -0
  58. package/dist/emails/types.d.ts.map +1 -1
  59. package/package.json +5 -1
@@ -4,6 +4,8 @@
4
4
  * Send functions for order-related emails.
5
5
  */
6
6
  import { sendEmail } from '../sender';
7
+ import { prepareEmail, applyEmailVars } from '../overrides';
8
+ import { getEmailRegistryEntry } from '../registry';
7
9
  import { getEmailConfig, getStoreName } from '../config';
8
10
  import { renderOrderConfirmation, getOrderConfirmationSubject, renderOrderShipped, getOrderShippedSubject, renderOrderReadyForPickup, getOrderReadyForPickupSubject, renderOrderDelivered, getOrderDeliveredSubject, renderOrderCancelled, getOrderCancelledSubject, renderRefundProcessed, getRefundProcessedSubject, } from '../templates';
9
11
  /** Templates prefix '#' themselves — strip any caller-supplied hash so
@@ -39,6 +41,13 @@ export async function sendOrderConfirmation(params) {
39
41
  getEmailConfig(),
40
42
  getStoreName(),
41
43
  ]);
44
+ // Phase D — merchant customization (theme applies via getEmailConfig;
45
+ // prepareEmail stages intro/outro + resolves the subject override).
46
+ const prep = await prepareEmail('order-confirmation', params.locale, getEmailRegistryEntry('order-confirmation')?.canDisable ?? false);
47
+ if (!prep.enabled) {
48
+ console.log('[Email] order-confirmation disabled in admin — skipped for:', params.to);
49
+ return { success: true, skipped: true };
50
+ }
42
51
  const html = renderOrderConfirmation({
43
52
  config,
44
53
  pickup: params.pickup,
@@ -62,7 +71,13 @@ export async function sendOrderConfirmation(params) {
62
71
  return sendEmail({
63
72
  locale: params.locale,
64
73
  to: params.to,
65
- subject: getOrderConfirmationSubject(storeName, bareOrderNumber(params.orderNumber)),
74
+ subject: prep.subjectOverride
75
+ ? applyEmailVars(prep.subjectOverride, {
76
+ storeName,
77
+ orderNumber: bareOrderNumber(params.orderNumber),
78
+ customerName: params.customerName,
79
+ })
80
+ : getOrderConfirmationSubject(storeName, bareOrderNumber(params.orderNumber)),
66
81
  html,
67
82
  });
68
83
  }
@@ -99,6 +114,13 @@ export async function sendOrderShipped(params) {
99
114
  getEmailConfig(),
100
115
  getStoreName(),
101
116
  ]);
117
+ // Phase D — merchant customization (theme applies via getEmailConfig;
118
+ // prepareEmail stages intro/outro + resolves the subject override).
119
+ const prep = await prepareEmail('order-shipped', params.locale, getEmailRegistryEntry('order-shipped')?.canDisable ?? false);
120
+ if (!prep.enabled) {
121
+ console.log('[Email] order-shipped disabled in admin — skipped for:', params.to);
122
+ return { success: true, skipped: true };
123
+ }
102
124
  const html = renderOrderShipped({
103
125
  config,
104
126
  customerName: params.customerName,
@@ -113,7 +135,13 @@ export async function sendOrderShipped(params) {
113
135
  return sendEmail({
114
136
  locale: params.locale,
115
137
  to: params.to,
116
- subject: getOrderShippedSubject(storeName, bareOrderNumber(params.orderNumber)),
138
+ subject: prep.subjectOverride
139
+ ? applyEmailVars(prep.subjectOverride, {
140
+ storeName,
141
+ orderNumber: bareOrderNumber(params.orderNumber),
142
+ customerName: params.customerName,
143
+ })
144
+ : getOrderShippedSubject(storeName, bareOrderNumber(params.orderNumber)),
117
145
  html,
118
146
  });
119
147
  }
@@ -134,6 +162,13 @@ export async function sendOrderReadyForPickup(params) {
134
162
  getEmailConfig(),
135
163
  getStoreName(),
136
164
  ]);
165
+ // Phase D — merchant customization (theme applies via getEmailConfig;
166
+ // prepareEmail stages intro/outro + resolves the subject override).
167
+ const prep = await prepareEmail('order-ready-for-pickup', params.locale, getEmailRegistryEntry('order-ready-for-pickup')?.canDisable ?? false);
168
+ if (!prep.enabled) {
169
+ console.log('[Email] order-ready-for-pickup disabled in admin — skipped for:', params.to);
170
+ return { success: true, skipped: true };
171
+ }
137
172
  const html = renderOrderReadyForPickup({
138
173
  config,
139
174
  customerName: params.customerName,
@@ -149,7 +184,13 @@ export async function sendOrderReadyForPickup(params) {
149
184
  return sendEmail({
150
185
  locale: params.locale,
151
186
  to: params.to,
152
- subject: getOrderReadyForPickupSubject(storeName, bareOrderNumber(params.orderNumber)),
187
+ subject: prep.subjectOverride
188
+ ? applyEmailVars(prep.subjectOverride, {
189
+ storeName,
190
+ orderNumber: bareOrderNumber(params.orderNumber),
191
+ customerName: params.customerName,
192
+ })
193
+ : getOrderReadyForPickupSubject(storeName, bareOrderNumber(params.orderNumber)),
153
194
  html,
154
195
  });
155
196
  }
@@ -179,6 +220,13 @@ export async function sendOrderDelivered(params) {
179
220
  getEmailConfig(),
180
221
  getStoreName(),
181
222
  ]);
223
+ // Phase D — merchant customization (theme applies via getEmailConfig;
224
+ // prepareEmail stages intro/outro + resolves the subject override).
225
+ const prep = await prepareEmail('order-delivered', params.locale, getEmailRegistryEntry('order-delivered')?.canDisable ?? false);
226
+ if (!prep.enabled) {
227
+ console.log('[Email] order-delivered disabled in admin — skipped for:', params.to);
228
+ return { success: true, skipped: true };
229
+ }
182
230
  const html = renderOrderDelivered({
183
231
  config,
184
232
  customerName: params.customerName,
@@ -193,7 +241,13 @@ export async function sendOrderDelivered(params) {
193
241
  return sendEmail({
194
242
  locale: params.locale,
195
243
  to: params.to,
196
- subject: getOrderDeliveredSubject(storeName, bareOrderNumber(params.orderNumber)),
244
+ subject: prep.subjectOverride
245
+ ? applyEmailVars(prep.subjectOverride, {
246
+ storeName,
247
+ orderNumber: bareOrderNumber(params.orderNumber),
248
+ customerName: params.customerName,
249
+ })
250
+ : getOrderDeliveredSubject(storeName, bareOrderNumber(params.orderNumber)),
197
251
  html,
198
252
  });
199
253
  }
@@ -227,6 +281,13 @@ export async function sendOrderCancelled(params) {
227
281
  getEmailConfig(),
228
282
  getStoreName(),
229
283
  ]);
284
+ // Phase D — merchant customization (theme applies via getEmailConfig;
285
+ // prepareEmail stages intro/outro + resolves the subject override).
286
+ const prep = await prepareEmail('order-cancelled', params.locale, getEmailRegistryEntry('order-cancelled')?.canDisable ?? false);
287
+ if (!prep.enabled) {
288
+ console.log('[Email] order-cancelled disabled in admin — skipped for:', params.to);
289
+ return { success: true, skipped: true };
290
+ }
230
291
  const html = renderOrderCancelled({
231
292
  config,
232
293
  customerName: params.customerName,
@@ -239,7 +300,13 @@ export async function sendOrderCancelled(params) {
239
300
  return sendEmail({
240
301
  locale: params.locale,
241
302
  to: params.to,
242
- subject: getOrderCancelledSubject(storeName, bareOrderNumber(params.orderNumber)),
303
+ subject: prep.subjectOverride
304
+ ? applyEmailVars(prep.subjectOverride, {
305
+ storeName,
306
+ orderNumber: bareOrderNumber(params.orderNumber),
307
+ customerName: params.customerName,
308
+ })
309
+ : getOrderCancelledSubject(storeName, bareOrderNumber(params.orderNumber)),
243
310
  html,
244
311
  });
245
312
  }
@@ -275,6 +342,13 @@ export async function sendRefundProcessed(params) {
275
342
  getEmailConfig(),
276
343
  getStoreName(),
277
344
  ]);
345
+ // Phase D — merchant customization (theme applies via getEmailConfig;
346
+ // prepareEmail stages intro/outro + resolves the subject override).
347
+ const prep = await prepareEmail('refund-processed', params.locale, getEmailRegistryEntry('refund-processed')?.canDisable ?? false);
348
+ if (!prep.enabled) {
349
+ console.log('[Email] refund-processed disabled in admin — skipped for:', params.to);
350
+ return { success: true, skipped: true };
351
+ }
278
352
  const html = renderRefundProcessed({
279
353
  config,
280
354
  customerName: params.customerName,
@@ -289,7 +363,13 @@ export async function sendRefundProcessed(params) {
289
363
  return sendEmail({
290
364
  locale: params.locale,
291
365
  to: params.to,
292
- subject: getRefundProcessedSubject(storeName, bareOrderNumber(params.orderNumber)),
366
+ subject: prep.subjectOverride
367
+ ? applyEmailVars(prep.subjectOverride, {
368
+ storeName,
369
+ orderNumber: bareOrderNumber(params.orderNumber),
370
+ customerName: params.customerName,
371
+ })
372
+ : getRefundProcessedSubject(storeName, bareOrderNumber(params.orderNumber)),
293
373
  html,
294
374
  });
295
375
  }
@@ -1 +1 @@
1
- {"version":3,"file":"orders.js","sourceRoot":"","sources":["../../../src/emails/send/orders.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"orders.js","sourceRoot":"","sources":["../../../src/emails/send/orders.ts"],"names":[],"mappings":"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"}
@@ -8,23 +8,41 @@
8
8
  * Email clients have limited CSS support, so we use reliable fallback colors.
9
9
  */
10
10
  import type { EmailConfig } from '../types';
11
- declare const STYLES: {
12
- readonly fontFamily: "'Plus Jakarta Sans', system-ui, sans-serif";
13
- readonly fontName: "Plus Jakarta Sans";
14
- readonly backgroundColor: "#F7F7F7";
15
- readonly cardBackground: "#FFFFFF";
16
- readonly cardBorder: "#E8DFD3";
17
- readonly footerBackground: "#FBF8F5";
18
- readonly primaryColor: "#0CAF7D";
19
- readonly textPrimary: "#0A0A0A";
20
- readonly textSecondary: "#78716C";
21
- readonly textMuted: "#1C1917";
22
- };
11
+ export interface EmailStyles {
12
+ fontFamily: string;
13
+ fontName: string;
14
+ backgroundColor: string;
15
+ cardBackground: string;
16
+ cardBorder: string;
17
+ footerBackground: string;
18
+ primaryColor: string;
19
+ textPrimary: string;
20
+ textSecondary: string;
21
+ textMuted: string;
22
+ /** Button corner radius (px value with unit, e.g. '12px' | '9999px'). */
23
+ buttonRadius: string;
24
+ /** Outer card corner radius. */
25
+ cardRadius: string;
26
+ /** Extra merchant footer line (legal, tagline) — empty = omitted. */
27
+ footerNote: string;
28
+ }
29
+ export declare const DEFAULT_EMAIL_STYLES: EmailStyles;
30
+ /**
31
+ * The ACTIVE styles every template + helper reads. Mutable on purpose:
32
+ * branch-per-store means one store per process, so the email theme is
33
+ * process-global by construction. `applyEmailStyles` (emails/theme.ts)
34
+ * Object.assigns the store's resolved brand theme over these before each
35
+ * render — the 11 templates and 14 helpers below need zero changes.
36
+ */
37
+ declare const STYLES: EmailStyles;
38
+ /** Overwrite the active styles in place (imports keep the same reference). */
39
+ export declare function setEmailStyles(next: Partial<EmailStyles>): void;
23
40
  export interface BaseLayoutOptions {
24
41
  config: EmailConfig;
25
42
  title: string;
26
43
  content: string;
27
44
  }
45
+ export declare function setEmailCustomBlocks(intro: string | null, outro: string | null): void;
28
46
  /**
29
47
  * Wrap email content in the base layout.
30
48
  * All email templates should use this function.
@@ -1 +1 @@
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;AA4D3C,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"}
1
+ {"version":3,"file":"base.d.ts","sourceRoot":"","sources":["../../../src/emails/templates/base.ts"],"names":[],"mappings":"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"}
@@ -54,10 +54,7 @@ function hexToRgba(hex, opacity) {
54
54
  const b = parseInt(result[3], 16);
55
55
  return `rgba(${r}, ${g}, ${b}, ${opacity})`;
56
56
  }
57
- // =============================================================================
58
- // Styles
59
- // =============================================================================
60
- const STYLES = {
57
+ export const DEFAULT_EMAIL_STYLES = {
61
58
  fontFamily: THEME.fontFamily,
62
59
  fontName: THEME.fontName,
63
60
  backgroundColor: '#F7F7F7',
@@ -68,7 +65,22 @@ const STYLES = {
68
65
  textPrimary: THEME.colors.neutral900,
69
66
  textSecondary: THEME.colors.neutral500,
70
67
  textMuted: THEME.colors.neutral800,
68
+ buttonRadius: '12px',
69
+ cardRadius: '24px',
70
+ footerNote: '',
71
71
  };
72
+ /**
73
+ * The ACTIVE styles every template + helper reads. Mutable on purpose:
74
+ * branch-per-store means one store per process, so the email theme is
75
+ * process-global by construction. `applyEmailStyles` (emails/theme.ts)
76
+ * Object.assigns the store's resolved brand theme over these before each
77
+ * render — the 11 templates and 14 helpers below need zero changes.
78
+ */
79
+ const STYLES = { ...DEFAULT_EMAIL_STYLES };
80
+ /** Overwrite the active styles in place (imports keep the same reference). */
81
+ export function setEmailStyles(next) {
82
+ Object.assign(STYLES, DEFAULT_EMAIL_STYLES, next);
83
+ }
72
84
  // =============================================================================
73
85
  // Layout Components
74
86
  // =============================================================================
@@ -111,10 +123,35 @@ function renderFooter(config) {
111
123
  <p style="margin: 0; font-family: ${STYLES.fontFamily}; font-size: 14px; font-weight: 400; line-height: 1.5; color: ${STYLES.textSecondary}; text-align: center;">
112
124
  Need help? Contact us at <a href="mailto:${escapeHtml(config.supportEmail)}" style="color: ${STYLES.primaryColor}; text-decoration: none; font-weight: 500;">${escapeHtml(config.supportEmail)}</a>
113
125
  </p>
126
+ ${STYLES.footerNote
127
+ ? `<p style="margin: 16px 0 0 0; font-family: ${STYLES.fontFamily}; font-size: 12px; font-weight: 400; line-height: 1.5; color: ${STYLES.textSecondary}; text-align: center;">${escapeHtml(STYLES.footerNote)}</p>`
128
+ : ''}
114
129
  </td>
115
130
  </tr>
116
131
  `;
117
132
  }
133
+ /**
134
+ * Per-send custom blocks (Phase D overrides). Set by prepareEmail() right
135
+ * before a render, CONSUMED (and cleared) by the next baseLayout call —
136
+ * single-use so a send that never sets them can't inherit a previous
137
+ * send's blocks. Rendering is synchronous, so set → render can't interleave.
138
+ */
139
+ let pendingIntro = null;
140
+ let pendingOutro = null;
141
+ export function setEmailCustomBlocks(intro, outro) {
142
+ pendingIntro = intro;
143
+ pendingOutro = outro;
144
+ }
145
+ /** Multiline merchant text → escaped paragraphs (blank line = new paragraph). */
146
+ function customBlock(text) {
147
+ const paragraphs = text
148
+ .split(/\n{2,}/)
149
+ .map((p) => p.trim())
150
+ .filter(Boolean)
151
+ .map((p) => `<p style="margin: 0 0 16px 0; font-family: ${STYLES.fontFamily}; font-size: 16px; font-weight: 400; line-height: 1.625; color: ${STYLES.textSecondary}; text-align: center;">${escapeHtml(p).replace(/\n/g, '<br>')}</p>`)
152
+ .join('');
153
+ return `<div style="margin: 0 0 16px 0;">${paragraphs}</div>`;
154
+ }
118
155
  /**
119
156
  * Wrap email content in the base layout.
120
157
  * All email templates should use this function.
@@ -129,6 +166,12 @@ function renderFooter(config) {
129
166
  * ```
130
167
  */
131
168
  export function baseLayout({ config, title, content }) {
169
+ // Consume (and clear) any per-send custom blocks — single-use by contract.
170
+ const intro = pendingIntro;
171
+ const outro = pendingOutro;
172
+ pendingIntro = null;
173
+ pendingOutro = null;
174
+ const wrappedContent = `${intro ? customBlock(intro) : ''}${content}${outro ? customBlock(outro) : ''}`;
132
175
  // Build Google Fonts URL with dynamic font name
133
176
  const fontNameEncoded = STYLES.fontName.replace(/ /g, '+');
134
177
  const googleFontsUrl = `https://fonts.googleapis.com/css2?family=${fontNameEncoded}:wght@400;500;600;700&display=swap`;
@@ -146,11 +189,11 @@ export function baseLayout({ config, title, content }) {
146
189
  <table width="100%" cellpadding="0" cellspacing="0" style="background-color: ${STYLES.backgroundColor}; padding: 40px 0;">
147
190
  <tr>
148
191
  <td align="center">
149
- <table width="600" cellpadding="0" cellspacing="0" style="background-color: ${STYLES.cardBackground}; border-radius: 24px; overflow: hidden; border: 1px solid ${STYLES.cardBorder};">
192
+ <table width="600" cellpadding="0" cellspacing="0" style="background-color: ${STYLES.cardBackground}; border-radius: ${STYLES.cardRadius}; overflow: hidden; border: 1px solid ${STYLES.cardBorder};">
150
193
  ${renderHeader(config.logoUrl)}
151
194
  <tr>
152
195
  <td style="padding: 0 48px 48px 48px;">
153
- ${content}
196
+ ${wrappedContent}
154
197
  </td>
155
198
  </tr>
156
199
  ${renderFooter(config)}
@@ -172,7 +215,7 @@ export function primaryButton(text, href) {
172
215
  <table width="100%" cellpadding="0" cellspacing="0" style="margin: 0 0 32px 0;">
173
216
  <tr>
174
217
  <td align="center">
175
- <a href="${escapeHtml(href)}" style="display: inline-block; padding: 12px 32px; background-color: ${STYLES.primaryColor}; color: #FFFFFF; text-decoration: none; border-radius: 12px; font-family: ${STYLES.fontFamily}; font-size: 16px; font-weight: 600;">${escapeHtml(text)}</a>
218
+ <a href="${escapeHtml(href)}" style="display: inline-block; padding: 12px 32px; background-color: ${STYLES.primaryColor}; color: #FFFFFF; text-decoration: none; border-radius: ${STYLES.buttonRadius}; font-family: ${STYLES.fontFamily}; font-size: 16px; font-weight: 600;">${escapeHtml(text)}</a>
176
219
  </td>
177
220
  </tr>
178
221
  </table>
@@ -304,7 +347,7 @@ export function secondaryButton(text, href) {
304
347
  <table width="100%" cellpadding="0" cellspacing="0">
305
348
  <tr>
306
349
  <td align="center">
307
- <a href="${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;">${escapeHtml(text)}</a>
350
+ <a href="${escapeHtml(href)}" style="display: inline-block; padding: 12px 32px; background-color: transparent; color: ${STYLES.primaryColor}; text-decoration: none; border-radius: ${STYLES.buttonRadius}; border: 1px solid ${hexToRgba(STYLES.primaryColor, 0.3)}; font-family: ${STYLES.fontFamily}; font-size: 16px; font-weight: 600;">${escapeHtml(text)}</a>
308
351
  </td>
309
352
  </tr>
310
353
  </table>
@@ -1 +1 @@
1
- {"version":3,"file":"base.js","sourceRoot":"","sources":["../../../src/emails/templates/base.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"base.js","sourceRoot":"","sources":["../../../src/emails/templates/base.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AAGH,OAAO,EAAE,UAAU,EAAE,MAAM,UAAU,CAAA;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;;;GAGG;AACH,MAAM,KAAK,GAAG;IACZ,MAAM,EAAE,cAAc;IACtB,UAAU,EAAE,kBAAkB,CAAC,UAAU;IACzC,QAAQ,EAAE,kBAAkB,CAAC,QAAQ;CAC7B,CAAA;AAEV,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;AAyBD,MAAM,CAAC,MAAM,oBAAoB,GAAgB;IAC/C,UAAU,EAAE,KAAK,CAAC,UAAU;IAC5B,QAAQ,EAAE,KAAK,CAAC,QAAQ;IACxB,eAAe,EAAE,SAAS;IAC1B,cAAc,EAAE,SAAS;IACzB,UAAU,EAAE,KAAK,CAAC,MAAM,CAAC,UAAU;IACnC,gBAAgB,EAAE,KAAK,CAAC,MAAM,CAAC,SAAS;IACxC,YAAY,EAAE,KAAK,CAAC,MAAM,CAAC,OAAO;IAClC,WAAW,EAAE,KAAK,CAAC,MAAM,CAAC,UAAU;IACpC,aAAa,EAAE,KAAK,CAAC,MAAM,CAAC,UAAU;IACtC,SAAS,EAAE,KAAK,CAAC,MAAM,CAAC,UAAU;IAClC,YAAY,EAAE,MAAM;IACpB,UAAU,EAAE,MAAM;IAClB,UAAU,EAAE,EAAE;CACf,CAAA;AAED;;;;;;GAMG;AACH,MAAM,MAAM,GAAgB,EAAE,GAAG,oBAAoB,EAAE,CAAA;AAEvD,8EAA8E;AAC9E,MAAM,UAAU,cAAc,CAAC,IAA0B;IACvD,MAAM,CAAC,MAAM,CAAC,MAAM,EAAE,oBAAoB,EAAE,IAAI,CAAC,CAAA;AACnD,CAAC;AAED,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,UAAU,CAAC,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,UAAU,CAAC,MAAM,CAAC,SAAS,CAAC;;UAG9B,MAAM,CAAC,YAAY;QACjB,CAAC,CAAC,8CAA8C,MAAM,CAAC,UAAU,iEAAiE,MAAM,CAAC,aAAa;cACpJ,UAAU,CAAC,MAAM,CAAC,YAAY,CAAC;eAC9B;QACH,CAAC,CAAC,EACN;4CACoC,MAAM,CAAC,UAAU,iEAAiE,MAAM,CAAC,aAAa;qDAC7F,UAAU,CAAC,MAAM,CAAC,YAAY,CAAC,mBAAmB,MAAM,CAAC,YAAY,+CAA+C,UAAU,CAAC,MAAM,CAAC,YAAY,CAAC;;UAG9L,MAAM,CAAC,UAAU;QACf,CAAC,CAAC,8CAA8C,MAAM,CAAC,UAAU,iEAAiE,MAAM,CAAC,aAAa,0BAA0B,UAAU,CAAC,MAAM,CAAC,UAAU,CAAC,MAAM;QACnN,CAAC,CAAC,EACN;;;GAGL,CAAA;AACH,CAAC;AAYD;;;;;GAKG;AACH,IAAI,YAAY,GAAkB,IAAI,CAAA;AACtC,IAAI,YAAY,GAAkB,IAAI,CAAA;AAEtC,MAAM,UAAU,oBAAoB,CAAC,KAAoB,EAAE,KAAoB;IAC7E,YAAY,GAAG,KAAK,CAAA;IACpB,YAAY,GAAG,KAAK,CAAA;AACtB,CAAC;AAED,iFAAiF;AACjF,SAAS,WAAW,CAAC,IAAY;IAC/B,MAAM,UAAU,GAAG,IAAI;SACpB,KAAK,CAAC,QAAQ,CAAC;SACf,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC;SACpB,MAAM,CAAC,OAAO,CAAC;SACf,GAAG,CACF,CAAC,CAAC,EAAE,EAAE,CACJ,8CAA8C,MAAM,CAAC,UAAU,mEAAmE,MAAM,CAAC,aAAa,0BAA0B,UAAU,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,KAAK,EAAE,MAAM,CAAC,MAAM,CAC7N;SACA,IAAI,CAAC,EAAE,CAAC,CAAA;IACX,OAAO,oCAAoC,UAAU,QAAQ,CAAA;AAC/D,CAAC;AAED;;;;;;;;;;;;GAYG;AACH,MAAM,UAAU,UAAU,CAAC,EAAE,MAAM,EAAE,KAAK,EAAE,OAAO,EAAqB;IACtE,2EAA2E;IAC3E,MAAM,KAAK,GAAG,YAAY,CAAA;IAC1B,MAAM,KAAK,GAAG,YAAY,CAAA;IAC1B,YAAY,GAAG,IAAI,CAAA;IACnB,YAAY,GAAG,IAAI,CAAA;IACnB,MAAM,cAAc,GAAG,GAAG,KAAK,CAAC,CAAC,CAAC,WAAW,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,EAAE,GAAG,OAAO,GAAG,KAAK,CAAC,CAAC,CAAC,WAAW,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,EAAE,EAAE,CAAA;IAEvG,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,UAAU,CAAC,KAAK,CAAC;;;gBAGZ,cAAc;;mDAEqB,MAAM,CAAC,UAAU,uBAAuB,MAAM,CAAC,eAAe;iFAChC,MAAM,CAAC,eAAe;;;sFAGjB,MAAM,CAAC,cAAc,oBAAoB,MAAM,CAAC,UAAU,yCAAyC,MAAM,CAAC,UAAU;YAC9L,YAAY,CAAC,MAAM,CAAC,OAAO,CAAC;;;gBAGxB,cAAc;;;YAGlB,YAAY,CAAC,MAAM,CAAC;;;;;;QAMxB,CAAA;AACR,CAAC;AAED,gFAAgF;AAChF,oBAAoB;AACpB,gFAAgF;AAEhF;;GAEG;AACH,MAAM,UAAU,aAAa,CAAC,IAAY,EAAE,IAAY;IACtD,OAAO;;;;qBAIY,UAAU,CAAC,IAAI,CAAC,yEAAyE,MAAM,CAAC,YAAY,2DAA2D,MAAM,CAAC,YAAY,kBAAkB,MAAM,CAAC,UAAU,yCAAyC,UAAU,CAAC,IAAI,CAAC;;;;GAIxS,CAAA;AACH,CAAC;AAED;;GAEG;AACH,MAAM,UAAU,OAAO,CAAC,IAAY;IAClC,OAAO,+CAA+C,MAAM,CAAC,UAAU,+CAA+C,MAAM,CAAC,WAAW,4CAA4C,UAAU,CAAC,IAAI,CAAC,OAAO,CAAA;AAC7M,CAAC;AAED;;GAEG;AACH,MAAM,UAAU,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,MAAM,UAAU,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,MAAM,UAAU,YAAY,CAAC,IAAY;IACvC,OAAO,OAAO,CAAC;;eAEF,UAAU,CAAC,IAAI,CAAC,mBAAmB,MAAM,CAAC,YAAY,oDAAoD,UAAU,CAAC,IAAI,CAAC;GACtI,CAAC,CAAA;AACJ,CAAC;AAED;;GAEG;AACH,MAAM,UAAU,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,UAAU,CAAC,CAAC,CAAC,KAAK,CAAC,cAAc,UAAU,CAAC,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,UAAU,CAAC,KAAK,CAAC;QACrJ,WAAW;;GAEhB,CAAA;AACH,CAAC;AAED,gFAAgF;AAChF,gBAAgB;AAChB,gFAAgF;AAEhF;;GAEG;AACH,MAAM,UAAU,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,UAAU,CAAC,WAAW,CAAC;;;;;GAKrJ,CAAA;AACH,CAAC;AAED,gFAAgF;AAChF,0BAA0B;AAC1B,gFAAgF;AAEhF;;GAEG;AACH,MAAM,UAAU,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,UAAU,CAAC,KAAK,CAAC;4CACtK,MAAM,CAAC,UAAU,gBAAgB,SAAS,8BAA8B,UAAU,MAAM,UAAU,CAAC,KAAK,CAAC;;;GAGlJ,CAAA;AACH,CAAC;AAED;;GAEG;AACH,MAAM,UAAU,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,UAAU,CAAC,IAAI,CAAC,KAAK,CAAC;4CAC3K,MAAM,CAAC,UAAU,+CAA+C,MAAM,CAAC,WAAW,MAAM,UAAU,CAAC,IAAI,CAAC,KAAK,CAAC;;iCAEzH,WAAW;oDACQ,MAAM,CAAC,UAAU,+CAA+C,MAAM,CAAC,aAAa,yDAAyD,UAAU,CAAC,KAAK,CAAC,KAAK,CAAC;4CAC5K,MAAM,CAAC,UAAU,+CAA+C,MAAM,CAAC,WAAW,MAAM,UAAU,CAAC,KAAK,CAAC,KAAK,CAAC;;;GAGxJ,CAAA;AACH,CAAC;AAED;;GAEG;AACH,MAAM,UAAU,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,MAAM,UAAU,eAAe,CAAC,IAAY,EAAE,IAAY;IACxD,OAAO;;;;qBAIY,UAAU,CAAC,IAAI,CAAC,6FAA6F,MAAM,CAAC,YAAY,2CAA2C,MAAM,CAAC,YAAY,uBAAuB,SAAS,CAAC,MAAM,CAAC,YAAY,EAAE,GAAG,CAAC,kBAAkB,MAAM,CAAC,UAAU,yCAAyC,UAAU,CAAC,IAAI,CAAC;;;;GAItW,CAAA;AACH,CAAC;AAED;;GAEG;AACH,MAAM,UAAU,cAAc,CAAC,KAAa,EAAE,WAAmB;IAC/D,OAAO;;oDAE2C,MAAM,CAAC,UAAU,+CAA+C,MAAM,CAAC,WAAW,MAAM,UAAU,CAAC,KAAK,CAAC;0CACnH,MAAM,CAAC,UAAU,iEAAiE,MAAM,CAAC,aAAa;UACtI,WAAW;;;GAGlB,CAAA;AACH,CAAC;AAED;;GAEG;AACH,MAAM,UAAU,cAAc,CAAC,IAAY;IACzC,OAAO,+CAA+C,MAAM,CAAC,UAAU,+CAA+C,MAAM,CAAC,WAAW,MAAM,UAAU,CAAC,IAAI,CAAC,OAAO,CAAA;AACvK,CAAC;AAED,iDAAiD;AACjD,OAAO,EAAE,MAAM,EAAE,CAAA"}
@@ -0,0 +1,65 @@
1
+ /**
2
+ * @rovela/sdk/emails/theme
3
+ *
4
+ * The shared email theme (Phase D). One theme styles ALL transactional
5
+ * emails — they render through the single base layout, so one change here
6
+ * restyles every email at once.
7
+ *
8
+ * Resolution order (highest wins), cached briefly per process:
9
+ * 1. store_settings.email_theme (admin "Emails → Theme" panel)
10
+ * 2. brand-derived defaults (blueprint primary color + body font)
11
+ * 3. the shipped defaults (DEFAULT_EMAIL_STYLES)
12
+ *
13
+ * Branch-per-store means one store per process, so applying the theme via
14
+ * Object.assign on the shared STYLES object (setEmailStyles) is correct by
15
+ * construction — no per-request threading through templates.
16
+ *
17
+ * Fail-open everywhere: any resolution failure keeps the previous styles;
18
+ * an email is never blocked or broken by theming.
19
+ */
20
+ export type EmailButtonRadius = 'sm' | 'md' | 'full';
21
+ export interface EmailTheme {
22
+ /** Buttons, links, badges, highlights. Hex like '#1C5BA8'. */
23
+ primaryColor?: string;
24
+ /** One of EMAIL_FONTS — email-safe Google fonts with system fallbacks. */
25
+ fontName?: string;
26
+ /** Button corner shape. */
27
+ buttonRadius?: EmailButtonRadius;
28
+ /** Outer background behind the card. Hex. */
29
+ backgroundColor?: string;
30
+ /** Extra footer line (legal notice, tagline). */
31
+ footerNote?: string;
32
+ }
33
+ /**
34
+ * Curated email-safe fonts. Each loads as a Google Font (honored by Apple
35
+ * Mail and some clients) with a resilient system fallback stack everywhere
36
+ * else — the same progressive strategy the templates always used.
37
+ */
38
+ export declare const EMAIL_FONTS: Array<{
39
+ name: string;
40
+ stack: string;
41
+ }>;
42
+ export declare function isValidEmailTheme(raw: unknown): raw is EmailTheme;
43
+ /** Sanitize an incoming theme (admin writes) — keeps only valid fields. */
44
+ export declare function sanitizeEmailTheme(raw: unknown): EmailTheme;
45
+ /**
46
+ * Derive the theme from the store's brand: blueprint primary color + body
47
+ * font (when that font is in the email-safe list). This is what makes every
48
+ * store's emails brand-matched with no merchant action.
49
+ */
50
+ export declare function deriveBrandEmailTheme(): EmailTheme;
51
+ /**
52
+ * The effective theme: brand-derived defaults with the merchant's saved
53
+ * theme layered on top. Cached briefly; call invalidateEmailTheme() after
54
+ * an admin save.
55
+ */
56
+ export declare function resolveEmailTheme(): Promise<EmailTheme>;
57
+ /** Invalidate after an admin theme save so the next send picks it up. */
58
+ export declare function invalidateEmailTheme(): void;
59
+ /**
60
+ * Resolve the store's theme and apply it to the shared STYLES object every
61
+ * template reads. Called from getEmailConfig() — the one call every sender
62
+ * already makes before rendering. Never throws.
63
+ */
64
+ export declare function applyEmailTheme(overrideTheme?: EmailTheme): Promise<void>;
65
+ //# sourceMappingURL=theme.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"theme.d.ts","sourceRoot":"","sources":["../../src/emails/theme.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;GAkBG;AAUH,MAAM,MAAM,iBAAiB,GAAG,IAAI,GAAG,IAAI,GAAG,MAAM,CAAA;AAEpD,MAAM,WAAW,UAAU;IACzB,8DAA8D;IAC9D,YAAY,CAAC,EAAE,MAAM,CAAA;IACrB,0EAA0E;IAC1E,QAAQ,CAAC,EAAE,MAAM,CAAA;IACjB,2BAA2B;IAC3B,YAAY,CAAC,EAAE,iBAAiB,CAAA;IAChC,6CAA6C;IAC7C,eAAe,CAAC,EAAE,MAAM,CAAA;IACxB,iDAAiD;IACjD,UAAU,CAAC,EAAE,MAAM,CAAA;CACpB;AAED;;;;GAIG;AACH,eAAO,MAAM,WAAW,EAAE,KAAK,CAAC;IAAE,IAAI,EAAE,MAAM,CAAC;IAAC,KAAK,EAAE,MAAM,CAAA;CAAE,CAS9D,CAAA;AAUD,wBAAgB,iBAAiB,CAAC,GAAG,EAAE,OAAO,GAAG,GAAG,IAAI,UAAU,CASjE;AAED,2EAA2E;AAC3E,wBAAgB,kBAAkB,CAAC,GAAG,EAAE,OAAO,GAAG,UAAU,CAY3D;AAMD;;;;GAIG;AACH,wBAAgB,qBAAqB,IAAI,UAAU,CAmBlD;AAyBD;;;;GAIG;AACH,wBAAsB,iBAAiB,IAAI,OAAO,CAAC,UAAU,CAAC,CAe7D;AAED,yEAAyE;AACzE,wBAAgB,oBAAoB,IAAI,IAAI,CAE3C;AAED;;;;GAIG;AACH,wBAAsB,eAAe,CAAC,aAAa,CAAC,EAAE,UAAU,GAAG,OAAO,CAAC,IAAI,CAAC,CAO/E"}