@rovela-ai/sdk 0.1.18 → 0.1.19
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/admin/api/auth.js +5 -11
- package/dist/admin/api/auth.js.map +1 -1
- package/dist/admin/api/categories.js +43 -50
- package/dist/admin/api/categories.js.map +1 -1
- package/dist/admin/api/check.js +6 -9
- package/dist/admin/api/check.js.map +1 -1
- package/dist/admin/api/customers.js +17 -21
- package/dist/admin/api/customers.js.map +1 -1
- package/dist/admin/api/index.js +10 -38
- package/dist/admin/api/index.js.map +1 -1
- package/dist/admin/api/orders.js +30 -35
- package/dist/admin/api/orders.js.map +1 -1
- package/dist/admin/api/products.js +56 -66
- package/dist/admin/api/products.js.map +1 -1
- package/dist/admin/api/refund.js +26 -29
- package/dist/admin/api/refund.js.map +1 -1
- package/dist/admin/api/settings.js +17 -21
- package/dist/admin/api/settings.js.map +1 -1
- package/dist/admin/api/setup.js +17 -20
- package/dist/admin/api/setup.js.map +1 -1
- package/dist/admin/api/stats.js +14 -17
- package/dist/admin/api/stats.js.map +1 -1
- package/dist/admin/components/AdminGuard.js +13 -17
- package/dist/admin/components/AdminGuard.js.map +1 -1
- package/dist/admin/components/AdminHeader.js +8 -11
- package/dist/admin/components/AdminHeader.js.map +1 -1
- package/dist/admin/components/AdminLayout.js +5 -8
- package/dist/admin/components/AdminLayout.js.map +1 -1
- package/dist/admin/components/AdminLoginForm.js +11 -14
- package/dist/admin/components/AdminLoginForm.js.map +1 -1
- package/dist/admin/components/AdminNav.js +11 -14
- package/dist/admin/components/AdminNav.js.map +1 -1
- package/dist/admin/components/AdminSetupForm.js +11 -14
- package/dist/admin/components/AdminSetupForm.js.map +1 -1
- package/dist/admin/components/InventoryEditor.js +16 -19
- package/dist/admin/components/InventoryEditor.js.map +1 -1
- package/dist/admin/components/LowStockAlert.js +6 -9
- package/dist/admin/components/LowStockAlert.js.map +1 -1
- package/dist/admin/components/OrderDetails.js +15 -18
- package/dist/admin/components/OrderDetails.js.map +1 -1
- package/dist/admin/components/OrderTable.js +13 -16
- package/dist/admin/components/OrderTable.js.map +1 -1
- package/dist/admin/components/ProductForm.js +17 -20
- package/dist/admin/components/ProductForm.js.map +1 -1
- package/dist/admin/components/ProductTable.js +15 -18
- package/dist/admin/components/ProductTable.js.map +1 -1
- package/dist/admin/components/RecentOrders.js +6 -9
- package/dist/admin/components/RecentOrders.js.map +1 -1
- package/dist/admin/components/RefundDialog.js +12 -15
- package/dist/admin/components/RefundDialog.js.map +1 -1
- package/dist/admin/components/StatsCards.js +7 -10
- package/dist/admin/components/StatsCards.js.map +1 -1
- package/dist/admin/components/StoreSettings.js +10 -13
- package/dist/admin/components/StoreSettings.js.map +1 -1
- package/dist/admin/components/index.js +16 -35
- package/dist/admin/components/index.js.map +1 -1
- package/dist/admin/config.js +12 -54
- package/dist/admin/config.js.map +1 -1
- package/dist/admin/hooks/index.js +4 -11
- package/dist/admin/hooks/index.js.map +1 -1
- package/dist/admin/hooks/useAdminAuth.js +9 -12
- package/dist/admin/hooks/useAdminAuth.js.map +1 -1
- package/dist/admin/hooks/useAdminOrders.js +11 -14
- package/dist/admin/hooks/useAdminOrders.js.map +1 -1
- package/dist/admin/hooks/useAdminProducts.js +13 -16
- package/dist/admin/hooks/useAdminProducts.js.map +1 -1
- package/dist/admin/hooks/useAdminStats.js +11 -14
- package/dist/admin/hooks/useAdminStats.js.map +1 -1
- package/dist/admin/index.js +13 -66
- package/dist/admin/index.js.map +1 -1
- package/dist/admin/server/admin-service.js +39 -83
- package/dist/admin/server/admin-service.js.map +1 -1
- package/dist/admin/server/index.js +3 -13
- package/dist/admin/server/index.js.map +1 -1
- package/dist/admin/types.js +1 -2
- package/dist/admin/types.js.map +1 -1
- package/dist/auth/api/auth.js +6 -14
- package/dist/auth/api/auth.js.map +1 -1
- package/dist/auth/api/forgot-password.js +8 -11
- package/dist/auth/api/forgot-password.js.map +1 -1
- package/dist/auth/api/index.js +6 -18
- package/dist/auth/api/index.js.map +1 -1
- package/dist/auth/api/register.js +17 -20
- package/dist/auth/api/register.js.map +1 -1
- package/dist/auth/api/resend-verification.js +9 -12
- package/dist/auth/api/resend-verification.js.map +1 -1
- package/dist/auth/api/reset-password.js +18 -22
- package/dist/auth/api/reset-password.js.map +1 -1
- package/dist/auth/api/verify-email.js +14 -18
- package/dist/auth/api/verify-email.js.map +1 -1
- package/dist/auth/components/AuthGuard.js +13 -17
- package/dist/auth/components/AuthGuard.js.map +1 -1
- package/dist/auth/components/ForgotPasswordForm.js +11 -14
- package/dist/auth/components/ForgotPasswordForm.js.map +1 -1
- package/dist/auth/components/ResetPasswordForm.js +18 -21
- package/dist/auth/components/ResetPasswordForm.js.map +1 -1
- package/dist/auth/components/SignInForm.js +13 -16
- package/dist/auth/components/SignInForm.js.map +1 -1
- package/dist/auth/components/SignUpForm.js +15 -18
- package/dist/auth/components/SignUpForm.js.map +1 -1
- package/dist/auth/components/UserMenu.js +13 -16
- package/dist/auth/components/UserMenu.js.map +1 -1
- package/dist/auth/components/VerifyEmailNotice.js +10 -13
- package/dist/auth/components/VerifyEmailNotice.js.map +1 -1
- package/dist/auth/components/index.js +7 -18
- package/dist/auth/components/index.js.map +1 -1
- package/dist/auth/config.js +9 -49
- package/dist/auth/config.js.map +1 -1
- package/dist/auth/hooks/index.js +1 -5
- package/dist/auth/hooks/index.js.map +1 -1
- package/dist/auth/hooks/useAuth.js +14 -17
- package/dist/auth/hooks/useAuth.js.map +1 -1
- package/dist/auth/index.js +15 -37
- package/dist/auth/index.js.map +1 -1
- package/dist/auth/server/customer-service.js +39 -83
- package/dist/auth/server/customer-service.js.map +1 -1
- package/dist/auth/server/email-sender.js +11 -17
- package/dist/auth/server/email-sender.js.map +1 -1
- package/dist/auth/server/index.js +5 -36
- package/dist/auth/server/index.js.map +1 -1
- package/dist/auth/server/password-reset-service.js +30 -70
- package/dist/auth/server/password-reset-service.js.map +1 -1
- package/dist/auth/server/password.js +9 -18
- package/dist/auth/server/password.js.map +1 -1
- package/dist/auth/server/verification-service.js +35 -76
- package/dist/auth/server/verification-service.js.map +1 -1
- package/dist/auth/types.js +1 -2
- package/dist/auth/types.js.map +1 -1
- package/dist/cart/CartProvider.js +13 -17
- package/dist/cart/CartProvider.js.map +1 -1
- package/dist/cart/components/AddToCartButton.js +16 -19
- package/dist/cart/components/AddToCartButton.js.map +1 -1
- package/dist/cart/components/CartDrawer.js +17 -23
- package/dist/cart/components/CartDrawer.js.map +1 -1
- package/dist/cart/components/CartIcon.js +9 -12
- package/dist/cart/components/CartIcon.js.map +1 -1
- package/dist/cart/components/CartItem.js +7 -13
- package/dist/cart/components/CartItem.js.map +1 -1
- package/dist/cart/components/CartSummary.js +12 -15
- package/dist/cart/components/CartSummary.js.map +1 -1
- package/dist/cart/components/QuantitySelector.js +9 -12
- package/dist/cart/components/QuantitySelector.js.map +1 -1
- package/dist/cart/components/index.js +6 -15
- package/dist/cart/components/index.js.map +1 -1
- package/dist/cart/index.js +3 -17
- package/dist/cart/index.js.map +1 -1
- package/dist/cart/store.js +8 -13
- package/dist/cart/store.js.map +1 -1
- package/dist/checkout/api/checkout.js +12 -15
- package/dist/checkout/api/checkout.js.map +1 -1
- package/dist/checkout/api/index.js +2 -7
- package/dist/checkout/api/index.js.map +1 -1
- package/dist/checkout/api/webhook.js +8 -11
- package/dist/checkout/api/webhook.js.map +1 -1
- package/dist/checkout/components/CheckoutButton.js +8 -11
- package/dist/checkout/components/CheckoutButton.js.map +1 -1
- package/dist/checkout/components/CheckoutSuccess.js +11 -14
- package/dist/checkout/components/CheckoutSuccess.js.map +1 -1
- package/dist/checkout/components/OrderSummary.js +8 -11
- package/dist/checkout/components/OrderSummary.js.map +1 -1
- package/dist/checkout/components/ShippingForm.js +14 -17
- package/dist/checkout/components/ShippingForm.js.map +1 -1
- package/dist/checkout/components/index.js +4 -11
- package/dist/checkout/components/index.js.map +1 -1
- package/dist/checkout/hooks/index.js +1 -6
- package/dist/checkout/hooks/index.js.map +1 -1
- package/dist/checkout/hooks/useCheckout.js +10 -19
- package/dist/checkout/hooks/useCheckout.js.map +1 -1
- package/dist/checkout/index.js +7 -28
- package/dist/checkout/index.js.map +1 -1
- package/dist/checkout/server/create-checkout-session.js +11 -16
- package/dist/checkout/server/create-checkout-session.js.map +1 -1
- package/dist/checkout/server/handle-webhook.js +21 -24
- package/dist/checkout/server/handle-webhook.js.map +1 -1
- package/dist/checkout/server/index.js +3 -13
- package/dist/checkout/server/index.js.map +1 -1
- package/dist/checkout/server/order-service.js +11 -16
- package/dist/checkout/server/order-service.js.map +1 -1
- package/dist/checkout/stripe/client.js +13 -29
- package/dist/checkout/stripe/client.js.map +1 -1
- package/dist/checkout/stripe/index.js +1 -15
- package/dist/checkout/stripe/index.js.map +1 -1
- package/dist/checkout/types.js +1 -2
- package/dist/checkout/types.js.map +1 -1
- package/dist/core/config.js +12 -57
- package/dist/core/config.js.map +1 -1
- package/dist/core/db/client.js +16 -62
- package/dist/core/db/client.js.map +1 -1
- package/dist/core/db/index.js +14 -93
- package/dist/core/db/index.js.map +1 -1
- package/dist/core/db/queries.d.ts +6 -6
- package/dist/core/db/queries.js +207 -284
- package/dist/core/db/queries.js.map +1 -1
- package/dist/core/db/schema.js +179 -182
- package/dist/core/db/schema.js.map +1 -1
- package/dist/core/index.js +12 -42
- package/dist/core/index.js.map +1 -1
- package/dist/core/server/index.js +16 -68
- package/dist/core/server/index.js.map +1 -1
- package/dist/core/types.js +1 -2
- package/dist/core/types.js.map +1 -1
- package/dist/core/utils.js +26 -51
- package/dist/core/utils.js.map +1 -1
- package/dist/emails/config.js +13 -21
- package/dist/emails/config.js.map +1 -1
- package/dist/emails/index.js +10 -72
- package/dist/emails/index.js.map +1 -1
- package/dist/emails/send/auth.js +26 -34
- package/dist/emails/send/auth.js.map +1 -1
- package/dist/emails/send/index.js +2 -21
- package/dist/emails/send/index.js.map +1 -1
- package/dist/emails/send/orders.js +38 -50
- package/dist/emails/send/orders.js.map +1 -1
- package/dist/emails/sender.js +7 -12
- package/dist/emails/sender.js.map +1 -1
- package/dist/emails/templates/base.js +37 -53
- package/dist/emails/templates/base.js.map +1 -1
- package/dist/emails/templates/email-verification.js +12 -16
- package/dist/emails/templates/email-verification.js.map +1 -1
- package/dist/emails/templates/index.js +9 -43
- package/dist/emails/templates/index.js.map +1 -1
- package/dist/emails/templates/order-cancelled.js +18 -22
- package/dist/emails/templates/order-cancelled.js.map +1 -1
- package/dist/emails/templates/order-confirmation.js +30 -34
- package/dist/emails/templates/order-confirmation.js.map +1 -1
- package/dist/emails/templates/order-delivered.js +20 -24
- package/dist/emails/templates/order-delivered.js.map +1 -1
- package/dist/emails/templates/order-shipped.js +19 -23
- package/dist/emails/templates/order-shipped.js.map +1 -1
- package/dist/emails/templates/password-reset.js +12 -16
- package/dist/emails/templates/password-reset.js.map +1 -1
- package/dist/emails/templates/refund-processed.js +17 -21
- package/dist/emails/templates/refund-processed.js.map +1 -1
- package/dist/emails/templates/welcome.js +11 -15
- package/dist/emails/templates/welcome.js.map +1 -1
- package/dist/emails/types.js +1 -2
- package/dist/emails/types.js.map +1 -1
- package/dist/emails/utils.js +9 -20
- package/dist/emails/utils.js.map +1 -1
- package/dist/index.js +24 -176
- package/dist/index.js.map +1 -1
- package/dist/products/api/categories.js +7 -10
- package/dist/products/api/categories.js.map +1 -1
- package/dist/products/api/index.js +3 -9
- package/dist/products/api/index.js.map +1 -1
- package/dist/products/api/product.js +10 -13
- package/dist/products/api/product.js.map +1 -1
- package/dist/products/api/products.js +8 -11
- package/dist/products/api/products.js.map +1 -1
- package/dist/products/components/CategoryNav.js +20 -26
- package/dist/products/components/CategoryNav.js.map +1 -1
- package/dist/products/components/ProductBreadcrumb.js +7 -13
- package/dist/products/components/ProductBreadcrumb.js.map +1 -1
- package/dist/products/components/ProductCard.js +6 -12
- package/dist/products/components/ProductCard.js.map +1 -1
- package/dist/products/components/ProductDetails.js +14 -17
- package/dist/products/components/ProductDetails.js.map +1 -1
- package/dist/products/components/ProductFilters.js +15 -18
- package/dist/products/components/ProductFilters.js.map +1 -1
- package/dist/products/components/ProductGallery.js +17 -23
- package/dist/products/components/ProductGallery.js.map +1 -1
- package/dist/products/components/ProductGrid.js +10 -13
- package/dist/products/components/ProductGrid.js.map +1 -1
- package/dist/products/components/ProductSearch.js +14 -17
- package/dist/products/components/ProductSearch.js.map +1 -1
- package/dist/products/components/ProductSort.js +8 -11
- package/dist/products/components/ProductSort.js.map +1 -1
- package/dist/products/components/VariantSelector.js +16 -19
- package/dist/products/components/VariantSelector.js.map +1 -1
- package/dist/products/components/index.js +10 -23
- package/dist/products/components/index.js.map +1 -1
- package/dist/products/hooks/index.js +4 -11
- package/dist/products/hooks/index.js.map +1 -1
- package/dist/products/hooks/useCategories.js +12 -15
- package/dist/products/hooks/useCategories.js.map +1 -1
- package/dist/products/hooks/useProduct.js +9 -12
- package/dist/products/hooks/useProduct.js.map +1 -1
- package/dist/products/hooks/useProductAttributes.js +10 -13
- package/dist/products/hooks/useProductAttributes.js.map +1 -1
- package/dist/products/hooks/useProducts.js +15 -18
- package/dist/products/hooks/useProducts.js.map +1 -1
- package/dist/products/index.js +6 -23
- package/dist/products/index.js.map +1 -1
- package/dist/theme/ThemeProvider.js +12 -14
- package/dist/theme/ThemeProvider.js.map +1 -1
- package/dist/theme/colors.js +3 -8
- package/dist/theme/colors.js.map +1 -1
- package/dist/theme/defaults.js +27 -30
- package/dist/theme/defaults.js.map +1 -1
- package/dist/theme/fonts.js +12 -18
- package/dist/theme/fonts.js.map +1 -1
- package/dist/theme/generator.js +63 -69
- package/dist/theme/generator.js.map +1 -1
- package/dist/theme/hooks.js +11 -16
- package/dist/theme/hooks.js.map +1 -1
- package/dist/theme/index.js +6 -42
- package/dist/theme/index.js.map +1 -1
- package/package.json +31 -30
|
@@ -1,14 +1,10 @@
|
|
|
1
|
-
"use strict";
|
|
2
1
|
/**
|
|
3
2
|
* @rovela/sdk/emails/templates/email-verification
|
|
4
3
|
*
|
|
5
4
|
* Email verification template for new account signups.
|
|
6
5
|
*/
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
exports.getEmailVerificationSubject = getEmailVerificationSubject;
|
|
10
|
-
const utils_1 = require("../utils");
|
|
11
|
-
const base_1 = require("./base");
|
|
6
|
+
import { escapeHtml } from '../utils';
|
|
7
|
+
import { baseLayout, heading, paragraph, primaryButton, linkFallback, } from './base';
|
|
12
8
|
/**
|
|
13
9
|
* Render the email verification template.
|
|
14
10
|
*
|
|
@@ -25,23 +21,23 @@ const base_1 = require("./base");
|
|
|
25
21
|
* })
|
|
26
22
|
* ```
|
|
27
23
|
*/
|
|
28
|
-
function renderEmailVerification(data) {
|
|
24
|
+
export function renderEmailVerification(data) {
|
|
29
25
|
const content = `
|
|
30
|
-
${
|
|
26
|
+
${heading('Verify Your Email Address')}
|
|
31
27
|
|
|
32
|
-
${
|
|
28
|
+
${paragraph(`Hi ${escapeHtml(data.customerName)},`)}
|
|
33
29
|
|
|
34
|
-
${
|
|
30
|
+
${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')}
|
|
35
31
|
|
|
36
|
-
${
|
|
32
|
+
${primaryButton('Verify Email Address', data.verificationLink)}
|
|
37
33
|
|
|
38
|
-
${
|
|
34
|
+
${paragraph(`This link will expire in ${escapeHtml(data.expiryTime)} ${data.expiryTime === '1' ? 'hour' : 'hours'} for security reasons.`, '24px')}
|
|
39
35
|
|
|
40
|
-
${
|
|
36
|
+
${paragraph("If you didn't create an account with us, you can safely ignore this email.", '24px')}
|
|
41
37
|
|
|
42
|
-
${
|
|
38
|
+
${linkFallback(data.verificationLink)}
|
|
43
39
|
`;
|
|
44
|
-
return
|
|
40
|
+
return baseLayout({
|
|
45
41
|
config: data.config,
|
|
46
42
|
title: 'Verify Your Email Address',
|
|
47
43
|
content,
|
|
@@ -50,7 +46,7 @@ function renderEmailVerification(data) {
|
|
|
50
46
|
/**
|
|
51
47
|
* Get the subject line for email verification emails.
|
|
52
48
|
*/
|
|
53
|
-
function getEmailVerificationSubject(storeName) {
|
|
49
|
+
export function getEmailVerificationSubject(storeName) {
|
|
54
50
|
return `Verify your email address - ${storeName}`;
|
|
55
51
|
}
|
|
56
52
|
//# sourceMappingURL=email-verification.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"email-verification.js","sourceRoot":"","sources":["../../../src/emails/templates/email-verification.ts"],"names":[],"mappings":"
|
|
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,58 +1,24 @@
|
|
|
1
|
-
"use strict";
|
|
2
1
|
/**
|
|
3
2
|
* @rovela/sdk/emails/templates
|
|
4
3
|
*
|
|
5
4
|
* Email template render functions.
|
|
6
5
|
*/
|
|
7
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
8
|
-
exports.getRefundProcessedSubject = exports.renderRefundProcessed = exports.getOrderCancelledSubject = exports.renderOrderCancelled = exports.getOrderDeliveredSubject = exports.renderOrderDelivered = exports.getOrderShippedSubject = exports.renderOrderShipped = exports.getOrderConfirmationSubject = exports.renderOrderConfirmation = exports.getPasswordResetSubject = exports.renderPasswordResetEmail = exports.getWelcomeEmailSubject = exports.renderWelcomeEmail = exports.getEmailVerificationSubject = exports.renderEmailVerification = exports.STYLES = exports.sectionHeading = exports.addressSection = exports.secondaryButton = exports.highlightBox = exports.labeledValueRow = exports.labeledValue = exports.statusBadge = exports.detailBox = exports.linkFallback = exports.infoBox = exports.paragraph = exports.heading = exports.primaryButton = exports.baseLayout = void 0;
|
|
9
6
|
// =============================================================================
|
|
10
7
|
// Base Components
|
|
11
8
|
// =============================================================================
|
|
12
|
-
|
|
13
|
-
Object.defineProperty(exports, "baseLayout", { enumerable: true, get: function () { return base_1.baseLayout; } });
|
|
14
|
-
Object.defineProperty(exports, "primaryButton", { enumerable: true, get: function () { return base_1.primaryButton; } });
|
|
15
|
-
Object.defineProperty(exports, "heading", { enumerable: true, get: function () { return base_1.heading; } });
|
|
16
|
-
Object.defineProperty(exports, "paragraph", { enumerable: true, get: function () { return base_1.paragraph; } });
|
|
17
|
-
Object.defineProperty(exports, "infoBox", { enumerable: true, get: function () { return base_1.infoBox; } });
|
|
18
|
-
Object.defineProperty(exports, "linkFallback", { enumerable: true, get: function () { return base_1.linkFallback; } });
|
|
19
|
-
Object.defineProperty(exports, "detailBox", { enumerable: true, get: function () { return base_1.detailBox; } });
|
|
20
|
-
Object.defineProperty(exports, "statusBadge", { enumerable: true, get: function () { return base_1.statusBadge; } });
|
|
21
|
-
Object.defineProperty(exports, "labeledValue", { enumerable: true, get: function () { return base_1.labeledValue; } });
|
|
22
|
-
Object.defineProperty(exports, "labeledValueRow", { enumerable: true, get: function () { return base_1.labeledValueRow; } });
|
|
23
|
-
Object.defineProperty(exports, "highlightBox", { enumerable: true, get: function () { return base_1.highlightBox; } });
|
|
24
|
-
Object.defineProperty(exports, "secondaryButton", { enumerable: true, get: function () { return base_1.secondaryButton; } });
|
|
25
|
-
Object.defineProperty(exports, "addressSection", { enumerable: true, get: function () { return base_1.addressSection; } });
|
|
26
|
-
Object.defineProperty(exports, "sectionHeading", { enumerable: true, get: function () { return base_1.sectionHeading; } });
|
|
27
|
-
Object.defineProperty(exports, "STYLES", { enumerable: true, get: function () { return base_1.STYLES; } });
|
|
9
|
+
export { baseLayout, primaryButton, heading, paragraph, infoBox, linkFallback, detailBox, statusBadge, labeledValue, labeledValueRow, highlightBox, secondaryButton, addressSection, sectionHeading, STYLES, } from './base';
|
|
28
10
|
// =============================================================================
|
|
29
11
|
// Auth Templates
|
|
30
12
|
// =============================================================================
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
var welcome_1 = require("./welcome");
|
|
35
|
-
Object.defineProperty(exports, "renderWelcomeEmail", { enumerable: true, get: function () { return welcome_1.renderWelcomeEmail; } });
|
|
36
|
-
Object.defineProperty(exports, "getWelcomeEmailSubject", { enumerable: true, get: function () { return welcome_1.getWelcomeEmailSubject; } });
|
|
37
|
-
var password_reset_1 = require("./password-reset");
|
|
38
|
-
Object.defineProperty(exports, "renderPasswordResetEmail", { enumerable: true, get: function () { return password_reset_1.renderPasswordResetEmail; } });
|
|
39
|
-
Object.defineProperty(exports, "getPasswordResetSubject", { enumerable: true, get: function () { return password_reset_1.getPasswordResetSubject; } });
|
|
13
|
+
export { renderEmailVerification, getEmailVerificationSubject, } from './email-verification';
|
|
14
|
+
export { renderWelcomeEmail, getWelcomeEmailSubject } from './welcome';
|
|
15
|
+
export { renderPasswordResetEmail, getPasswordResetSubject, } from './password-reset';
|
|
40
16
|
// =============================================================================
|
|
41
17
|
// Order Templates
|
|
42
18
|
// =============================================================================
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
Object.defineProperty(exports, "getOrderShippedSubject", { enumerable: true, get: function () { return order_shipped_1.getOrderShippedSubject; } });
|
|
49
|
-
var order_delivered_1 = require("./order-delivered");
|
|
50
|
-
Object.defineProperty(exports, "renderOrderDelivered", { enumerable: true, get: function () { return order_delivered_1.renderOrderDelivered; } });
|
|
51
|
-
Object.defineProperty(exports, "getOrderDeliveredSubject", { enumerable: true, get: function () { return order_delivered_1.getOrderDeliveredSubject; } });
|
|
52
|
-
var order_cancelled_1 = require("./order-cancelled");
|
|
53
|
-
Object.defineProperty(exports, "renderOrderCancelled", { enumerable: true, get: function () { return order_cancelled_1.renderOrderCancelled; } });
|
|
54
|
-
Object.defineProperty(exports, "getOrderCancelledSubject", { enumerable: true, get: function () { return order_cancelled_1.getOrderCancelledSubject; } });
|
|
55
|
-
var refund_processed_1 = require("./refund-processed");
|
|
56
|
-
Object.defineProperty(exports, "renderRefundProcessed", { enumerable: true, get: function () { return refund_processed_1.renderRefundProcessed; } });
|
|
57
|
-
Object.defineProperty(exports, "getRefundProcessedSubject", { enumerable: true, get: function () { return refund_processed_1.getRefundProcessedSubject; } });
|
|
19
|
+
export { renderOrderConfirmation, getOrderConfirmationSubject, } from './order-confirmation';
|
|
20
|
+
export { renderOrderShipped, getOrderShippedSubject } from './order-shipped';
|
|
21
|
+
export { renderOrderDelivered, getOrderDeliveredSubject, } from './order-delivered';
|
|
22
|
+
export { renderOrderCancelled, getOrderCancelledSubject, } from './order-cancelled';
|
|
23
|
+
export { renderRefundProcessed, getRefundProcessedSubject, } from './refund-processed';
|
|
58
24
|
//# sourceMappingURL=index.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/emails/templates/index.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/emails/templates/index.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,gFAAgF;AAChF,kBAAkB;AAClB,gFAAgF;AAEhF,OAAO,EACL,UAAU,EACV,aAAa,EACb,OAAO,EACP,SAAS,EACT,OAAO,EACP,YAAY,EACZ,SAAS,EACT,WAAW,EACX,YAAY,EACZ,eAAe,EACf,YAAY,EACZ,eAAe,EACf,cAAc,EACd,cAAc,EACd,MAAM,GACP,MAAM,QAAQ,CAAA;AAEf,gFAAgF;AAChF,iBAAiB;AACjB,gFAAgF;AAEhF,OAAO,EACL,uBAAuB,EACvB,2BAA2B,GAC5B,MAAM,sBAAsB,CAAA;AAE7B,OAAO,EAAE,kBAAkB,EAAE,sBAAsB,EAAE,MAAM,WAAW,CAAA;AAEtE,OAAO,EACL,wBAAwB,EACxB,uBAAuB,GACxB,MAAM,kBAAkB,CAAA;AAEzB,gFAAgF;AAChF,kBAAkB;AAClB,gFAAgF;AAEhF,OAAO,EACL,uBAAuB,EACvB,2BAA2B,GAC5B,MAAM,sBAAsB,CAAA;AAE7B,OAAO,EAAE,kBAAkB,EAAE,sBAAsB,EAAE,MAAM,iBAAiB,CAAA;AAE5E,OAAO,EACL,oBAAoB,EACpB,wBAAwB,GACzB,MAAM,mBAAmB,CAAA;AAE1B,OAAO,EACL,oBAAoB,EACpB,wBAAwB,GACzB,MAAM,mBAAmB,CAAA;AAE1B,OAAO,EACL,qBAAqB,EACrB,yBAAyB,GAC1B,MAAM,oBAAoB,CAAA"}
|
|
@@ -1,14 +1,10 @@
|
|
|
1
|
-
"use strict";
|
|
2
1
|
/**
|
|
3
2
|
* @rovela/sdk/emails/templates/order-cancelled
|
|
4
3
|
*
|
|
5
4
|
* Order cancelled email template.
|
|
6
5
|
*/
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
exports.getOrderCancelledSubject = getOrderCancelledSubject;
|
|
10
|
-
const utils_1 = require("../utils");
|
|
11
|
-
const base_1 = require("./base");
|
|
6
|
+
import { escapeHtml } from '../utils';
|
|
7
|
+
import { baseLayout, heading, paragraph, primaryButton, labeledValue, highlightBox, STYLES, } from './base';
|
|
12
8
|
// =============================================================================
|
|
13
9
|
// Main Template
|
|
14
10
|
// =============================================================================
|
|
@@ -30,20 +26,20 @@ const base_1 = require("./base");
|
|
|
30
26
|
* })
|
|
31
27
|
* ```
|
|
32
28
|
*/
|
|
33
|
-
function renderOrderCancelled(data) {
|
|
29
|
+
export function renderOrderCancelled(data) {
|
|
34
30
|
// Build cancellation reason text
|
|
35
31
|
const reasonText = data.cancellationReason
|
|
36
|
-
? ` ${
|
|
32
|
+
? ` ${escapeHtml(data.cancellationReason)}`
|
|
37
33
|
: '';
|
|
38
34
|
// Order details box
|
|
39
35
|
const orderDetailsBox = `
|
|
40
|
-
<div style="padding: 24px; background-color: ${
|
|
36
|
+
<div style="padding: 24px; background-color: ${STYLES.footerBackground}; border-radius: 16px; border: 1px solid ${STYLES.cardBorder}; margin-bottom: 32px;">
|
|
41
37
|
<table width="100%" cellpadding="0" cellspacing="0">
|
|
42
|
-
${
|
|
38
|
+
${labeledValue('Order Number', `#${data.orderNumber}`, {
|
|
43
39
|
valueSize: '16px',
|
|
44
40
|
borderBottom: true,
|
|
45
41
|
})}
|
|
46
|
-
${
|
|
42
|
+
${labeledValue('Cancelled On', data.cancellationDate, {
|
|
47
43
|
valueSize: '16px',
|
|
48
44
|
borderTop: true,
|
|
49
45
|
})}
|
|
@@ -51,28 +47,28 @@ function renderOrderCancelled(data) {
|
|
|
51
47
|
</div>
|
|
52
48
|
`;
|
|
53
49
|
// Refund information box
|
|
54
|
-
const refundInfoBox =
|
|
55
|
-
<h3 style="margin: 0 0 12px 0; font-family: ${
|
|
56
|
-
<p style="margin: 0; font-family: ${
|
|
57
|
-
${
|
|
50
|
+
const refundInfoBox = highlightBox(`
|
|
51
|
+
<h3 style="margin: 0 0 12px 0; font-family: ${STYLES.fontFamily}; font-size: 18px; font-weight: 600; color: ${STYLES.textPrimary};">Refund Information</h3>
|
|
52
|
+
<p style="margin: 0; font-family: ${STYLES.fontFamily}; font-size: 14px; font-weight: 400; line-height: 1.5; color: ${STYLES.textSecondary};">
|
|
53
|
+
${escapeHtml(data.refundMessage)}
|
|
58
54
|
</p>
|
|
59
55
|
`);
|
|
60
56
|
const content = `
|
|
61
|
-
${
|
|
57
|
+
${heading('Order Cancelled')}
|
|
62
58
|
|
|
63
|
-
${
|
|
59
|
+
${paragraph(`Hi ${escapeHtml(data.customerName)},`)}
|
|
64
60
|
|
|
65
|
-
${
|
|
61
|
+
${paragraph(`Your order #${escapeHtml(data.orderNumber)} has been cancelled as requested.${reasonText}`, '32px')}
|
|
66
62
|
|
|
67
63
|
${orderDetailsBox}
|
|
68
64
|
|
|
69
65
|
${refundInfoBox}
|
|
70
66
|
|
|
71
|
-
${
|
|
67
|
+
${paragraph("If you have any questions about this cancellation, please don't hesitate to reach out to our support team.", '32px')}
|
|
72
68
|
|
|
73
|
-
${
|
|
69
|
+
${primaryButton('Continue Shopping', data.config.shopUrl)}
|
|
74
70
|
`;
|
|
75
|
-
return
|
|
71
|
+
return baseLayout({
|
|
76
72
|
config: data.config,
|
|
77
73
|
title: `Order Cancelled - #${data.orderNumber}`,
|
|
78
74
|
content,
|
|
@@ -81,7 +77,7 @@ function renderOrderCancelled(data) {
|
|
|
81
77
|
/**
|
|
82
78
|
* Get the subject line for order cancelled emails.
|
|
83
79
|
*/
|
|
84
|
-
function getOrderCancelledSubject(storeName, orderNumber) {
|
|
80
|
+
export function getOrderCancelledSubject(storeName, orderNumber) {
|
|
85
81
|
return `Order Cancelled - #${orderNumber} | ${storeName}`;
|
|
86
82
|
}
|
|
87
83
|
//# sourceMappingURL=order-cancelled.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"order-cancelled.js","sourceRoot":"","sources":["../../../src/emails/templates/order-cancelled.ts"],"names":[],"mappings":"
|
|
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,21 +1,17 @@
|
|
|
1
|
-
"use strict";
|
|
2
1
|
/**
|
|
3
2
|
* @rovela/sdk/emails/templates/order-confirmation
|
|
4
3
|
*
|
|
5
4
|
* Order confirmation email template.
|
|
6
5
|
*/
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
exports.getOrderConfirmationSubject = getOrderConfirmationSubject;
|
|
10
|
-
const utils_1 = require("../utils");
|
|
11
|
-
const base_1 = require("./base");
|
|
6
|
+
import { escapeHtml, formatAddressHtml } from '../utils';
|
|
7
|
+
import { baseLayout, statusBadge, heading, primaryButton, labeledValueRow, labeledValue, sectionHeading, addressSection, STYLES, } from './base';
|
|
12
8
|
// =============================================================================
|
|
13
9
|
// Order Item Component
|
|
14
10
|
// =============================================================================
|
|
15
11
|
function renderOrderItem(item) {
|
|
16
12
|
const imageHtml = item.imageUrl
|
|
17
13
|
? `<td width="80" style="padding-right: 16px;">
|
|
18
|
-
<img src="${
|
|
14
|
+
<img src="${escapeHtml(item.imageUrl)}" alt="${escapeHtml(item.name)}" style="width: 80px; height: 80px; border-radius: 8px; object-fit: cover; border: 1px solid ${STYLES.cardBorder};" />
|
|
19
15
|
</td>`
|
|
20
16
|
: '';
|
|
21
17
|
return `
|
|
@@ -23,9 +19,9 @@ function renderOrderItem(item) {
|
|
|
23
19
|
<tr>
|
|
24
20
|
${imageHtml}
|
|
25
21
|
<td>
|
|
26
|
-
<p style="margin: 0 0 4px 0; font-family: ${
|
|
27
|
-
<p style="margin: 0 0 8px 0; font-family: ${
|
|
28
|
-
<p style="margin: 0; font-family: ${
|
|
22
|
+
<p style="margin: 0 0 4px 0; font-family: ${STYLES.fontFamily}; font-size: 16px; font-weight: 600; color: ${STYLES.textPrimary};">${escapeHtml(item.name)}</p>
|
|
23
|
+
<p style="margin: 0 0 8px 0; font-family: ${STYLES.fontFamily}; font-size: 14px; font-weight: 400; color: ${STYLES.textSecondary};">Quantity: ${item.quantity}</p>
|
|
24
|
+
<p style="margin: 0; font-family: ${STYLES.fontFamily}; font-size: 16px; font-weight: 600; color: ${STYLES.textPrimary};">${escapeHtml(item.price)}</p>
|
|
29
25
|
</td>
|
|
30
26
|
</tr>
|
|
31
27
|
</table>
|
|
@@ -39,38 +35,38 @@ function renderOrderItems(items) {
|
|
|
39
35
|
// =============================================================================
|
|
40
36
|
function renderOrderSummary(data) {
|
|
41
37
|
return `
|
|
42
|
-
<div style="padding: 24px; background-color: ${
|
|
38
|
+
<div style="padding: 24px; background-color: ${STYLES.footerBackground}; border-radius: 16px; border: 1px solid ${STYLES.cardBorder}; margin-bottom: 32px;">
|
|
43
39
|
<table width="100%" cellpadding="0" cellspacing="0">
|
|
44
40
|
<tr>
|
|
45
41
|
<td style="padding-bottom: 8px;">
|
|
46
|
-
<p style="margin: 0; font-family: ${
|
|
42
|
+
<p style="margin: 0; font-family: ${STYLES.fontFamily}; font-size: 14px; font-weight: 400; color: ${STYLES.textSecondary};">Subtotal</p>
|
|
47
43
|
</td>
|
|
48
44
|
<td align="right" style="padding-bottom: 8px;">
|
|
49
|
-
<p style="margin: 0; font-family: ${
|
|
45
|
+
<p style="margin: 0; font-family: ${STYLES.fontFamily}; font-size: 14px; font-weight: 500; color: ${STYLES.textPrimary};">${escapeHtml(data.subtotal)}</p>
|
|
50
46
|
</td>
|
|
51
47
|
</tr>
|
|
52
48
|
<tr>
|
|
53
49
|
<td style="padding-bottom: 8px;">
|
|
54
|
-
<p style="margin: 0; font-family: ${
|
|
50
|
+
<p style="margin: 0; font-family: ${STYLES.fontFamily}; font-size: 14px; font-weight: 400; color: ${STYLES.textSecondary};">Shipping</p>
|
|
55
51
|
</td>
|
|
56
52
|
<td align="right" style="padding-bottom: 8px;">
|
|
57
|
-
<p style="margin: 0; font-family: ${
|
|
53
|
+
<p style="margin: 0; font-family: ${STYLES.fontFamily}; font-size: 14px; font-weight: 500; color: ${STYLES.textPrimary};">${escapeHtml(data.shippingCost)}</p>
|
|
58
54
|
</td>
|
|
59
55
|
</tr>
|
|
60
56
|
<tr>
|
|
61
57
|
<td style="padding-bottom: 8px;">
|
|
62
|
-
<p style="margin: 0; font-family: ${
|
|
58
|
+
<p style="margin: 0; font-family: ${STYLES.fontFamily}; font-size: 14px; font-weight: 400; color: ${STYLES.textSecondary};">Tax</p>
|
|
63
59
|
</td>
|
|
64
60
|
<td align="right" style="padding-bottom: 8px;">
|
|
65
|
-
<p style="margin: 0; font-family: ${
|
|
61
|
+
<p style="margin: 0; font-family: ${STYLES.fontFamily}; font-size: 14px; font-weight: 500; color: ${STYLES.textPrimary};">${escapeHtml(data.tax)}</p>
|
|
66
62
|
</td>
|
|
67
63
|
</tr>
|
|
68
64
|
<tr>
|
|
69
|
-
<td style="padding-top: 16px; border-top: 1px solid ${
|
|
70
|
-
<p style="margin: 0; font-family: ${
|
|
65
|
+
<td style="padding-top: 16px; border-top: 1px solid ${STYLES.cardBorder};">
|
|
66
|
+
<p style="margin: 0; font-family: ${STYLES.fontFamily}; font-size: 18px; font-weight: 700; color: ${STYLES.textPrimary};">Total</p>
|
|
71
67
|
</td>
|
|
72
|
-
<td align="right" style="padding-top: 16px; border-top: 1px solid ${
|
|
73
|
-
<p style="margin: 0; font-family: ${
|
|
68
|
+
<td align="right" style="padding-top: 16px; border-top: 1px solid ${STYLES.cardBorder};">
|
|
69
|
+
<p style="margin: 0; font-family: ${STYLES.fontFamily}; font-size: 18px; font-weight: 700; color: ${STYLES.textPrimary};">${escapeHtml(data.total)}</p>
|
|
74
70
|
</td>
|
|
75
71
|
</tr>
|
|
76
72
|
</table>
|
|
@@ -104,15 +100,15 @@ function renderOrderSummary(data) {
|
|
|
104
100
|
* })
|
|
105
101
|
* ```
|
|
106
102
|
*/
|
|
107
|
-
function renderOrderConfirmation(data) {
|
|
103
|
+
export function renderOrderConfirmation(data) {
|
|
108
104
|
// Build the badge separately since it needs special positioning
|
|
109
|
-
const badge =
|
|
105
|
+
const badge = statusBadge('Order Confirmed');
|
|
110
106
|
// Order details box
|
|
111
107
|
const orderDetailsBox = `
|
|
112
|
-
<div style="padding: 24px; background-color: ${
|
|
108
|
+
<div style="padding: 24px; background-color: ${STYLES.footerBackground}; border-radius: 16px; border: 1px solid ${STYLES.cardBorder}; margin-bottom: 32px;">
|
|
113
109
|
<table width="100%" cellpadding="0" cellspacing="0">
|
|
114
|
-
${
|
|
115
|
-
${
|
|
110
|
+
${labeledValueRow({ label: 'Order Number', value: `#${data.orderNumber}` }, { label: 'Order Date', value: data.orderDate }, true)}
|
|
111
|
+
${labeledValue('Payment Status', data.paymentStatus, {
|
|
116
112
|
valueColor: '#10B981',
|
|
117
113
|
valueSize: '16px',
|
|
118
114
|
borderTop: true,
|
|
@@ -122,16 +118,16 @@ function renderOrderConfirmation(data) {
|
|
|
122
118
|
`;
|
|
123
119
|
const content = `
|
|
124
120
|
${badge}
|
|
125
|
-
${
|
|
121
|
+
${heading('Thank You for Your Order!')}
|
|
126
122
|
|
|
127
|
-
<p style="margin: 0 0 32px 0; font-family: ${
|
|
128
|
-
Hi ${
|
|
123
|
+
<p style="margin: 0 0 32px 0; font-family: ${STYLES.fontFamily}; font-size: 16px; font-weight: 400; line-height: 1.625; color: ${STYLES.textSecondary}; text-align: center;">
|
|
124
|
+
Hi ${escapeHtml(data.customerName)}, 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.
|
|
129
125
|
</p>
|
|
130
126
|
|
|
131
127
|
${orderDetailsBox}
|
|
132
128
|
|
|
133
129
|
<div style="margin-bottom: 32px;">
|
|
134
|
-
${
|
|
130
|
+
${sectionHeading('Order Items')}
|
|
135
131
|
${renderOrderItems(data.items)}
|
|
136
132
|
</div>
|
|
137
133
|
|
|
@@ -142,11 +138,11 @@ function renderOrderConfirmation(data) {
|
|
|
142
138
|
total: data.total,
|
|
143
139
|
})}
|
|
144
140
|
|
|
145
|
-
${
|
|
141
|
+
${addressSection('Shipping Address', formatAddressHtml(data.shippingAddress))}
|
|
146
142
|
|
|
147
|
-
${
|
|
143
|
+
${primaryButton('Track Your Order', data.orderTrackingUrl)}
|
|
148
144
|
`;
|
|
149
|
-
return
|
|
145
|
+
return baseLayout({
|
|
150
146
|
config: data.config,
|
|
151
147
|
title: `Order Confirmation - #${data.orderNumber}`,
|
|
152
148
|
content,
|
|
@@ -155,7 +151,7 @@ function renderOrderConfirmation(data) {
|
|
|
155
151
|
/**
|
|
156
152
|
* Get the subject line for order confirmation emails.
|
|
157
153
|
*/
|
|
158
|
-
function getOrderConfirmationSubject(storeName, orderNumber) {
|
|
154
|
+
export function getOrderConfirmationSubject(storeName, orderNumber) {
|
|
159
155
|
return `Order Confirmed - #${orderNumber} | ${storeName}`;
|
|
160
156
|
}
|
|
161
157
|
//# sourceMappingURL=order-confirmation.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"order-confirmation.js","sourceRoot":"","sources":["../../../src/emails/templates/order-confirmation.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"order-confirmation.js","sourceRoot":"","sources":["../../../src/emails/templates/order-confirmation.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,14 +1,10 @@
|
|
|
1
|
-
"use strict";
|
|
2
1
|
/**
|
|
3
2
|
* @rovela/sdk/emails/templates/order-delivered
|
|
4
3
|
*
|
|
5
4
|
* Order delivered email template.
|
|
6
5
|
*/
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
exports.getOrderDeliveredSubject = getOrderDeliveredSubject;
|
|
10
|
-
const utils_1 = require("../utils");
|
|
11
|
-
const base_1 = require("./base");
|
|
6
|
+
import { escapeHtml } from '../utils';
|
|
7
|
+
import { baseLayout, statusBadge, heading, secondaryButton, labeledValue, highlightBox, paragraph, STYLES, } from './base';
|
|
12
8
|
// =============================================================================
|
|
13
9
|
// Main Template
|
|
14
10
|
// =============================================================================
|
|
@@ -31,19 +27,19 @@ const base_1 = require("./base");
|
|
|
31
27
|
* })
|
|
32
28
|
* ```
|
|
33
29
|
*/
|
|
34
|
-
function renderOrderDelivered(data) {
|
|
35
|
-
const badge =
|
|
30
|
+
export function renderOrderDelivered(data) {
|
|
31
|
+
const badge = statusBadge('Delivered');
|
|
36
32
|
// Delivery details box
|
|
37
33
|
const deliveryDetailsBox = `
|
|
38
|
-
<div style="padding: 24px; background-color: ${
|
|
34
|
+
<div style="padding: 24px; background-color: ${STYLES.footerBackground}; border-radius: 16px; border: 1px solid ${STYLES.cardBorder}; margin-bottom: 32px;">
|
|
39
35
|
<table width="100%" cellpadding="0" cellspacing="0">
|
|
40
|
-
${
|
|
41
|
-
${
|
|
42
|
-
valueColor:
|
|
36
|
+
${labeledValue('Order Number', `#${data.orderNumber}`, { borderBottom: true })}
|
|
37
|
+
${labeledValue('Delivered On', data.deliveryDate, {
|
|
38
|
+
valueColor: STYLES.primaryColor,
|
|
43
39
|
borderTop: true,
|
|
44
40
|
borderBottom: true,
|
|
45
41
|
})}
|
|
46
|
-
${
|
|
42
|
+
${labeledValue('Delivered To', data.deliveryLocation, {
|
|
47
43
|
valueSize: '16px',
|
|
48
44
|
borderTop: true,
|
|
49
45
|
})}
|
|
@@ -51,36 +47,36 @@ function renderOrderDelivered(data) {
|
|
|
51
47
|
</div>
|
|
52
48
|
`;
|
|
53
49
|
// Feedback section
|
|
54
|
-
const feedbackSection =
|
|
55
|
-
<h3 style="margin: 0 0 12px 0; font-family: ${
|
|
56
|
-
<p style="margin: 0 0 20px 0; font-family: ${
|
|
50
|
+
const feedbackSection = highlightBox(`
|
|
51
|
+
<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>
|
|
52
|
+
<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
53
|
We'd love to hear your feedback! Your review helps other customers and helps us improve.
|
|
58
54
|
</p>
|
|
59
55
|
<table width="100%" cellpadding="0" cellspacing="0">
|
|
60
56
|
<tr>
|
|
61
57
|
<td align="center">
|
|
62
|
-
<a href="${
|
|
58
|
+
<a href="${escapeHtml(data.reviewUrl)}" 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;">Leave a Review</a>
|
|
63
59
|
</td>
|
|
64
60
|
</tr>
|
|
65
61
|
</table>
|
|
66
62
|
`);
|
|
67
63
|
const content = `
|
|
68
64
|
${badge}
|
|
69
|
-
${
|
|
65
|
+
${heading('Your Order Has Been Delivered!')}
|
|
70
66
|
|
|
71
|
-
<p style="margin: 0 0 32px 0; font-family: ${
|
|
72
|
-
Hi ${
|
|
67
|
+
<p style="margin: 0 0 32px 0; font-family: ${STYLES.fontFamily}; font-size: 16px; font-weight: 400; line-height: 1.625; color: ${STYLES.textSecondary}; text-align: center;">
|
|
68
|
+
Hi ${escapeHtml(data.customerName)}, your order has been successfully delivered. We hope you love your purchase!
|
|
73
69
|
</p>
|
|
74
70
|
|
|
75
71
|
${deliveryDetailsBox}
|
|
76
72
|
|
|
77
73
|
${feedbackSection}
|
|
78
74
|
|
|
79
|
-
${
|
|
75
|
+
${paragraph('Need to return or exchange something?', '16px')}
|
|
80
76
|
|
|
81
|
-
${
|
|
77
|
+
${secondaryButton('Visit Return Center', data.returnCenterUrl)}
|
|
82
78
|
`;
|
|
83
|
-
return
|
|
79
|
+
return baseLayout({
|
|
84
80
|
config: data.config,
|
|
85
81
|
title: `Order Delivered - #${data.orderNumber}`,
|
|
86
82
|
content,
|
|
@@ -89,7 +85,7 @@ function renderOrderDelivered(data) {
|
|
|
89
85
|
/**
|
|
90
86
|
* Get the subject line for order delivered emails.
|
|
91
87
|
*/
|
|
92
|
-
function getOrderDeliveredSubject(storeName, orderNumber) {
|
|
88
|
+
export function getOrderDeliveredSubject(storeName, orderNumber) {
|
|
93
89
|
return `Your Order Has Been Delivered - #${orderNumber} | ${storeName}`;
|
|
94
90
|
}
|
|
95
91
|
//# sourceMappingURL=order-delivered.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"order-delivered.js","sourceRoot":"","sources":["../../../src/emails/templates/order-delivered.ts"],"names":[],"mappings":"
|
|
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,EAEP,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,uBAAuB;IACvB,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,IAAI,EAAE,CAAC;UAC5E,YAAY,CAAC,cAAc,EAAE,IAAI,CAAC,YAAY,EAAE;QAChD,UAAU,EAAE,MAAM,CAAC,YAAY;QAC/B,SAAS,EAAE,IAAI;QACf,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,mBAAmB;IACnB,MAAM,eAAe,GAAG,YAAY,CAAC;kDACW,MAAM,CAAC,UAAU,+CAA+C,MAAM,CAAC,WAAW;iDACnF,MAAM,CAAC,UAAU,iEAAiE,MAAM,CAAC,aAAa;;;;;;qBAMlI,UAAU,CAAC,IAAI,CAAC,SAAS,CAAC,yEAAyE,MAAM,CAAC,YAAY,8EAA8E,MAAM,CAAC,UAAU;;;;GAIvO,CAAC,CAAA;IAEF,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,SAAS,CAAC,uCAAuC,EAAE,MAAM,CAAC;;MAE1D,eAAe,CAAC,qBAAqB,EAAE,IAAI,CAAC,eAAe,CAAC;GAC/D,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"}
|