@planetaexo/design-system 0.25.0 → 0.26.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/dist/index.cjs CHANGED
@@ -4473,6 +4473,96 @@ function BookingAdventureCard({
4473
4473
  );
4474
4474
  }
4475
4475
  var DEFAULT_LABELS2 = {
4476
+ heading: "PAYMENT DETAILS"
4477
+ };
4478
+ function PaymentDetailsBlock({
4479
+ rows,
4480
+ footerBanner,
4481
+ labels,
4482
+ className
4483
+ }) {
4484
+ var _a;
4485
+ const l = {
4486
+ heading: (_a = labels == null ? void 0 : labels.heading) != null ? _a : DEFAULT_LABELS2.heading
4487
+ };
4488
+ const hasBanner = !!footerBanner;
4489
+ return /* @__PURE__ */ jsxRuntime.jsxs(
4490
+ "div",
4491
+ {
4492
+ style: {
4493
+ borderRadius: "12px",
4494
+ border: `1px solid ${emailTokens.border}`,
4495
+ overflow: "hidden"
4496
+ },
4497
+ className,
4498
+ children: [
4499
+ /* @__PURE__ */ jsxRuntime.jsx(
4500
+ "div",
4501
+ {
4502
+ style: {
4503
+ padding: "12px 16px",
4504
+ backgroundColor: emailTokens.muted,
4505
+ borderBottom: `1px solid ${emailTokens.border}`
4506
+ },
4507
+ children: /* @__PURE__ */ jsxRuntime.jsx(
4508
+ "p",
4509
+ {
4510
+ style: {
4511
+ fontSize: "10px",
4512
+ fontWeight: 700,
4513
+ color: emailTokens.mutedForeground,
4514
+ textTransform: "uppercase",
4515
+ letterSpacing: "0.1em",
4516
+ margin: 0
4517
+ },
4518
+ children: l.heading
4519
+ }
4520
+ )
4521
+ }
4522
+ ),
4523
+ /* @__PURE__ */ jsxRuntime.jsx("table", { style: { width: "100%", fontSize: "14px", borderCollapse: "collapse" }, children: /* @__PURE__ */ jsxRuntime.jsxs("tbody", { children: [
4524
+ rows.map((row, i) => {
4525
+ const isLast = i === rows.length - 1;
4526
+ const showBorder = !isLast;
4527
+ const valueStyle = {
4528
+ padding: "10px 16px",
4529
+ textAlign: "right",
4530
+ fontWeight: row.emphasis ? 700 : 500,
4531
+ color: row.emphasis ? emailTokens.primary : emailTokens.foreground,
4532
+ whiteSpace: "nowrap"
4533
+ };
4534
+ return /* @__PURE__ */ jsxRuntime.jsxs(
4535
+ "tr",
4536
+ {
4537
+ style: showBorder ? { borderBottom: `1px solid ${emailTokens.border}` } : {},
4538
+ children: [
4539
+ /* @__PURE__ */ jsxRuntime.jsx("td", { style: { padding: "10px 16px", color: emailTokens.mutedForeground }, children: row.label }),
4540
+ /* @__PURE__ */ jsxRuntime.jsx("td", { style: valueStyle, children: row.value })
4541
+ ]
4542
+ },
4543
+ i
4544
+ );
4545
+ }),
4546
+ hasBanner && /* @__PURE__ */ jsxRuntime.jsx("tr", { children: /* @__PURE__ */ jsxRuntime.jsx(
4547
+ "td",
4548
+ {
4549
+ colSpan: 2,
4550
+ style: {
4551
+ padding: "12px 16px",
4552
+ textAlign: "center",
4553
+ fontWeight: 600,
4554
+ color: emailTokens.green,
4555
+ backgroundColor: emailTokens.greenBg
4556
+ },
4557
+ children: footerBanner.text
4558
+ }
4559
+ ) })
4560
+ ] }) })
4561
+ ]
4562
+ }
4563
+ );
4564
+ }
4565
+ var DEFAULT_LABELS3 = {
4476
4566
  ctaButton: "View booking details",
4477
4567
  logoAlt: "PlanetaEXO",
4478
4568
  greeting: (recipientName) => `Hi ${recipientName},`,
@@ -4524,7 +4614,7 @@ function BookingConfirmation({
4524
4614
  className,
4525
4615
  flow = "auto"
4526
4616
  }) {
4527
- const l = __spreadValues(__spreadValues({}, DEFAULT_LABELS2), labels);
4617
+ const l = __spreadValues(__spreadValues({}, DEFAULT_LABELS3), labels);
4528
4618
  const allTravellers = adventures.flatMap((a) => {
4529
4619
  var _a;
4530
4620
  return (_a = a.travellers) != null ? _a : [];
@@ -4687,24 +4777,32 @@ function BookingConfirmation({
4687
4777
  /* @__PURE__ */ jsxRuntime.jsx("td", { style: { padding: "16px", textAlign: "right", fontWeight: "700", color: emailTokens.primary, fontSize: "20px", whiteSpace: "nowrap" }, children: total })
4688
4778
  ] })
4689
4779
  ] }) }) }),
