@rovela-ai/sdk 0.14.1 → 0.15.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 (105) hide show
  1. package/dist/admin/api/emails.d.ts +2 -1
  2. package/dist/admin/api/emails.d.ts.map +1 -1
  3. package/dist/admin/api/emails.js +203 -34
  4. package/dist/admin/api/emails.js.map +1 -1
  5. package/dist/admin/components/AdminNav.d.ts.map +1 -1
  6. package/dist/admin/components/AdminNav.js +2 -1
  7. package/dist/admin/components/AdminNav.js.map +1 -1
  8. package/dist/admin/components/EmailsManager.d.ts.map +1 -1
  9. package/dist/admin/components/EmailsManager.js +168 -51
  10. package/dist/admin/components/EmailsManager.js.map +1 -1
  11. package/dist/admin/components/emails/BlocksEditor.d.ts +17 -0
  12. package/dist/admin/components/emails/BlocksEditor.d.ts.map +1 -0
  13. package/dist/admin/components/emails/BlocksEditor.js +110 -0
  14. package/dist/admin/components/emails/BlocksEditor.js.map +1 -0
  15. package/dist/admin/components/emails/EmailPreviewPane.d.ts +18 -0
  16. package/dist/admin/components/emails/EmailPreviewPane.d.ts.map +1 -0
  17. package/dist/admin/components/emails/EmailPreviewPane.js +52 -0
  18. package/dist/admin/components/emails/EmailPreviewPane.js.map +1 -0
  19. package/dist/admin/components/emails/EmailThemePanel.d.ts +27 -0
  20. package/dist/admin/components/emails/EmailThemePanel.d.ts.map +1 -0
  21. package/dist/admin/components/emails/EmailThemePanel.js +25 -0
  22. package/dist/admin/components/emails/EmailThemePanel.js.map +1 -0
  23. package/dist/admin/components/emails/FontPicker.d.ts +11 -0
  24. package/dist/admin/components/emails/FontPicker.d.ts.map +1 -0
  25. package/dist/admin/components/emails/FontPicker.js +55 -0
  26. package/dist/admin/components/emails/FontPicker.js.map +1 -0
  27. package/dist/admin/components/emails/TextBlockEditor.d.ts +7 -0
  28. package/dist/admin/components/emails/TextBlockEditor.d.ts.map +1 -0
  29. package/dist/admin/components/emails/TextBlockEditor.js +70 -0
  30. package/dist/admin/components/emails/TextBlockEditor.js.map +1 -0
  31. package/dist/core/db/queries.d.ts +38 -29
  32. package/dist/core/db/queries.d.ts.map +1 -1
  33. package/dist/core/db/queries.js +20 -0
  34. package/dist/core/db/queries.js.map +1 -1
  35. package/dist/core/db/schema.d.ts +35 -1
  36. package/dist/core/db/schema.d.ts.map +1 -1
  37. package/dist/core/db/schema.js +4 -0
  38. package/dist/core/db/schema.js.map +1 -1
  39. package/dist/emails/blocks.d.ts +95 -0
  40. package/dist/emails/blocks.d.ts.map +1 -0
  41. package/dist/emails/blocks.js +239 -0
  42. package/dist/emails/blocks.js.map +1 -0
  43. package/dist/emails/google-fonts.d.ts +13 -0
  44. package/dist/emails/google-fonts.d.ts.map +1 -0
  45. package/dist/emails/google-fonts.js +1943 -0
  46. package/dist/emails/google-fonts.js.map +1 -0
  47. package/dist/emails/overrides.d.ts +6 -0
  48. package/dist/emails/overrides.d.ts.map +1 -1
  49. package/dist/emails/overrides.js +10 -2
  50. package/dist/emails/overrides.js.map +1 -1
  51. package/dist/emails/registry.d.ts +49 -5
  52. package/dist/emails/registry.d.ts.map +1 -1
  53. package/dist/emails/registry.js +584 -122
  54. package/dist/emails/registry.js.map +1 -1
  55. package/dist/emails/send/auth.d.ts.map +1 -1
  56. package/dist/emails/send/auth.js +40 -25
  57. package/dist/emails/send/auth.js.map +1 -1
  58. package/dist/emails/send/orders.d.ts.map +1 -1
  59. package/dist/emails/send/orders.js +85 -55
  60. package/dist/emails/send/orders.js.map +1 -1
  61. package/dist/emails/templates/base.d.ts +7 -0
  62. package/dist/emails/templates/base.d.ts.map +1 -1
  63. package/dist/emails/templates/base.js +34 -12
  64. package/dist/emails/templates/base.js.map +1 -1
  65. package/dist/emails/templates/email-verification.d.ts +4 -0
  66. package/dist/emails/templates/email-verification.d.ts.map +1 -1
  67. package/dist/emails/templates/email-verification.js +10 -2
  68. package/dist/emails/templates/email-verification.js.map +1 -1
  69. package/dist/emails/templates/order-cancelled.d.ts +4 -0
  70. package/dist/emails/templates/order-cancelled.d.ts.map +1 -1
  71. package/dist/emails/templates/order-cancelled.js +18 -10
  72. package/dist/emails/templates/order-cancelled.js.map +1 -1
  73. package/dist/emails/templates/order-confirmation.d.ts +18 -0
  74. package/dist/emails/templates/order-confirmation.d.ts.map +1 -1
  75. package/dist/emails/templates/order-confirmation.js +43 -21
  76. package/dist/emails/templates/order-confirmation.js.map +1 -1
  77. package/dist/emails/templates/order-delivered.d.ts +6 -0
  78. package/dist/emails/templates/order-delivered.d.ts.map +1 -1
  79. package/dist/emails/templates/order-delivered.js +22 -16
  80. package/dist/emails/templates/order-delivered.js.map +1 -1
  81. package/dist/emails/templates/order-ready-for-pickup.d.ts +10 -0
  82. package/dist/emails/templates/order-ready-for-pickup.d.ts.map +1 -1
  83. package/dist/emails/templates/order-ready-for-pickup.js +38 -22
  84. package/dist/emails/templates/order-ready-for-pickup.js.map +1 -1
  85. package/dist/emails/templates/order-shipped.d.ts +6 -0
  86. package/dist/emails/templates/order-shipped.d.ts.map +1 -1
  87. package/dist/emails/templates/order-shipped.js +17 -9
  88. package/dist/emails/templates/order-shipped.js.map +1 -1
  89. package/dist/emails/templates/password-reset.d.ts +4 -0
  90. package/dist/emails/templates/password-reset.d.ts.map +1 -1
  91. package/dist/emails/templates/password-reset.js +10 -2
  92. package/dist/emails/templates/password-reset.js.map +1 -1
  93. package/dist/emails/templates/refund-processed.d.ts +6 -0
  94. package/dist/emails/templates/refund-processed.d.ts.map +1 -1
  95. package/dist/emails/templates/refund-processed.js +17 -7
  96. package/dist/emails/templates/refund-processed.js.map +1 -1
  97. package/dist/emails/templates/welcome.d.ts +2 -0
  98. package/dist/emails/templates/welcome.d.ts.map +1 -1
  99. package/dist/emails/templates/welcome.js +8 -4
  100. package/dist/emails/templates/welcome.js.map +1 -1
  101. package/dist/emails/theme.d.ts +35 -12
  102. package/dist/emails/theme.d.ts.map +1 -1
  103. package/dist/emails/theme.js +131 -42
  104. package/dist/emails/theme.js.map +1 -1
  105. package/package.json +7 -1