4690
- depositInfo && /* @__PURE__ */ jsxRuntime.jsxs("div", { style: { borderRadius: "12px", border: `1px solid ${emailTokens.border}`, marginTop: "16px", overflow: "hidden" }, children: [
4691
- /* @__PURE__ */ jsxRuntime.jsx("div", { style: { padding: "12px 16px", backgroundColor: emailTokens.muted, borderBottom: `1px solid ${emailTokens.border}` }, children: /* @__PURE__ */ jsxRuntime.jsx("p", { style: { fontSize: "10px", fontWeight: "700", color: emailTokens.mutedForeground, textTransform: "uppercase", letterSpacing: "0.1em", margin: 0 }, children: l.paymentDetailsHeading }) }),
4692
- /* @__PURE__ */ jsxRuntime.jsx("table", { style: { width: "100%", fontSize: "14px", borderCollapse: "collapse" }, children: /* @__PURE__ */ jsxRuntime.jsxs("tbody", { children: [
4693
- /* @__PURE__ */ jsxRuntime.jsxs("tr", { style: { borderBottom: `1px solid ${emailTokens.border}` }, children: [
4694
- /* @__PURE__ */ jsxRuntime.jsx("td", { style: { padding: "10px 16px", color: emailTokens.mutedForeground }, children: l.depositLabel(depositInfo.depositPercent) }),
4695
- /* @__PURE__ */ jsxRuntime.jsx("td", { style: { padding: "10px 16px", textAlign: "right", fontWeight: "500", color: emailTokens.foreground, whiteSpace: "nowrap" }, children: depositInfo.depositAmount })
4696
- ] }),
4697
- /* @__PURE__ */ jsxRuntime.jsxs("tr", { style: depositInfo.isPaidInFull ? {} : { borderBottom: `1px solid ${emailTokens.border}` }, children: [
4698
- /* @__PURE__ */ jsxRuntime.jsx("td", { style: { padding: "10px 16px", color: emailTokens.mutedForeground }, children: l.remainingBalanceLabel }),
4699
- /* @__PURE__ */ jsxRuntime.jsx("td", { style: { padding: "10px 16px", textAlign: "right", fontWeight: "500", color: emailTokens.foreground, whiteSpace: "nowrap" }, children: depositInfo.remainingAmount })
4700
- ] }),
4701
- !depositInfo.isPaidInFull && /* @__PURE__ */ jsxRuntime.jsxs("tr", { children: [
4702
- /* @__PURE__ */ jsxRuntime.jsx("td", { style: { padding: "10px 16px", color: emailTokens.mutedForeground }, children: l.balanceDueLabel }),
4703
- /* @__PURE__ */ jsxRuntime.jsx("td", { style: { padding: "10px 16px", textAlign: "right", fontWeight: "500", color: emailTokens.foreground, whiteSpace: "nowrap" }, children: depositInfo.balanceDueDate })
4704
- ] }),
4705
- depositInfo.isPaidInFull && /* @__PURE__ */ jsxRuntime.jsx("tr", { children: /* @__PURE__ */ jsxRuntime.jsx("td", { colSpan: 2, style: { padding: "12px 16px", textAlign: "center", fontWeight: "600", color: emailTokens.green, backgroundColor: emailTokens.greenBg }, children: l.paidInFullLabel }) })
4706
- ] }) })
4707
- ] })
4780
+ depositInfo && /* @__PURE__ */ jsxRuntime.jsx("div", { style: { marginTop: "16px" }, children: /* @__PURE__ */ jsxRuntime.jsx(
4781
+ PaymentDetailsBlock,
4782
+ {
4783
+ labels: { heading: l.paymentDetailsHeading },
4784
+ rows: (() => {
4785
+ const rows = [
4786
+ {
4787
+ label: l.depositLabel(depositInfo.depositPercent),
4788
+ value: depositInfo.depositAmount
4789
+ },
4790
+ {
4791
+ label: l.remainingBalanceLabel,
4792
+ value: depositInfo.remainingAmount
4793
+ }
4794
+ ];
4795
+ if (!depositInfo.isPaidInFull) {
4796
+ rows.push({
4797
+ label: l.balanceDueLabel,
4798
+ value: depositInfo.balanceDueDate
4799
+ });
4800
+ }
4801
+ return rows;
4802
+ })(),
4803
+ footerBanner: depositInfo.isPaidInFull ? { text: l.paidInFullLabel, kind: "success" } : void 0
4804
+ }
4805
+ ) })
4708
4806
  ] }),