@@ -57,6 +57,8 @@ function hexToRgba(hex, opacity) {
57
57
  export const DEFAULT_EMAIL_STYLES = {
58
58
  fontFamily: THEME.fontFamily,
59
59
  fontName: THEME.fontName,
60
+ headingFontFamily: THEME.fontFamily,
61
+ headingFontName: THEME.fontName,
60
62
  backgroundColor: '#F7F7F7',
61
63
  cardBackground: '#FFFFFF',
62
64
  cardBorder: THEME.colors.neutral200,
@@ -67,6 +69,8 @@ export const DEFAULT_EMAIL_STYLES = {
67
69
  textMuted: THEME.colors.neutral800,
68
70
  buttonRadius: '12px',
69
71
  cardRadius: '24px',
72
+ logoWidth: '180px',
73
+ logoAlign: 'center',
70
74
  footerNote: '',
71
75
  };
72
76
  /**
@@ -99,8 +103,8 @@ function renderHeader(logoUrl) {
99
103
  }
100
104
  return `
101
105
  <tr>
102
- <td align="center" style="padding: 48px 32px 32px 32px;">
103
- <img src="${escapeHtml(logoUrl)}" alt="Store Logo" style="max-width: 180px; height: auto;" />
106
+ <td align="${STYLES.logoAlign}" class="rv-header" style="padding: 48px ${STYLES.logoAlign === 'left' ? '48px' : '32px'} 32px ${STYLES.logoAlign === 'left' ? '48px' : '32px'};">
107
+ <img src="${escapeHtml(logoUrl)}" alt="Store Logo" style="max-width: ${STYLES.logoWidth}; width: auto; height: auto;" />
104
108
  </td>
105
109
  </tr>
106
110
  `;
@@ -111,7 +115,7 @@ function renderHeader(logoUrl) {
111
115
  function renderFooter(config) {
112
116
  return `
113
117
  <tr>
114
- <td style="padding: 32px 48px; background-color: ${STYLES.footerBackground}; border-top: 1px solid ${STYLES.cardBorder};">
118
+ <td class="rv-footer" style="padding: 32px 48px; background-color: ${STYLES.footerBackground}; border-top: 1px solid ${STYLES.cardBorder};">
115
119
  <p style="margin: 0 0 8px 0; font-family: ${STYLES.fontFamily}; font-size: 14px; font-weight: 500; line-height: 1.5; color: ${STYLES.textMuted}; text-align: center;">
116
120
  ${escapeHtml(config.storeName)}
117
121
  </p>
@@ -172,9 +176,17 @@ export function baseLayout({ config, title, content }) {
172
176
  pendingIntro = null;
173
177
  pendingOutro = null;
174
178
  const wrappedContent = `${intro ? customBlock(intro) : ''}${content}${outro ? customBlock(outro) : ''}`;
175
- // Build Google Fonts URL with dynamic font name
176
- const fontNameEncoded = STYLES.fontName.replace(/ /g, '+');
177
- const googleFontsUrl = `https://fonts.googleapis.com/css2?family=${fontNameEncoded}:wght@400;500;600;700&display=swap`;
179
+ // Google Fonts URL covering body + heading families (deduped).
180
+ const families = Array.from(new Set([STYLES.fontName, STYLES.headingFontName].filter(Boolean)));
181
+ const googleFontsUrl = `https://fonts.googleapis.com/css2?${families
182
+ .map((f) => `family=${f.replace(/ /g, '+')}:wght@400;500;600;700`)
183
+ .join('&')}&display=swap`;
184
+ // Fluid hybrid layout: the card is width:100% capped at 600px (real phones
185
+ // and the admin mobile preview both reflow instead of clipping), with an
186
+ // MSO ghost table so Outlook desktop still gets a fixed 600px column. The
187
+ // body carries the background full-bleed. Mobile media queries tighten
188
+ // padding + type via the rv-* classes (inline styles win otherwise, hence
189
+ // the !important).
178
190
  return `<!DOCTYPE html>
179
191
  <html lang="en">
180
192
  <head>
@@ -184,20 +196,30 @@ export function baseLayout({ config, title, content }) {
184
196
  <link rel="preconnect" href="https://fonts.googleapis.com">
185
197
  <link rel="preconnect" href="https://fonts.gstatic.com" crossorigin>
186
198
  <link href="${googleFontsUrl}" rel="stylesheet">
199
+ <style>
200
+ @media only screen and (max-width: 480px) {
201
+ .rv-content { padding: 0 24px 40px 24px !important; }
202
+ .rv-header { padding: 32px 24px 24px 24px !important; }
203
+ .rv-footer { padding: 24px 24px !important; }
204
+ h1 { font-size: 24px !important; }
205
+ }
206
+ </style>
187
207
  </head>
188
208
  <body style="margin: 0; padding: 0; font-family: ${STYLES.fontFamily}; background-color: ${STYLES.backgroundColor};">
189
- <table width="100%" cellpadding="0" cellspacing="0" style="background-color: ${STYLES.backgroundColor}; padding: 40px 0;">
209
+ <table width="100%" cellpadding="0" cellspacing="0" style="background-color: ${STYLES.backgroundColor};">
190
210
  <tr>
191
- <td align="center">
192
- <table width="600" cellpadding="0" cellspacing="0" style="background-color: ${STYLES.cardBackground}; border-radius: ${STYLES.cardRadius}; overflow: hidden; border: 1px solid ${STYLES.cardBorder};">
211
+ <td align="center" style="padding: 40px 12px;">
212
+ <!--[if mso]><table width="600" cellpadding="0" cellspacing="0" align="center"><tr><td><![endif]-->
213
+ <table width="100%" cellpadding="0" cellspacing="0" align="center" style="max-width: 600px; width: 100%; background-color: ${STYLES.cardBackground}; border-radius: ${STYLES.cardRadius}; overflow: hidden; border: 1px solid ${STYLES.cardBorder};">
193
214
  ${renderHeader(config.logoUrl)}
194
215
  <tr>
195
- <td style="padding: 0 48px 48px 48px;">
216
+ <td class="rv-content" style="padding: 0 48px 48px 48px;">
196
217
  ${wrappedContent}
197
218
  </td>
198
219
  </tr>
199
220
  ${renderFooter(config)}
200
221
  </table>
222
+ <!--[if mso]></td></tr></table><![endif]-->
201
223
  </td>
202
224
  </tr>
203
225
  </table>
@@ -225,7 +247,7 @@ export function primaryButton(text, href) {
225
247
  * Render a heading (h1).
226
248
  */
227
249
  export function heading(text) {
228
- return `<h1 style="margin: 0 0 24px 0; font-family: ${STYLES.fontFamily}; font-size: 30px; font-weight: 700; color: ${STYLES.textPrimary}; text-align: center; line-height: 1.1;">${escapeHtml(text)}</h1>`;
250
+ return `<h1 style="margin: 0 0 24px 0; font-family: ${STYLES.headingFontFamily}; font-size: 30px; font-weight: 700; color: ${STYLES.textPrimary}; text-align: center; line-height: 1.1;">${escapeHtml(text)}</h1>`;
229
251
  }
230
252
  /**
231
253
  * Render a paragraph of text.
@@ -370,7 +392,7 @@ export function addressSection(title, addressHtml) {
370
392
  * Render a section heading.
371
393
  */
372
394
  export function sectionHeading(text) {
373
- return `<h3 style="margin: 0 0 16px 0; font-family: ${STYLES.fontFamily}; font-size: 18px; font-weight: 600; color: ${STYLES.textPrimary};">${escapeHtml(text)}</h3>`;
395
+ return `<h3 style="margin: 0 0 16px 0; font-family: ${STYLES.headingFontFamily}; font-size: 18px; font-weight: 600; color: ${STYLES.textPrimary};">${escapeHtml(text)}</h3>`;
374
396
  }
375
397
  // Export styles for use in specialized templates
376
398
  export { STYLES };
@@ -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":"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"}
@@ -20,6 +20,10 @@ import type { EmailVerificationData } from '../types';
20
20
  * })
21
21
  * ```
22
22
  */
23
+ /** Slot fragment: the verification button (secure tokenized link). */
24
+ export declare function renderVerifyButton(data: Pick<EmailVerificationData, 'verificationLink'>): string;
25
+ /** Slot fragment: copy-paste fallback for the verification link. */
26
+ export declare function renderVerifyLinkFallback(data: Pick<EmailVerificationData, 'verificationLink'>): string;
23
27
  export declare function renderEmailVerification(data: EmailVerificationData): string;
24
28
  /**
25
29
  * Get the subject line for email verification emails.
@@ -1 +1 @@
1
- {"version":3,"file":"email-verification.d.ts","sourceRoot":"","sources":["../../../src/emails/templates/email-verification.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,KAAK,EAAE,qBAAqB,EAAE,MAAM,UAAU,CAAA;AAUrD;;;;;;;;;;;;;;;GAeG;AACH,wBAAgB,uBAAuB,CAAC,IAAI,EAAE,qBAAqB,GAAG,MAAM,CA+B3E;AAED;;GAEG;AACH,wBAAgB,2BAA2B,CAAC,SAAS,EAAE,MAAM,GAAG,MAAM,CAErE"}
1
+ {"version":3,"file":"email-verification.d.ts","sourceRoot":"","sources":["../../../src/emails/templates/email-verification.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,KAAK,EAAE,qBAAqB,EAAE,MAAM,UAAU,CAAA;AAUrD;;;;;;;;;;;;;;;GAeG;AACH,sEAAsE;AACtE,wBAAgB,kBAAkB,CAAC,IAAI,EAAE,IAAI,CAAC,qBAAqB,EAAE,kBAAkB,CAAC,GAAG,MAAM,CAEhG;AAED,oEAAoE;AACpE,wBAAgB,wBAAwB,CAAC,IAAI,EAAE,IAAI,CAAC,qBAAqB,EAAE,kBAAkB,CAAC,GAAG,MAAM,CAEtG;AAED,wBAAgB,uBAAuB,CAAC,IAAI,EAAE,qBAAqB,GAAG,MAAM,CA+B3E;AAED;;GAEG;AACH,wBAAgB,2BAA2B,CAAC,SAAS,EAAE,MAAM,GAAG,MAAM,CAErE"}
@@ -21,6 +21,14 @@ import { baseLayout, heading, paragraph, primaryButton, linkFallback, } from './
21
21
  * })
22
22
  * ```
23
23
  */
24
+ /** Slot fragment: the verification button (secure tokenized link). */
25
+ export function renderVerifyButton(data) {
26
+ return primaryButton('Verify Email Address', data.verificationLink);
27
+ }
28
+ /** Slot fragment: copy-paste fallback for the verification link. */
29
+ export function renderVerifyLinkFallback(data) {
30
+ return linkFallback(data.verificationLink);
31
+ }
24
32
  export function renderEmailVerification(data) {
25
33
  const content = `
26
34
  ${heading('Verify Your Email Address')}
@@ -29,13 +37,13 @@ export function renderEmailVerification(data) {
29
37
 
30
38
  ${paragraph(`Thanks for signing up with ${escapeHtml(data.config.storeName)}! To complete your registration and start shopping, please verify your email address by clicking the button below.`, '32px')}
31
39
 
32
- ${primaryButton('Verify Email Address', data.verificationLink)}
40
+ ${renderVerifyButton(data)}
33
41
 
34
42
  ${paragraph(`This link will expire in ${escapeHtml(data.expiryTime)} ${data.expiryTime === '1' ? 'hour' : 'hours'} for security reasons.`, '24px')}
35
43
 
36
44
  ${paragraph("If you didn't create an account with us, you can safely ignore this email.", '24px')}
37
45
 
38
- ${linkFallback(data.verificationLink)}
46
+ ${renderVerifyLinkFallback(data)}
39
47
  `;
40
48
  return baseLayout({
41
49
  config: data.config,
@@ -1 +1 @@
1
- {"version":3,"file":"email-verification.js","sourceRoot":"","sources":["../../../src/emails/templates/email-verification.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAGH,OAAO,EAAE,UAAU,EAAE,MAAM,UAAU,CAAA;AACrC,OAAO,EACL,UAAU,EACV,OAAO,EACP,SAAS,EACT,aAAa,EACb,YAAY,GACb,MAAM,QAAQ,CAAA;AAEf;;;;;;;;;;;;;;;GAeG;AACH,MAAM,UAAU,uBAAuB,CAAC,IAA2B;IACjE,MAAM,OAAO,GAAG;MACZ,OAAO,CAAC,2BAA2B,CAAC;;MAEpC,SAAS,CAAC,MAAM,UAAU,CAAC,IAAI,CAAC,YAAY,CAAC,GAAG,CAAC;;MAEjD,SAAS,CACT,8BAA8B,UAAU,CAAC,IAAI,CAAC,MAAM,CAAC,SAAS,CAAC,oHAAoH,EACnL,MAAM,CACP;;MAEC,aAAa,CAAC,sBAAsB,EAAE,IAAI,CAAC,gBAAgB,CAAC;;MAE5D,SAAS,CACT,4BAA4B,UAAU,CAAC,IAAI,CAAC,UAAU,CAAC,IAAI,IAAI,CAAC,UAAU,KAAK,GAAG,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,OAAO,wBAAwB,EAC7H,MAAM,CACP;;MAEC,SAAS,CACT,4EAA4E,EAC5E,MAAM,CACP;;MAEC,YAAY,CAAC,IAAI,CAAC,gBAAgB,CAAC;GACtC,CAAA;IAED,OAAO,UAAU,CAAC;QAChB,MAAM,EAAE,IAAI,CAAC,MAAM;QACnB,KAAK,EAAE,2BAA2B;QAClC,OAAO;KACR,CAAC,CAAA;AACJ,CAAC;AAED;;GAEG;AACH,MAAM,UAAU,2BAA2B,CAAC,SAAiB;IAC3D,OAAO,+BAA+B,SAAS,EAAE,CAAA;AACnD,CAAC"}
1
+ {"version":3,"file":"email-verification.js","sourceRoot":"","sources":["../../../src/emails/templates/email-verification.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAGH,OAAO,EAAE,UAAU,EAAE,MAAM,UAAU,CAAA;AACrC,OAAO,EACL,UAAU,EACV,OAAO,EACP,SAAS,EACT,aAAa,EACb,YAAY,GACb,MAAM,QAAQ,CAAA;AAEf;;;;;;;;;;;;;;;GAeG;AACH,sEAAsE;AACtE,MAAM,UAAU,kBAAkB,CAAC,IAAqD;IACtF,OAAO,aAAa,CAAC,sBAAsB,EAAE,IAAI,CAAC,gBAAgB,CAAC,CAAA;AACrE,CAAC;AAED,oEAAoE;AACpE,MAAM,UAAU,wBAAwB,CAAC,IAAqD;IAC5F,OAAO,YAAY,CAAC,IAAI,CAAC,gBAAgB,CAAC,CAAA;AAC5C,CAAC;AAED,MAAM,UAAU,uBAAuB,CAAC,IAA2B;IACjE,MAAM,OAAO,GAAG;MACZ,OAAO,CAAC,2BAA2B,CAAC;;MAEpC,SAAS,CAAC,MAAM,UAAU,CAAC,IAAI,CAAC,YAAY,CAAC,GAAG,CAAC;;MAEjD,SAAS,CACT,8BAA8B,UAAU,CAAC,IAAI,CAAC,MAAM,CAAC,SAAS,CAAC,oHAAoH,EACnL,MAAM,CACP;;MAEC,kBAAkB,CAAC,IAAI,CAAC;;MAExB,SAAS,CACT,4BAA4B,UAAU,CAAC,IAAI,CAAC,UAAU,CAAC,IAAI,IAAI,CAAC,UAAU,KAAK,GAAG,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,OAAO,wBAAwB,EAC7H,MAAM,CACP;;MAEC,SAAS,CACT,4EAA4E,EAC5E,MAAM,CACP;;MAEC,wBAAwB,CAAC,IAAI,CAAC;GACjC,CAAA;IAED,OAAO,UAAU,CAAC;QAChB,MAAM,EAAE,IAAI,CAAC,MAAM;QACnB,KAAK,EAAE,2BAA2B;QAClC,OAAO;KACR,CAAC,CAAA;AACJ,CAAC;AAED;;GAEG;AACH,MAAM,UAAU,2BAA2B,CAAC,SAAiB;IAC3D,OAAO,+BAA+B,SAAS,EAAE,CAAA;AACnD,CAAC"}
@@ -22,6 +22,10 @@ import type { OrderCancelledData } from '../types';
22
22
  * })
23
23
  * ```
24
24
  */
25
+ /** Slot fragment: order number + cancelled-on box, incl. the reason line. */
26
+ export declare function renderCancellationDetails(data: Pick<OrderCancelledData, 'orderNumber' | 'cancellationDate' | 'cancellationReason'>): string;
27
+ /** Slot fragment: refund information highlight. */
28
+ export declare function renderRefundInfo(data: Pick<OrderCancelledData, 'refundMessage'>): string;
25
29
  export declare function renderOrderCancelled(data: OrderCancelledData): string;
26
30
  /**
27
31
  * Get the subject line for order cancelled emails.
@@ -1 +1 @@
1
- {"version":3,"file":"order-cancelled.d.ts","sourceRoot":"","sources":["../../../src/emails/templates/order-cancelled.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,UAAU,CAAA;AAgBlD;;;;;;;;;;;;;;;;;GAiBG;AACH,wBAAgB,oBAAoB,CAAC,IAAI,EAAE,kBAAkB,GAAG,MAAM,CAyDrE;AAED;;GAEG;AACH,wBAAgB,wBAAwB,CACtC,SAAS,EAAE,MAAM,EACjB,WAAW,EAAE,MAAM,GAClB,MAAM,CAER"}
1
+ {"version":3,"file":"order-cancelled.d.ts","sourceRoot":"","sources":["../../../src/emails/templates/order-cancelled.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,UAAU,CAAA;AAgBlD;;;;;;;;;;;;;;;;;GAiBG;AACH,6EAA6E;AAC7E,wBAAgB,yBAAyB,CACvC,IAAI,EAAE,IAAI,CAAC,kBAAkB,EAAE,aAAa,GAAG,kBAAkB,GAAG,oBAAoB,CAAC,GACxF,MAAM,CAmBR;AAED,mDAAmD;AACnD,wBAAgB,gBAAgB,CAAC,IAAI,EAAE,IAAI,CAAC,kBAAkB,EAAE,eAAe,CAAC,GAAG,MAAM,CAOxF;AAED,wBAAgB,oBAAoB,CAAC,IAAI,EAAE,kBAAkB,GAAG,MAAM,CAiCrE;AAED;;GAEG;AACH,wBAAgB,wBAAwB,CACtC,SAAS,EAAE,MAAM,EACjB,WAAW,EAAE,MAAM,GAClB,MAAM,CAER"}
@@ -26,13 +26,12 @@ import { baseLayout, heading, paragraph, primaryButton, labeledValue, highlightB
26
26
  * })
27
27
  * ```
28
28
  */
29
- export function renderOrderCancelled(data) {
30
- // Build cancellation reason text
31
- const reasonText = data.cancellationReason
32
- ? ` ${escapeHtml(data.cancellationReason)}`
29
+ /** Slot fragment: order number + cancelled-on box, incl. the reason line. */
30
+ export function renderCancellationDetails(data) {
31
+ const reasonRow = data.cancellationReason
32
+ ? `<p style="margin: 12px 0 0 0; font-family: ${STYLES.fontFamily}; font-size: 14px; font-weight: 400; line-height: 1.5; color: ${STYLES.textSecondary};">${escapeHtml(data.cancellationReason)}</p>`
33
33
  : '';
34
- // Order details box
35
- const orderDetailsBox = `
34
+ return `
36
35
  <div style="padding: 24px; background-color: ${STYLES.footerBackground}; border-radius: 16px; border: 1px solid ${STYLES.cardBorder}; margin-bottom: 32px;">
37
36
  <table width="100%" cellpadding="0" cellspacing="0">
38
37
  ${labeledValue('Order Number', `#${data.orderNumber}`, {
@@ -44,15 +43,24 @@ export function renderOrderCancelled(data) {
44
43
  borderTop: true,
45
44
  })}
46
45
  </table>
46
+ ${reasonRow}
47
47
  </div>
48
48
  `;
49
- // Refund information box
50
- const refundInfoBox = highlightBox(`
49
+ }
50
+ /** Slot fragment: refund information highlight. */
51
+ export function renderRefundInfo(data) {
52
+ return highlightBox(`
51
53
  <h3 style="margin: 0 0 12px 0; font-family: ${STYLES.fontFamily}; font-size: 18px; font-weight: 600; color: ${STYLES.textPrimary};">Refund Information</h3>
52
54
  <p style="margin: 0; font-family: ${STYLES.fontFamily}; font-size: 14px; font-weight: 400; line-height: 1.5; color: ${STYLES.textSecondary};">
53
55
  ${escapeHtml(data.refundMessage)}
54
56
  </p>
55
57
  `);
58
+ }
59
+ export function renderOrderCancelled(data) {
60
+ // Build cancellation reason text
61
+ const reasonText = data.cancellationReason
62
+ ? ` ${escapeHtml(data.cancellationReason)}`
63
+ : '';
56
64
  const content = `
57
65
  ${heading('Order Cancelled')}
58
66
 
@@ -60,9 +68,9 @@ export function renderOrderCancelled(data) {
60
68
 
61
69
  ${paragraph(`Your order #${escapeHtml(data.orderNumber)} has been cancelled as requested.${reasonText}`, '32px')}
62
70
 
63
- ${orderDetailsBox}
71
+ ${renderCancellationDetails({ ...data, cancellationReason: undefined })}
64
72
 
65
- ${refundInfoBox}
73
+ ${renderRefundInfo(data)}
66
74
 
67
75
  ${paragraph("If you have any questions about this cancellation, please don't hesitate to reach out to our support team.", '32px')}
68
76
 
@@ -1 +1 @@
1
- {"version":3,"file":"order-cancelled.js","sourceRoot":"","sources":["../../../src/emails/templates/order-cancelled.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAGH,OAAO,EAAE,UAAU,EAAE,MAAM,UAAU,CAAA;AACrC,OAAO,EACL,UAAU,EACV,OAAO,EACP,SAAS,EACT,aAAa,EACb,YAAY,EACZ,YAAY,EACZ,MAAM,GACP,MAAM,QAAQ,CAAA;AAEf,gFAAgF;AAChF,gBAAgB;AAChB,gFAAgF;AAEhF;;;;;;;;;;;;;;;;;GAiBG;AACH,MAAM,UAAU,oBAAoB,CAAC,IAAwB;IAC3D,iCAAiC;IACjC,MAAM,UAAU,GAAG,IAAI,CAAC,kBAAkB;QACxC,CAAC,CAAC,IAAI,UAAU,CAAC,IAAI,CAAC,kBAAkB,CAAC,EAAE;QAC3C,CAAC,CAAC,EAAE,CAAA;IAEN,oBAAoB;IACpB,MAAM,eAAe,GAAG;mDACyB,MAAM,CAAC,gBAAgB,4CAA4C,MAAM,CAAC,UAAU;;UAE7H,YAAY,CAAC,cAAc,EAAE,IAAI,IAAI,CAAC,WAAW,EAAE,EAAE;QACrD,SAAS,EAAE,MAAM;QACjB,YAAY,EAAE,IAAI;KACnB,CAAC;UACA,YAAY,CAAC,cAAc,EAAE,IAAI,CAAC,gBAAgB,EAAE;QACpD,SAAS,EAAE,MAAM;QACjB,SAAS,EAAE,IAAI;KAChB,CAAC;;;GAGP,CAAA;IAED,yBAAyB;IACzB,MAAM,aAAa,GAAG,YAAY,CAAC;kDACa,MAAM,CAAC,UAAU,+CAA+C,MAAM,CAAC,WAAW;wCAC5F,MAAM,CAAC,UAAU,iEAAiE,MAAM,CAAC,aAAa;QACtI,UAAU,CAAC,IAAI,CAAC,aAAa,CAAC;;GAEnC,CAAC,CAAA;IAEF,MAAM,OAAO,GAAG;MACZ,OAAO,CAAC,iBAAiB,CAAC;;MAE1B,SAAS,CAAC,MAAM,UAAU,CAAC,IAAI,CAAC,YAAY,CAAC,GAAG,CAAC;;MAEjD,SAAS,CACT,eAAe,UAAU,CAAC,IAAI,CAAC,WAAW,CAAC,oCAAoC,UAAU,EAAE,EAC3F,MAAM,CACP;;MAEC,eAAe;;MAEf,aAAa;;MAEb,SAAS,CACT,4GAA4G,EAC5G,MAAM,CACP;;MAEC,aAAa,CAAC,mBAAmB,EAAE,IAAI,CAAC,MAAM,CAAC,OAAO,CAAC;GAC1D,CAAA;IAED,OAAO,UAAU,CAAC;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,MAAM,UAAU,wBAAwB,CACtC,SAAiB,EACjB,WAAmB;IAEnB,OAAO,sBAAsB,WAAW,MAAM,SAAS,EAAE,CAAA;AAC3D,CAAC"}
1
+ {"version":3,"file":"order-cancelled.js","sourceRoot":"","sources":["../../../src/emails/templates/order-cancelled.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAGH,OAAO,EAAE,UAAU,EAAE,MAAM,UAAU,CAAA;AACrC,OAAO,EACL,UAAU,EACV,OAAO,EACP,SAAS,EACT,aAAa,EACb,YAAY,EACZ,YAAY,EACZ,MAAM,GACP,MAAM,QAAQ,CAAA;AAEf,gFAAgF;AAChF,gBAAgB;AAChB,gFAAgF;AAEhF;;;;;;;;;;;;;;;;;GAiBG;AACH,6EAA6E;AAC7E,MAAM,UAAU,yBAAyB,CACvC,IAAyF;IAEzF,MAAM,SAAS,GAAG,IAAI,CAAC,kBAAkB;QACvC,CAAC,CAAC,8CAA8C,MAAM,CAAC,UAAU,iEAAiE,MAAM,CAAC,aAAa,MAAM,UAAU,CAAC,IAAI,CAAC,kBAAkB,CAAC,MAAM;QACrM,CAAC,CAAC,EAAE,CAAA;IACN,OAAO;mDAC0C,MAAM,CAAC,gBAAgB,4CAA4C,MAAM,CAAC,UAAU;;UAE7H,YAAY,CAAC,cAAc,EAAE,IAAI,IAAI,CAAC,WAAW,EAAE,EAAE;QACrD,SAAS,EAAE,MAAM;QACjB,YAAY,EAAE,IAAI;KACnB,CAAC;UACA,YAAY,CAAC,cAAc,EAAE,IAAI,CAAC,gBAAgB,EAAE;QACpD,SAAS,EAAE,MAAM;QACjB,SAAS,EAAE,IAAI;KAChB,CAAC;;QAEF,SAAS;;GAEd,CAAA;AACH,CAAC;AAED,mDAAmD;AACnD,MAAM,UAAU,gBAAgB,CAAC,IAA+C;IAC9E,OAAO,YAAY,CAAC;kDAC4B,MAAM,CAAC,UAAU,+CAA+C,MAAM,CAAC,WAAW;wCAC5F,MAAM,CAAC,UAAU,iEAAiE,MAAM,CAAC,aAAa;QACtI,UAAU,CAAC,IAAI,CAAC,aAAa,CAAC;;GAEnC,CAAC,CAAA;AACJ,CAAC;AAED,MAAM,UAAU,oBAAoB,CAAC,IAAwB;IAC3D,iCAAiC;IACjC,MAAM,UAAU,GAAG,IAAI,CAAC,kBAAkB;QACxC,CAAC,CAAC,IAAI,UAAU,CAAC,IAAI,CAAC,kBAAkB,CAAC,EAAE;QAC3C,CAAC,CAAC,EAAE,CAAA;IAEN,MAAM,OAAO,GAAG;MACZ,OAAO,CAAC,iBAAiB,CAAC;;MAE1B,SAAS,CAAC,MAAM,UAAU,CAAC,IAAI,CAAC,YAAY,CAAC,GAAG,CAAC;;MAEjD,SAAS,CACT,eAAe,UAAU,CAAC,IAAI,CAAC,WAAW,CAAC,oCAAoC,UAAU,EAAE,EAC3F,MAAM,CACP;;MAEC,yBAAyB,CAAC,EAAE,GAAG,IAAI,EAAE,kBAAkB,EAAE,SAAS,EAAE,CAAC;;MAErE,gBAAgB,CAAC,IAAI,CAAC;;MAEtB,SAAS,CACT,4GAA4G,EAC5G,MAAM,CACP;;MAEC,aAAa,CAAC,mBAAmB,EAAE,IAAI,CAAC,MAAM,CAAC,OAAO,CAAC;GAC1D,CAAA;IAED,OAAO,UAAU,CAAC;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,MAAM,UAAU,wBAAwB,CACtC,SAAiB,EACjB,WAAmB;IAEnB,OAAO,sBAAsB,WAAW,MAAM,SAAS,EAAE,CAAA;AAC3D,CAAC"}
@@ -4,6 +4,16 @@
4
4
  * Order confirmation email template.
5
5
  */
6
6
  import type { OrderConfirmationData } from '../types';
7
+ /** Slot fragment: 'Order Items' section heading + item rows. */
8
+ export declare function renderOrderItemsSection(data: Pick<OrderConfirmationData, 'items'>): string;
9
+ export declare function renderOrderSummary(data: {
10
+ subtotal: string;
11
+ shippingCost: string;
12
+ discount?: string;
13
+ discountCode?: string;
14
+ tax: string;
15
+ total: string;
16
+ }): string;
7
17
  /**
8
18
  * Render the order confirmation email template.
9
19
  *
@@ -28,6 +38,14 @@ import type { OrderConfirmationData } from '../types';
28
38
  * })
29
39
  * ```
30
40
  */
41
+ /** Slot fragment: order number / date / payment status box. */
42
+ export declare function renderOrderDetailsBox(data: Pick<OrderConfirmationData, 'orderNumber' | 'orderDate' | 'paymentStatus'>): string;
43
+ /** Slot fragment: manual-payment instructions (amber box); '' when absent. */
44
+ export declare function renderPaymentInstructionsBox(data: Pick<OrderConfirmationData, 'paymentInstructions'>): string;
45
+ /** Slot fragment: shipping address (or pickup location on pickup orders). */
46
+ export declare function renderOrderAddress(data: Pick<OrderConfirmationData, 'pickup' | 'shippingAddress'>): string;
47
+ /** Slot fragment: Stripe receipt download button; '' when absent. */
48
+ export declare function renderReceiptButton(data: Pick<OrderConfirmationData, 'receiptUrl'>): string;
31
49
  export declare function renderOrderConfirmation(data: OrderConfirmationData): string;
32
50
  /**
33
51
  * Get the subject line for order confirmation emails.
@@ -1 +1 @@
1
- {"version":3,"file":"order-confirmation.d.ts","sourceRoot":"","sources":["../../../src/emails/templates/order-confirmation.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,KAAK,EAAE,qBAAqB,EAAkB,MAAM,UAAU,CAAA;AAmHrE;;;;;;;;;;;;;;;;;;;;;;;GAuBG;AACH,wBAAgB,uBAAuB,CAAC,IAAI,EAAE,qBAAqB,GAAG,MAAM,CAsE3E;AAED;;GAEG;AACH,wBAAgB,2BAA2B,CACzC,SAAS,EAAE,MAAM,EACjB,WAAW,EAAE,MAAM,GAClB,MAAM,CAER"}
1
+ {"version":3,"file":"order-confirmation.d.ts","sourceRoot":"","sources":["../../../src/emails/templates/order-confirmation.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,KAAK,EAAE,qBAAqB,EAAkB,MAAM,UAAU,CAAA;AA4CrE,gEAAgE;AAChE,wBAAgB,uBAAuB,CAAC,IAAI,EAAE,IAAI,CAAC,qBAAqB,EAAE,OAAO,CAAC,GAAG,MAAM,CAO1F;AAMD,wBAAgB,kBAAkB,CAAC,IAAI,EAAE;IACvC,QAAQ,EAAE,MAAM,CAAA;IAChB,YAAY,EAAE,MAAM,CAAA;IACpB,QAAQ,CAAC,EAAE,MAAM,CAAA;IACjB,YAAY,CAAC,EAAE,MAAM,CAAA;IACrB,GAAG,EAAE,MAAM,CAAA;IACX,KAAK,EAAE,MAAM,CAAA;CACd,GAAG,MAAM,CAsDT;AAMD;;;;;;;;;;;;;;;;;;;;;;;GAuBG;AACH,+DAA+D;AAC/D,wBAAgB,qBAAqB,CACnC,IAAI,EAAE,IAAI,CAAC,qBAAqB,EAAE,aAAa,GAAG,WAAW,GAAG,eAAe,CAAC,GAC/E,MAAM,CAiBR;AAED,8EAA8E;AAC9E,wBAAgB,4BAA4B,CAC1C,IAAI,EAAE,IAAI,CAAC,qBAAqB,EAAE,qBAAqB,CAAC,GACvD,MAAM,CAUR;AAED,6EAA6E;AAC7E,wBAAgB,kBAAkB,CAChC,IAAI,EAAE,IAAI,CAAC,qBAAqB,EAAE,QAAQ,GAAG,iBAAiB,CAAC,GAC9D,MAAM,CAER;AAED,qEAAqE;AACrE,wBAAgB,mBAAmB,CAAC,IAAI,EAAE,IAAI,CAAC,qBAAqB,EAAE,YAAY,CAAC,GAAG,MAAM,CAE3F;AAED,wBAAgB,uBAAuB,CAAC,IAAI,EAAE,qBAAqB,GAAG,MAAM,CA0C3E;AAED;;GAEG;AACH,wBAAgB,2BAA2B,CACzC,SAAS,EAAE,MAAM,EACjB,WAAW,EAAE,MAAM,GAClB,MAAM,CAER"}
@@ -30,10 +30,19 @@ function renderOrderItem(item) {
30
30
  function renderOrderItems(items) {
31
31
  return items.map(renderOrderItem).join('');
32
32
  }
33
+ /** Slot fragment: 'Order Items' section heading + item rows. */
34
+ export function renderOrderItemsSection(data) {
35
+ return `
36
+ <div style="margin-bottom: 32px;">
37
+ ${sectionHeading('Order Items')}
38
+ ${renderOrderItems(data.items)}
39
+ </div>
40
+ `;
41
+ }
33
42
  // =============================================================================
34
43
  // Order Summary Component
35
44
  // =============================================================================
36
- function renderOrderSummary(data) {
45
+ export function renderOrderSummary(data) {
37
46
  // Render discount row only if discount is provided
38
47
  const discountRow = data.discount
39
48
  ? `
@@ -114,11 +123,9 @@ function renderOrderSummary(data) {
114
123
  * })
115
124
  * ```
116
125
  */
117
- export function renderOrderConfirmation(data) {
118
- // Build the badge separately since it needs special positioning
119
- const badge = statusBadge('Order Confirmed');
120
- // Order details box
121
- const orderDetailsBox = `
126
+ /** Slot fragment: order number / date / payment status box. */
127
+ export function renderOrderDetailsBox(data) {
128
+ return `
122
129
  <div style="padding: 24px; background-color: ${STYLES.footerBackground}; border-radius: 16px; border: 1px solid ${STYLES.cardBorder}; margin-bottom: 32px;">
123
130
  <table width="100%" cellpadding="0" cellspacing="0">
124
131
  ${labeledValueRow({ label: 'Order Number', value: `#${data.orderNumber}` }, { label: 'Order Date', value: data.orderDate }, true)}
@@ -130,6 +137,31 @@ export function renderOrderConfirmation(data) {
130
137
  </table>
131
138
  </div>
132
139
  `;
140
+ }
141
+ /** Slot fragment: manual-payment instructions (amber box); '' when absent. */
142
+ export function renderPaymentInstructionsBox(data) {
143
+ if (!data.paymentInstructions)
144
+ return '';
145
+ return `
146
+ <div style="padding: 20px 24px; background-color: #FFFBEB; border-radius: 12px; border: 1px solid #FDE68A; margin-bottom: 32px;">
147
+ <p style="margin: 0 0 8px 0; font-family: ${STYLES.fontFamily}; font-size: 14px; font-weight: 600; color: #92400E;">
148
+ Payment Instructions
149
+ </p>
150
+ <p style="margin: 0; font-family: ${STYLES.fontFamily}; font-size: 14px; line-height: 1.625; color: #92400E; white-space: pre-line;">${escapeHtml(data.paymentInstructions)}</p>
151
+ </div>
152
+ `;
153
+ }
154
+ /** Slot fragment: shipping address (or pickup location on pickup orders). */
155
+ export function renderOrderAddress(data) {
156
+ return addressSection(data.pickup ? 'Pick Up At' : 'Shipping Address', formatAddressHtml(data.shippingAddress));
157
+ }
158
+ /** Slot fragment: Stripe receipt download button; '' when absent. */
159
+ export function renderReceiptButton(data) {
160
+ return data.receiptUrl ? secondaryButton('Download Receipt', data.receiptUrl) : '';
161
+ }
162
+ export function renderOrderConfirmation(data) {
163
+ // Build the badge separately since it needs special positioning
164
+ const badge = statusBadge('Order Confirmed');
133
165
  const content = `
134
166
  ${badge}
135
167
  ${heading('Thank You for Your Order!')}
@@ -140,21 +172,11 @@ export function renderOrderConfirmation(data) {
140
172
  : `we've received your order and we're getting it ready. You'll receive a shipping confirmation email once your order is on its way.`}
141
173
  </p>
142
174
 
143
- ${orderDetailsBox}
175
+ ${renderOrderDetailsBox(data)}
144
176
 
145
- ${data.paymentInstructions ? `
146
- <div style="padding: 20px 24px; background-color: #FFFBEB; border-radius: 12px; border: 1px solid #FDE68A; margin-bottom: 32px;">
147
- <p style="margin: 0 0 8px 0; font-family: ${STYLES.fontFamily}; font-size: 14px; font-weight: 600; color: #92400E;">
148
- Payment Instructions
149
- </p>
150
- <p style="margin: 0; font-family: ${STYLES.fontFamily}; font-size: 14px; line-height: 1.625; color: #92400E; white-space: pre-line;">${escapeHtml(data.paymentInstructions)}</p>
151
- </div>
152
- ` : ''}
177
+ ${renderPaymentInstructionsBox(data)}
153
178
 
154
- <div style="margin-bottom: 32px;">
155
- ${sectionHeading('Order Items')}
156
- ${renderOrderItems(data.items)}
157
- </div>
179
+ ${renderOrderItemsSection(data)}
158
180
 
159
181
  ${renderOrderSummary({
160
182
  subtotal: data.subtotal,
@@ -165,10 +187,10 @@ export function renderOrderConfirmation(data) {
165
187
  total: data.total,
166
188
  })}
167
189
 
168
- ${addressSection(data.pickup ? 'Pick Up At' : 'Shipping Address', formatAddressHtml(data.shippingAddress))}
190
+ ${renderOrderAddress(data)}
169
191
 
170
192
  ${primaryButton('View Order Details', data.orderTrackingUrl)}
171
- ${data.receiptUrl ? secondaryButton('Download Receipt', data.receiptUrl) : ''}
193
+ ${renderReceiptButton(data)}
172
194
  `;
173
195
  return baseLayout({
174
196
  config: data.config,
@@ -1 +1 @@
1
- {"version":3,"file":"order-confirmation.js","sourceRoot":"","sources":["../../../src/emails/templates/order-confirmation.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"order-confirmation.js","sourceRoot":"","sources":["../../../src/emails/templates/order-confirmation.ts"],"names":[],"mappings":"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"}
@@ -23,6 +23,12 @@ import type { OrderDeliveredData } from '../types';
23
23
  * })
24
24
  * ```
25
25
  */
26
+ /** Slot fragment: order number / delivered-on / location box. */
27
+ export declare function renderDeliveryDetails(data: Pick<OrderDeliveredData, 'orderNumber' | 'deliveryDate' | 'deliveryLocation'>): string;
28
+ /** Slot fragment: review request highlight; '' when no review URL. */
29
+ export declare function renderReviewRequest(data: Pick<OrderDeliveredData, 'reviewUrl'>): string;
30
+ /** Slot fragment: return-center prompt + button; '' when absent. */
31
+ export declare function renderReturnCenter(data: Pick<OrderDeliveredData, 'returnCenterUrl'>): string;
26
32
  export declare function renderOrderDelivered(data: OrderDeliveredData): string;
27
33
  /**
28
34
  * Get the subject line for order delivered emails.
@@ -1 +1 @@
1
- {"version":3,"file":"order-delivered.d.ts","sourceRoot":"","sources":["../../../src/emails/templates/order-delivered.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,UAAU,CAAA;AAkBlD;;;;;;;;;;;;;;;;;;GAkBG;AACH,wBAAgB,oBAAoB,CAAC,IAAI,EAAE,kBAAkB,GAAG,MAAM,CAqErE;AAED;;GAEG;AACH,wBAAgB,wBAAwB,CACtC,SAAS,EAAE,MAAM,EACjB,WAAW,EAAE,MAAM,GAClB,MAAM,CAER"}
1
+ {"version":3,"file":"order-delivered.d.ts","sourceRoot":"","sources":["../../../src/emails/templates/order-delivered.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,UAAU,CAAA;AAkBlD;;;;;;;;;;;;;;;;;;GAkBG;AACH,iEAAiE;AACjE,wBAAgB,qBAAqB,CACnC,IAAI,EAAE,IAAI,CAAC,kBAAkB,EAAE,aAAa,GAAG,cAAc,GAAG,kBAAkB,CAAC,GAClF,MAAM,CAqBR;AAED,sEAAsE;AACtE,wBAAgB,mBAAmB,CAAC,IAAI,EAAE,IAAI,CAAC,kBAAkB,EAAE,WAAW,CAAC,GAAG,MAAM,CAevF;AAED,oEAAoE;AACpE,wBAAgB,kBAAkB,CAAC,IAAI,EAAE,IAAI,CAAC,kBAAkB,EAAE,iBAAiB,CAAC,GAAG,MAAM,CAG5F;AAED,wBAAgB,oBAAoB,CAAC,IAAI,EAAE,kBAAkB,GAAG,MAAM,CAyBrE;AAED;;GAEG;AACH,wBAAgB,wBAAwB,CACtC,SAAS,EAAE,MAAM,EACjB,WAAW,EAAE,MAAM,GAClB,MAAM,CAER"}
@@ -27,16 +27,15 @@ import { baseLayout, statusBadge, heading, primaryButton, secondaryButton, label
27
27
  * })
28
28
  * ```
29
29
  */
30
- export function renderOrderDelivered(data) {
31
- const badge = statusBadge('Delivered');
32
- // Delivery details box - only show deliveryLocation if provided
30
+ /** Slot fragment: order number / delivered-on / location box. */
31
+ export function renderDeliveryDetails(data) {
33
32
  const deliveryLocationRow = data.deliveryLocation
34
33
  ? labeledValue('Delivered To', data.deliveryLocation, {
35
34
  valueSize: '16px',
36
35
  borderTop: true,
37
36
  })
38
37
  : '';
39
- const deliveryDetailsBox = `
38
+ return `
40
39
  <div style="padding: 24px; background-color: ${STYLES.footerBackground}; border-radius: 16px; border: 1px solid ${STYLES.cardBorder}; margin-bottom: 32px;">
41
40
  <table width="100%" cellpadding="0" cellspacing="0">
42
41
  ${labeledValue('Order Number', `#${data.orderNumber}`, { borderBottom: !data.deliveryLocation })}
@@ -49,9 +48,12 @@ export function renderOrderDelivered(data) {
49
48
  </table>
50
49
  </div>
51
50
  `;
52
- // Feedback section - only show if reviewUrl is provided
53
- const feedbackSection = data.reviewUrl
54
- ? highlightBox(`
51
+ }
52
+ /** Slot fragment: review request highlight; '' when no review URL. */
53
+ export function renderReviewRequest(data) {
54
+ if (!data.reviewUrl)
55
+ return '';
56
+ return highlightBox(`
55
57
  <h3 style="margin: 0 0 12px 0; font-family: ${STYLES.fontFamily}; font-size: 20px; font-weight: 600; color: ${STYLES.textPrimary}; text-align: center;">How's Everything?</h3>
56
58
  <p style="margin: 0 0 20px 0; font-family: ${STYLES.fontFamily}; font-size: 14px; font-weight: 400; line-height: 1.5; color: ${STYLES.textSecondary}; text-align: center;">
57
59
  We'd love to hear your feedback! Your review helps other customers and helps us improve.
@@ -63,12 +65,16 @@ export function renderOrderDelivered(data) {
63
65
  </td>
64
66
  </tr>
65
67
  </table>
66
- `)
67
- : '';
68
- // Return center section - only show if returnCenterUrl is provided
69
- const returnCenterSection = data.returnCenterUrl
70
- ? `${paragraph('Need to return or exchange something?', '16px')}${secondaryButton('Visit Return Center', data.returnCenterUrl)}`
71
- : '';
68
+ `);
69
+ }
70
+ /** Slot fragment: return-center prompt + button; '' when absent. */
71
+ export function renderReturnCenter(data) {
72
+ if (!data.returnCenterUrl)
73
+ return '';
74
+ return `${paragraph('Need to return or exchange something?', '16px')}${secondaryButton('Visit Return Center', data.returnCenterUrl)}`;
75
+ }
76
+ export function renderOrderDelivered(data) {
77
+ const badge = statusBadge('Delivered');
72
78
  const content = `
73
79
  ${badge}
74
80
  ${heading('Your Order Has Been Delivered!')}
@@ -77,11 +83,11 @@ export function renderOrderDelivered(data) {
77
83
  Hi ${escapeHtml(data.customerName)}, your order has been successfully delivered. We hope you love your purchase!
78
84
  </p>
79
85
 
80
- ${deliveryDetailsBox}
86
+ ${renderDeliveryDetails(data)}
81
87
 
82
- ${feedbackSection}
88
+ ${renderReviewRequest(data)}
83
89
 
84
- ${returnCenterSection}
90
+ ${renderReturnCenter(data)}
85
91
 
86
92
  ${primaryButton('Continue Shopping', data.config.shopUrl)}
87
93
  `;
@@ -1 +1 @@
1
- {"version":3,"file":"order-delivered.js","sourceRoot":"","sources":["../../../src/emails/templates/order-delivered.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAGH,OAAO,EAAE,UAAU,EAAE,MAAM,UAAU,CAAA;AACrC,OAAO,EACL,UAAU,EACV,WAAW,EACX,OAAO,EACP,aAAa,EACb,eAAe,EACf,YAAY,EACZ,YAAY,EACZ,SAAS,EACT,MAAM,GACP,MAAM,QAAQ,CAAA;AAEf,gFAAgF;AAChF,gBAAgB;AAChB,gFAAgF;AAEhF;;;;;;;;;;;;;;;;;;GAkBG;AACH,MAAM,UAAU,oBAAoB,CAAC,IAAwB;IAC3D,MAAM,KAAK,GAAG,WAAW,CAAC,WAAW,CAAC,CAAA;IAEtC,gEAAgE;IAChE,MAAM,mBAAmB,GAAG,IAAI,CAAC,gBAAgB;QAC/C,CAAC,CAAC,YAAY,CAAC,cAAc,EAAE,IAAI,CAAC,gBAAgB,EAAE;YAClD,SAAS,EAAE,MAAM;YACjB,SAAS,EAAE,IAAI;SAChB,CAAC;QACJ,CAAC,CAAC,EAAE,CAAA;IAEN,MAAM,kBAAkB,GAAG;mDACsB,MAAM,CAAC,gBAAgB,4CAA4C,MAAM,CAAC,UAAU;;UAE7H,YAAY,CAAC,cAAc,EAAE,IAAI,IAAI,CAAC,WAAW,EAAE,EAAE,EAAE,YAAY,EAAE,CAAC,IAAI,CAAC,gBAAgB,EAAE,CAAC;UAC9F,YAAY,CAAC,cAAc,EAAE,IAAI,CAAC,YAAY,EAAE;QAChD,UAAU,EAAE,MAAM,CAAC,YAAY;QAC/B,SAAS,EAAE,IAAI;QACf,YAAY,EAAE,CAAC,CAAC,IAAI,CAAC,gBAAgB;KACtC,CAAC;UACA,mBAAmB;;;GAG1B,CAAA;IAED,wDAAwD;IACxD,MAAM,eAAe,GAAG,IAAI,CAAC,SAAS;QACpC,CAAC,CAAC,YAAY,CAAC;sDACmC,MAAM,CAAC,UAAU,+CAA+C,MAAM,CAAC,WAAW;qDACnF,MAAM,CAAC,UAAU,iEAAiE,MAAM,CAAC,aAAa;;;;;;yBAMlI,UAAU,CAAC,IAAI,CAAC,SAAS,CAAC,yEAAyE,MAAM,CAAC,YAAY,8EAA8E,MAAM,CAAC,UAAU;;;;OAIvO,CAAC;QACJ,CAAC,CAAC,EAAE,CAAA;IAEN,mEAAmE;IACnE,MAAM,mBAAmB,GAAG,IAAI,CAAC,eAAe;QAC9C,CAAC,CAAC,GAAG,SAAS,CAAC,uCAAuC,EAAE,MAAM,CAAC,GAAG,eAAe,CAAC,qBAAqB,EAAE,IAAI,CAAC,eAAe,CAAC,EAAE;QAChI,CAAC,CAAC,EAAE,CAAA;IAEN,MAAM,OAAO,GAAG;MACZ,KAAK;MACL,OAAO,CAAC,gCAAgC,CAAC;;iDAEE,MAAM,CAAC,UAAU,mEAAmE,MAAM,CAAC,aAAa;WAC9I,UAAU,CAAC,IAAI,CAAC,YAAY,CAAC;;;MAGlC,kBAAkB;;MAElB,eAAe;;MAEf,mBAAmB;;MAEnB,aAAa,CAAC,mBAAmB,EAAE,IAAI,CAAC,MAAM,CAAC,OAAO,CAAC;GAC1D,CAAA;IAED,OAAO,UAAU,CAAC;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,MAAM,UAAU,wBAAwB,CACtC,SAAiB,EACjB,WAAmB;IAEnB,OAAO,oCAAoC,WAAW,MAAM,SAAS,EAAE,CAAA;AACzE,CAAC"}
1
+ {"version":3,"file":"order-delivered.js","sourceRoot":"","sources":["../../../src/emails/templates/order-delivered.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAGH,OAAO,EAAE,UAAU,EAAE,MAAM,UAAU,CAAA;AACrC,OAAO,EACL,UAAU,EACV,WAAW,EACX,OAAO,EACP,aAAa,EACb,eAAe,EACf,YAAY,EACZ,YAAY,EACZ,SAAS,EACT,MAAM,GACP,MAAM,QAAQ,CAAA;AAEf,gFAAgF;AAChF,gBAAgB;AAChB,gFAAgF;AAEhF;;;;;;;;;;;;;;;;;;GAkBG;AACH,iEAAiE;AACjE,MAAM,UAAU,qBAAqB,CACnC,IAAmF;IAEnF,MAAM,mBAAmB,GAAG,IAAI,CAAC,gBAAgB;QAC/C,CAAC,CAAC,YAAY,CAAC,cAAc,EAAE,IAAI,CAAC,gBAAgB,EAAE;YAClD,SAAS,EAAE,MAAM;YACjB,SAAS,EAAE,IAAI;SAChB,CAAC;QACJ,CAAC,CAAC,EAAE,CAAA;IAEN,OAAO;mDAC0C,MAAM,CAAC,gBAAgB,4CAA4C,MAAM,CAAC,UAAU;;UAE7H,YAAY,CAAC,cAAc,EAAE,IAAI,IAAI,CAAC,WAAW,EAAE,EAAE,EAAE,YAAY,EAAE,CAAC,IAAI,CAAC,gBAAgB,EAAE,CAAC;UAC9F,YAAY,CAAC,cAAc,EAAE,IAAI,CAAC,YAAY,EAAE;QAChD,UAAU,EAAE,MAAM,CAAC,YAAY;QAC/B,SAAS,EAAE,IAAI;QACf,YAAY,EAAE,CAAC,CAAC,IAAI,CAAC,gBAAgB;KACtC,CAAC;UACA,mBAAmB;;;GAG1B,CAAA;AACH,CAAC;AAED,sEAAsE;AACtE,MAAM,UAAU,mBAAmB,CAAC,IAA2C;IAC7E,IAAI,CAAC,IAAI,CAAC,SAAS;QAAE,OAAO,EAAE,CAAA;IAC9B,OAAO,YAAY,CAAC;sDACgC,MAAM,CAAC,UAAU,+CAA+C,MAAM,CAAC,WAAW;qDACnF,MAAM,CAAC,UAAU,iEAAiE,MAAM,CAAC,aAAa;;;;;;yBAMlI,UAAU,CAAC,IAAI,CAAC,SAAS,CAAC,yEAAyE,MAAM,CAAC,YAAY,8EAA8E,MAAM,CAAC,UAAU;;;;OAIvO,CAAC,CAAA;AACR,CAAC;AAED,oEAAoE;AACpE,MAAM,UAAU,kBAAkB,CAAC,IAAiD;IAClF,IAAI,CAAC,IAAI,CAAC,eAAe;QAAE,OAAO,EAAE,CAAA;IACpC,OAAO,GAAG,SAAS,CAAC,uCAAuC,EAAE,MAAM,CAAC,GAAG,eAAe,CAAC,qBAAqB,EAAE,IAAI,CAAC,eAAe,CAAC,EAAE,CAAA;AACvI,CAAC;AAED,MAAM,UAAU,oBAAoB,CAAC,IAAwB;IAC3D,MAAM,KAAK,GAAG,WAAW,CAAC,WAAW,CAAC,CAAA;IAEtC,MAAM,OAAO,GAAG;MACZ,KAAK;MACL,OAAO,CAAC,gCAAgC,CAAC;;iDAEE,MAAM,CAAC,UAAU,mEAAmE,MAAM,CAAC,aAAa;WAC9I,UAAU,CAAC,IAAI,CAAC,YAAY,CAAC;;;MAGlC,qBAAqB,CAAC,IAAI,CAAC;;MAE3B,mBAAmB,CAAC,IAAI,CAAC;;MAEzB,kBAAkB,CAAC,IAAI,CAAC;;MAExB,aAAa,CAAC,mBAAmB,EAAE,IAAI,CAAC,MAAM,CAAC,OAAO,CAAC;GAC1D,CAAA;IAED,OAAO,UAAU,CAAC;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,MAAM,UAAU,wBAAwB,CACtC,SAAiB,EACjB,WAAmB;IAEnB,OAAO,oCAAoC,WAAW,MAAM,SAAS,EAAE,CAAA;AACzE,CAAC"}
@@ -9,6 +9,16 @@ import type { OrderReadyForPickupData } from '../types';
9
9
  /**
10
10
  * Render the ready-for-pickup email template.
11
11
  */
12
+ /** Slot fragment: order number + pickup location box. */
13
+ export declare function renderPickupOrderInfo(data: Pick<OrderReadyForPickupData, 'orderNumber' | 'locationName'>): string;
14
+ /** Slot fragment: 'Pick Up At' address section. */
15
+ export declare function renderPickupLocation(data: Pick<OrderReadyForPickupData, 'pickupAddress'>): string;
16
+ /** Slot fragment: opening-hours highlight; '' when the location has none. */
17
+ export declare function renderOpeningHours(data: Pick<OrderReadyForPickupData, 'openingHoursLines'>): string;
18
+ /** Slot fragment: merchant pickup instructions; '' when absent. */
19
+ export declare function renderPickupInstructions(data: Pick<OrderReadyForPickupData, 'pickupInstructions'>): string;
20
+ /** Slot fragment: store phone line; '' when absent. */
21
+ export declare function renderPickupPhoneLine(data: Pick<OrderReadyForPickupData, 'locationPhone'>): string;
12
22
  export declare function renderOrderReadyForPickup(data: OrderReadyForPickupData): string;
13
23
  /**
14
24
  * Get the subject line for ready-for-pickup emails.
@@ -1 +1 @@
1
- {"version":3,"file":"order-ready-for-pickup.d.ts","sourceRoot":"","sources":["../../../src/emails/templates/order-ready-for-pickup.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAEH,OAAO,KAAK,EAAE,uBAAuB,EAAE,MAAM,UAAU,CAAA;AAiBvD;;GAEG;AACH,wBAAgB,yBAAyB,CAAC,IAAI,EAAE,uBAAuB,GAAG,MAAM,CAwE/E;AAED;;GAEG;AACH,wBAAgB,6BAA6B,CAC3C,SAAS,EAAE,MAAM,EACjB,WAAW,EAAE,MAAM,GAClB,MAAM,CAER"}
1
+ {"version":3,"file":"order-ready-for-pickup.d.ts","sourceRoot":"","sources":["../../../src/emails/templates/order-ready-for-pickup.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAEH,OAAO,KAAK,EAAE,uBAAuB,EAAE,MAAM,UAAU,CAAA;AAiBvD;;GAEG;AACH,yDAAyD;AACzD,wBAAgB,qBAAqB,CACnC,IAAI,EAAE,IAAI,CAAC,uBAAuB,EAAE,aAAa,GAAG,cAAc,CAAC,GAClE,MAAM,CAaR;AAED,mDAAmD;AACnD,wBAAgB,oBAAoB,CAAC,IAAI,EAAE,IAAI,CAAC,uBAAuB,EAAE,eAAe,CAAC,GAAG,MAAM,CAEjG;AAED,6EAA6E;AAC7E,wBAAgB,kBAAkB,CAAC,IAAI,EAAE,IAAI,CAAC,uBAAuB,EAAE,mBAAmB,CAAC,GAAG,MAAM,CAWnG;AAED,mEAAmE;AACnE,wBAAgB,wBAAwB,CAAC,IAAI,EAAE,IAAI,CAAC,uBAAuB,EAAE,oBAAoB,CAAC,GAAG,MAAM,CAQ1G;AAED,uDAAuD;AACvD,wBAAgB,qBAAqB,CAAC,IAAI,EAAE,IAAI,CAAC,uBAAuB,EAAE,eAAe,CAAC,GAAG,MAAM,CAOlG;AAED,wBAAgB,yBAAyB,CAAC,IAAI,EAAE,uBAAuB,GAAG,MAAM,CA6B/E;AAED;;GAEG;AACH,wBAAgB,6BAA6B,CAC3C,SAAS,EAAE,MAAM,EACjB,WAAW,EAAE,MAAM,GAClB,MAAM,CAER"}