4709
4807
  /* @__PURE__ */ jsxRuntime.jsx("hr", { style: { border: "none", borderTop: `1px solid ${emailTokens.border}`, margin: "0 32px" } }),
4710
4808
  /* @__PURE__ */ jsxRuntime.jsx("div", { style: { paddingLeft: "32px", paddingRight: "32px", paddingTop: "32px", paddingBottom: "40px" }, children: isManualFlow ? (
@@ -4721,7 +4819,7 @@ function BookingConfirmation({
4721
4819
  }
4722
4820
  );
4723
4821
  }
4724
- var DEFAULT_LABELS3 = {
4822
+ var DEFAULT_LABELS4 = {
4725
4823
  ctaButton: "Add travellers to your booking",
4726
4824
  logoAlt: "PlanetaEXO",
4727
4825
  greeting: (recipientName) => `Hi ${recipientName},`,
@@ -4754,7 +4852,7 @@ function BookingConfirmationEmail({
4754
4852
  nextStepsImportant,
4755
4853
  directBookingLinkLabel
4756
4854
  }) {
4757
- const l = __spreadValues(__spreadValues({}, DEFAULT_LABELS3), labels);
4855
+ const l = __spreadValues(__spreadValues({}, DEFAULT_LABELS4), labels);
4758
4856
  const ctaStyle = {
4759
4857
  display: "inline-block",
4760
4858
  backgroundColor: emailTokens.primary,
@@ -4841,7 +4939,7 @@ function BookingConfirmationEmail({
4841
4939
  }
4842
4940
  );
4843
4941
  }
4844
- var DEFAULT_LABELS4 = {
4942
+ var DEFAULT_LABELS5 = {
4845
4943
  logoAlt: "PlanetaEXO",
4846
4944
  greeting: (name) => `Hi ${name},`,
4847
4945
  receiptHeading: "Payment receipt",
@@ -4880,7 +4978,7 @@ function PaymentReceiptEmail({
4880
4978
  labels,
4881
4979
  className
4882
4980
  }) {
4883
- const l = __spreadValues(__spreadValues({}, DEFAULT_LABELS4), labels);
4981
+ const l = __spreadValues(__spreadValues({}, DEFAULT_LABELS5), labels);
4884
4982
  const travellersLine = travellers.filter((s) => s.trim().length > 0).join(", ");
4885
4983
  const interestRow = chargedAmount && chargedAmount !== amount;
4886
4984
  const receiptRows = [
@@ -4976,8 +5074,24 @@ function PaymentReceiptEmail({
4976
5074
  }
4977
5075
  );
4978
5076
  }
4979
- var EMPTY_AGENT_FN = (_agentName) => "";
4980
- var DEFAULT_LABELS5 = {
5077
+ var INLINE_LINK_STYLE = {
5078
+ color: emailTokens.primary,
5079
+ textDecoration: "underline"
5080
+ };
5081
+ function renderWhatsappLink(contact, label) {
5082
+ if (contact.whatsappUrl) {
5083
+ return /* @__PURE__ */ jsxRuntime.jsx("a", { href: contact.whatsappUrl, style: INLINE_LINK_STYLE, children: label });
5084
+ }
5085
+ return label;
5086
+ }
5087
+ function renderEmailLink(contact, label) {
5088
+ if (contact.email) {
5089
+ return /* @__PURE__ */ jsxRuntime.jsx("a", { href: `mailto:${contact.email}`, style: INLINE_LINK_STYLE, children: label });
5090
+ }
5091
+ return label;
5092
+ }
5093
+ var EMPTY_CLOSING_ALTERNATIVE = (_agentName, _contact) => null;
5094
+ var DEFAULT_LABELS6 = {
4981
5095
  logoAlt: "PlanetaEXO",
4982
5096
  greeting: (name) => `Hi ${name},`,
4983
5097
  intermediateHello: "Hope you're doing well.",
@@ -4985,9 +5099,18 @@ var DEFAULT_LABELS5 = {
4985
5099
  amountAlreadyPaidLabel: "Amount already paid",
4986
5100
  remainingBalanceDueLabel: "Remaining balance due",
4987
5101
  totalBookingAmountLabel: "Total booking amount",
5102
+ paymentDetailsHeading: "PAYMENT DETAILS",
4988
5103
  ctaLabel: "Complete Payment",
4989
5104
  teamSignature: "The PlanetaEXO Team",
4990
- closingAgent: (agentName) => `If you need any assistance or would like to discuss your payment, feel free to contact your agent ${agentName} via WhatsApp or email.`,
5105
+ closingAgent: (agentName, contact) => /* @__PURE__ */ jsxRuntime.jsxs(jsxRuntime.Fragment, { children: [
5106
+ "If you need any assistance or would like to discuss your payment, feel free to contact your agent ",
5107
+ agentName,
5108
+ " via ",
5109
+ renderWhatsappLink(contact, "WhatsApp"),
5110
+ " or ",
5111
+ renderEmailLink(contact, "email"),
5112
+ "."
5113
+ ] }),
4991
5114
  closingNoAgent: "If you need any assistance or would like to discuss your payment, feel free to contact us via WhatsApp or email.",
4992
5115
  adventureCard: {
4993
5116
  travellersHeading: "TRAVELLERS",
@@ -5004,28 +5127,36 @@ var DEFAULT_LABELS5 = {
5004
5127
  secureLine: "To secure your booking, please complete the payment through your booking page using the button below:",
5005
5128
  closingThanks: "Many thanks, and we look forward to helping you experience your next adventure with us.",
5006
5129
  disregardIfPaid: "",
5007
- closingAlternative: EMPTY_AGENT_FN
5130
+ closingAlternative: EMPTY_CLOSING_ALTERNATIVE
5008
5131
  },
5009
5132
  dZero: {
5010
5133
  intro: (b, d) => `This is a friendly reminder that the remaining balance for your booking #${b} with PlanetaEXO is due today (${d}).`,
5011
5134
  secureLine: "To keep your booking confirmed, please complete the payment through your booking page using the button below:",
5012
5135
  closingThanks: "Many thanks, and we look forward to welcoming you soon.",
5013
5136
  disregardIfPaid: "",
5014
- closingAlternative: EMPTY_AGENT_FN
5137
+ closingAlternative: EMPTY_CLOSING_ALTERNATIVE
5015
5138
  },
5016
5139
  dPlus1: {
5017
5140
  intro: (b, d) => `We noticed that the remaining balance for your booking #${b} with PlanetaEXO was due yesterday (${d}) and is still pending.`,
5018
5141
  secureLine: "To avoid any impact on your booking confirmation, we kindly ask you to complete the payment as soon as possible through your booking page:",
5019
5142
  closingThanks: "Thank you, and we hope to welcome you on your upcoming adventure soon.",
5020
5143
  disregardIfPaid: "If you have already completed the payment, please disregard this message.",
5021
- closingAlternative: EMPTY_AGENT_FN
5144
+ closingAlternative: EMPTY_CLOSING_ALTERNATIVE
5022
5145
  },
5023
5146
  dPlus2: {
5024
5147
  intro: (b, d) => `This is a final reminder regarding the remaining balance for your booking #${b} with PlanetaEXO, which was due on ${d} and is still pending.`,
5025
5148
  secureLine: "To avoid any impact on your booking status or availability, we kindly ask you to complete the payment as soon as possible through your booking page:",
5026
5149
  closingThanks: "Thank you for your attention, and we hope to welcome you on this adventure soon.",
5027
5150
  disregardIfPaid: "If you have already completed the payment, please disregard this message.",
5028
- closingAlternative: (agentName) => `If you are experiencing any issues with payment or need additional time, please contact your agent ${agentName} via WhatsApp or email. We'll be happy to assist.`
5151
+ closingAlternative: (agentName, contact) => /* @__PURE__ */ jsxRuntime.jsxs(jsxRuntime.Fragment, { children: [
5152
+ "If you are experiencing any issues with payment or need additional time, please contact your agent ",
5153
+ agentName,
5154
+ " via ",
5155
+ renderWhatsappLink(contact, "WhatsApp"),
5156
+ " or ",
5157
+ renderEmailLink(contact, "email"),
5158
+ ". We'll be happy to assist."
5159
+ ] })
5029
5160
  }
5030
5161
  }
5031
5162
  };
@@ -5040,13 +5171,14 @@ function PaymentReminderEmail({
5040
5171
  totalBookingAmount,
5041
5172
  viewBookingUrl,
5042
5173
  agentName,
5174
+ agentContactLinks,
5043
5175
  logoUrl,
5044
5176
  labels,
5045
5177
  className
5046
5178
  }) {
5047
- var _a, _b, _c, _d, _e, _f, _g, _h, _i, _j, _k, _l, _m, _n, _o, _p, _q, _r;
5179
+ var _a, _b, _c, _d, _e, _f, _g, _h, _i, _j, _k, _l, _m, _n, _o, _p, _q, _r, _s;
5048
5180
  const lOverride = labels != null ? labels : {};
5049
- const variantDefaults = DEFAULT_LABELS5.variants[variant];
5181
+ const variantDefaults = DEFAULT_LABELS6.variants[variant];
5050
5182
  const variantOverride = (_b = (_a = lOverride.variants) == null ? void 0 : _a[variant]) != null ? _b : {};
5051
5183
  const variantLabels = {
5052
5184
  intro: (_c = variantOverride.intro) != null ? _c : variantDefaults.intro,
@@ -5056,18 +5188,19 @@ function PaymentReminderEmail({
5056
5188
  closingAlternative: (_f = variantOverride.closingAlternative) != null ? _f : variantDefaults.closingAlternative
5057
5189
  };
5058
5190
  const l = {
5059
- logoAlt: (_g = lOverride.logoAlt) != null ? _g : DEFAULT_LABELS5.logoAlt,
5060
- greeting: (_h = lOverride.greeting) != null ? _h : DEFAULT_LABELS5.greeting,
5061
- intermediateHello: (_i = lOverride.intermediateHello) != null ? _i : DEFAULT_LABELS5.intermediateHello,
5062
- bookingSummaryHeader: (_j = lOverride.bookingSummaryHeader) != null ? _j : DEFAULT_LABELS5.bookingSummaryHeader,
5063
- amountAlreadyPaidLabel: (_k = lOverride.amountAlreadyPaidLabel) != null ? _k : DEFAULT_LABELS5.amountAlreadyPaidLabel,
5064
- remainingBalanceDueLabel: (_l = lOverride.remainingBalanceDueLabel) != null ? _l : DEFAULT_LABELS5.remainingBalanceDueLabel,
5065
- totalBookingAmountLabel: (_m = lOverride.totalBookingAmountLabel) != null ? _m : DEFAULT_LABELS5.totalBookingAmountLabel,
5066
- ctaLabel: (_n = lOverride.ctaLabel) != null ? _n : DEFAULT_LABELS5.ctaLabel,
5067
- teamSignature: (_o = lOverride.teamSignature) != null ? _o : DEFAULT_LABELS5.teamSignature,
5068
- closingAgent: (_p = lOverride.closingAgent) != null ? _p : DEFAULT_LABELS5.closingAgent,
5069
- closingNoAgent: (_q = lOverride.closingNoAgent) != null ? _q : DEFAULT_LABELS5.closingNoAgent,
5070
- adventureCard: __spreadValues(__spreadValues({}, DEFAULT_LABELS5.adventureCard), (_r = lOverride.adventureCard) != null ? _r : {})
5191
+ logoAlt: (_g = lOverride.logoAlt) != null ? _g : DEFAULT_LABELS6.logoAlt,
5192
+ greeting: (_h = lOverride.greeting) != null ? _h : DEFAULT_LABELS6.greeting,
5193
+ intermediateHello: (_i = lOverride.intermediateHello) != null ? _i : DEFAULT_LABELS6.intermediateHello,
5194
+ bookingSummaryHeader: (_j = lOverride.bookingSummaryHeader) != null ? _j : DEFAULT_LABELS6.bookingSummaryHeader,
5195
+ amountAlreadyPaidLabel: (_k = lOverride.amountAlreadyPaidLabel) != null ? _k : DEFAULT_LABELS6.amountAlreadyPaidLabel,
5196
+ remainingBalanceDueLabel: (_l = lOverride.remainingBalanceDueLabel) != null ? _l : DEFAULT_LABELS6.remainingBalanceDueLabel,
5197
+ totalBookingAmountLabel: (_m = lOverride.totalBookingAmountLabel) != null ? _m : DEFAULT_LABELS6.totalBookingAmountLabel,
5198
+ paymentDetailsHeading: (_n = lOverride.paymentDetailsHeading) != null ? _n : DEFAULT_LABELS6.paymentDetailsHeading,
5199
+ ctaLabel: (_o = lOverride.ctaLabel) != null ? _o : DEFAULT_LABELS6.ctaLabel,
5200
+ teamSignature: (_p = lOverride.teamSignature) != null ? _p : DEFAULT_LABELS6.teamSignature,
5201
+ closingAgent: (_q = lOverride.closingAgent) != null ? _q : DEFAULT_LABELS6.closingAgent,
5202
+ closingNoAgent: (_r = lOverride.closingNoAgent) != null ? _r : DEFAULT_LABELS6.closingNoAgent,
5203
+ adventureCard: __spreadValues(__spreadValues({}, DEFAULT_LABELS6.adventureCard), (_s = lOverride.adventureCard) != null ? _s : {})
5071
5204
  };
5072
5205
  const ctaStyle = {
5073
5206
  display: "inline-block",
@@ -5080,16 +5213,15 @@ function PaymentReminderEmail({
5080
5213
  textDecoration: "none",
5081
5214
  fontFamily: emailTokens.fontFamily
5082
5215
  };
5083
- const summaryRowStyle = {
5084
- margin: "0 0 8px",
5085
- fontSize: "14px",
5086
- color: emailTokens.foreground
5087
- };
5088
5216
  const agentNameTrimmed = agentName == null ? void 0 : agentName.trim();
5089
- const closingMain = agentNameTrimmed ? l.closingAgent(agentNameTrimmed) : l.closingNoAgent;
5217
+ const contact = agentContactLinks != null ? agentContactLinks : {};
5218
+ let closingMainNode;
5219
+ if (variant === "dPlus2") {
5220
+ closingMainNode = agentNameTrimmed ? variantLabels.closingAlternative(agentNameTrimmed, contact) : l.closingNoAgent;
5221
+ } else {
5222
+ closingMainNode = agentNameTrimmed ? l.closingAgent(agentNameTrimmed, contact) : l.closingNoAgent;
5223
+ }
5090
5224
  const showDisregard = typeof variantLabels.disregardIfPaid === "string" && variantLabels.disregardIfPaid.trim().length > 0;
5091
- const closingAlternativeText = agentNameTrimmed && variantLabels.closingAlternative ? variantLabels.closingAlternative(agentNameTrimmed) : "";
5092
- const showClosingAlternative = closingAlternativeText.trim().length > 0;
5093
5225
  return /* @__PURE__ */ jsxRuntime.jsxs(
5094
5226
  "div",
5095
5227
  {
@@ -5168,40 +5300,21 @@ function PaymentReminderEmail({
5168
5300
  advIdx
5169
5301
  );
5170
5302
  }),
5171
- /* @__PURE__ */ jsxRuntime.jsx(
5172
- "hr",
5303
+ /* @__PURE__ */ jsxRuntime.jsx("div", { style: { marginTop: "8px", marginBottom: "24px" }, children: /* @__PURE__ */ jsxRuntime.jsx(
5304
+ PaymentDetailsBlock,
5173
5305
  {
5174
- style: {
5175
- border: "none",
5176
- borderTop: `1px solid ${emailTokens.border}`,
5177
- marginBottom: "16px"
5178
- }
5306
+ labels: { heading: l.paymentDetailsHeading },
5307
+ rows: [
5308
+ { label: l.amountAlreadyPaidLabel, value: amountAlreadyPaid },
5309
+ {
5310
+ label: l.remainingBalanceDueLabel,
5311
+ value: remainingBalanceDue,
5312
+ emphasis: true
5313
+ },
5314
+ { label: l.totalBookingAmountLabel, value: totalBookingAmount }
5315
+ ]
5179
5316
  }
5180
- ),
5181
- /* @__PURE__ */ jsxRuntime.jsxs("p", { style: summaryRowStyle, children: [
5182
- /* @__PURE__ */ jsxRuntime.jsxs("strong", { children: [
5183
- l.amountAlreadyPaidLabel,
5184
- ":"
5185
- ] }),
5186
- " ",
5187
- amountAlreadyPaid
5188
- ] }),
5189
- /* @__PURE__ */ jsxRuntime.jsxs("p", { style: summaryRowStyle, children: [
5190
- /* @__PURE__ */ jsxRuntime.jsxs("strong", { children: [
5191
- l.remainingBalanceDueLabel,
5192
- ":"
5193
- ] }),
5194
- " ",
5195
- remainingBalanceDue
5196
- ] }),
5197
- /* @__PURE__ */ jsxRuntime.jsxs("p", { style: __spreadProps(__spreadValues({}, summaryRowStyle), { marginBottom: "24px" }), children: [
5198
- /* @__PURE__ */ jsxRuntime.jsxs("strong", { children: [
5199
- l.totalBookingAmountLabel,
5200
- ":"
5201
- ] }),
5202
- " ",
5203
- totalBookingAmount
5204
- ] }),
5317
+ ) }),
5205
5318
  showDisregard && /* @__PURE__ */ jsxRuntime.jsx(
5206
5319
  "p",
5207
5320
  {
@@ -5214,8 +5327,7 @@ function PaymentReminderEmail({
5214
5327
  children: variantLabels.disregardIfPaid
5215
5328
  }
5216
5329
  ),
5217
- showClosingAlternative && /* @__PURE__ */ jsxRuntime.jsx("p", { style: { marginBottom: "16px", fontSize: "14px", color: emailTokens.bodyText }, children: closingAlternativeText }),
5218
- /* @__PURE__ */ jsxRuntime.jsx("p", { style: { marginBottom: "16px", fontSize: "14px", color: emailTokens.bodyText }, children: closingMain }),
5330
+ /* @__PURE__ */ jsxRuntime.jsx("p", { style: { marginBottom: "16px", fontSize: "14px", color: emailTokens.bodyText }, children: closingMainNode }),
5219
5331
  /* @__PURE__ */ jsxRuntime.jsx("p", { style: { marginBottom: "16px", fontSize: "14px", color: emailTokens.bodyText }, children: variantLabels.closingThanks }),
5220
5332
  /* @__PURE__ */ jsxRuntime.jsx("p", { style: { marginTop: 0, marginBottom: 0, fontSize: "14px", color: emailTokens.bodyText }, children: l.teamSignature })
5221
5333
  ]
@@ -5902,7 +6014,7 @@ function BookingForm({
5902
6014
  }
5903
6015
  );
5904
6016
  }
5905
- var DEFAULT_LABELS6 = {
6017
+ var DEFAULT_LABELS7 = {
5906
6018
  formSubtitle: "To confirm your participation, please complete this short form. It's required for all travellers and helps us coordinate logistics with our local partners and tailor the experience to you.",
5907
6019
  detailsSectionTitle: "Your details",
5908
6020
  tripInfoSectionTitle: "Trip info",
@@ -6567,7 +6679,7 @@ function RegistrationForm({
6567
6679
  }) {
6568
6680
  var _a;
6569
6681
  const L = React25__namespace.useMemo(
6570
- () => __spreadValues(__spreadValues({}, DEFAULT_LABELS6), labels != null ? labels : {}),
6682
+ () => __spreadValues(__spreadValues({}, DEFAULT_LABELS7), labels != null ? labels : {}),
6571
6683
  [labels]
6572
6684
  );
6573
6685
  const sortedFields = React25__namespace.useMemo(
@@ -11203,6 +11315,7 @@ exports.OTPCodeInput = OTPCodeInput;
11203
11315
  exports.Offer = Offer;
11204
11316
  exports.OfferAdventureCard = OfferAdventureCard;
11205
11317
  exports.PaymentAmountSelector = PaymentAmountSelector;
11318
+ exports.PaymentDetailsBlock = PaymentDetailsBlock;
11206
11319
  exports.PaymentMethodSelector = PaymentMethodSelector;
11207
11320
  exports.PaymentModalShell = PaymentModalShell;
11208
11321
  exports.PaymentReceiptEmail = PaymentReceiptEmail;